]> git.proxmox.com Git - ceph.git/commitdiff
import 15.2.4
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 2 Jul 2020 13:37:13 +0000 (15:37 +0200)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Thu, 2 Jul 2020 13:37:13 +0000 (15:37 +0200)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
749 files changed:
ceph/CMakeLists.txt
ceph/PendingReleaseNotes
ceph/alpine/APKBUILD
ceph/alpine/APKBUILD.in
ceph/ceph.spec
ceph/ceph.spec.in
ceph/changelog.upstream
ceph/cmake/modules/FindFUSE.cmake
ceph/debian/cephadm.postinst
ceph/debian/control
ceph/debian/libcephfs-dev.install
ceph/debian/radosgw.install
ceph/doc/cephadm/adoption.rst
ceph/doc/cephadm/install.rst
ceph/doc/cephadm/monitoring.rst
ceph/doc/cephadm/operations.rst
ceph/doc/cephadm/troubleshooting.rst
ceph/doc/cephfs/administration.rst
ceph/doc/cephfs/createfs.rst
ceph/doc/cephfs/file-layouts.rst
ceph/doc/cephfs/fs-volumes.rst
ceph/doc/dev/cephadm.rst
ceph/doc/images/dashboard/invalid-credentials.png [new file with mode: 0644]
ceph/doc/install/containers.rst
ceph/doc/man/8/CMakeLists.txt
ceph/doc/man/8/ceph-diff-sorted.rst [new file with mode: 0644]
ceph/doc/man/8/ceph-osd.rst
ceph/doc/man/8/ceph.rst
ceph/doc/man/8/cephadm.rst
ceph/doc/man/8/radosgw-admin.rst
ceph/doc/man/8/rgw-orphan-list.rst [new file with mode: 0644]
ceph/doc/man_index.rst
ceph/doc/mgr/dashboard.rst
ceph/doc/mgr/orchestrator.rst
ceph/doc/mgr/prometheus.rst
ceph/doc/mgr/telemetry.rst
ceph/doc/rados/operations/devices.rst
ceph/doc/rados/operations/monitoring.rst
ceph/doc/radosgw/config-ref.rst
ceph/doc/radosgw/index.rst
ceph/doc/radosgw/multisite.rst
ceph/doc/radosgw/notifications.rst
ceph/doc/radosgw/orphans.rst [new file with mode: 0644]
ceph/doc/radosgw/pubsub-module.rst
ceph/fusetrace/fusetrace_ll.cc
ceph/monitoring/grafana/dashboards/radosgw-sync-overview.json [new file with mode: 0644]
ceph/monitoring/grafana/dashboards/rbd-details.json [new file with mode: 0644]
ceph/monitoring/prometheus/alerts/ceph_default_alerts.yml
ceph/qa/.teuthology_branch [new file with mode: 0644]
ceph/qa/objectstore/bluestore-avl.yaml [deleted file]
ceph/qa/objectstore/bluestore-hybrid.yaml [new file with mode: 0644]
ceph/qa/standalone/scrub/osd-scrub-repair.sh
ceph/qa/suites/fs/bugs/client_trim_caps/tasks/trim-i22073.yaml
ceph/qa/suites/krbd/thrash/thrashers/mon-thrasher.yaml
ceph/qa/suites/powercycle/osd/powercycle/default.yaml
ceph/qa/suites/powercycle/osd/tasks/cfuse_workunit_suites_fsx.yaml
ceph/qa/suites/rados/cephadm/smoke/fixed-2.yaml
ceph/qa/suites/rados/cephadm/upgrade/2-start-upgrade.yaml
ceph/qa/suites/rados/cephadm/upgrade/fixed-2.yaml [changed from symlink to file mode: 0644]
ceph/qa/suites/rados/cephadm/with-work/distro/ubuntu_latest.yaml [deleted symlink]
ceph/qa/suites/rados/cephadm/workunits/distro/ubuntu_latest.yaml [deleted symlink]
ceph/qa/suites/rados/dashboard/tasks/dashboard.yaml
ceph/qa/suites/rgw/crypt/2-kms/barbican.yaml
ceph/qa/suites/rgw/crypt/4-tests/s3tests.yaml
ceph/qa/suites/rgw/multifs/tasks/rgw_ragweed.yaml
ceph/qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
ceph/qa/suites/rgw/tempest/tasks/rgw_tempest.yaml
ceph/qa/suites/rgw/thrash/workload/rgw_s3tests.yaml
ceph/qa/suites/rgw/tools/+ [new file with mode: 0644]
ceph/qa/suites/rgw/tools/.qa [new symlink]
ceph/qa/suites/rgw/tools/centos_latest.yaml [new symlink]
ceph/qa/suites/rgw/tools/cluster.yaml [new file with mode: 0644]
ceph/qa/suites/rgw/tools/tasks.yaml [new file with mode: 0644]
ceph/qa/suites/rgw/verify/tasks/ragweed.yaml
ceph/qa/suites/rgw/verify/tasks/s3tests.yaml
ceph/qa/suites/rgw/website/tasks/s3tests-website.yaml
ceph/qa/suites/smoke/basic/tasks/rgw_ec_s3tests.yaml
ceph/qa/suites/smoke/basic/tasks/rgw_s3tests.yaml
ceph/qa/suites/upgrade/octopus-p2p/octopus-p2p-parallel/point-to-point-upgrade.yaml
ceph/qa/tasks/barbican.py
ceph/qa/tasks/cbt.py
ceph/qa/tasks/ceph_fuse.py
ceph/qa/tasks/ceph_manager.py
ceph/qa/tasks/ceph_objectstore_tool.py
ceph/qa/tasks/cephadm.py
ceph/qa/tasks/cephfs/cephfs_test_case.py
ceph/qa/tasks/cephfs/filesystem.py
ceph/qa/tasks/cephfs/fuse_mount.py
ceph/qa/tasks/cephfs/kernel_mount.py
ceph/qa/tasks/cephfs/mount.py
ceph/qa/tasks/cephfs/test_acls.py
ceph/qa/tasks/cephfs/test_admin.py
ceph/qa/tasks/cephfs/test_auto_repair.py
ceph/qa/tasks/cephfs/test_cephfs_shell.py
ceph/qa/tasks/cephfs/test_client_limits.py
ceph/qa/tasks/cephfs/test_client_recovery.py
ceph/qa/tasks/cephfs/test_damage.py
ceph/qa/tasks/cephfs/test_data_scan.py
ceph/qa/tasks/cephfs/test_dump_tree.py
ceph/qa/tasks/cephfs/test_exports.py
ceph/qa/tasks/cephfs/test_failover.py
ceph/qa/tasks/cephfs/test_flush.py
ceph/qa/tasks/cephfs/test_forward_scrub.py
ceph/qa/tasks/cephfs/test_full.py
ceph/qa/tasks/cephfs/test_journal_migration.py
ceph/qa/tasks/cephfs/test_journal_repair.py
ceph/qa/tasks/cephfs/test_misc.py
ceph/qa/tasks/cephfs/test_openfiletable.py
ceph/qa/tasks/cephfs/test_pool_perm.py
ceph/qa/tasks/cephfs/test_quota.py
ceph/qa/tasks/cephfs/test_readahead.py
ceph/qa/tasks/cephfs/test_recovery_pool.py
ceph/qa/tasks/cephfs/test_scrub.py
ceph/qa/tasks/cephfs/test_scrub_checks.py
ceph/qa/tasks/cephfs/test_sessionmap.py
ceph/qa/tasks/cephfs/test_snapshots.py
ceph/qa/tasks/cephfs/test_strays.py
ceph/qa/tasks/cephfs/test_volume_client.py
ceph/qa/tasks/cephfs/test_volumes.py
ceph/qa/tasks/cephfs/xfstests_dev.py
ceph/qa/tasks/check_counter.py
ceph/qa/tasks/cram.py
ceph/qa/tasks/devstack.py
ceph/qa/tasks/die_on_err.py
ceph/qa/tasks/divergent_priors.py
ceph/qa/tasks/divergent_priors2.py
ceph/qa/tasks/dnsmasq.py
ceph/qa/tasks/dump_stuck.py
ceph/qa/tasks/ec_lost_unfound.py
ceph/qa/tasks/filestore_idempotent.py
ceph/qa/tasks/fs.py
ceph/qa/tasks/kclient.py
ceph/qa/tasks/keystone.py
ceph/qa/tasks/lost_unfound.py
ceph/qa/tasks/mds_creation_failure.py
ceph/qa/tasks/mds_thrash.py
ceph/qa/tasks/mgr/dashboard/helper.py
ceph/qa/tasks/mgr/dashboard/test_auth.py
ceph/qa/tasks/mgr/dashboard/test_cephfs.py
ceph/qa/tasks/mgr/dashboard/test_cluster_configuration.py
ceph/qa/tasks/mgr/dashboard/test_crush_rule.py
ceph/qa/tasks/mgr/dashboard/test_erasure_code_profile.py
ceph/qa/tasks/mgr/dashboard/test_ganesha.py
ceph/qa/tasks/mgr/dashboard/test_health.py
ceph/qa/tasks/mgr/dashboard/test_host.py
ceph/qa/tasks/mgr/dashboard/test_logs.py
ceph/qa/tasks/mgr/dashboard/test_mgr_module.py
ceph/qa/tasks/mgr/dashboard/test_monitor.py
ceph/qa/tasks/mgr/dashboard/test_orchestrator.py
ceph/qa/tasks/mgr/dashboard/test_osd.py
ceph/qa/tasks/mgr/dashboard/test_perf_counters.py
ceph/qa/tasks/mgr/dashboard/test_pool.py
ceph/qa/tasks/mgr/dashboard/test_rbd.py
ceph/qa/tasks/mgr/dashboard/test_rbd_mirroring.py
ceph/qa/tasks/mgr/dashboard/test_requests.py
ceph/qa/tasks/mgr/dashboard/test_rgw.py
ceph/qa/tasks/mgr/dashboard/test_role.py
ceph/qa/tasks/mgr/dashboard/test_settings.py
ceph/qa/tasks/mgr/dashboard/test_summary.py
ceph/qa/tasks/mgr/dashboard/test_telemetry.py [new file with mode: 0644]
ceph/qa/tasks/mgr/dashboard/test_user.py
ceph/qa/tasks/mgr/mgr_test_case.py
ceph/qa/tasks/mgr/test_crash.py
ceph/qa/tasks/mgr/test_dashboard.py
ceph/qa/tasks/mgr/test_insights.py
ceph/qa/tasks/mgr/test_orchestrator_cli.py
ceph/qa/tasks/mgr/test_progress.py
ceph/qa/tasks/mgr/test_prometheus.py
ceph/qa/tasks/mon_clock_skew_check.py
ceph/qa/tasks/mon_recovery.py
ceph/qa/tasks/multibench.py
ceph/qa/tasks/object_source_down.py
ceph/qa/tasks/openssl_keys.py
ceph/qa/tasks/osd_backfill.py
ceph/qa/tasks/osd_failsafe_enospc.py
ceph/qa/tasks/osd_recovery.py
ceph/qa/tasks/peer.py
ceph/qa/tasks/peering_speed_test.py
ceph/qa/tasks/qemu.py
ceph/qa/tasks/rados.py
ceph/qa/tasks/radosbench.py
ceph/qa/tasks/radosgw_admin.py
ceph/qa/tasks/radosgw_admin_rest.py
ceph/qa/tasks/ragweed.py
ceph/qa/tasks/rbd.py
ceph/qa/tasks/rbd_fio.py
ceph/qa/tasks/rbd_mirror.py
ceph/qa/tasks/rebuild_mondb.py
ceph/qa/tasks/reg11184.py
ceph/qa/tasks/rep_lost_unfound_delete.py
ceph/qa/tasks/resolve_stuck_peering.py
ceph/qa/tasks/rgw.py
ceph/qa/tasks/rgw_logsocket.py
ceph/qa/tasks/rgw_multisite.py
ceph/qa/tasks/rgw_multisite_tests.py
ceph/qa/tasks/s3tests.py
ceph/qa/tasks/s3tests_java.py
ceph/qa/tasks/scrub_test.py
ceph/qa/tasks/tempest.py
ceph/qa/tasks/tests/test_cephadm.py [new file with mode: 0644]
ceph/qa/tasks/tests/test_devstack.py
ceph/qa/tasks/tests/test_radosgw_admin.py
ceph/qa/tasks/thrashosds.py
ceph/qa/tasks/tox.py
ceph/qa/tasks/util/rgw.py
ceph/qa/tasks/util/test/test_rados.py
ceph/qa/tasks/vault.py
ceph/qa/tasks/vstart_runner.py
ceph/qa/tasks/watch_notify_same_primary.py
ceph/qa/tasks/watch_notify_stress.py
ceph/qa/tox.ini
ceph/qa/valgrind.supp
ceph/qa/workunits/ceph-helpers-root.sh
ceph/qa/workunits/cephadm/test_adoption.sh
ceph/qa/workunits/cephadm/test_cephadm.sh
ceph/qa/workunits/cephtool/test.sh
ceph/qa/workunits/rados/test_envlibrados_for_rocksdb.sh
ceph/qa/workunits/rbd/rbd-nbd.sh
ceph/qa/workunits/rgw/test_rgw_orphan_list.sh [new file with mode: 0755]
ceph/selinux/ceph.te
ceph/src/.git_version
ceph/src/bash_completion/ceph
ceph/src/ceph-volume/ceph_volume/api/lvm.py
ceph/src/ceph-volume/ceph_volume/devices/lvm/prepare.py
ceph/src/ceph-volume/ceph_volume/tests/api/test_lvm.py
ceph/src/ceph-volume/ceph_volume/util/prepare.py
ceph/src/ceph.in
ceph/src/ceph_fuse.cc
ceph/src/ceph_osd.cc
ceph/src/cephadm/cephadm
ceph/src/cephadm/mypy.ini
ceph/src/cephadm/tests/test_cephadm.py
ceph/src/client/Client.cc
ceph/src/client/Client.h
ceph/src/client/Delegation.h
ceph/src/client/SyntheticClient.cc
ceph/src/client/fuse_ll.cc
ceph/src/client/fuse_ll.h
ceph/src/cls/queue/cls_queue_src.cc
ceph/src/cls/rgw_gc/cls_rgw_gc.cc
ceph/src/common/config.cc
ceph/src/common/legacy_config_opts.h
ceph/src/common/options.cc
ceph/src/crimson/os/alienstore/CMakeLists.txt
ceph/src/include/ceph_fuse.h
ceph/src/include/cephfs/ceph_ll_client.h [new file with mode: 0644]
ceph/src/include/cephfs/ceph_statx.h [deleted file]
ceph/src/include/cephfs/libcephfs.h
ceph/src/include/config-h.in.cmake
ceph/src/libcephfs.cc
ceph/src/librbd/ImageCtx.cc
ceph/src/librbd/ImageCtx.h
ceph/src/librbd/Watcher.cc
ceph/src/librbd/internal.cc
ceph/src/librbd/mirror/DisableRequest.cc
ceph/src/mds/CInode.cc
ceph/src/mds/CInode.h
ceph/src/mds/Locker.cc
ceph/src/mds/LogSegment.h
ceph/src/mds/MDCache.cc
ceph/src/mds/MDCache.h
ceph/src/mds/MDSContext.cc
ceph/src/mds/MDSContext.h
ceph/src/mds/MDSRank.cc
ceph/src/mds/Mutation.h
ceph/src/mds/PurgeQueue.cc
ceph/src/mds/Server.cc
ceph/src/mds/journal.cc
ceph/src/mds/mdstypes.h
ceph/src/mgr/ActivePyModules.cc
ceph/src/mgr/ClusterState.cc
ceph/src/mgr/ClusterState.h
ceph/src/mon/MonCommands.h
ceph/src/mon/OSDMonitor.cc
ceph/src/os/CMakeLists.txt
ceph/src/os/FuseStore.cc
ceph/src/os/bluestore/Allocator.cc
ceph/src/os/bluestore/Allocator.h
ceph/src/os/bluestore/AvlAllocator.cc
ceph/src/os/bluestore/AvlAllocator.h
ceph/src/os/bluestore/BitmapAllocator.h
ceph/src/os/bluestore/HybridAllocator.cc [new file with mode: 0644]
ceph/src/os/bluestore/HybridAllocator.h [new file with mode: 0644]
ceph/src/os/bluestore/KernelDevice.cc
ceph/src/os/bluestore/fastbmap_allocator_impl.cc
ceph/src/os/bluestore/fastbmap_allocator_impl.h
ceph/src/osd/OSD.cc
ceph/src/osd/OSD.h
ceph/src/osdc/Filer.cc
ceph/src/osdc/Filer.h
ceph/src/osdc/Objecter.cc
ceph/src/powerdns/pdns-backend-rgw.py
ceph/src/pybind/ceph_volume_client.py
ceph/src/pybind/cephfs/cephfs.pyx
ceph/src/pybind/mgr/alerts/module.py
ceph/src/pybind/mgr/balancer/module.py
ceph/src/pybind/mgr/cephadm/__init__.py
ceph/src/pybind/mgr/cephadm/inventory.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/module.py
ceph/src/pybind/mgr/cephadm/nfs.py [deleted file]
ceph/src/pybind/mgr/cephadm/osd.py [deleted file]
ceph/src/pybind/mgr/cephadm/schedule.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/__init__.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/cephadmservice.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/iscsi.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/monitoring.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/nfs.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/services/osd.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/template.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/alertmanager/alertmanager.yml.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/grafana/ceph-dashboard.yml.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/grafana/grafana.ini.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/iscsi/iscsi-gateway.cfg.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/nfs/ganesha.conf.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/templates/services/prometheus/prometheus.yml.j2 [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/tests/fixtures.py
ceph/src/pybind/mgr/cephadm/tests/test_cephadm.py
ceph/src/pybind/mgr/cephadm/tests/test_completion.py
ceph/src/pybind/mgr/cephadm/tests/test_scheduling.py
ceph/src/pybind/mgr/cephadm/tests/test_services.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/tests/test_spec.py
ceph/src/pybind/mgr/cephadm/tests/test_template.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/upgrade.py [new file with mode: 0644]
ceph/src/pybind/mgr/cephadm/utils.py
ceph/src/pybind/mgr/dashboard/.pylintrc
ceph/src/pybind/mgr/dashboard/CMakeLists.txt
ceph/src/pybind/mgr/dashboard/HACKING.rst
ceph/src/pybind/mgr/dashboard/__init__.py
ceph/src/pybind/mgr/dashboard/conftest.py [deleted file]
ceph/src/pybind/mgr/dashboard/controllers/__init__.py
ceph/src/pybind/mgr/dashboard/controllers/erasure_code_profile.py
ceph/src/pybind/mgr/dashboard/controllers/host.py
ceph/src/pybind/mgr/dashboard/controllers/pool.py
ceph/src/pybind/mgr/dashboard/controllers/rgw.py
ceph/src/pybind/mgr/dashboard/controllers/telemetry.py [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/.prettierrc
ceph/src/pybind/mgr/dashboard/frontend/angular.json
ceph/src/pybind/mgr/dashboard/frontend/cypress.json [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/page-helper.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.e2e-spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.po.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/support/commands.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/support/index.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/cypress/tsconfig.json [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.5b0a7ba1cfec198ba8ed.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.d36650ee0a92dfd05faa.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/3rdpartylicenses.txt
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.4299ba94dd69b0b04046.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.c0ad55977c0a220b3203.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.904941689cb18cba0036.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.cf5f8c70f123c771366b.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.988fe96f3a1b2f8c64cd.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.f45b72794d78f44d11b9.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.a6e2f7400e0a62470111.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.d895914fbc785284c5be.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/ceph_background.gif [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/ceph_background.7c127240f022e7baf57d.gif [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/index.html
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a10546ecbf9c49d65e18.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.bbd2d62de0d7a670cae3.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.2fd4e31a298ae797b302.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.992511a1840a2561365a.js [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.4f0058c288677d311127.css [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.f15465861b49727cf28a.css [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/swagger-ui-bundle.js
ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/swagger-ui.css
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/tsconfig.e2e.json [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.e2e-spec.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.po.ts [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/package-lock.json
ceph/src/pybind/mgr/dashboard/frontend/package.json
ceph/src/pybind/mgr/dashboard/frontend/protractor.conf.js [deleted file]
ceph/src/pybind/mgr/dashboard/frontend/src/app/app-routing.module.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/app.module.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-details/iscsi-target-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-details/iscsi-target-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-form/iscsi-target-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/iscsi/iscsi.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/image-list/image-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/image-list/image-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/overview/overview.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/pool-list/pool-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/pool-list/pool-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-configuration-list/rbd-configuration-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-details/rbd-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-details/rbd-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-list/rbd-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-namespace-list/rbd-namespace-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-list/rbd-snapshot-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-list/rbd-trash-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-clients/cephfs-clients.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-directories/cephfs-directories.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-directories/cephfs-directories.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-list/cephfs-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-list/cephfs-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-list/cephfs-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-tabs/cephfs-tabs.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-tabs/cephfs-tabs.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cephfs/cephfs-tabs/cephfs-tabs.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration-details/configuration-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration-form/configuration-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/configuration/configuration.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/crushmap/crushmap.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/host-details/host-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/host-details/host-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/host-details/host-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/hosts.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/hosts.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/hosts/hosts.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/inventory/inventory-devices/inventory-devices.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/inventory/inventory.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/logs/logs.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-details/mgr-module-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-details/mgr-module-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-details/mgr-module-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/mgr-modules/mgr-module-list/mgr-module-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/monitor/monitor.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-details/osd-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-details/osd-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-details/osd-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-devices-selection-groups/osd-devices-selection-groups.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-devices-selection-modal/osd-devices-selection-modal.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-flags-modal/osd-flags-modal.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-form/osd-form.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/active-alert-list/active-alert-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/rules-list/rules-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/rules-list/rules-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/rules-list/rules-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/silence-list/silence-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/silence-list/silence-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/prometheus/silence-list/silence-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-daemon-list/service-daemon-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-daemon-list/service-daemon-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-details/service-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/services.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.html [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.scss [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health-pie/health-pie.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/info-card/info-card.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-details/nfs-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-details/nfs-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-details/nfs-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-list/nfs-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-list/nfs-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/nfs/nfs-list/nfs-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/performance-counter/performance-counter/performance-counter.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/crush-rule-form-modal/crush-rule-form-modal.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/crush-rule-form-modal/crush-rule-form-modal.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/crush-rule-form-modal/crush-rule-form-modal.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form-modal.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form-modal.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form-modal.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-details/pool-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-form/pool-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/pool-list/pool-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-details/rgw-bucket-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-list/rgw-bucket-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-list/rgw-bucket-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-list/rgw-bucket-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-details/rgw-daemon-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-daemon-list/rgw-daemon-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-details/rgw-user-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-list/rgw-user-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/shared/smart-list/smart-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/shared/smart-list/smart-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/login/login.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-details/role-details.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-details/role-details.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-details/role-details.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-list/role-list.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-list/role-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/role-list/role-list.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-form/user-form.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-form/user-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-list/user-list.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-password-form/user-password-form.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/auth/user-password-form/user-password-form.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/layouts/login-layout/login-layout.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/about/about.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/about/about.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/administration/administration.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/administration/administration.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation.module.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/core/navigation/navigation/navigation.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/auth.service.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/auth.service.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-site.service.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/rgw-site.service.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/user.service.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/list-with-details.class.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/components/language-selector/language-selector.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/components/language-selector/language-selector.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/components/select/select.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table-actions/table-actions.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.scss
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/decorators/cd-encode.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/copy2clipboard-button.directive.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/copy2clipboard-button.directive.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/models/cd-table-column-filters-change.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/models/pool-form-info.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/pipes/relative-date.pipe.spec.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/api-interceptor.service.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/password-policy.service.ts
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.spec.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.ts [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/assets/ceph_background.gif [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/styles.scss
ceph/src/pybind/mgr/dashboard/frontend/src/styles/bootstrap-extends.scss [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/frontend/src/styles/defaults.scss
ceph/src/pybind/mgr/dashboard/frontend/src/styles/vendor.variables.scss
ceph/src/pybind/mgr/dashboard/frontend/tsconfig.json
ceph/src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh
ceph/src/pybind/mgr/dashboard/run-frontend-unittests.sh
ceph/src/pybind/mgr/dashboard/services/ceph_service.py
ceph/src/pybind/mgr/dashboard/services/iscsi_cli.py
ceph/src/pybind/mgr/dashboard/services/iscsi_config.py
ceph/src/pybind/mgr/dashboard/services/rbd.py
ceph/src/pybind/mgr/dashboard/services/rgw_client.py
ceph/src/pybind/mgr/dashboard/tests/test_ceph_service.py [new file with mode: 0644]
ceph/src/pybind/mgr/dashboard/tests/test_home.py
ceph/src/pybind/mgr/dashboard/tests/test_rbd_service.py
ceph/src/pybind/mgr/dashboard/tests/test_rgw_client.py
ceph/src/pybind/mgr/devicehealth/module.py
ceph/src/pybind/mgr/insights/module.py
ceph/src/pybind/mgr/mgr_module.py
ceph/src/pybind/mgr/orchestrator/_interface.py
ceph/src/pybind/mgr/orchestrator/module.py
ceph/src/pybind/mgr/progress/module.py
ceph/src/pybind/mgr/prometheus/module.py
ceph/src/pybind/mgr/rbd_support/trash_purge_schedule.py
ceph/src/pybind/mgr/requirements.txt
ceph/src/pybind/mgr/restful/api/config.py
ceph/src/pybind/mgr/restful/module.py
ceph/src/pybind/mgr/rook/module.py
ceph/src/pybind/mgr/rook/rook_cluster.py
ceph/src/pybind/mgr/status/module.py
ceph/src/pybind/mgr/telemetry/module.py
ceph/src/pybind/mgr/test_orchestrator/module.py
ceph/src/pybind/mgr/tests/__init__.py
ceph/src/pybind/mgr/volumes/fs/async_cloner.py
ceph/src/pybind/mgr/volumes/fs/operations/versions/subvolume_base.py
ceph/src/pybind/mgr/volumes/fs/operations/versions/subvolume_v1.py
ceph/src/pybind/mgr/volumes/fs/volume.py
ceph/src/pybind/mgr/volumes/module.py
ceph/src/pybind/rados/rados.pyx
ceph/src/pybind/rbd/rbd.pyx
ceph/src/python-common/ceph/deployment/drive_group.py
ceph/src/python-common/ceph/deployment/drive_selection/selector.py
ceph/src/python-common/ceph/deployment/inventory.py
ceph/src/python-common/ceph/deployment/service_spec.py
ceph/src/python-common/ceph/tests/test_drive_group.py
ceph/src/python-common/ceph/tests/utils.py
ceph/src/rbd_fuse/rbd-fuse.cc
ceph/src/rgw/CMakeLists.txt
ceph/src/rgw/rgw-orphan-list [new file with mode: 0755]
ceph/src/rgw/rgw_admin.cc
ceph/src/rgw/rgw_amqp.cc
ceph/src/rgw/rgw_amqp.h
ceph/src/rgw/rgw_auth.h
ceph/src/rgw/rgw_bucket.cc
ceph/src/rgw/rgw_cors.cc
ceph/src/rgw/rgw_lc.cc
ceph/src/rgw/rgw_lc.h
ceph/src/rgw/rgw_obj_manifest.h
ceph/src/rgw/rgw_op.cc
ceph/src/rgw/rgw_op.h
ceph/src/rgw/rgw_orphan.cc
ceph/src/rgw/rgw_orphan.h
ceph/src/rgw/rgw_perf_counters.cc
ceph/src/rgw/rgw_perf_counters.h
ceph/src/rgw/rgw_pubsub_push.cc
ceph/src/rgw/rgw_rados.cc
ceph/src/rgw/rgw_swift_auth.h
ceph/src/rgw/rgw_url.cc
ceph/src/rgw/services/svc_tier_rados.h
ceph/src/rgw/services/svc_user_rados.cc
ceph/src/rocksdb/utilities/env_librados.cc
ceph/src/test/cli/radosgw-admin/help.t
ceph/src/test/cls_queue/test_cls_queue.cc
ceph/src/test/fs/CMakeLists.txt
ceph/src/test/fs/test_ino_release_cb.cc [new file with mode: 0644]
ceph/src/test/librbd/test_mock_Watcher.cc
ceph/src/test/objectstore/Allocator_bench.cc
ceph/src/test/objectstore/Allocator_test.cc
ceph/src/test/objectstore/CMakeLists.txt
ceph/src/test/objectstore/fastbmap_allocator_test.cc
ceph/src/test/objectstore/hybrid_allocator_test.cc [new file with mode: 0755]
ceph/src/test/objectstore/test_bdev.cc [new file with mode: 0755]
ceph/src/test/objectstore/test_bluefs.cc
ceph/src/test/objectstore/test_bluestore_types.cc
ceph/src/test/pybind/test_rbd.py
ceph/src/test/rbd_mirror/image_replayer/journal/test_mock_Replayer.cc
ceph/src/test/rgw/CMakeLists.txt
ceph/src/test/rgw/rgw_multi/multisite.py
ceph/src/test/rgw/rgw_multi/tests.py
ceph/src/test/rgw/rgw_multi/tests_az.py
ceph/src/test/rgw/rgw_multi/tests_es.py
ceph/src/test/rgw/rgw_multi/tests_ps.py
ceph/src/test/rgw/rgw_multi/zone_cloud.py
ceph/src/test/rgw/rgw_multi/zone_es.py
ceph/src/test/rgw/rgw_multi/zone_ps.py
ceph/src/test/rgw/test-ceph-diff-sorted.sh [new file with mode: 0755]
ceph/src/test/rgw/test_multi.py
ceph/src/test/rgw/test_rgw_amqp.cc
ceph/src/test/rgw/test_rgw_url.cc
ceph/src/tools/CMakeLists.txt
ceph/src/tools/ceph-diff-sorted.cc [new file with mode: 0644]
ceph/src/tools/cephfs/cephfs-shell
ceph/src/tools/cephfs/tox.ini
ceph/src/tools/rbd_mirror/ImageReplayer.cc
ceph/src/tools/rbd_mirror/ImageReplayer.h
ceph/src/tools/rbd_mirror/InstanceReplayer.cc
ceph/src/tools/rbd_mirror/image_replayer/journal/Replayer.cc
ceph/src/tools/rbd_mirror/image_replayer/journal/Replayer.h
ceph/src/vstart.sh

index e226b8dff4e43d0ef3d5a7e1940205ef5b3cb38a..bddd18497378d4bcba7f2574e97190f4c7bd2bb2 100644 (file)
@@ -667,4 +667,4 @@ add_custom_target(tags DEPENDS ctags)
 
 find_package(CppCheck)
 find_package(IWYU)
 
 find_package(CppCheck)
 find_package(IWYU)
-set(VERSION 15.2.3)
+set(VERSION 15.2.4)
index 6e07ce6d4e3faf855749841fa0a2805faedc71d4..547a3fe88a591e4bf8a3001c87c761a01adfdbb6 100644 (file)
->=15.0.0
+>=15.2.4
 --------
 
 --------
 
-* CVE-2020-10736: Fixes an authorization bypass in monitor and manager daemons
-
-* The RGW "num_rados_handles" has been removed.
-  * If you were using a value of "num_rados_handles" greater than 1
-    multiply your current "objecter_inflight_ops" and 
-    "objecter_inflight_op_bytes" paramaeters by the old
-    "num_rados_handles" to get the same throttle behavior.
-
-* Ceph now packages python bindings for python3.6 instead of
-  python3.4, because python3 in EL7/EL8 is now using python3.6
-  as the native python3. see the `announcement <https://lists.fedoraproject.org/archives/list/epel-announce@lists.fedoraproject.org/message/EGUMKAIMPK2UD5VSHXM53BH2MBDGDWMO/>_`
-  for more details on the background of this change.
-
-* librbd now uses a write-around cache policy be default,
-  replacing the previous write-back cache policy default.
-  This cache policy allows librbd to immediately complete
-  write IOs while they are still in-flight to the OSDs.
-  Subsequent flush requests will ensure all in-flight
-  write IOs are completed prior to completing. The
-  librbd cache policy can be controlled via a new
-  "rbd_cache_policy" configuration option.
-
-* librbd now includes a simple IO scheduler which attempts to
-  batch together multiple IOs against the same backing RBD
-  data block object. The librbd IO scheduler policy can be
-  controlled via a new "rbd_io_scheduler" configuration
-  option.
-
-* RGW: radosgw-admin introduces two subcommands that allow the
-  managing of expire-stale objects that might be left behind after a
-  bucket reshard in earlier versions of RGW. One subcommand lists such
-  objects and the other deletes them. Read the troubleshooting section
-  of the dynamic resharding docs for details.
-
-* RGW: Bucket naming restrictions have changed and likely to cause
-  InvalidBucketName errors. We recommend to set ``rgw_relaxed_s3_bucket_names``
-  option to true as a workaround.
-
-* In the Zabbix Mgr Module there was a typo in the key being send
-  to Zabbix for PGs in backfill_wait state. The key that was sent
-  was 'wait_backfill' and the correct name is 'backfill_wait'.
-  Update your Zabbix template accordingly so that it accepts the
-  new key being send to Zabbix.
-
-* zabbix plugin for ceph manager now includes osd and pool
-  discovery. Update of zabbix_template.xml is needed
-  to receive per-pool (read/write throughput, diskspace usage)
-  and per-osd (latency, status, pgs) statistics
-
-* The format of all date + time stamps has been modified to fully
-  conform to ISO 8601.  The old format (``YYYY-MM-DD
-  HH:MM:SS.ssssss``) excluded the ``T`` separator between the date and
-  time and was rendered using the local time zone without any explicit
-  indication.  The new format includes the separator as well as a
-  ``+nnnn`` or ``-nnnn`` suffix to indicate the time zone, or a ``Z``
-  suffix if the time is UTC.  For example,
-  ``2019-04-26T18:40:06.225953+0100``.
-
-  Any code or scripts that was previously parsing date and/or time
-  values from the JSON or XML structure CLI output should be checked
-  to ensure it can handle ISO 8601 conformant values.  Any code
-  parsing date or time values from the unstructured human-readable
-  output should be modified to parse the structured output instead, as
-  the human-readable output may change without notice.
-
-* The ``bluestore_no_per_pool_stats_tolerance`` config option has been
-  replaced with ``bluestore_fsck_error_on_no_per_pool_stats``
-  (default: false).  The overall default behavior has not changed:
-  fsck will warn but not fail on legacy stores, and repair will
-  convert to per-pool stats.
-
-* The disaster-recovery related 'ceph mon sync force' command has been
-  replaced with 'ceph daemon <...> sync_force'.
-
-* The ``osd_recovery_max_active`` option now has
-  ``osd_recovery_max_active_hdd`` and ``osd_recovery_max_active_ssd``
-  variants, each with different default values for HDD and SSD-backed
-  OSDs, respectively.  By default ``osd_recovery_max_active`` now
-  defaults to zero, which means that the OSD will conditionally use
-  the HDD or SSD option values.  Administrators who have customized
-  this value may want to consider whether they have set this to a
-  value similar to the new defaults (3 for HDDs and 10 for SSDs) and,
-  if so, remove the option from their configuration entirely.
-
-* monitors now have a `ceph osd info` command that will provide information
-  on all osds, or provided osds, thus simplifying the process of having to
-  parse `osd dump` for the same information.
-
-* The structured output of ``ceph status`` or ``ceph -s`` is now more
-  concise, particularly the `mgrmap` and `monmap` sections, and the
-  structure of the `osdmap` section has been cleaned up.
-
-* A health warning is now generated if the average osd heartbeat ping
-  time exceeds a configurable threshold for any of the intervals
-  computed.  The OSD computes 1 minute, 5 minute and 15 minute
-  intervals with average, minimum and maximum values.  New configuration
-  option ``mon_warn_on_slow_ping_ratio`` specifies a percentage of
-  ``osd_heartbeat_grace`` to determine the threshold.  A value of zero
-  disables the warning.  New configuration option
- ``mon_warn_on_slow_ping_time`` specified in milliseconds over-rides the
-  computed value, causes a warning
-  when OSD heartbeat pings take longer than the specified amount.
-  New admin command ``ceph daemon mgr.# dump_osd_network [threshold]`` command will
-  list all connections with a ping time longer than the specified threshold or
-  value determined by the config options, for the average for any of the 3 intervals.
-  New admin command ``ceph daemon osd.# dump_osd_network [threshold]`` will
-  do the same but only including heartbeats initiated by the specified OSD.
-
-* Inline data support for CephFS has been deprecated. When setting the flag,
-  users will see a warning to that effect, and enabling it now requires the
-  ``--yes-i-really-really-mean-it`` flag. If the MDS is started on a
-  filesystem that has it enabled, a health warning is generated. Support for
-  this feature will be removed in a future release.
-
-* ``ceph {set,unset} full`` is not supported anymore. We have been using
-  ``full`` and ``nearfull`` flags in OSD map for tracking the fullness status
-  of a cluster back since the Hammer release, if the OSD map is marked ``full``
-  all write operations will be blocked until this flag is removed. In the
-  Infernalis release and Linux kernel 4.7 client, we introduced the per-pool
-  full/nearfull flags to track the status for a finer-grained control, so the
-  clients will hold the write operations if either the cluster-wide ``full``
-  flag or the per-pool ``full`` flag is set. This was a compromise, as we
-  needed to support the cluster with and without per-pool ``full`` flags
-  support. But this practically defeated the purpose of introducing the
-  per-pool flags. So, in the Mimic release, the new flags finally took the
-  place of their cluster-wide counterparts, as the monitor started removing
-  these two flags from OSD map. So the clients of Infernalis and up can benefit
-  from this change, as they won't be blocked by the full pools which they are
-  not writing to. In this release, ``ceph {set,unset} full`` is now considered
-  as an invalid command. And the clients will continue honoring both the
-  cluster-wide and per-pool flags to be backward comaptible with pre-infernalis
-  clusters.
-
-* The telemetry module now reports more information.
-
-  First, there is a new 'device' channel, enabled by default, that
-  will report anonymized hard disk and SSD health metrics to
-  telemetry.ceph.com in order to build and improve device failure
-  prediction algorithms.  If you are not comfortable sharing device
-  metrics, you can disable that channel first before re-opting-in::
-
-    ceph config set mgr mgr/telemetry/channel_device false
-
-  Second, we now report more information about CephFS file systems,
-  including:
-
-    - how many MDS daemons (in total and per file system)
-    - which features are (or have been) enabled
-    - how many data pools
-    - approximate file system age (year + month of creation)
-    - how many files, bytes, and snapshots
-    - how much metadata is being cached
-
-  We have also added:
-
-    - which Ceph release the monitors are running
-    - whether msgr v1 or v2 addresses are used for the monitors
-    - whether IPv4 or IPv6 addresses are used for the monitors
-    - whether RADOS cache tiering is enabled (and which mode)
-    - whether pools are replicated or erasure coded, and
-      which erasure code profile plugin and parameters are in use
-    - how many hosts are in the cluster, and how many hosts have each type of daemon
-    - whether a separate OSD cluster network is being used
-    - how many RBD pools and images are in the cluster, and how many pools have RBD mirroring enabled
-    - how many RGW daemons, zones, and zonegroups are present; which RGW frontends are in use
-    - aggregate stats about the CRUSH map, like which algorithms are used, how
-      big buckets are, how many rules are defined, and what tunables are in
-      use
-
-  If you had telemetry enabled, you will need to re-opt-in with::
-
-    ceph telemetry on
-
-  You can view exactly what information will be reported first with::
-
-    ceph telemetry show        # see everything
-    ceph telemetry show basic  # basic cluster info (including all of the new info)
-
-* Following invalid settings now are not tolerated anymore
-  for the command `ceph osd erasure-code-profile set xxx`.
-  * invalid `m` for "reed_sol_r6_op" erasure technique
-  * invalid `m` and invalid `w` for "liber8tion" erasure technique
-
-* New OSD daemon command dump_recovery_reservations which reveals the
-  recovery locks held (in_progress) and waiting in priority queues.
-
-* New OSD daemon command dump_scrub_reservations which reveals the
-  scrub reservations that are held for local (primary) and remote (replica) PGs.
-
-* Previously, ``ceph tell mgr ...`` could be used to call commands
-  implemented by mgr modules.  This is no longer supported.  Since
-  luminous, using ``tell`` has not been necessary: those same commands
-  are also accessible without the ``tell mgr`` portion (e.g., ``ceph
-  tell mgr influx foo`` is the same as ``ceph influx foo``.  ``ceph
-  tell mgr ...`` will now call admin commands--the same set of
-  commands accessible via ``ceph daemon ...`` when you are logged into
-  the appropriate host.
-
-* The ``ceph tell`` and ``ceph daemon`` commands have been unified,
-  such that all such commands are accessible via either interface.
-  Note that ceph-mgr tell commands are accessible via either ``ceph
-  tell mgr ...`` or ``ceph tell mgr.<id> ...``, and it is only
-  possible to send tell commands to the active daemon (the standbys do
-  not accept incoming connections over the network).
-
-* Ceph will now issue a health warning if a RADOS pool as a ``pg_num``
-  value that is not a power of two.  This can be fixed by adjusting
-  the pool to a nearby power of two::
-
-    ceph osd pool set <pool-name> pg_num <new-pg-num>
-
-  Alternatively, the warning can be silenced with::
-
-    ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false
-
-* The format of MDSs in `ceph fs dump` has changed.
-
-* The ``mds_cache_size`` config option is completely removed. Since luminous,
-  the ``mds_cache_memory_limit`` config option has been preferred to configure
-  the MDS's cache limits.
-
-* The ``pg_autoscale_mode`` is now set to ``on`` by default for newly
-  created pools, which means that Ceph will automatically manage the
-  number of PGs.  To change this behavior, or to learn more about PG
-  autoscaling, see :ref:`pg-autoscaler`.  Note that existing pools in
-  upgraded clusters will still be set to ``warn`` by default.
-
-* The pool parameter ``target_size_ratio``, used by the pg autoscaler,
-  has changed meaning. It is now normalized across pools, rather than
-  specifying an absolute ratio. For details, see :ref:`pg-autoscaler`.
-  If you have set target size ratios on any pools, you may want to set
-  these pools to autoscale ``warn`` mode to avoid data movement during
-  the upgrade::
-
-    ceph osd pool set <pool-name> pg_autoscale_mode warn
-
-* The ``upmap_max_iterations`` config option of mgr/balancer has been
-  renamed to ``upmap_max_optimizations`` to better match its behaviour.
-
-* ``mClockClientQueue`` and ``mClockClassQueue`` OpQueue
-  implementations have been removed in favor of of a single
-  ``mClockScheduler`` implementation of a simpler OSD interface.
-  Accordingly, the ``osd_op_queue_mclock*`` family of config options
-  has been removed in favor of the ``osd_mclock_scheduler*`` family
-  of options.
-
-* The config subsystem now searches dot ('.') delineated prefixes for
-  options.  That means for an entity like ``client.foo.bar``, it's
-  overall configuration will be a combination of the global options,
-  ``client``, ``client.foo``, and ``client.foo.bar``.  Previously,
-  only global, ``client``, and ``client.foo.bar`` options would apply.
-  This change may affect the configuration for clients that include a
-  ``.`` in their name.
-
-  Note that this only applies to configuration options in the
-  monitor's database--config file parsing is not affected.
-
-* RGW: bucket listing performance on sharded bucket indexes has been
-  notably improved by heuristically -- and significantly, in many
-  cases -- reducing the number of entries requested from each bucket
-  index shard.
-
-* MDS default cache memory limit is now 4GB.
-
-* The behaviour of the ``-o`` argument to the rados tool has been reverted to
-  its orignal behaviour of indicating an output file. This reverts it to a more
-  consisten behaviour when compared to other tools. Specifying obect size is now
-  accomplished by using an upper case O ``-O``.
-
-* In certain rare cases, OSDs would self-classify themselves as type
-  'nvme' instead of 'hdd' or 'ssd'.  This appears to be limited to
-  cases where BlueStore was deployed with older versions of ceph-disk,
-  or manually without ceph-volume and LVM.  Going forward, the OSD
-  will limit itself to only 'hdd' and 'ssd' (or whatever device class the user
-  manually specifies).
-
-* RGW: a mismatch between the bucket notification documentation and the actual
-  message format was fixed. This means that any endpoints receiving bucket 
-  notification, will now receive the same notifications inside an JSON array
-  named 'Records'. Note that this does not affect pulling bucket notification
-  from a subscription in a 'pubsub' zone, as these are already wrapped inside
-  that array.
-
-* The configuration value ``osd_calc_pg_upmaps_max_stddev`` used for upmap
-  balancing has been removed. Instead use the mgr balancer config
-  ``upmap_max_deviation`` which now is an integer number of PGs of deviation
-  from the target PGs per OSD.  This can be set with a command like
-  ``ceph config set mgr mgr/balancer/upmap_max_deviation 2``.  The default
-  ``upmap_max_deviation`` is 1.  There are situations where crush rules
-  would not allow a pool to ever have completely balanced PGs.  For example, if
-  crush requires 1 replica on each of 3 racks, but there are fewer OSDs in 1 of
-  the racks.  In those cases, the configuration value can be increased.
-
-* MDS daemons can now be assigned to manage a particular file system via the
-  new ``mds_join_fs`` option. The monitors will try to use only MDS for a file
-  system with mds_join_fs equal to the file system name (strong affinity).
-  Monitors may also deliberately failover an active MDS to a standby when the
-  cluster is otherwise healthy if the standby has stronger affinity.
-
-* RGW Multisite: A new fine grained bucket-granularity policy configuration
-  system has been introduced and it supersedes the previous coarse zone sync
-  configuration (specifically the ``sync_from`` and ``sync_from_all`` fields
-  in the zonegroup configuration. New configuration should only be configured
-  after all relevant zones in the zonegroup have been upgraded.
-
-* RGW S3: Support has been added for BlockPublicAccess set of APIs at a bucket
-  level, currently blocking/ignoring public acls & policies are supported.
-  User/Account level APIs are planned to be added in the future
-
-* RGW: The default number of bucket index shards for new buckets was raised
-  from 1 to 11 to increase the amount of write throughput for small buckets
-  and delay the onset of dynamic resharding. This change only affects new
-  deployments/zones. To change this default value on existing deployments,
-  use 'radosgw-admin zonegroup modify --bucket-index-max-shards=11'.
-  If the zonegroup is part of a realm, the change must be committed with
-  'radosgw-admin period update --commit' - otherwise the change will take
-  effect after radosgws are restarted.
+* Cephadm: There were a lot of small usability improvements and bug fixes:
+
+  * Grafana when deployed by Cephadm now binds to all network interfaces.
+  * ``cephadm check-host`` now prints all detected problems at once.
+  * Cephadm now calls ``ceph dashboard set-grafana-api-ssl-verify false``
+    when generating an SSL certificate for Grafana.
+  * The Alertmanager is now correctly pointed to the Ceph Dashboard
+  * ``cephadm adopt`` now supports adopting an Alertmanager
+  * ``ceph orch ps`` now supports filtering by service name
+  * ``ceph orch host ls`` now marks hosts as offline, if they are not
+    accessible.
+
+* Cephadm can now deploy NFS Ganesha services. For example, to deploy NFS with
+  a service id of mynfs, that will use the RADOS pool nfs-ganesha and namespace
+  nfs-ns::
+
+    ceph orch apply nfs mynfs nfs-ganesha nfs-ns
+
+* Cephadm: ``ceph orch ls --export`` now returns all service specifications in
+  yaml representation that is consumable by ``ceph orch apply``. In addition,
+  the commands ``orch ps`` and ``orch ls`` now support ``--format yaml`` and
+  ``--format json-pretty``.
+
+* Cephadm: ``ceph orch apply osd`` supports a ``--preview`` flag that prints a preview of
+  the OSD specification before deploying OSDs. This makes it possible to
+  verify that the specification is correct, before applying it.
+
+* RGW: The ``radosgw-admin`` sub-commands dealing with orphans --
+  ``radosgw-admin orphans find``, ``radosgw-admin orphans find``,
+  ``radosgw-admin orphans find`` -- have been deprecated. They have
+  not been actively maintained and they store intermediate results on
+  the cluster, which could fill a nearly-full cluster.  They have been
+  replaced by a tool, currently considered experimental,
+  ``rgw-orphan-list``.
+
+* RBD: The name of the rbd pool object that is used to store
+  rbd trash purge schedule is changed from "rbd_trash_trash_purge_schedule"
+  to "rbd_trash_purge_schedule". Users that have already started using
+  ``rbd trash purge schedule`` functionality and have per pool or namespace
+  schedules configured should copy "rbd_trash_trash_purge_schedule"
+  object to "rbd_trash_purge_schedule" before the upgrade and remove
+  "rbd_trash_purge_schedule" using the following commands in every RBD
+  pool and namespace where a trash purge schedule was previously
+  configured::
+
+    rados -p <pool-name> [-N namespace] cp rbd_trash_trash_purge_schedule rbd_trash_purge_schedule
+    rados -p <pool-name> [-N namespace] rm rbd_trash_trash_purge_schedule
+
+  or use any other convenient way to restore the schedule after the
+  upgrade.
index 37e9144be1ccd646d5e1c0f0a8b0c6d6f1ed7b77..e62d15946ee99e12695624484371e61f62449726 100644 (file)
@@ -1,7 +1,7 @@
 # Contributor: John Coyle <dx9err@gmail.com>
 # Maintainer: John Coyle <dx9err@gmail.com>
 pkgname=ceph
 # Contributor: John Coyle <dx9err@gmail.com>
 # Maintainer: John Coyle <dx9err@gmail.com>
 pkgname=ceph
-pkgver=15.2.3
+pkgver=15.2.4
 pkgrel=0
 pkgdesc="Ceph is a distributed object store and file system"
 pkgusers="ceph"
 pkgrel=0
 pkgdesc="Ceph is a distributed object store and file system"
 pkgusers="ceph"
@@ -63,7 +63,7 @@ makedepends="
        xmlstarlet
        yasm
 "
        xmlstarlet
        yasm
 "
-source="ceph-15.2.3.tar.bz2"
+source="ceph-15.2.4.tar.bz2"
 subpackages="
        $pkgname-base
        $pkgname-common
 subpackages="
        $pkgname-base
        $pkgname-common
@@ -116,7 +116,7 @@ _sysconfdir=/etc
 _udevrulesdir=/etc/udev/rules.d
 _python_sitelib=/usr/lib/python2.7/site-packages
 
 _udevrulesdir=/etc/udev/rules.d
 _python_sitelib=/usr/lib/python2.7/site-packages
 
-builddir=$srcdir/ceph-15.2.3
+builddir=$srcdir/ceph-15.2.4
 
 build() {
        export CEPH_BUILD_VIRTUALENV=$builddir
 
 build() {
        export CEPH_BUILD_VIRTUALENV=$builddir
@@ -396,7 +396,7 @@ libcephfs_dev() {
        pkgdesc="Ceph distributed file system client library headers"
        depends="libcephfs librados-devel"
 
        pkgdesc="Ceph distributed file system client library headers"
        depends="libcephfs librados-devel"
 
-       _pkg $_includedir/cephfs ceph_statx.h libcephfs.h
+       _pkg $_includedir/cephfs ceph_ll_client.h libcephfs.h
        _pkg $_libdir libcephfs.so
 }
 
        _pkg $_libdir libcephfs.so
 }
 
index 7a3b598b758b8dc7c5ab00749017866d6781fae6..9348f9ccf91474f5d334bb8c36b83de48b6f8343 100644 (file)
@@ -396,7 +396,7 @@ libcephfs_dev() {
        pkgdesc="Ceph distributed file system client library headers"
        depends="libcephfs librados-devel"
 
        pkgdesc="Ceph distributed file system client library headers"
        depends="libcephfs librados-devel"
 
-       _pkg $_includedir/cephfs ceph_statx.h libcephfs.h
+       _pkg $_includedir/cephfs ceph_ll_client.h libcephfs.h
        _pkg $_libdir libcephfs.so
 }
 
        _pkg $_libdir libcephfs.so
 }
 
index 6bd376c799caa1856621d49de975f7b01540acc6..74a5f95bebb55e24c44d2405d0211f85574ac435 100644 (file)
@@ -98,7 +98,7 @@
 # main package definition
 #################################################################################
 Name:          ceph
 # main package definition
 #################################################################################
 Name:          ceph
-Version:       15.2.3
+Version:       15.2.4
 Release:       0%{?dist}
 %if 0%{?fedora} || 0%{?rhel}
 Epoch:         2
 Release:       0%{?dist}
 %if 0%{?fedora} || 0%{?rhel}
 Epoch:         2
@@ -114,7 +114,7 @@ License:    LGPL-2.1 and LGPL-3.0 and CC-BY-SA-3.0 and GPL-2.0 and BSL-1.0 and BSD-
 Group:         System/Filesystems
 %endif
 URL:           http://ceph.com/
 Group:         System/Filesystems
 %endif
 URL:           http://ceph.com/
-Source0:       %{?_remote_tarball_prefix}ceph-15.2.3.tar.bz2
+Source0:       %{?_remote_tarball_prefix}ceph-15.2.4.tar.bz2
 %if 0%{?suse_version}
 # _insert_obs_source_lines_here
 ExclusiveArch:  x86_64 aarch64 ppc64le s390x
 %if 0%{?suse_version}
 # _insert_obs_source_lines_here
 ExclusiveArch:  x86_64 aarch64 ppc64le s390x
@@ -645,9 +645,11 @@ Requires:       python%{python3_pkgversion}-remoto
 Requires:       cephadm = %{_epoch_prefix}%{version}-%{release}
 %if 0%{?suse_version}
 Requires:       openssh
 Requires:       cephadm = %{_epoch_prefix}%{version}-%{release}
 %if 0%{?suse_version}
 Requires:       openssh
+Requires:       python%{python3_pkgversion}-Jinja2
 %endif
 %if 0%{?rhel} || 0%{?fedora}
 Requires:       openssh-clients
 %endif
 %if 0%{?rhel} || 0%{?fedora}
 Requires:       openssh-clients
+Requires:       python%{python3_pkgversion}-jinja2
 %endif
 %description mgr-cephadm
 ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
 %endif
 %description mgr-cephadm
 ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
@@ -1117,7 +1119,7 @@ This package provides Ceph’s default alerts for Prometheus.
 # common
 #################################################################################
 %prep
 # common
 #################################################################################
 %prep
-%autosetup -p1 -n ceph-15.2.3
+%autosetup -p1 -n ceph-15.2.4
 
 %build
 # LTO can be enabled as soon as the following GCC bug is fixed:
 
 %build
 # LTO can be enabled as soon as the following GCC bug is fixed:
@@ -1486,6 +1488,7 @@ exit 0
 %{_mandir}/man8/ceph-authtool.8*
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-dencoder.8*
 %{_mandir}/man8/ceph-authtool.8*
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-dencoder.8*
+%{_mandir}/man8/ceph-diff-sorted.8*
 %{_mandir}/man8/ceph-rbdnamer.8*
 %{_mandir}/man8/ceph-syn.8*
 %{_mandir}/man8/ceph-post-file.8*
 %{_mandir}/man8/ceph-rbdnamer.8*
 %{_mandir}/man8/ceph-syn.8*
 %{_mandir}/man8/ceph-post-file.8*
@@ -1498,6 +1501,7 @@ exit 0
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
+%{_mandir}/man8/rgw-orphan-list.8*
 %dir %{_datadir}/ceph/
 %{_datadir}/ceph/known_hosts_drop.ceph.com
 %{_datadir}/ceph/id_rsa_drop.ceph.com
 %dir %{_datadir}/ceph/
 %{_datadir}/ceph/known_hosts_drop.ceph.com
 %{_datadir}/ceph/id_rsa_drop.ceph.com
@@ -1915,10 +1919,12 @@ fi
 %{_mandir}/man8/rbd-nbd.8*
 
 %files radosgw
 %{_mandir}/man8/rbd-nbd.8*
 
 %files radosgw
+%{_bindir}/ceph-diff-sorted
 %{_bindir}/radosgw
 %{_bindir}/radosgw-token
 %{_bindir}/radosgw-es
 %{_bindir}/radosgw-object-expirer
 %{_bindir}/radosgw
 %{_bindir}/radosgw-token
 %{_bindir}/radosgw-es
 %{_bindir}/radosgw-object-expirer
+%{_bindir}/rgw-orphan-list
 %{_libdir}/libradosgw.so*
 %{_mandir}/man8/radosgw.8*
 %dir %{_localstatedir}/lib/ceph/radosgw
 %{_libdir}/libradosgw.so*
 %{_mandir}/man8/radosgw.8*
 %dir %{_localstatedir}/lib/ceph/radosgw
@@ -2167,7 +2173,7 @@ fi
 %files -n libcephfs-devel
 %dir %{_includedir}/cephfs
 %{_includedir}/cephfs/libcephfs.h
 %files -n libcephfs-devel
 %dir %{_includedir}/cephfs
 %{_includedir}/cephfs/libcephfs.h
-%{_includedir}/cephfs/ceph_statx.h
+%{_includedir}/cephfs/ceph_ll_client.h
 %{_libdir}/libcephfs.so
 
 %files -n python%{python3_pkgversion}-cephfs
 %{_libdir}/libcephfs.so
 
 %files -n python%{python3_pkgversion}-cephfs
index 2d20cd2bcb7bc7f6b9165f288a6f2ce721361c50..244c45170f1e54d5132f72ec1398093ea5d30c92 100644 (file)
@@ -645,9 +645,11 @@ Requires:       python%{python3_pkgversion}-remoto
 Requires:       cephadm = %{_epoch_prefix}%{version}-%{release}
 %if 0%{?suse_version}
 Requires:       openssh
 Requires:       cephadm = %{_epoch_prefix}%{version}-%{release}
 %if 0%{?suse_version}
 Requires:       openssh
+Requires:       python%{python3_pkgversion}-Jinja2
 %endif
 %if 0%{?rhel} || 0%{?fedora}
 Requires:       openssh-clients
 %endif
 %if 0%{?rhel} || 0%{?fedora}
 Requires:       openssh-clients
+Requires:       python%{python3_pkgversion}-jinja2
 %endif
 %description mgr-cephadm
 ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
 %endif
 %description mgr-cephadm
 ceph-mgr-cephadm is a ceph-mgr module for orchestration functions using
@@ -1486,6 +1488,7 @@ exit 0
 %{_mandir}/man8/ceph-authtool.8*
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-dencoder.8*
 %{_mandir}/man8/ceph-authtool.8*
 %{_mandir}/man8/ceph-conf.8*
 %{_mandir}/man8/ceph-dencoder.8*
+%{_mandir}/man8/ceph-diff-sorted.8*
 %{_mandir}/man8/ceph-rbdnamer.8*
 %{_mandir}/man8/ceph-syn.8*
 %{_mandir}/man8/ceph-post-file.8*
 %{_mandir}/man8/ceph-rbdnamer.8*
 %{_mandir}/man8/ceph-syn.8*
 %{_mandir}/man8/ceph-post-file.8*
@@ -1498,6 +1501,7 @@ exit 0
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
 %{_mandir}/man8/rbd-replay.8*
 %{_mandir}/man8/rbd-replay-many.8*
 %{_mandir}/man8/rbd-replay-prep.8*
+%{_mandir}/man8/rgw-orphan-list.8*
 %dir %{_datadir}/ceph/
 %{_datadir}/ceph/known_hosts_drop.ceph.com
 %{_datadir}/ceph/id_rsa_drop.ceph.com
 %dir %{_datadir}/ceph/
 %{_datadir}/ceph/known_hosts_drop.ceph.com
 %{_datadir}/ceph/id_rsa_drop.ceph.com
@@ -1915,10 +1919,12 @@ fi
 %{_mandir}/man8/rbd-nbd.8*
 
 %files radosgw
 %{_mandir}/man8/rbd-nbd.8*
 
 %files radosgw
+%{_bindir}/ceph-diff-sorted
 %{_bindir}/radosgw
 %{_bindir}/radosgw-token
 %{_bindir}/radosgw-es
 %{_bindir}/radosgw-object-expirer
 %{_bindir}/radosgw
 %{_bindir}/radosgw-token
 %{_bindir}/radosgw-es
 %{_bindir}/radosgw-object-expirer
+%{_bindir}/rgw-orphan-list
 %{_libdir}/libradosgw.so*
 %{_mandir}/man8/radosgw.8*
 %dir %{_localstatedir}/lib/ceph/radosgw
 %{_libdir}/libradosgw.so*
 %{_mandir}/man8/radosgw.8*
 %dir %{_localstatedir}/lib/ceph/radosgw
@@ -2167,7 +2173,7 @@ fi
 %files -n libcephfs-devel
 %dir %{_includedir}/cephfs
 %{_includedir}/cephfs/libcephfs.h
 %files -n libcephfs-devel
 %dir %{_includedir}/cephfs
 %{_includedir}/cephfs/libcephfs.h
-%{_includedir}/cephfs/ceph_statx.h
+%{_includedir}/cephfs/ceph_ll_client.h
 %{_libdir}/libcephfs.so
 
 %files -n python%{python3_pkgversion}-cephfs
 %{_libdir}/libcephfs.so
 
 %files -n python%{python3_pkgversion}-cephfs
index 7f81d0a40c816f9539151431047822811ccc7f6e..10af931873a2817e172606bd5a64a98676ad99bc 100644 (file)
@@ -1,7 +1,13 @@
-ceph (15.2.3-1bionic) bionic; urgency=medium
+ceph (15.2.4-1bionic) bionic; urgency=medium
 
 
 
 
- -- Jenkins Build Slave User <jenkins-build@braggi13.front.sepia.ceph.com>  Fri, 29 May 2020 16:37:54 +0000
+ -- Jenkins Build Slave User <jenkins-build@braggi13.front.sepia.ceph.com>  Tue, 30 Jun 2020 16:42:44 +0000
+
+ceph (15.2.4-1) stable; urgency=medium
+
+  * New upstream release
+
+ -- Ceph Release Team <ceph-maintainers@ceph.com>  Tue, 30 Jun 2020 15:40:49 +0000
 
 ceph (15.2.3-1) stable; urgency=medium
 
 
 ceph (15.2.3-1) stable; urgency=medium
 
index 1d0766f33553442968d12c95724ae98fcc77476e..b55a2d36f508939c054fac294b3a00713e16e9cf 100644 (file)
@@ -19,23 +19,46 @@ if(APPLE)
   list(APPEND fuse_suffixes osxfuse)
 endif()
 
   list(APPEND fuse_suffixes osxfuse)
 endif()
 
-find_path(
-  FUSE_INCLUDE_DIR
-  NAMES fuse_common.h fuse_lowlevel.h fuse.h
-  PATH_SUFFIXES ${fuse_suffixes})
-
-find_library(FUSE_LIBRARIES
-  NAMES ${fuse_names}
-  PATHS /usr/local/lib64 /usr/local/lib)
-
-foreach(ver "MAJOR" "MINOR")
-  file(STRINGS "${FUSE_INCLUDE_DIR}/fuse_common.h" fuse_ver_${ver}_line
-    REGEX "^#define[\t ]+FUSE_${ver}_VERSION[\t ]+[0-9]+$")
-  string(REGEX REPLACE ".*#define[\t ]+FUSE_${ver}_VERSION[\t ]+([0-9]+)$"
-    "\\1" FUSE_VERSION_${ver} "${fuse_ver_${ver}_line}")
-endforeach()
+find_package(PkgConfig QUIET)
+if(PKG_CONFIG_FOUND)
+  pkg_search_module(PKG_FUSE QUIET ${fuse_names})
+
+  string(REGEX REPLACE "([0-9]+)\.([0-9]+)\.([0-9]+)"
+    "\\1" FUSE_MAJOR_VERSION "${PKG_FUSE_VERSION}")
+  string(REGEX REPLACE "([0-9]+)\.([0-9]+)\.([0-9]+)"
+    "\\2" FUSE_MINOR_VERSION "${PKG_FUSE_VERSION}")
+
+  find_path(
+    FUSE_INCLUDE_DIR
+    NAMES fuse_common.h fuse_lowlevel.h fuse.h
+    HINTS ${PKG_FUSE_INCLUDE_DIRS}
+    PATH_SUFFIXES ${fuse_suffixes}
+    NO_DEFAULT_PATH)
+
+  find_library(FUSE_LIBRARIES
+    NAMES ${fuse_names}
+    HINTS ${PKG_FUSE_LIBDIR}
+    NO_DEFAULT_PATH)
+else()
+  find_path(
+    FUSE_INCLUDE_DIR
+    NAMES fuse_common.h fuse_lowlevel.h fuse.h
+    PATH_SUFFIXES ${fuse_suffixes})
+
+  find_library(FUSE_LIBRARIES
+    NAMES ${fuse_names}
+    PATHS /usr/local/lib64 /usr/local/lib)
+
+  foreach(ver "MAJOR" "MINOR")
+    file(STRINGS "${FUSE_INCLUDE_DIR}/fuse_common.h" fuse_ver_${ver}_line
+      REGEX "^#define[\t ]+FUSE_${ver}_VERSION[\t ]+[0-9]+$")
+    string(REGEX REPLACE ".*#define[\t ]+FUSE_${ver}_VERSION[\t ]+([0-9]+)$"
+      "\\1" FUSE_${ver}_VERSION "${fuse_ver_${ver}_line}")
+  endforeach()
+endif()
+
 set(FUSE_VERSION
 set(FUSE_VERSION
-  "${FUSE_VERSION_MAJOR}.${FUSE_VERSION_MINOR}")
+  "${FUSE_MAJOR_VERSION}.${FUSE_MINOR_VERSION}")
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(FUSE
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(FUSE
index e84b9e1f62d8ad5152564777da2c63eced815b55..53d503e1eaa0a08f7282c9967a347492d2be6bcb 100644 (file)
@@ -25,7 +25,7 @@ case "$1" in
        # 1. create user if not existing
        if ! getent passwd | grep -q "^cephadm:"; then
          echo -n "Adding system user cephadm.."
        # 1. create user if not existing
        if ! getent passwd | grep -q "^cephadm:"; then
          echo -n "Adding system user cephadm.."
-         adduser --quiet --system --disabled-password --gecos 'Ceph-dameon user for cephadm' --shell /bin/bash cephadm 2>/dev/null || true
+         adduser --quiet --system --disabled-password --gecos 'cephadm user for mgr/cephadm' --shell /bin/bash cephadm 2>/dev/null || true
          echo "..done"
        fi
 
          echo "..done"
        fi
 
index d98b16111a45ea9bee767e27c813efd21f1fef87..9abc2bd752dd076c74b1de08d5b50f7c8ac40117 100644 (file)
@@ -351,7 +351,8 @@ Depends: ceph-mgr (= ${binary:Version}),
         python3-six,
          ${misc:Depends},
          ${python:Depends},
         python3-six,
          ${misc:Depends},
          ${python:Depends},
-         openssh-client
+         openssh-client,
+         python3-jinja2
 Description: cephadm orchestrator module for ceph-mgr
  Ceph is a massively scalable, open-source, distributed
  storage system that runs on commodity hardware and delivers object,
 Description: cephadm orchestrator module for ceph-mgr
  Ceph is a massively scalable, open-source, distributed
  storage system that runs on commodity hardware and delivers object,
index e2cf6e9f375dfa92c8d8671f426276aebab0eb91..fbc1e4b95ffe6755087e89e4e9718619f676e6e9 100644 (file)
@@ -1,3 +1,3 @@
-usr/include/cephfs/ceph_statx.h
+usr/include/cephfs/ceph_ll_client.h
 usr/include/cephfs/libcephfs.h
 usr/lib/libcephfs.so
 usr/include/cephfs/libcephfs.h
 usr/lib/libcephfs.so
index 303791694c25a4df34161d1388ebddc95b05e7f6..1b19d292db411a8fe35f2493c965b7523d051b37 100644 (file)
@@ -1,7 +1,11 @@
 lib/systemd/system/ceph-radosgw*
 lib/systemd/system/ceph-radosgw*
+usr/bin/ceph-diff-sorted
 usr/bin/radosgw
 usr/bin/radosgw-es
 usr/bin/radosgw-object-expirer
 usr/bin/radosgw-token
 usr/bin/radosgw
 usr/bin/radosgw-es
 usr/bin/radosgw-object-expirer
 usr/bin/radosgw-token
+usr/bin/rgw-orphan-list
 usr/lib/libradosgw.so*
 usr/lib/libradosgw.so*
+usr/share/man/man8/ceph-diff-sorted.8
 usr/share/man/man8/radosgw.8
 usr/share/man/man8/radosgw.8
+usr/share/man/man8/rgw-orphan-list.8
index f94e46325fde92f026c7a8f08347f7e04d940db2..9444d56704f03ceab999669b7133dee72cc906dd 100644 (file)
@@ -138,5 +138,8 @@ Adoption process
      # systemctl stop ceph-rgw.target
      # rm -rf /var/lib/ceph/radosgw/ceph-*
 
      # systemctl stop ceph-rgw.target
      # rm -rf /var/lib/ceph/radosgw/ceph-*
 
+   For adopting single-site systems without a realm, see also
+   :ref:`rgw-multisite-migrate-from-single-site`.
+
 #. Check the ``ceph health detail`` output for cephadm warnings about
    stray cluster daemons or hosts that are not yet managed.
 #. Check the ``ceph health detail`` output for cephadm warnings about
    stray cluster daemons or hosts that are not yet managed.
index ca4ff970d640b075660cd45cb8c5547350228da4..4459a70925c63fc073d0a48109cbd0645d073351 100644 (file)
@@ -110,14 +110,18 @@ Enable Ceph CLI
 ===============
 
 Cephadm does not require any Ceph packages to be installed on the
 ===============
 
 Cephadm does not require any Ceph packages to be installed on the
-host.  However, we recommend enabling easy access to the the ``ceph``
+host.  However, we recommend enabling easy access to the ``ceph``
 command.  There are several ways to do this:
 
 * The ``cephadm shell`` command launches a bash shell in a container
 command.  There are several ways to do this:
 
 * The ``cephadm shell`` command launches a bash shell in a container
-  with all of the Ceph packages installed.  By default, if
+  with all of the Ceph packages installed. By default, if
   configuration and keyring files are found in ``/etc/ceph`` on the
   host, they are passed into the container environment so that the
   configuration and keyring files are found in ``/etc/ceph`` on the
   host, they are passed into the container environment so that the
-  shell is fully functional::
+  shell is fully functional. Note that when executed on a MON host,
+  ``cephadm shell`` will infer the ``config`` from the MON container
+  instead of using the default configuration. If ``--mount <path>``
+  is given, then the host ``<path>`` (file or directory) will appear
+  under ``/mnt`` inside the container::
 
     # cephadm shell
 
 
     # cephadm shell
 
@@ -167,6 +171,8 @@ To add each new host to the cluster, perform two steps:
      # ceph orch host add host3
 
 
      # ceph orch host add host3
 
 
+.. _deploy_additional_monitors:
+
 Deploy additional monitors (optional)
 =====================================
 
 Deploy additional monitors (optional)
 =====================================
 
@@ -363,3 +369,6 @@ RADOS pool *nfs-ganesha* and namespace *nfs-ns*,::
 
 See :ref:`orchestrator-cli-placement-spec` for details of the placement specification.
 
 
 See :ref:`orchestrator-cli-placement-spec` for details of the placement specification.
 
+Deploying custom containers
+===========================
+It is also possible to choose different containers than the default containers to deploy Ceph. See :ref:`containers` for information about your options in this regard. 
index 31c93a3cce59b4e3b112a3fe48b0d8297e2ca624..4b6471caf1519a36d7509fa0297f13c5d9664614 100644 (file)
@@ -1,9 +1,9 @@
 Monitoring Stack with Cephadm
 =============================
 
 Monitoring Stack with Cephadm
 =============================
 
-The Ceph dashboard makes use of prometheus, grafana, and related tools
-to store and visualize detailed metrics on cluster utilization and
-performance.  Ceph users have three options:
+Ceph Dashboard uses `Prometheus <https://prometheus.io/>`_, `Grafana
+<https://grafana.com/>`_, and related tools to store and visualize detailed
+metrics on cluster utilization and performance.  Ceph users have three options:
 
 #. Have cephadm deploy and configure these services.  This is the default
    when bootstrapping a new cluster unless the ``--skip-monitoring-stack``
 
 #. Have cephadm deploy and configure these services.  This is the default
    when bootstrapping a new cluster unless the ``--skip-monitoring-stack``
@@ -14,8 +14,27 @@ performance.  Ceph users have three options:
 #. Skip the monitoring stack completely.  Some Ceph dashboard graphs will
    not be available.
 
 #. Skip the monitoring stack completely.  Some Ceph dashboard graphs will
    not be available.
 
-Deploying monitoring with cephadm
----------------------------------
+The monitoring stack consists of `Prometheus <https://prometheus.io/>`_,
+Prometheus exporters (:ref:`mgr-prometheus`, `Node exporter
+<https://prometheus.io/docs/guides/node-exporter/>`_), `Prometheus Alert
+Manager <https://prometheus.io/docs/alerting/alertmanager/>`_ and `Grafana
+<https://grafana.com/>`_.
+
+.. note::
+
+  Prometheus' security model presumes that untrusted users have access to the
+  Prometheus HTTP endpoint and logs. Untrusted users have access to all the
+  (meta)data Prometheus collects that is contained in the database, plus a
+  variety of operational and debugging information.
+
+  However, Prometheus' HTTP API is limited to read-only operations.
+  Configurations can *not* be changed using the API and secrets are not
+  exposed. Moreover, Prometheus has some built-in measures to mitigate the
+  impact of denial of service attacks.
+
+  Please see `Prometheus' Security model
+  <https://prometheus.io/docs/operating/security/>` for more detailed
+  information.
 
 By default, bootstrap will deploy a basic monitoring stack.  If you
 did not do this (by passing ``--skip-monitoring-stack``, or if you
 
 By default, bootstrap will deploy a basic monitoring stack.  If you
 did not do this (by passing ``--skip-monitoring-stack``, or if you
@@ -57,6 +76,45 @@ completed, you should see something like this from ``ceph orch ls``::
   node-exporter      2/2  6s ago     docker.io/prom/node-exporter:latest             e5a616e4b9cf  present
   prometheus         1/1  6s ago     docker.io/prom/prometheus:latest                e935122ab143  present
 
   node-exporter      2/2  6s ago     docker.io/prom/node-exporter:latest             e5a616e4b9cf  present
   prometheus         1/1  6s ago     docker.io/prom/prometheus:latest                e935122ab143  present
 
+Using custom images
+~~~~~~~~~~~~~~~~~~~
+
+It is possible to install or upgrade monitoring components based on other
+images.  To do so, the name of the image to be used needs to be stored in the
+configuration first.  The following configuration options are available.
+
+- ``container_image_prometheus``
+- ``container_image_grafana``
+- ``container_image_alertmanager``
+- ``container_image_node_exporter``
+
+Custom images can be set with the ``ceph config`` command::
+
+     ceph config set mgr mgr/cephadm/<option_name> <value>
+
+For example::
+
+     ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
+
+.. note::
+
+     By setting a custom image, the default value will be overridden (but not
+     overwritten).  The default value changes when updates become available.
+     By setting a custom image, you will not be able to update the component
+     you have set the custom image for automatically.  You will need to
+     manually update the configuration (image name and tag) to be able to
+     install updates.
+     
+     If you choose to go with the recommendations instead, you can reset the
+     custom image you have set before.  After that, the default value will be
+     used again.  Use ``ceph config rm`` to reset the configuration option::
+
+          ceph config rm mgr mgr/cephadm/<option_name>
+
+     For example::
+
+          ceph config rm mgr mgr/cephadm/container_image_prometheus
+
 Disabling monitoring
 --------------------
 
 Disabling monitoring
 --------------------
 
@@ -87,3 +145,10 @@ cluster.
 * To enable the dashboard's prometheus-based alerting, see :ref:`dashboard-alerting`.
 
 * To enable dashboard integration with Grafana, see :ref:`dashboard-grafana`.
 * To enable the dashboard's prometheus-based alerting, see :ref:`dashboard-alerting`.
 
 * To enable dashboard integration with Grafana, see :ref:`dashboard-grafana`.
+
+Enabling RBD-Image monitoring
+---------------------------------
+
+Due to performance reasons, monitoring of RBD images is disabled by default. For more information please see
+:ref:`prometheus-rbd-io-statistics`. If disabled, the overview and details dashboards will stay empty in Grafana
+and the metrics will not be visible in Prometheus.
index 59e2f2965f327248f84cab81c9ab849ecea199a0..7768b1ff4a6a3ab9c612982e0a3a64916f934242 100644 (file)
@@ -254,3 +254,23 @@ You can remove a broken host from management with::
 You can disable this health warning with::
 
   ceph config set mgr mgr/cephadm/warn_on_failed_host_check false
 You can disable this health warning with::
 
   ceph config set mgr mgr/cephadm/warn_on_failed_host_check false
+
+/etc/ceph/ceph.conf
+===================
+
+Cephadm uses a minimized ``ceph.conf`` that only contains 
+a minimal set of information to connect to the Ceph cluster.
+
+To update the configuration settings, use::
+
+  ceph config set ...
+
+
+To set up an initial configuration before calling
+`bootstrap`, create an initial ``ceph.conf`` file. For example::
+
+  cat <<EOF > /etc/ceph/ceph.conf
+  [global]
+  osd crush chooseleaf type = 0
+  EOF
+  cephadm bootstrap -c /root/ceph.conf ...
index da4f55317b62f24f17706dbca6bcfd1cd569368a..29e36958e09c705d712019f97a26766a4ea5d28d 100644 (file)
@@ -148,3 +148,31 @@ To verify that the public key is in the authorized_keys file, run the following
 
      [root@mon1 ~]# cephadm shell -- ceph config-key get mgr/cephadm/ssh_identity_pub > key.pub
      [root@mon1 ~]# grep "`cat key.pub`"  /root/.ssh/authorized_keys
 
      [root@mon1 ~]# cephadm shell -- ceph config-key get mgr/cephadm/ssh_identity_pub > key.pub
      [root@mon1 ~]# grep "`cat key.pub`"  /root/.ssh/authorized_keys
+
+Failed to infer CIDR network error
+----------------------------------
+
+If you see this error::
+
+   ERROR: Failed to infer CIDR network for mon ip ***; pass --skip-mon-network to configure it later
+
+Or this error::
+
+   Must set public_network config option or specify a CIDR network, ceph addrvec, or plain IP
+
+This means that you must run a command of this form::
+
+  ceph config set mon public_network <mon_network>
+
+For more detail on operations of this kind, see :ref:`deploy_additional_monitors`
+
+Accessing the admin socket
+--------------------------
+
+Each Ceph daemon provides an admin socket that bypasses the
+MONs (See :ref:`rados-monitoring-using-admin-socket`).
+
+To access the admin socket, first enter the daemon container on the host::
+
+    [root@mon1 ~]# cephadm enter --name <daemon-name>
+    [ceph: root@mon1 /]# ceph --admin-daemon /var/run/ceph/ceph-<daemon-name>.asok config show
index 74e73b698e125fe8339df73fd8c2e1bfda6ad601..605864431c270d779afa48eeb0b6bc0d403ad004 100644 (file)
@@ -6,6 +6,9 @@ CephFS Administrative commands
 File Systems
 ------------
 
 File Systems
 ------------
 
+.. note:: The names of the file systems, metadata pools, and data pools can
+          only have characters in the set [a-zA-Z0-9\_-.].
+
 These commands operate on the CephFS file systems in your Ceph cluster.
 Note that by default only one file system is permitted: to enable
 creation of multiple file systems use ``ceph fs flag set enable_multiple true``.
 These commands operate on the CephFS file systems in your Ceph cluster.
 Note that by default only one file system is permitted: to enable
 creation of multiple file systems use ``ceph fs flag set enable_multiple true``.
index 11c54a1cd3c13f8b596255fa00cefb86286e6431..241ba3dc92785de4000277ef2f21255d888b93e1 100644 (file)
@@ -35,6 +35,8 @@ Generally, the metadata pool will have at most a few gigabytes of data. For
 this reason, a smaller PG count is usually recommended. 64 or 128 is commonly
 used in practice for large clusters.
 
 this reason, a smaller PG count is usually recommended. 64 or 128 is commonly
 used in practice for large clusters.
 
+.. note:: The names of the file systems, metadata pools, and data pools can
+          only have characters in the set [a-zA-Z0-9\_-.].
 
 Creating a file system
 ======================
 
 Creating a file system
 ======================
index b779b16d207ab2f3a988b1c08dd96c41aacf0725..6ff834b083f49bb60b4e88609afd7832f9ac83f7 100644 (file)
@@ -20,10 +20,10 @@ Layout fields
 -------------
 
 pool
 -------------
 
 pool
-    String, giving ID or name.  Which RADOS pool a file's data objects will be stored in.
+    String, giving ID or name. String can only have characters in the set [a-zA-Z0-9\_-.]. Which RADOS pool a file's data objects will be stored in.
 
 pool_namespace
 
 pool_namespace
-    String.  Within the data pool, which RADOS namespace the objects will
+    String with only characters in the set [a-zA-Z0-9\_-.].  Within the data pool, which RADOS namespace the objects will
     be written to.  Empty by default (i.e. default namespace).
 
 stripe_unit
     be written to.  Empty by default (i.e. default namespace).
 
 stripe_unit
index f602cc1063acacbad0305b75160e5fabf57d00ec..f77bd6c885f7ad7c478250e35486afb881cd438d 100644 (file)
@@ -115,15 +115,16 @@ FS Subvolumes
 
 Create a subvolume using::
 
 
 Create a subvolume using::
 
-    $ ceph fs subvolume create <vol_name> <subvol_name> [--size <size_in_bytes> --group_name <subvol_group_name> --pool_layout <data_pool_name> --uid <uid> --gid <gid> --mode <octal_mode>]
+    $ ceph fs subvolume create <vol_name> <subvol_name> [--size <size_in_bytes> --group_name <subvol_group_name> --pool_layout <data_pool_name> --uid <uid> --gid <gid> --mode <octal_mode> --namespace-isolated]
 
 
 The command succeeds even if the subvolume already exists.
 
 When creating a subvolume you can specify its subvolume group, data pool layout,
 uid, gid, file mode in octal numerals, and size in bytes. The size of the subvolume is
 
 
 The command succeeds even if the subvolume already exists.
 
 When creating a subvolume you can specify its subvolume group, data pool layout,
 uid, gid, file mode in octal numerals, and size in bytes. The size of the subvolume is
-specified by setting a quota on it (see :doc:`/cephfs/quota`). By default a
-subvolume is created within the default subvolume group, and with an octal file
+specified by setting a quota on it (see :doc:`/cephfs/quota`). The subvolume can be
+created in a separate RADOS namespace by specifying --namespace-isolated option. By
+default a subvolume is created within the default subvolume group, and with an octal file
 mode '755', uid of its subvolume group, gid of its subvolume group, data pool layout of
 its parent directory and no size limit.
 
 mode '755', uid of its subvolume group, gid of its subvolume group, data pool layout of
 its parent directory and no size limit.
 
@@ -172,6 +173,7 @@ The output format is json and contains fields as follows.
 * data_pool: data pool the subvolume belongs to
 * path: absolute path of a subvolume
 * type: subvolume type indicating whether it's clone or subvolume
 * data_pool: data pool the subvolume belongs to
 * path: absolute path of a subvolume
 * type: subvolume type indicating whether it's clone or subvolume
+* pool_namespace: RADOS namespace of the subvolume
 
 List subvolumes using::
 
 
 List subvolumes using::
 
@@ -193,6 +195,18 @@ List snapshots of a subvolume using::
 
     $ ceph fs subvolume snapshot ls <vol_name> <subvol_name> [--group_name <subvol_group_name>]
 
 
     $ ceph fs subvolume snapshot ls <vol_name> <subvol_name> [--group_name <subvol_group_name>]
 
+Fetch the metadata of a snapshot using::
+
+    $ ceph fs subvolume snapshot info <vol_name> <subvol_name> <snap_name> [--group_name <subvol_group_name>]
+
+The output format is json and contains fields as follows.
+
+* created_at: time of creation of snapshot in the format "YYYY-MM-DD HH:MM:SS:ffffff"
+* data_pool: data pool the snapshot belongs to
+* has_pending_clones: "yes" if snapshot clone is in progress otherwise "no"
+* protected: "yes" if snapshot is protected otherwise "no"
+* size: snapshot size in bytes
+
 Cloning Snapshots
 -----------------
 
 Cloning Snapshots
 -----------------
 
index 2fd475f130092737c0967cd9ed38b6c7b8beaeb5..1784de422968b69c02c0cfef0baf2b8b7f9ab234 100644 (file)
@@ -85,3 +85,18 @@ When you're done, you can tear down the cluster with::
 
   sudo ../src/ckill.sh   # or,
   sudo ../src/cephadm/cephadm rm-cluster --force --fsid `cat fsid`
 
   sudo ../src/ckill.sh   # or,
   sudo ../src/cephadm/cephadm rm-cluster --force --fsid `cat fsid`
+
+Note regarding network calls from CLI handlers
+==============================================
+
+Executing any cephadm CLI commands like ``ceph orch ls`` will block
+the mon command handler thread within the MGR, thus preventing any
+concurrent CLI calls. Note that pressing ``^C`` will not resolve this
+situation, as *only* the client will be aborted, but not exceution
+itself. This means, cephadm will be completely unresonsive, until the
+execution of the CLI handler is fully completed. Note that even
+``ceph orch ps`` will not respond, while another handler is executed.
+
+This means, we should only do very few calls to remote hosts synchronously. 
+As a guideline, cephadm should do at most ``O(1)`` network calls in CLI handlers. 
+Everything else should be done asynchronously in other threads, like ``serve()``.
diff --git a/ceph/doc/images/dashboard/invalid-credentials.png b/ceph/doc/images/dashboard/invalid-credentials.png
new file mode 100644 (file)
index 0000000..abd78b0
Binary files /dev/null and b/ceph/doc/images/dashboard/invalid-credentials.png differ
index c819c646dd0c59a9b4b0a5b051a444985703aba4..2c4efd00ef18f38cd34346d824f8e054693de06c 100644 (file)
@@ -3,6 +3,19 @@
 Ceph Container Images
 =====================
 
 Ceph Container Images
 =====================
 
+.. important::
+
+   Using the ``:latest`` tag is discouraged. If you use the ``:latest`` 
+   tag, there is no guarantee that the same image will be on each of 
+   your hosts.  Under these conditions, upgrades might not work 
+   properly. Remember that ``:latest`` is a relative tag, and a moving
+   target.
+
+   Instead of the ``:latest`` tag, use explicit tags or image IDs. For
+   example:
+
+   ``podman pull ceph/ceph:v15.2.0``
+
 Official Releases
 -----------------
 
 Official Releases
 -----------------
 
index 02655a8cd6dc5fa4153a385f935cf3da5299d917..96feaeb6fd6751041ab896dab6eb122824f764af 100644 (file)
@@ -49,7 +49,9 @@ endif()
 if(WITH_RADOSGW)
   list(APPEND man_srcs
        radosgw.rst
 if(WITH_RADOSGW)
   list(APPEND man_srcs
        radosgw.rst
-       radosgw-admin.rst)
+       radosgw-admin.rst
+       rgw-orphan-list.rst
+       ceph-diff-sorted.rst)
 endif()
 
 if(WITH_RBD)
 endif()
 
 if(WITH_RBD)
diff --git a/ceph/doc/man/8/ceph-diff-sorted.rst b/ceph/doc/man/8/ceph-diff-sorted.rst
new file mode 100644 (file)
index 0000000..99e9583
--- /dev/null
@@ -0,0 +1,71 @@
+:orphan:
+
+==========================================================
+ ceph-diff-sorted -- compare two sorted files line by line
+==========================================================
+
+.. program:: ceph-diff-sorted
+
+Synopsis
+========
+
+| **ceph-diff-sorted** *file1* *file2*
+
+Description
+===========
+
+:program:`ceph-diff-sorted` is a simplifed *diff* utility optimized
+for comparing two files with lines that are lexically sorted.
+
+The output is simplified in comparison to that of the standard `diff`
+tool available in POSIX systems. Angle brackets ('<' and '>') are used
+to show lines that appear in one file but not the other. The output is
+not compatible with the `patch` tool.
+
+This tool was created in order to perform diffs of large files (e.g.,
+containing billions of lines) that the standard `diff` tool cannot
+handle efficiently. Knowing that the lines are sorted allows this to
+be done efficiently with minimal memory overhead.
+
+The sorting of each file needs to be done lexcially. Most POSIX
+systems use the *LANG* environment variable to determine the `sort`
+tool's sorting order. To sort lexically we would need something such
+as:
+
+        $ LANG=C sort some-file.txt >some-file-sorted.txt
+
+Examples
+========
+
+Compare two files::
+
+        $ ceph-diff-sorted fileA.txt fileB.txt
+
+Exit Status
+===========
+
+When complete, the exit status will be set to one of the following:
+
+0
+  files same
+1
+  files different
+2
+  usage problem (e.g., wrong number of command-line arguments)
+3
+  problem opening input file
+4
+  bad file content (e.g., unsorted order or empty lines)
+
+
+Availability
+============
+
+:program:`ceph-diff-sorted` is part of Ceph, a massively scalable,
+open-source, distributed storage system.  Please refer to the Ceph
+documentation at http://ceph.com/docs for more information.
+
+See also
+========
+
+:doc:`rgw-orphan-list <rgw-orphan-list>`\(8)
index 388e339d97562f1513bfa512ca8af86bf447c4d1..3b6b2ad2b4c7225adc39c820adc4d30bc41cfcf8 100644 (file)
@@ -10,7 +10,7 @@ Synopsis
 ========
 
 | **ceph-osd** -i *osdnum* [ --osd-data *datapath* ] [ --osd-journal
 ========
 
 | **ceph-osd** -i *osdnum* [ --osd-data *datapath* ] [ --osd-journal
-  *journal* ] [ --mkfs ] [ --mkjournal ] [--flush-journal] [--check-allows-journal] [--check-wants-journal] [--check-needs-journal] [ --mkkey ]
+  *journal* ] [ --mkfs ] [ --mkjournal ] [--flush-journal] [--check-allows-journal] [--check-wants-journal] [--check-needs-journal] [ --mkkey ] [ --osdspec-affinity ]
 
 
 Description
 
 
 Description
@@ -118,6 +118,10 @@ Options
    Connect to specified monitor (instead of looking through
    ``ceph.conf``).
 
    Connect to specified monitor (instead of looking through
    ``ceph.conf``).
 
+.. option:: --osdspec-affinity
+
+   Set an affinity to a certain OSDSpec.
+   This option can only be used in conjunction with --mkfs.
 
 Availability
 ============
 
 Availability
 ============
index 4c3407bbda89deb80f6d024cb0f4ea1c4dc0583a..78aeb5ef29eab4de552d8b09ccb5eecf8d45cf07 100644 (file)
@@ -1300,8 +1300,7 @@ Subcommand ``cache-mode`` specifies the caching mode for cache tier <pool>.
 
 Usage::
 
 
 Usage::
 
-       ceph osd tier cache-mode <poolname> none|writeback|forward|readonly|
-       readforward|readproxy
+       ceph osd tier cache-mode <poolname> writeback|readproxy|readonly|none
 
 Subcommand ``remove`` removes the tier <tierpool> (the second one) from base pool
 <pool> (the first one).
 
 Subcommand ``remove`` removes the tier <tierpool> (the second one) from base pool
 <pool> (the first one).
index 9c24d5e829eae8aa59674800992c91c624ee27e2..bd5fa86989e267a0d668acc683de1b45f38b54e5 100644 (file)
@@ -46,6 +46,8 @@ Synopsis
                               [--config CONFIG] [--keyring KEYRING]
                               command [command ...]
 
                               [--config CONFIG] [--keyring KEYRING]
                               command [command ...]
 
+| **cephadm** **unit**  [-h] [--fsid FSID] --name NAME command
+
 | **cephadm** **logs** [-h] [--fsid FSID] --name NAME [command [command ...]]
 
 | **cephadm** **bootstrap** [-h] [--config CONFIG] [--mon-id MON_ID]
 | **cephadm** **logs** [-h] [--fsid FSID] --name NAME [command [command ...]]
 
 | **cephadm** **bootstrap** [-h] [--config CONFIG] [--mon-id MON_ID]
@@ -59,12 +61,17 @@ Synopsis
 |                           [--initial-dashboard-user INITIAL_DASHBOARD_USER]
 |                           [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD]
 |                           [--dashboard-key DASHBOARD_KEY]
 |                           [--initial-dashboard-user INITIAL_DASHBOARD_USER]
 |                           [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD]
 |                           [--dashboard-key DASHBOARD_KEY]
-|                           [--dashboard-crt DASHBOARD_CRT] [--skip-mon-network]
+|                           [--dashboard-crt DASHBOARD_CRT]
+|                           [--ssh-config SSH_CONFIG]
+|                           [--ssh-private-key SSH_PRIVATE_KEY]
+|                           [--ssh-public-key SSH_PUBLIC_KEY] [--skip-mon-network]
 |                           [--skip-dashboard] [--dashboard-password-noupdate]
 |                           [--no-minimize-config] [--skip-ping-check]
 |                           [--skip-pull] [--skip-firewalld] [--allow-overwrite]
 |                           [--allow-fqdn-hostname] [--skip-prepare-host]
 |                           [--orphan-initial-daemons] [--skip-monitoring-stack]
 |                           [--skip-dashboard] [--dashboard-password-noupdate]
 |                           [--no-minimize-config] [--skip-ping-check]
 |                           [--skip-pull] [--skip-firewalld] [--allow-overwrite]
 |                           [--allow-fqdn-hostname] [--skip-prepare-host]
 |                           [--orphan-initial-daemons] [--skip-monitoring-stack]
+|                           [--apply-spec APPLY_SPEC]
+
 
 
 | **cephadm** **deploy** [-h] --name NAME --fsid FSID [--config CONFIG]
 
 
 | **cephadm** **deploy** [-h] --name NAME --fsid FSID [--config CONFIG]
@@ -196,6 +203,9 @@ Arguments:
 * [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD] Initial password for the initial dashboard user
 * [--dashboard-key DASHBOARD_KEY] Dashboard key
 * [--dashboard-crt DASHBOARD_CRT] Dashboard certificate
 * [--initial-dashboard-password INITIAL_DASHBOARD_PASSWORD] Initial password for the initial dashboard user
 * [--dashboard-key DASHBOARD_KEY] Dashboard key
 * [--dashboard-crt DASHBOARD_CRT] Dashboard certificate
+* [--ssh-config SSH_CONFIG] SSH config
+* [--ssh-private-key SSH_PRIVATE_KEY] SSH private key
+* [--ssh-public-key SSH_PUBLIC_KEY] SSH public key
 * [--skip-mon-network]            set mon public_network based on bootstrap mon ip
 * [--skip-dashboard]              do not enable the Ceph Dashboard
 * [--dashboard-password-noupdate] stop forced dashboard password change
 * [--skip-mon-network]            set mon public_network based on bootstrap mon ip
 * [--skip-dashboard]              do not enable the Ceph Dashboard
 * [--dashboard-password-noupdate] stop forced dashboard password change
@@ -208,7 +218,7 @@ Arguments:
 * [--skip-prepare-host]           Do not prepare host
 * [--orphan-initial-daemons]      Do not create initial mon, mgr, and crash service specs
 * [--skip-monitoring-stack]       Do not automatically provision monitoring stack] (prometheus, grafana, alertmanager, node-exporter)
 * [--skip-prepare-host]           Do not prepare host
 * [--orphan-initial-daemons]      Do not create initial mon, mgr, and crash service specs
 * [--skip-monitoring-stack]       Do not automatically provision monitoring stack] (prometheus, grafana, alertmanager, node-exporter)
-
+* [--apply-spec APPLY_SPEC]       Apply cluster spec after bootstrap (copy ssh key, add hosts and apply services)
 
 ceph-volume
 -----------
 
 ceph-volume
 -----------
index 27569fa53e21eb0913871c58dec616305b7aa22f..a80f95d2d437af36dc1ef71cefa9c1f2775a451d 100644 (file)
@@ -108,6 +108,11 @@ which are as follows:
 :command:`bucket rewrite`
   Rewrite all objects in the specified bucket.
 
 :command:`bucket rewrite`
   Rewrite all objects in the specified bucket.
 
+:command:`bucket radoslist`
+  List the rados objects that contain the data for all objects is
+  the designated bucket, if --bucket=<bucket> is specified, or
+  otherwise all buckets.
+
 :command:`bucket reshard`
   Reshard a bucket.
 
 :command:`bucket reshard`
   Reshard a bucket.
 
@@ -399,13 +404,16 @@ which are as follows:
   Read data log status.
 
 :command:`orphans find`
   Read data log status.
 
 :command:`orphans find`
-  Init and run search for leaked rados objects
+  Init and run search for leaked rados objects.
+  DEPRECATED. See the "rgw-orphan-list" tool.
 
 :command:`orphans finish`
 
 :command:`orphans finish`
-  Clean up search for leaked rados objects
+  Clean up search for leaked rados objects.
+  DEPRECATED. See the "rgw-orphan-list" tool.
 
 :command:`orphans list-jobs`
   List the current job-ids for the orphans search.
 
 :command:`orphans list-jobs`
   List the current job-ids for the orphans search.
+  DEPRECATED. See the "rgw-orphan-list" tool.
 
 :command:`role create`
   create a new AWS role for use with STS.
 
 :command:`role create`
   create a new AWS role for use with STS.
diff --git a/ceph/doc/man/8/rgw-orphan-list.rst b/ceph/doc/man/8/rgw-orphan-list.rst
new file mode 100644 (file)
index 0000000..408242d
--- /dev/null
@@ -0,0 +1,69 @@
+:orphan:
+
+==================================================================
+ rgw-orphan-list -- list rados objects that are not indexed by rgw
+==================================================================
+
+.. program:: rgw-orphan-list
+
+Synopsis
+========
+
+| **rgw-orphan-list**
+
+Description
+===========
+
+:program:`rgw-orphan-list` is an *EXPERIMENTAL* RADOS gateway user
+administration utility. It produces a listing of rados objects that
+are not directly or indirectly referenced through the bucket indexes
+on a pool. It places the results and intermediate files on the local
+filesystem rather than on the ceph cluster itself, and therefore will
+not itself consume additional cluster storage.
+
+In theory orphans should not exist. However because ceph evolves
+rapidly, bugs do crop up, and they may result in orphans that are left
+behind.
+
+In its current form this utility does not take any command-line
+arguments or options. It will list the available pools and prompt the
+user to enter the pool they would like to list orphans for.
+
+Behind the scenes it runs `rados ls` and `radosgw-admin bucket
+radoslist ...` and produces a list of those entries that appear in the
+former but not the latter. Those entries are presumed to be the
+orphans.
+
+Warnings
+========
+
+This utility is currently considered *EXPERIMENTAL*.
+
+This utility will produce false orphan entries for unindexed buckets
+since such buckets have no bucket indices that can provide the
+starting point for tracing.
+
+Options
+=======
+
+At present there are no options.
+
+Examples
+========
+
+Launch the tool::
+
+        $ rgw-orphan-list
+
+Availability
+============
+
+:program:`radosgw-admin` is part of Ceph, a massively scalable, open-source,
+distributed storage system.  Please refer to the Ceph documentation at
+http://ceph.com/docs for more information.
+
+See also
+========
+
+:doc:`radosgw-admin <radosgw-admin>`\(8)
+:doc:`ceph-diff-sorted <ceph-diff-sorted>`\(8)
index 0c54f32fb6c986e7f11ac7648e7b95c7377bc719..08ef7259ae9915c8bd90ed77f5a896daf5227f24 100644 (file)
@@ -23,6 +23,7 @@
    man/8/ceph-run
    man/8/ceph-syn
    man/8/ceph
    man/8/ceph-run
    man/8/ceph-syn
    man/8/ceph
+   man/8/cephadm
    man/8/crushtool
    man/8/librados-config
    man/8/monmaptool
    man/8/crushtool
    man/8/librados-config
    man/8/monmaptool
@@ -40,4 +41,6 @@
    man/8/rbd-replay
    man/8/rbd
    man/8/rbdmap
    man/8/rbd-replay
    man/8/rbd
    man/8/rbdmap
+   man/8/rgw-orphan-list
    man/8/ceph-immutable-object-cache
    man/8/ceph-immutable-object-cache
+   man/8/ceph-diff-sorted
index 5d9cc86f5b232386b205811260406c205303a288..be298a5696eea2d643e4cc9bca97f3c705616ee4 100644 (file)
@@ -65,10 +65,9 @@ aspects of your Ceph cluster:
 * **Overall cluster health**: Display overall cluster status, performance
   and capacity metrics.
 * **Embedded Grafana Dashboards**: Ceph Dashboard is capable of embedding
 * **Overall cluster health**: Display overall cluster status, performance
   and capacity metrics.
 * **Embedded Grafana Dashboards**: Ceph Dashboard is capable of embedding
-  `Grafana <https://grafana.com>`_ dashboards in many locations, to display
-  additional information and performance metrics gathered by the
-  :ref:`mgr-prometheus`. See :ref:`dashboard-grafana` for details on how to
-  configure this functionality.
+  `Grafana`_ dashboards in many locations, to display additional information
+  and performance metrics gathered by the :ref:`mgr-prometheus`. See
+  :ref:`dashboard-grafana` for details on how to configure this functionality.
 * **Cluster logs**: Display the latest updates to the cluster's event and
   audit log files. Log entries can be filtered by priority, date or keyword.
 * **Hosts**: Display a list of all hosts associated to the cluster, which
 * **Cluster logs**: Display the latest updates to the cluster's event and
   audit log files. Log entries can be filtered by priority, date or keyword.
 * **Hosts**: Display a list of all hosts associated to the cluster, which
@@ -378,6 +377,31 @@ The available iSCSI gateways must be defined using the following commands::
 Enabling the Embedding of Grafana Dashboards
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Enabling the Embedding of Grafana Dashboards
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
+`Grafana`_ requires data from `Prometheus <https://prometheus.io/>`_. Although
+Grafana can use other data sources, the Grafana dashboards we provide contain
+queries that are specific to Prometheus. Our Grafana dashboards therefore
+require Prometheus as the data source. The Ceph :ref:`mgr-prometheus` also only
+exports its data in the Prometheus' common format. The Grafana dashboards rely
+on metric names from the Prometheus module and `Node exporter
+<https://prometheus.io/docs/guides/node-exporter/>`_. The Node exporter is a
+separate application that provides machine metrics.
+
+.. note::
+
+  Prometheus' security model presumes that untrusted users have access to the
+  Prometheus HTTP endpoint and logs. Untrusted users have access to all the
+  (meta)data Prometheus collects that is contained in the database, plus a
+  variety of operational and debugging information.
+
+  However, Prometheus' HTTP API is limited to read-only operations.
+  Configurations can *not* be changed using the API and secrets are not
+  exposed. Moreover, Prometheus has some built-in measures to mitigate the
+  impact of denial of service attacks.
+
+  Please see `Prometheus' Security model
+  <https://prometheus.io/docs/operating/security/>` for more detailed
+  information.
+
 Grafana and Prometheus are likely going to be bundled and installed by some
 orchestration tools along Ceph in the near future, but currently, you will have
 to install and configure both manually. After you have installed Prometheus and
 Grafana and Prometheus are likely going to be bundled and installed by some
 orchestration tools along Ceph in the near future, but currently, you will have
 to install and configure both manually. After you have installed Prometheus and
@@ -1068,5 +1092,172 @@ Plug-ins
 Dashboard Plug-ins extend the functionality of the dashboard in a modular
 and loosely coupled fashion.
 
 Dashboard Plug-ins extend the functionality of the dashboard in a modular
 and loosely coupled fashion.
 
+.. _Grafana: https://grafana.com/
+
 .. include:: dashboard_plugins/feature_toggles.inc.rst
 .. include:: dashboard_plugins/debug.inc.rst
 .. include:: dashboard_plugins/feature_toggles.inc.rst
 .. include:: dashboard_plugins/debug.inc.rst
+
+
+Troubleshooting the Dashboard
+-----------------------------
+
+Locating the Dashboard
+^^^^^^^^^^^^^^^^^^^^^^
+
+If you are unsure of the location of the Ceph Dashboard, run the following command::
+
+    $ ceph mgr services | jq .dashboard
+    "https://host:port"
+
+The command returns the URL where the Ceph Dashboard is located: ``https://<host>:<port>/``
+
+.. note::
+
+    Many Ceph command line tools return results in JSON format. You may have to install
+    the `jq <https://stedolan.github.io/jq>`_ command-line JSON processor utility on
+    your operating system beforehand.
+
+
+Accessing the Dashboard
+^^^^^^^^^^^^^^^^^^^^^^^
+
+If you are unable to access the Ceph Dashboard, run through the following
+commands:
+
+#. Verify the Ceph Dashboard module is enabled::
+
+    $ ceph mgr module ls | jq .enabled_modules
+
+   Ensure the Ceph Dashboard module is listed in the return value of the
+   command. Example snipped output from the command above::
+
+    [
+      "dashboard",
+      "iostat",
+      "restful"
+    ]
+
+#. If it is not listed, activate the module with the following command::
+
+    $ ceph mgr module enable dashboard
+
+#. Check the Ceph Dashboard and/or mgr log file for any errors. The exact
+   location of the log files depends on the Ceph configuration.
+
+   * Check if mgr log messages are written to a file by::
+
+        $ ceph config get mgr log_to_file
+        true
+
+   * Get the location of the log file (it's ``/var/log/ceph/<cluster-name>-<daemon-name>.log``
+     by default)::
+
+        $ ceph config get mgr log_file
+        /var/log/ceph/$cluster-$name.log
+
+#. Ensure the SSL/TSL support is configured properly:
+
+   * Check if the SSL/TSL support is enabled::
+
+       $ ceph config get mgr mgr/dashboard/ssl
+
+   * If the command returns ``true``, verify a certificate exists by::
+
+       $ ceph config-key get mgr/dashboard/crt
+
+     and::
+
+       $ ceph config-key get mgr/dashboard/key
+
+   * If it doesn't, run the following command to generate a self-signed
+     certificate or follow the instructions outlined in
+     :ref:`dashboard-ssl-tls-support`::
+
+       $ ceph dashboard create-self-signed-cert
+
+
+Trouble Logging into the Dashboard
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+If you are unable to log into the Ceph Dashboard and you receive the following
+error, run through the procedural checks below:
+
+.. image:: ../images/dashboard/invalid-credentials.png
+   :align: center
+
+#. Check that your user credentials are correct. If you are seeing the
+   notification message above when trying to log into the Ceph Dashboard, it
+   is likely you are using the wrong credentials. Double check your username
+   and password, and ensure the caps lock key is not enabled by accident.
+
+#. If your user credentials are correct, but you are experiencing the same
+   error, check that the user account exists::
+
+    $ ceph dashboard ac-user-show <username>
+
+   This command returns your user data. If the user does not exist, it will
+   print::
+
+    $ Error ENOENT: User <username> does not exist
+
+#. Check if the user is enabled::
+
+    $ ceph dashboard ac-user-show <username> | jq .enabled
+    true
+
+   Check if ``enabled`` is set to ``true`` for your user. If not the user is
+   not enabled, run::
+
+    $ ceph dashboard ac-user-enable <username>
+
+Please see :ref:`dashboard-user-role-management` for more information.
+
+
+A Dashboard Feature is Not Working
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When an error occurs on the backend, you will usually receive an error
+notification on the frontend. Run through the following scenarios to debug.
+
+#. Check the Ceph Dashboard/mgr logfile(s) for any errors. These can be
+   identified by searching for keywords, such as *500 Internal Server Error*,
+   followed by ``traceback``. The end of a traceback contains more details about
+   what exact error occurred.
+#. Check your web browser's Javascript Console for any errors.
+
+
+Ceph Dashboard Logs
+^^^^^^^^^^^^^^^^^^^
+
+Dashboard Debug Flag
+''''''''''''''''''''
+
+With this flag enabled, traceback of errors are included in backend responses.
+
+To enable this flag via the Ceph Dashboard, navigate from *Cluster* to *Manager
+modules*. Select *Dashboard module* and click the edit button. Click the
+*debug* checkbox and update.
+
+To enable it via the CLI, run the following command::
+
+    $ ceph dashboard debug enable
+
+
+Setting Logging Level of Dashboard Module
+'''''''''''''''''''''''''''''''''''''''''
+
+Setting the logging level to debug makes the log more verbose and helpful for
+debugging.
+
+#. Increase the logging level of manager daemons::
+
+   $ ceph tell mgr config set debug_mgr 20
+
+#. Adjust the logging level of the Ceph Dashboard module via the Dashboard or
+   CLI:
+
+   * Navigate from *Cluster* to *Manager modules*. Select *Dashboard module*
+     and click the edit button. Modify the ``log_level`` configuration.
+   * To adjust it via the CLI, run the following command::
+
+        $ bin/ceph config set mgr mgr/dashboard/log_level debug
index 440961f1b7dcea530a1c9828996f3e539594d691..6d3fc235f24cf15aad34b3458994cd2a22cb8d03 100644 (file)
@@ -70,8 +70,34 @@ List hosts associated with the cluster::
 
 Add and remove hosts::
 
 
 Add and remove hosts::
 
-    ceph orch host add <host>
-    ceph orch host rm <host>
+    ceph orch host add <hostname> [<addr>] [<labels>...]
+    ceph orch host rm <hostname>
+
+Host Specification
+------------------
+
+Many hosts can be added at once using
+``ceph orch apply -i`` by submitting a multi-document YAML file::
+
+    ---
+    service_type: host
+    addr: node-00
+    hostname: node-00
+    labels:
+    - example1
+    - example2
+    ---
+    service_type: host
+    addr: node-01
+    hostname: node-01
+    labels:
+    - grafana
+    ---
+    service_type: host
+    addr: node-02
+    hostname: node-02
+
+This can be combined with service specifications (below) to create a cluster spec file to deploy a whole cluster in one command.  see ``cephadm bootstrap --apply-spec`` also to do this during bootstrap. Cluster SSH Keys must be copied to hosts prior.
 
 OSD Management
 ==============
 
 OSD Management
 ==============
@@ -88,58 +114,144 @@ filtered to a particular host:
 
 Example::
 
 
 Example::
 
-    # ceph orch device ls
-    Host 192.168.121.206:
-    Device Path           Type       Size    Rotates  Available Model
-    /dev/sdb               hdd      50.0G       True       True ATA/QEMU HARDDISK
-    /dev/sda               hdd      50.0G       True      False ATA/QEMU HARDDISK
+    HOST    PATH      TYPE   SIZE  DEVICE  AVAIL  REJECT REASONS
+    master  /dev/vda  hdd   42.0G          False  locked
+    node1   /dev/vda  hdd   42.0G          False  locked
+    node1   /dev/vdb  hdd   8192M  387836  False  locked, LVM detected, Insufficient space (<5GB) on vgs
+    node1   /dev/vdc  hdd   8192M  450575  False  locked, LVM detected, Insufficient space (<5GB) on vgs
+    node3   /dev/vda  hdd   42.0G          False  locked
+    node3   /dev/vdb  hdd   8192M  395145  False  LVM detected, locked, Insufficient space (<5GB) on vgs
+    node3   /dev/vdc  hdd   8192M  165562  False  LVM detected, locked, Insufficient space (<5GB) on vgs
+    node2   /dev/vda  hdd   42.0G          False  locked
+    node2   /dev/vdb  hdd   8192M  672147  False  LVM detected, Insufficient space (<5GB) on vgs, locked
+    node2   /dev/vdc  hdd   8192M  228094  False  LVM detected, Insufficient space (<5GB) on vgs, locked
 
 
-    Host 192.168.121.181:
-    Device Path           Type       Size    Rotates  Available Model
-    /dev/sdb               hdd      50.0G       True       True ATA/QEMU HARDDISK
-    /dev/sda               hdd      50.0G       True      False ATA/QEMU HARDDISK
 
 
-.. note::
-    Output form Ansible orchestrator
+
+
+Erase Devices (Zap Devices)
+---------------------------
+
+Erase (zap) a device so that it can be resued. ``zap`` calls ``ceph-volume zap`` on the remote host.
+
+::
+
+     orch device zap <hostname> <path>
+
+Example command::
+
+     ceph orch device zap my_hostname /dev/sdx
+
 
 Create OSDs
 -----------
 
 Create OSDs on a group of devices on a single host::
 
 
 Create OSDs
 -----------
 
 Create OSDs on a group of devices on a single host::
 
-    ceph orch osd create <host>:<drive>
-    ceph orch osd create -i <path-to-drive-group.json>
+    ceph orch daemon add osd <host>:device1,device2
+
+or::
 
 
+    ceph orch apply osd -i <json_file/yaml_file>
 
 
-The output of ``osd create`` is not specified and may vary between orchestrator backends.
 
 
-Where ``drive.group.json`` is a JSON file containing the fields defined in
-:class:`ceph.deployment_utils.drive_group.DriveGroupSpec`
+or::
+
+    ceph orch apply osd --all-available-devices
+
+
+For a more in-depth guide to DriveGroups please refer to :ref:`drivegroups`
 
 Example::
 
 
 Example::
 
-    # ceph orch osd create 192.168.121.206:/dev/sdc
-    {"status": "OK", "msg": "", "data": {"event": "playbook_on_stats", "uuid": "7082f3ba-f5b7-4b7c-9477-e74ca918afcb", "stdout": "\r\nPLAY RECAP *********************************************************************\r\n192.168.121.206            : ok=96   changed=3    unreachable=0    failed=0   \r\n", "counter": 932, "pid": 10294, "created": "2019-05-28T22:22:58.527821", "end_line": 1170, "runner_ident": "083cad3c-8197-11e9-b07a-2016b900e38f", "start_line": 1166, "event_data": {"ignored": 0, "skipped": {"192.168.121.206": 186}, "ok": {"192.168.121.206": 96}, "artifact_data": {}, "rescued": 0, "changed": {"192.168.121.206": 3}, "pid": 10294, "dark": {}, "playbook_uuid": "409364a6-9d49-4e44-8b7b-c28e5b3adf89", "playbook": "add-osd.yml", "failures": {}, "processed": {"192.168.121.206": 1}}, "parent_uuid": "409364a6-9d49-4e44-8b7b-c28e5b3adf89"}}
+    # ceph orch daemon add osd node1:/dev/vdd
+    Created osd(s) 6 on host 'node1'
+
+
+If the 'apply' method is used. You will be presented with a preview of what will happen.
+
+Example::
+
+    # ceph orch apply osd --all-available-devices
+    NAME                  HOST  DATA     DB WAL
+    all-available-devices node1 /dev/vdb -  -
+    all-available-devices node2 /dev/vdc -  -
+    all-available-devices node3 /dev/vdd -  -
+
 
 .. note::
 
 .. note::
-    Output form Ansible orchestrator
+    Output form Cephadm orchestrator
 
 
-Decommission an OSD
+Remove an OSD
 -------------------
 ::
 
 -------------------
 ::
 
-    ceph orch osd rm <osd-id> [osd-id...]
+    ceph orch osd rm <svc_id>... [--replace] [--force]
 
 
-Removes one or more OSDs from the cluster and the host, if the OSDs are marked as
-``destroyed``.
+Removes one or more OSDs from the cluster.
 
 Example::
 
     # ceph orch osd rm 4
 
 Example::
 
     # ceph orch osd rm 4
-    {"status": "OK", "msg": "", "data": {"event": "playbook_on_stats", "uuid": "1a16e631-906d-48e0-9e24-fa7eb593cc0a", "stdout": "\r\nPLAY RECAP *********************************************************************\r\n192.168.121.158            : ok=2    changed=0    unreachable=0    failed=0   \r\n192.168.121.181            : ok=2    changed=0    unreachable=0    failed=0   \r\n192.168.121.206            : ok=2    changed=0    unreachable=0    failed=0   \r\nlocalhost                  : ok=31   changed=8    unreachable=0    failed=0   \r\n", "counter": 240, "pid": 10948, "created": "2019-05-28T22:26:09.264012", "end_line": 308, "runner_ident": "8c093db0-8197-11e9-b07a-2016b900e38f", "start_line": 301, "event_data": {"ignored": 0, "skipped": {"localhost": 37}, "ok": {"192.168.121.181": 2, "192.168.121.158": 2, "192.168.121.206": 2, "localhost": 31}, "artifact_data": {}, "rescued": 0, "changed": {"localhost": 8}, "pid": 10948, "dark": {}, "playbook_uuid": "a12ec40e-bce9-4bc9-b09e-2d8f76a5be02", "playbook": "shrink-osd.yml", "failures": {}, "processed": {"192.168.121.181": 1, "192.168.121.158": 1, "192.168.121.206": 1, "localhost": 1}}, "parent_uuid": "a12ec40e-bce9-4bc9-b09e-2d8f76a5be02"}}
+    Scheduled OSD(s) for removal
+
+
+OSDs that are not safe-to-destroy will be rejected.
+
+You can query the state of the operation with::
+
+    # ceph orch osd rm status
+    NAME  HOST  PGS STARTED_AT
+    osd.7 node1 55 2020-04-22 19:28:38.785761
+    osd.5 node3 3 2020-04-22 19:28:34.201685
+    osd.3 node2 0 2020-04-22 19:28:34.201695
+
+
+When no PGs are left on the osd, it will be decommissioned and removed from the cluster.
+
+
+Replace an OSD
+-------------------
+::
+
+    orch osd rm <svc_id>... --replace [--force]
+
+Example::
+
+    # ceph orch osd rm 4 --replace
+    Scheduled OSD(s) for replacement
+
+
+This follows the same procedure as the "Remove OSD" part with the exception that the OSD is not permanently removed
+from the crush hierarchy, but is assigned a 'destroyed' flag.
+
+**Preserving the OSD ID**
+
+The previously set the 'destroyed' flag is used to determined osd ids that will be reused in the next osd deployment.
+
+If you use OSDSpecs for osd deployment, your newly added disks will be assigned with the osd ids of their replaced
+counterpart, granted the new disk still match the OSDSpecs.
+
+For assistance in this process you can use the 'preview' feature:
+
+Example::
+
+
+    ceph orch apply osd --service-name <name_of_osd_spec> --preview
+    NAME                  HOST  DATA     DB WAL
+    <name_of_osd_spec>    node1 /dev/vdb -  -
+
+Tip: The name of your OSDSpec can be retrieved from **ceph orch ls**
+
+Alternatively, you can use your OSDSpec file::
+
+    ceph orch apply osd -i <osd_spec_file> --preview
+    NAME                  HOST  DATA     DB WAL
+    <name_of_osd_spec>    node1 /dev/vdb -  -
+
+
+If this matches your anticipated behavior, just omit the --preview flag to execute the deployment.
 
 
-.. note::
-    Output form Ansible orchestrator
 
 ..
     Blink Device Lights
 
 ..
     Blink Device Lights
@@ -294,6 +406,7 @@ to specify the deployment of services. For example:
         - host2
         - host3
     spec: ...
         - host2
         - host3
     spec: ...
+    unmanaged: false
         
 Where the properties of a service specification are the following:
 
         
 Where the properties of a service specification are the following:
 
@@ -305,6 +418,10 @@ Where the properties of a service specification are the following:
 * ``service_id`` is the name of the service. Omit the service time
 * ``placement`` is a :ref:`orchestrator-cli-placement-spec`
 * ``spec``: additional specifications for a specific service.
 * ``service_id`` is the name of the service. Omit the service time
 * ``placement`` is a :ref:`orchestrator-cli-placement-spec`
 * ``spec``: additional specifications for a specific service.
+* ``unmanaged``: If set to ``true``, the orchestrator will not deploy nor
+   remove any daemon associated with this service. Placement and all other
+   properties will be ignored. This is useful, if this service should not
+   be managed temporarily.
 
 Each service type can have different requirements for the spec.
 
 
 Each service type can have different requirements for the spec.
 
@@ -462,8 +579,7 @@ Or with hosts:
       hosts: 
         - host1
         - host2
       hosts: 
         - host1
         - host2
-        - host3
-
+        - host3 
 
 Configuring the Orchestrator CLI
 ================================
 
 Configuring the Orchestrator CLI
 ================================
@@ -498,7 +614,7 @@ This is an overview of the current implementation status of the orchestrators.
 =================================== ====== =========
  Command                             Rook   Cephadm
 =================================== ====== =========
 =================================== ====== =========
  Command                             Rook   Cephadm
 =================================== ====== =========
- apply iscsi                         ⚪      ⚪
+ apply iscsi                         ⚪     
  apply mds                           ✔      ✔
  apply mgr                           ⚪      ✔
  apply mon                           ✔      ✔
  apply mds                           ✔      ✔
  apply mgr                           ⚪      ✔
  apply mon                           ✔      ✔
@@ -513,10 +629,9 @@ This is an overview of the current implementation status of the orchestrators.
  daemon {stop,start,...}             ⚪      ✔
  device {ident,fault}-(on,off}       ⚪      ✔
  device ls                           ✔      ✔
  daemon {stop,start,...}             ⚪      ✔
  device {ident,fault}-(on,off}       ⚪      ✔
  device ls                           ✔      ✔
- iscsi add                           ⚪      ⚪
+ iscsi add                           ⚪     
  mds add                             ✔      ✔
  nfs add                             ✔      ✔
  mds add                             ✔      ✔
  nfs add                             ✔      ✔
- ps                                  ⚪      ✔
  rbd-mirror add                      ⚪      ✔
  rgw add                             ✔      ✔
  ps                                  ✔      ✔
  rbd-mirror add                      ⚪      ✔
  rgw add                             ✔      ✔
  ps                                  ✔      ✔
index e01196bb0ced4397356af59d448f5e9f7e2bacf6..8dbc44f5292ac858bcdd293cacadba26a55cf172 100644 (file)
@@ -31,6 +31,8 @@ configurable with ``ceph config-key set``, with keys
 ``mgr/prometheus/server_addr`` and ``mgr/prometheus/server_port``.
 This port is registered with Prometheus's `registry <https://github.com/prometheus/prometheus/wiki/Default-port-allocations>`_.
 
 ``mgr/prometheus/server_addr`` and ``mgr/prometheus/server_port``.
 This port is registered with Prometheus's `registry <https://github.com/prometheus/prometheus/wiki/Default-port-allocations>`_.
 
+.. _prometheus-rbd-io-statistics:
+
 RBD IO statistics
 -----------------
 
 RBD IO statistics
 -----------------
 
@@ -41,6 +43,10 @@ configuration parameter. The parameter is a comma or space separated list
 of ``pool[/namespace]`` entries. If the namespace is not specified the
 statistics are collected for all namespaces in the pool.
 
 of ``pool[/namespace]`` entries. If the namespace is not specified the
 statistics are collected for all namespaces in the pool.
 
+Example to activate the RBD-enabled pools ``pool1``, ``pool2`` and ``poolN``::
+
+  ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"
+
 The module makes the list of all available images scanning the specified
 pools and namespaces and refreshes it periodically. The period is
 configurable via the ``mgr/prometheus/rbd_stats_pools_refresh_interval``
 The module makes the list of all available images scanning the specified
 pools and namespaces and refreshes it periodically. The period is
 configurable via the ``mgr/prometheus/rbd_stats_pools_refresh_interval``
@@ -48,6 +54,10 @@ parameter (in sec) and is 300 sec (5 minutes) by default. The module will
 force refresh earlier if it detects statistics from a previously unknown
 RBD image.
 
 force refresh earlier if it detects statistics from a previously unknown
 RBD image.
 
+Example to turn up the sync interval to 10 minutes::
+
+  ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600
+
 Statistic names and labels
 ==========================
 
 Statistic names and labels
 ==========================
 
index 3e9292be53a2860fd42f4991e09a2c041ce302c2..6eaaa5c44923527dff8358faba139ead43ff6324 100644 (file)
@@ -7,10 +7,15 @@ The telemetry module sends anonymous data about the cluster back to the Ceph
 developers to help understand how Ceph is used and what problems users may
 be experiencing.
 
 developers to help understand how Ceph is used and what problems users may
 be experiencing.
 
+This data is visualized on `public dashboards <https://telemetry-public.ceph.com/>`_
+that allow the community to quickly see summary statistics on how many clusters
+are reporting, their total capacity and OSD count, and version distribution
+trends.
+
 Channels
 --------
 
 Channels
 --------
 
-The telemetry report is broken down into several "channels," each with
+The telemetry report is broken down into several "channels", each with
 a different type of information.  Assuming telemetry has been enabled,
 individual channels can be turned on and off.  (If telemetry is off,
 the per-channel setting has no effect.)
 a different type of information.  Assuming telemetry has been enabled,
 individual channels can be turned on and off.  (If telemetry is off,
 the per-channel setting has no effect.)
@@ -18,7 +23,7 @@ the per-channel setting has no effect.)
 * **basic** (default: on): Basic information about the cluster
 
     - capacity of the cluster
 * **basic** (default: on): Basic information about the cluster
 
     - capacity of the cluster
-    - number of monitors, managers, OSDs, MDSs, radosgws, or other daemons
+    - number of monitors, managers, OSDs, MDSs, object gateways, or other daemons
     - software version currently being used
     - number and types of RADOS pools and CephFS file systems
     - names of configuration options that have been changed from their
     - software version currently being used
     - number and types of RADOS pools and CephFS file systems
     - names of configuration options that have been changed from their
@@ -50,7 +55,7 @@ deployed, the version of Ceph, the distribution of the hosts and other
 parameters which help the project to gain a better understanding of
 the way Ceph is used.
 
 parameters which help the project to gain a better understanding of
 the way Ceph is used.
 
-Data is sent over HTTPS to *telemetry.ceph.com*.
+Data is sent secured to *https://telemetry.ceph.com*.
 
 Sample report
 -------------
 
 Sample report
 -------------
index 8e120446a7c39516c65ba7baf04a1a5e1fd27bf1..98691a043d49be24afb40997f0694ed068c755e5 100644 (file)
@@ -25,6 +25,27 @@ location and how it is being consumed with::
 
   ceph device info <devid>
 
 
   ceph device info <devid>
 
+Identifying physical devices
+----------------------------
+
+You can blink the drive LEDs on hardware enclosures to make the replacement of
+failed disks easy and less error-prone.  Use the following command::
+
+  device light on|off <devid> [ident|fault] [--force]
+
+The ``<devid>`` parameter is the device identification. You can obtain this
+information using the following command::
+
+  ceph device ls
+
+The ``[ident|fault]`` parameter is used to set the kind of light to blink.
+By default, the `identification` light is used.
+
+.. note::
+   This command needs the Cephadm or the Rook `orchestrator <https://docs.ceph.com/docs/master/mgr/orchestrator/#orchestrator-cli-module>`_ module enabled.
+   The orchestrator module enabled is shown by executing the following command::
+
+     ceph orch status
 
 Enabling monitoring
 -------------------
 
 Enabling monitoring
 -------------------
index e3a3e50b485d59663333b937c7d0e1fe6a31828a..ce2040a838480d40c52b97bd04647e46a14ac42d 100644 (file)
@@ -499,6 +499,7 @@ For a detailed discussion, refer to `Monitoring OSDs and Placement Groups`_.
 
 .. _Monitoring OSDs and Placement Groups: ../monitoring-osd-pg
 
 
 .. _Monitoring OSDs and Placement Groups: ../monitoring-osd-pg
 
+.. _rados-monitoring-using-admin-socket:
 
 Using the Admin Socket
 ======================
 
 Using the Admin Socket
 ======================
index b16e8dbc56cafb443e553e774d3d92bb6b19d63b..c9785c6b7979fc52b5092a3b1aee7dd697e54956 100644 (file)
@@ -447,6 +447,15 @@ configuration parameters.
 :Type: Integer
 :Default: ``3600``
 
 :Type: Integer
 :Default: ``3600``
 
+
+``rgw gc max concurrent io``
+
+:Description: The maximum number of concurrent IO operations that the RGW garbage
+              collection thread will use when purging old data.
+:Type: Integer
+:Default: ``10``
+
+
 Multisite Settings
 ==================
 
 Multisite Settings
 ==================
 
index 957c3641d639e494051d6e84799e2b100ec636dd..819986926c6d251e536afc6d8b3531abf6c969e8 100644 (file)
@@ -69,6 +69,7 @@ you may write data with one API and retrieve it with the other.
    STS Lite <STSLite>
    Keycloak <keycloak>
    Role <role>
    STS Lite <STSLite>
    Keycloak <keycloak>
    Role <role>
+   Orphan List and Associated Tooliing <orphans>
    troubleshooting
    Manpage radosgw <../../man/8/radosgw>
    Manpage radosgw-admin <../../man/8/radosgw-admin>
    troubleshooting
    Manpage radosgw <../../man/8/radosgw>
    Manpage radosgw-admin <../../man/8/radosgw-admin>
index b5e1b4cd95e327aad2d08fef19f2200d12df10c3..d3963234169b7964d79f52ca26f89197b9852877 100644 (file)
@@ -641,6 +641,8 @@ If the former master zone recovers, revert the operation.
 
        # systemctl restart ceph-radosgw@rgw.`hostname -s`
 
 
        # systemctl restart ceph-radosgw@rgw.`hostname -s`
 
+.. _rgw-multisite-migrate-from-single-site:
+
 Migrating a Single Site System to Multi-Site
 ============================================
 
 Migrating a Single Site System to Multi-Site
 ============================================
 
index fa608a409cf857dd56200ba91ac6a910f3f5a94a..3c0945f5cab6574098f78aa70b8db4b2c6c21a6c 100644 (file)
@@ -67,7 +67,7 @@ To update a topic, use the same command used for topic creation, with the topic
    &Name=<topic-name>
    &push-endpoint=<endpoint>
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=<exchange>]
    &Name=<topic-name>
    &push-endpoint=<endpoint>
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=<exchange>]
-   [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker]
+   [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker|routable]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
@@ -93,10 +93,11 @@ Request parameters:
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
- - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Two ack methods exist:
+ - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Three ack methods exist:
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
+  - "routable": message is considered "delivered" if broker can route to a consumer
 
 - Kafka endpoint 
 
 
 - Kafka endpoint 
 
diff --git a/ceph/doc/radosgw/orphans.rst b/ceph/doc/radosgw/orphans.rst
new file mode 100644 (file)
index 0000000..9a77d60
--- /dev/null
@@ -0,0 +1,115 @@
+==================================
+Orphan List and Associated Tooling
+==================================
+
+.. version added:: Luminous
+
+.. contents::
+
+Orphans are RADOS objects that are left behind after their associated
+RGW objects are removed. Normally these RADOS objects are removed
+automatically, either immediately or through a process known as
+"garbage collection". Over the history of RGW, however, there may have
+been bugs that prevented these RADOS objects from being deleted, and
+these RADOS objects may be consuming space on the Ceph cluster without
+being of any use. From the perspective of RGW, we call such RADOS
+objects "orphans".
+
+Orphans Find -- DEPRECATED
+--------------------------
+
+The `radosgw-admin` tool has/had three subcommands to help manage
+orphans, however these subcommands are (or will soon be)
+deprecated. These subcommands are:
+
+::
+   # radosgw-admin orphans find ...
+   # radosgw-admin orphans finish ...
+   # radosgw-admin orphans list-jobs ...
+
+There are two key problems with these subcommands, however. First,
+these subcommands have not been actively maintained and therefore have
+not tracked RGW as it has evolved in terms of features and updates. As
+a result the confidence that these subcommands can accurately identify
+true orphans is presently low.
+
+Second, these subcommands store intermediate results on the cluster
+itself. This can be problematic when cluster administrators are
+confronting insufficient storage space and want to remove orphans as a
+means of addressing the issue. The intermediate results could strain
+the existing cluster storage capacity even further.
+
+For these reasons "orphans find" has been deprecated.
+
+Orphan List
+-----------
+
+Because "orphans find" has been deprecated, RGW now includes an
+additional tool -- 'rgw-orphan-list'. When run it will list the
+available pools and prompt the user to enter the name of the data
+pool. At that point the tool will, perhaps after an extended period of
+time, produce a local file containing the RADOS objects from the
+designated pool that appear to be orphans. The administrator is free
+to examine this file and the decide on a course of action, perhaps
+removing those RADOS objects from the designated pool.
+
+All intermediate results are stored on the local file system rather
+than the Ceph cluster. So running the 'rgw-orphan-list' tool should
+have no appreciable impact on the amount of cluster storage consumed.
+
+WARNING: Experimental Status
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The 'rgw-orphan-list' tool is new and therefore currently considered
+experimental. The list of orphans produced should be "sanity checked"
+before being used for a large delete operation.
+
+WARNING: Specifying a Data Pool
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If a pool other than an RGW data pool is specified, the results of the
+tool will be erroneous. All RADOS objects found on such a pool will
+falsely be designated as orphans.
+
+WARNING: Unindexed Buckets
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+RGW allows for unindexed buckets, that is buckets that do not maintain
+an index of their contents. This is not a typical configuration, but
+it is supported. Because the 'rgw-orphan-list' tool uses the bucket
+indices to determine what RADOS objects should exist, objects in the
+unindexed buckets will falsely be listed as orphans.
+
+
+RADOS List
+----------
+
+One of the sub-steps in computing a list of orphans is to map each RGW
+object into its corresponding set of RADOS objects. This is done using
+a subcommand of 'radosgw-admin'.
+
+::
+   # radosgw-admin bucket radoslist [--bucket={bucket-name}]
+
+The subcommand will produce a list of RADOS objects that support all
+of the RGW objects. If a bucket is specified then the subcommand will
+only produce a list of RADOS objects that correspond back the RGW
+objects in the specified bucket.
+
+Note: Shared Bucket Markers
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Some administrators will be aware of the coding schemes used to name
+the RADOS objects that correspond to RGW objects, which include a
+"marker" unique to a given bucket.
+
+RADOS objects that correspond with the contents of one RGW bucket,
+however, may contain a marker that specifies a different bucket. This
+behavior is a consequence of the "shallow copy" optimization used by
+RGW. When larger objects are copied from bucket to bucket, only the
+"head" objects are actually copied, and the tail objects are
+shared. Those shared objects will contain the marker of the original
+bucket.
+
+.. _Data Layout in RADOS : ../layout
+.. _Pool Placement and Storage Classes : ../placement
index 61cd4def207ff93c54b66c97216a18c1f92dec08..fd3b9f021e64e48e0313bcac1906e16305f60cfb 100644 (file)
@@ -150,7 +150,7 @@ To update a topic, use the same command used for topic creation, with the topic
 
 ::
 
 
 ::
 
-   PUT /topics/<topic-name>[?OpaqueData=<opaque data>][&push-endpoint=<endpoint>[&amqp-exchange=<exchange>][&amqp-ack-level=none|broker][&verify-ssl=true|false][&kafka-ack-level=none|broker][&use-ssl=true|false][&ca-location=<file path>]]
+   PUT /topics/<topic-name>[?OpaqueData=<opaque data>][&push-endpoint=<endpoint>[&amqp-exchange=<exchange>][&amqp-ack-level=none|broker|routable][&verify-ssl=true|false][&kafka-ack-level=none|broker][&use-ssl=true|false][&ca-location=<file path>]]
 
 Request parameters:
 
 
 Request parameters:
 
@@ -173,10 +173,11 @@ The endpoint URI may include parameters depending with the type of endpoint:
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
- - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Two ack methods exist:
+ - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Three ack methods exist:
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
+  - "routable": message is considered "delivered" if broker can route to a consumer
 
 - Kafka endpoint 
 
 
 - Kafka endpoint 
 
@@ -348,7 +349,7 @@ Creates a new subscription.
 
 ::
 
 
 ::
 
-   PUT /subscriptions/<sub-name>?topic=<topic-name>[?push-endpoint=<endpoint>[&amqp-exchange=<exchange>][&amqp-ack-level=none|broker][&verify-ssl=true|false][&kafka-ack-level=none|broker][&ca-location=<file path>]]
+   PUT /subscriptions/<sub-name>?topic=<topic-name>[?push-endpoint=<endpoint>[&amqp-exchange=<exchange>][&amqp-ack-level=none|broker|routable][&verify-ssl=true|false][&kafka-ack-level=none|broker][&ca-location=<file path>]]
 
 Request parameters:
 
 
 Request parameters:
 
@@ -370,10 +371,11 @@ The endpoint URI may include parameters depending with the type of endpoint:
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
  - port defaults to: 5672
  - vhost defaults to: "/"
  - amqp-exchange: the exchanges must exist and be able to route messages based on topics (mandatory parameter for AMQP0.9.1)
- - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Two ack methods exist:
+ - amqp-ack-level: no end2end acking is required, as messages may persist in the broker before delivered into their final destination. Three ack methods exist:
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
 
   - "none": message is considered "delivered" if sent to broker
   - "broker": message is considered "delivered" if acked by broker (default)
+  - "routable": message is considered "delivered" if broker can route to a consumer
 
 - Kafka endpoint 
 
 
 - Kafka endpoint 
 
index b411a83fe20381b04ba5f012d01e73a02064f705..f10c29fd22e9ef1806e47541deae9319b6753f92 100644 (file)
@@ -11,8 +11,6 @@
     gcc -Wall `pkg-config fuse --cflags --libs` -lulockmgr fusexmp_fh.c -o fusexmp_fh
 */
 
     gcc -Wall `pkg-config fuse --cflags --libs` -lulockmgr fusexmp_fh.c -o fusexmp_fh
 */
 
-#define FUSE_USE_VERSION 30
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
diff --git a/ceph/monitoring/grafana/dashboards/radosgw-sync-overview.json b/ceph/monitoring/grafana/dashboards/radosgw-sync-overview.json
new file mode 100644 (file)
index 0000000..e9136d7
--- /dev/null
@@ -0,0 +1,440 @@
+{
+  "__requires": [
+    {
+      "type": "grafana",
+      "id": "grafana",
+      "name": "Grafana",
+      "version": "5.0.0"
+    },
+    {
+      "type": "panel",
+      "id": "graph",
+      "name": "Graph",
+      "version": "5.0.0"
+    }
+  ],
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "editable": false,
+  "gnetId": null,
+  "graphTooltip": 0,
+  "id": null,
+  "iteration": 1534386107523,
+  "links": [],
+  "panels": [
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "$datasource",
+      "fill": 1,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 0
+      },
+      "id": 1,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum by (source_zone) (rate(ceph_data_sync_from_zone_fetch_bytes_sum[30s]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{source_zone}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Replication (throughput) from Source Zone",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "unit": "bytes",
+          "format": "Bps",
+          "decimals": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ]
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "$datasource",
+      "fill": 1,
+      "gridPos": {
+        "h": 7,
+        "w": 7.4,
+        "x": 8.3,
+        "y": 0
+      },
+      "id": 2,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum by (source_zone) (rate(ceph_data_sync_from_zone_fetch_bytes_count[30s]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{source_zone}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Replication (objects) from Source Zone",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "decimals": null,
+          "label": "Objects/s",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ]
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "$datasource",
+      "fill": 1,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 16,
+        "y": 0
+      },
+      "id": 3,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum by (source_zone) (rate(ceph_data_sync_from_zone_poll_latency_sum[30s]) * 1000)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{source_zone}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Polling Request Latency from Source Zone",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "unit": "s",
+          "format": "ms",
+          "decimals": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ]
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "$datasource",
+      "fill": 1,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 7
+      },
+      "id": 4,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "percentage": false,
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum by (source_zone) (rate(ceph_data_sync_from_zone_fetch_errors[30s]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "{{source_zone}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "Unsuccessful Object Replications from Source Zone",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "decimals": null,
+          "label": "Count/s",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ]
+    }
+  ],
+  "refresh": "15s",
+  "schemaVersion": 16,
+  "style": "dark",
+  "tags": [
+    "overview"
+  ],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {},
+        "datasource": "$datasource",
+        "hide": 2,
+        "includeAll": true,
+        "label": null,
+        "multi": false,
+        "name": "rgw_servers",
+        "options": [],
+        "query": "prometheus",
+        "refresh": 1,
+        "regex": "",
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "current": {
+        "tags": [],
+        "text": "default",
+        "value": "default"
+        },
+        "hide": 0,
+        "label": "Data Source",
+        "name": "datasource",
+        "options": [],
+        "query": "prometheus",
+        "refresh": 1,
+        "regex": "",
+        "type": "datasource"
+      }
+    ]
+  },
+  "time": {
+    "from": "now-1h",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "15s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "",
+  "title": "RGW Sync Overview",
+  "uid": "rgw-sync-overview",
+  "version": 2
+}
diff --git a/ceph/monitoring/grafana/dashboards/rbd-details.json b/ceph/monitoring/grafana/dashboards/rbd-details.json
new file mode 100644 (file)
index 0000000..68fffad
--- /dev/null
@@ -0,0 +1,409 @@
+{\r
+  "__inputs": [],\r
+  "__requires": [\r
+    {\r
+      "type": "grafana",\r
+      "id": "grafana",\r
+      "name": "Grafana",\r
+      "version": "5.3.3"\r
+    },\r
+    {\r
+      "type": "panel",\r
+      "id": "graph",\r
+      "name": "Graph",\r
+      "version": "5.0.0"\r
+    }\r
+  ],\r
+  "annotations": {\r
+    "list": [\r
+      {\r
+        "builtIn": 1,\r
+        "datasource": "-- Grafana --",\r
+        "enable": true,\r
+        "hide": true,\r
+        "iconColor": "rgba(0, 211, 255, 1)",\r
+        "name": "Annotations & Alerts",\r
+        "type": "dashboard"\r
+      }\r
+    ]\r
+  },\r
+  "description": "Detailed Performance of RBD Images (IOPS/Throughput/Latency)",\r
+  "editable": false,\r
+  "gnetId": null,\r
+  "graphTooltip": 0,\r
+  "id": null,\r
+  "iteration": 1584428820779,\r
+  "links": [],\r
+  "panels": [\r
+    {\r
+      "aliasColors": {},\r
+      "bars": false,\r
+      "dashLength": 10,\r
+      "dashes": false,\r
+      "datasource": "$Datasource",\r
+      "fill": 1,\r
+      "gridPos": {\r
+        "h": 9,\r
+        "w": 8,\r
+        "x": 0,\r
+        "y": 0\r
+      },\r
+      "id": 6,\r
+      "legend": {\r
+        "avg": false,\r
+        "current": false,\r
+        "hideEmpty": false,\r
+        "hideZero": false,\r
+        "max": false,\r
+        "min": false,\r
+        "show": true,\r
+        "total": false,\r
+        "values": false\r
+      },\r
+      "lines": true,\r
+      "linewidth": 1,\r
+      "links": [],\r
+      "nullPointMode": "null as zero",\r
+      "percentage": false,\r
+      "pointradius": 5,\r
+      "points": false,\r
+      "renderer": "flot",\r
+      "seriesOverrides": [],\r
+      "spaceLength": 10,\r
+      "stack": false,\r
+      "steppedLine": false,\r
+      "targets": [\r
+        {\r
+          "expr": "irate(ceph_rbd_write_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Write",\r
+          "refId": "A"\r
+        },\r
+        {\r
+          "expr": "irate(ceph_rbd_read_ops{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Read",\r
+          "refId": "B"\r
+        }\r
+      ],\r
+      "thresholds": [],\r
+      "timeFrom": null,\r
+      "timeShift": null,\r
+      "title": "IOPS",\r
+      "tooltip": {\r
+        "shared": true,\r
+        "sort": 0,\r
+        "value_type": "individual"\r
+      },\r
+      "type": "graph",\r
+      "xaxis": {\r
+        "buckets": null,\r
+        "mode": "time",\r
+        "name": null,\r
+        "show": true,\r
+        "values": []\r
+      },\r
+      "yaxes": [\r
+        {\r
+          "format": "iops",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": "0",\r
+          "show": true\r
+        },\r
+        {\r
+          "format": "iops",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": null,\r
+          "show": true\r
+        }\r
+      ],\r
+      "yaxis": {\r
+        "align": true,\r
+        "alignLevel": null\r
+      }\r
+    },\r
+    {\r
+      "aliasColors": {},\r
+      "bars": false,\r
+      "dashLength": 10,\r
+      "dashes": false,\r
+      "datasource": "$Datasource",\r
+      "fill": 1,\r
+      "gridPos": {\r
+        "h": 9,\r
+        "w": 8,\r
+        "x": 8,\r
+        "y": 0\r
+      },\r
+      "id": 4,\r
+      "legend": {\r
+        "avg": false,\r
+        "current": false,\r
+        "max": false,\r
+        "min": false,\r
+        "show": true,\r
+        "total": false,\r
+        "values": false\r
+      },\r
+      "lines": true,\r
+      "linewidth": 1,\r
+      "links": [],\r
+      "nullPointMode": "null as zero",\r
+      "percentage": false,\r
+      "pointradius": 5,\r
+      "points": false,\r
+      "renderer": "flot",\r
+      "seriesOverrides": [],\r
+      "spaceLength": 10,\r
+      "stack": false,\r
+      "steppedLine": false,\r
+      "targets": [\r
+        {\r
+          "expr": "irate(ceph_rbd_write_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Write",\r
+          "refId": "A"\r
+        },\r
+        {\r
+          "expr": "irate(ceph_rbd_read_bytes{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Read",\r
+          "refId": "B"\r
+        }\r
+      ],\r
+      "thresholds": [],\r
+      "timeFrom": null,\r
+      "timeShift": null,\r
+      "title": "Throughput",\r
+      "tooltip": {\r
+        "shared": true,\r
+        "sort": 0,\r
+        "value_type": "individual"\r
+      },\r
+      "type": "graph",\r
+      "xaxis": {\r
+        "buckets": null,\r
+        "mode": "time",\r
+        "name": null,\r
+        "show": true,\r
+        "values": []\r
+      },\r
+      "yaxes": [\r
+        {\r
+          "format": "Bps",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": "0",\r
+          "show": true\r
+        },\r
+        {\r
+          "format": "Bps",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": null,\r
+          "show": true\r
+        }\r
+      ],\r
+      "yaxis": {\r
+        "align": true,\r
+        "alignLevel": null\r
+      }\r
+    },\r
+    {\r
+      "aliasColors": {},\r
+      "bars": false,\r
+      "dashLength": 10,\r
+      "dashes": false,\r
+      "datasource": "$Datasource",\r
+      "fill": 1,\r
+      "gridPos": {\r
+        "h": 9,\r
+        "w": 8,\r
+        "x": 16,\r
+        "y": 0\r
+      },\r
+      "id": 2,\r
+      "legend": {\r
+        "avg": false,\r
+        "current": false,\r
+        "max": false,\r
+        "min": false,\r
+        "show": true,\r
+        "total": false,\r
+        "values": false\r
+      },\r
+      "lines": true,\r
+      "linewidth": 1,\r
+      "links": [],\r
+      "nullPointMode": "null as zero",\r
+      "percentage": false,\r
+      "pointradius": 5,\r
+      "points": false,\r
+      "renderer": "flot",\r
+      "seriesOverrides": [],\r
+      "spaceLength": 10,\r
+      "stack": false,\r
+      "steppedLine": false,\r
+      "targets": [\r
+        {\r
+          "expr": "irate(ceph_rbd_write_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_write_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Write",\r
+          "refId": "A"\r
+        },\r
+        {\r
+          "expr": "irate(ceph_rbd_read_latency_sum{pool=\"$Pool\", image=\"$Image\"}[30s]) / irate(ceph_rbd_read_latency_count{pool=\"$Pool\", image=\"$Image\"}[30s])",\r
+          "format": "time_series",\r
+          "intervalFactor": 1,\r
+          "legendFormat": "Read",\r
+          "refId": "B"\r
+        }\r
+      ],\r
+      "thresholds": [],\r
+      "timeFrom": null,\r
+      "timeShift": null,\r
+      "title": "Average Latency",\r
+      "tooltip": {\r
+        "shared": true,\r
+        "sort": 0,\r
+        "value_type": "individual"\r
+      },\r
+      "type": "graph",\r
+      "xaxis": {\r
+        "buckets": null,\r
+        "mode": "time",\r
+        "name": null,\r
+        "show": true,\r
+        "values": []\r
+      },\r
+      "yaxes": [\r
+        {\r
+          "format": "ns",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": "0",\r
+          "show": true\r
+        },\r
+        {\r
+          "format": "ns",\r
+          "label": null,\r
+          "logBase": 1,\r
+          "max": null,\r
+          "min": null,\r
+          "show": true\r
+        }\r
+      ],\r
+      "yaxis": {\r
+        "align": true,\r
+        "alignLevel": null\r
+      }\r
+    }\r
+  ],\r
+  "refresh": false,\r
+  "schemaVersion": 16,\r
+  "style": "dark",\r
+  "tags": [],\r
+  "templating": {\r
+    "list": [\r
+      {\r
+        "current": {},\r
+        "hide": 0,\r
+        "label": null,\r
+        "name": "Datasource",\r
+        "options": [],\r
+        "query": "prometheus",\r
+        "refresh": 1,\r
+        "regex": "",\r
+        "skipUrlSync": false,\r
+        "type": "datasource"\r
+      },\r
+      {\r
+        "allValue": null,\r
+        "current": {},\r
+        "datasource": "$Datasource",\r
+        "hide": 0,\r
+        "includeAll": false,\r
+        "label": null,\r
+        "multi": false,\r
+        "name": "Pool",\r
+        "options": [],\r
+        "query": "label_values(pool)",\r
+        "refresh": 1,\r
+        "regex": "",\r
+        "skipUrlSync": false,\r
+        "sort": 0,\r
+        "tagValuesQuery": "",\r
+        "tags": [],\r
+        "tagsQuery": "",\r
+        "type": "query",\r
+        "useTags": false\r
+      },\r
+      {\r
+        "allValue": null,\r
+        "current": {},\r
+        "datasource": "$Datasource",\r
+        "hide": 0,\r
+        "includeAll": false,\r
+        "label": null,\r
+        "multi": false,\r
+        "name": "Image",\r
+        "options": [],\r
+        "query": "label_values(image)",\r
+        "refresh": 1,\r
+        "regex": "",\r
+        "skipUrlSync": false,\r
+        "sort": 0,\r
+        "tagValuesQuery": "",\r
+        "tags": [],\r
+        "tagsQuery": "",\r
+        "type": "query",\r
+        "useTags": false\r
+      }\r
+    ]\r
+  },\r
+  "time": {\r
+    "from": "now-1h",\r
+    "to": "now"\r
+  },\r
+  "timepicker": {\r
+    "refresh_intervals": [\r
+      "5s",\r
+      "10s",\r
+      "30s",\r
+      "1m",\r
+      "5m",\r
+      "15m",\r
+      "30m",\r
+      "1h",\r
+      "2h",\r
+      "1d"\r
+    ],\r
+    "time_options": [\r
+      "5m",\r
+      "15m",\r
+      "1h",\r
+      "6h",\r
+      "12h",\r
+      "24h",\r
+      "2d",\r
+      "7d",\r
+      "30d"\r
+    ]\r
+  },\r
+  "timezone": "",\r
+  "title": "RBD Details",\r
+  "uid": "YhCYGcuZz",\r
+  "version": 7\r
+}
\ No newline at end of file
index aebd816156066196da0b4eec3374ceab36d0fe89..acafdd6d8d96b473b5b2018e8e157562eb76eb81 100644 (file)
@@ -47,14 +47,14 @@ groups:
   - name: osd
     rules:
       - alert: 10% OSDs down
   - name: osd
     rules:
       - alert: 10% OSDs down
-        expr: (sum(ceph_osd_up) / count(ceph_osd_up)) * 100 <= 90
+        expr: count(ceph_osd_up == 0) / count(ceph_osd_up) * 100 >= 10
         labels:
           severity: critical
           type: ceph_default
           oid: 1.3.6.1.4.1.50495.15.1.2.4.1
         annotations:
           description: |
         labels:
           severity: critical
           type: ceph_default
           oid: 1.3.6.1.4.1.50495.15.1.2.4.1
         annotations:
           description: |
-            {{ $value | humanize}}% or {{with query "sum(ceph_osd_up)" }}{{ . | first | value }}{{ end }} of {{ with query "count(ceph_osd_up)"}}{{. | first | value }}{{ end }} OSDs are down (>=10%).
+            {{ $value | humanize }}% or {{ with query "count(ceph_osd_up == 0)" }}{{ . | first | value }}{{ end }} of {{ with query "count(ceph_osd_up)" }}{{ . | first | value }}{{ end }} OSDs are down (≥ 10%).
 
             The following OSDs are down:
             {{- range query "(ceph_osd_up * on(ceph_daemon) group_left(hostname) ceph_osd_metadata) == 0" }}
 
             The following OSDs are down:
             {{- range query "(ceph_osd_up * on(ceph_daemon) group_left(hostname) ceph_osd_metadata) == 0" }}
diff --git a/ceph/qa/.teuthology_branch b/ceph/qa/.teuthology_branch
new file mode 100644 (file)
index 0000000..1f7391f
--- /dev/null
@@ -0,0 +1 @@
+master
diff --git a/ceph/qa/objectstore/bluestore-avl.yaml b/ceph/qa/objectstore/bluestore-avl.yaml
deleted file mode 100644 (file)
index 92cf8de..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-overrides:
-  thrashosds:
-    bdev_inject_crash: 2
-    bdev_inject_crash_probability: .5
-  ceph:
-    fs: xfs
-    conf:
-      osd:
-        osd objectstore: bluestore
-        bluestore block size: 96636764160
-        debug bluestore: 20
-        debug bluefs: 20
-        debug rocksdb: 10
-        bluestore fsck on mount: true
-        bluestore allocator: avl
-        bluefs allocator: avl
-        # lower the full ratios since we can fill up a 100gb osd so quickly
-        mon osd full ratio: .9
-        mon osd backfillfull_ratio: .85
-        mon osd nearfull ratio: .8
-        osd failsafe full ratio: .95
-# this doesn't work with failures bc the log writes are not atomic across the two backends
-#        bluestore bluefs env mirror: true
-  ceph-deploy:
-    fs: xfs
-    bluestore: yes
-    conf:
-      osd:
-        osd objectstore: bluestore
-        bluestore block size: 96636764160
-        debug bluestore: 20
-        debug bluefs: 20
-        debug rocksdb: 10
-        bluestore fsck on mount: true
-        # lower the full ratios since we can fill up a 100gb osd so quickly
-        mon osd full ratio: .9
-        mon osd backfillfull_ratio: .85
-        mon osd nearfull ratio: .8
-        osd failsafe full ratio: .95
-
diff --git a/ceph/qa/objectstore/bluestore-hybrid.yaml b/ceph/qa/objectstore/bluestore-hybrid.yaml
new file mode 100644 (file)
index 0000000..68b9bc4
--- /dev/null
@@ -0,0 +1,40 @@
+overrides:
+  thrashosds:
+    bdev_inject_crash: 2
+    bdev_inject_crash_probability: .5
+  ceph:
+    fs: xfs
+    conf:
+      osd:
+        osd objectstore: bluestore
+        bluestore block size: 96636764160
+        debug bluestore: 20
+        debug bluefs: 20
+        debug rocksdb: 10
+        bluestore fsck on mount: true
+        bluestore allocator: hybrid
+        bluefs allocator: hybrid
+        # lower the full ratios since we can fill up a 100gb osd so quickly
+        mon osd full ratio: .9
+        mon osd backfillfull_ratio: .85
+        mon osd nearfull ratio: .8
+        osd failsafe full ratio: .95
+# this doesn't work with failures bc the log writes are not atomic across the two backends
+#        bluestore bluefs env mirror: true
+  ceph-deploy:
+    fs: xfs
+    bluestore: yes
+    conf:
+      osd:
+        osd objectstore: bluestore
+        bluestore block size: 96636764160
+        debug bluestore: 20
+        debug bluefs: 20
+        debug rocksdb: 10
+        bluestore fsck on mount: true
+        # lower the full ratios since we can fill up a 100gb osd so quickly
+        mon osd full ratio: .9
+        mon osd backfillfull_ratio: .85
+        mon osd nearfull ratio: .8
+        osd failsafe full ratio: .95
+
index d5a5ee332d7d5c7aee956c5529de01385c5db266..2008cd384dc098ea7c12d195a3fdf3fec52e88e6 100755 (executable)
@@ -45,7 +45,7 @@ walk(if type == "object" then del(.mtime) else . end)
 | walk(if type == "object" then del(.version) else . end)
 | walk(if type == "object" then del(.prior_version) else . end)'
 
 | walk(if type == "object" then del(.version) else . end)
 | walk(if type == "object" then del(.prior_version) else . end)'
 
-sortkeys='import json; import sys ; JSON=sys.stdin.read() ; ud = json.loads(JSON) ; print json.dumps(ud, sort_keys=True, indent=2)'
+sortkeys='import json; import sys ; JSON=sys.stdin.read() ; ud = json.loads(JSON) ; print(json.dumps(ud, sort_keys=True, indent=2))'
 
 function run() {
     local dir=$1
 
 function run() {
     local dir=$1
index f0ed3366c7575c7d72a9affbfcd9739f3a834408..a86e918e656c215f260001725fafde31e62908c3 100644 (file)
@@ -17,3 +17,4 @@ tasks:
 - exec:
     client.0:
     - ceph_test_trim_caps
 - exec:
     client.0:
     - ceph_test_trim_caps
+    - ceph_test_ino_release_cb
index 2ce44c8601fa576e95efb2d2a87a89ac553b8b5d..415684dee987f3141aaeba9d600f9519b5215409 100644 (file)
@@ -1,3 +1,7 @@
+overrides:
+  ceph:
+    log-whitelist:
+      - \(MON_DOWN\)
 tasks:
 - mon_thrash:
     revive_delay: 20
 tasks:
 - mon_thrash:
     revive_delay: 20
index a693f4b41c8f76c793afa9fc73d6890fd090b939..9e0ed4769b6fef83defa3cae39b7904c89a5e6e3 100644 (file)
@@ -1,8 +1,24 @@
 tasks:
 - install:
     extra_system_packages:
 tasks:
 - install:
     extra_system_packages:
-      deb: ['bison', 'flex', 'libelf-dev', 'libssl-dev']
-      rpm: ['bison', 'flex', 'elfutils-libelf-devel', 'openssl-devel']
+      deb:
+      - bison
+      - flex
+      - libelf-dev
+      - libssl-dev
+      - libaio-dev
+      - libtool-bin
+      - uuid-dev
+      - xfslibs-dev
+      rpm:
+      - bison
+      - flex
+      - elfutils-libelf-devel
+      - openssl-devel
+      - libaio-devel
+      - libtool
+      - libuuid-devel
+      - xfsprogs-devel
 - ceph:
 - thrashosds:
     chance_down: 1.0
 - ceph:
 - thrashosds:
     chance_down: 1.0
index 1c2ba286b0652a0b7a74a658afaa32778f8f9de6..94031518ea5eab78b2e0affdfa2f7f97207d7fe8 100644 (file)
@@ -1,17 +1,5 @@
 tasks:
 - ceph-fuse:
 tasks:
 - ceph-fuse:
-- install:
-    extra_system_packages:
-      deb:
-      - libaio-dev
-      - libtool-bin
-      - uuid-dev
-      - xfslibs-dev
-      rpm:
-      - libaio-devel
-      - libtool
-      - libuuid-devel
-      - xfsprogs-devel
 - workunit:
     timeout: 6h
     clients:
 - workunit:
     timeout: 6h
     clients:
index 387053022aef33f70fd89cea6569a84fcd7734ec..8a3ad9f58c3b445d6c4d75c3129e6d6eddefc7f3 100644 (file)
@@ -7,6 +7,7 @@ roles:
   - osd.2
   - osd.3
   - client.0
   - osd.2
   - osd.3
   - client.0
+  - ceph.rgw.realm.zone.a
   - node-exporter.a
   - alertmanager.a
 - - mon.b
   - node-exporter.a
   - alertmanager.a
 - - mon.b
index 6c52d78d615d41293daa59f072d0809c99254baf..f13b2e07ce7137c50f09074c165b16143dbeab65 100644 (file)
@@ -2,4 +2,4 @@ tasks:
 - cephadm.shell:
     env: [sha1]
     mon.a:
 - cephadm.shell:
     env: [sha1]
     mon.a:
-      - ceph orch upgrade start --image quay.io/ceph-ci/ceph:$sha1
+      - ceph orch upgrade start --image quay.ceph.io/ceph-ci/ceph:$sha1
deleted file mode 120000 (symlink)
index 5c3e0593cbc967a57d9b0aaf3998e1f3af29b26c..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../smoke/fixed-2.yaml
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..8c79ebe96bf6fc6b4569691241f5f5bd2edabc33
--- /dev/null
@@ -0,0 +1,31 @@
+roles:
+- - mon.a
+  - mon.c
+  - mgr.y
+  - osd.0
+  - osd.1
+  - osd.2
+  - osd.3
+  - client.0
+#   - ceph.rgw.realm.zone.a # Disabled, needs 15.2.4 as an upgrade start
+  - node-exporter.a
+  - alertmanager.a
+- - mon.b
+  - mgr.x
+  - osd.4
+  - osd.5
+  - osd.6
+  - osd.7
+  - client.1
+  - prometheus.a
+  - grafana.a
+  - node-exporter.b
+openstack:
+- volumes: # attached to each instance
+    count: 4
+    size: 10 # GB
+overrides:
+  ceph:
+    conf:
+      osd:
+        osd shutdown pgref assert: true
diff --git a/ceph/qa/suites/rados/cephadm/with-work/distro/ubuntu_latest.yaml b/ceph/qa/suites/rados/cephadm/with-work/distro/ubuntu_latest.yaml
deleted file mode 120000 (symlink)
index 3a09f9a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.qa/distros/supported/ubuntu_latest.yaml
\ No newline at end of file
diff --git a/ceph/qa/suites/rados/cephadm/workunits/distro/ubuntu_latest.yaml b/ceph/qa/suites/rados/cephadm/workunits/distro/ubuntu_latest.yaml
deleted file mode 120000 (symlink)
index 3a09f9a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-.qa/distros/supported/ubuntu_latest.yaml
\ No newline at end of file
index e61294eeed9a3cff1aba54b694631190cf1c2536..f210fc1c86df8e90f8208f04d2045bb25762b0c3 100644 (file)
@@ -52,4 +52,5 @@ tasks:
         - tasks.mgr.dashboard.test_role
         - tasks.mgr.dashboard.test_settings
         - tasks.mgr.dashboard.test_summary
         - tasks.mgr.dashboard.test_role
         - tasks.mgr.dashboard.test_settings
         - tasks.mgr.dashboard.test_summary
+        - tasks.mgr.dashboard.test_telemetry
         - tasks.mgr.dashboard.test_user
         - tasks.mgr.dashboard.test_user
index a84a1627bfb91f3adafa6526324708a380100f41..94c43895f52adb832bba2c8b2c52b02d8ef5f7ef 100644 (file)
@@ -3,9 +3,21 @@ overrides:
     conf:
       client:
         rgw crypt s3 kms backend: barbican
     conf:
       client:
         rgw crypt s3 kms backend: barbican
-        rgw keystone barbican tenant: rgwcrypt
+        rgw keystone barbican project: rgwcrypt
         rgw keystone barbican user: rgwcrypt-user
         rgw keystone barbican password: rgwcrypt-pass
         rgw keystone barbican user: rgwcrypt-user
         rgw keystone barbican password: rgwcrypt-pass
+        rgw keystone barbican domain: Default
+        rgw keystone api version: 3
+        rgw keystone accepted roles: admin,Member,creator
+        rgw keystone implicit tenants: true
+        rgw keystone accepted admin roles: admin
+        rgw swift enforce content length: true
+        rgw swift account in url: true
+        rgw swift versioning enabled: true
+        rgw keystone admin project: admin
+        rgw keystone admin user: admin
+        rgw keystone admin password: ADMIN
+        rgw keystone admin domain: Default
   rgw:
     client.0:
       use-keystone-role: client.0
   rgw:
     client.0:
       use-keystone-role: client.0
@@ -15,35 +27,33 @@ tasks:
 - tox: [ client.0 ]
 - keystone:
     client.0:
 - tox: [ client.0 ]
 - keystone:
     client.0:
-      sha1: 12.0.0.0b2
+      sha1: 17.0.0.0rc2
       force-branch: master
       force-branch: master
-      tenants:
-        - name: admin
-          description:  Admin Tenant
+      projects:
         - name: rgwcrypt
           description: Encryption Tenant
         - name: rgwcrypt
           description: Encryption Tenant
+          domain: default
         - name: barbican
           description: Barbican
         - name: barbican
           description: Barbican
+          domain: default
         - name: s3
           description: S3 project
         - name: s3
           description: S3 project
+          domain: default
       users:
       users:
-        - name: admin
-          password: ADMIN
-          project: admin
         - name: rgwcrypt-user
           password: rgwcrypt-pass
           project: rgwcrypt
         - name: rgwcrypt-user
           password: rgwcrypt-pass
           project: rgwcrypt
+          domain: default
         - name: barbican-user
           password: barbican-pass
           project: barbican
         - name: barbican-user
           password: barbican-pass
           project: barbican
+          domain: default
         - name: s3-user
           password: s3-pass
           project: s3
         - name: s3-user
           password: s3-pass
           project: s3
-      roles: [ name: admin, name: Member, name: creator ]
+          domain: default
+      roles: [ name: Member, name: creator ]
       role-mappings:
       role-mappings:
-        - name: admin
-          user: admin
-          project: admin
         - name: Member
           user: rgwcrypt-user
           project: rgwcrypt
         - name: Member
           user: rgwcrypt-user
           project: rgwcrypt
@@ -54,9 +64,6 @@ tasks:
           user: s3-user
           project: s3
       services:
           user: s3-user
           project: s3
       services:
-        - name: keystone
-          type: identity
-          description: Keystone Identity Service
         - name: swift
           type: object-store
           description: Swift Service
         - name: swift
           type: object-store
           description: Swift Service
index 9f52fee08e00159ed5115ce2e9ad0cae205e8c4f..f713f0b952b5c70f005a9531753c5f3e477b82bd 100644 (file)
@@ -1,7 +1,7 @@
 tasks:
 - s3tests:
     client.0:
 tasks:
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       barbican:
         kms_key: my-key-1
         kms_key2: my-key-2
       barbican:
         kms_key: my-key-1
         kms_key2: my-key-2
index a6ecc649a13bdbdc68966bfb175d5a7f58bde14b..c3d24c6c5a737b7b57e316839ffc9353ba515189 100644 (file)
@@ -4,12 +4,12 @@ tasks:
 - rgw: [client.0]
 - ragweed:
     client.0:
 - rgw: [client.0]
 - ragweed:
     client.0:
-      default-branch: ceph-master
+      default-branch: ceph-octopus
       rgw_server: client.0
       stages: prepare
 - ragweed:
     client.0:
       rgw_server: client.0
       stages: prepare
 - ragweed:
     client.0:
-      default-branch: ceph-master
+      default-branch: ceph-octopus
       rgw_server: client.0
       stages: check
 overrides:
       rgw_server: client.0
       stages: check
 overrides:
index 4cdded04e768a166f187af236bfba07225bbf73b..d234060bdaf3544b1c185161e62017da8ac7d589 100644 (file)
@@ -4,7 +4,7 @@ tasks:
 - rgw: [client.0]
 - s3tests:
     client.0:
 - rgw: [client.0]
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
 overrides:
   ceph:
       rgw_server: client.0
 overrides:
   ceph:
index ad2de4858b561d994c2e0d8489eaf9d382bfb3f1..99c776df788916c2360d7cdc475c54affb92595f 100644 (file)
@@ -8,24 +8,9 @@ tasks:
 - tox: [ client.0 ]
 - keystone:
     client.0:
 - tox: [ client.0 ]
 - keystone:
     client.0:
-      sha1: 12.0.0.0b2
+      sha1: 17.0.0.0rc2
       force-branch: master
       force-branch: master
-      tenants:
-        - name: admin
-          description:  Admin Tenant
-      users:
-        - name: admin
-          password: ADMIN
-          project: admin
-      roles: [ name: admin, name: Member ]
-      role-mappings:
-        - name: admin
-          user: admin
-          project: admin
       services:
       services:
-        - name: keystone
-          type: identity
-          description: Keystone Identity Service
         - name: swift
           type: object-store
           description: Swift Service
         - name: swift
           type: object-store
           description: Swift Service
@@ -35,7 +20,7 @@ tasks:
       use-keystone-role: client.0
 - tempest:
     client.0:
       use-keystone-role: client.0
 - tempest:
     client.0:
-      sha1: d3fa46495a78160989120ba39793f7ba2e22d81c
+      sha1: d43223773d75d2e82fb33a1281038e611c41d0f3
       force-branch: master
       use-keystone-role: client.0
       auth:
       force-branch: master
       use-keystone-role: client.0
       auth:
@@ -43,25 +28,27 @@ tasks:
         admin_project_name: admin
         admin_password: ADMIN
         admin_domain_name: Default
         admin_project_name: admin
         admin_password: ADMIN
         admin_domain_name: Default
+        tempest_roles: admin
       identity:
         uri: http://{keystone_public_host}:{keystone_public_port}/v2.0/
         uri_v3: http://{keystone_public_host}:{keystone_public_port}/v3/
       identity:
         uri: http://{keystone_public_host}:{keystone_public_port}/v2.0/
         uri_v3: http://{keystone_public_host}:{keystone_public_port}/v3/
+        auth_version: v3
         admin_role: admin
         admin_role: admin
+        default_domain_name: Default
       object-storage:
         reseller_admin_role: admin
       object-storage-feature-enabled:
         container_sync: false
       object-storage:
         reseller_admin_role: admin
       object-storage-feature-enabled:
         container_sync: false
-        discoverability: false
+        discoverability: true
       blacklist:
       blacklist:
-        # TODO(rzarzynski): we really need to update the list after
-        # merging PRs #15369 and #12704. Additionally, we would be
-        # able to enable the discoverability API testing above.
-        - .*test_list_containers_reverse_order.*
-        - .*test_list_container_contents_with_end_marker.*
-        - .*test_delete_non_empty_container.*
+        - .*test_account_quotas_negative.AccountQuotasNegativeTest.test_user_modify_quota
+        - .*test_container_acl_negative.ObjectACLsNegativeTest.*
+        - .*test_container_services_negative.ContainerNegativeTest.test_create_container_metadata_.*
+        - .*test_container_staticweb.StaticWebTest.test_web_index
+        - .*test_container_staticweb.StaticWebTest.test_web_listing_css
         - .*test_container_synchronization.*
         - .*test_container_synchronization.*
-        - .*test_get_object_after_expiration_time.*
-        - .*test_create_object_with_transfer_encoding.*
+        - .*test_object_services.PublicObjectTest.test_access_public_container_object_without_using_creds
+
 overrides:
   ceph:
     conf:
 overrides:
   ceph:
     conf:
@@ -69,10 +56,14 @@ overrides:
         osd_min_pg_log_entries: 10
         osd_max_pg_log_entries: 10
       client:
         osd_min_pg_log_entries: 10
         osd_max_pg_log_entries: 10
       client:
-        rgw keystone admin token: ADMIN
+        rgw keystone api version: 3
         rgw keystone accepted roles: admin,Member
         rgw keystone implicit tenants: true
         rgw keystone accepted admin roles: admin
         rgw swift enforce content length: true
         rgw swift account in url: true
         rgw swift versioning enabled: true
         rgw keystone accepted roles: admin,Member
         rgw keystone implicit tenants: true
         rgw keystone accepted admin roles: admin
         rgw swift enforce content length: true
         rgw swift account in url: true
         rgw swift versioning enabled: true
+        rgw keystone admin domain: Default
+        rgw keystone admin user: admin
+        rgw keystone admin password: ADMIN
+        rgw keystone admin project: admin
index e691920f744a097c4224cc712ef17ab475640543..5e95c998807867bc76f93d12f93c61adf6892d34 100644 (file)
@@ -1,7 +1,7 @@
 tasks:
 - s3tests:
     client.0:
 tasks:
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
 overrides:
   ceph:
       rgw_server: client.0
 overrides:
   ceph:
diff --git a/ceph/qa/suites/rgw/tools/+ b/ceph/qa/suites/rgw/tools/+
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ceph/qa/suites/rgw/tools/.qa b/ceph/qa/suites/rgw/tools/.qa
new file mode 120000 (symlink)
index 0000000..fea2489
--- /dev/null
@@ -0,0 +1 @@
+../.qa
\ No newline at end of file
diff --git a/ceph/qa/suites/rgw/tools/centos_latest.yaml b/ceph/qa/suites/rgw/tools/centos_latest.yaml
new file mode 120000 (symlink)
index 0000000..bd9854e
--- /dev/null
@@ -0,0 +1 @@
+.qa/distros/supported/centos_latest.yaml
\ No newline at end of file
diff --git a/ceph/qa/suites/rgw/tools/cluster.yaml b/ceph/qa/suites/rgw/tools/cluster.yaml
new file mode 100644 (file)
index 0000000..0eab7eb
--- /dev/null
@@ -0,0 +1,9 @@
+roles:
+- [mon.a, osd.0, osd.1, osd.2, mgr.0, client.0]
+openstack:
+- volumes: # attached to each instance
+    count: 1
+    size: 10 # GB
+overrides:
+  rgw:
+    frontend: beast
\ No newline at end of file
diff --git a/ceph/qa/suites/rgw/tools/tasks.yaml b/ceph/qa/suites/rgw/tools/tasks.yaml
new file mode 100644 (file)
index 0000000..acceb21
--- /dev/null
@@ -0,0 +1,19 @@
+tasks:
+- install:
+- ceph:
+- rgw:
+    client.0:
+      # force rgw_dns_name to be set with the fully qualified host name;
+      # it will be appended to the empty string
+      dns-name: ''
+- workunit:
+    clients:
+       client.0:
+           - rgw/test_rgw_orphan_list.sh
+overrides:
+  ceph:
+    conf:
+      client:
+        debug rgw: 20
+        debug ms: 1
+        rgw enable static website: false
index 8fbd3cefb928d03ed3f354fdf15e55f44837e60a..2788a8866504c36bfba52df425f76a19bfc16199 100644 (file)
@@ -1,6 +1,6 @@
 tasks:
 - ragweed:
     client.0:
 tasks:
 - ragweed:
     client.0:
-      default-branch: ceph-master
+      default-branch: ceph-octopus
       rgw_server: client.0
       stages: prepare,check
       rgw_server: client.0
       stages: prepare,check
index b5aef9b044b83cdb9b28cd40f31b989167d0d069..976b7b35efd5ad79dc753f4a45dd2368aa2f3886 100644 (file)
@@ -1,5 +1,5 @@
 tasks:
 - s3tests:
     client.0:
 tasks:
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
       rgw_server: client.0
index 9ca6fcfbdb06a22eaf3e2e1b8922e99ffb110296..a0ab98f2f2029039fa392a59131689d3993ef88d 100644 (file)
@@ -12,6 +12,6 @@ tasks:
       dns-s3website-name: s3-website.
 - s3tests:
     client.0:
       dns-s3website-name: s3-website.
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
       rgw_website_server: client.1
       rgw_server: client.0
       rgw_website_server: client.1
index 29a6cec129c0cde00ebfe402adc2a20e8d572059..a029c7f9eacafd4f07efff40c1c8ad923798f06e 100644 (file)
@@ -9,7 +9,7 @@ tasks:
 - rgw: [client.0]
 - s3tests:
     client.0:
 - rgw: [client.0]
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
 overrides:
   ceph:
       rgw_server: client.0
 overrides:
   ceph:
index 2ba6a4b497e04ae235ed6fb0cb88e65848146839..c5528b54106cf73d113d78b8adf7d3da74cba873 100644 (file)
@@ -5,7 +5,7 @@ tasks:
 - rgw: [client.0]
 - s3tests:
     client.0:
 - rgw: [client.0]
 - s3tests:
     client.0:
-      force-branch: ceph-master
+      force-branch: ceph-octopus
       rgw_server: client.0
 overrides:
   ceph:
       rgw_server: client.0
 overrides:
   ceph:
index 1bcca4e75aaad60e00ac331d9a7e302efaa70906..165076b017b2ebabc16c0ce134c4809f3291f66b 100644 (file)
@@ -3,7 +3,7 @@ meta:
    Run ceph on two nodes, using one of them as a client,
    with a separate client-only node.
    Use xfs beneath the osds.
    Run ceph on two nodes, using one of them as a client,
    with a separate client-only node.
    Use xfs beneath the osds.
-   install ceph/octopus v15.2.1 point version
+   install ceph/octopus v15.2.3 and the v15.2.x point versions
    run workload and upgrade-sequence in parallel
    (every point release should be tested)
    run workload and upgrade-sequence in parallel
    run workload and upgrade-sequence in parallel
    (every point release should be tested)
    run workload and upgrade-sequence in parallel
@@ -83,18 +83,17 @@ tasks:
 - print: "**** done workload v15.2.1"
 
 
 - print: "**** done workload v15.2.1"
 
 
-#######  upgrade to v15.2.?? PLACEHOLDER
-#- install.upgrade:
-#    #exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev']
-#    mon.a:
-#      tag: v15.2.??
-#    mon.b:
-#      tag: v15.2.??
-#    # Note that client.a IS NOT upgraded at this point
-#- parallel:
-#   - workload_octopus
-#   - upgrade-sequence_octopus
-#- print: "**** done parallel octopus v15.2.??"
+#######  upgrade to v15.2.3
+- install.upgrade:
+    #exclude_packages: ['ceph-mgr','libcephfs2','libcephfs-devel','libcephfs-dev']
+    mon.a:
+      tag: v15.2.3
+    mon.b:
+      tag: v15.2.3
+- parallel:
+   - workload_octopus
+   - upgrade-sequence_octopus
+- print: "**** done parallel octopus v15.2.3"
 
 ####  upgrade to latest octopus
 - install.upgrade:
 
 ####  upgrade to latest octopus
 - install.upgrade:
index 0ce4aefb7d0b04809d20c248d58dc38f30d13632..46b036ef4ced680dc80421721ec1ad45fb0183fa 100644 (file)
@@ -4,8 +4,9 @@ Deploy and configure Barbican for Teuthology
 import argparse
 import contextlib
 import logging
 import argparse
 import contextlib
 import logging
-import httplib
-from urlparse import urlparse
+import six
+from six.moves import http_client
+from six.moves.urllib.parse import urlparse
 import json
 
 from teuthology import misc as teuthology
 import json
 
 from teuthology import misc as teuthology
@@ -172,7 +173,7 @@ def configure_barbican(ctx, config):
     Configure barbican paste-api and barbican-api.
     """
     assert isinstance(config, dict)
     Configure barbican paste-api and barbican-api.
     """
     assert isinstance(config, dict)
-    (cclient, cconfig) = config.items()[0]
+    (cclient, cconfig) = next(iter(config.items()))
 
     keystone_role = cconfig.get('use-keystone-role', None)
     if keystone_role is None:
 
     keystone_role = cconfig.get('use-keystone-role', None)
     if keystone_role is None:
@@ -239,7 +240,7 @@ def create_secrets(ctx, config):
     Create a main and an alternate s3 user.
     """
     assert isinstance(config, dict)
     Create a main and an alternate s3 user.
     """
     assert isinstance(config, dict)
-    (cclient, cconfig) = config.items()[0]
+    (cclient, cconfig) = next(iter(config.items()))
 
     rgw_user = cconfig['rgw_user']
 
 
     rgw_user = cconfig['rgw_user']
 
@@ -250,30 +251,38 @@ def create_secrets(ctx, config):
                                                  port=barbican_port)
     log.info("barbican_url=%s", barbican_url)
     #fetching user_id of user that gets secrets for radosgw
                                                  port=barbican_port)
     log.info("barbican_url=%s", barbican_url)
     #fetching user_id of user that gets secrets for radosgw
-    token_req = httplib.HTTPConnection(keystone_host, keystone_port, timeout=30)
+    token_req = http_client.HTTPConnection(keystone_host, keystone_port, timeout=30)
     token_req.request(
         'POST',
     token_req.request(
         'POST',
-        '/v2.0/tokens',
+        '/v3/auth/tokens',
         headers={'Content-Type':'application/json'},
         headers={'Content-Type':'application/json'},
-        body=json.dumps(
-            {"auth":
-             {"passwordCredentials":
-              {"username": rgw_user["username"],
-               "password": rgw_user["password"]
-              },
-              "tenantName": rgw_user["tenantName"]
-             }
+        body=json.dumps({
+            "auth": {
+                "identity": {
+                    "methods": ["password"],
+                    "password": {
+                        "user": {
+                            "domain": {"id": "default"},
+                            "name": rgw_user["username"],
+                            "password": rgw_user["password"]
+                        }
+                    }
+                },
+                "scope": {
+                    "project": {
+                        "domain": {"id": "default"},
+                        "name": rgw_user["tenantName"]
+                    }
+                }
             }
             }
-        )
-    )
+        }))
     rgw_access_user_resp = token_req.getresponse()
     if not (rgw_access_user_resp.status >= 200 and
             rgw_access_user_resp.status < 300):
         raise Exception("Cannot authenticate user "+rgw_user["username"]+" for secret creation")
     #    baru_resp = json.loads(baru_req.data)
     rgw_access_user_resp = token_req.getresponse()
     if not (rgw_access_user_resp.status >= 200 and
             rgw_access_user_resp.status < 300):
         raise Exception("Cannot authenticate user "+rgw_user["username"]+" for secret creation")
     #    baru_resp = json.loads(baru_req.data)
-    rgw_access_user_data = json.loads(rgw_access_user_resp.read())
-    rgw_user_id = rgw_access_user_data['access']['user']['id']
-
+    rgw_access_user_data = json.loads(six.ensure_str(rgw_access_user_resp.read()))
+    rgw_user_id = rgw_access_user_data['token']['user']['id']
     if 'secrets' in cconfig:
         for secret in cconfig['secrets']:
             if 'name' not in secret:
     if 'secrets' in cconfig:
         for secret in cconfig['secrets']:
             if 'name' not in secret:
@@ -287,30 +296,37 @@ def create_secrets(ctx, config):
             if 'password' not in secret:
                 raise ConfigError('barbican.secrets must have "password" field')
 
             if 'password' not in secret:
                 raise ConfigError('barbican.secrets must have "password" field')
 
-            token_req = httplib.HTTPConnection(keystone_host, keystone_port, timeout=30)
+            token_req = http_client.HTTPConnection(keystone_host, keystone_port, timeout=30)
             token_req.request(
                 'POST',
             token_req.request(
                 'POST',
-                '/v2.0/tokens',
+                '/v3/auth/tokens',
                 headers={'Content-Type':'application/json'},
                 headers={'Content-Type':'application/json'},
-                body=json.dumps(
-                    {
-                        "auth": {
-                            "passwordCredentials": {
-                                "username": secret["username"],
-                                "password": secret["password"]
-                            },
-                            "tenantName":secret["tenantName"]
+                body=json.dumps({
+                    "auth": {
+                        "identity": {
+                            "methods": ["password"],
+                            "password": {
+                                "user": {
+                                    "domain": {"id": "default"},
+                                    "name": secret["username"],
+                                    "password": secret["password"]
+                                }
+                            }
+                        },
+                        "scope": {
+                            "project": {
+                                "domain": {"id": "default"},
+                                "name": secret["tenantName"]
+                            }
                         }
                     }
                         }
                     }
-                )
-            )
+                }))
             token_resp = token_req.getresponse()
             if not (token_resp.status >= 200 and
                     token_resp.status < 300):
                 raise Exception("Cannot authenticate user "+secret["username"]+" for secret creation")
 
             token_resp = token_req.getresponse()
             if not (token_resp.status >= 200 and
                     token_resp.status < 300):
                 raise Exception("Cannot authenticate user "+secret["username"]+" for secret creation")
 
-            token_data = json.loads(token_resp.read())
-            token_id = token_data['access']['token']['id']
+            token_id = token_resp.getheader('x-subject-token')
 
             key1_json = json.dumps(
                 {
 
             key1_json = json.dumps(
                 {
@@ -324,7 +340,7 @@ def create_secrets(ctx, config):
                     "payload_content_encoding": "base64"
                 })
 
                     "payload_content_encoding": "base64"
                 })
 
-            sec_req = httplib.HTTPConnection(barbican_host, barbican_port, timeout=30)
+            sec_req = http_client.HTTPConnection(barbican_host, barbican_port, timeout=30)
             try:
                 sec_req.request(
                     'POST',
             try:
                 sec_req.request(
                     'POST',
@@ -342,7 +358,7 @@ def create_secrets(ctx, config):
             if not (barbican_sec_resp.status >= 200 and
                     barbican_sec_resp.status < 300):
                 raise Exception("Cannot create secret")
             if not (barbican_sec_resp.status >= 200 and
                     barbican_sec_resp.status < 300):
                 raise Exception("Cannot create secret")
-            barbican_data = json.loads(barbican_sec_resp.read())
+            barbican_data = json.loads(six.ensure_str(barbican_sec_resp.read()))
             if 'secret_ref' not in barbican_data:
                 raise ValueError("Malformed secret creation response")
             secret_ref = barbican_data["secret_ref"]
             if 'secret_ref' not in barbican_data:
                 raise ValueError("Malformed secret creation response")
             secret_ref = barbican_data["secret_ref"]
@@ -355,7 +371,7 @@ def create_secrets(ctx, config):
                         "project-access": True
                     }
                 })
                         "project-access": True
                     }
                 })
-            acl_req = httplib.HTTPConnection(secret_url_parsed.netloc, timeout=30)
+            acl_req = http_client.HTTPConnection(secret_url_parsed.netloc, timeout=30)
             acl_req.request(
                 'PUT',
                 secret_url_parsed.path+'/acl',
             acl_req.request(
                 'PUT',
                 secret_url_parsed.path+'/acl',
@@ -393,11 +409,9 @@ def task(ctx, config):
       - tox: [ client.0 ]
       - keystone:
           client.0:
       - tox: [ client.0 ]
       - keystone:
           client.0:
-            sha1: 12.0.0.0b2
+            sha1: 17.0.0.0rc2
             force-branch: master
             force-branch: master
-            tenants:
-              - name: admin
-                description:  Admin Tenant
+            projects:
               - name: rgwcrypt
                 description: Encryption Tenant
               - name: barbican
               - name: rgwcrypt
                 description: Encryption Tenant
               - name: barbican
@@ -405,9 +419,6 @@ def task(ctx, config):
               - name: s3
                 description: S3 project
             users:
               - name: s3
                 description: S3 project
             users:
-              - name: admin
-                password: ADMIN
-                project: admin
               - name: rgwcrypt-user
                 password: rgwcrypt-pass
                 project: rgwcrypt
               - name: rgwcrypt-user
                 password: rgwcrypt-pass
                 project: rgwcrypt
@@ -417,11 +428,8 @@ def task(ctx, config):
               - name: s3-user
                 password: s3-pass
                 project: s3
               - name: s3-user
                 password: s3-pass
                 project: s3
-            roles: [ name: admin, name: Member, name: creator ]
+            roles: [ name: Member, name: creator ]
             role-mappings:
             role-mappings:
-              - name: admin
-                user: admin
-                project: admin
               - name: Member
                 user: rgwcrypt-user
                 project: rgwcrypt
               - name: Member
                 user: rgwcrypt-user
                 project: rgwcrypt
index c5567a05d020efa6f8f9dcc7d8c97172602c3616..3255107add602b87a6ff220fe6bbde76db9e483e 100644 (file)
@@ -44,7 +44,7 @@ class CBT(Task):
             )
 
         benchmark_config = self.config.get('benchmarks')
             )
 
         benchmark_config = self.config.get('benchmarks')
-        benchmark_type = benchmark_config.keys()[0]
+        benchmark_type = next(iter(benchmark_config.keys()))
         if benchmark_type in ['librbdfio', 'fio']:
           testdir = misc.get_testdir(self.ctx)
           benchmark_config[benchmark_type]['cmd_path'] = os.path.join(testdir, 'fio/fio')
         if benchmark_type in ['librbdfio', 'fio']:
           testdir = misc.get_testdir(self.ctx)
           benchmark_config[benchmark_type]['cmd_path'] = os.path.join(testdir, 'fio/fio')
@@ -80,7 +80,7 @@ class CBT(Task):
             cbt_depends = ['python3-yaml', 'python3-lxml', 'librbd-dev', 'collectl']
         self.first_mon.run(args=install_cmd + cbt_depends)
 
             cbt_depends = ['python3-yaml', 'python3-lxml', 'librbd-dev', 'collectl']
         self.first_mon.run(args=install_cmd + cbt_depends)
 
-        benchmark_type = self.cbt_config.get('benchmarks').keys()[0]
+        benchmark_type = next(iter(self.cbt_config.get('benchmarks').keys()))
         self.log.info('benchmark: %s', benchmark_type)
 
         if benchmark_type in ['librbdfio', 'fio']:
         self.log.info('benchmark: %s', benchmark_type)
 
         if benchmark_type in ['librbdfio', 'fio']:
@@ -201,7 +201,7 @@ class CBT(Task):
 
     def setup(self):
         super(CBT, self).setup()
 
     def setup(self):
         super(CBT, self).setup()
-        self.first_mon = self.ctx.cluster.only(misc.get_first_mon(self.ctx, self.config)).remotes.keys()[0]
+        self.first_mon = next(iter(self.ctx.cluster.only(misc.get_first_mon(self.ctx, self.config)).remotes.keys()))
         self.cbt_config = self.generate_cbt_config()
         self.log.info('cbt configuration is %s', self.cbt_config)
         self.cbt_dir = os.path.join(misc.get_archive_dir(self.ctx), 'cbt')
         self.cbt_config = self.generate_cbt_config()
         self.log.info('cbt configuration is %s', self.cbt_config)
         self.cbt_dir = os.path.join(misc.get_archive_dir(self.ctx), 'cbt')
@@ -233,7 +233,7 @@ class CBT(Task):
                 '{tdir}/cbt'.format(tdir=testdir),
             ]
         )
                 '{tdir}/cbt'.format(tdir=testdir),
             ]
         )
-        benchmark_type = self.cbt_config.get('benchmarks').keys()[0]
+        benchmark_type = next(iter(self.cbt_config.get('benchmarks').keys()))
         if benchmark_type in ['librbdfio', 'fio']:
             self.first_mon.run(
                 args=[
         if benchmark_type in ['librbdfio', 'fio']:
             self.first_mon.run(
                 args=[
index 4f06e2b76306f6f241c2740f36c4b65787d57770..1439ccffd566921ed3ae189d647f8d06abb14188 100644 (file)
@@ -6,7 +6,7 @@ import contextlib
 import logging
 
 from teuthology import misc as teuthology
 import logging
 
 from teuthology import misc as teuthology
-from cephfs.fuse_mount import FuseMount
+from tasks.cephfs.fuse_mount import FuseMount
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 5742cff7528662386d3f6ca22ffb9a1f186ea0ba..c058735aa8a27d9aee0b0a5869e62ee0f37f1e30 100644 (file)
@@ -16,6 +16,7 @@ import os
 import six
 
 from io import BytesIO
 import six
 
 from io import BytesIO
+from six import StringIO
 from teuthology import misc as teuthology
 from tasks.scrub import Scrubber
 from tasks.util.rados import cmd_erasure_code_profile
 from teuthology import misc as teuthology
 from tasks.scrub import Scrubber
 from tasks.util.rados import cmd_erasure_code_profile
@@ -1239,8 +1240,8 @@ class ObjectStoreTool:
             self.pgid = self.manager.get_object_pg_with_shard(self.pool,
                                                               self.object_name,
                                                               self.osd)
             self.pgid = self.manager.get_object_pg_with_shard(self.pool,
                                                               self.object_name,
                                                               self.osd)
-        self.remote = self.manager.ctx.\
-            cluster.only('osd.{o}'.format(o=self.osd)).remotes.keys()[0]
+        self.remote = next(iter(self.manager.ctx.\
+            cluster.only('osd.{o}'.format(o=self.osd)).remotes.keys()))
         path = self.manager.get_filepath().format(id=self.osd)
         self.paths = ("--data-path {path} --journal-path {path}/journal".
                       format(path=path))
         path = self.manager.get_filepath().format(id=self.osd)
         self.paths = ("--data-path {path} --journal-path {path}/journal".
                       format(path=path))
@@ -1409,7 +1410,7 @@ class CephManager:
         if watch_channel is not None:
             args.append("--watch-channel")
             args.append(watch_channel)
         if watch_channel is not None:
             args.append("--watch-channel")
             args.append(watch_channel)
-        return self.controller.run(args=args, wait=False, stdout=BytesIO(), stdin=run.PIPE)
+        return self.controller.run(args=args, wait=False, stdout=StringIO(), stdin=run.PIPE)
 
     def get_mon_socks(self):
         """
 
     def get_mon_socks(self):
         """
@@ -1592,7 +1593,7 @@ class CephManager:
 
     def osd_admin_socket(self, osd_id, command, check_status=True, timeout=0, stdout=None):
         if stdout is None:
 
     def osd_admin_socket(self, osd_id, command, check_status=True, timeout=0, stdout=None):
         if stdout is None:
-            stdout = BytesIO()
+            stdout = StringIO()
         return self.admin_socket('osd', osd_id, command, check_status, timeout, stdout)
 
     def find_remote(self, service_type, service_id):
         return self.admin_socket('osd', osd_id, command, check_status, timeout, stdout)
 
     def find_remote(self, service_type, service_id):
@@ -1616,7 +1617,7 @@ class CephManager:
                         to the admin socket
         """
         if stdout is None:
                         to the admin socket
         """
         if stdout is None:
-            stdout = BytesIO()
+            stdout = StringIO()
 
         remote = self.find_remote(service_type, service_id)
 
 
         remote = self.find_remote(service_type, service_id)
 
@@ -1745,7 +1746,7 @@ class CephManager:
         five seconds and try again.
         """
         if stdout is None:
         five seconds and try again.
         """
         if stdout is None:
-            stdout = BytesIO()
+            stdout = StringIO()
         tries = 0
         while True:
             proc = self.admin_socket(service_type, service_id,
         tries = 0
         while True:
             proc = self.admin_socket(service_type, service_id,
@@ -1819,9 +1820,9 @@ class CephManager:
         """
         Get osd statuses sorted by states that the osds are in.
         """
         """
         Get osd statuses sorted by states that the osds are in.
         """
-        osd_lines = filter(
+        osd_lines = list(filter(
             lambda x: x.startswith('osd.') and (("up" in x) or ("down" in x)),
             lambda x: x.startswith('osd.') and (("up" in x) or ("down" in x)),
-            self.raw_osd_status().split('\n'))
+            self.raw_osd_status().split('\n')))
         self.log(osd_lines)
         in_osds = [int(i[4:].split()[0])
                    for i in filter(lambda x: " in " in x, osd_lines)]
         self.log(osd_lines)
         in_osds = [int(i[4:].split()[0])
                    for i in filter(lambda x: " in " in x, osd_lines)]
@@ -1965,7 +1966,7 @@ class CephManager:
         """
         with self.lock:
             if self.pools:
         """
         with self.lock:
             if self.pools:
-                return random.choice(self.pools.keys())
+                return random.sample(self.pools.keys(), 1)[0]
 
     def get_pool_pg_num(self, pool_name):
         """
 
     def get_pool_pg_num(self, pool_name):
         """
index 641981ebd36e4373f67f8d6d86e2a96f6b06e7cc..d4facfd782f0a78bf23b2f89a612c7103239b74f 100644 (file)
@@ -4,21 +4,20 @@ ceph_objectstore_tool - Simple test of ceph-objectstore-tool utility
 from io import BytesIO
 
 import contextlib
 from io import BytesIO
 
 import contextlib
+import json
 import logging
 import logging
-import ceph_manager
-from teuthology import misc as teuthology
-import time
 import os
 import six
 import os
 import six
-import string
-from teuthology.orchestra import run
 import sys
 import tempfile
 import sys
 import tempfile
-import json
+import time
+from tasks import ceph_manager
+from tasks.util.rados import (rados, create_replicated_pool, create_ec_pool)
+from teuthology import misc as teuthology
+from teuthology.orchestra import run
 
 from teuthology.exceptions import CommandFailedError
 
 
 from teuthology.exceptions import CommandFailedError
 
-from util.rados import (rados, create_replicated_pool, create_ec_pool)
 # from util.rados import (rados, create_ec_pool,
 #                               create_replicated_pool,
 #                               create_cache_pool)
 # from util.rados import (rados, create_ec_pool,
 #                               create_replicated_pool,
 #                               create_cache_pool)
@@ -242,7 +241,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
                          REP_NAME, DATALINECOUNT)
     allremote = []
     allremote.append(cli_remote)
                          REP_NAME, DATALINECOUNT)
     allremote = []
     allremote.append(cli_remote)
-    allremote += osds.remotes.keys()
+    allremote += list(osds.remotes.keys())
     allremote = list(set(allremote))
     for remote in allremote:
         cod_setup_remote_data(log, ctx, remote, NUM_OBJECTS, DATADIR,
     allremote = list(set(allremote))
     for remote in allremote:
         cod_setup_remote_data(log, ctx, remote, NUM_OBJECTS, DATADIR,
@@ -288,7 +287,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
         log.debug(remote)
         log.debug(osds.remotes[remote])
         for role in osds.remotes[remote]:
         log.debug(remote)
         log.debug(osds.remotes[remote])
         for role in osds.remotes[remote]:
-            if string.find(role, "osd.") != 0:
+            if not role.startswith("osd."):
                 continue
             osdid = int(role.split('.')[1])
             log.info("process osd.{id} on {remote}".
                 continue
             osdid = int(role.split('.')[1])
             log.info("process osd.{id} on {remote}".
@@ -325,7 +324,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
 
             for remote in osds.remotes.keys():
                 for role in osds.remotes[remote]:
 
             for remote in osds.remotes.keys():
                 for role in osds.remotes[remote]:
-                    if string.find(role, "osd.") != 0:
+                    if not role.startswith("osd."):
                         continue
                     osdid = int(role.split('.')[1])
                     if osdid not in pgs:
                         continue
                     osdid = int(role.split('.')[1])
                     if osdid not in pgs:
@@ -415,7 +414,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
 
         for remote in osds.remotes.keys():
             for role in osds.remotes[remote]:
 
         for remote in osds.remotes.keys():
             for role in osds.remotes[remote]:
-                if string.find(role, "osd.") != 0:
+                if not role.startswith("osd."):
                     continue
                 osdid = int(role.split('.')[1])
                 if osdid not in pgs:
                     continue
                 osdid = int(role.split('.')[1])
                 if osdid not in pgs:
@@ -500,7 +499,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
     log.info("Test pg info")
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
     log.info("Test pg info")
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
-            if string.find(role, "osd.") != 0:
+            if not role.startswith("osd."):
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
@@ -523,7 +522,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
     log.info("Test pg logging")
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
     log.info("Test pg logging")
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
-            if string.find(role, "osd.") != 0:
+            if not role.startswith("osd."):
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
@@ -554,7 +553,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
     EXP_ERRORS = 0
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
     EXP_ERRORS = 0
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
-            if string.find(role, "osd.") != 0:
+            if not role.startswith("osd."):
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
@@ -580,7 +579,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
     RM_ERRORS = 0
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
     RM_ERRORS = 0
     for remote in osds.remotes.keys():
         for role in osds.remotes[remote]:
-            if string.find(role, "osd.") != 0:
+            if not role.startswith("osd."):
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
                 continue
             osdid = int(role.split('.')[1])
             if osdid not in pgs:
@@ -605,7 +604,7 @@ def test_objectstore(ctx, config, cli_remote, REP_POOL, REP_NAME, ec=False):
 
         for remote in osds.remotes.keys():
             for role in osds.remotes[remote]:
 
         for remote in osds.remotes.keys():
             for role in osds.remotes[remote]:
-                if string.find(role, "osd.") != 0:
+                if not role.startswith("osd."):
                     continue
                 osdid = int(role.split('.')[1])
                 if osdid not in pgs:
                     continue
                 osdid = int(role.split('.')[1])
                 if osdid not in pgs:
index 2c64ca99725ec2063d6bf1e6bd0a5e446e907473..a5065ba3ee1fcb231d23fe990d8f474240d2ab7a 100644 (file)
@@ -1,19 +1,22 @@
 """
 Ceph cluster task, deployed via cephadm orchestrator
 """
 """
 Ceph cluster task, deployed via cephadm orchestrator
 """
-from io import BytesIO
-
 import argparse
 import configobj
 import contextlib
 import argparse
 import configobj
 import contextlib
+import errno
 import logging
 import os
 import json
 import re
 import uuid
 
 import logging
 import os
 import json
 import re
 import uuid
 
-from ceph_manager import CephManager
+import six
+import toml
+from io import BytesIO
+from six import StringIO
 from tarfile import ReadError
 from tarfile import ReadError
+from tasks.ceph_manager import CephManager
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.orchestra import run
@@ -189,7 +192,7 @@ def ceph_log(ctx, config):
                 run.Raw('|'), 'head', '-n', '1',
             ])
             r = ctx.ceph[cluster_name].bootstrap_remote.run(
                 run.Raw('|'), 'head', '-n', '1',
             ])
             r = ctx.ceph[cluster_name].bootstrap_remote.run(
-                stdout=BytesIO(),
+                stdout=StringIO(),
                 args=args,
             )
             stdout = r.stdout.getvalue()
                 args=args,
             )
             stdout = r.stdout.getvalue()
@@ -250,8 +253,11 @@ def ceph_log(ctx, config):
                     os.makedirs(sub)
                 except OSError:
                     pass
                     os.makedirs(sub)
                 except OSError:
                     pass
-                teuthology.pull_directory(remote, '/var/log/ceph',  # everything
-                                          os.path.join(sub, 'log'))
+                try:
+                    teuthology.pull_directory(remote, '/var/log/ceph',  # everything
+                                              os.path.join(sub, 'log'))
+                except ReadError:
+                    pass
 
 @contextlib.contextmanager
 def ceph_crash(ctx, config):
 
 @contextlib.contextmanager
 def ceph_crash(ctx, config):
@@ -286,7 +292,15 @@ def ceph_crash(ctx, config):
                     pass
 
 @contextlib.contextmanager
                     pass
 
 @contextlib.contextmanager
-def ceph_bootstrap(ctx, config):
+def ceph_bootstrap(ctx, config, registry):
+    """
+    Bootstrap ceph cluster, setup containers' registry mirror before
+    the bootstrap if the registry is provided.
+
+    :param ctx: the argparse.Namespace object
+    :param config: the config dict
+    :param registry: url to  containers' mirror registry
+    """
     cluster_name = config['cluster']
     testdir = teuthology.get_testdir(ctx)
     fsid = ctx.ceph[cluster_name].fsid
     cluster_name = config['cluster']
     testdir = teuthology.get_testdir(ctx)
     fsid = ctx.ceph[cluster_name].fsid
@@ -302,6 +316,8 @@ def ceph_bootstrap(ctx, config):
     ctx.cluster.run(args=[
         'sudo', 'chmod', '777', '/etc/ceph',
         ]);
     ctx.cluster.run(args=[
         'sudo', 'chmod', '777', '/etc/ceph',
         ]);
+    if registry:
+        add_mirror_to_cluster(ctx, registry)
     try:
         # write seed config
         log.info('Writing seed config...')
     try:
         # write seed config
         log.info('Writing seed config...')
@@ -312,7 +328,7 @@ def ceph_bootstrap(ctx, config):
             remote=bootstrap_remote,
             path='{}/seed.{}.conf'.format(testdir, cluster_name),
             data=conf_fp.getvalue())
             remote=bootstrap_remote,
             path='{}/seed.{}.conf'.format(testdir, cluster_name),
             data=conf_fp.getvalue())
-        log.debug('Final config:\n' + conf_fp.getvalue())
+        log.debug('Final config:\n' + conf_fp.getvalue().decode())
         ctx.ceph[cluster_name].conf = seed_config
 
         # register initial daemons
         ctx.ceph[cluster_name].conf = seed_config
 
         # register initial daemons
@@ -391,7 +407,7 @@ def ceph_bootstrap(ctx, config):
         ssh_pub_key = teuthology.get_file(
             remote=bootstrap_remote,
             path='{}/{}.pub'.format(testdir, cluster_name)
         ssh_pub_key = teuthology.get_file(
             remote=bootstrap_remote,
             path='{}/{}.pub'.format(testdir, cluster_name)
-        ).strip()
+        ).decode('ascii').strip()
 
         log.info('Installing pub ssh key for root users...')
         ctx.cluster.run(args=[
 
         log.info('Installing pub ssh key for root users...')
         ctx.cluster.run(args=[
@@ -429,7 +445,7 @@ def ceph_bootstrap(ctx, config):
             ])
             r = _shell(ctx, cluster_name, remote,
                        ['ceph', 'orch', 'host', 'ls', '--format=json'],
             ])
             r = _shell(ctx, cluster_name, remote,
                        ['ceph', 'orch', 'host', 'ls', '--format=json'],
-                       stdout=BytesIO())
+                       stdout=StringIO())
             hosts = [node['hostname'] for node in json.loads(r.stdout.getvalue())]
             assert remote.shortname in hosts
 
             hosts = [node['hostname'] for node in json.loads(r.stdout.getvalue())]
             assert remote.shortname in hosts
 
@@ -449,9 +465,13 @@ def ceph_bootstrap(ctx, config):
         #ctx.cluster.run(args=['sudo', 'systemctl', 'stop', 'ceph.target'])
 
         # so, stop them individually
         #ctx.cluster.run(args=['sudo', 'systemctl', 'stop', 'ceph.target'])
 
         # so, stop them individually
-        for role in ctx.daemons.resolve_role_list(None, CEPH_ROLE_TYPES):
+        for role in ctx.daemons.resolve_role_list(None, CEPH_ROLE_TYPES, True):
             cluster, type_, id_ = teuthology.split_role(role)
             cluster, type_, id_ = teuthology.split_role(role)
-            ctx.daemons.get_daemon(type_, id_, cluster).stop()
+            try:
+                ctx.daemons.get_daemon(type_, id_, cluster).stop()
+            except Exception:
+                log.exception('Failed to stop "{role}"'.format(role=role))
+                raise 
 
         # clean up /etc/ceph
         ctx.cluster.run(args=[
 
         # clean up /etc/ceph
         ctx.cluster.run(args=[
@@ -501,7 +521,7 @@ def ceph_mons(ctx, config):
                             args=[
                                 'ceph', 'mon', 'dump', '-f', 'json',
                             ],
                             args=[
                                 'ceph', 'mon', 'dump', '-f', 'json',
                             ],
-                            stdout=BytesIO(),
+                            stdout=StringIO(),
                         )
                         j = json.loads(r.stdout.getvalue())
                         if len(j['mons']) == num_mons:
                         )
                         j = json.loads(r.stdout.getvalue())
                         if len(j['mons']) == num_mons:
@@ -516,7 +536,7 @@ def ceph_mons(ctx, config):
             args=[
                 'ceph', 'config', 'generate-minimal-conf',
             ],
             args=[
                 'ceph', 'config', 'generate-minimal-conf',
             ],
-            stdout=BytesIO(),
+            stdout=StringIO(),
         )
         ctx.ceph[cluster_name].config_file = r.stdout.getvalue()
 
         )
         ctx.ceph[cluster_name].config_file = r.stdout.getvalue()
 
@@ -595,7 +615,10 @@ def ceph_osds(ctx, config):
             devs = devs_by_remote[remote]
             assert devs   ## FIXME ##
             dev = devs.pop()
             devs = devs_by_remote[remote]
             assert devs   ## FIXME ##
             dev = devs.pop()
-            short_dev = dev.replace('/dev/', '')
+            if all(_ in dev for _ in ('lv', 'vg')):
+                short_dev = dev.replace('/dev/', '')
+            else:
+                short_dev = dev
             log.info('Deploying %s on %s with %s...' % (
                 osd, remote.shortname, dev))
             _shell(ctx, cluster_name, remote, [
             log.info('Deploying %s on %s with %s...' % (
                 osd, remote.shortname, dev))
             _shell(ctx, cluster_name, remote, [
@@ -709,12 +732,27 @@ def ceph_rgw(ctx, config):
                 nodes[realmzone] = []
             nodes[realmzone].append(remote.shortname + '=' + id_)
             daemons[role] = (remote, id_)
                 nodes[realmzone] = []
             nodes[realmzone].append(remote.shortname + '=' + id_)
             daemons[role] = (remote, id_)
+
+    for realmzone in nodes.keys():
+        (realm, zone) = realmzone.split('.', 1)
+
+        # TODO: those should be moved to mgr/cephadm
+        _shell(ctx, cluster_name, remote,
+               ['radosgw-admin', 'realm', 'create', '--rgw-realm', realm, '--default']
+        )
+        _shell(ctx, cluster_name, remote,
+               ['radosgw-admin', 'zonegroup', 'create', '--rgw-zonegroup=default', '--master', '--default']
+        )
+        _shell(ctx, cluster_name, remote,
+               ['radosgw-admin', 'zone', 'create', '--rgw-zonegroup=default', '--rgw-zone', zone,  '--master', '--default']
+        )
+
     for realmzone, nodes in nodes.items():
         (realm, zone) = realmzone.split('.', 1)
         _shell(ctx, cluster_name, remote, [
     for realmzone, nodes in nodes.items():
         (realm, zone) = realmzone.split('.', 1)
         _shell(ctx, cluster_name, remote, [
-            'ceph', 'orch', 'apply', 'rgw',
-            realm, zone,
-            str(len(nodes)) + ';' + ';'.join(nodes)]
+            'ceph', 'orch', 'apply', 'rgw', realm, zone,
+             '--placement',
+             str(len(nodes)) + ';' + ';'.join(nodes)]
         )
     for role, i in daemons.items():
         remote, id_ = i
         )
     for role, i in daemons.items():
         remote, id_ = i
@@ -756,7 +794,7 @@ def ceph_clients(ctx, config):
                     'mds', 'allow *',
                     'mgr', 'allow *',
                 ],
                     'mds', 'allow *',
                     'mgr', 'allow *',
                 ],
-                stdout=BytesIO(),
+                stdout=StringIO(),
             )
             keyring = r.stdout.getvalue()
             teuthology.sudo_write_file(
             )
             keyring = r.stdout.getvalue()
             teuthology.sudo_write_file(
@@ -958,36 +996,23 @@ def crush_setup(ctx, config):
     yield
 
 @contextlib.contextmanager
     yield
 
 @contextlib.contextmanager
-def task(ctx, config):
-    if config is None:
-        config = {}
-
-    assert isinstance(config, dict), \
-        "task only supports a dictionary for configuration"
-
-    overrides = ctx.config.get('overrides', {})
-    teuthology.deep_merge(config, overrides.get('ceph', {}))
-    log.info('Config: ' + str(config))
-
-    testdir = teuthology.get_testdir(ctx)
+def _bypass():
+    yield
 
 
-    # set up cluster context
-    first_ceph_cluster = False
-    if not hasattr(ctx, 'daemons'):
-        first_ceph_cluster = True
-    if not hasattr(ctx, 'ceph'):
-        ctx.ceph = {}
-        ctx.managers = {}
-    if 'cluster' not in config:
-        config['cluster'] = 'ceph'
+@contextlib.contextmanager
+def initialize_config(ctx, config):
     cluster_name = config['cluster']
     cluster_name = config['cluster']
-    ctx.ceph[cluster_name] = argparse.Namespace()
+    testdir = teuthology.get_testdir(ctx)
 
     ctx.ceph[cluster_name].thrashers = []
     # fixme: setup watchdog, ala ceph.py
 
     ctx.ceph[cluster_name].roleless = False  # see below
 
 
     ctx.ceph[cluster_name].thrashers = []
     # fixme: setup watchdog, ala ceph.py
 
     ctx.ceph[cluster_name].roleless = False  # see below
 
+    first_ceph_cluster = False
+    if not hasattr(ctx, 'daemons'):
+        first_ceph_cluster = True
+
     # cephadm mode?
     if 'cephadm_mode' not in config:
         config['cephadm_mode'] = 'root'
     # cephadm mode?
     if 'cephadm_mode' not in config:
         config['cephadm_mode'] = 'root'
@@ -1002,21 +1027,6 @@ def task(ctx, config):
         ctx.daemons = DaemonGroup(
             use_cephadm=ctx.cephadm)
 
         ctx.daemons = DaemonGroup(
             use_cephadm=ctx.cephadm)
 
-    # image
-    ctx.ceph[cluster_name].image = config.get('image')
-    ref = None
-    if not ctx.ceph[cluster_name].image:
-        sha1 = config.get('sha1')
-        if sha1:
-            ctx.ceph[cluster_name].image = 'quay.io/ceph-ci/ceph:%s' % sha1
-            ref = sha1
-        else:
-            # hmm, fall back to branch?
-            branch = config.get('branch', 'master')
-            ref = branch
-            ctx.ceph[cluster_name].image = 'quay.io/ceph-ci/ceph:%s' % branch
-    log.info('Cluster image is %s' % ctx.ceph[cluster_name].image)
-
     # uuid
     fsid = str(uuid.uuid1())
     log.info('Cluster fsid is %s' % fsid)
     # uuid
     fsid = str(uuid.uuid1())
     log.info('Cluster fsid is %s' % fsid)
@@ -1025,22 +1035,21 @@ def task(ctx, config):
     # mon ips
     log.info('Choosing monitor IPs and ports...')
     remotes_and_roles = ctx.cluster.remotes.items()
     # mon ips
     log.info('Choosing monitor IPs and ports...')
     remotes_and_roles = ctx.cluster.remotes.items()
-    roles = [role_list for (remote, role_list) in remotes_and_roles]
     ips = [host for (host, port) in
            (remote.ssh.get_transport().getpeername() for (remote, role_list) in remotes_and_roles)]
 
     if config.get('roleless', False):
         # mons will be named after hosts
     ips = [host for (host, port) in
            (remote.ssh.get_transport().getpeername() for (remote, role_list) in remotes_and_roles)]
 
     if config.get('roleless', False):
         # mons will be named after hosts
-        n = len(roles)
-        roles = []
         first_mon = None
         for remote, _ in remotes_and_roles:
         first_mon = None
         for remote, _ in remotes_and_roles:
-            roles.append(['mon.' + remote.shortname])
+            ctx.cluster.remotes[remote].append('mon.' + remote.shortname)
             if not first_mon:
                 first_mon = remote.shortname
                 bootstrap_remote = remote
             if not first_mon:
                 first_mon = remote.shortname
                 bootstrap_remote = remote
-        log.info('No roles; fabricating mons %s' % roles)
-        
+        log.info('No mon roles; fabricating mons')
+
+    roles = [role_list for (remote, role_list) in ctx.cluster.remotes.items()]
+
     ctx.ceph[cluster_name].mons = get_mons(
         roles, ips, cluster_name,
         mon_bind_msgr2=config.get('mon_bind_msgr2', True),
     ctx.ceph[cluster_name].mons = get_mons(
         roles, ips, cluster_name,
         mon_bind_msgr2=config.get('mon_bind_msgr2', True),
@@ -1071,15 +1080,112 @@ def task(ctx, config):
         _, _, first_mgr = teuthology.split_role(mgrs[0])
         log.info('First mgr is %s' % (first_mgr))
         ctx.ceph[cluster_name].first_mgr = first_mgr
         _, _, first_mgr = teuthology.split_role(mgrs[0])
         log.info('First mgr is %s' % (first_mgr))
         ctx.ceph[cluster_name].first_mgr = first_mgr
-        
+    yield
+
+@contextlib.contextmanager
+def task(ctx, config):
+    """
+    Deploy ceph cluster using cephadm
+
+    Setup containers' mirrors before the bootstrap, if corresponding
+    config provided in teuthology server config yaml file.
+
+    For example, teuthology.yaml can contain the 'defaults' section:
+
+        defaults:
+          cephadm:
+            containers:
+              registry_mirrors:
+                docker.io: 'registry.mirror.example.com:5000'
+              image: 'quay.io/ceph-ci/ceph'
+
+    Using overrides makes it possible to customize it per run.
+    The equivalent 'overrides' section looks like:
+
+        overrides:
+          cephadm:
+            containers:
+              registry_mirrors:
+                docker.io: 'registry.mirror.example.com:5000'
+              image: 'quay.io/ceph-ci/ceph'
+
+    :param ctx: the argparse.Namespace object
+    :param config: the config dict
+    """
+    if config is None:
+        config = {}
+
+    assert isinstance(config, dict), \
+        "task only supports a dictionary for configuration"
+
+    overrides = ctx.config.get('overrides', {})
+    teuthology.deep_merge(config, overrides.get('ceph', {}))
+    teuthology.deep_merge(config, overrides.get('cephadm', {}))
+    log.info('Config: ' + str(config))
+
+    testdir = teuthology.get_testdir(ctx)
+
+    # set up cluster context
+    if not hasattr(ctx, 'ceph'):
+        ctx.ceph = {}
+        ctx.managers = {}
+    if 'cluster' not in config:
+        config['cluster'] = 'ceph'
+    cluster_name = config['cluster']
+    if cluster_name not in ctx.ceph:
+        ctx.ceph[cluster_name] = argparse.Namespace()
+        ctx.ceph[cluster_name].bootstrapped = False
+    # image
+    teuth_defaults = teuth_config.get('defaults', {})
+    cephadm_defaults = teuth_defaults.get('cephadm', {})
+    containers_defaults = cephadm_defaults.get('containers', {})
+    mirrors_defaults = containers_defaults.get('registry_mirrors', {})
+    container_registry_mirror = mirrors_defaults.get('docker.io', None)
+    container_image_name = containers_defaults.get('image', None)
+
+    containers = config.get('containers', {})
+    mirrors = containers.get('registry_mirrors', {})
+    container_image_name = containers.get('image', container_image_name)
+    container_registry_mirror = mirrors.get('docker.io',
+                                            container_registry_mirror)
+
+    if not container_image_name:
+        raise Exception("Configuration error occurred. "
+                        "The 'image' value is undefined for 'cephadm' task. "
+                        "Please provide corresponding options in the task's "
+                        "config, task 'overrides', or teuthology 'defaults' "
+                        "section.")
+
+    if not hasattr(ctx.ceph[cluster_name], 'image'):
+        ctx.ceph[cluster_name].image = config.get('image')
+    ref = None
+    if not ctx.ceph[cluster_name].image:
+        sha1 = config.get('sha1')
+        if sha1:
+            ctx.ceph[cluster_name].image = container_image_name + ':' + sha1
+            ref = sha1
+        else:
+            # hmm, fall back to branch?
+            branch = config.get('branch', 'master')
+            ref = branch
+            ctx.ceph[cluster_name].image = container_image_name + ':' + branch
+    log.info('Cluster image is %s' % ctx.ceph[cluster_name].image)
+
 
     with contextutil.nested(
 
     with contextutil.nested(
+            #if the cluster is already bootstrapped bypass corresponding methods
+            lambda: _bypass() if (ctx.ceph[cluster_name].bootstrapped)\
+                              else initialize_config(ctx=ctx, config=config),
             lambda: ceph_initial(),
             lambda: normalize_hostnames(ctx=ctx),
             lambda: ceph_initial(),
             lambda: normalize_hostnames(ctx=ctx),
-            lambda: download_cephadm(ctx=ctx, config=config, ref=ref),
+            lambda: _bypass() if (ctx.ceph[cluster_name].bootstrapped)\
+                              else download_cephadm(ctx=ctx, config=config, ref=ref),
             lambda: ceph_log(ctx=ctx, config=config),
             lambda: ceph_crash(ctx=ctx, config=config),
             lambda: ceph_log(ctx=ctx, config=config),
             lambda: ceph_crash(ctx=ctx, config=config),
-            lambda: ceph_bootstrap(ctx=ctx, config=config),
+            lambda: _bypass() if (ctx.ceph[cluster_name].bootstrapped)\
+                              else ceph_bootstrap(ctx, config,
+                                                  container_registry_mirror),
             lambda: crush_setup(ctx=ctx, config=config),
             lambda: ceph_mons(ctx=ctx, config=config),
             lambda: distribute_config_and_admin_keyring(ctx=ctx, config=config),
             lambda: crush_setup(ctx=ctx, config=config),
             lambda: ceph_mons(ctx=ctx, config=config),
             lambda: distribute_config_and_admin_keyring(ctx=ctx, config=config),
@@ -1110,3 +1216,59 @@ def task(ctx, config):
 
         finally:
             log.info('Teardown begin')
 
         finally:
             log.info('Teardown begin')
+
+
+def registries_add_mirror_to_docker_io(conf, mirror):
+    config = toml.loads(conf)
+    is_v1 = 'registries' in config
+    if is_v1:
+        search = config.get('registries', {}).get('search', {}).get('registries', [])
+        insecure = config.get('registries', {}).get('search', {}).get('insecure', [])
+        # v2: MutableMapping[str, Any] = { needs Python 3
+        v2 = {
+            'unqualified-search-registries': search,
+            'registry': [
+                {
+                    'prefix': reg,
+                    'location': reg,
+                    'insecure': reg in insecure,
+                    'blocked': False,
+                } for reg in search
+            ]
+        }
+    else:
+        v2 = config  # type: ignore
+    dockers = [r for r in v2['registry'] if r['prefix'] == 'docker.io']
+    if dockers:
+        docker = dockers[0]
+        docker['mirror'] = [{
+            "location": mirror,
+            "insecure": True,
+        }]
+    return v2
+
+
+def add_mirror_to_cluster(ctx, mirror):
+    log.info('Adding local image mirror %s' % mirror)
+    
+    registries_conf = '/etc/containers/registries.conf'
+    
+    for remote in ctx.cluster.remotes.keys():
+        try:
+            config = teuthology.get_file(
+                remote=remote,
+                path=registries_conf
+            )
+            new_config = toml.dumps(registries_add_mirror_to_docker_io(config.decode('utf-8'), mirror))
+
+            teuthology.sudo_write_file(
+                remote=remote,
+                path=registries_conf,
+                data=six.ensure_str(new_config),
+            )
+        except IOError as e:  # py3: use FileNotFoundError instead.
+            if e.errno != errno.ENOENT:
+                raise
+
+            # Docker doesn't ship a registries.conf
+            log.info('Failed to add mirror: %s' % str(e))
index d9464dd4135aa24389a5e0530515e89eb40f5123..e69941dfd849d7370464ccd7e0b2a1ecf3591c5e 100644 (file)
@@ -4,12 +4,12 @@ import logging
 from tasks.ceph_test_case import CephTestCase
 import os
 import re
 from tasks.ceph_test_case import CephTestCase
 import os
 import re
-from StringIO import StringIO
 
 from tasks.cephfs.fuse_mount import FuseMount
 
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError
 
 from tasks.cephfs.fuse_mount import FuseMount
 
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError
+from teuthology.contextutil import safe_while
 
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
@@ -143,8 +143,7 @@ class CephFSTestCase(CephTestCase):
 
             # Mount the requested number of clients
             for i in range(0, self.CLIENTS_REQUIRED):
 
             # Mount the requested number of clients
             for i in range(0, self.CLIENTS_REQUIRED):
-                self.mounts[i].mount()
-                self.mounts[i].wait_until_mounted()
+                self.mounts[i].mount_wait()
 
         if self.REQUIRE_RECOVERY_FILESYSTEM:
             if not self.REQUIRE_FILESYSTEM:
 
         if self.REQUIRE_RECOVERY_FILESYSTEM:
             if not self.REQUIRE_FILESYSTEM:
@@ -163,7 +162,7 @@ class CephFSTestCase(CephTestCase):
         # Load an config settings of interest
         for setting in self.LOAD_SETTINGS:
             setattr(self, setting, float(self.fs.mds_asok(
         # Load an config settings of interest
         for setting in self.LOAD_SETTINGS:
             setattr(self, setting, float(self.fs.mds_asok(
-                ['config', 'get', setting], self.mds_cluster.mds_ids[0]
+                ['config', 'get', setting], list(self.mds_cluster.mds_ids)[0]
             )[setting]))
 
         self.configs_set = set()
             )[setting]))
 
         self.configs_set = set()
@@ -252,7 +251,7 @@ class CephFSTestCase(CephTestCase):
                 timeout=30
             )
         except RuntimeError:
                 timeout=30
             )
         except RuntimeError:
-            log.warn("Timeout waiting for daemons {0}, while we have {1}".format(
+            log.warning("Timeout waiting for daemons {0}, while we have {1}".format(
                 daemon_ids, get_daemon_names()
             ))
             raise
                 daemon_ids, get_daemon_names()
             ))
             raise
@@ -260,21 +259,21 @@ class CephFSTestCase(CephTestCase):
     def delete_mds_coredump(self, daemon_id):
         # delete coredump file, otherwise teuthology.internal.coredump will
         # catch it later and treat it as a failure.
     def delete_mds_coredump(self, daemon_id):
         # delete coredump file, otherwise teuthology.internal.coredump will
         # catch it later and treat it as a failure.
-        p = self.mds_cluster.mds_daemons[daemon_id].remote.run(args=[
-            "sudo", "sysctl", "-n", "kernel.core_pattern"], stdout=StringIO())
-        core_dir = os.path.dirname(p.stdout.getvalue().strip())
+        core_pattern = self.mds_cluster.mds_daemons[daemon_id].remote.sh(
+            "sudo sysctl -n kernel.core_pattern")
+        core_dir = os.path.dirname(core_pattern.strip())
         if core_dir:  # Non-default core_pattern with a directory in it
             # We have seen a core_pattern that looks like it's from teuthology's coredump
             # task, so proceed to clear out the core file
             log.info("Clearing core from directory: {0}".format(core_dir))
 
             # Verify that we see the expected single coredump
         if core_dir:  # Non-default core_pattern with a directory in it
             # We have seen a core_pattern that looks like it's from teuthology's coredump
             # task, so proceed to clear out the core file
             log.info("Clearing core from directory: {0}".format(core_dir))
 
             # Verify that we see the expected single coredump
-            ls_proc = self.mds_cluster.mds_daemons[daemon_id].remote.run(args=[
+            ls_output = self.mds_cluster.mds_daemons[daemon_id].remote.sh([
                 "cd", core_dir, run.Raw('&&'),
                 "sudo", "ls", run.Raw('|'), "sudo", "xargs", "file"
                 "cd", core_dir, run.Raw('&&'),
                 "sudo", "ls", run.Raw('|'), "sudo", "xargs", "file"
-            ], stdout=StringIO())
+            ])
             cores = [l.partition(":")[0]
             cores = [l.partition(":")[0]
-                     for l in ls_proc.stdout.getvalue().strip().split("\n")
+                     for l in ls_output.strip().split("\n")
                      if re.match(r'.*ceph-mds.* -i +{0}'.format(daemon_id), l)]
 
             log.info("Enumerated cores: {0}".format(cores))
                      if re.match(r'.*ceph-mds.* -i +{0}'.format(daemon_id), l)]
 
             log.info("Enumerated cores: {0}".format(cores))
@@ -292,7 +291,7 @@ class CephFSTestCase(CephTestCase):
         timeout = 30
         pause = 2
         test = sorted(test)
         timeout = 30
         pause = 2
         test = sorted(test)
-        for i in range(timeout/pause):
+        for i in range(timeout // pause):
             subtrees = self.fs.mds_asok(["get", "subtrees"], mds_id=status.get_rank(self.fs.id, rank)['name'])
             subtrees = filter(lambda s: s['dir']['path'].startswith('/'), subtrees)
             filtered = sorted([(s['dir']['path'], s['auth_first']) for s in subtrees])
             subtrees = self.fs.mds_asok(["get", "subtrees"], mds_id=status.get_rank(self.fs.id, rank)['name'])
             subtrees = filter(lambda s: s['dir']['path'].startswith('/'), subtrees)
             filtered = sorted([(s['dir']['path'], s['auth_first']) for s in subtrees])
@@ -304,3 +303,12 @@ class CephFSTestCase(CephTestCase):
                 return subtrees
             time.sleep(pause)
         raise RuntimeError("rank {0} failed to reach desired subtree state".format(rank))
                 return subtrees
             time.sleep(pause)
         raise RuntimeError("rank {0} failed to reach desired subtree state".format(rank))
+
+    def _wait_until_scrub_complete(self, path="/", recursive=True):
+        out_json = self.fs.rank_tell(["scrub", "start", path] + ["recursive"] if recursive else [])
+        with safe_while(sleep=10, tries=10) as proceed:
+            while proceed():
+                out_json = self.fs.rank_tell(["scrub", "status"])
+                if out_json['status'] == "no active scrubs running":
+                    break;
+
index 7352f12c801be6806a7636e9747e64b39a596259..2210fa970237b33a461b3792d16d8ba7c118556d 100644 (file)
@@ -10,6 +10,9 @@ import errno
 import random
 import traceback
 
 import random
 import traceback
 
+from io import BytesIO
+from six import StringIO
+
 from teuthology.exceptions import CommandFailedError
 from teuthology import misc
 from teuthology.nuke import clear_firewall
 from teuthology.exceptions import CommandFailedError
 from teuthology import misc
 from teuthology.nuke import clear_firewall
@@ -160,7 +163,7 @@ class FSStatus(object):
         if info:
             return info['addr']
         else:
         if info:
             return info['addr']
         else:
-            log.warn(json.dumps(list(self.get_all()), indent=2))  # dump for debugging
+            log.warning(json.dumps(list(self.get_all()), indent=2))  # dump for debugging
             raise RuntimeError("MDS id '{0}' not found in map".format(name))
 
     def get_mds_gid(self, gid):
             raise RuntimeError("MDS id '{0}' not found in map".format(name))
 
     def get_mds_gid(self, gid):
@@ -282,7 +285,8 @@ class MDSCluster(CephCluster):
             return super(MDSCluster, self).get_config(key, service_type)
 
         # Some tests stop MDS daemons, don't send commands to a dead one:
             return super(MDSCluster, self).get_config(key, service_type)
 
         # Some tests stop MDS daemons, don't send commands to a dead one:
-        service_id = random.sample(filter(lambda i: self.mds_daemons[i].running(), self.mds_daemons), 1)[0]
+        running_daemons = [i for i, mds in self.mds_daemons.items() if mds.running()]
+        service_id = random.sample(running_daemons, 1)[0]
         return self.json_asok(['config', 'get', key], service_type, service_id)[key]
 
     def mds_stop(self, mds_id=None):
         return self.json_asok(['config', 'get', key], service_type, service_id)[key]
 
     def mds_stop(self, mds_id=None):
@@ -691,7 +695,7 @@ class Filesystem(MDSCluster):
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
         assert(len(self.data_pools) == 1)
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
         assert(len(self.data_pools) == 1)
-        return self.data_pools.values()[0]
+        return next(iter(self.data_pools.values()))
 
     def get_data_pool_id(self, refresh = False):
         """
 
     def get_data_pool_id(self, refresh = False):
         """
@@ -701,12 +705,12 @@ class Filesystem(MDSCluster):
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
         assert(len(self.data_pools) == 1)
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
         assert(len(self.data_pools) == 1)
-        return self.data_pools.keys()[0]
+        return next(iter(self.data_pools.keys()))
 
     def get_data_pool_names(self, refresh = False):
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
 
     def get_data_pool_names(self, refresh = False):
         if refresh or self.data_pools is None:
             self.get_pool_names(refresh = True)
-        return self.data_pools.values()
+        return list(self.data_pools.values())
 
     def get_metadata_pool_name(self):
         return self.metadata_pool_name
 
     def get_metadata_pool_name(self):
         return self.metadata_pool_name
@@ -1090,11 +1094,12 @@ class Filesystem(MDSCluster):
             os.path.join(self._prefix, "rados"), "-p", pool, "getxattr", obj_name, xattr_name
         ]
         try:
             os.path.join(self._prefix, "rados"), "-p", pool, "getxattr", obj_name, xattr_name
         ]
         try:
-            data = remote.sh(args)
+            proc = remote.run(args=args, stdout=BytesIO())
         except CommandFailedError as e:
             log.error(e.__str__())
             raise ObjectNotFound(obj_name)
 
         except CommandFailedError as e:
             log.error(e.__str__())
             raise ObjectNotFound(obj_name)
 
+        data = proc.stdout.getvalue()
         dump = remote.sh(
             [os.path.join(self._prefix, "ceph-dencoder"),
                                             "type", type,
         dump = remote.sh(
             [os.path.join(self._prefix, "ceph-dencoder"),
                                             "type", type,
@@ -1180,7 +1185,7 @@ class Filesystem(MDSCluster):
 
         want_objects = [
             "{0:x}.{1:08x}".format(ino, n)
 
         want_objects = [
             "{0:x}.{1:08x}".format(ino, n)
-            for n in range(0, ((size - 1) / stripe_size) + 1)
+            for n in range(0, ((size - 1) // stripe_size) + 1)
         ]
 
         exist_objects = self.rados(["ls"], pool=self.get_data_pool_name()).split("\n")
         ]
 
         exist_objects = self.rados(["ls"], pool=self.get_data_pool_name()).split("\n")
@@ -1226,7 +1231,8 @@ class Filesystem(MDSCluster):
             return True
 
     def rados(self, args, pool=None, namespace=None, stdin_data=None,
             return True
 
     def rados(self, args, pool=None, namespace=None, stdin_data=None,
-              stdin_file=None):
+              stdin_file=None,
+              stdout_data=None):
         """
         Call into the `rados` CLI from an MDS
         """
         """
         Call into the `rados` CLI from an MDS
         """
@@ -1247,9 +1253,13 @@ class Filesystem(MDSCluster):
 
         if stdin_file is not None:
             args = ["bash", "-c", "cat " + stdin_file + " | " + " ".join(args)]
 
         if stdin_file is not None:
             args = ["bash", "-c", "cat " + stdin_file + " | " + " ".join(args)]
+        if stdout_data is None:
+            stdout_data = StringIO()
 
 
-        output = remote.sh(args, stdin=stdin_data)
-        return output.strip()
+        p = remote.run(args=args,
+                       stdin=stdin_data,
+                       stdout=stdout_data)
+        return p.stdout.getvalue().strip()
 
     def list_dirfrag(self, dir_ino):
         """
 
     def list_dirfrag(self, dir_ino):
         """
@@ -1326,7 +1336,7 @@ class Filesystem(MDSCluster):
             base_args.extend(["--rank", "%s" % str(rank)])
 
         t1 = datetime.datetime.now()
             base_args.extend(["--rank", "%s" % str(rank)])
 
         t1 = datetime.datetime.now()
-        r = self.tool_remote.sh(base_args + args).strip()
+        r = self.tool_remote.sh(script=base_args + args, stdout=StringIO()).strip()
         duration = datetime.datetime.now() - t1
         log.info("Ran {0} in time {1}, result:\n{2}".format(
             base_args + args, duration, r
         duration = datetime.datetime.now() - t1
         log.info("Ran {0} in time {1}, result:\n{2}".format(
             base_args + args, duration, r
index 6ca08a460b816350f78acc85636f29668bb4a170..57c59acabbb527cc8854ef92c58a7221d571ae03 100644 (file)
@@ -1,14 +1,18 @@
-from StringIO import StringIO
+from io import BytesIO
+from io import StringIO
 import json
 import time
 import logging
 import json
 import time
 import logging
+
+import six
+
 from textwrap import dedent
 
 from teuthology import misc
 from teuthology.contextutil import MaxWhileTries
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError
 from textwrap import dedent
 
 from teuthology import misc
 from teuthology.contextutil import MaxWhileTries
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError
-from .mount import CephFSMount
+from tasks.cephfs.mount import CephFSMount
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -36,7 +40,7 @@ class FuseMount(CephFSMount):
             # failures) and ensure the mount is not left half-up.
             # Otherwise we might leave a zombie mount point that causes
             # anyone traversing cephtest/ to get hung up on.
             # failures) and ensure the mount is not left half-up.
             # Otherwise we might leave a zombie mount point that causes
             # anyone traversing cephtest/ to get hung up on.
-            log.warn("Trying to clean up after failed mount")
+            log.warning("Trying to clean up after failed mount")
             self.umount_wait(force=True)
             raise
 
             self.umount_wait(force=True)
             raise
 
@@ -91,21 +95,23 @@ class FuseMount(CephFSMount):
         run_cmd.extend(fuse_cmd)
 
         def list_connections():
         run_cmd.extend(fuse_cmd)
 
         def list_connections():
+            from teuthology.misc import get_system_type
+
+            conn_dir = "/sys/fs/fuse/connections"
+
+            self.client_remote.run(args=['sudo', 'modprobe', 'fuse'],
+                                   check_status=False)
             self.client_remote.run(
             self.client_remote.run(
-                args=["sudo", "mount", "-t", "fusectl", "/sys/fs/fuse/connections", "/sys/fs/fuse/connections"],
-                check_status=False,
-                timeout=(15*60)
-            )
-            p = self.client_remote.run(
-                args=["ls", "/sys/fs/fuse/connections"],
-                stdout=StringIO(),
-                check_status=False,
-                timeout=(15*60)
-            )
-            if p.exitstatus != 0:
+                args=["sudo", "mount", "-t", "fusectl", conn_dir, conn_dir],
+                check_status=False, timeout=(30))
+
+            try:
+                ls_str = self.client_remote.sh("ls " + conn_dir,
+                                               stdout=StringIO(),
+                                               timeout=(15*60)).strip()
+            except CommandFailedError:
                 return []
 
                 return []
 
-            ls_str = p.stdout.getvalue().strip()
             if ls_str:
                 return [int(n) for n in ls_str.split("\n")]
             else:
             if ls_str:
                 return [int(n) for n in ls_str.split("\n")]
             else:
@@ -188,25 +194,26 @@ class FuseMount(CephFSMount):
                 self.mountpoint,
             ],
             cwd=self.test_dir,
                 self.mountpoint,
             ],
             cwd=self.test_dir,
-            stdout=StringIO(),
-            stderr=StringIO(),
+            stdout=BytesIO(),
+            stderr=BytesIO(),
             wait=False,
             timeout=(15*60)
         )
         try:
             proc.wait()
         except CommandFailedError:
             wait=False,
             timeout=(15*60)
         )
         try:
             proc.wait()
         except CommandFailedError:
-            if ("endpoint is not connected" in proc.stderr.getvalue()
-            or "Software caused connection abort" in proc.stderr.getvalue()):
+            error = six.ensure_str(proc.stderr.getvalue())
+            if ("endpoint is not connected" in error
+            or "Software caused connection abort" in error):
                 # This happens is fuse is killed without unmount
                 # This happens is fuse is killed without unmount
-                log.warn("Found stale moutn point at {0}".format(self.mountpoint))
+                log.warning("Found stale moutn point at {0}".format(self.mountpoint))
                 return True
             else:
                 # This happens if the mount directory doesn't exist
                 log.info('mount point does not exist: %s', self.mountpoint)
                 return False
 
                 return True
             else:
                 # This happens if the mount directory doesn't exist
                 log.info('mount point does not exist: %s', self.mountpoint)
                 return False
 
-        fstype = proc.stdout.getvalue().rstrip('\n')
+        fstype = six.ensure_str(proc.stdout.getvalue()).rstrip('\n')
         if fstype == 'fuseblk':
             log.info('ceph-fuse is mounted on %s', self.mountpoint)
             return True
         if fstype == 'fuseblk':
             log.info('ceph-fuse is mounted on %s', self.mountpoint)
             return True
@@ -231,11 +238,11 @@ class FuseMount(CephFSMount):
         # Now that we're mounted, set permissions so that the rest of the test will have
         # unrestricted access to the filesystem mount.
         try:
         # Now that we're mounted, set permissions so that the rest of the test will have
         # unrestricted access to the filesystem mount.
         try:
-            stderr = StringIO()
+            stderr = BytesIO()
             self.client_remote.run(args=['sudo', 'chmod', '1777', self.mountpoint], timeout=(15*60), cwd=self.test_dir, stderr=stderr)
         except run.CommandFailedError:
             stderr = stderr.getvalue()
             self.client_remote.run(args=['sudo', 'chmod', '1777', self.mountpoint], timeout=(15*60), cwd=self.test_dir, stderr=stderr)
         except run.CommandFailedError:
             stderr = stderr.getvalue()
-            if "Read-only file system".lower() in stderr.lower():
+            if b"Read-only file system".lower() in stderr.lower():
                 pass
             else:
                 raise
                 pass
             else:
                 raise
@@ -281,7 +288,7 @@ class FuseMount(CephFSMount):
                 """).format(self._fuse_conn))
                 self._fuse_conn = None
 
                 """).format(self._fuse_conn))
                 self._fuse_conn = None
 
-            stderr = StringIO()
+            stderr = BytesIO()
             try:
                 # make sure its unmounted
                 self.client_remote.run(
             try:
                 # make sure its unmounted
                 self.client_remote.run(
@@ -348,7 +355,7 @@ class FuseMount(CephFSMount):
 
         Prerequisite: the client is not mounted.
         """
 
         Prerequisite: the client is not mounted.
         """
-        stderr = StringIO()
+        stderr = BytesIO()
         try:
             self.client_remote.run(
                 args=[
         try:
             self.client_remote.run(
                 args=[
@@ -362,7 +369,7 @@ class FuseMount(CephFSMount):
                 check_status=False,
             )
         except CommandFailedError:
                 check_status=False,
             )
         except CommandFailedError:
-            if "No such file or directory" in stderr.getvalue():
+            if b"No such file or directory" in stderr.getvalue():
                 pass
             else:
                 raise
                 pass
             else:
                 raise
@@ -447,17 +454,18 @@ print(find_socket("{client_name}"))
             client_name="client.{0}".format(self.client_id))
 
         # Find the admin socket
             client_name="client.{0}".format(self.client_id))
 
         # Find the admin socket
-        p = self.client_remote.run(args=[
-            'sudo', 'python3', '-c', pyscript
-        ], stdout=StringIO(), timeout=(15*60))
-        asok_path = p.stdout.getvalue().strip()
+        asok_path = self.client_remote.sh(
+            ['sudo', 'python3', '-c', pyscript],
+            stdout=StringIO(),
+            timeout=(15*60)).strip()
         log.info("Found client admin socket at {0}".format(asok_path))
 
         # Query client ID from admin socket
         log.info("Found client admin socket at {0}".format(asok_path))
 
         # Query client ID from admin socket
-        p = self.client_remote.run(
-            args=['sudo', self._prefix + 'ceph', '--admin-daemon', asok_path] + args,
-            stdout=StringIO(), timeout=(15*60))
-        return json.loads(p.stdout.getvalue())
+        json_data = self.client_remote.sh(
+            ['sudo', self._prefix + 'ceph', '--admin-daemon', asok_path] + args,
+            stdout=StringIO(),
+            timeout=(15*60))
+        return json.loads(json_data)
 
     def get_global_id(self):
         """
 
     def get_global_id(self):
         """
index 8e4eeb66a96a30dd237b391874aa32e74ebb411d..7ef3f68f8f810cbcb250c5af626cf57b6ab1fcf7 100644 (file)
@@ -1,4 +1,3 @@
-from StringIO import StringIO
 import json
 import logging
 import time
 import json
 import logging
 import time
@@ -9,7 +8,7 @@ from teuthology import misc
 from teuthology.orchestra import remote as orchestra_remote
 from teuthology.orchestra import run
 from teuthology.contextutil import MaxWhileTries
 from teuthology.orchestra import remote as orchestra_remote
 from teuthology.orchestra import run
 from teuthology.contextutil import MaxWhileTries
-from .mount import CephFSMount
+from tasks.cephfs.mount import CephFSMount
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -214,10 +213,10 @@ class KernelMount(CephFSMount):
             print(json.dumps(get_id_to_dir()))
             """)
 
             print(json.dumps(get_id_to_dir()))
             """)
 
-        p = self.client_remote.run(args=[
+        output = self.client_remote.sh([
             'sudo', 'python3', '-c', pyscript
             'sudo', 'python3', '-c', pyscript
-        ], stdout=StringIO(), timeout=(5*60))
-        client_id_to_dir = json.loads(p.stdout.getvalue())
+        ], timeout=(5*60))
+        client_id_to_dir = json.loads(output)
 
         try:
             return client_id_to_dir[self.client_id]
 
         try:
             return client_id_to_dir[self.client_id]
@@ -236,10 +235,10 @@ class KernelMount(CephFSMount):
             print(open(os.path.join("{debug_dir}", "{filename}")).read())
             """).format(debug_dir=debug_dir, filename=filename)
 
             print(open(os.path.join("{debug_dir}", "{filename}")).read())
             """).format(debug_dir=debug_dir, filename=filename)
 
-        p = self.client_remote.run(args=[
+        output = self.client_remote.sh([
             'sudo', 'python3', '-c', pyscript
             'sudo', 'python3', '-c', pyscript
-        ], stdout=StringIO(), timeout=(5*60))
-        return p.stdout.getvalue()
+        ], timeout=(5*60))
+        return output
 
     def get_global_id(self):
         """
 
     def get_global_id(self):
         """
index aeed4fa2043466c7d743332caafc13ed405a3ad8..7d04535c8240c9b6ff69b7977d4702fc15f3dc0d 100644 (file)
@@ -2,10 +2,11 @@ from contextlib import contextmanager
 import json
 import logging
 import datetime
 import json
 import logging
 import datetime
+import six
 import time
 import time
+from six import StringIO
 from textwrap import dedent
 import os
 from textwrap import dedent
 import os
-from StringIO import StringIO
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError, ConnectionLostError
 from tasks.cephfs.filesystem import Filesystem
 from teuthology.orchestra import run
 from teuthology.orchestra.run import CommandFailedError, ConnectionLostError
 from tasks.cephfs.filesystem import Filesystem
@@ -61,6 +62,11 @@ class CephFSMount(object):
     def mount(self, mount_path=None, mount_fs_name=None, mountpoint=None, mount_options=[]):
         raise NotImplementedError()
 
     def mount(self, mount_path=None, mount_fs_name=None, mountpoint=None, mount_options=[]):
         raise NotImplementedError()
 
+    def mount_wait(self, mount_path=None, mount_fs_name=None, mountpoint=None, mount_options=[]):
+        self.mount(mount_path=mount_path, mount_fs_name=mount_fs_name, mountpoint=mountpoint,
+                   mount_options=mount_options)
+        self.wait_until_mounted()
+
     def umount(self):
         raise NotImplementedError()
 
     def umount(self):
         raise NotImplementedError()
 
@@ -189,7 +195,7 @@ class CephFSMount(object):
     def run_python(self, pyscript, py_version='python3'):
         p = self._run_python(pyscript, py_version)
         p.wait()
     def run_python(self, pyscript, py_version='python3'):
         p = self._run_python(pyscript, py_version)
         p.wait()
-        return p.stdout.getvalue().strip()
+        return six.ensure_str(p.stdout.getvalue().strip())
 
     def run_shell(self, args, wait=True, stdin=None, check_status=True,
                   omit_sudo=True):
 
     def run_shell(self, args, wait=True, stdin=None, check_status=True,
                   omit_sudo=True):
@@ -418,8 +424,8 @@ class CephFSMount(object):
 
         return self.run_shell(["dd", "if=/dev/urandom", "of={0}".format(filename),
                                "bs=1M", "conv=fdatasync",
 
         return self.run_shell(["dd", "if=/dev/urandom", "of={0}".format(filename),
                                "bs=1M", "conv=fdatasync",
-                               "count={0}".format(n_mb),
-                               "seek={0}".format(seek)
+                               "count={0}".format(int(n_mb)),
+                               "seek={0}".format(int(seek))
                                ], wait=wait)
 
     def write_test_pattern(self, filename, size):
                                ], wait=wait)
 
     def write_test_pattern(self, filename, size):
@@ -714,7 +720,7 @@ class CephFSMount(object):
             else:
                 raise
 
             else:
                 raise
 
-        return p.stdout.getvalue()
+        return str(p.stdout.getvalue())
 
     def df(self):
         """
 
     def df(self):
         """
@@ -724,7 +730,7 @@ class CephFSMount(object):
         p = self.run_shell(["df", "-B1", "."])
         lines = p.stdout.getvalue().strip().split("\n")
         fs, total, used, avail = lines[1].split()[:4]
         p = self.run_shell(["df", "-B1", "."])
         lines = p.stdout.getvalue().strip().split("\n")
         fs, total, used, avail = lines[1].split()[:4]
-        log.warn(lines)
+        log.warning(lines)
 
         return {
             "total": int(total),
 
         return {
             "total": int(total),
index 586cbde765c0bfc96a8f5b8a4bae0d618507d40f..4f704c0767acdb4a196911793852916ebd743e3c 100644 (file)
@@ -1,7 +1,7 @@
 import logging
 import logging
-from StringIO import StringIO
 
 
-from xfstests_dev import XFSTestsDev
+from io import BytesIO
+from tasks.cephfs.xfstests_dev import XFSTestsDev
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -22,6 +22,6 @@ class TestACLs(XFSTestsDev):
             log.info('client is kernel mounted')
 
         self.mount_a.client_remote.run(args=['sudo', './check',
             log.info('client is kernel mounted')
 
         self.mount_a.client_remote.run(args=['sudo', './check',
-            'generic/099'], cwd=self.repo_path, stdout=StringIO(),
-            stderr=StringIO(), timeout=30, check_status=True,
+            'generic/099'], cwd=self.repo_path, stdout=BytesIO(),
+            stderr=BytesIO(), timeout=30, check_status=True,
             label='running tests for ACLs from xfstests-dev')
             label='running tests for ACLs from xfstests-dev')
index c535489602a101e6403e919e312c77c1e0d86d32..7ff6ed536b9ab4c95290d48319cc0e2e2c3f9c8f 100644 (file)
@@ -7,6 +7,7 @@ from tasks.cephfs.fuse_mount import FuseMount
 
 from tasks.cephfs.filesystem import FileLayout
 
 
 from tasks.cephfs.filesystem import FileLayout
 
+
 class TestAdminCommands(CephFSTestCase):
     """
     Tests for administration command.
 class TestAdminCommands(CephFSTestCase):
     """
     Tests for administration command.
@@ -23,6 +24,12 @@ class TestAdminCommands(CephFSTestCase):
         s = self.fs.mon_manager.raw_cluster_cmd("fs", "status")
         self.assertTrue("active" in s)
 
         s = self.fs.mon_manager.raw_cluster_cmd("fs", "status")
         self.assertTrue("active" in s)
 
+        mdsmap = json.loads(self.fs.mon_manager.raw_cluster_cmd("fs", "status", "--format=json-pretty"))["mdsmap"]
+        self.assertEqual(mdsmap[0]["state"], "active")
+
+        mdsmap = json.loads(self.fs.mon_manager.raw_cluster_cmd("fs", "status", "--format=json"))["mdsmap"]
+        self.assertEqual(mdsmap[0]["state"], "active")
+
     def _setup_ec_pools(self, n, metadata=True, overwrites=True):
         if metadata:
             self.fs.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', n+"-meta", "8")
     def _setup_ec_pools(self, n, metadata=True, overwrites=True):
         if metadata:
             self.fs.mon_manager.raw_cluster_cmd('osd', 'pool', 'create', n+"-meta", "8")
@@ -67,6 +74,14 @@ class TestAdminCommands(CephFSTestCase):
         self.mount_a.run_shell("mkdir subdir")
         self.fs.set_dir_layout(self.mount_a, "subdir", FileLayout(pool=p))
 
         self.mount_a.run_shell("mkdir subdir")
         self.fs.set_dir_layout(self.mount_a, "subdir", FileLayout(pool=p))
 
+    def test_add_data_pool_non_alphamueric_name_as_subdir(self):
+        """
+        That a new data pool with non-alphanumeric name can be added and used for a sub-directory.
+        """
+        p = self.fs.add_data_pool("I-am-data_pool00.")
+        self.mount_a.run_shell("mkdir subdir")
+        self.fs.set_dir_layout(self.mount_a, "subdir", FileLayout(pool=p))
+
     def test_add_data_pool_ec(self):
         """
         That a new EC data pool can be added.
     def test_add_data_pool_ec(self):
         """
         That a new EC data pool can be added.
index c0aa2e4c70fae8e085b28a900cd635e8beb86249..141be9883d02225d2c497338ff787c9abbdc2a24 100644 (file)
@@ -44,8 +44,7 @@ class TestMDSAutoRepair(CephFSTestCase):
         self.fs.rados(["rmxattr", dir_objname, "parent"])
 
         # readdir (fetch dirfrag) should fix testdir1's backtrace
         self.fs.rados(["rmxattr", dir_objname, "parent"])
 
         # readdir (fetch dirfrag) should fix testdir1's backtrace
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.mount_a.run_shell(["ls", "testdir1"])
 
         # flush journal entries to dirfrag objects
         self.mount_a.run_shell(["ls", "testdir1"])
 
         # flush journal entries to dirfrag objects
index 6a26cdd9fc967d4af4d2b50ba7716d7409ba6d47..1c32de22ca99fddf7d8ffea4383aa22bc0a642f0 100644 (file)
@@ -2,15 +2,16 @@
 Before running this testsuite, add path to cephfs-shell module to $PATH and
 export $PATH.
 """
 Before running this testsuite, add path to cephfs-shell module to $PATH and
 export $PATH.
 """
+from io import BytesIO
 from os import path
 import crypt
 import logging
 from tempfile import mkstemp as tempfile_mkstemp
 import math
 from os import path
 import crypt
 import logging
 from tempfile import mkstemp as tempfile_mkstemp
 import math
+from six import ensure_str
 from sys import version_info as sys_version_info
 from re import search as re_search
 from time import sleep
 from sys import version_info as sys_version_info
 from re import search as re_search
 from time import sleep
-from StringIO import StringIO
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from teuthology.misc import sudo_write_file
 from teuthology.orchestra.run import CommandFailedError
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from teuthology.misc import sudo_write_file
 from teuthology.orchestra.run import CommandFailedError
@@ -52,23 +53,23 @@ class TestCephFSShell(CephFSTestCase):
         args.extend(("--", cmd))
 
         log.info("Running command: {}".format(" ".join(args)))
         args.extend(("--", cmd))
 
         log.info("Running command: {}".format(" ".join(args)))
-        return mount_x.client_remote.run(args=args, stdout=StringIO(),
-                                         stderr=StringIO(), stdin=stdin)
+        return mount_x.client_remote.run(args=args, stdout=BytesIO(),
+                                         stderr=BytesIO(), stdin=stdin)
 
     def get_cephfs_shell_cmd_error(self, cmd, mount_x=None, opts=None,
                                     stdin=None):
 
     def get_cephfs_shell_cmd_error(self, cmd, mount_x=None, opts=None,
                                     stdin=None):
-        return self.run_cephfs_shell_cmd(cmd, mount_x, opts, stdin).stderr.\
-            getvalue().strip()
+        return ensure_str(self.run_cephfs_shell_cmd(cmd, mount_x, opts, stdin).stderr.\
+            getvalue().strip())
 
     def get_cephfs_shell_cmd_output(self, cmd, mount_x=None, opts=None,
                                     stdin=None, config_path=None):
 
     def get_cephfs_shell_cmd_output(self, cmd, mount_x=None, opts=None,
                                     stdin=None, config_path=None):
-        return self.run_cephfs_shell_cmd(cmd, mount_x, opts, stdin,
+        return ensure_str(self.run_cephfs_shell_cmd(cmd, mount_x, opts, stdin,
                                          config_path).\
                                          config_path).\
-            stdout.getvalue().strip()
+            stdout.getvalue().strip())
 
     def get_cephfs_shell_script_output(self, script, mount_x=None, stdin=None):
 
     def get_cephfs_shell_script_output(self, script, mount_x=None, stdin=None):
-        return self.run_cephfs_shell_script(script, mount_x, stdin).stdout.\
-            getvalue().strip()
+        return ensure_str(self.run_cephfs_shell_script(script, mount_x, stdin).stdout.\
+            getvalue().strip())
 
     def run_cephfs_shell_script(self, script, mount_x=None, stdin=None):
         if mount_x is None:
 
     def run_cephfs_shell_script(self, script, mount_x=None, stdin=None):
         if mount_x is None:
@@ -83,8 +84,8 @@ class TestCephFSShell(CephFSTestCase):
 
         args = ["cephfs-shell", "-c", mount_x.config_path, '-b', scriptpath]
         log.info('Running script \"' + scriptpath + '\"')
 
         args = ["cephfs-shell", "-c", mount_x.config_path, '-b', scriptpath]
         log.info('Running script \"' + scriptpath + '\"')
-        return mount_x.client_remote.run(args=args, stdout=StringIO(),
-                                         stderr=StringIO(), stdin=stdin)
+        return mount_x.client_remote.run(args=args, stdout=BytesIO(),
+                                         stderr=BytesIO(), stdin=stdin)
 
 class TestMkdir(TestCephFSShell):
     def test_mkdir(self):
 
 class TestMkdir(TestCephFSShell):
     def test_mkdir(self):
@@ -490,7 +491,7 @@ class TestDU(TestCephFSShell):
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + regfilename)
         if sys_version_info.major >= 3:
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + regfilename)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -512,7 +513,7 @@ class TestDU(TestCephFSShell):
         sleep(10)
         du_output = self.get_cephfs_shell_cmd_output('du ' + dirname)
         if sys_version_info.major >= 3:
         sleep(10)
         du_output = self.get_cephfs_shell_cmd_output('du ' + dirname)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -528,7 +529,7 @@ class TestDU(TestCephFSShell):
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + dirname)
         if sys_version_info.major >= 3:
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + dirname)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -549,7 +550,7 @@ class TestDU(TestCephFSShell):
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + hlinkname)
         if sys_version_info.major >= 3:
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + hlinkname)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -568,7 +569,7 @@ class TestDU(TestCephFSShell):
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + slinkname)
         if sys_version_info.major >= 3:
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + slinkname)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -587,7 +588,7 @@ class TestDU(TestCephFSShell):
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + slinkname)
         if sys_version_info.major >= 3:
 
         du_output = self.get_cephfs_shell_cmd_output('du ' + slinkname)
         if sys_version_info.major >= 3:
-            self.assertRegex(expected_output, du_output)
+            self.assertRegex(du_output, expected_output)
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(expected_output, du_output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -678,7 +679,7 @@ class TestDU(TestCephFSShell):
 
         for expected_output in expected_patterns_in_output:
             if sys_version_info.major >= 3:
 
         for expected_output in expected_patterns_in_output:
             if sys_version_info.major >= 3:
-                self.assertRegex(expected_output, du_output)
+                self.assertRegex(du_output, expected_output)
             elif sys_version_info.major < 3:
                 assert re_search(expected_output, du_output) != None, "\n" + \
                        "expected_output -\n{}\ndu_output -\n{}\n".format(
             elif sys_version_info.major < 3:
                 assert re_search(expected_output, du_output) != None, "\n" + \
                        "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -695,7 +696,7 @@ class TestDU(TestCephFSShell):
 
         for expected_output in expected_patterns_in_output:
             if sys_version_info.major >= 3:
 
         for expected_output in expected_patterns_in_output:
             if sys_version_info.major >= 3:
-                self.assertRegex(expected_output, du_output)
+                self.assertRegex(du_output, expected_output)
             elif sys_version_info.major < 3:
                 assert re_search(expected_output, du_output) != None, "\n" +\
                        "expected_output -\n{}\ndu_output -\n{}\n".format(
             elif sys_version_info.major < 3:
                 assert re_search(expected_output, du_output) != None, "\n" +\
                        "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -711,7 +712,7 @@ class TestDU(TestCephFSShell):
             # CWD in DU report.
             if expected_output.find('/') == len(expected_output) - 1:
                 if sys_version_info.major >= 3:
             # CWD in DU report.
             if expected_output.find('/') == len(expected_output) - 1:
                 if sys_version_info.major >= 3:
-                    self.assertRegex(expected_output, du_output)
+                    self.assertRegex(du_output, expected_output)
                 elif sys_version_info.major < 3:
                     assert re_search(expected_output, du_output) != None, "\n" + \
                         "expected_output -\n{}\ndu_output -\n{}\n".format(
                 elif sys_version_info.major < 3:
                     assert re_search(expected_output, du_output) != None, "\n" + \
                         "expected_output -\n{}\ndu_output -\n{}\n".format(
@@ -749,7 +750,7 @@ class TestDF(TestCephFSShell):
     def test_df_for_invalid_directory(self):
         dir_abspath = path.join(self.mount_a.mountpoint, 'non-existent-dir')
         proc = self.run_cephfs_shell_cmd('df ' + dir_abspath)
     def test_df_for_invalid_directory(self):
         dir_abspath = path.join(self.mount_a.mountpoint, 'non-existent-dir')
         proc = self.run_cephfs_shell_cmd('df ' + dir_abspath)
-        assert proc.stderr.getvalue().find('error in stat') != -1
+        assert proc.stderr.getvalue().find(b'error in stat') != -1
 
     def test_df_for_valid_file(self):
         s = 'df test' * 14145016
 
     def test_df_for_valid_file(self):
         s = 'df test' * 14145016
@@ -924,12 +925,12 @@ class TestMisc(TestCephFSShell):
         dirname = 'somedirectory'
         self.run_cephfs_shell_cmd(['mkdir', dirname])
 
         dirname = 'somedirectory'
         self.run_cephfs_shell_cmd(['mkdir', dirname])
 
-        output = self.mount_a.client_remote.run(args=['cephfs-shell', '-c',
-            self.mount_a.config_path, 'ls'],
-            stdout=StringIO()).stdout.getvalue().strip()
+        output = self.mount_a.client_remote.sh([
+            'cephfs-shell', '-c', self.mount_a.config_path, 'ls'
+        ]).strip()
 
         if sys_version_info.major >= 3:
 
         if sys_version_info.major >= 3:
-            self.assertRegex(dirname, output)
+            self.assertRegex(output, dirname)
         elif sys_version_info.major < 3:
             assert re_search(dirname, output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
         elif sys_version_info.major < 3:
             assert re_search(dirname, output) != None, "\n" + \
                    "expected_output -\n{}\ndu_output -\n{}\n".format(
index 7b496d751e3bca7a7286b6bb0cfd32c839042dde..8491c3d7d888207ae6e1d2f084605e6c66ea1af1 100644 (file)
@@ -50,7 +50,7 @@ class TestClientLimits(CephFSTestCase):
 
         mds_min_caps_per_client = int(self.fs.get_config("mds_min_caps_per_client"))
         mds_max_caps_per_client = int(self.fs.get_config("mds_max_caps_per_client"))
 
         mds_min_caps_per_client = int(self.fs.get_config("mds_min_caps_per_client"))
         mds_max_caps_per_client = int(self.fs.get_config("mds_max_caps_per_client"))
-        mds_recall_warning_decay_rate = self.fs.get_config("mds_recall_warning_decay_rate")
+        mds_recall_warning_decay_rate = float(self.fs.get_config("mds_recall_warning_decay_rate"))
         self.assertTrue(open_files >= mds_min_caps_per_client)
 
         mount_a_client_id = self.mount_a.get_global_id()
         self.assertTrue(open_files >= mds_min_caps_per_client)
 
         mount_a_client_id = self.mount_a.get_global_id()
@@ -122,8 +122,7 @@ class TestClientLimits(CephFSTestCase):
 
         self.set_conf('client.{0}'.format(self.mount_a.client_id), 'client inject release failure', 'true')
         self.mount_a.teardown()
 
         self.set_conf('client.{0}'.format(self.mount_a.client_id), 'client inject release failure', 'true')
         self.mount_a.teardown()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         mount_a_client_id = self.mount_a.get_global_id()
 
         # Client A creates a file.  He will hold the write caps on the file, and later (simulated bug) fail
         mount_a_client_id = self.mount_a.get_global_id()
 
         # Client A creates a file.  He will hold the write caps on the file, and later (simulated bug) fail
@@ -164,8 +163,7 @@ class TestClientLimits(CephFSTestCase):
 
         self.set_conf('client', 'client inject fixed oldest tid', 'true')
         self.mount_a.teardown()
 
         self.set_conf('client', 'client inject fixed oldest tid', 'true')
         self.mount_a.teardown()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         self.fs.mds_asok(['config', 'set', 'mds_max_completed_requests', '{0}'.format(max_requests)])
 
 
         self.fs.mds_asok(['config', 'set', 'mds_max_completed_requests', '{0}'.format(max_requests)])
 
@@ -176,7 +174,7 @@ class TestClientLimits(CephFSTestCase):
         self.mount_a.create_n_files("testdir/file2", 5, True)
 
         # Wait for the health warnings. Assume mds can handle 10 request per second at least
         self.mount_a.create_n_files("testdir/file2", 5, True)
 
         # Wait for the health warnings. Assume mds can handle 10 request per second at least
-        self.wait_for_health("MDS_CLIENT_OLDEST_TID", max_requests / 10)
+        self.wait_for_health("MDS_CLIENT_OLDEST_TID", max_requests // 10)
 
     def _test_client_cache_size(self, mount_subdir):
         """
 
     def _test_client_cache_size(self, mount_subdir):
         """
@@ -195,8 +193,7 @@ class TestClientLimits(CephFSTestCase):
             self.mount_a.run_shell(["mkdir", "subdir"])
             self.mount_a.umount_wait()
             self.set_conf('client', 'client mountpoint', '/subdir')
             self.mount_a.run_shell(["mkdir", "subdir"])
             self.mount_a.umount_wait()
             self.set_conf('client', 'client mountpoint', '/subdir')
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
             root_ino = self.mount_a.path_to_ino(".")
             self.assertEqual(root_ino, 1);
 
             root_ino = self.mount_a.path_to_ino(".")
             self.assertEqual(root_ino, 1);
 
@@ -217,7 +214,7 @@ class TestClientLimits(CephFSTestCase):
         self.assertGreaterEqual(dentry_count, num_dirs)
         self.assertGreaterEqual(dentry_pinned_count, num_dirs)
 
         self.assertGreaterEqual(dentry_count, num_dirs)
         self.assertGreaterEqual(dentry_pinned_count, num_dirs)
 
-        cache_size = num_dirs / 10
+        cache_size = num_dirs // 10
         self.mount_a.set_cache_size(cache_size)
 
         def trimmed():
         self.mount_a.set_cache_size(cache_size)
 
         def trimmed():
index e18fe997e4d1b0e48b91f4875eea42a5987caddf..9f8aa5decf957387bbac87985ca1f929437f702a 100644 (file)
@@ -103,8 +103,7 @@ class TestClientRecovery(CephFSTestCase):
 
         self.mount_b.check_files()
 
 
         self.mount_b.check_files()
 
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # Check that the admin socket interface is correctly reporting
         # two sessions
 
         # Check that the admin socket interface is correctly reporting
         # two sessions
@@ -160,7 +159,7 @@ class TestClientRecovery(CephFSTestCase):
         in_reconnect_for = self.fs.wait_for_state('up:active', timeout=self.mds_reconnect_timeout * 2)
         # Check that the period we waited to enter active is within a factor
         # of two of the reconnect timeout.
         in_reconnect_for = self.fs.wait_for_state('up:active', timeout=self.mds_reconnect_timeout * 2)
         # Check that the period we waited to enter active is within a factor
         # of two of the reconnect timeout.
-        self.assertGreater(in_reconnect_for, self.mds_reconnect_timeout / 2,
+        self.assertGreater(in_reconnect_for, self.mds_reconnect_timeout // 2,
                            "Should have been in reconnect phase for {0} but only took {1}".format(
                                self.mds_reconnect_timeout, in_reconnect_for
                            ))
                            "Should have been in reconnect phase for {0} but only took {1}".format(
                                self.mds_reconnect_timeout, in_reconnect_for
                            ))
@@ -169,8 +168,7 @@ class TestClientRecovery(CephFSTestCase):
 
         # Check that the client that timed out during reconnect can
         # mount again and do I/O
 
         # Check that the client that timed out during reconnect can
         # mount again and do I/O
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.mount_a.create_destroy()
 
         self.assert_session_count(2)
         self.mount_a.create_destroy()
 
         self.assert_session_count(2)
@@ -212,8 +210,7 @@ class TestClientRecovery(CephFSTestCase):
         self.mount_a.kill_cleanup()
 
         # Bring the client back
         self.mount_a.kill_cleanup()
 
         # Bring the client back
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.mount_a.create_destroy()
 
     def _test_stale_caps(self, write):
         self.mount_a.create_destroy()
 
     def _test_stale_caps(self, write):
@@ -226,8 +223,7 @@ class TestClientRecovery(CephFSTestCase):
         else:
             self.mount_a.run_shell(["touch", "background_file"])
             self.mount_a.umount_wait()
         else:
             self.mount_a.run_shell(["touch", "background_file"])
             self.mount_a.umount_wait()
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
             cap_holder = self.mount_a.open_background(write=False)
 
         self.assert_session_count(2)
             cap_holder = self.mount_a.open_background(write=False)
 
         self.assert_session_count(2)
@@ -444,8 +440,7 @@ class TestClientRecovery(CephFSTestCase):
             self.mount_a.kill_cleanup()
 
         # Bring the client back
             self.mount_a.kill_cleanup()
 
         # Bring the client back
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
     def test_dir_fsync(self):
         self._test_fsync(True);
 
     def test_dir_fsync(self):
         self._test_fsync(True);
@@ -505,8 +500,7 @@ class TestClientRecovery(CephFSTestCase):
         log.info("Reached active...")
 
         # Is the child dentry visible from mount B?
         log.info("Reached active...")
 
         # Is the child dentry visible from mount B?
-        self.mount_b.mount()
-        self.mount_b.wait_until_mounted()
+        self.mount_b.mount_wait()
         self.mount_b.run_shell(["ls", "subdir/childfile"])
 
     def test_unmount_for_evicted_client(self):
         self.mount_b.run_shell(["ls", "subdir/childfile"])
 
     def test_unmount_for_evicted_client(self):
index d03e027e7b61c532db51fa3fd772b65478d4b752..9a79392191b600cc5f50b6567801b6e904c08604 100644 (file)
@@ -305,8 +305,7 @@ class TestDamage(CephFSTestCase):
                 log.info("Daemons came up after mutation '{0}', proceeding to ls".format(mutation.desc))
 
             # MDS is up, should go damaged on ls or client mount
                 log.info("Daemons came up after mutation '{0}', proceeding to ls".format(mutation.desc))
 
             # MDS is up, should go damaged on ls or client mount
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
             if mutation.ls_path == ".":
                 proc = self.mount_a.run_shell(["ls", "-R", mutation.ls_path], wait=False)
             else:
             if mutation.ls_path == ".":
                 proc = self.mount_a.run_shell(["ls", "-R", mutation.ls_path], wait=False)
             else:
@@ -401,8 +400,7 @@ class TestDamage(CephFSTestCase):
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         dentries = self.mount_a.ls("subdir/")
 
         # The damaged guy should have disappeared
         dentries = self.mount_a.ls("subdir/")
 
         # The damaged guy should have disappeared
@@ -461,8 +459,7 @@ class TestDamage(CephFSTestCase):
         self.assertEqual(scrub_json["raw_stats"]["passed"], False)
 
         # Check that the file count is now correct
         self.assertEqual(scrub_json["raw_stats"]["passed"], False)
 
         # Check that the file count is now correct
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         nfiles = self.mount_a.getfattr("./subdir", "ceph.dir.files")
         self.assertEqual(nfiles, "1")
 
         nfiles = self.mount_a.getfattr("./subdir", "ceph.dir.files")
         self.assertEqual(nfiles, "1")
 
@@ -505,7 +502,7 @@ class TestDamage(CephFSTestCase):
         self.mds_cluster.mds_fail_restart()
         self.fs.wait_for_daemons()
 
         self.mds_cluster.mds_fail_restart()
         self.fs.wait_for_daemons()
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         # Case 1: un-decodeable backtrace
 
 
         # Case 1: un-decodeable backtrace
 
index 512e4754122b0db7373b1f6bd79891e8e3bde6a8..7b6459de9230a92787e3b07b2735df8ba5a5c2f2 100644 (file)
@@ -7,9 +7,11 @@ import json
 import logging
 import os
 import time
 import logging
 import os
 import time
-from textwrap import dedent
 import traceback
 import traceback
+
+from io import BytesIO
 from collections import namedtuple, defaultdict
 from collections import namedtuple, defaultdict
+from textwrap import dedent
 
 from teuthology.orchestra.run import CommandFailedError
 from tasks.cephfs.cephfs_test_case import CephFSTestCase, for_teuthology
 
 from teuthology.orchestra.run import CommandFailedError
 from tasks.cephfs.cephfs_test_case import CephFSTestCase, for_teuthology
@@ -146,13 +148,13 @@ class StripedStashedLayout(Workload):
             # Exactly stripe_count objects will exist
             self.os * self.sc,
             # Fewer than stripe_count objects will exist
             # Exactly stripe_count objects will exist
             self.os * self.sc,
             # Fewer than stripe_count objects will exist
-            self.os * self.sc / 2,
-            self.os * (self.sc - 1) + self.os / 2,
-            self.os * (self.sc - 1) + self.os / 2 - 1,
-            self.os * (self.sc + 1) + self.os / 2,
-            self.os * (self.sc + 1) + self.os / 2 + 1,
+            self.os * self.sc // 2,
+            self.os * (self.sc - 1) + self.os // 2,
+            self.os * (self.sc - 1) + self.os // 2 - 1,
+            self.os * (self.sc + 1) + self.os // 2,
+            self.os * (self.sc + 1) + self.os // 2 + 1,
             # More than stripe_count objects will exist
             # More than stripe_count objects will exist
-            self.os * self.sc + self.os * self.sc / 2
+            self.os * self.sc + self.os * self.sc // 2
         ]
 
     def write(self):
         ]
 
     def write(self):
@@ -379,8 +381,7 @@ class TestDataScan(CephFSTestCase):
         log.info(str(self.mds_cluster.status()))
 
         # Mount a client
         log.info(str(self.mds_cluster.status()))
 
         # Mount a client
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # See that the files are present and correct
         errors = workload.validate()
 
         # See that the files are present and correct
         errors = workload.validate()
@@ -473,8 +474,7 @@ class TestDataScan(CephFSTestCase):
         # Start filesystem back up, observe that the file appears to be gone in an `ls`
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
         # Start filesystem back up, observe that the file appears to be gone in an `ls`
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         files = self.mount_a.run_shell(["ls", "subdir/"]).stdout.getvalue().strip().split("\n")
         self.assertListEqual(sorted(files), sorted(list(set(file_names) - set([victim_dentry]))))
 
         files = self.mount_a.run_shell(["ls", "subdir/"]).stdout.getvalue().strip().split("\n")
         self.assertListEqual(sorted(files), sorted(list(set(file_names) - set([victim_dentry]))))
 
@@ -494,8 +494,7 @@ class TestDataScan(CephFSTestCase):
         # and points to the correct file data.
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
         # and points to the correct file data.
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         out = self.mount_a.run_shell(["cat", "subdir/{0}".format(victim_dentry)]).stdout.getvalue().strip()
         self.assertEqual(out, victim_dentry)
 
         out = self.mount_a.run_shell(["cat", "subdir/{0}".format(victim_dentry)]).stdout.getvalue().strip()
         self.assertEqual(out, victim_dentry)
 
@@ -578,7 +577,8 @@ class TestDataScan(CephFSTestCase):
         # introduce duplicated primary link
         file1_key = "file1_head"
         self.assertIn(file1_key, dirfrag1_keys)
         # introduce duplicated primary link
         file1_key = "file1_head"
         self.assertIn(file1_key, dirfrag1_keys)
-        file1_omap_data = self.fs.rados(["getomapval", dirfrag1_oid, file1_key, '-'])
+        file1_omap_data = self.fs.rados(["getomapval", dirfrag1_oid, file1_key, '-'],
+                                        stdout_data=BytesIO())
         self.fs.rados(["setomapval", dirfrag2_oid, file1_key], stdin_data=file1_omap_data)
         self.assertIn(file1_key, self._dirfrag_keys(dirfrag2_oid))
 
         self.fs.rados(["setomapval", dirfrag2_oid, file1_key], stdin_data=file1_omap_data)
         self.assertIn(file1_key, self._dirfrag_keys(dirfrag2_oid))
 
@@ -604,8 +604,7 @@ class TestDataScan(CephFSTestCase):
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # link count was adjusted?
         file1_nlink = self.mount_a.path_to_nlink("testdir1/file1")
 
         # link count was adjusted?
         file1_nlink = self.mount_a.path_to_nlink("testdir1/file1")
index 6d943f9dd2ff337b13ac72cd84d8d8198833bb82..48a2c6f00acb55753f06b34ad48a128100334441 100644 (file)
@@ -39,7 +39,7 @@ class TestDumpTree(CephFSTestCase):
 
         self.populate()
         inos = self.get_paths_to_ino()
 
         self.populate()
         inos = self.get_paths_to_ino()
-        target = random.choice(inos.keys())
+        target = random.sample(inos.keys(), 1)[0]
 
         if target != "./":
             target = os.path.dirname(target)
 
         if target != "./":
             target = os.path.dirname(target)
index 060131add70f1bda4d4e52235ecc5ef8b40197b8..abaf92e6bdae138fa3b5b1183392e6bd0140d466 100644 (file)
@@ -1,6 +1,5 @@
 import logging
 import time
 import logging
 import time
-from StringIO import StringIO
 from tasks.cephfs.fuse_mount import FuseMount
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 
 from tasks.cephfs.fuse_mount import FuseMount
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 
@@ -129,15 +128,15 @@ class TestExports(CephFSTestCase):
             self._wait_subtrees(status, 0, [('/1', 1), ('/1/2', 0), ('/1/2/3', 2)])
 
         if not isinstance(self.mount_a, FuseMount):
             self._wait_subtrees(status, 0, [('/1', 1), ('/1/2', 0), ('/1/2/3', 2)])
 
         if not isinstance(self.mount_a, FuseMount):
-            p = self.mount_a.client_remote.run(args=['uname', '-r'], stdout=StringIO(), wait=True)
+            p = self.mount_a.client_remote.sh('uname -r', wait=True)
             dir_pin = self.mount_a.getfattr("1", "ceph.dir.pin")
             log.debug("mount.getfattr('1','ceph.dir.pin'): %s " % dir_pin)
             dir_pin = self.mount_a.getfattr("1", "ceph.dir.pin")
             log.debug("mount.getfattr('1','ceph.dir.pin'): %s " % dir_pin)
-            if str(p.stdout.getvalue()) < "5" and not(dir_pin):
+            if str(p) < "5" and not(dir_pin):
                 self.skipTest("Kernel does not support getting the extended attribute ceph.dir.pin")
                 self.skipTest("Kernel does not support getting the extended attribute ceph.dir.pin")
-        self.assertTrue(self.mount_a.getfattr("1", "ceph.dir.pin") == "1")
-        self.assertTrue(self.mount_a.getfattr("1/2", "ceph.dir.pin") == "0")
+        self.assertEqual(self.mount_a.getfattr("1", "ceph.dir.pin"), '1')
+        self.assertEqual(self.mount_a.getfattr("1/2", "ceph.dir.pin"), '0')
         if (len(self.fs.get_active_names()) > 2):
         if (len(self.fs.get_active_names()) > 2):
-            self.assertTrue(self.mount_a.getfattr("1/2/3", "ceph.dir.pin") == "2")
+            self.assertEqual(self.mount_a.getfattr("1/2/3", "ceph.dir.pin"), '2')
 
     def test_session_race(self):
         """
 
     def test_session_race(self):
         """
index 6872319cf3c0dde7f3cea175fb48137b079f905f..ec21e61614a8ca43ef71b396f5384f8d5fca64aa 100644 (file)
@@ -3,8 +3,9 @@ import signal
 import logging
 import operator
 from random import randint
 import logging
 import operator
 from random import randint
+from six.moves import range
 
 
-from cephfs_test_case import CephFSTestCase
+from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from teuthology.exceptions import CommandFailedError
 from tasks.cephfs.fuse_mount import FuseMount
 
 from teuthology.exceptions import CommandFailedError
 from tasks.cephfs.fuse_mount import FuseMount
 
@@ -24,7 +25,7 @@ class TestClusterAffinity(CephFSTestCase):
         current = sorted(current, key=operator.itemgetter('name'))
         log.info("current = %s", current)
         self.assertEqual(len(current), len(target))
         current = sorted(current, key=operator.itemgetter('name'))
         log.info("current = %s", current)
         self.assertEqual(len(current), len(target))
-        for i in xrange(len(current)):
+        for i in range(len(current)):
             for attr in target[i]:
                 self.assertIn(attr, current[i])
                 self.assertEqual(target[i][attr], current[i][attr])
             for attr in target[i]:
                 self.assertIn(attr, current[i])
                 self.assertEqual(target[i][attr], current[i][attr])
@@ -413,8 +414,7 @@ class TestFailover(CephFSTestCase):
         self.mounts[0].umount_wait()
 
         # Control: that we can mount and unmount usually, while the cluster is healthy
         self.mounts[0].umount_wait()
 
         # Control: that we can mount and unmount usually, while the cluster is healthy
-        self.mounts[0].mount()
-        self.mounts[0].wait_until_mounted()
+        self.mounts[0].mount_wait()
         self.mounts[0].umount_wait()
 
         # Stop the daemon processes
         self.mounts[0].umount_wait()
 
         # Stop the daemon processes
@@ -431,7 +431,7 @@ class TestFailover(CephFSTestCase):
 
         self.wait_until_true(laggy, grace * 2)
         with self.assertRaises(CommandFailedError):
 
         self.wait_until_true(laggy, grace * 2)
         with self.assertRaises(CommandFailedError):
-            self.mounts[0].mount()
+            self.mounts[0].mount_wait()
 
     def test_standby_count_wanted(self):
         """
 
     def test_standby_count_wanted(self):
         """
index ee0b1c92b1992e64bae7cfff36a31f205dad890a..17cb849700eb3c7f88fa31a38757b41f16246eca 100644 (file)
@@ -88,8 +88,7 @@ class TestFlush(CephFSTestCase):
         initial_purges = self.fs.mds_asok(['perf', 'dump', 'mds_cache'])['mds_cache']['strays_enqueued']
 
         # Use a client to delete a file
         initial_purges = self.fs.mds_asok(['perf', 'dump', 'mds_cache'])['mds_cache']['strays_enqueued']
 
         # Use a client to delete a file
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.mount_a.run_shell(["rm", "-rf", "mydir"])
 
         # Flush the journal so that the directory inode can be purged
         self.mount_a.run_shell(["rm", "-rf", "mydir"])
 
         # Flush the journal so that the directory inode can be purged
index 6eb31b244df4601e7a0245c7671f7e71b8425f20..7ed8564d22887bed10b536ec1bfbbda8c69b5d63 100644 (file)
@@ -10,7 +10,10 @@ how the functionality responds to damaged metadata.
 import json
 
 import logging
 import json
 
 import logging
+import six
+
 from collections import namedtuple
 from collections import namedtuple
+from io import BytesIO
 from textwrap import dedent
 
 from teuthology.orchestra.run import CommandFailedError
 from textwrap import dedent
 
 from teuthology.orchestra.run import CommandFailedError
@@ -31,9 +34,10 @@ class TestForwardScrub(CephFSTestCase):
         """
         Read a ceph-encoded string from a rados xattr
         """
         """
         Read a ceph-encoded string from a rados xattr
         """
-        output = self.fs.rados(["getxattr", obj, attr], pool=pool)
+        output = self.fs.rados(["getxattr", obj, attr], pool=pool,
+                               stdout_data=BytesIO())
         strlen = struct.unpack('i', output[0:4])[0]
         strlen = struct.unpack('i', output[0:4])[0]
-        return output[4:(4 + strlen)]
+        return six.ensure_str(output[4:(4 + strlen)], encoding='ascii')
 
     def _get_paths_to_ino(self):
         inos = {}
 
     def _get_paths_to_ino(self):
         inos = {}
@@ -132,7 +136,7 @@ class TestForwardScrub(CephFSTestCase):
         # Create a new inode that's just in the log, i.e. would
         # look orphaned to backward scan if backward scan wisnae
         # respectin' tha scrub_tag xattr.
         # Create a new inode that's just in the log, i.e. would
         # look orphaned to backward scan if backward scan wisnae
         # respectin' tha scrub_tag xattr.
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
         self.mount_a.run_shell(["mkdir", "parent/unflushed"])
         self.mount_a.run_shell(["dd", "if=/dev/urandom",
                                 "of=./parent/unflushed/jfile",
         self.mount_a.run_shell(["mkdir", "parent/unflushed"])
         self.mount_a.run_shell(["dd", "if=/dev/urandom",
                                 "of=./parent/unflushed/jfile",
@@ -155,7 +159,7 @@ class TestForwardScrub(CephFSTestCase):
         self.fs.wait_for_daemons()
 
         # See that the orphaned file is indeed missing from a client's POV
         self.fs.wait_for_daemons()
 
         # See that the orphaned file is indeed missing from a client's POV
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
         damaged_state = self._get_paths_to_ino()
         self.assertNotIn("./parent/flushed/bravo", damaged_state)
         self.mount_a.umount_wait()
         damaged_state = self._get_paths_to_ino()
         self.assertNotIn("./parent/flushed/bravo", damaged_state)
         self.mount_a.umount_wait()
@@ -192,7 +196,7 @@ class TestForwardScrub(CephFSTestCase):
         # and no lost+found, and no extra inodes!
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
         # and no lost+found, and no extra inodes!
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
         self._validate_linkage(inos)
 
     def _stash_inotable(self):
         self._validate_linkage(inos)
 
     def _stash_inotable(self):
@@ -218,7 +222,7 @@ class TestForwardScrub(CephFSTestCase):
 
         inotable_copy = self._stash_inotable()
 
 
         inotable_copy = self._stash_inotable()
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         self.mount_a.write_n_mb("file2_sixmegs", 6)
         self.mount_a.write_n_mb("file3_sixmegs", 6)
 
         self.mount_a.write_n_mb("file2_sixmegs", 6)
         self.mount_a.write_n_mb("file3_sixmegs", 6)
index 3ba05af1db7cce0260606abfb3788617313f4135..eaa36c7c9d62fbc9384c357a850e7587e254cdb3 100644 (file)
@@ -125,9 +125,9 @@ class FullnessTestCase(CephFSTestCase):
 
         # Fill up the cluster.  This dd may or may not fail, as it depends on
         # how soon the cluster recognises its own fullness
 
         # Fill up the cluster.  This dd may or may not fail, as it depends on
         # how soon the cluster recognises its own fullness
-        self.mount_a.write_n_mb("large_file_a", self.fill_mb / 2)
+        self.mount_a.write_n_mb("large_file_a", self.fill_mb // 2)
         try:
         try:
-            self.mount_a.write_n_mb("large_file_b", self.fill_mb / 2)
+            self.mount_a.write_n_mb("large_file_b", self.fill_mb // 2)
         except CommandFailedError:
             log.info("Writing file B failed (full status happened already)")
             assert self.is_full()
         except CommandFailedError:
             log.info("Writing file B failed (full status happened already)")
             assert self.is_full()
@@ -138,7 +138,7 @@ class FullnessTestCase(CephFSTestCase):
 
         # Attempting to write more data should give me ENOSPC
         with self.assertRaises(CommandFailedError) as ar:
 
         # Attempting to write more data should give me ENOSPC
         with self.assertRaises(CommandFailedError) as ar:
-            self.mount_a.write_n_mb("large_file_b", 50, seek=self.fill_mb / 2)
+            self.mount_a.write_n_mb("large_file_b", 50, seek=self.fill_mb // 2)
         self.assertEqual(ar.exception.exitstatus, 1)  # dd returns 1 on "No space"
 
         # Wait for the MDS to see the latest OSD map so that it will reliably
         self.assertEqual(ar.exception.exitstatus, 1)  # dd returns 1 on "No space"
 
         # Wait for the MDS to see the latest OSD map so that it will reliably
@@ -212,7 +212,7 @@ class FullnessTestCase(CephFSTestCase):
         # Configs for this test should bring this setting down in order to
         # run reasonably quickly
         if osd_mon_report_interval > 10:
         # Configs for this test should bring this setting down in order to
         # run reasonably quickly
         if osd_mon_report_interval > 10:
-            log.warn("This test may run rather slowly unless you decrease"
+            log.warning("This test may run rather slowly unless you decrease"
                      "osd_mon_report_interval (5 is a good setting)!")
 
         self.mount_a.run_python(template.format(
                      "osd_mon_report_interval (5 is a good setting)!")
 
         self.mount_a.run_python(template.format(
@@ -361,7 +361,7 @@ class TestQuotaFull(FullnessTestCase):
     Test per-pool fullness, which indicates quota limits exceeded
     """
     pool_capacity = 1024 * 1024 * 32  # arbitrary low-ish limit
     Test per-pool fullness, which indicates quota limits exceeded
     """
     pool_capacity = 1024 * 1024 * 32  # arbitrary low-ish limit
-    fill_mb = pool_capacity / (1024 * 1024)  # type: ignore
+    fill_mb = pool_capacity // (1024 * 1024)  # type: ignore
 
     # We are only testing quota handling on the data pool, not the metadata
     # pool.
 
     # We are only testing quota handling on the data pool, not the metadata
     # pool.
@@ -392,7 +392,7 @@ class TestClusterFull(FullnessTestCase):
             max_avail = self.fs.get_pool_df(self._data_pool_name())['max_avail']
             full_ratio = float(self.fs.get_config("mon_osd_full_ratio", service_type="mon"))
             TestClusterFull.pool_capacity = int(max_avail * full_ratio)
             max_avail = self.fs.get_pool_df(self._data_pool_name())['max_avail']
             full_ratio = float(self.fs.get_config("mon_osd_full_ratio", service_type="mon"))
             TestClusterFull.pool_capacity = int(max_avail * full_ratio)
-            TestClusterFull.fill_mb = (self.pool_capacity / (1024 * 1024))
+            TestClusterFull.fill_mb = (self.pool_capacity // (1024 * 1024))
 
     def is_full(self):
         return self.fs.is_full()
 
     def is_full(self):
         return self.fs.is_full()
index 9d1d399caa8ed67d4b56d474a36887b0f9c804a2..8863b371f39662937144d9cf03ae17365d2ac160 100644 (file)
@@ -1,5 +1,4 @@
 
 
-from StringIO import StringIO
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from tasks.workunit import task as workunit
 
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from tasks.workunit import task as workunit
 
@@ -76,14 +75,12 @@ class TestJournalMigration(CephFSTestCase):
 
         self.fs.journal_tool(["event", "get", "json",
                               "--path", "/tmp/journal.json"], 0)
 
         self.fs.journal_tool(["event", "get", "json",
                               "--path", "/tmp/journal.json"], 0)
-        p = self.fs.tool_remote.run(
-            args=[
+        p = self.fs.tool_remote.sh([
                 "python3",
                 "-c",
                 "import json; print(len(json.load(open('/tmp/journal.json'))))"
                 "python3",
                 "-c",
                 "import json; print(len(json.load(open('/tmp/journal.json'))))"
-            ],
-            stdout=StringIO())
-        event_count = int(p.stdout.getvalue().strip())
+            ])
+        event_count = int(p.strip())
         if event_count < 1000:
             # Approximate value of "lots", expected from having run fsstress
             raise RuntimeError("Unexpectedly few journal events: {0}".format(event_count))
         if event_count < 1000:
             # Approximate value of "lots", expected from having run fsstress
             raise RuntimeError("Unexpectedly few journal events: {0}".format(event_count))
index a52455d7100072895e23b18c3ac1018d24e62c62..61037b96d7320d3f4d48d67e2cfbf10bfdb8c324 100644 (file)
@@ -92,8 +92,7 @@ class TestJournalRepair(CephFSTestCase):
         self.fs.wait_for_daemons()
 
         # List files
         self.fs.wait_for_daemons()
 
         # List files
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # First ls -R to populate MDCache, such that hardlinks will
         # resolve properly (recover_dentries does not create backtraces,
 
         # First ls -R to populate MDCache, such that hardlinks will
         # resolve properly (recover_dentries does not create backtraces,
@@ -102,8 +101,7 @@ class TestJournalRepair(CephFSTestCase):
         # FIXME: hook in forward scrub here to regenerate backtraces
         proc = self.mount_a.run_shell(['ls', '-R'])
         self.mount_a.umount_wait()  # remount to clear client cache before our second ls
         # FIXME: hook in forward scrub here to regenerate backtraces
         proc = self.mount_a.run_shell(['ls', '-R'])
         self.mount_a.umount_wait()  # remount to clear client cache before our second ls
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         proc = self.mount_a.run_shell(['ls', '-R'])
         self.assertEqual(proc.stdout.getvalue().strip(),
 
         proc = self.mount_a.run_shell(['ls', '-R'])
         self.assertEqual(proc.stdout.getvalue().strip(),
@@ -278,7 +276,7 @@ class TestJournalRepair(CephFSTestCase):
         self.fs.mds_fail_restart(active_mds_names[0])
         self.wait_until_equal(lambda: self.fs.get_active_names(), [active_mds_names[0]], 30,
                               reject_fn=lambda v: len(v) > 1)
         self.fs.mds_fail_restart(active_mds_names[0])
         self.wait_until_equal(lambda: self.fs.get_active_names(), [active_mds_names[0]], 30,
                               reject_fn=lambda v: len(v) > 1)
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
         self.mount_a.run_shell(["ls", "-R"], wait=True)
 
     def test_table_tool(self):
         self.mount_a.run_shell(["ls", "-R"], wait=True)
 
     def test_table_tool(self):
@@ -434,7 +432,7 @@ class TestJournalRepair(CephFSTestCase):
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
         self.fs.mds_restart()
         self.fs.wait_for_daemons()
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         # trivial sync moutn a
         workunit(self.ctx, {
 
         # trivial sync moutn a
         workunit(self.ctx, {
index 342fb76d4dbf535ae92d5e19edf1b669d32c2016..c7328455890963e1c0d2fff6fcff31fc5af99d3a 100644 (file)
@@ -25,8 +25,7 @@ class TestMisc(CephFSTestCase):
         # on lookup/open
         self.mount_b.umount_wait()
         self.set_conf('client', 'client debug getattr caps', 'true')
         # on lookup/open
         self.mount_b.umount_wait()
         self.set_conf('client', 'client debug getattr caps', 'true')
-        self.mount_b.mount()
-        self.mount_b.wait_until_mounted()
+        self.mount_b.mount_wait()
 
         # create a file and hold it open. MDS will issue CEPH_CAP_EXCL_*
         # to mount_a
 
         # create a file and hold it open. MDS will issue CEPH_CAP_EXCL_*
         # to mount_a
@@ -47,7 +46,7 @@ class TestMisc(CephFSTestCase):
         t = time.time()
         rctime = self.mount_a.getfattr(".", "ceph.dir.rctime")
         log.info("rctime = {}".format(rctime))
         t = time.time()
         rctime = self.mount_a.getfattr(".", "ceph.dir.rctime")
         log.info("rctime = {}".format(rctime))
-        self.assertGreaterEqual(rctime, t-10)
+        self.assertGreaterEqual(float(rctime), t - 10)
 
     def test_fs_new(self):
         self.mount_a.umount_wait()
 
     def test_fs_new(self):
         self.mount_a.umount_wait()
index 24f84e842c1fda74ca3def07c47b54a3120746d0..d64c7d94f4d445ab206d29eda797586f4f44aa1b 100644 (file)
@@ -1,6 +1,6 @@
 import time
 import logging
 import time
 import logging
-from cephfs_test_case import CephFSTestCase
+from tasks.cephfs.cephfs_test_case import CephFSTestCase
 from teuthology.exceptions import CommandFailedError
 from tasks.cephfs.cephfs_test_case import CephFSTestCase, for_teuthology
 
 from teuthology.exceptions import CommandFailedError
 from tasks.cephfs.cephfs_test_case import CephFSTestCase, for_teuthology
 
@@ -31,7 +31,7 @@ class OpenFileTable(CephFSTestCase):
 
         # Hold the file open
         file_count = 8
 
         # Hold the file open
         file_count = 8
-        for i in xrange(0, file_count):
+        for i in range(0, file_count):
             filename = "open_file{}".format(i)
             p = self.mount_a.open_background(filename)
             self.mount_a.write_n_mb(filename, size_mb)
             filename = "open_file{}".format(i)
             p = self.mount_a.open_background(filename)
             self.mount_a.write_n_mb(filename, size_mb)
index a1f234a22538bfae7086e5a0ea8eb36d7846fcd7..9912debedee3a1cb87daa823fcfa7480758e76d0 100644 (file)
@@ -35,8 +35,7 @@ class TestPoolPerm(CephFSTestCase):
             'allow r pool={0}'.format(self.fs.get_data_pool_name()))
 
         self.mount_a.umount_wait()
             'allow r pool={0}'.format(self.fs.get_data_pool_name()))
 
         self.mount_a.umount_wait()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # write should fail
         self.mount_a.run_python(remote_script.format(path=file_path, check_read=str(False)))
 
         # write should fail
         self.mount_a.run_python(remote_script.format(path=file_path, check_read=str(False)))
@@ -47,8 +46,7 @@ class TestPoolPerm(CephFSTestCase):
             'allow w pool={0}'.format(self.fs.get_data_pool_name()))
 
         self.mount_a.umount_wait()
             'allow w pool={0}'.format(self.fs.get_data_pool_name()))
 
         self.mount_a.umount_wait()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # read should fail
         self.mount_a.run_python(remote_script.format(path=file_path, check_read=str(True)))
 
         # read should fail
         self.mount_a.run_python(remote_script.format(path=file_path, check_read=str(True)))
@@ -77,8 +75,7 @@ class TestPoolPerm(CephFSTestCase):
             ))
 
         self.mount_a.umount_wait()
             ))
 
         self.mount_a.umount_wait()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         with self.assertRaises(CommandFailedError):
             self.mount_a.setfattr("layoutfile", "ceph.file.layout.pool",
 
         with self.assertRaises(CommandFailedError):
             self.mount_a.setfattr("layoutfile", "ceph.file.layout.pool",
@@ -96,8 +93,7 @@ class TestPoolPerm(CephFSTestCase):
                 self.fs.get_data_pool_names()[0],
                 self.fs.get_data_pool_names()[1],
             ))
                 self.fs.get_data_pool_names()[0],
                 self.fs.get_data_pool_names()[1],
             ))
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.mount_a.setfattr("layoutfile", "ceph.file.layout.pool",
                               new_pool_name)
         self.mount_a.setfattr("layoutdir", "ceph.dir.layout.pool",
         self.mount_a.setfattr("layoutfile", "ceph.file.layout.pool",
                               new_pool_name)
         self.mount_a.setfattr("layoutdir", "ceph.dir.layout.pool",
index ee11c586ee3ba90d16574c8d4fc0361734a8ffb7..dcfda5e216e3cb80adc11ece5ac2ad87dfba9b02 100644 (file)
@@ -1,5 +1,5 @@
 
 
-from cephfs_test_case import CephFSTestCase
+from tasks.cephfs.cephfs_test_case import CephFSTestCase
 
 from teuthology.exceptions import CommandFailedError
 
 
 from teuthology.exceptions import CommandFailedError
 
index 31e7bf187546a604e5359776c595ab6a7f820192..e936a94b9aa7ce78095b3db94432a12206dae611 100644 (file)
@@ -15,8 +15,7 @@ class TestReadahead(CephFSTestCase):
 
         # Unmount and remount the client to flush cache
         self.mount_a.umount_wait()
 
         # Unmount and remount the client to flush cache
         self.mount_a.umount_wait()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         initial_op_r = self.mount_a.admin_socket(['perf', 'dump', 'objecter'])['objecter']['op_r']
         self.mount_a.run_shell(["dd", "if=foo", "of=/dev/null", "bs=128k", "count=32"])
 
         initial_op_r = self.mount_a.admin_socket(['perf', 'dump', 'objecter'])['objecter']['op_r']
         self.mount_a.run_shell(["dd", "if=foo", "of=/dev/null", "bs=128k", "count=32"])
index 36b4e58ec8c17f985e5824575abe5fb04e4843b7..0b3dc56bff933df86e39592481adcc7b57634ac9 100644 (file)
@@ -186,10 +186,8 @@ class TestRecoveryPool(CephFSTestCase):
         log.info(str(self.mds_cluster.status()))
 
         # Mount a client
         log.info(str(self.mds_cluster.status()))
 
         # Mount a client
-        self.mount_a.mount()
-        self.mount_b.mount(mount_fs_name=recovery_fs)
-        self.mount_a.wait_until_mounted()
-        self.mount_b.wait_until_mounted()
+        self.mount_a.mount_wait()
+        self.mount_b.mount_wait(mount_fs_name=recovery_fs)
 
         # See that the files are present and correct
         errors = workload.validate()
 
         # See that the files are present and correct
         errors = workload.validate()
index e4f0cb9beb32b9c02e0a7f74bf289452de2a974d..1875b5f34fd7f7417e80741dcf214df8a4328836 100644 (file)
@@ -13,6 +13,7 @@ ValidationError = namedtuple("ValidationError", ["exception", "backtrace"])
 
 class Workload(CephFSTestCase):
     def __init__(self, filesystem, mount):
 
 class Workload(CephFSTestCase):
     def __init__(self, filesystem, mount):
+        super().__init__()
         self._mount = mount
         self._filesystem = filesystem
         self._initial_state = None
         self._mount = mount
         self._filesystem = filesystem
         self._initial_state = None
@@ -74,6 +75,9 @@ class BacktraceWorkload(Workload):
         self._filesystem.mds_asok(["flush", "journal"])
         self._filesystem._write_data_xattr(st['st_ino'], "parent", "")
 
         self._filesystem.mds_asok(["flush", "journal"])
         self._filesystem._write_data_xattr(st['st_ino'], "parent", "")
 
+    def create_files(self, nfiles=1000):
+        self._mount.create_n_files("scrub-new-files/file", nfiles)
+
 
 class DupInodeWorkload(Workload):
     """
 
 class DupInodeWorkload(Workload):
     """
@@ -88,7 +92,7 @@ class DupInodeWorkload(Workload):
 
     def damage(self):
         temp_bin_path = "/tmp/10000000000.00000000_omap.bin"
 
     def damage(self):
         temp_bin_path = "/tmp/10000000000.00000000_omap.bin"
-        self._mount.umount()
+        self._mount.umount_wait()
         self._filesystem.mds_asok(["flush", "journal"])
         self._filesystem.mds_stop()
         self._filesystem.rados(["getomapval", "10000000000.00000000",
         self._filesystem.mds_asok(["flush", "journal"])
         self._filesystem.mds_stop()
         self._filesystem.rados(["getomapval", "10000000000.00000000",
@@ -109,6 +113,9 @@ class DupInodeWorkload(Workload):
 class TestScrub(CephFSTestCase):
     MDSS_REQUIRED = 1
 
 class TestScrub(CephFSTestCase):
     MDSS_REQUIRED = 1
 
+    def setUp(self):
+        super().setUp()
+
     def _scrub(self, workload, workers=1):
         """
         That when all objects in metadata pool are removed, we can rebuild a metadata pool
     def _scrub(self, workload, workers=1):
         """
         That when all objects in metadata pool are removed, we can rebuild a metadata pool
@@ -140,6 +147,27 @@ class TestScrub(CephFSTestCase):
                 errors[0].exception, errors[0].backtrace
             ))
 
                 errors[0].exception, errors[0].backtrace
             ))
 
+    def _get_damage_count(self, damage_type='backtrace'):
+        out_json = self.fs.rank_tell(["damage", "ls"])
+        self.assertNotEqual(out_json, None)
+
+        damage_count = 0
+        for it in out_json:
+            if it['damage_type'] == damage_type:
+                damage_count += 1
+        return damage_count
+
+    def _scrub_new_files(self, workload):
+        """
+        That scrubbing new files does not lead to errors
+        """
+        workload.create_files(1000)
+        self._wait_until_scrub_complete()
+        self.assertEqual(self._get_damage_count(), 0)
+
+    def test_scrub_backtrace_for_new_files(self):
+        self._scrub_new_files(BacktraceWorkload(self.fs, self.mount_a))
+
     def test_scrub_backtrace(self):
         self._scrub(BacktraceWorkload(self.fs, self.mount_a))
 
     def test_scrub_backtrace(self):
         self._scrub(BacktraceWorkload(self.fs, self.mount_a))
 
index 012b6c009fda2884a278074bdac9dc8e3432359f..b6ca0b89802abe903b822593065e3f19522c6d98 100644 (file)
@@ -298,8 +298,7 @@ class TestScrubChecks(CephFSTestCase):
         self.fs.mds_fail_restart()
         self.fs.wait_for_daemons()
 
         self.fs.mds_fail_restart()
         self.fs.wait_for_daemons()
 
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # fragstat indicates the directory is not empty, rmdir should fail
         with self.assertRaises(CommandFailedError) as ar:
 
         # fragstat indicates the directory is not empty, rmdir should fail
         with self.assertRaises(CommandFailedError) as ar:
index a4642de0b679e2de2ba92cf39e249ebaf12540d0..bdcde71d095eb571b8760abce07d75aa80378fb6 100644 (file)
@@ -62,8 +62,7 @@ class TestSessionMap(CephFSTestCase):
 
         status = self.fs.status()
         s = self._get_connection_count(status=status)
 
         status = self.fs.status()
         s = self._get_connection_count(status=status)
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
         self.assertGreater(self._get_connection_count(status=status), s)
         self.mount_a.umount_wait()
         e = self._get_connection_count(status=status)
         self.assertGreater(self._get_connection_count(status=status), s)
         self.mount_a.umount_wait()
         e = self._get_connection_count(status=status)
@@ -85,8 +84,8 @@ class TestSessionMap(CephFSTestCase):
         status = self.fs.wait_for_daemons()
 
         # Bring the clients back
         status = self.fs.wait_for_daemons()
 
         # Bring the clients back
-        self.mount_a.mount()
-        self.mount_b.mount()
+        self.mount_a.mount_wait()
+        self.mount_b.mount_wait()
 
         # See that they've got sessions
         self.assert_session_count(2, mds_id=self.fs.get_rank(status=status)['name'])
 
         # See that they've got sessions
         self.assert_session_count(2, mds_id=self.fs.get_rank(status=status)['name'])
@@ -178,8 +177,7 @@ class TestSessionMap(CephFSTestCase):
         # Configure a client that is limited to /foo/bar
         self._configure_auth(self.mount_b, "badguy", "allow rw path=/foo/bar")
         # Check he can mount that dir and do IO
         # Configure a client that is limited to /foo/bar
         self._configure_auth(self.mount_b, "badguy", "allow rw path=/foo/bar")
         # Check he can mount that dir and do IO
-        self.mount_b.mount(mount_path="/foo/bar")
-        self.mount_b.wait_until_mounted()
+        self.mount_b.mount_wait(mount_path="/foo/bar")
         self.mount_b.create_destroy()
         self.mount_b.umount_wait()
 
         self.mount_b.create_destroy()
         self.mount_b.umount_wait()
 
@@ -225,5 +223,4 @@ class TestSessionMap(CephFSTestCase):
         self.assert_session_count(1, mds_id=self.fs.get_rank(rank=1, status=status)['name'])
 
         self.mount_a.kill_cleanup()
         self.assert_session_count(1, mds_id=self.fs.get_rank(rank=1, status=status)['name'])
 
         self.mount_a.kill_cleanup()
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
index a1dcc23d340228768dee711e3757320d5acc1202..0a35d99d4d636bee81e39cc7bcb0f243416cd547 100644 (file)
@@ -131,8 +131,7 @@ class TestSnapshots(CephFSTestCase):
                 else:
                     self.assertGreater(self._get_last_created_snap(rank=0), last_created)
 
                 else:
                     self.assertGreater(self._get_last_created_snap(rank=0), last_created)
 
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
 
         self.mount_a.run_shell(["rmdir", Raw("d1/dir/.snap/*")])
 
 
         self.mount_a.run_shell(["rmdir", Raw("d1/dir/.snap/*")])
 
@@ -173,8 +172,7 @@ class TestSnapshots(CephFSTestCase):
                 else:
                     self.assertGreater(self._get_last_created_snap(rank=0), last_created)
 
                 else:
                     self.assertGreater(self._get_last_created_snap(rank=0), last_created)
 
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
 
         self.mount_a.run_shell(["rmdir", Raw("d1/dir/.snap/*")])
 
 
         self.mount_a.run_shell(["rmdir", Raw("d1/dir/.snap/*")])
 
@@ -216,8 +214,7 @@ class TestSnapshots(CephFSTestCase):
         self.wait_until_true(lambda: len(self._get_pending_snap_update(rank=0)) == 0, timeout=30)
         self.assertEqual(self._get_last_created_snap(rank=0), last_created)
 
         self.wait_until_true(lambda: len(self._get_pending_snap_update(rank=0)) == 0, timeout=30)
         self.assertEqual(self._get_last_created_snap(rank=0), last_created)
 
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
     def test_snapclient_cache(self):
         """
 
     def test_snapclient_cache(self):
         """
@@ -345,8 +342,7 @@ class TestSnapshots(CephFSTestCase):
             self.assertEqual(snaps_dump["last_created"], rank0_cache["last_created"])
             self.assertTrue(_check_snapclient_cache(snaps_dump, cache_dump=rank0_cache));
 
             self.assertEqual(snaps_dump["last_created"], rank0_cache["last_created"])
             self.assertTrue(_check_snapclient_cache(snaps_dump, cache_dump=rank0_cache));
 
-            self.mount_a.mount()
-            self.mount_a.wait_until_mounted()
+            self.mount_a.mount_wait()
 
         self.mount_a.run_shell(["rmdir", Raw("d0/d2/dir/.snap/*")])
 
 
         self.mount_a.run_shell(["rmdir", Raw("d0/d2/dir/.snap/*")])
 
@@ -474,7 +470,6 @@ class TestSnapshots(CephFSTestCase):
                 # failing at the last mkdir beyond the limit is expected
                 if sno == snaps:
                     log.info("failed while creating snap #{}: {}".format(sno, repr(e)))
                 # failing at the last mkdir beyond the limit is expected
                 if sno == snaps:
                     log.info("failed while creating snap #{}: {}".format(sno, repr(e)))
-                    sys.exc_clear()
                     raise TestSnapshots.SnapLimitViolationException(sno)
 
     def test_mds_max_snaps_per_dir_default_limit(self):
                     raise TestSnapshots.SnapLimitViolationException(sno)
 
     def test_mds_max_snaps_per_dir_default_limit(self):
@@ -500,7 +495,6 @@ class TestSnapshots(CephFSTestCase):
             self.create_dir_and_snaps("accounts", new_limit + 1)
         except TestSnapshots.SnapLimitViolationException as e:
             if e.failed_snapshot_number == (new_limit + 1):
             self.create_dir_and_snaps("accounts", new_limit + 1)
         except TestSnapshots.SnapLimitViolationException as e:
             if e.failed_snapshot_number == (new_limit + 1):
-                sys.exc_clear()
                 pass
         # then increase the limit by one and test
         new_limit = new_limit + 1
                 pass
         # then increase the limit by one and test
         new_limit = new_limit + 1
index e02eca2d68a1f61c2da7c975df85ffc7834b2434..a5058441e7cadbd92cdc65443c8d53d6eb5ed137 100644 (file)
@@ -152,7 +152,7 @@ class TestStrays(CephFSTestCase):
             os.mkdir(os.path.join(mount_path, subdir))
             for i in range(0, file_multiplier):
                 for size in range(0, {size_range}*size_unit, size_unit):
             os.mkdir(os.path.join(mount_path, subdir))
             for i in range(0, file_multiplier):
                 for size in range(0, {size_range}*size_unit, size_unit):
-                    filename = "{{0}}_{{1}}.bin".format(i, size / size_unit)
+                    filename = "{{0}}_{{1}}.bin".format(i, size // size_unit)
                     with open(os.path.join(mount_path, subdir, filename), 'w') as f:
                         f.write(size * 'x')
         """.format(
                     with open(os.path.join(mount_path, subdir, filename), 'w') as f:
                         f.write(size * 'x')
         """.format(
@@ -237,7 +237,7 @@ class TestStrays(CephFSTestCase):
         # insanely fast such that the deletions all pass before we have polled the
         # statistics.
         if throttle_type == self.OPS_THROTTLE:
         # insanely fast such that the deletions all pass before we have polled the
         # statistics.
         if throttle_type == self.OPS_THROTTLE:
-            if ops_high_water < mds_max_purge_ops / 2:
+            if ops_high_water < mds_max_purge_ops // 2:
                 raise RuntimeError("Ops in flight high water is unexpectedly low ({0} / {1})".format(
                     ops_high_water, mds_max_purge_ops
                 ))
                 raise RuntimeError("Ops in flight high water is unexpectedly low ({0} / {1})".format(
                     ops_high_water, mds_max_purge_ops
                 ))
@@ -248,7 +248,7 @@ class TestStrays(CephFSTestCase):
             # particularly large file/directory.
             self.assertLessEqual(ops_high_water, mds_max_purge_ops+64)
         elif throttle_type == self.FILES_THROTTLE:
             # particularly large file/directory.
             self.assertLessEqual(ops_high_water, mds_max_purge_ops+64)
         elif throttle_type == self.FILES_THROTTLE:
-            if files_high_water < mds_max_purge_files / 2:
+            if files_high_water < mds_max_purge_files // 2:
                 raise RuntimeError("Files in flight high water is unexpectedly low ({0} / {1})".format(
                     files_high_water, mds_max_purge_files
                 ))
                 raise RuntimeError("Files in flight high water is unexpectedly low ({0} / {1})".format(
                     files_high_water, mds_max_purge_files
                 ))
@@ -373,7 +373,7 @@ class TestStrays(CephFSTestCase):
         self.fs.mds_asok(['flush', 'journal'])
         self.fs.mds_fail_restart()
         self.fs.wait_for_daemons()
         self.fs.mds_asok(['flush', 'journal'])
         self.fs.mds_fail_restart()
         self.fs.wait_for_daemons()
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         # Unlink file_a
         self.mount_a.run_shell(["rm", "-f", "dir_1/file_a"])
 
         # Unlink file_a
         self.mount_a.run_shell(["rm", "-f", "dir_1/file_a"])
@@ -628,7 +628,7 @@ class TestStrays(CephFSTestCase):
         rank_0_id = active_mds_names[0]
         rank_1_id = active_mds_names[1]
 
         rank_0_id = active_mds_names[0]
         rank_1_id = active_mds_names[1]
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         self.mount_a.run_shell(["rm", "-f", "dir_1/original"])
         self.mount_a.umount_wait()
 
         self.mount_a.run_shell(["rm", "-f", "dir_1/original"])
         self.mount_a.umount_wait()
@@ -772,7 +772,7 @@ class TestStrays(CephFSTestCase):
         # zero, but there's actually still a stray, so at the very
         # least the StrayManager stats code is slightly off
 
         # zero, but there's actually still a stray, so at the very
         # least the StrayManager stats code is slightly off
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         # See that the data from the snapshotted revision of the file is still present
         # and correct
 
         # See that the data from the snapshotted revision of the file is still present
         # and correct
@@ -873,8 +873,7 @@ class TestStrays(CephFSTestCase):
         # remount+flush (release client caps)
         self.mount_a.umount_wait()
         self.fs.mds_asok(["flush", "journal"], mds_id)
         # remount+flush (release client caps)
         self.mount_a.umount_wait()
         self.fs.mds_asok(["flush", "journal"], mds_id)
-        self.mount_a.mount()
-        self.mount_a.wait_until_mounted()
+        self.mount_a.mount_wait()
 
         # Create 50% more files than the current fragment limit
         self.mount_a.run_python(dedent("""
 
         # Create 50% more files than the current fragment limit
         self.mount_a.run_python(dedent("""
index a6b4d10afb8b76889cfba8e915f4e92a9449930d..e02ba0ee76eb52f8025bba0237dfa412c463a568 100644 (file)
@@ -390,13 +390,13 @@ vc.disconnect()
             m.umount_wait()
 
         # Create a dir on mount A
             m.umount_wait()
 
         # Create a dir on mount A
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
         self.mount_a.run_shell(["mkdir", "parent1"])
         self.mount_a.run_shell(["mkdir", "parent2"])
         self.mount_a.run_shell(["mkdir", "parent1/mydir"])
 
         # Put some files in it from mount B
         self.mount_a.run_shell(["mkdir", "parent1"])
         self.mount_a.run_shell(["mkdir", "parent2"])
         self.mount_a.run_shell(["mkdir", "parent1/mydir"])
 
         # Put some files in it from mount B
-        self.mount_b.mount()
+        self.mount_b.mount_wait()
         self.mount_b.run_shell(["touch", "parent1/mydir/afile"])
         self.mount_b.umount_wait()
 
         self.mount_b.run_shell(["touch", "parent1/mydir/afile"])
         self.mount_b.umount_wait()
 
@@ -606,8 +606,10 @@ vc.disconnect()
         # Read existing content of the volume.
         self.assertListEqual(guest_mount.ls(guest_mount.mountpoint), ["data.bin"])
         # Cannot write into read-only volume.
         # Read existing content of the volume.
         self.assertListEqual(guest_mount.ls(guest_mount.mountpoint), ["data.bin"])
         # Cannot write into read-only volume.
-        with self.assertRaises(CommandFailedError):
+        try:
             guest_mount.write_n_mb("rogue.bin", 1)
             guest_mount.write_n_mb("rogue.bin", 1)
+        except CommandFailedError:
+            pass
 
     def test_get_authorized_ids(self):
         """
 
     def test_get_authorized_ids(self):
         """
@@ -656,10 +658,10 @@ vc.disconnect()
         # Check the list of authorized IDs and their access levels.
         if self.py_version == 'python3':
             expected_result = [('guest1', 'rw'), ('guest2', 'r')]
         # Check the list of authorized IDs and their access levels.
         if self.py_version == 'python3':
             expected_result = [('guest1', 'rw'), ('guest2', 'r')]
+            self.assertCountEqual(str(expected_result), auths)
         else:
             expected_result = [(u'guest1', u'rw'), (u'guest2', u'r')]
         else:
             expected_result = [(u'guest1', u'rw'), (u'guest2', u'r')]
-
-        self.assertItemsEqual(str(expected_result), auths)
+            self.assertItemsEqual(str(expected_result), auths)
 
         # Disallow both the auth IDs' access to the volume.
         auths = self._volume_client_python(volumeclient_mount, dedent("""
 
         # Disallow both the auth IDs' access to the volume.
         auths = self._volume_client_python(volumeclient_mount, dedent("""
index 9fca6de5646d47eaf92f20450db580acacebbfff..11c23605ae8c99ad6875214ae76f841030bac9f0 100644 (file)
@@ -164,6 +164,14 @@ class TestVolumes(CephFSTestCase):
         subvol_md = self._fs_cmd(*args)
         return subvol_md
 
         subvol_md = self._fs_cmd(*args)
         return subvol_md
 
+    def _get_subvolume_snapshot_info(self, vol_name, subvol_name, snapname, group_name=None):
+        args = ["subvolume", "snapshot", "info", vol_name, subvol_name, snapname]
+        if group_name:
+            args.append(group_name)
+        args = tuple(args)
+        snap_md = self._fs_cmd(*args)
+        return snap_md
+
     def _delete_test_volume(self):
         self._fs_cmd("volume", "rm", self.volname, "--yes-i-really-mean-it")
 
     def _delete_test_volume(self):
         self._fs_cmd("volume", "rm", self.volname, "--yes-i-really-mean-it")
 
@@ -364,7 +372,7 @@ class TestVolumes(CephFSTestCase):
         self.assertNotEqual(subvolpath, None)
 
         # shrink the subvolume
         self.assertNotEqual(subvolpath, None)
 
         # shrink the subvolume
-        nsize = osize/2
+        nsize = osize // 2
         self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize))
 
         # verify the quota
         self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize))
 
         # verify the quota
@@ -456,7 +464,7 @@ class TestVolumes(CephFSTestCase):
         self.assertEqual(usedsize, susedsize)
 
         # shrink the subvolume
         self.assertEqual(usedsize, susedsize)
 
         # shrink the subvolume
-        nsize = usedsize/2
+        nsize = usedsize // 2
         try:
             self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize))
         except CommandFailedError:
         try:
             self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize))
         except CommandFailedError:
@@ -496,7 +504,7 @@ class TestVolumes(CephFSTestCase):
         self.assertEqual(usedsize, susedsize)
 
         # shrink the subvolume
         self.assertEqual(usedsize, susedsize)
 
         # shrink the subvolume
-        nsize = usedsize/2
+        nsize = usedsize // 2
         try:
             self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize), "--no_shrink")
         except CommandFailedError as ce:
         try:
             self._fs_cmd("subvolume", "resize", self.volname, subvolname, str(nsize), "--no_shrink")
         except CommandFailedError as ce:
@@ -531,7 +539,7 @@ class TestVolumes(CephFSTestCase):
         self.mount_a.write_n_mb(os.path.join(subvolpath, filename), file_size)
 
         # create a file of size 5MB and try write more
         self.mount_a.write_n_mb(os.path.join(subvolpath, filename), file_size)
 
         # create a file of size 5MB and try write more
-        file_size=file_size/2
+        file_size=file_size // 2
         number_of_files=1
         log.debug("filling subvolume {0} with {1} file of size {2}MB".format(subvolname,
                                                                              number_of_files,
         number_of_files=1
         log.debug("filling subvolume {0} with {1} file of size {2}MB".format(subvolname,
                                                                              number_of_files,
@@ -566,6 +574,44 @@ class TestVolumes(CephFSTestCase):
         # verify trash dir is clean
         self._wait_for_trash_empty()
 
         # verify trash dir is clean
         self._wait_for_trash_empty()
 
+    def test_subvolume_create_idempotence_resize(self):
+        # create subvolume
+        subvolume = self._generate_random_subvolume_name()
+        self._fs_cmd("subvolume", "create", self.volname, subvolume)
+
+        # try creating w/ same subvolume name with size -- should set quota
+        self._fs_cmd("subvolume", "create", self.volname, subvolume, "1000000000")
+
+        # get subvolume metadata
+        subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume))
+        self.assertEqual(subvol_info["bytes_quota"], 1000000000)
+
+        # remove subvolume
+        self._fs_cmd("subvolume", "rm", self.volname, subvolume)
+
+        # verify trash dir is clean
+        self._wait_for_trash_empty()
+
+    def test_subvolume_create_isolated_namespace(self):
+        """
+        Create subvolume in separate rados namespace
+        """
+
+        # create subvolume
+        subvolume = self._generate_random_subvolume_name()
+        self._fs_cmd("subvolume", "create", self.volname, subvolume, "--namespace-isolated")
+
+        # get subvolume metadata
+        subvol_info = json.loads(self._get_subvolume_info(self.volname, subvolume))
+        self.assertNotEqual(len(subvol_info), 0)
+        self.assertEqual(subvol_info["pool_namespace"], "fsvolumens_" + subvolume)
+
+        # remove subvolumes
+        self._fs_cmd("subvolume", "rm", self.volname, subvolume)
+
+        # verify trash dir is clean
+        self._wait_for_trash_empty()
+
     def test_subvolume_create_with_invalid_data_pool_layout(self):
         subvolume = self._generate_random_subvolume_name()
         data_pool = "invalid_pool"
     def test_subvolume_create_with_invalid_data_pool_layout(self):
         subvolume = self._generate_random_subvolume_name()
         data_pool = "invalid_pool"
@@ -745,7 +791,8 @@ class TestVolumes(CephFSTestCase):
         # tests the 'fs subvolume info' command
 
         subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime",
         # tests the 'fs subvolume info' command
 
         subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime",
-                     "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "type", "uid"]
+                     "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "pool_namespace",
+                     "type", "uid"]
 
         # create subvolume
         subvolume = self._generate_random_subvolume_name()
 
         # create subvolume
         subvolume = self._generate_random_subvolume_name()
@@ -764,6 +811,7 @@ class TestVolumes(CephFSTestCase):
 
         if subvol_info["bytes_quota"] != "infinite":
             raise RuntimeError("bytes_quota should be set to infinite if quota is not set")
 
         if subvol_info["bytes_quota"] != "infinite":
             raise RuntimeError("bytes_quota should be set to infinite if quota is not set")
+        self.assertEqual(subvol_info["pool_namespace"], "")
 
         nsize = self.DEFAULT_FILE_SIZE*1024*1024
         try:
 
         nsize = self.DEFAULT_FILE_SIZE*1024*1024
         try:
@@ -794,7 +842,8 @@ class TestVolumes(CephFSTestCase):
 
         # tests the 'fs subvolume info' command for a clone
         subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime",
 
         # tests the 'fs subvolume info' command for a clone
         subvol_md = ["atime", "bytes_pcent", "bytes_quota", "bytes_used", "created_at", "ctime",
-                     "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "type", "uid"]
+                     "data_pool", "gid", "mode", "mon_addrs", "mtime", "path", "pool_namespace",
+                     "type", "uid"]
 
         subvolume = self._generate_random_subvolume_name()
         snapshot = self._generate_random_snapshot_name()
 
         subvolume = self._generate_random_subvolume_name()
         snapshot = self._generate_random_snapshot_name()
@@ -1143,6 +1192,49 @@ class TestVolumes(CephFSTestCase):
         # verify trash dir is clean
         self._wait_for_trash_empty()
 
         # verify trash dir is clean
         self._wait_for_trash_empty()
 
+    def test_subvolume_snapshot_info(self):
+
+        """
+        tests the 'fs subvolume snapshot info' command
+        """
+
+        snap_metadata = ["created_at", "data_pool", "has_pending_clones", "protected", "size"]
+
+        subvolume = self._generate_random_subvolume_name()
+        snapshot = self._generate_random_snapshot_name()
+
+        # create subvolume
+        self._fs_cmd("subvolume", "create", self.volname, subvolume)
+
+        # do some IO
+        self._do_subvolume_io(subvolume, number_of_files=1)
+
+        # snapshot subvolume
+        self._fs_cmd("subvolume", "snapshot", "create", self.volname, subvolume, snapshot)
+
+        # now, protect snapshot
+        self._fs_cmd("subvolume", "snapshot", "protect", self.volname, subvolume, snapshot)
+
+        snap_info = json.loads(self._get_subvolume_snapshot_info(self.volname, subvolume, snapshot))
+        self.assertNotEqual(len(snap_info), 0)
+        for md in snap_metadata:
+            if md not in snap_info:
+                raise RuntimeError("%s not present in the metadata of subvolume snapshot" % md)
+        self.assertEqual(snap_info["protected"], "yes")
+        self.assertEqual(snap_info["has_pending_clones"], "no")
+
+        # now, unprotect snapshot
+        self._fs_cmd("subvolume", "snapshot", "unprotect", self.volname, subvolume, snapshot)
+
+        # remove snapshot
+        self._fs_cmd("subvolume", "snapshot", "rm", self.volname, subvolume, snapshot)
+
+        # remove subvolume
+        self._fs_cmd("subvolume", "rm", self.volname, subvolume)
+
+        # verify trash dir is clean
+        self._wait_for_trash_empty()
+
     def test_subvolume_snapshot_create_idempotence(self):
         subvolume = self._generate_random_subvolume_name()
         snapshot = self._generate_random_snapshot_name()
     def test_subvolume_snapshot_create_idempotence(self):
         subvolume = self._generate_random_subvolume_name()
         snapshot = self._generate_random_snapshot_name()
@@ -1388,7 +1480,7 @@ class TestVolumes(CephFSTestCase):
         for subvolume in subvolumes:
             self._fs_cmd("subvolume", "rm", self.volname, subvolume)
 
         for subvolume in subvolumes:
             self._fs_cmd("subvolume", "rm", self.volname, subvolume)
 
-        self.mount_a.mount()
+        self.mount_a.mount_wait()
 
         # verify trash dir is clean
         self._wait_for_trash_empty(timeout=300)
 
         # verify trash dir is clean
         self._wait_for_trash_empty(timeout=300)
@@ -2156,7 +2248,7 @@ class TestVolumes(CephFSTestCase):
         self.fs.add_data_pool(new_pool)
 
         self.fs.mon_manager.raw_cluster_cmd("osd", "pool", "set-quota", new_pool,
         self.fs.add_data_pool(new_pool)
 
         self.fs.mon_manager.raw_cluster_cmd("osd", "pool", "set-quota", new_pool,
-                                            "max_bytes", "{0}".format(pool_capacity / 4))
+                                            "max_bytes", "{0}".format(pool_capacity // 4))
 
         # schedule a clone
         self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone1, "--pool_layout", new_pool)
 
         # schedule a clone
         self._fs_cmd("subvolume", "snapshot", "clone", self.volname, subvolume, snapshot, clone1, "--pool_layout", new_pool)
index c11561fae764558e44292883fae5f8ba95f619b8..1a18b7e14007bcfd3be0b69cda3aec0a919ae596 100644 (file)
@@ -1,6 +1,6 @@
+from io import BytesIO
 import six
 import logging
 import six
 import logging
-from StringIO import StringIO
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 
 logger = logging.getLogger(__name__)
 from tasks.cephfs.cephfs_test_case import CephFSTestCase
 
 logger = logging.getLogger(__name__)
@@ -28,11 +28,11 @@ class XFSTestsDev(CephFSTestCase):
         # NOTE: On teuthology machines it's necessary to run "make" as
         # superuser since the repo is cloned somewhere in /tmp.
         self.mount_a.client_remote.run(args=['sudo', 'make'],
         # NOTE: On teuthology machines it's necessary to run "make" as
         # superuser since the repo is cloned somewhere in /tmp.
         self.mount_a.client_remote.run(args=['sudo', 'make'],
-                                       cwd=self.repo_path, stdout=StringIO(),
-                                       stderr=StringIO())
+                                       cwd=self.repo_path, stdout=BytesIO(),
+                                       stderr=BytesIO())
         self.mount_a.client_remote.run(args=['sudo', 'make', 'install'],
                                        cwd=self.repo_path, omit_sudo=False,
         self.mount_a.client_remote.run(args=['sudo', 'make', 'install'],
                                        cwd=self.repo_path, omit_sudo=False,
-                                       stdout=StringIO(), stderr=StringIO())
+                                       stdout=BytesIO(), stderr=BytesIO())
 
     def get_repo(self):
         """
 
     def get_repo(self):
         """
index fc877f285b6c8174204ef23f2c4b084f2f7e22f5..daa81973be7358256646eb8dddcdb1b8251ca2f9 100644 (file)
@@ -45,7 +45,7 @@ class CheckCounter(Task):
         targets = self.config.get('counters', {})
 
         if cluster_name is None:
         targets = self.config.get('counters', {})
 
         if cluster_name is None:
-            cluster_name = self.ctx.managers.keys()[0]
+            cluster_name = next(iter(self.ctx.managers.keys()))
 
         for daemon_type, counters in targets.items():
             # List of 'a', 'b', 'c'...
 
         for daemon_type, counters in targets.items():
             # List of 'a', 'b', 'c'...
index a397eb51ff23ed5cd7c53c700fcdad7ef3fac87c..d06f09440a6a5fcdcc7fe798643dc77e8de50601 100644 (file)
@@ -6,7 +6,7 @@ import os
 
 import six
 
 
 import six
 
-from util.workunit import get_refspec_after_overrides
+from tasks.util.workunit import get_refspec_after_overrides
 
 from teuthology import misc as teuthology
 from teuthology.parallel import parallel
 
 from teuthology import misc as teuthology
 from teuthology.parallel import parallel
index 943a9ffffa22465577ace8ab19c54e3468b7ac16..9243071a4bf01136dda4ed844394e755334b35e7 100644 (file)
@@ -1,9 +1,11 @@
 #!/usr/bin/env python
 import contextlib
 import logging
 #!/usr/bin/env python
 import contextlib
 import logging
-from cStringIO import StringIO
+from io import BytesIO
 import textwrap
 from configparser import ConfigParser
 import textwrap
 from configparser import ConfigParser
+
+import six
 import time
 
 from teuthology.orchestra import run
 import time
 
 from teuthology.orchestra import run
@@ -58,8 +60,8 @@ def install(ctx, config):
     if not isinstance(config, dict):
         raise TypeError("config must be a dict")
 
     if not isinstance(config, dict):
         raise TypeError("config must be a dict")
 
-    devstack_node = ctx.cluster.only(is_devstack_node).remotes.keys()[0]
-    an_osd_node = ctx.cluster.only(is_osd_node).remotes.keys()[0]
+    devstack_node = next(iter(ctx.cluster.only(is_devstack_node).remotes.keys()))
+    an_osd_node = next(iter(ctx.cluster.only(is_osd_node).remotes.keys()))
 
     devstack_branch = config.get("branch", "master")
     install_devstack(devstack_node, devstack_branch)
 
     devstack_branch = config.get("branch", "master")
     install_devstack(devstack_node, devstack_branch)
@@ -140,7 +142,7 @@ def distribute_ceph_keys(devstack_node, ceph_node):
     log.info("Copying Ceph keys to DevStack node...")
 
     def copy_key(from_remote, key_name, to_remote, dest_path, owner):
     log.info("Copying Ceph keys to DevStack node...")
 
     def copy_key(from_remote, key_name, to_remote, dest_path, owner):
-        key_stringio = StringIO()
+        key_stringio = BytesIO()
         from_remote.run(
             args=['sudo', 'ceph', 'auth', 'get-or-create', key_name],
             stdout=key_stringio)
         from_remote.run(
             args=['sudo', 'ceph', 'auth', 'get-or-create', key_name],
             stdout=key_stringio)
@@ -172,14 +174,8 @@ def distribute_ceph_keys(devstack_node, ceph_node):
 def set_libvirt_secret(devstack_node, ceph_node):
     log.info("Setting libvirt secret...")
 
 def set_libvirt_secret(devstack_node, ceph_node):
     log.info("Setting libvirt secret...")
 
-    cinder_key_stringio = StringIO()
-    ceph_node.run(args=['sudo', 'ceph', 'auth', 'get-key', 'client.cinder'],
-                  stdout=cinder_key_stringio)
-    cinder_key = cinder_key_stringio.getvalue().strip()
-
-    uuid_stringio = StringIO()
-    devstack_node.run(args=['uuidgen'], stdout=uuid_stringio)
-    uuid = uuid_stringio.getvalue().strip()
+    cinder_key = ceph_node.sh('sudo ceph auth get-key client.cinder').strip()
+    uuid = devstack_node.sh('uuidgen').strip()
 
     secret_path = '/tmp/secret.xml'
     secret_template = textwrap.dedent("""
 
     secret_path = '/tmp/secret.xml'
     secret_template = textwrap.dedent("""
@@ -210,7 +206,7 @@ def update_devstack_config_files(devstack_node, secret_uuid):
         parser.read_file(config_stream)
         for (key, value) in update_dict.items():
             parser.set(section, key, value)
         parser.read_file(config_stream)
         for (key, value) in update_dict.items():
             parser.set(section, key, value)
-        out_stream = StringIO()
+        out_stream = six.StringIO()
         parser.write(out_stream)
         out_stream.seek(0)
         return out_stream
         parser.write(out_stream)
         out_stream.seek(0)
         return out_stream
@@ -254,8 +250,8 @@ def update_devstack_config_files(devstack_node, secret_uuid):
     for update in updates:
         file_name = update['name']
         options = update['options']
     for update in updates:
         file_name = update['name']
         options = update['options']
-        config_str = misc.get_file(devstack_node, file_name, sudo=True)
-        config_stream = StringIO(config_str)
+        config_data = misc.get_file(devstack_node, file_name, sudo=True)
+        config_stream = six.StringIO(config_data)
         backup_config(devstack_node, file_name)
         new_config_stream = update_config(file_name, config_stream, options)
         misc.sudo_write_file(devstack_node, file_name, new_config_stream)
         backup_config(devstack_node, file_name)
         new_config_stream = update_config(file_name, config_stream, options)
         misc.sudo_write_file(devstack_node, file_name, new_config_stream)
@@ -305,7 +301,7 @@ def exercise(ctx, config):
     if not isinstance(config, dict):
         raise TypeError("config must be a dict")
 
     if not isinstance(config, dict):
         raise TypeError("config must be a dict")
 
-    devstack_node = ctx.cluster.only(is_devstack_node).remotes.keys()[0]
+    devstack_node = next(iter(ctx.cluster.only(is_devstack_node).remotes.keys()))
 
     # TODO: save the log *and* preserve failures
     #devstack_archive_dir = create_devstack_archive(ctx, devstack_node)
 
     # TODO: save the log *and* preserve failures
     #devstack_archive_dir = create_devstack_archive(ctx, devstack_node)
@@ -332,8 +328,8 @@ def create_devstack_archive(ctx, devstack_node):
 def smoke(ctx, config):
     log.info("Running a basic smoketest...")
 
 def smoke(ctx, config):
     log.info("Running a basic smoketest...")
 
-    devstack_node = ctx.cluster.only(is_devstack_node).remotes.keys()[0]
-    an_osd_node = ctx.cluster.only(is_osd_node).remotes.keys()[0]
+    devstack_node = next(iter(ctx.cluster.only(is_devstack_node).remotes.keys()))
+    an_osd_node = next(iter(ctx.cluster.only(is_osd_node).remotes.keys()))
 
     try:
         create_volume(devstack_node, an_osd_node, 'smoke0', 1)
 
     try:
         create_volume(devstack_node, an_osd_node, 'smoke0', 1)
@@ -352,21 +348,17 @@ def create_volume(devstack_node, ceph_node, vol_name, size):
         size=size))
     args = ['source', 'devstack/openrc', run.Raw('&&'), 'cinder', 'create',
             '--display-name', vol_name, size]
         size=size))
     args = ['source', 'devstack/openrc', run.Raw('&&'), 'cinder', 'create',
             '--display-name', vol_name, size]
-    out_stream = StringIO()
-    devstack_node.run(args=args, stdout=out_stream, wait=True)
-    vol_info = parse_os_table(out_stream.getvalue())
+    cinder_create = devstack_node.sh(args, wait=True)
+    vol_info = parse_os_table(cinder_create)
     log.debug("Volume info: %s", str(vol_info))
 
     log.debug("Volume info: %s", str(vol_info))
 
-    out_stream = StringIO()
     try:
     try:
-        ceph_node.run(args="rbd --id cinder ls -l volumes", stdout=out_stream,
-                      wait=True)
+        rbd_output = ceph_node.sh("rbd --id cinder ls -l volumes", wait=True)
     except run.CommandFailedError:
         log.debug("Original rbd call failed; retrying without '--id cinder'")
     except run.CommandFailedError:
         log.debug("Original rbd call failed; retrying without '--id cinder'")
-        ceph_node.run(args="rbd ls -l volumes", stdout=out_stream,
-                      wait=True)
+        rbd_output = ceph_node.sh("rbd ls -l volumes", wait=True)
 
 
-    assert vol_info['id'] in out_stream.getvalue(), \
+    assert vol_info['id'] in rbd_output, \
         "Volume not found on Ceph cluster"
     assert vol_info['size'] == size, \
         "Volume size on Ceph cluster is different than specified"
         "Volume not found on Ceph cluster"
     assert vol_info['size'] == size, \
         "Volume size on Ceph cluster is different than specified"
index ee157f4afe4641ad5bfc0ce962219af6800bfe7e..a6aa4c6322d890c1d7301afa9b9d66b8e338587e 100644 (file)
@@ -6,7 +6,7 @@ import logging
 import time
 from teuthology.orchestra import run
 
 import time
 from teuthology.orchestra import run
 
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index b565c774c441b60b156451a73ebe832b6be6f69d..e000bb2bb73a6c1b969699a09d286e8f7dc59ea4 100644 (file)
@@ -5,7 +5,7 @@ import logging
 import time
 
 from teuthology import misc as teuthology
 import time
 
 from teuthology import misc as teuthology
-from util.rados import rados
+from tasks.util.rados import rados
 
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
index dda358b045fd39f0543a516ee186cf2412b2e0f4..4d4b07fc4185655214ed8d04f98a1f127bb46477 100644 (file)
@@ -6,7 +6,7 @@ import time
 
 from teuthology.exceptions import CommandFailedError
 from teuthology import misc as teuthology
 
 from teuthology.exceptions import CommandFailedError
 from teuthology import misc as teuthology
-from util.rados import rados
+from tasks.util.rados import rados
 import os
 
 
 import os
 
 
index 2bf3feaf083714e490c58f5e6ccca15f168c823d..352ed246b6eb48a930e245563081e1b5399334fa 100644 (file)
@@ -8,7 +8,7 @@ from teuthology import misc
 from teuthology.exceptions import ConfigError
 from teuthology import contextutil
 from teuthology import packaging
 from teuthology.exceptions import ConfigError
 from teuthology import contextutil
 from teuthology import packaging
-from util import get_remote_for_role
+from tasks.util import get_remote_for_role
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -83,7 +83,7 @@ def setup_dnsmasq(remote, testdir, cnames):
     # restart dnsmasq
     remote.run(args=['sudo', 'systemctl', 'restart', 'dnsmasq'])
     # verify dns name is set
     # restart dnsmasq
     remote.run(args=['sudo', 'systemctl', 'restart', 'dnsmasq'])
     # verify dns name is set
-    remote.run(args=['ping', '-c', '4', cnames.keys()[0]])
+    remote.run(args=['ping', '-c', '4', next(iter(cnames.keys()))])
 
     try:
         yield
 
     try:
         yield
index 237d9127fc1487589dd1d114f4cd3cc2af8ce5ee..4971f1916e1a254a39837d85b3c2c60f587b8a32 100644 (file)
@@ -4,7 +4,7 @@ Dump_stuck command
 import logging
 import time
 
 import logging
 import time
 
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 
 from teuthology import misc as teuthology
 
 
index 2360ea92ba496c181c9cf64d6a3e9ba52961b31e..e12b6901cc470a2fc893f2d5f20a66cbd7e2ac42 100644 (file)
@@ -1,12 +1,12 @@
 """
 Lost_unfound
 """
 """
 Lost_unfound
 """
-from teuthology.orchestra import run
 import logging
 import logging
-import ceph_manager
-from teuthology import misc as teuthology
-from util.rados import rados
 import time
 import time
+from tasks import ceph_manager
+from tasks.util.rados import rados
+from teuthology import misc as teuthology
+from teuthology.orchestra import run
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 01b562905b212408f09d89060a689e875035cdfc..319bef7686c71d8ad0a25b62a6607411a1ff354c 100644 (file)
@@ -31,7 +31,7 @@ def task(ctx, config):
     clients = config.keys()
 
     # just use the first client...
     clients = config.keys()
 
     # just use the first client...
-    client = clients[0];
+    client = next(iter(clients))
     (remote,) = ctx.cluster.only(client).remotes.keys()
 
     testdir = teuthology.get_testdir(ctx)
     (remote,) = ctx.cluster.only(client).remotes.keys()
 
     testdir = teuthology.get_testdir(ctx)
index 4b47e754bfa2460e81651685f065bb423dc0cd32..ca84dc7a56d7704979e4dbce5ebddced901811f4 100644 (file)
@@ -4,6 +4,7 @@ CephFS sub-tasks.
 
 import logging
 import re
 
 import logging
 import re
+import six
 
 from tasks.cephfs.filesystem import Filesystem
 
 
 from tasks.cephfs.filesystem import Filesystem
 
@@ -38,7 +39,7 @@ def clients_evicted(ctx, config):
     for rank in fs.get_ranks(status=status):
         ls = fs.rank_asok(['session', 'ls'], rank=rank['rank'], status=status)
         for session in ls:
     for rank in fs.get_ranks(status=status):
         ls = fs.rank_asok(['session', 'ls'], rank=rank['rank'], status=status)
         for session in ls:
-            for client, evicted in clients.viewitems():
+            for client, evicted in six.viewitems(clients):
                 mount = mounts.get(client)
                 if mount is not None:
                     global_id = mount.get_global_id()
                 mount = mounts.get(client)
                 if mount is not None:
                     global_id = mount.get_global_id()
@@ -51,7 +52,7 @@ def clients_evicted(ctx, config):
 
     no_session = set(clients) - has_session
     should_assert = False
 
     no_session = set(clients) - has_session
     should_assert = False
-    for client, evicted in clients.viewitems():
+    for client, evicted in six.viewitems(clients):
         mount = mounts.get(client)
         if mount is not None:
             if evicted:
         mount = mounts.get(client)
         if mount is not None:
             if evicted:
index 88f27366a718f348ed509a53a0521090cd960fde..ce0d73f56bfb4850078c146871e3e8b68001cfa7 100644 (file)
@@ -8,7 +8,7 @@ from teuthology.misc import deep_merge
 from teuthology.orchestra.run import CommandFailedError
 from teuthology import misc
 from teuthology.contextutil import MaxWhileTries
 from teuthology.orchestra.run import CommandFailedError
 from teuthology import misc
 from teuthology.contextutil import MaxWhileTries
-from cephfs.kernel_mount import KernelMount
+from tasks.cephfs.kernel_mount import KernelMount
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -109,7 +109,7 @@ def task(ctx, config):
                 try:
                     mount.umount()
                 except (CommandFailedError, MaxWhileTries):
                 try:
                     mount.umount()
                 except (CommandFailedError, MaxWhileTries):
-                    log.warn("Ordinary umount failed, forcing...")
+                    log.warning("Ordinary umount failed, forcing...")
                     forced = True
                     mount.umount_wait(force=True)
 
                     forced = True
                     mount.umount_wait(force=True)
 
index 4433ce20464989864021130bb43b5b971f9a1a46..bcb10060220e3709c7b585f41fe64e1becd89322 100644 (file)
@@ -4,7 +4,10 @@ Deploy and configure Keystone for Teuthology
 import argparse
 import contextlib
 import logging
 import argparse
 import contextlib
 import logging
-from cStringIO import StringIO
+
+# still need this for python3.6
+from collections import OrderedDict
+from itertools import chain
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
@@ -28,11 +31,9 @@ def run_in_keystone_dir(ctx, client, args, **kwargs):
 def get_toxvenv_dir(ctx):
     return ctx.tox.venv_path
 
 def get_toxvenv_dir(ctx):
     return ctx.tox.venv_path
 
-def run_in_tox_venv(ctx, remote, args, **kwargs):
-    return remote.run(
-        args=[ 'source', '{}/bin/activate'.format(get_toxvenv_dir(ctx)), run.Raw('&&') ] + args,
-        **kwargs
-    )
+def toxvenv_sh(ctx, remote, args, **kwargs):
+    activate = get_toxvenv_dir(ctx) + '/bin/activate'
+    return remote.sh(['source', activate, run.Raw('&&')] + args, **kwargs)
 
 def run_in_keystone_venv(ctx, client, args):
     run_in_keystone_dir(ctx, client,
 
 def run_in_keystone_venv(ctx, client, args):
     run_in_keystone_dir(ctx, client,
@@ -107,12 +108,10 @@ def install_packages(ctx, config):
     for (client, _) in config.items():
         (remote,) = ctx.cluster.only(client).remotes.keys()
         # use bindep to read which dependencies we need from keystone/bindep.txt
     for (client, _) in config.items():
         (remote,) = ctx.cluster.only(client).remotes.keys()
         # use bindep to read which dependencies we need from keystone/bindep.txt
-        run_in_tox_venv(ctx, remote, ['pip', 'install', 'bindep'])
-        r = run_in_tox_venv(ctx, remote,
+        toxvenv_sh(ctx, remote, ['pip', 'install', 'bindep'])
+        packages[client] = toxvenv_sh(ctx, remote,
                 ['bindep', '--brief', '--file', '{}/bindep.txt'.format(get_keystone_dir(ctx))],
                 ['bindep', '--brief', '--file', '{}/bindep.txt'.format(get_keystone_dir(ctx))],
-                stdout=StringIO(),
-                check_status=False) # returns 1 on success?
-        packages[client] = r.stdout.getvalue().splitlines()
+                check_status=False).splitlines() # returns 1 on success?
         for dep in packages[client]:
             install_package(dep, remote)
     try:
         for dep in packages[client]:
             install_package(dep, remote)
     try:
@@ -141,9 +140,7 @@ def setup_venv(ctx, config):
             ])
 
         run_in_keystone_venv(ctx, client,
             ])
 
         run_in_keystone_venv(ctx, client,
-            [   'pip', 'install', 'python-openstackclient<=3.19.0',
-                '-r', 'requirements.txt'
-            ])
+            [   'pip', 'install', 'python-openstackclient'])
     try:
         yield
     finally:
     try:
         yield
     finally:
@@ -159,15 +156,16 @@ def configure_instance(ctx, config):
         # prepare the config file
         run_in_keystone_dir(ctx, client,
             [
         # prepare the config file
         run_in_keystone_dir(ctx, client,
             [
-                'cp', '-f',
-                'etc/keystone.conf.sample',
-                'etc/keystone.conf'
+                'source',
+                f'{get_toxvenv_dir(ctx)}/bin/activate',
+                run.Raw('&&'),
+                'tox', '-e', 'genconfig'
             ])
         run_in_keystone_dir(ctx, client,
             [
             ])
         run_in_keystone_dir(ctx, client,
             [
-                'sed',
-                '-e', 's/#admin_token =.*/admin_token = ADMIN/',
-                '-i', 'etc/keystone.conf'
+                'cp', '-f',
+                'etc/keystone.conf.sample',
+                'etc/keystone.conf'
             ])
         run_in_keystone_dir(ctx, client,
             [
             ])
         run_in_keystone_dir(ctx, client,
             [
@@ -265,77 +263,96 @@ def run_keystone(ctx, config):
                                cluster_name).stop()
 
 
                                cluster_name).stop()
 
 
-def dict_to_args(special, items):
+def dict_to_args(specials, items):
     """
     Transform
         [(key1, val1), (special, val_special), (key3, val3) ]
     into:
         [ '--key1', 'val1', '--key3', 'val3', 'val_special' ]
     """
     """
     Transform
         [(key1, val1), (special, val_special), (key3, val3) ]
     into:
         [ '--key1', 'val1', '--key3', 'val3', 'val_special' ]
     """
-    args=[]
+    args = []
+    special_vals = OrderedDict((k, '') for k in specials.split(','))
     for (k, v) in items:
     for (k, v) in items:
-        if k == special:
-            special_val = v
+        if k in special_vals:
+            special_vals[k] = v
         else:
             args.append('--{k}'.format(k=k))
             args.append(v)
         else:
             args.append('--{k}'.format(k=k))
             args.append(v)
-    if special_val:
-        args.append(special_val)
+    args.extend(arg for arg in special_vals.values() if arg)
     return args
 
     return args
 
-def run_section_cmds(ctx, cclient, section_cmd, special,
+def run_section_cmds(ctx, cclient, section_cmd, specials,
                      section_config_list):
     admin_host, admin_port = ctx.keystone.admin_endpoints[cclient]
 
     auth_section = [
                      section_config_list):
     admin_host, admin_port = ctx.keystone.admin_endpoints[cclient]
 
     auth_section = [
-        ( 'os-token', 'ADMIN' ),
-        ( 'os-identity-api-version', '2.0' ),
-        ( 'os-url', 'http://{host}:{port}/v2.0'.format(host=admin_host,
-                                                       port=admin_port) ),
+        ( 'os-username', 'admin' ),
+        ( 'os-password', 'ADMIN' ),
+        ( 'os-user-domain-id', 'default' ),
+        ( 'os-project-name', 'admin' ),
+        ( 'os-project-domain-id', 'default' ),
+        ( 'os-identity-api-version', '3' ),
+        ( 'os-auth-url', 'http://{host}:{port}/v3'.format(host=admin_host,
+                                                          port=admin_port) ),
     ]
 
     for section_item in section_config_list:
         run_in_keystone_venv(ctx, cclient,
             [ 'openstack' ] + section_cmd.split() +
     ]
 
     for section_item in section_config_list:
         run_in_keystone_venv(ctx, cclient,
             [ 'openstack' ] + section_cmd.split() +
-            dict_to_args(special, auth_section + section_item.items()) +
+            dict_to_args(specials, auth_section + list(section_item.items())) +
             [ '--debug' ])
 
 def create_endpoint(ctx, cclient, service, url, adminurl=None):
             [ '--debug' ])
 
 def create_endpoint(ctx, cclient, service, url, adminurl=None):
-    endpoint_section = {
-        'service': service,
-        'publicurl': url,
-    }
+    endpoint_sections = [
+        {'service': service, 'interface': 'public', 'url': url},
+    ]
     if adminurl:
     if adminurl:
-        endpoint_section.update( {
-            'adminurl': adminurl,
-            } )
-    return run_section_cmds(ctx, cclient, 'endpoint create', 'service',
-                            [ endpoint_section ])
+        endpoint_sections.append(
+            {'service': service, 'interface': 'admin', 'url': adminurl}
+        )
+    run_section_cmds(ctx, cclient, 'endpoint create',
+                     'service,interface,url',
+                     endpoint_sections)
 
 @contextlib.contextmanager
 def fill_keystone(ctx, config):
     assert isinstance(config, dict)
 
     for (cclient, cconfig) in config.items():
 
 @contextlib.contextmanager
 def fill_keystone(ctx, config):
     assert isinstance(config, dict)
 
     for (cclient, cconfig) in config.items():
+        public_host, public_port = ctx.keystone.public_endpoints[cclient]
+        url = 'http://{host}:{port}/v3'.format(host=public_host,
+                                               port=public_port)
+        admin_host, admin_port = ctx.keystone.admin_endpoints[cclient]
+        admin_url = 'http://{host}:{port}/v3'.format(host=admin_host,
+                                                     port=admin_port)
+        opts = {'password': 'ADMIN',
+                'username': 'admin',
+                'project-name': 'admin',
+                'role-name': 'admin',
+                'service-name': 'keystone',
+                'region-id': 'RegionOne',
+                'admin-url': admin_url,
+                'public-url': url}
+        bootstrap_args = chain.from_iterable(('--bootstrap-{}'.format(k), v)
+                                             for k, v in opts.items())
+        run_in_keystone_venv(ctx, cclient,
+                             ['keystone-manage', 'bootstrap'] +
+                             list(bootstrap_args))
+
         # configure tenants/projects
         # configure tenants/projects
+        run_section_cmds(ctx, cclient, 'domain create', 'name',
+                         cconfig.get('domains', []))
         run_section_cmds(ctx, cclient, 'project create', 'name',
         run_section_cmds(ctx, cclient, 'project create', 'name',
-                         cconfig['tenants'])
+                         cconfig.get('projects', []))
         run_section_cmds(ctx, cclient, 'user create', 'name',
         run_section_cmds(ctx, cclient, 'user create', 'name',
-                         cconfig['users'])
+                         cconfig.get('users', []))
         run_section_cmds(ctx, cclient, 'role create', 'name',
         run_section_cmds(ctx, cclient, 'role create', 'name',
-                         cconfig['roles'])
+                         cconfig.get('roles', []))
         run_section_cmds(ctx, cclient, 'role add', 'name',
         run_section_cmds(ctx, cclient, 'role add', 'name',
-                         cconfig['role-mappings'])
-        run_section_cmds(ctx, cclient, 'service create', 'name',
-                         cconfig['services'])
+                         cconfig.get('role-mappings', []))
+        run_section_cmds(ctx, cclient, 'service create', 'type',
+                         cconfig.get('services', []))
 
 
-        public_host, public_port = ctx.keystone.public_endpoints[cclient]
-        url = 'http://{host}:{port}/v2.0'.format(host=public_host,
-                                                 port=public_port)
-        admin_host, admin_port = ctx.keystone.admin_endpoints[cclient]
-        admin_url = 'http://{host}:{port}/v2.0'.format(host=admin_host,
-                                                       port=admin_port)
-        create_endpoint(ctx, cclient, 'keystone', url, admin_url)
         # for the deferred endpoint creation; currently it's used in rgw.py
         ctx.keystone.create_endpoint = create_endpoint
 
         # for the deferred endpoint creation; currently it's used in rgw.py
         ctx.keystone.create_endpoint = create_endpoint
 
@@ -373,7 +390,10 @@ def task(ctx, config):
       - keystone:
           client.0:
             force-branch: master
       - keystone:
           client.0:
             force-branch: master
-            tenants:
+            domains:
+              - name: default
+                description: Default Domain
+            projects:
               - name: admin
                 description:  Admin Tenant
             users:
               - name: admin
                 description:  Admin Tenant
             users:
index d51b9669306342277b95d3003fd5d17a951daec1..ab17a95dc30d037c5588cac34b06bdc32a7b6aea 100644 (file)
@@ -3,10 +3,10 @@ Lost_unfound
 """
 import logging
 import time
 """
 import logging
 import time
-import ceph_manager
+from tasks import ceph_manager
+from tasks.util.rados import rados
 from teuthology import misc as teuthology
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology.orchestra import run
-from util.rados import rados
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 29e2c351346195a7e528daad89c1c465fd4f96bf..58314086c033756ab9f0609b5decc71a65e966c0 100644 (file)
@@ -3,7 +3,7 @@
 import logging
 import contextlib
 import time
 import logging
 import contextlib
 import time
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc
 from teuthology.orchestra.run import CommandFailedError, Raw
 
 from teuthology import misc
 from teuthology.orchestra.run import CommandFailedError, Raw
 
index 07ec039ed9cb84e3f5b6ace37097fbb0e08c6a1c..11e647b8a05f073dbb23dd8f4cd1c92857ed672e 100644 (file)
@@ -3,7 +3,6 @@ Thrash mds by simulating failures
 """
 import logging
 import contextlib
 """
 import logging
 import contextlib
-import ceph_manager
 import itertools
 import random
 import time
 import itertools
 import random
 import time
@@ -13,6 +12,7 @@ from gevent.greenlet import Greenlet
 from gevent.event import Event
 from teuthology import misc as teuthology
 
 from gevent.event import Event
 from teuthology import misc as teuthology
 
+from tasks import ceph_manager
 from tasks.cephfs.filesystem import MDSCluster, Filesystem
 from tasks.thrasher import Thrasher
 
 from tasks.cephfs.filesystem import MDSCluster, Filesystem
 from tasks.thrasher import Thrasher
 
@@ -186,10 +186,11 @@ class MDSThrasher(Thrasher, Greenlet):
             status = self.fs.status()
             max_mds = status.get_fsmap(self.fs.id)['mdsmap']['max_mds']
             ranks = list(status.get_ranks(self.fs.id))
             status = self.fs.status()
             max_mds = status.get_fsmap(self.fs.id)['mdsmap']['max_mds']
             ranks = list(status.get_ranks(self.fs.id))
-            stopping = filter(lambda info: "up:stopping" == info['state'], ranks)
-            actives = filter(lambda info: "up:active" == info['state'] and "laggy_since" not in info, ranks)
+            stopping = sum(1 for _ in ranks if "up:stopping" == _['state'])
+            actives = sum(1 for _ in ranks
+                          if "up:active" == _['state'] and "laggy_since" not in _)
 
 
-            if not bool(self.config.get('thrash_while_stopping', False)) and len(stopping) > 0:
+            if not bool(self.config.get('thrash_while_stopping', False)) and stopping > 0:
                 if itercount % 5 == 0:
                     self.log('cluster is considered unstable while MDS are in up:stopping (!thrash_while_stopping)')
             else:
                 if itercount % 5 == 0:
                     self.log('cluster is considered unstable while MDS are in up:stopping (!thrash_while_stopping)')
             else:
@@ -201,14 +202,14 @@ class MDSThrasher(Thrasher, Greenlet):
                             return status
                     except:
                         pass # no rank present
                             return status
                     except:
                         pass # no rank present
-                    if len(actives) >= max_mds:
+                    if actives >= max_mds:
                         # no replacement can occur!
                         self.log("cluster has {actives} actives (max_mds is {max_mds}), no MDS can replace rank {rank}".format(
                         # no replacement can occur!
                         self.log("cluster has {actives} actives (max_mds is {max_mds}), no MDS can replace rank {rank}".format(
-                            actives=len(actives), max_mds=max_mds, rank=rank))
+                            actives=actives, max_mds=max_mds, rank=rank))
                         return status
                 else:
                         return status
                 else:
-                    if len(actives) == max_mds:
-                        self.log('mds cluster has {count} alive and active, now stable!'.format(count = len(actives)))
+                    if actives == max_mds:
+                        self.log('mds cluster has {count} alive and active, now stable!'.format(count = actives))
                         return status, None
             if itercount > 300/2: # 5 minutes
                  raise RuntimeError('timeout waiting for cluster to stabilize')
                         return status, None
             if itercount > 300/2: # 5 minutes
                  raise RuntimeError('timeout waiting for cluster to stabilize')
@@ -245,7 +246,7 @@ class MDSThrasher(Thrasher, Greenlet):
 
             if random.random() <= self.thrash_max_mds:
                 max_mds = status.get_fsmap(self.fs.id)['mdsmap']['max_mds']
 
             if random.random() <= self.thrash_max_mds:
                 max_mds = status.get_fsmap(self.fs.id)['mdsmap']['max_mds']
-                options = range(1, max_mds)+range(max_mds+1, self.max_mds+1)
+                options = list(range(1, max_mds))+list(range(max_mds+1, self.max_mds+1))
                 if len(options) > 0:
                     sample = random.sample(options, 1)
                     new_max_mds = sample[0]
                 if len(options) > 0:
                     sample = random.sample(options, 1)
                     new_max_mds = sample[0]
index 6419d318a8f84a69c9d4720326592946ea99e1d8..1acca15373bd4f3c9cb2bde09cf7dfc575f00c1a 100644 (file)
@@ -11,7 +11,7 @@ import requests
 import six
 from teuthology.exceptions import CommandFailedError
 
 import six
 from teuthology.exceptions import CommandFailedError
 
-from ..mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
index e76708a9c43beed7f7123f5355db7c7745ff9afe..468fe379641ced23f59e731ff1ed4736fca7cca0 100644 (file)
@@ -6,7 +6,7 @@ import time
 
 import jwt
 
 
 import jwt
 
-from .helper import DashboardTestCase, JObj, JLeaf
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JLeaf
 
 
 class AuthTest(DashboardTestCase):
 
 
 class AuthTest(DashboardTestCase):
index e6594450f714177b6833de5b502f35db43ec09fc..291d4d85c93c9ec7559460b5e4c16c9256f9e8d6 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 import six
 from contextlib import contextmanager
 
 import six
 from contextlib import contextmanager
 
-from .helper import DashboardTestCase, JObj, JList, JLeaf
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JList, JLeaf
 
 
 class CephfsTest(DashboardTestCase):
 
 
 class CephfsTest(DashboardTestCase):
index 61d18000a45a4078a389d9213d4c59ccdb7f5c96..9f134cd876aecfd0d2bd584d5bfcbd0d6f4b74d2 100644 (file)
@@ -2,7 +2,7 @@ from __future__ import absolute_import
 
 import time
 
 
 import time
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class ClusterConfigurationTest(DashboardTestCase):
 
 
 class ClusterConfigurationTest(DashboardTestCase):
index a0bca63ff4a038be1cadff5fcd52c54745e6b2ba..33949925bb04f55b1529f563c4de5a22dce36bce 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 
 import six
 
 
 import six
 
-from .helper import DashboardTestCase, JObj, JList
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JList
 
 
 class CrushRuleTest(DashboardTestCase):
 
 
 class CrushRuleTest(DashboardTestCase):
index 111e37c7e3e66dfdc71017341122de5bcb67cb53..c6c829577b3a3a1ebb44f74334654c62b2bc6d4a 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 
 import six
 
 
 import six
 
-from .helper import DashboardTestCase, JObj, JList
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JList
 
 
 class ECPTest(DashboardTestCase):
 
 
 class ECPTest(DashboardTestCase):
@@ -102,9 +102,8 @@ class ECPTest(DashboardTestCase):
         self._get('/ui-api/erasure_code_profile/info')
         self.assertSchemaBody(JObj({
             'names': JList(six.string_types),
         self._get('/ui-api/erasure_code_profile/info')
         self.assertSchemaBody(JObj({
             'names': JList(six.string_types),
-            'failure_domains': JList(six.string_types),
             'plugins': JList(six.string_types),
             'plugins': JList(six.string_types),
-            'devices': JList(six.string_types),
             'directory': six.string_types,
             'directory': six.string_types,
+            'nodes': JList(JObj({}, allow_unknown=True))
         }))
 
         }))
 
index cd869a00e405b2f251fc88f81e4f98fd74e040c2..0311daddaa605d3140a301bb30d40edb13bf81ea 100644 (file)
@@ -4,7 +4,7 @@
 from __future__ import absolute_import
 
 
 from __future__ import absolute_import
 
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class GaneshaTest(DashboardTestCase):
 
 
 class GaneshaTest(DashboardTestCase):
index 08551e488ab99164f79afe1e1cd9302c75c30b1d..e7bfb4fabf001f1c65b81520aa152013f0854cb5 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase, JAny, JLeaf, JList, JObj
+from tasks.mgr.dashboard.helper import DashboardTestCase, JAny, JLeaf, JList, JObj
 
 
 class HealthTest(DashboardTestCase):
 
 
 class HealthTest(DashboardTestCase):
index d608dc247ed565244b1797f100d324409e1597cd..407207133e3bac02230be87e2639e20d7780bc0d 100644 (file)
@@ -2,8 +2,8 @@
 from __future__ import absolute_import
 import json
 
 from __future__ import absolute_import
 import json
 
-from .helper import DashboardTestCase, JList, JObj
-from .test_orchestrator import test_data
+from tasks.mgr.dashboard.helper import DashboardTestCase, JList, JObj
+from tasks.mgr.dashboard.test_orchestrator import test_data
 
 
 class HostControllerTest(DashboardTestCase):
 
 
 class HostControllerTest(DashboardTestCase):
index 17d5d830c99666dd2a628b26d72b23c06820ad9b..5108161adade100da6adb10d1832731f3b911f0d 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase, JList, JObj
+from tasks.mgr.dashboard.helper import DashboardTestCase, JList, JObj
 
 
 class LogsTest(DashboardTestCase):
 
 
 class LogsTest(DashboardTestCase):
index 080b8b64c239121110b7bd80565706ad1221ace9..ec6dbb47f862ca8da114c7d2a27c8d580edb8419 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 import logging
 import requests
 
 import logging
 import requests
 
-from .helper import DashboardTestCase, JAny, JObj, JList, JLeaf
+from tasks.mgr.dashboard.helper import DashboardTestCase, JAny, JObj, JList, JLeaf
 
 logger = logging.getLogger(__name__)
 
 
 logger = logging.getLogger(__name__)
 
index 0cf7e25a282a6b6e4229eb34ea6095627eedac6c..1558cdc82aff0a9360d9a443f01c3a91b358b42c 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class MonitorTest(DashboardTestCase):
 
 
 class MonitorTest(DashboardTestCase):
index 9f4204379ac9afd9518a34134f4f9410683efc6d..4f248a1c3c6b9b37c52affdf92654403fb0208b7 100644 (file)
@@ -2,7 +2,7 @@
 from __future__ import absolute_import
 import json
 
 from __future__ import absolute_import
 import json
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 test_data = {
 
 
 test_data = {
index 1bd75e4b09472547d730064e591bc6ddbfdb0b71..4f2028d2297ef473744541fbfb737a351d40ef30 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 
 import json
 
 
 import json
 
-from .helper import DashboardTestCase, JObj, JAny, JList, JLeaf, JTuple
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JAny, JList, JLeaf, JTuple
 
 
 class OsdTest(DashboardTestCase):
 
 
 class OsdTest(DashboardTestCase):
index c01368bce8db15556db9680751b98e3a507e5b76..99133a77cc725dbb3fd5093da31b77657b7b8cfc 100644 (file)
@@ -1,7 +1,7 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase, JObj
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj
 
 
 class PerfCountersControllerTest(DashboardTestCase):
 
 
 class PerfCountersControllerTest(DashboardTestCase):
index 969318d2a94b3b79496cf1396cf7e992ecd05093..bf40ac2062638d36bd695483064a1a585bde698d 100644 (file)
@@ -6,7 +6,7 @@ import six
 import time
 from contextlib import contextmanager
 
 import time
 from contextlib import contextmanager
 
-from .helper import DashboardTestCase, JAny, JList, JObj
+from tasks.mgr.dashboard.helper import DashboardTestCase, JAny, JList, JObj
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -414,4 +414,5 @@ class PoolTest(DashboardTestCase):
             'pg_autoscale_modes': JList(six.string_types),
             'erasure_code_profiles': JList(JObj({}, allow_unknown=True)),
             'used_rules': JObj({}, allow_unknown=True),
             'pg_autoscale_modes': JList(six.string_types),
             'erasure_code_profiles': JList(JObj({}, allow_unknown=True)),
             'used_rules': JObj({}, allow_unknown=True),
+            'used_profiles': JObj({}, allow_unknown=True),
         }))
         }))
index 108b2f0332abfb30f91b2b90fad05b0729b6c520..1c89651b425e2fc07b29a2462c77e9f0afac8746 100644 (file)
@@ -5,7 +5,7 @@ from __future__ import absolute_import
 
 import time
 
 
 import time
 
-from .helper import DashboardTestCase, JObj, JLeaf, JList
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JLeaf, JList
 
 
 class RbdTest(DashboardTestCase):
 
 
 class RbdTest(DashboardTestCase):
index 39e5f895f11085271b22a7d1f1dcf9db007ef8b9..f8268f3525bf658af026495f73061b2d03405935 100644 (file)
@@ -3,7 +3,7 @@
 
 from __future__ import absolute_import
 
 
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class RbdMirroringTest(DashboardTestCase):
 
 
 class RbdMirroringTest(DashboardTestCase):
index 0d9f8d9ba83697042c63c18f4b0c1bbc30bd8b0f..22376c0a29b56fec22541873e89ce8c86d986dc7 100644 (file)
@@ -2,7 +2,7 @@
 
 from __future__ import absolute_import
 
 
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class RequestsTest(DashboardTestCase):
 
 
 class RequestsTest(DashboardTestCase):
index 47a6de2450ee872d1ec4669851c75104e8f69d91..3e5b735991328fa9589d0b2db8c277fd4e10ba4f 100644 (file)
@@ -4,13 +4,13 @@ from __future__ import absolute_import
 import base64
 import logging
 import time
 import base64
 import logging
 import time
-import urllib
 
 from cryptography.hazmat.backends import default_backend
 from cryptography.hazmat.primitives.twofactor.totp import TOTP
 from cryptography.hazmat.primitives.hashes import SHA1
 
 from cryptography.hazmat.backends import default_backend
 from cryptography.hazmat.primitives.twofactor.totp import TOTP
 from cryptography.hazmat.primitives.hashes import SHA1
+from six.moves.urllib import parse
 
 
-from .helper import DashboardTestCase, JObj, JList, JLeaf
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JList, JLeaf
 
 logger = logging.getLogger(__name__)
 
 
 logger = logging.getLogger(__name__)
 
@@ -112,6 +112,27 @@ class RgwApiCredentialsTest(RgwTestCase):
                       data['message'])
 
 
                       data['message'])
 
 
+class RgwSiteTest(RgwTestCase):
+
+    AUTH_ROLES = ['rgw-manager']
+
+    def test_get_placement_targets(self):
+        data = self._get('/api/rgw/site?query=placement-targets')
+        self.assertStatus(200)
+        self.assertSchema(data, JObj({
+            'zonegroup': str,
+            'placement_targets': JList(JObj({
+                'name': str,
+                'data_pool': str
+            }))
+        }))
+
+    def test_get_realms(self):
+        data = self._get('/api/rgw/site?query=realms')
+        self.assertStatus(200)
+        self.assertSchema(data, JList(str))
+
+
 class RgwBucketTest(RgwTestCase):
 
     _mfa_token_serial = '1'
 class RgwBucketTest(RgwTestCase):
 
     _mfa_token_serial = '1'
@@ -292,7 +313,7 @@ class RgwBucketTest(RgwTestCase):
         def _verify_tenant_bucket(bucket, tenant, uid):
             full_bucket_name = '{}/{}'.format(tenant, bucket)
             _data = self._get('/api/rgw/bucket/{}'.format(
         def _verify_tenant_bucket(bucket, tenant, uid):
             full_bucket_name = '{}/{}'.format(tenant, bucket)
             _data = self._get('/api/rgw/bucket/{}'.format(
-                urllib.quote_plus(full_bucket_name)))
+                parse.quote_plus(full_bucket_name)))
             self.assertStatus(200)
             self.assertSchema(_data, JObj(sub_elems={
                 'owner': JLeaf(str),
             self.assertStatus(200)
             self.assertSchema(_data, JObj(sub_elems={
                 'owner': JLeaf(str),
@@ -314,7 +335,7 @@ class RgwBucketTest(RgwTestCase):
         # Update bucket: different user with different tenant, enable versioning.
         self._put(
             '/api/rgw/bucket/{}'.format(
         # Update bucket: different user with different tenant, enable versioning.
         self._put(
             '/api/rgw/bucket/{}'.format(
-                urllib.quote_plus('testx/teuth-test-bucket')),
+                parse.quote_plus('testx/teuth-test-bucket')),
             params={
                 'bucket_id': data['id'],
                 'uid': 'testx2$teuth-test-user2',
             params={
                 'bucket_id': data['id'],
                 'uid': 'testx2$teuth-test-user2',
@@ -326,7 +347,7 @@ class RgwBucketTest(RgwTestCase):
         # Change owner to a non-tenanted user
         self._put(
             '/api/rgw/bucket/{}'.format(
         # Change owner to a non-tenanted user
         self._put(
             '/api/rgw/bucket/{}'.format(
-                urllib.quote_plus('testx2/teuth-test-bucket')),
+                parse.quote_plus('testx2/teuth-test-bucket')),
             params={
                 'bucket_id': data['id'],
                 'uid': 'admin'
             params={
                 'bucket_id': data['id'],
                 'uid': 'admin'
@@ -355,7 +376,7 @@ class RgwBucketTest(RgwTestCase):
 
         # Delete the bucket.
         self._delete('/api/rgw/bucket/{}'.format(
 
         # Delete the bucket.
         self._delete('/api/rgw/bucket/{}'.format(
-            urllib.quote_plus('testx/teuth-test-bucket')))
+            parse.quote_plus('testx/teuth-test-bucket')))
         self.assertStatus(204)
         data = self._get('/api/rgw/bucket')
         self.assertStatus(200)
         self.assertStatus(204)
         data = self._get('/api/rgw/bucket')
         self.assertStatus(200)
index dbfaea9e4f2d4308ae3326ad1082193611d158e2..d678fa195f55eeb5393f12aa5d2f6ffb2ac43234 100644 (file)
@@ -2,7 +2,7 @@
 
 from __future__ import absolute_import
 
 
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class RoleTest(DashboardTestCase):
 
 
 class RoleTest(DashboardTestCase):
index 2d890484a3e04f09326a926ee18c995376709bc2..4c6ebeacaaebb1a7644b87fe05ab0a18729d24ce 100644 (file)
@@ -2,7 +2,7 @@
 
 from __future__ import absolute_import
 
 
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase, JList, JObj, JAny
+from tasks.mgr.dashboard.helper import DashboardTestCase, JList, JObj, JAny
 
 
 class SettingsTest(DashboardTestCase):
 
 
 class SettingsTest(DashboardTestCase):
index a31f8914673664e6f8f682ca4a74bfa6f7ddcbdb..808107a3119e841dcbad9d6df04ae22809805521 100644 (file)
@@ -1,6 +1,6 @@
 from __future__ import absolute_import
 
 from __future__ import absolute_import
 
-from .helper import DashboardTestCase
+from tasks.mgr.dashboard.helper import DashboardTestCase
 
 
 class SummaryTest(DashboardTestCase):
 
 
 class SummaryTest(DashboardTestCase):
diff --git a/ceph/qa/tasks/mgr/dashboard/test_telemetry.py b/ceph/qa/tasks/mgr/dashboard/test_telemetry.py
new file mode 100644 (file)
index 0000000..840ccdd
--- /dev/null
@@ -0,0 +1,89 @@
+from .helper import DashboardTestCase, JObj
+
+
+class TelemetryTest(DashboardTestCase):
+
+    pre_enabled_status = True
+
+    @classmethod
+    def setUpClass(cls):
+        super(TelemetryTest, cls).setUpClass()
+        data = cls._get('/api/mgr/module/telemetry')
+        cls.pre_enabled_status = data['enabled']
+
+    @classmethod
+    def tearDownClass(cls):
+        if cls.pre_enabled_status:
+            cls._enable_module()
+        else:
+            cls._disable_module()
+        super(TelemetryTest, cls).tearDownClass()
+
+    def test_disable_module(self):
+        self._enable_module()
+        self._check_telemetry_enabled(True)
+        self._disable_module()
+        self._check_telemetry_enabled(False)
+
+    def test_enable_module_correct_license(self):
+        self._disable_module()
+        self._check_telemetry_enabled(False)
+
+        self._put('/api/telemetry', {
+            'enable': True,
+            'license_name': 'sharing-1-0'
+        })
+        self.assertStatus(200)
+        self._check_telemetry_enabled(True)
+
+    def test_enable_module_empty_license(self):
+        self._disable_module()
+        self._check_telemetry_enabled(False)
+
+        self._put('/api/telemetry', {
+            'enable': True,
+            'license_name': ''
+        })
+        self.assertStatus(400)
+        self.assertError(code='telemetry_enable_license_missing')
+        self._check_telemetry_enabled(False)
+
+    def test_enable_module_invalid_license(self):
+        self._disable_module()
+        self._check_telemetry_enabled(False)
+
+        self._put('/api/telemetry', {
+            'enable': True,
+            'license_name': 'invalid-license'
+        })
+        self.assertStatus(400)
+        self.assertError(code='telemetry_enable_license_missing')
+        self._check_telemetry_enabled(False)
+
+    def test_get_report(self):
+        self._enable_module()
+        data = self._get('/api/telemetry/report')
+        self.assertStatus(200)
+        schema = JObj({
+            'report': JObj({}, allow_unknown=True),
+            'device_report': JObj({}, allow_unknown=True)
+        })
+        self.assertSchema(data, schema)
+
+    @classmethod
+    def _enable_module(cls):
+        cls._put('/api/telemetry', {
+            'enable': True,
+            'license_name': 'sharing-1-0'
+        })
+
+    @classmethod
+    def _disable_module(cls):
+        cls._put('/api/telemetry', {
+            'enable': False
+        })
+
+    def _check_telemetry_enabled(self, enabled):
+        data = self._get('/api/mgr/module/telemetry')
+        self.assertStatus(200)
+        self.assertEqual(data['enabled'], enabled)
index ea7beee6d7a50239aa72b9235f21a3258049cc70..f3606ed851870ed6a180632944250007458b5abc 100644 (file)
@@ -6,7 +6,7 @@ import time
 
 from datetime import datetime, timedelta
 
 
 from datetime import datetime, timedelta
 
-from .helper import DashboardTestCase, JObj, JLeaf
+from tasks.mgr.dashboard.helper import DashboardTestCase, JObj, JLeaf
 
 
 class UserTest(DashboardTestCase):
 
 
 class UserTest(DashboardTestCase):
index 70faa2a2b4f98f2aa471bff5aed297262d25445a..37baeb20e41f8643633c732aab1f9d88f9ac6653 100644 (file)
@@ -73,7 +73,7 @@ class MgrTestCase(CephTestCase):
         # Unload all non-default plugins
         loaded = json.loads(cls.mgr_cluster.mon_manager.raw_cluster_cmd(
                    "mgr", "module", "ls"))['enabled_modules']
         # Unload all non-default plugins
         loaded = json.loads(cls.mgr_cluster.mon_manager.raw_cluster_cmd(
                    "mgr", "module", "ls"))['enabled_modules']
-        unload_modules = set(loaded) - {"restful"}
+        unload_modules = set(loaded) - {"cephadm", "restful"}
 
         for m in unload_modules:
             cls.mgr_cluster.mon_manager.raw_cluster_cmd(
 
         for m in unload_modules:
             cls.mgr_cluster.mon_manager.raw_cluster_cmd(
index 149221e9f6075403e77b24359019d3cff99ac7fa..e73f1989078d80d5e1907713117151b8b28c8574 100644 (file)
@@ -1,6 +1,6 @@
 
 
 
 
-from mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 import json
 import logging
 
 import json
 import logging
@@ -74,7 +74,7 @@ class TestCrash(MgrTestCase):
             self.assertIn(crash['crash_id'], retstr)
 
     def test_rm(self):
             self.assertIn(crash['crash_id'], retstr)
 
     def test_rm(self):
-        crashid = self.crashes.keys()[0]
+        crashid = next(iter(self.crashes.keys()))
         self.assertEqual(
             0,
             self.mgr_cluster.mon_manager.raw_cluster_cmd_result(
         self.assertEqual(
             0,
             self.mgr_cluster.mon_manager.raw_cluster_cmd_result(
index 783c492d3f270eefa08412d60a8186d6a98d47f7..44b6602a6da3ad1c45f354f6082aaabcedc769c3 100644 (file)
@@ -1,6 +1,6 @@
 
 
 
 
-from mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 import logging
 import requests
 
 import logging
 import requests
index c483e3abf76e02afada4895b6436efa9a0e06aa8..423a4a8feae7ee92ef303b0e0ec29c5b6bef3eff 100644 (file)
@@ -2,7 +2,8 @@ import logging
 import json
 import datetime
 import time
 import json
 import datetime
 import time
-from mgr_test_case import MgrTestCase
+
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 log = logging.getLogger(__name__)
 UUID = 'd5775432-0742-44a3-a435-45095e32e6b2'
 
 log = logging.getLogger(__name__)
 UUID = 'd5775432-0742-44a3-a435-45095e32e6b2'
index 5232af29905e6e294e78b3e1d7ed55c42273c2c7..db922632374ea0c3267b9b3cf09bdc34d7ed55ab 100644 (file)
@@ -5,7 +5,7 @@ from time import sleep
 
 from teuthology.exceptions import CommandFailedError
 
 
 from teuthology.exceptions import CommandFailedError
 
-from mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
index 18460402efb75db79c58d29f049313958ba25412..40cd3a0cab689fb8c5aca1cd5ed84f218e3c1bac 100644 (file)
@@ -3,7 +3,7 @@ import json
 import logging
 import time
 
 import logging
 import time
 
-from mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
index f91487174dbdb36bc9c1eebce118f4ccf8f42ccd..867d5cd5d6d6d38d2fe2af785bd3c3b14b575397 100644 (file)
@@ -1,6 +1,4 @@
-
-
-from mgr_test_case import MgrTestCase
+from tasks.mgr.mgr_test_case import MgrTestCase
 
 import json
 import logging
 
 import json
 import logging
index f7862cb1354d7b9f9f176d1caf81ca796b9cacd1..59d4169d18b375bf451cb56752859258f31accdb 100644 (file)
@@ -2,8 +2,8 @@
 Handle clock skews in monitors.
 """
 import logging
 Handle clock skews in monitors.
 """
 import logging
-import ceph_manager
 import time
 import time
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index e09e9877b571f2848edfda6e383f4663ee2405de..fa7aa1a8da2f4539ece7469ebc182bc08c78d175 100644 (file)
@@ -2,7 +2,7 @@
 Monitor recovery
 """
 import logging
 Monitor recovery
 """
 import logging
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 
 from teuthology import misc as teuthology
 
 
@@ -55,7 +55,7 @@ def task(ctx, config):
             manager.kill_mon(m)
 
         log.info('forming a minimal quorum for %s, then adding monitors' % mons)
             manager.kill_mon(m)
 
         log.info('forming a minimal quorum for %s, then adding monitors' % mons)
-        qnum = (len(mons) / 2) + 1
+        qnum = (len(mons) // 2) + 1
         num = 0
         for m in mons:
             manager.revive_mon(m)
         num = 0
         for m in mons:
             manager.revive_mon(m)
index 53b1aa5212343df1695ce7b42b9de7263cc11d75..c2a7299f1968327f9336c7f17ec05613d3fb98b4 100644 (file)
@@ -3,11 +3,12 @@ Multibench testing
 """
 import contextlib
 import logging
 """
 import contextlib
 import logging
-import radosbench
 import time
 import copy
 import gevent
 
 import time
 import copy
 import gevent
 
+from tasks import radosbench
+
 log = logging.getLogger(__name__)
 
 @contextlib.contextmanager
 log = logging.getLogger(__name__)
 
 @contextlib.contextmanager
index 82ce432631745b7ae6cf23621d0700449d952946..e4519bb6f3cd7df82f7f6b54f3cd148f37b9349d 100644 (file)
@@ -2,10 +2,10 @@
 Test Object locations going down
 """
 import logging
 Test Object locations going down
 """
 import logging
-import ceph_manager
 import time
 from teuthology import misc as teuthology
 import time
 from teuthology import misc as teuthology
-from util.rados import rados
+from tasks import ceph_manager
+from tasks.util.rados import rados
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 657aa7d55782507e45817a5addd5d9f080274641..3cc4ed8a5ec6fa6a711092dfa0709d6624a713da 100644 (file)
@@ -64,8 +64,9 @@ class OpenSSLKeys(Task):
 
         # use testdir/ca as a working directory
         self.cadir = '/'.join((misc.get_testdir(self.ctx), 'ca'))
 
         # use testdir/ca as a working directory
         self.cadir = '/'.join((misc.get_testdir(self.ctx), 'ca'))
-
-        for name, config in self.config.items():
+        # make sure self-signed certs get added first, they don't have 'ca' field
+        configs = sorted(self.config.items(), key=lambda x: 'ca' in x[1])
+        for name, config in configs:
             # names must be unique to avoid clobbering each others files
             if name in self.ctx.ssl_certificates:
                 raise ConfigError('ssl: duplicate certificate name {}'.format(name))
             # names must be unique to avoid clobbering each others files
             if name in self.ctx.ssl_certificates:
                 raise ConfigError('ssl: duplicate certificate name {}'.format(name))
index 5ad5b79983144817194295c3905e56a8aa3ccda7..b33e1c912ab69768bdac1b3e871f926732788249 100644 (file)
@@ -2,8 +2,8 @@
 Osd backfill test
 """
 import logging
 Osd backfill test
 """
 import logging
-import ceph_manager
 import time
 import time
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 
 from teuthology import misc as teuthology
 
 
index 6aec322ea85b251648b7fd3efd55967de6b14772..4b2cdb983fc0badd033b9b98c03d400997133044 100644 (file)
@@ -7,7 +7,7 @@ import six
 import time
 
 from teuthology.orchestra import run
 import time
 
 from teuthology.orchestra import run
-from util.rados import rados
+from tasks.util.rados import rados
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index a01fe8fea6e89c27368fa43c941b91a5a39a5b7f..b0623c21ba7c2fc1635be5538dc3765f7bc083b1 100644 (file)
@@ -2,8 +2,8 @@
 osd recovery
 """
 import logging
 osd recovery
 """
 import logging
-import ceph_manager
 import time
 import time
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 
 from teuthology import misc as teuthology
 
 
index e5344a1cea0325ee686c92ee2319ef5e2640e630..6b19096b15a1392f6ec390085e5bd379a168d948 100644 (file)
@@ -5,9 +5,9 @@ import logging
 import json
 import time
 
 import json
 import time
 
-import ceph_manager
+from tasks import ceph_manager
+from tasks.util.rados import rados
 from teuthology import misc as teuthology
 from teuthology import misc as teuthology
-from util.rados import rados
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index ab5323856291ab53b6dce1fac12cfb50bfd58c72..9dc658361844170d0d25b6314df7904ef372a87a 100644 (file)
@@ -6,7 +6,7 @@ import time
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
-from args import argify
+from teuthology.task.args import argify
 
 POOLNAME = "POOLNAME"
 ARGS = [
 
 POOLNAME = "POOLNAME"
 ARGS = [
index 0b77ff5d310f1d4b6fc06ca24bd00cf956362576..06c79cb5b4fdcf9bff883d4793566069392f9010 100644 (file)
@@ -1,7 +1,6 @@
 """
 Qemu task
 """
 """
 Qemu task
 """
-from cStringIO import StringIO
 
 import contextlib
 import logging
 
 import contextlib
 import logging
@@ -9,13 +8,12 @@ import os
 import yaml
 import time
 
 import yaml
 import time
 
-from teuthology import misc as teuthology
-from teuthology import contextutil
 from tasks import rbd
 from tasks import rbd
-from teuthology.orchestra import run
+from tasks.util.workunit import get_refspec_after_overrides
+from teuthology import contextutil
+from teuthology import misc as teuthology
 from teuthology.config import config as teuth_config
 from teuthology.config import config as teuth_config
-
-from util.workunit import get_refspec_after_overrides
+from teuthology.orchestra import run
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -122,7 +120,7 @@ def generate_iso(ctx, config):
         userdata_path = os.path.join(testdir, 'qemu', 'userdata.' + client)
         metadata_path = os.path.join(testdir, 'qemu', 'metadata.' + client)
 
         userdata_path = os.path.join(testdir, 'qemu', 'userdata.' + client)
         metadata_path = os.path.join(testdir, 'qemu', 'metadata.' + client)
 
-        with open(os.path.join(src_dir, 'userdata_setup.yaml'), 'rb') as f:
+        with open(os.path.join(src_dir, 'userdata_setup.yaml')) as f:
             test_setup = ''.join(f.readlines())
             # configuring the commands to setup the nfs mount
             mnt_dir = "/export/{client}".format(client=client)
             test_setup = ''.join(f.readlines())
             # configuring the commands to setup the nfs mount
             mnt_dir = "/export/{client}".format(client=client)
@@ -130,7 +128,7 @@ def generate_iso(ctx, config):
                 mnt_dir=mnt_dir
             )
 
                 mnt_dir=mnt_dir
             )
 
-        with open(os.path.join(src_dir, 'userdata_teardown.yaml'), 'rb') as f:
+        with open(os.path.join(src_dir, 'userdata_teardown.yaml')) as f:
             test_teardown = ''.join(f.readlines())
 
         user_data = test_setup
             test_teardown = ''.join(f.readlines())
 
         user_data = test_setup
@@ -172,7 +170,7 @@ def generate_iso(ctx, config):
         user_data = user_data.format(
             ceph_branch=ctx.config.get('branch'),
             ceph_sha1=ctx.config.get('sha1'))
         user_data = user_data.format(
             ceph_branch=ctx.config.get('branch'),
             ceph_sha1=ctx.config.get('sha1'))
-        teuthology.write_file(remote, userdata_path, StringIO(user_data))
+        teuthology.write_file(remote, userdata_path, user_data)
 
         with open(os.path.join(src_dir, 'metadata.yaml'), 'rb') as f:
             teuthology.write_file(remote, metadata_path, f)
 
         with open(os.path.join(src_dir, 'metadata.yaml'), 'rb') as f:
             teuthology.write_file(remote, metadata_path, f)
index 153f0cfa28af302a3cf6bfa9f4d01548246b85b4..edce8dc805bf969b4bd10b36afe16bdb3c8302f2 100644 (file)
@@ -164,8 +164,8 @@ def task(ctx, config):
         '--objects', str(config.get('objects', 500)),
         '--max-in-flight', str(config.get('max_in_flight', 16)),
         '--size', str(object_size),
         '--objects', str(config.get('objects', 500)),
         '--max-in-flight', str(config.get('max_in_flight', 16)),
         '--size', str(object_size),
-        '--min-stride-size', str(config.get('min_stride_size', object_size / 10)),
-        '--max-stride-size', str(config.get('max_stride_size', object_size / 5)),
+        '--min-stride-size', str(config.get('min_stride_size', object_size // 10)),
+        '--max-stride-size', str(config.get('max_stride_size', object_size // 5)),
         '--max-seconds', str(config.get('max_seconds', 0))
         ])
 
         '--max-seconds', str(config.get('max_seconds', 0))
         ])
 
@@ -201,11 +201,11 @@ def task(ctx, config):
 
     if config.get('write_append_excl', True):
         if 'write' in weights:
 
     if config.get('write_append_excl', True):
         if 'write' in weights:
-            weights['write'] = weights['write'] / 2
+            weights['write'] = weights['write'] // 2
             weights['write_excl'] = weights['write']
 
         if 'append' in weights:
             weights['write_excl'] = weights['write']
 
         if 'append' in weights:
-            weights['append'] = weights['append'] / 2
+            weights['append'] = weights['append'] // 2
             weights['append_excl'] = weights['append']
 
     for op, weight in weights.items():
             weights['append_excl'] = weights['append']
 
     for op, weight in weights.items():
index 90b21a5d88b26620c7d35b917d1d85be81288944..a2c4f069353ec1ce66221f012795e11a6fd79732 100644 (file)
@@ -83,15 +83,13 @@ def task(ctx, config):
             else:
                 pool = manager.create_pool_with_unique_name(erasure_code_profile_name=profile_name)
 
             else:
                 pool = manager.create_pool_with_unique_name(erasure_code_profile_name=profile_name)
 
-        size = config.get('size', 65536)
         concurrency = config.get('concurrency', 16)
         osize = config.get('objectsize', 65536)
         concurrency = config.get('concurrency', 16)
         osize = config.get('objectsize', 65536)
-        sizeargs = ['-b', str(size)]
-        if osize != 0 and osize != size:
-            # only use -O if this varies from size. kludgey workaround the
-            # fact that -O was -o in older releases.
-            sizeargs.extend(['-O', str(osize)])
-
+        if osize == 0:
+            objectsize = []
+        else:
+            objectsize = ['--object-size', str(osize)]
+        size = ['-b', str(config.get('size', 65536))]
         # If doing a reading run then populate data
         if runtype != "write":
             proc = remote.run(
         # If doing a reading run then populate data
         if runtype != "write":
             proc = remote.run(
@@ -102,9 +100,9 @@ def task(ctx, config):
                               '{tdir}/archive/coverage',
                               'rados',
                               '--no-log-to-stderr',
                               '{tdir}/archive/coverage',
                               'rados',
                               '--no-log-to-stderr',
-                              '--name', role]
-                              + sizeargs +
-                              ['-t', str(concurrency)] +
+                              '--name', role] +
+                              ['-t', str(concurrency)]
+                              + size + objectsize +
                               ['-p' , pool,
                           'bench', str(60), "write", "--no-cleanup"
                           ]).format(tdir=testdir),
                               ['-p' , pool,
                           'bench', str(60), "write", "--no-cleanup"
                           ]).format(tdir=testdir),
@@ -112,7 +110,8 @@ def task(ctx, config):
             logger=log.getChild('radosbench.{id}'.format(id=id_)),
             wait=True
             )
             logger=log.getChild('radosbench.{id}'.format(id=id_)),
             wait=True
             )
-            sizeargs = []
+            size = []
+            objectsize = []
 
         proc = remote.run(
             args=[
 
         proc = remote.run(
             args=[
@@ -123,7 +122,7 @@ def task(ctx, config):
                           'rados',
                          '--no-log-to-stderr',
                           '--name', role]
                           'rados',
                          '--no-log-to-stderr',
                           '--name', role]
-                          + sizeargs +
+                          + size + objectsize +
                           ['-p' , pool,
                           'bench', str(config.get('time', 360)), runtype,
                           ] + write_to_omap + cleanup).format(tdir=testdir),
                           ['-p' , pool,
                           'bench', str(config.get('time', 360)), runtype,
                           ] + write_to_omap + cleanup).format(tdir=testdir),
index e91c3d835a3200c0e5043bf4b189d270c566ba19..092d83fd8e262fc3c12e1fbd1d06b75230e691c6 100644 (file)
@@ -14,11 +14,12 @@ import json
 import logging
 import time
 import datetime
 import logging
 import time
 import datetime
-import Queue
+from six.moves import queue
 
 import sys
 
 import sys
+import six
 
 
-from cStringIO import StringIO
+from io import BytesIO
 
 import boto.exception
 import boto.s3.connection
 
 import boto.exception
 import boto.s3.connection
@@ -27,7 +28,7 @@ import boto.s3.acl
 import httplib2
 
 
 import httplib2
 
 
-from util.rgw import rgwadmin, get_user_summary, get_user_successful_ops
+from tasks.util.rgw import rgwadmin, get_user_summary, get_user_successful_ops
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -97,7 +98,7 @@ class usage_acc:
     def update(self, c, cat, user, out, b_in, err):
         x = self.c2x(c, cat)
         usage_acc_update2(x, out, b_in, err)
     def update(self, c, cat, user, out, b_in, err):
         x = self.c2x(c, cat)
         usage_acc_update2(x, out, b_in, err)
-        if not err and cat == 'create_bucket' and not x.has_key('owner'):
+        if not err and cat == 'create_bucket' and 'owner' not in x:
             x['owner'] = user
     def make_entry(self, cat, bucket, user, out, b_in, err):
         if cat == 'create_bucket' and err:
             x['owner'] = user
     def make_entry(self, cat, bucket, user, out, b_in, err):
         if cat == 'create_bucket' and err:
@@ -115,7 +116,7 @@ class usage_acc:
     def get_usage(self):
         return self.results
     def compare_results(self, results):
     def get_usage(self):
         return self.results
     def compare_results(self, results):
-        if not results.has_key('entries') or not results.has_key('summary'):
+        if 'entries' not in results or 'summary' not in results:
             return ['Missing entries or summary']
         r = []
         for e in self.results['entries']:
             return ['Missing entries or summary']
         r = []
         for e in self.results['entries']:
@@ -195,7 +196,7 @@ def ignore_this_entry(cat, bucket, user, out, b_in, err):
     pass
 class requestlog_queue():
     def __init__(self, add):
     pass
 class requestlog_queue():
     def __init__(self, add):
-        self.q = Queue.Queue(1000)
+        self.q = queue.Queue(1000)
         self.adder = add
     def handle_request_data(self, request, response, error=False):
         now = datetime.datetime.now()
         self.adder = add
     def handle_request_data(self, request, response, error=False):
         now = datetime.datetime.now()
@@ -214,8 +215,9 @@ class requestlog_queue():
             if 'Content-Length' in j['o'].headers:
                 bytes_out = int(j['o'].headers['Content-Length'])
             bytes_in = 0
             if 'Content-Length' in j['o'].headers:
                 bytes_out = int(j['o'].headers['Content-Length'])
             bytes_in = 0
-            if 'content-length' in j['i'].msg.dict:
-                bytes_in = int(j['i'].msg.dict['content-length'])
+            msg = j['i'].msg if six.PY3 else j['i'].msg.dict
+            if 'content-length'in msg:
+                bytes_in = int(msg['content-length'])
             log.info('RL: %s %s %s bytes_out=%d bytes_in=%d failed=%r'
                      % (cat, bucket, user, bytes_out, bytes_in, j['e']))
             if add_entry == None:
             log.info('RL: %s %s %s bytes_out=%d bytes_in=%d failed=%r'
                      % (cat, bucket, user, bytes_out, bytes_in, j['e']))
             if add_entry == None:
@@ -243,7 +245,7 @@ def get_acl(key):
     Helper function to get the xml acl from a key, ensuring that the xml
     version tag is removed from the acl response
     """
     Helper function to get the xml acl from a key, ensuring that the xml
     version tag is removed from the acl response
     """
-    raw_acl = key.get_xml_acl()
+    raw_acl = six.ensure_str(key.get_xml_acl())
 
     def remove_version(string):
         return string.split(
 
     def remove_version(string):
         return string.split(
@@ -271,7 +273,7 @@ def task(ctx, config):
     clients_from_config = config.keys()
 
     # choose first client as default
     clients_from_config = config.keys()
 
     # choose first client as default
-    client = clients_from_config[0]
+    client = next(iter(clients_from_config))
 
     # once the client is chosen, pull the host name and  assigned port out of
     # the role_endpoints that were assigned by the rgw task
 
     # once the client is chosen, pull the host name and  assigned port out of
     # the role_endpoints that were assigned by the rgw task
@@ -662,7 +664,7 @@ def task(ctx, config):
     rl.log_and_clear("put_obj", bucket_name, user1)
 
     # fetch it too (for usage stats presently)
     rl.log_and_clear("put_obj", bucket_name, user1)
 
     # fetch it too (for usage stats presently)
-    s = key.get_contents_as_string()
+    s = key.get_contents_as_string(encoding='ascii')
     rl.log_and_clear("get_obj", bucket_name, user1)
     assert s == object_name
     # list bucket too (for usage stats presently)
     rl.log_and_clear("get_obj", bucket_name, user1)
     assert s == object_name
     # list bucket too (for usage stats presently)
@@ -798,7 +800,7 @@ def task(ctx, config):
     rl.log_and_clear("put_acls", bucket_name, user1)
 
     (err, out) = rgwadmin(ctx, client,
     rl.log_and_clear("put_acls", bucket_name, user1)
 
     (err, out) = rgwadmin(ctx, client,
-        ['policy', '--bucket', bucket.name, '--object', key.key],
+        ['policy', '--bucket', bucket.name, '--object', six.ensure_str(key.key)],
         check_status=True, format='xml')
 
     acl = get_acl(key)
         check_status=True, format='xml')
 
     acl = get_acl(key)
@@ -811,7 +813,7 @@ def task(ctx, config):
     rl.log_and_clear("put_acls", bucket_name, user1)
 
     (err, out) = rgwadmin(ctx, client,
     rl.log_and_clear("put_acls", bucket_name, user1)
 
     (err, out) = rgwadmin(ctx, client,
-        ['policy', '--bucket', bucket.name, '--object', key.key],
+        ['policy', '--bucket', bucket.name, '--object', six.ensure_str(key.key)],
         check_status=True, format='xml')
 
     acl = get_acl(key)
         check_status=True, format='xml')
 
     acl = get_acl(key)
@@ -941,7 +943,7 @@ def task(ctx, config):
 
     # get bucket and object to test if user keys are preserved
     bucket = connection3.get_bucket(bucket_name + '6')
 
     # get bucket and object to test if user keys are preserved
     bucket = connection3.get_bucket(bucket_name + '6')
-    s = key1.get_contents_as_string()
+    s = key1.get_contents_as_string(encoding='ascii')
     rl.log_and_clear("get_obj", bucket_name + '6', user4)
     assert s == object_name1
 
     rl.log_and_clear("get_obj", bucket_name + '6', user4)
     assert s == object_name1
 
@@ -973,12 +975,12 @@ def task(ctx, config):
 
     # test if user 2 and user4 can still access their bucket and objects after rename fails
     bucket = connection3.get_bucket(bucket_name + '6')
 
     # test if user 2 and user4 can still access their bucket and objects after rename fails
     bucket = connection3.get_bucket(bucket_name + '6')
-    s = key1.get_contents_as_string()
+    s = key1.get_contents_as_string(encoding='ascii')
     rl.log_and_clear("get_obj", bucket_name + '6', user4)
     assert s == object_name1
 
     bucket = connection2.get_bucket(bucket_name + '7')
     rl.log_and_clear("get_obj", bucket_name + '6', user4)
     assert s == object_name1
 
     bucket = connection2.get_bucket(bucket_name + '7')
-    s = key2.get_contents_as_string()
+    s = key2.get_contents_as_string(encoding='ascii')
     rl.log_and_clear("get_obj", bucket_name + '7', user2)
     assert s == object_name2
 
     rl.log_and_clear("get_obj", bucket_name + '7', user2)
     assert s == object_name2
 
@@ -1038,7 +1040,7 @@ def task(ctx, config):
     out['placement_pools'].append(rule)
 
     (err, out) = rgwadmin(ctx, client, ['zone', 'set'],
     out['placement_pools'].append(rule)
 
     (err, out) = rgwadmin(ctx, client, ['zone', 'set'],
-        stdin=StringIO(json.dumps(out)),
+        stdin=BytesIO(six.ensure_binary(json.dumps(out))),
         check_status=True)
 
     (err, out) = rgwadmin(ctx, client, ['zone', 'get'])
         check_status=True)
 
     (err, out) = rgwadmin(ctx, client, ['zone', 'get'])
@@ -1071,16 +1073,15 @@ def main():
     client0 = remote.Remote(user + host)
     ctx = config
     ctx.cluster=cluster.Cluster(remotes=[(client0,
     client0 = remote.Remote(user + host)
     ctx = config
     ctx.cluster=cluster.Cluster(remotes=[(client0,
-     [ 'ceph.client.rgw.%s' % (host),  ]),])
-
+        [ 'ceph.client.rgw.%s' % (host),  ]),])
     ctx.rgw = argparse.Namespace()
     endpoints = {}
     endpoints['ceph.client.rgw.%s' % host] = (host, 80)
     ctx.rgw.role_endpoints = endpoints
     ctx.rgw.realm = None
     ctx.rgw.regions = {'region0': { 'api name': 'api1',
     ctx.rgw = argparse.Namespace()
     endpoints = {}
     endpoints['ceph.client.rgw.%s' % host] = (host, 80)
     ctx.rgw.role_endpoints = endpoints
     ctx.rgw.realm = None
     ctx.rgw.regions = {'region0': { 'api name': 'api1',
-           'is master': True, 'master zone': 'r0z0',
-           'zones': ['r0z0', 'r0z1'] }}
+        'is master': True, 'master zone': 'r0z0',
+        'zones': ['r0z0', 'r0z1'] }}
     ctx.rgw.config = {'ceph.client.rgw.%s' % host: {'system user': {'name': '%s-system-user' % host}}}
     task(config, None)
     exit()
     ctx.rgw.config = {'ceph.client.rgw.%s' % host: {'system user': {'name': '%s-system-user' % host}}}
     task(config, None)
     exit()
index 50f88ea85700890f025a9c5e71a7c204b11840f1..df3fa7a1d1737ea727602245918ceae6f15c663e 100644 (file)
@@ -19,7 +19,7 @@ import time
 
 from boto.connection import AWSAuthConnection
 from teuthology import misc as teuthology
 
 from boto.connection import AWSAuthConnection
 from teuthology import misc as teuthology
-from util.rgw import get_user_summary, get_user_successful_ops, rgwadmin
+from tasks.util.rgw import get_user_summary, get_user_successful_ops, rgwadmin
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -130,7 +130,7 @@ def task(ctx, config):
     clients = config.keys()
 
     # just use the first client...
     clients = config.keys()
 
     # just use the first client...
-    client = clients[0]
+    client = next(iter(clients))
 
     ##
     admin_user = 'ada'
 
     ##
     admin_user = 'ada'
index cc63ce74247a988f47f55a22517a6a797a86adb8..052992a498b0c2c5aaf1276dfd4ab63d13a93f7d 100644 (file)
@@ -1,13 +1,14 @@
 """
 Run a set of s3 tests on rgw.
 """
 """
 Run a set of s3 tests on rgw.
 """
-from cStringIO import StringIO
+from io import BytesIO
 from configobj import ConfigObj
 import base64
 import contextlib
 import logging
 import os
 import random
 from configobj import ConfigObj
 import base64
 import contextlib
 import logging
 import os
 import random
+import six
 import string
 
 from teuthology import misc as teuthology
 import string
 
 from teuthology import misc as teuthology
@@ -100,8 +101,8 @@ def _config_user(ragweed_conf, section, user):
     ragweed_conf[section].setdefault('user_id', user)
     ragweed_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     ragweed_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
     ragweed_conf[section].setdefault('user_id', user)
     ragweed_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     ragweed_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
-    ragweed_conf[section].setdefault('access_key', ''.join(random.choice(string.uppercase) for i in range(20)))
-    ragweed_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)))
+    ragweed_conf[section].setdefault('access_key', ''.join(random.choice(string.ascii_uppercase) for i in range(20)))
+    ragweed_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)).decode('ascii'))
 
 
 @contextlib.contextmanager
 
 
 @contextlib.contextmanager
@@ -112,7 +113,7 @@ def create_users(ctx, config, run_stages):
     assert isinstance(config, dict)
 
     for client, properties in config['config'].items():
     assert isinstance(config, dict)
 
     for client, properties in config['config'].items():
-        run_stages[client] = string.split(properties.get('stages', 'prepare,check'), ',')
+        run_stages[client] = properties.get('stages', 'prepare,check').split(',')
 
     log.info('Creating rgw users...')
     testdir = teuthology.get_testdir(ctx)
 
     log.info('Creating rgw users...')
     testdir = teuthology.get_testdir(ctx)
@@ -155,7 +156,7 @@ def create_users(ctx, config, run_stages):
             if not 'check' in run_stages[client]:
                 # only remove user if went through the check stage
                 continue
             if not 'check' in run_stages[client]:
                 # only remove user if went through the check stage
                 continue
-            for user in users.itervalues():
+            for user in users.values():
                 uid = '{user}.{client}'.format(user=user, client=client)
                 ctx.cluster.only(client).run(
                     args=[
                 uid = '{user}.{client}'.format(user=user, client=client)
                 ctx.cluster.only(client).run(
                     args=[
@@ -200,7 +201,7 @@ def configure(ctx, config, run_stages):
         if properties is not None and 'slow_backend' in properties:
             ragweed_conf['fixtures']['slow backend'] = properties['slow_backend']
 
         if properties is not None and 'slow_backend' in properties:
             ragweed_conf['fixtures']['slow backend'] = properties['slow_backend']
 
-        conf_fp = StringIO()
+        conf_fp = BytesIO()
         ragweed_conf.write(conf_fp)
         teuthology.write_file(
             remote=remote,
         ragweed_conf.write(conf_fp)
         teuthology.write_file(
             remote=remote,
@@ -211,7 +212,7 @@ def configure(ctx, config, run_stages):
     log.info('Configuring boto...')
     boto_src = os.path.join(os.path.dirname(__file__), 'boto.cfg.template')
     for client, properties in config['clients'].items():
     log.info('Configuring boto...')
     boto_src = os.path.join(os.path.dirname(__file__), 'boto.cfg.template')
     for client, properties in config['clients'].items():
-        with open(boto_src, 'rb') as f:
+        with open(boto_src, 'r') as f:
             (remote,) = ctx.cluster.only(client).remotes.keys()
             conf = f.read().format(
                 idle_timeout=config.get('idle_timeout', 30)
             (remote,) = ctx.cluster.only(client).remotes.keys()
             conf = f.read().format(
                 idle_timeout=config.get('idle_timeout', 30)
@@ -248,7 +249,7 @@ def run_tests(ctx, config, run_stages):
     testdir = teuthology.get_testdir(ctx)
     attrs = ["!fails_on_rgw"]
     for client, client_config in config.items():
     testdir = teuthology.get_testdir(ctx)
     attrs = ["!fails_on_rgw"]
     for client, client_config in config.items():
-        stages = string.join(run_stages[client], ',')
+        stages = ','.join(run_stages[client])
         args = [
             'RAGWEED_CONF={tdir}/archive/ragweed.{client}.conf'.format(tdir=testdir, client=client),
             'RAGWEED_STAGES={stages}'.format(stages=stages),
         args = [
             'RAGWEED_CONF={tdir}/archive/ragweed.{client}.conf'.format(tdir=testdir, client=client),
             'RAGWEED_STAGES={stages}'.format(stages=stages),
index faa094dabebbdb7c6aa4d8bd9278b80291f5489a..6d066a6f23c2b6f784935463e8304a0dd0163f4b 100644 (file)
@@ -7,7 +7,7 @@ import os
 import tempfile
 import sys
 
 import tempfile
 import sys
 
-from cStringIO import StringIO
+from io import BytesIO
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology import contextutil
@@ -303,12 +303,12 @@ def canonical_path(ctx, role, path):
     representing the given role.  A canonical path contains no
     . or .. components, and includes no symbolic links.
     """
     representing the given role.  A canonical path contains no
     . or .. components, and includes no symbolic links.
     """
-    version_fp = StringIO()
+    version_fp = BytesIO()
     ctx.cluster.only(role).run(
         args=[ 'readlink', '-f', path ],
         stdout=version_fp,
         )
     ctx.cluster.only(role).run(
         args=[ 'readlink', '-f', path ],
         stdout=version_fp,
         )
-    canonical_path = version_fp.getvalue().rstrip('\n')
+    canonical_path = six.ensure_str(version_fp.getvalue()).rstrip('\n')
     version_fp.close()
     return canonical_path
 
     version_fp.close()
     return canonical_path
 
@@ -413,9 +413,10 @@ def run_xfstests_one_client(ctx, role, properties):
         log.info('         randomize: {randomize}'.format(randomize=randomize))
 
         if exclude_list:
         log.info('         randomize: {randomize}'.format(randomize=randomize))
 
         if exclude_list:
-            with tempfile.NamedTemporaryFile(bufsize=0, prefix='exclude') as exclude_file:
+            with tempfile.NamedTemporaryFile(mode='w', prefix='exclude') as exclude_file:
                 for test in exclude_list:
                     exclude_file.write("{}\n".format(test))
                 for test in exclude_list:
                     exclude_file.write("{}\n".format(test))
+                exclude_file.flush()
                 remote.put_file(exclude_file.name, exclude_file.name)
 
         # Note that the device paths are interpreted using
                 remote.put_file(exclude_file.name, exclude_file.name)
 
         # Note that the device paths are interpreted using
index 791cfd00af12bd511cb0b48011a62ce2e1edd998..decc60c268bc43ba48d9a360318ac57171338abb 100644 (file)
@@ -9,7 +9,6 @@ import contextlib
 import json
 import logging
 import os
 import json
 import logging
 import os
-import StringIO
 
 from teuthology.parallel import parallel
 from teuthology import misc as teuthology
 
 from teuthology.parallel import parallel
 from teuthology import misc as teuthology
@@ -77,10 +76,8 @@ def get_ioengine_package_name(ioengine, remote):
 
 def run_rbd_map(remote, image, iodepth):
     iodepth = max(iodepth, 128)  # RBD_QUEUE_DEPTH_DEFAULT
 
 def run_rbd_map(remote, image, iodepth):
     iodepth = max(iodepth, 128)  # RBD_QUEUE_DEPTH_DEFAULT
-    out = StringIO.StringIO()
-    remote.run(args=['sudo', 'rbd', 'device', 'map', '-o',
-                     'queue_depth={}'.format(iodepth), image], stdout=out)
-    dev = out.getvalue().rstrip('\n')
+    dev = remote.sh(['sudo', 'rbd', 'device', 'map', '-o',
+                     'queue_depth={}'.format(iodepth), image]).rstrip('\n')
     teuthology.sudo_write_file(
         remote,
         '/sys/block/{}/queue/nr_requests'.format(os.path.basename(dev)),
     teuthology.sudo_write_file(
         remote,
         '/sys/block/{}/queue/nr_requests'.format(os.path.basename(dev)),
@@ -94,7 +91,7 @@ def run_fio(remote, config, rbd_test_dir):
     get the fio from github, generate binary, and use it to run on
     the generated fio config file
     """
     get the fio from github, generate binary, and use it to run on
     the generated fio config file
     """
-    fio_config=NamedTemporaryFile(prefix='fio_rbd_', dir='/tmp/', delete=False)
+    fio_config=NamedTemporaryFile(mode='w', prefix='fio_rbd_', dir='/tmp/', delete=False)
     fio_config.write('[global]\n')
     if config.get('io-engine'):
         ioengine=config['io-engine']
     fio_config.write('[global]\n')
     if config.get('io-engine'):
         ioengine=config['io-engine']
@@ -214,9 +211,8 @@ def run_fio(remote, config, rbd_test_dir):
         remote.run(args=['sudo', run.Raw('{tdir}/fio-fio-{v}/fio {f}'.format(tdir=rbd_test_dir,v=fio_version,f=fio_config.name))])
         remote.run(args=['ceph', '-s'])
     finally:
         remote.run(args=['sudo', run.Raw('{tdir}/fio-fio-{v}/fio {f}'.format(tdir=rbd_test_dir,v=fio_version,f=fio_config.name))])
         remote.run(args=['ceph', '-s'])
     finally:
-        out=StringIO.StringIO()
-        remote.run(args=['rbd', 'device', 'list', '--format=json'], stdout=out)
-        mapped_images = json.loads(out.getvalue())
+        out = remote.sh('rbd device list --format=json')
+        mapped_images = json.loads(out)
         if mapped_images:
             log.info("Unmapping rbd images on {sn}".format(sn=sn))
             for image in mapped_images:
         if mapped_images:
             log.info("Unmapping rbd images on {sn}".format(sn=sn))
             for image in mapped_images:
index 880ec305828d65ef1eee57d9f4b6fd82facc5062..5d6d1b2b6eb252ff08313ac2c19083b60f74d419 100644 (file)
@@ -8,7 +8,7 @@ from teuthology.orchestra import run
 from teuthology import misc
 from teuthology.exceptions import ConfigError
 from teuthology.task import Task
 from teuthology import misc
 from teuthology.exceptions import ConfigError
 from teuthology.task import Task
-from util import get_remote_for_role
+from tasks.util import get_remote_for_role
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 7877f22ab3ead223989e973e36a920d17e1541ec..008e312e2d3d8753ac3b9b6a148ed8a4c52c3bb3 100644 (file)
@@ -8,7 +8,7 @@ import os.path
 import shutil
 import tempfile
 
 import shutil
 import tempfile
 
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index 1059fda712539978c815540e4ffc0068de27839b..86cfbf39a0183ddcc1c72479498d14f727db83fc 100644 (file)
@@ -12,7 +12,7 @@ import time
 from teuthology.exceptions import CommandFailedError
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology.exceptions import CommandFailedError
 from teuthology.orchestra import run
 from teuthology import misc as teuthology
-from util.rados import rados
+from tasks.util.rados import rados
 import os
 
 
 import os
 
 
index 8ed55145b7ba3f9be10a3e0de02aadd8ad81411e..d422a33bb46cd0202911d4b80d32494f7f33e3a7 100644 (file)
@@ -2,11 +2,12 @@
 Lost_unfound
 """
 import logging
 Lost_unfound
 """
 import logging
-from teuthology.orchestra import run
-import ceph_manager
 import time
 import time
+
+from tasks import ceph_manager
+from tasks.util.rados import rados
 from teuthology import misc as teuthology
 from teuthology import misc as teuthology
-from util.rados import rados
+from teuthology.orchestra import run
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 9b383fd683eb3f32d5f26e389c874ff51942d585..d140544c4945a022efcf8aa4041767c54e6681d0 100644 (file)
@@ -5,7 +5,7 @@ import logging
 import time
 
 from teuthology import misc as teuthology
 import time
 
 from teuthology import misc as teuthology
-from util.rados import rados
+from tasks.util.rados import rados
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 2d99d9962f1cf5dcc6b11a7715c06fdef9987137..75004c87a4595041b1dd215641900ff80ef57961 100644 (file)
@@ -9,11 +9,11 @@ from teuthology.orchestra import run
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.exceptions import ConfigError
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.exceptions import ConfigError
-from util import get_remote_for_role
-from util.rgw import rgwadmin, wait_for_radosgw
-from util.rados import (create_ec_pool,
-                        create_replicated_pool,
-                        create_cache_pool)
+from tasks.util import get_remote_for_role
+from tasks.util.rgw import rgwadmin, wait_for_radosgw
+from tasks.util.rados import (create_ec_pool,
+                              create_replicated_pool,
+                              create_cache_pool)
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -104,9 +104,9 @@ def start_rgw(ctx, config, clients):
                 ])
 
 
                 ])
 
 
-        if client_config.get('dns-name'):
+        if client_config.get('dns-name') is not None:
             rgw_cmd.extend(['--rgw-dns-name', endpoint.dns_name])
             rgw_cmd.extend(['--rgw-dns-name', endpoint.dns_name])
-        if client_config.get('dns-s3website-name'):
+        if client_config.get('dns-s3website-name') is not None:
             rgw_cmd.extend(['--rgw-dns-s3website-name', endpoint.website_dns_name])
 
 
             rgw_cmd.extend(['--rgw-dns-s3website-name', endpoint.website_dns_name])
 
 
@@ -223,9 +223,8 @@ def assign_endpoints(ctx, config, default_cert):
             dns_name += remote.hostname
 
         website_dns_name = client_config.get('dns-s3website-name')
             dns_name += remote.hostname
 
         website_dns_name = client_config.get('dns-s3website-name')
-        if website_dns_name:
-            if len(website_dns_name) == 0 or website_dns_name.endswith('.'):
-                website_dns_name += remote.hostname
+        if website_dns_name is not None and (len(website_dns_name) == 0 or website_dns_name.endswith('.')):
+            website_dns_name += remote.hostname
 
         role_endpoints[role] = RGWEndpoint(remote.hostname, port, ssl_certificate, dns_name, website_dns_name)
 
 
         role_endpoints[role] = RGWEndpoint(remote.hostname, port, ssl_certificate, dns_name, website_dns_name)
 
index db6bbcb2ee0f798ffb43ee370691ca93b634439a..d76e59d7f66a63ab0ca9a0f6359ceb1c9f2c8133 100644 (file)
@@ -1,11 +1,11 @@
 """
 rgw s3tests logging wrappers
 """
 """
 rgw s3tests logging wrappers
 """
-from cStringIO import StringIO
+from io import BytesIO
 from configobj import ConfigObj
 import contextlib
 import logging
 from configobj import ConfigObj
 import contextlib
 import logging
-import s3tests
+from tasks import s3tests
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
@@ -68,7 +68,7 @@ def run_tests(ctx, config):
 
     s3tests.run_tests(ctx, config)
 
 
     s3tests.run_tests(ctx, config)
 
-    netcat_out = StringIO()
+    netcat_out = BytesIO()
 
     for client, client_config in config.items():
         ctx.cluster.only(client).run(
 
     for client, client_config in config.items():
         ctx.cluster.only(client).run(
index 5400020db751b233e173a3c8757c817063a6e824..266d0fb694fd7b51ce6978fc06c452a1649073fc 100644 (file)
@@ -6,11 +6,11 @@ import logging
 import random
 import string
 from copy import deepcopy
 import random
 import string
 from copy import deepcopy
-from util.rgw import rgwadmin, wait_for_radosgw
-from util.rados import create_ec_pool, create_replicated_pool
-from rgw_multi import multisite
-from rgw_multi.zone_rados import RadosZone as RadosZone
-from rgw_multi.zone_ps import PSZone as PSZone
+from tasks.util.rgw import rgwadmin, wait_for_radosgw
+from tasks.util.rados import create_ec_pool, create_replicated_pool
+from tasks.rgw_multi import multisite
+from tasks.rgw_multi.zone_rados import RadosZone as RadosZone
+from tasks.rgw_multi.zone_ps import PSZone as PSZone
 
 from teuthology.orchestra import run
 from teuthology import misc
 
 from teuthology.orchestra import run
 from teuthology import misc
index dee6bfaa303966cd9569fe660433b6e81b6362d8..53aedf79248dd8c1cfe924e744f08066b82d02fb 100644 (file)
@@ -9,7 +9,7 @@ from teuthology.exceptions import ConfigError
 from teuthology.task import Task
 from teuthology import misc
 
 from teuthology.task import Task
 from teuthology import misc
 
-from rgw_multi import multisite, tests, tests_ps
+from tasks.rgw_multi import multisite, tests, tests_ps
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 5adb6fd5bcb817752fbf242c4c5a0b600347a6ba..c0266b6d2f6c2ca570672e4483e3bf3ff835325e 100644 (file)
@@ -1,13 +1,14 @@
 """
 Run a set of s3 tests on rgw.
 """
 """
 Run a set of s3 tests on rgw.
 """
-from cStringIO import StringIO
+from io import BytesIO
 from configobj import ConfigObj
 import base64
 import contextlib
 import logging
 import os
 import random
 from configobj import ConfigObj
 import base64
 import contextlib
 import logging
 import os
 import random
+import six
 import string
 
 from teuthology import misc as teuthology
 import string
 
 from teuthology import misc as teuthology
@@ -78,10 +79,14 @@ def _config_user(s3tests_conf, section, user):
     s3tests_conf[section].setdefault('user_id', user)
     s3tests_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     s3tests_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
     s3tests_conf[section].setdefault('user_id', user)
     s3tests_conf[section].setdefault('email', '{user}+test@test.test'.format(user=user))
     s3tests_conf[section].setdefault('display_name', 'Mr. {user}'.format(user=user))
-    s3tests_conf[section].setdefault('access_key', ''.join(random.choice(string.uppercase) for i in range(20)))
-    s3tests_conf[section].setdefault('secret_key', base64.b64encode(os.urandom(40)))
-    s3tests_conf[section].setdefault('totp_serial', ''.join(random.choice(string.digits) for i in range(10)))
-    s3tests_conf[section].setdefault('totp_seed', base64.b32encode(os.urandom(40)))
+    s3tests_conf[section].setdefault('access_key',
+        ''.join(random.choice(string.ascii_uppercase) for i in range(20)))
+    s3tests_conf[section].setdefault('secret_key',
+        six.ensure_str(base64.b64encode(os.urandom(40))))
+    s3tests_conf[section].setdefault('totp_serial',
+        ''.join(random.choice(string.digits) for i in range(10)))
+    s3tests_conf[section].setdefault('totp_seed',
+        six.ensure_str(base64.b32encode(os.urandom(40))))
     s3tests_conf[section].setdefault('totp_seconds', '5')
 
 
     s3tests_conf[section].setdefault('totp_seconds', '5')
 
 
@@ -141,7 +146,7 @@ def create_users(ctx, config):
         yield
     finally:
         for client in config['clients']:
         yield
     finally:
         for client in config['clients']:
-            for user in users.itervalues():
+            for user in users.values():
                 uid = '{user}.{client}'.format(user=user, client=client)
                 cluster_name, daemon_type, client_id = teuthology.split_role(client)
                 client_with_id = daemon_type + '.' + client_id
                 uid = '{user}.{client}'.format(user=user, client=client)
                 cluster_name, daemon_type, client_id = teuthology.split_role(client)
                 client_with_id = daemon_type + '.' + client_id
@@ -229,7 +234,7 @@ def configure(ctx, config):
                 './bootstrap',
                 ],
             )
                 './bootstrap',
                 ],
             )
-        conf_fp = StringIO()
+        conf_fp = BytesIO()
         s3tests_conf.write(conf_fp)
         teuthology.write_file(
             remote=remote,
         s3tests_conf.write(conf_fp)
         teuthology.write_file(
             remote=remote,
@@ -242,13 +247,13 @@ def configure(ctx, config):
     for client, properties in config['clients'].items():
         with open(boto_src, 'rb') as f:
             (remote,) = ctx.cluster.only(client).remotes.keys()
     for client, properties in config['clients'].items():
         with open(boto_src, 'rb') as f:
             (remote,) = ctx.cluster.only(client).remotes.keys()
-            conf = f.read().format(
+            conf = six.ensure_str(f.read()).format(
                 idle_timeout=config.get('idle_timeout', 30)
                 )
             teuthology.write_file(
                 remote=remote,
                 path='{tdir}/boto.cfg'.format(tdir=testdir),
                 idle_timeout=config.get('idle_timeout', 30)
                 )
             teuthology.write_file(
                 remote=remote,
                 path='{tdir}/boto.cfg'.format(tdir=testdir),
-                data=conf,
+                data=six.ensure_binary(conf),
                 )
 
     try:
                 )
 
     try:
index 5ccf46e8a43dd035c72c4da501a0250c35654db8..1f8afd9eef8dde91cabcbd1c0d3afd9b61d1d1ef 100644 (file)
@@ -1,7 +1,7 @@
 """
 Task for running RGW S3 tests with the AWS Java SDK
 """
 """
 Task for running RGW S3 tests with the AWS Java SDK
 """
-from cStringIO import StringIO
+from io import BytesIO
 import logging
 
 import base64
 import logging
 
 import base64
@@ -117,7 +117,7 @@ class S3tests_java(Task):
                 repo,
                 '{tdir}/s3-tests-java'.format(tdir=testdir),
             ],
                 repo,
                 '{tdir}/s3-tests-java'.format(tdir=testdir),
             ],
-            stdout=StringIO()
+            stdout=BytesIO()
         )
         if client in self.config and self.config[client] is not None:
             if 'sha1' in self.config[client] and self.config[client]['sha1'] is not None:
         )
         if client in self.config and self.config[client] is not None:
             if 'sha1' in self.config[client] and self.config[client]['sha1'] is not None:
@@ -156,7 +156,7 @@ class S3tests_java(Task):
         testdir = teuthology.get_testdir(self.ctx)
         self.ctx.cluster.only(client).run(
             args=['{tdir}/s3-tests-java/bootstrap.sh'.format(tdir=testdir)],
         testdir = teuthology.get_testdir(self.ctx)
         self.ctx.cluster.only(client).run(
             args=['{tdir}/s3-tests-java/bootstrap.sh'.format(tdir=testdir)],
-            stdout=StringIO()
+            stdout=BytesIO()
         )
 
         endpoint = self.ctx.rgw.role_endpoints[client]
         )
 
         endpoint = self.ctx.rgw.role_endpoints[client]
@@ -173,7 +173,7 @@ class S3tests_java(Task):
                       '-file', endpoint.cert.certificate,
                       '-storepass', 'changeit',
                       ],
                       '-file', endpoint.cert.certificate,
                       '-storepass', 'changeit',
                       ],
-                stdout=StringIO()
+                stdout=BytesIO()
             )
 
     def create_users(self):
             )
 
     def create_users(self):
@@ -196,7 +196,7 @@ class S3tests_java(Task):
                 '/home/{local}/s3tests.teuth.config.yaml'.format(local=local_user))
             log.debug("S3 Tests Java: s3tests_conf is {s3cfg}".format(
                 s3cfg=s3tests_conf))
                 '/home/{local}/s3tests.teuth.config.yaml'.format(local=local_user))
             log.debug("S3 Tests Java: s3tests_conf is {s3cfg}".format(
                 s3cfg=s3tests_conf))
-            for section, user in self.users.items():
+            for section, user in list(self.users.items()):
                 if section in s3tests_conf:
                     s3_user_id = '{user}.{client}'.format(
                         user=user, client=client)
                 if section in s3tests_conf:
                     s3_user_id = '{user}.{client}'.format(
                         user=user, client=client)
@@ -224,7 +224,7 @@ class S3tests_java(Task):
                     log.info('{args}'.format(args=args))
                     self.ctx.cluster.only(client).run(
                         args=args,
                     log.info('{args}'.format(args=args))
                     self.ctx.cluster.only(client).run(
                         args=args,
-                        stdout=StringIO()
+                        stdout=BytesIO()
                     )
                 else:
                     self.users.pop(section)
                     )
                 else:
                     self.users.pop(section)
@@ -239,7 +239,7 @@ class S3tests_java(Task):
         """
         access_key = ''.join(random.choice(string.ascii_uppercase)
                              for i in range(20))
         """
         access_key = ''.join(random.choice(string.ascii_uppercase)
                              for i in range(20))
-        access_secret = base64.b64encode(os.urandom(40))
+        access_secret = base64.b64encode(os.urandom(40)).decode('ascii')
         endpoint = self.ctx.rgw.role_endpoints.get(client)
 
         self._set_cfg_entry(
         endpoint = self.ctx.rgw.role_endpoints.get(client)
 
         self._set_cfg_entry(
@@ -279,8 +279,8 @@ class S3tests_java(Task):
         with open('s3_tests_tmp.yaml', 'w') as outfile:
             yaml.dump(cfg_dict, outfile, default_flow_style=False)
 
         with open('s3_tests_tmp.yaml', 'w') as outfile:
             yaml.dump(cfg_dict, outfile, default_flow_style=False)
 
-        conf_fp = StringIO()
-        with open('s3_tests_tmp.yaml', 'r') as infile:
+        conf_fp = BytesIO()
+        with open('s3_tests_tmp.yaml', 'rb') as infile:
             for line in infile:
                 conf_fp.write(line)
 
             for line in infile:
                 conf_fp.write(line)
 
@@ -309,7 +309,7 @@ class S3tests_java(Task):
                       '{tdir}/s3-tests-java/config.properties'.format(
                           tdir=testdir)
                       ],
                       '{tdir}/s3-tests-java/config.properties'.format(
                           tdir=testdir)
                       ],
-                stdout=StringIO()
+                stdout=BytesIO()
             )
             args = ['cd',
                     '{tdir}/s3-tests-java'.format(tdir=testdir),
             )
             args = ['cd',
                     '{tdir}/s3-tests-java'.format(tdir=testdir),
@@ -346,25 +346,25 @@ class S3tests_java(Task):
                     self.ctx.cluster.only(client).run(
                         args=['radosgw-admin', 'gc',
                               'process', '--include-all'],
                     self.ctx.cluster.only(client).run(
                         args=['radosgw-admin', 'gc',
                               'process', '--include-all'],
-                        stdout=StringIO()
+                        stdout=BytesIO()
                     )
 
                 if gr != 'All':
                     self.ctx.cluster.only(client).run(
                         args=args + ['--tests'] + [gr] + extra_args,
                     )
 
                 if gr != 'All':
                     self.ctx.cluster.only(client).run(
                         args=args + ['--tests'] + [gr] + extra_args,
-                        stdout=StringIO()
+                        stdout=BytesIO()
                     )
                 else:
                     self.ctx.cluster.only(client).run(
                         args=args + extra_args,
                     )
                 else:
                     self.ctx.cluster.only(client).run(
                         args=args + extra_args,
-                        stdout=StringIO()
+                        stdout=BytesIO()
                     )
 
                 for i in range(2):
                     self.ctx.cluster.only(client).run(
                         args=['radosgw-admin', 'gc',
                               'process', '--include-all'],
                     )
 
                 for i in range(2):
                     self.ctx.cluster.only(client).run(
                         args=['radosgw-admin', 'gc',
                               'process', '--include-all'],
-                        stdout=StringIO()
+                        stdout=BytesIO()
                     )
 
     def remove_tests(self, client):
                     )
 
     def remove_tests(self, client):
@@ -379,7 +379,7 @@ class S3tests_java(Task):
                       'cat', self.log_name,
                       run.Raw('&&'),
                       'rm', self.log_name],
                       'cat', self.log_name,
                       run.Raw('&&'),
                       'rm', self.log_name],
-                stdout=StringIO()
+                stdout=BytesIO()
             )
 
         self.ctx.cluster.only(client).run(
             )
 
         self.ctx.cluster.only(client).run(
@@ -388,7 +388,7 @@ class S3tests_java(Task):
                 '-rf',
                 '{tdir}/s3-tests-java'.format(tdir=testdir),
             ],
                 '-rf',
                 '{tdir}/s3-tests-java'.format(tdir=testdir),
             ],
-            stdout=StringIO()
+            stdout=BytesIO()
         )
 
     def delete_users(self, client):
         )
 
     def delete_users(self, client):
@@ -408,7 +408,7 @@ class S3tests_java(Task):
                     '--purge-data',
                     '--cluster', 'ceph',
                 ],
                     '--purge-data',
                     '--cluster', 'ceph',
                 ],
-                stdout=StringIO()
+                stdout=BytesIO()
             )
 
 
             )
 
 
index bc0b3fc09b0ef429fb075cd5346410d69ff1ebb4..3d71708edf4ebe3635210e90888f93f54c2210a6 100644 (file)
@@ -7,7 +7,7 @@ import os
 import time
 import tempfile
 
 import time
 import tempfile
 
-import ceph_manager
+from tasks import ceph_manager
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index 8550f9b90f2c06e19a63ff09f06a22f2c3807c39..a2b55dfb84deb5586dcab0f963c8cd319fd71013 100644 (file)
@@ -4,6 +4,8 @@ Deploy and configure Tempest for Teuthology
 import contextlib
 import logging
 
 import contextlib
 import logging
 
+from six.moves import configparser
+
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.exceptions import ConfigError
 from teuthology import misc as teuthology
 from teuthology import contextutil
 from teuthology.exceptions import ConfigError
@@ -58,15 +60,6 @@ def download(ctx, config):
         sha1 = cconf.get('sha1')
         if sha1 is not None:
             run_in_tempest_dir(ctx, client, [ 'git', 'reset', '--hard', sha1 ])
         sha1 = cconf.get('sha1')
         if sha1 is not None:
             run_in_tempest_dir(ctx, client, [ 'git', 'reset', '--hard', sha1 ])
-
-        # tox.ini contains a dead link, replace it with the new one
-        from_url = 'https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt'
-        to_url = 'https://opendev.org/openstack/requirements/raw/branch/stable/pike/upper-constraints.txt'
-        run_in_tempest_dir(ctx, client, [
-                'sed', '-i',
-                run.Raw('"s|{}|{}|"'.format(from_url, to_url)),
-                'tox.ini'
-            ])
     try:
         yield
     finally:
     try:
         yield
     finally:
@@ -99,8 +92,12 @@ def setup_logging(ctx, cpar):
 
 def to_config(config, params, section, cpar):
     for (k, v) in config[section].items():
 
 def to_config(config, params, section, cpar):
     for (k, v) in config[section].items():
-        if (isinstance(v, str)):
+        if isinstance(v, str):
             v = v.format(**params)
             v = v.format(**params)
+        elif isinstance(v, bool):
+            v = 'true' if v else 'false'
+        else:
+            v = str(v)
         cpar.set(section, k, v)
 
 @contextlib.contextmanager
         cpar.set(section, k, v)
 
 @contextlib.contextmanager
@@ -108,7 +105,6 @@ def configure_instance(ctx, config):
     assert isinstance(config, dict)
     log.info('Configuring Tempest')
 
     assert isinstance(config, dict)
     log.info('Configuring Tempest')
 
-    import ConfigParser
     for (client, cconfig) in config.items():
         run_in_tempest_venv(ctx, client,
             [
     for (client, cconfig) in config.items():
         run_in_tempest_venv(ctx, client,
             [
@@ -135,7 +131,7 @@ def configure_instance(ctx, config):
             'keystone_public_port': str(public_port),
         }
 
             'keystone_public_port': str(public_port),
         }
 
-        cpar = ConfigParser.ConfigParser()
+        cpar = configparser.ConfigParser()
         cpar.read(local_conf)
         setup_logging(ctx, cpar)
         to_config(cconfig, params, 'auth', cpar)
         cpar.read(local_conf)
         setup_logging(ctx, cpar)
         to_config(cconfig, params, 'auth', cpar)
@@ -163,10 +159,8 @@ def run_tempest(ctx, config):
                 get_tempest_dir(ctx) + '/workspace.yaml',
                 '--workspace',
                 'rgw',
                 get_tempest_dir(ctx) + '/workspace.yaml',
                 '--workspace',
                 'rgw',
-                '--regex',
-                    '(tempest.api.object_storage)' +
-                    ''.join([ '(?!{blackitem})'.format(blackitem=blackitem)
-                        for blackitem in blacklist])
+                '--regex', '^tempest.api.object_storage',
+                '--black-regex', '|'.join(blacklist)
             ])
     try:
         yield
             ])
     try:
         yield
@@ -185,13 +179,17 @@ def task(ctx, config):
         ceph:
           conf:
             client:
         ceph:
           conf:
             client:
-              rgw keystone admin token: ADMIN
+              rgw keystone api version: 3
               rgw keystone accepted roles: admin,Member
               rgw keystone implicit tenants: true
               rgw keystone accepted admin roles: admin
               rgw swift enforce content length: true
               rgw swift account in url: true
               rgw swift versioning enabled: true
               rgw keystone accepted roles: admin,Member
               rgw keystone implicit tenants: true
               rgw keystone accepted admin roles: admin
               rgw swift enforce content length: true
               rgw swift account in url: true
               rgw swift versioning enabled: true
+              rgw keystone admin domain: Default
+              rgw keystone admin user: admin
+              rgw keystone admin password: ADMIN
+              rgw keystone admin project: admin
       tasks:
       # typically, the task should be preceded with install, ceph, tox,
       # keystone and rgw. Tox and Keystone are specific requirements
       tasks:
       # typically, the task should be preceded with install, ceph, tox,
       # keystone and rgw. Tox and Keystone are specific requirements
diff --git a/ceph/qa/tasks/tests/test_cephadm.py b/ceph/qa/tasks/tests/test_cephadm.py
new file mode 100644 (file)
index 0000000..403d191
--- /dev/null
@@ -0,0 +1,70 @@
+from tasks import cephadm
+
+v1 = """
+[registries.search]
+registries = ['registry.access.redhat.com', 'registry.redhat.io', 'docker.io', 'quay.io']
+
+[registries.insecure]
+registries = []
+"""
+
+v2 = """
+unqualified-search-registries = ["registry.access.redhat.com", "registry.redhat.io", "docker.io", 'quay.io']
+
+[[registry]]
+prefix = "registry.access.redhat.com"
+location = "registry.access.redhat.com"
+insecure = false
+blocked = false
+
+[[registry]]
+prefix = "registry.redhat.io"
+location = "registry.redhat.io"
+insecure = false
+blocked = false
+
+[[registry]]
+prefix = "docker.io"
+location = "docker.io"
+insecure = false
+blocked = false
+
+[[registry.mirror]]
+location = "vossi04.front.sepia.ceph.com:5000"
+insecure = true
+
+[[registry]]
+prefix = "quay.io"
+location = "quay.io"
+insecure = false
+blocked = false
+"""
+
+expected = {
+    'unqualified-search-registries': ['registry.access.redhat.com', 'registry.redhat.io',
+                                      'docker.io', 'quay.io'],
+    'registry': [
+        {'prefix': 'registry.access.redhat.com',
+         'location': 'registry.access.redhat.com',
+         'insecure': False,
+         'blocked': False},
+        {'prefix': 'registry.redhat.io',
+         'location': 'registry.redhat.io',
+         'insecure': False,
+         'blocked': False},
+        {'prefix': 'docker.io',
+         'location': 'docker.io',
+         'insecure': False,
+         'blocked': False,
+         'mirror': [{'location': 'vossi04.front.sepia.ceph.com:5000',
+                     'insecure': True}]},
+        {'prefix': 'quay.io',
+         'location': 'quay.io',
+         'insecure': False,
+         'blocked': False}
+    ]
+}
+
+def test_add_mirror():
+    assert cephadm.registries_add_mirror_to_docker_io(v1, 'vossi04.front.sepia.ceph.com:5000') == expected
+    assert cephadm.registries_add_mirror_to_docker_io(v2, 'vossi04.front.sepia.ceph.com:5000') == expected
index 117b3076818dc30b0fc4bce6a2d04deb195036aa..39b94a64c7b098faa32d96f42d7c525f54f052e8 100644 (file)
@@ -1,6 +1,6 @@
 from textwrap import dedent
 
 from textwrap import dedent
 
-from .. import devstack
+from tasks import devstack
 
 
 class TestDevstack(object):
 
 
 class TestDevstack(object):
index 59f357891ca71b373e4e521696b039eaf3966f59..2ed0ebd52e093593829f5250fa23d90fcb313e65 100644 (file)
@@ -1,6 +1,10 @@
-from mock import Mock
+import six
+if six.PY3:
+    from unittest.mock import Mock
+else:
+    from mock import Mock
 
 
-from .. import radosgw_admin
+from tasks import radosgw_admin
 
 acl_with_version = """<?xml version="1.0" encoding="UTF-8"?><AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>foo</ID><DisplayName>Foo</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>foo</ID><DisplayName>Foo</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>
 """  # noqa
 
 acl_with_version = """<?xml version="1.0" encoding="UTF-8"?><AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Owner><ID>foo</ID><DisplayName>Foo</DisplayName></Owner><AccessControlList><Grant><Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser"><ID>foo</ID><DisplayName>Foo</DisplayName></Grantee><Permission>FULL_CONTROL</Permission></Grant></AccessControlList></AccessControlPolicy>
 """  # noqa
index 221b02513d0d2267fba0cec59564d56918d03a59..aa7ec437a60015702253dbaa9ed094dd03b9eb67 100644 (file)
@@ -176,7 +176,7 @@ def task(ctx, config):
             for remote in ctx.cluster.remotes.keys():
                 log.debug('checking console status of %s' % remote.shortname)
                 if not remote.console.check_status():
             for remote in ctx.cluster.remotes.keys():
                 log.debug('checking console status of %s' % remote.shortname)
                 if not remote.console.check_status():
-                    log.warn('Failed to get console status for %s',
+                    log.warning('Failed to get console status for %s',
                              remote.shortname)
 
             # check that all osd remotes have a valid console
                              remote.shortname)
 
             # check that all osd remotes have a valid console
index 81d712f44b193bba811322e4c301a171c23bfd9a..36c226d0b2e6e4555e6347fa1ce3db645bbc7c2d 100644 (file)
@@ -31,11 +31,11 @@ def task(ctx, config):
         # yup, we have to deploy tox first. The packaged one, available
        # on Sepia's Ubuntu machines, is outdated for Keystone/Tempest.
         tvdir = get_toxvenv_dir(ctx)
         # yup, we have to deploy tox first. The packaged one, available
        # on Sepia's Ubuntu machines, is outdated for Keystone/Tempest.
         tvdir = get_toxvenv_dir(ctx)
-        ctx.cluster.only(client).run(args=[ 'virtualenv', tvdir ])
+        ctx.cluster.only(client).run(args=[ 'virtualenv', '-p', 'python3', tvdir ])
         ctx.cluster.only(client).run(args=
             [   'source', '{tvdir}/bin/activate'.format(tvdir=tvdir),
                 run.Raw('&&'),
         ctx.cluster.only(client).run(args=
             [   'source', '{tvdir}/bin/activate'.format(tvdir=tvdir),
                 run.Raw('&&'),
-                'pip', 'install', 'tox==2.3.1'
+                'pip', 'install', 'tox==3.15.0'
             ])
 
     # export the path Keystone and Tempest
             ])
 
     # export the path Keystone and Tempest
index 91652198b8a6f57dc047b503aaf4d859858283c0..1b287eb6c8e63c51a9d53a144d6d1856aecfe360 100644 (file)
@@ -1,8 +1,9 @@
-from cStringIO import StringIO
 import logging
 import json
 import time
 
 import logging
 import json
 import time
 
+from six import StringIO
+
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
 from teuthology import misc as teuthology
 
 log = logging.getLogger(__name__)
index ee1cfa62abfc1ab4e5f62f47b28d3d8ec0336161..a8f4cb02d3e96b20ca9d850e6164f36bfef96cc6 100644 (file)
@@ -26,7 +26,7 @@
 #  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 #  OTHER DEALINGS IN THE SOFTWARE.
 #
 #  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 #  OTHER DEALINGS IN THE SOFTWARE.
 #
-from .. import rados
+from tasks.util import rados
 
 class TestRados(object):
 
 
 class TestRados(object):
 
index 34efc4f970c61bbfaee492962b041da1a62ee462..6af7c074f6d99386372d7fb54834080df5d9e548 100644 (file)
@@ -6,10 +6,10 @@ import argparse
 import contextlib
 import logging
 import time
 import contextlib
 import logging
 import time
-import httplib
 import json
 from os import path
 import json
 from os import path
-from urlparse import urljoin
+from six.moves import http_client
+from six.moves.urllib.parse import urljoin
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
 
 from teuthology import misc as teuthology
 from teuthology import contextutil
@@ -128,7 +128,7 @@ def setup_vault(ctx, config):
     """
     Mount Transit or KV version 2 secrets engine
     """
     """
     Mount Transit or KV version 2 secrets engine
     """
-    (cclient, cconfig) = config.items()[0]
+    (cclient, cconfig) = next(iter(config.items()))
     engine = cconfig.get('engine')
 
     if engine == 'kv':
     engine = cconfig.get('engine')
 
     if engine == 'kv':
@@ -155,7 +155,7 @@ def setup_vault(ctx, config):
 
 def send_req(ctx, cconfig, client, path, body, method='POST'):
     host, port = ctx.vault.endpoints[client]
 
 def send_req(ctx, cconfig, client, path, body, method='POST'):
     host, port = ctx.vault.endpoints[client]
-    req = httplib.HTTPConnection(host, port, timeout=30)
+    req = http_client.HTTPConnection(host, port, timeout=30)
     token = cconfig.get('root_token', 'atoken')
     log.info("Send request to Vault: %s:%s at %s with token: %s", host, port, path, token)
     headers = {'X-Vault-Token': token}
     token = cconfig.get('root_token', 'atoken')
     log.info("Send request to Vault: %s:%s at %s with token: %s", host, port, path, token)
     headers = {'X-Vault-Token': token}
@@ -169,7 +169,7 @@ def send_req(ctx, cconfig, client, path, body, method='POST'):
 
 @contextlib.contextmanager
 def create_secrets(ctx, config):
 
 @contextlib.contextmanager
 def create_secrets(ctx, config):
-    (cclient, cconfig) = config.items()[0]
+    (cclient, cconfig) = next(iter(config.items()))
     engine = cconfig.get('engine')
     prefix = cconfig.get('prefix')
     secrets = cconfig.get('secrets')
     engine = cconfig.get('engine')
     prefix = cconfig.get('prefix')
     secrets = cconfig.get('secrets')
index df7005e9911abcc23824800b0abb597162bbe12f..a248db9e4797acc888ad57fde50c19f698023d70 100644 (file)
@@ -130,7 +130,7 @@ try:
     from tasks.cephfs.fuse_mount import FuseMount
     from tasks.cephfs.kernel_mount import KernelMount
     from tasks.cephfs.filesystem import Filesystem, MDSCluster, CephCluster
     from tasks.cephfs.fuse_mount import FuseMount
     from tasks.cephfs.kernel_mount import KernelMount
     from tasks.cephfs.filesystem import Filesystem, MDSCluster, CephCluster
-    from mgr.mgr_test_case import MgrCluster
+    from tasks.mgr.mgr_test_case import MgrCluster
     from teuthology.contextutil import MaxWhileTries
     from teuthology.task import interactive
 except ImportError:
     from teuthology.contextutil import MaxWhileTries
     from teuthology.task import interactive
 except ImportError:
@@ -339,8 +339,8 @@ class LocalRemote(object):
         shell = any([a for a in args if isinstance(a, Raw)])
 
         # Filter out helper tools that don't exist in a vstart environment
         shell = any([a for a in args if isinstance(a, Raw)])
 
         # Filter out helper tools that don't exist in a vstart environment
-        args = [a for a in args if a not in {
-            'adjust-ulimits', 'ceph-coverage'}]
+        args = [a for a in args if a not in ('adjust-ulimits',
+                                             'ceph-coverage')]
 
         # Adjust binary path prefix if given a bare program name
         if "/" not in args[0]:
 
         # Adjust binary path prefix if given a bare program name
         if "/" not in args[0]:
@@ -396,10 +396,22 @@ class LocalRemote(object):
 
         return proc
 
 
         return proc
 
-    def sh(self, command, log_limit=1024, cwd=None, env=None):
+    # XXX: for compatibility keep this method same teuthology.orchestra.remote.sh
+    def sh(self, script, **kwargs):
+        """
+        Shortcut for run method.
+
+        Usage:
+            my_name = remote.sh('whoami')
+            remote_date = remote.sh('date')
+        """
+        if 'stdout' not in kwargs:
+            kwargs['stdout'] = StringIO()
+        if 'args' not in kwargs:
+            kwargs['args'] = script
+        proc = self.run(**kwargs)
+        return proc.stdout.getvalue()
 
 
-        return misc.sh(command=command, log_limit=log_limit, cwd=cwd,
-                        env=env)
 
 class LocalDaemon(object):
     def __init__(self, daemon_type, daemon_id):
 
 class LocalDaemon(object):
     def __init__(self, daemon_type, daemon_id):
@@ -622,7 +634,7 @@ class LocalKernelMount(KernelMount):
         log.info("I think my launching pid was {0}".format(self.fuse_daemon.subproc.pid))
         return path
 
         log.info("I think my launching pid was {0}".format(self.fuse_daemon.subproc.pid))
         return path
 
-    def mount(self, mount_path=None, mount_fs_name=None, mount_options=[]):
+    def mount(self, mount_path=None, mount_fs_name=None, mount_options=[], **kwargs):
         self.setupfs(name=mount_fs_name)
 
         log.info('Mounting kclient client.{id} at {remote} {mnt}...'.format(
         self.setupfs(name=mount_fs_name)
 
         log.info('Mounting kclient client.{id} at {remote} {mnt}...'.format(
@@ -800,7 +812,7 @@ class LocalFuseMount(FuseMount):
                 check_status=False
             )
             if p.exitstatus != 0:
                 check_status=False
             )
             if p.exitstatus != 0:
-                log.warn("ls conns failed with {0}, assuming none".format(p.exitstatus))
+                log.warning("ls conns failed with {0}, assuming none".format(p.exitstatus))
                 return []
 
             ls_str = six.ensure_str(p.stdout.getvalue().strip())
                 return []
 
             ls_str = six.ensure_str(p.stdout.getvalue().strip())
@@ -866,6 +878,8 @@ class LocalFuseMount(FuseMount):
 
         self.gather_mount_info()
 
 
         self.gather_mount_info()
 
+        self.mounted = True
+
     def _run_python(self, pyscript, py_version='python'):
         """
         Override this to remove the daemon-helper prefix that is used otherwise
     def _run_python(self, pyscript, py_version='python'):
         """
         Override this to remove the daemon-helper prefix that is used otherwise
@@ -1322,7 +1336,7 @@ def exec_test():
     for line in lines:
         if 'ceph-fuse' in line or 'ceph-mds' in line:
             pid = int(line.split()[0])
     for line in lines:
         if 'ceph-fuse' in line or 'ceph-mds' in line:
             pid = int(line.split()[0])
-            log.warn("Killing stray process {0}".format(line))
+            log.warning("Killing stray process {0}".format(line))
             os.kill(pid, signal.SIGKILL)
 
     # Fire up the Ceph cluster if the user requested it
             os.kill(pid, signal.SIGKILL)
 
     # Fire up the Ceph cluster if the user requested it
@@ -1386,7 +1400,7 @@ def exec_test():
         mounts.append(mount)
         if os.path.exists(mount.mountpoint):
             if mount.is_mounted():
         mounts.append(mount)
         if os.path.exists(mount.mountpoint):
             if mount.is_mounted():
-                log.warn("unmounting {0}".format(mount.mountpoint))
+                log.warning("unmounting {0}".format(mount.mountpoint))
                 mount.umount_wait()
             else:
                 os.rmdir(mount.mountpoint)
                 mount.umount_wait()
             else:
                 os.rmdir(mount.mountpoint)
@@ -1452,11 +1466,11 @@ def exec_test():
 
         if hasattr(fn, 'is_for_teuthology') and getattr(fn, 'is_for_teuthology') is True:
             drop_test = True
 
         if hasattr(fn, 'is_for_teuthology') and getattr(fn, 'is_for_teuthology') is True:
             drop_test = True
-            log.warn("Dropping test because long running: {method_id}".format(method_id=method.id()))
+            log.warning("Dropping test because long running: {method_id}".format(method_id=method.id()))
 
         if getattr(fn, "needs_trimming", False) is True:
             drop_test = (os.getuid() != 0)
 
         if getattr(fn, "needs_trimming", False) is True:
             drop_test = (os.getuid() != 0)
-            log.warn("Dropping test because client trim unavailable: {method_id}".format(method_id=method.id()))
+            log.warning("Dropping test because client trim unavailable: {method_id}".format(method_id=method.id()))
 
         if drop_test:
             # Don't drop the test if it was explicitly requested in arguments
 
         if drop_test:
             # Don't drop the test if it was explicitly requested in arguments
index 7160979119b38ff0c640d5caee33ed04b0cf4f32..7c034961c3824f6abc378f539ea2e7b2f5976203 100644 (file)
@@ -2,7 +2,7 @@
 """
 watch_notify_same_primary task
 """
 """
 watch_notify_same_primary task
 """
-from io import BytesIO
+from six import StringIO
 import contextlib
 import logging
 
 import contextlib
 import logging
 
@@ -68,8 +68,8 @@ def task(ctx, config):
                 "watch",
                 obj(n)],
             stdin=run.PIPE,
                 "watch",
                 obj(n)],
             stdin=run.PIPE,
-            stdout=BytesIO(),
-            stderr=BytesIO(),
+            stdout=StringIO(),
+            stderr=StringIO(),
             wait=False)
         return proc
 
             wait=False)
         return proc
 
index f3cdf0d549643bd6c22d369638308846a310f7c3..e5e380492e0e8038d6edbcfd63183a88c6698ee8 100644 (file)
@@ -3,10 +3,10 @@ test_stress_watch task
 """
 import contextlib
 import logging
 """
 import contextlib
 import logging
-import proc_thrasher
 
 import six
 from teuthology.orchestra import run
 
 import six
 from teuthology.orchestra import run
+from teuthology.task import proc_thrasher
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
index 746cd1b4f44d0084d0be1aed11fb1f06fe869a5c..31a1ef4fd43d6472579c1e63a566c8ce71277bcb 100644 (file)
@@ -1,5 +1,5 @@
 [tox]
 [tox]
-envlist = flake8-py2, flake8-py3, mypy
+envlist = flake8-py2, flake8-py3, mypy, pytest
 skipsdist = True
 
 [testenv:flake8-py2]
 skipsdist = True
 
 [testenv:flake8-py2]
@@ -18,3 +18,11 @@ commands=flake8 --select=F,E9 --exclude=venv,.tox
 basepython = python3
 deps = mypy==0.770
 commands = mypy {posargs:.}
 basepython = python3
 deps = mypy==0.770
 commands = mypy {posargs:.}
+
+[testenv:pytest]
+basepython = python2
+deps =
+  {env:TEUTHOLOGY_GIT:git+https://github.com/ceph/teuthology.git@py2}#egg=teuthology[test]
+  httplib2
+  mock
+commands = pytest -vv tasks/tests
index 9abb2f238c26aeaefc6261cc12faa22da650cf23..1e5fc3262f770c642e4192fa14a303d502df7597 100644 (file)
   Memcheck:Leak
   match-leak-kinds: reachable
   ...
   Memcheck:Leak
   match-leak-kinds: reachable
   ...
-  fun:*boost*detail*make_external_thread_data*
-  fun:*boost*detail*add_new_tss_node*
+  fun:_Znwm
+  ...
   fun:*boost*detail*set_tss_data*
   ...
 }
   fun:*boost*detail*set_tss_data*
   ...
 }
index 934380e5c47539567244ed6b69f29f7cacbd8300..a81f11d47cbc97e57378783811af256f4a44df56 100755 (executable)
@@ -50,15 +50,6 @@ function install_one() {
     esac
 }
 
     esac
 }
 
-function install_cmake3_on_xenial {
-    install_pkg_on_ubuntu \
-       ceph-cmake \
-       d278b9d28de0f6b88f56dfe1e8bf684a41577210 \
-       xenial \
-       force \
-       cmake
-}
-
 function install_pkg_on_ubuntu {
     local project=$1
     shift
 function install_pkg_on_ubuntu {
     local project=$1
     shift
index 83e11a40ace6409e683bd1bb8a97be8ba27438d3..ad147885db36c00f3b76c01dfb3d25d65061fd77 100755 (executable)
@@ -3,7 +3,7 @@
 SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 CEPHADM_SRC_DIR=${SCRIPT_DIR}/../../../src/cephadm
 SCRIPT_NAME=$(basename ${BASH_SOURCE[0]})
 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 CEPHADM_SRC_DIR=${SCRIPT_DIR}/../../../src/cephadm
-CORPUS_COMMIT=50c5dd734638939facd1ed32295ce59c9a5986b4
+CORPUS_COMMIT=9cd9ad020d93b0b420924fec55da307aff8bd422
 
 [ -z "$SUDO" ] && SUDO=sudo
 if [ -z "$CEPHADM" ]; then
 
 [ -z "$SUDO" ] && SUDO=sudo
 if [ -z "$CEPHADM" ]; then
index 42f195568dc76bcded498e123d6538ab0f66942f..ddffad1da443ad2c68c49994861d2e0d6c8da8d8 100755 (executable)
@@ -330,21 +330,21 @@ done
 ${CEPHADM//--image $IMAGE_MASTER/} deploy \
     --name node-exporter.a --fsid $FSID
 cond="curl 'http://localhost:9100' | grep -q 'Node Exporter'"
 ${CEPHADM//--image $IMAGE_MASTER/} deploy \
     --name node-exporter.a --fsid $FSID
 cond="curl 'http://localhost:9100' | grep -q 'Node Exporter'"
-is_available "node-exporter" "$cond" 5
+is_available "node-exporter" "$cond" 10
 
 # add prometheus
 cat ${CEPHADM_SAMPLES_DIR}/prometheus.json | \
         ${CEPHADM//--image $IMAGE_MASTER/} deploy \
            --name prometheus.a --fsid $FSID --config-json -
 cond="curl 'localhost:9095/api/v1/query?query=up'"
 
 # add prometheus
 cat ${CEPHADM_SAMPLES_DIR}/prometheus.json | \
         ${CEPHADM//--image $IMAGE_MASTER/} deploy \
            --name prometheus.a --fsid $FSID --config-json -
 cond="curl 'localhost:9095/api/v1/query?query=up'"
-is_available "prometheus" "$cond" 5
+is_available "prometheus" "$cond" 10
 
 # add grafana
 cat ${CEPHADM_SAMPLES_DIR}/grafana.json | \
         ${CEPHADM//--image $IMAGE_MASTER/} deploy \
             --name grafana.a --fsid $FSID --config-json -
 cond="curl --insecure 'https://localhost:3000' | grep -q 'grafana'"
 
 # add grafana
 cat ${CEPHADM_SAMPLES_DIR}/grafana.json | \
         ${CEPHADM//--image $IMAGE_MASTER/} deploy \
             --name grafana.a --fsid $FSID --config-json -
 cond="curl --insecure 'https://localhost:3000' | grep -q 'grafana'"
-is_available "grafana" "$cond" 30
+is_available "grafana" "$cond" 50
 
 # add nfs-ganesha
 nfs_stop
 
 # add nfs-ganesha
 nfs_stop
@@ -382,6 +382,7 @@ $CEPHADM shell --fsid $FSID -- true
 $CEPHADM shell --fsid $FSID -- test -d /var/log/ceph
 expect_false $CEPHADM --timeout 10 shell --fsid $FSID -- sleep 60
 $CEPHADM --timeout 60 shell --fsid $FSID -- sleep 10
 $CEPHADM shell --fsid $FSID -- test -d /var/log/ceph
 expect_false $CEPHADM --timeout 10 shell --fsid $FSID -- sleep 60
 $CEPHADM --timeout 60 shell --fsid $FSID -- sleep 10
+$CEPHADM shell --fsid $FSID --mount $TMPDIR -- stat /mnt/$(basename $TMPDIR)
 
 ## enter
 expect_false $CEPHADM enter
 
 ## enter
 expect_false $CEPHADM enter
index 51d8bd7c7bc3e9599c4563585e01410448f2f2d1..77b36e0ca3aee088ffaa76199b7ce7768ff5d314 100755 (executable)
@@ -345,21 +345,20 @@ function test_tiering_1()
   ceph osd tier add slow cache
   ceph osd tier add slow cache2
   expect_false ceph osd tier add slow2 cache
   ceph osd tier add slow cache
   ceph osd tier add slow cache2
   expect_false ceph osd tier add slow2 cache
-  # test some state transitions
-  ceph osd tier cache-mode cache writeback
-  # forward is removed/deprecated
+  # forward and proxy are removed/deprecated
   expect_false ceph osd tier cache-mode cache forward
   expect_false ceph osd tier cache-mode cache forward --yes-i-really-mean-it
   expect_false ceph osd tier cache-mode cache forward
   expect_false ceph osd tier cache-mode cache forward --yes-i-really-mean-it
+  expect_false ceph osd tier cache-mode cache proxy
+  expect_false ceph osd tier cache-mode cache proxy --yes-i-really-mean-it
+  # test some state transitions
+  ceph osd tier cache-mode cache writeback
   expect_false ceph osd tier cache-mode cache readonly
   expect_false ceph osd tier cache-mode cache readonly
-  ceph osd tier cache-mode cache proxy
+  expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
+  ceph osd tier cache-mode cache readproxy
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
-  expect_false ceph osd tier cache-mode cache forward
-  expect_false ceph osd tier cache-mode cache forward --yes-i-really-mean-it
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache writeback
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache writeback
-  ceph osd tier cache-mode cache proxy
-  ceph osd tier cache-mode cache writeback
   expect_false ceph osd tier cache-mode cache none
   expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   # test with dirty objects in the tier pool
   expect_false ceph osd tier cache-mode cache none
   expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   # test with dirty objects in the tier pool
@@ -367,7 +366,7 @@ function test_tiering_1()
   rados -p cache put /etc/passwd /etc/passwd
   flush_pg_stats
   # 1 dirty object in pool 'cache'
   rados -p cache put /etc/passwd /etc/passwd
   flush_pg_stats
   # 1 dirty object in pool 'cache'
-  ceph osd tier cache-mode cache proxy
+  ceph osd tier cache-mode cache readproxy
   expect_false ceph osd tier cache-mode cache none
   expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   ceph osd tier cache-mode cache writeback
   expect_false ceph osd tier cache-mode cache none
   expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   ceph osd tier cache-mode cache writeback
@@ -376,7 +375,7 @@ function test_tiering_1()
   rados -p cache cache-flush-evict-all
   flush_pg_stats
   # no dirty objects in pool 'cache'
   rados -p cache cache-flush-evict-all
   flush_pg_stats
   # no dirty objects in pool 'cache'
-  ceph osd tier cache-mode cache proxy
+  ceph osd tier cache-mode cache readproxy
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   TRIES=0
   ceph osd tier cache-mode cache none
   ceph osd tier cache-mode cache readonly --yes-i-really-mean-it
   TRIES=0
@@ -1108,7 +1107,7 @@ function test_mon_mds()
 
   # Removing tier should be permitted because the underlying pool is
   # replicated (#11504 case)
 
   # Removing tier should be permitted because the underlying pool is
   # replicated (#11504 case)
-  ceph osd tier cache-mode mds-tier proxy
+  ceph osd tier cache-mode mds-tier readproxy
   ceph osd tier remove-overlay fs_metadata
   ceph osd tier remove fs_metadata mds-tier
   ceph osd pool delete mds-tier mds-tier --yes-i-really-really-mean-it
   ceph osd tier remove-overlay fs_metadata
   ceph osd tier remove fs_metadata mds-tier
   ceph osd pool delete mds-tier mds-tier --yes-i-really-really-mean-it
index 762a44f189d8e2ca709a8ab568452a46c607ef75..ecbb4098a45b8d0995f8195a899292a6da9894f0 100755 (executable)
@@ -20,15 +20,7 @@ CURRENT_PATH=`pwd`
 # for rocksdb
 case $(distro_id) in
        ubuntu|debian|devuan)
 # for rocksdb
 case $(distro_id) in
        ubuntu|debian|devuan)
-               install git g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev
-        case $(distro_version) in
-            *Xenial*)
-                install_cmake3_on_xenial
-                ;;
-            *)
-                install cmake
-                ;;
-        esac
+               install git g++ libsnappy-dev zlib1g-dev libbz2-dev libradospp-dev cmake
                ;;
        centos|fedora|rhel)
         case $(distro_id) in
                ;;
        centos|fedora|rhel)
         case $(distro_id) in
@@ -68,7 +60,11 @@ echo "Compile rocksdb"
 if [ -e rocksdb ]; then
        rm -fr rocksdb
 fi
 if [ -e rocksdb ]; then
        rm -fr rocksdb
 fi
-git clone https://github.com/facebook/rocksdb.git --depth 1
+
+pushd $(dirname /home/ubuntu/cephtest/clone.client.0/qa/workunits/rados/bash.sh)/../../../
+git submodule update --init src/rocksdb
+popd
+git clone $(dirname /home/ubuntu/cephtest/clone.client.0/qa/workunits/rados/bash.sh)/../../../src/rocksdb rocksdb
 
 # compile code
 cd rocksdb
 
 # compile code
 cd rocksdb
index f4fe2481186f658e9cb9f8d7aec85cc4b2db6b59..5475116cdb3db5b080f047f3028aba83c77661ab 100755 (executable)
@@ -106,7 +106,7 @@ unmap_device()
 
     for s in 0.5 1 2 4 8 16 32; do
        sleep ${s}
 
     for s in 0.5 1 2 4 8 16 32; do
        sleep ${s}
-        rbd-nbd list-mapped | expect_false grep "${list_dev} $" && return 0
+        rbd-nbd list-mapped | expect_false grep "${list_dev} *$" && return 0
     done
     return 1
 }
     done
     return 1
 }
diff --git a/ceph/qa/workunits/rgw/test_rgw_orphan_list.sh b/ceph/qa/workunits/rgw/test_rgw_orphan_list.sh
new file mode 100755 (executable)
index 0000000..67750cd
--- /dev/null
@@ -0,0 +1,505 @@
+#!/usr/bin/env bash
+
+set -ex
+
+# if defined, debug messages will be displayed and prepended with the string
+# debug="DEBUG"
+
+huge_size=2222 # in megabytes
+big_size=6 # in megabytes
+
+huge_obj=/tmp/huge_obj.temp.$$
+big_obj=/tmp/big_obj.temp.$$
+empty_obj=/tmp/empty_obj.temp.$$
+
+fifo=/tmp/orphan-fifo.$$
+awscli_dir=${HOME}/awscli_temp
+export PATH=${PATH}:${awscli_dir}
+
+rgw_host=$(hostname --fqdn)
+rgw_port=80
+
+echo "Fully Qualified Domain Name: $rgw_host"
+
+success() {
+    echo OK.
+    exit 0
+}
+
+########################################################################
+# INSTALL AND CONFIGURE TOOLING
+
+install_awscli() {
+    # NB: this does verify authenticity and integrity of downloaded
+    # file; see
+    # https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html
+    here="$(pwd)"
+    cd "$HOME"
+    curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
+    unzip awscliv2.zip
+    mkdir -p $awscli_dir
+    ./aws/install -i $awscli_dir
+    cd "$here"
+}
+
+uninstall_awscli() {
+    here="$(pwd)"
+    cd "$HOME"
+    rm -rf $awscli_dir ./aws awscliv2.zip
+    cd "$here"
+}
+
+sudo dnf install -y s3cmd
+
+sudo yum install python3-setuptools
+sudo yum -y install python3-pip
+sudo pip3 install --upgrade setuptools
+sudo pip3 install python-swiftclient
+
+# get ready for transition from s3cmd to awscli
+if false ;then
+    install_awscli
+    aws --version
+    uninstall_awscli
+fi
+
+s3config=/tmp/s3config.$$
+
+# do not include the port when it is 80; the host base is used in the
+# v4 signature and it needs to follow this convention for signatures
+# to match
+if [ "$rgw_port" -ne 80 ] ;then
+    s3_host_base="${rgw_host}:${rgw_port}"
+else
+    s3_host_base="$rgw_host"
+fi
+
+cat >${s3config} <<EOF
+[default]
+host_base = $s3_host_base
+access_key = 0555b35654ad1656d804
+secret_key = h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q==
+bucket_location = us-east-1
+check_ssl_certificate = True
+check_ssl_hostname = True
+default_mime_type = binary/octet-stream
+delete_removed = False
+dry_run = False
+enable_multipart = True
+encoding = UTF-8
+encrypt = False
+follow_symlinks = False
+force = False
+guess_mime_type = True
+host_bucket = anything.with.three.dots
+multipart_chunk_size_mb = 15
+multipart_max_chunks = 10000
+recursive = False
+recv_chunk = 65536
+send_chunk = 65536
+signature_v2 = False
+socket_timeout = 300
+use_https = False
+use_mime_magic = True
+verbosity = WARNING
+EOF
+
+
+# set up swift authentication
+export ST_AUTH=http://${rgw_host}:${rgw_port}/auth/v1.0
+export ST_USER=test:tester
+export ST_KEY=testing
+
+create_users() {
+    # Create S3 user
+    local akey='0555b35654ad1656d804'
+    local skey='h7GhxuBLTrlhVUyxSPUKUV8r/2EI4ngqJxD7iBdBYLhwluN30JaT3Q=='
+    radosgw-admin user create --uid testid \
+                 --access-key $akey --secret $skey \
+                 --display-name 'M. Tester' --email tester@ceph.com
+
+    # Create Swift user
+    radosgw-admin user create --subuser=test:tester \
+                 --display-name=Tester-Subuser --key-type=swift \
+                 --secret=testing --access=full
+}
+
+myswift() {
+    if [ -n "$debug" ] ;then
+       echo "${debug}: swift --verbose --debug $@"
+    fi
+    swift --verbose --debug "$@"
+    local code=$?
+    if [ $code -ne 0 ] ;then
+       echo "ERROR: code = $code ; command = s3cmd --config=${s3config} --verbose --debug "$@""
+       exit $code
+    fi
+}
+
+mys3cmd() {
+    if [ -n "$debug" ] ;then
+       echo "${debug}: s3cmd --config=${s3config} --verbose --debug $@"
+    fi
+    s3cmd --config=${s3config} --verbose --debug "$@"
+    local code=$?
+    if [ $code -ne 0 ] ;then
+       echo "ERROR: code = $code ; command = s3cmd --config=${s3config} --verbose --debug "$@""
+       exit $code
+    fi
+}
+
+mys3uploadkill() {
+    if [ $# -ne 5 ] ;then
+       echo "$0: error expecting 5 arguments"
+       exit 1
+    fi
+
+    set -v
+    local_file="$1"
+    remote_bkt="$2"
+    remote_obj="$3"
+    fifo="$4"
+    stop_part="$5"
+    
+    mkfifo $fifo
+
+    s3cmd --config=${s3config} put $local_file \
+         s3://${remote_bkt}/${remote_obj} \
+         --progress \
+         --multipart-chunk-size-mb=5 >$fifo &
+    set +e # don't allow errors to stop script
+    while read line ;do
+        echo "$line" | grep --quiet "part $stop_part "
+        if [ ${PIPESTATUS[1]} -eq 0 ] ;then
+           kill -9 $(jobs -p)
+            break
+        fi
+    done <$fifo
+    set -e
+
+    rm -f $fifo
+}
+
+mys3upload() {
+    obj=$1
+    bucket=$2
+    dest_obj=$3
+
+    mys3cmd put -q $obj s3://${bucket}/$dest_obj
+}
+
+########################################################################
+# PREP
+
+create_users
+dd if=/dev/urandom of=$big_obj bs=1M count=${big_size}
+dd if=/dev/urandom of=$huge_obj bs=1M count=${huge_size}
+touch $empty_obj
+
+quick_tests() {
+    echo TRY A SWIFT COMMAND
+    myswift upload swift-plain-ctr $big_obj --object-name swift-obj-test
+    myswift list
+    myswift list swift-plain-ctr
+
+    echo TRY A RADOSGW-ADMIN COMMAND
+    radosgw-admin bucket list # make sure rgw is up and running
+}
+
+########################################################################
+# S3 TESTS
+
+####################################
+# regular multipart test
+
+mys3cmd mb s3://multipart-bkt
+mys3upload $huge_obj multipart-bkt multipart-obj
+mys3cmd ls
+mys3cmd ls s3://multipart-bkt
+
+####################################
+# multipart test with incomplete uploads
+
+bkt="incomplete-mp-bkt-1"
+
+mys3cmd mb s3://$bkt
+mys3uploadkill $huge_obj $bkt incomplete-mp-obj-1 $fifo 20
+mys3uploadkill $huge_obj $bkt incomplete-mp-obj-2 $fifo 100
+
+####################################
+# resharded bucket
+
+bkt=resharded-bkt-1
+
+mys3cmd mb s3://$bkt
+
+for f in $(seq 8) ; do
+    dest_obj="reshard-obj-${f}"
+    mys3cmd put -q $big_obj s3://${bkt}/$dest_obj
+done
+
+radosgw-admin bucket reshard --num-shards 3 --bucket=$bkt --yes-i-really-mean-it
+radosgw-admin bucket reshard --num-shards 5 --bucket=$bkt --yes-i-really-mean-it
+
+####################################
+# versioned bucket
+
+if true ;then
+    echo "WARNING: versioned bucket test currently turned off"
+else
+    bkt=versioned-bkt-1
+
+    mys3cmd mb s3://$bkt
+
+    # bucket-enable-versioning $bkt
+
+    for f in $(seq 3) ;do
+       for g in $(seq 10) ;do
+           dest_obj="versioned-obj-${g}"
+           mys3cmd put -q $big_obj s3://${bkt}/$dest_obj
+       done
+    done
+
+    for g in $(seq 1 2 10) ;do
+       dest_obj="versioned-obj-${g}"
+       mys3cmd rm s3://${bkt}/$dest_obj
+    done
+fi
+
+############################################################
+# copy small objects
+
+o_bkt="orig-bkt-1"
+d_bkt="copy-bkt-1"
+mys3cmd mb s3://$o_bkt
+
+for f in $(seq 4) ;do
+    dest_obj="orig-obj-$f"
+    mys3cmd put -q $big_obj s3://${o_bkt}/$dest_obj
+done
+
+mys3cmd mb s3://$d_bkt
+
+mys3cmd cp s3://${o_bkt}/orig-obj-1 s3://${d_bkt}/copied-obj-1
+mys3cmd cp s3://${o_bkt}/orig-obj-3 s3://${d_bkt}/copied-obj-3
+
+for f in $(seq 5 6) ;do
+    dest_obj="orig-obj-$f"
+    mys3cmd put -q $big_obj s3://${d_bkt}/$dest_obj
+done
+
+############################################################
+# copy small objects and delete original
+
+o_bkt="orig-bkt-2"
+d_bkt="copy-bkt-2"
+
+mys3cmd mb s3://$o_bkt
+
+for f in $(seq 4) ;do
+    dest_obj="orig-obj-$f"
+    mys3cmd put -q $big_obj s3://${o_bkt}/$dest_obj
+done
+
+mys3cmd mb s3://$d_bkt
+
+mys3cmd cp s3://${o_bkt}/orig-obj-1 s3://${d_bkt}/copied-obj-1
+mys3cmd cp s3://${o_bkt}/orig-obj-3 s3://${d_bkt}/copied-obj-3
+
+for f in $(seq 5 6) ;do
+    dest_obj="orig-obj-$f"
+    mys3cmd put -q $big_obj s3://${d_bkt}/$dest_obj
+done
+
+mys3cmd rb --recursive s3://${o_bkt}
+
+############################################################
+# copy multipart objects
+
+o_bkt="orig-mp-bkt-3"
+d_bkt="copy-mp-bkt-3"
+
+mys3cmd mb s3://$o_bkt
+
+for f in $(seq 2) ;do
+    dest_obj="orig-multipart-obj-$f"
+    mys3cmd put -q $huge_obj s3://${o_bkt}/$dest_obj
+done
+
+mys3cmd mb s3://$d_bkt
+
+mys3cmd cp s3://${o_bkt}/orig-multipart-obj-1 \
+       s3://${d_bkt}/copied-multipart-obj-1
+
+for f in $(seq 5 5) ;do
+    dest_obj="orig-multipart-obj-$f"
+    mys3cmd put -q $huge_obj s3://${d_bkt}/$dest_obj
+done
+
+
+############################################################
+# copy multipart objects and delete original
+
+o_bkt="orig-mp-bkt-4"
+d_bkt="copy-mp-bkt-4"
+
+mys3cmd mb s3://$o_bkt
+
+for f in $(seq 2) ;do
+    dest_obj="orig-multipart-obj-$f"
+    mys3cmd put -q $huge_obj s3://${o_bkt}/$dest_obj
+done
+
+mys3cmd mb s3://$d_bkt
+
+mys3cmd cp s3://${o_bkt}/orig-multipart-obj-1 \
+       s3://${d_bkt}/copied-multipart-obj-1
+
+for f in $(seq 5 5) ;do
+    dest_obj="orig-multipart-obj-$f"
+    mys3cmd put -q $huge_obj s3://${d_bkt}/$dest_obj
+done
+
+mys3cmd rb --recursive s3://$o_bkt
+
+########################################################################
+# SWIFT TESTS
+
+# 600MB
+segment_size=629145600
+
+############################################################
+# plain test
+
+for f in $(seq 4) ;do
+    myswift upload swift-plain-ctr $big_obj --object-name swift-obj-$f
+done
+
+############################################################
+# zero-len test
+
+myswift upload swift-zerolen-ctr $empty_obj --object-name subdir/
+myswift upload swift-zerolen-ctr $big_obj --object-name subdir/abc1
+myswift upload swift-zerolen-ctr $empty_obj --object-name subdir/empty1
+myswift upload swift-zerolen-ctr $big_obj --object-name subdir/xyz1
+
+############################################################
+# dlo test
+
+# upload in 300MB segments
+myswift upload swift-dlo-ctr $huge_obj --object-name dlo-obj-1 \
+      -S $segment_size
+
+############################################################
+# slo test
+
+# upload in 300MB segments
+myswift upload swift-slo-ctr $huge_obj --object-name slo-obj-1 \
+      -S $segment_size --use-slo
+
+############################################################
+# large object copy test
+
+# upload in 300MB segments
+o_ctr=swift-orig-ctr
+o_obj=slo-orig-obj-1
+d_ctr=swift-copy-ctr
+d_obj=slo-copy-obj-1
+myswift upload $o_ctr $big_obj --object-name $o_obj
+
+myswift copy --destination /${d_ctr}/${d_obj} \
+      $o_ctr $o_obj
+
+myswift delete $o_ctr $o_obj
+
+############################################################
+# huge dlo object copy test
+
+o_ctr=swift-orig-dlo-ctr-1
+o_obj=dlo-orig-dlo-obj-1
+d_ctr=swift-copy-dlo-ctr-1
+d_obj=dlo-copy-dlo-obj-1
+
+myswift upload $o_ctr $huge_obj --object-name $o_obj \
+      -S $segment_size
+
+myswift copy --destination /${d_ctr}/${d_obj} \
+      $o_ctr $o_obj
+
+############################################################
+# huge dlo object copy and orig delete
+
+o_ctr=swift-orig-dlo-ctr-2
+o_obj=dlo-orig-dlo-obj-2
+d_ctr=swift-copy-dlo-ctr-2
+d_obj=dlo-copy-dlo-obj-2
+
+myswift upload $o_ctr $huge_obj --object-name $o_obj \
+      -S $segment_size
+
+myswift copy --destination /${d_ctr}/${d_obj} \
+      $o_ctr $o_obj
+
+myswift delete $o_ctr $o_obj
+
+############################################################
+# huge slo object copy test
+
+o_ctr=swift-orig-slo-ctr-1
+o_obj=slo-orig-slo-obj-1
+d_ctr=swift-copy-slo-ctr-1
+d_obj=slo-copy-slo-obj-1
+myswift upload $o_ctr $huge_obj --object-name $o_obj \
+      -S $segment_size --use-slo
+
+myswift copy --destination /${d_ctr}/${d_obj} $o_ctr $o_obj
+
+############################################################
+# huge slo object copy test and orig delete
+
+o_ctr=swift-orig-slo-ctr-2
+o_obj=slo-orig-slo-obj-2
+d_ctr=swift-copy-slo-ctr-2
+d_obj=slo-copy-slo-obj-2
+myswift upload $o_ctr $huge_obj --object-name $o_obj \
+      -S $segment_size --use-slo
+
+myswift copy --destination /${d_ctr}/${d_obj} $o_ctr $o_obj
+
+myswift delete $o_ctr $o_obj
+
+########################################################################
+# FORCE GARBAGE COLLECTION
+
+sleep 6 # since for testing age at which gc can happen is 5 secs
+radosgw-admin gc process --include-all
+
+
+########################################
+# DO ORPHAN LIST
+
+pool="default.rgw.buckets.data"
+
+rgw-orphan-list $pool
+
+# we only expect there to be one output file, but loop just in case
+ol_error=""
+for f in orphan-list-*.out ; do
+    if [ -s "$f"  ] ;then # if file non-empty
+       ol_error="${ol_error}:$f"
+       echo "One ore more orphans found in $f:"
+       cat "$f"
+    fi
+done
+
+if [ -n "$ol_error" ] ;then
+    echo "ERROR: orphans found when none expected"
+    exit 1
+fi
+
+########################################################################
+# CLEAN UP
+
+rm -f $empty_obj $big_obj $huge_obj $s3config
+
+success
index e2a848149ccbeec553d9a625d49e5e4f04c814b9..81b4d00675309dea06ef4e049f1806c602cd88d3 100644 (file)
@@ -4,6 +4,7 @@ require {
        type sysfs_t;
        type configfs_t;
        type commplex_main_port_t;
        type sysfs_t;
        type configfs_t;
        type commplex_main_port_t;
+       type http_cache_port_t;
        type rpm_exec_t;
        type rpm_var_lib_t;
        type kernel_t;
        type rpm_exec_t;
        type rpm_var_lib_t;
        type kernel_t;
@@ -85,6 +86,7 @@ corenet_tcp_bind_cyphesis_port(ceph_t)
 corenet_tcp_sendrecv_cyphesis_port(ceph_t)
 
 allow ceph_t commplex_main_port_t:tcp_socket name_connect;
 corenet_tcp_sendrecv_cyphesis_port(ceph_t)
 
 allow ceph_t commplex_main_port_t:tcp_socket name_connect;
+allow ceph_t http_cache_port_t:tcp_socket name_connect;
 
 corecmd_exec_bin(ceph_t)
 corecmd_exec_shell(ceph_t)
 
 corecmd_exec_bin(ceph_t)
 corecmd_exec_shell(ceph_t)
index d9b1b48b8929a5ce15818f927dec626bb88a0e8e..ed80787961fe15f9c47b63d164e7675c8d85b8eb 100644 (file)
@@ -1,2 +1,2 @@
-d289bbdec69ed7c1f516e0a093594580a76b78d0
-15.2.3
+7447c15c6ff58d7fce91843b705a268a1917325c
+15.2.4
index beec700e854c93e99fc41c76b1b0225d5bc50204..d28c8a4fa76e83740bfce6b76bb4dfa032cebe01 100644 (file)
@@ -27,7 +27,7 @@ _ceph()
        COMPREPLY=( $(compgen -W "${options_noarg} ${options_arg}" -- $cur) )
        return 0
     fi
        COMPREPLY=( $(compgen -W "${options_noarg} ${options_arg}" -- $cur) )
        return 0
     fi
-    declare -A hint_args
+    declare -a hint_args
     for (( i=1 ; i<cnt ; i++ ))
     do
        #skip this word if it is option
     for (( i=1 ; i<cnt ; i++ ))
     do
        #skip this word if it is option
index 30746805f651e0be6e5f638312e346dbec37dd2a..b8ea78bead23f579367941bb2a8b832894b4d8c9 100644 (file)
@@ -6,6 +6,7 @@ set of utilities for interacting with LVM.
 import logging
 import os
 import uuid
 import logging
 import os
 import uuid
+from itertools import repeat
 from math import floor
 from ceph_volume import process, util
 from ceph_volume.exceptions import (
 from math import floor
 from ceph_volume import process, util
 from ceph_volume.exceptions import (
@@ -946,17 +947,33 @@ class Volume(object):
                 'type': type_,
                 'osd_fsid': self.tags['ceph.osd_fsid'],
                 'cluster_fsid': self.tags['ceph.cluster_fsid'],
                 'type': type_,
                 'osd_fsid': self.tags['ceph.osd_fsid'],
                 'cluster_fsid': self.tags['ceph.cluster_fsid'],
+                'osdspec_affinity': self.tags.get('ceph.osdspec_affinity', ''),
             }
             type_uuid = '{}_uuid'.format(type_)
             report[type_uuid] = self.tags['ceph.{}'.format(type_uuid)]
             return report
 
             }
             type_uuid = '{}_uuid'.format(type_)
             report[type_uuid] = self.tags['ceph.{}'.format(type_uuid)]
             return report
 
-    def clear_tags(self):
+    def _format_tag_args(self, op, tags):
+        tag_args = ['{}={}'.format(k, v) for k, v in tags.items()]
+        # weird but efficient way of ziping two lists and getting a flat list
+        return list(sum(zip(repeat(op), tag_args), ()))
+
+    def clear_tags(self, keys=None):
         """
         """
-        Removes all tags from the Logical Volume.
+        Removes all or passed tags from the Logical Volume.
         """
         """
-        for k in list(self.tags):
-            self.clear_tag(k)
+        if not keys:
+            keys = self.tags.keys()
+
+        del_tags = {k: self.tags[k] for k in keys if k in self.tags}
+        if not del_tags:
+            # nothing to clear
+            return
+        del_tag_args = self._format_tag_args('--deltag', del_tags)
+        # --deltag returns successful even if the to be deleted tag is not set
+        process.call(['lvchange'] + del_tag_args + [self.lv_path])
+        for k in del_tags.keys():
+            del self.tags[k]
 
 
     def set_tags(self, tags):
 
 
     def set_tags(self, tags):
@@ -971,8 +988,11 @@ class Volume(object):
         At the end of all modifications, the tags are refreshed to reflect
         LVM's most current view.
         """
         At the end of all modifications, the tags are refreshed to reflect
         LVM's most current view.
         """
+        self.clear_tags(tags.keys())
+        add_tag_args = self._format_tag_args('--addtag', tags)
+        process.call(['lvchange'] + add_tag_args + [self.lv_path])
         for k, v in tags.items():
         for k, v in tags.items():
-            self.set_tag(k, v)
+            self.tags[k] = v
 
 
     def clear_tag(self, key):
 
 
     def clear_tag(self, key):
index c602a705fb921a78d7ddf0494d0fcf029b324523..4db8532806a999f59bc617e432d1981e6773efc4 100644 (file)
@@ -290,6 +290,7 @@ class Prepare(object):
             'ceph.cluster_fsid': cluster_fsid,
             'ceph.cluster_name': conf.cluster,
             'ceph.crush_device_class': crush_device_class,
             'ceph.cluster_fsid': cluster_fsid,
             'ceph.cluster_name': conf.cluster,
             'ceph.crush_device_class': crush_device_class,
+            'ceph.osdspec_affinity': prepare_utils.get_osdspec_affinity()
         }
         if self.args.filestore:
             #TODO: allow auto creation of journal on passed device, only works
         }
         if self.args.filestore:
             #TODO: allow auto creation of journal on passed device, only works
index 8525965a374fcca8c228a6163a8d2a6ac7df0e2f..d75920bd687824844a64b7aaf3e16436305dd2b5 100644 (file)
@@ -669,18 +669,16 @@ class TestTags(object):
         assert self.foo_volume.tags == tags
 
         expected = [
         assert self.foo_volume.tags == tags
 
         expected = [
-            ['lvchange', '--deltag', 'ceph.foo0=bar0', '/path'],
-            ['lvchange', '--addtag', 'ceph.foo0=bar0', '/path'],
-            ['lvchange', '--deltag', 'ceph.foo1=bar1', '/path'],
-            ['lvchange', '--addtag', 'ceph.foo1=baz1', '/path'],
-            ['lvchange', '--deltag', 'ceph.foo2=bar2', '/path'],
-            ['lvchange', '--addtag', 'ceph.foo2=baz2', '/path'],
-            ['lvchange', '--deltag', 'ceph.foo1=baz1', '/path'],
-            ['lvchange', '--addtag', 'ceph.foo1=other1', '/path'],
+            sorted(['lvchange', '--deltag', 'ceph.foo0=bar0', '--deltag',
+                    'ceph.foo1=bar1', '--deltag', 'ceph.foo2=bar2', '/path']),
+            sorted(['lvchange', '--deltag', 'ceph.foo1=baz1', '/path']),
+            sorted(['lvchange', '--addtag', 'ceph.foo0=bar0', '--addtag',
+                    'ceph.foo1=baz1', '--addtag', 'ceph.foo2=baz2', '/path']),
+            sorted(['lvchange', '--addtag', 'ceph.foo1=other1', '/path']),
         ]
         # The order isn't guaranted
         for call in capture.calls:
         ]
         # The order isn't guaranted
         for call in capture.calls:
-            assert call['args'][0] in expected
+            assert sorted(call['args'][0]) in expected
         assert len(capture.calls) == len(expected)
 
     def test_clear_tags(self, monkeypatch, capture):
         assert len(capture.calls) == len(expected)
 
     def test_clear_tags(self, monkeypatch, capture):
@@ -694,16 +692,16 @@ class TestTags(object):
         assert self.foo_volume_clean.tags == {}
 
         expected = [
         assert self.foo_volume_clean.tags == {}
 
         expected = [
-            ['lvchange', '--addtag', 'ceph.foo0=bar0', '/pathclean'],
-            ['lvchange', '--addtag', 'ceph.foo1=bar1', '/pathclean'],
-            ['lvchange', '--addtag', 'ceph.foo2=bar2', '/pathclean'],
-            ['lvchange', '--deltag', 'ceph.foo0=bar0', '/pathclean'],
-            ['lvchange', '--deltag', 'ceph.foo1=bar1', '/pathclean'],
-            ['lvchange', '--deltag', 'ceph.foo2=bar2', '/pathclean'],
+            sorted(['lvchange', '--addtag', 'ceph.foo0=bar0', '--addtag',
+                    'ceph.foo1=bar1', '--addtag', 'ceph.foo2=bar2',
+                    '/pathclean']),
+            sorted(['lvchange', '--deltag', 'ceph.foo0=bar0', '--deltag',
+                    'ceph.foo1=bar1', '--deltag', 'ceph.foo2=bar2',
+                    '/pathclean']),
         ]
         # The order isn't guaranted
         for call in capture.calls:
         ]
         # The order isn't guaranted
         for call in capture.calls:
-            assert call['args'][0] in expected
+            assert sorted(call['args'][0]) in expected
         assert len(capture.calls) == len(expected)
 
 
         assert len(capture.calls) == len(expected)
 
 
index 867e2e2ec1072fd755469e52186c3870e78fb682..85c3480a9509434a5e52a734331fcc30a2ff1037 100644 (file)
@@ -399,6 +399,10 @@ def get_monmap(osd_id):
     ])
 
 
     ])
 
 
+def get_osdspec_affinity():
+    return os.environ.get('CEPH_VOLUME_OSDSPEC_AFFINITY', '')
+
+
 def osd_mkfs_bluestore(osd_id, fsid, keyring=None, wal=False, db=False):
     """
     Create the files for the OSD to function. A normal call will look like:
 def osd_mkfs_bluestore(osd_id, fsid, keyring=None, wal=False, db=False):
     """
     Create the files for the OSD to function. A normal call will look like:
@@ -449,6 +453,9 @@ def osd_mkfs_bluestore(osd_id, fsid, keyring=None, wal=False, db=False):
         )
         system.chown(db)
 
         )
         system.chown(db)
 
+    if get_osdspec_affinity():
+        base_command.extend(['--osdspec-affinity', get_osdspec_affinity()])
+
     command = base_command + supplementary_command
 
     _, _, returncode = process.call(command, stdin=keyring, show_command=True)
     command = base_command + supplementary_command
 
     _, _, returncode = process.call(command, stdin=keyring, show_command=True)
@@ -485,6 +492,9 @@ def osd_mkfs_filestore(osd_id, fsid, keyring):
         '--monmap', monmap,
     ]
 
         '--monmap', monmap,
     ]
 
+    if get_osdspec_affinity():
+        command.extend(['--osdspec-affinity', get_osdspec_affinity()])
+
     if __release__ != 'luminous':
         # goes through stdin
         command.extend(['--keyfile', '-'])
     if __release__ != 'luminous':
         # goes through stdin
         command.extend(['--keyfile', '-'])
index 369b9696540cb59b7085408ce6b6bd5e374fee1b..13929a4cca8d1610527495711b3db56ec24ca224 100755 (executable)
@@ -679,6 +679,9 @@ def complete(sigdict, args, target):
     match_count = 0
     comps = []
     for cmdtag, cmd in sigdict.items():
     match_count = 0
     comps = []
     for cmdtag, cmd in sigdict.items():
+        flags = cmd.get('flags', 0)
+        if flags & (Flag.OBSOLETE | Flag.HIDDEN):
+            continue
         sig = cmd['sig']
         j = 0
         # iterate over all arguments, except last one
         sig = cmd['sig']
         j = 0
         # iterate over all arguments, except last one
index 9d6141c1eaa4c5434b4d0174bbaffc53c100a6e0..b707806b6699ec267800cb0b6ac469dc569681a5 100644 (file)
@@ -40,7 +40,7 @@
 #include <sys/types.h>
 #include <fcntl.h>
 
 #include <sys/types.h>
 #include <fcntl.h>
 
-#include <fuse.h>
+#include "include/ceph_fuse.h"
 #include <fuse_lowlevel.h>
 
 #define dout_context g_ceph_context
 #include <fuse_lowlevel.h>
 
 #define dout_context g_ceph_context
index 1e9516aa30d6250215c4a67eecd883fca33b5fe3..afa945dd00deaba684ccda3f5042812035fc14a8 100644 (file)
@@ -90,6 +90,8 @@ static void usage()
        << "  --convert-filestore\n"
        << "                    run any pending upgrade operations\n"
        << "  --flush-journal   flush all data out of journal\n"
        << "  --convert-filestore\n"
        << "                    run any pending upgrade operations\n"
        << "  --flush-journal   flush all data out of journal\n"
+       << "  --osdspec-affinity\n"
+       << "                    set affinity to an osdspec\n"
        << "  --dump-journal    dump all data of journal\n"
        << "  --mkjournal       initialize a new journal\n"
        << "  --check-wants-journal\n"
        << "  --dump-journal    dump all data of journal\n"
        << "  --mkjournal       initialize a new journal\n"
        << "  --check-wants-journal\n"
@@ -148,6 +150,7 @@ int main(int argc, const char **argv)
   bool get_device_fsid = false;
   string device_path;
   std::string dump_pg_log;
   bool get_device_fsid = false;
   string device_path;
   std::string dump_pg_log;
+  std::string osdspec_affinity;
 
   std::string val;
   for (std::vector<const char*>::iterator i = args.begin(); i != args.end(); ) {
 
   std::string val;
   for (std::vector<const char*>::iterator i = args.begin(); i != args.end(); ) {
@@ -155,6 +158,8 @@ int main(int argc, const char **argv)
       break;
     } else if (ceph_argparse_flag(args, i, "--mkfs", (char*)NULL)) {
       mkfs = true;
       break;
     } else if (ceph_argparse_flag(args, i, "--mkfs", (char*)NULL)) {
       mkfs = true;
+    } else if (ceph_argparse_witharg(args, i, &val, "--osdspec-affinity", (char*)NULL)) {
+     osdspec_affinity = val;
     } else if (ceph_argparse_flag(args, i, "--mkjournal", (char*)NULL)) {
       mkjournal = true;
     } else if (ceph_argparse_flag(args, i, "--check-allows-journal", (char*)NULL)) {
     } else if (ceph_argparse_flag(args, i, "--mkjournal", (char*)NULL)) {
       mkjournal = true;
     } else if (ceph_argparse_flag(args, i, "--check-allows-journal", (char*)NULL)) {
@@ -347,6 +352,7 @@ int main(int argc, const char **argv)
        derr << "created new key in keyring " << keyring_path << dendl;
     }
   }
        derr << "created new key in keyring " << keyring_path << dendl;
     }
   }
+
   if (mkfs) {
     common_init_finish(g_ceph_context);
 
   if (mkfs) {
     common_init_finish(g_ceph_context);
 
@@ -356,7 +362,7 @@ int main(int argc, const char **argv)
     }
 
     int err = OSD::mkfs(g_ceph_context, store, g_conf().get_val<uuid_d>("fsid"),
     }
 
     int err = OSD::mkfs(g_ceph_context, store, g_conf().get_val<uuid_d>("fsid"),
-                        whoami);
+                        whoami, osdspec_affinity);
     if (err < 0) {
       derr << TEXT_RED << " ** ERROR: error creating empty object store in "
           << data_path << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl;
     if (err < 0) {
       derr << TEXT_RED << " ** ERROR: error creating empty object store in "
           << data_path << ": " << cpp_strerror(-err) << TEXT_NORMAL << dendl;
@@ -442,7 +448,6 @@ flushjournal_out:
     forker.exit(0);
   }
 
     forker.exit(0);
   }
 
-
   if (convertfilestore) {
     int err = store->mount();
     if (err < 0) {
   if (convertfilestore) {
     int err = store->mount();
     if (err < 0) {
index 32610e70216a8d04a3174b491501e83326f660b9..e27bc73a6365c81c831f1ac43ba074c5bb160318 100755 (executable)
@@ -87,6 +87,12 @@ cached_stdin = None
 
 DATEFMT = '%Y-%m-%dT%H:%M:%S.%f'
 
 
 DATEFMT = '%Y-%m-%dT%H:%M:%S.%f'
 
+
+class termcolor:
+    yellow = '\033[93m'
+    red = '\033[31m'
+    end = '\033[0m'
+
 class Error(Exception):
     pass
 
 class Error(Exception):
     pass
 
@@ -231,7 +237,7 @@ class NFSGanesha(object):
 
     @staticmethod
     def get_version(container_id):
 
     @staticmethod
     def get_version(container_id):
-        # type(str) -> Optional[str]
+        # type(str) -> Optional[str]
         version = None
         out, err, code = call(
             [container_path, 'exec', container_id,
         version = None
         out, err, code = call(
             [container_path, 'exec', container_id,
@@ -243,7 +249,7 @@ class NFSGanesha(object):
         return version
 
     def validate(self):
         return version
 
     def validate(self):
-        # type () -> None
+        # type: () -> None
         if not is_fsid(self.fsid):
             raise Error('not an fsid: %s' % self.fsid)
         if not self.daemon_id:
         if not is_fsid(self.fsid):
             raise Error('not an fsid: %s' % self.fsid)
         if not self.daemon_id:
@@ -380,7 +386,7 @@ class CephIscsi(object):
 
     @staticmethod
     def get_version(container_id):
 
     @staticmethod
     def get_version(container_id):
-        # type(str) -> Optional[str]
+        # type(str) -> Optional[str]
         version = None
         out, err, code = call(
             [container_path, 'exec', container_id,
         version = None
         out, err, code = call(
             [container_path, 'exec', container_id,
@@ -390,7 +396,7 @@ class CephIscsi(object):
         return version
 
     def validate(self):
         return version
 
     def validate(self):
-        # type () -> None
+        # type: () -> None
         if not is_fsid(self.fsid):
             raise Error('not an fsid: %s' % self.fsid)
         if not self.daemon_id:
         if not is_fsid(self.fsid):
             raise Error('not an fsid: %s' % self.fsid)
         if not self.daemon_id:
@@ -445,6 +451,7 @@ class CephIscsi(object):
 
     @staticmethod
     def configfs_mount_umount(data_dir, mount=True):
 
     @staticmethod
     def configfs_mount_umount(data_dir, mount=True):
+        # type: (str, bool) -> List[str]
         mount_path = os.path.join(data_dir, 'configfs')
         if mount:
             cmd = "if ! grep -qs {0} /proc/mounts; then " \
         mount_path = os.path.join(data_dir, 'configfs')
         if mount:
             cmd = "if ! grep -qs {0} /proc/mounts; then " \
@@ -457,6 +464,7 @@ class CephIscsi(object):
 ##################################
 
 def get_supported_daemons():
 ##################################
 
 def get_supported_daemons():
+    # type: () -> List[str]
     supported_daemons = list(Ceph.daemons)
     supported_daemons.extend(Monitoring.components)
     supported_daemons.append(NFSGanesha.daemon_type)
     supported_daemons = list(Ceph.daemons)
     supported_daemons.extend(Monitoring.components)
     supported_daemons.append(NFSGanesha.daemon_type)
@@ -467,7 +475,7 @@ def get_supported_daemons():
 ##################################
 
 def attempt_bind(s, address, port):
 ##################################
 
 def attempt_bind(s, address, port):
-    # type (str) -> None
+    # type: (socket.socket, str, int) -> None
     try:
         s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         s.bind((address, port))
     try:
         s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
         s.bind((address, port))
@@ -482,9 +490,9 @@ def attempt_bind(s, address, port):
         s.close()
 
 def port_in_use(port_num):
         s.close()
 
 def port_in_use(port_num):
-    # type (int) -> bool
+    # type: (int) -> bool
     """Detect whether a port is in use on the local machine - IPv4 and IPv6"""
     """Detect whether a port is in use on the local machine - IPv4 and IPv6"""
-    logger.info('Verifying port %d ...' % (port_num))
+    logger.info('Verifying port %d ...' % port_num)
     try:
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         attempt_bind(s, '0.0.0.0', port_num)
     try:
         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
         attempt_bind(s, '0.0.0.0', port_num)
@@ -497,6 +505,7 @@ def port_in_use(port_num):
         return False
 
 def check_ip_port(ip, port):
         return False
 
 def check_ip_port(ip, port):
+    # type: (str, int) -> None
     if not args.skip_ping_check:
         logger.info('Verifying IP %s port %d ...' % (ip, port))
         if ip.startswith('[') or '::' in ip:
     if not args.skip_ping_check:
         logger.info('Verifying IP %s port %d ...' % (ip, port))
         if ip.startswith('[') or '::' in ip:
@@ -892,6 +901,8 @@ def is_available(what, func):
     num = 1
     while True:
         if func():
     num = 1
     while True:
         if func():
+            logger.info('%s is available'
+                    % (what))
             break
         elif num > retry:
             raise Error('%s not available after %s tries'
             break
         elif num > retry:
             raise Error('%s not available after %s tries'
@@ -928,11 +939,11 @@ def read_config(fn):
 
 def pathify(p):
     # type: (str) -> str
 
 def pathify(p):
     # type: (str) -> str
-    if not p.startswith('/'):
-        return os.path.join(os.getcwd(), p)
-    return p
+    p = os.path.expanduser(p)
+    return os.path.abspath(p)
 
 def get_file_timestamp(fn):
 
 def get_file_timestamp(fn):
+    # type: (str) -> Optional[str]
     try:
         mt = os.path.getmtime(fn)
         return datetime.datetime.fromtimestamp(
     try:
         mt = os.path.getmtime(fn)
         return datetime.datetime.fromtimestamp(
@@ -942,6 +953,7 @@ def get_file_timestamp(fn):
         return None
 
 def try_convert_datetime(s):
         return None
 
 def try_convert_datetime(s):
+    # type: (str) -> Optional[str]
     # This is super irritating because
     #  1) podman and docker use different formats
     #  2) python's strptime can't parse either one
     # This is super irritating because
     #  1) podman and docker use different formats
     #  2) python's strptime can't parse either one
@@ -1078,16 +1090,44 @@ def infer_fsid(func):
 
     return _infer_fsid
 
 
     return _infer_fsid
 
+def infer_config(func):
+    """
+    If we find a MON daemon, use the config from that container
+    """
+    @wraps(func)
+    def _infer_config():
+        if args.config:
+            logger.debug('Using specified config: %s' % args.config)
+            return func()
+        config = None
+        if args.fsid:
+            name = args.name
+            if not name:
+                daemon_list = list_daemons(detail=False)
+                for daemon in daemon_list:
+                    if daemon['name'].startswith('mon.'):
+                        name = daemon['name']
+                        break
+            if name:
+                config = '/var/lib/ceph/{}/{}/config'.format(args.fsid, name)
+        if config:
+            logger.info('Inferring config %s' % config)
+            args.config = config
+        elif os.path.exists(SHELL_DEFAULT_CONF):
+            logger.debug('Using default config: %s' % SHELL_DEFAULT_CONF)
+            args.config = SHELL_DEFAULT_CONF
+        return func()
+
+    return _infer_config
+
 def _get_default_image():
     if DEFAULT_IMAGE_IS_MASTER:
 def _get_default_image():
     if DEFAULT_IMAGE_IS_MASTER:
-        yellow = '\033[93m'
-        end = '\033[0m'
         warn = '''This is a development version of cephadm.
 For information regarding the latest stable release:
     https://docs.ceph.com/docs/{}/cephadm/install
 '''.format(LATEST_STABLE_RELEASE)
         for line in warn.splitlines():
         warn = '''This is a development version of cephadm.
 For information regarding the latest stable release:
     https://docs.ceph.com/docs/{}/cephadm/install
 '''.format(LATEST_STABLE_RELEASE)
         for line in warn.splitlines():
-            logger.warning('{}{}{}'.format(yellow, line, end))
+            logger.warning('{}{}{}'.format(termcolor.yellow, line, termcolor.end))
     return DEFAULT_IMAGE
 
 def infer_image(func):
     return DEFAULT_IMAGE
 
 def infer_image(func):
@@ -1140,6 +1180,7 @@ def get_last_local_ceph_image():
     return None
 
 def write_tmp(s, uid, gid):
     return None
 
 def write_tmp(s, uid, gid):
+    # type: (str, int, int) -> Any
     tmp_f = tempfile.NamedTemporaryFile(mode='w',
                                         prefix='ceph-tmp')
     os.fchown(tmp_f.fileno(), uid, gid)
     tmp_f = tempfile.NamedTemporaryFile(mode='w',
                                         prefix='ceph-tmp')
     os.fchown(tmp_f.fileno(), uid, gid)
@@ -1316,6 +1357,13 @@ def get_unit_name(fsid, daemon_type, daemon_id=None):
     else:
         return 'ceph-%s@%s' % (fsid, daemon_type)
 
     else:
         return 'ceph-%s@%s' % (fsid, daemon_type)
 
+def get_unit_name_by_daemon_name(fsid, name):
+    daemon = get_daemon_description(fsid, name)
+    try:
+        return daemon['systemd_unit']
+    except KeyError:
+        raise Error('Failed to get unit name for {}'.format(daemon))
+
 def check_unit(unit_name):
     # type: (str) -> Tuple[bool, str, bool]
     # NOTE: we ignore the exit code here because systemctl outputs
 def check_unit(unit_name):
     # type: (str) -> Tuple[bool, str, bool]
     # NOTE: we ignore the exit code here because systemctl outputs
@@ -1430,8 +1478,8 @@ def get_daemon_args(fsid, daemon_type, daemon_id):
     return r
 
 def create_daemon_dirs(fsid, daemon_type, daemon_id, uid, gid,
     return r
 
 def create_daemon_dirs(fsid, daemon_type, daemon_id, uid, gid,
-                       config=None, keyring=None, reconfig=False):
-    # type: (str, str, Union[int, str], int, int, Optional[str], Optional[str], Optional[bool]) ->  None
+                       config=None, keyring=None):
+    # type: (str, str, Union[int, str], int, int, Optional[str], Optional[str]) ->  None
     data_dir = make_data_dir(fsid, daemon_type, daemon_id, uid=uid, gid=gid)
     make_log_dir(fsid, uid=uid, gid=gid)
 
     data_dir = make_data_dir(fsid, daemon_type, daemon_id, uid=uid, gid=gid)
     make_log_dir(fsid, uid=uid, gid=gid)
 
@@ -1589,6 +1637,22 @@ def get_container_mounts(fsid, daemon_type, daemon_id,
         mounts['/run/lvm'] = '/run/lvm'
         mounts['/run/lock/lvm'] = '/run/lock/lvm'
 
         mounts['/run/lvm'] = '/run/lvm'
         mounts['/run/lock/lvm'] = '/run/lock/lvm'
 
+    try:
+        if args.shared_ceph_folder:  # make easy manager modules/ceph-volume development
+            ceph_folder = pathify(args.shared_ceph_folder)
+            if os.path.exists(ceph_folder):
+                mounts[ceph_folder + '/src/ceph-volume/ceph_volume'] = '/usr/lib/python3.6/site-packages/ceph_volume'
+                mounts[ceph_folder + '/src/pybind/mgr'] = '/usr/share/ceph/mgr'
+                mounts[ceph_folder + '/src/python-common/ceph'] = '/usr/lib/python3.6/site-packages/ceph'
+                mounts[ceph_folder + '/monitoring/grafana/dashboards'] = '/etc/grafana/dashboards/ceph-dashboard'
+                mounts[ceph_folder + '/monitoring/prometheus/alerts'] = '/etc/prometheus/ceph'
+            else:
+                logger.error('{}{}{}'.format(termcolor.red,
+                'Ceph shared source folder does not exist.',
+                termcolor.end))
+    except AttributeError:
+        pass
+
     if daemon_type in Monitoring.components and daemon_id:
         data_dir = get_data_dir(fsid, daemon_type, daemon_id)
         if daemon_type == 'prometheus':
     if daemon_type in Monitoring.components and daemon_id:
         data_dir = get_data_dir(fsid, daemon_type, daemon_id)
         if daemon_type == 'prometheus':
@@ -1647,6 +1711,9 @@ def get_container(fsid, daemon_type, daemon_id,
     elif daemon_type == CephIscsi.daemon_type:
         entrypoint = CephIscsi.entrypoint
         name = '%s.%s' % (daemon_type, daemon_id)
     elif daemon_type == CephIscsi.daemon_type:
         entrypoint = CephIscsi.entrypoint
         name = '%s.%s' % (daemon_type, daemon_id)
+        # So the container can modprobe iscsi_target_mod and have write perms
+        # to configfs we need to make this a privileged container.
+        privileged = True
     else:
         entrypoint = ''
         name = ''
     else:
         entrypoint = ''
         name = ''
@@ -1788,6 +1855,11 @@ def deploy_daemon_units(fsid, uid, gid, daemon_type, daemon_id, c,
         if daemon_type == 'osd':
             # osds have a pre-start step
             assert osd_fsid
         if daemon_type == 'osd':
             # osds have a pre-start step
             assert osd_fsid
+            f.write('# Simple OSDs need chown on startup:\n')
+            for n in ['block', 'block.db', 'block.wal']:
+                p = os.path.join(data_dir, n)
+                f.write('[ ! -L {p} ] || chown {uid}:{gid} {p}\n'.format(p=p, uid=uid, gid=gid))
+            f.write('# LVM OSDs use ceph-volume lvm activate:\n')
             prestart = CephContainer(
                 image=args.image,
                 entrypoint='/usr/sbin/ceph-volume',
             prestart = CephContainer(
                 image=args.image,
                 entrypoint='/usr/sbin/ceph-volume',
@@ -2020,7 +2092,7 @@ KillMode=none
 Restart=on-failure
 RestartSec=10s
 TimeoutStartSec=120
 Restart=on-failure
 RestartSec=10s
 TimeoutStartSec=120
-TimeoutStopSec=15
+TimeoutStopSec=120
 StartLimitInterval=30min
 StartLimitBurst=5
 
 StartLimitInterval=30min
 StartLimitBurst=5
 
@@ -2088,6 +2160,7 @@ class CephContainer:
             'run',
             '--rm',
             '--net=host',
             'run',
             '--rm',
             '--net=host',
+            '--ipc=host',
         ] + self.container_args + priv + \
         cname + envs + \
         vols + entrypoint + \
         ] + self.container_args + priv + \
         cname + envs + \
         vols + entrypoint + \
@@ -2121,6 +2194,7 @@ class CephContainer:
             'run',
             '--rm',
             '--net=host',
             'run',
             '--rm',
             '--net=host',
+            '--ipc=host',
         ] + self.container_args + priv + envs + vols + [
             '--entrypoint', cmd[0],
             self.image
         ] + self.container_args + priv + envs + vols + [
             '--entrypoint', cmd[0],
             self.image
@@ -2484,9 +2558,13 @@ def command_bootstrap():
     def is_mgr_available():
         # type: () -> bool
         timeout=args.timeout if args.timeout else 30 # seconds
     def is_mgr_available():
         # type: () -> bool
         timeout=args.timeout if args.timeout else 30 # seconds
-        out = cli(['status', '-f', 'json-pretty'], timeout=timeout)
-        j = json.loads(out)
-        return j.get('mgrmap', {}).get('available', False)
+        try:
+            out = cli(['status', '-f', 'json-pretty'], timeout=timeout)
+            j = json.loads(out)
+            return j.get('mgrmap', {}).get('available', False)
+        except Exception as e:
+            logger.debug('status failed: %s' % e)
+            return False
     is_available('mgr', is_mgr_available)
 
     # wait for mgr to restart (after enabling a module)
     is_available('mgr', is_mgr_available)
 
     # wait for mgr to restart (after enabling a module)
@@ -2517,31 +2595,47 @@ def command_bootstrap():
         logger.info('Setting orchestrator backend to cephadm...')
         cli(['orch', 'set', 'backend', 'cephadm'])
 
         logger.info('Setting orchestrator backend to cephadm...')
         cli(['orch', 'set', 'backend', 'cephadm'])
 
-        logger.info('Generating ssh key...')
-        cli(['cephadm', 'generate-key'])
-        ssh_pub = cli(['cephadm', 'get-pub-key'])
-
-        with open(args.output_pub_ssh_key, 'w') as f:
-            f.write(ssh_pub)
-        logger.info('Wrote public SSH key to to %s' % args.output_pub_ssh_key)
-
-        logger.info('Adding key to root@localhost\'s authorized_keys...')
-        if not os.path.exists('/root/.ssh'):
-            os.mkdir('/root/.ssh', 0o700)
-        auth_keys_file = '/root/.ssh/authorized_keys'
-        add_newline = False
-        if os.path.exists(auth_keys_file):
-            with open(auth_keys_file, 'r') as f:
-                f.seek(0, os.SEEK_END)
-                if f.tell() > 0:
-                    f.seek(f.tell()-1, os.SEEK_SET) # go to last char
-                    if f.read() != '\n':
-                        add_newline = True
-        with open(auth_keys_file, 'a') as f:
-            os.fchmod(f.fileno(), 0o600)  # just in case we created it
-            if add_newline:
-                f.write('\n')
-            f.write(ssh_pub.strip() + '\n')
+        if args.ssh_config:
+            logger.info('Using provided ssh config...')
+            mounts = {
+                pathify(args.ssh_config.name): '/tmp/cephadm-ssh-config:z',
+            }
+            cli(['cephadm', 'set-ssh-config', '-i', '/tmp/cephadm-ssh-config'], extra_mounts=mounts)
+
+        if args.ssh_private_key and args.ssh_public_key:
+            logger.info('Using provided ssh keys...')
+            mounts = {
+                pathify(args.ssh_private_key.name): '/tmp/cephadm-ssh-key:z',
+                pathify(args.ssh_public_key.name): '/tmp/cephadm-ssh-key.pub:z'
+            }
+            cli(['cephadm', 'set-priv-key', '-i', '/tmp/cephadm-ssh-key'], extra_mounts=mounts)
+            cli(['cephadm', 'set-pub-key', '-i', '/tmp/cephadm-ssh-key.pub'], extra_mounts=mounts)
+        else:
+            logger.info('Generating ssh key...')
+            cli(['cephadm', 'generate-key'])
+            ssh_pub = cli(['cephadm', 'get-pub-key'])
+
+            with open(args.output_pub_ssh_key, 'w') as f:
+                f.write(ssh_pub)
+            logger.info('Wrote public SSH key to to %s' % args.output_pub_ssh_key)
+
+            logger.info('Adding key to root@localhost\'s authorized_keys...')
+            if not os.path.exists('/root/.ssh'):
+                os.mkdir('/root/.ssh', 0o700)
+            auth_keys_file = '/root/.ssh/authorized_keys'
+            add_newline = False
+            if os.path.exists(auth_keys_file):
+                with open(auth_keys_file, 'r') as f:
+                    f.seek(0, os.SEEK_END)
+                    if f.tell() > 0:
+                        f.seek(f.tell()-1, os.SEEK_SET) # go to last char
+                        if f.read() != '\n':
+                            add_newline = True
+            with open(auth_keys_file, 'a') as f:
+                os.fchmod(f.fileno(), 0o600)  # just in case we created it
+                if add_newline:
+                    f.write('\n')
+                f.write(ssh_pub.strip() + '\n')
 
         host = get_hostname()
         logger.info('Adding host %s...' % host)
 
         host = get_hostname()
         logger.info('Adding host %s...' % host)
@@ -2567,9 +2661,10 @@ def command_bootstrap():
         # dashboard crt and key
         if args.dashboard_key and args.dashboard_crt:
             logger.info('Using provided dashboard certificate...')
         # dashboard crt and key
         if args.dashboard_key and args.dashboard_crt:
             logger.info('Using provided dashboard certificate...')
-            mounts = {}
-            mounts[pathify(args.dashboard_crt)] = '/tmp/dashboard.crt:z'
-            mounts[pathify(args.dashboard_key)] = '/tmp/dashboard.key:z'
+            mounts = {
+                pathify(args.dashboard_crt.name): '/tmp/dashboard.crt:z',
+                pathify(args.dashboard_key.name): '/tmp/dashboard.key:z'
+            }
             cli(['dashboard', 'set-ssl-certificate', '-i', '/tmp/dashboard.crt'], extra_mounts=mounts)
             cli(['dashboard', 'set-ssl-certificate-key', '-i', '/tmp/dashboard.key'], extra_mounts=mounts)
         else:
             cli(['dashboard', 'set-ssl-certificate', '-i', '/tmp/dashboard.crt'], extra_mounts=mounts)
             cli(['dashboard', 'set-ssl-certificate-key', '-i', '/tmp/dashboard.key'], extra_mounts=mounts)
         else:
@@ -2593,6 +2688,28 @@ def command_bootstrap():
                         get_fqdn(), port,
                         args.initial_dashboard_user,
                         password))
                         get_fqdn(), port,
                         args.initial_dashboard_user,
                         password))
+    
+    if args.apply_spec:
+        logger.info('Applying %s to cluster' % args.apply_spec)
+
+        with open(args.apply_spec) as f:
+            for line in f:
+                if 'hostname:' in line:
+                    line = line.replace('\n', '')
+                    split = line.split(': ')
+                    if split[1] != host:
+                        logger.info('Adding ssh key to %s' % split[1])
+
+                        ssh_key = '/etc/ceph/ceph.pub'
+                        if args.ssh_public_key:
+                            ssh_key = args.ssh_public_key.name
+                        out, err, code = call_throws(['ssh-copy-id', '-f', '-i', ssh_key, 'root@%s' % split[1]])
+
+        mounts = {}
+        mounts[pathify(args.apply_spec)] = '/tmp/spec.yml:z'
+
+        out = cli(['orch', 'apply', '-i', '/tmp/spec.yml'], extra_mounts=mounts)
+        logger.info(out)
 
     logger.info('You can access the Ceph CLI with:\n\n'
                 '\tsudo %s shell --fsid %s -c %s -k %s\n' % (
 
     logger.info('You can access the Ceph CLI with:\n\n'
                 '\tsudo %s shell --fsid %s -c %s -k %s\n' % (
@@ -2628,7 +2745,7 @@ def extract_uid_gid_monitoring(daemon_type):
 @default_image
 def command_deploy():
     # type: () -> None
 @default_image
 def command_deploy():
     # type: () -> None
-    (daemon_type, daemon_id) = args.name.split('.', 1)
+    daemon_type, daemon_id = args.name.split('.', 1)
 
     l = FileLock(args.fsid)
     l.acquire()
 
     l = FileLock(args.fsid)
     l.acquire()
@@ -2636,11 +2753,22 @@ def command_deploy():
     if daemon_type not in get_supported_daemons():
         raise Error('daemon type %s not recognized' % daemon_type)
 
     if daemon_type not in get_supported_daemons():
         raise Error('daemon type %s not recognized' % daemon_type)
 
-    logger.info('Deploying daemon %s.%s ...' % (daemon_type, daemon_id))
+    redeploy = False
+    unit_name = get_unit_name(args.fsid, daemon_type, daemon_id)
+    (_, state, _) = check_unit(unit_name)
+    if state == 'running':
+        redeploy = True
+
+    if args.reconfig:
+        logger.info('%s daemon %s ...' % ('Reconfig', args.name))
+    elif redeploy:
+        logger.info('%s daemon %s ...' % ('Redeploy', args.name))
+    else:
+        logger.info('%s daemon %s ...' % ('Deploy', args.name))
 
     if daemon_type in Ceph.daemons:
 
     if daemon_type in Ceph.daemons:
-        (config, keyring) = get_config_and_keyring()
-        (uid, gid) = extract_uid_gid()
+        config, keyring = get_config_and_keyring()
+        uid, gid = extract_uid_gid()
         make_var_run(args.fsid, uid, gid)
         c = get_container(args.fsid, daemon_type, daemon_id,
                           ptrace=args.allow_ptrace)
         make_var_run(args.fsid, uid, gid)
         c = get_container(args.fsid, daemon_type, daemon_id,
                           ptrace=args.allow_ptrace)
@@ -2651,10 +2779,8 @@ def command_deploy():
 
     elif daemon_type in Monitoring.components:
         # monitoring daemon - prometheus, grafana, alertmanager, node-exporter
 
     elif daemon_type in Monitoring.components:
         # monitoring daemon - prometheus, grafana, alertmanager, node-exporter
-        monitoring_args = []  # type: List[str]
-
         # Default Checks
         # Default Checks
-        if not args.reconfig:
+        if not args.reconfig and not redeploy:
             daemon_ports = Monitoring.port_map[daemon_type]  # type: List[int]
             if any([port_in_use(port) for port in daemon_ports]):
                 raise Error("TCP Port(s) '{}' required for {} is already in use".format(",".join(map(str, daemon_ports)), daemon_type))
             daemon_ports = Monitoring.port_map[daemon_type]  # type: List[int]
             if any([port_in_use(port) for port in daemon_ports]):
                 raise Error("TCP Port(s) '{}' required for {} is already in use".format(",".join(map(str, daemon_ports)), daemon_type))
@@ -2672,24 +2798,25 @@ def command_deploy():
                 raise Error("{} deployment requires config-json which must "
                             "contain arg for {}".format(daemon_type.capitalize(), ', '.join(required_args)))
 
                 raise Error("{} deployment requires config-json which must "
                             "contain arg for {}".format(daemon_type.capitalize(), ', '.join(required_args)))
 
-
         uid, gid = extract_uid_gid_monitoring(daemon_type)
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       reconfig=args.reconfig)
 
     elif daemon_type == NFSGanesha.daemon_type:
         uid, gid = extract_uid_gid_monitoring(daemon_type)
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       reconfig=args.reconfig)
 
     elif daemon_type == NFSGanesha.daemon_type:
-        NFSGanesha.port_in_use()
-        (config, keyring) = get_config_and_keyring()
+        if not args.reconfig and not redeploy:
+            NFSGanesha.port_in_use()
+        config, keyring = get_config_and_keyring()
         # TODO: extract ganesha uid/gid (997, 994) ?
         # TODO: extract ganesha uid/gid (997, 994) ?
-        (uid, gid) = extract_uid_gid()
+        uid, gid = extract_uid_gid()
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       config=config, keyring=keyring,
                       reconfig=args.reconfig)
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       config=config, keyring=keyring,
                       reconfig=args.reconfig)
+
     elif daemon_type == CephIscsi.daemon_type:
     elif daemon_type == CephIscsi.daemon_type:
-        (config, keyring) = get_config_and_keyring()
-        (uid, gid) = extract_uid_gid()
+        config, keyring = get_config_and_keyring()
+        uid, gid = extract_uid_gid()
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       config=config, keyring=keyring,
         c = get_container(args.fsid, daemon_type, daemon_id)
         deploy_daemon(args.fsid, daemon_type, daemon_id, c, uid, gid,
                       config=config, keyring=keyring,
@@ -2710,6 +2837,7 @@ def command_run():
 ##################################
 
 @infer_fsid
 ##################################
 
 @infer_fsid
+@infer_config
 @infer_image
 def command_shell():
     # type: () -> int
 @infer_image
 def command_shell():
     # type: () -> int
@@ -2731,8 +2859,6 @@ def command_shell():
     # use /etc/ceph files by default, if present.  we do this instead of
     # making these defaults in the arg parser because we don't want an error
     # if they don't exist.
     # use /etc/ceph files by default, if present.  we do this instead of
     # making these defaults in the arg parser because we don't want an error
     # if they don't exist.
-    if not args.config and os.path.exists(SHELL_DEFAULT_CONF):
-        args.config = SHELL_DEFAULT_CONF
     if not args.keyring and os.path.exists(SHELL_DEFAULT_KEYRING):
         args.keyring = SHELL_DEFAULT_KEYRING
 
     if not args.keyring and os.path.exists(SHELL_DEFAULT_KEYRING):
         args.keyring = SHELL_DEFAULT_KEYRING
 
@@ -2743,6 +2869,10 @@ def command_shell():
         mounts[pathify(args.config)] = '/etc/ceph/ceph.conf:z'
     if args.keyring:
         mounts[pathify(args.keyring)] = '/etc/ceph/ceph.keyring:z'
         mounts[pathify(args.config)] = '/etc/ceph/ceph.conf:z'
     if args.keyring:
         mounts[pathify(args.keyring)] = '/etc/ceph/ceph.keyring:z'
+    if args.mount:
+        mount = pathify(args.mount)
+        filename = os.path.basename(mount)
+        mounts[mount] = '/mnt/{}:z'.format(filename)
     if args.command:
         command = args.command
     else:
     if args.command:
         command = args.command
     else:
@@ -2836,6 +2966,7 @@ def command_ceph_volume():
     c = CephContainer(
         image=args.image,
         entrypoint='/usr/sbin/ceph-volume',
     c = CephContainer(
         image=args.image,
         entrypoint='/usr/sbin/ceph-volume',
+        envs=args.env,
         args=args.command,
         privileged=True,
         volume_mounts=mounts,
         args=args.command,
         privileged=True,
         volume_mounts=mounts,
@@ -2851,8 +2982,9 @@ def command_unit():
     # type: () -> None
     if not args.fsid:
         raise Error('must pass --fsid to specify cluster')
     # type: () -> None
     if not args.fsid:
         raise Error('must pass --fsid to specify cluster')
-    (daemon_type, daemon_id) = args.name.split('.', 1)
-    unit_name = get_unit_name(args.fsid, daemon_type, daemon_id)
+
+    unit_name = get_unit_name_by_daemon_name(args.fsid, args.name)
+
     call_throws([
         'systemctl',
         args.command,
     call_throws([
         'systemctl',
         args.command,
@@ -2866,8 +2998,7 @@ def command_logs():
     if not args.fsid:
         raise Error('must pass --fsid to specify cluster')
 
     if not args.fsid:
         raise Error('must pass --fsid to specify cluster')
 
-    (daemon_type, daemon_id) = args.name.split('.', 1)
-    unit_name = get_unit_name(args.fsid, daemon_type, daemon_id)
+    unit_name = get_unit_name_by_daemon_name(args.fsid, args.name)
 
     cmd = [find_program('journalctl')]
     cmd.extend(['-u', unit_name])
 
     cmd = [find_program('journalctl')]
     cmd.extend(['-u', unit_name])
@@ -2944,14 +3075,15 @@ def list_daemons(detail=True, legacy_dir=None):
                     fsid = get_legacy_daemon_fsid(
                             cluster, daemon_type, daemon_id,
                             legacy_dir=legacy_dir)
                     fsid = get_legacy_daemon_fsid(
                             cluster, daemon_type, daemon_id,
                             legacy_dir=legacy_dir)
+                    legacy_unit_name = 'ceph-%s@%s' % (daemon_type, daemon_id)
                     i = {
                         'style': 'legacy',
                         'name': '%s.%s' % (daemon_type, daemon_id),
                         'fsid': fsid if fsid is not None else 'unknown',
                     i = {
                         'style': 'legacy',
                         'name': '%s.%s' % (daemon_type, daemon_id),
                         'fsid': fsid if fsid is not None else 'unknown',
+                        'systemd_unit': legacy_unit_name,
                     }
                     if detail:
                     }
                     if detail:
-                        (i['enabled'], i['state'], _) = check_unit(
-                            'ceph-%s@%s' % (daemon_type, daemon_id))
+                        (i['enabled'], i['state'], _) = check_unit(legacy_unit_name)
                         if not host_version:
                             try:
                                 out, err, code = call(['ceph', '-v'])
                         if not host_version:
                             try:
                                 out, err, code = call(['ceph', '-v'])
@@ -2976,6 +3108,7 @@ def list_daemons(detail=True, legacy_dir=None):
                         'style': 'cephadm:v1',
                         'name': name,
                         'fsid': fsid,
                         'style': 'cephadm:v1',
                         'name': name,
                         'fsid': fsid,
+                        'systemd_unit': unit_name,
                     }
                     if detail:
                         # get container id
                     }
                     if detail:
                         # get container id
@@ -3062,11 +3195,21 @@ def list_daemons(detail=True, legacy_dir=None):
 
                     ls.append(i)
 
 
                     ls.append(i)
 
-    # /var/lib/rook
-    # WRITE ME
     return ls
 
 
     return ls
 
 
+def get_daemon_description(fsid, name, detail=False, legacy_dir=None):
+    # type: (str, str, bool, Optional[str]) -> Dict[str, str]
+
+    for d in list_daemons(detail=detail, legacy_dir=legacy_dir):
+        if d['fsid'] != fsid:
+            continue
+        if d['name'] != name:
+            continue
+        return d
+    raise Error('Daemon not found: {}. See `cephadm ls`'.format(name))
+
+
 ##################################
 
 @default_image
 ##################################
 
 @default_image
@@ -3124,13 +3267,13 @@ class AdoptOsd(object):
             with open(path, 'r') as f:
                 osd_fsid = f.read().strip()
             logger.info("Found online OSD at %s" % path)
             with open(path, 'r') as f:
                 osd_fsid = f.read().strip()
             logger.info("Found online OSD at %s" % path)
-            if os.path.exists(os.path.join(self.osd_data_dir, 'type')):
-                with open(os.path.join(self.osd_data_dir, 'type')) as f:
-                    osd_type = f.read().strip()
-            else:
-                logger.info('"type" file missing for OSD data dir')
         except IOError:
             logger.info('Unable to read OSD fsid from %s' % path)
         except IOError:
             logger.info('Unable to read OSD fsid from %s' % path)
+        if os.path.exists(os.path.join(self.osd_data_dir, 'type')):
+            with open(os.path.join(self.osd_data_dir, 'type')) as f:
+                osd_type = f.read().strip()
+        else:
+            logger.info('"type" file missing for OSD data dir')
 
         return osd_fsid, osd_type
 
 
         return osd_fsid, osd_type
 
@@ -3212,6 +3355,7 @@ def command_adopt_ceph(daemon_type, daemon_id, fsid):
         if not osd_fsid:
             raise Error('Unable to find OSD {}'.format(daemon_id))
         logger.info('objectstore_type is %s' % osd_type)
         if not osd_fsid:
             raise Error('Unable to find OSD {}'.format(daemon_id))
         logger.info('objectstore_type is %s' % osd_type)
+        assert osd_type
         if osd_type == 'filestore':
             raise Error('FileStore is not supported by cephadm')
 
         if osd_type == 'filestore':
             raise Error('FileStore is not supported by cephadm')
 
@@ -3464,11 +3608,13 @@ def command_rm_daemon():
     l = FileLock(args.fsid)
     l.acquire()
 
     l = FileLock(args.fsid)
     l.acquire()
 
+    unit_name = get_unit_name_by_daemon_name(args.fsid, args.name)
+
     (daemon_type, daemon_id) = args.name.split('.', 1)
     if daemon_type in ['mon', 'osd'] and not args.force:
         raise Error('must pass --force to proceed: '
                       'this command may destroy precious data!')
     (daemon_type, daemon_id) = args.name.split('.', 1)
     if daemon_type in ['mon', 'osd'] and not args.force:
         raise Error('must pass --force to proceed: '
                       'this command may destroy precious data!')
-    unit_name = get_unit_name(args.fsid, daemon_type, daemon_id)
+
     call(['systemctl', 'stop', unit_name],
          verbose_on_failure=False)
     call(['systemctl', 'reset-failed', unit_name],
     call(['systemctl', 'stop', unit_name],
          verbose_on_failure=False)
     call(['systemctl', 'reset-failed', unit_name],
@@ -3569,7 +3715,7 @@ def check_time_sync(enabler=None):
         'ntpd.service', # el7 (at least)
         'ntp.service',  # 18.04 (at least)
     ]
         'ntpd.service', # el7 (at least)
         'ntp.service',  # 18.04 (at least)
     ]
-    if not check_units(units, enabler=None):
+    if not check_units(units, enabler):
         logger.warning('No time sync service is running; checked for %s' % units)
         return False
     return True
         logger.warning('No time sync service is running; checked for %s' % units)
         return False
     return True
@@ -3676,6 +3822,7 @@ class CustomValidation(argparse.Action):
 ##################################
 
 def get_distro():
 ##################################
 
 def get_distro():
+    # type: () -> Tuple[Optional[str], Optional[str], Optional[str]]
     distro = None
     distro_version = None
     distro_codename = None
     distro = None
     distro_version = None
     distro_codename = None
@@ -4140,6 +4287,11 @@ def _get_parser():
         type=int,
         default=DEFAULT_RETRY,
         help='max number of retries')
         type=int,
         default=DEFAULT_RETRY,
         help='max number of retries')
+    parser.add_argument(
+        '--env', '-e',
+        action='append',
+        default=[],
+        help='set environment variable')
 
     subparsers = parser.add_subparsers(help='sub-command')
 
 
     subparsers = parser.add_subparsers(help='sub-command')
 
@@ -4266,13 +4418,16 @@ def _get_parser():
     parser_shell.add_argument(
         '--keyring', '-k',
         help='ceph.keyring to pass through to the container')
     parser_shell.add_argument(
         '--keyring', '-k',
         help='ceph.keyring to pass through to the container')
+    parser_shell.add_argument(
+        '--mount', '-m',
+        help='file or directory path that will be mounted in container /mnt')
     parser_shell.add_argument(
         '--env', '-e',
         action='append',
         default=[],
         help='set environment variable')
     parser_shell.add_argument(
     parser_shell.add_argument(
         '--env', '-e',
         action='append',
         default=[],
         help='set environment variable')
     parser_shell.add_argument(
-        'command', nargs='*',
+        'command', nargs=argparse.REMAINDER,
         help='command (optional)')
 
     parser_enter = subparsers.add_parser(
         help='command (optional)')
 
     parser_enter = subparsers.add_parser(
@@ -4286,7 +4441,7 @@ def _get_parser():
         required=True,
         help='daemon name (type.id)')
     parser_enter.add_argument(
         required=True,
         help='daemon name (type.id)')
     parser_enter.add_argument(
-        'command', nargs='*',
+        'command', nargs=argparse.REMAINDER,
         help='command')
 
     parser_ceph_volume = subparsers.add_parser(
         help='command')
 
     parser_ceph_volume = subparsers.add_parser(
@@ -4305,7 +4460,7 @@ def _get_parser():
         '--keyring', '-k',
         help='ceph.keyring to pass through to the container')
     parser_ceph_volume.add_argument(
         '--keyring', '-k',
         help='ceph.keyring to pass through to the container')
     parser_ceph_volume.add_argument(
-        'command', nargs='+',
+        'command', nargs=argparse.REMAINDER,
         help='command')
 
     parser_unit = subparsers.add_parser(
         help='command')
 
     parser_unit = subparsers.add_parser(
@@ -4386,11 +4541,26 @@ def _get_parser():
 
     parser_bootstrap.add_argument(
         '--dashboard-key',
 
     parser_bootstrap.add_argument(
         '--dashboard-key',
+        type=argparse.FileType('r'),
         help='Dashboard key')
     parser_bootstrap.add_argument(
         '--dashboard-crt',
         help='Dashboard key')
     parser_bootstrap.add_argument(
         '--dashboard-crt',
+        type=argparse.FileType('r'),
         help='Dashboard certificate')
 
         help='Dashboard certificate')
 
+    parser_bootstrap.add_argument(
+        '--ssh-config',
+        type=argparse.FileType('r'),
+        help='SSH config')
+    parser_bootstrap.add_argument(
+        '--ssh-private-key',
+        type=argparse.FileType('r'),
+        help='SSH private key')
+    parser_bootstrap.add_argument(
+        '--ssh-public-key',
+        type=argparse.FileType('r'),
+        help='SSH public key')
+
     parser_bootstrap.add_argument(
         '--skip-mon-network',
         action='store_true',
     parser_bootstrap.add_argument(
         '--skip-mon-network',
         action='store_true',
@@ -4439,6 +4609,15 @@ def _get_parser():
         '--skip-monitoring-stack',
         action='store_true',
         help='Do not automatically provision monitoring stack (prometheus, grafana, alertmanager, node-exporter)')
         '--skip-monitoring-stack',
         action='store_true',
         help='Do not automatically provision monitoring stack (prometheus, grafana, alertmanager, node-exporter)')
+    parser_bootstrap.add_argument(
+        '--apply-spec',
+        help='Apply cluster spec after bootstrap (copy ssh key, add hosts and apply services)')
+
+
+    parser_bootstrap.add_argument(
+        '--shared_ceph_folder',
+        metavar='CEPH_SOURCE_FOLDER',
+        help='Development mode. Several folders in containers are volumes mapped to different sub-folders in the ceph source folder')
 
     parser_deploy = subparsers.add_parser(
         'deploy', help='deploy a daemon')
 
     parser_deploy = subparsers.add_parser(
         'deploy', help='deploy a daemon')
@@ -4534,7 +4713,10 @@ def _get_parser():
 
 def _parse_args(av):
     parser = _get_parser()
 
 def _parse_args(av):
     parser = _get_parser()
-    return parser.parse_args(av)
+    args = parser.parse_args(av)
+    if 'command' in args and args.command and args.command[0] == "--":
+        args.command.pop(0)
+    return args
 
 if __name__ == "__main__":
     # allow argv to be injected
 
 if __name__ == "__main__":
     # allow argv to be injected
index 1215375ed9b859e1a000693758d35bad90ce592c..313abc807e95d2ac17a8c8faa9f0882898e8c57a 100644 (file)
@@ -1,2 +1,2 @@
 [mypy]
 [mypy]
-ignore_missing_imports = True
\ No newline at end of file
+ignore_missing_imports = False
index 6f51b3e78af4414f9200ef48555f92bf4f6436c6..785aedac7820f102d3b3cff7e4db881f05eb0d8b 100644 (file)
@@ -1,3 +1,4 @@
+# type: ignore
 import argparse
 import mock
 import os
 import argparse
 import mock
 import os
index d3dceee2e521192cc999d12c0a07a3f336ea1c40..c84da997a3389f6e5392aee087d14bd1d959856a 100644 (file)
@@ -96,7 +96,7 @@
 #include "include/ceph_assert.h"
 #include "include/stat.h"
 
 #include "include/ceph_assert.h"
 #include "include/stat.h"
 
-#include "include/cephfs/ceph_statx.h"
+#include "include/cephfs/ceph_ll_client.h"
 
 #if HAVE_GETGROUPLIST
 #include <grp.h>
 
 #if HAVE_GETGROUPLIST
 #include <grp.h>
@@ -270,6 +270,7 @@ Client::Client(Messenger *m, MonClient *mc, Objecter *objecter_)
     async_dentry_invalidator(m->cct),
     interrupt_finisher(m->cct),
     remount_finisher(m->cct),
     async_dentry_invalidator(m->cct),
     interrupt_finisher(m->cct),
     remount_finisher(m->cct),
+    async_ino_releasor(m->cct),
     objecter_finisher(m->cct),
     m_command_hook(this),
     fscid(0)
     objecter_finisher(m->cct),
     m_command_hook(this),
     fscid(0)
@@ -303,9 +304,6 @@ Client::Client(Messenger *m, MonClient *mc, Objecter *objecter_)
                                  cct->_conf->client_oc_target_dirty,
                                  cct->_conf->client_oc_max_dirty_age,
                                  true));
                                  cct->_conf->client_oc_target_dirty,
                                  cct->_conf->client_oc_max_dirty_age,
                                  true));
-  objecter_finisher.start();
-  filer.reset(new Filer(objecter, &objecter_finisher));
-  objecter->enable_blacklist_events();
 }
 
 
 }
 
 
@@ -473,10 +471,20 @@ void Client::dump_status(Formatter *f)
   }
 }
 
   }
 }
 
-int Client::init()
+void Client::_pre_init()
 {
   timer.init();
 {
   timer.init();
+
+  objecter_finisher.start();
+  filer.reset(new Filer(objecter, &objecter_finisher));
+  objecter->enable_blacklist_events();
+
   objectcacher->start();
   objectcacher->start();
+}
+
+int Client::init()
+{
+  _pre_init();
   {
     std::lock_guard l{client_lock};
     ceph_assert(!initialized);
   {
     std::lock_guard l{client_lock};
     ceph_assert(!initialized);
@@ -582,6 +590,12 @@ void Client::shutdown()
     remount_finisher.stop();
   }
 
     remount_finisher.stop();
   }
 
+  if (ino_release_cb) {
+    ldout(cct, 10) << "shutdown stopping inode release finisher" << dendl;
+    async_ino_releasor.wait_for_empty();
+    async_ino_releasor.stop();
+  }
+
   objectcacher->stop();  // outside of client_lock! this does a join.
   {
     std::lock_guard l{client_lock};
   objectcacher->stop();  // outside of client_lock! this does a join.
   {
     std::lock_guard l{client_lock};
@@ -3623,15 +3637,17 @@ void Client::check_caps(Inode *in, unsigned flags)
     }
 
     int flushing;
     }
 
     int flushing;
+    int msg_flags = 0;
     ceph_tid_t flush_tid;
     if (in->auth_cap == &cap && in->dirty_caps) {
       flushing = mark_caps_flushing(in, &flush_tid);
     ceph_tid_t flush_tid;
     if (in->auth_cap == &cap && in->dirty_caps) {
       flushing = mark_caps_flushing(in, &flush_tid);
+      if (flags & CHECK_CAPS_SYNCHRONOUS)
+       msg_flags |= MClientCaps::FLAG_SYNC;
     } else {
       flushing = 0;
       flush_tid = 0;
     }
 
     } else {
       flushing = 0;
       flush_tid = 0;
     }
 
-    int msg_flags = (flags & CHECK_CAPS_SYNCHRONOUS) ? MClientCaps::FLAG_SYNC : 0;
     send_cap(in, session, &cap, msg_flags, cap_used, wanted, retain,
             flushing, flush_tid);
   }
     send_cap(in, session, &cap, msg_flags, cap_used, wanted, retain,
             flushing, flush_tid);
   }
@@ -4265,6 +4281,39 @@ void Client::_trim_negative_child_dentries(InodeRef& in)
   }
 }
 
   }
 }
 
+class C_Client_CacheRelease : public Context  {
+private:
+  Client *client;
+  vinodeno_t ino;
+public:
+  C_Client_CacheRelease(Client *c, Inode *in) :
+    client(c) {
+    if (client->use_faked_inos())
+      ino = vinodeno_t(in->faked_ino, CEPH_NOSNAP);
+    else
+      ino = in->vino();
+  }
+  void finish(int r) override {
+    ceph_assert(ceph_mutex_is_not_locked_by_me(client->client_lock));
+    client->_async_inode_release(ino);
+  }
+};
+
+void Client::_async_inode_release(vinodeno_t ino)
+{
+  if (unmounting)
+    return;
+  ldout(cct, 10) << __func__ << " " << ino << dendl;
+  ino_release_cb(callback_handle, ino);
+}
+
+void Client::_schedule_ino_release_callback(Inode *in) {
+
+  if (ino_release_cb)
+    // we queue the invalidate, which calls the callback and decrements the ref
+    async_ino_releasor.queue(new C_Client_CacheRelease(this, in));
+}
+
 void Client::trim_caps(MetaSession *s, uint64_t max)
 {
   mds_rank_t mds = s->mds_num;
 void Client::trim_caps(MetaSession *s, uint64_t max)
 {
   mds_rank_t mds = s->mds_num;
@@ -4319,6 +4368,7 @@ void Client::trim_caps(MetaSession *s, uint64_t max)
       if (all && in->ino != MDS_INO_ROOT) {
         ldout(cct, 20) << __func__ << " counting as trimmed: " << *in << dendl;
        trimmed++;
       if (all && in->ino != MDS_INO_ROOT) {
         ldout(cct, 20) << __func__ << " counting as trimmed: " << *in << dendl;
        trimmed++;
+       _schedule_ino_release_callback(in.get());
       }
     }
   }
       }
     }
   }
@@ -5135,7 +5185,7 @@ void Client::_async_dentry_invalidate(vinodeno_t dirino, vinodeno_t ino, string&
     return;
   ldout(cct, 10) << __func__ << " '" << name << "' ino " << ino
                 << " in dir " << dirino << dendl;
     return;
   ldout(cct, 10) << __func__ << " '" << name << "' ino " << ino
                 << " in dir " << dirino << dendl;
-  dentry_invalidate_cb(callback_handle, dirino, ino, name);
+  dentry_invalidate_cb(callback_handle, dirino, ino, name.c_str(), name.length());
 }
 
 void Client::_schedule_invalidate_dentry_callback(Dentry *dn, bool del)
 }
 
 void Client::_schedule_invalidate_dentry_callback(Dentry *dn, bool del)
@@ -10420,7 +10470,7 @@ int Client::ll_statfs(Inode *in, struct statvfs *stbuf, const UserPerm& perms)
   return statfs(0, stbuf, perms);
 }
 
   return statfs(0, stbuf, perms);
 }
 
-void Client::ll_register_callbacks(struct client_callback_args *args)
+void Client::ll_register_callbacks(struct ceph_client_callback_args *args)
 {
   if (!args)
     return;
 {
   if (!args)
     return;
@@ -10448,7 +10498,12 @@ void Client::ll_register_callbacks(struct client_callback_args *args)
     remount_cb = args->remount_cb;
     remount_finisher.start();
   }
     remount_cb = args->remount_cb;
     remount_finisher.start();
   }
-  umask_cb = args->umask_cb;
+  if (args->ino_release_cb) {
+    ino_release_cb = args->ino_release_cb;
+    async_ino_releasor.start();
+  }
+  if (args->umask_cb)
+    umask_cb = args->umask_cb;
 }
 
 int Client::test_dentry_handling(bool can_invalidate)
 }
 
 int Client::test_dentry_handling(bool can_invalidate)
@@ -14623,8 +14678,7 @@ StandaloneClient::~StandaloneClient()
 
 int StandaloneClient::init()
 {
 
 int StandaloneClient::init()
 {
-  timer.init();
-  objectcacher->start();
+  _pre_init();
   objecter->init();
 
   client_lock.lock();
   objecter->init();
 
   client_lock.lock();
index 0ec989db2672b881b9f18c1e4d78804016a41441..a927d85b1505b109e9556e6ee5b281df6952932f 100644 (file)
@@ -23,7 +23,7 @@
 #include "common/cmdparse.h"
 #include "common/compiler_extensions.h"
 #include "include/common_fwd.h"
 #include "common/cmdparse.h"
 #include "common/compiler_extensions.h"
 #include "include/common_fwd.h"
-#include "include/cephfs/ceph_statx.h"
+#include "include/cephfs/ceph_ll_client.h"
 #include "include/filepath.h"
 #include "include/interval_set.h"
 #include "include/lru.h"
 #include "include/filepath.h"
 #include "include/interval_set.h"
 #include "include/lru.h"
@@ -121,28 +121,6 @@ struct CapSnap;
 struct MetaRequest;
 class ceph_lock_state_t;
 
 struct MetaRequest;
 class ceph_lock_state_t;
 
-
-typedef void (*client_ino_callback_t)(void *handle, vinodeno_t ino, int64_t off, int64_t len);
-
-typedef void (*client_dentry_callback_t)(void *handle, vinodeno_t dirino,
-                                        vinodeno_t ino, string& name);
-typedef int (*client_remount_callback_t)(void *handle);
-
-typedef void(*client_switch_interrupt_callback_t)(void *handle, void *data);
-typedef mode_t (*client_umask_callback_t)(void *handle);
-
-/* Callback for delegation recalls */
-typedef void (*ceph_deleg_cb_t)(Fh *fh, void *priv);
-
-struct client_callback_args {
-  void *handle;
-  client_ino_callback_t ino_cb;
-  client_dentry_callback_t dentry_cb;
-  client_switch_interrupt_callback_t switch_intr_cb;
-  client_remount_callback_t remount_cb;
-  client_umask_callback_t umask_cb;
-};
-
 // ========================================================
 // client interface
 
 // ========================================================
 // client interface
 
@@ -254,6 +232,7 @@ public:
   friend class C_Client_Remount;
   friend class C_Client_RequestInterrupt;
   friend class C_Deleg_Timeout; // Asserts on client_lock, called when a delegation is unreturned
   friend class C_Client_Remount;
   friend class C_Client_RequestInterrupt;
   friend class C_Deleg_Timeout; // Asserts on client_lock, called when a delegation is unreturned
+  friend class C_Client_CacheRelease; // Asserts on client_lock
   friend class SyntheticClient;
   friend void intrusive_ptr_release(Inode *in);
 
   friend class SyntheticClient;
   friend void intrusive_ptr_release(Inode *in);
 
@@ -601,7 +580,7 @@ public:
   int ll_osdaddr(int osd, uint32_t *addr);
   int ll_osdaddr(int osd, char* buf, size_t size);
 
   int ll_osdaddr(int osd, uint32_t *addr);
   int ll_osdaddr(int osd, char* buf, size_t size);
 
-  void ll_register_callbacks(struct client_callback_args *args);
+  void ll_register_callbacks(struct ceph_client_callback_args *args);
   int test_dentry_handling(bool can_invalidate);
 
   const char** get_tracked_conf_keys() const override;
   int test_dentry_handling(bool can_invalidate);
 
   const char** get_tracked_conf_keys() const override;
@@ -695,6 +674,10 @@ public:
   void _invalidate_inode_cache(Inode *in);
   void _invalidate_inode_cache(Inode *in, int64_t off, int64_t len);
   void _async_invalidate(vinodeno_t ino, int64_t off, int64_t len);
   void _invalidate_inode_cache(Inode *in);
   void _invalidate_inode_cache(Inode *in, int64_t off, int64_t len);
   void _async_invalidate(vinodeno_t ino, int64_t off, int64_t len);
+
+  void _schedule_ino_release_callback(Inode *in);
+  void _async_inode_release(vinodeno_t ino);
+
   bool _release(Inode *in);
 
   /**
   bool _release(Inode *in);
 
   /**
@@ -953,6 +936,8 @@ protected:
 
   void _close_sessions();
 
 
   void _close_sessions();
 
+  void _pre_init();
+
   /**
    * The basic housekeeping parts of init (perf counters, admin socket)
    * that is independent of how objecters/monclient/messengers are
   /**
    * The basic housekeeping parts of init (perf counters, admin socket)
    * that is independent of how objecters/monclient/messengers are
@@ -1204,6 +1189,7 @@ private:
   client_ino_callback_t ino_invalidate_cb = nullptr;
   client_dentry_callback_t dentry_invalidate_cb = nullptr;
   client_umask_callback_t umask_cb = nullptr;
   client_ino_callback_t ino_invalidate_cb = nullptr;
   client_dentry_callback_t dentry_invalidate_cb = nullptr;
   client_umask_callback_t umask_cb = nullptr;
+  client_ino_release_t ino_release_cb = nullptr;
   void *callback_handle = nullptr;
   bool can_invalidate_dentries = false;
 
   void *callback_handle = nullptr;
   bool can_invalidate_dentries = false;
 
@@ -1211,6 +1197,7 @@ private:
   Finisher async_dentry_invalidator;
   Finisher interrupt_finisher;
   Finisher remount_finisher;
   Finisher async_dentry_invalidator;
   Finisher interrupt_finisher;
   Finisher remount_finisher;
+  Finisher async_ino_releasor;
   Finisher objecter_finisher;
 
   Context *tick_event = nullptr;
   Finisher objecter_finisher;
 
   Context *tick_event = nullptr;
index e260f6c9980a8612cd7abbe102f9979e79ba95d5..d24a02487e135ccb9c0cfe488c2e13c574331961 100644 (file)
@@ -5,8 +5,7 @@
 
 #include "common/Clock.h"
 #include "common/Timer.h"
 
 #include "common/Clock.h"
 #include "common/Timer.h"
-
-class Fh;
+#include "include/cephfs/ceph_ll_client.h"
 
 /* Commands for manipulating delegation state */
 #ifndef CEPH_DELEGATION_NONE
 
 /* Commands for manipulating delegation state */
 #ifndef CEPH_DELEGATION_NONE
@@ -15,9 +14,6 @@ class Fh;
 # define CEPH_DELEGATION_WR    2
 #endif
 
 # define CEPH_DELEGATION_WR    2
 #endif
 
-/* Callback for delegation recalls */
-typedef void (*ceph_deleg_cb_t)(Fh *fh, void *priv);
-
 /* Converts CEPH_DELEGATION_* to cap mask */
 int ceph_deleg_caps_for_type(unsigned type);
 
 /* Converts CEPH_DELEGATION_* to cap mask */
 int ceph_deleg_caps_for_type(unsigned type);
 
index a6d05ff3ec998421c74b892cc58381f6962b293c..9ef5ccf19937bf8a5945417d2eb6e7aaf1076b40 100644 (file)
@@ -36,7 +36,7 @@
 
 #include "common/errno.h"
 #include "include/ceph_assert.h"
 
 #include "common/errno.h"
 #include "include/ceph_assert.h"
-#include "include/cephfs/ceph_statx.h"
+#include "include/cephfs/ceph_ll_client.h"
 
 #define dout_context g_ceph_context
 #define dout_subsys ceph_subsys_client
 
 #define dout_context g_ceph_context
 #define dout_subsys ceph_subsys_client
index 3aeda459c1cc441879ee702dd8881533d17a7184..82e979ffebfb11d9786417c14cd87e1663a2d613 100644 (file)
 #include "ioctl.h"
 #include "common/config.h"
 #include "include/ceph_assert.h"
 #include "ioctl.h"
 #include "common/config.h"
 #include "include/ceph_assert.h"
-#include "include/cephfs/ceph_statx.h"
+#include "include/cephfs/ceph_ll_client.h"
+#include "include/ceph_fuse.h"
 
 #include "fuse_ll.h"
 
 #include "fuse_ll.h"
-#include <fuse.h>
 #include <fuse_lowlevel.h>
 
 #define dout_context g_ceph_context
 #include <fuse_lowlevel.h>
 
 #define dout_context g_ceph_context
@@ -640,7 +640,13 @@ static void fuse_ll_flush(fuse_req_t req, fuse_ino_t ino,
 }
 
 #ifdef FUSE_IOCTL_COMPAT
 }
 
 #ifdef FUSE_IOCTL_COMPAT
-static void fuse_ll_ioctl(fuse_req_t req, fuse_ino_t ino, int cmd, void *arg, struct fuse_file_info *fi,
+static void fuse_ll_ioctl(fuse_req_t req, fuse_ino_t ino,
+#if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 5)
+                          unsigned int cmd,
+#else
+                          int cmd,
+#endif
+                          void *arg, struct fuse_file_info *fi,
                          unsigned flags, const void *in_buf, size_t in_bufsz, size_t out_bufsz)
 {
   CephFuse::Handle *cfuse = fuse_ll_req_prepare(req);
                          unsigned flags, const void *in_buf, size_t in_bufsz, size_t out_bufsz)
 {
   CephFuse::Handle *cfuse = fuse_ll_req_prepare(req);
@@ -937,7 +943,7 @@ static void ino_invalidate_cb(void *handle, vinodeno_t vino, int64_t off,
 }
 
 static void dentry_invalidate_cb(void *handle, vinodeno_t dirino,
 }
 
 static void dentry_invalidate_cb(void *handle, vinodeno_t dirino,
-                                vinodeno_t ino, string& name)
+                                vinodeno_t ino, const char *name, size_t len)
 {
   CephFuse::Handle *cfuse = (CephFuse::Handle *)handle;
   fuse_ino_t fdirino = cfuse->make_fake_ino(dirino.ino, dirino.snapid);
 {
   CephFuse::Handle *cfuse = (CephFuse::Handle *)handle;
   fuse_ino_t fdirino = cfuse->make_fake_ino(dirino.ino, dirino.snapid);
@@ -946,12 +952,12 @@ static void dentry_invalidate_cb(void *handle, vinodeno_t dirino,
   if (ino.ino != inodeno_t())
     fino = cfuse->make_fake_ino(ino.ino, ino.snapid);
 #if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)
   if (ino.ino != inodeno_t())
     fino = cfuse->make_fake_ino(ino.ino, ino.snapid);
 #if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)
-  fuse_lowlevel_notify_delete(cfuse->se, fdirino, fino, name.c_str(), name.length());
+  fuse_lowlevel_notify_delete(cfuse->se, fdirino, fino, name, len);
 #else
 #else
-  fuse_lowlevel_notify_delete(cfuse->ch, fdirino, fino, name.c_str(), name.length());
+  fuse_lowlevel_notify_delete(cfuse->ch, fdirino, fino, name, len);
 #endif
 #elif FUSE_VERSION >= FUSE_MAKE_VERSION(2, 8)
 #endif
 #elif FUSE_VERSION >= FUSE_MAKE_VERSION(2, 8)
-  fuse_lowlevel_notify_inval_entry(cfuse->ch, fdirino, name.c_str(), name.length());
+  fuse_lowlevel_notify_inval_entry(cfuse->ch, fdirino, name, len);
 #endif
 }
 
 #endif
 }
 
@@ -1233,7 +1239,7 @@ int CephFuse::Handle::start()
 #endif
 
 
 #endif
 
 
-  struct client_callback_args args = {
+  struct ceph_client_callback_args args = {
     handle: this,
     ino_cb: client->cct->_conf.get_val<bool>("fuse_use_invalidate_cb") ?
       ino_invalidate_cb : NULL,
     handle: this,
     ino_cb: client->cct->_conf.get_val<bool>("fuse_use_invalidate_cb") ?
       ino_invalidate_cb : NULL,
@@ -1256,7 +1262,14 @@ int CephFuse::Handle::loop()
   auto fuse_multithreaded = client->cct->_conf.get_val<bool>(
     "fuse_multithreaded");
   if (fuse_multithreaded) {
   auto fuse_multithreaded = client->cct->_conf.get_val<bool>(
     "fuse_multithreaded");
   if (fuse_multithreaded) {
-#if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)
+#if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 1)
+    {
+      struct fuse_loop_config conf = { 0 };
+
+      conf.clone_fd = opts.clone_fd;
+      return fuse_session_loop_mt(se, &conf);
+    }
+#elif FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)
     return fuse_session_loop_mt(se, opts.clone_fd);
 #else
     return fuse_session_loop_mt(se);
     return fuse_session_loop_mt(se, opts.clone_fd);
 #else
     return fuse_session_loop_mt(se);
index 3d7b891ddb44a1a48de71585d0450219954c315f..85e587baf46b55acac1de0cf5c06995ebc4e8f50 100644 (file)
@@ -12,8 +12,6 @@
  * 
  */
 
  * 
  */
 
-#define FUSE_USE_VERSION 30
-
 class CephFuse {
 public:
   CephFuse(Client *c, int fd);
 class CephFuse {
 public:
   CephFuse(Client *c, int fd);
index b48dcd19f8517188d6fda54c39b1ef8ed5682143..6fcfc6288a75a41665a5a4ce2d4ed486b183e4e5 100644 (file)
@@ -25,6 +25,11 @@ int queue_write_head(cls_method_context_t hctx, cls_queue_head& head)
 
   bl.claim_append(bl_head);
 
 
   bl.claim_append(bl_head);
 
+  if (bl.length() > head.max_head_size) {
+    CLS_LOG(0, "ERROR: queue_write_head: invalid head size = %u and urgent data size = %u \n", bl.length(), head.bl_urgent_data.length());
+    return -EINVAL;
+  }
+
   int ret = cls_cxx_write2(hctx, 0, bl.length(), &bl, CEPH_OSD_OP_FLAG_FADVISE_WILLNEED);
   if (ret < 0) {
     CLS_LOG(5, "ERROR: queue_write_head: failed to write head\n");
   int ret = cls_cxx_write2(hctx, 0, bl.length(), &bl, CEPH_OSD_OP_FLAG_FADVISE_WILLNEED);
   if (ret < 0) {
     CLS_LOG(5, "ERROR: queue_write_head: failed to write head\n");
@@ -266,6 +271,7 @@ int queue_list_entries(cls_method_context_t hctx, const cls_queue_list_op& op, c
   uint64_t data_size = 0, num_ops = 0;
   uint16_t entry_start = 0;
   bufferlist bl;
   uint64_t data_size = 0, num_ops = 0;
   uint16_t entry_start = 0;
   bufferlist bl;
+  string last_marker;
   do
   {
     CLS_LOG(10, "INFO: queue_list_entries(): start_offset is %lu\n", start_offset);
   do
   {
     CLS_LOG(10, "INFO: queue_list_entries(): start_offset is %lu\n", start_offset);
@@ -306,6 +312,10 @@ int queue_list_entries(cls_method_context_t hctx, const cls_queue_list_op& op, c
       CLS_LOG(10, "INFO: queue_list_entries(): index: %u, size_to_process: %lu\n", index, size_to_process);
       cls_queue_entry entry;
       ceph_assert(it.get_off() == index);
       CLS_LOG(10, "INFO: queue_list_entries(): index: %u, size_to_process: %lu\n", index, size_to_process);
       cls_queue_entry entry;
       ceph_assert(it.get_off() == index);
+      //Use the last marker saved in previous iteration as the marker for this entry
+      if (offset_populated) {
+        entry.marker = last_marker;
+      }
       //Populate offset if not done in previous iteration
       if (! offset_populated) {
         cls_queue_marker marker = {entry_start_offset + index, gen};
       //Populate offset if not done in previous iteration
       if (! offset_populated) {
         cls_queue_marker marker = {entry_start_offset + index, gen};
@@ -339,6 +349,7 @@ int queue_list_entries(cls_method_context_t hctx, const cls_queue_list_op& op, c
           // Copy unprocessed data to bl
           bl_chunk.splice(index, size_to_process, &bl);
           offset_populated = true;
           // Copy unprocessed data to bl
           bl_chunk.splice(index, size_to_process, &bl);
           offset_populated = true;
+          last_marker = entry.marker;
           CLS_LOG(10, "INFO: queue_list_entries: not enough data to read entry start and data size, breaking out!\n");
           break;
         }
           CLS_LOG(10, "INFO: queue_list_entries: not enough data to read entry start and data size, breaking out!\n");
           break;
         }
@@ -355,6 +366,7 @@ int queue_list_entries(cls_method_context_t hctx, const cls_queue_list_op& op, c
         it.copy(size_to_process, bl);
         offset_populated = true;
         entry_start_processed = true;
         it.copy(size_to_process, bl);
         offset_populated = true;
         entry_start_processed = true;
+        last_marker = entry.marker;
         CLS_LOG(10, "INFO: queue_list_entries(): not enough data to read data, breaking out!\n");
         break;
       }
         CLS_LOG(10, "INFO: queue_list_entries(): not enough data to read data, breaking out!\n");
         break;
       }
@@ -365,6 +377,7 @@ int queue_list_entries(cls_method_context_t hctx, const cls_queue_list_op& op, c
       data_size = 0;
       entry_start = 0;
       num_ops++;
       data_size = 0;
       entry_start = 0;
       num_ops++;
+      last_marker.clear();
       if (num_ops == op.max) {
         CLS_LOG(10, "INFO: queue_list_entries(): num_ops is same as op.max, hence breaking out from inner loop!\n");
         break;
       if (num_ops == op.max) {
         CLS_LOG(10, "INFO: queue_list_entries(): num_ops is same as op.max, hence breaking out from inner loop!\n");
         break;
index 976e49ea52e114d5050ccb048b09a0c2535ea0ad..f45fb2df22fc9c4a8b36d9decd7d7eddc53488aa 100644 (file)
@@ -361,7 +361,9 @@ static int cls_rgw_gc_queue_remove_entries(cls_method_context_t hctx, bufferlist
   }
 
   //Update urgent data map
   }
 
   //Update urgent data map
+  head.bl_urgent_data.clear();
   encode(urgent_data, head.bl_urgent_data);
   encode(urgent_data, head.bl_urgent_data);
+  CLS_LOG(5, "INFO: cls_rgw_gc_queue_remove_entries(): Urgent data size is %u\n", head.bl_urgent_data.length());
 
   return queue_write_head(hctx, head);
 }
 
   return queue_write_head(hctx, head);
 }
index eb6b721e12e39f4c57437104be1fe30d6d073ded..dd4958d401cba16691da81a8986fef02c9059652 100644 (file)
@@ -659,6 +659,7 @@ int md_config_t::parse_argv(ConfigValues& values,
       set_val_or_die(values, tracker, "daemonize", "false");
     }
     else if (ceph_argparse_flag(args, i, "-d", (char*)NULL)) {
       set_val_or_die(values, tracker, "daemonize", "false");
     }
     else if (ceph_argparse_flag(args, i, "-d", (char*)NULL)) {
+      set_val_or_die(values, tracker, "fuse_debug", "true");
       set_val_or_die(values, tracker, "daemonize", "false");
       set_val_or_die(values, tracker, "log_file", "");
       set_val_or_die(values, tracker, "log_to_stderr", "true");
       set_val_or_die(values, tracker, "daemonize", "false");
       set_val_or_die(values, tracker, "log_file", "");
       set_val_or_die(values, tracker, "log_to_stderr", "true");
index bee70445daadee514c1bd68b5689734d86d51fc9..b0562247dda99cac9344264548cfffa0e3550c54 100644 (file)
@@ -1290,6 +1290,8 @@ OPTION(rgw_service_provider_name, OPT_STR) //service provider name which is cont
 OPTION(rgw_content_length_compat, OPT_BOOL) // Check both HTTP_CONTENT_LENGTH and CONTENT_LENGTH in fcgi env
 OPTION(rgw_lifecycle_work_time, OPT_STR) //job process lc  at 00:00-06:00s
 OPTION(rgw_lc_lock_max_time, OPT_INT)  // total run time for a single lc processor work
 OPTION(rgw_content_length_compat, OPT_BOOL) // Check both HTTP_CONTENT_LENGTH and CONTENT_LENGTH in fcgi env
 OPTION(rgw_lifecycle_work_time, OPT_STR) //job process lc  at 00:00-06:00s
 OPTION(rgw_lc_lock_max_time, OPT_INT)  // total run time for a single lc processor work
+OPTION(rgw_lc_max_worker, OPT_INT)// number of (parellized) LCWorker threads
+OPTION(rgw_lc_max_wp_worker, OPT_INT)// number of per-LCWorker pool threads
 OPTION(rgw_lc_max_objs, OPT_INT)
 OPTION(rgw_lc_max_rules, OPT_U32)  // Max rules set on one bucket
 OPTION(rgw_lc_debug_interval, OPT_INT)  // Debug run interval, in seconds
 OPTION(rgw_lc_max_objs, OPT_INT)
 OPTION(rgw_lc_max_rules, OPT_U32)  // Max rules set on one bucket
 OPTION(rgw_lc_debug_interval, OPT_INT)  // Debug run interval, in seconds
index f44c03f6c3b2db8d5f38506364e03dfc519540af..b9d5b675a0a3e43e025a5d70d8018f4fd52b4ff6 100644 (file)
@@ -4004,7 +4004,8 @@ std::vector<Option> get_global_options() {
     .set_description(""),
 
     Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_DEV)
     .set_description(""),
 
     Option("bluefs_allocator", Option::TYPE_STR, Option::LEVEL_DEV)
-    .set_default("bitmap")
+    .set_default("hybrid")
+    .set_enum_allowed({"bitmap", "stupid", "avl", "hybrid"})
     .set_description(""),
 
     Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
     .set_description(""),
 
     Option("bluefs_preextend_wal_files", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
@@ -4371,8 +4372,8 @@ std::vector<Option> get_global_options() {
     .set_description("Key value database to use for bluestore"),
 
     Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
     .set_description("Key value database to use for bluestore"),
 
     Option("bluestore_allocator", Option::TYPE_STR, Option::LEVEL_ADVANCED)
-    .set_default("bitmap")
-    .set_enum_allowed({"bitmap", "stupid", "avl"})
+    .set_default("hybrid")
+    .set_enum_allowed({"bitmap", "stupid", "avl", "hybrid"})
     .set_description("Allocator policy")
     .set_long_description("Allocator to use for bluestore.  Stupid should only be used for testing."),
 
     .set_description("Allocator policy")
     .set_long_description("Allocator to use for bluestore.  Stupid should only be used for testing."),
 
@@ -4626,6 +4627,10 @@ std::vector<Option> get_global_options() {
     .set_default(4)
     .set_description(""),
 
     .set_default(4)
     .set_description(""),
 
+    Option("bluestore_hybrid_alloc_mem_cap", Option::TYPE_UINT, Option::LEVEL_DEV)
+    .set_default(64_M)
+    .set_description("Maximum RAM hybrid allocator should use before enabling bitmap supplement"),
+
     Option("bluestore_volume_selection_policy", Option::TYPE_STR, Option::LEVEL_DEV)
     .set_default("rocksdb_original")
     .set_enum_allowed({ "rocksdb_original", "use_some_extra" })
     Option("bluestore_volume_selection_policy", Option::TYPE_STR, Option::LEVEL_DEV)
     .set_default("rocksdb_original")
     .set_enum_allowed({ "rocksdb_original", "use_some_extra" })
@@ -5532,20 +5537,34 @@ std::vector<Option> get_rgw_options() {
     .set_long_description("Local time window in which the lifecycle maintenance thread can work."),
 
     Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_DEV)
     .set_long_description("Local time window in which the lifecycle maintenance thread can work."),
 
     Option("rgw_lc_lock_max_time", Option::TYPE_INT, Option::LEVEL_DEV)
-    .set_default(60)
+    .set_default(90)
     .set_description(""),
 
     Option("rgw_lc_thread_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(0)
     .set_description("Delay after processing of bucket listing chunks (i.e., per 1000 entries) in milliseconds"),
 
     .set_description(""),
 
     Option("rgw_lc_thread_delay", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(0)
     .set_description("Delay after processing of bucket listing chunks (i.e., per 1000 entries) in milliseconds"),
 
+    Option("rgw_lc_max_worker", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+    .set_default(3)
+    .set_description("Number of LCWorker tasks that will be run in parallel")
+    .set_long_description(
+      "Number of LCWorker tasks that will run in parallel--used to permit >1 "
+      "bucket/index shards to be processed simultaneously"),
+
+    Option("rgw_lc_max_wp_worker", Option::TYPE_INT, Option::LEVEL_ADVANCED)
+    .set_default(3)
+    .set_description("Number of workpool threads per LCWorker")
+    .set_long_description(
+      "Number of threads in per-LCWorker workpools--used to accelerate "
+      "per-bucket processing"),
+
     Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(32)
     .set_description("Number of lifecycle data shards")
     .set_long_description(
     Option("rgw_lc_max_objs", Option::TYPE_INT, Option::LEVEL_ADVANCED)
     .set_default(32)
     .set_description("Number of lifecycle data shards")
     .set_long_description(
-          "Number of RADOS objects to use for storing lifecycle index. This can affect "
-          "concurrency of lifecycle maintenance, but requires multiple RGW processes "
-          "running on the zone to be utilized."),
+          "Number of RADOS objects to use for storing lifecycle index. This "
+         "affects concurrency of lifecycle maintenance, as shards can be "
+          "processed in parallel."),
 
     Option("rgw_lc_max_rules", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
     .set_default(1000)
 
     Option("rgw_lc_max_rules", Option::TYPE_UINT, Option::LEVEL_ADVANCED)
     .set_default(1000)
@@ -8336,9 +8355,11 @@ std::vector<Option> get_mds_client_options() {
     .set_default(true)
     .set_description("pass atomic_o_trunc flag to FUSE on mount"),
 
     .set_default(true)
     .set_description("pass atomic_o_trunc flag to FUSE on mount"),
 
-    Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_DEV)
+    Option("fuse_debug", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
     .set_default(false)
     .set_default(false)
-    .set_description(""),
+    .set_flag(Option::FLAG_STARTUP)
+    .set_flag(Option::FLAG_NO_MON_UPDATE)
+    .set_description("enable debugging for the libfuse"),
 
     Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
     .set_default(true)
 
     Option("fuse_multithreaded", Option::TYPE_BOOL, Option::LEVEL_ADVANCED)
     .set_default(true)
index a0fbeef131fbd21317e500f81489d1917dd5c438..1d06ce6eea6c062dc98a3a54ad5a102a6dbc08f5 100644 (file)
@@ -36,6 +36,7 @@ list(APPEND crimson_alien_srcs
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/bluestore_types.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/fastbmap_allocator_impl.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/FreelistManager.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/bluestore_types.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/fastbmap_allocator_impl.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/FreelistManager.cc
+  ${PROJECT_SOURCE_DIR}/src/os/bluestore/HybridAllocator.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/io_uring.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/StupidAllocator.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/BitmapAllocator.cc)
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/io_uring.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/StupidAllocator.cc
   ${PROJECT_SOURCE_DIR}/src/os/bluestore/BitmapAllocator.cc)
index 45881930b87b4eb15dfc6288df5aa2431401f60e..c95fd19408c257b84d04978455a16ac7fbe3d973 100644 (file)
 #ifndef CEPH_FUSE_H
 #define CEPH_FUSE_H
 
 #ifndef CEPH_FUSE_H
 #define CEPH_FUSE_H
 
-#define FUSE_USE_VERSION 30
-#include "acconfig.h"
+/*
+ * The API version that we want to use, regardless of what the
+ * library version is. Note that this must be defined before
+ * fuse.h is included.
+ */
+#ifndef FUSE_USE_VERSION
+#define FUSE_USE_VERSION       35
+#endif
+
 #include <fuse.h>
 #include <fuse.h>
+#include "acconfig.h"
+
+/*
+ * Redefine the FUSE_VERSION macro defined in "fuse_common.h"
+ * header file, because the MINOR numner has been forgotten to
+ * update since libfuse 3.2 to 3.8. We need to fetch the MINOR
+ * number from pkgconfig file.
+ */
+#ifdef FUSE_VERSION
+#undef FUSE_VERSION
+#define FUSE_VERSION FUSE_MAKE_VERSION(CEPH_FUSE_MAJOR_VERSION, CEPH_FUSE_MINOR_VERSION)
+#endif
 
 static inline int filler_compat(fuse_fill_dir_t filler,
                                 void *buf, const char *name,
 
 static inline int filler_compat(fuse_fill_dir_t filler,
                                 void *buf, const char *name,
diff --git a/ceph/src/include/cephfs/ceph_ll_client.h b/ceph/src/include/cephfs/ceph_ll_client.h
new file mode 100644 (file)
index 0000000..4f3d423
--- /dev/null
@@ -0,0 +1,144 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+/*
+ * scalable distributed file system
+ *
+ * Copyright (C) Jeff Layton <jlayton@redhat.com>
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation.  See file COPYING.
+ */
+
+#ifndef CEPH_CEPH_LL_CLIENT_H
+#define CEPH_CEPH_LL_CLIENT_H
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+
+class Fh;
+
+struct inodeno_t;
+struct vinodeno_t;
+typedef struct vinodeno_t vinodeno;
+
+#else /* __cplusplus */
+
+typedef struct Fh Fh;
+
+typedef struct inodeno_t {
+  uint64_t val;
+} inodeno_t;
+
+typedef struct _snapid_t {
+  uint64_t val;
+} snapid_t;
+
+typedef struct vinodeno_t {
+  inodeno_t ino;
+  snapid_t snapid;
+} vinodeno_t;
+
+#endif /* __cplusplus */
+
+/*
+ * Heavily borrowed from David Howells' draft statx patchset.
+ *
+ * Since the xstat patches are still a work in progress, we borrow its data
+ * structures and #defines to implement ceph_getattrx. Once the xstat stuff
+ * has been merged we should drop this and switch over to using that instead.
+ */
+struct ceph_statx {
+       uint32_t        stx_mask;
+       uint32_t        stx_blksize;
+       uint32_t        stx_nlink;
+       uint32_t        stx_uid;
+       uint32_t        stx_gid;
+       uint16_t        stx_mode;
+       uint64_t        stx_ino;
+       uint64_t        stx_size;
+       uint64_t        stx_blocks;
+       dev_t           stx_dev;
+       dev_t           stx_rdev;
+       struct timespec stx_atime;
+       struct timespec stx_ctime;
+       struct timespec stx_mtime;
+       struct timespec stx_btime;
+       uint64_t        stx_version;
+};
+
+#define CEPH_STATX_MODE                0x00000001U     /* Want/got stx_mode */
+#define CEPH_STATX_NLINK       0x00000002U     /* Want/got stx_nlink */
+#define CEPH_STATX_UID         0x00000004U     /* Want/got stx_uid */
+#define CEPH_STATX_GID         0x00000008U     /* Want/got stx_gid */
+#define CEPH_STATX_RDEV                0x00000010U     /* Want/got stx_rdev */
+#define CEPH_STATX_ATIME       0x00000020U     /* Want/got stx_atime */
+#define CEPH_STATX_MTIME       0x00000040U     /* Want/got stx_mtime */
+#define CEPH_STATX_CTIME       0x00000080U     /* Want/got stx_ctime */
+#define CEPH_STATX_INO         0x00000100U     /* Want/got stx_ino */
+#define CEPH_STATX_SIZE                0x00000200U     /* Want/got stx_size */
+#define CEPH_STATX_BLOCKS      0x00000400U     /* Want/got stx_blocks */
+#define CEPH_STATX_BASIC_STATS 0x000007ffU     /* The stuff in the normal stat struct */
+#define CEPH_STATX_BTIME       0x00000800U     /* Want/got stx_btime */
+#define CEPH_STATX_VERSION     0x00001000U     /* Want/got stx_version */
+#define CEPH_STATX_ALL_STATS   0x00001fffU     /* All supported stats */
+
+/*
+ * Compatibility macros until these defines make their way into glibc
+ */
+#ifndef AT_NO_ATTR_SYNC
+#define AT_NO_ATTR_SYNC                0x4000 /* Don't sync attributes with the server */
+#endif
+
+/*
+ * The statx interfaces only allow these flags. In order to allow us to add
+ * others in the future, we disallow setting any that aren't recognized.
+ */
+#define CEPH_REQ_FLAG_MASK             (AT_SYMLINK_NOFOLLOW|AT_NO_ATTR_SYNC)
+
+/* delegation recalls */
+typedef void (*ceph_deleg_cb_t)(Fh *fh, void *priv);
+
+/* inode data/metadata invalidation */
+typedef void (*client_ino_callback_t)(void *handle, vinodeno_t ino,
+             int64_t off, int64_t len);
+
+/* dentry invalidation */
+typedef void (*client_dentry_callback_t)(void *handle, vinodeno_t dirino,
+                                        vinodeno_t ino, const char *name,
+                                        size_t len);
+
+/* remount entire fs */
+typedef int (*client_remount_callback_t)(void *handle);
+
+/* lock request interrupted */
+typedef void (*client_switch_interrupt_callback_t)(void *handle, void *data);
+
+/* fetch umask of actor */
+typedef mode_t (*client_umask_callback_t)(void *handle);
+
+/* request that application release Inode references */
+typedef void (*client_ino_release_t)(void *handle, vinodeno_t ino);
+
+/*
+ * The handle is an opaque value that gets passed to some callbacks. Any fields
+ * set to NULL will be left alone. There is no way to unregister callbacks.
+ */
+struct ceph_client_callback_args {
+  void *handle;
+  client_ino_callback_t ino_cb;
+  client_dentry_callback_t dentry_cb;
+  client_switch_interrupt_callback_t switch_intr_cb;
+  client_remount_callback_t remount_cb;
+  client_umask_callback_t umask_cb;
+  client_ino_release_t ino_release_cb;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CEPH_STATX_H */
+
diff --git a/ceph/src/include/cephfs/ceph_statx.h b/ceph/src/include/cephfs/ceph_statx.h
deleted file mode 100644 (file)
index f27fa29..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
-// vim: ts=8 sw=2 smarttab
-/*
- * scalable distributed file system
- *
- * Copyright (C) Jeff Layton <jlayton@redhat.com>
- *
- * Heavily borrowed from David Howells' draft statx patchset.
- *
- * This is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License version 2.1, as published by the Free Software
- * Foundation.  See file COPYING.
- *
- */
-
-#ifndef CEPH_CEPH_STATX_H
-#define CEPH_CEPH_STATX_H
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Since the xstat patches are still a work in progress, we borrow its data
- * structures and #defines to implement ceph_getattrx. Once the xstat stuff
- * has been merged we should drop this and switch over to using that instead.
- */
-struct ceph_statx {
-       uint32_t        stx_mask;
-       uint32_t        stx_blksize;
-       uint32_t        stx_nlink;
-       uint32_t        stx_uid;
-       uint32_t        stx_gid;
-       uint16_t        stx_mode;
-       uint64_t        stx_ino;
-       uint64_t        stx_size;
-       uint64_t        stx_blocks;
-       dev_t           stx_dev;
-       dev_t           stx_rdev;
-       struct timespec stx_atime;
-       struct timespec stx_ctime;
-       struct timespec stx_mtime;
-       struct timespec stx_btime;
-       uint64_t        stx_version;
-};
-
-#define CEPH_STATX_MODE                0x00000001U     /* Want/got stx_mode */
-#define CEPH_STATX_NLINK       0x00000002U     /* Want/got stx_nlink */
-#define CEPH_STATX_UID         0x00000004U     /* Want/got stx_uid */
-#define CEPH_STATX_GID         0x00000008U     /* Want/got stx_gid */
-#define CEPH_STATX_RDEV                0x00000010U     /* Want/got stx_rdev */
-#define CEPH_STATX_ATIME       0x00000020U     /* Want/got stx_atime */
-#define CEPH_STATX_MTIME       0x00000040U     /* Want/got stx_mtime */
-#define CEPH_STATX_CTIME       0x00000080U     /* Want/got stx_ctime */
-#define CEPH_STATX_INO         0x00000100U     /* Want/got stx_ino */
-#define CEPH_STATX_SIZE                0x00000200U     /* Want/got stx_size */
-#define CEPH_STATX_BLOCKS      0x00000400U     /* Want/got stx_blocks */
-#define CEPH_STATX_BASIC_STATS 0x000007ffU     /* The stuff in the normal stat struct */
-#define CEPH_STATX_BTIME       0x00000800U     /* Want/got stx_btime */
-#define CEPH_STATX_VERSION     0x00001000U     /* Want/got stx_version */
-#define CEPH_STATX_ALL_STATS   0x00001fffU     /* All supported stats */
-
-/*
- * Compatibility macros until these defines make their way into glibc
- */
-#ifndef AT_NO_ATTR_SYNC
-#define AT_NO_ATTR_SYNC                0x4000 /* Don't sync attributes with the server */
-#endif
-
-/*
- * The statx interfaces only allow these flags. In order to allow us to add
- * others in the future, we disallow setting any that aren't recognized.
- */
-#define CEPH_REQ_FLAG_MASK             (AT_SYMLINK_NOFOLLOW|AT_NO_ATTR_SYNC)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* CEPH_STATX_H */
-
index cfbe68a08b8558d1002e49bc8aa97196fd76a8c5..725fe3cf96de4c6ac3749990bcc7d773d58c7a6d 100644 (file)
@@ -27,7 +27,7 @@
 #include <stdbool.h>
 #include <fcntl.h>
 
 #include <stdbool.h>
 #include <fcntl.h>
 
-#include "ceph_statx.h"
+#include "ceph_ll_client.h"
 
 #ifdef __cplusplus
 namespace ceph::common {
 
 #ifdef __cplusplus
 namespace ceph::common {
@@ -78,27 +78,7 @@ struct ceph_file_layout {
        uint32_t fl_pg_pool;      /* namespace, crush ruleset, rep level */
 } __attribute__ ((packed));
 
        uint32_t fl_pg_pool;      /* namespace, crush ruleset, rep level */
 } __attribute__ ((packed));
 
-
-typedef struct inodeno_t {
-  uint64_t val;
-} inodeno_t;
-
-typedef struct _snapid_t {
-  uint64_t val;
-} snapid_t;
-
-typedef struct vinodeno_t {
-  inodeno_t ino;
-  snapid_t snapid;
-} vinodeno_t;
-
-typedef struct Fh Fh;
 struct CephContext;
 struct CephContext;
-#else /* _cplusplus */
-
-struct inodeno_t;
-struct vinodeno_t;
-typedef struct vinodeno_t vinodeno;
 #endif /* ! __cplusplus */
 
 struct UserPerm;
 #endif /* ! __cplusplus */
 
 struct UserPerm;
@@ -1794,7 +1774,6 @@ int ceph_ll_lazyio(struct ceph_mount_info *cmount, Fh *fh, int enable);
  * needs, but it should take care to choose a value that allows it to avoid
  * forcible eviction from the cluster in the event of an application bug.
  */
  * needs, but it should take care to choose a value that allows it to avoid
  * forcible eviction from the cluster in the event of an application bug.
  */
-typedef void (*ceph_deleg_cb_t)(struct Fh *fh, void *priv);
 
 /* Commands for manipulating delegation state */
 #ifndef CEPH_DELEGATION_NONE
 
 /* Commands for manipulating delegation state */
 #ifndef CEPH_DELEGATION_NONE
@@ -1893,6 +1872,16 @@ int ceph_start_reclaim(struct ceph_mount_info *cmount,
  */
 void ceph_finish_reclaim(struct ceph_mount_info *cmount);
 
  */
 void ceph_finish_reclaim(struct ceph_mount_info *cmount);
 
+/**
+ * Register a set of callbacks to be used with this cmount
+ * @param cmount the ceph mount handle on which the cb's should be registerd
+ * @param args   callback arguments to register with the cmount
+ *
+ * Any fields set to NULL will be ignored. There currently is no way to
+ * unregister these callbacks, so this is a one-way change.
+ */
+void ceph_ll_register_callbacks(struct ceph_mount_info *cmount,
+                               struct ceph_client_callback_args *args);
 #ifdef __cplusplus
 }
 #endif
 #ifdef __cplusplus
 }
 #endif
index 1eb7807ed4acd992029261186bb90a3c2345fc32..6778155640f5fca749fc3b8512452f0f22888ef0 100644 (file)
 /* Define if you have fuse */
 #cmakedefine HAVE_LIBFUSE
 
 /* Define if you have fuse */
 #cmakedefine HAVE_LIBFUSE
 
+/* Define version major */
+#define CEPH_FUSE_MAJOR_VERSION @FUSE_MAJOR_VERSION@
+
+/* Define version minor */
+#define CEPH_FUSE_MINOR_VERSION @FUSE_MINOR_VERSION@
+
 /* Define to 1 if you have libxfs */
 #cmakedefine HAVE_LIBXFS 1
 
 /* Define to 1 if you have libxfs */
 #cmakedefine HAVE_LIBXFS 1
 
index ebc8e932825b7d136d270007c513b034b7ad2a63..b69a0b2b7b2c63f16a2b21f0cde59426b5af9cd8 100644 (file)
@@ -116,7 +116,7 @@ public:
       goto fail;
 
     {
       goto fail;
 
     {
-      client_callback_args args = {};
+      ceph_client_callback_args args = {};
       args.handle = this;
       args.umask_cb = umask_cb;
       client->ll_register_callbacks(&args);
       args.handle = this;
       args.umask_cb = umask_cb;
       client->ll_register_callbacks(&args);
@@ -2007,3 +2007,9 @@ extern "C" void ceph_finish_reclaim(class ceph_mount_info *cmount)
 {
   cmount->get_client()->finish_reclaim();
 }
 {
   cmount->get_client()->finish_reclaim();
 }
+
+extern "C" void ceph_ll_register_callbacks(class ceph_mount_info *cmount,
+                                          struct ceph_client_callback_args *args)
+{
+  cmount->get_client()->ll_register_callbacks(args);
+}
index 4026fb934595af9651644dc871979d6ee0ec50dd..74bd121bad7df3b650ef189d57e7404e0cdc9d17 100644 (file)
@@ -807,9 +807,9 @@ public:
       read_flags = 0;
       auto read_policy = config.get_val<std::string>("rbd_read_from_replica_policy");
       if (read_policy == "balance") {
       read_flags = 0;
       auto read_policy = config.get_val<std::string>("rbd_read_from_replica_policy");
       if (read_policy == "balance") {
-        read_flags |= CEPH_OSD_FLAG_BALANCE_READS;
+        read_flags |= librados::OPERATION_BALANCE_READS;
       } else if (read_policy == "localize") {
       } else if (read_policy == "localize") {
-        read_flags |= CEPH_OSD_FLAG_LOCALIZE_READS;
+        read_flags |= librados::OPERATION_LOCALIZE_READS;
       }
     }
 
       }
     }
 
index 11f33b1d40c669ac7b0753da4ccb8284fef0099e..79908cf18dc43d72067187b9b1dde2e569f2859f 100644 (file)
@@ -136,7 +136,7 @@ namespace librbd {
     ceph::mutex async_ops_lock; // protects async_ops and async_requests
     ceph::mutex copyup_list_lock; // protects copyup_waiting_list
 
     ceph::mutex async_ops_lock; // protects async_ops and async_requests
     ceph::mutex copyup_list_lock; // protects copyup_waiting_list
 
-    unsigned extra_read_flags;
+    unsigned extra_read_flags;  // librados::OPERATION_*
 
     bool old_format;
     uint8_t order;
 
     bool old_format;
     uint8_t order;
@@ -208,7 +208,7 @@ namespace librbd {
     bool clone_copy_on_read;
     bool enable_alloc_hint;
     uint32_t alloc_hint_flags = 0U;
     bool clone_copy_on_read;
     bool enable_alloc_hint;
     uint32_t alloc_hint_flags = 0U;
-    uint32_t read_flags = 0U;
+    uint32_t read_flags = 0U;  // librados::OPERATION_*
     uint32_t discard_granularity_bytes = 0;
     bool blkin_trace_all;
     uint64_t mirroring_replay_delay;
     uint32_t discard_granularity_bytes = 0;
     bool blkin_trace_all;
     uint64_t mirroring_replay_delay;
index 0014cdf3d9149f47869504d5441c255d33d9d265..3d9a85f1d27c893b73c878e2d8b7e835fd7c2ef9 100644 (file)
@@ -324,7 +324,7 @@ void Watcher::handle_rewatch_callback(int r) {
     if (m_unregister_watch_ctx != nullptr) {
       m_watch_state = WATCH_STATE_IDLE;
       std::swap(unregister_watch_ctx, m_unregister_watch_ctx);
     if (m_unregister_watch_ctx != nullptr) {
       m_watch_state = WATCH_STATE_IDLE;
       std::swap(unregister_watch_ctx, m_unregister_watch_ctx);
-    } else if (r == -ENOENT) {
+    } else if (r == -EBLACKLISTED || r == -ENOENT) {
       m_watch_state = WATCH_STATE_IDLE;
     } else if (r < 0 || m_watch_error) {
       watch_error = true;
       m_watch_state = WATCH_STATE_IDLE;
     } else if (r < 0 || m_watch_error) {
       watch_error = true;
index f4350c8ad27d9085abfcad926fe6ee2971cd4256..ba99a14bb21c89aa129c05a5c058acf174fc5c27 100644 (file)
@@ -1123,7 +1123,7 @@ int validate_pool(IoCtx &io_ctx, CephContext *cct) {
     uint64_t features = src->features;
     uint64_t src_size = src->get_image_size(src->snap_id);
     src->image_lock.unlock_shared();
     uint64_t features = src->features;
     uint64_t src_size = src->get_image_size(src->snap_id);
     src->image_lock.unlock_shared();
-    uint64_t format = src->old_format ? 1 : 2;
+    uint64_t format = 2;
     if (opts.get(RBD_IMAGE_OPTION_FORMAT, &format) != 0) {
       opts.set(RBD_IMAGE_OPTION_FORMAT, format);
     }
     if (opts.get(RBD_IMAGE_OPTION_FORMAT, &format) != 0) {
       opts.set(RBD_IMAGE_OPTION_FORMAT, format);
     }
index 2d2dd874a80a4093b659c9f7a457aee46c6673a2..05652d1c9dd3c6e705ee2e46cc4541b3b1492696 100644 (file)
@@ -219,16 +219,15 @@ Context *DisableRequest<I>::handle_get_clients(int *result) {
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
+  std::unique_lock locker{m_lock};
+  ceph_assert(m_current_ops.empty());
+
   if (*result < 0) {
     lderr(cct) << "failed to get registered clients: " << cpp_strerror(*result)
                << dendl;
     return m_on_finish;
   }
 
   if (*result < 0) {
     lderr(cct) << "failed to get registered clients: " << cpp_strerror(*result)
                << dendl;
     return m_on_finish;
   }
 
-  std::lock_guard locker{m_lock};
-
-  ceph_assert(m_current_ops.empty());
-
   for (auto client : m_clients) {
     journal::ClientData client_data;
     auto bl_it = client.data.cbegin();
   for (auto client : m_clients) {
     journal::ClientData client_data;
     auto bl_it = client.data.cbegin();
@@ -276,6 +275,7 @@ Context *DisableRequest<I>::handle_get_clients(int *result) {
     } else if (!m_remove) {
       return m_on_finish;
     }
     } else if (!m_remove) {
       return m_on_finish;
     }
+    locker.unlock();
 
     // no mirror clients to unregister
     send_remove_mirror_image();
 
     // no mirror clients to unregister
     send_remove_mirror_image();
@@ -342,7 +342,7 @@ Context *DisableRequest<I>::handle_remove_snap(int *result,
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
-  std::lock_guard locker{m_lock};
+  std::unique_lock locker{m_lock};
 
   ceph_assert(m_current_ops[client_id] > 0);
   m_current_ops[client_id]--;
 
   ceph_assert(m_current_ops[client_id] > 0);
   m_current_ops[client_id]--;
@@ -360,6 +360,8 @@ Context *DisableRequest<I>::handle_remove_snap(int *result,
       if (m_ret[client_id] < 0) {
         return m_on_finish;
       }
       if (m_ret[client_id] < 0) {
         return m_on_finish;
       }
+      locker.unlock();
+
       send_remove_mirror_image();
       return nullptr;
     }
       send_remove_mirror_image();
       return nullptr;
     }
@@ -404,7 +406,7 @@ Context *DisableRequest<I>::handle_unregister_client(
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
   CephContext *cct = m_image_ctx->cct;
   ldout(cct, 10) << "r=" << *result << dendl;
 
-  std::lock_guard locker{m_lock};
+  std::unique_lock locker{m_lock};
   ceph_assert(m_current_ops[client_id] == 0);
   m_current_ops.erase(client_id);
 
   ceph_assert(m_current_ops[client_id] == 0);
   m_current_ops.erase(client_id);
 
@@ -422,6 +424,7 @@ Context *DisableRequest<I>::handle_unregister_client(
     *result = m_error_result;
     return m_on_finish;
   }
     *result = m_error_result;
     return m_on_finish;
   }
+  locker.unlock();
 
   send_get_clients();
   return nullptr;
 
   send_get_clients();
   return nullptr;
index 57908d996518dcee3f4075ab82c85565f44ed06a..24a56c8f428ce1dde89a2f5e2848bd18bec83be6 100644 (file)
@@ -1541,7 +1541,7 @@ void InodeStoreBase::decode_bare(bufferlist::const_iterator &bl,
     symlink = std::string_view(tmp);
   }
   decode(dirfragtree, bl);
     symlink = std::string_view(tmp);
   }
   decode(dirfragtree, bl);
-  decode(xattrs, bl);
+  decode_noshare(xattrs, bl);
   decode(snap_blob, bl);
 
   decode(old_inodes, bl);
   decode(snap_blob, bl);
 
   decode(old_inodes, bl);
@@ -1965,7 +1965,7 @@ void CInode::decode_lock_ixattr(bufferlist::const_iterator& p)
   utime_t tm;
   decode(tm, p);
   if (inode.ctime < tm) inode.ctime = tm;
   utime_t tm;
   decode(tm, p);
   if (inode.ctime < tm) inode.ctime = tm;
-  decode(xattrs, p);
+  decode_noshare(xattrs, p);
   DECODE_FINISH(p);
 }
 
   DECODE_FINISH(p);
 }
 
@@ -4066,7 +4066,7 @@ void CInode::_decode_base(bufferlist::const_iterator& p)
     symlink = std::string_view(tmp);
   }
   decode(dirfragtree, p);
     symlink = std::string_view(tmp);
   }
   decode(dirfragtree, p);
-  decode(xattrs, p);
+  decode_noshare(xattrs, p);
   decode(old_inodes, p);
   decode(damage_flags, p);
   decode_snap(p);
   decode(old_inodes, p);
   decode(damage_flags, p);
   decode_snap(p);
@@ -4483,7 +4483,11 @@ void CInode::validate_disk_state(CInode::validated_data *results,
       dout(20) << "ondisk_read_retval: " << results->backtrace.ondisk_read_retval << dendl;
       if (results->backtrace.ondisk_read_retval != 0) {
         results->backtrace.error_str << "failed to read off disk; see retval";
       dout(20) << "ondisk_read_retval: " << results->backtrace.ondisk_read_retval << dendl;
       if (results->backtrace.ondisk_read_retval != 0) {
         results->backtrace.error_str << "failed to read off disk; see retval";
-       goto next;
+        // we probably have a new unwritten file!
+        // so skip the backtrace scrub for this entry and say that all's well
+        if (in->is_dirty_parent())
+          results->backtrace.passed = true;
+        goto next;
       }
 
       // extract the backtrace, and compare it to a newly-constructed one
       }
 
       // extract the backtrace, and compare it to a newly-constructed one
@@ -4501,6 +4505,11 @@ void CInode::validate_disk_state(CInode::validated_data *results,
         }
         results->backtrace.error_str << "failed to decode on-disk backtrace ("
                                      << bl.length() << " bytes)!";
         }
         results->backtrace.error_str << "failed to decode on-disk backtrace ("
                                      << bl.length() << " bytes)!";
+        // we probably have a new unwritten file!
+        // so skip the backtrace scrub for this entry and say that all's well
+        if (in->is_dirty_parent())
+          results->backtrace.passed = true;
+
        goto next;
       }
 
        goto next;
       }
 
@@ -4508,8 +4517,12 @@ void CInode::validate_disk_state(CInode::validated_data *results,
                                              &equivalent, &divergent);
 
       if (divergent || memory_newer < 0) {
                                              &equivalent, &divergent);
 
       if (divergent || memory_newer < 0) {
-       // we're divergent, or on-disk version is newer
-       results->backtrace.error_str << "On-disk backtrace is divergent or newer";
+        // we're divergent, or on-disk version is newer
+        results->backtrace.error_str << "On-disk backtrace is divergent or newer";
+        // we probably have a new unwritten file!
+        // so skip the backtrace scrub for this entry and say that all's well
+        if (divergent && in->is_dirty_parent())
+          results->backtrace.passed = true;
       } else {
         results->backtrace.passed = true;
       }
       } else {
         results->backtrace.passed = true;
       }
index 5f0da6415c7c12f17d3f6970eb99718ee3da1cd1..c50815e94fe0d01c23b50aca06e277935a09b046 100644 (file)
@@ -104,6 +104,12 @@ public:
   damage_flags_t damage_flags = 0;
 };
 
   damage_flags_t damage_flags = 0;
 };
 
+inline void decode_noshare(InodeStoreBase::mempool_xattr_map& xattrs,
+                          ceph::buffer::list::const_iterator &p)
+{
+  decode_noshare<mempool::mds_co::pool_allocator>(xattrs, p);
+}
+
 class InodeStore : public InodeStoreBase {
 public:
   void encode(bufferlist &bl, uint64_t features) const {
 class InodeStore : public InodeStoreBase {
 public:
   void encode(bufferlist &bl, uint64_t features) const {
index b811db4870cf315f59bcc160d4bc5ede125453fd..9a249555da4e7e57ebbd45a45c1882548497c430 100644 (file)
@@ -1906,7 +1906,8 @@ bool Locker::xlock_start(SimpleLock *lock, MDRequestRef& mut)
   if (lock->get_parent()->is_auth()) {
     // auth
     while (1) {
   if (lock->get_parent()->is_auth()) {
     // auth
     while (1) {
-      if (lock->can_xlock(client) &&
+      if (mut->locking && // started xlock (not preempt other request)
+         lock->can_xlock(client) &&
          !(lock->get_state() == LOCK_LOCK_XLOCK &&     // client is not xlocker or
            in && in->issued_caps_need_gather(lock))) { // xlocker does not hold shared cap
        lock->set_state(LOCK_XLOCK);
          !(lock->get_state() == LOCK_LOCK_XLOCK &&     // client is not xlocker or
            in && in->issued_caps_need_gather(lock))) { // xlocker does not hold shared cap
        lock->set_state(LOCK_XLOCK);
@@ -3833,7 +3834,7 @@ bool Locker::_do_cap_update(CInode *in, Capability *cap,
     dout(7) << " xattrs v" << pi.inode.xattr_version << " -> " << m->head.xattr_version << dendl;
     pi.inode.xattr_version = m->head.xattr_version;
     auto p = m->xattrbl.cbegin();
     dout(7) << " xattrs v" << pi.inode.xattr_version << " -> " << m->head.xattr_version << dendl;
     pi.inode.xattr_version = m->head.xattr_version;
     auto p = m->xattrbl.cbegin();
-    decode(*pi.xattrs, p);
+    decode_noshare(*pi.xattrs, p);
     wrlock_force(&in->xattrlock, mut);
   }
   
     wrlock_force(&in->xattrlock, mut);
   }
   
index 095d65d9583ed13ae1f781a36edaff3c32b3f4a7..3aad27bf29ee718cadae0cc4f49bab3892b884dd 100644 (file)
@@ -83,14 +83,13 @@ class LogSegment {
   elist<CInode*>  dirty_dirfrag_nest;
   elist<CInode*>  dirty_dirfrag_dirfragtree;
 
   elist<CInode*>  dirty_dirfrag_nest;
   elist<CInode*>  dirty_dirfrag_dirfragtree;
 
-  elist<MDSlaveUpdate*> slave_updates{0}; // passed to begin() manually
-
   set<CInode*> truncating_inodes;
   interval_set<inodeno_t> purge_inodes;
   MDSContext* purged_cb = nullptr;
 
   map<int, ceph::unordered_set<version_t> > pending_commit_tids;  // mdstable
   set<metareqid_t> uncommitted_masters;
   set<CInode*> truncating_inodes;
   interval_set<inodeno_t> purge_inodes;
   MDSContext* purged_cb = nullptr;
 
   map<int, ceph::unordered_set<version_t> > pending_commit_tids;  // mdstable
   set<metareqid_t> uncommitted_masters;
+  set<metareqid_t> uncommitted_slaves;
   set<dirfrag_t> uncommitted_fragments;
 
   // client request ids
   set<dirfrag_t> uncommitted_fragments;
 
   // client request ids
index 5d50b39765e4f7a9ab746b77f4025ddd32835594..325cbfc88ecef8e58bd869805537dbaa38b61607 100644 (file)
@@ -2713,16 +2713,13 @@ void MDCache::send_slave_resolves()
   map<mds_rank_t, ref_t<MMDSResolve>> resolves;
 
   if (mds->is_resolve()) {
   map<mds_rank_t, ref_t<MMDSResolve>> resolves;
 
   if (mds->is_resolve()) {
-    for (map<mds_rank_t, map<metareqid_t, MDSlaveUpdate*> >::iterator p = uncommitted_slave_updates.begin();
-        p != uncommitted_slave_updates.end();
+    for (map<metareqid_t, uslave>::iterator p = uncommitted_slaves.begin();
+        p != uncommitted_slaves.end();
         ++p) {
         ++p) {
-      resolves[p->first] = make_message<MMDSResolve>();
-      for (map<metareqid_t, MDSlaveUpdate*>::iterator q = p->second.begin();
-          q != p->second.end();
-          ++q) {
-       dout(10) << " including uncommitted " << q->first << dendl;
-       resolves[p->first]->add_slave_request(q->first, false);
-      }
+      mds_rank_t master = p->second.master;
+      auto &m = resolves[master];
+      if (!m) m = make_message<MMDSResolve>();
+      m->add_slave_request(p->first, false);
     }
   } else {
     set<mds_rank_t> resolve_set;
     }
   } else {
     set<mds_rank_t> resolve_set;
@@ -3381,7 +3378,7 @@ void MDCache::handle_resolve_ack(const cref_t<MMDSResolveAck> &ack)
 
     if (mds->is_resolve()) {
       // replay
 
     if (mds->is_resolve()) {
       // replay
-      MDSlaveUpdate *su = get_uncommitted_slave_update(p.first, from);
+      MDSlaveUpdate *su = get_uncommitted_slave(p.first, from);
       ceph_assert(su);
 
       // log commit
       ceph_assert(su);
 
       // log commit
@@ -3390,7 +3387,7 @@ void MDCache::handle_resolve_ack(const cref_t<MMDSResolveAck> &ack)
                                     new C_MDC_SlaveCommit(this, from, p.first));
       mds->mdlog->flush();
 
                                     new C_MDC_SlaveCommit(this, from, p.first));
       mds->mdlog->flush();
 
-      finish_uncommitted_slave_update(p.first, from);
+      finish_uncommitted_slave(p.first);
     } else {
       MDRequestRef mdr = request_get(p.first);
       // information about master imported caps
     } else {
       MDRequestRef mdr = request_get(p.first);
       // information about master imported caps
@@ -3406,7 +3403,7 @@ void MDCache::handle_resolve_ack(const cref_t<MMDSResolveAck> &ack)
     dout(10) << " abort on slave " << metareq << dendl;
 
     if (mds->is_resolve()) {
     dout(10) << " abort on slave " << metareq << dendl;
 
     if (mds->is_resolve()) {
-      MDSlaveUpdate *su = get_uncommitted_slave_update(metareq, from);
+      MDSlaveUpdate *su = get_uncommitted_slave(metareq, from);
       ceph_assert(su);
 
       // perform rollback (and journal a rollback entry)
       ceph_assert(su);
 
       // perform rollback (and journal a rollback entry)
@@ -3443,24 +3440,45 @@ void MDCache::handle_resolve_ack(const cref_t<MMDSResolveAck> &ack)
   }
 }
 
   }
 }
 
-void MDCache::add_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master, MDSlaveUpdate *su)
+void MDCache::add_uncommitted_slave(metareqid_t reqid, LogSegment *ls, mds_rank_t master, MDSlaveUpdate *su)
 {
 {
-  ceph_assert(uncommitted_slave_updates[master].count(reqid) == 0);
-  uncommitted_slave_updates[master][reqid] = su;
+  auto const &ret = uncommitted_slaves.emplace(std::piecewise_construct,
+                                               std::forward_as_tuple(reqid),
+                                               std::forward_as_tuple());
+  ceph_assert(ret.second);
+  ls->uncommitted_slaves.insert(reqid);
+  uslave &u = ret.first->second;
+  u.master = master;
+  u.ls = ls;
+  u.su = su;
+  if (su == nullptr) {
+    return;
+  }
   for(set<CInode*>::iterator p = su->olddirs.begin(); p != su->olddirs.end(); ++p)
     uncommitted_slave_rename_olddir[*p]++;
   for(set<CInode*>::iterator p = su->unlinked.begin(); p != su->unlinked.end(); ++p)
     uncommitted_slave_unlink[*p]++;
 }
 
   for(set<CInode*>::iterator p = su->olddirs.begin(); p != su->olddirs.end(); ++p)
     uncommitted_slave_rename_olddir[*p]++;
   for(set<CInode*>::iterator p = su->unlinked.begin(); p != su->unlinked.end(); ++p)
     uncommitted_slave_unlink[*p]++;
 }
 
-void MDCache::finish_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master)
+void MDCache::finish_uncommitted_slave(metareqid_t reqid, bool assert_exist)
 {
 {
-  ceph_assert(uncommitted_slave_updates[master].count(reqid));
-  MDSlaveUpdate* su = uncommitted_slave_updates[master][reqid];
+  auto it = uncommitted_slaves.find(reqid);
+  if (it == uncommitted_slaves.end()) {
+    ceph_assert(!assert_exist);
+    return;
+  }
+  uslave &u = it->second;
+  MDSlaveUpdate* su = u.su;
+
+  if (!u.waiters.empty()) {
+    mds->queue_waiters(u.waiters);
+  }
+  u.ls->uncommitted_slaves.erase(reqid);
+  uncommitted_slaves.erase(it);
 
 
-  uncommitted_slave_updates[master].erase(reqid);
-  if (uncommitted_slave_updates[master].empty())
-    uncommitted_slave_updates.erase(master);
+  if (su == nullptr) {
+    return;
+  }
   // discard the non-auth subtree we renamed out of
   for(set<CInode*>::iterator p = su->olddirs.begin(); p != su->olddirs.end(); ++p) {
     CInode *diri = *p;
   // discard the non-auth subtree we renamed out of
   for(set<CInode*>::iterator p = su->olddirs.begin(); p != su->olddirs.end(); ++p) {
     CInode *diri = *p;
@@ -3497,23 +3515,26 @@ void MDCache::finish_uncommitted_slave_update(metareqid_t reqid, mds_rank_t mast
   delete su;
 }
 
   delete su;
 }
 
-MDSlaveUpdate* MDCache::get_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master)
+MDSlaveUpdate* MDCache::get_uncommitted_slave(metareqid_t reqid, mds_rank_t master)
 {
 
 {
 
-  MDSlaveUpdate* su = NULL;
-  if (uncommitted_slave_updates.count(master) &&
-      uncommitted_slave_updates[master].count(reqid)) {
-    su = uncommitted_slave_updates[master][reqid];
-    ceph_assert(su);
+  MDSlaveUpdate* su = nullptr;
+  auto it = uncommitted_slaves.find(reqid);
+  if (it != uncommitted_slaves.end() &&
+      it->second.master == master) {
+    su = it->second.su;
   }
   return su;
 }
 
   }
   return su;
 }
 
-void MDCache::finish_rollback(metareqid_t reqid) {
-  auto p = resolve_need_rollback.find(reqid);
+void MDCache::finish_rollback(metareqid_t reqid, MDRequestRef& mdr) {
+  auto p = resolve_need_rollback.find(mdr->reqid);
   ceph_assert(p != resolve_need_rollback.end());
   ceph_assert(p != resolve_need_rollback.end());
-  if (mds->is_resolve())
-    finish_uncommitted_slave_update(reqid, p->second);
+  if (mds->is_resolve()) {
+    finish_uncommitted_slave(reqid, false);
+  } else if (mdr) {
+    finish_uncommitted_slave(mdr->reqid, mdr->more()->slave_update_journaled);
+  }
   resolve_need_rollback.erase(p);
   maybe_finish_slave_resolve();
 }
   resolve_need_rollback.erase(p);
   maybe_finish_slave_resolve();
 }
@@ -12188,6 +12209,12 @@ void MDCache::rollback_uncommitted_fragment(dirfrag_t basedirfrag, frag_vec_t&&
   }
 }
 
   }
 }
 
+void MDCache::wait_for_uncommitted_fragments(MDSGather *gather)
+{
+  for (auto& p : uncommitted_fragments)
+    p.second.waiters.push_back(gather->new_sub());
+}
+
 void MDCache::rollback_uncommitted_fragments()
 {
   dout(10) << "rollback_uncommitted_fragments: " << uncommitted_fragments.size() << " pending" << dendl;
 void MDCache::rollback_uncommitted_fragments()
 {
   dout(10) << "rollback_uncommitted_fragments: " << uncommitted_fragments.size() << " pending" << dendl;
index 2c841481e32b0abde4ca337ed53778ed16995490..bb6759617a5a040fc74023ecede0547a17792780 100644 (file)
@@ -435,6 +435,12 @@ class MDCache {
   void committed_master_slave(metareqid_t r, mds_rank_t from);
   void finish_committed_masters();
 
   void committed_master_slave(metareqid_t r, mds_rank_t from);
   void finish_committed_masters();
 
+  void add_uncommitted_slave(metareqid_t reqid, LogSegment*, mds_rank_t, MDSlaveUpdate *su=nullptr);
+  void wait_for_uncommitted_slave(metareqid_t reqid, MDSContext *c) {
+    uncommitted_slaves.at(reqid).waiters.push_back(c);
+  }
+  void finish_uncommitted_slave(metareqid_t reqid, bool assert_exist=true);
+  MDSlaveUpdate* get_uncommitted_slave(metareqid_t reqid, mds_rank_t master);
   void _logged_slave_commit(mds_rank_t from, metareqid_t reqid);
 
   void set_recovery_set(set<mds_rank_t>& s);
   void _logged_slave_commit(mds_rank_t from, metareqid_t reqid);
 
   void set_recovery_set(set<mds_rank_t>& s);
@@ -463,7 +469,7 @@ class MDCache {
   void add_rollback(metareqid_t reqid, mds_rank_t master) {
     resolve_need_rollback[reqid] = master;
   }
   void add_rollback(metareqid_t reqid, mds_rank_t master) {
     resolve_need_rollback[reqid] = master;
   }
-  void finish_rollback(metareqid_t reqid);
+  void finish_rollback(metareqid_t reqid, MDRequestRef& mdr);
 
   // ambiguous imports
   void add_ambiguous_import(dirfrag_t base, const vector<dirfrag_t>& bounds);
 
   // ambiguous imports
   void add_ambiguous_import(dirfrag_t base, const vector<dirfrag_t>& bounds);
@@ -866,12 +872,16 @@ class MDCache {
   void send_dentry_unlink(CDentry *dn, CDentry *straydn, MDRequestRef& mdr);
 
   void wait_for_uncommitted_fragment(dirfrag_t dirfrag, MDSContext *c) {
   void send_dentry_unlink(CDentry *dn, CDentry *straydn, MDRequestRef& mdr);
 
   void wait_for_uncommitted_fragment(dirfrag_t dirfrag, MDSContext *c) {
-    ceph_assert(uncommitted_fragments.count(dirfrag));
-    uncommitted_fragments[dirfrag].waiters.push_back(c);
+    uncommitted_fragments.at(dirfrag).waiters.push_back(c);
+  }
+  bool is_any_uncommitted_fragment() const {
+    return !uncommitted_fragments.empty();
   }
   }
+  void wait_for_uncommitted_fragments(MDSGather *gather);
+  void rollback_uncommitted_fragments();
+
   void split_dir(CDir *dir, int byn);
   void merge_dir(CInode *diri, frag_t fg);
   void split_dir(CDir *dir, int byn);
   void merge_dir(CInode *diri, frag_t fg);
-  void rollback_uncommitted_fragments();
 
   void find_stale_fragment_freeze();
   void fragment_freeze_inc_num_waiters(CDir *dir);
 
   void find_stale_fragment_freeze();
   void fragment_freeze_inc_num_waiters(CDir *dir);
@@ -994,6 +1004,14 @@ class MDCache {
     bool recovering = false;
   };
 
     bool recovering = false;
   };
 
+  struct uslave {
+    uslave() {}
+    mds_rank_t master;
+    LogSegment *ls = nullptr;
+    MDSlaveUpdate *su = nullptr;
+    MDSContext::vec waiters;
+  };
+
   struct open_ino_info_t {
     open_ino_info_t() {}
     vector<inode_backpointer_t> ancestors;
   struct open_ino_info_t {
     open_ino_info_t() {}
     vector<inode_backpointer_t> ancestors;
@@ -1032,9 +1050,6 @@ class MDCache {
   void disambiguate_my_imports();
   void disambiguate_other_imports();
   void trim_unlinked_inodes();
   void disambiguate_my_imports();
   void disambiguate_other_imports();
   void trim_unlinked_inodes();
-  void add_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master, MDSlaveUpdate*);
-  void finish_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master);
-  MDSlaveUpdate* get_uncommitted_slave_update(metareqid_t reqid, mds_rank_t master);
 
   void send_slave_resolves();
   void send_subtree_resolves();
 
   void send_slave_resolves();
   void send_subtree_resolves();
@@ -1138,11 +1153,11 @@ class MDCache {
   // from MMDSResolves
   map<mds_rank_t, map<dirfrag_t, vector<dirfrag_t> > > other_ambiguous_imports;
 
   // from MMDSResolves
   map<mds_rank_t, map<dirfrag_t, vector<dirfrag_t> > > other_ambiguous_imports;
 
-  map<mds_rank_t, map<metareqid_t, MDSlaveUpdate*> > uncommitted_slave_updates;  // slave: for replay.
   map<CInode*, int> uncommitted_slave_rename_olddir;  // slave: preserve the non-auth dir until seeing commit.
   map<CInode*, int> uncommitted_slave_unlink;  // slave: preserve the unlinked inode until seeing commit.
 
   map<metareqid_t, umaster> uncommitted_masters;         // master: req -> slave set
   map<CInode*, int> uncommitted_slave_rename_olddir;  // slave: preserve the non-auth dir until seeing commit.
   map<CInode*, int> uncommitted_slave_unlink;  // slave: preserve the unlinked inode until seeing commit.
 
   map<metareqid_t, umaster> uncommitted_masters;         // master: req -> slave set
+  map<metareqid_t, uslave> uncommitted_slaves;  // slave: preserve the slave req until seeing commit.
 
   set<metareqid_t> pending_masters;
   map<int, set<metareqid_t> > ambiguous_slave_updates;
 
   set<metareqid_t> pending_masters;
   map<int, set<metareqid_t> > ambiguous_slave_updates;
index fdf62b6f1acddd9cb0b18a3c2bf4a3a866b2753b..94726a2cb4f45d2c77b7e30be5a163c0ed2aff35 100644 (file)
@@ -34,24 +34,30 @@ void MDSInternalContextWrapper::finish(int r)
   fin->complete(r);
 }
 
   fin->complete(r);
 }
 
-elist<MDSIOContextBase*> MDSIOContextBase::ctx_list(member_offset(MDSIOContextBase, list_item));
-ceph::spinlock MDSIOContextBase::ctx_list_lock;
+struct MDSIOContextList {
+  elist<MDSIOContextBase*> list;
+  ceph::spinlock lock;
+  MDSIOContextList() : list(member_offset(MDSIOContextBase, list_item)) {}
+  ~MDSIOContextList() {
+    list.clear(); // avoid assertion in elist's destructor
+  }
+} ioctx_list;
 
 MDSIOContextBase::MDSIOContextBase(bool track)
 {
   created_at = ceph::coarse_mono_clock::now();
   if (track) {
 
 MDSIOContextBase::MDSIOContextBase(bool track)
 {
   created_at = ceph::coarse_mono_clock::now();
   if (track) {
-    ctx_list_lock.lock();
-    ctx_list.push_back(&list_item);
-    ctx_list_lock.unlock();
+    ioctx_list.lock.lock();
+    ioctx_list.list.push_back(&list_item);
+    ioctx_list.lock.unlock();
   }
 }
 
 MDSIOContextBase::~MDSIOContextBase()
 {
   }
 }
 
 MDSIOContextBase::~MDSIOContextBase()
 {
-  ctx_list_lock.lock();
+  ioctx_list.lock.lock();
   list_item.remove_myself();
   list_item.remove_myself();
-  ctx_list_lock.unlock();
+  ioctx_list.lock.unlock();
 }
 
 bool MDSIOContextBase::check_ios_in_flight(ceph::coarse_mono_time cutoff,
 }
 
 bool MDSIOContextBase::check_ios_in_flight(ceph::coarse_mono_time cutoff,
@@ -61,8 +67,8 @@ bool MDSIOContextBase::check_ios_in_flight(ceph::coarse_mono_time cutoff,
   static const unsigned MAX_COUNT = 100;
   unsigned slow = 0;
 
   static const unsigned MAX_COUNT = 100;
   unsigned slow = 0;
 
-  ctx_list_lock.lock();
-  for (elist<MDSIOContextBase*>::iterator p = ctx_list.begin(); !p.end(); ++p) {
+  ioctx_list.lock.lock();
+  for (elist<MDSIOContextBase*>::iterator p = ioctx_list.list.begin(); !p.end(); ++p) {
     MDSIOContextBase *c = *p;
     if (c->created_at >= cutoff)
       break;
     MDSIOContextBase *c = *p;
     if (c->created_at >= cutoff)
       break;
@@ -72,7 +78,7 @@ bool MDSIOContextBase::check_ios_in_flight(ceph::coarse_mono_time cutoff,
     if (slow == 1)
       oldest = c->created_at;
   }
     if (slow == 1)
       oldest = c->created_at;
   }
-  ctx_list_lock.unlock();
+  ioctx_list.lock.unlock();
 
   if (slow > 0) {
     if (slow > MAX_COUNT)
 
   if (slow > 0) {
     if (slow > MAX_COUNT)
@@ -98,8 +104,10 @@ void MDSIOContextBase::complete(int r) {
   if (mds->is_daemon_stopping()) {
     dout(4) << "MDSIOContextBase::complete: dropping for stopping "
             << typeid(*this).name() << dendl;
   if (mds->is_daemon_stopping()) {
     dout(4) << "MDSIOContextBase::complete: dropping for stopping "
             << typeid(*this).name() << dendl;
-    delete this;
-  } else if (r == -EBLACKLISTED) {
+    return;
+  }
+
+  if (r == -EBLACKLISTED) {
     derr << "MDSIOContextBase: blacklisted!  Restarting..." << dendl;
     mds->respawn();
   } else {
     derr << "MDSIOContextBase: blacklisted!  Restarting..." << dendl;
     mds->respawn();
   } else {
index 78d251ee4b0741cf9ad3445b0f65278cff3ebd32..242690085cd98c87ecebf7b570ce1b5964a9baea 100644 (file)
@@ -111,9 +111,8 @@ public:
 private:
   ceph::coarse_mono_time created_at;
   elist<MDSIOContextBase*>::item list_item;
 private:
   ceph::coarse_mono_time created_at;
   elist<MDSIOContextBase*>::item list_item;
-
-  static elist<MDSIOContextBase*> ctx_list;
-  static ceph::spinlock ctx_list_lock;
+  
+  friend struct MDSIOContextList;
 };
 
 /**
 };
 
 /**
index 6c18068893d36138df16c657ece919811fec7123..93f687f25ede943b7a6f7fbdc0895090c1a215c4 100644 (file)
@@ -1890,6 +1890,14 @@ void MDSRank::rejoin_done()
   mdcache->show_subtrees();
   mdcache->show_cache();
 
   mdcache->show_subtrees();
   mdcache->show_cache();
 
+  if (mdcache->is_any_uncommitted_fragment()) {
+    dout(1) << " waiting for uncommitted fragments" << dendl;
+    MDSGatherBuilder gather(g_ceph_context, new C_MDS_VoidFn(this, &MDSRank::rejoin_done));
+    mdcache->wait_for_uncommitted_fragments(gather.get());
+    gather.activate();
+    return;
+  }
+
   // funny case: is our cache empty?  no subtrees?
   if (!mdcache->is_subtrees()) {
     if (whoami == 0) {
   // funny case: is our cache empty?  no subtrees?
   if (!mdcache->is_subtrees()) {
     if (whoami == 0) {
index 0b4070420d3793c7bade40c3caf1fe6b145db83b..8855d0af6b4056f74c80b4ad6a94a40a4a432f1b 100644 (file)
@@ -449,20 +449,16 @@ private:
 };
 
 struct MDSlaveUpdate {
 };
 
 struct MDSlaveUpdate {
-  MDSlaveUpdate(int oo, bufferlist &rbl, elist<MDSlaveUpdate*> &list) :
-    origop(oo),
-    item(this) {
+  MDSlaveUpdate(int oo, bufferlist &rbl) :
+    origop(oo) {
     rollback.claim(rbl);
     rollback.claim(rbl);
-    list.push_back(&item);
   }
   ~MDSlaveUpdate() {
   }
   ~MDSlaveUpdate() {
-    item.remove_myself();
     if (waiter)
       waiter->complete(0);
   }
   int origop;
   bufferlist rollback;
     if (waiter)
       waiter->complete(0);
   }
   int origop;
   bufferlist rollback;
-  elist<MDSlaveUpdate*>::item item;
   Context *waiter = nullptr;
   set<CInode*> olddirs;
   set<CInode*> unlinked;
   Context *waiter = nullptr;
   set<CInode*> olddirs;
   set<CInode*> unlinked;
index a671325b5191c90fc01db915b1daa18047240363..eace818ec3d8fec63854d175d8df526c5f05ac93 100644 (file)
@@ -588,8 +588,14 @@ void PurgeQueue::_execute_item(
   gather.set_finisher(new C_OnFinisher(
                       new LambdaContext([this, expire_to](int r){
     std::lock_guard l(lock);
   gather.set_finisher(new C_OnFinisher(
                       new LambdaContext([this, expire_to](int r){
     std::lock_guard l(lock);
-    _execute_item_complete(expire_to);
 
 
+    if (r == -EBLACKLISTED) {
+      finisher.queue(on_error, r);
+      on_error = nullptr;
+      return;
+    }
+
+    _execute_item_complete(expire_to);
     _consume();
 
     // Have we gone idle?  If so, do an extra write_head now instead of
     _consume();
 
     // Have we gone idle?  If so, do an extra write_head now instead of
index 3aade7aca79d77e349d97fb412f6efb4ae9574da..3bb03dd08ff8776b4063bab3fcd8bdf75072fad6 100644 (file)
@@ -3279,7 +3279,7 @@ CInode* Server::prepare_new_inode(MDRequestRef& mdr, CDir *dir, inodeno_t useino
 
     // xattrs on new inode?
     CInode::mempool_xattr_map xattrs;
 
     // xattrs on new inode?
     CInode::mempool_xattr_map xattrs;
-    decode(xattrs, p);
+    decode_noshare(xattrs, p);
     for (const auto &p : xattrs) {
       dout(10) << "prepare_new_inode setting xattr " << p.first << dendl;
       auto em = in->xattrs.emplace(std::piecewise_construct, std::forward_as_tuple(p.first), std::forward_as_tuple(p.second));
     for (const auto &p : xattrs) {
       dout(10) << "prepare_new_inode setting xattr " << p.first << dendl;
       auto em = in->xattrs.emplace(std::piecewise_construct, std::forward_as_tuple(p.first), std::forward_as_tuple(p.second));
@@ -6615,6 +6615,7 @@ void Server::handle_slave_link_prep(MDRequestRef& mdr)
   // commit case
   mdcache->predirty_journal_parents(mdr, &le->commit, dnl->get_inode(), 0, PREDIRTY_SHALLOW|PREDIRTY_PRIMARY);
   mdcache->journal_dirty_inode(mdr.get(), &le->commit, targeti);
   // commit case
   mdcache->predirty_journal_parents(mdr, &le->commit, dnl->get_inode(), 0, PREDIRTY_SHALLOW|PREDIRTY_PRIMARY);
   mdcache->journal_dirty_inode(mdr.get(), &le->commit, targeti);
+  mdcache->add_uncommitted_slave(mdr->reqid, mdr->ls, mdr->slave_to_mds);
 
   // set up commit waiter
   mdr->more()->slave_commit = new C_MDS_SlaveLinkCommit(this, mdr, targeti);
 
   // set up commit waiter
   mdr->more()->slave_commit = new C_MDS_SlaveLinkCommit(this, mdr, targeti);
@@ -6695,6 +6696,8 @@ void Server::_committed_slave(MDRequestRef& mdr)
 
   ceph_assert(g_conf()->mds_kill_link_at != 8);
 
 
   ceph_assert(g_conf()->mds_kill_link_at != 8);
 
+  bool assert_exist = mdr->more()->slave_update_journaled;
+  mdcache->finish_uncommitted_slave(mdr->reqid, assert_exist);
   auto req = make_message<MMDSSlaveRequest>(mdr->reqid, mdr->attempt, MMDSSlaveRequest::OP_COMMITTED);
   mds->send_message_mds(req, mdr->slave_to_mds);
   mdcache->request_finish(mdr);
   auto req = make_message<MMDSSlaveRequest>(mdr->reqid, mdr->attempt, MMDSSlaveRequest::OP_COMMITTED);
   mds->send_message_mds(req, mdr->slave_to_mds);
   mdcache->request_finish(mdr);
@@ -6809,7 +6812,7 @@ void Server::_link_rollback_finish(MutationRef& mut, MDRequestRef& mdr,
   if (mdr)
     mdcache->request_finish(mdr);
 
   if (mdr)
     mdcache->request_finish(mdr);
 
-  mdcache->finish_rollback(mut->reqid);
+  mdcache->finish_rollback(mut->reqid, mdr);
 
   mut->cleanup();
 }
 
   mut->cleanup();
 }
@@ -7280,6 +7283,7 @@ void Server::handle_slave_rmdir_prep(MDRequestRef& mdr)
     return;
   }
 
     return;
   }
 
+  mdr->ls = mdlog->get_current_segment();
   ESlaveUpdate *le =  new ESlaveUpdate(mdlog, "slave_rmdir", mdr->reqid, mdr->slave_to_mds,
                                       ESlaveUpdate::OP_PREPARE, ESlaveUpdate::RMDIR);
   mdlog->start_entry(le);
   ESlaveUpdate *le =  new ESlaveUpdate(mdlog, "slave_rmdir", mdr->reqid, mdr->slave_to_mds,
                                       ESlaveUpdate::OP_PREPARE, ESlaveUpdate::RMDIR);
   mdlog->start_entry(le);
@@ -7293,6 +7297,7 @@ void Server::handle_slave_rmdir_prep(MDRequestRef& mdr)
   le->commit.renamed_dirino = in->ino();
 
   mdcache->project_subtree_rename(in, dn->get_dir(), straydn->get_dir());
   le->commit.renamed_dirino = in->ino();
 
   mdcache->project_subtree_rename(in, dn->get_dir(), straydn->get_dir());
+  mdcache->add_uncommitted_slave(mdr->reqid, mdr->ls, mdr->slave_to_mds);
 
   mdr->more()->slave_update_journaled = true;
   submit_mdlog_entry(le, new C_MDS_SlaveRmdirPrep(this, mdr, dn, straydn),
 
   mdr->more()->slave_update_journaled = true;
   submit_mdlog_entry(le, new C_MDS_SlaveRmdirPrep(this, mdr, dn, straydn),
@@ -7366,7 +7371,7 @@ void Server::handle_slave_rmdir_prep_ack(MDRequestRef& mdr, const cref_t<MMDSSla
 void Server::_commit_slave_rmdir(MDRequestRef& mdr, int r, CDentry *straydn)
 {
   dout(10) << "_commit_slave_rmdir " << *mdr << " r=" << r << dendl;
 void Server::_commit_slave_rmdir(MDRequestRef& mdr, int r, CDentry *straydn)
 {
   dout(10) << "_commit_slave_rmdir " << *mdr << " r=" << r << dendl;
-  
+
   if (r == 0) {
     if (mdr->more()->slave_update_journaled) {
       CInode *strayin = straydn->get_projected_linkage()->get_inode();
   if (r == 0) {
     if (mdr->more()->slave_update_journaled) {
       CInode *strayin = straydn->get_projected_linkage()->get_inode();
@@ -7495,7 +7500,7 @@ void Server::_rmdir_rollback_finish(MDRequestRef& mdr, metareqid_t reqid, CDentr
   if (mdr)
     mdcache->request_finish(mdr);
 
   if (mdr)
     mdcache->request_finish(mdr);
 
-  mdcache->finish_rollback(reqid);
+  mdcache->finish_rollback(reqid, mdr);
 }
 
 
 }
 
 
@@ -8960,6 +8965,7 @@ void Server::handle_slave_rename_prep(MDRequestRef& mdr)
     mdr->ls = NULL;
     _logged_slave_rename(mdr, srcdn, destdn, straydn);
   } else {
     mdr->ls = NULL;
     _logged_slave_rename(mdr, srcdn, destdn, straydn);
   } else {
+    mdcache->add_uncommitted_slave(mdr->reqid, mdr->ls, mdr->slave_to_mds);
     mdr->more()->slave_update_journaled = true;
     submit_mdlog_entry(le, new C_MDS_SlaveRenamePrep(this, mdr, srcdn, destdn, straydn),
                       mdr, __func__);
     mdr->more()->slave_update_journaled = true;
     submit_mdlog_entry(le, new C_MDS_SlaveRenamePrep(this, mdr, srcdn, destdn, straydn),
                       mdr, __func__);
@@ -9582,7 +9588,7 @@ void Server::_rename_rollback_finish(MutationRef& mut, MDRequestRef& mdr, CDentr
       mdr->more()->slave_rolling_back = false;
   }
 
       mdr->more()->slave_rolling_back = false;
   }
 
-  mdcache->finish_rollback(mut->reqid);
+  mdcache->finish_rollback(mut->reqid, mdr);
 
   mut->cleanup();
 }
 
   mut->cleanup();
 }
index 14966f14ce153847b78a94da0e2216ea2b18e37b..ac25fe19cc65939476bd974aec3ae8bbefc6fd4e 100644 (file)
@@ -119,6 +119,14 @@ void LogSegment::try_to_expire(MDSRank *mds, MDSGatherBuilder &gather_bld, int o
     mds->mdcache->wait_for_uncommitted_master(*p, gather_bld.new_sub());
   }
 
     mds->mdcache->wait_for_uncommitted_master(*p, gather_bld.new_sub());
   }
 
+  // slave ops that haven't been committed
+  for (set<metareqid_t>::iterator p = uncommitted_slaves.begin();
+       p != uncommitted_slaves.end();
+       ++p) {
+    dout(10) << "try_to_expire waiting for master to ack OP_FINISH on " << *p << dendl;
+    mds->mdcache->wait_for_uncommitted_slave(*p, gather_bld.new_sub());
+  }
+
   // uncommitted fragments
   for (set<dirfrag_t>::iterator p = uncommitted_fragments.begin();
        p != uncommitted_fragments.end();
   // uncommitted fragments
   for (set<dirfrag_t>::iterator p = uncommitted_fragments.begin();
        p != uncommitted_fragments.end();
@@ -194,16 +202,6 @@ void LogSegment::try_to_expire(MDSRank *mds, MDSGatherBuilder &gather_bld, int o
 
   ceph_assert(g_conf()->mds_kill_journal_expire_at != 4);
 
 
   ceph_assert(g_conf()->mds_kill_journal_expire_at != 4);
 
-  // slave updates
-  for (elist<MDSlaveUpdate*>::iterator p = slave_updates.begin(member_offset(MDSlaveUpdate,
-                                                                            item));
-       !p.end(); ++p) {
-    MDSlaveUpdate *su = *p;
-    dout(10) << "try_to_expire waiting on slave update " << su << dendl;
-    ceph_assert(su->waiter == 0);
-    su->waiter = gather_bld.new_sub();
-  }
-
   // idalloc
   if (inotablev > mds->inotable->get_committed_version()) {
     dout(10) << "try_to_expire saving inotable table, need " << inotablev
   // idalloc
   if (inotablev > mds->inotable->get_committed_version()) {
     dout(10) << "try_to_expire saving inotable table, need " << inotablev
@@ -428,7 +426,7 @@ void EMetaBlob::fullbit::decode(bufferlist::const_iterator &bl) {
   decode(dnlast, bl);
   decode(dnv, bl);
   decode(inode, bl);
   decode(dnlast, bl);
   decode(dnv, bl);
   decode(inode, bl);
-  decode(xattrs, bl);
+  decode_noshare(xattrs, bl);
   if (inode.is_symlink())
     decode(symlink, bl);
   if (inode.is_dir()) {
   if (inode.is_symlink())
     decode(symlink, bl);
   if (inode.is_dir()) {
@@ -2496,7 +2494,6 @@ void ESlaveUpdate::generate_test_instances(std::list<ESlaveUpdate*>& ls)
   ls.push_back(new ESlaveUpdate());
 }
 
   ls.push_back(new ESlaveUpdate());
 }
 
-
 void ESlaveUpdate::replay(MDSRank *mds)
 {
   MDSlaveUpdate *su;
 void ESlaveUpdate::replay(MDSRank *mds)
 {
   MDSlaveUpdate *su;
@@ -2505,29 +2502,21 @@ void ESlaveUpdate::replay(MDSRank *mds)
   case ESlaveUpdate::OP_PREPARE:
     dout(10) << "ESlaveUpdate.replay prepare " << reqid << " for mds." << master 
             << ": applying commit, saving rollback info" << dendl;
   case ESlaveUpdate::OP_PREPARE:
     dout(10) << "ESlaveUpdate.replay prepare " << reqid << " for mds." << master 
             << ": applying commit, saving rollback info" << dendl;
-    su = new MDSlaveUpdate(origop, rollback, segment->slave_updates);
+    su = new MDSlaveUpdate(origop, rollback);
     commit.replay(mds, segment, su);
     commit.replay(mds, segment, su);
-    mds->mdcache->add_uncommitted_slave_update(reqid, master, su);
+    mds->mdcache->add_uncommitted_slave(reqid, segment, master, su);
     break;
 
   case ESlaveUpdate::OP_COMMIT:
     break;
 
   case ESlaveUpdate::OP_COMMIT:
-    su = mds->mdcache->get_uncommitted_slave_update(reqid, master);
-    if (su) {
-      dout(10) << "ESlaveUpdate.replay commit " << reqid << " for mds." << master << dendl;
-      mds->mdcache->finish_uncommitted_slave_update(reqid, master);
-    } else {
-      dout(10) << "ESlaveUpdate.replay commit " << reqid << " for mds." << master 
-              << ": ignoring, no previously saved prepare" << dendl;
-    }
+    dout(10) << "ESlaveUpdate.replay commit " << reqid << " for mds." << master << dendl;
+    mds->mdcache->finish_uncommitted_slave(reqid, false);
     break;
 
   case ESlaveUpdate::OP_ROLLBACK:
     dout(10) << "ESlaveUpdate.replay abort " << reqid << " for mds." << master
             << ": applying rollback commit blob" << dendl;
     commit.replay(mds, segment);
     break;
 
   case ESlaveUpdate::OP_ROLLBACK:
     dout(10) << "ESlaveUpdate.replay abort " << reqid << " for mds." << master
             << ": applying rollback commit blob" << dendl;
     commit.replay(mds, segment);
-    su = mds->mdcache->get_uncommitted_slave_update(reqid, master);
-    if (su)
-      mds->mdcache->finish_uncommitted_slave_update(reqid, master);
+    mds->mdcache->finish_uncommitted_slave(reqid, false);
     break;
 
   default:
     break;
 
   default:
index ddaed5666d609c9089e4d3b4ce30bb475fd03387..8c00845eb761cda8d7fac19124514709230a7291 100644 (file)
@@ -925,6 +925,20 @@ using alloc_string = std::basic_string<char,std::char_traits<char>,Allocator<cha
 template<template<typename> class Allocator>
 using xattr_map = compact_map<alloc_string<Allocator>, bufferptr, std::less<alloc_string<Allocator>>, Allocator<std::pair<const alloc_string<Allocator>, bufferptr>>>; // FIXME bufferptr not in mempool
 
 template<template<typename> class Allocator>
 using xattr_map = compact_map<alloc_string<Allocator>, bufferptr, std::less<alloc_string<Allocator>>, Allocator<std::pair<const alloc_string<Allocator>, bufferptr>>>; // FIXME bufferptr not in mempool
 
+template<template<typename> class Allocator>
+inline void decode_noshare(xattr_map<Allocator>& xattrs, ceph::buffer::list::const_iterator &p)
+{
+  __u32 n;
+  decode(n, p);
+  while (n-- > 0) {
+    alloc_string<Allocator> key;
+    decode(key, p);
+    __u32 len;
+    decode(len, p);
+    p.copy_deep(len, xattrs[key]);
+  }
+}
+
 template<template<typename> class Allocator = std::allocator>
 struct old_inode_t {
   snapid_t first;
 template<template<typename> class Allocator = std::allocator>
 struct old_inode_t {
   snapid_t first;
@@ -954,7 +968,7 @@ void old_inode_t<Allocator>::decode(bufferlist::const_iterator& bl)
   DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
   decode(first, bl);
   decode(inode, bl);
   DECODE_START_LEGACY_COMPAT_LEN(2, 2, 2, bl);
   decode(first, bl);
   decode(inode, bl);
-  decode(xattrs, bl);
+  decode_noshare<Allocator>(xattrs, bl);
   DECODE_FINISH(bl);
 }
 
   DECODE_FINISH(bl);
 }
 
@@ -1782,7 +1796,7 @@ struct keys_and_values
       query =  pair >> *(qi::lit(' ') >> pair);
       pair  =  key >> '=' >> value;
       key   =  qi::char_("a-zA-Z_") >> *qi::char_("a-zA-Z_0-9");
       query =  pair >> *(qi::lit(' ') >> pair);
       pair  =  key >> '=' >> value;
       key   =  qi::char_("a-zA-Z_") >> *qi::char_("a-zA-Z_0-9");
-      value = +qi::char_("a-zA-Z_0-9");
+      value = +qi::char_("a-zA-Z0-9-_.");
     }
     qi::rule<Iterator, std::map<string, string>()> query;
     qi::rule<Iterator, std::pair<string, string>()> pair;
     }
     qi::rule<Iterator, std::map<string, string>()> query;
     qi::rule<Iterator, std::pair<string, string>()> pair;
index e243ba0612c8389aa4ef71a4a366f07e83a9f01a..3a2c6d60c024472a8db321fd27c46b635e99f0fd 100644 (file)
@@ -414,18 +414,19 @@ PyObject *ActivePyModules::get_python(const std::string &what)
         f.close_section();
     });
     return f.get();
         f.close_section();
     });
     return f.get();
-  } else if (what == "health" || what == "mon_status") {
-    bufferlist json;
-    if (what == "health") {
-      json = cluster_state.get_health();
-    } else if (what == "mon_status") {
-      json = cluster_state.get_mon_status();
-    } else {
-      ceph_abort();
-    }
-
-    PyEval_RestoreThread(tstate);
-    f.dump_string("json", json.to_str());
+  } else if (what == "health") {
+    cluster_state.with_health(
+        [&f, &tstate](const ceph::bufferlist &health_json) {
+      PyEval_RestoreThread(tstate);
+      f.dump_string("json", health_json.to_str());
+    });
+    return f.get();
+  } else if (what == "mon_status") {
+    cluster_state.with_mon_status(
+        [&f, &tstate](const ceph::bufferlist &mon_status_json) {
+      PyEval_RestoreThread(tstate);
+      f.dump_string("json", mon_status_json.to_str());
+    });
     return f.get();
   } else if (what == "mgr_map") {
     cluster_state.with_mgrmap([&f, &tstate](const MgrMap &mgr_map) {
     return f.get();
   } else if (what == "mgr_map") {
     cluster_state.with_mgrmap([&f, &tstate](const MgrMap &mgr_map) {
index 54c016dd3469c1c032cc4666ed2925339dec5a4b..fc7d42cb073cf08b9f9c2da6373a43bb3ab74334 100644 (file)
@@ -62,6 +62,7 @@ void ClusterState::set_service_map(ServiceMap const &new_service_map)
 
 void ClusterState::load_digest(MMgrDigest *m)
 {
 
 void ClusterState::load_digest(MMgrDigest *m)
 {
+  std::lock_guard l(lock);
   health_json = std::move(m->health_json);
   mon_status_json = std::move(m->mon_status_json);
 }
   health_json = std::move(m->health_json);
   mon_status_json = std::move(m->mon_status_json);
 }
index 3b06808de86be162868c63f8aea5ca118fa911c3..e0ac3f31761f89fcf7559e4588098b6daf5fc409 100644 (file)
@@ -59,9 +59,6 @@ public:
 
   void update_delta_stats();
 
 
   void update_delta_stats();
 
-  const bufferlist &get_health() const {return health_json;}
-  const bufferlist &get_mon_status() const {return mon_status_json;}
-
   ClusterState(MonClient *monc_, Objecter *objecter_, const MgrMap& mgrmap);
 
   void set_objecter(Objecter *objecter_);
   ClusterState(MonClient *monc_, Objecter *objecter_, const MgrMap& mgrmap);
 
   void set_objecter(Objecter *objecter_);
@@ -139,6 +136,21 @@ public:
       pg_map,
       std::forward<Args>(args)...);
   }
       pg_map,
       std::forward<Args>(args)...);
   }
+
+  template<typename Callback, typename...Args>
+  void with_health(Callback&& cb, Args&&...args) const
+  {
+    std::lock_guard l(lock);
+    std::forward<Callback>(cb)(health_json, std::forward<Args>(args)...);
+  }
+
+  template<typename Callback, typename...Args>
+  void with_mon_status(Callback&& cb, Args&&...args) const
+  {
+    std::lock_guard l(lock);
+    std::forward<Callback>(cb)(mon_status_json, std::forward<Args>(args)...);
+  }
+
   void final_init();
   void shutdown();
   bool asok_command(std::string_view admin_command,
   void final_init();
   void shutdown();
   bool asok_command(std::string_view admin_command,
index d1cbd336e8f55f16db11b2769936380fc0b79ae8..21635974c606836df105c284e13a3ebd103afc43 100644 (file)
@@ -1099,7 +1099,7 @@ COMMAND_WITH_FLAG("osd tier remove "
     FLAG(DEPRECATED))
 COMMAND("osd tier cache-mode "
        "name=pool,type=CephPoolname "
     FLAG(DEPRECATED))
 COMMAND("osd tier cache-mode "
        "name=pool,type=CephPoolname "
-       "name=mode,type=CephChoices,strings=none|writeback|forward|readonly|readforward|proxy|readproxy "
+       "name=mode,type=CephChoices,strings=writeback|readproxy|readonly|none "
        "name=yes_i_really_mean_it,type=CephBool,req=false",
        "specify the caching mode for cache tier <pool>", "osd", "rw")
 COMMAND("osd tier set-overlay "
        "name=yes_i_really_mean_it,type=CephBool,req=false",
        "specify the caching mode for cache tier <pool>", "osd", "rw")
 COMMAND("osd tier set-overlay "
index 892580c3ff6e75e3d357d98a30ec5c5aaa4b9cff..196a1d04269f9630164ccd5a50165af75db82384 100644 (file)
@@ -13019,8 +13019,6 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op,
       ss << "unable to set cache-mode '" << pg_pool_t::get_cache_mode_name(mode)
          << "' on a '" << pg_pool_t::get_cache_mode_name(p->cache_mode)
          << "' pool; only '"
       ss << "unable to set cache-mode '" << pg_pool_t::get_cache_mode_name(mode)
          << "' on a '" << pg_pool_t::get_cache_mode_name(p->cache_mode)
          << "' pool; only '"
-         << pg_pool_t::get_cache_mode_name(pg_pool_t::CACHEMODE_PROXY)
-        << "','"
          << pg_pool_t::get_cache_mode_name(pg_pool_t::CACHEMODE_READPROXY)
         << "' allowed.";
       err = -EINVAL;
          << pg_pool_t::get_cache_mode_name(pg_pool_t::CACHEMODE_READPROXY)
         << "' allowed.";
       err = -EINVAL;
index c950ed9b85a5c331c8288f7a7a476167a3b770a1..760244b9b435c8ca756e9aa28e0a68c45000cb94 100644 (file)
@@ -34,6 +34,7 @@ if(WITH_BLUESTORE)
     bluestore/StupidAllocator.cc
     bluestore/BitmapAllocator.cc
     bluestore/AvlAllocator.cc
     bluestore/StupidAllocator.cc
     bluestore/BitmapAllocator.cc
     bluestore/AvlAllocator.cc
+    bluestore/HybridAllocator.cc
     bluestore/io_uring.cc
   )
 endif(WITH_BLUESTORE)
     bluestore/io_uring.cc
   )
 endif(WITH_BLUESTORE)
index 80b5f9aaa01b04af14086f1dc02f12a03fe30f83..54200f1d006f3009d770b5227fedd63b6c41f537 100644 (file)
@@ -2,15 +2,13 @@
 // vim: ts=8 sw=2 smarttab
 
 #include "include/compat.h"
 // vim: ts=8 sw=2 smarttab
 
 #include "include/compat.h"
+#include "include/ceph_fuse.h"
 #include "FuseStore.h"
 #include "os/ObjectStore.h"
 #include "include/stringify.h"
 #include "common/errno.h"
 
 #include "FuseStore.h"
 #include "os/ObjectStore.h"
 #include "include/stringify.h"
 #include "common/errno.h"
 
-#define FUSE_USE_VERSION 30
-#include <fuse.h>
 #include <fuse_lowlevel.h>
 #include <fuse_lowlevel.h>
-#include "include/ceph_fuse.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
index 4c6772c0dae07f49db86d32c37c683f0d126699b..a423c9d38559dcf8ec1cc25e95e052120896850c 100644 (file)
@@ -5,6 +5,7 @@
 #include "StupidAllocator.h"
 #include "BitmapAllocator.h"
 #include "AvlAllocator.h"
 #include "StupidAllocator.h"
 #include "BitmapAllocator.h"
 #include "AvlAllocator.h"
+#include "HybridAllocator.h"
 #include "common/debug.h"
 #include "common/admin_socket.h"
 #define dout_subsys ceph_subsys_bluestore
 #include "common/debug.h"
 #include "common/admin_socket.h"
 #define dout_subsys ceph_subsys_bluestore
@@ -12,6 +13,7 @@
 class Allocator::SocketHook : public AdminSocketHook {
   Allocator *alloc;
 
 class Allocator::SocketHook : public AdminSocketHook {
   Allocator *alloc;
 
+  friend class Allocator;
   std::string name;
 public:
   explicit SocketHook(Allocator *alloc,
   std::string name;
 public:
   explicit SocketHook(Allocator *alloc,
@@ -99,6 +101,9 @@ Allocator::~Allocator()
   delete asok_hook;
 }
 
   delete asok_hook;
 }
 
+const string& Allocator::get_name() const {
+  return asok_hook->name;
+}
 
 Allocator *Allocator::create(CephContext* cct, string type,
                              int64_t size, int64_t block_size, const std::string& name)
 
 Allocator *Allocator::create(CephContext* cct, string type,
                              int64_t size, int64_t block_size, const std::string& name)
@@ -110,6 +115,10 @@ Allocator *Allocator::create(CephContext* cct, string type,
     alloc = new BitmapAllocator(cct, size, block_size, name);
   } else if (type == "avl") {
     return new AvlAllocator(cct, size, block_size, name);
     alloc = new BitmapAllocator(cct, size, block_size, name);
   } else if (type == "avl") {
     return new AvlAllocator(cct, size, block_size, name);
+  } else if (type == "hybrid") {
+    return new HybridAllocator(cct, size, block_size,
+      cct->_conf.get_val<uint64_t>("bluestore_hybrid_alloc_mem_cap"),
+      name);
   }
   if (alloc == nullptr) {
     lderr(cct) << "Allocator::" << __func__ << " unknown alloc type "
   }
   if (alloc == nullptr) {
     lderr(cct) << "Allocator::" << __func__ << " unknown alloc type "
index 9f679d584e1f83788b242669c27d1fa8fa3cc762..7b571395f25f199d1d7d1b73e71dd6d04b20a631 100644 (file)
@@ -61,6 +61,9 @@ public:
 
   static Allocator *create(CephContext* cct, string type, int64_t size,
                           int64_t block_size, const std::string& name = "");
 
   static Allocator *create(CephContext* cct, string type, int64_t size,
                           int64_t block_size, const std::string& name = "");
+
+  const string& get_name() const;
+
 private:
   class SocketHook;
   SocketHook* asok_hook = nullptr;
 private:
   class SocketHook;
   SocketHook* asok_hook = nullptr;
index ccc3c756379cb4ffca3cc9933feff9a9459cf3ad..e9d0510798626b614b01982d977f6f6fe1a7ecc5 100644 (file)
@@ -55,18 +55,9 @@ uint64_t AvlAllocator::_block_picker(const Tree& t,
    return _block_picker(t, cursor, size, align);
 }
 
    return _block_picker(t, cursor, size, align);
 }
 
-namespace {
-  struct dispose_rs {
-    void operator()(range_seg_t* p)
-    {
-      delete p;
-    }
-  };
-}
-
 void AvlAllocator::_add_to_tree(uint64_t start, uint64_t size)
 {
 void AvlAllocator::_add_to_tree(uint64_t start, uint64_t size)
 {
-  assert(size != 0);
+  ceph_assert(size != 0);
 
   uint64_t end = start + size;
 
 
   uint64_t end = start + size;
 
@@ -83,62 +74,129 @@ void AvlAllocator::_add_to_tree(uint64_t start, uint64_t size)
   bool merge_after = (rs_after != range_tree.end() && rs_after->start == end);
 
   if (merge_before && merge_after) {
   bool merge_after = (rs_after != range_tree.end() && rs_after->start == end);
 
   if (merge_before && merge_after) {
-    range_size_tree.erase(*rs_before);
-    range_size_tree.erase(*rs_after);
+    _range_size_tree_rm(*rs_before);
+    _range_size_tree_rm(*rs_after);
     rs_after->start = rs_before->start;
     range_tree.erase_and_dispose(rs_before, dispose_rs{});
     rs_after->start = rs_before->start;
     range_tree.erase_and_dispose(rs_before, dispose_rs{});
-    range_size_tree.insert(*rs_after);
+    _range_size_tree_try_insert(*rs_after);
   } else if (merge_before) {
   } else if (merge_before) {
-    range_size_tree.erase(*rs_before);
+    _range_size_tree_rm(*rs_before);
     rs_before->end = end;
     rs_before->end = end;
-    range_size_tree.insert(*rs_before);
+    _range_size_tree_try_insert(*rs_before);
   } else if (merge_after) {
   } else if (merge_after) {
-    range_size_tree.erase(*rs_after);
+    _range_size_tree_rm(*rs_after);
     rs_after->start = start;
     rs_after->start = start;
-    range_size_tree.insert(*rs_after);
+    _range_size_tree_try_insert(*rs_after);
   } else {
   } else {
-    auto new_rs = new range_seg_t{start, end};
-    range_tree.insert_before(rs_after, *new_rs);
-    range_size_tree.insert(*new_rs);
+    _try_insert_range(start, end, &rs_after);
   }
   }
-  num_free += size;
 }
 
 }
 
-void AvlAllocator::_remove_from_tree(uint64_t start, uint64_t size)
+void AvlAllocator::_process_range_removal(uint64_t start, uint64_t end,
+  AvlAllocator::range_tree_t::iterator& rs)
 {
 {
-  uint64_t end = start + size;
-
-  assert(size != 0);
-  assert(size <= num_free);
-
-  auto rs = range_tree.find(range_t{start, end}, range_tree.key_comp());
-  /* Make sure we completely overlap with someone */
-  assert(rs != range_tree.end());
-  assert(rs->start <= start);
-  assert(rs->end >= end);
-
   bool left_over = (rs->start != start);
   bool right_over = (rs->end != end);
 
   bool left_over = (rs->start != start);
   bool right_over = (rs->end != end);
 
-  range_size_tree.erase(*rs);
+  _range_size_tree_rm(*rs);
 
   if (left_over && right_over) {
 
   if (left_over && right_over) {
-    auto new_seg = new range_seg_t{end, rs->end};
+    auto old_right_end = rs->end;
+    auto insert_pos = rs;
+    ceph_assert(insert_pos != range_tree.end());
+    ++insert_pos;
     rs->end = start;
     rs->end = start;
-    range_tree.insert(rs, *new_seg);
-    range_size_tree.insert(*new_seg);
-    range_size_tree.insert(*rs);
+
+    // Insert tail first to be sure insert_pos hasn't been disposed.
+    // This woulnd't dispose rs though since it's out of range_size_tree.
+    // Don't care about a small chance of 'not-the-best-choice-for-removal' case
+    // which might happen if rs has the lowest size.
+    _try_insert_range(end, old_right_end, &insert_pos);
+    _range_size_tree_try_insert(*rs);
+
   } else if (left_over) {
     rs->end = start;
   } else if (left_over) {
     rs->end = start;
-    range_size_tree.insert(*rs);
+    _range_size_tree_try_insert(*rs);
   } else if (right_over) {
     rs->start = end;
   } else if (right_over) {
     rs->start = end;
-    range_size_tree.insert(*rs);
+    _range_size_tree_try_insert(*rs);
   } else {
     range_tree.erase_and_dispose(rs, dispose_rs{});
   }
   } else {
     range_tree.erase_and_dispose(rs, dispose_rs{});
   }
-  assert(num_free >= size);
-  num_free -= size;
+}
+
+void AvlAllocator::_remove_from_tree(uint64_t start, uint64_t size)
+{
+  uint64_t end = start + size;
+
+  ceph_assert(size != 0);
+  ceph_assert(size <= num_free);
+
+  auto rs = range_tree.find(range_t{start, end}, range_tree.key_comp());
+  /* Make sure we completely overlap with someone */
+  ceph_assert(rs != range_tree.end());
+  ceph_assert(rs->start <= start);
+  ceph_assert(rs->end >= end);
+
+  _process_range_removal(start, end, rs);
+}
+
+void AvlAllocator::_try_remove_from_tree(uint64_t start, uint64_t size,
+  std::function<void(uint64_t, uint64_t, bool)> cb)
+{
+  uint64_t end = start + size;
+
+  ceph_assert(size != 0);
+
+  auto rs = range_tree.find(range_t{ start, end },
+    range_tree.key_comp());
+
+  if (rs == range_tree.end() || rs->start >= end) {
+    cb(start, size, false);
+    return;
+  }
+
+  do {
+
+    auto next_rs = rs;
+    ++next_rs;
+
+    if (start < rs->start) {
+      cb(start, rs->start - start, false);
+      start = rs->start;
+    }
+    auto range_end = std::min(rs->end, end);
+    _process_range_removal(start, range_end, rs);
+    cb(start, range_end - start, true);
+    start = range_end;
+
+    rs = next_rs;
+  } while (rs != range_tree.end() && rs->start < end && start < end);
+  if (start < end) {
+    cb(start, end - start, false);
+  }
+}
+
+int64_t AvlAllocator::_allocate(
+  uint64_t want,
+  uint64_t unit,
+  uint64_t max_alloc_size,
+  int64_t  hint, // unused, for now!
+  PExtentVector* extents)
+{
+  uint64_t allocated = 0;
+  while (allocated < want) {
+    uint64_t offset, length;
+    int r = _allocate(std::min(max_alloc_size, want - allocated),
+      unit, &offset, &length);
+    if (r < 0) {
+      // Allocation failed.
+      break;
+    }
+    extents->emplace_back(offset, length);
+    allocated += length;
+  }
+  return allocated ? allocated : -ENOSPC;
 }
 
 int AvlAllocator::_allocate(
 }
 
 int AvlAllocator::_allocate(
@@ -147,7 +205,6 @@ int AvlAllocator::_allocate(
   uint64_t *offset,
   uint64_t *length)
 {
   uint64_t *offset,
   uint64_t *length)
 {
-  std::lock_guard l(lock);
   uint64_t max_size = 0;
   if (auto p = range_size_tree.rbegin(); p != range_size_tree.rend()) {
     max_size = p->end - p->start;
   uint64_t max_size = 0;
   if (auto p = range_size_tree.rbegin(); p != range_size_tree.rend()) {
     max_size = p->end - p->start;
@@ -159,7 +216,7 @@ int AvlAllocator::_allocate(
       return -ENOSPC;
     }
     size = p2align(max_size, unit);
       return -ENOSPC;
     }
     size = p2align(max_size, unit);
-    assert(size > 0);
+    ceph_assert(size > 0);
     force_range_size_alloc = true;
   }
   /*
     force_range_size_alloc = true;
   }
   /*
@@ -170,7 +227,7 @@ int AvlAllocator::_allocate(
    * region.
    */
   const uint64_t align = size & -size;
    * region.
    */
   const uint64_t align = size & -size;
-  assert(align != 0);
+  ceph_assert(align != 0);
   uint64_t *cursor = &lbas[cbits(align) - 1];
 
   const int free_pct = num_free * 100 / num_total;
   uint64_t *cursor = &lbas[cbits(align) - 1];
 
   const int free_pct = num_free * 100 / num_total;
@@ -198,6 +255,51 @@ int AvlAllocator::_allocate(
   return 0;
 }
 
   return 0;
 }
 
+void AvlAllocator::_release(const interval_set<uint64_t>& release_set)
+{
+  for (auto p = release_set.begin(); p != release_set.end(); ++p) {
+    const auto offset = p.get_start();
+    const auto length = p.get_len();
+    ldout(cct, 10) << __func__ << std::hex
+      << " offset 0x" << offset
+      << " length 0x" << length
+      << std::dec << dendl;
+    _add_to_tree(offset, length);
+  }
+}
+
+void AvlAllocator::_release(const PExtentVector& release_set) {
+  for (auto& e : release_set) {
+    ldout(cct, 10) << __func__ << std::hex
+      << " offset 0x" << e.offset
+      << " length 0x" << e.length
+      << std::dec << dendl;
+    _add_to_tree(e.offset, e.length);
+  }
+}
+
+void AvlAllocator::_shutdown()
+{
+  range_size_tree.clear();
+  range_tree.clear_and_dispose(dispose_rs{});
+}
+
+AvlAllocator::AvlAllocator(CephContext* cct,
+                           int64_t device_size,
+                           int64_t block_size,
+                           uint64_t max_mem,
+                           const std::string& name) :
+  Allocator(name),
+  num_total(device_size),
+  block_size(block_size),
+  range_size_alloc_threshold(
+    cct->_conf.get_val<uint64_t>("bluestore_avl_alloc_bf_threshold")),
+  range_size_alloc_free_pct(
+    cct->_conf.get_val<uint64_t>("bluestore_avl_alloc_bf_free_pct")),
+  range_count_cap(max_mem / sizeof(range_seg_t)),
+  cct(cct)
+{}
+
 AvlAllocator::AvlAllocator(CephContext* cct,
                           int64_t device_size,
                           int64_t block_size,
 AvlAllocator::AvlAllocator(CephContext* cct,
                           int64_t device_size,
                           int64_t block_size,
@@ -212,6 +314,11 @@ AvlAllocator::AvlAllocator(CephContext* cct,
   cct(cct)
 {}
 
   cct(cct)
 {}
 
+AvlAllocator::~AvlAllocator()
+{
+  shutdown();
+}
+
 int64_t AvlAllocator::allocate(
   uint64_t want,
   uint64_t unit,
 int64_t AvlAllocator::allocate(
   uint64_t want,
   uint64_t unit,
@@ -225,44 +332,23 @@ int64_t AvlAllocator::allocate(
                  << " max_alloc_size 0x" << max_alloc_size
                  << " hint 0x" << hint
                  << std::dec << dendl;
                  << " max_alloc_size 0x" << max_alloc_size
                  << " hint 0x" << hint
                  << std::dec << dendl;
-  assert(isp2(unit));
-  assert(want % unit == 0);
+  ceph_assert(isp2(unit));
+  ceph_assert(want % unit == 0);
 
   if (max_alloc_size == 0) {
     max_alloc_size = want;
   }
   if (constexpr auto cap = std::numeric_limits<decltype(bluestore_pextent_t::length)>::max();
       max_alloc_size >= cap) {
 
   if (max_alloc_size == 0) {
     max_alloc_size = want;
   }
   if (constexpr auto cap = std::numeric_limits<decltype(bluestore_pextent_t::length)>::max();
       max_alloc_size >= cap) {
-    max_alloc_size = cap;
-  }
-
-  uint64_t allocated = 0;
-  while (allocated < want) {
-    uint64_t offset, length;
-    int r = _allocate(std::min(max_alloc_size, want - allocated),
-                      unit, &offset, &length);
-    if (r < 0) {
-      // Allocation failed.
-      break;
-    }
-    extents->emplace_back(offset, length);
-    allocated += length;
+    max_alloc_size = p2align(uint64_t(cap), (uint64_t)block_size);
   }
   }
-  return allocated ? allocated : -ENOSPC;
+  std::lock_guard l(lock);
+  return _allocate(want, unit, max_alloc_size, hint, extents);
 }
 
 }
 
-void AvlAllocator::release(const interval_set<uint64_t>& release_set)
-{
+void AvlAllocator::release(const interval_set<uint64_t>& release_set) {
   std::lock_guard l(lock);
   std::lock_guard l(lock);
-  for (auto p = release_set.begin(); p != release_set.end(); ++p) {
-    const auto offset = p.get_start();
-    const auto length = p.get_len();
-    ldout(cct, 10) << __func__ << std::hex
-                   << " offset 0x" << offset
-                   << " length 0x" << length
-                   << std::dec << dendl;
-    _add_to_tree(offset, length);
-  }
+  _release(release_set);
 }
 
 uint64_t AvlAllocator::get_free()
 }
 
 uint64_t AvlAllocator::get_free()
@@ -274,30 +360,31 @@ uint64_t AvlAllocator::get_free()
 double AvlAllocator::get_fragmentation()
 {
   std::lock_guard l(lock);
 double AvlAllocator::get_fragmentation()
 {
   std::lock_guard l(lock);
-  auto free_blocks = p2align(num_free, block_size) / block_size;
-  if (free_blocks <= 1) {
-    return .0;
-  }  
-  return (static_cast<double>(range_tree.size() - 1) / (free_blocks - 1));
+  return _get_fragmentation();
 }
 
 void AvlAllocator::dump()
 {
   std::lock_guard l(lock);
 }
 
 void AvlAllocator::dump()
 {
   std::lock_guard l(lock);
+  _dump();
+}
+
+void AvlAllocator::_dump() const
+{
   ldout(cct, 0) << __func__ << " range_tree: " << dendl;
   for (auto& rs : range_tree) {
     ldout(cct, 0) << std::hex
   ldout(cct, 0) << __func__ << " range_tree: " << dendl;
   for (auto& rs : range_tree) {
     ldout(cct, 0) << std::hex
-                  << "0x" << rs.start << "~" << rs.end
-                  << std::dec
-                  << dendl;
+      << "0x" << rs.start << "~" << rs.end
+      << std::dec
+      << dendl;
   }
 
   ldout(cct, 0) << __func__ << " range_size_tree: " << dendl;
   for (auto& rs : range_size_tree) {
     ldout(cct, 0) << std::hex
   }
 
   ldout(cct, 0) << __func__ << " range_size_tree: " << dendl;
   for (auto& rs : range_size_tree) {
     ldout(cct, 0) << std::hex
-                  << "0x" << rs.start << "~" << rs.end
-                  << std::dec
-                  << dendl;
+      << "0x" << rs.start << "~" << rs.end
+      << std::dec
+      << dendl;
   }
 }
 
   }
 }
 
@@ -331,6 +418,5 @@ void AvlAllocator::init_rm_free(uint64_t offset, uint64_t length)
 void AvlAllocator::shutdown()
 {
   std::lock_guard l(lock);
 void AvlAllocator::shutdown()
 {
   std::lock_guard l(lock);
-  range_size_tree.clear();
-  range_tree.clear_and_dispose(dispose_rs{});
+  _shutdown();
 }
 }
index a855d975da611ed1011b352826aaa9475b69224b..bcc3f8b051b1c3ce552eaf0584fa8c0cc6327430 100644 (file)
@@ -43,35 +43,61 @@ struct range_seg_t {
       }
     }
   };
       }
     }
   };
+  inline uint64_t length() const {
+    return end - start;
+  }
   boost::intrusive::avl_set_member_hook<> size_hook;
 };
 
   boost::intrusive::avl_set_member_hook<> size_hook;
 };
 
-class AvlAllocator final : public Allocator {
+class AvlAllocator : public Allocator {
+  struct dispose_rs {
+    void operator()(range_seg_t* p)
+    {
+      delete p;
+    }
+  };
+
+protected:
+  /*
+  * ctor intended for the usage from descendant class(es) which
+  * provides handling for spilled over entries
+  * (when entry count >= max_entries)
+  */
+  AvlAllocator(CephContext* cct, int64_t device_size, int64_t block_size,
+    uint64_t max_mem,
+    const std::string& name);
+
 public:
   AvlAllocator(CephContext* cct, int64_t device_size, int64_t block_size,
               const std::string& name);
 public:
   AvlAllocator(CephContext* cct, int64_t device_size, int64_t block_size,
               const std::string& name);
+  ~AvlAllocator();
   int64_t allocate(
     uint64_t want,
     uint64_t unit,
     uint64_t max_alloc_size,
     int64_t  hint,
   int64_t allocate(
     uint64_t want,
     uint64_t unit,
     uint64_t max_alloc_size,
     int64_t  hint,
-    PExtentVector *extents) final;
-  void release(const interval_set<uint64_t>& release_set) final;
-  uint64_t get_free() final;
-  double get_fragmentation() final;
+    PExtentVector *extents) override;
+  void release(const interval_set<uint64_t>& release_set) override;
+  int64_t get_capacity() const {
+    return num_total;
+  }
 
 
-  void dump() final;
-  void dump(std::function<void(uint64_t offset, uint64_t length)> notify) final;
-  void init_add_free(uint64_t offset, uint64_t length) final;
-  void init_rm_free(uint64_t offset, uint64_t length) final;
-  void shutdown() final;
+  uint64_t get_block_size() const {
+    return block_size;
+  }
+  uint64_t get_free() override;
+  double get_fragmentation() override;
+
+  void dump() override;
+  void dump(std::function<void(uint64_t offset, uint64_t length)> notify) override;
+  void init_add_free(uint64_t offset, uint64_t length) override;
+  void init_rm_free(uint64_t offset, uint64_t length) override;
+  void shutdown() override;
 
 private:
   template<class Tree>
   uint64_t _block_picker(const Tree& t, uint64_t *cursor, uint64_t size,
     uint64_t align);
 
 private:
   template<class Tree>
   uint64_t _block_picker(const Tree& t, uint64_t *cursor, uint64_t size,
     uint64_t align);
-  void _add_to_tree(uint64_t start, uint64_t size);
-  void _remove_from_tree(uint64_t start, uint64_t size);
   int _allocate(
     uint64_t size,
     uint64_t unit,
   int _allocate(
     uint64_t size,
     uint64_t unit,
@@ -100,7 +126,8 @@ private:
       boost::intrusive::member_hook<
        range_seg_t,
        boost::intrusive::avl_set_member_hook<>,
       boost::intrusive::member_hook<
        range_seg_t,
        boost::intrusive::avl_set_member_hook<>,
-       &range_seg_t::size_hook>>;
+       &range_seg_t::size_hook>,
+      boost::intrusive::constant_time_size<true>>;
   range_size_tree_t range_size_tree;
 
   const int64_t num_total;   ///< device size
   range_size_tree_t range_size_tree;
 
   const int64_t num_total;   ///< device size
@@ -131,6 +158,100 @@ private:
    */
   int range_size_alloc_free_pct = 0;
 
    */
   int range_size_alloc_free_pct = 0;
 
+  /*
+  * Max amount of range entries allowed. 0 - unlimited
+  */
+  uint64_t range_count_cap = 0;
+
+  void _range_size_tree_rm(range_seg_t& r) {
+    ceph_assert(num_free >= r.length());
+    num_free -= r.length();
+    range_size_tree.erase(r);
+
+  }
+  void _range_size_tree_try_insert(range_seg_t& r) {
+    if (_try_insert_range(r.start, r.end)) {
+      range_size_tree.insert(r);
+      num_free += r.length();
+    } else {
+      range_tree.erase_and_dispose(r, dispose_rs{});
+    }
+  }
+  bool _try_insert_range(uint64_t start,
+                         uint64_t end,
+                        range_tree_t::iterator* insert_pos = nullptr) {
+    bool res = !range_count_cap || range_size_tree.size() < range_count_cap;
+    bool remove_lowest = false;
+    if (!res) {
+      if (end - start > _lowest_size_available()) {
+        remove_lowest = true;
+        res = true;
+      }
+    }
+    if (!res) {
+      _spillover_range(start, end);
+    } else {
+      // NB:  we should do insertion before the following removal
+      // to avoid potential iterator disposal insertion might depend on.
+      if (insert_pos) {
+        auto new_rs = new range_seg_t{ start, end };
+        range_tree.insert_before(*insert_pos, *new_rs);
+        range_size_tree.insert(*new_rs);
+        num_free += new_rs->length();
+      }
+      if (remove_lowest) {
+        auto r = range_size_tree.begin();
+        _range_size_tree_rm(*r);
+        _spillover_range(r->start, r->end);
+        range_tree.erase_and_dispose(*r, dispose_rs{});
+      }
+    }
+    return res;
+  }
+  virtual void _spillover_range(uint64_t start, uint64_t end) {
+    // this should be overriden when range count cap is present,
+    // i.e. (range_count_cap > 0)
+    ceph_assert(false);
+  }
+protected:
+  // called when extent to be released/marked free
+  virtual void _add_to_tree(uint64_t start, uint64_t size);
+
+protected:
   CephContext* cct;
   std::mutex lock;
   CephContext* cct;
   std::mutex lock;
+
+  double _get_fragmentation() const {
+    auto free_blocks = p2align(num_free, block_size) / block_size;
+    if (free_blocks <= 1) {
+      return .0;
+    }
+    return (static_cast<double>(range_tree.size() - 1) / (free_blocks - 1));
+  }
+  void _dump() const;
+
+  uint64_t _lowest_size_available() {
+    auto rs = range_size_tree.begin();
+    return rs != range_size_tree.end() ? rs->length() : 0;
+  }
+
+  int64_t _allocate(
+    uint64_t want,
+    uint64_t unit,
+    uint64_t max_alloc_size,
+    int64_t  hint,
+    PExtentVector *extents);
+
+  void _release(const interval_set<uint64_t>& release_set);
+  void _release(const PExtentVector&  release_set);
+  void _shutdown();
+
+  void _process_range_removal(uint64_t start, uint64_t end, range_tree_t::iterator& rs);
+  void _remove_from_tree(uint64_t start, uint64_t size);
+  void _try_remove_from_tree(uint64_t start, uint64_t size,
+    std::function<void(uint64_t offset, uint64_t length, bool found)> cb);
+
+  uint64_t _get_free() const {
+    return num_free;
+  }
 };
 };
index 996663b49a2b0c58010a61f123253f820ea915cd..51ebaa4208c84a49293a39845df80ec0ed25e678 100644 (file)
@@ -22,7 +22,6 @@ public:
   {
   }
 
   {
   }
 
-
   int64_t allocate(
     uint64_t want_size, uint64_t alloc_unit, uint64_t max_alloc_size,
     int64_t hint, PExtentVector *extents) override;
   int64_t allocate(
     uint64_t want_size, uint64_t alloc_unit, uint64_t max_alloc_size,
     int64_t hint, PExtentVector *extents) override;
@@ -30,6 +29,8 @@ public:
   void release(
     const interval_set<uint64_t>& release_set) override;
 
   void release(
     const interval_set<uint64_t>& release_set) override;
 
+  using Allocator::release;
+
   uint64_t get_free() override
   {
     return get_available();
   uint64_t get_free() override
   {
     return get_available();
diff --git a/ceph/src/os/bluestore/HybridAllocator.cc b/ceph/src/os/bluestore/HybridAllocator.cc
new file mode 100644 (file)
index 0000000..484a664
--- /dev/null
@@ -0,0 +1,222 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#include "HybridAllocator.h"
+
+#include <limits>
+
+#include "common/config_proxy.h"
+#include "common/debug.h"
+
+#define dout_context cct
+#define dout_subsys ceph_subsys_bluestore
+#undef  dout_prefix
+#define dout_prefix *_dout << "HybridAllocator "
+
+
+int64_t HybridAllocator::allocate(
+  uint64_t want,
+  uint64_t unit,
+  uint64_t max_alloc_size,
+  int64_t  hint,
+  PExtentVector* extents)
+{
+  ldout(cct, 10) << __func__ << std::hex
+                 << " want 0x" << want
+                 << " unit 0x" << unit
+                 << " max_alloc_size 0x" << max_alloc_size
+                 << " hint 0x" << hint
+                 << std::dec << dendl;
+  ceph_assert(isp2(unit));
+  ceph_assert(want % unit == 0);
+
+  if (max_alloc_size == 0) {
+    max_alloc_size = want;
+  }
+  if (constexpr auto cap = std::numeric_limits<decltype(bluestore_pextent_t::length)>::max();
+      max_alloc_size >= cap) {
+    max_alloc_size = p2align(uint64_t(cap), (uint64_t)get_block_size());
+  }
+
+  std::lock_guard l(lock);
+
+  int64_t res;
+  PExtentVector local_extents;
+
+  // preserve original 'extents' vector state
+  auto orig_size = extents->size();
+  auto orig_pos = extents->end();
+  if (orig_size) {
+    --orig_pos;
+  }
+
+  // try bitmap first to avoid unneeded contiguous extents split if
+  // desired amount is less than shortes range in AVL
+  if (bmap_alloc && bmap_alloc->get_free() &&
+    want < _lowest_size_available()) {
+    res = bmap_alloc->allocate(want, unit, max_alloc_size, hint, extents);
+    if (res < 0) {
+      // got a failure, release already allocated and
+      // start over allocation from avl
+      if (orig_size) {
+        local_extents.insert(
+          local_extents.end(), ++orig_pos, extents->end());
+        extents->resize(orig_size);
+      } else {
+        extents->swap(local_extents);
+      }
+      bmap_alloc->release(local_extents);
+      res = 0;
+    }
+    if ((uint64_t)res < want) {
+      auto res2 = _allocate(want - res, unit, max_alloc_size, hint, extents);
+      if (res2 < 0) {
+        res = res2; // caller to do the release
+      } else {
+        res += res2;
+      }
+    }
+  } else {
+    res = _allocate(want, unit, max_alloc_size, hint, extents);
+    if (res < 0) {
+      // got a failure, release already allocated and
+      // start over allocation from bitmap
+      if (orig_size) {
+        local_extents.insert(
+          local_extents.end(), ++orig_pos, extents->end());
+        extents->resize(orig_size);
+      } else {
+        extents->swap(local_extents);
+      }
+      _release(local_extents);
+      res = 0;
+    }
+    if ((uint64_t)res < want ) {
+      auto res2 = bmap_alloc ?
+        bmap_alloc->allocate(want - res, unit, max_alloc_size, hint, extents) :
+        0;
+      if (res2 < 0 ) {
+        res = res2; // caller to do the release
+      } else {
+        res += res2;
+      }
+    }
+  }
+  return res ? res : -ENOSPC;
+}
+
+void HybridAllocator::release(const interval_set<uint64_t>& release_set) {
+  std::lock_guard l(lock);
+  // this will attempt to put free ranges into AvlAllocator first and
+  // fallback to bitmap one via _try_insert_range call
+  _release(release_set);
+}
+
+uint64_t HybridAllocator::get_free()
+{
+  std::lock_guard l(lock);
+  return (bmap_alloc ? bmap_alloc->get_free() : 0) + _get_free();
+}
+
+double HybridAllocator::get_fragmentation()
+{
+  std::lock_guard l(lock);
+  auto f = AvlAllocator::_get_fragmentation();
+  auto bmap_free = bmap_alloc ? bmap_alloc->get_free() : 0;
+  if (bmap_free) {
+    auto _free = _get_free() + bmap_free;
+    auto bf = bmap_alloc->get_fragmentation();
+
+    f = f * _get_free() / _free + bf * bmap_free / _free;
+  }
+  return f;
+}
+
+void HybridAllocator::dump()
+{
+  std::lock_guard l(lock);
+  AvlAllocator::_dump();
+  if (bmap_alloc) {
+    bmap_alloc->dump();
+  }
+  ldout(cct, 0) << __func__
+    << " avl_free: " << _get_free()
+    << " bmap_free: " << (bmap_alloc ? bmap_alloc->get_free() : 0)
+    << dendl;
+}
+
+void HybridAllocator::dump(std::function<void(uint64_t offset, uint64_t length)> notify)
+{
+  AvlAllocator::dump(notify);
+  if (bmap_alloc) {
+    bmap_alloc->dump(notify);
+  }
+}
+
+void HybridAllocator::init_rm_free(uint64_t offset, uint64_t length)
+{
+  std::lock_guard l(lock);
+  ldout(cct, 10) << __func__ << std::hex
+                 << " offset 0x" << offset
+                 << " length 0x" << length
+                 << std::dec << dendl;
+  _try_remove_from_tree(offset, length,
+    [&](uint64_t o, uint64_t l, bool found) {
+      if (!found) {
+        if (bmap_alloc) {
+          bmap_alloc->init_rm_free(o, l);
+        } else {
+          lderr(cct) << "init_rm_free lambda" << std::hex
+            << "Uexpected extent: "
+            << " 0x" << o << "~" << l
+            << std::dec << dendl;
+          ceph_assert(false);
+        }
+      }
+    });
+}
+
+void HybridAllocator::shutdown()
+{
+  std::lock_guard l(lock);
+  _shutdown();
+  if (bmap_alloc) {
+    bmap_alloc->shutdown();
+    delete bmap_alloc;
+    bmap_alloc = nullptr;
+  }
+}
+
+void HybridAllocator::_spillover_range(uint64_t start, uint64_t end)
+{
+  auto size = end - start;
+  dout(20) << __func__
+    << std::hex << " "
+    << start << "~" << size
+    << std::dec
+    << dendl;
+  ceph_assert(size);
+  if (!bmap_alloc) {
+    dout(1) << __func__
+      << std::hex
+      << " constructing fallback allocator"
+      << dendl;
+    bmap_alloc = new BitmapAllocator(cct,
+      get_capacity(),
+      get_block_size(),
+      get_name());
+  }
+  bmap_alloc->init_add_free(start, size);
+}
+
+void HybridAllocator::_add_to_tree(uint64_t start, uint64_t size)
+{
+  if (bmap_alloc) {
+    uint64_t head = bmap_alloc->claim_free_to_left(start);
+    uint64_t tail = bmap_alloc->claim_free_to_right(start + size);
+    ceph_assert(head <= start);
+    start -= head;
+    size += head + tail;
+  }
+  AvlAllocator::_add_to_tree(start, size);
+}
diff --git a/ceph/src/os/bluestore/HybridAllocator.h b/ceph/src/os/bluestore/HybridAllocator.h
new file mode 100644 (file)
index 0000000..e8246cf
--- /dev/null
@@ -0,0 +1,48 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#pragma once
+
+#include <mutex>
+
+#include "AvlAllocator.h"
+#include "BitmapAllocator.h"
+
+class HybridAllocator : public AvlAllocator {
+  BitmapAllocator* bmap_alloc = nullptr;
+public:
+  HybridAllocator(CephContext* cct, int64_t device_size, int64_t _block_size,
+                  uint64_t max_mem,
+                 const std::string& name) :
+      AvlAllocator(cct, device_size, _block_size, max_mem, name) {
+  }
+  int64_t allocate(
+    uint64_t want,
+    uint64_t unit,
+    uint64_t max_alloc_size,
+    int64_t  hint,
+    PExtentVector *extents) override;
+  void release(const interval_set<uint64_t>& release_set) override;
+  uint64_t get_free() override;
+  double get_fragmentation() override;
+
+  void dump() override;
+  void dump(std::function<void(uint64_t offset, uint64_t length)> notify) override;
+  void init_rm_free(uint64_t offset, uint64_t length) override;
+  void shutdown() override;
+
+protected:
+  // intended primarily for UT
+  BitmapAllocator* get_bmap() {
+    return bmap_alloc;
+  }
+  const BitmapAllocator* get_bmap() const {
+    return bmap_alloc;
+  }
+private:
+
+  void _spillover_range(uint64_t start, uint64_t end) override;
+
+  // called when extent to be released/marked free
+  void _add_to_tree(uint64_t start, uint64_t size) override;
+};
index 990e0ce90999d9bca1888323da6574a1ceb9e7fe..dd6e667804fb4b3b9e5100fc0843f492817691a0 100644 (file)
@@ -801,18 +801,42 @@ int KernelDevice::_sync_write(uint64_t off, bufferlist &bl, bool buffered, int w
   }
   vector<iovec> iov;
   bl.prepare_iov(&iov);
   }
   vector<iovec> iov;
   bl.prepare_iov(&iov);
-  int r = ::pwritev(choose_fd(buffered, write_hint),
-                   &iov[0], iov.size(), off);
 
 
-  if (r < 0) {
-    r = -errno;
-    derr << __func__ << " pwritev error: " << cpp_strerror(r) << dendl;
-    return r;
-  }
+  auto left = len;
+  auto o = off;
+  size_t idx = 0;
+  do {
+    auto r = ::pwritev(choose_fd(buffered, write_hint),
+      &iov[idx], iov.size() - idx, o);
+
+    if (r < 0) {
+      r = -errno;
+      derr << __func__ << " pwritev error: " << cpp_strerror(r) << dendl;
+      return r;
+    }
+    o += r;
+    left -= r;
+    if (left) {
+      // skip fully processed IOVs
+      while (idx < iov.size() && (size_t)r >= iov[idx].iov_len) {
+        r -= iov[idx++].iov_len;
+      }
+      // update partially processed one if any
+      if (r) {
+        ceph_assert(idx < iov.size());
+        ceph_assert((size_t)r < iov[idx].iov_len);
+        iov[idx].iov_base = static_cast<char*>(iov[idx].iov_base) + r;
+        iov[idx].iov_len -= r;
+        r = 0;
+      }
+      ceph_assert(r == 0);
+    }
+  } while (left);
+
 #ifdef HAVE_SYNC_FILE_RANGE
   if (buffered) {
     // initiate IO and wait till it completes
 #ifdef HAVE_SYNC_FILE_RANGE
   if (buffered) {
     // initiate IO and wait till it completes
-    r = ::sync_file_range(fd_buffereds[WRITE_LIFE_NOT_SET], off, len, SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER|SYNC_FILE_RANGE_WAIT_BEFORE);
+    auto r = ::sync_file_range(fd_buffereds[WRITE_LIFE_NOT_SET], off, len, SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER|SYNC_FILE_RANGE_WAIT_BEFORE);
     if (r < 0) {
       r = -errno;
       derr << __func__ << " sync_file_range error: " << cpp_strerror(r) << dendl;
     if (r < 0) {
       r = -errno;
       derr << __func__ << " sync_file_range error: " << cpp_strerror(r) << dendl;
index 441a185d5c72146339077bbb2fd6396b7a523a8c..bb8bdf0499a4c1ae27cebf9b66277522f95f7dd3 100644 (file)
@@ -629,3 +629,86 @@ void AllocatorLevel01Loose::dump(
     notify(off, len);
 }
 
     notify(off, len);
 }
 
+uint64_t AllocatorLevel01Loose::_claim_free_to_left_l0(int64_t l0_pos_start)
+{
+  int64_t d0 = L0_ENTRIES_PER_SLOT;
+
+  int64_t pos = l0_pos_start - 1;
+  slot_t bits = (slot_t)1 << (pos % d0);
+  int64_t idx = pos / d0;
+  slot_t* val_s = l0.data() + idx;
+
+  int64_t pos_e = p2align<int64_t>(pos, d0);
+
+  while (pos >= pos_e) {
+    if (0 == ((*val_s) & bits))
+      return pos + 1;
+    (*val_s) &= ~bits;
+    bits >>= 1;
+    --pos;
+  }
+  --idx;
+  val_s = l0.data() + idx;
+  while (idx >= 0 && (*val_s) == all_slot_set) {
+    *val_s = all_slot_clear;
+    --idx;
+    pos -= d0;
+    val_s = l0.data() + idx;
+  }
+
+  if (idx >= 0 &&
+      (*val_s) != all_slot_set && (*val_s) != all_slot_clear) {
+    int64_t pos_e = p2align<int64_t>(pos, d0);
+    slot_t bits = (slot_t)1 << (pos % d0);
+    while (pos >= pos_e) {
+      if (0 == ((*val_s) & bits))
+        return pos + 1;
+      (*val_s) &= ~bits;
+      bits >>= 1;
+      --pos;
+    }
+  }
+  return pos + 1;
+}
+
+uint64_t AllocatorLevel01Loose::_claim_free_to_right_l0(int64_t l0_pos_start)
+{
+  auto d0 = L0_ENTRIES_PER_SLOT;
+
+  int64_t pos = l0_pos_start;
+  slot_t bits = (slot_t)1 << (pos % d0);
+  size_t idx = pos / d0;
+  slot_t* val_s = l0.data() + idx;
+
+  int64_t pos_e = p2roundup<int64_t>(pos + 1, d0);
+
+  while (pos < pos_e) {
+    if (0 == ((*val_s) & bits))
+      return pos;
+    (*val_s) &= ~bits;
+    bits <<= 1;
+    ++pos;
+  }
+  ++idx;
+  val_s = l0.data() + idx;
+  while (idx < l0.size() && (*val_s) == all_slot_set) {
+    *val_s = all_slot_clear;
+    ++idx;
+    pos += d0;
+    val_s = l0.data() + idx;
+  }
+
+  if (idx < l0.size() &&
+      (*val_s) != all_slot_set && (*val_s) != all_slot_clear) {
+    int64_t pos_e = p2roundup<int64_t>(pos + 1, d0);
+    slot_t bits = (slot_t)1 << (pos % d0);
+    while (pos < pos_e) {
+      if (0 == ((*val_s) & bits))
+        return pos;
+      (*val_s) &= ~bits;
+      bits <<= 1;
+      ++pos;
+    }
+  }
+  return pos;
+}
index a584265527c1b67f12423ffd5914eec0a639f58d..ed2d4c8cc98ce4be65d864e1dc42474e5ea24c56 100644 (file)
@@ -322,6 +322,9 @@ protected:
 
   void _mark_l1_on_l0(int64_t l0_pos, int64_t l0_pos_end);
   void _mark_alloc_l0(int64_t l0_pos_start, int64_t l0_pos_end);
 
   void _mark_l1_on_l0(int64_t l0_pos, int64_t l0_pos_end);
   void _mark_alloc_l0(int64_t l0_pos_start, int64_t l0_pos_end);
+  uint64_t _claim_free_to_left_l0(int64_t l0_pos_start);
+  uint64_t _claim_free_to_right_l0(int64_t l0_pos_start);
+
 
   void _mark_alloc_l1_l0(int64_t l0_pos_start, int64_t l0_pos_end)
   {
 
   void _mark_alloc_l1_l0(int64_t l0_pos_start, int64_t l0_pos_end)
   {
@@ -424,6 +427,34 @@ protected:
     return l0_granularity * (l0_pos_end - l0_pos_start);
   }
 
     return l0_granularity * (l0_pos_end - l0_pos_start);
   }
 
+  uint64_t claim_free_to_left_l1(uint64_t offs)
+  {
+    uint64_t l0_pos_end = offs / l0_granularity;
+    uint64_t l0_pos_start = _claim_free_to_left_l0(l0_pos_end);
+    if (l0_pos_start < l0_pos_end) {
+      _mark_l1_on_l0(
+        p2align(l0_pos_start, uint64_t(bits_per_slotset)),
+        p2roundup(l0_pos_end, uint64_t(bits_per_slotset)));
+      return l0_granularity * (l0_pos_end - l0_pos_start);
+    }
+    return 0;
+  }
+
+  uint64_t claim_free_to_right_l1(uint64_t offs)
+  {
+    uint64_t l0_pos_start = offs / l0_granularity;
+    uint64_t l0_pos_end = _claim_free_to_right_l0(l0_pos_start);
+
+    if (l0_pos_start < l0_pos_end) {
+      _mark_l1_on_l0(
+        p2align(l0_pos_start, uint64_t(bits_per_slotset)),
+        p2roundup(l0_pos_end, uint64_t(bits_per_slotset)));
+      return l0_granularity * (l0_pos_end - l0_pos_start);
+    }
+    return 0;
+  }
+
+
 public:
   uint64_t debug_get_allocated(uint64_t pos0 = 0, uint64_t pos1 = 0)
   {
 public:
   uint64_t debug_get_allocated(uint64_t pos0 = 0, uint64_t pos1 = 0)
   {
@@ -522,7 +553,31 @@ public:
       std::lock_guard l(lock);
       l1.collect_stats(bins_overall);
   }
       std::lock_guard l(lock);
       l1.collect_stats(bins_overall);
   }
+  uint64_t claim_free_to_left(uint64_t offset) {
+    std::lock_guard l(lock);
+    auto allocated = l1.claim_free_to_left_l1(offset);
+    ceph_assert(available >= allocated);
+    available -= allocated;
+
+    uint64_t l2_pos = (offset - allocated) / l2_granularity;
+    uint64_t l2_pos_end =
+      p2roundup(int64_t(offset), int64_t(l2_granularity)) / l2_granularity;
+    _mark_l2_on_l1(l2_pos, l2_pos_end);
+    return allocated;
+  }
 
 
+  uint64_t claim_free_to_right(uint64_t offset) {
+    std::lock_guard l(lock);
+    auto allocated = l1.claim_free_to_right_l1(offset);
+    ceph_assert(available >= allocated);
+    available -= allocated;
+
+    uint64_t l2_pos = (offset) / l2_granularity;
+    int64_t end = offset + allocated;
+    uint64_t l2_pos_end = p2roundup(end, int64_t(l2_granularity)) / l2_granularity;
+    _mark_l2_on_l1(l2_pos, l2_pos_end);
+    return allocated;
+  }
 protected:
   ceph::mutex lock = ceph::make_mutex("AllocatorLevel02::lock");
   L1 l1;
 protected:
   ceph::mutex lock = ceph::make_mutex("AllocatorLevel02::lock");
   L1 l1;
@@ -634,7 +689,6 @@ protected:
   {
     uint64_t prev_allocated = *allocated;
     uint64_t d = L1_ENTRIES_PER_SLOT;
   {
     uint64_t prev_allocated = *allocated;
     uint64_t d = L1_ENTRIES_PER_SLOT;
-    ceph_assert(isp2(min_length));
     ceph_assert(min_length <= l2_granularity);
     ceph_assert(max_length == 0 || max_length >= min_length);
     ceph_assert(max_length == 0 || (max_length % min_length) == 0);
     ceph_assert(min_length <= l2_granularity);
     ceph_assert(max_length == 0 || max_length >= min_length);
     ceph_assert(max_length == 0 || (max_length % min_length) == 0);
index 7ff0ee94e9bfb2225da217e6a6cfd536d7e340a2..e72f9f6f650f451cff898293f12390de85547849 100644 (file)
@@ -1408,7 +1408,7 @@ MOSDMap *OSDService::build_incremental_map_msg(epoch_t since, epoch_t to,
     if (get_inc_map_bl(e, bl)) {
       m->incremental_maps[e].claim(bl);
     } else {
     if (get_inc_map_bl(e, bl)) {
       m->incremental_maps[e].claim(bl);
     } else {
-      derr << __func__ << " missing incremental map " << e << dendl;
+      dout(10) << __func__ << " missing incremental map " << e << dendl;
       if (!get_map_bl(e, bl)) {
        derr << __func__ << " also missing full map " << e << dendl;
        goto panic;
       if (!get_map_bl(e, bl)) {
        derr << __func__ << " also missing full map " << e << dendl;
        goto panic;
@@ -1918,7 +1918,7 @@ int heap(CephContext& cct, const cmdmap_t& cmdmap, Formatter& f, std::ostream& o
  
 }} // namespace ceph::osd_cmds
 
  
 }} // namespace ceph::osd_cmds
 
-int OSD::mkfs(CephContext *cct, ObjectStore *store, uuid_d fsid, int whoami)
+int OSD::mkfs(CephContext *cct, ObjectStore *store, uuid_d fsid, int whoami, string osdspec_affinity)
 {
   int ret;
 
 {
   int ret;
 
@@ -1991,7 +1991,7 @@ int OSD::mkfs(CephContext *cct, ObjectStore *store, uuid_d fsid, int whoami)
     }
   }
 
     }
   }
 
-  ret = write_meta(cct, store, sb.cluster_fsid, sb.osd_fsid, whoami);
+  ret = write_meta(cct, store, sb.cluster_fsid, sb.osd_fsid, whoami, osdspec_affinity);
   if (ret) {
     derr << "OSD::mkfs: failed to write fsid file: error "
          << cpp_strerror(ret) << dendl;
   if (ret) {
     derr << "OSD::mkfs: failed to write fsid file: error "
          << cpp_strerror(ret) << dendl;
@@ -2008,7 +2008,7 @@ free_store:
   return ret;
 }
 
   return ret;
 }
 
-int OSD::write_meta(CephContext *cct, ObjectStore *store, uuid_d& cluster_fsid, uuid_d& osd_fsid, int whoami)
+int OSD::write_meta(CephContext *cct, ObjectStore *store, uuid_d& cluster_fsid, uuid_d& osd_fsid, int whoami, string& osdspec_affinity)
 {
   char val[80];
   int r;
 {
   char val[80];
   int r;
@@ -2049,6 +2049,11 @@ int OSD::write_meta(CephContext *cct, ObjectStore *store, uuid_d& cluster_fsid,
        return r;
     }
   }
        return r;
     }
   }
+  if (!osdspec_affinity.empty()) {
+    r = store->write_meta("osdspec_affinity", osdspec_affinity.c_str());
+    if (r < 0)
+      return r;
+  }
 
   r = store->write_meta("ready", "ready");
   if (r < 0)
 
   r = store->write_meta("ready", "ready");
   if (r < 0)
@@ -10425,8 +10430,9 @@ void OSD::ShardedOpWQ::_process(uint32_t thread_index, heartbeat_handle_d *hb)
        sdata->shard_lock.unlock();
        return;
       }
        sdata->shard_lock.unlock();
        return;
       }
+      // found a work item; reapply default wq timeouts
       osd->cct->get_heartbeat_map()->reset_timeout(hb,
       osd->cct->get_heartbeat_map()->reset_timeout(hb,
-         osd->cct->_conf->threadpool_default_timeout, 0);
+        timeout_interval, suicide_interval);
     } else {
       dout(20) << __func__ << " need return immediately" << dendl;
       wait_lock.unlock();
     } else {
       dout(20) << __func__ << " need return immediately" << dendl;
       wait_lock.unlock();
index 59f84ed0bf3c7cfb2abaab7b6a246f3f2b4afd2d..50791bbb4908b59907c97eb8a22d70041da2ec45 100644 (file)
@@ -1996,7 +1996,7 @@ private:
   ~OSD() override;
 
   // static bits
   ~OSD() override;
 
   // static bits
-  static int mkfs(CephContext *cct, ObjectStore *store, uuid_d fsid, int whoami);
+  static int mkfs(CephContext *cct, ObjectStore *store, uuid_d fsid, int whoami, std::string osdspec_affinity);
 
   /* remove any non-user xattrs from a map of them */
   void filter_xattrs(map<string, bufferptr>& attrs) {
 
   /* remove any non-user xattrs from a map of them */
   void filter_xattrs(map<string, bufferptr>& attrs) {
@@ -2016,7 +2016,7 @@ private:
 
   static int write_meta(CephContext *cct,
                        ObjectStore *store,
 
   static int write_meta(CephContext *cct,
                        ObjectStore *store,
-                       uuid_d& cluster_fsid, uuid_d& osd_fsid, int whoami);
+                       uuid_d& cluster_fsid, uuid_d& osd_fsid, int whoami, std::string& osdspec_affinity);
 
   void handle_scrub(struct MOSDScrub *m);
   void handle_fast_scrub(struct MOSDScrub2 *m);
 
   void handle_scrub(struct MOSDScrub *m);
   void handle_fast_scrub(struct MOSDScrub2 *m);
index 93abbb7cdb1c5e3fcb8bf0bd00f922e08372937f..4a82ea6c2ca129a4133fddf166b085fc2970644e 100644 (file)
@@ -302,6 +302,7 @@ struct PurgeRange {
   int flags;
   Context *oncommit;
   int uncommitted;
   int flags;
   Context *oncommit;
   int uncommitted;
+  int err = 0;
   PurgeRange(inodeno_t i, const file_layout_t& l, const SnapContext& sc,
             uint64_t fo, uint64_t no, ceph::real_time t, int fl,
             Context *fin)
   PurgeRange(inodeno_t i, const file_layout_t& l, const SnapContext& sc,
             uint64_t fo, uint64_t no, ceph::real_time t, int fl,
             Context *fin)
@@ -331,7 +332,7 @@ int Filer::purge_range(inodeno_t ino,
   PurgeRange *pr = new PurgeRange(ino, *layout, snapc, first_obj,
                                  num_obj, mtime, flags, oncommit);
 
   PurgeRange *pr = new PurgeRange(ino, *layout, snapc, first_obj,
                                  num_obj, mtime, flags, oncommit);
 
-  _do_purge_range(pr, 0);
+  _do_purge_range(pr, 0, 0);
   return 0;
 }
 
   return 0;
 }
 
@@ -340,20 +341,22 @@ struct C_PurgeRange : public Context {
   PurgeRange *pr;
   C_PurgeRange(Filer *f, PurgeRange *p) : filer(f), pr(p) {}
   void finish(int r) override {
   PurgeRange *pr;
   C_PurgeRange(Filer *f, PurgeRange *p) : filer(f), pr(p) {}
   void finish(int r) override {
-    filer->_do_purge_range(pr, 1);
+    filer->_do_purge_range(pr, 1, r);
   }
 };
 
   }
 };
 
-void Filer::_do_purge_range(PurgeRange *pr, int fin)
+void Filer::_do_purge_range(PurgeRange *pr, int fin, int err)
 {
   PurgeRange::unique_lock prl(pr->lock);
 {
   PurgeRange::unique_lock prl(pr->lock);
+  if (err && err != -ENOENT)
+    pr->err = err;
   pr->uncommitted -= fin;
   ldout(cct, 10) << "_do_purge_range " << pr->ino << " objects " << pr->first
                 << "~" << pr->num << " uncommitted " << pr->uncommitted
                 << dendl;
 
   if (pr->num == 0 && pr->uncommitted == 0) {
   pr->uncommitted -= fin;
   ldout(cct, 10) << "_do_purge_range " << pr->ino << " objects " << pr->first
                 << "~" << pr->num << " uncommitted " << pr->uncommitted
                 << dendl;
 
   if (pr->num == 0 && pr->uncommitted == 0) {
-    pr->oncommit->complete(0);
+    pr->oncommit->complete(pr->err);
     prl.unlock();
     delete pr;
     return;
     prl.unlock();
     delete pr;
     return;
index 05525904ec5721d4f4ad5eea1a3123b132a6f655..cedb710c234584c3167a2f1b762b4e3f4031cfba 100644 (file)
@@ -253,7 +253,7 @@ class Filer {
                  uint64_t first_obj, uint64_t num_obj,
                  ceph::real_time mtime,
                  int flags, Context *oncommit);
                  uint64_t first_obj, uint64_t num_obj,
                  ceph::real_time mtime,
                  int flags, Context *oncommit);
-  void _do_purge_range(struct PurgeRange *pr, int fin);
+  void _do_purge_range(struct PurgeRange *pr, int fin, int err);
 
   /*
    * probe
 
   /*
    * probe
index 9a63f64f13be69423577eb8a9daf1a066e7652a5..f16e4855093f2cc7aaae6e19f5c4e776b615ed62 100644 (file)
@@ -2927,20 +2927,19 @@ int Objecter::_calc_target(op_target_t *t, Connection *con, bool any_change)
                   << " acting " << acting
                   << " primary " << acting_primary << dendl;
     t->used_replica = false;
                   << " acting " << acting
                   << " primary " << acting_primary << dendl;
     t->used_replica = false;
-    if (acting_primary == -1) {
-      t->osd = -1;
-    } else {
+    if ((t->flags & (CEPH_OSD_FLAG_BALANCE_READS |
+                     CEPH_OSD_FLAG_LOCALIZE_READS)) &&
+        !is_write && pi->is_replicated() && acting.size() > 1) {
       int osd;
       int osd;
-      bool read = is_read && !is_write;
-      if (read && (t->flags & CEPH_OSD_FLAG_BALANCE_READS)) {
+      ceph_assert(is_read && acting[0] == acting_primary);
+      if (t->flags & CEPH_OSD_FLAG_BALANCE_READS) {
        int p = rand() % acting.size();
        if (p)
          t->used_replica = true;
        osd = acting[p];
        ldout(cct, 10) << " chose random osd." << osd << " of " << acting
                       << dendl;
        int p = rand() % acting.size();
        if (p)
          t->used_replica = true;
        osd = acting[p];
        ldout(cct, 10) << " chose random osd." << osd << " of " << acting
                       << dendl;
-      } else if (read && (t->flags & CEPH_OSD_FLAG_LOCALIZE_READS) &&
-                acting.size() > 1) {
+      } else {
        // look for a local replica.  prefer the primary if the
        // distance is the same.
        int best = -1;
        // look for a local replica.  prefer the primary if the
        // distance is the same.
        int best = -1;
@@ -2963,10 +2962,10 @@ int Objecter::_calc_target(op_target_t *t, Connection *con, bool any_change)
        }
        ceph_assert(best >= 0);
        osd = acting[best];
        }
        ceph_assert(best >= 0);
        osd = acting[best];
-      } else {
-       osd = acting_primary;
       }
       t->osd = osd;
       }
       t->osd = osd;
+    } else {
+      t->osd = acting_primary;
     }
   }
   if (legacy_change || unpaused || force_resend) {
     }
   }
   if (legacy_change || unpaused || force_resend) {
index fb60ac2ee5bd27c7b97dfed5d559bbd0c07840f8..b943ed9b421be1091fc5f8d30c13eff1923bca1d 100755 (executable)
@@ -53,7 +53,7 @@ from ConfigParser import SafeConfigParser, NoSectionError
 from flask import abort, Flask, request, Response
 from hashlib import sha1 as sha
 from time import gmtime, strftime
 from flask import abort, Flask, request, Response
 from hashlib import sha1 as sha
 from time import gmtime, strftime
-from urlparse import urlparse
+from six.moves.urllib.parse import urlparse
 import argparse
 import base64
 import hmac
 import argparse
 import base64
 import hmac
index 68bdc514159a5c4a3a76a5c16f4dfae214f7e2b2..8bf89c62799b3b9943c4c4f8b860c20c2d167161 100644 (file)
@@ -1175,7 +1175,7 @@ class CephFSVolumeClient(object):
 
             volume_path_str = str(volume_path)
             if (auth_meta is None) or (not auth_meta['volumes']):
 
             volume_path_str = str(volume_path)
             if (auth_meta is None) or (not auth_meta['volumes']):
-                log.warn("deauthorized called for already-removed auth"
+                log.warning("deauthorized called for already-removed auth"
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
@@ -1184,7 +1184,7 @@ class CephFSVolumeClient(object):
                 return
 
             if volume_path_str not in auth_meta['volumes']:
                 return
 
             if volume_path_str not in auth_meta['volumes']:
-                log.warn("deauthorized called for already-removed auth"
+                log.warning("deauthorized called for already-removed auth"
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
@@ -1215,7 +1215,7 @@ class CephFSVolumeClient(object):
             vol_meta = self._volume_metadata_get(volume_path)
 
             if (vol_meta is None) or (auth_id not in vol_meta['auths']):
             vol_meta = self._volume_metadata_get(volume_path)
 
             if (vol_meta is None) or (auth_id not in vol_meta['auths']):
-                log.warn("deauthorized called for already-removed auth"
+                log.warning("deauthorized called for already-removed auth"
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
                          "ID '{auth_id}' for volume ID '{volume}'".format(
                     auth_id=auth_id, volume=volume_path.volume_id
                 ))
@@ -1389,7 +1389,7 @@ class CephFSVolumeClient(object):
         try:
             self.fs.rmdir(self._snapshot_path(dir_path, snapshot_name))
         except cephfs.ObjectNotFound:
         try:
             self.fs.rmdir(self._snapshot_path(dir_path, snapshot_name))
         except cephfs.ObjectNotFound:
-            log.warn("Snapshot was already gone: {0}".format(snapshot_name))
+            log.warning("Snapshot was already gone: {0}".format(snapshot_name))
 
     def create_snapshot_volume(self, volume_path, snapshot_name, mode=0o755):
         self._snapshot_create(self._get_path(volume_path), snapshot_name, mode)
 
     def create_snapshot_volume(self, volume_path, snapshot_name, mode=0o755):
         self._snapshot_create(self._get_path(volume_path), snapshot_name, mode)
@@ -1512,6 +1512,6 @@ class CephFSVolumeClient(object):
         try:
             ioctx.remove_object(object_name)
         except rados.ObjectNotFound:
         try:
             ioctx.remove_object(object_name)
         except rados.ObjectNotFound:
-            log.warn("Object '{0}' was already removed".format(object_name))
+            log.warning("Object '{0}' was already removed".format(object_name))
         finally:
             ioctx.close()
         finally:
             ioctx.close()
index 904ff177481da6b2f5cb6878e4c64475c1662d13..916ef81eccc4a2e17d21bfcd6b2d016c10dbd4ff 100644 (file)
@@ -106,7 +106,7 @@ cdef extern from "sys/time.h":
         long tv_sec
         long tv_usec
 
         long tv_sec
         long tv_usec
 
-cdef extern from "cephfs/ceph_statx.h":
+cdef extern from "cephfs/ceph_ll_client.h":
     cdef struct statx "ceph_statx":
         uint32_t    stx_mask
         uint32_t    stx_blksize
     cdef struct statx "ceph_statx":
         uint32_t    stx_mask
         uint32_t    stx_blksize
@@ -458,7 +458,7 @@ cdef char ** to_bytes_array(list_bytes):
     cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
     if ret == NULL:
         raise MemoryError("malloc failed")
     cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
     if ret == NULL:
         raise MemoryError("malloc failed")
-    for i in xrange(len(list_bytes)):
+    for i in range(len(list_bytes)):
         ret[i] = <char *>list_bytes[i]
     return ret
 
         ret[i] = <char *>list_bytes[i]
     return ret
 
index d6cec4b64baccd56727f2179094ea7c65adedd2b..e0b6cbcaa425ce1933f5927c03652e34a1901ddc 100644 (file)
@@ -157,7 +157,7 @@ class Alerts(MgrModule):
                 for code, alert in r.items():
                     checks[code] = alert
         else:
                 for code, alert in r.items():
                     checks[code] = alert
         else:
-            self.log.warn('Alert is not sent because smtp_host is not configured')
+            self.log.warning('Alert is not sent because smtp_host is not configured')
         self.set_health_checks(checks)
 
     def serve(self):
         self.set_health_checks(checks)
 
     def serve(self):
index 36e0213f92e8c10f3f45f2225f2dcbf471d5370b..8130ab3583937c1d4ab238f4468c67d8c532506a 100644 (file)
@@ -429,7 +429,7 @@ class Module(MgrModule):
         self.event = Event()
 
     def handle_command(self, inbuf, command):
         self.event = Event()
 
     def handle_command(self, inbuf, command):
-        self.log.warn("Handling command: '%s'" % str(command))
+        self.log.warning("Handling command: '%s'" % str(command))
         if command['prefix'] == 'balancer status':
             s = {
                 'plans': list(self.plans.keys()),
         if command['prefix'] == 'balancer status':
             s = {
                 'plans': list(self.plans.keys()),
@@ -1098,7 +1098,7 @@ class Module(MgrModule):
         metrics = self.get_module_option('crush_compat_metrics').split(',')
         key = metrics[0] # balancing using the first score metric
         if key not in ['pgs', 'bytes', 'objects']:
         metrics = self.get_module_option('crush_compat_metrics').split(',')
         key = metrics[0] # balancing using the first score metric
         if key not in ['pgs', 'bytes', 'objects']:
-            self.log.warn("Invalid crush_compat balancing key %s. Using 'pgs'." % key)
+            self.log.warning("Invalid crush_compat balancing key %s. Using 'pgs'." % key)
             key = 'pgs'
 
         # go
             key = 'pgs'
 
         # go
index f390f18c16aaacde7e142cd485dacdc48135f23c..9a9f07432113387d21ad8bf7445371944613b20c 100644 (file)
@@ -2,5 +2,6 @@ import os
 
 if 'UNITTEST' in os.environ:
     import tests
 
 if 'UNITTEST' in os.environ:
     import tests
+    tests.mock_ceph_modules()  # type: ignore
 
 from .module import CephadmOrchestrator
 
 from .module import CephadmOrchestrator
diff --git a/ceph/src/pybind/mgr/cephadm/inventory.py b/ceph/src/pybind/mgr/cephadm/inventory.py
new file mode 100644 (file)
index 0000000..e107ee4
--- /dev/null
@@ -0,0 +1,430 @@
+import datetime
+from copy import copy
+import json
+import logging
+from typing import TYPE_CHECKING, Dict, List, Iterator, Optional, Any, Tuple, Set
+
+import six
+
+import orchestrator
+from ceph.deployment import inventory
+from ceph.deployment.service_spec import ServiceSpec
+from orchestrator import OrchestratorError, HostSpec
+
+if TYPE_CHECKING:
+    from .module import CephadmOrchestrator
+
+
+logger = logging.getLogger(__name__)
+
+HOST_CACHE_PREFIX = "host."
+SPEC_STORE_PREFIX = "spec."
+DATEFMT = '%Y-%m-%dT%H:%M:%S.%f'
+
+
+class Inventory:
+    def __init__(self, mgr: 'CephadmOrchestrator'):
+        self.mgr = mgr
+        # load inventory
+        i = self.mgr.get_store('inventory')
+        if i:
+            self._inventory: Dict[str, dict] = json.loads(i)
+        else:
+            self._inventory = dict()
+        logger.debug('Loaded inventory %s' % self._inventory)
+
+    def keys(self) -> List[str]:
+        return list(self._inventory.keys())
+
+    def __contains__(self, host: str) -> bool:
+        return host in self._inventory
+
+    def assert_host(self, host):
+        if host not in self._inventory:
+            raise OrchestratorError('host %s does not exist' % host)
+
+    def add_host(self, spec: HostSpec):
+        self._inventory[spec.hostname] = spec.to_json()
+        self.save()
+
+    def rm_host(self, host: str):
+        self.assert_host(host)
+        del self._inventory[host]
+        self.save()
+
+    def set_addr(self, host, addr):
+        self.assert_host(host)
+        self._inventory[host]['addr'] = addr
+        self.save()
+
+    def add_label(self, host, label):
+        self.assert_host(host)
+
+        if 'labels' not in self._inventory[host]:
+            self._inventory[host]['labels'] = list()
+        if label not in self._inventory[host]['labels']:
+            self._inventory[host]['labels'].append(label)
+        self.save()
+
+    def rm_label(self, host, label):
+        self.assert_host(host)
+
+        if 'labels' not in self._inventory[host]:
+            self._inventory[host]['labels'] = list()
+        if label in self._inventory[host]['labels']:
+            self._inventory[host]['labels'].remove(label)
+        self.save()
+
+    def get_addr(self, host) -> str:
+        self.assert_host(host)
+        return self._inventory[host].get('addr', host)
+
+    def filter_by_label(self, label: Optional[str] = '', as_hostspec: bool = False) -> Iterator:
+        for h, hostspec in self._inventory.items():
+            if not label or label in hostspec.get('labels', []):
+                if as_hostspec:
+                    yield hostspec
+                yield h
+
+    def spec_from_dict(self, info):
+        hostname = info['hostname']
+        return HostSpec(
+                hostname,
+                addr=info.get('addr', hostname),
+                labels=info.get('labels', []),
+                status='Offline' if hostname in self.mgr.offline_hosts else info.get('status', ''),
+            )
+
+    def all_specs(self) -> Iterator[HostSpec]:
+        return map(self.spec_from_dict, self._inventory.values())
+
+    def save(self):
+        self.mgr.set_store('inventory', json.dumps(self._inventory))
+
+
+class SpecStore():
+    def __init__(self, mgr):
+        # type: (CephadmOrchestrator) -> None
+        self.mgr = mgr
+        self.specs = {} # type: Dict[str, ServiceSpec]
+        self.spec_created = {} # type: Dict[str, datetime.datetime]
+
+    def load(self):
+        # type: () -> None
+        for k, v in six.iteritems(self.mgr.get_store_prefix(SPEC_STORE_PREFIX)):
+            service_name = k[len(SPEC_STORE_PREFIX):]
+            try:
+                v = json.loads(v)
+                spec = ServiceSpec.from_json(v['spec'])
+                created = datetime.datetime.strptime(v['created'], DATEFMT)
+                self.specs[service_name] = spec
+                self.spec_created[service_name] = created
+                self.mgr.log.debug('SpecStore: loaded spec for %s' % (
+                    service_name))
+            except Exception as e:
+                self.mgr.log.warning('unable to load spec for %s: %s' % (
+                    service_name, e))
+                pass
+
+    def save(self, spec):
+        # type: (ServiceSpec) -> None
+        self.specs[spec.service_name()] = spec
+        self.spec_created[spec.service_name()] = datetime.datetime.utcnow()
+        self.mgr.set_store(
+            SPEC_STORE_PREFIX + spec.service_name(),
+            json.dumps({
+                'spec': spec.to_json(),
+                'created': self.spec_created[spec.service_name()].strftime(DATEFMT),
+            }, sort_keys=True),
+        )
+
+    def rm(self, service_name):
+        # type: (str) -> bool
+        found = service_name in self.specs
+        if found:
+            del self.specs[service_name]
+            del self.spec_created[service_name]
+            self.mgr.set_store(SPEC_STORE_PREFIX + service_name, None)
+        return found
+
+    def find(self, service_name: Optional[str] = None) -> List[ServiceSpec]:
+        specs = []
+        for sn, spec in self.specs.items():
+            if not service_name or \
+                    sn == service_name or \
+                    sn.startswith(service_name + '.'):
+                specs.append(spec)
+        self.mgr.log.debug('SpecStore: find spec for %s returned: %s' % (
+            service_name, specs))
+        return specs
+
+class HostCache():
+    def __init__(self, mgr):
+        # type: (CephadmOrchestrator) -> None
+        self.mgr: CephadmOrchestrator = mgr
+        self.daemons = {}   # type: Dict[str, Dict[str, orchestrator.DaemonDescription]]
+        self.last_daemon_update = {}   # type: Dict[str, datetime.datetime]
+        self.devices = {}              # type: Dict[str, List[inventory.Device]]
+        self.osdspec_previews = {}     # type: Dict[str, List[Dict[str, Any]]]
+        self.networks = {}             # type: Dict[str, Dict[str, List[str]]]
+        self.last_device_update = {}   # type: Dict[str, datetime.datetime]
+        self.daemon_refresh_queue = [] # type: List[str]
+        self.device_refresh_queue = [] # type: List[str]
+        self.osdspec_previews_refresh_queue = [] # type: List[str]
+        self.daemon_config_deps = {}   # type: Dict[str, Dict[str, Dict[str,Any]]]
+        self.last_host_check = {}      # type: Dict[str, datetime.datetime]
+        self.loading_osdspec_preview = set()  # type: Set[str]
+
+    def load(self):
+        # type: () -> None
+        for k, v in six.iteritems(self.mgr.get_store_prefix(HOST_CACHE_PREFIX)):
+            host = k[len(HOST_CACHE_PREFIX):]
+            if host not in self.mgr.inventory:
+                self.mgr.log.warning('removing stray HostCache host record %s' % (
+                    host))
+                self.mgr.set_store(k, None)
+            try:
+                j = json.loads(v)
+                if 'last_device_update' in j:
+                    self.last_device_update[host] = datetime.datetime.strptime(
+                        j['last_device_update'], DATEFMT)
+                else:
+                    self.device_refresh_queue.append(host)
+                # for services, we ignore the persisted last_*_update
+                # and always trigger a new scrape on mgr restart.
+                self.daemon_refresh_queue.append(host)
+                self.daemons[host] = {}
+                self.osdspec_previews[host] = []
+                self.devices[host] = []
+                self.networks[host] = {}
+                self.daemon_config_deps[host] = {}
+                for name, d in j.get('daemons', {}).items():
+                    self.daemons[host][name] = \
+                        orchestrator.DaemonDescription.from_json(d)
+                for d in j.get('devices', []):
+                    self.devices[host].append(inventory.Device.from_json(d))
+                self.networks[host] = j.get('networks', {})
+                self.osdspec_previews[host] = j.get('osdspec_previews', {})
+
+                for name, d in j.get('daemon_config_deps', {}).items():
+                    self.daemon_config_deps[host][name] = {
+                        'deps': d.get('deps', []),
+                        'last_config': datetime.datetime.strptime(
+                            d['last_config'], DATEFMT),
+                    }
+                if 'last_host_check' in j:
+                    self.last_host_check[host] = datetime.datetime.strptime(
+                        j['last_host_check'], DATEFMT)
+                self.mgr.log.debug(
+                    'HostCache.load: host %s has %d daemons, '
+                    '%d devices, %d networks' % (
+                        host, len(self.daemons[host]), len(self.devices[host]),
+                        len(self.networks[host])))
+            except Exception as e:
+                self.mgr.log.warning('unable to load cached state for %s: %s' % (
+                    host, e))
+                pass
+
+    def update_host_daemons(self, host, dm):
+        # type: (str, Dict[str, orchestrator.DaemonDescription]) -> None
+        self.daemons[host] = dm
+        self.last_daemon_update[host] = datetime.datetime.utcnow()
+
+    def update_host_devices_networks(self, host, dls, nets):
+        # type: (str, List[inventory.Device], Dict[str,List[str]]) -> None
+        self.devices[host] = dls
+        self.networks[host] = nets
+        self.last_device_update[host] = datetime.datetime.utcnow()
+
+    def update_daemon_config_deps(self, host, name, deps, stamp):
+        self.daemon_config_deps[host][name] = {
+            'deps': deps,
+            'last_config': stamp,
+        }
+
+    def update_last_host_check(self, host):
+        # type: (str) -> None
+        self.last_host_check[host] = datetime.datetime.utcnow()
+
+    def prime_empty_host(self, host):
+        # type: (str) -> None
+        """
+        Install an empty entry for a host
+        """
+        self.daemons[host] = {}
+        self.devices[host] = []
+        self.networks[host] = {}
+        self.osdspec_previews[host] = []
+        self.daemon_config_deps[host] = {}
+        self.daemon_refresh_queue.append(host)
+        self.device_refresh_queue.append(host)
+        self.osdspec_previews_refresh_queue.append(host)
+
+    def invalidate_host_daemons(self, host):
+        # type: (str) -> None
+        self.daemon_refresh_queue.append(host)
+        if host in self.last_daemon_update:
+            del self.last_daemon_update[host]
+        self.mgr.event.set()
+
+    def invalidate_host_devices(self, host):
+        # type: (str) -> None
+        self.device_refresh_queue.append(host)
+        if host in self.last_device_update:
+            del self.last_device_update[host]
+        self.mgr.event.set()
+
+    def save_host(self, host):
+        # type: (str) -> None
+        j = {   # type: ignore
+            'daemons': {},
+            'devices': [],
+            'osdspec_previews': [],
+            'daemon_config_deps': {},
+        }
+        if host in self.last_daemon_update:
+            j['last_daemon_update'] = self.last_daemon_update[host].strftime(DATEFMT) # type: ignore
+        if host in self.last_device_update:
+            j['last_device_update'] = self.last_device_update[host].strftime(DATEFMT) # type: ignore
+        for name, dd in self.daemons[host].items():
+            j['daemons'][name] = dd.to_json()  # type: ignore
+        for d in self.devices[host]:
+            j['devices'].append(d.to_json())  # type: ignore
+        j['networks'] = self.networks[host]
+        for name, depi in self.daemon_config_deps[host].items():
+            j['daemon_config_deps'][name] = {   # type: ignore
+                'deps': depi.get('deps', []),
+                'last_config': depi['last_config'].strftime(DATEFMT),
+            }
+        if self.osdspec_previews[host]:
+            j['osdspec_previews'] = self.osdspec_previews[host]
+
+        if host in self.last_host_check:
+            j['last_host_check'] = self.last_host_check[host].strftime(DATEFMT)
+        self.mgr.set_store(HOST_CACHE_PREFIX + host, json.dumps(j))
+
+    def rm_host(self, host):
+        # type: (str) -> None
+        if host in self.daemons:
+            del self.daemons[host]
+        if host in self.devices:
+            del self.devices[host]
+        if host in self.osdspec_previews:
+            del self.osdspec_previews[host]
+        if host in self.loading_osdspec_preview:
+            self.loading_osdspec_preview.remove(host)
+        if host in self.networks:
+            del self.networks[host]
+        if host in self.last_daemon_update:
+            del self.last_daemon_update[host]
+        if host in self.last_device_update:
+            del self.last_device_update[host]
+        if host in self.daemon_config_deps:
+            del self.daemon_config_deps[host]
+        self.mgr.set_store(HOST_CACHE_PREFIX + host, None)
+
+    def get_hosts(self):
+        # type: () -> List[str]
+        r = []
+        for host, di in self.daemons.items():
+            r.append(host)
+        return r
+
+    def get_daemons(self):
+        # type: () -> List[orchestrator.DaemonDescription]
+        r = []
+        for host, dm in self.daemons.items():
+            for name, dd in dm.items():
+                r.append(dd)
+        return r
+
+    def get_daemons_with_volatile_status(self) -> Iterator[Tuple[str, Dict[str, orchestrator.DaemonDescription]]]:
+        for host, dm in self.daemons.items():
+            if host in self.mgr.offline_hosts:
+                def set_offline(dd: orchestrator.DaemonDescription) -> orchestrator.DaemonDescription:
+                    ret = copy(dd)
+                    ret.status = -1
+                    ret.status_desc = 'host is offline'
+                    return ret
+                yield host, {name: set_offline(d) for name, d in dm.items()}
+            else:
+                yield host, dm
+
+    def get_daemons_by_service(self, service_name):
+        # type: (str) -> List[orchestrator.DaemonDescription]
+        result = []   # type: List[orchestrator.DaemonDescription]
+        for host, dm in self.daemons.items():
+            for name, d in dm.items():
+                if name.startswith(service_name + '.'):
+                    result.append(d)
+        return result
+
+    def get_daemon_names(self):
+        # type: () -> List[str]
+        r = []
+        for host, dm in self.daemons.items():
+            for name, dd in dm.items():
+                r.append(name)
+        return r
+
+    def get_daemon_last_config_deps(self, host, name):
+        if host in self.daemon_config_deps:
+            if name in self.daemon_config_deps[host]:
+                return self.daemon_config_deps[host][name].get('deps', []), \
+                    self.daemon_config_deps[host][name].get('last_config', None)
+        return None, None
+
+    def host_needs_daemon_refresh(self, host):
+        # type: (str) -> bool
+        if host in self.mgr.offline_hosts:
+            logger.debug(f'Host "{host}" marked as offline. Skipping daemon refresh')
+            return False
+        if host in self.daemon_refresh_queue:
+            self.daemon_refresh_queue.remove(host)
+            return True
+        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
+            seconds=self.mgr.daemon_cache_timeout)
+        if host not in self.last_daemon_update or self.last_daemon_update[host] < cutoff:
+            return True
+        return False
+
+    def host_needs_device_refresh(self, host):
+        # type: (str) -> bool
+        if host in self.mgr.offline_hosts:
+            logger.debug(f'Host "{host}" marked as offline. Skipping device refresh')
+            return False
+        if host in self.device_refresh_queue:
+            self.device_refresh_queue.remove(host)
+            return True
+        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
+            seconds=self.mgr.device_cache_timeout)
+        if host not in self.last_device_update or self.last_device_update[host] < cutoff:
+            return True
+        return False
+
+    def host_needs_osdspec_preview_refresh(self, host):
+        if host in self.mgr.offline_hosts:
+            logger.debug(f'Host "{host}" marked as offline. Skipping osdspec preview refresh')
+            return False
+        if host in self.osdspec_previews_refresh_queue:
+            self.osdspec_previews_refresh_queue.remove(host)
+            return True
+        #  Since this is dependent on other factors (device and spec) this does not  need
+        #  to be updated periodically.
+        return False
+
+    def host_needs_check(self, host):
+        # type: (str) -> bool
+        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
+            seconds=self.mgr.host_check_interval)
+        return host not in self.last_host_check or self.last_host_check[host] < cutoff
+
+    def add_daemon(self, host, dd):
+        # type: (str, orchestrator.DaemonDescription) -> None
+        assert host in self.daemons
+        self.daemons[host][dd.name()] = dd
+
+    def rm_daemon(self, host, name):
+        if host in self.daemons:
+            if name in self.daemons[host]:
+                del self.daemons[host][name]
\ No newline at end of file
index 537c4d4102fa6ddb76e63512202dd25db0c8fd7a..de9673aa039320f7540a3117a78b999721349969 100644 (file)
@@ -1,21 +1,14 @@
 import json
 import errno
 import logging
 import json
 import errno
 import logging
-import time
-from copy import copy
-from threading import Event
+from collections import defaultdict
 from functools import wraps
 from functools import wraps
-
-from mgr_util import create_self_signed_cert, verify_tls, ServerConfigException
+from tempfile import TemporaryDirectory
+from threading import Event
 
 import string
 
 import string
-try:
-    from typing import List, Dict, Optional, Callable, Tuple, TypeVar, Type, \
-        Any, NamedTuple, Iterator, Set, Sequence
-    from typing import TYPE_CHECKING, cast
-except ImportError:
-    TYPE_CHECKING = False  # just for type checking
-
+from typing import List, Dict, Optional, Callable, Tuple, TypeVar, \
+    Any, Set, TYPE_CHECKING, cast
 
 import datetime
 import six
 
 import datetime
 import six
@@ -23,30 +16,45 @@ import os
 import random
 import tempfile
 import multiprocessing.pool
 import random
 import tempfile
 import multiprocessing.pool
-import re
 import shutil
 import subprocess
 import shutil
 import subprocess
-import uuid
 
 
-from ceph.deployment import inventory, translate
+from ceph.deployment import inventory
 from ceph.deployment.drive_group import DriveGroupSpec
 from ceph.deployment.drive_group import DriveGroupSpec
-from ceph.deployment.drive_selection.selector import DriveSelection
 from ceph.deployment.service_spec import \
 from ceph.deployment.service_spec import \
-    HostPlacementSpec, NFSServiceSpec, ServiceSpec, PlacementSpec, assert_valid_host
+    NFSServiceSpec, ServiceSpec, PlacementSpec, assert_valid_host
 
 from mgr_module import MgrModule, HandleCommandResult
 import orchestrator
 from orchestrator import OrchestratorError, OrchestratorValidationError, HostSpec, \
     CLICommandMeta
 
 from mgr_module import MgrModule, HandleCommandResult
 import orchestrator
 from orchestrator import OrchestratorError, OrchestratorValidationError, HostSpec, \
     CLICommandMeta
+from orchestrator._interface import GenericSpec
 
 from . import remotes
 from . import utils
 
 from . import remotes
 from . import utils
-from .nfs import NFSGanesha
-from .osd import RemoveUtil, OSDRemoval
-
+from .services.cephadmservice import MonService, MgrService, MdsService, RgwService, \
+    RbdMirrorService, CrashService, CephadmService
+from .services.iscsi import IscsiService
+from .services.nfs import NFSService
+from .services.osd import RemoveUtil, OSDRemoval, OSDService
+from .services.monitoring import GrafanaService, AlertmanagerService, PrometheusService, \
+    NodeExporterService
+from .schedule import HostAssignment
+from .inventory import Inventory, SpecStore, HostCache
+from .upgrade import CEPH_UPGRADE_ORDER, CephadmUpgrade
+from .template import TemplateMgr
 
 try:
     import remoto
 
 try:
     import remoto
+    # NOTE(mattoliverau) Patch remoto until remoto PR
+    # (https://github.com/alfredodeza/remoto/pull/56) lands
+    from distutils.version import StrictVersion
+    if StrictVersion(remoto.__version__) <= StrictVersion('1.2'):
+        def remoto_has_connection(self):
+            return self.gateway.hasreceiver()
+
+        from remoto.backends import BaseConnection
+        BaseConnection.has_connection = remoto_has_connection
     import remoto.process
     import execnet.gateway_bootstrap
 except ImportError as e:
     import remoto.process
     import execnet.gateway_bootstrap
 except ImportError as e:
@@ -60,6 +68,8 @@ except ImportError:
 
 logger = logging.getLogger(__name__)
 
 
 logger = logging.getLogger(__name__)
 
+T = TypeVar('T')
+
 DEFAULT_SSH_CONFIG = """
 Host *
   User root
 DEFAULT_SSH_CONFIG = """
 Host *
   User root
@@ -71,494 +81,54 @@ Host *
 DATEFMT = '%Y-%m-%dT%H:%M:%S.%f'
 CEPH_DATEFMT = '%Y-%m-%dT%H:%M:%S.%fZ'
 
 DATEFMT = '%Y-%m-%dT%H:%M:%S.%f'
 CEPH_DATEFMT = '%Y-%m-%dT%H:%M:%S.%fZ'
 
-HOST_CACHE_PREFIX = "host."
-SPEC_STORE_PREFIX = "spec."
-
-# ceph daemon types that use the ceph container image.
-# NOTE: listed in upgrade order!
-CEPH_UPGRADE_ORDER = ['mgr', 'mon', 'crash', 'osd', 'mds', 'rgw', 'rbd-mirror']
 CEPH_TYPES = set(CEPH_UPGRADE_ORDER)
 
 
 CEPH_TYPES = set(CEPH_UPGRADE_ORDER)
 
 
-# for py2 compat
-try:
-    from tempfile import TemporaryDirectory # py3
-except ImportError:
-    # define a minimal (but sufficient) equivalent for <= py 3.2
-    class TemporaryDirectory(object): # type: ignore
-        def __init__(self):
-            self.name = tempfile.mkdtemp()
-
-        def __enter__(self):
-            if not self.name:
-                self.name = tempfile.mkdtemp()
-            return self.name
-
-        def cleanup(self):
-            shutil.rmtree(self.name)
-
-        def __exit__(self, exc_type, exc_value, traceback):
-            self.cleanup()
-
-
-class SpecStore():
-    def __init__(self, mgr):
-        # type: (CephadmOrchestrator) -> None
-        self.mgr = mgr
-        self.specs = {} # type: Dict[str, ServiceSpec]
-        self.spec_created = {} # type: Dict[str, datetime.datetime]
+def forall_hosts(f: Callable[..., T]) -> Callable[..., List[T]]:
+    @wraps(f)
+    def forall_hosts_wrapper(*args) -> List[T]:
+
+        # Some weired logic to make calling functions with multiple arguments work.
+        if len(args) == 1:
+            vals = args[0]
+            self = None
+        elif len(args) == 2:
+            self, vals = args
+        else:
+            assert 'either f([...]) or self.f([...])'
 
 
-    def load(self):
-        # type: () -> None
-        for k, v in six.iteritems(self.mgr.get_store_prefix(SPEC_STORE_PREFIX)):
-            service_name = k[len(SPEC_STORE_PREFIX):]
+        def do_work(arg):
+            if not isinstance(arg, tuple):
+                arg = (arg, )
             try:
             try:
-                v = json.loads(v)
-                spec = ServiceSpec.from_json(v['spec'])
-                created = datetime.datetime.strptime(v['created'], DATEFMT)
-                self.specs[service_name] = spec
-                self.spec_created[service_name] = created
-                self.mgr.log.debug('SpecStore: loaded spec for %s' % (
-                    service_name))
+                if self:
+                    return f(self, *arg)
+                return f(*arg)
             except Exception as e:
             except Exception as e:
-                self.mgr.log.warning('unable to load spec for %s: %s' % (
-                    service_name, e))
-                pass
-
-    def save(self, spec):
-        # type: (ServiceSpec) -> None
-        self.specs[spec.service_name()] = spec
-        self.spec_created[spec.service_name()] = datetime.datetime.utcnow()
-        self.mgr.set_store(
-            SPEC_STORE_PREFIX + spec.service_name(),
-            json.dumps({
-                'spec': spec.to_json(),
-                'created': self.spec_created[spec.service_name()].strftime(DATEFMT),
-            }, sort_keys=True),
-        )
-
-    def rm(self, service_name):
-        # type: (str) -> bool
-        found = service_name in self.specs
-        if found:
-            del self.specs[service_name]
-            del self.spec_created[service_name]
-            self.mgr.set_store(SPEC_STORE_PREFIX + service_name, None)
-        return found
-
-    def find(self, service_name: Optional[str] = None) -> List[ServiceSpec]:
-        specs = []
-        for sn, spec in self.specs.items():
-            if not service_name or \
-                    sn == service_name or \
-                    sn.startswith(service_name + '.'):
-                specs.append(spec)
-        self.mgr.log.debug('SpecStore: find spec for %s returned: %s' % (
-            service_name, specs))
-        return specs
-
-class HostCache():
-    def __init__(self, mgr):
-        # type: (CephadmOrchestrator) -> None
-        self.mgr: CephadmOrchestrator = mgr
-        self.daemons = {}   # type: Dict[str, Dict[str, orchestrator.DaemonDescription]]
-        self.last_daemon_update = {}   # type: Dict[str, datetime.datetime]
-        self.devices = {}              # type: Dict[str, List[inventory.Device]]
-        self.networks = {}             # type: Dict[str, Dict[str, List[str]]]
-        self.last_device_update = {}   # type: Dict[str, datetime.datetime]
-        self.daemon_refresh_queue = [] # type: List[str]
-        self.device_refresh_queue = [] # type: List[str]
-        self.daemon_config_deps = {}   # type: Dict[str, Dict[str, Dict[str,Any]]]
-        self.last_host_check = {}      # type: Dict[str, datetime.datetime]
-
-    def load(self):
-        # type: () -> None
-        for k, v in six.iteritems(self.mgr.get_store_prefix(HOST_CACHE_PREFIX)):
-            host = k[len(HOST_CACHE_PREFIX):]
-            if host not in self.mgr.inventory:
-                self.mgr.log.warning('removing stray HostCache host record %s' % (
-                    host))
-                self.mgr.set_store(k, None)
-            try:
-                j = json.loads(v)
-                if 'last_device_update' in j:
-                    self.last_device_update[host] = datetime.datetime.strptime(
-                        j['last_device_update'], DATEFMT)
-                else:
-                    self.device_refresh_queue.append(host)
-                # for services, we ignore the persisted last_*_update
-                # and always trigger a new scrape on mgr restart.
-                self.daemon_refresh_queue.append(host)
-                self.daemons[host] = {}
-                self.devices[host] = []
-                self.networks[host] = {}
-                self.daemon_config_deps[host] = {}
-                for name, d in j.get('daemons', {}).items():
-                    self.daemons[host][name] = \
-                        orchestrator.DaemonDescription.from_json(d)
-                for d in j.get('devices', []):
-                    self.devices[host].append(inventory.Device.from_json(d))
-                self.networks[host] = j.get('networks', {})
-                for name, d in j.get('daemon_config_deps', {}).items():
-                    self.daemon_config_deps[host][name] = {
-                        'deps': d.get('deps', []),
-                        'last_config': datetime.datetime.strptime(
-                            d['last_config'], DATEFMT),
-                    }
-                if 'last_host_check' in j:
-                    self.last_host_check[host] = datetime.datetime.strptime(
-                        j['last_host_check'], DATEFMT)
-                self.mgr.log.debug(
-                    'HostCache.load: host %s has %d daemons, '
-                    '%d devices, %d networks' % (
-                        host, len(self.daemons[host]), len(self.devices[host]),
-                        len(self.networks[host])))
-            except Exception as e:
-                self.mgr.log.warning('unable to load cached state for %s: %s' % (
-                    host, e))
-                pass
-
-    def update_host_daemons(self, host, dm):
-        # type: (str, Dict[str, orchestrator.DaemonDescription]) -> None
-        self.daemons[host] = dm
-        self.last_daemon_update[host] = datetime.datetime.utcnow()
-
-    def update_host_devices_networks(self, host, dls, nets):
-        # type: (str, List[inventory.Device], Dict[str,List[str]]) -> None
-        self.devices[host] = dls
-        self.networks[host] = nets
-        self.last_device_update[host] = datetime.datetime.utcnow()
-
-    def update_daemon_config_deps(self, host, name, deps, stamp):
-        self.daemon_config_deps[host][name] = {
-            'deps': deps,
-            'last_config': stamp,
-        }
-
-    def update_last_host_check(self, host):
-        # type: (str) -> None
-        self.last_host_check[host] = datetime.datetime.utcnow()
-
-    def prime_empty_host(self, host):
-        # type: (str) -> None
-        """
-        Install an empty entry for a host
-        """
-        self.daemons[host] = {}
-        self.devices[host] = []
-        self.networks[host] = {}
-        self.daemon_config_deps[host] = {}
-        self.daemon_refresh_queue.append(host)
-        self.device_refresh_queue.append(host)
-
-    def invalidate_host_daemons(self, host):
-        # type: (str) -> None
-        self.daemon_refresh_queue.append(host)
-        if host in self.last_daemon_update:
-            del self.last_daemon_update[host]
-        self.mgr.event.set()
-
-    def invalidate_host_devices(self, host):
-        # type: (str) -> None
-        self.device_refresh_queue.append(host)
-        if host in self.last_device_update:
-            del self.last_device_update[host]
-        self.mgr.event.set()
-
-    def save_host(self, host):
-        # type: (str) -> None
-        j = {   # type: ignore
-            'daemons': {},
-            'devices': [],
-            'daemon_config_deps': {},
-        }
-        if host in self.last_daemon_update:
-            j['last_daemon_update'] = self.last_daemon_update[host].strftime(DATEFMT) # type: ignore
-        if host in self.last_device_update:
-            j['last_device_update'] = self.last_device_update[host].strftime(DATEFMT) # type: ignore
-        for name, dd in self.daemons[host].items():
-            j['daemons'][name] = dd.to_json()  # type: ignore
-        for d in self.devices[host]:
-            j['devices'].append(d.to_json())  # type: ignore
-        j['networks'] = self.networks[host]
-        for name, depi in self.daemon_config_deps[host].items():
-            j['daemon_config_deps'][name] = {   # type: ignore
-                'deps': depi.get('deps', []),
-                'last_config': depi['last_config'].strftime(DATEFMT),
-            }
-        if host in self.last_host_check:
-            j['last_host_check']= self.last_host_check[host].strftime(DATEFMT)
-        self.mgr.set_store(HOST_CACHE_PREFIX + host, json.dumps(j))
-
-    def rm_host(self, host):
-        # type: (str) -> None
-        if host in self.daemons:
-            del self.daemons[host]
-        if host in self.devices:
-            del self.devices[host]
-        if host in self.networks:
-            del self.networks[host]
-        if host in self.last_daemon_update:
-            del self.last_daemon_update[host]
-        if host in self.last_device_update:
-            del self.last_device_update[host]
-        if host in self.daemon_config_deps:
-            del self.daemon_config_deps[host]
-        self.mgr.set_store(HOST_CACHE_PREFIX + host, None)
-
-    def get_hosts(self):
-        # type: () -> List[str]
-        r = []
-        for host, di in self.daemons.items():
-            r.append(host)
-        return r
-
-    def get_daemons(self):
-        # type: () -> List[orchestrator.DaemonDescription]
-        r = []
-        for host, dm in self.daemons.items():
-            for name, dd in dm.items():
-                r.append(dd)
-        return r
-
-    def get_daemons_with_volatile_status(self) -> Iterator[Tuple[str, Dict[str, orchestrator.DaemonDescription]]]:
-        for host, dm in self.daemons.items():
-            if host in self.mgr.offline_hosts:
-                def set_offline(dd: orchestrator.DaemonDescription) -> orchestrator.DaemonDescription:
-                    ret = copy(dd)
-                    ret.status = -1
-                    ret.status_desc = 'host is offline'
-                    return ret
-                yield host, {name: set_offline(d) for name, d in dm.items()}
-            else:
-                yield host, dm
-
-    def get_daemons_by_service(self, service_name):
-        # type: (str) -> List[orchestrator.DaemonDescription]
-        result = []   # type: List[orchestrator.DaemonDescription]
-        for host, dm in self.daemons.items():
-            for name, d in dm.items():
-                if name.startswith(service_name + '.'):
-                    result.append(d)
-        return result
-
-    def get_daemon_names(self):
-        # type: () -> List[str]
-        r = []
-        for host, dm in self.daemons.items():
-            for name, dd in dm.items():
-                r.append(name)
-        return r
-
-    def get_daemon_last_config_deps(self, host, name):
-        if host in self.daemon_config_deps:
-            if name in self.daemon_config_deps[host]:
-                return self.daemon_config_deps[host][name].get('deps', []), \
-                    self.daemon_config_deps[host][name].get('last_config', None)
-        return None, None
-
-    def host_needs_daemon_refresh(self, host):
-        # type: (str) -> bool
-        if host in self.mgr.offline_hosts:
-            logger.debug(f'Host "{host}" marked as offline. Skipping daemon refresh')
-            return False
-        if host in self.daemon_refresh_queue:
-            self.daemon_refresh_queue.remove(host)
-            return True
-        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
-            seconds=self.mgr.daemon_cache_timeout)
-        if host not in self.last_daemon_update or self.last_daemon_update[host] < cutoff:
-            return True
-        return False
-
-    def host_needs_device_refresh(self, host):
-        # type: (str) -> bool
-        if host in self.mgr.offline_hosts:
-            logger.debug(f'Host "{host}" marked as offline. Skipping device refresh')
-            return False
-        if host in self.device_refresh_queue:
-            self.device_refresh_queue.remove(host)
-            return True
-        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
-            seconds=self.mgr.device_cache_timeout)
-        if host not in self.last_device_update or self.last_device_update[host] < cutoff:
-            return True
-        return False
-
-    def host_needs_check(self, host):
-        # type: (str) -> bool
-        cutoff = datetime.datetime.utcnow() - datetime.timedelta(
-            seconds=self.mgr.host_check_interval)
-        return host not in self.last_host_check or self.last_host_check[host] < cutoff
-
-    def add_daemon(self, host, dd):
-        # type: (str, orchestrator.DaemonDescription) -> None
-        assert host in self.daemons
-        self.daemons[host][dd.name()] = dd
-
-    def rm_daemon(self, host, name):
-        if host in self.daemons:
-            if name in self.daemons[host]:
-                del self.daemons[host][name]
-
-
-class AsyncCompletion(orchestrator.Completion):
-    def __init__(self,
-                 _first_promise=None,  # type: Optional[orchestrator.Completion]
-                 value=orchestrator._Promise.NO_RESULT,  # type: Any
-                 on_complete=None,  # type: Optional[Callable]
-                 name=None,  # type: Optional[str]
-                 many=False, # type: bool
-                 update_progress=False,  # type: bool
-                 ):
+                logger.exception(f'executing {f.__name__}({args}) failed.')
+                raise
 
         assert CephadmOrchestrator.instance is not None
 
         assert CephadmOrchestrator.instance is not None
-        self.many = many
-        self.update_progress = update_progress
-        if name is None and on_complete is not None:
-            name = getattr(on_complete, '__name__', None)
-        super(AsyncCompletion, self).__init__(_first_promise, value, on_complete, name)
-
-    @property
-    def _progress_reference(self):
-        # type: () -> Optional[orchestrator.ProgressReference]
-        if hasattr(self._on_complete_, 'progress_id'):  # type: ignore
-            return self._on_complete_  # type: ignore
-        return None
-
-    @property
-    def _on_complete(self):
-        # type: () -> Optional[Callable]
-        if self._on_complete_ is None:
-            return None
-
-        def callback(result):
-            try:
-                if self.update_progress:
-                    assert self.progress_reference
-                    self.progress_reference.progress = 1.0
-                self._on_complete_ = None
-                self._finalize(result)
-            except Exception as e:
-                try:
-                    self.fail(e)
-                except Exception:
-                    logger.exception(f'failed to fail AsyncCompletion: >{repr(self)}<')
-                    if 'UNITTEST' in os.environ:
-                        assert False
-
-        def error_callback(e):
-            pass
-
-        def run(value):
-            def do_work(*args, **kwargs):
-                assert self._on_complete_ is not None
-                try:
-                    res = self._on_complete_(*args, **kwargs)
-                    if self.update_progress and self.many:
-                        assert self.progress_reference
-                        self.progress_reference.progress += 1.0 / len(value)
-                    return res
-                except Exception as e:
-                    self.fail(e)
-                    raise
-
-            assert CephadmOrchestrator.instance
-            if self.many:
-                if not value:
-                    logger.info('calling map_async without values')
-                    callback([])
-                if six.PY3:
-                    CephadmOrchestrator.instance._worker_pool.map_async(do_work, value,
-                                                                    callback=callback,
-                                                                    error_callback=error_callback)
-                else:
-                    CephadmOrchestrator.instance._worker_pool.map_async(do_work, value,
-                                                                    callback=callback)
-            else:
-                if six.PY3:
-                    CephadmOrchestrator.instance._worker_pool.apply_async(do_work, (value,),
-                                                                      callback=callback, error_callback=error_callback)
-                else:
-                    CephadmOrchestrator.instance._worker_pool.apply_async(do_work, (value,),
-                                                                      callback=callback)
-            return self.ASYNC_RESULT
-
-        return run
-
-    @_on_complete.setter
-    def _on_complete(self, inner):
-        # type: (Callable) -> None
-        self._on_complete_ = inner
-
-
-def ssh_completion(cls=AsyncCompletion, **c_kwargs):
-    # type: (Type[orchestrator.Completion], Any) -> Callable
-    """
-    See ./HACKING.rst for a how-to
-    """
-    def decorator(f):
-        @wraps(f)
-        def wrapper(*args):
-
-            name = f.__name__
-            many = c_kwargs.get('many', False)
-
-            # Some weired logic to make calling functions with multiple arguments work.
-            if len(args) == 1:
-                [value] = args
-                if many and value and isinstance(value[0], tuple):
-                    return cls(on_complete=lambda x: f(*x), value=value, name=name, **c_kwargs)
-                else:
-                    return cls(on_complete=f, value=value, name=name, **c_kwargs)
-            else:
-                if many:
-                    self, value = args
+        return CephadmOrchestrator.instance._worker_pool.map(do_work, vals)
 
 
-                    def call_self(inner_args):
-                        if not isinstance(inner_args, tuple):
-                            inner_args = (inner_args, )
-                        return f(self, *inner_args)
 
 
-                    return cls(on_complete=call_self, value=value, name=name, **c_kwargs)
-                else:
-                    return cls(on_complete=lambda x: f(*x), value=args, name=name, **c_kwargs)
+    return forall_hosts_wrapper
 
 
-        return wrapper
-    return decorator
 
 
+class CephadmCompletion(orchestrator.Completion):
+    def evaluate(self):
+        self.finalize(None)
 
 
-def async_completion(f):
-    # type: (Callable) -> Callable[..., AsyncCompletion]
+def trivial_completion(f: Callable) -> Callable[..., CephadmCompletion]:
     """
     """
-    See ./HACKING.rst for a how-to
-
-    :param f: wrapped function
-    """
-    return ssh_completion()(f)
-
-
-def async_map_completion(f):
-    # type: (Callable) -> Callable[..., AsyncCompletion]
-    """
-    See ./HACKING.rst for a how-to
-
-    :param f: wrapped function
-
-    kind of similar to
-
-    >>> def sync_map(f):
-    ...     return lambda x: map(f, x)
-
+    Decorator to make CephadmCompletion methods return
+    a completion object that executes themselves.
     """
     """
-    return ssh_completion(many=True)(f)
 
 
-
-def trivial_completion(f):
-    # type: (Callable) -> Callable[..., orchestrator.Completion]
     @wraps(f)
     def wrapper(*args, **kwargs):
     @wraps(f)
     def wrapper(*args, **kwargs):
-        return AsyncCompletion(value=f(*args, **kwargs), name=f.__name__)
+        return CephadmCompletion(on_complete=lambda _: f(*args, **kwargs))
+
     return wrapper
 
 
     return wrapper
 
 
@@ -607,6 +177,26 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             'desc': 'Container image name, without the tag',
             'runtime': True,
         },
             'desc': 'Container image name, without the tag',
             'runtime': True,
         },
+        {
+            'name': 'container_image_prometheus',
+            'default': 'prom/prometheus:v2.18.1',
+            'desc': 'Prometheus container image',
+        },
+        {
+            'name': 'container_image_grafana',
+            'default': 'ceph/ceph-grafana:latest',
+            'desc': 'Prometheus container image',
+        },
+        {
+            'name': 'container_image_alertmanager',
+            'default': 'prom/alertmanager:v0.20.0',
+            'desc': 'Prometheus container image',
+        },
+        {
+            'name': 'container_image_node_exporter',
+            'default': 'prom/node-exporter:v0.18.1',
+            'desc': 'Prometheus container image',
+        },
         {
             'name': 'warn_on_stray_hosts',
             'type': 'bool',
         {
             'name': 'warn_on_stray_hosts',
             'type': 'bool',
@@ -672,6 +262,10 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             self.host_check_interval = 0
             self.mode = ''
             self.container_image_base = ''
             self.host_check_interval = 0
             self.mode = ''
             self.container_image_base = ''
+            self.container_image_prometheus = ''
+            self.container_image_grafana = ''
+            self.container_image_alertmanager = ''
+            self.container_image_node_exporter = ''
             self.warn_on_stray_hosts = True
             self.warn_on_stray_daemons = True
             self.warn_on_failed_host_check = True
             self.warn_on_stray_hosts = True
             self.warn_on_stray_daemons = True
             self.warn_on_failed_host_check = True
@@ -696,23 +290,13 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
         CephadmOrchestrator.instance = self
 
 
         CephadmOrchestrator.instance = self
 
-        t = self.get_store('upgrade_state')
-        if t:
-            self.upgrade_state = json.loads(t)
-        else:
-            self.upgrade_state = None
+        self.upgrade = CephadmUpgrade(self)
 
         self.health_checks = {}
 
         self.all_progress_references = list()  # type: List[orchestrator.ProgressReference]
 
 
         self.health_checks = {}
 
         self.all_progress_references = list()  # type: List[orchestrator.ProgressReference]
 
-        # load inventory
-        i = self.get_store('inventory')
-        if i:
-            self.inventory: Dict[str, dict] = json.loads(i)
-        else:
-            self.inventory = dict()
-        self.log.debug('Loaded inventory %s' % self.inventory)
+        self.inventory = Inventory(self)
 
         self.cache = HostCache(self)
         self.cache.load()
 
         self.cache = HostCache(self)
         self.cache.load()
@@ -732,6 +316,38 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         # in-memory only.
         self.offline_hosts: Set[str] = set()
 
         # in-memory only.
         self.offline_hosts: Set[str] = set()
 
+        # services:
+        self.osd_service = OSDService(self)
+        self.nfs_service = NFSService(self)
+        self.mon_service = MonService(self)
+        self.mgr_service = MgrService(self)
+        self.mds_service = MdsService(self)
+        self.rgw_service = RgwService(self)
+        self.rbd_mirror_service = RbdMirrorService(self)
+        self.grafana_service = GrafanaService(self)
+        self.alertmanager_service = AlertmanagerService(self)
+        self.prometheus_service = PrometheusService(self)
+        self.node_exporter_service = NodeExporterService(self)
+        self.crash_service = CrashService(self)
+        self.iscsi_service = IscsiService(self)
+        self.cephadm_services = {
+            'mon': self.mon_service,
+            'mgr': self.mgr_service,
+            'osd': self.osd_service,
+            'mds': self.mds_service,
+            'rgw': self.rgw_service,
+            'rbd-mirror': self.rbd_mirror_service,
+            'nfs': self.nfs_service,
+            'grafana': self.grafana_service,
+            'alertmanager': self.alertmanager_service,
+            'prometheus': self.prometheus_service,
+            'node-exporter': self.node_exporter_service,
+            'crash': self.crash_service,
+            'iscsi': self.iscsi_service,
+        }
+
+        self.template = TemplateMgr()
+
     def shutdown(self):
         self.log.debug('shutdown')
         self._worker_pool.close()
     def shutdown(self):
         self.log.debug('shutdown')
         self._worker_pool.close()
@@ -739,17 +355,19 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         self.run = False
         self.event.set()
 
         self.run = False
         self.event.set()
 
+    def _get_cephadm_service(self, service_type: str) -> CephadmService:
+        assert service_type in ServiceSpec.KNOWN_SERVICE_TYPES
+        return self.cephadm_services[service_type]
+
     def _kick_serve_loop(self):
         self.log.debug('_kick_serve_loop')
         self.event.set()
 
     def _check_safe_to_destroy_mon(self, mon_id):
         # type: (str) -> None
     def _kick_serve_loop(self):
         self.log.debug('_kick_serve_loop')
         self.event.set()
 
     def _check_safe_to_destroy_mon(self, mon_id):
         # type: (str) -> None
-        ret, out, err = self.mon_command({
+        ret, out, err = self.check_mon_command({
             'prefix': 'quorum_status',
         })
             'prefix': 'quorum_status',
         })
-        if ret:
-            raise OrchestratorError('failed to check mon quorum status')
         try:
             j = json.loads(out)
         except Exception as e:
         try:
             j = json.loads(out)
         except Exception as e:
@@ -767,261 +385,6 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             return
         raise OrchestratorError('Removing %s would break mon quorum (new quorum %s, new mons %s)' % (mon_id, new_quorum, new_mons))
 
             return
         raise OrchestratorError('Removing %s would break mon quorum (new quorum %s, new mons %s)' % (mon_id, new_quorum, new_mons))
 
-    def _wait_for_ok_to_stop(self, s):
-        # only wait a little bit; the service might go away for something
-        tries = 4
-        while tries > 0:
-            if s.daemon_type not in ['mon', 'osd', 'mds']:
-                self.log.info('Upgrade: It is presumed safe to stop %s.%s' %
-                              (s.daemon_type, s.daemon_id))
-                return True
-            ret, out, err = self.mon_command({
-                'prefix': '%s ok-to-stop' % s.daemon_type,
-                'ids': [s.daemon_id],
-            })
-            if not self.upgrade_state or self.upgrade_state.get('paused'):
-                return False
-            if ret:
-                self.log.info('Upgrade: It is NOT safe to stop %s.%s' %
-                              (s.daemon_type, s.daemon_id))
-                time.sleep(15)
-                tries -= 1
-            else:
-                self.log.info('Upgrade: It is safe to stop %s.%s' %
-                              (s.daemon_type, s.daemon_id))
-                return True
-        return False
-
-    def _clear_upgrade_health_checks(self):
-        for k in ['UPGRADE_NO_STANDBY_MGR',
-                  'UPGRADE_FAILED_PULL']:
-            if k in self.health_checks:
-                del self.health_checks[k]
-        self.set_health_checks(self.health_checks)
-
-    def _fail_upgrade(self, alert_id, alert):
-        self.log.error('Upgrade: Paused due to %s: %s' % (alert_id,
-                                                          alert['summary']))
-        self.upgrade_state['error'] = alert_id + ': ' + alert['summary']
-        self.upgrade_state['paused'] = True
-        self._save_upgrade_state()
-        self.health_checks[alert_id] = alert
-        self.set_health_checks(self.health_checks)
-
-    def _update_upgrade_progress(self, progress):
-        if 'progress_id' not in self.upgrade_state:
-            self.upgrade_state['progress_id'] = str(uuid.uuid4())
-            self._save_upgrade_state()
-        self.remote('progress', 'update', self.upgrade_state['progress_id'],
-                    ev_msg='Upgrade to %s' % self.upgrade_state['target_name'],
-                    ev_progress=progress)
-
-    def _do_upgrade(self):
-        # type: () -> None
-        if not self.upgrade_state:
-            self.log.debug('_do_upgrade no state, exiting')
-            return
-
-        target_name = self.upgrade_state.get('target_name')
-        target_id = self.upgrade_state.get('target_id', None)
-        if not target_id:
-            # need to learn the container hash
-            self.log.info('Upgrade: First pull of %s' % target_name)
-            try:
-                target_id, target_version = self._get_container_image_id(target_name)
-            except OrchestratorError as e:
-                self._fail_upgrade('UPGRADE_FAILED_PULL', {
-                    'severity': 'warning',
-                    'summary': 'Upgrade: failed to pull target image',
-                    'count': 1,
-                    'detail': [str(e)],
-                })
-                return
-            self.upgrade_state['target_id'] = target_id
-            self.upgrade_state['target_version'] = target_version
-            self._save_upgrade_state()
-        target_version = self.upgrade_state.get('target_version')
-        self.log.info('Upgrade: Target is %s with id %s' % (target_name,
-                                                            target_id))
-
-        # get all distinct container_image settings
-        image_settings = {}
-        ret, out, err = self.mon_command({
-            'prefix': 'config dump',
-            'format': 'json',
-        })
-        config = json.loads(out)
-        for opt in config:
-            if opt['name'] == 'container_image':
-                image_settings[opt['section']] = opt['value']
-
-        daemons = self.cache.get_daemons()
-        done = 0
-        for daemon_type in CEPH_UPGRADE_ORDER:
-            self.log.info('Upgrade: Checking %s daemons...' % daemon_type)
-            need_upgrade_self = False
-            for d in daemons:
-                if d.daemon_type != daemon_type:
-                    continue
-                if d.container_image_id == target_id:
-                    self.log.debug('daemon %s.%s version correct' % (
-                        daemon_type, d.daemon_id))
-                    done += 1
-                    continue
-                self.log.debug('daemon %s.%s not correct (%s, %s, %s)' % (
-                    daemon_type, d.daemon_id,
-                    d.container_image_name, d.container_image_id, d.version))
-
-                if daemon_type == 'mgr' and \
-                   d.daemon_id == self.get_mgr_id():
-                    self.log.info('Upgrade: Need to upgrade myself (mgr.%s)' %
-                                  self.get_mgr_id())
-                    need_upgrade_self = True
-                    continue
-
-                # make sure host has latest container image
-                out, err, code = self._run_cephadm(
-                    d.hostname, None, 'inspect-image', [],
-                    image=target_name, no_fsid=True, error_ok=True)
-                if code or json.loads(''.join(out)).get('image_id') != target_id:
-                    self.log.info('Upgrade: Pulling %s on %s' % (target_name,
-                                                                 d.hostname))
-                    out, err, code = self._run_cephadm(
-                        d.hostname, None, 'pull', [],
-                        image=target_name, no_fsid=True, error_ok=True)
-                    if code:
-                        self._fail_upgrade('UPGRADE_FAILED_PULL', {
-                            'severity': 'warning',
-                            'summary': 'Upgrade: failed to pull target image',
-                            'count': 1,
-                            'detail': [
-                                'failed to pull %s on host %s' % (target_name,
-                                                                  d.hostname)],
-                        })
-                        return
-                    r = json.loads(''.join(out))
-                    if r.get('image_id') != target_id:
-                        self.log.info('Upgrade: image %s pull on %s got new image %s (not %s), restarting' % (target_name, d.hostname, r['image_id'], target_id))
-                        self.upgrade_state['target_id'] = r['image_id']
-                        self._save_upgrade_state()
-                        return
-
-                self._update_upgrade_progress(done / len(daemons))
-
-                if not d.container_image_id:
-                    if d.container_image_name == target_name:
-                        self.log.debug('daemon %s has unknown container_image_id but has correct image name' % (d.name()))
-                        continue
-                if not self._wait_for_ok_to_stop(d):
-                    return
-                self.log.info('Upgrade: Redeploying %s.%s' %
-                              (d.daemon_type, d.daemon_id))
-                ret, out, err = self.mon_command({
-                    'prefix': 'config set',
-                    'name': 'container_image',
-                    'value': target_name,
-                    'who': utils.name_to_config_section(daemon_type + '.' + d.daemon_id),
-                })
-                self._daemon_action(
-                    d.daemon_type,
-                    d.daemon_id,
-                    d.hostname,
-                    'redeploy'
-                )
-                return
-
-            if need_upgrade_self:
-                mgr_map = self.get('mgr_map')
-                num = len(mgr_map.get('standbys'))
-                if not num:
-                    self._fail_upgrade('UPGRADE_NO_STANDBY_MGR', {
-                        'severity': 'warning',
-                        'summary': 'Upgrade: Need standby mgr daemon',
-                        'count': 1,
-                        'detail': [
-                            'The upgrade process needs to upgrade the mgr, '
-                            'but it needs at least one standby to proceed.',
-                        ],
-                    })
-                    return
-
-                self.log.info('Upgrade: there are %d other already-upgraded '
-                              'standby mgrs, failing over' % num)
-
-                self._update_upgrade_progress(done / len(daemons))
-
-                # fail over
-                ret, out, err = self.mon_command({
-                    'prefix': 'mgr fail',
-                    'who': self.get_mgr_id(),
-                })
-                return
-            elif daemon_type == 'mgr':
-                if 'UPGRADE_NO_STANDBY_MGR' in self.health_checks:
-                    del self.health_checks['UPGRADE_NO_STANDBY_MGR']
-                    self.set_health_checks(self.health_checks)
-
-            # make sure 'ceph versions' agrees
-            ret, out, err = self.mon_command({
-                'prefix': 'versions',
-            })
-            j = json.loads(out)
-            for version, count in j.get(daemon_type, {}).items():
-                if version != target_version:
-                    self.log.warning(
-                        'Upgrade: %d %s daemon(s) are %s != target %s' %
-                        (count, daemon_type, version, target_version))
-
-            # push down configs
-            if image_settings.get(daemon_type) != target_name:
-                self.log.info('Upgrade: Setting container_image for all %s...' %
-                              daemon_type)
-                ret, out, err = self.mon_command({
-                    'prefix': 'config set',
-                    'name': 'container_image',
-                    'value': target_name,
-                    'who': daemon_type,
-                })
-            to_clean = []
-            for section in image_settings.keys():
-                if section.startswith(utils.name_to_config_section(daemon_type) + '.'):
-                    to_clean.append(section)
-            if to_clean:
-                self.log.debug('Upgrade: Cleaning up container_image for %s...' %
-                               to_clean)
-                for section in to_clean:
-                    ret, image, err = self.mon_command({
-                        'prefix': 'config rm',
-                        'name': 'container_image',
-                        'who': section,
-                    })
-
-            self.log.info('Upgrade: All %s daemons are up to date.' %
-                          daemon_type)
-
-        # clean up
-        self.log.info('Upgrade: Finalizing container_image settings')
-        ret, out, err = self.mon_command({
-            'prefix': 'config set',
-            'name': 'container_image',
-            'value': target_name,
-            'who': 'global',
-        })
-        for daemon_type in CEPH_UPGRADE_ORDER:
-            ret, image, err = self.mon_command({
-                'prefix': 'config rm',
-                'name': 'container_image',
-                'who': utils.name_to_config_section(daemon_type),
-            })
-
-        self.log.info('Upgrade: Complete!')
-        if 'progress_id' in self.upgrade_state:
-            self.remote('progress', 'complete',
-                        self.upgrade_state['progress_id'])
-        self.upgrade_state = None
-        self._save_upgrade_state()
-        return
-
     def _check_host(self, host):
         if host not in self.inventory:
             return
     def _check_host(self, host):
         if host not in self.inventory:
             return
@@ -1120,6 +483,12 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                     if r:
                         failures.append(r)
 
                     if r:
                         failures.append(r)
 
+                if self.cache.host_needs_osdspec_preview_refresh(host):
+                    self.log.debug(f"refreshing OSDSpec previews for {host}")
+                    r = self._refresh_host_osdspec_previews(host)
+                    if r:
+                        failures.append(r)
+
             health_changed = False
             if 'CEPHADM_HOST_CHECK_FAILED' in self.health_checks:
                 del self.health_checks['CEPHADM_HOST_CHECK_FAILED']
             health_changed = False
             if 'CEPHADM_HOST_CHECK_FAILED' in self.health_checks:
                 del self.health_checks['CEPHADM_HOST_CHECK_FAILED']
@@ -1146,8 +515,6 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             if health_changed:
                 self.set_health_checks(self.health_checks)
 
             if health_changed:
                 self.set_health_checks(self.health_checks)
 
-
-
             self._check_for_strays()
 
             if self.paused:
             self._check_for_strays()
 
             if self.paused:
@@ -1170,8 +537,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
                 self._check_daemons()
 
 
                 self._check_daemons()
 
-                if self.upgrade_state and not self.upgrade_state.get('paused'):
-                    self._do_upgrade()
+                if self.upgrade.continue_upgrade():
                     continue
 
             self._serve_sleep()
                     continue
 
             self._serve_sleep()
@@ -1248,20 +614,6 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 continue
             return name
 
                 continue
             return name
 
-    def get_service_name(self, daemon_type, daemon_id, host):
-        # type: (str, str, str) -> (str)
-        """
-        Returns the generic service name
-        """
-        p = re.compile(r'(.*)\.%s.*' % (host))
-        return '%s.%s' % (daemon_type, p.sub(r'\1', daemon_id))
-
-    def _save_inventory(self):
-        self.set_store('inventory', json.dumps(self.inventory))
-
-    def _save_upgrade_state(self):
-        self.set_store('upgrade_state', json.dumps(self.upgrade_state))
-
     def _reconfig_ssh(self):
         temp_files = []  # type: list
         ssh_options = []  # type: List[str]
     def _reconfig_ssh(self):
         temp_files = []  # type: list
         ssh_options = []  # type: List[str]
@@ -1358,21 +710,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             self.log.debug("process: completions={0}".format(orchestrator.pretty_print(completions)))
 
             for p in completions:
             self.log.debug("process: completions={0}".format(orchestrator.pretty_print(completions)))
 
             for p in completions:
-                p.finalize()
-
-    def _require_hosts(self, hosts):
-        """
-        Raise an error if any of the given hosts are unregistered.
-        """
-        if isinstance(hosts, six.string_types):
-            hosts = [hosts]
-        keys = self.inventory.keys()
-        unregistered_hosts = set(hosts) - keys
-        if unregistered_hosts:
-            logger.warning('keys = {}'.format(keys))
-            raise RuntimeError("Host(s) {} not registered".format(
-                ", ".join(map(lambda h: "'{}'".format(h),
-                    unregistered_hosts))))
+                p.evaluate()
 
     @orchestrator._cli_write_command(
         prefix='cephadm set-ssh-config',
 
     @orchestrator._cli_write_command(
         prefix='cephadm set-ssh-config',
@@ -1445,6 +783,28 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             self._reconfig_ssh()
         return 0, '', ''
 
             self._reconfig_ssh()
         return 0, '', ''
 
+    @orchestrator._cli_write_command(
+        'cephadm set-priv-key',
+        desc='Set cluster SSH private key (use -i <private_key>)')
+    def _set_priv_key(self, inbuf=None):
+        if inbuf is None or len(inbuf) == 0:
+            return -errno.EINVAL, "", "empty private ssh key provided"
+        self.set_store("ssh_identity_key", inbuf)
+        self.log.info('Set ssh private key')
+        self._reconfig_ssh()
+        return 0, "", ""
+
+    @orchestrator._cli_write_command(
+        'cephadm set-pub-key',
+        desc='Set cluster SSH public key (use -i <public_key>)')
+    def _set_pub_key(self, inbuf=None):
+        if inbuf is None or len(inbuf) == 0:
+            return -errno.EINVAL, "", "empty public ssh key provided"
+        self.set_store("ssh_identity_pub", inbuf)
+        self.log.info('Set ssh public key')
+        self._reconfig_ssh()
+        return 0, "", ""
+
     @orchestrator._cli_write_command(
         'cephadm clear-key',
         desc='Clear cluster SSH key')
     @orchestrator._cli_write_command(
         'cephadm clear-key',
         desc='Clear cluster SSH key')
@@ -1514,10 +874,13 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         """
         Setup a connection for running commands on remote host.
         """
         """
         Setup a connection for running commands on remote host.
         """
-        conn_and_r = self._cons.get(host)
-        if conn_and_r:
-            self.log.debug('Have connection to %s' % host)
-            return conn_and_r
+        conn, r = self._cons.get(host, (None, None))
+        if conn:
+            if conn.has_connection():
+                self.log.debug('Have connection to %s' % host)
+                return conn, r
+            else:
+                self._reset_con(host)
         n = self.ssh_user + '@' + host
         self.log.debug("Opening connection to {} with ssh options '{}'".format(
             n, self._ssh_options))
         n = self.ssh_user + '@' + host
         self.log.debug("Opening connection to {} with ssh options '{}'".format(
             n, self._ssh_options))
@@ -1549,45 +912,67 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             executable_path))
         return executable_path
 
             executable_path))
         return executable_path
 
-    def _run_cephadm(self, host, entity, command, args,
-                     addr=None,
-                     stdin=None,
+    def _run_cephadm(self,
+                     host: str,
+                     entity: Optional[str],
+                     command: str,
+                     args: List[str],
+                     addr: Optional[str] = None,
+                     stdin: Optional[str] = None,
                      no_fsid=False,
                      error_ok=False,
                      no_fsid=False,
                      error_ok=False,
-                     image=None):
-        # type: (str, Optional[str], str, List[str], Optional[str], Optional[str], bool, bool, Optional[str]) -> Tuple[List[str], List[str], int]
+                     image: Optional[str] = None,
+                     env_vars: Optional[List[str]] = None,
+                     ) -> Tuple[List[str], List[str], int]:
         """
         Run cephadm on the remote host with the given command + args
         """
         Run cephadm on the remote host with the given command + args
+
+        :env_vars: in format -> [KEY=VALUE, ..]
         """
         if not addr and host in self.inventory:
         """
         if not addr and host in self.inventory:
-            addr = self.inventory[host].get('addr', host)
+            addr = self.inventory.get_addr(host)
 
         self.offline_hosts_remove(host)
 
         try:
             try:
                 conn, connr = self._get_connection(addr)
 
         self.offline_hosts_remove(host)
 
         try:
             try:
                 conn, connr = self._get_connection(addr)
-            except IOError as e:
+            except OSError as e:
                 if error_ok:
                     self.log.exception('failed to establish ssh connection')
                     return [], [str("Can't communicate with remote host, possibly because python3 is not installed there")], 1
                 if error_ok:
                     self.log.exception('failed to establish ssh connection')
                     return [], [str("Can't communicate with remote host, possibly because python3 is not installed there")], 1
-                raise
+                raise execnet.gateway_bootstrap.HostNotFound(str(e)) from e
 
             assert image or entity
             if not image:
 
             assert image or entity
             if not image:
-                daemon_type = entity.split('.', 1)[0] # type: ignore
+                daemon_type = entity.split('.', 1)[0]  # type: ignore
                 if daemon_type in CEPH_TYPES or \
                 if daemon_type in CEPH_TYPES or \
-                        daemon_type == 'nfs':
+                        daemon_type == 'nfs' or \
+                        daemon_type == 'iscsi':
                     # get container image
                     # get container image
-                    ret, image, err = self.mon_command({
+                    ret, image, err = self.check_mon_command({
                         'prefix': 'config get',
                         'who': utils.name_to_config_section(entity),
                         'key': 'container_image',
                     })
                         'prefix': 'config get',
                         'who': utils.name_to_config_section(entity),
                         'key': 'container_image',
                     })
-                    image = image.strip() # type: ignore
+                    image = image.strip()  # type: ignore
+                elif daemon_type == 'prometheus':
+                    image = self.container_image_prometheus
+                elif daemon_type == 'grafana':
+                    image = self.container_image_grafana
+                elif daemon_type == 'alertmanager':
+                    image = self.container_image_alertmanager
+                elif daemon_type == 'node-exporter':
+                    image = self.container_image_node_exporter
+
             self.log.debug('%s container image %s' % (entity, image))
 
             final_args = []
             self.log.debug('%s container image %s' % (entity, image))
 
             final_args = []
+
+            if env_vars:
+                for env_var_pair in env_vars:
+                    final_args.extend(['--env', env_var_pair])
+
             if image:
                 final_args.extend(['--image', image])
             final_args.append(command)
             if image:
                 final_args.extend(['--image', image])
             final_args.append(command)
@@ -1596,8 +981,8 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 final_args += ['--fsid', self._cluster_fsid]
             final_args += args
 
                 final_args += ['--fsid', self._cluster_fsid]
             final_args += args
 
+            self.log.debug('args: %s' % (' '.join(final_args)))
             if self.mode == 'root':
             if self.mode == 'root':
-                self.log.debug('args: %s' % (' '.join(final_args)))
                 if stdin:
                     self.log.debug('stdin: %s' % stdin)
                 script = 'injected_argv = ' + json.dumps(final_args) + '\n'
                 if stdin:
                     self.log.debug('stdin: %s' % stdin)
                 script = 'injected_argv = ' + json.dumps(final_args) + '\n'
@@ -1650,25 +1035,22 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             # do with "host not found" (e.g., ssh key permission denied).
             self.offline_hosts.add(host)
             user = 'root' if self.mode == 'root' else 'cephadm'
             # do with "host not found" (e.g., ssh key permission denied).
             self.offline_hosts.add(host)
             user = 'root' if self.mode == 'root' else 'cephadm'
-            msg = f'Failed to connect to {host} ({addr}).  ' \
-                  f'Check that the host is reachable and accepts connections using the cephadm SSH key\n' \
-                  f'you may want to run: \n' \
-                  f'> ssh -F =(ceph cephadm get-ssh-config) -i =(ceph config-key get mgr/cephadm/ssh_identity_key) {user}@{host}'
+            msg = f'''Failed to connect to {host} ({addr}).
+Check that the host is reachable and accepts connections using the cephadm SSH key
+
+you may want to run:
+> ceph cephadm get-ssh-config > ssh_config
+> ceph config-key get mgr/cephadm/ssh_identity_key > key
+> ssh -F ssh_config -i key {user}@{host}'''
             raise OrchestratorError(msg) from e
         except Exception as ex:
             self.log.exception(ex)
             raise
 
             raise OrchestratorError(msg) from e
         except Exception as ex:
             self.log.exception(ex)
             raise
 
-    def _get_hosts(self, label=None):
-        # type: (Optional[str]) -> List[str]
-        r = []
-        for h, hostspec in self.inventory.items():
-            if not label or label in hostspec.get('labels', []):
-                r.append(h)
-        return r
+    def _get_hosts(self, label: Optional[str] = '', as_hostspec: bool = False) -> List:
+        return list(self.inventory.filter_by_label(label=label, as_hostspec=as_hostspec))
 
 
-    @async_completion
-    def add_host(self, spec):
+    def _add_host(self, spec):
         # type: (HostSpec) -> str
         """
         Add a host to be managed by the orchestrator.
         # type: (HostSpec) -> str
         """
         Add a host to be managed by the orchestrator.
@@ -1684,15 +1066,18 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             raise OrchestratorError('New host %s (%s) failed check: %s' % (
                 spec.hostname, spec.addr, err))
 
             raise OrchestratorError('New host %s (%s) failed check: %s' % (
                 spec.hostname, spec.addr, err))
 
-        self.inventory[spec.hostname] = spec.to_json()
-        self._save_inventory()
+        self.inventory.add_host(spec)
         self.cache.prime_empty_host(spec.hostname)
         self.offline_hosts_remove(spec.hostname)
         self.event.set()  # refresh stray health check
         self.log.info('Added host %s' % spec.hostname)
         return "Added host '{}'".format(spec.hostname)
 
         self.cache.prime_empty_host(spec.hostname)
         self.offline_hosts_remove(spec.hostname)
         self.event.set()  # refresh stray health check
         self.log.info('Added host %s' % spec.hostname)
         return "Added host '{}'".format(spec.hostname)
 
-    @async_completion
+    @trivial_completion
+    def add_host(self, spec: HostSpec) -> str:
+        return self._add_host(spec)
+
+    @trivial_completion
     def remove_host(self, host):
         # type: (str) -> str
         """
     def remove_host(self, host):
         # type: (str) -> str
         """
@@ -1700,20 +1085,16 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
         :param host: host name
         """
 
         :param host: host name
         """
-        del self.inventory[host]
-        self._save_inventory()
+        self.inventory.rm_host(host)
         self.cache.rm_host(host)
         self._reset_con(host)
         self.event.set()  # refresh stray health check
         self.log.info('Removed host %s' % host)
         return "Removed host '{}'".format(host)
 
         self.cache.rm_host(host)
         self._reset_con(host)
         self.event.set()  # refresh stray health check
         self.log.info('Removed host %s' % host)
         return "Removed host '{}'".format(host)
 
-    @async_completion
+    @trivial_completion
     def update_host_addr(self, host, addr):
     def update_host_addr(self, host, addr):
-        if host not in self.inventory:
-            raise OrchestratorError('host %s not registered' % host)
-        self.inventory[host]['addr'] = addr
-        self._save_inventory()
+        self.inventory.set_addr(host, addr)
         self._reset_con(host)
         self.event.set()  # refresh stray health check
         self.log.info('Set host %s addr to %s' % (host, addr))
         self._reset_con(host)
         self.event.set()  # refresh stray health check
         self.log.info('Set host %s addr to %s' % (host, addr))
@@ -1728,42 +1109,38 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         Notes:
           - skip async: manager reads from cache.
         """
         Notes:
           - skip async: manager reads from cache.
         """
-        r = []
-        for hostname, info in self.inventory.items():
-            r.append(orchestrator.HostSpec(
-                hostname,
-                addr=info.get('addr', hostname),
-                labels=info.get('labels', []),
-                status='Offline' if hostname in self.offline_hosts else info.get('status', ''),
-            ))
-        return r
+        return list(self.inventory.all_specs())
 
 
-    @async_completion
+    @trivial_completion
     def add_host_label(self, host, label):
     def add_host_label(self, host, label):
-        if host not in self.inventory:
-            raise OrchestratorError('host %s does not exist' % host)
-
-        if 'labels' not in self.inventory[host]:
-            self.inventory[host]['labels'] = list()
-        if label not in self.inventory[host]['labels']:
-            self.inventory[host]['labels'].append(label)
-        self._save_inventory()
+        self.inventory.add_label(host, label)
         self.log.info('Added label %s to host %s' % (label, host))
         return 'Added label %s to host %s' % (label, host)
 
         self.log.info('Added label %s to host %s' % (label, host))
         return 'Added label %s to host %s' % (label, host)
 
-    @async_completion
+    @trivial_completion
     def remove_host_label(self, host, label):
     def remove_host_label(self, host, label):
-        if host not in self.inventory:
-            raise OrchestratorError('host %s does not exist' % host)
-
-        if 'labels' not in self.inventory[host]:
-            self.inventory[host]['labels'] = list()
-        if label in self.inventory[host]['labels']:
-            self.inventory[host]['labels'].remove(label)
-        self._save_inventory()
+        self.inventory.rm_label(host, label)
         self.log.info('Removed label %s to host %s' % (label, host))
         return 'Removed label %s from host %s' % (label, host)
 
         self.log.info('Removed label %s to host %s' % (label, host))
         return 'Removed label %s from host %s' % (label, host)
 
+    def update_osdspec_previews(self, search_host: str = ''):
+        # Set global 'pending' flag for host
+        self.cache.loading_osdspec_preview.add(search_host)
+        previews = []
+        # query OSDSpecs for host <search host> and generate/get the preview
+        # There can be multiple previews for one host due to multiple OSDSpecs.
+        previews.extend(self.osd_service.get_previews(search_host))
+        self.log.debug(f"Loading OSDSpec previews to HostCache")
+        self.cache.osdspec_previews[search_host] = previews
+        # Unset global 'pending' flag for host
+        self.cache.loading_osdspec_preview.remove(search_host)
+
+    def _refresh_host_osdspec_previews(self, host) -> bool:
+        self.update_osdspec_previews(host)
+        self.cache.save_host(host)
+        self.log.debug(f'Refreshed OSDSpec previews for host <{host}>')
+        return True
+
     def _refresh_host_daemons(self, host):
         try:
             out, err, code = self._run_cephadm(
     def _refresh_host_daemons(self, host):
         try:
             out, err, code = self._run_cephadm(
@@ -1798,6 +1175,8 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             sd.container_image_name = d.get('container_image_name')
             sd.container_image_id = d.get('container_image_id')
             sd.version = d.get('version')
             sd.container_image_name = d.get('container_image_name')
             sd.container_image_id = d.get('container_image_id')
             sd.version = d.get('version')
+            if sd.daemon_type == 'osd':
+                sd.osdspec_affinity = self.osd_service.get_osdspec_affinity(sd.daemon_id)
             if 'state' in d:
                 sd.status_desc = d['state']
                 sd.status = {
             if 'state' in d:
                 sd.status_desc = d['state']
                 sd.status = {
@@ -1843,30 +1222,20 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             host, len(devices), len(networks)))
         devices = inventory.Devices.from_json(devices)
         self.cache.update_host_devices_networks(host, devices.devices, networks)
             host, len(devices), len(networks)))
         devices = inventory.Devices.from_json(devices)
         self.cache.update_host_devices_networks(host, devices.devices, networks)
+        self.update_osdspec_previews(host)
         self.cache.save_host(host)
         return None
 
         self.cache.save_host(host)
         return None
 
-    def _get_spec_size(self, spec):
-        if spec.placement.count:
-            return spec.placement.count
-        elif spec.placement.host_pattern:
-            return len(spec.placement.pattern_matches_hosts(self.inventory.keys()))
-        elif spec.placement.label:
-            return len(self._get_hosts(spec.placement.label))
-        elif spec.placement.hosts:
-            return len(spec.placement.hosts)
-        # hmm!
-        return 0
-
     @trivial_completion
     def describe_service(self, service_type=None, service_name=None,
                          refresh=False):
         if refresh:
             # ugly sync path, FIXME someday perhaps?
     @trivial_completion
     def describe_service(self, service_type=None, service_name=None,
                          refresh=False):
         if refresh:
             # ugly sync path, FIXME someday perhaps?
-            for host, hi in self.inventory.items():
+            for host in self.inventory.keys():
                 self._refresh_host_daemons(host)
         # <service_map>
         sm = {}  # type: Dict[str, orchestrator.ServiceDescription]
                 self._refresh_host_daemons(host)
         # <service_map>
         sm = {}  # type: Dict[str, orchestrator.ServiceDescription]
+        osd_count = 0
         for h, dm in self.cache.get_daemons_with_volatile_status():
             for name, dd in dm.items():
                 if service_type and service_type != dd.daemon_type:
         for h, dm in self.cache.get_daemons_with_volatile_status():
             for name, dd in dm.items():
                 if service_type and service_type != dd.daemon_type:
@@ -1875,9 +1244,12 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 if service_name and service_name != n:
                     continue
                 if dd.daemon_type == 'osd':
                 if service_name and service_name != n:
                     continue
                 if dd.daemon_type == 'osd':
-                    continue                # ignore OSDs for now
-                if dd.service_name() in self.spec_store.specs:
-                    spec = self.spec_store.specs[dd.service_name()]
+                    """
+                    OSDs do not know the affinity to their spec out of the box.
+                    """
+                    n = f"osd.{dd.osdspec_affinity}"
+                if n in self.spec_store.specs:
+                    spec = self.spec_store.specs[n]
                 else:
                     spec = ServiceSpec(
                         unmanaged=True,
                 else:
                     spec = ServiceSpec(
                         unmanaged=True,
@@ -1894,9 +1266,19 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                         container_image_name=dd.container_image_name,
                         spec=spec,
                     )
                         container_image_name=dd.container_image_name,
                         spec=spec,
                     )
-                if dd.service_name() in self.spec_store.specs:
-                    sm[n].size = self._get_spec_size(spec)
-                    sm[n].created = self.spec_store.spec_created[dd.service_name()]
+                if n in self.spec_store.specs:
+                    if dd.daemon_type == 'osd':
+                        """
+                        The osd count can't be determined by the Placement spec.
+                        It's rather pointless to show a actual/expected representation 
+                        here. So we're setting running = size for now.
+                        """
+                        osd_count += 1
+                        sm[n].size = osd_count
+                    else:
+                        sm[n].size = spec.placement.get_host_selection_size(self._get_hosts)
+
+                    sm[n].created = self.spec_store.spec_created[n]
                     if service_type == 'nfs':
                         spec = cast(NFSServiceSpec, spec)
                         sm[n].rados_config_location = spec.rados_config_location()
                     if service_type == 'nfs':
                         spec = cast(NFSServiceSpec, spec)
                         sm[n].rados_config_location = spec.rados_config_location()
@@ -1919,7 +1301,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 continue
             sm[n] = orchestrator.ServiceDescription(
                 spec=spec,
                 continue
             sm[n] = orchestrator.ServiceDescription(
                 spec=spec,
-                size=self._get_spec_size(spec),
+                size=spec.placement.get_host_selection_size(self._get_hosts),
                 running=0,
             )
             if service_type == 'nfs':
                 running=0,
             )
             if service_type == 'nfs':
@@ -1935,7 +1317,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             if host:
                 self._refresh_host_daemons(host)
             else:
             if host:
                 self._refresh_host_daemons(host)
             else:
-                for hostname, hi in self.inventory.items():
+                for hostname in self.inventory.keys():
                     self._refresh_host_daemons(hostname)
         result = []
         for h, dm in self.cache.get_daemons_with_volatile_status():
                     self._refresh_host_daemons(hostname)
         result = []
         for h, dm in self.cache.get_daemons_with_volatile_status():
@@ -1951,6 +1333,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 result.append(dd)
         return result
 
                 result.append(dd)
         return result
 
+    @trivial_completion
     def service_action(self, action, service_name):
         args = []
         for host, dm in self.cache.daemons.items():
     def service_action(self, action, service_name):
         args = []
         for host, dm in self.cache.daemons.items():
@@ -1961,7 +1344,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         self.log.info('%s service %s' % (action.capitalize(), service_name))
         return self._daemon_actions(args)
 
         self.log.info('%s service %s' % (action.capitalize(), service_name))
         return self._daemon_actions(args)
 
-    @async_map_completion
+    @forall_hosts
     def _daemon_actions(self, daemon_type, daemon_id, host, action):
         return self._daemon_action(daemon_type, daemon_id, host, action)
 
     def _daemon_actions(self, daemon_type, daemon_id, host, action):
         return self._daemon_action(daemon_type, daemon_id, host, action)
 
@@ -1987,6 +1370,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         self.cache.invalidate_host_daemons(host)
         return "{} {} from host '{}'".format(action, name, host)
 
         self.cache.invalidate_host_daemons(host)
         return "{} {} from host '{}'".format(action, name, host)
 
+    @trivial_completion
     def daemon_action(self, action, daemon_type, daemon_id):
         args = []
         for host, dm in self.cache.daemons.items():
     def daemon_action(self, action, daemon_type, daemon_id):
         args = []
         for host, dm in self.cache.daemons.items():
@@ -2003,8 +1387,9 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             ','.join(['%s.%s' % (a[0], a[1]) for a in args])))
         return self._daemon_actions(args)
 
             ','.join(['%s.%s' % (a[0], a[1]) for a in args])))
         return self._daemon_actions(args)
 
+    @trivial_completion
     def remove_daemons(self, names):
     def remove_daemons(self, names):
-        # type: (List[str]) -> orchestrator.Completion
+        # type: (List[str]) -> List[str]
         args = []
         for host, dm in self.cache.daemons.items():
             for name in names:
         args = []
         for host, dm in self.cache.daemons.items():
             for name in names:
@@ -2018,6 +1403,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
     @trivial_completion
     def remove_service(self, service_name):
         self.log.info('Remove service %s' % service_name)
     @trivial_completion
     def remove_service(self, service_name):
         self.log.info('Remove service %s' % service_name)
+        self._trigger_preview_refresh(service_name=service_name)
         found = self.spec_store.rm(service_name)
         if found:
             self._kick_serve_loop()
         found = self.spec_store.rm(service_name)
         if found:
             self._kick_serve_loop()
@@ -2042,7 +1428,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 for host in host_filter.hosts:
                     self._refresh_host_devices(host)
             else:
                 for host in host_filter.hosts:
                     self._refresh_host_devices(host)
             else:
-                for host, hi in self.inventory.items():
+                for host in self.inventory.keys():
                     self._refresh_host_devices(host)
 
         result = []
                     self._refresh_host_devices(host)
 
         result = []
@@ -2065,8 +1451,9 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             raise OrchestratorError('Zap failed: %s' % '\n'.join(out + err))
         return '\n'.join(out + err)
 
             raise OrchestratorError('Zap failed: %s' % '\n'.join(out + err))
         return '\n'.join(out + err)
 
+    @trivial_completion
     def blink_device_light(self, ident_fault, on, locs):
     def blink_device_light(self, ident_fault, on, locs):
-        @async_map_completion
+        @forall_hosts
         def blink(host, dev, path):
             cmd = [
                 'lsmcli',
         def blink(host, dev, path):
             cmd = [
                 'lsmcli',
@@ -2104,196 +1491,70 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 r[str(osd_id)] = o.get('uuid', '')
         return r
 
                 r[str(osd_id)] = o.get('uuid', '')
         return r
 
+    def resolve_hosts_for_osdspecs(self,
+                                   specs: Optional[List[DriveGroupSpec]] = None,
+                                   service_name: Optional[str] = None
+                                   ) -> List[str]:
+        osdspecs = []
+        if service_name:
+            self.log.debug(f"Looking for OSDSpec with service_name: {service_name}")
+            osdspecs = self.spec_store.find(service_name=service_name)
+            self.log.debug(f"Found OSDSpecs: {osdspecs}")
+        if specs:
+            osdspecs = [cast(DriveGroupSpec, spec) for spec in specs]
+        if not service_name and not specs:
+            # if neither parameters are fulfilled, search for all available osdspecs
+            osdspecs = self.spec_store.find(service_name='osd')
+            self.log.debug(f"Found OSDSpecs: {osdspecs}")
+        if not osdspecs:
+            self.log.debug("No OSDSpecs found")
+            return []
+        return sum([spec.placement.filter_matching_hosts(self._get_hosts) for spec in osdspecs], [])
+
+    def resolve_osdspecs_for_host(self, host):
+        matching_specs = []
+        self.log.debug(f"Finding OSDSpecs for host: <{host}>")
+        for spec in self.spec_store.find('osd'):
+            if host in spec.placement.filter_matching_hosts(self._get_hosts):
+                self.log.debug(f"Found OSDSpecs for host: <{host}> -> <{spec}>")
+                matching_specs.append(spec)
+        return matching_specs
+
+    def _trigger_preview_refresh(self,
+                                 specs: Optional[List[DriveGroupSpec]] = None,
+                                 service_name: Optional[str] = None):
+        refresh_hosts = self.resolve_hosts_for_osdspecs(specs=specs, service_name=service_name)
+        for host in refresh_hosts:
+            self.log.info(f"Marking host: {host} for OSDSpec preview refresh.")
+            self.cache.osdspec_previews_refresh_queue.append(host)
+
     @trivial_completion
     def apply_drivegroups(self, specs: List[DriveGroupSpec]):
     @trivial_completion
     def apply_drivegroups(self, specs: List[DriveGroupSpec]):
+        self._trigger_preview_refresh(specs=specs)
         return [self._apply(spec) for spec in specs]
 
         return [self._apply(spec) for spec in specs]
 
-    def find_destroyed_osds(self) -> Dict[str, List[str]]:
-        osd_host_map: Dict[str, List[str]] = dict()
-        ret, out, err = self.mon_command({
-            'prefix': 'osd tree',
-            'states': ['destroyed'],
-            'format': 'json'
-        })
-        if ret != 0:
-            raise OrchestratorError(f"Caught error on calling 'osd tree destroyed' -> {err}")
-        try:
-            tree = json.loads(out)
-        except json.decoder.JSONDecodeError:
-            self.log.error(f"Could not decode json -> {out}")
-            return osd_host_map
-
-        nodes = tree.get('nodes', {})
-        for node in nodes:
-            if node.get('type') == 'host':
-                osd_host_map.update(
-                    {node.get('name'): [str(_id) for _id in node.get('children', list())]}
-                )
-        return osd_host_map
-
     @trivial_completion
     def create_osds(self, drive_group: DriveGroupSpec):
     @trivial_completion
     def create_osds(self, drive_group: DriveGroupSpec):
-        self.log.debug(f"Processing DriveGroup {drive_group}")
-        ret = []
-        drive_group.osd_id_claims = self.find_destroyed_osds()
-        self.log.info(f"Found osd claims for drivegroup {drive_group.service_id} -> {drive_group.osd_id_claims}")
-        for host, drive_selection in self.prepare_drivegroup(drive_group):
-            self.log.info('Applying %s on host %s...' % (drive_group.service_id, host))
-            cmd = self.driveselection_to_ceph_volume(drive_group, drive_selection,
-                                                     drive_group.osd_id_claims.get(host, []))
-            if not cmd:
-                self.log.debug("No data_devices, skipping DriveGroup: {}".format(drive_group.service_id))
-                continue
-            ret_msg = self._create_osd(host, cmd,
-                                       replace_osd_ids=drive_group.osd_id_claims.get(host, []))
-            ret.append(ret_msg)
-        return ", ".join(ret)
-
-    def prepare_drivegroup(self, drive_group: DriveGroupSpec) -> List[Tuple[str, DriveSelection]]:
-        # 1) use fn_filter to determine matching_hosts
-        matching_hosts = drive_group.placement.pattern_matches_hosts([x for x in self.cache.get_hosts()])
-        # 2) Map the inventory to the InventoryHost object
-        host_ds_map = []
-
-        # set osd_id_claims
-
-        def _find_inv_for_host(hostname: str, inventory_dict: dict):
-            # This is stupid and needs to be loaded with the host
-            for _host, _inventory in inventory_dict.items():
-                if _host == hostname:
-                    return _inventory
-            raise OrchestratorError("No inventory found for host: {}".format(hostname))
-
-        # 3) iterate over matching_host and call DriveSelection
-        self.log.debug(f"Checking matching hosts -> {matching_hosts}")
-        for host in matching_hosts:
-            inventory_for_host = _find_inv_for_host(host, self.cache.devices)
-            self.log.debug(f"Found inventory for host {inventory_for_host}")
-            drive_selection = DriveSelection(drive_group, inventory_for_host)
-            self.log.debug(f"Found drive selection {drive_selection}")
-            host_ds_map.append((host, drive_selection))
-        return host_ds_map
-
-    def driveselection_to_ceph_volume(self, drive_group: DriveGroupSpec,
-                                      drive_selection: DriveSelection,
-                                      osd_id_claims: Optional[List[str]] = None,
-                                      preview: bool = False) -> Optional[str]:
-        self.log.debug(f"Translating DriveGroup <{drive_group}> to ceph-volume command")
-        cmd: Optional[str] = translate.to_ceph_volume(drive_group, drive_selection, osd_id_claims, preview=preview).run()
-        self.log.debug(f"Resulting ceph-volume cmd: {cmd}")
-        return cmd
-
-    def preview_drivegroups(self, drive_group_name: Optional[str] = None,
-                            dg_specs: Optional[List[DriveGroupSpec]] = None) -> List[Dict[str, Dict[Any, Any]]]:
-        # find drivegroups
-        if drive_group_name:
-            drive_groups = cast(List[DriveGroupSpec],
-                                self.spec_store.find(service_name=drive_group_name))
-        elif dg_specs:
-            drive_groups = dg_specs
-        else:
-            drive_groups = []
-        ret_all = []
-        for drive_group in drive_groups:
-            drive_group.osd_id_claims = self.find_destroyed_osds()
-            self.log.info(f"Found osd claims for drivegroup {drive_group.service_id} -> {drive_group.osd_id_claims}")
-            # prepare driveselection
-            for host, ds in self.prepare_drivegroup(drive_group):
-                cmd = self.driveselection_to_ceph_volume(drive_group, ds,
-                                                         drive_group.osd_id_claims.get(host, []), preview=True)
-                if not cmd:
-                    self.log.debug("No data_devices, skipping DriveGroup: {}".format(drive_group.service_name()))
-                    continue
-                out, err, code = self._run_ceph_volume_command(host, cmd)
-                if out:
-                    concat_out = json.loads(" ".join(out))
-                    ret_all.append({'data': concat_out, 'drivegroup': drive_group.service_id, 'host': host})
-        return ret_all
-
-    def _run_ceph_volume_command(self, host: str, cmd: str) -> Tuple[List[str], List[str], int]:
-        self._require_hosts(host)
-
-        # get bootstrap key
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get',
-            'entity': 'client.bootstrap-osd',
-        })
-
-        # generate config
-        ret, config, err = self.mon_command({
-            "prefix": "config generate-minimal-conf",
-        })
-
-        j = json.dumps({
-            'config': config,
-            'keyring': keyring,
-        })
-
-        split_cmd = cmd.split(' ')
-        _cmd = ['--config-json', '-', '--']
-        _cmd.extend(split_cmd)
-        out, err, code = self._run_cephadm(
-            host, 'osd', 'ceph-volume',
-            _cmd,
-            stdin=j,
-            error_ok=True)
-        return out, err, code
-
-    def _create_osd(self, host, cmd, replace_osd_ids=None):
-        out, err, code = self._run_ceph_volume_command(host, cmd)
-
-        if code == 1 and ', it is already prepared' in '\n'.join(err):
-            # HACK: when we create against an existing LV, ceph-volume
-            # returns an error and the above message.  To make this
-            # command idempotent, tolerate this "error" and continue.
-            self.log.debug('the device was already prepared; continuing')
-            code = 0
-        if code:
-            raise RuntimeError(
-                'cephadm exited with an error code: %d, stderr:%s' % (
-                    code, '\n'.join(err)))
-
-        # check result
-        out, err, code = self._run_cephadm(
-            host, 'osd', 'ceph-volume',
-            [
-                '--',
-                'lvm', 'list',
-                '--format', 'json',
-            ])
-        before_osd_uuid_map = self.get_osd_uuid_map(only_up=True)
-        osds_elems = json.loads('\n'.join(out))
-        fsid = self._cluster_fsid
-        osd_uuid_map = self.get_osd_uuid_map()
-        created = []
-        for osd_id, osds in osds_elems.items():
-            for osd in osds:
-                if osd['tags']['ceph.cluster_fsid'] != fsid:
-                    self.log.debug('mismatched fsid, skipping %s' % osd)
-                    continue
-                if osd_id in before_osd_uuid_map and osd_id not in replace_osd_ids:
-                    # if it exists but is part of the replacement operation, don't skip
-                    continue
-                if osd_id not in osd_uuid_map:
-                    self.log.debug('osd id {} does not exist in cluster'.format(osd_id))
-                    continue
-                if osd_uuid_map.get(osd_id) != osd['tags']['ceph.osd_fsid']:
-                    self.log.debug('mismatched osd uuid (cluster has %s, osd '
-                                   'has %s)' % (
-                                       osd_uuid_map.get(osd_id),
-                                       osd['tags']['ceph.osd_fsid']))
-                    continue
-
-                created.append(osd_id)
-                self._create_daemon(
-                    'osd', osd_id, host,
-                    osd_uuid_map=osd_uuid_map)
+        return self.osd_service.create(drive_group)
 
 
-        if created:
-            self.cache.invalidate_host_devices(host)
-            return "Created osd(s) %s on host '%s'" % (','.join(created), host)
-        else:
-            return "Created no osd(s) on host %s; already created?" % host
+    @trivial_completion
+    def preview_osdspecs(self,
+                         osdspec_name: Optional[str] = None,
+                         osdspecs: Optional[List[DriveGroupSpec]] = None
+                         ):
+        matching_hosts = self.resolve_hosts_for_osdspecs(specs=osdspecs, service_name=osdspec_name)
+        if not matching_hosts:
+            return {'n/a': [{'error': True,
+                             'message': 'No OSDSpec or matching hosts found.'}]}
+        # Is any host still loading previews
+        pending_hosts = {h for h in self.cache.loading_osdspec_preview if h in matching_hosts}
+        if pending_hosts:
+            # Report 'pending' when any of the matching hosts is still loading previews (flag is True)
+            return {'n/a': [{'error': True,
+                             'message': 'Preview data is being generated.. '
+                                        'Please try again in a bit.'}]}
+        # drop all keys that are not in search_hosts and return preview struct
+        return {k: v for (k, v) in self.cache.osdspec_previews.items() if k in matching_hosts}
 
     def _calc_daemon_deps(self, daemon_type, daemon_id):
         need = {
 
     def _calc_daemon_deps(self, daemon_type, daemon_id):
         need = {
@@ -2313,17 +1574,14 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         # type: (str, str, Optional[str], Optional[str]) -> Dict[str, Any]
         # keyring
         if not keyring:
         # type: (str, str, Optional[str], Optional[str]) -> Dict[str, Any]
         # keyring
         if not keyring:
-            if daemon_type == 'mon':
-                ename = 'mon.'
-            else:
-                ename = utils.name_to_config_section(daemon_type + '.' + daemon_id)
-            ret, keyring, err = self.mon_command({
+            ename = utils.name_to_auth_entity(daemon_type + '.' + daemon_id)
+            ret, keyring, err = self.check_mon_command({
                 'prefix': 'auth get',
                 'entity': ename,
             })
 
         # generate config
                 'prefix': 'auth get',
                 'entity': ename,
             })
 
         # generate config
-        ret, config, err = self.mon_command({
+        ret, config, err = self.check_mon_command({
             "prefix": "config generate-minimal-conf",
         })
         if extra_ceph_config:
             "prefix": "config generate-minimal-conf",
         })
         if extra_ceph_config:
@@ -2334,11 +1592,18 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             'keyring': keyring,
         }
 
             'keyring': keyring,
         }
 
-    def _create_daemon(self, daemon_type, daemon_id, host,
-                       keyring=None,
-                       extra_args=None, extra_config=None,
+    def _create_daemon(self,
+                       daemon_type: str,
+                       daemon_id: str,
+                       host: str,
+                       keyring: Optional[str] = None,
+                       extra_args: Optional[List[str]] = None,
+                       extra_config: Optional[Dict[str, Any]] = None,
                        reconfig=False,
                        reconfig=False,
-                       osd_uuid_map=None):
+                       osd_uuid_map: Optional[Dict[str, Any]] = None,
+                       redeploy=False,
+                       ) -> str:
+
         if not extra_args:
             extra_args = []
         if not extra_config:
         if not extra_args:
             extra_args = []
         if not extra_config:
@@ -2347,19 +1612,22 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
         start_time = datetime.datetime.utcnow()
         deps = []  # type: List[str]
 
         start_time = datetime.datetime.utcnow()
         deps = []  # type: List[str]
-        cephadm_config = {} # type: Dict[str, Any]
+        cephadm_config = {}  # type: Dict[str, Any]
         if daemon_type == 'prometheus':
         if daemon_type == 'prometheus':
-            cephadm_config, deps = self._generate_prometheus_config()
+            cephadm_config, deps = self.prometheus_service.generate_config()
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'grafana':
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'grafana':
-            cephadm_config, deps = self._generate_grafana_config()
+            cephadm_config, deps = self.grafana_service.generate_config()
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'nfs':
             cephadm_config, deps = \
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'nfs':
             cephadm_config, deps = \
-                    self._generate_nfs_config(daemon_type, daemon_id, host)
+                    self.nfs_service._generate_nfs_config(daemon_type, daemon_id, host)
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'alertmanager':
             extra_args.extend(['--config-json', '-'])
         elif daemon_type == 'alertmanager':
-            cephadm_config, deps = self._generate_alertmanager_config()
+            cephadm_config, deps = self.alertmanager_service.generate_config()
+            extra_args.extend(['--config-json', '-'])
+        elif daemon_type == 'node-exporter':
+            cephadm_config, deps = self.node_exporter_service.generate_config()
             extra_args.extend(['--config-json', '-'])
         else:
             # Ceph.daemons (mon, mgr, mds, osd, etc)
             extra_args.extend(['--config-json', '-'])
         else:
             # Ceph.daemons (mon, mgr, mds, osd, etc)
@@ -2377,7 +1645,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                     osd_uuid_map = self.get_osd_uuid_map()
                 osd_uuid = osd_uuid_map.get(daemon_id)
                 if not osd_uuid:
                     osd_uuid_map = self.get_osd_uuid_map()
                 osd_uuid = osd_uuid_map.get(daemon_id)
                 if not osd_uuid:
-                    raise OrchestratorError('osd.%d not in osdmap' % daemon_id)
+                    raise OrchestratorError('osd.%s not in osdmap' % daemon_id)
                 extra_args.extend(['--osd-fsid', osd_uuid])
 
         if reconfig:
                 extra_args.extend(['--osd-fsid', osd_uuid])
 
         if reconfig:
@@ -2411,11 +1679,11 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         return "{} {} on host '{}'".format(
             'Reconfigured' if reconfig else 'Deployed', name, host)
 
         return "{} {} on host '{}'".format(
             'Reconfigured' if reconfig else 'Deployed', name, host)
 
-    @async_map_completion
-    def _remove_daemons(self, name, host):
+    @forall_hosts
+    def _remove_daemons(self, name, host) -> str:
         return self._remove_daemon(name, host)
 
         return self._remove_daemon(name, host)
 
-    def _remove_daemon(self, name, host):
+    def _remove_daemon(self, name, host) -> str:
         """
         Remove a daemon
         """
         """
         Remove a daemon
         """
@@ -2425,13 +1693,10 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
             # remove mon from quorum before we destroy the daemon
             self.log.info('Removing monitor %s from monmap...' % name)
 
             # remove mon from quorum before we destroy the daemon
             self.log.info('Removing monitor %s from monmap...' % name)
-            ret, out, err = self.mon_command({
+            ret, out, err = self.check_mon_command({
                 'prefix': 'mon rm',
                 'name': daemon_id,
             })
                 'prefix': 'mon rm',
                 'name': daemon_id,
             })
-            if ret:
-                raise OrchestratorError('failed to remove mon %s from monmap' % (
-                    name))
 
         args = ['--name', name, '--force']
         self.log.info('Removing daemon %s from %s' % (name, host))
 
         args = ['--name', name, '--force']
         self.log.info('Removing daemon %s from %s' % (name, host))
@@ -2443,7 +1708,37 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         self.cache.invalidate_host_daemons(host)
         return "Removed {} from host '{}'".format(name, host)
 
         self.cache.invalidate_host_daemons(host)
         return "Removed {} from host '{}'".format(name, host)
 
-    def _apply_service(self, spec):
+    def _create_fn(self, service_type: str) -> Callable[..., str]:
+        try:
+            d: Dict[str, function] = {
+                'mon': self.mon_service.create,
+                'mgr': self.mgr_service.create,
+                'osd': self.osd_service.create,
+                'mds': self.mds_service.create,
+                'rgw': self.rgw_service.create,
+                'rbd-mirror': self.rbd_mirror_service.create,
+                'nfs': self.nfs_service.create,
+                'grafana': self.grafana_service.create,
+                'alertmanager': self.alertmanager_service.create,
+                'prometheus': self.prometheus_service.create,
+                'node-exporter': self.node_exporter_service.create,
+                'crash': self.crash_service.create,
+                'iscsi': self.iscsi_service.create,
+            }
+            return d[service_type]  # type: ignore
+        except KeyError:
+            self.log.exception(f'unknown service type {service_type}')
+            raise OrchestratorError(f'unknown service type {service_type}') from e
+
+    def _config_fn(self, service_type) -> Optional[Callable[[ServiceSpec], None]]:
+        return {
+            'mds': self.mds_service.config,
+            'rgw': self.rgw_service.config,
+            'nfs': self.nfs_service.config,
+            'iscsi': self.iscsi_service.config,
+        }.get(service_type)
+
+    def _apply_service(self, spec: ServiceSpec) -> bool:
         """
         Schedule a service.  Deploy new daemons or remove old ones, depending
         on the target label and count specified in the placement.
         """
         Schedule a service.  Deploy new daemons or remove old ones, depending
         on the target label and count specified in the placement.
@@ -2454,38 +1749,20 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             self.log.debug('Skipping unmanaged service %s spec' % service_name)
             return False
         self.log.debug('Applying service %s spec' % service_name)
             self.log.debug('Skipping unmanaged service %s spec' % service_name)
             return False
         self.log.debug('Applying service %s spec' % service_name)
-        create_fns = {
-            'mon': self._create_mon,
-            'mgr': self._create_mgr,
-            'osd': self.create_osds,
-            'mds': self._create_mds,
-            'rgw': self._create_rgw,
-            'rbd-mirror': self._create_rbd_mirror,
-            'nfs': self._create_nfs,
-            'grafana': self._create_grafana,
-            'alertmanager': self._create_alertmanager,
-            'prometheus': self._create_prometheus,
-            'node-exporter': self._create_node_exporter,
-            'crash': self._create_crash,
-            'iscsi': self._create_iscsi,
-        }
-        config_fns = {
-            'mds': self._config_mds,
-            'rgw': self._config_rgw,
-            'nfs': self._config_nfs,
-            'iscsi': self._config_iscsi,
-        }
-        create_func = create_fns.get(daemon_type, None)
-        if not create_func:
-            self.log.debug('unrecognized service type %s' % daemon_type)
+
+        create_func = self._create_fn(daemon_type)
+        config_func = self._config_fn(daemon_type)
+
+        if daemon_type == 'osd':
+            create_func(spec)
+            # TODO: return True would result in a busy loop
             return False
             return False
-        config_func = config_fns.get(daemon_type, None)
 
         daemons = self.cache.get_daemons_by_service(service_name)
 
         public_network = None
         if daemon_type == 'mon':
 
         daemons = self.cache.get_daemons_by_service(service_name)
 
         public_network = None
         if daemon_type == 'mon':
-            ret, out, err = self.mon_command({
+            ret, out, err = self.check_mon_command({
                 'prefix': 'config get',
                 'who': 'mon',
                 'key': 'public_network',
                 'prefix': 'config get',
                 'who': 'mon',
                 'key': 'public_network',
@@ -2511,9 +1788,6 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
         r = False
 
 
         r = False
 
-        if daemon_type == 'osd':
-            return False if create_func(spec) else True # type: ignore
-
         # sanity check
         if daemon_type in ['mon', 'mgr'] and len(hosts) < 1:
             self.log.debug('cannot scale mon|mgr below 1 (hosts=%s)' % hosts)
         # sanity check
         if daemon_type in ['mon', 'mgr'] and len(hosts) < 1:
             self.log.debug('cannot scale mon|mgr below 1 (hosts=%s)' % hosts)
@@ -2529,15 +1803,16 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                     config_func(spec)
                     did_config = True
                 daemon_id = self.get_unique_name(daemon_type, host, daemons,
                     config_func(spec)
                     did_config = True
                 daemon_id = self.get_unique_name(daemon_type, host, daemons,
-                                                 spec.service_id, name)
+                                                 prefix=spec.service_id,
+                                                 forcename=name)
                 self.log.debug('Placing %s.%s on host %s' % (
                     daemon_type, daemon_id, host))
                 if daemon_type == 'mon':
                     create_func(daemon_id, host, network)  # type: ignore
                 self.log.debug('Placing %s.%s on host %s' % (
                     daemon_type, daemon_id, host))
                 if daemon_type == 'mon':
                     create_func(daemon_id, host, network)  # type: ignore
-                elif daemon_type == 'nfs':
+                elif daemon_type in ['nfs', 'iscsi']:
                     create_func(daemon_id, host, spec)  # type: ignore
                 else:
                     create_func(daemon_id, host, spec)  # type: ignore
                 else:
-                    create_func(daemon_id, host)           # type: ignore
+                    create_func(daemon_id, host)  # type: ignore
 
                 # add to daemon list so next name(s) will also be unique
                 sd = orchestrator.DaemonDescription(
 
                 # add to daemon list so next name(s) will also be unique
                 sd = orchestrator.DaemonDescription(
@@ -2569,10 +1844,16 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 if self._apply_service(spec):
                     r = True
             except Exception as e:
                 if self._apply_service(spec):
                     r = True
             except Exception as e:
-                self.log.warning('Failed to apply %s spec %s: %s' % (
+                self.log.exception('Failed to apply %s spec %s: %s' % (
                     spec.service_name(), spec, e))
         return r
 
                     spec.service_name(), spec, e))
         return r
 
+    def _check_pool_exists(self, pool, service_name):
+        logger.info(f'Checking pool "{pool}" exists for service {service_name}')
+        if not self.rados.pool_exists(pool):
+            raise OrchestratorError(f'Cannot find pool "{pool}" for '
+                                    f'service {service_name}')
+
     def _check_daemons(self):
         # get monmap mtime so we can refresh configs when mons change
         monmap = self.get('mon_map')
     def _check_daemons(self):
         # get monmap mtime so we can refresh configs when mons change
         monmap = self.get('mon_map')
@@ -2582,7 +1863,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             last_monmap = None   # just in case clocks are skewed
 
         daemons = self.cache.get_daemons()
             last_monmap = None   # just in case clocks are skewed
 
         daemons = self.cache.get_daemons()
-        grafanas = []  # type: List[orchestrator.DaemonDescription]
+        daemons_post = defaultdict(list)
         for dd in daemons:
             # orphan?
             spec = self.spec_store.specs.get(dd.service_name(), None)
         for dd in daemons:
             # orphan?
             spec = self.spec_store.specs.get(dd.service_name(), None)
@@ -2593,13 +1874,13 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 self._remove_daemon(dd.name(), dd.hostname)
 
             # ignore unmanaged services
                 self._remove_daemon(dd.name(), dd.hostname)
 
             # ignore unmanaged services
-            if not spec or spec.unmanaged:
+            if spec and spec.unmanaged:
                 continue
 
                 continue
 
-            # dependencies?
-            if dd.daemon_type == 'grafana':
-                # put running instances at the front of the list
-                grafanas.insert(0, dd)
+            # These daemon types require additional configs after creation
+            if dd.daemon_type in ['grafana', 'iscsi', 'prometheus', 'alertmanager']:
+                daemons_post[dd.daemon_type].append(dd)
+
             deps = self._calc_daemon_deps(dd.daemon_type, dd.daemon_id)
             last_deps, last_config = self.cache.get_daemon_last_config_deps(
                 dd.hostname, dd.name())
             deps = self._calc_daemon_deps(dd.daemon_type, dd.daemon_id)
             last_deps, last_config = self.cache.get_daemon_last_config_deps(
                 dd.hostname, dd.name())
@@ -2625,25 +1906,12 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
                 self._create_daemon(dd.daemon_type, dd.daemon_id,
                                     dd.hostname, reconfig=True)
 
                 self._create_daemon(dd.daemon_type, dd.daemon_id,
                                     dd.hostname, reconfig=True)
 
-        # make sure the dashboard [does not] references grafana
-        try:
-            current_url = self.get_module_option_ex('dashboard',
-                                                    'GRAFANA_API_URL')
-            if grafanas:
-                host = grafanas[0].hostname
-                url = 'https://%s:3000' % (self.inventory[host].get('addr',
-                                                                    host))
-                if current_url != url:
-                    self.log.info('Setting dashboard grafana config to %s' % url)
-                    self.set_module_option_ex('dashboard', 'GRAFANA_API_URL',
-                                              url)
-                    # FIXME: is it a signed cert??
-        except Exception as e:
-            self.log.debug('got exception fetching dashboard grafana state: %s',
-                           e)
+        # do daemon post actions
+        for daemon_type, daemon_descs in daemons_post.items():
+            self._get_cephadm_service(daemon_type).daemon_check_post(daemon_descs)
 
     def _add_daemon(self, daemon_type, spec,
 
     def _add_daemon(self, daemon_type, spec,
-                    create_func, config_func=None):
+                    create_func: Callable[..., T], config_func=None) -> List[T]:
         """
         Add (and place) a daemon. Require explicit host placement.  Do not
         schedule, and do not apply the related scheduling limitations.
         """
         Add (and place) a daemon. Require explicit host placement.  Do not
         schedule, and do not apply the related scheduling limitations.
@@ -2659,7 +1927,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
 
     def _create_daemons(self, daemon_type, spec, daemons,
                         hosts, count,
 
     def _create_daemons(self, daemon_type, spec, daemons,
                         hosts, count,
-                        create_func, config_func=None):
+                        create_func: Callable[..., T], config_func=None) -> List[T]:
         if count > len(hosts):
             raise OrchestratorError('too few hosts: want %d, have %s' % (
                 count, hosts))
         if count > len(hosts):
             raise OrchestratorError('too few hosts: want %d, have %s' % (
                 count, hosts))
@@ -2670,14 +1938,13 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         args = []  # type: List[tuple]
         for host, network, name in hosts:
             daemon_id = self.get_unique_name(daemon_type, host, daemons,
         args = []  # type: List[tuple]
         for host, network, name in hosts:
             daemon_id = self.get_unique_name(daemon_type, host, daemons,
-                                             spec.service_id, name)
+                                             prefix=spec.service_id,
+                                             forcename=name)
             self.log.debug('Placing %s.%s on host %s' % (
                 daemon_type, daemon_id, host))
             if daemon_type == 'mon':
                 args.append((daemon_id, host, network))  # type: ignore
             self.log.debug('Placing %s.%s on host %s' % (
                 daemon_type, daemon_id, host))
             if daemon_type == 'mon':
                 args.append((daemon_id, host, network))  # type: ignore
-            elif daemon_type == 'nfs':
-                args.append((daemon_id, host, spec)) # type: ignore
-            elif daemon_type == 'iscsi':
+            elif daemon_type in ['nfs', 'iscsi']:
                 args.append((daemon_id, host, spec))  # type: ignore
             else:
                 args.append((daemon_id, host))  # type: ignore
                 args.append((daemon_id, host, spec))  # type: ignore
             else:
                 args.append((daemon_id, host))  # type: ignore
@@ -2690,7 +1957,7 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
             )
             daemons.append(sd)
 
             )
             daemons.append(sd)
 
-        @async_map_completion
+        @forall_hosts
         def create_func_map(*args):
             return create_func(*args)
 
         def create_func_map(*args):
             return create_func(*args)
 
@@ -2700,71 +1967,23 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
     def apply_mon(self, spec):
         return self._apply(spec)
 
     def apply_mon(self, spec):
         return self._apply(spec)
 
-    def _create_mon(self, name, host, network):
-        """
-        Create a new monitor on the given host.
-        """
-        # get mon. key
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get',
-            'entity': 'mon.',
-        })
-
-        extra_config = '[mon.%s]\n' % name
-        if network:
-            # infer whether this is a CIDR network, addrvec, or plain IP
-            if '/' in network:
-                extra_config += 'public network = %s\n' % network
-            elif network.startswith('[v') and network.endswith(']'):
-                extra_config += 'public addrv = %s\n' % network
-            elif ':' not in network:
-                extra_config += 'public addr = %s\n' % network
-            else:
-                raise OrchestratorError('Must specify a CIDR network, ceph addrvec, or plain IP: \'%s\'' % network)
-        else:
-            # try to get the public_network from the config
-            ret, network, err = self.mon_command({
-                'prefix': 'config get',
-                'who': 'mon',
-                'key': 'public_network',
-            })
-            network = network.strip() # type: ignore
-            if ret:
-                raise RuntimeError('Unable to fetch cluster_network config option')
-            if not network:
-                raise OrchestratorError('Must set public_network config option or specify a CIDR network, ceph addrvec, or plain IP')
-            if '/' not in network:
-                raise OrchestratorError('public_network is set but does not look like a CIDR network: \'%s\'' % network)
-            extra_config += 'public network = %s\n' % network
-
-        return self._create_daemon('mon', name, host,
-                                   keyring=keyring,
-                                   extra_config={'config': extra_config})
-
+    @trivial_completion
     def add_mon(self, spec):
     def add_mon(self, spec):
-        # type: (ServiceSpec) -> orchestrator.Completion
-        return self._add_daemon('mon', spec, self._create_mon)
+        # type: (ServiceSpec) -> List[str]
+        return self._add_daemon('mon', spec, self.mon_service.create)
 
 
-    def _create_mgr(self, mgr_id, host):
-        """
-        Create a new manager instance on a host.
-        """
-        # get mgr. key
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': 'mgr.%s' % mgr_id,
-            'caps': ['mon', 'profile mgr',
-                     'osd', 'allow *',
-                     'mds', 'allow *'],
-        })
+    @trivial_completion
+    def add_mgr(self, spec):
+        # type: (ServiceSpec) -> List[str]
+        return self._add_daemon('mgr', spec, self.mgr_service.create)
 
 
-        return self._create_daemon('mgr', mgr_id, host, keyring=keyring)
+    def _apply(self, spec: GenericSpec) -> str:
+        if spec.service_type == 'host':
+            return self._add_host(cast(HostSpec, spec))
 
 
-    def add_mgr(self, spec):
-        # type: (ServiceSpec) -> orchestrator.Completion
-        return self._add_daemon('mgr', spec, self._create_mgr)
+        return self._apply_service_spec(cast(ServiceSpec, spec))
 
 
-    def _apply(self, spec: ServiceSpec) -> str:
+    def _apply_service_spec(self, spec: ServiceSpec) -> str:
         if spec.placement.is_empty():
             # fill in default placement
             defaults = {
         if spec.placement.is_empty():
             # fill in default placement
             defaults = {
@@ -2801,537 +2020,111 @@ class CephadmOrchestrator(orchestrator.Orchestrator, MgrModule):
         return "Scheduled %s update..." % spec.service_name()
 
     @trivial_completion
         return "Scheduled %s update..." % spec.service_name()
 
     @trivial_completion
-    def apply(self, specs: List[ServiceSpec]):
-        return [self._apply(spec) for spec in specs]
+    def apply(self, specs: List[GenericSpec]):
+        results = []
+        for spec in specs:
+            results.append(self._apply(spec))
+        return results
 
     @trivial_completion
     def apply_mgr(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_mgr(self, spec):
         return self._apply(spec)
 
+    @trivial_completion
     def add_mds(self, spec: ServiceSpec):
     def add_mds(self, spec: ServiceSpec):
-        return self._add_daemon('mds', spec, self._create_mds, self._config_mds)
+        return self._add_daemon('mds', spec, self.mds_service.create, self.mds_service.config)
 
     @trivial_completion
     def apply_mds(self, spec: ServiceSpec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_mds(self, spec: ServiceSpec):
         return self._apply(spec)
 
-    def _config_mds(self, spec):
-        # ensure mds_join_fs is set for these daemons
-        assert spec.service_id
-        ret, out, err = self.mon_command({
-            'prefix': 'config set',
-            'who': 'mds.' + spec.service_id,
-            'name': 'mds_join_fs',
-            'value': spec.service_id,
-        })
-
-    def _create_mds(self, mds_id, host):
-        # get mgr. key
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': 'mds.' + mds_id,
-            'caps': ['mon', 'profile mds',
-                     'osd', 'allow rwx',
-                     'mds', 'allow'],
-        })
-        return self._create_daemon('mds', mds_id, host, keyring=keyring)
-
+    @trivial_completion
     def add_rgw(self, spec):
     def add_rgw(self, spec):
-        return self._add_daemon('rgw', spec, self._create_rgw, self._config_rgw)
-
-    def _config_rgw(self, spec):
-        # ensure rgw_realm and rgw_zone is set for these daemons
-        ret, out, err = self.mon_command({
-            'prefix': 'config set',
-            'who': f"{utils.name_to_config_section('rgw')}.{spec.service_id}",
-            'name': 'rgw_zone',
-            'value': spec.rgw_zone,
-        })
-        ret, out, err = self.mon_command({
-            'prefix': 'config set',
-            'who': f"{utils.name_to_config_section('rgw')}.{spec.rgw_realm}",
-            'name': 'rgw_realm',
-            'value': spec.rgw_realm,
-        })
-        ret, out, err = self.mon_command({
-            'prefix': 'config set',
-            'who': f"{utils.name_to_config_section('rgw')}.{spec.service_id}",
-            'name': 'rgw_frontends',
-            'value': spec.rgw_frontends_config_value(),
-        })
-
-        if spec.rgw_frontend_ssl_certificate:
-            if isinstance(spec.rgw_frontend_ssl_certificate, list):
-                cert_data = '\n'.join(spec.rgw_frontend_ssl_certificate)
-            else:
-                cert_data = spec.rgw_frontend_ssl_certificate
-            ret, out, err = self.mon_command({
-                'prefix': 'config-key set',
-                'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.crt',
-                'val': cert_data,
-            })
-
-        if spec.rgw_frontend_ssl_key:
-            if isinstance(spec.rgw_frontend_ssl_key, list):
-                key_data = '\n'.join(spec.rgw_frontend_ssl_key)
-            else:
-                key_data = spec.rgw_frontend_ssl_key
-            ret, out, err = self.mon_command({
-                'prefix': 'config-key set',
-                'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.key',
-                'val': key_data,
-            })
-
-        logger.info('Saving service %s spec with placement %s' % (
-            spec.service_name(), spec.placement.pretty_str()))
-        self.spec_store.save(spec)
-
-    def _create_rgw(self, rgw_id, host):
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': f"{utils.name_to_config_section('rgw')}.{rgw_id}",
-            'caps': ['mon', 'allow *',
-                     'mgr', 'allow rw',
-                     'osd', 'allow rwx'],
-        })
-        return self._create_daemon('rgw', rgw_id, host, keyring=keyring)
+        return self._add_daemon('rgw', spec, self.rgw_service.create, self.rgw_service.config)
 
     @trivial_completion
     def apply_rgw(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_rgw(self, spec):
         return self._apply(spec)
 
+    @trivial_completion
     def add_iscsi(self, spec):
     def add_iscsi(self, spec):
-        # type: (ServiceSpec) -> orchestrator.Completion
-        return self._add_daemon('iscsi', spec, self._create_iscsi, self._config_iscsi)
-
-    def _config_iscsi(self, spec):
-        logger.info('Saving service %s spec with placement %s' % (
-            spec.service_name(), spec.placement.pretty_str()))
-        self.spec_store.save(spec)
-
-    def _create_iscsi(self, igw_id, host, spec):
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': utils.name_to_config_section('iscsi') + '.' + igw_id,
-            'caps': ['mon', 'allow rw',
-                     'osd', f'allow rwx pool={spec.pool}'],
-        })
-
-        api_secure = 'false' if spec.api_secure is None else spec.api_secure
-        igw_conf = f"""
-# generated by cephadm
-[config]
-cluster_client_name = {utils.name_to_config_section('iscsi')}.{igw_id}
-pool = {spec.pool}
-trusted_ip_list = {spec.trusted_ip_list or ''}
-minimum_gateways = 1
-fqdn_enabled = {spec.fqdn_enabled or ''}
-api_port = {spec.api_port or ''}
-api_user = {spec.api_user or ''}
-api_password = {spec.api_password or ''}
-api_secure = {api_secure}
-"""
-        extra_config = {'iscsi-gateway.cfg': igw_conf}
-        return self._create_daemon('iscsi', igw_id, host, keyring=keyring,
-                                   extra_config=extra_config)
+        # type: (ServiceSpec) -> List[str]
+        return self._add_daemon('iscsi', spec, self.iscsi_service.create, self.iscsi_service.config)
 
     @trivial_completion
     def apply_iscsi(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_iscsi(self, spec):
         return self._apply(spec)
 
+    @trivial_completion
     def add_rbd_mirror(self, spec):
     def add_rbd_mirror(self, spec):
-        return self._add_daemon('rbd-mirror', spec, self._create_rbd_mirror)
-
-    def _create_rbd_mirror(self, daemon_id, host):
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': 'client.rbd-mirror.' + daemon_id,
-            'caps': ['mon', 'profile rbd-mirror',
-                     'osd', 'profile rbd'],
-        })
-        return self._create_daemon('rbd-mirror', daemon_id, host,
-                                   keyring=keyring)
+        return self._add_daemon('rbd-mirror', spec, self.rbd_mirror_service.create)
 
     @trivial_completion
     def apply_rbd_mirror(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_rbd_mirror(self, spec):
         return self._apply(spec)
 
-    def _generate_nfs_config(self, daemon_type, daemon_id, host):
-        # type: (str, str, str) -> Tuple[Dict[str, Any], List[str]]
-        deps = [] # type: List[str]
-
-        # find the matching NFSServiceSpec
-        # TODO: find the spec and pass via _create_daemon instead ??
-        service_name = self.get_service_name(daemon_type, daemon_id, host)
-        specs = self.spec_store.find(service_name)
-        if not specs:
-            raise OrchestratorError('Cannot find service spec %s' % (service_name))
-        elif len(specs) > 1:
-            raise OrchestratorError('Found multiple service specs for %s' % (service_name))
-        else:
-            # cast to keep mypy happy
-            spec = cast(NFSServiceSpec, specs[0])
-
-        nfs = NFSGanesha(self, daemon_id, spec)
-
-        # create the keyring
-        entity = nfs.get_keyring_entity()
-        keyring = nfs.get_or_create_keyring(entity=entity)
-
-        # update the caps after get-or-create, the keyring might already exist!
-        nfs.update_keyring_caps(entity=entity)
-
-        # create the rados config object
-        nfs.create_rados_config_obj()
-
-        # generate the cephadm config
-        cephadm_config = nfs.get_cephadm_config()
-        cephadm_config.update(
-                self._get_config_and_keyring(
-                    daemon_type, daemon_id,
-                    keyring=keyring))
-
-        return cephadm_config, deps
-
+    @trivial_completion
     def add_nfs(self, spec):
     def add_nfs(self, spec):
-        return self._add_daemon('nfs', spec, self._create_nfs, self._config_nfs)
-
-    def _config_nfs(self, spec):
-        logger.info('Saving service %s spec with placement %s' % (
-            spec.service_name(), spec.placement.pretty_str()))
-        self.spec_store.save(spec)
-
-    def _create_nfs(self, daemon_id, host, spec):
-        return self._create_daemon('nfs', daemon_id, host)
+        return self._add_daemon('nfs', spec, self.nfs_service.create, self.nfs_service.config)
 
     @trivial_completion
     def apply_nfs(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_nfs(self, spec):
         return self._apply(spec)
 
-    def _generate_prometheus_config(self):
-        # type: () -> Tuple[Dict[str, Any], List[str]]
-        deps = []  # type: List[str]
-
-        # scrape mgrs
-        mgr_scrape_list = []
-        mgr_map = self.get('mgr_map')
-        port = None
-        t = mgr_map.get('services', {}).get('prometheus', None)
-        if t:
-            t = t.split('/')[2]
-            mgr_scrape_list.append(t)
-            port = '9283'
-            if ':' in t:
-                port = t.split(':')[1]
-        # scan all mgrs to generate deps and to get standbys too.
-        # assume that they are all on the same port as the active mgr.
-        for dd in self.cache.get_daemons_by_service('mgr'):
-            # we consider the mgr a dep even if the prometheus module is
-            # disabled in order to be consistent with _calc_daemon_deps().
-            deps.append(dd.name())
-            if not port:
-                continue
-            if dd.daemon_id == self.get_mgr_id():
-                continue
-            hi = self.inventory.get(dd.hostname, {})
-            addr = hi.get('addr', dd.hostname)
-            mgr_scrape_list.append(addr.split(':')[0] + ':' + port)
-
-        # scrape node exporters
-        node_configs = ''
-        for dd in self.cache.get_daemons_by_service('node-exporter'):
-            deps.append(dd.name())
-            hi = self.inventory.get(dd.hostname, {})
-            addr = hi.get('addr', dd.hostname)
-            if not node_configs:
-                node_configs = """
-  - job_name: 'node'
-    static_configs:
-"""
-            node_configs += """    - targets: {}
-      labels:
-        instance: '{}'
-""".format([addr.split(':')[0] + ':9100'],
-           dd.hostname)
-
-        # scrape alert managers
-        alertmgr_configs = ""
-        alertmgr_targets = []
-        for dd in self.cache.get_daemons_by_service('alertmanager'):
-            deps.append(dd.name())
-            hi = self.inventory.get(dd.hostname, {})
-            addr = hi.get('addr', dd.hostname)
-            alertmgr_targets.append("'{}:9093'".format(addr.split(':')[0]))
-        if alertmgr_targets:
-            alertmgr_configs = """alerting:
-  alertmanagers:
-    - scheme: http
-      path_prefix: /alertmanager
-      static_configs:
-        - targets: [{}]
-""".format(", ".join(alertmgr_targets))
-
-        # generate the prometheus configuration
-        r = {
-            'files': {
-                'prometheus.yml': """# generated by cephadm
-global:
-  scrape_interval: 5s
-  evaluation_interval: 10s
-rule_files:
-  - /etc/prometheus/alerting/*
-{alertmgr_configs}
-scrape_configs:
-  - job_name: 'ceph'
-    static_configs:
-    - targets: {mgr_scrape_list}
-      labels:
-        instance: 'ceph_cluster'
-{node_configs}
-""".format(
-    mgr_scrape_list=str(mgr_scrape_list),
-    node_configs=str(node_configs),
-    alertmgr_configs=str(alertmgr_configs)
-    ),
-            },
-        }
-
-        # include alerts, if present in the container
-        if os.path.exists(self.prometheus_alerts_path):
-            with open(self.prometheus_alerts_path, "r") as f:
-                alerts = f.read()
-            r['files']['/etc/prometheus/alerting/ceph_alerts.yml'] = alerts
-
-        return r, sorted(deps)
-
-    def _generate_grafana_config(self):
-        # type: () -> Tuple[Dict[str, Any], List[str]]
-        deps = []  # type: List[str]
-        def generate_grafana_ds_config(hosts: List[str]) -> str:
-            config = '''# generated by cephadm
-deleteDatasources:
-{delete_data_sources}
-
-datasources:
-{data_sources}
-'''
-            delete_ds_template = '''
-  - name: '{name}'
-    orgId: 1\n'''.lstrip('\n')
-            ds_template = '''
-  - name: '{name}'
-    type: 'prometheus'
-    access: 'proxy'
-    orgId: 1
-    url: 'http://{host}:9095'
-    basicAuth: false
-    isDefault: {is_default}
-    editable: false\n'''.lstrip('\n')
-
-            delete_data_sources = ''
-            data_sources = ''
-            for i, host in enumerate(hosts):
-                name = "Dashboard %d" % (i + 1)
-                data_sources += ds_template.format(
-                    name=name,
-                    host=host,
-                    is_default=str(i == 0).lower()
-                )
-                delete_data_sources += delete_ds_template.format(
-                    name=name
-                )
-            return config.format(
-                delete_data_sources=delete_data_sources,
-                data_sources=data_sources,
-            )
-
-        prom_services = []  # type: List[str]
-        for dd in self.cache.get_daemons_by_service('prometheus'):
-            prom_services.append(dd.hostname)
-            deps.append(dd.name())
-
-        cert = self.get_store('grafana_crt')
-        pkey = self.get_store('grafana_key')
-        if cert and pkey:
-            try:
-                verify_tls(cert, pkey)
-            except ServerConfigException as e:
-                logger.warning('Provided grafana TLS certificates invalid: %s', str(e))
-                cert, pkey = None, None
-        if not (cert and pkey):
-            cert, pkey = create_self_signed_cert('Ceph', 'cephadm')
-            self.set_store('grafana_crt', cert)
-            self.set_store('grafana_key', pkey)
-            self.mon_command({
-                'prefix': 'dashboard set-grafana-api-ssl-verify',
-                'value': 'false',
-            })
-
-
-
-        config_file = {
-            'files': {
-                "grafana.ini": """# generated by cephadm
-[users]
-  default_theme = light
-[auth.anonymous]
-  enabled = true
-  org_name = 'Main Org.'
-  org_role = 'Viewer'
-[server]
-  domain = 'bootstrap.storage.lab'
-  protocol = https
-  cert_file = /etc/grafana/certs/cert_file
-  cert_key = /etc/grafana/certs/cert_key
-  http_port = 3000
-[security]
-  admin_user = admin
-  admin_password = admin
-  allow_embedding = true
-""",
-                'provisioning/datasources/ceph-dashboard.yml': generate_grafana_ds_config(prom_services),
-                'certs/cert_file': '# generated by cephadm\n%s' % cert,
-                'certs/cert_key': '# generated by cephadm\n%s' % pkey,
-            }
-        }
-        return config_file, sorted(deps)
-
     def _get_dashboard_url(self):
         # type: () -> str
         return self.get('mgr_map').get('services', {}).get('dashboard', '')
 
     def _get_dashboard_url(self):
         # type: () -> str
         return self.get('mgr_map').get('services', {}).get('dashboard', '')
 
-    def _generate_alertmanager_config(self):
-        # type: () -> Tuple[Dict[str, Any], List[str]]
-        deps = [] # type: List[str]
-
-        # dashboard(s)
-        dashboard_urls = []
-        mgr_map = self.get('mgr_map')
-        port = None
-        proto = None  # http: or https:
-        url = mgr_map.get('services', {}).get('dashboard', None)
-        if url:
-            dashboard_urls.append(url)
-            proto = url.split('/')[0]
-            port = url.split('/')[2].split(':')[1]
-        # scan all mgrs to generate deps and to get standbys too.
-        # assume that they are all on the same port as the active mgr.
-        for dd in self.cache.get_daemons_by_service('mgr'):
-            # we consider mgr a dep even if the dashboard is disabled
-            # in order to be consistent with _calc_daemon_deps().
-            deps.append(dd.name())
-            if not port:
-                continue
-            if dd.daemon_id == self.get_mgr_id():
-                continue
-            hi = self.inventory.get(dd.hostname, {})
-            addr = hi.get('addr', dd.hostname)
-            dashboard_urls.append('%s//%s:%s/' % (proto, addr.split(':')[0],
-                                                 port))
-
-        yml = """# generated by cephadm
-# See https://prometheus.io/docs/alerting/configuration/ for documentation.
-
-global:
-  resolve_timeout: 5m
-
-route:
-  group_by: ['alertname']
-  group_wait: 10s
-  group_interval: 10s
-  repeat_interval: 1h
-  receiver: 'ceph-dashboard'
-receivers:
-- name: 'ceph-dashboard'
-  webhook_configs:
-{urls}
-""".format(
-    urls='\n'.join(
-        ["  - url: '{}api/prometheus_receiver'".format(u)
-         for u in dashboard_urls]
-    ))
-        peers = []
-        port = '9094'
-        for dd in self.cache.get_daemons_by_service('alertmanager'):
-            deps.append(dd.name())
-            hi = self.inventory.get(dd.hostname, {})
-            addr = hi.get('addr', dd.hostname)
-            peers.append(addr.split(':')[0] + ':' + port)
-        return {
-            "files": {
-                "alertmanager.yml": yml
-            },
-            "peers": peers
-        }, sorted(deps)
-
+    @trivial_completion
     def add_prometheus(self, spec):
     def add_prometheus(self, spec):
-        return self._add_daemon('prometheus', spec, self._create_prometheus)
-
-    def _create_prometheus(self, daemon_id, host):
-        return self._create_daemon('prometheus', daemon_id, host)
+        return self._add_daemon('prometheus', spec, self.prometheus_service.create)
 
     @trivial_completion
     def apply_prometheus(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_prometheus(self, spec):
         return self._apply(spec)
 
+    @trivial_completion
     def add_node_exporter(self, spec):
     def add_node_exporter(self, spec):
-        # type: (ServiceSpec) -> AsyncCompletion
+        # type: (ServiceSpec) -> List[str]
         return self._add_daemon('node-exporter', spec,
         return self._add_daemon('node-exporter', spec,
-                                self._create_node_exporter)
+                                self.node_exporter_service.create)
 
     @trivial_completion
     def apply_node_exporter(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_node_exporter(self, spec):
         return self._apply(spec)
 
-    def _create_node_exporter(self, daemon_id, host):
-        return self._create_daemon('node-exporter', daemon_id, host)
-
+    @trivial_completion
     def add_crash(self, spec):
     def add_crash(self, spec):
-        # type: (ServiceSpec) -> AsyncCompletion
+        # type: (ServiceSpec) -> List[str]
         return self._add_daemon('crash', spec,
         return self._add_daemon('crash', spec,
-                                self._create_crash)
+                                self.crash_service.create)
 
     @trivial_completion
     def apply_crash(self, spec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_crash(self, spec):
         return self._apply(spec)
 
-    def _create_crash(self, daemon_id, host):
-        ret, keyring, err = self.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': 'client.crash.' + host,
-            'caps': ['mon', 'profile crash',
-                     'mgr', 'profile crash'],
-        })
-        return self._create_daemon('crash', daemon_id, host, keyring=keyring)
-
+    @trivial_completion
     def add_grafana(self, spec):
     def add_grafana(self, spec):
-        # type: (ServiceSpec) -> AsyncCompletion
-        return self._add_daemon('grafana', spec, self._create_grafana)
+        # type: (ServiceSpec) -> List[str]
+        return self._add_daemon('grafana', spec, self.grafana_service.create)
 
     @trivial_completion
     def apply_grafana(self, spec: ServiceSpec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_grafana(self, spec: ServiceSpec):
         return self._apply(spec)
 
-    def _create_grafana(self, daemon_id, host):
-        # type: (str, str) -> str
-        return self._create_daemon('grafana', daemon_id, host)
-
+    @trivial_completion
     def add_alertmanager(self, spec):
     def add_alertmanager(self, spec):
-        # type: (ServiceSpec) -> AsyncCompletion
-        return self._add_daemon('alertmanager', spec, self._create_alertmanager)
+        # type: (ServiceSpec) -> List[str]
+        return self._add_daemon('alertmanager', spec, self.alertmanager_service.create)
 
     @trivial_completion
     def apply_alertmanager(self, spec: ServiceSpec):
         return self._apply(spec)
 
 
     @trivial_completion
     def apply_alertmanager(self, spec: ServiceSpec):
         return self._apply(spec)
 
-    def _create_alertmanager(self, daemon_id, host):
-        return self._create_daemon('alertmanager', daemon_id, host)
-
-
     def _get_container_image_id(self, image_name):
         # pick a random host...
         host = None
     def _get_container_image_id(self, image_name):
         # pick a random host...
         host = None
-        for host_name, hi in self.inventory.items():
+        for host_name in self.inventory.keys():
             host = host_name
             break
         if not host:
             host = host_name
             break
         if not host:
@@ -3384,89 +2177,23 @@ receivers:
 
     @trivial_completion
     def upgrade_status(self):
 
     @trivial_completion
     def upgrade_status(self):
-        r = orchestrator.UpgradeStatusSpec()
-        if self.upgrade_state:
-            r.target_image = self.upgrade_state.get('target_name')
-            r.in_progress = True
-            if self.upgrade_state.get('error'):
-                r.message = 'Error: ' + self.upgrade_state.get('error')
-            elif self.upgrade_state.get('paused'):
-                r.message = 'Upgrade paused'
-        return r
+        return self.upgrade.upgrade_status()
 
     @trivial_completion
     def upgrade_start(self, image, version):
 
     @trivial_completion
     def upgrade_start(self, image, version):
-        if self.mode != 'root':
-            raise OrchestratorError('upgrade is not supported in %s mode' % (
-                self.mode))
-        if version:
-            try:
-                (major, minor, patch) = version.split('.')
-                assert int(minor) >= 0
-                assert int(patch) >= 0
-            except:
-                raise OrchestratorError('version must be in the form X.Y.Z (e.g., 15.2.3)')
-            if int(major) < 15 or (int(major) == 15 and int(minor) < 2):
-                raise OrchestratorError('cephadm only supports octopus (15.2.0) or later')
-            target_name = self.container_image_base + ':v' + version
-        elif image:
-            target_name = image
-        else:
-            raise OrchestratorError('must specify either image or version')
-        if self.upgrade_state:
-            if self.upgrade_state.get('target_name') != target_name:
-                raise OrchestratorError(
-                    'Upgrade to %s (not %s) already in progress' %
-                (self.upgrade_state.get('target_name'), target_name))
-            if self.upgrade_state.get('paused'):
-                del self.upgrade_state['paused']
-                self._save_upgrade_state()
-                return 'Resumed upgrade to %s' % self.upgrade_state.get('target_name')
-            return 'Upgrade to %s in progress' % self.upgrade_state.get('target_name')
-        self.upgrade_state = {
-            'target_name': target_name,
-            'progress_id': str(uuid.uuid4()),
-        }
-        self._update_upgrade_progress(0.0)
-        self._save_upgrade_state()
-        self._clear_upgrade_health_checks()
-        self.event.set()
-        return 'Initiating upgrade to %s' % (target_name)
+        return self.upgrade.upgrade_start(image, version)
 
     @trivial_completion
     def upgrade_pause(self):
 
     @trivial_completion
     def upgrade_pause(self):
-        if not self.upgrade_state:
-            raise OrchestratorError('No upgrade in progress')
-        if self.upgrade_state.get('paused'):
-            return 'Upgrade to %s already paused' % self.upgrade_state.get('target_name')
-        self.upgrade_state['paused'] = True
-        self._save_upgrade_state()
-        return 'Paused upgrade to %s' % self.upgrade_state.get('target_name')
+        return self.upgrade.upgrade_pause()
 
     @trivial_completion
     def upgrade_resume(self):
 
     @trivial_completion
     def upgrade_resume(self):
-        if not self.upgrade_state:
-            raise OrchestratorError('No upgrade in progress')
-        if not self.upgrade_state.get('paused'):
-            return 'Upgrade to %s not paused' % self.upgrade_state.get('target_name')
-        del self.upgrade_state['paused']
-        self._save_upgrade_state()
-        self.event.set()
-        return 'Resumed upgrade to %s' % self.upgrade_state.get('target_name')
+        return self.upgrade.upgrade_resume()
 
     @trivial_completion
     def upgrade_stop(self):
 
     @trivial_completion
     def upgrade_stop(self):
-        if not self.upgrade_state:
-            return 'No upgrade in progress'
-        target_name = self.upgrade_state.get('target_name')
-        if 'progress_id' in self.upgrade_state:
-            self.remote('progress', 'complete',
-                        self.upgrade_state['progress_id'])
-        self.upgrade_state = None
-        self._save_upgrade_state()
-        self._clear_upgrade_health_checks()
-        self.event.set()
-        return 'Stopped upgrade to %s' % target_name
+        return self.upgrade.upgrade_stop()
 
     @trivial_completion
     def remove_osds(self, osd_ids: List[str],
 
     @trivial_completion
     def remove_osds(self, osd_ids: List[str],
@@ -3503,188 +2230,3 @@ receivers:
         The CLI call to retrieve an osd removal report
         """
         return self.rm_util.report
         The CLI call to retrieve an osd removal report
         """
         return self.rm_util.report
-
-
-class BaseScheduler(object):
-    """
-    Base Scheduler Interface
-
-    * requires a placement_spec
-
-    `place(host_pool)` needs to return a List[HostPlacementSpec, ..]
-    """
-
-    def __init__(self, placement_spec):
-        # type: (PlacementSpec) -> None
-        self.placement_spec = placement_spec
-
-    def place(self, host_pool, count=None):
-        # type: (List, Optional[int]) -> List[HostPlacementSpec]
-        raise NotImplementedError
-
-
-class SimpleScheduler(BaseScheduler):
-    """
-    The most simple way to pick/schedule a set of hosts.
-    1) Shuffle the provided host_pool
-    2) Select from list up to :count
-    """
-    def __init__(self, placement_spec):
-        super(SimpleScheduler, self).__init__(placement_spec)
-
-    def place(self, host_pool, count=None):
-        # type: (List, Optional[int]) -> List[HostPlacementSpec]
-        if not host_pool:
-            return []
-        host_pool = [x for x in host_pool]
-        # shuffle for pseudo random selection
-        random.shuffle(host_pool)
-        return host_pool[:count]
-
-
-class HostAssignment(object):
-    """
-    A class to detect if hosts are being passed imperative or declarative
-    If the spec is populated via the `hosts/hosts` field it will not load
-    any hosts into the list.
-    If the spec isn't populated, i.e. when only num or label is present (declarative)
-    it will use the provided `get_host_func` to load it from the inventory.
-
-    Schedulers can be assigned to pick hosts from the pool.
-    """
-
-    def __init__(self,
-                 spec,  # type: ServiceSpec
-                 get_hosts_func,  # type: Callable[[Optional[str]],List[str]]
-                 get_daemons_func, # type: Callable[[str],List[orchestrator.DaemonDescription]]
-
-                 filter_new_host=None, # type: Optional[Callable[[str],bool]]
-                 scheduler=None,  # type: Optional[BaseScheduler]
-                 ):
-        assert spec and get_hosts_func and get_daemons_func
-        self.spec = spec  # type: ServiceSpec
-        self.scheduler = scheduler if scheduler else SimpleScheduler(self.spec.placement)
-        self.get_hosts_func = get_hosts_func
-        self.get_daemons_func = get_daemons_func
-        self.filter_new_host = filter_new_host
-        self.service_name = spec.service_name()
-
-
-    def validate(self):
-        self.spec.validate()
-
-        if self.spec.placement.hosts:
-            explicit_hostnames = {h.hostname for h in self.spec.placement.hosts}
-            unknown_hosts = explicit_hostnames.difference(set(self.get_hosts_func(None)))
-            if unknown_hosts:
-                raise OrchestratorValidationError(
-                    f'Cannot place {self.spec.one_line_str()} on {unknown_hosts}: Unknown hosts')
-
-        if self.spec.placement.host_pattern:
-            pattern_hostnames = self.spec.placement.pattern_matches_hosts(self.get_hosts_func(None))
-            if not pattern_hostnames:
-                raise OrchestratorValidationError(
-                    f'Cannot place {self.spec.one_line_str()}: No matching hosts')
-
-        if self.spec.placement.label:
-            label_hostnames = self.get_hosts_func(self.spec.placement.label)
-            if not label_hostnames:
-                raise OrchestratorValidationError(
-                    f'Cannot place {self.spec.one_line_str()}: No matching '
-                    f'hosts for label {self.spec.placement.label}')
-
-    def place(self):
-        # type: () -> List[HostPlacementSpec]
-        """
-        Load hosts into the spec.placement.hosts container.
-        """
-
-        self.validate()
-
-        # count == 0
-        if self.spec.placement.count == 0:
-            return []
-
-        # respect any explicit host list
-        if self.spec.placement.hosts and not self.spec.placement.count:
-            logger.debug('Provided hosts: %s' % self.spec.placement.hosts)
-            return self.spec.placement.hosts
-
-        # respect host_pattern
-        if self.spec.placement.host_pattern:
-            candidates = [
-                HostPlacementSpec(x, '', '')
-                for x in self.spec.placement.pattern_matches_hosts(self.get_hosts_func(None))
-            ]
-            logger.debug('All hosts: {}'.format(candidates))
-            return candidates
-
-        count = 0
-        if self.spec.placement.hosts and \
-           self.spec.placement.count and \
-           len(self.spec.placement.hosts) >= self.spec.placement.count:
-            hosts = self.spec.placement.hosts
-            logger.debug('place %d over provided host list: %s' % (
-                count, hosts))
-            count = self.spec.placement.count
-        elif self.spec.placement.label:
-            hosts = [
-                HostPlacementSpec(x, '', '')
-                for x in self.get_hosts_func(self.spec.placement.label)
-            ]
-            if not self.spec.placement.count:
-                logger.debug('Labeled hosts: {}'.format(hosts))
-                return hosts
-            count = self.spec.placement.count
-            logger.debug('place %d over label %s: %s' % (
-                count, self.spec.placement.label, hosts))
-        else:
-            hosts = [
-                HostPlacementSpec(x, '', '')
-                for x in self.get_hosts_func(None)
-            ]
-            if self.spec.placement.count:
-                count = self.spec.placement.count
-            else:
-                # this should be a totally empty spec given all of the
-                # alternative paths above.
-                assert self.spec.placement.count is None
-                assert not self.spec.placement.hosts
-                assert not self.spec.placement.label
-                count = 1
-            logger.debug('place %d over all hosts: %s' % (count, hosts))
-
-        # we need to select a subset of the candidates
-
-        # if a partial host list is provided, always start with that
-        if len(self.spec.placement.hosts) < count:
-            chosen = self.spec.placement.hosts
-        else:
-            chosen = []
-
-        # prefer hosts that already have services
-        daemons = self.get_daemons_func(self.service_name)
-        hosts_with_daemons = {d.hostname for d in daemons}
-        # calc existing daemons (that aren't already in chosen)
-        chosen_hosts = [hs.hostname for hs in chosen]
-        existing = [hs for hs in hosts
-                    if hs.hostname in hosts_with_daemons and \
-                    hs.hostname not in chosen_hosts]
-        if len(chosen + existing) >= count:
-            chosen = chosen + self.scheduler.place(
-                existing,
-                count - len(chosen))
-            logger.debug('Hosts with existing daemons: {}'.format(chosen))
-            return chosen
-
-        need = count - len(existing + chosen)
-        others = [hs for hs in hosts
-                  if hs.hostname not in hosts_with_daemons]
-        if self.filter_new_host:
-            old = others
-            others = [h for h in others if self.filter_new_host(h.hostname)]
-            logger.debug('filtered %s down to %s' % (old, hosts))
-        chosen = chosen + self.scheduler.place(others, need)
-        logger.debug('Combine hosts with existing daemons %s + new hosts %s' % (
-            existing, chosen))
-        return existing + chosen
diff --git a/ceph/src/pybind/mgr/cephadm/nfs.py b/ceph/src/pybind/mgr/cephadm/nfs.py
deleted file mode 100644 (file)
index 1c0a452..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-import logging
-import rados
-
-from typing import Dict, Optional
-
-from ceph.deployment.service_spec import NFSServiceSpec
-
-import cephadm
-from orchestrator import OrchestratorError
-
-from . import utils
-
-logger = logging.getLogger(__name__)
-
-class NFSGanesha(object):
-    def __init__(self,
-                 mgr,
-                 daemon_id,
-                 spec):
-        # type: (cephadm.CephadmOrchestrator, str, NFSServiceSpec) -> None
-        assert spec.service_id and daemon_id.startswith(spec.service_id)
-        self.mgr = mgr
-        self.daemon_id = daemon_id
-        self.spec = spec
-
-    def get_daemon_name(self):
-        # type: () -> str
-        return '%s.%s' % (self.spec.service_type, self.daemon_id)
-
-    def get_rados_user(self):
-        # type: () -> str
-        return '%s.%s' % (self.spec.service_type, self.daemon_id)
-
-    def get_keyring_entity(self):
-        # type: () -> str
-        return utils.name_to_config_section(self.get_rados_user())
-
-    def get_or_create_keyring(self, entity=None):
-        # type: (Optional[str]) -> str
-        if not entity:
-            entity = self.get_keyring_entity()
-
-        logger.info('Create keyring: %s' % entity)
-        ret, keyring, err = self.mgr.mon_command({
-            'prefix': 'auth get-or-create',
-            'entity': entity,
-        })
-
-        if ret != 0:
-            raise OrchestratorError(
-                    'Unable to create keyring %s: %s %s' \
-                            % (entity, ret, err))
-        return keyring
-
-    def update_keyring_caps(self, entity=None):
-        # type: (Optional[str]) -> None
-        if not entity:
-            entity = self.get_keyring_entity()
-
-        osd_caps='allow rw pool=%s' % (self.spec.pool)
-        if self.spec.namespace:
-            osd_caps='%s namespace=%s' % (osd_caps, self.spec.namespace)
-
-        logger.info('Updating keyring caps: %s' % entity)
-        ret, out, err = self.mgr.mon_command({
-            'prefix': 'auth caps',
-            'entity': entity,
-            'caps': ['mon', 'allow r',
-                     'osd', osd_caps,
-                     'mds', 'allow rw'],
-        })
-
-        if ret != 0:
-            raise OrchestratorError(
-                    'Unable to update keyring caps %s: %s %s' \
-                            % (entity, ret, err))
-
-    def create_rados_config_obj(self, clobber=False):
-        # type: (Optional[bool]) -> None
-        obj = self.spec.rados_config_name()
-
-        with self.mgr.rados.open_ioctx(self.spec.pool) as ioctx:
-            if self.spec.namespace:
-                ioctx.set_namespace(self.spec.namespace)
-
-            exists = True
-            try:
-                ioctx.stat(obj)
-            except rados.ObjectNotFound as e:
-                exists = False
-
-            if exists and not clobber:
-                # Assume an existing config
-                logger.info('Rados config object exists: %s' % obj)
-            else:
-                # Create an empty config object
-                logger.info('Creating rados config object: %s' % obj)
-                ioctx.write_full(obj, ''.encode('utf-8'))
-
-    def get_ganesha_conf(self):
-        # type: () -> str
-        return '''# generated by cephadm
-NFS_CORE_PARAM {{
-        Enable_NLM = false;
-        Enable_RQUOTA = false;
-        Protocols = 4;
-}}
-
-CACHEINODE {{
-        Dir_Chunk = 0;
-        NParts = 1;
-        Cache_Size = 1;
-}}
-
-EXPORT_DEFAULTS {{
-        Attr_Expiration_Time = 0;
-}}
-
-NFSv4 {{
-        Delegations = false;
-        RecoveryBackend = 'rados_cluster';
-        Minor_Versions = 1, 2;
-}}
-
-RADOS_KV {{
-        UserId = "{user}";
-        nodeid = "{nodeid}";
-        pool = "{pool}";
-        namespace = "{namespace}";
-}}
-
-RADOS_URLS {{
-        UserId = "{user}";
-        watch_url = "{url}";
-}}
-
-%url    {url}
-'''.format(user=self.get_rados_user(),
-           nodeid=self.get_daemon_name(),
-           pool=self.spec.pool,
-           namespace=self.spec.namespace if self.spec.namespace else '',
-           url=self.spec.rados_config_location())
-
-    def get_cephadm_config(self):
-        # type: () -> Dict
-        config = {'pool' : self.spec.pool} # type: Dict
-        if self.spec.namespace:
-            config['namespace'] = self.spec.namespace
-        config['userid'] = self.get_rados_user()
-        config['extra_args'] = ['-N', 'NIV_EVENT']
-        config['files'] = {
-            'ganesha.conf' : self.get_ganesha_conf(),
-        }
-        logger.debug('Generated cephadm config-json: %s' % config)
-        return config
diff --git a/ceph/src/pybind/mgr/cephadm/osd.py b/ceph/src/pybind/mgr/cephadm/osd.py
deleted file mode 100644 (file)
index 2ead0cb..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-import datetime
-import json
-import logging
-import time
-
-from typing import List, Dict, Any, Set, Union
-
-import orchestrator
-from orchestrator import OrchestratorError
-
-logger = logging.getLogger(__name__)
-
-
-class OSDRemoval(object):
-    def __init__(self,
-                 osd_id: str,
-                 replace: bool,
-                 force: bool,
-                 nodename: str,
-                 fullname: str,
-                 start_at: datetime.datetime,
-                 pg_count: int):
-        self.osd_id = osd_id
-        self.replace = replace
-        self.force = force
-        self.nodename = nodename
-        self.fullname = fullname
-        self.started_at = start_at
-        self.pg_count = pg_count
-
-    # needed due to changing 'started_at' attr
-    def __eq__(self, other):
-        return self.osd_id == other.osd_id
-
-    def __hash__(self):
-        return hash(self.osd_id)
-
-    def __repr__(self):
-        return ('<OSDRemoval>(osd_id={}, replace={}, force={}, nodename={}'
-                ', fullname={}, started_at={}, pg_count={})').format(
-            self.osd_id, self.replace, self.force, self.nodename,
-            self.fullname, self.started_at, self.pg_count)
-
-    @property
-    def pg_count_str(self) -> str:
-        return 'n/a' if self.pg_count < 0 else str(self.pg_count)
-
-
-class RemoveUtil(object):
-    def __init__(self, mgr):
-        self.mgr = mgr
-        self.to_remove_osds: Set[OSDRemoval] = set()
-        self.osd_removal_report: Dict[OSDRemoval, Union[int,str]] = dict()
-
-    @property
-    def report(self) -> Set[OSDRemoval]:
-        return self.to_remove_osds.copy()
-
-    def queue_osds_for_removal(self, osds: Set[OSDRemoval]):
-        self.to_remove_osds.update(osds)
-
-    def _remove_osds_bg(self) -> None:
-        """
-        Performs actions in the _serve() loop to remove an OSD
-        when criteria is met.
-        """
-        logger.debug(
-            f"{len(self.to_remove_osds)} OSDs are scheduled for removal: {list(self.to_remove_osds)}")
-        self._update_osd_removal_status()
-        remove_osds: set = self.to_remove_osds.copy()
-        for osd in remove_osds:
-            if not osd.force:
-                self.drain_osd(osd.osd_id)
-                # skip criteria
-                if not self.is_empty(osd.osd_id):
-                    logger.info(f"OSD <{osd.osd_id}> is not empty yet. Waiting a bit more")
-                    continue
-
-            if not self.ok_to_destroy([osd.osd_id]):
-                logger.info(
-                    f"OSD <{osd.osd_id}> is not safe-to-destroy yet. Waiting a bit more")
-                continue
-
-            # abort criteria
-            if not self.down_osd([osd.osd_id]):
-                # also remove it from the remove_osd list and set a health_check warning?
-                raise orchestrator.OrchestratorError(
-                    f"Could not set OSD <{osd.osd_id}> to 'down'")
-
-            if osd.replace:
-                if not self.destroy_osd(osd.osd_id):
-                    # also remove it from the remove_osd list and set a health_check warning?
-                    raise orchestrator.OrchestratorError(
-                        f"Could not destroy OSD <{osd.osd_id}>")
-            else:
-                if not self.purge_osd(osd.osd_id):
-                    # also remove it from the remove_osd list and set a health_check warning?
-                    raise orchestrator.OrchestratorError(f"Could not purge OSD <{osd.osd_id}>")
-
-            self.mgr._remove_daemon(osd.fullname, osd.nodename)
-            logger.info(f"Successfully removed OSD <{osd.osd_id}> on {osd.nodename}")
-            logger.debug(f"Removing {osd.osd_id} from the queue.")
-            self.to_remove_osds.remove(osd)
-
-    def _update_osd_removal_status(self):
-        """
-        Generate a OSD report that can be printed to the CLI
-        """
-        logger.debug("Update OSD removal status")
-        for osd in self.to_remove_osds:
-            osd.pg_count = self.get_pg_count(str(osd.osd_id))
-        logger.debug(f"OSD removal status: {self.to_remove_osds}")
-
-    def drain_osd(self, osd_id: str) -> bool:
-        """
-        Uses `osd_support` module to schedule a drain operation of an OSD
-        """
-        cmd_args = {
-            'prefix': 'osd drain',
-            'osd_ids': [int(osd_id)]
-        }
-        return self._run_mon_cmd(cmd_args)
-
-    def get_pg_count(self, osd_id: str) -> int:
-        """ Queries for PG count of an OSD """
-        self.mgr.log.debug("Querying for drain status")
-        ret, out, err = self.mgr.mon_command({
-            'prefix': 'osd drain status',
-        })
-        if ret != 0:
-            self.mgr.log.error(f"Calling osd drain status failed with {err}")
-            raise OrchestratorError("Could not query `osd drain status`")
-        out = json.loads(out)
-        for o in out:
-            if str(o.get('osd_id', '')) == str(osd_id):
-                return int(o.get('pgs', -1))
-        return -1
-
-    def is_empty(self, osd_id: str) -> bool:
-        """ Checks if an OSD is empty """
-        return self.get_pg_count(osd_id) == 0
-
-    def ok_to_destroy(self, osd_ids: List[int]) -> bool:
-        """ Queries the safe-to-destroy flag for OSDs """
-        cmd_args = {'prefix': 'osd safe-to-destroy',
-                    'ids': osd_ids}
-        return self._run_mon_cmd(cmd_args)
-
-    def destroy_osd(self, osd_id: int) -> bool:
-        """ Destroys an OSD (forcefully) """
-        cmd_args = {'prefix': 'osd destroy-actual',
-                    'id': int(osd_id),
-                    'yes_i_really_mean_it': True}
-        return self._run_mon_cmd(cmd_args)
-
-    def down_osd(self, osd_ids: List[int]) -> bool:
-        """ Sets `out` flag to OSDs """
-        cmd_args = {
-            'prefix': 'osd down',
-            'ids': osd_ids,
-        }
-        return self._run_mon_cmd(cmd_args)
-
-    def purge_osd(self, osd_id: int) -> bool:
-        """ Purges an OSD from the cluster (forcefully) """
-        cmd_args = {
-            'prefix': 'osd purge-actual',
-            'id': int(osd_id),
-            'yes_i_really_mean_it': True
-        }
-        return self._run_mon_cmd(cmd_args)
-
-    def out_osd(self, osd_ids: List[int]) -> bool:
-        """ Sets `down` flag to OSDs """
-        cmd_args = {
-            'prefix': 'osd out',
-            'ids': osd_ids,
-        }
-        return self._run_mon_cmd(cmd_args)
-
-    def _run_mon_cmd(self, cmd_args: dict) -> bool:
-        """
-        Generic command to run mon_command and evaluate/log the results
-        """
-        ret, out, err = self.mgr.mon_command(cmd_args)
-        if ret != 0:
-            self.mgr.log.debug(f"ran {cmd_args} with mon_command")
-            self.mgr.log.error(f"cmd: {cmd_args.get('prefix')} failed with: {err}. (errno:{ret})")
-            return False
-        self.mgr.log.debug(f"cmd: {cmd_args.get('prefix')} returns: {out}")
-        return True
diff --git a/ceph/src/pybind/mgr/cephadm/schedule.py b/ceph/src/pybind/mgr/cephadm/schedule.py
new file mode 100644 (file)
index 0000000..6e9bb68
--- /dev/null
@@ -0,0 +1,193 @@
+import logging
+import random
+from typing import List, Optional, Callable
+
+import orchestrator
+from ceph.deployment.service_spec import PlacementSpec, HostPlacementSpec, ServiceSpec
+from orchestrator import OrchestratorValidationError
+
+logger = logging.getLogger(__name__)
+
+class BaseScheduler(object):
+    """
+    Base Scheduler Interface
+
+    * requires a placement_spec
+
+    `place(host_pool)` needs to return a List[HostPlacementSpec, ..]
+    """
+
+    def __init__(self, placement_spec):
+        # type: (PlacementSpec) -> None
+        self.placement_spec = placement_spec
+
+    def place(self, host_pool, count=None):
+        # type: (List, Optional[int]) -> List[HostPlacementSpec]
+        raise NotImplementedError
+
+
+class SimpleScheduler(BaseScheduler):
+    """
+    The most simple way to pick/schedule a set of hosts.
+    1) Shuffle the provided host_pool
+    2) Select from list up to :count
+    """
+    def __init__(self, placement_spec):
+        super(SimpleScheduler, self).__init__(placement_spec)
+
+    def place(self, host_pool, count=None):
+        # type: (List, Optional[int]) -> List[HostPlacementSpec]
+        if not host_pool:
+            return []
+        host_pool = [x for x in host_pool]
+        # shuffle for pseudo random selection
+        random.shuffle(host_pool)
+        return host_pool[:count]
+
+
+class HostAssignment(object):
+    """
+    A class to detect if hosts are being passed imperative or declarative
+    If the spec is populated via the `hosts/hosts` field it will not load
+    any hosts into the list.
+    If the spec isn't populated, i.e. when only num or label is present (declarative)
+    it will use the provided `get_host_func` to load it from the inventory.
+
+    Schedulers can be assigned to pick hosts from the pool.
+    """
+
+    def __init__(self,
+                 spec,  # type: ServiceSpec
+                 get_hosts_func,  # type: Callable
+                 get_daemons_func, # type: Callable[[str],List[orchestrator.DaemonDescription]]
+
+                 filter_new_host=None, # type: Optional[Callable[[str],bool]]
+                 scheduler=None,  # type: Optional[BaseScheduler]
+                 ):
+        assert spec and get_hosts_func and get_daemons_func
+        self.spec = spec  # type: ServiceSpec
+        self.scheduler = scheduler if scheduler else SimpleScheduler(self.spec.placement)
+        self.get_hosts_func = get_hosts_func
+        self.get_daemons_func = get_daemons_func
+        self.filter_new_host = filter_new_host
+        self.service_name = spec.service_name()
+
+
+    def validate(self):
+        self.spec.validate()
+
+        if self.spec.placement.hosts:
+            explicit_hostnames = {h.hostname for h in self.spec.placement.hosts}
+            unknown_hosts = explicit_hostnames.difference(set(self.get_hosts_func()))
+            if unknown_hosts:
+                raise OrchestratorValidationError(
+                    f'Cannot place {self.spec.one_line_str()} on {unknown_hosts}: Unknown hosts')
+
+        if self.spec.placement.host_pattern:
+            pattern_hostnames = self.spec.placement.filter_matching_hosts(self.get_hosts_func)
+            if not pattern_hostnames:
+                raise OrchestratorValidationError(
+                    f'Cannot place {self.spec.one_line_str()}: No matching hosts')
+
+        if self.spec.placement.label:
+            label_hostnames = self.get_hosts_func(label=self.spec.placement.label)
+            if not label_hostnames:
+                raise OrchestratorValidationError(
+                    f'Cannot place {self.spec.one_line_str()}: No matching '
+                    f'hosts for label {self.spec.placement.label}')
+
+    def place(self):
+        # type: () -> List[HostPlacementSpec]
+        """
+        Load hosts into the spec.placement.hosts container.
+        """
+
+        self.validate()
+
+        # count == 0
+        if self.spec.placement.count == 0:
+            return []
+
+        # respect any explicit host list
+        if self.spec.placement.hosts and not self.spec.placement.count:
+            logger.debug('Provided hosts: %s' % self.spec.placement.hosts)
+            return self.spec.placement.hosts
+
+        # respect host_pattern
+        if self.spec.placement.host_pattern:
+            candidates = [
+                HostPlacementSpec(x, '', '')
+                for x in self.spec.placement.filter_matching_hosts(self.get_hosts_func)
+            ]
+            logger.debug('All hosts: {}'.format(candidates))
+            return candidates
+
+        count = 0
+        if self.spec.placement.hosts and \
+           self.spec.placement.count and \
+           len(self.spec.placement.hosts) >= self.spec.placement.count:
+            hosts = self.spec.placement.hosts
+            logger.debug('place %d over provided host list: %s' % (
+                count, hosts))
+            count = self.spec.placement.count
+        elif self.spec.placement.label:
+            hosts = [
+                HostPlacementSpec(x, '', '')
+                for x in self.get_hosts_func(label=self.spec.placement.label)
+            ]
+            if not self.spec.placement.count:
+                logger.debug('Labeled hosts: {}'.format(hosts))
+                return hosts
+            count = self.spec.placement.count
+            logger.debug('place %d over label %s: %s' % (
+                count, self.spec.placement.label, hosts))
+        else:
+            hosts = [
+                HostPlacementSpec(x, '', '')
+                for x in self.get_hosts_func()
+            ]
+            if self.spec.placement.count:
+                count = self.spec.placement.count
+            else:
+                # this should be a totally empty spec given all of the
+                # alternative paths above.
+                assert self.spec.placement.count is None
+                assert not self.spec.placement.hosts
+                assert not self.spec.placement.label
+                count = 1
+            logger.debug('place %d over all hosts: %s' % (count, hosts))
+
+        # we need to select a subset of the candidates
+
+        # if a partial host list is provided, always start with that
+        if len(self.spec.placement.hosts) < count:
+            chosen = self.spec.placement.hosts
+        else:
+            chosen = []
+
+        # prefer hosts that already have services
+        daemons = self.get_daemons_func(self.service_name)
+        hosts_with_daemons = {d.hostname for d in daemons}
+        # calc existing daemons (that aren't already in chosen)
+        chosen_hosts = [hs.hostname for hs in chosen]
+        existing = [hs for hs in hosts
+                    if hs.hostname in hosts_with_daemons and \
+                    hs.hostname not in chosen_hosts]
+        if len(chosen + existing) >= count:
+            chosen = chosen + self.scheduler.place(
+                existing,
+                count - len(chosen))
+            logger.debug('Hosts with existing daemons: {}'.format(chosen))
+            return chosen
+
+        need = count - len(existing + chosen)
+        others = [hs for hs in hosts
+                  if hs.hostname not in hosts_with_daemons]
+        if self.filter_new_host:
+            old = others
+            others = [h for h in others if self.filter_new_host(h.hostname)]
+            logger.debug('filtered %s down to %s' % (old, hosts))
+        chosen = chosen + self.scheduler.place(others, need)
+        logger.debug('Combine hosts with existing daemons %s + new hosts %s' % (
+            existing, chosen))
+        return existing + chosen
diff --git a/ceph/src/pybind/mgr/cephadm/services/__init__.py b/ceph/src/pybind/mgr/cephadm/services/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ceph/src/pybind/mgr/cephadm/services/cephadmservice.py b/ceph/src/pybind/mgr/cephadm/services/cephadmservice.py
new file mode 100644 (file)
index 0000000..6acbb60
--- /dev/null
@@ -0,0 +1,228 @@
+import logging
+from typing import TYPE_CHECKING, List
+
+from mgr_module import MonCommandFailed
+
+from ceph.deployment.service_spec import ServiceSpec, RGWSpec
+from orchestrator import OrchestratorError, DaemonDescription
+from cephadm import utils
+
+if TYPE_CHECKING:
+    from cephadm.module import CephadmOrchestrator
+
+logger = logging.getLogger(__name__)
+
+
+class CephadmService:
+    """
+    Base class for service types. Often providing a create() and config() fn.
+    """
+    def __init__(self, mgr: "CephadmOrchestrator"):
+        self.mgr: "CephadmOrchestrator" = mgr
+
+    def daemon_check_post(self, daemon_descrs: List[DaemonDescription]):
+        """The post actions needed to be done after daemons are checked"""
+        raise NotImplementedError()
+
+    def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription:
+        raise NotImplementedError()
+
+    def _inventory_get_addr(self, hostname: str):
+        """Get a host's address with its hostname."""
+        return self.mgr.inventory.get_addr(hostname)
+
+    def _set_service_url_on_dashboard(self,
+                                      service_name: str,
+                                      get_mon_cmd: str,
+                                      set_mon_cmd: str,
+                                      service_url: str):
+        """A helper to get and set service_url via Dashboard's MON command."""
+        try:
+            _, out, _ = self.mgr.check_mon_command({
+                'prefix': get_mon_cmd
+            })
+        except MonCommandFailed as e:
+            logger.warning('Failed to get service URL for %s: %s', service_name, e)
+            return
+        if out.strip() != service_url:
+            try:
+                logger.info(
+                    'Setting service URL %s for %s in the Dashboard', service_url, service_name)
+                _, out, _ = self.mgr.check_mon_command({
+                    'prefix': set_mon_cmd,
+                    'value': service_url,
+                })
+            except MonCommandFailed as e:
+                logger.warning('Failed to set service URL %s for %s in the Dashboard: %s',
+                               service_url, service_name, e)
+
+
+class MonService(CephadmService):
+    def create(self, name, host, network):
+        """
+        Create a new monitor on the given host.
+        """
+        # get mon. key
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get',
+            'entity': 'mon.',
+        })
+
+        extra_config = '[mon.%s]\n' % name
+        if network:
+            # infer whether this is a CIDR network, addrvec, or plain IP
+            if '/' in network:
+                extra_config += 'public network = %s\n' % network
+            elif network.startswith('[v') and network.endswith(']'):
+                extra_config += 'public addrv = %s\n' % network
+            elif ':' not in network:
+                extra_config += 'public addr = %s\n' % network
+            else:
+                raise OrchestratorError('Must specify a CIDR network, ceph addrvec, or plain IP: \'%s\'' % network)
+        else:
+            # try to get the public_network from the config
+            ret, network, err = self.mgr.check_mon_command({
+                'prefix': 'config get',
+                'who': 'mon',
+                'key': 'public_network',
+            })
+            network = network.strip() # type: ignore
+            if not network:
+                raise OrchestratorError('Must set public_network config option or specify a CIDR network, ceph addrvec, or plain IP')
+            if '/' not in network:
+                raise OrchestratorError('public_network is set but does not look like a CIDR network: \'%s\'' % network)
+            extra_config += 'public network = %s\n' % network
+
+        return self.mgr._create_daemon('mon', name, host,
+                                       keyring=keyring,
+                                       extra_config={'config': extra_config})
+
+
+class MgrService(CephadmService):
+    def create(self, mgr_id, host):
+        """
+        Create a new manager instance on a host.
+        """
+        # get mgr. key
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': 'mgr.%s' % mgr_id,
+            'caps': ['mon', 'profile mgr',
+                     'osd', 'allow *',
+                     'mds', 'allow *'],
+        })
+
+        return self.mgr._create_daemon('mgr', mgr_id, host, keyring=keyring)
+
+
+class MdsService(CephadmService):
+    def config(self, spec: ServiceSpec):
+        # ensure mds_join_fs is set for these daemons
+        assert spec.service_id
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config set',
+            'who': 'mds.' + spec.service_id,
+            'name': 'mds_join_fs',
+            'value': spec.service_id,
+        })
+
+    def create(self, mds_id, host) -> str:
+        # get mgr. key
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': 'mds.' + mds_id,
+            'caps': ['mon', 'profile mds',
+                     'osd', 'allow rwx',
+                     'mds', 'allow'],
+        })
+        return self.mgr._create_daemon('mds', mds_id, host, keyring=keyring)
+
+
+class RgwService(CephadmService):
+    def config(self, spec: RGWSpec):
+        # ensure rgw_realm and rgw_zone is set for these daemons
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config set',
+            'who': f"{utils.name_to_config_section('rgw')}.{spec.service_id}",
+            'name': 'rgw_zone',
+            'value': spec.rgw_zone,
+        })
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config set',
+            'who': f"{utils.name_to_config_section('rgw')}.{spec.rgw_realm}",
+            'name': 'rgw_realm',
+            'value': spec.rgw_realm,
+        })
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config set',
+            'who': f"{utils.name_to_config_section('rgw')}.{spec.service_id}",
+            'name': 'rgw_frontends',
+            'value': spec.rgw_frontends_config_value(),
+        })
+
+        if spec.rgw_frontend_ssl_certificate:
+            if isinstance(spec.rgw_frontend_ssl_certificate, list):
+                cert_data = '\n'.join(spec.rgw_frontend_ssl_certificate)
+            elif isinstance(spec.rgw_frontend_ssl_certificate, str):
+                cert_data = spec.rgw_frontend_ssl_certificate
+            else:
+                raise OrchestratorError(
+                        'Invalid rgw_frontend_ssl_certificate: %s'
+                        % spec.rgw_frontend_ssl_certificate)
+            ret, out, err = self.mgr.check_mon_command({
+                'prefix': 'config-key set',
+                'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.crt',
+                'val': cert_data,
+            })
+
+        if spec.rgw_frontend_ssl_key:
+            if isinstance(spec.rgw_frontend_ssl_key, list):
+                key_data = '\n'.join(spec.rgw_frontend_ssl_key)
+            elif isinstance(spec.rgw_frontend_ssl_certificate, str):
+                key_data = spec.rgw_frontend_ssl_key
+            else:
+                raise OrchestratorError(
+                        'Invalid rgw_frontend_ssl_key: %s'
+                        % spec.rgw_frontend_ssl_key)
+            ret, out, err = self.mgr.check_mon_command({
+                'prefix': 'config-key set',
+                'key': f'rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.key',
+                'val': key_data,
+            })
+
+        logger.info('Saving service %s spec with placement %s' % (
+            spec.service_name(), spec.placement.pretty_str()))
+        self.mgr.spec_store.save(spec)
+
+    def create(self, rgw_id, host) -> str:
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': f"{utils.name_to_config_section('rgw')}.{rgw_id}",
+            'caps': ['mon', 'allow *',
+                     'mgr', 'allow rw',
+                     'osd', 'allow rwx'],
+        })
+        return self.mgr._create_daemon('rgw', rgw_id, host, keyring=keyring)
+
+
+class RbdMirrorService(CephadmService):
+    def create(self, daemon_id, host) -> str:
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': 'client.rbd-mirror.' + daemon_id,
+            'caps': ['mon', 'profile rbd-mirror',
+                     'osd', 'profile rbd'],
+        })
+        return self.mgr._create_daemon('rbd-mirror', daemon_id, host,
+                                       keyring=keyring)
+
+
+class CrashService(CephadmService):
+    def create(self, daemon_id, host) -> str:
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': 'client.crash.' + host,
+            'caps': ['mon', 'profile crash',
+                     'mgr', 'profile crash'],
+        })
+        return self.mgr._create_daemon('crash', daemon_id, host, keyring=keyring)
diff --git a/ceph/src/pybind/mgr/cephadm/services/iscsi.py b/ceph/src/pybind/mgr/cephadm/services/iscsi.py
new file mode 100644 (file)
index 0000000..9b10d0a
--- /dev/null
@@ -0,0 +1,99 @@
+import json
+import logging
+from typing import List, cast
+
+from mgr_module import MonCommandFailed
+from ceph.deployment.service_spec import IscsiServiceSpec
+
+from orchestrator import DaemonDescription
+from .cephadmservice import CephadmService
+from .. import utils
+
+logger = logging.getLogger(__name__)
+
+
+class IscsiService(CephadmService):
+    def config(self, spec: IscsiServiceSpec):
+        self.mgr._check_pool_exists(spec.pool, spec.service_name())
+
+        logger.info('Saving service %s spec with placement %s' % (
+            spec.service_name(), spec.placement.pretty_str()))
+        self.mgr.spec_store.save(spec)
+
+    def create(self, igw_id, host, spec) -> str:
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': utils.name_to_auth_entity('iscsi') + '.' + igw_id,
+            'caps': ['mon', 'profile rbd, '
+                            'allow command "osd blacklist", '
+                            'allow command "config-key get" with "key" prefix "iscsi/"',
+                     'osd', f'allow rwx pool={spec.pool}'],
+        })
+
+        if spec.ssl_cert:
+            if isinstance(spec.ssl_cert, list):
+                cert_data = '\n'.join(spec.ssl_cert)
+            else:
+                cert_data = spec.ssl_cert
+            ret, out, err = self.mgr.mon_command({
+                'prefix': 'config-key set',
+                'key': f'iscsi/{utils.name_to_config_section("iscsi")}.{igw_id}/iscsi-gateway.crt',
+                'val': cert_data,
+            })
+
+        if spec.ssl_key:
+            if isinstance(spec.ssl_key, list):
+                key_data = '\n'.join(spec.ssl_key)
+            else:
+                key_data = spec.ssl_key
+            ret, out, err = self.mgr.mon_command({
+                'prefix': 'config-key set',
+                'key': f'iscsi/{utils.name_to_config_section("iscsi")}.{igw_id}/iscsi-gateway.key',
+                'val': key_data,
+            })
+
+        context = {
+            'client_name': '{}.{}'.format(utils.name_to_config_section('iscsi'), igw_id),
+            'spec': spec
+        }
+        igw_conf = self.mgr.template.render('services/iscsi/iscsi-gateway.cfg.j2', context)
+        extra_config = {'iscsi-gateway.cfg': igw_conf}
+        return self.mgr._create_daemon('iscsi', igw_id, host, keyring=keyring,
+                                       extra_config=extra_config)
+
+    def daemon_check_post(self, daemon_descrs: List[DaemonDescription]):
+        try:
+            _, out, _ = self.mgr.check_mon_command({
+                'prefix': 'dashboard iscsi-gateway-list'
+            })
+        except MonCommandFailed as e:
+            logger.warning('Failed to get existing iSCSI gateways from the Dashboard: %s', e)
+            return
+
+        gateways = json.loads(out)['gateways']
+        for dd in daemon_descrs:
+            spec = cast(IscsiServiceSpec,
+                        self.mgr.spec_store.specs.get(dd.service_name(), None))
+            if not spec:
+                logger.warning('No ServiceSpec found for %s', dd)
+                continue
+            if not all([spec.api_user, spec.api_password]):
+                reason = 'api_user or api_password is not specified in ServiceSpec'
+                logger.warning(
+                    'Unable to add iSCSI gateway to the Dashboard for %s: %s', dd, reason)
+                continue
+            host = self._inventory_get_addr(dd.hostname)
+            service_url = 'http://{}:{}@{}:{}'.format(
+                spec.api_user, spec.api_password, host, spec.api_port or '5000')
+            gw = gateways.get(dd.hostname)
+            if not gw or gw['service_url'] != service_url:
+                try:
+                    logger.info('Adding iSCSI gateway %s to Dashboard', service_url)
+                    _, out, _ = self.mgr.check_mon_command({
+                        'prefix': 'dashboard iscsi-gateway-add',
+                        'service_url': service_url,
+                        'name': dd.hostname
+                    })
+                except MonCommandFailed as e:
+                    logger.warning(
+                        'Failed to add iSCSI gateway %s to the Dashboard: %s', service_url, e)
diff --git a/ceph/src/pybind/mgr/cephadm/services/monitoring.py b/ceph/src/pybind/mgr/cephadm/services/monitoring.py
new file mode 100644 (file)
index 0000000..b17a448
--- /dev/null
@@ -0,0 +1,235 @@
+import logging
+import os
+from typing import List, Any, Tuple, Dict
+
+from orchestrator import DaemonDescription
+from cephadm.services.cephadmservice import CephadmService
+from mgr_util import verify_tls, ServerConfigException, create_self_signed_cert
+
+logger = logging.getLogger(__name__)
+
+class GrafanaService(CephadmService):
+    DEFAULT_SERVICE_PORT = 3000
+
+    def create(self, daemon_id, host):
+        # type: (str, str) -> str
+        return self.mgr._create_daemon('grafana', daemon_id, host)
+
+    def generate_config(self):
+        # type: () -> Tuple[Dict[str, Any], List[str]]
+        deps = []  # type: List[str]
+
+        prom_services = []  # type: List[str]
+        for dd in self.mgr.cache.get_daemons_by_service('prometheus'):
+            prom_services.append(dd.hostname)
+            deps.append(dd.name())
+        grafana_data_sources = self.mgr.template.render(
+            'services/grafana/ceph-dashboard.yml.j2', {'hosts': prom_services})
+
+        cert = self.mgr.get_store('grafana_crt')
+        pkey = self.mgr.get_store('grafana_key')
+        if cert and pkey:
+            try:
+                verify_tls(cert, pkey)
+            except ServerConfigException as e:
+                logger.warning('Provided grafana TLS certificates invalid: %s', str(e))
+                cert, pkey = None, None
+        if not (cert and pkey):
+            cert, pkey = create_self_signed_cert('Ceph', 'cephadm')
+            self.mgr.set_store('grafana_crt', cert)
+            self.mgr.set_store('grafana_key', pkey)
+            self.mgr.check_mon_command({
+                'prefix': 'dashboard set-grafana-api-ssl-verify',
+                'value': 'false',
+            })
+
+        grafana_ini = self.mgr.template.render(
+            'services/grafana/grafana.ini.j2', {'http_port': self.DEFAULT_SERVICE_PORT})
+
+        config_file = {
+            'files': {
+                "grafana.ini": grafana_ini,
+                'provisioning/datasources/ceph-dashboard.yml': grafana_data_sources,
+                'certs/cert_file': '# generated by cephadm\n%s' % cert,
+                'certs/cert_key': '# generated by cephadm\n%s' % pkey,
+            }
+        }
+        return config_file, sorted(deps)
+
+    def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription:
+        # Use the least-created one as the active daemon
+        return daemon_descrs[-1]
+
+    def daemon_check_post(self, daemon_descrs: List[DaemonDescription]):
+        # TODO: signed cert
+        dd = self.get_active_daemon(daemon_descrs)
+        service_url = 'https://{}:{}'.format(
+            self._inventory_get_addr(dd.hostname), self.DEFAULT_SERVICE_PORT)
+        self._set_service_url_on_dashboard(
+            'Grafana',
+            'dashboard get-grafana-api-url',
+            'dashboard set-grafana-api-url',
+            service_url
+        )
+
+class AlertmanagerService(CephadmService):
+    DEFAULT_SERVICE_PORT = 9093
+
+    def create(self, daemon_id, host) -> str:
+        return self.mgr._create_daemon('alertmanager', daemon_id, host)
+
+    def generate_config(self):
+        # type: () -> Tuple[Dict[str, Any], List[str]]
+        deps = [] # type: List[str]
+
+        # dashboard(s)
+        dashboard_urls = []
+        mgr_map = self.mgr.get('mgr_map')
+        port = None
+        proto = None  # http: or https:
+        url = mgr_map.get('services', {}).get('dashboard', None)
+        if url:
+            dashboard_urls.append(url)
+            proto = url.split('/')[0]
+            port = url.split('/')[2].split(':')[1]
+        # scan all mgrs to generate deps and to get standbys too.
+        # assume that they are all on the same port as the active mgr.
+        for dd in self.mgr.cache.get_daemons_by_service('mgr'):
+            # we consider mgr a dep even if the dashboard is disabled
+            # in order to be consistent with _calc_daemon_deps().
+            deps.append(dd.name())
+            if not port:
+                continue
+            if dd.daemon_id == self.mgr.get_mgr_id():
+                continue
+            addr = self.mgr.inventory.get_addr(dd.hostname)
+            dashboard_urls.append('%s//%s:%s/' % (proto, addr.split(':')[0],
+                                                  port))
+
+        context = {
+            'dashboard_urls': dashboard_urls
+        }
+        yml = self.mgr.template.render('services/alertmanager/alertmanager.yml.j2', context)
+
+        peers = []
+        port = '9094'
+        for dd in self.mgr.cache.get_daemons_by_service('alertmanager'):
+            deps.append(dd.name())
+            addr = self.mgr.inventory.get_addr(dd.hostname)
+            peers.append(addr.split(':')[0] + ':' + port)
+        return {
+            "files": {
+                "alertmanager.yml": yml
+            },
+            "peers": peers
+        }, sorted(deps)
+
+    def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription:
+        # TODO: if there are multiple daemons, who is the active one?
+        return daemon_descrs[0]
+
+    def daemon_check_post(self, daemon_descrs: List[DaemonDescription]):
+        dd = self.get_active_daemon(daemon_descrs)
+        service_url = 'http://{}:{}'.format(self._inventory_get_addr(dd.hostname), self.DEFAULT_SERVICE_PORT)
+        self._set_service_url_on_dashboard(
+            'AlertManager',
+            'dashboard get-alertmanager-api-host',
+            'dashboard set-alertmanager-api-host',
+            service_url
+        )
+
+
+class PrometheusService(CephadmService):
+    DEFAULT_SERVICE_PORT = 9095
+
+    def create(self, daemon_id, host) -> str:
+        return self.mgr._create_daemon('prometheus', daemon_id, host)
+
+    def generate_config(self):
+        # type: () -> Tuple[Dict[str, Any], List[str]]
+        deps = []  # type: List[str]
+
+        # scrape mgrs
+        mgr_scrape_list = []
+        mgr_map = self.mgr.get('mgr_map')
+        port = None
+        t = mgr_map.get('services', {}).get('prometheus', None)
+        if t:
+            t = t.split('/')[2]
+            mgr_scrape_list.append(t)
+            port = '9283'
+            if ':' in t:
+                port = t.split(':')[1]
+        # scan all mgrs to generate deps and to get standbys too.
+        # assume that they are all on the same port as the active mgr.
+        for dd in self.mgr.cache.get_daemons_by_service('mgr'):
+            # we consider the mgr a dep even if the prometheus module is
+            # disabled in order to be consistent with _calc_daemon_deps().
+            deps.append(dd.name())
+            if not port:
+                continue
+            if dd.daemon_id == self.mgr.get_mgr_id():
+                continue
+            addr = self.mgr.inventory.get_addr(dd.hostname)
+            mgr_scrape_list.append(addr.split(':')[0] + ':' + port)
+
+        # scrape node exporters
+        nodes = []
+        for dd in self.mgr.cache.get_daemons_by_service('node-exporter'):
+            deps.append(dd.name())
+            addr = self.mgr.inventory.get_addr(dd.hostname)
+            nodes.append({
+                'hostname': dd.hostname,
+                'url': addr.split(':')[0] + ':9100'
+            })
+
+        # scrape alert managers
+        alertmgr_targets = []
+        for dd in self.mgr.cache.get_daemons_by_service('alertmanager'):
+            deps.append(dd.name())
+            addr = self.mgr.inventory.get_addr(dd.hostname)
+            alertmgr_targets.append("'{}:9093'".format(addr.split(':')[0]))
+
+        # generate the prometheus configuration
+        context = {
+            'alertmgr_targets': alertmgr_targets,
+            'mgr_scrape_list': mgr_scrape_list,
+            'nodes': nodes,
+        }
+        r = {
+            'files': {
+                'prometheus.yml':
+                    self.mgr.template.render(
+                        'services/prometheus/prometheus.yml.j2', context)
+            }
+        }
+
+        # include alerts, if present in the container
+        if os.path.exists(self.mgr.prometheus_alerts_path):
+            with open(self.mgr.prometheus_alerts_path, 'r', encoding='utf-8') as f:
+                alerts = f.read()
+            r['files']['/etc/prometheus/alerting/ceph_alerts.yml'] = alerts
+
+        return r, sorted(deps)
+
+    def get_active_daemon(self, daemon_descrs: List[DaemonDescription]) -> DaemonDescription:
+        # TODO: if there are multiple daemons, who is the active one?
+        return daemon_descrs[0]
+
+    def daemon_check_post(self, daemon_descrs: List[DaemonDescription]):
+        dd = self.get_active_daemon(daemon_descrs)
+        service_url = 'http://{}:{}'.format(
+            self._inventory_get_addr(dd.hostname), self.DEFAULT_SERVICE_PORT)
+        self._set_service_url_on_dashboard(
+            'Prometheus',
+            'dashboard get-prometheus-api-host',
+            'dashboard set-prometheus-api-host',
+            service_url
+        )
+
+class NodeExporterService(CephadmService):
+    def create(self, daemon_id, host) -> str:
+        return self.mgr._create_daemon('node-exporter', daemon_id, host)
+
+    def generate_config(self) -> Tuple[Dict[str, Any], List[str]]:
+        return {}, []
diff --git a/ceph/src/pybind/mgr/cephadm/services/nfs.py b/ceph/src/pybind/mgr/cephadm/services/nfs.py
new file mode 100644 (file)
index 0000000..4c7f791
--- /dev/null
@@ -0,0 +1,178 @@
+import logging
+
+import rados
+from typing import Dict, Optional, Tuple, Any, List, cast
+
+from ceph.deployment.service_spec import NFSServiceSpec
+
+import orchestrator
+from orchestrator import OrchestratorError
+
+import cephadm
+from .. import utils
+
+from .cephadmservice import CephadmService
+logger = logging.getLogger(__name__)
+
+
+class NFSService(CephadmService):
+    def _generate_nfs_config(self, daemon_type, daemon_id, host):
+        # type: (str, str, str) -> Tuple[Dict[str, Any], List[str]]
+        deps = []  # type: List[str]
+
+        # find the matching NFSServiceSpec
+        # TODO: find the spec and pass via _create_daemon instead ??
+        dd = orchestrator.DaemonDescription()
+        dd.daemon_type = daemon_type
+        dd.daemon_id = daemon_id
+        dd.hostname = host
+
+        service_name = dd.service_name()
+        specs = self.mgr.spec_store.find(service_name)
+
+        if not specs:
+            raise OrchestratorError('Cannot find service spec %s' % (service_name))
+        elif len(specs) > 1:
+            raise OrchestratorError('Found multiple service specs for %s' % (service_name))
+        else:
+            # cast to keep mypy happy
+            spec = cast(NFSServiceSpec, specs[0])
+
+        nfs = NFSGanesha(self.mgr, daemon_id, spec)
+
+        # create the keyring
+        entity = nfs.get_keyring_entity()
+        keyring = nfs.get_or_create_keyring(entity=entity)
+
+        # update the caps after get-or-create, the keyring might already exist!
+        nfs.update_keyring_caps(entity=entity)
+
+        # create the rados config object
+        nfs.create_rados_config_obj()
+
+        # generate the cephadm config
+        cephadm_config = nfs.get_cephadm_config()
+        cephadm_config.update(
+                self.mgr._get_config_and_keyring(
+                    daemon_type, daemon_id,
+                    keyring=keyring))
+
+        return cephadm_config, deps
+
+    def config(self, spec):
+        self.mgr._check_pool_exists(spec.pool, spec.service_name())
+        logger.info('Saving service %s spec with placement %s' % (
+            spec.service_name(), spec.placement.pretty_str()))
+        self.mgr.spec_store.save(spec)
+
+    def create(self, daemon_id, host, spec):
+        logger.info('Create daemon %s on host %s with spec %s' % (
+            daemon_id, host, spec))
+        return self.mgr._create_daemon('nfs', daemon_id, host)
+
+
+class NFSGanesha(object):
+    def __init__(self,
+                 mgr,
+                 daemon_id,
+                 spec):
+        # type: (cephadm.CephadmOrchestrator, str, NFSServiceSpec) -> None
+        assert spec.service_id and daemon_id.startswith(spec.service_id)
+        self.mgr = mgr
+        self.daemon_id = daemon_id
+        self.spec = spec
+
+    def get_daemon_name(self):
+        # type: () -> str
+        return '%s.%s' % (self.spec.service_type, self.daemon_id)
+
+    def get_rados_user(self):
+        # type: () -> str
+        return '%s.%s' % (self.spec.service_type, self.daemon_id)
+
+    def get_keyring_entity(self):
+        # type: () -> str
+        return utils.name_to_config_section(self.get_rados_user())
+
+    def get_or_create_keyring(self, entity=None):
+        # type: (Optional[str]) -> str
+        if not entity:
+            entity = self.get_keyring_entity()
+
+        logger.info('Create keyring: %s' % entity)
+        ret, keyring, err = self.mgr.mon_command({
+            'prefix': 'auth get-or-create',
+            'entity': entity,
+        })
+
+        if ret != 0:
+            raise OrchestratorError(
+                    'Unable to create keyring %s: %s %s' \
+                            % (entity, ret, err))
+        return keyring
+
+    def update_keyring_caps(self, entity=None):
+        # type: (Optional[str]) -> None
+        if not entity:
+            entity = self.get_keyring_entity()
+
+        osd_caps='allow rw pool=%s' % (self.spec.pool)
+        if self.spec.namespace:
+            osd_caps='%s namespace=%s' % (osd_caps, self.spec.namespace)
+
+        logger.info('Updating keyring caps: %s' % entity)
+        ret, out, err = self.mgr.mon_command({
+            'prefix': 'auth caps',
+            'entity': entity,
+            'caps': ['mon', 'allow r',
+                     'osd', osd_caps],
+        })
+
+        if ret != 0:
+            raise OrchestratorError(
+                    'Unable to update keyring caps %s: %s %s' \
+                            % (entity, ret, err))
+
+    def create_rados_config_obj(self, clobber=False):
+        # type: (Optional[bool]) -> None
+        obj = self.spec.rados_config_name()
+
+        with self.mgr.rados.open_ioctx(self.spec.pool) as ioctx:
+            if self.spec.namespace:
+                ioctx.set_namespace(self.spec.namespace)
+
+            exists = True
+            try:
+                ioctx.stat(obj)
+            except rados.ObjectNotFound as e:
+                exists = False
+
+            if exists and not clobber:
+                # Assume an existing config
+                logger.info('Rados config object exists: %s' % obj)
+            else:
+                # Create an empty config object
+                logger.info('Creating rados config object: %s' % obj)
+                ioctx.write_full(obj, ''.encode('utf-8'))
+
+    def get_ganesha_conf(self):
+        # type: () -> str
+        context = dict(user=self.get_rados_user(),
+                       nodeid=self.get_daemon_name(),
+                       pool=self.spec.pool,
+                       namespace=self.spec.namespace if self.spec.namespace else '',
+                       url=self.spec.rados_config_location())
+        return self.mgr.template.render('services/nfs/ganesha.conf.j2', context)
+
+    def get_cephadm_config(self):
+        # type: () -> Dict
+        config = {'pool' : self.spec.pool} # type: Dict
+        if self.spec.namespace:
+            config['namespace'] = self.spec.namespace
+        config['userid'] = self.get_rados_user()
+        config['extra_args'] = ['-N', 'NIV_EVENT']
+        config['files'] = {
+            'ganesha.conf' : self.get_ganesha_conf(),
+        }
+        logger.debug('Generated cephadm config-json: %s' % config)
+        return config
diff --git a/ceph/src/pybind/mgr/cephadm/services/osd.py b/ceph/src/pybind/mgr/cephadm/services/osd.py
new file mode 100644 (file)
index 0000000..1e6db9b
--- /dev/null
@@ -0,0 +1,430 @@
+import datetime
+import json
+import logging
+from typing import List, Dict, Any, Set, Union, Tuple, cast, Optional
+
+from ceph.deployment import translate
+from ceph.deployment.drive_group import DriveGroupSpec
+from ceph.deployment.drive_selection import DriveSelection
+
+import orchestrator
+from orchestrator import OrchestratorError
+from mgr_module import MonCommandFailed
+
+from cephadm.services.cephadmservice import CephadmService
+
+
+logger = logging.getLogger(__name__)
+
+
+class OSDService(CephadmService):
+    def create(self, drive_group: DriveGroupSpec) -> str:
+        logger.debug(f"Processing DriveGroup {drive_group}")
+        ret = []
+        drive_group.osd_id_claims = self.find_destroyed_osds()
+        logger.info(f"Found osd claims for drivegroup {drive_group.service_id} -> {drive_group.osd_id_claims}")
+        for host, drive_selection in self.prepare_drivegroup(drive_group):
+            logger.info('Applying %s on host %s...' % (drive_group.service_id, host))
+            cmd = self.driveselection_to_ceph_volume(drive_group, drive_selection,
+                                                     drive_group.osd_id_claims.get(host, []))
+            if not cmd:
+                logger.debug("No data_devices, skipping DriveGroup: {}".format(drive_group.service_id))
+                continue
+            # env_vars = [f"CEPH_VOLUME_OSDSPEC_AFFINITY={drive_group.service_id}"]
+            # disable this until https://github.com/ceph/ceph/pull/34835 is merged
+            env_vars: List[str] = []
+            ret_msg = self.create_single_host(
+                host, cmd, replace_osd_ids=drive_group.osd_id_claims.get(host, []), env_vars=env_vars
+            )
+            ret.append(ret_msg)
+        return ", ".join(ret)
+        
+    def create_single_host(self, host: str, cmd: str, replace_osd_ids=None, env_vars: Optional[List[str]] = None) -> str:
+        out, err, code = self._run_ceph_volume_command(host, cmd, env_vars=env_vars)
+
+        if code == 1 and ', it is already prepared' in '\n'.join(err):
+            # HACK: when we create against an existing LV, ceph-volume
+            # returns an error and the above message.  To make this
+            # command idempotent, tolerate this "error" and continue.
+            logger.debug('the device was already prepared; continuing')
+            code = 0
+        if code:
+            raise RuntimeError(
+                'cephadm exited with an error code: %d, stderr:%s' % (
+                    code, '\n'.join(err)))
+
+        # check result
+        out, err, code = self.mgr._run_cephadm(
+            host, 'osd', 'ceph-volume',
+            [
+                '--',
+                'lvm', 'list',
+                '--format', 'json',
+            ])
+        before_osd_uuid_map = self.mgr.get_osd_uuid_map(only_up=True)
+        osds_elems = json.loads('\n'.join(out))
+        fsid = self.mgr._cluster_fsid
+        osd_uuid_map = self.mgr.get_osd_uuid_map()
+        created = []
+        for osd_id, osds in osds_elems.items():
+            for osd in osds:
+                if osd['tags']['ceph.cluster_fsid'] != fsid:
+                    logger.debug('mismatched fsid, skipping %s' % osd)
+                    continue
+                if osd_id in before_osd_uuid_map and osd_id not in replace_osd_ids:
+                    # if it exists but is part of the replacement operation, don't skip
+                    continue
+                if osd_id not in osd_uuid_map:
+                    logger.debug('osd id {} does not exist in cluster'.format(osd_id))
+                    continue
+                if osd_uuid_map.get(osd_id) != osd['tags']['ceph.osd_fsid']:
+                    logger.debug('mismatched osd uuid (cluster has %s, osd '
+                                   'has %s)' % (
+                                       osd_uuid_map.get(osd_id),
+                                       osd['tags']['ceph.osd_fsid']))
+                    continue
+
+                created.append(osd_id)
+                self.mgr._create_daemon(
+                    'osd', osd_id, host,
+                    osd_uuid_map=osd_uuid_map)
+
+        if created:
+            self.mgr.cache.invalidate_host_devices(host)
+            return "Created osd(s) %s on host '%s'" % (','.join(created), host)
+        else:
+            return "Created no osd(s) on host %s; already created?" % host
+
+    def prepare_drivegroup(self, drive_group: DriveGroupSpec) -> List[Tuple[str, DriveSelection]]:
+        # 1) use fn_filter to determine matching_hosts
+        matching_hosts = drive_group.placement.filter_matching_hosts(self.mgr._get_hosts)
+        # 2) Map the inventory to the InventoryHost object
+        host_ds_map = []
+
+        # set osd_id_claims
+
+        def _find_inv_for_host(hostname: str, inventory_dict: dict):
+            # This is stupid and needs to be loaded with the host
+            for _host, _inventory in inventory_dict.items():
+                if _host == hostname:
+                    return _inventory
+            raise OrchestratorError("No inventory found for host: {}".format(hostname))
+
+        # 3) iterate over matching_host and call DriveSelection
+        logger.debug(f"Checking matching hosts -> {matching_hosts}")
+        for host in matching_hosts:
+            inventory_for_host = _find_inv_for_host(host, self.mgr.cache.devices)
+            logger.debug(f"Found inventory for host {inventory_for_host}")
+            drive_selection = DriveSelection(drive_group, inventory_for_host)
+            logger.debug(f"Found drive selection {drive_selection}")
+            host_ds_map.append((host, drive_selection))
+        return host_ds_map
+
+    def driveselection_to_ceph_volume(self, drive_group: DriveGroupSpec,
+                                      drive_selection: DriveSelection,
+                                      osd_id_claims: Optional[List[str]] = None,
+                                      preview: bool = False) -> Optional[str]:
+        logger.debug(f"Translating DriveGroup <{drive_group}> to ceph-volume command")
+        cmd: Optional[str] = translate.to_ceph_volume(drive_group, drive_selection,
+                                                      osd_id_claims, preview=preview).run()
+        logger.debug(f"Resulting ceph-volume cmd: {cmd}")
+        return cmd
+
+    def get_previews(self, host) -> List[Dict[str, Any]]:
+        # Find OSDSpecs that match host.
+        osdspecs = self.mgr.resolve_osdspecs_for_host(host)
+        return self.generate_previews(osdspecs, host)
+
+    def generate_previews(self, osdspecs: List[DriveGroupSpec], for_host: str) -> List[Dict[str, Any]]:
+        """
+
+        The return should look like this:
+
+        [
+          {'data': {<metadata>},
+           'osdspec': <name of osdspec>,
+           'host': <name of host>
+           },
+
+           {'data': ...,
+            'osdspec': ..,
+            'host': ..
+           }
+        ]
+
+        Note: One host can have multiple previews based on its assigned OSDSpecs.
+        """
+        self.mgr.log.debug(f"Generating OSDSpec previews for {osdspecs}")
+        ret_all: List[Dict[str, Any]] = []
+        if not osdspecs:
+            return ret_all
+        for osdspec in osdspecs:
+
+            # populate osd_id_claims
+            osdspec.osd_id_claims = self.find_destroyed_osds()
+
+            # prepare driveselection
+            for host, ds in self.prepare_drivegroup(osdspec):
+                if host != for_host:
+                    continue
+
+                # driveselection for host
+                cmd = self.driveselection_to_ceph_volume(osdspec,
+                                                         ds,
+                                                         osdspec.osd_id_claims.get(host, []),
+                                                         preview=True)
+                if not cmd:
+                    logger.debug("No data_devices, skipping DriveGroup: {}".format(
+                        osdspec.service_name()))
+                    continue
+
+                # get preview data from ceph-volume
+                out, err, code = self._run_ceph_volume_command(host, cmd)
+                if out:
+                    concat_out: Dict[str, Any] = json.loads(" ".join(out))
+                    ret_all.append({'data': concat_out,
+                                    'osdspec': osdspec.service_id,
+                                    'host': host})
+        return ret_all
+
+    def _run_ceph_volume_command(self, host: str,
+                                 cmd: str, env_vars: Optional[List[str]] = None
+                                 ) -> Tuple[List[str], List[str], int]:
+        self.mgr.inventory.assert_host(host)
+
+        # get bootstrap key
+        ret, keyring, err = self.mgr.check_mon_command({
+            'prefix': 'auth get',
+            'entity': 'client.bootstrap-osd',
+        })
+
+        # generate config
+        ret, config, err = self.mgr.check_mon_command({
+            "prefix": "config generate-minimal-conf",
+        })
+
+        j = json.dumps({
+            'config': config,
+            'keyring': keyring,
+        })
+
+        split_cmd = cmd.split(' ')
+        _cmd = ['--config-json', '-', '--']
+        _cmd.extend(split_cmd)
+        out, err, code = self.mgr._run_cephadm(
+            host, 'osd', 'ceph-volume',
+            _cmd,
+            env_vars=env_vars,
+            stdin=j,
+            error_ok=True)
+        return out, err, code
+
+    def get_osdspec_affinity(self, osd_id: str) -> str:
+        return self.mgr.get('osd_metadata').get(osd_id, {}).get('osdspec_affinity', '')
+
+    def find_destroyed_osds(self) -> Dict[str, List[str]]:
+        osd_host_map: Dict[str, List[str]] = dict()
+        try:
+            ret, out, err = self.mgr.check_mon_command({
+                'prefix': 'osd tree',
+                'states': ['destroyed'],
+                'format': 'json'
+            })
+        except MonCommandFailed as e:
+            logger.exception('osd tree failed')
+            raise OrchestratorError(str(e))
+        try:
+            tree = json.loads(out)
+        except json.decoder.JSONDecodeError:
+            logger.exception(f"Could not decode json -> {out}")
+            return osd_host_map
+
+        nodes = tree.get('nodes', {})
+        for node in nodes:
+            if node.get('type') == 'host':
+                osd_host_map.update(
+                    {node.get('name'): [str(_id) for _id in node.get('children', list())]}
+                )
+        self.mgr.log.info(
+            f"Found osd claims -> {osd_host_map}")
+        return osd_host_map
+
+
+class OSDRemoval(object):
+    def __init__(self,
+                 osd_id: str,
+                 replace: bool,
+                 force: bool,
+                 nodename: str,
+                 fullname: str,
+                 start_at: datetime.datetime,
+                 pg_count: int):
+        self.osd_id = osd_id
+        self.replace = replace
+        self.force = force
+        self.nodename = nodename
+        self.fullname = fullname
+        self.started_at = start_at
+        self.pg_count = pg_count
+
+    # needed due to changing 'started_at' attr
+    def __eq__(self, other):
+        return self.osd_id == other.osd_id
+
+    def __hash__(self):
+        return hash(self.osd_id)
+
+    def __repr__(self):
+        return ('<OSDRemoval>(osd_id={}, replace={}, force={}, nodename={}'
+                ', fullname={}, started_at={}, pg_count={})').format(
+            self.osd_id, self.replace, self.force, self.nodename,
+            self.fullname, self.started_at, self.pg_count)
+
+    @property
+    def pg_count_str(self) -> str:
+        return 'n/a' if self.pg_count < 0 else str(self.pg_count)
+
+
+class RemoveUtil(object):
+    def __init__(self, mgr):
+        self.mgr = mgr
+        self.to_remove_osds: Set[OSDRemoval] = set()
+        self.osd_removal_report: Dict[OSDRemoval, Union[int,str]] = dict()
+
+    @property
+    def report(self) -> Set[OSDRemoval]:
+        return self.to_remove_osds.copy()
+
+    def queue_osds_for_removal(self, osds: Set[OSDRemoval]):
+        self.to_remove_osds.update(osds)
+
+    def _remove_osds_bg(self) -> None:
+        """
+        Performs actions in the _serve() loop to remove an OSD
+        when criteria is met.
+        """
+        logger.debug(
+            f"{len(self.to_remove_osds)} OSDs are scheduled for removal: {list(self.to_remove_osds)}")
+        self._update_osd_removal_status()
+        remove_osds: set = self.to_remove_osds.copy()
+        for osd in remove_osds:
+            if not osd.force:
+                self.drain_osd(osd.osd_id)
+                # skip criteria
+                if not self.is_empty(osd.osd_id):
+                    logger.info(f"OSD <{osd.osd_id}> is not empty yet. Waiting a bit more")
+                    continue
+
+            if not self.ok_to_destroy([osd.osd_id]):
+                logger.info(
+                    f"OSD <{osd.osd_id}> is not safe-to-destroy yet. Waiting a bit more")
+                continue
+
+            # abort criteria
+            if not self.down_osd([osd.osd_id]):
+                # also remove it from the remove_osd list and set a health_check warning?
+                raise orchestrator.OrchestratorError(
+                    f"Could not set OSD <{osd.osd_id}> to 'down'")
+
+            if osd.replace:
+                if not self.destroy_osd(osd.osd_id):
+                    # also remove it from the remove_osd list and set a health_check warning?
+                    raise orchestrator.OrchestratorError(
+                        f"Could not destroy OSD <{osd.osd_id}>")
+            else:
+                if not self.purge_osd(osd.osd_id):
+                    # also remove it from the remove_osd list and set a health_check warning?
+                    raise orchestrator.OrchestratorError(f"Could not purge OSD <{osd.osd_id}>")
+
+            self.mgr._remove_daemon(osd.fullname, osd.nodename)
+            logger.info(f"Successfully removed OSD <{osd.osd_id}> on {osd.nodename}")
+            logger.debug(f"Removing {osd.osd_id} from the queue.")
+            self.to_remove_osds.remove(osd)
+
+    def _update_osd_removal_status(self):
+        """
+        Generate a OSD report that can be printed to the CLI
+        """
+        logger.debug("Update OSD removal status")
+        for osd in self.to_remove_osds:
+            osd.pg_count = self.get_pg_count(str(osd.osd_id))
+        logger.debug(f"OSD removal status: {self.to_remove_osds}")
+
+    def drain_osd(self, osd_id: str) -> bool:
+        """
+        Uses `osd_support` module to schedule a drain operation of an OSD
+        """
+        cmd_args = {
+            'prefix': 'osd drain',
+            'osd_ids': [int(osd_id)]
+        }
+        return self._run_mon_cmd(cmd_args)
+
+    def get_pg_count(self, osd_id: str) -> int:
+        """ Queries for PG count of an OSD """
+        self.mgr.log.debug("Querying for drain status")
+        ret, out, err = self.mgr.mon_command({
+            'prefix': 'osd drain status',
+        })
+        if ret != 0:
+            self.mgr.log.error(f"Calling osd drain status failed with {err}")
+            raise OrchestratorError("Could not query `osd drain status`")
+        out = json.loads(out)
+        for o in out:
+            if str(o.get('osd_id', '')) == str(osd_id):
+                return int(o.get('pgs', -1))
+        return -1
+
+    def is_empty(self, osd_id: str) -> bool:
+        """ Checks if an OSD is empty """
+        return self.get_pg_count(osd_id) == 0
+
+    def ok_to_destroy(self, osd_ids: List[int]) -> bool:
+        """ Queries the safe-to-destroy flag for OSDs """
+        cmd_args = {'prefix': 'osd safe-to-destroy',
+                    'ids': osd_ids}
+        return self._run_mon_cmd(cmd_args)
+
+    def destroy_osd(self, osd_id: int) -> bool:
+        """ Destroys an OSD (forcefully) """
+        cmd_args = {'prefix': 'osd destroy-actual',
+                    'id': int(osd_id),
+                    'yes_i_really_mean_it': True}
+        return self._run_mon_cmd(cmd_args)
+
+    def down_osd(self, osd_ids: List[int]) -> bool:
+        """ Sets `out` flag to OSDs """
+        cmd_args = {
+            'prefix': 'osd down',
+            'ids': osd_ids,
+        }
+        return self._run_mon_cmd(cmd_args)
+
+    def purge_osd(self, osd_id: int) -> bool:
+        """ Purges an OSD from the cluster (forcefully) """
+        cmd_args = {
+            'prefix': 'osd purge-actual',
+            'id': int(osd_id),
+            'yes_i_really_mean_it': True
+        }
+        return self._run_mon_cmd(cmd_args)
+
+    def out_osd(self, osd_ids: List[int]) -> bool:
+        """ Sets `down` flag to OSDs """
+        cmd_args = {
+            'prefix': 'osd out',
+            'ids': osd_ids,
+        }
+        return self._run_mon_cmd(cmd_args)
+
+    def _run_mon_cmd(self, cmd_args: dict) -> bool:
+        """
+        Generic command to run mon_command and evaluate/log the results
+        """
+        ret, out, err = self.mgr.mon_command(cmd_args)
+        if ret != 0:
+            self.mgr.log.debug(f"ran {cmd_args} with mon_command")
+            self.mgr.log.error(f"cmd: {cmd_args.get('prefix')} failed with: {err}. (errno:{ret})")
+            return False
+        self.mgr.log.debug(f"cmd: {cmd_args.get('prefix')} returns: {out}")
+        return True
diff --git a/ceph/src/pybind/mgr/cephadm/template.py b/ceph/src/pybind/mgr/cephadm/template.py
new file mode 100644 (file)
index 0000000..f8e2aff
--- /dev/null
@@ -0,0 +1,73 @@
+import copy
+from typing import Optional
+
+from jinja2 import Environment, PackageLoader, select_autoescape, StrictUndefined
+from jinja2 import exceptions as j2_exceptions
+
+
+class TemplateError(Exception):
+    pass
+
+
+class UndefinedError(TemplateError):
+    pass
+
+
+class TemplateNotFoundError(TemplateError):
+    pass
+
+
+class TemplateEngine:
+    def render(self, name: str, context: Optional[dict] = None) -> str:
+        raise NotImplementedError()
+
+
+class Jinja2Engine(TemplateEngine):
+    def __init__(self):
+        self.env = Environment(
+            loader=PackageLoader('cephadm', 'templates'),
+            autoescape=select_autoescape(['html', 'xml']),
+            trim_blocks=True,
+            lstrip_blocks=True,
+            undefined=StrictUndefined
+        )
+
+    def render(self, name: str, context: Optional[dict] = None) -> str:
+        try:
+            template = self.env.get_template(name)
+            if context is None:
+                return template.render()
+            return template.render(context)
+        except j2_exceptions.UndefinedError as e:
+            raise UndefinedError(e.message)
+        except j2_exceptions.TemplateNotFound as e:
+            raise TemplateNotFoundError(e.message)
+
+
+class TemplateMgr:
+    def __init__(self):
+        self.engine = Jinja2Engine()
+        self.base_context = {
+            'cephadm_managed': 'This file is generated by cephadm.'
+        }
+
+    def render(self, name: str, context: Optional[dict] = None, managed_context=True) -> str:
+        """Render a string from a template with context.
+
+        :param name: template name. e.g. services/nfs/ganesha.conf.j2
+        :type name: str
+        :param context: a dictionary that contains values to be used in the template, defaults
+            to None
+        :type context: Optional[dict], optional
+        :param managed_context: to inject default context like managed header or not, defaults
+            to True
+        :type managed_context: bool, optional
+        :return: the templated string
+        :rtype: str
+        """
+        ctx = {}
+        if managed_context:
+            ctx = copy.deepcopy(self.base_context)
+        if context is not None:
+            ctx = {**ctx, **context}
+        return self.engine.render(name, ctx)
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/alertmanager/alertmanager.yml.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/alertmanager/alertmanager.yml.j2
new file mode 100644 (file)
index 0000000..69d5e73
--- /dev/null
@@ -0,0 +1,18 @@
+# {{ cephadm_managed }}
+# See https://prometheus.io/docs/alerting/configuration/ for documentation.
+
+global:
+  resolve_timeout: 5m
+
+route:
+  group_by: ['alertname']
+  group_wait: 10s
+  group_interval: 10s
+  repeat_interval: 1h
+  receiver: 'ceph-dashboard'
+receivers:
+- name: 'ceph-dashboard'
+  webhook_configs:
+{% for url in dashboard_urls %}
+  - url: '{{ url }}api/prometheus_receiver'
+{% endfor %}
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/grafana/ceph-dashboard.yml.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/grafana/ceph-dashboard.yml.j2
new file mode 100644 (file)
index 0000000..c539cfc
--- /dev/null
@@ -0,0 +1,18 @@
+# {{ cephadm_managed }}
+deleteDatasources:
+{% for host in hosts %} 
+  - name: 'Dashboard{{ loop.index }}'
+    orgId: 1
+{% endfor %}
+
+datasources:
+{% for host in hosts %} 
+  - name: 'Dashboard{{ loop.index }}'
+    type: 'prometheus'
+    access: 'proxy'
+    orgId: 1
+    url: 'http://{{ host }}:9095'
+    basicAuth: false
+    isDefault: {{ 'true' if loop.first else 'false' }}
+    editable: false
+{% endfor %}
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/grafana/grafana.ini.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/grafana/grafana.ini.j2
new file mode 100644 (file)
index 0000000..51aff3f
--- /dev/null
@@ -0,0 +1,17 @@
+# {{ cephadm_managed }}
+[users]
+  default_theme = light
+[auth.anonymous]
+  enabled = true
+  org_name = 'Main Org.'
+  org_role = 'Viewer'
+[server]
+  domain = 'bootstrap.storage.lab'
+  protocol = https
+  cert_file = /etc/grafana/certs/cert_file
+  cert_key = /etc/grafana/certs/cert_key
+  http_port = {{ http_port }}
+[security]
+  admin_user = admin
+  admin_password = admin
+  allow_embedding = true
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/iscsi/iscsi-gateway.cfg.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/iscsi/iscsi-gateway.cfg.j2
new file mode 100644 (file)
index 0000000..2bc1345
--- /dev/null
@@ -0,0 +1,13 @@
+# {{ cephadm_managed }}
+[config]
+cluster_client_name = {{ client_name }}
+pool = {{ spec.pool }}
+trusted_ip_list = {{ spec.trusted_ip_list|default("''", true) }}
+minimum_gateways = 1
+api_port = {{ spec.api_port|default("''", true) }}
+api_user = {{ spec.api_user|default("''", true) }}
+api_password = {{ spec.api_password|default("''", true) }}
+api_secure = {{ spec.api_secure|default('False', true) }}
+log_to_stderr = True
+log_to_stderr_prefix = debug
+log_to_file = False
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/nfs/ganesha.conf.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/nfs/ganesha.conf.j2
new file mode 100644 (file)
index 0000000..381dbb8
--- /dev/null
@@ -0,0 +1,36 @@
+# {{ cephadm_managed }}
+NFS_CORE_PARAM {
+        Enable_NLM = false;
+        Enable_RQUOTA = false;
+        Protocols = 4;
+}
+
+MDCACHE {
+        Dir_Chunk = 0;
+        NParts = 1;
+        Cache_Size = 1;
+}
+
+EXPORT_DEFAULTS {
+        Attr_Expiration_Time = 0;
+}
+
+NFSv4 {
+        Delegations = false;
+        RecoveryBackend = 'rados_cluster';
+        Minor_Versions = 1, 2;
+}
+
+RADOS_KV {
+        UserId = "{{ user }}";
+        nodeid = "{{ nodeid}}";
+        pool = "{{ pool }}";
+        namespace = "{{ namespace }}";
+}
+
+RADOS_URLS {
+        UserId = "{{ user }}";
+        watch_url = "{{ url }}";
+}
+
+%url    {{ url }}
diff --git a/ceph/src/pybind/mgr/cephadm/templates/services/prometheus/prometheus.yml.j2 b/ceph/src/pybind/mgr/cephadm/templates/services/prometheus/prometheus.yml.j2
new file mode 100644 (file)
index 0000000..0ea8101
--- /dev/null
@@ -0,0 +1,32 @@
+# {{ cephadm_managed }}
+global:
+  scrape_interval: 10s
+  evaluation_interval: 10s
+rule_files:
+  - /etc/prometheus/alerting/*
+{% if alertmgr_targets %}
+alerting:
+  alertmanagers:
+    - scheme: http
+      path_prefix: /alertmanager
+      static_configs:
+        - targets: [{{ alertmgr_targets|join(', ') }}]
+{% endif %}
+scrape_configs:
+  - job_name: 'ceph'
+    static_configs:
+    - targets:
+{% for mgr in mgr_scrape_list %}
+      - '{{ mgr }}'
+{% endfor %}
+      labels:
+        instance: 'ceph_cluster'
+{% if nodes %}
+  - job_name: 'node'
+    static_configs:
+{% for node in nodes %}
+    - targets: ['{{ node.url }}']
+      labels:
+        instance: '{{ node.hostname }}'
+{% endfor %}
+{% endif %}
index f4e10d7d0e6c3272fdef59e544817375c46ee623..42bc8a25e1ef75e3fff4b044b743f41da3a1b52d 100644 (file)
@@ -11,23 +11,6 @@ from orchestrator import raise_if_exception, Completion
 from tests import mock
 
 
 from tests import mock
 
 
-def set_store(self, k, v):
-    if v is None:
-        del self._store[k]
-    else:
-        self._store[k] = v
-
-
-def get_store(self, k):
-    return self._store.get(k, None)
-
-
-def get_store_prefix(self, prefix):
-    return {
-        k: v for k, v in self._store.items()
-        if k.startswith(prefix)
-    }
-
 
 def get_ceph_option(_, key):
     return __file__
 
 def get_ceph_option(_, key):
     return __file__
@@ -52,30 +35,13 @@ def mon_command(*args, **kwargs):
 @pytest.yield_fixture()
 def cephadm_module():
     with mock.patch("cephadm.module.CephadmOrchestrator.get_ceph_option", get_ceph_option),\
 @pytest.yield_fixture()
 def cephadm_module():
     with mock.patch("cephadm.module.CephadmOrchestrator.get_ceph_option", get_ceph_option),\
-            mock.patch("cephadm.module.CephadmOrchestrator._configure_logging", lambda *args: None),\
             mock.patch("cephadm.module.CephadmOrchestrator.remote"),\
             mock.patch("cephadm.module.CephadmOrchestrator.remote"),\
-            mock.patch("cephadm.module.CephadmOrchestrator.set_store", set_store), \
-            mock.patch("cephadm.module.CephadmOrchestrator.get_store", get_store),\
-            mock.patch("cephadm.module.HostCache.save_host"), \
-            mock.patch("cephadm.module.HostCache.rm_host"), \
             mock.patch("cephadm.module.CephadmOrchestrator.send_command"), \
             mock.patch("cephadm.module.CephadmOrchestrator.send_command"), \
-            mock.patch("cephadm.module.CephadmOrchestrator.mon_command", mon_command), \
-            mock.patch("cephadm.module.CephadmOrchestrator.get_store_prefix", get_store_prefix):
+            mock.patch("cephadm.module.CephadmOrchestrator.mon_command", mon_command):
 
 
-        CephadmOrchestrator._register_commands('')
-        CephadmOrchestrator._register_options('')
         m = CephadmOrchestrator.__new__ (CephadmOrchestrator)
         m = CephadmOrchestrator.__new__ (CephadmOrchestrator)
-        m._root_logger = mock.MagicMock()
-        m._store = {
-            'ssh_config': '',
-            'ssh_identity_key': '',
-            'ssh_identity_pub': '',
-            'inventory': {},
-            'upgrade_state': None,
-        }
         m.__init__('cephadm', 0, 0)
         m._cluster_fsid = "fsid"
         m.__init__('cephadm', 0, 0)
         m._cluster_fsid = "fsid"
-        m.mode = "root"
         yield m
 
 
         yield m
 
 
index f13680cab26441c0da6b8ef1c8ffae586d12f530..f64d8a0ce904d9ae074aa722f2f321c16df4ec6b 100644 (file)
@@ -5,7 +5,7 @@ from contextlib import contextmanager
 import pytest
 
 from ceph.deployment.drive_group import DriveGroupSpec, DeviceSelection
 import pytest
 
 from ceph.deployment.drive_group import DriveGroupSpec, DeviceSelection
-from cephadm.osd import OSDRemoval
+from cephadm.services.osd import OSDRemoval
 
 try:
     from typing import Any, List
 
 try:
     from typing import Any, List
@@ -15,7 +15,7 @@ except ImportError:
 from execnet.gateway_bootstrap import HostNotFound
 
 from ceph.deployment.service_spec import ServiceSpec, PlacementSpec, RGWSpec, \
 from execnet.gateway_bootstrap import HostNotFound
 
 from ceph.deployment.service_spec import ServiceSpec, PlacementSpec, RGWSpec, \
-    NFSServiceSpec, IscsiServiceSpec
+    NFSServiceSpec, IscsiServiceSpec, HostPlacementSpec
 from ceph.deployment.drive_selection.selector import DriveSelection
 from ceph.deployment.inventory import Devices, Device
 from orchestrator import ServiceDescription, DaemonDescription, InventoryHost, \
 from ceph.deployment.drive_selection.selector import DriveSelection
 from ceph.deployment.inventory import Devices, Device
 from orchestrator import ServiceDescription, DaemonDescription, InventoryHost, \
@@ -242,25 +242,52 @@ class TestCephadm(object):
         }
         json_out = json.dumps(dict_out)
         _mon_cmd.return_value = (0, json_out, '')
         }
         json_out = json.dumps(dict_out)
         _mon_cmd.return_value = (0, json_out, '')
-        out = cephadm_module.find_destroyed_osds()
+        out = cephadm_module.osd_service.find_destroyed_osds()
         assert out == {'host1': ['0']}
 
     @mock.patch("cephadm.module.CephadmOrchestrator.mon_command")
     def test_find_destroyed_osds_cmd_failure(self, _mon_cmd, cephadm_module):
         _mon_cmd.return_value = (1, "", "fail_msg")
         with pytest.raises(OrchestratorError):
         assert out == {'host1': ['0']}
 
     @mock.patch("cephadm.module.CephadmOrchestrator.mon_command")
     def test_find_destroyed_osds_cmd_failure(self, _mon_cmd, cephadm_module):
         _mon_cmd.return_value = (1, "", "fail_msg")
         with pytest.raises(OrchestratorError):
-            out = cephadm_module.find_destroyed_osds()
+            out = cephadm_module.osd_service.find_destroyed_osds()
 
 
-    @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
-    @mock.patch("cephadm.module.SpecStore.save")
-    def test_apply_osd_save(self, _save_spec, cephadm_module):
+    @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm")
+    def test_apply_osd_save(self, _run_cephadm, cephadm_module: CephadmOrchestrator):
+        _run_cephadm.return_value = ('{}', '', 0)
         with self._with_host(cephadm_module, 'test'):
         with self._with_host(cephadm_module, 'test'):
-            json_spec = {'service_type': 'osd', 'host_pattern': 'test', 'service_id': 'foo', 'data_devices': {'all': True}}
-            spec = ServiceSpec.from_json(json_spec)
-            assert isinstance(spec, DriveGroupSpec)
+
+            spec = DriveGroupSpec(
+                service_id='foo',
+                placement=PlacementSpec(
+                    host_pattern='*',
+                ),
+                data_devices=DeviceSelection(
+                    all=True
+                )
+            )
+
             c = cephadm_module.apply_drivegroups([spec])
             assert wait(cephadm_module, c) == ['Scheduled osd.foo update...']
             c = cephadm_module.apply_drivegroups([spec])
             assert wait(cephadm_module, c) == ['Scheduled osd.foo update...']
-            _save_spec.assert_called_with(spec)
+
+            inventory = Devices([
+                Device(
+                    '/dev/sdb',
+                    available=True
+                ),
+            ])
+
+            cephadm_module.cache.update_host_devices_networks('test', inventory.devices, {})
+
+            _run_cephadm.return_value = (['{}'], '', 0)
+
+            assert cephadm_module._apply_all_services() == False
+
+            _run_cephadm.assert_any_call(
+                'test', 'osd', 'ceph-volume',
+                ['--config-json', '-', '--', 'lvm', 'prepare', '--bluestore', '--data', '/dev/sdb', '--no-systemd'],
+                env_vars=[], error_ok=True, stdin='{"config": "", "keyring": ""}')
+            _run_cephadm.assert_called_with('test', 'osd', 'ceph-volume', ['--', 'lvm', 'list', '--format', 'json'])
+
 
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
     @mock.patch("cephadm.module.SpecStore.save")
 
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
     @mock.patch("cephadm.module.SpecStore.save")
@@ -285,7 +312,7 @@ class TestCephadm(object):
     def test_prepare_drivegroup(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             dg = DriveGroupSpec(placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=['']))
     def test_prepare_drivegroup(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             dg = DriveGroupSpec(placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=['']))
-            out = cephadm_module.prepare_drivegroup(dg)
+            out = cephadm_module.osd_service.prepare_drivegroup(dg)
             assert len(out) == 1
             f1 = out[0]
             assert f1[0] == 'test'
             assert len(out) == 1
             f1 = out[0]
             assert f1[0] == 'test'
@@ -297,38 +324,22 @@ class TestCephadm(object):
             # no preview and only one disk, prepare is used due the hack that is in place.
             (['/dev/sda'], False, "lvm prepare --bluestore --data /dev/sda --no-systemd"),
             # no preview and multiple disks, uses batch
             # no preview and only one disk, prepare is used due the hack that is in place.
             (['/dev/sda'], False, "lvm prepare --bluestore --data /dev/sda --no-systemd"),
             # no preview and multiple disks, uses batch
-            (['/dev/sda', '/dev/sdb'], False, "lvm batch --no-auto /dev/sda /dev/sdb --yes --no-systemd"),
+            (['/dev/sda', '/dev/sdb'], False, "CEPH_VOLUME_OSDSPEC_AFFINITY=test.spec lvm batch --no-auto /dev/sda /dev/sdb --yes --no-systemd"),
             # preview and only one disk needs to use batch again to generate the preview
             (['/dev/sda'], True, "lvm batch --no-auto /dev/sda --report --format json"),
             # preview and multiple disks work the same
             # preview and only one disk needs to use batch again to generate the preview
             (['/dev/sda'], True, "lvm batch --no-auto /dev/sda --report --format json"),
             # preview and multiple disks work the same
-            (['/dev/sda', '/dev/sdb'], True, "lvm batch --no-auto /dev/sda /dev/sdb --yes --no-systemd --report --format json"),
+            (['/dev/sda', '/dev/sdb'], True, "CEPH_VOLUME_OSDSPEC_AFFINITY=test.spec lvm batch --no-auto /dev/sda /dev/sdb --yes --no-systemd --report --format json"),
         ]
     )
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
     def test_driveselection_to_ceph_volume(self, cephadm_module, devices, preview, exp_command):
         with self._with_host(cephadm_module, 'test'):
         ]
     )
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
     def test_driveselection_to_ceph_volume(self, cephadm_module, devices, preview, exp_command):
         with self._with_host(cephadm_module, 'test'):
-            dg = DriveGroupSpec(placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=devices))
+            dg = DriveGroupSpec(service_id='test.spec', placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=devices))
             ds = DriveSelection(dg, Devices([Device(path) for path in devices]))
             preview = preview
             ds = DriveSelection(dg, Devices([Device(path) for path in devices]))
             preview = preview
-            out = cephadm_module.driveselection_to_ceph_volume(dg, ds, [], preview)
+            out = cephadm_module.osd_service.driveselection_to_ceph_volume(dg, ds, [], preview)
             assert out in exp_command
 
             assert out in exp_command
 
-    @mock.patch("cephadm.module.SpecStore.find")
-    @mock.patch("cephadm.module.CephadmOrchestrator.prepare_drivegroup")
-    @mock.patch("cephadm.module.CephadmOrchestrator.driveselection_to_ceph_volume")
-    @mock.patch("cephadm.module.CephadmOrchestrator._run_ceph_volume_command")
-    @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
-    def test_preview_drivegroups_str(self, _run_c_v_command, _ds_to_cv, _prepare_dg, _find_store, cephadm_module):
-        with self._with_host(cephadm_module, 'test'):
-            dg = DriveGroupSpec(placement=PlacementSpec(host_pattern='test'), data_devices=DeviceSelection(paths=['']))
-            _find_store.return_value = [dg]
-            _prepare_dg.return_value = [('host1', 'ds_dummy')]
-            _run_c_v_command.return_value = ("{}", '', 0)
-            cephadm_module.preview_drivegroups(drive_group_name='foo')
-            _find_store.assert_called_once_with(service_name='foo')
-            _prepare_dg.assert_called_once_with(dg)
-            _run_c_v_command.assert_called_once()
-
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm(
         json.dumps([
             dict(
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm(
         json.dumps([
             dict(
@@ -341,7 +352,7 @@ class TestCephadm(object):
             )
         ])
     ))
             )
         ])
     ))
-    @mock.patch("cephadm.osd.RemoveUtil.get_pg_count", lambda _, __: 0)
+    @mock.patch("cephadm.services.osd.RemoveUtil.get_pg_count", lambda _, __: 0)
     def test_remove_osds(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             c = cephadm_module.list_daemons(refresh=True)
     def test_remove_osds(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             c = cephadm_module.list_daemons(refresh=True)
@@ -425,7 +436,11 @@ class TestCephadm(object):
     def test_nfs(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             ps = PlacementSpec(hosts=['test'], count=1)
     def test_nfs(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             ps = PlacementSpec(hosts=['test'], count=1)
-            spec = NFSServiceSpec('name', pool='pool', namespace='namespace', placement=ps)
+            spec = NFSServiceSpec(
+                    service_id='name',
+                    pool='pool',
+                    namespace='namespace',
+                    placement=ps)
             c = cephadm_module.add_nfs(spec)
             [out] = wait(cephadm_module, c)
             match_glob(out, "Deployed nfs.name.* on host 'test'")
             c = cephadm_module.add_nfs(spec)
             [out] = wait(cephadm_module, c)
             match_glob(out, "Deployed nfs.name.* on host 'test'")
@@ -438,10 +453,16 @@ class TestCephadm(object):
             assert_rm_service(cephadm_module, 'nfs.name')
 
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
             assert_rm_service(cephadm_module, 'nfs.name')
 
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
+    @mock.patch("cephadm.module.CephadmOrchestrator.rados", mock.MagicMock())
     def test_iscsi(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             ps = PlacementSpec(hosts=['test'], count=1)
     def test_iscsi(self, cephadm_module):
         with self._with_host(cephadm_module, 'test'):
             ps = PlacementSpec(hosts=['test'], count=1)
-            spec = IscsiServiceSpec('name', pool='pool', placement=ps)
+            spec = IscsiServiceSpec(
+                    service_id='name',
+                    pool='pool',
+                    api_user='user',
+                    api_password='password',
+                    placement=ps)
             c = cephadm_module.add_iscsi(spec)
             [out] = wait(cephadm_module, c)
             match_glob(out, "Deployed iscsi.name.* on host 'test'")
             c = cephadm_module.add_iscsi(spec)
             [out] = wait(cephadm_module, c)
             match_glob(out, "Deployed iscsi.name.* on host 'test'")
@@ -470,19 +491,56 @@ class TestCephadm(object):
             (ServiceSpec('alertmanager'), CephadmOrchestrator.apply_alertmanager),
             (ServiceSpec('rbd-mirror'), CephadmOrchestrator.apply_rbd_mirror),
             (ServiceSpec('mds', service_id='fsname'), CephadmOrchestrator.apply_mds),
             (ServiceSpec('alertmanager'), CephadmOrchestrator.apply_alertmanager),
             (ServiceSpec('rbd-mirror'), CephadmOrchestrator.apply_rbd_mirror),
             (ServiceSpec('mds', service_id='fsname'), CephadmOrchestrator.apply_mds),
+            (ServiceSpec(
+                'mds', service_id='fsname',
+                placement=PlacementSpec(
+                    hosts=[HostPlacementSpec(
+                        hostname='test',
+                        name='fsname',
+                        network=''
+                    )]
+                )
+            ), CephadmOrchestrator.apply_mds),
             (RGWSpec(rgw_realm='realm', rgw_zone='zone'), CephadmOrchestrator.apply_rgw),
             (RGWSpec(rgw_realm='realm', rgw_zone='zone'), CephadmOrchestrator.apply_rgw),
-            (NFSServiceSpec('name', pool='pool', namespace='namespace'), CephadmOrchestrator.apply_nfs),
-            (IscsiServiceSpec('name', pool='pool'), CephadmOrchestrator.apply_iscsi),
+            (RGWSpec(
+                rgw_realm='realm', rgw_zone='zone',
+                placement=PlacementSpec(
+                    hosts=[HostPlacementSpec(
+                        hostname='test',
+                        name='realm.zone.a',
+                        network=''
+                    )]
+                )
+            ), CephadmOrchestrator.apply_rgw),
+            (NFSServiceSpec(
+                service_id='name',
+                pool='pool',
+                namespace='namespace'
+            ), CephadmOrchestrator.apply_nfs),
+            (IscsiServiceSpec(
+                service_id='name',
+                pool='pool',
+                api_user='user',
+                api_password='password'
+            ), CephadmOrchestrator.apply_iscsi),
         ]
     )
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
         ]
     )
     @mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('{}'))
-    def test_apply_save(self, spec: ServiceSpec, meth, cephadm_module):
+    def test_apply_save(self, spec: ServiceSpec, meth, cephadm_module: CephadmOrchestrator):
         with self._with_host(cephadm_module, 'test'):
         with self._with_host(cephadm_module, 'test'):
-            spec.placement = PlacementSpec(hosts=['test'], count=1)
+            if not spec.placement:
+                spec.placement = PlacementSpec(hosts=['test'], count=1)
             c = meth(cephadm_module, spec)
             assert wait(cephadm_module, c) == f'Scheduled {spec.service_name()} update...'
             assert [d.spec for d in wait(cephadm_module, cephadm_module.describe_service())] == [spec]
 
             c = meth(cephadm_module, spec)
             assert wait(cephadm_module, c) == f'Scheduled {spec.service_name()} update...'
             assert [d.spec for d in wait(cephadm_module, cephadm_module.describe_service())] == [spec]
 
+            cephadm_module._apply_all_services()
+
+            dds = wait(cephadm_module, cephadm_module.list_daemons())
+            for dd in dds:
+                assert dd.service_name() == spec.service_name()
+
+
             assert_rm_service(cephadm_module, spec.service_name())
 
 
             assert_rm_service(cephadm_module, spec.service_name())
 
 
@@ -504,3 +562,45 @@ class TestCephadm(object):
             assert cephadm_module._check_host('test') is None
             out = wait(cephadm_module, cephadm_module.get_hosts())[0].to_json()
             assert out == HostSpec('test', 'test').to_json()
             assert cephadm_module._check_host('test') is None
             out = wait(cephadm_module, cephadm_module.get_hosts())[0].to_json()
             assert out == HostSpec('test', 'test').to_json()
+
+    def test_stale_connections(self, cephadm_module):
+        class Connection(object):
+            """
+            A mocked connection class that only allows the use of the connection
+            once. If you attempt to use it again via a _check, it'll explode (go
+            boom!).
+
+            The old code triggers the boom. The new code checks the has_connection
+            and will recreate the connection.
+            """
+            fuse = False
+
+            @staticmethod
+            def has_connection():
+                return False
+
+            def import_module(self, *args, **kargs):
+                return mock.Mock()
+
+            @staticmethod
+            def exit():
+                pass
+
+        def _check(conn, *args, **kargs):
+            if conn.fuse:
+                raise Exception("boom: connection is dead")
+            else:
+                conn.fuse = True
+            return '{}', None, 0
+        with mock.patch("remoto.Connection", side_effect=[Connection(), Connection(), Connection()]):
+            with mock.patch("remoto.process.check", _check):
+                with self._with_host(cephadm_module, 'test'):
+                    code, out, err = cephadm_module.check_host('test')
+                    # First should succeed.
+                    assert err is None
+
+                    # On second it should attempt to reuse the connection, where the
+                    # connection is "down" so will recreate the connection. The old
+                    # code will blow up here triggering the BOOM!
+                    code, out, err = cephadm_module.check_host('test')
+                    assert err is None
index 085ea6c0a803b374570e26f2aa22bff0dcf13b62..2f7956667fc8aca5f9ef781a7ccbd7449f8a461e 100644 (file)
@@ -12,7 +12,7 @@ import pytest
 
 from tests import mock
 from .fixtures import cephadm_module, wait
 
 from tests import mock
 from .fixtures import cephadm_module, wait
-from ..module import trivial_completion, async_completion, async_map_completion
+from ..module import trivial_completion, forall_hosts
 
 
 class TestCompletion(object):
 
 
 class TestCompletion(object):
@@ -23,18 +23,13 @@ class TestCompletion(object):
             return x+1
         assert wait(cephadm_module, run(1)) == 2
 
             return x+1
         assert wait(cephadm_module, run(1)) == 2
 
-    @pytest.mark.parametrize("input", [
-        ((1, ), ),
-        ((1, 2), ),
-        (("hallo", ), ),
-        (("hallo", "foo"), ),
-    ])
-    def test_async(self, input, cephadm_module):
-        @async_completion
-        def run(*args):
-            return str(args)
-
-        assert wait(cephadm_module, run(*input)) == str(input)
+    def test_exception(self, cephadm_module):
+        @trivial_completion
+        def run(x):
+            raise ValueError
+        c = run(1)
+        with pytest.raises(ValueError):
+            wait(cephadm_module, c)
 
     @pytest.mark.parametrize("input,expected", [
         ([], []),
 
     @pytest.mark.parametrize("input,expected", [
         ([], []),
@@ -45,25 +40,11 @@ class TestCompletion(object):
         ([(1, 2), (3, 4)], ["(1, 2)", "(3, 4)"]),
     ])
     def test_async_map(self, input, expected, cephadm_module):
         ([(1, 2), (3, 4)], ["(1, 2)", "(3, 4)"]),
     ])
     def test_async_map(self, input, expected, cephadm_module):
-        @async_map_completion
-        def run(*args):
+        @forall_hosts
+        def run_forall(*args):
             return str(args)
             return str(args)
+        assert run_forall(input) == expected
 
 
-        c = run(input)
-        wait(cephadm_module, c)
-        assert c.result == expected
-
-    def test_async_self(self, cephadm_module):
-        class Run(object):
-            def __init__(self):
-                self.attr = 1
-
-            @async_completion
-            def run(self, x):
-                assert self.attr == 1
-                return x + 1
-
-        assert wait(cephadm_module, Run().run(1)) == 2
 
     @pytest.mark.parametrize("input,expected", [
         ([], []),
 
     @pytest.mark.parametrize("input,expected", [
         ([], []),
@@ -78,101 +59,9 @@ class TestCompletion(object):
             def __init__(self):
                 self.attr = 1
 
             def __init__(self):
                 self.attr = 1
 
-            @async_map_completion
-            def run(self, *args):
+            @forall_hosts
+            def run_forall(self, *args):
                 assert self.attr == 1
                 return str(args)
 
                 assert self.attr == 1
                 return str(args)
 
-        c = Run().run(input)
-        wait(cephadm_module, c)
-        assert c.result == expected
-
-    def test_then1(self, cephadm_module):
-        @async_map_completion
-        def run(x):
-            return x+1
-
-        assert wait(cephadm_module, run([1,2]).then(str)) == '[2, 3]'
-
-    def test_then2(self, cephadm_module):
-        @async_map_completion
-        def run(x):
-            time.sleep(0.1)
-            return x+1
-
-        @async_completion
-        def async_str(results):
-            return str(results)
-
-        c = run([1,2]).then(async_str)
-
-        wait(cephadm_module, c)
-        assert c.result == '[2, 3]'
-
-    def test_then3(self, cephadm_module):
-        @async_map_completion
-        def run(x):
-            time.sleep(0.1)
-            return x+1
-
-        def async_str(results):
-            return async_completion(str)(results)
-
-        c = run([1,2]).then(async_str)
-
-        wait(cephadm_module, c)
-        assert c.result == '[2, 3]'
-
-    def test_then4(self, cephadm_module):
-        @async_map_completion
-        def run(x):
-            time.sleep(0.1)
-            return x+1
-
-        def async_str(results):
-            return async_completion(str)(results).then(lambda x: x + "hello")
-
-        c = run([1,2]).then(async_str)
-
-        wait(cephadm_module, c)
-        assert c.result == '[2, 3]hello'
-
-    @pytest.mark.skip(reason="see limitation of async_map_completion")
-    def test_then5(self, cephadm_module):
-        @async_map_completion
-        def run(x):
-            time.sleep(0.1)
-            return async_completion(str)(x+1)
-
-        c = run([1,2])
-
-        wait(cephadm_module, c)
-        assert c.result == "['2', '3']"
-
-    def test_raise(self, cephadm_module):
-        @async_completion
-        def run(x):
-            raise ZeroDivisionError()
-
-        with pytest.raises(ZeroDivisionError):
-            wait(cephadm_module, run(1))
-
-    def test_progress(self, cephadm_module):
-        @async_map_completion
-        def run(*args):
-            return str(args)
-
-        c = run(list(range(2)))
-        c.update_progress = True
-        c.add_progress(
-            mgr=cephadm_module,
-            message="my progress"
-        )
-        wait(cephadm_module, c)
-        assert c.result == [str((x,)) for x in range(2)]
-        assert cephadm_module.remote.mock_calls == [
-            mock.call('progress', 'update', mock.ANY, 'my progress', float(i) / 2, [('origin', 'orchestrator')])
-            for i in range(2+1)] + [
-            mock.call('progress', 'update', mock.ANY, 'my progress', 1.0, [('origin', 'orchestrator')]),
-            mock.call('progress', 'complete', mock.ANY),
-        ]
+        assert Run().run_forall(input) == expected
index 54402bad469c0f07d4c2dac1c5750403a5e9257e..bc6a8b6b8fdb09484824cfec2417b1302efa67a4 100644 (file)
@@ -116,10 +116,11 @@ class NodeAssignmentTest(NamedTuple):
 def test_node_assignment(service_type, placement, hosts, daemons, expected):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
 def test_node_assignment(service_type, placement, hosts, daemons, expected):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
-        get_hosts_func=lambda _: hosts,
+        get_hosts_func=lambda label=None, as_hostspec=False: hosts,
         get_daemons_func=lambda _: daemons).place()
     assert sorted([h.hostname for h in hosts]) == sorted(expected)
 
         get_daemons_func=lambda _: daemons).place()
     assert sorted([h.hostname for h in hosts]) == sorted(expected)
 
+
 class NodeAssignmentTest2(NamedTuple):
     service_type: str
     placement: PlacementSpec
 class NodeAssignmentTest2(NamedTuple):
     service_type: str
     placement: PlacementSpec
@@ -203,7 +204,7 @@ def test_node_assignment2(service_type, placement, hosts,
                           daemons, expected_len, in_set):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
                           daemons, expected_len, in_set):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
-        get_hosts_func=lambda _: hosts,
+        get_hosts_func=lambda label=None, as_hostspec=False: hosts,
         get_daemons_func=lambda _: daemons).place()
     assert len(hosts) == expected_len
     for h in [h.hostname for h in hosts]:
         get_daemons_func=lambda _: daemons).place()
     assert len(hosts) == expected_len
     for h in [h.hostname for h in hosts]:
@@ -234,7 +235,7 @@ def test_node_assignment3(service_type, placement, hosts,
                           daemons, expected_len, must_have):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
                           daemons, expected_len, must_have):
     hosts = HostAssignment(
         spec=ServiceSpec(service_type, placement=placement),
-        get_hosts_func=lambda _: hosts,
+        get_hosts_func=lambda label=None, as_hostspec=False: hosts,
         get_daemons_func=lambda _: daemons).place()
     assert len(hosts) == expected_len
     for h in must_have:
         get_daemons_func=lambda _: daemons).place()
     assert len(hosts) == expected_len
     for h in must_have:
@@ -293,6 +294,6 @@ def test_bad_specs(service_type, placement, hosts, daemons, expected):
     with pytest.raises(OrchestratorValidationError) as e:
         hosts = HostAssignment(
             spec=ServiceSpec(service_type, placement=placement),
     with pytest.raises(OrchestratorValidationError) as e:
         hosts = HostAssignment(
             spec=ServiceSpec(service_type, placement=placement),
-            get_hosts_func=lambda _: hosts,
+            get_hosts_func=lambda label=None, as_hostspec=False: hosts,
             get_daemons_func=lambda _: daemons).place()
     assert str(e.value) == expected
             get_daemons_func=lambda _: daemons).place()
     assert str(e.value) == expected
diff --git a/ceph/src/pybind/mgr/cephadm/tests/test_services.py b/ceph/src/pybind/mgr/cephadm/tests/test_services.py
new file mode 100644 (file)
index 0000000..de0f9ea
--- /dev/null
@@ -0,0 +1,33 @@
+from unittest.mock import MagicMock
+
+from cephadm.services.cephadmservice import CephadmService
+
+
+class FakeMgr:
+    def __init__(self):
+        self.config = ''
+        self.check_mon_command = MagicMock(side_effect=self._check_mon_command)
+
+    def _check_mon_command(self, cmd_dict):
+        prefix = cmd_dict.get('prefix')
+        if prefix == 'get-cmd':
+            return 0, self.config, ''
+        if prefix == 'set-cmd':
+            self.config = cmd_dict.get('value')
+            return 0, 'value set', ''
+        return -1, '', 'error'
+
+
+class TestCephadmService:
+    def test_set_service_url_on_dashboard(self):
+        # pylint: disable=protected-access
+        mgr = FakeMgr()
+        service_url = 'http://svc:1000'
+        service = CephadmService(mgr)
+        service._set_service_url_on_dashboard('svc', 'get-cmd', 'set-cmd', service_url)
+        assert mgr.config == service_url
+
+        # set-cmd should not be called if value doesn't change
+        mgr.check_mon_command.reset_mock()
+        service._set_service_url_on_dashboard('svc', 'get-cmd', 'set-cmd', service_url)
+        mgr.check_mon_command.assert_called_once_with({'prefix': 'get-cmd'})
index de5eb1530bb2f49675f83f31aea7220bb2ef3275..ea4e8c8f73425c98dde26bf22d2c07d6503009bd 100644 (file)
@@ -2,7 +2,9 @@ import json
 
 import pytest
 
 
 import pytest
 
-from ceph.deployment.service_spec import ServiceSpec, RGWSpec, PlacementSpec
+from ceph.deployment.service_spec import ServiceSpec, NFSServiceSpec, RGWSpec, \
+    ServiceSpecValidationError, IscsiServiceSpec, PlacementSpec
+
 from orchestrator import DaemonDescription, OrchestratorError
 
 
 from orchestrator import DaemonDescription, OrchestratorError
 
 
@@ -224,8 +226,8 @@ def test_spec_octopus():
 
 @pytest.mark.parametrize("spec,dd,valid",
 [
 
 @pytest.mark.parametrize("spec,dd,valid",
 [
+    # https://tracker.ceph.com/issues/44934
     (
     (
-        # https://tracker.ceph.com/issues/44934
         RGWSpec(
             rgw_realm="default-rgw-realm",
             rgw_zone="eu-central-1",
         RGWSpec(
             rgw_realm="default-rgw-realm",
             rgw_zone="eu-central-1",
@@ -265,6 +267,19 @@ def test_spec_octopus():
         ),
         True
     ),
         ),
         True
     ),
+    (
+        # explicit naming
+        RGWSpec(
+            rgw_realm="realm",
+            rgw_zone="zone",
+        ),
+        DaemonDescription(
+            daemon_type='rgw',
+            daemon_id="realm.zone.a",
+            hostname="smithi028",
+        ),
+        True
+    ),
     (
         # without host
         RGWSpec(
     (
         # without host
         RGWSpec(
@@ -280,8 +295,194 @@ def test_spec_octopus():
         ),
         False
     ),
         ),
         False
     ),
+    (
+        # zone contains hostname
+        # https://tracker.ceph.com/issues/45294
+        RGWSpec(
+            rgw_realm="default.rgw.realm",
+            rgw_zone="ceph.001",
+            subcluster='1',
+        ),
+        DaemonDescription(
+            daemon_type='rgw',
+            daemon_id="default.rgw.realm.ceph.001.1.ceph.001.ytywjo",
+            hostname="ceph.001",
+        ),
+        True
+    ),
+
+    # https://tracker.ceph.com/issues/45293
+    (
+        ServiceSpec(
+            service_type='mds',
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='mds',
+            daemon_id="a.host1.abc123",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # '.' char in service_id
+        ServiceSpec(
+            service_type='mds',
+            service_id="a.b.c",
+        ),
+        DaemonDescription(
+            daemon_type='mds',
+            daemon_id="a.b.c.host1.abc123",
+            hostname="host1",
+        ),
+        True
+    ),
+
+    # https://tracker.ceph.com/issues/45617
+    (
+        # daemon_id does not contain hostname
+        ServiceSpec(
+            service_type='mds',
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='mds',
+            daemon_id="a",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # daemon_id only contains hostname
+        ServiceSpec(
+            service_type='mds',
+            service_id="host1",
+        ),
+        DaemonDescription(
+            daemon_type='mds',
+            daemon_id="host1",
+            hostname="host1",
+        ),
+        True
+    ),
+
+    # https://tracker.ceph.com/issues/45399
+    (
+        # daemon_id only contains hostname
+        ServiceSpec(
+            service_type='mds',
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='mds',
+            daemon_id="a.host1.abc123",
+            hostname="host1.site",
+        ),
+        True
+    ),
+    (
+        NFSServiceSpec(
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="a.host1",
+            hostname="host1.site",
+        ),
+        True
+    ),
+
+    # https://tracker.ceph.com/issues/45293
+    (
+        NFSServiceSpec(
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="a.host1",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # service_id contains a '.' char
+        NFSServiceSpec(
+            service_id="a.b.c",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="a.b.c.host1",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # trailing chars after hostname
+        NFSServiceSpec(
+            service_id="a.b.c",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="a.b.c.host1.abc123",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # chars after hostname without '.'
+        NFSServiceSpec(
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="a.host1abc123",
+            hostname="host1",
+        ),
+        False
+    ),
+    (
+        # chars before hostname without '.'
+        NFSServiceSpec(
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='nfs',
+            daemon_id="ahost1.abc123",
+            hostname="host1",
+        ),
+        False
+    ),
+
+    # https://tracker.ceph.com/issues/45293
+    (
+        IscsiServiceSpec(
+            service_type='iscsi',
+            service_id="a",
+        ),
+        DaemonDescription(
+            daemon_type='iscsi',
+            daemon_id="a.host1.abc123",
+            hostname="host1",
+        ),
+        True
+    ),
+    (
+        # '.' char in service_id
+        IscsiServiceSpec(
+            service_type='iscsi',
+            service_id="a.b.c",
+        ),
+        DaemonDescription(
+            daemon_type='iscsi',
+            daemon_id="a.b.c.host1.abc123",
+            hostname="host1",
+        ),
+        True
+    ),
 ])
 ])
-def test_rgw_service_name(spec: RGWSpec, dd: DaemonDescription, valid):
+def test_daemon_description_service_name(spec: ServiceSpec,
+                                         dd: DaemonDescription,
+                                         valid: bool):
     if valid:
         assert spec.service_name() == dd.service_name()
     else:
     if valid:
         assert spec.service_name() == dd.service_name()
     else:
diff --git a/ceph/src/pybind/mgr/cephadm/tests/test_template.py b/ceph/src/pybind/mgr/cephadm/tests/test_template.py
new file mode 100644 (file)
index 0000000..962b306
--- /dev/null
@@ -0,0 +1,33 @@
+import pathlib
+
+import pytest
+
+from cephadm.template import TemplateMgr, UndefinedError, TemplateNotFoundError
+
+
+def test_render(fs):
+    template_base = (pathlib.Path(__file__).parent / '../templates').resolve()
+    fake_template = template_base / 'foo/bar'
+    fs.create_file(fake_template, contents='{{ cephadm_managed }}{{ var }}')
+
+    template_mgr = TemplateMgr()
+    value = 'test'
+
+    # with base context
+    expected_text = '{}{}'.format(template_mgr.base_context['cephadm_managed'], value)
+    assert template_mgr.render('foo/bar', {'var': value}) == expected_text
+
+    # without base context
+    with pytest.raises(UndefinedError):
+        template_mgr.render('foo/bar', {'var': value}, managed_context=False)
+
+    # override the base context
+    context = {
+        'cephadm_managed': 'abc',
+        'var': value
+    }
+    assert template_mgr.render('foo/bar', context) == 'abc{}'.format(value)
+
+    # template not found
+    with pytest.raises(TemplateNotFoundError):
+        template_mgr.render('foo/bar/2', {})
diff --git a/ceph/src/pybind/mgr/cephadm/upgrade.py b/ceph/src/pybind/mgr/cephadm/upgrade.py
new file mode 100644 (file)
index 0000000..cdf432b
--- /dev/null
@@ -0,0 +1,378 @@
+import json
+import logging
+import time
+import uuid
+from typing import TYPE_CHECKING, Optional
+
+import orchestrator
+from cephadm.utils import name_to_config_section
+from orchestrator import OrchestratorError
+
+if TYPE_CHECKING:
+    from .module import CephadmOrchestrator
+
+
+# ceph daemon types that use the ceph container image.
+# NOTE: listed in upgrade order!
+CEPH_UPGRADE_ORDER = ['mgr', 'mon', 'crash', 'osd', 'mds', 'rgw', 'rbd-mirror']
+
+logger = logging.getLogger(__name__)
+
+class CephadmUpgrade:
+    def __init__(self, mgr: "CephadmOrchestrator"):
+        self.mgr = mgr
+
+        t = self.mgr.get_store('upgrade_state')
+        if t:
+            self.upgrade_state = json.loads(t)
+        else:
+            self.upgrade_state = None
+
+    def upgrade_status(self) -> orchestrator.UpgradeStatusSpec:
+        r = orchestrator.UpgradeStatusSpec()
+        if self.upgrade_state:
+            r.target_image = self.upgrade_state.get('target_name')
+            r.in_progress = True
+            if self.upgrade_state.get('error'):
+                r.message = 'Error: ' + self.upgrade_state.get('error')
+            elif self.upgrade_state.get('paused'):
+                r.message = 'Upgrade paused'
+        return r
+
+    def upgrade_start(self, image, version) -> str:
+        if self.mgr.mode != 'root':
+            raise OrchestratorError('upgrade is not supported in %s mode' % (
+                self.mgr.mode))
+        if version:
+            try:
+                (major, minor, patch) = version.split('.')
+                assert int(minor) >= 0
+                assert int(patch) >= 0
+            except:
+                raise OrchestratorError('version must be in the form X.Y.Z (e.g., 15.2.3)')
+            if int(major) < 15 or (int(major) == 15 and int(minor) < 2):
+                raise OrchestratorError('cephadm only supports octopus (15.2.0) or later')
+            target_name = self.mgr.container_image_base + ':v' + version
+        elif image:
+            target_name = image
+        else:
+            raise OrchestratorError('must specify either image or version')
+        if self.upgrade_state:
+            if self.upgrade_state.get('target_name') != target_name:
+                raise OrchestratorError(
+                    'Upgrade to %s (not %s) already in progress' %
+                (self.upgrade_state.get('target_name'), target_name))
+            if self.upgrade_state.get('paused'):
+                del self.upgrade_state['paused']
+                self._save_upgrade_state()
+                return 'Resumed upgrade to %s' % self.upgrade_state.get('target_name')
+            return 'Upgrade to %s in progress' % self.upgrade_state.get('target_name')
+        self.upgrade_state = {
+            'target_name': target_name,
+            'progress_id': str(uuid.uuid4()),
+        }
+        self._update_upgrade_progress(0.0)
+        self._save_upgrade_state()
+        self._clear_upgrade_health_checks()
+        self.mgr.event.set()
+        return 'Initiating upgrade to %s' % (target_name)
+
+    def upgrade_pause(self) -> str:
+        if not self.upgrade_state:
+            raise OrchestratorError('No upgrade in progress')
+        if self.upgrade_state.get('paused'):
+            return 'Upgrade to %s already paused' % self.upgrade_state.get('target_name')
+        self.upgrade_state['paused'] = True
+        self._save_upgrade_state()
+        return 'Paused upgrade to %s' % self.upgrade_state.get('target_name')
+
+    def upgrade_resume(self) -> str:
+        if not self.upgrade_state:
+            raise OrchestratorError('No upgrade in progress')
+        if not self.upgrade_state.get('paused'):
+            return 'Upgrade to %s not paused' % self.upgrade_state.get('target_name')
+        del self.upgrade_state['paused']
+        self._save_upgrade_state()
+        self.mgr.event.set()
+        return 'Resumed upgrade to %s' % self.upgrade_state.get('target_name')
+
+    def upgrade_stop(self) -> str:
+        if not self.upgrade_state:
+            return 'No upgrade in progress'
+        target_name = self.upgrade_state.get('target_name')
+        if 'progress_id' in self.upgrade_state:
+            self.mgr.remote('progress', 'complete',
+                           self.upgrade_state['progress_id'])
+        self.upgrade_state = None
+        self._save_upgrade_state()
+        self._clear_upgrade_health_checks()
+        self.mgr.event.set()
+        return 'Stopped upgrade to %s' % target_name
+
+    def continue_upgrade(self) -> bool:
+        """
+        Returns false, if nothing was done.
+        :return:
+        """
+        if self.upgrade_state and not self.upgrade_state.get('paused'):
+            self._do_upgrade()
+            return True
+        return False
+
+    def _wait_for_ok_to_stop(self, s) -> bool:
+        # only wait a little bit; the service might go away for something
+        tries = 4
+        while tries > 0:
+            if s.daemon_type not in ['mon', 'osd', 'mds']:
+                logger.info('Upgrade: It is presumed safe to stop %s.%s' %
+                              (s.daemon_type, s.daemon_id))
+                return True
+            ret, out, err = self.mgr.mon_command({
+                'prefix': '%s ok-to-stop' % s.daemon_type,
+                'ids': [s.daemon_id],
+            })
+            if not self.upgrade_state or self.upgrade_state.get('paused'):
+                return False
+            if ret:
+                logger.info('Upgrade: It is NOT safe to stop %s.%s' %
+                              (s.daemon_type, s.daemon_id))
+                time.sleep(15)
+                tries -= 1
+            else:
+                logger.info('Upgrade: It is safe to stop %s.%s' %
+                              (s.daemon_type, s.daemon_id))
+                return True
+        return False
+
+    def _clear_upgrade_health_checks(self) -> None:
+        for k in ['UPGRADE_NO_STANDBY_MGR',
+                  'UPGRADE_FAILED_PULL']:
+            if k in self.mgr.health_checks:
+                del self.mgr.health_checks[k]
+        self.mgr.set_health_checks(self.mgr.health_checks)
+
+    def _fail_upgrade(self, alert_id, alert) -> None:
+        logger.error('Upgrade: Paused due to %s: %s' % (alert_id,
+                                                          alert['summary']))
+        self.upgrade_state['error'] = alert_id + ': ' + alert['summary']
+        self.upgrade_state['paused'] = True
+        self._save_upgrade_state()
+        self.mgr.health_checks[alert_id] = alert
+        self.mgr.set_health_checks(self.mgr.health_checks)
+
+    def _update_upgrade_progress(self, progress) -> None:
+        if 'progress_id' not in self.upgrade_state:
+            self.upgrade_state['progress_id'] = str(uuid.uuid4())
+            self._save_upgrade_state()
+        self.mgr.remote('progress', 'update', self.upgrade_state['progress_id'],
+                        ev_msg='Upgrade to %s' % self.upgrade_state['target_name'],
+                        ev_progress=progress)
+
+    def _save_upgrade_state(self) -> None:
+        self.mgr.set_store('upgrade_state', json.dumps(self.upgrade_state))
+
+    def _do_upgrade(self):
+        # type: () -> None
+        if not self.upgrade_state:
+            logger.debug('_do_upgrade no state, exiting')
+            return
+
+        target_name = self.upgrade_state.get('target_name')
+        target_id = self.upgrade_state.get('target_id', None)
+        if not target_id:
+            # need to learn the container hash
+            logger.info('Upgrade: First pull of %s' % target_name)
+            try:
+                target_id, target_version = self.mgr._get_container_image_id(target_name)
+            except OrchestratorError as e:
+                self._fail_upgrade('UPGRADE_FAILED_PULL', {
+                    'severity': 'warning',
+                    'summary': 'Upgrade: failed to pull target image',
+                    'count': 1,
+                    'detail': [str(e)],
+                })
+                return
+            self.upgrade_state['target_id'] = target_id
+            self.upgrade_state['target_version'] = target_version
+            self._save_upgrade_state()
+        target_version = self.upgrade_state.get('target_version')
+        logger.info('Upgrade: Target is %s with id %s' % (target_name,
+                                                            target_id))
+
+        # get all distinct container_image settings
+        image_settings = {}
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config dump',
+            'format': 'json',
+        })
+        config = json.loads(out)
+        for opt in config:
+            if opt['name'] == 'container_image':
+                image_settings[opt['section']] = opt['value']
+
+        daemons = self.mgr.cache.get_daemons()
+        done = 0
+        for daemon_type in CEPH_UPGRADE_ORDER:
+            logger.info('Upgrade: Checking %s daemons...' % daemon_type)
+            need_upgrade_self = False
+            for d in daemons:
+                if d.daemon_type != daemon_type:
+                    continue
+                if d.container_image_id == target_id:
+                    logger.debug('daemon %s.%s version correct' % (
+                        daemon_type, d.daemon_id))
+                    done += 1
+                    continue
+                logger.debug('daemon %s.%s not correct (%s, %s, %s)' % (
+                    daemon_type, d.daemon_id,
+                    d.container_image_name, d.container_image_id, d.version))
+
+                if daemon_type == 'mgr' and \
+                   d.daemon_id == self.mgr.get_mgr_id():
+                    logger.info('Upgrade: Need to upgrade myself (mgr.%s)' %
+                                  self.mgr.get_mgr_id())
+                    need_upgrade_self = True
+                    continue
+
+                # make sure host has latest container image
+                out, err, code = self.mgr._run_cephadm(
+                    d.hostname, None, 'inspect-image', [],
+                    image=target_name, no_fsid=True, error_ok=True)
+                if code or json.loads(''.join(out)).get('image_id') != target_id:
+                    logger.info('Upgrade: Pulling %s on %s' % (target_name,
+                                                                 d.hostname))
+                    out, err, code = self.mgr._run_cephadm(
+                        d.hostname, None, 'pull', [],
+                        image=target_name, no_fsid=True, error_ok=True)
+                    if code:
+                        self._fail_upgrade('UPGRADE_FAILED_PULL', {
+                            'severity': 'warning',
+                            'summary': 'Upgrade: failed to pull target image',
+                            'count': 1,
+                            'detail': [
+                                'failed to pull %s on host %s' % (target_name,
+                                                                  d.hostname)],
+                        })
+                        return
+                    r = json.loads(''.join(out))
+                    if r.get('image_id') != target_id:
+                        logger.info('Upgrade: image %s pull on %s got new image %s (not %s), restarting' % (target_name, d.hostname, r['image_id'], target_id))
+                        self.upgrade_state['target_id'] = r['image_id']
+                        self._save_upgrade_state()
+                        return
+
+                self._update_upgrade_progress(done / len(daemons))
+
+                if not d.container_image_id:
+                    if d.container_image_name == target_name:
+                        logger.debug('daemon %s has unknown container_image_id but has correct image name' % (d.name()))
+                        continue
+                if not self._wait_for_ok_to_stop(d):
+                    return
+                logger.info('Upgrade: Redeploying %s.%s' %
+                              (d.daemon_type, d.daemon_id))
+                ret, out, err = self.mgr.check_mon_command({
+                    'prefix': 'config set',
+                    'name': 'container_image',
+                    'value': target_name,
+                    'who': name_to_config_section(daemon_type + '.' + d.daemon_id),
+                })
+                self.mgr._daemon_action(
+                    d.daemon_type,
+                    d.daemon_id,
+                    d.hostname,
+                    'redeploy'
+                )
+                return
+
+            if need_upgrade_self:
+                mgr_map = self.mgr.get('mgr_map')
+                num = len(mgr_map.get('standbys'))
+                if not num:
+                    self._fail_upgrade('UPGRADE_NO_STANDBY_MGR', {
+                        'severity': 'warning',
+                        'summary': 'Upgrade: Need standby mgr daemon',
+                        'count': 1,
+                        'detail': [
+                            'The upgrade process needs to upgrade the mgr, '
+                            'but it needs at least one standby to proceed.',
+                        ],
+                    })
+                    return
+
+                logger.info('Upgrade: there are %d other already-upgraded '
+                              'standby mgrs, failing over' % num)
+
+                self._update_upgrade_progress(done / len(daemons))
+
+                # fail over
+                ret, out, err = self.mgr.check_mon_command({
+                    'prefix': 'mgr fail',
+                    'who': self.mgr.get_mgr_id(),
+                })
+                return
+            elif daemon_type == 'mgr':
+                if 'UPGRADE_NO_STANDBY_MGR' in self.mgr.health_checks:
+                    del self.mgr.health_checks['UPGRADE_NO_STANDBY_MGR']
+                    self.mgr.set_health_checks(self.mgr.health_checks)
+
+            # make sure 'ceph versions' agrees
+            ret, out, err = self.mgr.check_mon_command({
+                'prefix': 'versions',
+            })
+            j = json.loads(out)
+            for version, count in j.get(daemon_type, {}).items():
+                if version != target_version:
+                    logger.warning(
+                        'Upgrade: %d %s daemon(s) are %s != target %s' %
+                        (count, daemon_type, version, target_version))
+
+            # push down configs
+            if image_settings.get(daemon_type) != target_name:
+                logger.info('Upgrade: Setting container_image for all %s...' %
+                              daemon_type)
+                ret, out, err = self.mgr.check_mon_command({
+                    'prefix': 'config set',
+                    'name': 'container_image',
+                    'value': target_name,
+                    'who': name_to_config_section(daemon_type),
+                })
+            to_clean = []
+            for section in image_settings.keys():
+                if section.startswith(name_to_config_section(daemon_type) + '.'):
+                    to_clean.append(section)
+            if to_clean:
+                logger.debug('Upgrade: Cleaning up container_image for %s...' %
+                               to_clean)
+                for section in to_clean:
+                    ret, image, err = self.mgr.check_mon_command({
+                        'prefix': 'config rm',
+                        'name': 'container_image',
+                        'who': section,
+                    })
+
+            logger.info('Upgrade: All %s daemons are up to date.' %
+                          daemon_type)
+
+        # clean up
+        logger.info('Upgrade: Finalizing container_image settings')
+        ret, out, err = self.mgr.check_mon_command({
+            'prefix': 'config set',
+            'name': 'container_image',
+            'value': target_name,
+            'who': 'global',
+        })
+        for daemon_type in CEPH_UPGRADE_ORDER:
+            ret, image, err = self.mgr.check_mon_command({
+                'prefix': 'config rm',
+                'name': 'container_image',
+                'who': name_to_config_section(daemon_type),
+            })
+
+        logger.info('Upgrade: Complete!')
+        if 'progress_id' in self.upgrade_state:
+            self.mgr.remote('progress', 'complete',
+                        self.upgrade_state['progress_id'])
+        self.upgrade_state = None
+        self._save_upgrade_state()
+        return
index 3cc6d6e1a74ab17fe5e422f7fec6a61dc3c52514..290011843e08da793ef6f1780e8b231c921e602d 100644 (file)
@@ -13,3 +13,18 @@ def name_to_config_section(name):
         return name
     else:
         return 'mon'
         return name
     else:
         return 'mon'
+
+
+def name_to_auth_entity(name) -> str:
+    """
+    Map from daemon names to ceph entity names (as seen in config)
+    """
+    daemon_type = name.split('.', 1)[0]
+    if daemon_type in ['rgw', 'rbd-mirror', 'nfs', 'crash', 'iscsi']:
+        return 'client.' + name
+    elif daemon_type == 'mon':
+        return 'mon.'
+    elif daemon_type in ['osd', 'mds', 'mgr', 'client']:
+        return name
+    else:
+        raise OrchestratorError("unknown auth entity name")
index 5cec25f4ce4069da324bf983980fdb43a2f12799..404a16a2e6fa9a269ad2e869527c93f69158c77e 100644 (file)
@@ -73,7 +73,6 @@ disable=import-star-module-level,
         reduce-builtin,
         standarderror-builtin,
         unicode-builtin,
         reduce-builtin,
         standarderror-builtin,
         unicode-builtin,
-        xrange-builtin,
         coerce-method,
         delslice-method,
         getslice-method,
         coerce-method,
         delslice-method,
         getslice-method,
index 9a8a03f0a8fa9060ffa72507e976985f362179ff..3471f189dbcdc041ca7f3ae4b9960b7b2459d3e7 100644 (file)
@@ -48,7 +48,7 @@ endif()
 
 add_npm_command(
   OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules"
 
 add_npm_command(
   OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules"
-  COMMAND NG_CLI_ANALYTICS=false npm ci
+  COMMAND NG_CLI_ANALYTICS=false CYPRESS_CACHE_FOLDER=${CMAKE_SOURCE_DIR}/build/src/pybind/mgr/dashboard/cypress npm ci
   DEPENDS frontend/package.json
   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend
   COMMENT "dashboard frontend dependencies are being installed"
   DEPENDS frontend/package.json
   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend
   COMMENT "dashboard frontend dependencies are being installed"
index 20cf388b5d6d62f519e1a0763322e1fbd9353df7..6ab0ded2559d1488341d47268b1282f62f9f0e74 100644 (file)
@@ -139,30 +139,47 @@ There are a few ways how you can try to resolve this:
 Running End-to-End (E2E) Tests
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Running End-to-End (E2E) Tests
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-We use `Protractor <http://www.protractortest.org/>`__ to run our frontend E2E
-tests.
+We use `Cypress <https://www.cypress.io/>`__ to run our frontend E2E tests.
 
 
-Our ``run-frontend-e2e-tests.sh`` script will check if Chrome or Docker is
-installed and run the tests if either is found.
+E2E Prerequisites
+.................
+
+You need to previously build the frontend.
+
+In some environments, depending on your user permissions and the CYPRESS_CACHE_FOLDER,
+you might need to run ``npm ci`` with the ``--unsafe-perm`` flag.
+
+You might need to install additional packages to be able to run Cypress.
+Please run ``npx cypress verify`` to verify it.
+
+run-frontend-e2e-tests.sh
+.........................
+
+Our ``run-frontend-e2e-tests.sh`` script is the go to solution when you wish to
+do a full scale e2e run.
+It will verify if everything needed is installed, start a new vstart cluster
+and run the full test suite.
 
 Start all frontend E2E tests by running::
 
   $ ./run-frontend-e2e-tests.sh
 
 Report:
 
 Start all frontend E2E tests by running::
 
   $ ./run-frontend-e2e-tests.sh
 
 Report:
-  After running the tests you can find the corresponding report as well as screenshots
-  of failed test cases by opening the following file in your browser:
+  You can follow the e2e report on the terminal and you can find the screenshots
+  of failed test cases by opening the following directory::
 
 
-    src/pybind/mgr/dashboard/frontend/.protractor-report/index.html
+    src/pybind/mgr/dashboard/frontend/cypress/screenshots/
 
 Device:
   You can force the script to use a specific device with the ``-d`` flag::
 
 
 Device:
   You can force the script to use a specific device with the ``-d`` flag::
 
-    $ ./run-frontend-e2e-tests.sh -d <chrome|docker>
+    $ ./run-frontend-e2e-tests.sh -d <chrome|chromium|electron|docker>
 
 Remote:
 
 Remote:
+  By default this script will stop and start a new vstart cluster.
   If you want to run the tests outside the ceph environment, you will need to
   If you want to run the tests outside the ceph environment, you will need to
-  manually define the dashboard url using ``-r`` and, optionally, credentials (``-u``, ``-p``)::
+  manually define the dashboard url using ``-r`` and, optionally, credentials
+  (``-u``, ``-p``)::
 
     $ ./run-frontend-e2e-tests.sh -r <DASHBOARD_URL> -u <E2E_LOGIN_USER> -p <E2E_LOGIN_PWD>
 
 
     $ ./run-frontend-e2e-tests.sh -r <DASHBOARD_URL> -u <E2E_LOGIN_USER> -p <E2E_LOGIN_PWD>
 
@@ -170,29 +187,56 @@ Note:
   When using docker, as your device, you might need to run the script with sudo
   permissions.
 
   When using docker, as your device, you might need to run the script with sudo
   permissions.
 
-When developing E2E tests, it is not necessary to compile the frontend code
-on each change of the test files. When your development environment is
-running (``npm start``), you can point Protractor to just use this
-environment. To attach `Protractor <http://www.protractortest.org/>`__ to
-this process, run ``npm run e2e:ci``.
+Other running options
+.....................
 
 
-Note::
+During active development, it is not recommended to run the previous script,
+as it is not prepared for constant file changes.
+Instead you should use one of the following commands:
+
+- ``npm run e2e`` - This will run ``ng serve`` and open the Cypress Test Runner.
+- ``npm run e2e:ci`` - This will run ``ng serve`` and run the Cypress Test Runner once.
+- ``npx cypress run`` - This calls cypress directly and will run the Cypress Test Runner.
+  You need to have a running frontend server.
+- ``npx cypress open`` - This calls cypress directly and will open the Cypress Test Runner.
+  You need to have a running frontend server.
+
+Calling Cypress directly has the advantage that you can use any of the available
+`flags <https://docs.cypress.io/guides/guides/command-line.html#cypress-run>`__
+to customize your test run and you don't need to start a frontend server each time.
+
+Using one of the ``open`` commands, will open a cypress application where you
+can see all the test files you have and run each individually.
+This is going to be run in watch mode, so if you make any changes to test files,
+it will retrigger the test run.
+This cannot be used inside docker, as it requires X11 environment to be able to open.
+
+By default Cypress will look for the web page at ``https://localhost:4200/``.
+If you are serving it in a different URL you will need to configure it by
+exporting the environment variable CYPRESS_BASE_URL with the new value.
+E.g.: ``CYPRESS_BASE_URL=https://localhost:41076/ npx cypress open``
+
+CYPRESS_CACHE_FOLDER
+.....................
 
 
-   In case you have a somewhat particular environment, you might need to adapt
-   `protractor.conf.js` to point to the appropriate destination.
+When installing cypress via npm, a binary of the cypress app will also be
+downloaded and stored in a cache folder.
+This removes the need to download it every time you run ``npm ci`` or even when
+using cypress in a separate project.
 
 
-Writing End-to-End Tests
-~~~~~~~~~~~~~~~~~~~~~~~~
+By default Cypress uses ~/.cache to store the binary.
+To prevent changes to the user home directory, we have changed this folder to
+``/ceph/build/src/pybind/mgr/dashboard/cypress``, so when you build ceph or run
+``run-frontend-e2e-tests.sh`` this is the directory Cypress will use.
 
 
-To be used methods
-..................
+When using any other command to install or run cypress,
+it will go back to the default directory. It is recommended that you export the
+CYPRESS_CACHE_FOLDER environment variable with a fixed directory, so you always
+use the same directory no matter which command you use.
 
 
-For clicking checkboxes, the ``clickCheckbox`` method is supposed to be used.
-Due an adaption of the ``<input type="checkbox">`` tag, the original checkbox
-is hidden and unclickable. Instead, a fancier replacement is shown. When the
-developer tries to use `ElementFinder::click()` on such a checkbox, it will
-raise an error. The ``clickCheckbox`` method prevents that by clicking the
-label of the checkbox, like a regular user would do.
+
+Writing End-to-End Tests
+~~~~~~~~~~~~~~~~~~~~~~~~
 
 The PagerHelper class
 .....................
 
 The PagerHelper class
 .....................
@@ -202,9 +246,11 @@ can be used on various pages or suites.
 
 Examples are
 
 
 Examples are
 
-- ``getTableCellByContent()`` - returns a table cell by its content
+- ``navigateTo()`` - Navigates to a specific page and waits for it to load
+- ``getFirstTableCell()`` - returns the first table cell. You can also pass a
+  string with the desired content and it will return the first cell that
+  contains it.
 - ``getTabsCount()`` - returns the amount of tabs
 - ``getTabsCount()`` - returns the amount of tabs
-- ``clickCheckbox()`` - clicks a checkbox
 
 Every method that could be useful on several pages belongs there. Also, methods
 which enhance the derived classes of the PageHelper belong there. A good
 
 Every method that could be useful on several pages belongs there. Also, methods
 which enhance the derived classes of the PageHelper belong there. A good
@@ -224,113 +270,102 @@ talking about the pool suite, such methods would be ``create()``, ``exist()``
 and ``delete()``. These methods are specific to a pool but are useful for other
 suites.
 
 and ``delete()``. These methods are specific to a pool but are useful for other
 suites.
 
-Methods that return HTML elements (for instance of type ``ElementFinder`` or
-``ElementArrayFinder``, but also ``Promise<ElementFinder>``) which can only
-be found on a specific page, should be either implemented in the helper
-methods of the subclass of PageHelper or as own methods of the subclass of
-PageHelper.
-
-Registering a new PageHelper
-""""""""""""""""""""""""""""
-
-If you have to create a new Helper class derived from the ``PageHelper``,
-please also ensure that it is instantiated in the constructor of the
-``Helper`` class. That way it can automatically be used by all other suites.
-
-.. code:: TypeScript
-
-  class Helper {
-     // ...
-     pools: PoolPageHelper;
-
-     constructor() {
-        this.pools = new PoolPageHelper();
-     }
-
-     // ...
-  }
+Methods that return HTML elements which can only be found on a specific page,
+should be either implemented in the helper methods of the subclass of PageHelper
+or as own methods of the subclass of PageHelper.
 
 Using PageHelpers
 """""""""""""""""
 
 
 Using PageHelpers
 """""""""""""""""
 
-In any suite, an instance of the ``Helper`` class should be used to call
-various ``PageHelper`` objects and their methods. This makes all methods of all
-PageHelpers available to all suites.
+In any suite, an instance of the specific ``Helper`` class should be
+instantiated and called directly.
 
 .. code:: TypeScript
 
 
 .. code:: TypeScript
 
+  const pools = new PoolPageHelper();
+
   it('should create a pool', () => {
   it('should create a pool', () => {
-    helper.pools.exist(poolName, false).then(() => {
-      helper.pools.navigateTo('create');
-      helper.pools.create(poolName).then(() => {
-        helper.pools.navigateTo();
-        helper.pools.exist(poolName, true);
-      });
-    });
+    pools.exist(poolName, false);
+    pools.navigateTo('create');
+    pools.create(poolName, 8);
+    pools.exist(poolName, true);
   });
 
 Code Style
 ..........
 
   });
 
 Code Style
 ..........
 
-Please refer to the official `Protractor style-guide
-<https://www.protractortest.org/#/style-guide>`__ for a better insight on how
-to write and structure tests as well as what exactly should be covered by
-end-to-end tests.
+Please refer to the official `Cypress Core Concepts
+<https://docs.cypress.io/guides/core-concepts/introduction-to-cypress.html#Cypress-Can-Be-Simple-Sometimes>`__
+for a better insight on how to write and structure tests.
 
 ``describe()`` vs ``it()``
 """"""""""""""""""""""""""
 
 
 ``describe()`` vs ``it()``
 """"""""""""""""""""""""""
 
-Both ``describe()`` and ``it()`` are function blocks, meaning that any executable
-code necessary for the test can be contained in either block. However, Typescript
-scoping rules still apply, therefore any variables declared in a ``describe`` are available
-to the ``it()`` blocks inside of it.
+Both ``describe()`` and ``it()`` are function blocks, meaning that any
+executable code necessary for the test can be contained in either block.
+However, Typescript scoping rules still apply, therefore any variables declared
+in a ``describe`` are available to the ``it()`` blocks inside of it.
 
 
-``describe()`` typically are containers for tests, allowing you to break tests into
-multiple parts. Likewise, any setup that must be made before your tests are run can be
-initialized within the ``describe()`` block. Here is an example:
+``describe()`` typically are containers for tests, allowing you to break tests
+into multiple parts. Likewise, any setup that must be made before your tests are
+run can be initialized within the ``describe()`` block. Here is an example:
 
 .. code:: TypeScript
 
   describe('create, edit & delete image test', () => {
     const poolName = 'e2e_images_pool';
 
 
 .. code:: TypeScript
 
   describe('create, edit & delete image test', () => {
     const poolName = 'e2e_images_pool';
 
-    beforeAll(() => {
-      pools.navigateTo('create'); // Need pool for image testing
-      pools.create(poolName, 8, 'rbd').then(() => {
-        pools.navigateTo();
-        pools.exist(poolName, true);
-      });
+    before(() => {
+      cy.login();
+      pools.navigateTo('create');
+      pools.create(poolName, 8, 'rbd');
+      pools.exist(poolName, true);
+    });
+
+    beforeEach(() => {
+      cy.login();
       images.navigateTo();
     });
 
       images.navigateTo();
     });
 
+    //...
+
+  });
+
 As shown, we can initiate the variable ``poolName`` as well as run commands
 As shown, we can initiate the variable ``poolName`` as well as run commands
-before our test suite begins (creating a pool). ``describe()`` block messages should
-include what the test suite is.
+before our test suite begins (creating a pool). ``describe()`` block messages
+should include what the test suite is.
 
 
-``it()`` blocks typically are parts of an overarching test. They contain the functionality of
-the test suite, each performing individual roles. Here is an example:
+``it()`` blocks typically are parts of an overarching test. They contain the
+functionality of the test suite, each performing individual roles.
+Here is an example:
 
 .. code:: TypeScript
 
 
 .. code:: TypeScript
 
- describe('create, edit & delete image test', () => {
-  it('should create image', () => {
-    images.createImage(imageName, poolName, '1');
-    expect(images.getTableCell(imageName).isPresent()).toBe(true);
-  });
-  it('should edit image', () => {
-    images.editImage(imageName, poolName, newImageName, '2');
-    expect(images.getTableCell(newImageName).isPresent()).toBe(true);
+  describe('create, edit & delete image test', () => {
+    //...
+
+    it('should create image', () => {
+      images.createImage(imageName, poolName, '1');
+      images.getFirstTableCell(imageName).should('exist');
+    });
+
+    it('should edit image', () => {
+      images.editImage(imageName, poolName, newImageName, '2');
+      images.getFirstTableCell(newImageName).should('exist');
+    });
+
+    //...
   });
   });
-  //...
- });
 
 
-As shown from the previous example, our ``describe()`` test suite is to create, edit
-and delete an image. Therefore, each ``it()`` completes one of these steps, one for creating,
-one for editing, and so on. Likewise, every ``it()`` blocks message should be in lowercase
-and written so long as "it" can be the prefix of the message. For example, ``it('edits the test image' () => ...)``
-vs. ``it('image edit test' () => ...)``. As shown, the first example makes grammatical sense with ``it()`` as the
-prefix whereas the second message does not.``it()`` should describe what the individual test is doing and
-what it expects to happen.
+As shown from the previous example, our ``describe()`` test suite is to create,
+edit and delete an image. Therefore, each ``it()`` completes one of these steps,
+one for creating, one for editing, and so on. Likewise, every ``it()`` blocks
+message should be in lowercase and written so long as "it" can be the prefix of
+the message. For example, ``it('edits the test image' () => ...)`` vs.
+``it('image edit test' () => ...)``. As shown, the first example makes
+grammatical sense with ``it()`` as the prefix whereas the second message does
+not. ``it()`` should describe what the individual test is doing and what it
+expects to happen.
 
 Differences between Frontend Unit Tests and End-to-End (E2E) Tests / FAQ
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Differences between Frontend Unit Tests and End-to-End (E2E) Tests / FAQ
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -343,10 +378,6 @@ What are E2E/unit tests designed for?
 
 E2E test:
 
 
 E2E test:
 
-"Protractor is an end-to-end test framework for Angular and AngularJS applications.
-Protractor runs tests against your application running in a real browser,
-interacting with it as a user would." `(src) <http://www.protractortest.org/#/>`__
-
 It requires a fully functional system and tests the interaction of all components
 of the application (Ceph, back-end, front-end).
 E2E tests are designed to mimic the behavior of the user when interacting with the application
 It requires a fully functional system and tests the interaction of all components
 of the application (Ceph, back-end, front-end).
 E2E tests are designed to mimic the behavior of the user when interacting with the application
index 78879986398d8f1f4060077f337b801bcb72df78..25a7f19f3c6370ccf35eb52b6f93046fbdc8b40b 100644 (file)
@@ -23,8 +23,6 @@ if 'UNITTEST' not in os.environ:
 
     mgr = _ModuleProxy()
 
 
     mgr = _ModuleProxy()
 
-    # DO NOT REMOVE: required for ceph-mgr to load a module
-    from .module import Module, StandbyModule  # noqa: F401
 else:
     import logging
     logging.basicConfig(level=logging.DEBUG)
 else:
     import logging
     logging.basicConfig(level=logging.DEBUG)
@@ -32,7 +30,12 @@ else:
     os.environ['PATH'] = '{}:{}'.format(os.path.abspath('../../../../build/bin'),
                                         os.environ['PATH'])
 
     os.environ['PATH'] = '{}:{}'.format(os.path.abspath('../../../../build/bin'),
                                         os.environ['PATH'])
 
-    from tests import mock  # type: ignore
+    from tests import mock, mock_ceph_modules  # type: ignore
 
     mgr = mock.Mock()
     mgr.get_frontend_path.side_effect = lambda: os.path.abspath("./frontend/dist")
 
     mgr = mock.Mock()
     mgr.get_frontend_path.side_effect = lambda: os.path.abspath("./frontend/dist")
+
+    mock_ceph_modules()
+
+# DO NOT REMOVE: required for ceph-mgr to load a module
+from .module import Module, StandbyModule  # noqa: F401
diff --git a/ceph/src/pybind/mgr/dashboard/conftest.py b/ceph/src/pybind/mgr/dashboard/conftest.py
deleted file mode 100644 (file)
index 8b5e9ac..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-import sys
-
-try:
-    from mock import Mock, patch
-except ImportError:
-    from unittest.mock import Mock, patch
-
-
-class MockRadosError(Exception):
-    def __init__(self, message, errno=None):
-        super(MockRadosError, self).__init__(message)
-        self.errno = errno
-
-    def __str__(self):
-        msg = super(MockRadosError, self).__str__()
-        if self.errno is None:
-            return msg
-        return '[errno {0}] {1}'.format(self.errno, msg)
-
-
-def pytest_configure(config):
-    sys.modules.update({
-        'rados': Mock(Error=MockRadosError, OSError=MockRadosError),
-        'rbd': Mock(),
-        'cephfs': Mock(),
-    })
-
-    # we need the following patches to fix the issue of multiple inheritance when
-    # one of the base classes is being mocked.
-    # Error example:
-    # TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) \
-    # subclass of the metaclasses of all its bases
-    class _BaseMgrModule:
-        pass
-
-    patcher = patch("ceph_module.BaseMgrStandbyModule", new=_BaseMgrModule)
-    patcher.start()
-    patcher = patch("ceph_module.BaseMgrModule", new=_BaseMgrModule)
-    patcher.start()
index 3bd4cba8d738a56b47e38ec03b670fadfad649d2..a72ed73ce0a4f883ba117ec18e7a7e4a28818c03 100644 (file)
@@ -717,6 +717,7 @@ class RESTController(BaseController):
     * bulk_delete()
     * get(key)
     * set(data, key)
     * bulk_delete()
     * get(key)
     * set(data, key)
+    * singleton_set(data)
     * delete(key)
 
     Test with curl:
     * delete(key)
 
     Test with curl:
@@ -749,7 +750,8 @@ class RESTController(BaseController):
         ('bulk_delete', {'method': 'DELETE', 'resource': False, 'status': 204}),
         ('get', {'method': 'GET', 'resource': True, 'status': 200}),
         ('delete', {'method': 'DELETE', 'resource': True, 'status': 204}),
         ('bulk_delete', {'method': 'DELETE', 'resource': False, 'status': 204}),
         ('get', {'method': 'GET', 'resource': True, 'status': 200}),
         ('delete', {'method': 'DELETE', 'resource': True, 'status': 204}),
-        ('set', {'method': 'PUT', 'resource': True, 'status': 200})
+        ('set', {'method': 'PUT', 'resource': True, 'status': 200}),
+        ('singleton_set', {'method': 'PUT', 'resource': False, 'status': 200})
     ])
 
     @classmethod
     ])
 
     @classmethod
index ca63ba286a4b1a3c7bee597a21ff12d1e2e70b05..c4cc867220d6ca07f8a7d4c0d7500e09cde9530c 100644 (file)
@@ -11,10 +11,10 @@ from .. import mgr
 
 @ApiController('/erasure_code_profile', Scope.POOL)
 class ErasureCodeProfile(RESTController):
 
 @ApiController('/erasure_code_profile', Scope.POOL)
 class ErasureCodeProfile(RESTController):
-    '''
+    """
     create() supports additional key-value arguments that are passed to the
     ECP plugin.
     create() supports additional key-value arguments that are passed to the
     ECP plugin.
-    '''
+    """
 
     def list(self):
         return CephService.get_erasure_code_profiles()
 
     def list(self):
         return CephService.get_erasure_code_profiles()
@@ -40,15 +40,15 @@ class ErasureCodeProfileUi(ErasureCodeProfile):
     @Endpoint()
     @ReadPermission
     def info(self):
     @Endpoint()
     @ReadPermission
     def info(self):
-        '''Used for profile creation and editing'''
+        """
+        Used for profile creation and editing
+        """
         config = mgr.get('config')
         config = mgr.get('config')
-        osd_map_crush = mgr.get('osd_map_crush')
         return {
             # Because 'shec' is experimental it's not included
             'plugins': config['osd_erasure_code_plugins'].split() + ['shec'],
             'directory': config['erasure_code_dir'],
         return {
             # Because 'shec' is experimental it's not included
             'plugins': config['osd_erasure_code_plugins'].split() + ['shec'],
             'directory': config['erasure_code_dir'],
-            'devices': list({device['class'] for device in osd_map_crush['devices']}),
-            'failure_domains': [domain['name'] for domain in osd_map_crush['types']],
+            'nodes': mgr.get('osd_map_tree')['nodes'],
             'names': [name for name, _ in
                       mgr.get('osd_map').get('erasure_code_profiles', {}).items()]
         }
             'names': [name for name, _ in
                       mgr.get('osd_map').get('erasure_code_profiles', {}).items()]
         }
index 3a90389bba578851e1a7fcbdb0095b99a9507165..5995161bee1098d5e5eb4e929203b167db2ed636 100644 (file)
@@ -30,29 +30,52 @@ def merge_hosts_by_hostname(ceph_hosts, orch_hosts):
     :type orch_hosts: list of HostSpec
     :return list of dict
     """
     :type orch_hosts: list of HostSpec
     :return list of dict
     """
-    _ceph_hosts = copy.deepcopy(ceph_hosts)
-    orch_hostnames = {host.hostname for host in orch_hosts}
-
-    # hosts in both Ceph and Orchestrator
-    for ceph_host in _ceph_hosts:
-        if ceph_host['hostname'] in orch_hostnames:
-            ceph_host['sources']['orchestrator'] = True
-            orch_hostnames.remove(ceph_host['hostname'])
+    hosts = copy.deepcopy(ceph_hosts)
+    orch_hosts_map = {
+        host.hostname: {
+            'labels': host.labels
+        }
+        for host in orch_hosts
+    }
+
+    # Hosts in both Ceph and Orchestrator
+    for host in hosts:
+        hostname = host['hostname']
+        if hostname in orch_hosts_map:
+            host['labels'] = orch_hosts_map[hostname]['labels']
+            host['sources']['orchestrator'] = True
+            orch_hosts_map.pop(hostname)
 
     # Hosts only in Orchestrator
 
     # Hosts only in Orchestrator
-    orch_sources = {'ceph': False, 'orchestrator': True}
-    _orch_hosts = [dict(hostname=hostname, ceph_version='', services=[], sources=orch_sources)
-                   for hostname in orch_hostnames]
-    _ceph_hosts.extend(_orch_hosts)
-    return _ceph_hosts
+    orch_hosts_only = [
+        dict(hostname=hostname,
+             ceph_version='',
+             labels=orch_hosts_map[hostname]['labels'],
+             services=[],
+             sources={
+                 'ceph': False,
+                 'orchestrator': True
+             }) for hostname in orch_hosts_map
+    ]
+    hosts.extend(orch_hosts_only)
+    return hosts
 
 
 def get_hosts(from_ceph=True, from_orchestrator=True):
 
 
 def get_hosts(from_ceph=True, from_orchestrator=True):
-    """get hosts from various sources"""
+    """
+    Get hosts from various sources.
+    """
     ceph_hosts = []
     if from_ceph:
     ceph_hosts = []
     if from_ceph:
-        ceph_hosts = [merge_dicts(server, {'sources': {'ceph': True, 'orchestrator': False}})
-                      for server in mgr.list_servers()]
+        ceph_hosts = [
+            merge_dicts(server, {
+                'labels': [],
+                'sources': {
+                    'ceph': True,
+                    'orchestrator': False
+                }
+            }) for server in mgr.list_servers()
+        ]
     if from_orchestrator:
         orch = OrchClient.instance()
         if orch.available():
     if from_orchestrator:
         orch = OrchClient.instance()
         if orch.available():
@@ -62,7 +85,6 @@ def get_hosts(from_ceph=True, from_orchestrator=True):
 
 @ApiController('/host', Scope.HOSTS)
 class Host(RESTController):
 
 @ApiController('/host', Scope.HOSTS)
 class Host(RESTController):
-
     def list(self, sources=None):
         if sources is None:
             return get_hosts()
     def list(self, sources=None):
         if sources is None:
             return get_hosts()
index 275c59c44a9207e263b483181226472ee5278c88..945a82a177a498adc8b65c549de18e5d17f7372e 100644 (file)
@@ -229,16 +229,23 @@ class PoolUi(Pool):
                     for o in options
                     if o['name'] == conf_name][0]
 
                     for o in options
                     if o['name'] == conf_name][0]
 
+        profiles = CephService.get_erasure_code_profiles()
         used_rules = {}
         used_rules = {}
+        used_profiles = {}
         pool_names = []
         for p in self._pool_list():
             name = p['pool_name']
         pool_names = []
         for p in self._pool_list():
             name = p['pool_name']
-            rule = p['crush_rule']
             pool_names.append(name)
             pool_names.append(name)
+            rule = p['crush_rule']
             if rule in used_rules:
                 used_rules[rule].append(name)
             else:
                 used_rules[rule] = [name]
             if rule in used_rules:
                 used_rules[rule].append(name)
             else:
                 used_rules[rule] = [name]
+            profile = p['erasure_code_profile']
+            if profile in used_profiles:
+                used_profiles[profile].append(name)
+            else:
+                used_profiles[profile] = [name]
 
         mgr_config = mgr.get('config')
         return {
 
         mgr_config = mgr.get('config')
         return {
@@ -252,6 +259,7 @@ class PoolUi(Pool):
             "compression_modes": get_config_option_enum('bluestore_compression_mode'),
             "pg_autoscale_default_mode": mgr_config['osd_pool_default_pg_autoscale_mode'],
             "pg_autoscale_modes": get_config_option_enum('osd_pool_default_pg_autoscale_mode'),
             "compression_modes": get_config_option_enum('bluestore_compression_mode'),
             "pg_autoscale_default_mode": mgr_config['osd_pool_default_pg_autoscale_mode'],
             "pg_autoscale_modes": get_config_option_enum('osd_pool_default_pg_autoscale_mode'),
-            "erasure_code_profiles": CephService.get_erasure_code_profiles(),
-            "used_rules": used_rules
+            "erasure_code_profiles": profiles,
+            "used_rules": used_rules,
+            "used_profiles": used_profiles,
         }
         }
index 433113763f12af65385eea81dcf2d74be626fece..fc7d5190ed29d36951cf7a4d434436adcb443a54 100644 (file)
@@ -115,11 +115,11 @@ class RgwRESTController(RESTController):
 class RgwSite(RgwRESTController):
     def list(self, query=None):
         if query == 'placement-targets':
 class RgwSite(RgwRESTController):
     def list(self, query=None):
         if query == 'placement-targets':
-            instance = RgwClient.admin_instance()
-            result = instance.get_placement_targets()
+            result = RgwClient.admin_instance().get_placement_targets()
+        elif query == 'realms':
+            result = RgwClient.admin_instance().get_realms()
         else:
         else:
-            # @TODO: (it'll be required for multisite workflows):
-            # by default, retrieve cluster realms/zonegroups map.
+            # @TODO: for multisite: by default, retrieve cluster topology/map.
             raise DashboardException(http_status_code=501, component='rgw', msg='Not Implemented')
 
         return result
             raise DashboardException(http_status_code=501, component='rgw', msg='Not Implemented')
 
         return result
diff --git a/ceph/src/pybind/mgr/dashboard/controllers/telemetry.py b/ceph/src/pybind/mgr/dashboard/controllers/telemetry.py
new file mode 100644 (file)
index 0000000..c68432e
--- /dev/null
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+from __future__ import absolute_import
+
+from . import ApiController, RESTController
+from .. import mgr
+from ..exceptions import DashboardException
+from ..security import Scope
+
+
+@ApiController('/telemetry', Scope.CONFIG_OPT)
+class Telemetry(RESTController):
+
+    @RESTController.Collection('GET')
+    def report(self):
+        """
+        Get Ceph and device report data
+        :return: Ceph and device report data
+        :rtype: dict
+        """
+        return mgr.remote('telemetry', 'get_report', 'all')
+
+    def singleton_set(self, enable=True, license_name=None):
+        """
+        Enables or disables sending data collected by the Telemetry
+        module.
+        :param enable: Enable or disable sending data
+        :type enable: bool
+        :param license_name: License string e.g. 'sharing-1-0' to
+            make sure the user is aware of and accepts the license
+            for sharing Telemetry data.
+        :type license_name: string
+        """
+        if enable:
+            if not license_name or (license_name != 'sharing-1-0'):
+                raise DashboardException(
+                    code='telemetry_enable_license_missing',
+                    msg='Telemetry data is licensed under the Community Data License Agreement - '
+                        'Sharing - Version 1.0 (https://cdla.io/sharing-1-0/). To enable, add '
+                        '{"license": "sharing-1-0"} to the request payload.'
+                )
+            mgr.remote('telemetry', 'on')
+        else:
+            mgr.remote('telemetry', 'off')
index 7d65e364398768feae9686574ab5702920ce7f5b..e2c84e58f641bb807743d7a4ad957724a3917709 100644 (file)
@@ -1,5 +1,6 @@
 {
   "arrowParens": "always",
   "printWidth": 100,
 {
   "arrowParens": "always",
   "printWidth": 100,
-  "singleQuote": true
+  "singleQuote": true,
+  "trailingComma": "none"
 }
 }
index c54fb5f553dc8ea5d7d350a03a4c8138aa0acf75..da61a75de20cc098bedd14c7b93f1d4d125b7bfe 100644 (file)
         }
       },
       "cli": {}
         }
       },
       "cli": {}
-    },
-    "ceph-dashboard-e2e": {
-      "root": "",
-      "sourceRoot": "",
-      "projectType": "application",
-      "architect": {
-        "e2e": {
-          "builder": "@angular-devkit/build-angular:protractor",
-          "options": {
-            "protractorConfig": "./protractor.conf.js",
-            "devServerTarget": "ceph-dashboard:serve"
-          }
-        },
-        "lint": {
-          "builder": "@angular-devkit/build-angular:tslint",
-          "options": {
-            "tsConfig": [
-              "e2e/tsconfig.e2e.json"
-            ],
-            "exclude": [
-              "**/node_modules/**"
-            ]
-          }
-        }
-      },
-      "cli": {}
     }
   },
   "defaultProject": "ceph-dashboard",
     }
   },
   "defaultProject": "ceph-dashboard",
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress.json b/ceph/src/pybind/mgr/dashboard/frontend/cypress.json
new file mode 100644 (file)
index 0000000..4f60424
--- /dev/null
@@ -0,0 +1,14 @@
+{
+  "baseUrl": "http://localhost:4200/",
+  "ignoreTestFiles": [
+    "*.po.ts"
+  ],
+  "supportFile": "cypress/support/index.ts",
+  "video": false,
+  "defaultCommandTimeout": 20000,
+  "viewportHeight": 1080,
+  "viewportWidth": 1920,
+  "pluginsFile": false,
+  "fixturesFolder": false,
+  "projectId": "k7ab29"
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.e2e-spec.ts
new file mode 100644 (file)
index 0000000..87900a0
--- /dev/null
@@ -0,0 +1,92 @@
+import { PoolPageHelper } from '../pools/pools.po';
+import { ImagesPageHelper } from './images.po';
+
+describe('Images page', () => {
+  const pools = new PoolPageHelper();
+  const images = new ImagesPageHelper();
+
+  const poolName = 'e2e_images_pool';
+
+  before(() => {
+    cy.login();
+    // Need pool for image testing
+    pools.navigateTo('create');
+    pools.create(poolName, 8, 'rbd');
+    pools.exist(poolName, true);
+  });
+
+  after(() => {
+    // Deletes images test pool
+    pools.navigateTo();
+    pools.delete(poolName);
+    pools.navigateTo();
+    pools.exist(poolName, false);
+  });
+
+  beforeEach(() => {
+    cy.login();
+    images.navigateTo();
+  });
+
+  it('should open and show breadcrumb', () => {
+    images.expectBreadcrumbText('Images');
+  });
+
+  it('should show four tabs', () => {
+    images.getTabsCount().should('eq', 4);
+  });
+
+  it('should show text for all tabs', () => {
+    images.getTabText(0).should('eq', 'Images');
+    images.getTabText(1).should('eq', 'Namespaces');
+    images.getTabText(2).should('eq', 'Trash');
+    images.getTabText(3).should('eq', 'Overall Performance');
+  });
+
+  describe('create, edit & delete image test', () => {
+    const imageName = 'e2e_images#image';
+    const newImageName = 'e2e_images#image_new';
+
+    it('should create image', () => {
+      images.createImage(imageName, poolName, '1');
+      images.getFirstTableCell(imageName).should('exist');
+    });
+
+    it('should edit image', () => {
+      images.editImage(imageName, poolName, newImageName, '2');
+      images.getFirstTableCell(newImageName).should('exist');
+    });
+
+    it('should delete image', () => {
+      images.delete(newImageName);
+    });
+  });
+
+  describe('move to trash, restore and purge image tests', () => {
+    const imageName = 'e2e_trash#image';
+    const newImageName = 'e2e_newtrash#image';
+
+    before(() => {
+      cy.login();
+      // Need image for trash testing
+      images.createImage(imageName, poolName, '1');
+      images.getFirstTableCell(imageName).should('exist');
+    });
+
+    it('should move the image to the trash', () => {
+      images.moveToTrash(imageName);
+      images.getFirstTableCell(imageName).should('exist');
+    });
+
+    it('should restore image to images table', () => {
+      images.restoreImage(imageName, newImageName);
+      images.getFirstTableCell(newImageName).should('exist');
+    });
+
+    it('should purge trash in images trash tab', () => {
+      images.getFirstTableCell(newImageName).should('exist');
+      images.moveToTrash(newImageName);
+      images.purgeTrash(newImageName, poolName);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/images.po.ts
new file mode 100644 (file)
index 0000000..c43b838
--- /dev/null
@@ -0,0 +1,110 @@
+import { PageHelper } from '../page-helper.po';
+
+export class ImagesPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/block/rbd', id: 'cd-rbd-list' },
+    create: { url: '#/block/rbd/create', id: 'cd-rbd-form' }
+  };
+
+  // Creates a block image and fills in the name, pool, and size fields.
+  // Then checks if the image is present in the Images table.
+  createImage(name: string, pool: string, size: string) {
+    this.navigateTo('create');
+
+    cy.get('#name').type(name); // Enter in image name
+
+    // Select image pool
+    cy.contains('Loading...').should('not.exist');
+    this.selectOption('pool', pool);
+    cy.get('#pool').should('have.class', 'ng-valid'); // check if selected
+
+    // Enter in the size of the image
+    cy.get('#size').type(size);
+
+    // Click the create button and wait for image to be made
+    cy.contains('button', 'Create RBD').click();
+    this.getFirstTableCell(name).should('exist');
+  }
+
+  editImage(name: string, pool: string, newName: string, newSize: string) {
+    this.navigateEdit(name);
+
+    // Wait until data is loaded
+    cy.get('#pool').should('contain.value', pool);
+
+    cy.get('#name').clear().type(newName);
+    cy.get('#size').clear().type(newSize); // click the size box and send new size
+
+    cy.contains('button', 'Edit RBD').click();
+
+    this.getExpandCollapseElement(newName).click();
+    cy.get('.table.table-striped.table-bordered').contains('td', newSize);
+  }
+
+  // Selects RBD image and moves it to the trash,
+  // checks that it is present in the trash table
+  moveToTrash(name: string) {
+    // wait for image to be created
+    cy.get('.datatable-body').first().should('not.contain.text', '(Creating...)');
+
+    this.getFirstTableCell(name).click();
+
+    // click on the drop down and selects the move to trash option
+    cy.get('.table-actions button.dropdown-toggle').first().click();
+    cy.get('li.move-to-trash').click();
+
+    cy.contains('button', 'Move Image').should('be.visible').click();
+
+    // Clicks trash tab
+    cy.contains('.nav-link', 'Trash').click();
+    this.getFirstTableCell(name).should('exist');
+  }
+
+  // Checks trash tab table for image and then restores it to the RBD Images table
+  // (could change name if new name is given)
+  restoreImage(name: string, newName?: string) {
+    // clicks on trash tab
+    cy.contains('.nav-link', 'Trash').click();
+
+    // wait for table to load
+    this.getFirstTableCell(name).click();
+    cy.contains('button', 'Restore').click();
+
+    // wait for pop-up to be visible (checks for title of pop-up)
+    cy.get('#name').should('be.visible');
+
+    // If a new name for the image is passed, it changes the name of the image
+    if (newName !== undefined) {
+      // click name box and send new name
+      cy.get('#name').clear().type(newName);
+    }
+
+    cy.contains('button', 'Restore Image').click();
+
+    // clicks images tab
+    cy.contains('.nav-link', 'Images').click();
+
+    this.getFirstTableCell(newName).should('exist');
+  }
+
+  // Enters trash tab and purges trash, thus emptying the trash table.
+  // Checks if Image is still in the table.
+  purgeTrash(name: string, pool?: string) {
+    // clicks trash tab
+    cy.contains('.nav-link', 'Trash').click();
+    cy.contains('button', 'Purge Trash').click();
+
+    // Check for visibility of modal container
+    cy.get('.modal-header').should('be.visible');
+
+    // If purgeing a specific pool, selects that pool if given
+    if (pool !== undefined) {
+      this.selectOption('poolName', pool);
+      cy.get('#poolName').should('have.class', 'ng-valid'); // check if pool is selected
+    }
+    cy.get('#purgeFormButton').click();
+    // Wait for image to delete and check it is not present
+
+    this.getFirstTableCell(name).should('not.exist');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.e2e-spec.ts
new file mode 100644 (file)
index 0000000..f7154fb
--- /dev/null
@@ -0,0 +1,24 @@
+import { IscsiPageHelper } from './iscsi.po';
+
+describe('Iscsi Page', () => {
+  const iscsi = new IscsiPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    iscsi.navigateTo();
+  });
+
+  it('should open and show breadcrumb', () => {
+    iscsi.expectBreadcrumbText('Overview');
+  });
+
+  it('should check that tables are displayed and legends are correct', () => {
+    // Check tables are displayed
+    iscsi.getDataTables().its(0).should('be.visible');
+    iscsi.getDataTables().its(1).should('visible');
+
+    // Check that legends are correct
+    iscsi.getLegends().its(0).should('contain.text', 'Gateways');
+    iscsi.getLegends().its(1).should('contain.text', 'Images');
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/iscsi.po.ts
new file mode 100644 (file)
index 0000000..08efa64
--- /dev/null
@@ -0,0 +1,7 @@
+import { PageHelper } from '../page-helper.po';
+
+export class IscsiPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/block/iscsi/overview', id: 'cd-iscsi' }
+  };
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.e2e-spec.ts
new file mode 100644 (file)
index 0000000..c7bd427
--- /dev/null
@@ -0,0 +1,53 @@
+import { PoolPageHelper } from '../pools/pools.po';
+import { MirroringPageHelper } from './mirroring.po';
+
+describe('Mirroring page', () => {
+  const pools = new PoolPageHelper();
+  const mirroring = new MirroringPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    mirroring.navigateTo();
+  });
+
+  it('should open and show breadcrumb', () => {
+    mirroring.expectBreadcrumbText('Mirroring');
+  });
+
+  it('should show three tabs', () => {
+    mirroring.getTabsCount().should('eq', 3);
+  });
+
+  it('should show text for all tabs', () => {
+    mirroring.getTabText(0).should('eq', 'Issues');
+    mirroring.getTabText(1).should('eq', 'Syncing');
+    mirroring.getTabText(2).should('eq', 'Ready');
+  });
+
+  describe('checks that edit mode functionality shows in the pools table', () => {
+    const poolName = 'mirroring_test';
+
+    beforeEach(() => {
+      pools.navigateTo('create'); // Need pool for mirroring testing
+      pools.create(poolName, 8, 'rbd');
+      pools.navigateTo();
+      pools.exist(poolName, true);
+    });
+
+    it('tests editing mode for pools', () => {
+      mirroring.navigateTo();
+
+      mirroring.editMirror(poolName, 'Pool');
+      mirroring.getFirstTableCell('pool').should('be.visible');
+      mirroring.editMirror(poolName, 'Image');
+      mirroring.getFirstTableCell('image').should('be.visible');
+      mirroring.editMirror(poolName, 'Disabled');
+      mirroring.getFirstTableCell('disabled').should('be.visible');
+    });
+
+    afterEach(() => {
+      pools.navigateTo();
+      pools.delete(poolName);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/block/mirroring.po.ts
new file mode 100644 (file)
index 0000000..8450763
--- /dev/null
@@ -0,0 +1,32 @@
+import { PageHelper } from '../page-helper.po';
+
+const pages = {
+  index: { url: '#/block/mirroring', id: 'cd-mirroring' }
+};
+
+export class MirroringPageHelper extends PageHelper {
+  pages = pages;
+
+  /**
+   * Goes to the mirroring page and edits a pool in the Pool table. Clicks on the
+   * pool and chooses an option (either pool, image, or disabled)
+   */
+  @PageHelper.restrictTo(pages.index.url)
+  editMirror(name: string, option: string) {
+    // Clicks the pool in the table
+    this.getFirstTableCell(name).click();
+
+    // Clicks the Edit Mode button
+    cy.contains('button', 'Edit Mode').click();
+
+    // Clicks the drop down in the edit pop-up, then clicks the Update button
+    cy.get('.modal-content').should('be.visible');
+    this.selectOption('mirrorMode', option);
+
+    // Clicks update button and checks if the mode has been changed
+    cy.contains('button', 'Update').click();
+    cy.contains('.modal-dialog', 'Edit pool mirror mode').should('not.exist');
+    const val = option.toLowerCase(); // used since entries in table are lower case
+    this.getFirstTableCell(val).should('be.visible');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.e2e-spec.ts
new file mode 100644 (file)
index 0000000..fda5682
--- /dev/null
@@ -0,0 +1,66 @@
+import { ConfigurationPageHelper } from './configuration.po';
+
+describe('Configuration page', () => {
+  const configuration = new ConfigurationPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    configuration.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      configuration.expectBreadcrumbText('Configuration');
+    });
+  });
+
+  describe('fields check', () => {
+    beforeEach(() => {
+      configuration.getExpandCollapseElement().click();
+    });
+
+    it('should verify that selected footer increases when an entry is clicked', () => {
+      configuration.getTableSelectedCount().should('eq', 1);
+    });
+
+    it('should check that details table opens and tab is correct', () => {
+      configuration.getStatusTables().should('be.visible');
+      configuration.getTabsCount().should('eq', 1);
+      configuration.getTabText(0).should('eq', 'Details');
+    });
+  });
+
+  describe('edit configuration test', () => {
+    const configName = 'client_cache_size';
+
+    beforeEach(() => {
+      configuration.clearTableSearchInput();
+    });
+
+    after(() => {
+      configuration.configClear(configName);
+    });
+
+    it('should click and edit a configuration and results should appear in the table', () => {
+      configuration.edit(
+        configName,
+        ['global', '1'],
+        ['mon', '2'],
+        ['mgr', '3'],
+        ['osd', '4'],
+        ['mds', '5'],
+        ['client', '6']
+      );
+    });
+
+    it('should show only modified configurations', () => {
+      configuration.filterTable('Modified', 'yes');
+      configuration.getTableFoundCount().should('eq', 1);
+    });
+
+    it('should hide all modified configurations', () => {
+      configuration.filterTable('Modified', 'no');
+      configuration.getTableFoundCount().should('gt', 1);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/configuration.po.ts
new file mode 100644 (file)
index 0000000..eb160b0
--- /dev/null
@@ -0,0 +1,75 @@
+import { PageHelper } from '../page-helper.po';
+
+export class ConfigurationPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/configuration', id: 'cd-configuration' }
+  };
+
+  /**
+   * Clears out all the values in a config to reset before and after testing
+   * Does not work for configs with checkbox only, possible future PR
+   */
+  configClear(name: string) {
+    const valList = ['global', 'mon', 'mgr', 'osd', 'mds', 'client']; // Editable values
+
+    this.navigateEdit(name);
+    // Waits for the data to load
+    cy.contains('.card-header', `Edit ${name}`);
+
+    for (const i of valList) {
+      cy.get(`#${i}`).clear();
+    }
+    // Clicks save button and checks that values are not present for the selected config
+    cy.contains('button', 'Save').click();
+
+    // Enter config setting name into filter box
+    this.seachTable(name);
+
+    // Expand row
+    this.getExpandCollapseElement(name).click();
+
+    // Checks for visibility of details tab
+    this.getStatusTables().should('be.visible');
+
+    for (const i of valList) {
+      // Waits until values are not present in the details table
+      this.getStatusTables().should('not.contain.text', i + ':');
+    }
+  }
+
+  /**
+   * Clicks the designated config, then inputs the values passed into the edit function.
+   * Then checks if the edit is reflected in the config table.
+   * Takes in name of config and a list of tuples of values the user wants edited,
+   * each tuple having the desired value along with the number tehey want for that value.
+   * Ex: [global, '2'] is the global value with an input of 2
+   */
+  edit(name: string, ...values: [string, string][]) {
+    this.navigateEdit(name);
+
+    // Waits for data to load
+    cy.contains('.card-header', `Edit ${name}`);
+
+    values.forEach((valtuple) => {
+      // Finds desired value based off given list
+      cy.get(`#${valtuple[0]}`).type(valtuple[1]); // of values and inserts the given number for the value
+    });
+
+    // Clicks save button then waits until the desired config is visible, clicks it,
+    // then checks that each desired value appears with the desired number
+    cy.contains('button', 'Save').click();
+
+    // Enter config setting name into filter box
+    this.seachTable(name);
+
+    // Checks for visibility of config in table
+    this.getExpandCollapseElement(name).should('be.visible').click();
+
+    // Clicks config
+    values.forEach((value) => {
+      // iterates through list of values and
+      // checks if the value appears in details with the correct number attatched
+      cy.contains('.table.table-striped.table-bordered', `${value[0]}\: ${value[1]}`);
+    });
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.e2e-spec.ts
new file mode 100644 (file)
index 0000000..2c8d132
--- /dev/null
@@ -0,0 +1,36 @@
+import { CrushMapPageHelper } from './crush-map.po';
+
+describe('CRUSH map page', () => {
+  const crushmap = new CrushMapPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    crushmap.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      crushmap.expectBreadcrumbText('CRUSH map');
+    });
+  });
+
+  describe('fields check', () => {
+    it('should check that title & table appears', () => {
+      // Check that title (CRUSH map viewer) appears
+      crushmap.getPageTitle().should('equal', 'CRUSH map viewer');
+
+      // Check that title appears once OSD is clicked
+      crushmap.getCrushNode(1).click();
+
+      crushmap
+        .getLegends()
+        .invoke('text')
+        .then((legend) => {
+          crushmap.getCrushNode(1).should('have.text', legend);
+        });
+
+      // Check that table appears once OSD is clicked
+      crushmap.getDataTables().should('be.visible');
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/crush-map.po.ts
new file mode 100644 (file)
index 0000000..a5d2d59
--- /dev/null
@@ -0,0 +1,13 @@
+import { PageHelper } from '../page-helper.po';
+
+export class CrushMapPageHelper extends PageHelper {
+  pages = { index: { url: '#/crush-map', id: 'cd-crushmap' } };
+
+  getPageTitle() {
+    return cy.get('cd-crushmap .card-header').text();
+  }
+
+  getCrushNode(idx: number) {
+    return cy.get('.node-name.type-osd').eq(idx);
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.e2e-spec.ts
new file mode 100644 (file)
index 0000000..045b18f
--- /dev/null
@@ -0,0 +1,38 @@
+import { HostsPageHelper } from './hosts.po';
+
+describe('Hosts page', () => {
+  const hosts = new HostsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    hosts.navigateTo();
+  });
+
+  describe('breadcrumb and tab tests', () => {
+    it('should open and show breadcrumb', () => {
+      hosts.expectBreadcrumbText('Hosts');
+    });
+
+    it('should show two tabs', () => {
+      hosts.getTabsCount().should('eq', 2);
+    });
+
+    it('should show hosts list tab at first', () => {
+      hosts.getTabText(0).should('eq', 'Hosts List');
+    });
+
+    it('should show overall performance as a second tab', () => {
+      hosts.getTabText(1).should('eq', 'Overall Performance');
+    });
+  });
+
+  describe('services link test', () => {
+    it('should check at least one host is present', () => {
+      hosts.check_for_host();
+    });
+
+    it('should check services link(s) work for first host', () => {
+      hosts.check_services_links();
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/hosts.po.ts
new file mode 100644 (file)
index 0000000..d3e7540
--- /dev/null
@@ -0,0 +1,31 @@
+import { PageHelper } from '../page-helper.po';
+
+export class HostsPageHelper extends PageHelper {
+  pages = { index: { url: '#/hosts', id: 'cd-hosts' } };
+
+  check_for_host() {
+    this.getTableTotalCount().should('not.be.eq', 0);
+  }
+
+  // function that checks all services links work for first
+  // host in table
+  check_services_links() {
+    // check that text (links) is present in services box
+    let links_tested = 0;
+
+    cy.get('cd-hosts a.service-link')
+      .should('have.length.greaterThan', 0)
+      .then(($elems) => {
+        $elems.each((_i, $el) => {
+          // click link, check it worked by looking for changed breadcrumb,
+          // navigate back to hosts page, repeat until all links checked
+          cy.contains('a', $el.innerText).should('exist').click();
+          this.expectBreadcrumbText('Performance Counters');
+          this.navigateTo();
+          links_tested++;
+        });
+        // check if any links were actually tested
+        expect(links_tested).gt(0);
+      });
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.e2e-spec.ts
new file mode 100644 (file)
index 0000000..0e918fb
--- /dev/null
@@ -0,0 +1,73 @@
+import { PoolPageHelper } from '../pools/pools.po';
+import { ConfigurationPageHelper } from './configuration.po';
+import { LogsPageHelper } from './logs.po';
+
+describe('Logs page', () => {
+  const logs = new LogsPageHelper();
+  const pools = new PoolPageHelper();
+  const configuration = new ConfigurationPageHelper();
+
+  const poolname = 'e2e_logs_test_pool';
+  const configname = 'log_graylog_port';
+  const today = new Date();
+  let hour = today.getHours();
+  if (hour > 12) {
+    hour = hour - 12;
+  }
+  const minute = today.getMinutes();
+
+  beforeEach(() => {
+    cy.login();
+  });
+
+  describe('breadcrumb and tab tests', () => {
+    beforeEach(() => {
+      logs.navigateTo();
+    });
+
+    it('should open and show breadcrumb', () => {
+      logs.expectBreadcrumbText('Logs');
+    });
+
+    it('should show two tabs', () => {
+      logs.getTabsCount().should('eq', 2);
+    });
+
+    it('should show cluster logs tab at first', () => {
+      logs.getTabText(0).should('eq', 'Cluster Logs');
+    });
+
+    it('should show audit logs as a second tab', () => {
+      logs.getTabText(1).should('eq', 'Audit Logs');
+    });
+  });
+
+  describe('audit logs respond to pool creation and deletion test', () => {
+    it('should create pool and check audit logs reacted', () => {
+      pools.navigateTo('create');
+      pools.create(poolname, 8);
+      pools.navigateTo();
+      pools.exist(poolname, true);
+      logs.checkAuditForPoolFunction(poolname, 'create', hour, minute);
+    });
+
+    it('should delete pool and check audit logs reacted', () => {
+      pools.navigateTo();
+      pools.delete(poolname);
+      logs.checkAuditForPoolFunction(poolname, 'delete', hour, minute);
+    });
+  });
+
+  describe('audit logs respond to editing configuration setting test', () => {
+    it('should change config settings and check audit logs reacted', () => {
+      configuration.navigateTo();
+      configuration.edit(configname, ['global', '5']);
+
+      logs.navigateTo();
+      logs.checkAuditForConfigChange(configname, 'global', hour, minute);
+
+      configuration.navigateTo();
+      configuration.configClear(configname);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/logs.po.ts
new file mode 100644 (file)
index 0000000..bf5776c
--- /dev/null
@@ -0,0 +1,70 @@
+import { PageHelper } from '../page-helper.po';
+
+export class LogsPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/logs', id: 'cd-logs' }
+  };
+
+  checkAuditForPoolFunction(poolname: string, poolfunction: string, hour: number, minute: number) {
+    this.navigateTo();
+
+    // sometimes the modal from deleting pool is still present at this point.
+    // This wait makes sure it isn't
+    cy.contains('.modal-dialog', 'Delete Pool').should('not.exist');
+
+    // go to audit logs tab
+    cy.contains('.nav-link', 'Audit Logs').click();
+
+    // Enter an earliest time so that no old messages with the same pool name show up
+    cy.get('.bs-timepicker-field').its(0).clear();
+
+    if (hour < 10) {
+      cy.get('.bs-timepicker-field').its(0).type('0');
+    }
+    cy.get('.bs-timepicker-field').its(0).type(`${hour}`);
+
+    cy.get('.bs-timepicker-field').its(1).clear();
+    if (minute < 10) {
+      cy.get('.bs-timepicker-field').its(1).type('0');
+    }
+    cy.get('.bs-timepicker-field').its(1).type(`${minute}`);
+
+    // Enter the pool name into the filter box
+    cy.get('input.form-control.ng-valid').first().clear().type(poolname);
+
+    cy.get('.tab-pane.active')
+      .get('.card-body')
+      .get('.message')
+      .should('contain.text', poolname)
+      .and('contain.text', `pool ${poolfunction}`);
+  }
+
+  checkAuditForConfigChange(configname: string, setting: string, hour: number, minute: number) {
+    this.navigateTo();
+
+    // go to audit logs tab
+    cy.contains('.nav-link', 'Audit Logs').click();
+
+    // Enter an earliest time so that no old messages with the same config name show up
+    cy.get('.bs-timepicker-field').its(0).clear();
+    if (hour < 10) {
+      cy.get('.bs-timepicker-field').its(0).type('0');
+    }
+    cy.get('.bs-timepicker-field').its(0).type(`${hour}`);
+
+    cy.get('.bs-timepicker-field').its(1).clear();
+    if (minute < 10) {
+      cy.get('.bs-timepicker-field').its(1).type('0');
+    }
+    cy.get('.bs-timepicker-field').its(1).type(`${minute}`);
+
+    // Enter the config name into the filter box
+    cy.get('input.form-control.ng-valid').first().clear().type(configname);
+
+    cy.get('.tab-pane.active')
+      .get('.card-body')
+      .get('.message')
+      .should('contain.text', configname)
+      .and('contain.text', setting);
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.e2e-spec.ts
new file mode 100644 (file)
index 0000000..e829df0
--- /dev/null
@@ -0,0 +1,98 @@
+import { Input, ManagerModulesPageHelper } from './mgr-modules.po';
+
+describe('Manager modules page', () => {
+  const mgrmodules = new ManagerModulesPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    mgrmodules.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      mgrmodules.expectBreadcrumbText('Manager modules');
+    });
+  });
+
+  describe('verifies editing functionality for manager modules', () => {
+    it('should test editing on diskprediction_cloud module', () => {
+      const diskpredCloudArr: Input[] = [
+        {
+          id: 'diskprediction_cert_context',
+          newValue: 'Foo',
+          oldValue: ''
+        },
+        {
+          id: 'sleep_interval',
+          newValue: '456',
+          oldValue: '60'
+        }
+      ];
+      mgrmodules.editMgrModule('diskprediction_cloud', diskpredCloudArr);
+    });
+
+    it('should test editing on balancer module', () => {
+      const balancerArr: Input[] = [
+        {
+          id: 'crush_compat_max_iterations',
+          newValue: '123',
+          oldValue: '25'
+        }
+      ];
+      mgrmodules.editMgrModule('balancer', balancerArr);
+    });
+
+    it('should test editing on dashboard module', () => {
+      const dashboardArr: Input[] = [
+        {
+          id: 'RGW_API_USER_ID',
+          newValue: 'rq',
+          oldValue: ''
+        },
+        {
+          id: 'GRAFANA_API_PASSWORD',
+          newValue: 'rafa',
+          oldValue: ''
+        }
+      ];
+      mgrmodules.editMgrModule('dashboard', dashboardArr);
+    });
+
+    it('should test editing on devicehealth module', () => {
+      const devHealthArray: Input[] = [
+        {
+          id: 'mark_out_threshold',
+          newValue: '1987',
+          oldValue: '2419200'
+        },
+        {
+          id: 'pool_name',
+          newValue: 'sox',
+          oldValue: 'device_health_metrics'
+        },
+        {
+          id: 'retention_period',
+          newValue: '1999',
+          oldValue: '15552000'
+        },
+        {
+          id: 'scrape_frequency',
+          newValue: '2020',
+          oldValue: '86400'
+        },
+        {
+          id: 'sleep_interval',
+          newValue: '456',
+          oldValue: '600'
+        },
+        {
+          id: 'warn_threshold',
+          newValue: '567',
+          oldValue: '7257600'
+        }
+      ];
+
+      mgrmodules.editMgrModule('devicehealth', devHealthArray);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/mgr-modules.po.ts
new file mode 100644 (file)
index 0000000..8faaff0
--- /dev/null
@@ -0,0 +1,53 @@
+import { PageHelper } from '../page-helper.po';
+
+export class Input {
+  id: string;
+  oldValue: string;
+  newValue: string;
+}
+
+export class ManagerModulesPageHelper extends PageHelper {
+  pages = { index: { url: '#/mgr-modules', id: 'cd-mgr-module-list' } };
+
+  /**
+   * Selects the Manager Module and then fills in the desired fields.
+   */
+  editMgrModule(name: string, inputs: Input[]) {
+    this.navigateEdit(name);
+
+    for (const input of inputs) {
+      // Clears fields and adds edits
+      cy.get(`#${input.id}`).clear().type(input.newValue);
+    }
+
+    cy.contains('button', 'Update').click();
+    // Checks if edits appear
+    this.getExpandCollapseElement(name).should('be.visible').click();
+
+    for (const input of inputs) {
+      cy.get('.datatable-body').last().contains(input.newValue);
+    }
+
+    // Clear mgr module of all edits made to it
+    this.navigateEdit(name);
+
+    // Clears the editable fields
+    for (const input of inputs) {
+      const id = `#${input.id}`;
+      cy.get(id).clear();
+      if (input.oldValue) {
+        cy.get(id).type(input.oldValue);
+      }
+    }
+
+    // Checks that clearing represents in details tab of module
+    cy.contains('button', 'Update').click();
+    this.getExpandCollapseElement(name).should('be.visible').click();
+    for (const input of inputs) {
+      cy.get('.datatable-body')
+        .eq(1)
+        .should('contain', input.id)
+        .and('not.contain', input.newValue);
+    }
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.e2e-spec.ts
new file mode 100644 (file)
index 0000000..8324ff8
--- /dev/null
@@ -0,0 +1,61 @@
+import { MonitorsPageHelper } from './monitors.po';
+
+describe('Monitors page', () => {
+  const monitors = new MonitorsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    monitors.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      monitors.expectBreadcrumbText('Monitors');
+    });
+  });
+
+  describe('fields check', () => {
+    it('should check status table is present', () => {
+      // check for table header 'Status'
+      monitors.getLegends().its(0).should('have.text', 'Status');
+
+      // check for fields in table
+      monitors
+        .getStatusTables()
+        .should('contain.text', 'Cluster ID')
+        .and('contain.text', 'monmap modified')
+        .and('contain.text', 'monmap epoch')
+        .and('contain.text', 'quorum con')
+        .and('contain.text', 'quorum mon')
+        .and('contain.text', 'required con')
+        .and('contain.text', 'required mon');
+    });
+
+    it('should check In Quorum and Not In Quorum tables are present', () => {
+      // check for there to be two tables
+      monitors.getDataTables().should('have.length', 2);
+
+      // check for table header 'In Quorum'
+      monitors.getLegends().its(1).should('have.text', 'In Quorum');
+
+      // check for table header 'Not In Quorum'
+      monitors.getLegends().its(2).should('have.text', 'Not In Quorum');
+
+      // verify correct columns on In Quorum table
+      monitors.getDataTableHeaders(0).contains('Name');
+
+      monitors.getDataTableHeaders(0).contains('Rank');
+
+      monitors.getDataTableHeaders(0).contains('Public Address');
+
+      monitors.getDataTableHeaders(0).contains('Open Sessions');
+
+      // verify correct columns on Not In Quorum table
+      monitors.getDataTableHeaders(1).contains('Name');
+
+      monitors.getDataTableHeaders(1).contains('Rank');
+
+      monitors.getDataTableHeaders(1).contains('Public Address');
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/monitors.po.ts
new file mode 100644 (file)
index 0000000..4113b99
--- /dev/null
@@ -0,0 +1,7 @@
+import { PageHelper } from '../page-helper.po';
+
+export class MonitorsPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/monitor', id: 'cd-monitor' }
+  };
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.e2e-spec.ts
new file mode 100644 (file)
index 0000000..15bc30f
--- /dev/null
@@ -0,0 +1,61 @@
+import { OSDsPageHelper } from './osds.po';
+
+describe('OSDs page', () => {
+  const osds = new OSDsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    osds.navigateTo();
+  });
+
+  describe('breadcrumb and tab tests', () => {
+    it('should open and show breadcrumb', () => {
+      osds.expectBreadcrumbText('OSDs');
+    });
+
+    it('should show two tabs', () => {
+      osds.getTabsCount().should('eq', 2);
+      osds.getTabText(0).should('eq', 'OSDs List');
+      osds.getTabText(1).should('eq', 'Overall Performance');
+    });
+  });
+
+  describe('check existence of fields on OSD page', () => {
+    it('should check that number of rows and count in footer match', () => {
+      osds.getTableTotalCount().then((text) => {
+        osds.getTableRows().its('length').should('equal', text);
+      });
+    });
+
+    it('should verify that buttons exist', () => {
+      cy.contains('button', 'Create');
+      cy.contains('button', 'Cluster-wide configuration');
+    });
+
+    describe('by selecting one row in OSDs List', () => {
+      beforeEach(() => {
+        osds.getExpandCollapseElement().click();
+      });
+
+      it('should verify that selected footer increases', () => {
+        osds.getTableSelectedCount().should('equal', 1);
+      });
+
+      it('should show the correct text for the tab labels', () => {
+        cy.get('#tabset-osd-details > div > tab').then(($tabs) => {
+          const tabHeadings = $tabs.map((_i, e) => e.getAttribute('heading')).get();
+
+          expect(tabHeadings).to.eql([
+            'Devices',
+            'Attributes (OSD map)',
+            'Metadata',
+            'Device health',
+            'Performance counter',
+            'Histogram',
+            'Performance Details'
+          ]);
+        });
+      });
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/cluster/osds.po.ts
new file mode 100644 (file)
index 0000000..36e0b4f
--- /dev/null
@@ -0,0 +1,5 @@
+import { PageHelper } from '../page-helper.po';
+
+export class OSDsPageHelper extends PageHelper {
+  pages = { index: { url: '#/osd', id: 'cd-osd-list' } };
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.e2e-spec.ts
new file mode 100644 (file)
index 0000000..63f5991
--- /dev/null
@@ -0,0 +1,16 @@
+import { FilesystemsPageHelper } from './filesystems.po';
+
+describe('Filesystems page', () => {
+  const filesystems = new FilesystemsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    filesystems.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      filesystems.expectBreadcrumbText('Filesystems');
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/filesystems/filesystems.po.ts
new file mode 100644 (file)
index 0000000..bd6e5b8
--- /dev/null
@@ -0,0 +1,5 @@
+import { PageHelper } from '../page-helper.po';
+
+export class FilesystemsPageHelper extends PageHelper {
+  pages = { index: { url: '#/cephfs', id: 'cd-cephfs-list' } };
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.e2e-spec.ts
new file mode 100644 (file)
index 0000000..0864a5e
--- /dev/null
@@ -0,0 +1,16 @@
+import { NfsPageHelper } from './nfs.po';
+
+describe('Nfs page', () => {
+  const nfs = new NfsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    nfs.navigateTo();
+  });
+
+  describe('breadcrumb test', () => {
+    it('should open and show breadcrumb', () => {
+      nfs.expectBreadcrumbText('NFS');
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/nfs/nfs.po.ts
new file mode 100644 (file)
index 0000000..7dd482a
--- /dev/null
@@ -0,0 +1,5 @@
+import { PageHelper } from '../page-helper.po';
+
+export class NfsPageHelper extends PageHelper {
+  pages = { index: { url: '#/nfs', id: 'cd-nfs-501' } };
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/page-helper.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/page-helper.po.ts
new file mode 100644 (file)
index 0000000..07d772c
--- /dev/null
@@ -0,0 +1,259 @@
+interface Page {
+  url: string;
+  id: string;
+}
+
+export abstract class PageHelper {
+  pages: Record<string, Page>;
+
+  /**
+   * Decorator to be used on Helper methods to restrict access to one particular URL.  This shall
+   * help developers to prevent and highlight mistakes.  It also reduces boilerplate code and by
+   * thus, increases readability.
+   */
+  static restrictTo(page: string): Function {
+    return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
+      const fn: Function = descriptor.value;
+      descriptor.value = function (...args: any) {
+        cy.location('hash').should((url) => {
+          expect(url).to.eq(
+            page,
+            `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
+              `run on path "${page}", but was run on URL "${url}"`
+          );
+        });
+        fn.apply(this, args);
+      };
+    };
+  }
+
+  /**
+   * Navigates to the given page or to index.
+   * Waits until the page component is loaded
+   */
+  navigateTo(name: string = null) {
+    name = name || 'index';
+    const page = this.pages[name];
+
+    cy.visit(page.url);
+    cy.get(page.id);
+  }
+
+  /**
+   * Navigates back and waits for the hash to change
+   */
+  navigateBack() {
+    cy.location('hash').then((hash) => {
+      cy.go('back');
+      cy.location('hash').should('not.be', hash);
+    });
+  }
+
+  /**
+   * Navigates to the edit page
+   */
+  navigateEdit(name: string, select = true) {
+    if (select) {
+      this.navigateTo();
+      this.getFirstTableCell(name).click();
+    }
+    cy.contains('button', 'Edit').click();
+    this.expectBreadcrumbText('Edit');
+  }
+
+  /**
+   * Checks the active breadcrumb value.
+   */
+  expectBreadcrumbText(text: string) {
+    cy.get('.breadcrumb-item.active').should('have.text', text);
+  }
+
+  getTabText(index: number) {
+    return cy.get('.nav.nav-tabs li').its(index).text();
+  }
+
+  getTabsCount(): any {
+    return cy.get('.nav.nav-tabs li').its('length');
+  }
+
+  /**
+   * Helper method to select an option inside a select element.
+   * This method will also expect that the option was set.
+   * @param option The option text (not value) to be selected.
+   */
+  selectOption(selectionName: string, option: string) {
+    cy.get(`select[name=${selectionName}]`).select(option);
+    return this.expectSelectOption(selectionName, option);
+  }
+
+  /**
+   * Helper method to expect a set option inside a select element.
+   * @param option The selected option text (not value) that is to
+   *   be expected.
+   */
+  expectSelectOption(selectionName: string, option: string) {
+    return cy.get(`select[name=${selectionName}] option:checked`).contains(option);
+  }
+
+  getLegends() {
+    return cy.get('legend');
+  }
+
+  getToast() {
+    return cy.get('.ngx-toastr');
+  }
+
+  /**
+   * Waits for the table to load its data
+   * Should be used in all methods that access the datatable
+   */
+  private waitDataTableToLoad() {
+    cy.get('cd-table').should('exist');
+    cy.get('datatable-scroller, .empty-row');
+  }
+
+  getDataTables() {
+    this.waitDataTableToLoad();
+
+    return cy.get('cd-table .dataTables_wrapper');
+  }
+
+  getTableTotalCount() {
+    this.waitDataTableToLoad();
+
+    return cy.get('.datatable-footer-inner .page-count span').then(($elem) => {
+      const text = $elem
+        .filter((_i, e) => e.innerText.includes('total'))
+        .first()
+        .text();
+
+      return Number(text.match(/(\d+)\s+total/)[1]);
+    });
+  }
+
+  getTableSelectedCount() {
+    this.waitDataTableToLoad();
+
+    return cy.get('.datatable-footer-inner .page-count span').then(($elem) => {
+      const text = $elem
+        .filter((_i, e) => e.innerText.includes('selected'))
+        .first()
+        .text();
+
+      return Number(text.match(/(\d+)\s+selected/)[1]);
+    });
+  }
+
+  getTableFoundCount() {
+    this.waitDataTableToLoad();
+
+    return cy.get('.datatable-footer-inner .page-count span').then(($elem) => {
+      const text = $elem
+        .filter((_i, e) => e.innerText.includes('found'))
+        .first()
+        .text();
+
+      return Number(text.match(/(\d+)\s+found/)[1]);
+    });
+  }
+
+  getTableRow(content: string) {
+    this.waitDataTableToLoad();
+
+    this.seachTable(content);
+    return cy.contains('.datatable-body-row', content);
+  }
+
+  getTableRows() {
+    this.waitDataTableToLoad();
+
+    return cy.get('datatable-row-wrapper');
+  }
+
+  /**
+   * Returns the first table cell.
+   * Optionally, you can specify the content of the cell.
+   */
+  getFirstTableCell(content?: string) {
+    this.waitDataTableToLoad();
+
+    if (content) {
+      this.seachTable(content);
+      return cy.contains('.datatable-body-cell-label', content);
+    } else {
+      return cy.get('.datatable-body-cell-label').first();
+    }
+  }
+
+  getExpandCollapseElement(content?: string) {
+    this.waitDataTableToLoad();
+
+    if (content) {
+      return cy.contains('.datatable-body-row', content).find('.tc_expand-collapse');
+    } else {
+      return cy.get('.tc_expand-collapse').first();
+    }
+  }
+  /**
+   * Gets column headers of table
+   */
+  getDataTableHeaders(index = 0) {
+    this.waitDataTableToLoad();
+
+    return cy.get('.datatable-header').its(index).find('.datatable-header-cell-label');
+  }
+
+  /**
+   * Grabs striped tables
+   */
+  getStatusTables() {
+    return cy.get('.table.table-striped');
+  }
+
+  filterTable(name: string, option: string) {
+    this.waitDataTableToLoad();
+
+    cy.get('.tc_filter_name > a').click();
+    cy.contains(`.tc_filter_name .dropdown-item`, name).click();
+
+    cy.get('.tc_filter_option > a').click();
+    cy.contains(`.tc_filter_option .dropdown-item`, option).click();
+  }
+
+  seachTable(text: string) {
+    this.waitDataTableToLoad();
+
+    cy.get('cd-table .dataTables_paginate input').first().clear().type('10');
+    cy.get('cd-table .search input').first().clear().type(text);
+  }
+
+  clearTableSearchInput() {
+    this.waitDataTableToLoad();
+
+    return cy.get('cd-table .search button').click();
+  }
+
+  /**
+   * This is a generic method to delete table rows.
+   * It will select the first row that contains the provided name and delete it.
+   * After that it will wait until the row is no longer displayed.
+   */
+  delete(name: string) {
+    // Selects row
+    this.getFirstTableCell(name).click();
+
+    // Clicks on table Delete button
+    cy.get('.table-actions button.dropdown-toggle').first().click(); // open submenu
+    cy.get('li.delete a').click(); // click on "delete" menu item
+
+    // Confirms deletion
+    cy.get('.custom-control-label').click();
+    cy.contains('button', 'Delete').click();
+
+    // Wait for modal to close
+    cy.get('cd-modal').should('not.exist');
+
+    // Waits for item to be removed from table
+    this.getFirstTableCell(name).should('not.exist');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.e2e-spec.ts
new file mode 100644 (file)
index 0000000..fd22175
--- /dev/null
@@ -0,0 +1,47 @@
+import { PoolPageHelper } from './pools.po';
+
+describe('Pools page', () => {
+  const pools = new PoolPageHelper();
+  const poolName = 'pool_e2e_pool/test';
+
+  beforeEach(() => {
+    cy.login();
+    pools.navigateTo();
+  });
+
+  describe('breadcrumb and tab tests', () => {
+    it('should open and show breadcrumb', () => {
+      pools.expectBreadcrumbText('Pools');
+    });
+
+    it('should show two tabs', () => {
+      pools.getTabsCount().should('equal', 2);
+    });
+
+    it('should show pools list tab at first', () => {
+      pools.getTabText(0).should('eq', 'Pools List');
+    });
+
+    it('should show overall performance as a second tab', () => {
+      pools.getTabText(1).should('eq', 'Overall Performance');
+    });
+  });
+
+  describe('Create, update and destroy', () => {
+    it('should create a pool', () => {
+      pools.exist(poolName, false);
+      pools.navigateTo('create');
+      pools.create(poolName, 8);
+      pools.exist(poolName, true);
+    });
+
+    it('should edit a pools placement group', () => {
+      pools.exist(poolName, true);
+      pools.edit_pool_pg(poolName, 32);
+    });
+
+    it('should delete a pool', () => {
+      pools.delete(poolName);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/pools/pools.po.ts
new file mode 100644 (file)
index 0000000..31d1698
--- /dev/null
@@ -0,0 +1,58 @@
+import { PageHelper } from '../page-helper.po';
+
+const pages = {
+  index: { url: '#/pool', id: 'cd-pool-list' },
+  create: { url: '#/pool/create', id: 'cd-pool-form' }
+};
+
+export class PoolPageHelper extends PageHelper {
+  pages = pages;
+
+  private isPowerOf2(n: number) {
+    // tslint:disable-next-line: no-bitwise
+    return expect((n & (n - 1)) === 0, `Placement groups ${n} are not a power of 2`).to.be.true;
+  }
+
+  @PageHelper.restrictTo(pages.index.url)
+  exist(name: string, oughtToBePresent = true) {
+    const waitRule = oughtToBePresent ? 'be.visible' : 'not.exist';
+    this.getFirstTableCell(name).should(waitRule);
+  }
+
+  @PageHelper.restrictTo(pages.create.url)
+  create(name: string, placement_groups: number, ...apps: string[]) {
+    cy.get('input[name=name]').clear().type(name);
+
+    this.isPowerOf2(placement_groups);
+
+    this.selectOption('poolType', 'replicated');
+
+    this.expectSelectOption('pgAutoscaleMode', 'on');
+    this.selectOption('pgAutoscaleMode', 'off'); // To show pgNum field
+    cy.get('input[name=pgNum]').clear().type(`${placement_groups}`);
+    this.setApplications(apps);
+    cy.get('cd-submit-button').click();
+  }
+
+  edit_pool_pg(name: string, new_pg: number, wait = true) {
+    this.isPowerOf2(new_pg);
+    this.navigateEdit(name);
+
+    cy.get('input[name=pgNum]').clear().type(`${new_pg}`);
+    cy.get('cd-submit-button').click();
+    const str = `${new_pg} active+clean`;
+    this.getTableRow(name);
+    if (wait) {
+      this.getTableRow(name).contains(str);
+    }
+  }
+
+  private setApplications(apps: string[]) {
+    if (!apps || apps.length === 0) {
+      return;
+    }
+    cy.get('.float-left.mr-2.select-menu-edit').click();
+    cy.get('.popover-content.popover-body').should('be.visible');
+    apps.forEach((app) => cy.get('.select-menu-item-content').contains(app).click());
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.e2e-spec.ts
new file mode 100644 (file)
index 0000000..e5e0daa
--- /dev/null
@@ -0,0 +1,56 @@
+import { BucketsPageHelper } from './buckets.po';
+
+describe('RGW buckets page', () => {
+  const buckets = new BucketsPageHelper();
+  const bucket_name = 'e2ebucket';
+
+  beforeEach(() => {
+    cy.login();
+    buckets.navigateTo();
+  });
+
+  describe('breadcrumb tests', () => {
+    it('should open and show breadcrumb', () => {
+      buckets.expectBreadcrumbText('Buckets');
+    });
+  });
+
+  describe('create, edit & delete bucket tests', () => {
+    it('should create bucket', () => {
+      buckets.navigateTo('create');
+      buckets.create(
+        bucket_name,
+        '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
+        'default-placement'
+      );
+      buckets.getFirstTableCell(bucket_name).should('exist');
+    });
+
+    it('should edit bucket', () => {
+      buckets.edit(bucket_name, 'dev');
+      buckets.getDataTables().should('contain.text', 'dev');
+    });
+
+    it('should delete bucket', () => {
+      buckets.delete(bucket_name);
+    });
+  });
+
+  describe('Invalid Input in Create and Edit tests', () => {
+    it('should test invalid inputs in create fields', () => {
+      buckets.testInvalidCreate();
+    });
+
+    it('should test invalid input in edit owner field', () => {
+      buckets.navigateTo('create');
+      buckets.create(
+        bucket_name,
+        '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
+        'default-placement'
+      );
+      buckets.testInvalidEdit(bucket_name);
+      buckets.navigateTo();
+      buckets.delete(bucket_name);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/buckets.po.ts
new file mode 100644 (file)
index 0000000..0cb1f76
--- /dev/null
@@ -0,0 +1,156 @@
+import { PageHelper } from '../page-helper.po';
+
+const pages = {
+  index: { url: '#/rgw/bucket', id: 'cd-rgw-bucket-list' },
+  create: { url: '#/rgw/bucket/create', id: 'cd-rgw-bucket-form' }
+};
+
+export class BucketsPageHelper extends PageHelper {
+  pages = pages;
+
+  versioningStateEnabled = 'Enabled';
+  versioningStateSuspended = 'Suspended';
+
+  private selectOwner(owner: string) {
+    return this.selectOption('owner', owner);
+  }
+
+  private selectPlacementTarget(placementTarget: string) {
+    return this.selectOption('placement-target', placementTarget);
+  }
+
+  @PageHelper.restrictTo(pages.create.url)
+  create(name: string, owner: string, placementTarget: string) {
+    // Enter in bucket name
+    cy.get('#bid').type(name);
+
+    // Select bucket owner
+    this.selectOwner(owner);
+    cy.get('#owner').should('have.class', 'ng-valid');
+
+    // Select bucket placement target:
+    this.selectPlacementTarget(placementTarget);
+    cy.get('#placement-target').should('have.class', 'ng-valid');
+
+    // Click the create button and wait for bucket to be made
+    cy.contains('button', 'Create Bucket').click();
+
+    this.getFirstTableCell(name).should('exist');
+  }
+
+  @PageHelper.restrictTo(pages.index.url)
+  edit(name: string, new_owner: string) {
+    this.navigateEdit(name);
+
+    cy.get('input[name=placement-target]').should('have.value', 'default-placement');
+    this.selectOwner(new_owner);
+
+    // Enable versioning
+    cy.get('input[id=versioning]').should('not.be.checked');
+    cy.get('label[for=versioning]').click();
+    cy.get('input[id=versioning]').should('be.checked');
+
+    cy.contains('button', 'Edit Bucket').click();
+
+    // wait to be back on buckets page with table visible and click
+    this.getExpandCollapseElement(name).click();
+
+    // check its details table for edited owner field
+    cy.get('.table.table-striped.table-bordered')
+      .first()
+      .should('contains.text', new_owner)
+      .as('bucketDataTable');
+
+    // Check versioning enabled:
+    cy.get('@bucketDataTable').find('tr').its(2).find('td').last().should('have.text', new_owner);
+    cy.get('@bucketDataTable').find('tr').its(11).find('td').last().as('versioningValueCell');
+
+    cy.get('@versioningValueCell').should('have.text', this.versioningStateEnabled);
+
+    // Disable versioning:
+    this.navigateEdit(name, false);
+
+    cy.get('label[for=versioning]').click();
+    cy.get('input[id=versioning]').should('not.be.checked');
+    cy.contains('button', 'Edit Bucket').click();
+
+    // Check versioning suspended:
+    this.getExpandCollapseElement(name).click();
+
+    return cy.get('@versioningValueCell').should('have.text', this.versioningStateSuspended);
+  }
+
+  testInvalidCreate() {
+    this.navigateTo('create');
+    cy.get('#bid').as('nameInputField'); // Grabs name box field
+
+    // Gives an invalid name (too short), then waits for dashboard to determine validity
+    cy.get('@nameInputField').type('rq');
+
+    cy.contains('button', 'Create Bucket').click(); // To trigger a validation
+
+    // Waiting for website to decide if name is valid or not
+    // Check that name input field was marked invalid in the css
+    cy.get('@nameInputField')
+      .should('not.have.class', 'ng-pending')
+      .and('have.class', 'ng-invalid');
+
+    // Check that error message was printed under name input field
+    cy.get('#bid + .invalid-feedback').should('have.text', 'The value is not valid.');
+
+    // Test invalid owner input
+    // select some valid option. The owner drop down error message will not appear unless a valid user was selected at
+    // one point before the invalid placeholder user is selected.
+    this.selectOwner('dev');
+
+    // select the first option, which is invalid because it is a placeholder
+    this.selectOwner('-- Select a user --');
+
+    cy.get('@nameInputField').click();
+
+    // Check that owner drop down field was marked invalid in the css
+    cy.get('#owner').should('have.class', 'ng-invalid');
+
+    // Check that error message was printed under owner drop down field
+    cy.get('#owner + .invalid-feedback').should('have.text', 'This field is required.');
+
+    // Check invalid placement target input
+    this.selectOwner('dev');
+    // The drop down error message will not appear unless a valid option is previsously selected.
+    this.selectPlacementTarget('default-placement');
+    this.selectPlacementTarget('-- Select a placement target --');
+    cy.get('@nameInputField').click(); // Trigger validation
+    cy.get('#placement-target').should('have.class', 'ng-invalid');
+    cy.get('#placement-target + .invalid-feedback').should('have.text', 'This field is required.');
+
+    // Clicks the Create Bucket button but the page doesn't move.
+    // Done by testing for the breadcrumb
+    cy.contains('button', 'Create Bucket').click(); // Clicks Create Bucket button
+    this.expectBreadcrumbText('Create');
+    // content in fields seems to subsist through tests if not cleared, so it is cleared
+    cy.get('@nameInputField').clear();
+    return cy.contains('button', 'Cancel').click();
+  }
+
+  testInvalidEdit(name: string) {
+    this.navigateEdit(name);
+
+    cy.get('input[id=versioning]').should('exist').and('not.be.checked');
+
+    // Chooses 'Select a user' rather than a valid owner on Edit Bucket page
+    // and checks if it's an invalid input
+
+    // select the first option, which is invalid because it is a placeholder
+    this.selectOwner('-- Select a user --');
+
+    cy.contains('button', 'Edit Bucket').click();
+
+    // Check that owner drop down field was marked invalid in the css
+    cy.get('#owner').should('have.class', 'ng-invalid');
+
+    // Check that error message was printed under owner drop down field
+    cy.get('#owner + .invalid-feedback').should('have.text', 'This field is required.');
+
+    this.expectBreadcrumbText('Edit');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.e2e-spec.ts
new file mode 100644 (file)
index 0000000..03b2ca8
--- /dev/null
@@ -0,0 +1,34 @@
+import { DaemonsPageHelper } from './daemons.po';
+
+describe('RGW daemons page', () => {
+  const daemons = new DaemonsPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    daemons.navigateTo();
+  });
+
+  describe('breadcrumb and tab tests', () => {
+    it('should open and show breadcrumb', () => {
+      daemons.expectBreadcrumbText('Daemons');
+    });
+
+    it('should show two tabs', () => {
+      daemons.getTabsCount().should('eq', 2);
+    });
+
+    it('should show daemons list tab at first', () => {
+      daemons.getTabText(0).should('eq', 'Daemons List');
+    });
+
+    it('should show overall performance as a second tab', () => {
+      daemons.getTabText(1).should('eq', 'Overall Performance');
+    });
+  });
+
+  describe('details and performance counters table tests', () => {
+    it('should check that details/performance tables are visible when daemon is selected', () => {
+      daemons.checkTables();
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/daemons.po.ts
new file mode 100644 (file)
index 0000000..0ca6066
--- /dev/null
@@ -0,0 +1,42 @@
+import { PageHelper } from '../page-helper.po';
+
+export class DaemonsPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/rgw/daemon', id: 'cd-rgw-daemon-list' }
+  };
+
+  getTableCell(tableIndex: number) {
+    return cy
+      .get('.tab-container')
+      .its(1)
+      .find('cd-table')
+      .its(tableIndex)
+      .find('datatable-body-cell');
+  }
+
+  checkTables() {
+    // click on a daemon so details table appears
+    cy.get('.datatable-body-cell-label').first().click();
+
+    // check details table is visible
+    // check at least one field is present
+    this.getTableCell(0).should('visible').should('contain.text', 'ceph_version');
+    // check performance counters table is not currently visible
+    this.getTableCell(1).should('not.be.visible');
+
+    // click on performance counters tab and check table is loaded
+    cy.contains('.nav-link', 'Performance Counters').click();
+
+    // check at least one field is present
+    this.getTableCell(1).should('be.visible').should('contain.text', 'objecter.op_r');
+    // check details table is not currently visible
+    this.getTableCell(0).should('not.be.visible');
+
+    // click on performance details tab
+    cy.contains('.nav-link', 'Performance Details').click();
+
+    // checks the other tabs' content isn't visible
+    this.getTableCell(0).should('not.be.visible');
+    this.getTableCell(1).should('not.be.visible');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.e2e-spec.ts
new file mode 100644 (file)
index 0000000..a8d7d45
--- /dev/null
@@ -0,0 +1,43 @@
+import { UsersPageHelper } from './users.po';
+
+describe('RGW users page', () => {
+  const users = new UsersPageHelper();
+  const user_name = 'e2e_000user_create_edit_delete';
+
+  beforeEach(() => {
+    cy.login();
+    users.navigateTo();
+  });
+
+  describe('breadcrumb tests', () => {
+    it('should open and show breadcrumb', () => {
+      users.expectBreadcrumbText('Users');
+    });
+  });
+
+  describe('create, edit & delete user tests', () => {
+    it('should create user', () => {
+      users.navigateTo('create');
+      users.create(user_name, 'Some Name', 'original@website.com', '1200');
+      users.getFirstTableCell(user_name).should('exist');
+    });
+
+    it('should edit users full name, email and max buckets', () => {
+      users.edit(user_name, 'Another Identity', 'changed@othersite.com', '1969');
+    });
+
+    it('should delete user', () => {
+      users.delete(user_name);
+    });
+  });
+
+  describe('Invalid input tests', () => {
+    it('should put invalid input into user creation form and check fields are marked invalid', () => {
+      users.invalidCreate();
+    });
+
+    it('should put invalid input into user edit form and check fields are marked invalid', () => {
+      users.invalidEdit();
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/rgw/users.po.ts
new file mode 100644 (file)
index 0000000..f654645
--- /dev/null
@@ -0,0 +1,130 @@
+import { PageHelper } from '../page-helper.po';
+
+const pages = {
+  index: { url: '#/rgw/user', id: 'cd-rgw-user-list' },
+  create: { url: '#/rgw/user/create', id: 'cd-rgw-user-form' }
+};
+
+export class UsersPageHelper extends PageHelper {
+  pages = pages;
+
+  @PageHelper.restrictTo(pages.create.url)
+  create(username: string, fullname: string, email: string, maxbuckets: string) {
+    // Enter in  username
+    cy.get('#uid').type(username);
+
+    // Enter in full name
+    cy.get('#display_name').click().type(fullname);
+
+    // Enter in email
+    cy.get('#email').click().type(email);
+
+    // Enter max buckets
+    this.selectOption('max_buckets_mode', 'Custom');
+    cy.get('#max_buckets').click().clear().type(maxbuckets);
+
+    // Click the create button and wait for user to be made
+    cy.contains('button', 'Create User').click();
+    this.getFirstTableCell(username).should('exist');
+  }
+
+  @PageHelper.restrictTo(pages.index.url)
+  edit(name: string, new_fullname: string, new_email: string, new_maxbuckets: string) {
+    this.navigateEdit(name);
+
+    // Change the full name field
+    cy.get('#display_name').click().clear().type(new_fullname);
+
+    // Change the email field
+    cy.get('#email').click().clear().type(new_email);
+
+    // Change the max buckets field
+    this.selectOption('max_buckets_mode', 'Custom');
+    cy.get('#max_buckets').click().clear().type(new_maxbuckets);
+
+    cy.contains('button', 'Edit User').click();
+
+    // Click the user and check its details table for updated content
+    this.getExpandCollapseElement(name).click();
+    cy.get('.active.tab-pane')
+      .should('contain.text', new_fullname)
+      .and('contain.text', new_email)
+      .and('contain.text', new_maxbuckets);
+  }
+
+  invalidCreate() {
+    const uname = '000invalid_create_user';
+    // creating this user in order to check that you can't give two users the same name
+    this.navigateTo('create');
+    this.create(uname, 'xxx', 'xxx@xxx', '1');
+
+    this.navigateTo('create');
+
+    // Username
+    cy.get('#uid')
+      // No username had been entered. Field should be invalid
+      .should('have.class', 'ng-invalid')
+      // Try to give user already taken name. Should make field invalid.
+      .type(uname)
+      .blur()
+      .should('have.class', 'ng-invalid');
+    cy.contains('#uid + .invalid-feedback', 'The chosen user ID is already in use.');
+
+    // check that username field is marked invalid if username has been cleared off
+    cy.get('#uid').clear().blur().should('have.class', 'ng-invalid');
+    cy.contains('#uid + .invalid-feedback', 'This field is required.');
+
+    // Full name
+    cy.get('#display_name')
+      // No display name has been given so field should be invalid
+      .should('have.class', 'ng-invalid')
+      // display name field should also be marked invalid if given input then emptied
+      .type('a')
+      .clear()
+      .blur()
+      .should('have.class', 'ng-invalid');
+    cy.contains('#display_name + .invalid-feedback', 'This field is required.');
+
+    // put invalid email to make field invalid
+    cy.get('#email').type('a').blur().should('have.class', 'ng-invalid');
+    cy.contains('#email + .invalid-feedback', 'This is not a valid email address.');
+
+    // put negative max buckets to make field invalid
+    this.expectSelectOption('max_buckets_mode', 'Custom');
+    cy.get('#max_buckets').clear().type('-5').blur().should('have.class', 'ng-invalid');
+    cy.contains('#max_buckets + .invalid-feedback', 'The entered value must be >= 1.');
+
+    this.navigateTo();
+    this.delete(uname);
+  }
+
+  invalidEdit() {
+    const uname = '000invalid_edit_user';
+    // creating this user to edit for the test
+    this.navigateTo('create');
+    this.create(uname, 'xxx', 'xxx@xxx', '1');
+
+    this.navigateEdit(name);
+
+    // put invalid email to make field invalid
+    cy.get('#email')
+      .clear()
+      .type('a')
+      .blur()
+      .should('not.have.class', 'ng-pending')
+      .should('have.class', 'ng-invalid');
+    cy.contains('#email + .invalid-feedback', 'This is not a valid email address.');
+
+    // empty the display name field making it invalid
+    cy.get('#display_name').clear().blur().should('have.class', 'ng-invalid');
+    cy.contains('#display_name + .invalid-feedback', 'This field is required.');
+
+    // put negative max buckets to make field invalid
+    this.expectSelectOption('max_buckets_mode', 'Custom');
+    cy.get('#max_buckets').clear().type('-5').blur().should('have.class', 'ng-invalid');
+    cy.contains('#max_buckets + .invalid-feedback', 'The entered value must be >= 1.');
+
+    this.navigateTo();
+    this.delete(uname);
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.e2e-spec.ts
new file mode 100644 (file)
index 0000000..f149a4b
--- /dev/null
@@ -0,0 +1,124 @@
+import { IscsiPageHelper } from '../block/iscsi.po';
+import { HostsPageHelper } from '../cluster/hosts.po';
+import { MonitorsPageHelper } from '../cluster/monitors.po';
+import { OSDsPageHelper } from '../cluster/osds.po';
+import { PageHelper } from '../page-helper.po';
+import { PoolPageHelper } from '../pools/pools.po';
+import { DaemonsPageHelper } from '../rgw/daemons.po';
+import { DashboardPageHelper } from './dashboard.po';
+
+describe('Dashboard Main Page', () => {
+  const dashboard = new DashboardPageHelper();
+  const daemons = new DaemonsPageHelper();
+  const hosts = new HostsPageHelper();
+  const osds = new OSDsPageHelper();
+  const pools = new PoolPageHelper();
+  const monitors = new MonitorsPageHelper();
+  const iscsi = new IscsiPageHelper();
+
+  beforeEach(() => {
+    cy.login();
+    dashboard.navigateTo();
+  });
+
+  describe('Check that all hyperlinks on info cards lead to the correct page and fields exist', () => {
+    it('should ensure that all linked info cards lead to correct page', () => {
+      const expectationMap = {
+        Monitors: 'Monitors',
+        OSDs: 'OSDs',
+        Hosts: 'Hosts',
+        'Object Gateways': 'Daemons',
+        'iSCSI Gateways': 'Overview',
+        Pools: 'Pools'
+      };
+
+      for (const [linkText, breadcrumbText] of Object.entries(expectationMap)) {
+        cy.location('hash').should('eq', '#/dashboard');
+        dashboard.clickInfoCardLink(linkText);
+        dashboard.expectBreadcrumbText(breadcrumbText);
+        dashboard.navigateBack();
+      }
+    });
+
+    it('should verify that info cards exist on dashboard in proper order', () => {
+      // Ensures that info cards are all displayed on the dashboard tab while being in the proper
+      // order, checks for card title and position via indexing into a list of all info cards.
+      const order = [
+        'Cluster Status',
+        'Monitors',
+        'OSDs',
+        'Manager Daemons',
+        'Hosts',
+        'Object Gateways',
+        'Metadata Servers',
+        'iSCSI Gateways',
+        'Client IOPS',
+        'Client Throughput',
+        'Client Read/Write',
+        'Recovery Throughput',
+        'Scrub',
+        'Pools',
+        'Raw Capacity',
+        'Objects',
+        'PGs per OSD',
+        'PG Status'
+      ];
+
+      for (let i = 0; i < order.length; i++) {
+        dashboard.infoCard(i).should('contain.text', order[i]);
+      }
+    });
+
+    it('should verify that info card group titles are present and in the right order', () => {
+      cy.location('hash').should('eq', '#/dashboard');
+      dashboard.infoGroupTitle(0).should('eq', 'Status');
+      dashboard.infoGroupTitle(1).should('eq', 'Performance');
+      dashboard.infoGroupTitle(2).should('eq', 'Capacity');
+    });
+  });
+
+  it('Should check that dashboard cards have correct information', () => {
+    interface TestSpec {
+      cardName: string;
+      regexMatcher?: RegExp;
+      pageObject: PageHelper;
+    }
+    const testSpecs: TestSpec[] = [
+      { cardName: 'Object Gateways', regexMatcher: /(\d+)\s+total/, pageObject: daemons },
+      { cardName: 'Monitors', regexMatcher: /(\d+)\s+\(quorum/, pageObject: monitors },
+      { cardName: 'Hosts', regexMatcher: /(\d+)\s+total/, pageObject: hosts },
+      { cardName: 'OSDs', regexMatcher: /(\d+)\s+total/, pageObject: osds },
+      { cardName: 'Pools', pageObject: pools },
+      { cardName: 'iSCSI Gateways', regexMatcher: /(\d+)\s+total/, pageObject: iscsi }
+    ];
+    for (let i = 0; i < testSpecs.length; i++) {
+      const spec = testSpecs[i];
+      dashboard.navigateTo();
+
+      dashboard.infoCardBodyText(spec.cardName).then((infoCardBodyText: string) => {
+        let dashCount = 0;
+
+        if (spec.regexMatcher) {
+          const match = infoCardBodyText.match(new RegExp(spec.regexMatcher));
+          expect(match).to.length.gt(
+            1,
+            `Regex ${spec.regexMatcher} did not find a match for card with name ` +
+              `${spec.cardName}`
+          );
+          dashCount = Number(match[1]);
+        } else {
+          dashCount = Number(infoCardBodyText);
+        }
+
+        spec.pageObject.navigateTo();
+        spec.pageObject.getTableTotalCount().then((tableCount) => {
+          expect(tableCount).to.eq(
+            dashCount,
+            `Text of card "${spec.cardName}" and regex "${spec.regexMatcher}" resulted in ${dashCount} ` +
+              `but did not match table count ${tableCount}`
+          );
+        });
+      });
+    }
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/dashboard.po.ts
new file mode 100644 (file)
index 0000000..0212573
--- /dev/null
@@ -0,0 +1,27 @@
+import { PageHelper } from '../page-helper.po';
+
+export class DashboardPageHelper extends PageHelper {
+  pages = { index: { url: '#/dashboard', id: 'cd-dashboard' } };
+
+  infoGroupTitle(index: number) {
+    return cy.get('.info-group-title').its(index).text();
+  }
+
+  clickInfoCardLink(cardName: string) {
+    cy.get(`cd-info-card[cardtitle="${cardName}"]`).contains('a', cardName).click();
+  }
+
+  infoCard(indexOrTitle: number | string) {
+    cy.get('cd-info-card').as('infoCards');
+
+    if (typeof indexOrTitle === 'number') {
+      return cy.get('@infoCards').its(indexOrTitle);
+    } else {
+      return cy.contains('cd-info-card a', indexOrTitle).parent().parent().parent().parent();
+    }
+  }
+
+  infoCardBodyText(infoCard: string) {
+    return this.infoCard(infoCard).find('.card-text').text();
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.e2e-spec.ts
new file mode 100644 (file)
index 0000000..b69f26f
--- /dev/null
@@ -0,0 +1,56 @@
+import { PoolPageHelper } from '../pools/pools.po';
+import { NotificationSidebarPageHelper } from './notification.po';
+
+describe('Notification page', () => {
+  const notification = new NotificationSidebarPageHelper();
+  const pools = new PoolPageHelper();
+  const poolName = 'e2e_notification_pool';
+
+  before(() => {
+    cy.login();
+    pools.navigateTo('create');
+    pools.create(poolName, 8);
+    pools.edit_pool_pg(poolName, 4, false);
+  });
+
+  after(() => {
+    cy.login();
+    pools.navigateTo();
+    pools.delete(poolName);
+  });
+
+  beforeEach(() => {
+    cy.login();
+    pools.navigateTo();
+  });
+
+  it('should open notification sidebar', () => {
+    notification.getSidebar().should('not.be.visible');
+    notification.open();
+    notification.getSidebar().should('be.visible');
+  });
+
+  it('should display a running task', () => {
+    notification.getToast().should('not.exist');
+
+    // Check that running task is shown.
+    notification.open();
+    notification.getTasks().contains(poolName).should('exist');
+
+    // Delete pool after task is complete (otherwise we get an error).
+    notification.getTasks().contains(poolName, { timeout: 300000 }).should('not.exist');
+  });
+
+  it('should have notifications', () => {
+    notification.open();
+    notification.getNotifications().should('have.length.gt', 0);
+  });
+
+  it('should clear notifications', () => {
+    notification.getToast().should('not.exist');
+    notification.open();
+    notification.getNotifications().should('have.length.gt', 0);
+    notification.getClearNotficationsBtn().should('be.visible');
+    notification.clearNotifications();
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/notification.po.ts
new file mode 100644 (file)
index 0000000..12c424e
--- /dev/null
@@ -0,0 +1,45 @@
+import { PageHelper } from '../page-helper.po';
+
+export class NotificationSidebarPageHelper extends PageHelper {
+  getNotificatinoIcon() {
+    return cy.get('cd-notifications a');
+  }
+
+  getSidebar() {
+    return cy.get('cd-notifications-sidebar');
+  }
+
+  getTasks() {
+    return this.getSidebar().find('.card.tc_task');
+  }
+
+  getNotifications() {
+    return this.getSidebar().find('.card.tc_notification');
+  }
+
+  getClearNotficationsBtn() {
+    return this.getSidebar().find('button.btn-block');
+  }
+
+  getCloseBtn() {
+    return this.getSidebar().find('button.close');
+  }
+
+  open() {
+    this.getNotificatinoIcon().click();
+    this.getSidebar().should('be.visible');
+  }
+
+  clearNotifications() {
+    // It can happen that although notifications are cleared, by the time we check the notifications
+    // amount, another notification can appear, so we check it more than once (if needed).
+    this.getClearNotficationsBtn().click();
+    this.getNotifications()
+      .should('have.length.gte', 0)
+      .then(($elems) => {
+        if ($elems.length > 0) {
+          this.clearNotifications();
+        }
+      });
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.e2e-spec.ts
new file mode 100644 (file)
index 0000000..7e76f16
--- /dev/null
@@ -0,0 +1,36 @@
+import { RoleMgmtPageHelper } from './role-mgmt.po';
+
+describe('Role Management page', () => {
+  const roleMgmt = new RoleMgmtPageHelper();
+  const role_name = 'e2e_role_mgmt_role';
+
+  beforeEach(() => {
+    cy.login();
+    roleMgmt.navigateTo();
+  });
+
+  describe('breadcrumb tests', () => {
+    it('should check breadcrumb on roles tab on user management page', () => {
+      roleMgmt.expectBreadcrumbText('Roles');
+    });
+
+    it('should check breadcrumb on role creation page', () => {
+      roleMgmt.navigateTo('create');
+      roleMgmt.expectBreadcrumbText('Create');
+    });
+  });
+
+  describe('role create, edit & delete test', () => {
+    it('should create a role', () => {
+      roleMgmt.create(role_name, 'An interesting description');
+    });
+
+    it('should edit a role', () => {
+      roleMgmt.edit(role_name, 'A far more interesting description');
+    });
+
+    it('should delete a role', () => {
+      roleMgmt.delete(role_name);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/role-mgmt.po.ts
new file mode 100644 (file)
index 0000000..2cbdef3
--- /dev/null
@@ -0,0 +1,40 @@
+import { PageHelper } from '../page-helper.po';
+
+export class RoleMgmtPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/user-management/roles', id: 'cd-role-list' },
+    create: { url: '#/user-management/roles/create', id: 'cd-role-form' }
+  };
+
+  create(name: string, description: string) {
+    this.navigateTo('create');
+    // Waits for data to load
+    cy.contains('grafana');
+
+    // fill in fields
+    cy.get('#name').type(name);
+    cy.get('#description').type(description);
+
+    // Click the create button and wait for role to be made
+    cy.contains('button', 'Create Role').click();
+    cy.get('.breadcrumb-item.active').should('not.have.text', 'Create');
+
+    this.getFirstTableCell(name).should('exist');
+  }
+
+  edit(name: string, description: string) {
+    this.navigateEdit(name);
+    // Waits for data to load
+    cy.contains('grafana');
+
+    // fill in fields with new values
+    cy.get('#description').clear().type(description);
+
+    // Click the edit button and check new values are present in table
+    cy.contains('button', 'Edit Role').click();
+    cy.get('.breadcrumb-item.active').should('not.have.text', 'Edit');
+
+    this.getFirstTableCell(name).should('exist');
+    this.getFirstTableCell(description).should('exist');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.e2e-spec.ts
new file mode 100644 (file)
index 0000000..57818db
--- /dev/null
@@ -0,0 +1,36 @@
+import { UserMgmtPageHelper } from './user-mgmt.po';
+
+describe('User Management page', () => {
+  const userMgmt = new UserMgmtPageHelper();
+  const user_name = 'e2e_user_mgmt_user';
+
+  beforeEach(() => {
+    cy.login();
+    userMgmt.navigateTo();
+  });
+
+  describe('breadcrumb tests', () => {
+    it('should check breadcrumb on users tab of user management page', () => {
+      userMgmt.expectBreadcrumbText('Users');
+    });
+
+    it('should check breadcrumb on user creation page', () => {
+      userMgmt.navigateTo('create');
+      userMgmt.expectBreadcrumbText('Create');
+    });
+  });
+
+  describe('user create, edit & delete test', () => {
+    it('should create a user', () => {
+      userMgmt.create(user_name, 'cool_password', 'Jeff', 'realemail@realwebsite.com');
+    });
+
+    it('should edit a user', () => {
+      userMgmt.edit(user_name, 'cool_password_number_2', 'Geoff', 'w@m');
+    });
+
+    it('should delete a user', () => {
+      userMgmt.delete(user_name);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/integration/ui/user-mgmt.po.ts
new file mode 100644 (file)
index 0000000..5afcdf3
--- /dev/null
@@ -0,0 +1,39 @@
+import { PageHelper } from '../page-helper.po';
+
+export class UserMgmtPageHelper extends PageHelper {
+  pages = {
+    index: { url: '#/user-management/users', id: 'cd-user-list' },
+    create: { url: '#/user-management/users/create', id: 'cd-user-form' }
+  };
+
+  create(username: string, password: string, name: string, email: string) {
+    this.navigateTo('create');
+
+    // fill in fields
+    cy.get('#username').type(username);
+    cy.get('#password').type(password);
+    cy.get('#confirmpassword').type(password);
+    cy.get('#name').type(name);
+    cy.get('#email').type(email);
+
+    // Click the create button and wait for user to be made
+    cy.contains('button', 'Create User').click();
+    this.getFirstTableCell(username).should('exist');
+  }
+
+  edit(username: string, password: string, name: string, email: string) {
+    this.navigateEdit(username);
+
+    // fill in fields with new values
+    cy.get('#password').clear().type(password);
+    cy.get('#confirmpassword').clear().type(password);
+    cy.get('#name').clear().type(name);
+    cy.get('#email').clear().type(email);
+
+    // Click the edit button and check new values are present in table
+    const editButton = cy.contains('button', 'Edit User');
+    editButton.click();
+    this.getFirstTableCell(email).should('exist');
+    this.getFirstTableCell(name).should('exist');
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/support/commands.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/support/commands.ts
new file mode 100644 (file)
index 0000000..0bcfe76
--- /dev/null
@@ -0,0 +1,47 @@
+declare global {
+  namespace Cypress {
+    interface Chainable<Subject> {
+      login(): void;
+      text(): Chainable<string>;
+    }
+  }
+}
+
+import { Permissions } from '../../src/app/shared/models/permissions';
+
+let auth: any;
+
+const fillAuth = () => {
+  window.localStorage.setItem('dashboard_username', auth.username);
+  window.localStorage.setItem('access_token', auth.token);
+  window.localStorage.setItem('dashboard_permissions', auth.permissions);
+  window.localStorage.setItem('user_pwd_expiration_date', auth.pwdExpirationDate);
+  window.localStorage.setItem('user_pwd_update_required', auth.pwdUpdateRequired);
+  window.localStorage.setItem('sso', auth.sso);
+};
+
+Cypress.Commands.add('login', () => {
+  const username = Cypress.env('LOGIN_USER') || 'admin';
+  const password = Cypress.env('LOGIN_PWD') || 'admin';
+
+  if (auth === undefined) {
+    cy.request({
+      method: 'POST',
+      url: 'api/auth',
+      body: { username: username, password: password }
+    }).then((resp) => {
+      auth = resp.body;
+      auth.permissions = JSON.stringify(new Permissions(auth.permissions));
+      auth.pwdExpirationDate = String(auth.pwdExpirationDate);
+      auth.pwdUpdateRequired = String(auth.pwdUpdateRequired);
+      auth.sso = String(auth.sso);
+      fillAuth();
+    });
+  } else {
+    fillAuth();
+  }
+});
+
+Cypress.Commands.add('text', { prevSubject: true }, (subject) => {
+  return subject.text();
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/support/index.ts b/ceph/src/pybind/mgr/dashboard/frontend/cypress/support/index.ts
new file mode 100644 (file)
index 0000000..750acb7
--- /dev/null
@@ -0,0 +1,5 @@
+import './commands';
+
+afterEach(() => {
+  cy.visit('#/403');
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/cypress/tsconfig.json b/ceph/src/pybind/mgr/dashboard/frontend/cypress/tsconfig.json
new file mode 100644 (file)
index 0000000..681a8b3
--- /dev/null
@@ -0,0 +1,13 @@
+{
+  "extends": "../tsconfig.json",
+  "exclude": [],
+  "include": [
+    "**/*.ts"
+  ],
+  "compilerOptions": {
+    "types": [
+      "cypress"
+    ],
+    "target": "es6"
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.5b0a7ba1cfec198ba8ed.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.5b0a7ba1cfec198ba8ed.js
new file mode 100644 (file)
index 0000000..6bfe099
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+26A":function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("s7LF"),i=e("LvDl"),u=e("GyhO"),s=e("cp0P"),a=e("NJ9Y"),o=(e("XED3"),e("QFaf")),r=e("kvvV");e("kn/O");class d{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.pools=[],this.directions=[{key:"rx-tx",desc:"Bidirectional"},{key:"rx",desc:"Unidirectional (receive-only)"}],this.createForm()}createForm(){this.importBootstrapForm=new o.a({siteName:new t.i("",{validators:[t.B.required]}),direction:new t.i("rx-tx",{}),pools:new t.k({},{validators:[this.validatePools()]}),token:new t.i("",{validators:[t.B.required,this.validateToken()]})})}ngOnInit(){this.rbdMirroringService.getSiteName().subscribe(l=>{this.importBootstrapForm.get("siteName").setValue(l.site_name)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(!l)return;this.pools=l.content_data.pools.reduce((l,n)=>(l.push({name:n.name,mirror_mode:n.mirror_mode}),l),[]);const n=this.importBootstrapForm.get("pools");i.each(this.pools,l=>{const e=l.name,i="disabled"===l.mirror_mode,u=n.controls[e];u?i&&u.disabled?u.enable():!i&&u.enabled&&(u.disable(),u.setValue(!0)):n.addControl(e,new t.i({value:!i,disabled:!i}))})})}ngOnDestroy(){this.subs&&this.subs.unsubscribe()}validatePools(){return l=>{let n=0;return i.each(l.controls,l=>{!0===l.value&&++n}),n>0?null:{requirePool:!0}}}validateToken(){return l=>{try{if(JSON.parse(atob(l.value)))return null}catch(n){}return{invalidToken:!0}}}import(){const l=[],n=[],e=this.importBootstrapForm.get("pools");i.each(e.controls,(e,t)=>{!0===e.value&&(l.push(t),e.disabled||n.push(t))});const t={mirror_mode:"image"};let o=Object(u.a)(this.rbdMirroringService.setSiteName(this.importBootstrapForm.getValue("siteName")),Object(s.a)(n.map(l=>this.rbdMirroringService.updatePool(l,t))));o=l.reduce((l,n)=>Object(u.a)(l,this.rbdMirroringService.importBootstrapToken(n,this.importBootstrapForm.getValue("direction"),this.importBootstrapForm.getValue("token"))),o).pipe(Object(a.a)());const d=()=>{this.rbdMirroringService.refresh(),this.importBootstrapForm.setErrors({cdSubmitButton:!0})};this.taskWrapper.wrapTaskAroundCall({task:new r.a("rbd/mirroring/bootstrap/import",{}),call:o}).subscribe(void 0,d,()=>{d(),this.modalRef.hide()})}}},"0BYw":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("EEJc"),o=e("ajRT"),r=e("mXUL"),d=e("IZUe"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("daK0"),v=e("LqlI"),b=e("aexS"),C=e("9nlD"),S=e("Ekvf"),_=e("F83c"),R=e("GiVz");e.d(n,"a",(function(){return q}));var y=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"pool"),l(n,6,0,"pool")}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["-- No rbd pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["-- Select a pool --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,k)),t["ɵdid"](8,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,I)),t["ɵdid"](10,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](12,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,N)),t["ɵdid"](14,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"pool"),l(n,6,0,"pool"),l(n,8,0,null===e.pools),l(n,10,0,null!==e.pools&&0===e.pools.length),l(n,12,0,null!==e.pools&&e.pools.length>0),l(n,14,0,e.pools)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Namespace already exists."]))],null,null)}function P(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,50,"cd-modal",[],null,null,null,a.c,a.b)),t["ɵdid"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Create Namespace"])),(l()(),t["ɵeld"](4,0,null,1,46,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,45,"form",[["name","namespaceForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,32,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](13,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","pool"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool"])),(l()(),t["ɵeld"](18,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](20,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,F)),t["ɵdid"](22,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,T)),t["ɵdid"](24,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](25,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](26,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","namespace"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](31,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](32,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","namespace"],["id","namespace"],["name","namespace"],["placeholder","Namespace name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,33)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,33).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,33)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,33)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](33,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](35,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](37,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](38,4210688,null,0,d.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](39,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,V)),t["ɵdid"](41,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,D)),t["ɵdid"](43,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](44,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](45,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](46,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t}),c.b,c.a)),t["ɵdid"](47,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Create Namespace"])),(l()(),t["ɵeld"](49,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](50,49152,null,0,h.a,[s.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.namespaceForm),l(n,10,0,e.namespaceForm),l(n,13,0),l(n,20,0,!e.poolPermission.read),l(n,22,0,e.poolPermission.read),l(n,24,0,e.namespaceForm.showError("pool",t["ɵnov"](n,7),"required")),l(n,26,0),l(n,35,0,"namespace"),l(n,38,0,""),l(n,39,0,"namespace"),l(n,41,0,e.namespaceForm.showError("namespace",t["ɵnov"](n,7),"required")),l(n,43,0,e.namespaceForm.showError("namespace",t["ɵnov"](n,7),"namespaceExists")),l(n,47,0,e.namespaceForm),l(n,50,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,12,0,t["ɵnov"](n,13).hasErrors,t["ɵnov"](n,13).hasSuccess),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess),l(n,32,0,t["ɵnov"](n,37).ngClassUntouched,t["ɵnov"](n,37).ngClassTouched,t["ɵnov"](n,37).ngClassPristine,t["ɵnov"](n,37).ngClassDirty,t["ɵnov"](n,37).ngClassValid,t["ɵnov"](n,37).ngClassInvalid,t["ɵnov"](n,37).ngClassPending,t["ɵnov"](n,39).validClass,t["ɵnov"](n,39).invalidClass)}))}function x(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-namespace-form-modal",[],null,null,null,P,y)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a,S.a,_.a,R.a],null,null)],(function(l,n){l(n,1,0)}),null)}var q=t["ɵccf"]("cd-rbd-namespace-form-modal",f.a,x,{},{},[])},"0rTx":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("2GqK"),v=e("F83c"),b=e("LqlI"),C=e("2EZI"),S=e("kn/O");e.d(n,"a",(function(){return k}));var _=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,47,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Restore Image"])),(l()(),t["ɵeld"](4,0,null,1,43,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,42,"form",[["class","form"],["name","restoreForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,29,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To restore"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](17,null,["","@",""])),(l()(),t["ɵted"](-1,null,[",  "])),(l()(),t["ɵeld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["type the image's new name and click"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](22,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Restore Image"])),(l()(),t["ɵted"](-1,null,[". "])),(l()(),t["ɵeld"](25,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](26,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["New Name"])),(l()(),t["ɵeld"](31,0,null,0,7,"input",[["autocomplete","off"],["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,32)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,32).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,32)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,32)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](32,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](34,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](36,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](37,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](38,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](40,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](41,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](42,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.restore()&&t),t}),c.b,c.a)),t["ɵdid"](44,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Restore Image"])),(l()(),t["ɵeld"](46,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["ɵdid"](47,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.restoreForm),l(n,10,0,e.restoreForm),l(n,26,0),l(n,34,0,"name"),l(n,37,0,""),l(n,38,0,"name"),l(n,40,0,e.restoreForm.showError("name",t["ɵnov"](n,7),"required")),l(n,44,0,e.restoreForm),l(n,47,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,17,0,e.imageSpec,e.imageId),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess),l(n,31,0,t["ɵnov"](n,36).ngClassUntouched,t["ɵnov"](n,36).ngClassTouched,t["ɵnov"](n,36).ngClassPristine,t["ɵnov"](n,36).ngClassDirty,t["ɵnov"](n,36).ngClassValid,t["ɵnov"](n,36).ngClassInvalid,t["ɵnov"](n,36).ngClassPending,t["ɵnov"](n,38).validClass,t["ɵnov"](n,38).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-restore-modal",[],null,null,null,y,_)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a,S.a],null,null)],(function(l,n){l(n,1,0)}),null)}var k=t["ɵccf"]("cd-rbd-trash-restore-modal",f.a,w,{},{},[])},"2GqK":function(l,n,e){"use strict";e.d(n,"a",(function(){return u})),e("F83c"),e("2EZI");var t=e("kvvV"),i=e("jVDg");e("kn/O");class u{constructor(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t}ngOnInit(){this.imageSpec=new i.a(this.poolName,this.namespace,this.imageName).toString(),this.restoreForm=this.fb.group({name:this.imageName})}restore(){const l=this.restoreForm.getValue("name"),n=new i.a(this.poolName,this.namespace,this.imageId);this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/restore",{image_id_spec:n.toString(),new_image_name:l}),call:this.rbdService.restoreTrash(n,l)}).subscribe(void 0,()=>{this.restoreForm.setErrors({cdSubmitButton:!0})},()=>{this.modalRef.hide()})}}},"2JDI":function(l,n,e){"use strict";e.d(n,"a",(function(){return a}));var t=e("wd/R"),i=(e("F83c"),e("2EZI"),e("1Ni5")),u=e("kvvV"),s=e("jVDg");e("kn/O");class a{constructor(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t,this.minDate=new Date,this.bsConfig={dateInputFormat:"YYYY-MM-DD HH:mm:ss",containerClass:"theme-default"},this.createForm()}createForm(){this.moveForm=this.fb.group({expiresAt:["",[i.a.custom("format",l=>!(""===l||t(l,"YYYY-MM-DD HH:mm:ss").isValid())),i.a.custom("expired",l=>t().isAfter(l))]]})}ngOnInit(){this.imageSpec=new s.a(this.poolName,this.namespace,this.imageName),this.imageSpecStr=this.imageSpec.toString(),this.pattern=`${this.poolName}/${this.imageName}`}moveImage(){let l=0;const n=this.moveForm.getValue("expiresAt");n&&(l=t(n).diff(t(),"seconds",!0)),l<0&&(l=0),this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/trash/move",{image_spec:this.imageSpecStr}),call:this.rbdService.moveTrash(this.imageSpec,l)}).subscribe(void 0,void 0,()=>{this.modalRef.hide()})}}},"3IYD":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("8xTl"),s=e("EEJc"),a=e("ajRT"),o=e("s7LF"),r=e("+gVj"),d=e("mXUL"),c=e("IZUe"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("Fd71"),b=e("LqlI"),C=e("F83c"),S=e("VXsX"),_=e("9nlD"),R=e("GiVz");e.d(n,"a",(function(){return E}));var y=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["ɵvid"](0,[t["ɵpid"](0,i.TitleCasePipe,[]),t["ɵpid"](0,u.a,[]),(l()(),t["ɵeld"](2,0,null,null,39,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](3,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),t["ɵted"](5,null,[""," ",""])),t["ɵppd"](6,1),t["ɵppd"](7,1),(l()(),t["ɵeld"](8,0,null,1,33,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](9,0,null,null,32,"form",[["name","snapshotForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,11).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,11).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,14).onSubmit()&&i),i}),null,null)),t["ɵdid"](10,16384,null,0,o.G,[],null,null),t["ɵdid"](11,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,o.d,null,[o.l]),t["ɵdid"](13,16384,null,0,o.s,[[4,o.d]],null,null),t["ɵdid"](14,16384,null,0,r.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](15,0,null,null,17,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](16,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](17,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","snapshotName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](22,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","snapshotName"],["id","snapshotName"],["name","snapshotName"],["placeholder","Snapshot name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,24)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,24).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,24)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,24)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](24,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](26,671744,[[1,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](28,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](29,4210688,null,0,c.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](30,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](32,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](33,0,null,null,8,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](34,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](35,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t}),m.b,m.a)),t["ɵdid"](36,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](37,0,[""," ",""])),t["ɵppd"](38,1),t["ɵppd"](39,1),(l()(),t["ɵeld"](40,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,h.b,h.a)),t["ɵdid"](41,49152,null,0,g.a,[i.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.modalRef),l(n,11,0,e.snapshotForm),l(n,14,0,e.snapshotForm),l(n,17,0),l(n,26,0,"snapshotName"),l(n,29,0,""),l(n,30,0,"snapshotName"),l(n,32,0,e.snapshotForm.showError("snapshotName",t["ɵnov"](n,11),"required")),l(n,36,0,e.snapshotForm),l(n,41,0,"Close",e.modalRef.hide)}),(function(l,n){var e=n.component,i=t["ɵunv"](n,5,0,l(n,6,0,t["ɵnov"](n,0),e.action)),u=t["ɵunv"](n,5,1,l(n,7,0,t["ɵnov"](n,1),e.resource));l(n,5,0,i,u),l(n,9,0,t["ɵnov"](n,13).ngClassUntouched,t["ɵnov"](n,13).ngClassTouched,t["ɵnov"](n,13).ngClassPristine,t["ɵnov"](n,13).ngClassDirty,t["ɵnov"](n,13).ngClassValid,t["ɵnov"](n,13).ngClassInvalid,t["ɵnov"](n,13).ngClassPending),l(n,16,0,t["ɵnov"](n,17).hasErrors,t["ɵnov"](n,17).hasSuccess),l(n,23,0,t["ɵnov"](n,28).ngClassUntouched,t["ɵnov"](n,28).ngClassTouched,t["ɵnov"](n,28).ngClassPristine,t["ɵnov"](n,28).ngClassDirty,t["ɵnov"](n,28).ngClassValid,t["ɵnov"](n,28).ngClassInvalid,t["ɵnov"](n,28).ngClassPending,t["ɵnov"](n,30).validClass,t["ɵnov"](n,30).invalidClass);var s=t["ɵunv"](n,37,0,l(n,38,0,t["ɵnov"](n,0),e.action)),a=t["ɵunv"](n,37,1,l(n,39,0,t["ɵnov"](n,1),e.resource));l(n,37,0,s,a)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-snapshot-form-modal",[],null,null,null,k,y)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a,S.a,_.a,R.a,f.b],null,null)],(function(l,n){l(n,1,0)}),null)}var E=t["ɵccf"]("cd-rbd-snapshot-form-modal",v.a,I,{},{},[])},"3ris":function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("yYhs"),i=e("LvDl"),u=(e("uIqm"),e("oxzT"));e("iExv"),e("uYzU");class s{constructor(l,n,e){this.i18n=l,this.iscsiBackstorePipe=n,this.booleanTextPipe=e,this.icons=u.a,this.metadata={},this.nodes=[],this.treeOptions={useVirtualScroll:!0,actionMapping:{mouse:{click:this.onNodeSelected.bind(this)}}}}set content(l){this.detailTable=l,l&&l.updateColumns()}ngOnInit(){this.columns=[{prop:"displayName",name:this.i18n("Name"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"current",name:this.i18n("Current"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"default",name:this.i18n("Default"),flexGrow:1,cellTemplate:this.highlightTpl}]}ngOnChanges(){this.selection&&(this.selectedItem=this.selection,this.generateTree()),this.data=void 0}generateTree(){const l=i.cloneDeep(this.selectedItem.target_controls);this.cephIscsiConfigVersion>10&&i.extend(l,i.cloneDeep(this.selectedItem.auth)),this.metadata={root:l};const n={target:{expanded:i.join(this.selectedItem.cdExecuting?[u.a.large,u.a.spinner,u.a.spin]:[u.a.large,u.a.bullseye]," ")},initiators:{expanded:i.join([u.a.large,u.a.user]," "),leaf:i.join([u.a.user]," ")},groups:{expanded:i.join([u.a.large,u.a.users]," "),leaf:i.join([u.a.users]," ")},disks:{expanded:i.join([u.a.large,u.a.disk]," "),leaf:i.join([u.a.disk]," ")},portals:{expanded:i.join([u.a.large,u.a.server]," "),leaf:i.join([u.a.server]," ")}},e=[];i.forEach(this.selectedItem.disks,l=>{const t="disk_"+l.pool+"_"+l.image;this.metadata[t]={controls:l.controls,backstore:l.backstore},["wwn","lun"].forEach(n=>{n in l&&(this.metadata[t][n]=l[n])}),e.push({name:`${l.pool}/${l.image}`,cdId:t,cdIcon:n.disks.leaf})});const t=[];i.forEach(this.selectedItem.portals,l=>{t.push({name:`${l.host}:${l.ip}`,cdIcon:n.portals.leaf})});const s=[];i.forEach(this.selectedItem.clients,l=>{const e=i.cloneDeep(l.auth);l.info&&(i.extend(e,l.info),delete e.state,i.forEach(Object.keys(l.info.state),n=>{e[n.toLowerCase()]=l.info.state[n]})),this.metadata["client_"+l.client_iqn]=e;const t=[];l.luns.forEach(l=>{t.push({name:`${l.pool}/${l.image}`,cdId:"disk_"+l.pool+"_"+l.image,cdIcon:n.disks.leaf})});let u="";l.info&&(u=Object.keys(l.info.state).includes("LOGGED_IN")?"logged_in":"logged_out"),s.push({name:l.client_iqn,status:u,cdId:"client_"+l.client_iqn,children:t,cdIcon:n.initiators.leaf})});const a=[];i.forEach(this.selectedItem.groups,l=>{const e=[];l.disks.forEach(l=>{e.push({name:`${l.pool}/${l.image}`,cdId:"disk_"+l.pool+"_"+l.image,cdIcon:n.disks.leaf})});const t=[];l.members.forEach(l=>{t.push({name:l,cdId:"client_"+l})}),a.push({name:l.group_id,cdIcon:n.groups.leaf,children:[{name:"Disks",children:e,cdIcon:n.disks.expanded},{name:"Initiators",children:t,cdIcon:n.initiators.expanded}]})}),this.nodes=[{name:this.selectedItem.target_iqn,cdId:"root",isExpanded:!0,cdIcon:n.target.expanded,children:[{name:"Disks",isExpanded:!0,children:e,cdIcon:n.disks.expanded},{name:"Portals",isExpanded:!0,children:t,cdIcon:n.portals.expanded},{name:"Initiators",isExpanded:!0,children:s,cdIcon:n.initiators.expanded},{name:"Groups",isExpanded:!0,children:a,cdIcon:n.groups.expanded}]}]}format(l){return"boolean"==typeof l?this.booleanTextPipe.transform(l):l}onNodeSelected(l,n){if(t.a.ACTIVATE(l,n,!0),n.data.cdId){this.title=n.data.name;const l=this.metadata[n.data.cdId]||{};"root"===n.data.cdId?(this.columns[2].isHidden=!1,this.data=i.map(this.settings.target_default_controls,(n,e)=>({displayName:e,default:n=this.format(n),current:i.isUndefined(l[e])?n:this.format(l[e])})),this.cephIscsiConfigVersion>10&&["user","password","mutual_user","mutual_password"].forEach(n=>{this.data.push({displayName:n,default:null,current:l[n]})})):n.data.cdId.toString().startsWith("disk_")?(this.columns[2].isHidden=!1,this.data=i.map(this.settings.disk_default_controls[l.backstore],(n,e)=>({displayName:e,default:n=this.format(n),current:i.isUndefined(l.controls[e])?n:this.format(l.controls[e])})),this.data.push({displayName:"backstore",default:this.iscsiBackstorePipe.transform(this.settings.default_backstore),current:this.iscsiBackstorePipe.transform(l.backstore)}),["wwn","lun"].forEach(n=>{n in l&&this.data.push({displayName:n,default:void 0,current:l[n]})})):(this.columns[2].isHidden=!0,this.data=i.map(l,(l,n)=>({displayName:n,default:void 0,current:this.format(l)})))}else this.data=void 0;this.detailTable&&this.detailTable.updateColumns()}onUpdateData(){this.tree.treeModel.expandAll()}}},"5GyT":function(l,n,e){"use strict";var t=e("LvDl"),i=(e("F83c"),e("+fVR")),u=e("OLbh"),s=e("0+/T"),a=(e("sne2"),e("uIqm"),e("x38r")),o=e("oxzT"),r=e("yJti"),d=e("vCyI"),c=e("kvvV"),m=e("jVDg"),p=(e("Fgil"),e("o4+5"),e("aexS"),e("VTlA"),e("kn/O"),e("EgGo")),h=e("2JDI");class g{}e.d(n,"a",(function(){return v})),e.d(n,"b",(function(){return f}));const f=new p.a("block/rbd");class v extends i.a{constructor(l,n,e,t,i,u,s,a,r,c){super(),this.authStorageService=l,this.rbdService=n,this.dimlessBinaryPipe=e,this.dimlessPipe=t,this.modalService=i,this.taskWrapper=u,this.taskListService=s,this.i18n=a,this.urlBuilder=r,this.actionLabels=c,this.selection=new d.a,this.builders={"rbd/create":l=>this.createRbdFromTask(l.pool_name,l.namespace,l.image_name),"rbd/delete":l=>this.createRbdFromTaskImageSpec(l.image_spec),"rbd/clone":l=>this.createRbdFromTask(l.child_pool_name,l.child_namespace,l.child_image_name),"rbd/copy":l=>this.createRbdFromTask(l.dest_pool_name,l.dest_namespace,l.dest_image_name)},this.permission=this.authStorageService.getPermissions().rbdImage;const p=()=>this.selection.first()&&new m.a(this.selection.first().pool_name,this.selection.first().namespace,this.selection.first().name).toStringEncoded();this.tableActions=[{permission:"create",icon:o.a.add,routerLink:()=>this.urlBuilder.getCreate(),canBePrimary:l=>!l.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"update",icon:o.a.edit,routerLink:()=>this.urlBuilder.getEdit(p()),name:this.actionLabels.EDIT},{permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting,icon:o.a.copy,routerLink:()=>`/block/rbd/copy/${p()}`,name:this.actionLabels.COPY},{permission:"update",disable:l=>!l.hasSingleSelection||l.first().cdExecuting||!l.first().parent,icon:o.a.flatten,click:()=>this.flattenRbdModal(),name:this.actionLabels.FLATTEN},{permission:"delete",icon:o.a.destroy,click:()=>this.deleteRbdModal(),name:this.actionLabels.DELETE,disable:l=>!this.selection.first()||!this.selection.hasSingleSelection||this.hasClonedSnapshots(l.first()),disableDesc:()=>this.getDeleteDisableDesc()},{permission:"delete",icon:o.a.trash,click:()=>this.trashRbdModal(),name:this.actionLabels.TRASH}]}createRbdFromTaskImageSpec(l){const n=m.a.fromString(l);return this.createRbdFromTask(n.poolName,n.namespace,n.imageName)}createRbdFromTask(l,n,e){const t=new g;return t.id="-1",t.name=e,t.namespace=n,t.pool_name=l,t}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:2,cellTransformation:a.a.executing},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:2},{name:this.i18n("Namespace"),prop:"namespace",flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Objects"),prop:"num_objs",flexGrow:1,cellClass:"text-right",pipe:this.dimlessPipe},{name:this.i18n("Object size"),prop:"obj_size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Total provisioned"),prop:"total_disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Parent"),prop:"parent",flexGrow:2,cellTemplate:this.parentTpl}],this.taskListService.init(()=>this.rbdService.list(),l=>this.prepareResponse(l),l=>this.images=l,()=>this.onFetchError(),l=>["rbd/clone","rbd/copy","rbd/create","rbd/delete","rbd/edit","rbd/flatten","rbd/trash/move"].includes(l.name),(l,n)=>{let e;switch(n.name){case"rbd/copy":e=new m.a(n.metadata.dest_pool_name,n.metadata.dest_namespace,n.metadata.dest_image_name).toString();break;case"rbd/clone":e=new m.a(n.metadata.child_pool_name,n.metadata.child_namespace,n.metadata.child_image_name).toString();break;case"rbd/create":e=new m.a(n.metadata.pool_name,n.metadata.namespace,n.metadata.image_name).toString();break;default:e=n.metadata.image_spec}return e===new m.a(l.pool_name,l.namespace,l.name).toString()},this.builders)}onFetchError(){this.table.reset(),this.viewCacheStatusList=[{status:r.a.ValueException}]}prepareResponse(l){let n=[];const e={};l.forEach(l=>{t.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),n=n.concat(l.value)});const i=[];return t.forEach(e,(l,n)=>{i.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+"<strong>"+l.join("</strong>, <strong>")+"</strong>"})}),this.viewCacheStatusList=i,n}updateSelection(l){this.selection=l}deleteRbdModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().name,t=new m.a(l,n,e);this.modalRef=this.modalService.show(s.a,{initialState:{itemDescription:"RBD",itemNames:[t],bodyTemplate:this.deleteTpl,bodyContext:{hasSnapshots:this.hasSnapshots(),snapshots:this.listProtectedSnapshots()},submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/delete",{image_spec:t.toString()}),call:this.rbdService.delete(t)})}})}trashRbdModal(){const l={poolName:this.selection.first().pool_name,namespace:this.selection.first().namespace,imageName:this.selection.first().name,hasSnapshots:this.hasSnapshots()};this.modalRef=this.modalService.show(h.a,{initialState:l})}flattenRbd(l){this.taskWrapper.wrapTaskAroundCall({task:new c.a("rbd/flatten",{image_spec:l.toString()}),call:this.rbdService.flatten(l)}).subscribe(void 0,void 0,()=>{this.modalRef.hide()})}flattenRbdModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().name,t=this.selection.first().parent,i=new m.a(t.pool_name,t.pool_namespace,t.image_name),s=new m.a(l,n,e),a={titleText:"RBD flatten",buttonText:"Flatten",bodyTpl:this.flattenTpl,bodyData:{parent:`${i}@${t.snap_name}`,child:s.toString()},onSubmit:()=>{this.flattenRbd(s)}};this.modalRef=this.modalService.show(u.a,{initialState:a})}hasSnapshots(){return(this.selection.first().snapshots||[]).length>0}hasClonedSnapshots(l){return(l.snapshots||[]).some(l=>l.children&&l.children.length>0)}listProtectedSnapshots(){return this.selection.first().snapshots.reduce((l,n)=>(n.is_protected&&l.push(n.name),l),[])}getDeleteDisableDesc(){const l=this.selection.first();return l&&this.hasClonedSnapshots(l)?this.i18n("This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD."):""}}},BH9v:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("aXbf");class s{constructor(l,n){this.control=l,this.formatter=n}setValue(l){const n=this.formatter.toMilliseconds(l);this.control.control.setValue(`${n} ms`)}ngOnInit(){this.setValue(this.control.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.control.value))}onUpdate(l){this.setValue(l)}}var a=e("+gVj"),o=e("LvDl"),r=e("IzCI");class d{constructor(l,n,e,i){this.elementRef=l,this.control=n,this.dimlessBinaryPerSecondPipe=e,this.formatter=i,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}ngOnInit(){this.setValue(this.el.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.el.value))}setValue(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");const n=this.formatter.toBytes(l,0),e=this.round(n);this.el.value=this.dimlessBinaryPerSecondPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))}round(l){if(null!==l&&0!==l){if(!o.isUndefined(this.minBytes)&&l<this.minBytes)return this.minBytes;if(!o.isUndefined(this.maxBytes)&&l>this.maxBytes)return this.maxBytes;if(!o.isUndefined(this.roundPower)){const n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l}onBlur(l){this.setValue(l)}}class c{constructor(l,n){this.formatter=l,this.ngControl=n}setValue(l){const n=this.formatter.toIops(l);this.ngControl.control.setValue(`${n} IOPS`)}ngOnInit(){this.setValue(this.ngControl.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.ngControl.value))}onUpdate(l){this.setValue(l)}}var m=e("mXUL"),p=e("4HWh"),h=e("p4Cf"),g=e("SVse");e("rFfW"),e("o8EM"),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return y}));var f=t["ɵcrt"]({encapsulation:0,styles:[[".collapsible[_ngcontent-%COMP%]{cursor:pointer;-moz-user-select:none;user-select:none}"]],data:{}});function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdMilliseconds",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onUpdate(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,s,[i.q,u.a],{ngDataReady:[0,"ngDataReady"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdDimlessBinaryPerSecond",""],["class","form-control"],["defaultUnit","b"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onBlur(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,d,[t.ElementRef,i.q,r.a,u.a],{ngDataReady:[0,"ngDataReady"],defaultUnit:[1,"defaultUnit"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady,"b"),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdIops",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onUpdate(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,c,[u.a,i.q],{ngDataReady:[0,"ngDataReady"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The mininum value is 0"]))],null,null)}function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,m.b,m.a)),t["ɵdid"](1,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](5,null,["",""])),(l()(),t["ɵeld"](6,0,null,null,2,"cd-helper",[],null,null,null,p.b,p.a)),t["ɵdid"](7,49152,null,0,h.a,[],null,null),(l()(),t["ɵted"](8,0,["",""])),(l()(),t["ɵeld"](9,0,null,0,20,"div",[],[[8,"className",0]],null,null,null,null)),(l()(),t["ɵeld"](10,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,7,null,null,null,null,null,null,null)),t["ɵdid"](12,16384,null,0,g.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](14,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](16,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](18,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵeld"](19,0,null,null,8,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](20,0,null,null,7,"button",[["class","btn btn-light"],["data-toggle","button"],["title","Remove the local configuration value. The parent configuration value will be inherited and used instead."],["type","button"]],null,[[null,"click"]],(function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.reset(l.context.$implicit.name)&&t),t}),null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](22,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["ɵpod"](23,{active:0}),(l()(),t["ɵeld"](24,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](26,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵpad"](27,1),(l()(),t["ɵand"](16777216,null,null,1,null,S)),t["ɵdid"](29,16384,null,0,g.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,12,0,n.context.$implicit.type),l(n,14,0,e.configurationType.milliseconds),l(n,16,0,e.configurationType.bps),l(n,18,0,e.configurationType.iops);var i=l(n,23,0,e.isDisabled(n.context.$implicit.name));l(n,22,0,"btn btn-light",i);var u=l(n,27,0,e.icons.erase);l(n,26,0,u),l(n,29,0,e.form.showError("configuration."+n.context.$implicit.name,t["ɵnov"](n.parent.parent,0),"min"))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess),l(n,4,0,n.context.$implicit.name),l(n,5,0,n.context.$implicit.displayName),l(n,8,0,n.context.$implicit.description),l(n,9,0,t["ɵinlineInterpolate"](1,"cd-col-form-input ",n.parent.context.$implicit.heading,""))}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,5,"h3",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵeld"](2,0,null,null,4,"span",[["class","collapsible"]],null,[[null,"click"]],(function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.toggleSectionVisibility(l.context.$implicit.class)&&t),t}),null,null)),(l()(),t["ɵted"](3,null,[" "," "])),(l()(),t["ɵeld"](4,0,null,null,2,"i",[["aria-hidden","true"]],null,null,null,null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](6,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(l()(),t["ɵeld"](7,0,null,null,2,"div",[],[[8,"className",0],[8,"hidden",0]],null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](9,278528,null,0,g.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,6,0,e.sectionVisibility[n.context.$implicit.class]?e.icons.minusCircle:e.icons.addCircle),l(n,9,0,n.context.$implicit.options)}),(function(l,n){var e=n.component;l(n,3,0,n.context.$implicit.heading),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.class,""),!e.sectionVisibility[n.context.$implicit.class])}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,[["cfgFormGroup",1]],null,8,"fieldset",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,1).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,1).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,4).onSubmit()&&i),i}),null,null)),t["ɵdid"](1,540672,null,0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](3,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](4,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["RBD Configuration"])),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](8,278528,null,0,g.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.form.get("configuration")),l(n,4,0,e.form.get("configuration")),l(n,8,0,e.rbdConfigurationService.sections)}),(function(l,n){l(n,0,0,t["ɵnov"](n,3).ngClassUntouched,t["ɵnov"](n,3).ngClassTouched,t["ɵnov"](n,3).ngClassPristine,t["ɵnov"](n,3).ngClassDirty,t["ɵnov"](n,3).ngClassValid,t["ɵnov"](n,3).ngClassInvalid,t["ɵnov"](n,3).ngClassPending)}))}},E7j4:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("EEJc"),a=e("ajRT"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("+26A"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return F}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.key),l(n,2,0,n.context.$implicit.key)}),(function(l,n){l(n,3,0,n.context.$implicit.desc)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.checked)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.c,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.c]),t["ɵdid"](4,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""]))],(function(l,n){l(n,4,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""))}),(function(l,n){l(n,1,1,[t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass]),l(n,8,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,9,0,n.context.$implicit.name)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["At least one pool is required."]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The token is invalid."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,87,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Import Bootstrap Token"])),(l()(),t["ɵeld"](4,0,null,1,83,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,82,"form",[["class","form"],["name","importBootstrapForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,69,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To import a bootstrap token which was created by a peer site cluster, provide the local site's name, select which pools will have mirroring enabled, provide the generated token, and click "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Import"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](28,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](30,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](31,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,_)),t["ɵdid"](33,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](34,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](35,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](38,0,null,0,2,"label",[["class","col-form-label"],["for","direction"]],null,null,null,null,null)),(l()(),t["ɵeld"](39,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Direction"])),(l()(),t["ɵeld"](41,0,null,0,8,"select",[["class","form-control custom-select"],["formControlName","direction"],["id","direction"],["name","direction"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,42).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,42).onTouched()&&i),i}),null,null)),t["ɵdid"](42,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](44,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](46,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](47,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](49,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](50,0,null,null,12,"div",[["class","form-group"],["formGroupName","pools"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](51,212992,null,0,i.m,[[3,i.d],[8,null],[8,null]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.d,null,[i.m]),t["ɵdid"](53,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](54,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](57,0,null,0,1,"label",[["class","col-form-label required"],["for","pools"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](60,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,w)),t["ɵdid"](62,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](63,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](64,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](67,0,null,0,1,"label",[["class","col-form-label required"],["for","token"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Token"])),(l()(),t["ɵeld"](69,0,null,0,7,"textarea",[["class","form-control resize-vertical"],["formControlName","token"],["id","token"],["placeholder","Generated token..."]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,70)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,70).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,70)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,70)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](70,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](72,671744,[[7,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](74,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](75,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵted"](-1,null,["          "])),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](78,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](80,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](81,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](82,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](83,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.import()&&t),t}),c.b,c.a)),t["ɵdid"](84,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Import"])),(l()(),t["ɵeld"](86,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](87,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.importBootstrapForm),l(n,10,0,e.importBootstrapForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,33,0,e.importBootstrapForm.showError("siteName",t["ɵnov"](n,7),"required")),l(n,35,0),l(n,44,0,"direction"),l(n,47,0,"direction"),l(n,49,0,e.directions),l(n,51,0,"pools"),l(n,54,0),l(n,60,0,e.pools),l(n,62,0,e.importBootstrapForm.showError("pools",t["ɵnov"](n,7),"requirePool")),l(n,64,0),l(n,72,0,"token"),l(n,75,0,"token"),l(n,78,0,e.importBootstrapForm.showError("token",t["ɵnov"](n,7),"required")),l(n,80,0,e.importBootstrapForm.showError("token",t["ɵnov"](n,7),"invalidToken")),l(n,84,0,e.importBootstrapForm),l(n,87,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass),l(n,34,0,t["ɵnov"](n,35).hasErrors,t["ɵnov"](n,35).hasSuccess),l(n,41,0,t["ɵnov"](n,46).ngClassUntouched,t["ɵnov"](n,46).ngClassTouched,t["ɵnov"](n,46).ngClassPristine,t["ɵnov"](n,46).ngClassDirty,t["ɵnov"](n,46).ngClassValid,t["ɵnov"](n,46).ngClassInvalid,t["ɵnov"](n,46).ngClassPending,t["ɵnov"](n,47).validClass,t["ɵnov"](n,47).invalidClass),l(n,50,0,t["ɵnov"](n,53).ngClassUntouched,t["ɵnov"](n,53).ngClassTouched,t["ɵnov"](n,53).ngClassPristine,t["ɵnov"](n,53).ngClassDirty,t["ɵnov"](n,53).ngClassValid,t["ɵnov"](n,53).ngClassInvalid,t["ɵnov"](n,53).ngClassPending,t["ɵnov"](n,54).hasErrors,t["ɵnov"](n,54).hasSuccess),l(n,63,0,t["ɵnov"](n,64).hasErrors,t["ɵnov"](n,64).hasSuccess),l(n,69,0,t["ɵnov"](n,74).ngClassUntouched,t["ɵnov"](n,74).ngClassTouched,t["ɵnov"](n,74).ngClassPristine,t["ɵnov"](n,74).ngClassDirty,t["ɵnov"](n,74).ngClassValid,t["ɵnov"](n,74).ngClassInvalid,t["ɵnov"](n,74).ngClassPending,t["ɵnov"](n,75).validClass,t["ɵnov"](n,75).invalidClass)}))}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-bootstrap-import-modal",[],null,null,null,E,S)),t["ɵdid"](1,245760,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var F=t["ɵccf"]("cd-bootstrap-import-modal",f.a,N,{},{},[])},EFGL:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("IzCI"),s=e("aXbf"),a=e("dEH0"),o=e("BQkM"),r=e("25BL"),d=e("uIqm");e("aAWM"),e("o8EM"),e("GiVz"),e.d(n,"a",(function(){return c})),e.d(n,"b",(function(){return _}));var c=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function m(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function p(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function h(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function g(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,7,"div",[],null,null,null,null,null)),t["ɵdid"](1,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,m)),t["ɵdid"](3,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,p)),t["ɵdid"](5,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,h)),t["ɵdid"](7,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],(function(l,n){l(n,1,0,n.context.value),l(n,3,0,"global"),l(n,5,0,"image"),l(n,7,0,"pool")}),null)}function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,1),n.parent.context.value));l(n,1,0,e)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),n.parent.context.value));l(n,1,0,e)}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,3),n.parent.context.value));l(n,1,0,e)}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[],null,null,null,null,null)),t["ɵdid"](1,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,f)),t["ɵdid"](3,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](5,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](7,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](9,16384,null,0,i.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],null,null)],(function(l,n){var e=n.component;l(n,1,0,n.context.row.type),l(n,3,0,e.typeField.bps),l(n,5,0,e.typeField.milliseconds),l(n,7,0,e.typeField.iops)}),null)}function _(l){return t["ɵvid"](0,[t["ɵpid"](0,i.TitleCasePipe,[]),t["ɵpid"](0,u.a,[s.a]),t["ɵpid"](0,a.a,[]),t["ɵpid"](0,o.a,[]),t["ɵqud"](402653184,1,{configurationSourceTpl:0}),t["ɵqud"](402653184,2,{configurationValueTpl:0}),t["ɵqud"](402653184,3,{poolConfTable:0}),(l()(),t["ɵeld"](7,0,null,null,1,"cd-table",[["identifier","name"]],null,null,null,r.b,r.a)),t["ɵdid"](8,2867200,[[3,4],["poolConfTable",4]],0,d.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"]},null),(l()(),t["ɵand"](0,[[1,2],["configurationSourceTpl",2]],null,0,null,g)),(l()(),t["ɵand"](0,[[2,2],["configurationValueTpl",2]],null,0,null,S))],(function(l,n){var e=n.component;l(n,8,0,e.data,e.poolConfigurationColumns,"name")}),null)}},Ekvf:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("mrSG"),i=e("IheW"),u=e("lJxs"),s=e("xTzq"),a=e("o8EM"),o=e("8Y7J"),r=e("pL04");let d=(()=>{let l=class{constructor(l,n){this.http=l,this.rbdConfigurationService=n,this.apiPath="api/pool"}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}update(l){let n;return l.hasOwnProperty("srcpool")?(n=l.srcpool,delete l.srcpool):(n=l.pool,delete l.pool),this.http.put(`${this.apiPath}/${encodeURIComponent(n)}`,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}get(l){return this.http.get(`${this.apiPath}/${l}`)}getList(){return this.http.get(`${this.apiPath}?stats=true`)}getConfiguration(l){return this.http.get(`${this.apiPath}/${l}/configuration`).pipe(Object(u.a)(l=>l.map(l=>Object.assign(l,this.rbdConfigurationService.getOptionByName(l.name)))))}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}list(l=[]){const n=l.join(",");return this.http.get(`${this.apiPath}?attrs=${n}`).toPromise().then(l=>l)}};return l.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new l(o["ɵɵinject"](i.c),o["ɵɵinject"](a.a))},token:l,providedIn:r.a}),l=t.__decorate([s.a,t.__metadata("design:paramtypes",[i.c,a.a])],l),l})()},F83c:function(l,n,e){"use strict";e.d(n,"a",(function(){return m}));var t=e("mrSG"),i=e("IheW"),u=e("LvDl"),s=e("lJxs"),a=e("xTzq"),o=e("jVDg"),r=e("o8EM"),d=e("8Y7J"),c=e("pL04");let m=(()=>{let l=class{constructor(l,n){this.http=l,this.rbdConfigurationService=n}isRBDPool(l){return-1!==u.indexOf(l.application_metadata,"rbd")&&!l.pool_name.includes("/")}create(l){return this.http.post("api/block/image",l,{observe:"response"})}delete(l){return this.http.delete(`api/block/image/${l.toStringEncoded()}`,{observe:"response"})}update(l,n){return this.http.put(`api/block/image/${l.toStringEncoded()}`,n,{observe:"response"})}get(l){return this.http.get(`api/block/image/${l.toStringEncoded()}`)}list(){return this.http.get("api/block/image").pipe(Object(s.a)(l=>l.map(l=>(l.value.map(l=>l.configuration?(l.configuration.map(l=>Object.assign(l,this.rbdConfigurationService.getOptionByName(l.name))),l):l),l))))}copy(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/copy`,n,{observe:"response"})}flatten(l){return this.http.post(`api/block/image/${l.toStringEncoded()}/flatten`,null,{observe:"response"})}defaultFeatures(){return this.http.get("api/block/image/default_features")}createSnapshot(l,n){const e={snapshot_name:n};return this.http.post(`api/block/image/${l.toStringEncoded()}/snap`,e,{observe:"response"})}renameSnapshot(l,n,e){const t={new_snap_name:e};return this.http.put(`api/block/image/${l.toStringEncoded()}/snap/${n}`,t,{observe:"response"})}protectSnapshot(l,n,e){const t={is_protected:e};return this.http.put(`api/block/image/${l.toStringEncoded()}/snap/${n}`,t,{observe:"response"})}rollbackSnapshot(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/snap/${n}/rollback`,null,{observe:"response"})}cloneSnapshot(l,n,e){return this.http.post(`api/block/image/${l.toStringEncoded()}/snap/${n}/clone`,e,{observe:"response"})}deleteSnapshot(l,n){return this.http.delete(`api/block/image/${l.toStringEncoded()}/snap/${n}`,{observe:"response"})}listTrash(){return this.http.get("api/block/image/trash/")}createNamespace(l,n){return this.http.post(`api/block/pool/${l}/namespace`,{namespace:n},{observe:"response"})}listNamespaces(l){return this.http.get(`api/block/pool/${l}/namespace/`)}deleteNamespace(l,n){return this.http.delete(`api/block/pool/${l}/namespace/${n}`,{observe:"response"})}moveTrash(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/move_trash`,{delay:n},{observe:"response"})}purgeTrash(l){return this.http.post(`api/block/image/trash/purge/?pool_name=${l}`,null,{observe:"response"})}restoreTrash(l,n){return this.http.post(`api/block/image/trash/${l.toStringEncoded()}/restore`,{new_image_name:n},{observe:"response"})}removeTrash(l,n=!1){return this.http.delete(`api/block/image/trash/${l.toStringEncoded()}/?force=${n}`,{observe:"response"})}};return l.ngInjectableDef=d["ɵɵdefineInjectable"]({factory:function(){return new l(d["ɵɵinject"](i.c),d["ɵɵinject"](r.a))},token:l,providedIn:c.a}),t.__decorate([t.__param(1,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String]),t.__metadata("design:returntype",void 0)],l.prototype,"createSnapshot",null),t.__decorate([t.__param(2,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String,String]),t.__metadata("design:returntype",void 0)],l.prototype,"renameSnapshot",null),t.__decorate([t.__param(2,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String,Boolean]),t.__metadata("design:returntype",void 0)],l.prototype,"protectSnapshot",null),t.__decorate([t.__param(1,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String]),t.__metadata("design:returntype",void 0)],l.prototype,"restoreTrash",null),l=t.__decorate([a.a,t.__metadata("design:paramtypes",[i.c,r.a])],l),l})()},Fd71:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("s7LF"),i=e("XNiG"),u=(e("F83c"),e("sne2"),e("QFaf")),s=e("kvvV"),a=e("jVDg");e("9nlD"),e("VXsX");class o{constructor(l,n,e,t,i,u){this.modalRef=l,this.rbdService=n,this.taskManagerService=e,this.notificationService=t,this.i18n=i,this.actionLabels=u,this.editing=!1,this.action=this.actionLabels.CREATE,this.resource=this.i18n("RBD Snapshot"),this.createForm()}createForm(){this.snapshotForm=new u.a({snapshotName:new t.i("",{validators:[t.B.required]})})}ngOnInit(){this.onSubmit=new i.a}setSnapName(l){this.snapName=l,this.snapshotForm.get("snapshotName").setValue(l)}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.RENAME:this.actionLabels.CREATE}editAction(){const l=this.snapshotForm.getValue("snapshotName"),n=new a.a(this.poolName,this.namespace,this.imageName),e=new s.a;e.name="rbd/snap/edit",e.metadata={image_spec:n.toString(),snapshot_name:l},this.rbdService.renameSnapshot(n,this.snapName,l).toPromise().then(()=>{this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)}),this.modalRef.hide(),this.onSubmit.next(this.snapName)}).catch(()=>{this.snapshotForm.setErrors({cdSubmitButton:!0})})}createAction(){const l=this.snapshotForm.getValue("snapshotName"),n=new a.a(this.poolName,this.namespace,this.imageName),e=new s.a;e.name="rbd/snap/create",e.metadata={image_spec:n.toString(),snapshot_name:l},this.rbdService.createSnapshot(n,l).toPromise().then(()=>{this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)}),this.modalRef.hide(),this.onSubmit.next(l)}).catch(()=>{this.snapshotForm.setErrors({cdSubmitButton:!0})})}submit(){this.editing?this.editAction():this.createAction()}}},I4Qz:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("SVse"),r=e("mXUL"),d=e("ienR"),c=e("z/SZ"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("2JDI"),b=e("F83c"),C=e("LqlI"),S=e("2EZI"),_=e("kn/O");e.d(n,"a",(function(){return N}));var R=t["ɵcrt"]({encapsulation:0,styles:[[".bs-datepicker-head bs-datepicker-navigation-view{display:flex;justify-content:space-between}"]],data:{}});function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"div",[["class","alert alert-warning"],["role","alert"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This image contains snapshot(s), which will prevent it from being removed after moved to trash."]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,['Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".']))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Protection has already expired. Please pick a future date or leave it empty."]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,48,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Move an image to trash"])),(l()(),t["ɵeld"](4,0,null,1,44,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,43,"form",[["class","form"],["name","moveForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,30,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](13,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](14,0,null,null,7,"p",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To move "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](17,null,["",""])),(l()(),t["ɵted"](-1,null,[" to trash, click "])),(l()(),t["ɵeld"](19,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Move Image"])),(l()(),t["ɵted"](-1,null,[". Optionally, you can pick an expiration date."])),(l()(),t["ɵeld"](22,0,null,null,19,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](23,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](26,0,null,0,1,"label",[["class","col-form-label"],["for","expires"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Protection expires at"])),(l()(),t["ɵeld"](28,16777216,null,0,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","expiresAt"],["placeholder","NOT PROTECTED"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,29)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,29).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,29)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,29)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,31).onChange(e)&&i),"keyup.esc"===n&&(i=!1!==t["ɵnov"](l,31).hide()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,31).onBlur()&&i),i}),null,null)),t["ɵdid"](29,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵdid"](30,737280,null,0,d.c,[d.a,t.ElementRef,t.Renderer2,t.ViewContainerRef,c.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),t["ɵdid"](31,16384,null,0,d.f,[d.c,d.l,t.Renderer2,t.ElementRef,t.ChangeDetectorRef],null,null),t["ɵprd"](1024,null,s.o,(function(l){return[l]}),[d.f]),t["ɵprd"](1024,null,s.p,(function(l,n){return[l,n]}),[s.e,d.f]),t["ɵdid"](34,671744,[[1,4]],0,s.j,[[3,s.d],[6,s.o],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](36,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](37,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,w)),t["ɵdid"](39,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](41,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](42,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](44,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.moveImage()&&t),t}),m.b,m.a)),t["ɵdid"](45,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Move Image"])),(l()(),t["ɵeld"](47,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["ɵdid"](48,49152,null,0,g.a,[o.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.moveForm),l(n,10,0,e.moveForm),l(n,13,0,e.hasSnapshots),l(n,23,0),l(n,30,0,e.bsConfig,e.minDate),l(n,34,0,"expiresAt"),l(n,37,0,"expiresAt"),l(n,39,0,e.moveForm.showError("expiresAt",t["ɵnov"](n,7),"format")),l(n,41,0,e.moveForm.showError("expiresAt",t["ɵnov"](n,7),"expired")),l(n,45,0,e.moveForm),l(n,48,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,17,0,e.imageSpecStr),l(n,22,0,t["ɵnov"](n,23).hasErrors,t["ɵnov"](n,23).hasSuccess),l(n,28,0,t["ɵnov"](n,36).ngClassUntouched,t["ɵnov"](n,36).ngClassTouched,t["ɵnov"](n,36).ngClassPristine,t["ɵnov"](n,36).ngClassDirty,t["ɵnov"](n,36).ngClassValid,t["ɵnov"](n,36).ngClassInvalid,t["ɵnov"](n,36).ngClassPending,t["ɵnov"](n,37).validClass,t["ɵnov"](n,37).invalidClass)}))}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-move-modal",[],null,null,null,I,R)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a,S.a,_.a],null,null)],(function(l,n){l(n,1,0)}),null)}var N=t["ɵccf"]("cd-rbd-trash-move-modal",v.a,E,{},{},[])},JBea:function(l,n,e){"use strict";e.d(n,"a",(function(){return t})),e("lArG");class t{constructor(){}}},"JIi+":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("978R"),u=e("z/SZ"),s=e("2uy1"),a=e("SVse"),o=e("pKUh"),r=e("2ZVE"),d=e("25BL"),c=e("uIqm"),m=e("NUGo"),p=e("S7zO"),h=e("VTlA"),g=e("ufoC"),f=e("mSOc"),v=e("wd/R"),b=e("LRne"),C=e("F83c"),S=e("OLbh"),_=e("0+/T"),R=e("sne2"),y=e("x38r"),w=e("vCyI"),k=e("QTAa"),I=e("kvvV"),E=e("jVDg"),N=e("a0VL"),F=e("Fgil"),T=e("aexS"),V=e("9nlD"),D=e("VXsX"),P=e("Fd71"),x=e("LvDl"),q=e("oxzT");class B{constructor(l,n,e){this.i18n=l,this.create={permission:"create",icon:q.a.add,name:n.CREATE},this.rename={permission:"update",icon:q.a.edit,name:n.RENAME},this.protect={permission:"update",icon:q.a.lock,visible:l=>l.hasSingleSelection&&!l.first().is_protected,name:n.PROTECT},this.unprotect={permission:"update",icon:q.a.unlock,visible:l=>l.hasSingleSelection&&l.first().is_protected,name:n.UNPROTECT},this.clone={permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting||!x.isUndefined(this.getCloneDisableDesc(e)),disableDesc:()=>this.getCloneDisableDesc(e),icon:q.a.clone,name:n.CLONE},this.copy={permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting,icon:q.a.copy,name:n.COPY},this.rollback={permission:"update",icon:q.a.undo,name:n.ROLLBACK},this.deleteSnap={permission:"delete",icon:q.a.destroy,disable:l=>{const n=l.first();return!l.hasSingleSelection||n.cdExecuting||n.is_protected},name:n.DELETE},this.ordering=[this.create,this.rename,this.protect,this.unprotect,this.clone,this.copy,this.rollback,this.deleteSnap]}getCloneDisableDesc(l){if(!l.includes("layering"))return this.i18n("Parent image must support Layering")}}class O{}class M{constructor(l,n,e,t,i,u,s,a,o,r,d){this.authStorageService=l,this.modalService=n,this.dimlessBinaryPipe=e,this.cdDatePipe=t,this.rbdService=i,this.taskManagerService=u,this.notificationService=s,this.summaryService=a,this.taskListService=o,this.i18n=r,this.actionLabels=d,this.snapshots=[],this.selection=new w.a,this.builders={"rbd/snap/create":l=>{const n=new O;return n.name=l.snapshot_name,n}},this.permission=this.authStorageService.getPermissions().rbdImage}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",cellTransformation:y.a.executing,flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("State"),prop:"is_protected",flexGrow:1,cellTransformation:y.a.badge,customTemplateConfig:{map:{true:{value:this.i18n("PROTECTED"),class:"badge-success"},false:{value:this.i18n("UNPROTECTED"),class:"badge-info"}}}},{name:this.i18n("Created"),prop:"timestamp",flexGrow:1,pipe:this.cdDatePipe}]}ngOnChanges(){const l=new E.a(this.poolName,this.namespace,this.rbdName),n=new B(this.i18n,this.actionLabels,this.featuresName);n.create.click=()=>this.openCreateSnapshotModal(),n.rename.click=()=>this.openEditSnapshotModal(),n.protect.click=()=>this.toggleProtection(),n.unprotect.click=()=>this.toggleProtection();const e=()=>this.selection.first()&&`${l.toStringEncoded()}/${encodeURIComponent(this.selection.first().name)}`;n.clone.routerLink=()=>`/block/rbd/clone/${e()}`,n.copy.routerLink=()=>`/block/rbd/copy/${e()}`,n.rollback.click=()=>this.rollbackModal(),n.deleteSnap.click=()=>this.deleteSnapshotModal(),this.tableActions=n.ordering,this.taskListService.init(()=>Object(b.a)(this.snapshots),null,l=>this.data=l,()=>this.data=this.snapshots,n=>["rbd/snap/create","rbd/snap/delete","rbd/snap/edit","rbd/snap/rollback"].includes(n.name)&&l.toString()===n.metadata.image_spec,(l,n)=>l.name===n.metadata.snapshot_name,this.builders)}openSnapshotModal(l,n=null){this.modalRef=this.modalService.show(P.a),this.modalRef.content.poolName=this.poolName,this.modalRef.content.imageName=this.rbdName,this.modalRef.content.namespace=this.namespace,n?this.modalRef.content.setEditing():n=`${this.rbdName}_${v().toISOString(!0)}`,this.modalRef.content.setSnapName(n),this.modalRef.content.onSubmit.subscribe(n=>{const e=new k.a;e.name=l,e.metadata={image_name:this.rbdName,pool_name:this.poolName,snapshot_name:n},this.summaryService.addRunningTask(e),this.ngOnChanges()})}openCreateSnapshotModal(){this.openSnapshotModal("rbd/snap/create")}openEditSnapshotModal(){this.openSnapshotModal("rbd/snap/edit",this.selection.first().name)}toggleProtection(){const l=this.selection.first().name,n=this.selection.first().is_protected,e=new I.a;e.name="rbd/snap/edit";const t=new E.a(this.poolName,this.namespace,this.rbdName);e.metadata={image_spec:t.toString(),snapshot_name:l},this.rbdService.protectSnapshot(t,l,!n).toPromise().then(()=>{const l=new k.a;l.name=e.name,l.metadata=e.metadata,this.summaryService.addRunningTask(l),this.ngOnChanges(),this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)})})}_asyncTask(l,n,e){const t=new I.a;t.name=n,t.metadata={image_spec:new E.a(this.poolName,this.namespace,this.rbdName).toString(),snapshot_name:e};const i=new E.a(this.poolName,this.namespace,this.rbdName);this.rbdService[l](i,e).toPromise().then(()=>{const l=new k.a;l.name=t.name,l.metadata=t.metadata,this.summaryService.addRunningTask(l),this.modalRef.hide(),this.ngOnChanges(),this.taskManagerService.subscribe(l.name,l.metadata,l=>{this.notificationService.notifyTask(l)})}).catch(()=>{this.modalRef.content.stopLoadingSpinner()})}rollbackModal(){const l=this.selection.selected[0].name,n=new E.a(this.poolName,this.namespace,this.rbdName).toString(),e={titleText:this.i18n("RBD snapshot rollback"),buttonText:this.i18n("Rollback"),bodyTpl:this.rollbackTpl,bodyData:{snapName:`${n}@${l}`},onSubmit:()=>{this._asyncTask("rollbackSnapshot","rbd/snap/rollback",l)}};this.modalRef=this.modalService.show(S.a,{initialState:e})}deleteSnapshotModal(){const l=this.selection.selected[0].name;this.modalRef=this.modalService.show(_.a,{initialState:{itemDescription:this.i18n("RBD snapshot"),itemNames:[l],submitAction:()=>this._asyncTask("deleteSnapshot","rbd/snap/delete",l)}})}updateSelection(l){this.selection=l}}var A=e("LqlI"),L=e("GiVz"),j=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["You are about to rollback"])),(l()(),t["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](3,null,[" ",""])),(l()(),t["ɵted"](-1,null,[".\n"]))],null,(function(l,n){l(n,3,0,n.context.$implicit.snapName)}))}function G(l){return t["ɵvid"](0,[t["ɵqud"](671088640,1,{nameTpl:0}),t["ɵqud"](402653184,2,{rollbackTpl:0}),(l()(),t["ɵeld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,e){var t=!0;return"updateSelection"===n&&(t=!1!==l.component.updateSelection(e)&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,m.b,m.a)),t["ɵdid"](5,114688,null,0,p.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵand"](0,[[2,2],["rollbackTpl",2]],null,0,null,$))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex","single"),l(n,5,0,e.permission,e.selection,e.tableActions)}),null)}var U=e("EFGL"),X=e("aAWM"),z=e("aXbf"),W=e("o8EM"),J=e("nSDx"),Y=e("o4+5"),K=e("JBea");e.d(n,"b",(function(){return Z})),e.d(n,"c",(function(){return cl})),e.d(n,"a",(function(){return pl}));var Z=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function H(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Only available for RBD images with "])),(l()(),t["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["fast-diff"])),(l()(),t["ɵted"](-1,null,[" enabled"]))],null,null)}function Q(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""]))],null,(function(l,n){l(n,2,0,n.context.$implicit)}))}function ll(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"span",[["class","form-text text-muted"],["placement","right"]],null,null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["ɵted"](-1,null,["N/A"]))],(function(l,n){l(n,2,0,t["ɵnov"](n.parent.parent,5),"right")}),null)}function nl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,[" "," "])),t["ɵppd"](2,1)],null,(function(l,n){var e=n.component,i=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),e.selection.disk_usage));l(n,1,0,i)}))}function el(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"span",[["class","form-text text-muted"],["placement","right"]],null,null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["ɵted"](-1,null,["N/A"]))],(function(l,n){l(n,2,0,t["ɵnov"](n.parent.parent,5),"right")}),null)}function tl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,[" "," "])),t["ɵppd"](2,1)],null,(function(l,n){var e=n.component,i=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),e.selection.total_disk_usage));l(n,1,0,i)}))}function il(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["/",""]))],null,(function(l,n){l(n,1,0,n.component.selection.parent.pool_namespace)}))}function ul(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),(l()(),t["ɵand"](16777216,null,null,1,null,il)),t["ɵdid"](3,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵted"](4,null,["/","@",""]))],(function(l,n){l(n,3,0,n.component.selection.parent.pool_namespace)}),(function(l,n){var e=n.component;l(n,1,0,e.selection.parent.pool_name),l(n,4,0,e.selection.parent.image_name,e.selection.parent.snap_name)}))}function sl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["-"]))],null,null)}function al(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,105,"tabset",[],[[2,"tab-container",null]],null,null,o.b,o.a)),t["ɵdid"](1,180224,null,0,r.e,[r.f,t.Renderer2,t.ElementRef],null,null),(l()(),t["ɵeld"](2,0,null,0,94,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](3,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](4,0,null,null,92,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,91,"tbody",[],null,null,null,null,null)),(l()(),t["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](7,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](9,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),t["ɵted"](10,null,["",""])),(l()(),t["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool"])),(l()(),t["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](15,null,["",""])),(l()(),t["ɵeld"](16,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Data Pool"])),(l()(),t["ɵeld"](19,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](20,null,["",""])),t["ɵppd"](21,1),(l()(),t["ɵeld"](22,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Created"])),(l()(),t["ɵeld"](25,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](26,null,["",""])),t["ɵppd"](27,1),(l()(),t["ɵeld"](28,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](29,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Size"])),(l()(),t["ɵeld"](31,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](32,null,["",""])),t["ɵppd"](33,1),(l()(),t["ɵeld"](34,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](35,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Objects"])),(l()(),t["ɵeld"](37,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](38,null,["",""])),t["ɵppd"](39,1),(l()(),t["ɵeld"](40,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](41,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Object size"])),(l()(),t["ɵeld"](43,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](44,null,["",""])),t["ɵppd"](45,1),(l()(),t["ɵeld"](46,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](47,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Features"])),(l()(),t["ɵeld"](49,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,Q)),t["ɵdid"](51,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](52,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](53,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Provisioned"])),(l()(),t["ɵeld"](55,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,ll)),t["ɵdid"](57,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,nl)),t["ɵdid"](59,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](60,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](61,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Total provisioned"])),(l()(),t["ɵeld"](63,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,el)),t["ɵdid"](65,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,tl)),t["ɵdid"](67,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](68,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](69,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Striping unit"])),(l()(),t["ɵeld"](71,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](72,null,["",""])),t["ɵppd"](73,1),(l()(),t["ɵeld"](74,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](75,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Striping count"])),(l()(),t["ɵeld"](77,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](78,null,["",""])),(l()(),t["ɵeld"](79,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](80,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Parent"])),(l()(),t["ɵeld"](82,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,ul)),t["ɵdid"](84,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,sl)),t["ɵdid"](86,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](87,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](88,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Block name prefix"])),(l()(),t["ɵeld"](90,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](91,null,["",""])),(l()(),t["ɵeld"](92,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](93,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Order"])),(l()(),t["ɵeld"](95,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](96,null,["",""])),(l()(),t["ɵeld"](97,0,null,0,4,"tab",[["heading","Snapshots"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](98,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](99,0,null,null,2,"cd-rbd-snapshot-list",[],null,null,null,G,j)),t["ɵprd"](131584,null,h.a,h.a,[g.a,f.a]),t["ɵdid"](101,638976,null,0,M,[T.a,A.b,F.a,N.a,C.a,D.a,V.a,f.a,h.a,L.a,R.b],{snapshots:[0,"snapshots"],featuresName:[1,"featuresName"],poolName:[2,"poolName"],namespace:[3,"namespace"],rbdName:[4,"rbdName"]},null),(l()(),t["ɵeld"](102,0,null,0,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](103,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](104,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,U.b,U.a)),t["ɵdid"](105,638976,null,0,X.a,[z.a,W.a,L.a],{data:[0,"data"]},null)],(function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,51,0,e.selection.features_name),l(n,57,0,-1===(null==e.selection.features_name?null:e.selection.features_name.indexOf("fast-diff"))),l(n,59,0,-1!==(null==e.selection.features_name?null:e.selection.features_name.indexOf("fast-diff"))),l(n,65,0,-1===(null==e.selection.features_name?null:e.selection.features_name.indexOf("fast-diff"))),l(n,67,0,-1!==(null==e.selection.features_name?null:e.selection.features_name.indexOf("fast-diff"))),l(n,84,0,e.selection.parent),l(n,86,0,!e.selection.parent),l(n,98,0,"Snapshots"),l(n,101,0,e.selection.snapshots,e.selection.features_name,e.selection.pool_name,e.selection.namespace,e.selection.name),l(n,103,0,"Configuration"),l(n,105,0,e.selection.configuration)}),(function(l,n){var e=n.component;l(n,0,0,t["ɵnov"](n,1).clazz),l(n,2,0,t["ɵnov"](n,3).id,t["ɵnov"](n,3).active,t["ɵnov"](n,3).addClass,t["ɵnov"](n,3).role,t["ɵnov"](n,3).ariaLabelledby),l(n,10,0,e.selection.name),l(n,15,0,e.selection.pool_name);var i=t["ɵunv"](n,20,0,l(n,21,0,t["ɵnov"](n.parent,0),e.selection.data_pool));l(n,20,0,i);var u=t["ɵunv"](n,26,0,l(n,27,0,t["ɵnov"](n.parent,1),e.selection.timestamp));l(n,26,0,u);var s=t["ɵunv"](n,32,0,l(n,33,0,t["ɵnov"](n.parent,2),e.selection.size));l(n,32,0,s);var a=t["ɵunv"](n,38,0,l(n,39,0,t["ɵnov"](n.parent,3),e.selection.num_objs));l(n,38,0,a);var o=t["ɵunv"](n,44,0,l(n,45,0,t["ɵnov"](n.parent,2),e.selection.obj_size));l(n,44,0,o);var r=t["ɵunv"](n,72,0,l(n,73,0,t["ɵnov"](n.parent,2),e.selection.stripe_unit));l(n,72,0,r),l(n,78,0,e.selection.stripe_count),l(n,91,0,e.selection.block_name_prefix),l(n,96,0,e.selection.order),l(n,97,0,t["ɵnov"](n,98).id,t["ɵnov"](n,98).active,t["ɵnov"](n,98).addClass,t["ɵnov"](n,98).role,t["ɵnov"](n,98).ariaLabelledby),l(n,102,0,t["ɵnov"](n,103).id,t["ɵnov"](n,103).active,t["ɵnov"](n,103).addClass,t["ɵnov"](n,103).role,t["ɵnov"](n,103).ariaLabelledby)}))}function ol(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"strong",[["tooltip","This setting overrides the global value"]],null,null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"]},null),(l()(),t["ɵted"](-1,null,["Image"])),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,2,0,"This setting overrides the global value")}),null)}function rl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,16777216,null,null,2,"span",[["tooltip","This is the global value. No value for this option has been set for this image."]],null,null,null,null,null)),t["ɵdid"](1,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"]},null),(l()(),t["ɵted"](-1,null,["Global"])),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"This is the global value. No value for this option has been set for this image.")}),null)}function dl(l){return t["ɵvid"](0,[(l()(),t["ɵand"](16777216,null,null,1,null,ol)),t["ɵdid"](1,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["ɵand"](0,[["global",2]],null,0,null,rl))],(function(l,n){l(n,1,0,n.context.value-0,t["ɵnov"](n,2))}),null)}function cl(l){return t["ɵvid"](0,[t["ɵpid"](0,J.a,[]),t["ɵpid"](0,N.a,[a.DatePipe]),t["ɵpid"](0,F.a,[z.a]),t["ɵpid"](0,Y.a,[z.a]),t["ɵqud"](402653184,1,{poolConfigurationSourceTpl:0}),(l()(),t["ɵand"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,H)),(l()(),t["ɵand"](16777216,null,null,1,null,al)),t["ɵdid"](7,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,[[1,2],["poolConfigurationSourceTpl",2]],null,0,null,dl))],(function(l,n){l(n,7,0,n.component.selection)}),null)}function ml(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-details",[],null,null,null,cl,Z)),t["ɵdid"](1,49152,null,0,K.a,[],null,null)],null,null)}var pl=t["ɵccf"]("cd-rbd-details",K.a,ml,{selection:"selection",images:"images"},{},[])},L4us:function(l,n,e){"use strict";var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{}e.d(n,"a",(function(){return a}));class a{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.bsConfig={containerClass:"theme-default"},this.createForm()}createForm(){this.editPeerForm=new i.a({clusterName:new t.i("",{validators:[t.B.required,this.validateClusterName]}),clientID:new t.i("",{validators:[t.B.required,this.validateClientID]}),monAddr:new t.i("",{validators:[this.validateMonAddr]}),key:new t.i("",{validators:[this.validateKey]})})}ngOnInit(){this.pattern=`${this.poolName}/${this.peerUUID}`,"edit"===this.mode&&this.rbdMirroringService.getPeer(this.poolName,this.peerUUID).subscribe(l=>{this.setResponse(l)})}validateClusterName(l){if(!l.value.match(/^[\w\-_]*$/))return{invalidClusterName:{value:l.value}}}validateClientID(l){if(!l.value.match(/^(?!client\.)[\w\-_.]*$/))return{invalidClientID:{value:l.value}}}validateMonAddr(l){if(!l.value.match(/^[,; ]*([\w.\-_\[\]]+(:[\d]+)?[,; ]*)*$/))return{invalidMonAddr:{value:l.value}}}validateKey(l){try{if(""===l.value||atob(l.value))return null}catch(n){}return{invalidKey:{value:l.value}}}setResponse(l){this.response=l,this.editPeerForm.get("clusterName").setValue(l.cluster_name),this.editPeerForm.get("clientID").setValue(l.client_id),this.editPeerForm.get("monAddr").setValue(l.mon_host),this.editPeerForm.get("key").setValue(l.key)}update(){const l=new s;let n;l.cluster_name=this.editPeerForm.getValue("clusterName"),l.client_id=this.editPeerForm.getValue("clientID"),l.mon_host=this.editPeerForm.getValue("monAddr"),l.key=this.editPeerForm.getValue("key"),n=this.taskWrapper.wrapTaskAroundCall("edit"===this.mode?{task:new u.a("rbd/mirroring/peer/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePeer(this.poolName,this.peerUUID,l)}:{task:new u.a("rbd/mirroring/peer/add",{pool_name:this.poolName}),call:this.rbdMirroringService.addPeer(this.poolName,l)}),n.subscribe(void 0,()=>this.editPeerForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},MyVl:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("LvDl"),s=e("jtHE"),a=e("cp0P"),o=e("SxV6"),r=e("eIep"),d=(e("Ekvf"),e("F83c"),e("sne2"),e("oxzT")),c=e("QFaf"),m=e("PhyI"),p=e("kvvV"),h=e("jVDg");e("Fgil"),e("aexS"),e("aXbf"),e("kn/O");class g{constructor(){this.features=[]}}class f{constructor(){this.features=[]}}var v=e("lArG");class b extends v.a{constructor(){super(...arguments),this.features=[]}}class C{constructor(){this.features=[]}}var S=function(l){return l.editing="editing",l.cloning="cloning",l.copying="copying",l}({});e.d(n,"a",(function(){return _}));class _{constructor(l,n,e,i,u,a,o,r,c,m){this.authStorageService=l,this.route=n,this.poolService=e,this.rbdService=i,this.formatter=u,this.taskWrapper=a,this.dimlessBinaryPipe=o,this.i18n=r,this.actionLabels=c,this.router=m,this.namespaces=[],this.namespacesByPoolCache={},this.pools=null,this.allPools=null,this.dataPools=null,this.allDataPools=null,this.featuresList=[],this.initializeConfigData=new t.EventEmitter,this.advancedEnabled=!1,this.rbdFormMode=S,this.defaultObjectSize="4 MiB",this.objectSizes=["4 KiB","8 KiB","16 KiB","32 KiB","64 KiB","128 KiB","256 KiB","512 KiB","1 MiB","2 MiB","4 MiB","8 MiB","16 MiB","32 MiB"],this.rbdImage=new s.a(1),this.icons=d.a,this.poolPermission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("RBD"),this.features={"deep-flatten":{desc:this.i18n("Deep flatten"),requires:null,allowEnable:!1,allowDisable:!0},layering:{desc:this.i18n("Layering"),requires:null,allowEnable:!1,allowDisable:!1},"exclusive-lock":{desc:this.i18n("Exclusive lock"),requires:null,allowEnable:!0,allowDisable:!0},"object-map":{desc:this.i18n("Object map (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},journaling:{desc:this.i18n("Journaling (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},"fast-diff":{desc:this.i18n("Fast diff (interlocked with object-map)"),requires:"object-map",allowEnable:!0,allowDisable:!0,interlockedWith:"object-map",initDisabled:!0}},this.featuresList=this.objToArray(this.features),this.createForm()}objToArray(l){return u.map(l,(l,n)=>Object.assign(l,{key:n}))}createForm(){this.rbdForm=new c.a({parent:new i.i(""),name:new i.i("",{validators:[i.B.required,i.B.pattern(/^[^@/]+?$/)]}),pool:new i.i(null,{validators:[i.B.required]}),namespace:new i.i(null),useDataPool:new i.i(!1),dataPool:new i.i(null),size:new i.i(null,{updateOn:"blur"}),obj_size:new i.i(this.defaultObjectSize),features:new c.a(this.featuresList.reduce((l,n)=>(l[n.key]=new i.i({value:!1,disabled:!!n.initDisabled}),l),{})),stripingUnit:new i.i(null),stripingCount:new i.i(null,{updateOn:"blur"})},this.validateRbdForm(this.formatter))}disableForEdit(){this.rbdForm.get("parent").disable(),this.rbdForm.get("pool").disable(),this.rbdForm.get("namespace").disable(),this.rbdForm.get("useDataPool").disable(),this.rbdForm.get("dataPool").disable(),this.rbdForm.get("obj_size").disable(),this.rbdForm.get("stripingUnit").disable(),this.rbdForm.get("stripingCount").disable()}disableForClone(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()}disableForCopy(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()}ngOnInit(){let l;this.router.url.startsWith("/block/rbd/edit")?(this.mode=this.rbdFormMode.editing,this.action=this.actionLabels.EDIT,this.disableForEdit()):this.router.url.startsWith("/block/rbd/clone")?(this.mode=this.rbdFormMode.cloning,this.disableForClone(),this.action=this.actionLabels.CLONE):this.router.url.startsWith("/block/rbd/copy")?(this.mode=this.rbdFormMode.copying,this.action=this.actionLabels.COPY,this.disableForCopy()):this.action=this.actionLabels.CREATE,function(l){l.RbdServiceGet="rbdService.get",l.PoolServiceList="poolService.list"}(l||(l={}));const n={};this.mode===this.rbdFormMode.editing||this.mode===this.rbdFormMode.cloning||this.mode===this.rbdFormMode.copying?this.route.params.subscribe(e=>{const t=h.a.fromString(decodeURIComponent(e.image_spec));e.snap&&(this.snapName=decodeURIComponent(e.snap)),n[l.RbdServiceGet]=this.rbdService.get(t)}):this.rbdService.defaultFeatures().subscribe(l=>{this.setFeatures(l)}),this.mode!==this.rbdFormMode.editing&&this.poolPermission.read&&(n[l.PoolServiceList]=this.poolService.list(["pool_name","type","flags_names","application_metadata"])),Object(a.a)(n).subscribe(n=>{if(n[l.PoolServiceList]){const e=[],t=[];for(const i of n[l.PoolServiceList])this.rbdService.isRBDPool(i)&&("replicated"===i.type?(e.push(i),t.push(i)):"erasure"===i.type&&-1!==i.flags_names.indexOf("ec_overwrites")&&t.push(i));if(this.pools=e,this.allPools=e,this.dataPools=t,this.allDataPools=t,1===this.pools.length){const l=this.pools[0].pool_name;this.rbdForm.get("pool").setValue(l),this.onPoolChange(l)}}if(n[l.RbdServiceGet]){const e=n[l.RbdServiceGet];this.setResponse(e,this.snapName),this.rbdImage.next(e)}}),u.each(this.features,l=>{this.rbdForm.get("features").get(l.key).valueChanges.subscribe(n=>this.featureFormUpdate(l.key,n))})}onPoolChange(l){const n=this.allDataPools?this.allDataPools.filter(n=>n.pool_name!==l):[];this.rbdForm.getValue("dataPool")===l&&this.rbdForm.get("dataPool").setValue(null),this.dataPools=n,this.namespaces=null,l in this.namespacesByPoolCache?this.namespaces=this.namespacesByPoolCache[l]:this.rbdService.listNamespaces(l).subscribe(n=>{n=n.map(l=>l.namespace),this.namespacesByPoolCache[l]=n,this.namespaces=n}),this.rbdForm.get("namespace").setValue(null)}onUseDataPoolChange(){this.rbdForm.getValue("useDataPool")||(this.rbdForm.get("dataPool").setValue(null),this.onDataPoolChange(null))}onDataPoolChange(l){const n=this.allPools.filter(n=>n.pool_name!==l);this.rbdForm.getValue("pool")===l&&this.rbdForm.get("pool").setValue(null),this.pools=n}validateRbdForm(l){return n=>{const e=n.get("useDataPool"),t=n.get("dataPool");let i=null;e.value&&null==t.value&&(i={required:!0}),t.setErrors(i);const u=n.get("size"),s=n.get("obj_size"),a=l.toBytes(null!=s.value?s.value:this.defaultObjectSize),o=n.get("stripingCount"),r=null!=o.value?o.value:1;let d=null;null===u.value?d={required:!0}:r*a>l.toBytes(u.value)&&(d={invalidSizeObject:!0}),u.setErrors(d);const c=n.get("stripingUnit");let m=null;null===c.value&&null!==o.value?m={required:!0}:null!==c.value&&l.toBytes(c.value)>a&&(m={invalidStripingUnit:!0}),c.setErrors(m);let p=null;return null===o.value&&null!==c.value?p={required:!0}:r<1&&(p={min:!0}),o.setErrors(p),null}}getDependendChildFeatures(l){return u.filter(this.features,n=>n.requires===l)||[]}deepBoxCheck(l,n){this.getDependendChildFeatures(l).forEach(l=>{const e=this.rbdForm.get(l.key);n?e.enable({emitEvent:!1}):(e.disable({emitEvent:!1}),e.setValue(!1,{emitEvent:!1}),this.deepBoxCheck(l.key,n));const t=this.rbdForm.get("features");this.mode===this.rbdFormMode.editing&&t.get(l.key).enabled&&((-1===this.response.features_name.indexOf(l.key)||l.allowDisable)&&(-1!==this.response.features_name.indexOf(l.key)||l.allowEnable)||t.get(l.key).disable())})}interlockCheck(l,n){const e=this.featuresList.find(n=>n.key===l);if(this.response){const l=null!=e.interlockedWith,n=this.featuresList.find(l=>l.interlockedWith===e.key),t=!!this.response.features_name.find(l=>l===e.key);if(l){if(t!==!!this.response.features_name.find(l=>l===e.interlockedWith))return}else if(n&&!!this.response.features_name.find(l=>l===n.key)!==t)return}n?u.filter(this.features,n=>n.interlockedWith===l).forEach(l=>this.rbdForm.get(l.key).setValue(!0,{emitEvent:!1})):e.interlockedWith&&this.rbdForm.get("features").get(e.interlockedWith).setValue(!1)}featureFormUpdate(l,n){if(n){const n=this.features[l].requires;if(n&&!this.rbdForm.getValue(n))return void this.rbdForm.get(`features.${l}`).setValue(!1)}this.deepBoxCheck(l,n),this.interlockCheck(l,n)}setFeatures(l){const n=this.rbdForm.get("features");u.forIn(this.features,e=>{-1!==l.indexOf(e.key)&&n.get(e.key).setValue(!0),this.featureFormUpdate(e.key,n.get(e.key).value)})}setResponse(l,n){this.response=l;const e=new h.a(l.pool_name,l.namespace,l.name).toString();if(this.mode===this.rbdFormMode.cloning)this.rbdForm.get("parent").setValue(`${e}@${n}`);else if(this.mode===this.rbdFormMode.copying)n?this.rbdForm.get("parent").setValue(`${e}@${n}`):this.rbdForm.get("parent").setValue(`${e}`);else if(l.parent){const n=l.parent;this.rbdForm.get("parent").setValue(`${n.pool_name}/${n.image_name}@${n.snap_name}`)}this.mode===this.rbdFormMode.editing&&this.rbdForm.get("name").setValue(l.name),this.rbdForm.get("pool").setValue(l.pool_name),this.onPoolChange(l.pool_name),this.rbdForm.get("namespace").setValue(l.namespace),l.data_pool&&(this.rbdForm.get("useDataPool").setValue(!0),this.rbdForm.get("dataPool").setValue(l.data_pool)),this.rbdForm.get("size").setValue(this.dimlessBinaryPipe.transform(l.size)),this.rbdForm.get("obj_size").setValue(this.dimlessBinaryPipe.transform(l.obj_size)),this.setFeatures(l.features_name),this.rbdForm.get("stripingUnit").setValue(this.dimlessBinaryPipe.transform(l.stripe_unit)),this.rbdForm.get("stripingCount").setValue(l.stripe_count),this.initializeConfigData.emit({initialData:this.response.configuration,sourceType:m.a.image})}createRequest(){const l=new b;return l.pool_name=this.rbdForm.getValue("pool"),l.namespace=this.rbdForm.getValue("namespace"),l.name=this.rbdForm.getValue("name"),l.size=this.formatter.toBytes(this.rbdForm.getValue("size")),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(),l}createAction(){const l=this.createRequest();return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/create",{pool_name:l.pool_name,namespace:l.namespace,image_name:l.name}),call:this.rbdService.create(l)})}editRequest(){const l=new C;return l.name=this.rbdForm.getValue("name"),l.size=this.formatter.toBytes(this.rbdForm.getValue("size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.configuration=this.getDirtyConfigurationValues(),l}cloneRequest(){const l=new g;return l.child_pool_name=this.rbdForm.getValue("pool"),l.child_namespace=this.rbdForm.getValue("namespace"),l.child_image_name=this.rbdForm.getValue("name"),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(!0,m.a.image),l}editAction(){const l=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/edit",{image_spec:l.toString()}),call:this.rbdService.update(l,this.editRequest())})}cloneAction(){const l=this.cloneRequest(),n=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/clone",{parent_image_spec:n.toString(),parent_snap_name:this.snapName,child_pool_name:l.child_pool_name,child_namespace:l.child_namespace,child_image_name:l.child_image_name}),call:this.rbdService.cloneSnapshot(n,this.snapName,l)})}copyRequest(){const l=new f;return this.snapName&&(l.snapshot_name=this.snapName),l.dest_pool_name=this.rbdForm.getValue("pool"),l.dest_namespace=this.rbdForm.getValue("namespace"),l.dest_image_name=this.rbdForm.getValue("name"),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(!0,m.a.image),l}copyAction(){const l=this.copyRequest(),n=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/copy",{src_image_spec:n.toString(),dest_pool_name:l.dest_pool_name,dest_namespace:l.dest_namespace,dest_image_name:l.dest_image_name}),call:this.rbdService.copy(n,l)})}submit(){this.mode||this.rbdImage.next("create"),this.rbdImage.pipe(Object(o.a)(),Object(r.a)(()=>this.mode===this.rbdFormMode.editing?this.editAction():this.mode===this.rbdFormMode.cloning?this.cloneAction():this.mode===this.rbdFormMode.copying?this.copyAction():this.createAction())).subscribe(()=>{},()=>this.rbdForm.setErrors({cdSubmitButton:!0}),()=>this.router.navigate(["/block/rbd"]))}}},PhyI:function(l,n,e){"use strict";e.d(n,"a",(function(){return t})),e.d(n,"b",(function(){return i}));var t=function(l){return l[l.global=0]="global",l[l.pool=1]="pool",l[l.image=2]="image",l}({}),i=function(l){return l[l.bps=0]="bps",l[l.iops=1]="iops",l[l.milliseconds=2]="milliseconds",l}({})},QUzE:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("EEJc"),a=e("ajRT"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("SuaG"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return I}));var S=t["ɵcrt"]({encapsulation:0,styles:[[".form-group.ng-invalid[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}"]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.checked)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.c,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.c]),t["ɵdid"](4,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""]))],(function(l,n){l(n,4,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""))}),(function(l,n){l(n,1,1,[t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass]),l(n,8,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,9,0,n.context.$implicit.name)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["At least one pool is required."]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,69,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Create Bootstrap Token"])),(l()(),t["ɵeld"](4,0,null,1,65,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,64,"form",[["class","form"],["name","createBootstrapForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,54,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To create a bootstrap token which can be imported by a peer site cluster, provide the local site's name, select which pools will have mirroring enabled, and click  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Generate"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](28,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](30,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](31,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,_)),t["ɵdid"](33,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](34,0,null,null,12,"div",[["class","form-group"],["formGroupName","pools"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](35,212992,null,0,i.m,[[3,i.d],[8,null],[8,null]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.d,null,[i.m]),t["ɵdid"](37,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](38,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](41,0,null,0,1,"label",[["class","col-form-label required"],["for","pools"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](44,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](46,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](47,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](48,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.generate()&&t),t}),c.b,c.a)),t["ɵdid"](49,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Generate"])),(l()(),t["ɵeld"](51,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](52,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](55,0,null,0,2,"label",[["class","col-form-label"],["for","token"]],null,null,null,null,null)),(l()(),t["ɵeld"](56,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Token"])),(l()(),t["ɵeld"](58,0,null,0,7,"textarea",[["class","form-control resize-vertical"],["formControlName","token"],["id","token"],["placeholder","Generated token..."],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,59)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,59).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,59)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,59)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](59,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](61,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](63,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](64,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵted"](-1,null,["          "])),(l()(),t["ɵeld"](66,0,null,null,3,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](67,0,null,null,2,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](68,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](69,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.createBootstrapForm),l(n,10,0,e.createBootstrapForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,33,0,e.createBootstrapForm.showError("siteName",t["ɵnov"](n,7),"required")),l(n,35,0,"pools"),l(n,38,0),l(n,44,0,e.pools),l(n,46,0,e.createBootstrapForm.showError("pools",t["ɵnov"](n,7),"requirePool")),l(n,49,0,e.createBootstrapForm),l(n,52,0),l(n,61,0,"token"),l(n,64,0,"token"),l(n,69,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass),l(n,34,0,t["ɵnov"](n,37).ngClassUntouched,t["ɵnov"](n,37).ngClassTouched,t["ɵnov"](n,37).ngClassPristine,t["ɵnov"](n,37).ngClassDirty,t["ɵnov"](n,37).ngClassValid,t["ɵnov"](n,37).ngClassInvalid,t["ɵnov"](n,37).ngClassPending,t["ɵnov"](n,38).hasErrors,t["ɵnov"](n,38).hasSuccess),l(n,51,0,t["ɵnov"](n,52).hasErrors,t["ɵnov"](n,52).hasSuccess),l(n,58,0,t["ɵnov"](n,63).ngClassUntouched,t["ɵnov"](n,63).ngClassTouched,t["ɵnov"](n,63).ngClassPristine,t["ɵnov"](n,63).ngClassDirty,t["ɵnov"](n,63).ngClassValid,t["ɵnov"](n,63).ngClassInvalid,t["ɵnov"](n,63).ngClassPending,t["ɵnov"](n,64).validClass,t["ɵnov"](n,64).invalidClass)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-bootstrap-create-modal",[],null,null,null,w,S)),t["ɵdid"](1,245760,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var I=t["ɵccf"]("cd-bootstrap-create-modal",f.a,k,{},{},[])},RIVN:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("C6Ij"),u=e("AWcq"),s=e("NUGo"),a=e("S7zO"),o=e("SVse");class r{transform(l){return"warning"===l?"badge badge-warning":"error"===l?"badge badge-danger":"success"===l?"badge badge-success":"badge badge-info"}}var d=e("25BL"),c=e("uIqm"),m=e("XED3"),p=e("85J/");class h{constructor(l,n,e){this.rbdMirroringService=l,this.cephShortVersionPipe=n,this.i18n=e}ngOnInit(){this.columns=[{prop:"instance_id",name:this.i18n("Instance"),flexGrow:2},{prop:"id",name:this.i18n("ID"),flexGrow:2},{prop:"server_hostname",name:this.i18n("Hostname"),flexGrow:2},{prop:"version",name:this.i18n("Version"),pipe:this.cephShortVersionPipe,flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.data=l.content_data.daemons)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}}var g=e("GiVz"),f=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.health_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function b(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{healthTmpl:0}),(l()(),t["ɵeld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["ɵand"](0,[[1,2],["healthTmpl",2]],null,0,null,v))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",-1)}),null)}var C=e("HDdC"),S=e("0+/T"),_=e("oxzT"),R=e("vCyI"),y=e("kvvV"),w=e("aexS"),k=e("kn/O"),I=e("aa9H"),E=e("L4us");class N{constructor(l,n,e,t,i){this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.taskWrapper=t,this.i18n=i,this.selection=new R.a,this.data=[],this.permission=this.authStorageService.getPermissions().rbdMirroring;const u={permission:"update",icon:_.a.edit,click:()=>this.editModeModal(),name:this.i18n("Edit Mode"),canBePrimary:()=>!0},s={permission:"create",icon:_.a.add,name:this.i18n("Add Peer"),click:()=>this.editPeersModal("add"),disable:()=>!this.selection.first()||"disabled"===this.selection.first().mirror_mode,visible:()=>!this.getPeerUUID(),canBePrimary:()=>!1},a={permission:"update",icon:_.a.exchange,name:this.i18n("Edit Peer"),click:()=>this.editPeersModal("edit"),visible:()=>!!this.getPeerUUID()},o={permission:"delete",icon:_.a.destroy,name:this.i18n("Delete Peer"),click:()=>this.deletePeersModal(),visible:()=>!!this.getPeerUUID()};this.tableActions=[u,s,a,o]}ngOnInit(){this.columns=[{prop:"name",name:this.i18n("Name"),flexGrow:2},{prop:"mirror_mode",name:this.i18n("Mode"),flexGrow:2},{prop:"leader_id",name:this.i18n("Leader"),flexGrow:2},{prop:"image_local_count",name:this.i18n("# Local"),flexGrow:2},{prop:"image_remote_count",name:this.i18n("# Remote"),flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.data=l.content_data.pools)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}editModeModal(){const l={poolName:this.selection.first().name};this.modalRef=this.modalService.show(I.a,{initialState:l})}editPeersModal(l){const n={poolName:this.selection.first().name,mode:l};"edit"===l&&(n.peerUUID=this.getPeerUUID()),this.modalRef=this.modalService.show(E.a,{initialState:n})}deletePeersModal(){const l=this.selection.first().name,n=this.getPeerUUID();this.modalRef=this.modalService.show(S.a,{initialState:{itemDescription:this.i18n("mirror peer"),itemNames:[`${l} (${n})`],submitActionObservable:()=>new C.a(e=>{this.taskWrapper.wrapTaskAroundCall({task:new y.a("rbd/mirroring/peer/delete",{pool_name:l}),call:this.rbdMirroringService.deletePeer(l,n)}).subscribe(void 0,l=>e.error(l),()=>{this.rbdMirroringService.refresh(),e.complete()})})}})}getPeerUUID(){const l=this.selection.first(),n=this.data.find(n=>l&&l.name===n.name);if(n&&n.peer_uuids)return n.peer_uuids[0]}updateSelection(l){this.selection=l}}var F=e("LqlI"),T=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.health_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function D(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{healthTmpl:0}),(l()(),t["ɵeld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,e){var t=!0,i=l.component;return"fetchData"===n&&(t=!1!==i.refresh()&&t),"updateSelection"===n&&(t=!1!==i.updateSelection(e)&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,s.b,s.a)),t["ɵdid"](5,114688,null,0,a.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵand"](0,[[1,2],["healthTmpl",2]],null,0,null,V))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",-1,"name","true","single"),l(n,5,0,e.permission,e.selection,e.tableActions)}),null)}var P=e("7qid"),x=e("38Bd"),q=e("pKUh"),B=e("2ZVE");class O{constructor(l,n){this.rbdMirroringService=l,this.i18n=n,this.image_error={data:[],columns:{}},this.image_syncing={data:[],columns:{}},this.image_ready={data:[],columns:{}}}ngOnInit(){this.image_error.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Issue"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.image_syncing.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"progress",name:this.i18n("Progress"),cellTemplate:this.progressTmpl,flexGrow:2},{prop:"state",name:this.i18n("State"),cellTemplate:this.syncTmpl,flexGrow:1}],this.image_ready.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Description"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.image_error.data=l.content_data.image_error,this.image_syncing.data=l.content_data.image_syncing,this.image_ready.data=l.content_data.image_ready)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}}var M=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function A(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](1,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"})],(function(l,n){var e=n.component;l(n,1,0,e.image_error.data,e.image_error.columns,"flex",-1)}),null)}function L(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](1,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"})],(function(l,n){var e=n.component;l(n,1,0,e.image_syncing.data,e.image_syncing.columns,"flex",-1)}),null)}function j(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](1,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"})],(function(l,n){var e=n.component;l(n,1,0,e.image_ready.data,e.image_ready.columns,"flex",-1)}),null)}function $(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.state_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function G(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","badge badge-info"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Syncing"]))],null,null)}function U(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"progressbar",[["type","info"]],[[1,"max",0],[2,"progress",null]],null,null,P.b,P.a)),t["ɵdid"](1,49152,null,0,x.b,[x.c],{type:[0,"type"],value:[1,"value"]},null)],(function(l,n){l(n,1,0,"info",n.context.value)}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).max,t["ɵnov"](n,1).addClass)}))}function X(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{stateTmpl:0}),t["ɵqud"](402653184,2,{syncTmpl:0}),t["ɵqud"](402653184,3,{progressTmpl:0}),(l()(),t["ɵeld"](4,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,q.b,q.a)),t["ɵdid"](5,180224,[["tabset",4]],0,B.e,[B.f,t.Renderer2,t.ElementRef],null,null),(l()(),t["ɵeld"](6,0,null,0,3,"tab",[["heading","Issues"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](7,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,A)),t["ɵdid"](9,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](10,0,null,0,3,"tab",[["heading","Syncing"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](11,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,L)),t["ɵdid"](13,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](14,0,null,0,3,"tab",[["heading","Ready"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),t["ɵdid"](15,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,j)),t["ɵdid"](17,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,[[1,2],["stateTmpl",2]],null,0,null,$)),(l()(),t["ɵand"](0,[[2,2],["syncTmpl",2]],null,0,null,G)),(l()(),t["ɵand"](0,[[3,2],["progressTmpl",2]],null,0,null,U))],(function(l,n){l(n,7,0,"Issues"),l(n,9,0,null==t["ɵnov"](n,5).tabs[0]?null:t["ɵnov"](n,5).tabs[0].active),l(n,11,0,"Syncing"),l(n,13,0,null==t["ɵnov"](n,5).tabs[1]?null:t["ɵnov"](n,5).tabs[1].active),l(n,15,0,"Ready"),l(n,17,0,null==t["ɵnov"](n,5).tabs[2]?null:t["ɵnov"](n,5).tabs[2].active)}),(function(l,n){l(n,4,0,t["ɵnov"](n,5).clazz),l(n,6,0,t["ɵnov"](n,7).id,t["ɵnov"](n,7).active,t["ɵnov"](n,7).addClass,t["ɵnov"](n,7).role,t["ɵnov"](n,7).ariaLabelledby),l(n,10,0,t["ɵnov"](n,11).id,t["ɵnov"](n,11).active,t["ɵnov"](n,11).addClass,t["ɵnov"](n,11).role,t["ɵnov"](n,11).ariaLabelledby),l(n,14,0,t["ɵnov"](n,15).id,t["ɵnov"](n,15).active,t["ɵnov"](n,15).addClass,t["ɵnov"](n,15).role,t["ɵnov"](n,15).ariaLabelledby)}))}var z=e("cxJu");e.d(n,"a",(function(){return K}));var W=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function J(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,i.b,i.a)),t["ɵdid"](1,114688,null,0,u.a,[],{status:[0,"status"]},null),(l()(),t["ɵeld"](2,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name:"])),(l()(),t["ɵted"](7,null,[" ",""])),(l()(),t["ɵeld"](8,0,null,null,1,"cd-table-actions",[["class","table-actions float-right"]],null,null,null,s.b,s.a)),t["ɵdid"](9,114688,null,0,a.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵeld"](10,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Daemons"])),(l()(),t["ɵeld"](14,0,null,null,1,"cd-mirroring-daemons",[],null,null,null,b,f)),t["ɵdid"](15,245760,null,0,h,[m.a,p.a,g.a],null,null),(l()(),t["ɵeld"](16,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵeld"](19,0,null,null,1,"cd-mirroring-pools",[],null,null,null,D,T)),t["ɵdid"](20,245760,null,0,N,[w.a,m.a,F.b,k.a,g.a],null,null),(l()(),t["ɵeld"](21,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](22,0,null,null,4,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Images"])),(l()(),t["ɵeld"](25,0,null,null,1,"cd-mirroring-images",[],null,null,null,X,M)),t["ɵdid"](26,245760,null,0,O,[m.a,g.a],null,null)],(function(l,n){var e=n.component;l(n,1,0,e.status),l(n,9,0,e.permission,e.selection,e.tableActions),l(n,15,0),l(n,20,0),l(n,26,0)}),(function(l,n){l(n,7,0,n.component.siteName)}))}function Y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-mirroring",[],null,null,null,J,W)),t["ɵdid"](1,245760,null,0,z.a,[w.a,m.a,F.b,g.a],null,null)],(function(l,n){l(n,1,0)}),null)}var K=t["ɵccf"]("cd-mirroring",z.a,Y,{},{},[])},Sofw:function(l,n,e){"use strict";e.d(n,"a",(function(){return a}));var t=e("s7LF"),i=(e("my5R"),e("mtw6")),u=e("QFaf"),s=e("1Ni5");e("aexS"),e("9nlD");class a{constructor(l,n,e,t,i){this.authStorageService=l,this.bsModalRef=n,this.iscsiService=e,this.notificationService=t,this.i18n=i,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.permission=this.authStorageService.getPermissions().iscsi}ngOnInit(){this.hasPermission=this.permission.update,this.createForm(),this.iscsiService.getDiscovery().subscribe(l=>{this.discoveryForm.patchValue(l)})}createForm(){this.discoveryForm=new u.a({user:new t.i({value:"",disabled:!this.hasPermission}),password:new t.i({value:"",disabled:!this.hasPermission}),mutual_user:new t.i({value:"",disabled:!this.hasPermission}),mutual_password:new t.i({value:"",disabled:!this.hasPermission})}),s.a.validateIf(this.discoveryForm.get("user"),()=>this.discoveryForm.getValue("password")||this.discoveryForm.getValue("mutual_user")||this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("password"),()=>this.discoveryForm.getValue("user")||this.discoveryForm.getValue("mutual_user")||this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("mutual_user"),()=>this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("mutual_password"),()=>this.discoveryForm.getValue("mutual_user"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user")])}submitAction(){this.iscsiService.updateDiscovery(this.discoveryForm.value).subscribe(()=>{this.notificationService.show(i.a.success,this.i18n("Updated discovery authentication")),this.bsModalRef.hide()},()=>{this.discoveryForm.setErrors({cdSubmitButton:!0})})}}},SuaG:function(l,n,e){"use strict";e.d(n,"a",(function(){return c}));var t=e("s7LF"),i=e("LvDl"),u=e("GyhO"),s=e("cp0P"),a=e("vkgz"),o=e("NJ9Y"),r=(e("XED3"),e("QFaf")),d=e("kvvV");e("kn/O");class c{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.pools=[],this.createForm()}createForm(){this.createBootstrapForm=new r.a({siteName:new t.i("",{validators:[t.B.required]}),pools:new t.k({},{validators:[this.validatePools()]}),token:new t.i("",{})})}ngOnInit(){this.createBootstrapForm.get("siteName").setValue(this.siteName),this.rbdMirroringService.getSiteName().subscribe(l=>{this.createBootstrapForm.get("siteName").setValue(l.site_name)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(!l)return;this.pools=l.content_data.pools.reduce((l,n)=>(l.push({name:n.name,mirror_mode:n.mirror_mode}),l),[]);const n=this.createBootstrapForm.get("pools");i.each(this.pools,l=>{const e=l.name,i="disabled"===l.mirror_mode,u=n.controls[e];u?i&&u.disabled?u.enable():!i&&u.enabled&&(u.disable(),u.setValue(!0)):n.addControl(e,new t.i({value:!i,disabled:!i}))})})}ngOnDestroy(){this.subs&&this.subs.unsubscribe()}validatePools(){return l=>{let n=0;return i.each(l.controls,l=>{!0===l.value&&++n}),n>0?null:{requirePool:!0}}}generate(){this.createBootstrapForm.get("token").setValue("");let l="";const n=[],e=this.createBootstrapForm.get("pools");i.each(e.controls,(e,t)=>{!0===e.value&&(l=t,e.disabled||n.push(t))});const t={mirror_mode:"image"},r=Object(u.a)(this.rbdMirroringService.setSiteName(this.createBootstrapForm.getValue("siteName")),Object(s.a)(n.map(l=>this.rbdMirroringService.updatePool(l,t))),this.rbdMirroringService.createBootstrapToken(l).pipe(Object(a.a)(l=>this.createBootstrapForm.get("token").setValue(l.token)))).pipe(Object(o.a)()),c=()=>{this.rbdMirroringService.refresh(),this.createBootstrapForm.setErrors({cdSubmitButton:!0})};this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/mirroring/bootstrap/create",{}),call:r}).subscribe(void 0,c,c)}}},VBM6:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("SVse"),a=e("s7LF"),o=e("+gVj"),r=e("mXUL"),d=e("IZUe"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("L4us"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return P}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Edit"]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Add"]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Edit"]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Add"]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The cluster name is not valid."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The CephX ID is not valid."]))],null,null)}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The monitory address is not valid."]))],null,null)}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX key must be base64 encoded."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,106,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,7,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,5,null,null,null,null,null,null,null)),t["ɵdid"](4,16384,null,0,s.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](6,278528,null,0,s.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](8,16384,null,0,s.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],null,null),(l()(),t["ɵted"](-1,null,[" pool mirror peer"])),(l()(),t["ɵeld"](10,0,null,1,96,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,95,"form",[["class","form"],["name","editPeerForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,13).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,13).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,16).onSubmit()&&i),i}),null,null)),t["ɵdid"](12,16384,null,0,a.G,[],null,null),t["ɵdid"](13,540672,[["formDir",4]],0,a.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,a.d,null,[a.l]),t["ɵdid"](15,16384,null,0,a.s,[[4,a.d]],null,null),t["ɵdid"](16,16384,null,0,o.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](17,0,null,null,82,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](18,0,null,null,14,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,13,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](20,0,null,null,5,null,null,null,null,null,null,null)),t["ɵdid"](21,16384,null,0,s.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](23,278528,null,0,s.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](25,16384,null,0,s.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],null,null),(l()(),t["ɵted"](-1,null,[" the pool mirror peer attributes for pool "])),(l()(),t["ɵeld"](27,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](28,null,["",""])),(l()(),t["ɵted"](-1,null,[" and click "])),(l()(),t["ɵeld"](30,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Submit"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](33,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](34,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](37,0,null,0,1,"label",[["class","col-form-label required"],["for","clusterName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Cluster Name"])),(l()(),t["ɵeld"](39,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","clusterName"],["id","clusterName"],["name","clusterName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,41)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,41).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,41)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,41)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](40,4210688,null,0,d.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](41,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](43,671744,[[1,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](45,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](46,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](48,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](50,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](51,0,null,null,16,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](52,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](55,0,null,0,1,"label",[["class","col-form-label required"],["for","clientID"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX ID"])),(l()(),t["ɵeld"](57,0,null,0,6,"input",[["class","form-control"],["formControlName","clientID"],["id","clientID"],["name","clientID"],["placeholder","CephX ID..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,58)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,58).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,58)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,58)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](58,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](60,671744,[[3,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](62,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](63,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,E)),t["ɵdid"](65,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,N)),t["ɵdid"](67,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](68,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](69,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](72,0,null,0,2,"label",[["class","col-form-label"],["for","monAddr"]],null,null,null,null,null)),(l()(),t["ɵeld"](73,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Monitor Addresses"])),(l()(),t["ɵeld"](75,0,null,0,6,"input",[["class","form-control"],["formControlName","monAddr"],["id","monAddr"],["name","monAddr"],["placeholder","Comma-delimited addresses..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,76)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,76).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,76)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,76)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](76,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](78,671744,[[5,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](80,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](81,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,F)),t["ɵdid"](83,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](84,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](85,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](88,0,null,0,2,"label",[["class","col-form-label"],["for","key"]],null,null,null,null,null)),(l()(),t["ɵeld"](89,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX Key"])),(l()(),t["ɵeld"](91,0,null,0,6,"input",[["class","form-control"],["formControlName","key"],["id","key"],["name","key"],["placeholder","Base64-encoded key..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,92)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,92).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,92)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,92)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](92,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](94,671744,[[7,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](96,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](97,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,T)),t["ɵdid"](99,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](100,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](101,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](102,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),c.b,c.a)),t["ɵdid"](103,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Submit"])),(l()(),t["ɵeld"](105,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["ɵdid"](106,49152,null,0,h.a,[s.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,4,0,e.mode),l(n,6,0,"edit"),l(n,13,0,e.editPeerForm),l(n,16,0,e.editPeerForm),l(n,21,0,e.mode),l(n,23,0,"edit"),l(n,34,0),l(n,40,0,""),l(n,43,0,"clusterName"),l(n,46,0,"clusterName"),l(n,48,0,e.editPeerForm.showError("clusterName",t["ɵnov"](n,13),"required")),l(n,50,0,e.editPeerForm.showError("clusterName",t["ɵnov"](n,13),"invalidClusterName")),l(n,52,0),l(n,60,0,"clientID"),l(n,63,0,"clientID"),l(n,65,0,e.editPeerForm.showError("clientID",t["ɵnov"](n,13),"required")),l(n,67,0,e.editPeerForm.showError("clientID",t["ɵnov"](n,13),"invalidClientID")),l(n,69,0),l(n,78,0,"monAddr"),l(n,81,0,"monAddr"),l(n,83,0,e.editPeerForm.showError("monAddr",t["ɵnov"](n,13),"invalidMonAddr")),l(n,85,0),l(n,94,0,"key"),l(n,97,0,"key"),l(n,99,0,e.editPeerForm.showError("key",t["ɵnov"](n,13),"invalidKey")),l(n,103,0,e.editPeerForm),l(n,106,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,11,0,t["ɵnov"](n,15).ngClassUntouched,t["ɵnov"](n,15).ngClassTouched,t["ɵnov"](n,15).ngClassPristine,t["ɵnov"](n,15).ngClassDirty,t["ɵnov"](n,15).ngClassValid,t["ɵnov"](n,15).ngClassInvalid,t["ɵnov"](n,15).ngClassPending),l(n,28,0,e.poolName),l(n,33,0,t["ɵnov"](n,34).hasErrors,t["ɵnov"](n,34).hasSuccess),l(n,39,0,t["ɵnov"](n,45).ngClassUntouched,t["ɵnov"](n,45).ngClassTouched,t["ɵnov"](n,45).ngClassPristine,t["ɵnov"](n,45).ngClassDirty,t["ɵnov"](n,45).ngClassValid,t["ɵnov"](n,45).ngClassInvalid,t["ɵnov"](n,45).ngClassPending,t["ɵnov"](n,46).validClass,t["ɵnov"](n,46).invalidClass),l(n,51,0,t["ɵnov"](n,52).hasErrors,t["ɵnov"](n,52).hasSuccess),l(n,57,0,t["ɵnov"](n,62).ngClassUntouched,t["ɵnov"](n,62).ngClassTouched,t["ɵnov"](n,62).ngClassPristine,t["ɵnov"](n,62).ngClassDirty,t["ɵnov"](n,62).ngClassValid,t["ɵnov"](n,62).ngClassInvalid,t["ɵnov"](n,62).ngClassPending,t["ɵnov"](n,63).validClass,t["ɵnov"](n,63).invalidClass),l(n,68,0,t["ɵnov"](n,69).hasErrors,t["ɵnov"](n,69).hasSuccess),l(n,75,0,t["ɵnov"](n,80).ngClassUntouched,t["ɵnov"](n,80).ngClassTouched,t["ɵnov"](n,80).ngClassPristine,t["ɵnov"](n,80).ngClassDirty,t["ɵnov"](n,80).ngClassValid,t["ɵnov"](n,80).ngClassInvalid,t["ɵnov"](n,80).ngClassPending,t["ɵnov"](n,81).validClass,t["ɵnov"](n,81).invalidClass),l(n,84,0,t["ɵnov"](n,85).hasErrors,t["ɵnov"](n,85).hasSuccess),l(n,91,0,t["ɵnov"](n,96).ngClassUntouched,t["ɵnov"](n,96).ngClassTouched,t["ɵnov"](n,96).ngClassPristine,t["ɵnov"](n,96).ngClassDirty,t["ɵnov"](n,96).ngClassValid,t["ɵnov"](n,96).ngClassInvalid,t["ɵnov"](n,96).ngClassPending,t["ɵnov"](n,97).validClass,t["ɵnov"](n,97).invalidClass)}))}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-pool-edit-peer-modal",[],null,null,null,V,S)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var P=t["ɵccf"]("cd-pool-edit-peer-modal",f.a,D,{},{},[])},WkyA:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{constructor(){}}},WxU5:function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e("Ekvf"),e("F83c"),e("2EZI");var t=e("kvvV");e("aexS"),e("kn/O");class i{constructor(l,n,e,t,i,u){this.authStorageService=l,this.rbdService=n,this.modalRef=e,this.fb=t,this.poolService=i,this.taskWrapper=u,this.poolPermission=this.authStorageService.getPermissions().pool}createForm(){this.purgeForm=this.fb.group({poolName:""})}ngOnInit(){this.poolPermission.read&&this.poolService.list(["pool_name","application_metadata"]).then(l=>{this.pools=l.filter(l=>l.application_metadata.includes("rbd")).map(l=>l.pool_name)}),this.createForm()}purge(){const l=this.purgeForm.getValue("poolName")||"";this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/purge",{pool_name:l}),call:this.rbdService.purgeTrash(l)}).subscribe(void 0,()=>{this.purgeForm.setErrors({cdSubmitButton:!0})},()=>{this.modalRef.hide()})}}},XED3:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("mrSG"),i=e("IheW"),u=e("2Vo4"),s=e("xTzq"),a=e("lOp/"),o=e("8Y7J"),r=e("pL04");let d=(()=>{let l=class{constructor(l,n){this.http=l,this.timerService=n,this.REFRESH_INTERVAL=3e4,this.summaryDataSource=new u.a(null),this.summaryData$=this.summaryDataSource.asObservable()}startPolling(){return this.timerService.get(()=>this.retrieveSummaryObservable(),this.REFRESH_INTERVAL).subscribe(this.retrieveSummaryObserver())}refresh(){return this.retrieveSummaryObservable().subscribe(this.retrieveSummaryObserver())}retrieveSummaryObservable(){return this.http.get("api/block/mirroring/summary")}retrieveSummaryObserver(){return l=>{this.summaryDataSource.next(l)}}getCurrentSummary(){return this.summaryDataSource.getValue()}subscribeSummary(l,n){return this.summaryData$.subscribe(l,n)}getPool(l){return this.http.get(`api/block/mirroring/pool/${l}`)}updatePool(l,n){return this.http.put(`api/block/mirroring/pool/${l}`,n,{observe:"response"})}getSiteName(){return this.http.get("api/block/mirroring/site_name")}setSiteName(l){return this.http.put("api/block/mirroring/site_name",{site_name:l},{observe:"response"})}createBootstrapToken(l){return this.http.post(`api/block/mirroring/pool/${l}/bootstrap/token`,{})}importBootstrapToken(l,n,e){return this.http.post(`api/block/mirroring/pool/${l}/bootstrap/peer`,{direction:n,token:e},{observe:"response"})}getPeer(l,n){return this.http.get(`api/block/mirroring/pool/${l}/peer/${n}`)}addPeer(l,n){return this.http.post(`api/block/mirroring/pool/${l}/peer`,n,{observe:"response"})}updatePeer(l,n,e){return this.http.put(`api/block/mirroring/pool/${l}/peer/${n}`,e,{observe:"response"})}deletePeer(l,n){return this.http.delete(`api/block/mirroring/pool/${l}/peer/${n}`,{observe:"response"})}};return l.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new l(o["ɵɵinject"](i.c),o["ɵɵinject"](a.a))},token:l,providedIn:r.a}),t.__decorate([t.__param(0,s.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[String]),t.__metadata("design:returntype",void 0)],l.prototype,"setSiteName",null),t.__decorate([t.__param(1,s.b),t.__param(2,s.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[String,String,String]),t.__metadata("design:returntype",void 0)],l.prototype,"importBootstrapToken",null),l=t.__decorate([s.a,t.__metadata("design:paramtypes",[i.c,a.a])],l),l})()},Z4cD:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=e("LvDl"),u=(e("my5R"),e("QFaf"));class s{constructor(l,n){this.modalRef=l,this.iscsiService=n}ngOnInit(){const l={backstore:new t.i(this.imagesSettings[this.image].backstore),lun:new t.i(this.imagesSettings[this.image].lun),wwn:new t.i(this.imagesSettings[this.image].wwn)};i.forEach(this.backstores,n=>{const e=this.imagesSettings[this.image][n]||{};i.forIn(this.disk_default_controls[n],(n,i)=>{l[i]=new t.i(e[i])})}),this.settingsForm=new u.a(l)}getDiskControlLimits(l,n){return this.disk_controls_limits?this.disk_controls_limits[l][n]:{type:"int"}}save(){const l=this.settingsForm.controls.backstore.value,n=this.settingsForm.controls.lun.value,e=this.settingsForm.controls.wwn.value,t={};i.forIn(this.settingsForm.controls,(n,e)=>{""!==n.value&&null!==n.value&&e in this.disk_default_controls[this.settingsForm.value.backstore]&&(t[e]=n.value,i.forEach(this.backstores,t=>{t!==l&&e in(this.imagesSettings[this.image][t]||{})&&(this.imagesSettings[this.image][t][e]=n.value)}))}),this.imagesSettings[this.image].backstore=l,this.imagesSettings[this.image].lun=n,this.imagesSettings[this.image].wwn=e,this.imagesSettings[this.image][l]=t,this.imagesSettings=Object.assign({},this.imagesSettings),this.control.updateValueAndValidity({emitEvent:!1}),this.modalRef.hide()}}},Z5tW:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("LvDl"),i=e("cp0P"),u=(e("Ekvf"),e("F83c"),e("0+/T")),s=(e("sne2"),e("oxzT")),a=e("mtw6"),o=e("vCyI"),r=(e("aexS"),e("9nlD"),e("daK0"));class d{constructor(l,n,e,i,u,a,r){this.authStorageService=l,this.rbdService=n,this.poolService=e,this.modalService=i,this.notificationService=u,this.i18n=a,this.actionLabels=r,this.selection=new o.a,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"create",icon:s.a.add,click:()=>this.createModal(),name:this.actionLabels.CREATE},{permission:"delete",icon:s.a.destroy,click:()=>this.deleteModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getDeleteDisableDesc()}]}ngOnInit(){this.columns=[{name:this.i18n("Namespace"),prop:"namespace",flexGrow:1},{name:this.i18n("Pool"),prop:"pool",flexGrow:1},{name:this.i18n("Total images"),prop:"num_images",flexGrow:1}],this.refresh()}refresh(){this.poolService.list(["pool_name","type","application_metadata"]).then(l=>{l=l.filter(l=>this.rbdService.isRBDPool(l)&&"replicated"===l.type);const n=[];l.forEach(l=>{n.push(this.rbdService.listNamespaces(l.pool_name))}),n.length>0?Object(i.a)(n).subscribe(n=>{const e=[];for(let t=0;t<n.length;t++){const i=l[t].pool_name;n[t].forEach(l=>{e.push({id:`${i}/${l.namespace}`,pool:i,namespace:l.namespace,num_images:l.num_images})})}this.namespaces=e}):this.namespaces=[]})}updateSelection(l){this.selection=l}createModal(){this.modalRef=this.modalService.show(r.a),this.modalRef.content.onSubmit.subscribe(()=>{this.refresh()})}deleteModal(){const l=this.selection.first().pool,n=this.selection.first().namespace;this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:"Namespace",itemNames:[`${l}/${n}`],submitAction:()=>this.rbdService.deleteNamespace(l,n).subscribe(()=>{this.notificationService.show(a.a.success,this.i18n("Deleted namespace '{{pool}}/{{namespace}}'",{pool:l,namespace:n})),this.modalRef.hide(),this.refresh()},()=>{this.modalRef.content.stopLoadingSpinner()})}})}getDeleteDisableDesc(){const l=this.selection.first();if(l&&l.num_images>0)return this.i18n("Namespace contains images")}}},a6qe:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=e("LvDl"),u=(e("my5R"),e("QFaf"));class s{constructor(l,n){this.modalRef=l,this.iscsiService=n}ngOnInit(){const l={};i.forIn(this.target_default_controls,(n,e)=>{l[e]=new t.i(this.target_controls.value[e])}),this.settingsForm=new u.a(l)}save(){const l={};i.forIn(this.settingsForm.controls,(n,e)=>{""!==n.value&&null!==n.value&&(l[e]=n.value)}),this.target_controls.setValue(l),this.modalRef.hide()}getTargetControlLimits(l){return this.target_controls_limits?this.target_controls_limits[l]:["Yes","No"].includes(this.target_default_controls[l])?{type:"bool"}:{type:"int"}}}},aAWM:function(l,n,e){"use strict";e("uIqm");var t=e("PhyI");class i{transform(l){return{0:"global",1:"pool",2:"image"}[l]}}e("aXbf"),e("o8EM"),e.d(n,"a",(function(){return u}));class u{constructor(l,n,e){this.formatterService=l,this.rbdConfigurationService=n,this.i18n=e,this.sourceField=t.a,this.typeField=t.b}ngOnInit(){this.poolConfigurationColumns=[{prop:"displayName",name:this.i18n("Name")},{prop:"description",name:this.i18n("Description")},{prop:"name",name:this.i18n("Key")},{prop:"source",name:this.i18n("Source"),cellTemplate:this.configurationSourceTpl,pipe:new i},{prop:"value",name:this.i18n("Value"),cellTemplate:this.configurationValueTpl}]}ngOnChanges(){this.data&&(this.data=this.data.filter(l=>this.rbdConfigurationService.getOptionFields().map(l=>l.name).includes(l.name)))}}},aa9H:function(l,n,e){"use strict";var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{}e.d(n,"a",(function(){return a}));class a{constructor(l,n,e,t){this.modalRef=l,this.i18n=n,this.rbdMirroringService=e,this.taskWrapper=t,this.bsConfig={containerClass:"theme-default"},this.peerExists=!1,this.mirrorModes=[{id:"disabled",name:this.i18n("Disabled")},{id:"pool",name:this.i18n("Pool")},{id:"image",name:this.i18n("Image")}],this.createForm()}createForm(){this.editModeForm=new i.a({mirrorMode:new t.i("",{validators:[t.B.required,this.validateMode.bind(this)]})})}ngOnInit(){this.pattern=`${this.poolName}`,this.rbdMirroringService.getPool(this.poolName).subscribe(l=>{this.setResponse(l)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(this.peerExists=!1,!l)return;const n=l.content_data.pools.find(l=>this.poolName===l.name);this.peerExists=n&&n.peer_uuids.length})}ngOnDestroy(){this.subs.unsubscribe()}validateMode(l){return"disabled"===l.value&&this.peerExists?{cannotDisable:{value:l.value}}:null}setResponse(l){this.editModeForm.get("mirrorMode").setValue(l.mirror_mode)}update(){const l=new s;l.mirror_mode=this.editModeForm.getValue("mirrorMode"),this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/mirroring/pool/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePool(this.poolName,l)}).subscribe(void 0,()=>this.editModeForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},bUo2:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("gp3X"),u=e("sb0X"),s=e("EEJc"),a=e("ajRT"),o=e("s7LF"),r=e("+gVj"),d=e("mXUL"),c=e("SVse"),m=e("D4zM"),p=e("OcYo"),h=e("EApP"),g=e("GiVz"),f=e("KVJa"),v=e("Z21x"),b=e("sne2"),C=e("Sofw"),S=e("aexS"),_=e("LqlI"),R=e("my5R"),y=e("9nlD");e.d(n,"a",(function(){return B}));var w=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function P(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submitAction()&&t),t}),i.b,i.a)),t["ɵdid"](1,114688,null,0,u.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Submit"]))],(function(l,n){l(n,1,0,n.component.discoveryForm)}),null)}function x(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,102,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Discovery Authentication"])),(l()(),t["ɵeld"](4,0,null,1,98,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,97,"form",[["name","discoveryForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,o.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,o.d,null,[o.l]),t["ɵdid"](9,16384,null,0,o.s,[[4,o.d]],null,null),t["ɵdid"](10,16384,null,0,r.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,85,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](13,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User"])),(l()(),t["ɵeld"](18,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,20)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,20).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,20)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,20)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](20,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](22,671744,[[1,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](24,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](25,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,k)),t["ɵdid"](27,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,I)),t["ɵdid"](29,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](30,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](31,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](34,0,null,0,1,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Password"])),(l()(),t["ɵeld"](36,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](37,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](38,0,null,null,6,"input",[["class","form-control"],["formControlName","password"],["id","password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,39)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,39).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,39)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,39)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](39,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](41,671744,[[3,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](43,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](44,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](45,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](46,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,47).onClick()&&i),i}),null,null)),t["ɵdid"](47,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["ɵeld"](48,0,null,null,1,"button",[["cdCopy2ClipboardButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,49).onClick()&&i),i}),null,null)),t["ɵdid"](49,81920,null,0,p.a,[t.ElementRef,t.Renderer2,h.j,g.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](51,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,N)),t["ɵdid"](53,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](54,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](55,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](58,0,null,0,2,"label",[["class","cd-col-form-label"],["for","mutual_user"]],null,null,null,null,null)),(l()(),t["ɵeld"](59,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mutual User"])),(l()(),t["ɵeld"](61,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](62,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["id","mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,63)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,63).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,63)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,63)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](63,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](65,671744,[[5,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](67,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](68,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,F)),t["ɵdid"](70,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,T)),t["ɵdid"](72,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](73,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](74,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](77,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mutual_password"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mutual Password"])),(l()(),t["ɵeld"](79,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](80,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](81,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_password"],["id","mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,82)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,82).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,82)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,82)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](82,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](84,671744,[[7,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](86,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](87,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](88,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](89,0,null,null,1,"button",[["cdPasswordButton","mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,90).onClick()&&i),i}),null,null)),t["ɵdid"](90,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["ɵeld"](91,0,null,null,1,"button",[["cdCopy2ClipboardButton","mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,92).onClick()&&i),i}),null,null)),t["ɵdid"](92,81920,null,0,p.a,[t.ElementRef,t.Renderer2,h.j,g.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,V)),t["ɵdid"](94,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,D)),t["ɵdid"](96,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](97,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](98,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,P)),t["ɵdid"](100,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](101,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,f.b,f.a)),t["ɵdid"](102,49152,null,0,v.a,[c.Location,b.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.bsModalRef),l(n,7,0,e.discoveryForm),l(n,10,0,e.discoveryForm),l(n,13,0),l(n,22,0,"user"),l(n,25,0,"user"),l(n,27,0,e.discoveryForm.showError("user",t["ɵnov"](n,7),"required")),l(n,29,0,e.discoveryForm.showError("user",t["ɵnov"](n,7),"pattern")),l(n,31,0),l(n,41,0,"password"),l(n,44,0,"password"),l(n,47,0,"password"),l(n,49,0,"password"),l(n,51,0,e.discoveryForm.showError("password",t["ɵnov"](n,7),"required")),l(n,53,0,e.discoveryForm.showError("password",t["ɵnov"](n,7),"pattern")),l(n,55,0),l(n,65,0,"mutual_user"),l(n,68,0,"mutual_user"),l(n,70,0,e.discoveryForm.showError("mutual_user",t["ɵnov"](n,7),"required")),l(n,72,0,e.discoveryForm.showError("mutual_user",t["ɵnov"](n,7),"pattern")),l(n,74,0),l(n,84,0,"mutual_password"),l(n,87,0,"mutual_password"),l(n,90,0,"mutual_password"),l(n,92,0,"mutual_password"),l(n,94,0,e.discoveryForm.showError("mutual_password",t["ɵnov"](n,7),"required")),l(n,96,0,e.discoveryForm.showError("mutual_password",t["ɵnov"](n,7),"pattern")),l(n,100,0,e.hasPermission),l(n,102,0,"Cancel",e.bsModalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,12,0,t["ɵnov"](n,13).hasErrors,t["ɵnov"](n,13).hasSuccess),l(n,19,0,t["ɵnov"](n,24).ngClassUntouched,t["ɵnov"](n,24).ngClassTouched,t["ɵnov"](n,24).ngClassPristine,t["ɵnov"](n,24).ngClassDirty,t["ɵnov"](n,24).ngClassValid,t["ɵnov"](n,24).ngClassInvalid,t["ɵnov"](n,24).ngClassPending,t["ɵnov"](n,25).validClass,t["ɵnov"](n,25).invalidClass),l(n,30,0,t["ɵnov"](n,31).hasErrors,t["ɵnov"](n,31).hasSuccess),l(n,38,0,t["ɵnov"](n,43).ngClassUntouched,t["ɵnov"](n,43).ngClassTouched,t["ɵnov"](n,43).ngClassPristine,t["ɵnov"](n,43).ngClassDirty,t["ɵnov"](n,43).ngClassValid,t["ɵnov"](n,43).ngClassInvalid,t["ɵnov"](n,43).ngClassPending,t["ɵnov"](n,44).validClass,t["ɵnov"](n,44).invalidClass),l(n,54,0,t["ɵnov"](n,55).hasErrors,t["ɵnov"](n,55).hasSuccess),l(n,62,0,t["ɵnov"](n,67).ngClassUntouched,t["ɵnov"](n,67).ngClassTouched,t["ɵnov"](n,67).ngClassPristine,t["ɵnov"](n,67).ngClassDirty,t["ɵnov"](n,67).ngClassValid,t["ɵnov"](n,67).ngClassInvalid,t["ɵnov"](n,67).ngClassPending,t["ɵnov"](n,68).validClass,t["ɵnov"](n,68).invalidClass),l(n,73,0,t["ɵnov"](n,74).hasErrors,t["ɵnov"](n,74).hasSuccess),l(n,81,0,t["ɵnov"](n,86).ngClassUntouched,t["ɵnov"](n,86).ngClassTouched,t["ɵnov"](n,86).ngClassPristine,t["ɵnov"](n,86).ngClassDirty,t["ɵnov"](n,86).ngClassValid,t["ɵnov"](n,86).ngClassInvalid,t["ɵnov"](n,86).ngClassPending,t["ɵnov"](n,87).validClass,t["ɵnov"](n,87).invalidClass)}))}function q(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-discovery-modal",[],null,null,null,x,w)),t["ɵdid"](1,114688,null,0,C.a,[S.a,_.a,R.a,y.a,g.a],null,null)],(function(l,n){l(n,1,0)}),null)}var B=t["ɵccf"]("cd-iscsi-target-discovery-modal",C.a,q,{},{},[])},chpi:function(l,n,e){"use strict";e.d(n,"a",(function(){return h}));var t=e("LvDl"),i=e("wd/R"),u=(e("F83c"),e("0+/T")),s=(e("sne2"),e("uIqm"),e("x38r")),a=e("oxzT"),o=e("yJti"),r=e("vCyI"),d=e("kvvV"),c=e("jVDg"),m=(e("a0VL"),e("aexS"),e("VTlA"),e("kn/O"),e("WxU5")),p=e("2GqK");class h{constructor(l,n,e,t,i,u,s,o){this.authStorageService=l,this.rbdService=n,this.modalService=e,this.cdDatePipe=t,this.taskListService=i,this.taskWrapper=u,this.i18n=s,this.actionLabels=o,this.icons=a.a,this.executingTasks=[],this.selection=new r.a,this.disablePurgeBtn=!0,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"update",icon:a.a.undo,click:()=>this.restoreModal(),name:this.actionLabels.RESTORE},{permission:"delete",icon:a.a.destroy,click:()=>this.deleteModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:1,cellTransformation:s.a.executing},{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:1},{name:this.i18n("Namespace"),prop:"namespace",flexGrow:1},{name:this.i18n("Status"),prop:"deferment_end_time",flexGrow:1,cellTemplate:this.expiresTpl},{name:this.i18n("Deleted At"),prop:"deletion_time",flexGrow:1,pipe:this.cdDatePipe}],this.taskListService.init(()=>this.rbdService.listTrash(),l=>this.prepareResponse(l),l=>this.images=l,()=>this.onFetchError(),l=>["rbd/trash/remove","rbd/trash/restore"].includes(l.name),(l,n)=>new c.a(l.pool_name,l.namespace,l.id).toString()===n.metadata.image_id_spec,void 0)}prepareResponse(l){let n=[];const e={};l.forEach(l=>{t.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),n=n.concat(l.value),this.disablePurgeBtn=!n.length});const u=[];return t.forEach(e,(l,n)=>{u.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+"<strong>"+l.join("</strong>, <strong>")+"</strong>"})}),this.viewCacheStatusList=u,n.forEach(l=>{l.cdIsExpired=i().isAfter(l.deferment_end_time)}),n}onFetchError(){this.table.reset(),this.viewCacheStatusList=[{status:o.a.ValueException}]}updateSelection(l){this.selection=l}restoreModal(){const l={poolName:this.selection.first().pool_name,namespace:this.selection.first().namespace,imageName:this.selection.first().name,imageId:this.selection.first().id};this.modalRef=this.modalService.show(p.a,{initialState:l})}deleteModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().id,t=this.selection.first().deferment_end_time,i=new c.a(l,n,e);this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:"RBD",itemNames:[i],bodyTemplate:this.deleteTpl,bodyContext:{$implicit:t},submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/trash/remove",{image_id_spec:i.toString()}),call:this.rbdService.removeTrash(i,!0)})}})}isExpired(l){return i().isAfter(l)}purgeModal(){this.modalService.show(m.a)}}},cxJu:function(l,n,e){"use strict";e.d(n,"a",(function(){return r}));var t=e("quSY"),i=(e("XED3"),e("oxzT")),u=e("vCyI"),s=(e("aexS"),e("SuaG")),a=e("+26A"),o=e("puGn");class r{constructor(l,n,e,s){this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.i18n=s,this.selection=new u.a,this.peersExist=!0,this.subs=new t.a,this.permission=this.authStorageService.getPermissions().rbdMirroring;const a={permission:"update",icon:i.a.edit,click:()=>this.editSiteNameModal(),name:this.i18n("Edit Site Name"),canBePrimary:()=>!0,disable:()=>!1},o={permission:"update",icon:i.a.upload,click:()=>this.createBootstrapModal(),name:this.i18n("Create Bootstrap Token"),disable:()=>!1},r={permission:"update",icon:i.a.download,click:()=>this.importBootstrapModal(),name:this.i18n("Import Bootstrap Token"),disable:()=>this.peersExist};this.tableActions=[a,o,r]}ngOnInit(){this.subs.add(this.rbdMirroringService.startPolling()),this.subs.add(this.rbdMirroringService.subscribeSummary(l=>{l&&(this.status=l.content_data.status,this.siteName=l.site_name,this.peersExist=!!l.content_data.pools.find(l=>l.peer_uuids.length>0))}))}ngOnDestroy(){this.subs.unsubscribe()}editSiteNameModal(){this.modalRef=this.modalService.show(o.a,{initialState:{siteName:this.siteName}})}createBootstrapModal(){this.modalRef=this.modalService.show(s.a,{initialState:{siteName:this.siteName}})}importBootstrapModal(){this.modalRef=this.modalService.show(a.a,{initialState:{siteName:this.siteName}})}}},daK0:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("s7LF"),i=e("XNiG"),u=(e("Ekvf"),e("F83c"),e("mtw6")),s=e("QFaf"),a=e("kvvV");e("aexS"),e("9nlD");class o{constructor(l,n,e,t,i,u){this.modalRef=l,this.authStorageService=n,this.notificationService=e,this.poolService=t,this.rbdService=i,this.i18n=u,this.pools=null,this.editing=!1,this.poolPermission=this.authStorageService.getPermissions().pool,this.createForm()}createForm(){this.namespaceForm=new s.a({pool:new t.i(""),namespace:new t.i("")},this.validator(),this.asyncValidator())}validator(){return l=>{const n=l.get("pool"),e=l.get("namespace");let t=null;n.value||(t={required:!0}),n.setErrors(t);let i=null;return e.value||(i={required:!0}),e.setErrors(i),null}}asyncValidator(){return l=>new Promise(n=>{const e=l.get("pool"),t=l.get("namespace");this.rbdService.listNamespaces(e.value).subscribe(l=>{if(l.some(l=>l.namespace===t.value)){const l={namespaceExists:!0};t.setErrors(l),n(l)}else n(null)})})}ngOnInit(){this.onSubmit=new i.a,this.poolPermission.read&&this.poolService.list(["pool_name","type","application_metadata"]).then(l=>{const n=[];for(const e of l)this.rbdService.isRBDPool(e)&&"replicated"===e.type&&n.push(e);if(this.pools=n,1===this.pools.length){const l=this.pools[0].pool_name;this.namespaceForm.get("pool").setValue(l)}})}submit(){const l=this.namespaceForm.getValue("pool"),n=this.namespaceForm.getValue("namespace"),e=new a.a;e.name="rbd/namespace/create",e.metadata={pool:l,namespace:n},this.rbdService.createNamespace(l,n).toPromise().then(()=>{this.notificationService.show(u.a.success,this.i18n("Created namespace '{{pool}}/{{namespace}}'",{pool:l,namespace:n})),this.modalRef.hide(),this.onSubmit.next()}).catch(()=>{this.namespaceForm.setErrors({cdSubmitButton:!0})})}}},"e/kN":function(l,n,e){"use strict";e.d(n,"a",(function(){return c}));var t=e("LvDl"),i=(e("my5R"),e("+fVR")),u=e("0+/T"),s=(e("sne2"),e("uIqm"),e("x38r")),a=e("oxzT"),o=e("vCyI"),r=e("kvvV"),d=(e("+0ag"),e("G1/K"),e("aexS"),e("mSOc"),e("VTlA"),e("kn/O"),e("Sofw"));class c extends i.a{constructor(l,n,e,i,u,s,r,d,c,m){super(),this.authStorageService=l,this.i18n=n,this.iscsiService=e,this.taskListService=i,this.cephReleaseNamePipe=u,this.notAvailablePipe=s,this.summaryservice=r,this.modalService=d,this.taskWrapper=c,this.actionLabels=m,this.available=void 0,this.selection=new o.a,this.targets=[],this.icons=a.a,this.builders={"iscsi/target/create":l=>({target_iqn:l.target_iqn})},this.permission=this.authStorageService.getPermissions().iscsi,this.tableActions=[{permission:"create",icon:a.a.add,routerLink:()=>"/block/iscsi/targets/create",name:this.actionLabels.CREATE},{permission:"update",icon:a.a.edit,routerLink:()=>`/block/iscsi/targets/edit/${this.selection.first().target_iqn}`,name:this.actionLabels.EDIT,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getEditDisableDesc()},{permission:"delete",icon:a.a.destroy,click:()=>this.deleteIscsiTargetModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getDeleteDisableDesc()}]}ngOnInit(){this.columns=[{name:this.i18n("Target"),prop:"target_iqn",flexGrow:2,cellTransformation:s.a.executing},{name:this.i18n("Portals"),prop:"cdPortals",flexGrow:2},{name:this.i18n("Images"),prop:"cdImages",flexGrow:2},{name:this.i18n("# Sessions"),prop:"info.num_sessions",pipe:this.notAvailablePipe,flexGrow:1}],this.iscsiService.status().subscribe(l=>{if(this.available=l.available,l.available)this.iscsiService.version().subscribe(l=>{this.cephIscsiConfigVersion=l.ceph_iscsi_config_version,this.taskListService.init(()=>this.iscsiService.listTargets(),l=>this.prepareResponse(l),l=>this.targets=l,()=>this.onFetchError(),this.taskFilter,this.itemFilter,this.builders)}),this.iscsiService.settings().subscribe(l=>{this.settings=l});else{const n=this.summaryservice.getCurrentSummary(),e=this.cephReleaseNamePipe.transform(n.version);this.docsUrl=`http://docs.ceph.com/docs/${e}/mgr/dashboard/#enabling-iscsi-management`,this.status=l.message}})}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}getEditDisableDesc(){const l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):void 0}getDeleteDisableDesc(){const l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):l&&l.info&&l.info.num_sessions?this.i18n("Target has active sessions"):void 0}prepareResponse(l){return l.forEach(l=>{l.cdPortals=l.portals.map(l=>`${l.host}:${l.ip}`),l.cdImages=l.disks.map(l=>`${l.pool}/${l.image}`)}),l}onFetchError(){this.table.reset()}itemFilter(l,n){return l.target_iqn===n.metadata.target_iqn}taskFilter(l){return["iscsi/target/create","iscsi/target/edit","iscsi/target/delete"].includes(l.name)}updateSelection(l){this.selection=l}deleteIscsiTargetModal(){const l=this.selection.first().target_iqn;this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:this.i18n("iSCSI target"),itemNames:[l],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new r.a("iscsi/target/delete",{target_iqn:l}),call:this.iscsiService.deleteTarget(l)})}})}configureDiscoveryAuth(){this.modalService.show(d.a,{})}}},eF8U:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("mXUL");e("jMP8"),e.d(n,"a",(function(){return o})),e.d(n,"b",(function(){return v}));var o=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function r(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function d(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,11,"select",[["class","form-control custom-select"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](7,0,null,null,2,"option",[],null,null,null,null,null)),t["ɵdid"](8,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](9,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,r)),t["ɵdid"](11,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,6,0,e.setting),l(n,8,0,null),l(n,9,0,null),l(n,11,0,e.limits.values)}),(function(l,n){var e=n.component;l(n,0,1,[t["ɵinlineInterpolate"](1,"",e.setting,""),t["ɵinlineInterpolate"](1,"",e.setting,""),t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass])}))}function c(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.value)&&i),"input"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](2,16384,null,0,i.w,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),t["ɵdid"](4,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.setting),l(n,7,0,e.setting)}),(function(l,n){l(n,0,0,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass)}))}function m(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,6,0,e.setting)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function p(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,23,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),t["ɵeld"](2,0,null,null,10,"div",[["class","custom-control custom-radio custom-control-inline"]],null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,4)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,4).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,4)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,4)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,5).onChange()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,5).onTouched()&&i),i}),null,null)),t["ɵdid"](4,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](5,212992,null,0,i.x,[t.Renderer2,t.ElementRef,i.D,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.x]),t["ɵdid"](7,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](9,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](10,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](11,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](-1,null,["Yes"])),(l()(),t["ɵeld"](13,0,null,null,10,"div",[["class","custom-control custom-radio custom-control-inline"]],null,null,null,null,null)),(l()(),t["ɵeld"](14,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,15)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,15).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,15)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,15)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,16).onChange()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,16).onTouched()&&i),i}),null,null)),t["ɵdid"](15,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](16,212992,null,0,i.x,[t.Renderer2,t.ElementRef,i.D,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.x]),t["ɵdid"](18,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](20,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](21,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](22,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](-1,null,["No"]))],(function(l,n){var e=n.component;l(n,5,0,e.setting,!0),l(n,7,0,e.setting),l(n,10,0,e.setting),l(n,16,0,e.setting,!1),l(n,18,0,e.setting),l(n,21,0,e.setting)}),(function(l,n){var e=n.component;l(n,3,0,e.setting+"True",t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending,t["ɵnov"](n,10).validClass,t["ɵnov"](n,10).invalidClass),l(n,11,0,e.setting+"True"),l(n,14,0,e.setting+"False",t["ɵnov"](n,20).ngClassUntouched,t["ɵnov"](n,20).ngClassTouched,t["ɵnov"](n,20).ngClassPristine,t["ɵnov"](n,20).ngClassDirty,t["ɵnov"](n,20).ngClassValid,t["ɵnov"](n,20).ngClassInvalid,t["ɵnov"](n,20).ngClassPending,t["ɵnov"](n,21).validClass,t["ɵnov"](n,21).invalidClass),l(n,22,0,e.setting+"False")}))}function h(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,c)),t["ɵdid"](2,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,m)),t["ɵdid"](4,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,p)),t["ɵdid"](6,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0,"int"===e.limits.type),l(n,4,0,"str"===e.limits.type),l(n,6,0,"bool"===e.limits.type)}),null)}function g(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](2,null,["Must be greater than or equal to ","."]))],null,(function(l,n){l(n,2,0,n.component.limits.min)}))}function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](2,null,["Must be less than or equal to ","."]))],null,(function(l,n){l(n,2,0,n.component.limits.max)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,17,"div",[["class","form-group"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,1).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,1).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,4).onSubmit()&&i),i}),a.b,a.a)),t["ɵdid"](1,540672,null,0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](3,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](4,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),t["ɵdid"](5,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](8,0,null,0,1,"label",[["class","col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""])),(l()(),t["ɵand"](16777216,null,0,1,null,d)),t["ɵdid"](11,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,h)),t["ɵdid"](13,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,g)),t["ɵdid"](15,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,f)),t["ɵdid"](17,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.settingsForm),l(n,4,0,e.settingsForm),l(n,5,0),l(n,11,0,"enum"===e.limits.type),l(n,13,0,"enum"!==e.limits.type),l(n,15,0,e.settingsForm.showError(e.setting,e.formDir,"min")),l(n,17,0,e.settingsForm.showError(e.setting,e.formDir,"max"))}),(function(l,n){var e=n.component;l(n,0,0,t["ɵnov"](n,3).ngClassUntouched,t["ɵnov"](n,3).ngClassTouched,t["ɵnov"](n,3).ngClassPristine,t["ɵnov"](n,3).ngClassDirty,t["ɵnov"](n,3).ngClassValid,t["ɵnov"](n,3).ngClassInvalid,t["ɵnov"](n,3).ngClassPending,t["ɵnov"](n,5).hasErrors,t["ɵnov"](n,5).hasSuccess),l(n,8,0,t["ɵinlineInterpolate"](1,"",e.setting,"")),l(n,9,0,e.setting)}))}},gr3l:function(l,n,e){"use strict";e.d(n,"a",(function(){return h}));var t=e("s7LF"),i=e("LvDl"),u=e("cp0P"),s=(e("my5R"),e("F83c"),e("DNAf")),a=e("a96k"),o=(e("sne2"),e("oxzT")),r=e("QFaf"),d=e("1Ni5"),c=e("kvvV"),m=(e("kn/O"),e("Z4cD")),p=e("a6qe");class h{constructor(l,n,e,t,i,u,a,r){this.iscsiService=l,this.modalService=n,this.rbdService=e,this.router=t,this.route=i,this.i18n=u,this.taskWrapper=a,this.actionLabels=r,this.api_version=0,this.minimum_gateways=1,this.icons=o.a,this.isEdit=!1,this.portalsSelections=[],this.imagesInitiatorSelections=[],this.groupDiskSelections=[],this.groupMembersSelections=[],this.imagesSettings={},this.messages={portals:new s.a({noOptions:this.i18n("There are no portals available.")},this.i18n),images:new s.a({noOptions:this.i18n("There are no images available.")},this.i18n),initiatorImage:new s.a({noOptions:this.i18n("There are no images available. Please make sure you add an image to the target.")},this.i18n),groupInitiator:new s.a({noOptions:this.i18n("There are no initiators available. Please make sure you add an initiator to the target.")},this.i18n)},this.IQN_REGEX=/^iqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+)*$/,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.resource=this.i18n("target")}ngOnInit(){const l=[this.iscsiService.listTargets(),this.rbdService.list(),this.iscsiService.portals(),this.iscsiService.settings(),this.iscsiService.version()];this.router.url.startsWith("/block/iscsi/targets/edit")&&(this.isEdit=!0,this.route.params.subscribe(n=>{this.target_iqn=decodeURIComponent(n.target_iqn),l.push(this.iscsiService.getTarget(this.target_iqn))})),this.action=this.isEdit?this.actionLabels.EDIT:this.actionLabels.CREATE,Object(u.a)(l).subscribe(l=>{const n=i(l[0]).filter(l=>l.target_iqn!==this.target_iqn).flatMap(l=>l.disks).map(l=>`${l.pool}/${l.image}`).value();"api_version"in l[3]&&(this.api_version=l[3].api_version),this.minimum_gateways=l[3].config.minimum_gateways,this.target_default_controls=l[3].target_default_controls,this.target_controls_limits=l[3].target_controls_limits,this.disk_default_controls=l[3].disk_default_controls,this.disk_controls_limits=l[3].disk_controls_limits,this.backstores=l[3].backstores,this.default_backstore=l[3].default_backstore,this.unsupported_rbd_features=l[3].unsupported_rbd_features,this.required_rbd_features=l[3].required_rbd_features,this.imagesAll=i(l[1]).flatMap(l=>l.value).filter(l=>!l.namespace&&-1===n.indexOf(`${l.pool_name}/${l.name}`)&&0!==this.getValidBackstores(l).length).value(),this.imagesSelections=this.imagesAll.map(l=>new a.a(!1,`${l.pool_name}/${l.name}`,""));const e=[];l[2].forEach(l=>{l.ip_addresses.forEach(n=>{e.push(new a.a(!1,l.name+":"+n,""))})}),this.portalsSelections=[...e],this.cephIscsiConfigVersion=l[4].ceph_iscsi_config_version,this.createForm(),l[5]&&this.resolveModel(l[5])})}createForm(){if(this.targetForm=new r.a({target_iqn:new t.i("iqn.2001-07.com.ceph:"+Date.now(),{validators:[t.B.required,t.B.pattern(this.IQN_REGEX)]}),target_controls:new t.i({}),portals:new t.i([],{validators:[d.a.custom("minGateways",l=>i.uniq(l.map(l=>l.split(":")[0])).length<Math.max(1,this.minimum_gateways))]}),disks:new t.i([],{validators:[d.a.custom("dupLunId",l=>{const n=this.getLunIds(l);return n.length!==i.uniq(n).length}),d.a.custom("dupWwn",l=>{const n=this.getWwns(l);return n.length!==i.uniq(n).length})]}),initiators:new t.f([]),groups:new t.f([]),acl_enabled:new t.i(!1)}),this.cephIscsiConfigVersion>10){const l=new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")});this.setAuthValidator(l),this.targetForm.addControl("auth",l)}}resolveModel(l){this.targetForm.patchValue({target_iqn:l.target_iqn,target_controls:l.target_controls,acl_enabled:l.acl_enabled}),this.cephIscsiConfigVersion>10&&this.targetForm.patchValue({auth:l.auth});const n=[];i.forEach(l.portals,l=>{n.push(`${l.host}:${l.ip}`)}),this.targetForm.patchValue({portals:n});const e=[];i.forEach(l.disks,l=>{const n=`${l.pool}/${l.image}`;e.push(n),this.imagesSettings[n]={backstore:l.backstore},this.imagesSettings[n][l.backstore]=l.controls,"lun"in l&&(this.imagesSettings[n].lun=l.lun),"wwn"in l&&(this.imagesSettings[n].wwn=l.wwn),this.onImageSelection({option:{name:n,selected:!0}})}),this.targetForm.patchValue({disks:e}),i.forEach(l.clients,l=>{const n=this.addInitiator();l.luns=i.map(l.luns,l=>`${l.pool}/${l.image}`),n.patchValue(l)}),i.forEach(l.groups,l=>{const n=this.addGroup();l.disks=i.map(l.disks,l=>`${l.pool}/${l.image}`),n.patchValue(l),i.forEach(l.members,l=>{this.onGroupMemberSelection({option:new a.a(!0,l,"")})})})}hasAdvancedSettings(l){return Object.values(l).length>0}get portals(){return this.targetForm.get("portals")}onPortalSelection(){this.portals.setValue(this.portals.value)}removePortal(l,n){return this.portalsSelections.forEach(l=>{l.name===n&&(l.selected=!1)}),this.portals.value.splice(l,1),this.portals.setValue(this.portals.value),!1}get disks(){return this.targetForm.get("disks")}removeImage(l,n){return this.imagesSelections.forEach(l=>{l.name===n&&(l.selected=!1)}),this.disks.value.splice(l,1),this.removeImageRefs(n),this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1}),!1}removeImageRefs(l){this.initiators.controls.forEach(n=>{const e=n.value.luns.filter(n=>n!==l);n.get("luns").setValue(e)}),this.groups.controls.forEach(n=>{const e=n.value.disks.filter(n=>n!==l);n.get("disks").setValue(e)}),i.forEach(this.imagesInitiatorSelections,(n,e)=>{this.imagesInitiatorSelections[e]=n.filter(n=>n.name!==l)}),i.forEach(this.groupDiskSelections,(n,e)=>{this.groupDiskSelections[e]=n.filter(n=>n.name!==l)})}getDefaultBackstore(l){let n=this.default_backstore;const e=this.getImageById(l);return this.validFeatures(e,this.default_backstore)||this.backstores.forEach(l=>{l!==this.default_backstore&&this.validFeatures(e,l)&&(n=l)}),n}isLunIdInUse(l,n){const e=this.disks.value.filter(l=>l!==n);return this.getLunIds(e).includes(l)}getLunIds(l){return i.map(l,l=>this.imagesSettings[l].lun)}nextLunId(l){const n=this.disks.value.filter(n=>n!==l),e=this.getLunIds(n);let t=0;for(;e.includes(t);)t++;return t}getWwns(l){return i.map(l,l=>this.imagesSettings[l].wwn).filter(l=>i.isString(l)&&""!==l)}onImageSelection(l){const n=l.option;if(n.selected){if(this.imagesSettings[n.name])this.isLunIdInUse(this.imagesSettings[n.name].lun,n.name)&&(this.imagesSettings[n.name].lun=this.nextLunId(n.name));else{const l=this.getDefaultBackstore(n.name);this.imagesSettings[n.name]={backstore:l,lun:this.nextLunId(n.name)},this.imagesSettings[n.name][l]={}}i.forEach(this.imagesInitiatorSelections,(l,e)=>{l.push(new a.a(!1,n.name,"")),this.imagesInitiatorSelections[e]=[...l]}),i.forEach(this.groupDiskSelections,(l,e)=>{l.push(new a.a(!1,n.name,"")),this.groupDiskSelections[e]=[...l]})}else this.removeImageRefs(n.name);this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1})}get initiators(){return this.targetForm.get("initiators")}addInitiator(){const l=new r.a({client_iqn:new t.i("",{validators:[t.B.required,d.a.custom("notUnique",l=>{const n=this.initiators.controls.reduce((function(l,n){return l.concat(n.value.client_iqn)}),[]);return n.indexOf(l)!==n.lastIndexOf(l)}),t.B.pattern(this.IQN_REGEX)]}),auth:new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")}),luns:new t.i([]),cdIsInGroup:new t.i(!1)});this.setAuthValidator(l),this.initiators.push(l),i.forEach(this.groupMembersSelections,(l,n)=>{l.push(new a.a(!1,"","")),this.groupMembersSelections[n]=[...l]});const n=i.map(this.targetForm.getValue("disks"),l=>new a.a(!1,l,""));return this.imagesInitiatorSelections.push(n),l}setAuthValidator(l){d.a.validateIf(l.get("user"),()=>l.getValue("password")||l.getValue("mutual_user")||l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[l.get("password"),l.get("mutual_user"),l.get("mutual_password")]),d.a.validateIf(l.get("password"),()=>l.getValue("user")||l.getValue("mutual_user")||l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("mutual_user"),l.get("mutual_password")]),d.a.validateIf(l.get("mutual_user"),()=>l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_password")]),d.a.validateIf(l.get("mutual_password"),()=>l.getValue("mutual_user"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_user")])}removeInitiator(l){const n=this.initiators.value[l];this.initiators.removeAt(l),i.forEach(this.groupMembersSelections,(n,e)=>{n.splice(l,1),this.groupMembersSelections[e]=[...n]}),this.groups.controls.forEach(l=>{const e=l.value.members.filter(l=>l!==n.client_iqn);l.get("members").setValue(e)}),this.imagesInitiatorSelections.splice(l,1)}updatedInitiatorSelector(){this.initiators.controls.forEach(l=>{l.get("client_iqn").updateValueAndValidity({emitEvent:!1})}),i.forEach(this.groupMembersSelections,(l,n)=>{i.forEach(l,(l,n)=>{const e=l.name;l.name=this.initiators.controls[n].value.client_iqn,this.groups.controls.forEach(n=>{const t=n.value.members,i=t.indexOf(e);-1!==i&&(t[i]=l.name),n.get("members").setValue(t)})}),this.groupMembersSelections[n]=[...this.groupMembersSelections[n]]})}removeInitiatorImage(l,n,e,t){const i=l.getValue("luns");return i.splice(n,1),l.patchValue({luns:i}),this.imagesInitiatorSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),!1}get groups(){return this.targetForm.get("groups")}addGroup(){const l=new r.a({group_id:new t.i("",{validators:[t.B.required]}),members:new t.i([]),disks:new t.i([])});this.groups.push(l);const n=i.map(this.targetForm.getValue("disks"),l=>new a.a(!1,l,""));this.groupDiskSelections.push(n);const e=i.map(this.initiators.value,l=>new a.a(!1,l.client_iqn,"",!l.cdIsInGroup));return this.groupMembersSelections.push(e),l}removeGroup(l){this.groups.removeAt(l),this.groupDiskSelections.splice(l,1)}onGroupMemberSelection(l){const n=l.option;let e;this.initiators.controls.forEach((l,t)=>{l.value.client_iqn===n.name&&(l.patchValue({luns:[]}),l.get("cdIsInGroup").setValue(n.selected),e=t)}),i.forEach(this.groupMembersSelections,l=>{l[e].enabled=!n.selected})}removeGroupInitiator(l,n,e){const t=l.getValue("members")[n];l.getValue("members").splice(n,1),this.groupMembersSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),this.groupMembersSelections[e]=[...this.groupMembersSelections[e]],this.onGroupMemberSelection({option:new a.a(!1,t,"")})}removeGroupDisk(l,n,e){const t=l.getValue("disks")[n];l.getValue("disks").splice(n,1),this.groupDiskSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),this.groupDiskSelections[e]=[...this.groupDiskSelections[e]]}submit(){const l=i.cloneDeep(this.targetForm.value),n={target_iqn:this.targetForm.getValue("target_iqn"),target_controls:this.targetForm.getValue("target_controls"),acl_enabled:this.targetForm.getValue("acl_enabled"),portals:[],disks:[],clients:[],groups:[]};if(this.cephIscsiConfigVersion>10){const l=this.targetForm.get("auth");l.getValue("user")||l.get("user").setValue(""),l.getValue("password")||l.get("password").setValue(""),l.getValue("mutual_user")||l.get("mutual_user").setValue(""),l.getValue("mutual_password")||l.get("mutual_password").setValue("");const e=this.targetForm.getValue("acl_enabled");n.auth={user:e?"":l.getValue("user"),password:e?"":l.getValue("password"),mutual_user:e?"":l.getValue("mutual_user"),mutual_password:e?"":l.getValue("mutual_password")}}let e;l.disks.forEach(l=>{const e=l.split("/"),t=this.imagesSettings[l].backstore;n.disks.push({pool:e[0],image:e[1],backstore:t,controls:this.imagesSettings[l][t],lun:this.imagesSettings[l].lun,wwn:this.imagesSettings[l].wwn})}),l.portals.forEach(l=>{const e=l.indexOf(":");n.portals.push({host:l.substring(0,e),ip:l.substring(e+1)})}),n.acl_enabled&&(l.initiators.forEach(l=>{l.auth.user||(l.auth.user=""),l.auth.password||(l.auth.password=""),l.auth.mutual_user||(l.auth.mutual_user=""),l.auth.mutual_password||(l.auth.mutual_password=""),delete l.cdIsInGroup;const n=[];l.luns.forEach(l=>{const e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.luns=n}),n.clients=l.initiators),n.acl_enabled&&(l.groups.forEach(l=>{const n=[];l.disks.forEach(l=>{const e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.disks=n}),n.groups=l.groups),this.isEdit?(n.new_target_iqn=n.target_iqn,n.target_iqn=this.target_iqn,e=this.taskWrapper.wrapTaskAroundCall({task:new c.a("iscsi/target/edit",{target_iqn:n.target_iqn}),call:this.iscsiService.updateTarget(this.target_iqn,n)})):e=this.taskWrapper.wrapTaskAroundCall({task:new c.a("iscsi/target/create",{target_iqn:n.target_iqn}),call:this.iscsiService.createTarget(n)}),e.subscribe(void 0,()=>{this.targetForm.setErrors({cdSubmitButton:!0})},()=>this.router.navigate(["/block/iscsi/targets"]))}targetSettingsModal(){const l={target_controls:this.targetForm.get("target_controls"),target_default_controls:this.target_default_controls,target_controls_limits:this.target_controls_limits};this.modalRef=this.modalService.show(p.a,{initialState:l})}imageSettingsModal(l){const n={imagesSettings:this.imagesSettings,image:l,api_version:this.api_version,disk_default_controls:this.disk_default_controls,disk_controls_limits:this.disk_controls_limits,backstores:this.getValidBackstores(this.getImageById(l)),control:this.targetForm.get("disks")};this.modalRef=this.modalService.show(m.a,{initialState:n})}validFeatures(l,n){const e=l.features,t=this.required_rbd_features[n];return(e&t)===t&&0==(e&this.unsupported_rbd_features[n])}getImageById(l){return this.imagesAll.find(n=>l===`${n.pool_name}/${n.name}`)}getValidBackstores(l){return this.backstores.filter(n=>this.validFeatures(l,n))}}},jMP8:function(l,n,e){"use strict";e.d(n,"a",(function(){return i}));var t=e("s7LF");e("QFaf");class i{ngOnInit(){const l=[];"min"in this.limits&&l.push(t.B.min(this.limits.min)),"max"in this.limits&&l.push(t.B.max(this.limits.max)),this.settingsForm.get(this.setting).setValidators(l)}}},"k/xb":function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e.d(n,"b",(function(){return S})),e.d(n,"c",(function(){return u})),e.d(n,"d",(function(){return s})),e.d(n,"j",(function(){return a})),e.d(n,"k",(function(){return o})),e.d(n,"l",(function(){return r})),e.d(n,"m",(function(){return d})),e.d(n,"n",(function(){return c})),e.d(n,"o",(function(){return m})),e.d(n,"p",(function(){return p})),e.d(n,"q",(function(){return h})),e.d(n,"e",(function(){return g})),e.d(n,"f",(function(){return f})),e.d(n,"g",(function(){return v})),e.d(n,"h",(function(){return b})),e.d(n,"i",(function(){return C}));var t=e("sne2");e("Vhfg"),e("gr3l"),e("e/kN"),e("roDX"),e("cxJu"),e("MyVl"),e("5GyT"),e("Z5tW"),e("WkyA"),e("chpi");class i{}const u={breadcrumbs:"Images"},s={breadcrumbs:"Namespaces"},a={breadcrumbs:"Trash"},o={breadcrumbs:"Overall Performance"},r={breadcrumbs:t.a.CREATE},d={breadcrumbs:t.a.EDIT},c={breadcrumbs:t.a.CLONE},m={breadcrumbs:t.a.COPY},p={breadcrumbs:t.a.COPY},h={breadcrumbs:"Mirroring"},g={breadcrumbs:"iSCSI"},f={breadcrumbs:"Overview"},v={breadcrumbs:"Targets"},b={breadcrumbs:t.a.CREATE},C={breadcrumbs:t.a.EDIT};class S{}},kccj:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{}},l7Jr:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("mXUL"),u=e("+gVj"),s=e("eF8U"),a=e("jMP8"),o=e("EEJc"),r=e("ajRT"),d=e("s7LF"),c=e("SVse"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("a6qe"),b=e("LqlI"),C=e("my5R");e.d(n,"a",(function(){return w}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](1,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"cd-iscsi-setting",[],null,null,null,s.b,s.a)),t["ɵdid"](6,114688,null,0,a.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,6,0,e.settingsForm,t["ɵnov"](n.parent,7),n.context.$implicit.key,e.getTargetControlLimits(n.context.$implicit.key))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,23,"cd-modal",[],null,null,null,o.c,o.b)),t["ɵdid"](1,49152,null,0,r.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Advanced Settings"])),(l()(),t["ɵeld"](4,0,null,1,19,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,18,"form",[["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,d.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,d.d,null,[d.l]),t["ɵdid"](9,16384,null,0,d.s,[[4,d.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["ɵand"](16777216,null,null,2,null,_)),t["ɵdid"](15,278528,null,0,c.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["ɵpid"](0,c.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["ɵeld"](17,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](18,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t}),m.b,m.a)),t["ɵdid"](20,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Confirm"])),(l()(),t["ɵeld"](22,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["ɵdid"](23,49152,null,0,g.a,[c.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.settingsForm),l(n,10,0,e.settingsForm),l(n,15,0,t["ɵunv"](n,15,0,t["ɵnov"](n,16).transform(e.settingsForm.controls))),l(n,20,0,e.settingsForm),l(n,23,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-iqn-settings-modal",[],null,null,null,R,S)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var w=t["ɵccf"]("cd-iscsi-target-iqn-settings-modal",v.a,y,{},{},[])},lArG:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{}},"lz+O":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("EEJc"),o=e("ajRT"),r=e("mXUL"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("sne2"),g=e("WxU5"),f=e("aexS"),v=e("F83c"),b=e("LqlI"),C=e("2EZI"),S=e("Ekvf"),_=e("kn/O");e.d(n,"a",(function(){return N}));var R=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","poolName"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"poolName"),l(n,6,0,"poolName")}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","poolName"],["id","poolName"],["name","poolName"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](7,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),t["ɵdid"](8,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](9,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](-1,null,["All"])),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](12,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"poolName"),l(n,6,0,"poolName"),l(n,8,0,""),l(n,9,0,""),l(n,12,0,e.pools)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,41,"cd-modal",[],null,null,null,a.c,a.b)),t["ɵdid"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Purge Trash"])),(l()(),t["ɵeld"](4,0,null,1,37,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,36,"form",[["class","form"],["name","purgeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,23,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To purge, select one or"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["All"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["pools and click"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](22,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Purge Trash"])),(l()(),t["ɵted"](-1,null,[".  "])),(l()(),t["ɵeld"](25,0,null,null,9,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](26,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","col-form-label mx-auto"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool:"])),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](32,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](34,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](35,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](36,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](37,0,null,null,2,"cd-submit-button",[["id","purgeFormButton"]],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.purge()&&t),t}),d.b,d.a)),t["ɵdid"](38,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Purge Trash"])),(l()(),t["ɵeld"](40,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](41,49152,null,0,p.a,[s.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.purgeForm),l(n,10,0,e.purgeForm),l(n,26,0),l(n,32,0,!e.poolPermission.read),l(n,34,0,e.poolPermission.read),l(n,38,0,e.purgeForm),l(n,41,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess)}))}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-purge-modal",[],null,null,null,I,R)),t["ɵdid"](1,114688,null,0,g.a,[f.a,v.a,b.a,C.a,S.a,_.a],null,null)],(function(l,n){l(n,1,0)}),null)}var N=t["ɵccf"]("cd-rbd-trash-purge-modal",g.a,E,{},{},[])},my5R:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("mrSG"),i=e("IheW"),u=e("xTzq"),s=e("8Y7J"),a=e("pL04");let o=(()=>{let l=class{constructor(l){this.http=l}listTargets(){return this.http.get("api/iscsi/target")}getTarget(l){return this.http.get(`api/iscsi/target/${l}`)}updateTarget(l,n){return this.http.put(`api/iscsi/target/${l}`,n,{observe:"response"})}status(){return this.http.get("ui-api/iscsi/status")}settings(){return this.http.get("ui-api/iscsi/settings")}version(){return this.http.get("ui-api/iscsi/version")}portals(){return this.http.get("ui-api/iscsi/portals")}createTarget(l){return this.http.post("api/iscsi/target",l,{observe:"response"})}deleteTarget(l){return this.http.delete(`api/iscsi/target/${l}`,{observe:"response"})}getDiscovery(){return this.http.get("api/iscsi/discoveryauth")}updateDiscovery(l){return this.http.put("api/iscsi/discoveryauth",l)}overview(){return this.http.get("ui-api/iscsi/overview")}};return l.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new l(s["ɵɵinject"](i.c))},token:l,providedIn:a.a}),l=t.__decorate([u.a,t.__metadata("design:paramtypes",[i.c])],l),l})()},nP0W:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("EEJc"),s=e("ajRT"),a=e("+gVj"),o=e("mXUL"),r=e("SVse"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("sne2"),g=e("aa9H"),f=e("LqlI"),v=e("GiVz"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return k}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.id),l(n,2,0,n.context.$implicit.id)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Peer clusters must be removed prior to disabling mirror."]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,45,"cd-modal",[],null,null,null,u.c,u.b)),t["ɵdid"](1,49152,null,0,s.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit pool mirror mode"])),(l()(),t["ɵeld"](4,0,null,1,41,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,40,"form",[["class","form"],["name","editModeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,27,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,8,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To edit the mirror mode for pool  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](16,null,["",""])),(l()(),t["ɵted"](-1,null,[", select a new mode from the list and click  "])),(l()(),t["ɵeld"](18,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Update"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](21,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](22,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](25,0,null,0,2,"label",[["class","col-form-label"],["for","mirrorMode"]],null,null,null,null,null)),(l()(),t["ɵeld"](26,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mode"])),(l()(),t["ɵeld"](28,0,null,0,8,"select",[["class","form-control custom-select"],["formControlName","mirrorMode"],["id","mirrorMode"],["name","mirrorMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,29).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,29).onTouched()&&i),i}),null,null)),t["ɵdid"](29,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](31,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](33,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](34,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](36,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](38,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](39,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](40,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](41,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),d.b,d.a)),t["ɵdid"](42,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Update"])),(l()(),t["ɵeld"](44,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](45,49152,null,0,p.a,[r.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editModeForm),l(n,10,0,e.editModeForm),l(n,22,0),l(n,31,0,"mirrorMode"),l(n,34,0,"mirrorMode"),l(n,36,0,e.mirrorModes),l(n,38,0,e.editModeForm.showError("mirrorMode",t["ɵnov"](n,7),"cannotDisable")),l(n,42,0,e.editModeForm),l(n,45,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,16,0,e.poolName),l(n,21,0,t["ɵnov"](n,22).hasErrors,t["ɵnov"](n,22).hasSuccess),l(n,28,0,t["ɵnov"](n,33).ngClassUntouched,t["ɵnov"](n,33).ngClassTouched,t["ɵnov"](n,33).ngClassPristine,t["ɵnov"](n,33).ngClassDirty,t["ɵnov"](n,33).ngClassValid,t["ɵnov"](n,33).ngClassInvalid,t["ɵnov"](n,33).ngClassPending,t["ɵnov"](n,34).validClass,t["ɵnov"](n,34).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-pool-edit-mode-modal",[],null,null,null,y,S)),t["ɵdid"](1,245760,null,0,g.a,[f.a,v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var k=t["ɵccf"]("cd-pool-edit-mode-modal",g.a,w,{},{},[])},nhAp:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("mXUL"),u=e("+gVj"),s=e("s7LF"),a=e("SVse"),o=e("eF8U"),r=e("jMP8"),d=e("uYzU"),c=e("EEJc"),m=e("ajRT"),p=e("gp3X"),h=e("sb0X"),g=e("KVJa"),f=e("Z21x"),v=e("sne2"),b=e("Z4cD"),C=e("LqlI"),S=e("my5R");e.d(n,"a",(function(){return T}));var _=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,33,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Identifier"])),(l()(),t["ɵeld"](3,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](4,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](7,0,null,0,12,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","col-form-label required"],["for","lun"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["lun"])),(l()(),t["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","lun"],["id","lun"],["name","lun"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,11)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,11).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,11)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,11)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,12).onChange(e.target.value)&&i),"input"===n&&(i=!1!==t["ɵnov"](l,12).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,12).onTouched()&&i),i}),null,null)),t["ɵdid"](11,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵdid"](12,16384,null,0,s.w,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,s.p,(function(l,n){return[l,n]}),[s.e,s.w]),t["ɵdid"](14,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](16,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](17,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](19,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](20,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](21,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](24,0,null,0,9,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](25,0,null,null,1,"label",[["class","col-form-label"],["for","wwn"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["wwn"])),(l()(),t["ɵeld"](27,0,null,null,6,"input",[["class","form-control"],["formControlName","wwn"],["id","wwn"],["name","wwn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,28)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,28).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,28)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,28)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](28,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](30,671744,[[3,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](32,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](33,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0),l(n,14,0,"lun"),l(n,17,0,"lun"),l(n,19,0,e.settingsForm.showError("lun",t["ɵnov"](n.parent,12),"required")),l(n,21,0),l(n,30,0,"wwn"),l(n,33,0,"wwn")}),(function(l,n){l(n,3,0,t["ɵnov"](n,4).hasErrors,t["ɵnov"](n,4).hasSuccess),l(n,10,0,t["ɵnov"](n,16).ngClassUntouched,t["ɵnov"](n,16).ngClassTouched,t["ɵnov"](n,16).ngClassPristine,t["ɵnov"](n,16).ngClassDirty,t["ɵnov"](n,16).ngClassValid,t["ɵnov"](n,16).ngClassInvalid,t["ɵnov"](n,16).ngClassPending,t["ɵnov"](n,17).validClass,t["ɵnov"](n,17).invalidClass),l(n,20,0,t["ɵnov"](n,21).hasErrors,t["ɵnov"](n,21).hasSuccess),l(n,27,0,t["ɵnov"](n,32).ngClassUntouched,t["ɵnov"](n,32).ngClassTouched,t["ɵnov"](n,32).ngClassPristine,t["ɵnov"](n,32).ngClassDirty,t["ɵnov"](n,32).ngClassValid,t["ɵnov"](n,32).ngClassInvalid,t["ɵnov"](n,32).ngClassPending,t["ɵnov"](n,33).validClass,t["ɵnov"](n,33).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,s.v,[t.ElementRef,t.Renderer2,[2,s.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,s.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""])),t["ɵppd"](4,1)],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){var e=t["ɵunv"](n,3,0,l(n,4,0,t["ɵnov"](n.parent,0),n.context.$implicit));l(n,3,0,e)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](1,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"cd-iscsi-setting",[],null,null,null,o.b,o.a)),t["ɵdid"](6,114688,null,0,r.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,6,0,e.settingsForm,t["ɵnov"](n.parent.parent.parent,12),n.context.$implicit.key,e.getDiskControlLimits(n.parent.parent.context.$implicit,n.context.$implicit.key))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,2,null,k)),t["ɵdid"](2,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["ɵpid"](0,a.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){var e=n.component;l(n,2,0,t["ɵunv"](n,2,0,t["ɵnov"](n,3).transform(e.disk_default_controls[n.parent.context.$implicit])))}),null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,I)),t["ɵdid"](2,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,2,0,n.component.settingsForm.value.backstore===n.context.$implicit)}),null)}function N(l){return t["ɵvid"](0,[t["ɵpid"](0,d.a,[]),(l()(),t["ɵeld"](1,0,null,null,46,"cd-modal",[],null,null,null,c.c,c.b)),t["ɵdid"](2,49152,null,0,m.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](3,0,null,0,5,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Configure"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](7,0,null,null,1,"small",[],null,null,null,null,null)),(l()(),t["ɵted"](8,null,["",""])),(l()(),t["ɵeld"](9,0,null,1,38,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](10,0,null,null,37,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,12).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,12).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,15).onSubmit()&&i),i}),null,null)),t["ɵdid"](11,16384,null,0,s.G,[],null,null),t["ɵdid"](12,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](14,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](15,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](16,0,null,null,24,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](20,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](21,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Settings"])),(l()(),t["ɵeld"](23,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](24,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](27,0,null,0,11,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](28,0,null,null,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Backstore"])),(l()(),t["ɵeld"](30,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","backstore"],["id","backstore"],["name","backstore"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,31).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,31).onTouched()&&i),i}),null,null)),t["ɵdid"](31,16384,null,0,s.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.A]),t["ɵdid"](33,671744,[[5,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](35,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](36,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](38,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](40,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](41,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](42,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t}),p.b,p.a)),t["ɵdid"](44,114688,null,0,h.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Confirm"])),(l()(),t["ɵeld"](46,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,g.b,g.a)),t["ɵdid"](47,49152,null,0,f.a,[a.Location,v.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,2,0,e.modalRef),l(n,12,0,e.settingsForm),l(n,15,0,e.settingsForm),l(n,20,0,e.api_version>=1),l(n,24,0),l(n,33,0,"backstore"),l(n,36,0,"backstore"),l(n,38,0,e.backstores),l(n,40,0,e.backstores),l(n,44,0,e.settingsForm),l(n,47,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,8,0,n.component.image),l(n,10,0,t["ɵnov"](n,14).ngClassUntouched,t["ɵnov"](n,14).ngClassTouched,t["ɵnov"](n,14).ngClassPristine,t["ɵnov"](n,14).ngClassDirty,t["ɵnov"](n,14).ngClassValid,t["ɵnov"](n,14).ngClassInvalid,t["ɵnov"](n,14).ngClassPending),l(n,23,0,t["ɵnov"](n,24).hasErrors,t["ɵnov"](n,24).hasSuccess),l(n,30,0,t["ɵnov"](n,35).ngClassUntouched,t["ɵnov"](n,35).ngClassTouched,t["ɵnov"](n,35).ngClassPristine,t["ɵnov"](n,35).ngClassDirty,t["ɵnov"](n,35).ngClassValid,t["ɵnov"](n,35).ngClassInvalid,t["ɵnov"](n,35).ngClassPending,t["ɵnov"](n,36).validClass,t["ɵnov"](n,36).invalidClass)}))}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-image-settings-modal",[],null,null,null,N,_)),t["ɵdid"](1,114688,null,0,b.a,[C.a,S.a],null,null)],(function(l,n){l(n,1,0)}),null)}var T=t["ɵccf"]("cd-iscsi-target-image-settings-modal",b.a,F,{},{},[])},o8EM:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("PhyI"),i=e("8Y7J"),u=e("GiVz");let s=(()=>{class l{constructor(l){this.i18n=l,this.sections=[{heading:this.i18n("Quality of Service"),class:"quality-of-service",options:[{name:"rbd_qos_bps_limit",displayName:this.i18n("BPS Limit"),description:this.i18n("The desired limit of IO bytes per second."),type:t.b.bps},{name:"rbd_qos_iops_limit",displayName:this.i18n("IOPS Limit"),description:this.i18n("The desired limit of IO operations per second."),type:t.b.iops},{name:"rbd_qos_read_bps_limit",displayName:this.i18n("Read BPS Limit"),description:this.i18n("The desired limit of read bytes per second."),type:t.b.bps},{name:"rbd_qos_read_iops_limit",displayName:this.i18n("Read IOPS Limit"),description:this.i18n("The desired limit of read operations per second."),type:t.b.iops},{name:"rbd_qos_write_bps_limit",displayName:this.i18n("Write BPS Limit"),description:this.i18n("The desired limit of write bytes per second."),type:t.b.bps},{name:"rbd_qos_write_iops_limit",displayName:this.i18n("Write IOPS Limit"),description:this.i18n("The desired limit of write operations per second."),type:t.b.iops},{name:"rbd_qos_bps_burst",displayName:this.i18n("BPS Burst"),description:this.i18n("The desired burst limit of IO bytes."),type:t.b.bps},{name:"rbd_qos_iops_burst",displayName:this.i18n("IOPS Burst"),description:this.i18n("The desired burst limit of IO operations."),type:t.b.iops},{name:"rbd_qos_read_bps_burst",displayName:this.i18n("Read BPS Burst"),description:this.i18n("The desired burst limit of read bytes."),type:t.b.bps},{name:"rbd_qos_read_iops_burst",displayName:this.i18n("Read IOPS Burst"),description:this.i18n("The desired burst limit of read operations."),type:t.b.iops},{name:"rbd_qos_write_bps_burst",displayName:this.i18n("Write BPS Burst"),description:this.i18n("The desired burst limit of write bytes."),type:t.b.bps},{name:"rbd_qos_write_iops_burst",displayName:this.i18n("Write IOPS Burst"),description:this.i18n("The desired burst limit of write operations."),type:t.b.iops}]}]}static getOptionsFromSections(l){return l.map(l=>l.options).reduce((l,n)=>l.concat(n))}filterConfigOptionsByName(n){return l.getOptionsFromSections(this.sections).filter(l=>l.name===n)}getOptionValueByName(l,n,e=""){const t=this.filterConfigOptionsByName(l);return 1===t.length?t.pop()[n]:e}getWritableSections(){return this.sections.map(l=>(l.options=l.options.filter(l=>!l.readOnly),l))}getOptionFields(){return l.getOptionsFromSections(this.sections)}getWritableOptionFields(){return l.getOptionsFromSections(this.getWritableSections())}getOptionByName(l){return this.filterConfigOptionsByName(l).pop()}getDisplayName(l){return this.getOptionValueByName(l,"displayName")}getDescription(l){return this.getOptionValueByName(l,"description")}}return l.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new l(i["ɵɵinject"](u.a))},token:l,providedIn:"root"}),l})()},puGn:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.createForm()}createForm(){this.editSiteNameForm=new i.a({siteName:new t.i("",{})})}ngOnInit(){this.editSiteNameForm.get("siteName").setValue(this.siteName),this.rbdMirroringService.getSiteName().subscribe(l=>{this.editSiteNameForm.get("siteName").setValue(l.site_name)})}update(){this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/mirroring/site_name/edit",{}),call:this.rbdMirroringService.setSiteName(this.editSiteNameForm.getValue("siteName"))}).subscribe(void 0,()=>this.editSiteNameForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},rFfW:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("8Y7J"),i=e("s7LF"),u=e("oxzT"),s=e("QFaf"),a=e("PhyI");e("aXbf"),e("o8EM");class o{constructor(l,n){this.formatterService=l,this.rbdConfigurationService=n,this.changes=new t.EventEmitter,this.icons=u.a,this.ngDataReady=new t.EventEmitter,this.configurationType=a.b,this.sectionVisibility={}}ngOnInit(){const l=this.createConfigurationFormGroup();this.form.addControl("configuration",l),l.valueChanges.subscribe(()=>{this.changes.emit(this.getDirtyValues.bind(this))}),this.initializeData&&this.initializeData.subscribe(l=>{this.initialData=l.initialData;const n=l.sourceType;this.rbdConfigurationService.getWritableOptionFields().forEach(e=>{const t=l.initialData.filter(l=>l.name===e.name).pop();t&&t.source===n&&this.form.get(`configuration.${e.name}`).setValue(t.value)}),this.ngDataReady.emit()}),this.rbdConfigurationService.getWritableSections().forEach(l=>this.sectionVisibility[l.class]=!1)}getDirtyValues(l=!1,n){if(l&&!n)throw new Error("ProgrammingError: If local values shall be included, a proper localFieldType argument has to be provided, too");const e={};return this.rbdConfigurationService.getWritableOptionFields().forEach(t=>{const i=this.form.get("configuration").get(t.name);this.initialData&&this.initialData[t.name]===i.value||(i.dirty||l&&i.source===n)&&(e[t.name]=null===i.value?i.value:t.type===a.b.bps?this.formatterService.toBytes(i.value):t.type===a.b.milliseconds?this.formatterService.toMilliseconds(i.value):t.type===a.b.iops?this.formatterService.toIops(i.value):i.value)}),e}createConfigurationFormGroup(){const l=new s.a({});return this.rbdConfigurationService.getWritableOptionFields().forEach(n=>{let e;if(n.type!==a.b.milliseconds&&n.type!==a.b.iops&&n.type!==a.b.bps)throw new Error(`Type ${n.type} is unknown, you may need to add it to RbdConfiguration class`);e=new i.i(0,i.B.min(0)),l.addControl(n.name,e)}),l}reset(l){const n=this.form.get("configuration").get(l);n.disabled?(n.setValue(n.previousValue||0),n.enable(),n.previousValue||n.markAsPristine()):(n.previousValue=n.value,n.setValue(null),n.markAsDirty(),n.disable())}isDisabled(l){return this.form.get("configuration").get(l).disabled}toggleSectionVisibility(l){this.sectionVisibility[l]=!this.sectionVisibility[l]}}},roDX:function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e("my5R");var t=e("x38r");e("o4+5"),e("uYzU");class i{constructor(l,n,e,t){this.iscsiService=l,this.dimlessPipe=n,this.iscsiBackstorePipe=e,this.i18n=t,this.gateways=[],this.images=[]}ngOnInit(){this.gatewaysColumns=[{name:this.i18n("Name"),prop:"name"},{name:this.i18n("State"),prop:"state",flexGrow:1,cellTransformation:t.a.badge,customTemplateConfig:{map:{up:{class:"badge-success"},down:{class:"badge-danger"}}}},{name:this.i18n("# Targets"),prop:"num_targets"},{name:this.i18n("# Sessions"),prop:"num_sessions"}],this.imagesColumns=[{name:this.i18n("Pool"),prop:"pool"},{name:this.i18n("Image"),prop:"image"},{name:this.i18n("Backstore"),prop:"backstore",pipe:this.iscsiBackstorePipe},{name:this.i18n("Read Bytes"),prop:"stats_history.rd_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Write Bytes"),prop:"stats_history.wr_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Read Ops"),prop:"stats.rd",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("Write Ops"),prop:"stats.wr",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("A/O Since"),prop:"optimized_since",cellTemplate:this.iscsiRelativeDateTpl}]}refresh(){this.iscsiService.overview().subscribe(l=>{this.gateways=l.gateways,this.images=l.images,this.images.map(l=>(l.stats_history&&(l.stats_history.rd_bytes=l.stats_history.rd_bytes.map(l=>l[1]),l.stats_history.wr_bytes=l.stats_history.wr_bytes.map(l=>l[1])),l.cdIsBinary=!0,l))})}}},u2XS:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("25BL"),s=e("uIqm"),a=e("LOMR"),o=e("MP8s"),r=e("fxL3"),d=e("gk6K"),c=e("3ris"),m=e("GiVz"),p=e("uYzU"),h=e("iExv");e.d(n,"b",(function(){return g})),e.d(n,"c",(function(){return _})),e.d(n,"a",(function(){return y}));var g=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""])),(l()(),t["ɵted"](-1,null,["   "])),(l()(),t["ɵeld"](4,0,null,null,6,"span",[["class","badge"]],null,null,null,null,null)),t["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["ɵpad"](7,1),t["ɵpad"](8,1),t["ɵpod"](9,{"badge-success":0,"badge-danger":1}),(l()(),t["ɵted"](10,null,[" "," "]))],(function(l,n){var e=l(n,9,0,l(n,7,0,"logged_in").includes(n.context.$implicit.data.status),l(n,8,0,"logged_out").includes(n.context.$implicit.data.status));l(n,6,0,"badge",e)}),(function(l,n){l(n,0,0,n.context.$implicit.data.cdIcon),l(n,2,0,n.context.$implicit.data.name),l(n,10,0,n.context.$implicit.data.status)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"div",[["class","col-6 metadata"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""])),(l()(),t["ɵeld"](3,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,u.b,u.a)),t["ɵdid"](4,2867200,[[2,4],["detailTable",4]],0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],limit:[3,"limit"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex",0)}),(function(l,n){l(n,2,0,n.component.title)}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](1,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](3,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,void 0===n.context.row.default||n.context.row.default===n.context.row.current),l(n,3,0,void 0!==n.context.row.default&&n.context.row.default!==n.context.row.current)}),null)}function _(l){return t["ɵvid"](0,[t["ɵqud"](402653184,1,{highlightTpl:0}),t["ɵqud"](671088640,2,{content:0}),t["ɵqud"](671088640,3,{tree:0}),(l()(),t["ɵeld"](3,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,10,"div",[["class","col-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["iSCSI Topology"])),(l()(),t["ɵeld"](7,0,null,null,7,"tree-root",[],null,[[null,"updateData"],["body","keydown"],["body","mousedown"]],(function(l,n,e){var i=!0,u=l.component;return"body:keydown"===n&&(i=!1!==t["ɵnov"](l,9).onKeydown(e)&&i),"body:mousedown"===n&&(i=!1!==t["ɵnov"](l,9).onMousedown(e)&&i),"updateData"===n&&(i=!1!==u.onUpdateData()&&i),i}),a.b,a.a)),t["ɵprd"](131584,null,o.a,o.a,[]),t["ɵdid"](9,573440,[[3,4],["tree",4]],4,r.a,[o.a,d.a],{nodes:[0,"nodes"],options:[1,"options"]},{updateData:"updateData"}),t["ɵqud"](603979776,4,{loadingTemplate:0}),t["ɵqud"](603979776,5,{treeNodeTemplate:0}),t["ɵqud"](603979776,6,{treeNodeWrapperTemplate:0}),t["ɵqud"](603979776,7,{treeNodeFullTemplate:0}),(l()(),t["ɵand"](0,[[5,2],["treeNodeTemplate",2]],null,0,null,f)),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](16,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,[[1,2],["highlightTpl",2]],null,0,null,S))],(function(l,n){var e=n.component;l(n,9,0,e.nodes,e.treeOptions),l(n,16,0,e.data)}),null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-details",[],null,null,null,_,g)),t["ɵdid"](1,638976,null,0,c.a,[m.a,p.a,h.a],null,null)],(function(l,n){l(n,1,0)}),null)}var y=t["ɵccf"]("cd-iscsi-target-details",c.a,R,{selection:"selection",settings:"settings",cephIscsiConfigVersion:"cephIscsiConfigVersion"},{},[])},xvu0:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("mXUL"),r=e("IZUe"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("SVse"),g=e("sne2"),f=e("puGn"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return y}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,38,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit site name"])),(l()(),t["ɵeld"](4,0,null,1,34,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,33,"form",[["class","form"],["name","editSiteNameForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit the site name and click  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Update"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,13,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](28,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](30,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](31,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](32,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](33,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](34,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),d.b,d.a)),t["ɵdid"](35,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Update"])),(l()(),t["ɵeld"](37,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](38,49152,null,0,p.a,[h.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editSiteNameForm),l(n,10,0,e.editSiteNameForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,35,0,e.editSiteNameForm),l(n,38,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-edit-site-mode-modal",[],null,null,null,_,S)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var y=t["ɵccf"]("cd-edit-site-mode-modal",f.a,R,{},{},[])}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.d36650ee0a92dfd05faa.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/2.d36650ee0a92dfd05faa.js
deleted file mode 100644 (file)
index bf06118..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],{"+26A":function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("s7LF"),i=e("LvDl"),u=e("GyhO"),s=e("cp0P"),a=e("NJ9Y"),o=(e("XED3"),e("QFaf")),r=e("kvvV");e("kn/O");class d{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.pools=[],this.directions=[{key:"rx-tx",desc:"Bidirectional"},{key:"rx",desc:"Unidirectional (receive-only)"}],this.createForm()}createForm(){this.importBootstrapForm=new o.a({siteName:new t.i("",{validators:[t.B.required]}),direction:new t.i("rx-tx",{}),pools:new t.k({},{validators:[this.validatePools()]}),token:new t.i("",{validators:[t.B.required,this.validateToken()]})})}ngOnInit(){this.rbdMirroringService.getSiteName().subscribe(l=>{this.importBootstrapForm.get("siteName").setValue(l.site_name)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(!l)return;this.pools=l.content_data.pools.reduce((l,n)=>(l.push({name:n.name,mirror_mode:n.mirror_mode}),l),[]);const n=this.importBootstrapForm.get("pools");i.each(this.pools,l=>{const e=l.name,i="disabled"===l.mirror_mode,u=n.controls[e];u?i&&u.disabled?u.enable():!i&&u.enabled&&(u.disable(),u.setValue(!0)):n.addControl(e,new t.i({value:!i,disabled:!i}))})})}ngOnDestroy(){this.subs&&this.subs.unsubscribe()}validatePools(){return l=>{let n=0;return i.each(l.controls,l=>{!0===l.value&&++n}),n>0?null:{requirePool:!0}}}validateToken(){return l=>{try{if(JSON.parse(atob(l.value)))return null}catch(n){}return{invalidToken:!0}}}import(){const l=[],n=[],e=this.importBootstrapForm.get("pools");i.each(e.controls,(e,t)=>{!0===e.value&&(l.push(t),e.disabled||n.push(t))});const t={mirror_mode:"image"};let o=Object(u.a)(this.rbdMirroringService.setSiteName(this.importBootstrapForm.getValue("siteName")),Object(s.a)(n.map(l=>this.rbdMirroringService.updatePool(l,t))));o=l.reduce((l,n)=>Object(u.a)(l,this.rbdMirroringService.importBootstrapToken(n,this.importBootstrapForm.getValue("direction"),this.importBootstrapForm.getValue("token"))),o).pipe(Object(a.a)());const d=()=>{this.rbdMirroringService.refresh(),this.importBootstrapForm.setErrors({cdSubmitButton:!0})};this.taskWrapper.wrapTaskAroundCall({task:new r.a("rbd/mirroring/bootstrap/import",{}),call:o}).subscribe(void 0,d,()=>{d(),this.modalRef.hide()})}}},"0BYw":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("EEJc"),o=e("ajRT"),r=e("mXUL"),d=e("IZUe"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("daK0"),v=e("LqlI"),b=e("aexS"),C=e("9nlD"),S=e("Ekvf"),_=e("F83c"),y=e("GiVz");e.d(n,"a",(function(){return q}));var R=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"pool"),l(n,6,0,"pool")}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["-- No rbd pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](-1,null,["-- Select a pool --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,I)),t["ɵdid"](8,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,k)),t["ɵdid"](10,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](12,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,N)),t["ɵdid"](14,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"pool"),l(n,6,0,"pool"),l(n,8,0,null===e.pools),l(n,10,0,null!==e.pools&&0===e.pools.length),l(n,12,0,null!==e.pools&&e.pools.length>0),l(n,14,0,e.pools)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Namespace already exists."]))],null,null)}function P(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,50,"cd-modal",[],null,null,null,a.c,a.b)),t["ɵdid"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Create Namespace"])),(l()(),t["ɵeld"](4,0,null,1,46,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,45,"form",[["name","namespaceForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,32,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](13,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","pool"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool"])),(l()(),t["ɵeld"](18,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](20,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,F)),t["ɵdid"](22,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,T)),t["ɵdid"](24,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](25,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](26,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","namespace"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](31,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](32,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","namespace"],["id","namespace"],["name","namespace"],["placeholder","Namespace name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,33)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,33).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,33)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,33)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](33,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](35,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](37,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](38,4210688,null,0,d.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](39,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,V)),t["ɵdid"](41,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,D)),t["ɵdid"](43,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](44,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](45,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](46,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t}),c.b,c.a)),t["ɵdid"](47,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Create Namespace"])),(l()(),t["ɵeld"](49,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](50,49152,null,0,h.a,[s.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.namespaceForm),l(n,10,0,e.namespaceForm),l(n,13,0),l(n,20,0,!e.poolPermission.read),l(n,22,0,e.poolPermission.read),l(n,24,0,e.namespaceForm.showError("pool",t["ɵnov"](n,7),"required")),l(n,26,0),l(n,35,0,"namespace"),l(n,38,0,""),l(n,39,0,"namespace"),l(n,41,0,e.namespaceForm.showError("namespace",t["ɵnov"](n,7),"required")),l(n,43,0,e.namespaceForm.showError("namespace",t["ɵnov"](n,7),"namespaceExists")),l(n,47,0,e.namespaceForm),l(n,50,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,12,0,t["ɵnov"](n,13).hasErrors,t["ɵnov"](n,13).hasSuccess),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess),l(n,32,0,t["ɵnov"](n,37).ngClassUntouched,t["ɵnov"](n,37).ngClassTouched,t["ɵnov"](n,37).ngClassPristine,t["ɵnov"](n,37).ngClassDirty,t["ɵnov"](n,37).ngClassValid,t["ɵnov"](n,37).ngClassInvalid,t["ɵnov"](n,37).ngClassPending,t["ɵnov"](n,39).validClass,t["ɵnov"](n,39).invalidClass)}))}function x(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-namespace-form-modal",[],null,null,null,P,R)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a,S.a,_.a,y.a],null,null)],(function(l,n){l(n,1,0)}),null)}var q=t["ɵccf"]("cd-rbd-namespace-form-modal",f.a,x,{},{},[])},"0rTx":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("2GqK"),v=e("F83c"),b=e("LqlI"),C=e("2EZI"),S=e("kn/O");e.d(n,"a",(function(){return I}));var _=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,47,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Restore Image"])),(l()(),t["ɵeld"](4,0,null,1,43,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,42,"form",[["class","form"],["name","restoreForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,29,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To restore"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](17,null,["","@",""])),(l()(),t["ɵted"](-1,null,[",  "])),(l()(),t["ɵeld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["type the image's new name and click"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](22,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Restore Image"])),(l()(),t["ɵted"](-1,null,[". "])),(l()(),t["ɵeld"](25,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](26,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["New Name"])),(l()(),t["ɵeld"](31,0,null,0,7,"input",[["autocomplete","off"],["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,32)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,32).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,32)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,32)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](32,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](34,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](36,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](37,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](38,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](40,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](41,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](42,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.restore()&&t),t}),c.b,c.a)),t["ɵdid"](44,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Restore Image"])),(l()(),t["ɵeld"](46,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["ɵdid"](47,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.restoreForm),l(n,10,0,e.restoreForm),l(n,26,0),l(n,34,0,"name"),l(n,37,0,""),l(n,38,0,"name"),l(n,40,0,e.restoreForm.showError("name",t["ɵnov"](n,7),"required")),l(n,44,0,e.restoreForm),l(n,47,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,17,0,e.imageSpec,e.imageId),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess),l(n,31,0,t["ɵnov"](n,36).ngClassUntouched,t["ɵnov"](n,36).ngClassTouched,t["ɵnov"](n,36).ngClassPristine,t["ɵnov"](n,36).ngClassDirty,t["ɵnov"](n,36).ngClassValid,t["ɵnov"](n,36).ngClassInvalid,t["ɵnov"](n,36).ngClassPending,t["ɵnov"](n,38).validClass,t["ɵnov"](n,38).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-restore-modal",[],null,null,null,R,_)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a,S.a],null,null)],(function(l,n){l(n,1,0)}),null)}var I=t["ɵccf"]("cd-rbd-trash-restore-modal",f.a,w,{},{},[])},"2GqK":function(l,n,e){"use strict";e.d(n,"a",(function(){return u})),e("F83c"),e("2EZI");var t=e("kvvV"),i=e("jVDg");e("kn/O");class u{constructor(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t}ngOnInit(){this.imageSpec=new i.a(this.poolName,this.namespace,this.imageName).toString(),this.restoreForm=this.fb.group({name:this.imageName})}restore(){const l=this.restoreForm.getValue("name"),n=new i.a(this.poolName,this.namespace,this.imageId);this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/restore",{image_id_spec:n.toString(),new_image_name:l}),call:this.rbdService.restoreTrash(n,l)}).subscribe(void 0,()=>{this.restoreForm.setErrors({cdSubmitButton:!0})},()=>{this.modalRef.hide()})}}},"2JDI":function(l,n,e){"use strict";e.d(n,"a",(function(){return a}));var t=e("wd/R"),i=(e("F83c"),e("2EZI"),e("1Ni5")),u=e("kvvV"),s=e("jVDg");e("kn/O");class a{constructor(l,n,e,t){this.rbdService=l,this.modalRef=n,this.fb=e,this.taskWrapper=t,this.minDate=new Date,this.bsConfig={dateInputFormat:"YYYY-MM-DD HH:mm:ss",containerClass:"theme-default"},this.createForm()}createForm(){this.moveForm=this.fb.group({expiresAt:["",[i.a.custom("format",l=>!(""===l||t(l,"YYYY-MM-DD HH:mm:ss").isValid())),i.a.custom("expired",l=>t().isAfter(l))]]})}ngOnInit(){this.imageSpec=new s.a(this.poolName,this.namespace,this.imageName),this.imageSpecStr=this.imageSpec.toString(),this.pattern=`${this.poolName}/${this.imageName}`}moveImage(){let l=0;const n=this.moveForm.getValue("expiresAt");n&&(l=t(n).diff(t(),"seconds",!0)),l<0&&(l=0),this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/trash/move",{image_spec:this.imageSpecStr}),call:this.rbdService.moveTrash(this.imageSpec,l)}).subscribe(void 0,void 0,()=>{this.modalRef.hide()})}}},"3IYD":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("8xTl"),s=e("EEJc"),a=e("ajRT"),o=e("s7LF"),r=e("+gVj"),d=e("mXUL"),c=e("IZUe"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("Fd71"),b=e("LqlI"),C=e("F83c"),S=e("VXsX"),_=e("9nlD"),y=e("GiVz");e.d(n,"a",(function(){return E}));var R=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function I(l){return t["ɵvid"](0,[t["ɵpid"](0,i.TitleCasePipe,[]),t["ɵpid"](0,u.a,[]),(l()(),t["ɵeld"](2,0,null,null,39,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](3,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),t["ɵted"](5,null,[""," ",""])),t["ɵppd"](6,1),t["ɵppd"](7,1),(l()(),t["ɵeld"](8,0,null,1,33,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](9,0,null,null,32,"form",[["name","snapshotForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,11).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,11).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,14).onSubmit()&&i),i}),null,null)),t["ɵdid"](10,16384,null,0,o.G,[],null,null),t["ɵdid"](11,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,o.d,null,[o.l]),t["ɵdid"](13,16384,null,0,o.s,[[4,o.d]],null,null),t["ɵdid"](14,16384,null,0,r.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](15,0,null,null,17,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](16,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](17,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","snapshotName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](22,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","snapshotName"],["id","snapshotName"],["name","snapshotName"],["placeholder","Snapshot name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,24)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,24).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,24)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,24)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](24,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](26,671744,[[1,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](28,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](29,4210688,null,0,c.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](30,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](32,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](33,0,null,null,8,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](34,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](35,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submit()&&t),t}),m.b,m.a)),t["ɵdid"](36,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](37,0,[""," ",""])),t["ɵppd"](38,1),t["ɵppd"](39,1),(l()(),t["ɵeld"](40,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,h.b,h.a)),t["ɵdid"](41,49152,null,0,g.a,[i.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.modalRef),l(n,11,0,e.snapshotForm),l(n,14,0,e.snapshotForm),l(n,17,0),l(n,26,0,"snapshotName"),l(n,29,0,""),l(n,30,0,"snapshotName"),l(n,32,0,e.snapshotForm.showError("snapshotName",t["ɵnov"](n,11),"required")),l(n,36,0,e.snapshotForm),l(n,41,0,"Close",e.modalRef.hide)}),(function(l,n){var e=n.component,i=t["ɵunv"](n,5,0,l(n,6,0,t["ɵnov"](n,0),e.action)),u=t["ɵunv"](n,5,1,l(n,7,0,t["ɵnov"](n,1),e.resource));l(n,5,0,i,u),l(n,9,0,t["ɵnov"](n,13).ngClassUntouched,t["ɵnov"](n,13).ngClassTouched,t["ɵnov"](n,13).ngClassPristine,t["ɵnov"](n,13).ngClassDirty,t["ɵnov"](n,13).ngClassValid,t["ɵnov"](n,13).ngClassInvalid,t["ɵnov"](n,13).ngClassPending),l(n,16,0,t["ɵnov"](n,17).hasErrors,t["ɵnov"](n,17).hasSuccess),l(n,23,0,t["ɵnov"](n,28).ngClassUntouched,t["ɵnov"](n,28).ngClassTouched,t["ɵnov"](n,28).ngClassPristine,t["ɵnov"](n,28).ngClassDirty,t["ɵnov"](n,28).ngClassValid,t["ɵnov"](n,28).ngClassInvalid,t["ɵnov"](n,28).ngClassPending,t["ɵnov"](n,30).validClass,t["ɵnov"](n,30).invalidClass);var s=t["ɵunv"](n,37,0,l(n,38,0,t["ɵnov"](n,0),e.action)),a=t["ɵunv"](n,37,1,l(n,39,0,t["ɵnov"](n,1),e.resource));l(n,37,0,s,a)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-snapshot-form-modal",[],null,null,null,I,R)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a,S.a,_.a,y.a,f.b],null,null)],(function(l,n){l(n,1,0)}),null)}var E=t["ɵccf"]("cd-rbd-snapshot-form-modal",v.a,k,{},{},[])},"3ris":function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("yYhs"),i=e("LvDl"),u=(e("uIqm"),e("oxzT"));e("vCyI"),e("iExv"),e("uYzU");class s{constructor(l,n,e){this.i18n=l,this.iscsiBackstorePipe=n,this.booleanTextPipe=e,this.icons=u.a,this.metadata={},this.nodes=[],this.treeOptions={useVirtualScroll:!0,actionMapping:{mouse:{click:this.onNodeSelected.bind(this)}}}}set content(l){this.detailTable=l,l&&l.updateColumns()}ngOnInit(){this.columns=[{prop:"displayName",name:this.i18n("Name"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"current",name:this.i18n("Current"),flexGrow:1,cellTemplate:this.highlightTpl},{prop:"default",name:this.i18n("Default"),flexGrow:1,cellTemplate:this.highlightTpl}]}ngOnChanges(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.generateTree()),this.data=void 0}generateTree(){const l=i.cloneDeep(this.selectedItem.target_controls);this.cephIscsiConfigVersion>10&&i.extend(l,i.cloneDeep(this.selectedItem.auth)),this.metadata={root:l};const n={target:{expanded:i.join(this.selectedItem.cdExecuting?[u.a.large,u.a.spinner,u.a.spin]:[u.a.large,u.a.bullseye]," ")},initiators:{expanded:i.join([u.a.large,u.a.user]," "),leaf:i.join([u.a.user]," ")},groups:{expanded:i.join([u.a.large,u.a.users]," "),leaf:i.join([u.a.users]," ")},disks:{expanded:i.join([u.a.large,u.a.disk]," "),leaf:i.join([u.a.disk]," ")},portals:{expanded:i.join([u.a.large,u.a.server]," "),leaf:i.join([u.a.server]," ")}},e=[];i.forEach(this.selectedItem.disks,l=>{const t="disk_"+l.pool+"_"+l.image;this.metadata[t]={controls:l.controls,backstore:l.backstore},["wwn","lun"].forEach(n=>{n in l&&(this.metadata[t][n]=l[n])}),e.push({name:`${l.pool}/${l.image}`,cdId:t,cdIcon:n.disks.leaf})});const t=[];i.forEach(this.selectedItem.portals,l=>{t.push({name:`${l.host}:${l.ip}`,cdIcon:n.portals.leaf})});const s=[];i.forEach(this.selectedItem.clients,l=>{const e=i.cloneDeep(l.auth);l.info&&(i.extend(e,l.info),delete e.state,i.forEach(Object.keys(l.info.state),n=>{e[n.toLowerCase()]=l.info.state[n]})),this.metadata["client_"+l.client_iqn]=e;const t=[];l.luns.forEach(l=>{t.push({name:`${l.pool}/${l.image}`,cdId:"disk_"+l.pool+"_"+l.image,cdIcon:n.disks.leaf})});let u="";l.info&&(u=Object.keys(l.info.state).includes("LOGGED_IN")?"logged_in":"logged_out"),s.push({name:l.client_iqn,status:u,cdId:"client_"+l.client_iqn,children:t,cdIcon:n.initiators.leaf})});const a=[];i.forEach(this.selectedItem.groups,l=>{const e=[];l.disks.forEach(l=>{e.push({name:`${l.pool}/${l.image}`,cdId:"disk_"+l.pool+"_"+l.image,cdIcon:n.disks.leaf})});const t=[];l.members.forEach(l=>{t.push({name:l,cdId:"client_"+l})}),a.push({name:l.group_id,cdIcon:n.groups.leaf,children:[{name:"Disks",children:e,cdIcon:n.disks.expanded},{name:"Initiators",children:t,cdIcon:n.initiators.expanded}]})}),this.nodes=[{name:this.selectedItem.target_iqn,cdId:"root",isExpanded:!0,cdIcon:n.target.expanded,children:[{name:"Disks",isExpanded:!0,children:e,cdIcon:n.disks.expanded},{name:"Portals",isExpanded:!0,children:t,cdIcon:n.portals.expanded},{name:"Initiators",isExpanded:!0,children:s,cdIcon:n.initiators.expanded},{name:"Groups",isExpanded:!0,children:a,cdIcon:n.groups.expanded}]}]}format(l){return"boolean"==typeof l?this.booleanTextPipe.transform(l):l}onNodeSelected(l,n){if(t.a.ACTIVATE(l,n,!0),n.data.cdId){this.title=n.data.name;const l=this.metadata[n.data.cdId]||{};"root"===n.data.cdId?(this.columns[2].isHidden=!1,this.data=i.map(this.settings.target_default_controls,(n,e)=>({displayName:e,default:n=this.format(n),current:i.isUndefined(l[e])?n:this.format(l[e])})),this.cephIscsiConfigVersion>10&&["user","password","mutual_user","mutual_password"].forEach(n=>{this.data.push({displayName:n,default:null,current:l[n]})})):n.data.cdId.toString().startsWith("disk_")?(this.columns[2].isHidden=!1,this.data=i.map(this.settings.disk_default_controls[l.backstore],(n,e)=>({displayName:e,default:n=this.format(n),current:i.isUndefined(l.controls[e])?n:this.format(l.controls[e])})),this.data.push({displayName:"backstore",default:this.iscsiBackstorePipe.transform(this.settings.default_backstore),current:this.iscsiBackstorePipe.transform(l.backstore)}),["wwn","lun"].forEach(n=>{n in l&&this.data.push({displayName:n,default:void 0,current:l[n]})})):(this.columns[2].isHidden=!0,this.data=i.map(l,(l,n)=>({displayName:n,default:void 0,current:this.format(l)})))}else this.data=void 0;this.detailTable&&this.detailTable.updateColumns()}onUpdateData(){this.tree.treeModel.expandAll()}}},"5GyT":function(l,n,e){"use strict";var t=e("LvDl"),i=(e("F83c"),e("OLbh")),u=e("0+/T"),s=(e("sne2"),e("uIqm"),e("x38r")),a=e("oxzT"),o=e("yJti"),r=e("vCyI"),d=e("kvvV"),c=e("jVDg"),m=(e("Fgil"),e("o4+5"),e("aexS"),e("VTlA"),e("kn/O"),e("EgGo")),p=e("2JDI");class h{}e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return g}));const g=new m.a("block/rbd");class f{constructor(l,n,e,t,i,u,s,o,d,m){this.authStorageService=l,this.rbdService=n,this.dimlessBinaryPipe=e,this.dimlessPipe=t,this.modalService=i,this.taskWrapper=u,this.taskListService=s,this.i18n=o,this.urlBuilder=d,this.actionLabels=m,this.selection=new r.a,this.builders={"rbd/create":l=>this.createRbdFromTask(l.pool_name,l.namespace,l.image_name),"rbd/delete":l=>this.createRbdFromTaskImageSpec(l.image_spec),"rbd/clone":l=>this.createRbdFromTask(l.child_pool_name,l.child_namespace,l.child_image_name),"rbd/copy":l=>this.createRbdFromTask(l.dest_pool_name,l.dest_namespace,l.dest_image_name)},this.permission=this.authStorageService.getPermissions().rbdImage;const p=()=>this.selection.first()&&new c.a(this.selection.first().pool_name,this.selection.first().namespace,this.selection.first().name).toStringEncoded();this.tableActions=[{permission:"create",icon:a.a.add,routerLink:()=>this.urlBuilder.getCreate(),canBePrimary:l=>!l.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"update",icon:a.a.edit,routerLink:()=>this.urlBuilder.getEdit(p()),name:this.actionLabels.EDIT},{permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting,icon:a.a.copy,routerLink:()=>`/block/rbd/copy/${p()}`,name:this.actionLabels.COPY},{permission:"update",disable:l=>!l.hasSingleSelection||l.first().cdExecuting||!l.first().parent,icon:a.a.flatten,click:()=>this.flattenRbdModal(),name:this.actionLabels.FLATTEN},{permission:"delete",icon:a.a.destroy,click:()=>this.deleteRbdModal(),name:this.actionLabels.DELETE,disable:l=>!this.selection.first()||!this.selection.hasSingleSelection||this.hasClonedSnapshots(l.first()),disableDesc:()=>this.getDeleteDisableDesc()},{permission:"delete",icon:a.a.trash,click:()=>this.trashRbdModal(),name:this.actionLabels.TRASH}]}createRbdFromTaskImageSpec(l){const n=c.a.fromString(l);return this.createRbdFromTask(n.poolName,n.namespace,n.imageName)}createRbdFromTask(l,n,e){const t=new h;return t.id="-1",t.name=e,t.namespace=n,t.pool_name=l,t}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:2,cellTransformation:s.a.executing},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:2},{name:this.i18n("Namespace"),prop:"namespace",flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Objects"),prop:"num_objs",flexGrow:1,cellClass:"text-right",pipe:this.dimlessPipe},{name:this.i18n("Object size"),prop:"obj_size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Total provisioned"),prop:"total_disk_usage",cellClass:"text-center",flexGrow:1,pipe:this.dimlessBinaryPipe},{name:this.i18n("Parent"),prop:"parent",flexGrow:2,cellTemplate:this.parentTpl}],this.taskListService.init(()=>this.rbdService.list(),l=>this.prepareResponse(l),l=>this.images=l,()=>this.onFetchError(),l=>["rbd/clone","rbd/copy","rbd/create","rbd/delete","rbd/edit","rbd/flatten","rbd/trash/move"].includes(l.name),(l,n)=>{let e;switch(n.name){case"rbd/copy":e=new c.a(n.metadata.dest_pool_name,n.metadata.dest_namespace,n.metadata.dest_image_name).toString();break;case"rbd/clone":e=new c.a(n.metadata.child_pool_name,n.metadata.child_namespace,n.metadata.child_image_name).toString();break;case"rbd/create":e=new c.a(n.metadata.pool_name,n.metadata.namespace,n.metadata.image_name).toString();break;default:e=n.metadata.image_spec}return e===new c.a(l.pool_name,l.namespace,l.name).toString()},this.builders)}onFetchError(){this.table.reset(),this.viewCacheStatusList=[{status:o.a.ValueException}]}prepareResponse(l){let n=[];const e={};l.forEach(l=>{t.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),n=n.concat(l.value)});const i=[];return t.forEach(e,(l,n)=>{i.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+"<strong>"+l.join("</strong>, <strong>")+"</strong>"})}),this.viewCacheStatusList=i,n}updateSelection(l){this.selection=l}deleteRbdModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().name,t=new c.a(l,n,e);this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:"RBD",itemNames:[t],bodyTemplate:this.deleteTpl,bodyContext:{hasSnapshots:this.hasSnapshots(),snapshots:this.listProtectedSnapshots()},submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/delete",{image_spec:t.toString()}),call:this.rbdService.delete(t)})}})}trashRbdModal(){const l={poolName:this.selection.first().pool_name,namespace:this.selection.first().namespace,imageName:this.selection.first().name,hasSnapshots:this.hasSnapshots()};this.modalRef=this.modalService.show(p.a,{initialState:l})}flattenRbd(l){this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/flatten",{image_spec:l.toString()}),call:this.rbdService.flatten(l)}).subscribe(void 0,void 0,()=>{this.modalRef.hide()})}flattenRbdModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().name,t=this.selection.first().parent,u=new c.a(t.pool_name,t.pool_namespace,t.image_name),s=new c.a(l,n,e),a={titleText:"RBD flatten",buttonText:"Flatten",bodyTpl:this.flattenTpl,bodyData:{parent:`${u}@${t.snap_name}`,child:s.toString()},onSubmit:()=>{this.flattenRbd(s)}};this.modalRef=this.modalService.show(i.a,{initialState:a})}hasSnapshots(){return(this.selection.first().snapshots||[]).length>0}hasClonedSnapshots(l){return(l.snapshots||[]).some(l=>l.children&&l.children.length>0)}listProtectedSnapshots(){return this.selection.first().snapshots.reduce((l,n)=>(n.is_protected&&l.push(n.name),l),[])}getDeleteDisableDesc(){const l=this.selection.first();return l&&this.hasClonedSnapshots(l)?this.i18n("This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD."):""}}},BH9v:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("aXbf");class s{constructor(l,n){this.control=l,this.formatter=n}setValue(l){const n=this.formatter.toMilliseconds(l);this.control.control.setValue(`${n} ms`)}ngOnInit(){this.setValue(this.control.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.control.value))}onUpdate(l){this.setValue(l)}}var a=e("+gVj"),o=e("LvDl"),r=e("IzCI");class d{constructor(l,n,e,i){this.elementRef=l,this.control=n,this.dimlessBinaryPerSecondPipe=e,this.formatter=i,this.ngModelChange=new t.EventEmitter,this.el=this.elementRef.nativeElement}ngOnInit(){this.setValue(this.el.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.el.value))}setValue(l){/^[\d.]+$/.test(l)&&(l+=this.defaultUnit||"m");const n=this.formatter.toBytes(l,0),e=this.round(n);this.el.value=this.dimlessBinaryPerSecondPipe.transform(e),null!==n?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))}round(l){if(null!==l&&0!==l){if(!o.isUndefined(this.minBytes)&&l<this.minBytes)return this.minBytes;if(!o.isUndefined(this.maxBytes)&&l>this.maxBytes)return this.maxBytes;if(!o.isUndefined(this.roundPower)){const n=Math.round(Math.log(l)/Math.log(this.roundPower));return Math.pow(this.roundPower,n)}}return l}onBlur(l){this.setValue(l)}}class c{constructor(l,n){this.formatter=l,this.ngControl=n}setValue(l){const n=this.formatter.toIops(l);this.ngControl.control.setValue(`${n} IOPS`)}ngOnInit(){this.setValue(this.ngControl.value),this.ngDataReady&&this.ngDataReady.subscribe(()=>this.setValue(this.ngControl.value))}onUpdate(l){this.setValue(l)}}var m=e("mXUL"),p=e("4HWh"),h=e("p4Cf"),g=e("SVse");e("rFfW"),e("o8EM"),e.d(n,"a",(function(){return f})),e.d(n,"b",(function(){return R}));var f=t["ɵcrt"]({encapsulation:0,styles:[[".collapsible[_ngcontent-%COMP%]{cursor:pointer;-moz-user-select:none;user-select:none}"]],data:{}});function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdMilliseconds",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onUpdate(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,s,[i.q,u.a],{ngDataReady:[0,"ngDataReady"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdDimlessBinaryPerSecond",""],["class","form-control"],["defaultUnit","b"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onBlur(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,d,[t.ElementRef,i.q,r.a,u.a],{ngDataReady:[0,"ngDataReady"],defaultUnit:[1,"defaultUnit"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady,"b"),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,7,"input",[["cdIops",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,2)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,2)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,2)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,7).onUpdate(e.target.value)&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](4,671744,null,0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,81920,null,0,c,[u.a,i.q],{ngDataReady:[0,"ngDataReady"]},null),t["ɵdid"](8,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,n.parent.context.$implicit.name),l(n,7,0,e.ngDataReady),l(n,8,0,n.parent.context.$implicit.name)}),(function(l,n){l(n,1,1,[n.parent.context.$implicit.name,n.parent.context.$implicit.name,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,8).validClass,t["ɵnov"](n,8).invalidClass])}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The mininum value is 0"]))],null,null)}function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,m.b,m.a)),t["ɵdid"](1,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](5,null,["",""])),(l()(),t["ɵeld"](6,0,null,null,2,"cd-helper",[],null,null,null,p.b,p.a)),t["ɵdid"](7,49152,null,0,h.a,[],null,null),(l()(),t["ɵted"](8,0,["",""])),(l()(),t["ɵeld"](9,0,null,0,20,"div",[],[[8,"className",0]],null,null,null,null)),(l()(),t["ɵeld"](10,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,7,null,null,null,null,null,null,null)),t["ɵdid"](12,16384,null,0,g.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](14,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](16,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](18,278528,null,0,g.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,g.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵeld"](19,0,null,null,8,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](20,0,null,null,7,"button",[["class","btn btn-light"],["data-toggle","button"],["title","Remove the local configuration value. The parent configuration value will be inherited and used instead."],["type","button"]],null,[[null,"click"]],(function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.reset(l.context.$implicit.name)&&t),t}),null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](22,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["ɵpod"](23,{active:0}),(l()(),t["ɵeld"](24,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](26,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵpad"](27,1),(l()(),t["ɵand"](16777216,null,null,1,null,S)),t["ɵdid"](29,16384,null,0,g.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,12,0,n.context.$implicit.type),l(n,14,0,e.configurationType.milliseconds),l(n,16,0,e.configurationType.bps),l(n,18,0,e.configurationType.iops);var i=l(n,23,0,e.isDisabled(n.context.$implicit.name));l(n,22,0,"btn btn-light",i);var u=l(n,27,0,e.icons.erase);l(n,26,0,u),l(n,29,0,e.form.showError("configuration."+n.context.$implicit.name,t["ɵnov"](n.parent.parent,0),"min"))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess),l(n,4,0,n.context.$implicit.name),l(n,5,0,n.context.$implicit.displayName),l(n,8,0,n.context.$implicit.description),l(n,9,0,t["ɵinlineInterpolate"](1,"cd-col-form-input ",n.parent.context.$implicit.heading,""))}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,5,"h3",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵeld"](2,0,null,null,4,"span",[["class","collapsible"]],null,[[null,"click"]],(function(l,n,e){var t=!0;return"click"===n&&(t=!1!==l.component.toggleSectionVisibility(l.context.$implicit.class)&&t),t}),null,null)),(l()(),t["ɵted"](3,null,[" "," "])),(l()(),t["ɵeld"](4,0,null,null,2,"i",[["aria-hidden","true"]],null,null,null,null,null)),t["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](6,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(l()(),t["ɵeld"](7,0,null,null,2,"div",[],[[8,"className",0],[8,"hidden",0]],null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](9,278528,null,0,g.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,6,0,e.sectionVisibility[n.context.$implicit.class]?e.icons.minusCircle:e.icons.addCircle),l(n,9,0,n.context.$implicit.options)}),(function(l,n){var e=n.component;l(n,3,0,n.context.$implicit.heading),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.class,""),!e.sectionVisibility[n.context.$implicit.class])}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,[["cfgFormGroup",1]],null,8,"fieldset",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,1).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,1).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,4).onSubmit()&&i),i}),null,null)),t["ɵdid"](1,540672,null,0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](3,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](4,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["RBD Configuration"])),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](8,278528,null,0,g.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.form.get("configuration")),l(n,4,0,e.form.get("configuration")),l(n,8,0,e.rbdConfigurationService.sections)}),(function(l,n){l(n,0,0,t["ɵnov"](n,3).ngClassUntouched,t["ɵnov"](n,3).ngClassTouched,t["ɵnov"](n,3).ngClassPristine,t["ɵnov"](n,3).ngClassDirty,t["ɵnov"](n,3).ngClassValid,t["ɵnov"](n,3).ngClassInvalid,t["ɵnov"](n,3).ngClassPending)}))}},E7j4:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("EEJc"),a=e("ajRT"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("+26A"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return F}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.key),l(n,2,0,n.context.$implicit.key)}),(function(l,n){l(n,3,0,n.context.$implicit.desc)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.checked)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.c,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.c]),t["ɵdid"](4,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""]))],(function(l,n){l(n,4,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""))}),(function(l,n){l(n,1,1,[t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass]),l(n,8,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,9,0,n.context.$implicit.name)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["At least one pool is required."]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The token is invalid."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,87,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Import Bootstrap Token"])),(l()(),t["ɵeld"](4,0,null,1,83,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,82,"form",[["class","form"],["name","importBootstrapForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,69,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To import a bootstrap token which was created by a peer site cluster, provide the local site's name, select which pools will have mirroring enabled, provide the generated token, and click "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Import"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](28,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](30,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](31,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,_)),t["ɵdid"](33,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](34,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](35,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](38,0,null,0,2,"label",[["class","col-form-label"],["for","direction"]],null,null,null,null,null)),(l()(),t["ɵeld"](39,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Direction"])),(l()(),t["ɵeld"](41,0,null,0,8,"select",[["class","form-control custom-select"],["formControlName","direction"],["id","direction"],["name","direction"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,42).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,42).onTouched()&&i),i}),null,null)),t["ɵdid"](42,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](44,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](46,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](47,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](49,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](50,0,null,null,12,"div",[["class","form-group"],["formGroupName","pools"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](51,212992,null,0,i.m,[[3,i.d],[8,null],[8,null]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.d,null,[i.m]),t["ɵdid"](53,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](54,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](57,0,null,0,1,"label",[["class","col-form-label required"],["for","pools"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](60,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,w)),t["ɵdid"](62,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](63,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](64,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](67,0,null,0,1,"label",[["class","col-form-label required"],["for","token"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Token"])),(l()(),t["ɵeld"](69,0,null,0,7,"textarea",[["class","form-control resize-vertical"],["formControlName","token"],["id","token"],["placeholder","Generated token..."]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,70)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,70).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,70)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,70)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](70,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](72,671744,[[7,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](74,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](75,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵted"](-1,null,["          "])),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](78,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](80,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](81,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](82,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](83,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.import()&&t),t}),c.b,c.a)),t["ɵdid"](84,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Import"])),(l()(),t["ɵeld"](86,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](87,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.importBootstrapForm),l(n,10,0,e.importBootstrapForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,33,0,e.importBootstrapForm.showError("siteName",t["ɵnov"](n,7),"required")),l(n,35,0),l(n,44,0,"direction"),l(n,47,0,"direction"),l(n,49,0,e.directions),l(n,51,0,"pools"),l(n,54,0),l(n,60,0,e.pools),l(n,62,0,e.importBootstrapForm.showError("pools",t["ɵnov"](n,7),"requirePool")),l(n,64,0),l(n,72,0,"token"),l(n,75,0,"token"),l(n,78,0,e.importBootstrapForm.showError("token",t["ɵnov"](n,7),"required")),l(n,80,0,e.importBootstrapForm.showError("token",t["ɵnov"](n,7),"invalidToken")),l(n,84,0,e.importBootstrapForm),l(n,87,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass),l(n,34,0,t["ɵnov"](n,35).hasErrors,t["ɵnov"](n,35).hasSuccess),l(n,41,0,t["ɵnov"](n,46).ngClassUntouched,t["ɵnov"](n,46).ngClassTouched,t["ɵnov"](n,46).ngClassPristine,t["ɵnov"](n,46).ngClassDirty,t["ɵnov"](n,46).ngClassValid,t["ɵnov"](n,46).ngClassInvalid,t["ɵnov"](n,46).ngClassPending,t["ɵnov"](n,47).validClass,t["ɵnov"](n,47).invalidClass),l(n,50,0,t["ɵnov"](n,53).ngClassUntouched,t["ɵnov"](n,53).ngClassTouched,t["ɵnov"](n,53).ngClassPristine,t["ɵnov"](n,53).ngClassDirty,t["ɵnov"](n,53).ngClassValid,t["ɵnov"](n,53).ngClassInvalid,t["ɵnov"](n,53).ngClassPending,t["ɵnov"](n,54).hasErrors,t["ɵnov"](n,54).hasSuccess),l(n,63,0,t["ɵnov"](n,64).hasErrors,t["ɵnov"](n,64).hasSuccess),l(n,69,0,t["ɵnov"](n,74).ngClassUntouched,t["ɵnov"](n,74).ngClassTouched,t["ɵnov"](n,74).ngClassPristine,t["ɵnov"](n,74).ngClassDirty,t["ɵnov"](n,74).ngClassValid,t["ɵnov"](n,74).ngClassInvalid,t["ɵnov"](n,74).ngClassPending,t["ɵnov"](n,75).validClass,t["ɵnov"](n,75).invalidClass)}))}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-bootstrap-import-modal",[],null,null,null,E,S)),t["ɵdid"](1,245760,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var F=t["ɵccf"]("cd-bootstrap-import-modal",f.a,N,{},{},[])},EFGL:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("IzCI"),s=e("aXbf"),a=e("dEH0"),o=e("BQkM"),r=e("25BL"),d=e("uIqm");e("aAWM"),e("o8EM"),e("GiVz"),e.d(n,"a",(function(){return c})),e.d(n,"b",(function(){return _}));var c=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function m(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function p(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function h(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,e)}))}function g(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,7,"div",[],null,null,null,null,null)),t["ɵdid"](1,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,m)),t["ɵdid"](3,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,p)),t["ɵdid"](5,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,h)),t["ɵdid"](7,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],(function(l,n){l(n,1,0,n.context.value),l(n,3,0,"global"),l(n,5,0,"image"),l(n,7,0,"pool")}),null)}function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,1),n.parent.context.value));l(n,1,0,e)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),n.parent.context.value));l(n,1,0,e)}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),t["ɵppd"](2,1)],null,(function(l,n){var e=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,3),n.parent.context.value));l(n,1,0,e)}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[],null,null,null,null,null)),t["ɵdid"](1,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,f)),t["ɵdid"](3,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](5,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](7,278528,null,0,i.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](9,16384,null,0,i.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,i.NgSwitch],null,null)],(function(l,n){var e=n.component;l(n,1,0,n.context.row.type),l(n,3,0,e.typeField.bps),l(n,5,0,e.typeField.milliseconds),l(n,7,0,e.typeField.iops)}),null)}function _(l){return t["ɵvid"](0,[t["ɵpid"](0,i.TitleCasePipe,[]),t["ɵpid"](0,u.a,[s.a]),t["ɵpid"](0,a.a,[]),t["ɵpid"](0,o.a,[]),t["ɵqud"](402653184,1,{configurationSourceTpl:0}),t["ɵqud"](402653184,2,{configurationValueTpl:0}),t["ɵqud"](402653184,3,{poolConfTable:0}),(l()(),t["ɵeld"](7,0,null,null,1,"cd-table",[["identifier","name"]],null,null,null,r.b,r.a)),t["ɵdid"](8,2867200,[[3,4],["poolConfTable",4]],0,d.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"]},null),(l()(),t["ɵand"](0,[[1,2],["configurationSourceTpl",2]],null,0,null,g)),(l()(),t["ɵand"](0,[[2,2],["configurationValueTpl",2]],null,0,null,S))],(function(l,n){var e=n.component;l(n,8,0,e.data,e.poolConfigurationColumns,"name")}),null)}},Ekvf:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("mrSG"),i=e("IheW"),u=e("lJxs"),s=e("xTzq"),a=e("o8EM"),o=e("8Y7J"),r=e("pL04");let d=(()=>{let l=class{constructor(l,n){this.http=l,this.rbdConfigurationService=n,this.apiPath="api/pool"}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}update(l){let n;return l.hasOwnProperty("srcpool")?(n=l.srcpool,delete l.srcpool):(n=l.pool,delete l.pool),this.http.put(`${this.apiPath}/${encodeURIComponent(n)}`,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}get(l){return this.http.get(`${this.apiPath}/${l}`)}getList(){return this.http.get(`${this.apiPath}?stats=true`)}getConfiguration(l){return this.http.get(`${this.apiPath}/${l}/configuration`).pipe(Object(u.a)(l=>l.map(l=>Object.assign(l,this.rbdConfigurationService.getOptionByName(l.name)))))}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}list(l=[]){const n=l.join(",");return this.http.get(`${this.apiPath}?attrs=${n}`).toPromise().then(l=>l)}};return l.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new l(o["ɵɵinject"](i.c),o["ɵɵinject"](a.a))},token:l,providedIn:r.a}),l=t.__decorate([s.a,t.__metadata("design:paramtypes",[i.c,a.a])],l),l})()},F83c:function(l,n,e){"use strict";e.d(n,"a",(function(){return m}));var t=e("mrSG"),i=e("IheW"),u=e("LvDl"),s=e("lJxs"),a=e("xTzq"),o=e("jVDg"),r=e("o8EM"),d=e("8Y7J"),c=e("pL04");let m=(()=>{let l=class{constructor(l,n){this.http=l,this.rbdConfigurationService=n}isRBDPool(l){return-1!==u.indexOf(l.application_metadata,"rbd")&&!l.pool_name.includes("/")}create(l){return this.http.post("api/block/image",l,{observe:"response"})}delete(l){return this.http.delete(`api/block/image/${l.toStringEncoded()}`,{observe:"response"})}update(l,n){return this.http.put(`api/block/image/${l.toStringEncoded()}`,n,{observe:"response"})}get(l){return this.http.get(`api/block/image/${l.toStringEncoded()}`)}list(){return this.http.get("api/block/image").pipe(Object(s.a)(l=>l.map(l=>(l.value.map(l=>l.configuration?(l.configuration.map(l=>Object.assign(l,this.rbdConfigurationService.getOptionByName(l.name))),l):l),l))))}copy(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/copy`,n,{observe:"response"})}flatten(l){return this.http.post(`api/block/image/${l.toStringEncoded()}/flatten`,null,{observe:"response"})}defaultFeatures(){return this.http.get("api/block/image/default_features")}createSnapshot(l,n){const e={snapshot_name:n};return this.http.post(`api/block/image/${l.toStringEncoded()}/snap`,e,{observe:"response"})}renameSnapshot(l,n,e){const t={new_snap_name:e};return this.http.put(`api/block/image/${l.toStringEncoded()}/snap/${n}`,t,{observe:"response"})}protectSnapshot(l,n,e){const t={is_protected:e};return this.http.put(`api/block/image/${l.toStringEncoded()}/snap/${n}`,t,{observe:"response"})}rollbackSnapshot(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/snap/${n}/rollback`,null,{observe:"response"})}cloneSnapshot(l,n,e){return this.http.post(`api/block/image/${l.toStringEncoded()}/snap/${n}/clone`,e,{observe:"response"})}deleteSnapshot(l,n){return this.http.delete(`api/block/image/${l.toStringEncoded()}/snap/${n}`,{observe:"response"})}listTrash(){return this.http.get("api/block/image/trash/")}createNamespace(l,n){return this.http.post(`api/block/pool/${l}/namespace`,{namespace:n},{observe:"response"})}listNamespaces(l){return this.http.get(`api/block/pool/${l}/namespace/`)}deleteNamespace(l,n){return this.http.delete(`api/block/pool/${l}/namespace/${n}`,{observe:"response"})}moveTrash(l,n){return this.http.post(`api/block/image/${l.toStringEncoded()}/move_trash`,{delay:n},{observe:"response"})}purgeTrash(l){return this.http.post(`api/block/image/trash/purge/?pool_name=${l}`,null,{observe:"response"})}restoreTrash(l,n){return this.http.post(`api/block/image/trash/${l.toStringEncoded()}/restore`,{new_image_name:n},{observe:"response"})}removeTrash(l,n=!1){return this.http.delete(`api/block/image/trash/${l.toStringEncoded()}/?force=${n}`,{observe:"response"})}};return l.ngInjectableDef=d["ɵɵdefineInjectable"]({factory:function(){return new l(d["ɵɵinject"](i.c),d["ɵɵinject"](r.a))},token:l,providedIn:c.a}),t.__decorate([t.__param(1,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String]),t.__metadata("design:returntype",void 0)],l.prototype,"createSnapshot",null),t.__decorate([t.__param(2,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String,String]),t.__metadata("design:returntype",void 0)],l.prototype,"renameSnapshot",null),t.__decorate([t.__param(2,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String,Boolean]),t.__metadata("design:returntype",void 0)],l.prototype,"protectSnapshot",null),t.__decorate([t.__param(1,a.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[o.a,String]),t.__metadata("design:returntype",void 0)],l.prototype,"restoreTrash",null),l=t.__decorate([a.a,t.__metadata("design:paramtypes",[i.c,r.a])],l),l})()},Fd71:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("s7LF"),i=e("XNiG"),u=(e("F83c"),e("sne2"),e("QFaf")),s=e("kvvV"),a=e("jVDg");e("9nlD"),e("VXsX");class o{constructor(l,n,e,t,i,u){this.modalRef=l,this.rbdService=n,this.taskManagerService=e,this.notificationService=t,this.i18n=i,this.actionLabels=u,this.editing=!1,this.action=this.actionLabels.CREATE,this.resource=this.i18n("RBD Snapshot"),this.createForm()}createForm(){this.snapshotForm=new u.a({snapshotName:new t.i("",{validators:[t.B.required]})})}ngOnInit(){this.onSubmit=new i.a}setSnapName(l){this.snapName=l,this.snapshotForm.get("snapshotName").setValue(l)}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.RENAME:this.actionLabels.CREATE}editAction(){const l=this.snapshotForm.getValue("snapshotName"),n=new a.a(this.poolName,this.namespace,this.imageName),e=new s.a;e.name="rbd/snap/edit",e.metadata={image_spec:n.toString(),snapshot_name:l},this.rbdService.renameSnapshot(n,this.snapName,l).toPromise().then(()=>{this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)}),this.modalRef.hide(),this.onSubmit.next(this.snapName)}).catch(()=>{this.snapshotForm.setErrors({cdSubmitButton:!0})})}createAction(){const l=this.snapshotForm.getValue("snapshotName"),n=new a.a(this.poolName,this.namespace,this.imageName),e=new s.a;e.name="rbd/snap/create",e.metadata={image_spec:n.toString(),snapshot_name:l},this.rbdService.createSnapshot(n,l).toPromise().then(()=>{this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)}),this.modalRef.hide(),this.onSubmit.next(l)}).catch(()=>{this.snapshotForm.setErrors({cdSubmitButton:!0})})}submit(){this.editing?this.editAction():this.createAction()}}},I4Qz:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("SVse"),r=e("mXUL"),d=e("ienR"),c=e("z/SZ"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("2JDI"),b=e("F83c"),C=e("LqlI"),S=e("2EZI"),_=e("kn/O");e.d(n,"a",(function(){return N}));var y=t["ɵcrt"]({encapsulation:0,styles:[[".bs-datepicker-head bs-datepicker-navigation-view{display:flex;justify-content:space-between}"]],data:{}});function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"div",[["class","alert alert-warning"],["role","alert"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This image contains snapshot(s), which will prevent it from being removed after moved to trash."]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,['Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".']))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Protection has already expired. Please pick a future date or leave it empty."]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,48,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Move an image to trash"])),(l()(),t["ɵeld"](4,0,null,1,44,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,43,"form",[["class","form"],["name","moveForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,30,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](13,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](14,0,null,null,7,"p",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To move "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](17,null,["",""])),(l()(),t["ɵted"](-1,null,[" to trash, click "])),(l()(),t["ɵeld"](19,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Move Image"])),(l()(),t["ɵted"](-1,null,[". Optionally, you can pick an expiration date."])),(l()(),t["ɵeld"](22,0,null,null,19,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](23,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](26,0,null,0,1,"label",[["class","col-form-label"],["for","expires"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Protection expires at"])),(l()(),t["ɵeld"](28,16777216,null,0,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","expiresAt"],["placeholder","NOT PROTECTED"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,29)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,29).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,29)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,29)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,31).onChange(e)&&i),"keyup.esc"===n&&(i=!1!==t["ɵnov"](l,31).hide()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,31).onBlur()&&i),i}),null,null)),t["ɵdid"](29,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵdid"](30,737280,null,0,d.c,[d.a,t.ElementRef,t.Renderer2,t.ViewContainerRef,c.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),t["ɵdid"](31,16384,null,0,d.f,[d.c,d.j,t.Renderer2,t.ElementRef,t.ChangeDetectorRef],null,null),t["ɵprd"](1024,null,s.o,(function(l){return[l]}),[d.f]),t["ɵprd"](1024,null,s.p,(function(l,n){return[l,n]}),[s.e,d.f]),t["ɵdid"](34,671744,[[1,4]],0,s.j,[[3,s.d],[6,s.o],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](36,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](37,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,w)),t["ɵdid"](39,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](41,16384,null,0,o.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](42,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](44,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.moveImage()&&t),t}),m.b,m.a)),t["ɵdid"](45,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Move Image"])),(l()(),t["ɵeld"](47,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["ɵdid"](48,49152,null,0,g.a,[o.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.moveForm),l(n,10,0,e.moveForm),l(n,13,0,e.hasSnapshots),l(n,23,0),l(n,30,0,e.bsConfig,e.minDate),l(n,34,0,"expiresAt"),l(n,37,0,"expiresAt"),l(n,39,0,e.moveForm.showError("expiresAt",t["ɵnov"](n,7),"format")),l(n,41,0,e.moveForm.showError("expiresAt",t["ɵnov"](n,7),"expired")),l(n,45,0,e.moveForm),l(n,48,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,17,0,e.imageSpecStr),l(n,22,0,t["ɵnov"](n,23).hasErrors,t["ɵnov"](n,23).hasSuccess),l(n,28,0,t["ɵnov"](n,36).ngClassUntouched,t["ɵnov"](n,36).ngClassTouched,t["ɵnov"](n,36).ngClassPristine,t["ɵnov"](n,36).ngClassDirty,t["ɵnov"](n,36).ngClassValid,t["ɵnov"](n,36).ngClassInvalid,t["ɵnov"](n,36).ngClassPending,t["ɵnov"](n,37).validClass,t["ɵnov"](n,37).invalidClass)}))}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-move-modal",[],null,null,null,k,y)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a,S.a,_.a],null,null)],(function(l,n){l(n,1,0)}),null)}var N=t["ɵccf"]("cd-rbd-trash-move-modal",v.a,E,{},{},[])},JBea:function(l,n,e){"use strict";e.d(n,"a",(function(){return t})),e("vCyI");class t{constructor(){}ngOnChanges(){this.selection.hasSelection&&(this.selectedItem=this.selection.first())}}},"JIi+":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("978R"),u=e("z/SZ"),s=e("2uy1"),a=e("SVse"),o=e("pKUh"),r=e("2ZVE"),d=e("25BL"),c=e("uIqm"),m=e("NUGo"),p=e("S7zO"),h=e("VTlA"),g=e("ufoC"),f=e("mSOc"),v=e("wd/R"),b=e("LRne"),C=e("F83c"),S=e("OLbh"),_=e("0+/T"),y=e("sne2"),R=e("x38r"),w=e("vCyI"),I=e("QTAa"),k=e("kvvV"),E=e("jVDg"),N=e("a0VL"),F=e("Fgil"),T=e("aexS"),V=e("9nlD"),D=e("VXsX"),P=e("Fd71"),x=e("LvDl"),q=e("oxzT");class B{constructor(l,n,e){this.i18n=l,this.create={permission:"create",icon:q.a.add,name:n.CREATE},this.rename={permission:"update",icon:q.a.edit,name:n.RENAME},this.protect={permission:"update",icon:q.a.lock,visible:l=>l.hasSingleSelection&&!l.first().is_protected,name:n.PROTECT},this.unprotect={permission:"update",icon:q.a.unlock,visible:l=>l.hasSingleSelection&&l.first().is_protected,name:n.UNPROTECT},this.clone={permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting||!x.isUndefined(this.getCloneDisableDesc(e)),disableDesc:()=>this.getCloneDisableDesc(e),icon:q.a.clone,name:n.CLONE},this.copy={permission:"create",canBePrimary:l=>l.hasSingleSelection,disable:l=>!l.hasSingleSelection||l.first().cdExecuting,icon:q.a.copy,name:n.COPY},this.rollback={permission:"update",icon:q.a.undo,name:n.ROLLBACK},this.deleteSnap={permission:"delete",icon:q.a.destroy,disable:l=>{const n=l.first();return!l.hasSingleSelection||n.cdExecuting||n.is_protected},name:n.DELETE},this.ordering=[this.create,this.rename,this.protect,this.unprotect,this.clone,this.copy,this.rollback,this.deleteSnap]}getCloneDisableDesc(l){if(!l.includes("layering"))return this.i18n("Parent image must support Layering")}}class O{}class M{constructor(l,n,e,t,i,u,s,a,o,r,d){this.authStorageService=l,this.modalService=n,this.dimlessBinaryPipe=e,this.cdDatePipe=t,this.rbdService=i,this.taskManagerService=u,this.notificationService=s,this.summaryService=a,this.taskListService=o,this.i18n=r,this.actionLabels=d,this.snapshots=[],this.selection=new w.a,this.builders={"rbd/snap/create":l=>{const n=new O;return n.name=l.snapshot_name,n}},this.permission=this.authStorageService.getPermissions().rbdImage}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",cellTransformation:R.a.executing,flexGrow:2},{name:this.i18n("Size"),prop:"size",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("Provisioned"),prop:"disk_usage",flexGrow:1,cellClass:"text-right",pipe:this.dimlessBinaryPipe},{name:this.i18n("State"),prop:"is_protected",flexGrow:1,cellTransformation:R.a.badge,customTemplateConfig:{map:{true:{value:this.i18n("PROTECTED"),class:"badge-success"},false:{value:this.i18n("UNPROTECTED"),class:"badge-info"}}}},{name:this.i18n("Created"),prop:"timestamp",flexGrow:1,pipe:this.cdDatePipe}]}ngOnChanges(){const l=new E.a(this.poolName,this.namespace,this.rbdName),n=new B(this.i18n,this.actionLabels,this.featuresName);n.create.click=()=>this.openCreateSnapshotModal(),n.rename.click=()=>this.openEditSnapshotModal(),n.protect.click=()=>this.toggleProtection(),n.unprotect.click=()=>this.toggleProtection();const e=()=>this.selection.first()&&`${l.toStringEncoded()}/${encodeURIComponent(this.selection.first().name)}`;n.clone.routerLink=()=>`/block/rbd/clone/${e()}`,n.copy.routerLink=()=>`/block/rbd/copy/${e()}`,n.rollback.click=()=>this.rollbackModal(),n.deleteSnap.click=()=>this.deleteSnapshotModal(),this.tableActions=n.ordering,this.taskListService.init(()=>Object(b.a)(this.snapshots),null,l=>this.data=l,()=>this.data=this.snapshots,n=>["rbd/snap/create","rbd/snap/delete","rbd/snap/edit","rbd/snap/rollback"].includes(n.name)&&l.toString()===n.metadata.image_spec,(l,n)=>l.name===n.metadata.snapshot_name,this.builders)}openSnapshotModal(l,n=null){this.modalRef=this.modalService.show(P.a),this.modalRef.content.poolName=this.poolName,this.modalRef.content.imageName=this.rbdName,this.modalRef.content.namespace=this.namespace,n?this.modalRef.content.setEditing():n=`${this.rbdName}_${v().toISOString(!0)}`,this.modalRef.content.setSnapName(n),this.modalRef.content.onSubmit.subscribe(n=>{const e=new I.a;e.name=l,e.metadata={image_name:this.rbdName,pool_name:this.poolName,snapshot_name:n},this.summaryService.addRunningTask(e),this.ngOnChanges()})}openCreateSnapshotModal(){this.openSnapshotModal("rbd/snap/create")}openEditSnapshotModal(){this.openSnapshotModal("rbd/snap/edit",this.selection.first().name)}toggleProtection(){const l=this.selection.first().name,n=this.selection.first().is_protected,e=new k.a;e.name="rbd/snap/edit";const t=new E.a(this.poolName,this.namespace,this.rbdName);e.metadata={image_spec:t.toString(),snapshot_name:l},this.rbdService.protectSnapshot(t,l,!n).toPromise().then(()=>{const l=new I.a;l.name=e.name,l.metadata=e.metadata,this.summaryService.addRunningTask(l),this.ngOnChanges(),this.taskManagerService.subscribe(e.name,e.metadata,l=>{this.notificationService.notifyTask(l)})})}_asyncTask(l,n,e){const t=new k.a;t.name=n,t.metadata={image_spec:new E.a(this.poolName,this.namespace,this.rbdName).toString(),snapshot_name:e};const i=new E.a(this.poolName,this.namespace,this.rbdName);this.rbdService[l](i,e).toPromise().then(()=>{const l=new I.a;l.name=t.name,l.metadata=t.metadata,this.summaryService.addRunningTask(l),this.modalRef.hide(),this.ngOnChanges(),this.taskManagerService.subscribe(l.name,l.metadata,l=>{this.notificationService.notifyTask(l)})}).catch(()=>{this.modalRef.content.stopLoadingSpinner()})}rollbackModal(){const l=this.selection.selected[0].name,n=new E.a(this.poolName,this.namespace,this.rbdName).toString(),e={titleText:this.i18n("RBD snapshot rollback"),buttonText:this.i18n("Rollback"),bodyTpl:this.rollbackTpl,bodyData:{snapName:`${n}@${l}`},onSubmit:()=>{this._asyncTask("rollbackSnapshot","rbd/snap/rollback",l)}};this.modalRef=this.modalService.show(S.a,{initialState:e})}deleteSnapshotModal(){const l=this.selection.selected[0].name;this.modalRef=this.modalService.show(_.a,{initialState:{itemDescription:this.i18n("RBD snapshot"),itemNames:[l],submitAction:()=>this._asyncTask("deleteSnapshot","rbd/snap/delete",l)}})}updateSelection(l){this.selection=l}}var A=e("LqlI"),j=e("GiVz"),L=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["You are about to rollback"])),(l()(),t["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](3,null,[" ",""])),(l()(),t["ɵted"](-1,null,[".\n"]))],null,(function(l,n){l(n,3,0,n.context.$implicit.snapName)}))}function G(l){return t["ɵvid"](0,[t["ɵqud"](671088640,1,{nameTpl:0}),t["ɵqud"](402653184,2,{rollbackTpl:0}),(l()(),t["ɵeld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,e){var t=!0;return"updateSelection"===n&&(t=!1!==l.component.updateSelection(e)&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),t["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,m.b,m.a)),t["ɵdid"](5,114688,null,0,p.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵand"](0,[[2,2],["rollbackTpl",2]],null,0,null,$))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex","single"),l(n,5,0,e.permission,e.selection,e.tableActions)}),null)}var U=e("EFGL"),X=e("aAWM"),z=e("aXbf"),W=e("o8EM"),J=e("nSDx"),Y=e("o4+5"),K=e("JBea");e.d(n,"b",(function(){return Z})),e.d(n,"c",(function(){return cl})),e.d(n,"a",(function(){return pl}));var Z=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function H(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Only available for RBD images with "])),(l()(),t["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["fast-diff"])),(l()(),t["ɵted"](-1,null,[" enabled"]))],null,null)}function Q(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""]))],null,(function(l,n){l(n,2,0,n.context.$implicit)}))}function ll(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"span",[["class","form-text text-muted"],["placement","right"]],[[1,"aria-describedby",0]],null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["ɵted"](-1,null,["N/A"]))],(function(l,n){l(n,2,0,t["ɵnov"](n.parent.parent,5),"right")}),(function(l,n){l(n,1,0,t["ɵnov"](n,2).ariaDescribedby)}))}function nl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,[" "," "])),t["ɵppd"](2,1)],null,(function(l,n){var e=n.component,i=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),e.selectedItem.disk_usage));l(n,1,0,i)}))}function el(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"span",[["class","form-text text-muted"],["placement","right"]],[[1,"aria-describedby",0]],null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(l()(),t["ɵted"](-1,null,["N/A"]))],(function(l,n){l(n,2,0,t["ɵnov"](n.parent.parent,5),"right")}),(function(l,n){l(n,1,0,t["ɵnov"](n,2).ariaDescribedby)}))}function tl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,[" "," "])),t["ɵppd"](2,1)],null,(function(l,n){var e=n.component,i=t["ɵunv"](n,1,0,l(n,2,0,t["ɵnov"](n.parent.parent,2),e.selectedItem.total_disk_usage));l(n,1,0,i)}))}function il(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["/",""]))],null,(function(l,n){l(n,1,0,n.component.selectedItem.parent.pool_namespace)}))}function ul(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""])),(l()(),t["ɵand"](16777216,null,null,1,null,il)),t["ɵdid"](3,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵted"](4,null,["/","@",""]))],(function(l,n){l(n,3,0,n.component.selectedItem.parent.pool_namespace)}),(function(l,n){var e=n.component;l(n,1,0,e.selectedItem.parent.pool_name),l(n,4,0,e.selectedItem.parent.image_name,e.selectedItem.parent.snap_name)}))}function sl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["-"]))],null,null)}function al(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,105,"tabset",[],[[2,"tab-container",null]],null,null,o.b,o.a)),t["ɵdid"](1,180224,null,0,r.e,[r.f,t.Renderer2,t.ElementRef],null,null),(l()(),t["ɵeld"](2,0,null,0,94,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](3,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](4,0,null,null,92,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,91,"tbody",[],null,null,null,null,null)),(l()(),t["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](7,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Name"])),(l()(),t["ɵeld"](9,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),t["ɵted"](10,null,["",""])),(l()(),t["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool"])),(l()(),t["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](15,null,["",""])),(l()(),t["ɵeld"](16,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Data Pool"])),(l()(),t["ɵeld"](19,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](20,null,["",""])),t["ɵppd"](21,1),(l()(),t["ɵeld"](22,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Created"])),(l()(),t["ɵeld"](25,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](26,null,["",""])),t["ɵppd"](27,1),(l()(),t["ɵeld"](28,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](29,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Size"])),(l()(),t["ɵeld"](31,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](32,null,["",""])),t["ɵppd"](33,1),(l()(),t["ɵeld"](34,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](35,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Objects"])),(l()(),t["ɵeld"](37,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](38,null,["",""])),t["ɵppd"](39,1),(l()(),t["ɵeld"](40,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](41,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Object size"])),(l()(),t["ɵeld"](43,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](44,null,["",""])),t["ɵppd"](45,1),(l()(),t["ɵeld"](46,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](47,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Features"])),(l()(),t["ɵeld"](49,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,Q)),t["ɵdid"](51,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](52,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](53,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Provisioned"])),(l()(),t["ɵeld"](55,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,ll)),t["ɵdid"](57,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,nl)),t["ɵdid"](59,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](60,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](61,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Total provisioned"])),(l()(),t["ɵeld"](63,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,el)),t["ɵdid"](65,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,tl)),t["ɵdid"](67,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](68,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](69,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Striping unit"])),(l()(),t["ɵeld"](71,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](72,null,["",""])),t["ɵppd"](73,1),(l()(),t["ɵeld"](74,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](75,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Striping count"])),(l()(),t["ɵeld"](77,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](78,null,["",""])),(l()(),t["ɵeld"](79,0,null,null,7,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](80,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Parent"])),(l()(),t["ɵeld"](82,0,null,null,4,"td",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,ul)),t["ɵdid"](84,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,sl)),t["ɵdid"](86,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](87,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](88,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Block name prefix"])),(l()(),t["ɵeld"](90,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](91,null,["",""])),(l()(),t["ɵeld"](92,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),t["ɵeld"](93,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Order"])),(l()(),t["ɵeld"](95,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),t["ɵted"](96,null,["",""])),(l()(),t["ɵeld"](97,0,null,0,4,"tab",[["heading","Snapshots"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](98,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](99,0,null,null,2,"cd-rbd-snapshot-list",[],null,null,null,G,L)),t["ɵprd"](131584,null,h.a,h.a,[g.a,f.a]),t["ɵdid"](101,638976,null,0,M,[T.a,A.b,F.a,N.a,C.a,D.a,V.a,f.a,h.a,j.a,y.b],{snapshots:[0,"snapshots"],featuresName:[1,"featuresName"],poolName:[2,"poolName"],namespace:[3,"namespace"],rbdName:[4,"rbdName"]},null),(l()(),t["ɵeld"](102,0,null,0,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](103,212992,null,0,r.b,[r.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](104,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,U.b,U.a)),t["ɵdid"](105,638976,null,0,X.a,[z.a,W.a,j.a],{data:[0,"data"]},null)],(function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,51,0,e.selectedItem.features_name),l(n,57,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,59,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,65,0,-1===(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,67,0,-1!==(null==e.selectedItem.features_name?null:e.selectedItem.features_name.indexOf("fast-diff"))),l(n,84,0,e.selectedItem.parent),l(n,86,0,!e.selectedItem.parent),l(n,98,0,"Snapshots"),l(n,101,0,e.selectedItem.snapshots,e.selectedItem.features_name,e.selectedItem.pool_name,e.selectedItem.namespace,e.selectedItem.name),l(n,103,0,"Configuration"),l(n,105,0,e.selectedItem.configuration)}),(function(l,n){var e=n.component;l(n,0,0,t["ɵnov"](n,1).clazz),l(n,2,0,t["ɵnov"](n,3).id,t["ɵnov"](n,3).active,t["ɵnov"](n,3).addClass),l(n,10,0,e.selectedItem.name),l(n,15,0,e.selectedItem.pool_name);var i=t["ɵunv"](n,20,0,l(n,21,0,t["ɵnov"](n.parent,0),e.selectedItem.data_pool));l(n,20,0,i);var u=t["ɵunv"](n,26,0,l(n,27,0,t["ɵnov"](n.parent,1),e.selectedItem.timestamp));l(n,26,0,u);var s=t["ɵunv"](n,32,0,l(n,33,0,t["ɵnov"](n.parent,2),e.selectedItem.size));l(n,32,0,s);var a=t["ɵunv"](n,38,0,l(n,39,0,t["ɵnov"](n.parent,3),e.selectedItem.num_objs));l(n,38,0,a);var o=t["ɵunv"](n,44,0,l(n,45,0,t["ɵnov"](n.parent,2),e.selectedItem.obj_size));l(n,44,0,o);var r=t["ɵunv"](n,72,0,l(n,73,0,t["ɵnov"](n.parent,2),e.selectedItem.stripe_unit));l(n,72,0,r),l(n,78,0,e.selectedItem.stripe_count),l(n,91,0,e.selectedItem.block_name_prefix),l(n,96,0,e.selectedItem.order),l(n,97,0,t["ɵnov"](n,98).id,t["ɵnov"](n,98).active,t["ɵnov"](n,98).addClass),l(n,102,0,t["ɵnov"](n,103).id,t["ɵnov"](n,103).active,t["ɵnov"](n,103).addClass)}))}function ol(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,16777216,null,null,2,"strong",[["tooltip","This setting overrides the global value"]],[[1,"aria-describedby",0]],null,null,null,null)),t["ɵdid"](2,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"]},null),(l()(),t["ɵted"](-1,null,["Image"])),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,2,0,"This setting overrides the global value")}),(function(l,n){l(n,1,0,t["ɵnov"](n,2).ariaDescribedby)}))}function rl(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,16777216,null,null,2,"span",[["tooltip","This is the global value. No value for this option has been set for this image."]],[[1,"aria-describedby",0]],null,null,null,null)),t["ɵdid"](1,212992,null,0,i.c,[t.ViewContainerRef,u.a,i.a,t.ElementRef,t.Renderer2,s.a],{tooltip:[0,"tooltip"]},null),(l()(),t["ɵted"](-1,null,["Global"])),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"This is the global value. No value for this option has been set for this image.")}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).ariaDescribedby)}))}function dl(l){return t["ɵvid"](0,[(l()(),t["ɵand"](16777216,null,null,1,null,ol)),t["ɵdid"](1,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),t["ɵand"](0,[["global",2]],null,0,null,rl))],(function(l,n){l(n,1,0,n.context.value-0,t["ɵnov"](n,2))}),null)}function cl(l){return t["ɵvid"](0,[t["ɵpid"](0,J.a,[]),t["ɵpid"](0,N.a,[a.DatePipe]),t["ɵpid"](0,F.a,[z.a]),t["ɵpid"](0,Y.a,[z.a]),t["ɵqud"](402653184,1,{poolConfigurationSourceTpl:0}),(l()(),t["ɵand"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,H)),(l()(),t["ɵand"](16777216,null,null,1,null,al)),t["ɵdid"](7,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,[[1,2],["poolConfigurationSourceTpl",2]],null,0,null,dl))],(function(l,n){var e=n.component;l(n,7,0,null==e.selection?null:e.selection.hasSingleSelection)}),null)}function ml(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-details",[],null,null,null,cl,Z)),t["ɵdid"](1,573440,null,0,K.a,[],null,null)],null,null)}var pl=t["ɵccf"]("cd-rbd-details",K.a,ml,{selection:"selection",images:"images"},{},[])},L4us:function(l,n,e){"use strict";var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{}e.d(n,"a",(function(){return a}));class a{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.bsConfig={containerClass:"theme-default"},this.createForm()}createForm(){this.editPeerForm=new i.a({clusterName:new t.i("",{validators:[t.B.required,this.validateClusterName]}),clientID:new t.i("",{validators:[t.B.required,this.validateClientID]}),monAddr:new t.i("",{validators:[this.validateMonAddr]}),key:new t.i("",{validators:[this.validateKey]})})}ngOnInit(){this.pattern=`${this.poolName}/${this.peerUUID}`,"edit"===this.mode&&this.rbdMirroringService.getPeer(this.poolName,this.peerUUID).subscribe(l=>{this.setResponse(l)})}validateClusterName(l){if(!l.value.match(/^[\w\-_]*$/))return{invalidClusterName:{value:l.value}}}validateClientID(l){if(!l.value.match(/^(?!client\.)[\w\-_.]*$/))return{invalidClientID:{value:l.value}}}validateMonAddr(l){if(!l.value.match(/^[,; ]*([\w.\-_\[\]]+(:[\d]+)?[,; ]*)*$/))return{invalidMonAddr:{value:l.value}}}validateKey(l){try{if(""===l.value||atob(l.value))return null}catch(n){}return{invalidKey:{value:l.value}}}setResponse(l){this.response=l,this.editPeerForm.get("clusterName").setValue(l.cluster_name),this.editPeerForm.get("clientID").setValue(l.client_id),this.editPeerForm.get("monAddr").setValue(l.mon_host),this.editPeerForm.get("key").setValue(l.key)}update(){const l=new s;let n;l.cluster_name=this.editPeerForm.getValue("clusterName"),l.client_id=this.editPeerForm.getValue("clientID"),l.mon_host=this.editPeerForm.getValue("monAddr"),l.key=this.editPeerForm.getValue("key"),n=this.taskWrapper.wrapTaskAroundCall("edit"===this.mode?{task:new u.a("rbd/mirroring/peer/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePeer(this.poolName,this.peerUUID,l)}:{task:new u.a("rbd/mirroring/peer/add",{pool_name:this.poolName}),call:this.rbdMirroringService.addPeer(this.poolName,l)}),n.subscribe(void 0,()=>this.editPeerForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},MyVl:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("LvDl"),s=e("jtHE"),a=e("cp0P"),o=e("SxV6"),r=e("eIep"),d=(e("Ekvf"),e("F83c"),e("sne2"),e("oxzT")),c=e("QFaf"),m=e("PhyI"),p=e("kvvV"),h=e("jVDg");e("Fgil"),e("aexS"),e("aXbf"),e("kn/O");class g{constructor(){this.features=[]}}class f{constructor(){this.features=[]}}class v extends class{}{constructor(){super(...arguments),this.features=[]}}class b{constructor(){this.features=[]}}var C=function(l){return l.editing="editing",l.cloning="cloning",l.copying="copying",l}({});e.d(n,"a",(function(){return S}));class S{constructor(l,n,e,i,u,a,o,r,c,m){this.authStorageService=l,this.route=n,this.poolService=e,this.rbdService=i,this.formatter=u,this.taskWrapper=a,this.dimlessBinaryPipe=o,this.i18n=r,this.actionLabels=c,this.router=m,this.namespaces=[],this.namespacesByPoolCache={},this.pools=null,this.allPools=null,this.dataPools=null,this.allDataPools=null,this.featuresList=[],this.initializeConfigData=new t.EventEmitter,this.advancedEnabled=!1,this.rbdFormMode=C,this.defaultObjectSize="4 MiB",this.objectSizes=["4 KiB","8 KiB","16 KiB","32 KiB","64 KiB","128 KiB","256 KiB","512 KiB","1 MiB","2 MiB","4 MiB","8 MiB","16 MiB","32 MiB"],this.rbdImage=new s.a(1),this.icons=d.a,this.poolPermission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("RBD"),this.features={"deep-flatten":{desc:this.i18n("Deep flatten"),requires:null,allowEnable:!1,allowDisable:!0},layering:{desc:this.i18n("Layering"),requires:null,allowEnable:!1,allowDisable:!1},"exclusive-lock":{desc:this.i18n("Exclusive lock"),requires:null,allowEnable:!0,allowDisable:!0},"object-map":{desc:this.i18n("Object map (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},journaling:{desc:this.i18n("Journaling (requires exclusive-lock)"),requires:"exclusive-lock",allowEnable:!0,allowDisable:!0,initDisabled:!0},"fast-diff":{desc:this.i18n("Fast diff (interlocked with object-map)"),requires:"object-map",allowEnable:!0,allowDisable:!0,interlockedWith:"object-map",initDisabled:!0}},this.featuresList=this.objToArray(this.features),this.createForm()}objToArray(l){return u.map(l,(l,n)=>Object.assign(l,{key:n}))}createForm(){this.rbdForm=new c.a({parent:new i.i(""),name:new i.i("",{validators:[i.B.required,i.B.pattern(/^[^@/]+?$/)]}),pool:new i.i(null,{validators:[i.B.required]}),namespace:new i.i(null),useDataPool:new i.i(!1),dataPool:new i.i(null),size:new i.i(null,{updateOn:"blur"}),obj_size:new i.i(this.defaultObjectSize),features:new c.a(this.featuresList.reduce((l,n)=>(l[n.key]=new i.i({value:!1,disabled:!!n.initDisabled}),l),{})),stripingUnit:new i.i(null),stripingCount:new i.i(null,{updateOn:"blur"})},this.validateRbdForm(this.formatter))}disableForEdit(){this.rbdForm.get("parent").disable(),this.rbdForm.get("pool").disable(),this.rbdForm.get("namespace").disable(),this.rbdForm.get("useDataPool").disable(),this.rbdForm.get("dataPool").disable(),this.rbdForm.get("obj_size").disable(),this.rbdForm.get("stripingUnit").disable(),this.rbdForm.get("stripingCount").disable()}disableForClone(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()}disableForCopy(){this.rbdForm.get("parent").disable(),this.rbdForm.get("size").disable()}ngOnInit(){let l;this.router.url.startsWith("/block/rbd/edit")?(this.mode=this.rbdFormMode.editing,this.action=this.actionLabels.EDIT,this.disableForEdit()):this.router.url.startsWith("/block/rbd/clone")?(this.mode=this.rbdFormMode.cloning,this.disableForClone(),this.action=this.actionLabels.CLONE):this.router.url.startsWith("/block/rbd/copy")?(this.mode=this.rbdFormMode.copying,this.action=this.actionLabels.COPY,this.disableForCopy()):this.action=this.actionLabels.CREATE,function(l){l.RbdServiceGet="rbdService.get",l.PoolServiceList="poolService.list"}(l||(l={}));const n={};this.mode===this.rbdFormMode.editing||this.mode===this.rbdFormMode.cloning||this.mode===this.rbdFormMode.copying?this.route.params.subscribe(e=>{const t=h.a.fromString(decodeURIComponent(e.image_spec));e.snap&&(this.snapName=decodeURIComponent(e.snap)),n[l.RbdServiceGet]=this.rbdService.get(t)}):this.rbdService.defaultFeatures().subscribe(l=>{this.setFeatures(l)}),this.mode!==this.rbdFormMode.editing&&this.poolPermission.read&&(n[l.PoolServiceList]=this.poolService.list(["pool_name","type","flags_names","application_metadata"])),Object(a.a)(n).subscribe(n=>{if(n[l.PoolServiceList]){const e=[],t=[];for(const i of n[l.PoolServiceList])this.rbdService.isRBDPool(i)&&("replicated"===i.type?(e.push(i),t.push(i)):"erasure"===i.type&&-1!==i.flags_names.indexOf("ec_overwrites")&&t.push(i));if(this.pools=e,this.allPools=e,this.dataPools=t,this.allDataPools=t,1===this.pools.length){const l=this.pools[0].pool_name;this.rbdForm.get("pool").setValue(l),this.onPoolChange(l)}}if(n[l.RbdServiceGet]){const e=n[l.RbdServiceGet];this.setResponse(e,this.snapName),this.rbdImage.next(e)}}),u.each(this.features,l=>{this.rbdForm.get("features").get(l.key).valueChanges.subscribe(n=>this.featureFormUpdate(l.key,n))})}onPoolChange(l){const n=this.allDataPools?this.allDataPools.filter(n=>n.pool_name!==l):[];this.rbdForm.getValue("dataPool")===l&&this.rbdForm.get("dataPool").setValue(null),this.dataPools=n,this.namespaces=null,l in this.namespacesByPoolCache?this.namespaces=this.namespacesByPoolCache[l]:this.rbdService.listNamespaces(l).subscribe(n=>{n=n.map(l=>l.namespace),this.namespacesByPoolCache[l]=n,this.namespaces=n}),this.rbdForm.get("namespace").setValue(null)}onUseDataPoolChange(){this.rbdForm.getValue("useDataPool")||(this.rbdForm.get("dataPool").setValue(null),this.onDataPoolChange(null))}onDataPoolChange(l){const n=this.allPools.filter(n=>n.pool_name!==l);this.rbdForm.getValue("pool")===l&&this.rbdForm.get("pool").setValue(null),this.pools=n}validateRbdForm(l){return n=>{const e=n.get("useDataPool"),t=n.get("dataPool");let i=null;e.value&&null==t.value&&(i={required:!0}),t.setErrors(i);const u=n.get("size"),s=n.get("obj_size"),a=l.toBytes(null!=s.value?s.value:this.defaultObjectSize),o=n.get("stripingCount"),r=null!=o.value?o.value:1;let d=null;null===u.value?d={required:!0}:r*a>l.toBytes(u.value)&&(d={invalidSizeObject:!0}),u.setErrors(d);const c=n.get("stripingUnit");let m=null;null===c.value&&null!==o.value?m={required:!0}:null!==c.value&&l.toBytes(c.value)>a&&(m={invalidStripingUnit:!0}),c.setErrors(m);let p=null;return null===o.value&&null!==c.value?p={required:!0}:r<1&&(p={min:!0}),o.setErrors(p),null}}getDependendChildFeatures(l){return u.filter(this.features,n=>n.requires===l)||[]}deepBoxCheck(l,n){this.getDependendChildFeatures(l).forEach(l=>{const e=this.rbdForm.get(l.key);n?e.enable({emitEvent:!1}):(e.disable({emitEvent:!1}),e.setValue(!1,{emitEvent:!1}),this.deepBoxCheck(l.key,n));const t=this.rbdForm.get("features");this.mode===this.rbdFormMode.editing&&t.get(l.key).enabled&&((-1===this.response.features_name.indexOf(l.key)||l.allowDisable)&&(-1!==this.response.features_name.indexOf(l.key)||l.allowEnable)||t.get(l.key).disable())})}interlockCheck(l,n){const e=this.featuresList.find(n=>n.key===l);if(this.response){const l=null!=e.interlockedWith,n=this.featuresList.find(l=>l.interlockedWith===e.key),t=!!this.response.features_name.find(l=>l===e.key);if(l){if(t!==!!this.response.features_name.find(l=>l===e.interlockedWith))return}else if(n&&!!this.response.features_name.find(l=>l===n.key)!==t)return}n?u.filter(this.features,n=>n.interlockedWith===l).forEach(l=>this.rbdForm.get(l.key).setValue(!0,{emitEvent:!1})):e.interlockedWith&&this.rbdForm.get("features").get(e.interlockedWith).setValue(!1)}featureFormUpdate(l,n){if(n){const n=this.features[l].requires;if(n&&!this.rbdForm.getValue(n))return void this.rbdForm.get(`features.${l}`).setValue(!1)}this.deepBoxCheck(l,n),this.interlockCheck(l,n)}setFeatures(l){const n=this.rbdForm.get("features");u.forIn(this.features,e=>{-1!==l.indexOf(e.key)&&n.get(e.key).setValue(!0),this.featureFormUpdate(e.key,n.get(e.key).value)})}setResponse(l,n){this.response=l;const e=new h.a(l.pool_name,l.namespace,l.name).toString();if(this.mode===this.rbdFormMode.cloning)this.rbdForm.get("parent").setValue(`${e}@${n}`);else if(this.mode===this.rbdFormMode.copying)n?this.rbdForm.get("parent").setValue(`${e}@${n}`):this.rbdForm.get("parent").setValue(`${e}`);else if(l.parent){const n=l.parent;this.rbdForm.get("parent").setValue(`${n.pool_name}/${n.image_name}@${n.snap_name}`)}this.mode===this.rbdFormMode.editing&&this.rbdForm.get("name").setValue(l.name),this.rbdForm.get("pool").setValue(l.pool_name),this.onPoolChange(l.pool_name),this.rbdForm.get("namespace").setValue(l.namespace),l.data_pool&&(this.rbdForm.get("useDataPool").setValue(!0),this.rbdForm.get("dataPool").setValue(l.data_pool)),this.rbdForm.get("size").setValue(this.dimlessBinaryPipe.transform(l.size)),this.rbdForm.get("obj_size").setValue(this.dimlessBinaryPipe.transform(l.obj_size)),this.setFeatures(l.features_name),this.rbdForm.get("stripingUnit").setValue(this.dimlessBinaryPipe.transform(l.stripe_unit)),this.rbdForm.get("stripingCount").setValue(l.stripe_count),this.initializeConfigData.emit({initialData:this.response.configuration,sourceType:m.a.image})}createRequest(){const l=new v;return l.pool_name=this.rbdForm.getValue("pool"),l.namespace=this.rbdForm.getValue("namespace"),l.name=this.rbdForm.getValue("name"),l.size=this.formatter.toBytes(this.rbdForm.getValue("size")),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(),l}createAction(){const l=this.createRequest();return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/create",{pool_name:l.pool_name,namespace:l.namespace,image_name:l.name}),call:this.rbdService.create(l)})}editRequest(){const l=new b;return l.name=this.rbdForm.getValue("name"),l.size=this.formatter.toBytes(this.rbdForm.getValue("size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.configuration=this.getDirtyConfigurationValues(),l}cloneRequest(){const l=new g;return l.child_pool_name=this.rbdForm.getValue("pool"),l.child_namespace=this.rbdForm.getValue("namespace"),l.child_image_name=this.rbdForm.getValue("name"),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(!0,m.a.image),l}editAction(){const l=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/edit",{image_spec:l.toString()}),call:this.rbdService.update(l,this.editRequest())})}cloneAction(){const l=this.cloneRequest(),n=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/clone",{parent_image_spec:n.toString(),parent_snap_name:this.snapName,child_pool_name:l.child_pool_name,child_namespace:l.child_namespace,child_image_name:l.child_image_name}),call:this.rbdService.cloneSnapshot(n,this.snapName,l)})}copyRequest(){const l=new f;return this.snapName&&(l.snapshot_name=this.snapName),l.dest_pool_name=this.rbdForm.getValue("pool"),l.dest_namespace=this.rbdForm.getValue("namespace"),l.dest_image_name=this.rbdForm.getValue("name"),l.obj_size=this.formatter.toBytes(this.rbdForm.getValue("obj_size")),u.forIn(this.features,n=>{this.rbdForm.getValue(n.key)&&l.features.push(n.key)}),l.stripe_unit=this.formatter.toBytes(this.rbdForm.getValue("stripingUnit")),l.stripe_count=this.rbdForm.getValue("stripingCount"),l.data_pool=this.rbdForm.getValue("dataPool"),l.configuration=this.getDirtyConfigurationValues(!0,m.a.image),l}copyAction(){const l=this.copyRequest(),n=new h.a(this.response.pool_name,this.response.namespace,this.response.name);return this.taskWrapper.wrapTaskAroundCall({task:new p.a("rbd/copy",{src_image_spec:n.toString(),dest_pool_name:l.dest_pool_name,dest_namespace:l.dest_namespace,dest_image_name:l.dest_image_name}),call:this.rbdService.copy(n,l)})}submit(){this.mode||this.rbdImage.next("create"),this.rbdImage.pipe(Object(o.a)(),Object(r.a)(()=>this.mode===this.rbdFormMode.editing?this.editAction():this.mode===this.rbdFormMode.cloning?this.cloneAction():this.mode===this.rbdFormMode.copying?this.copyAction():this.createAction())).subscribe(()=>{},()=>this.rbdForm.setErrors({cdSubmitButton:!0}),()=>this.router.navigate(["/block/rbd"]))}}},OcYo:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{constructor(l,n,e){this.elementRef=l,this.renderer=n,this.toastr=e}ngOnInit(){const l=this.renderer.createElement("i");this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)}getInputElement(){return document.getElementById(this.cdCopy2ClipboardButton)}onClick(){try{const l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(l){this.toastr.error("Failed to copy text to the clipboard.")}}}},PhyI:function(l,n,e){"use strict";e.d(n,"a",(function(){return t})),e.d(n,"b",(function(){return i}));var t=function(l){return l[l.global=0]="global",l[l.pool=1]="pool",l[l.image=2]="image",l}({}),i=function(l){return l[l.bps=0]="bps",l[l.iops=1]="iops",l[l.milliseconds=2]="milliseconds",l}({})},QUzE:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("EEJc"),a=e("ajRT"),o=e("mXUL"),r=e("IZUe"),d=e("SVse"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("SuaG"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return k}));var S=t["ɵcrt"]({encapsulation:0,styles:[[".form-group.ng-invalid[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}"]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.checked)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](2,16384,null,0,i.c,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.c]),t["ɵdid"](4,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""]))],(function(l,n){l(n,4,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,7,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""))}),(function(l,n){l(n,1,1,[t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,""),t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass]),l(n,8,0,t["ɵinlineInterpolate"](1,"",n.context.$implicit.name,"")),l(n,9,0,n.context.$implicit.name)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["At least one pool is required."]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,69,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Create Bootstrap Token"])),(l()(),t["ɵeld"](4,0,null,1,65,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,64,"form",[["class","form"],["name","createBootstrapForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,54,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To create a bootstrap token which can be imported by a peer site cluster, provide the local site's name, select which pools will have mirroring enabled, and click  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Generate"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](28,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](30,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](31,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,_)),t["ɵdid"](33,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](34,0,null,null,12,"div",[["class","form-group"],["formGroupName","pools"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](35,212992,null,0,i.m,[[3,i.d],[8,null],[8,null]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.d,null,[i.m]),t["ɵdid"](37,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](38,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](41,0,null,0,1,"label",[["class","col-form-label required"],["for","pools"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](44,278528,null,0,d.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](46,16384,null,0,d.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](47,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](48,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.generate()&&t),t}),c.b,c.a)),t["ɵdid"](49,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Generate"])),(l()(),t["ɵeld"](51,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](52,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](55,0,null,0,2,"label",[["class","col-form-label"],["for","token"]],null,null,null,null,null)),(l()(),t["ɵeld"](56,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Token"])),(l()(),t["ɵeld"](58,0,null,0,7,"textarea",[["class","form-control resize-vertical"],["formControlName","token"],["id","token"],["placeholder","Generated token..."],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,59)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,59).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,59)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,59)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](59,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](61,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](63,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](64,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵted"](-1,null,["          "])),(l()(),t["ɵeld"](66,0,null,null,3,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](67,0,null,null,2,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](68,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,p.b,p.a)),t["ɵdid"](69,49152,null,0,h.a,[d.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.createBootstrapForm),l(n,10,0,e.createBootstrapForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,33,0,e.createBootstrapForm.showError("siteName",t["ɵnov"](n,7),"required")),l(n,35,0,"pools"),l(n,38,0),l(n,44,0,e.pools),l(n,46,0,e.createBootstrapForm.showError("pools",t["ɵnov"](n,7),"requirePool")),l(n,49,0,e.createBootstrapForm),l(n,52,0),l(n,61,0,"token"),l(n,64,0,"token"),l(n,69,0,"Close",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass),l(n,34,0,t["ɵnov"](n,37).ngClassUntouched,t["ɵnov"](n,37).ngClassTouched,t["ɵnov"](n,37).ngClassPristine,t["ɵnov"](n,37).ngClassDirty,t["ɵnov"](n,37).ngClassValid,t["ɵnov"](n,37).ngClassInvalid,t["ɵnov"](n,37).ngClassPending,t["ɵnov"](n,38).hasErrors,t["ɵnov"](n,38).hasSuccess),l(n,51,0,t["ɵnov"](n,52).hasErrors,t["ɵnov"](n,52).hasSuccess),l(n,58,0,t["ɵnov"](n,63).ngClassUntouched,t["ɵnov"](n,63).ngClassTouched,t["ɵnov"](n,63).ngClassPristine,t["ɵnov"](n,63).ngClassDirty,t["ɵnov"](n,63).ngClassValid,t["ɵnov"](n,63).ngClassInvalid,t["ɵnov"](n,63).ngClassPending,t["ɵnov"](n,64).validClass,t["ɵnov"](n,64).invalidClass)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-bootstrap-create-modal",[],null,null,null,w,S)),t["ɵdid"](1,245760,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var k=t["ɵccf"]("cd-bootstrap-create-modal",f.a,I,{},{},[])},RIVN:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("C6Ij"),u=e("AWcq"),s=e("NUGo"),a=e("S7zO"),o=e("SVse");class r{transform(l){return"warning"===l?"badge badge-warning":"error"===l?"badge badge-danger":"success"===l?"badge badge-success":"badge badge-info"}}var d=e("25BL"),c=e("uIqm"),m=e("XED3"),p=e("85J/");class h{constructor(l,n,e){this.rbdMirroringService=l,this.cephShortVersionPipe=n,this.i18n=e}ngOnInit(){this.columns=[{prop:"instance_id",name:this.i18n("Instance"),flexGrow:2},{prop:"id",name:this.i18n("ID"),flexGrow:2},{prop:"server_hostname",name:this.i18n("Hostname"),flexGrow:2},{prop:"version",name:this.i18n("Version"),pipe:this.cephShortVersionPipe,flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.data=l.content_data.daemons)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}}var g=e("GiVz"),f=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.health_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function b(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{healthTmpl:0}),(l()(),t["ɵeld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["ɵand"](0,[[1,2],["healthTmpl",2]],null,0,null,v))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0)}),null)}var C=e("HDdC"),S=e("0+/T"),_=e("oxzT"),y=e("vCyI"),R=e("kvvV"),w=e("aexS"),I=e("kn/O"),k=e("aa9H"),E=e("L4us");class N{constructor(l,n,e,t,i){this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.taskWrapper=t,this.i18n=i,this.selection=new y.a,this.data=[],this.permission=this.authStorageService.getPermissions().rbdMirroring;const u={permission:"update",icon:_.a.edit,click:()=>this.editModeModal(),name:this.i18n("Edit Mode"),canBePrimary:()=>!0},s={permission:"create",icon:_.a.add,name:this.i18n("Add Peer"),click:()=>this.editPeersModal("add"),disable:()=>!this.selection.first()||"disabled"===this.selection.first().mirror_mode,visible:()=>!this.getPeerUUID(),canBePrimary:()=>!1},a={permission:"update",icon:_.a.exchange,name:this.i18n("Edit Peer"),click:()=>this.editPeersModal("edit"),visible:()=>!!this.getPeerUUID()},o={permission:"delete",icon:_.a.destroy,name:this.i18n("Delete Peer"),click:()=>this.deletePeersModal(),visible:()=>!!this.getPeerUUID()};this.tableActions=[u,s,a,o]}ngOnInit(){this.columns=[{prop:"name",name:this.i18n("Name"),flexGrow:2},{prop:"mirror_mode",name:this.i18n("Mode"),flexGrow:2},{prop:"leader_id",name:this.i18n("Leader"),flexGrow:2},{prop:"image_local_count",name:this.i18n("# Local"),flexGrow:2},{prop:"image_remote_count",name:this.i18n("# Remote"),flexGrow:2},{prop:"health",name:this.i18n("Health"),cellTemplate:this.healthTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.data=l.content_data.pools)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}editModeModal(){const l={poolName:this.selection.first().name};this.modalRef=this.modalService.show(k.a,{initialState:l})}editPeersModal(l){const n={poolName:this.selection.first().name,mode:l};"edit"===l&&(n.peerUUID=this.getPeerUUID()),this.modalRef=this.modalService.show(E.a,{initialState:n})}deletePeersModal(){const l=this.selection.first().name,n=this.getPeerUUID();this.modalRef=this.modalService.show(S.a,{initialState:{itemDescription:this.i18n("mirror peer"),itemNames:[`${l} (${n})`],submitActionObservable:()=>new C.a(e=>{this.taskWrapper.wrapTaskAroundCall({task:new R.a("rbd/mirroring/peer/delete",{pool_name:l}),call:this.rbdMirroringService.deletePeer(l,n)}).subscribe(void 0,l=>e.error(l),()=>{this.rbdMirroringService.refresh(),e.complete()})})}})}getPeerUUID(){const l=this.selection.first(),n=this.data.find(n=>l&&l.name===n.name);if(n&&n.peer_uuids)return n.peer_uuids[0]}updateSelection(l){this.selection=l}}var F=e("LqlI"),T=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.health_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function D(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{healthTmpl:0}),(l()(),t["ɵeld"](2,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,e){var t=!0,i=l.component;return"fetchData"===n&&(t=!1!==i.refresh()&&t),"updateSelection"===n&&(t=!1!==i.updateSelection(e)&&t),t}),d.b,d.a)),t["ɵdid"](3,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),t["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,s.b,s.a)),t["ɵdid"](5,114688,null,0,a.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵand"](0,[[1,2],["healthTmpl",2]],null,0,null,V))],(function(l,n){var e=n.component;l(n,3,0,e.data,e.columns,"flex",0,"name","true","single"),l(n,5,0,e.permission,e.selection,e.tableActions)}),null)}var P=e("7qid"),x=e("38Bd"),q=e("pKUh"),B=e("2ZVE");class O{constructor(l,n){this.rbdMirroringService=l,this.i18n=n,this.image_error={data:[],columns:{}},this.image_syncing={data:[],columns:{}},this.image_ready={data:[],columns:{}}}ngOnInit(){this.image_error.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Issue"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.image_syncing.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"progress",name:this.i18n("Progress"),cellTemplate:this.progressTmpl,flexGrow:2},{prop:"state",name:this.i18n("State"),cellTemplate:this.syncTmpl,flexGrow:1}],this.image_ready.columns=[{prop:"pool_name",name:this.i18n("Pool"),flexGrow:2},{prop:"name",name:this.i18n("Image"),flexGrow:2},{prop:"description",name:this.i18n("Description"),flexGrow:4},{prop:"state",name:this.i18n("State"),cellTemplate:this.stateTmpl,flexGrow:1}],this.subs=this.rbdMirroringService.subscribeSummary(l=>{l&&(this.image_error.data=l.content_data.image_error,this.image_syncing.data=l.content_data.image_syncing,this.image_ready.data=l.content_data.image_ready)})}ngOnDestroy(){this.subs.unsubscribe()}refresh(){this.rbdMirroringService.refresh()}}var M=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function A(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),t["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),t["ɵppd"](3,1),(l()(),t["ɵted"](4,null,["",""]))],(function(l,n){var e=t["ɵunv"](n,2,0,l(n,3,0,t["ɵnov"](n.parent,0),n.context.row.state_color));l(n,2,0,e)}),(function(l,n){l(n,4,0,n.context.value)}))}function j(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","badge badge-info"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Syncing"]))],null,null)}function L(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"progressbar",[["type","info"]],[[1,"max",0],[2,"progress",null]],null,null,P.b,P.a)),t["ɵdid"](1,49152,null,0,x.b,[x.c],{type:[0,"type"],value:[1,"value"]},null)],(function(l,n){l(n,1,0,"info",n.context.value)}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).max,t["ɵnov"](n,1).addClass)}))}function $(l){return t["ɵvid"](0,[t["ɵpid"](0,r,[]),t["ɵqud"](402653184,1,{stateTmpl:0}),t["ɵqud"](402653184,2,{syncTmpl:0}),t["ɵqud"](402653184,3,{progressTmpl:0}),(l()(),t["ɵeld"](4,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,q.b,q.a)),t["ɵdid"](5,180224,null,0,B.e,[B.f,t.Renderer2,t.ElementRef],null,null),(l()(),t["ɵeld"](6,0,null,0,3,"tab",[["heading","Issues"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](7,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](8,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](9,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["ɵeld"](10,0,null,0,3,"tab",[["heading","Syncing"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](11,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](12,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](13,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["ɵeld"](14,0,null,0,3,"tab",[["heading","Ready"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),t["ɵdid"](15,212992,null,0,B.b,[B.e,t.ElementRef,t.Renderer2],{heading:[0,"heading"]},null),(l()(),t["ɵeld"](16,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(l,n,e){var t=!0;return"fetchData"===n&&(t=!1!==l.component.refresh()&&t),t}),d.b,d.a)),t["ɵdid"](17,2867200,null,0,c.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"}),(l()(),t["ɵand"](0,[[1,2],["stateTmpl",2]],null,0,null,A)),(l()(),t["ɵand"](0,[[2,2],["syncTmpl",2]],null,0,null,j)),(l()(),t["ɵand"](0,[[3,2],["progressTmpl",2]],null,0,null,L))],(function(l,n){var e=n.component;l(n,7,0,"Issues"),l(n,9,0,e.image_error.data,e.image_error.columns,"flex",0),l(n,11,0,"Syncing"),l(n,13,0,e.image_syncing.data,e.image_syncing.columns,"flex",0),l(n,15,0,"Ready"),l(n,17,0,e.image_ready.data,e.image_ready.columns,"flex",0)}),(function(l,n){l(n,4,0,t["ɵnov"](n,5).clazz),l(n,6,0,t["ɵnov"](n,7).id,t["ɵnov"](n,7).active,t["ɵnov"](n,7).addClass),l(n,10,0,t["ɵnov"](n,11).id,t["ɵnov"](n,11).active,t["ɵnov"](n,11).addClass),l(n,14,0,t["ɵnov"](n,15).id,t["ɵnov"](n,15).active,t["ɵnov"](n,15).addClass)}))}var G=e("cxJu");e.d(n,"a",(function(){return W}));var U=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function X(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,i.b,i.a)),t["ɵdid"](1,114688,null,0,u.a,[],{status:[0,"status"]},null),(l()(),t["ɵeld"](2,0,null,null,7,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,6,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,3,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name:"])),(l()(),t["ɵted"](7,null,[" ",""])),(l()(),t["ɵeld"](8,0,null,null,1,"cd-table-actions",[["class","table-actions float-right"]],null,null,null,s.b,s.a)),t["ɵdid"](9,114688,null,0,a.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),t["ɵeld"](10,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Daemons"])),(l()(),t["ɵeld"](14,0,null,null,1,"cd-mirroring-daemons",[],null,null,null,b,f)),t["ɵdid"](15,245760,null,0,h,[m.a,p.a,g.a],null,null),(l()(),t["ɵeld"](16,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pools"])),(l()(),t["ɵeld"](19,0,null,null,1,"cd-mirroring-pools",[],null,null,null,D,T)),t["ɵdid"](20,245760,null,0,N,[w.a,m.a,F.b,I.a,g.a],null,null),(l()(),t["ɵeld"](21,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](22,0,null,null,4,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](23,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Images"])),(l()(),t["ɵeld"](25,0,null,null,1,"cd-mirroring-images",[],null,null,null,$,M)),t["ɵdid"](26,245760,null,0,O,[m.a,g.a],null,null)],(function(l,n){var e=n.component;l(n,1,0,e.status),l(n,9,0,e.permission,e.selection,e.tableActions),l(n,15,0),l(n,20,0),l(n,26,0)}),(function(l,n){l(n,7,0,n.component.siteName)}))}function z(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-mirroring",[],null,null,null,X,U)),t["ɵdid"](1,245760,null,0,G.a,[w.a,m.a,F.b,g.a],null,null)],(function(l,n){l(n,1,0)}),null)}var W=t["ɵccf"]("cd-mirroring",G.a,z,{},{},[])},Sofw:function(l,n,e){"use strict";e.d(n,"a",(function(){return a}));var t=e("s7LF"),i=(e("my5R"),e("mtw6")),u=e("QFaf"),s=e("1Ni5");e("aexS"),e("9nlD");class a{constructor(l,n,e,t,i){this.authStorageService=l,this.bsModalRef=n,this.iscsiService=e,this.notificationService=t,this.i18n=i,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.permission=this.authStorageService.getPermissions().iscsi}ngOnInit(){this.hasPermission=this.permission.update,this.createForm(),this.iscsiService.getDiscovery().subscribe(l=>{this.discoveryForm.patchValue(l)})}createForm(){this.discoveryForm=new u.a({user:new t.i({value:"",disabled:!this.hasPermission}),password:new t.i({value:"",disabled:!this.hasPermission}),mutual_user:new t.i({value:"",disabled:!this.hasPermission}),mutual_password:new t.i({value:"",disabled:!this.hasPermission})}),s.a.validateIf(this.discoveryForm.get("user"),()=>this.discoveryForm.getValue("password")||this.discoveryForm.getValue("mutual_user")||this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("password"),()=>this.discoveryForm.getValue("user")||this.discoveryForm.getValue("mutual_user")||this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("mutual_user"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("mutual_user"),()=>this.discoveryForm.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_password")]),s.a.validateIf(this.discoveryForm.get("mutual_password"),()=>this.discoveryForm.getValue("mutual_user"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[this.discoveryForm.get("user"),this.discoveryForm.get("password"),this.discoveryForm.get("mutual_user")])}submitAction(){this.iscsiService.updateDiscovery(this.discoveryForm.value).subscribe(()=>{this.notificationService.show(i.a.success,this.i18n("Updated discovery authentication")),this.bsModalRef.hide()},()=>{this.discoveryForm.setErrors({cdSubmitButton:!0})})}}},SuaG:function(l,n,e){"use strict";e.d(n,"a",(function(){return c}));var t=e("s7LF"),i=e("LvDl"),u=e("GyhO"),s=e("cp0P"),a=e("vkgz"),o=e("NJ9Y"),r=(e("XED3"),e("QFaf")),d=e("kvvV");e("kn/O");class c{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.pools=[],this.createForm()}createForm(){this.createBootstrapForm=new r.a({siteName:new t.i("",{validators:[t.B.required]}),pools:new t.k({},{validators:[this.validatePools()]}),token:new t.i("",{})})}ngOnInit(){this.createBootstrapForm.get("siteName").setValue(this.siteName),this.rbdMirroringService.getSiteName().subscribe(l=>{this.createBootstrapForm.get("siteName").setValue(l.site_name)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(!l)return;this.pools=l.content_data.pools.reduce((l,n)=>(l.push({name:n.name,mirror_mode:n.mirror_mode}),l),[]);const n=this.createBootstrapForm.get("pools");i.each(this.pools,l=>{const e=l.name,i="disabled"===l.mirror_mode,u=n.controls[e];u?i&&u.disabled?u.enable():!i&&u.enabled&&(u.disable(),u.setValue(!0)):n.addControl(e,new t.i({value:!i,disabled:!i}))})})}ngOnDestroy(){this.subs&&this.subs.unsubscribe()}validatePools(){return l=>{let n=0;return i.each(l.controls,l=>{!0===l.value&&++n}),n>0?null:{requirePool:!0}}}generate(){this.createBootstrapForm.get("token").setValue("");let l="";const n=[],e=this.createBootstrapForm.get("pools");i.each(e.controls,(e,t)=>{!0===e.value&&(l=t,e.disabled||n.push(t))});const t={mirror_mode:"image"},r=Object(u.a)(this.rbdMirroringService.setSiteName(this.createBootstrapForm.getValue("siteName")),Object(s.a)(n.map(l=>this.rbdMirroringService.updatePool(l,t))),this.rbdMirroringService.createBootstrapToken(l).pipe(Object(a.a)(l=>this.createBootstrapForm.get("token").setValue(l.token)))).pipe(Object(o.a)()),c=()=>{this.rbdMirroringService.refresh(),this.createBootstrapForm.setErrors({cdSubmitButton:!0})};this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/mirroring/bootstrap/create",{}),call:r}).subscribe(void 0,c,c)}}},VBM6:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("SVse"),a=e("s7LF"),o=e("+gVj"),r=e("mXUL"),d=e("IZUe"),c=e("gp3X"),m=e("sb0X"),p=e("KVJa"),h=e("Z21x"),g=e("sne2"),f=e("L4us"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return P}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Edit"]))],null,null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Add"]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Edit"]))],null,null)}function w(l){return t["ɵvid"](0,[(l()(),t["ɵted"](-1,null,["Add"]))],null,null)}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The cluster name is not valid."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The CephX ID is not valid."]))],null,null)}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["The monitory address is not valid."]))],null,null)}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX key must be base64 encoded."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,106,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,7,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,5,null,null,null,null,null,null,null)),t["ɵdid"](4,16384,null,0,s.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](6,278528,null,0,s.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](8,16384,null,0,s.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],null,null),(l()(),t["ɵted"](-1,null,[" pool mirror peer"])),(l()(),t["ɵeld"](10,0,null,1,96,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](11,0,null,null,95,"form",[["class","form"],["name","editPeerForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,13).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,13).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,16).onSubmit()&&i),i}),null,null)),t["ɵdid"](12,16384,null,0,a.G,[],null,null),t["ɵdid"](13,540672,[["formDir",4]],0,a.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,a.d,null,[a.l]),t["ɵdid"](15,16384,null,0,a.s,[[4,a.d]],null,null),t["ɵdid"](16,16384,null,0,o.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](17,0,null,null,82,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](18,0,null,null,14,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,13,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](20,0,null,null,5,null,null,null,null,null,null,null)),t["ɵdid"](21,16384,null,0,s.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](23,278528,null,0,s.NgSwitchCase,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](25,16384,null,0,s.NgSwitchDefault,[t.ViewContainerRef,t.TemplateRef,s.NgSwitch],null,null),(l()(),t["ɵted"](-1,null,[" the pool mirror peer attributes for pool "])),(l()(),t["ɵeld"](27,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](28,null,["",""])),(l()(),t["ɵted"](-1,null,[" and click "])),(l()(),t["ɵeld"](30,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Submit"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](33,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](34,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](37,0,null,0,1,"label",[["class","col-form-label required"],["for","clusterName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Cluster Name"])),(l()(),t["ɵeld"](39,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","clusterName"],["id","clusterName"],["name","clusterName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,41)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,41).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,41)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,41)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](40,4210688,null,0,d.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](41,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](43,671744,[[1,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](45,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](46,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](48,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,k)),t["ɵdid"](50,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](51,0,null,null,16,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](52,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](55,0,null,0,1,"label",[["class","col-form-label required"],["for","clientID"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX ID"])),(l()(),t["ɵeld"](57,0,null,0,6,"input",[["class","form-control"],["formControlName","clientID"],["id","clientID"],["name","clientID"],["placeholder","CephX ID..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,58)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,58).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,58)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,58)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](58,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](60,671744,[[3,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](62,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](63,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,E)),t["ɵdid"](65,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,N)),t["ɵdid"](67,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](68,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](69,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](72,0,null,0,2,"label",[["class","col-form-label"],["for","monAddr"]],null,null,null,null,null)),(l()(),t["ɵeld"](73,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Monitor Addresses"])),(l()(),t["ɵeld"](75,0,null,0,6,"input",[["class","form-control"],["formControlName","monAddr"],["id","monAddr"],["name","monAddr"],["placeholder","Comma-delimited addresses..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,76)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,76).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,76)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,76)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](76,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](78,671744,[[5,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](80,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](81,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,F)),t["ɵdid"](83,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](84,0,null,null,15,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](85,1163264,null,2,o.c,[t.ElementRef,o.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](88,0,null,0,2,"label",[["class","col-form-label"],["for","key"]],null,null,null,null,null)),(l()(),t["ɵeld"](89,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["CephX Key"])),(l()(),t["ɵeld"](91,0,null,0,6,"input",[["class","form-control"],["formControlName","key"],["id","key"],["name","key"],["placeholder","Base64-encoded key..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,92)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,92).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,92)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,92)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](92,16384,null,0,a.e,[t.Renderer2,t.ElementRef,[2,a.b]],null,null),t["ɵprd"](1024,null,a.p,(function(l){return[l]}),[a.e]),t["ɵdid"](94,671744,[[7,4]],0,a.j,[[3,a.d],[8,null],[8,null],[6,a.p],[2,a.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,a.q,null,[a.j]),t["ɵdid"](96,16384,null,0,a.r,[[4,a.q]],null,null),t["ɵdid"](97,16384,null,0,o.h,[[3,a.d],o.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,T)),t["ɵdid"](99,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](100,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](101,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](102,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),c.b,c.a)),t["ɵdid"](103,114688,null,0,m.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Submit"])),(l()(),t["ɵeld"](105,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,p.b,p.a)),t["ɵdid"](106,49152,null,0,h.a,[s.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,4,0,e.mode),l(n,6,0,"edit"),l(n,13,0,e.editPeerForm),l(n,16,0,e.editPeerForm),l(n,21,0,e.mode),l(n,23,0,"edit"),l(n,34,0),l(n,40,0,""),l(n,43,0,"clusterName"),l(n,46,0,"clusterName"),l(n,48,0,e.editPeerForm.showError("clusterName",t["ɵnov"](n,13),"required")),l(n,50,0,e.editPeerForm.showError("clusterName",t["ɵnov"](n,13),"invalidClusterName")),l(n,52,0),l(n,60,0,"clientID"),l(n,63,0,"clientID"),l(n,65,0,e.editPeerForm.showError("clientID",t["ɵnov"](n,13),"required")),l(n,67,0,e.editPeerForm.showError("clientID",t["ɵnov"](n,13),"invalidClientID")),l(n,69,0),l(n,78,0,"monAddr"),l(n,81,0,"monAddr"),l(n,83,0,e.editPeerForm.showError("monAddr",t["ɵnov"](n,13),"invalidMonAddr")),l(n,85,0),l(n,94,0,"key"),l(n,97,0,"key"),l(n,99,0,e.editPeerForm.showError("key",t["ɵnov"](n,13),"invalidKey")),l(n,103,0,e.editPeerForm),l(n,106,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,11,0,t["ɵnov"](n,15).ngClassUntouched,t["ɵnov"](n,15).ngClassTouched,t["ɵnov"](n,15).ngClassPristine,t["ɵnov"](n,15).ngClassDirty,t["ɵnov"](n,15).ngClassValid,t["ɵnov"](n,15).ngClassInvalid,t["ɵnov"](n,15).ngClassPending),l(n,28,0,e.poolName),l(n,33,0,t["ɵnov"](n,34).hasErrors,t["ɵnov"](n,34).hasSuccess),l(n,39,0,t["ɵnov"](n,45).ngClassUntouched,t["ɵnov"](n,45).ngClassTouched,t["ɵnov"](n,45).ngClassPristine,t["ɵnov"](n,45).ngClassDirty,t["ɵnov"](n,45).ngClassValid,t["ɵnov"](n,45).ngClassInvalid,t["ɵnov"](n,45).ngClassPending,t["ɵnov"](n,46).validClass,t["ɵnov"](n,46).invalidClass),l(n,51,0,t["ɵnov"](n,52).hasErrors,t["ɵnov"](n,52).hasSuccess),l(n,57,0,t["ɵnov"](n,62).ngClassUntouched,t["ɵnov"](n,62).ngClassTouched,t["ɵnov"](n,62).ngClassPristine,t["ɵnov"](n,62).ngClassDirty,t["ɵnov"](n,62).ngClassValid,t["ɵnov"](n,62).ngClassInvalid,t["ɵnov"](n,62).ngClassPending,t["ɵnov"](n,63).validClass,t["ɵnov"](n,63).invalidClass),l(n,68,0,t["ɵnov"](n,69).hasErrors,t["ɵnov"](n,69).hasSuccess),l(n,75,0,t["ɵnov"](n,80).ngClassUntouched,t["ɵnov"](n,80).ngClassTouched,t["ɵnov"](n,80).ngClassPristine,t["ɵnov"](n,80).ngClassDirty,t["ɵnov"](n,80).ngClassValid,t["ɵnov"](n,80).ngClassInvalid,t["ɵnov"](n,80).ngClassPending,t["ɵnov"](n,81).validClass,t["ɵnov"](n,81).invalidClass),l(n,84,0,t["ɵnov"](n,85).hasErrors,t["ɵnov"](n,85).hasSuccess),l(n,91,0,t["ɵnov"](n,96).ngClassUntouched,t["ɵnov"](n,96).ngClassTouched,t["ɵnov"](n,96).ngClassPristine,t["ɵnov"](n,96).ngClassDirty,t["ɵnov"](n,96).ngClassValid,t["ɵnov"](n,96).ngClassInvalid,t["ɵnov"](n,96).ngClassPending,t["ɵnov"](n,97).validClass,t["ɵnov"](n,97).invalidClass)}))}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-pool-edit-peer-modal",[],null,null,null,V,S)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var P=t["ɵccf"]("cd-pool-edit-peer-modal",f.a,D,{},{},[])},WkyA:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{constructor(){}}},WxU5:function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e("Ekvf"),e("F83c"),e("2EZI");var t=e("kvvV");e("aexS"),e("kn/O");class i{constructor(l,n,e,t,i,u){this.authStorageService=l,this.rbdService=n,this.modalRef=e,this.fb=t,this.poolService=i,this.taskWrapper=u,this.poolPermission=this.authStorageService.getPermissions().pool}createForm(){this.purgeForm=this.fb.group({poolName:""})}ngOnInit(){this.poolPermission.read&&this.poolService.list(["pool_name","application_metadata"]).then(l=>{this.pools=l.filter(l=>l.application_metadata.includes("rbd")).map(l=>l.pool_name)}),this.createForm()}purge(){const l=this.purgeForm.getValue("poolName")||"";this.taskWrapper.wrapTaskAroundCall({task:new t.a("rbd/trash/purge",{pool_name:l}),call:this.rbdService.purgeTrash(l)}).subscribe(void 0,()=>{this.purgeForm.setErrors({cdSubmitButton:!0})},()=>{this.modalRef.hide()})}}},XED3:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("mrSG"),i=e("IheW"),u=e("2Vo4"),s=e("xTzq"),a=e("lOp/"),o=e("8Y7J"),r=e("pL04");let d=(()=>{let l=class{constructor(l,n){this.http=l,this.timerService=n,this.REFRESH_INTERVAL=3e4,this.summaryDataSource=new u.a(null),this.summaryData$=this.summaryDataSource.asObservable()}startPolling(){return this.timerService.get(()=>this.retrieveSummaryObservable(),this.REFRESH_INTERVAL).subscribe(this.retrieveSummaryObserver())}refresh(){return this.retrieveSummaryObservable().subscribe(this.retrieveSummaryObserver())}retrieveSummaryObservable(){return this.http.get("api/block/mirroring/summary")}retrieveSummaryObserver(){return l=>{this.summaryDataSource.next(l)}}getCurrentSummary(){return this.summaryDataSource.getValue()}subscribeSummary(l,n){return this.summaryData$.subscribe(l,n)}getPool(l){return this.http.get(`api/block/mirroring/pool/${l}`)}updatePool(l,n){return this.http.put(`api/block/mirroring/pool/${l}`,n,{observe:"response"})}getSiteName(){return this.http.get("api/block/mirroring/site_name")}setSiteName(l){return this.http.put("api/block/mirroring/site_name",{site_name:l},{observe:"response"})}createBootstrapToken(l){return this.http.post(`api/block/mirroring/pool/${l}/bootstrap/token`,{})}importBootstrapToken(l,n,e){return this.http.post(`api/block/mirroring/pool/${l}/bootstrap/peer`,{direction:n,token:e},{observe:"response"})}getPeer(l,n){return this.http.get(`api/block/mirroring/pool/${l}/peer/${n}`)}addPeer(l,n){return this.http.post(`api/block/mirroring/pool/${l}/peer`,n,{observe:"response"})}updatePeer(l,n,e){return this.http.put(`api/block/mirroring/pool/${l}/peer/${n}`,e,{observe:"response"})}deletePeer(l,n){return this.http.delete(`api/block/mirroring/pool/${l}/peer/${n}`,{observe:"response"})}};return l.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new l(o["ɵɵinject"](i.c),o["ɵɵinject"](a.a))},token:l,providedIn:r.a}),t.__decorate([t.__param(0,s.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[String]),t.__metadata("design:returntype",void 0)],l.prototype,"setSiteName",null),t.__decorate([t.__param(1,s.b),t.__param(2,s.b),t.__metadata("design:type",Function),t.__metadata("design:paramtypes",[String,String,String]),t.__metadata("design:returntype",void 0)],l.prototype,"importBootstrapToken",null),l=t.__decorate([s.a,t.__metadata("design:paramtypes",[i.c,a.a])],l),l})()},Z4cD:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=e("LvDl"),u=(e("my5R"),e("QFaf"));class s{constructor(l,n){this.modalRef=l,this.iscsiService=n}ngOnInit(){const l={backstore:new t.i(this.imagesSettings[this.image].backstore),lun:new t.i(this.imagesSettings[this.image].lun),wwn:new t.i(this.imagesSettings[this.image].wwn)};i.forEach(this.backstores,n=>{const e=this.imagesSettings[this.image][n]||{};i.forIn(this.disk_default_controls[n],(n,i)=>{l[i]=new t.i(e[i])})}),this.settingsForm=new u.a(l)}getDiskControlLimits(l,n){return this.disk_controls_limits?this.disk_controls_limits[l][n]:{type:"int"}}save(){const l=this.settingsForm.controls.backstore.value,n=this.settingsForm.controls.lun.value,e=this.settingsForm.controls.wwn.value,t={};i.forIn(this.settingsForm.controls,(n,e)=>{""!==n.value&&null!==n.value&&e in this.disk_default_controls[this.settingsForm.value.backstore]&&(t[e]=n.value,i.forEach(this.backstores,t=>{t!==l&&e in(this.imagesSettings[this.image][t]||{})&&(this.imagesSettings[this.image][t][e]=n.value)}))}),this.imagesSettings[this.image].backstore=l,this.imagesSettings[this.image].lun=n,this.imagesSettings[this.image].wwn=e,this.imagesSettings[this.image][l]=t,this.imagesSettings=Object.assign({},this.imagesSettings),this.control.updateValueAndValidity({emitEvent:!1}),this.modalRef.hide()}}},Z5tW:function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("LvDl"),i=e("cp0P"),u=(e("Ekvf"),e("F83c"),e("0+/T")),s=(e("sne2"),e("oxzT")),a=e("mtw6"),o=e("vCyI"),r=(e("aexS"),e("9nlD"),e("daK0"));class d{constructor(l,n,e,i,u,a,r){this.authStorageService=l,this.rbdService=n,this.poolService=e,this.modalService=i,this.notificationService=u,this.i18n=a,this.actionLabels=r,this.selection=new o.a,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"create",icon:s.a.add,click:()=>this.createModal(),name:this.actionLabels.CREATE},{permission:"delete",icon:s.a.destroy,click:()=>this.deleteModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getDeleteDisableDesc()}]}ngOnInit(){this.columns=[{name:this.i18n("Namespace"),prop:"namespace",flexGrow:1},{name:this.i18n("Pool"),prop:"pool",flexGrow:1},{name:this.i18n("Total images"),prop:"num_images",flexGrow:1}],this.refresh()}refresh(){this.poolService.list(["pool_name","type","application_metadata"]).then(l=>{l=l.filter(l=>this.rbdService.isRBDPool(l)&&"replicated"===l.type);const n=[];l.forEach(l=>{n.push(this.rbdService.listNamespaces(l.pool_name))}),n.length>0?Object(i.a)(n).subscribe(n=>{const e=[];for(let t=0;t<n.length;t++){const i=l[t].pool_name;n[t].forEach(l=>{e.push({id:`${i}/${l.namespace}`,pool:i,namespace:l.namespace,num_images:l.num_images})})}this.namespaces=e}):this.namespaces=[]})}updateSelection(l){this.selection=l}createModal(){this.modalRef=this.modalService.show(r.a),this.modalRef.content.onSubmit.subscribe(()=>{this.refresh()})}deleteModal(){const l=this.selection.first().pool,n=this.selection.first().namespace;this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:"Namespace",itemNames:[`${l}/${n}`],submitAction:()=>this.rbdService.deleteNamespace(l,n).subscribe(()=>{this.notificationService.show(a.a.success,this.i18n("Deleted namespace '{{pool}}/{{namespace}}'",{pool:l,namespace:n})),this.modalRef.hide(),this.refresh()},()=>{this.modalRef.content.stopLoadingSpinner()})}})}getDeleteDisableDesc(){const l=this.selection.first();if(l&&l.num_images>0)return this.i18n("Namespace contains images")}}},a6qe:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=e("LvDl"),u=(e("my5R"),e("QFaf"));class s{constructor(l,n){this.modalRef=l,this.iscsiService=n}ngOnInit(){const l={};i.forIn(this.target_default_controls,(n,e)=>{l[e]=new t.i(this.target_controls.value[e])}),this.settingsForm=new u.a(l)}save(){const l={};i.forIn(this.settingsForm.controls,(n,e)=>{""!==n.value&&null!==n.value&&(l[e]=n.value)}),this.target_controls.setValue(l),this.modalRef.hide()}getTargetControlLimits(l){return this.target_controls_limits?this.target_controls_limits[l]:["Yes","No"].includes(this.target_default_controls[l])?{type:"bool"}:{type:"int"}}}},aAWM:function(l,n,e){"use strict";e("uIqm");var t=e("PhyI");class i{transform(l){return{0:"global",1:"pool",2:"image"}[l]}}e("aXbf"),e("o8EM"),e.d(n,"a",(function(){return u}));class u{constructor(l,n,e){this.formatterService=l,this.rbdConfigurationService=n,this.i18n=e,this.sourceField=t.a,this.typeField=t.b}ngOnInit(){this.poolConfigurationColumns=[{prop:"displayName",name:this.i18n("Name")},{prop:"description",name:this.i18n("Description")},{prop:"name",name:this.i18n("Key")},{prop:"source",name:this.i18n("Source"),cellTemplate:this.configurationSourceTpl,pipe:new i},{prop:"value",name:this.i18n("Value"),cellTemplate:this.configurationValueTpl}]}ngOnChanges(){this.data&&(this.data=this.data.filter(l=>this.rbdConfigurationService.getOptionFields().map(l=>l.name).includes(l.name)))}}},aa9H:function(l,n,e){"use strict";var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{}e.d(n,"a",(function(){return a}));class a{constructor(l,n,e,t){this.modalRef=l,this.i18n=n,this.rbdMirroringService=e,this.taskWrapper=t,this.bsConfig={containerClass:"theme-default"},this.peerExists=!1,this.mirrorModes=[{id:"disabled",name:this.i18n("Disabled")},{id:"pool",name:this.i18n("Pool")},{id:"image",name:this.i18n("Image")}],this.createForm()}createForm(){this.editModeForm=new i.a({mirrorMode:new t.i("",{validators:[t.B.required,this.validateMode.bind(this)]})})}ngOnInit(){this.pattern=`${this.poolName}`,this.rbdMirroringService.getPool(this.poolName).subscribe(l=>{this.setResponse(l)}),this.subs=this.rbdMirroringService.subscribeSummary(l=>{if(this.peerExists=!1,!l)return;const n=l.content_data.pools.find(l=>this.poolName===l.name);this.peerExists=n&&n.peer_uuids.length})}ngOnDestroy(){this.subs.unsubscribe()}validateMode(l){return"disabled"===l.value&&this.peerExists?{cannotDisable:{value:l.value}}:null}setResponse(l){this.editModeForm.get("mirrorMode").setValue(l.mirror_mode)}update(){const l=new s;l.mirror_mode=this.editModeForm.getValue("mirrorMode"),this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/mirroring/pool/edit",{pool_name:this.poolName}),call:this.rbdMirroringService.updatePool(this.poolName,l)}).subscribe(void 0,()=>this.editModeForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},bUo2:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("gp3X"),u=e("sb0X"),s=e("EEJc"),a=e("ajRT"),o=e("s7LF"),r=e("+gVj"),d=e("mXUL"),c=e("SVse"),m=e("D4zM"),p=e("OcYo"),h=e("EApP"),g=e("KVJa"),f=e("Z21x"),v=e("sne2"),b=e("Sofw"),C=e("aexS"),S=e("LqlI"),_=e("my5R"),y=e("9nlD"),R=e("GiVz");e.d(n,"a",(function(){return B}));var w=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function N(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function T(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function V(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function D(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function P(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.submitAction()&&t),t}),i.b,i.a)),t["ɵdid"](1,114688,null,0,u.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Submit"]))],(function(l,n){l(n,1,0,n.component.discoveryForm)}),null)}function x(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,102,"cd-modal",[],null,null,null,s.c,s.b)),t["ɵdid"](1,49152,null,0,a.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Discovery Authentication"])),(l()(),t["ɵeld"](4,0,null,1,98,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,97,"form",[["name","discoveryForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,o.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,o.d,null,[o.l]),t["ɵdid"](9,16384,null,0,o.s,[[4,o.d]],null,null),t["ɵdid"](10,16384,null,0,r.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,85,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](13,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["User"])),(l()(),t["ɵeld"](18,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,20)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,20).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,20)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,20)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](20,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](22,671744,[[1,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](24,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](25,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,I)),t["ɵdid"](27,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,k)),t["ɵdid"](29,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](30,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](31,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](34,0,null,0,1,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Password"])),(l()(),t["ɵeld"](36,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](37,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](38,0,null,null,6,"input",[["class","form-control"],["formControlName","password"],["id","password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,39)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,39).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,39)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,39)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](39,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](41,671744,[[3,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](43,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](44,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](45,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](46,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,47).onClick()&&i),i}),null,null)),t["ɵdid"](47,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["ɵeld"](48,0,null,null,1,"button",[["cdCopy2ClipboardButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,49).onClick()&&i),i}),null,null)),t["ɵdid"](49,81920,null,0,p.a,[t.ElementRef,t.Renderer2,h.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](51,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,N)),t["ɵdid"](53,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](54,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](55,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](58,0,null,0,2,"label",[["class","cd-col-form-label"],["for","mutual_user"]],null,null,null,null,null)),(l()(),t["ɵeld"](59,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mutual User"])),(l()(),t["ɵeld"](61,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](62,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["id","mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,63)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,63).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,63)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,63)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](63,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](65,671744,[[5,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](67,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](68,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,F)),t["ɵdid"](70,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,T)),t["ɵdid"](72,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](73,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),t["ɵdid"](74,1163264,null,2,r.c,[t.ElementRef,r.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](77,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mutual_password"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mutual Password"])),(l()(),t["ɵeld"](79,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),t["ɵeld"](80,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),t["ɵeld"](81,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_password"],["id","mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,82)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,82).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,82)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,82)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](82,16384,null,0,o.e,[t.Renderer2,t.ElementRef,[2,o.b]],null,null),t["ɵprd"](1024,null,o.p,(function(l){return[l]}),[o.e]),t["ɵdid"](84,671744,[[7,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,o.q,null,[o.j]),t["ɵdid"](86,16384,null,0,o.r,[[4,o.q]],null,null),t["ɵdid"](87,16384,null,0,r.h,[[3,o.d],r.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](88,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),t["ɵeld"](89,0,null,null,1,"button",[["cdPasswordButton","mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,90).onClick()&&i),i}),null,null)),t["ɵdid"](90,81920,null,0,m.a,[t.ElementRef,t.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),t["ɵeld"](91,0,null,null,1,"button",[["cdCopy2ClipboardButton","mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var i=!0;return"click"===n&&(i=!1!==t["ɵnov"](l,92).onClick()&&i),i}),null,null)),t["ɵdid"](92,81920,null,0,p.a,[t.ElementRef,t.Renderer2,h.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,V)),t["ɵdid"](94,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,D)),t["ɵdid"](96,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](97,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](98,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,P)),t["ɵdid"](100,16384,null,0,c.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](101,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,g.b,g.a)),t["ɵdid"](102,49152,null,0,f.a,[c.Location,v.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.bsModalRef),l(n,7,0,e.discoveryForm),l(n,10,0,e.discoveryForm),l(n,13,0),l(n,22,0,"user"),l(n,25,0,"user"),l(n,27,0,e.discoveryForm.showError("user",t["ɵnov"](n,7),"required")),l(n,29,0,e.discoveryForm.showError("user",t["ɵnov"](n,7),"pattern")),l(n,31,0),l(n,41,0,"password"),l(n,44,0,"password"),l(n,47,0,"password"),l(n,49,0,"password"),l(n,51,0,e.discoveryForm.showError("password",t["ɵnov"](n,7),"required")),l(n,53,0,e.discoveryForm.showError("password",t["ɵnov"](n,7),"pattern")),l(n,55,0),l(n,65,0,"mutual_user"),l(n,68,0,"mutual_user"),l(n,70,0,e.discoveryForm.showError("mutual_user",t["ɵnov"](n,7),"required")),l(n,72,0,e.discoveryForm.showError("mutual_user",t["ɵnov"](n,7),"pattern")),l(n,74,0),l(n,84,0,"mutual_password"),l(n,87,0,"mutual_password"),l(n,90,0,"mutual_password"),l(n,92,0,"mutual_password"),l(n,94,0,e.discoveryForm.showError("mutual_password",t["ɵnov"](n,7),"required")),l(n,96,0,e.discoveryForm.showError("mutual_password",t["ɵnov"](n,7),"pattern")),l(n,100,0,e.hasPermission),l(n,102,0,"Cancel",e.bsModalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,12,0,t["ɵnov"](n,13).hasErrors,t["ɵnov"](n,13).hasSuccess),l(n,19,0,t["ɵnov"](n,24).ngClassUntouched,t["ɵnov"](n,24).ngClassTouched,t["ɵnov"](n,24).ngClassPristine,t["ɵnov"](n,24).ngClassDirty,t["ɵnov"](n,24).ngClassValid,t["ɵnov"](n,24).ngClassInvalid,t["ɵnov"](n,24).ngClassPending,t["ɵnov"](n,25).validClass,t["ɵnov"](n,25).invalidClass),l(n,30,0,t["ɵnov"](n,31).hasErrors,t["ɵnov"](n,31).hasSuccess),l(n,38,0,t["ɵnov"](n,43).ngClassUntouched,t["ɵnov"](n,43).ngClassTouched,t["ɵnov"](n,43).ngClassPristine,t["ɵnov"](n,43).ngClassDirty,t["ɵnov"](n,43).ngClassValid,t["ɵnov"](n,43).ngClassInvalid,t["ɵnov"](n,43).ngClassPending,t["ɵnov"](n,44).validClass,t["ɵnov"](n,44).invalidClass),l(n,54,0,t["ɵnov"](n,55).hasErrors,t["ɵnov"](n,55).hasSuccess),l(n,62,0,t["ɵnov"](n,67).ngClassUntouched,t["ɵnov"](n,67).ngClassTouched,t["ɵnov"](n,67).ngClassPristine,t["ɵnov"](n,67).ngClassDirty,t["ɵnov"](n,67).ngClassValid,t["ɵnov"](n,67).ngClassInvalid,t["ɵnov"](n,67).ngClassPending,t["ɵnov"](n,68).validClass,t["ɵnov"](n,68).invalidClass),l(n,73,0,t["ɵnov"](n,74).hasErrors,t["ɵnov"](n,74).hasSuccess),l(n,81,0,t["ɵnov"](n,86).ngClassUntouched,t["ɵnov"](n,86).ngClassTouched,t["ɵnov"](n,86).ngClassPristine,t["ɵnov"](n,86).ngClassDirty,t["ɵnov"](n,86).ngClassValid,t["ɵnov"](n,86).ngClassInvalid,t["ɵnov"](n,86).ngClassPending,t["ɵnov"](n,87).validClass,t["ɵnov"](n,87).invalidClass)}))}function q(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-discovery-modal",[],null,null,null,x,w)),t["ɵdid"](1,114688,null,0,b.a,[C.a,S.a,_.a,y.a,R.a],null,null)],(function(l,n){l(n,1,0)}),null)}var B=t["ɵccf"]("cd-iscsi-target-discovery-modal",b.a,q,{},{},[])},chpi:function(l,n,e){"use strict";e.d(n,"a",(function(){return h}));var t=e("LvDl"),i=e("wd/R"),u=(e("F83c"),e("0+/T")),s=(e("sne2"),e("uIqm"),e("x38r")),a=e("oxzT"),o=e("yJti"),r=e("vCyI"),d=e("kvvV"),c=e("jVDg"),m=(e("a0VL"),e("aexS"),e("VTlA"),e("kn/O"),e("WxU5")),p=e("2GqK");class h{constructor(l,n,e,t,i,u,s,o){this.authStorageService=l,this.rbdService=n,this.modalService=e,this.cdDatePipe=t,this.taskListService=i,this.taskWrapper=u,this.i18n=s,this.actionLabels=o,this.icons=a.a,this.executingTasks=[],this.selection=new r.a,this.disablePurgeBtn=!0,this.permission=this.authStorageService.getPermissions().rbdImage,this.tableActions=[{permission:"update",icon:a.a.undo,click:()=>this.restoreModal(),name:this.actionLabels.RESTORE},{permission:"delete",icon:a.a.destroy,click:()=>this.deleteModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:1,cellTransformation:s.a.executing},{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Pool"),prop:"pool_name",flexGrow:1},{name:this.i18n("Namespace"),prop:"namespace",flexGrow:1},{name:this.i18n("Status"),prop:"deferment_end_time",flexGrow:1,cellTemplate:this.expiresTpl},{name:this.i18n("Deleted At"),prop:"deletion_time",flexGrow:1,pipe:this.cdDatePipe}],this.taskListService.init(()=>this.rbdService.listTrash(),l=>this.prepareResponse(l),l=>this.images=l,()=>this.onFetchError(),l=>["rbd/trash/remove","rbd/trash/restore"].includes(l.name),(l,n)=>new c.a(l.pool_name,l.namespace,l.id).toString()===n.metadata.image_id_spec,void 0)}prepareResponse(l){let n=[];const e={};l.forEach(l=>{t.isUndefined(e[l.status])&&(e[l.status]=[]),e[l.status].push(l.pool_name),n=n.concat(l.value),this.disablePurgeBtn=!n.length});const u=[];return t.forEach(e,(l,n)=>{u.push({status:parseInt(n,10),statusFor:(l.length>1?"pools ":"pool ")+"<strong>"+l.join("</strong>, <strong>")+"</strong>"})}),this.viewCacheStatusList=u,n.forEach(l=>{l.cdIsExpired=i().isAfter(l.deferment_end_time)}),n}onFetchError(){this.table.reset(),this.viewCacheStatusList=[{status:o.a.ValueException}]}updateSelection(l){this.selection=l}restoreModal(){const l={poolName:this.selection.first().pool_name,namespace:this.selection.first().namespace,imageName:this.selection.first().name,imageId:this.selection.first().id};this.modalRef=this.modalService.show(p.a,{initialState:l})}deleteModal(){const l=this.selection.first().pool_name,n=this.selection.first().namespace,e=this.selection.first().id,t=this.selection.first().deferment_end_time,i=new c.a(l,n,e);this.modalRef=this.modalService.show(u.a,{initialState:{itemDescription:"RBD",itemNames:[i],bodyTemplate:this.deleteTpl,bodyContext:{$implicit:t},submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new d.a("rbd/trash/remove",{image_id_spec:i.toString()}),call:this.rbdService.removeTrash(i,!0)})}})}isExpired(l){return i().isAfter(l)}purgeModal(){this.modalService.show(m.a)}}},cxJu:function(l,n,e){"use strict";e.d(n,"a",(function(){return r}));var t=e("quSY"),i=(e("XED3"),e("oxzT")),u=e("vCyI"),s=(e("aexS"),e("SuaG")),a=e("+26A"),o=e("puGn");class r{constructor(l,n,e,s){this.authStorageService=l,this.rbdMirroringService=n,this.modalService=e,this.i18n=s,this.selection=new u.a,this.peersExist=!0,this.subs=new t.a,this.permission=this.authStorageService.getPermissions().rbdMirroring;const a={permission:"update",icon:i.a.edit,click:()=>this.editSiteNameModal(),name:this.i18n("Edit Site Name"),canBePrimary:()=>!0,disable:()=>!1},o={permission:"update",icon:i.a.upload,click:()=>this.createBootstrapModal(),name:this.i18n("Create Bootstrap Token"),disable:()=>!1},r={permission:"update",icon:i.a.download,click:()=>this.importBootstrapModal(),name:this.i18n("Import Bootstrap Token"),disable:()=>this.peersExist};this.tableActions=[a,o,r]}ngOnInit(){this.subs.add(this.rbdMirroringService.startPolling()),this.subs.add(this.rbdMirroringService.subscribeSummary(l=>{l&&(this.status=l.content_data.status,this.siteName=l.site_name,this.peersExist=!!l.content_data.pools.find(l=>l.peer_uuids.length>0))}))}ngOnDestroy(){this.subs.unsubscribe()}editSiteNameModal(){this.modalRef=this.modalService.show(o.a,{initialState:{siteName:this.siteName}})}createBootstrapModal(){this.modalRef=this.modalService.show(s.a,{initialState:{siteName:this.siteName}})}importBootstrapModal(){this.modalRef=this.modalService.show(a.a,{initialState:{siteName:this.siteName}})}}},daK0:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("s7LF"),i=e("XNiG"),u=(e("Ekvf"),e("F83c"),e("mtw6")),s=e("QFaf"),a=e("kvvV");e("aexS"),e("9nlD");class o{constructor(l,n,e,t,i,u){this.modalRef=l,this.authStorageService=n,this.notificationService=e,this.poolService=t,this.rbdService=i,this.i18n=u,this.pools=null,this.editing=!1,this.poolPermission=this.authStorageService.getPermissions().pool,this.createForm()}createForm(){this.namespaceForm=new s.a({pool:new t.i(""),namespace:new t.i("")},this.validator(),this.asyncValidator())}validator(){return l=>{const n=l.get("pool"),e=l.get("namespace");let t=null;n.value||(t={required:!0}),n.setErrors(t);let i=null;return e.value||(i={required:!0}),e.setErrors(i),null}}asyncValidator(){return l=>new Promise(n=>{const e=l.get("pool"),t=l.get("namespace");this.rbdService.listNamespaces(e.value).subscribe(l=>{if(l.some(l=>l.namespace===t.value)){const l={namespaceExists:!0};t.setErrors(l),n(l)}else n(null)})})}ngOnInit(){this.onSubmit=new i.a,this.poolPermission.read&&this.poolService.list(["pool_name","type","application_metadata"]).then(l=>{const n=[];for(const e of l)this.rbdService.isRBDPool(e)&&"replicated"===e.type&&n.push(e);if(this.pools=n,1===this.pools.length){const l=this.pools[0].pool_name;this.namespaceForm.get("pool").setValue(l)}})}submit(){const l=this.namespaceForm.getValue("pool"),n=this.namespaceForm.getValue("namespace"),e=new a.a;e.name="rbd/namespace/create",e.metadata={pool:l,namespace:n},this.rbdService.createNamespace(l,n).toPromise().then(()=>{this.notificationService.show(u.a.success,this.i18n("Created namespace '{{pool}}/{{namespace}}'",{pool:l,namespace:n})),this.modalRef.hide(),this.onSubmit.next()}).catch(()=>{this.namespaceForm.setErrors({cdSubmitButton:!0})})}}},"e/kN":function(l,n,e){"use strict";e.d(n,"a",(function(){return d}));var t=e("LvDl"),i=(e("my5R"),e("0+/T")),u=(e("sne2"),e("uIqm"),e("x38r")),s=e("oxzT"),a=e("vCyI"),o=e("kvvV"),r=(e("+0ag"),e("G1/K"),e("aexS"),e("mSOc"),e("VTlA"),e("kn/O"),e("Sofw"));class d{constructor(l,n,e,i,u,o,r,d,c,m){this.authStorageService=l,this.i18n=n,this.iscsiService=e,this.taskListService=i,this.cephReleaseNamePipe=u,this.notAvailablePipe=o,this.summaryservice=r,this.modalService=d,this.taskWrapper=c,this.actionLabels=m,this.available=void 0,this.selection=new a.a,this.targets=[],this.icons=s.a,this.builders={"iscsi/target/create":l=>({target_iqn:l.target_iqn})},this.permission=this.authStorageService.getPermissions().iscsi,this.tableActions=[{permission:"create",icon:s.a.add,routerLink:()=>"/block/iscsi/targets/create",name:this.actionLabels.CREATE},{permission:"update",icon:s.a.edit,routerLink:()=>`/block/iscsi/targets/edit/${this.selection.first().target_iqn}`,name:this.actionLabels.EDIT,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getEditDisableDesc()},{permission:"delete",icon:s.a.destroy,click:()=>this.deleteIscsiTargetModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!t.isUndefined(this.getDeleteDisableDesc()),disableDesc:()=>this.getDeleteDisableDesc()}]}ngOnInit(){this.columns=[{name:this.i18n("Target"),prop:"target_iqn",flexGrow:2,cellTransformation:u.a.executing},{name:this.i18n("Portals"),prop:"cdPortals",flexGrow:2},{name:this.i18n("Images"),prop:"cdImages",flexGrow:2},{name:this.i18n("# Sessions"),prop:"info.num_sessions",pipe:this.notAvailablePipe,flexGrow:1}],this.iscsiService.status().subscribe(l=>{if(this.available=l.available,l.available)this.iscsiService.version().subscribe(l=>{this.cephIscsiConfigVersion=l.ceph_iscsi_config_version,this.taskListService.init(()=>this.iscsiService.listTargets(),l=>this.prepareResponse(l),l=>this.targets=l,()=>this.onFetchError(),this.taskFilter,this.itemFilter,this.builders)}),this.iscsiService.settings().subscribe(l=>{this.settings=l});else{const n=this.summaryservice.getCurrentSummary(),e=this.cephReleaseNamePipe.transform(n.version);this.docsUrl=`http://docs.ceph.com/docs/${e}/mgr/dashboard/#enabling-iscsi-management`,this.status=l.message}})}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}getEditDisableDesc(){const l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):void 0}getDeleteDisableDesc(){const l=this.selection.first();return l&&l.cdExecuting?l.cdExecuting:l&&t.isUndefined(l.info)?this.i18n("Unavailable gateway(s)"):l&&l.info&&l.info.num_sessions?this.i18n("Target has active sessions"):void 0}prepareResponse(l){return l.forEach(l=>{l.cdPortals=l.portals.map(l=>`${l.host}:${l.ip}`),l.cdImages=l.disks.map(l=>`${l.pool}/${l.image}`)}),l}onFetchError(){this.table.reset()}itemFilter(l,n){return l.target_iqn===n.metadata.target_iqn}taskFilter(l){return["iscsi/target/create","iscsi/target/edit","iscsi/target/delete"].includes(l.name)}updateSelection(l){this.selection=l}deleteIscsiTargetModal(){const l=this.selection.first().target_iqn;this.modalRef=this.modalService.show(i.a,{initialState:{itemDescription:this.i18n("iSCSI target"),itemNames:[l],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new o.a("iscsi/target/delete",{target_iqn:l}),call:this.iscsiService.deleteTarget(l)})}})}configureDiscoveryAuth(){this.modalService.show(r.a,{})}}},eF8U:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("mXUL");e("jMP8"),e.d(n,"a",(function(){return o})),e.d(n,"b",(function(){return v}));var o=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function r(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function d(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,11,"select",[["class","form-control custom-select"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](7,0,null,null,2,"option",[],null,null,null,null,null)),t["ɵdid"](8,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),t["ɵdid"](9,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,r)),t["ɵdid"](11,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,6,0,e.setting),l(n,8,0,null),l(n,9,0,null),l(n,11,0,e.limits.values)}),(function(l,n){var e=n.component;l(n,0,1,[t["ɵinlineInterpolate"](1,"",e.setting,""),t["ɵinlineInterpolate"](1,"",e.setting,""),t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass])}))}function c(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.value)&&i),"input"===n&&(i=!1!==t["ɵnov"](l,2).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,2).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](2,16384,null,0,i.w,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),t["ɵdid"](4,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](6,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](7,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.setting),l(n,7,0,e.setting)}),(function(l,n){l(n,0,0,t["ɵnov"](n,6).ngClassUntouched,t["ɵnov"](n,6).ngClassTouched,t["ɵnov"](n,6).ngClassPristine,t["ɵnov"](n,6).ngClassDirty,t["ɵnov"](n,6).ngClassValid,t["ɵnov"](n,6).ngClassInvalid,t["ɵnov"](n,6).ngClassPending,t["ɵnov"](n,7).validClass,t["ɵnov"](n,7).invalidClass)}))}function m(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.setting),l(n,6,0,e.setting)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function p(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,23,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),t["ɵeld"](2,0,null,null,10,"div",[["class","custom-control custom-radio custom-control-inline"]],null,null,null,null,null)),(l()(),t["ɵeld"](3,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,4)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,4).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,4)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,4)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,5).onChange()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,5).onTouched()&&i),i}),null,null)),t["ɵdid"](4,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](5,212992,null,0,i.x,[t.Renderer2,t.ElementRef,i.D,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.x]),t["ɵdid"](7,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](9,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](10,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](11,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](-1,null,["Yes"])),(l()(),t["ɵeld"](13,0,null,null,10,"div",[["class","custom-control custom-radio custom-control-inline"]],null,null,null,null,null)),(l()(),t["ɵeld"](14,0,null,null,7,"input",[["class","custom-control-input"],["type","radio"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,15)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,15).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,15)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,15)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,16).onChange()&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,16).onTouched()&&i),i}),null,null)),t["ɵdid"](15,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵdid"](16,212992,null,0,i.x,[t.Renderer2,t.ElementRef,i.D,t.Injector],{formControlName:[0,"formControlName"],value:[1,"value"]},null),t["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.x]),t["ɵdid"](18,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](20,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](21,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](22,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](-1,null,["No"]))],(function(l,n){var e=n.component;l(n,5,0,e.setting,!0),l(n,7,0,e.setting),l(n,10,0,e.setting),l(n,16,0,e.setting,!1),l(n,18,0,e.setting),l(n,21,0,e.setting)}),(function(l,n){var e=n.component;l(n,3,0,e.setting+"True",t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending,t["ɵnov"](n,10).validClass,t["ɵnov"](n,10).invalidClass),l(n,11,0,e.setting+"True"),l(n,14,0,e.setting+"False",t["ɵnov"](n,20).ngClassUntouched,t["ɵnov"](n,20).ngClassTouched,t["ɵnov"](n,20).ngClassPristine,t["ɵnov"](n,20).ngClassDirty,t["ɵnov"](n,20).ngClassValid,t["ɵnov"](n,20).ngClassInvalid,t["ɵnov"](n,20).ngClassPending,t["ɵnov"](n,21).validClass,t["ɵnov"](n,21).invalidClass),l(n,22,0,e.setting+"False")}))}function h(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,c)),t["ɵdid"](2,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,m)),t["ɵdid"](4,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,p)),t["ɵdid"](6,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0,"int"===e.limits.type),l(n,4,0,"str"===e.limits.type),l(n,6,0,"bool"===e.limits.type)}),null)}function g(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](2,null,["Must be greater than or equal to ","."]))],null,(function(l,n){l(n,2,0,n.component.limits.min)}))}function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](2,null,["Must be less than or equal to ","."]))],null,(function(l,n){l(n,2,0,n.component.limits.max)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,17,"div",[["class","form-group"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,1).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,1).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,4).onSubmit()&&i),i}),a.b,a.a)),t["ɵdid"](1,540672,null,0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](3,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](4,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),t["ɵdid"](5,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](8,0,null,0,1,"label",[["class","col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),t["ɵted"](9,null,["",""])),(l()(),t["ɵand"](16777216,null,0,1,null,d)),t["ɵdid"](11,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,h)),t["ɵdid"](13,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,g)),t["ɵdid"](15,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,f)),t["ɵdid"](17,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.settingsForm),l(n,4,0,e.settingsForm),l(n,5,0),l(n,11,0,"enum"===e.limits.type),l(n,13,0,"enum"!==e.limits.type),l(n,15,0,e.settingsForm.showError(e.setting,e.formDir,"min")),l(n,17,0,e.settingsForm.showError(e.setting,e.formDir,"max"))}),(function(l,n){var e=n.component;l(n,0,0,t["ɵnov"](n,3).ngClassUntouched,t["ɵnov"](n,3).ngClassTouched,t["ɵnov"](n,3).ngClassPristine,t["ɵnov"](n,3).ngClassDirty,t["ɵnov"](n,3).ngClassValid,t["ɵnov"](n,3).ngClassInvalid,t["ɵnov"](n,3).ngClassPending,t["ɵnov"](n,5).hasErrors,t["ɵnov"](n,5).hasSuccess),l(n,8,0,t["ɵinlineInterpolate"](1,"",e.setting,"")),l(n,9,0,e.setting)}))}},gr3l:function(l,n,e){"use strict";e.d(n,"a",(function(){return h}));var t=e("s7LF"),i=e("LvDl"),u=e("cp0P"),s=(e("my5R"),e("F83c"),e("DNAf")),a=e("a96k"),o=(e("sne2"),e("oxzT")),r=e("QFaf"),d=e("1Ni5"),c=e("kvvV"),m=(e("kn/O"),e("Z4cD")),p=e("a6qe");class h{constructor(l,n,e,t,i,u,a,r){this.iscsiService=l,this.modalService=n,this.rbdService=e,this.router=t,this.route=i,this.i18n=u,this.taskWrapper=a,this.actionLabels=r,this.api_version=0,this.minimum_gateways=1,this.icons=o.a,this.isEdit=!1,this.portalsSelections=[],this.imagesInitiatorSelections=[],this.groupDiskSelections=[],this.groupMembersSelections=[],this.imagesSettings={},this.messages={portals:new s.a({noOptions:this.i18n("There are no portals available.")},this.i18n),images:new s.a({noOptions:this.i18n("There are no images available.")},this.i18n),initiatorImage:new s.a({noOptions:this.i18n("There are no images available. Please make sure you add an image to the target.")},this.i18n),groupInitiator:new s.a({noOptions:this.i18n("There are no initiators available. Please make sure you add an initiator to the target.")},this.i18n)},this.IQN_REGEX=/^iqn\.(19|20)\d\d-(0[1-9]|1[0-2])\.\D{2,3}(\.[A-Za-z0-9-]+)+(:[A-Za-z0-9-\.]+)*$/,this.USER_REGEX=/^[\w\.:@_-]{8,64}$/,this.PASSWORD_REGEX=/^[\w@\-_\/]{12,16}$/,this.resource=this.i18n("target")}ngOnInit(){const l=[this.iscsiService.listTargets(),this.rbdService.list(),this.iscsiService.portals(),this.iscsiService.settings(),this.iscsiService.version()];this.router.url.startsWith("/block/iscsi/targets/edit")&&(this.isEdit=!0,this.route.params.subscribe(n=>{this.target_iqn=decodeURIComponent(n.target_iqn),l.push(this.iscsiService.getTarget(this.target_iqn))})),this.action=this.isEdit?this.actionLabels.EDIT:this.actionLabels.CREATE,Object(u.a)(l).subscribe(l=>{const n=i(l[0]).filter(l=>l.target_iqn!==this.target_iqn).flatMap(l=>l.disks).map(l=>`${l.pool}/${l.image}`).value();"api_version"in l[3]&&(this.api_version=l[3].api_version),this.minimum_gateways=l[3].config.minimum_gateways,this.target_default_controls=l[3].target_default_controls,this.target_controls_limits=l[3].target_controls_limits,this.disk_default_controls=l[3].disk_default_controls,this.disk_controls_limits=l[3].disk_controls_limits,this.backstores=l[3].backstores,this.default_backstore=l[3].default_backstore,this.unsupported_rbd_features=l[3].unsupported_rbd_features,this.required_rbd_features=l[3].required_rbd_features,this.imagesAll=i(l[1]).flatMap(l=>l.value).filter(l=>!l.namespace&&-1===n.indexOf(`${l.pool_name}/${l.name}`)&&0!==this.getValidBackstores(l).length).value(),this.imagesSelections=this.imagesAll.map(l=>new a.a(!1,`${l.pool_name}/${l.name}`,""));const e=[];l[2].forEach(l=>{l.ip_addresses.forEach(n=>{e.push(new a.a(!1,l.name+":"+n,""))})}),this.portalsSelections=[...e],this.cephIscsiConfigVersion=l[4].ceph_iscsi_config_version,this.createForm(),l[5]&&this.resolveModel(l[5])})}createForm(){if(this.targetForm=new r.a({target_iqn:new t.i("iqn.2001-07.com.ceph:"+Date.now(),{validators:[t.B.required,t.B.pattern(this.IQN_REGEX)]}),target_controls:new t.i({}),portals:new t.i([],{validators:[d.a.custom("minGateways",l=>i.uniq(l.map(l=>l.split(":")[0])).length<Math.max(1,this.minimum_gateways))]}),disks:new t.i([],{validators:[d.a.custom("dupLunId",l=>{const n=this.getLunIds(l);return n.length!==i.uniq(n).length}),d.a.custom("dupWwn",l=>{const n=this.getWwns(l);return n.length!==i.uniq(n).length})]}),initiators:new t.f([]),groups:new t.f([]),acl_enabled:new t.i(!1)}),this.cephIscsiConfigVersion>10){const l=new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")});this.setAuthValidator(l),this.targetForm.addControl("auth",l)}}resolveModel(l){this.targetForm.patchValue({target_iqn:l.target_iqn,target_controls:l.target_controls,acl_enabled:l.acl_enabled}),this.cephIscsiConfigVersion>10&&this.targetForm.patchValue({auth:l.auth});const n=[];i.forEach(l.portals,l=>{n.push(`${l.host}:${l.ip}`)}),this.targetForm.patchValue({portals:n});const e=[];i.forEach(l.disks,l=>{const n=`${l.pool}/${l.image}`;e.push(n),this.imagesSettings[n]={backstore:l.backstore},this.imagesSettings[n][l.backstore]=l.controls,"lun"in l&&(this.imagesSettings[n].lun=l.lun),"wwn"in l&&(this.imagesSettings[n].wwn=l.wwn),this.onImageSelection({option:{name:n,selected:!0}})}),this.targetForm.patchValue({disks:e}),i.forEach(l.clients,l=>{const n=this.addInitiator();l.luns=i.map(l.luns,l=>`${l.pool}/${l.image}`),n.patchValue(l)}),i.forEach(l.groups,l=>{const n=this.addGroup();l.disks=i.map(l.disks,l=>`${l.pool}/${l.image}`),n.patchValue(l),i.forEach(l.members,l=>{this.onGroupMemberSelection({option:new a.a(!0,l,"")})})})}hasAdvancedSettings(l){return Object.values(l).length>0}get portals(){return this.targetForm.get("portals")}onPortalSelection(){this.portals.setValue(this.portals.value)}removePortal(l,n){return this.portalsSelections.forEach(l=>{l.name===n&&(l.selected=!1)}),this.portals.value.splice(l,1),this.portals.setValue(this.portals.value),!1}get disks(){return this.targetForm.get("disks")}removeImage(l,n){return this.imagesSelections.forEach(l=>{l.name===n&&(l.selected=!1)}),this.disks.value.splice(l,1),this.removeImageRefs(n),this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1}),!1}removeImageRefs(l){this.initiators.controls.forEach(n=>{const e=n.value.luns.filter(n=>n!==l);n.get("luns").setValue(e)}),this.groups.controls.forEach(n=>{const e=n.value.disks.filter(n=>n!==l);n.get("disks").setValue(e)}),i.forEach(this.imagesInitiatorSelections,(n,e)=>{this.imagesInitiatorSelections[e]=n.filter(n=>n.name!==l)}),i.forEach(this.groupDiskSelections,(n,e)=>{this.groupDiskSelections[e]=n.filter(n=>n.name!==l)})}getDefaultBackstore(l){let n=this.default_backstore;const e=this.getImageById(l);return this.validFeatures(e,this.default_backstore)||this.backstores.forEach(l=>{l!==this.default_backstore&&this.validFeatures(e,l)&&(n=l)}),n}isLunIdInUse(l,n){const e=this.disks.value.filter(l=>l!==n);return this.getLunIds(e).includes(l)}getLunIds(l){return i.map(l,l=>this.imagesSettings[l].lun)}nextLunId(l){const n=this.disks.value.filter(n=>n!==l),e=this.getLunIds(n);let t=0;for(;e.includes(t);)t++;return t}getWwns(l){return i.map(l,l=>this.imagesSettings[l].wwn).filter(l=>i.isString(l)&&""!==l)}onImageSelection(l){const n=l.option;if(n.selected){if(this.imagesSettings[n.name])this.isLunIdInUse(this.imagesSettings[n.name].lun,n.name)&&(this.imagesSettings[n.name].lun=this.nextLunId(n.name));else{const l=this.getDefaultBackstore(n.name);this.imagesSettings[n.name]={backstore:l,lun:this.nextLunId(n.name)},this.imagesSettings[n.name][l]={}}i.forEach(this.imagesInitiatorSelections,(l,e)=>{l.push(new a.a(!1,n.name,"")),this.imagesInitiatorSelections[e]=[...l]}),i.forEach(this.groupDiskSelections,(l,e)=>{l.push(new a.a(!1,n.name,"")),this.groupDiskSelections[e]=[...l]})}else this.removeImageRefs(n.name);this.targetForm.get("disks").updateValueAndValidity({emitEvent:!1})}get initiators(){return this.targetForm.get("initiators")}addInitiator(){const l=new r.a({client_iqn:new t.i("",{validators:[t.B.required,d.a.custom("notUnique",l=>{const n=this.initiators.controls.reduce((function(l,n){return l.concat(n.value.client_iqn)}),[]);return n.indexOf(l)!==n.lastIndexOf(l)}),t.B.pattern(this.IQN_REGEX)]}),auth:new r.a({user:new t.i(""),password:new t.i(""),mutual_user:new t.i(""),mutual_password:new t.i("")}),luns:new t.i([]),cdIsInGroup:new t.i(!1)});this.setAuthValidator(l),this.initiators.push(l),i.forEach(this.groupMembersSelections,(l,n)=>{l.push(new a.a(!1,"","")),this.groupMembersSelections[n]=[...l]});const n=i.map(this.targetForm.getValue("disks"),l=>new a.a(!1,l,""));return this.imagesInitiatorSelections.push(n),l}setAuthValidator(l){d.a.validateIf(l.get("user"),()=>l.getValue("password")||l.getValue("mutual_user")||l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[l.get("password"),l.get("mutual_user"),l.get("mutual_password")]),d.a.validateIf(l.get("password"),()=>l.getValue("user")||l.getValue("mutual_user")||l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("mutual_user"),l.get("mutual_password")]),d.a.validateIf(l.get("mutual_user"),()=>l.getValue("mutual_password"),[t.B.required],[t.B.pattern(this.USER_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_password")]),d.a.validateIf(l.get("mutual_password"),()=>l.getValue("mutual_user"),[t.B.required],[t.B.pattern(this.PASSWORD_REGEX)],[l.get("user"),l.get("password"),l.get("mutual_user")])}removeInitiator(l){const n=this.initiators.value[l];this.initiators.removeAt(l),i.forEach(this.groupMembersSelections,(n,e)=>{n.splice(l,1),this.groupMembersSelections[e]=[...n]}),this.groups.controls.forEach(l=>{const e=l.value.members.filter(l=>l!==n.client_iqn);l.get("members").setValue(e)}),this.imagesInitiatorSelections.splice(l,1)}updatedInitiatorSelector(){this.initiators.controls.forEach(l=>{l.get("client_iqn").updateValueAndValidity({emitEvent:!1})}),i.forEach(this.groupMembersSelections,(l,n)=>{i.forEach(l,(l,n)=>{const e=l.name;l.name=this.initiators.controls[n].value.client_iqn,this.groups.controls.forEach(n=>{const t=n.value.members,i=t.indexOf(e);-1!==i&&(t[i]=l.name),n.get("members").setValue(t)})}),this.groupMembersSelections[n]=[...this.groupMembersSelections[n]]})}removeInitiatorImage(l,n,e,t){const i=l.getValue("luns");return i.splice(n,1),l.patchValue({luns:i}),this.imagesInitiatorSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),!1}get groups(){return this.targetForm.get("groups")}addGroup(){const l=new r.a({group_id:new t.i("",{validators:[t.B.required]}),members:new t.i([]),disks:new t.i([])});this.groups.push(l);const n=i.map(this.targetForm.getValue("disks"),l=>new a.a(!1,l,""));this.groupDiskSelections.push(n);const e=i.map(this.initiators.value,l=>new a.a(!1,l.client_iqn,"",!l.cdIsInGroup));return this.groupMembersSelections.push(e),l}removeGroup(l){this.groups.removeAt(l),this.groupDiskSelections.splice(l,1)}onGroupMemberSelection(l){const n=l.option;let e;this.initiators.controls.forEach((l,t)=>{l.value.client_iqn===n.name&&(l.patchValue({luns:[]}),l.get("cdIsInGroup").setValue(n.selected),e=t)}),i.forEach(this.groupMembersSelections,l=>{l[e].enabled=!n.selected})}removeGroupInitiator(l,n,e){const t=l.getValue("members")[n];l.getValue("members").splice(n,1),this.groupMembersSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),this.groupMembersSelections[e]=[...this.groupMembersSelections[e]],this.onGroupMemberSelection({option:new a.a(!1,t,"")})}removeGroupDisk(l,n,e){const t=l.getValue("disks")[n];l.getValue("disks").splice(n,1),this.groupDiskSelections[e].forEach(l=>{l.name===t&&(l.selected=!1)}),this.groupDiskSelections[e]=[...this.groupDiskSelections[e]]}submit(){const l=i.cloneDeep(this.targetForm.value),n={target_iqn:this.targetForm.getValue("target_iqn"),target_controls:this.targetForm.getValue("target_controls"),acl_enabled:this.targetForm.getValue("acl_enabled"),portals:[],disks:[],clients:[],groups:[]};if(this.cephIscsiConfigVersion>10){const l=this.targetForm.get("auth");l.getValue("user")||l.get("user").setValue(""),l.getValue("password")||l.get("password").setValue(""),l.getValue("mutual_user")||l.get("mutual_user").setValue(""),l.getValue("mutual_password")||l.get("mutual_password").setValue("");const e=this.targetForm.getValue("acl_enabled");n.auth={user:e?"":l.getValue("user"),password:e?"":l.getValue("password"),mutual_user:e?"":l.getValue("mutual_user"),mutual_password:e?"":l.getValue("mutual_password")}}let e;l.disks.forEach(l=>{const e=l.split("/"),t=this.imagesSettings[l].backstore;n.disks.push({pool:e[0],image:e[1],backstore:t,controls:this.imagesSettings[l][t],lun:this.imagesSettings[l].lun,wwn:this.imagesSettings[l].wwn})}),l.portals.forEach(l=>{const e=l.indexOf(":");n.portals.push({host:l.substring(0,e),ip:l.substring(e+1)})}),n.acl_enabled&&(l.initiators.forEach(l=>{l.auth.user||(l.auth.user=""),l.auth.password||(l.auth.password=""),l.auth.mutual_user||(l.auth.mutual_user=""),l.auth.mutual_password||(l.auth.mutual_password=""),delete l.cdIsInGroup;const n=[];l.luns.forEach(l=>{const e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.luns=n}),n.clients=l.initiators),n.acl_enabled&&(l.groups.forEach(l=>{const n=[];l.disks.forEach(l=>{const e=l.split("/");n.push({pool:e[0],image:e[1]})}),l.disks=n}),n.groups=l.groups),this.isEdit?(n.new_target_iqn=n.target_iqn,n.target_iqn=this.target_iqn,e=this.taskWrapper.wrapTaskAroundCall({task:new c.a("iscsi/target/edit",{target_iqn:n.target_iqn}),call:this.iscsiService.updateTarget(this.target_iqn,n)})):e=this.taskWrapper.wrapTaskAroundCall({task:new c.a("iscsi/target/create",{target_iqn:n.target_iqn}),call:this.iscsiService.createTarget(n)}),e.subscribe(void 0,()=>{this.targetForm.setErrors({cdSubmitButton:!0})},()=>this.router.navigate(["/block/iscsi/targets"]))}targetSettingsModal(){const l={target_controls:this.targetForm.get("target_controls"),target_default_controls:this.target_default_controls,target_controls_limits:this.target_controls_limits};this.modalRef=this.modalService.show(p.a,{initialState:l})}imageSettingsModal(l){const n={imagesSettings:this.imagesSettings,image:l,api_version:this.api_version,disk_default_controls:this.disk_default_controls,disk_controls_limits:this.disk_controls_limits,backstores:this.getValidBackstores(this.getImageById(l)),control:this.targetForm.get("disks")};this.modalRef=this.modalService.show(m.a,{initialState:n})}validFeatures(l,n){const e=l.features,t=this.required_rbd_features[n];return(e&t)===t&&0==(e&this.unsupported_rbd_features[n])}getImageById(l){return this.imagesAll.find(n=>l===`${n.pool_name}/${n.name}`)}getValidBackstores(l){return this.backstores.filter(n=>this.validFeatures(l,n))}}},jMP8:function(l,n,e){"use strict";e.d(n,"a",(function(){return i}));var t=e("s7LF");e("QFaf");class i{ngOnInit(){const l=[];"min"in this.limits&&l.push(t.B.min(this.limits.min)),"max"in this.limits&&l.push(t.B.max(this.limits.max)),this.settingsForm.get(this.setting).setValidators(l)}}},"k/xb":function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e.d(n,"b",(function(){return S})),e.d(n,"c",(function(){return u})),e.d(n,"d",(function(){return s})),e.d(n,"j",(function(){return a})),e.d(n,"k",(function(){return o})),e.d(n,"l",(function(){return r})),e.d(n,"m",(function(){return d})),e.d(n,"n",(function(){return c})),e.d(n,"o",(function(){return m})),e.d(n,"p",(function(){return p})),e.d(n,"q",(function(){return h})),e.d(n,"e",(function(){return g})),e.d(n,"f",(function(){return f})),e.d(n,"g",(function(){return v})),e.d(n,"h",(function(){return b})),e.d(n,"i",(function(){return C}));var t=e("sne2");e("Vhfg"),e("gr3l"),e("e/kN"),e("roDX"),e("cxJu"),e("MyVl"),e("5GyT"),e("Z5tW"),e("WkyA"),e("chpi");class i{}const u={breadcrumbs:"Images"},s={breadcrumbs:"Namespaces"},a={breadcrumbs:"Trash"},o={breadcrumbs:"Overall Performance"},r={breadcrumbs:t.a.CREATE},d={breadcrumbs:t.a.EDIT},c={breadcrumbs:t.a.CLONE},m={breadcrumbs:t.a.COPY},p={breadcrumbs:t.a.COPY},h={breadcrumbs:"Mirroring"},g={breadcrumbs:"iSCSI"},f={breadcrumbs:"Overview"},v={breadcrumbs:"Targets"},b={breadcrumbs:t.a.CREATE},C={breadcrumbs:t.a.EDIT};class S{}},kccj:function(l,n,e){"use strict";e.d(n,"a",(function(){return t}));class t{}},l7Jr:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("mXUL"),u=e("+gVj"),s=e("eF8U"),a=e("jMP8"),o=e("EEJc"),r=e("ajRT"),d=e("s7LF"),c=e("SVse"),m=e("gp3X"),p=e("sb0X"),h=e("KVJa"),g=e("Z21x"),f=e("sne2"),v=e("a6qe"),b=e("LqlI"),C=e("my5R");e.d(n,"a",(function(){return w}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](1,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"cd-iscsi-setting",[],null,null,null,s.b,s.a)),t["ɵdid"](6,114688,null,0,a.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,6,0,e.settingsForm,t["ɵnov"](n.parent,7),n.context.$implicit.key,e.getTargetControlLimits(n.context.$implicit.key))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,23,"cd-modal",[],null,null,null,o.c,o.b)),t["ɵdid"](1,49152,null,0,r.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Advanced Settings"])),(l()(),t["ɵeld"](4,0,null,1,19,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,18,"form",[["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,d.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,d.d,null,[d.l]),t["ɵdid"](9,16384,null,0,d.s,[[4,d.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["ɵand"](16777216,null,null,2,null,_)),t["ɵdid"](15,278528,null,0,c.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["ɵpid"](0,c.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["ɵeld"](17,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](18,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](19,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t}),m.b,m.a)),t["ɵdid"](20,114688,null,0,p.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Confirm"])),(l()(),t["ɵeld"](22,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),t["ɵdid"](23,49152,null,0,g.a,[c.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.settingsForm),l(n,10,0,e.settingsForm),l(n,15,0,t["ɵunv"](n,15,0,t["ɵnov"](n,16).transform(e.settingsForm.controls))),l(n,20,0,e.settingsForm),l(n,23,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending)}))}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-iqn-settings-modal",[],null,null,null,y,S)),t["ɵdid"](1,114688,null,0,v.a,[b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var w=t["ɵccf"]("cd-iscsi-target-iqn-settings-modal",v.a,R,{},{},[])},"lz+O":function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("+gVj"),s=e("SVse"),a=e("EEJc"),o=e("ajRT"),r=e("mXUL"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("sne2"),g=e("WxU5"),f=e("aexS"),v=e("F83c"),b=e("LqlI"),C=e("2EZI"),S=e("Ekvf"),_=e("kn/O");e.d(n,"a",(function(){return N}));var y=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","poolName"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,1)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,1)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,1)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.e,[t.Renderer2,t.ElementRef,[2,i.b]],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"poolName"),l(n,6,0,"poolName")}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","poolName"],["id","poolName"],["name","poolName"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,1).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,1).onTouched()&&i),i}),null,null)),t["ɵdid"](1,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](3,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](5,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](6,16384,null,0,u.h,[[3,i.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](7,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),t["ɵdid"](8,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](9,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](-1,null,["All"])),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](12,278528,null,0,s.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"poolName"),l(n,6,0,"poolName"),l(n,8,0,""),l(n,9,0,""),l(n,12,0,e.pools)}),(function(l,n){l(n,0,0,t["ɵnov"](n,5).ngClassUntouched,t["ɵnov"](n,5).ngClassTouched,t["ɵnov"](n,5).ngClassPristine,t["ɵnov"](n,5).ngClassDirty,t["ɵnov"](n,5).ngClassValid,t["ɵnov"](n,5).ngClassInvalid,t["ɵnov"](n,5).ngClassPending,t["ɵnov"](n,6).validClass,t["ɵnov"](n,6).invalidClass)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,41,"cd-modal",[],null,null,null,a.c,a.b)),t["ɵdid"](1,49152,null,0,o.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Purge Trash"])),(l()(),t["ɵeld"](4,0,null,1,37,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,36,"form",[["class","form"],["name","purgeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,23,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,12,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To purge, select one or"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](16,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["All"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](19,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["pools and click"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](22,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Purge Trash"])),(l()(),t["ɵted"](-1,null,[".  "])),(l()(),t["ɵeld"](25,0,null,null,9,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,r.b,r.a)),t["ɵdid"](26,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](29,0,null,0,1,"label",[["class","col-form-label mx-auto"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Pool:"])),(l()(),t["ɵand"](16777216,null,0,1,null,R)),t["ɵdid"](32,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,I)),t["ɵdid"](34,16384,null,0,s.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](35,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](36,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](37,0,null,null,2,"cd-submit-button",[["id","purgeFormButton"]],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.purge()&&t),t}),d.b,d.a)),t["ɵdid"](38,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Purge Trash"])),(l()(),t["ɵeld"](40,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](41,49152,null,0,p.a,[s.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.purgeForm),l(n,10,0,e.purgeForm),l(n,26,0),l(n,32,0,!e.poolPermission.read),l(n,34,0,e.poolPermission.read),l(n,38,0,e.purgeForm),l(n,41,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,25,0,t["ɵnov"](n,26).hasErrors,t["ɵnov"](n,26).hasSuccess)}))}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-rbd-trash-purge-modal",[],null,null,null,k,y)),t["ɵdid"](1,114688,null,0,g.a,[f.a,v.a,b.a,C.a,S.a,_.a],null,null)],(function(l,n){l(n,1,0)}),null)}var N=t["ɵccf"]("cd-rbd-trash-purge-modal",g.a,E,{},{},[])},my5R:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("mrSG"),i=e("IheW"),u=e("xTzq"),s=e("8Y7J"),a=e("pL04");let o=(()=>{let l=class{constructor(l){this.http=l}listTargets(){return this.http.get("api/iscsi/target")}getTarget(l){return this.http.get(`api/iscsi/target/${l}`)}updateTarget(l,n){return this.http.put(`api/iscsi/target/${l}`,n,{observe:"response"})}status(){return this.http.get("ui-api/iscsi/status")}settings(){return this.http.get("ui-api/iscsi/settings")}version(){return this.http.get("ui-api/iscsi/version")}portals(){return this.http.get("ui-api/iscsi/portals")}createTarget(l){return this.http.post("api/iscsi/target",l,{observe:"response"})}deleteTarget(l){return this.http.delete(`api/iscsi/target/${l}`,{observe:"response"})}getDiscovery(){return this.http.get("api/iscsi/discoveryauth")}updateDiscovery(l){return this.http.put("api/iscsi/discoveryauth",l)}overview(){return this.http.get("ui-api/iscsi/overview")}};return l.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new l(s["ɵɵinject"](i.c))},token:l,providedIn:a.a}),l=t.__decorate([u.a,t.__metadata("design:paramtypes",[i.c])],l),l})()},nP0W:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("s7LF"),u=e("EEJc"),s=e("ajRT"),a=e("+gVj"),o=e("mXUL"),r=e("SVse"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("sne2"),g=e("aa9H"),f=e("LqlI"),v=e("GiVz"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return I}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,i.v,[t.ElementRef,t.Renderer2,[2,i.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,i.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.id),l(n,2,0,n.context.$implicit.id)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Peer clusters must be removed prior to disabling mirror."]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,45,"cd-modal",[],null,null,null,u.c,u.b)),t["ɵdid"](1,49152,null,0,s.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit pool mirror mode"])),(l()(),t["ɵeld"](4,0,null,1,41,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,40,"form",[["class","form"],["name","editModeForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,i.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,i.d,null,[i.l]),t["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,27,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,8,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,7,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["To edit the mirror mode for pool  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](16,null,["",""])),(l()(),t["ɵted"](-1,null,[", select a new mode from the list and click  "])),(l()(),t["ɵeld"](18,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Update"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](21,0,null,null,17,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](22,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](25,0,null,0,2,"label",[["class","col-form-label"],["for","mirrorMode"]],null,null,null,null,null)),(l()(),t["ɵeld"](26,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Mode"])),(l()(),t["ɵeld"](28,0,null,0,8,"select",[["class","form-control custom-select"],["formControlName","mirrorMode"],["id","mirrorMode"],["name","mirrorMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,29).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,29).onTouched()&&i),i}),null,null)),t["ɵdid"](29,16384,null,0,i.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),t["ɵdid"](31,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,i.q,null,[i.j]),t["ɵdid"](33,16384,null,0,i.r,[[4,i.q]],null,null),t["ɵdid"](34,16384,null,0,a.h,[[3,i.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,_)),t["ɵdid"](36,278528,null,0,r.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,0,1,null,y)),t["ɵdid"](38,16384,null,0,r.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](39,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](40,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](41,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),d.b,d.a)),t["ɵdid"](42,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Update"])),(l()(),t["ɵeld"](44,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](45,49152,null,0,p.a,[r.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editModeForm),l(n,10,0,e.editModeForm),l(n,22,0),l(n,31,0,"mirrorMode"),l(n,34,0,"mirrorMode"),l(n,36,0,e.mirrorModes),l(n,38,0,e.editModeForm.showError("mirrorMode",t["ɵnov"](n,7),"cannotDisable")),l(n,42,0,e.editModeForm),l(n,45,0,"Cancel",e.modalRef.hide)}),(function(l,n){var e=n.component;l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,16,0,e.poolName),l(n,21,0,t["ɵnov"](n,22).hasErrors,t["ɵnov"](n,22).hasSuccess),l(n,28,0,t["ɵnov"](n,33).ngClassUntouched,t["ɵnov"](n,33).ngClassTouched,t["ɵnov"](n,33).ngClassPristine,t["ɵnov"](n,33).ngClassDirty,t["ɵnov"](n,33).ngClassValid,t["ɵnov"](n,33).ngClassInvalid,t["ɵnov"](n,33).ngClassPending,t["ɵnov"](n,34).validClass,t["ɵnov"](n,34).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-pool-edit-mode-modal",[],null,null,null,R,S)),t["ɵdid"](1,245760,null,0,g.a,[f.a,v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var I=t["ɵccf"]("cd-pool-edit-mode-modal",g.a,w,{},{},[])},nhAp:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("mXUL"),u=e("+gVj"),s=e("s7LF"),a=e("SVse"),o=e("eF8U"),r=e("jMP8"),d=e("uYzU"),c=e("EEJc"),m=e("ajRT"),p=e("gp3X"),h=e("sb0X"),g=e("KVJa"),f=e("Z21x"),v=e("sne2"),b=e("Z4cD"),C=e("LqlI"),S=e("my5R");e.d(n,"a",(function(){return T}));var _=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["This field is required."]))],null,null)}function R(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,33,"span",[],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Identifier"])),(l()(),t["ɵeld"](3,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](4,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](7,0,null,0,12,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](8,0,null,null,1,"label",[["class","col-form-label required"],["for","lun"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["lun"])),(l()(),t["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","lun"],["id","lun"],["name","lun"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,11)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,11).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,11)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,11)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==t["ɵnov"](l,12).onChange(e.target.value)&&i),"input"===n&&(i=!1!==t["ɵnov"](l,12).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,12).onTouched()&&i),i}),null,null)),t["ɵdid"](11,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵdid"](12,16384,null,0,s.w,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,s.p,(function(l,n){return[l,n]}),[s.e,s.w]),t["ɵdid"](14,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](16,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](17,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,y)),t["ɵdid"](19,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](20,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](21,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,3,{FormControlNames:1}),t["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),t["ɵeld"](24,0,null,0,9,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](25,0,null,null,1,"label",[["class","col-form-label"],["for","wwn"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["wwn"])),(l()(),t["ɵeld"](27,0,null,null,6,"input",[["class","form-control"],["formControlName","wwn"],["id","wwn"],["name","wwn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,28)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,28).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,28)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,28)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](28,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](30,671744,[[3,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](32,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](33,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){var e=n.component;l(n,4,0),l(n,14,0,"lun"),l(n,17,0,"lun"),l(n,19,0,e.settingsForm.showError("lun",t["ɵnov"](n.parent,12),"required")),l(n,21,0),l(n,30,0,"wwn"),l(n,33,0,"wwn")}),(function(l,n){l(n,3,0,t["ɵnov"](n,4).hasErrors,t["ɵnov"](n,4).hasSuccess),l(n,10,0,t["ɵnov"](n,16).ngClassUntouched,t["ɵnov"](n,16).ngClassTouched,t["ɵnov"](n,16).ngClassPristine,t["ɵnov"](n,16).ngClassDirty,t["ɵnov"](n,16).ngClassValid,t["ɵnov"](n,16).ngClassInvalid,t["ɵnov"](n,16).ngClassPending,t["ɵnov"](n,17).validClass,t["ɵnov"](n,17).invalidClass),l(n,20,0,t["ɵnov"](n,21).hasErrors,t["ɵnov"](n,21).hasSuccess),l(n,27,0,t["ɵnov"](n,32).ngClassUntouched,t["ɵnov"](n,32).ngClassTouched,t["ɵnov"](n,32).ngClassPristine,t["ɵnov"](n,32).ngClassDirty,t["ɵnov"](n,32).ngClassValid,t["ɵnov"](n,32).ngClassInvalid,t["ɵnov"](n,32).ngClassPending,t["ɵnov"](n,33).validClass,t["ɵnov"](n,33).invalidClass)}))}function w(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"option",[],null,null,null,null,null)),t["ɵdid"](1,147456,null,0,s.v,[t.ElementRef,t.Renderer2,[2,s.A]],{value:[0,"value"]},null),t["ɵdid"](2,147456,null,0,s.F,[t.ElementRef,t.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),t["ɵted"](3,null,["",""])),t["ɵppd"](4,1)],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){var e=t["ɵunv"](n,3,0,l(n,4,0,t["ɵnov"](n.parent,0),n.context.$implicit));l(n,3,0,e)}))}function I(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,6,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](1,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,7,{FormControlNames:1}),t["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),t["ɵeld"](4,0,null,0,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"cd-iscsi-setting",[],null,null,null,o.b,o.a)),t["ɵdid"](6,114688,null,0,r.a,[],{settingsForm:[0,"settingsForm"],formDir:[1,"formDir"],setting:[2,"setting"],limits:[3,"limits"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,6,0,e.settingsForm,t["ɵnov"](n.parent.parent.parent,12),n.context.$implicit.key,e.getDiskControlLimits(n.parent.parent.context.$implicit,n.context.$implicit.key))}),(function(l,n){l(n,0,0,t["ɵnov"](n,1).hasErrors,t["ɵnov"](n,1).hasSuccess)}))}function k(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,2,null,I)),t["ɵdid"](2,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),t["ɵpid"](0,a.KeyValuePipe,[t.KeyValueDiffers]),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){var e=n.component;l(n,2,0,t["ɵunv"](n,2,0,t["ɵnov"](n,3).transform(e.disk_default_controls[n.parent.context.$implicit])))}),null)}function E(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),t["ɵand"](16777216,null,null,1,null,k)),t["ɵdid"](2,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,2,0,n.component.settingsForm.value.backstore===n.context.$implicit)}),null)}function N(l){return t["ɵvid"](0,[t["ɵpid"](0,d.a,[]),(l()(),t["ɵeld"](1,0,null,null,46,"cd-modal",[],null,null,null,c.c,c.b)),t["ɵdid"](2,49152,null,0,m.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](3,0,null,0,5,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Configure"])),(l()(),t["ɵted"](-1,null,["  "])),(l()(),t["ɵeld"](7,0,null,null,1,"small",[],null,null,null,null,null)),(l()(),t["ɵted"](8,null,["",""])),(l()(),t["ɵeld"](9,0,null,1,38,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](10,0,null,null,37,"form",[["class","form"],["name","settingsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,12).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,12).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,15).onSubmit()&&i),i}),null,null)),t["ɵdid"](11,16384,null,0,s.G,[],null,null),t["ɵdid"](12,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](14,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](15,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](16,0,null,null,24,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](17,0,null,null,1,"p",[["class","alert-warning"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Changing these parameters from their default values is usually not necessary."])),(l()(),t["ɵand"](16777216,null,null,1,null,R)),t["ɵdid"](20,16384,null,0,a.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵeld"](21,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Settings"])),(l()(),t["ɵeld"](23,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,i.b,i.a)),t["ɵdid"](24,1163264,null,2,u.c,[t.ElementRef,u.g],null,null),t["ɵqud"](603979776,5,{FormControlNames:1}),t["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),t["ɵeld"](27,0,null,0,11,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),t["ɵeld"](28,0,null,null,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Backstore"])),(l()(),t["ɵeld"](30,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","backstore"],["id","backstore"],["name","backstore"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==t["ɵnov"](l,31).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,31).onTouched()&&i),i}),null,null)),t["ɵdid"](31,16384,null,0,s.A,[t.Renderer2,t.ElementRef],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.A]),t["ɵdid"](33,671744,[[5,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](35,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](36,16384,null,0,u.h,[[3,s.d],u.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,w)),t["ɵdid"](38,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,E)),t["ɵdid"](40,278528,null,0,a.NgForOf,[t.ViewContainerRef,t.TemplateRef,t.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),t["ɵeld"](41,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](42,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](43,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.save()&&t),t}),p.b,p.a)),t["ɵdid"](44,114688,null,0,h.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Confirm"])),(l()(),t["ɵeld"](46,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,g.b,g.a)),t["ɵdid"](47,49152,null,0,f.a,[a.Location,v.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,2,0,e.modalRef),l(n,12,0,e.settingsForm),l(n,15,0,e.settingsForm),l(n,20,0,e.api_version>=1),l(n,24,0),l(n,33,0,"backstore"),l(n,36,0,"backstore"),l(n,38,0,e.backstores),l(n,40,0,e.backstores),l(n,44,0,e.settingsForm),l(n,47,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,8,0,n.component.image),l(n,10,0,t["ɵnov"](n,14).ngClassUntouched,t["ɵnov"](n,14).ngClassTouched,t["ɵnov"](n,14).ngClassPristine,t["ɵnov"](n,14).ngClassDirty,t["ɵnov"](n,14).ngClassValid,t["ɵnov"](n,14).ngClassInvalid,t["ɵnov"](n,14).ngClassPending),l(n,23,0,t["ɵnov"](n,24).hasErrors,t["ɵnov"](n,24).hasSuccess),l(n,30,0,t["ɵnov"](n,35).ngClassUntouched,t["ɵnov"](n,35).ngClassTouched,t["ɵnov"](n,35).ngClassPristine,t["ɵnov"](n,35).ngClassDirty,t["ɵnov"](n,35).ngClassValid,t["ɵnov"](n,35).ngClassInvalid,t["ɵnov"](n,35).ngClassPending,t["ɵnov"](n,36).validClass,t["ɵnov"](n,36).invalidClass)}))}function F(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-image-settings-modal",[],null,null,null,N,_)),t["ɵdid"](1,114688,null,0,b.a,[C.a,S.a],null,null)],(function(l,n){l(n,1,0)}),null)}var T=t["ɵccf"]("cd-iscsi-target-image-settings-modal",b.a,F,{},{},[])},o8EM:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("PhyI"),i=e("8Y7J"),u=e("GiVz");let s=(()=>{class l{constructor(l){this.i18n=l,this.sections=[{heading:this.i18n("Quality of Service"),class:"quality-of-service",options:[{name:"rbd_qos_bps_limit",displayName:this.i18n("BPS Limit"),description:this.i18n("The desired limit of IO bytes per second."),type:t.b.bps},{name:"rbd_qos_iops_limit",displayName:this.i18n("IOPS Limit"),description:this.i18n("The desired limit of IO operations per second."),type:t.b.iops},{name:"rbd_qos_read_bps_limit",displayName:this.i18n("Read BPS Limit"),description:this.i18n("The desired limit of read bytes per second."),type:t.b.bps},{name:"rbd_qos_read_iops_limit",displayName:this.i18n("Read IOPS Limit"),description:this.i18n("The desired limit of read operations per second."),type:t.b.iops},{name:"rbd_qos_write_bps_limit",displayName:this.i18n("Write BPS Limit"),description:this.i18n("The desired limit of write bytes per second."),type:t.b.bps},{name:"rbd_qos_write_iops_limit",displayName:this.i18n("Write IOPS Limit"),description:this.i18n("The desired limit of write operations per second."),type:t.b.iops},{name:"rbd_qos_bps_burst",displayName:this.i18n("BPS Burst"),description:this.i18n("The desired burst limit of IO bytes."),type:t.b.bps},{name:"rbd_qos_iops_burst",displayName:this.i18n("IOPS Burst"),description:this.i18n("The desired burst limit of IO operations."),type:t.b.iops},{name:"rbd_qos_read_bps_burst",displayName:this.i18n("Read BPS Burst"),description:this.i18n("The desired burst limit of read bytes."),type:t.b.bps},{name:"rbd_qos_read_iops_burst",displayName:this.i18n("Read IOPS Burst"),description:this.i18n("The desired burst limit of read operations."),type:t.b.iops},{name:"rbd_qos_write_bps_burst",displayName:this.i18n("Write BPS Burst"),description:this.i18n("The desired burst limit of write bytes."),type:t.b.bps},{name:"rbd_qos_write_iops_burst",displayName:this.i18n("Write IOPS Burst"),description:this.i18n("The desired burst limit of write operations."),type:t.b.iops}]}]}static getOptionsFromSections(l){return l.map(l=>l.options).reduce((l,n)=>l.concat(n))}filterConfigOptionsByName(n){return l.getOptionsFromSections(this.sections).filter(l=>l.name===n)}getOptionValueByName(l,n,e=""){const t=this.filterConfigOptionsByName(l);return 1===t.length?t.pop()[n]:e}getWritableSections(){return this.sections.map(l=>(l.options=l.options.filter(l=>!l.readOnly),l))}getOptionFields(){return l.getOptionsFromSections(this.sections)}getWritableOptionFields(){return l.getOptionsFromSections(this.getWritableSections())}getOptionByName(l){return this.filterConfigOptionsByName(l).pop()}getDisplayName(l){return this.getOptionValueByName(l,"displayName")}getDescription(l){return this.getOptionValueByName(l,"description")}}return l.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new l(i["ɵɵinject"](u.a))},token:l,providedIn:"root"}),l})()},puGn:function(l,n,e){"use strict";e.d(n,"a",(function(){return s}));var t=e("s7LF"),i=(e("XED3"),e("QFaf")),u=e("kvvV");e("kn/O");class s{constructor(l,n,e){this.modalRef=l,this.rbdMirroringService=n,this.taskWrapper=e,this.createForm()}createForm(){this.editSiteNameForm=new i.a({siteName:new t.i("",{})})}ngOnInit(){this.editSiteNameForm.get("siteName").setValue(this.siteName),this.rbdMirroringService.getSiteName().subscribe(l=>{this.editSiteNameForm.get("siteName").setValue(l.site_name)})}update(){this.taskWrapper.wrapTaskAroundCall({task:new u.a("rbd/mirroring/site_name/edit",{}),call:this.rbdMirroringService.setSiteName(this.editSiteNameForm.getValue("siteName"))}).subscribe(void 0,()=>this.editSiteNameForm.setErrors({cdSubmitButton:!0}),()=>{this.rbdMirroringService.refresh(),this.modalRef.hide()})}}},rFfW:function(l,n,e){"use strict";e.d(n,"a",(function(){return o}));var t=e("8Y7J"),i=e("s7LF"),u=e("oxzT"),s=e("QFaf"),a=e("PhyI");e("aXbf"),e("o8EM");class o{constructor(l,n){this.formatterService=l,this.rbdConfigurationService=n,this.changes=new t.EventEmitter,this.icons=u.a,this.ngDataReady=new t.EventEmitter,this.configurationType=a.b,this.sectionVisibility={}}ngOnInit(){const l=this.createConfigurationFormGroup();this.form.addControl("configuration",l),l.valueChanges.subscribe(()=>{this.changes.emit(this.getDirtyValues.bind(this))}),this.initializeData&&this.initializeData.subscribe(l=>{this.initialData=l.initialData;const n=l.sourceType;this.rbdConfigurationService.getWritableOptionFields().forEach(e=>{const t=l.initialData.filter(l=>l.name===e.name).pop();t&&t.source===n&&this.form.get(`configuration.${e.name}`).setValue(t.value)}),this.ngDataReady.emit()}),this.rbdConfigurationService.getWritableSections().forEach(l=>this.sectionVisibility[l.class]=!1)}getDirtyValues(l=!1,n){if(l&&!n)throw new Error("ProgrammingError: If local values shall be included, a proper localFieldType argument has to be provided, too");const e={};return this.rbdConfigurationService.getWritableOptionFields().forEach(t=>{const i=this.form.get("configuration").get(t.name);this.initialData&&this.initialData[t.name]===i.value||(i.dirty||l&&i.source===n)&&(e[t.name]=null===i.value?i.value:t.type===a.b.bps?this.formatterService.toBytes(i.value):t.type===a.b.milliseconds?this.formatterService.toMilliseconds(i.value):t.type===a.b.iops?this.formatterService.toIops(i.value):i.value)}),e}createConfigurationFormGroup(){const l=new s.a({});return this.rbdConfigurationService.getWritableOptionFields().forEach(n=>{let e;if(n.type!==a.b.milliseconds&&n.type!==a.b.iops&&n.type!==a.b.bps)throw new Error(`Type ${n.type} is unknown, you may need to add it to RbdConfiguration class`);e=new i.i(0,i.B.min(0)),l.addControl(n.name,e)}),l}reset(l){const n=this.form.get("configuration").get(l);n.disabled?(n.setValue(n.previousValue||0),n.enable(),n.previousValue||n.markAsPristine()):(n.previousValue=n.value,n.setValue(null),n.markAsDirty(),n.disable())}isDisabled(l){return this.form.get("configuration").get(l).disabled}toggleSectionVisibility(l){this.sectionVisibility[l]=!this.sectionVisibility[l]}}},roDX:function(l,n,e){"use strict";e.d(n,"a",(function(){return i})),e("my5R");var t=e("x38r");e("o4+5"),e("uYzU");class i{constructor(l,n,e,t){this.iscsiService=l,this.dimlessPipe=n,this.iscsiBackstorePipe=e,this.i18n=t,this.gateways=[],this.images=[]}ngOnInit(){this.gatewaysColumns=[{name:this.i18n("Name"),prop:"name"},{name:this.i18n("State"),prop:"state",flexGrow:1,cellTransformation:t.a.badge,customTemplateConfig:{map:{up:{class:"badge-success"},down:{class:"badge-danger"}}}},{name:this.i18n("# Targets"),prop:"num_targets"},{name:this.i18n("# Sessions"),prop:"num_sessions"}],this.imagesColumns=[{name:this.i18n("Pool"),prop:"pool"},{name:this.i18n("Image"),prop:"image"},{name:this.i18n("Backstore"),prop:"backstore",pipe:this.iscsiBackstorePipe},{name:this.i18n("Read Bytes"),prop:"stats_history.rd_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Write Bytes"),prop:"stats_history.wr_bytes",cellTemplate:this.iscsiSparklineTpl},{name:this.i18n("Read Ops"),prop:"stats.rd",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("Write Ops"),prop:"stats.wr",pipe:this.dimlessPipe,cellTemplate:this.iscsiPerSecondTpl},{name:this.i18n("A/O Since"),prop:"optimized_since",cellTemplate:this.iscsiRelativeDateTpl}]}refresh(){this.iscsiService.overview().subscribe(l=>{this.gateways=l.gateways,this.images=l.images,this.images.map(l=>(l.stats_history&&(l.stats_history.rd_bytes=l.stats_history.rd_bytes.map(l=>l[1]),l.stats_history.wr_bytes=l.stats_history.wr_bytes.map(l=>l[1])),l.cdIsBinary=!0,l))})}}},u2XS:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("SVse"),u=e("25BL"),s=e("uIqm"),a=e("LOMR"),o=e("MP8s"),r=e("fxL3"),d=e("gk6K"),c=e("3ris"),m=e("GiVz"),p=e("uYzU"),h=e("iExv");e.d(n,"b",(function(){return g})),e.d(n,"c",(function(){return _})),e.d(n,"a",(function(){return R}));var g=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function f(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""])),(l()(),t["ɵted"](-1,null,["   "])),(l()(),t["ɵeld"](4,0,null,null,6,"span",[["class","badge"]],null,null,null,null,null)),t["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[t.IterableDiffers,t.KeyValueDiffers,t.ElementRef,t.Renderer2]),t["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),t["ɵpad"](7,1),t["ɵpad"](8,1),t["ɵpod"](9,{"badge-success":0,"badge-danger":1}),(l()(),t["ɵted"](10,null,[" "," "]))],(function(l,n){var e=l(n,9,0,l(n,7,0,"logged_in").includes(n.context.$implicit.data.status),l(n,8,0,"logged_out").includes(n.context.$implicit.data.status));l(n,6,0,"badge",e)}),(function(l,n){l(n,0,0,n.context.$implicit.data.cdIcon),l(n,2,0,n.context.$implicit.data.name),l(n,10,0,n.context.$implicit.data.status)}))}function v(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,4,"div",[["class","col-6 metadata"]],null,null,null,null,null)),(l()(),t["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](2,null,["",""])),(l()(),t["ɵeld"](3,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,u.b,u.a)),t["ɵdid"](4,2867200,[[2,4],["detailTable",4]],0,s.a,[t.NgZone,t.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],limit:[3,"limit"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.data,e.columns,"flex",0)}),(function(l,n){l(n,2,0,n.component.title)}))}function b(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function C(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),t["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function S(l){return t["ɵvid"](0,[(l()(),t["ɵand"](16777216,null,null,1,null,b)),t["ɵdid"](1,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](16777216,null,null,1,null,C)),t["ɵdid"](3,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,void 0===n.context.row.default||n.context.row.default===n.context.row.current),l(n,3,0,void 0!==n.context.row.default&&n.context.row.default!==n.context.row.current)}),null)}function _(l){return t["ɵvid"](0,[t["ɵqud"](402653184,1,{highlightTpl:0}),t["ɵqud"](671088640,2,{content:0}),t["ɵqud"](671088640,3,{tree:0}),(l()(),t["ɵeld"](3,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(l()(),t["ɵeld"](4,0,null,null,10,"div",[["class","col-6"]],null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["iSCSI Topology"])),(l()(),t["ɵeld"](7,0,null,null,7,"tree-root",[],null,[[null,"updateData"],["body","keydown"],["body","mousedown"]],(function(l,n,e){var i=!0,u=l.component;return"body:keydown"===n&&(i=!1!==t["ɵnov"](l,9).onKeydown(e)&&i),"body:mousedown"===n&&(i=!1!==t["ɵnov"](l,9).onMousedown(e)&&i),"updateData"===n&&(i=!1!==u.onUpdateData()&&i),i}),a.b,a.a)),t["ɵprd"](131584,null,o.a,o.a,[]),t["ɵdid"](9,573440,[[3,4],["tree",4]],4,r.a,[o.a,d.a],{nodes:[0,"nodes"],options:[1,"options"]},{updateData:"updateData"}),t["ɵqud"](603979776,4,{loadingTemplate:0}),t["ɵqud"](603979776,5,{treeNodeTemplate:0}),t["ɵqud"](603979776,6,{treeNodeWrapperTemplate:0}),t["ɵqud"](603979776,7,{treeNodeFullTemplate:0}),(l()(),t["ɵand"](0,[[5,2],["treeNodeTemplate",2]],null,0,null,f)),(l()(),t["ɵand"](16777216,null,null,1,null,v)),t["ɵdid"](16,16384,null,0,i.NgIf,[t.ViewContainerRef,t.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),t["ɵand"](0,[[1,2],["highlightTpl",2]],null,0,null,S))],(function(l,n){var e=n.component;l(n,9,0,e.nodes,e.treeOptions),l(n,16,0,e.data)}),null)}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-iscsi-target-details",[],null,null,null,_,g)),t["ɵdid"](1,638976,null,0,c.a,[m.a,p.a,h.a],null,null)],(function(l,n){l(n,1,0)}),null)}var R=t["ɵccf"]("cd-iscsi-target-details",c.a,y,{selection:"selection",settings:"settings",cephIscsiConfigVersion:"cephIscsiConfigVersion"},{},[])},xvu0:function(l,n,e){"use strict";var t=e("8Y7J"),i=e("EEJc"),u=e("ajRT"),s=e("s7LF"),a=e("+gVj"),o=e("mXUL"),r=e("IZUe"),d=e("gp3X"),c=e("sb0X"),m=e("KVJa"),p=e("Z21x"),h=e("SVse"),g=e("sne2"),f=e("puGn"),v=e("LqlI"),b=e("XED3"),C=e("kn/O");e.d(n,"a",(function(){return R}));var S=t["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,38,"cd-modal",[],null,null,null,i.c,i.b)),t["ɵdid"](1,49152,null,0,u.a,[],{modalRef:[0,"modalRef"]},null),(l()(),t["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit site name"])),(l()(),t["ɵeld"](4,0,null,1,34,null,null,null,null,null,null,null)),(l()(),t["ɵeld"](5,0,null,null,33,"form",[["class","form"],["name","editSiteNameForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==t["ɵnov"](l,7).onSubmit(e)&&i),"reset"===n&&(i=!1!==t["ɵnov"](l,7).onReset()&&i),"submit"===n&&(i=!1!==t["ɵnov"](l,10).onSubmit()&&i),i}),null,null)),t["ɵdid"](6,16384,null,0,s.G,[],null,null),t["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),t["ɵprd"](2048,null,s.d,null,[s.l]),t["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),t["ɵdid"](10,16384,null,0,a.d,[],{formGroup:[0,"formGroup"]},null),(l()(),t["ɵeld"](11,0,null,null,20,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),t["ɵeld"](12,0,null,null,5,"p",[],null,null,null,null,null)),(l()(),t["ɵeld"](13,0,null,null,4,null,null,null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Edit the site name and click  "])),(l()(),t["ɵeld"](15,0,null,null,1,"kbd",[],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Update"])),(l()(),t["ɵted"](-1,null,["."])),(l()(),t["ɵeld"](18,0,null,null,13,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,o.b,o.a)),t["ɵdid"](19,1163264,null,2,a.c,[t.ElementRef,a.g],null,null),t["ɵqud"](603979776,1,{FormControlNames:1}),t["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),t["ɵeld"](22,0,null,0,1,"label",[["class","col-form-label required"],["for","siteName"]],null,null,null,null,null)),(l()(),t["ɵted"](-1,null,["Site Name"])),(l()(),t["ɵeld"](24,0,null,0,7,"input",[["autofocus",""],["class","form-control"],["formControlName","siteName"],["id","siteName"],["name","siteName"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==t["ɵnov"](l,26)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==t["ɵnov"](l,26).onTouched()&&i),"compositionstart"===n&&(i=!1!==t["ɵnov"](l,26)._compositionStart()&&i),"compositionend"===n&&(i=!1!==t["ɵnov"](l,26)._compositionEnd(e.target.value)&&i),i}),null,null)),t["ɵdid"](25,4210688,null,0,r.a,[t.ElementRef],{autofocus:[0,"autofocus"]},null),t["ɵdid"](26,16384,null,0,s.e,[t.Renderer2,t.ElementRef,[2,s.b]],null,null),t["ɵprd"](1024,null,s.p,(function(l){return[l]}),[s.e]),t["ɵdid"](28,671744,[[1,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),t["ɵprd"](2048,null,s.q,null,[s.j]),t["ɵdid"](30,16384,null,0,s.r,[[4,s.q]],null,null),t["ɵdid"](31,16384,null,0,a.h,[[3,s.d],a.a],{formControlName:[0,"formControlName"]},null),(l()(),t["ɵeld"](32,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),t["ɵeld"](33,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),t["ɵeld"](34,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var t=!0;return"submitAction"===n&&(t=!1!==l.component.update()&&t),t}),d.b,d.a)),t["ɵdid"](35,114688,null,0,c.a,[t.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),t["ɵted"](-1,0,["Update"])),(l()(),t["ɵeld"](37,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,m.b,m.a)),t["ɵdid"](38,49152,null,0,p.a,[h.Location,g.b],{name:[0,"name"],back:[1,"back"]},null)],(function(l,n){var e=n.component;l(n,1,0,e.modalRef),l(n,7,0,e.editSiteNameForm),l(n,10,0,e.editSiteNameForm),l(n,19,0),l(n,25,0,""),l(n,28,0,"siteName"),l(n,31,0,"siteName"),l(n,35,0,e.editSiteNameForm),l(n,38,0,"Cancel",e.modalRef.hide)}),(function(l,n){l(n,5,0,t["ɵnov"](n,9).ngClassUntouched,t["ɵnov"](n,9).ngClassTouched,t["ɵnov"](n,9).ngClassPristine,t["ɵnov"](n,9).ngClassDirty,t["ɵnov"](n,9).ngClassValid,t["ɵnov"](n,9).ngClassInvalid,t["ɵnov"](n,9).ngClassPending),l(n,18,0,t["ɵnov"](n,19).hasErrors,t["ɵnov"](n,19).hasSuccess),l(n,24,0,t["ɵnov"](n,30).ngClassUntouched,t["ɵnov"](n,30).ngClassTouched,t["ɵnov"](n,30).ngClassPristine,t["ɵnov"](n,30).ngClassDirty,t["ɵnov"](n,30).ngClassValid,t["ɵnov"](n,30).ngClassInvalid,t["ɵnov"](n,30).ngClassPending,t["ɵnov"](n,31).validClass,t["ɵnov"](n,31).invalidClass)}))}function y(l){return t["ɵvid"](0,[(l()(),t["ɵeld"](0,0,null,null,1,"cd-edit-site-mode-modal",[],null,null,null,_,S)),t["ɵdid"](1,114688,null,0,f.a,[v.a,b.a,C.a],null,null)],(function(l,n){l(n,1,0)}),null)}var R=t["ɵccf"]("cd-edit-site-mode-modal",f.a,y,{},{},[])}}]);
\ No newline at end of file
index 6005518bd1ff16d001ff74adf235864676cc0b11..434dcbc40e2e25110e9130c9bd7fb9ec7dc19c7f 100644 (file)
@@ -47,7 +47,7 @@ MIT
 MIT
 (The MIT License)
 
 MIT
 (The MIT License)
 
-Copyright (c) 2016 Swimlane <info@swimlane.com>
+Copyright (c) 2019 Swimlane <info@swimlane.com>
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
@@ -206,6 +206,21 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
 SOFTWARE.
 
 
+file-saver
+MIT
+The MIT License
+
+Copyright © 2016 [Eli Grey][1].
+
+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.
+
+  [1]: http://eligrey.com
+
+
 lodash
 MIT
 Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
 lodash
 MIT
 Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
@@ -1014,8 +1029,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 SOFTWARE.
 
 
 SOFTWARE.
 
 
-undefined
-
 webpack
 MIT
 Copyright JS Foundation and other contributors
 webpack
 MIT
 Copyright JS Foundation and other contributors
@@ -1063,3 +1076,6 @@ 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.
 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.
+
+
+undefined
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.4299ba94dd69b0b04046.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.4299ba94dd69b0b04046.js
deleted file mode 100644 (file)
index 290e413..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{OcYo:function(l,n,u){"use strict";u.d(n,"a",(function(){return e}));class e{constructor(l,n,u){this.elementRef=l,this.renderer=n,this.toastr=u}ngOnInit(){const l=this.renderer.createElement("i");this.renderer.addClass(l,"fa"),this.renderer.addClass(l,"fa-clipboard"),this.renderer.appendChild(this.elementRef.nativeElement,l)}getInputElement(){return document.getElementById(this.cdCopy2ClipboardButton)}onClick(){try{const l=document.createElement("input");l.value=this.getInputElement().value,document.body.appendChild(l),l.select(),document.execCommand("copy"),document.body.removeChild(l),this.toastr.success("Copied text to the clipboard successfully.")}catch(l){this.toastr.error("Failed to copy text to the clipboard.")}}}},Znkk:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),t=u("sne2"),i=u("Avrn"),a=u("+0ag"),o=u("mSOc");class s{constructor(l,n,u){this.route=l,this.summaryService=n,this.cephReleaseNamePipe=u,this.message="The Object Gateway service is not configured."}ngOnInit(){const l=this.summaryService.subscribe(n=>{if(!n)return;const u=this.cephReleaseNamePipe.transform(n.version);this.docsUrl=`http://docs.ceph.com/docs/${u}/mgr/dashboard/`+"#enabling-the-object-gateway-management-frontend",setTimeout(()=>{l.unsubscribe()},0)});this.routeParamsSubscribe=this.route.params.subscribe(l=>{this.message=l.message})}ngOnDestroy(){this.routeParamsSubscribe.unsubscribe()}}var d=u("s7LF"),r=u("LvDl"),c=u("mrSG"),m=u("IheW"),g=u("cp0P"),p=u("LRne"),f=u("5+tZ"),v=u("xTzq"),b=u("pL04");let h=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/bucket"}list(){return this.enumerate().pipe(Object(f.a)(l=>l.length>0?Object(g.a)(l.map(l=>this.get(l))):Object(p.a)([])))}enumerate(){return this.http.get(this.url)}get(l){return this.http.get(`${this.url}/${l}`)}create(l,n,u,e,t,i,a,o){return this.http.post(this.url,null,{params:new m.h({fromObject:{bucket:l,uid:n,zonegroup:u,placement_target:e,lock_enabled:String(t),lock_mode:i,lock_retention_period_days:a,lock_retention_period_years:o}})})}update(l,n,u,e,t,i,a,o,s,d){let r=new m.h;return r=r.append("bucket_id",n),r=r.append("uid",u),r=r.append("versioning_state",e),r=r.append("mfa_delete",t),r=r.append("mfa_token_serial",i),r=r.append("mfa_token_pin",a),r=r.append("lock_mode",o),r=r.append("lock_retention_period_days",s),r=r.append("lock_retention_period_years",d),this.http.put(`${this.url}/${l}`,null,{params:r})}delete(l,n=!0){let u=new m.h;return u=u.append("purge_objects",n?"true":"false"),this.http.delete(`${this.url}/${l}`,{params:u})}exists(l){return this.enumerate().pipe(Object(f.a)(n=>{const u=r.indexOf(n,l);return Object(p.a)(-1!==u)}))}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:b.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})(),C=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/site"}getPlacementTargets(){let l=new m.h;return l=l.append("query","placement-targets"),this.http.get(this.url,{params:l})}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:b.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})();var _=u("P8lu"),k=u("oxzT"),y=u("mtw6"),R=u("2EZI"),I=u("1Ni5"),w=u("9nlD"),E=function(l){return l.ENABLED="Enabled",l.DISABLED="Disabled",l}({}),N=function(l){return l.ENABLED="Enabled",l.SUSPENDED="Suspended",l}({});class q{constructor(l,n,u,e,i,a,o,s,d){this.route=l,this.router=n,this.formBuilder=u,this.rgwBucketService=e,this.rgwSiteService=i,this.rgwUserService=a,this.notificationService=o,this.i18n=s,this.actionLabels=d,this.editing=!1,this.error=!1,this.loading=!1,this.owners=null,this.placementTargets=[],this.isVersioningEnabled=!1,this.isVersioningAlreadyEnabled=!1,this.isMfaDeleteEnabled=!1,this.isMfaDeleteAlreadyEnabled=!1,this.icons=k.a,this.editing=this.router.url.startsWith(`/rgw/bucket/${t.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("bucket"),this.createForm()}createForm(){const l=this,n=I.a.custom("eitherDaysOrYears",()=>{if(!l.bucketForm||!r.get(l.bucketForm.getRawValue(),"lock_enabled"))return!1;const n=l.bucketForm.getValue("lock_retention_period_years"),u=l.bucketForm.getValue("lock_retention_period_days");return u>0&&n>0||0===u&&0===n}),u=[0,[I.a.number(!1),n]];this.bucketForm=this.formBuilder.group({id:[null],bid:[null,[d.B.required],this.editing?[]:[this.bucketNameValidator()]],owner:[null,[d.B.required]],"placement-target":[null,this.editing?[]:[d.B.required]],versioning:[null],"mfa-delete":[null],"mfa-token-serial":[""],"mfa-token-pin":[""],lock_enabled:[{value:!1,disabled:this.editing}],lock_mode:["COMPLIANCE"],lock_retention_period_days:u,lock_retention_period_years:u})}ngOnInit(){this.rgwUserService.enumerate().subscribe(l=>{this.owners=l.sort()}),this.editing||this.rgwSiteService.getPlacementTargets().subscribe(l=>{this.zonegroup=l.zonegroup,r.forEach(l.placement_targets,l=>{l.description=`${l.name} (${this.i18n("pool")}: ${l.data_pool})`,this.placementTargets.push(l)}),1===this.placementTargets.length&&this.bucketForm.get("placement-target").setValue(this.placementTargets[0].name)}),this.route.params.subscribe(l=>{if(!l.hasOwnProperty("bid"))return;const n=decodeURIComponent(l.bid);this.loading=!0,this.rgwBucketService.get(n).subscribe(l=>{this.loading=!1;const n=r.clone(this.bucketForm.getRawValue());let u=r.pick(l,r.keys(n));u["placement-target"]=l.placement_rule,u=r.merge(n,u),this.bucketForm.setValue(u),this.editing&&(this.setVersioningStatus(l.versioning),this.isVersioningAlreadyEnabled=this.isVersioningEnabled,this.setMfaDeleteStatus(l.mfa_delete),this.isMfaDeleteAlreadyEnabled=this.isMfaDeleteEnabled,this.setMfaDeleteValidators())})})}goToListView(){this.router.navigate(["/rgw/bucket"])}submit(){if(this.bucketForm.pristine)return void this.goToListView();const l=this.bucketForm.value;if(this.editing){const n=this.getVersioningStatus(),u=this.getMfaDeleteStatus();this.rgwBucketService.update(l.bid,l.id,l.owner,n,u,l["mfa-token-serial"],l["mfa-token-pin"],l.lock_mode,l.lock_retention_period_days,l.lock_retention_period_years).subscribe(()=>{this.notificationService.show(y.a.success,this.i18n('Updated Object Gateway bucket "{{bid}}".',l)),this.goToListView()},()=>{this.bucketForm.setErrors({cdSubmitButton:!0})})}else this.rgwBucketService.create(l.bid,l.owner,this.zonegroup,l["placement-target"],l.lock_enabled,l.lock_mode,l.lock_retention_period_days,l.lock_retention_period_years).subscribe(()=>{this.notificationService.show(y.a.success,this.i18n('Created Object Gateway bucket "{{bid}}"',l)),this.goToListView()},()=>{this.bucketForm.setErrors({cdSubmitButton:!0})})}bucketNameValidator(){const l=this.rgwBucketService;return n=>new Promise(u=>{if(n.pristine||""===n.value)return void u(null);const e=[];e.push(l=>!I.a.ip()(l)),e.push(l=>r.inRange(l.length,3,64)),e.push(l=>{const n=r.split(l,".");return r.every(n,l=>l===r.toLower(l)&&!l.includes("_")&&!!/[0-9a-z-]/.test(l)&&r.every([0,l.length],n=>/[a-z]/.test(l[n])||r.isInteger(r.parseInt(l[n]))))}),r.every(e,l=>l(n.value))?l.exists(n.value).subscribe(l=>{u(l?{bucketNameExists:!0}:null)}):u({bucketNameInvalid:!0})})}areMfaCredentialsRequired(){return this.isMfaDeleteEnabled!==this.isMfaDeleteAlreadyEnabled||this.isMfaDeleteAlreadyEnabled&&this.isVersioningEnabled!==this.isVersioningAlreadyEnabled}setMfaDeleteValidators(){const l=this.bucketForm.get("mfa-token-serial"),n=this.bucketForm.get("mfa-token-pin");this.areMfaCredentialsRequired()?(l.setValidators(d.B.required),n.setValidators(d.B.required)):(l.setValidators(null),n.setValidators(null)),l.updateValueAndValidity(),n.updateValueAndValidity()}getVersioningStatus(){return this.isVersioningEnabled?N.ENABLED:N.SUSPENDED}setVersioningStatus(l){this.isVersioningEnabled=l===N.ENABLED}updateVersioning(){this.isVersioningEnabled=!this.isVersioningEnabled,this.setMfaDeleteValidators()}getMfaDeleteStatus(){return this.isMfaDeleteEnabled?E.ENABLED:E.DISABLED}setMfaDeleteStatus(l){this.isMfaDeleteEnabled=l===E.ENABLED}updateMfaDelete(){this.isMfaDeleteEnabled=!this.isMfaDeleteEnabled,this.setMfaDeleteValidators()}}var T=u("HDdC"),V=u("0+/T"),S=u("uIqm"),x=u("vCyI"),D=u("aexS"),F=u("EgGo");const j=new F.a("rgw/bucket");class B{constructor(l,n,u,e,t,i,a){this.authStorageService=l,this.rgwBucketService=n,this.bsModalService=u,this.i18n=e,this.urlBuilder=t,this.actionLabels=i,this.ngZone=a,this.columns=[],this.buckets=[],this.selection=new x.a,this.isStale=!1,this.permission=this.authStorageService.getPermissions().rgw,this.columns=[{name:this.i18n("Name"),prop:"bid",flexGrow:1},{name:this.i18n("Owner"),prop:"owner",flexGrow:1}];const o=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().bid)}`;this.tableActions=[{permission:"create",icon:k.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE,canBePrimary:l=>!l.hasSelection},{permission:"update",icon:k.a.edit,routerLink:()=>this.urlBuilder.getEdit(o()),name:this.actionLabels.EDIT},{permission:"delete",icon:k.a.destroy,click:()=>this.deleteAction(),disable:()=>!this.selection.hasSelection,name:this.actionLabels.DELETE,canBePrimary:l=>l.hasMultiSelection}],this.timeConditionReached()}timeConditionReached(){clearTimeout(this.staleTimeout),this.ngZone.runOutsideAngular(()=>{this.staleTimeout=window.setTimeout(()=>{this.ngZone.run(()=>{this.isStale=!0})},1e4)})}getBucketList(l){this.isStale=!1,this.timeConditionReached(),this.rgwBucketService.list().subscribe(l=>{this.buckets=l},()=>{l.error()})}updateSelection(l){this.selection=l}deleteAction(){this.bsModalService.show(V.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"bucket":"buckets"),itemNames:this.selection.selected.map(l=>l.bid),submitActionObservable:()=>new T.a(l=>{Object(g.a)(this.selection.selected.map(l=>this.rgwBucketService.delete(l.bid))).subscribe(null,n=>{l.error(n),this.table.refreshBtn()},()=>{l.complete(),this.table.refreshBtn()})})}})}}let A=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/daemon"}list(){return this.http.get(this.url)}get(l){return this.http.get(`${this.url}/${l}`)}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:b.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})();var P=u("85J/");class M{constructor(l,n,u,e){this.rgwDaemonService=l,this.authStorageService=n,this.i18n=e,this.columns=[],this.daemons=[],this.selection=new x.a,this.grafanaPermission=this.authStorageService.getPermissions().grafana,this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:2},{name:this.i18n("Hostname"),prop:"server_hostname",flexGrow:2},{name:this.i18n("Version"),prop:"version",flexGrow:1,pipe:u}]}getDaemonList(l){this.rgwDaemonService.list().subscribe(l=>{this.daemons=l},()=>{l.error()})}updateSelection(l){this.selection=l}}var O=u("GyhO"),U=u("aXbf"),L=function(l){return l.USERS="users",l.BUCKETS="buckets",l.METADATA="metadata",l.USAGE="usage",l.ZONE="zone",l}({});let z=(()=>{class l{static getAll(){return Object.values(l.capabilities)}}return l.capabilities=L,l})();class G{constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.editing=!0,this.types=[],this.resource=this.i18n("capability"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({type:[null,[d.B.required]],perm:[null,[d.B.required]]})}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.ADD}setValues(l,n){this.formGroup.setValue({type:l,perm:n})}setCapabilities(l){const n=[];l.forEach(l=>{n.push(l.type)}),this.types=[],z.getAll().forEach(l=>{-1===r.indexOf(n,l)&&this.types.push(l)})}onSubmit(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()}}class K{constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.viewing=!0,this.userCandidates=[],this.resource=this.i18n("S3 Key"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({user:[null,[d.B.required]],generate_key:[!0],access_key:[null,[I.a.requiredIf({generate_key:!1})]],secret_key:[null,[I.a.requiredIf({generate_key:!1})]]})}setViewing(l=!0){this.viewing=l,this.action=this.viewing?this.actionLabels.SHOW:this.actionLabels.CREATE}setValues(l,n,u){this.formGroup.setValue({user:l,generate_key:r.isEmpty(n),access_key:n,secret_key:u})}setUserCandidates(l){this.userCandidates=l}onSubmit(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()}}class ${}class Z{constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.editing=!0,this.subusers=[],this.resource=this.i18n("Subuser"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({uid:[null],subuid:[null,[d.B.required,this.subuserValidator()]],perm:[null,[d.B.required]],generate_secret:[!0],secret_key:[null,[I.a.requiredIf({generate_secret:!1})]]})}subuserValidator(){const l=this;return n=>l.editing?null:Object(I.b)(n.value)?null:l.subusers.some(u=>r.isEqual(l.getSubuserName(u.id),n.value))?{subuserIdExists:!0}:null}getSubuserName(l){if(r.isEmpty(l))return l;const n=l.match(/([^:]+)(:(.+))?/);return r.isUndefined(n[3])?n[1]:n[3]}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE}setValues(l,n="",u=""){this.formGroup.setValue({uid:l,subuid:this.getSubuserName(n),perm:u,generate_secret:!0,secret_key:null})}setSubusers(l){this.subusers=l}onSubmit(){const l=this.formGroup.value,n=new $;n.id=`${l.uid}:${l.subuid}`,n.permissions=l.perm,n.generate_secret=l.generate_secret,n.secret_key=l.secret_key,this.submitAction.emit(n),this.bsModalRef.hide()}}class H{constructor(l,n,u){this.bsModalRef=l,this.i18n=n,this.actionLabels=u,this.resource=this.i18n("Swift Key"),this.action=this.actionLabels.SHOW}setValues(l,n){this.user=l,this.secret_key=n}}class Q{constructor(l,n,u,e,t,i,a,o){this.formBuilder=l,this.route=n,this.router=u,this.rgwUserService=e,this.bsModalService=t,this.notificationService=i,this.i18n=a,this.actionLabels=o,this.editing=!1,this.error=!1,this.loading=!1,this.submitObservables=[],this.icons=k.a,this.subusers=[],this.s3Keys=[],this.swiftKeys=[],this.capabilities=[],this.resource=this.i18n("user"),this.subuserLabel=this.i18n("subuser"),this.s3keyLabel=this.i18n("S3 Key"),this.capabilityLabel=this.i18n("capability"),this.createForm()}createForm(){this.userForm=this.formBuilder.group({uid:[null,[d.B.required],[I.a.unique(this.rgwUserService.exists,this.rgwUserService)]],display_name:[null,[d.B.required]],email:[null,[I.a.email],[I.a.unique(this.rgwUserService.emailExists,this.rgwUserService)]],max_buckets_mode:[1],max_buckets:[1e3,[I.a.requiredIf({max_buckets_mode:"1"}),I.a.number(!1),d.B.min(1)]],suspended:[!1],generate_key:[!0],access_key:[null,[I.a.requiredIf({generate_key:!1})]],secret_key:[null,[I.a.requiredIf({generate_key:!1})]],user_quota_enabled:[!1],user_quota_max_size_unlimited:[!0],user_quota_max_size:[null,[I.a.composeIf({user_quota_enabled:!0,user_quota_max_size_unlimited:!1},[d.B.required,this.quotaMaxSizeValidator])]],user_quota_max_objects_unlimited:[!0],user_quota_max_objects:[null,[d.B.min(0),I.a.requiredIf({user_quota_enabled:!0,user_quota_max_objects_unlimited:!1})]],bucket_quota_enabled:[!1],bucket_quota_max_size_unlimited:[!0],bucket_quota_max_size:[null,[I.a.composeIf({bucket_quota_enabled:!0,bucket_quota_max_size_unlimited:!1},[d.B.required,this.quotaMaxSizeValidator])]],bucket_quota_max_objects_unlimited:[!0],bucket_quota_max_objects:[null,[d.B.min(0),I.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_objects_unlimited:!1})]]})}ngOnInit(){this.editing=this.router.url.startsWith(`/rgw/user/${t.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.route.params.subscribe(l=>{if(!l.hasOwnProperty("uid"))return;const n=decodeURIComponent(l.uid);this.loading=!0;const u=[];u.push(this.rgwUserService.get(n)),u.push(this.rgwUserService.getQuota(n)),Object(g.a)(u).subscribe(l=>{this.loading=!1;const n=r.clone(this.userForm.value);let u=r.pick(l[0],r.keys(this.userForm.value));switch(u.max_buckets){case-1:u.max_buckets_mode=-1,u.max_buckets="";break;case 0:u.max_buckets_mode=0,u.max_buckets="";break;default:u.max_buckets_mode=1}["user","bucket"].forEach(n=>{const e=l[1][n+"_quota"];u[n+"_quota_enabled"]=e.enabled,e.max_size<0?(u[n+"_quota_max_size_unlimited"]=!0,u[n+"_quota_max_size"]=null):(u[n+"_quota_max_size_unlimited"]=!1,u[n+"_quota_max_size"]=`${e.max_size} B`),e.max_objects<0?(u[n+"_quota_max_objects_unlimited"]=!0,u[n+"_quota_max_objects"]=null):(u[n+"_quota_max_objects_unlimited"]=!1,u[n+"_quota_max_objects"]=e.max_objects)}),u=r.merge(n,u),this.userForm.setValue(u),this.subusers=l[0].subusers,this.s3Keys=l[0].keys,this.swiftKeys=l[0].swift_keys;const e={"read, write":"*"};l[0].caps.forEach(l=>{l.perm in e&&(l.perm=e[l.perm])}),this.capabilities=l[0].caps},l=>{this.error=l})})}goToListView(){this.router.navigate(["/rgw/user"])}onSubmit(){let l;if(this.userForm.pristine)return void this.goToListView();const n=this.userForm.getValue("uid");if(this.editing){if(this._isGeneralDirty()){const l=this._getUpdateArgs();this.submitObservables.push(this.rgwUserService.update(n,l))}l=this.i18n('Updated Object Gateway user "{{uid}}"',{uid:n})}else{const u=this._getCreateArgs();this.submitObservables.push(this.rgwUserService.create(u)),l=this.i18n('Created Object Gateway user "{{uid}}"',{uid:n})}if(this._isUserQuotaDirty()){const l=this._getUserQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(n,l))}if(this._isBucketQuotaDirty()){const l=this._getBucketQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(n,l))}Object(O.a)(...this.submitObservables).subscribe({error:()=>{this.userForm.setErrors({cdSubmitButton:!0})},complete:()=>{this.notificationService.show(y.a.success,l),this.goToListView()}})}quotaMaxSizeValidator(l){return Object(I.b)(l.value)?null:null===RegExp("^(\\d+(\\.\\d+)?)\\s*(B|K(B|iB)?|M(B|iB)?|G(B|iB)?|T(B|iB)?)?$","i").exec(l.value)?{quotaMaxSize:!0}:(new U.a).toBytes(l.value)<1024?{quotaMaxSize:!0}:null}setSubuser(l,n){const u={"full-control":"full","read-write":"readwrite"},e=this.userForm.getValue("uid");this.submitObservables.push(this.rgwUserService.createSubuser(e,{subuser:l.id,access:l.permissions in u?u[l.permissions]:l.permissions,key_type:"swift",secret_key:l.secret_key,generate_secret:l.generate_secret?"true":"false"})),r.isNumber(n)?this.subusers[n]=l:(this.subusers.push(l),this.swiftKeys.push({user:l.id,secret_key:l.generate_secret?"Apply your changes first...":l.secret_key})),this.userForm.markAsDirty()}deleteSubuser(l){const n=this.subusers[l];this.submitObservables.push(this.rgwUserService.deleteSubuser(this.userForm.getValue("uid"),n.id)),this.s3Keys=this.s3Keys.filter(l=>l.user!==n.id),this.swiftKeys=this.swiftKeys.filter(l=>l.user!==n.id),this.subusers.splice(l,1),this.userForm.markAsDirty()}setCapability(l,n){const u=this.userForm.getValue("uid");if(r.isNumber(n)){const e=this.capabilities[n];this.submitObservables.push(this.rgwUserService.deleteCapability(u,e.type,e.perm)),this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities[n]=l}else this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities.push(l);this.userForm.markAsDirty()}deleteCapability(l){const n=this.capabilities[l];this.submitObservables.push(this.rgwUserService.deleteCapability(this.userForm.getValue("uid"),n.type,n.perm)),this.capabilities.splice(l,1),this.userForm.markAsDirty()}hasAllCapabilities(){return!r.difference(z.getAll(),r.map(this.capabilities,"type")).length}setS3Key(l,n){if(r.isNumber(n));else{const n=l.user.match(/([^:]+)(:(.+))?/),u=n[1],e={subuser:n[2]?n[3]:"",generate_key:l.generate_key?"true":"false"};"false"===e.generate_key&&(r.isNil(l.access_key)||(e.access_key=l.access_key),r.isNil(l.secret_key)||(e.secret_key=l.secret_key)),this.submitObservables.push(this.rgwUserService.addS3Key(u,e)),this.s3Keys.push({user:l.user,access_key:l.generate_key?"Apply your changes first...":l.access_key,secret_key:l.generate_key?"Apply your changes first...":l.secret_key})}this.userForm.markAsDirty()}deleteS3Key(l){const n=this.s3Keys[l];this.submitObservables.push(this.rgwUserService.deleteS3Key(this.userForm.getValue("uid"),n.access_key)),this.s3Keys.splice(l,1),this.userForm.markAsDirty()}showSubuserModal(l){const n=this.userForm.getValue("uid"),u=this.bsModalService.show(Z);if(r.isNumber(l)){const e=this.subusers[l];u.content.setEditing(),u.content.setValues(n,e.id,e.permissions)}else u.content.setEditing(!1),u.content.setValues(n),u.content.setSubusers(this.subusers);u.content.submitAction.subscribe(n=>{this.setSubuser(n,l)})}showS3KeyModal(l){const n=this.bsModalService.show(K);if(r.isNumber(l)){const u=this.s3Keys[l];n.content.setViewing(),n.content.setValues(u.user,u.access_key,u.secret_key)}else{const l=this._getS3KeyUserCandidates();n.content.setViewing(!1),n.content.setUserCandidates(l),n.content.submitAction.subscribe(l=>{this.setS3Key(l)})}}showSwiftKeyModal(l){const n=this.bsModalService.show(H),u=this.swiftKeys[l];n.content.setValues(u.user,u.secret_key)}showCapabilityModal(l){const n=this.bsModalService.show(G);if(r.isNumber(l)){const u=this.capabilities[l];n.content.setEditing(),n.content.setValues(u.type,u.perm)}else n.content.setEditing(!1),n.content.setCapabilities(this.capabilities);n.content.submitAction.subscribe(n=>{this.setCapability(n,l)})}_isGeneralDirty(){return["display_name","email","max_buckets_mode","max_buckets","suspended"].some(l=>this.userForm.get(l).dirty)}_isUserQuotaDirty(){return["user_quota_enabled","user_quota_max_size_unlimited","user_quota_max_size","user_quota_max_objects_unlimited","user_quota_max_objects"].some(l=>this.userForm.get(l).dirty)}_isBucketQuotaDirty(){return["bucket_quota_enabled","bucket_quota_max_size_unlimited","bucket_quota_max_size","bucket_quota_max_objects_unlimited","bucket_quota_max_objects"].some(l=>this.userForm.get(l).dirty)}_getCreateArgs(){const l={uid:this.userForm.getValue("uid"),display_name:this.userForm.getValue("display_name"),suspended:this.userForm.getValue("suspended"),email:"",max_buckets:this.userForm.getValue("max_buckets"),generate_key:this.userForm.getValue("generate_key"),access_key:"",secret_key:""},n=this.userForm.getValue("email");r.isString(n)&&n.length>0&&r.merge(l,{email:n}),this.userForm.getValue("generate_key")||r.merge(l,{generate_key:!1,access_key:this.userForm.getValue("access_key"),secret_key:this.userForm.getValue("secret_key")});const u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return r.includes([-1,0],u)&&r.merge(l,{max_buckets:u}),l}_getUpdateArgs(){const l={},n=["display_name","email","max_buckets","suspended"];for(const e of n)l[e]=this.userForm.getValue(e);const u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return r.includes([-1,0],u)&&(l.max_buckets=u),l}_getUserQuotaArgs(){const l={quota_type:"user",enabled:this.userForm.getValue("user_quota_enabled"),max_size_kb:-1,max_objects:-1};if(!this.userForm.getValue("user_quota_max_size_unlimited")){const n=(new U.a).toBytes(this.userForm.getValue("user_quota_max_size"));l.max_size_kb=(n/1024).toFixed(0)}return this.userForm.getValue("user_quota_max_objects_unlimited")||(l.max_objects=this.userForm.getValue("user_quota_max_objects")),l}_getBucketQuotaArgs(){const l={quota_type:"bucket",enabled:this.userForm.getValue("bucket_quota_enabled"),max_size_kb:-1,max_objects:-1};if(!this.userForm.getValue("bucket_quota_max_size_unlimited")){const n=(new U.a).toBytes(this.userForm.getValue("bucket_quota_max_size"));l.max_size_kb=(n/1024).toFixed(0)}return this.userForm.getValue("bucket_quota_max_objects_unlimited")||(l.max_objects=this.userForm.getValue("bucket_quota_max_objects")),l}_getS3KeyUserCandidates(){let l=[];const n=this.userForm.getValue("uid");return r.isString(n)&&!r.isEmpty(n)&&l.push(n),this.subusers.forEach(n=>{l.push(n.id)}),this.s3Keys.forEach(n=>{l.push(n.user)}),l=r.uniq(l),l}}var Y=u("x38r");const W=new F.a("rgw/user");class J{constructor(l,n,u,e,t,i,a){this.authStorageService=l,this.rgwUserService=n,this.bsModalService=u,this.i18n=e,this.urlBuilder=t,this.actionLabels=i,this.ngZone=a,this.columns=[],this.users=[],this.selection=new x.a,this.isStale=!1,this.permission=this.authStorageService.getPermissions().rgw,this.columns=[{name:this.i18n("Username"),prop:"uid",flexGrow:1},{name:this.i18n("Full name"),prop:"display_name",flexGrow:1},{name:this.i18n("Email address"),prop:"email",flexGrow:1},{name:this.i18n("Suspended"),prop:"suspended",flexGrow:1,cellClass:"text-center",cellTransformation:Y.a.checkIcon},{name:this.i18n("Max. buckets"),prop:"max_buckets",flexGrow:1,cellTransformation:Y.a.map,customTemplateConfig:{"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}}];const o=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().uid)}`;this.tableActions=[{permission:"create",icon:k.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE,canBePrimary:l=>!l.hasSelection},{permission:"update",icon:k.a.edit,routerLink:()=>this.urlBuilder.getEdit(o()),name:this.actionLabels.EDIT},{permission:"delete",icon:k.a.destroy,click:()=>this.deleteAction(),disable:()=>!this.selection.hasSelection,name:this.actionLabels.DELETE,canBePrimary:l=>l.hasMultiSelection}],this.timeConditionReached()}timeConditionReached(){clearTimeout(this.staleTimeout),this.ngZone.runOutsideAngular(()=>{this.staleTimeout=window.setTimeout(()=>{this.ngZone.run(()=>{this.isStale=!0})},1e4)})}getUserList(l){this.isStale=!1,this.timeConditionReached(),this.rgwUserService.list().subscribe(l=>{this.users=l},()=>{l.error()})}updateSelection(l){this.selection=l}deleteAction(){this.bsModalService.show(V.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"user":"users"),itemNames:this.selection.selected.map(l=>l.uid),submitActionObservable:()=>new T.a(l=>{Object(g.a)(this.selection.selected.map(l=>this.rgwUserService.delete(l.uid))).subscribe(null,n=>{l.error(n),this.table.refreshBtn()},()=>{l.complete(),this.table.refreshBtn()})})}})}}class X{}const ll={breadcrumbs:"Daemons"},nl={breadcrumbs:"Users"},ul={breadcrumbs:t.a.CREATE},el={breadcrumbs:t.a.EDIT},tl={breadcrumbs:"Buckets"},il={breadcrumbs:t.a.CREATE},al={breadcrumbs:t.a.EDIT},ol={breadcrumbs:"Object Gateway"};class sl{}var dl=u("MdoF"),rl=u("ES0t"),cl=u("Xg1U"),ml=u("z5nN"),gl=u("iutN"),pl=u("pMnS"),fl=u("EEJc"),vl=u("PEr+"),bl=u("a40w"),hl=u("hfeG"),Cl=u("2ZVE"),_l=u("a278"),kl=u("insk"),yl=u("cUpR"),Rl=u("20UP"),Il=u("GiVz"),wl=u("pKUh"),El=u("sLuX"),Nl=u("FSuO"),ql=u("a0VL"),Tl=u("j8L6"),Vl=u("b5OY"),Sl=u("pxLl"),xl=u("SVse");class Dl{constructor(l,n){this.rgwDaemonService=l,this.authStorageService=n,this.serviceId="",this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.selection.hasSelection&&(this.serviceId=this.selection.first().id)}getMetaData(){r.isEmpty(this.serviceId)||this.rgwDaemonService.get(this.serviceId).subscribe(l=>{this.metadata=l.rgw_metadata})}}var Fl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function jl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","x5ARzZtmk"]],null,null,null,_l.b,_l.a)),e["ɵdid"](3,638976,null,0,kl.a,[o.a,yl.b,Rl.a,a.a,Il.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){var u=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"rgw-instance-detail?var-rgw_servers=rgw."+u.selection.first().id,"one","x5ARzZtmk")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass)}))}function Bl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"tabset",[],[[2,"tab-container",null]],null,null,wl.b,wl.a)),e["ɵdid"](1,180224,null,0,Cl.e,[Cl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](3,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],(function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.getMetaData()&&e),e}),El.b,El.a)),e["ɵdid"](5,638976,null,0,Nl.a,[ql.a],{data:[0,"data"]},{fetchData:"fetchData"}),(l()(),e["ɵeld"](6,0,null,0,3,"tab",[["heading","Performance Counters"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](7,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](8,0,null,null,1,"cd-table-performance-counter",[["serviceType","rgw"]],null,null,null,Tl.b,Tl.a)),e["ɵdid"](9,114688,null,0,Vl.a,[Sl.a,Il.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,jl)),e["ɵdid"](11,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.metadata),l(n,7,0,"Performance Counters"),l(n,9,0,"rgw",u.serviceId),l(n,11,0,u.grafanaPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass),l(n,6,0,e["ɵnov"](n,7).id,e["ɵnov"](n,7).active,e["ɵnov"](n,7).addClass)}))}function Al(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Bl)),e["ɵdid"](1,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,1,0,n.component.selection.hasSingleSelection)}),null)}function Pl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-daemon-details",[],null,null,null,Al,Fl)),e["ɵdid"](1,573440,null,0,Dl,[A,D.a],null,null)],null,null)}var Ml=e["ɵccf"]("cd-rgw-daemon-details",Dl,Pl,{selection:"selection"},{},[]),Ol=u("iExv"),Ul=u("o4+5");class Ll{constructor(){}ngOnChanges(){this.selection.hasSelection&&(this.bucket=this.selection.first())}}var zl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Gl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Kl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.bucket.bucket_quota.max_size));l(n,1,0,t)}))}function $l(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Zl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.bucket.bucket_quota.max_objects)}))}function Hl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,Gl)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Kl)),e["ɵdid"](17,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,$l)),e["ɵdid"](22,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Zl)),e["ɵdid"](24,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,u.bucket.bucket_quota.max_size<=-1),l(n,17,0,u.bucket.bucket_quota.max_size>-1),l(n,22,0,u.bucket.bucket_quota.max_objects<=-1),l(n,24,0,u.bucket.bucket_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,1),u.bucket.bucket_quota.enabled));l(n,9,0,t)}))}function Ql(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mode"])),(l()(),e["ɵeld"](4,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](5,null,["",""])),(l()(),e["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Days"])),(l()(),e["ɵeld"](9,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](10,null,["",""])),(l()(),e["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Years"])),(l()(),e["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](15,null,["",""]))],null,(function(l,n){var u=n.component;l(n,5,0,u.bucket.lock_mode),l(n,10,0,u.bucket.lock_retention_period_days),l(n,15,0,u.bucket.lock_retention_period_years)}))}function Yl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,82,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,67,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,66,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](7,null,["",""])),(l()(),e["ɵeld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["ID"])),(l()(),e["ɵeld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](12,null,["",""])),(l()(),e["ɵeld"](13,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Owner"])),(l()(),e["ɵeld"](16,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](17,null,["",""])),(l()(),e["ɵeld"](18,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Index type"])),(l()(),e["ɵeld"](21,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](22,null,["",""])),(l()(),e["ɵeld"](23,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](24,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Placement rule"])),(l()(),e["ɵeld"](26,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](27,null,["",""])),(l()(),e["ɵeld"](28,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](29,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Marker"])),(l()(),e["ɵeld"](31,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](32,null,["",""])),(l()(),e["ɵeld"](33,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](34,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum marker"])),(l()(),e["ɵeld"](36,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](37,null,["",""])),(l()(),e["ɵeld"](38,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Version"])),(l()(),e["ɵeld"](41,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](42,null,["",""])),(l()(),e["ɵeld"](43,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](44,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Master version"])),(l()(),e["ɵeld"](46,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](47,null,["",""])),(l()(),e["ɵeld"](48,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](49,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Modification time"])),(l()(),e["ɵeld"](51,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](52,null,["",""])),e["ɵppd"](53,1),(l()(),e["ɵeld"](54,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](55,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Zonegroup"])),(l()(),e["ɵeld"](57,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](58,null,["",""])),(l()(),e["ɵeld"](59,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](60,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Versioning"])),(l()(),e["ɵeld"](62,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](63,null,["",""])),(l()(),e["ɵeld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["MFA Delete"])),(l()(),e["ɵeld"](67,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](68,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,Hl)),e["ɵdid"](70,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](71,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Locking"])),(l()(),e["ɵeld"](73,0,null,null,9,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](74,0,null,null,8,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](75,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](76,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](78,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](79,null,["",""])),e["ɵppd"](80,1),(l()(),e["ɵand"](16777216,null,null,1,null,Ql)),e["ɵdid"](82,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,70,0,u.bucket.bucket_quota),l(n,82,0,u.bucket.lock_enabled)}),(function(l,n){var u=n.component;l(n,7,0,u.bucket.bid),l(n,12,0,u.bucket.id),l(n,17,0,u.bucket.owner),l(n,22,0,u.bucket.index_type),l(n,27,0,u.bucket.placement_rule),l(n,32,0,u.bucket.marker),l(n,37,0,u.bucket.max_marker),l(n,42,0,u.bucket.ver),l(n,47,0,u.bucket.master_ver);var t=e["ɵunv"](n,52,0,l(n,53,0,e["ɵnov"](n.parent.parent,0),u.bucket.mtime));l(n,52,0,t),l(n,58,0,u.bucket.zonegroup),l(n,63,0,u.bucket.versioning),l(n,68,0,u.bucket.mfa_delete);var i=e["ɵunv"](n,79,0,l(n,80,0,e["ɵnov"](n.parent.parent,1),u.bucket.lock_enabled));l(n,79,0,i)}))}function Wl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,wl.b,wl.a)),e["ɵdid"](1,180224,null,0,Cl.e,[Cl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](3,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Yl)),e["ɵdid"](5,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.bucket)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass)}))}function Jl(l){return e["ɵvid"](0,[e["ɵpid"](0,ql.a,[xl.DatePipe]),e["ɵpid"](0,Ol.a,[Il.a]),e["ɵpid"](0,Ul.a,[U.a]),(l()(),e["ɵand"](16777216,null,null,1,null,Wl)),e["ɵdid"](4,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,4,0,n.component.selection.hasSingleSelection)}),null)}function Xl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-bucket-details",[],null,null,null,Jl,zl)),e["ɵdid"](1,573440,null,0,Ll,[],null,null)],null,null)}var ln=e["ɵccf"]("cd-rgw-bucket-details",Ll,Xl,{selection:"selection"},{},[]),nn=u("25BL"),un=u("FE24"),en=u("z/SZ"),tn=u("TJUb"),an=u("Fgil");class on{constructor(l,n,u){this.rgwUserService=l,this.bsModalService=n,this.i18n=u,this.keys=[],this.keysColumns=[],this.keysSelection=new x.a,this.icons=k.a}ngOnInit(){this.keysColumns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Type"),prop:"type",flexGrow:1}],this.maxBucketsMap={"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}}ngOnChanges(){this.selection.hasSelection&&(this.user=this.selection.first(),this.user.subusers=r.sortBy(this.user.subusers,"id"),this.user.caps=r.sortBy(this.user.caps,"type"),this.rgwUserService.getQuota(this.user.uid).subscribe(l=>{r.extend(this.user,l)}),this.keys=[],this.user.keys&&this.user.keys.forEach(l=>{this.keys.push({id:this.keys.length+1,type:"S3",username:l.user,ref:l})}),this.user.swift_keys&&this.user.swift_keys.forEach(l=>{this.keys.push({id:this.keys.length+1,type:"Swift",username:l.user,ref:l})}),this.keys=r.sortBy(this.keys,"user"))}updateKeysSelection(l){this.keysSelection=l}showKeyModal(){const l=this.keysSelection.first(),n=this.bsModalService.show("S3"===l.type?K:H);switch(l.type){case"S3":n.content.setViewing(),n.content.setValues(l.ref.user,l.ref.access_key,l.ref.secret_key);break;case"Swift":n.content.setValues(l.ref.user,l.ref.secret_key)}}}var sn=u("LqlI"),dn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email address"])),(l()(),e["ɵeld"](3,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){l(n,4,0,n.component.user.email)}))}function cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," (",") "]))],null,(function(l,n){l(n,1,0,n.context.$implicit.id,n.context.$implicit.permissions)}))}function mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Subusers"])),(l()(),e["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,cn)),e["ɵdid"](5,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.component.user.subusers)}),null)}function gn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," (",") "]))],null,(function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.perm)}))}function pn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Capabilities"])),(l()(),e["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,gn)),e["ɵdid"](5,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.component.user.caps)}),null)}function fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function bn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.user.user_quota.max_size));l(n,1,0,t)}))}function hn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function Cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function _n(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.user.user_quota.max_objects)}))}function kn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User quota"])),(l()(),e["ɵeld"](3,0,null,null,25,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,24,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,fn)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vn)),e["ɵdid"](17,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bn)),e["ɵdid"](19,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](20,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,hn)),e["ɵdid"](24,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Cn)),e["ɵdid"](26,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,_n)),e["ɵdid"](28,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,!u.user.user_quota.enabled),l(n,17,0,u.user.user_quota.enabled&&u.user.user_quota.max_size<=-1),l(n,19,0,u.user.user_quota.enabled&&u.user.user_quota.max_size>-1),l(n,24,0,!u.user.user_quota.enabled),l(n,26,0,u.user.user_quota.enabled&&u.user.user_quota.max_objects<=-1),l(n,28,0,u.user.user_quota.enabled&&u.user.user_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,0),u.user.user_quota.enabled));l(n,9,0,t)}))}function yn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function Rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function In(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.user.bucket_quota.max_size));l(n,1,0,t)}))}function wn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function En(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.user.bucket_quota.max_objects)}))}function qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](3,0,null,null,25,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,24,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,yn)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Rn)),e["ɵdid"](17,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,In)),e["ɵdid"](19,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](20,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,wn)),e["ɵdid"](24,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,En)),e["ɵdid"](26,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Nn)),e["ɵdid"](28,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,!u.user.bucket_quota.enabled),l(n,17,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_size<=-1),l(n,19,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_size>-1),l(n,24,0,!u.user.bucket_quota.enabled),l(n,26,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_objects<=-1),l(n,28,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,0),u.user.bucket_quota.enabled));l(n,9,0,t)}))}function Tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,40,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,35,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,34,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](7,null,["",""])),(l()(),e["ɵeld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](12,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,rn)),e["ɵdid"](14,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](15,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Suspended"])),(l()(),e["ɵeld"](18,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](19,null,["",""])),e["ɵppd"](20,1),(l()(),e["ɵeld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["System"])),(l()(),e["ɵeld"](24,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](25,null,["",""])),e["ɵppd"](26,1),(l()(),e["ɵeld"](27,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum buckets"])),(l()(),e["ɵeld"](30,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](31,null,["",""])),e["ɵppd"](32,2),(l()(),e["ɵand"](16777216,null,null,1,null,mn)),e["ɵdid"](34,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pn)),e["ɵdid"](36,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,kn)),e["ɵdid"](38,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qn)),e["ɵdid"](40,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,14,0,null==u.user.email?null:u.user.email.length),l(n,34,0,u.user.subusers&&u.user.subusers.length),l(n,36,0,u.user.caps&&u.user.caps.length),l(n,38,0,u.user.user_quota),l(n,40,0,u.user.bucket_quota)}),(function(l,n){var u=n.component;l(n,7,0,u.user.uid),l(n,12,0,u.user.display_name);var t=e["ɵunv"](n,19,0,l(n,20,0,e["ɵnov"](n.parent.parent,0),u.user.suspended));l(n,19,0,t);var i=e["ɵunv"](n,25,0,l(n,26,0,e["ɵnov"](n.parent.parent,0),"true"===u.user.system));l(n,25,0,i);var a=e["ɵunv"](n,31,0,l(n,32,0,e["ɵnov"](n.parent.parent,1),u.user.max_buckets,u.maxBucketsMap));l(n,31,0,a)}))}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"tab",[["heading","Keys"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,12,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["selectionType","multi"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateKeysSelection(u)&&e),e}),nn.b,nn.a)),e["ɵdid"](3,2867200,null,0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](4,0,null,1,10,"div",[["class","table-actions"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,16777216,null,null,9,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),e["ɵprd"](512,null,un.f,un.f,[]),e["ɵdid"](7,212992,null,0,un.c,[e.ElementRef,e.Renderer2,e.ViewContainerRef,en.a,un.a,un.f],null,null),(l()(),e["ɵeld"](8,0,null,null,6,"button",[["class","btn btn-secondary"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showKeyModal()&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Show"]))],(function(l,n){var u=n.component;l(n,1,0,"Keys"),l(n,3,0,u.keys,u.keysColumns,"flex","true","multi"),l(n,7,0);var e=l(n,12,0,u.icons.show);l(n,11,0,e)}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass),l(n,5,0,e["ɵnov"](n,7).dropup,e["ɵnov"](n,7).isOpen,e["ɵnov"](n,7).isOpen&&e["ɵnov"](n,7).isBs4),l(n,8,0,!u.keysSelection.hasSingleSelection)}))}function Sn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,wl.b,wl.a)),e["ɵdid"](1,180224,null,0,Cl.e,[Cl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](3,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Tn)),e["ɵdid"](5,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,Vn)),e["ɵdid"](7,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.user),l(n,7,0,u.keys.length)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass)}))}function xn(l){return e["ɵvid"](0,[e["ɵpid"](0,Ol.a,[Il.a]),e["ɵpid"](0,tn.a,[]),e["ɵpid"](0,an.a,[U.a]),e["ɵqud"](671088640,1,{accessKeyTpl:0}),e["ɵqud"](671088640,2,{secretKeyTpl:0}),(l()(),e["ɵand"](16777216,null,null,1,null,Sn)),e["ɵdid"](6,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,6,0,n.component.selection.hasSingleSelection)}),null)}function Dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-details",[],null,null,null,xn,dn)),e["ɵdid"](1,638976,null,0,on,[_.a,sn.b,Il.a],null,null)],(function(l,n){l(n,1,0)}),null)}var Fn=e["ɵccf"]("cd-rgw-user-details",on,Dn,{selection:"selection"},{},[]),jn=u("8xTl"),Bn=u("ajRT"),An=u("mXUL"),Pn=u("+gVj"),Mn=u("D4zM"),On=u("OcYo"),Un=u("EApP"),Ln=u("KVJa"),zn=u("Z21x"),Gn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Kn(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵeld"](2,0,null,null,49,"cd-modal",[],null,null,null,fl.c,fl.b)),e["ɵdid"](3,49152,null,0,Bn.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," "," "])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,43,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,39,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,38,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,12).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,12).onReset()&&t),t}),null,null)),e["ɵdid"](11,16384,null,0,d.G,[],null,null),e["ɵdid"](12,4210688,null,0,d.t,[[8,null],[8,null]],null,null),e["ɵprd"](2048,null,d.d,null,[d.t]),e["ɵdid"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),e["ɵeld"](15,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](16,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](19,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](21,0,null,0,7,"div",[["class","cd-col-form-inpu"]],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,6,"input",[["class","form-control"],["id","user"],["name","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0,i=l.component;return"input"===n&&(t=!1!==e["ɵnov"](l,23)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,23).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,23)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,23)._compositionEnd(u.target.value)&&t),"ngModelChange"===n&&(t=!1!==(i.user=u)&&t),t}),null,null)),e["ɵdid"](23,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](25,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),e["ɵprd"](2048,null,d.q,null,[d.u]),e["ɵdid"](27,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](28,16384,null,0,Pn.h,[[3,d.d],Pn.a],null,null),(l()(),e["ɵeld"](29,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](30,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](33,0,null,0,1,"label",[["class","cd-col-form-label"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](35,0,null,0,13,"div",[["class","cd-col-form-inpu"]],null,null,null,null,null)),(l()(),e["ɵeld"](36,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](37,0,null,null,6,"input",[["class","form-control"],["id","secret_key"],["name","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0,i=l.component;return"input"===n&&(t=!1!==e["ɵnov"](l,38)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,38).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,38)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,38)._compositionEnd(u.target.value)&&t),"ngModelChange"===n&&(t=!1!==(i.secret_key=u)&&t),t}),null,null)),e["ɵdid"](38,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](40,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),e["ɵprd"](2048,null,d.q,null,[d.u]),e["ɵdid"](42,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](43,16384,null,0,Pn.h,[[3,d.d],Pn.a],null,null),(l()(),e["ɵeld"](44,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](45,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,46).onClick()&&t),t}),null,null)),e["ɵdid"](46,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](47,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,48).onClick()&&t),t}),null,null)),e["ɵdid"](48,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵeld"](49,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](50,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](51,49152,null,0,zn.a,[xl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,16,0),l(n,25,0,"user",u.user),l(n,30,0),l(n,40,0,"secret_key",u.secret_key),l(n,46,0,"secret_key"),l(n,48,0,"secret_key"),l(n,51,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,10,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending),l(n,15,0,e["ɵnov"](n,16).hasErrors,e["ɵnov"](n,16).hasSuccess),l(n,22,0,!0,e["ɵnov"](n,27).ngClassUntouched,e["ɵnov"](n,27).ngClassTouched,e["ɵnov"](n,27).ngClassPristine,e["ɵnov"](n,27).ngClassDirty,e["ɵnov"](n,27).ngClassValid,e["ɵnov"](n,27).ngClassInvalid,e["ɵnov"](n,27).ngClassPending,e["ɵnov"](n,28).validClass,e["ɵnov"](n,28).invalidClass),l(n,29,0,e["ɵnov"](n,30).hasErrors,e["ɵnov"](n,30).hasSuccess),l(n,37,0,!0,e["ɵnov"](n,42).ngClassUntouched,e["ɵnov"](n,42).ngClassTouched,e["ɵnov"](n,42).ngClassPristine,e["ɵnov"](n,42).ngClassDirty,e["ɵnov"](n,42).ngClassValid,e["ɵnov"](n,42).ngClassInvalid,e["ɵnov"](n,42).ngClassPending,e["ɵnov"](n,43).validClass,e["ɵnov"](n,43).invalidClass)}))}function $n(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-swift-key-modal",[],null,null,null,Kn,Gn)),e["ɵdid"](1,49152,null,0,H,[sn.a,Il.a,t.b],null,null)],null,null)}var Zn=e["ɵccf"]("cd-rgw-user-swift-key-modal",H,$n,{},{},[]),Hn=u("IZUe"),Qn=u("gp3X"),Yn=u("sb0X"),Wn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Jn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](3,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"user"),l(n,6,0,"user")}),(function(l,n){l(n,0,0,!0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Xn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a username --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function lu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control custom-select"],["formControlName","user"],["id","user"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,2).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),t}),null,null)),e["ɵdid"](1,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](2,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](4,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xn)),e["ɵdid"](9,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,lu)),e["ɵdid"](11,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,1,0,""),l(n,4,0,"user"),l(n,7,0,"user"),l(n,9,0,null!==u.userCandidates),l(n,11,0,u.userCandidates)}),(function(l,n){l(n,0,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function uu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate key"]))],(function(l,n){l(n,1,0),l(n,9,0,"generate_key"),l(n,12,0,"generate_key")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","access_key"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵted"](-1,null,["Access key"])),(l()(),e["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](14,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](16,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](17,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](18,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,20).onClick()&&t),t}),null,null)),e["ɵdid"](20,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](21,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,22).onClick()&&t),t}),null,null)),e["ɵdid"](22,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tu)),e["ɵdid"](24,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var t=l(n,7,0,!u.viewing);l(n,6,0,"cd-col-form-label",t),l(n,14,0,"access_key"),l(n,17,0,"access_key"),l(n,20,0,"access_key"),l(n,22,0,"access_key"),l(n,24,0,u.formGroup.showError("access_key",e["ɵnov"](n.parent,11),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,u.viewing,e["ɵnov"](n,16).ngClassUntouched,e["ɵnov"](n,16).ngClassTouched,e["ɵnov"](n,16).ngClassPristine,e["ɵnov"](n,16).ngClassDirty,e["ɵnov"](n,16).ngClassValid,e["ɵnov"](n,16).ngClassInvalid,e["ɵnov"](n,16).ngClassPending,e["ɵnov"](n,17).validClass,e["ɵnov"](n,17).invalidClass)}))}function au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","secret_key"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](14,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](16,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](17,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](18,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,20).onClick()&&t),t}),null,null)),e["ɵdid"](20,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](21,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,22).onClick()&&t),t}),null,null)),e["ɵdid"](22,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,au)),e["ɵdid"](24,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var t=l(n,7,0,!u.viewing);l(n,6,0,"cd-col-form-label",t),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,20,0,"secret_key"),l(n,22,0,"secret_key"),l(n,24,0,u.formGroup.showError("secret_key",e["ɵnov"](n.parent,11),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,u.viewing,e["ɵnov"](n,16).ngClassUntouched,e["ɵnov"](n,16).ngClassTouched,e["ɵnov"](n,16).ngClassPristine,e["ɵnov"](n,16).ngClassDirty,e["ɵnov"](n,16).ngClassValid,e["ɵnov"](n,16).ngClassInvalid,e["ɵnov"](n,16).ngClassPending,e["ɵnov"](n,17).validClass,e["ɵnov"](n,17).invalidClass)}))}function su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Qn.b,Qn.a)),e["ɵdid"](1,114688,null,0,Yn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](2,0,[""," ",""])),e["ɵppd"](3,1),e["ɵppd"](4,1)],(function(l,n){l(n,1,0,n.component.formGroup)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,2,0,l(n,3,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,2,1,l(n,4,0,e["ɵnov"](n.parent,1),u.resource));l(n,2,0,t,i)}))}function du(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵeld"](2,0,null,null,40,"cd-modal",[],null,null,null,fl.c,fl.b)),e["ɵdid"](3,49152,null,0,Bn.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,34,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,33,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Pn.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,22,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](17,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,4,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](22,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](23,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](25,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Jn)),e["ɵdid"](27,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,nu)),e["ɵdid"](29,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,uu)),e["ɵdid"](31,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,eu)),e["ɵdid"](33,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,iu)),e["ɵdid"](35,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ou)),e["ɵdid"](37,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](38,0,null,null,4,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,su)),e["ɵdid"](40,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](41,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](42,49152,null,0,zn.a,[xl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0);var t=l(n,23,0,!u.viewing);l(n,22,0,"cd-col-form-label",t),l(n,27,0,u.viewing),l(n,29,0,!u.viewing),l(n,31,0,u.formGroup.showError("user",e["ɵnov"](n,11),"required")),l(n,33,0,!u.viewing),l(n,35,0,!u.formGroup.getValue("generate_key")),l(n,37,0,!u.formGroup.getValue("generate_key")),l(n,40,0,!u.viewing),l(n,42,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess)}))}function ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-s3-key-modal",[],null,null,null,du,Wn)),e["ɵdid"](1,49152,null,0,K,[R.a,sn.a,Il.a,t.b],null,null)],null,null)}var cu=e["ɵccf"]("cd-rgw-user-s3-key-modal",K,ru,{},{submitAction:"submitAction"},[]),mu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function gu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","type"],["id","type"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](3,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"type"),l(n,6,0,"type")}),(function(l,n){l(n,0,0,!0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function pu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a type --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control custom-select"],["formControlName","type"],["id","type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,2).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),t}),null,null)),e["ɵdid"](1,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](2,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](4,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pu)),e["ɵdid"](9,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,fu)),e["ɵdid"](11,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,1,0,""),l(n,4,0,"type"),l(n,7,0,"type"),l(n,9,0,null!==u.types),l(n,11,0,u.types)}),(function(l,n){l(n,0,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function bu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function hu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function _u(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵeld"](2,0,null,null,60,"cd-modal",[],null,null,null,fl.c,fl.b)),e["ɵdid"](3,49152,null,0,Bn.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,54,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,53,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Pn.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,39,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](17,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,4,"label",[["class","cd-col-form-label"],["for","type"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](22,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](23,{required:0}),(l()(),e["ɵted"](-1,null,["Type"])),(l()(),e["ɵeld"](25,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,gu)),e["ɵdid"](27,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vu)),e["ɵdid"](29,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bu)),e["ɵdid"](31,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](32,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](33,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](36,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","perm"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permission"])),(l()(),e["ɵeld"](38,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,13,"select",[["class","form-control custom-select"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,40).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,40).onTouched()&&t),t}),null,null)),e["ɵdid"](40,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](42,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](44,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](45,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](46,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](47,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](48,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a permission --"])),(l()(),e["ɵand"](16777216,null,null,2,null,hu)),e["ɵdid"](51,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),e["ɵpad"](52,3),(l()(),e["ɵand"](16777216,null,null,1,null,Cu)),e["ɵdid"](54,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](55,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](56,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Qn.b,Qn.a)),e["ɵdid"](57,114688,null,0,Yn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](58,0,[""," ",""])),e["ɵppd"](59,1),e["ɵppd"](60,1),(l()(),e["ɵeld"](61,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](62,49152,null,0,zn.a,[xl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0);var t=l(n,23,0,!u.editing);l(n,22,0,"cd-col-form-label",t),l(n,27,0,u.editing),l(n,29,0,!u.editing),l(n,31,0,u.formGroup.showError("type",e["ɵnov"](n,11),"required")),l(n,33,0),l(n,42,0,"perm"),l(n,45,0,"perm"),l(n,47,0,null),l(n,48,0,null);var i=l(n,52,0,"read","write","*");l(n,51,0,i),l(n,54,0,u.formGroup.showError("perm",e["ɵnov"](n,11),"required")),l(n,57,0,u.formGroup),l(n,62,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess),l(n,32,0,e["ɵnov"](n,33).hasErrors,e["ɵnov"](n,33).hasSuccess),l(n,39,0,e["ɵnov"](n,44).ngClassUntouched,e["ɵnov"](n,44).ngClassTouched,e["ɵnov"](n,44).ngClassPristine,e["ɵnov"](n,44).ngClassDirty,e["ɵnov"](n,44).ngClassValid,e["ɵnov"](n,44).ngClassInvalid,e["ɵnov"](n,44).ngClassPending,e["ɵnov"](n,45).validClass,e["ɵnov"](n,45).invalidClass);var a=e["ɵunv"](n,58,0,l(n,59,0,e["ɵnov"](n,0),u.action)),o=e["ɵunv"](n,58,1,l(n,60,0,e["ɵnov"](n,1),u.resource));l(n,58,0,a,o)}))}function ku(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-capability-modal",[],null,null,null,_u,mu)),e["ɵdid"](1,49152,null,0,G,[R.a,sn.a,Il.a,t.b],null,null)],null,null)}var yu=e["ɵccf"]("cd-rgw-user-capability-modal",G,ku,{},{submitAction:"submitAction"},[]),Ru=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function wu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen subuser ID is already in use."]))],null,null)}function Eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function qu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qu)),e["ɵdid"](21,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"secret_key"),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.formGroup.showError("secret_key",e["ɵnov"](n.parent.parent,11),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Swift key"])),(l()(),e["ɵeld"](3,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_secret"],["id","generate_secret"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_secret"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate secret"])),(l()(),e["ɵand"](16777216,null,null,1,null,Tu)),e["ɵdid"](19,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"generate_secret"),l(n,15,0,"generate_secret"),l(n,19,0,!u.editing&&!u.formGroup.getValue("generate_secret"))}),(function(l,n){l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Su(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵeld"](2,0,null,null,90,"cd-modal",[],null,null,null,fl.c,fl.b)),e["ɵdid"](3,49152,null,0,Bn.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,84,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,83,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Pn.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,69,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](17,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label"],["for","uid"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](22,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](23,0,null,null,6,"input",[["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,24)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,24).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,24)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,24)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](24,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](26,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](28,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](29,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](30,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](31,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](34,0,null,0,4,"label",[["class","cd-col-form-label"],["for","subuid"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](36,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](37,{required:0}),(l()(),e["ɵted"](-1,null,["Subuser"])),(l()(),e["ɵeld"](39,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","subuid"],["id","subuid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,42)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,42).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,42)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,42)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](41,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](42,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](44,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](46,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](47,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Iu)),e["ɵdid"](49,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,wu)),e["ɵdid"](51,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](52,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](53,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](56,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","perm"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permission"])),(l()(),e["ɵeld"](58,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](59,0,null,null,21,"select",[["class","form-control custom-select"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,60).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,60).onTouched()&&t),t}),null,null)),e["ɵdid"](60,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](62,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](64,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](65,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](66,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](67,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](68,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a permission --"])),(l()(),e["ɵand"](16777216,null,null,2,null,Eu)),e["ɵdid"](71,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),e["ɵpad"](72,2),(l()(),e["ɵeld"](73,0,null,null,3,"option",[["value","read-write"]],null,null,null,null,null)),e["ɵdid"](74,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](75,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["read, write"])),(l()(),e["ɵeld"](77,0,null,null,3,"option",[["value","full-control"]],null,null,null,null,null)),e["ɵdid"](78,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](79,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["full"])),(l()(),e["ɵand"](16777216,null,null,1,null,Nu)),e["ɵdid"](82,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vu)),e["ɵdid"](84,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](85,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](86,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Qn.b,Qn.a)),e["ɵdid"](87,114688,null,0,Yn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](88,0,[""," ",""])),e["ɵppd"](89,1),e["ɵppd"](90,1),(l()(),e["ɵeld"](91,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](92,49152,null,0,zn.a,[xl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0),l(n,26,0,"uid"),l(n,29,0,"uid"),l(n,31,0);var t=l(n,37,0,!u.editing);l(n,36,0,"cd-col-form-label",t),l(n,41,0,""),l(n,44,0,"subuid"),l(n,47,0,"subuid"),l(n,49,0,u.formGroup.showError("subuid",e["ɵnov"](n,11),"required")),l(n,51,0,u.formGroup.showError("subuid",e["ɵnov"](n,11),"subuserIdExists")),l(n,53,0),l(n,62,0,"perm"),l(n,65,0,"perm"),l(n,67,0,null),l(n,68,0,null);var i=l(n,72,0,"read","write");l(n,71,0,i),l(n,74,0,"read-write"),l(n,75,0,"read-write"),l(n,78,0,"full-control"),l(n,79,0,"full-control"),l(n,82,0,u.formGroup.showError("perm",e["ɵnov"](n,11),"required")),l(n,84,0,!u.editing),l(n,87,0,u.formGroup),l(n,92,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess),l(n,23,0,!0,e["ɵnov"](n,28).ngClassUntouched,e["ɵnov"](n,28).ngClassTouched,e["ɵnov"](n,28).ngClassPristine,e["ɵnov"](n,28).ngClassDirty,e["ɵnov"](n,28).ngClassValid,e["ɵnov"](n,28).ngClassInvalid,e["ɵnov"](n,28).ngClassPending,e["ɵnov"](n,29).validClass,e["ɵnov"](n,29).invalidClass),l(n,30,0,e["ɵnov"](n,31).hasErrors,e["ɵnov"](n,31).hasSuccess),l(n,40,0,u.editing,e["ɵnov"](n,46).ngClassUntouched,e["ɵnov"](n,46).ngClassTouched,e["ɵnov"](n,46).ngClassPristine,e["ɵnov"](n,46).ngClassDirty,e["ɵnov"](n,46).ngClassValid,e["ɵnov"](n,46).ngClassInvalid,e["ɵnov"](n,46).ngClassPending,e["ɵnov"](n,47).validClass,e["ɵnov"](n,47).invalidClass),l(n,52,0,e["ɵnov"](n,53).hasErrors,e["ɵnov"](n,53).hasSuccess),l(n,59,0,e["ɵnov"](n,64).ngClassUntouched,e["ɵnov"](n,64).ngClassTouched,e["ɵnov"](n,64).ngClassPristine,e["ɵnov"](n,64).ngClassDirty,e["ɵnov"](n,64).ngClassValid,e["ɵnov"](n,64).ngClassInvalid,e["ɵnov"](n,64).ngClassPending,e["ɵnov"](n,65).validClass,e["ɵnov"](n,65).invalidClass);var a=e["ɵunv"](n,88,0,l(n,89,0,e["ɵnov"](n,0),u.action)),o=e["ɵunv"](n,88,1,l(n,90,0,e["ɵnov"](n,1),u.resource));l(n,88,0,a,o)}))}function xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-subuser-modal",[],null,null,null,Su,Ru)),e["ɵdid"](1,49152,null,0,Z,[R.a,sn.a,Il.a,t.b],null,null)],null,null)}var Du=e["ɵccf"]("cd-rgw-user-subuser-modal",Z,xu,{},{submitAction:"submitAction"},[]),Fu=u("yT6U"),ju=u("4DD9"),Bu=u("IzCI"),Au=u("Dwqy"),Pu=u("uYzU"),Mu=u("FFMq"),Ou=u("E2fk"),Uu=u("nSDx"),Lu=u("SB+Q"),zu=u("TYzs"),Gu=u("BQkM"),Ku=u("dEH0"),$u=u("G1/K"),Zu=u("efK2"),Hu=u("CNMR"),Qu=u("KOzp"),Yu=u("2uy1"),Wu=u("38Bd"),Ju=u("978R"),Xu=u("FO+L"),le=u("nhM1"),ne=u("BARL"),ue=u("iInd"),ee=u("9Xeq"),te=u("hrfs"),ie=u("yGOH"),ae=u("bxSN"),oe=u("WF9J"),se=u("V/fk"),de=u("F8xH"),re=u("ChqD"),ce=u("PCNd"),me=u("G6Q+"),ge=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","WAkugZpiz"]],null,null,null,_l.b,_l.a)),e["ɵdid"](3,638976,null,0,kl.a,[o.a,yl.b,Rl.a,a.a,Il.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rgw-overview?","two","WAkugZpiz")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass)}))}function fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,wl.b,wl.a)),e["ɵdid"](1,180224,null,0,Cl.e,[Cl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,5,"tab",[["heading","Daemons List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](3,212992,null,0,Cl.b,[Cl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,3,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"updateSelection"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getDaemonList(u)&&e),e}),nn.b,nn.a)),e["ɵdid"](5,2867200,null,0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](6,0,null,3,1,"cd-rgw-daemon-details",[["cdTableDetail",""]],null,null,null,Al,Fl)),e["ɵdid"](7,573440,null,0,Dl,[A,D.a],{selection:[0,"selection"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,pe)),e["ɵdid"](9,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Daemons List"),l(n,5,0,u.daemons,u.columns,"flex","single"),l(n,7,0,u.selection),l(n,9,0,u.grafanaPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass)}))}function ve(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-daemon-list",[],null,null,null,fe,ge)),e["ɵdid"](1,49152,null,0,M,[A,D.a,P.a,Il.a],null,null)],null,null)}var be=e["ɵccf"]("cd-rgw-daemon-list",M,ve,{},{},[]),he=u("DqMs"),Ce=u("/NlG"),_e=u("NUGo"),ke=u("S7zO"),ye=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Re(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,he.b,he.a)),e["ɵdid"](1,114688,null,0,Ce.a,[Il.a],{type:[0,"type"],size:[1,"size"]},null),(l()(),e["ɵted"](-1,0,["The user list data might be stale. If needed, you can manually reload it."]))],(function(l,n){l(n,1,0,"warning","slim")}),null)}function Ie(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),(l()(),e["ɵand"](16777216,null,null,1,null,Re)),e["ɵdid"](2,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](3,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","uid"],["selectionType","multiClick"]],null,[[null,"updateSelection"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getUserList(u)&&e),e}),nn.b,nn.a)),e["ɵdid"](4,2867200,[[1,4],["table",4]],0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](5,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_e.b,_e.a)),e["ɵdid"](6,114688,null,0,ke.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](7,0,null,3,1,"cd-rgw-user-details",[["cdTableDetail",""]],null,null,null,xn,dn)),e["ɵdid"](8,638976,null,0,on,[_.a,sn.b,Il.a],{selection:[0,"selection"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.isStale),l(n,4,0,u.users,u.columns,"flex",!1,"uid","multiClick"),l(n,6,0,u.permission,u.selection,u.tableActions),l(n,8,0,u.selection)}),null)}function we(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rgw-user-list",[],null,null,null,Ie,ye)),e["ɵprd"](256,null,F.a,W,[]),e["ɵdid"](2,49152,null,0,J,[D.a,_.a,sn.b,Il.a,F.a,t.b,e.NgZone],null,null)],null,null)}var Ee=e["ɵccf"]("cd-rgw-user-list",J,we,{},{},[]),Ne=u("QC43"),qe=u("XFyV"),Te=u("EmSq"),Ve=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Se(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Ne.b,Ne.a)),e["ɵdid"](1,49152,null,0,qe.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading user data..."]))],null,null)}function xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,[[null,"backAction"]],(function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e}),he.b,he.a)),e["ɵdid"](1,114688,null,0,Ce.a,[Il.a],{type:[0,"type"]},{backAction:"backAction"}),(l()(),e["ɵted"](-1,0,["The user data could not be loaded."]))],(function(l,n){l(n,1,0,"error")}),null)}function De(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen user ID is already in use."]))],null,null)}function je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Be(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This is not a valid email address."]))],null,null)}function Ae(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen email address is already in use."]))],null,null)}function Pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Me(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 1."]))],null,null)}function Oe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,0,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,7,"input",[["class","form-control"],["formControlName","max_buckets"],["id","max_buckets"],["min","1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,7)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,7)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,7)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](8,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](10,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pe)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Me)),e["ɵdid"](17,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"max_buckets"),l(n,13,0,"max_buckets"),l(n,15,0,u.userForm.showError("max_buckets",e["ɵnov"](n.parent,3),"required")),l(n,17,0,u.userForm.showError("max_buckets",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Le(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","access_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Access key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[15,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ue)),e["ɵdid"](21,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"access_key"),l(n,14,0,"access_key"),l(n,17,0,"access_key"),l(n,19,0,"access_key"),l(n,21,0,u.userForm.showError("access_key",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[17,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,Mn.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,On.a,[e.ElementRef,e.Renderer2,Un.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ze)),e["ɵdid"](21,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"secret_key"),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.userForm.showError("secret_key",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["S3 key"])),(l()(),e["ɵeld"](3,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[13,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate key"])),(l()(),e["ɵand"](16777216,null,null,1,null,Le)),e["ɵdid"](19,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ge)),e["ɵdid"](21,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"generate_key"),l(n,15,0,"generate_key"),l(n,19,0,!u.editing&&!u.userForm.getValue("generate_key")),l(n,21,0,!u.editing&&!u.userForm.getValue("generate_key"))}),(function(l,n){l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function $e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no subusers."]))],null,null)}function Ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,23,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,21,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,2,"div",[["class","input-group-prepend border-left-0 border-right-0"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,16777216,null,null,5,"button",[["class","btn btn-light tc_showSubuserButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](12,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](13,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](15,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](16,1),(l()(),e["ɵeld"](17,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteSubuserButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteSubuser(l.context.index)&&e),e}),null,null)),e["ɵdid"](18,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](19,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](21,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](22,1),(l()(),e["ɵeld"](23,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,12,0,"Edit");var e=l(n,16,0,u.icons.edit);l(n,15,0,e),l(n,18,0,"Delete");var t=l(n,22,0,u.icons.destroy);l(n,21,0,t)}),(function(l,n){var u=n.component;l(n,4,0,e["ɵinlineInterpolate"](1,"",u.icons.user,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.id,"")),l(n,8,0,e["ɵinlineInterpolate"](1,"",u.icons.share,"")),l(n,9,0,e["ɵinlineInterpolate"](1,"","full-control"===n.context.$implicit.permissions?"full":n.context.$implicit.permissions,"")),l(n,11,0,e["ɵnov"](n,12).ariaDescribedby),l(n,17,0,e["ɵnov"](n,18).ariaDescribedby)}))}function He(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,20,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Subusers"])),(l()(),e["ɵeld"](3,0,null,null,17,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,16,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,$e)),e["ɵdid"](6,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ze)),e["ɵdid"](8,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](9,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,8,"button",[["class","btn btn-light float-right tc_addSubuserButton"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal()&&e),e}),null,null)),(l()(),e["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](14,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](15,1),(l()(),e["ɵeld"](16,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](17,null,[""," ",""])),e["ɵppd"](18,1),e["ɵppd"](19,1),(l()(),e["ɵeld"](20,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,6,0,0===u.subusers.length),l(n,8,0,u.subusers);var e=l(n,15,0,u.icons.add);l(n,14,0,e)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,17,0,l(n,18,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.CREATE)),i=e["ɵunv"](n,17,1,l(n,19,0,e["ɵnov"](n.parent.parent,1),u.subuserLabel));l(n,17,0,t,i)}))}function Qe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no keys."]))],null,null)}function Ye(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_showS3KeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteS3KeyButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteS3Key(l.context.index)&&e),e}),null,null)),e["ɵdid"](14,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](17,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](18,1),(l()(),e["ɵeld"](19,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Show");var e=l(n,12,0,u.icons.show);l(n,11,0,e),l(n,14,0,"Delete");var t=l(n,18,0,u.icons.destroy);l(n,17,0,t)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.key,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,7,0,e["ɵnov"](n,8).ariaDescribedby),l(n,13,0,e["ɵnov"](n,14).ariaDescribedby)}))}function We(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no keys."]))],null,null)}function Je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_showSwiftKeyButton"],["tooltip","Show"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSwiftKeyModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Show");var e=l(n,12,0,u.icons.show);l(n,11,0,e)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.key,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.user,"")),l(n,7,0,e["ɵnov"](n,8).ariaDescribedby)}))}function Xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,37,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Keys"])),(l()(),e["ɵeld"](3,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["S3"])),(l()(),e["ɵeld"](9,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Qe)),e["ɵdid"](11,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ye)),e["ɵdid"](13,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](14,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](15,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,8,"button",[["class","btn btn-light float-right tc_addS3KeyButton"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal()&&e),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](22,null,[""," ",""])),e["ɵppd"](23,1),e["ɵppd"](24,1),(l()(),e["ɵeld"](25,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["ɵeld"](26,0,null,0,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](27,0,null,null,10,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](28,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](31,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Swift"])),(l()(),e["ɵeld"](33,0,null,0,4,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,We)),e["ɵdid"](35,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Je)),e["ɵdid"](37,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,11,0,0===u.s3Keys.length),l(n,13,0,u.s3Keys);var e=l(n,20,0,u.icons.add);l(n,19,0,e),l(n,28,0),l(n,35,0,0===u.swiftKeys.length),l(n,37,0,u.swiftKeys)}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess);var t=e["ɵunv"](n,22,0,l(n,23,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.CREATE)),i=e["ɵunv"](n,22,1,l(n,24,0,e["ɵnov"](n.parent.parent,1),u.s3keyLabel));l(n,22,0,t,i),l(n,27,0,e["ɵnov"](n,28).hasErrors,e["ɵnov"](n,28).hasSuccess)}))}function lt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no capabilities."]))],null,null)}function nt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"span",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_editCapButton"],["tooltip","Edit"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteCapButton"],["tooltip","Delete"],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteCapability(l.context.index)&&e),e}),null,null)),e["ɵdid"](14,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](17,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](18,1),(l()(),e["ɵeld"](19,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Edit");var e=l(n,12,0,u.icons.edit);l(n,11,0,e),l(n,14,0,"Delete");var t=l(n,18,0,u.icons.destroy);l(n,17,0,t)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.share,"")),l(n,5,0,e["ɵinlineInterpolate"](2,"",n.context.$implicit.type,":",n.context.$implicit.perm,"")),l(n,7,0,e["ɵnov"](n,8).ariaDescribedby),l(n,13,0,e["ɵnov"](n,14).ariaDescribedby)}))}function ut(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Capabilities"])),(l()(),e["ɵeld"](3,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,17,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,lt)),e["ɵdid"](9,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,nt)),e["ɵdid"](11,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,10,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,16777216,null,null,9,"button",[["class","btn btn-light float-right tc_addCapButton"],["tooltip","All capabilities are already added."],["triggers","pointerenter pointerleave"],["type","button"]],[[8,"disabled",0],[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal()&&e),e}),null,null)),e["ɵdid"](15,212992,null,0,Ju.c,[e.ViewContainerRef,en.a,Ju.a,e.ElementRef,e.Renderer2,Yu.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"],isDisabled:[2,"isDisabled"]},null),(l()(),e["ɵeld"](16,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](18,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](19,1),(l()(),e["ɵeld"](20,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](21,null,[""," ",""])),e["ɵppd"](22,1),e["ɵppd"](23,1),(l()(),e["ɵeld"](24,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,4,0),l(n,9,0,0===u.capabilities.length),l(n,11,0,u.capabilities),l(n,15,0,"All capabilities are already added.","pointerenter pointerleave",!u.hasAllCapabilities());var e=l(n,19,0,u.icons.add);l(n,18,0,e)}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,14,0,u.hasAllCapabilities(),e["ɵnov"](n,15).ariaDescribedby);var t=e["ɵunv"](n,21,0,l(n,22,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.ADD)),i=e["ɵunv"](n,21,1,l(n,23,0,e["ɵnov"](n.parent.parent,1),u.capabilityLabel));l(n,21,0,t,i)}))}function et(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,27,{FormControlNames:1}),e["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_max_size_unlimited"],["id","user_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[27,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited size"]))],(function(l,n){l(n,1,0),l(n,9,0,"user_quota_max_size_unlimited"),l(n,12,0,"user_quota_max_size_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function tt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function it(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function at(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,29,{FormControlNames:1}),e["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_quota_max_size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. size"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","user_quota_max_size"],["id","user_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onBlur(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[29,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,81920,null,0,Te.a,[e.ElementRef,d.q,an.a,U.a],null,null),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tt)),e["ɵdid"](16,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,it)),e["ɵdid"](18,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"user_quota_max_size"),l(n,12,0),l(n,14,0,"user_quota_max_size"),l(n,16,0,u.userForm.showError("user_quota_max_size",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_size",e["ɵnov"](n.parent,3),"quotaMaxSize"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ot(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,31,{FormControlNames:1}),e["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_max_objects_unlimited"],["id","user_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[31,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited objects"]))],(function(l,n){l(n,1,0),l(n,9,0,"user_quota_max_objects_unlimited"),l(n,12,0,"user_quota_max_objects_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function st(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function dt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 0."]))],null,null)}function rt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,33,{FormControlNames:1}),e["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_quota_max_objects"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. objects"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","user_quota_max_objects"],["id","user_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](9,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](11,671744,[[33,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,st)),e["ɵdid"](16,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,dt)),e["ɵdid"](18,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"user_quota_max_objects"),l(n,14,0,"user_quota_max_objects"),l(n,16,0,u.userForm.showError("user_quota_max_objects",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_objects",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ct(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,37,{FormControlNames:1}),e["ɵqud"](603979776,38,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_max_size_unlimited"],["id","bucket_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[37,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited size"]))],(function(l,n){l(n,1,0),l(n,9,0,"bucket_quota_max_size_unlimited"),l(n,12,0,"bucket_quota_max_size_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function mt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function gt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function pt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,39,{FormControlNames:1}),e["ɵqud"](603979776,40,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","bucket_quota_max_size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. size"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","bucket_quota_max_size"],["id","bucket_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onBlur(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[39,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,81920,null,0,Te.a,[e.ElementRef,d.q,an.a,U.a],null,null),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mt)),e["ɵdid"](16,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,gt)),e["ɵdid"](18,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"bucket_quota_max_size"),l(n,12,0),l(n,14,0,"bucket_quota_max_size"),l(n,16,0,u.userForm.showError("bucket_quota_max_size",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_size",e["ɵnov"](n.parent,3),"quotaMaxSize"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ft(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,41,{FormControlNames:1}),e["ɵqud"](603979776,42,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_max_objects_unlimited"],["id","bucket_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[41,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited objects"]))],(function(l,n){l(n,1,0),l(n,9,0,"bucket_quota_max_objects_unlimited"),l(n,12,0,"bucket_quota_max_objects_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function vt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function bt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 0."]))],null,null)}function ht(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,43,{FormControlNames:1}),e["ɵqud"](603979776,44,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","bucket_quota_max_objects"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. objects"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","bucket_quota_max_objects"],["id","bucket_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](9,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](11,671744,[[43,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vt)),e["ɵdid"](16,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bt)),e["ɵdid"](18,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"bucket_quota_max_objects"),l(n,14,0,"bucket_quota_max_objects"),l(n,16,0,u.userForm.showError("bucket_quota_max_objects",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_objects",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Ct(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,183,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,182,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,3).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,3).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,6).onSubmit()&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.G,[],null,null),e["ɵdid"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](5,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](6,16384,null,0,Pn.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](7,0,null,null,176,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,[""," ",""])),e["ɵppd"](10,1),e["ɵppd"](11,1),(l()(),e["ɵeld"](12,0,null,null,162,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](14,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](17,0,null,0,4,"label",[["class","cd-col-form-label"],["for","uid"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](20,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](22,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,25)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,25).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,25)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,25)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](24,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](25,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](27,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](29,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](30,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,De)),e["ɵdid"](32,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Fe)),e["ɵdid"](34,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](35,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](36,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](39,0,null,0,4,"label",[["class","cd-col-form-label"],["for","display_name"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](41,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](42,{required:0}),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](44,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](45,0,null,null,6,"input",[["class","form-control"],["formControlName","display_name"],["id","display_name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,46)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,46).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,46)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,46)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](46,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](48,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](50,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](51,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,je)),e["ɵdid"](53,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](54,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](55,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](58,0,null,0,1,"label",[["class","cd-col-form-label"],["for","email"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email address"])),(l()(),e["ɵeld"](60,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,62)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,62).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,62)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,62)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](62,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](64,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](66,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](67,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Be)),e["ɵdid"](69,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ae)),e["ɵdid"](71,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](72,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](73,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](76,0,null,0,1,"label",[["class","cd-col-form-label"],["for","max_buckets_mode"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. buckets"])),(l()(),e["ɵeld"](78,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](79,0,null,null,18,"select",[["class","form-control custom-select"],["formControlName","max_buckets_mode"],["id","max_buckets_mode"],["name","max_buckets_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,80).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,80).onTouched()&&t),t}),null,null)),e["ɵdid"](80,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](82,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](84,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](85,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](86,0,null,null,3,"option",[["value","-1"]],null,null,null,null,null)),e["ɵdid"](87,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](88,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Disabled"])),(l()(),e["ɵeld"](90,0,null,null,3,"option",[["value","0"]],null,null,null,null,null)),e["ɵdid"](91,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](92,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Unlimited"])),(l()(),e["ɵeld"](94,0,null,null,3,"option",[["value","1"]],null,null,null,null,null)),e["ɵdid"](95,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](96,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Custom"])),(l()(),e["ɵand"](16777216,null,null,1,null,Oe)),e["ɵdid"](99,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](100,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](101,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](104,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](105,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](106,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","suspended"],["id","suspended"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,107).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,107).onTouched()&&t),t}),null,null)),e["ɵdid"](107,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](109,671744,[[11,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](111,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](112,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](113,0,null,null,1,"label",[["class","custom-control-label"],["for","suspended"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Suspended"])),(l()(),e["ɵand"](16777216,null,null,1,null,Ke)),e["ɵdid"](116,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,He)),e["ɵdid"](118,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xe)),e["ɵdid"](120,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ut)),e["ɵdid"](122,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](123,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](124,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User quota"])),(l()(),e["ɵeld"](126,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](127,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,25,{FormControlNames:1}),e["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),e["ɵeld"](130,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](131,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](132,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_enabled"],["id","user_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,133).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,133).onTouched()&&t),t}),null,null)),e["ɵdid"](133,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](135,671744,[[25,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](137,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](138,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](139,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵand"](16777216,null,null,1,null,et)),e["ɵdid"](142,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,at)),e["ɵdid"](144,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ot)),e["ɵdid"](146,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,rt)),e["ɵdid"](148,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](149,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](150,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](152,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](153,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,35,{FormControlNames:1}),e["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),e["ɵeld"](156,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](157,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](158,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_enabled"],["id","bucket_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,159).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,159).onTouched()&&t),t}),null,null)),e["ɵdid"](159,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](161,671744,[[35,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](163,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](164,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](165,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵand"](16777216,null,null,1,null,ct)),e["ɵdid"](168,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pt)),e["ɵdid"](170,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ft)),e["ɵdid"](172,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ht)),e["ɵdid"](174,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](175,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](176,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](177,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Qn.b,Qn.a)),e["ɵdid"](178,114688,null,0,Yn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](179,0,[""," ",""])),e["ɵppd"](180,1),e["ɵppd"](181,1),(l()(),e["ɵeld"](182,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](183,49152,null,0,zn.a,[xl.Location,t.b],null,null)],(function(l,n){var u=n.component;l(n,3,0,u.userForm),l(n,6,0,u.userForm),l(n,14,0);var t=l(n,20,0,!u.editing);l(n,19,0,"cd-col-form-label",t),l(n,24,0,""),l(n,27,0,"uid"),l(n,30,0,"uid"),l(n,32,0,u.userForm.showError("uid",e["ɵnov"](n,3),"required")),l(n,34,0,u.userForm.showError("uid",e["ɵnov"](n,3),"notUnique")),l(n,36,0);var i=l(n,42,0,!u.editing);l(n,41,0,"cd-col-form-label",i),l(n,48,0,"display_name"),l(n,51,0,"display_name"),l(n,53,0,u.userForm.showError("display_name",e["ɵnov"](n,3),"required")),l(n,55,0),l(n,64,0,"email"),l(n,67,0,"email"),l(n,69,0,u.userForm.showError("email",e["ɵnov"](n,3),"email")),l(n,71,0,u.userForm.showError("email",e["ɵnov"](n,3),"notUnique")),l(n,73,0),l(n,82,0,"max_buckets_mode"),l(n,85,0,"max_buckets_mode"),l(n,87,0,"-1"),l(n,88,0,"-1"),l(n,91,0,"0"),l(n,92,0,"0"),l(n,95,0,"1"),l(n,96,0,"1"),l(n,99,0,1==u.userForm.get("max_buckets_mode").value),l(n,101,0),l(n,109,0,"suspended"),l(n,112,0,"suspended"),l(n,116,0,!u.editing),l(n,118,0,u.editing),l(n,120,0,u.editing),l(n,122,0,u.editing),l(n,127,0),l(n,135,0,"user_quota_enabled"),l(n,138,0,"user_quota_enabled"),l(n,142,0,u.userForm.controls.user_quota_enabled.value),l(n,144,0,u.userForm.controls.user_quota_enabled.value&&!u.userForm.getValue("user_quota_max_size_unlimited")),l(n,146,0,u.userForm.controls.user_quota_enabled.value),l(n,148,0,u.userForm.controls.user_quota_enabled.value&&!u.userForm.getValue("user_quota_max_objects_unlimited")),l(n,153,0),l(n,161,0,"bucket_quota_enabled"),l(n,164,0,"bucket_quota_enabled"),l(n,168,0,u.userForm.controls.bucket_quota_enabled.value),l(n,170,0,u.userForm.controls.bucket_quota_enabled.value&&!u.userForm.getValue("bucket_quota_max_size_unlimited")),l(n,172,0,u.userForm.controls.bucket_quota_enabled.value),l(n,174,0,u.userForm.controls.bucket_quota_enabled.value&&!u.userForm.getValue("bucket_quota_max_objects_unlimited")),l(n,178,0,u.userForm)}),(function(l,n){var u=n.component;l(n,1,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending);var t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,9,1,l(n,11,0,e["ɵnov"](n.parent,1),u.resource));l(n,9,0,t,i),l(n,13,0,e["ɵnov"](n,14).hasErrors,e["ɵnov"](n,14).hasSuccess),l(n,23,0,u.editing,e["ɵnov"](n,29).ngClassUntouched,e["ɵnov"](n,29).ngClassTouched,e["ɵnov"](n,29).ngClassPristine,e["ɵnov"](n,29).ngClassDirty,e["ɵnov"](n,29).ngClassValid,e["ɵnov"](n,29).ngClassInvalid,e["ɵnov"](n,29).ngClassPending,e["ɵnov"](n,30).validClass,e["ɵnov"](n,30).invalidClass),l(n,35,0,e["ɵnov"](n,36).hasErrors,e["ɵnov"](n,36).hasSuccess),l(n,45,0,e["ɵnov"](n,50).ngClassUntouched,e["ɵnov"](n,50).ngClassTouched,e["ɵnov"](n,50).ngClassPristine,e["ɵnov"](n,50).ngClassDirty,e["ɵnov"](n,50).ngClassValid,e["ɵnov"](n,50).ngClassInvalid,e["ɵnov"](n,50).ngClassPending,e["ɵnov"](n,51).validClass,e["ɵnov"](n,51).invalidClass),l(n,54,0,e["ɵnov"](n,55).hasErrors,e["ɵnov"](n,55).hasSuccess),l(n,61,0,e["ɵnov"](n,66).ngClassUntouched,e["ɵnov"](n,66).ngClassTouched,e["ɵnov"](n,66).ngClassPristine,e["ɵnov"](n,66).ngClassDirty,e["ɵnov"](n,66).ngClassValid,e["ɵnov"](n,66).ngClassInvalid,e["ɵnov"](n,66).ngClassPending,e["ɵnov"](n,67).validClass,e["ɵnov"](n,67).invalidClass),l(n,72,0,e["ɵnov"](n,73).hasErrors,e["ɵnov"](n,73).hasSuccess),l(n,79,0,e["ɵnov"](n,84).ngClassUntouched,e["ɵnov"](n,84).ngClassTouched,e["ɵnov"](n,84).ngClassPristine,e["ɵnov"](n,84).ngClassDirty,e["ɵnov"](n,84).ngClassValid,e["ɵnov"](n,84).ngClassInvalid,e["ɵnov"](n,84).ngClassPending,e["ɵnov"](n,85).validClass,e["ɵnov"](n,85).invalidClass),l(n,100,0,e["ɵnov"](n,101).hasErrors,e["ɵnov"](n,101).hasSuccess),l(n,106,0,e["ɵnov"](n,111).ngClassUntouched,e["ɵnov"](n,111).ngClassTouched,e["ɵnov"](n,111).ngClassPristine,e["ɵnov"](n,111).ngClassDirty,e["ɵnov"](n,111).ngClassValid,e["ɵnov"](n,111).ngClassInvalid,e["ɵnov"](n,111).ngClassPending,e["ɵnov"](n,112).validClass,e["ɵnov"](n,112).invalidClass),l(n,126,0,e["ɵnov"](n,127).hasErrors,e["ɵnov"](n,127).hasSuccess),l(n,132,0,e["ɵnov"](n,137).ngClassUntouched,e["ɵnov"](n,137).ngClassTouched,e["ɵnov"](n,137).ngClassPristine,e["ɵnov"](n,137).ngClassDirty,e["ɵnov"](n,137).ngClassValid,e["ɵnov"](n,137).ngClassInvalid,e["ɵnov"](n,137).ngClassPending,e["ɵnov"](n,138).validClass,e["ɵnov"](n,138).invalidClass),l(n,152,0,e["ɵnov"](n,153).hasErrors,e["ɵnov"](n,153).hasSuccess),l(n,158,0,e["ɵnov"](n,163).ngClassUntouched,e["ɵnov"](n,163).ngClassTouched,e["ɵnov"](n,163).ngClassPristine,e["ɵnov"](n,163).ngClassDirty,e["ɵnov"](n,163).ngClassValid,e["ɵnov"](n,163).ngClassInvalid,e["ɵnov"](n,163).ngClassPending,e["ɵnov"](n,164).validClass,e["ɵnov"](n,164).invalidClass);var a=e["ɵunv"](n,179,0,l(n,180,0,e["ɵnov"](n.parent,0),u.action)),o=e["ɵunv"](n,179,1,l(n,181,0,e["ɵnov"](n.parent,1),u.resource));l(n,179,0,a,o)}))}function _t(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵand"](16777216,null,null,1,null,Se)),e["ɵdid"](3,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,xe)),e["ɵdid"](5,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ct)),e["ɵdid"](7,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)}),null)}function kt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-form",[],null,null,null,_t,Ve)),e["ɵdid"](1,114688,null,0,Q,[R.a,ue.a,ue.m,_.a,sn.b,w.a,Il.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var yt=e["ɵccf"]("cd-rgw-user-form",Q,kt,{},{},[]),Rt=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function It(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,he.b,he.a)),e["ɵdid"](1,114688,null,0,Ce.a,[Il.a],{type:[0,"type"],size:[1,"size"]},null),(l()(),e["ɵted"](-1,0,["The bucket list data might be stale. If needed, you can manually reload it."]))],(function(l,n){l(n,1,0,"warning","slim")}),null)}function wt(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),(l()(),e["ɵand"](16777216,null,null,1,null,It)),e["ɵdid"](2,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](3,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","bid"],["selectionType","multiClick"]],null,[[null,"updateSelection"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getBucketList(u)&&e),e}),nn.b,nn.a)),e["ɵdid"](4,2867200,[[1,4],["table",4]],0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](5,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_e.b,_e.a)),e["ɵdid"](6,114688,null,0,ke.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](7,0,null,3,1,"cd-rgw-bucket-details",[["cdTableDetail",""]],null,null,null,Jl,zl)),e["ɵdid"](8,573440,null,0,Ll,[],{selection:[0,"selection"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.isStale),l(n,4,0,u.buckets,u.columns,"flex",!1,"bid","multiClick"),l(n,6,0,u.permission,u.selection,u.tableActions),l(n,8,0,u.selection)}),null)}function Et(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rgw-bucket-list",[],null,null,null,wt,Rt)),e["ɵprd"](256,null,F.a,j,[]),e["ɵdid"](2,49152,null,0,B,[D.a,h,sn.b,Il.a,F.a,t.b,e.NgZone],null,null)],null,null)}var Nt=e["ɵccf"]("cd-rgw-bucket-list",B,Et,{},{},[]),qt=u("4HWh"),Tt=u("p4Cf"),Vt=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function St(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Ne.b,Ne.a)),e["ɵdid"](1,49152,null,0,qe.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading bucket data..."]))],null,null)}function xt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","id"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Id"])),(l()(),e["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","id"],["id","id"],["name","id"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,1,0),l(n,10,0,"id"),l(n,13,0,"id")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Dt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ft(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function jt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen name is already in use."]))],null,null)}function Bt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function At(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a user --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Pt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Mt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ot(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Ut(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a placement target --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Lt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.name),l(n,2,0,n.context.$implicit.name)}),(function(l,n){l(n,3,0,n.context.$implicit.description)}))}function zt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Gt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","placement-target"],["id","placement-target"],["name","placement-target"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](3,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ot)),e["ɵdid"](8,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ut)),e["ɵdid"](10,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Lt)),e["ɵdid"](12,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,zt)),e["ɵdid"](14,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){var u=n.component;l(n,3,0,"placement-target"),l(n,6,0,"placement-target"),l(n,8,0,null===u.placementTargets),l(n,10,0,null!==u.placementTargets),l(n,12,0,u.placementTargets),l(n,14,0,u.bucketForm.showError("placement-target",e["ɵnov"](n.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Kt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,6,"input",[["class","form-control"],["formControlName","placement-target"],["id","placement-target"],["name","placement-target"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,2)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,2)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,2)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](4,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,4,0,"placement-target"),l(n,7,0,"placement-target")}),(function(l,n){l(n,1,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function $t(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Versioning"])),(l()(),e["ɵeld"](3,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","versioning"],["id","versioning"],["name","versioning"],["type","checkbox"]],[[8,"checked",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0,i=l.component;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),"change"===n&&(t=!1!==i.updateVersioning()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","versioning"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](18,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](19,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](20,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables versioning for the objects in the bucket."]))],(function(l,n){l(n,4,0),l(n,12,0,"versioning"),l(n,15,0,"versioning")}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,u.isVersioningEnabled,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Zt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ht(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mfa-token-serial"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Token Serial Number"])),(l()(),e["ɵeld"](6,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","mfa-token-serial"],["id","mfa-token-serial"],["name","mfa-token-serial"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[13,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Zt)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"mfa-token-serial"),l(n,13,0,"mfa-token-serial"),l(n,15,0,u.bucketForm.showError("mfa-token-serial",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Qt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Yt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mfa-token-pin"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Token PIN"])),(l()(),e["ɵeld"](6,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","mfa-token-pin"],["id","mfa-token-pin"],["name","mfa-token-pin"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[15,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Qt)),e["ɵdid"](15,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"mfa-token-pin"),l(n,13,0,"mfa-token-pin"),l(n,15,0,u.bucketForm.showError("mfa-token-pin",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Wt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Multi-Factor Authentication"])),(l()(),e["ɵeld"](3,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](4,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","mfa-delete"],["id","mfa-delete"],["name","mfa-delete"],["type","checkbox"]],[[8,"checked",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0,i=l.component;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),"change"===n&&(t=!1!==i.updateMfaDelete()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[11,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","mfa-delete"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Delete enabled"])),(l()(),e["ɵeld"](18,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](19,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](20,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state."])),(l()(),e["ɵand"](16777216,null,null,1,null,Ht)),e["ɵdid"](23,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Yt)),e["ɵdid"](25,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"mfa-delete"),l(n,15,0,"mfa-delete"),l(n,23,0,u.areMfaCredentialsRequired()),l(n,25,0,u.areMfaCredentialsRequired())}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,u.isMfaDeleteEnabled,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Jt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","lock_mode"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mode"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","lock_mode"],["id","lock_mode"],["name","lock_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](10,671744,[[19,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](14,0,null,null,3,"option",[["value","COMPLIANCE"]],null,null,null,null,null)),e["ɵdid"](15,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](16,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Compliance"])),(l()(),e["ɵeld"](18,0,null,null,3,"option",[["value","GOVERNANCE"]],null,null,null,null,null)),e["ɵdid"](19,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](20,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Governance"]))],(function(l,n){l(n,1,0),l(n,10,0,"lock_mode"),l(n,13,0,"lock_mode"),l(n,15,0,"COMPLIANCE"),l(n,16,0,"COMPLIANCE"),l(n,19,0,"GOVERNANCE"),l(n,20,0,"GOVERNANCE")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Xt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be a positive integer."]))],null,null)}function li(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Retention period requires either Days or Years."]))],null,null)}function ni(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,5,"label",[["class","cd-col-form-label"],["for","lock_retention_period_days"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Days"])),(l()(),e["ɵeld"](7,0,null,null,2,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](8,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵted"](-1,0,["The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket."])),(l()(),e["ɵeld"](10,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,7,"input",[["class","form-control"],["formControlName","lock_retention_period_days"],["id","lock_retention_period_days"],["min","0"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,13).onTouched()&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](13,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](15,671744,[[21,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](17,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](18,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xt)),e["ɵdid"](20,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,li)),e["ɵdid"](22,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,15,0,"lock_retention_period_days"),l(n,18,0,"lock_retention_period_days"),l(n,20,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"pattern")),l(n,22,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"eitherDaysOrYears"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass)}))}function ui(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be a positive integer."]))],null,null)}function ei(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Retention period requires either Days or Years."]))],null,null)}function ti(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](1,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,5,"label",[["class","cd-col-form-label"],["for","lock_retention_period_years"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Years"])),(l()(),e["ɵeld"](7,0,null,null,2,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](8,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵted"](-1,0,["The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket."])),(l()(),e["ɵeld"](10,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,7,"input",[["class","form-control"],["formControlName","lock_retention_period_years"],["id","lock_retention_period_years"],["min","0"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,13).onTouched()&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](13,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](15,671744,[[23,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](17,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](18,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ui)),e["ɵdid"](20,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ei)),e["ɵdid"](22,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,15,0,"lock_retention_period_years"),l(n,18,0,"lock_retention_period_years"),l(n,20,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"pattern")),l(n,22,0,u.bucketForm.showError("lock_retention_period_years",e["ɵnov"](n.parent,3),"eitherDaysOrYears"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass)}))}function ii(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,115,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,114,"form",[["name","bucketForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,3).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,3).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,6).onSubmit()&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.G,[],null,null),e["ɵdid"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](5,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](6,16384,null,0,Pn.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](7,0,null,null,108,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,[""," ",""])),e["ɵppd"](10,1),e["ɵppd"](11,1),(l()(),e["ɵeld"](12,0,null,null,94,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,xt)),e["ɵdid"](14,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](15,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](16,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](19,0,null,0,4,"label",[["class","cd-col-form-label"],["for","bid"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](21,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](22,{required:0}),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](24,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](25,0,null,null,7,"input",[["class","form-control"],["formControlName","bid"],["id","bid"],["name","bid"],["placeholder","Name..."],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,27)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,27).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,27)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,27)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](26,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](27,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](29,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](31,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](32,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Dt)),e["ɵdid"](34,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ft)),e["ɵdid"](36,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,jt)),e["ɵdid"](38,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](39,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](40,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](43,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","owner"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Owner"])),(l()(),e["ɵeld"](45,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](46,0,null,null,13,"select",[["class","form-control custom-select"],["formControlName","owner"],["id","owner"],["name","owner"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,48).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,48).onTouched()&&t),t}),null,null)),e["ɵdid"](47,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](48,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](50,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](52,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](53,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Bt)),e["ɵdid"](55,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,At)),e["ɵdid"](57,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pt)),e["ɵdid"](59,278528,null,0,xl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Mt)),e["ɵdid"](61,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](62,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](63,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](66,0,null,0,4,"label",[["class","cd-col-form-label"],["for","placement-target"]],null,null,null,null,null)),e["ɵprd"](512,null,xl["ɵNgClassImpl"],xl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](68,278528,null,0,xl.NgClass,[xl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](69,{required:0}),(l()(),e["ɵted"](-1,null,["Placement target"])),(l()(),e["ɵeld"](71,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](0,[["placementTargetSelect",2]],null,0,null,Gt)),(l()(),e["ɵand"](16777216,null,null,1,null,Kt)),e["ɵdid"](74,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,$t)),e["ɵdid"](76,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Wt)),e["ɵdid"](78,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](79,0,null,null,27,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](80,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Locking"])),(l()(),e["ɵeld"](82,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,An.b,An.a)),e["ɵdid"](83,1163264,null,2,Pn.c,[e.ElementRef,Pn.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](86,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](87,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](88,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","lock_enabled"],["id","lock_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,89).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,89).onTouched()&&t),t}),null,null)),e["ɵdid"](89,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](91,671744,[[17,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](93,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](94,16384,null,0,Pn.h,[[3,d.d],Pn.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](95,0,null,null,1,"label",[["class","custom-control-label"],["for","lock_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](97,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](98,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](99,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket."])),(l()(),e["ɵand"](16777216,null,null,1,null,Jt)),e["ɵdid"](102,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ni)),e["ɵdid"](104,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ti)),e["ɵdid"](106,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](107,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Qn.b,Qn.a)),e["ɵdid"](110,114688,null,0,Yn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](111,0,[""," ",""])),e["ɵppd"](112,1),e["ɵppd"](113,1),(l()(),e["ɵeld"](114,0,null,null,1,"cd-back-button",[],null,null,null,Ln.b,Ln.a)),e["ɵdid"](115,49152,null,0,zn.a,[xl.Location,t.b],null,null)],(function(l,n){var u=n.component;l(n,3,0,u.bucketForm),l(n,6,0,u.bucketForm),l(n,14,0,u.editing),l(n,16,0);var t=l(n,22,0,!u.editing);l(n,21,0,"cd-col-form-label",t),l(n,26,0,!u.editing),l(n,29,0,"bid"),l(n,32,0,"bid"),l(n,34,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"required")),l(n,36,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"bucketNameInvalid")),l(n,38,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"bucketNameExists")),l(n,40,0),l(n,47,0,u.editing),l(n,50,0,"owner"),l(n,53,0,"owner"),l(n,55,0,null===u.owners),l(n,57,0,null!==u.owners),l(n,59,0,u.owners),l(n,61,0,u.bucketForm.showError("owner",e["ɵnov"](n,3),"required")),l(n,63,0);var i=l(n,69,0,!u.editing);l(n,68,0,"cd-col-form-label",i),l(n,74,0,u.editing,e["ɵnov"](n,72)),l(n,76,0,u.editing),l(n,78,0,u.editing),l(n,83,0),l(n,91,0,"lock_enabled"),l(n,94,0,"lock_enabled"),l(n,102,0,u.bucketForm.getValue("lock_enabled")),l(n,104,0,u.bucketForm.getValue("lock_enabled")),l(n,106,0,u.bucketForm.getValue("lock_enabled")),l(n,110,0,u.bucketForm)}),(function(l,n){var u=n.component;l(n,1,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending);var t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,9,1,l(n,11,0,e["ɵnov"](n.parent,1),u.resource));l(n,9,0,t,i),l(n,15,0,e["ɵnov"](n,16).hasErrors,e["ɵnov"](n,16).hasSuccess),l(n,25,0,u.editing,e["ɵnov"](n,31).ngClassUntouched,e["ɵnov"](n,31).ngClassTouched,e["ɵnov"](n,31).ngClassPristine,e["ɵnov"](n,31).ngClassDirty,e["ɵnov"](n,31).ngClassValid,e["ɵnov"](n,31).ngClassInvalid,e["ɵnov"](n,31).ngClassPending,e["ɵnov"](n,32).validClass,e["ɵnov"](n,32).invalidClass),l(n,39,0,e["ɵnov"](n,40).hasErrors,e["ɵnov"](n,40).hasSuccess),l(n,46,0,e["ɵnov"](n,52).ngClassUntouched,e["ɵnov"](n,52).ngClassTouched,e["ɵnov"](n,52).ngClassPristine,e["ɵnov"](n,52).ngClassDirty,e["ɵnov"](n,52).ngClassValid,e["ɵnov"](n,52).ngClassInvalid,e["ɵnov"](n,52).ngClassPending,e["ɵnov"](n,53).validClass,e["ɵnov"](n,53).invalidClass),l(n,62,0,e["ɵnov"](n,63).hasErrors,e["ɵnov"](n,63).hasSuccess),l(n,82,0,e["ɵnov"](n,83).hasErrors,e["ɵnov"](n,83).hasSuccess),l(n,88,0,e["ɵnov"](n,93).ngClassUntouched,e["ɵnov"](n,93).ngClassTouched,e["ɵnov"](n,93).ngClassPristine,e["ɵnov"](n,93).ngClassDirty,e["ɵnov"](n,93).ngClassValid,e["ɵnov"](n,93).ngClassInvalid,e["ɵnov"](n,93).ngClassPending,e["ɵnov"](n,94).validClass,e["ɵnov"](n,94).invalidClass);var a=e["ɵunv"](n,111,0,l(n,112,0,e["ɵnov"](n.parent,0),u.action)),o=e["ɵunv"](n,111,1,l(n,113,0,e["ɵnov"](n.parent,1),u.resource));l(n,111,0,a,o)}))}function ai(l){return e["ɵvid"](0,[e["ɵpid"](0,xl.TitleCasePipe,[]),e["ɵpid"](0,jn.a,[]),(l()(),e["ɵand"](16777216,null,null,1,null,St)),e["ɵdid"](3,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ii)),e["ɵdid"](5,16384,null,0,xl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,!u.loading&&!u.error)}),null)}function oi(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-bucket-form",[],null,null,null,ai,Vt)),e["ɵdid"](1,114688,null,0,q,[ue.a,ue.m,R.a,h,C,_.a,w.a,Il.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var si=e["ɵccf"]("cd-rgw-bucket-form",q,oi,{},{},[]),di=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ri(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["type","info"]],null,null,null,he.b,he.a)),e["ɵdid"](1,114688,null,0,Ce.a,[Il.a],{type:[0,"type"]},null),(l()(),e["ɵted"](2,0,[" ",""])),(l()(),e["ɵeld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Please consult the "])),(l()(),e["ɵeld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["ɵted"](-1,null,["documentation"])),(l()(),e["ɵted"](-1,null,[" on how to configure and enable the Object Gateway management functionality."]))],(function(l,n){l(n,1,0,"info")}),(function(l,n){var u=n.component;l(n,2,0,u.message),l(n,6,0,e["ɵinlineInterpolate"](1,"",u.docsUrl,""))}))}function ci(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-501",[],null,null,null,ri,di)),e["ɵdid"](1,245760,null,0,s,[ue.a,o.a,a.a],null,null)],(function(l,n){l(n,1,0)}),null)}var mi=e["ɵccf"]("cd-rgw-501",s,ci,{},{},[]);u.d(n,"RgwModuleNgFactory",(function(){return gi})),u.d(n,"RoutedRgwModuleNgFactory",(function(){return pi}));var gi=e["ɵcmf"](X,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[dl.a,rl.a,cl.a,ml.a,ml.b,gl.a,pl.a,fl.a,vl.a,bl.a,hl.a,Ml,ln,Fn,Zn,cu,yu,Du]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,xl.NgLocalization,xl.NgLocaleLocalization,[e.LOCALE_ID,[2,xl["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,Fu.a,Fu.a,[]),e["ɵmpd"](4608,ju.a,ju.a,[]),e["ɵmpd"](4608,Ol.a,Ol.a,[Il.a]),e["ɵmpd"](4608,xl.DatePipe,xl.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,a.a,a.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,an.a,an.a,[U.a]),e["ɵmpd"](4608,Bu.a,Bu.a,[U.a]),e["ɵmpd"](4608,Ul.a,Ul.a,[U.a]),e["ɵmpd"](4608,Au.a,Au.a,[]),e["ɵmpd"](4608,Pu.a,Pu.a,[]),e["ɵmpd"](4608,Mu.a,Mu.a,[]),e["ɵmpd"](4608,Ou.a,Ou.a,[]),e["ɵmpd"](4608,ql.a,ql.a,[xl.DatePipe]),e["ɵmpd"](4608,Uu.a,Uu.a,[]),e["ɵmpd"](4608,Lu.a,Lu.a,[]),e["ɵmpd"](4608,zu.a,zu.a,[]),e["ɵmpd"](4608,Gu.a,Gu.a,[]),e["ɵmpd"](4608,Ku.a,Ku.a,[]),e["ɵmpd"](4608,$u.a,$u.a,[Il.a]),e["ɵmpd"](4608,jn.a,jn.a,[]),e["ɵmpd"](4608,tn.a,tn.a,[]),e["ɵmpd"](4608,Zu.a,Zu.a,[]),e["ɵmpd"](4608,d.D,d.D,[]),e["ɵmpd"](4608,d.h,d.h,[]),e["ɵmpd"](4608,Hu.b,Hu.b,[]),e["ɵmpd"](4608,Qu.a,Qu.a,[]),e["ɵmpd"](4608,Yu.a,Yu.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,en.a,en.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Yu.a,e.ApplicationRef]),e["ɵmpd"](4608,Wu.c,Wu.c,[]),e["ɵmpd"](4608,Ju.a,Ju.a,[]),e["ɵmpd"](4608,sn.b,sn.b,[e.RendererFactory2,en.a]),e["ɵmpd"](4608,Xu.ScrollbarHelper,Xu.ScrollbarHelper,[xl.DOCUMENT]),e["ɵmpd"](4608,le.DimensionsHelper,le.DimensionsHelper,[]),e["ɵmpd"](4608,ne.ColumnChangesService,ne.ColumnChangesService,[]),e["ɵmpd"](4608,un.f,un.f,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,i.a,i.a,[ue.m,D.a]),e["ɵmpd"](4608,Cl.f,Cl.f,[]),e["ɵmpd"](1073742336,xl.CommonModule,xl.CommonModule,[]),e["ɵmpd"](1073742336,ee.a,ee.a,[]),e["ɵmpd"](1073742336,d.C,d.C,[]),e["ɵmpd"](1073742336,d.n,d.n,[]),e["ɵmpd"](1073742336,d.y,d.y,[]),e["ɵmpd"](1073742336,Hu.c,Hu.c,[]),e["ɵmpd"](1073742336,Qu.d,Qu.d,[]),e["ɵmpd"](1073742336,Wu.d,Wu.d,[]),e["ɵmpd"](1073742336,Ju.d,Ju.d,[]),e["ɵmpd"](1073742336,te.b,te.b,[]),e["ɵmpd"](1073742336,sn.e,sn.e,[]),e["ɵmpd"](1073742336,ie.a,ie.a,[]),e["ɵmpd"](1073742336,un.e,un.e,[]),e["ɵmpd"](1073742336,Pn.f,Pn.f,[]),e["ɵmpd"](1073742336,ae.ClickOutsideModule,ae.ClickOutsideModule,[]),e["ɵmpd"](1073742336,oe.b,oe.b,[]),e["ɵmpd"](1073742336,ue.q,ue.q,[[2,ue.v],[2,ue.m]]),e["ɵmpd"](1073742336,se.a,se.a,[]),e["ɵmpd"](1073742336,de.NgxDatatableModule,de.NgxDatatableModule,[]),e["ɵmpd"](1073742336,re.a,re.a,[]),e["ɵmpd"](1073742336,b.a,b.a,[]),e["ɵmpd"](1073742336,ce.a,ce.a,[]),e["ɵmpd"](1073742336,me.a,me.a,[]),e["ɵmpd"](1073742336,Cl.d,Cl.d,[]),e["ɵmpd"](1073742336,X,X,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,un.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),pi=e["ɵcmf"](sl,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[dl.a,rl.a,cl.a,ml.a,ml.b,gl.a,pl.a,fl.a,vl.a,bl.a,hl.a,Ml,ln,Fn,Zn,cu,yu,Du,be,Ee,yt,Nt,si,mi]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,xl.NgLocalization,xl.NgLocaleLocalization,[e.LOCALE_ID,[2,xl["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,Fu.a,Fu.a,[]),e["ɵmpd"](4608,ju.a,ju.a,[]),e["ɵmpd"](4608,Ol.a,Ol.a,[Il.a]),e["ɵmpd"](4608,xl.DatePipe,xl.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,a.a,a.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,an.a,an.a,[U.a]),e["ɵmpd"](4608,Bu.a,Bu.a,[U.a]),e["ɵmpd"](4608,Ul.a,Ul.a,[U.a]),e["ɵmpd"](4608,Au.a,Au.a,[]),e["ɵmpd"](4608,Pu.a,Pu.a,[]),e["ɵmpd"](4608,Mu.a,Mu.a,[]),e["ɵmpd"](4608,Ou.a,Ou.a,[]),e["ɵmpd"](4608,ql.a,ql.a,[xl.DatePipe]),e["ɵmpd"](4608,Uu.a,Uu.a,[]),e["ɵmpd"](4608,Lu.a,Lu.a,[]),e["ɵmpd"](4608,zu.a,zu.a,[]),e["ɵmpd"](4608,Gu.a,Gu.a,[]),e["ɵmpd"](4608,Ku.a,Ku.a,[]),e["ɵmpd"](4608,$u.a,$u.a,[Il.a]),e["ɵmpd"](4608,jn.a,jn.a,[]),e["ɵmpd"](4608,tn.a,tn.a,[]),e["ɵmpd"](4608,Zu.a,Zu.a,[]),e["ɵmpd"](4608,d.D,d.D,[]),e["ɵmpd"](4608,d.h,d.h,[]),e["ɵmpd"](4608,Hu.b,Hu.b,[]),e["ɵmpd"](4608,Qu.a,Qu.a,[]),e["ɵmpd"](4608,Yu.a,Yu.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,en.a,en.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Yu.a,e.ApplicationRef]),e["ɵmpd"](4608,Wu.c,Wu.c,[]),e["ɵmpd"](4608,Ju.a,Ju.a,[]),e["ɵmpd"](4608,sn.b,sn.b,[e.RendererFactory2,en.a]),e["ɵmpd"](4608,Xu.ScrollbarHelper,Xu.ScrollbarHelper,[xl.DOCUMENT]),e["ɵmpd"](4608,le.DimensionsHelper,le.DimensionsHelper,[]),e["ɵmpd"](4608,ne.ColumnChangesService,ne.ColumnChangesService,[]),e["ɵmpd"](4608,un.f,un.f,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,i.a,i.a,[ue.m,D.a]),e["ɵmpd"](4608,Cl.f,Cl.f,[]),e["ɵmpd"](1073742336,xl.CommonModule,xl.CommonModule,[]),e["ɵmpd"](1073742336,ee.a,ee.a,[]),e["ɵmpd"](1073742336,d.C,d.C,[]),e["ɵmpd"](1073742336,d.n,d.n,[]),e["ɵmpd"](1073742336,d.y,d.y,[]),e["ɵmpd"](1073742336,Hu.c,Hu.c,[]),e["ɵmpd"](1073742336,Qu.d,Qu.d,[]),e["ɵmpd"](1073742336,Wu.d,Wu.d,[]),e["ɵmpd"](1073742336,Ju.d,Ju.d,[]),e["ɵmpd"](1073742336,te.b,te.b,[]),e["ɵmpd"](1073742336,sn.e,sn.e,[]),e["ɵmpd"](1073742336,ie.a,ie.a,[]),e["ɵmpd"](1073742336,un.e,un.e,[]),e["ɵmpd"](1073742336,Pn.f,Pn.f,[]),e["ɵmpd"](1073742336,ae.ClickOutsideModule,ae.ClickOutsideModule,[]),e["ɵmpd"](1073742336,oe.b,oe.b,[]),e["ɵmpd"](1073742336,ue.q,ue.q,[[2,ue.v],[2,ue.m]]),e["ɵmpd"](1073742336,se.a,se.a,[]),e["ɵmpd"](1073742336,de.NgxDatatableModule,de.NgxDatatableModule,[]),e["ɵmpd"](1073742336,re.a,re.a,[]),e["ɵmpd"](1073742336,b.a,b.a,[]),e["ɵmpd"](1073742336,ce.a,ce.a,[]),e["ɵmpd"](1073742336,me.a,me.a,[]),e["ɵmpd"](1073742336,Cl.d,Cl.d,[]),e["ɵmpd"](1073742336,X,X,[]),e["ɵmpd"](1073742336,sl,sl,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,un.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,ue.k,(function(){return[[{path:"",redirectTo:"daemon",pathMatch:"full"},{path:"daemon",component:M,data:ll},{path:"user",data:nl,children:[{path:"",component:J},{path:"create",component:Q,data:ul},{path:"edit/:uid",component:Q,data:el}]},{path:"bucket",data:tl,children:[{path:"",component:B},{path:"create",component:q,data:il},{path:"edit/:bid",component:q,data:al}]},{path:"501/:message",component:s,canActivate:[i.a],data:ol}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.c0ad55977c0a220b3203.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/6.c0ad55977c0a220b3203.js
new file mode 100644 (file)
index 0000000..96a4cd1
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{J6Oi:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),a=u("k/xb"),t=u("MdoF"),o=u("ES0t"),d=u("Xg1U"),i=u("z5nN"),r=u("iutN"),s=u("pMnS"),c=u("EEJc"),p=u("PEr+"),m=u("a40w"),g=u("hfeG"),f=u("QUzE"),v=u("E7j4"),C=u("xvu0"),b=u("RIVN"),h=u("nP0W"),I=u("VBM6"),R=u("atuK"),N=u("JIi+"),w=u("0BYw"),E=u("3IYD"),T=u("I4Qz"),y=u("0rTx"),V=u("lz+O"),x=u("u2XS"),q=u("nhAp"),k=u("l7Jr"),_=u("bUo2"),D=u("SVse"),F=u("yT6U"),P=u("4DD9"),S=u("iExv"),A=u("GiVz"),O=u("85J/"),j=u("+0ag"),U=u("aXbf"),B=u("Fgil"),$=u("IzCI"),M=u("o4+5"),L=u("Dwqy"),z=u("uYzU"),G=u("FFMq"),K=u("E2fk"),Z=u("a0VL"),J=u("nSDx"),W=u("SB+Q"),Q=u("TYzs"),Y=u("BQkM"),X=u("dEH0"),H=u("G1/K"),ll=u("8xTl"),nl=u("TJUb"),ul=u("efK2"),el=u("s7LF"),al=u("CNMR"),tl=u("KOzp"),ol=u("2uy1"),dl=u("z/SZ"),il=u("38Bd"),rl=u("978R"),sl=u("LqlI"),cl=u("w9WL"),pl=u("FE24"),ml=u("aexS"),gl=u("Avrn"),fl=u("iInd"),vl=u("2ZVE"),Cl=u("ienR"),bl=u("gk6K"),hl=u("9Xeq"),Il=u("hrfs"),Rl=u("yGOH"),Nl=u("+gVj"),wl=u("bxSN"),El=u("WF9J"),Tl=u("V/fk"),yl=u("ChqD"),Vl=u("pL04"),xl=u("PCNd"),ql=u("kccj"),kl=u("yYhs"),_l=u("C6Ij"),Dl=u("AWcq"),Fl=u("pKUh");class Pl{constructor(l,n){this.authStorageService=l,this.router=n,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var Sl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Al(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/performance")&&e),e}),null,null)),e["ɵdid"](1,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){l(n,1,0,"Overall Performance","/block/rbd/performance"===n.component.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass,e["ɵnov"](n,1).role,e["ɵnov"](n,1).ariaLabelledby)}))}function Ol(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Fl.b,Fl.a)),e["ɵdid"](1,180224,null,0,vl.e,[vl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Images"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Namespaces"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/namespaces")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](6,0,null,0,1,"tab",[["heading","Trash"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/trash")&&e),e}),null,null)),e["ɵdid"](7,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵand"](16777216,null,0,1,null,Al)),e["ɵdid"](9,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Images","/block/rbd"===u.url),l(n,5,0,"Namespaces","/block/rbd/namespaces"===u.url),l(n,7,0,"Trash","/block/rbd/trash"===u.url),l(n,9,0,u.grafanaPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass,e["ɵnov"](n,5).role,e["ɵnov"](n,5).ariaLabelledby),l(n,6,0,e["ɵnov"](n,7).id,e["ɵnov"](n,7).active,e["ɵnov"](n,7).addClass,e["ɵnov"](n,7).role,e["ɵnov"](n,7).ariaLabelledby)}))}var jl=u("25BL"),Ul=u("uIqm"),Bl=u("NUGo"),$l=u("S7zO"),Ml=u("JBea"),Ll=u("VTlA"),zl=u("ufoC"),Gl=u("mSOc"),Kl=u("EgGo"),Zl=u("5GyT"),Jl=u("F83c"),Wl=u("kn/O"),Ql=u("sne2"),Yl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Xl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,_l.b,_l.a)),e["ɵdid"](1,114688,null,0,Dl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function Hl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(l,n){l(n,0,0,"Only available for RBD images with <strong>fast-diff</strong> enabled")}))}function ln(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["/",""]))],null,(function(l,n){l(n,1,0,n.parent.parent.context.value.pool_namespace)}))}function nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,ln)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵted"](4,null,["/","@",""]))],(function(l,n){l(n,3,0,n.parent.context.value.pool_namespace)}),(function(l,n){l(n,1,0,n.parent.context.value.pool_name),l(n,4,0,n.parent.context.value.image_name,n.parent.context.value.snap_name)}))}function un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function en(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,nn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,un)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)}),null)}function an(l){return e["ɵvid"](0,[(l()(),e["ɵted"](-1,null,[" You are about to flatten "])),(l()(),e["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](2,null,["",""])),(l()(),e["ɵted"](-1,null,[". "])),(l()(),e["ɵeld"](4,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" All blocks will be copied from parent "])),(l()(),e["ɵeld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](8,null,["",""])),(l()(),e["ɵted"](-1,null,[" to child "])),(l()(),e["ɵeld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](11,null,["",""])),(l()(),e["ɵted"](-1,null,[".\n"]))],null,(function(l,n){l(n,2,0,n.context.$implicit.child),l(n,8,0,n.context.$implicit.parent),l(n,11,0,n.context.$implicit.child)}))}function tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.context.$implicit)}))}function on(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The following snapshots are currently protected and will be removed:"])),(l()(),e["ɵeld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,tn)),e["ɵdid"](5,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.parent.parent.context.snapshots)}),null)}function dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"div",[["class","alert alert-warning"],["role","alert"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Deleting this image will also delete all its snapshots."])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,on)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,5,0,n.parent.context.snapshots.length>0)}),null)}function rn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,dn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.hasSnapshots)}),null)}function sn(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),e["ɵqud"](671088640,2,{usageTpl:0}),e["ɵqud"](402653184,3,{parentTpl:0}),e["ɵqud"](671088640,4,{nameTpl:0}),e["ɵqud"](402653184,5,{flattenTpl:0}),e["ɵqud"](402653184,6,{deleteTpl:0}),(l()(),e["ɵeld"](6,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Ol,Sl)),e["ɵdid"](7,114688,null,0,Pl,[ml.a,fl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,Xl)),e["ɵdid"](9,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](10,0,null,null,5,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"]],(function(l,n,u){var e=!0,a=l.component;return"setExpandedRow"===n&&(e=!1!==a.setExpandedRow(u)&&e),"updateSelection"===n&&(e=!1!==a.updateSelection(u)&&e),e}),jl.b,jl.a)),e["ɵdid"](11,2867200,[[1,4],["table",4]],0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"],searchableObjects:[7,"searchableObjects"]},{updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](12,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Bl.b,Bl.a)),e["ɵdid"](13,114688,null,0,$l.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](14,0,null,3,1,"cd-rbd-details",[["cdTableDetail",""]],null,null,null,N.c,N.b)),e["ɵdid"](15,49152,null,0,Ml.a,[],{selection:[0,"selection"]},null),(l()(),e["ɵand"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,Hl)),(l()(),e["ɵand"](0,[[3,2],["parentTpl",2]],null,0,null,en)),(l()(),e["ɵand"](0,[[5,2],["flattenTpl",2]],null,0,null,an)),(l()(),e["ɵand"](0,[[6,2],["deleteTpl",2]],null,0,null,rn))],(function(l,n){var u=n.component;l(n,7,0),l(n,9,0,u.viewCacheStatusList),l(n,11,0,u.images,u.columns,"flex",!0,"id","true","single",!0),l(n,13,0,u.permission,u.selection,u.tableActions),l(n,15,0,u.expandedRow)}),null)}function cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"cd-rbd-list",[],null,null,null,sn,Yl)),e["ɵprd"](131584,null,Ll.a,Ll.a,[zl.a,Gl.a]),e["ɵprd"](256,null,Kl.a,Zl.b,[]),e["ɵdid"](3,114688,null,0,Zl.a,[ml.a,Jl.a,B.a,M.a,sl.b,Wl.a,Ll.a,A.a,Kl.a,Ql.b],null,null)],(function(l,n){l(n,3,0)}),null)}var pn=e["ɵccf"]("cd-rbd-list",Zl.a,cn,{},{},[]),mn=u("Z5tW"),gn=u("Ekvf"),fn=u("9nlD"),vn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Ol,Sl)),e["ɵdid"](1,114688,null,0,Pl,[ml.a,fl.m],null,null),(l()(),e["ɵeld"](2,0,null,null,4,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,a=l.component;return"fetchData"===n&&(e=!1!==a.refresh()&&e),"updateSelection"===n&&(e=!1!==a.updateSelection(u)&&e),e}),jl.b,jl.a)),e["ɵdid"](3,2867200,null,0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](4,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Bl.b,Bl.a)),e["ɵdid"](6,114688,null,0,$l.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,3,0,u.namespaces,u.columns,"flex","id","true","single"),l(n,6,0,u.permission,u.selection,u.tableActions)}),null)}function bn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rbd-namespace-list",[],null,null,null,Cn,vn)),e["ɵprd"](135680,null,Ll.a,Ll.a,[zl.a,Gl.a]),e["ɵdid"](2,114688,null,0,mn.a,[ml.a,Jl.a,gn.a,sl.b,fn.a,A.a,Ql.b],null,null)],(function(l,n){l(n,2,0)}),null)}var hn=e["ɵccf"]("cd-rbd-namespace-list",mn.a,bn,{},{},[]),In=u("chpi"),Rn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,_l.b,_l.a)),e["ɵdid"](1,114688,null,0,Dl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function wn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"button",[["class","btn btn-light"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.purgeModal()&&e),e}),null,null)),(l()(),e["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](3,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](4,1),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Purge Trash"]))],(function(l,n){var u=l(n,4,0,n.component.icons.destroy);l(n,3,0,u)}),(function(l,n){l(n,0,0,n.component.disablePurgeBtn)}))}function En(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Expired at"]))],null,null)}function Tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Protected until"]))],null,null)}function yn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,En)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Tn)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵted"](4,null,[" ","\n"])),e["ɵppd"](5,1)],(function(l,n){l(n,1,0,n.context.row.cdIsExpired),l(n,3,0,!n.context.row.cdIsExpired)}),(function(l,n){var u=e["ɵunv"](n,4,0,l(n,5,0,e["ɵnov"](n.parent,0),n.context.value));l(n,4,0,u)}))}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"p",[["class","text-danger"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,3,"strong",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["ɵted"](3,null,["This image is protected until ","."])),e["ɵppd"](4,1)],null,(function(l,n){var u=e["ɵunv"](n,3,0,l(n,4,0,e["ɵnov"](n.parent.parent,0),n.parent.context.$implicit));l(n,3,0,u)}))}function xn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Vn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,!n.component.isExpired(n.context.$implicit))}),null)}function qn(l){return e["ɵvid"](0,[e["ɵpid"](0,Z.a,[D.DatePipe]),e["ɵqud"](402653184,1,{table:0}),e["ɵqud"](402653184,2,{expiresTpl:0}),e["ɵqud"](402653184,3,{deleteTpl:0}),(l()(),e["ɵeld"](4,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Ol,Sl)),e["ɵdid"](5,114688,null,0,Pl,[ml.a,fl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,Nn)),e["ɵdid"](7,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](8,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e}),jl.b,jl.a)),e["ɵdid"](9,2867200,[[1,4]],0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](10,0,null,1,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Bl.b,Bl.a)),e["ɵdid"](12,114688,null,0,$l.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,wn)),e["ɵdid"](14,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,[[2,2],["expiresTpl",2]],null,0,null,yn)),(l()(),e["ɵand"](0,[[3,2],["deleteTpl",2]],null,0,null,xn))],(function(l,n){var u=n.component;l(n,5,0),l(n,7,0,u.viewCacheStatusList),l(n,9,0,u.images,u.columns,"flex","id","true","single"),l(n,12,0,u.permission,u.selection,u.tableActions),l(n,14,0,u.permission.delete)}),null)}function kn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rbd-trash-list",[],null,null,null,qn,Rn)),e["ɵprd"](131584,null,Ll.a,Ll.a,[zl.a,Gl.a]),e["ɵdid"](2,114688,null,0,In.a,[ml.a,Jl.a,sl.b,Z.a,Ll.a,Wl.a,A.a,Ql.b],null,null)],(function(l,n){l(n,2,0)}),null)}var _n=e["ɵccf"]("cd-rbd-trash-list",In.a,kn,{},{},[]),Dn=u("a278"),Fn=u("insk"),Pn=u("cUpR"),Sn=u("20UP"),An=u("WkyA"),On=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function jn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Ol,Sl)),e["ɵdid"](1,114688,null,0,Pl,[ml.a,fl.m],null,null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","41FrpeUiz"]],null,null,null,Dn.b,Dn.a)),e["ɵdid"](3,638976,null,0,Fn.a,[Gl.a,Pn.b,Sn.a,j.a,A.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0),l(n,3,0,"rbd-overview?","two","41FrpeUiz")}),null)}function Un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-performance",[],null,null,null,jn,On)),e["ɵdid"](1,49152,null,0,An.a,[],null,null)],null,null)}var Bn=e["ɵccf"]("cd-rbd-performance",An.a,Un,{},{},[]),$n=u("mXUL"),Mn=u("4HWh"),Ln=u("p4Cf"),zn=u("IZUe"),Gn=u("EmSq"),Kn=u("BH9v"),Zn=u("rFfW"),Jn=u("o8EM"),Wn=u("gp3X"),Qn=u("sb0X"),Yn=u("KVJa"),Xn=u("Z21x"),Hn=u("MyVl"),lu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,2,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," from"])),e["ɵppd"](6,1),(l()(),e["ɵeld"](7,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","parent"],["id","parent"],["name","parent"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,9).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,9)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](9,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](11,671744,[[1,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](13,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](14,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){l(n,1,0),l(n,11,0,"parent"),l(n,14,0,"parent")}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess);var a=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n.parent,0),u.action));l(n,5,0,a),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function uu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["'/' and '@' are not allowed."]))],null,null)}function au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"pool"),l(n,6,0,"pool")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No rbd pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function du(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a pool --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ou)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,du)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,iu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"pool"),l(n,6,0,"pool"),l(n,8,0,null===u.pools),l(n,10,0,null!==u.pools&&0===u.pools.length),l(n,12,0,null!==u.pools&&u.pools.length>0),l(n,14,0,u.pools)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,2)],(function(l,n){var u=n.component;l(n,1,0);var e=l(n,8,0,u.icons.spinner,u.icons.spin);l(n,7,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function pu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","namespace"],["id","namespace"],["name","namespace"],["placeholder","Namespace..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"namespace"),l(n,6,0,"namespace")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function mu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function gu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No namespaces available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a namespace --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","namespace"],["id","namespace"],["name","namespace"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,gu)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,fu)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"namespace"),l(n,6,0,"namespace"),l(n,8,0,null===u.pools),l(n,10,0,null!==u.pools&&0===u.pools.length),l(n,12,0,null!==u.pools&&u.pools.length>0),l(n,14,0,u.namespaces)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function bu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,10,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","pool"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" Namespace "])),(l()(),e["ɵeld"](6,0,null,0,4,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,pu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Cu)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,8,0,"editing"===u.mode||!u.poolPermission.read),l(n,10,0,"editing"!==u.mode&&u.poolPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function hu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"],["placeholder","Data pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"dataPool"),l(n,6,0,"dataPool")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No data pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a data pool -- "]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function wu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function Eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0,t=l.component;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"change"===n&&(a=!1!==t.onDataPoolChange(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Iu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ru)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Nu)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,wu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"dataPool"),l(n,6,0,"dataPool"),l(n,8,0,null===u.dataPools),l(n,10,0,null!==u.dataPools&&0===u.dataPools.length),l(n,12,0,null!==u.dataPools&&u.dataPools.length>0),l(n,14,0,u.dataPools)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function yu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,7,"label",[["class","cd-col-form-label"],["for","dataPool"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,4,"span",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpod"](8,{required:0}),(l()(),e["ɵted"](-1,null,["Data pool"])),(l()(),e["ɵeld"](10,0,null,null,1,"cd-helper",[["html","Dedicated pool that stores the object-data of the RBD."]],null,null,null,Mn.b,Mn.a)),e["ɵdid"](11,49152,null,0,Ln.a,[],{html:[0,"html"]},null),(l()(),e["ɵeld"](12,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,hu)),e["ɵdid"](14,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Eu)),e["ɵdid"](16,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Tu)),e["ɵdid"](18,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var a=l(n,8,0,"editing"!==u.mode);l(n,7,0,a),l(n,11,0,"Dedicated pool that stores the object-data of the RBD."),l(n,14,0,"editing"===u.mode||!u.poolPermission.read),l(n,16,0,"editing"!==u.mode&&u.poolPermission.read),l(n,18,0,u.rbdForm.showError("dataPool",e["ɵnov"](n.parent,5),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function Vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["You have to increase the size."]))],null,null)}function qu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-helper",[],null,null,null,Mn.b,Mn.a)),e["ɵdid"](1,49152,null,0,Ln.a,[],{html:[0,"html"]},null)],(function(l,n){l(n,1,0,e["ɵinlineInterpolate"](1,"",n.parent.context.$implicit.helperHtml,""))}),null)}function ku(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,2).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,2).onTouched()&&a),a}),null,null)),e["ɵdid"](2,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](4,671744,[[17,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](6,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](7,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,qu)),e["ɵdid"](11,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,7,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,11,0,n.context.$implicit.helperHtml)}),(function(l,n){l(n,1,1,[e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,""),e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,""),e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass]),l(n,8,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,9,0,n.context.$implicit.desc)}))}function _u(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"a",[["class","float-right margin-right-md"],["href",""]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.advancedEnabled=!0,e=!1),e}),null,null)),(l()(),e["ɵted"](-1,null,["Advanced..."]))],null,null)}function Du(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Pu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required because stripe count is defined!"]))],null,null)}function Su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Stripe unit is greater than object size."]))],null,null)}function Au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required because stripe unit is defined!"]))],null,null)}function Ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Stripe count must be greater than 0."]))],null,null)}function ju(l){return e["ɵvid"](0,[e["ɵpid"](0,D.TitleCasePipe,[]),e["ɵpid"](0,ll.a,[]),(l()(),e["ɵeld"](2,0,null,null,187,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,186,"form",[["name","rbdForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var a=!0;return"submit"===n&&(a=!1!==e["ɵnov"](l,5).onSubmit(u)&&a),"reset"===n&&(a=!1!==e["ɵnov"](l,5).onReset()&&a),"submit"===n&&(a=!1!==e["ɵnov"](l,8).onSubmit()&&a),a}),null,null)),e["ɵdid"](4,16384,null,0,el.G,[],null,null),e["ɵdid"](5,540672,[["formDir",4]],0,el.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,el.d,null,[el.l]),e["ɵdid"](7,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](8,16384,null,0,Nl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](9,0,null,null,180,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](11,null,[""," ",""])),e["ɵppd"](12,1),e["ɵppd"](13,1),(l()(),e["ɵeld"](14,0,null,null,166,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,nu)),e["ɵdid"](16,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](17,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](18,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](21,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](23,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](24,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,25)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,25).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,25)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,25)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](25,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](27,671744,[[3,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](29,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](30,4210688,null,0,zn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](31,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,uu)),e["ɵdid"](33,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,eu)),e["ɵdid"](35,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](36,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onPoolChange(u.target.value)&&e),e}),$n.b,$n.a)),e["ɵdid"](37,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](40,0,null,0,4,"label",[["class","cd-col-form-label"],["for","pool"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](42,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](43,{required:0}),(l()(),e["ɵted"](-1,null,["Pool"])),(l()(),e["ɵeld"](45,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,au)),e["ɵdid"](47,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ru)),e["ɵdid"](49,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,su)),e["ɵdid"](51,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,cu)),e["ɵdid"](53,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bu)),e["ɵdid"](55,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](56,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](57,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](60,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](62,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","useDataPool"],["id","useDataPool"],["name","useDataPool"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0,t=l.component;return"change"===n&&(a=!1!==e["ɵnov"](l,63).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,63).onTouched()&&a),"change"===n&&(a=!1!==t.onUseDataPoolChange()&&a),a}),null,null)),e["ɵdid"](63,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](65,671744,[[11,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](67,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](68,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](69,0,null,null,1,"label",[["class","custom-control-label"],["for","useDataPool"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Use a dedicated data pool"])),(l()(),e["ɵand"](16777216,null,null,1,null,yu)),e["ɵdid"](72,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](73,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](74,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](77,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Size"])),(l()(),e["ɵeld"](79,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](80,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","size"],["id","size"],["name","size"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,81)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,81).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,81)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,81)._compositionEnd(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,86).onBlur(u.target.value)&&a),a}),null,null)),e["ɵdid"](81,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](83,671744,[[15,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](85,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](86,81920,null,0,Gn.a,[e.ElementRef,el.q,B.a,U.a],{defaultUnit:[0,"defaultUnit"]},null),e["ɵdid"](87,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vu)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,xu)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](92,0,null,null,11,"div",[["class","form-group row"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](93,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](95,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](96,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](99,0,null,0,1,"label",[["class","cd-col-form-label"],["for","features"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Features"])),(l()(),e["ɵeld"](101,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ku)),e["ɵdid"](103,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](104,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](105,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,_u)),e["ɵdid"](107,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](108,0,null,null,72,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Advanced"])),(l()(),e["ɵeld"](111,0,null,null,67,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](112,0,null,null,1,"h3",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Striping"])),(l()(),e["ɵeld"](114,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](115,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](118,0,null,0,1,"label",[["class","cd-col-form-label"],["for","size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Object size"])),(l()(),e["ɵeld"](120,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](121,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","obj_size"],["id","obj_size"],["name","obj_size"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,122).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,122).onTouched()&&a),a}),null,null)),e["ɵdid"](122,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](124,671744,[[19,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](126,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](127,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Du)),e["ɵdid"](129,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](130,0,null,null,26,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](131,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](134,0,null,0,4,"label",[["class","cd-col-form-label"],["for","stripingUnit"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](136,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](137,{required:0}),(l()(),e["ɵted"](-1,null,["Stripe unit"])),(l()(),e["ɵeld"](139,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](140,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","stripingUnit"],["id","stripingUnit"],["name","stripingUnit"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,141).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,141).onTouched()&&a),a}),null,null)),e["ɵdid"](141,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](143,671744,[[21,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](145,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](146,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](147,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](148,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](149,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select stripe unit --"])),(l()(),e["ɵand"](16777216,null,null,1,null,Fu)),e["ɵdid"](152,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pu)),e["ɵdid"](154,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Su)),e["ɵdid"](156,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](157,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](158,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](161,0,null,0,4,"label",[["class","cd-col-form-label"],["for","stripingCount"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](163,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](164,{required:0}),(l()(),e["ɵted"](-1,null,["Stripe count"])),(l()(),e["ɵeld"](166,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](167,0,null,null,7,"input",[["class","form-control"],["formControlName","stripingCount"],["id","stripingCount"],["name","stripingCount"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,168)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,168).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,168)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,168)._compositionEnd(u.target.value)&&a),"change"===n&&(a=!1!==e["ɵnov"](l,169).onChange(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,169).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,169).onTouched()&&a),a}),null,null)),e["ɵdid"](168,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵdid"](169,16384,null,0,el.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l,n){return[l,n]}),[el.e,el.w]),e["ɵdid"](171,671744,[[23,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](173,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](174,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Au)),e["ɵdid"](176,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ou)),e["ɵdid"](178,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](179,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],(function(l,n,u){var e=!0;return"changes"===n&&(e=!1!==(l.component.getDirtyConfigurationValues=u)&&e),e}),Kn.b,Kn.a)),e["ɵdid"](180,114688,null,0,Zn.a,[U.a,Jn.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),e["ɵeld"](181,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](182,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](183,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Wn.b,Wn.a)),e["ɵdid"](184,114688,null,0,Qn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](185,0,[""," ",""])),e["ɵppd"](186,1),e["ɵppd"](187,1),(l()(),e["ɵeld"](188,0,null,null,1,"cd-back-button",[],null,null,null,Yn.b,Yn.a)),e["ɵdid"](189,49152,null,0,Xn.a,[D.Location,Ql.b],null,null)],(function(l,n){var u=n.component;l(n,5,0,u.rbdForm),l(n,8,0,u.rbdForm),l(n,16,0,u.rbdForm.getValue("parent")),l(n,18,0),l(n,27,0,"name"),l(n,30,0,""),l(n,31,0,"name"),l(n,33,0,u.rbdForm.showError("name",e["ɵnov"](n,5),"required")),l(n,35,0,u.rbdForm.showError("name",e["ɵnov"](n,5),"pattern")),l(n,37,0);var a=l(n,43,0,"editing"!==u.mode);l(n,42,0,"cd-col-form-label",a),l(n,47,0,"editing"===u.mode||!u.poolPermission.read),l(n,49,0,"editing"!==u.mode&&u.poolPermission.read),l(n,51,0,u.rbdForm.showError("pool",e["ɵnov"](n,5),"required")),l(n,53,0,"editing"!==u.mode&&u.rbdForm.getValue("pool")&&null===u.namespaces),l(n,55,0,"editing"===u.mode&&u.rbdForm.getValue("namespace")||"editing"!==u.mode&&(u.namespaces&&u.namespaces.length>0||!u.poolPermission.read)),l(n,57,0),l(n,65,0,"useDataPool"),l(n,68,0,"useDataPool"),l(n,72,0,u.rbdForm.getValue("useDataPool")),l(n,74,0),l(n,83,0,"size"),l(n,86,0,"GiB"),l(n,87,0,"size"),l(n,89,0,u.rbdForm.showError("size",e["ɵnov"](n,5),"required")),l(n,91,0,u.rbdForm.showError("size",e["ɵnov"](n,5),"invalidSizeObject")),l(n,93,0,"features"),l(n,96,0),l(n,103,0,u.featuresList),l(n,107,0,!u.advancedEnabled),l(n,115,0),l(n,124,0,"obj_size"),l(n,127,0,"obj_size"),l(n,129,0,u.objectSizes),l(n,131,0);var t=l(n,137,0,u.rbdForm.getValue("stripingCount"));l(n,136,0,"cd-col-form-label",t),l(n,143,0,"stripingUnit"),l(n,146,0,"stripingUnit"),l(n,148,0,null),l(n,149,0,null),l(n,152,0,u.objectSizes),l(n,154,0,u.rbdForm.showError("stripingUnit",e["ɵnov"](n,5),"required")),l(n,156,0,u.rbdForm.showError("stripingUnit",e["ɵnov"](n,5),"invalidStripingUnit")),l(n,158,0);var o=l(n,164,0,u.rbdForm.getValue("stripingUnit"));l(n,163,0,"cd-col-form-label",o),l(n,171,0,"stripingCount"),l(n,174,0,"stripingCount"),l(n,176,0,u.rbdForm.showError("stripingCount",e["ɵnov"](n,5),"required")),l(n,178,0,u.rbdForm.showError("stripingCount",e["ɵnov"](n,5),"min")),l(n,180,0,u.rbdForm,u.initializeConfigData),l(n,184,0,e["ɵnov"](n,5))}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,7).ngClassUntouched,e["ɵnov"](n,7).ngClassTouched,e["ɵnov"](n,7).ngClassPristine,e["ɵnov"](n,7).ngClassDirty,e["ɵnov"](n,7).ngClassValid,e["ɵnov"](n,7).ngClassInvalid,e["ɵnov"](n,7).ngClassPending);var a=e["ɵunv"](n,11,0,l(n,12,0,e["ɵnov"](n,0),u.action)),t=e["ɵunv"](n,11,1,l(n,13,0,e["ɵnov"](n,1),u.resource));l(n,11,0,a,t),l(n,17,0,e["ɵnov"](n,18).hasErrors,e["ɵnov"](n,18).hasSuccess),l(n,24,0,e["ɵnov"](n,29).ngClassUntouched,e["ɵnov"](n,29).ngClassTouched,e["ɵnov"](n,29).ngClassPristine,e["ɵnov"](n,29).ngClassDirty,e["ɵnov"](n,29).ngClassValid,e["ɵnov"](n,29).ngClassInvalid,e["ɵnov"](n,29).ngClassPending,e["ɵnov"](n,31).validClass,e["ɵnov"](n,31).invalidClass),l(n,36,0,e["ɵnov"](n,37).hasErrors,e["ɵnov"](n,37).hasSuccess),l(n,56,0,e["ɵnov"](n,57).hasErrors,e["ɵnov"](n,57).hasSuccess),l(n,62,0,e["ɵnov"](n,67).ngClassUntouched,e["ɵnov"](n,67).ngClassTouched,e["ɵnov"](n,67).ngClassPristine,e["ɵnov"](n,67).ngClassDirty,e["ɵnov"](n,67).ngClassValid,e["ɵnov"](n,67).ngClassInvalid,e["ɵnov"](n,67).ngClassPending,e["ɵnov"](n,68).validClass,e["ɵnov"](n,68).invalidClass),l(n,73,0,e["ɵnov"](n,74).hasErrors,e["ɵnov"](n,74).hasSuccess),l(n,80,0,e["ɵnov"](n,85).ngClassUntouched,e["ɵnov"](n,85).ngClassTouched,e["ɵnov"](n,85).ngClassPristine,e["ɵnov"](n,85).ngClassDirty,e["ɵnov"](n,85).ngClassValid,e["ɵnov"](n,85).ngClassInvalid,e["ɵnov"](n,85).ngClassPending,e["ɵnov"](n,87).validClass,e["ɵnov"](n,87).invalidClass),l(n,92,0,e["ɵnov"](n,95).ngClassUntouched,e["ɵnov"](n,95).ngClassTouched,e["ɵnov"](n,95).ngClassPristine,e["ɵnov"](n,95).ngClassDirty,e["ɵnov"](n,95).ngClassValid,e["ɵnov"](n,95).ngClassInvalid,e["ɵnov"](n,95).ngClassPending,e["ɵnov"](n,96).hasErrors,e["ɵnov"](n,96).hasSuccess),l(n,108,0,!u.advancedEnabled),l(n,114,0,e["ɵnov"](n,115).hasErrors,e["ɵnov"](n,115).hasSuccess),l(n,121,0,e["ɵnov"](n,126).ngClassUntouched,e["ɵnov"](n,126).ngClassTouched,e["ɵnov"](n,126).ngClassPristine,e["ɵnov"](n,126).ngClassDirty,e["ɵnov"](n,126).ngClassValid,e["ɵnov"](n,126).ngClassInvalid,e["ɵnov"](n,126).ngClassPending,e["ɵnov"](n,127).validClass,e["ɵnov"](n,127).invalidClass),l(n,130,0,e["ɵnov"](n,131).hasErrors,e["ɵnov"](n,131).hasSuccess),l(n,140,0,e["ɵnov"](n,145).ngClassUntouched,e["ɵnov"](n,145).ngClassTouched,e["ɵnov"](n,145).ngClassPristine,e["ɵnov"](n,145).ngClassDirty,e["ɵnov"](n,145).ngClassValid,e["ɵnov"](n,145).ngClassInvalid,e["ɵnov"](n,145).ngClassPending,e["ɵnov"](n,146).validClass,e["ɵnov"](n,146).invalidClass),l(n,157,0,e["ɵnov"](n,158).hasErrors,e["ɵnov"](n,158).hasSuccess),l(n,167,0,e["ɵnov"](n,173).ngClassUntouched,e["ɵnov"](n,173).ngClassTouched,e["ɵnov"](n,173).ngClassPristine,e["ɵnov"](n,173).ngClassDirty,e["ɵnov"](n,173).ngClassValid,e["ɵnov"](n,173).ngClassInvalid,e["ɵnov"](n,173).ngClassPending,e["ɵnov"](n,174).validClass,e["ɵnov"](n,174).invalidClass);var o=e["ɵunv"](n,185,0,l(n,186,0,e["ɵnov"](n,0),u.action)),d=e["ɵunv"](n,185,1,l(n,187,0,e["ɵnov"](n,1),u.resource));l(n,185,0,o,d)}))}function Uu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-form",[],null,null,null,ju,lu)),e["ɵdid"](1,114688,null,0,Hn.a,[ml.a,fl.a,gn.a,Jl.a,U.a,Wl.a,B.a,A.a,Ql.b,fl.m],null,null)],(function(l,n){l(n,1,0)}),null)}var Bu=e["ɵccf"]("cd-rbd-form",Hn.a,Uu,{},{},[]),$u=u("JxMD"),Mu=u("dgut");class Lu{constructor(l){this.router=l}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var zu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Gu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Fl.b,Fl.a)),e["ɵdid"](1,180224,null,0,vl.e,[vl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Overview"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/overview")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Targets"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/targets")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,vl.b,[vl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){var u=n.component;l(n,3,0,"Overview","/block/iscsi/overview"===u.url),l(n,5,0,"Targets","/block/iscsi/targets"===u.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass,e["ɵnov"](n,5).role,e["ɵnov"](n,5).ariaLabelledby)}))}var Ku=u("roDX"),Zu=u("my5R"),Ju=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Wu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"cd-sparkline",[],null,null,null,$u.b,$u.a)),e["ɵdid"](2,638976,null,0,Mu.a,[B.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],(function(l,n){l(n,2,0,n.parent.context.value,n.parent.context.row.cdIsBinary)}),null)}function Qu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function Yu(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Wu)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Qu)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function Xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," /s "]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function Hu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function le(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Xu)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Hu)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function ne(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,u)}))}function ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function ee(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,ne)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ue)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function ae(l){return e["ɵvid"](0,[e["ɵpid"](0,L.a,[]),e["ɵqud"](402653184,1,{iscsiSparklineTpl:0}),e["ɵqud"](402653184,2,{iscsiPerSecondTpl:0}),e["ɵqud"](402653184,3,{iscsiRelativeDateTpl:0}),(l()(),e["ɵeld"](4,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Gu,zu)),e["ɵdid"](5,114688,null,0,Lu,[fl.m],null,null),(l()(),e["ɵeld"](6,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Gateways"])),(l()(),e["ɵeld"](8,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],(function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.refresh()&&e),e}),jl.b,jl.a)),e["ɵdid"](9,2867200,null,0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"}),(l()(),e["ɵeld"](10,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](12,0,null,null,1,"cd-table",[],null,null,null,jl.b,jl.a)),e["ɵdid"](13,2867200,null,0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(l()(),e["ɵand"](0,[[1,2],["iscsiSparklineTpl",2]],null,0,null,Yu)),(l()(),e["ɵand"](0,[[2,2],["iscsiPerSecondTpl",2]],null,0,null,le)),(l()(),e["ɵand"](0,[[3,2],["iscsiRelativeDateTpl",2]],null,0,null,ee))],(function(l,n){var u=n.component;l(n,5,0),l(n,9,0,u.gateways,u.gatewaysColumns),l(n,13,0,u.images,u.imagesColumns)}),null)}function te(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi",[],null,null,null,ae,Ju)),e["ɵdid"](1,114688,null,0,Ku.a,[Zu.a,M.a,z.a,A.a],null,null)],(function(l,n){l(n,1,0)}),null)}var oe=e["ɵccf"]("cd-iscsi",Ku.a,te,{},{},[]),de=u("DqMs"),ie=u("/NlG"),re=u("3ris"),se=u("e/kN"),ce=e["ɵcrt"]({encapsulation:0,styles:[["tabset.tabset>ul{border-bottom:0;float:left;display:block;margin-right:20px;border-right:1px solid #ddd;padding-right:15px}"]],data:{}});function pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Available information:"])),(l()(),e["ɵeld"](4,0,null,null,1,"pre",[],null,null,null,null,null)),(l()(),e["ɵted"](5,null,["",""]))],null,(function(l,n){l(n,5,0,n.component.status)}))}function me(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["title","iSCSI Targets not available"],["type","info"]],null,null,null,de.b,de.a)),e["ɵdid"](1,114688,null,0,ie.a,[A.a],{title:[0,"title"],type:[1,"type"]},null),(l()(),e["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Please consult the "])),(l()(),e["ɵeld"](4,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["ɵted"](-1,null,["documentation"])),(l()(),e["ɵted"](-1,null,[" on how to configure and enable the iSCSI Targets management functionality."])),(l()(),e["ɵand"](16777216,null,0,1,null,pe)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,"iSCSI Targets not available","info"),l(n,8,0,u.status)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.docsUrl,""))}))}function ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi-target-details",[["cdTableDetail",""]],null,null,null,x.c,x.b)),e["ɵdid"](1,638976,null,0,re.a,[A.a,z.a,S.a],{selection:[0,"selection"],settings:[1,"settings"],cephIscsiConfigVersion:[2,"cephIscsiConfigVersion"]},null)],(function(l,n){var u=n.component;l(n,1,0,u.expandedRow,u.settings,u.cephIscsiConfigVersion)}),null)}function fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","target_iqn"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"]],(function(l,n,u){var e=!0,a=l.component;return"setExpandedRow"===n&&(e=!1!==a.setExpandedRow(u)&&e),"updateSelection"===n&&(e=!1!==a.updateSelection(u)&&e),e}),jl.b,jl.a)),e["ɵdid"](1,2867200,[[1,4],["table",4]],0,Ul.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](2,0,null,1,9,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Bl.b,Bl.a)),e["ɵdid"](4,114688,null,0,$l.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](5,0,null,null,6,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.configureDiscoveryAuth()&&e),e}),null,null)),(l()(),e["ɵeld"](6,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](8,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](9,1),(l()(),e["ɵeld"](10,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Discovery authentication"])),(l()(),e["ɵand"](16777216,null,3,1,null,ge)),e["ɵdid"](13,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,u.targets,u.columns,"flex",!0,"target_iqn","true","single"),l(n,4,0,u.permission,u.selection,u.tableActions);var e=l(n,9,0,u.icons.key);l(n,8,0,e),l(n,13,0,u.expandedRow)}),null)}function ve(l){return e["ɵvid"](0,[e["ɵqud"](671088640,1,{table:0}),(l()(),e["ɵeld"](1,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Gu,zu)),e["ɵdid"](2,114688,null,0,Lu,[fl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,me)),e["ɵdid"](4,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,fe)),e["ɵdid"](6,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,2,0),l(n,4,0,!1===u.available),l(n,6,0,!0===u.available)}),null)}function Ce(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-iscsi-target-list",[],null,null,null,ve,ce)),e["ɵprd"](131584,null,Ll.a,Ll.a,[zl.a,Gl.a]),e["ɵdid"](2,245760,null,0,se.a,[ml.a,A.a,Zu.a,Ll.a,j.a,H.a,Gl.a,sl.b,Wl.a,Ql.b],null,null)],(function(l,n){l(n,2,0)}),null)}var be=e["ɵccf"]("cd-iscsi-target-list",se.a,Ce,{},{},[]),he=u("D4zM"),Ie=u("OcYo"),Re=u("EApP"),Ne=u("WiuZ"),we=u("wnGv"),Ee=u("LvDl");class Te{constructor(l){this.ngControl=l}onInput(l){this.setValue(l)}setValue(l){l=Ee.isString(l)?l.trim():l,this.ngControl.control.setValue(l)}}var ye=u("gr3l"),Ve=e["ɵcrt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function qe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["IQN has wrong pattern."]))],null,null)}function ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["An IQN has the following notation 'iqn.$year-$month.$reversedAddress:$definedName'"])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309"])),(l()(),e["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"a",[["href","https://en.wikipedia.org/wiki/ISCSI#Addressing"],["target","_blank"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["More information"]))],null,null)}function _e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This target has modified advanced settings."]))],null,null)}function De(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removePortal(l.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function Fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["At least "," gateways are required."]))],null,(function(l,n){l(n,1,0,n.component.minimum_gateways)}))}function Pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["lun: ",""]))],null,(function(l,n){l(n,1,0,n.component.imagesSettings[n.parent.context.$implicit].lun)}))}function Se(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["ɵted"](1,null,["Backstore: ",". "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,a=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent,2),u.imagesSettings[n.parent.context.$implicit].backstore));l(n,1,0,a)}))}function Ae(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This image has modified settings."]))],null,null)}function Oe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,20,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,14,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Pe)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](6,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.imageSettingsModal(l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](9,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](10,1),(l()(),e["ɵeld"](11,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeImage(l.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](12,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](14,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](15,1),(l()(),e["ɵeld"](16,0,null,null,4,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Se)),e["ɵdid"](18,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ae)),e["ɵdid"](20,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,5,0,u.api_version>=1);var e=l(n,10,0,u.icons.deepCheck);l(n,9,0,e);var a=l(n,15,0,u.icons.destroy);l(n,14,0,a),l(n,18,0,u.backstores.length>1),l(n,20,0,u.hasAdvancedSettings(u.imagesSettings[n.context.$implicit][u.imagesSettings[n.context.$implicit].backstore]))}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Duplicated LUN numbers."]))],null,null)}function Ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Duplicated WWN."]))],null,null)}function Be(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function $e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function Me(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Le(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function Ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function Je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,91,"div",[["formGroupName","auth"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](5,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](8,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User"])),(l()(),e["ɵeld"](11,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","target_user"],["name","target_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,13)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,13).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,13)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,13)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](13,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](15,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](17,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](18,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Be)),e["ɵdid"](20,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,$e)),e["ɵdid"](22,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](23,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](24,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](27,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_password"]],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵeld"](30,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](31,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](32,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","target_password"],["name","target_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,33)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,33).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,33)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,33)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](33,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](35,671744,[[11,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](37,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](38,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](39,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,1,"button",[["cdPasswordButton","target_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,41).onClick()&&a),a}),null,null)),e["ɵdid"](41,81920,null,0,he.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](42,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,43).onClick()&&a),a}),null,null)),e["ɵdid"](43,81920,null,0,Ie.a,[e.ElementRef,e.Renderer2,Re.j,A.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Me)),e["ɵdid"](45,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Le)),e["ɵdid"](47,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](48,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](49,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](52,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_mutual_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](53,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual User"])),(l()(),e["ɵeld"](55,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](56,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["id","target_mutual_user"],["name","target_mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,57)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,57).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,57)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,57)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](57,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](59,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](61,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](62,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ze)),e["ɵdid"](64,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ge)),e["ɵdid"](66,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](67,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](68,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](71,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_mutual_password"]],null,null,null,null,null)),(l()(),e["ɵeld"](72,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual Password"])),(l()(),e["ɵeld"](74,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](75,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](76,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["id","target_mutual_password"],["name","target_mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,77)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,77).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,77)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,77)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](77,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](79,671744,[[15,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](81,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](82,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](83,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](84,0,null,null,1,"button",[["cdPasswordButton","target_mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,85).onClick()&&a),a}),null,null)),e["ɵdid"](85,81920,null,0,he.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](86,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,87).onClick()&&a),a}),null,null)),e["ɵdid"](87,81920,null,0,Ie.a,[e.ElementRef,e.Renderer2,Re.j,A.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ke)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ze)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,"auth"),l(n,5,0),l(n,15,0,"user"),l(n,18,0,"user"),l(n,20,0,u.targetForm.showError("user",e["ɵnov"](n.parent,2),"required")),l(n,22,0,u.targetForm.showError("user",e["ɵnov"](n.parent,2),"pattern")),l(n,24,0),l(n,35,0,"password"),l(n,38,0,"password"),l(n,41,0,"target_password"),l(n,43,0,"target_password"),l(n,45,0,u.targetForm.showError("password",e["ɵnov"](n.parent,2),"required")),l(n,47,0,u.targetForm.showError("password",e["ɵnov"](n.parent,2),"pattern")),l(n,49,0),l(n,59,0,"mutual_user"),l(n,62,0,"mutual_user"),l(n,64,0,u.targetForm.showError("mutual_user",e["ɵnov"](n.parent,2),"required")),l(n,66,0,u.targetForm.showError("mutual_user",e["ɵnov"](n.parent,2),"pattern")),l(n,68,0),l(n,79,0,"mutual_password"),l(n,82,0,"mutual_password"),l(n,85,0,"target_mutual_password"),l(n,87,0,"target_mutual_password"),l(n,89,0,u.targetForm.showError("mutual_password",e["ɵnov"](n.parent,2),"required")),l(n,91,0,u.targetForm.showError("mutual_password",e["ɵnov"](n.parent,2),"pattern"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending),l(n,4,0,e["ɵnov"](n,5).hasErrors,e["ɵnov"](n,5).hasSuccess),l(n,12,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass),l(n,23,0,e["ɵnov"](n,24).hasErrors,e["ɵnov"](n,24).hasSuccess),l(n,32,0,e["ɵnov"](n,37).ngClassUntouched,e["ɵnov"](n,37).ngClassTouched,e["ɵnov"](n,37).ngClassPristine,e["ɵnov"](n,37).ngClassDirty,e["ɵnov"](n,37).ngClassValid,e["ɵnov"](n,37).ngClassInvalid,e["ɵnov"](n,37).ngClassPending,e["ɵnov"](n,38).validClass,e["ɵnov"](n,38).invalidClass),l(n,48,0,e["ɵnov"](n,49).hasErrors,e["ɵnov"](n,49).hasSuccess),l(n,56,0,e["ɵnov"](n,61).ngClassUntouched,e["ɵnov"](n,61).ngClassTouched,e["ɵnov"](n,61).ngClassPristine,e["ɵnov"](n,61).ngClassDirty,e["ɵnov"](n,61).ngClassValid,e["ɵnov"](n,61).ngClassInvalid,e["ɵnov"](n,61).ngClassPending,e["ɵnov"](n,62).validClass,e["ɵnov"](n,62).invalidClass),l(n,67,0,e["ɵnov"](n,68).hasErrors,e["ɵnov"](n,68).hasSuccess),l(n,76,0,e["ɵnov"](n,81).ngClassUntouched,e["ɵnov"](n,81).ngClassTouched,e["ɵnov"](n,81).ngClassPristine,e["ɵnov"](n,81).ngClassDirty,e["ɵnov"](n,81).ngClassValid,e["ɵnov"](n,81).ngClassInvalid,e["ɵnov"](n,81).ngClassPending,e["ɵnov"](n,82).validClass,e["ɵnov"](n,82).invalidClass)}))}function We(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator IQN needs to be unique."]))],null,null)}function Qe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ye(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["IQN has wrong pattern."]))],null,null)}function Xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function He(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function la(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function na(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function ua(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ea(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function aa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ta(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function oa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiatorImage(l.parent.context.$implicit,l.context.index,l.parent.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function da(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator belongs to a group. Images will be configure in the group."]))],null,null)}function ia(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,null,null,Ne.b,Ne.a)),e["ɵdid"](3,638976,null,0,we.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["ɵeld"](4,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](7,1),(l()(),e["ɵeld"](8,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"]))],(function(l,n){var u=n.component,e=n.parent.context.$implicit.getValue("luns");l(n,3,0,"btn btn-light float-right",e,u.imagesInitiatorSelections[n.parent.context.index],u.messages.initiatorImage);var a=l(n,7,0,u.icons.add);l(n,6,0,a)}),null)}function ra(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,136,"div",[["class","card mb-2"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,8,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator"])),(l()(),e["ɵted"](7,null,[": "," "])),(l()(),e["ɵeld"](8,0,null,null,4,"button",[["class","close"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiator(l.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,123,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](15,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](18,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","client_iqn"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Client IQN"])),(l()(),e["ɵeld"](20,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","client_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0,t=l.component;return"input"===n&&(a=!1!==e["ɵnov"](l,22)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,22).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,22)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,22)._compositionEnd(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,27).onInput(u.target.value)&&a),"blur"===n&&(a=!1!==t.updatedInitiatorSelector()&&a),a}),null,null)),e["ɵdid"](22,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](24,671744,[[19,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](26,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](27,16384,null,0,Te,[el.q],null,null),e["ɵdid"](28,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,We)),e["ɵdid"](30,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Qe)),e["ɵdid"](32,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ye)),e["ɵdid"](34,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](35,0,null,null,88,null,null,null,null,null,null,null)),e["ɵdid"](36,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](38,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](39,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](40,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](43,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User"])),(l()(),e["ɵeld"](45,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](46,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,47)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,47).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,47)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,47)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](47,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](49,671744,[[21,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](51,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](52,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xe)),e["ɵdid"](54,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,He)),e["ɵdid"](56,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](57,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](58,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](61,0,null,0,1,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵeld"](63,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](64,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,6,"input",[["class","form-control"],["formControlName","password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,66)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,66).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,66)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,66)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](66,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](68,671744,[[23,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](70,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](71,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](72,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](73,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,74).onClick()&&a),a}),null,null)),e["ɵdid"](74,81920,null,0,he.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](75,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,76).onClick()&&a),a}),null,null)),e["ɵdid"](76,81920,null,0,Ie.a,[e.ElementRef,e.Renderer2,Re.j,A.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,la)),e["ɵdid"](78,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,na)),e["ɵdid"](80,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](81,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](82,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,25,{FormControlNames:1}),e["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),e["ɵeld"](85,0,null,0,2,"label",[["class","cd-col-form-label"],["for","mutual_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](86,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual User"])),(l()(),e["ɵeld"](88,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](89,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,90)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,90).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,90)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,90)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](90,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](92,671744,[[25,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](94,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](95,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ua)),e["ɵdid"](97,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ea)),e["ɵdid"](99,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](100,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](101,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,27,{FormControlNames:1}),e["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),e["ɵeld"](104,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mutual_password"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual Password"])),(l()(),e["ɵeld"](106,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](107,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,109)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,109).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,109)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,109)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](109,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](111,671744,[[27,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](113,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](114,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](115,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](116,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,117).onClick()&&a),a}),null,null)),e["ɵdid"](117,81920,null,0,he.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](118,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,119).onClick()&&a),a}),null,null)),e["ɵdid"](119,81920,null,0,Ie.a,[e.ElementRef,e.Renderer2,Re.j,A.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,aa)),e["ɵdid"](121,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ta)),e["ɵdid"](123,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](124,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](125,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,29,{FormControlNames:1}),e["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),e["ɵeld"](128,0,null,0,1,"label",[["class","cd-col-form-label"],["for","luns"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](130,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,oa)),e["ɵdid"](132,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,da)),e["ɵdid"](134,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ia)),e["ɵdid"](136,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,n.context.index);var a=l(n,12,0,u.icons.destroy);l(n,11,0,a),l(n,15,0),l(n,24,0,"client_iqn"),l(n,28,0,"client_iqn");var t=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"notUnique");l(n,30,0,t);var o=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"required");l(n,32,0,o);var d=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"pattern");l(n,34,0,d),l(n,36,0,"auth"),l(n,40,0),l(n,49,0,"user"),l(n,52,0,"user");var i=n.context.$implicit.showError("user",e["ɵnov"](n.parent.parent,2),"required");l(n,54,0,i);var r=n.context.$implicit.showError("user",e["ɵnov"](n.parent.parent,2),"pattern");l(n,56,0,r),l(n,58,0),l(n,68,0,"password"),l(n,71,0,"password"),l(n,74,0,"password"+n.context.index),l(n,76,0,"password"+n.context.index);var s=n.context.$implicit.showError("password",e["ɵnov"](n.parent.parent,2),"required");l(n,78,0,s);var c=n.context.$implicit.showError("password",e["ɵnov"](n.parent.parent,2),"pattern");l(n,80,0,c),l(n,82,0),l(n,92,0,"mutual_user"),l(n,95,0,"mutual_user");var p=n.context.$implicit.showError("mutual_user",e["ɵnov"](n.parent.parent,2),"required");l(n,97,0,p);var m=n.context.$implicit.showError("mutual_user",e["ɵnov"](n.parent.parent,2),"pattern");l(n,99,0,m),l(n,101,0),l(n,111,0,"mutual_password"),l(n,114,0,"mutual_password"),l(n,117,0,"mutual_password"+n.context.index),l(n,119,0,"mutual_password"+n.context.index);var g=n.context.$implicit.showError("mutual_password",e["ɵnov"](n.parent.parent,2),"required");l(n,121,0,g);var f=n.context.$implicit.showError("mutual_password",e["ɵnov"](n.parent.parent,2),"pattern");l(n,123,0,f),l(n,125,0);var v=n.context.$implicit.getValue("luns");l(n,132,0,v);var C=n.context.$implicit.getValue("cdIsInGroup");l(n,134,0,C);var b=!n.context.$implicit.getValue("cdIsInGroup");l(n,136,0,b)}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("client_iqn");l(n,7,0,u),l(n,14,0,e["ɵnov"](n,15).hasErrors,e["ɵnov"](n,15).hasSuccess),l(n,21,0,e["ɵnov"](n,26).ngClassUntouched,e["ɵnov"](n,26).ngClassTouched,e["ɵnov"](n,26).ngClassPristine,e["ɵnov"](n,26).ngClassDirty,e["ɵnov"](n,26).ngClassValid,e["ɵnov"](n,26).ngClassInvalid,e["ɵnov"](n,26).ngClassPending,e["ɵnov"](n,28).validClass,e["ɵnov"](n,28).invalidClass),l(n,39,0,e["ɵnov"](n,40).hasErrors,e["ɵnov"](n,40).hasSuccess),l(n,46,0,"user"+n.context.index,e["ɵnov"](n,51).ngClassUntouched,e["ɵnov"](n,51).ngClassTouched,e["ɵnov"](n,51).ngClassPristine,e["ɵnov"](n,51).ngClassDirty,e["ɵnov"](n,51).ngClassValid,e["ɵnov"](n,51).ngClassInvalid,e["ɵnov"](n,51).ngClassPending,e["ɵnov"](n,52).validClass,e["ɵnov"](n,52).invalidClass),l(n,57,0,e["ɵnov"](n,58).hasErrors,e["ɵnov"](n,58).hasSuccess),l(n,65,0,"password"+n.context.index,e["ɵnov"](n,70).ngClassUntouched,e["ɵnov"](n,70).ngClassTouched,e["ɵnov"](n,70).ngClassPristine,e["ɵnov"](n,70).ngClassDirty,e["ɵnov"](n,70).ngClassValid,e["ɵnov"](n,70).ngClassInvalid,e["ɵnov"](n,70).ngClassPending,e["ɵnov"](n,71).validClass,e["ɵnov"](n,71).invalidClass),l(n,81,0,e["ɵnov"](n,82).hasErrors,e["ɵnov"](n,82).hasSuccess),l(n,89,0,"mutual_user"+n.context.index,e["ɵnov"](n,94).ngClassUntouched,e["ɵnov"](n,94).ngClassTouched,e["ɵnov"](n,94).ngClassPristine,e["ɵnov"](n,94).ngClassDirty,e["ɵnov"](n,94).ngClassValid,e["ɵnov"](n,94).ngClassInvalid,e["ɵnov"](n,94).ngClassPending,e["ɵnov"](n,95).validClass,e["ɵnov"](n,95).invalidClass),l(n,100,0,e["ɵnov"](n,101).hasErrors,e["ɵnov"](n,101).hasSuccess),l(n,108,0,"mutual_password"+n.context.index,e["ɵnov"](n,113).ngClassUntouched,e["ɵnov"](n,113).ngClassTouched,e["ɵnov"](n,113).ngClassPristine,e["ɵnov"](n,113).ngClassDirty,e["ɵnov"](n,113).ngClassValid,e["ɵnov"](n,113).ngClassInvalid,e["ɵnov"](n,113).ngClassPending,e["ɵnov"](n,114).validClass,e["ɵnov"](n,114).invalidClass),l(n,124,0,e["ɵnov"](n,125).hasErrors,e["ɵnov"](n,125).hasSuccess)}))}function sa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["No items added."]))],null,null)}function ca(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","initiators"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiators"])),(l()(),e["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"],["formArrayName","initiators"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](7,212992,null,0,el.g,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.g]),e["ɵdid"](9,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,ra)),e["ɵdid"](11,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,9,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,sa)),e["ɵdid"](15,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](16,0,null,null,6,"button",[["class","btn btn-light float-right"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.addInitiator(),e=!1),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add initiator"])),(l()(),e["ɵeld"](23,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,1,0),l(n,7,0,"initiators"),l(n,11,0,u.initiators.controls),l(n,15,0,0===u.initiators.controls.length);var e=l(n,20,0,u.icons.add);l(n,19,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,9).ngClassUntouched,e["ɵnov"](n,9).ngClassTouched,e["ɵnov"](n,9).ngClassPristine,e["ɵnov"](n,9).ngClassDirty,e["ɵnov"](n,9).ngClassValid,e["ɵnov"](n,9).ngClassInvalid,e["ɵnov"](n,9).ngClassPending)}))}function pa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupInitiator(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function ma(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupDisk(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function ga(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,69,"div",[["class","card mb-2"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,8,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Group"])),(l()(),e["ɵted"](7,null,[": "," "])),(l()(),e["ɵeld"](8,0,null,null,4,"button",[["class","close"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.groups.removeAt(l.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,56,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](15,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,33,{FormControlNames:1}),e["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),e["ɵeld"](18,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","group_id"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](20,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,6,"input",[["class","form-control"],["formControlName","group_id"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,22)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,22).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,22)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,22)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](22,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](24,671744,[[33,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](26,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](27,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](28,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](29,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,35,{FormControlNames:1}),e["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),e["ɵeld"](32,0,null,0,2,"label",[["class","cd-col-form-label"],["for","members"]],null,null,null,null,null)),(l()(),e["ɵeld"](33,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiators"])),(l()(),e["ɵeld"](35,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,pa)),e["ɵdid"](37,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](38,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onGroupMemberSelection(u)&&e),e}),Ne.b,Ne.a)),e["ɵdid"](41,638976,null,0,we.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](42,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](44,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](45,1),(l()(),e["ɵeld"](46,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add initiator"])),(l()(),e["ɵeld"](48,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](49,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](50,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,37,{FormControlNames:1}),e["ɵqud"](603979776,38,{messagesBlock:0}),(l()(),e["ɵeld"](53,0,null,0,2,"label",[["class","cd-col-form-label"],["for","disks"]],null,null,null,null,null)),(l()(),e["ɵeld"](54,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](56,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ma)),e["ɵdid"](58,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](59,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](60,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,null,null,Ne.b,Ne.a)),e["ɵdid"](62,638976,null,0,we.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["ɵeld"](63,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](65,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](66,1),(l()(),e["ɵeld"](67,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"])),(l()(),e["ɵeld"](69,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,1,0,n.context.index);var e=l(n,12,0,u.icons.destroy);l(n,11,0,e),l(n,15,0),l(n,24,0,"group_id"),l(n,27,0,"group_id"),l(n,29,0);var a=n.context.$implicit.getValue("members");l(n,37,0,a);var t=n.context.$implicit.getValue("members");l(n,41,0,"btn btn-light float-right",t,u.groupMembersSelections[n.context.index],u.messages.groupInitiator);var o=l(n,45,0,u.icons.add);l(n,44,0,o),l(n,50,0);var d=n.context.$implicit.getValue("disks");l(n,58,0,d);var i=n.context.$implicit.getValue("disks");l(n,62,0,"btn btn-light float-right",i,u.groupDiskSelections[n.context.index],u.messages.initiatorImage);var r=l(n,66,0,u.icons.add);l(n,65,0,r)}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("group_id");l(n,7,0,u),l(n,14,0,e["ɵnov"](n,15).hasErrors,e["ɵnov"](n,15).hasSuccess),l(n,21,0,e["ɵnov"](n,26).ngClassUntouched,e["ɵnov"](n,26).ngClassTouched,e["ɵnov"](n,26).ngClassPristine,e["ɵnov"](n,26).ngClassDirty,e["ɵnov"](n,26).ngClassValid,e["ɵnov"](n,26).ngClassInvalid,e["ɵnov"](n,26).ngClassPending,e["ɵnov"](n,27).validClass,e["ɵnov"](n,27).invalidClass),l(n,28,0,e["ɵnov"](n,29).hasErrors,e["ɵnov"](n,29).hasSuccess),l(n,49,0,e["ɵnov"](n,50).hasErrors,e["ɵnov"](n,50).hasSuccess)}))}function fa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["No items added."]))],null,null)}function va(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](1,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,31,{FormControlNames:1}),e["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","initiators"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Groups"])),(l()(),e["ɵeld"](6,0,null,0,16,"div",[["class","cd-col-form-input"],["formArrayName","groups"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](7,212992,null,0,el.g,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.g]),e["ɵdid"](9,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,ga)),e["ɵdid"](11,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,9,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fa)),e["ɵdid"](15,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](16,0,null,null,6,"button",[["class","btn btn-light float-right"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.addGroup(),e=!1),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add group"]))],(function(l,n){var u=n.component;l(n,1,0),l(n,7,0,"groups"),l(n,11,0,u.groups.controls),l(n,15,0,0===u.groups.controls.length);var e=l(n,20,0,u.icons.add);l(n,19,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,9).ngClassUntouched,e["ɵnov"](n,9).ngClassTouched,e["ɵnov"](n,9).ngClassPristine,e["ɵnov"](n,9).ngClassDirty,e["ɵnov"](n,9).ngClassValid,e["ɵnov"](n,9).ngClassInvalid,e["ɵnov"](n,9).ngClassPending)}))}function Ca(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,133,"form",[["name","targetForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var a=!0;return"submit"===n&&(a=!1!==e["ɵnov"](l,2).onSubmit(u)&&a),"reset"===n&&(a=!1!==e["ɵnov"](l,2).onReset()&&a),"submit"===n&&(a=!1!==e["ɵnov"](l,5).onSubmit()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.G,[],null,null),e["ɵdid"](2,540672,[["formDir",4]],0,el.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,el.d,null,[el.l]),e["ɵdid"](4,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](5,16384,null,0,Nl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](6,0,null,null,127,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](8,null,[""," ",""])),e["ɵppd"](9,1),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,113,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](13,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","target_iqn"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Target IQN"])),(l()(),e["ɵeld"](18,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,14,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](20,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","target_iqn"],["id","target_iqn"],["name","target_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,21)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,21).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,21)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,21)._compositionEnd(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,26).onInput(u.target.value)&&a),a}),null,null)),e["ɵdid"](21,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](23,671744,[[1,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](25,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](26,16384,null,0,Te,[el.q],null,null),e["ɵdid"](27,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](28,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](29,0,null,null,4,"button",[["class","btn btn-light"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.targetSettingsModal()&&e),e}),null,null)),(l()(),e["ɵeld"](30,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](32,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](33,1),(l()(),e["ɵand"](16777216,null,null,1,null,xe)),e["ɵdid"](35,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qe)),e["ɵdid"](37,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ke)),e["ɵdid"](39,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,_e)),e["ɵdid"](41,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](42,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](43,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](44,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](47,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","portals"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Portals"])),(l()(),e["ɵeld"](49,0,null,0,22,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,De)),e["ɵdid"](51,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](52,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](53,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](54,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onPortalSelection(u)&&e),e}),Ne.b,Ne.a)),e["ɵdid"](55,638976,null,0,we.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](56,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](58,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](59,1),(l()(),e["ɵeld"](60,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add portal"])),(l()(),e["ɵeld"](62,0,null,null,6,"input",[["class","form-control"],["formControlName","portals"],["id","portals"],["name","portals"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,63)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,63).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,63)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,63)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](63,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](65,671744,[[3,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](67,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](68,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Fe)),e["ɵdid"](70,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](71,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](72,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](73,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](76,0,null,0,1,"label",[["class","cd-col-form-label"],["for","disks"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](78,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Oe)),e["ɵdid"](80,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](81,0,null,null,6,"input",[["class","form-control"],["formControlName","disks"],["id","disks"],["name","disks"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,82)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,82).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,82)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,82)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](82,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](84,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](86,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](87,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,je)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ue)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](92,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](93,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](94,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onImageSelection(u)&&e),e}),Ne.b,Ne.a)),e["ɵdid"](95,638976,null,0,we.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](96,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](98,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](99,1),(l()(),e["ɵeld"](100,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"])),(l()(),e["ɵeld"](102,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](103,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,$n.b,$n.a)),e["ɵdid"](104,1163264,null,2,Nl.c,[e.ElementRef,Nl.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](107,0,null,0,11,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","acl_enabled"],["id","acl_enabled"],["name","acl_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,110).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,110).onTouched()&&a),a}),null,null)),e["ɵdid"](110,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](112,671744,[[7,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](114,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](115,16384,null,0,Nl.h,[[3,el.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](116,0,null,null,1,"label",[["class","custom-control-label"],["for","acl_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["ACL authentication"])),(l()(),e["ɵeld"](118,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Je)),e["ɵdid"](120,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ca)),e["ɵdid"](122,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,va)),e["ɵdid"](124,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](125,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](126,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](127,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Wn.b,Wn.a)),e["ɵdid"](128,114688,null,0,Qn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](129,0,[""," ",""])),e["ɵppd"](130,1),e["ɵppd"](131,1),(l()(),e["ɵeld"](132,0,null,null,1,"cd-back-button",[],null,null,null,Yn.b,Yn.a)),e["ɵdid"](133,49152,null,0,Xn.a,[D.Location,Ql.b],null,null)],(function(l,n){var u=n.component;l(n,2,0,u.targetForm),l(n,5,0,u.targetForm),l(n,13,0),l(n,23,0,"target_iqn"),l(n,27,0,"target_iqn");var a=l(n,33,0,u.icons.deepCheck);l(n,32,0,a),l(n,35,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"required")),l(n,37,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"pattern")),l(n,39,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"iqn")),l(n,41,0,u.hasAdvancedSettings(u.targetForm.getValue("target_controls"))),l(n,44,0),l(n,51,0,u.portals.value),l(n,55,0,"btn btn-light float-right",u.portals.value,u.portalsSelections,u.messages.portals);var t=l(n,59,0,u.icons.add);l(n,58,0,t),l(n,65,0,"portals"),l(n,68,0,"portals"),l(n,70,0,u.targetForm.showError("portals",e["ɵnov"](n,2),"minGateways")),l(n,73,0),l(n,80,0,u.targetForm.getValue("disks")),l(n,84,0,"disks"),l(n,87,0,"disks"),l(n,89,0,u.targetForm.showError("disks",e["ɵnov"](n,2),"dupLunId")),l(n,91,0,u.targetForm.showError("disks",e["ɵnov"](n,2),"dupWwn")),l(n,95,0,"btn btn-light float-right",u.disks.value,u.imagesSelections,u.messages.images);var o=l(n,99,0,u.icons.add);l(n,98,0,o),l(n,104,0),l(n,112,0,"acl_enabled"),l(n,115,0,"acl_enabled"),l(n,120,0,u.cephIscsiConfigVersion>10&&!u.targetForm.getValue("acl_enabled")),l(n,122,0,u.targetForm.getValue("acl_enabled")),l(n,124,0,u.targetForm.getValue("acl_enabled")),l(n,128,0,e["ɵnov"](n,2))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,4).ngClassUntouched,e["ɵnov"](n,4).ngClassTouched,e["ɵnov"](n,4).ngClassPristine,e["ɵnov"](n,4).ngClassDirty,e["ɵnov"](n,4).ngClassValid,e["ɵnov"](n,4).ngClassInvalid,e["ɵnov"](n,4).ngClassPending);var a=e["ɵunv"](n,8,0,l(n,9,0,e["ɵnov"](n.parent,0),u.action)),t=e["ɵunv"](n,8,1,l(n,10,0,e["ɵnov"](n.parent,1),u.resource));l(n,8,0,a,t),l(n,12,0,e["ɵnov"](n,13).hasErrors,e["ɵnov"](n,13).hasSuccess),l(n,20,0,e["ɵnov"](n,25).ngClassUntouched,e["ɵnov"](n,25).ngClassTouched,e["ɵnov"](n,25).ngClassPristine,e["ɵnov"](n,25).ngClassDirty,e["ɵnov"](n,25).ngClassValid,e["ɵnov"](n,25).ngClassInvalid,e["ɵnov"](n,25).ngClassPending,e["ɵnov"](n,27).validClass,e["ɵnov"](n,27).invalidClass),l(n,43,0,e["ɵnov"](n,44).hasErrors,e["ɵnov"](n,44).hasSuccess),l(n,62,0,e["ɵnov"](n,67).ngClassUntouched,e["ɵnov"](n,67).ngClassTouched,e["ɵnov"](n,67).ngClassPristine,e["ɵnov"](n,67).ngClassDirty,e["ɵnov"](n,67).ngClassValid,e["ɵnov"](n,67).ngClassInvalid,e["ɵnov"](n,67).ngClassPending,e["ɵnov"](n,68).validClass,e["ɵnov"](n,68).invalidClass),l(n,72,0,e["ɵnov"](n,73).hasErrors,e["ɵnov"](n,73).hasSuccess),l(n,81,0,e["ɵnov"](n,86).ngClassUntouched,e["ɵnov"](n,86).ngClassTouched,e["ɵnov"](n,86).ngClassPristine,e["ɵnov"](n,86).ngClassDirty,e["ɵnov"](n,86).ngClassValid,e["ɵnov"](n,86).ngClassInvalid,e["ɵnov"](n,86).ngClassPending,e["ɵnov"](n,87).validClass,e["ɵnov"](n,87).invalidClass),l(n,103,0,e["ɵnov"](n,104).hasErrors,e["ɵnov"](n,104).hasSuccess),l(n,109,0,e["ɵnov"](n,114).ngClassUntouched,e["ɵnov"](n,114).ngClassTouched,e["ɵnov"](n,114).ngClassPristine,e["ɵnov"](n,114).ngClassDirty,e["ɵnov"](n,114).ngClassValid,e["ɵnov"](n,114).ngClassInvalid,e["ɵnov"](n,114).ngClassPending,e["ɵnov"](n,115).validClass,e["ɵnov"](n,115).invalidClass);var o=e["ɵunv"](n,129,0,l(n,130,0,e["ɵnov"](n.parent,0),u.action)),d=e["ɵunv"](n,129,1,l(n,131,0,e["ɵnov"](n.parent,1),u.resource));l(n,129,0,o,d)}))}function ba(l){return e["ɵvid"](0,[e["ɵpid"](0,D.TitleCasePipe,[]),e["ɵpid"](0,ll.a,[]),e["ɵpid"](0,z.a,[]),(l()(),e["ɵeld"](3,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Ca)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,5,0,n.component.targetForm)}),null)}function ha(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi-target-form",[],null,null,null,ba,Ve)),e["ɵdid"](1,114688,null,0,ye.a,[Zu.a,sl.b,Jl.a,fl.m,fl.a,A.a,Wl.a,Ql.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Ia=e["ɵccf"]("cd-iscsi-target-form",ye.a,ha,{},{},[]),Ra=u("Vhfg"),Na=u("cxJu");u.d(n,"BlockModuleNgFactory",(function(){return wa})),u.d(n,"RoutedBlockModuleNgFactory",(function(){return Ea}));var wa=e["ɵcmf"](a.a,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[t.a,o.a,d.a,i.a,i.b,r.a,s.a,c.a,p.a,m.a,g.a,f.a,v.a,C.a,b.a,h.a,I.a,R.a,R.c,R.b,R.d,N.a,w.a,E.a,T.a,y.a,V.a,x.a,q.a,k.a,_.a]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,D.NgLocalization,D.NgLocaleLocalization,[e.LOCALE_ID,[2,D["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,S.a,S.a,[A.a]),e["ɵmpd"](4608,D.DatePipe,D.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,B.a,B.a,[U.a]),e["ɵmpd"](4608,$.a,$.a,[U.a]),e["ɵmpd"](4608,M.a,M.a,[U.a]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,G.a,G.a,[]),e["ɵmpd"](4608,K.a,K.a,[]),e["ɵmpd"](4608,Z.a,Z.a,[D.DatePipe]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,W.a,W.a,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,Y.a,Y.a,[]),e["ɵmpd"](4608,X.a,X.a,[]),e["ɵmpd"](4608,H.a,H.a,[A.a]),e["ɵmpd"](4608,ll.a,ll.a,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,ul.a,ul.a,[]),e["ɵmpd"](4608,el.D,el.D,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,al.b,al.b,[]),e["ɵmpd"](4608,tl.a,tl.a,[]),e["ɵmpd"](4608,ol.a,ol.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,dl.a,dl.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,ol.a,e.ApplicationRef]),e["ɵmpd"](4608,il.c,il.c,[]),e["ɵmpd"](4608,rl.a,rl.a,[]),e["ɵmpd"](4608,sl.b,sl.b,[e.RendererFactory2,dl.a]),e["ɵmpd"](4608,cl.y,cl.y,[D.DOCUMENT]),e["ɵmpd"](4608,cl.r,cl.r,[]),e["ɵmpd"](4608,cl.a,cl.a,[]),e["ɵmpd"](4608,pl.f,pl.f,[]),e["ɵmpd"](4608,ml.a,ml.a,[]),e["ɵmpd"](4608,gl.a,gl.a,[fl.m,ml.a]),e["ɵmpd"](4608,vl.f,vl.f,[]),e["ɵmpd"](4608,Cl.t,Cl.t,[]),e["ɵmpd"](4608,Cl.v,Cl.v,[]),e["ɵmpd"](4608,Cl.a,Cl.a,[]),e["ɵmpd"](4608,Cl.h,Cl.h,[]),e["ɵmpd"](4608,Cl.d,Cl.d,[]),e["ɵmpd"](4608,Cl.j,Cl.j,[]),e["ɵmpd"](4608,Cl.l,Cl.l,[]),e["ɵmpd"](4608,Cl.u,Cl.u,[Cl.v,Cl.l]),e["ɵmpd"](4608,bl.a,bl.a,[]),e["ɵmpd"](1073742336,D.CommonModule,D.CommonModule,[]),e["ɵmpd"](1073742336,vl.d,vl.d,[]),e["ɵmpd"](1073742336,hl.a,hl.a,[]),e["ɵmpd"](1073742336,el.C,el.C,[]),e["ɵmpd"](1073742336,el.n,el.n,[]),e["ɵmpd"](1073742336,el.y,el.y,[]),e["ɵmpd"](1073742336,al.c,al.c,[]),e["ɵmpd"](1073742336,tl.d,tl.d,[]),e["ɵmpd"](1073742336,il.d,il.d,[]),e["ɵmpd"](1073742336,rl.d,rl.d,[]),e["ɵmpd"](1073742336,Il.b,Il.b,[]),e["ɵmpd"](1073742336,sl.e,sl.e,[]),e["ɵmpd"](1073742336,Rl.a,Rl.a,[]),e["ɵmpd"](1073742336,pl.e,pl.e,[]),e["ɵmpd"](1073742336,Nl.f,Nl.f,[]),e["ɵmpd"](1073742336,wl.ClickOutsideModule,wl.ClickOutsideModule,[]),e["ɵmpd"](1073742336,El.b,El.b,[]),e["ɵmpd"](1073742336,fl.q,fl.q,[[2,fl.v],[2,fl.m]]),e["ɵmpd"](1073742336,Tl.a,Tl.a,[]),e["ɵmpd"](1073742336,cl.u,cl.u,[]),e["ɵmpd"](1073742336,yl.a,yl.a,[]),e["ɵmpd"](1073742336,Vl.a,Vl.a,[]),e["ɵmpd"](1073742336,xl.a,xl.a,[]),e["ɵmpd"](1073742336,ql.a,ql.a,[]),e["ɵmpd"](1073742336,Cl.g,Cl.g,[]),e["ɵmpd"](1073742336,kl.b,kl.b,[]),e["ɵmpd"](1073742336,a.a,a.a,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,pl.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),Ea=e["ɵcmf"](a.b,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[t.a,o.a,d.a,i.a,i.b,r.a,s.a,c.a,p.a,m.a,g.a,f.a,v.a,C.a,b.a,h.a,I.a,R.a,R.c,R.b,R.d,N.a,w.a,E.a,T.a,y.a,V.a,x.a,q.a,k.a,_.a,pn,hn,_n,Bn,Bu,oe,be,Ia]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,D.NgLocalization,D.NgLocaleLocalization,[e.LOCALE_ID,[2,D["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,S.a,S.a,[A.a]),e["ɵmpd"](4608,D.DatePipe,D.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,B.a,B.a,[U.a]),e["ɵmpd"](4608,$.a,$.a,[U.a]),e["ɵmpd"](4608,M.a,M.a,[U.a]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,G.a,G.a,[]),e["ɵmpd"](4608,K.a,K.a,[]),e["ɵmpd"](4608,Z.a,Z.a,[D.DatePipe]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,W.a,W.a,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,Y.a,Y.a,[]),e["ɵmpd"](4608,X.a,X.a,[]),e["ɵmpd"](4608,H.a,H.a,[A.a]),e["ɵmpd"](4608,ll.a,ll.a,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,ul.a,ul.a,[]),e["ɵmpd"](4608,el.D,el.D,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,al.b,al.b,[]),e["ɵmpd"](4608,tl.a,tl.a,[]),e["ɵmpd"](4608,ol.a,ol.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,dl.a,dl.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,ol.a,e.ApplicationRef]),e["ɵmpd"](4608,il.c,il.c,[]),e["ɵmpd"](4608,rl.a,rl.a,[]),e["ɵmpd"](4608,sl.b,sl.b,[e.RendererFactory2,dl.a]),e["ɵmpd"](4608,cl.y,cl.y,[D.DOCUMENT]),e["ɵmpd"](4608,cl.r,cl.r,[]),e["ɵmpd"](4608,cl.a,cl.a,[]),e["ɵmpd"](4608,pl.f,pl.f,[]),e["ɵmpd"](4608,ml.a,ml.a,[]),e["ɵmpd"](4608,gl.a,gl.a,[fl.m,ml.a]),e["ɵmpd"](4608,vl.f,vl.f,[]),e["ɵmpd"](4608,Cl.t,Cl.t,[]),e["ɵmpd"](4608,Cl.v,Cl.v,[]),e["ɵmpd"](4608,Cl.a,Cl.a,[]),e["ɵmpd"](4608,Cl.h,Cl.h,[]),e["ɵmpd"](4608,Cl.d,Cl.d,[]),e["ɵmpd"](4608,Cl.j,Cl.j,[]),e["ɵmpd"](4608,Cl.l,Cl.l,[]),e["ɵmpd"](4608,Cl.u,Cl.u,[Cl.v,Cl.l]),e["ɵmpd"](4608,bl.a,bl.a,[]),e["ɵmpd"](1073742336,D.CommonModule,D.CommonModule,[]),e["ɵmpd"](1073742336,vl.d,vl.d,[]),e["ɵmpd"](1073742336,hl.a,hl.a,[]),e["ɵmpd"](1073742336,el.C,el.C,[]),e["ɵmpd"](1073742336,el.n,el.n,[]),e["ɵmpd"](1073742336,el.y,el.y,[]),e["ɵmpd"](1073742336,al.c,al.c,[]),e["ɵmpd"](1073742336,tl.d,tl.d,[]),e["ɵmpd"](1073742336,il.d,il.d,[]),e["ɵmpd"](1073742336,rl.d,rl.d,[]),e["ɵmpd"](1073742336,Il.b,Il.b,[]),e["ɵmpd"](1073742336,sl.e,sl.e,[]),e["ɵmpd"](1073742336,Rl.a,Rl.a,[]),e["ɵmpd"](1073742336,pl.e,pl.e,[]),e["ɵmpd"](1073742336,Nl.f,Nl.f,[]),e["ɵmpd"](1073742336,wl.ClickOutsideModule,wl.ClickOutsideModule,[]),e["ɵmpd"](1073742336,El.b,El.b,[]),e["ɵmpd"](1073742336,fl.q,fl.q,[[2,fl.v],[2,fl.m]]),e["ɵmpd"](1073742336,Tl.a,Tl.a,[]),e["ɵmpd"](1073742336,cl.u,cl.u,[]),e["ɵmpd"](1073742336,yl.a,yl.a,[]),e["ɵmpd"](1073742336,Vl.a,Vl.a,[]),e["ɵmpd"](1073742336,xl.a,xl.a,[]),e["ɵmpd"](1073742336,ql.a,ql.a,[]),e["ɵmpd"](1073742336,Cl.g,Cl.g,[]),e["ɵmpd"](1073742336,kl.b,kl.b,[]),e["ɵmpd"](1073742336,a.a,a.a,[]),e["ɵmpd"](1073742336,a.b,a.b,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,pl.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,fl.k,(function(){return[[{path:"",redirectTo:"rbd",pathMatch:"full"},{path:"rbd",canActivate:[Ra.a],data:a.c,children:[{path:"",component:Zl.a},{path:"namespaces",component:mn.a,data:a.d},{path:"trash",component:In.a,data:a.j},{path:"performance",component:An.a,data:a.k},{path:"create",component:Hn.a,data:a.l},{path:"edit/:image_spec",component:Hn.a,data:a.m},{path:"clone/:image_spec/:snap",component:Hn.a,data:a.n},{path:"copy/:image_spec",component:Hn.a,data:a.o},{path:"copy/:image_spec/:snap",component:Hn.a,data:a.p}]},{path:"mirroring",component:Na.a,canActivate:[Ra.a],data:a.q},{path:"iscsi",canActivate:[Ra.a],data:a.e,children:[{path:"",redirectTo:"overview",pathMatch:"full"},{path:"overview",component:Ku.a,data:a.f},{path:"targets",data:a.g,children:[{path:"",component:se.a},{path:"create",component:ye.a,data:a.h},{path:"edit/:target_iqn",component:ye.a,data:a.i}]}]}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.904941689cb18cba0036.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.904941689cb18cba0036.js
new file mode 100644 (file)
index 0000000..ce09aa1
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{nOaW:function(l,n,e){"use strict";e.r(n);var u=e("8Y7J"),t=e("sne2"),i=e("s7LF"),a=e("LvDl"),o=e("IheW"),s=e("GiVz"),r=e("pL04");let d=(()=>{class l{constructor(l,n){this.http=l,this.i18n=n,this.apiPath="api/crush_rule",this.formTooltips={root:this.i18n("The name of the node under which data should be placed."),failure_domain:this.i18n("The type of CRUSH nodes across which we should separate replicas."),device_class:this.i18n("The device class data should be placed on.")}}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}}return l.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new l(u["ɵɵinject"](o.c),u["ɵɵinject"](s.a))},token:l,providedIn:r.a}),l})(),c=(()=>{class l{constructor(l,n){this.http=l,this.i18n=n,this.apiPath="api/erasure_code_profile",this.formTooltips={k:this.i18n("Each object is split in data-chunks parts, each stored on a different OSD."),m:this.i18n("Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data."),plugins:{jerasure:{description:this.i18n("The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools."),technique:this.i18n("The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2."),packetSize:this.i18n("The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.")},lrc:{description:this.i18n("With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven."),l:this.i18n("Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set."),crushLocality:this.i18n("The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.")},isa:{description:this.i18n("The isa plugin encapsulates the ISA library. It only runs on Intel processors."),technique:this.i18n("The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.")},shec:{description:this.i18n("The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes."),c:this.i18n("The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.")}},crushRoot:this.i18n("The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default."),crushFailureDomain:this.i18n("Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host."),crushDeviceClass:this.i18n("Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map."),directory:this.i18n("Set the directory name from which the erasure code plugin is loaded.")}}list(){return this.http.get(this.apiPath)}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}}return l.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new l(u["ɵɵinject"](o.c),u["ɵɵinject"](s.a))},token:l,providedIn:r.a}),l})();var m=e("Ekvf"),f=e("0+/T"),g=e("a96k"),p=e("oxzT"),h=e("QFaf"),v=e("1Ni5"),b=e("PhyI"),C=e("kvvV"),R=e("Fgil"),I=e("aexS"),E=e("aXbf"),N=e("kn/O");class y{constructor(){this.nodes=[],this.easyNodes={},this.allDevices=[],this.buckets=[],this.failureDomains={},this.failureDomainKeys=[],this.devices=[],this.deviceCount=0}initCrushNodeSelection(l,n,e,u){this.nodes=l,l.forEach(l=>{this.easyNodes[l.id]=l}),this.buckets=a.sortBy(l.filter(l=>l.children),"name"),this.controls={root:n,failure:e,device:u},this.preSelectRoot(),this.controls.root.valueChanges.subscribe(()=>this.onRootChange()),this.controls.failure.valueChanges.subscribe(()=>this.onFailureDomainChange()),this.controls.device.valueChanges.subscribe(()=>this.onDeviceChange())}preSelectRoot(){const l=this.nodes.find(l=>"root"===l.type);this.silentSet(this.controls.root,l),this.onRootChange()}silentSet(l,n){l.setValue(n,{emitEvent:!1})}onRootChange(){const l=this.getSubNodes(this.controls.root.value),n={};l.forEach(l=>{n[l.type]||(n[l.type]=[]),n[l.type].push(l)}),Object.keys(n).forEach(l=>{n[l].length<=1&&delete n[l]}),this.failureDomains=n,this.failureDomainKeys=Object.keys(n).sort(),this.updateFailureDomain()}getSubNodes(l){let n=[l];return l.children?(l.children.forEach(l=>{n=n.concat(this.getSubNodes(this.easyNodes[l]))}),n):n}updateFailureDomain(){let l=this.getIncludedCustomValue(this.controls.failure,Object.keys(this.failureDomains));""===l&&(l=this.setMostCommonDomain(this.controls.failure)),this.updateDevices(l)}getIncludedCustomValue(l,n){return l.dirty&&n.includes(l.value)?l.value:""}setMostCommonDomain(l){let n={n:0,type:""};return Object.keys(this.failureDomains).forEach(l=>{const e=this.failureDomains[l].length;n.n<e&&(n={n:e,type:l})}),this.silentSet(l,n.type),n.type}onFailureDomainChange(){this.updateDevices()}updateDevices(l=this.controls.failure.value){const n=a.flatten(this.failureDomains[l].map(l=>this.getSubNodes(l)));this.allDevices=n.filter(l=>l.device_class).map(l=>l.device_class),this.devices=a.uniq(this.allDevices).sort();const e=1===this.devices.length?this.devices[0]:this.getIncludedCustomValue(this.controls.device,this.devices);this.silentSet(this.controls.device,e),this.onDeviceChange(e)}onDeviceChange(l=this.controls.device.value){this.deviceCount=""===l?this.allDevices.length:this.allDevices.filter(n=>n===l).length}}var V=e("2EZI");class w extends y{constructor(l,n,e,t,i,a){super(),this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.crushRuleService=t,this.i18n=i,this.actionLabels=a,this.submitAction=new u.EventEmitter,this.tooltips=this.crushRuleService.formTooltips,this.action=this.actionLabels.CREATE,this.resource=this.i18n("Crush Rule"),this.createForm()}createForm(){this.form=this.formBuilder.group({name:["",[i.B.required,i.B.pattern("[A-Za-z0-9_-]+"),v.a.custom("uniqueName",l=>this.names&&-1!==this.names.indexOf(l))]],root:null,failure_domain:"",device_class:""})}ngOnInit(){this.crushRuleService.getInfo().subscribe(({names:l,nodes:n})=>{this.initCrushNodeSelection(n,this.form.get("root"),this.form.get("failure_domain"),this.form.get("device_class")),this.names=l})}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l=a.cloneDeep(this.form.value);l.root=l.root.name,""===l.device_class&&delete l.device_class,this.taskWrapper.wrapTaskAroundCall({task:new C.a("crushRule/create",l),call:this.crushRuleService.create(l)}).subscribe(void 0,()=>{this.form.setErrors({cdSubmitButton:!0})},()=>{this.bsModalRef.hide(),this.submitAction.emit(l)})}}class T{}class _ extends y{constructor(l,n,e,t,i,a){super(),this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.ecpService=t,this.i18n=i,this.actionLabels=a,this.submitAction=new u.EventEmitter,this.tooltips=this.ecpService.formTooltips,this.PLUGIN={LRC:"lrc",SHEC:"shec",JERASURE:"jerasure",ISA:"isa"},this.plugin=this.PLUGIN.JERASURE,this.action=this.actionLabels.CREATE,this.resource=this.i18n("EC Profile"),this.createForm(),this.setJerasureDefaults()}createForm(){this.form=this.formBuilder.group({name:[null,[i.B.required,i.B.pattern("[A-Za-z0-9_-]+"),v.a.custom("uniqueName",l=>this.names&&-1!==this.names.indexOf(l))]],plugin:[this.PLUGIN.JERASURE,[i.B.required]],k:[4,[i.B.required,i.B.min(2),v.a.custom("max",()=>this.baseValueValidation(!0)),v.a.custom("unequal",l=>this.lrcDataValidation(l)),v.a.custom("kLowerM",l=>this.shecDataValidation(l))]],m:[2,[i.B.required,i.B.min(1),v.a.custom("max",()=>this.baseValueValidation())]],crushFailureDomain:"",crushRoot:null,crushDeviceClass:"",directory:"",technique:"reed_sol_van",packetSize:[2048,[i.B.min(1)]],l:[3,[i.B.required,i.B.min(1),v.a.custom("unequal",l=>this.lrcLocalityValidation(l))]],crushLocality:"",c:[2,[i.B.required,i.B.min(1),v.a.custom("cGreaterM",l=>this.shecDurabilityValidation(l))]]}),this.form.get("k").valueChanges.subscribe(()=>this.updateValidityOnChange(["m","l"])),this.form.get("m").valueChanges.subscribe(()=>this.updateValidityOnChange(["k","l","c"])),this.form.get("l").valueChanges.subscribe(()=>this.updateValidityOnChange(["k","m"])),this.form.get("plugin").valueChanges.subscribe(l=>this.onPluginChange(l))}baseValueValidation(l=!1){return this.validValidation(()=>this.getKMSum()>this.deviceCount&&this.form.getValue("k")>this.form.getValue("m")===l)}validValidation(l,n){return!((!this.form||n)&&this.plugin!==n)&&l()}getKMSum(){return this.form.getValue("k")+this.form.getValue("m")}lrcDataValidation(l){return this.validValidation(()=>{const n=this.form.getValue("m"),e=this.form.getValue("l"),u=l+n;return this.lrcMultiK=l/(u/e),l%(u/e)!=0},"lrc")}shecDataValidation(l){return this.validValidation(()=>this.form.getValue("m")>l,"shec")}lrcLocalityValidation(l){return this.validValidation(()=>{const n=this.getKMSum();return this.lrcGroups=l>0?n/l:0,l>0&&n%l!=0},"lrc")}shecDurabilityValidation(l){return this.validValidation(()=>{const n=this.form.getValue("m");return l>n},"shec")}updateValidityOnChange(l){l.forEach(l=>this.form.get(l).updateValueAndValidity({emitEvent:!1}))}onPluginChange(l){this.plugin=l,l===this.PLUGIN.JERASURE?this.setJerasureDefaults():l===this.PLUGIN.LRC?this.setLrcDefaults():l===this.PLUGIN.ISA?this.setIsaDefaults():l===this.PLUGIN.SHEC&&this.setShecDefaults(),this.updateValidityOnChange(["m"])}setJerasureDefaults(){this.setDefaults({k:4,m:2}),this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liberation","blaum_roth","liber8tion"]}setLrcDefaults(){this.setDefaults({k:4,m:2,l:3})}setIsaDefaults(){this.setDefaults({k:7,m:3}),this.techniques=["reed_sol_van","cauchy"]}setShecDefaults(){this.setDefaults({k:4,m:3,c:2})}setDefaults(l){Object.keys(l).forEach(n=>{const e=this.form.get(n),u=e.value;let t=e.pristine;"k"===n?t=[4,7].includes(u):"m"===n&&(t=[2,3].includes(u)),t&&this.form.get(n).setValue(l[n])})}ngOnInit(){this.ecpService.getInfo().subscribe(({plugins:l,names:n,directory:e,nodes:u})=>{this.initCrushNodeSelection(u,this.form.get("crushRoot"),this.form.get("crushFailureDomain"),this.form.get("crushDeviceClass")),this.plugins=l,this.names=n,this.form.silentSet("directory",e),this.preValidateNumericInputFields()})}preValidateNumericInputFields(){const l=["k","m","l","c"].map(l=>this.form.get(l));l.forEach(l=>{l.markAsTouched(),l.markAsDirty()}),l[1].updateValueAndValidity()}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l=this.createJson();this.taskWrapper.wrapTaskAroundCall({task:new C.a("ecp/create",{name:l.name}),call:this.ecpService.create(l)}).subscribe(void 0,()=>{this.form.setErrors({cdSubmitButton:!0})},()=>{this.bsModalRef.hide(),this.submitAction.emit(l)})}createJson(){const l={technique:[this.PLUGIN.ISA,this.PLUGIN.JERASURE],packetSize:[this.PLUGIN.JERASURE],l:[this.PLUGIN.LRC],crushLocality:[this.PLUGIN.LRC],c:[this.PLUGIN.SHEC]},n=new T,e=this.form.getValue("plugin");return Object.keys(this.form.controls).filter(n=>{const u=l[n],t=this.form.getValue(n);return(u&&u.includes(e)||!u)&&t&&""!==t}).forEach(l=>{this.extendJson(l,n)}),n}extendJson(l,n){const e=this.form.getValue(l);n[{crushFailureDomain:"crush-failure-domain",crushRoot:"crush-root",crushDeviceClass:"crush-device-class",packetSize:"packetsize",crushLocality:"crush-locality"}[l]||l]="crushRoot"===l?e.name:e}}var S=e("DNAf");class k{constructor(l){this.erasureInfo=!1,this.crushInfo=!1,this.pgs=1,this.poolTypes=["erasure","replicated"],this.applications={selected:[],default:["cephfs","rbd","rgw"],available:[],validators:[i.B.pattern("[A-Za-z0-9_]+"),i.B.maxLength(128)],messages:new S.a({empty:l("No applications added"),selectionLimit:{text:l("Applications limit reached"),tooltip:l("A pool can only have up to four applications definitions.")},customValidations:{pattern:l("Allowed characters '_a-zA-Z0-9'"),maxlength:l("Maximum length is 128 characters")},filter:l("Filter or add applications"),add:l("Add application")},l)}}}class D{constructor(l,n,e,i,a,o,s,r,d,c,m,f,g){this.dimlessBinaryPipe=l,this.route=n,this.router=e,this.modalService=i,this.poolService=a,this.authStorageService=o,this.formatter=s,this.bsModalService=r,this.taskWrapper=d,this.ecpService=c,this.crushRuleService=m,this.i18n=f,this.actionLabels=g,this.editing=!1,this.isReplicated=!1,this.isErasure=!1,this.data=new k(this.i18n),this.externalPgChange=!1,this.current={rules:[]},this.initializeConfigData=new u.EventEmitter,this.currentConfigurationValues={},this.icons=p.a,this.crushUsage=void 0,this.ecpUsage=void 0,this.editing=this.router.url.startsWith(`/pool/${t.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("pool"),this.authenticate(),this.createForm()}authenticate(){this.permission=this.authStorageService.getPermissions().pool,(!this.permission.read||!this.permission.update&&this.editing||!this.permission.create&&!this.editing)&&this.router.navigate(["/404"])}createForm(){const l=new h.a({mode:new i.i("none"),algorithm:new i.i(""),minBlobSize:new i.i("",{updateOn:"blur"}),maxBlobSize:new i.i("",{updateOn:"blur"}),ratio:new i.i("",{updateOn:"blur"})});this.form=new h.a({name:new i.i("",{validators:[i.B.pattern(/^[.A-Za-z0-9_/-]+$/),i.B.required,v.a.custom("rbdPool",()=>this.form&&this.form.getValue("name").includes("/")&&this.data&&-1!==this.data.applications.selected.indexOf("rbd"))]}),poolType:new i.i("",{validators:[i.B.required]}),crushRule:new i.i(null,{validators:[v.a.custom("tooFewOsds",l=>this.info&&l&&this.info.osd_count<l.min_size),v.a.custom("required",l=>this.isReplicated&&this.info.crush_rules_replicated.length>0&&!l)]}),size:new i.i("",{updateOn:"blur"}),erasureProfile:new i.i(null),pgNum:new i.i("",{validators:[i.B.required,i.B.min(1)]}),pgAutoscaleMode:new i.i(null),ecOverwrites:new i.i(!1),compression:l,max_bytes:new i.i(""),max_objects:new i.i(0,{validators:[i.B.min(0)]})},[v.a.custom("form",()=>null)])}ngOnInit(){this.poolService.getInfo().subscribe(l=>{this.initInfo(l),this.editing?this.initEditMode():this.setAvailableApps(),this.listenToChanges(),this.setComplexValidators()})}initInfo(l){this.pgAutoscaleModes=l.pg_autoscale_modes,this.form.silentSet("pgAutoscaleMode",l.pg_autoscale_default_mode),this.form.silentSet("algorithm",l.bluestore_compression_algorithm),this.info=l,this.initEcp(l.erasure_code_profiles)}initEcp(l){this.setListControlStatus("erasureProfile",l),this.ecProfiles=l}setListControlStatus(l,n){const e=this.form.get(l),u=e.value;1!==n.length||u&&a.isEqual(u,n[0])?0===n.length&&u&&e.setValue(null):e.setValue(n[0]),n.length<=1?e.enabled&&e.disable():e.disabled&&e.enable()}initEditMode(){this.disableForEdit(),this.routeParamsSubscribe=this.route.params.subscribe(l=>this.poolService.get(l.name).subscribe(l=>{this.data.pool=l,this.initEditFormData(l)}))}disableForEdit(){["poolType","crushRule","size","erasureProfile","ecOverwrites"].forEach(l=>this.form.get(l).disable())}initEditFormData(l){this.initializeConfigData.emit({initialData:l.configuration,sourceType:b.a.pool}),this.poolTypeChange(l.type);const n=this.info.crush_rules_replicated.concat(this.info.crush_rules_erasure),e={name:l.pool_name,poolType:l.type,crushRule:n.find(n=>n.rule_name===l.crush_rule),size:l.size,erasureProfile:this.ecProfiles.find(n=>n.name===l.erasure_code_profile),pgAutoscaleMode:l.pg_autoscale_mode,pgNum:l.pg_num,ecOverwrites:l.flags_names.includes("ec_overwrites"),mode:l.options.compression_mode,algorithm:l.options.compression_algorithm,minBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_min_blob_size),maxBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_max_blob_size),ratio:l.options.compression_required_ratio,max_bytes:this.dimlessBinaryPipe.transform(l.quota_max_bytes),max_objects:l.quota_max_objects};Object.keys(e).forEach(l=>{const n=e[l];a.isUndefined(n)||""===n||this.form.silentSet(l,n)}),this.data.pgs=this.form.getValue("pgNum"),this.setAvailableApps(this.data.applications.default.concat(l.application_metadata)),this.data.applications.selected=l.application_metadata}setAvailableApps(l=this.data.applications.default){this.data.applications.available=a.uniq(l.sort()).map(l=>new g.a(!1,l,""))}listenToChanges(){this.listenToChangesDuringAddEdit(),this.editing||this.listenToChangesDuringAdd()}listenToChangesDuringAddEdit(){this.form.get("pgNum").valueChanges.subscribe(l=>{const n=l-this.data.pgs;1===Math.abs(n)&&2!==l?this.doPgPowerJump(n):this.data.pgs=l})}doPgPowerJump(l){const n=this.calculatePgPower()+l;this.setPgs(-1===l?Math.round(n):Math.floor(n))}calculatePgPower(l=this.form.getValue("pgNum")){return Math.log(l)/Math.log(2)}setPgs(l){const n=Math.pow(2,l<0?0:l);this.data.pgs=n,this.form.silentSet("pgNum",n)}listenToChangesDuringAdd(){this.form.get("poolType").valueChanges.subscribe(l=>{this.poolTypeChange(l)}),this.form.get("crushRule").valueChanges.subscribe(l=>{this.crushDeletionBtn&&this.crushDeletionBtn.isOpen&&this.crushDeletionBtn.hide(),l&&(this.crushRuleIsUsedBy(l.rule_name),this.replicatedRuleChange(),this.pgCalc())}),this.form.get("size").valueChanges.subscribe(()=>{this.pgCalc()}),this.form.get("erasureProfile").valueChanges.subscribe(l=>{this.ecpDeletionBtn&&this.ecpDeletionBtn.isOpen&&this.ecpDeletionBtn.hide(),l&&(this.ecpIsUsedBy(l.name),this.pgCalc())}),this.form.get("mode").valueChanges.subscribe(()=>{["minBlobSize","maxBlobSize","ratio"].forEach(l=>{this.form.get(l).updateValueAndValidity({emitEvent:!1})})}),this.form.get("minBlobSize").valueChanges.subscribe(()=>{this.form.get("maxBlobSize").updateValueAndValidity({emitEvent:!1})}),this.form.get("maxBlobSize").valueChanges.subscribe(()=>{this.form.get("minBlobSize").updateValueAndValidity({emitEvent:!1})})}poolTypeChange(l){if("replicated"===l?this.setTypeBooleans(!0,!1):this.setTypeBooleans(!1,"erasure"===l),!l||!this.info)return void(this.current.rules=[]);const n=this.info["crush_rules_"+l]||[];this.current.rules=n,this.editing||(this.isReplicated&&this.setListControlStatus("crushRule",n),this.replicatedRuleChange(),this.pgCalc())}setTypeBooleans(l,n){this.isReplicated=l,this.isErasure=n}replicatedRuleChange(){if(!this.isReplicated)return;const l=this.form.get("size");let n=this.form.getValue("size")||3;const e=this.getMinSize(),u=this.getMaxSize();n<e?n=e:n>u&&(n=u),n!==l.value&&this.form.silentSet("size",n)}getMinSize(){if(!this.info||this.info.osd_count<1)return 0;const l=this.form.getValue("crushRule");return l?l.min_size:1}getMaxSize(){if(!this.info||this.info.osd_count<1)return 0;const l=this.info.osd_count;if(this.form.getValue("crushRule")){const n=this.form.get("crushRule").value.max_size;if(n<l)return n}return l}pgCalc(){const l=this.form.getValue("poolType");if(!this.info||this.form.get("pgNum").dirty||!l)return;const n=100*this.info.osd_count,e=this.isReplicated?this.replicatedPgCalc(n):this.erasurePgCalc(n);if(!e)return;const u=this.data.pgs;this.alignPgs(e),this.externalPgChange||(this.externalPgChange=u!==this.data.pgs)}replicatedPgCalc(l){const n=this.form.get("size"),e=n.value;return n.valid&&e>0?l/e:0}erasurePgCalc(l){const n=this.form.get("erasureProfile"),e=n.value;return(n.valid||n.disabled)&&e?l/(e.k+e.m):0}alignPgs(l=this.form.getValue("pgNum")){this.setPgs(Math.round(this.calculatePgPower(l<1?1:l)))}setComplexValidators(){this.editing?this.form.get("name").setValidators([this.form.get("name").validator,v.a.custom("uniqueName",l=>this.data.pool&&this.info&&-1!==this.info.pool_names.indexOf(l)&&this.info.pool_names.indexOf(l)!==this.info.pool_names.indexOf(this.data.pool.pool_name))]):(v.a.validateIf(this.form.get("size"),()=>this.isReplicated,[v.a.custom("min",l=>this.form.getValue("size")&&l<this.getMinSize()),v.a.custom("max",l=>this.form.getValue("size")&&this.getMaxSize()<l)]),this.form.get("name").setValidators([this.form.get("name").validator,v.a.custom("uniqueName",l=>this.info&&-1!==this.info.pool_names.indexOf(l))])),this.setCompressionValidators()}setCompressionValidators(){v.a.validateIf(this.form.get("minBlobSize"),()=>this.hasCompressionEnabled(),[i.B.min(0),v.a.custom("maximum",l=>this.oddBlobSize(l,this.form.getValue("maxBlobSize")))]),v.a.validateIf(this.form.get("maxBlobSize"),()=>this.hasCompressionEnabled(),[i.B.min(0),v.a.custom("minimum",l=>this.oddBlobSize(this.form.getValue("minBlobSize"),l))]),v.a.validateIf(this.form.get("ratio"),()=>this.hasCompressionEnabled(),[i.B.min(0),i.B.max(1)])}oddBlobSize(l,n){const e=this.formatter.toBytes(l),u=this.formatter.toBytes(n);return Boolean(e&&u&&e>=u)}hasCompressionEnabled(){return this.form.getValue("mode")&&"none"!==this.form.get("mode").value.toLowerCase()}describeCrushStep(l){return[l.op.replace("_"," "),l.item_name||"",l.type?l.num+" type "+l.type:""].join(" ")}addErasureCodeProfile(){this.addModal(_,l=>this.reloadECPs(l))}addModal(l,n){this.hideOpenTooltips(),this.bsModalService.show(l).content.submitAction.subscribe(l=>{n(l.name)})}hideOpenTooltips(){const l=l=>l&&l.isOpen&&l.hide();l(this.ecpDeletionBtn),l(this.crushDeletionBtn)}reloadECPs(l){this.reloadList({newItemName:l,getInfo:()=>this.ecpService.list(),initInfo:l=>this.initEcp(l),findNewItem:()=>this.ecProfiles.find(n=>n.name===l),controlName:"erasureProfile"})}reloadList({newItemName:l,getInfo:n,initInfo:e,findNewItem:u,controlName:t}){this.modalSubscription&&this.modalSubscription.unsubscribe(),n().subscribe(n=>{if(e(n),!l)return;const i=u();i&&this.form.get(t).setValue(i)})}deleteErasureCodeProfile(){this.deletionModal({value:this.form.getValue("erasureProfile"),usage:this.ecpUsage,deletionBtn:this.ecpDeletionBtn,dataName:"erasureInfo",getTabs:()=>this.ecpInfoTabs,tabPosition:1,nameAttribute:"name",itemDescription:this.i18n("erasure code profile"),reloadFn:()=>this.reloadECPs(),deleteFn:l=>this.ecpService.delete(l),taskName:"ecp/delete"})}deletionModal({value:l,usage:n,deletionBtn:e,dataName:u,getTabs:t,tabPosition:i,nameAttribute:a,itemDescription:o,reloadFn:s,deleteFn:r,taskName:d}){if(!l)return;if(n)return e.toggle(),this.data[u]=!0,void setTimeout(()=>{const l=t();l&&(l.tabs[i].active=!0)},50);const c=l[a];this.modalService.show(f.a,{initialState:{itemDescription:o,itemNames:[c],submitActionObservable:()=>{const l=r(c);return l.subscribe(()=>s()),this.taskWrapper.wrapTaskAroundCall({task:new C.a(d,{name:c}),call:l})}}})}addCrushRule(){this.addModal(w,l=>this.reloadCrushRules(l))}reloadCrushRules(l){this.reloadList({newItemName:l,getInfo:()=>this.poolService.getInfo(),initInfo:l=>{this.initInfo(l),this.poolTypeChange("replicated")},findNewItem:()=>this.info.crush_rules_replicated.find(n=>n.rule_name===l),controlName:"crushRule"})}deleteCrushRule(){this.deletionModal({value:this.form.getValue("crushRule"),usage:this.crushUsage,deletionBtn:this.crushDeletionBtn,dataName:"crushInfo",getTabs:()=>this.crushInfoTabs,tabPosition:2,nameAttribute:"rule_name",itemDescription:this.i18n("crush rule"),reloadFn:()=>this.reloadCrushRules(),deleteFn:l=>this.crushRuleService.delete(l),taskName:"crushRule/delete"})}crushRuleIsUsedBy(l){this.crushUsage=l?this.info.used_rules[l]:void 0}ecpIsUsedBy(l){this.ecpUsage=l?this.info.used_profiles[l]:void 0}submit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l={pool:this.form.getValue("name")};this.assignFormFields(l,[{externalFieldName:"pool_type",formControlName:"poolType"},{externalFieldName:"pg_autoscale_mode",formControlName:"pgAutoscaleMode",editable:!0},{externalFieldName:"pg_num",formControlName:"pgNum",replaceFn:l=>"on"===this.form.getValue("pgAutoscaleMode")?1:l,editable:!0},this.isReplicated?{externalFieldName:"size",formControlName:"size"}:{externalFieldName:"erasure_code_profile",formControlName:"erasureProfile",attr:"name"},{externalFieldName:"rule_name",formControlName:"crushRule",replaceFn:l=>this.isReplicated?l&&l.rule_name:void 0},{externalFieldName:"quota_max_bytes",formControlName:"max_bytes",replaceFn:this.formatter.toBytes,editable:!0,resetValue:this.editing?0:void 0},{externalFieldName:"quota_max_objects",formControlName:"max_objects",editable:!0,resetValue:this.editing?0:void 0}]),this.info.is_all_bluestore&&(this.assignFormField(l,{externalFieldName:"flags",formControlName:"ecOverwrites",replaceFn:()=>this.isErasure?["ec_overwrites"]:void 0}),"none"!==this.form.getValue("mode")?this.assignFormFields(l,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:l=>this.hasCompressionEnabled()&&l},{externalFieldName:"compression_algorithm",formControlName:"algorithm",editable:!0},{externalFieldName:"compression_min_blob_size",formControlName:"minBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_max_blob_size",formControlName:"maxBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_required_ratio",formControlName:"ratio",editable:!0,resetValue:0}]):this.editing&&this.assignFormFields(l,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:()=>"unset"},{externalFieldName:"srcpool",formControlName:"name",editable:!0,replaceFn:()=>this.data.pool.pool_name}]));const n=this.data.applications.selected;(n.length>0||this.editing)&&(l.application_metadata=n),this.isReplicated&&!a.isEmpty(this.currentConfigurationValues)&&(l.configuration=this.currentConfigurationValues),this.triggerApiTask(l)}assignFormFields(l,n){n.forEach(n=>this.assignFormField(l,n))}assignFormField(l,{externalFieldName:n,formControlName:e,attr:u,replaceFn:t,editable:i,resetValue:o}){if(this.editing&&(!i||this.form.get(e).pristine))return;const s=this.form.getValue(e);let r=t?t(s):u?a.get(s,u):s;if(!s||!r){if(!i||a.isUndefined(o))return;r=o}l[n]=r}triggerApiTask(l){this.taskWrapper.wrapTaskAroundCall({task:new C.a("pool/"+(this.editing?t.e.EDIT:t.e.CREATE),{pool_name:l.hasOwnProperty("srcpool")?l.srcpool:l.pool}),call:this.poolService[this.editing?t.e.UPDATE:t.e.CREATE](l)}).subscribe(void 0,l=>{a.isObject(l.error)&&"34"===l.error.code&&this.form.get("pgNum").setErrors({34:!0}),this.form.setErrors({cdSubmitButton:!0})},()=>this.router.navigate(["/pool"]))}appSelection(){this.form.get("name").updateValueAndValidity({emitEvent:!1,onlySelf:!0})}}var q=e("MuvH"),x=e("+fVR"),P=e("uIqm"),F=e("x38r"),A=e("yJti"),B=e("vCyI"),O=e("o4+5"),z=e("VTlA"),L=e("EgGo"),j=e("d+Og");class U{constructor(l){this.pool_name=l}}const M=new L.a("pool");class G extends x.a{constructor(l,n,e,u,t,i,o,s,r,d,c){super(),this.poolService=l,this.taskWrapper=n,this.authStorageService=e,this.taskListService=u,this.modalService=t,this.i18n=i,this.pgCategoryService=o,this.dimlessPipe=s,this.urlBuilder=r,this.configurationService=d,this.actionLabels=c,this.selection=new B.a,this.executingTasks=[],this.cacheTiers=[],this.monAllowPoolDelete=!1,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:p.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"update",icon:p.a.edit,routerLink:()=>this.urlBuilder.getEdit(encodeURIComponent(this.selection.first().pool_name)),name:this.actionLabels.EDIT},{permission:"delete",icon:p.a.destroy,click:()=>this.deletePoolModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!this.monAllowPoolDelete,disableDesc:()=>this.getDisableDesc()}],this.permissions.configOpt.read&&this.configurationService.get("mon_allow_pool_delete").subscribe(l=>{if(a.has(l,"value")){const n=a.find(l.value,l=>"mon"===l.section)||{value:!1};this.monAllowPoolDelete="true"===n.value}})}ngOnInit(){const l=(l,n,e)=>a.get(n,l)>a.get(e,l)?1:-1;this.columns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:4,cellTransformation:F.a.executing},{prop:"type",name:this.i18n("Type"),flexGrow:2},{prop:"application_metadata",name:this.i18n("Applications"),flexGrow:3},{prop:"pg_status",name:this.i18n("PG Status"),flexGrow:3,cellClass:({row:l,column:n,value:e})=>this.getPgStatusCellClass(l,n,e)},{prop:"size",name:this.i18n("Replica Size"),flexGrow:2,cellClass:"text-right"},{prop:"last_change",name:this.i18n("Last Change"),flexGrow:2,cellClass:"text-right"},{prop:"erasure_code_profile",name:this.i18n("Erasure Coded Profile"),flexGrow:2},{prop:"crush_rule",name:this.i18n("Crush Ruleset"),flexGrow:3},{name:this.i18n("Usage"),prop:"usage",cellTemplate:this.poolUsageTpl,flexGrow:3},{prop:"stats.rd_bytes.rates",name:this.i18n("Read bytes"),comparator:(n,e,u,t)=>l("stats.rd_bytes.latest",u,t),cellTransformation:F.a.sparkline,flexGrow:3},{prop:"stats.wr_bytes.rates",name:this.i18n("Write bytes"),comparator:(n,e,u,t)=>l("stats.wr_bytes.latest",u,t),cellTransformation:F.a.sparkline,flexGrow:3},{prop:"stats.rd.rate",name:this.i18n("Read ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:F.a.perSecond},{prop:"stats.wr.rate",name:this.i18n("Write ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:F.a.perSecond}],this.taskListService.init(()=>this.poolService.getList(),void 0,l=>this.pools=this.transformPoolsData(l),()=>{this.table.reset(),this.viewCacheStatusList=[{status:A.a.ValueException}]},l=>l.name.startsWith("pool/"),(l,n)=>n.metadata.pool_name===l.pool_name,{default:l=>new U(l.pool_name)})}updateSelection(l){this.selection=l}deletePoolModal(){const l=this.selection.first().pool_name;this.modalRef=this.modalService.show(f.a,{initialState:{itemDescription:"Pool",itemNames:[l],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new C.a(`pool/${t.e.DELETE}`,{pool_name:l}),call:this.poolService.delete(l)})}})}getPgStatusCellClass(l,n,e){return{"text-right":!0,[`pg-${this.pgCategoryService.getTypeByStates(e)}`]:!0}}transformPoolsData(l){const n=["bytes_used","max_avail","rd_bytes","wr_bytes","rd","wr"],e={latest:0,rate:0,rates:[]};return a.forEach(l,l=>{l.pg_status=this.transformPgStatus(l.pg_status);const u={};a.forEach(n,n=>{u[n]=l.stats&&l.stats[n]?l.stats[n]:e}),l.stats=u;const t=u.bytes_used.latest+u.max_avail.latest;l.usage=t>0?u.bytes_used.latest/t:t,l.cdExecuting||l.pg_num+l.pg_placement_num===l.pg_num_target+l.pg_placement_num_target||(l.cdExecuting="Updating"),["rd_bytes","wr_bytes"].forEach(n=>{l.stats[n].rates=l.stats[n].rates.map(l=>l[1])}),l.cdIsBinary=!0}),l}transformPgStatus(l){const n=[];return a.forEach(l,(l,e)=>{n.push(`${l} ${e}`)}),n.join(", ")}getSelectionTiers(){if(void 0!==this.expandedRow){const l=this.expandedRow.tiers;this.cacheTiers=this.pools.filter(n=>l.includes(n.pool))}}getDisableDesc(){if(!this.monAllowPoolDelete)return this.i18n("Pool deletion is disabled by the mon_allow_pool_delete configuration setting.")}setExpandedRow(l){super.setExpandedRow(l),this.getSelectionTiers()}}class ${}const K={breadcrumbs:t.a.CREATE},J={breadcrumbs:t.a.EDIT};class W{}var Z=e("iutN"),H=e("MdoF"),X=e("ES0t"),Y=e("Xg1U"),Q=e("z5nN"),ll=e("pMnS"),nl=e("EEJc"),el=e("PEr+"),ul=e("a40w"),tl=e("hfeG"),il=e("QUzE"),al=e("E7j4"),ol=e("xvu0"),sl=e("RIVN"),rl=e("nP0W"),dl=e("VBM6"),cl=e("atuK"),ml=e("JIi+"),fl=e("0BYw"),gl=e("3IYD"),pl=e("I4Qz"),hl=e("0rTx"),vl=e("lz+O"),bl=e("u2XS"),Cl=e("nhAp"),Rl=e("l7Jr"),Il=e("bUo2"),El=e("SVse"),Nl=e("8xTl"),yl=e("ajRT"),Vl=e("+gVj"),wl=e("mXUL"),Tl=e("IZUe"),_l=e("4HWh"),Sl=e("p4Cf"),kl=e("gp3X"),Dl=e("sb0X"),ql=e("KVJa"),xl=e("Z21x"),Pl=e("LqlI"),Fl=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Al(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Bl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function Ol(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function zl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Ll(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function jl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Ul(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Ml(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," ( "," ) "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit,n.component.failureDomains[n.context.$implicit].length)}))}function Gl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function $l(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Kl(l){return u["ɵvid"](0,[u["ɵpid"](0,El.TitleCasePipe,[]),u["ɵpid"](0,Nl.a,[]),(l()(),u["ɵeld"](2,0,null,null,115,"cd-modal",[],null,null,null,nl.c,nl.b)),u["ɵdid"](3,49152,null,0,yl.a,[],{modalRef:[0,"modalRef"]},null),(l()(),u["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),u["ɵted"](5,null,[""," ",""])),u["ɵppd"](6,1),u["ɵppd"](7,1),(l()(),u["ɵeld"](8,0,null,1,109,null,null,null,null,null,null,null)),(l()(),u["ɵeld"](9,0,null,null,108,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["ɵnov"](l,11).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==u["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),u["ɵdid"](10,16384,null,0,i.G,[],null,null),u["ɵdid"](11,540672,[["frm",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,i.d,null,[i.l]),u["ɵdid"](13,16384,null,0,i.s,[[4,i.d]],null,null),u["ɵdid"](14,16384,null,0,Vl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](15,0,null,null,94,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](17,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,1,{FormControlNames:1}),u["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),u["ɵeld"](20,0,null,0,3,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](23,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](25,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,27)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,27).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,27)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,27)._compositionEnd(e.target.value)&&t),t}),null,null)),u["ɵdid"](26,4210688,null,0,Tl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](27,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](29,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](31,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](32,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Al)),u["ɵdid"](34,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Bl)),u["ɵdid"](36,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ol)),u["ɵdid"](38,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](39,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](40,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,3,{FormControlNames:1}),u["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),u["ɵeld"](43,0,null,0,5,"label",[["class","cd-col-form-label"],["for","root"]],null,null,null,null,null)),(l()(),u["ɵeld"](44,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Root"])),(l()(),u["ɵeld"](46,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](47,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](48,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](49,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](50,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","root"],["id","root"],["name","root"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,51).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,51).onTouched()&&t),t}),null,null)),u["ɵdid"](51,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](53,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](55,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](56,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,zl)),u["ɵdid"](58,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ll)),u["ɵdid"](60,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,jl)),u["ɵdid"](62,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](63,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](64,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](67,0,null,0,5,"label",[["class","cd-col-form-label"],["for","failure_domain"]],null,null,null,null,null)),(l()(),u["ɵeld"](68,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Failure domain type"])),(l()(),u["ɵeld"](70,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](71,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](72,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](73,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](74,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","failure_domain"],["id","failure_domain"],["name","failure_domain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,75).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,75).onTouched()&&t),t}),null,null)),u["ɵdid"](75,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](77,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](79,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](80,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ul)),u["ɵdid"](82,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ml)),u["ɵdid"](84,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Gl)),u["ɵdid"](86,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](87,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](88,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](91,0,null,0,4,"label",[["class","cd-col-form-label"],["for","device_class"]],null,null,null,null,null)),(l()(),u["ɵeld"](92,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Device class"])),(l()(),u["ɵeld"](94,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](95,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](96,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](97,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","device_class"],["id","device_class"],["name","device_class"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,98).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,98).onTouched()&&t),t}),null,null)),u["ɵdid"](98,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](100,671744,[[7,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](102,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](103,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](104,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](105,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](106,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Let Ceph decide"])),(l()(),u["ɵand"](16777216,null,null,1,null,$l)),u["ɵdid"](109,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](110,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](111,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u}),kl.b,kl.a)),u["ɵdid"](112,114688,null,0,Dl.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](113,0,[""," ",""])),u["ɵppd"](114,1),u["ɵppd"](115,1),(l()(),u["ɵeld"](116,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](117,49152,null,0,xl.a,[El.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.bsModalRef),l(n,11,0,e.form),l(n,14,0,e.form),l(n,17,0),l(n,26,0,""),l(n,29,0,"name"),l(n,32,0,"name"),l(n,34,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,36,0,e.form.showError("name",u["ɵnov"](n,11),"pattern")),l(n,38,0,e.form.showError("name",u["ɵnov"](n,11),"uniqueName")),l(n,40,0),l(n,47,0,e.tooltips.root),l(n,53,0,"root"),l(n,56,0,"root"),l(n,58,0,!e.buckets),l(n,60,0,e.buckets),l(n,62,0,e.form.showError("root",u["ɵnov"](n,11),"required")),l(n,64,0),l(n,71,0,e.tooltips.failure_domain),l(n,77,0,"failure_domain"),l(n,80,0,"failure_domain"),l(n,82,0,!e.failureDomains),l(n,84,0,e.failureDomainKeys),l(n,86,0,e.form.showError("failure_domain",u["ɵnov"](n,11),"required")),l(n,88,0),l(n,95,0,e.tooltips.device_class),l(n,100,0,"device_class"),l(n,103,0,"device_class"),l(n,105,0,""),l(n,106,0,""),l(n,109,0,e.devices),l(n,112,0,u["ɵnov"](n,11)),l(n,117,0,e.bsModalRef.hide)}),(function(l,n){var e=n.component,t=u["ɵunv"](n,5,0,l(n,6,0,u["ɵnov"](n,0),e.action)),i=u["ɵunv"](n,5,1,l(n,7,0,u["ɵnov"](n,1),e.resource));l(n,5,0,t,i),l(n,9,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending),l(n,16,0,u["ɵnov"](n,17).hasErrors,u["ɵnov"](n,17).hasSuccess),l(n,25,0,u["ɵnov"](n,31).ngClassUntouched,u["ɵnov"](n,31).ngClassTouched,u["ɵnov"](n,31).ngClassPristine,u["ɵnov"](n,31).ngClassDirty,u["ɵnov"](n,31).ngClassValid,u["ɵnov"](n,31).ngClassInvalid,u["ɵnov"](n,31).ngClassPending,u["ɵnov"](n,32).validClass,u["ɵnov"](n,32).invalidClass),l(n,39,0,u["ɵnov"](n,40).hasErrors,u["ɵnov"](n,40).hasSuccess),l(n,50,0,u["ɵnov"](n,55).ngClassUntouched,u["ɵnov"](n,55).ngClassTouched,u["ɵnov"](n,55).ngClassPristine,u["ɵnov"](n,55).ngClassDirty,u["ɵnov"](n,55).ngClassValid,u["ɵnov"](n,55).ngClassInvalid,u["ɵnov"](n,55).ngClassPending,u["ɵnov"](n,56).validClass,u["ɵnov"](n,56).invalidClass),l(n,63,0,u["ɵnov"](n,64).hasErrors,u["ɵnov"](n,64).hasSuccess),l(n,74,0,u["ɵnov"](n,79).ngClassUntouched,u["ɵnov"](n,79).ngClassTouched,u["ɵnov"](n,79).ngClassPristine,u["ɵnov"](n,79).ngClassDirty,u["ɵnov"](n,79).ngClassValid,u["ɵnov"](n,79).ngClassInvalid,u["ɵnov"](n,79).ngClassPending,u["ɵnov"](n,80).validClass,u["ɵnov"](n,80).invalidClass),l(n,87,0,u["ɵnov"](n,88).hasErrors,u["ɵnov"](n,88).hasSuccess),l(n,97,0,u["ɵnov"](n,102).ngClassUntouched,u["ɵnov"](n,102).ngClassTouched,u["ɵnov"](n,102).ngClassPristine,u["ɵnov"](n,102).ngClassDirty,u["ɵnov"](n,102).ngClassValid,u["ɵnov"](n,102).ngClassInvalid,u["ɵnov"](n,102).ngClassPending,u["ɵnov"](n,103).validClass,u["ɵnov"](n,103).invalidClass);var a=u["ɵunv"](n,113,0,l(n,114,0,u["ɵnov"](n,0),e.action)),o=u["ɵunv"](n,113,1,l(n,115,0,u["ɵnov"](n,1),e.resource));l(n,113,0,a,o)}))}function Jl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-crush-rule-form-modal",[],null,null,null,Kl,Fl)),u["ɵdid"](1,114688,null,0,w,[V.a,Pl.a,N.a,d,s.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Wl=u["ɵccf"]("cd-crush-rule-form-modal",w,Jl,{},{submitAction:"submitAction"},[]),Zl=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Hl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Xl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function Yl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function Ql(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function ln(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function nn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function en(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function un(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 2."]))],null,null)}function tn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](1,null,["Chunks (k+m) have exceeded the available OSDs of ","."]))],null,(function(l,n){l(n,1,0,n.component.deviceCount)}))}function an(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["For an equal distribution k has to be a multiple of (k+m)/l."]))],null,null)}function on(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["K has to be equal to or greater than m in order to recover data correctly through c."]))],null,null)}function sn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](1,null,["Distribution factor: ",""]))],null,(function(l,n){l(n,1,0,n.component.lrcMultiK)}))}function rn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function dn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function cn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](1,null,["Chunks (k+m) have exceeded the available OSDs of ","."]))],null,(function(l,n){l(n,1,0,n.component.deviceCount)}))}function mn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function fn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["C has to be equal to or lower than m as m defines the amount of chunks that can be used."]))],null,null)}function gn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,9,{FormControlNames:1}),u["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","c"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Durability estimator (c)"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](8,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","c"],["id","c"],["name","c"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,12).onTouched()&&t),t}),null,null)),u["ɵdid"](11,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](12,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](14,671744,[[9,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](16,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](17,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,mn)),u["ɵdid"](19,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,fn)),u["ɵdid"](21,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.shec.c),l(n,14,0,"c"),l(n,17,0,"c"),l(n,19,0,e.form.showError("c",u["ɵnov"](n.parent,11),"min")),l(n,21,0,e.form.showError("c",u["ɵnov"](n.parent,11),"cGreaterM"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass)}))}function pn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function hn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function vn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Can't split up chunks (k+m) correctly with the current locality."]))],null,null)}function bn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,11,{FormControlNames:1}),u["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","l"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Locality (l)"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](8,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","l"],["id","l"],["name","l"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,12).onTouched()&&t),t}),null,null)),u["ɵdid"](11,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](12,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](14,671744,[[11,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](16,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](17,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,pn)),u["ɵdid"](19,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,hn)),u["ɵdid"](21,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,vn)),u["ɵdid"](23,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](24,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](25,null,["Locality groups: ",""]))],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.lrc.l),l(n,14,0,"l"),l(n,17,0,"l"),l(n,19,0,e.form.showError("l",u["ɵnov"](n.parent,11),"required")),l(n,21,0,e.form.showError("l",u["ɵnov"](n.parent,11),"min")),l(n,23,0,e.form.showError("l",u["ɵnov"](n.parent,11),"unequal"))}),(function(l,n){var e=n.component;l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass),l(n,25,0,e.lrcGroups)}))}function Cn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Rn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," ( "," ) "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit,n.component.failureDomains[n.context.$implicit].length)}))}function In(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function En(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["None"]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Nn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," ( "," ) "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit,n.component.failureDomains[n.context.$implicit].length)}))}function yn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,15,{FormControlNames:1}),u["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushLocality"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush Locality"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](8,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushLocality"],["id","crushLocality"],["name","crushLocality"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,11).onTouched()&&t),t}),null,null)),u["ɵdid"](11,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](13,671744,[[15,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](15,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](16,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,In)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,En)),u["ɵdid"](20,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Nn)),u["ɵdid"](22,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.lrc.crushLocality),l(n,13,0,"crushLocality"),l(n,16,0,"crushLocality"),l(n,18,0,!e.failureDomains),l(n,20,0,e.failureDomainKeys.length>0),l(n,22,0,e.failureDomainKeys)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function Vn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function wn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,17,{FormControlNames:1}),u["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","technique"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Technique"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](8,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","technique"],["id","technique"],["name","technique"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,11).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,11).onTouched()&&t),t}),null,null)),u["ɵdid"](11,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](13,671744,[[17,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](15,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](16,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Vn)),u["ɵdid"](18,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins[e.plugin].technique),l(n,13,0,"technique"),l(n,16,0,"technique"),l(n,18,0,e.techniques)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function Tn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function _n(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,19,{FormControlNames:1}),u["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","packetSize"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Packetsize"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](8,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","packetSize"],["id","packetSize"],["name","packetSize"],["placeholder","Packetsize..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,11).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,11)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,12).onTouched()&&t),t}),null,null)),u["ɵdid"](11,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](12,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](14,671744,[[19,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](16,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](17,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Tn)),u["ɵdid"](19,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.jerasure.packetSize),l(n,14,0,"packetSize"),l(n,17,0,"packetSize"),l(n,19,0,e.form.showError("packetSize",u["ɵnov"](n.parent,11),"min"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass)}))}function Sn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function kn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function Dn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function qn(l){return u["ɵvid"](0,[u["ɵpid"](0,El.TitleCasePipe,[]),u["ɵpid"](0,Nl.a,[]),(l()(),u["ɵeld"](2,0,null,null,214,"cd-modal",[],null,null,null,nl.c,nl.b)),u["ɵdid"](3,49152,null,0,yl.a,[],{modalRef:[0,"modalRef"]},null),(l()(),u["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),u["ɵted"](5,null,[""," ",""])),u["ɵppd"](6,1),u["ɵppd"](7,1),(l()(),u["ɵeld"](8,0,null,1,208,null,null,null,null,null,null,null)),(l()(),u["ɵeld"](9,0,null,null,207,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["ɵnov"](l,11).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==u["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),u["ɵdid"](10,16384,null,0,i.G,[],null,null),u["ɵdid"](11,540672,[["frm",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,i.d,null,[i.l]),u["ɵdid"](13,16384,null,0,i.s,[[4,i.d]],null,null),u["ɵdid"](14,16384,null,0,Vl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](15,0,null,null,193,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](17,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,1,{FormControlNames:1}),u["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),u["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](22,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,25)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,25).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,25)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,25)._compositionEnd(e.target.value)&&t),t}),null,null)),u["ɵdid"](24,4210688,null,0,Tl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](25,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](27,671744,[[1,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](29,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](30,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Hl)),u["ɵdid"](32,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Xl)),u["ɵdid"](34,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Yl)),u["ɵdid"](36,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](37,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](38,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,3,{FormControlNames:1}),u["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),u["ɵeld"](41,0,null,0,4,"label",[["class","cd-col-form-label"],["for","plugin"]],null,null,null,null,null)),(l()(),u["ɵeld"](42,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Plugin"])),(l()(),u["ɵeld"](44,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](45,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](46,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](47,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","plugin"],["id","plugin"],["name","plugin"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,48).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,48).onTouched()&&t),t}),null,null)),u["ɵdid"](48,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](50,671744,[[3,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](52,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](53,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ql)),u["ɵdid"](55,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ln)),u["ɵdid"](57,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,nn)),u["ɵdid"](59,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](60,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](61,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](64,0,null,0,4,"label",[["class","cd-col-form-label"],["for","k"]],null,null,null,null,null)),(l()(),u["ɵeld"](65,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Data chunks (k)"])),(l()(),u["ɵeld"](67,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](68,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](69,0,null,0,20,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](70,0,null,null,7,"input",[["class","form-control"],["formControlName","k"],["id","k"],["name","k"],["ng-model","$ctrl.erasureCodeProfile.k"],["placeholder","Data chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,71)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,71).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,71)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,71)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,72).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,72).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,72).onTouched()&&t),t}),null,null)),u["ɵdid"](71,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](72,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](74,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](76,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](77,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,en)),u["ɵdid"](79,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,un)),u["ɵdid"](81,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,tn)),u["ɵdid"](83,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,an)),u["ɵdid"](85,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,on)),u["ɵdid"](87,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,sn)),u["ɵdid"](89,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](90,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](91,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](94,0,null,0,4,"label",[["class","cd-col-form-label"],["for","m"]],null,null,null,null,null)),(l()(),u["ɵeld"](95,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Coding chunks (m)"])),(l()(),u["ɵeld"](97,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](98,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](99,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](100,0,null,null,7,"input",[["class","form-control"],["formControlName","m"],["id","m"],["name","m"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,101)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,101).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,101)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,101)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,102).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,102).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,102).onTouched()&&t),t}),null,null)),u["ɵdid"](101,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](102,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](104,671744,[[7,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](106,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](107,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,rn)),u["ɵdid"](109,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,dn)),u["ɵdid"](111,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,cn)),u["ɵdid"](113,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,gn)),u["ɵdid"](115,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,bn)),u["ɵdid"](117,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](118,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](119,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,13,{FormControlNames:1}),u["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),u["ɵeld"](122,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushFailureDomain"]],null,null,null,null,null)),(l()(),u["ɵeld"](123,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush failure domain"])),(l()(),u["ɵeld"](125,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](126,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](127,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](128,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","crushFailureDomain"],["id","crushFailureDomain"],["name","crushFailureDomain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,129).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,129).onTouched()&&t),t}),null,null)),u["ɵdid"](129,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](131,671744,[[13,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](133,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](134,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Cn)),u["ɵdid"](136,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Rn)),u["ɵdid"](138,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,yn)),u["ɵdid"](140,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,2,null,wn)),u["ɵdid"](142,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),u["ɵpad"](143,2),(l()(),u["ɵand"](16777216,null,null,1,null,_n)),u["ɵdid"](145,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](146,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](147,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,21,{FormControlNames:1}),u["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),u["ɵeld"](150,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushRoot"]],null,null,null,null,null)),(l()(),u["ɵeld"](151,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush root"])),(l()(),u["ɵeld"](153,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](154,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](155,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](156,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","crushRoot"],["id","crushRoot"],["name","crushRoot"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,157).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,157).onTouched()&&t),t}),null,null)),u["ɵdid"](157,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](159,671744,[[21,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](161,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](162,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Sn)),u["ɵdid"](164,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,kn)),u["ɵdid"](166,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](167,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](168,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,23,{FormControlNames:1}),u["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),u["ɵeld"](171,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushDeviceClass"]],null,null,null,null,null)),(l()(),u["ɵeld"](172,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush device class"])),(l()(),u["ɵeld"](174,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](175,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](176,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](177,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushDeviceClass"],["id","crushDeviceClass"],["name","crushDeviceClass"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,178).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,178).onTouched()&&t),t}),null,null)),u["ɵdid"](178,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](180,671744,[[23,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](182,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](183,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](184,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](185,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](186,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Let Ceph decide"])),(l()(),u["ɵand"](16777216,null,null,1,null,Dn)),u["ɵdid"](189,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](190,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](191,null,["Available OSDs: ",""])),(l()(),u["ɵeld"](192,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](193,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,25,{FormControlNames:1}),u["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),u["ɵeld"](196,0,null,0,4,"label",[["class","cd-col-form-label"],["for","directory"]],null,null,null,null,null)),(l()(),u["ɵeld"](197,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Directory"])),(l()(),u["ɵeld"](199,0,null,null,1,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](200,49152,null,0,Sl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](201,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](202,0,null,null,6,"input",[["class","form-control"],["formControlName","directory"],["id","directory"],["name","directory"],["placeholder","Path..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,203)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,203).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,203)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,203)._compositionEnd(e.target.value)&&t),t}),null,null)),u["ɵdid"](203,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](205,671744,[[25,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](207,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](208,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](209,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](210,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u}),kl.b,kl.a)),u["ɵdid"](211,114688,null,0,Dl.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](212,0,[""," ",""])),u["ɵppd"](213,1),u["ɵppd"](214,1),(l()(),u["ɵeld"](215,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](216,49152,null,0,xl.a,[El.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.bsModalRef),l(n,11,0,e.form),l(n,14,0,e.form),l(n,17,0),l(n,24,0,""),l(n,27,0,"name"),l(n,30,0,"name"),l(n,32,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,34,0,e.form.showError("name",u["ɵnov"](n,11),"pattern")),l(n,36,0,e.form.showError("name",u["ɵnov"](n,11),"uniqueName")),l(n,38,0),l(n,45,0,e.tooltips.plugins[e.plugin].description),l(n,50,0,"plugin"),l(n,53,0,"plugin"),l(n,55,0,!e.plugins),l(n,57,0,e.plugins),l(n,59,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,61,0),l(n,68,0,e.tooltips.k),l(n,74,0,"k"),l(n,77,0,"k"),l(n,79,0,e.form.showError("k",u["ɵnov"](n,11),"required")),l(n,81,0,e.form.showError("k",u["ɵnov"](n,11),"min")),l(n,83,0,e.form.showError("k",u["ɵnov"](n,11),"max")),l(n,85,0,e.form.showError("k",u["ɵnov"](n,11),"unequal")),l(n,87,0,e.form.showError("k",u["ɵnov"](n,11),"kLowerM")),l(n,89,0,"lrc"===e.plugin),l(n,91,0),l(n,98,0,e.tooltips.m),l(n,104,0,"m"),l(n,107,0,"m"),l(n,109,0,e.form.showError("m",u["ɵnov"](n,11),"required")),l(n,111,0,e.form.showError("m",u["ɵnov"](n,11),"min")),l(n,113,0,e.form.showError("m",u["ɵnov"](n,11),"max")),l(n,115,0,"shec"===e.plugin),l(n,117,0,e.plugin===e.PLUGIN.LRC),l(n,119,0),l(n,126,0,e.tooltips.crushFailureDomain),l(n,131,0,"crushFailureDomain"),l(n,134,0,"crushFailureDomain"),l(n,136,0,!e.failureDomains),l(n,138,0,e.failureDomainKeys),l(n,140,0,e.plugin===e.PLUGIN.LRC);var t=l(n,143,0,e.PLUGIN.JERASURE,e.PLUGIN.ISA).includes(e.plugin);l(n,142,0,t),l(n,145,0,e.plugin===e.PLUGIN.JERASURE),l(n,147,0),l(n,154,0,e.tooltips.crushRoot),l(n,159,0,"crushRoot"),l(n,162,0,"crushRoot"),l(n,164,0,!e.buckets),l(n,166,0,e.buckets),l(n,168,0),l(n,175,0,e.tooltips.crushDeviceClass),l(n,180,0,"crushDeviceClass"),l(n,183,0,"crushDeviceClass"),l(n,185,0,""),l(n,186,0,""),l(n,189,0,e.devices),l(n,193,0),l(n,200,0,e.tooltips.directory),l(n,205,0,"directory"),l(n,208,0,"directory"),l(n,211,0,u["ɵnov"](n,11)),l(n,216,0,e.bsModalRef.hide)}),(function(l,n){var e=n.component,t=u["ɵunv"](n,5,0,l(n,6,0,u["ɵnov"](n,0),e.action)),i=u["ɵunv"](n,5,1,l(n,7,0,u["ɵnov"](n,1),e.resource));l(n,5,0,t,i),l(n,9,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending),l(n,16,0,u["ɵnov"](n,17).hasErrors,u["ɵnov"](n,17).hasSuccess),l(n,23,0,u["ɵnov"](n,29).ngClassUntouched,u["ɵnov"](n,29).ngClassTouched,u["ɵnov"](n,29).ngClassPristine,u["ɵnov"](n,29).ngClassDirty,u["ɵnov"](n,29).ngClassValid,u["ɵnov"](n,29).ngClassInvalid,u["ɵnov"](n,29).ngClassPending,u["ɵnov"](n,30).validClass,u["ɵnov"](n,30).invalidClass),l(n,37,0,u["ɵnov"](n,38).hasErrors,u["ɵnov"](n,38).hasSuccess),l(n,47,0,u["ɵnov"](n,52).ngClassUntouched,u["ɵnov"](n,52).ngClassTouched,u["ɵnov"](n,52).ngClassPristine,u["ɵnov"](n,52).ngClassDirty,u["ɵnov"](n,52).ngClassValid,u["ɵnov"](n,52).ngClassInvalid,u["ɵnov"](n,52).ngClassPending,u["ɵnov"](n,53).validClass,u["ɵnov"](n,53).invalidClass),l(n,60,0,u["ɵnov"](n,61).hasErrors,u["ɵnov"](n,61).hasSuccess),l(n,70,0,u["ɵnov"](n,76).ngClassUntouched,u["ɵnov"](n,76).ngClassTouched,u["ɵnov"](n,76).ngClassPristine,u["ɵnov"](n,76).ngClassDirty,u["ɵnov"](n,76).ngClassValid,u["ɵnov"](n,76).ngClassInvalid,u["ɵnov"](n,76).ngClassPending,u["ɵnov"](n,77).validClass,u["ɵnov"](n,77).invalidClass),l(n,90,0,u["ɵnov"](n,91).hasErrors,u["ɵnov"](n,91).hasSuccess),l(n,100,0,u["ɵnov"](n,106).ngClassUntouched,u["ɵnov"](n,106).ngClassTouched,u["ɵnov"](n,106).ngClassPristine,u["ɵnov"](n,106).ngClassDirty,u["ɵnov"](n,106).ngClassValid,u["ɵnov"](n,106).ngClassInvalid,u["ɵnov"](n,106).ngClassPending,u["ɵnov"](n,107).validClass,u["ɵnov"](n,107).invalidClass),l(n,118,0,u["ɵnov"](n,119).hasErrors,u["ɵnov"](n,119).hasSuccess),l(n,128,0,u["ɵnov"](n,133).ngClassUntouched,u["ɵnov"](n,133).ngClassTouched,u["ɵnov"](n,133).ngClassPristine,u["ɵnov"](n,133).ngClassDirty,u["ɵnov"](n,133).ngClassValid,u["ɵnov"](n,133).ngClassInvalid,u["ɵnov"](n,133).ngClassPending,u["ɵnov"](n,134).validClass,u["ɵnov"](n,134).invalidClass),l(n,146,0,u["ɵnov"](n,147).hasErrors,u["ɵnov"](n,147).hasSuccess),l(n,156,0,u["ɵnov"](n,161).ngClassUntouched,u["ɵnov"](n,161).ngClassTouched,u["ɵnov"](n,161).ngClassPristine,u["ɵnov"](n,161).ngClassDirty,u["ɵnov"](n,161).ngClassValid,u["ɵnov"](n,161).ngClassInvalid,u["ɵnov"](n,161).ngClassPending,u["ɵnov"](n,162).validClass,u["ɵnov"](n,162).invalidClass),l(n,167,0,u["ɵnov"](n,168).hasErrors,u["ɵnov"](n,168).hasSuccess),l(n,177,0,u["ɵnov"](n,182).ngClassUntouched,u["ɵnov"](n,182).ngClassTouched,u["ɵnov"](n,182).ngClassPristine,u["ɵnov"](n,182).ngClassDirty,u["ɵnov"](n,182).ngClassValid,u["ɵnov"](n,182).ngClassInvalid,u["ɵnov"](n,182).ngClassPending,u["ɵnov"](n,183).validClass,u["ɵnov"](n,183).invalidClass),l(n,191,0,e.deviceCount),l(n,192,0,u["ɵnov"](n,193).hasErrors,u["ɵnov"](n,193).hasSuccess),l(n,202,0,u["ɵnov"](n,207).ngClassUntouched,u["ɵnov"](n,207).ngClassTouched,u["ɵnov"](n,207).ngClassPristine,u["ɵnov"](n,207).ngClassDirty,u["ɵnov"](n,207).ngClassValid,u["ɵnov"](n,207).ngClassInvalid,u["ɵnov"](n,207).ngClassPending,u["ɵnov"](n,208).validClass,u["ɵnov"](n,208).invalidClass);var a=u["ɵunv"](n,212,0,l(n,213,0,u["ɵnov"](n,0),e.action)),o=u["ɵunv"](n,212,1,l(n,214,0,u["ɵnov"](n,1),e.resource));l(n,212,0,a,o)}))}function xn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-erasure-code-profile-form-modal",[],null,null,null,qn,Zl)),u["ɵdid"](1,114688,null,0,_,[V.a,Pl.a,N.a,c,s.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Pn=u["ɵccf"]("cd-erasure-code-profile-form-modal",_,xn,{},{submitAction:"submitAction"},[]),Fn=e("w9WL"),An=e("yT6U"),Bn=e("4DD9"),On=e("iExv"),zn=e("85J/"),Ln=e("+0ag"),jn=e("IzCI"),Un=e("Dwqy"),Mn=e("uYzU"),Gn=e("FFMq"),$n=e("E2fk"),Kn=e("a0VL"),Jn=e("nSDx"),Wn=e("SB+Q"),Zn=e("TYzs"),Hn=e("BQkM"),Xn=e("dEH0"),Yn=e("G1/K"),Qn=e("TJUb"),le=e("efK2"),ne=e("CNMR"),ee=e("KOzp"),ue=e("2uy1"),te=e("z/SZ"),ie=e("38Bd"),ae=e("978R"),oe=e("FE24"),se=e("Avrn"),re=e("iInd"),de=e("2ZVE"),ce=e("ienR"),me=e("gk6K"),fe=e("9Xeq"),ge=e("hrfs"),pe=e("yGOH"),he=e("bxSN"),ve=e("WF9J"),be=e("V/fk"),Ce=e("ChqD"),Re=e("PCNd"),Ie=e("kJI8"),Ee=e("kccj"),Ne=e("yYhs"),ye=e("k/xb"),Ve=e("C6Ij"),we=e("AWcq"),Te=e("xSw7"),_e=e("GgAd"),Se=e("a278"),ke=e("insk"),De=e("mSOc"),qe=e("cUpR"),xe=e("20UP"),Pe=e("pKUh"),Fe=e("25BL"),Ae=e("NUGo"),Be=e("S7zO"),Oe=e("EFGL"),ze=e("aAWM"),Le=e("o8EM"),je=e("sLuX"),Ue=e("FSuO");e("jKX/");class Me{constructor(l,n){this.i18n=l,this.poolService=n,this.cacheTierColumns=[],this.cacheTierColumns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:3},{prop:"cache_mode",name:this.i18n("Cache Mode"),flexGrow:2},{prop:"cache_min_evict_age",name:this.i18n("Min Evict Age"),flexGrow:2},{prop:"cache_min_flush_age",name:this.i18n("Min Flush Age"),flexGrow:2},{prop:"target_max_bytes",name:this.i18n("Target Max Bytes"),flexGrow:2},{prop:"target_max_objects",name:this.i18n("Target Max Objects"),flexGrow:2}]}ngOnChanges(){this.selection&&this.poolService.getConfiguration(this.selection.pool_name).subscribe(l=>{this.selectedPoolConfiguration=l})}filterNonPoolData(l){return a.omit(l,["cdExecuting","cdIsBinary"])}}var Ge=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $e(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](1,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","-xyV8KCiz"]],null,null,null,Se.b,Se.a)),u["ɵdid"](3,638976,null,0,ke.a,[De.a,qe.b,xe.a,Ln.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"ceph-pool-detail?var-pool_name="+e.selection.pool_name,"one","-xyV8KCiz")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass,u["ɵnov"](n,1).role,u["ɵnov"](n,1).ariaLabelledby)}))}function Ke(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](1,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,Oe.b,Oe.a)),u["ɵdid"](3,638976,null,0,ze.a,[E.a,Le.a,s.a],{data:[0,"data"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Configuration"),l(n,3,0,e.selectedPoolConfiguration)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass,u["ɵnov"](n,1).role,u["ɵnov"](n,1).ariaLabelledby)}))}function Je(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Cache Tiers Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](1,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,Fe.b,Fe.a)),u["ɵdid"](3,2867200,null,0,P.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Cache Tiers Details"),l(n,3,0,e.cacheTiers,e.cacheTierColumns,"flex",!1)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass,u["ɵnov"](n,1).role,u["ɵnov"](n,1).ariaLabelledby)}))}function We(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,11,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,Pe.b,Pe.a)),u["ɵdid"](1,180224,[[1,4],["tabsetChild",4]],0,de.e,[de.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](3,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,je.b,je.a)),u["ɵdid"](5,638976,null,0,Ue.a,[Kn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,$e)),u["ɵdid"](7,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,Ke)),u["ɵdid"](9,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,Je)),u["ɵdid"](11,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.filterNonPoolData(e.selection),!1,!0),l(n,7,0,e.permissions.grafana.read),l(n,9,0,"replicated"===e.selection.type),l(n,11,0,(null==e.selection.tiers?null:e.selection.tiers.length)>0)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).clazz),l(n,2,0,u["ɵnov"](n,3).id,u["ɵnov"](n,3).active,u["ɵnov"](n,3).addClass,u["ɵnov"](n,3).role,u["ɵnov"](n,3).ariaLabelledby)}))}function Ze(l){return u["ɵvid"](0,[u["ɵqud"](671088640,1,{tabsetChild:0}),(l()(),u["ɵand"](16777216,null,null,1,null,We)),u["ɵdid"](2,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,2,0,n.component.selection)}),null)}var He=e("ufoC"),Xe=u["ɵcrt"]({encapsulation:0,styles:[[".pg-clean{color:#0b0}  .pg-working{color:#2b99a8}  .pg-warning{color:#ffc200}  .pg-unknown{color:red}"]],data:{}});function Ye(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Ve.b,Ve.a)),u["ɵdid"](1,114688,null,0,we.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function Qe(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,Te.b,Te.a)),u["ɵdid"](1,573440,null,0,_e.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(l,n){l(n,1,0,n.parent.context.row.stats.bytes_used.latest+n.parent.context.row.stats.max_avail.latest,n.parent.context.row.stats.bytes_used.latest)}),null)}function lu(l){return u["ɵvid"](0,[(l()(),u["ɵand"](16777216,null,null,1,null,Qe)),u["ɵdid"](1,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,null==n.context.row.stats?null:null==n.context.row.stats.max_avail?null:n.context.row.stats.max_avail.latest)}),null)}function nu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](1,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","z99hzWtmk"]],null,null,null,Se.b,Se.a)),u["ɵdid"](3,638976,null,0,ke.a,[De.a,qe.b,xe.a,Ln.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"ceph-pools-overview?","two","z99hzWtmk")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass,u["ɵnov"](n,1).role,u["ɵnov"](n,1).ariaLabelledby)}))}function eu(l){return u["ɵvid"](0,[u["ɵqud"](402653184,1,{table:0}),u["ɵqud"](402653184,2,{poolUsageTpl:0}),u["ɵqud"](671088640,3,{poolConfigurationSourceTpl:0}),(l()(),u["ɵeld"](3,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,Pe.b,Pe.a)),u["ɵdid"](4,180224,null,0,de.e,[de.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](5,0,null,0,10,"tab",[["heading","Pools List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](6,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ye)),u["ɵdid"](8,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](9,0,null,null,5,"cd-table",[["id","pool-list"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"]],(function(l,n,e){var u=!0,t=l.component;return"setExpandedRow"===n&&(u=!1!==t.setExpandedRow(e)&&u),"updateSelection"===n&&(u=!1!==t.updateSelection(e)&&u),u}),Fe.b,Fe.a)),u["ɵdid"](10,2867200,[[1,4],["table",4]],0,P.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],hasDetails:[2,"hasDetails"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),u["ɵeld"](11,0,null,1,1,"cd-table-actions",[["class","table-actions"],["id","pool-list-actions"]],null,null,null,Ae.b,Ae.a)),u["ɵdid"](12,114688,null,0,Be.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["ɵeld"](13,0,null,3,1,"cd-pool-details",[["cdTableDetail",""],["id","pool-list-details"]],null,null,null,Ze,Ge)),u["ɵdid"](14,573440,null,0,Me,[s.a,m.a],{selection:[0,"selection"],permissions:[1,"permissions"],cacheTiers:[2,"cacheTiers"]},null),(l()(),u["ɵand"](0,[[2,2],["poolUsageTpl",2]],null,0,null,lu)),(l()(),u["ɵand"](16777216,null,0,1,null,nu)),u["ɵdid"](17,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,6,0,"Pools List"),l(n,8,0,e.viewCacheStatusList),l(n,10,0,e.pools,e.columns,!0,"single"),l(n,12,0,e.permissions.pool,e.selection,e.tableActions),l(n,14,0,e.expandedRow,e.permissions,e.cacheTiers),l(n,17,0,e.permissions.grafana.read)}),(function(l,n){l(n,3,0,u["ɵnov"](n,4).clazz),l(n,5,0,u["ɵnov"](n,6).id,u["ɵnov"](n,6).active,u["ɵnov"](n,6).addClass,u["ɵnov"](n,6).role,u["ɵnov"](n,6).ariaLabelledby)}))}function uu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"cd-pool-list",[],null,null,null,eu,Xe)),u["ɵprd"](131584,null,z.a,z.a,[He.a,De.a]),u["ɵprd"](256,null,L.a,M,[]),u["ɵdid"](3,114688,null,0,G,[m.a,N.a,I.a,z.a,Pl.b,s.a,j.a,O.a,L.a,q.a,t.b],null,null)],(function(l,n){l(n,3,0)}),null)}var tu=u["ɵccf"]("cd-pool-list",G,uu,{},{},[]),iu=e("QC43"),au=e("XFyV"),ou=e("EmSq"),su=e("pYKc"),ru=e("ppaS"),du=e("BH9v"),cu=e("rFfW"),mu=u["ɵcrt"]({encapsulation:0,styles:[[".crush-rule-steps[_ngcontent-%COMP%]{margin-top:10px}"]],data:{}});function fu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,iu.b,iu.a)),u["ɵdid"](1,49152,null,0,au.a,[],null,null),(l()(),u["ɵted"](-1,0,["Loading..."]))],null,null)}function gu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function pu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen Ceph pool name is already in use."]))],null,null)}function hu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["It's not possible to create an RBD pool with '/' in the name. Please change the name or remove 'rbd' from the applications list."]))],null,null)}function vu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Pool name can only contain letters, numbers, '.', '-', '_' or '/'."]))],null,null)}function bu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Cu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Ru(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Iu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Eu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["At least one placement group is needed!"]))],null,null)}function Nu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Your cluster can't handle this many PGs. Please recalculate the PG amount needed."]))],null,null)}function yu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The current PGs settings were calculated for you, you should make sure the values suit your needs before submit."]))],null,null)}function Vu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,27,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,11,{FormControlNames:1}),u["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","pgNum"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Placement groups"])),(l()(),u["ɵeld"](6,0,null,0,21,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,9,"input",[["class","form-control"],["formControlName","pgNum"],["id","pgNum"],["min","1"],["name","pgNum"],["required",""],["type","number"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"focus"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0,i=l.component;return"input"===n&&(t=!1!==u["ɵnov"](l,8)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,8)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),"focus"===n&&(t=0!=(i.externalPgChange=!1)&&t),"blur"===n&&(t=!1!==i.alignPgs()&&t),t}),null,null)),u["ɵdid"](8,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](9,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵdid"](10,16384,null,0,i.z,[],{required:[0,"required"]},null),u["ɵprd"](1024,null,i.o,(function(l){return[l]}),[i.z]),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](13,671744,[[11,4]],0,i.j,[[3,i.d],[6,i.o],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](15,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](16,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Iu)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Eu)),u["ɵdid"](20,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Nu)),u["ɵdid"](22,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](23,0,null,null,2,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,null,1,"a",[["href","http://ceph.com/pgcalc"],["target","_blank"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Calculation help"])),(l()(),u["ɵand"](16777216,null,null,1,null,yu)),u["ɵdid"](27,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,10,0,""),l(n,13,0,"pgNum"),l(n,16,0,"pgNum"),l(n,18,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"required")),l(n,20,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"min")),l(n,22,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"34")),l(n,27,0,e.externalPgChange)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,7,0,u["ɵnov"](n,10).required?"":null,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function wu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,5,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,4,"ul",[["class","list-inline"]],null,null,null,null,null)),(l()(),u["ɵeld"](2,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](3,null,["Minimum: ",""])),(l()(),u["ɵeld"](4,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](5,null,["Maximum: ",""]))],null,(function(l,n){var e=n.component;l(n,3,0,e.getMinSize()),l(n,5,0,e.getMaxSize())}))}function Tu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](1,null,["The size specified is out of range. A value from "," to "," is valid."]))],null,(function(l,n){var e=n.component;l(n,1,0,e.getMinSize(),e.getMaxSize())}))}function _u(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,13,{FormControlNames:1}),u["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","size"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Replicated size"])),(l()(),u["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","size"],["id","size"],["name","size"],["type","number"]],[[8,"max",0],[8,"min",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,8)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,8)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),t}),null,null)),u["ɵdid"](8,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](9,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](11,671744,[[13,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](13,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](14,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,wu)),u["ɵdid"](16,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Tu)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,11,0,"size"),l(n,14,0,"size"),l(n,16,0,e.form.showError("size",u["ɵnov"](n.parent.parent,2))),l(n,18,0,e.form.showError("size",u["ɵnov"](n.parent.parent,2)))}),(function(l,n){var e=n.component;l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,7,1,[e.getMaxSize(),e.getMinSize(),u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass])}))}function Su(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,15,{FormControlNames:1}),u["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Flags"])),(l()(),u["ɵeld"](6,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","ecOverwrites"],["id","ec-overwrites"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.checked)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),t}),null,null)),u["ɵdid"](9,16384,null,0,i.c,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.c]),u["ɵdid"](11,671744,[[15,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](13,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](14,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](15,0,null,null,1,"label",[["class","custom-control-label"],["for","ec-overwrites"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["EC Overwrites"]))],(function(l,n){l(n,1,0),l(n,11,0,"ecOverwrites"),l(n,14,0,"ecOverwrites")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function ku(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,22,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](2,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,9,{FormControlNames:1}),u["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),u["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"],["for","pgAutoscaleMode"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["PG Autoscale"])),(l()(),u["ɵeld"](7,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","pgAutoscaleMode"],["id","pgAutoscaleMode"],["name","pgAutoscaleMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),t}),null,null)),u["ɵdid"](9,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](11,671744,[[9,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](13,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](14,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ru)),u["ɵdid"](16,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Vu)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,_u)),u["ɵdid"](20,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Su)),u["ɵdid"](22,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0),l(n,11,0,"pgAutoscaleMode"),l(n,14,0,"pgAutoscaleMode"),l(n,16,0,e.pgAutoscaleModes),l(n,18,0,"on"!==e.form.getValue("pgAutoscaleMode")),l(n,20,0,e.isReplicated),l(n,22,0,e.info.is_all_bluestore&&e.isErasure)}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).hasErrors,u["ɵnov"](n,2).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function Du(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function qu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- No erasure code profile available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function xu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select an erasure code profile --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Pu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function Fu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addErasureCodeProfile()&&u),u}),null,null)),(l()(),u["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](3,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](4,1)],(function(l,n){var e=l(n,4,0,n.component.icons.add);l(n,3,0,e)}),null)}function Au(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","This profile can't be deleted as it is in use."],["triggers",""],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteErasureCodeProfile()&&u),u}),null,null)),u["ɵdid"](1,212992,[[4,4],["ecpDeletionBtn",4]],0,ae.c,[u.ViewContainerRef,te.a,ae.a,u.ElementRef,u.Renderer2,ue.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"]},null),(l()(),u["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](4,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](5,1),(l()(),u["ɵand"](0,null,null,0))],(function(l,n){var e=n.component;l(n,1,0,"This profile can't be deleted as it is in use.","");var u=l(n,5,0,e.icons.trash);l(n,4,0,u)}),null)}function Bu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Profile is not in use."]))],null,null)}function Ou(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.context.$implicit)}))}function zu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"ul",[],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,Ou)),u["ɵdid"](2,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,2,0,n.component.ecpUsage)}),null)}function Lu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,11,"span",[["class","form-text text-muted"],["id","ecp-info-block"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,10,"tabset",[],[[2,"tab-container",null]],null,null,Pe.b,Pe.a)),u["ɵdid"](2,180224,[[3,4],["ecpInfoTabs",4]],0,de.e,[de.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](3,0,null,0,3,"tab",[["class","ecp-info"],["heading","Profile"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](4,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](5,0,null,null,1,"cd-table-key-value",[],null,null,null,je.b,je.a)),u["ɵdid"](6,638976,null,0,Ue.a,[Kn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["ɵeld"](7,0,null,0,4,"tab",[["class","used-by-pools"],["heading","Used by pools"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](8,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵand"](0,[["ecpIsNotUsed",2]],null,0,null,Bu)),(l()(),u["ɵand"](16777216,null,null,1,null,zu)),u["ɵdid"](11,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(l,n){var e=n.component;l(n,4,0,"Profile"),l(n,6,0,e.form.getValue("erasureProfile"),!1,!0),l(n,8,0,"Used by pools"),l(n,11,0,e.ecpUsage,u["ɵnov"](n,9))}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).clazz),l(n,3,0,u["ɵnov"](n,4).id,u["ɵnov"](n,4).active,u["ɵnov"](n,4).addClass,u["ɵnov"](n,4).role,u["ɵnov"](n,4).ariaLabelledby),l(n,7,0,u["ɵnov"](n,8).id,u["ɵnov"](n,8).active,u["ɵnov"](n,8).addClass,u["ɵnov"](n,8).role,u["ɵnov"](n,8).ariaLabelledby)}))}function ju(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,37,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,19,{FormControlNames:1}),u["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","erasureProfile"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Erasure code profile"])),(l()(),u["ɵeld"](6,0,null,0,31,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,28,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","erasureProfile"],["id","erasureProfile"],["name","erasureProfile"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),t}),null,null)),u["ɵdid"](9,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](11,671744,[[19,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](13,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](14,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Du)),u["ɵdid"](16,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,qu)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,xu)),u["ɵdid"](20,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Pu)),u["ɵdid"](22,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](23,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,null,7,"button",[["class","btn btn-light"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.erasureInfo=!t.data.erasureInfo)&&u),u}),null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](26,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["ɵpod"](27,{active:0}),(l()(),u["ɵeld"](28,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](30,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](31,1),(l()(),u["ɵand"](16777216,null,null,1,null,Fu)),u["ɵdid"](33,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Au)),u["ɵdid"](35,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Lu)),u["ɵdid"](37,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,11,0,"erasureProfile"),l(n,14,0,"erasureProfile"),l(n,16,0,!e.ecProfiles),l(n,18,0,e.ecProfiles&&0===e.ecProfiles.length),l(n,20,0,e.ecProfiles&&e.ecProfiles.length>0),l(n,22,0,e.ecProfiles);var u=l(n,27,0,e.data.erasureInfo);l(n,26,0,"btn btn-light",u);var t=l(n,31,0,e.icons.questionCircle);l(n,30,0,t),l(n,33,0,!e.editing),l(n,35,0,!e.editing),l(n,37,0,e.data.erasureInfo&&e.form.getValue("erasureProfile"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function Uu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,21,{FormControlNames:1}),u["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush ruleset"])),(l()(),u["ɵeld"](6,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A new crush ruleset will be implicitly created."]))],(function(l,n){l(n,1,0)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess)}))}function Mu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["There are no rules."])),(l()(),u["ɵted"](-1,null,["  "]))],null,null)}function Gu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.rule_name)}))}function $u(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addCrushRule()&&u),u}),null,null)),(l()(),u["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](3,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](4,1)],(function(l,n){var e=l(n,4,0,n.component.icons.add);l(n,3,0,e)}),null)}function Ku(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","This rule can't be deleted as it is in use."],["triggers",""],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteCrushRule()&&u),u}),null,null)),u["ɵdid"](1,212992,[[2,4],["crushDeletionBtn",4]],0,ae.c,[u.ViewContainerRef,te.a,ae.a,u.ElementRef,u.Renderer2,ue.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"]},null),(l()(),u["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](4,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](5,1),(l()(),u["ɵand"](0,null,null,0))],(function(l,n){var e=n.component;l(n,1,0,"This rule can't be deleted as it is in use.","");var u=l(n,5,0,e.icons.trash);l(n,4,0,u)}),null)}function Ju(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.describeCrushStep(n.context.$implicit))}))}function Wu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Rule is not in use."]))],null,null)}function Zu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.context.$implicit)}))}function Hu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"ul",[],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,Zu)),u["ɵdid"](2,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,2,0,n.component.crushUsage)}),null)}function Xu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,16,"span",[["class","form-text text-muted"],["id","crush-info-block"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,Pe.b,Pe.a)),u["ɵdid"](2,180224,[[1,4],["crushInfoTabs",4]],0,de.e,[de.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](3,0,null,0,3,"tab",[["class","crush-rule-info"],["heading","Crush rule"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](4,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](5,0,null,null,1,"cd-table-key-value",[],null,null,null,je.b,je.a)),u["ɵdid"](6,638976,null,0,Ue.a,[Kn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["ɵeld"](7,0,null,0,4,"tab",[["class","crush-rule-steps"],["heading","Crush steps"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](8,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](9,0,null,null,2,"ol",[],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,Ju)),u["ɵdid"](11,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](12,0,null,0,4,"tab",[["class","used-by-pools"],["heading","Used by pools"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),u["ɵdid"](13,212992,null,0,de.b,[de.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵand"](0,[["ruleIsNotUsed",2]],null,0,null,Wu)),(l()(),u["ɵand"](16777216,null,null,1,null,Hu)),u["ɵdid"](16,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(l,n){var e=n.component;l(n,4,0,"Crush rule"),l(n,6,0,e.form.getValue("crushRule"),!1,!0),l(n,8,0,"Crush steps"),l(n,11,0,e.form.get("crushRule").value.steps),l(n,13,0,"Used by pools"),l(n,16,0,e.crushUsage,u["ɵnov"](n,14))}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).clazz),l(n,3,0,u["ɵnov"](n,4).id,u["ɵnov"](n,4).active,u["ɵnov"](n,4).addClass,u["ɵnov"](n,4).role,u["ɵnov"](n,4).ariaLabelledby),l(n,7,0,u["ɵnov"](n,8).id,u["ɵnov"](n,8).active,u["ɵnov"](n,8).addClass,u["ɵnov"](n,8).role,u["ɵnov"](n,8).ariaLabelledby),l(n,12,0,u["ɵnov"](n,13).id,u["ɵnov"](n,13).active,u["ɵnov"](n,13).addClass,u["ɵnov"](n,13).role,u["ɵnov"](n,13).ariaLabelledby)}))}function Yu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Qu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The rule can't be used in the current cluster as it has too few OSDs to meet the minimum required OSD by this rule."]))],null,null)}function lt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,33,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,26,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["ɵeld"](2,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushRule"],["id","crushRule"],["name","crushSet"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,3).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,3).onTouched()&&t),t}),null,null)),u["ɵdid"](3,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](5,671744,[[23,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](7,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](8,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](9,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](10,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](11,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select a crush rule --"])),(l()(),u["ɵand"](16777216,null,null,1,null,Gu)),u["ɵdid"](14,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](15,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,7,"button",[["class","btn btn-light"],["id","crush-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0,t=l.component;return"click"===n&&(u=0!=(t.data.crushInfo=!t.data.crushInfo)&&u),u}),null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](18,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["ɵpod"](19,{active:0}),(l()(),u["ɵeld"](20,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,El["ɵNgClassImpl"],El["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](22,278528,null,0,El.NgClass,[El["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](23,1),(l()(),u["ɵand"](16777216,null,null,1,null,$u)),u["ɵdid"](25,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ku)),u["ɵdid"](27,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Xu)),u["ɵdid"](29,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Yu)),u["ɵdid"](31,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Qu)),u["ɵdid"](33,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,5,0,"crushRule"),l(n,8,0,"crushRule"),l(n,10,0,null),l(n,11,0,null),l(n,14,0,e.current.rules);var t=l(n,19,0,e.data.crushInfo);l(n,18,0,"btn btn-light",t);var i=l(n,23,0,e.icons.questionCircle);l(n,22,0,i),l(n,25,0,e.isReplicated&&!e.editing),l(n,27,0,e.isReplicated&&!e.editing),l(n,29,0,e.data.crushInfo&&e.form.getValue("crushRule")),l(n,31,0,e.form.showError("crushRule",u["ɵnov"](n.parent.parent.parent,2),"required")),l(n,33,0,e.form.showError("crushRule",u["ɵnov"](n.parent.parent.parent,2),"tooFewOsds"))}),(function(l,n){l(n,2,0,u["ɵnov"](n,7).ngClassUntouched,u["ɵnov"](n,7).ngClassTouched,u["ɵnov"](n,7).ngClassPristine,u["ɵnov"](n,7).ngClassDirty,u["ɵnov"](n,7).ngClassValid,u["ɵnov"](n,7).ngClassInvalid,u["ɵnov"](n,7).ngClassPending,u["ɵnov"](n,8).validClass,u["ɵnov"](n,8).invalidClass)}))}function nt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,9,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](1,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,23,{FormControlNames:1}),u["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush ruleset"])),(l()(),u["ɵeld"](6,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵand"](0,[["noRules",2]],null,0,null,Mu)),(l()(),u["ɵand"](16777216,null,null,1,null,lt)),u["ɵdid"](9,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,9,0,e.current.rules.length>0,u["ɵnov"](n,7))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess)}))}function et(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["CRUSH"])),(l()(),u["ɵand"](16777216,null,null,1,null,ju)),u["ɵdid"](4,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Uu)),u["ɵdid"](6,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,nt)),u["ɵdid"](8,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.isErasure),l(n,6,0,e.isErasure&&!e.editing),l(n,8,0,e.isReplicated||e.editing)}),null)}function ut(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function tt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function it(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- No erasure compression algorithm available --"]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function at(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function ot(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than 0"]))],null,null)}function st(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be less than the maximum blob size"]))],null,null)}function rt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than 0"]))],null,null)}function dt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than the minimum blob size"]))],null,null)}function ct(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be between 0.0 and 1.0"]))],null,null)}function mt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,75,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](2,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,27,{FormControlNames:1}),u["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),u["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"],["for","algorithm"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Algorithm"])),(l()(),u["ɵeld"](7,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","algorithm"],["id","algorithm"],["name","algorithm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,9).onTouched()&&t),t}),null,null)),u["ɵdid"](9,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](11,671744,[[27,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](13,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](14,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,tt)),u["ɵdid"](16,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,it)),u["ɵdid"](18,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,at)),u["ɵdid"](20,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](21,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](22,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,29,{FormControlNames:1}),u["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),u["ɵeld"](25,0,null,0,1,"label",[["class","cd-col-form-label"],["for","minBlobSize"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Minimum blob size"])),(l()(),u["ɵeld"](27,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](28,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","minBlobSize"],["id","minBlobSize"],["min","0"],["name","minBlobSize"],["placeholder","e.g., 128KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,29)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,29).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,29)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,29)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,33).onBlur(e.target.value)&&t),t}),null,null)),u["ɵdid"](29,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](31,671744,[[29,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](33,81920,null,0,ou.a,[u.ElementRef,i.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](34,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](35,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ot)),u["ɵdid"](37,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,st)),u["ɵdid"](39,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](40,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](41,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,31,{FormControlNames:1}),u["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),u["ɵeld"](44,0,null,0,1,"label",[["class","cd-col-form-label"],["for","maxBlobSize"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Maximum blob size"])),(l()(),u["ɵeld"](46,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](47,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","maxBlobSize"],["id","maxBlobSize"],["min","0"],["placeholder","e.g., 512KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,48)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,48).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,48)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,48)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,52).onBlur(e.target.value)&&t),t}),null,null)),u["ɵdid"](48,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](50,671744,[[31,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](52,81920,null,0,ou.a,[u.ElementRef,i.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](53,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](54,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,rt)),u["ɵdid"](56,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,dt)),u["ɵdid"](58,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](59,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](60,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,33,{FormControlNames:1}),u["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),u["ɵeld"](63,0,null,0,1,"label",[["class","cd-col-form-label"],["for","ratio"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Ratio"])),(l()(),u["ɵeld"](65,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](66,0,null,null,7,"input",[["class","form-control"],["formControlName","ratio"],["id","ratio"],["max","1"],["min","0"],["name","ratio"],["placeholder","Compression ratio"],["step","0.1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,67)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,67).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,67)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,67)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,68).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,68).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,68).onTouched()&&t),t}),null,null)),u["ɵdid"](67,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](68,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](70,671744,[[33,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](72,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](73,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ct)),u["ɵdid"](75,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0),l(n,11,0,"algorithm"),l(n,14,0,"algorithm"),l(n,16,0,!e.info.compression_algorithms),l(n,18,0,e.info.compression_algorithms&&0===e.info.compression_algorithms.length),l(n,20,0,e.info.compression_algorithms),l(n,22,0),l(n,31,0,"minBlobSize"),l(n,33,0,"KiB"),l(n,35,0,"minBlobSize"),l(n,37,0,e.form.showError("minBlobSize",u["ɵnov"](n.parent.parent,2),"min")),l(n,39,0,e.form.showError("minBlobSize",u["ɵnov"](n.parent.parent,2),"maximum")),l(n,41,0),l(n,50,0,"maxBlobSize"),l(n,52,0,"KiB"),l(n,54,0,"maxBlobSize"),l(n,56,0,e.form.showError("maxBlobSize",u["ɵnov"](n.parent.parent,2),"min")),l(n,58,0,e.form.showError("maxBlobSize",u["ɵnov"](n.parent.parent,2),"minimum")),l(n,60,0),l(n,70,0,"ratio"),l(n,73,0,"ratio"),l(n,75,0,e.form.showError("ratio",u["ɵnov"](n.parent.parent,2),"min")||e.form.showError("ratio",u["ɵnov"](n.parent.parent,2),"max"))}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).hasErrors,u["ɵnov"](n,2).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass),l(n,21,0,u["ɵnov"](n,22).hasErrors,u["ɵnov"](n,22).hasSuccess),l(n,28,0,u["ɵnov"](n,34).ngClassUntouched,u["ɵnov"](n,34).ngClassTouched,u["ɵnov"](n,34).ngClassPristine,u["ɵnov"](n,34).ngClassDirty,u["ɵnov"](n,34).ngClassValid,u["ɵnov"](n,34).ngClassInvalid,u["ɵnov"](n,34).ngClassPending,u["ɵnov"](n,35).validClass,u["ɵnov"](n,35).invalidClass),l(n,40,0,u["ɵnov"](n,41).hasErrors,u["ɵnov"](n,41).hasSuccess),l(n,47,0,u["ɵnov"](n,53).ngClassUntouched,u["ɵnov"](n,53).ngClassTouched,u["ɵnov"](n,53).ngClassPristine,u["ɵnov"](n,53).ngClassDirty,u["ɵnov"](n,53).ngClassValid,u["ɵnov"](n,53).ngClassInvalid,u["ɵnov"](n,53).ngClassPending,u["ɵnov"](n,54).validClass,u["ɵnov"](n,54).invalidClass),l(n,59,0,u["ɵnov"](n,60).hasErrors,u["ɵnov"](n,60).hasSuccess),l(n,66,0,u["ɵnov"](n,72).ngClassUntouched,u["ɵnov"](n,72).ngClassTouched,u["ɵnov"](n,72).ngClassPristine,u["ɵnov"](n,72).ngClassDirty,u["ɵnov"](n,72).ngClassValid,u["ɵnov"](n,72).ngClassInvalid,u["ɵnov"](n,72).ngClassPending,u["ɵnov"](n,73).validClass,u["ɵnov"](n,73).invalidClass)}))}function ft(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,23,"div",[["formGroupName","compression"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,i.m,[[3,i.d],[8,null],[8,null]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.d,null,[i.m]),u["ɵdid"](3,16384,null,0,i.s,[[4,i.d]],null,null),(l()(),u["ɵeld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Compression"])),(l()(),u["ɵeld"](6,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](7,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,25,{FormControlNames:1}),u["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),u["ɵeld"](10,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mode"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Mode"])),(l()(),u["ɵeld"](12,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](13,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","mode"],["id","mode"],["name","mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,14).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,14).onTouched()&&t),t}),null,null)),u["ɵdid"](14,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](16,671744,[[25,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](18,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](19,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ut)),u["ɵdid"](21,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,mt)),u["ɵdid"](23,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0,"compression"),l(n,7,0),l(n,16,0,"mode"),l(n,19,0,"mode"),l(n,21,0,e.info.compression_modes),l(n,23,0,e.hasCompressionEnabled())}),(function(l,n){l(n,0,0,u["ɵnov"](n,3).ngClassUntouched,u["ɵnov"](n,3).ngClassTouched,u["ɵnov"](n,3).ngClassPristine,u["ɵnov"](n,3).ngClassDirty,u["ɵnov"](n,3).ngClassValid,u["ɵnov"](n,3).ngClassInvalid,u["ɵnov"](n,3).ngClassPending),l(n,6,0,u["ɵnov"](n,7).hasErrors,u["ɵnov"](n,7).hasSuccess),l(n,13,0,u["ɵnov"](n,18).ngClassUntouched,u["ɵnov"](n,18).ngClassTouched,u["ɵnov"](n,18).ngClassPristine,u["ɵnov"](n,18).ngClassDirty,u["ɵnov"](n,18).ngClassValid,u["ɵnov"](n,18).ngClassInvalid,u["ɵnov"](n,18).ngClassPending,u["ɵnov"](n,19).validClass,u["ɵnov"](n,19).invalidClass)}))}function gt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The value should be greater or equal to 0"]))],null,null)}function pt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,134,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var t=!0;return"submit"===n&&(t=!1!==u["ɵnov"](l,2).onSubmit(e)&&t),"reset"===n&&(t=!1!==u["ɵnov"](l,2).onReset()&&t),"submit"===n&&(t=!1!==u["ɵnov"](l,5).onSubmit()&&t),t}),null,null)),u["ɵdid"](1,16384,null,0,i.G,[],null,null),u["ɵdid"](2,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,i.d,null,[i.l]),u["ɵdid"](4,16384,null,0,i.s,[[4,i.d]],null,null),u["ɵdid"](5,16384,null,0,Vl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](6,0,null,null,128,"div",[["class","card"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),u["ɵted"](8,null,[""," ",""])),u["ɵppd"](9,1),u["ɵppd"](10,1),(l()(),u["ɵeld"](11,0,null,null,114,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](12,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](13,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](18,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](19,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,21)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,21).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,21)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,21)._compositionEnd(e.target.value)&&t),t}),null,null)),u["ɵdid"](20,4210688,null,0,Tl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](21,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](23,671744,[[5,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](25,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](26,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,gu)),u["ɵdid"](28,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,pu)),u["ɵdid"](30,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,hu)),u["ɵdid"](32,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,vu)),u["ɵdid"](34,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](35,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](36,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](39,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","poolType"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Pool type"])),(l()(),u["ɵeld"](41,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](42,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","poolType"],["id","poolType"],["name","poolType"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var t=!0;return"change"===n&&(t=!1!==u["ɵnov"](l,43).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,43).onTouched()&&t),t}),null,null)),u["ɵdid"](43,16384,null,0,i.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.A]),u["ɵdid"](45,671744,[[7,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](47,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](48,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](49,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](50,147456,null,0,i.v,[u.ElementRef,u.Renderer2,[2,i.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](51,147456,null,0,i.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select a pool type --"])),(l()(),u["ɵand"](16777216,null,null,1,null,bu)),u["ɵdid"](54,278528,null,0,El.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Cu)),u["ɵdid"](56,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ku)),u["ɵdid"](58,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](59,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](60,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,17,{FormControlNames:1}),u["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),u["ɵeld"](63,0,null,0,1,"label",[["class","cd-col-form-label"],["for","applications"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Applications"])),(l()(),u["ɵeld"](65,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](66,0,null,null,1,"cd-select-badges",[["id","applications"]],null,[[null,"selection"]],(function(l,n,e){var u=!0;return"selection"===n&&(u=!1!==l.component.appSelection()&&u),u}),su.b,su.a)),u["ɵdid"](67,49152,null,0,ru.a,[s.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"],selectionLimit:[3,"selectionLimit"],customBadges:[4,"customBadges"],customBadgeValidators:[5,"customBadgeValidators"]},{selection:"selection"}),(l()(),u["ɵand"](16777216,null,null,1,null,et)),u["ɵdid"](69,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ft)),u["ɵdid"](71,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](72,0,null,null,50,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](73,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Quotas"])),(l()(),u["ɵeld"](75,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](76,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,35,{FormControlNames:1}),u["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),u["ɵeld"](79,0,null,0,9,"label",[["class","cd-col-form-label"],["for","max_bytes"]],null,null,null,null,null)),(l()(),u["ɵeld"](80,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Max bytes"])),(l()(),u["ɵeld"](82,0,null,null,6,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](83,49152,null,0,Sl.a,[],null,null),(l()(),u["ɵeld"](84,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Leave it blank or specify 0 to disable this quota."])),(l()(),u["ɵeld"](86,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),u["ɵeld"](87,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A valid quota should be greater than 0."])),(l()(),u["ɵeld"](89,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](90,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","max_bytes"],["id","max_bytes"],["name","max_bytes"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,91)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,91).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,91)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,91)._compositionEnd(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,95).onBlur(e.target.value)&&t),t}),null,null)),u["ɵdid"](91,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵprd"](1024,null,i.p,(function(l){return[l]}),[i.e]),u["ɵdid"](93,671744,[[35,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](95,81920,null,0,ou.a,[u.ElementRef,i.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](96,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](97,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](98,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,wl.b,wl.a)),u["ɵdid"](99,1163264,null,2,Vl.c,[u.ElementRef,Vl.g],null,null),u["ɵqud"](603979776,37,{FormControlNames:1}),u["ɵqud"](603979776,38,{messagesBlock:0}),(l()(),u["ɵeld"](102,0,null,0,9,"label",[["class","cd-col-form-label"],["for","max_objects"]],null,null,null,null,null)),(l()(),u["ɵeld"](103,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Max objects"])),(l()(),u["ɵeld"](105,0,null,null,6,"cd-helper",[],null,null,null,_l.b,_l.a)),u["ɵdid"](106,49152,null,0,Sl.a,[],null,null),(l()(),u["ɵeld"](107,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Leave it blank or specify 0 to disable this quota."])),(l()(),u["ɵeld"](109,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),u["ɵeld"](110,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A valid quota should be greater than 0."])),(l()(),u["ɵeld"](112,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](113,0,null,null,7,"input",[["class","form-control"],["formControlName","max_objects"],["id","max_objects"],["min","0"],["name","max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var t=!0;return"input"===n&&(t=!1!==u["ɵnov"](l,114)._handleInput(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,114).onTouched()&&t),"compositionstart"===n&&(t=!1!==u["ɵnov"](l,114)._compositionStart()&&t),"compositionend"===n&&(t=!1!==u["ɵnov"](l,114)._compositionEnd(e.target.value)&&t),"change"===n&&(t=!1!==u["ɵnov"](l,115).onChange(e.target.value)&&t),"input"===n&&(t=!1!==u["ɵnov"](l,115).onChange(e.target.value)&&t),"blur"===n&&(t=!1!==u["ɵnov"](l,115).onTouched()&&t),t}),null,null)),u["ɵdid"](114,16384,null,0,i.e,[u.Renderer2,u.ElementRef,[2,i.b]],null,null),u["ɵdid"](115,16384,null,0,i.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,i.p,(function(l,n){return[l,n]}),[i.e,i.w]),u["ɵdid"](117,671744,[[37,4]],0,i.j,[[3,i.d],[8,null],[8,null],[6,i.p],[2,i.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,i.q,null,[i.j]),u["ɵdid"](119,16384,null,0,i.r,[[4,i.q]],null,null),u["ɵdid"](120,16384,null,0,Vl.h,[[3,i.d],Vl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,gt)),u["ɵdid"](122,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](123,0,null,null,2,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),u["ɵeld"](124,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],(function(l,n,e){var u=!0;return"changes"===n&&(u=!1!==(l.component.currentConfigurationValues=e())&&u),u}),du.b,du.a)),u["ɵdid"](125,114688,null,0,cu.a,[E.a,Le.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),u["ɵeld"](126,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](127,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["ɵeld"](128,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u}),kl.b,kl.a)),u["ɵdid"](129,114688,null,0,Dl.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](130,0,[""," "," "])),u["ɵppd"](131,1),u["ɵppd"](132,1),(l()(),u["ɵeld"](133,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](134,49152,null,0,xl.a,[El.Location,t.b],null,null)],(function(l,n){var e=n.component;l(n,2,0,e.form),l(n,5,0,e.form),l(n,13,0),l(n,20,0,""),l(n,23,0,"name"),l(n,26,0,"name"),l(n,28,0,e.form.showError("name",u["ɵnov"](n,2),"required")),l(n,30,0,e.form.showError("name",u["ɵnov"](n,2),"uniqueName")),l(n,32,0,e.form.showError("name",u["ɵnov"](n,2),"rbdPool")),l(n,34,0,e.form.showError("name",u["ɵnov"](n,2),"pattern")),l(n,36,0),l(n,45,0,"poolType"),l(n,48,0,"poolType"),l(n,50,0,""),l(n,51,0,""),l(n,54,0,e.data.poolTypes),l(n,56,0,e.form.showError("poolType",u["ɵnov"](n,2),"required")),l(n,58,0,e.isReplicated||e.isErasure),l(n,60,0),l(n,67,0,e.data.applications.selected,e.data.applications.available,e.data.applications.messages,4,!0,e.data.applications.validators),l(n,69,0,e.isErasure||e.isReplicated),l(n,71,0,e.info.is_all_bluestore),l(n,76,0),l(n,93,0,"max_bytes"),l(n,95,0,"GiB"),l(n,97,0,"max_bytes"),l(n,99,0),l(n,117,0,"max_objects"),l(n,120,0,"max_objects"),l(n,122,0,e.form.showError("max_objects",u["ɵnov"](n,2),"min")),l(n,125,0,e.form,e.initializeConfigData),l(n,129,0,u["ɵnov"](n,2))}),(function(l,n){var e=n.component;l(n,0,0,u["ɵnov"](n,4).ngClassUntouched,u["ɵnov"](n,4).ngClassTouched,u["ɵnov"](n,4).ngClassPristine,u["ɵnov"](n,4).ngClassDirty,u["ɵnov"](n,4).ngClassValid,u["ɵnov"](n,4).ngClassInvalid,u["ɵnov"](n,4).ngClassPending);var t=u["ɵunv"](n,8,0,l(n,9,0,u["ɵnov"](n.parent,0),e.action)),i=u["ɵunv"](n,8,1,l(n,10,0,u["ɵnov"](n.parent,1),e.resource));l(n,8,0,t,i),l(n,12,0,u["ɵnov"](n,13).hasErrors,u["ɵnov"](n,13).hasSuccess),l(n,19,0,u["ɵnov"](n,25).ngClassUntouched,u["ɵnov"](n,25).ngClassTouched,u["ɵnov"](n,25).ngClassPristine,u["ɵnov"](n,25).ngClassDirty,u["ɵnov"](n,25).ngClassValid,u["ɵnov"](n,25).ngClassInvalid,u["ɵnov"](n,25).ngClassPending,u["ɵnov"](n,26).validClass,u["ɵnov"](n,26).invalidClass),l(n,35,0,u["ɵnov"](n,36).hasErrors,u["ɵnov"](n,36).hasSuccess),l(n,42,0,u["ɵnov"](n,47).ngClassUntouched,u["ɵnov"](n,47).ngClassTouched,u["ɵnov"](n,47).ngClassPristine,u["ɵnov"](n,47).ngClassDirty,u["ɵnov"](n,47).ngClassValid,u["ɵnov"](n,47).ngClassInvalid,u["ɵnov"](n,47).ngClassPending,u["ɵnov"](n,48).validClass,u["ɵnov"](n,48).invalidClass),l(n,59,0,u["ɵnov"](n,60).hasErrors,u["ɵnov"](n,60).hasSuccess),l(n,75,0,u["ɵnov"](n,76).hasErrors,u["ɵnov"](n,76).hasSuccess),l(n,90,0,u["ɵnov"](n,96).ngClassUntouched,u["ɵnov"](n,96).ngClassTouched,u["ɵnov"](n,96).ngClassPristine,u["ɵnov"](n,96).ngClassDirty,u["ɵnov"](n,96).ngClassValid,u["ɵnov"](n,96).ngClassInvalid,u["ɵnov"](n,96).ngClassPending,u["ɵnov"](n,97).validClass,u["ɵnov"](n,97).invalidClass),l(n,98,0,u["ɵnov"](n,99).hasErrors,u["ɵnov"](n,99).hasSuccess),l(n,113,0,u["ɵnov"](n,119).ngClassUntouched,u["ɵnov"](n,119).ngClassTouched,u["ɵnov"](n,119).ngClassPristine,u["ɵnov"](n,119).ngClassDirty,u["ɵnov"](n,119).ngClassValid,u["ɵnov"](n,119).ngClassInvalid,u["ɵnov"](n,119).ngClassPending,u["ɵnov"](n,120).validClass,u["ɵnov"](n,120).invalidClass),l(n,123,0,e.isErasure||-1===e.data.applications.selected.indexOf("rbd"));var a=u["ɵunv"](n,130,0,l(n,131,0,u["ɵnov"](n.parent,0),e.action)),o=u["ɵunv"](n,130,1,l(n,132,0,u["ɵnov"](n.parent,1),e.resource));l(n,130,0,a,o)}))}function ht(l){return u["ɵvid"](0,[u["ɵpid"](0,El.TitleCasePipe,[]),u["ɵpid"](0,Nl.a,[]),u["ɵqud"](671088640,1,{crushInfoTabs:0}),u["ɵqud"](671088640,2,{crushDeletionBtn:0}),u["ɵqud"](671088640,3,{ecpInfoTabs:0}),u["ɵqud"](671088640,4,{ecpDeletionBtn:0}),(l()(),u["ɵand"](16777216,null,null,1,null,fu)),u["ɵdid"](7,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](8,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,pt)),u["ɵdid"](10,16384,null,0,El.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,7,0,!(e.info&&e.ecProfiles)),l(n,10,0,e.info&&e.ecProfiles)}),null)}function vt(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-pool-form",[],null,null,null,ht,mu)),u["ɵdid"](1,114688,null,0,D,[R.a,re.a,re.m,Pl.b,m.a,I.a,E.a,Pl.b,N.a,c,d,s.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var bt=u["ɵccf"]("cd-pool-form",D,vt,{},{},[]);e.d(n,"PoolModuleNgFactory",(function(){return Ct})),e.d(n,"RoutedPoolModuleNgFactory",(function(){return Rt}));var Ct=u["ɵcmf"]($,[],(function(l){return u["ɵmod"]([u["ɵmpd"](512,u.ComponentFactoryResolver,u["ɵCodegenComponentFactoryResolver"],[[8,[Z.a,H.a,X.a,Y.a,Q.a,Q.b,ll.a,nl.a,el.a,ul.a,tl.a,il.a,al.a,ol.a,sl.a,rl.a,dl.a,cl.a,cl.c,cl.b,cl.d,ml.a,fl.a,gl.a,pl.a,hl.a,vl.a,bl.a,Cl.a,Rl.a,Il.a,Wl,Pn]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["ɵmpd"](4608,El.NgLocalization,El.NgLocaleLocalization,[u.LOCALE_ID,[2,El["ɵangular_packages_common_common_a"]]]),u["ɵmpd"](4608,Fn.y,Fn.y,[El.DOCUMENT]),u["ɵmpd"](4608,Fn.r,Fn.r,[]),u["ɵmpd"](4608,Fn.a,Fn.a,[]),u["ɵmpd"](4608,i.D,i.D,[]),u["ɵmpd"](4608,An.a,An.a,[]),u["ɵmpd"](4608,Bn.a,Bn.a,[]),u["ɵmpd"](4608,On.a,On.a,[s.a]),u["ɵmpd"](4608,El.DatePipe,El.DatePipe,[u.LOCALE_ID]),u["ɵmpd"](4608,zn.a,zn.a,[]),u["ɵmpd"](4608,Ln.a,Ln.a,[]),u["ɵmpd"](4608,E.a,E.a,[]),u["ɵmpd"](4608,R.a,R.a,[E.a]),u["ɵmpd"](4608,jn.a,jn.a,[E.a]),u["ɵmpd"](4608,O.a,O.a,[E.a]),u["ɵmpd"](4608,Un.a,Un.a,[]),u["ɵmpd"](4608,Mn.a,Mn.a,[]),u["ɵmpd"](4608,Gn.a,Gn.a,[]),u["ɵmpd"](4608,$n.a,$n.a,[]),u["ɵmpd"](4608,Kn.a,Kn.a,[El.DatePipe]),u["ɵmpd"](4608,Jn.a,Jn.a,[]),u["ɵmpd"](4608,Wn.a,Wn.a,[]),u["ɵmpd"](4608,Zn.a,Zn.a,[]),u["ɵmpd"](4608,Hn.a,Hn.a,[]),u["ɵmpd"](4608,Xn.a,Xn.a,[]),u["ɵmpd"](4608,Yn.a,Yn.a,[s.a]),u["ɵmpd"](4608,Nl.a,Nl.a,[]),u["ɵmpd"](4608,Qn.a,Qn.a,[]),u["ɵmpd"](4608,le.a,le.a,[]),u["ɵmpd"](4608,i.h,i.h,[]),u["ɵmpd"](4608,ne.b,ne.b,[]),u["ɵmpd"](4608,ee.a,ee.a,[]),u["ɵmpd"](4608,ue.a,ue.a,[u.NgZone,u.RendererFactory2,u.PLATFORM_ID]),u["ɵmpd"](4608,te.a,te.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,ue.a,u.ApplicationRef]),u["ɵmpd"](4608,ie.c,ie.c,[]),u["ɵmpd"](4608,ae.a,ae.a,[]),u["ɵmpd"](4608,Pl.b,Pl.b,[u.RendererFactory2,te.a]),u["ɵmpd"](4608,oe.f,oe.f,[]),u["ɵmpd"](4608,I.a,I.a,[]),u["ɵmpd"](4608,se.a,se.a,[re.m,I.a]),u["ɵmpd"](4608,de.f,de.f,[]),u["ɵmpd"](4608,ce.t,ce.t,[]),u["ɵmpd"](4608,ce.v,ce.v,[]),u["ɵmpd"](4608,ce.a,ce.a,[]),u["ɵmpd"](4608,ce.h,ce.h,[]),u["ɵmpd"](4608,ce.d,ce.d,[]),u["ɵmpd"](4608,ce.j,ce.j,[]),u["ɵmpd"](4608,ce.l,ce.l,[]),u["ɵmpd"](4608,ce.u,ce.u,[ce.v,ce.l]),u["ɵmpd"](4608,me.a,me.a,[]),u["ɵmpd"](1073742336,El.CommonModule,El.CommonModule,[]),u["ɵmpd"](1073742336,Fn.u,Fn.u,[]),u["ɵmpd"](1073742336,i.C,i.C,[]),u["ɵmpd"](1073742336,i.n,i.n,[]),u["ɵmpd"](1073742336,oe.e,oe.e,[]),u["ɵmpd"](1073742336,fe.a,fe.a,[]),u["ɵmpd"](1073742336,i.y,i.y,[]),u["ɵmpd"](1073742336,ne.c,ne.c,[]),u["ɵmpd"](1073742336,ee.d,ee.d,[]),u["ɵmpd"](1073742336,ie.d,ie.d,[]),u["ɵmpd"](1073742336,ae.d,ae.d,[]),u["ɵmpd"](1073742336,ge.b,ge.b,[]),u["ɵmpd"](1073742336,Pl.e,Pl.e,[]),u["ɵmpd"](1073742336,pe.a,pe.a,[]),u["ɵmpd"](1073742336,Vl.f,Vl.f,[]),u["ɵmpd"](1073742336,he.ClickOutsideModule,he.ClickOutsideModule,[]),u["ɵmpd"](1073742336,ve.b,ve.b,[]),u["ɵmpd"](1073742336,re.q,re.q,[[2,re.v],[2,re.m]]),u["ɵmpd"](1073742336,be.a,be.a,[]),u["ɵmpd"](1073742336,Ce.a,Ce.a,[]),u["ɵmpd"](1073742336,r.a,r.a,[]),u["ɵmpd"](1073742336,Re.a,Re.a,[]),u["ɵmpd"](1073742336,de.d,de.d,[]),u["ɵmpd"](1073742336,Ie.a,Ie.a,[]),u["ɵmpd"](1073742336,Ee.a,Ee.a,[]),u["ɵmpd"](1073742336,ce.g,ce.g,[]),u["ɵmpd"](1073742336,Ne.b,Ne.b,[]),u["ɵmpd"](1073742336,ye.a,ye.a,[]),u["ɵmpd"](1073742336,$,$,[]),u["ɵmpd"](256,u.LOCALE_ID,"en-US",[]),u["ɵmpd"](256,oe.a,{autoClose:!0,insideClick:!1},[]),u["ɵmpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})),Rt=u["ɵcmf"](W,[],(function(l){return u["ɵmod"]([u["ɵmpd"](512,u.ComponentFactoryResolver,u["ɵCodegenComponentFactoryResolver"],[[8,[Z.a,H.a,X.a,Y.a,Q.a,Q.b,ll.a,nl.a,el.a,ul.a,tl.a,il.a,al.a,ol.a,sl.a,rl.a,dl.a,cl.a,cl.c,cl.b,cl.d,ml.a,fl.a,gl.a,pl.a,hl.a,vl.a,bl.a,Cl.a,Rl.a,Il.a,Wl,Pn,tu,bt]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["ɵmpd"](4608,El.NgLocalization,El.NgLocaleLocalization,[u.LOCALE_ID,[2,El["ɵangular_packages_common_common_a"]]]),u["ɵmpd"](4608,Fn.y,Fn.y,[El.DOCUMENT]),u["ɵmpd"](4608,Fn.r,Fn.r,[]),u["ɵmpd"](4608,Fn.a,Fn.a,[]),u["ɵmpd"](4608,i.D,i.D,[]),u["ɵmpd"](4608,An.a,An.a,[]),u["ɵmpd"](4608,Bn.a,Bn.a,[]),u["ɵmpd"](4608,On.a,On.a,[s.a]),u["ɵmpd"](4608,El.DatePipe,El.DatePipe,[u.LOCALE_ID]),u["ɵmpd"](4608,zn.a,zn.a,[]),u["ɵmpd"](4608,Ln.a,Ln.a,[]),u["ɵmpd"](4608,E.a,E.a,[]),u["ɵmpd"](4608,R.a,R.a,[E.a]),u["ɵmpd"](4608,jn.a,jn.a,[E.a]),u["ɵmpd"](4608,O.a,O.a,[E.a]),u["ɵmpd"](4608,Un.a,Un.a,[]),u["ɵmpd"](4608,Mn.a,Mn.a,[]),u["ɵmpd"](4608,Gn.a,Gn.a,[]),u["ɵmpd"](4608,$n.a,$n.a,[]),u["ɵmpd"](4608,Kn.a,Kn.a,[El.DatePipe]),u["ɵmpd"](4608,Jn.a,Jn.a,[]),u["ɵmpd"](4608,Wn.a,Wn.a,[]),u["ɵmpd"](4608,Zn.a,Zn.a,[]),u["ɵmpd"](4608,Hn.a,Hn.a,[]),u["ɵmpd"](4608,Xn.a,Xn.a,[]),u["ɵmpd"](4608,Yn.a,Yn.a,[s.a]),u["ɵmpd"](4608,Nl.a,Nl.a,[]),u["ɵmpd"](4608,Qn.a,Qn.a,[]),u["ɵmpd"](4608,le.a,le.a,[]),u["ɵmpd"](4608,i.h,i.h,[]),u["ɵmpd"](4608,ne.b,ne.b,[]),u["ɵmpd"](4608,ee.a,ee.a,[]),u["ɵmpd"](4608,ue.a,ue.a,[u.NgZone,u.RendererFactory2,u.PLATFORM_ID]),u["ɵmpd"](4608,te.a,te.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,ue.a,u.ApplicationRef]),u["ɵmpd"](4608,ie.c,ie.c,[]),u["ɵmpd"](4608,ae.a,ae.a,[]),u["ɵmpd"](4608,Pl.b,Pl.b,[u.RendererFactory2,te.a]),u["ɵmpd"](4608,oe.f,oe.f,[]),u["ɵmpd"](4608,I.a,I.a,[]),u["ɵmpd"](4608,se.a,se.a,[re.m,I.a]),u["ɵmpd"](4608,de.f,de.f,[]),u["ɵmpd"](4608,ce.t,ce.t,[]),u["ɵmpd"](4608,ce.v,ce.v,[]),u["ɵmpd"](4608,ce.a,ce.a,[]),u["ɵmpd"](4608,ce.h,ce.h,[]),u["ɵmpd"](4608,ce.d,ce.d,[]),u["ɵmpd"](4608,ce.j,ce.j,[]),u["ɵmpd"](4608,ce.l,ce.l,[]),u["ɵmpd"](4608,ce.u,ce.u,[ce.v,ce.l]),u["ɵmpd"](4608,me.a,me.a,[]),u["ɵmpd"](1073742336,El.CommonModule,El.CommonModule,[]),u["ɵmpd"](1073742336,Fn.u,Fn.u,[]),u["ɵmpd"](1073742336,i.C,i.C,[]),u["ɵmpd"](1073742336,i.n,i.n,[]),u["ɵmpd"](1073742336,oe.e,oe.e,[]),u["ɵmpd"](1073742336,fe.a,fe.a,[]),u["ɵmpd"](1073742336,i.y,i.y,[]),u["ɵmpd"](1073742336,ne.c,ne.c,[]),u["ɵmpd"](1073742336,ee.d,ee.d,[]),u["ɵmpd"](1073742336,ie.d,ie.d,[]),u["ɵmpd"](1073742336,ae.d,ae.d,[]),u["ɵmpd"](1073742336,ge.b,ge.b,[]),u["ɵmpd"](1073742336,Pl.e,Pl.e,[]),u["ɵmpd"](1073742336,pe.a,pe.a,[]),u["ɵmpd"](1073742336,Vl.f,Vl.f,[]),u["ɵmpd"](1073742336,he.ClickOutsideModule,he.ClickOutsideModule,[]),u["ɵmpd"](1073742336,ve.b,ve.b,[]),u["ɵmpd"](1073742336,re.q,re.q,[[2,re.v],[2,re.m]]),u["ɵmpd"](1073742336,be.a,be.a,[]),u["ɵmpd"](1073742336,Ce.a,Ce.a,[]),u["ɵmpd"](1073742336,r.a,r.a,[]),u["ɵmpd"](1073742336,Re.a,Re.a,[]),u["ɵmpd"](1073742336,de.d,de.d,[]),u["ɵmpd"](1073742336,Ie.a,Ie.a,[]),u["ɵmpd"](1073742336,Ee.a,Ee.a,[]),u["ɵmpd"](1073742336,ce.g,ce.g,[]),u["ɵmpd"](1073742336,Ne.b,Ne.b,[]),u["ɵmpd"](1073742336,ye.a,ye.a,[]),u["ɵmpd"](1073742336,$,$,[]),u["ɵmpd"](1073742336,W,W,[]),u["ɵmpd"](256,u.LOCALE_ID,"en-US",[]),u["ɵmpd"](256,oe.a,{autoClose:!0,insideClick:!1},[]),u["ɵmpd"](1024,re.k,(function(){return[[{path:"",component:G},{path:"create",component:D,data:K},{path:"edit/:name",component:D,data:J}]]}),[]),u["ɵmpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.cf5f8c70f123c771366b.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/7.cf5f8c70f123c771366b.js
deleted file mode 100644 (file)
index 024d7b6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{J6Oi:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),a=u("k/xb"),t=u("MdoF"),o=u("ES0t"),d=u("Xg1U"),i=u("z5nN"),r=u("iutN"),s=u("pMnS"),c=u("EEJc"),p=u("PEr+"),m=u("a40w"),g=u("hfeG"),f=u("QUzE"),v=u("E7j4"),C=u("xvu0"),h=u("RIVN"),b=u("nP0W"),I=u("VBM6"),R=u("atuK"),N=u("JIi+"),w=u("0BYw"),T=u("3IYD"),E=u("I4Qz"),y=u("0rTx"),V=u("lz+O"),q=u("u2XS"),k=u("nhAp"),x=u("l7Jr"),_=u("bUo2"),D=u("SVse"),F=u("yT6U"),P=u("4DD9"),S=u("iExv"),A=u("GiVz"),j=u("85J/"),O=u("+0ag"),U=u("aXbf"),B=u("Fgil"),$=u("IzCI"),M=u("o4+5"),z=u("Dwqy"),L=u("uYzU"),G=u("FFMq"),K=u("E2fk"),H=u("a0VL"),J=u("nSDx"),Z=u("SB+Q"),W=u("TYzs"),Q=u("BQkM"),Y=u("dEH0"),X=u("G1/K"),ll=u("8xTl"),nl=u("TJUb"),ul=u("efK2"),el=u("s7LF"),al=u("CNMR"),tl=u("KOzp"),ol=u("2uy1"),dl=u("z/SZ"),il=u("38Bd"),rl=u("978R"),sl=u("LqlI"),cl=u("FO+L"),pl=u("nhM1"),ml=u("BARL"),gl=u("FE24"),fl=u("aexS"),vl=u("Avrn"),Cl=u("iInd"),hl=u("2ZVE"),bl=u("ienR"),Il=u("gk6K"),Rl=u("9Xeq"),Nl=u("hrfs"),wl=u("yGOH"),Tl=u("+gVj"),El=u("bxSN"),yl=u("WF9J"),Vl=u("V/fk"),ql=u("F8xH"),kl=u("ChqD"),xl=u("pL04"),_l=u("PCNd"),Dl=u("kccj"),Fl=u("yYhs"),Pl=u("C6Ij"),Sl=u("AWcq"),Al=u("pKUh");class jl{constructor(l,n){this.authStorageService=l,this.router=n,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var Ol=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ul(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/performance")&&e),e}),null,null)),e["ɵdid"](1,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){l(n,1,0,"Overall Performance","/block/rbd/performance"===n.component.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass)}))}function Bl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Al.b,Al.a)),e["ɵdid"](1,180224,null,0,hl.e,[hl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Images"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Namespaces"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/namespaces")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](6,0,null,0,1,"tab",[["heading","Trash"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/rbd/trash")&&e),e}),null,null)),e["ɵdid"](7,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵand"](16777216,null,0,1,null,Ul)),e["ɵdid"](9,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Images","/block/rbd"===u.url),l(n,5,0,"Namespaces","/block/rbd/namespaces"===u.url),l(n,7,0,"Trash","/block/rbd/trash"===u.url),l(n,9,0,u.grafanaPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass),l(n,6,0,e["ɵnov"](n,7).id,e["ɵnov"](n,7).active,e["ɵnov"](n,7).addClass)}))}var $l=u("25BL"),Ml=u("uIqm"),zl=u("NUGo"),Ll=u("S7zO"),Gl=u("JBea"),Kl=u("VTlA"),Hl=u("ufoC"),Jl=u("mSOc"),Zl=u("EgGo"),Wl=u("5GyT"),Ql=u("F83c"),Yl=u("kn/O"),Xl=u("sne2"),ln=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Pl.b,Pl.a)),e["ɵdid"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,0,"div",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(l,n){l(n,0,0,"Only available for RBD images with <strong>fast-diff</strong> enabled")}))}function en(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["/",""]))],null,(function(l,n){l(n,1,0,n.parent.parent.context.value.pool_namespace)}))}function an(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,en)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵted"](4,null,["/","@",""]))],(function(l,n){l(n,3,0,n.parent.context.value.pool_namespace)}),(function(l,n){l(n,1,0,n.parent.context.value.pool_name),l(n,4,0,n.parent.context.value.image_name,n.parent.context.value.snap_name)}))}function tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function on(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,an)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tn)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.value),l(n,3,0,!n.context.value)}),null)}function dn(l){return e["ɵvid"](0,[(l()(),e["ɵted"](-1,null,[" You are about to flatten "])),(l()(),e["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](2,null,["",""])),(l()(),e["ɵted"](-1,null,[". "])),(l()(),e["ɵeld"](4,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" All blocks will be copied from parent "])),(l()(),e["ɵeld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](8,null,["",""])),(l()(),e["ɵted"](-1,null,[" to child "])),(l()(),e["ɵeld"](10,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](11,null,["",""])),(l()(),e["ɵted"](-1,null,[".\n"]))],null,(function(l,n){l(n,2,0,n.context.$implicit.child),l(n,8,0,n.context.$implicit.parent),l(n,11,0,n.context.$implicit.child)}))}function rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""]))],null,(function(l,n){l(n,1,0,n.context.$implicit)}))}function sn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The following snapshots are currently protected and will be removed:"])),(l()(),e["ɵeld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,rn)),e["ɵdid"](5,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.parent.parent.context.snapshots)}),null)}function cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"div",[["class","alert alert-warning"],["role","alert"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Deleting this image will also delete all its snapshots."])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,sn)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,5,0,n.parent.context.snapshots.length>0)}),null)}function pn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,cn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.hasSnapshots)}),null)}function mn(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),e["ɵqud"](671088640,2,{usageTpl:0}),e["ɵqud"](402653184,3,{parentTpl:0}),e["ɵqud"](671088640,4,{nameTpl:0}),e["ɵqud"](402653184,5,{flattenTpl:0}),e["ɵqud"](402653184,6,{deleteTpl:0}),(l()(),e["ɵeld"](6,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Bl,Ol)),e["ɵdid"](7,114688,null,0,jl,[fl.a,Cl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,nn)),e["ɵdid"](9,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](10,0,null,null,5,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e}),$l.b,$l.a)),e["ɵdid"](11,2867200,[[1,4],["table",4]],0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"],searchableObjects:[6,"searchableObjects"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](12,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,zl.b,zl.a)),e["ɵdid"](13,114688,null,0,Ll.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](14,0,null,3,1,"cd-rbd-details",[["cdTableDetail",""]],null,null,null,N.c,N.b)),e["ɵdid"](15,573440,null,0,Gl.a,[],{selection:[0,"selection"]},null),(l()(),e["ɵand"](0,[["usageNotAvailableTooltipTpl",2]],null,0,null,un)),(l()(),e["ɵand"](0,[[3,2],["parentTpl",2]],null,0,null,on)),(l()(),e["ɵand"](0,[[5,2],["flattenTpl",2]],null,0,null,dn)),(l()(),e["ɵand"](0,[[6,2],["deleteTpl",2]],null,0,null,pn))],(function(l,n){var u=n.component;l(n,7,0),l(n,9,0,u.viewCacheStatusList),l(n,11,0,u.images,u.columns,"flex","id","true","single",!0),l(n,13,0,u.permission,u.selection,u.tableActions),l(n,15,0,u.selection)}),null)}function gn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"cd-rbd-list",[],null,null,null,mn,ln)),e["ɵprd"](131584,null,Kl.a,Kl.a,[Hl.a,Jl.a]),e["ɵprd"](256,null,Zl.a,Wl.b,[]),e["ɵdid"](3,114688,null,0,Wl.a,[fl.a,Ql.a,B.a,M.a,sl.b,Yl.a,Kl.a,A.a,Zl.a,Xl.b],null,null)],(function(l,n){l(n,3,0)}),null)}var fn=e["ɵccf"]("cd-rbd-list",Wl.a,gn,{},{},[]),vn=u("Z5tW"),Cn=u("Ekvf"),hn=u("9nlD"),bn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function In(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Bl,Ol)),e["ɵdid"](1,114688,null,0,jl,[fl.a,Cl.m],null,null),(l()(),e["ɵeld"](2,0,null,null,4,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,a=l.component;return"fetchData"===n&&(e=!1!==a.refresh()&&e),"updateSelection"===n&&(e=!1!==a.updateSelection(u)&&e),e}),$l.b,$l.a)),e["ɵdid"](3,2867200,null,0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](4,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,zl.b,zl.a)),e["ɵdid"](6,114688,null,0,Ll.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,3,0,u.namespaces,u.columns,"flex","id","true","single"),l(n,6,0,u.permission,u.selection,u.tableActions)}),null)}function Rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rbd-namespace-list",[],null,null,null,In,bn)),e["ɵprd"](135680,null,Kl.a,Kl.a,[Hl.a,Jl.a]),e["ɵdid"](2,114688,null,0,vn.a,[fl.a,Ql.a,Cn.a,sl.b,hn.a,A.a,Xl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Nn=e["ɵccf"]("cd-rbd-namespace-list",vn.a,Rn,{},{},[]),wn=u("chpi"),Tn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function En(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,Pl.b,Pl.a)),e["ɵdid"](1,114688,null,0,Sl.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function yn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"button",[["class","btn btn-light"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.purgeModal()&&e),e}),null,null)),(l()(),e["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](3,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](4,1),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Purge Trash"]))],(function(l,n){var u=l(n,4,0,n.component.icons.destroy);l(n,3,0,u)}),(function(l,n){l(n,0,0,n.component.disablePurgeBtn)}))}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Expired at"]))],null,null)}function qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Protected until"]))],null,null)}function kn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Vn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qn)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵted"](4,null,[" ","\n"])),e["ɵppd"](5,1)],(function(l,n){l(n,1,0,n.context.row.cdIsExpired),l(n,3,0,!n.context.row.cdIsExpired)}),(function(l,n){var u=e["ɵunv"](n,4,0,l(n,5,0,e["ɵnov"](n.parent,0),n.context.value));l(n,4,0,u)}))}function xn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"p",[["class","text-danger"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,3,"strong",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["ɵted"](3,null,["This image is protected until ","."])),e["ɵppd"](4,1)],null,(function(l,n){var u=e["ɵunv"](n,3,0,l(n,4,0,e["ɵnov"](n.parent.parent,0),n.parent.context.$implicit));l(n,3,0,u)}))}function _n(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,xn)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,!n.component.isExpired(n.context.$implicit))}),null)}function Dn(l){return e["ɵvid"](0,[e["ɵpid"](0,H.a,[D.DatePipe]),e["ɵqud"](402653184,1,{table:0}),e["ɵqud"](402653184,2,{expiresTpl:0}),e["ɵqud"](402653184,3,{deleteTpl:0}),(l()(),e["ɵeld"](4,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Bl,Ol)),e["ɵdid"](5,114688,null,0,jl,[fl.a,Cl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,En)),e["ɵdid"](7,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](8,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e}),$l.b,$l.a)),e["ɵdid"](9,2867200,[[1,4]],0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](10,0,null,1,4,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,zl.b,zl.a)),e["ɵdid"](12,114688,null,0,Ll.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,yn)),e["ɵdid"](14,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,[[2,2],["expiresTpl",2]],null,0,null,kn)),(l()(),e["ɵand"](0,[[3,2],["deleteTpl",2]],null,0,null,_n))],(function(l,n){var u=n.component;l(n,5,0),l(n,7,0,u.viewCacheStatusList),l(n,9,0,u.images,u.columns,"flex","id","true","single"),l(n,12,0,u.permission,u.selection,u.tableActions),l(n,14,0,u.permission.delete)}),null)}function Fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rbd-trash-list",[],null,null,null,Dn,Tn)),e["ɵprd"](131584,null,Kl.a,Kl.a,[Hl.a,Jl.a]),e["ɵdid"](2,114688,null,0,wn.a,[fl.a,Ql.a,sl.b,H.a,Kl.a,Yl.a,A.a,Xl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Pn=e["ɵccf"]("cd-rbd-trash-list",wn.a,Fn,{},{},[]),Sn=u("a278"),An=u("insk"),jn=u("cUpR"),On=u("20UP"),Un=u("WkyA"),Bn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $n(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-tabs",[],null,null,null,Bl,Ol)),e["ɵdid"](1,114688,null,0,jl,[fl.a,Cl.m],null,null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","41FrpeUiz"]],null,null,null,Sn.b,Sn.a)),e["ɵdid"](3,638976,null,0,An.a,[Jl.a,jn.b,On.a,O.a,A.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0),l(n,3,0,"rbd-overview?","two","41FrpeUiz")}),null)}function Mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-performance",[],null,null,null,$n,Bn)),e["ɵdid"](1,49152,null,0,Un.a,[],null,null)],null,null)}var zn=e["ɵccf"]("cd-rbd-performance",Un.a,Mn,{},{},[]),Ln=u("mXUL"),Gn=u("4HWh"),Kn=u("p4Cf"),Hn=u("IZUe"),Jn=u("EmSq"),Zn=u("BH9v"),Wn=u("rFfW"),Qn=u("o8EM"),Yn=u("gp3X"),Xn=u("sb0X"),lu=u("KVJa"),nu=u("Z21x"),uu=u("MyVl"),eu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,2,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," from"])),e["ɵppd"](6,1),(l()(),e["ɵeld"](7,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","parent"],["id","parent"],["name","parent"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,9).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,9)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](9,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](11,671744,[[1,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](13,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](14,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){l(n,1,0),l(n,11,0,"parent"),l(n,14,0,"parent")}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess);var a=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n.parent,0),u.action));l(n,5,0,a),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["'/' and '@' are not allowed."]))],null,null)}function du(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","pool"],["id","pool"],["name","pool"],["placeholder","Pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"pool"),l(n,6,0,"pool")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No rbd pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a pool --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function pu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","pool"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,iu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ru)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,su)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,cu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"pool"),l(n,6,0,"pool"),l(n,8,0,null===u.pools),l(n,10,0,null!==u.pools&&0===u.pools.length),l(n,12,0,null!==u.pools&&u.pools.length>0),l(n,14,0,u.pools)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function mu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function gu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,2)],(function(l,n){var u=n.component;l(n,1,0);var e=l(n,8,0,u.icons.spinner,u.icons.spin);l(n,7,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","namespace"],["id","namespace"],["name","namespace"],["placeholder","Namespace..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"namespace"),l(n,6,0,"namespace")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No namespaces available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function hu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a namespace --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function bu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","namespace"],["id","namespace"],["name","namespace"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Cu)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,hu)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"namespace"),l(n,6,0,"namespace"),l(n,8,0,null===u.pools),l(n,10,0,null!==u.pools&&0===u.pools.length),l(n,12,0,null!==u.pools&&u.pools.length>0),l(n,14,0,u.namespaces)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,10,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","pool"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" Namespace "])),(l()(),e["ɵeld"](6,0,null,0,4,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Iu)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,8,0,"editing"===u.mode||!u.poolPermission.read),l(n,10,0,"editing"!==u.mode&&u.poolPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function Nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"],["placeholder","Data pool name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,1)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](3,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"dataPool"),l(n,6,0,"dataPool")}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function wu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- No data pools available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a data pool -- "]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function yu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.pool_name),l(n,2,0,n.context.$implicit.pool_name)}),(function(l,n){l(n,3,0,n.context.$implicit.pool_name)}))}function Vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","dataPool"],["id","dataPool"],["name","dataPool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0,t=l.component;return"change"===n&&(a=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,1).onTouched()&&a),"change"===n&&(a=!1!==t.onDataPoolChange(u.target.value)&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](3,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](5,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](6,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,wu)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Tu)),e["ɵdid"](10,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Eu)),e["ɵdid"](12,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,yu)),e["ɵdid"](14,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"dataPool"),l(n,6,0,"dataPool"),l(n,8,0,null===u.dataPools),l(n,10,0,null!==u.dataPools&&0===u.dataPools.length),l(n,12,0,null!==u.dataPools&&u.dataPools.length>0),l(n,14,0,u.dataPools)}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function qu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ku(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,7,"label",[["class","cd-col-form-label"],["for","dataPool"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,4,"span",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpod"](8,{required:0}),(l()(),e["ɵted"](-1,null,["Data pool"])),(l()(),e["ɵeld"](10,0,null,null,1,"cd-helper",[["html","Dedicated pool that stores the object-data of the RBD."]],null,null,null,Gn.b,Gn.a)),e["ɵdid"](11,49152,null,0,Kn.a,[],{html:[0,"html"]},null),(l()(),e["ɵeld"](12,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Nu)),e["ɵdid"](14,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vu)),e["ɵdid"](16,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qu)),e["ɵdid"](18,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var a=l(n,8,0,"editing"!==u.mode);l(n,7,0,a),l(n,11,0,"Dedicated pool that stores the object-data of the RBD."),l(n,14,0,"editing"===u.mode||!u.poolPermission.read),l(n,16,0,"editing"!==u.mode&&u.poolPermission.read),l(n,18,0,u.rbdForm.showError("dataPool",e["ɵnov"](n.parent,5),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess)}))}function xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function _u(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["You have to increase the size."]))],null,null)}function Du(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-helper",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](1,49152,null,0,Kn.a,[],{html:[0,"html"]},null)],(function(l,n){l(n,1,0,e["ɵinlineInterpolate"](1,"",n.parent.context.$implicit.helperHtml,""))}),null)}function Fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,2).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,2).onTouched()&&a),a}),null,null)),e["ɵdid"](2,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](4,671744,[[17,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](6,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](7,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,Du)),e["ɵdid"](11,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,7,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,11,0,n.context.$implicit.helperHtml)}),(function(l,n){l(n,1,1,[e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,""),e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,""),e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass]),l(n,8,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.key,"")),l(n,9,0,n.context.$implicit.desc)}))}function Pu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"a",[["class","float-right margin-right-md"],["href",""]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.advancedEnabled=!0,e=!1),e}),null,null)),(l()(),e["ɵted"](-1,null,["Advanced..."]))],null,null)}function Su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function ju(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required because stripe count is defined!"]))],null,null)}function Ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Stripe unit is greater than object size."]))],null,null)}function Uu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required because stripe unit is defined!"]))],null,null)}function Bu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Stripe count must be greater than 0."]))],null,null)}function $u(l){return e["ɵvid"](0,[e["ɵpid"](0,D.TitleCasePipe,[]),e["ɵpid"](0,ll.a,[]),(l()(),e["ɵeld"](2,0,null,null,187,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,186,"form",[["name","rbdForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var a=!0;return"submit"===n&&(a=!1!==e["ɵnov"](l,5).onSubmit(u)&&a),"reset"===n&&(a=!1!==e["ɵnov"](l,5).onReset()&&a),"submit"===n&&(a=!1!==e["ɵnov"](l,8).onSubmit()&&a),a}),null,null)),e["ɵdid"](4,16384,null,0,el.G,[],null,null),e["ɵdid"](5,540672,[["formDir",4]],0,el.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,el.d,null,[el.l]),e["ɵdid"](7,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](8,16384,null,0,Tl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](9,0,null,null,180,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](11,null,[""," ",""])),e["ɵppd"](12,1),e["ɵppd"](13,1),(l()(),e["ɵeld"](14,0,null,null,166,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,au)),e["ɵdid"](16,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](17,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](18,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](21,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](23,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](24,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,25)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,25).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,25)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,25)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](25,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](27,671744,[[3,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](29,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](30,4210688,null,0,Hn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](31,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tu)),e["ɵdid"](33,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ou)),e["ɵdid"](35,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](36,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onPoolChange(u.target.value)&&e),e}),Ln.b,Ln.a)),e["ɵdid"](37,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](40,0,null,0,4,"label",[["class","cd-col-form-label"],["for","pool"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](42,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](43,{required:0}),(l()(),e["ɵted"](-1,null,["Pool"])),(l()(),e["ɵeld"](45,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,du)),e["ɵdid"](47,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pu)),e["ɵdid"](49,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mu)),e["ɵdid"](51,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,gu)),e["ɵdid"](53,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ru)),e["ɵdid"](55,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](56,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](57,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](60,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](62,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","useDataPool"],["id","useDataPool"],["name","useDataPool"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0,t=l.component;return"change"===n&&(a=!1!==e["ɵnov"](l,63).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,63).onTouched()&&a),"change"===n&&(a=!1!==t.onUseDataPoolChange()&&a),a}),null,null)),e["ɵdid"](63,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](65,671744,[[11,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](67,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](68,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](69,0,null,null,1,"label",[["class","custom-control-label"],["for","useDataPool"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Use a dedicated data pool"])),(l()(),e["ɵand"](16777216,null,null,1,null,ku)),e["ɵdid"](72,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](73,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](74,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](77,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Size"])),(l()(),e["ɵeld"](79,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](80,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","size"],["id","size"],["name","size"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,81)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,81).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,81)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,81)._compositionEnd(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,86).onBlur(u.target.value)&&a),a}),null,null)),e["ɵdid"](81,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](83,671744,[[15,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](85,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](86,81920,null,0,Jn.a,[e.ElementRef,el.q,B.a,U.a],{defaultUnit:[0,"defaultUnit"]},null),e["ɵdid"](87,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,xu)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,_u)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](92,0,null,null,11,"div",[["class","form-group row"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](93,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](95,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](96,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](99,0,null,0,1,"label",[["class","cd-col-form-label"],["for","features"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Features"])),(l()(),e["ɵeld"](101,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Fu)),e["ɵdid"](103,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](104,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](105,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Pu)),e["ɵdid"](107,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](108,0,null,null,72,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Advanced"])),(l()(),e["ɵeld"](111,0,null,null,67,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](112,0,null,null,1,"h3",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Striping"])),(l()(),e["ɵeld"](114,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](115,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](118,0,null,0,1,"label",[["class","cd-col-form-label"],["for","size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Object size"])),(l()(),e["ɵeld"](120,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](121,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","obj_size"],["id","obj_size"],["name","obj_size"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,122).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,122).onTouched()&&a),a}),null,null)),e["ɵdid"](122,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](124,671744,[[19,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](126,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](127,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Su)),e["ɵdid"](129,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](130,0,null,null,26,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](131,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](134,0,null,0,4,"label",[["class","cd-col-form-label"],["for","stripingUnit"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](136,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](137,{required:0}),(l()(),e["ɵted"](-1,null,["Stripe unit"])),(l()(),e["ɵeld"](139,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](140,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","stripingUnit"],["id","stripingUnit"],["name","stripingUnit"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,141).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,141).onTouched()&&a),a}),null,null)),e["ɵdid"](141,16384,null,0,el.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.A]),e["ɵdid"](143,671744,[[21,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](145,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](146,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](147,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](148,147456,null,0,el.v,[e.ElementRef,e.Renderer2,[2,el.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](149,147456,null,0,el.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select stripe unit --"])),(l()(),e["ɵand"](16777216,null,null,1,null,Au)),e["ɵdid"](152,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ju)),e["ɵdid"](154,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ou)),e["ɵdid"](156,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](157,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](158,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](161,0,null,0,4,"label",[["class","cd-col-form-label"],["for","stripingCount"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](163,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](164,{required:0}),(l()(),e["ɵted"](-1,null,["Stripe count"])),(l()(),e["ɵeld"](166,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](167,0,null,null,7,"input",[["class","form-control"],["formControlName","stripingCount"],["id","stripingCount"],["name","stripingCount"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,168)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,168).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,168)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,168)._compositionEnd(u.target.value)&&a),"change"===n&&(a=!1!==e["ɵnov"](l,169).onChange(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,169).onChange(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,169).onTouched()&&a),a}),null,null)),e["ɵdid"](168,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵdid"](169,16384,null,0,el.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l,n){return[l,n]}),[el.e,el.w]),e["ɵdid"](171,671744,[[23,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](173,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](174,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Uu)),e["ɵdid"](176,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Bu)),e["ɵdid"](178,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](179,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],(function(l,n,u){var e=!0;return"changes"===n&&(e=!1!==(l.component.getDirtyConfigurationValues=u)&&e),e}),Zn.b,Zn.a)),e["ɵdid"](180,114688,null,0,Wn.a,[U.a,Qn.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),e["ɵeld"](181,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](182,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](183,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Yn.b,Yn.a)),e["ɵdid"](184,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](185,0,[""," ",""])),e["ɵppd"](186,1),e["ɵppd"](187,1),(l()(),e["ɵeld"](188,0,null,null,1,"cd-back-button",[],null,null,null,lu.b,lu.a)),e["ɵdid"](189,49152,null,0,nu.a,[D.Location,Xl.b],null,null)],(function(l,n){var u=n.component;l(n,5,0,u.rbdForm),l(n,8,0,u.rbdForm),l(n,16,0,u.rbdForm.getValue("parent")),l(n,18,0),l(n,27,0,"name"),l(n,30,0,""),l(n,31,0,"name"),l(n,33,0,u.rbdForm.showError("name",e["ɵnov"](n,5),"required")),l(n,35,0,u.rbdForm.showError("name",e["ɵnov"](n,5),"pattern")),l(n,37,0);var a=l(n,43,0,"editing"!==u.mode);l(n,42,0,"cd-col-form-label",a),l(n,47,0,"editing"===u.mode||!u.poolPermission.read),l(n,49,0,"editing"!==u.mode&&u.poolPermission.read),l(n,51,0,u.rbdForm.showError("pool",e["ɵnov"](n,5),"required")),l(n,53,0,"editing"!==u.mode&&u.rbdForm.getValue("pool")&&null===u.namespaces),l(n,55,0,"editing"===u.mode&&u.rbdForm.getValue("namespace")||"editing"!==u.mode&&(u.namespaces&&u.namespaces.length>0||!u.poolPermission.read)),l(n,57,0),l(n,65,0,"useDataPool"),l(n,68,0,"useDataPool"),l(n,72,0,u.rbdForm.getValue("useDataPool")),l(n,74,0),l(n,83,0,"size"),l(n,86,0,"GiB"),l(n,87,0,"size"),l(n,89,0,u.rbdForm.showError("size",e["ɵnov"](n,5),"required")),l(n,91,0,u.rbdForm.showError("size",e["ɵnov"](n,5),"invalidSizeObject")),l(n,93,0,"features"),l(n,96,0),l(n,103,0,u.featuresList),l(n,107,0,!u.advancedEnabled),l(n,115,0),l(n,124,0,"obj_size"),l(n,127,0,"obj_size"),l(n,129,0,u.objectSizes),l(n,131,0);var t=l(n,137,0,u.rbdForm.getValue("stripingCount"));l(n,136,0,"cd-col-form-label",t),l(n,143,0,"stripingUnit"),l(n,146,0,"stripingUnit"),l(n,148,0,null),l(n,149,0,null),l(n,152,0,u.objectSizes),l(n,154,0,u.rbdForm.showError("stripingUnit",e["ɵnov"](n,5),"required")),l(n,156,0,u.rbdForm.showError("stripingUnit",e["ɵnov"](n,5),"invalidStripingUnit")),l(n,158,0);var o=l(n,164,0,u.rbdForm.getValue("stripingUnit"));l(n,163,0,"cd-col-form-label",o),l(n,171,0,"stripingCount"),l(n,174,0,"stripingCount"),l(n,176,0,u.rbdForm.showError("stripingCount",e["ɵnov"](n,5),"required")),l(n,178,0,u.rbdForm.showError("stripingCount",e["ɵnov"](n,5),"min")),l(n,180,0,u.rbdForm,u.initializeConfigData),l(n,184,0,e["ɵnov"](n,5))}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,7).ngClassUntouched,e["ɵnov"](n,7).ngClassTouched,e["ɵnov"](n,7).ngClassPristine,e["ɵnov"](n,7).ngClassDirty,e["ɵnov"](n,7).ngClassValid,e["ɵnov"](n,7).ngClassInvalid,e["ɵnov"](n,7).ngClassPending);var a=e["ɵunv"](n,11,0,l(n,12,0,e["ɵnov"](n,0),u.action)),t=e["ɵunv"](n,11,1,l(n,13,0,e["ɵnov"](n,1),u.resource));l(n,11,0,a,t),l(n,17,0,e["ɵnov"](n,18).hasErrors,e["ɵnov"](n,18).hasSuccess),l(n,24,0,e["ɵnov"](n,29).ngClassUntouched,e["ɵnov"](n,29).ngClassTouched,e["ɵnov"](n,29).ngClassPristine,e["ɵnov"](n,29).ngClassDirty,e["ɵnov"](n,29).ngClassValid,e["ɵnov"](n,29).ngClassInvalid,e["ɵnov"](n,29).ngClassPending,e["ɵnov"](n,31).validClass,e["ɵnov"](n,31).invalidClass),l(n,36,0,e["ɵnov"](n,37).hasErrors,e["ɵnov"](n,37).hasSuccess),l(n,56,0,e["ɵnov"](n,57).hasErrors,e["ɵnov"](n,57).hasSuccess),l(n,62,0,e["ɵnov"](n,67).ngClassUntouched,e["ɵnov"](n,67).ngClassTouched,e["ɵnov"](n,67).ngClassPristine,e["ɵnov"](n,67).ngClassDirty,e["ɵnov"](n,67).ngClassValid,e["ɵnov"](n,67).ngClassInvalid,e["ɵnov"](n,67).ngClassPending,e["ɵnov"](n,68).validClass,e["ɵnov"](n,68).invalidClass),l(n,73,0,e["ɵnov"](n,74).hasErrors,e["ɵnov"](n,74).hasSuccess),l(n,80,0,e["ɵnov"](n,85).ngClassUntouched,e["ɵnov"](n,85).ngClassTouched,e["ɵnov"](n,85).ngClassPristine,e["ɵnov"](n,85).ngClassDirty,e["ɵnov"](n,85).ngClassValid,e["ɵnov"](n,85).ngClassInvalid,e["ɵnov"](n,85).ngClassPending,e["ɵnov"](n,87).validClass,e["ɵnov"](n,87).invalidClass),l(n,92,0,e["ɵnov"](n,95).ngClassUntouched,e["ɵnov"](n,95).ngClassTouched,e["ɵnov"](n,95).ngClassPristine,e["ɵnov"](n,95).ngClassDirty,e["ɵnov"](n,95).ngClassValid,e["ɵnov"](n,95).ngClassInvalid,e["ɵnov"](n,95).ngClassPending,e["ɵnov"](n,96).hasErrors,e["ɵnov"](n,96).hasSuccess),l(n,108,0,!u.advancedEnabled),l(n,114,0,e["ɵnov"](n,115).hasErrors,e["ɵnov"](n,115).hasSuccess),l(n,121,0,e["ɵnov"](n,126).ngClassUntouched,e["ɵnov"](n,126).ngClassTouched,e["ɵnov"](n,126).ngClassPristine,e["ɵnov"](n,126).ngClassDirty,e["ɵnov"](n,126).ngClassValid,e["ɵnov"](n,126).ngClassInvalid,e["ɵnov"](n,126).ngClassPending,e["ɵnov"](n,127).validClass,e["ɵnov"](n,127).invalidClass),l(n,130,0,e["ɵnov"](n,131).hasErrors,e["ɵnov"](n,131).hasSuccess),l(n,140,0,e["ɵnov"](n,145).ngClassUntouched,e["ɵnov"](n,145).ngClassTouched,e["ɵnov"](n,145).ngClassPristine,e["ɵnov"](n,145).ngClassDirty,e["ɵnov"](n,145).ngClassValid,e["ɵnov"](n,145).ngClassInvalid,e["ɵnov"](n,145).ngClassPending,e["ɵnov"](n,146).validClass,e["ɵnov"](n,146).invalidClass),l(n,157,0,e["ɵnov"](n,158).hasErrors,e["ɵnov"](n,158).hasSuccess),l(n,167,0,e["ɵnov"](n,173).ngClassUntouched,e["ɵnov"](n,173).ngClassTouched,e["ɵnov"](n,173).ngClassPristine,e["ɵnov"](n,173).ngClassDirty,e["ɵnov"](n,173).ngClassValid,e["ɵnov"](n,173).ngClassInvalid,e["ɵnov"](n,173).ngClassPending,e["ɵnov"](n,174).validClass,e["ɵnov"](n,174).invalidClass);var o=e["ɵunv"](n,185,0,l(n,186,0,e["ɵnov"](n,0),u.action)),d=e["ɵunv"](n,185,1,l(n,187,0,e["ɵnov"](n,1),u.resource));l(n,185,0,o,d)}))}function Mu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rbd-form",[],null,null,null,$u,eu)),e["ɵdid"](1,114688,null,0,uu.a,[fl.a,Cl.a,Cn.a,Ql.a,U.a,Yl.a,B.a,A.a,Xl.b,Cl.m],null,null)],(function(l,n){l(n,1,0)}),null)}var zu=e["ɵccf"]("cd-rbd-form",uu.a,Mu,{},{},[]),Lu=u("JxMD"),Gu=u("dgut");class Ku{constructor(l){this.router=l}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var Hu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ju(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Al.b,Al.a)),e["ɵdid"](1,180224,null,0,hl.e,[hl.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Overview"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/overview")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Targets"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/block/iscsi/targets")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,hl.b,[hl.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){var u=n.component;l(n,3,0,"Overview","/block/iscsi/overview"===u.url),l(n,5,0,"Targets","/block/iscsi/targets"===u.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass)}))}var Zu=u("roDX"),Wu=u("my5R"),Qu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Yu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"cd-sparkline",[],null,null,null,Lu.b,Lu.a)),e["ɵdid"](2,638976,null,0,Gu.a,[B.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],(function(l,n){l(n,2,0,n.parent.context.value,n.parent.context.row.cdIsBinary)}),null)}function Xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function le(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Yu)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xu)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function ne(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," /s "]))],null,(function(l,n){l(n,1,0,n.parent.context.value)}))}function ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function ee(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,ne)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ue)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function ae(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent,0),n.parent.context.value));l(n,1,0,u)}))}function te(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" n/a "]))],null,null)}function oe(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,ae)),e["ɵdid"](1,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,te)),e["ɵdid"](3,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,"user:rbd"===n.context.row.backstore),l(n,3,0,"user:rbd"!==n.context.row.backstore)}),null)}function de(l){return e["ɵvid"](0,[e["ɵpid"](0,z.a,[]),e["ɵqud"](402653184,1,{iscsiSparklineTpl:0}),e["ɵqud"](402653184,2,{iscsiPerSecondTpl:0}),e["ɵqud"](402653184,3,{iscsiRelativeDateTpl:0}),(l()(),e["ɵeld"](4,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Ju,Hu)),e["ɵdid"](5,114688,null,0,Ku,[Cl.m],null,null),(l()(),e["ɵeld"](6,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Gateways"])),(l()(),e["ɵeld"](8,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],(function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.refresh()&&e),e}),$l.b,$l.a)),e["ɵdid"](9,2867200,null,0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"}),(l()(),e["ɵeld"](10,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](12,0,null,null,1,"cd-table",[],null,null,null,$l.b,$l.a)),e["ɵdid"](13,2867200,null,0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(l()(),e["ɵand"](0,[[1,2],["iscsiSparklineTpl",2]],null,0,null,le)),(l()(),e["ɵand"](0,[[2,2],["iscsiPerSecondTpl",2]],null,0,null,ee)),(l()(),e["ɵand"](0,[[3,2],["iscsiRelativeDateTpl",2]],null,0,null,oe))],(function(l,n){var u=n.component;l(n,5,0),l(n,9,0,u.gateways,u.gatewaysColumns),l(n,13,0,u.images,u.imagesColumns)}),null)}function ie(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi",[],null,null,null,de,Qu)),e["ɵdid"](1,114688,null,0,Zu.a,[Wu.a,M.a,L.a,A.a],null,null)],(function(l,n){l(n,1,0)}),null)}var re=e["ɵccf"]("cd-iscsi",Zu.a,ie,{},{},[]),se=u("DqMs"),ce=u("/NlG"),pe=u("3ris"),me=u("e/kN"),ge=e["ɵcrt"]({encapsulation:0,styles:[["tabset.tabset>ul{border-bottom:0;float:left;display:block;margin-right:20px;border-right:1px solid #ddd;padding-right:15px}"]],data:{}});function fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Available information:"])),(l()(),e["ɵeld"](4,0,null,null,1,"pre",[],null,null,null,null,null)),(l()(),e["ɵted"](5,null,["",""]))],null,(function(l,n){l(n,5,0,n.component.status)}))}function ve(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["title","iSCSI Targets not available"],["type","info"]],null,null,null,se.b,se.a)),e["ɵdid"](1,114688,null,0,ce.a,[A.a],{title:[0,"title"],type:[1,"type"]},null),(l()(),e["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Please consult the "])),(l()(),e["ɵeld"](4,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["ɵted"](-1,null,["documentation"])),(l()(),e["ɵted"](-1,null,[" on how to configure and enable the iSCSI Targets management functionality."])),(l()(),e["ɵand"](16777216,null,0,1,null,fe)),e["ɵdid"](8,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,"iSCSI Targets not available","info"),l(n,8,0,u.status)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.docsUrl,""))}))}function Ce(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi-target-details",[["cdTableDetail",""]],null,null,null,q.c,q.b)),e["ɵdid"](1,638976,null,0,pe.a,[A.a,L.a,S.a],{selection:[0,"selection"],settings:[1,"settings"],cephIscsiConfigVersion:[2,"cephIscsiConfigVersion"]},null)],(function(l,n){var u=n.component;l(n,1,0,u.selection,u.settings,u.cephIscsiConfigVersion)}),null)}function he(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","target_iqn"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateSelection(u)&&e),e}),$l.b,$l.a)),e["ɵdid"](1,2867200,[[1,4],["table",4]],0,Ml.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](2,0,null,1,9,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,zl.b,zl.a)),e["ɵdid"](4,114688,null,0,Ll.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](5,0,null,null,6,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.configureDiscoveryAuth()&&e),e}),null,null)),(l()(),e["ɵeld"](6,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](8,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](9,1),(l()(),e["ɵeld"](10,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Discovery authentication"])),(l()(),e["ɵand"](16777216,null,3,1,null,Ce)),e["ɵdid"](13,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,u.targets,u.columns,"flex","target_iqn","true","single"),l(n,4,0,u.permission,u.selection,u.tableActions);var e=l(n,9,0,u.icons.key);l(n,8,0,e),l(n,13,0,u.selection.hasSingleSelection)}),null)}function be(l){return e["ɵvid"](0,[e["ɵqud"](671088640,1,{table:0}),(l()(),e["ɵeld"](1,0,null,null,1,"cd-iscsi-tabs",[],null,null,null,Ju,Hu)),e["ɵdid"](2,114688,null,0,Ku,[Cl.m],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,ve)),e["ɵdid"](4,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,he)),e["ɵdid"](6,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,2,0),l(n,4,0,!1===u.available),l(n,6,0,!0===u.available)}),null)}function Ie(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-iscsi-target-list",[],null,null,null,be,ge)),e["ɵprd"](131584,null,Kl.a,Kl.a,[Hl.a,Jl.a]),e["ɵdid"](2,245760,null,0,me.a,[fl.a,A.a,Wu.a,Kl.a,O.a,X.a,Jl.a,sl.b,Yl.a,Xl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Re=e["ɵccf"]("cd-iscsi-target-list",me.a,Ie,{},{},[]),Ne=u("D4zM"),we=u("OcYo"),Te=u("EApP"),Ee=u("WiuZ"),ye=u("wnGv"),Ve=u("LvDl");class qe{constructor(l){this.ngControl=l}onInput(l){this.setValue(l)}setValue(l){l=Ve.isString(l)?l.trim():l,this.ngControl.control.setValue(l)}}var ke=u("gr3l"),xe=e["ɵcrt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function _e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function De(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["IQN has wrong pattern."]))],null,null)}function Fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["An IQN has the following notation 'iqn.$year-$month.$reversedAddress:$definedName'"])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309"])),(l()(),e["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"a",[["href","https://en.wikipedia.org/wiki/ISCSI#Addressing"],["target","_blank"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["More information"]))],null,null)}function Pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This target has modified advanced settings."]))],null,null)}function Se(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removePortal(l.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function Ae(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["At least "," gateways are required."]))],null,(function(l,n){l(n,1,0,n.component.minimum_gateways)}))}function je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["lun: ",""]))],null,(function(l,n){l(n,1,0,n.component.imagesSettings[n.parent.context.$implicit].lun)}))}function Oe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(l()(),e["ɵted"](1,null,["Backstore: ",". "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,a=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent,2),u.imagesSettings[n.parent.context.$implicit].backstore));l(n,1,0,a)}))}function Ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This image has modified settings."]))],null,null)}function Be(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,20,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,14,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,je)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](6,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.imageSettingsModal(l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](9,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](10,1),(l()(),e["ɵeld"](11,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeImage(l.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](12,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](14,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](15,1),(l()(),e["ɵeld"](16,0,null,null,4,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Oe)),e["ɵdid"](18,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ue)),e["ɵdid"](20,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,5,0,u.api_version>=1);var e=l(n,10,0,u.icons.deepCheck);l(n,9,0,e);var a=l(n,15,0,u.icons.destroy);l(n,14,0,a),l(n,18,0,u.backstores.length>1),l(n,20,0,u.hasAdvancedSettings(u.imagesSettings[n.context.$implicit][u.imagesSettings[n.context.$implicit].backstore]))}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function $e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Duplicated LUN numbers."]))],null,null)}function Me(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Duplicated WWN."]))],null,null)}function ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Le(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function Ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function He(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function Ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function We(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function Qe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,91,"div",[["formGroupName","auth"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](5,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](8,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User"])),(l()(),e["ɵeld"](11,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","target_user"],["name","target_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,13)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,13).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,13)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,13)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](13,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](15,671744,[[9,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](17,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](18,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ze)),e["ɵdid"](20,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Le)),e["ɵdid"](22,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](23,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](24,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](27,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_password"]],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵeld"](30,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](31,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](32,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","target_password"],["name","target_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,33)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,33).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,33)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,33)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](33,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](35,671744,[[11,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](37,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](38,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](39,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,1,"button",[["cdPasswordButton","target_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,41).onClick()&&a),a}),null,null)),e["ɵdid"](41,81920,null,0,Ne.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](42,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,43).onClick()&&a),a}),null,null)),e["ɵdid"](43,81920,null,0,we.a,[e.ElementRef,e.Renderer2,Te.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ge)),e["ɵdid"](45,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ke)),e["ɵdid"](47,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](48,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](49,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](52,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_mutual_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](53,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual User"])),(l()(),e["ɵeld"](55,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](56,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["id","target_mutual_user"],["name","target_mutual_user"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,57)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,57).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,57)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,57)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](57,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](59,671744,[[13,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](61,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](62,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,He)),e["ɵdid"](64,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Je)),e["ɵdid"](66,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](67,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](68,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](71,0,null,0,2,"label",[["class","cd-col-form-label"],["for","target_mutual_password"]],null,null,null,null,null)),(l()(),e["ɵeld"](72,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual Password"])),(l()(),e["ɵeld"](74,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](75,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](76,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","mutual_password"],["id","target_mutual_password"],["name","target_mutual_password"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,77)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,77).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,77)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,77)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](77,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](79,671744,[[15,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](81,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](82,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](83,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](84,0,null,null,1,"button",[["cdPasswordButton","target_mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,85).onClick()&&a),a}),null,null)),e["ɵdid"](85,81920,null,0,Ne.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](86,0,null,null,1,"button",[["cdCopy2ClipboardButton","target_mutual_password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,87).onClick()&&a),a}),null,null)),e["ɵdid"](87,81920,null,0,we.a,[e.ElementRef,e.Renderer2,Te.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ze)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,We)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,"auth"),l(n,5,0),l(n,15,0,"user"),l(n,18,0,"user"),l(n,20,0,u.targetForm.showError("user",e["ɵnov"](n.parent,2),"required")),l(n,22,0,u.targetForm.showError("user",e["ɵnov"](n.parent,2),"pattern")),l(n,24,0),l(n,35,0,"password"),l(n,38,0,"password"),l(n,41,0,"target_password"),l(n,43,0,"target_password"),l(n,45,0,u.targetForm.showError("password",e["ɵnov"](n.parent,2),"required")),l(n,47,0,u.targetForm.showError("password",e["ɵnov"](n.parent,2),"pattern")),l(n,49,0),l(n,59,0,"mutual_user"),l(n,62,0,"mutual_user"),l(n,64,0,u.targetForm.showError("mutual_user",e["ɵnov"](n.parent,2),"required")),l(n,66,0,u.targetForm.showError("mutual_user",e["ɵnov"](n.parent,2),"pattern")),l(n,68,0),l(n,79,0,"mutual_password"),l(n,82,0,"mutual_password"),l(n,85,0,"target_mutual_password"),l(n,87,0,"target_mutual_password"),l(n,89,0,u.targetForm.showError("mutual_password",e["ɵnov"](n.parent,2),"required")),l(n,91,0,u.targetForm.showError("mutual_password",e["ɵnov"](n.parent,2),"pattern"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending),l(n,4,0,e["ɵnov"](n,5).hasErrors,e["ɵnov"](n,5).hasSuccess),l(n,12,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass),l(n,23,0,e["ɵnov"](n,24).hasErrors,e["ɵnov"](n,24).hasSuccess),l(n,32,0,e["ɵnov"](n,37).ngClassUntouched,e["ɵnov"](n,37).ngClassTouched,e["ɵnov"](n,37).ngClassPristine,e["ɵnov"](n,37).ngClassDirty,e["ɵnov"](n,37).ngClassValid,e["ɵnov"](n,37).ngClassInvalid,e["ɵnov"](n,37).ngClassPending,e["ɵnov"](n,38).validClass,e["ɵnov"](n,38).invalidClass),l(n,48,0,e["ɵnov"](n,49).hasErrors,e["ɵnov"](n,49).hasSuccess),l(n,56,0,e["ɵnov"](n,61).ngClassUntouched,e["ɵnov"](n,61).ngClassTouched,e["ɵnov"](n,61).ngClassPristine,e["ɵnov"](n,61).ngClassDirty,e["ɵnov"](n,61).ngClassValid,e["ɵnov"](n,61).ngClassInvalid,e["ɵnov"](n,61).ngClassPending,e["ɵnov"](n,62).validClass,e["ɵnov"](n,62).invalidClass),l(n,67,0,e["ɵnov"](n,68).hasErrors,e["ɵnov"](n,68).hasSuccess),l(n,76,0,e["ɵnov"](n,81).ngClassUntouched,e["ɵnov"](n,81).ngClassTouched,e["ɵnov"](n,81).ngClassPristine,e["ɵnov"](n,81).ngClassDirty,e["ɵnov"](n,81).ngClassValid,e["ɵnov"](n,81).ngClassInvalid,e["ɵnov"](n,81).ngClassPending,e["ɵnov"](n,82).validClass,e["ɵnov"](n,82).invalidClass)}))}function Ye(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator IQN needs to be unique."]))],null,null)}function Xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function la(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["IQN has wrong pattern."]))],null,null)}function na(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ua(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function ea(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function aa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function ta(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function oa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User names must have a length of 8 to 64 characters and can contain alphanumeric characters, '.', '@', '-', '_' or ':'."]))],null,null)}function da(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ia(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Passwords must have a length of 12 to 16 characters and can contain alphanumeric characters, '@', '-', '_' or '/'."]))],null,null)}function ra(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiatorImage(l.parent.context.$implicit,l.context.index,l.parent.context.index,l.context.$implicit)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function sa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator belongs to a group. Images will be configure in the group."]))],null,null)}function ca(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,null,null,Ee.b,Ee.a)),e["ɵdid"](3,638976,null,0,ye.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["ɵeld"](4,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](7,1),(l()(),e["ɵeld"](8,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"]))],(function(l,n){var u=n.component,e=n.parent.context.$implicit.getValue("luns");l(n,3,0,"btn btn-light float-right",e,u.imagesInitiatorSelections[n.parent.context.index],u.messages.initiatorImage);var a=l(n,7,0,u.icons.add);l(n,6,0,a)}),null)}function pa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,136,"div",[["class","card mb-2"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,8,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiator"])),(l()(),e["ɵted"](7,null,[": "," "])),(l()(),e["ɵeld"](8,0,null,null,4,"button",[["class","close"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeInitiator(l.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,123,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](15,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](18,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","client_iqn"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Client IQN"])),(l()(),e["ɵeld"](20,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","client_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0,t=l.component;return"input"===n&&(a=!1!==e["ɵnov"](l,22)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,22).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,22)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,22)._compositionEnd(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,27).onInput(u.target.value)&&a),"blur"===n&&(a=!1!==t.updatedInitiatorSelector()&&a),a}),null,null)),e["ɵdid"](22,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](24,671744,[[19,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](26,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](27,16384,null,0,qe,[el.q],null,null),e["ɵdid"](28,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ye)),e["ɵdid"](30,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xe)),e["ɵdid"](32,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,la)),e["ɵdid"](34,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](35,0,null,null,88,null,null,null,null,null,null,null)),e["ɵdid"](36,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](38,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](39,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](40,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](43,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User"])),(l()(),e["ɵeld"](45,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](46,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,47)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,47).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,47)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,47)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](47,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](49,671744,[[21,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](51,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](52,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,na)),e["ɵdid"](54,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ua)),e["ɵdid"](56,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](57,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](58,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](61,0,null,0,1,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵeld"](63,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](64,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,6,"input",[["class","form-control"],["formControlName","password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,66)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,66).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,66)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,66)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](66,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](68,671744,[[23,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](70,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](71,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](72,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](73,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,74).onClick()&&a),a}),null,null)),e["ɵdid"](74,81920,null,0,Ne.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](75,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,76).onClick()&&a),a}),null,null)),e["ɵdid"](76,81920,null,0,we.a,[e.ElementRef,e.Renderer2,Te.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ea)),e["ɵdid"](78,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,aa)),e["ɵdid"](80,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](81,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](82,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,25,{FormControlNames:1}),e["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),e["ɵeld"](85,0,null,0,2,"label",[["class","cd-col-form-label"],["for","mutual_user"]],null,null,null,null,null)),(l()(),e["ɵeld"](86,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual User"])),(l()(),e["ɵeld"](88,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](89,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_user"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,90)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,90).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,90)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,90)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](90,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](92,671744,[[25,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](94,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](95,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ta)),e["ɵdid"](97,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,oa)),e["ɵdid"](99,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](100,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](101,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,27,{FormControlNames:1}),e["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),e["ɵeld"](104,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mutual_password"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mutual Password"])),(l()(),e["ɵeld"](106,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](107,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,6,"input",[["class","form-control"],["formControlName","mutual_password"],["type","password"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,109)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,109).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,109)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,109)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](109,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](111,671744,[[27,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](113,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](114,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](115,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](116,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,117).onClick()&&a),a}),null,null)),e["ɵdid"](117,81920,null,0,Ne.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](118,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var a=!0;return"click"===n&&(a=!1!==e["ɵnov"](l,119).onClick()&&a),a}),null,null)),e["ɵdid"](119,81920,null,0,we.a,[e.ElementRef,e.Renderer2,Te.j],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,da)),e["ɵdid"](121,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ia)),e["ɵdid"](123,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](124,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](125,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,29,{FormControlNames:1}),e["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),e["ɵeld"](128,0,null,0,1,"label",[["class","cd-col-form-label"],["for","luns"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](130,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ra)),e["ɵdid"](132,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,sa)),e["ɵdid"](134,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ca)),e["ɵdid"](136,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,n.context.index);var a=l(n,12,0,u.icons.destroy);l(n,11,0,a),l(n,15,0),l(n,24,0,"client_iqn"),l(n,28,0,"client_iqn");var t=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"notUnique");l(n,30,0,t);var o=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"required");l(n,32,0,o);var d=n.context.$implicit.showError("client_iqn",e["ɵnov"](n.parent.parent,2),"pattern");l(n,34,0,d),l(n,36,0,"auth"),l(n,40,0),l(n,49,0,"user"),l(n,52,0,"user");var i=n.context.$implicit.showError("user",e["ɵnov"](n.parent.parent,2),"required");l(n,54,0,i);var r=n.context.$implicit.showError("user",e["ɵnov"](n.parent.parent,2),"pattern");l(n,56,0,r),l(n,58,0),l(n,68,0,"password"),l(n,71,0,"password"),l(n,74,0,"password"+n.context.index),l(n,76,0,"password"+n.context.index);var s=n.context.$implicit.showError("password",e["ɵnov"](n.parent.parent,2),"required");l(n,78,0,s);var c=n.context.$implicit.showError("password",e["ɵnov"](n.parent.parent,2),"pattern");l(n,80,0,c),l(n,82,0),l(n,92,0,"mutual_user"),l(n,95,0,"mutual_user");var p=n.context.$implicit.showError("mutual_user",e["ɵnov"](n.parent.parent,2),"required");l(n,97,0,p);var m=n.context.$implicit.showError("mutual_user",e["ɵnov"](n.parent.parent,2),"pattern");l(n,99,0,m),l(n,101,0),l(n,111,0,"mutual_password"),l(n,114,0,"mutual_password"),l(n,117,0,"mutual_password"+n.context.index),l(n,119,0,"mutual_password"+n.context.index);var g=n.context.$implicit.showError("mutual_password",e["ɵnov"](n.parent.parent,2),"required");l(n,121,0,g);var f=n.context.$implicit.showError("mutual_password",e["ɵnov"](n.parent.parent,2),"pattern");l(n,123,0,f),l(n,125,0);var v=n.context.$implicit.getValue("luns");l(n,132,0,v);var C=n.context.$implicit.getValue("cdIsInGroup");l(n,134,0,C);var h=!n.context.$implicit.getValue("cdIsInGroup");l(n,136,0,h)}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("client_iqn");l(n,7,0,u),l(n,14,0,e["ɵnov"](n,15).hasErrors,e["ɵnov"](n,15).hasSuccess),l(n,21,0,e["ɵnov"](n,26).ngClassUntouched,e["ɵnov"](n,26).ngClassTouched,e["ɵnov"](n,26).ngClassPristine,e["ɵnov"](n,26).ngClassDirty,e["ɵnov"](n,26).ngClassValid,e["ɵnov"](n,26).ngClassInvalid,e["ɵnov"](n,26).ngClassPending,e["ɵnov"](n,28).validClass,e["ɵnov"](n,28).invalidClass),l(n,39,0,e["ɵnov"](n,40).hasErrors,e["ɵnov"](n,40).hasSuccess),l(n,46,0,"user"+n.context.index,e["ɵnov"](n,51).ngClassUntouched,e["ɵnov"](n,51).ngClassTouched,e["ɵnov"](n,51).ngClassPristine,e["ɵnov"](n,51).ngClassDirty,e["ɵnov"](n,51).ngClassValid,e["ɵnov"](n,51).ngClassInvalid,e["ɵnov"](n,51).ngClassPending,e["ɵnov"](n,52).validClass,e["ɵnov"](n,52).invalidClass),l(n,57,0,e["ɵnov"](n,58).hasErrors,e["ɵnov"](n,58).hasSuccess),l(n,65,0,"password"+n.context.index,e["ɵnov"](n,70).ngClassUntouched,e["ɵnov"](n,70).ngClassTouched,e["ɵnov"](n,70).ngClassPristine,e["ɵnov"](n,70).ngClassDirty,e["ɵnov"](n,70).ngClassValid,e["ɵnov"](n,70).ngClassInvalid,e["ɵnov"](n,70).ngClassPending,e["ɵnov"](n,71).validClass,e["ɵnov"](n,71).invalidClass),l(n,81,0,e["ɵnov"](n,82).hasErrors,e["ɵnov"](n,82).hasSuccess),l(n,89,0,"mutual_user"+n.context.index,e["ɵnov"](n,94).ngClassUntouched,e["ɵnov"](n,94).ngClassTouched,e["ɵnov"](n,94).ngClassPristine,e["ɵnov"](n,94).ngClassDirty,e["ɵnov"](n,94).ngClassValid,e["ɵnov"](n,94).ngClassInvalid,e["ɵnov"](n,94).ngClassPending,e["ɵnov"](n,95).validClass,e["ɵnov"](n,95).invalidClass),l(n,100,0,e["ɵnov"](n,101).hasErrors,e["ɵnov"](n,101).hasSuccess),l(n,108,0,"mutual_password"+n.context.index,e["ɵnov"](n,113).ngClassUntouched,e["ɵnov"](n,113).ngClassTouched,e["ɵnov"](n,113).ngClassPristine,e["ɵnov"](n,113).ngClassDirty,e["ɵnov"](n,113).ngClassValid,e["ɵnov"](n,113).ngClassInvalid,e["ɵnov"](n,113).ngClassPending,e["ɵnov"](n,114).validClass,e["ɵnov"](n,114).invalidClass),l(n,124,0,e["ɵnov"](n,125).hasErrors,e["ɵnov"](n,125).hasSuccess)}))}function ma(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["No items added."]))],null,null)}function ga(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","initiators"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiators"])),(l()(),e["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"],["formArrayName","initiators"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](7,212992,null,0,el.g,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.g]),e["ɵdid"](9,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,pa)),e["ɵdid"](11,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,9,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ma)),e["ɵdid"](15,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](16,0,null,null,6,"button",[["class","btn btn-light float-right"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.addInitiator(),e=!1),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add initiator"])),(l()(),e["ɵeld"](23,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,1,0),l(n,7,0,"initiators"),l(n,11,0,u.initiators.controls),l(n,15,0,0===u.initiators.controls.length);var e=l(n,20,0,u.icons.add);l(n,19,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,9).ngClassUntouched,e["ɵnov"](n,9).ngClassTouched,e["ɵnov"](n,9).ngClassPristine,e["ɵnov"](n,9).ngClassDirty,e["ɵnov"](n,9).ngClassValid,e["ɵnov"](n,9).ngClassInvalid,e["ɵnov"](n,9).ngClassPending)}))}function fa(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupInitiator(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function va(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.removeGroupDisk(l.parent.context.$implicit,l.context.index,l.parent.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](7,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](8,1)],(function(l,n){var u=l(n,8,0,n.component.icons.destroy);l(n,7,0,u)}),(function(l,n){l(n,2,0,n.context.$implicit)}))}function Ca(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,69,"div",[["class","card mb-2"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](1,212992,null,0,el.m,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.m]),e["ɵdid"](3,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵeld"](4,0,null,null,8,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Group"])),(l()(),e["ɵted"](7,null,[": "," "])),(l()(),e["ɵeld"](8,0,null,null,4,"button",[["class","close"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.groups.removeAt(l.context.index)&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,56,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](15,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,33,{FormControlNames:1}),e["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),e["ɵeld"](18,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","group_id"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](20,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,6,"input",[["class","form-control"],["formControlName","group_id"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,22)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,22).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,22)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,22)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](22,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](24,671744,[[33,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](26,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](27,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](28,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](29,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,35,{FormControlNames:1}),e["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),e["ɵeld"](32,0,null,0,2,"label",[["class","cd-col-form-label"],["for","members"]],null,null,null,null,null)),(l()(),e["ɵeld"](33,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Initiators"])),(l()(),e["ɵeld"](35,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fa)),e["ɵdid"](37,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](38,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onGroupMemberSelection(u)&&e),e}),Ee.b,Ee.a)),e["ɵdid"](41,638976,null,0,ye.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](42,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](44,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](45,1),(l()(),e["ɵeld"](46,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add initiator"])),(l()(),e["ɵeld"](48,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](49,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](50,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,37,{FormControlNames:1}),e["ɵqud"](603979776,38,{messagesBlock:0}),(l()(),e["ɵeld"](53,0,null,0,2,"label",[["class","cd-col-form-label"],["for","disks"]],null,null,null,null,null)),(l()(),e["ɵeld"](54,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](56,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,va)),e["ɵdid"](58,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](59,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](60,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,null,null,Ee.b,Ee.a)),e["ɵdid"](62,638976,null,0,ye.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},null),(l()(),e["ɵeld"](63,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](65,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](66,1),(l()(),e["ɵeld"](67,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"])),(l()(),e["ɵeld"](69,0,null,null,0,"hr",[],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,1,0,n.context.index);var e=l(n,12,0,u.icons.destroy);l(n,11,0,e),l(n,15,0),l(n,24,0,"group_id"),l(n,27,0,"group_id"),l(n,29,0);var a=n.context.$implicit.getValue("members");l(n,37,0,a);var t=n.context.$implicit.getValue("members");l(n,41,0,"btn btn-light float-right",t,u.groupMembersSelections[n.context.index],u.messages.groupInitiator);var o=l(n,45,0,u.icons.add);l(n,44,0,o),l(n,50,0);var d=n.context.$implicit.getValue("disks");l(n,58,0,d);var i=n.context.$implicit.getValue("disks");l(n,62,0,"btn btn-light float-right",i,u.groupDiskSelections[n.context.index],u.messages.initiatorImage);var r=l(n,66,0,u.icons.add);l(n,65,0,r)}),(function(l,n){l(n,0,0,e["ɵnov"](n,3).ngClassUntouched,e["ɵnov"](n,3).ngClassTouched,e["ɵnov"](n,3).ngClassPristine,e["ɵnov"](n,3).ngClassDirty,e["ɵnov"](n,3).ngClassValid,e["ɵnov"](n,3).ngClassInvalid,e["ɵnov"](n,3).ngClassPending);var u=n.context.$implicit.getValue("group_id");l(n,7,0,u),l(n,14,0,e["ɵnov"](n,15).hasErrors,e["ɵnov"](n,15).hasSuccess),l(n,21,0,e["ɵnov"](n,26).ngClassUntouched,e["ɵnov"](n,26).ngClassTouched,e["ɵnov"](n,26).ngClassPristine,e["ɵnov"](n,26).ngClassDirty,e["ɵnov"](n,26).ngClassValid,e["ɵnov"](n,26).ngClassInvalid,e["ɵnov"](n,26).ngClassPending,e["ɵnov"](n,27).validClass,e["ɵnov"](n,27).invalidClass),l(n,28,0,e["ɵnov"](n,29).hasErrors,e["ɵnov"](n,29).hasSuccess),l(n,49,0,e["ɵnov"](n,50).hasErrors,e["ɵnov"](n,50).hasSuccess)}))}function ha(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["No items added."]))],null,null)}function ba(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](1,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,31,{FormControlNames:1}),e["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","initiators"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Groups"])),(l()(),e["ɵeld"](6,0,null,0,16,"div",[["class","cd-col-form-input"],["formArrayName","groups"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),e["ɵdid"](7,212992,null,0,el.g,[[3,el.d],[8,null],[8,null]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.d,null,[el.g]),e["ɵdid"](9,16384,null,0,el.s,[[4,el.d]],null,null),(l()(),e["ɵand"](16777216,null,null,1,null,Ca)),e["ɵdid"](11,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,9,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ha)),e["ɵdid"](15,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](16,0,null,null,6,"button",[["class","btn btn-light float-right"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(l.component.addGroup(),e=!1),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add group"]))],(function(l,n){var u=n.component;l(n,1,0),l(n,7,0,"groups"),l(n,11,0,u.groups.controls),l(n,15,0,0===u.groups.controls.length);var e=l(n,20,0,u.icons.add);l(n,19,0,e)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,9).ngClassUntouched,e["ɵnov"](n,9).ngClassTouched,e["ɵnov"](n,9).ngClassPristine,e["ɵnov"](n,9).ngClassDirty,e["ɵnov"](n,9).ngClassValid,e["ɵnov"](n,9).ngClassInvalid,e["ɵnov"](n,9).ngClassPending)}))}function Ia(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,133,"form",[["name","targetForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var a=!0;return"submit"===n&&(a=!1!==e["ɵnov"](l,2).onSubmit(u)&&a),"reset"===n&&(a=!1!==e["ɵnov"](l,2).onReset()&&a),"submit"===n&&(a=!1!==e["ɵnov"](l,5).onSubmit()&&a),a}),null,null)),e["ɵdid"](1,16384,null,0,el.G,[],null,null),e["ɵdid"](2,540672,[["formDir",4]],0,el.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,el.d,null,[el.l]),e["ɵdid"](4,16384,null,0,el.s,[[4,el.d]],null,null),e["ɵdid"](5,16384,null,0,Tl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](6,0,null,null,127,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](8,null,[""," ",""])),e["ɵppd"](9,1),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,113,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](13,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","target_iqn"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Target IQN"])),(l()(),e["ɵeld"](18,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,14,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](20,0,null,null,7,"input",[["cdTrim",""],["class","form-control"],["formControlName","target_iqn"],["id","target_iqn"],["name","target_iqn"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,21)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,21).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,21)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,21)._compositionEnd(u.target.value)&&a),"input"===n&&(a=!1!==e["ɵnov"](l,26).onInput(u.target.value)&&a),a}),null,null)),e["ɵdid"](21,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](23,671744,[[1,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](25,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](26,16384,null,0,qe,[el.q],null,null),e["ɵdid"](27,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](28,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](29,0,null,null,4,"button",[["class","btn btn-light"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.targetSettingsModal()&&e),e}),null,null)),(l()(),e["ɵeld"](30,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](32,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](33,1),(l()(),e["ɵand"](16777216,null,null,1,null,_e)),e["ɵdid"](35,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,De)),e["ɵdid"](37,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Fe)),e["ɵdid"](39,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pe)),e["ɵdid"](41,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](42,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](43,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](44,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](47,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","portals"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Portals"])),(l()(),e["ɵeld"](49,0,null,0,22,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Se)),e["ɵdid"](51,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](52,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](53,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](54,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onPortalSelection(u)&&e),e}),Ee.b,Ee.a)),e["ɵdid"](55,638976,null,0,ye.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](56,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](58,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](59,1),(l()(),e["ɵeld"](60,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add portal"])),(l()(),e["ɵeld"](62,0,null,null,6,"input",[["class","form-control"],["formControlName","portals"],["id","portals"],["name","portals"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,63)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,63).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,63)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,63)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](63,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](65,671744,[[3,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](67,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](68,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ae)),e["ɵdid"](70,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](71,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](72,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](73,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](76,0,null,0,1,"label",[["class","cd-col-form-label"],["for","disks"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Images"])),(l()(),e["ɵeld"](78,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Be)),e["ɵdid"](80,278528,null,0,D.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](81,0,null,null,6,"input",[["class","form-control"],["formControlName","disks"],["id","disks"],["name","disks"],["type","hidden"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var a=!0;return"input"===n&&(a=!1!==e["ɵnov"](l,82)._handleInput(u.target.value)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,82).onTouched()&&a),"compositionstart"===n&&(a=!1!==e["ɵnov"](l,82)._compositionStart()&&a),"compositionend"===n&&(a=!1!==e["ɵnov"](l,82)._compositionEnd(u.target.value)&&a),a}),null,null)),e["ɵdid"](82,16384,null,0,el.e,[e.Renderer2,e.ElementRef,[2,el.b]],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.e]),e["ɵdid"](84,671744,[[5,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](86,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](87,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,$e)),e["ɵdid"](89,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Me)),e["ɵdid"](91,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](92,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](93,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](94,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(l,n,u){var e=!0;return"selection"===n&&(e=!1!==l.component.onImageSelection(u)&&e),e}),Ee.b,Ee.a)),e["ɵdid"](95,638976,null,0,ye.a,[A.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(l()(),e["ɵeld"](96,0,null,0,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,D["ɵNgClassImpl"],D["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](98,278528,null,0,D.NgClass,[D["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](99,1),(l()(),e["ɵeld"](100,0,null,0,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Add image"])),(l()(),e["ɵeld"](102,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](103,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ln.b,Ln.a)),e["ɵdid"](104,1163264,null,2,Tl.c,[e.ElementRef,Tl.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](107,0,null,0,11,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","acl_enabled"],["id","acl_enabled"],["name","acl_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var a=!0;return"change"===n&&(a=!1!==e["ɵnov"](l,110).onChange(u.target.checked)&&a),"blur"===n&&(a=!1!==e["ɵnov"](l,110).onTouched()&&a),a}),null,null)),e["ɵdid"](110,16384,null,0,el.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,el.p,(function(l){return[l]}),[el.c]),e["ɵdid"](112,671744,[[7,4]],0,el.j,[[3,el.d],[8,null],[8,null],[6,el.p],[2,el.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,el.q,null,[el.j]),e["ɵdid"](114,16384,null,0,el.r,[[4,el.q]],null,null),e["ɵdid"](115,16384,null,0,Tl.h,[[3,el.d],Tl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](116,0,null,null,1,"label",[["class","custom-control-label"],["for","acl_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["ACL authentication"])),(l()(),e["ɵeld"](118,0,null,null,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Qe)),e["ɵdid"](120,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ga)),e["ɵdid"](122,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ba)),e["ɵdid"](124,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](125,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](126,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](127,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Yn.b,Yn.a)),e["ɵdid"](128,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](129,0,[""," ",""])),e["ɵppd"](130,1),e["ɵppd"](131,1),(l()(),e["ɵeld"](132,0,null,null,1,"cd-back-button",[],null,null,null,lu.b,lu.a)),e["ɵdid"](133,49152,null,0,nu.a,[D.Location,Xl.b],null,null)],(function(l,n){var u=n.component;l(n,2,0,u.targetForm),l(n,5,0,u.targetForm),l(n,13,0),l(n,23,0,"target_iqn"),l(n,27,0,"target_iqn");var a=l(n,33,0,u.icons.deepCheck);l(n,32,0,a),l(n,35,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"required")),l(n,37,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"pattern")),l(n,39,0,u.targetForm.showError("target_iqn",e["ɵnov"](n,2),"iqn")),l(n,41,0,u.hasAdvancedSettings(u.targetForm.getValue("target_controls"))),l(n,44,0),l(n,51,0,u.portals.value),l(n,55,0,"btn btn-light float-right",u.portals.value,u.portalsSelections,u.messages.portals);var t=l(n,59,0,u.icons.add);l(n,58,0,t),l(n,65,0,"portals"),l(n,68,0,"portals"),l(n,70,0,u.targetForm.showError("portals",e["ɵnov"](n,2),"minGateways")),l(n,73,0),l(n,80,0,u.targetForm.getValue("disks")),l(n,84,0,"disks"),l(n,87,0,"disks"),l(n,89,0,u.targetForm.showError("disks",e["ɵnov"](n,2),"dupLunId")),l(n,91,0,u.targetForm.showError("disks",e["ɵnov"](n,2),"dupWwn")),l(n,95,0,"btn btn-light float-right",u.disks.value,u.imagesSelections,u.messages.images);var o=l(n,99,0,u.icons.add);l(n,98,0,o),l(n,104,0),l(n,112,0,"acl_enabled"),l(n,115,0,"acl_enabled"),l(n,120,0,u.cephIscsiConfigVersion>10&&!u.targetForm.getValue("acl_enabled")),l(n,122,0,u.targetForm.getValue("acl_enabled")),l(n,124,0,u.targetForm.getValue("acl_enabled")),l(n,128,0,e["ɵnov"](n,2))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,4).ngClassUntouched,e["ɵnov"](n,4).ngClassTouched,e["ɵnov"](n,4).ngClassPristine,e["ɵnov"](n,4).ngClassDirty,e["ɵnov"](n,4).ngClassValid,e["ɵnov"](n,4).ngClassInvalid,e["ɵnov"](n,4).ngClassPending);var a=e["ɵunv"](n,8,0,l(n,9,0,e["ɵnov"](n.parent,0),u.action)),t=e["ɵunv"](n,8,1,l(n,10,0,e["ɵnov"](n.parent,1),u.resource));l(n,8,0,a,t),l(n,12,0,e["ɵnov"](n,13).hasErrors,e["ɵnov"](n,13).hasSuccess),l(n,20,0,e["ɵnov"](n,25).ngClassUntouched,e["ɵnov"](n,25).ngClassTouched,e["ɵnov"](n,25).ngClassPristine,e["ɵnov"](n,25).ngClassDirty,e["ɵnov"](n,25).ngClassValid,e["ɵnov"](n,25).ngClassInvalid,e["ɵnov"](n,25).ngClassPending,e["ɵnov"](n,27).validClass,e["ɵnov"](n,27).invalidClass),l(n,43,0,e["ɵnov"](n,44).hasErrors,e["ɵnov"](n,44).hasSuccess),l(n,62,0,e["ɵnov"](n,67).ngClassUntouched,e["ɵnov"](n,67).ngClassTouched,e["ɵnov"](n,67).ngClassPristine,e["ɵnov"](n,67).ngClassDirty,e["ɵnov"](n,67).ngClassValid,e["ɵnov"](n,67).ngClassInvalid,e["ɵnov"](n,67).ngClassPending,e["ɵnov"](n,68).validClass,e["ɵnov"](n,68).invalidClass),l(n,72,0,e["ɵnov"](n,73).hasErrors,e["ɵnov"](n,73).hasSuccess),l(n,81,0,e["ɵnov"](n,86).ngClassUntouched,e["ɵnov"](n,86).ngClassTouched,e["ɵnov"](n,86).ngClassPristine,e["ɵnov"](n,86).ngClassDirty,e["ɵnov"](n,86).ngClassValid,e["ɵnov"](n,86).ngClassInvalid,e["ɵnov"](n,86).ngClassPending,e["ɵnov"](n,87).validClass,e["ɵnov"](n,87).invalidClass),l(n,103,0,e["ɵnov"](n,104).hasErrors,e["ɵnov"](n,104).hasSuccess),l(n,109,0,e["ɵnov"](n,114).ngClassUntouched,e["ɵnov"](n,114).ngClassTouched,e["ɵnov"](n,114).ngClassPristine,e["ɵnov"](n,114).ngClassDirty,e["ɵnov"](n,114).ngClassValid,e["ɵnov"](n,114).ngClassInvalid,e["ɵnov"](n,114).ngClassPending,e["ɵnov"](n,115).validClass,e["ɵnov"](n,115).invalidClass);var o=e["ɵunv"](n,129,0,l(n,130,0,e["ɵnov"](n.parent,0),u.action)),d=e["ɵunv"](n,129,1,l(n,131,0,e["ɵnov"](n.parent,1),u.resource));l(n,129,0,o,d)}))}function Ra(l){return e["ɵvid"](0,[e["ɵpid"](0,D.TitleCasePipe,[]),e["ɵpid"](0,ll.a,[]),e["ɵpid"](0,L.a,[]),(l()(),e["ɵeld"](3,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Ia)),e["ɵdid"](5,16384,null,0,D.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,5,0,n.component.targetForm)}),null)}function Na(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-iscsi-target-form",[],null,null,null,Ra,xe)),e["ɵdid"](1,114688,null,0,ke.a,[Wu.a,sl.b,Ql.a,Cl.m,Cl.a,A.a,Yl.a,Xl.b],null,null)],(function(l,n){l(n,1,0)}),null)}var wa=e["ɵccf"]("cd-iscsi-target-form",ke.a,Na,{},{},[]),Ta=u("Vhfg"),Ea=u("cxJu");u.d(n,"BlockModuleNgFactory",(function(){return ya})),u.d(n,"RoutedBlockModuleNgFactory",(function(){return Va}));var ya=e["ɵcmf"](a.a,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[t.a,o.a,d.a,i.a,i.b,r.a,s.a,c.a,p.a,m.a,g.a,f.a,v.a,C.a,h.a,b.a,I.a,R.a,R.c,R.b,N.a,w.a,T.a,E.a,y.a,V.a,q.a,k.a,x.a,_.a]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,D.NgLocalization,D.NgLocaleLocalization,[e.LOCALE_ID,[2,D["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,S.a,S.a,[A.a]),e["ɵmpd"](4608,D.DatePipe,D.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,B.a,B.a,[U.a]),e["ɵmpd"](4608,$.a,$.a,[U.a]),e["ɵmpd"](4608,M.a,M.a,[U.a]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,G.a,G.a,[]),e["ɵmpd"](4608,K.a,K.a,[]),e["ɵmpd"](4608,H.a,H.a,[D.DatePipe]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,Z.a,Z.a,[]),e["ɵmpd"](4608,W.a,W.a,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,Y.a,Y.a,[]),e["ɵmpd"](4608,X.a,X.a,[A.a]),e["ɵmpd"](4608,ll.a,ll.a,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,ul.a,ul.a,[]),e["ɵmpd"](4608,el.D,el.D,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,al.b,al.b,[]),e["ɵmpd"](4608,tl.a,tl.a,[]),e["ɵmpd"](4608,ol.a,ol.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,dl.a,dl.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,ol.a,e.ApplicationRef]),e["ɵmpd"](4608,il.c,il.c,[]),e["ɵmpd"](4608,rl.a,rl.a,[]),e["ɵmpd"](4608,sl.b,sl.b,[e.RendererFactory2,dl.a]),e["ɵmpd"](4608,cl.ScrollbarHelper,cl.ScrollbarHelper,[D.DOCUMENT]),e["ɵmpd"](4608,pl.DimensionsHelper,pl.DimensionsHelper,[]),e["ɵmpd"](4608,ml.ColumnChangesService,ml.ColumnChangesService,[]),e["ɵmpd"](4608,gl.f,gl.f,[]),e["ɵmpd"](4608,fl.a,fl.a,[]),e["ɵmpd"](4608,vl.a,vl.a,[Cl.m,fl.a]),e["ɵmpd"](4608,hl.f,hl.f,[]),e["ɵmpd"](4608,bl.r,bl.r,[]),e["ɵmpd"](4608,bl.t,bl.t,[]),e["ɵmpd"](4608,bl.a,bl.a,[]),e["ɵmpd"](4608,bl.h,bl.h,[]),e["ɵmpd"](4608,bl.d,bl.d,[]),e["ɵmpd"](4608,bl.j,bl.j,[]),e["ɵmpd"](4608,bl.s,bl.s,[bl.t,bl.j]),e["ɵmpd"](4608,Il.a,Il.a,[]),e["ɵmpd"](1073742336,D.CommonModule,D.CommonModule,[]),e["ɵmpd"](1073742336,hl.d,hl.d,[]),e["ɵmpd"](1073742336,Rl.a,Rl.a,[]),e["ɵmpd"](1073742336,el.C,el.C,[]),e["ɵmpd"](1073742336,el.n,el.n,[]),e["ɵmpd"](1073742336,el.y,el.y,[]),e["ɵmpd"](1073742336,al.c,al.c,[]),e["ɵmpd"](1073742336,tl.d,tl.d,[]),e["ɵmpd"](1073742336,il.d,il.d,[]),e["ɵmpd"](1073742336,rl.d,rl.d,[]),e["ɵmpd"](1073742336,Nl.b,Nl.b,[]),e["ɵmpd"](1073742336,sl.e,sl.e,[]),e["ɵmpd"](1073742336,wl.a,wl.a,[]),e["ɵmpd"](1073742336,gl.e,gl.e,[]),e["ɵmpd"](1073742336,Tl.f,Tl.f,[]),e["ɵmpd"](1073742336,El.ClickOutsideModule,El.ClickOutsideModule,[]),e["ɵmpd"](1073742336,yl.b,yl.b,[]),e["ɵmpd"](1073742336,Cl.q,Cl.q,[[2,Cl.v],[2,Cl.m]]),e["ɵmpd"](1073742336,Vl.a,Vl.a,[]),e["ɵmpd"](1073742336,ql.NgxDatatableModule,ql.NgxDatatableModule,[]),e["ɵmpd"](1073742336,kl.a,kl.a,[]),e["ɵmpd"](1073742336,xl.a,xl.a,[]),e["ɵmpd"](1073742336,_l.a,_l.a,[]),e["ɵmpd"](1073742336,Dl.a,Dl.a,[]),e["ɵmpd"](1073742336,bl.g,bl.g,[]),e["ɵmpd"](1073742336,Fl.b,Fl.b,[]),e["ɵmpd"](1073742336,a.a,a.a,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,gl.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),Va=e["ɵcmf"](a.b,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[t.a,o.a,d.a,i.a,i.b,r.a,s.a,c.a,p.a,m.a,g.a,f.a,v.a,C.a,h.a,b.a,I.a,R.a,R.c,R.b,N.a,w.a,T.a,E.a,y.a,V.a,q.a,k.a,x.a,_.a,fn,Nn,Pn,zn,zu,re,Re,wa]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,D.NgLocalization,D.NgLocaleLocalization,[e.LOCALE_ID,[2,D["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,S.a,S.a,[A.a]),e["ɵmpd"](4608,D.DatePipe,D.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,B.a,B.a,[U.a]),e["ɵmpd"](4608,$.a,$.a,[U.a]),e["ɵmpd"](4608,M.a,M.a,[U.a]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,G.a,G.a,[]),e["ɵmpd"](4608,K.a,K.a,[]),e["ɵmpd"](4608,H.a,H.a,[D.DatePipe]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,Z.a,Z.a,[]),e["ɵmpd"](4608,W.a,W.a,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,Y.a,Y.a,[]),e["ɵmpd"](4608,X.a,X.a,[A.a]),e["ɵmpd"](4608,ll.a,ll.a,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,ul.a,ul.a,[]),e["ɵmpd"](4608,el.D,el.D,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,al.b,al.b,[]),e["ɵmpd"](4608,tl.a,tl.a,[]),e["ɵmpd"](4608,ol.a,ol.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,dl.a,dl.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,ol.a,e.ApplicationRef]),e["ɵmpd"](4608,il.c,il.c,[]),e["ɵmpd"](4608,rl.a,rl.a,[]),e["ɵmpd"](4608,sl.b,sl.b,[e.RendererFactory2,dl.a]),e["ɵmpd"](4608,cl.ScrollbarHelper,cl.ScrollbarHelper,[D.DOCUMENT]),e["ɵmpd"](4608,pl.DimensionsHelper,pl.DimensionsHelper,[]),e["ɵmpd"](4608,ml.ColumnChangesService,ml.ColumnChangesService,[]),e["ɵmpd"](4608,gl.f,gl.f,[]),e["ɵmpd"](4608,fl.a,fl.a,[]),e["ɵmpd"](4608,vl.a,vl.a,[Cl.m,fl.a]),e["ɵmpd"](4608,hl.f,hl.f,[]),e["ɵmpd"](4608,bl.r,bl.r,[]),e["ɵmpd"](4608,bl.t,bl.t,[]),e["ɵmpd"](4608,bl.a,bl.a,[]),e["ɵmpd"](4608,bl.h,bl.h,[]),e["ɵmpd"](4608,bl.d,bl.d,[]),e["ɵmpd"](4608,bl.j,bl.j,[]),e["ɵmpd"](4608,bl.s,bl.s,[bl.t,bl.j]),e["ɵmpd"](4608,Il.a,Il.a,[]),e["ɵmpd"](1073742336,D.CommonModule,D.CommonModule,[]),e["ɵmpd"](1073742336,hl.d,hl.d,[]),e["ɵmpd"](1073742336,Rl.a,Rl.a,[]),e["ɵmpd"](1073742336,el.C,el.C,[]),e["ɵmpd"](1073742336,el.n,el.n,[]),e["ɵmpd"](1073742336,el.y,el.y,[]),e["ɵmpd"](1073742336,al.c,al.c,[]),e["ɵmpd"](1073742336,tl.d,tl.d,[]),e["ɵmpd"](1073742336,il.d,il.d,[]),e["ɵmpd"](1073742336,rl.d,rl.d,[]),e["ɵmpd"](1073742336,Nl.b,Nl.b,[]),e["ɵmpd"](1073742336,sl.e,sl.e,[]),e["ɵmpd"](1073742336,wl.a,wl.a,[]),e["ɵmpd"](1073742336,gl.e,gl.e,[]),e["ɵmpd"](1073742336,Tl.f,Tl.f,[]),e["ɵmpd"](1073742336,El.ClickOutsideModule,El.ClickOutsideModule,[]),e["ɵmpd"](1073742336,yl.b,yl.b,[]),e["ɵmpd"](1073742336,Cl.q,Cl.q,[[2,Cl.v],[2,Cl.m]]),e["ɵmpd"](1073742336,Vl.a,Vl.a,[]),e["ɵmpd"](1073742336,ql.NgxDatatableModule,ql.NgxDatatableModule,[]),e["ɵmpd"](1073742336,kl.a,kl.a,[]),e["ɵmpd"](1073742336,xl.a,xl.a,[]),e["ɵmpd"](1073742336,_l.a,_l.a,[]),e["ɵmpd"](1073742336,Dl.a,Dl.a,[]),e["ɵmpd"](1073742336,bl.g,bl.g,[]),e["ɵmpd"](1073742336,Fl.b,Fl.b,[]),e["ɵmpd"](1073742336,a.a,a.a,[]),e["ɵmpd"](1073742336,a.b,a.b,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,gl.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,Cl.k,(function(){return[[{path:"",redirectTo:"rbd",pathMatch:"full"},{path:"rbd",canActivate:[Ta.a],data:a.c,children:[{path:"",component:Wl.a},{path:"namespaces",component:vn.a,data:a.d},{path:"trash",component:wn.a,data:a.j},{path:"performance",component:Un.a,data:a.k},{path:"create",component:uu.a,data:a.l},{path:"edit/:image_spec",component:uu.a,data:a.m},{path:"clone/:image_spec/:snap",component:uu.a,data:a.n},{path:"copy/:image_spec",component:uu.a,data:a.o},{path:"copy/:image_spec/:snap",component:uu.a,data:a.p}]},{path:"mirroring",component:Ea.a,canActivate:[Ta.a],data:a.q},{path:"iscsi",canActivate:[Ta.a],data:a.e,children:[{path:"",redirectTo:"overview",pathMatch:"full"},{path:"overview",component:Zu.a,data:a.f},{path:"targets",data:a.g,children:[{path:"",component:me.a},{path:"create",component:ke.a,data:a.h},{path:"edit/:target_iqn",component:ke.a,data:a.i}]}]}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.988fe96f3a1b2f8c64cd.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.988fe96f3a1b2f8c64cd.js
new file mode 100644 (file)
index 0000000..99402d2
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{Znkk:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),t=u("sne2"),i=u("Avrn"),a=u("+0ag"),o=u("mSOc");class s{constructor(l,n,u){this.route=l,this.summaryService=n,this.cephReleaseNamePipe=u,this.message="The Object Gateway service is not configured."}ngOnInit(){const l=this.summaryService.subscribe(n=>{if(!n)return;const u=this.cephReleaseNamePipe.transform(n.version);this.docsUrl=`http://docs.ceph.com/docs/${u}/mgr/dashboard/`+"#enabling-the-object-gateway-management-frontend",setTimeout(()=>{l.unsubscribe()},0)});this.routeParamsSubscribe=this.route.params.subscribe(l=>{this.message=l.message})}ngOnDestroy(){this.routeParamsSubscribe.unsubscribe()}}var d=u("s7LF"),r=u("LvDl"),c=u("mrSG"),m=u("IheW"),g=u("cp0P"),p=u("LRne"),f=u("5+tZ"),v=u("xTzq"),h=u("pL04");let b=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/bucket"}list(){return this.enumerate().pipe(Object(f.a)(l=>l.length>0?Object(g.a)(l.map(l=>this.get(l))):Object(p.a)([])))}enumerate(){return this.http.get(this.url)}get(l){return this.http.get(`${this.url}/${l}`)}create(l,n,u,e,t,i,a,o){return this.http.post(this.url,null,{params:new m.h({fromObject:{bucket:l,uid:n,zonegroup:u,placement_target:e,lock_enabled:String(t),lock_mode:i,lock_retention_period_days:a,lock_retention_period_years:o}})})}update(l,n,u,e,t,i,a,o,s,d){let r=new m.h;return r=r.append("bucket_id",n),r=r.append("uid",u),r=r.append("versioning_state",e),r=r.append("mfa_delete",t),r=r.append("mfa_token_serial",i),r=r.append("mfa_token_pin",a),r=r.append("lock_mode",o),r=r.append("lock_retention_period_days",s),r=r.append("lock_retention_period_years",d),this.http.put(`${this.url}/${l}`,null,{params:r})}delete(l,n=!0){let u=new m.h;return u=u.append("purge_objects",n?"true":"false"),this.http.delete(`${this.url}/${l}`,{params:u})}exists(l){return this.enumerate().pipe(Object(f.a)(n=>{const u=r.indexOf(n,l);return Object(p.a)(-1!==u)}))}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:h.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})(),C=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/site"}get(l){let n=new m.h;return l&&(n=n.append("query",l)),this.http.get(this.url,{params:n})}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:h.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})();var _=u("P8lu"),R=u("oxzT"),y=u("mtw6"),k=u("2EZI"),I=u("1Ni5"),w=u("9nlD"),E=function(l){return l.ENABLED="Enabled",l.DISABLED="Disabled",l}({}),N=function(l){return l.ENABLED="Enabled",l.SUSPENDED="Suspended",l}({});class q{constructor(l,n,u,e,i,a,o,s,d){this.route=l,this.router=n,this.formBuilder=u,this.rgwBucketService=e,this.rgwSiteService=i,this.rgwUserService=a,this.notificationService=o,this.i18n=s,this.actionLabels=d,this.editing=!1,this.error=!1,this.loading=!1,this.owners=null,this.placementTargets=[],this.isVersioningEnabled=!1,this.isVersioningAlreadyEnabled=!1,this.isMfaDeleteEnabled=!1,this.isMfaDeleteAlreadyEnabled=!1,this.icons=R.a,this.editing=this.router.url.startsWith(`/rgw/bucket/${t.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("bucket"),this.createForm()}createForm(){const l=this,n=I.a.custom("eitherDaysOrYears",()=>{if(!l.bucketForm||!r.get(l.bucketForm.getRawValue(),"lock_enabled"))return!1;const n=l.bucketForm.getValue("lock_retention_period_years"),u=l.bucketForm.getValue("lock_retention_period_days");return u>0&&n>0||0===u&&0===n}),u=[0,[I.a.number(!1),n]];this.bucketForm=this.formBuilder.group({id:[null],bid:[null,[d.B.required],this.editing?[]:[this.bucketNameValidator()]],owner:[null,[d.B.required]],"placement-target":[null,this.editing?[]:[d.B.required]],versioning:[null],"mfa-delete":[null],"mfa-token-serial":[""],"mfa-token-pin":[""],lock_enabled:[{value:!1,disabled:this.editing}],lock_mode:["COMPLIANCE"],lock_retention_period_days:u,lock_retention_period_years:u})}ngOnInit(){this.rgwUserService.enumerate().subscribe(l=>{this.owners=l.sort()}),this.editing||this.rgwSiteService.get("placement-targets").subscribe(l=>{this.zonegroup=l.zonegroup,r.forEach(l.placement_targets,l=>{l.description=`${l.name} (${this.i18n("pool")}: ${l.data_pool})`,this.placementTargets.push(l)}),1===this.placementTargets.length&&this.bucketForm.get("placement-target").setValue(this.placementTargets[0].name)}),this.route.params.subscribe(l=>{if(!l.hasOwnProperty("bid"))return;const n=decodeURIComponent(l.bid);this.loading=!0,this.rgwBucketService.get(n).subscribe(l=>{this.loading=!1;const n=r.clone(this.bucketForm.getRawValue());let u=r.pick(l,r.keys(n));u["placement-target"]=l.placement_rule,u=r.merge(n,u),this.bucketForm.setValue(u),this.editing&&(this.setVersioningStatus(l.versioning),this.isVersioningAlreadyEnabled=this.isVersioningEnabled,this.setMfaDeleteStatus(l.mfa_delete),this.isMfaDeleteAlreadyEnabled=this.isMfaDeleteEnabled,this.setMfaDeleteValidators())})})}goToListView(){this.router.navigate(["/rgw/bucket"])}submit(){if(this.bucketForm.pristine)return void this.goToListView();const l=this.bucketForm.value;if(this.editing){const n=this.getVersioningStatus(),u=this.getMfaDeleteStatus();this.rgwBucketService.update(l.bid,l.id,l.owner,n,u,l["mfa-token-serial"],l["mfa-token-pin"],l.lock_mode,l.lock_retention_period_days,l.lock_retention_period_years).subscribe(()=>{this.notificationService.show(y.a.success,this.i18n('Updated Object Gateway bucket "{{bid}}".',l)),this.goToListView()},()=>{this.bucketForm.setErrors({cdSubmitButton:!0})})}else this.rgwBucketService.create(l.bid,l.owner,this.zonegroup,l["placement-target"],l.lock_enabled,l.lock_mode,l.lock_retention_period_days,l.lock_retention_period_years).subscribe(()=>{this.notificationService.show(y.a.success,this.i18n('Created Object Gateway bucket "{{bid}}"',l)),this.goToListView()},()=>{this.bucketForm.setErrors({cdSubmitButton:!0})})}bucketNameValidator(){const l=this.rgwBucketService;return n=>new Promise(u=>{if(n.pristine||""===n.value)return void u(null);const e=[];e.push(l=>!I.a.ip()(l)),e.push(l=>r.inRange(l.length,3,64)),e.push(l=>{const n=r.split(l,".");return r.every(n,l=>l===r.toLower(l)&&!l.includes("_")&&!!/[0-9a-z-]/.test(l)&&r.every([0,l.length],n=>/[a-z]/.test(l[n])||r.isInteger(r.parseInt(l[n]))))}),r.every(e,l=>l(n.value))?l.exists(n.value).subscribe(l=>{u(l?{bucketNameExists:!0}:null)}):u({bucketNameInvalid:!0})})}areMfaCredentialsRequired(){return this.isMfaDeleteEnabled!==this.isMfaDeleteAlreadyEnabled||this.isMfaDeleteAlreadyEnabled&&this.isVersioningEnabled!==this.isVersioningAlreadyEnabled}setMfaDeleteValidators(){const l=this.bucketForm.get("mfa-token-serial"),n=this.bucketForm.get("mfa-token-pin");this.areMfaCredentialsRequired()?(l.setValidators(d.B.required),n.setValidators(d.B.required)):(l.setValidators(null),n.setValidators(null)),l.updateValueAndValidity(),n.updateValueAndValidity()}getVersioningStatus(){return this.isVersioningEnabled?N.ENABLED:N.SUSPENDED}setVersioningStatus(l){this.isVersioningEnabled=l===N.ENABLED}updateVersioning(){this.isVersioningEnabled=!this.isVersioningEnabled,this.setMfaDeleteValidators()}getMfaDeleteStatus(){return this.isMfaDeleteEnabled?E.ENABLED:E.DISABLED}setMfaDeleteStatus(l){this.isMfaDeleteEnabled=l===E.ENABLED}updateMfaDelete(){this.isMfaDeleteEnabled=!this.isMfaDeleteEnabled,this.setMfaDeleteValidators()}}var T=u("HDdC"),V=u("+fVR"),x=u("0+/T"),S=u("uIqm"),D=u("vCyI"),F=u("aexS"),j=u("EgGo");const P=new j.a("rgw/bucket");class B extends V.a{constructor(l,n,u,e,t,i,a){super(),this.authStorageService=l,this.rgwBucketService=n,this.bsModalService=u,this.i18n=e,this.urlBuilder=t,this.actionLabels=i,this.ngZone=a,this.columns=[],this.buckets=[],this.selection=new D.a,this.isStale=!1,this.permission=this.authStorageService.getPermissions().rgw,this.columns=[{name:this.i18n("Name"),prop:"bid",flexGrow:1},{name:this.i18n("Owner"),prop:"owner",flexGrow:1}];const o=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().bid)}`;this.tableActions=[{permission:"create",icon:R.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE,canBePrimary:l=>!l.hasSelection},{permission:"update",icon:R.a.edit,routerLink:()=>this.urlBuilder.getEdit(o()),name:this.actionLabels.EDIT},{permission:"delete",icon:R.a.destroy,click:()=>this.deleteAction(),disable:()=>!this.selection.hasSelection,name:this.actionLabels.DELETE,canBePrimary:l=>l.hasMultiSelection}],this.timeConditionReached()}timeConditionReached(){clearTimeout(this.staleTimeout),this.ngZone.runOutsideAngular(()=>{this.staleTimeout=window.setTimeout(()=>{this.ngZone.run(()=>{this.isStale=!0})},1e4)})}getBucketList(l){this.isStale=!1,this.timeConditionReached(),this.rgwBucketService.list().subscribe(l=>{this.buckets=l},()=>{l.error()})}updateSelection(l){this.selection=l}deleteAction(){this.bsModalService.show(x.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"bucket":"buckets"),itemNames:this.selection.selected.map(l=>l.bid),submitActionObservable:()=>new T.a(l=>{Object(g.a)(this.selection.selected.map(l=>this.rgwBucketService.delete(l.bid))).subscribe(null,n=>{l.error(n),this.table.refreshBtn()},()=>{l.complete(),this.table.refreshBtn()})})}})}}let A=(()=>{let l=class{constructor(l){this.http=l,this.url="api/rgw/daemon"}list(){return this.http.get(this.url)}get(l){return this.http.get(`${this.url}/${l}`)}};return l.ngInjectableDef=e["ɵɵdefineInjectable"]({factory:function(){return new l(e["ɵɵinject"](m.c))},token:l,providedIn:h.a}),l=c.__decorate([v.a,c.__metadata("design:paramtypes",[m.c])],l),l})();var M=u("85J/");class U extends V.a{constructor(l,n,u,e,t){super(),this.rgwDaemonService=l,this.authStorageService=n,this.cephShortVersionPipe=u,this.i18n=e,this.rgwSiteService=t,this.columns=[],this.daemons=[]}ngOnInit(){this.grafanaPermission=this.authStorageService.getPermissions().grafana,this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:2},{name:this.i18n("Hostname"),prop:"server_hostname",flexGrow:2},{name:this.i18n("Version"),prop:"version",flexGrow:1,pipe:this.cephShortVersionPipe}],this.rgwSiteService.get("realms").subscribe(l=>this.isMultiSite=l.length>0)}getDaemonList(l){this.rgwDaemonService.list().subscribe(l=>{this.daemons=l},()=>{l.error()})}}var O=u("GyhO"),L=u("aXbf"),z=function(l){return l.USERS="users",l.BUCKETS="buckets",l.METADATA="metadata",l.USAGE="usage",l.ZONE="zone",l}({});let G=(()=>{class l{static getAll(){return Object.values(l.capabilities)}}return l.capabilities=z,l})();class K{constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.editing=!0,this.types=[],this.resource=this.i18n("capability"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({type:[null,[d.B.required]],perm:[null,[d.B.required]]})}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.ADD}setValues(l,n){this.formGroup.setValue({type:l,perm:n})}setCapabilities(l){const n=[];l.forEach(l=>{n.push(l.type)}),this.types=[],G.getAll().forEach(l=>{-1===r.indexOf(n,l)&&this.types.push(l)})}onSubmit(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()}}class ${constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.viewing=!0,this.userCandidates=[],this.resource=this.i18n("S3 Key"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({user:[null,[d.B.required]],generate_key:[!0],access_key:[null,[I.a.requiredIf({generate_key:!1})]],secret_key:[null,[I.a.requiredIf({generate_key:!1})]]})}setViewing(l=!0){this.viewing=l,this.action=this.viewing?this.actionLabels.SHOW:this.actionLabels.CREATE}setValues(l,n,u){this.formGroup.setValue({user:l,generate_key:r.isEmpty(n),access_key:n,secret_key:u})}setUserCandidates(l){this.userCandidates=l}onSubmit(){this.submitAction.emit(this.formGroup.value),this.bsModalRef.hide()}}class Z{}class Q{constructor(l,n,u,t){this.formBuilder=l,this.bsModalRef=n,this.i18n=u,this.actionLabels=t,this.submitAction=new e.EventEmitter,this.editing=!0,this.subusers=[],this.resource=this.i18n("Subuser"),this.createForm()}createForm(){this.formGroup=this.formBuilder.group({uid:[null],subuid:[null,[d.B.required,this.subuserValidator()]],perm:[null,[d.B.required]],generate_secret:[!0],secret_key:[null,[I.a.requiredIf({generate_secret:!1})]]})}subuserValidator(){const l=this;return n=>l.editing?null:Object(I.b)(n.value)?null:l.subusers.some(u=>r.isEqual(l.getSubuserName(u.id),n.value))?{subuserIdExists:!0}:null}getSubuserName(l){if(r.isEmpty(l))return l;const n=l.match(/([^:]+)(:(.+))?/);return r.isUndefined(n[3])?n[1]:n[3]}setEditing(l=!0){this.editing=l,this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE}setValues(l,n="",u=""){this.formGroup.setValue({uid:l,subuid:this.getSubuserName(n),perm:u,generate_secret:!0,secret_key:null})}setSubusers(l){this.subusers=l}onSubmit(){const l=this.formGroup.value,n=new Z;n.id=`${l.uid}:${l.subuid}`,n.permissions=l.perm,n.generate_secret=l.generate_secret,n.secret_key=l.secret_key,this.submitAction.emit(n),this.bsModalRef.hide()}}class Y{constructor(l,n,u){this.bsModalRef=l,this.i18n=n,this.actionLabels=u,this.resource=this.i18n("Swift Key"),this.action=this.actionLabels.SHOW}setValues(l,n){this.user=l,this.secret_key=n}}class W{constructor(l,n,u,e,t,i,a,o){this.formBuilder=l,this.route=n,this.router=u,this.rgwUserService=e,this.bsModalService=t,this.notificationService=i,this.i18n=a,this.actionLabels=o,this.editing=!1,this.error=!1,this.loading=!1,this.submitObservables=[],this.icons=R.a,this.subusers=[],this.s3Keys=[],this.swiftKeys=[],this.capabilities=[],this.resource=this.i18n("user"),this.subuserLabel=this.i18n("subuser"),this.s3keyLabel=this.i18n("S3 Key"),this.capabilityLabel=this.i18n("capability"),this.createForm()}createForm(){this.userForm=this.formBuilder.group({uid:[null,[d.B.required],[I.a.unique(this.rgwUserService.exists,this.rgwUserService)]],display_name:[null,[d.B.required]],email:[null,[I.a.email],[I.a.unique(this.rgwUserService.emailExists,this.rgwUserService)]],max_buckets_mode:[1],max_buckets:[1e3,[I.a.requiredIf({max_buckets_mode:"1"}),I.a.number(!1),d.B.min(1)]],suspended:[!1],generate_key:[!0],access_key:[null,[I.a.requiredIf({generate_key:!1})]],secret_key:[null,[I.a.requiredIf({generate_key:!1})]],user_quota_enabled:[!1],user_quota_max_size_unlimited:[!0],user_quota_max_size:[null,[I.a.composeIf({user_quota_enabled:!0,user_quota_max_size_unlimited:!1},[d.B.required,this.quotaMaxSizeValidator])]],user_quota_max_objects_unlimited:[!0],user_quota_max_objects:[null,[d.B.min(0),I.a.requiredIf({user_quota_enabled:!0,user_quota_max_objects_unlimited:!1})]],bucket_quota_enabled:[!1],bucket_quota_max_size_unlimited:[!0],bucket_quota_max_size:[null,[I.a.composeIf({bucket_quota_enabled:!0,bucket_quota_max_size_unlimited:!1},[d.B.required,this.quotaMaxSizeValidator])]],bucket_quota_max_objects_unlimited:[!0],bucket_quota_max_objects:[null,[d.B.min(0),I.a.requiredIf({bucket_quota_enabled:!0,bucket_quota_max_objects_unlimited:!1})]]})}ngOnInit(){this.editing=this.router.url.startsWith(`/rgw/user/${t.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.route.params.subscribe(l=>{if(!l.hasOwnProperty("uid"))return;const n=decodeURIComponent(l.uid);this.loading=!0;const u=[];u.push(this.rgwUserService.get(n)),u.push(this.rgwUserService.getQuota(n)),Object(g.a)(u).subscribe(l=>{this.loading=!1;const n=r.clone(this.userForm.value);let u=r.pick(l[0],r.keys(this.userForm.value));switch(u.max_buckets){case-1:u.max_buckets_mode=-1,u.max_buckets="";break;case 0:u.max_buckets_mode=0,u.max_buckets="";break;default:u.max_buckets_mode=1}["user","bucket"].forEach(n=>{const e=l[1][n+"_quota"];u[n+"_quota_enabled"]=e.enabled,e.max_size<0?(u[n+"_quota_max_size_unlimited"]=!0,u[n+"_quota_max_size"]=null):(u[n+"_quota_max_size_unlimited"]=!1,u[n+"_quota_max_size"]=`${e.max_size} B`),e.max_objects<0?(u[n+"_quota_max_objects_unlimited"]=!0,u[n+"_quota_max_objects"]=null):(u[n+"_quota_max_objects_unlimited"]=!1,u[n+"_quota_max_objects"]=e.max_objects)}),u=r.merge(n,u),this.userForm.setValue(u),this.subusers=l[0].subusers,this.s3Keys=l[0].keys,this.swiftKeys=l[0].swift_keys;const e={"read, write":"*"};l[0].caps.forEach(l=>{l.perm in e&&(l.perm=e[l.perm])}),this.capabilities=l[0].caps},l=>{this.error=l})})}goToListView(){this.router.navigate(["/rgw/user"])}onSubmit(){let l;if(this.userForm.pristine)return void this.goToListView();const n=this.userForm.getValue("uid");if(this.editing){if(this._isGeneralDirty()){const l=this._getUpdateArgs();this.submitObservables.push(this.rgwUserService.update(n,l))}l=this.i18n('Updated Object Gateway user "{{uid}}"',{uid:n})}else{const u=this._getCreateArgs();this.submitObservables.push(this.rgwUserService.create(u)),l=this.i18n('Created Object Gateway user "{{uid}}"',{uid:n})}if(this._isUserQuotaDirty()){const l=this._getUserQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(n,l))}if(this._isBucketQuotaDirty()){const l=this._getBucketQuotaArgs();this.submitObservables.push(this.rgwUserService.updateQuota(n,l))}Object(O.a)(...this.submitObservables).subscribe({error:()=>{this.userForm.setErrors({cdSubmitButton:!0})},complete:()=>{this.notificationService.show(y.a.success,l),this.goToListView()}})}quotaMaxSizeValidator(l){return Object(I.b)(l.value)?null:null===RegExp("^(\\d+(\\.\\d+)?)\\s*(B|K(B|iB)?|M(B|iB)?|G(B|iB)?|T(B|iB)?)?$","i").exec(l.value)?{quotaMaxSize:!0}:(new L.a).toBytes(l.value)<1024?{quotaMaxSize:!0}:null}setSubuser(l,n){const u={"full-control":"full","read-write":"readwrite"},e=this.userForm.getValue("uid");this.submitObservables.push(this.rgwUserService.createSubuser(e,{subuser:l.id,access:l.permissions in u?u[l.permissions]:l.permissions,key_type:"swift",secret_key:l.secret_key,generate_secret:l.generate_secret?"true":"false"})),r.isNumber(n)?this.subusers[n]=l:(this.subusers.push(l),this.swiftKeys.push({user:l.id,secret_key:l.generate_secret?"Apply your changes first...":l.secret_key})),this.userForm.markAsDirty()}deleteSubuser(l){const n=this.subusers[l];this.submitObservables.push(this.rgwUserService.deleteSubuser(this.userForm.getValue("uid"),n.id)),this.s3Keys=this.s3Keys.filter(l=>l.user!==n.id),this.swiftKeys=this.swiftKeys.filter(l=>l.user!==n.id),this.subusers.splice(l,1),this.userForm.markAsDirty()}setCapability(l,n){const u=this.userForm.getValue("uid");if(r.isNumber(n)){const e=this.capabilities[n];this.submitObservables.push(this.rgwUserService.deleteCapability(u,e.type,e.perm)),this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities[n]=l}else this.submitObservables.push(this.rgwUserService.addCapability(u,l.type,l.perm)),this.capabilities.push(l);this.userForm.markAsDirty()}deleteCapability(l){const n=this.capabilities[l];this.submitObservables.push(this.rgwUserService.deleteCapability(this.userForm.getValue("uid"),n.type,n.perm)),this.capabilities.splice(l,1),this.userForm.markAsDirty()}hasAllCapabilities(){return!r.difference(G.getAll(),r.map(this.capabilities,"type")).length}setS3Key(l,n){if(r.isNumber(n));else{const n=l.user.match(/([^:]+)(:(.+))?/),u=n[1],e={subuser:n[2]?n[3]:"",generate_key:l.generate_key?"true":"false"};"false"===e.generate_key&&(r.isNil(l.access_key)||(e.access_key=l.access_key),r.isNil(l.secret_key)||(e.secret_key=l.secret_key)),this.submitObservables.push(this.rgwUserService.addS3Key(u,e)),this.s3Keys.push({user:l.user,access_key:l.generate_key?"Apply your changes first...":l.access_key,secret_key:l.generate_key?"Apply your changes first...":l.secret_key})}this.userForm.markAsDirty()}deleteS3Key(l){const n=this.s3Keys[l];this.submitObservables.push(this.rgwUserService.deleteS3Key(this.userForm.getValue("uid"),n.access_key)),this.s3Keys.splice(l,1),this.userForm.markAsDirty()}showSubuserModal(l){const n=this.userForm.getValue("uid"),u=this.bsModalService.show(Q);if(r.isNumber(l)){const e=this.subusers[l];u.content.setEditing(),u.content.setValues(n,e.id,e.permissions)}else u.content.setEditing(!1),u.content.setValues(n),u.content.setSubusers(this.subusers);u.content.submitAction.subscribe(n=>{this.setSubuser(n,l)})}showS3KeyModal(l){const n=this.bsModalService.show($);if(r.isNumber(l)){const u=this.s3Keys[l];n.content.setViewing(),n.content.setValues(u.user,u.access_key,u.secret_key)}else{const l=this._getS3KeyUserCandidates();n.content.setViewing(!1),n.content.setUserCandidates(l),n.content.submitAction.subscribe(l=>{this.setS3Key(l)})}}showSwiftKeyModal(l){const n=this.bsModalService.show(Y),u=this.swiftKeys[l];n.content.setValues(u.user,u.secret_key)}showCapabilityModal(l){const n=this.bsModalService.show(K);if(r.isNumber(l)){const u=this.capabilities[l];n.content.setEditing(),n.content.setValues(u.type,u.perm)}else n.content.setEditing(!1),n.content.setCapabilities(this.capabilities);n.content.submitAction.subscribe(n=>{this.setCapability(n,l)})}_isGeneralDirty(){return["display_name","email","max_buckets_mode","max_buckets","suspended"].some(l=>this.userForm.get(l).dirty)}_isUserQuotaDirty(){return["user_quota_enabled","user_quota_max_size_unlimited","user_quota_max_size","user_quota_max_objects_unlimited","user_quota_max_objects"].some(l=>this.userForm.get(l).dirty)}_isBucketQuotaDirty(){return["bucket_quota_enabled","bucket_quota_max_size_unlimited","bucket_quota_max_size","bucket_quota_max_objects_unlimited","bucket_quota_max_objects"].some(l=>this.userForm.get(l).dirty)}_getCreateArgs(){const l={uid:this.userForm.getValue("uid"),display_name:this.userForm.getValue("display_name"),suspended:this.userForm.getValue("suspended"),email:"",max_buckets:this.userForm.getValue("max_buckets"),generate_key:this.userForm.getValue("generate_key"),access_key:"",secret_key:""},n=this.userForm.getValue("email");r.isString(n)&&n.length>0&&r.merge(l,{email:n}),this.userForm.getValue("generate_key")||r.merge(l,{generate_key:!1,access_key:this.userForm.getValue("access_key"),secret_key:this.userForm.getValue("secret_key")});const u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return r.includes([-1,0],u)&&r.merge(l,{max_buckets:u}),l}_getUpdateArgs(){const l={},n=["display_name","email","max_buckets","suspended"];for(const e of n)l[e]=this.userForm.getValue(e);const u=parseInt(this.userForm.getValue("max_buckets_mode"),10);return r.includes([-1,0],u)&&(l.max_buckets=u),l}_getUserQuotaArgs(){const l={quota_type:"user",enabled:this.userForm.getValue("user_quota_enabled"),max_size_kb:-1,max_objects:-1};if(!this.userForm.getValue("user_quota_max_size_unlimited")){const n=(new L.a).toBytes(this.userForm.getValue("user_quota_max_size"));l.max_size_kb=(n/1024).toFixed(0)}return this.userForm.getValue("user_quota_max_objects_unlimited")||(l.max_objects=this.userForm.getValue("user_quota_max_objects")),l}_getBucketQuotaArgs(){const l={quota_type:"bucket",enabled:this.userForm.getValue("bucket_quota_enabled"),max_size_kb:-1,max_objects:-1};if(!this.userForm.getValue("bucket_quota_max_size_unlimited")){const n=(new L.a).toBytes(this.userForm.getValue("bucket_quota_max_size"));l.max_size_kb=(n/1024).toFixed(0)}return this.userForm.getValue("bucket_quota_max_objects_unlimited")||(l.max_objects=this.userForm.getValue("bucket_quota_max_objects")),l}_getS3KeyUserCandidates(){let l=[];const n=this.userForm.getValue("uid");return r.isString(n)&&!r.isEmpty(n)&&l.push(n),this.subusers.forEach(n=>{l.push(n.id)}),this.s3Keys.forEach(n=>{l.push(n.user)}),l=r.uniq(l),l}}var J=u("x38r");const X=new j.a("rgw/user");class H extends V.a{constructor(l,n,u,e,t,i,a){super(),this.authStorageService=l,this.rgwUserService=n,this.bsModalService=u,this.i18n=e,this.urlBuilder=t,this.actionLabels=i,this.ngZone=a,this.columns=[],this.users=[],this.selection=new D.a,this.isStale=!1,this.permission=this.authStorageService.getPermissions().rgw,this.columns=[{name:this.i18n("Username"),prop:"uid",flexGrow:1},{name:this.i18n("Full name"),prop:"display_name",flexGrow:1},{name:this.i18n("Email address"),prop:"email",flexGrow:1},{name:this.i18n("Suspended"),prop:"suspended",flexGrow:1,cellClass:"text-center",cellTransformation:J.a.checkIcon},{name:this.i18n("Max. buckets"),prop:"max_buckets",flexGrow:1,cellTransformation:J.a.map,customTemplateConfig:{"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}}];const o=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().uid)}`;this.tableActions=[{permission:"create",icon:R.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE,canBePrimary:l=>!l.hasSelection},{permission:"update",icon:R.a.edit,routerLink:()=>this.urlBuilder.getEdit(o()),name:this.actionLabels.EDIT},{permission:"delete",icon:R.a.destroy,click:()=>this.deleteAction(),disable:()=>!this.selection.hasSelection,name:this.actionLabels.DELETE,canBePrimary:l=>l.hasMultiSelection}],this.timeConditionReached()}timeConditionReached(){clearTimeout(this.staleTimeout),this.ngZone.runOutsideAngular(()=>{this.staleTimeout=window.setTimeout(()=>{this.ngZone.run(()=>{this.isStale=!0})},1e4)})}getUserList(l){this.isStale=!1,this.timeConditionReached(),this.rgwUserService.list().subscribe(l=>{this.users=l},()=>{l.error()})}updateSelection(l){this.selection=l}deleteAction(){this.bsModalService.show(x.a,{initialState:{itemDescription:this.i18n(this.selection.hasSingleSelection?"user":"users"),itemNames:this.selection.selected.map(l=>l.uid),submitActionObservable:()=>new T.a(l=>{Object(g.a)(this.selection.selected.map(l=>this.rgwUserService.delete(l.uid))).subscribe(null,n=>{l.error(n),this.table.refreshBtn()},()=>{l.complete(),this.table.refreshBtn()})})}})}}class ll{}const nl={breadcrumbs:"Daemons"},ul={breadcrumbs:"Users"},el={breadcrumbs:t.a.CREATE},tl={breadcrumbs:t.a.EDIT},il={breadcrumbs:"Buckets"},al={breadcrumbs:t.a.CREATE},ol={breadcrumbs:t.a.EDIT},sl={breadcrumbs:"Object Gateway"};class dl{}var rl=u("MdoF"),cl=u("ES0t"),ml=u("Xg1U"),gl=u("z5nN"),pl=u("iutN"),fl=u("pMnS"),vl=u("EEJc"),hl=u("PEr+"),bl=u("a40w"),Cl=u("hfeG"),_l=u("2ZVE"),Rl=u("a278"),yl=u("insk"),kl=u("cUpR"),Il=u("20UP"),wl=u("GiVz"),El=u("pKUh"),Nl=u("sLuX"),ql=u("FSuO"),Tl=u("a0VL"),Vl=u("j8L6"),xl=u("b5OY"),Sl=u("pxLl"),Dl=u("SVse");class Fl{constructor(l,n){this.rgwDaemonService=l,this.authStorageService=n,this.serviceId="",this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.selection&&(this.serviceId=this.selection.id)}getMetaData(){r.isEmpty(this.serviceId)||this.rgwDaemonService.get(this.serviceId).subscribe(l=>{this.metadata=l.rgw_metadata})}}var jl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Pl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](1,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","x5ARzZtmk"]],null,null,null,Rl.b,Rl.a)),e["ɵdid"](3,638976,null,0,yl.a,[o.a,kl.b,Il.a,a.a,wl.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){var u=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"rgw-instance-detail?var-rgw_servers=rgw."+u.serviceId,"one","x5ARzZtmk")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass,e["ɵnov"](n,1).role,e["ɵnov"](n,1).ariaLabelledby)}))}function Bl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"tabset",[],[[2,"tab-container",null]],null,null,El.b,El.a)),e["ɵdid"](1,180224,null,0,_l.e,[_l.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](3,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],(function(l,n,u){var e=!0;return"fetchData"===n&&(e=!1!==l.component.getMetaData()&&e),e}),Nl.b,Nl.a)),e["ɵdid"](5,638976,null,0,ql.a,[Tl.a],{data:[0,"data"]},{fetchData:"fetchData"}),(l()(),e["ɵeld"](6,0,null,0,3,"tab",[["heading","Performance Counters"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](7,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](8,0,null,null,1,"cd-table-performance-counter",[["serviceType","rgw"]],null,null,null,Vl.b,Vl.a)),e["ɵdid"](9,114688,null,0,xl.a,[Sl.a,wl.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,Pl)),e["ɵdid"](11,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.metadata),l(n,7,0,"Performance Counters"),l(n,9,0,"rgw",u.serviceId),l(n,11,0,u.grafanaPermission.read)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby),l(n,6,0,e["ɵnov"](n,7).id,e["ɵnov"](n,7).active,e["ɵnov"](n,7).addClass,e["ɵnov"](n,7).role,e["ɵnov"](n,7).ariaLabelledby)}))}function Al(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Bl)),e["ɵdid"](1,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,1,0,n.component.selection)}),null)}function Ml(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-daemon-details",[],null,null,null,Al,jl)),e["ɵdid"](1,573440,null,0,Fl,[A,F.a],null,null)],null,null)}var Ul=e["ɵccf"]("cd-rgw-daemon-details",Fl,Ml,{selection:"selection"},{},[]),Ol=u("iExv"),Ll=u("o4+5");class zl{constructor(){}}var Gl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Kl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function $l(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.selection.bucket_quota.max_size));l(n,1,0,t)}))}function Zl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Ql(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.selection.bucket_quota.max_objects)}))}function Yl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](3,0,null,null,21,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,20,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,Kl)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,$l)),e["ɵdid"](17,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](18,0,null,null,6,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,Zl)),e["ɵdid"](22,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ql)),e["ɵdid"](24,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,u.selection.bucket_quota.max_size<=-1),l(n,17,0,u.selection.bucket_quota.max_size>-1),l(n,22,0,u.selection.bucket_quota.max_objects<=-1),l(n,24,0,u.selection.bucket_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,1),u.selection.bucket_quota.enabled));l(n,9,0,t)}))}function Wl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mode"])),(l()(),e["ɵeld"](4,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](5,null,["",""])),(l()(),e["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Days"])),(l()(),e["ɵeld"](9,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](10,null,["",""])),(l()(),e["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Years"])),(l()(),e["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](15,null,["",""]))],null,(function(l,n){var u=n.component;l(n,5,0,u.selection.lock_mode),l(n,10,0,u.selection.lock_retention_period_days),l(n,15,0,u.selection.lock_retention_period_years)}))}function Jl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,82,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,67,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,66,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](7,null,["",""])),(l()(),e["ɵeld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["ID"])),(l()(),e["ɵeld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](12,null,["",""])),(l()(),e["ɵeld"](13,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](14,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Owner"])),(l()(),e["ɵeld"](16,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](17,null,["",""])),(l()(),e["ɵeld"](18,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Index type"])),(l()(),e["ɵeld"](21,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](22,null,["",""])),(l()(),e["ɵeld"](23,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](24,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Placement rule"])),(l()(),e["ɵeld"](26,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](27,null,["",""])),(l()(),e["ɵeld"](28,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](29,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Marker"])),(l()(),e["ɵeld"](31,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](32,null,["",""])),(l()(),e["ɵeld"](33,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](34,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum marker"])),(l()(),e["ɵeld"](36,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](37,null,["",""])),(l()(),e["ɵeld"](38,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Version"])),(l()(),e["ɵeld"](41,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](42,null,["",""])),(l()(),e["ɵeld"](43,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](44,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Master version"])),(l()(),e["ɵeld"](46,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](47,null,["",""])),(l()(),e["ɵeld"](48,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](49,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Modification time"])),(l()(),e["ɵeld"](51,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](52,null,["",""])),e["ɵppd"](53,1),(l()(),e["ɵeld"](54,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](55,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Zonegroup"])),(l()(),e["ɵeld"](57,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](58,null,["",""])),(l()(),e["ɵeld"](59,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](60,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Versioning"])),(l()(),e["ɵeld"](62,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](63,null,["",""])),(l()(),e["ɵeld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["MFA Delete"])),(l()(),e["ɵeld"](67,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](68,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,Yl)),e["ɵdid"](70,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](71,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Locking"])),(l()(),e["ɵeld"](73,0,null,null,9,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](74,0,null,null,8,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](75,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](76,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](78,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](79,null,["",""])),e["ɵppd"](80,1),(l()(),e["ɵand"](16777216,null,null,1,null,Wl)),e["ɵdid"](82,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,70,0,u.selection.bucket_quota),l(n,82,0,u.selection.lock_enabled)}),(function(l,n){var u=n.component;l(n,7,0,u.selection.bid),l(n,12,0,u.selection.id),l(n,17,0,u.selection.owner),l(n,22,0,u.selection.index_type),l(n,27,0,u.selection.placement_rule),l(n,32,0,u.selection.marker),l(n,37,0,u.selection.max_marker),l(n,42,0,u.selection.ver),l(n,47,0,u.selection.master_ver);var t=e["ɵunv"](n,52,0,l(n,53,0,e["ɵnov"](n.parent.parent,0),u.selection.mtime));l(n,52,0,t),l(n,58,0,u.selection.zonegroup),l(n,63,0,u.selection.versioning),l(n,68,0,u.selection.mfa_delete);var i=e["ɵunv"](n,79,0,l(n,80,0,e["ɵnov"](n.parent.parent,1),u.selection.lock_enabled));l(n,79,0,i)}))}function Xl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,El.b,El.a)),e["ɵdid"](1,180224,null,0,_l.e,[_l.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](3,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Jl)),e["ɵdid"](5,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.selection)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby)}))}function Hl(l){return e["ɵvid"](0,[e["ɵpid"](0,Tl.a,[Dl.DatePipe]),e["ɵpid"](0,Ol.a,[wl.a]),e["ɵpid"](0,Ll.a,[L.a]),(l()(),e["ɵand"](16777216,null,null,1,null,Xl)),e["ɵdid"](4,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,4,0,n.component.selection)}),null)}function ln(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-bucket-details",[],null,null,null,Hl,Gl)),e["ɵdid"](1,49152,null,0,zl,[],null,null)],null,null)}var nn=e["ɵccf"]("cd-rgw-bucket-details",zl,ln,{selection:"selection"},{},[]),un=u("25BL"),en=u("FE24"),tn=u("z/SZ"),an=u("GS7A"),on=u("TJUb"),sn=u("Fgil");class dn{constructor(l,n,u){this.rgwUserService=l,this.bsModalService=n,this.i18n=u,this.keys=[],this.keysColumns=[],this.keysSelection=new D.a,this.icons=R.a}ngOnInit(){this.keysColumns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Type"),prop:"type",flexGrow:1}],this.maxBucketsMap={"-1":this.i18n("Disabled"),0:this.i18n("Unlimited")}}ngOnChanges(){this.selection&&(this.user=this.selection,this.user.subusers=r.sortBy(this.user.subusers,"id"),this.user.caps=r.sortBy(this.user.caps,"type"),this.rgwUserService.getQuota(this.user.uid).subscribe(l=>{r.extend(this.user,l)}),this.keys=[],this.user.keys&&this.user.keys.forEach(l=>{this.keys.push({id:this.keys.length+1,type:"S3",username:l.user,ref:l})}),this.user.swift_keys&&this.user.swift_keys.forEach(l=>{this.keys.push({id:this.keys.length+1,type:"Swift",username:l.user,ref:l})}),this.keys=r.sortBy(this.keys,"user"))}updateKeysSelection(l){this.keysSelection=l}showKeyModal(){const l=this.keysSelection.first(),n=this.bsModalService.show("S3"===l.type?$:Y);switch(l.type){case"S3":n.content.setViewing(),n.content.setValues(l.ref.user,l.ref.access_key,l.ref.secret_key);break;case"Swift":n.content.setValues(l.ref.user,l.ref.secret_key)}}}var rn=u("LqlI"),cn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email address"])),(l()(),e["ɵeld"](3,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){l(n,4,0,n.component.user.email)}))}function gn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," (",") "]))],null,(function(l,n){l(n,1,0,n.context.$implicit.id,n.context.$implicit.permissions)}))}function pn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Subusers"])),(l()(),e["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,gn)),e["ɵdid"](5,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.component.user.subusers)}),null)}function fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," (",") "]))],null,(function(l,n){l(n,1,0,n.context.$implicit.type,n.context.$implicit.perm)}))}function vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Capabilities"])),(l()(),e["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fn)),e["ɵdid"](5,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,5,0,n.component.user.caps)}),null)}function hn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function bn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.user.user_quota.max_size));l(n,1,0,t)}))}function _n(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function Rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function yn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.user.user_quota.max_objects)}))}function kn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User quota"])),(l()(),e["ɵeld"](3,0,null,null,25,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,24,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,hn)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bn)),e["ɵdid"](17,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Cn)),e["ɵdid"](19,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](20,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,_n)),e["ɵdid"](24,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Rn)),e["ɵdid"](26,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,yn)),e["ɵdid"](28,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,!u.user.user_quota.enabled),l(n,17,0,u.user.user_quota.enabled&&u.user.user_quota.max_size<=-1),l(n,19,0,u.user.user_quota.enabled&&u.user.user_quota.max_size>-1),l(n,24,0,!u.user.user_quota.enabled),l(n,26,0,u.user.user_quota.enabled&&u.user.user_quota.max_objects<=-1),l(n,28,0,u.user.user_quota.enabled&&u.user.user_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,0),u.user.user_quota.enabled));l(n,9,0,t)}))}function In(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function wn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function En(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "])),e["ɵppd"](2,1)],null,(function(l,n){var u=n.component,t=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent.parent.parent.parent,2),u.user.bucket_quota.max_size));l(n,1,0,t)}))}function Nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["-"]))],null,null)}function qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited"]))],null,null)}function Tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.user.bucket_quota.max_objects)}))}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](3,0,null,null,25,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,24,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](8,0,null,null,2,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,["",""])),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum size"])),(l()(),e["ɵand"](16777216,null,null,1,null,In)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,wn)),e["ɵdid"](17,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,En)),e["ɵdid"](19,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](20,0,null,null,8,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](21,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum objects"])),(l()(),e["ɵand"](16777216,null,null,1,null,Nn)),e["ɵdid"](24,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,qn)),e["ɵdid"](26,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Tn)),e["ɵdid"](28,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,15,0,!u.user.bucket_quota.enabled),l(n,17,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_size<=-1),l(n,19,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_size>-1),l(n,24,0,!u.user.bucket_quota.enabled),l(n,26,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_objects<=-1),l(n,28,0,u.user.bucket_quota.enabled&&u.user.bucket_quota.max_objects>-1)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent.parent.parent,0),u.user.bucket_quota.enabled));l(n,9,0,t)}))}function xn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,40,"div",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,35,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,34,"tbody",[],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](6,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(l()(),e["ɵted"](7,null,["",""])),(l()(),e["ɵeld"](8,0,null,null,4,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](11,0,null,null,1,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](12,null,["",""])),(l()(),e["ɵand"](16777216,null,null,1,null,mn)),e["ɵdid"](14,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](15,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Suspended"])),(l()(),e["ɵeld"](18,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](19,null,["",""])),e["ɵppd"](20,1),(l()(),e["ɵeld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["System"])),(l()(),e["ɵeld"](24,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](25,null,["",""])),e["ɵppd"](26,1),(l()(),e["ɵeld"](27,0,null,null,5,"tr",[],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Maximum buckets"])),(l()(),e["ɵeld"](30,0,null,null,2,"td",[],null,null,null,null,null)),(l()(),e["ɵted"](31,null,["",""])),e["ɵppd"](32,2),(l()(),e["ɵand"](16777216,null,null,1,null,pn)),e["ɵdid"](34,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vn)),e["ɵdid"](36,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,kn)),e["ɵdid"](38,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vn)),e["ɵdid"](40,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,14,0,null==u.user.email?null:u.user.email.length),l(n,34,0,u.user.subusers&&u.user.subusers.length),l(n,36,0,u.user.caps&&u.user.caps.length),l(n,38,0,u.user.user_quota),l(n,40,0,u.user.bucket_quota)}),(function(l,n){var u=n.component;l(n,7,0,u.user.uid),l(n,12,0,u.user.display_name);var t=e["ɵunv"](n,19,0,l(n,20,0,e["ɵnov"](n.parent.parent,0),u.user.suspended));l(n,19,0,t);var i=e["ɵunv"](n,25,0,l(n,26,0,e["ɵnov"](n.parent.parent,0),"true"===u.user.system));l(n,25,0,i);var a=e["ɵunv"](n,31,0,l(n,32,0,e["ɵnov"](n.parent.parent,1),u.user.max_buckets,u.maxBucketsMap));l(n,31,0,a)}))}function Sn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"tab",[["heading","Keys"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](1,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,12,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["selectionType","multi"]],null,[[null,"updateSelection"]],(function(l,n,u){var e=!0;return"updateSelection"===n&&(e=!1!==l.component.updateKeysSelection(u)&&e),e}),un.b,un.a)),e["ɵdid"](3,2867200,null,0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),e["ɵeld"](4,0,null,1,10,"div",[["class","table-actions"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,16777216,null,null,9,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),e["ɵprd"](512,null,en.f,en.f,[]),e["ɵdid"](7,212992,null,0,en.c,[e.ElementRef,e.Renderer2,e.ViewContainerRef,tn.a,en.f,en.a,an.b],null,null),(l()(),e["ɵeld"](8,0,null,null,6,"button",[["class","btn btn-secondary"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showKeyModal()&&e),e}),null,null)),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Show"]))],(function(l,n){var u=n.component;l(n,1,0,"Keys"),l(n,3,0,u.keys,u.keysColumns,"flex","true","multi"),l(n,7,0);var e=l(n,12,0,u.icons.show);l(n,11,0,e)}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass,e["ɵnov"](n,1).role,e["ɵnov"](n,1).ariaLabelledby),l(n,5,0,e["ɵnov"](n,7).dropup,e["ɵnov"](n,7).isOpen,e["ɵnov"](n,7).isOpen&&e["ɵnov"](n,7).isBs4),l(n,8,0,!u.keysSelection.hasSingleSelection)}))}function Dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,El.b,El.a)),e["ɵdid"](1,180224,null,0,_l.e,[_l.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](3,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,xn)),e["ɵdid"](5,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,Sn)),e["ɵdid"](7,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.user),l(n,7,0,u.keys.length)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby)}))}function Fn(l){return e["ɵvid"](0,[e["ɵpid"](0,Ol.a,[wl.a]),e["ɵpid"](0,on.a,[]),e["ɵpid"](0,sn.a,[L.a]),e["ɵqud"](671088640,1,{accessKeyTpl:0}),e["ɵqud"](671088640,2,{secretKeyTpl:0}),(l()(),e["ɵand"](16777216,null,null,1,null,Dn)),e["ɵdid"](6,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,6,0,n.component.selection)}),null)}function jn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-details",[],null,null,null,Fn,cn)),e["ɵdid"](1,638976,null,0,dn,[_.a,rn.b,wl.a],null,null)],(function(l,n){l(n,1,0)}),null)}var Pn=e["ɵccf"]("cd-rgw-user-details",dn,jn,{selection:"selection"},{},[]),Bn=u("8xTl"),An=u("ajRT"),Mn=u("mXUL"),Un=u("+gVj"),On=u("D4zM"),Ln=u("OcYo"),zn=u("EApP"),Gn=u("KVJa"),Kn=u("Z21x"),$n=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Zn(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵeld"](2,0,null,null,49,"cd-modal",[],null,null,null,vl.c,vl.b)),e["ɵdid"](3,49152,null,0,An.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," "," "])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,43,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,39,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,38,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,12).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,12).onReset()&&t),t}),null,null)),e["ɵdid"](11,16384,null,0,d.G,[],null,null),e["ɵdid"](12,4210688,null,0,d.t,[[8,null],[8,null]],null,null),e["ɵprd"](2048,null,d.d,null,[d.t]),e["ɵdid"](14,16384,null,0,d.s,[[4,d.d]],null,null),(l()(),e["ɵeld"](15,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](16,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](19,0,null,0,1,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](21,0,null,0,7,"div",[["class","cd-col-form-inpu"]],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,6,"input",[["class","form-control"],["id","user"],["name","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0,i=l.component;return"input"===n&&(t=!1!==e["ɵnov"](l,23)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,23).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,23)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,23)._compositionEnd(u.target.value)&&t),"ngModelChange"===n&&(t=!1!==(i.user=u)&&t),t}),null,null)),e["ɵdid"](23,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](25,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),e["ɵprd"](2048,null,d.q,null,[d.u]),e["ɵdid"](27,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](28,16384,null,0,Un.h,[[3,d.d],Un.a],null,null),(l()(),e["ɵeld"](29,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](30,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](33,0,null,0,1,"label",[["class","cd-col-form-label"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](35,0,null,0,13,"div",[["class","cd-col-form-inpu"]],null,null,null,null,null)),(l()(),e["ɵeld"](36,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](37,0,null,null,6,"input",[["class","form-control"],["id","secret_key"],["name","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0,i=l.component;return"input"===n&&(t=!1!==e["ɵnov"](l,38)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,38).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,38)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,38)._compositionEnd(u.target.value)&&t),"ngModelChange"===n&&(t=!1!==(i.secret_key=u)&&t),t}),null,null)),e["ɵdid"](38,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](40,671744,null,0,d.u,[[2,d.d],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),e["ɵprd"](2048,null,d.q,null,[d.u]),e["ɵdid"](42,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](43,16384,null,0,Un.h,[[3,d.d],Un.a],null,null),(l()(),e["ɵeld"](44,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](45,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,46).onClick()&&t),t}),null,null)),e["ɵdid"](46,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](47,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,48).onClick()&&t),t}),null,null)),e["ɵdid"](48,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵeld"](49,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](50,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](51,49152,null,0,Kn.a,[Dl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,16,0),l(n,25,0,"user",u.user),l(n,30,0),l(n,40,0,"secret_key",u.secret_key),l(n,46,0,"secret_key"),l(n,48,0,"secret_key"),l(n,51,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,10,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending),l(n,15,0,e["ɵnov"](n,16).hasErrors,e["ɵnov"](n,16).hasSuccess),l(n,22,0,!0,e["ɵnov"](n,27).ngClassUntouched,e["ɵnov"](n,27).ngClassTouched,e["ɵnov"](n,27).ngClassPristine,e["ɵnov"](n,27).ngClassDirty,e["ɵnov"](n,27).ngClassValid,e["ɵnov"](n,27).ngClassInvalid,e["ɵnov"](n,27).ngClassPending,e["ɵnov"](n,28).validClass,e["ɵnov"](n,28).invalidClass),l(n,29,0,e["ɵnov"](n,30).hasErrors,e["ɵnov"](n,30).hasSuccess),l(n,37,0,!0,e["ɵnov"](n,42).ngClassUntouched,e["ɵnov"](n,42).ngClassTouched,e["ɵnov"](n,42).ngClassPristine,e["ɵnov"](n,42).ngClassDirty,e["ɵnov"](n,42).ngClassValid,e["ɵnov"](n,42).ngClassInvalid,e["ɵnov"](n,42).ngClassPending,e["ɵnov"](n,43).validClass,e["ɵnov"](n,43).invalidClass)}))}function Qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-swift-key-modal",[],null,null,null,Zn,$n)),e["ɵdid"](1,49152,null,0,Y,[rn.a,wl.a,t.b],null,null)],null,null)}var Yn=e["ɵccf"]("cd-rgw-user-swift-key-modal",Y,Qn,{},{},[]),Wn=u("IZUe"),Jn=u("gp3X"),Xn=u("sb0X"),Hn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function lu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","user"],["id","user"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](3,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"user"),l(n,6,0,"user")}),(function(l,n){l(n,0,0,!0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a username --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function uu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control custom-select"],["formControlName","user"],["id","user"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,2).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),t}),null,null)),e["ɵdid"](1,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](2,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](4,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,nu)),e["ɵdid"](9,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,uu)),e["ɵdid"](11,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,1,0,""),l(n,4,0,"user"),l(n,7,0,"user"),l(n,9,0,null!==u.userCandidates),l(n,11,0,u.userCandidates)}),(function(l,n){l(n,0,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function iu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate key"]))],(function(l,n){l(n,1,0),l(n,9,0,"generate_key"),l(n,12,0,"generate_key")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function au(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ou(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","access_key"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵted"](-1,null,["Access key"])),(l()(),e["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](14,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](16,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](17,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](18,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,20).onClick()&&t),t}),null,null)),e["ɵdid"](20,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](21,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,22).onClick()&&t),t}),null,null)),e["ɵdid"](22,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,au)),e["ɵdid"](24,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var t=l(n,7,0,!u.viewing);l(n,6,0,"cd-col-form-label",t),l(n,14,0,"access_key"),l(n,17,0,"access_key"),l(n,20,0,"access_key"),l(n,22,0,"access_key"),l(n,24,0,u.formGroup.showError("access_key",e["ɵnov"](n.parent,11),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,u.viewing,e["ɵnov"](n,16).ngClassUntouched,e["ɵnov"](n,16).ngClassTouched,e["ɵnov"](n,16).ngClassPristine,e["ɵnov"](n,16).ngClassDirty,e["ɵnov"](n,16).ngClassValid,e["ɵnov"](n,16).ngClassInvalid,e["ɵnov"](n,16).ngClassPending,e["ɵnov"](n,17).validClass,e["ɵnov"](n,17).invalidClass)}))}function su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function du(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","secret_key"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](14,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](16,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](17,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](18,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](19,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,20).onClick()&&t),t}),null,null)),e["ɵdid"](20,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](21,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,22).onClick()&&t),t}),null,null)),e["ɵdid"](22,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,su)),e["ɵdid"](24,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var t=l(n,7,0,!u.viewing);l(n,6,0,"cd-col-form-label",t),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,20,0,"secret_key"),l(n,22,0,"secret_key"),l(n,24,0,u.formGroup.showError("secret_key",e["ɵnov"](n.parent,11),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,u.viewing,e["ɵnov"](n,16).ngClassUntouched,e["ɵnov"](n,16).ngClassTouched,e["ɵnov"](n,16).ngClassPristine,e["ɵnov"](n,16).ngClassDirty,e["ɵnov"](n,16).ngClassValid,e["ɵnov"](n,16).ngClassInvalid,e["ɵnov"](n,16).ngClassPending,e["ɵnov"](n,17).validClass,e["ɵnov"](n,17).invalidClass)}))}function ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Jn.b,Jn.a)),e["ɵdid"](1,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](2,0,[""," ",""])),e["ɵppd"](3,1),e["ɵppd"](4,1)],(function(l,n){l(n,1,0,n.component.formGroup)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,2,0,l(n,3,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,2,1,l(n,4,0,e["ɵnov"](n.parent,1),u.resource));l(n,2,0,t,i)}))}function cu(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵeld"](2,0,null,null,40,"cd-modal",[],null,null,null,vl.c,vl.b)),e["ɵdid"](3,49152,null,0,An.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,34,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,33,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Un.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,22,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](17,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,4,"label",[["class","cd-col-form-label"],["for","user"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](22,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](23,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](25,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,lu)),e["ɵdid"](27,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,eu)),e["ɵdid"](29,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tu)),e["ɵdid"](31,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,iu)),e["ɵdid"](33,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ou)),e["ɵdid"](35,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,du)),e["ɵdid"](37,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](38,0,null,null,4,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,ru)),e["ɵdid"](40,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](41,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](42,49152,null,0,Kn.a,[Dl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0);var t=l(n,23,0,!u.viewing);l(n,22,0,"cd-col-form-label",t),l(n,27,0,u.viewing),l(n,29,0,!u.viewing),l(n,31,0,u.formGroup.showError("user",e["ɵnov"](n,11),"required")),l(n,33,0,!u.viewing),l(n,35,0,!u.formGroup.getValue("generate_key")),l(n,37,0,!u.formGroup.getValue("generate_key")),l(n,40,0,!u.viewing),l(n,42,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess)}))}function mu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-s3-key-modal",[],null,null,null,cu,Hn)),e["ɵdid"](1,49152,null,0,$,[k.a,rn.a,wl.a,t.b],null,null)],null,null)}var gu=e["ɵccf"]("cd-rgw-user-s3-key-modal",$,mu,{},{submitAction:"submitAction"},[]),pu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","type"],["id","type"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,1)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,1)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,1)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](3,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,3,0,"type"),l(n,6,0,"type")}),(function(l,n){l(n,0,0,!0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a type --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function hu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function bu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"select",[["autofocus",""],["class","form-control custom-select"],["formControlName","type"],["id","type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,2).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),t}),null,null)),e["ɵdid"](1,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](2,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](4,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vu)),e["ɵdid"](9,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,hu)),e["ɵdid"](11,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,1,0,""),l(n,4,0,"type"),l(n,7,0,"type"),l(n,9,0,null!==u.types),l(n,11,0,u.types)}),(function(l,n){l(n,0,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function Cu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function _u(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Ru(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function yu(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵeld"](2,0,null,null,60,"cd-modal",[],null,null,null,vl.c,vl.b)),e["ɵdid"](3,49152,null,0,An.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,54,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,53,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Un.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,39,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](17,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,4,"label",[["class","cd-col-form-label"],["for","type"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](22,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](23,{required:0}),(l()(),e["ɵted"](-1,null,["Type"])),(l()(),e["ɵeld"](25,0,null,0,6,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fu)),e["ɵdid"](27,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bu)),e["ɵdid"](29,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Cu)),e["ɵdid"](31,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](32,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](33,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](36,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","perm"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permission"])),(l()(),e["ɵeld"](38,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,13,"select",[["class","form-control custom-select"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,40).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,40).onTouched()&&t),t}),null,null)),e["ɵdid"](40,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](42,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](44,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](45,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](46,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](47,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](48,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a permission --"])),(l()(),e["ɵand"](16777216,null,null,2,null,_u)),e["ɵdid"](51,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),e["ɵpad"](52,3),(l()(),e["ɵand"](16777216,null,null,1,null,Ru)),e["ɵdid"](54,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](55,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](56,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Jn.b,Jn.a)),e["ɵdid"](57,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](58,0,[""," ",""])),e["ɵppd"](59,1),e["ɵppd"](60,1),(l()(),e["ɵeld"](61,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](62,49152,null,0,Kn.a,[Dl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0);var t=l(n,23,0,!u.editing);l(n,22,0,"cd-col-form-label",t),l(n,27,0,u.editing),l(n,29,0,!u.editing),l(n,31,0,u.formGroup.showError("type",e["ɵnov"](n,11),"required")),l(n,33,0),l(n,42,0,"perm"),l(n,45,0,"perm"),l(n,47,0,null),l(n,48,0,null);var i=l(n,52,0,"read","write","*");l(n,51,0,i),l(n,54,0,u.formGroup.showError("perm",e["ɵnov"](n,11),"required")),l(n,57,0,u.formGroup),l(n,62,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess),l(n,32,0,e["ɵnov"](n,33).hasErrors,e["ɵnov"](n,33).hasSuccess),l(n,39,0,e["ɵnov"](n,44).ngClassUntouched,e["ɵnov"](n,44).ngClassTouched,e["ɵnov"](n,44).ngClassPristine,e["ɵnov"](n,44).ngClassDirty,e["ɵnov"](n,44).ngClassValid,e["ɵnov"](n,44).ngClassInvalid,e["ɵnov"](n,44).ngClassPending,e["ɵnov"](n,45).validClass,e["ɵnov"](n,45).invalidClass);var a=e["ɵunv"](n,58,0,l(n,59,0,e["ɵnov"](n,0),u.action)),o=e["ɵunv"](n,58,1,l(n,60,0,e["ɵnov"](n,1),u.resource));l(n,58,0,a,o)}))}function ku(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-capability-modal",[],null,null,null,yu,pu)),e["ɵdid"](1,49152,null,0,K,[k.a,rn.a,wl.a,t.b],null,null)],null,null)}var Iu=e["ɵccf"]("cd-rgw-user-capability-modal",K,ku,{},{submitAction:"submitAction"},[]),wu=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Eu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Nu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen subuser ID is already in use."]))],null,null)}function qu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Tu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Vu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function xu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vu)),e["ɵdid"](21,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"secret_key"),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.formGroup.showError("secret_key",e["ɵnov"](n.parent.parent,11),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Su(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Swift key"])),(l()(),e["ɵeld"](3,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_secret"],["id","generate_secret"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_secret"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate secret"])),(l()(),e["ɵand"](16777216,null,null,1,null,xu)),e["ɵdid"](19,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"generate_secret"),l(n,15,0,"generate_secret"),l(n,19,0,!u.editing&&!u.formGroup.getValue("generate_secret"))}),(function(l,n){l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Du(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵeld"](2,0,null,null,90,"cd-modal",[],null,null,null,vl.c,vl.b)),e["ɵdid"](3,49152,null,0,An.a,[],{modalRef:[0,"modalRef"]},null),(l()(),e["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](5,null,[""," ",""])),e["ɵppd"](6,1),e["ɵppd"](7,1),(l()(),e["ɵeld"](8,0,null,1,84,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,83,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,11).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,11).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,14).onSubmit()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.G,[],null,null),e["ɵdid"](11,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](13,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](14,16384,null,0,Un.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](15,0,null,null,69,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](17,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label"],["for","uid"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](22,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](23,0,null,null,6,"input",[["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,24)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,24).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,24)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,24)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](24,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](26,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](28,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](29,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](30,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](31,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](34,0,null,0,4,"label",[["class","cd-col-form-label"],["for","subuid"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](36,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](37,{required:0}),(l()(),e["ɵted"](-1,null,["Subuser"])),(l()(),e["ɵeld"](39,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](40,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","subuid"],["id","subuid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,42)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,42).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,42)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,42)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](41,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](42,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](44,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](46,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](47,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Eu)),e["ɵdid"](49,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Nu)),e["ɵdid"](51,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](52,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](53,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](56,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","perm"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permission"])),(l()(),e["ɵeld"](58,0,null,0,24,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](59,0,null,null,21,"select",[["class","form-control custom-select"],["formControlName","perm"],["id","perm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,60).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,60).onTouched()&&t),t}),null,null)),e["ɵdid"](60,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](62,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](64,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](65,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](66,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](67,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](68,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a permission --"])),(l()(),e["ɵand"](16777216,null,null,2,null,qu)),e["ɵdid"](71,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),e["ɵpad"](72,2),(l()(),e["ɵeld"](73,0,null,null,3,"option",[["value","read-write"]],null,null,null,null,null)),e["ɵdid"](74,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](75,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["read, write"])),(l()(),e["ɵeld"](77,0,null,null,3,"option",[["value","full-control"]],null,null,null,null,null)),e["ɵdid"](78,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](79,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["full"])),(l()(),e["ɵand"](16777216,null,null,1,null,Tu)),e["ɵdid"](82,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Su)),e["ɵdid"](84,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](85,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](86,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Jn.b,Jn.a)),e["ɵdid"](87,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](88,0,[""," ",""])),e["ɵppd"](89,1),e["ɵppd"](90,1),(l()(),e["ɵeld"](91,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](92,49152,null,0,Kn.a,[Dl.Location,t.b],{back:[0,"back"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.bsModalRef),l(n,11,0,u.formGroup),l(n,14,0,u.formGroup),l(n,17,0),l(n,26,0,"uid"),l(n,29,0,"uid"),l(n,31,0);var t=l(n,37,0,!u.editing);l(n,36,0,"cd-col-form-label",t),l(n,41,0,""),l(n,44,0,"subuid"),l(n,47,0,"subuid"),l(n,49,0,u.formGroup.showError("subuid",e["ɵnov"](n,11),"required")),l(n,51,0,u.formGroup.showError("subuid",e["ɵnov"](n,11),"subuserIdExists")),l(n,53,0),l(n,62,0,"perm"),l(n,65,0,"perm"),l(n,67,0,null),l(n,68,0,null);var i=l(n,72,0,"read","write");l(n,71,0,i),l(n,74,0,"read-write"),l(n,75,0,"read-write"),l(n,78,0,"full-control"),l(n,79,0,"full-control"),l(n,82,0,u.formGroup.showError("perm",e["ɵnov"](n,11),"required")),l(n,84,0,!u.editing),l(n,87,0,u.formGroup),l(n,92,0,u.bsModalRef.hide)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,5,0,l(n,6,0,e["ɵnov"](n,0),u.action)),i=e["ɵunv"](n,5,1,l(n,7,0,e["ɵnov"](n,1),u.resource));l(n,5,0,t,i),l(n,9,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending),l(n,16,0,e["ɵnov"](n,17).hasErrors,e["ɵnov"](n,17).hasSuccess),l(n,23,0,!0,e["ɵnov"](n,28).ngClassUntouched,e["ɵnov"](n,28).ngClassTouched,e["ɵnov"](n,28).ngClassPristine,e["ɵnov"](n,28).ngClassDirty,e["ɵnov"](n,28).ngClassValid,e["ɵnov"](n,28).ngClassInvalid,e["ɵnov"](n,28).ngClassPending,e["ɵnov"](n,29).validClass,e["ɵnov"](n,29).invalidClass),l(n,30,0,e["ɵnov"](n,31).hasErrors,e["ɵnov"](n,31).hasSuccess),l(n,40,0,u.editing,e["ɵnov"](n,46).ngClassUntouched,e["ɵnov"](n,46).ngClassTouched,e["ɵnov"](n,46).ngClassPristine,e["ɵnov"](n,46).ngClassDirty,e["ɵnov"](n,46).ngClassValid,e["ɵnov"](n,46).ngClassInvalid,e["ɵnov"](n,46).ngClassPending,e["ɵnov"](n,47).validClass,e["ɵnov"](n,47).invalidClass),l(n,52,0,e["ɵnov"](n,53).hasErrors,e["ɵnov"](n,53).hasSuccess),l(n,59,0,e["ɵnov"](n,64).ngClassUntouched,e["ɵnov"](n,64).ngClassTouched,e["ɵnov"](n,64).ngClassPristine,e["ɵnov"](n,64).ngClassDirty,e["ɵnov"](n,64).ngClassValid,e["ɵnov"](n,64).ngClassInvalid,e["ɵnov"](n,64).ngClassPending,e["ɵnov"](n,65).validClass,e["ɵnov"](n,65).invalidClass);var a=e["ɵunv"](n,88,0,l(n,89,0,e["ɵnov"](n,0),u.action)),o=e["ɵunv"](n,88,1,l(n,90,0,e["ɵnov"](n,1),u.resource));l(n,88,0,a,o)}))}function Fu(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-subuser-modal",[],null,null,null,Du,wu)),e["ɵdid"](1,49152,null,0,Q,[k.a,rn.a,wl.a,t.b],null,null)],null,null)}var ju=e["ɵccf"]("cd-rgw-user-subuser-modal",Q,Fu,{},{submitAction:"submitAction"},[]),Pu=u("yT6U"),Bu=u("4DD9"),Au=u("IzCI"),Mu=u("Dwqy"),Uu=u("uYzU"),Ou=u("FFMq"),Lu=u("E2fk"),zu=u("nSDx"),Gu=u("SB+Q"),Ku=u("TYzs"),$u=u("BQkM"),Zu=u("dEH0"),Qu=u("G1/K"),Yu=u("efK2"),Wu=u("CNMR"),Ju=u("KOzp"),Xu=u("2uy1"),Hu=u("38Bd"),le=u("978R"),ne=u("w9WL"),ue=u("iInd"),ee=u("9Xeq"),te=u("hrfs"),ie=u("yGOH"),ae=u("bxSN"),oe=u("WF9J"),se=u("V/fk"),de=u("ChqD"),re=u("PCNd"),ce=u("G6Q+"),me=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](1,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","WAkugZpiz"]],null,null,null,Rl.b,Rl.a)),e["ɵdid"](3,638976,null,0,yl.a,[o.a,kl.b,Il.a,a.a,wl.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"rgw-overview?","two","WAkugZpiz")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass,e["ɵnov"](n,1).role,e["ɵnov"](n,1).ariaLabelledby)}))}function pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"tab",[["heading","Sync Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](1,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","rgw-sync-overview"]],null,null,null,Rl.b,Rl.a)),e["ɵdid"](3,638976,null,0,yl.a,[o.a,kl.b,Il.a,a.a,wl.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0,"Sync Performance"),l(n,3,0,"radosgw-sync-overview?","two","rgw-sync-overview")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).id,e["ɵnov"](n,1).active,e["ɵnov"](n,1).addClass,e["ɵnov"](n,1).role,e["ɵnov"](n,1).ariaLabelledby)}))}function fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,11,"tabset",[],[[2,"tab-container",null]],null,null,El.b,El.a)),e["ɵdid"](1,180224,null,0,_l.e,[_l.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,5,"tab",[["heading","Daemons List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](3,212992,null,0,_l.b,[_l.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,3,"cd-table",[["columnMode","flex"]],null,[[null,"setExpandedRow"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"setExpandedRow"===n&&(e=!1!==t.setExpandedRow(u)&&e),"fetchData"===n&&(e=!1!==t.getDaemonList(u)&&e),e}),un.b,un.a)),e["ɵdid"](5,2867200,null,0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"]},{fetchData:"fetchData",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](6,0,null,3,1,"cd-rgw-daemon-details",[["cdTableDetail",""]],null,null,null,Al,jl)),e["ɵdid"](7,573440,null,0,Fl,[A,F.a],{selection:[0,"selection"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,ge)),e["ɵdid"](9,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,0,1,null,pe)),e["ɵdid"](11,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Daemons List"),l(n,5,0,u.daemons,u.columns,"flex",!0),l(n,7,0,u.expandedRow),l(n,9,0,u.grafanaPermission.read),l(n,11,0,u.grafanaPermission.read&&u.isMultiSite)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby)}))}function ve(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-daemon-list",[],null,null,null,fe,me)),e["ɵdid"](1,114688,null,0,U,[A,F.a,M.a,wl.a,C],null,null)],(function(l,n){l(n,1,0)}),null)}var he=e["ɵccf"]("cd-rgw-daemon-list",U,ve,{},{},[]),be=u("DqMs"),Ce=u("/NlG"),_e=u("NUGo"),Re=u("S7zO"),ye=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,be.b,be.a)),e["ɵdid"](1,114688,null,0,Ce.a,[wl.a],{type:[0,"type"],size:[1,"size"]},null),(l()(),e["ɵted"](-1,0,["The user list data might be stale. If needed, you can manually reload it."]))],(function(l,n){l(n,1,0,"warning","slim")}),null)}function Ie(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),(l()(),e["ɵand"](16777216,null,null,1,null,ke)),e["ɵdid"](2,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](3,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","uid"],["selectionType","multiClick"]],null,[[null,"setExpandedRow"],[null,"updateSelection"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"setExpandedRow"===n&&(e=!1!==t.setExpandedRow(u)&&e),"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getUserList(u)&&e),e}),un.b,un.a)),e["ɵdid"](4,2867200,[[1,4],["table",4]],0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](5,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_e.b,_e.a)),e["ɵdid"](6,114688,null,0,Re.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](7,0,null,3,1,"cd-rgw-user-details",[["cdTableDetail",""]],null,null,null,Fn,cn)),e["ɵdid"](8,638976,null,0,dn,[_.a,rn.b,wl.a],{selection:[0,"selection"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.isStale),l(n,4,0,u.users,u.columns,"flex",!0,!1,"uid","multiClick"),l(n,6,0,u.permission,u.selection,u.tableActions),l(n,8,0,u.expandedRow)}),null)}function we(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rgw-user-list",[],null,null,null,Ie,ye)),e["ɵprd"](256,null,j.a,X,[]),e["ɵdid"](2,49152,null,0,H,[F.a,_.a,rn.b,wl.a,j.a,t.b,e.NgZone],null,null)],null,null)}var Ee=e["ɵccf"]("cd-rgw-user-list",H,we,{},{},[]),Ne=u("QC43"),qe=u("XFyV"),Te=u("EmSq"),Ve=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Ne.b,Ne.a)),e["ɵdid"](1,49152,null,0,qe.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading user data..."]))],null,null)}function Se(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,[[null,"backAction"]],(function(l,n,u){var e=!0;return"backAction"===n&&(e=!1!==l.component.goToListView()&&e),e}),be.b,be.a)),e["ɵdid"](1,114688,null,0,Ce.a,[wl.a],{type:[0,"type"]},{backAction:"backAction"}),(l()(),e["ɵted"](-1,0,["The user data could not be loaded."]))],(function(l,n){l(n,1,0,"error")}),null)}function De(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Fe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen user ID is already in use."]))],null,null)}function je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Pe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This is not a valid email address."]))],null,null)}function Be(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen email address is already in use."]))],null,null)}function Ae(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Me(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 1."]))],null,null)}function Ue(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,0,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,7,"input",[["class","form-control"],["formControlName","max_buckets"],["id","max_buckets"],["min","1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,7)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,7)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,7)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](8,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](10,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ae)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Me)),e["ɵdid"](17,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"max_buckets"),l(n,13,0,"max_buckets"),l(n,15,0,u.userForm.showError("max_buckets",e["ɵnov"](n.parent,3),"required")),l(n,17,0,u.userForm.showError("max_buckets",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Oe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Le(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","access_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Access key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","access_key"],["id","access_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[15,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","access_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Oe)),e["ɵdid"](21,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"access_key"),l(n,14,0,"access_key"),l(n,17,0,"access_key"),l(n,19,0,"access_key"),l(n,21,0,u.userForm.showError("access_key",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ge(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","secret_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Secret key"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,12,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,6,"input",[["class","form-control"],["formControlName","secret_key"],["id","secret_key"],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,9)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,9)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,9)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](9,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](11,671744,[[17,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](15,0,null,null,4,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,1,"button",[["cdPasswordButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,17).onClick()&&t),t}),null,null)),e["ɵdid"](17,81920,null,0,On.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](18,0,null,null,1,"button",[["cdCopy2ClipboardButton","secret_key"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var t=!0;return"click"===n&&(t=!1!==e["ɵnov"](l,19).onClick()&&t),t}),null,null)),e["ɵdid"](19,81920,null,0,Ln.a,[e.ElementRef,e.Renderer2,zn.j,wl.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ze)),e["ɵdid"](21,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"secret_key"),l(n,14,0,"secret_key"),l(n,17,0,"secret_key"),l(n,19,0,"secret_key"),l(n,21,0,u.userForm.showError("secret_key",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,8,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Ke(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["S3 key"])),(l()(),e["ɵeld"](3,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","generate_key"],["id","generate_key"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[13,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","generate_key"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Auto-generate key"])),(l()(),e["ɵand"](16777216,null,null,1,null,Le)),e["ɵdid"](19,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ge)),e["ɵdid"](21,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"generate_key"),l(n,15,0,"generate_key"),l(n,19,0,!u.editing&&!u.userForm.getValue("generate_key")),l(n,21,0,!u.editing&&!u.userForm.getValue("generate_key"))}),(function(l,n){l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function $e(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no subusers."]))],null,null)}function Ze(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,23,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,21,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,2,"div",[["class","input-group-prepend border-left-0 border-right-0"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,16777216,null,null,5,"button",[["class","btn btn-light tc_showSubuserButton"],["tooltip","Edit"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](12,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](13,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](15,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](16,1),(l()(),e["ɵeld"](17,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteSubuserButton"],["tooltip","Delete"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteSubuser(l.context.index)&&e),e}),null,null)),e["ɵdid"](18,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](19,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](21,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](22,1),(l()(),e["ɵeld"](23,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,12,0,"Edit");var e=l(n,16,0,u.icons.edit);l(n,15,0,e),l(n,18,0,"Delete");var t=l(n,22,0,u.icons.destroy);l(n,21,0,t)}),(function(l,n){var u=n.component;l(n,4,0,e["ɵinlineInterpolate"](1,"",u.icons.user,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.id,"")),l(n,8,0,e["ɵinlineInterpolate"](1,"",u.icons.share,"")),l(n,9,0,e["ɵinlineInterpolate"](1,"","full-control"===n.context.$implicit.permissions?"full":n.context.$implicit.permissions,""))}))}function Qe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,20,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Subusers"])),(l()(),e["ɵeld"](3,0,null,null,17,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,16,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,$e)),e["ɵdid"](6,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ze)),e["ɵdid"](8,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](9,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](10,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,8,"button",[["class","btn btn-light float-right tc_addSubuserButton"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSubuserModal()&&e),e}),null,null)),(l()(),e["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](14,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](15,1),(l()(),e["ɵeld"](16,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](17,null,[""," ",""])),e["ɵppd"](18,1),e["ɵppd"](19,1),(l()(),e["ɵeld"](20,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,6,0,0===u.subusers.length),l(n,8,0,u.subusers);var e=l(n,15,0,u.icons.add);l(n,14,0,e)}),(function(l,n){var u=n.component,t=e["ɵunv"](n,17,0,l(n,18,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.CREATE)),i=e["ɵunv"](n,17,1,l(n,19,0,e["ɵnov"](n.parent.parent,1),u.subuserLabel));l(n,17,0,t,i)}))}function Ye(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no keys."]))],null,null)}function We(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_showS3KeyButton"],["tooltip","Show"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteS3KeyButton"],["tooltip","Delete"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteS3Key(l.context.index)&&e),e}),null,null)),e["ɵdid"](14,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](17,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](18,1),(l()(),e["ɵeld"](19,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Show");var e=l(n,12,0,u.icons.show);l(n,11,0,e),l(n,14,0,"Delete");var t=l(n,18,0,u.icons.destroy);l(n,17,0,t)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.key,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.user,""))}))}function Je(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no keys."]))],null,null)}function Xe(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"span",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_showSwiftKeyButton"],["tooltip","Show"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showSwiftKeyModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Show");var e=l(n,12,0,u.icons.show);l(n,11,0,e)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.key,"")),l(n,5,0,e["ɵinlineInterpolate"](1,"",n.context.$implicit.user,""))}))}function He(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,37,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Keys"])),(l()(),e["ɵeld"](3,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["S3"])),(l()(),e["ɵeld"](9,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Ye)),e["ɵdid"](11,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,We)),e["ɵdid"](13,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](14,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](15,0,null,null,9,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](16,0,null,null,8,"button",[["class","btn btn-light float-right tc_addS3KeyButton"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showS3KeyModal()&&e),e}),null,null)),(l()(),e["ɵeld"](17,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](20,1),(l()(),e["ɵeld"](21,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](22,null,[""," ",""])),e["ɵppd"](23,1),e["ɵppd"](24,1),(l()(),e["ɵeld"](25,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null)),(l()(),e["ɵeld"](26,0,null,0,0,"hr",[],null,null,null,null,null)),(l()(),e["ɵeld"](27,0,null,null,10,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](28,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](31,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Swift"])),(l()(),e["ɵeld"](33,0,null,0,4,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,Je)),e["ɵdid"](35,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Xe)),e["ɵdid"](37,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,11,0,0===u.s3Keys.length),l(n,13,0,u.s3Keys);var e=l(n,20,0,u.icons.add);l(n,19,0,e),l(n,28,0),l(n,35,0,0===u.swiftKeys.length),l(n,37,0,u.swiftKeys)}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess);var t=e["ɵunv"](n,22,0,l(n,23,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.CREATE)),i=e["ɵunv"](n,22,1,l(n,24,0,e["ɵnov"](n.parent.parent,1),u.s3keyLabel));l(n,22,0,t,i),l(n,27,0,e["ɵnov"](n,28).hasErrors,e["ɵnov"](n,28).hasSuccess)}))}function lt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["There are no capabilities."]))],null,null)}function nt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,19,"span",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,17,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](2,0,null,null,2,"span",[["class","input-group-prepend"]],null,null,null,null,null)),(l()(),e["ɵeld"](3,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,0,"input",[["class","cd-form-control"],["readonly",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,16777216,null,null,5,"button",[["class","btn btn-light tc_editCapButton"],["tooltip","Edit"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal(l.context.index)&&e),e}),null,null)),e["ɵdid"](8,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](9,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](11,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](12,1),(l()(),e["ɵeld"](13,16777216,null,null,5,"button",[["class","btn btn-light tc_deleteCapButton"],["tooltip","Delete"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.deleteCapability(l.context.index)&&e),e}),null,null)),e["ɵdid"](14,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"]},null),(l()(),e["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](17,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](18,1),(l()(),e["ɵeld"](19,0,null,null,0,"span",[["class","form-text text-muted"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,8,0,"Edit");var e=l(n,12,0,u.icons.edit);l(n,11,0,e),l(n,14,0,"Delete");var t=l(n,18,0,u.icons.destroy);l(n,17,0,t)}),(function(l,n){l(n,4,0,e["ɵinlineInterpolate"](1,"",n.component.icons.share,"")),l(n,5,0,e["ɵinlineInterpolate"](2,"",n.context.$implicit.type,":",n.context.$implicit.perm,""))}))}function ut(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,24,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Capabilities"])),(l()(),e["ɵeld"](3,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,17,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,lt)),e["ɵdid"](9,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,nt)),e["ɵdid"](11,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵeld"](12,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,10,"div",[["class","col-12"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,16777216,null,null,9,"button",[["class","btn btn-light float-right tc_addCapButton"],["tooltip","All capabilities are already added."],["triggers","pointerenter pointerleave"],["type","button"]],[[8,"disabled",0]],[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.showCapabilityModal()&&e),e}),null,null)),e["ɵdid"](15,212992,null,0,le.c,[e.ViewContainerRef,tn.a,le.a,e.ElementRef,e.Renderer2,Xu.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"],isDisabled:[2,"isDisabled"]},null),(l()(),e["ɵeld"](16,0,null,null,3,"i",[],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](18,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),e["ɵpad"](19,1),(l()(),e["ɵeld"](20,0,null,null,3,null,null,null,null,null,null,null)),(l()(),e["ɵted"](21,null,[""," ",""])),e["ɵppd"](22,1),e["ɵppd"](23,1),(l()(),e["ɵeld"](24,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(l,n){var u=n.component;l(n,4,0),l(n,9,0,0===u.capabilities.length),l(n,11,0,u.capabilities),l(n,15,0,"All capabilities are already added.","pointerenter pointerleave",!u.hasAllCapabilities());var e=l(n,19,0,u.icons.add);l(n,18,0,e)}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,14,0,u.hasAllCapabilities());var t=e["ɵunv"](n,21,0,l(n,22,0,e["ɵnov"](n.parent.parent,0),u.actionLabels.ADD)),i=e["ɵunv"](n,21,1,l(n,23,0,e["ɵnov"](n.parent.parent,1),u.capabilityLabel));l(n,21,0,t,i)}))}function et(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,27,{FormControlNames:1}),e["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_max_size_unlimited"],["id","user_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[27,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited size"]))],(function(l,n){l(n,1,0),l(n,9,0,"user_quota_max_size_unlimited"),l(n,12,0,"user_quota_max_size_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function tt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function it(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function at(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,29,{FormControlNames:1}),e["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_quota_max_size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. size"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","user_quota_max_size"],["id","user_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onBlur(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[29,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,81920,null,0,Te.a,[e.ElementRef,d.q,sn.a,L.a],null,null),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tt)),e["ɵdid"](16,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,it)),e["ɵdid"](18,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"user_quota_max_size"),l(n,12,0),l(n,14,0,"user_quota_max_size"),l(n,16,0,u.userForm.showError("user_quota_max_size",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_size",e["ɵnov"](n.parent,3),"quotaMaxSize"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ot(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,31,{FormControlNames:1}),e["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_max_objects_unlimited"],["id","user_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[31,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited objects"]))],(function(l,n){l(n,1,0),l(n,9,0,"user_quota_max_objects_unlimited"),l(n,12,0,"user_quota_max_objects_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function st(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function dt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 0."]))],null,null)}function rt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,33,{FormControlNames:1}),e["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_quota_max_objects"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. objects"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","user_quota_max_objects"],["id","user_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](9,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](11,671744,[[33,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,st)),e["ɵdid"](16,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,dt)),e["ɵdid"](18,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"user_quota_max_objects"),l(n,14,0,"user_quota_max_objects"),l(n,16,0,u.userForm.showError("user_quota_max_objects",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("user_quota_max_objects",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ct(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,37,{FormControlNames:1}),e["ɵqud"](603979776,38,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_max_size_unlimited"],["id","bucket_quota_max_size_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[37,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_max_size_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited size"]))],(function(l,n){l(n,1,0),l(n,9,0,"bucket_quota_max_size_unlimited"),l(n,12,0,"bucket_quota_max_size_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function mt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function gt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function pt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,39,{FormControlNames:1}),e["ɵqud"](603979776,40,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","bucket_quota_max_size"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. size"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["formControlName","bucket_quota_max_size"],["id","bucket_quota_max_size"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onBlur(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[39,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,81920,null,0,Te.a,[e.ElementRef,d.q,sn.a,L.a],null,null),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mt)),e["ɵdid"](16,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,gt)),e["ɵdid"](18,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"bucket_quota_max_size"),l(n,12,0),l(n,14,0,"bucket_quota_max_size"),l(n,16,0,u.userForm.showError("bucket_quota_max_size",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_size",e["ɵnov"](n.parent,3),"quotaMaxSize"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function ft(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,41,{FormControlNames:1}),e["ɵqud"](603979776,42,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_max_objects_unlimited"],["id","bucket_quota_max_objects_unlimited"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,7).onTouched()&&t),t}),null,null)),e["ɵdid"](7,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](9,671744,[[41,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](12,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_max_objects_unlimited"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Unlimited objects"]))],(function(l,n){l(n,1,0),l(n,9,0,"bucket_quota_max_objects_unlimited"),l(n,12,0,"bucket_quota_max_objects_unlimited")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function vt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function ht(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be >= 0."]))],null,null)}function bt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,43,{FormControlNames:1}),e["ɵqud"](603979776,44,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","bucket_quota_max_objects"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. objects"])),(l()(),e["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","bucket_quota_max_objects"],["id","bucket_quota_max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,9).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,9).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](9,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](11,671744,[[43,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](13,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](14,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vt)),e["ɵdid"](16,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ht)),e["ɵdid"](18,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,11,0,"bucket_quota_max_objects"),l(n,14,0,"bucket_quota_max_objects"),l(n,16,0,u.userForm.showError("bucket_quota_max_objects",e["ɵnov"](n.parent,3),"required")),l(n,18,0,u.userForm.showError("bucket_quota_max_objects",e["ɵnov"](n.parent,3),"min"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,13).ngClassUntouched,e["ɵnov"](n,13).ngClassTouched,e["ɵnov"](n,13).ngClassPristine,e["ɵnov"](n,13).ngClassDirty,e["ɵnov"](n,13).ngClassValid,e["ɵnov"](n,13).ngClassInvalid,e["ɵnov"](n,13).ngClassPending,e["ɵnov"](n,14).validClass,e["ɵnov"](n,14).invalidClass)}))}function Ct(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,183,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,182,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,3).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,3).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,6).onSubmit()&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.G,[],null,null),e["ɵdid"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](5,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](6,16384,null,0,Un.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](7,0,null,null,176,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,[""," ",""])),e["ɵppd"](10,1),e["ɵppd"](11,1),(l()(),e["ɵeld"](12,0,null,null,162,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](14,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](17,0,null,0,4,"label",[["class","cd-col-form-label"],["for","uid"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](19,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](20,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](22,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","uid"],["id","uid"],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,25)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,25).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,25)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,25)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](24,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](25,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](27,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](29,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](30,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,De)),e["ɵdid"](32,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Fe)),e["ɵdid"](34,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](35,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](36,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](39,0,null,0,4,"label",[["class","cd-col-form-label"],["for","display_name"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](41,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](42,{required:0}),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](44,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](45,0,null,null,6,"input",[["class","form-control"],["formControlName","display_name"],["id","display_name"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,46)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,46).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,46)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,46)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](46,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](48,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](50,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](51,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,je)),e["ɵdid"](53,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](54,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](55,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](58,0,null,0,1,"label",[["class","cd-col-form-label"],["for","email"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email address"])),(l()(),e["ɵeld"](60,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,62)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,62).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,62)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,62)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](62,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](64,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](66,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](67,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pe)),e["ɵdid"](69,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Be)),e["ɵdid"](71,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](72,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](73,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](76,0,null,0,1,"label",[["class","cd-col-form-label"],["for","max_buckets_mode"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Max. buckets"])),(l()(),e["ɵeld"](78,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](79,0,null,null,18,"select",[["class","form-control custom-select"],["formControlName","max_buckets_mode"],["id","max_buckets_mode"],["name","max_buckets_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,80).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,80).onTouched()&&t),t}),null,null)),e["ɵdid"](80,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](82,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](84,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](85,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](86,0,null,null,3,"option",[["value","-1"]],null,null,null,null,null)),e["ɵdid"](87,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](88,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Disabled"])),(l()(),e["ɵeld"](90,0,null,null,3,"option",[["value","0"]],null,null,null,null,null)),e["ɵdid"](91,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](92,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Unlimited"])),(l()(),e["ɵeld"](94,0,null,null,3,"option",[["value","1"]],null,null,null,null,null)),e["ɵdid"](95,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](96,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Custom"])),(l()(),e["ɵand"](16777216,null,null,1,null,Ue)),e["ɵdid"](99,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](100,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](101,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](104,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](105,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](106,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","suspended"],["id","suspended"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,107).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,107).onTouched()&&t),t}),null,null)),e["ɵdid"](107,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](109,671744,[[11,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](111,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](112,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](113,0,null,null,1,"label",[["class","custom-control-label"],["for","suspended"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Suspended"])),(l()(),e["ɵand"](16777216,null,null,1,null,Ke)),e["ɵdid"](116,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Qe)),e["ɵdid"](118,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,He)),e["ɵdid"](120,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ut)),e["ɵdid"](122,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](123,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](124,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User quota"])),(l()(),e["ɵeld"](126,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](127,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,25,{FormControlNames:1}),e["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),e["ɵeld"](130,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](131,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](132,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","user_quota_enabled"],["id","user_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,133).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,133).onTouched()&&t),t}),null,null)),e["ɵdid"](133,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](135,671744,[[25,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](137,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](138,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](139,0,null,null,1,"label",[["class","custom-control-label"],["for","user_quota_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵand"](16777216,null,null,1,null,et)),e["ɵdid"](142,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,at)),e["ɵdid"](144,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ot)),e["ɵdid"](146,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,rt)),e["ɵdid"](148,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](149,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](150,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Bucket quota"])),(l()(),e["ɵeld"](152,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](153,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,35,{FormControlNames:1}),e["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),e["ɵeld"](156,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](157,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](158,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","bucket_quota_enabled"],["id","bucket_quota_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,159).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,159).onTouched()&&t),t}),null,null)),e["ɵdid"](159,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](161,671744,[[35,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](163,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](164,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](165,0,null,null,1,"label",[["class","custom-control-label"],["for","bucket_quota_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵand"](16777216,null,null,1,null,ct)),e["ɵdid"](168,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pt)),e["ɵdid"](170,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ft)),e["ɵdid"](172,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,bt)),e["ɵdid"](174,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](175,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](176,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](177,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.onSubmit()&&e),e}),Jn.b,Jn.a)),e["ɵdid"](178,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](179,0,[""," ",""])),e["ɵppd"](180,1),e["ɵppd"](181,1),(l()(),e["ɵeld"](182,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](183,49152,null,0,Kn.a,[Dl.Location,t.b],null,null)],(function(l,n){var u=n.component;l(n,3,0,u.userForm),l(n,6,0,u.userForm),l(n,14,0);var t=l(n,20,0,!u.editing);l(n,19,0,"cd-col-form-label",t),l(n,24,0,""),l(n,27,0,"uid"),l(n,30,0,"uid"),l(n,32,0,u.userForm.showError("uid",e["ɵnov"](n,3),"required")),l(n,34,0,u.userForm.showError("uid",e["ɵnov"](n,3),"notUnique")),l(n,36,0);var i=l(n,42,0,!u.editing);l(n,41,0,"cd-col-form-label",i),l(n,48,0,"display_name"),l(n,51,0,"display_name"),l(n,53,0,u.userForm.showError("display_name",e["ɵnov"](n,3),"required")),l(n,55,0),l(n,64,0,"email"),l(n,67,0,"email"),l(n,69,0,u.userForm.showError("email",e["ɵnov"](n,3),"email")),l(n,71,0,u.userForm.showError("email",e["ɵnov"](n,3),"notUnique")),l(n,73,0),l(n,82,0,"max_buckets_mode"),l(n,85,0,"max_buckets_mode"),l(n,87,0,"-1"),l(n,88,0,"-1"),l(n,91,0,"0"),l(n,92,0,"0"),l(n,95,0,"1"),l(n,96,0,"1"),l(n,99,0,1==u.userForm.get("max_buckets_mode").value),l(n,101,0),l(n,109,0,"suspended"),l(n,112,0,"suspended"),l(n,116,0,!u.editing),l(n,118,0,u.editing),l(n,120,0,u.editing),l(n,122,0,u.editing),l(n,127,0),l(n,135,0,"user_quota_enabled"),l(n,138,0,"user_quota_enabled"),l(n,142,0,u.userForm.controls.user_quota_enabled.value),l(n,144,0,u.userForm.controls.user_quota_enabled.value&&!u.userForm.getValue("user_quota_max_size_unlimited")),l(n,146,0,u.userForm.controls.user_quota_enabled.value),l(n,148,0,u.userForm.controls.user_quota_enabled.value&&!u.userForm.getValue("user_quota_max_objects_unlimited")),l(n,153,0),l(n,161,0,"bucket_quota_enabled"),l(n,164,0,"bucket_quota_enabled"),l(n,168,0,u.userForm.controls.bucket_quota_enabled.value),l(n,170,0,u.userForm.controls.bucket_quota_enabled.value&&!u.userForm.getValue("bucket_quota_max_size_unlimited")),l(n,172,0,u.userForm.controls.bucket_quota_enabled.value),l(n,174,0,u.userForm.controls.bucket_quota_enabled.value&&!u.userForm.getValue("bucket_quota_max_objects_unlimited")),l(n,178,0,u.userForm)}),(function(l,n){var u=n.component;l(n,1,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending);var t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,9,1,l(n,11,0,e["ɵnov"](n.parent,1),u.resource));l(n,9,0,t,i),l(n,13,0,e["ɵnov"](n,14).hasErrors,e["ɵnov"](n,14).hasSuccess),l(n,23,0,u.editing,e["ɵnov"](n,29).ngClassUntouched,e["ɵnov"](n,29).ngClassTouched,e["ɵnov"](n,29).ngClassPristine,e["ɵnov"](n,29).ngClassDirty,e["ɵnov"](n,29).ngClassValid,e["ɵnov"](n,29).ngClassInvalid,e["ɵnov"](n,29).ngClassPending,e["ɵnov"](n,30).validClass,e["ɵnov"](n,30).invalidClass),l(n,35,0,e["ɵnov"](n,36).hasErrors,e["ɵnov"](n,36).hasSuccess),l(n,45,0,e["ɵnov"](n,50).ngClassUntouched,e["ɵnov"](n,50).ngClassTouched,e["ɵnov"](n,50).ngClassPristine,e["ɵnov"](n,50).ngClassDirty,e["ɵnov"](n,50).ngClassValid,e["ɵnov"](n,50).ngClassInvalid,e["ɵnov"](n,50).ngClassPending,e["ɵnov"](n,51).validClass,e["ɵnov"](n,51).invalidClass),l(n,54,0,e["ɵnov"](n,55).hasErrors,e["ɵnov"](n,55).hasSuccess),l(n,61,0,e["ɵnov"](n,66).ngClassUntouched,e["ɵnov"](n,66).ngClassTouched,e["ɵnov"](n,66).ngClassPristine,e["ɵnov"](n,66).ngClassDirty,e["ɵnov"](n,66).ngClassValid,e["ɵnov"](n,66).ngClassInvalid,e["ɵnov"](n,66).ngClassPending,e["ɵnov"](n,67).validClass,e["ɵnov"](n,67).invalidClass),l(n,72,0,e["ɵnov"](n,73).hasErrors,e["ɵnov"](n,73).hasSuccess),l(n,79,0,e["ɵnov"](n,84).ngClassUntouched,e["ɵnov"](n,84).ngClassTouched,e["ɵnov"](n,84).ngClassPristine,e["ɵnov"](n,84).ngClassDirty,e["ɵnov"](n,84).ngClassValid,e["ɵnov"](n,84).ngClassInvalid,e["ɵnov"](n,84).ngClassPending,e["ɵnov"](n,85).validClass,e["ɵnov"](n,85).invalidClass),l(n,100,0,e["ɵnov"](n,101).hasErrors,e["ɵnov"](n,101).hasSuccess),l(n,106,0,e["ɵnov"](n,111).ngClassUntouched,e["ɵnov"](n,111).ngClassTouched,e["ɵnov"](n,111).ngClassPristine,e["ɵnov"](n,111).ngClassDirty,e["ɵnov"](n,111).ngClassValid,e["ɵnov"](n,111).ngClassInvalid,e["ɵnov"](n,111).ngClassPending,e["ɵnov"](n,112).validClass,e["ɵnov"](n,112).invalidClass),l(n,126,0,e["ɵnov"](n,127).hasErrors,e["ɵnov"](n,127).hasSuccess),l(n,132,0,e["ɵnov"](n,137).ngClassUntouched,e["ɵnov"](n,137).ngClassTouched,e["ɵnov"](n,137).ngClassPristine,e["ɵnov"](n,137).ngClassDirty,e["ɵnov"](n,137).ngClassValid,e["ɵnov"](n,137).ngClassInvalid,e["ɵnov"](n,137).ngClassPending,e["ɵnov"](n,138).validClass,e["ɵnov"](n,138).invalidClass),l(n,152,0,e["ɵnov"](n,153).hasErrors,e["ɵnov"](n,153).hasSuccess),l(n,158,0,e["ɵnov"](n,163).ngClassUntouched,e["ɵnov"](n,163).ngClassTouched,e["ɵnov"](n,163).ngClassPristine,e["ɵnov"](n,163).ngClassDirty,e["ɵnov"](n,163).ngClassValid,e["ɵnov"](n,163).ngClassInvalid,e["ɵnov"](n,163).ngClassPending,e["ɵnov"](n,164).validClass,e["ɵnov"](n,164).invalidClass);var a=e["ɵunv"](n,179,0,l(n,180,0,e["ɵnov"](n.parent,0),u.action)),o=e["ɵunv"](n,179,1,l(n,181,0,e["ɵnov"](n.parent,1),u.resource));l(n,179,0,a,o)}))}function _t(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵand"](16777216,null,null,1,null,xe)),e["ɵdid"](3,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Se)),e["ɵdid"](5,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ct)),e["ɵdid"](7,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,u.editing&&u.error),l(n,7,0,!u.loading&&!u.error)}),null)}function Rt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-user-form",[],null,null,null,_t,Ve)),e["ɵdid"](1,114688,null,0,W,[k.a,ue.a,ue.m,_.a,rn.b,w.a,wl.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var yt=e["ɵccf"]("cd-rgw-user-form",W,Rt,{},{},[]),kt=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function It(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,be.b,be.a)),e["ɵdid"](1,114688,null,0,Ce.a,[wl.a],{type:[0,"type"],size:[1,"size"]},null),(l()(),e["ɵted"](-1,0,["The bucket list data might be stale. If needed, you can manually reload it."]))],(function(l,n){l(n,1,0,"warning","slim")}),null)}function wt(l){return e["ɵvid"](0,[e["ɵqud"](402653184,1,{table:0}),(l()(),e["ɵand"](16777216,null,null,1,null,It)),e["ɵdid"](2,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](3,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","bid"],["selectionType","multiClick"]],null,[[null,"setExpandedRow"],[null,"updateSelection"],[null,"fetchData"]],(function(l,n,u){var e=!0,t=l.component;return"setExpandedRow"===n&&(e=!1!==t.setExpandedRow(u)&&e),"updateSelection"===n&&(e=!1!==t.updateSelection(u)&&e),"fetchData"===n&&(e=!1!==t.getBucketList(u)&&e),e}),un.b,un.a)),e["ɵdid"](4,2867200,[[1,4],["table",4]],0,S.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](5,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_e.b,_e.a)),e["ɵdid"](6,114688,null,0,Re.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](7,0,null,3,1,"cd-rgw-bucket-details",[["cdTableDetail",""]],null,null,null,Hl,Gl)),e["ɵdid"](8,49152,null,0,zl,[],{selection:[0,"selection"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.isStale),l(n,4,0,u.buckets,u.columns,"flex",!0,!1,"bid","multiClick"),l(n,6,0,u.permission,u.selection,u.tableActions),l(n,8,0,u.expandedRow)}),null)}function Et(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-rgw-bucket-list",[],null,null,null,wt,kt)),e["ɵprd"](256,null,j.a,P,[]),e["ɵdid"](2,49152,null,0,B,[F.a,b,rn.b,wl.a,j.a,t.b,e.NgZone],null,null)],null,null)}var Nt=e["ɵccf"]("cd-rgw-bucket-list",B,Et,{},{},[]),qt=u("4HWh"),Tt=u("p4Cf"),Vt=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function xt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Ne.b,Ne.a)),e["ɵdid"](1,49152,null,0,qe.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading bucket data..."]))],null,null)}function St(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,1,{FormControlNames:1}),e["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","id"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Id"])),(l()(),e["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","id"],["id","id"],["name","id"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[1,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,1,0),l(n,10,0,"id"),l(n,13,0,"id")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Dt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ft(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The value is not valid."]))],null,null)}function jt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen name is already in use."]))],null,null)}function Pt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Bt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a user --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function At(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Mt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Ut(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Ot(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),e["ɵted"](-1,null,["-- Select a placement target --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Lt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),e["ɵdid"](1,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](2,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](3,null,["",""]))],(function(l,n){l(n,1,0,n.context.$implicit.name),l(n,2,0,n.context.$implicit.name)}),(function(l,n){l(n,3,0,n.context.$implicit.description)}))}function zt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Gt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","placement-target"],["id","placement-target"],["name","placement-target"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,1).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,1).onTouched()&&t),t}),null,null)),e["ɵdid"](1,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](3,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](5,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](6,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ut)),e["ɵdid"](8,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ot)),e["ɵdid"](10,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Lt)),e["ɵdid"](12,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,zt)),e["ɵdid"](14,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){var u=n.component;l(n,3,0,"placement-target"),l(n,6,0,"placement-target"),l(n,8,0,null===u.placementTargets),l(n,10,0,null!==u.placementTargets),l(n,12,0,u.placementTargets),l(n,14,0,u.bucketForm.showError("placement-target",e["ɵnov"](n.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending,e["ɵnov"](n,6).validClass,e["ɵnov"](n,6).invalidClass)}))}function Kt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,6,"input",[["class","form-control"],["formControlName","placement-target"],["id","placement-target"],["name","placement-target"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,2)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,2).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,2)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,2)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](4,671744,[[7,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](6,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](7,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null)],(function(l,n){l(n,4,0,"placement-target"),l(n,7,0,"placement-target")}),(function(l,n){l(n,1,0,e["ɵnov"](n,6).ngClassUntouched,e["ɵnov"](n,6).ngClassTouched,e["ɵnov"](n,6).ngClassPristine,e["ɵnov"](n,6).ngClassDirty,e["ɵnov"](n,6).ngClassValid,e["ɵnov"](n,6).ngClassInvalid,e["ɵnov"](n,6).ngClassPending,e["ɵnov"](n,7).validClass,e["ɵnov"](n,7).invalidClass)}))}function $t(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Versioning"])),(l()(),e["ɵeld"](3,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,9,{FormControlNames:1}),e["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","versioning"],["id","versioning"],["name","versioning"],["type","checkbox"]],[[8,"checked",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0,i=l.component;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),"change"===n&&(t=!1!==i.updateVersioning()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[9,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","versioning"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](18,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](19,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](20,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables versioning for the objects in the bucket."]))],(function(l,n){l(n,4,0),l(n,12,0,"versioning"),l(n,15,0,"versioning")}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,u.isVersioningEnabled,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Zt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Qt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,13,{FormControlNames:1}),e["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mfa-token-serial"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Token Serial Number"])),(l()(),e["ɵeld"](6,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","mfa-token-serial"],["id","mfa-token-serial"],["name","mfa-token-serial"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[13,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Zt)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"mfa-token-serial"),l(n,13,0,"mfa-token-serial"),l(n,15,0,u.bucketForm.showError("mfa-token-serial",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Yt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Wt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,15,{FormControlNames:1}),e["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mfa-token-pin"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Token PIN"])),(l()(),e["ɵeld"](6,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","mfa-token-pin"],["id","mfa-token-pin"],["name","mfa-token-pin"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,8)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,8)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,8)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](10,671744,[[15,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Yt)),e["ɵdid"](15,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,10,0,"mfa-token-pin"),l(n,13,0,"mfa-token-pin"),l(n,15,0,u.bucketForm.showError("mfa-token-pin",e["ɵnov"](n.parent.parent,3),"required"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Jt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,25,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Multi-Factor Authentication"])),(l()(),e["ɵeld"](3,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](4,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,11,{FormControlNames:1}),e["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),e["ɵeld"](7,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](9,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","mfa-delete"],["id","mfa-delete"],["name","mfa-delete"],["type","checkbox"]],[[8,"checked",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0,i=l.component;return"change"===n&&(t=!1!==e["ɵnov"](l,10).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,10).onTouched()&&t),"change"===n&&(t=!1!==i.updateMfaDelete()&&t),t}),null,null)),e["ɵdid"](10,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](12,671744,[[11,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](14,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](15,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](16,0,null,null,1,"label",[["class","custom-control-label"],["for","mfa-delete"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Delete enabled"])),(l()(),e["ɵeld"](18,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](19,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](20,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state."])),(l()(),e["ɵand"](16777216,null,null,1,null,Qt)),e["ɵdid"](23,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Wt)),e["ɵdid"](25,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,4,0),l(n,12,0,"mfa-delete"),l(n,15,0,"mfa-delete"),l(n,23,0,u.areMfaCredentialsRequired()),l(n,25,0,u.areMfaCredentialsRequired())}),(function(l,n){var u=n.component;l(n,3,0,e["ɵnov"](n,4).hasErrors,e["ɵnov"](n,4).hasSuccess),l(n,9,0,u.isMfaDeleteEnabled,e["ɵnov"](n,14).ngClassUntouched,e["ɵnov"](n,14).ngClassTouched,e["ɵnov"](n,14).ngClassPristine,e["ɵnov"](n,14).ngClassDirty,e["ɵnov"](n,14).ngClassValid,e["ɵnov"](n,14).ngClassInvalid,e["ɵnov"](n,14).ngClassPending,e["ɵnov"](n,15).validClass,e["ɵnov"](n,15).invalidClass)}))}function Xt(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,19,{FormControlNames:1}),e["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","lock_mode"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Mode"])),(l()(),e["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","lock_mode"],["id","lock_mode"],["name","lock_mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,8).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,8).onTouched()&&t),t}),null,null)),e["ɵdid"](8,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](10,671744,[[19,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](13,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](14,0,null,null,3,"option",[["value","COMPLIANCE"]],null,null,null,null,null)),e["ɵdid"](15,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](16,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Compliance"])),(l()(),e["ɵeld"](18,0,null,null,3,"option",[["value","GOVERNANCE"]],null,null,null,null,null)),e["ɵdid"](19,147456,null,0,d.v,[e.ElementRef,e.Renderer2,[2,d.A]],{value:[0,"value"]},null),e["ɵdid"](20,147456,null,0,d.F,[e.ElementRef,e.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),e["ɵted"](-1,null,["Governance"]))],(function(l,n){l(n,1,0),l(n,10,0,"lock_mode"),l(n,13,0,"lock_mode"),l(n,15,0,"COMPLIANCE"),l(n,16,0,"COMPLIANCE"),l(n,19,0,"GOVERNANCE"),l(n,20,0,"GOVERNANCE")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,7,0,e["ɵnov"](n,12).ngClassUntouched,e["ɵnov"](n,12).ngClassTouched,e["ɵnov"](n,12).ngClassPristine,e["ɵnov"](n,12).ngClassDirty,e["ɵnov"](n,12).ngClassValid,e["ɵnov"](n,12).ngClassInvalid,e["ɵnov"](n,12).ngClassPending,e["ɵnov"](n,13).validClass,e["ɵnov"](n,13).invalidClass)}))}function Ht(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be a positive integer."]))],null,null)}function li(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Retention period requires either Days or Years."]))],null,null)}function ni(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,21,{FormControlNames:1}),e["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,5,"label",[["class","cd-col-form-label"],["for","lock_retention_period_days"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Days"])),(l()(),e["ɵeld"](7,0,null,null,2,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](8,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵted"](-1,0,["The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket."])),(l()(),e["ɵeld"](10,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,7,"input",[["class","form-control"],["formControlName","lock_retention_period_days"],["id","lock_retention_period_days"],["min","0"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,13).onTouched()&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](13,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](15,671744,[[21,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](17,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](18,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ht)),e["ɵdid"](20,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,li)),e["ɵdid"](22,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,15,0,"lock_retention_period_days"),l(n,18,0,"lock_retention_period_days"),l(n,20,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"pattern")),l(n,22,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"eitherDaysOrYears"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass)}))}function ui(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The entered value must be a positive integer."]))],null,null)}function ei(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Retention period requires either Days or Years."]))],null,null)}function ti(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](1,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,23,{FormControlNames:1}),e["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,5,"label",[["class","cd-col-form-label"],["for","lock_retention_period_years"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Years"])),(l()(),e["ɵeld"](7,0,null,null,2,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](8,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵted"](-1,0,["The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket."])),(l()(),e["ɵeld"](10,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](11,0,null,null,7,"input",[["class","form-control"],["formControlName","lock_retention_period_years"],["id","lock_retention_period_years"],["min","0"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,12)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,12).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,12)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,12)._compositionEnd(u.target.value)&&t),"change"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"input"===n&&(t=!1!==e["ɵnov"](l,13).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,13).onTouched()&&t),t}),null,null)),e["ɵdid"](12,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵdid"](13,16384,null,0,d.w,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l,n){return[l,n]}),[d.e,d.w]),e["ɵdid"](15,671744,[[23,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](17,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](18,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ui)),e["ɵdid"](20,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ei)),e["ɵdid"](22,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,15,0,"lock_retention_period_years"),l(n,18,0,"lock_retention_period_years"),l(n,20,0,u.bucketForm.showError("lock_retention_period_days",e["ɵnov"](n.parent,3),"pattern")),l(n,22,0,u.bucketForm.showError("lock_retention_period_years",e["ɵnov"](n.parent,3),"eitherDaysOrYears"))}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,11,0,e["ɵnov"](n,17).ngClassUntouched,e["ɵnov"](n,17).ngClassTouched,e["ɵnov"](n,17).ngClassPristine,e["ɵnov"](n,17).ngClassDirty,e["ɵnov"](n,17).ngClassValid,e["ɵnov"](n,17).ngClassInvalid,e["ɵnov"](n,17).ngClassPending,e["ɵnov"](n,18).validClass,e["ɵnov"](n,18).invalidClass)}))}function ii(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,115,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,114,"form",[["name","bucketForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var t=!0;return"submit"===n&&(t=!1!==e["ɵnov"](l,3).onSubmit(u)&&t),"reset"===n&&(t=!1!==e["ɵnov"](l,3).onReset()&&t),"submit"===n&&(t=!1!==e["ɵnov"](l,6).onSubmit()&&t),t}),null,null)),e["ɵdid"](2,16384,null,0,d.G,[],null,null),e["ɵdid"](3,540672,[["frm",4]],0,d.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,d.d,null,[d.l]),e["ɵdid"](5,16384,null,0,d.s,[[4,d.d]],null,null),e["ɵdid"](6,16384,null,0,Un.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](7,0,null,null,108,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](9,null,[""," ",""])),e["ɵppd"](10,1),e["ɵppd"](11,1),(l()(),e["ɵeld"](12,0,null,null,94,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,St)),e["ɵdid"](14,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](15,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](16,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,3,{FormControlNames:1}),e["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),e["ɵeld"](19,0,null,0,4,"label",[["class","cd-col-form-label"],["for","bid"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](21,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](22,{required:0}),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](24,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](25,0,null,null,7,"input",[["class","form-control"],["formControlName","bid"],["id","bid"],["name","bid"],["placeholder","Name..."],["type","text"]],[[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var t=!0;return"input"===n&&(t=!1!==e["ɵnov"](l,27)._handleInput(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,27).onTouched()&&t),"compositionstart"===n&&(t=!1!==e["ɵnov"](l,27)._compositionStart()&&t),"compositionend"===n&&(t=!1!==e["ɵnov"](l,27)._compositionEnd(u.target.value)&&t),t}),null,null)),e["ɵdid"](26,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](27,16384,null,0,d.e,[e.Renderer2,e.ElementRef,[2,d.b]],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.e]),e["ɵdid"](29,671744,[[3,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](31,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](32,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Dt)),e["ɵdid"](34,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Ft)),e["ɵdid"](36,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,jt)),e["ɵdid"](38,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](39,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](40,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,5,{FormControlNames:1}),e["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),e["ɵeld"](43,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","owner"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Owner"])),(l()(),e["ɵeld"](45,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](46,0,null,null,13,"select",[["class","form-control custom-select"],["formControlName","owner"],["id","owner"],["name","owner"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,48).onChange(u.target.value)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,48).onTouched()&&t),t}),null,null)),e["ɵdid"](47,4210688,null,0,Wn.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](48,16384,null,0,d.A,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.A]),e["ɵdid"](50,671744,[[5,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](52,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](53,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Pt)),e["ɵdid"](55,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Bt)),e["ɵdid"](57,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,At)),e["ɵdid"](59,278528,null,0,Dl.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Mt)),e["ɵdid"](61,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](62,0,null,null,12,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](63,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,7,{FormControlNames:1}),e["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),e["ɵeld"](66,0,null,0,4,"label",[["class","cd-col-form-label"],["for","placement-target"]],null,null,null,null,null)),e["ɵprd"](512,null,Dl["ɵNgClassImpl"],Dl["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](68,278528,null,0,Dl.NgClass,[Dl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](69,{required:0}),(l()(),e["ɵted"](-1,null,["Placement target"])),(l()(),e["ɵeld"](71,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](0,[["placementTargetSelect",2]],null,0,null,Gt)),(l()(),e["ɵand"](16777216,null,null,1,null,Kt)),e["ɵdid"](74,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,$t)),e["ɵdid"](76,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Jt)),e["ɵdid"](78,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](79,0,null,null,27,"fieldset",[],null,null,null,null,null)),(l()(),e["ɵeld"](80,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Locking"])),(l()(),e["ɵeld"](82,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Mn.b,Mn.a)),e["ɵdid"](83,1163264,null,2,Un.c,[e.ElementRef,Un.g],null,null),e["ɵqud"](603979776,17,{FormControlNames:1}),e["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),e["ɵeld"](86,0,null,0,14,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](87,0,null,null,13,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](88,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","lock_enabled"],["id","lock_enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var t=!0;return"change"===n&&(t=!1!==e["ɵnov"](l,89).onChange(u.target.checked)&&t),"blur"===n&&(t=!1!==e["ɵnov"](l,89).onTouched()&&t),t}),null,null)),e["ɵdid"](89,16384,null,0,d.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,d.p,(function(l){return[l]}),[d.c]),e["ɵdid"](91,671744,[[17,4]],0,d.j,[[3,d.d],[8,null],[8,null],[6,d.p],[2,d.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,d.q,null,[d.j]),e["ɵdid"](93,16384,null,0,d.r,[[4,d.q]],null,null),e["ɵdid"](94,16384,null,0,Un.h,[[3,d.d],Un.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](95,0,null,null,1,"label",[["class","custom-control-label"],["for","lock_enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"])),(l()(),e["ɵeld"](97,0,null,null,3,"cd-helper",[],null,null,null,qt.b,qt.a)),e["ɵdid"](98,49152,null,0,Tt.a,[],null,null),(l()(),e["ɵeld"](99,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket."])),(l()(),e["ɵand"](16777216,null,null,1,null,Xt)),e["ɵdid"](102,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ni)),e["ɵdid"](104,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ti)),e["ɵdid"](106,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](107,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](108,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](109,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Jn.b,Jn.a)),e["ɵdid"](110,114688,null,0,Xn.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](111,0,[""," ",""])),e["ɵppd"](112,1),e["ɵppd"](113,1),(l()(),e["ɵeld"](114,0,null,null,1,"cd-back-button",[],null,null,null,Gn.b,Gn.a)),e["ɵdid"](115,49152,null,0,Kn.a,[Dl.Location,t.b],null,null)],(function(l,n){var u=n.component;l(n,3,0,u.bucketForm),l(n,6,0,u.bucketForm),l(n,14,0,u.editing),l(n,16,0);var t=l(n,22,0,!u.editing);l(n,21,0,"cd-col-form-label",t),l(n,26,0,!u.editing),l(n,29,0,"bid"),l(n,32,0,"bid"),l(n,34,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"required")),l(n,36,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"bucketNameInvalid")),l(n,38,0,u.bucketForm.showError("bid",e["ɵnov"](n,3),"bucketNameExists")),l(n,40,0),l(n,47,0,u.editing),l(n,50,0,"owner"),l(n,53,0,"owner"),l(n,55,0,null===u.owners),l(n,57,0,null!==u.owners),l(n,59,0,u.owners),l(n,61,0,u.bucketForm.showError("owner",e["ɵnov"](n,3),"required")),l(n,63,0);var i=l(n,69,0,!u.editing);l(n,68,0,"cd-col-form-label",i),l(n,74,0,u.editing,e["ɵnov"](n,72)),l(n,76,0,u.editing),l(n,78,0,u.editing),l(n,83,0),l(n,91,0,"lock_enabled"),l(n,94,0,"lock_enabled"),l(n,102,0,u.bucketForm.getValue("lock_enabled")),l(n,104,0,u.bucketForm.getValue("lock_enabled")),l(n,106,0,u.bucketForm.getValue("lock_enabled")),l(n,110,0,u.bucketForm)}),(function(l,n){var u=n.component;l(n,1,0,e["ɵnov"](n,5).ngClassUntouched,e["ɵnov"](n,5).ngClassTouched,e["ɵnov"](n,5).ngClassPristine,e["ɵnov"](n,5).ngClassDirty,e["ɵnov"](n,5).ngClassValid,e["ɵnov"](n,5).ngClassInvalid,e["ɵnov"](n,5).ngClassPending);var t=e["ɵunv"](n,9,0,l(n,10,0,e["ɵnov"](n.parent,0),u.action)),i=e["ɵunv"](n,9,1,l(n,11,0,e["ɵnov"](n.parent,1),u.resource));l(n,9,0,t,i),l(n,15,0,e["ɵnov"](n,16).hasErrors,e["ɵnov"](n,16).hasSuccess),l(n,25,0,u.editing,e["ɵnov"](n,31).ngClassUntouched,e["ɵnov"](n,31).ngClassTouched,e["ɵnov"](n,31).ngClassPristine,e["ɵnov"](n,31).ngClassDirty,e["ɵnov"](n,31).ngClassValid,e["ɵnov"](n,31).ngClassInvalid,e["ɵnov"](n,31).ngClassPending,e["ɵnov"](n,32).validClass,e["ɵnov"](n,32).invalidClass),l(n,39,0,e["ɵnov"](n,40).hasErrors,e["ɵnov"](n,40).hasSuccess),l(n,46,0,e["ɵnov"](n,52).ngClassUntouched,e["ɵnov"](n,52).ngClassTouched,e["ɵnov"](n,52).ngClassPristine,e["ɵnov"](n,52).ngClassDirty,e["ɵnov"](n,52).ngClassValid,e["ɵnov"](n,52).ngClassInvalid,e["ɵnov"](n,52).ngClassPending,e["ɵnov"](n,53).validClass,e["ɵnov"](n,53).invalidClass),l(n,62,0,e["ɵnov"](n,63).hasErrors,e["ɵnov"](n,63).hasSuccess),l(n,82,0,e["ɵnov"](n,83).hasErrors,e["ɵnov"](n,83).hasSuccess),l(n,88,0,e["ɵnov"](n,93).ngClassUntouched,e["ɵnov"](n,93).ngClassTouched,e["ɵnov"](n,93).ngClassPristine,e["ɵnov"](n,93).ngClassDirty,e["ɵnov"](n,93).ngClassValid,e["ɵnov"](n,93).ngClassInvalid,e["ɵnov"](n,93).ngClassPending,e["ɵnov"](n,94).validClass,e["ɵnov"](n,94).invalidClass);var a=e["ɵunv"](n,111,0,l(n,112,0,e["ɵnov"](n.parent,0),u.action)),o=e["ɵunv"](n,111,1,l(n,113,0,e["ɵnov"](n.parent,1),u.resource));l(n,111,0,a,o)}))}function ai(l){return e["ɵvid"](0,[e["ɵpid"](0,Dl.TitleCasePipe,[]),e["ɵpid"](0,Bn.a,[]),(l()(),e["ɵand"](16777216,null,null,1,null,xt)),e["ɵdid"](3,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ii)),e["ɵdid"](5,16384,null,0,Dl.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,3,0,u.editing&&u.loading&&!u.error),l(n,5,0,!u.loading&&!u.error)}),null)}function oi(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-bucket-form",[],null,null,null,ai,Vt)),e["ɵdid"](1,114688,null,0,q,[ue.a,ue.m,k.a,b,C,_.a,w.a,wl.a,t.b],null,null)],(function(l,n){l(n,1,0)}),null)}var si=e["ɵccf"]("cd-rgw-bucket-form",q,oi,{},{},[]),di=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ri(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["type","info"]],null,null,null,be.b,be.a)),e["ɵdid"](1,114688,null,0,Ce.a,[wl.a],{type:[0,"type"]},null),(l()(),e["ɵted"](2,0,[" ",""])),(l()(),e["ɵeld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,0,4,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Please consult the "])),(l()(),e["ɵeld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(l()(),e["ɵted"](-1,null,["documentation"])),(l()(),e["ɵted"](-1,null,[" on how to configure and enable the Object Gateway management functionality."]))],(function(l,n){l(n,1,0,"info")}),(function(l,n){var u=n.component;l(n,2,0,u.message),l(n,6,0,e["ɵinlineInterpolate"](1,"",u.docsUrl,""))}))}function ci(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-rgw-501",[],null,null,null,ri,di)),e["ɵdid"](1,245760,null,0,s,[ue.a,o.a,a.a],null,null)],(function(l,n){l(n,1,0)}),null)}var mi=e["ɵccf"]("cd-rgw-501",s,ci,{},{},[]);u.d(n,"RgwModuleNgFactory",(function(){return gi})),u.d(n,"RoutedRgwModuleNgFactory",(function(){return pi}));var gi=e["ɵcmf"](ll,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[rl.a,cl.a,ml.a,gl.a,gl.b,pl.a,fl.a,vl.a,hl.a,bl.a,Cl.a,Ul,nn,Pn,Yn,gu,Iu,ju]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,Dl.NgLocalization,Dl.NgLocaleLocalization,[e.LOCALE_ID,[2,Dl["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,Pu.a,Pu.a,[]),e["ɵmpd"](4608,Bu.a,Bu.a,[]),e["ɵmpd"](4608,Ol.a,Ol.a,[wl.a]),e["ɵmpd"](4608,Dl.DatePipe,Dl.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,a.a,a.a,[]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,sn.a,sn.a,[L.a]),e["ɵmpd"](4608,Au.a,Au.a,[L.a]),e["ɵmpd"](4608,Ll.a,Ll.a,[L.a]),e["ɵmpd"](4608,Mu.a,Mu.a,[]),e["ɵmpd"](4608,Uu.a,Uu.a,[]),e["ɵmpd"](4608,Ou.a,Ou.a,[]),e["ɵmpd"](4608,Lu.a,Lu.a,[]),e["ɵmpd"](4608,Tl.a,Tl.a,[Dl.DatePipe]),e["ɵmpd"](4608,zu.a,zu.a,[]),e["ɵmpd"](4608,Gu.a,Gu.a,[]),e["ɵmpd"](4608,Ku.a,Ku.a,[]),e["ɵmpd"](4608,$u.a,$u.a,[]),e["ɵmpd"](4608,Zu.a,Zu.a,[]),e["ɵmpd"](4608,Qu.a,Qu.a,[wl.a]),e["ɵmpd"](4608,Bn.a,Bn.a,[]),e["ɵmpd"](4608,on.a,on.a,[]),e["ɵmpd"](4608,Yu.a,Yu.a,[]),e["ɵmpd"](4608,d.D,d.D,[]),e["ɵmpd"](4608,d.h,d.h,[]),e["ɵmpd"](4608,Wu.b,Wu.b,[]),e["ɵmpd"](4608,Ju.a,Ju.a,[]),e["ɵmpd"](4608,Xu.a,Xu.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,tn.a,tn.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Xu.a,e.ApplicationRef]),e["ɵmpd"](4608,Hu.c,Hu.c,[]),e["ɵmpd"](4608,le.a,le.a,[]),e["ɵmpd"](4608,rn.b,rn.b,[e.RendererFactory2,tn.a]),e["ɵmpd"](4608,ne.y,ne.y,[Dl.DOCUMENT]),e["ɵmpd"](4608,ne.r,ne.r,[]),e["ɵmpd"](4608,ne.a,ne.a,[]),e["ɵmpd"](4608,en.f,en.f,[]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,i.a,i.a,[ue.m,F.a]),e["ɵmpd"](4608,_l.f,_l.f,[]),e["ɵmpd"](1073742336,Dl.CommonModule,Dl.CommonModule,[]),e["ɵmpd"](1073742336,ee.a,ee.a,[]),e["ɵmpd"](1073742336,d.C,d.C,[]),e["ɵmpd"](1073742336,d.n,d.n,[]),e["ɵmpd"](1073742336,d.y,d.y,[]),e["ɵmpd"](1073742336,Wu.c,Wu.c,[]),e["ɵmpd"](1073742336,Ju.d,Ju.d,[]),e["ɵmpd"](1073742336,Hu.d,Hu.d,[]),e["ɵmpd"](1073742336,le.d,le.d,[]),e["ɵmpd"](1073742336,te.b,te.b,[]),e["ɵmpd"](1073742336,rn.e,rn.e,[]),e["ɵmpd"](1073742336,ie.a,ie.a,[]),e["ɵmpd"](1073742336,en.e,en.e,[]),e["ɵmpd"](1073742336,Un.f,Un.f,[]),e["ɵmpd"](1073742336,ae.ClickOutsideModule,ae.ClickOutsideModule,[]),e["ɵmpd"](1073742336,oe.b,oe.b,[]),e["ɵmpd"](1073742336,ue.q,ue.q,[[2,ue.v],[2,ue.m]]),e["ɵmpd"](1073742336,se.a,se.a,[]),e["ɵmpd"](1073742336,ne.u,ne.u,[]),e["ɵmpd"](1073742336,de.a,de.a,[]),e["ɵmpd"](1073742336,h.a,h.a,[]),e["ɵmpd"](1073742336,re.a,re.a,[]),e["ɵmpd"](1073742336,ce.a,ce.a,[]),e["ɵmpd"](1073742336,_l.d,_l.d,[]),e["ɵmpd"](1073742336,ll,ll,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,en.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),pi=e["ɵcmf"](dl,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[rl.a,cl.a,ml.a,gl.a,gl.b,pl.a,fl.a,vl.a,hl.a,bl.a,Cl.a,Ul,nn,Pn,Yn,gu,Iu,ju,he,Ee,yt,Nt,si,mi]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,Dl.NgLocalization,Dl.NgLocaleLocalization,[e.LOCALE_ID,[2,Dl["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,Pu.a,Pu.a,[]),e["ɵmpd"](4608,Bu.a,Bu.a,[]),e["ɵmpd"](4608,Ol.a,Ol.a,[wl.a]),e["ɵmpd"](4608,Dl.DatePipe,Dl.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,a.a,a.a,[]),e["ɵmpd"](4608,L.a,L.a,[]),e["ɵmpd"](4608,sn.a,sn.a,[L.a]),e["ɵmpd"](4608,Au.a,Au.a,[L.a]),e["ɵmpd"](4608,Ll.a,Ll.a,[L.a]),e["ɵmpd"](4608,Mu.a,Mu.a,[]),e["ɵmpd"](4608,Uu.a,Uu.a,[]),e["ɵmpd"](4608,Ou.a,Ou.a,[]),e["ɵmpd"](4608,Lu.a,Lu.a,[]),e["ɵmpd"](4608,Tl.a,Tl.a,[Dl.DatePipe]),e["ɵmpd"](4608,zu.a,zu.a,[]),e["ɵmpd"](4608,Gu.a,Gu.a,[]),e["ɵmpd"](4608,Ku.a,Ku.a,[]),e["ɵmpd"](4608,$u.a,$u.a,[]),e["ɵmpd"](4608,Zu.a,Zu.a,[]),e["ɵmpd"](4608,Qu.a,Qu.a,[wl.a]),e["ɵmpd"](4608,Bn.a,Bn.a,[]),e["ɵmpd"](4608,on.a,on.a,[]),e["ɵmpd"](4608,Yu.a,Yu.a,[]),e["ɵmpd"](4608,d.D,d.D,[]),e["ɵmpd"](4608,d.h,d.h,[]),e["ɵmpd"](4608,Wu.b,Wu.b,[]),e["ɵmpd"](4608,Ju.a,Ju.a,[]),e["ɵmpd"](4608,Xu.a,Xu.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,tn.a,tn.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,Xu.a,e.ApplicationRef]),e["ɵmpd"](4608,Hu.c,Hu.c,[]),e["ɵmpd"](4608,le.a,le.a,[]),e["ɵmpd"](4608,rn.b,rn.b,[e.RendererFactory2,tn.a]),e["ɵmpd"](4608,ne.y,ne.y,[Dl.DOCUMENT]),e["ɵmpd"](4608,ne.r,ne.r,[]),e["ɵmpd"](4608,ne.a,ne.a,[]),e["ɵmpd"](4608,en.f,en.f,[]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,i.a,i.a,[ue.m,F.a]),e["ɵmpd"](4608,_l.f,_l.f,[]),e["ɵmpd"](1073742336,Dl.CommonModule,Dl.CommonModule,[]),e["ɵmpd"](1073742336,ee.a,ee.a,[]),e["ɵmpd"](1073742336,d.C,d.C,[]),e["ɵmpd"](1073742336,d.n,d.n,[]),e["ɵmpd"](1073742336,d.y,d.y,[]),e["ɵmpd"](1073742336,Wu.c,Wu.c,[]),e["ɵmpd"](1073742336,Ju.d,Ju.d,[]),e["ɵmpd"](1073742336,Hu.d,Hu.d,[]),e["ɵmpd"](1073742336,le.d,le.d,[]),e["ɵmpd"](1073742336,te.b,te.b,[]),e["ɵmpd"](1073742336,rn.e,rn.e,[]),e["ɵmpd"](1073742336,ie.a,ie.a,[]),e["ɵmpd"](1073742336,en.e,en.e,[]),e["ɵmpd"](1073742336,Un.f,Un.f,[]),e["ɵmpd"](1073742336,ae.ClickOutsideModule,ae.ClickOutsideModule,[]),e["ɵmpd"](1073742336,oe.b,oe.b,[]),e["ɵmpd"](1073742336,ue.q,ue.q,[[2,ue.v],[2,ue.m]]),e["ɵmpd"](1073742336,se.a,se.a,[]),e["ɵmpd"](1073742336,ne.u,ne.u,[]),e["ɵmpd"](1073742336,de.a,de.a,[]),e["ɵmpd"](1073742336,h.a,h.a,[]),e["ɵmpd"](1073742336,re.a,re.a,[]),e["ɵmpd"](1073742336,ce.a,ce.a,[]),e["ɵmpd"](1073742336,_l.d,_l.d,[]),e["ɵmpd"](1073742336,ll,ll,[]),e["ɵmpd"](1073742336,dl,dl,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,en.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,ue.k,(function(){return[[{path:"",redirectTo:"daemon",pathMatch:"full"},{path:"daemon",component:U,data:nl},{path:"user",data:ul,children:[{path:"",component:H},{path:"create",component:W,data:el},{path:"edit/:uid",component:W,data:tl}]},{path:"bucket",data:il,children:[{path:"",component:B},{path:"create",component:q,data:al},{path:"edit/:bid",component:q,data:ol}]},{path:"501/:message",component:s,canActivate:[i.a],data:sl}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.f45b72794d78f44d11b9.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/8.f45b72794d78f44d11b9.js
deleted file mode 100644 (file)
index 944835b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{nOaW:function(l,n,e){"use strict";e.r(n);var u=e("8Y7J"),i=e("sne2"),t=e("s7LF"),o=e("LvDl"),a=e("IheW"),s=e("GiVz"),r=e("pL04");let d=(()=>{class l{constructor(l,n){this.http=l,this.i18n=n,this.apiPath="api/crush_rule",this.formTooltips={root:this.i18n("The name of the node under which data should be placed."),failure_domain:this.i18n("The type of CRUSH nodes across which we should separate replicas."),device_class:this.i18n("The device class data should be placed on.")}}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}}return l.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new l(u["ɵɵinject"](a.c),u["ɵɵinject"](s.a))},token:l,providedIn:r.a}),l})(),c=(()=>{class l{constructor(l,n){this.http=l,this.i18n=n,this.apiPath="api/erasure_code_profile",this.formTooltips={k:this.i18n("Each object is split in data-chunks parts, each stored on a different OSD."),m:this.i18n("Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data."),plugins:{jerasure:{description:this.i18n("The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools."),technique:this.i18n("The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2."),packetSize:this.i18n("The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.")},lrc:{description:this.i18n("With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven."),l:this.i18n("Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set."),crushLocality:this.i18n("The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.")},isa:{description:this.i18n("The isa plugin encapsulates the ISA library. It only runs on Intel processors."),technique:this.i18n("The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.")},shec:{description:this.i18n("The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes."),c:this.i18n("The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.")}},crushRoot:this.i18n("The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default."),crushFailureDomain:this.i18n("Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host."),crushDeviceClass:this.i18n("Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map."),directory:this.i18n("Set the directory name from which the erasure code plugin is loaded.")}}list(){return this.http.get(this.apiPath)}create(l){return this.http.post(this.apiPath,l,{observe:"response"})}delete(l){return this.http.delete(`${this.apiPath}/${l}`,{observe:"response"})}getInfo(){return this.http.get(`ui-${this.apiPath}/info`)}}return l.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new l(u["ɵɵinject"](a.c),u["ɵɵinject"](s.a))},token:l,providedIn:r.a}),l})();var m=e("Ekvf"),f=e("0+/T"),g=e("a96k"),p=e("oxzT"),h=e("QFaf"),v=e("1Ni5"),C=e("PhyI"),b=e("kvvV"),R=e("Fgil"),I=e("aexS"),E=e("aXbf"),N=e("kn/O"),y=e("2EZI");class w{constructor(l,n,e,i,t,o){this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.crushRuleService=i,this.i18n=t,this.actionLabels=o,this.submitAction=new u.EventEmitter,this.buckets=[],this.failureDomains={},this.devices=[],this.tooltips=this.crushRuleService.formTooltips,this.nodes=[],this.easyNodes={},this.action=this.actionLabels.CREATE,this.resource=this.i18n("Crush Rule"),this.createForm()}createForm(){this.form=this.formBuilder.group({name:["",[t.B.required,t.B.pattern("[A-Za-z0-9_-]+"),v.a.custom("uniqueName",l=>this.names&&-1!==this.names.indexOf(l))]],root:null,failure_domain:"",device_class:""})}ngOnInit(){this.crushRuleService.getInfo().subscribe(({names:l,nodes:n})=>{this.nodes=n,n.forEach(l=>{this.easyNodes[l.id]=l}),this.buckets=o.sortBy(n.filter(l=>l.children),"name"),this.names=l,this.preSelectRoot()}),this.form.get("root").valueChanges.subscribe(l=>this.updateRoot(l)),this.form.get("failure_domain").valueChanges.subscribe(l=>this.updateDevices(l))}preSelectRoot(){const l=this.nodes.find(l=>"root"===l.type);this.form.silentSet("root",l),this.updateRoot(l)}updateRoot(l){const n=this.getSubNodes(l),e={};n.forEach(l=>{e[l.type]||(e[l.type]=[]),e[l.type].push(l)}),Object.keys(e).forEach(l=>{e[l].length<=1&&delete e[l]}),this.failureDomains=e,this.updateFailureDomain()}getSubNodes(l){let n=[l];return l.children?(l.children.forEach(l=>{n=n.concat(this.getSubNodes(this.easyNodes[l]))}),n):n}updateFailureDomain(){let l=this.getIncludedCustomValue("failure_domain",Object.keys(this.failureDomains));""===l&&(l=this.setMostCommonDomain()),this.updateDevices(l)}getIncludedCustomValue(l,n){const e=this.form.get(l);return e.dirty&&n.includes(e.value)?e.value:""}setMostCommonDomain(){let l={n:0,type:""};return Object.keys(this.failureDomains).forEach(n=>{const e=this.failureDomains[n].length;l.n<e&&(l={n:e,type:n})}),this.form.silentSet("failure_domain",l.type),l.type}updateDevices(l){const n=o.flatten(this.failureDomains[l].map(l=>this.getSubNodes(l)));this.devices=o.uniq(n.filter(l=>l.device_class).map(l=>l.device_class)).sort();const e=1===this.devices.length?this.devices[0]:this.getIncludedCustomValue("device_class",this.devices);this.form.get("device_class").setValue(e)}failureDomainKeys(){return Object.keys(this.failureDomains).sort()}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l=o.cloneDeep(this.form.value);l.root=l.root.name,""===l.device_class&&delete l.device_class,this.taskWrapper.wrapTaskAroundCall({task:new b.a("crushRule/create",l),call:this.crushRuleService.create(l)}).subscribe(void 0,()=>{this.form.setErrors({cdSubmitButton:!0})},()=>{this.bsModalRef.hide(),this.submitAction.emit(l)})}}class V{}class T{constructor(l,n,e,i,t,o){this.formBuilder=l,this.bsModalRef=n,this.taskWrapper=e,this.ecpService=i,this.i18n=t,this.actionLabels=o,this.submitAction=new u.EventEmitter,this.requiredControls=[],this.devices=[],this.tooltips=this.ecpService.formTooltips,this.PLUGIN={LRC:"lrc",SHEC:"shec",JERASURE:"jerasure",ISA:"isa"},this.plugin=this.PLUGIN.JERASURE,this.action=this.actionLabels.CREATE,this.resource=this.i18n("EC Profile"),this.createForm(),this.setJerasureDefaults()}createForm(){this.form=this.formBuilder.group({name:[null,[t.B.required,t.B.pattern("[A-Za-z0-9_-]+"),v.a.custom("uniqueName",l=>this.names&&-1!==this.names.indexOf(l))]],plugin:[this.PLUGIN.JERASURE,[t.B.required]],k:[1],m:[1],crushFailureDomain:["host"],crushRoot:["default"],crushDeviceClass:[""],directory:[""],technique:["reed_sol_van"],packetSize:[2048,[t.B.min(1)]],l:[1,[t.B.required,t.B.min(1)]],crushLocality:[""],c:[1,[t.B.required,t.B.min(1)]]}),this.form.get("plugin").valueChanges.subscribe(l=>this.onPluginChange(l))}onPluginChange(l){this.plugin=l,l===this.PLUGIN.JERASURE?this.setJerasureDefaults():l===this.PLUGIN.LRC?this.setLrcDefaults():l===this.PLUGIN.ISA?this.setIsaDefaults():l===this.PLUGIN.SHEC&&this.setShecDefaults()}setNumberValidators(l,n){const e=[t.B.min(1)];n&&e.push(t.B.required),this.form.get(l).setValidators(e)}setKMValidators(l){["k","m"].forEach(n=>this.setNumberValidators(n,l))}setJerasureDefaults(){this.requiredControls=["k","m"],this.setDefaults({k:4,m:2}),this.setKMValidators(!0),this.techniques=["reed_sol_van","reed_sol_r6_op","cauchy_orig","cauchy_good","liberation","blaum_roth","liber8tion"]}setLrcDefaults(){this.requiredControls=["k","m","l"],this.setKMValidators(!0),this.setNumberValidators("l",!0),this.setDefaults({k:4,m:2,l:3})}setIsaDefaults(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:7,m:3}),this.techniques=["reed_sol_van","cauchy"]}setShecDefaults(){this.requiredControls=[],this.setKMValidators(!1),this.setDefaults({k:4,m:3,c:2})}setDefaults(l){Object.keys(l).forEach(n=>{this.form.get(n).pristine&&this.form.silentSet(n,l[n])})}ngOnInit(){this.ecpService.getInfo().subscribe(({failure_domains:l,plugins:n,names:e,directory:u,devices:i})=>{this.failureDomains=l,this.plugins=n,this.names=e,this.devices=i,this.form.silentSet("directory",u)})}createJson(){const l={technique:[this.PLUGIN.ISA,this.PLUGIN.JERASURE],packetSize:[this.PLUGIN.JERASURE],l:[this.PLUGIN.LRC],crushLocality:[this.PLUGIN.LRC],c:[this.PLUGIN.SHEC]},n=new V,e=this.form.getValue("plugin");return Object.keys(this.form.controls).filter(n=>{const u=l[n],i=this.form.get(n);return(u&&u.includes(e)||!u)&&(i.dirty||this.requiredControls.includes(n))&&this.form.getValue(n)}).forEach(l=>{this.extendJson(l,n)}),n}extendJson(l,n){n[{crushFailureDomain:"crush-failure-domain",crushRoot:"crush-root",crushDeviceClass:"crush-device-class",packetSize:"packetsize",crushLocality:"crush-locality"}[l]||l]=this.form.getValue(l)}onSubmit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l=this.createJson();this.taskWrapper.wrapTaskAroundCall({task:new b.a("ecp/create",{name:l.name}),call:this.ecpService.create(l)}).subscribe(void 0,()=>{this.form.setErrors({cdSubmitButton:!0})},()=>{this.bsModalRef.hide(),this.submitAction.emit(l)})}}var S=e("DNAf");class _{constructor(l){this.erasureInfo=!1,this.crushInfo=!1,this.pgs=1,this.poolTypes=["erasure","replicated"],this.applications={selected:[],default:["cephfs","rbd","rgw"],available:[],validators:[t.B.pattern("[A-Za-z0-9_]+"),t.B.maxLength(128)],messages:new S.a({empty:l("No applications added"),selectionLimit:{text:l("Applications limit reached"),tooltip:l("A pool can only have up to four applications definitions.")},customValidations:{pattern:l("Allowed characters '_a-zA-Z0-9'"),maxlength:l("Maximum length is 128 characters")},filter:l("Filter or add applications"),add:l("Add application")},l)}}}class q{constructor(l,n,e,t,o,a,s,r,d,c,m,f,g){this.dimlessBinaryPipe=l,this.route=n,this.router=e,this.modalService=t,this.poolService=o,this.authStorageService=a,this.formatter=s,this.bsModalService=r,this.taskWrapper=d,this.ecpService=c,this.crushRuleService=m,this.i18n=f,this.actionLabels=g,this.editing=!1,this.isReplicated=!1,this.isErasure=!1,this.data=new _(this.i18n),this.externalPgChange=!1,this.current={rules:[]},this.initializeConfigData=new u.EventEmitter,this.currentConfigurationValues={},this.icons=p.a,this.crushUsage=void 0,this.editing=this.router.url.startsWith(`/pool/${i.e.EDIT}`),this.action=this.editing?this.actionLabels.EDIT:this.actionLabels.CREATE,this.resource=this.i18n("pool"),this.authenticate(),this.createForm()}authenticate(){this.permission=this.authStorageService.getPermissions().pool,(!this.permission.read||!this.permission.update&&this.editing||!this.permission.create&&!this.editing)&&this.router.navigate(["/404"])}createForm(){const l=new h.a({mode:new t.i("none"),algorithm:new t.i(""),minBlobSize:new t.i("",{updateOn:"blur"}),maxBlobSize:new t.i("",{updateOn:"blur"}),ratio:new t.i("",{updateOn:"blur"})});this.form=new h.a({name:new t.i("",{validators:[t.B.pattern(/^[.A-Za-z0-9_/-]+$/),t.B.required,v.a.custom("rbdPool",()=>this.form&&this.form.getValue("name").includes("/")&&this.data&&-1!==this.data.applications.selected.indexOf("rbd"))]}),poolType:new t.i("",{validators:[t.B.required]}),crushRule:new t.i(null,{validators:[v.a.custom("tooFewOsds",l=>this.info&&l&&this.info.osd_count<l.min_size),v.a.custom("required",l=>this.isReplicated&&this.info.crush_rules_replicated.length>0&&!l)]}),size:new t.i("",{updateOn:"blur"}),erasureProfile:new t.i(null),pgNum:new t.i("",{validators:[t.B.required,t.B.min(1)]}),pgAutoscaleMode:new t.i(null),ecOverwrites:new t.i(!1),compression:l,max_bytes:new t.i(""),max_objects:new t.i(0,{validators:[t.B.min(0)]})},[v.a.custom("form",()=>null)])}ngOnInit(){this.poolService.getInfo().subscribe(l=>{this.initInfo(l),this.editing?this.initEditMode():this.setAvailableApps(),this.listenToChanges(),this.setComplexValidators()})}initInfo(l){this.pgAutoscaleModes=l.pg_autoscale_modes,this.form.silentSet("pgAutoscaleMode",l.pg_autoscale_default_mode),this.form.silentSet("algorithm",l.bluestore_compression_algorithm),this.info=l,this.initEcp(l.erasure_code_profiles)}initEcp(l){this.setListControlStatus("erasureProfile",l),this.ecProfiles=l}setListControlStatus(l,n){const e=this.form.get(l),u=e.value;1!==n.length||u&&o.isEqual(u,n[0])?0===n.length&&u&&e.setValue(null):e.setValue(n[0]),n.length<=1?e.enabled&&e.disable():e.disabled&&e.enable()}initEditMode(){this.disableForEdit(),this.routeParamsSubscribe=this.route.params.subscribe(l=>this.poolService.get(l.name).subscribe(l=>{this.data.pool=l,this.initEditFormData(l)}))}disableForEdit(){["poolType","crushRule","size","erasureProfile","ecOverwrites"].forEach(l=>this.form.get(l).disable())}initEditFormData(l){this.initializeConfigData.emit({initialData:l.configuration,sourceType:C.a.pool}),this.poolTypeChange(l.type);const n=this.info.crush_rules_replicated.concat(this.info.crush_rules_erasure),e={name:l.pool_name,poolType:l.type,crushRule:n.find(n=>n.rule_name===l.crush_rule),size:l.size,erasureProfile:this.ecProfiles.find(n=>n.name===l.erasure_code_profile),pgAutoscaleMode:l.pg_autoscale_mode,pgNum:l.pg_num,ecOverwrites:l.flags_names.includes("ec_overwrites"),mode:l.options.compression_mode,algorithm:l.options.compression_algorithm,minBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_min_blob_size),maxBlobSize:this.dimlessBinaryPipe.transform(l.options.compression_max_blob_size),ratio:l.options.compression_required_ratio,max_bytes:this.dimlessBinaryPipe.transform(l.quota_max_bytes),max_objects:l.quota_max_objects};Object.keys(e).forEach(l=>{const n=e[l];o.isUndefined(n)||""===n||this.form.silentSet(l,n)}),this.data.pgs=this.form.getValue("pgNum"),this.setAvailableApps(this.data.applications.default.concat(l.application_metadata)),this.data.applications.selected=l.application_metadata}setAvailableApps(l=this.data.applications.default){this.data.applications.available=o.uniq(l.sort()).map(l=>new g.a(!1,l,""))}listenToChanges(){this.listenToChangesDuringAddEdit(),this.editing||this.listenToChangesDuringAdd()}listenToChangesDuringAddEdit(){this.form.get("pgNum").valueChanges.subscribe(l=>{const n=l-this.data.pgs;1===Math.abs(n)&&2!==l?this.doPgPowerJump(n):this.data.pgs=l})}doPgPowerJump(l){const n=this.calculatePgPower()+l;this.setPgs(-1===l?Math.round(n):Math.floor(n))}calculatePgPower(l=this.form.getValue("pgNum")){return Math.log(l)/Math.log(2)}setPgs(l){const n=Math.pow(2,l<0?0:l);this.data.pgs=n,this.form.silentSet("pgNum",n)}listenToChangesDuringAdd(){this.form.get("poolType").valueChanges.subscribe(l=>{this.poolTypeChange(l)}),this.form.get("crushRule").valueChanges.subscribe(l=>{this.crushDeletionBtn&&this.crushDeletionBtn.isOpen&&this.crushDeletionBtn.hide(),l&&(this.crushRuleIsUsedBy(l.rule_name),this.replicatedRuleChange(),this.pgCalc())}),this.form.get("size").valueChanges.subscribe(()=>{this.pgCalc()}),this.form.get("erasureProfile").valueChanges.subscribe(()=>{this.pgCalc()}),this.form.get("mode").valueChanges.subscribe(()=>{["minBlobSize","maxBlobSize","ratio"].forEach(l=>{this.form.get(l).updateValueAndValidity({emitEvent:!1})})}),this.form.get("minBlobSize").valueChanges.subscribe(()=>{this.form.get("maxBlobSize").updateValueAndValidity({emitEvent:!1})}),this.form.get("maxBlobSize").valueChanges.subscribe(()=>{this.form.get("minBlobSize").updateValueAndValidity({emitEvent:!1})})}poolTypeChange(l){if("replicated"===l?this.setTypeBooleans(!0,!1):this.setTypeBooleans(!1,"erasure"===l),!l||!this.info)return void(this.current.rules=[]);const n=this.info["crush_rules_"+l]||[];this.current.rules=n,this.editing||(this.isReplicated&&this.setListControlStatus("crushRule",n),this.replicatedRuleChange(),this.pgCalc())}setTypeBooleans(l,n){this.isReplicated=l,this.isErasure=n}replicatedRuleChange(){if(!this.isReplicated)return;const l=this.form.get("size");let n=this.form.getValue("size")||3;const e=this.getMinSize(),u=this.getMaxSize();n<e?n=e:n>u&&(n=u),n!==l.value&&this.form.silentSet("size",n)}getMinSize(){if(!this.info||this.info.osd_count<1)return 0;const l=this.form.getValue("crushRule");return l?l.min_size:1}getMaxSize(){if(!this.info||this.info.osd_count<1)return 0;const l=this.info.osd_count;if(this.form.getValue("crushRule")){const n=this.form.get("crushRule").value.max_size;if(n<l)return n}return l}pgCalc(){const l=this.form.getValue("poolType");if(!this.info||this.form.get("pgNum").dirty||!l)return;const n=100*this.info.osd_count,e=this.isReplicated?this.replicatedPgCalc(n):this.erasurePgCalc(n);if(!e)return;const u=this.data.pgs;this.alignPgs(e),this.externalPgChange||(this.externalPgChange=u!==this.data.pgs)}replicatedPgCalc(l){const n=this.form.get("size"),e=n.value;return n.valid&&e>0?l/e:0}erasurePgCalc(l){const n=this.form.get("erasureProfile"),e=n.value;return(n.valid||n.disabled)&&e?l/(e.k+e.m):0}alignPgs(l=this.form.getValue("pgNum")){this.setPgs(Math.round(this.calculatePgPower(l<1?1:l)))}setComplexValidators(){this.editing?this.form.get("name").setValidators([this.form.get("name").validator,v.a.custom("uniqueName",l=>this.data.pool&&this.info&&-1!==this.info.pool_names.indexOf(l)&&this.info.pool_names.indexOf(l)!==this.info.pool_names.indexOf(this.data.pool.pool_name))]):(v.a.validateIf(this.form.get("size"),()=>this.isReplicated,[v.a.custom("min",l=>this.form.getValue("size")&&l<this.getMinSize()),v.a.custom("max",l=>this.form.getValue("size")&&this.getMaxSize()<l)]),this.form.get("name").setValidators([this.form.get("name").validator,v.a.custom("uniqueName",l=>this.info&&-1!==this.info.pool_names.indexOf(l))])),this.setCompressionValidators()}setCompressionValidators(){v.a.validateIf(this.form.get("minBlobSize"),()=>this.hasCompressionEnabled(),[t.B.min(0),v.a.custom("maximum",l=>this.oddBlobSize(l,this.form.getValue("maxBlobSize")))]),v.a.validateIf(this.form.get("maxBlobSize"),()=>this.hasCompressionEnabled(),[t.B.min(0),v.a.custom("minimum",l=>this.oddBlobSize(this.form.getValue("minBlobSize"),l))]),v.a.validateIf(this.form.get("ratio"),()=>this.hasCompressionEnabled(),[t.B.min(0),t.B.max(1)])}oddBlobSize(l,n){const e=this.formatter.toBytes(l),u=this.formatter.toBytes(n);return Boolean(e&&u&&e>=u)}hasCompressionEnabled(){return this.form.getValue("mode")&&"none"!==this.form.get("mode").value.toLowerCase()}describeCrushStep(l){return[l.op.replace("_"," "),l.item_name||"",l.type?l.num+" type "+l.type:""].join(" ")}addErasureCodeProfile(){this.modalSubscription=this.modalService.onHide.subscribe(()=>this.reloadECPs()),this.bsModalService.show(T)}reloadECPs(){this.ecpService.list().subscribe(l=>this.initEcp(l)),this.modalSubscription.unsubscribe()}deleteErasureCodeProfile(){const l=this.form.getValue("erasureProfile");if(!l)return;const n=l.name;this.modalSubscription=this.modalService.onHide.subscribe(()=>this.reloadECPs()),this.modalService.show(f.a,{initialState:{itemDescription:this.i18n("erasure code profile"),itemNames:[n],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new b.a("ecp/delete",{name:n}),call:this.ecpService.delete(n)})}})}addCrushRule(){this.crushDeletionBtn.isOpen&&this.crushDeletionBtn.hide(),this.bsModalService.show(w).content.submitAction.subscribe(l=>{this.reloadCrushRules(l.name)})}reloadCrushRules(l){this.modalSubscription&&this.modalSubscription.unsubscribe(),this.poolService.getInfo().subscribe(n=>{if(this.initInfo(n),this.poolTypeChange("replicated"),!l)return;const e=this.info.crush_rules_replicated.find(n=>n.rule_name===l);e&&this.form.get("crushRule").setValue(e)})}deleteCrushRule(){const l=this.form.getValue("crushRule");if(!l)return;if(this.crushUsage)return this.crushDeletionBtn.toggle(),this.data.crushInfo=!0,void setTimeout(()=>{this.crushInfoTabs&&(this.crushInfoTabs.tabs[2].active=!0)},50);const n=l.rule_name;this.modalSubscription=this.modalService.onHide.subscribe(()=>this.reloadCrushRules()),this.modalService.show(f.a,{initialState:{itemDescription:this.i18n("crush rule"),itemNames:[n],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new b.a("crushRule/delete",{name:n}),call:this.crushRuleService.delete(n)})}})}crushRuleIsUsedBy(l){this.crushUsage=l?this.info.used_rules[l]:void 0}submit(){if(this.form.invalid)return void this.form.setErrors({cdSubmitButton:!0});const l={pool:this.form.getValue("name")};this.assignFormFields(l,[{externalFieldName:"pool_type",formControlName:"poolType"},{externalFieldName:"pg_autoscale_mode",formControlName:"pgAutoscaleMode",editable:!0},{externalFieldName:"pg_num",formControlName:"pgNum",replaceFn:l=>"on"===this.form.getValue("pgAutoscaleMode")?1:l,editable:!0},this.isReplicated?{externalFieldName:"size",formControlName:"size"}:{externalFieldName:"erasure_code_profile",formControlName:"erasureProfile",attr:"name"},{externalFieldName:"rule_name",formControlName:"crushRule",replaceFn:l=>this.isReplicated?l&&l.rule_name:void 0},{externalFieldName:"quota_max_bytes",formControlName:"max_bytes",replaceFn:this.formatter.toBytes,editable:!0,resetValue:this.editing?0:void 0},{externalFieldName:"quota_max_objects",formControlName:"max_objects",editable:!0,resetValue:this.editing?0:void 0}]),this.info.is_all_bluestore&&(this.assignFormField(l,{externalFieldName:"flags",formControlName:"ecOverwrites",replaceFn:()=>this.isErasure?["ec_overwrites"]:void 0}),"none"!==this.form.getValue("mode")?this.assignFormFields(l,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:l=>this.hasCompressionEnabled()&&l},{externalFieldName:"compression_algorithm",formControlName:"algorithm",editable:!0},{externalFieldName:"compression_min_blob_size",formControlName:"minBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_max_blob_size",formControlName:"maxBlobSize",replaceFn:this.formatter.toBytes,editable:!0,resetValue:0},{externalFieldName:"compression_required_ratio",formControlName:"ratio",editable:!0,resetValue:0}]):this.editing&&this.assignFormFields(l,[{externalFieldName:"compression_mode",formControlName:"mode",editable:!0,replaceFn:()=>"unset"},{externalFieldName:"srcpool",formControlName:"name",editable:!0,replaceFn:()=>this.data.pool.pool_name}]));const n=this.data.applications.selected;(n.length>0||this.editing)&&(l.application_metadata=n),this.isReplicated&&!o.isEmpty(this.currentConfigurationValues)&&(l.configuration=this.currentConfigurationValues),this.triggerApiTask(l)}assignFormFields(l,n){n.forEach(n=>this.assignFormField(l,n))}assignFormField(l,{externalFieldName:n,formControlName:e,attr:u,replaceFn:i,editable:t,resetValue:a}){if(this.editing&&(!t||this.form.get(e).pristine))return;const s=this.form.getValue(e);let r=i?i(s):u?o.get(s,u):s;if(!s||!r){if(!t||o.isUndefined(a))return;r=a}l[n]=r}triggerApiTask(l){this.taskWrapper.wrapTaskAroundCall({task:new b.a("pool/"+(this.editing?i.e.EDIT:i.e.CREATE),{pool_name:l.hasOwnProperty("srcpool")?l.srcpool:l.pool}),call:this.poolService[this.editing?i.e.UPDATE:i.e.CREATE](l)}).subscribe(void 0,l=>{o.isObject(l.error)&&"34"===l.error.code&&this.form.get("pgNum").setErrors({34:!0}),this.form.setErrors({cdSubmitButton:!0})},()=>this.router.navigate(["/pool"]))}appSelection(){this.form.get("name").updateValueAndValidity({emitEvent:!1,onlySelf:!0})}}var D=e("MuvH"),k=e("uIqm"),x=e("x38r"),P=e("yJti"),F=e("vCyI"),A=e("o4+5"),B=e("VTlA"),O=e("EgGo"),z=e("d+Og");class j{constructor(l){this.pool_name=l}}const L=new O.a("pool");class U{constructor(l,n,e,u,i,t,a,s,r,d,c){this.poolService=l,this.taskWrapper=n,this.authStorageService=e,this.taskListService=u,this.modalService=i,this.i18n=t,this.pgCategoryService=a,this.dimlessPipe=s,this.urlBuilder=r,this.configurationService=d,this.actionLabels=c,this.pools=[],this.selection=new F.a,this.executingTasks=[],this.selectionCacheTiers=[],this.monAllowPoolDelete=!1,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{permission:"create",icon:p.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"update",icon:p.a.edit,routerLink:()=>this.urlBuilder.getEdit(encodeURIComponent(this.selection.first().pool_name)),name:this.actionLabels.EDIT},{permission:"delete",icon:p.a.destroy,click:()=>this.deletePoolModal(),name:this.actionLabels.DELETE,disable:()=>!this.selection.first()||!this.monAllowPoolDelete,disableDesc:()=>this.getDisableDesc()}],this.permissions.configOpt.read&&this.configurationService.get("mon_allow_pool_delete").subscribe(l=>{if(o.has(l,"value")){const n=o.find(l.value,l=>"mon"===l.section)||{value:!1};this.monAllowPoolDelete="true"===n.value}})}ngOnInit(){const l=(l,n,e)=>o.get(n,l)>o.get(e,l)?1:-1;this.columns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:4,cellTransformation:x.a.executing},{prop:"type",name:this.i18n("Type"),flexGrow:2},{prop:"application_metadata",name:this.i18n("Applications"),flexGrow:3},{prop:"pg_status",name:this.i18n("PG Status"),flexGrow:3,cellClass:({row:l,column:n,value:e})=>this.getPgStatusCellClass(l,n,e)},{prop:"size",name:this.i18n("Replica Size"),flexGrow:2,cellClass:"text-right"},{prop:"last_change",name:this.i18n("Last Change"),flexGrow:2,cellClass:"text-right"},{prop:"erasure_code_profile",name:this.i18n("Erasure Coded Profile"),flexGrow:2},{prop:"crush_rule",name:this.i18n("Crush Ruleset"),flexGrow:3},{name:this.i18n("Usage"),prop:"usage",cellTemplate:this.poolUsageTpl,flexGrow:3},{prop:"stats.rd_bytes.rates",name:this.i18n("Read bytes"),comparator:(n,e,u,i)=>l("stats.rd_bytes.latest",u,i),cellTransformation:x.a.sparkline,flexGrow:3},{prop:"stats.wr_bytes.rates",name:this.i18n("Write bytes"),comparator:(n,e,u,i)=>l("stats.wr_bytes.latest",u,i),cellTransformation:x.a.sparkline,flexGrow:3},{prop:"stats.rd.rate",name:this.i18n("Read ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:x.a.perSecond},{prop:"stats.wr.rate",name:this.i18n("Write ops"),flexGrow:1,pipe:this.dimlessPipe,cellTransformation:x.a.perSecond}],this.taskListService.init(()=>this.poolService.getList(),void 0,l=>this.pools=this.transformPoolsData(l),()=>{this.table.reset(),this.viewCacheStatusList=[{status:P.a.ValueException}]},l=>l.name.startsWith("pool/"),(l,n)=>n.metadata.pool_name===l.pool_name,{default:l=>new j(l.pool_name)})}updateSelection(l){this.selection=l,this.getSelectionTiers()}deletePoolModal(){const l=this.selection.first().pool_name;this.modalRef=this.modalService.show(f.a,{initialState:{itemDescription:"Pool",itemNames:[l],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new b.a(`pool/${i.e.DELETE}`,{pool_name:l}),call:this.poolService.delete(l)})}})}getPgStatusCellClass(l,n,e){return{"text-right":!0,[`pg-${this.pgCategoryService.getTypeByStates(e)}`]:!0}}transformPoolsData(l){const n=["bytes_used","max_avail","rd_bytes","wr_bytes","rd","wr"],e={latest:0,rate:0,rates:[]};return o.forEach(l,l=>{l.pg_status=this.transformPgStatus(l.pg_status);const u={};o.forEach(n,n=>{u[n]=l.stats&&l.stats[n]?l.stats[n]:e}),l.stats=u;const i=u.bytes_used.latest+u.max_avail.latest;l.usage=i>0?u.bytes_used.latest/i:i,l.cdExecuting||l.pg_num+l.pg_placement_num===l.pg_num_target+l.pg_placement_num_target||(l.cdExecuting="Updating"),["rd_bytes","wr_bytes"].forEach(n=>{l.stats[n].rates=l.stats[n].rates.map(l=>l[1])}),l.cdIsBinary=!0}),l}transformPgStatus(l){const n=[];return o.forEach(l,(l,e)=>{n.push(`${l} ${e}`)}),n.join(", ")}getSelectionTiers(){const l=this.selection.hasSingleSelection&&this.selection.first().tiers||[];this.selectionCacheTiers=this.pools.filter(n=>l.includes(n.pool))}getDisableDesc(){if(!this.monAllowPoolDelete)return this.i18n("Pool deletion is disabled by the mon_allow_pool_delete configuration setting.")}}class M{}const G={breadcrumbs:i.a.CREATE},$={breadcrumbs:i.a.EDIT};class K{}var J=e("iutN"),H=e("MdoF"),W=e("ES0t"),Z=e("Xg1U"),X=e("z5nN"),Y=e("pMnS"),Q=e("EEJc"),ll=e("PEr+"),nl=e("a40w"),el=e("hfeG"),ul=e("QUzE"),il=e("E7j4"),tl=e("xvu0"),ol=e("RIVN"),al=e("nP0W"),sl=e("VBM6"),rl=e("atuK"),dl=e("JIi+"),cl=e("0BYw"),ml=e("3IYD"),fl=e("I4Qz"),gl=e("0rTx"),pl=e("lz+O"),hl=e("u2XS"),vl=e("nhAp"),Cl=e("l7Jr"),bl=e("bUo2"),Rl=e("SVse"),Il=e("8xTl"),El=e("ajRT"),Nl=e("+gVj"),yl=e("mXUL"),wl=e("IZUe"),Vl=e("4HWh"),Tl=e("p4Cf"),Sl=e("gp3X"),_l=e("sb0X"),ql=e("KVJa"),Dl=e("Z21x"),kl=e("LqlI"),xl=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Pl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Fl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function Al(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function Bl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Ol(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function zl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function jl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Ll(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," ( "," ) "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit,n.component.failureDomains[n.context.$implicit].length)}))}function Ul(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Ml(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Gl(l){return u["ɵvid"](0,[u["ɵpid"](0,Rl.TitleCasePipe,[]),u["ɵpid"](0,Il.a,[]),(l()(),u["ɵeld"](2,0,null,null,115,"cd-modal",[],null,null,null,Q.c,Q.b)),u["ɵdid"](3,49152,null,0,El.a,[],{modalRef:[0,"modalRef"]},null),(l()(),u["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),u["ɵted"](5,null,[""," ",""])),u["ɵppd"](6,1),u["ɵppd"](7,1),(l()(),u["ɵeld"](8,0,null,1,109,null,null,null,null,null,null,null)),(l()(),u["ɵeld"](9,0,null,null,108,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==u["ɵnov"](l,11).onSubmit(e)&&i),"reset"===n&&(i=!1!==u["ɵnov"](l,11).onReset()&&i),"submit"===n&&(i=!1!==u["ɵnov"](l,14).onSubmit()&&i),i}),null,null)),u["ɵdid"](10,16384,null,0,t.G,[],null,null),u["ɵdid"](11,540672,[["frm",4]],0,t.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,t.d,null,[t.l]),u["ɵdid"](13,16384,null,0,t.s,[[4,t.d]],null,null),u["ɵdid"](14,16384,null,0,Nl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](15,0,null,null,94,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](17,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,1,{FormControlNames:1}),u["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),u["ɵeld"](20,0,null,0,3,"label",[["class","col-form-label col-sm-3"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵeld"](21,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](23,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,0,14,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["ɵeld"](25,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,27)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,27).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,27)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,27)._compositionEnd(e.target.value)&&i),i}),null,null)),u["ɵdid"](26,4210688,null,0,wl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](27,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](29,671744,[[1,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](31,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](32,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Pl)),u["ɵdid"](34,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Fl)),u["ɵdid"](36,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Al)),u["ɵdid"](38,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](39,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](40,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,3,{FormControlNames:1}),u["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),u["ɵeld"](43,0,null,0,5,"label",[["class","col-form-label col-sm-3"],["for","root"]],null,null,null,null,null)),(l()(),u["ɵeld"](44,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Root"])),(l()(),u["ɵeld"](46,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](47,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](48,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](49,0,null,0,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["ɵeld"](50,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","root"],["id","root"],["name","root"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,51).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,51).onTouched()&&i),i}),null,null)),u["ɵdid"](51,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](53,671744,[[3,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](55,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](56,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Bl)),u["ɵdid"](58,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ol)),u["ɵdid"](60,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,zl)),u["ɵdid"](62,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](63,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](64,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](67,0,null,0,5,"label",[["class","col-form-label col-sm-3"],["for","failure_domain"]],null,null,null,null,null)),(l()(),u["ɵeld"](68,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Failure domain type"])),(l()(),u["ɵeld"](70,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](71,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](72,0,null,null,0,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵeld"](73,0,null,0,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["ɵeld"](74,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","failure_domain"],["id","failure_domain"],["name","failure_domain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,75).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,75).onTouched()&&i),i}),null,null)),u["ɵdid"](75,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](77,671744,[[5,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](79,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](80,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,jl)),u["ɵdid"](82,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ll)),u["ɵdid"](84,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ul)),u["ɵdid"](86,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](87,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](88,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](91,0,null,0,4,"label",[["class","col-form-label col-sm-3"],["for","device_class"]],null,null,null,null,null)),(l()(),u["ɵeld"](92,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Device class"])),(l()(),u["ɵeld"](94,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](95,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](96,0,null,0,13,"div",[["class","col-sm-9"]],null,null,null,null,null)),(l()(),u["ɵeld"](97,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","device_class"],["id","device_class"],["name","device_class"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,98).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,98).onTouched()&&i),i}),null,null)),u["ɵdid"](98,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](100,671744,[[7,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](102,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](103,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](104,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](105,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](106,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Let Ceph decide"])),(l()(),u["ɵand"](16777216,null,null,1,null,Ml)),u["ɵdid"](109,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](110,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](111,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u}),Sl.b,Sl.a)),u["ɵdid"](112,114688,null,0,_l.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](113,0,[""," ",""])),u["ɵppd"](114,1),u["ɵppd"](115,1),(l()(),u["ɵeld"](116,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](117,49152,null,0,Dl.a,[Rl.Location,i.b],{back:[0,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.bsModalRef),l(n,11,0,e.form),l(n,14,0,e.form),l(n,17,0),l(n,26,0,""),l(n,29,0,"name"),l(n,32,0,"name"),l(n,34,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,36,0,e.form.showError("name",u["ɵnov"](n,11),"pattern")),l(n,38,0,e.form.showError("name",u["ɵnov"](n,11),"uniqueName")),l(n,40,0),l(n,47,0,e.tooltips.root),l(n,53,0,"root"),l(n,56,0,"root"),l(n,58,0,!e.buckets),l(n,60,0,e.buckets),l(n,62,0,e.form.showError("root",u["ɵnov"](n,11),"required")),l(n,64,0),l(n,71,0,e.tooltips.failure_domain),l(n,77,0,"failure_domain"),l(n,80,0,"failure_domain"),l(n,82,0,!e.failureDomains),l(n,84,0,e.failureDomainKeys()),l(n,86,0,e.form.showError("failure_domain",u["ɵnov"](n,11),"required")),l(n,88,0),l(n,95,0,e.tooltips.device_class),l(n,100,0,"device_class"),l(n,103,0,"device_class"),l(n,105,0,""),l(n,106,0,""),l(n,109,0,e.devices),l(n,112,0,u["ɵnov"](n,11)),l(n,117,0,e.bsModalRef.hide)}),(function(l,n){var e=n.component,i=u["ɵunv"](n,5,0,l(n,6,0,u["ɵnov"](n,0),e.action)),t=u["ɵunv"](n,5,1,l(n,7,0,u["ɵnov"](n,1),e.resource));l(n,5,0,i,t),l(n,9,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending),l(n,16,0,u["ɵnov"](n,17).hasErrors,u["ɵnov"](n,17).hasSuccess),l(n,25,0,u["ɵnov"](n,31).ngClassUntouched,u["ɵnov"](n,31).ngClassTouched,u["ɵnov"](n,31).ngClassPristine,u["ɵnov"](n,31).ngClassDirty,u["ɵnov"](n,31).ngClassValid,u["ɵnov"](n,31).ngClassInvalid,u["ɵnov"](n,31).ngClassPending,u["ɵnov"](n,32).validClass,u["ɵnov"](n,32).invalidClass),l(n,39,0,u["ɵnov"](n,40).hasErrors,u["ɵnov"](n,40).hasSuccess),l(n,50,0,u["ɵnov"](n,55).ngClassUntouched,u["ɵnov"](n,55).ngClassTouched,u["ɵnov"](n,55).ngClassPristine,u["ɵnov"](n,55).ngClassDirty,u["ɵnov"](n,55).ngClassValid,u["ɵnov"](n,55).ngClassInvalid,u["ɵnov"](n,55).ngClassPending,u["ɵnov"](n,56).validClass,u["ɵnov"](n,56).invalidClass),l(n,63,0,u["ɵnov"](n,64).hasErrors,u["ɵnov"](n,64).hasSuccess),l(n,74,0,u["ɵnov"](n,79).ngClassUntouched,u["ɵnov"](n,79).ngClassTouched,u["ɵnov"](n,79).ngClassPristine,u["ɵnov"](n,79).ngClassDirty,u["ɵnov"](n,79).ngClassValid,u["ɵnov"](n,79).ngClassInvalid,u["ɵnov"](n,79).ngClassPending,u["ɵnov"](n,80).validClass,u["ɵnov"](n,80).invalidClass),l(n,87,0,u["ɵnov"](n,88).hasErrors,u["ɵnov"](n,88).hasSuccess),l(n,97,0,u["ɵnov"](n,102).ngClassUntouched,u["ɵnov"](n,102).ngClassTouched,u["ɵnov"](n,102).ngClassPristine,u["ɵnov"](n,102).ngClassDirty,u["ɵnov"](n,102).ngClassValid,u["ɵnov"](n,102).ngClassInvalid,u["ɵnov"](n,102).ngClassPending,u["ɵnov"](n,103).validClass,u["ɵnov"](n,103).invalidClass);var o=u["ɵunv"](n,113,0,l(n,114,0,u["ɵnov"](n,0),e.action)),a=u["ɵunv"](n,113,1,l(n,115,0,u["ɵnov"](n,1),e.resource));l(n,113,0,o,a)}))}function $l(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-crush-rule-form-modal",[],null,null,null,Gl,xl)),u["ɵdid"](1,114688,null,0,w,[y.a,kl.a,N.a,d,s.a,i.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Kl=u["ɵccf"]("cd-crush-rule-form-modal",w,$l,{},{submitAction:"submitAction"},[]),Jl=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Hl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Wl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The name can only consist of alphanumeric characters, dashes and underscores."]))],null,null)}function Zl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen erasure code profile name is already in use."]))],null,null)}function Xl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Yl(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Ql(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function ln(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function nn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 2."]))],null,null)}function en(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function un(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function tn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function on(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,9,{FormControlNames:1}),u["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","c"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Durability estimator (c)"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](8,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","c"],["id","c"],["name","c"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,11).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,11)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,12).onTouched()&&i),i}),null,null)),u["ɵdid"](11,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](12,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](14,671744,[[9,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](16,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](17,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,tn)),u["ɵdid"](19,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.shec.c),l(n,14,0,"c"),l(n,17,0,"c"),l(n,19,0,e.form.showError("c",u["ɵnov"](n.parent,11),"min"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass)}))}function an(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function sn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function rn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,11,{FormControlNames:1}),u["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","l"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Locality (l)"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](8,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","l"],["id","l"],["name","l"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,11).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,11)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,12).onTouched()&&i),i}),null,null)),u["ɵdid"](11,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](12,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](14,671744,[[11,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](16,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](17,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,an)),u["ɵdid"](19,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,sn)),u["ɵdid"](21,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.lrc.l),l(n,14,0,"l"),l(n,17,0,"l"),l(n,19,0,e.form.showError("l",u["ɵnov"](n.parent,11),"required")),l(n,21,0,e.form.showError("l",u["ɵnov"](n.parent,11),"min"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass)}))}function dn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function cn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function mn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function fn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["None"]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function gn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function pn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,15,{FormControlNames:1}),u["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushLocality"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush Locality"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](8,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushLocality"],["id","crushLocality"],["name","crushLocality"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,11).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,11).onTouched()&&i),i}),null,null)),u["ɵdid"](11,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](13,671744,[[15,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](15,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](16,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,mn)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,fn)),u["ɵdid"](20,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,gn)),u["ɵdid"](22,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.lrc.crushLocality),l(n,13,0,"crushLocality"),l(n,16,0,"crushLocality"),l(n,18,0,!e.failureDomains),l(n,20,0,e.failureDomains&&e.failureDomains.length>0),l(n,22,0,e.failureDomains)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function hn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function vn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,17,{FormControlNames:1}),u["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","technique"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Technique"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](8,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","technique"],["id","technique"],["name","technique"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,11).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,11).onTouched()&&i),i}),null,null)),u["ɵdid"](11,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](13,671744,[[17,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](15,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](16,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,hn)),u["ɵdid"](18,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins[e.plugin].technique),l(n,13,0,"technique"),l(n,16,0,"technique"),l(n,18,0,e.techniques)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function Cn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Must be equal to or greater than 1."]))],null,null)}function bn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,19,{FormControlNames:1}),u["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","packetSize"]],null,null,null,null,null)),(l()(),u["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Packetsize"])),(l()(),u["ɵeld"](7,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](8,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](9,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](10,0,null,null,7,"input",[["class","form-control"],["formControlName","packetSize"],["id","packetSize"],["name","packetSize"],["placeholder","Packetsize..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,11)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,11).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,11)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,11)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,12).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,12).onTouched()&&i),i}),null,null)),u["ɵdid"](11,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](12,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](14,671744,[[19,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](16,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](17,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Cn)),u["ɵdid"](19,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,8,0,e.tooltips.plugins.jerasure.packetSize),l(n,14,0,"packetSize"),l(n,17,0,"packetSize"),l(n,19,0,e.form.showError("packetSize",u["ɵnov"](n.parent,11),"min"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,10,0,u["ɵnov"](n,16).ngClassUntouched,u["ɵnov"](n,16).ngClassTouched,u["ɵnov"](n,16).ngClassPristine,u["ɵnov"](n,16).ngClassDirty,u["ɵnov"](n,16).ngClassValid,u["ɵnov"](n,16).ngClassInvalid,u["ɵnov"](n,16).ngClassPending,u["ɵnov"](n,17).validClass,u["ɵnov"](n,17).invalidClass)}))}function Rn(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function In(l){return u["ɵvid"](0,[u["ɵpid"](0,Rl.TitleCasePipe,[]),u["ɵpid"](0,Il.a,[]),(l()(),u["ɵeld"](2,0,null,null,204,"cd-modal",[],null,null,null,Q.c,Q.b)),u["ɵdid"](3,49152,null,0,El.a,[],{modalRef:[0,"modalRef"]},null),(l()(),u["ɵeld"](4,0,null,0,3,null,null,null,null,null,null,null)),(l()(),u["ɵted"](5,null,[""," ",""])),u["ɵppd"](6,1),u["ɵppd"](7,1),(l()(),u["ɵeld"](8,0,null,1,198,null,null,null,null,null,null,null)),(l()(),u["ɵeld"](9,0,null,null,197,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==u["ɵnov"](l,11).onSubmit(e)&&i),"reset"===n&&(i=!1!==u["ɵnov"](l,11).onReset()&&i),"submit"===n&&(i=!1!==u["ɵnov"](l,14).onSubmit()&&i),i}),null,null)),u["ɵdid"](10,16384,null,0,t.G,[],null,null),u["ɵdid"](11,540672,[["frm",4]],0,t.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,t.d,null,[t.l]),u["ɵdid"](13,16384,null,0,t.s,[[4,t.d]],null,null),u["ɵdid"](14,16384,null,0,Nl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](15,0,null,null,183,"div",[["class","modal-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](17,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,1,{FormControlNames:1}),u["ɵqud"](603979776,2,{messagesBlock:0}),(l()(),u["ɵeld"](20,0,null,0,1,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](22,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](23,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,25)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,25).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,25)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,25)._compositionEnd(e.target.value)&&i),i}),null,null)),u["ɵdid"](24,4210688,null,0,wl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](25,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](27,671744,[[1,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](29,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](30,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Hl)),u["ɵdid"](32,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Wl)),u["ɵdid"](34,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Zl)),u["ɵdid"](36,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](37,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](38,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,3,{FormControlNames:1}),u["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),u["ɵeld"](41,0,null,0,4,"label",[["class","cd-col-form-label"],["for","plugin"]],null,null,null,null,null)),(l()(),u["ɵeld"](42,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Plugin"])),(l()(),u["ɵeld"](44,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](45,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](46,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](47,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","plugin"],["id","plugin"],["name","plugin"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,48).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,48).onTouched()&&i),i}),null,null)),u["ɵdid"](48,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](50,671744,[[3,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](52,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](53,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Xl)),u["ɵdid"](55,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Yl)),u["ɵdid"](57,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ql)),u["ɵdid"](59,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](60,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](61,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](64,0,null,0,7,"label",[["class","cd-col-form-label"],["for","k"]],null,null,null,null,null)),(l()(),u["ɵeld"](65,0,null,null,4,"span",[],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](67,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpod"](68,{required:0}),(l()(),u["ɵted"](-1,null,["Data chunks (k)"])),(l()(),u["ɵeld"](70,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](71,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](72,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](73,0,null,null,7,"input",[["class","form-control"],["formControlName","k"],["id","k"],["name","k"],["ng-model","$ctrl.erasureCodeProfile.k"],["placeholder","Data chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,74)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,74).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,74)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,74)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,75).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,75).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,75).onTouched()&&i),i}),null,null)),u["ɵdid"](74,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](75,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](77,671744,[[5,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](79,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](80,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ln)),u["ɵdid"](82,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,nn)),u["ɵdid"](84,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](85,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](86,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](89,0,null,0,7,"label",[["class","cd-col-form-label"],["for","m"]],null,null,null,null,null)),(l()(),u["ɵeld"](90,0,null,null,4,"span",[],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](92,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpod"](93,{required:0}),(l()(),u["ɵted"](-1,null,["Coding chunks (m)"])),(l()(),u["ɵeld"](95,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](96,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](97,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](98,0,null,null,7,"input",[["class","form-control"],["formControlName","m"],["id","m"],["name","m"],["placeholder","Coding chunks..."],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,99)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,99).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,99)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,99)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,100).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,100).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,100).onTouched()&&i),i}),null,null)),u["ɵdid"](99,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](100,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](102,671744,[[7,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](104,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](105,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,en)),u["ɵdid"](107,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,un)),u["ɵdid"](109,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,on)),u["ɵdid"](111,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,rn)),u["ɵdid"](113,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](114,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](115,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,13,{FormControlNames:1}),u["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),u["ɵeld"](118,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushFailureDomain"]],null,null,null,null,null)),(l()(),u["ɵeld"](119,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush failure domain"])),(l()(),u["ɵeld"](121,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](122,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](123,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](124,0,null,null,10,"select",[["class","form-control custom-select"],["formControlName","crushFailureDomain"],["id","crushFailureDomain"],["name","crushFailureDomain"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,125).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,125).onTouched()&&i),i}),null,null)),u["ɵdid"](125,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](127,671744,[[13,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](129,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](130,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,dn)),u["ɵdid"](132,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,cn)),u["ɵdid"](134,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,pn)),u["ɵdid"](136,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,2,null,vn)),u["ɵdid"](138,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),u["ɵpad"](139,2),(l()(),u["ɵand"](16777216,null,null,1,null,bn)),u["ɵdid"](141,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](142,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](143,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,21,{FormControlNames:1}),u["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),u["ɵeld"](146,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushRoot"]],null,null,null,null,null)),(l()(),u["ɵeld"](147,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush root"])),(l()(),u["ɵeld"](149,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](150,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](151,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](152,0,null,null,6,"input",[["class","form-control"],["formControlName","crushRoot"],["id","crushRoot"],["name","crushRoot"],["placeholder","root..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,153)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,153).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,153)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,153)._compositionEnd(e.target.value)&&i),i}),null,null)),u["ɵdid"](153,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](155,671744,[[21,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](157,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](158,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](159,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](160,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,23,{FormControlNames:1}),u["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),u["ɵeld"](163,0,null,0,4,"label",[["class","cd-col-form-label"],["for","crushDeviceClass"]],null,null,null,null,null)),(l()(),u["ɵeld"](164,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush device class"])),(l()(),u["ɵeld"](166,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](167,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](168,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](169,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushDeviceClass"],["id","crushDeviceClass"],["name","crushDeviceClass"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,170).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,170).onTouched()&&i),i}),null,null)),u["ɵdid"](170,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](172,671744,[[23,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](174,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](175,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](176,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](177,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](178,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["any"])),(l()(),u["ɵand"](16777216,null,null,1,null,Rn)),u["ɵdid"](181,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](182,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](183,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,25,{FormControlNames:1}),u["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),u["ɵeld"](186,0,null,0,4,"label",[["class","cd-col-form-label"],["for","directory"]],null,null,null,null,null)),(l()(),u["ɵeld"](187,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Directory"])),(l()(),u["ɵeld"](189,0,null,null,1,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](190,49152,null,0,Tl.a,[],{html:[0,"html"]},null),(l()(),u["ɵeld"](191,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](192,0,null,null,6,"input",[["class","form-control"],["formControlName","directory"],["id","directory"],["name","directory"],["placeholder","Path..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,193)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,193).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,193)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,193)._compositionEnd(e.target.value)&&i),i}),null,null)),u["ɵdid"](193,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](195,671744,[[25,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](197,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](198,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](199,0,null,null,7,"div",[["class","modal-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](200,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.onSubmit()&&u),u}),Sl.b,Sl.a)),u["ɵdid"](201,114688,null,0,_l.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](202,0,[""," ",""])),u["ɵppd"](203,1),u["ɵppd"](204,1),(l()(),u["ɵeld"](205,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](206,49152,null,0,Dl.a,[Rl.Location,i.b],{back:[0,"back"]},null)],(function(l,n){var e=n.component;l(n,3,0,e.bsModalRef),l(n,11,0,e.form),l(n,14,0,e.form),l(n,17,0),l(n,24,0,""),l(n,27,0,"name"),l(n,30,0,"name"),l(n,32,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,34,0,e.form.showError("name",u["ɵnov"](n,11),"pattern")),l(n,36,0,e.form.showError("name",u["ɵnov"](n,11),"uniqueName")),l(n,38,0),l(n,45,0,e.tooltips.plugins[e.plugin].description),l(n,50,0,"plugin"),l(n,53,0,"plugin"),l(n,55,0,!e.plugins),l(n,57,0,e.plugins),l(n,59,0,e.form.showError("name",u["ɵnov"](n,11),"required")),l(n,61,0);var i=l(n,68,0,e.requiredControls.includes("k"));l(n,67,0,i),l(n,71,0,e.tooltips.k),l(n,77,0,"k"),l(n,80,0,"k"),l(n,82,0,e.form.showError("k",u["ɵnov"](n,11),"required")),l(n,84,0,e.form.showError("k",u["ɵnov"](n,11),"min")),l(n,86,0);var t=l(n,93,0,e.requiredControls.includes("m"));l(n,92,0,t),l(n,96,0,e.tooltips.m),l(n,102,0,"m"),l(n,105,0,"m"),l(n,107,0,e.form.showError("m",u["ɵnov"](n,11),"required")),l(n,109,0,e.form.showError("m",u["ɵnov"](n,11),"min")),l(n,111,0,"shec"===e.plugin),l(n,113,0,e.plugin===e.PLUGIN.LRC),l(n,115,0),l(n,122,0,e.tooltips.crushFailureDomain),l(n,127,0,"crushFailureDomain"),l(n,130,0,"crushFailureDomain"),l(n,132,0,!e.failureDomains),l(n,134,0,e.failureDomains),l(n,136,0,e.plugin===e.PLUGIN.LRC);var o=l(n,139,0,e.PLUGIN.JERASURE,e.PLUGIN.ISA).includes(e.plugin);l(n,138,0,o),l(n,141,0,e.plugin===e.PLUGIN.JERASURE),l(n,143,0),l(n,150,0,e.tooltips.crushRoot),l(n,155,0,"crushRoot"),l(n,158,0,"crushRoot"),l(n,160,0),l(n,167,0,e.tooltips.crushDeviceClass),l(n,172,0,"crushDeviceClass"),l(n,175,0,"crushDeviceClass"),l(n,177,0,""),l(n,178,0,""),l(n,181,0,e.devices),l(n,183,0),l(n,190,0,e.tooltips.directory),l(n,195,0,"directory"),l(n,198,0,"directory"),l(n,201,0,u["ɵnov"](n,11)),l(n,206,0,e.bsModalRef.hide)}),(function(l,n){var e=n.component,i=u["ɵunv"](n,5,0,l(n,6,0,u["ɵnov"](n,0),e.action)),t=u["ɵunv"](n,5,1,l(n,7,0,u["ɵnov"](n,1),e.resource));l(n,5,0,i,t),l(n,9,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending),l(n,16,0,u["ɵnov"](n,17).hasErrors,u["ɵnov"](n,17).hasSuccess),l(n,23,0,u["ɵnov"](n,29).ngClassUntouched,u["ɵnov"](n,29).ngClassTouched,u["ɵnov"](n,29).ngClassPristine,u["ɵnov"](n,29).ngClassDirty,u["ɵnov"](n,29).ngClassValid,u["ɵnov"](n,29).ngClassInvalid,u["ɵnov"](n,29).ngClassPending,u["ɵnov"](n,30).validClass,u["ɵnov"](n,30).invalidClass),l(n,37,0,u["ɵnov"](n,38).hasErrors,u["ɵnov"](n,38).hasSuccess),l(n,47,0,u["ɵnov"](n,52).ngClassUntouched,u["ɵnov"](n,52).ngClassTouched,u["ɵnov"](n,52).ngClassPristine,u["ɵnov"](n,52).ngClassDirty,u["ɵnov"](n,52).ngClassValid,u["ɵnov"](n,52).ngClassInvalid,u["ɵnov"](n,52).ngClassPending,u["ɵnov"](n,53).validClass,u["ɵnov"](n,53).invalidClass),l(n,60,0,u["ɵnov"](n,61).hasErrors,u["ɵnov"](n,61).hasSuccess),l(n,73,0,u["ɵnov"](n,79).ngClassUntouched,u["ɵnov"](n,79).ngClassTouched,u["ɵnov"](n,79).ngClassPristine,u["ɵnov"](n,79).ngClassDirty,u["ɵnov"](n,79).ngClassValid,u["ɵnov"](n,79).ngClassInvalid,u["ɵnov"](n,79).ngClassPending,u["ɵnov"](n,80).validClass,u["ɵnov"](n,80).invalidClass),l(n,85,0,u["ɵnov"](n,86).hasErrors,u["ɵnov"](n,86).hasSuccess),l(n,98,0,u["ɵnov"](n,104).ngClassUntouched,u["ɵnov"](n,104).ngClassTouched,u["ɵnov"](n,104).ngClassPristine,u["ɵnov"](n,104).ngClassDirty,u["ɵnov"](n,104).ngClassValid,u["ɵnov"](n,104).ngClassInvalid,u["ɵnov"](n,104).ngClassPending,u["ɵnov"](n,105).validClass,u["ɵnov"](n,105).invalidClass),l(n,114,0,u["ɵnov"](n,115).hasErrors,u["ɵnov"](n,115).hasSuccess),l(n,124,0,u["ɵnov"](n,129).ngClassUntouched,u["ɵnov"](n,129).ngClassTouched,u["ɵnov"](n,129).ngClassPristine,u["ɵnov"](n,129).ngClassDirty,u["ɵnov"](n,129).ngClassValid,u["ɵnov"](n,129).ngClassInvalid,u["ɵnov"](n,129).ngClassPending,u["ɵnov"](n,130).validClass,u["ɵnov"](n,130).invalidClass),l(n,142,0,u["ɵnov"](n,143).hasErrors,u["ɵnov"](n,143).hasSuccess),l(n,152,0,u["ɵnov"](n,157).ngClassUntouched,u["ɵnov"](n,157).ngClassTouched,u["ɵnov"](n,157).ngClassPristine,u["ɵnov"](n,157).ngClassDirty,u["ɵnov"](n,157).ngClassValid,u["ɵnov"](n,157).ngClassInvalid,u["ɵnov"](n,157).ngClassPending,u["ɵnov"](n,158).validClass,u["ɵnov"](n,158).invalidClass),l(n,159,0,u["ɵnov"](n,160).hasErrors,u["ɵnov"](n,160).hasSuccess),l(n,169,0,u["ɵnov"](n,174).ngClassUntouched,u["ɵnov"](n,174).ngClassTouched,u["ɵnov"](n,174).ngClassPristine,u["ɵnov"](n,174).ngClassDirty,u["ɵnov"](n,174).ngClassValid,u["ɵnov"](n,174).ngClassInvalid,u["ɵnov"](n,174).ngClassPending,u["ɵnov"](n,175).validClass,u["ɵnov"](n,175).invalidClass),l(n,182,0,u["ɵnov"](n,183).hasErrors,u["ɵnov"](n,183).hasSuccess),l(n,192,0,u["ɵnov"](n,197).ngClassUntouched,u["ɵnov"](n,197).ngClassTouched,u["ɵnov"](n,197).ngClassPristine,u["ɵnov"](n,197).ngClassDirty,u["ɵnov"](n,197).ngClassValid,u["ɵnov"](n,197).ngClassInvalid,u["ɵnov"](n,197).ngClassPending,u["ɵnov"](n,198).validClass,u["ɵnov"](n,198).invalidClass);var o=u["ɵunv"](n,202,0,l(n,203,0,u["ɵnov"](n,0),e.action)),a=u["ɵunv"](n,202,1,l(n,204,0,u["ɵnov"](n,1),e.resource));l(n,202,0,o,a)}))}function En(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-erasure-code-profile-form-modal",[],null,null,null,In,Jl)),u["ɵdid"](1,114688,null,0,T,[y.a,kl.a,N.a,c,s.a,i.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Nn=u["ɵccf"]("cd-erasure-code-profile-form-modal",T,En,{},{submitAction:"submitAction"},[]),yn=e("FO+L"),wn=e("nhM1"),Vn=e("BARL"),Tn=e("yT6U"),Sn=e("4DD9"),_n=e("iExv"),qn=e("85J/"),Dn=e("+0ag"),kn=e("IzCI"),xn=e("Dwqy"),Pn=e("uYzU"),Fn=e("FFMq"),An=e("E2fk"),Bn=e("a0VL"),On=e("nSDx"),zn=e("SB+Q"),jn=e("TYzs"),Ln=e("BQkM"),Un=e("dEH0"),Mn=e("G1/K"),Gn=e("TJUb"),$n=e("efK2"),Kn=e("CNMR"),Jn=e("KOzp"),Hn=e("2uy1"),Wn=e("z/SZ"),Zn=e("38Bd"),Xn=e("978R"),Yn=e("FE24"),Qn=e("Avrn"),le=e("iInd"),ne=e("2ZVE"),ee=e("ienR"),ue=e("gk6K"),ie=e("F8xH"),te=e("9Xeq"),oe=e("hrfs"),ae=e("yGOH"),se=e("bxSN"),re=e("WF9J"),de=e("V/fk"),ce=e("ChqD"),me=e("PCNd"),fe=e("kJI8"),ge=e("kccj"),pe=e("yYhs"),he=e("k/xb"),ve=e("C6Ij"),Ce=e("AWcq"),be=e("xSw7"),Re=e("GgAd"),Ie=e("a278"),Ee=e("insk"),Ne=e("mSOc"),ye=e("cUpR"),we=e("20UP"),Ve=e("pKUh"),Te=e("25BL"),Se=e("NUGo"),_e=e("S7zO"),qe=e("EFGL"),De=e("aAWM"),ke=e("o8EM"),xe=e("sLuX"),Pe=e("FSuO");e("jKX/");class Fe{constructor(l,n){this.i18n=l,this.poolService=n,this.cacheTierColumns=[],this.cacheTierColumns=[{prop:"pool_name",name:this.i18n("Name"),flexGrow:3},{prop:"cache_mode",name:this.i18n("Cache Mode"),flexGrow:2},{prop:"cache_min_evict_age",name:this.i18n("Min Evict Age"),flexGrow:2},{prop:"cache_min_flush_age",name:this.i18n("Min Flush Age"),flexGrow:2},{prop:"target_max_bytes",name:this.i18n("Target Max Bytes"),flexGrow:2},{prop:"target_max_objects",name:this.i18n("Target Max Objects"),flexGrow:2}]}ngOnChanges(){this.selection.hasSingleSelection&&this.poolService.getConfiguration(this.selection.first().pool_name).subscribe(l=>{this.selectedPoolConfiguration=l})}filterNonPoolData(l){return o.omit(l,["cdExecuting","cdIsBinary"])}}var Ae=u["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Be(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","-xyV8KCiz"]],null,null,null,Ie.b,Ie.a)),u["ɵdid"](3,638976,null,0,Ee.a,[Ne.a,ye.b,we.a,Dn.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Performance Details"),l(n,3,0,"ceph-pool-detail?var-pool_name="+e.selection.first().pool_name,"one","-xyV8KCiz")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass)}))}function Oe(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Configuration"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-rbd-configuration-table",[],null,null,null,qe.b,qe.a)),u["ɵdid"](3,638976,null,0,De.a,[E.a,ke.a,s.a],{data:[0,"data"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Configuration"),l(n,3,0,e.selectedPoolConfiguration)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass)}))}function ze(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Cache Tiers Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,Te.b,Te.a)),u["ɵdid"](3,2867200,null,0,k.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},null)],(function(l,n){var e=n.component;l(n,1,0,"Cache Tiers Details"),l(n,3,0,e.cacheTiers,e.cacheTierColumns,"flex",!1)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass)}))}function je(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,11,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,Ve.b,Ve.a)),u["ɵdid"](1,180224,[[1,4],["tabsetChild",4]],0,ne.e,[ne.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](3,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,xe.b,xe.a)),u["ɵdid"](5,638976,null,0,Pe.a,[Bn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,Be)),u["ɵdid"](7,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,Oe)),u["ɵdid"](9,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,0,1,null,ze)),u["ɵdid"](11,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,3,0,"Details"),l(n,5,0,e.filterNonPoolData(e.selection.first()),!1,!0),l(n,7,0,e.permissions.grafana.read),l(n,9,0,"replicated"===e.selection.first().type),l(n,11,0,(null==e.selection.first().tiers?null:e.selection.first().tiers.length)>0)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).clazz),l(n,2,0,u["ɵnov"](n,3).id,u["ɵnov"](n,3).active,u["ɵnov"](n,3).addClass)}))}function Le(l){return u["ɵvid"](0,[u["ɵqud"](671088640,1,{tabsetChild:0}),(l()(),u["ɵand"](16777216,null,null,1,null,je)),u["ɵdid"](2,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,2,0,n.component.selection.hasSingleSelection)}),null)}var Ue=e("ufoC"),Me=u["ɵcrt"]({encapsulation:0,styles:[[".pg-clean{color:#0b0}  .pg-working{color:#2b99a8}  .pg-warning{color:#ffc200}  .pg-unknown{color:red}"]],data:{}});function Ge(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,ve.b,ve.a)),u["ɵdid"](1,114688,null,0,Ce.a,[],{status:[0,"status"],statusFor:[1,"statusFor"]},null)],(function(l,n){l(n,1,0,n.context.$implicit.status,n.context.$implicit.statusFor)}),null)}function $e(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,be.b,be.a)),u["ɵdid"](1,573440,null,0,Re.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(l,n){l(n,1,0,n.parent.context.row.stats.bytes_used.latest+n.parent.context.row.stats.max_avail.latest,n.parent.context.row.stats.bytes_used.latest)}),null)}function Ke(l){return u["ɵvid"](0,[(l()(),u["ɵand"](16777216,null,null,1,null,$e)),u["ɵdid"](1,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,null==n.context.row.stats?null:null==n.context.row.stats.max_avail?null:n.context.row.stats.max_avail.latest)}),null)}function Je(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","z99hzWtmk"]],null,null,null,Ie.b,Ie.a)),u["ɵdid"](3,638976,null,0,Ee.a,[Ne.a,ye.b,we.a,Dn.a,s.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(l,n){l(n,1,0,"Overall Performance"),l(n,3,0,"ceph-pools-overview?","two","z99hzWtmk")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).id,u["ɵnov"](n,1).active,u["ɵnov"](n,1).addClass)}))}function He(l){return u["ɵvid"](0,[u["ɵqud"](402653184,1,{table:0}),u["ɵqud"](402653184,2,{poolUsageTpl:0}),u["ɵqud"](671088640,3,{poolConfigurationSourceTpl:0}),(l()(),u["ɵeld"](3,0,null,null,14,"tabset",[],[[2,"tab-container",null]],null,null,Ve.b,Ve.a)),u["ɵdid"](4,180224,null,0,ne.e,[ne.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](5,0,null,0,10,"tab",[["heading","Pools List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](6,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ge)),u["ɵdid"](8,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](9,0,null,null,5,"cd-table",[["id","pool-list"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(l,n,e){var u=!0;return"updateSelection"===n&&(u=!1!==l.component.updateSelection(e)&&u),u}),Te.b,Te.a)),u["ɵdid"](10,2867200,[[1,4],["table",4]],0,k.a,[u.NgZone,u.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(l()(),u["ɵeld"](11,0,null,1,1,"cd-table-actions",[["class","table-actions"],["id","pool-list-actions"]],null,null,null,Se.b,Se.a)),u["ɵdid"](12,114688,null,0,_e.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),u["ɵeld"](13,0,null,3,1,"cd-pool-details",[["cdTableDetail",""],["id","pool-list-details"]],null,null,null,Le,Ae)),u["ɵdid"](14,573440,null,0,Fe,[s.a,m.a],{selection:[0,"selection"],permissions:[1,"permissions"],cacheTiers:[2,"cacheTiers"]},null),(l()(),u["ɵand"](0,[[2,2],["poolUsageTpl",2]],null,0,null,Ke)),(l()(),u["ɵand"](16777216,null,0,1,null,Je)),u["ɵdid"](17,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,6,0,"Pools List"),l(n,8,0,e.viewCacheStatusList),l(n,10,0,e.pools,e.columns,"single"),l(n,12,0,e.permissions.pool,e.selection,e.tableActions),l(n,14,0,e.selection,e.permissions,e.selectionCacheTiers),l(n,17,0,e.permissions.grafana.read)}),(function(l,n){l(n,3,0,u["ɵnov"](n,4).clazz),l(n,5,0,u["ɵnov"](n,6).id,u["ɵnov"](n,6).active,u["ɵnov"](n,6).addClass)}))}function We(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"cd-pool-list",[],null,null,null,He,Me)),u["ɵprd"](131584,null,B.a,B.a,[Ue.a,Ne.a]),u["ɵprd"](256,null,O.a,L,[]),u["ɵdid"](3,114688,null,0,U,[m.a,N.a,I.a,B.a,kl.b,s.a,z.a,A.a,O.a,D.a,i.b],null,null)],(function(l,n){l(n,3,0)}),null)}var Ze=u["ɵccf"]("cd-pool-list",U,We,{},{},[]),Xe=e("QC43"),Ye=e("XFyV"),Qe=e("EmSq"),lu=e("pYKc"),nu=e("ppaS"),eu=e("BH9v"),uu=e("rFfW"),iu=u["ɵcrt"]({encapsulation:0,styles:[[".crush-rule-steps[_ngcontent-%COMP%]{margin-top:10px}"]],data:{}});function tu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Xe.b,Xe.a)),u["ɵdid"](1,49152,null,0,Ye.a,[],null,null),(l()(),u["ɵted"](-1,0,["Loading..."]))],null,null)}function ou(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function au(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The chosen Ceph pool name is already in use."]))],null,null)}function su(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["It's not possible to create an RBD pool with '/' in the name. Please change the name or remove 'rbd' from the applications list."]))],null,null)}function ru(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Pool name can only contain letters, numbers, '.', '-', '_' or '/'."]))],null,null)}function du(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function cu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function mu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function fu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function gu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["At least one placement group is needed!"]))],null,null)}function pu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Your cluster can't handle this many PGs. Please recalculate the PG amount needed."]))],null,null)}function hu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The current PGs settings were calculated for you, you should make sure the values suit your needs before submit."]))],null,null)}function vu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,27,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,9,{FormControlNames:1}),u["ɵqud"](603979776,10,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","pgNum"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Placement groups"])),(l()(),u["ɵeld"](6,0,null,0,21,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,9,"input",[["class","form-control"],["formControlName","pgNum"],["id","pgNum"],["min","1"],["name","pgNum"],["required",""],["type","number"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"focus"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0,t=l.component;return"input"===n&&(i=!1!==u["ɵnov"](l,8)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,8).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,8)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,8)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),"focus"===n&&(i=0!=(t.externalPgChange=!1)&&i),"blur"===n&&(i=!1!==t.alignPgs()&&i),i}),null,null)),u["ɵdid"](8,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](9,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵdid"](10,16384,null,0,t.z,[],{required:[0,"required"]},null),u["ɵprd"](1024,null,t.o,(function(l){return[l]}),[t.z]),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](13,671744,[[9,4]],0,t.j,[[3,t.d],[6,t.o],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](15,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](16,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,fu)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,gu)),u["ɵdid"](20,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,pu)),u["ɵdid"](22,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](23,0,null,null,2,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,null,1,"a",[["href","http://ceph.com/pgcalc"],["target","_blank"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Calculation help"])),(l()(),u["ɵand"](16777216,null,null,1,null,hu)),u["ɵdid"](27,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,10,0,""),l(n,13,0,"pgNum"),l(n,16,0,"pgNum"),l(n,18,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"required")),l(n,20,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"min")),l(n,22,0,e.form.showError("pgNum",u["ɵnov"](n.parent.parent,2),"34")),l(n,27,0,e.externalPgChange)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,7,0,u["ɵnov"](n,10).required?"":null,u["ɵnov"](n,15).ngClassUntouched,u["ɵnov"](n,15).ngClassTouched,u["ɵnov"](n,15).ngClassPristine,u["ɵnov"](n,15).ngClassDirty,u["ɵnov"](n,15).ngClassValid,u["ɵnov"](n,15).ngClassInvalid,u["ɵnov"](n,15).ngClassPending,u["ɵnov"](n,16).validClass,u["ɵnov"](n,16).invalidClass)}))}function Cu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,5,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,4,"ul",[["class","list-inline"]],null,null,null,null,null)),(l()(),u["ɵeld"](2,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](3,null,["Minimum: ",""])),(l()(),u["ɵeld"](4,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](5,null,["Maximum: ",""]))],null,(function(l,n){var e=n.component;l(n,3,0,e.getMinSize()),l(n,5,0,e.getMaxSize())}))}function bu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](1,null,["The size specified is out of range. A value from "," to "," is valid."]))],null,(function(l,n){var e=n.component;l(n,1,0,e.getMinSize(),e.getMaxSize())}))}function Ru(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,11,{FormControlNames:1}),u["ɵqud"](603979776,12,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","size"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Replicated size"])),(l()(),u["ɵeld"](6,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,7,"input",[["class","form-control"],["formControlName","size"],["id","size"],["name","size"],["type","number"]],[[8,"max",0],[8,"min",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,8)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,8).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,8)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,8)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),i}),null,null)),u["ɵdid"](8,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](9,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](11,671744,[[11,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](13,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](14,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Cu)),u["ɵdid"](16,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,bu)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,11,0,"size"),l(n,14,0,"size"),l(n,16,0,e.form.showError("size",u["ɵnov"](n.parent.parent,2))),l(n,18,0,e.form.showError("size",u["ɵnov"](n.parent.parent,2)))}),(function(l,n){var e=n.component;l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,7,1,[e.getMaxSize(),e.getMinSize(),u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass])}))}function Iu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,13,{FormControlNames:1}),u["ɵqud"](603979776,14,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Flags"])),(l()(),u["ɵeld"](6,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","ecOverwrites"],["id","ec-overwrites"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.checked)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),i}),null,null)),u["ɵdid"](9,16384,null,0,t.c,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.c]),u["ɵdid"](11,671744,[[13,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](13,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](14,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](15,0,null,null,1,"label",[["class","custom-control-label"],["for","ec-overwrites"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["EC Overwrites"]))],(function(l,n){l(n,1,0),l(n,11,0,"ecOverwrites"),l(n,14,0,"ecOverwrites")}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function Eu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,22,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](2,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,7,{FormControlNames:1}),u["ɵqud"](603979776,8,{messagesBlock:0}),(l()(),u["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"],["for","pgAutoscaleMode"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["PG Autoscale"])),(l()(),u["ɵeld"](7,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","pgAutoscaleMode"],["id","pgAutoscaleMode"],["name","pgAutoscaleMode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),i}),null,null)),u["ɵdid"](9,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](11,671744,[[7,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](13,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](14,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,mu)),u["ɵdid"](16,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,vu)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ru)),u["ɵdid"](20,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Iu)),u["ɵdid"](22,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0),l(n,11,0,"pgAutoscaleMode"),l(n,14,0,"pgAutoscaleMode"),l(n,16,0,e.pgAutoscaleModes),l(n,18,0,"on"!==e.form.getValue("pgAutoscaleMode")),l(n,20,0,e.isReplicated),l(n,22,0,e.info.is_all_bluestore&&e.isErasure)}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).hasErrors,u["ɵnov"](n,2).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function Nu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function yu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- No erasure code profile available --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function wu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select an erasure code profile --"]))],(function(l,n){l(n,1,0,null),l(n,2,0,null)}),null)}function Vu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.name)}))}function Tu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addErasureCodeProfile()&&u),u}),null,null)),(l()(),u["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](3,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](4,1)],(function(l,n){var e=l(n,4,0,n.component.icons.add);l(n,3,0,e)}),null)}function Su(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteErasureCodeProfile()&&u),u}),null,null)),(l()(),u["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](3,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](4,1)],(function(l,n){var e=l(n,4,0,n.component.icons.trash);l(n,3,0,e)}),null)}function _u(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"span",[["class","form-text text-muted"],["id","ecp-info-block"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,1,"cd-table-key-value",[],null,null,null,xe.b,xe.a)),u["ɵdid"](2,638976,null,0,Pe.a,[Bn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null)],(function(l,n){l(n,2,0,n.component.form.getValue("erasureProfile"),!1,!0)}),null)}function qu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,37,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,17,{FormControlNames:1}),u["ɵqud"](603979776,18,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","erasureProfile"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Erasure code profile"])),(l()(),u["ɵeld"](6,0,null,0,31,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,28,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","erasureProfile"],["id","erasureProfile"],["name","erasureProfile"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),i}),null,null)),u["ɵdid"](9,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](11,671744,[[17,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](13,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](14,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Nu)),u["ɵdid"](16,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,yu)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,wu)),u["ɵdid"](20,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Vu)),u["ɵdid"](22,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](23,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),u["ɵeld"](24,0,null,null,7,"button",[["class","btn btn-light"],["id","ecp-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0,i=l.component;return"click"===n&&(u=0!=(i.data.erasureInfo=!i.data.erasureInfo)&&u),u}),null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](26,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["ɵpod"](27,{active:0}),(l()(),u["ɵeld"](28,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](30,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](31,1),(l()(),u["ɵand"](16777216,null,null,1,null,Tu)),u["ɵdid"](33,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Su)),u["ɵdid"](35,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,_u)),u["ɵdid"](37,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,11,0,"erasureProfile"),l(n,14,0,"erasureProfile"),l(n,16,0,!e.ecProfiles),l(n,18,0,e.ecProfiles&&0===e.ecProfiles.length),l(n,20,0,e.ecProfiles&&e.ecProfiles.length>0),l(n,22,0,e.ecProfiles);var u=l(n,27,0,e.data.erasureInfo);l(n,26,0,"btn btn-light",u);var i=l(n,31,0,e.icons.questionCircle);l(n,30,0,i),l(n,33,0,!e.editing),l(n,35,0,!e.editing),l(n,37,0,e.data.erasureInfo&&e.form.getValue("erasureProfile"))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass)}))}function Du(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,19,{FormControlNames:1}),u["ɵqud"](603979776,20,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush ruleset"])),(l()(),u["ɵeld"](6,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A new crush ruleset will be implicitly created."]))],(function(l,n){l(n,1,0)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess)}))}function ku(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["There are no rules."])),(l()(),u["ɵted"](-1,null,["  "]))],null,null)}function xu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit.rule_name)}))}function Pu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.addCrushRule()&&u),u}),null,null)),(l()(),u["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](3,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](4,1)],(function(l,n){var e=l(n,4,0,n.component.icons.add);l(n,3,0,e)}),null)}function Fu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","This rule can't be deleted as it is in use."],["triggers",""],["type","button"]],[[1,"aria-describedby",0]],[[null,"click"]],(function(l,n,e){var u=!0;return"click"===n&&(u=!1!==l.component.deleteCrushRule()&&u),u}),null,null)),u["ɵdid"](1,212992,[[2,4],["crushDeletionBtn",4]],0,Xn.c,[u.ViewContainerRef,Wn.a,Xn.a,u.ElementRef,u.Renderer2,Hn.a],{tooltip:[0,"tooltip"],triggers:[1,"triggers"]},null),(l()(),u["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](4,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](5,1),(l()(),u["ɵand"](0,null,null,0))],(function(l,n){var e=n.component;l(n,1,0,"This rule can't be deleted as it is in use.","");var u=l(n,5,0,e.icons.trash);l(n,4,0,u)}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).ariaDescribedby)}))}function Au(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.describeCrushStep(n.context.$implicit))}))}function Bu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Rule is not in use."]))],null,null)}function Ou(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(l()(),u["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.context.$implicit)}))}function zu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,2,"ul",[],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,Ou)),u["ɵdid"](2,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(l,n){l(n,2,0,n.component.crushUsage)}),null)}function ju(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,16,"span",[["class","form-text text-muted"],["id","crush-info-block"]],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,Ve.b,Ve.a)),u["ɵdid"](2,180224,[[1,4],["crushInfoTabs",4]],0,ne.e,[ne.f,u.Renderer2,u.ElementRef],null,null),(l()(),u["ɵeld"](3,0,null,0,3,"tab",[["class","crush-rule-info"],["heading","Crush rule"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](4,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](5,0,null,null,1,"cd-table-key-value",[],null,null,null,xe.b,xe.a)),u["ɵdid"](6,638976,null,0,Pe.a,[Bn.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"]},null),(l()(),u["ɵeld"](7,0,null,0,4,"tab",[["class","crush-rule-steps"],["heading","Crush steps"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](8,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵeld"](9,0,null,null,2,"ol",[],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,Au)),u["ɵdid"](11,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](12,0,null,0,4,"tab",[["class","used-by-pools"],["heading","Used by pools"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),u["ɵdid"](13,212992,null,0,ne.b,[ne.e,u.ElementRef,u.Renderer2],{heading:[0,"heading"]},null),(l()(),u["ɵand"](0,[["ruleIsNotUsed",2]],null,0,null,Bu)),(l()(),u["ɵand"](16777216,null,null,1,null,zu)),u["ɵdid"](16,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(l,n){var e=n.component;l(n,4,0,"Crush rule"),l(n,6,0,e.form.getValue("crushRule"),!1,!0),l(n,8,0,"Crush steps"),l(n,11,0,e.form.get("crushRule").value.steps),l(n,13,0,"Used by pools"),l(n,16,0,e.crushUsage,u["ɵnov"](n,14))}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).clazz),l(n,3,0,u["ɵnov"](n,4).id,u["ɵnov"](n,4).active,u["ɵnov"](n,4).addClass),l(n,7,0,u["ɵnov"](n,8).id,u["ɵnov"](n,8).active,u["ɵnov"](n,8).addClass),l(n,12,0,u["ɵnov"](n,13).id,u["ɵnov"](n,13).active,u["ɵnov"](n,13).addClass)}))}function Lu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["This field is required!"]))],null,null)}function Uu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The rule can't be used in the current cluster as it has too few OSDs to meet the minimum required OSD by this rule."]))],null,null)}function Mu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,33,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,26,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),u["ɵeld"](2,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","crushRule"],["id","crushRule"],["name","crushSet"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,3).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,3).onTouched()&&i),i}),null,null)),u["ɵdid"](3,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](5,671744,[[21,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](7,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](8,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](9,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](10,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](11,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select a crush rule --"])),(l()(),u["ɵand"](16777216,null,null,1,null,xu)),u["ɵdid"](14,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](15,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),u["ɵeld"](16,0,null,null,7,"button",[["class","btn btn-light"],["id","crush-info-button"],["type","button"]],null,[[null,"click"]],(function(l,n,e){var u=!0,i=l.component;return"click"===n&&(u=0!=(i.data.crushInfo=!i.data.crushInfo)&&u),u}),null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](18,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),u["ɵpod"](19,{active:0}),(l()(),u["ɵeld"](20,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),u["ɵprd"](512,null,Rl["ɵNgClassImpl"],Rl["ɵNgClassR2Impl"],[u.IterableDiffers,u.KeyValueDiffers,u.ElementRef,u.Renderer2]),u["ɵdid"](22,278528,null,0,Rl.NgClass,[Rl["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),u["ɵpad"](23,1),(l()(),u["ɵand"](16777216,null,null,1,null,Pu)),u["ɵdid"](25,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Fu)),u["ɵdid"](27,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ju)),u["ɵdid"](29,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Lu)),u["ɵdid"](31,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Uu)),u["ɵdid"](33,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,5,0,"crushRule"),l(n,8,0,"crushRule"),l(n,10,0,null),l(n,11,0,null),l(n,14,0,e.current.rules);var i=l(n,19,0,e.data.crushInfo);l(n,18,0,"btn btn-light",i);var t=l(n,23,0,e.icons.questionCircle);l(n,22,0,t),l(n,25,0,e.isReplicated&&!e.editing),l(n,27,0,e.isReplicated&&!e.editing),l(n,29,0,e.data.crushInfo&&e.form.getValue("crushRule")),l(n,31,0,e.form.showError("crushRule",u["ɵnov"](n.parent.parent.parent,2),"required")),l(n,33,0,e.form.showError("crushRule",u["ɵnov"](n.parent.parent.parent,2),"tooFewOsds"))}),(function(l,n){l(n,2,0,u["ɵnov"](n,7).ngClassUntouched,u["ɵnov"](n,7).ngClassTouched,u["ɵnov"](n,7).ngClassPristine,u["ɵnov"](n,7).ngClassDirty,u["ɵnov"](n,7).ngClassValid,u["ɵnov"](n,7).ngClassInvalid,u["ɵnov"](n,7).ngClassPending,u["ɵnov"](n,8).validClass,u["ɵnov"](n,8).invalidClass)}))}function Gu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,9,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](1,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,21,{FormControlNames:1}),u["ɵqud"](603979776,22,{messagesBlock:0}),(l()(),u["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"],["for","crushRule"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Crush ruleset"])),(l()(),u["ɵeld"](6,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵand"](0,[["noRules",2]],null,0,null,ku)),(l()(),u["ɵand"](16777216,null,null,1,null,Mu)),u["ɵdid"](9,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(l,n){var e=n.component;l(n,1,0),l(n,9,0,e.current.rules.length>0,u["ɵnov"](n,7))}),(function(l,n){l(n,0,0,u["ɵnov"](n,1).hasErrors,u["ɵnov"](n,1).hasSuccess)}))}function $u(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["CRUSH"])),(l()(),u["ɵand"](16777216,null,null,1,null,qu)),u["ɵdid"](4,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Du)),u["ɵdid"](6,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Gu)),u["ɵdid"](8,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,4,0,e.isErasure),l(n,6,0,e.isErasure&&!e.editing),l(n,8,0,e.isReplicated||e.editing)}),null)}function Ku(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Ju(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["Loading..."]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Hu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- No erasure compression algorithm available --"]))],(function(l,n){l(n,1,0,""),l(n,2,0,"")}),null)}function Wu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),u["ɵdid"](1,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{value:[0,"value"]},null),u["ɵdid"](2,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{value:[0,"value"]},null),(l()(),u["ɵted"](3,null,[" "," "]))],(function(l,n){l(n,1,0,n.context.$implicit),l(n,2,0,n.context.$implicit)}),(function(l,n){l(n,3,0,n.context.$implicit)}))}function Zu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than 0"]))],null,null)}function Xu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be less than the maximum blob size"]))],null,null)}function Yu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than 0"]))],null,null)}function Qu(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be greater than the minimum blob size"]))],null,null)}function li(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Value should be between 0.0 and 1.0"]))],null,null)}function ni(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,75,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](1,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](2,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,25,{FormControlNames:1}),u["ɵqud"](603979776,26,{messagesBlock:0}),(l()(),u["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"],["for","algorithm"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Algorithm"])),(l()(),u["ɵeld"](7,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](8,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","algorithm"],["id","algorithm"],["name","algorithm"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,9).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,9).onTouched()&&i),i}),null,null)),u["ɵdid"](9,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](11,671744,[[25,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](13,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](14,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ju)),u["ɵdid"](16,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Hu)),u["ɵdid"](18,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Wu)),u["ɵdid"](20,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵeld"](21,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](22,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,27,{FormControlNames:1}),u["ɵqud"](603979776,28,{messagesBlock:0}),(l()(),u["ɵeld"](25,0,null,0,1,"label",[["class","cd-col-form-label"],["for","minBlobSize"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Minimum blob size"])),(l()(),u["ɵeld"](27,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](28,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","minBlobSize"],["id","minBlobSize"],["min","0"],["name","minBlobSize"],["placeholder","e.g., 128KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,29)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,29).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,29)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,29)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,33).onBlur(e.target.value)&&i),i}),null,null)),u["ɵdid"](29,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](31,671744,[[27,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](33,81920,null,0,Qe.a,[u.ElementRef,t.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](34,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](35,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Zu)),u["ɵdid"](37,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Xu)),u["ɵdid"](39,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](40,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](41,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,29,{FormControlNames:1}),u["ɵqud"](603979776,30,{messagesBlock:0}),(l()(),u["ɵeld"](44,0,null,0,1,"label",[["class","cd-col-form-label"],["for","maxBlobSize"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Maximum blob size"])),(l()(),u["ɵeld"](46,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](47,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","KiB"],["formControlName","maxBlobSize"],["id","maxBlobSize"],["min","0"],["placeholder","e.g., 512KiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,48)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,48).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,48)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,48)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,52).onBlur(e.target.value)&&i),i}),null,null)),u["ɵdid"](48,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](50,671744,[[29,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](52,81920,null,0,Qe.a,[u.ElementRef,t.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](53,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](54,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Yu)),u["ɵdid"](56,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Qu)),u["ɵdid"](58,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](59,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](60,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,31,{FormControlNames:1}),u["ɵqud"](603979776,32,{messagesBlock:0}),(l()(),u["ɵeld"](63,0,null,0,1,"label",[["class","cd-col-form-label"],["for","ratio"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Ratio"])),(l()(),u["ɵeld"](65,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](66,0,null,null,7,"input",[["class","form-control"],["formControlName","ratio"],["id","ratio"],["max","1"],["min","0"],["name","ratio"],["placeholder","Compression ratio"],["step","0.1"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,67)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,67).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,67)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,67)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,68).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,68).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,68).onTouched()&&i),i}),null,null)),u["ɵdid"](67,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](68,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](70,671744,[[31,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](72,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](73,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,li)),u["ɵdid"](75,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,2,0),l(n,11,0,"algorithm"),l(n,14,0,"algorithm"),l(n,16,0,!e.info.compression_algorithms),l(n,18,0,e.info.compression_algorithms&&0===e.info.compression_algorithms.length),l(n,20,0,e.info.compression_algorithms),l(n,22,0),l(n,31,0,"minBlobSize"),l(n,33,0,"KiB"),l(n,35,0,"minBlobSize"),l(n,37,0,e.form.showError("minBlobSize",u["ɵnov"](n.parent.parent,2),"min")),l(n,39,0,e.form.showError("minBlobSize",u["ɵnov"](n.parent.parent,2),"maximum")),l(n,41,0),l(n,50,0,"maxBlobSize"),l(n,52,0,"KiB"),l(n,54,0,"maxBlobSize"),l(n,56,0,e.form.showError("maxBlobSize",u["ɵnov"](n.parent.parent,2),"min")),l(n,58,0,e.form.showError("maxBlobSize",u["ɵnov"](n.parent.parent,2),"minimum")),l(n,60,0),l(n,70,0,"ratio"),l(n,73,0,"ratio"),l(n,75,0,e.form.showError("ratio",u["ɵnov"](n.parent.parent,2),"min")||e.form.showError("ratio",u["ɵnov"](n.parent.parent,2),"max"))}),(function(l,n){l(n,1,0,u["ɵnov"](n,2).hasErrors,u["ɵnov"](n,2).hasSuccess),l(n,8,0,u["ɵnov"](n,13).ngClassUntouched,u["ɵnov"](n,13).ngClassTouched,u["ɵnov"](n,13).ngClassPristine,u["ɵnov"](n,13).ngClassDirty,u["ɵnov"](n,13).ngClassValid,u["ɵnov"](n,13).ngClassInvalid,u["ɵnov"](n,13).ngClassPending,u["ɵnov"](n,14).validClass,u["ɵnov"](n,14).invalidClass),l(n,21,0,u["ɵnov"](n,22).hasErrors,u["ɵnov"](n,22).hasSuccess),l(n,28,0,u["ɵnov"](n,34).ngClassUntouched,u["ɵnov"](n,34).ngClassTouched,u["ɵnov"](n,34).ngClassPristine,u["ɵnov"](n,34).ngClassDirty,u["ɵnov"](n,34).ngClassValid,u["ɵnov"](n,34).ngClassInvalid,u["ɵnov"](n,34).ngClassPending,u["ɵnov"](n,35).validClass,u["ɵnov"](n,35).invalidClass),l(n,40,0,u["ɵnov"](n,41).hasErrors,u["ɵnov"](n,41).hasSuccess),l(n,47,0,u["ɵnov"](n,53).ngClassUntouched,u["ɵnov"](n,53).ngClassTouched,u["ɵnov"](n,53).ngClassPristine,u["ɵnov"](n,53).ngClassDirty,u["ɵnov"](n,53).ngClassValid,u["ɵnov"](n,53).ngClassInvalid,u["ɵnov"](n,53).ngClassPending,u["ɵnov"](n,54).validClass,u["ɵnov"](n,54).invalidClass),l(n,59,0,u["ɵnov"](n,60).hasErrors,u["ɵnov"](n,60).hasSuccess),l(n,66,0,u["ɵnov"](n,72).ngClassUntouched,u["ɵnov"](n,72).ngClassTouched,u["ɵnov"](n,72).ngClassPristine,u["ɵnov"](n,72).ngClassDirty,u["ɵnov"](n,72).ngClassValid,u["ɵnov"](n,72).ngClassInvalid,u["ɵnov"](n,72).ngClassPending,u["ɵnov"](n,73).validClass,u["ɵnov"](n,73).invalidClass)}))}function ei(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,23,"div",[["formGroupName","compression"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),u["ɵdid"](1,212992,null,0,t.m,[[3,t.d],[8,null],[8,null]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.d,null,[t.m]),u["ɵdid"](3,16384,null,0,t.s,[[4,t.d]],null,null),(l()(),u["ɵeld"](4,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Compression"])),(l()(),u["ɵeld"](6,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](7,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,23,{FormControlNames:1}),u["ɵqud"](603979776,24,{messagesBlock:0}),(l()(),u["ɵeld"](10,0,null,0,1,"label",[["class","cd-col-form-label"],["for","mode"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Mode"])),(l()(),u["ɵeld"](12,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](13,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","mode"],["id","mode"],["name","mode"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,14).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,14).onTouched()&&i),i}),null,null)),u["ɵdid"](14,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](16,671744,[[23,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](18,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](19,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Ku)),u["ɵdid"](21,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ni)),u["ɵdid"](23,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,1,0,"compression"),l(n,7,0),l(n,16,0,"mode"),l(n,19,0,"mode"),l(n,21,0,e.info.compression_modes),l(n,23,0,e.hasCompressionEnabled())}),(function(l,n){l(n,0,0,u["ɵnov"](n,3).ngClassUntouched,u["ɵnov"](n,3).ngClassTouched,u["ɵnov"](n,3).ngClassPristine,u["ɵnov"](n,3).ngClassDirty,u["ɵnov"](n,3).ngClassValid,u["ɵnov"](n,3).ngClassInvalid,u["ɵnov"](n,3).ngClassPending),l(n,6,0,u["ɵnov"](n,7).hasErrors,u["ɵnov"](n,7).hasSuccess),l(n,13,0,u["ɵnov"](n,18).ngClassUntouched,u["ɵnov"](n,18).ngClassTouched,u["ɵnov"](n,18).ngClassPristine,u["ɵnov"](n,18).ngClassDirty,u["ɵnov"](n,18).ngClassValid,u["ɵnov"](n,18).ngClassInvalid,u["ɵnov"](n,18).ngClassPending,u["ɵnov"](n,19).validClass,u["ɵnov"](n,19).invalidClass)}))}function ui(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["The value should be greater or equal to 0"]))],null,null)}function ii(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,134,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,e){var i=!0;return"submit"===n&&(i=!1!==u["ɵnov"](l,2).onSubmit(e)&&i),"reset"===n&&(i=!1!==u["ɵnov"](l,2).onReset()&&i),"submit"===n&&(i=!1!==u["ɵnov"](l,5).onSubmit()&&i),i}),null,null)),u["ɵdid"](1,16384,null,0,t.G,[],null,null),u["ɵdid"](2,540672,[["formDir",4]],0,t.l,[[8,null],[8,null]],{form:[0,"form"]},null),u["ɵprd"](2048,null,t.d,null,[t.l]),u["ɵdid"](4,16384,null,0,t.s,[[4,t.d]],null,null),u["ɵdid"](5,16384,null,0,Nl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),u["ɵeld"](6,0,null,null,128,"div",[["class","card"]],null,null,null,null,null)),(l()(),u["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),u["ɵted"](8,null,[""," ",""])),u["ɵppd"](9,1),u["ɵppd"](10,1),(l()(),u["ɵeld"](11,0,null,null,114,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),u["ɵeld"](12,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](13,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,3,{FormControlNames:1}),u["ɵqud"](603979776,4,{messagesBlock:0}),(l()(),u["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Name"])),(l()(),u["ɵeld"](18,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](19,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,21)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,21).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,21)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,21)._compositionEnd(e.target.value)&&i),i}),null,null)),u["ɵdid"](20,4210688,null,0,wl.a,[u.ElementRef],{autofocus:[0,"autofocus"]},null),u["ɵdid"](21,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](23,671744,[[3,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](25,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](26,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ou)),u["ɵdid"](28,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,au)),u["ɵdid"](30,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,su)),u["ɵdid"](32,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ru)),u["ɵdid"](34,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](35,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](36,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,5,{FormControlNames:1}),u["ɵqud"](603979776,6,{messagesBlock:0}),(l()(),u["ɵeld"](39,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","poolType"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Pool type"])),(l()(),u["ɵeld"](41,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](42,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","poolType"],["id","poolType"],["name","poolType"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,e){var i=!0;return"change"===n&&(i=!1!==u["ɵnov"](l,43).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,43).onTouched()&&i),i}),null,null)),u["ɵdid"](43,16384,null,0,t.A,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.A]),u["ɵdid"](45,671744,[[5,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](47,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](48,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](49,0,null,null,3,"option",[["ngValue",""]],null,null,null,null,null)),u["ɵdid"](50,147456,null,0,t.v,[u.ElementRef,u.Renderer2,[2,t.A]],{ngValue:[0,"ngValue"]},null),u["ɵdid"](51,147456,null,0,t.F,[u.ElementRef,u.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(l()(),u["ɵted"](-1,null,["-- Select a pool type --"])),(l()(),u["ɵand"](16777216,null,null,1,null,du)),u["ɵdid"](54,278528,null,0,Rl.NgForOf,[u.ViewContainerRef,u.TemplateRef,u.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,cu)),u["ɵdid"](56,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,Eu)),u["ɵdid"](58,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](59,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](60,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,15,{FormControlNames:1}),u["ɵqud"](603979776,16,{messagesBlock:0}),(l()(),u["ɵeld"](63,0,null,0,1,"label",[["class","cd-col-form-label"],["for","applications"]],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Applications"])),(l()(),u["ɵeld"](65,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](66,0,null,null,1,"cd-select-badges",[["id","applications"]],null,[[null,"selection"]],(function(l,n,e){var u=!0;return"selection"===n&&(u=!1!==l.component.appSelection()&&u),u}),lu.b,lu.a)),u["ɵdid"](67,49152,null,0,nu.a,[s.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"],selectionLimit:[3,"selectionLimit"],customBadges:[4,"customBadges"],customBadgeValidators:[5,"customBadgeValidators"]},{selection:"selection"}),(l()(),u["ɵand"](16777216,null,null,1,null,$u)),u["ɵdid"](69,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ei)),u["ɵdid"](71,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](72,0,null,null,50,"div",[],null,null,null,null,null)),(l()(),u["ɵeld"](73,0,null,null,1,"legend",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Quotas"])),(l()(),u["ɵeld"](75,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](76,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,33,{FormControlNames:1}),u["ɵqud"](603979776,34,{messagesBlock:0}),(l()(),u["ɵeld"](79,0,null,0,9,"label",[["class","cd-col-form-label"],["for","max_bytes"]],null,null,null,null,null)),(l()(),u["ɵeld"](80,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Max bytes"])),(l()(),u["ɵeld"](82,0,null,null,6,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](83,49152,null,0,Tl.a,[],null,null),(l()(),u["ɵeld"](84,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Leave it blank or specify 0 to disable this quota."])),(l()(),u["ɵeld"](86,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),u["ɵeld"](87,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A valid quota should be greater than 0."])),(l()(),u["ɵeld"](89,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](90,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["defaultUnit","GiB"],["formControlName","max_bytes"],["id","max_bytes"],["name","max_bytes"],["placeholder","e.g., 10GiB"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,91)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,91).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,91)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,91)._compositionEnd(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,95).onBlur(e.target.value)&&i),i}),null,null)),u["ɵdid"](91,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵprd"](1024,null,t.p,(function(l){return[l]}),[t.e]),u["ɵdid"](93,671744,[[33,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](95,81920,null,0,Qe.a,[u.ElementRef,t.q,R.a,E.a],{defaultUnit:[0,"defaultUnit"]},null),u["ɵdid"](96,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](97,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵeld"](98,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,yl.b,yl.a)),u["ɵdid"](99,1163264,null,2,Nl.c,[u.ElementRef,Nl.g],null,null),u["ɵqud"](603979776,35,{FormControlNames:1}),u["ɵqud"](603979776,36,{messagesBlock:0}),(l()(),u["ɵeld"](102,0,null,0,9,"label",[["class","cd-col-form-label"],["for","max_objects"]],null,null,null,null,null)),(l()(),u["ɵeld"](103,0,null,null,1,null,null,null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Max objects"])),(l()(),u["ɵeld"](105,0,null,null,6,"cd-helper",[],null,null,null,Vl.b,Vl.a)),u["ɵdid"](106,49152,null,0,Tl.a,[],null,null),(l()(),u["ɵeld"](107,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["Leave it blank or specify 0 to disable this quota."])),(l()(),u["ɵeld"](109,0,null,0,0,"br",[],null,null,null,null,null)),(l()(),u["ɵeld"](110,0,null,0,1,"span",[],null,null,null,null,null)),(l()(),u["ɵted"](-1,null,["A valid quota should be greater than 0."])),(l()(),u["ɵeld"](112,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),u["ɵeld"](113,0,null,null,7,"input",[["class","form-control"],["formControlName","max_objects"],["id","max_objects"],["min","0"],["name","max_objects"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(l,n,e){var i=!0;return"input"===n&&(i=!1!==u["ɵnov"](l,114)._handleInput(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,114).onTouched()&&i),"compositionstart"===n&&(i=!1!==u["ɵnov"](l,114)._compositionStart()&&i),"compositionend"===n&&(i=!1!==u["ɵnov"](l,114)._compositionEnd(e.target.value)&&i),"change"===n&&(i=!1!==u["ɵnov"](l,115).onChange(e.target.value)&&i),"input"===n&&(i=!1!==u["ɵnov"](l,115).onChange(e.target.value)&&i),"blur"===n&&(i=!1!==u["ɵnov"](l,115).onTouched()&&i),i}),null,null)),u["ɵdid"](114,16384,null,0,t.e,[u.Renderer2,u.ElementRef,[2,t.b]],null,null),u["ɵdid"](115,16384,null,0,t.w,[u.Renderer2,u.ElementRef],null,null),u["ɵprd"](1024,null,t.p,(function(l,n){return[l,n]}),[t.e,t.w]),u["ɵdid"](117,671744,[[35,4]],0,t.j,[[3,t.d],[8,null],[8,null],[6,t.p],[2,t.E]],{name:[0,"name"]},null),u["ɵprd"](2048,null,t.q,null,[t.j]),u["ɵdid"](119,16384,null,0,t.r,[[4,t.q]],null,null),u["ɵdid"](120,16384,null,0,Nl.h,[[3,t.d],Nl.a],{formControlName:[0,"formControlName"]},null),(l()(),u["ɵand"](16777216,null,null,1,null,ui)),u["ɵdid"](122,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](123,0,null,null,2,"div",[],[[8,"hidden",0]],null,null,null,null)),(l()(),u["ɵeld"](124,0,null,null,1,"cd-rbd-configuration-form",[],null,[[null,"changes"]],(function(l,n,e){var u=!0;return"changes"===n&&(u=!1!==(l.component.currentConfigurationValues=e())&&u),u}),eu.b,eu.a)),u["ɵdid"](125,114688,null,0,uu.a,[E.a,ke.a],{form:[0,"form"],initializeData:[1,"initializeData"]},{changes:"changes"}),(l()(),u["ɵeld"](126,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),u["ɵeld"](127,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),u["ɵeld"](128,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,e){var u=!0;return"submitAction"===n&&(u=!1!==l.component.submit()&&u),u}),Sl.b,Sl.a)),u["ɵdid"](129,114688,null,0,_l.a,[u.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),u["ɵted"](130,0,[""," "," "])),u["ɵppd"](131,1),u["ɵppd"](132,1),(l()(),u["ɵeld"](133,0,null,null,1,"cd-back-button",[],null,null,null,ql.b,ql.a)),u["ɵdid"](134,49152,null,0,Dl.a,[Rl.Location,i.b],null,null)],(function(l,n){var e=n.component;l(n,2,0,e.form),l(n,5,0,e.form),l(n,13,0),l(n,20,0,""),l(n,23,0,"name"),l(n,26,0,"name"),l(n,28,0,e.form.showError("name",u["ɵnov"](n,2),"required")),l(n,30,0,e.form.showError("name",u["ɵnov"](n,2),"uniqueName")),l(n,32,0,e.form.showError("name",u["ɵnov"](n,2),"rbdPool")),l(n,34,0,e.form.showError("name",u["ɵnov"](n,2),"pattern")),l(n,36,0),l(n,45,0,"poolType"),l(n,48,0,"poolType"),l(n,50,0,""),l(n,51,0,""),l(n,54,0,e.data.poolTypes),l(n,56,0,e.form.showError("poolType",u["ɵnov"](n,2),"required")),l(n,58,0,e.isReplicated||e.isErasure),l(n,60,0),l(n,67,0,e.data.applications.selected,e.data.applications.available,e.data.applications.messages,4,!0,e.data.applications.validators),l(n,69,0,e.isErasure||e.isReplicated),l(n,71,0,e.info.is_all_bluestore),l(n,76,0),l(n,93,0,"max_bytes"),l(n,95,0,"GiB"),l(n,97,0,"max_bytes"),l(n,99,0),l(n,117,0,"max_objects"),l(n,120,0,"max_objects"),l(n,122,0,e.form.showError("max_objects",u["ɵnov"](n,2),"min")),l(n,125,0,e.form,e.initializeConfigData),l(n,129,0,u["ɵnov"](n,2))}),(function(l,n){var e=n.component;l(n,0,0,u["ɵnov"](n,4).ngClassUntouched,u["ɵnov"](n,4).ngClassTouched,u["ɵnov"](n,4).ngClassPristine,u["ɵnov"](n,4).ngClassDirty,u["ɵnov"](n,4).ngClassValid,u["ɵnov"](n,4).ngClassInvalid,u["ɵnov"](n,4).ngClassPending);var i=u["ɵunv"](n,8,0,l(n,9,0,u["ɵnov"](n.parent,0),e.action)),t=u["ɵunv"](n,8,1,l(n,10,0,u["ɵnov"](n.parent,1),e.resource));l(n,8,0,i,t),l(n,12,0,u["ɵnov"](n,13).hasErrors,u["ɵnov"](n,13).hasSuccess),l(n,19,0,u["ɵnov"](n,25).ngClassUntouched,u["ɵnov"](n,25).ngClassTouched,u["ɵnov"](n,25).ngClassPristine,u["ɵnov"](n,25).ngClassDirty,u["ɵnov"](n,25).ngClassValid,u["ɵnov"](n,25).ngClassInvalid,u["ɵnov"](n,25).ngClassPending,u["ɵnov"](n,26).validClass,u["ɵnov"](n,26).invalidClass),l(n,35,0,u["ɵnov"](n,36).hasErrors,u["ɵnov"](n,36).hasSuccess),l(n,42,0,u["ɵnov"](n,47).ngClassUntouched,u["ɵnov"](n,47).ngClassTouched,u["ɵnov"](n,47).ngClassPristine,u["ɵnov"](n,47).ngClassDirty,u["ɵnov"](n,47).ngClassValid,u["ɵnov"](n,47).ngClassInvalid,u["ɵnov"](n,47).ngClassPending,u["ɵnov"](n,48).validClass,u["ɵnov"](n,48).invalidClass),l(n,59,0,u["ɵnov"](n,60).hasErrors,u["ɵnov"](n,60).hasSuccess),l(n,75,0,u["ɵnov"](n,76).hasErrors,u["ɵnov"](n,76).hasSuccess),l(n,90,0,u["ɵnov"](n,96).ngClassUntouched,u["ɵnov"](n,96).ngClassTouched,u["ɵnov"](n,96).ngClassPristine,u["ɵnov"](n,96).ngClassDirty,u["ɵnov"](n,96).ngClassValid,u["ɵnov"](n,96).ngClassInvalid,u["ɵnov"](n,96).ngClassPending,u["ɵnov"](n,97).validClass,u["ɵnov"](n,97).invalidClass),l(n,98,0,u["ɵnov"](n,99).hasErrors,u["ɵnov"](n,99).hasSuccess),l(n,113,0,u["ɵnov"](n,119).ngClassUntouched,u["ɵnov"](n,119).ngClassTouched,u["ɵnov"](n,119).ngClassPristine,u["ɵnov"](n,119).ngClassDirty,u["ɵnov"](n,119).ngClassValid,u["ɵnov"](n,119).ngClassInvalid,u["ɵnov"](n,119).ngClassPending,u["ɵnov"](n,120).validClass,u["ɵnov"](n,120).invalidClass),l(n,123,0,e.isErasure||-1===e.data.applications.selected.indexOf("rbd"));var o=u["ɵunv"](n,130,0,l(n,131,0,u["ɵnov"](n.parent,0),e.action)),a=u["ɵunv"](n,130,1,l(n,132,0,u["ɵnov"](n.parent,1),e.resource));l(n,130,0,o,a)}))}function ti(l){return u["ɵvid"](0,[u["ɵpid"](0,Rl.TitleCasePipe,[]),u["ɵpid"](0,Il.a,[]),u["ɵqud"](671088640,1,{crushInfoTabs:0}),u["ɵqud"](671088640,2,{crushDeletionBtn:0}),(l()(),u["ɵand"](16777216,null,null,1,null,tu)),u["ɵdid"](5,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),u["ɵeld"](6,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),u["ɵand"](16777216,null,null,1,null,ii)),u["ɵdid"](8,16384,null,0,Rl.NgIf,[u.ViewContainerRef,u.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var e=n.component;l(n,5,0,!(e.info&&e.ecProfiles)),l(n,8,0,e.info&&e.ecProfiles)}),null)}function oi(l){return u["ɵvid"](0,[(l()(),u["ɵeld"](0,0,null,null,1,"cd-pool-form",[],null,null,null,ti,iu)),u["ɵdid"](1,114688,null,0,q,[R.a,le.a,le.m,kl.b,m.a,I.a,E.a,kl.b,N.a,c,d,s.a,i.b],null,null)],(function(l,n){l(n,1,0)}),null)}var ai=u["ɵccf"]("cd-pool-form",q,oi,{},{},[]);e.d(n,"PoolModuleNgFactory",(function(){return si})),e.d(n,"RoutedPoolModuleNgFactory",(function(){return ri}));var si=u["ɵcmf"](M,[],(function(l){return u["ɵmod"]([u["ɵmpd"](512,u.ComponentFactoryResolver,u["ɵCodegenComponentFactoryResolver"],[[8,[J.a,H.a,W.a,Z.a,X.a,X.b,Y.a,Q.a,ll.a,nl.a,el.a,ul.a,il.a,tl.a,ol.a,al.a,sl.a,rl.a,rl.c,rl.b,dl.a,cl.a,ml.a,fl.a,gl.a,pl.a,hl.a,vl.a,Cl.a,bl.a,Kl,Nn]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["ɵmpd"](4608,Rl.NgLocalization,Rl.NgLocaleLocalization,[u.LOCALE_ID,[2,Rl["ɵangular_packages_common_common_a"]]]),u["ɵmpd"](4608,yn.ScrollbarHelper,yn.ScrollbarHelper,[Rl.DOCUMENT]),u["ɵmpd"](4608,wn.DimensionsHelper,wn.DimensionsHelper,[]),u["ɵmpd"](4608,Vn.ColumnChangesService,Vn.ColumnChangesService,[]),u["ɵmpd"](4608,t.D,t.D,[]),u["ɵmpd"](4608,Tn.a,Tn.a,[]),u["ɵmpd"](4608,Sn.a,Sn.a,[]),u["ɵmpd"](4608,_n.a,_n.a,[s.a]),u["ɵmpd"](4608,Rl.DatePipe,Rl.DatePipe,[u.LOCALE_ID]),u["ɵmpd"](4608,qn.a,qn.a,[]),u["ɵmpd"](4608,Dn.a,Dn.a,[]),u["ɵmpd"](4608,E.a,E.a,[]),u["ɵmpd"](4608,R.a,R.a,[E.a]),u["ɵmpd"](4608,kn.a,kn.a,[E.a]),u["ɵmpd"](4608,A.a,A.a,[E.a]),u["ɵmpd"](4608,xn.a,xn.a,[]),u["ɵmpd"](4608,Pn.a,Pn.a,[]),u["ɵmpd"](4608,Fn.a,Fn.a,[]),u["ɵmpd"](4608,An.a,An.a,[]),u["ɵmpd"](4608,Bn.a,Bn.a,[Rl.DatePipe]),u["ɵmpd"](4608,On.a,On.a,[]),u["ɵmpd"](4608,zn.a,zn.a,[]),u["ɵmpd"](4608,jn.a,jn.a,[]),u["ɵmpd"](4608,Ln.a,Ln.a,[]),u["ɵmpd"](4608,Un.a,Un.a,[]),u["ɵmpd"](4608,Mn.a,Mn.a,[s.a]),u["ɵmpd"](4608,Il.a,Il.a,[]),u["ɵmpd"](4608,Gn.a,Gn.a,[]),u["ɵmpd"](4608,$n.a,$n.a,[]),u["ɵmpd"](4608,t.h,t.h,[]),u["ɵmpd"](4608,Kn.b,Kn.b,[]),u["ɵmpd"](4608,Jn.a,Jn.a,[]),u["ɵmpd"](4608,Hn.a,Hn.a,[u.RendererFactory2,u.PLATFORM_ID]),u["ɵmpd"](4608,Wn.a,Wn.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,Hn.a,u.ApplicationRef]),u["ɵmpd"](4608,Zn.c,Zn.c,[]),u["ɵmpd"](4608,Xn.a,Xn.a,[]),u["ɵmpd"](4608,kl.b,kl.b,[u.RendererFactory2,Wn.a]),u["ɵmpd"](4608,Yn.f,Yn.f,[]),u["ɵmpd"](4608,I.a,I.a,[]),u["ɵmpd"](4608,Qn.a,Qn.a,[le.m,I.a]),u["ɵmpd"](4608,ne.f,ne.f,[]),u["ɵmpd"](4608,ee.r,ee.r,[]),u["ɵmpd"](4608,ee.t,ee.t,[]),u["ɵmpd"](4608,ee.a,ee.a,[]),u["ɵmpd"](4608,ee.h,ee.h,[]),u["ɵmpd"](4608,ee.d,ee.d,[]),u["ɵmpd"](4608,ee.j,ee.j,[]),u["ɵmpd"](4608,ee.s,ee.s,[ee.t,ee.j]),u["ɵmpd"](4608,ue.a,ue.a,[]),u["ɵmpd"](1073742336,Rl.CommonModule,Rl.CommonModule,[]),u["ɵmpd"](1073742336,ie.NgxDatatableModule,ie.NgxDatatableModule,[]),u["ɵmpd"](1073742336,t.C,t.C,[]),u["ɵmpd"](1073742336,t.n,t.n,[]),u["ɵmpd"](1073742336,Yn.e,Yn.e,[]),u["ɵmpd"](1073742336,te.a,te.a,[]),u["ɵmpd"](1073742336,t.y,t.y,[]),u["ɵmpd"](1073742336,Kn.c,Kn.c,[]),u["ɵmpd"](1073742336,Jn.d,Jn.d,[]),u["ɵmpd"](1073742336,Zn.d,Zn.d,[]),u["ɵmpd"](1073742336,Xn.d,Xn.d,[]),u["ɵmpd"](1073742336,oe.b,oe.b,[]),u["ɵmpd"](1073742336,kl.e,kl.e,[]),u["ɵmpd"](1073742336,ae.a,ae.a,[]),u["ɵmpd"](1073742336,Nl.f,Nl.f,[]),u["ɵmpd"](1073742336,se.ClickOutsideModule,se.ClickOutsideModule,[]),u["ɵmpd"](1073742336,re.b,re.b,[]),u["ɵmpd"](1073742336,le.q,le.q,[[2,le.v],[2,le.m]]),u["ɵmpd"](1073742336,de.a,de.a,[]),u["ɵmpd"](1073742336,ce.a,ce.a,[]),u["ɵmpd"](1073742336,r.a,r.a,[]),u["ɵmpd"](1073742336,me.a,me.a,[]),u["ɵmpd"](1073742336,ne.d,ne.d,[]),u["ɵmpd"](1073742336,fe.a,fe.a,[]),u["ɵmpd"](1073742336,ge.a,ge.a,[]),u["ɵmpd"](1073742336,ee.g,ee.g,[]),u["ɵmpd"](1073742336,pe.b,pe.b,[]),u["ɵmpd"](1073742336,he.a,he.a,[]),u["ɵmpd"](1073742336,M,M,[]),u["ɵmpd"](256,u.LOCALE_ID,"en-US",[]),u["ɵmpd"](256,Yn.a,{autoClose:!0,insideClick:!1},[]),u["ɵmpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])})),ri=u["ɵcmf"](K,[],(function(l){return u["ɵmod"]([u["ɵmpd"](512,u.ComponentFactoryResolver,u["ɵCodegenComponentFactoryResolver"],[[8,[J.a,H.a,W.a,Z.a,X.a,X.b,Y.a,Q.a,ll.a,nl.a,el.a,ul.a,il.a,tl.a,ol.a,al.a,sl.a,rl.a,rl.c,rl.b,dl.a,cl.a,ml.a,fl.a,gl.a,pl.a,hl.a,vl.a,Cl.a,bl.a,Kl,Nn,Ze,ai]],[3,u.ComponentFactoryResolver],u.NgModuleRef]),u["ɵmpd"](4608,Rl.NgLocalization,Rl.NgLocaleLocalization,[u.LOCALE_ID,[2,Rl["ɵangular_packages_common_common_a"]]]),u["ɵmpd"](4608,yn.ScrollbarHelper,yn.ScrollbarHelper,[Rl.DOCUMENT]),u["ɵmpd"](4608,wn.DimensionsHelper,wn.DimensionsHelper,[]),u["ɵmpd"](4608,Vn.ColumnChangesService,Vn.ColumnChangesService,[]),u["ɵmpd"](4608,t.D,t.D,[]),u["ɵmpd"](4608,Tn.a,Tn.a,[]),u["ɵmpd"](4608,Sn.a,Sn.a,[]),u["ɵmpd"](4608,_n.a,_n.a,[s.a]),u["ɵmpd"](4608,Rl.DatePipe,Rl.DatePipe,[u.LOCALE_ID]),u["ɵmpd"](4608,qn.a,qn.a,[]),u["ɵmpd"](4608,Dn.a,Dn.a,[]),u["ɵmpd"](4608,E.a,E.a,[]),u["ɵmpd"](4608,R.a,R.a,[E.a]),u["ɵmpd"](4608,kn.a,kn.a,[E.a]),u["ɵmpd"](4608,A.a,A.a,[E.a]),u["ɵmpd"](4608,xn.a,xn.a,[]),u["ɵmpd"](4608,Pn.a,Pn.a,[]),u["ɵmpd"](4608,Fn.a,Fn.a,[]),u["ɵmpd"](4608,An.a,An.a,[]),u["ɵmpd"](4608,Bn.a,Bn.a,[Rl.DatePipe]),u["ɵmpd"](4608,On.a,On.a,[]),u["ɵmpd"](4608,zn.a,zn.a,[]),u["ɵmpd"](4608,jn.a,jn.a,[]),u["ɵmpd"](4608,Ln.a,Ln.a,[]),u["ɵmpd"](4608,Un.a,Un.a,[]),u["ɵmpd"](4608,Mn.a,Mn.a,[s.a]),u["ɵmpd"](4608,Il.a,Il.a,[]),u["ɵmpd"](4608,Gn.a,Gn.a,[]),u["ɵmpd"](4608,$n.a,$n.a,[]),u["ɵmpd"](4608,t.h,t.h,[]),u["ɵmpd"](4608,Kn.b,Kn.b,[]),u["ɵmpd"](4608,Jn.a,Jn.a,[]),u["ɵmpd"](4608,Hn.a,Hn.a,[u.RendererFactory2,u.PLATFORM_ID]),u["ɵmpd"](4608,Wn.a,Wn.a,[u.ComponentFactoryResolver,u.NgZone,u.Injector,Hn.a,u.ApplicationRef]),u["ɵmpd"](4608,Zn.c,Zn.c,[]),u["ɵmpd"](4608,Xn.a,Xn.a,[]),u["ɵmpd"](4608,kl.b,kl.b,[u.RendererFactory2,Wn.a]),u["ɵmpd"](4608,Yn.f,Yn.f,[]),u["ɵmpd"](4608,I.a,I.a,[]),u["ɵmpd"](4608,Qn.a,Qn.a,[le.m,I.a]),u["ɵmpd"](4608,ne.f,ne.f,[]),u["ɵmpd"](4608,ee.r,ee.r,[]),u["ɵmpd"](4608,ee.t,ee.t,[]),u["ɵmpd"](4608,ee.a,ee.a,[]),u["ɵmpd"](4608,ee.h,ee.h,[]),u["ɵmpd"](4608,ee.d,ee.d,[]),u["ɵmpd"](4608,ee.j,ee.j,[]),u["ɵmpd"](4608,ee.s,ee.s,[ee.t,ee.j]),u["ɵmpd"](4608,ue.a,ue.a,[]),u["ɵmpd"](1073742336,Rl.CommonModule,Rl.CommonModule,[]),u["ɵmpd"](1073742336,ie.NgxDatatableModule,ie.NgxDatatableModule,[]),u["ɵmpd"](1073742336,t.C,t.C,[]),u["ɵmpd"](1073742336,t.n,t.n,[]),u["ɵmpd"](1073742336,Yn.e,Yn.e,[]),u["ɵmpd"](1073742336,te.a,te.a,[]),u["ɵmpd"](1073742336,t.y,t.y,[]),u["ɵmpd"](1073742336,Kn.c,Kn.c,[]),u["ɵmpd"](1073742336,Jn.d,Jn.d,[]),u["ɵmpd"](1073742336,Zn.d,Zn.d,[]),u["ɵmpd"](1073742336,Xn.d,Xn.d,[]),u["ɵmpd"](1073742336,oe.b,oe.b,[]),u["ɵmpd"](1073742336,kl.e,kl.e,[]),u["ɵmpd"](1073742336,ae.a,ae.a,[]),u["ɵmpd"](1073742336,Nl.f,Nl.f,[]),u["ɵmpd"](1073742336,se.ClickOutsideModule,se.ClickOutsideModule,[]),u["ɵmpd"](1073742336,re.b,re.b,[]),u["ɵmpd"](1073742336,le.q,le.q,[[2,le.v],[2,le.m]]),u["ɵmpd"](1073742336,de.a,de.a,[]),u["ɵmpd"](1073742336,ce.a,ce.a,[]),u["ɵmpd"](1073742336,r.a,r.a,[]),u["ɵmpd"](1073742336,me.a,me.a,[]),u["ɵmpd"](1073742336,ne.d,ne.d,[]),u["ɵmpd"](1073742336,fe.a,fe.a,[]),u["ɵmpd"](1073742336,ge.a,ge.a,[]),u["ɵmpd"](1073742336,ee.g,ee.g,[]),u["ɵmpd"](1073742336,pe.b,pe.b,[]),u["ɵmpd"](1073742336,he.a,he.a,[]),u["ɵmpd"](1073742336,M,M,[]),u["ɵmpd"](1073742336,K,K,[]),u["ɵmpd"](256,u.LOCALE_ID,"en-US",[]),u["ɵmpd"](256,Yn.a,{autoClose:!0,insideClick:!1},[]),u["ɵmpd"](1024,le.k,(function(){return[[{path:"",component:U},{path:"create",component:q,data:G},{path:"edit/:name",component:q,data:$}]]}),[]),u["ɵmpd"](256,u.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.a6e2f7400e0a62470111.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.a6e2f7400e0a62470111.js
deleted file mode 100644 (file)
index 6bb4a65..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{DY6s:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),o=u("LceX"),a=u("ES0t"),d=u("MdoF"),t=u("Xg1U"),s=u("z5nN"),i=u("iutN"),r=u("pMnS"),c=u("EEJc"),p=u("PEr+"),m=u("a40w"),v=u("hfeG"),f=u("atuK"),g=u("SVse"),h=u("s7LF"),C=u("yT6U"),b=u("4DD9"),R=u("iExv"),w=u("GiVz"),I=u("85J/"),E=u("+0ag"),N=u("aXbf"),x=u("Fgil"),T=u("IzCI"),y=u("o4+5"),k=u("Dwqy"),D=u("uYzU"),S=u("FFMq"),q=u("E2fk"),F=u("a0VL"),P=u("nSDx"),_=u("SB+Q"),M=u("TYzs"),U=u("BQkM"),V=u("dEH0"),L=u("G1/K"),A=u("8xTl"),O=u("TJUb"),j=u("efK2"),B=u("CNMR"),H=u("KOzp"),z=u("2uy1"),G=u("z/SZ"),K=u("38Bd"),Z=u("978R"),X=u("LqlI"),J=u("FO+L"),Y=u("nhM1"),Q=u("BARL"),W=u("FE24"),$=u("aexS"),ll=u("Avrn"),nl=u("iInd"),ul=u("2ZVE"),el=u("ienR"),ol=u("aHM3"),al=u("9Xeq"),dl=u("hrfs"),tl=u("yGOH"),sl=u("+gVj"),il=u("bxSN"),rl=u("WF9J"),cl=u("V/fk"),pl=u("F8xH"),ml=u("ChqD"),vl=u("pL04"),fl=u("PCNd"),gl=u("pKUh");class hl{constructor(l){this.router=l}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var Cl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function bl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,gl.b,gl.a)),e["ɵdid"](1,180224,null,0,ul.e,[ul.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Users"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/user-management/users")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,ul.b,[ul.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Roles"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/user-management/roles")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,ul.b,[ul.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){var u=n.component;l(n,3,0,"Users","/user-management/users"===u.url),l(n,5,0,"Roles","/user-management/roles"===u.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass)}))}var Rl=u("25BL"),wl=u("uIqm"),Il=u("NUGo"),El=u("S7zO"),Nl=u("EgGo"),xl=u("ZEkX"),Tl=u("Mxhz"),yl=u("9nlD"),kl=u("sne2"),Dl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Sl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" ",""," "]))],null,(function(l,n){l(n,1,0,n.context.$implicit,n.context.last?"":", ")}))}function ql(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Sl)),e["ɵdid"](1,278528,null,0,g.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.value)}),null)}function Fl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""])),e["ɵppd"](2,1)],null,(function(l,n){var u=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent,0),n.context.value));l(n,1,0,u)}))}function Pl(l){return e["ɵvid"](0,[e["ɵpid"](0,R.a,[w.a]),e["ɵqud"](402653184,1,{userRolesTpl:0}),e["ɵqud"](402653184,2,{userEnabledTpl:0}),(l()(),e["ɵeld"](3,0,null,null,1,"cd-user-tabs",[],null,null,null,bl,Cl)),e["ɵdid"](4,114688,null,0,hl,[nl.m],null,null),(l()(),e["ɵeld"](5,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","username"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,o=l.component;return"fetchData"===n&&(e=!1!==o.getUsers()&&e),"updateSelection"===n&&(e=!1!==o.updateSelection(u)&&e),e}),Rl.b,Rl.a)),e["ɵdid"](6,2867200,null,0,wl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](7,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Il.b,Il.a)),e["ɵdid"](8,114688,null,0,El.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵand"](0,[[1,2],["userRolesTpl",2]],null,0,null,ql)),(l()(),e["ɵand"](0,[[2,2],["userEnabledTpl",2]],null,0,null,Fl))],(function(l,n){var u=n.component;l(n,4,0),l(n,6,0,u.users,u.columns,"flex","username","single"),l(n,8,0,u.permission,u.selection,u.tableActions)}),null)}function _l(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-user-list",[],null,null,null,Pl,Dl)),e["ɵprd"](256,null,Nl.a,xl.b,[]),e["ɵdid"](2,114688,null,0,xl.a,[Tl.a,P.a,X.b,yl.a,$.a,w.a,Nl.a,F.a,kl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Ml=e["ɵccf"]("cd-user-list",xl.a,_l,{},{},[]),Ul=u("QC43"),Vl=u("XFyV"),Ll=u("4HWh"),Al=u("p4Cf"),Ol=u("mXUL"),jl=u("pYKc"),Bl=u("ppaS"),Hl=u("IZUe"),zl=u("D4zM"),Gl=u("gp3X"),Kl=u("sb0X"),Zl=u("KVJa"),Xl=u("Z21x"),Jl=u("V3my"),Yl=u("DSvg"),Ql=u("SgmB"),Wl=u("1nQr"),$l=u("2EZI"),ln=u("20UP"),nn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Ul.b,Ul.a)),e["ɵdid"](1,49152,null,0,Vl.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading..."]))],null,null)}function en(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function on(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-helper",[["class","text-pre"]],null,null,null,Ll.b,Ll.a)),e["ɵdid"](1,49152,null,0,Al.a,[],{class:[0,"class"],html:[1,"html"]},null)],(function(l,n){l(n,1,0,"text-pre",e["ɵinlineInterpolate"](1,"",n.component.passwordPolicyHelpText,""))}),null)}function an(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.passwordValuation)}))}function tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function sn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password confirmation doesn't match the password."]))],null,null)}function rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,12,"cd-helper",[["class","text-pre"]],null,null,null,Ll.b,Ll.a)),e["ɵdid"](1,49152,null,0,Al.a,[],{class:[0,"class"]},null),(l()(),e["ɵeld"](2,0,null,0,4,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" The Dashboard setting defining the expiration interval of passwords is currently set to "])),(l()(),e["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["0"])),(l()(),e["ɵted"](-1,null,[". This means if a date is set, the user password will only expire once. "])),(l()(),e["ɵeld"](7,0,null,0,5,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" Consider configuring the Dashboard setting "])),(l()(),e["ɵeld"](9,0,null,null,2,"a",[["class","alert-link"],["routerLink","/mgr-modules/edit/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,10).onClick(u.button,u.ctrlKey,u.metaKey,u.shiftKey)&&o),o}),null,null)),e["ɵdid"](10,671744,null,0,nl.p,[nl.m,nl.a,g.LocationStrategy],{routerLink:[0,"routerLink"]},null),(l()(),e["ɵted"](-1,null,["USER_PWD_EXPIRATION_SPAN"])),(l()(),e["ɵted"](-1,null,[" in order to let passwords expire periodically. "]))],(function(l,n){l(n,1,0,"text-pre"),l(n,10,0,"/mgr-modules/edit/dashboard")}),(function(l,n){l(n,9,0,e["ɵnov"](n,10).target,e["ɵnov"](n,10).href)}))}function cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function pn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](1,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,8,{FormControlNames:1}),e["ɵqud"](603979776,9,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,7,"label",[["class","cd-col-form-label"],["for","pwdExpirationDate"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵeld"](8,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password expiration date"])),(l()(),e["ɵand"](16777216,null,null,1,null,rn)),e["ɵdid"](11,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](12,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,15,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","pwdExpirationDate"],["id","pwdExpirationDate"],["name","pwdExpirationDate"],["placeholder","Password expiration date..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,15)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,15).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,15)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,15)._compositionEnd(u.target.value)&&o),"change"===n&&(o=!1!==e["ɵnov"](l,17).onChange(u)&&o),"keyup.esc"===n&&(o=!1!==e["ɵnov"](l,17).hide()&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,17).onBlur()&&o),o}),null,null)),e["ɵdid"](15,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵdid"](16,737280,null,0,el.c,[el.a,e.ElementRef,e.Renderer2,e.ViewContainerRef,G.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),e["ɵdid"](17,16384,null,0,el.f,[el.c,el.j,e.Renderer2,e.ElementRef,e.ChangeDetectorRef],null,null),e["ɵprd"](1024,null,h.o,(function(l){return[l]}),[el.f]),e["ɵprd"](1024,null,h.p,(function(l,n){return[l,n]}),[h.e,el.f]),e["ɵdid"](20,671744,[[8,4]],0,h.j,[[3,h.d],[6,h.o],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](22,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](23,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](24,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](25,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.clearExpirationDate()&&e),e}),null,null)),(l()(),e["ɵeld"](26,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,cn)),e["ɵdid"](28,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var o=l(n,7,0,u.pwdExpirationSettings.pwdExpirationSpan>0);l(n,6,0,"cd-col-form-label",o),l(n,11,0,0==u.pwdExpirationSettings.pwdExpirationSpan),l(n,16,0,u.bsConfig,u.minDate),l(n,20,0,"pwdExpirationDate"),l(n,23,0,"pwdExpirationDate"),l(n,28,0,u.userForm.showError("pwdExpirationDate",e["ɵnov"](n.parent,2),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,14,0,e["ɵnov"](n,22).ngClassUntouched,e["ɵnov"](n,22).ngClassTouched,e["ɵnov"](n,22).ngClassPristine,e["ɵnov"](n,22).ngClassDirty,e["ɵnov"](n,22).ngClassValid,e["ɵnov"](n,22).ngClassInvalid,e["ɵnov"](n,22).ngClassPending,e["ɵnov"](n,23).validClass,e["ɵnov"](n,23).invalidClass),l(n,26,0,e["ɵinlineInterpolate"](1,"icon-prepend ",u.icons.destroy,""))}))}function mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Invalid email."]))],null,null)}function vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border full-height"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"cd-select-badges",[],null,null,null,jl.b,jl.a)),e["ɵdid"](2,49152,null,0,Bl.a,[w.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.userForm.controls.roles.value,u.allRoles,u.messages)}),null)}function fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](1,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,16,{FormControlNames:1}),e["ɵqud"](603979776,17,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","enabled"],["id","enabled"],["name","enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var o=!0;return"change"===n&&(o=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,7).onTouched()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.c]),e["ɵdid"](9,671744,[[16,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](11,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](12,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"]))],(function(l,n){l(n,1,0),l(n,9,0,"enabled"),l(n,12,0,"enabled")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function gn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](1,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,18,{FormControlNames:1}),e["ɵqud"](603979776,19,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","pwdUpdateRequired"],["id","pwdUpdateRequired"],["name","pwdUpdateRequired"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var o=!0;return"change"===n&&(o=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,7).onTouched()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.c]),e["ɵdid"](9,671744,[[18,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](11,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](12,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","pwdUpdateRequired"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User must change password at next logon"]))],(function(l,n){l(n,1,0),l(n,9,0,"pwdUpdateRequired"),l(n,12,0,"pwdUpdateRequired")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function hn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,134,"form",[["name","userForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var o=!0;return"submit"===n&&(o=!1!==e["ɵnov"](l,2).onSubmit(u)&&o),"reset"===n&&(o=!1!==e["ɵnov"](l,2).onReset()&&o),"submit"===n&&(o=!1!==e["ɵnov"](l,5).onSubmit()&&o),o}),null,null)),e["ɵdid"](1,16384,null,0,h.G,[],null,null),e["ɵdid"](2,540672,[["formDir",4]],0,h.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,h.d,null,[h.l]),e["ɵdid"](4,16384,null,0,h.s,[[4,h.d]],null,null),e["ɵdid"](5,16384,null,0,sl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](6,0,null,null,128,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](8,null,[""," ",""])),e["ɵppd"](9,1),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,114,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](13,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,2,{FormControlNames:1}),e["ɵqud"](603979776,3,{messagesBlock:0}),(l()(),e["ɵeld"](16,0,null,0,4,"label",[["class","cd-col-form-label"],["for","username"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](18,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](19,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](21,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","username"],["id","username"],["name","username"],["placeholder","Username..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,23)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,23).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,23)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,23)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](23,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](25,671744,[[2,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](27,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](28,4210688,null,0,Hl.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](29,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,en)),e["ɵdid"](31,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](32,0,null,null,26,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](33,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,4,{FormControlNames:1}),e["ɵqud"](603979776,5,{messagesBlock:0}),(l()(),e["ɵeld"](36,0,null,0,4,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),e["ɵeld"](37,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵand"](16777216,null,null,1,null,on)),e["ɵdid"](40,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](41,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](42,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](43,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","password"],["name","password"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,44)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,44).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,44)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,44)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](44,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](46,671744,[[4,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](48,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](49,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](50,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](51,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,52).onClick()&&o),o}),null,null)),e["ɵdid"](52,81920,null,0,zl.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](53,0,null,null,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(l()(),e["ɵeld"](54,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,an)),e["ɵdid"](56,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,dn)),e["ɵdid"](58,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](59,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](60,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,6,{FormControlNames:1}),e["ɵqud"](603979776,7,{messagesBlock:0}),(l()(),e["ɵeld"](63,0,null,0,1,"label",[["class","cd-col-form-label"],["for","confirmpassword"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Confirm password"])),(l()(),e["ɵeld"](65,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](66,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](67,0,null,null,6,"input",[["class","form-control"],["formControlName","confirmpassword"],["id","confirmpassword"],["name","confirmpassword"],["placeholder","Confirm password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,68)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,68).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,68)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,68)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](68,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](70,671744,[[6,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](72,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](73,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](74,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](75,0,null,null,1,"button",[["cdPasswordButton","confirmpassword"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,76).onClick()&&o),o}),null,null)),e["ɵdid"](76,81920,null,0,zl.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,tn)),e["ɵdid"](78,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,sn)),e["ɵdid"](80,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,pn)),e["ɵdid"](82,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](83,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](84,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,10,{FormControlNames:1}),e["ɵqud"](603979776,11,{messagesBlock:0}),(l()(),e["ɵeld"](87,0,null,0,1,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](89,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](90,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Full name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,91)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,91).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,91)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,91)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](91,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](93,671744,[[10,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](95,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](96,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](97,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](98,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,12,{FormControlNames:1}),e["ɵqud"](603979776,13,{messagesBlock:0}),(l()(),e["ɵeld"](101,0,null,0,1,"label",[["class","cd-col-form-label"],["for","email"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email"])),(l()(),e["ɵeld"](103,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](104,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["name","email"],["placeholder","Email..."],["type","email"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,105)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,105).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,105)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,105)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](105,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](107,671744,[[12,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](109,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](110,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mn)),e["ɵdid"](112,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](113,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](114,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,14,{FormControlNames:1}),e["ɵqud"](603979776,15,{messagesBlock:0}),(l()(),e["ɵeld"](117,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Roles"])),(l()(),e["ɵeld"](119,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,vn)),e["ɵdid"](121,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,fn)),e["ɵdid"](123,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,gn)),e["ɵdid"](125,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](126,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](127,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](128,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Gl.b,Gl.a)),e["ɵdid"](129,114688,null,0,Kl.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](130,0,[""," ",""])),e["ɵppd"](131,1),e["ɵppd"](132,1),(l()(),e["ɵeld"](133,0,null,null,1,"cd-back-button",[],null,null,null,Zl.b,Zl.a)),e["ɵdid"](134,49152,null,0,Xl.a,[g.Location,kl.b],null,null)],(function(l,n){var u=n.component;l(n,2,0,u.userForm),l(n,5,0,u.userForm),l(n,13,0);var o=l(n,19,0,u.mode!==u.userFormMode.editing);l(n,18,0,"cd-col-form-label",o),l(n,25,0,"username"),l(n,28,0,""),l(n,29,0,"username"),l(n,31,0,u.userForm.showError("username",e["ɵnov"](n,2),"required")),l(n,33,0),l(n,40,0,u.passwordPolicyHelpText.length>0),l(n,46,0,"password"),l(n,49,0,"password"),l(n,52,0,"password"),l(n,56,0,u.userForm.showError("password",e["ɵnov"](n,2),"required")),l(n,58,0,u.userForm.showError("password",e["ɵnov"](n,2),"passwordPolicy")),l(n,60,0),l(n,70,0,"confirmpassword"),l(n,73,0,"confirmpassword"),l(n,76,0,"confirmpassword"),l(n,78,0,u.userForm.showError("confirmpassword",e["ɵnov"](n,2),"required")),l(n,80,0,u.userForm.showError("confirmpassword",e["ɵnov"](n,2),"match")),l(n,82,0,!u.authStorageService.isSSO()),l(n,84,0),l(n,93,0,"name"),l(n,96,0,"name"),l(n,98,0),l(n,107,0,"email"),l(n,110,0,"email"),l(n,112,0,u.userForm.showError("email",e["ɵnov"](n,2),"email")),l(n,114,0),l(n,121,0,u.allRoles),l(n,123,0,!u.isCurrentUser()),l(n,125,0,!u.isCurrentUser()&&!u.authStorageService.isSSO()),l(n,129,0,e["ɵnov"](n,2))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,4).ngClassUntouched,e["ɵnov"](n,4).ngClassTouched,e["ɵnov"](n,4).ngClassPristine,e["ɵnov"](n,4).ngClassDirty,e["ɵnov"](n,4).ngClassValid,e["ɵnov"](n,4).ngClassInvalid,e["ɵnov"](n,4).ngClassPending);var o=e["ɵunv"](n,8,0,l(n,9,0,e["ɵnov"](n.parent,0),u.action)),a=e["ɵunv"](n,8,1,l(n,10,0,e["ɵnov"](n.parent,1),u.resource));l(n,8,0,o,a),l(n,12,0,e["ɵnov"](n,13).hasErrors,e["ɵnov"](n,13).hasSuccess),l(n,22,0,e["ɵnov"](n,27).ngClassUntouched,e["ɵnov"](n,27).ngClassTouched,e["ɵnov"](n,27).ngClassPristine,e["ɵnov"](n,27).ngClassDirty,e["ɵnov"](n,27).ngClassValid,e["ɵnov"](n,27).ngClassInvalid,e["ɵnov"](n,27).ngClassPending,e["ɵnov"](n,29).validClass,e["ɵnov"](n,29).invalidClass),l(n,32,0,e["ɵnov"](n,33).hasErrors,e["ɵnov"](n,33).hasSuccess),l(n,43,0,e["ɵnov"](n,48).ngClassUntouched,e["ɵnov"](n,48).ngClassTouched,e["ɵnov"](n,48).ngClassPristine,e["ɵnov"](n,48).ngClassDirty,e["ɵnov"](n,48).ngClassValid,e["ɵnov"](n,48).ngClassInvalid,e["ɵnov"](n,48).ngClassPending,e["ɵnov"](n,49).validClass,e["ɵnov"](n,49).invalidClass),l(n,54,0,e["ɵinlineInterpolate"](1,"",u.passwordStrengthLevelClass,""),e["ɵinlineInterpolate"](1,"",u.passwordValuation,"")),l(n,59,0,e["ɵnov"](n,60).hasErrors,e["ɵnov"](n,60).hasSuccess),l(n,67,0,e["ɵnov"](n,72).ngClassUntouched,e["ɵnov"](n,72).ngClassTouched,e["ɵnov"](n,72).ngClassPristine,e["ɵnov"](n,72).ngClassDirty,e["ɵnov"](n,72).ngClassValid,e["ɵnov"](n,72).ngClassInvalid,e["ɵnov"](n,72).ngClassPending,e["ɵnov"](n,73).validClass,e["ɵnov"](n,73).invalidClass),l(n,83,0,e["ɵnov"](n,84).hasErrors,e["ɵnov"](n,84).hasSuccess),l(n,90,0,e["ɵnov"](n,95).ngClassUntouched,e["ɵnov"](n,95).ngClassTouched,e["ɵnov"](n,95).ngClassPristine,e["ɵnov"](n,95).ngClassDirty,e["ɵnov"](n,95).ngClassValid,e["ɵnov"](n,95).ngClassInvalid,e["ɵnov"](n,95).ngClassPending,e["ɵnov"](n,96).validClass,e["ɵnov"](n,96).invalidClass),l(n,97,0,e["ɵnov"](n,98).hasErrors,e["ɵnov"](n,98).hasSuccess),l(n,104,0,e["ɵnov"](n,109).ngClassUntouched,e["ɵnov"](n,109).ngClassTouched,e["ɵnov"](n,109).ngClassPristine,e["ɵnov"](n,109).ngClassDirty,e["ɵnov"](n,109).ngClassValid,e["ɵnov"](n,109).ngClassInvalid,e["ɵnov"](n,109).ngClassPending,e["ɵnov"](n,110).validClass,e["ɵnov"](n,110).invalidClass),l(n,113,0,e["ɵnov"](n,114).hasErrors,e["ɵnov"](n,114).hasSuccess);var d=e["ɵunv"](n,130,0,l(n,131,0,e["ɵnov"](n.parent,0),u.action)),t=e["ɵunv"](n,130,1,l(n,132,0,e["ɵnov"](n.parent,1),u.resource));l(n,130,0,d,t)}))}function Cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,['You are about to remove "user read / update" permissions from your own user.'])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["If you continue, you will no longer be able to add or remove roles from any user."])),(l()(),e["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Are you sure you want to continue?"]))],null,null)}function bn(l){return e["ɵvid"](0,[e["ɵpid"](0,g.TitleCasePipe,[]),e["ɵpid"](0,A.a,[]),e["ɵqud"](402653184,1,{removeSelfUserReadUpdatePermissionTpl:0}),(l()(),e["ɵand"](16777216,null,null,1,null,un)),e["ɵdid"](4,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](5,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,hn)),e["ɵdid"](7,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,[[1,2],["removeSelfUserReadUpdatePermissionTpl",2]],null,0,null,Cn))],(function(l,n){var u=n.component;l(n,4,0,!u.pwdExpirationSettings),l(n,7,0,u.pwdExpirationSettings)}),null)}function Rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-user-form",[],null,null,null,bn,nn)),e["ɵdid"](1,114688,null,0,Jl.a,[Yl.a,$.a,nl.a,nl.m,X.b,Ql.a,Tl.a,yl.a,w.a,kl.b,Wl.a,$l.a,ln.a],null,null)],(function(l,n){l(n,1,0)}),null)}var wn=e["ɵccf"]("cd-user-form",Jl.a,Rn,{},{},[]),In=u("LvDl"),En=u("x38r");u("vCyI");class Nn{constructor(l){this.i18n=l,this.scopes_permissions=[]}ngOnInit(){this.columns=[{prop:"scope",name:this.i18n("Scope"),flexGrow:2},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTransformation:En.a.checkIcon},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTransformation:En.a.checkIcon},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTransformation:En.a.checkIcon},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTransformation:En.a.checkIcon}]}ngOnChanges(){if(this.selection.hasSelection){this.selectedItem=this.selection.first();const l=[];In.each(this.scopes,n=>{const u={read:!1,create:!1,update:!1,delete:!1};u.scope=n,n in this.selectedItem.scopes_permissions&&In.each(this.selectedItem.scopes_permissions[n],l=>{u[l]=!0}),l.push(u)}),this.scopes_permissions=l}}}var xn=e["ɵcrt"]({encapsulation:0,styles:[["thead[_ngcontent-%COMP%]{background-color:#f5f5f5}.fa[_ngcontent-%COMP%]{font-size:large}.fa.fa-square-o[_ngcontent-%COMP%]{color:#d1d1d1}"]],data:{}});function Tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,gl.b,gl.a)),e["ɵdid"](1,180224,null,0,ul.e,[ul.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),e["ɵdid"](3,212992,null,0,ul.b,[ul.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,Rl.b,Rl.a)),e["ɵdid"](5,2867200,null,0,wl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.scopes_permissions,u.columns,"flex",!1,!1,0,!1,!1)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass)}))}function yn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Tn)),e["ɵdid"](1,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0,null==u.selection?null:u.selection.hasSingleSelection)}),null)}var kn=u("n/D3"),Dn=u("ZDA6"),Sn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-user-tabs",[],null,null,null,bl,Cl)),e["ɵdid"](1,114688,null,0,hl,[nl.m],null,null),(l()(),e["ɵeld"](2,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,o=l.component;return"fetchData"===n&&(e=!1!==o.getRoles()&&e),"updateSelection"===n&&(e=!1!==o.updateSelection(u)&&e),e}),Rl.b,Rl.a)),e["ɵdid"](3,2867200,null,0,wl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Il.b,Il.a)),e["ɵdid"](5,114688,null,0,El.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](6,0,null,3,1,"cd-role-details",[["cdTableDetail",""]],null,null,null,yn,xn)),e["ɵdid"](7,638976,null,0,Nn,[w.a],{selection:[0,"selection"],scopes:[1,"scopes"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,3,0,u.roles,u.columns,"flex","name","single"),l(n,5,0,u.permission,u.selection,u.tableActions),l(n,7,0,u.selection,u.scopes)}),null)}function Fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-role-list",[],null,null,null,qn,Sn)),e["ɵprd"](256,null,Nl.a,kn.b,[]),e["ɵdid"](2,114688,null,0,kn.a,[Ql.a,Dn.a,P.a,$.a,X.b,yl.a,w.a,Nl.a,kl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Pn=e["ɵccf"]("cd-role-list",kn.a,Fn,{},{},[]),_n=u("eTJe"),Mn=e["ɵcrt"]({encapsulation:0,styles:[[".datatable-permissions-header-cell-label[_ngcontent-%COMP%], .datatable-permissions-scope-cell-label[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function Un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen name is already in use."]))],null,null)}function Ln(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"checked",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,sl.h,[[8,null],sl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,1,"label",[["class","datatable-permissions-scope-cell-label custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){var u=n.component;l(n,1,0,e["ɵinlineInterpolate"](1,"scope_",n.context.row.scope,""),u.isRowChecked(n.context.row.scope),e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,e["ɵinlineInterpolate"](1,"scope_",n.context.row.scope,"")),l(n,4,0,n.context.value)}))}function An(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"checked",0],[8,"id",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,sl.h,[[8,null],sl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],null,(function(l,n){l(n,1,0,n.context.value,n.context.row.scope+"-"+n.context.column.prop,e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,n.context.row.scope+"-"+n.context.column.prop)}))}function On(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"checked",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickHeaderCheckbox(l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,sl.h,[[8,null],sl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,1,"label",[["class","datatable-permissions-header-cell-label custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){var u=n.component;l(n,1,0,e["ɵinlineInterpolate"](1,"header_",n.context.column.prop,""),u.isHeaderChecked(n.context.column.prop),e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,e["ɵinlineInterpolate"](1,"header_",n.context.column.prop,"")),l(n,4,0,n.context.column.name)}))}function jn(l){return e["ɵvid"](0,[e["ɵpid"](0,g.TitleCasePipe,[]),e["ɵpid"](0,A.a,[]),e["ɵqud"](402653184,1,{headerPermissionCheckboxTpl:0}),e["ɵqud"](402653184,2,{cellScopeCheckboxTpl:0}),e["ɵqud"](402653184,3,{cellPermissionCheckboxTpl:0}),(l()(),e["ɵeld"](5,0,null,null,66,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,65,"form",[["name","roleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var o=!0;return"submit"===n&&(o=!1!==e["ɵnov"](l,8).onSubmit(u)&&o),"reset"===n&&(o=!1!==e["ɵnov"](l,8).onReset()&&o),"submit"===n&&(o=!1!==e["ɵnov"](l,11).onSubmit()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.G,[],null,null),e["ɵdid"](8,540672,[["formDir",4]],0,h.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,h.d,null,[h.l]),e["ɵdid"](10,16384,null,0,h.s,[[4,h.d]],null,null),e["ɵdid"](11,16384,null,0,sl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](12,0,null,null,59,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](14,null,[""," ",""])),e["ɵppd"](15,1),e["ɵppd"](16,1),(l()(),e["ɵeld"](17,0,null,null,45,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](18,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](19,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,4,{FormControlNames:1}),e["ɵqud"](603979776,5,{messagesBlock:0}),(l()(),e["ɵeld"](22,0,null,0,4,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](24,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](25,{required:0}),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](27,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,29)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,29).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,29)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,29)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](29,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](31,671744,[[4,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](33,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](34,4210688,null,0,Hl.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](35,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Un)),e["ɵdid"](37,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Vn)),e["ɵdid"](39,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](40,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](41,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,6,{FormControlNames:1}),e["ɵqud"](603979776,7,{messagesBlock:0}),(l()(),e["ɵeld"](44,0,null,0,1,"label",[["class","cd-col-form-label"],["for","description"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Description"])),(l()(),e["ɵeld"](46,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](47,0,null,null,6,"input",[["class","form-control"],["formControlName","description"],["id","description"],["name","description"],["placeholder","Description..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,48)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,48).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,48)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,48)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](48,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](50,671744,[[6,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](52,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](53,16384,null,0,sl.h,[[3,h.d],sl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](54,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ol.b,Ol.a)),e["ɵdid"](55,1163264,null,2,sl.c,[e.ElementRef,sl.g],null,null),e["ɵqud"](603979776,8,{FormControlNames:1}),e["ɵqud"](603979776,9,{messagesBlock:0}),(l()(),e["ɵeld"](58,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permissions"])),(l()(),e["ɵeld"](60,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,Rl.b,Rl.a)),e["ɵdid"](62,2867200,null,0,wl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null),(l()(),e["ɵeld"](63,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](64,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Gl.b,Gl.a)),e["ɵdid"](66,114688,null,0,Kl.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](67,0,[""," ",""])),e["ɵppd"](68,1),e["ɵppd"](69,1),(l()(),e["ɵeld"](70,0,null,null,1,"cd-back-button",[],null,null,null,Zl.b,Zl.a)),e["ɵdid"](71,49152,null,0,Xl.a,[g.Location,kl.b],null,null),(l()(),e["ɵand"](0,[[2,2],["cellScopeCheckboxTpl",2]],null,0,null,Ln)),(l()(),e["ɵand"](0,[[3,2],["cellPermissionCheckboxTpl",2]],null,0,null,An)),(l()(),e["ɵand"](0,[[1,2],["headerPermissionCheckboxTpl",2]],null,0,null,On))],(function(l,n){var u=n.component;l(n,8,0,u.roleForm),l(n,11,0,u.roleForm),l(n,19,0);var o=l(n,25,0,u.mode!==u.roleFormMode.editing);l(n,24,0,"cd-col-form-label",o),l(n,31,0,"name"),l(n,34,0,""),l(n,35,0,"name"),l(n,37,0,u.roleForm.showError("name",e["ɵnov"](n,8),"required")),l(n,39,0,u.roleForm.showError("name",e["ɵnov"](n,8),"notUnique")),l(n,41,0),l(n,50,0,"description"),l(n,53,0,"description"),l(n,55,0),l(n,62,0,u.scopes_permissions,u.columns,"flex",!1,!1,0,!1,!1),l(n,66,0,e["ɵnov"](n,8))}),(function(l,n){var u=n.component;l(n,6,0,e["ɵnov"](n,10).ngClassUntouched,e["ɵnov"](n,10).ngClassTouched,e["ɵnov"](n,10).ngClassPristine,e["ɵnov"](n,10).ngClassDirty,e["ɵnov"](n,10).ngClassValid,e["ɵnov"](n,10).ngClassInvalid,e["ɵnov"](n,10).ngClassPending);var o=e["ɵunv"](n,14,0,l(n,15,0,e["ɵnov"](n,0),u.action)),a=e["ɵunv"](n,14,1,l(n,16,0,e["ɵnov"](n,1),u.resource));l(n,14,0,o,a),l(n,18,0,e["ɵnov"](n,19).hasErrors,e["ɵnov"](n,19).hasSuccess),l(n,28,0,e["ɵnov"](n,33).ngClassUntouched,e["ɵnov"](n,33).ngClassTouched,e["ɵnov"](n,33).ngClassPristine,e["ɵnov"](n,33).ngClassDirty,e["ɵnov"](n,33).ngClassValid,e["ɵnov"](n,33).ngClassInvalid,e["ɵnov"](n,33).ngClassPending,e["ɵnov"](n,35).validClass,e["ɵnov"](n,35).invalidClass),l(n,40,0,e["ɵnov"](n,41).hasErrors,e["ɵnov"](n,41).hasSuccess),l(n,47,0,e["ɵnov"](n,52).ngClassUntouched,e["ɵnov"](n,52).ngClassTouched,e["ɵnov"](n,52).ngClassPristine,e["ɵnov"](n,52).ngClassDirty,e["ɵnov"](n,52).ngClassValid,e["ɵnov"](n,52).ngClassInvalid,e["ɵnov"](n,52).ngClassPending,e["ɵnov"](n,53).validClass,e["ɵnov"](n,53).invalidClass),l(n,54,0,e["ɵnov"](n,55).hasErrors,e["ɵnov"](n,55).hasSuccess);var d=e["ɵunv"](n,67,0,l(n,68,0,e["ɵnov"](n,0),u.action)),t=e["ɵunv"](n,67,1,l(n,69,0,e["ɵnov"](n,1),u.resource));l(n,67,0,d,t)}))}function Bn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-role-form",[],null,null,null,jn,Mn)),e["ɵdid"](1,114688,null,0,_n.a,[nl.a,nl.m,Ql.a,Dn.a,yl.a,w.a,kl.b],null,null)],(function(l,n){l(n,1,0)}),null)}var Hn=e["ɵccf"]("cd-role-form",_n.a,Bn,{},{},[]);u.d(n,"AuthModuleNgFactory",(function(){return zn})),u.d(n,"RoutedAuthModuleNgFactory",(function(){return Gn}));var zn=e["ɵcmf"](o.a,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[a.a,d.a,t.a,s.a,s.b,i.a,r.a,c.a,p.a,m.a,v.a,f.a,f.c,f.b]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,g.NgLocalization,g.NgLocaleLocalization,[e.LOCALE_ID,[2,g["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,h.D,h.D,[]),e["ɵmpd"](4608,h.h,h.h,[]),e["ɵmpd"](4608,C.a,C.a,[]),e["ɵmpd"](4608,b.a,b.a,[]),e["ɵmpd"](4608,R.a,R.a,[w.a]),e["ɵmpd"](4608,g.DatePipe,g.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,I.a,I.a,[]),e["ɵmpd"](4608,E.a,E.a,[]),e["ɵmpd"](4608,N.a,N.a,[]),e["ɵmpd"](4608,x.a,x.a,[N.a]),e["ɵmpd"](4608,T.a,T.a,[N.a]),e["ɵmpd"](4608,y.a,y.a,[N.a]),e["ɵmpd"](4608,k.a,k.a,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,S.a,S.a,[]),e["ɵmpd"](4608,q.a,q.a,[]),e["ɵmpd"](4608,F.a,F.a,[g.DatePipe]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,_.a,_.a,[]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,V.a,V.a,[]),e["ɵmpd"](4608,L.a,L.a,[w.a]),e["ɵmpd"](4608,A.a,A.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,B.b,B.b,[]),e["ɵmpd"](4608,H.a,H.a,[]),e["ɵmpd"](4608,z.a,z.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,G.a,G.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,z.a,e.ApplicationRef]),e["ɵmpd"](4608,K.c,K.c,[]),e["ɵmpd"](4608,Z.a,Z.a,[]),e["ɵmpd"](4608,X.b,X.b,[e.RendererFactory2,G.a]),e["ɵmpd"](4608,J.ScrollbarHelper,J.ScrollbarHelper,[g.DOCUMENT]),e["ɵmpd"](4608,Y.DimensionsHelper,Y.DimensionsHelper,[]),e["ɵmpd"](4608,Q.ColumnChangesService,Q.ColumnChangesService,[]),e["ɵmpd"](4608,W.f,W.f,[]),e["ɵmpd"](4608,$.a,$.a,[]),e["ɵmpd"](4608,ll.a,ll.a,[nl.m,$.a]),e["ɵmpd"](4608,ul.f,ul.f,[]),e["ɵmpd"](4608,el.r,el.r,[]),e["ɵmpd"](4608,el.t,el.t,[]),e["ɵmpd"](4608,el.a,el.a,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,el.d,el.d,[]),e["ɵmpd"](4608,el.j,el.j,[]),e["ɵmpd"](4608,el.s,el.s,[el.t,el.j]),e["ɵmpd"](1073742336,ol.a,ol.a,[]),e["ɵmpd"](1073742336,g.CommonModule,g.CommonModule,[]),e["ɵmpd"](1073742336,h.C,h.C,[]),e["ɵmpd"](1073742336,h.n,h.n,[]),e["ɵmpd"](1073742336,H.d,H.d,[]),e["ɵmpd"](1073742336,h.y,h.y,[]),e["ɵmpd"](1073742336,al.a,al.a,[]),e["ɵmpd"](1073742336,B.c,B.c,[]),e["ɵmpd"](1073742336,K.d,K.d,[]),e["ɵmpd"](1073742336,Z.d,Z.d,[]),e["ɵmpd"](1073742336,dl.b,dl.b,[]),e["ɵmpd"](1073742336,X.e,X.e,[]),e["ɵmpd"](1073742336,tl.a,tl.a,[]),e["ɵmpd"](1073742336,W.e,W.e,[]),e["ɵmpd"](1073742336,sl.f,sl.f,[]),e["ɵmpd"](1073742336,il.ClickOutsideModule,il.ClickOutsideModule,[]),e["ɵmpd"](1073742336,rl.b,rl.b,[]),e["ɵmpd"](1073742336,nl.q,nl.q,[[2,nl.v],[2,nl.m]]),e["ɵmpd"](1073742336,cl.a,cl.a,[]),e["ɵmpd"](1073742336,pl.NgxDatatableModule,pl.NgxDatatableModule,[]),e["ɵmpd"](1073742336,ml.a,ml.a,[]),e["ɵmpd"](1073742336,vl.a,vl.a,[]),e["ɵmpd"](1073742336,fl.a,fl.a,[]),e["ɵmpd"](1073742336,ul.d,ul.d,[]),e["ɵmpd"](1073742336,el.g,el.g,[]),e["ɵmpd"](1073742336,o.a,o.a,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,W.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),Gn=e["ɵcmf"](o.b,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[a.a,d.a,t.a,s.a,s.b,i.a,r.a,c.a,p.a,m.a,v.a,f.a,f.c,f.b,Ml,wn,Pn,Hn]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,g.NgLocalization,g.NgLocaleLocalization,[e.LOCALE_ID,[2,g["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,h.D,h.D,[]),e["ɵmpd"](4608,h.h,h.h,[]),e["ɵmpd"](4608,C.a,C.a,[]),e["ɵmpd"](4608,b.a,b.a,[]),e["ɵmpd"](4608,R.a,R.a,[w.a]),e["ɵmpd"](4608,g.DatePipe,g.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,I.a,I.a,[]),e["ɵmpd"](4608,E.a,E.a,[]),e["ɵmpd"](4608,N.a,N.a,[]),e["ɵmpd"](4608,x.a,x.a,[N.a]),e["ɵmpd"](4608,T.a,T.a,[N.a]),e["ɵmpd"](4608,y.a,y.a,[N.a]),e["ɵmpd"](4608,k.a,k.a,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,S.a,S.a,[]),e["ɵmpd"](4608,q.a,q.a,[]),e["ɵmpd"](4608,F.a,F.a,[g.DatePipe]),e["ɵmpd"](4608,P.a,P.a,[]),e["ɵmpd"](4608,_.a,_.a,[]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,V.a,V.a,[]),e["ɵmpd"](4608,L.a,L.a,[w.a]),e["ɵmpd"](4608,A.a,A.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,B.b,B.b,[]),e["ɵmpd"](4608,H.a,H.a,[]),e["ɵmpd"](4608,z.a,z.a,[e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,G.a,G.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,z.a,e.ApplicationRef]),e["ɵmpd"](4608,K.c,K.c,[]),e["ɵmpd"](4608,Z.a,Z.a,[]),e["ɵmpd"](4608,X.b,X.b,[e.RendererFactory2,G.a]),e["ɵmpd"](4608,J.ScrollbarHelper,J.ScrollbarHelper,[g.DOCUMENT]),e["ɵmpd"](4608,Y.DimensionsHelper,Y.DimensionsHelper,[]),e["ɵmpd"](4608,Q.ColumnChangesService,Q.ColumnChangesService,[]),e["ɵmpd"](4608,W.f,W.f,[]),e["ɵmpd"](4608,$.a,$.a,[]),e["ɵmpd"](4608,ll.a,ll.a,[nl.m,$.a]),e["ɵmpd"](4608,ul.f,ul.f,[]),e["ɵmpd"](4608,el.r,el.r,[]),e["ɵmpd"](4608,el.t,el.t,[]),e["ɵmpd"](4608,el.a,el.a,[]),e["ɵmpd"](4608,el.h,el.h,[]),e["ɵmpd"](4608,el.d,el.d,[]),e["ɵmpd"](4608,el.j,el.j,[]),e["ɵmpd"](4608,el.s,el.s,[el.t,el.j]),e["ɵmpd"](1073742336,ol.a,ol.a,[]),e["ɵmpd"](1073742336,g.CommonModule,g.CommonModule,[]),e["ɵmpd"](1073742336,h.C,h.C,[]),e["ɵmpd"](1073742336,h.n,h.n,[]),e["ɵmpd"](1073742336,H.d,H.d,[]),e["ɵmpd"](1073742336,h.y,h.y,[]),e["ɵmpd"](1073742336,al.a,al.a,[]),e["ɵmpd"](1073742336,B.c,B.c,[]),e["ɵmpd"](1073742336,K.d,K.d,[]),e["ɵmpd"](1073742336,Z.d,Z.d,[]),e["ɵmpd"](1073742336,dl.b,dl.b,[]),e["ɵmpd"](1073742336,X.e,X.e,[]),e["ɵmpd"](1073742336,tl.a,tl.a,[]),e["ɵmpd"](1073742336,W.e,W.e,[]),e["ɵmpd"](1073742336,sl.f,sl.f,[]),e["ɵmpd"](1073742336,il.ClickOutsideModule,il.ClickOutsideModule,[]),e["ɵmpd"](1073742336,rl.b,rl.b,[]),e["ɵmpd"](1073742336,nl.q,nl.q,[[2,nl.v],[2,nl.m]]),e["ɵmpd"](1073742336,cl.a,cl.a,[]),e["ɵmpd"](1073742336,pl.NgxDatatableModule,pl.NgxDatatableModule,[]),e["ɵmpd"](1073742336,ml.a,ml.a,[]),e["ɵmpd"](1073742336,vl.a,vl.a,[]),e["ɵmpd"](1073742336,fl.a,fl.a,[]),e["ɵmpd"](1073742336,ul.d,ul.d,[]),e["ɵmpd"](1073742336,el.g,el.g,[]),e["ɵmpd"](1073742336,o.a,o.a,[]),e["ɵmpd"](1073742336,o.b,o.b,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,W.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,nl.k,(function(){return[[{path:"",redirectTo:"users",pathMatch:"full"},{path:"users",data:o.c,children:[{path:"",component:xl.a},{path:"create",component:Jl.a,data:o.d},{path:"edit/:username",component:Jl.a,data:o.e}]},{path:"roles",data:o.f,children:[{path:"",component:kn.a},{path:"create",component:_n.a,data:o.g},{path:"edit/:name",component:_n.a,data:o.h}]}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.d895914fbc785284c5be.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/9.d895914fbc785284c5be.js
new file mode 100644 (file)
index 0000000..a42cc3d
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{DY6s:function(l,n,u){"use strict";u.r(n);var e=u("8Y7J"),o=u("LceX"),a=u("ES0t"),d=u("MdoF"),t=u("Xg1U"),s=u("z5nN"),i=u("iutN"),r=u("pMnS"),c=u("EEJc"),p=u("PEr+"),m=u("a40w"),v=u("hfeG"),f=u("atuK"),g=u("SVse"),h=u("s7LF"),b=u("yT6U"),C=u("4DD9"),R=u("iExv"),w=u("GiVz"),I=u("85J/"),E=u("+0ag"),y=u("aXbf"),x=u("Fgil"),N=u("IzCI"),T=u("o4+5"),k=u("Dwqy"),D=u("uYzU"),q=u("FFMq"),S=u("E2fk"),P=u("a0VL"),F=u("nSDx"),_=u("SB+Q"),U=u("TYzs"),V=u("BQkM"),M=u("dEH0"),L=u("G1/K"),A=u("8xTl"),O=u("TJUb"),j=u("efK2"),B=u("CNMR"),z=u("KOzp"),G=u("2uy1"),Z=u("z/SZ"),K=u("38Bd"),H=u("978R"),X=u("LqlI"),J=u("w9WL"),Y=u("FE24"),Q=u("aexS"),W=u("Avrn"),$=u("iInd"),ll=u("2ZVE"),nl=u("ienR"),ul=u("aHM3"),el=u("9Xeq"),ol=u("hrfs"),al=u("yGOH"),dl=u("+gVj"),tl=u("bxSN"),sl=u("WF9J"),il=u("V/fk"),rl=u("ChqD"),cl=u("pL04"),pl=u("PCNd"),ml=u("pKUh");class vl{constructor(l){this.router=l}ngOnInit(){this.url=this.router.url}navigateTo(l){this.router.navigate([l])}}var fl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function gl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,ml.b,ml.a)),e["ɵdid"](1,180224,null,0,ll.e,[ll.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,1,"tab",[["heading","Users"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/user-management/users")&&e),e}),null,null)),e["ɵdid"](3,212992,null,0,ll.b,[ll.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"}),(l()(),e["ɵeld"](4,0,null,0,1,"tab",[["heading","Roles"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(l,n,u){var e=!0;return"selectTab"===n&&(e=!1!==l.component.navigateTo("/user-management/roles")&&e),e}),null,null)),e["ɵdid"](5,212992,null,0,ll.b,[ll.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"],active:[1,"active"]},{selectTab:"selectTab"})],(function(l,n){var u=n.component;l(n,3,0,"Users","/user-management/users"===u.url),l(n,5,0,"Roles","/user-management/roles"===u.url)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby),l(n,4,0,e["ɵnov"](n,5).id,e["ɵnov"](n,5).active,e["ɵnov"](n,5).addClass,e["ɵnov"](n,5).role,e["ɵnov"](n,5).ariaLabelledby)}))}var hl=u("25BL"),bl=u("uIqm"),Cl=u("NUGo"),Rl=u("S7zO"),wl=u("EgGo"),Il=u("ZEkX"),El=u("Mxhz"),yl=u("9nlD"),xl=u("sne2"),Nl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Tl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" ",""," "]))],null,(function(l,n){l(n,1,0,n.context.$implicit,n.context.last?"":", ")}))}function kl(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,Tl)),e["ɵdid"](1,278528,null,0,g.NgForOf,[e.ViewContainerRef,e.TemplateRef,e.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(l()(),e["ɵand"](0,null,null,0))],(function(l,n){l(n,1,0,n.context.value)}),null)}function Dl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(l()(),e["ɵted"](1,null,["",""])),e["ɵppd"](2,1)],null,(function(l,n){var u=e["ɵunv"](n,1,0,l(n,2,0,e["ɵnov"](n.parent,0),n.context.value));l(n,1,0,u)}))}function ql(l){return e["ɵvid"](0,[e["ɵpid"](0,R.a,[w.a]),e["ɵqud"](402653184,1,{userRolesTpl:0}),e["ɵqud"](402653184,2,{userEnabledTpl:0}),(l()(),e["ɵeld"](3,0,null,null,1,"cd-user-tabs",[],null,null,null,gl,fl)),e["ɵdid"](4,114688,null,0,vl,[$.m],null,null),(l()(),e["ɵeld"](5,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","username"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,o=l.component;return"fetchData"===n&&(e=!1!==o.getUsers()&&e),"updateSelection"===n&&(e=!1!==o.updateSelection(u)&&e),e}),hl.b,hl.a)),e["ɵdid"](6,2867200,null,0,bl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(l()(),e["ɵeld"](7,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Cl.b,Cl.a)),e["ɵdid"](8,114688,null,0,Rl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵand"](0,[[1,2],["userRolesTpl",2]],null,0,null,kl)),(l()(),e["ɵand"](0,[[2,2],["userEnabledTpl",2]],null,0,null,Dl))],(function(l,n){var u=n.component;l(n,4,0),l(n,6,0,u.users,u.columns,"flex","username","single"),l(n,8,0,u.permission,u.selection,u.tableActions)}),null)}function Sl(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-user-list",[],null,null,null,ql,Nl)),e["ɵprd"](256,null,wl.a,Il.b,[]),e["ɵdid"](2,114688,null,0,Il.a,[El.a,F.a,X.b,yl.a,Q.a,w.a,wl.a,P.a,xl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Pl=e["ɵccf"]("cd-user-list",Il.a,Sl,{},{},[]),Fl=u("QC43"),_l=u("XFyV"),Ul=u("4HWh"),Vl=u("p4Cf"),Ml=u("mXUL"),Ll=u("pYKc"),Al=u("ppaS"),Ol=u("IZUe"),jl=u("D4zM"),Bl=u("gp3X"),zl=u("sb0X"),Gl=u("KVJa"),Zl=u("Z21x"),Kl=u("V3my"),Hl=u("DSvg"),Xl=u("SgmB"),Jl=u("1nQr"),Yl=u("2EZI"),Ql=u("20UP"),Wl=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $l(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Fl.b,Fl.a)),e["ɵdid"](1,49152,null,0,_l.a,[],null,null),(l()(),e["ɵted"](-1,0,["Loading..."]))],null,null)}function ln(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function nn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The username already exists."]))],null,null)}function un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-helper",[["class","text-pre"]],null,null,null,Ul.b,Ul.a)),e["ɵdid"](1,49152,null,0,Vl.a,[],{class:[0,"class"],html:[1,"html"]},null)],(function(l,n){l(n,1,0,"text-pre",e["ɵinlineInterpolate"](1,"",n.component.passwordPolicyHelpText,""))}),null)}function en(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function on(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](1,null,[" "," "]))],null,(function(l,n){l(n,1,0,n.component.passwordValuation)}))}function an(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password confirmation doesn't match the password."]))],null,null)}function tn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,12,"cd-helper",[["class","text-pre"]],null,null,null,Ul.b,Ul.a)),e["ɵdid"](1,49152,null,0,Vl.a,[],{class:[0,"class"]},null),(l()(),e["ɵeld"](2,0,null,0,4,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" The Dashboard setting defining the expiration interval of passwords is currently set to "])),(l()(),e["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["0"])),(l()(),e["ɵted"](-1,null,[". This means if a date is set, the user password will only expire once. "])),(l()(),e["ɵeld"](7,0,null,0,5,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,[" Consider configuring the Dashboard setting "])),(l()(),e["ɵeld"](9,0,null,null,2,"a",[["class","alert-link"],["routerLink","/mgr-modules/edit/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,10).onClick(u.button,u.ctrlKey,u.metaKey,u.shiftKey)&&o),o}),null,null)),e["ɵdid"](10,671744,null,0,$.p,[$.m,$.a,g.LocationStrategy],{routerLink:[0,"routerLink"]},null),(l()(),e["ɵted"](-1,null,["USER_PWD_EXPIRATION_SPAN"])),(l()(),e["ɵted"](-1,null,[" in order to let passwords expire periodically. "]))],(function(l,n){l(n,1,0,"text-pre"),l(n,10,0,"/mgr-modules/edit/dashboard")}),(function(l,n){l(n,9,0,e["ɵnov"](n,10).target,e["ɵnov"](n,10).href)}))}function sn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function rn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](1,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,8,{FormControlNames:1}),e["ɵqud"](603979776,9,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,7,"label",[["class","cd-col-form-label"],["for","pwdExpirationDate"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](6,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](7,{required:0}),(l()(),e["ɵeld"](8,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password expiration date"])),(l()(),e["ɵand"](16777216,null,null,1,null,tn)),e["ɵdid"](11,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](12,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,15,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](14,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","pwdExpirationDate"],["id","pwdExpirationDate"],["name","pwdExpirationDate"],["placeholder","Password expiration date..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,15)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,15).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,15)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,15)._compositionEnd(u.target.value)&&o),"change"===n&&(o=!1!==e["ɵnov"](l,17).onChange(u)&&o),"keyup.esc"===n&&(o=!1!==e["ɵnov"](l,17).hide()&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,17).onBlur()&&o),o}),null,null)),e["ɵdid"](15,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵdid"](16,737280,null,0,nl.c,[nl.a,e.ElementRef,e.Renderer2,e.ViewContainerRef,Z.a],{bsConfig:[0,"bsConfig"],minDate:[1,"minDate"]},null),e["ɵdid"](17,16384,null,0,nl.f,[nl.c,nl.l,e.Renderer2,e.ElementRef,e.ChangeDetectorRef],null,null),e["ɵprd"](1024,null,h.o,(function(l){return[l]}),[nl.f]),e["ɵprd"](1024,null,h.p,(function(l,n){return[l,n]}),[h.e,nl.f]),e["ɵdid"](20,671744,[[8,4]],0,h.j,[[3,h.d],[6,h.o],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](22,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](23,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](24,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](25,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var e=!0;return"click"===n&&(e=!1!==l.component.clearExpirationDate()&&e),e}),null,null)),(l()(),e["ɵeld"](26,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,sn)),e["ɵdid"](28,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){var u=n.component;l(n,1,0);var o=l(n,7,0,u.pwdExpirationSettings.pwdExpirationSpan>0);l(n,6,0,"cd-col-form-label",o),l(n,11,0,0==u.pwdExpirationSettings.pwdExpirationSpan),l(n,16,0,u.bsConfig,u.minDate),l(n,20,0,"pwdExpirationDate"),l(n,23,0,"pwdExpirationDate"),l(n,28,0,u.userForm.showError("pwdExpirationDate",e["ɵnov"](n.parent,2),"required"))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,14,0,e["ɵnov"](n,22).ngClassUntouched,e["ɵnov"](n,22).ngClassTouched,e["ɵnov"](n,22).ngClassPristine,e["ɵnov"](n,22).ngClassDirty,e["ɵnov"](n,22).ngClassValid,e["ɵnov"](n,22).ngClassInvalid,e["ɵnov"](n,22).ngClassPending,e["ɵnov"](n,23).validClass,e["ɵnov"](n,23).invalidClass),l(n,26,0,e["ɵinlineInterpolate"](1,"icon-prepend ",u.icons.destroy,""))}))}function cn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Invalid email."]))],null,null)}function pn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"span",[["class","no-border full-height"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"cd-select-badges",[],null,null,null,Ll.b,Ll.a)),e["ɵdid"](2,49152,null,0,Al.a,[w.a],{data:[0,"data"],options:[1,"options"],messages:[2,"messages"]},null)],(function(l,n){var u=n.component;l(n,2,0,u.userForm.controls.roles.value,u.allRoles,u.messages)}),null)}function mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](1,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,16,{FormControlNames:1}),e["ɵqud"](603979776,17,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","enabled"],["id","enabled"],["name","enabled"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var o=!0;return"change"===n&&(o=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,7).onTouched()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.c]),e["ɵdid"](9,671744,[[16,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](11,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](12,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","enabled"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Enabled"]))],(function(l,n){l(n,1,0),l(n,9,0,"enabled"),l(n,12,0,"enabled")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](1,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,18,{FormControlNames:1}),e["ɵqud"](603979776,19,{messagesBlock:0}),(l()(),e["ɵeld"](4,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(l()(),e["ɵeld"](5,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","pwdUpdateRequired"],["id","pwdUpdateRequired"],["name","pwdUpdateRequired"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(l,n,u){var o=!0;return"change"===n&&(o=!1!==e["ɵnov"](l,7).onChange(u.target.checked)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,7).onTouched()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.c,[e.Renderer2,e.ElementRef],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.c]),e["ɵdid"](9,671744,[[18,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](11,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](12,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](13,0,null,null,1,"label",[["class","custom-control-label"],["for","pwdUpdateRequired"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["User must change password at next logon"]))],(function(l,n){l(n,1,0),l(n,9,0,"pwdUpdateRequired"),l(n,12,0,"pwdUpdateRequired")}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).hasErrors,e["ɵnov"](n,1).hasSuccess),l(n,6,0,e["ɵnov"](n,11).ngClassUntouched,e["ɵnov"](n,11).ngClassTouched,e["ɵnov"](n,11).ngClassPristine,e["ɵnov"](n,11).ngClassDirty,e["ɵnov"](n,11).ngClassValid,e["ɵnov"](n,11).ngClassInvalid,e["ɵnov"](n,11).ngClassPending,e["ɵnov"](n,12).validClass,e["ɵnov"](n,12).invalidClass)}))}function fn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,136,"form",[["name","userForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var o=!0;return"submit"===n&&(o=!1!==e["ɵnov"](l,2).onSubmit(u)&&o),"reset"===n&&(o=!1!==e["ɵnov"](l,2).onReset()&&o),"submit"===n&&(o=!1!==e["ɵnov"](l,5).onSubmit()&&o),o}),null,null)),e["ɵdid"](1,16384,null,0,h.G,[],null,null),e["ɵdid"](2,540672,[["formDir",4]],0,h.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,h.d,null,[h.l]),e["ɵdid"](4,16384,null,0,h.s,[[4,h.d]],null,null),e["ɵdid"](5,16384,null,0,dl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](6,0,null,null,130,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](8,null,[""," ",""])),e["ɵppd"](9,1),e["ɵppd"](10,1),(l()(),e["ɵeld"](11,0,null,null,116,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](12,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](13,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,2,{FormControlNames:1}),e["ɵqud"](603979776,3,{messagesBlock:0}),(l()(),e["ɵeld"](16,0,null,0,4,"label",[["class","cd-col-form-label"],["for","username"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](18,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](19,{required:0}),(l()(),e["ɵted"](-1,null,["Username"])),(l()(),e["ɵeld"](21,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](22,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","username"],["id","username"],["name","username"],["placeholder","Username..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,23)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,23).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,23)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,23)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](23,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](25,671744,[[2,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](27,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](28,4210688,null,0,Ol.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](29,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,ln)),e["ɵdid"](31,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,nn)),e["ɵdid"](33,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](34,0,null,null,26,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](35,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,4,{FormControlNames:1}),e["ɵqud"](603979776,5,{messagesBlock:0}),(l()(),e["ɵeld"](38,0,null,0,4,"label",[["class","cd-col-form-label"],["for","password"]],null,null,null,null,null)),(l()(),e["ɵeld"](39,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Password"])),(l()(),e["ɵand"](16777216,null,null,1,null,un)),e["ɵdid"](42,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](43,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](44,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](45,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","password"],["id","password"],["name","password"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,46)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,46).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,46)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,46)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](46,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](48,671744,[[4,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](50,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](51,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](52,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](53,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,54).onClick()&&o),o}),null,null)),e["ɵdid"](54,81920,null,0,jl.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵeld"](55,0,null,null,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(l()(),e["ɵeld"](56,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,en)),e["ɵdid"](58,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,on)),e["ɵdid"](60,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](61,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](62,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,6,{FormControlNames:1}),e["ɵqud"](603979776,7,{messagesBlock:0}),(l()(),e["ɵeld"](65,0,null,0,1,"label",[["class","cd-col-form-label"],["for","confirmpassword"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Confirm password"])),(l()(),e["ɵeld"](67,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](68,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(l()(),e["ɵeld"](69,0,null,null,6,"input",[["class","form-control"],["formControlName","confirmpassword"],["id","confirmpassword"],["name","confirmpassword"],["placeholder","Confirm password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,70)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,70).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,70)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,70)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](70,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](72,671744,[[6,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](74,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](75,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](76,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(l()(),e["ɵeld"](77,0,null,null,1,"button",[["cdPasswordButton","confirmpassword"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(l,n,u){var o=!0;return"click"===n&&(o=!1!==e["ɵnov"](l,78).onClick()&&o),o}),null,null)),e["ɵdid"](78,81920,null,0,jl.a,[e.ElementRef,e.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,an)),e["ɵdid"](80,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,dn)),e["ɵdid"](82,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,rn)),e["ɵdid"](84,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](85,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](86,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,10,{FormControlNames:1}),e["ɵqud"](603979776,11,{messagesBlock:0}),(l()(),e["ɵeld"](89,0,null,0,1,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Full name"])),(l()(),e["ɵeld"](91,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](92,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Full name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,93)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,93).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,93)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,93)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](93,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](95,671744,[[10,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](97,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](98,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](99,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](100,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,12,{FormControlNames:1}),e["ɵqud"](603979776,13,{messagesBlock:0}),(l()(),e["ɵeld"](103,0,null,0,1,"label",[["class","cd-col-form-label"],["for","email"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Email"])),(l()(),e["ɵeld"](105,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](106,0,null,null,6,"input",[["class","form-control"],["formControlName","email"],["id","email"],["name","email"],["placeholder","Email..."],["type","email"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,107)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,107).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,107)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,107)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](107,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](109,671744,[[12,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](111,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](112,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,cn)),e["ɵdid"](114,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](115,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](116,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,14,{FormControlNames:1}),e["ɵqud"](603979776,15,{messagesBlock:0}),(l()(),e["ɵeld"](119,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Roles"])),(l()(),e["ɵeld"](121,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,pn)),e["ɵdid"](123,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,mn)),e["ɵdid"](125,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,vn)),e["ɵdid"](127,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](128,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](129,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](130,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Bl.b,Bl.a)),e["ɵdid"](131,114688,null,0,zl.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](132,0,[""," ",""])),e["ɵppd"](133,1),e["ɵppd"](134,1),(l()(),e["ɵeld"](135,0,null,null,1,"cd-back-button",[],null,null,null,Gl.b,Gl.a)),e["ɵdid"](136,49152,null,0,Zl.a,[g.Location,xl.b],null,null)],(function(l,n){var u=n.component;l(n,2,0,u.userForm),l(n,5,0,u.userForm),l(n,13,0);var o=l(n,19,0,u.mode!==u.userFormMode.editing);l(n,18,0,"cd-col-form-label",o),l(n,25,0,"username"),l(n,28,0,""),l(n,29,0,"username"),l(n,31,0,u.userForm.showError("username",e["ɵnov"](n,2),"required")),l(n,33,0,u.userForm.showError("username",e["ɵnov"](n,2),"notUnique")),l(n,35,0),l(n,42,0,u.passwordPolicyHelpText.length>0),l(n,48,0,"password"),l(n,51,0,"password"),l(n,54,0,"password"),l(n,58,0,u.userForm.showError("password",e["ɵnov"](n,2),"required")),l(n,60,0,u.userForm.showError("password",e["ɵnov"](n,2),"passwordPolicy")),l(n,62,0),l(n,72,0,"confirmpassword"),l(n,75,0,"confirmpassword"),l(n,78,0,"confirmpassword"),l(n,80,0,u.userForm.showError("confirmpassword",e["ɵnov"](n,2),"required")),l(n,82,0,u.userForm.showError("confirmpassword",e["ɵnov"](n,2),"match")),l(n,84,0,!u.authStorageService.isSSO()),l(n,86,0),l(n,95,0,"name"),l(n,98,0,"name"),l(n,100,0),l(n,109,0,"email"),l(n,112,0,"email"),l(n,114,0,u.userForm.showError("email",e["ɵnov"](n,2),"email")),l(n,116,0),l(n,123,0,u.allRoles),l(n,125,0,!u.isCurrentUser()),l(n,127,0,!u.isCurrentUser()&&!u.authStorageService.isSSO()),l(n,131,0,e["ɵnov"](n,2))}),(function(l,n){var u=n.component;l(n,0,0,e["ɵnov"](n,4).ngClassUntouched,e["ɵnov"](n,4).ngClassTouched,e["ɵnov"](n,4).ngClassPristine,e["ɵnov"](n,4).ngClassDirty,e["ɵnov"](n,4).ngClassValid,e["ɵnov"](n,4).ngClassInvalid,e["ɵnov"](n,4).ngClassPending);var o=e["ɵunv"](n,8,0,l(n,9,0,e["ɵnov"](n.parent,0),u.action)),a=e["ɵunv"](n,8,1,l(n,10,0,e["ɵnov"](n.parent,1),u.resource));l(n,8,0,o,a),l(n,12,0,e["ɵnov"](n,13).hasErrors,e["ɵnov"](n,13).hasSuccess),l(n,22,0,e["ɵnov"](n,27).ngClassUntouched,e["ɵnov"](n,27).ngClassTouched,e["ɵnov"](n,27).ngClassPristine,e["ɵnov"](n,27).ngClassDirty,e["ɵnov"](n,27).ngClassValid,e["ɵnov"](n,27).ngClassInvalid,e["ɵnov"](n,27).ngClassPending,e["ɵnov"](n,29).validClass,e["ɵnov"](n,29).invalidClass),l(n,34,0,e["ɵnov"](n,35).hasErrors,e["ɵnov"](n,35).hasSuccess),l(n,45,0,e["ɵnov"](n,50).ngClassUntouched,e["ɵnov"](n,50).ngClassTouched,e["ɵnov"](n,50).ngClassPristine,e["ɵnov"](n,50).ngClassDirty,e["ɵnov"](n,50).ngClassValid,e["ɵnov"](n,50).ngClassInvalid,e["ɵnov"](n,50).ngClassPending,e["ɵnov"](n,51).validClass,e["ɵnov"](n,51).invalidClass),l(n,56,0,e["ɵinlineInterpolate"](1,"",u.passwordStrengthLevelClass,""),e["ɵinlineInterpolate"](1,"",u.passwordValuation,"")),l(n,61,0,e["ɵnov"](n,62).hasErrors,e["ɵnov"](n,62).hasSuccess),l(n,69,0,e["ɵnov"](n,74).ngClassUntouched,e["ɵnov"](n,74).ngClassTouched,e["ɵnov"](n,74).ngClassPristine,e["ɵnov"](n,74).ngClassDirty,e["ɵnov"](n,74).ngClassValid,e["ɵnov"](n,74).ngClassInvalid,e["ɵnov"](n,74).ngClassPending,e["ɵnov"](n,75).validClass,e["ɵnov"](n,75).invalidClass),l(n,85,0,e["ɵnov"](n,86).hasErrors,e["ɵnov"](n,86).hasSuccess),l(n,92,0,e["ɵnov"](n,97).ngClassUntouched,e["ɵnov"](n,97).ngClassTouched,e["ɵnov"](n,97).ngClassPristine,e["ɵnov"](n,97).ngClassDirty,e["ɵnov"](n,97).ngClassValid,e["ɵnov"](n,97).ngClassInvalid,e["ɵnov"](n,97).ngClassPending,e["ɵnov"](n,98).validClass,e["ɵnov"](n,98).invalidClass),l(n,99,0,e["ɵnov"](n,100).hasErrors,e["ɵnov"](n,100).hasSuccess),l(n,106,0,e["ɵnov"](n,111).ngClassUntouched,e["ɵnov"](n,111).ngClassTouched,e["ɵnov"](n,111).ngClassPristine,e["ɵnov"](n,111).ngClassDirty,e["ɵnov"](n,111).ngClassValid,e["ɵnov"](n,111).ngClassInvalid,e["ɵnov"](n,111).ngClassPending,e["ɵnov"](n,112).validClass,e["ɵnov"](n,112).invalidClass),l(n,115,0,e["ɵnov"](n,116).hasErrors,e["ɵnov"](n,116).hasSuccess);var d=e["ɵunv"](n,132,0,l(n,133,0,e["ɵnov"](n.parent,0),u.action)),t=e["ɵunv"](n,132,1,l(n,134,0,e["ɵnov"](n.parent,1),u.resource));l(n,132,0,d,t)}))}function gn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,['You are about to remove "user read / update" permissions from your own user.'])),(l()(),e["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(l()(),e["ɵeld"](4,0,null,null,1,"p",[],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["If you continue, you will no longer be able to add or remove roles from any user."])),(l()(),e["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Are you sure you want to continue?"]))],null,null)}function hn(l){return e["ɵvid"](0,[e["ɵpid"](0,g.TitleCasePipe,[]),e["ɵpid"](0,A.a,[]),e["ɵqud"](402653184,1,{removeSelfUserReadUpdatePermissionTpl:0}),(l()(),e["ɵand"](16777216,null,null,1,null,$l)),e["ɵdid"](4,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](5,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵand"](16777216,null,null,1,null,fn)),e["ɵdid"](7,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](0,[[1,2],["removeSelfUserReadUpdatePermissionTpl",2]],null,0,null,gn))],(function(l,n){var u=n.component;l(n,4,0,!u.pwdExpirationSettings),l(n,7,0,u.pwdExpirationSettings)}),null)}function bn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-user-form",[],null,null,null,hn,Wl)),e["ɵdid"](1,114688,null,0,Kl.a,[Hl.a,Q.a,$.a,$.m,X.b,Xl.a,El.a,yl.a,w.a,xl.b,Jl.a,Yl.a,Ql.a],null,null)],(function(l,n){l(n,1,0)}),null)}var Cn=e["ɵccf"]("cd-user-form",Kl.a,bn,{},{},[]),Rn=u("LvDl"),wn=u("x38r");class In{constructor(l){this.i18n=l,this.scopes_permissions=[]}ngOnInit(){this.columns=[{prop:"scope",name:this.i18n("Scope"),flexGrow:2},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTransformation:wn.a.checkIcon},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTransformation:wn.a.checkIcon},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTransformation:wn.a.checkIcon},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTransformation:wn.a.checkIcon}]}ngOnChanges(){if(this.selection){this.selectedItem=this.selection;const l=[];Rn.each(this.scopes,n=>{const u={read:!1,create:!1,update:!1,delete:!1};u.scope=n,n in this.selectedItem.scopes_permissions&&Rn.each(this.selectedItem.scopes_permissions[n],l=>{u[l]=!0}),l.push(u)}),this.scopes_permissions=l}}}var En=e["ɵcrt"]({encapsulation:0,styles:[["thead[_ngcontent-%COMP%]{background-color:#f5f5f5}.fa[_ngcontent-%COMP%]{font-size:large}.fa.fa-square-o[_ngcontent-%COMP%]{color:#d1d1d1}"]],data:{}});function yn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,ml.b,ml.a)),e["ɵdid"](1,180224,null,0,ll.e,[ll.f,e.Renderer2,e.ElementRef],null,null),(l()(),e["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),e["ɵdid"](3,212992,null,0,ll.b,[ll.e,e.ElementRef,e.Renderer2],{heading:[0,"heading"]},null),(l()(),e["ɵeld"](4,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,hl.b,hl.a)),e["ɵdid"](5,2867200,null,0,bl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null)],(function(l,n){var u=n.component;l(n,3,0,"Details"),l(n,5,0,u.scopes_permissions,u.columns,"flex",!1,!1,0,!1,!1)}),(function(l,n){l(n,0,0,e["ɵnov"](n,1).clazz),l(n,2,0,e["ɵnov"](n,3).id,e["ɵnov"](n,3).active,e["ɵnov"](n,3).addClass,e["ɵnov"](n,3).role,e["ɵnov"](n,3).ariaLabelledby)}))}function xn(l){return e["ɵvid"](0,[(l()(),e["ɵand"](16777216,null,null,1,null,yn)),e["ɵdid"](1,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(l,n){l(n,1,0,n.component.selection)}),null)}var Nn=u("n/D3"),Tn=u("ZDA6"),kn=e["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Dn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-user-tabs",[],null,null,null,gl,fl)),e["ɵdid"](1,114688,null,0,vl,[$.m],null,null),(l()(),e["ɵeld"](2,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","name"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"fetchData"],[null,"updateSelection"]],(function(l,n,u){var e=!0,o=l.component;return"setExpandedRow"===n&&(e=!1!==o.setExpandedRow(u)&&e),"fetchData"===n&&(e=!1!==o.getRoles()&&e),"updateSelection"===n&&(e=!1!==o.updateSelection(u)&&e),e}),hl.b,hl.a)),e["ɵdid"](3,2867200,null,0,bl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(l()(),e["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Cl.b,Cl.a)),e["ɵdid"](5,114688,null,0,Rl.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(l()(),e["ɵeld"](6,0,null,3,1,"cd-role-details",[["cdTableDetail",""]],null,null,null,xn,En)),e["ɵdid"](7,638976,null,0,In,[w.a],{selection:[0,"selection"],scopes:[1,"scopes"]},null)],(function(l,n){var u=n.component;l(n,1,0),l(n,3,0,u.roles,u.columns,"flex",!0,"name","single"),l(n,5,0,u.permission,u.selection,u.tableActions),l(n,7,0,u.expandedRow,u.scopes)}),null)}function qn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,2,"cd-role-list",[],null,null,null,Dn,kn)),e["ɵprd"](256,null,wl.a,Nn.b,[]),e["ɵdid"](2,114688,null,0,Nn.a,[Xl.a,Tn.a,F.a,Q.a,X.b,yl.a,w.a,wl.a,xl.b],null,null)],(function(l,n){l(n,2,0)}),null)}var Sn=e["ɵccf"]("cd-role-list",Nn.a,qn,{},{},[]),Pn=u("eTJe"),Fn=e["ɵcrt"]({encapsulation:0,styles:[[".datatable-permissions-header-cell-label[_ngcontent-%COMP%], .datatable-permissions-scope-cell-label[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function _n(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["This field is required."]))],null,null)}function Un(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["The chosen name is already in use."]))],null,null)}function Vn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"checked",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,dl.h,[[8,null],dl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,1,"label",[["class","datatable-permissions-scope-cell-label custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){var u=n.component;l(n,1,0,e["ɵinlineInterpolate"](1,"scope_",n.context.row.scope,""),u.isRowChecked(n.context.row.scope),e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,e["ɵinlineInterpolate"](1,"scope_",n.context.row.scope,"")),l(n,4,0,n.context.value)}))}function Mn(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,3,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"checked",0],[8,"id",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickCellCheckbox(l.context.row.scope,l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,dl.h,[[8,null],dl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],null,(function(l,n){l(n,1,0,n.context.value,n.context.row.scope+"-"+n.context.column.prop,e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,n.context.row.scope+"-"+n.context.column.prop)}))}function Ln(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,4,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(l()(),e["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"checked",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(l,n,u){var e=!0;return"change"===n&&(e=!1!==l.component.onClickHeaderCheckbox(l.context.column.prop,u)&&e),e}),null,null)),e["ɵdid"](2,16384,null,0,dl.h,[[8,null],dl.a],null,null),(l()(),e["ɵeld"](3,0,null,null,1,"label",[["class","datatable-permissions-header-cell-label custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(l()(),e["ɵted"](4,null,["",""]))],null,(function(l,n){var u=n.component;l(n,1,0,e["ɵinlineInterpolate"](1,"header_",n.context.column.prop,""),u.isHeaderChecked(n.context.column.prop),e["ɵnov"](n,2).validClass,e["ɵnov"](n,2).invalidClass),l(n,3,0,e["ɵinlineInterpolate"](1,"header_",n.context.column.prop,"")),l(n,4,0,n.context.column.name)}))}function An(l){return e["ɵvid"](0,[e["ɵpid"](0,g.TitleCasePipe,[]),e["ɵpid"](0,A.a,[]),e["ɵqud"](402653184,1,{headerPermissionCheckboxTpl:0}),e["ɵqud"](402653184,2,{cellScopeCheckboxTpl:0}),e["ɵqud"](402653184,3,{cellPermissionCheckboxTpl:0}),(l()(),e["ɵeld"](5,0,null,null,66,"div",[["class","cd-col-form"]],null,null,null,null,null)),(l()(),e["ɵeld"](6,0,null,null,65,"form",[["name","roleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(l,n,u){var o=!0;return"submit"===n&&(o=!1!==e["ɵnov"](l,8).onSubmit(u)&&o),"reset"===n&&(o=!1!==e["ɵnov"](l,8).onReset()&&o),"submit"===n&&(o=!1!==e["ɵnov"](l,11).onSubmit()&&o),o}),null,null)),e["ɵdid"](7,16384,null,0,h.G,[],null,null),e["ɵdid"](8,540672,[["formDir",4]],0,h.l,[[8,null],[8,null]],{form:[0,"form"]},null),e["ɵprd"](2048,null,h.d,null,[h.l]),e["ɵdid"](10,16384,null,0,h.s,[[4,h.d]],null,null),e["ɵdid"](11,16384,null,0,dl.d,[],{formGroup:[0,"formGroup"]},null),(l()(),e["ɵeld"](12,0,null,null,59,"div",[["class","card"]],null,null,null,null,null)),(l()(),e["ɵeld"](13,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(l()(),e["ɵted"](14,null,[""," ",""])),e["ɵppd"](15,1),e["ɵppd"](16,1),(l()(),e["ɵeld"](17,0,null,null,45,"div",[["class","card-body"]],null,null,null,null,null)),(l()(),e["ɵeld"](18,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](19,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,4,{FormControlNames:1}),e["ɵqud"](603979776,5,{messagesBlock:0}),(l()(),e["ɵeld"](22,0,null,0,4,"label",[["class","cd-col-form-label"],["for","name"]],null,null,null,null,null)),e["ɵprd"](512,null,g["ɵNgClassImpl"],g["ɵNgClassR2Impl"],[e.IterableDiffers,e.KeyValueDiffers,e.ElementRef,e.Renderer2]),e["ɵdid"](24,278528,null,0,g.NgClass,[g["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),e["ɵpod"](25,{required:0}),(l()(),e["ɵted"](-1,null,["Name"])),(l()(),e["ɵeld"](27,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](28,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","name"],["id","name"],["name","name"],["placeholder","Name..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,29)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,29).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,29)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,29)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](29,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](31,671744,[[4,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](33,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](34,4210688,null,0,Ol.a,[e.ElementRef],{autofocus:[0,"autofocus"]},null),e["ɵdid"](35,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,_n)),e["ɵdid"](37,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵand"](16777216,null,null,1,null,Un)),e["ɵdid"](39,16384,null,0,g.NgIf,[e.ViewContainerRef,e.TemplateRef],{ngIf:[0,"ngIf"]},null),(l()(),e["ɵeld"](40,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](41,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,6,{FormControlNames:1}),e["ɵqud"](603979776,7,{messagesBlock:0}),(l()(),e["ɵeld"](44,0,null,0,1,"label",[["class","cd-col-form-label"],["for","description"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Description"])),(l()(),e["ɵeld"](46,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](47,0,null,null,6,"input",[["class","form-control"],["formControlName","description"],["id","description"],["name","description"],["placeholder","Description..."],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(l,n,u){var o=!0;return"input"===n&&(o=!1!==e["ɵnov"](l,48)._handleInput(u.target.value)&&o),"blur"===n&&(o=!1!==e["ɵnov"](l,48).onTouched()&&o),"compositionstart"===n&&(o=!1!==e["ɵnov"](l,48)._compositionStart()&&o),"compositionend"===n&&(o=!1!==e["ɵnov"](l,48)._compositionEnd(u.target.value)&&o),o}),null,null)),e["ɵdid"](48,16384,null,0,h.e,[e.Renderer2,e.ElementRef,[2,h.b]],null,null),e["ɵprd"](1024,null,h.p,(function(l){return[l]}),[h.e]),e["ɵdid"](50,671744,[[6,4]],0,h.j,[[3,h.d],[8,null],[8,null],[6,h.p],[2,h.E]],{name:[0,"name"]},null),e["ɵprd"](2048,null,h.q,null,[h.j]),e["ɵdid"](52,16384,null,0,h.r,[[4,h.q]],null,null),e["ɵdid"](53,16384,null,0,dl.h,[[3,h.d],dl.a],{formControlName:[0,"formControlName"]},null),(l()(),e["ɵeld"](54,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ml.b,Ml.a)),e["ɵdid"](55,1163264,null,2,dl.c,[e.ElementRef,dl.g],null,null),e["ɵqud"](603979776,8,{FormControlNames:1}),e["ɵqud"](603979776,9,{messagesBlock:0}),(l()(),e["ɵeld"](58,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(l()(),e["ɵted"](-1,null,["Permissions"])),(l()(),e["ɵeld"](60,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(l()(),e["ɵeld"](61,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,hl.b,hl.a)),e["ɵdid"](62,2867200,null,0,bl.a,[e.NgZone,e.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],autoReload:[6,"autoReload"],autoSave:[7,"autoSave"]},null),(l()(),e["ɵeld"](63,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(l()(),e["ɵeld"](64,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(l()(),e["ɵeld"](65,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(l,n,u){var e=!0;return"submitAction"===n&&(e=!1!==l.component.submit()&&e),e}),Bl.b,Bl.a)),e["ɵdid"](66,114688,null,0,zl.a,[e.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(l()(),e["ɵted"](67,0,[""," ",""])),e["ɵppd"](68,1),e["ɵppd"](69,1),(l()(),e["ɵeld"](70,0,null,null,1,"cd-back-button",[],null,null,null,Gl.b,Gl.a)),e["ɵdid"](71,49152,null,0,Zl.a,[g.Location,xl.b],null,null),(l()(),e["ɵand"](0,[[2,2],["cellScopeCheckboxTpl",2]],null,0,null,Vn)),(l()(),e["ɵand"](0,[[3,2],["cellPermissionCheckboxTpl",2]],null,0,null,Mn)),(l()(),e["ɵand"](0,[[1,2],["headerPermissionCheckboxTpl",2]],null,0,null,Ln))],(function(l,n){var u=n.component;l(n,8,0,u.roleForm),l(n,11,0,u.roleForm),l(n,19,0);var o=l(n,25,0,u.mode!==u.roleFormMode.editing);l(n,24,0,"cd-col-form-label",o),l(n,31,0,"name"),l(n,34,0,""),l(n,35,0,"name"),l(n,37,0,u.roleForm.showError("name",e["ɵnov"](n,8),"required")),l(n,39,0,u.roleForm.showError("name",e["ɵnov"](n,8),"notUnique")),l(n,41,0),l(n,50,0,"description"),l(n,53,0,"description"),l(n,55,0),l(n,62,0,u.scopes_permissions,u.columns,"flex",!1,!1,0,!1,!1),l(n,66,0,e["ɵnov"](n,8))}),(function(l,n){var u=n.component;l(n,6,0,e["ɵnov"](n,10).ngClassUntouched,e["ɵnov"](n,10).ngClassTouched,e["ɵnov"](n,10).ngClassPristine,e["ɵnov"](n,10).ngClassDirty,e["ɵnov"](n,10).ngClassValid,e["ɵnov"](n,10).ngClassInvalid,e["ɵnov"](n,10).ngClassPending);var o=e["ɵunv"](n,14,0,l(n,15,0,e["ɵnov"](n,0),u.action)),a=e["ɵunv"](n,14,1,l(n,16,0,e["ɵnov"](n,1),u.resource));l(n,14,0,o,a),l(n,18,0,e["ɵnov"](n,19).hasErrors,e["ɵnov"](n,19).hasSuccess),l(n,28,0,e["ɵnov"](n,33).ngClassUntouched,e["ɵnov"](n,33).ngClassTouched,e["ɵnov"](n,33).ngClassPristine,e["ɵnov"](n,33).ngClassDirty,e["ɵnov"](n,33).ngClassValid,e["ɵnov"](n,33).ngClassInvalid,e["ɵnov"](n,33).ngClassPending,e["ɵnov"](n,35).validClass,e["ɵnov"](n,35).invalidClass),l(n,40,0,e["ɵnov"](n,41).hasErrors,e["ɵnov"](n,41).hasSuccess),l(n,47,0,e["ɵnov"](n,52).ngClassUntouched,e["ɵnov"](n,52).ngClassTouched,e["ɵnov"](n,52).ngClassPristine,e["ɵnov"](n,52).ngClassDirty,e["ɵnov"](n,52).ngClassValid,e["ɵnov"](n,52).ngClassInvalid,e["ɵnov"](n,52).ngClassPending,e["ɵnov"](n,53).validClass,e["ɵnov"](n,53).invalidClass),l(n,54,0,e["ɵnov"](n,55).hasErrors,e["ɵnov"](n,55).hasSuccess);var d=e["ɵunv"](n,67,0,l(n,68,0,e["ɵnov"](n,0),u.action)),t=e["ɵunv"](n,67,1,l(n,69,0,e["ɵnov"](n,1),u.resource));l(n,67,0,d,t)}))}function On(l){return e["ɵvid"](0,[(l()(),e["ɵeld"](0,0,null,null,1,"cd-role-form",[],null,null,null,An,Fn)),e["ɵdid"](1,114688,null,0,Pn.a,[$.a,$.m,Xl.a,Tn.a,yl.a,w.a,xl.b],null,null)],(function(l,n){l(n,1,0)}),null)}var jn=e["ɵccf"]("cd-role-form",Pn.a,On,{},{},[]);u.d(n,"AuthModuleNgFactory",(function(){return Bn})),u.d(n,"RoutedAuthModuleNgFactory",(function(){return zn}));var Bn=e["ɵcmf"](o.a,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[a.a,d.a,t.a,s.a,s.b,i.a,r.a,c.a,p.a,m.a,v.a,f.a,f.c,f.b,f.d]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,g.NgLocalization,g.NgLocaleLocalization,[e.LOCALE_ID,[2,g["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,h.D,h.D,[]),e["ɵmpd"](4608,h.h,h.h,[]),e["ɵmpd"](4608,b.a,b.a,[]),e["ɵmpd"](4608,C.a,C.a,[]),e["ɵmpd"](4608,R.a,R.a,[w.a]),e["ɵmpd"](4608,g.DatePipe,g.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,I.a,I.a,[]),e["ɵmpd"](4608,E.a,E.a,[]),e["ɵmpd"](4608,y.a,y.a,[]),e["ɵmpd"](4608,x.a,x.a,[y.a]),e["ɵmpd"](4608,N.a,N.a,[y.a]),e["ɵmpd"](4608,T.a,T.a,[y.a]),e["ɵmpd"](4608,k.a,k.a,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,q.a,q.a,[]),e["ɵmpd"](4608,S.a,S.a,[]),e["ɵmpd"](4608,P.a,P.a,[g.DatePipe]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,_.a,_.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,V.a,V.a,[]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,L.a,L.a,[w.a]),e["ɵmpd"](4608,A.a,A.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,B.b,B.b,[]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,G.a,G.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,Z.a,Z.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,G.a,e.ApplicationRef]),e["ɵmpd"](4608,K.c,K.c,[]),e["ɵmpd"](4608,H.a,H.a,[]),e["ɵmpd"](4608,X.b,X.b,[e.RendererFactory2,Z.a]),e["ɵmpd"](4608,J.y,J.y,[g.DOCUMENT]),e["ɵmpd"](4608,J.r,J.r,[]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,Y.f,Y.f,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,W.a,W.a,[$.m,Q.a]),e["ɵmpd"](4608,ll.f,ll.f,[]),e["ɵmpd"](4608,nl.t,nl.t,[]),e["ɵmpd"](4608,nl.v,nl.v,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,nl.h,nl.h,[]),e["ɵmpd"](4608,nl.d,nl.d,[]),e["ɵmpd"](4608,nl.j,nl.j,[]),e["ɵmpd"](4608,nl.l,nl.l,[]),e["ɵmpd"](4608,nl.u,nl.u,[nl.v,nl.l]),e["ɵmpd"](1073742336,ul.a,ul.a,[]),e["ɵmpd"](1073742336,g.CommonModule,g.CommonModule,[]),e["ɵmpd"](1073742336,h.C,h.C,[]),e["ɵmpd"](1073742336,h.n,h.n,[]),e["ɵmpd"](1073742336,z.d,z.d,[]),e["ɵmpd"](1073742336,h.y,h.y,[]),e["ɵmpd"](1073742336,el.a,el.a,[]),e["ɵmpd"](1073742336,B.c,B.c,[]),e["ɵmpd"](1073742336,K.d,K.d,[]),e["ɵmpd"](1073742336,H.d,H.d,[]),e["ɵmpd"](1073742336,ol.b,ol.b,[]),e["ɵmpd"](1073742336,X.e,X.e,[]),e["ɵmpd"](1073742336,al.a,al.a,[]),e["ɵmpd"](1073742336,Y.e,Y.e,[]),e["ɵmpd"](1073742336,dl.f,dl.f,[]),e["ɵmpd"](1073742336,tl.ClickOutsideModule,tl.ClickOutsideModule,[]),e["ɵmpd"](1073742336,sl.b,sl.b,[]),e["ɵmpd"](1073742336,$.q,$.q,[[2,$.v],[2,$.m]]),e["ɵmpd"](1073742336,il.a,il.a,[]),e["ɵmpd"](1073742336,J.u,J.u,[]),e["ɵmpd"](1073742336,rl.a,rl.a,[]),e["ɵmpd"](1073742336,cl.a,cl.a,[]),e["ɵmpd"](1073742336,pl.a,pl.a,[]),e["ɵmpd"](1073742336,ll.d,ll.d,[]),e["ɵmpd"](1073742336,nl.g,nl.g,[]),e["ɵmpd"](1073742336,o.a,o.a,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,Y.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])})),zn=e["ɵcmf"](o.b,[],(function(l){return e["ɵmod"]([e["ɵmpd"](512,e.ComponentFactoryResolver,e["ɵCodegenComponentFactoryResolver"],[[8,[a.a,d.a,t.a,s.a,s.b,i.a,r.a,c.a,p.a,m.a,v.a,f.a,f.c,f.b,f.d,Pl,Cn,Sn,jn]],[3,e.ComponentFactoryResolver],e.NgModuleRef]),e["ɵmpd"](4608,g.NgLocalization,g.NgLocaleLocalization,[e.LOCALE_ID,[2,g["ɵangular_packages_common_common_a"]]]),e["ɵmpd"](4608,h.D,h.D,[]),e["ɵmpd"](4608,h.h,h.h,[]),e["ɵmpd"](4608,b.a,b.a,[]),e["ɵmpd"](4608,C.a,C.a,[]),e["ɵmpd"](4608,R.a,R.a,[w.a]),e["ɵmpd"](4608,g.DatePipe,g.DatePipe,[e.LOCALE_ID]),e["ɵmpd"](4608,I.a,I.a,[]),e["ɵmpd"](4608,E.a,E.a,[]),e["ɵmpd"](4608,y.a,y.a,[]),e["ɵmpd"](4608,x.a,x.a,[y.a]),e["ɵmpd"](4608,N.a,N.a,[y.a]),e["ɵmpd"](4608,T.a,T.a,[y.a]),e["ɵmpd"](4608,k.a,k.a,[]),e["ɵmpd"](4608,D.a,D.a,[]),e["ɵmpd"](4608,q.a,q.a,[]),e["ɵmpd"](4608,S.a,S.a,[]),e["ɵmpd"](4608,P.a,P.a,[g.DatePipe]),e["ɵmpd"](4608,F.a,F.a,[]),e["ɵmpd"](4608,_.a,_.a,[]),e["ɵmpd"](4608,U.a,U.a,[]),e["ɵmpd"](4608,V.a,V.a,[]),e["ɵmpd"](4608,M.a,M.a,[]),e["ɵmpd"](4608,L.a,L.a,[w.a]),e["ɵmpd"](4608,A.a,A.a,[]),e["ɵmpd"](4608,O.a,O.a,[]),e["ɵmpd"](4608,j.a,j.a,[]),e["ɵmpd"](4608,B.b,B.b,[]),e["ɵmpd"](4608,z.a,z.a,[]),e["ɵmpd"](4608,G.a,G.a,[e.NgZone,e.RendererFactory2,e.PLATFORM_ID]),e["ɵmpd"](4608,Z.a,Z.a,[e.ComponentFactoryResolver,e.NgZone,e.Injector,G.a,e.ApplicationRef]),e["ɵmpd"](4608,K.c,K.c,[]),e["ɵmpd"](4608,H.a,H.a,[]),e["ɵmpd"](4608,X.b,X.b,[e.RendererFactory2,Z.a]),e["ɵmpd"](4608,J.y,J.y,[g.DOCUMENT]),e["ɵmpd"](4608,J.r,J.r,[]),e["ɵmpd"](4608,J.a,J.a,[]),e["ɵmpd"](4608,Y.f,Y.f,[]),e["ɵmpd"](4608,Q.a,Q.a,[]),e["ɵmpd"](4608,W.a,W.a,[$.m,Q.a]),e["ɵmpd"](4608,ll.f,ll.f,[]),e["ɵmpd"](4608,nl.t,nl.t,[]),e["ɵmpd"](4608,nl.v,nl.v,[]),e["ɵmpd"](4608,nl.a,nl.a,[]),e["ɵmpd"](4608,nl.h,nl.h,[]),e["ɵmpd"](4608,nl.d,nl.d,[]),e["ɵmpd"](4608,nl.j,nl.j,[]),e["ɵmpd"](4608,nl.l,nl.l,[]),e["ɵmpd"](4608,nl.u,nl.u,[nl.v,nl.l]),e["ɵmpd"](1073742336,ul.a,ul.a,[]),e["ɵmpd"](1073742336,g.CommonModule,g.CommonModule,[]),e["ɵmpd"](1073742336,h.C,h.C,[]),e["ɵmpd"](1073742336,h.n,h.n,[]),e["ɵmpd"](1073742336,z.d,z.d,[]),e["ɵmpd"](1073742336,h.y,h.y,[]),e["ɵmpd"](1073742336,el.a,el.a,[]),e["ɵmpd"](1073742336,B.c,B.c,[]),e["ɵmpd"](1073742336,K.d,K.d,[]),e["ɵmpd"](1073742336,H.d,H.d,[]),e["ɵmpd"](1073742336,ol.b,ol.b,[]),e["ɵmpd"](1073742336,X.e,X.e,[]),e["ɵmpd"](1073742336,al.a,al.a,[]),e["ɵmpd"](1073742336,Y.e,Y.e,[]),e["ɵmpd"](1073742336,dl.f,dl.f,[]),e["ɵmpd"](1073742336,tl.ClickOutsideModule,tl.ClickOutsideModule,[]),e["ɵmpd"](1073742336,sl.b,sl.b,[]),e["ɵmpd"](1073742336,$.q,$.q,[[2,$.v],[2,$.m]]),e["ɵmpd"](1073742336,il.a,il.a,[]),e["ɵmpd"](1073742336,J.u,J.u,[]),e["ɵmpd"](1073742336,rl.a,rl.a,[]),e["ɵmpd"](1073742336,cl.a,cl.a,[]),e["ɵmpd"](1073742336,pl.a,pl.a,[]),e["ɵmpd"](1073742336,ll.d,ll.d,[]),e["ɵmpd"](1073742336,nl.g,nl.g,[]),e["ɵmpd"](1073742336,o.a,o.a,[]),e["ɵmpd"](1073742336,o.b,o.b,[]),e["ɵmpd"](256,e.LOCALE_ID,"en-US",[]),e["ɵmpd"](256,Y.a,{autoClose:!0,insideClick:!1},[]),e["ɵmpd"](1024,$.k,(function(){return[[{path:"",redirectTo:"users",pathMatch:"full"},{path:"users",data:o.c,children:[{path:"",component:Il.a},{path:"create",component:Kl.a,data:o.d},{path:"edit/:username",component:Kl.a,data:o.e}]},{path:"roles",data:o.f,children:[{path:"",component:Nn.a},{path:"create",component:Pn.a,data:o.g},{path:"edit/:name",component:Pn.a,data:o.h}]}]]}),[]),e["ɵmpd"](256,e.TRANSLATIONS_FORMAT,"xlf",[])])}))}}]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png
new file mode 100644 (file)
index 0000000..93f2be1
Binary files /dev/null and b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png differ
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/ceph_background.gif b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/ceph_background.gif
new file mode 100644 (file)
index 0000000..0f7426e
Binary files /dev/null and b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/assets/ceph_background.gif differ
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/ceph_background.7c127240f022e7baf57d.gif b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/ceph_background.7c127240f022e7baf57d.gif
new file mode 100644 (file)
index 0000000..0f7426e
Binary files /dev/null and b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/ceph_background.7c127240f022e7baf57d.gif differ
index 096e4d6ea861a43c0e42d1ca480a3848baec69a8..07a009c4a8fb9b1188c38f7d1a8dd9c2f19062e5 100644 (file)
@@ -10,7 +10,7 @@
 
   <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   <link rel="icon" type="image/x-icon" href="favicon.ico">
 
   <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
   <link rel="icon" type="image/x-icon" href="favicon.ico">
-<link rel="stylesheet" href="styles.f15465861b49727cf28a.css"></head>
+<link rel="stylesheet" href="styles.4f0058c288677d311127.css"></head>
 <body>
   <noscript>
     <div class="noscript container"
 <body>
   <noscript>
     <div class="noscript container"
@@ -24,5 +24,5 @@
   </noscript>
 
   <cd-root></cd-root>
   </noscript>
 
   <cd-root></cd-root>
-<script src="runtime.2fd4e31a298ae797b302.js" defer></script><script src="polyfills.e36c0f03dbcdd3187a99.js" defer></script><script src="scripts.76632aba1e576c7cc54a.js" defer></script><script src="main.bbd2d62de0d7a670cae3.js" defer></script></body>
+<script src="runtime.992511a1840a2561365a.js" defer></script><script src="polyfills.e36c0f03dbcdd3187a99.js" defer></script><script src="scripts.76632aba1e576c7cc54a.js" defer></script><script src="main.a10546ecbf9c49d65e18.js" defer></script></body>
 </html>
 </html>
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a10546ecbf9c49d65e18.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.a10546ecbf9c49d65e18.js
new file mode 100644 (file)
index 0000000..80f77e3
--- /dev/null
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"+0ag":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=/ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(t);return e?"dev"===e[2]?"master":e[1]:t}}},"+6XX":function(t,e,n){var a=n("y1pI");t.exports=function(t){return a(this.__data__,t)>-1}},"+K+b":function(t,e,n){var a=n("JHRd");t.exports=function(t){var e=new t.constructor(t.byteLength);return new a(e).set(new a(t)),e}},"+Qka":function(t,e,n){var a=n("fmRc"),r=n("t2Dn"),i=n("cq/+"),s=n("T1AV"),o=n("GoyQ"),u=n("mTTR"),d=n("itsj");t.exports=function t(e,n,l,c,f){e!==n&&i(n,(function(i,u){if(f||(f=new a),o(i))s(e,n,u,l,t,c,f);else{var h=c?c(d(e,u),i,u+"",e,n,f):void 0;void 0===h&&(h=i),r(e,u,h)}}),u)}},"+Wg/":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="pt-BR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Alternar navegação</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Painel de controle</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitores</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Serviços</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuração</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mapa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Módulos do gerenciador</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Registros</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pools</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloco</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Imagens</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Espelhamento</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemas de arquivos</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Gateway de Objetos</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Usuários</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartimentos</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Selecionar Idioma</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Carregando dados do painel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Seletor de Horário do Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Redefinir Configurações</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Voltar</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Falha ao carregar dados.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>selecionado(s)</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>encontrado(s)</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nome</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descrição</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descrição extensa</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Padrão</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Padrão do daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valores</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Salvar</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visualizador de mapa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Carregando...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nome de host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Este campo é obrigatório.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sim, desejo.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Cancelar</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Fechar</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista de Hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Desempenho Geral</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nenhuma entrada encontrada</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Registros do Cluster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Registros de Auditoria</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Carregando configuração...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Não foi possível carregar a configuração.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Editar módulo do gerenciador</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>O valor inserido não é um UUID válido. Ex.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>O valor inserido precisa ser um endereço IP válido.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>O valor inserido precisa ser um número.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>O valor inserido precisa ser um número ou decimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Atualizar</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID do Cluster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap modificado</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>época de monmap</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con obrigatório</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon obrigatório</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>No Quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Não está no Quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Adicionar</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Recursos</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flags OSD de todo o Cluster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Enviar</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avançado...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioridade de Recuperação de OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioridade</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizar valores de prioridade</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Este campo é obrigatório!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>O valor precisa ser entre 0 e 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Reponderar</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profundo } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profundo} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista de OSDs</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valor</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Editar</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Excluir</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Saúde</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Estatísticas</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clientes</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Qualquer cliente pode acessar</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Endereços</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo obrigatório</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Deve conter um ou mais valores separados por vírgula</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Por exemplo:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo de Acesso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Executar Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Adicionar clientes</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Não há clusters disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Selecionar cluster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Adicionar daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend de Armazenamento</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Não há pools de dados disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Selecionar backend de armazenamento --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Usuário do Gateway de Objetos</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Não há usuários disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Selecionar usuário do gateway de objetos --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID de Usuário do CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Não há clientes disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Selecionar cliente do cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nome do CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Rótulo de Segurança</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Habilitar rótulo de segurança</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Caminho do CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>O caminho precisa começar com \'/\' e pode ser seguido de uma palavra</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Novo diretório será criado</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Caminho</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>O caminho pode ser apenas uma \'/\' ou uma palavra</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Novo compartimento será criado</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocolo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Clientes não podem montar subdiretórios (ou seja, se Tag = foo, o cliente não poderá montar foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Ao usar opções diferentes de Tag, o mesmo Caminho pode ser exportado várias vezes.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Ao usar opções diferentes de Pseudo, o mesmo Caminho pode ser exportado várias vezes.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Não há tipos de acesso disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Selecionar tipo de acesso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Não há squashes disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>--Selecionar que tipo de squash de ID de usuário será executado --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocolo de Transporte</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Bem-vindo ao Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nome de usuário é obrigatório</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Senha é obrigatória</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Login</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>O usuário não existe no Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Proibido</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Você não tem permissão para ver o que está procurando.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuração de RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Remova o valor de configuração local. No lugar dele, o valor de configuração pai será herdado e usado.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>O valor mínimo é 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista de Pools</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>O nome pode conter apenas caracteres alfanuméricos, traços e sublinhados.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>O nome do perfil de código de eliminação escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plug-in</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Pacotes de dados (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Deve ser igual ou maior do que 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Pacotes de codificação (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Deve ser igual ou maior do que 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimador de durabilidade (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localidade (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domínio de falha do Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localidade do Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nenhum</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Técnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Tamanho do pacote</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Raiz do Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe do dispositivo do Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>qualquer</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Diretório</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nome...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>O nome do pool do Ceph escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo de pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Selecionar tipo de pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupos de posicionamento</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Pelo menos um grupo de posicionamento é necessário!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Seu cluster não pode processar tantos PGs. Recalcule a quantidade de PG necessária.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Ajuda no cálculo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Tamanho replicado</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flags</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sobregravações de EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplicativos</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Perfil do código de eliminação</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Não há perfis de código de eliminação disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Selecionar perfil do código de eliminação --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Conjunto de regras do Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Selecionar regra de crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regra de Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Etapas do Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compactação</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modo</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Não há algoritmos de compactação de eliminação disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Tamanho mínimo do blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>ex. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>O valor deve ser maior do que 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Tamanho máximo do blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>ex. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>O valor deve ser maior do que o tamanho mínimo do blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Taxa</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Taxa de compactação</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>O valor deve ser entre 0.0 e 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ex. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detalhes</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detalhes de Desempenho</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detalhes das Camadas do Cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Mover imagem para o lixo</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Vencimento da proteção em</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NÃO PROTEGIDO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato de data incorreto. Use "AAAA-MM-DD HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>A proteção já venceu. Escolha uma data no futuro ou deixe-a vazia.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Mover Imagem</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Visão geral</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinos</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticação de Descoberta</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Usuário</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Os nomes de usuário devem ter entre 8 e 64 caracteres e\n              apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Senha</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Usuário Mútuo</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Senha Mútua</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informações disponíveis:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinos iSCSI não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool de Dados</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Criado</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Tamanho</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objetos</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Tamanho do objeto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unidade de distribuição</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Total de distribuições</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Pai</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefixo do nome do bloco</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Ordem</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantâneos</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Imagem</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Esta configuração substitui o valor global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Este é o valor global. Nenhum valor para esta opção foi definido para esta imagem.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' e \'@\' não são permitidos.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Não há pools de RBD disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Selecionar pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Usar pool de dados dedicado</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool de dados</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool dedicado que armazena os dados de objetos do RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Você precisa aumentar o tamanho.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avançado</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Distribuição</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unidade de distribuição</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Selecionar unidade de distribuição --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Este campo é obrigatório porque o total de distribuições foi definido!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>A unidade de distribuição é maior do que o tamanho do objeto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Total de distribuições</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Este campo é obrigatório porque a unidade de distribuição foi definida!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>O total de distribuições deve ser maior do que 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Você está prestes a fazer rollback</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Purgar Lixo</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tudo</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nome do pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurar Imagem</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Para restaurar</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>digite o novo nome da imagem e clique em</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Novo Nome</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Venceu em</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protegido até</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Não costuma ser necessário mudar o valor padrão destes parâmetros.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Configurações</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmar</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Configurações Avançadas</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN de Destino</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN tem padrão incorreto.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Por exemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Mais informações</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Este destino tem configurações avançadas modificadas.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portais</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Adicionar portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Esta imagem tem configurações modificadas.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Adicionar imagem</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticação ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciadores</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciador</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN do Cliente</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>O IQN do Iniciador precisa ser exclusivo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Os nomes de usuário devem ter entre 8 e 64 caracteres e\n                        apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>O iniciador pertence a um grupo. As imagens serão configuradas no grupo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nenhum item adicionado.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Adicionar iniciador</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupos</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Adicionar grupo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Lixo</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemas</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizando</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Pronto</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Editar modo de espelho do pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Clusters de peer devem ser removidos antes de desabilitar o espelho.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Editar} other {Adicionar} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nome do Cluster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>O nome do cluster não é válido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID do CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID do CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>O ID do CephX não é válido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Endereços do Monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Endereços delimitados por vírgula...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>O endereço de monitoria não é válido.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Chave do CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Chave codificada com base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>A chave do CephX deve ser codificada com base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Contadores de desempenho não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista de Daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contadores de Desempenho</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Carregando dados do compartimento...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>O valor não é válido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>O nome escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Proprietário</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Selecionar usuário --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Habilitado</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo de índice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regra de posicionamento</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marcador</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marcador máximo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versão</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versão master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Horário da modificação</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Grupo de zonas</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Cota do compartimento</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Tamanho máximo</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Ilimitado</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Máximo de objetos</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nome de usuário</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Selecionar nome de usuário --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Gerar chave automaticamente</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Chave de acesso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Chave secreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nome completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Endereço de e-mail</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspenso</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Máximo de compartimentos</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subusuários</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Recursos</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Cota do usuário</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostrar</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Chaves</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Selecionar tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Permissão</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Selecionar permissão --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subusuário</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>O ID de subusuário escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>leitura, gravação</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>completo</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Chave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Gerar segredo automaticamente</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Carregando dados do usuário...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Não foi possível carregar os dados do usuário.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>O ID de usuário escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Este não é um endereço de e-mail válido.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>O endereço de e-mail escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Máx. de compartimentos</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Desabilitado</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizado</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Chave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Não há subusuários.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Não há chaves.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Não há recursos.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Tamanho ilimitado</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Tamanho máx.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objetos ilimitados</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Máx. de objetos</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>O valor inserido deve ser &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descrição...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Permissões</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Funções</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmar senha</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>A confirmação de senha não corresponde à senha.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>E-mail inválido.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Você está prestes a remover as permissões de "leitura/atualização de usuário" do seu próprio usuário.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Se você continuar, não poderá mais adicionar ou remover funções de nenhum usuário.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Deseja realmente continuar?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Ajuda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentação</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Sobre</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Configurações do Painel de Controle</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gerenciamento de usuários</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Usuário que efetuou login</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Efetuar logout</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributos (mapa OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadados não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadados</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contador de desempenho</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Gravações</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Leituras</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histograma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valores atuais</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Mín.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Máx.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origem</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Nível</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Pode ser atualizado em tempo de execução (editável)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tags</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valores de enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Consulte também</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status do Cluster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons do Gerenciador</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Gateways de Objetos</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Servidores de Metadados</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Gateways iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS do Cliente</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Throughput do Cliente</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Leitura/Gravação do Cliente</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Throughput de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Remoção</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Desempenho</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacidade Bruta</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PGs por OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status do PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacidade</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Posições</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Atual</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticação de descoberta atualizada</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Não há portais disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Não há imagens disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Não há imagens disponíveis. Adicione uma imagem ao destino.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Não há iniciadores disponíveis. Adicione um iniciador ao destino.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destino</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes de Leitura</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes de Gravação</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Op. de Leitura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Op. de Gravação</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Desde</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instância</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Andamento</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Modo de Edição</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Adicionar Peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Editar Peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Excluir Peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>Nº Local</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>Nº Remoto</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>espelhar peer</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Chave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Nivelamento profundo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Disposição em camadas</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Bloqueio exclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa de objetos (requer bloqueio exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Registro em diário (requer bloqueio exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NÃO PROTEGIDO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback de instantâneo do RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Fazer Rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Instantâneo do RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Excluído à(s)</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>estado</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versão</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>raiz</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons de standby</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Posição</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Atividade</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Uso</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Atualizado</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>É possível atualizar o valor em temo de execução.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemons/clientes não extraem este valor do\n      banco de dados de configuração do monitor. A configuração desta opção não é permitida por meio de \'ceph config\n      set ...\'. Essa opção deve ser configurada por meio do ceph.conf ou da\n      linha de comando.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>A opção entra em vigor apenas durante a inicialização do daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>A opção afeta apenas a criação do cluster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>A opção afeta apenas a criação do daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Serviço</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valor atual</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Editável</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Habilitar</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Desabilitar</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Reconectando, aguarde...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Endereço Público</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessões Abertas</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Não Entrada</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Os OSDs que já foram marcados como saída não serão remarcados como entrada ao serem iniciados</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Não Saída</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Os OSDs não serão automaticamente marcados como saída após o intervalo configurado</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Não Ativo</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Os OSDs não podem ser iniciados</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Não Inativo</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Os relatórios de falha de OSD estão sendo ignorados, portanto, os monitores não marcarão os OSDs como inativos</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pausar</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pausa leituras e gravações</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Sem Remoção</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Remoção desabilitada</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Sem Remoção Profunda</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Remoção Profunda desabilitada</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Sem Provisionamento</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Provisionamento de PGs suspenso</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Sem Recuperação</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Recuperação de PGs suspensa</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Classificação Bit a Bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usar classificação bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdirs Purgados</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDs converteram snapsets</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Exclusões de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Exclusões realizadas durante a recuperação, e não o emparelhamento</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite Físico do Registro de PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Atribui um limite físico ao tamanho do registro de PG</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flags OSD Atualizadas</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>saída</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>entrada</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>inativo</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marcar</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdido</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marcado como perdido</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Purgar</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>purgado</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>destruir</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>destruído</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>excluir</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PGs</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes de leitura</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes de gravação</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Op. de leitura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Op. de gravação</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Máx. de Provisionamentos</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Máx. Recuperação Ativo</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Máx. Recuperação Inicialização Única</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Suspensão de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Tarefa</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravidade</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Iniciado</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Usado</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Disp.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Limpar</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Em funcionamento</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Aviso</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Desconhecido</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>ativo</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>sem sistemas de arquivos</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>ativo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon ativo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>O serviço NFS Ganesha não está configurado.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transporte</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Usuário do CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Sistema de Arquivos do CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(herdado da configuração global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>herdado da configuração global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Selecionar que tipo de squash de ID de usuário será executado --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Não há daemons disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modo de Cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Tempo Mín. Expulsão</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Tempo Mín. Descarregamento</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Máx. de Bytes de Destino</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Máx. de Objetos de Destino</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nenhum aplicativo adicionado</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Limite de aplicativos atingido</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Um pool apenas pode ter até quatro definições de aplicativos.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caracteres permitidos: \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Tamanho máximo de 128 caracteres</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrar ou adicionar aplicativos</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Adicionar aplicativo</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>perfil de código de eliminação</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Tamanho da Réplica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Última Alteração</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Perfil Codificado para Eliminação</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Conjunto de Regras do Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartimento</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartimentos</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>usuário</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>usuários</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Escopo</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Leitura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Criar</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Função do Sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Atualizar usuário</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuar</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Você foi automaticamente desconectado porque suas funções foram alteradas.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Cada objeto é dividido em partes de pacotes de dados, cada uma armazenada em um OSD diferente.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcule os pacotes de codificação de cada objeto e armazene-os em diferentes OSDs.\n      O número de pacotes de codificação é também o número de OSDs que podem ficar inativos sem perda de dados.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>O plug-in jerasure é o mais genérico e flexível,\n          além de ser o padrão para pools codificados para eliminação do Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>A técnica mais flexível é reed_sol_van: ela é suficiente para definir k\n          e m. A técnica cauchy_good pode ser mais rápida, mas você precisa escolher o tamanho do pacote\n          com cuidado. Todos os reed_sol_r6_op, liberation, blaum_roth e liber8tion são equivalentes ao RAID6\n          no sentido de que só podem ser configurados com m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>A codificação será feita em pacotes de tamanho de bytes um de cada vez.\n          A escolha do tamanho do pacote certo é difícil.\n          A documentação do jerasure contém informações completas sobre este tópico.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Com o plug-in jerasure, quando um objeto codificado para eliminação é armazenado em\n          vários OSDs, a recuperação após a perda de um OSD requer a leitura de todos os outros.\n          Por exemplo, se o jerasure for configurado com k=8 e m=4, a perda de um OSD exigirá a leitura\n          dos outros onze para fazer o reparo.\n\n          O plug-in de código de eliminação lrc cria pacotes locais de paridade para conseguir recuperar usando\n          menos OSDs. Por exemplo, se o lrc for configurado com k=8, m=4 e l=4, ele criará\n          um pacote de paridade adicional para cada quatro OSDs. Quando um único OSD é perdido, ele pode ser\n          recuperado apenas com quatro OSDs, em vez de onze.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Agrupe os pacotes de codificação e dados em conjuntos de localidades com tamanho. Por exemplo,\n          no caso de k=4 e m=2, quando locality=3, dois grupos de três são criados. Cada conjunto pode\n          ser recuperado sem a leitura dos pacotes do outro conjunto.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>O tipo do compartimento de crush em que cada conjunto de pacotes definido\n          por l será armazenado. Por exemplo, se isso for definido como rack, cada grupo de pacotes l será\n          colocado em um rack diferente. Isso é usado para criar uma etapa da regra CRUSH, como a etapa de escolha do\n          rack. Se isso não for definido, esse tipo de agrupamento não será feito.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>O plug-in isa encapsula a biblioteca ISA. Ele apenas é executado em processadores Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>O plug-in ISA vem em dois formatos de Reed Solomon.\n          Se reed_sol_van for definido, ele será Vandermonde, se cauchy for definido, ele será Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>O plug-in shec encapsula a biblioteca múltipla SHEC.\n          Ele permite ao ceph recuperar dados com mais eficiência do que os códigos de Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>O número de pacotes de paridade, em que cada um inclui cada pacote de dados em sua\n          faixa de cálculo. O número é usado como estimador de durabilidade. Por exemplo, se c=2,\n          2 OSDs podem ficar inativos sem perda de dados.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>O nome do compartimento de crush usado para a primeira etapa da regra CRUSH.\n      Por exemplo, a etapa assumir o padrão.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Verifique se não há dois pacotes em um compartimento com o mesmo domínio de\n      falha. Por exemplo, se o domínio de falha for um host, não armazene dois pacotes no mesmo\n      host. Isso é usado para criar uma etapa da regra CRUSH, como a etapa de escolha do host folha.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restrinja o posicionamento a dispositivos de uma classe específica\n      (ex. ssd ou hdd), usando nomes de classe de dispositivo crush no mapa CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Defina o nome do diretório do qual o plug-in de código de eliminação é carregado.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Permite todas as operações</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Permite apenas as operações que não modificam o servidor</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Não permite operações de leitura ou gravação, mas permite qualquer outra operação</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Não permite leitura, gravação ou qualquer operação que modifica os atributos do arquivo ou o conteúdo do diretório</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Não permite nenhum tipo de acesso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Selecionar prioridade --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Baixa</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informações</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Últimos 5 minutos</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Últimos 15 minutos</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Últimos 30 minutos</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Última 1 hora (Padrão)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Últimas 3 horas</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Últimas 6 horas</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Últimas 12 horas</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Últimas 24 horas</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ontem</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hoje</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Até agora hoje</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Antes de ontem</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Últimos 2 dias</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Este dia na semana passada</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Semana anterior</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Esta semana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Até agora nesta semana</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Últimos 7 dias</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Mês anterior</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Este mês</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Até agora neste mês</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Últimos 30 dias</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Últimos 90 dias</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Últimos 6 meses</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Último ano</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Ano anterior</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Este ano</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Até agora neste ano</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Últimos 2 anos</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Últimos 5 anos</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nenhum item selecionado.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Desmarcar item para selecionar novamente</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Limite de seleção atingido</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tags de filtro</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Adicionar selo</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Não há itens disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clonar</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copiar</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Remoção Profunda</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Destruir</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Nivelar</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marcar como Inativo</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marcar como Entrada</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marcar como Perdido</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marcar como Saída</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renomear</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurar</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Mover para Lixo</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Cancelar proteção</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Excluído</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonado</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiado</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Nivelado</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Purgado</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restaurado</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback feito</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sim</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Não</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualidade do Serviço</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite de BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>O limite de bytes por segundo de E/S desejado.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite de IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>O limite de operações por segundo de E/S desejado.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite de BPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>O limite de bytes por segundo de leitura desejado.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite de IOPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>O limite de operações por segundo de leitura desejado.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite de BPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>O limite de bytes por segundo de gravação desejado.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite de IOPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>O limite de operações por segundo de gravação desejado.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Intermitência de BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>O limite de bytes de E/S de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Intermitência de IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>O limite de operações de E/S de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Intermitência de BPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>O limite de bytes de leitura de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Intermitência de IOPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>O limite de operações de leitura de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Intermitência de BPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>O limite de bytes de gravação de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Intermitência de IOPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>O limite de operações de gravação de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Executando</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>executar</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Executado</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tarefa desconhecida</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Criando</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>criar</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Atualizando</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>atualizar</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Excluindo</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonando</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clonar</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copiando</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copiar</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Nivelando</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>nivelar</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Fazendo rollback</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Movendo</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>mover</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Movido</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Imagem não encontrada.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Restaurando</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurar</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Purgando</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>purgar</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>todos os pools</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossível desabilitar espelhamento porque ele contém um peer.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"+c4W":function(t,e,n){var a=n("711d"),r=n("4/ic"),i=n("9ggG"),s=n("9Nap");t.exports=function(t){return i(t)?a(s(t)):r(t)}},"+fVR":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{setExpandedRow(t){this.expandedRow=t}}},"+gVj":function(t,e,n){"use strict";n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return f})),n.d(e,"d",(function(){return i})),n.d(e,"e",(function(){return d})),n.d(e,"f",(function(){return g})),n.d(e,"g",(function(){return c})),n.d(e,"h",(function(){return h}));var a=n("8Y7J"),r=n("s7LF");class i{constructor(){this.validSubmit=new a.EventEmitter}onSubmit(){this.markAsTouchedAndDirty(this.formGroup),this.formGroup.valid&&this.validSubmit.emit(this.formGroup.value)}markAsTouchedAndDirty(t){t instanceof r.k?Object.keys(t.controls).forEach(e=>this.markAsTouchedAndDirty(t.controls[e])):t instanceof r.f?t.controls.forEach(t=>this.markAsTouchedAndDirty(t)):t instanceof r.i&&t.enabled&&(t.markAsDirty(),t.markAsTouched(),t.updateValueAndValidity())}}const s=function(){var t={Three:0,Four:1};return t[t.Three]="Three",t[t.Four]="Four",t}(),o=new a.InjectionToken("ng-bootstrap-form-validation custom error messages"),u=new a.InjectionToken("ng-bootstrap-form-validation module options");class d{constructor(t){this.bootstrapVersion=t,this.messages=()=>[]}get className(){switch(this.bootstrapVersion){case s.Three:return"help-block";case s.Four:return"invalid-feedback"}}}const l=[{error:"required",format:t=>`${t} is required`},{error:"pattern",format:t=>`${t} is invalid`},{error:"minlength",format:(t,e)=>`${t} must be at least ${e.requiredLength} characters`},{error:"maxlength",format:(t,e)=>`${t} must be no longer than ${e.requiredLength} characters`},{error:"requiredTrue",format:(t,e)=>`${t} is required`},{error:"email",format:(t,e)=>"Invalid email address"},{error:"max",format:(t,e)=>`${t} must be no greater than ${e.max}`},{error:"min",format:(t,e)=>`${t} must be no less than ${e.min}`}];let c=(()=>{class t{constructor(t){this.customErrorMessages=t,this.defaultErrors=l,this.errorMessages=t.reduce((t,e)=>t.concat(e),this.defaultErrors)}}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(o))},token:t,providedIn:"root"}),t})();class f{constructor(t,e){this.elRef=t,this.errorMessageService=e,this.customErrorMessages=[],this.validationDisabled=!1,this.messages=()=>this.getMessages()}get hasErrors(){return this.FormControlNames.some(t=>!t.valid&&t.dirty&&t.touched)&&!this.validationDisabled}get hasSuccess(){return!this.FormControlNames.some(t=>!t.valid)&&this.FormControlNames.some(t=>t.dirty&&t.touched)&&!this.validationDisabled}ngAfterContentInit(){this.messagesBlock&&(this.messagesBlock.messages=this.messages)}ngOnInit(){this.errorMessages=this.errorMessageService.errorMessages.concat(this.customErrorMessages).reverse()}get label(){const t=this.elRef.nativeElement.querySelector("label");return t&&t.textContent?t.textContent.trim():"This field"}get isDirtyAndTouched(){return this.FormControlNames.some(t=>t.dirty&&t.touched)}getMessages(){const t=[];if(!this.isDirtyAndTouched||this.validationDisabled)return t;const e=this.FormControlNames.map(t=>t.name);return this.FormControlNames.filter((t,n)=>!t.valid&&!!t.errors&&e.indexOf(t.name)===n).forEach(e=>{Object.keys(e.errors).forEach(n=>{const a=this.errorMessages.find(t=>t.error===n);a&&t.push(a.format(this.label,e.errors[n]))})}),t}}class h{constructor(t,e){this.parent=t,this.bootstrapVersion=e}get validClass(){return!!this.control&&this.bootstrapFour&&this.control.valid&&(this.control.touched||this.control.dirty)}get invalidClass(){return!!this.control&&this.bootstrapFour&&this.control.invalid&&this.control.touched&&this.control.dirty}get path(){return[...this.parent.path,this.formControlName]}get control(){return this.formDirective&&this.formDirective.getControl(this)}get formDirective(){return this.parent?this.parent.formDirective:null}get bootstrapFour(){return this.bootstrapVersion===s.Four}}class g{static forRoot(t={bootstrapVersion:s.Four}){return{ngModule:g,providers:[{provide:o,useValue:t.customErrorMessages||[],multi:!0},{provide:u,useValue:t.bootstrapVersion},c]}}}},"+iFO":function(t,e,n){var a=n("dTAl"),r=n("LcsW"),i=n("6sVZ");t.exports=function(t){return"function"!=typeof t.constructor||i(t)?{}:a(r(t))}},"+s0g":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^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],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,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:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"//9w":function(t,e,n){!function(t){"use strict";t.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".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žes",past:"maŋit %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ánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"/9aa":function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return"symbol"==typeof t||r(t)&&"[object Symbol]"==a(t)}},"/GqU":function(t,e,n){var a=n("RK3t"),r=n("HYAF");t.exports=function(t){return a(r(t))}},"/NlG":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=n("oxzT");class i{constructor(t){this.i18n=t,this.title="",this.bootstrapClass="",this.backAction=new a.EventEmitter,this.size="normal",this.showIcon=!0,this.showTitle=!0,this.icons=r.a}ngOnInit(){switch(this.type){case"warning":this.title=this.title||this.i18n("Warning"),this.typeIcon=this.typeIcon||r.a.warning,this.bootstrapClass=this.bootstrapClass||"warning";break;case"error":this.title=this.title||this.i18n("Error"),this.typeIcon=this.typeIcon||r.a.destroyCircle,this.bootstrapClass=this.bootstrapClass||"danger";break;case"info":this.title=this.title||this.i18n("Information"),this.typeIcon=this.typeIcon||r.a.infoCircle,this.bootstrapClass=this.bootstrapClass||"info";break;case"success":this.title=this.title||this.i18n("Success"),this.typeIcon=this.typeIcon||r.a.check,this.bootstrapClass=this.bootstrapClass||"success"}}}},"/X5v":function(t,e,n){!function(t){"use strict";t.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".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~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},"/b8u":function(t,e,n){var a=n("STAE");t.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},"/byt":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},0:function(t,e,n){t.exports=n("zUnb")},"0+/T":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("s7LF"),r=n("QFaf");n("sb0X");class i{constructor(t){this.modalRef=t,this.actionDescription="delete"}ngOnInit(){if(this.deletionForm=new r.a({confirmation:new a.i(!1,[a.B.requiredTrue])}),!this.submitAction&&!this.submitActionObservable)throw new Error("No submit action defined")}callSubmitAction(){this.submitActionObservable?this.submitActionObservable().subscribe(null,this.stopLoadingSpinner.bind(this),this.hideModal.bind(this)):this.submitAction()}hideModal(){this.modalRef.hide()}stopLoadingSpinner(){this.deletionForm.setErrors({cdSubmitButton:!0})}}},"03A+":function(t,e,n){var a=n("JTzB"),r=n("ExA7"),i=Object.prototype,s=i.hasOwnProperty,o=i.propertyIsEnumerable,u=a(function(){return arguments}())?a:function(t){return r(t)&&s.call(t,"callee")&&!o.call(t,"callee")};t.exports=u},"07d7":function(t,e,n){var a=n("AO7/"),r=n("busE"),i=n("sEFX");a||r(Object.prototype,"toString",i,{unsafe:!0})},"0BK2":function(t,e){t.exports={}},"0Cz8":function(t,e,n){var a=n("Xi7e"),r=n("ebwN"),i=n("e4Nc");t.exports=function(t,e){var n=this.__data__;if(n instanceof a){var s=n.__data__;if(!r||s.length<199)return s.push([t,e]),this.size=++n.size,this;n=this.__data__=new i(s)}return n.set(t,e),this.size=n.size,this}},"0Dky":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"0EUg":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("bHdf");function r(){return Object(a.a)(1)}},"0GbY":function(t,e,n){var a=n("Qo9l"),r=n("2oRo"),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?i(a[t])||i(r[t]):a[t]&&a[t][e]||r[t]&&r[t][e]}},"0eef":function(t,e,n){"use strict";var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!a.call({1:2},1);e.f=i?function(t){var e=r(this,t);return!!e&&e.enumerable}:a},"0mo+":function(t,e,n){!function(t){"use strict";var e={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};t.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".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:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(t){return t.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(t,e){return 12===t&&(t=0),"མཚན་མོ"===e&&t>=4||"ཉིན་གུང"===e&&t<5||"དགོང་དག"===e?t+12:t},meridiem:function(t,e,n){return t<4?"མཚན་མོ":t<10?"ཞོགས་ཀས":t<17?"ཉིན་གུང":t<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n("wd/R"))},"0rvr":function(t,e,n){var a=n("glrk"),r=n("O741");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(i){}return function(n,i){return a(n),r(i),e?t.call(n,i):n.__proto__=i,n}}():void 0)},"0tRk":function(t,e,n){!function(t){"use strict";t.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n("wd/R"))},"0ycA":function(t,e){t.exports=function(){return[]}},"1+5i":function(t,e,n){var a=n("w/wX"),r=n("sEf8"),i=n("mdPL"),s=i&&i.isSet,o=s?r(s):a;t.exports=o},"128B":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("Kqap"),r=n("BFxc"),i=n("xbPD"),s=n("mCNh");function o(t,e){return arguments.length>=2?function(n){return Object(s.a)(Object(a.a)(t,e),Object(r.a)(1),Object(i.a)(e))(n)}:function(e){return Object(s.a)(Object(a.a)((e,n,a)=>t(e,n,a+1)),Object(r.a)(1))(e)}}},"14R3":function(t,e){"undefined"!=typeof Element&&("function"!=typeof Element.prototype.matches&&(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.webkitMatchesSelector||function(t){for(var e=(this.document||this.ownerDocument).querySelectorAll(t),n=0;e[n]&&e[n]!==this;)++n;return Boolean(e[n])}),"function"!=typeof Element.prototype.closest&&(Element.prototype.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null}))},"14Sl":function(t,e,n){"use strict";n("rB9j");var a=n("busE"),r=n("0Dky"),i=n("tiKp"),s=n("kmMV"),o=n("kRJp"),u=i("species"),d=!r((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),l="$0"==="a".replace(/./,"$0"),c=i("replace"),f=!!/./[c]&&""===/./[c]("a","$0"),h=!r((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,c){var g=i(t),p=!r((function(){var e={};return e[g]=function(){return 7},7!=""[t](e)})),b=p&&!r((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[u]=function(){return n},n.flags="",n[g]=/./[g]),n.exec=function(){return e=!0,null},n[g](""),!e}));if(!p||!b||"replace"===t&&(!d||!l||f)||"split"===t&&!h){var m=/./[g],y=n(g,""[t],(function(t,e,n,a,r){return e.exec===s?p&&!r?{done:!0,value:m.call(e,n,a)}:{done:!0,value:t.call(n,e,a)}:{done:!1}}),{REPLACE_KEEPS_$0:l,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:f}),v=y[1];a(String.prototype,t,y[0]),a(RegExp.prototype,g,2==e?function(t,e){return v.call(t,this,e)}:function(t){return v.call(t,this)})}c&&o(RegExp.prototype[g],"sham",!0)}},"1E5z":function(t,e,n){var a=n("m/L8").f,r=n("UTVS"),i=n("tiKp")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},"1Ni5":function(t,e,n){"use strict";var a=n("s7LF"),r=n("LvDl"),i=n("LRne"),s=n("PqYM"),o=n("eIep");function u(t,e){return e?Object(o.a)(()=>t,e):Object(o.a)(()=>t)}var d=n("lJxs"),l=n("IzEk"),c=n("Fgil"),f=n("aXbf");function h(t){return null==t||0===t.length}n.d(e,"b",(function(){return h})),n.d(e,"a",(function(){return g}));class g{static email(t){return h(t.value)?null:a.B.email(t)}static ip(t=0){const e=/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i,n=/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;return a.B.pattern(4===t?e:6===t?n:new RegExp(e.source+"|"+n.source))}static number(t=!0){return a.B.pattern(t?/^-?[0-9]+$/i:/^[0-9]+$/i)}static decimalNumber(t=!0){return a.B.pattern(t?/^-?[0-9]+(.[0-9]+)?$/i:/^[0-9]+(.[0-9]+)?$/i)}static requiredIf(t,e){let n=!1;return a=>(!n&&a.parent&&(Object.keys(t).forEach(t=>{a.parent.get(t).valueChanges.subscribe(()=>{a.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(e=>a.parent&&a.parent.get(e).value===t[e])&&(r.isFunction(e)?e.call(e,a.value):h(a.value))?{required:!0}:null)}static composeIf(t,e){let n=!1;return r=>(!n&&r.parent&&(Object.keys(t).forEach(t=>{r.parent.get(t).valueChanges.subscribe(()=>{r.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(e=>r.parent&&r.parent.get(e).value===t[e])?a.B.compose(e)(r):null)}static custom(t,e){return n=>{const a=e.call(this,n.value);return a?{[t]:a}:null}}static validateIf(t,e,n,r=[],i=[]){n=n.concat(r),t.setValidators(t=>e.call(this)?a.B.compose(n)(t):r.length>0?a.B.compose(r)(t):null),i.forEach(e=>{e.valueChanges.subscribe(()=>{t.updateValueAndValidity({emitEvent:!1})})})}static match(t,e){return n=>{const a=n.get(t),i=n.get(e);if(!a||!i)return null;if(a.value!==i.value)i.setErrors({match:!0});else if(i.hasError("match")){const t=i.errors;r.unset(t,"match"),i.setErrors(r.isEmpty(r.keys(t))?null:t)}return null}}static unique(t,e=null,n=500){return a=>a.pristine||h(a.value)?Object(i.a)(null):Object(s.a)(n).pipe(u(t.call(e,a.value)),Object(d.a)(t=>t?{notUnique:!0}:null),Object(l.a)(1))}static uuid(t=!1){const e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return n=>n.pristine&&n.untouched?null:t||n.value?e.test(n.value)?null:{invalidUuid:"This is not a valid UUID"}:null}static binaryMin(t){return e=>{const n=new f.a,a=(new f.a).toBytes(e.value);if(t<=a)return null;const r=new c.a(n).transform(t);return{binaryMin:t=>t("Size has to be at least {{value}} or more",{value:r})}}}static binaryMax(t){return e=>{const n=new f.a,a=n.toBytes(e.value);if(t>=a)return null;const r=new c.a(n).transform(t);return{binaryMax:t=>t("Size has to be at most {{value}} or less",{value:r})}}}static passwordPolicy(t,e,n){return a=>{if(a.pristine||""===a.value)return r.isFunction(n)&&n(!0,0),Object(i.a)(null);let o;return r.isFunction(e)&&(o=e()),Object(s.a)(500).pipe(u(r.invoke(t,"validatePassword",a.value,o)),Object(d.a)(t=>(r.isFunction(n)&&n(t.valid,t.credits,t.valuation),t.valid?null:{passwordPolicy:!0})),Object(l.a)(1))}}}},"1Y/n":function(t,e,n){var a=n("HAuM"),r=n("ewvW"),i=n("RK3t"),s=n("UMSQ"),o=function(t){return function(e,n,o,u){a(n);var d=r(e),l=i(d),c=s(d.length),f=t?c-1:0,h=t?-1:1;if(o<2)for(;;){if(f in l){u=l[f],f+=h;break}if(f+=h,t?f<0:c<=f)throw TypeError("Reduce of empty array with no initial value")}for(;t?f>=0:c>f;f+=h)f in l&&(u=n(u,l[f],f,d));return u}};t.exports={left:o(!1),right:o(!0)}},"1hJj":function(t,e,n){var a=n("e4Nc"),r=n("ftKO"),i=n("3A9y");function s(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new a;++e<n;)this.add(t[e])}s.prototype.add=s.prototype.push=r,s.prototype.has=i,t.exports=s},"1nQr":function(t,e,n){"use strict";var a=n("LvDl"),r=n("lJxs"),i=n("20UP");class s{constructor(t){this.pwdPolicyEnabled=t.pwd_policy_enabled,this.pwdPolicyMinLength=t.pwd_policy_min_length,this.pwdPolicyCheckLengthEnabled=t.pwd_policy_check_length_enabled,this.pwdPolicyCheckOldpwdEnabled=t.pwd_policy_check_oldpwd_enabled,this.pwdPolicyCheckUsernameEnabled=t.pwd_policy_check_username_enabled,this.pwdPolicyCheckExclusionListEnabled=t.pwd_policy_check_exclusion_list_enabled,this.pwdPolicyCheckRepetitiveCharsEnabled=t.pwd_policy_check_repetitive_chars_enabled,this.pwdPolicyCheckSequentialCharsEnabled=t.pwd_policy_check_sequential_chars_enabled,this.pwdPolicyCheckComplexityEnabled=t.pwd_policy_check_complexity_enabled}}var o=n("8Y7J"),u=n("GiVz");n.d(e,"a",(function(){return d}));let d=(()=>{class t{constructor(t,e){this.i18n=t,this.settingsService=e}getHelpText(){return this.settingsService.getStandardSettings().pipe(Object(r.a)(t=>{const e=new s(t);let n=[];if(e.pwdPolicyEnabled){n.push(this.i18n("Required rules for passwords:"));const t={pwdPolicyCheckLengthEnabled:this.i18n("Must contain at least {{length}} characters",{length:e.pwdPolicyMinLength}),pwdPolicyCheckOldpwdEnabled:this.i18n("Must not be the same as the previous one"),pwdPolicyCheckUsernameEnabled:this.i18n("Cannot contain the username"),pwdPolicyCheckExclusionListEnabled:this.i18n("Cannot contain any configured keyword"),pwdPolicyCheckRepetitiveCharsEnabled:this.i18n('Cannot contain any repetitive characters e.g. "aaa"'),pwdPolicyCheckSequentialCharsEnabled:this.i18n('Cannot contain any sequential characters e.g. "abc"'),pwdPolicyCheckComplexityEnabled:this.i18n("Must consist of characters from the following groups:\n  * Alphabetic a-z, A-Z\n  * Numbers 0-9\n  * Special chars: !\"#$%& '()*+,-./:;<=>?@[\\]^_`{{|}}~\n  * Any other characters (signs)")};n=n.concat(a.keys(t).filter(t=>a.get(e,t)).map(e=>"- "+a.get(t,e)))}return n.join("\n")}))}mapCreditsToCssClass(t){let e="very-strong";return t<10?e="too-weak":t<15?e="weak":t<20?e="ok":t<25&&(e="strong"),e}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t(o["ɵɵinject"](u.a),o["ɵɵinject"](i.a))},token:t,providedIn:"root"}),t})()},"1rYy":function(t,e,n){!function(t){"use strict";t.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".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:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(t){return/^(ցերեկվա|երեկոյան)$/.test(t)},meridiem:function(t){return t<4?"գիշերվա":t<12?"առավոտվա":t<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-ին":t+"-րդ";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},"1xZ4":function(t,e,n){!function(t){"use strict";t.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_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ç_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à 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í %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|è|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"è";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})}(n("wd/R"))},"20UP":function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("LvDl"),r=n("lJxs"),i=n("8Y7J"),s=n("IheW"),o=n("pL04");let u=(()=>{class t{constructor(t){this.http=t,this.settings={}}getValues(t){return a.isArray(t)&&(t=t.join(",")),this.http.get(`api/settings?names=${t}`).pipe(Object(r.a)(t=>{const e={};return a.forEach(t,t=>{a.set(e,t.name,t.value)}),e}))}ifSettingConfigured(t,e,n){const a=this.settings[t];void 0===a?this.http.get(t).subscribe(a=>{this.settings[t]=this.getSettingsValue(a),this.ifSettingConfigured(t,e,n)},e=>{401!==e.status&&(this.settings[t]="")}):""!==a?e(a):n&&n()}disableSetting(t){this.settings[t]=""}getSettingsValue(t){return t.value||t.instance||""}validateGrafanaDashboardUrl(t){return this.http.get(`api/grafana/validation/${t}`)}getStandardSettings(){return this.http.get("ui-api/standard_settings")}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](s.c))},token:t,providedIn:o.a}),t})()},"25BL":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("DqMs"),i=n("/NlG"),s=n("GiVz"),o=n("SVse"),u=n("FE24"),d=n("z/SZ"),l=n("GS7A"),c=n("s7LF"),f=n("w9WL"),h=a["ɵcrt"]({encapsulation:2,styles:[".ngx-datatable{display:block;overflow:hidden;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:flex;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:flex;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:flex}.ngx-datatable .datatable-footer{display:block;width:100%;overflow:auto}.ngx-datatable .datatable-footer .datatable-footer-inner{display:flex;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}"],data:{}});function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"datatable-header",[["class","datatable-header"]],[[4,"height",null],[4,"width",null]],[[null,"sort"],[null,"resize"],[null,"reorder"],[null,"select"],[null,"columnContextmenu"]],(function(t,e,n){var a=!0,r=t.component;return"sort"===e&&(a=!1!==r.onColumnSort(n)&&a),"resize"===e&&(a=!1!==r.onColumnResize(n)&&a),"reorder"===e&&(a=!1!==r.onColumnReorder(n)&&a),"select"===e&&(a=!1!==r.onHeaderSelect(n)&&a),"columnContextmenu"===e&&(a=!1!==r.onColumnContextmenu(n)&&a),a}),x,m)),a["ɵdid"](1,180224,[[2,4]],0,f.i,[a.ChangeDetectorRef],{sortAscendingIcon:[0,"sortAscendingIcon"],sortDescendingIcon:[1,"sortDescendingIcon"],scrollbarH:[2,"scrollbarH"],dealsWithGroup:[3,"dealsWithGroup"],targetMarkerTemplate:[4,"targetMarkerTemplate"],innerWidth:[5,"innerWidth"],sorts:[6,"sorts"],sortType:[7,"sortType"],allRowsSelected:[8,"allRowsSelected"],selectionType:[9,"selectionType"],reorderable:[10,"reorderable"],headerHeight:[11,"headerHeight"],columns:[12,"columns"],offsetX:[13,"offsetX"]},{sort:"sort",reorder:"reorder",resize:"resize",select:"select",columnContextmenu:"columnContextmenu"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,1,[n.cssClasses.sortAscending,n.cssClasses.sortDescending,n.scrollbarH,void 0!==n.groupedRows,n.targetMarkerTemplate,n._innerWidth,n.sorts,n.sortType,n.allRowsSelected,n.selectionType,n.reorderable,n.headerHeight,n._internalColumns,a["ɵunv"](e,1,13,a["ɵnov"](e,2).transform(n._offsetX))])}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).headerHeight,a["ɵnov"](e,1).headerWidth)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-footer",[["class","datatable-footer"]],null,[[null,"page"]],(function(t,e,n){var a=!0;return"page"===e&&(a=!1!==t.component.onFooterPage(n)&&a),a}),Nt,_t)),a["ɵdid"](1,49152,null,0,f.f,[],{footerHeight:[0,"footerHeight"],rowCount:[1,"rowCount"],pageSize:[2,"pageSize"],offset:[3,"offset"],pagerLeftArrowIcon:[4,"pagerLeftArrowIcon"],pagerRightArrowIcon:[5,"pagerRightArrowIcon"],pagerPreviousIcon:[6,"pagerPreviousIcon"],pagerNextIcon:[7,"pagerNextIcon"],totalMessage:[8,"totalMessage"],footerTemplate:[9,"footerTemplate"],selectedCount:[10,"selectedCount"],selectedMessage:[11,"selectedMessage"]},{page:"page"})],(function(t,e){var n=e.component;t(e,1,1,[n.footerHeight,n.rowCount,n.pageSize,n.offset,n.cssClasses.pagerLeftArrow,n.cssClasses.pagerRightArrow,n.cssClasses.pagerPrevious,n.cssClasses.pagerNext,n.messages.totalMessage,n.footer,n.selected.length,!!n.selectionType&&n.messages.selectedMessage])}),null)}function b(t){return a["ɵvid"](2,[a["ɵqud"](671088640,1,{bodyComponent:0}),a["ɵqud"](671088640,2,{headerComponent:0}),(t()(),a["ɵeld"](2,0,null,null,8,"div",[["visibilityObserver",""]],[[2,"visible",null]],[[null,"visible"]],(function(t,e,n){var a=!0;return"visible"===e&&(a=!1!==t.component.recalculate()&&a),a}),null,null)),a["ɵdid"](3,212992,null,0,f.B,[a.ElementRef,a.NgZone],null,{visible:"visible"}),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](6,0,null,null,2,"datatable-body",[["class","datatable-body"]],[[4,"width",null],[4,"height",null]],[[null,"page"],[null,"activate"],[null,"rowContextmenu"],[null,"select"],[null,"scroll"],[null,"treeAction"]],(function(t,e,n){var a=!0,r=t.component;return"page"===e&&(a=!1!==r.onBodyPage(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),"rowContextmenu"===e&&(a=!1!==r.onRowContextmenu(n)&&a),"select"===e&&(a=!1!==r.onBodySelect(n)&&a),"scroll"===e&&(a=!1!==r.onBodyScroll(n)&&a),"treeAction"===e&&(a=!1!==r.onTreeAction(n)&&a),a}),F,R)),a["ɵdid"](7,245760,[[1,4]],0,f.c,[a.ChangeDetectorRef],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],loadingIndicator:[2,"loadingIndicator"],externalPaging:[3,"externalPaging"],rowHeight:[4,"rowHeight"],offsetX:[5,"offsetX"],emptyMessage:[6,"emptyMessage"],selectionType:[7,"selectionType"],selected:[8,"selected"],rowIdentity:[9,"rowIdentity"],rowDetail:[10,"rowDetail"],groupHeader:[11,"groupHeader"],selectCheck:[12,"selectCheck"],displayCheck:[13,"displayCheck"],trackByProp:[14,"trackByProp"],rowClass:[15,"rowClass"],groupedRows:[16,"groupedRows"],groupExpansionDefault:[17,"groupExpansionDefault"],innerWidth:[18,"innerWidth"],groupRowsBy:[19,"groupRowsBy"],virtualization:[20,"virtualization"],summaryRow:[21,"summaryRow"],summaryPosition:[22,"summaryPosition"],summaryHeight:[23,"summaryHeight"],pageSize:[24,"pageSize"],rows:[25,"rows"],columns:[26,"columns"],offset:[27,"offset"],rowCount:[28,"rowCount"],bodyHeight:[29,"bodyHeight"]},{scroll:"scroll",page:"page",activate:"activate",select:"select",rowContextmenu:"rowContextmenu",treeAction:"treeAction"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](10,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0),t(e,5,0,n.headerHeight),t(e,7,1,[n.scrollbarV,n.scrollbarH,n.loadingIndicator,n.externalPaging,n.rowHeight,a["ɵunv"](e,7,5,a["ɵnov"](e,8).transform(n._offsetX)),n.messages.emptyMessage,n.selectionType,n.selected,n.rowIdentity,n.rowDetail,n.groupHeader,n.selectCheck,n.displayCheck,n.trackByProp,n.rowClass,n.groupedRows,n.groupExpansionDefault,n._innerWidth,n.groupRowsBy,n.virtualization,n.summaryRow,n.summaryPosition,n.summaryHeight,n.pageSize,n._internalRows,n._internalColumns,n.offset,n.rowCount,n.bodyHeight]),t(e,10,0,n.footerHeight)}),(function(t,e){t(e,2,0,a["ɵnov"](e,3).isVisible),t(e,6,0,a["ɵnov"](e,7).bodyWidth,a["ɵnov"](e,7).bodyHeight)}))}var m=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"datatable-header-cell",[["class","datatable-header-cell"],["draggable",""],["long-press",""],["resizeable",""]],[[2,"resizeable",null],[2,"press",null],[2,"longpress",null],[4,"height","px"],[8,"className",0],[1,"title",0],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"width","px"]],[[null,"resize"],[null,"longPressStart"],[null,"longPressEnd"],[null,"sort"],[null,"select"],[null,"columnContextmenu"],[null,"mousedown"],[null,"contextmenu"]],(function(t,e,n){var r=!0,i=t.component;return"mousedown"===e&&(r=!1!==a["ɵnov"](t,2).onMousedown(n)&&r),"mousedown"===e&&(r=!1!==a["ɵnov"](t,3).onMouseDown(n)&&r),"contextmenu"===e&&(r=!1!==a["ɵnov"](t,4).onContextmenu(n)&&r),"resize"===e&&(r=!1!==i.onColumnResized(n,t.context.$implicit)&&r),"longPressStart"===e&&(r=!1!==i.onLongPressStart(n)&&r),"longPressEnd"===e&&(r=!1!==i.onLongPressEnd(n)&&r),"sort"===e&&(r=!1!==i.onSort(n)&&r),"select"===e&&(r=!1!==i.select.emit(n)&&r),"columnContextmenu"===e&&(r=!1!==i.columnContextmenu.emit(n)&&r),r}),C,_)),a["ɵdid"](1,671744,[[1,4]],0,f.s,[a.ElementRef],{dragEventTarget:[0,"dragEventTarget"],dragModel:[1,"dragModel"],dragX:[2,"dragX"],dragY:[3,"dragY"]},null),a["ɵdid"](2,4341760,null,0,f.x,[a.ElementRef,a.Renderer2],{resizeEnabled:[0,"resizeEnabled"]},{resize:"resize"}),a["ɵdid"](3,147456,null,0,f.t,[],{pressEnabled:[0,"pressEnabled"],pressModel:[1,"pressModel"]},{longPressStart:"longPressStart",longPressEnd:"longPressEnd"}),a["ɵdid"](4,49152,null,0,f.h,[a.ChangeDetectorRef],{sortType:[0,"sortType"],sortAscendingIcon:[1,"sortAscendingIcon"],sortDescendingIcon:[2,"sortDescendingIcon"],isTarget:[3,"isTarget"],targetMarkerTemplate:[4,"targetMarkerTemplate"],targetMarkerContext:[5,"targetMarkerContext"],allRowsSelected:[6,"allRowsSelected"],selectionType:[7,"selectionType"],column:[8,"column"],headerHeight:[9,"headerHeight"],sorts:[10,"sorts"]},{sort:"sort",select:"select",columnContextmenu:"columnContextmenu"})],(function(t,e){var n=e.component;t(e,1,0,n.dragEventTarget,e.context.$implicit,n.reorderable&&e.context.$implicit.draggable&&e.context.$implicit.dragging,!1),t(e,2,0,e.context.$implicit.resizeable),t(e,3,0,n.reorderable&&e.context.$implicit.draggable,e.context.$implicit),t(e,4,1,[n.sortType,n.sortAscendingIcon,n.sortDescendingIcon,e.context.$implicit.isTarget,n.targetMarkerTemplate,e.context.$implicit.targetMarkerContext,n.allRowsSelected,n.selectionType,e.context.$implicit,n.headerHeight,n.sorts])}),(function(t,e){t(e,0,0,a["ɵnov"](e,2).resizeEnabled,a["ɵnov"](e,3).press,a["ɵnov"](e,3).isLongPress,a["ɵnov"](e,4).headerHeight,a["ɵnov"](e,4).columnCssClasses,a["ɵnov"](e,4).name,a["ɵnov"](e,4).minWidth,a["ɵnov"](e,4).maxWidth,a["ɵnov"](e,4).width)}))}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[8,"className",0]],null,null,null,null)),a["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,2,0,n._styleByGroup[e.context.$implicit.type]),t(e,4,0,e.context.$implicit.columns,n.columnTrackingFn)}),(function(t,e){t(e,0,0,"datatable-row-"+e.context.$implicit.type)}))}function x(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","datatable-header-inner"],["orderable",""]],[[4,"width","px"]],[[null,"reorder"],[null,"targetChanged"]],(function(t,e,n){var a=!0,r=t.component;return"reorder"===e&&(a=!1!==r.onColumnReordered(n)&&a),"targetChanged"===e&&(a=!1!==r.onTargetChanged(n)&&a),a}),null,null)),a["ɵdid"](1,1196032,null,1,f.v,[a.KeyValueDiffers,o.DOCUMENT],null,{reorder:"reorder",targetChanged:"targetChanged"}),a["ɵqud"](603979776,1,{draggables:1}),(t()(),a["ɵand"](16777216,null,null,1,null,v)),a["ɵdid"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,4,0,n._columnsByPin,n.trackByGroups)}),(function(t,e){t(e,0,0,e.component._columnGroupWidths.total)}))}var _=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function T(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function O(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.targetMarkerContext,n.targetMarkerTemplate)}),null)}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==r.select.emit(!r.allRowsSelected)&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.allRowsSelected)}))}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","datatable-header-cell-wrapper"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"span",[["class","datatable-header-cell-label draggable"]],[[8,"innerHTML",1]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.name)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function N(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,I)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.headerTemplate)}),null)}function C(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","datatable-header-cell-template-wrap"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,O)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,S)),a["ɵdid"](6,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,N)),a["ɵdid"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](9,0,null,null,0,"span",[],[[8,"className",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a}),null,null))],(function(t,e){var n=e.component;t(e,2,0,n.isTarget),t(e,4,0,n.isCheckboxable),t(e,6,0,!n.column.headerTemplate),t(e,8,0,n.column.headerTemplate)}),(function(t,e){t(e,9,0,e.component.sortClass)}))}var R=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function A(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-progress",[],null,null,null,rt,at)),a["ɵdid"](1,49152,null,0,f.w,[],null,null)],null,null)}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,xt,yt)),a["ɵdid"](1,573440,null,0,f.m,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)}),null)}function E(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"treeAction"],[null,"activate"],[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0,i=t.component;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction(t.parent.context.$implicit)&&r),"activate"===e&&(r=!1!==a["ɵnov"](t.parent.parent.parent,2).onActivate(n,i.indexes.first+t.parent.context.index)&&r),r}),nt,X)),a["ɵdid"](1,311296,null,0,f.d,[a.KeyValueDiffers,[1,f.y],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],isSelected:[5,"isSelected"],rowIndex:[6,"rowIndex"],displayCheck:[7,"displayCheck"],treeStatus:[8,"treeStatus"],offsetX:[9,"offsetX"],rowHeight:[10,"rowHeight"]},{activate:"activate",treeAction:"treeAction"})],(function(t,e){var n=e.component;t(e,1,1,[n.columns,n.innerWidth,n.getRowExpanded(e.parent.context.$implicit),n.rowClass,e.parent.context.$implicit,a["ɵnov"](e.parent.parent.parent,2).getRowSelected(e.parent.context.$implicit),n.getRowIndex(e.parent.context.$implicit),n.displayCheck,e.parent.context.$implicit.treeStatus,n.offsetX,n.getRowHeight(e.parent.context.$implicit)])}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function L(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"activate"],[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),"activate"===e&&(r=!1!==a["ɵnov"](t.parent.parent.parent.parent,2).onActivate(n,t.context.index)&&r),r}),nt,X)),a["ɵdid"](1,311296,null,0,f.d,[a.KeyValueDiffers,[1,f.y],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],group:[5,"group"],isSelected:[6,"isSelected"],rowIndex:[7,"rowIndex"],offsetX:[8,"offsetX"],rowHeight:[9,"rowHeight"]},{activate:"activate"})],(function(t,e){var n=e.component;t(e,1,0,n.columns,n.innerWidth,n.getRowExpanded(e.context.$implicit),n.rowClass,e.context.$implicit,e.parent.parent.context.$implicit.value,a["ɵnov"](e.parent.parent.parent.parent,2).getRowSelected(e.context.$implicit),n.getRowIndex(e.context.$implicit),n.offsetX,n.getRowHeight(e.context.$implicit))}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function D(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,L)),a["ɵdid"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.parent.context.$implicit.value,e.component.rowTrackingFn)}),null)}function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"datatable-row-wrapper",[["class","datatable-row-wrapper"]],null,[[null,"rowContextmenu"],[null,"contextmenu"]],(function(t,e,n){var r=!0,i=t.component;return"contextmenu"===e&&(r=!1!==a["ɵnov"](t,3).onContextmenu(n)&&r),"rowContextmenu"===e&&(r=!1!==i.rowContextmenu.emit(n)&&r),r}),pt,ot)),a["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),a["ɵdid"](3,311296,null,0,f.k,[a.ChangeDetectorRef,a.KeyValueDiffers],{innerWidth:[0,"innerWidth"],rowDetail:[1,"rowDetail"],groupHeader:[2,"groupHeader"],offsetX:[3,"offsetX"],detailRowHeight:[4,"detailRowHeight"],row:[5,"row"],groupedRows:[6,"groupedRows"],rowIndex:[7,"rowIndex"],expanded:[8,"expanded"]},{rowContextmenu:"rowContextmenu"}),(t()(),a["ɵand"](16777216,null,0,1,null,E)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["groupedRowsTemplate",2]],0,0,null,D))],(function(t,e){var n=e.component;t(e,2,0,n.getRowsStyles(e.context.$implicit)),t(e,3,0,n.innerWidth,n.rowDetail,n.groupHeader,n.offsetX,n.getDetailRowHeight(e.context.$implicit[e.context.index],e.context.index),e.context.$implicit,n.groupedRows,n.getRowIndex(e.context.$implicit[e.context.index]),n.getRowExpanded(e.context.$implicit)),t(e,5,0,!n.groupedRows,a["ɵnov"](e,6))}),null)}function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,xt,yt)),a["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),a["ɵdid"](3,573440,null,0,f.m,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.getBottomSummaryRowStyles()),t(e,3,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)}),null)}function q(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"datatable-scroller",[["class","datatable-scroll"]],[[4,"height","px"],[4,"width","px"]],[[null,"scroll"]],(function(t,e,n){var a=!0;return"scroll"===e&&(a=!1!==t.component.onBodyScroll(n)&&a),a}),st,it)),a["ɵdid"](1,245760,[[1,4]],0,f.z,[a.NgZone,a.ElementRef,a.Renderer2],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],scrollHeight:[2,"scrollHeight"],scrollWidth:[3,"scrollWidth"]},{scroll:"scroll"}),(t()(),a["ɵand"](16777216,null,0,1,null,k)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,P)),a["ɵdid"](5,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,M)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.scrollbarV,n.scrollbarH,n.scrollHeight,null==n.columnGroupWidths?null:n.columnGroupWidths.total),t(e,3,0,n.summaryRow&&"top"===n.summaryPosition),t(e,5,0,n.temp,n.rowTrackingFn),t(e,7,0,n.summaryRow&&"bottom"===n.summaryPosition)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).scrollHeight,a["ɵnov"](e,1).scrollWidth)}))}function j(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","empty-row"]],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,0,0,e.component.emptyMessage)}))}function F(t){return a["ɵvid"](2,[a["ɵqud"](671088640,1,{scroller:0}),(t()(),a["ɵeld"](1,0,null,null,7,"datatable-selection",[],null,[[null,"select"],[null,"activate"]],(function(t,e,n){var a=!0,r=t.component;return"select"===e&&(a=!1!==r.select.emit(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),a}),mt,bt)),a["ɵdid"](2,49152,[["selector",4]],0,f.l,[],{rows:[0,"rows"],selected:[1,"selected"],selectEnabled:[2,"selectEnabled"],selectionType:[3,"selectionType"],rowIdentity:[4,"rowIdentity"],selectCheck:[5,"selectCheck"]},{activate:"activate",select:"select"}),(t()(),a["ɵand"](16777216,null,0,1,null,A)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,q)),a["ɵdid"](6,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,j)),a["ɵdid"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.rows,n.selected,n.selectEnabled,n.selectionType,n.rowIdentity,n.selectCheck),t(e,4,0,n.loadingIndicator),t(e,6,0,null==n.rows?null:n.rows.length),t(e,8,0,!(null!=n.rows&&n.rows.length||n.loadingIndicator))}),null)}var G=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function V(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCheckboxChange(n)&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.isSelected)}))}function z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-collapse"]],null,null,null,null,null))],null,null)}function B(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-up"]],null,null,null,null,null))],null,null)}function Y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-down"]],null,null,null,null,null))],null,null)}function H(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"button",[["class","datatable-tree-button"]],[[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onTreeAction()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,z)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,B)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Y)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"loading"===n.treeStatus),t(e,5,0,"collapsed"===n.treeStatus),t(e,7,0,"expanded"===n.treeStatus||"disabled"===n.treeStatus)}),(function(t,e){t(e,0,0,"disabled"===e.component.treeStatus)}))}function U(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function W(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,U)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](2,{cellContext:0}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,2,0,n.cellContext);t(e,1,0,a,n.column.treeToggleTemplate)}),null)}function K(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,H)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,W)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!n.column.treeToggleTemplate),t(e,4,0,n.column.treeToggleTemplate)}),null)}function $(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[],[[8,"title",0],[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.sanitizedValue,n.value)}))}function Z(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function J(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,[[1,3],["cellTemplate",2]],null,1,null,Z)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.cellTemplate)}),null)}function Q(t){return a["ɵvid"](2,[a["ɵqud"](402653184,1,{cellTemplate:0}),(t()(),a["ɵeld"](1,0,null,null,8,"div",[["class","datatable-body-cell-label"]],[[4,"margin-left","px"]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,V)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,K)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,$)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,J)),a["ɵdid"](9,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.column.checkboxable&&(!n.displayCheck||n.displayCheck(n.row,n.column,n.value))),t(e,5,0,n.column.isTreeColumn),t(e,7,0,!n.column.cellTemplate),t(e,9,0,n.column.cellTemplate)}),(function(t,e){var n=e.component;t(e,1,0,n.calcLeftMargin(n.column,n.row))}))}var X=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-cell",[["tabindex","-1"]],[[8,"className",0],[4,"width","px"],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"height",null]],[[null,"activate"],[null,"treeAction"],[null,"focus"],[null,"blur"],[null,"click"],[null,"dblclick"],[null,"keydown"]],(function(t,e,n){var r=!0,i=t.component;return"focus"===e&&(r=!1!==a["ɵnov"](t,1).onFocus()&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onBlur()&&r),"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick(n)&&r),"dblclick"===e&&(r=!1!==a["ɵnov"](t,1).onDblClick(n)&&r),"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"activate"===e&&(r=!1!==i.onActivate(n,t.context.index)&&r),"treeAction"===e&&(r=!1!==i.onTreeAction()&&r),r}),Q,G)),a["ɵdid"](1,442368,null,0,f.b,[a.ElementRef,a.ChangeDetectorRef],{displayCheck:[0,"displayCheck"],group:[1,"group"],rowHeight:[2,"rowHeight"],isSelected:[3,"isSelected"],expanded:[4,"expanded"],rowIndex:[5,"rowIndex"],column:[6,"column"],row:[7,"row"],treeStatus:[8,"treeStatus"]},{activate:"activate",treeAction:"treeAction"})],(function(t,e){var n=e.component;t(e,1,0,n.displayCheck,n.group,n.rowHeight,n.isSelected,n.expanded,n.rowIndex,e.context.$implicit,n.row,n.treeStatus)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).columnCssClasses,a["ɵnov"](e,1).width,a["ɵnov"](e,1).minWidth,a["ɵnov"](e,1).maxWidth,a["ɵnov"](e,1).height)}))}function et(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[8,"className",0]],null,null,null,null)),a["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,tt)),a["ɵdid"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,2,0,n._groupStyles[e.context.$implicit.type]),t(e,4,0,e.context.$implicit.columns,n.columnTrackingFn)}),(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"datatable-row-",e.context.$implicit.type," datatable-row-group"))}))}function nt(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,et)),a["ɵdid"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,1,0,n._columnsByPin,n.trackByGroups)}),null)}var at=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function rt(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","progress-linear"],["role","progressbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","container"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,0,"div",[["class","bar"]],null,null,null,null,null))],null,null)}var it=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function st(t){return a["ɵvid"](2,[a["ɵncd"](null,0)],null,null)}var ot=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function ut(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function dt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,ut)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.groupContext,n.groupHeader.template)}),null)}function lt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","datatable-group-header"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,dt)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.getGroupHeaderStyle()),t(e,4,0,n.groupHeader&&n.groupHeader.template)}),null)}function ct(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,null)}function ft(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function ht(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,ft)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.rowContext,n.rowDetail.template)}),null)}function gt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","datatable-row-detail"]],[[4,"height","px"]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ht)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.rowDetail&&n.rowDetail.template)}),(function(t,e){t(e,0,0,e.component.detailRowHeight)}))}function pt(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,lt)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ct)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,gt)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.groupHeader&&n.groupHeader.template),t(e,3,0,n.groupHeader&&n.groupHeader.template&&n.expanded||!n.groupHeader||!n.groupHeader.template),t(e,5,0,n.rowDetail&&n.rowDetail.template&&n.expanded)}),null)}var bt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function mt(t){return a["ɵvid"](2,[a["ɵncd"](null,0)],null,null)}var yt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function vt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),r}),nt,X)),a["ɵdid"](1,311296,null,0,f.d,[a.KeyValueDiffers,[1,f.y],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],row:[2,"row"],rowIndex:[3,"rowIndex"],offsetX:[4,"offsetX"],rowHeight:[5,"rowHeight"]},null)],(function(t,e){var n=e.component;t(e,1,0,n._internalColumns,n.innerWidth,n.summaryRow,-1,n.offsetX,n.rowHeight)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function xt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,vt)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.summaryRow&&n._internalColumns)}),null)}var _t=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Tt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function Ot(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,Tt)),a["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](2,{rowCount:0,pageSize:1,selectedCount:2,curPage:3,offset:4}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,2,0,n.rowCount,n.pageSize,n.selectedCount,n.curPage,n.offset);t(e,1,0,a,n.footerTemplate.template)}),null)}function wt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "," / "]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.selectedCount?null:n.selectedCount.toLocaleString(),n.selectedMessage)}))}function St(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,wt)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](3,null,[" "," "," "]))],(function(t,e){t(e,2,0,e.component.selectedMessage)}),(function(t,e){var n=e.component;t(e,3,0,null==n.rowCount?null:n.rowCount.toLocaleString(),n.totalMessage)}))}function It(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.page.emit(n)&&a),a}),At,Ct)),a["ɵdid"](1,49152,null,0,f.j,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],(function(t,e){var n=e.component;t(e,1,0,n.pagerLeftArrowIcon,n.pagerRightArrowIcon,n.pagerPreviousIcon,n.pagerNextIcon,n.pageSize,n.rowCount,n.curPage)}),(function(t,e){t(e,0,0,!e.component.isVisible)}))}function Nt(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","datatable-footer-inner"]],[[4,"height","px"]],null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](3,{"selected-count":0}),(t()(),a["ɵand"](16777216,null,null,1,null,Ot)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,St)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,It)),a["ɵdid"](9,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=t(e,3,0,n.selectedMessage);t(e,2,0,"datatable-footer-inner",a),t(e,5,0,n.footerTemplate),t(e,7,0,!n.footerTemplate),t(e,9,0,!n.footerTemplate)}),(function(t,e){t(e,0,0,e.component.footerHeight)}))}var Ct=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Rt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[["class","pages"],["role","button"]],[[1,"aria-label",0],[2,"active",null]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"a",[["href","javascript:void(0)"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(t.context.$implicit.number)&&a),a}),null,null)),(t()(),a["ɵted"](2,null,[" "," "]))],null,(function(t,e){t(e,0,0,"page "+e.context.$implicit.number,e.context.$implicit.number===e.component.page),t(e,2,0,e.context.$implicit.text)}))}function At(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,14,"ul",[["class","pager"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"a",[["aria-label","go to first page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(1)&&a),a}),null,null)),(t()(),a["ɵeld"](3,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](4,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"a",[["aria-label","go to previous page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.prevPage()&&a),a}),null,null)),(t()(),a["ɵeld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Rt)),a["ɵdid"](8,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](9,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](10,0,null,null,1,"a",[["aria-label","go to next page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.nextPage()&&a),a}),null,null)),(t()(),a["ɵeld"](11,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](12,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](13,0,null,null,1,"a",[["aria-label","go to last page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectPage(r.totalPages)&&a),a}),null,null)),(t()(),a["ɵeld"](14,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],(function(t,e){t(e,8,0,e.component.pages)}),(function(t,e){var n=e.component;t(e,1,0,!n.canPrevious()),t(e,3,0,a["ɵinlineInterpolate"](1,"",n.pagerPreviousIcon,"")),t(e,4,0,!n.canPrevious()),t(e,6,0,a["ɵinlineInterpolate"](1,"",n.pagerLeftArrowIcon,"")),t(e,9,0,!n.canNext()),t(e,11,0,a["ɵinlineInterpolate"](1,"",n.pagerRightArrowIcon,"")),t(e,12,0,!n.canNext()),t(e,14,0,a["ɵinlineInterpolate"](1,"",n.pagerNextIcon,""))}))}var kt=n("JxMD"),Et=n("dgut"),Lt=n("Fgil"),Dt=n("iInd"),Pt=n("4DD9"),Mt=n("yT6U"),qt=n("TJUb"),jt=n("efK2");n("uIqm"),n.d(e,"a",(function(){return Ft})),n.d(e,"b",(function(){return Oe}));var Ft=a["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.dataTables_wrapper[_ngcontent-%COMP%]{margin-bottom:25px}.dataTables_wrapper[_ngcontent-%COMP%]   .separator[_ngcontent-%COMP%]{height:30px;border-left:1px solid rgba(0,0,0,.09);padding-left:5px;margin-left:5px;display:inline-block;vertical-align:middle}.dataTables_wrapper[_ngcontent-%COMP%]   .widget-toolbar[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding:0 8px}.dataTables_wrapper[_ngcontent-%COMP%]   .widget-toolbar[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{padding-left:0}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{white-space:nowrap}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{cursor:default}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{width:100%;margin-bottom:0;padding-left:0;padding-right:0;cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]   input[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%]   .dataTables_length[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{line-height:25px;text-align:right}.dataTables_header[_ngcontent-%COMP%]{background-color:#f5f5f5;border:1px solid #d1d1d1;border-bottom:none;padding:5px;position:relative}.dataTables_header[_ngcontent-%COMP%]   .cd-datatable-actions[_ngcontent-%COMP%]{float:left}.dataTables_header[_ngcontent-%COMP%]     .table-filters{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px}.dataTables_header[_ngcontent-%COMP%]     .table-filters label{margin-right:4px}.dataTables_header[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{padding-left:8px}.dataTables_header[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px;padding-right:8px;width:40%;max-width:250px}.dataTables_header[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{height:30px}.dataTables_header[_ngcontent-%COMP%]   .input-group.dataTables_paginate[_ngcontent-%COMP%]{width:8%;min-width:85px;padding-right:8px}.dataTables_header[_ngcontent-%COMP%]   .filter-chips[_ngcontent-%COMP%]{float:right;padding:0 8px}  .cd-datatable{border:1px solid #d1d1d1;margin-bottom:0;max-width:none!important}  .cd-datatable .progress-linear{display:block;position:relative;width:100%;height:5px;padding:0;margin:0}  .cd-datatable .progress-linear .container{background-color:#afd9ee}  .cd-datatable .progress-linear .container .bar{left:0;height:100%;width:100%;position:absolute;overflow:hidden;background-color:#afd9ee}  .cd-datatable .progress-linear .container .bar:before{display:block;position:absolute;content:"";left:-200px;width:200px;height:100%;background-color:#2b99a8;animation:3s linear infinite progress-loading}  .cd-datatable .datatable-header{background-clip:padding-box;background-color:#f5f5f5;background-image:linear-gradient(to bottom,#f5f5f5 0,#ededed 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#fffafafa", endColorstr="#ffededed", GradientType=0)}  .cd-datatable .datatable-header .sort-asc,   .cd-datatable .datatable-header .sort-desc{color:#2b99a8}  .cd-datatable .datatable-header .datatable-header-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;text-align:left;font-weight:700}  .cd-datatable .datatable-header .datatable-header-cell .datatable-header-cell-label:after{font-family:ForkAwesome;font-weight:400;height:9px;left:10px;line-height:12px;position:relative;vertical-align:baseline;width:12px}  .cd-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-asc .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-desc .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell:first-child{border-left:none}  .cd-datatable .datatable-body{margin-bottom:-6px}  .cd-datatable .datatable-body .empty-row{background-color:#fff3cd;text-align:center;font-weight:700;font-style:italic;padding-top:5px;padding-bottom:5px}  .cd-datatable .datatable-body .datatable-body-row.clickable:hover .datatable-row-group{background-color:#eee;transition-property:background;transition-duration:.3s;transition-timing-function:linear}  .cd-datatable .datatable-body .datatable-body-row.datatable-row-even{background-color:#fff}  .cd-datatable .datatable-body .datatable-body-row.datatable-row-odd{background-color:#f5f5f5}  .cd-datatable .datatable-body .datatable-body-row.active,   .cd-datatable .datatable-body .datatable-body-row.active:hover{background-color:#d1ecf1}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell:first-child{border-left:none}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell .datatable-body-cell-label{display:block;height:100%}  .cd-datatable .datatable-body .datatable-row-detail{padding:20px;border-bottom:2px solid #d1d1d1}  .cd-datatable .datatable-body .expand-collapse-icon{display:block;height:100%;text-align:center}  .cd-datatable .datatable-body .expand-collapse-icon:hover{text-decoration:none}  .cd-datatable .datatable-body .expand-collapse-icon-right:before{font-family:ForkAwesome,sans-serif;font-size:1rem;color:#212529;line-height:1;content:""}  .cd-datatable .datatable-body .expand-collapse-icon-down:before{font-family:ForkAwesome,sans-serif;font-size:1rem;color:#212529;line-height:1;content:""}  .cd-datatable .datatable-footer .page-count,   .cd-datatable .datatable-footer .selected-count{font-style:italic;padding-left:5px}  .cd-datatable .cd-datatable-checkbox{text-align:center}@keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}']],data:{}});function Gt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,i.a,[s.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Failed to load data."]))],(function(t,e){t(e,1,0,"error")}),null)}function Vt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","cd-datatable-actions"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,null)}function zt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"a",[["class","dropdown-item"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onSelectFilter(t.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.column.name)}))}function Bt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-1"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,zt)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.columnFilters)}),null)}function Yt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),null)}function Ht(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"a",[["class","dropdown-item"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(r.onChangeFilter(r.selectedFilter,t.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵted"](2,null,[""," "])),(t()(),a["ɵand"](16777216,null,null,1,null,Yt)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,void 0!==n.selectedFilter.value&&n.selectedFilter.value.raw===e.context.$implicit.raw)}),(function(t,e){t(e,2,0,e.context.$implicit.formatted)}))}function Ut(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-1"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Ht)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.selectedFilter.options)}),null)}function Wt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,20,"div",[["class","btn-group widget-toolbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,16777216,null,null,11,"div",[["class","btn-group tc_filter_name"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,u.f,u.f,[]),a["ɵdid"](3,212992,null,0,u.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,d.a,u.f,u.a,l.b],null,null),(t()(),a["ɵeld"](4,0,null,null,6,"a",[["class","btn btn-light dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,5).onClick()&&r),r}),null,null)),a["ɵdid"](5,147456,null,0,u.g,[a.ChangeDetectorRef,u.c,a.ElementRef,a.Renderer2,u.f],null,null),(t()(),a["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](8,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](9,2),(t()(),a["ɵted"](10,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,Bt)),a["ɵdid"](12,16384,null,0,u.d,[u.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["ɵeld"](13,16777216,null,null,7,"div",[["class","btn-group tc_filter_option"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,u.f,u.f,[]),a["ɵdid"](15,212992,null,0,u.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,d.a,u.f,u.a,l.b],null,null),(t()(),a["ɵeld"](16,0,null,null,2,"a",[["class","btn btn-light dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[2,"disabled",null],[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,17).onClick()&&r),r}),null,null)),a["ɵdid"](17,147456,null,0,u.g,[a.ChangeDetectorRef,u.c,a.ElementRef,a.Renderer2,u.f],null,null),(t()(),a["ɵted"](18,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,Ut)),a["ɵdid"](20,16384,null,0,u.d,[u.f,a.ViewContainerRef,a.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,3,0);var a=t(e,9,0,n.icons.large,n.icons.filter);t(e,8,0,a),t(e,15,0)}),(function(t,e){var n=e.component;t(e,1,0,a["ɵnov"](e,3).dropup,a["ɵnov"](e,3).isOpen,a["ɵnov"](e,3).isOpen&&a["ɵnov"](e,3).isBs4),t(e,4,0,!0,a["ɵnov"](e,5).isDisabled,a["ɵnov"](e,5).isOpen),t(e,10,0,n.selectedFilter.column.name),t(e,13,0,a["ɵnov"](e,15).dropup,a["ɵnov"](e,15).isOpen,a["ɵnov"](e,15).isOpen&&a["ɵnov"](e,15).isBs4),t(e,16,0,0===n.selectedFilter.options.length,!0,a["ɵnov"](e,17).isDisabled,a["ɵnov"](e,17).isOpen),t(e,18,0,n.selectedFilter.value?n.selectedFilter.value.formatted:"Any")}))}function Kt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"div",[["class","input-group search"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"span",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,4,"span",[["class","input-group-text"]],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](5,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](6,1),(t()(),a["ɵeld"](7,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0,i=t.component;return"input"===e&&(r=!1!==a["ɵnov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,8)._compositionEnd(n.target.value)&&r),"ngModelChange"===e&&(r=!1!==(i.search=n)&&r),"keyup"===e&&(r=!1!==i.updateFilter()&&r),r}),null,null)),a["ɵdid"](8,16384,null,0,c.e,[a.Renderer2,a.ElementRef,[2,c.b]],null,null),a["ɵprd"](1024,null,c.p,(function(t){return[t]}),[c.e]),a["ɵdid"](10,671744,null,0,c.u,[[8,null],[8,null],[8,null],[6,c.p]],{model:[0,"model"]},{update:"ngModelChange"}),a["ɵprd"](2048,null,c.q,null,[c.u]),a["ɵdid"](12,16384,null,0,c.r,[[4,c.q]],null,null),(t()(),a["ɵeld"](13,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),a["ɵeld"](14,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onClearSearch()&&a),a}),null,null)),(t()(),a["ɵeld"](15,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],(function(t,e){var n=e.component,a=t(e,6,0,n.icons.search);t(e,5,0,a),t(e,10,0,n.search)}),(function(t,e){var n=e.component;t(e,7,0,a["ɵnov"](e,12).ngClassUntouched,a["ɵnov"](e,12).ngClassTouched,a["ɵnov"](e,12).ngClassPristine,a["ɵnov"](e,12).ngClassDirty,a["ɵnov"](e,12).ngClassValid,a["ɵnov"](e,12).ngClassInvalid,a["ɵnov"](e,12).ngClassPending),t(e,15,0,a["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,""))}))}function $t(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,0,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"name",0],[8,"id",0],[8,"checked",0]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.toggleColumn(n)&&a),a}),null,null)),(t()(),a["ɵeld"](3,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),a["ɵted"](4,null,["",""]))],null,(function(t,e){t(e,2,0,e.parent.context.$implicit.prop,e.parent.context.$implicit.prop,!e.parent.context.$implicit.isHidden),t(e,3,0,e.parent.context.$implicit.prop),t(e,4,0,e.parent.context.$implicit.name)}))}function Zt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,$t)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,2,0,""!==e.context.$implicit.name)}),null)}function Jt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-3"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Zt)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.columns)}),null)}function Qt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["class","widget-toolbar tc_refreshBtn"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshBtn()&&a),a}),null,null)),(t()(),a["ɵeld"](2,0,null,null,3,"i",[],[[2,"fa-spin",null]],null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](5,2)],(function(t,e){var n=e.component,a=t(e,5,0,n.icons.large,n.icons.refresh);t(e,4,0,a)}),(function(t,e){var n=e.component;t(e,2,0,n.updating||n.loadingIndicator)}))}function Xt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,23,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","cd-datatable-actions"]],null,null,null,null,null)),a["ɵncd"](null,1),a["ɵncd"](null,2),(t()(),a["ɵand"](16777216,null,null,1,null,Wt)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Kt)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](8,0,null,null,1,"div",[["class","input-group dataTables_paginate"]],null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,0,"input",[["class","form-control"],["max","9999"],["min","1"],["type","number"]],[[8,"value",0]],[[null,"click"],[null,"keyup"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.setLimit(n)&&a),"keyup"===e&&(a=!1!==r.setLimit(n)&&a),"blur"===e&&(a=!1!==r.setLimit(n)&&a),a}),null,null)),(t()(),a["ɵeld"](10,0,null,null,11,"div",[["class","widget-toolbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](11,16777216,null,null,10,"div",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,u.f,u.f,[]),a["ɵdid"](13,212992,null,0,u.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,d.a,u.f,u.a,l.b],{autoClose:[0,"autoClose"]},null),(t()(),a["ɵeld"](14,0,null,null,5,"a",[["class","btn btn-light dropdown-toggle tc_columnBtn"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,15).onClick()&&r),r}),null,null)),a["ɵdid"](15,147456,null,0,u.g,[a.ChangeDetectorRef,u.c,a.ElementRef,a.Renderer2,u.f],null,null),(t()(),a["ɵeld"](16,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](18,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](19,2),(t()(),a["ɵand"](16777216,null,null,1,null,Jt)),a["ɵdid"](21,16384,null,0,u.d,[u.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,Qt)),a["ɵdid"](23,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,0!==n.columnFilters.length),t(e,7,0,n.searchField),t(e,13,0,!1);var a=t(e,19,0,n.icons.large,n.icons.table);t(e,18,0,a),t(e,23,0,n.fetchData.observers.length>0)}),(function(t,e){t(e,9,0,e.component.userConfig.limit),t(e,11,0,a["ɵnov"](e,13).dropup,a["ɵnov"](e,13).isOpen,a["ɵnov"](e,13).isOpen&&a["ɵnov"](e,13).isBs4),t(e,14,0,!0,a["ɵnov"](e,15).isDisabled,a["ɵnov"](e,15).isOpen)}))}function te(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"span",[["class","badge badge-info mr-2"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[["class","mr-2"]],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",": ",""])),(t()(),a["ɵeld"](3,0,null,null,4,"a",[["class","badge-remove"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onChangeFilter(t.parent.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](7,1)],(function(t,e){var n=t(e,7,0,e.component.icons.destroy);t(e,6,0,n)}),(function(t,e){t(e,2,0,e.parent.context.$implicit.column.name,e.parent.context.$implicit.value.formatted)}))}function ee(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,te)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit.value)}),null)}function ne(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","filter-chips"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ee)),a["ɵdid"](3,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](4,0,null,null,2,"a",[["class","tc_clearSelections"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onClearFilters(),a=!1),a}),null,null)),(t()(),a["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Clear filters"]))],(function(t,e){t(e,3,0,e.component.columnFilters)}),null)}function ae(t){return a["ɵvid"](0,[a["ɵncd"](null,3),(t()(),a["ɵand"](0,null,null,0))],null,null)}function re(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "])),(t()(),a["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["selected"])),(t()(),a["ɵted"](-1,null,[" / "]))],null,(function(t,e){t(e,1,0,e.parent.context.selectedCount)}))}function ie(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "])),(t()(),a["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["found"])),(t()(),a["ɵted"](-1,null,[" / "]))],null,(function(t,e){t(e,1,0,e.parent.context.rowCount)}))}function se(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,re)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ie)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](5,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,[" "," "])),(t()(),a["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["total"])),(t()(),a["ɵeld"](9,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t.parent,26).onFooterPage(n)&&r),r}),At,Ct)),a["ɵdid"](10,49152,null,0,f.j,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],(function(t,e){var n=e.component;t(e,2,0,n.selectionType),t(e,4,0,e.context.rowCount!=(null==n.data?null:n.data.length)),t(e,10,0,n.paginationClasses.pagerLeftArrow,n.paginationClasses.pagerRightArrow,n.paginationClasses.pagerPrevious,n.paginationClasses.pagerNext,e.context.pageSize,e.context.rowCount,e.context.curPage)}),(function(t,e){var n=e.component;t(e,6,0,(null==n.data?null:n.data.length)||0),t(e,9,0,!(e.context.rowCount/e.context.pageSize>1))}))}function oe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.value)}))}function ue(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-sparkline",[],null,null,null,kt.b,kt.a)),a["ɵdid"](1,638976,null,0,Et.a,[Lt.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],(function(t,e){t(e,1,0,e.context.value,e.context.row.cdIsBinary)}),null)}function de(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),r}),null,null)),a["ɵdid"](1,671744,null,0,Dt.p,[Dt.m,Dt.a,o.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),a["ɵpad"](2,1),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){var n=e.context.row.cdParams,a=t(e,2,0,e.context.row.cdLink);t(e,1,0,n,a)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).target,a["ɵnov"](e,1).href),t(e,3,0,e.context.value)}))}function le(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"i",[],[[8,"hidden",0]],null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1),a["ɵppd"](4,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),(function(t,e){var n=!a["ɵunv"](e,0,0,t(e,4,0,a["ɵnov"](e.parent,0),e.context.value));t(e,0,0,n)}))}function ce(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," /s\n"]))],null,(function(t,e){t(e,0,0,e.context.value)}))}function fe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,2)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function he(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","text-muted italic"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["(",")"]))],null,(function(t,e){t(e,1,0,e.parent.context.row.cdExecuting)}))}function ge(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,fe)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](2,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,he)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.row.cdExecuting),t(e,4,0,e.context.row.cdExecuting)}),(function(t,e){t(e,2,0,e.context.value)}))}function pe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"",e.component.useCustomClass(e.context.value),"")),t(e,1,0,e.context.value)}))}function be(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[["class","badge"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,"badge",null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.map&&null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&null!=e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit]&&e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].class?e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].class:null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.class?e.parent.parent.context.column.customTemplateConfig.class:"badge-primary")}),(function(t,e){t(e,3,0,null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.map&&null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&null!=e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit]&&e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].value?e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].value:null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.prefix?e.parent.parent.context.column.customTemplateConfig.prefix+e.parent.context.$implicit:e.parent.context.$implicit)}))}function me(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" "]))],null,null)}function ye(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,be)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,me)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&e.parent.context.column.customTemplateConfig.map&&null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&null!=e.parent.context.column.customTemplateConfig.map[e.context.$implicit]&&e.parent.context.column.customTemplateConfig.map[e.context.$implicit].value?e.parent.context.column.customTemplateConfig.map[e.context.$implicit].value:null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&e.parent.context.column.customTemplateConfig.prefix?e.parent.context.column.customTemplateConfig.prefix+e.context.$implicit:e.context.$implicit),t(e,4,0,!e.context.last)}),null)}function ve(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,ye)),a["ɵdid"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵppd"](2,1),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,1),e.context.value));t(e,1,0,n)}),null)}function xe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""])),a["ɵppd"](2,2)],null,(function(t,e){var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,2),e.context.value,null==e.context.column?null:e.context.column.customTemplateConfig));t(e,1,0,n)}))}function _e(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[["data-toggle","tooltip"]],[[8,"title",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,["",""])),a["ɵppd"](2,3)],null,(function(t,e){t(e,0,0,e.context.value);var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,3),e.context.value,null==e.context.column?null:null==e.context.column.customTemplateConfig?null:e.context.column.customTemplateConfig.length,null==e.context.column?null:null==e.context.column.customTemplateConfig?null:e.context.column.customTemplateConfig.omission));t(e,1,0,n)}))}function Te(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"a",[["class","expand-collapse-icon tc_expand-collapse"],["href","javascript:void(0)"],["title","Expand/Collapse Row"]],[[2,"expand-collapse-icon-right",null],[2,"expand-collapse-icon-down",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleExpandRow(t.context.row,t.context.expanded)&&a),a}),null,null))],null,(function(t,e){t(e,0,0,!e.context.expanded,e.context.expanded)}))}function Oe(t){return a["ɵvid"](2,[a["ɵpid"](0,Pt.a,[]),a["ɵpid"](0,Mt.a,[]),a["ɵpid"](0,qt.a,[]),a["ɵpid"](0,jt.a,[]),a["ɵqud"](402653184,1,{table:0}),a["ɵqud"](402653184,2,{tableCellBoldTpl:0}),a["ɵqud"](402653184,3,{sparklineTpl:0}),a["ɵqud"](402653184,4,{routerLinkTpl:0}),a["ɵqud"](402653184,5,{checkIconTpl:0}),a["ɵqud"](402653184,6,{perSecondTpl:0}),a["ɵqud"](402653184,7,{executingTpl:0}),a["ɵqud"](402653184,8,{classAddingTpl:0}),a["ɵqud"](402653184,9,{badgeTpl:0}),a["ɵqud"](402653184,10,{mapTpl:0}),a["ɵqud"](402653184,11,{truncateTpl:0}),a["ɵqud"](402653184,12,{rowDetailsTpl:0}),(t()(),a["ɵand"](16777216,null,null,1,null,Gt)),a["ɵdid"](17,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](18,0,null,null,22,"div",[["class","dataTables_wrapper"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Vt)),a["ɵdid"](20,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Xt)),a["ɵdid"](22,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ne)),a["ɵdid"](24,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](25,0,null,null,15,"ngx-datatable",[["class","bootstrap cd-datatable ngx-datatable"]],[[2,"fixed-header",null],[2,"fixed-row",null],[2,"scroll-vertical",null],[2,"virtualized",null],[2,"scroll-horz",null],[2,"selectable",null],[2,"checkbox-selection",null],[2,"cell-selection",null],[2,"single-selection",null],[2,"multi-selection",null],[2,"multi-click-selection",null]],[[null,"select"],[null,"sort"],["window","resize"]],(function(t,e,n){var r=!0,i=t.component;return"window:resize"===e&&(r=!1!==a["ɵnov"](t,26).onWindowResize()&&r),"select"===e&&(r=!1!==i.onSelect(n)&&r),"sort"===e&&(r=!1!==i.changeSorting(n)&&r),r}),b,h)),a["ɵdid"](26,5750784,[[1,4],["table",4]],4,f.n,[[1,f.y],[1,f.r],a.ChangeDetectorRef,a.ElementRef,a.KeyValueDiffers,f.a,[2,"configuration"]],{rows:[0,"rows"],columns:[1,"columns"],selected:[2,"selected"],rowHeight:[3,"rowHeight"],columnMode:[4,"columnMode"],headerHeight:[5,"headerHeight"],footerHeight:[6,"footerHeight"],limit:[7,"limit"],loadingIndicator:[8,"loadingIndicator"],selectionType:[9,"selectionType"],sorts:[10,"sorts"],cssClasses:[11,"cssClasses"],rowClass:[12,"rowClass"],rowIdentity:[13,"rowIdentity"]},{select:"select",sort:"sort"}),a["ɵqud"](603979776,13,{columnTemplates:1}),a["ɵqud"](603979776,14,{rowDetail:0}),a["ɵqud"](603979776,15,{groupHeader:0}),a["ɵqud"](603979776,16,{footer:0}),(t()(),a["ɵeld"](31,0,[["detailRow",1]],null,4,"ngx-datatable-row-detail",[["rowHeight","auto"]],null,null,null,null,null)),a["ɵdid"](32,16384,[[14,4]],1,f.p,[],{rowHeight:[0,"rowHeight"]},null),a["ɵqud"](335544320,17,{_templateQuery:0}),(t()(),a["ɵand"](0,[[17,2]],null,1,null,ae)),a["ɵdid"](35,16384,null,0,f.q,[a.TemplateRef],null,null),(t()(),a["ɵeld"](36,0,null,null,4,"ngx-datatable-footer",[],null,null,null,null,null)),a["ɵdid"](37,16384,[[16,4]],1,f.o,[],null,null),a["ɵqud"](603979776,18,{_templateQuery:0}),(t()(),a["ɵand"](0,[[18,2]],null,1,null,se)),a["ɵdid"](40,16384,null,0,f.g,[a.TemplateRef],null,null),(t()(),a["ɵand"](0,[[2,2],["tableCellBoldTpl",2]],null,0,null,oe)),(t()(),a["ɵand"](0,[[3,2],["sparklineTpl",2]],null,0,null,ue)),(t()(),a["ɵand"](0,[[4,2],["routerLinkTpl",2]],null,0,null,de)),(t()(),a["ɵand"](0,[[5,2],["checkIconTpl",2]],null,0,null,le)),(t()(),a["ɵand"](0,[[6,2],["perSecondTpl",2]],null,0,null,ce)),(t()(),a["ɵand"](0,[[7,2],["executingTpl",2]],null,0,null,ge)),(t()(),a["ɵand"](0,[[8,2],["classAddingTpl",2]],null,0,null,pe)),(t()(),a["ɵand"](0,[[9,2],["badgeTpl",2]],null,0,null,ve)),(t()(),a["ɵand"](0,[[10,2],["mapTpl",2]],null,0,null,xe)),(t()(),a["ɵand"](0,[[11,2],["truncateTpl",2]],null,0,null,_e)),(t()(),a["ɵand"](0,[[12,2],["rowDetailsTpl",2]],null,1,null,Te)),a["ɵdid"](52,16384,null,0,f.e,[a.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,17,0,n.loadingError),t(e,20,0,n.onlyActionHeader),t(e,22,0,n.toolHeader),t(e,24,0,n.toolHeader&&n.columnFiltered),t(e,26,1,[n.rows,n.tableColumns,n.selection.selected,"auto",n.columnMode,n.header?"auto":0,n.footer?"auto":0,n.userConfig.limit>0?n.userConfig.limit:void 0,n.loadingIndicator,n.selectionType,n.userConfig.sorts,n.paginationClasses,n.getRowClass(),n.rowIdentity()]),t(e,32,0,"auto")}),(function(t,e){t(e,25,1,[a["ɵnov"](e,26).isFixedHeader,a["ɵnov"](e,26).isFixedRow,a["ɵnov"](e,26).isVertScroll,a["ɵnov"](e,26).isVirtualized,a["ɵnov"](e,26).isHorScroll,a["ɵnov"](e,26).isSelectable,a["ɵnov"](e,26).isCheckboxSelection,a["ɵnov"](e,26).isCellSelection,a["ɵnov"](e,26).isSingleSelection,a["ɵnov"](e,26).isMultiSelection,a["ɵnov"](e,26).isMultiClickSelection])}))}},"2EZI":function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("s7LF"),r=n("QFaf"),i=n("8Y7J");let s=(()=>{class t extends a.h{group(t,e=null){const n=super.group(t,e);return new r.a(n.controls,n.validator,n.asyncValidator)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},"2QA8":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random())()},"2Vo4":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("XNiG"),r=n("9ppp");class i extends a.a{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 r.a;return this._value}next(t){super.next(this._value=t)}}},"2ZVE":function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return d})),n.d(e,"e",(function(){return s})),n.d(e,"f",(function(){return i}));var a=n("8Y7J");class r{constructor(t){this.viewRef=t}set ngTransclude(t){this._ngTransclude=t,t&&this.viewRef.createEmbeddedView(t)}get ngTransclude(){return this._ngTransclude}}class i{constructor(){this.type="tabs",this.ariaLabel="Tabs"}}class s{constructor(t,e,n){this.renderer=e,this.elementRef=n,this.clazz=!0,this.tabs=[],this.classMap={},Object.assign(this,t)}get vertical(){return this._vertical}set vertical(t){this._vertical=t,this.setClassMap()}get justified(){return this._justified}set justified(t){this._justified=t,this.setClassMap()}get type(){return this._type}set type(t){this._type=t,this.setClassMap()}ngOnDestroy(){this.isDestroyed=!0}addTab(t){this.tabs.push(t),t.active=1===this.tabs.length&&void 0===t.active}removeTab(t,e={reselect:!0,emit:!0}){const n=this.tabs.indexOf(t);if(-1!==n&&!this.isDestroyed){if(e.reselect&&t.active&&this.hasAvailableTabs(n)){const t=this.getClosestTabIndex(n);this.tabs[t].active=!0}e.emit&&t.removed.emit(t),this.tabs.splice(n,1),t.elementRef.nativeElement.parentNode&&this.renderer.removeChild(t.elementRef.nativeElement.parentNode,t.elementRef.nativeElement)}}keyNavActions(t,e){const n=Array.from(this.elementRef.nativeElement.querySelectorAll(".nav-link"));if(13===t.keyCode||"Enter"===t.key||32===t.keyCode||"Space"===t.key)return t.preventDefault(),void n[e%n.length].click();if(39!==t.keyCode&&"RightArrow"!==t.key)if(37!==t.keyCode&&"LeftArrow"!==t.key)if(36!==t.keyCode&&"Home"!==t.key)if(35!==t.keyCode&&"End"!==t.key){if((46===t.keyCode||"Delete"===t.key)&&this.tabs[e].removable){if(this.removeTab(this.tabs[e]),n[e+1])return void n[(e+1)%n.length].focus();n[n.length-1]&&n[0].focus()}}else{let a;t.preventDefault();let r=1,i=e;do{i-r<0?(i=n.length-1,a=n[i],r=0):a=n[i-r],r++}while(a.classList.contains("disabled"));a.focus()}else{let e;t.preventDefault();let a=0;do{e=n[a%n.length],a++}while(e.classList.contains("disabled"));e.focus()}else{let t,a=1,r=e;do{r-a<0?(r=n.length-1,t=n[r],a=0):t=n[r-a],a++}while(t.classList.contains("disabled"));t.focus()}else{let t,a=1;do{t=n[(e+a)%n.length],a++}while(t.classList.contains("disabled"));t.focus()}}getClosestTabIndex(t){const e=this.tabs.length;if(!e)return-1;for(let n=1;n<=e;n+=1){const e=t-n,a=t+n;if(this.tabs[e]&&!this.tabs[e].disabled)return e;if(this.tabs[a]&&!this.tabs[a].disabled)return a}return-1}hasAvailableTabs(t){const e=this.tabs.length;if(!e)return!1;for(let n=0;n<e;n+=1)if(!this.tabs[n].disabled&&n!==t)return!0;return!1}setClassMap(){this.classMap={"nav-stacked":this.vertical,"flex-column":this.vertical,"nav-justified":this.justified,[`nav-${this.type}`]:!0}}}class o{constructor(t,e,n){this.elementRef=e,this.renderer=n,this.selectTab=new a.EventEmitter,this.deselect=new a.EventEmitter,this.removed=new a.EventEmitter,this.addClass=!0,this.role="tabpanel",this.tabset=t,this.tabset.addTab(this)}get customClass(){return this._customClass}set customClass(t){this.customClass&&this.customClass.split(" ").forEach(t=>{this.renderer.removeClass(this.elementRef.nativeElement,t)}),this._customClass=t?t.trim():null,this.customClass&&this.customClass.split(" ").forEach(t=>{this.renderer.addClass(this.elementRef.nativeElement,t)})}get active(){return this._active}set active(t){this._active!==t&&(this.disabled&&t||!t?this._active&&!t&&(this.deselect.emit(this),this._active=t):(this._active=t,this.selectTab.emit(this),this.tabset.tabs.forEach(t=>{t!==this&&(t.active=!1)})))}get ariaLabelledby(){return this.id?`${this.id}-link`:""}ngOnInit(){this.removable=this.removable}ngOnDestroy(){this.tabset.removeTab(this,{reselect:!1,emit:!1})}}class u{constructor(t,e){e.headingRef=t}}class d{static forRoot(){return{ngModule:d,providers:[i]}}}},"2ajD":function(t,e){t.exports=function(t){return t!=t}},"2fFW":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));let a=!1;const r={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else a&&console.log("RxJS: Back to a better error behavior. Thank you. <3");a=t},get useDeprecatedSynchronousErrorHandling(){return a}}},"2fjn":function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}(n("wd/R"))},"2gN3":function(t,e,n){var a=n("Kz5y");t.exports=a["__core-js_shared__"]},"2oRo":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof global&&global)||Function("return this")()},"2uy1":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("XNiG"),s=n("VRyK"),o=n("xgIS"),u=n("LRne"),d=n("3N8a");class l extends d.a{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,n=0){return null!==n&&n>0?super.requestAsyncId(t,e,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame(()=>t.flush(null))))}recycleAsyncId(t,e,n=0){if(null!==n&&n>0||null===n&&this.delay>0)return super.recycleAsyncId(t,e,n);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}}var c=n("IjjT");class f extends c.a{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let n,a=-1,r=e.length;t=t||e.shift();do{if(n=t.execute(t.state,t.delay))break}while(++a<r&&(t=e.shift()));if(this.active=!1,n){for(;++a<r&&(t=e.shift());)t.unsubscribe();throw n}}}const h=new f(l);function g(t,e){if(1!==t.nodeType)return[];const n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function p(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function b(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:e,overflowX:n,overflowY:a}=g(t);return/(auto|scroll|overlay)/.test(String(e)+String(a)+String(n))?t:b(p(t))}n.d(e,"a",(function(){return U}));const m="undefined"!=typeof window&&"undefined"!=typeof document,y=m&&!(!window.MSInputMethodContext||!document.documentMode),v=m&&!(!window.MSInputMethodContext||!/MSIE 10/.test(navigator.userAgent));function x(t){return 11===t?y:10===t?v:y||v}function _(t){if(!t)return document.documentElement;const e=x(10)?document.body:null;let n,a=t.offsetParent||null;for(;a===e&&t.nextElementSibling&&n!==t.nextElementSibling;)n=t.nextElementSibling,a=n.offsetParent;const r=a&&a.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(a.nodeName)&&"static"===g(a,"position")?_(a):a:n?n.ownerDocument.documentElement:document.documentElement}function T(t){return null!==t.parentNode?T(t.parentNode):t}function O(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;const n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?t:e,r=n?e:t,i=document.createRange();i.setStart(a,0),i.setEnd(r,0);const{commonAncestorContainer:s}=i;if(t!==s&&e!==s||a.contains(r))return function(t){const{nodeName:e}=t;return"BODY"!==e&&("HTML"===e||_(t.firstElementChild)===t)}(s)?s:_(s);const o=T(t);return o.host?O(o.host,e):O(t,T(e).host)}function w(t,e){const n="x"===e?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(t[`border${n}Width`])+parseFloat(t[`border${a}Width`])}function S(t,e,n,a){return Math.max(e[`offset${t}`],e[`scroll${t}`],n[`client${t}`],n[`offset${t}`],n[`scroll${t}`],x(10)?parseInt(n[`offset${t}`],10)+parseInt(a[`margin${"Height"===t?"Top":"Left"}`],10)+parseInt(a[`margin${"Height"===t?"Bottom":"Right"}`],10):0)}function I(t){const e=t.body,n=t.documentElement,a=x(10)&&getComputedStyle(n);return{height:S("Height",e,n,a),width:S("Width",e,n,a)}}function N(t,e="top"){const n="top"===e?"scrollTop":"scrollLeft",a=t.nodeName;if("BODY"===a||"HTML"===a){const e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}return t[n]}function C(t){return Object.assign({},t,{right:t.left+t.width,bottom:t.top+t.height})}function R(t){let e={};try{if(x(10)){e=t.getBoundingClientRect();const n=N(t,"top"),a=N(t,"left");e.top+=n,e.left+=a,e.bottom+=n,e.right+=a}else e=t.getBoundingClientRect()}catch(s){return}const n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},a="HTML"===t.nodeName?I(t.ownerDocument):{};let r=t.offsetWidth-(a.width||t.clientWidth||n.right-n.left),i=t.offsetHeight-(a.height||t.clientHeight||n.bottom-n.top);if(r||i){const e=g(t);r-=w(e,"x"),i-=w(e,"y"),n.width-=r,n.height-=i}return C(n)}function A(t,e,n=!1){const a=x(10),r="HTML"===e.nodeName,i=R(t),s=R(e),o=b(t),u=g(e),d=parseFloat(u.borderTopWidth),l=parseFloat(u.borderLeftWidth);n&&r&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));let c=C({top:i.top-s.top-d,left:i.left-s.left-l,width:i.width,height:i.height});if(c.marginTop=0,c.marginLeft=0,!a&&r){const t=parseFloat(u.marginTop),e=parseFloat(u.marginLeft);c.top-=d-t,c.bottom-=d-t,c.left-=l-e,c.right-=l-e,c.marginTop=t,c.marginLeft=e}return(a&&!n?e.contains(o):e===o&&"BODY"!==o.nodeName)&&(c=function(t,e,n=!1){const a=N(e,"top"),r=N(e,"left"),i=n?-1:1;return t.top+=a*i,t.bottom+=a*i,t.left+=r*i,t.right+=r*i,t}(c,e)),c}function k(t){if(!t||!t.parentElement||x())return document.documentElement;let e=t.parentElement;for(;e&&"none"===g(e,"transform");)e=e.parentElement;return e||document.documentElement}function E(t,e,n=0,a,r=!1){let i={top:0,left:0};const s=r?k(t):O(t,e);if("viewport"===a)i=function(t,e=!1){const n=t.ownerDocument.documentElement,a=A(t,n),r=Math.max(n.clientWidth,window.innerWidth||0),i=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:N(n),o=e?0:N(n,"left");return C({top:s-Number(a.top)+Number(a.marginTop),left:o-Number(a.left)+Number(a.marginLeft),width:r,height:i})}(s,r);else{let n;"scrollParent"===a?(n=b(p(e)),"BODY"===n.nodeName&&(n=t.ownerDocument.documentElement)):n="window"===a?t.ownerDocument.documentElement:a;const o=A(n,s,r);if("HTML"!==n.nodeName||function t(e){const n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===g(e,"position")||t(p(e)))}(s))i=o;else{const{height:e,width:n}=I(t.ownerDocument);i.top+=o.top-o.marginTop,i.bottom=Number(e)+Number(o.top),i.left+=o.left-o.marginLeft,i.right=Number(n)+Number(o.left)}}return i.left+=n,i.top+=n,i.right-=n,i.bottom-=n,i}function L({width:t,height:e}){return t*e}function D(t,e,n,a,r=["top","bottom","right","left"],i="viewport",s=0){if(-1===t.indexOf("auto"))return t;const o=E(n,a,s,i),u={top:{width:o.width,height:e.top-o.top},right:{width:o.right-e.right,height:o.height},bottom:{width:o.width,height:o.bottom-e.bottom},left:{width:e.left-o.left,height:o.height}},d=Object.keys(u).map(t=>Object.assign({key:t},u[t],{area:L(u[t])})).sort((t,e)=>e.area-t.area);let l=d.filter(({width:t,height:e})=>t>=n.clientWidth&&e>=n.clientHeight);l=l.filter(t=>r.some(e=>e===t.key));const c=l.length>0?l[0].key:d[0].key,f=t.split(" ")[1];return n.className=n.className.replace(/bs-tooltip-auto/g,`bs-tooltip-${c}`),c+(f?`-${f}`:"")}function P(t){const e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),a=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:Number(t.offsetWidth)+a,height:Number(t.offsetHeight)+n}}function M(t,e,n=null){return A(e,n?k(t):O(t,e),n)}function q(t,e,n){const a=n.split(" ")[0],r=P(t),i={width:r.width,height:r.height},s=-1!==["right","left"].indexOf(a),o=s?"top":"left",u=s?"left":"top",d=s?"height":"width",l=s?"width":"height";return i[o]=e[o]+e[d]/2-r[d]/2,i[u]=a===u?e[u]-r[l]:e[function(t){const e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,t=>e[t])}(u)],i}function j(t,e){return t&&t.modifiers&&t.modifiers[e]&&t.modifiers[e].enabled}function F(t,e,n){Object.keys(e).forEach(a=>{let r="";var i;-1!==["width","height","top","right","bottom","left"].indexOf(a)&&""!==(i=e[a])&&!isNaN(parseFloat(i))&&isFinite(i)&&(r="px"),n?n.setStyle(t,a,`${String(e[a])}${r}`):t.style[a]=String(e[a])+r})}function G(t){let e=t.offsets.target;const n=t.instance.target.querySelector(".arrow");if(!n)return t;const a=-1!==["left","right"].indexOf(t.placement),r=a?"height":"width",i=a?"Top":"Left",s=i.toLowerCase(),o=a?"left":"top",u=a?"bottom":"right",d=P(n)[r];t.offsets.host[u]-d<e[s]&&(e[s]-=e[s]-(t.offsets.host[u]-d)),Number(t.offsets.host[s])+Number(d)>e[u]&&(e[s]+=Number(t.offsets.host[s])+Number(d)-Number(e[u])),e=C(e);const l=Number(t.offsets.host[s])+Number(t.offsets.host[r]/2-d/2),c=g(t.instance.target),f=parseFloat(c[`margin${i}`]),h=parseFloat(c[`border${i}Width`]);let p=l-e[s]-f-h;return p=Math.max(Math.min(e[r]-d,p),0),t.offsets.arrow={[s]:Math.round(p),[o]:""},t.instance.arrow=n,t}function V(t){if(t.offsets.target=C(t.offsets.target),!j(t.options,"flip"))return t.offsets.target=Object.assign({},t.offsets.target,q(t.instance.target,t.offsets.host,t.placement)),t;const e=E(t.instance.target,t.instance.host,0,"viewport",!1);let n=t.placement.split(" ")[0],a=t.placement.split(" ")[1]||"";const r=D("auto",t.offsets.host,t.instance.target,t.instance.host,t.options.allowedPositions),i=[n,r];return i.forEach((r,s)=>{if(n!==r||i.length===s+1)return t;n=t.placement.split(" ")[0];const o="left"===n&&Math.floor(t.offsets.target.right)>Math.floor(t.offsets.host.left)||"right"===n&&Math.floor(t.offsets.target.left)<Math.floor(t.offsets.host.right)||"top"===n&&Math.floor(t.offsets.target.bottom)>Math.floor(t.offsets.host.top)||"bottom"===n&&Math.floor(t.offsets.target.top)<Math.floor(t.offsets.host.bottom),u=Math.floor(t.offsets.target.left)<Math.floor(e.left),d=Math.floor(t.offsets.target.right)>Math.floor(e.right),l=Math.floor(t.offsets.target.top)<Math.floor(e.top),c=Math.floor(t.offsets.target.bottom)>Math.floor(e.bottom),f="left"===n&&u||"right"===n&&d||"top"===n&&l||"bottom"===n&&c,h=-1!==["top","bottom"].indexOf(n),g=h&&"left"===a&&u||h&&"right"===a&&d||!h&&"left"===a&&l||!h&&"right"===a&&c;(o||f||g)&&((o||f)&&(n=i[s+1]),g&&(a=function(t){return"right"===t?"left":"left"===t?"right":t}(a)),t.placement=n+(a?` ${a}`:""),t.offsets.target=Object.assign({},t.offsets.target,q(t.instance.target,t.offsets.host,t.placement)))}),t}function z(t){if(!j(t.options,"preventOverflow"))return t;const e="transform",n=t.instance.target.style,{top:a,left:r,[e]:i}=n;n.top="",n.left="",n[e]="";const s=E(t.instance.target,t.instance.host,0,"scrollParent",!1);n.top=a,n.left=r,n[e]=i;const o={primary(e){let n=t.offsets.target[e];return t.offsets.target[e]<s[e]&&(n=Math.max(t.offsets.target[e],s[e])),{[e]:n}},secondary(e){const n="right"===e?"left":"top";let a=t.offsets.target[n];return t.offsets.target[e]>s[e]&&(a=Math.min(t.offsets.target[n],s[e]-("right"===e?t.offsets.target.width:t.offsets.target.height))),{[n]:a}}};let u;return["left","right","top","bottom"].forEach(e=>{u=-1!==["left","top"].indexOf(e)?"primary":"secondary",t.offsets.target=Object.assign({},t.offsets.target,o[u](e))}),t}function B(t){const e=t.placement,n=e.split(" ")[0],a=e.split(" ")[1];if(a){const{host:e,target:r}=t.offsets,i=-1!==["bottom","top"].indexOf(n),s=i?"left":"top",o=i?"width":"height";t.offsets.target=Object.assign({},r,{start:{[s]:e[s]},end:{[s]:e[s]+e[o]-r[o]}}[a])}return t}class Y{position(t,e,n=!0){return this.offset(t,e,!1)}offset(t,e,n=!0){return M(e,t)}positionElements(t,e,n,a,r){return[V,B,z,G].reduce((t,e)=>e(t),function(t,e,n,a){const r=M(t,e);n.match(/^(auto)*\s*(left|right|top|bottom)*$/)||n.match(/^(left|right|top|bottom)*\s*(start|end)*$/)||(n="auto");const i=!!n.match(/auto/g);let s=n.match(/auto\s(left|right|top|bottom)/)?n.split(" ")[1]||"auto":n;const o=q(t,r,s);return s=D(s,r,t,e,a?a.allowedPositions:void 0),{options:a,instance:{target:t,host:e,arrow:null},offsets:{target:o,host:r,arrow:null},positionFixed:!1,placement:s,placementAuto:i}}(e,t,n,r))}}const H=new Y;class U{constructor(t,e,n){this.update$$=new i.a,this.positionElements=new Map,this.isDisabled=!1,Object(r.isPlatformBrowser)(n)&&t.runOutsideAngular(()=>{this.triggerEvent$=Object(s.a)(Object(o.a)(window,"scroll",{passive:!0}),Object(o.a)(window,"resize",{passive:!0}),Object(u.a)(0,h),this.update$$),this.triggerEvent$.subscribe(()=>{this.isDisabled||this.positionElements.forEach(t=>{!function(t,e,n,a,r,i){const s=H.positionElements(t,e,n,a,r),o=function(t){return{width:t.offsets.target.width,height:t.offsets.target.height,left:Math.floor(t.offsets.target.left),top:Math.round(t.offsets.target.top),bottom:Math.round(t.offsets.target.bottom),right:Math.floor(t.offsets.target.right)}}(s);F(e,{"will-change":"transform",top:"0px",left:"0px",transform:`translate3d(${o.left}px, ${o.top}px, 0px)`},i),s.instance.arrow&&F(s.instance.arrow,s.offsets.arrow,i),function(t,e){const n=t.instance.target;let a=n.className;t.placementAuto&&(a=a.replace(/bs-popover-auto/g,`bs-popover-${t.placement}`),a=a.replace(/bs-tooltip-auto/g,`bs-tooltip-${t.placement}`),a=a.replace(/\sauto/g,` ${t.placement}`),-1!==a.indexOf("popover")&&-1===a.indexOf("popover-auto")&&(a+=" popover-auto"),-1!==a.indexOf("tooltip")&&-1===a.indexOf("tooltip-auto")&&(a+=" tooltip-auto")),a=a.replace(/left|right|top|bottom/g,`${t.placement.split(" ")[0]}`),e?e.setAttribute(n,"class",a):n.className=a}(s,i)}(W(t.target),W(t.element),t.attachment,t.appendToBody,this.options,e.createRenderer(null,null))})})})}position(t){this.addPositionElement(t)}get event$(){return this.triggerEvent$}disable(){this.isDisabled=!0}enable(){this.isDisabled=!1}addPositionElement(t){this.positionElements.set(W(t.element),t)}calcPosition(){this.update$$.next()}deletePositionElement(t){this.positionElements.delete(W(t))}setOptions(t){this.options=t}}function W(t){return"string"==typeof t?document.querySelector(t):t instanceof a.ElementRef?t.nativeElement:t}},"2vnA":function(t,e,n){"use strict";n.d(e,"a",(function(){return Kt})),n.d(e,"b",(function(){return Zt})),n.d(e,"c",(function(){return at})),n.d(e,"d",(function(){return X})),n.d(e,"e",(function(){return Xt}));var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function s(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,i=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(a=i.next()).done;)s.push(a.value)}catch(o){r={error:o}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}function o(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(s(arguments[e]));return t}var u=[];Object.freeze(u);var d={};Object.freeze(d);var l={};function c(){return"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:l}function f(){return++Rt.mobxGuid}function h(t){throw g(!1,t),"X"}function g(t,e){if(!t)throw new Error("[mobx] "+(e||"An invariant failed, however the error is obfuscated because this is an production build."))}function p(t){var e=!1;return function(){if(!e)return e=!0,t.apply(this,arguments)}}var b=function(){};function m(t){return null!==t&&"object"==typeof t}function y(t){if(null===t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}function v(t,e,n){Object.defineProperty(t,e,{enumerable:!1,writable:!0,configurable:!0,value:n})}function x(t,e,n){Object.defineProperty(t,e,{enumerable:!1,writable:!1,configurable:!0,value:n})}function _(t,e){var n="isMobX"+t;return e.prototype[n]=!0,function(t){return m(t)&&!0===t[n]}}function T(t){return void 0!==c().Map&&t instanceof c().Map}function O(t){return t instanceof Set}function w(t){for(var e=[];;){var n=t.next();if(n.done)break;e.push(n.value)}return e}function S(){return"function"==typeof Symbol&&Symbol.toPrimitive||"@@toPrimitive"}function I(t){return null===t?null:"object"==typeof t?""+t:t}function N(){return"function"==typeof Symbol&&Symbol.iterator||"@@iterator"}function C(t,e){x(t,N(),e)}function R(t){return t[N()]=k,t}function A(){return"function"==typeof Symbol&&Symbol.toStringTag||"@@toStringTag"}function k(){return this}var E=function(){function t(t){void 0===t&&(t="Atom@"+f()),this.name=t,this.isPendingUnobservation=!1,this.isBeingObserved=!1,this.observers=[],this.observersIndexes={},this.diffValue=0,this.lastAccessedBy=0,this.lowestObserverState=rt.NOT_TRACKING}return t.prototype.onBecomeUnobserved=function(){},t.prototype.onBecomeObserved=function(){},t.prototype.reportObserved=function(){return Pt(this)},t.prototype.reportChanged=function(){Lt(),function(t){if(t.lowestObserverState!==rt.STALE){t.lowestObserverState=rt.STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.UP_TO_DATE&&(a.isTracing!==it.NONE&&Mt(a,t),a.onBecomeStale()),a.dependenciesState=rt.STALE}}}(this),Dt()},t.prototype.toString=function(){return this.name},t}(),L=_("Atom",E);function D(t,e){return t===e}var P={identity:D,structural:function(t,e){return He(t,e)},default:function(t,e){return function(t,e){return"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(t,e)||D(t,e)},shallow:function(t,e){return He(t,e,1)}},M={},q={};function j(t,e){var n=e?M:q;return n[t]||(n[t]={configurable:!0,enumerable:e,get:function(){return F(this),this[t]},set:function(e){F(this),this[t]=e}})}function F(t){if(!0!==t.__mobxDidRunLazyInitializers){var e=t.__mobxDecorators;if(e)for(var n in v(t,"__mobxDidRunLazyInitializers",!0),e){var a=e[n];a.propertyCreator(t,a.prop,a.descriptor,a.decoratorTarget,a.decoratorArguments)}}}function G(t,e){return function(){var n,a=function(a,r,s,o){return!0===o?(e(a,r,s,a,n),null):(Object.prototype.hasOwnProperty.call(a,"__mobxDecorators")||v(a,"__mobxDecorators",i({},a.__mobxDecorators)),a.__mobxDecorators[r]={prop:r,propertyCreator:e,descriptor:s,decoratorTarget:a,decoratorArguments:n},j(r,t))};return V(arguments)?(n=u,a.apply(null,arguments)):(n=Array.prototype.slice.call(arguments),a)}}function V(t){return(2===t.length||3===t.length)&&"string"==typeof t[1]||4===t.length&&!0===t[3]}function z(t,e,n){return ie(t)?t:Array.isArray(t)?X.array(t,{name:n}):y(t)?X.object(t,void 0,{name:n}):T(t)?X.map(t,{name:n}):O(t)?X.set(t,{name:n}):t}function B(t){return t}function Y(t){g(t);var e=G(!0,(function(e,n,a,r,s){!function(t,e,n,a){var r=qe(t);if(ue(r)){var s=le(r,{object:t,name:e,type:"add",newValue:n});if(!s)return;n=s.newValue}n=(r.values[e]=new wt(n,a,r.name+"."+e,!1)).value,Object.defineProperty(t,e,function(t){return je[t]||(je[t]={configurable:!0,enumerable:!0,get:function(){return this.$mobx.read(this,t)},set:function(e){this.$mobx.write(this,t,e)}})}(e)),r.keys&&r.keys.push(e),function(t,e,n,a){var r=ce(t),s=Gt(),o=r||s?{type:"add",object:e,name:n,newValue:a}:null;s&&zt(i(i({},o),{name:t.name,key:n})),r&&he(t,o),s&&Yt()}(r,t,e,n)}(e,n,a?a.initializer?a.initializer.call(e):a.value:void 0,t)})),n=("undefined"!=typeof process&&process,e);return n.enhancer=t,n}var H={deep:!0,name:void 0,defaultDecorator:void 0};function U(t){return null==t?H:"string"==typeof t?{name:t,deep:!0}:t}function W(t){return t.defaultDecorator?t.defaultDecorator.enhancer:!1===t.deep?B:z}Object.freeze(H),Object.freeze({deep:!1,name:void 0,defaultDecorator:void 0});var K=Y(z),$=Y((function(t,e,n){return null==t?t:ze(t)||Ce(t)||Ee(t)||Pe(t)?t:Array.isArray(t)?X.array(t,{name:n,deep:!1}):y(t)?X.object(t,void 0,{name:n,deep:!1}):T(t)?X.map(t,{name:n,deep:!1}):O(t)?X.set(t,{name:n,deep:!1}):h(!1)})),Z=Y(B),J=Y((function(t,e,n){return He(t,e)?e:t})),Q={box:function(t,e){arguments.length>2&&tt("box");var n=U(e);return new wt(t,W(n),n.name,!0,n.equals)},shallowBox:function(t,e){return arguments.length>2&&tt("shallowBox"),X.box(t,{name:e,deep:!1})},array:function(t,e){arguments.length>2&&tt("array");var n=U(e);return new Te(t,W(n),n.name)},shallowArray:function(t,e){return arguments.length>2&&tt("shallowArray"),X.array(t,{name:e,deep:!1})},map:function(t,e){arguments.length>2&&tt("map");var n=U(e);return new Ae(t,W(n),n.name)},shallowMap:function(t,e){return arguments.length>2&&tt("shallowMap"),X.map(t,{name:e,deep:!1})},set:function(t,e){arguments.length>2&&tt("set");var n=U(e);return new De(t,W(n),n.name)},object:function(t,e,n){"string"==typeof arguments[1]&&tt("object");var a=U(n);return ne({},t,e,a)},shallowObject:function(t,e){return"string"==typeof arguments[1]&&tt("shallowObject"),X.object(t,{},{name:e,deep:!1})},ref:Z,shallow:$,deep:K,struct:J},X=function(t,e,n){if("string"==typeof arguments[1])return K.apply(null,arguments);if(ie(t))return t;var a=y(t)?X.object(t,e,n):Array.isArray(t)?X.array(t,e):T(t)?X.map(t,e):O(t)?X.set(t,e):t;if(a!==t)return a;h(!1)};function tt(t){h("Expected one or two arguments to observable."+t+". Did you accidentally try to use observable."+t+" as decorator?")}Object.keys(Q).forEach((function(t){return X[t]=Q[t]}));var et=G(!1,(function(t,e,n,a,r){var s,o,u,d;s=t,o=e,u=i({get:n.get,set:n.set},r[0]||{}),d=qe(s),u.name=d.name+"."+o,u.context=s,d.values[o]=new St(u),Object.defineProperty(s,o,function(t){return Fe[t]||(Fe[t]={configurable:Rt.computedConfigurable,enumerable:!1,get:function(){return Ge(this).read(this,t)},set:function(e){Ge(this).write(this,t,e)}})}(o))})),nt=et({equals:P.structural}),at=function(t,e,n){if("string"==typeof e)return et.apply(null,arguments);if(null!==t&&"object"==typeof t&&1===arguments.length)return et.apply(null,arguments);var a="object"==typeof e?e:{};return a.get=t,a.set="function"==typeof e?e:a.set,a.name=a.name||t.name||"",new St(a)};at.struct=nt;var rt=function(t){return t[t.NOT_TRACKING=-1]="NOT_TRACKING",t[t.UP_TO_DATE=0]="UP_TO_DATE",t[t.POSSIBLY_STALE=1]="POSSIBLY_STALE",t[t.STALE=2]="STALE",t}({}),it=function(t){return t[t.NONE=0]="NONE",t[t.LOG=1]="LOG",t[t.BREAK=2]="BREAK",t}({}),st=function(){return function(t){this.cause=t}}();function ot(t){return t instanceof st}function ut(t){switch(t.dependenciesState){case rt.UP_TO_DATE:return!1;case rt.NOT_TRACKING:case rt.STALE:return!0;case rt.POSSIBLY_STALE:for(var e=pt(!0),n=ht(),a=t.observing,r=a.length,i=0;i<r;i++){var s=a[i];if(It(s)){if(Rt.disableErrorBoundaries)s.get();else try{s.get()}catch(o){return gt(n),bt(e),!0}if(t.dependenciesState===rt.STALE)return gt(n),bt(e),!0}}return mt(t),gt(n),bt(e),!1}}function dt(t){var e=t.observers.length>0;Rt.computationDepth>0&&e&&h(!1),Rt.allowStateChanges||!e&&"strict"!==Rt.enforceActions||h(!1)}function lt(t,e,n){var a=pt(!0);mt(t),t.newObserving=new Array(t.observing.length+100),t.unboundDepsCount=0,t.runId=++Rt.runId;var r,i=Rt.trackingDerivation;if(Rt.trackingDerivation=t,!0===Rt.disableErrorBoundaries)r=e.call(n);else try{r=e.call(n)}catch(s){r=new st(s)}return Rt.trackingDerivation=i,function(t){for(var e=t.observing,n=t.observing=t.newObserving,a=rt.UP_TO_DATE,r=0,i=t.unboundDepsCount,s=0;s<i;s++)0===(o=n[s]).diffValue&&(o.diffValue=1,r!==s&&(n[r]=o),r++),o.dependenciesState>a&&(a=o.dependenciesState);for(n.length=r,t.newObserving=null,i=e.length;i--;)0===(o=e[i]).diffValue&&kt(o,t),o.diffValue=0;for(;r--;){var o;1===(o=n[r]).diffValue&&(o.diffValue=0,At(o,t))}a!==rt.UP_TO_DATE&&(t.dependenciesState=a,t.onBecomeStale())}(t),bt(a),r}function ct(t){var e=t.observing;t.observing=[];for(var n=e.length;n--;)kt(e[n],t);t.dependenciesState=rt.NOT_TRACKING}function ft(t){var e=ht(),n=t();return gt(e),n}function ht(){var t=Rt.trackingDerivation;return Rt.trackingDerivation=null,t}function gt(t){Rt.trackingDerivation=t}function pt(t){var e=Rt.allowStateReads;return Rt.allowStateReads=t,e}function bt(t){Rt.allowStateReads=t}function mt(t){if(t.dependenciesState!==rt.UP_TO_DATE){t.dependenciesState=rt.UP_TO_DATE;for(var e=t.observing,n=e.length;n--;)e[n].lowestObserverState=rt.UP_TO_DATE}}var yt=0,vt=1;function xt(t,e){var n=function(){return _t(t,e,this,arguments)};return n.isMobxAction=!0,n}function _t(t,e,n,a){var r=function(t,e,n){var a=Gt()&&!!t,r=0;if(a){r=Date.now();var i=n&&n.length||0,s=new Array(i);if(i>0)for(var o=0;o<i;o++)s[o]=n[o];zt({type:"action",name:t,object:e,arguments:s})}var u=ht();Lt();var d={prevDerivation:u,prevAllowStateChanges:Tt(!0),prevAllowStateReads:pt(!0),notifySpy:a,startTime:r,actionId:vt++,parentActionId:yt};return yt=d.actionId,d}(t,n,a);try{return e.apply(n,a)}catch(i){throw r.error=i,i}finally{!function(t){yt!==t.actionId&&h("invalid action stack. did you forget to finish an action?"),yt=t.parentActionId,void 0!==t.error&&(Rt.suppressReactionErrors=!0),Ot(t.prevAllowStateChanges),bt(t.prevAllowStateReads),Dt(),gt(t.prevDerivation),t.notifySpy&&Yt({time:Date.now()-t.startTime}),Rt.suppressReactionErrors=!1}(r)}}function Tt(t){var e=Rt.allowStateChanges;return Rt.allowStateChanges=t,e}function Ot(t){Rt.allowStateChanges=t}Object.getOwnPropertyDescriptor((function(){}),"name");var wt=function(t){function e(e,n,a,r,i){void 0===a&&(a="ObservableValue@"+f()),void 0===r&&(r=!0),void 0===i&&(i=P.default);var s=t.call(this,a)||this;return s.enhancer=n,s.name=a,s.equals=i,s.hasUnreportedChange=!1,s.value=n(e,void 0,a),r&&Gt()&&Vt({type:"create",name:s.name,newValue:""+s.value}),s}return r(e,t),e.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},e.prototype.set=function(t){var e=this.value;if((t=this.prepareNewValue(t))!==Rt.UNCHANGED){var n=Gt();n&&zt({type:"update",name:this.name,newValue:t,oldValue:e}),this.setNewValue(t),n&&Yt()}},e.prototype.prepareNewValue=function(t){if(dt(this),ue(this)){var e=le(this,{object:this,type:"update",newValue:t});if(!e)return Rt.UNCHANGED;t=e.newValue}return t=this.enhancer(t,this.value,this.name),this.equals(this.value,t)?Rt.UNCHANGED:t},e.prototype.setNewValue=function(t){var e=this.value;this.value=t,this.reportChanged(),ce(this)&&he(this,{type:"update",object:this,newValue:t,oldValue:e})},e.prototype.get=function(){return this.reportObserved(),this.dehanceValue(this.value)},e.prototype.intercept=function(t){return de(this,t)},e.prototype.observe=function(t,e){return e&&t({object:this,type:"update",newValue:this.value,oldValue:void 0}),fe(this,t)},e.prototype.toJSON=function(){return this.get()},e.prototype.toString=function(){return this.name+"["+this.value+"]"},e.prototype.valueOf=function(){return I(this.get())},e}(E);wt.prototype[S()]=wt.prototype.valueOf,_("ObservableValue",wt);var St=function(){function t(t){this.dependenciesState=rt.NOT_TRACKING,this.observing=[],this.newObserving=null,this.isBeingObserved=!1,this.isPendingUnobservation=!1,this.observers=[],this.observersIndexes={},this.diffValue=0,this.runId=0,this.lastAccessedBy=0,this.lowestObserverState=rt.UP_TO_DATE,this.unboundDepsCount=0,this.__mapid="#"+f(),this.value=new st(null),this.isComputing=!1,this.isRunningSetter=!1,this.isTracing=it.NONE,g(t.get,"missing option for computed: get"),this.derivation=t.get,this.name=t.name||"ComputedValue@"+f(),t.set&&(this.setter=xt(this.name+"-setter",t.set)),this.equals=t.equals||(t.compareStructural||t.struct?P.structural:P.default),this.scope=t.context,this.requiresReaction=!!t.requiresReaction,this.keepAlive=!!t.keepAlive}return t.prototype.onBecomeStale=function(){!function(t){if(t.lowestObserverState===rt.UP_TO_DATE){t.lowestObserverState=rt.POSSIBLY_STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.UP_TO_DATE&&(a.dependenciesState=rt.POSSIBLY_STALE,a.isTracing!==it.NONE&&Mt(a,t),a.onBecomeStale())}}}(this)},t.prototype.onBecomeUnobserved=function(){},t.prototype.onBecomeObserved=function(){},t.prototype.get=function(){this.isComputing&&h("Cycle detected in computation "+this.name+": "+this.derivation),0!==Rt.inBatch||0!==this.observers.length||this.keepAlive?(Pt(this),ut(this)&&this.trackAndCompute()&&function(t){if(t.lowestObserverState!==rt.STALE){t.lowestObserverState=rt.STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.POSSIBLY_STALE?a.dependenciesState=rt.STALE:a.dependenciesState===rt.UP_TO_DATE&&(t.lowestObserverState=rt.UP_TO_DATE)}}}(this)):ut(this)&&(this.warnAboutUntrackedRead(),Lt(),this.value=this.computeValue(!1),Dt());var t=this.value;if(ot(t))throw t.cause;return t},t.prototype.peek=function(){var t=this.computeValue(!1);if(ot(t))throw t.cause;return t},t.prototype.set=function(t){if(this.setter){g(!this.isRunningSetter,"The setter of computed value '"+this.name+"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?"),this.isRunningSetter=!0;try{this.setter.call(this.scope,t)}finally{this.isRunningSetter=!1}}else g(!1,!1)},t.prototype.trackAndCompute=function(){Gt()&&Vt({object:this.scope,type:"compute",name:this.name});var t=this.value,e=this.dependenciesState===rt.NOT_TRACKING,n=this.computeValue(!0),a=e||ot(t)||ot(n)||!this.equals(t,n);return a&&(this.value=n),a},t.prototype.computeValue=function(t){var e;if(this.isComputing=!0,Rt.computationDepth++,t)e=lt(this,this.derivation,this.scope);else if(!0===Rt.disableErrorBoundaries)e=this.derivation.call(this.scope);else try{e=this.derivation.call(this.scope)}catch(n){e=new st(n)}return Rt.computationDepth--,this.isComputing=!1,e},t.prototype.suspend=function(){this.keepAlive||(ct(this),this.value=void 0)},t.prototype.observe=function(t,e){var n=this,a=!0,r=void 0;return Zt((function(){var i=n.get();if(!a||e){var s=ht();t({type:"update",object:n,newValue:i,oldValue:r}),gt(s)}a=!1,r=i}))},t.prototype.warnAboutUntrackedRead=function(){},t.prototype.toJSON=function(){return this.get()},t.prototype.toString=function(){return this.name+"["+this.derivation.toString()+"]"},t.prototype.valueOf=function(){return I(this.get())},t}();St.prototype[S()]=St.prototype.valueOf;var It=_("ComputedValue",St),Nt=function(){return function(){this.version=5,this.UNCHANGED={},this.trackingDerivation=null,this.computationDepth=0,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!0,this.allowStateReads=!0,this.enforceActions=!1,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.computedConfigurable=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1}}(),Ct=!0,Rt=function(){var t=c();return t.__mobxInstanceCount>0&&!t.__mobxGlobals&&(Ct=!1),t.__mobxGlobals&&t.__mobxGlobals.version!==(new Nt).version&&(Ct=!1),Ct?t.__mobxGlobals?(t.__mobxInstanceCount+=1,t.__mobxGlobals.UNCHANGED||(t.__mobxGlobals.UNCHANGED={}),t.__mobxGlobals):(t.__mobxInstanceCount=1,t.__mobxGlobals=new Nt):(setTimeout((function(){h("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`")}),1),new Nt)}();function At(t,e){var n=t.observers.length;n&&(t.observersIndexes[e.__mapid]=n),t.observers[n]=e,t.lowestObserverState>e.dependenciesState&&(t.lowestObserverState=e.dependenciesState)}function kt(t,e){if(1===t.observers.length)t.observers.length=0,Et(t);else{var n=t.observers,a=t.observersIndexes,r=n.pop();if(r!==e){var i=a[e.__mapid]||0;i?a[r.__mapid]=i:delete a[r.__mapid],n[i]=r}delete a[e.__mapid]}}function Et(t){!1===t.isPendingUnobservation&&(t.isPendingUnobservation=!0,Rt.pendingUnobservations.push(t))}function Lt(){Rt.inBatch++}function Dt(){if(0==--Rt.inBatch){jt();for(var t=Rt.pendingUnobservations,e=0;e<t.length;e++){var n=t[e];n.isPendingUnobservation=!1,0===n.observers.length&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBecomeUnobserved()),n instanceof St&&n.suspend())}Rt.pendingUnobservations=[]}}function Pt(t){var e=Rt.trackingDerivation;return null!==e?(e.runId!==t.lastAccessedBy&&(t.lastAccessedBy=e.runId,e.newObserving[e.unboundDepsCount++]=t,t.isBeingObserved||(t.isBeingObserved=!0,t.onBecomeObserved())),!0):(0===t.observers.length&&Rt.inBatch>0&&Et(t),!1)}function Mt(t,e){if(console.log("[mobx.trace] '"+t.name+"' is invalidated due to a change in: '"+e.name+"'"),t.isTracing===it.BREAK){var n=[];!function t(e,n,a){n.length>=1e3?n.push("(and many more)"):(n.push(""+new Array(a).join("\t")+e.name),e.dependencies&&e.dependencies.forEach((function(e){return t(e,n,a+1)})))}((a=t,ae(Be(a,void 0))),n,1),new Function("debugger;\n/*\nTracing '"+t.name+"'\n\nYou are entering this break point because derivation '"+t.name+"' is being traced and '"+e.name+"' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n"+(t instanceof St?t.derivation.toString().replace(/[*]\//g,"/"):"")+"\n\nThe dependencies for this derivation are:\n\n"+n.join("\n")+"\n*/\n    ")()}var a}var qt=function(){function t(t,e,n,a){void 0===t&&(t="Reaction@"+f()),void 0===a&&(a=!1),this.name=t,this.onInvalidate=e,this.errorHandler=n,this.requiresObservable=a,this.observing=[],this.newObserving=[],this.dependenciesState=rt.NOT_TRACKING,this.diffValue=0,this.runId=0,this.unboundDepsCount=0,this.__mapid="#"+f(),this.isDisposed=!1,this._isScheduled=!1,this._isTrackPending=!1,this._isRunning=!1,this.isTracing=it.NONE}return t.prototype.onBecomeStale=function(){this.schedule()},t.prototype.schedule=function(){this._isScheduled||(this._isScheduled=!0,Rt.pendingReactions.push(this),jt())},t.prototype.isScheduled=function(){return this._isScheduled},t.prototype.runReaction=function(){if(!this.isDisposed){if(Lt(),this._isScheduled=!1,ut(this)){this._isTrackPending=!0;try{this.onInvalidate(),this._isTrackPending&&Gt()&&Vt({name:this.name,type:"scheduled-reaction"})}catch(t){this.reportExceptionInDerivation(t)}}Dt()}},t.prototype.track=function(t){Lt();var e,n=Gt();n&&(e=Date.now(),zt({name:this.name,type:"reaction"})),this._isRunning=!0;var a=lt(this,t,void 0);this._isRunning=!1,this._isTrackPending=!1,this.isDisposed&&ct(this),ot(a)&&this.reportExceptionInDerivation(a.cause),n&&Yt({time:Date.now()-e}),Dt()},t.prototype.reportExceptionInDerivation=function(t){var e=this;if(this.errorHandler)this.errorHandler(t,this);else{if(Rt.disableErrorBoundaries)throw t;var n="[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '"+this+"'";Rt.suppressReactionErrors?console.warn("[mobx] (error in reaction '"+this.name+"' suppressed, fix error of causing action below)"):console.error(n,t),Gt()&&Vt({type:"error",name:this.name,message:n,error:""+t}),Rt.globalReactionErrorHandlers.forEach((function(n){return n(t,e)}))}},t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._isRunning||(Lt(),ct(this),Dt()))},t.prototype.getDisposer=function(){var t=this.dispose.bind(this);return t.$mobx=this,t},t.prototype.toString=function(){return"Reaction["+this.name+"]"},t.prototype.trace=function(t){void 0===t&&(t=!1),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=!1;"boolean"==typeof t[t.length-1]&&(n=t.pop());var a=se(t);if(!a)return h(!1);a.isTracing===it.NONE&&console.log("[mobx.trace] '"+a.name+"' tracing enabled"),a.isTracing=n?it.BREAK:it.LOG}(this,t)},t}();function jt(){Rt.inBatch>0||Rt.isRunningReactions||function(){Rt.isRunningReactions=!0;for(var t=Rt.pendingReactions,e=0;t.length>0;){100==++e&&(console.error("Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: "+t[0]),t.splice(0));for(var n=t.splice(0),a=0,r=n.length;a<r;a++)n[a].runReaction()}Rt.isRunningReactions=!1}()}var Ft=_("Reaction",qt);function Gt(){return!!Rt.spyListeners.length}function Vt(t){if(Rt.spyListeners.length)for(var e=Rt.spyListeners,n=0,a=e.length;n<a;n++)e[n](t)}function zt(t){Vt(i(i({},t),{spyReportStart:!0}))}var Bt={spyReportEnd:!0};function Yt(t){Vt(t?i(i({},t),{spyReportEnd:!0}):Bt)}function Ht(){h(!1)}function Ut(t){return function(e,n,a){if(a){if(a.value)return{value:xt(t,a.value),enumerable:!1,configurable:!0,writable:!0};var r=a.initializer;return{enumerable:!1,configurable:!0,writable:!0,initializer:function(){return xt(t,r.call(this))}}}return Wt(t).apply(this,arguments)}}function Wt(t){return function(e,n,a){Object.defineProperty(e,n,{configurable:!0,enumerable:!1,get:function(){},set:function(e){v(this,n,Kt(t,e))}})}}var Kt=function(t,e,n,a){return 1===arguments.length&&"function"==typeof t?xt(t.name||"<unnamed action>",t):2===arguments.length&&"function"==typeof e?xt(t,e):1===arguments.length&&"string"==typeof t?Ut(t):!0!==a?Ut(e).apply(null,arguments):void(t[e]=xt(t.name||e,n.value))};function $t(t,e,n){v(t,e,xt(e,n.bind(t)))}function Zt(t,e){void 0===e&&(e=d);var n,a=e&&e.name||t.name||"Autorun@"+f();if(e.scheduler||e.delay){var r=Qt(e),i=!1;n=new qt(a,(function(){i||(i=!0,r((function(){i=!1,n.isDisposed||n.track(s)})))}),e.onError,e.requiresObservable)}else n=new qt(a,(function(){this.track(s)}),e.onError,e.requiresObservable);function s(){t(n)}return n.schedule(),n.getDisposer()}Kt.bound=function(t,e,n,a){return!0===a?($t(t,e,n.value),null):n?{configurable:!0,enumerable:!1,get:function(){return $t(this,e,n.value||n.initializer.call(this)),this[e]},set:Ht}:{enumerable:!1,configurable:!0,set:function(t){$t(this,e,t)},get:function(){}}};var Jt=function(t){return t()};function Qt(t){return t.scheduler?t.scheduler:t.delay?function(e){return setTimeout(e,t.delay)}:Jt}function Xt(t,e,n){void 0===n&&(n=d),"boolean"==typeof n&&(n={fireImmediately:n});var a,r,i,s=n.name||"Reaction@"+f(),o=Kt(s,n.onError?(a=n.onError,r=e,function(){try{return r.apply(this,arguments)}catch(t){a.call(this,t)}}):e),u=!n.scheduler&&!n.delay,l=Qt(n),c=!0,h=!1,g=n.compareStructural?P.structural:n.equals||P.default,p=new qt(s,(function(){c||u?b():h||(h=!0,l(b))}),n.onError,n.requiresObservable);function b(){if(h=!1,!p.isDisposed){var e=!1;p.track((function(){var n=t(p);e=c||!g(i,n),i=n})),c&&n.fireImmediately&&o(i,p),c||!0!==e||o(i,p),c&&(c=!1)}}return p.schedule(),p.getDisposer()}function te(t,e,n){return ee("onBecomeUnobserved",t,e,n)}function ee(t,e,n,a){var r="function"==typeof a?Be(e,n):Be(e),i="function"==typeof a?a:n,s=r[t];return"function"!=typeof s?h(!1):(r[t]=function(){s.call(this),i.call(this)},function(){r[t]=s})}function ne(t,e,n,a){var r=(a=U(a)).defaultDecorator||(!1===a.deep?Z:K);F(t),qe(t,a.name,r.enhancer),Lt();try{for(var i in e){var s=Object.getOwnPropertyDescriptor(e,i),o=(n&&i in n?n[i]:s.get?et:r)(t,i,s,!0);o&&Object.defineProperty(t,i,o)}}finally{Dt()}return t}function ae(t){var e,n,a={name:t.name};return t.observing&&t.observing.length>0&&(a.dependencies=(e=t.observing,n=[],e.forEach((function(t){-1===n.indexOf(t)&&n.push(t)})),n).map(ae)),a}function re(t,e){if(null==t)return!1;if(void 0!==e){if(ze(t)){var n=t.$mobx;return n.values&&!!n.values[e]}return!1}return ze(t)||!!t.$mobx||L(t)||Ft(t)||It(t)}function ie(t){return 1!==arguments.length&&h(!1),re(t)}function se(t){switch(t.length){case 0:return Rt.trackingDerivation;case 1:return Be(t[0]);case 2:return Be(t[0],t[1])}}function oe(t,e){void 0===e&&(e=void 0),Lt();try{return t.apply(e)}finally{Dt()}}function ue(t){return void 0!==t.interceptors&&t.interceptors.length>0}function de(t,e){var n=t.interceptors||(t.interceptors=[]);return n.push(e),p((function(){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}))}function le(t,e){var n=ht();try{var a=t.interceptors;if(a)for(var r=0,i=a.length;r<i&&(g(!(e=a[r](e))||e.type,"Intercept handlers should return nothing or a change object"),e);r++);return e}finally{gt(n)}}function ce(t){return void 0!==t.changeListeners&&t.changeListeners.length>0}function fe(t,e){var n=t.changeListeners||(t.changeListeners=[]);return n.push(e),p((function(){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}))}function he(t,e){var n=ht(),a=t.changeListeners;if(a){for(var r=0,i=(a=a.slice()).length;r<i;r++)a[r](e);gt(n)}}Object.create(Error.prototype);var ge,pe,be,me,ye=(ge=!1,pe={},Object.defineProperty(pe,"0",{set:function(){ge=!0}}),Object.create(pe)[0]=1,!1===ge),ve=0,xe=function(){return function(){}}();be=xe,me=Array.prototype,void 0!==Object.setPrototypeOf?Object.setPrototypeOf(be.prototype,me):void 0!==be.prototype.__proto__?be.prototype.__proto__=me:be.prototype=me,Object.isFrozen(Array)&&["constructor","push","shift","concat","pop","unshift","replace","find","findIndex","splice","reverse","sort"].forEach((function(t){Object.defineProperty(xe.prototype,t,{configurable:!0,writable:!0,value:Array.prototype[t]})}));var _e=function(){function t(t,e,n,a){this.array=n,this.owned=a,this.values=[],this.lastKnownLength=0,this.atom=new E(t||"ObservableArray@"+f()),this.enhancer=function(n,a){return e(n,a,t+"[..]")}}return t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.dehanceValues=function(t){return void 0!==this.dehancer&&t.length>0?t.map(this.dehancer):t},t.prototype.intercept=function(t){return de(this,t)},t.prototype.observe=function(t,e){return void 0===e&&(e=!1),e&&t({object:this.array,type:"splice",index:0,added:this.values.slice(),addedCount:this.values.length,removed:[],removedCount:0}),fe(this,t)},t.prototype.getArrayLength=function(){return this.atom.reportObserved(),this.values.length},t.prototype.setArrayLength=function(t){if("number"!=typeof t||t<0)throw new Error("[mobx.array] Out of range: "+t);var e=this.values.length;if(t!==e)if(t>e){for(var n=new Array(t-e),a=0;a<t-e;a++)n[a]=void 0;this.spliceWithArray(e,0,n)}else this.spliceWithArray(t,e-t)},t.prototype.updateArrayLength=function(t,e){if(t!==this.lastKnownLength)throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed. Did you use peek() to change it?");this.lastKnownLength+=e,e>0&&t+e+1>ve&&Ie(t+e+1)},t.prototype.spliceWithArray=function(t,e,n){var a=this;dt(this.atom);var r=this.values.length;if(void 0===t?t=0:t>r?t=r:t<0&&(t=Math.max(0,r+t)),e=1===arguments.length?r-t:null==e?0:Math.max(0,Math.min(e,r-t)),void 0===n&&(n=u),ue(this)){var i=le(this,{object:this.array,type:"splice",index:t,removedCount:e,added:n});if(!i)return u;e=i.removedCount,n=i.added}var s=(n=0===n.length?n:n.map((function(t){return a.enhancer(t,void 0)}))).length-e;this.updateArrayLength(r,s);var o=this.spliceItemsIntoValues(t,e,n);return 0===e&&0===n.length||this.notifyArraySplice(t,n,o),this.dehanceValues(o)},t.prototype.spliceItemsIntoValues=function(t,e,n){var a;if(n.length<1e4)return(a=this.values).splice.apply(a,o([t,e],n));var r=this.values.slice(t,t+e);return this.values=this.values.slice(0,t).concat(n,this.values.slice(t+e)),r},t.prototype.notifyArrayChildUpdate=function(t,e,n){var a=!this.owned&&Gt(),r=ce(this),s=r||a?{object:this.array,type:"update",index:t,newValue:e,oldValue:n}:null;a&&zt(i(i({},s),{name:this.atom.name})),this.atom.reportChanged(),r&&he(this,s),a&&Yt()},t.prototype.notifyArraySplice=function(t,e,n){var a=!this.owned&&Gt(),r=ce(this),s=r||a?{object:this.array,type:"splice",index:t,removed:n,added:e,removedCount:n.length,addedCount:e.length}:null;a&&zt(i(i({},s),{name:this.atom.name})),this.atom.reportChanged(),r&&he(this,s),a&&Yt()},t}(),Te=function(t){function e(e,n,a,r){void 0===a&&(a="ObservableArray@"+f()),void 0===r&&(r=!1);var i=t.call(this)||this,s=new _e(a,n,i,r);if(x(i,"$mobx",s),e&&e.length){var o=Tt(!0);i.spliceWithArray(0,0,e),Ot(o)}return ye&&Object.defineProperty(s.array,"0",Oe),i}return r(e,t),e.prototype.intercept=function(t){return this.$mobx.intercept(t)},e.prototype.observe=function(t,e){return void 0===e&&(e=!1),this.$mobx.observe(t,e)},e.prototype.clear=function(){return this.splice(0)},e.prototype.concat=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this.$mobx.atom.reportObserved(),Array.prototype.concat.apply(this.peek(),t.map((function(t){return Ce(t)?t.peek():t})))},e.prototype.replace=function(t){return this.$mobx.spliceWithArray(0,this.$mobx.values.length,t)},e.prototype.toJS=function(){return this.slice()},e.prototype.toJSON=function(){return this.toJS()},e.prototype.peek=function(){return this.$mobx.atom.reportObserved(),this.$mobx.dehanceValues(this.$mobx.values)},e.prototype.find=function(t,e,n){void 0===n&&(n=0);var a=this.findIndex.apply(this,arguments);return-1===a?void 0:this.get(a)},e.prototype.findIndex=function(t,e,n){void 0===n&&(n=0);for(var a=this.peek(),r=a.length,i=n;i<r;i++)if(t.call(e,a[i],i,this))return i;return-1},e.prototype.splice=function(t,e){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];switch(arguments.length){case 0:return[];case 1:return this.$mobx.spliceWithArray(t);case 2:return this.$mobx.spliceWithArray(t,e)}return this.$mobx.spliceWithArray(t,e,n)},e.prototype.spliceWithArray=function(t,e,n){return this.$mobx.spliceWithArray(t,e,n)},e.prototype.push=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this.$mobx;return n.spliceWithArray(n.values.length,0,t),n.values.length},e.prototype.pop=function(){return this.splice(Math.max(this.$mobx.values.length-1,0),1)[0]},e.prototype.shift=function(){return this.splice(0,1)[0]},e.prototype.unshift=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this.$mobx;return n.spliceWithArray(0,0,t),n.values.length},e.prototype.reverse=function(){var t=this.slice();return t.reverse.apply(t,arguments)},e.prototype.sort=function(t){var e=this.slice();return e.sort.apply(e,arguments)},e.prototype.remove=function(t){var e=this.$mobx.dehanceValues(this.$mobx.values).indexOf(t);return e>-1&&(this.splice(e,1),!0)},e.prototype.move=function(t,e){function n(t){if(t<0)throw new Error("[mobx.array] Index out of bounds: "+t+" is negative");var e=this.$mobx.values.length;if(t>=e)throw new Error("[mobx.array] Index out of bounds: "+t+" is not smaller than "+e)}if(n.call(this,t),n.call(this,e),t!==e){var a,r=this.$mobx.values;a=t<e?o(r.slice(0,t),r.slice(t+1,e+1),[r[t]],r.slice(e+1)):o(r.slice(0,e),[r[t]],r.slice(e,t),r.slice(t+1)),this.replace(a)}},e.prototype.get=function(t){var e=this.$mobx;if(e){if(t<e.values.length)return e.atom.reportObserved(),e.dehanceValue(e.values[t]);console.warn("[mobx.array] Attempt to read an array index ("+t+") that is out of bounds ("+e.values.length+"). Please check length first. Out of bound indices will not be tracked by MobX")}},e.prototype.set=function(t,e){var n=this.$mobx,a=n.values;if(t<a.length){dt(n.atom);var r=a[t];if(ue(n)){var i=le(n,{type:"update",object:this,index:t,newValue:e});if(!i)return;e=i.newValue}(e=n.enhancer(e,r))!==r&&(a[t]=e,n.notifyArrayChildUpdate(t,e,r))}else{if(t!==a.length)throw new Error("[mobx.array] Index out of bounds, "+t+" is larger than "+a.length);n.spliceWithArray(t,0,[e])}},e}(xe);C(Te.prototype,(function(){this.$mobx.atom.reportObserved();var t=this,e=0;return R({next:function(){return e<t.length?{value:t[e++],done:!1}:{done:!0,value:void 0}}})})),Object.defineProperty(Te.prototype,"length",{enumerable:!1,configurable:!0,get:function(){return this.$mobx.getArrayLength()},set:function(t){this.$mobx.setArrayLength(t)}}),v(Te.prototype,A(),"Array"),["every","filter","forEach","indexOf","join","lastIndexOf","map","reduce","reduceRight","slice","some","toString","toLocaleString"].forEach((function(t){var e=Array.prototype[t];g("function"==typeof e,"Base function not defined on Array prototype: '"+t+"'"),v(Te.prototype,t,(function(){return e.apply(this.peek(),arguments)}))})),function(t,e){for(var n=0;n<e.length;n++)v(t,e[n],t[e[n]])}(Te.prototype,["constructor","intercept","observe","clear","concat","get","replace","toJS","toJSON","peek","find","findIndex","splice","spliceWithArray","push","pop","set","shift","unshift","reverse","sort","remove","move","toString","toLocaleString"]);var Oe=we(0);function we(t){return{enumerable:!1,configurable:!1,get:function(){return this.get(t)},set:function(e){this.set(t,e)}}}function Se(t){Object.defineProperty(Te.prototype,""+t,we(t))}function Ie(t){for(var e=ve;e<t;e++)Se(e);ve=t}Ie(1e3);var Ne=_("ObservableArrayAdministration",_e);function Ce(t){return m(t)&&Ne(t.$mobx)}var Re={},Ae=function(){function t(t,e,n){if(void 0===e&&(e=z),void 0===n&&(n="ObservableMap@"+f()),this.enhancer=e,this.name=n,this.$mobx=Re,this._keys=new Te(void 0,B,this.name+".keys()",!0),"function"!=typeof Map)throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");this._data=new Map,this._hasMap=new Map,this.merge(t)}return t.prototype._has=function(t){return this._data.has(t)},t.prototype.has=function(t){var e=this;if(!Rt.trackingDerivation)return this._has(t);var n=this._hasMap.get(t);if(!n){var a=n=new wt(this._has(t),B,this.name+"."+ke(t)+"?",!1);this._hasMap.set(t,a),te(a,(function(){return e._hasMap.delete(t)}))}return n.get()},t.prototype.set=function(t,e){var n=this._has(t);if(ue(this)){var a=le(this,{type:n?"update":"add",object:this,newValue:e,name:t});if(!a)return this;e=a.newValue}return n?this._updateValue(t,e):this._addValue(t,e),this},t.prototype.delete=function(t){var e=this;if(ue(this)&&!(r=le(this,{type:"delete",object:this,name:t})))return!1;if(this._has(t)){var n=Gt(),a=ce(this),r=a||n?{type:"delete",object:this,oldValue:this._data.get(t).value,name:t}:null;return n&&zt(i(i({},r),{name:this.name,key:t})),oe((function(){e._keys.remove(t),e._updateHasMapEntry(t,!1),e._data.get(t).setNewValue(void 0),e._data.delete(t)})),a&&he(this,r),n&&Yt(),!0}return!1},t.prototype._updateHasMapEntry=function(t,e){var n=this._hasMap.get(t);n&&n.setNewValue(e)},t.prototype._updateValue=function(t,e){var n=this._data.get(t);if((e=n.prepareNewValue(e))!==Rt.UNCHANGED){var a=Gt(),r=ce(this),s=r||a?{type:"update",object:this,oldValue:n.value,name:t,newValue:e}:null;a&&zt(i(i({},s),{name:this.name,key:t})),n.setNewValue(e),r&&he(this,s),a&&Yt()}},t.prototype._addValue=function(t,e){var n=this;oe((function(){var a=new wt(e,n.enhancer,n.name+"."+ke(t),!1);n._data.set(t,a),e=a.value,n._updateHasMapEntry(t,!0),n._keys.push(t)}));var a=Gt(),r=ce(this),s=r||a?{type:"add",object:this,name:t,newValue:e}:null;a&&zt(i(i({},s),{name:this.name,key:t})),r&&he(this,s),a&&Yt()},t.prototype.get=function(t){return this.has(t)?this.dehanceValue(this._data.get(t).get()):this.dehanceValue(void 0)},t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.keys=function(){return this._keys[N()]()},t.prototype.values=function(){var t=this,e=0;return R({next:function(){return e<t._keys.length?{value:t.get(t._keys[e++]),done:!1}:{value:void 0,done:!0}}})},t.prototype.entries=function(){var t=this,e=0;return R({next:function(){if(e<t._keys.length){var n=t._keys[e++];return{value:[n,t.get(n)],done:!1}}return{done:!0}}})},t.prototype.forEach=function(t,e){var n=this;this._keys.forEach((function(a){return t.call(e,n.get(a),a,n)}))},t.prototype.merge=function(t){var e=this;return Ee(t)&&(t=t.toJS()),oe((function(){y(t)?Object.keys(t).forEach((function(n){return e.set(n,t[n])})):Array.isArray(t)?t.forEach((function(t){var n=s(t,2);return e.set(n[0],n[1])})):T(t)?t.constructor!==Map?h("Cannot initialize from classes that inherit from Map: "+t.constructor.name):t.forEach((function(t,n){return e.set(n,t)})):null!=t&&h("Cannot initialize map from "+t)})),this},t.prototype.clear=function(){var t=this;oe((function(){ft((function(){t._keys.slice().forEach((function(e){return t.delete(e)}))}))}))},t.prototype.replace=function(t){var e=this;return oe((function(){for(var n,a=T(n=t)||Ee(n)?n:Array.isArray(n)?new Map(n):y(n)?new Map(Object.entries(n)):h("Cannot convert to map from '"+n+"'"),r=e._keys,i=Array.from(a.keys()),s=!1,o=0;o<r.length;o++){var u=r[o];r.length===i.length&&u!==i[o]&&(s=!0),a.has(u)||(s=!0,e.delete(u))}a.forEach((function(t,n){e._data.has(n)||(s=!0),e.set(n,t)})),s&&e._keys.replace(i)})),this},Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.toPOJO=function(){var t=this,e={};return this._keys.forEach((function(n){return e["symbol"==typeof n?n:ke(n)]=t.get(n)})),e},t.prototype.toJS=function(){var t=this,e=new Map;return this._keys.forEach((function(n){return e.set(n,t.get(n))})),e},t.prototype.toJSON=function(){return this.toPOJO()},t.prototype.toString=function(){var t=this;return this.name+"[{ "+this._keys.map((function(e){return ke(e)+": "+t.get(e)})).join(", ")+" }]"},t.prototype.observe=function(t,e){return fe(this,t)},t.prototype.intercept=function(t){return de(this,t)},t}();function ke(t){return t&&t.toString?t.toString():new String(t).toString()}C(Ae.prototype,(function(){return this.entries()})),x(Ae.prototype,A(),"Map");var Ee=_("ObservableMap",Ae),Le={},De=function(){function t(t,e,n){if(void 0===e&&(e=z),void 0===n&&(n="ObservableSet@"+f()),this.name=n,this.$mobx=Le,this._data=new Set,this._atom=function(t,e,n){void 0===e&&(e=b),void 0===n&&(n=b);var a=new E(t);return ee("onBecomeObserved",a,e,void 0),te(a,n),a}(this.name),"function"!=typeof Set)throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");this.enhancer=function(t,a){return e(t,a,n)},t&&this.replace(t)}return t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.clear=function(){var t=this;oe((function(){ft((function(){t._data.forEach((function(e){t.delete(e)}))}))}))},t.prototype.forEach=function(t,e){var n=this;this._data.forEach((function(a){t.call(e,a,a,n)}))},Object.defineProperty(t.prototype,"size",{get:function(){return this._atom.reportObserved(),this._data.size},enumerable:!0,configurable:!0}),t.prototype.add=function(t){var e=this;if(dt(this._atom),ue(this)&&!(r=le(this,{type:"add",object:this,newValue:t})))return this;if(!this.has(t)){oe((function(){e._data.add(e.enhancer(t,void 0)),e._atom.reportChanged()}));var n=Gt(),a=ce(this),r=a||n?{type:"add",object:this,newValue:t}:null;a&&he(this,r)}return this},t.prototype.delete=function(t){var e=this;if(ue(this)&&!(r=le(this,{type:"delete",object:this,oldValue:t})))return!1;if(this.has(t)){var n=Gt(),a=ce(this),r=a||n?{type:"delete",object:this,oldValue:t}:null;return oe((function(){e._atom.reportChanged(),e._data.delete(t)})),a&&he(this,r),!0}return!1},t.prototype.has=function(t){return this._atom.reportObserved(),this._data.has(this.dehanceValue(t))},t.prototype.entries=function(){var t=0,e=w(this.keys()),n=w(this.values());return R({next:function(){var a=t;return t+=1,a<n.length?{value:[e[a],n[a]],done:!1}:{done:!0}}})},t.prototype.keys=function(){return this.values()},t.prototype.values=function(){this._atom.reportObserved();var t,e=this,n=0;return void 0!==this._data.values?t=w(this._data.values()):(t=[],this._data.forEach((function(e){return t.push(e)}))),R({next:function(){return n<t.length?{value:e.dehanceValue(t[n++]),done:!1}:{done:!0}}})},t.prototype.replace=function(t){var e=this;return Pe(t)&&(t=t.toJS()),oe((function(){Array.isArray(t)?(e.clear(),t.forEach((function(t){return e.add(t)}))):O(t)?(e.clear(),t.forEach((function(t){return e.add(t)}))):null!=t&&h("Cannot initialize set from "+t)})),this},t.prototype.observe=function(t,e){return fe(this,t)},t.prototype.intercept=function(t){return de(this,t)},t.prototype.toJS=function(){return new Set(this)},t.prototype.toString=function(){return this.name+"[ "+w(this.keys()).join(", ")+" ]"},t}();C(De.prototype,(function(){return this.values()})),x(De.prototype,A(),"Set");var Pe=_("ObservableSet",De),Me=function(){function t(t,e,n){this.target=t,this.name=e,this.defaultEnhancer=n,this.values={}}return t.prototype.read=function(t,e){if(this.target===t||(this.illegalAccess(t,e),this.values[e]))return this.values[e].get()},t.prototype.write=function(t,e,n){var a=this.target;a!==t&&this.illegalAccess(t,e);var r=this.values[e];if(r instanceof St)r.set(n);else{if(ue(this)){if(!(u=le(this,{type:"update",object:a,name:e,newValue:n})))return;n=u.newValue}if((n=r.prepareNewValue(n))!==Rt.UNCHANGED){var s=ce(this),o=Gt(),u=s||o?{type:"update",object:a,oldValue:r.value,name:e,newValue:n}:null;o&&zt(i(i({},u),{name:this.name,key:e})),r.setNewValue(n),s&&he(this,u),o&&Yt()}}},t.prototype.remove=function(t){if(this.values[t]){var e=this.target;if(ue(this)&&!(s=le(this,{object:e,name:t,type:"remove"})))return;try{Lt();var n=ce(this),a=Gt(),r=this.values[t].get();this.keys&&this.keys.remove(t),delete this.values[t],delete this.target[t];var s=n||a?{type:"remove",object:e,oldValue:r,name:t}:null;a&&zt(i(i({},s),{name:this.name,key:t})),n&&he(this,s),a&&Yt()}finally{Dt()}}},t.prototype.illegalAccess=function(t,e){console.warn("Property '"+e+"' of '"+t+"' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner")},t.prototype.observe=function(t,e){return fe(this,t)},t.prototype.intercept=function(t){return de(this,t)},t.prototype.getKeys=function(){var t=this;return void 0===this.keys&&(this.keys=new Te(Object.keys(this.values).filter((function(e){return t.values[e]instanceof wt})),B,"keys("+this.name+")",!0)),this.keys.slice()},t}();function qe(t,e,n){void 0===e&&(e=""),void 0===n&&(n=z);var a=t.$mobx;return a||(y(t)||(e=(t.constructor.name||"ObservableObject")+"@"+f()),e||(e="ObservableObject@"+f()),x(t,"$mobx",a=new Me(t,e,n)),a)}var je=Object.create(null),Fe=Object.create(null);function Ge(t){return t.$mobx||(F(t),t.$mobx)}var Ve=_("ObservableObjectAdministration",Me);function ze(t){return!!m(t)&&(F(t),Ve(t.$mobx))}function Be(t,e){if("object"==typeof t&&null!==t){if(Ce(t))return void 0!==e&&h(!1),t.$mobx.atom;if(Pe(t))return t.$mobx;if(Ee(t)){var n=t;return void 0===e?Be(n._keys):((a=n._data.get(e)||n._hasMap.get(e))||h(!1),a)}var a;if(F(t),ze(t))return e?((a=t.$mobx.values[e])||h(!1),a):h(!1);if(L(t)||It(t)||Ft(t))return t}else if("function"==typeof t&&Ft(t.$mobx))return t.$mobx;return h(!1)}var Ye=Object.prototype.toString;function He(t,e,n){return void 0===n&&(n=-1),function t(e,n,a,r,i){if(e===n)return 0!==e||1/e==1/n;if(null==e||null==n)return!1;if(e!=e)return n!=n;var s=typeof e;if("function"!==s&&"object"!==s&&"object"!=typeof n)return!1;e=Ue(e),n=Ue(n);var o=Ye.call(e);if(o!==Ye.call(n))return!1;switch(o){case"[object RegExp]":case"[object String]":return""+e==""+n;case"[object Number]":return+e!=+e?+n!=+n:0==+e?1/+e==1/n:+e==+n;case"[object Date]":case"[object Boolean]":return+e==+n;case"[object Symbol]":return"undefined"!=typeof Symbol&&Symbol.valueOf.call(e)===Symbol.valueOf.call(n)}var u="[object Array]"===o;if(!u){if("object"!=typeof e||"object"!=typeof n)return!1;var d=e.constructor,l=n.constructor;if(d!==l&&!("function"==typeof d&&d instanceof d&&"function"==typeof l&&l instanceof l)&&"constructor"in e&&"constructor"in n)return!1}if(0===a)return!1;a<0&&(a=-1),i=i||[];for(var c=(r=r||[]).length;c--;)if(r[c]===e)return i[c]===n;if(r.push(e),i.push(n),u){if((c=e.length)!==n.length)return!1;for(;c--;)if(!t(e[c],n[c],a-1,r,i))return!1}else{var f=Object.keys(e),h=void 0;if(c=f.length,Object.keys(n).length!==c)return!1;for(;c--;)if(!We(n,h=f[c])||!t(e[h],n[h],a-1,r,i))return!1}return r.pop(),i.pop(),!0}(t,e,n)}function Ue(t){return Ce(t)?t.peek():T(t)||Ee(t)?w(t.entries()):O(t)||Pe(t)?w(t.entries()):t}function We(t,e){return Object.prototype.hasOwnProperty.call(t,e)}"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:function(t){return Rt.spyListeners.push(t),p((function(){Rt.spyListeners=Rt.spyListeners.filter((function(e){return e!==t}))}))},extras:{getDebugName:function(t,e){return(void 0!==e?Be(t,e):ze(t)||Ee(t)||Pe(t)?function t(e,n){return e||h("Expecting some object"),void 0!==n?t(Be(e,n)):L(e)||It(e)||Ft(e)?e:Ee(e)||Pe(e)?e:(F(e),e.$mobx?e.$mobx:void h(!1))}(t):Be(t)).name}},$mobx:"$mobx"})},"2ykv":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^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],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,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:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"3+CB":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="ko-KR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>네비게이션 전환</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>현황판</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>클러스터</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>호스트들</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>모니터들</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>서비스들</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD들</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>설정</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>크러쉬맵</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>메니저 모듈들</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>로그들</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>풀들</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>블럭</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>이미지들</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>미러링</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>파일시스템들</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>오브젝트게이트웨이</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>데몬들</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>버킷들</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>언어선택</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>패널 데이타 로딩 중...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>그라파나 타임 픽커</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>설정 초기화</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>뒤로</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>데이타 로딩 실폐</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>선택된</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>발견된</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>전체</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>이름</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>설명</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>자세한 설명</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>기본값</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>데모 기본값</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>값들</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>저장하기</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>크러쉬맵 보기</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>로딩중...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>호스트이름</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>이 필드는 필수적입니다.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>예, 확실합니다.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>취소</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>닫기</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>호스트 목록들</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>통합 성능치</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>항목들을 찾을 수 없음</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>클러스터 로그들</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>감사 로그들</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>설정 로딩 중</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>설정을 로드할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>관리모듈 편집하기</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>입력된 값이 유효한 UUID가 아닙니다, 예.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>입력된 값은 유효한 IP주소 여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>입력된 값은 적어도 하나의 숫자를 필요로 합니다.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>입력 된 값은 숫자 또는 십진수여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>갱신</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>클러스터 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>몬맵 변경시간</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>몬맵 변경번호</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>정족수 일치번호</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>정족수 모니터상태</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>요구되는 일치번호</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>요구되는 모니터상태</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>정족수에 포함</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>정족수 미포함</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>추가</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>특징들</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>클러스터-수준의 OSD 플레그들</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>제출</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>자세한 옵션...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 복구 우선순위</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>우선순위</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>우선 순위 값 맞춤 설정</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>이 필드는 요구됩니다!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>값은 0과 1사이어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>재-조정</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, 선택, 1 {깊이 } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, 선택, 1 {깊이 } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 목록들</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>값</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>편집</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>삭제</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>건강상태</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>통계들</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>클라이언트들</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>모든 클라이언트 접근가능</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>주소들</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>필수 입력란</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>반드시 하나 이상의 쉼표로 구분 된 값을 포함해야 함</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>예를들면:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>접근형태</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>클라이언트들 추가</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 사용가능 클러스터 없음 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 클러스터 선택 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>데몬 추가하기</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>스토리지 백엔드</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 이용가능한 데이타풀 없음 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 스토리지 백엔드 선택 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>객체 게이트웨이 사용자</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 사용가능한 사용자들 없음 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 객체 게이트웨이 사용자 선택 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 사용자 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 사용가능한 클라이언트 없음 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephx 클라이언트 선택 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 이름</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>보안 레이블</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>보안 레이블 사용</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 경로</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>경로는 \'/\'로 시작해야하며 그 뒤에 단어가 올 수 있습니다</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>새로운 디렉토리가 만들어 질 것입니다</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>경로</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>경로는 하나의 \'/\' 또는 하나의 단어 일 수 있습니다</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>새로운 버킷이 만들어 질 것입니다</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 프로토콜</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 태크</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>클라이언트는 하위 디렉토리를 마운트 할 수 없습니다 (즉, Tag = foo 인 경우 클라이언트가 foo / baz를 마운트하지 못할 수 있습니다).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>다른 태그 옵션을 사용하면 같은 경로를 여러 번 내보낼 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>다른 Pseudo 옵션을 사용하면 동일한 경로를 여러 번 내보낼 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 사용가능한 접근형태 없음 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 접근형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 사용가능한 squash 없음 --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 어떤 종류의 사용자 ID 스쿼시가 수행되는지 선택하세요 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>전송프로토콜</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Ceph 사용을 환영합니다.</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>사용자이름이 필요합니다</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>암호가 필요합니다</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>로그인</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>미안합니다. 사용자가 Ceph내에 존재하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>금지됨</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>미안합니다. 당신이 요청할 것을 열람하는 것이 허락되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 설정들</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>로컬 구성 값을 제거하십시오. 상위 구성 값은 계승되고 대신 사용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>최소값은 0입니다.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>풀 목록들</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>이름은 영숫자, 대시 및 밑줄로만 구성 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>선택한 Erasure Code 프로파일 이름이 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>플러그인</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>데이터 덩어리들 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>반드시 2보다 크거나 같아야합니다.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>코딩 덩어리들 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>반드시 1보다 크거나 같아야합니다.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>내구성 평가(c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>지역 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>크러쉬 실패 도메인</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>크러쉬 지역</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>없음</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>기술</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>패킷크기</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>크러쉬루트</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>크러쉬 장치 클래스</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>모든</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>디렉토리</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>이름...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>선택한 Ceph 풀이름이 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>풀 형태</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 풀 형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>게재위치 그룹</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>적어도 하나의 게재위치 그룹이 필요함!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>클러스터는 이 많은 PG들를 처리 할 수 없습니다. 필요한 PG 양을 다시 계산하십시오.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>계산 도움말</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>복제되는 크기</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>플레그들</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 덮어쓰기</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>응용프로그램들</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Erasure Code 프로파일</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 사용가능한 Erasure Code 프로파일 없음 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 한개의 Erasure Code 프로파일 선택 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>크러쉬 룰셋</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 크러쉬 룰 선택 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>크러쉬 룰</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>크러쉬 단계들</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>압축</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>양식</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>알고리즘</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 이용가능한 Erasure 압축알고리즘 없음 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>최소 blob 크기</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>예) 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>값은 0보다 커야합니다</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>최대 blob 크기</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>예) 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>값은 최소 blob 크기보다 커야 합니다</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>비율</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>압축율</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>값은 0.0과 1.0 사이 여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>예., 100 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>세부설명</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>성능 세부정보들</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>케쉬 계층들 상세설명들</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>이미지를 휴지통에 이동</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>보호가 만료되는 </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>보호되지 않음</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>날짜 형식 오류. "YYYY-MM-DD HH:mm:ss" 형식으로 지정하세요.</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>보호기간이 이미 만료되었습니다. 더 미래의 날짜를 선택하거나 공란으로 남겨두세요.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>이미지 옮기기</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>개관</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>타겟들</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>인증 탐색</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>사용자이름은 8~64자까지 길이의 문자들을 가져야 하며 그리고, 오직 , \'.\', \'@\', \'-\', \'_\', \':\' 등의 특수 문자들만을 포함가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>암호</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>공동 사용자</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>공통 암호</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>이용가능한 정보:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI 타겟이 이용 불가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>풀</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>데이타 풀</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>생성된</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>크기</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>오브젝트들</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>객체크기</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>준비된</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>이용불가</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>준비된 총계</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>스트라이핑 단위</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>스트라이핑 횟수</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>상위</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>블록 이름 접두사</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>순서</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>스냅삿</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>이미지</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>이 설정은 전역 값을 덮어씁니다.</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>글로벌</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>이것은 전역 값입니다. 이 이미지에 대해 이 옵션의 값이 설정되지 않았습니다.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' 와 \'@\' 문자는 사용불가입니다.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 이용가능한 rbd풀 없음 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 풀 선택 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>전용 데이타 풀들을 사용하세요</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>데이타 풀</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>RBD의 객체-데이타를 저장하고 있는 전용 풀</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>사이즈를 증가시켜야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>자세한</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>분산저장</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>분산저장단위</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 분산저장단위 선택 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>분산저장 개수가 정의되어 있으므로 이 필드는 필수입니다!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>분산저장단위는 객체크기보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>분산저장 갯수</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>분산저장 단위가 정의되어 있으므로 이 필드는 필수입니다!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>분산저장 갯수는 반드시 0보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>롤백하려고 합니다.</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>휴지통 비우기</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>모든</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>풀:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>풀 이름:</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>이미지 복구하기</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>복구를 위해</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>이미지들의 새로운 이름을 입력하고 클릭하세요</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>새로운 이름</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>폐기될</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>까지 보호됨</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 토폴로지</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>기본설정 값들로 부터 인자를 변경하는 것은 일반적으로 필요하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>설정들</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>백스토어</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>확인</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>고급설정들</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>타겟 IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN이 잘못된 패턴을 가지고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Key\n예를들면: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>추가 정보</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>이 타겟은 고급설정들을 수정했습니다.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>포털</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>포털 추가</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>이 이미지는 설정들을 수정했습니다. </target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>이미지 추가</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 인증</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>개시자들</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>개시자들</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>클라이언트 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>개시자 IQN은 유일해야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>사용자이름은 8~64자까지 길이의 문자들을 가져야 하며 그리고, 오직 , \'.\', \'@\', \'-\', \'_\', \':\' 등의 특수 문자들만 포함이 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>개시자는 하나의 그룹에 속해야 하고, 이미지는 그룹안에서 설정합니다.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>추가된 아이템들이 없음</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>게시자 추가</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>그룹들</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>그룹</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>그룹추가</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>휴지통</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>이슈들</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>동기화중</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>준비됨</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>풀 미러모드를 편집하기</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>상대방 클러스터들은 미러를 단절하기 전에 반드시 제거되어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>클러스터 이름</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>클러스터 이름이 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX 아이디</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX 아이디...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX 아이디가 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>모니터 주소들</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>콤마로 분리된 주소들...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>모니터 주소가 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 키</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64로 인코딩 된 키 ...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 키는 반드시 base64로 인코드 되어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>성능 카운터들을 사용 할 수 없음</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>데몬 목록들</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>성능 카운터</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>버킷데이타 적재 중</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>값이 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>선택한 이름이 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>소유자</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 사용자 선택 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>이용가능</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>색인형식</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>위치규칙</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>표시</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>최대 마커</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>버젼</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>마스터 버젼</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>수정된 시간</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>제로그룹</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>버킷 할당량</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>최대 크기</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>무제한</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>최대 객체들</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>사용자명</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 사용자명 선택 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>자동생성된 키</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>접근 키</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>비밀 키</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>전체 이름</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>전자우편 주소</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>유예되다.</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>시스템</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>최대 버킷들</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>보조사용자들</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>능력치들</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>사용자 할당량</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>보기</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>키들</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>형태</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>권한</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 권한 선택 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>보조사용자</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>선택한 보조사용자 아이디가 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>읽기, 쓰기</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>가득찬</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>스위프트 키</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>자동생선된 비밀</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>사용자 데이타 적재 중...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>사용자 데이타를 적재할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>선택된 사용자 아이디가 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>이것은 유효한 전자우편 주소가 아닙니다.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>선택한 전자우편 주소가 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>최대 버킷들</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>설정해제됨</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>커스텀</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 키</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>보조사용자가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>키가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>스위프트</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>능력치가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>무제한 크기</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>최대 크기</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>무제한 객체들</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>최대 객체들</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>입력된 값은 반드시 0보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>세부설명...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>권한들</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>역할들</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>암호 확인</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>암호 확인이 암호와 일치하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>전자우편</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>유효하지않는 전자우편.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>당신의 사용자로부터 "사용자 읽기 / 업데이트"권한을 제거하려고합니다.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>계속하면 모든 사용자에게 역할을 추가하거나 제거 할 수 없게됩니다.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>계속 진행하기를 원하십니까?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>도움말</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>문서</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>대하여</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>대쉬보드 설정</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>사용자 관리</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>로그인된 사용자</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>로그아웃</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>속성들 (OSD 맵)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>메타데이타 사용할 수 없음</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>메타데이타</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>성능 카운터</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>쓰기</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>읽기</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>히스토그램</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>현재 값들</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>최소</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>최대</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>소스</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>수준</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>수행시간에 갱신가능함(편집가능)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>테크들</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>열거형 값들</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>추가로 더보기</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>클러스터 상태</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>관리자 데몬들</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>오브젝트 게이트웨이들</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>메타데이타 서버들</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 게이트웨이들</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>클라이언트 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>클라이언트 처리량</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>클라이언트 읽기/쓰기</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>복구 처리량</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>세정작업</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>성능</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>원시용량</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>OSD당 PG들</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 상태들</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>용량</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>순위</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>현재</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>업데이트된 검색 인증</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>사용가능한 포탈들이 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>사용가능한 이미지들이 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>사용할 수있는 이미지가 없습니다. 대상에 이미지를 추가했는지 확인하십시오.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>사용할 수있는 개시자가 없습니다. 대상에 개시자를 추가했는지 확인하십시오.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>타겟</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>읽은 바이트들</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>쓰기 바이트들</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>읽기 Ops</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>쓰기 Ops</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O 이래로</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>인스탄스</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>이슈</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>진행중</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>편집모드</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>상대방 추가</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>상대방 편집</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>상대방 삭제</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>리더</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># 로컬</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># 원격</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>상대방 미러</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>키</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>딥 패턴</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>계층화</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>배타적인 락</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>오프젝트-맵(배타적인-락을 요구한다)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>저널링(배탁적인-락을 요구합니다.)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>보호안됨</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 스냅샷 롤백</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>롤백</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 스냅샷</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>삭제될 </target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>형태</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>버젼</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>호스트</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>루트</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>대기 데몬들</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>순위</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>데몬</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>활동</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>덴트리들</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>아이노드들</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>사용량</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>갱신된</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>이 값은 런타임에 업데이트 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>데몬들 / 클라이언트들은 모니터 구성 데이터베이스에서이 값을 가져 오지 않습니다. \'ceph config set ...\'을 통해이 옵션을 설정하는 것은 허락되지 않습니다. 이 옵션은 ceph.conf 또는 명령 줄을 통해 구성해야합니다.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>옵션은 데몬 시작 중에 만 적용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>옵션은 클러스터 생성할 때 만 영향을 줍니다.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>옵션은 데몬 생성할 때만 영향을줍니다.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>서비스</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>현재값</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>편집가능</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>사용가능</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>사용불가</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>재-접속 중, 기다려 주세요...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>공개 주소</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>열린 세션들</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>들어올 수 없는</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>이전에 마크 아웃 된 OSD는 시작시 다시 표시되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>나갈 수 없는</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD들은 구성된 간격 후에는 자동으로 표시되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>살아나지 않는</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD는 시작할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>죽일 수 없는</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>모니터가 OSD들의 다운을 표시하지 않도록 OSD 장애 보고서가 무시되고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>멈출</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>읽기와 쓰기를 멈춤</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>스크러빙 않됨</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>스크러빙이 비활성화되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>딥 스크럽 안됨</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>딥 스크러빙이 비활성되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>백필 없음</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG들의 백필이 일시중지 되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>복구 않됨</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG들의 복구가 일시중지 되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>비트단위 정렬</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>비트단위 정렬을 사용하세요</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>완전삭제된 스냅디렉토리들</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD들이 변화된 스냅셋을 가지고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>삭제된 복구들</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>피어링 대신 복구 중에 수행된 삭제물들</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 로그 하드 한계</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>pg 로그 길이에 하드 한계를 넣으세요</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>갱신된 OSD 플래그들</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>아웃</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>인</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>다운</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>표시</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 손실</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>손실 표시</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>완전제거</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>완전제거된</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>파괴된</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>삭제</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>읽은 바이트들</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>쓰여진 바이트들</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>읽기 ops</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>쓰기 ops</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>최대 백필들</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>최대 활성화를 복구하기</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>최대 단일 시작을 복구하기</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>잠자기를 복구하기</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>일</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>심각도</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>시작된</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>사용된</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>이용가능:</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>깨끗한</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>정상동작중</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>경고</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>알려지지 않은</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>정상</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>파일시스템들 없음</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>활성화된</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>대기중인</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>이용불가</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>활성화된 데몬들</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>정족수</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganesha 서비스가 설정되지 않음</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>전송</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 사용자</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 파일시스템</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(전역 구성에서 상속)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>전역 구성에서 상속</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>- 어떤 종류의 사용자 ID 스쿼시가 수행되는지 선택 -</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>사용가능한 데몬이 없읍니다.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>캐쉬모드</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>최소 퇴거 연령</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>최소 플러시 연령</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>목표 최대 바이트들</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>목표 최대 오브젝트들</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>추가된 응용프로그램 없음</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>응용프로그램 한계에 도달함</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>하나의 풀은 오직 네개의 응용프로그램 정의들을 가질 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target> \'_a-zA-Z0-9\' 문자들만 허락됨</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>최대 길이는 128글자이다.</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>필터 또는 추가된 응용프로그램들</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>응용프로그램 추가</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>Erasure 코드 프로파일</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>복제 크기</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>마지막 변경</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Erasure 코드화된 프로파일</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>크러쉬 룰셋</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>버킷</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>버킷들</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>사용자들</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>범위</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>읽기</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>만들기</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>시스템 롤</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>갱신된 사용자</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>계속</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>당신의 롤들이 변경되어 당신은 자동적으로 로그아웃되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>각각의 오브젝트들은 데이타-청크 부분들로 분리되어, 각기 다른 OSD에 보관됩니다.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>각 오브젝트들에 대한 코딩 청크를 계산하고 서로 다른 OSD에 저장합니다. \n코딩된 청크의 수는 데이터 손실없이 작동중지 되어 질 수있는 OSD의 숫자이기도합니다.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Jerasure 플러그인은 가장 일반적이고 유연한 플러그인으로,\n또한 Ceph erasure 코드 풀의 기본값이기도합니다.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>보다 유연한 기술은 reed_sol_van입니다 : k와 m을 설정하면 충분합니다. \ncauchy_good 기술은 빠를 수 있지만 패킷크기를 주의깊게 선택해야합니다. \nreed_sol_r6_op, liberation, blaum_roth, liber8tion은 모두 m = 2로만 구성 할 수 있다는 점에서 RAID-6에 해당합니다.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>인코딩은 한번에 바이트들 크기의 패킷에 대해 수행됩니다. 올바른 패킷 크기를 선택하는 것은 어렵습니다. jerasure 문서에는이 주제에 대한 광범위한 정보가 들어 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>jerasure 플러그인을 사용하면 삭제 된 코딩 된 객체가 여러 OSD에 저장 될 때 하나의 OSD가 손실되는 것을 복구하려면 다른 모든 OSD를 읽어야합니다. 예를 들어 jerasure가 k = 8 및 m = 4로 구성되어있는 경우 하나의 OSD를 잃어 버리면 11 명의 다른 사람들이 수리해야합니다.\nlrc erasure code plugin은 적은 양의 OSD를 사용하여 복구 할 수 있도록 로컬 패리티 청크를 만듭니다. 예를 들어, lrc가 k = 8, m = 4 및 l = 4로 구성된 경우 4 개의 OSD마다 추가 패리티 덩어리가 생성됩니다. 단일 OSD가 손실되면 11 개 대신 4 개의 OSD만으로 복구 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>코딩 및 데이터 청크를 크기 지역 집합으로 그룹화합니다. 예를 들어, k = 4 및 m = 2에 대해, 지역성 = 3 일 때 두 개의 세 그룹이 생성됩니다. 각 세트는 다른 세트의 청크를 읽지 않고도 복구 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>l로 정의 된 각 청크 집합이 저장되는 크러시 버킷의 유형입니다. 예를 들어 랙으로 설정하면 l 개의 청크 그룹이 각각 다른 랙에 배치됩니다. \n랙 선택 단계와 같은 CRUSH 규칙 단계를 만드는 데 사용됩니다. 설정되어 있지 않으면, 그러한 그룹화가 수행되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 플러그인은 ISA 라이브러리를 캡슐화합니다. 인텔 프로세서에서만 실행됩니다.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 플러그인은 두 개의 리드 솔로몬 형식으로 제공됩니다.\nreed_sol_van이 설정되면 Vandermonde, cauchy가 설정되면 Cauchy입니다.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec plugin은 다중 SHEC 라이브러리를 캡슐화합니다.\n           ceph가 리드 솔로몬 코드보다 더 효율적으로 데이터를 복구 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>각 데이터 청크가 계산 범위에 포함되는 패리티 청크의 수입니다. 이 수치는 내구성 측정기로 사용됩니다. 예를 들어, c = 2 인 경우 2 개의 OSD가 데이터 손실없이 중단 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSH 규칙의 첫 번째 단계에 사용 된 크러시 버킷의 이름입니다. 예를 들어 step은 기본값을 취합니다.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>동일한 실패 도메인을 가진 양동이에 두 개의 청크가 없는지 확인하십시오. 예를 들어 실패 도메인이 호스트 인 경우 두 개의 청크가 동일한 호스트에 저장되지 않습니다. 이 단계는 리프 호스트를 선택하는 단계와 같은 CRUSH 규칙 단계를 만드는 데 사용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>CRUSH지도에서 크래시 장치 클래스 이름을 사용하여 특정 클래스 (예 : ssd 또는 hdd)의 장치로 배치를 제한합니다.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>삭제 코드 플러그인이로드되는 디렉토리 이름을 설정하십시오.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>모든 작업들 허용</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>오직 서버를 수정하지 않는 작업들만 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>읽기와 쓰기 작업은 허용되지 않지만, 그외 모든 작업이 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>파일의 속성과 디렉토리 내용을 변경하는 읽기, 쓰기 또는 어떠한 작업은 허용되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>전혀 어떠한 접근도 허용되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 우선순위 선택 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>낮음</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>높음</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>정보</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>마지막 5분</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>지난 15분</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>지난 30분</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>지난 1시간(기본)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>지난 3시간</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>지난 6시간</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>지난 12시간</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>지난 24시간</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>어제</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>오늘</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>오늘 지금까지</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>그저께</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>지난 2일</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>이번 주 마지막날</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>전주</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>이번주</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>이번주 지금까지</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>지난 7일</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>지난 달</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>이번 달</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>이번 달 지금까지</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>지난 30일</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>지난 90일</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>지난 6개월</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>지난 1년</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>전년도</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>금년도</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>금년 지금까지</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>지난 2년</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>지난 5년</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>선택된 아이템 없음</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>다시 선택하기 위해 아이템 선택을 취소</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>선택 한계에 도달함</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>필터 테그들</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>베찌 추가</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>사용가능한 아이템 없음</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>복제</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>복사</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>딥 스크럽</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>단조로움</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>다운 표시</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>인 표시</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>손실 표시</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>아웃 표시</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>보호</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>이름변경</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>복구</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>휴지통으로 옮기기</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>보호않됨</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>삭제돔</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>복제된</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>복사된</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>평평하게 됨</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>완전삭제됨</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>복구됨</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>롤백됨</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>예</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>아니오</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>서비스 량</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 한계</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>원하는 초당 IO 바이트 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 제한</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>원하는 초당 IO 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>읽기 BPS 제한</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>원하는 초당 읽기 바이스 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>읽기 IOPS 한도</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>원하는 초당 읽기 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>쓰기 BPS 한도</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>원하는 초당 쓰기 바이트 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>쓰기 IOPS 제한</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>원하는 초당 쓰기 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>원하는 버스트 IO 바이트 한도 입니다.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>원하는 IO 작업의 버스트 한계입니다.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>읽기 BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>원하는 읽기 버스트 한계입니다.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>읽기 IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>원하는 읽기 작업의 버스트 한도입니다.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>쓰기 BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>쓰기 바이트의 원하는 버스트 한도.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>쓰기 IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>쓰기 바이트의 원하는 버스트 한도.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>수행중</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>수행</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>수행된</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>알려지지 않는 작업</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>생성하는 중</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>생성</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>갱신 중</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>갱신</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>삭제 중</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>복제중</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>복제</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>복사중</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>복사</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>평평하게 하는 중</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>평평함</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>롤백 중</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>롤백</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>옮기는 중</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>옮기기</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>옮겨짐</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>이미지를 찾을 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>복구중</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>복구</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>완전삭제 중</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>완전삭제</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>모든 풀들</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>피어가 포함되어 있기 때문에 미러링을 비활성화 할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"33Wh":function(t,e,n){var a=n("yoRg"),r=n("eDl+");t.exports=Object.keys||function(t){return a(t,r)}},"38Bd":function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return r})),n.d(e,"d",(function(){return o}));var a=n("hpHm");class r{constructor(){this.animate=!1,this.max=100}}class i{constructor(t){this.isStacked=!1,this.addClass=!0,this.bars=[],this._max=100,Object.assign(this,t)}set animate(t){this._animate=t,this.bars.forEach(e=>{e.animate=t})}set striped(t){this._striped=t,this.bars.forEach(e=>{e.striped=t})}set value(t){this.isStacked=Array.isArray(t),this._value=t}get isBs3(){return Object(a.d)()}get max(){return this._max}set max(t){this._max=t,this.bars.forEach(t=>{t.recalculatePercentage()})}addBar(t){t.animate=this._animate,t.striped=this._striped,this.bars.push(t)}removeBar(t){this.bars.splice(this.bars.indexOf(t),1)}}class s{constructor(t,e,n){this.el=t,this.renderer=n,this.addClass=!0,this.percent=0,this.progress=e}get type(){return this._type}set type(t){this._type=t,this.applyTypeClasses()}get value(){return this._value}set value(t){(t||0===t)&&(this._value=t,this.recalculatePercentage())}get setBarWidth(){return this.recalculatePercentage(),this.percent}get isBs3(){return Object(a.d)()}ngOnInit(){this.progress.addBar(this)}ngOnDestroy(){this.progress.removeBar(this)}recalculatePercentage(){this.percent=+(this.value/this.progress.max*100).toFixed(2);const t=this.progress.bars.reduce((function(t,e){return t+e.percent}),0);t>100&&(this.percent-=t-100)}applyTypeClasses(){if(this._prevType){const t=`bg-${this._prevType}`;this.renderer.removeClass(this.el.nativeElement,`progress-bar-${this._prevType}`),this.renderer.removeClass(this.el.nativeElement,t),this._prevType=null}if(this._type){const t=`bg-${this._type}`;this.renderer.addClass(this.el.nativeElement,`progress-bar-${this._type}`),this.renderer.addClass(this.el.nativeElement,t),this._prevType=this._type}}}class o{static forRoot(){return{ngModule:o,providers:[r]}}}},"3A9y":function(t,e){t.exports=function(t){return this.__data__.has(t)}},"3E1r":function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".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:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात"===e?t<4?t:t+12:"सुबह"===e?t:"दोपहर"===e?t>=10?t:t+12:"शाम"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात":t<10?"सुबह":t<17?"दोपहर":t<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n("wd/R"))},"3Fdi":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},"3L66":function(t,e,n){var a=n("MMmD"),r=n("ExA7");t.exports=function(t){return r(t)&&a(t)}},"3N8a":function(t,e,n){"use strict";var a=n("quSY");class r extends a.a{constructor(t,e){super()}schedule(t,e=0){return this}}n.d(e,"a",(function(){return i}));class i extends r{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 n=this.id,a=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(a,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(a,this.id,e),this}requestAsyncId(t,e,n=0){return setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,e,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let n=!1,a=void 0;try{this.work(t)}catch(r){n=!0,a=!!r&&r||new Error(r)}if(n)return this.unsubscribe(),a}_unsubscribe(){const t=this.id,e=this.scheduler,n=e.actions,a=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==a&&n.splice(a,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}},"3bBZ":function(t,e,n){var a=n("2oRo"),r=n("/byt"),i=n("4mDm"),s=n("kRJp"),o=n("tiKp"),u=o("iterator"),d=o("toStringTag"),l=i.values;for(var c in r){var f=a[c],h=f&&f.prototype;if(h){if(h[u]!==l)try{s(h,u,l)}catch(p){h[u]=l}if(h[d]||s(h,d,c),r[c])for(var g in i)if(h[g]!==i[g])try{s(h,g,i[g])}catch(p){h[g]=i[g]}}}},"4/ic":function(t,e,n){var a=n("ZWtO");t.exports=function(t){return function(e){return a(e,t)}}},"44Ds":function(t,e,n){var a=n("e4Nc");function r(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],i=n.cache;if(i.has(r))return i.get(r);var s=t.apply(this,a);return n.cache=i.set(r,s)||i,s};return n.cache=new(r.Cache||a),n}r.Cache=a,t.exports=r},"4DD9":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){let e=!1;switch(t){case!0:case 1:case"y":case"yes":case"t":case"true":case"on":case"1":e=!0}return e}}},"4DFU":function(t,e,n){var a=n("+Qka"),r=n("GoyQ");t.exports=function t(e,n,i,s,o,u){return r(e)&&r(n)&&(u.set(n,e),a(e,n,void 0,t,u),u.delete(n)),e}},"4Dmd":function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(t,e,n){this.renderer=t,this.templateRef=e,this.viewContainerRef=n}return Object.defineProperty(t.prototype,"isOpen",{set:function(t){t?(this._show(),this.isEnabled&&!1===this._isOpen&&this._animateOpen()):this.isEnabled?this._animateClose():this._hide(),this._isOpen=!!t},enumerable:!0,configurable:!0}),t.prototype._show=function(){this.innerElement||(this.innerElement=this.viewContainerRef.createEmbeddedView(this.templateRef).rootNodes[0])},t.prototype._hide=function(){this.viewContainerRef.clear(),this.innerElement=null},t.prototype._animateOpen=function(){var t=this,e=this.animateSpeed,n=this.animateAcceleration,a=0;this.renderer.setStyle(this.innerElement,"max-height","0"),setTimeout((function(){var r=setInterval((function(){if(!t._isOpen||!t.innerElement)return clearInterval(r);var i=Math.round(a+=e);t.renderer.setStyle(t.innerElement,"max-height",i+"px");var s=t.innerElement.getBoundingClientRect?t.innerElement.getBoundingClientRect().height:0;e*=n,n*=1.005,s<i&&(t.renderer.setStyle(t.innerElement,"max-height",null),clearInterval(r))}),17)}))},t.prototype._animateClose=function(){var t=this;if(this.innerElement)var e=this.animateSpeed,n=this.animateAcceleration,a=this.innerElement.getBoundingClientRect().height,r=setInterval((function(){if(t._isOpen||!t.innerElement)return clearInterval(r);t.renderer.setStyle(t.innerElement,"max-height",(a-=e)+"px"),e*=n,n*=1.005,a<=0&&(t.viewContainerRef.clear(),t.innerElement=null,clearInterval(r))}),17)},r([Object(a.Input)("treeAnimateOpenSpeed"),i("design:type",Number)],t.prototype,"animateSpeed",void 0),r([Object(a.Input)("treeAnimateOpenAcceleration"),i("design:type",Number)],t.prototype,"animateAcceleration",void 0),r([Object(a.Input)("treeAnimateOpenEnabled"),i("design:type",Boolean)],t.prototype,"isEnabled",void 0),r([Object(a.Input)("treeAnimateOpen"),i("design:type",Boolean),i("design:paramtypes",[Boolean])],t.prototype,"isOpen",null),r([Object(a.Directive)({selector:"[treeAnimateOpen]"}),i("design:paramtypes",[a.Renderer2,a.TemplateRef,a.ViewContainerRef])],t)}()},"4HWh":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("KOzp"),s=n("z/SZ"),o=n("2uy1");n("p4Cf"),n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return l}));var u=a["ɵcrt"]({encapsulation:0,styles:[["i[_ngcontent-%COMP%]{color:#2b99a8;cursor:pointer;padding-left:4px}"]],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,(function(t,e){var n=e.component;t(e,0,0,n.class,n.html)}))}function l(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,[["popoverTpl",2]],null,0,null,d)),(t()(),a["ɵeld"](1,16777216,null,null,4,"i",[["aria-hidden","true"],["container","body"],["placement","bottom"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](4,1),a["ɵdid"](5,212992,null,0,i.c,[i.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,s.a,o.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null)],(function(t,e){var n=t(e,4,0,e.component.icons.questionCircle);t(e,3,0,n),t(e,5,0,a["ɵnov"](e,0),"bottom",!0,"body")}),null)}},"4I5i":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})()},"4MV3":function(t,e,n){!function(t){"use strict";var e={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};t.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".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:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(t){return t.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(t,e){return 12===t&&(t=0),"રાત"===e?t<4?t:t+12:"સવાર"===e?t:"બપોર"===e?t>=10?t:t+12:"સાંજ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"રાત":t<10?"સવાર":t<17?"બપોર":t<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n("wd/R"))},"4Oe1":function(t,e,n){var a=n("YO3V");t.exports=function(t){return a(t)?void 0:t}},"4WOD":function(t,e,n){var a=n("UTVS"),r=n("ewvW"),i=n("93I0"),s=n("4Xet"),o=i("IE_PROTO"),u=Object.prototype;t.exports=s?Object.getPrototypeOf:function(t){return t=r(t),a(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},"4Xet":function(t,e,n){var a=n("0Dky");t.exports=!a((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},"4dOw":function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},"4kuk":function(t,e,n){var a=n("SfRM"),r=n("Hvzi"),i=n("u8Dt"),s=n("ekgI"),o=n("JSQU");function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}u.prototype.clear=a,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=s,u.prototype.set=o,t.exports=u},"4l63":function(t,e,n){var a=n("I+eb"),r=n("wg0c");a({global:!0,forced:parseInt!=r},{parseInt:r})},"4mDm":function(t,e,n){"use strict";var a=n("/GqU"),r=n("RNIs"),i=n("P4y1"),s=n("afO8"),o=n("fdAy"),u=s.set,d=s.getterFor("Array Iterator");t.exports=o(Array,"Array",(function(t,e){u(this,{type:"Array Iterator",target:a(t),index:0,kind:e})}),(function(){var t=d(this),e=t.target,n=t.kind,a=t.index++;return!e||a>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:a,done:!1}:"values"==n?{value:e[a],done:!1}:{value:[a,e[a]],done:!1}}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},"4qC0":function(t,e,n){var a=n("NykK"),r=n("Z0cm"),i=n("ExA7");t.exports=function(t){return"string"==typeof t||!r(t)&&i(t)&&"[object String]"==a(t)}},"4sDh":function(t,e,n){var a=n("4uTw"),r=n("03A+"),i=n("Z0cm"),s=n("wJg7"),o=n("shjB"),u=n("9Nap");t.exports=function(t,e,n){for(var d=-1,l=(e=a(e,t)).length,c=!1;++d<l;){var f=u(e[d]);if(!(c=null!=t&&n(t,f)))break;t=t[f]}return c||++d!=l?c:!!(l=null==t?0:t.length)&&o(l)&&s(f,l)&&(i(t)||r(t))}},"4syw":function(t,e,n){var a=n("busE");t.exports=function(t,e,n){for(var r in e)a(t,r,e[r],n);return t}},"4uTw":function(t,e,n){var a=n("Z0cm"),r=n("9ggG"),i=n("GNiM"),s=n("dt0z");t.exports=function(t,e){return a(t)?t:r(t,e)?[t]:i(s(t))}},"5+tZ":function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("ZUHj"),r=n("l7GE"),i=n("51Dv"),s=n("lJxs"),o=n("Cfvw");function u(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?a=>a.pipe(u((n,a)=>Object(o.a)(t(n,a)).pipe(Object(s.a)((t,r)=>e(n,t,a,r))),n)):("number"==typeof e&&(n=e),e=>e.lift(new d(t,n)))}class d{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new l(t,this.project,this.concurrent))}}class l extends r.a{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this.active++,this._innerSub(e,t,n)}_innerSub(t,e,n){const r=new i.a(this,e,n),s=this.destination;s.add(r);const o=Object(a.a)(this,t,void 0,void 0,r);o!==r&&s.add(o)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,a,r){this.destination.next(e)}notifyComplete(t){const e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},"51Dv":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");class r extends a.a{constructor(t,e,n){super(),this.parent=t,this.outerValue=e,this.outerIndex=n,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()}}},"5Tg0":function(t,e,n){(function(t){var a=n("Kz5y"),r=e&&!e.nodeType&&e,i=r&&"object"==typeof t&&t&&!t.nodeType&&t,s=i&&i.exports===r?a.Buffer:void 0,o=s?s.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,a=o?o(n):new t.constructor(n);return t.copy(a),a}}).call(this,n("YuTi")(t))},"6+QB":function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<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("wd/R"))},"6B0Y":function(t,e,n){!function(t){"use strict";var e={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};t.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".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:/ព្រឹក|ល្ងាច/,isPM:function(t){return"ល្ងាច"===t},meridiem:function(t,e,n){return t<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(t){return t.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(n("wd/R"))},"6JNq":function(t,e,n){var a=n("UTVS"),r=n("Vu81"),i=n("Bs8V"),s=n("m/L8");t.exports=function(t,e){for(var n=r(e),o=s.f,u=i.f,d=0;d<n.length;d++){var l=n[d];a(t,l)||o(t,l,u(e,l))}}},"6LWA":function(t,e,n){var a=n("xrYK");t.exports=Array.isArray||function(t){return"Array"==a(t)}},"6MUB":function(t,e,n){"use strict";var a=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,r){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map((function(r){var i=encodeURIComponent(a(r))+n;return Array.isArray(t[r])?t[r].map((function(t){return i+encodeURIComponent(a(t))})).join(e):i+encodeURIComponent(a(t[r]))})).join(e):r?encodeURIComponent(a(r))+n+encodeURIComponent(a(t)):""}},"6VoE":function(t,e,n){var a=n("tiKp"),r=n("P4y1"),i=a("iterator"),s=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||s[i]===t)}},"6sVZ":function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},"711d":function(t,e){t.exports=function(t){return function(e){return null==e?void 0:e[t]}}},"77Zs":function(t,e,n){var a=n("Xi7e");t.exports=function(){this.__data__=new a,this.size=0}},"7BjC":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["ühe minuti","üks minut"],mm:[t+" minuti",t+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[t+" tunni",t+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[t+" kuu",t+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[t+" aasta",t+" aastat"]};return e?r[n][2]?r[n][2]:r[n][1]:a?r[n][0]:r[n][1]}t.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".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äna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d päeva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"7GkX":function(t,e,n){var a=n("b80T"),r=n("A90E"),i=n("MMmD");t.exports=function(t){return i(t)?a(t):r(t)}},"7Ix3":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"7aV9":function(t,e,n){!function(t){"use strict";t.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".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 [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(t){return t+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(t){return"ප.ව."===t||"පස් වරු"===t},meridiem:function(t,e,n){return t>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n("wd/R"))},"7fqy":function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t,a){n[++e]=[a,t]})),n}},"7o/Q":function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("n6bG"),r=n("gRHU"),i=n("quSY"),s=n("2QA8"),o=n("2fFW"),u=n("NJ4a");class d extends i.a{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=r.a;break;case 1:if(!t){this.destination=r.a;break}if("object"==typeof t){t instanceof d?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new l(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new l(this,t,e,n)}}[s.a](){return this}static create(t,e,n){const a=new d(t,e,n);return a.syncErrorThrowable=!1,a}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 l extends d{constructor(t,e,n,i){let s;super(),this._parentSubscriber=t;let o=this;Object(a.a)(e)?s=e:e&&(s=e.next,n=e.error,i=e.complete,e!==r.a&&(o=Object.create(e),Object(a.a)(o.unsubscribe)&&this.add(o.unsubscribe.bind(o)),o.unsubscribe=this.unsubscribe.bind(this))),this._context=o,this._next=s,this._error=n,this._complete=i}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;o.a.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:n}=o.a;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(u.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(u.a)(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);o.a.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(n){if(this.unsubscribe(),o.a.useDeprecatedSynchronousErrorHandling)throw n;Object(u.a)(n)}}__tryOrSetError(t,e,n){if(!o.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(a){return o.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=a,t.syncErrorThrown=!0,!0):(Object(u.a)(a),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}},"7qid":function(t,e,n){"use strict";n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return f}));var a=n("8Y7J"),r=n("38Bd"),i=n("SVse"),s=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["ɵvid"](0,[a["ɵncd"](null,0)],null,null)}var u=a["ɵcrt"]({encapsulation:0,styles:["[_nghost-%COMP%] {\n      width: 100%;\n      display: flex;\n    }"],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"],[2,"progress-bar",null]],null,null,o,s)),a["ɵdid"](1,245760,null,0,r.a,[a.ElementRef,r.b,a.Renderer2],{type:[0,"type"],value:[1,"value"]},null),a["ɵncd"](0,0)],(function(t,e){var n=e.component;t(e,1,0,n.type,n._value)}),(function(t,e){t(e,0,0,!a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).striped,a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).value,a["ɵnov"](e,1).percent?a["ɵnov"](e,1).percent.toFixed(0)+"%":"",a["ɵnov"](e,1).max,"100",a["ɵnov"](e,1).setBarWidth,a["ɵnov"](e,1).addClass)}))}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"],[2,"progress-bar",null]],null,null,o,s)),a["ɵdid"](1,245760,null,0,r.a,[a.ElementRef,r.b,a.Renderer2],{type:[0,"type"],value:[1,"value"]},null),(t()(),a["ɵted"](2,0,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.type,e.context.$implicit.value)}),(function(t,e){t(e,0,0,!a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).striped,a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).value,a["ɵnov"](e,1).percent?a["ɵnov"](e,1).percent.toFixed(0)+"%":"",a["ɵnov"](e,1).max,"100",a["ɵnov"](e,1).setBarWidth,a["ɵnov"](e,1).addClass),t(e,2,0,e.context.$implicit.label)}))}function c(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](1,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component._value)}),null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](3,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,!n.isStacked),t(e,3,0,n.isStacked)}),null)}},"8/+R":function(t,e,n){!function(t){"use strict";var e={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};t.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".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:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(t){return t.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ਰਾਤ"===e?t<4?t:t+12:"ਸਵੇਰ"===e?t:"ਦੁਪਹਿਰ"===e?t>=10?t:t+12:"ਸ਼ਾਮ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ਰਾਤ":t<10?"ਸਵੇਰ":t<17?"ਦੁਪਹਿਰ":t<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n("wd/R"))},"85J/":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=/ceph version\s+([^ ]+)\s+\(.+\)/.exec(t);return e?e[1]:t}}},"88Gu":function(t,e){var n=Date.now;t.exports=function(t){var e=0,a=0;return function(){var r=n(),i=16-(r-a);if(a=r,i>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},"8Y7J":function(t,e,n){"use strict";n.r(e);var a=n("XNiG"),r=n("quSY"),i=n("HDdC"),s=n("VRyK"),o=n("7o/Q");function u(){return function(t){return t.lift(new d(t))}}class d{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const a=new l(t,n),r=e.subscribe(a);return a.closed||(a.connection=n.connect()),r}}class l extends o.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:n}=this,a=t._connection;this.connection=null,!a||n&&a!==n||a.unsubscribe()}}class c extends i.a{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 r.a,t.add(this.source.subscribe(new h(this.getSubject(),this))),t.closed&&(this._connection=null,t=r.a.EMPTY)),t}refCount(){return u()(this)}}const f=(()=>{const t=c.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 h extends a.b{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()}}}function g(){return new a.a}n.d(e,"ɵangular_packages_core_core_q",(function(){return fv})),n.d(e,"ɵangular_packages_core_core_n",(function(){return dv})),n.d(e,"ɵangular_packages_core_core_o",(function(){return lv})),n.d(e,"ɵangular_packages_core_core_p",(function(){return cv})),n.d(e,"ɵangular_packages_core_core_r",(function(){return hv})),n.d(e,"ɵangular_packages_core_core_f",(function(){return xm})),n.d(e,"ɵangular_packages_core_core_l",(function(){return df})),n.d(e,"ɵangular_packages_core_core_m",(function(){return bf})),n.d(e,"ɵangular_packages_core_core_k",(function(){return Wy})),n.d(e,"ɵangular_packages_core_core_j",(function(){return Uy})),n.d(e,"ɵangular_packages_core_core_b",(function(){return ut})),n.d(e,"ɵangular_packages_core_core_a",(function(){return at})),n.d(e,"ɵangular_packages_core_core_c",(function(){return yu})),n.d(e,"ɵangular_packages_core_core_d",(function(){return su})),n.d(e,"ɵangular_packages_core_core_e",(function(){return fu})),n.d(e,"ɵangular_packages_core_core_i",(function(){return Py})),n.d(e,"ɵangular_packages_core_core_s",(function(){return ty})),n.d(e,"ɵangular_packages_core_core_u",(function(){return Zm})),n.d(e,"ɵangular_packages_core_core_t",(function(){return $m})),n.d(e,"ɵangular_packages_core_core_x",(function(){return Xm})),n.d(e,"ɵangular_packages_core_core_v",(function(){return Jm})),n.d(e,"ɵangular_packages_core_core_w",(function(){return Qm})),n.d(e,"ɵangular_packages_core_core_ba",(function(){return Sg})),n.d(e,"ɵangular_packages_core_core_bb",(function(){return xa})),n.d(e,"ɵangular_packages_core_core_bc",(function(){return Ae})),n.d(e,"ɵangular_packages_core_core_bd",(function(){return Ve})),n.d(e,"ɵangular_packages_core_core_be",(function(){return rn})),n.d(e,"ɵangular_packages_core_core_bm",(function(){return ca})),n.d(e,"ɵangular_packages_core_core_bl",(function(){return ve})),n.d(e,"ɵangular_packages_core_core_g",(function(){return $s})),n.d(e,"ɵangular_packages_core_core_h",(function(){return Zs})),n.d(e,"ɵangular_packages_core_core_bg",(function(){return Cr})),n.d(e,"ɵangular_packages_core_core_bk",(function(){return wt})),n.d(e,"ɵangular_packages_core_core_bh",(function(){return x})),n.d(e,"ɵangular_packages_core_core_bi",(function(){return _})),n.d(e,"ɵangular_packages_core_core_bn",(function(){return R})),n.d(e,"ɵangular_packages_core_core_y",(function(){return lg})),n.d(e,"ɵangular_packages_core_core_z",(function(){return Gf})),n.d(e,"createPlatform",(function(){return Sy})),n.d(e,"assertPlatform",(function(){return Ny})),n.d(e,"destroyPlatform",(function(){return Cy})),n.d(e,"getPlatform",(function(){return Ry})),n.d(e,"PlatformRef",(function(){return Ay})),n.d(e,"ApplicationRef",(function(){return Ey})),n.d(e,"createPlatformFactory",(function(){return Iy})),n.d(e,"NgProbeToken",(function(){return wy})),n.d(e,"enableProdMode",(function(){return Ka})),n.d(e,"isDevMode",(function(){return Wa})),n.d(e,"APP_ID",(function(){return vm})),n.d(e,"PACKAGE_ROOT_URL",(function(){return Im})),n.d(e,"PLATFORM_INITIALIZER",(function(){return Om})),n.d(e,"PLATFORM_ID",(function(){return wm})),n.d(e,"APP_BOOTSTRAP_LISTENER",(function(){return Sm})),n.d(e,"APP_INITIALIZER",(function(){return mm})),n.d(e,"ApplicationInitStatus",(function(){return ym})),n.d(e,"DebugElement",(function(){return ov})),n.d(e,"DebugEventListener",(function(){return Hy})),n.d(e,"DebugNode",(function(){return sv})),n.d(e,"asNativeElements",(function(){return Ky})),n.d(e,"getDebugNode",(function(){return rv})),n.d(e,"Testability",(function(){return py})),n.d(e,"TestabilityRegistry",(function(){return by})),n.d(e,"setTestabilityGetter",(function(){return yy})),n.d(e,"TRANSLATIONS",(function(){return Rm})),n.d(e,"TRANSLATIONS_FORMAT",(function(){return Am})),n.d(e,"LOCALE_ID",(function(){return Cm})),n.d(e,"MissingTranslationStrategy",(function(){return km})),n.d(e,"ApplicationModule",(function(){return gv})),n.d(e,"wtfCreateScope",(function(){return ny})),n.d(e,"wtfLeave",(function(){return ay})),n.d(e,"wtfStartTimeRange",(function(){return ry})),n.d(e,"wtfEndTimeRange",(function(){return iy})),n.d(e,"Type",(function(){return no})),n.d(e,"EventEmitter",(function(){return tb})),n.d(e,"ErrorHandler",(function(){return Da})),n.d(e,"Sanitizer",(function(){return vr})),n.d(e,"SecurityContext",(function(){return yr})),n.d(e,"Attribute",(function(){return N})),n.d(e,"ANALYZE_FOR_ENTRY_COMPONENTS",(function(){return vu})),n.d(e,"ContentChild",(function(){return Tu})),n.d(e,"ContentChildren",(function(){return _u})),n.d(e,"Query",(function(){return xu})),n.d(e,"ViewChild",(function(){return wu})),n.d(e,"ViewChildren",(function(){return Ou})),n.d(e,"Component",(function(){return nm})),n.d(e,"Directive",(function(){return em})),n.d(e,"HostBinding",(function(){return sm})),n.d(e,"HostListener",(function(){return om})),n.d(e,"Input",(function(){return rm})),n.d(e,"Output",(function(){return im})),n.d(e,"Pipe",(function(){return am})),n.d(e,"NgModule",(function(){return gm})),n.d(e,"CUSTOM_ELEMENTS_SCHEMA",(function(){return Pa})),n.d(e,"NO_ERRORS_SCHEMA",(function(){return Ma})),n.d(e,"ViewEncapsulation",(function(){return Ot})),n.d(e,"Version",(function(){return of})),n.d(e,"VERSION",(function(){return uf})),n.d(e,"InjectFlags",(function(){return C})),n.d(e,"ɵɵdefineInjectable",(function(){return k})),n.d(e,"defineInjectable",(function(){return E})),n.d(e,"ɵɵdefineInjector",(function(){return L})),n.d(e,"forwardRef",(function(){return G})),n.d(e,"resolveForwardRef",(function(){return V})),n.d(e,"Injectable",(function(){return So})),n.d(e,"Injector",(function(){return Bo})),n.d(e,"ɵɵinject",(function(){return rt})),n.d(e,"inject",(function(){return it})),n.d(e,"INJECTOR",(function(){return $})),n.d(e,"ReflectiveInjector",(function(){return mu})),n.d(e,"ResolvedReflectiveFactory",(function(){return du})),n.d(e,"ReflectiveKey",(function(){return eu})),n.d(e,"InjectionToken",(function(){return K})),n.d(e,"Inject",(function(){return T})),n.d(e,"Optional",(function(){return O})),n.d(e,"Self",(function(){return w})),n.d(e,"SkipSelf",(function(){return S})),n.d(e,"Host",(function(){return I})),n.d(e,"NgZone",(function(){return uy})),n.d(e,"ɵNoopNgZone",(function(){return gy})),n.d(e,"RenderComponentType",(function(){return Jc})),n.d(e,"Renderer",(function(){return Xc})),n.d(e,"Renderer2",(function(){return af})),n.d(e,"RendererFactory2",(function(){return ef})),n.d(e,"RendererStyleFlags2",(function(){return nf})),n.d(e,"RootRenderer",(function(){return tf})),n.d(e,"COMPILER_OPTIONS",(function(){return Hm})),n.d(e,"Compiler",(function(){return Ym})),n.d(e,"CompilerFactory",(function(){return Um})),n.d(e,"ModuleWithComponentFactories",(function(){return Dm})),n.d(e,"ComponentFactory",(function(){return Gc})),n.d(e,"ɵComponentFactory",(function(){return Gc})),n.d(e,"ComponentRef",(function(){return Fc})),n.d(e,"ComponentFactoryResolver",(function(){return Yc})),n.d(e,"ElementRef",(function(){return Kc})),n.d(e,"NgModuleFactory",(function(){return ht})),n.d(e,"NgModuleRef",(function(){return ft})),n.d(e,"NgModuleFactoryLoader",(function(){return Dy})),n.d(e,"getModuleFactory",(function(){return qy})),n.d(e,"QueryList",(function(){return nb})),n.d(e,"SystemJsNgModuleLoader",(function(){return Vy})),n.d(e,"SystemJsNgModuleLoaderConfig",(function(){return Fy})),n.d(e,"TemplateRef",(function(){return wf})),n.d(e,"ViewContainerRef",(function(){return Nf})),n.d(e,"EmbeddedViewRef",(function(){return Yy})),n.d(e,"ViewRef",(function(){return By})),n.d(e,"ChangeDetectionStrategy",(function(){return xt})),n.d(e,"ChangeDetectorRef",(function(){return Xs})),n.d(e,"DefaultIterableDiffer",(function(){return cf})),n.d(e,"IterableDiffers",(function(){return vf})),n.d(e,"KeyValueDiffers",(function(){return xf})),n.d(e,"SimpleChange",(function(){return Tc})),n.d(e,"WrappedValue",(function(){return Mu})),n.d(e,"platformCore",(function(){return uv})),n.d(e,"ɵALLOW_MULTIPLE_PLATFORMS",(function(){return Oy})),n.d(e,"ɵAPP_ID_RANDOM_PROVIDER",(function(){return _m})),n.d(e,"ɵdefaultIterableDiffers",(function(){return Tf})),n.d(e,"ɵdefaultKeyValueDiffers",(function(){return Of})),n.d(e,"ɵdevModeEqual",(function(){return Pu})),n.d(e,"ɵisListLikeIterable",(function(){return qu})),n.d(e,"ɵChangeDetectorStatus",(function(){return _t})),n.d(e,"ɵisDefaultChangeDetectionStrategy",(function(){return Tt})),n.d(e,"ɵConsole",(function(){return Nm})),n.d(e,"ɵsetCurrentInjector",(function(){return et})),n.d(e,"ɵgetInjectableDef",(function(){return D})),n.d(e,"ɵAPP_ROOT",(function(){return Co})),n.d(e,"ɵDEFAULT_LOCALE_ID",(function(){return Dg})),n.d(e,"ɵivyEnabled",(function(){return Lm})),n.d(e,"ɵCodegenComponentFactoryResolver",(function(){return Hc})),n.d(e,"ɵclearResolutionOfComponentResourcesQueue",(function(){return Ru})),n.d(e,"ɵresolveComponentResources",(function(){return Su})),n.d(e,"ɵReflectionCapabilities",(function(){return uo})),n.d(e,"ɵRenderDebugInfo",(function(){return Qc})),n.d(e,"ɵ_sanitizeHtml",(function(){return br})),n.d(e,"ɵ_sanitizeStyle",(function(){return Tr})),n.d(e,"ɵ_sanitizeUrl",(function(){return Qa})),n.d(e,"ɵglobal",(function(){return U})),n.d(e,"ɵlooseIdentical",(function(){return Du})),n.d(e,"ɵstringify",(function(){return j})),n.d(e,"ɵmakeDecorator",(function(){return y})),n.d(e,"ɵisObservable",(function(){return el})),n.d(e,"ɵisPromise",(function(){return tl})),n.d(e,"ɵclearOverrides",(function(){return Bx})),n.d(e,"ɵinitServicesIfNeeded",(function(){return rx})),n.d(e,"ɵoverrideComponentView",(function(){return zx})),n.d(e,"ɵoverrideProvider",(function(){return Vx})),n.d(e,"ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR",(function(){return mg})),n.d(e,"ɵgetLocalePluralCase",(function(){return Eg})),n.d(e,"ɵfindLocaleData",(function(){return Lg})),n.d(e,"ɵLOCALE_DATA",(function(){return Cg})),n.d(e,"ɵLocaleDataIndex",(function(){return Rg})),n.d(e,"ɵɵattribute",(function(){return Wu})),n.d(e,"ɵɵattributeInterpolate1",(function(){return ad})),n.d(e,"ɵɵattributeInterpolate2",(function(){return rd})),n.d(e,"ɵɵattributeInterpolate3",(function(){return id})),n.d(e,"ɵɵattributeInterpolate4",(function(){return sd})),n.d(e,"ɵɵattributeInterpolate5",(function(){return od})),n.d(e,"ɵɵattributeInterpolate6",(function(){return ud})),n.d(e,"ɵɵattributeInterpolate7",(function(){return dd})),n.d(e,"ɵɵattributeInterpolate8",(function(){return ld})),n.d(e,"ɵɵattributeInterpolateV",(function(){return cd})),n.d(e,"ɵɵdefineBase",(function(){return zt})),n.d(e,"ɵɵdefineComponent",(function(){return Pt})),n.d(e,"ɵɵdefineDirective",(function(){return Bt})),n.d(e,"ɵɵdefinePipe",(function(){return Yt})),n.d(e,"ɵɵdefineNgModule",(function(){return Ft})),n.d(e,"ɵdetectChanges",(function(){return fd})),n.d(e,"ɵrenderComponent",(function(){return bc})),n.d(e,"ɵRender3ComponentFactory",(function(){return Ig})),n.d(e,"ɵRender3ComponentRef",(function(){return Ng})),n.d(e,"ɵɵdirectiveInject",(function(){return Td})),n.d(e,"ɵɵinjectAttribute",(function(){return Od})),n.d(e,"ɵɵinjectPipeChangeDetectorRef",(function(){return Sb})),n.d(e,"ɵɵgetFactoryOf",(function(){return Ra})),n.d(e,"ɵɵgetInheritedFactory",(function(){return Aa})),n.d(e,"ɵɵsetComponentScope",(function(){return Mt})),n.d(e,"ɵɵsetNgModuleScope",(function(){return Gt})),n.d(e,"ɵɵtemplateRefExtractor",(function(){return wb})),n.d(e,"ɵɵProvidersFeature",(function(){return jc})),n.d(e,"ɵɵInheritDefinitionFeature",(function(){return Nc})),n.d(e,"ɵɵNgOnChangesFeature",(function(){return Oc})),n.d(e,"ɵLifecycleHooksFeature",(function(){return xc})),n.d(e,"ɵRender3NgModuleRef",(function(){return Lp})),n.d(e,"ɵmarkDirty",(function(){return hd})),n.d(e,"ɵNgModuleFactory",(function(){return Dp})),n.d(e,"ɵNO_CHANGE",(function(){return ci})),n.d(e,"ɵɵcontainer",(function(){return gd})),n.d(e,"ɵɵnextContext",(function(){return ol})),n.d(e,"ɵɵelementStart",(function(){return Bd})),n.d(e,"ɵɵnamespaceHTML",(function(){return gn})),n.d(e,"ɵɵnamespaceMathML",(function(){return hn})),n.d(e,"ɵɵnamespaceSVG",(function(){return fn})),n.d(e,"ɵɵelement",(function(){return Hd})),n.d(e,"ɵɵlistener",(function(){return nl})),n.d(e,"ɵɵtext",(function(){return Ol})),n.d(e,"ɵɵtextInterpolate",(function(){return Sl})),n.d(e,"ɵɵtextInterpolate1",(function(){return Il})),n.d(e,"ɵɵtextInterpolate2",(function(){return Nl})),n.d(e,"ɵɵtextInterpolate3",(function(){return Cl})),n.d(e,"ɵɵtextInterpolate4",(function(){return Rl})),n.d(e,"ɵɵtextInterpolate5",(function(){return Al})),n.d(e,"ɵɵtextInterpolate6",(function(){return kl})),n.d(e,"ɵɵtextInterpolate7",(function(){return El})),n.d(e,"ɵɵtextInterpolate8",(function(){return Ll})),n.d(e,"ɵɵtextInterpolateV",(function(){return Dl})),n.d(e,"ɵɵembeddedViewStart",(function(){return Jd})),n.d(e,"ɵɵprojection",(function(){return fl})),n.d(e,"ɵɵpipeBind1",(function(){return Wp})),n.d(e,"ɵɵpipeBind2",(function(){return Kp})),n.d(e,"ɵɵpipeBind3",(function(){return $p})),n.d(e,"ɵɵpipeBind4",(function(){return Zp})),n.d(e,"ɵɵpipeBindV",(function(){return Jp})),n.d(e,"ɵɵpureFunction0",(function(){return Mp})),n.d(e,"ɵɵpureFunction1",(function(){return qp})),n.d(e,"ɵɵpureFunction2",(function(){return jp})),n.d(e,"ɵɵpureFunction3",(function(){return Fp})),n.d(e,"ɵɵpureFunction4",(function(){return Gp})),n.d(e,"ɵɵpureFunction5",(function(){return Vp})),n.d(e,"ɵɵpureFunction6",(function(){return zp})),n.d(e,"ɵɵpureFunction7",(function(){return Bp})),n.d(e,"ɵɵpureFunction8",(function(){return Yp})),n.d(e,"ɵɵpureFunctionV",(function(){return Hp})),n.d(e,"ɵɵgetCurrentView",(function(){return Xd})),n.d(e,"ɵgetDirectives",(function(){return sc})),n.d(e,"ɵgetHostElement",(function(){return uc})),n.d(e,"ɵɵrestoreView",(function(){return Ge})),n.d(e,"ɵɵcontainerRefreshStart",(function(){return bd})),n.d(e,"ɵɵcontainerRefreshEnd",(function(){return md})),n.d(e,"ɵɵqueryRefresh",(function(){return cb})),n.d(e,"ɵɵviewQuery",(function(){return hb})),n.d(e,"ɵɵstaticViewQuery",(function(){return fb})),n.d(e,"ɵɵstaticContentQuery",(function(){return mb})),n.d(e,"ɵɵloadViewQuery",(function(){return pb})),n.d(e,"ɵɵcontentQuery",(function(){return bb})),n.d(e,"ɵɵloadContentQuery",(function(){return vb})),n.d(e,"ɵɵelementEnd",(function(){return Yd})),n.d(e,"ɵɵhostProperty",(function(){return Xl})),n.d(e,"ɵɵproperty",(function(){return Hu})),n.d(e,"ɵɵpropertyInterpolate",(function(){return hl})),n.d(e,"ɵɵpropertyInterpolate1",(function(){return gl})),n.d(e,"ɵɵpropertyInterpolate2",(function(){return pl})),n.d(e,"ɵɵpropertyInterpolate3",(function(){return bl})),n.d(e,"ɵɵpropertyInterpolate4",(function(){return ml})),n.d(e,"ɵɵpropertyInterpolate5",(function(){return yl})),n.d(e,"ɵɵpropertyInterpolate6",(function(){return vl})),n.d(e,"ɵɵpropertyInterpolate7",(function(){return xl})),n.d(e,"ɵɵpropertyInterpolate8",(function(){return _l})),n.d(e,"ɵɵpropertyInterpolateV",(function(){return Tl})),n.d(e,"ɵɵupdateSyntheticHostBinding",(function(){return tc})),n.d(e,"ɵɵcomponentHostSyntheticListener",(function(){return al})),n.d(e,"ɵɵprojectionDef",(function(){return dl})),n.d(e,"ɵɵreference",(function(){return xd})),n.d(e,"ɵɵenableBindings",(function(){return Ce})),n.d(e,"ɵɵdisableBindings",(function(){return Re})),n.d(e,"ɵɵallocHostVars",(function(){return ku})),n.d(e,"ɵɵelementContainerStart",(function(){return Kd})),n.d(e,"ɵɵelementContainerEnd",(function(){return $d})),n.d(e,"ɵɵelementContainer",(function(){return Zd})),n.d(e,"ɵɵstyling",(function(){return wd})),n.d(e,"ɵɵstyleMap",(function(){return Ad})),n.d(e,"ɵɵstyleSanitizer",(function(){return Sd})),n.d(e,"ɵɵclassMap",(function(){return kd})),n.d(e,"ɵɵclassMapInterpolate1",(function(){return Pl})),n.d(e,"ɵɵclassMapInterpolate2",(function(){return Ml})),n.d(e,"ɵɵclassMapInterpolate3",(function(){return ql})),n.d(e,"ɵɵclassMapInterpolate4",(function(){return jl})),n.d(e,"ɵɵclassMapInterpolate5",(function(){return Fl})),n.d(e,"ɵɵclassMapInterpolate6",(function(){return Gl})),n.d(e,"ɵɵclassMapInterpolate7",(function(){return Vl})),n.d(e,"ɵɵclassMapInterpolate8",(function(){return zl})),n.d(e,"ɵɵclassMapInterpolateV",(function(){return Bl})),n.d(e,"ɵɵstyleProp",(function(){return Id})),n.d(e,"ɵɵstylePropInterpolate1",(function(){return Yl})),n.d(e,"ɵɵstylePropInterpolate2",(function(){return Hl})),n.d(e,"ɵɵstylePropInterpolate3",(function(){return Ul})),n.d(e,"ɵɵstylePropInterpolate4",(function(){return Wl})),n.d(e,"ɵɵstylePropInterpolate5",(function(){return Kl})),n.d(e,"ɵɵstylePropInterpolate6",(function(){return $l})),n.d(e,"ɵɵstylePropInterpolate7",(function(){return Zl})),n.d(e,"ɵɵstylePropInterpolate8",(function(){return Jl})),n.d(e,"ɵɵstylePropInterpolateV",(function(){return Ql})),n.d(e,"ɵɵstylingApply",(function(){return Pd})),n.d(e,"ɵɵclassProp",(function(){return Cd})),n.d(e,"ɵɵelementHostAttrs",(function(){return Ud})),n.d(e,"ɵɵselect",(function(){return Oi})),n.d(e,"ɵɵtextBinding",(function(){return wl})),n.d(e,"ɵɵtemplate",(function(){return pd})),n.d(e,"ɵɵembeddedViewEnd",(function(){return Qd})),n.d(e,"ɵstore",(function(){return vd})),n.d(e,"ɵɵload",(function(){return _d})),n.d(e,"ɵɵpipe",(function(){return Up})),n.d(e,"ɵwhenRendered",(function(){return _c})),n.d(e,"ɵɵi18n",(function(){return lp})),n.d(e,"ɵɵi18nAttributes",(function(){return cp})),n.d(e,"ɵɵi18nExp",(function(){return gp})),n.d(e,"ɵɵi18nStart",(function(){return np})),n.d(e,"ɵɵi18nEnd",(function(){return sp})),n.d(e,"ɵɵi18nApply",(function(){return pp})),n.d(e,"ɵɵi18nPostprocess",(function(){return ip})),n.d(e,"ɵi18nConfigureLocalize",(function(){return Tp})),n.d(e,"ɵɵi18nLocalize",(function(){return wp})),n.d(e,"ɵsetLocaleId",(function(){return Ip})),n.d(e,"ɵsetClassMetadata",(function(){return Pp})),n.d(e,"ɵɵresolveWindow",(function(){return Tn})),n.d(e,"ɵɵresolveDocument",(function(){return On})),n.d(e,"ɵɵresolveBody",(function(){return wn})),n.d(e,"ɵcompileComponent",(function(){return zb})),n.d(e,"ɵcompileDirective",(function(){return Bb})),n.d(e,"ɵcompileNgModule",(function(){return Eb})),n.d(e,"ɵcompileNgModuleDefs",(function(){return Lb})),n.d(e,"ɵpatchComponentDefWithScope",(function(){return jb})),n.d(e,"ɵresetCompiledComponents",(function(){return Mb})),n.d(e,"ɵflushModuleScopingQueueAsMuchAsPossible",(function(){return Ab})),n.d(e,"ɵtransitiveScopesFor",(function(){return Fb})),n.d(e,"ɵcompilePipe",(function(){return tm})),n.d(e,"ɵɵsanitizeHtml",(function(){return Or})),n.d(e,"ɵɵsanitizeStyle",(function(){return wr})),n.d(e,"ɵɵdefaultStyleSanitizer",(function(){return Ar})),n.d(e,"ɵɵsanitizeScript",(function(){return Nr})),n.d(e,"ɵɵsanitizeUrl",(function(){return Sr})),n.d(e,"ɵɵsanitizeResourceUrl",(function(){return Ir})),n.d(e,"ɵɵsanitizeUrlOrResourceUrl",(function(){return Rr})),n.d(e,"ɵbypassSanitizationTrustHtml",(function(){return Fa})),n.d(e,"ɵbypassSanitizationTrustStyle",(function(){return Ga})),n.d(e,"ɵbypassSanitizationTrustScript",(function(){return Va})),n.d(e,"ɵbypassSanitizationTrustUrl",(function(){return za})),n.d(e,"ɵbypassSanitizationTrustResourceUrl",(function(){return Ba})),n.d(e,"ɵgetLContext",(function(){return Dr})),n.d(e,"ɵNG_ELEMENT_ID",(function(){return Lt})),n.d(e,"ɵNG_COMPONENT_DEF",(function(){return Nt})),n.d(e,"ɵNG_DIRECTIVE_DEF",(function(){return Ct})),n.d(e,"ɵNG_PIPE_DEF",(function(){return Rt})),n.d(e,"ɵNG_MODULE_DEF",(function(){return At})),n.d(e,"ɵNG_BASE_DEF",(function(){return Et})),n.d(e,"ɵNG_INJECTABLE_DEF",(function(){return M})),n.d(e,"ɵNG_INJECTOR_DEF",(function(){return q})),n.d(e,"ɵcompileNgModuleFactory__POST_R3__",(function(){return _y})),n.d(e,"ɵisBoundToModule__POST_R3__",(function(){return Ty})),n.d(e,"ɵSWITCH_COMPILE_COMPONENT__POST_R3__",(function(){return um})),n.d(e,"ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__",(function(){return dm})),n.d(e,"ɵSWITCH_COMPILE_PIPE__POST_R3__",(function(){return lm})),n.d(e,"ɵSWITCH_COMPILE_NGMODULE__POST_R3__",(function(){return pm})),n.d(e,"ɵgetDebugNode__POST_R3__",(function(){return av})),n.d(e,"ɵSWITCH_COMPILE_INJECTABLE__POST_R3__",(function(){return Io})),n.d(e,"ɵSWITCH_IVY_ENABLED__POST_R3__",(function(){return Em})),n.d(e,"ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__",(function(){return to})),n.d(e,"ɵCompiler_compileModuleSync__POST_R3__",(function(){return Mm})),n.d(e,"ɵCompiler_compileModuleAsync__POST_R3__",(function(){return jm})),n.d(e,"ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__",(function(){return Gm})),n.d(e,"ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__",(function(){return zm})),n.d(e,"ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__",(function(){return $c})),n.d(e,"ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__",(function(){return Sf})),n.d(e,"ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__",(function(){return Cf})),n.d(e,"ɵSWITCH_RENDERER2_FACTORY__POST_R3__",(function(){return rf})),n.d(e,"ɵgetModuleFactory__POST_R3__",(function(){return My})),n.d(e,"ɵregisterNgModuleType",(function(){return Ap})),n.d(e,"ɵpublishGlobalUtil",(function(){return pc})),n.d(e,"ɵpublishDefaultGlobalUtils",(function(){return gc})),n.d(e,"ɵcreateInjector",(function(){return Do})),n.d(e,"ɵINJECTOR_IMPL__POST_R3__",(function(){return Vo})),n.d(e,"ɵregisterModuleFactory",(function(){return Cp})),n.d(e,"ɵEMPTY_ARRAY",(function(){return Th})),n.d(e,"ɵEMPTY_MAP",(function(){return Oh})),n.d(e,"ɵand",(function(){return pv})),n.d(e,"ɵccf",(function(){return Mh})),n.d(e,"ɵcmf",(function(){return Yx})),n.d(e,"ɵcrt",(function(){return Uf})),n.d(e,"ɵdid",(function(){return og})),n.d(e,"ɵeld",(function(){return bv})),n.d(e,"ɵgetComponentViewDefinitionFactory",(function(){return qh})),n.d(e,"ɵinlineInterpolate",(function(){return xh})),n.d(e,"ɵinterpolate",(function(){return vh})),n.d(e,"ɵmod",(function(){return Rh})),n.d(e,"ɵmpd",(function(){return Ch})),n.d(e,"ɵncd",(function(){return Iv})),n.d(e,"ɵnov",(function(){return Kh})),n.d(e,"ɵpid",(function(){return ug})),n.d(e,"ɵprd",(function(){return dg})),n.d(e,"ɵpad",(function(){return Rv})),n.d(e,"ɵpod",(function(){return Av})),n.d(e,"ɵppd",(function(){return Cv})),n.d(e,"ɵqud",(function(){return _v})),n.d(e,"ɵted",(function(){return Ev})),n.d(e,"ɵunv",(function(){return Hf})),n.d(e,"ɵvid",(function(){return Pv}));const p="__annotations__",b="__parameters__",m="__prop__metadata__";function y(t,e,n,a,r){const i=v(e);function s(...t){if(this instanceof s)return i.call(this,...t),this;const e=new s(...t);return function(n){return r&&r(n,...t),(n.hasOwnProperty(p)?n[p]:Object.defineProperty(n,p,{value:[]})[p]).push(e),a&&a(n),n}}return n&&(s.prototype=Object.create(n.prototype)),s.prototype.ngMetadataName=t,s.annotationCls=s,s}function v(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}function x(t,e,n){const a=v(e);function r(...t){if(this instanceof r)return a.apply(this,t),this;const e=new r(...t);return n.annotation=e,n;function n(t,n,a){const r=t.hasOwnProperty(b)?t[b]:Object.defineProperty(t,b,{value:[]})[b];for(;r.length<=a;)r.push(null);return(r[a]=r[a]||[]).push(e),t}}return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=t,r.annotationCls=r,r}function _(t,e,n,a){const r=v(e);function i(...t){if(this instanceof i)return r.apply(this,t),this;const e=new i(...t);return function(n,r){const i=n.constructor,s=i.hasOwnProperty(m)?i[m]:Object.defineProperty(i,m,{value:{}})[m];s[r]=s.hasOwnProperty(r)&&s[r]||[],s[r].unshift(e),a&&a(n,r,...t)}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=t,i.annotationCls=i,i}const T=x("Inject",t=>({token:t})),O=x("Optional"),w=x("Self"),S=x("SkipSelf"),I=x("Host"),N=x("Attribute",t=>({attributeName:t}));var C=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}({});function R(t){for(let e in t)if(t[e]===R)return e;throw Error("Could not find renamed property on target object.")}function A(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function k(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}const E=k;function L(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function D(t){const e=t[M];return e&&e.token===t?e:null}function P(t){return t&&t.hasOwnProperty(q)?t[q]:null}const M=R({ngInjectableDef:R}),q=R({ngInjectorDef:R});function j(t){if("string"==typeof t)return t;if(t instanceof Array)return"["+t.map(j).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}const F=R({__forward_ref__:R});function G(t){return t.__forward_ref__=G,t.toString=function(){return j(this())},t}function V(t){const e=t;return"function"==typeof e&&e.hasOwnProperty(F)&&e.__forward_ref__===G?e():t}const z="undefined"!=typeof globalThis&&globalThis,B="undefined"!=typeof window&&window,Y="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,H="undefined"!=typeof global&&global,U=z||H||B||Y;function W(){const t=U.ng;if(!t||!t.ɵcompilerFacade)throw new Error("Angular JIT compilation failed: '@angular/compiler' not loaded!\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\n  - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.");return t.ɵcompilerFacade}class K{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.ngInjectableDef=k({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}const $=new K("INJECTOR",-1),Z=new Object,J=/\n/gm,Q=R({provide:String,useValue:R});let X,tt=void 0;function et(t){const e=tt;return tt=t,e}function nt(t){const e=X;return X=t,e}function at(t,e=C.Default){if(void 0===tt)throw new Error("inject() must be called from an injection context");return null===tt?st(t,void 0,e):tt.get(t,e&C.Optional?null:void 0,e)}function rt(t,e=C.Default){return(X||at)(t,e)}const it=rt;function st(t,e,n){const a=D(t);if(a&&"root"==a.providedIn)return void 0===a.value?a.value=a.factory():a.value;if(n&C.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${j(t)}]`)}function ot(t){const e=[];for(let n=0;n<t.length;n++){const a=V(t[n]);if(Array.isArray(a)){if(0===a.length)throw new Error("Arguments array must have arguments.");let t=void 0,n=C.Default;for(let e=0;e<a.length;e++){const r=a[e];r instanceof O||"Optional"===r.ngMetadataName||r===O?n|=C.Optional:r instanceof S||"SkipSelf"===r.ngMetadataName||r===S?n|=C.SkipSelf:r instanceof w||"Self"===r.ngMetadataName||r===w?n|=C.Self:t=r instanceof T||r===T?r.token:r}e.push(rt(t,n))}else e.push(rt(a))}return e}class ut{get(t,e=Z){if(e===Z){const e=new Error(`NullInjectorError: No provider for ${j(t)}!`);throw e.name="NullInjectorError",e}return e}}function dt(t,e,n,a){const r=t.ngTempTokenPath;throw e.__source&&r.unshift(e.__source),t.message=lt("\n"+t.message,r,n,a),t.ngTokenPath=r,t.ngTempTokenPath=null,t}function lt(t,e,n,a=null){t=t&&"\n"===t.charAt(0)&&"ɵ"==t.charAt(1)?t.substr(2):t;let r=j(e);if(e instanceof Array)r=e.map(j).join(" -> ");else if("object"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let a=e[n];t.push(n+":"+("string"==typeof a?JSON.stringify(a):j(a)))}r=`{${t.join(", ")}}`}return`${n}${a?"("+a+")":""}[${r}]: ${t.replace(J,"\n  ")}`}const ct={"ɵɵdefineInjectable":k,"ɵɵdefineInjector":L,"ɵɵinject":rt,"ɵɵgetFactoryOf":function(t){const e=t,n=D(e)||P(e);return n&&void 0!==n.factory?n.factory:null}};class ft{}class ht{}function gt(t,e){for(let n=0;n<t.length;n++)e.push(t[n])}function pt(t,e){void 0===e&&(e=t);for(let n=0;n<t.length;n++){let a=t[n];Array.isArray(a)?(e===t&&(e=t.slice(0,n)),pt(a,e)):e!==t&&e.push(a)}return e}function bt(t,e){t.forEach(t=>Array.isArray(t)?bt(t,e):e(t))}function mt(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function yt(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function vt(t){throw new Error(`ASSERTION ERROR: ${t}`)}const xt=function(){var t={OnPush:0,Default:1};return t[t.OnPush]="OnPush",t[t.Default]="Default",t}(),_t=function(){var t={CheckOnce:0,Checked:1,CheckAlways:2,Detached:3,Errored:4,Destroyed:5};return t[t.CheckOnce]="CheckOnce",t[t.Checked]="Checked",t[t.CheckAlways]="CheckAlways",t[t.Detached]="Detached",t[t.Errored]="Errored",t[t.Destroyed]="Destroyed",t}();function Tt(t){return null==t||t===xt.Default}const Ot=function(){var t={Emulated:0,Native:1,None:2,ShadowDom:3};return t[t.Emulated]="Emulated",t[t.Native]="Native",t[t.None]="None",t[t.ShadowDom]="ShadowDom",t}();function wt(t){return""+{toString:t}}const St={},It=[],Nt=R({ngComponentDef:R}),Ct=R({ngDirectiveDef:R}),Rt=R({ngPipeDef:R}),At=R({ngModuleDef:R}),kt=R({ngLocaleIdDef:R}),Et=R({ngBaseDef:R}),Lt=R({__NG_ELEMENT_ID__:R});let Dt=0;function Pt(t){const e=t.type,n=e.prototype,a={},r={type:e,providersResolver:null,consts:t.consts,vars:t.vars,factory:t.factory,template:t.template||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,contentQueries:t.contentQueries||null,declaredInputs:a,inputs:null,outputs:null,exportAs:t.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:t.changeDetection===xt.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||Ot.Emulated,id:"c",styles:t.styles||It,_:null,setInput:null,schemas:t.schemas||null,tView:null};return r._=wt(()=>{const n=t.directives,i=t.features,s=t.pipes;r.id+=Dt++,r.inputs=Vt(t.inputs,a),r.outputs=Vt(t.outputs),i&&i.forEach(t=>t(r)),r.directiveDefs=n?()=>("function"==typeof n?n():n).map(qt):null,r.pipeDefs=s?()=>("function"==typeof s?s():s).map(jt):null,e.hasOwnProperty(M)||(e[M]=k({token:e,factory:t.factory}))}),r}function Mt(t,e,n){const a=t.ngComponentDef;a.directiveDefs=()=>e.map(qt),a.pipeDefs=()=>n.map(jt)}function qt(t){return Ht(t)||Ut(t)}function jt(t){return Wt(t)}function Ft(t){return{type:t.type,bootstrap:t.bootstrap||It,declarations:t.declarations||It,imports:t.imports||It,exports:t.exports||It,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}}function Gt(t,e){return wt(()=>{const n=$t(t,!0);n.declarations=e.declarations||It,n.imports=e.imports||It,n.exports=e.exports||It})}function Vt(t,e){if(null==t)return St;const n={};for(const a in t)if(t.hasOwnProperty(a)){let r=t[a],i=r;Array.isArray(r)&&(i=r[1],r=r[0]),n[r]=a,e&&(e[r]=i)}return n}function zt(t){const e={};return{inputs:Vt(t.inputs,e),declaredInputs:e,outputs:Vt(t.outputs),viewQuery:t.viewQuery||null,contentQueries:t.contentQueries||null,hostBindings:t.hostBindings||null}}const Bt=Pt;function Yt(t){return{name:t.name,factory:t.factory,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function Ht(t){return t[Nt]||null}function Ut(t){return t[Ct]||null}function Wt(t){return t[Rt]||null}function Kt(t){return t[Et]||null}function $t(t,e){const n=t[At]||null;if(!n&&!0===e)throw new Error(`Type ${j(t)} does not have 'ngModuleDef' property.`);return n}function Zt(t){return Array.isArray(t)&&"object"==typeof t[1]}function Jt(t){return Array.isArray(t)&&!0===t[1]}function Qt(t){return 0!=(4&t.flags)}function Xt(t){return 1==(1&t.flags)}function te(t){return null!==t.template}function ee(t){return 0!=(512&t[2])}class ne{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function ae(t,e,n,a,r,i){const{onChanges:s,onInit:o,doCheck:u}=e;r>=0&&(!n.preOrderHooks||r===n.preOrderHooks.length)&&(s||o||u)&&(n.preOrderHooks||(n.preOrderHooks=[])).push(a),i>=0&&(!n.preOrderCheckHooks||i===n.preOrderCheckHooks.length)&&(s||u)&&(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(a),s&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,s)),o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-t,o),u&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,u),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,u))}function re(t,e){if(t.firstTemplatePass)for(let n=e.directiveStart,a=e.directiveEnd;n<a;n++){const e=t.data[n];e.afterContentInit&&(t.contentHooks||(t.contentHooks=[])).push(-n,e.afterContentInit),e.afterContentChecked&&((t.contentHooks||(t.contentHooks=[])).push(n,e.afterContentChecked),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,e.afterContentChecked)),e.afterViewInit&&(t.viewHooks||(t.viewHooks=[])).push(-n,e.afterViewInit),e.afterViewChecked&&((t.viewHooks||(t.viewHooks=[])).push(n,e.afterViewChecked),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,e.afterViewChecked)),null!=e.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(n,e.onDestroy)}}function ie(t,e,n,a){n||se(t,e.preOrderHooks,e.preOrderCheckHooks,n,0,void 0!==a?a:null)}function se(t,e,n,a,r,i){if(a)return;const s=(3&t[2])===r?e:n;s&&function(t,e,n,a){const r=null!=a?a:-1;let i=0;for(let s=void 0!==a?65535&t[18]:0;s<e.length;s++)if("number"==typeof e[s+1]){if(i=e[s],null!=a&&i>=a)break}else e[s]<0&&(t[18]+=65536),(i<r||-1==r)&&(oe(t,n,e,s),t[18]=(4294901760&t[18])+s+2),s++}(t,s,r,i),null==i&&(3&t[2])===r&&3!==r&&(t[2]&=1023,t[2]+=1)}function oe(t,e,n,a){const r=n[a]<0,i=n[a+1],s=t[r?-n[a]:n[a]];r?t[2]>>10<t[18]>>16&&(3&t[2])===e&&(t[2]+=1024,i.call(s)):i.call(s)}let ue=null;const de=new Map;let le,ce=null;function fe(t,e){return ce&&t===ce||(ce=t,e&&(ue=de.get(t)||null),ue=ue||{classesBitMask:0,classesIndex:1,stylesBitMask:0,stylesIndex:1}),ue}function he(){ue=null,ce=null}function ge(t){for(;Array.isArray(t);)t=t[0];return t}function pe(t,e){return ge(e[t+19])}function be(t,e){return ge(e[t.index])}function me(t,e){const n=t.index;return-1==n?null:ge(e[n])}function ye(t,e){return e[1].data[t+19]}function ve(t,e){return t[e+19]}function xe(t,e){const n=e[t];return Zt(n)?n:n[0]}function _e(t){return t.__ngContext__}function Te(t){const e=_e(t);return e?Array.isArray(e)?e:e.lView:null}function Oe(t){t[18]=0}let we,Se=null;function Ie(t){Se=t}function Ne(){return we}function Ce(){we=!0}function Re(){we=!1}function Ae(){return Le}let ke,Ee,Le,De=1,Pe=0,Me=0;function qe(t=null){on!==t&&(dn(null==t?-1:t),De=null==t?0:1,Pe=0,Me=0)}function je(){De+=1+Me,Pe=0,Me=0}function Fe(t){Pe+=t,Me=Math.max(Me,Pe)}function Ge(t){We=t}function Ve(){return ke}function ze(t,e){ke=t,Ee=e}function Be(t,e){ke=t,Le=e}function Ye(){return Ee}function He(){Ee=!1}function Ue(t=Le){return 4==(4&t[2])}let We=null,Ke=!1;function $e(){return Ke}function Ze(t){Ke=t}let Je=-1;function Qe(){return Je}function Xe(t){Je=t}let tn=0;function en(){return tn}function nn(t){tn=t}function an(t,e){const n=Le;return t&&(Je=t[1].bindingStartIndex),ke=e,Ee=!0,Le=We=t,n}function rn(t=1){return We=function(t,e){for(;t>0;)e=e[16],t--;return e}(t,We),We[9]}function sn(t,e){const n=Le[1];if(Ue(Le))Le[2]&=-5;else try{Oe(Le),e&&se(Le,n.viewHooks,n.viewCheckHooks,Ke,2,void 0)}finally{Le[2]&=-73,Le[7]=n.bindingStartIndex}an(t,null)}let on=-1;function un(){return on}function dn(t){on=t,he()}let ln,cn=null;function fn(){cn="http://www.w3.org/2000/svg"}function hn(){cn="http://www.w3.org/1998/MathML/"}function gn(){pn()}function pn(){cn=null}function bn(t){ln=t}function mn(){return ln}function yn(t,e){return!(t!=t&&e!=e)&&t!==e}function vn(t){return"string"==typeof t?t:null==t?"":""+t}function xn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():vn(t)}const _n=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(U))();function Tn(t){return{name:"window",target:t.ownerDocument.defaultView}}function On(t){return{name:"document",target:t.ownerDocument}}function wn(t){return{name:"body",target:t.ownerDocument.body}}function Sn(t){return t.indexOf("�")>=0}function In(t){return t instanceof Function?t():t}function Nn(t,e){0===e?t[2]>0&&function(t){Rn(t,2|Cn(t))}(t):t[2]=e}function Cn(t){return t[1]}function Rn(t,e){t[1]=e}function An(t,e){return t[e+2]}function kn(t,e){return 1&t[e+0]}function En(t,e){return(1&kn(t,e))>0}function Ln(t,e){return t[e+0]>>1}function Dn(t,e,n){const a=kn(t,e);t[e+0]=a|n<<1}function Pn(t,e){return t[e+1]}function Mn(t,e,n){return t[e+3+n]}function qn(t,e){return!(!t||e!==t[2])}function jn(t){return(1&Cn(t))>0}function Fn(t){return(2&Cn(t))>0}function Gn(t){return 6+t[4]}function Vn(t,e){let n=Array.isArray(t)?t[0]:t,a=Array.isArray(e)?e[0]:e;return n instanceof String&&(n=n.toString()),a instanceof String&&(a=a.toString()),yn(n,a)}function zn(t){return null!=t&&""!==t}function Bn(t,e,n=" "){return t+(e.length&&t.length?n:"")+e}function Yn(t){return t.replace(/[a-z][A-Z]/g,t=>t.charAt(0)+"-"+t.charAt(1)).toLowerCase()}function Hn(t){return Un(t)?t[0]:t}function Un(t){return Array.isArray(t)&&t.length>=6&&"string"!=typeof t[1]}function Wn(t){const e=Hn(t);return e&&e[0]||""}function Kn(t){return 0!=(8&t.flags)}function $n(t){return 0!=(16&t.flags)}function Zn(t,e){return t[e+0]}function Jn(t,e,n){t[e+1]=n}function Qn(t,e){return t[e+1]}const Xn=function(){var t={Important:1,DashCase:2};return t[t.Important]="Important",t[t.DashCase]="DashCase",t}();function ta(t){return!!t.listen}const ea={createRenderer:(t,e)=>document};function na(t,e){const n=Ae()[12],a=ta(n);let r=0;for(;r<e.length;){const i=e[r];if("number"==typeof i){if(0!==i)break;r++;const s=e[r++],o=e[r++],u=e[r++];a?n.setAttribute(t,o,u,s):t.setAttributeNS(s,o,u)}else{const s=i,o=e[++r];ra(s)?a&&n.setProperty(t,s,o):a?n.setAttribute(t,s,o):t.setAttribute(s,o),r++}}return r}function aa(t){return 3===t||4===t||6===t}function ra(t){return"@"===t[0]}function ia(t){return-1!==t}function sa(t){return 32767&t}function oa(t){return t>>16}function ua(t,e){let n=oa(t),a=e;for(;n>0;)a=a[16],n--;return a}function da(t){const e=t[3];return Jt(e)?e[3]:e}function la(t){let e=t[6];for(;null!==e&&2===e.type;)e=(t=t[16])[6];return t}function ca(t){return function(t){let e=Zt(t)?t:Te(t);for(;e&&!(512&e[2]);)e=da(e);return e}(t)[9]}let fa=!0;function ha(t){const e=fa;return fa=t,e}let ga=0;function pa(t,e){const n=ma(t,e);if(-1!==n)return n;const a=e[1];a.firstTemplatePass&&(t.injectorIndex=e.length,ba(a.data,t),ba(e,null),ba(a.blueprint,null));const r=ya(t,e),i=sa(r),s=ua(r,e),o=t.injectorIndex;if(ia(r)){const t=s[1].data;for(let n=0;n<8;n++)e[o+n]=s[i+n]|t[i+n]}return e[o+8]=r,o}function ba(t,e){t.push(0,0,0,0,0,0,0,0,e)}function ma(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null==e[t.injectorIndex+8]?-1:t.injectorIndex}function ya(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=e[6],a=1;for(;n&&-1===n.injectorIndex;)n=(e=e[16])?e[6]:null,a++;return n?n.injectorIndex|a<<16:-1}function va(t,e,n){!function(t,e,n){let a="string"!=typeof n?n[Lt]:n.charCodeAt(0)||0;null==a&&(a=n[Lt]=ga++);const r=255&a,i=1<<r,s=64&r,o=32&r,u=e.data;128&r?s?o?u[t+7]|=i:u[t+6]|=i:o?u[t+5]|=i:u[t+4]|=i:s?o?u[t+3]|=i:u[t+2]|=i:o?u[t+1]|=i:u[t]|=i}(t,e,n)}function xa(t,e){if("class"===e)return Wn(t.classes);if("style"===e)return Wn(t.styles);const n=t.attrs;if(n){const t=n.length;let a=0;for(;a<t;){const r=n[a];if(aa(r))break;if(0===r)a+=2;else if("number"==typeof r)for(a++;a<t&&"string"==typeof n[a];)a++;else{if(r===e)return n[a+1];a+=2}}}return null}function _a(t,e,n,a=C.Default,r){if(t){const r=function(t){if("string"==typeof t)return t.charCodeAt(0)||0;const e=t[Lt];return"number"==typeof e&&e>0?255&e:e}(n);if("function"==typeof r){const i=Ve(),s=Ae();Be(t,e);try{const t=r();if(null!=t||a&C.Optional)return t;throw new Error(`No provider for ${xn(n)}!`)}finally{Be(i,s)}}else if("number"==typeof r){if(-1===r)return new Ca(t,e);let i=null,s=ma(t,e),o=-1,u=a&C.Host?la(e)[6]:null;for((-1===s||a&C.SkipSelf)&&(o=-1===s?ya(t,e):e[s+8],Na(a,!1)?(i=e[1],s=sa(o),e=ua(o,e)):s=-1);-1!==s;){o=e[s+8];const t=e[1];if(Ia(r,s,t.data)){const t=Oa(s,e,n,i,a,u);if(t!==Ta)return t}Na(a,e[1].data[s+8]===u)&&Ia(r,s,e)?(i=t,s=sa(o),e=ua(o,e)):s=-1}}}if(a&C.Optional&&void 0===r&&(r=null),0==(a&(C.Self|C.Host))){const t=e[10],i=nt(void 0);try{return t?t.get(n,r,a&C.Optional):st(n,r,a&C.Optional)}finally{nt(i)}}if(a&C.Optional)return r;throw new Error(`NodeInjector: NOT_FOUND [${xn(n)}]`)}const Ta={};function Oa(t,e,n,a,r,i){const s=e[1],o=s.data[t+8],u=wa(o,s,n,null==a?Xt(o)&&fa:a!=s&&3===o.type,r&C.Host&&i===o);return null!==u?Sa(s.data,e,u,o):Ta}function wa(t,e,n,a,r){const i=t.providerIndexes,s=e.data,o=65535&i,u=t.directiveStart,d=i>>16,l=r?o+d:t.directiveEnd;for(let c=a?o:o+d;c<l;c++){const t=s[c];if(c<u&&n===t||c>=u&&t.type===n)return c}if(r){const t=s[u];if(t&&te(t)&&t.type===n)return u}return null}function Sa(t,e,n,a){let r=e[n];if(null!==(i=r)&&"object"==typeof i&&Object.getPrototypeOf(i)==ne.prototype){const i=r;if(i.resolving)throw new Error(`Circular dep for ${xn(t[n])}`);const s=ha(i.canSeeViewProviders);let o;i.resolving=!0,i.injectImpl&&(o=nt(i.injectImpl));const u=Ve(),d=Ae();Be(a,e);try{r=e[n]=i.factory(void 0,t,e,a)}finally{i.injectImpl&&nt(o),ha(s),i.resolving=!1,Be(u,d)}}var i;return r}function Ia(t,e,n){const a=64&t,r=32&t;let i;return i=128&t?a?r?n[e+7]:n[e+6]:r?n[e+5]:n[e+4]:a?r?n[e+3]:n[e+2]:r?n[e+1]:n[e],!!(i&1<<t)}function Na(t,e){return!(t&C.Self||t&C.Host&&e)}class Ca{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return _a(this._tNode,this._lView,t,void 0,e)}}function Ra(t){const e=t,n=Ht(e)||Ut(e)||Wt(e)||D(e)||P(e);return n&&void 0!==n.factory?n.factory:null}function Aa(t){const e=Ra(Object.getPrototypeOf(t.prototype).constructor);return null!==e?e:t=>new t}function ka(t){return t.ngDebugContext}function Ea(t){return t.ngOriginalError}function La(t,...e){t.error(...e)}class Da{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),a=function(t){return t.ngErrorLogger||La}(t);a(this._console,"ERROR",t),e&&a(this._console,"ORIGINAL ERROR",e),n&&a(this._console,"ERROR CONTEXT",n)}_findContext(t){return t?ka(t)?ka(t):this._findContext(Ea(t)):null}_findOriginalError(t){let e=Ea(t);for(;e&&Ea(e);)e=Ea(e);return e}}const Pa={name:"custom-elements"},Ma={name:"no-errors-schema"},qa="__SANITIZER_TRUSTED_BRAND__";function ja(t,e){return t instanceof String&&t[qa]===e}function Fa(t){return Ya(t,"Html")}function Ga(t){return Ya(t,"Style")}function Va(t){return Ya(t,"Script")}function za(t){return Ya(t,"Url")}function Ba(t){return Ya(t,"ResourceUrl")}function Ya(t,e){const n=new String(t);return n[qa]=e,n}let Ha=!0,Ua=!1;function Wa(){return Ua=!0,Ha}function Ka(){if(Ua)throw new Error("Cannot enable prod mode after platform setup.");Ha=!1}class $a{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),this.inertBodyElement=this.inertDocument.body,null==this.inertBodyElement){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t),this.inertBodyElement=this.inertDocument.createElement("body"),t.appendChild(this.inertBodyElement)}this.inertBodyElement.innerHTML='<svg><g onload="this.parentNode.remove()"></g></svg>',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='<svg><p><style><img src="</style><img src=x onerror=alert(1)//">',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}getInertBodyElement_XHR(t){t="<body><remove></remove>"+t+"</body>";try{t=encodeURI(t)}catch(a){return null}const e=new XMLHttpRequest;e.responseType="document",e.open("GET","data:text/html;charset=utf-8,"+t,!1),e.send(void 0);const n=e.response.body;return n.removeChild(n.firstChild),n}getInertBodyElement_DOMParser(t){t="<body><remove></remove>"+t+"</body>";try{const e=(new window.DOMParser).parseFromString(t,"text/html").body;return e.removeChild(e.firstChild),e}catch(e){return null}}getInertBodyElement_InertDocument(t){const e=this.inertDocument.createElement("template");return"content"in e?(e.innerHTML=t,e):(this.inertBodyElement.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)}stripCustomNsAttrs(t){const e=t.attributes;for(let a=e.length-1;0<a;a--){const n=e.item(a).name;"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||t.removeAttribute(n)}let n=t.firstChild;for(;n;)n.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(n),n=n.nextSibling}}const Za=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Ja=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function Qa(t){return(t=String(t)).match(Za)||t.match(Ja)?t:(Wa()&&console.warn(`WARNING: sanitizing unsafe URL value ${t} (see http://g.co/ng/security#xss)`),"unsafe:"+t)}function Xa(t){return(t=String(t)).split(",").map(t=>Qa(t.trim())).join(", ")}function tr(t){const e={};for(const n of t.split(","))e[n]=!0;return e}function er(...t){const e={};for(const n of t)for(const t in n)n.hasOwnProperty(t)&&(e[t]=!0);return e}const nr=tr("area,br,col,hr,img,wbr"),ar=tr("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),rr=tr("rp,rt"),ir=er(rr,ar),sr=er(nr,er(ar,tr("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")),er(rr,tr("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")),ir),or=tr("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),ur=tr("srcset"),dr=er(or,ur,tr("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),tr("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")),lr=tr("script,style,template");class cr{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,n=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let t=this.checkClobberedElement(e,e.nextSibling);if(t){e=t;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!sr.hasOwnProperty(e))return this.sanitizedSomething=!0,!lr.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const n=t.attributes;for(let a=0;a<n.length;a++){const t=n.item(a),e=t.name,r=e.toLowerCase();if(!dr.hasOwnProperty(r)){this.sanitizedSomething=!0;continue}let i=t.value;or[r]&&(i=Qa(i)),ur[r]&&(i=Xa(i)),this.buf.push(" ",e,'="',gr(i),'"')}return this.buf.push(">"),!0}endElement(t){const e=t.nodeName.toLowerCase();sr.hasOwnProperty(e)&&!nr.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))}chars(t){this.buf.push(gr(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 fr=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,hr=/([^\#-~ |!])/g;function gr(t){return t.replace(/&/g,"&amp;").replace(fr,(function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"})).replace(hr,(function(t){return"&#"+t.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}let pr;function br(t,e){let n=null;try{pr=pr||new $a(t);let a=e?String(e):"";n=pr.getInertBodyElement(a);let r=5,i=a;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,a=i,i=n.innerHTML,n=pr.getInertBodyElement(a)}while(a!==i);const s=new cr,o=s.sanitizeChildren(mr(n)||n);return Wa()&&s.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),o}finally{if(n){const t=mr(n)||n;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function mr(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const yr=function(){var t={NONE:0,HTML:1,STYLE:2,SCRIPT:3,URL:4,RESOURCE_URL:5};return t[t.NONE]="NONE",t[t.HTML]="HTML",t[t.STYLE]="STYLE",t[t.SCRIPT]="SCRIPT",t[t.URL]="URL",t[t.RESOURCE_URL]="RESOURCE_URL",t}();class vr{}const xr=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),_r=/^url\(([^)]+)\)$/;function Tr(t){if(!(t=String(t).trim()))return"";const e=t.match(_r);return e&&Qa(e[1])===e[1]||t.match(xr)&&function(t){let e=!0,n=!0;for(let a=0;a<t.length;a++){const r=t.charAt(a);"'"===r&&n?e=!e:'"'===r&&e&&(n=!n)}return e&&n}(t)?t:(Wa()&&console.warn(`WARNING: sanitizing unsafe style value ${t} (see http://g.co/ng/security#xss).`),"unsafe")}function Or(t){const e=kr();return e?e.sanitize(yr.HTML,t)||"":ja(t,"Html")?t.toString():br(document,vn(t))}function wr(t){const e=kr();return e?e.sanitize(yr.STYLE,t)||"":ja(t,"Style")?t.toString():Tr(vn(t))}function Sr(t){const e=kr();return e?e.sanitize(yr.URL,t)||"":ja(t,"Url")?t.toString():Qa(vn(t))}function Ir(t){const e=kr();if(e)return e.sanitize(yr.RESOURCE_URL,t)||"";if(ja(t,"ResourceUrl"))return t.toString();throw new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)")}function Nr(t){const e=kr();if(e)return e.sanitize(yr.SCRIPT,t)||"";if(ja(t,"Script"))return t.toString();throw new Error("unsafe value used in a script context")}function Cr(t,e){return"src"===e&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===e&&("base"===t||"link"===t)?Ir:Sr}function Rr(t,e,n){return Cr(e,n)(t)}const Ar=function(t,e,n){let a=!0;return 1&(n=n||3)&&(a="background-image"===t||"background"===t||"border-image"===t||"filter"===t||"list-style"===t||"list-style-image"===t||"clip-path"===t),2&n?a?wr(e):e:a};function kr(){const t=Ae();return t&&t[13]}const Er=/([A-Z])/g;function Lr(t){try{return null!=t?t.toString().slice(0,30):t}catch(e){return"[ERROR] Exception while trying to serialize the value"}}function Dr(t){let e=_e(t);if(e){if(Array.isArray(e)){const a=e;let r,i=void 0,s=void 0;if((n=t)&&n.constructor&&n.constructor.ngComponentDef){if(r=Gr(a,t),-1==r)throw new Error("The provided component was not found in the application");i=t}else if(function(t){return t&&t.constructor&&t.constructor.ngDirectiveDef}(t)){if(r=function(t,e){let n=t[1].firstChild;for(;n;){const a=n.directiveEnd;for(let r=n.directiveStart;r<a;r++)if(t[r]===e)return n.index;n=Fr(n)}return-1}(a,t),-1==r)throw new Error("The provided directive was not found in the application");s=Vr(r,a,!1)}else if(r=jr(a,t),-1==r)return null;const o=ge(a[r]),u=_e(o),d=u&&!Array.isArray(u)?u:Pr(a,r,o);if(i&&void 0===d.component&&(d.component=i,qr(d.component,d)),s&&void 0===d.directives){d.directives=s;for(let t=0;t<s.length;t++)qr(s[t],d)}qr(d.native,d),e=d}}else{const n=t;let a=n;for(;a=a.parentNode;){const t=_e(a);if(t){let a;if(a=Array.isArray(t)?t:t.lView,!a)return null;const r=jr(a,n);if(r>=0){const t=ge(a[r]),n=Pr(a,r,t);qr(t,n),e=n;break}}}}var n;return e||null}function Pr(t,e,n){return{lView:t,nodeIndex:e,native:n,component:void 0,directives:void 0,localRefs:void 0}}function Mr(t){let e,n=_e(t);if(Array.isArray(n)){const a=Gr(n,t);e=xe(a,n);const r=Pr(n,a,e[0]);r.component=t,qr(t,r),qr(r.native,r)}else e=xe(n.nodeIndex,n.lView);return e}function qr(t,e){t.__ngContext__=e}function jr(t,e){let n=t[1].firstChild;for(;n;){if(me(n,t)===e)return n.index;n=Fr(n)}return-1}function Fr(t){if(t.child)return t.child;if(t.next)return t.next;for(;t.parent&&!t.parent.next;)t=t.parent;return t.parent&&t.parent.next}function Gr(t,e){const n=t[1].components;if(n)for(let a=0;a<n.length;a++){const r=n[a];if(xe(r,t)[9]===e)return r}else if(xe(19,t)[9]===e)return 19;return-1}function Vr(t,e,n){const a=e[1].data[t];let r=a.directiveStart;return 0==r?It:(!n&&1&a.flags&&r++,e.slice(r,a.directiveEnd))}function zr(t){throw new Error(`Multiple components match node with tagname ${t.tagName}`)}function Br(){throw new Error("Cannot mix multi providers and regular providers")}function Yr(t,e){const n=t.length,a=t.indexOf(e),r=a+e.length;return!(-1===a||a>0&&" "!==t[a-1]||r<n&&" "!==t[r])}function Hr(t,e,n){return e===(0!==t.type||n?t.tagName:"ng-template")}function Ur(t,e,n){let a=4;const r=t.attrs||[],i=function(t){for(let e=0;e<t.length;e++)if(aa(t[e]))return e;return t.length}(r);let s=!1;for(let o=0;o<e.length;o++){const u=e[o];if("number"!=typeof u){if(!s)if(4&a){if(a=2|1&a,""!==u&&!Hr(t,u,n)||""===u&&1===e.length){if(Wr(a))return!1;s=!0}}else{const d=8&a?u:e[++o];if(8&a&&t.classes){if(!Yr(Wn(t.classes),d)){if(Wr(a))return!1;s=!0}continue}const l=Kr(8&a?"class":u,r,0==t.type&&"ng-template"!==t.tagName,n);if(-1===l){if(Wr(a))return!1;s=!0;continue}if(""!==d){let t;t=l>i?"":r[l+1];const e=8&a?t:null;if(e&&!Yr(e,d)||2&a&&d!==t){if(Wr(a))return!1;s=!0}}}}else{if(!s&&!Wr(a)&&!Wr(u))return!1;if(s&&Wr(u))continue;s=!1,a=u|1&a}}return Wr(a)||s}function Wr(t){return 0==(1&t)}function Kr(t,e,n,a){if(null===e)return-1;let r=0;if(a||!n){let n=!1;for(;r<e.length;){const a=e[r];if(a===t)return r;if(3===a||6===a)n=!0;else{if(1===a){let t=e[++r];for(;"string"==typeof t;)t=e[++r];continue}if(4===a)break;if(0===a){r+=4;continue}}r+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){if(t[n]===e)return n;n++}return-1}(e,t)}function $r(t,e,n=!1){for(let a=0;a<e.length;a++)if(Ur(t,e[a],n))return!0;return!1}function Zr(t,e){t:for(let n=0;n<e.length;n++){const a=e[n];if(t.length===a.length){for(let e=0;e<t.length;e++)if(t[e]!==a[e])continue t;return!0}}return!1}let Jr=[];function Qr(t,e,n,a,r,i,s,o){const u=!a,d=fe(n,Fn(t)),l=u?0:d.classesIndex++;return!(!ti(t,e,l,a,r,i,s,o,!1)&&!o||(d.classesBitMask|=1<<l,0))}function Xr(t,e,n,a,r,i,s,o,u){const d=!a,l=fe(n,Fn(t)),c=d?0:l.stylesIndex++;return!(!ti(t,e,c,a,r,i,o,u,!!d||!!s&&s(a,null,1))&&!u||(l.stylesBitMask|=1<<c,0))}function ti(t,e,n,a,r,i,s,o,u){jn(t)||(s?function(t,e,n,a,r){Jr.unshift(t,e,n,a,r)}(t,n,a,r,u):(Jr.length&&ei(),ni(t,n,a,r,u)));const d=o||Vn(e[r],i);return d&&(e[r]=i),d}function ei(){let t=0;for(;t<Jr.length;)ni(Jr[t++],Jr[t++],Jr[t++],Jr[t++],Jr[t++]);Jr.length=0}function ni(t,e,n,a,r){let i=!1;if(n){let s=!1,o=Gn(t);for(;o<t.length;){const i=Pn(t,o),u=An(t,o);if(s=n<=u,s){n<u&&ai(t,o,n,r),ri(t,!1,o,a,e);break}o+=3+i}s||(ai(t,t.length,n,r),ri(t,!1,o,a,e),i=!0)}else ri(t,!0,3,a,e),i=!0;return i}function ai(t,e,n,a){t.splice(e,0,a?1:0,1,n,null),Dn(t,e,1)}function ri(t,e,n,a,r){const i=n+3;let s=i+Pn(t,n);if(e||s--,"number"==typeof a){for(let e=i;e<=s;e++)if(t[e]===a)return;t.splice(s,0,a),t[n+1]++,Dn(t,n,Ln(t,n)|1<<r)}else null!==a&&null==t[s]&&(t[s]=a)}function ii(t,e,n,a,r,i,s,o){return r&&a&&(function(t){if(!jn(t)){const e=Hn(t);e&&function(t,e){for(let n=1;n<e.length;n+=2){const a=Qn(e,n);a&&ni(t,-1,Zn(e,n),a,!1)}}(t,e),function(t){Rn(t,1|Cn(t))}(t)}}(a),function(t,e){return t&&e>0}(a,i))?(si(a,t,e,n,i,s,o),!0):r}function si(t,e,n,a,r,i,s){const o=!0===(u=r)?-1:!1===u?0:u;var u;const d=oi,l=(o&Ln(t,3))>0?1:0;let c=Gn(t);for(;c<t.length;){const r=Pn(t,c);if(o&Ln(t,c)){let o=!1;const u=An(t,c),f=r-1,h=Mn(t,c,f);for(let r=0;r<f;r++){const d=Mn(t,c,r),l=a[d];if(zn(l)){i(e,n,u,s&&En(t,c)?s(u,l,2):l,d),o=!0;break}}if(d){const r=d(t,e,n,a,i,s,l|(o?4:2),u,h);o=o||r}o||i(e,n,u,h)}c+=3+r}d&&d(t,e,n,a,i,s,l)}let oi=null;const ui=(t,e,n,a)=>{const r=e.style;a?(a=a.toString(),t&&ta(t)?t.setStyle(e,n,a,Xn.DashCase):r&&r.setProperty(n,a)):t&&ta(t)?t.removeStyle(e,n,Xn.DashCase):r&&r.removeProperty(n)},di=(t,e,n,a)=>{if(""!==n){const r=e.classList;a?t&&ta(t)?t.addClass(e,n):r&&r.add(n):t&&ta(t)?t.removeClass(e,n):r&&r.remove(n)}};function li(t,e,n,a){const r=Hn(n);if(r)for(let i=1;i<r.length;i+=2){const n=Zn(r,i),s=Qn(r,i);a?di(t,e,n,s):ui(t,e,n,s)}}const ci={},fi={marker:"element"},hi={marker:"comment"},gi=(t,e,n,a,r,i,s,o,u)=>{let d=!1;if(Pn(t,3)){let l=!0;const c=!o;c&&-2&s&&(l=!1,d=!0),l&&(d=function t(e,n,a,r,i,s,o,u,d,l){let c=!1;if(d<Pn(e,3)){const f=Mn(e,3,d),h=r[f];let g=function(t){return t>=yi.length&&yi.push(1),yi[t]}(d);for(;g<h.length;){const p=Zn(h,g),b=u&&p>u,m=!b&&p===u,y=Qn(h,g),v=zn(y);let x=t(e,n,a,r,i,s,b?o:bi(o,v,m),b?u:p,d+1,l);if(b){c||(c=x);break}if(!x&&mi(o,m)){const t=m&&!v,e=t?l:y,r=t?f:null;i(n,a,p,s?s(p,e,3):e,r),x=!0}c=x&&m,g+=2}if(yi[d]=g,1===h.length||!u)return t(e,n,a,r,i,s,o,u,d+1,l)}return c}(t,e,n,a,r,i,s,o||null,0,u||null)),c&&function(){for(let t=0;t<yi.length;t++)yi[t]=1}()}return d};function pi(){oi=gi}function bi(t,e,n){let a=t;return e||4&t||!(n||1&t)?(a|=4,a&=-3):(a|=2,a&=-5),a}function mi(t,e){let n=(1&t)>0;return n?4&t&&e&&(n=!1):2&t&&(n=e),n}const yi=[];function vi(t,e,n,a){for(let r=1;r<t.length;r+=2){const i=Zn(t,r);if(e<=i){let s=!1;if(i===e){const e=t[r];!a&&zn(e)||(s=!0,Jn(t,r,n))}else s=!0,t.splice(r,0,e,n);return s}}return t.push(e,n),!0}function xi(t,e){let n="";for(let a=1;a<t.length;a+=2){const r=Zn(t,a),i=Qn(t,a),s=Bn(r,e?"":i,":");n=Bn(n,s,e?" ":"; ")}return n}function _i(t){let e={};if(t)for(let n=1;n<t.length;n+=2){const a=Zn(t,n),r=Qn(t,n);e[a]=r}return e}class Ti{constructor(t,e,n){this.context=t,this._data=e,this._isClassBased=n,this._sanitizer=null}overrideSanitizer(t){this._sanitizer=t}get summary(){const t={};return this._mapValues((e,n,a)=>{t[e]={prop:e,value:n,bindingIndex:a}}),t}get values(){const t={};return this._mapValues((e,n)=>{t[e]=n}),t}_mapValues(t){Pn(this.context,3)>0&&pi();const e=this._isClassBased?null:this._sanitizer||mn();si(this.context,null,{},this._data,!0,(e,n,a,r,i)=>{t(a,r,i||null)},e)}}function Oi(t){wi(Ae(),t)}function wi(t,e){ie(t,t[1],$e(),e),dn(e)}const Si=(()=>Promise.resolve(null))();function Ii(t){const e=t[1],n=Ue(t);if(e.firstTemplatePass=!1,t[7]=e.bindingStartIndex,!n){const n=$e();ie(t,e,n,void 0),function(t){for(let e=t[14];null!==e;e=e[4])if(-1===e[2]&&Jt(e))for(let t=9;t<e.length;t++){const n=e[t];Ei(n,n[1],n[9])}}(t),Ni(e,t),Oe(t),se(t,e.contentHooks,e.contentCheckHooks,n,1,void 0),function(t,e){const n=un();try{if(t.expandoInstructions){let n=e[7]=t.expandoStartIndex;Xe(n);let a=-1,r=-1;for(let i=0;i<t.expandoInstructions.length;i++){const s=t.expandoInstructions[i];"number"==typeof s?(s<=0?(r=-s,qe(r),n+=9+t.expandoInstructions[++i],a=n):n+=s,Xe(n)):(null!==s&&(e[7]=n,s(2,ge(e[a]),r),je()),a++)}}}finally{qe(n)}}(e,t)}n&&e.staticContentQueries&&Ni(e,t),n&&!e.staticViewQueries||ls(2,e,t[9]),function(t,e){if(null!=e)for(let n=0;n<e.length;n++)as(t,e[n])}(t,e.components)}function Ni(t,e){const n=t.contentQueries;if(null!==n)for(let a=0;a<n.length;a+=2){const r=n[a],i=n[a+1];if(-1!==i){const n=t.data[i];nn(r),n.contentQueries(2,e[i],i)}}}function Ci(t,e){let n;const a=e||Ae()[12],r=cn;return n=ta(a)?a.createElement(t,r):null===r?a.createElement(t):a.createElementNS(r,t),n}function Ri(t,e,n,a,r,i,s,o,u,d){const l=e.blueprint.slice();return l[0]=r,l[2]=140|a,Oe(l),l[3]=l[16]=t,l[9]=n,l[11]=s||t&&t[11],l[12]=o||t&&t[12],l[13]=u||t&&t[13]||null,l[10]=d||t&&t[10]||null,l[6]=i,l}function Ai(t,e,n,a,r,i){const s=n+19,o=t.data[s]||function(t,e,n,a,r,i,s){const o=Ve(),u=Ye(),d=u?o:o&&o.parent,l=t.data[n]=Vi(0,d&&d!==e?d:null,a,n,r,i);return 0!==s&&t.firstChild||(t.firstChild=l),o&&(!u||null!=o.child||null===l.parent&&2!==o.type?u||(o.next=l):o.child=l),l}(t,e,s,a,r,i,n);return ze(o,!0),o}function ki(t,e,n,a){let r=t.node;return null==r&&(t.node=r=Vi(0,e,2,n,null,null)),a[6]=r}function Ei(t,e,n){const a=Ye(),r=Ve();let i;if(512&t[2])ss(ca(t));else{let s=!1;try{ze(null,!0),i=an(t,t[6]),Oe(t),Di(t,e.template,Pi(t),n),e.firstTemplatePass=!1,Ii(t),s=!0}finally{sn(i,s),ze(r,a)}}}function Li(t,e,n){const a=t[11],r=an(t,t[6]),i=!$e(),s=Ue(t);let o=!1;try{i&&!s&&a.begin&&a.begin(),s&&(n&&Di(t,n,1,e),Ii(t),t[2]&=-5),Oe(t),n&&Di(t,n,2,e),Ii(t),o=!0}finally{i&&!s&&a.end&&a.end(),sn(r,o)}}function Di(t,e,n,a){pn();const r=un();try{qe(null),2&n&&wi(t,0),e(n,a)}finally{dn(r)}}function Pi(t){return Ue(t)?1:2}function Mi(t,e,n){if(Qt(e)){const a=e.directiveEnd;for(let r=e.directiveStart;r<a;r++){const e=t.data[r];e.contentQueries&&e.contentQueries(1,n[r],r)}}}function qi(t,e,n,a=be){Ne()&&(function(t,e,n){const a=n.directiveStart,r=n.directiveEnd;!t.firstTemplatePass&&a<r&&pa(n,e);for(let i=a;i<r;i++){const a=t.data[i];te(a)&&ts(e,n,a),Ki(e,Sa(t.data,e,i,n),a,i)}}(t,e,n),function(t,e,n){const a=n.directiveStart,r=n.directiveEnd,i=t.expandoInstructions,s=t.firstTemplatePass,o=n.index-19,u=un();try{qe(o);for(let o=a;o<r;o++){const a=t.data[o],r=e[o];a.hostBindings?(Ui(a,i,r,n,s),je()):s&&i.push(null)}}finally{qe(u)}}(t,e,n),function(t,e,n){const a=e.localNames;if(a){let r=e.index+1;for(let i=0;i<a.length;i+=2){const s=a[i+1],o=-1===s?n(e,t):t[s];t[r++]=o}}}(e,n,a),qe(null))}function ji(t){return t.tView||(t.tView=Fi(-1,t.template,t.consts,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas))}function Fi(t,e,n,a,r,i,s,o){const u=19+n,d=u+a,l=function(t,e){const n=new Array(e).fill(null,0,t).fill(ci,t);return n[7]=t,n}(u,d);return l[1]={id:t,blueprint:l,template:e,queries:null,viewQuery:s,node:null,data:l.slice().fill(null,u),bindingStartIndex:u,expandoStartIndex:d,expandoInstructions:null,firstTemplatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof r?r():r,pipeRegistry:"function"==typeof i?i():i,firstChild:null,schemas:o}}function Gi(t,e){const n=t.createRenderer(null,null);return"string"==typeof e?ta(n)?n.selectRootElement(e):n.querySelector(e):e}function Vi(t,e,n,a,r,i){return{type:n,index:a,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,propertyMetadataStartIndex:-1,propertyMetadataEndIndex:-1,flags:0,providerIndexes:0,tagName:r,attrs:i,localNames:null,initialInputs:void 0,inputs:void 0,outputs:void 0,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,classes:null}}function zi(t,e){const n=Ae()[1];let a=null;const r=t.directiveStart,i=t.directiveEnd;if(i>r){const t=0===e,s=n.data;for(let e=r;e<i;e++){const n=s[e],r=t?n.inputs:n.outputs;for(let t in r)if(r.hasOwnProperty(t)){a=a||{};const n=r[t];a.hasOwnProperty(t)?a[t].push(e,t,n):a[t]=[e,t,n]}}}return a}const Bi={class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"};function Yi(t,e,n,a,r,i){const s=Ae(),o=pe(t,s),u=ye(t,s);let d,l;if(!r&&(d=hs(u))&&(l=d[e]))ys(s,l,n),Xt(u)&&function(t,e){const n=xe(e,t);16&n[2]||(n[2]|=64)}(s,t+19);else if(3===u.type){!function(t,e,n,a,r){const i=e[7]-1,s=a[i];"�"==s[0]&&(a[i]=n+s,r||(-1==t.propertyMetadataStartIndex&&(t.propertyMetadataStartIndex=i),t.propertyMetadataEndIndex=i+1))}(u,s,e=Bi[e]||e,s[1].data,r);const t=i?i(u,s):s[12];n=null!=a?a(n,u.tagName||"",e):n,ta(t)?t.setProperty(o,e,n):ra(e)||(o.setProperty?o.setProperty(e,n):o[e]=n)}}function Hi(t,e,n,a){if(!Ne())return;const r=function(t,e,n){const a=t.directiveRegistry;let r=null;if(a)for(let i=0;i<a.length;i++){const s=a[i];$r(n,s.selectors,!1)&&(r||(r=[]),va(pa(n,e),t,s.type),te(s)?(1&n.flags&&zr(n),n.flags=1,r.unshift(s)):r.push(s))}return r}(t,e,n),i=a?{"":-1}:null;if(r){Qi(n,t.data.length,r.length);for(let t=0;t<r.length;t++){const e=r[t];e.providersResolver&&e.providersResolver(e)}Wi(t,n,r.length);const a=t.preOrderHooks&&t.preOrderHooks.length||0,s=t.preOrderCheckHooks&&t.preOrderCheckHooks.length||0,o=n.index-19;for(let n=0;n<r.length;n++){const u=r[n],d=t.data.length;Xi(t,e,u,u.factory),Ji(t.data.length-1,u,i),ae(d,u,t,o,a,s)}}i&&function(t,e,n){if(e){const a=t.localNames=[];for(let t=0;t<e.length;t+=2){const r=n[e[t+1]];if(null==r)throw new Error(`Export of name '${e[t+1]}' not found!`);a.push(e[t],r)}}}(n,a,i)}function Ui(t,e,n,a,r){const i=e.length;Ie(t),t.hostBindings(1,n,a.index-19),Ie(null),i===e.length&&r&&e.push(t.hostBindings)}function Wi(t,e,n){const a=-(e.index-19),r=t.data.length-(65535&e.providerIndexes);(t.expandoInstructions||(t.expandoInstructions=[])).push(a,r,n)}function Ki(t,e,n,a){const r=Ve();$i(t,r,e),r&&r.attrs&&function(t,e,n,a){let r=a.initialInputs;(void 0===r||t>=r.length)&&(r=function(t,e,n){const a=n.initialInputs||(n.initialInputs=[]);for(let s=a.length;s<=t;s++)a.push(null);const r=n.attrs;let i=0;for(;i<r.length;){const n=r[i];if(0===n){i+=4;continue}if(5===n){i+=2;continue}if("number"==typeof n)break;const s=e[n],o=r[i+1];void 0!==s&&(a[t]||(a[t]=[])).push(n,s,o),i+=2}return a}(t,n.inputs,a));const i=r[t];if(i){const t=n.setInput;for(let a=0;a<i.length;){const r=i[a++],s=i[a++],o=i[a++];t?n.setInput(e,o,r,s):e[s]=o}}}(a,e,n,r),t[1].firstTemplatePass&&n.contentQueries&&(r.flags|=4),te(n)&&(xe(r.index,t)[9]=e)}function $i(t,e,n){const a=be(e,t);qr(n,t),a&&qr(a,t)}function Zi(t){const e=Ae()[1];(e.components||(e.components=[])).push(t.index)}function Ji(t,e,n){if(n){if(e.exportAs)for(let a=0;a<e.exportAs.length;a++)n[e.exportAs[a]]=t;e.template&&(n[""]=t)}}function Qi(t,e,n){t.flags=1&t.flags,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function Xi(t,e,n,a){t.data.push(n);const r=new ne(a,te(n),null);t.blueprint.push(r),e.push(r)}function ts(t,e,n){const a=be(e,t),r=ji(n),i=t[11],s=rs(t,Ri(t,r,null,n.onPush?64:16,t[e.index],e,i,i.createRenderer(a,n)));s[6]=e,t[e.index]=s,t[1].firstTemplatePass&&Zi(e)}function es(t,e,n,a,r,i){const s=pe(t,a),o=a[12];if(null==n)ta(o)?o.removeAttribute(s,e,i):s.removeAttribute(e);else{const u=ye(t,a),d=null==r?vn(n):r(n,u.tagName||"",e);ta(o)?o.setAttribute(s,e,d,i):i?s.setAttributeNS(i,e,d):s.setAttribute(e,d)}}function ns(t,e,n,a,r){return new Array(t,!0,r?-1:0,e,null,null,a,n,null)}function as(t,e){const n=xe(e,t);(128==(128&n[2])||Ue(t))&&80&n[2]&&(function(t){const e=t[1];for(let n=t.length;n<e.blueprint.length;n++)t[n]=e.blueprint[n]}(n),ds(n,n[9]))}function rs(t,e){return t[14]?t[15][4]=e:t[14]=e,t[15]=e,e}function is(t){for(;t;){t[2]|=64;const e=da(t);if(ee(t)&&!e)return t;t=e}return null}function ss(t){for(let e=0;e<t.components.length;e++){const n=t.components[e];Li(Te(n),n)}}function os(t,e){const n=t[11];n.begin&&n.begin();try{Ue(t)&&ds(t,e),ds(t,e)}catch(a){throw ms(t,a),a}finally{n.end&&n.end()}}function us(t){ss(t[9])}function ds(t,e){const n=t[1],a=an(t,t[6]),r=n.template,i=Ue(t);let s=!1;try{Oe(t),i&&ls(1,n,e),Di(t,r,Pi(t),e),Ii(t),s=!0}finally{sn(a,s)}}function ls(t,e,n){const a=e.viewQuery;null!==a&&(nn(0),a(t,n))}function cs(t,e="",n=""){const a=t[1].data,r=t[7]-1;return null==a[r]?a[r]="�"+e+"�"+n:null}const fs=Si;function hs(t){return void 0===t.inputs&&(t.inputs=zi(t,0)),t.inputs}function gs(t){return t[8]||(t[8]=[])}function ps(t){return t[1].cleanup||(t[1].cleanup=[])}function bs(t,e){return e[t.index][12]}function ms(t,e){const n=t[10],a=n?n.get(Da,null):null;a&&a.handleError(e)}function ys(t,e,n){const a=t[1];for(let r=0;r<e.length;){const i=e[r++],s=e[r++],o=e[r++],u=t[i],d=a.data[i];d.setInput?d.setInput(u,n,s,o):u[o]=n}}function vs(t,e,n){const a=pe(e,t),r=t[12];ta(r)?r.setValue(a,n):a.textContent=n}function xs(t,e,n){li(t,e,n.classes,!0),li(t,e,n.styles,!1)}function _s(t,e){const n=e[3];return-1===t.index?Jt(n)?n:null:n}function Ts(t,e){const n=_s(t,e);return n?Ps(e[12],n[7]):null}function Os(t,e,n,a,r){if(null!=a){let i,s=!1;Jt(a)?i=a:Zt(a)&&(s=!0,a=a[0]);const o=ge(a);0===t?Ls(e,n,o,r||null):1===t?js(e,o,s):2===t&&e.destroyNode(o),null!=i&&function(t,e,n,a,r){const i=n[7];i!==ge(n)&&Os(e,t,a,i,r);for(let s=9;s<n.length;s++)zs(t,e,n[s],a,i)}(e,t,i,n,r)}}function ws(t,e){return ta(e)?e.createText(vn(t)):e.createTextNode(vn(t))}function Ss(t,e,n){const a=Ts(t[1].node,t);a&&zs(t[12],e?0:1,t,a,n)}function Is(t,e,n){const a=9+n,r=e.length;n>0&&(e[a-1][4]=t),n<r-9?(t[4]=e[a],mt(e,9+n,t)):(e.push(t),t[4]=null),t[3]=e;const i=t[17];null!==i&&e!==i&&function(t,e){const n=t[5];null===n?t[5]=[e]:n.push(e)}(i,t);const s=t[5];null!==s&&s.insertView(t[1]),t[2]|=128}function Ns(t,e){const n=t[5],a=n.indexOf(e);n.splice(a,1)}function Cs(t,e){if(t.length<=9)return;const n=9+e,a=t[n];if(a){const r=a[17];null!==r&&r!==t&&Ns(r,a),e>0&&(t[n-1][4]=a[4]);const i=yt(t,9+e);Ss(a,!1);const s=i[5];null!==s&&s.detachView(i[1]),a[3]=null,a[4]=null,a[2]&=-129}return a}function Rs(t,e){const n=Cs(t,e);n&&As(n)}function As(t){if(!(256&t[2])){const e=t[12];ta(e)&&e.destroyNode&&zs(e,2,t,null,null),function(t){let e=t[14];if(!e)return Es(t);for(;e;){let n=null;if(Zt(e))n=e[14];else{const t=e[9];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)Es(e),e=ks(e,t);Es(e||t),n=e&&e[4]}e=n}}(t)}}function ks(t,e){let n;return Zt(t)&&(n=t[6])&&2===n.type?_s(n,t):t[3]===e?null:t[3]}function Es(t){if(Zt(t)&&!(256&t[2])){t[2]&=-129,t[2]|=256,function(t){const e=t[1];let n;if(null!=e&&null!=(n=e.destroyHooks))for(let a=0;a<n.length;a+=2){const e=t[n[a]];e instanceof ne||n[a+1].call(e)}}(t),function(t){const e=t[1].cleanup;if(null!==e){const n=t[8];for(let a=0;a<e.length-1;a+=2)if("string"==typeof e[a]){const r=e[a+1],i="function"==typeof r?r(t):ge(t[r]),s=n[e[a+2]],o=e[a+3];"boolean"==typeof o?i.removeEventListener(e[a],s,o):o>=0?n[o]():n[-o].unsubscribe(),a+=2}else e[a].call(n[e[a+1]]);t[8]=null}}(t);const e=t[6];e&&3===e.type&&ta(t[12])&&t[12].destroy();const n=t[17];if(null!==n&&Jt(t[3])){n!==t[3]&&Ns(n,t);const e=t[5];null!==e&&e.detachView(t[1])}}}function Ls(t,e,n,a){ta(t)?t.insertBefore(e,n,a):e.insertBefore(n,a,!0)}function Ds(t,e,n,a){null!==a?Ls(t,e,n,a):function(t,e,n){ta(t)?t.appendChild(e,n):e.appendChild(n)}(t,e,n)}function Ps(t,e){return ta(t)?t.parentNode(e):e.parentNode}function Ms(t,e,n){const a=function(t,e){if(ee(e))return Ps(e[12],be(t,e));const n=function(t){for(;null!=t.parent&&(4===t.parent.type||5===t.parent.type);)t=t.parent;return t}(t),a=n.parent;if(null==a){const t=e[6];return 2===t.type?Ts(t,e):function(t){const e=t[6];return e&&3===e.type?be(e,da(t)):null}(e)}{const t=n&&5===n.type;if(t&&2&n.flags)return be(n,e).parentNode;if(1&a.flags&&!t){const t=e[1].data,n=t[t[a.index].directiveStart].encapsulation;if(n!==Ot.ShadowDom&&n!==Ot.Native)return null}return be(a,e)}}(e,n);if(null!=a){const r=n[12],i=function(t,e){if(2===t.type){const n=_s(t,e);return qs(n.indexOf(e,9)-9,n)}return 4===t.type||5===t.type?be(t,e):null}(e.parent||n[6],n);if(Array.isArray(t))for(let e of t)Ds(r,a,e,i);else Ds(r,a,t,i)}}function qs(t,e){const n=9+t+1;if(n<e.length){const t=e[n],a=t[6].child;return null!==a?me(a,t):e[7]}return e[7]}function js(t,e,n){const a=Ps(t,e);a&&function(t,e,n,a){ta(t)?t.removeChild(e,n,a):e.removeChild(n)}(t,a,e,n)}function Fs(t,e,n,a){const r=a[3];let i=a[6].projection[n];if(Array.isArray(i))Ms(i,e,t);else for(;i;)32&i.flags||(1===i.type?Fs(t,e,i.projection,la(r)):(i.flags|=2,Vs(i,e,t,r))),i=i.projectionNext}function Gs(t,e,n,a){for(;t;)Vs(t,e,n,a),t=t.next}function Vs(t,e,n,a){const r=be(t,a);Ms(r,e,n),qr(r,a);const i=a[t.index];if(0===t.type)for(let s=9;s<i.length;s++)Ss(i[s],!0,i[7]);else if(5===t.type){let e=t.child;Gs(e,e,a,a)}else 4===t.type&&Gs(t.child,e,n,a),Jt(i)&&Ms(i[7],e,n)}function zs(t,e,n,a,r){let i=n[1].node.child;for(;null!==i;)Bs(t,e,n,i,a,r),i=i.next}function Bs(t,e,n,a,r,i){const s=a.type;32&a.flags||(4===s||5===s?function(t,e,n,a,r,i){Os(e,t,r,n[a.index],i);let s=a.child;for(;s;)Bs(t,e,n,s,r,i),s=s.next}(t,e,n,a,r,i):1===s?function(t,e,n,a,r,i){const s=la(n),o=s[6].projection[a.projection];if(void 0!==o)if(Array.isArray(o))for(let u=0;u<o.length;u++)Os(e,t,r,o[u],i);else{let n=o;const a=s[3];for(;null!==n;)Bs(t,e,a,n,r,i),n=n.projectionNext}}(t,e,n,a,r,i):Os(e,t,r,n[a.index],i))}class Ys{constructor(t,e,n){this._context=e,this._componentIndex=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null,this._lView=t}get rootNodes(){return null==this._lView[0]?function t(e,n,a){let r=n.child;for(;r;){const n=me(r,e);if(n&&a.push(n),4===r.type)t(e,r,a);else if(1===r.type){const t=la(e),n=t[6],i=da(t);let s=n.projection[r.projection];for(;s&&i;)a.push(be(s,i)),s=s.next}r=r.next}return a}(this._lView,this._lView[6],[]):[]}get context(){return this._context?this._context:this._lookUpContext()}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}As(this._lView)}onDestroy(t){var e,n;n=t,gs(e=this._lView).push(n),e[1].firstTemplatePass&&ps(e).push(e[8].length-1,null)}markForCheck(){is(this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){os(this._lView,this.context)}checkNoChanges(){!function(t,e){Ze(!0);try{os(t,e)}finally{Ze(!1)}}(this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t}detachFromAppRef(){this._appRef=null,function(t){zs(t[12],1,t,null,null)}(this._lView)}attachToAppRef(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}_lookUpContext(){return this._context=da(this._lView)[this._componentIndex]}}class Hs extends Ys{constructor(t){super(t,null,-1),this._view=t}detectChanges(){us(this._view)}checkNoChanges(){!function(t){Ze(!0);try{us(t)}finally{Ze(!1)}}(this._view)}get context(){return null}}let Us,Ws,Ks;function $s(t,e,n){return Us||(Us=class extends t{}),new Us(be(e,n))}function Zs(t,e,n,a){return Ws||(Ws=class extends t{constructor(t,e,n){super(),this._declarationView=t,this._declarationTContainer=e,this.elementRef=n}createEmbeddedView(t){const e=this._declarationTContainer.tViews,n=function(t,e,n,a){const r=Ye(),i=Ve();ze(null,!0);const s=Ri(n,t,e,16,null,null);return s[16]=n,ki(t,null,-1,s),t.firstTemplatePass&&(t.node.injectorIndex=a),ze(i,r),s}(e,t,this._declarationView,this._declarationTContainer.injectorIndex);n[17]=this._declarationView[this._declarationTContainer.index];const a=this._declarationView[5];null!==a&&(n[5]=a.createEmbeddedView(e)),Ei(n,e,t);const r=new Ys(n,t,-1);return r._tViewNode=n[6],r}}),0===n.type?new Ws(a,n,$s(e,n,a)):null}function Js(t,e,n,a){let r;Ks||(Ks=class extends t{constructor(t,e,n){super(),this._lContainer=t,this._hostTNode=e,this._hostView=n}get element(){return $s(e,this._hostTNode,this._hostView)}get injector(){return new Ca(this._hostTNode,this._hostView)}get parentInjector(){const t=ya(this._hostTNode,this._hostView),e=ua(t,this._hostView),n=function(t,e,n){if(n.parent&&-1!==n.parent.injectorIndex){const t=n.parent.injectorIndex;let e=n.parent;for(;null!=e.parent&&t==e.injectorIndex;)e=e.parent;return e}let a=oa(t),r=e,i=e[6];for(;a>1;)r=r[16],i=r[6],a--;return i}(t,this._hostView,this._hostTNode);return ia(t)&&null!=n?new Ca(n,e):new Ca(null,this._hostView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){return null!==this._lContainer[8]&&this._lContainer[8][t]||null}get length(){return this._lContainer.length-9}createEmbeddedView(t,e,n){const a=t.createEmbeddedView(e||{});return this.insert(a,n),a}createComponent(t,e,n,a,r){const i=n||this.parentInjector;!r&&null==t.ngModule&&i&&(r=i.get(ft,null));const s=t.create(i,a,void 0,r);return this.insert(s.hostView,e),s}insert(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");this.allocateContainerIfNeeded();const n=t._lView,a=this._adjustIndex(e);return Jt(n[3])?this.move(t,a):(Is(n,this._lContainer,a),Ss(n,!0,qs(a,this._lContainer)),t.attachToViewContainerRef(this),mt(this._lContainer[8],a,t),t)}move(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");const n=this.indexOf(t);return-1!==n&&this.detach(n),this.insert(t,e),t}indexOf(t){return null!==this._lContainer[8]?this._lContainer[8].indexOf(t):0}remove(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1);Rs(this._lContainer,e),yt(this._lContainer[8],e)}detach(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1),n=Cs(this._lContainer,e);return n&&null!=yt(this._lContainer[8],e)?new Ys(n,n[9],-1):null}_adjustIndex(t,e=0){return null==t?this.length+e:t}allocateContainerIfNeeded(){null===this._lContainer[8]&&(this._lContainer[8]=[])}});const i=a[n.index];if(Jt(i))r=i,r[2]=-1;else{let t;if(t=4===n.type?ge(i):a[12].createComment(""),ee(a)){const e=a[12],r=be(n,a);Ls(e,Ps(e,r),t,function(t,e){return ta(t)?t.nextSibling(e):e.nextSibling}(e,r))}else Ms(t,n,a);a[n.index]=r=ns(i,a,t,n,!0),rs(a,r)}return new Ks(r,n,a)}function Qs(t=!1){return function(t,e,n){if(Xt(t)&&!n){const n=t.directiveStart,a=xe(t.index,e);return new Ys(a,null,n)}if(3===t.type||0===t.type||4===t.type){const t=la(e);return new Ys(t,t[9],-1)}return null}(Ve(),Ae(),t)}let Xs=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>eo(),t})();const to=Qs,eo=(...t)=>{},no=Function;function ao(t){return"function"==typeof t}const ro=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,io=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,so=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,oo=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s+super\(\.\.\.arguments\)/;class uo{constructor(t){this._reflect=t||U.Reflect}isReflectionEnabled(){return!0}factory(t){return(...e)=>new t(...e)}_zipTypesAndAnnotations(t,e){let n;n=new Array(void 0===t?e.length:t.length);for(let a=0;a<n.length;a++)n[a]=void 0===t?[]:t[a]&&t[a]!=Object?[t[a]]:[],e&&null!=e[a]&&(n[a]=n[a].concat(e[a]));return n}_ownParameters(t,e){if(n=t.toString(),ro.test(n)||oo.test(n)||io.test(n)&&!so.test(n))return null;var n;if(t.parameters&&t.parameters!==e.parameters)return t.parameters;const a=t.ctorParameters;if(a&&a!==e.ctorParameters){const t="function"==typeof a?a():a,e=t.map(t=>t&&t.type),n=t.map(t=>t&&lo(t.decorators));return this._zipTypesAndAnnotations(e,n)}const r=t.hasOwnProperty(b)&&t[b],i=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",t);return i||r?this._zipTypesAndAnnotations(i,r):new Array(t.length).fill(void 0)}parameters(t){if(!ao(t))return[];const e=co(t);let n=this._ownParameters(t,e);return n||e===Object||(n=this.parameters(e)),n||[]}_ownAnnotations(t,e){if(t.annotations&&t.annotations!==e.annotations){let e=t.annotations;return"function"==typeof e&&e.annotations&&(e=e.annotations),e}return t.decorators&&t.decorators!==e.decorators?lo(t.decorators):t.hasOwnProperty(p)?t[p]:null}annotations(t){if(!ao(t))return[];const e=co(t),n=this._ownAnnotations(t,e)||[];return(e!==Object?this.annotations(e):[]).concat(n)}_ownPropMetadata(t,e){if(t.propMetadata&&t.propMetadata!==e.propMetadata){let e=t.propMetadata;return"function"==typeof e&&e.propMetadata&&(e=e.propMetadata),e}if(t.propDecorators&&t.propDecorators!==e.propDecorators){const e=t.propDecorators,n={};return Object.keys(e).forEach(t=>{n[t]=lo(e[t])}),n}return t.hasOwnProperty(m)?t[m]:null}propMetadata(t){if(!ao(t))return{};const e=co(t),n={};if(e!==Object){const t=this.propMetadata(e);Object.keys(t).forEach(e=>{n[e]=t[e]})}const a=this._ownPropMetadata(t,e);return a&&Object.keys(a).forEach(t=>{const e=[];n.hasOwnProperty(t)&&e.push(...n[t]),e.push(...a[t]),n[t]=e}),n}ownPropMetadata(t){return ao(t)&&this._ownPropMetadata(t,co(t))||{}}hasLifecycleHook(t,e){return t instanceof no&&e in t.prototype}guards(t){return{}}getter(t){return new Function("o","return o."+t+";")}setter(t){return new Function("o","v","return o."+t+" = v;")}method(t){return new Function("o","args",`if (!o.${t}) throw new Error('"${t}" is undefined');\n        return o.${t}.apply(o, args);`)}importUri(t){return"object"==typeof t&&t.filePath?t.filePath:`./${j(t)}`}resourceUri(t){return`./${j(t)}`}resolveIdentifier(t,e,n,a){return a}resolveEnum(t,e){return t[e]}}function lo(t){return t?t.map(t=>new(0,t.type.annotationCls)(...t.args?t.args:[])):[]}function co(t){const e=t.prototype?Object.getPrototypeOf(t.prototype):null;return(e?e.constructor:null)||Object}let fo=null;function ho(){return fo=fo||new uo}function go(t){return po(ho().parameters(t))}function po(t){const e=W();return t.map(t=>function(t,e){const n={token:null,host:!1,optional:!1,resolved:t.R3ResolvedDependencyType.Token,self:!1,skipSelf:!1};function a(e){n.resolved=t.R3ResolvedDependencyType.Token,n.token=e}if(Array.isArray(e)){if(0===e.length)throw new Error("Dependency array must have arguments.");for(let r=0;r<e.length;r++){const i=e[r];if(void 0!==i)if(i instanceof O||"Optional"===i.__proto__.ngMetadataName)n.optional=!0;else if(i instanceof S||"SkipSelf"===i.__proto__.ngMetadataName)n.skipSelf=!0;else if(i instanceof w||"Self"===i.__proto__.ngMetadataName)n.self=!0;else if(i instanceof I||"Host"===i.__proto__.ngMetadataName)n.host=!0;else if(i instanceof T)n.token=i.token;else if(i instanceof N){if(void 0===i.attributeName)throw new Error("Attribute name must be defined.");n.token=i.attributeName,n.resolved=t.R3ResolvedDependencyType.Attribute}else i===Xs?(n.token=i,n.resolved=t.R3ResolvedDependencyType.ChangeDetectorRef):a(i)}}else a(e);return n}(e,t))}function bo(t,e){let n=null;t.hasOwnProperty(M)||Object.defineProperty(t,M,{get:()=>{if(null===n){const a=e||{providedIn:null},r=yo(a)||xo(a)||vo(a)||_o(a),i={name:t.name,type:t,typeArgumentCount:0,providedIn:a.providedIn,ctorDeps:go(t),userDeps:void 0};if((yo(a)||xo(a))&&void 0!==a.deps&&(i.userDeps=po(a.deps)),r)if(yo(a))i.useClass=a.useClass;else if(vo(a))i.useValue=a.useValue;else if(xo(a))i.useFactory=a.useFactory;else{if(!_o(a))throw new Error("Unreachable state.");i.useExisting=a.useExisting}else i.useClass=t;n=W().compileInjectable(ct,`ng:///${t.name}/ngInjectableDef.js`,i)}return n}})}const mo=R({provide:String,useValue:R});function yo(t){return void 0!==t.useClass}function vo(t){return mo in t}function xo(t){return void 0!==t.useFactory}function _o(t){return void 0!==t.useExisting}const To=R({provide:String,useValue:R}),Oo=[];function wo(t,e){if(!e){const e=(new uo).parameters(t);return()=>new t(...ot(e))}if(To in e){const t=e;return()=>t.useValue}if(e.useExisting){const t=e;return()=>rt(t.useExisting)}if(e.useFactory){const t=e;return()=>t.useFactory(...ot(t.deps||Oo))}if(e.useClass){const n=e;let a=e.deps;if(!a){const e=new uo;a=e.parameters(t)}return()=>new n.useClass(...ot(a))}{let n=e.deps;if(!n){const e=new uo;n=e.parameters(t)}return()=>new t(...ot(n))}}const So=y("Injectable",void 0,void 0,void 0,(t,e)=>No(t,e)),Io=bo,No=function(t,e){e&&void 0!==e.providedIn&&!D(t)&&(t.ngInjectableDef=k({token:t,providedIn:e.providedIn,factory:wo(t,e)}))},Co=new K("The presence of this token marks an injector as being the root injector."),Ro={},Ao={},ko=[];let Eo=void 0;function Lo(){return void 0===Eo&&(Eo=new ut),Eo}function Do(t,e=null,n=null,a){return e=e||Lo(),new Po(t,n,e,a)}class Po{constructor(t,e,n,a=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const r=[];bt([t],t=>this.processInjectorType(t,[],r)),e&&bt(e,n=>this.processProvider(n,t,e)),this.records.set($,jo(void 0,this)),this.isRootInjector=this.records.has(Co),this.injectorDefTypes.forEach(t=>this.get(t)),this.source=a||("object"==typeof t?null:j(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=Z,n=C.Default){this.assertNotDestroyed();const a=et(this);try{if(!(n&C.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=("function"==typeof(r=t)||"object"==typeof r&&r instanceof K)&&D(t);n&&this.injectableDefInScope(n)&&(e=jo(Mo(t),Ro),this.records.set(t,e))}if(void 0!==e)return this.hydrate(t,e)}return(n&C.Self?Lo():this.parent).get(t,n&C.Optional?null:e)}catch(i){if("NullInjectorError"===i.name){if((i.ngTempTokenPath=i.ngTempTokenPath||[]).unshift(j(t)),a)throw i;return dt(i,t,"R3InjectorError",this.source)}throw i}finally{et(a)}var r}toString(){const t=[];return this.records.forEach((e,n)=>t.push(j(n))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(t,e,n){if(!(t=V(t)))return!1;let a=P(t);const r=null==a&&t.ngModule||void 0,i=void 0===r?t:r,s=-1!==n.indexOf(i);if(void 0!==r&&(a=P(r)),null==a)return!1;if(this.injectorDefTypes.add(i),this.records.set(i,jo(a.factory,Ro)),null!=a.imports&&!s){let t;n.push(i);try{bt(a.imports,a=>{this.processInjectorType(a,e,n)&&(void 0===t&&(t=[]),t.push(a))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:a}=t[e];bt(a,t=>this.processProvider(t,n,a||ko))}}const o=a.providers;if(null!=o&&!s){const e=t;bt(o,t=>this.processProvider(t,e,o))}return void 0!==r&&void 0!==t.providers}processProvider(t,e,n){let a=Go(t=V(t))?t:V(t&&t.provide);const r=function(t,e,n){let a=qo(t,e,n);return Fo(t)?jo(void 0,t.useValue):jo(a,Ro)}(t,e,n);if(Go(t)||!0!==t.multi){const t=this.records.get(a);t&&void 0!==t.multi&&Br()}else{let e=this.records.get(a);e?void 0===e.multi&&Br():(e=jo(void 0,Ro,!0),e.factory=()=>ot(e.multi),this.records.set(a,e)),a=t,e.multi.push(t)}this.records.set(a,r)}hydrate(t,e){var n;return e.value===Ao?function(t){throw new Error(`Cannot instantiate cyclic dependency! ${t}`)}(j(t)):e.value===Ro&&(e.value=Ao,e.value=e.factory()),"object"==typeof e.value&&e.value&&null!==(n=e.value)&&"object"==typeof n&&"function"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&("string"==typeof t.providedIn?"any"===t.providedIn||"root"===t.providedIn&&this.isRootInjector:this.injectorDefTypes.has(t.providedIn))}}function Mo(t){const e=D(t);if(null!==e)return e.factory;const n=P(t);if(null!==n)return n.factory;if(t instanceof K)throw new Error(`Token ${j(t)} is missing an ngInjectableDef definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=new Array(e).fill("?");throw new Error(`Can't resolve all parameters for ${j(t)}: (${n.join(", ")}).`)}const n=(a=t)&&a[M]?(console.warn(`DEPRECATED: DI is instantiating a token "${a.name}" that inherits its @Injectable decorator but does not provide one itself.\n`+`This will become an error in v10. Please add @Injectable() to the "${a.name}" class.`),a[M]):null;var a;return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error("unreachable")}function qo(t,e,n){let a=void 0;if(Go(t))return Mo(V(t));if(Fo(t))a=()=>V(t.useValue);else if((r=t)&&r.useExisting)a=()=>rt(V(t.useExisting));else if(function(t){return!(!t||!t.useFactory)}(t))a=()=>t.useFactory(...ot(t.deps||[]));else{const r=V(t&&(t.useClass||t.provide));if(r||function(t,e,n){let a="";throw t&&e&&(a=` - only instances of Provider and Type are allowed, got: [${e.map(t=>t==n?"?"+n+"?":"...").join(", ")}]`),new Error(`Invalid provider for the NgModule '${j(t)}'`+a)}(e,n,t),!function(t){return!!t.deps}(t))return Mo(r);a=()=>new r(...ot(t.deps))}var r;return a}function jo(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Fo(t){return null!==t&&"object"==typeof t&&Q in t}function Go(t){return"function"==typeof t}function Vo(t,e,n){return Do({name:n},e,t,n)}const zo=function(t,e,n){return new Ko(t,e,n)};let Bo=(()=>{class t{static create(t,e){return Array.isArray(t)?zo(t,e,""):zo(t.providers,t.parent,t.name||"")}}return t.THROW_IF_NOT_FOUND=Z,t.NULL=new ut,t.ngInjectableDef=k({token:t,providedIn:"any",factory:()=>rt($)}),t.__NG_ELEMENT_ID__=-1,t})();const Yo=function(t){return t},Ho=[],Uo=Yo,Wo=function(){return Array.prototype.slice.call(arguments)};class Ko{constructor(t,e=Bo.NULL,n=null){this.parent=e,this.source=n;const a=this._records=new Map;a.set(Bo,{token:Bo,fn:Yo,deps:Ho,value:this,useNew:!1}),a.set($,{token:$,fn:Yo,deps:Ho,value:this,useNew:!1}),function t(e,n){if(n)if((n=V(n))instanceof Array)for(let a=0;a<n.length;a++)t(e,n[a]);else{if("function"==typeof n)throw Zo("Function/Class not supported",n);if(!n||"object"!=typeof n||!n.provide)throw Zo("Unexpected provider",n);{let t=V(n.provide);const a=function(t){const e=function(t){let e=Ho;const n=t.deps;if(n&&n.length){e=[];for(let t=0;t<n.length;t++){let a=6,r=V(n[t]);if(r instanceof Array)for(let t=0,e=r;t<e.length;t++){const n=e[t];n instanceof O||n==O?a|=1:n instanceof S||n==S?a&=-3:n instanceof w||n==w?a&=-5:r=n instanceof T?n.token:V(n)}e.push({token:r,options:a})}}else if(t.useExisting)e=[{token:V(t.useExisting),options:6}];else if(!(n||Q in t))throw Zo("'deps' required",t);return e}(t);let n=Yo,a=Ho,r=!1,i=V(t.provide);if(Q in t)a=t.useValue;else if(t.useFactory)n=t.useFactory;else if(t.useExisting);else if(t.useClass)r=!0,n=V(t.useClass);else{if("function"!=typeof i)throw Zo("StaticProvider does not have [useValue|useFactory|useExisting|useClass] or [provide] is not newable",t);r=!0,n=i}return{deps:e,fn:n,useNew:r,value:a}}(n);if(!0===n.multi){let a=e.get(t);if(a){if(a.fn!==Wo)throw $o(t)}else e.set(t,a={token:n.provide,deps:[],useNew:!1,fn:Wo,value:Ho});t=n,a.deps.push({token:t,options:6})}const r=e.get(t);if(r&&r.fn==Wo)throw $o(t);e.set(t,a)}}}(a,t)}get(t,e,n=C.Default){const a=this._records.get(t);try{return function t(e,n,a,r,i,s){try{return function(e,n,a,r,i,s){let o;if(!n||s&C.SkipSelf)s&C.Self||(o=r.get(e,i,C.Default));else{if(o=n.value,o==Uo)throw Error("ɵCircular dependency");if(o===Ho){n.value=Uo;let e=void 0,i=n.useNew,s=n.fn,u=n.deps,d=Ho;if(u.length){d=[];for(let e=0;e<u.length;e++){const n=u[e],i=n.options,s=2&i?a.get(n.token):void 0;d.push(t(n.token,s,a,s||4&i?r:Bo.NULL,1&i?null:Bo.THROW_IF_NOT_FOUND,C.Default))}}n.value=o=i?new s(...d):s.apply(e,d)}}return o}(e,n,a,r,i,s)}catch(o){throw o instanceof Error||(o=new Error(o)),(o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(e),n&&n.value==Uo&&(n.value=Ho),o}}(t,a,this._records,this.parent,e,n)}catch(r){return dt(r,t,"StaticInjectorError",this.source)}}toString(){const t=[];return this._records.forEach((e,n)=>t.push(j(n))),`StaticInjector[${t.join(", ")}]`}}function $o(t){return Zo("Cannot mix multi providers and regular providers",t)}function Zo(t,e){return new Error(lt(t,e,"StaticInjectorError"))}function Jo(t){return t.length>1?" ("+function(t){const e=[];for(let n=0;n<t.length;++n){if(e.indexOf(t[n])>-1)return e.push(t[n]),e;e.push(t[n])}return e}(t.slice().reverse()).map(t=>j(t.token)).join(" -> ")+")":""}function Qo(t,e,n,a){const r=[e],i=n(r),s=a?function(t,e){const n=`${t} caused by: ${e instanceof Error?e.message:e}`,a=Error(n);return a.ngOriginalError=e,a}(i,a):Error(i);return s.addKey=Xo,s.keys=r,s.injectors=[t],s.constructResolvingMessage=n,s.ngOriginalError=a,s}function Xo(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)}function tu(t,e){const n=[];for(let a=0,r=e.length;a<r;a++){const t=e[a];n.push(t&&0!=t.length?t.map(j).join(" "):"?")}return Error("Cannot resolve all parameters for '"+j(t)+"'("+n.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+j(t)+"' is decorated with Injectable.")}class eu{constructor(t,e){if(this.token=t,this.id=e,!t)throw new Error("Token must be defined!");this.displayName=j(this.token)}static get(t){return au.get(V(t))}static get numberOfKeys(){return au.numberOfKeys}}class nu{constructor(){this._allKeys=new Map}get(t){if(t instanceof eu)return t;if(this._allKeys.has(t))return this._allKeys.get(t);const e=new eu(t,eu.numberOfKeys);return this._allKeys.set(t,e),e}get numberOfKeys(){return this._allKeys.size}}const au=new nu;class ru{constructor(t){this.reflectionCapabilities=t}updateCapabilities(t){this.reflectionCapabilities=t}factory(t){return this.reflectionCapabilities.factory(t)}parameters(t){return this.reflectionCapabilities.parameters(t)}annotations(t){return this.reflectionCapabilities.annotations(t)}propMetadata(t){return this.reflectionCapabilities.propMetadata(t)}hasLifecycleHook(t,e){return this.reflectionCapabilities.hasLifecycleHook(t,e)}getter(t){return this.reflectionCapabilities.getter(t)}setter(t){return this.reflectionCapabilities.setter(t)}method(t){return this.reflectionCapabilities.method(t)}importUri(t){return this.reflectionCapabilities.importUri(t)}resourceUri(t){return this.reflectionCapabilities.resourceUri(t)}resolveIdentifier(t,e,n,a){return this.reflectionCapabilities.resolveIdentifier(t,e,n,a)}resolveEnum(t,e){return this.reflectionCapabilities.resolveEnum(t,e)}}const iu=new ru(new uo);class su{constructor(t,e,n){this.key=t,this.optional=e,this.visibility=n}static fromKey(t){return new su(t,!1,null)}}const ou=[];class uu{constructor(t,e,n){this.key=t,this.resolvedFactories=e,this.multiProvider=n,this.resolvedFactory=this.resolvedFactories[0]}}class du{constructor(t,e){this.factory=t,this.dependencies=e}}function lu(t){let e,n;if(t.useClass){const a=V(t.useClass);e=iu.factory(a),n=hu(a)}else t.useExisting?(e=t=>t,n=[su.fromKey(eu.get(t.useExisting))]):t.useFactory?(e=t.useFactory,n=function(t,e){if(e){const n=e.map(t=>[t]);return e.map(e=>gu(t,e,n))}return hu(t)}(t.useFactory,t.deps)):(e=()=>t.useValue,n=ou);return new du(e,n)}function cu(t){return new uu(eu.get(t.provide),[lu(t)],t.multi||!1)}function fu(t){const e=function(t,e){for(let n=0;n<t.length;n++){const a=t[n],r=e.get(a.key.id);if(r){if(a.multiProvider!==r.multiProvider)throw Error(`Cannot mix multi providers and regular providers, got: ${r} ${a}`);if(a.multiProvider)for(let t=0;t<a.resolvedFactories.length;t++)r.resolvedFactories.push(a.resolvedFactories[t]);else e.set(a.key.id,a)}else{let t;t=a.multiProvider?new uu(a.key,a.resolvedFactories.slice(),a.multiProvider):a,e.set(a.key.id,t)}}return e}(function t(e,n){return e.forEach(e=>{if(e instanceof no)n.push({provide:e,useClass:e});else if(e&&"object"==typeof e&&void 0!==e.provide)n.push(e);else{if(!(e instanceof Array))throw Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${e}`);t(e,n)}}),n}(t,[]).map(cu),new Map);return Array.from(e.values())}function hu(t){const e=iu.parameters(t);if(!e)return[];if(e.some(t=>null==t))throw tu(t,e);return e.map(n=>gu(t,n,e))}function gu(t,e,n){let a=null,r=!1;if(!Array.isArray(e))return pu(e instanceof T?e.token:e,r,null);let i=null;for(let s=0;s<e.length;++s){const t=e[s];t instanceof no?a=t:t instanceof T?a=t.token:t instanceof O?r=!0:t instanceof w||t instanceof S?i=t:t instanceof K&&(a=t)}if(a=V(a),null!=a)return pu(a,r,i);throw tu(t,n)}function pu(t,e,n){return new su(eu.get(t),e,n)}const bu=new Object;class mu{static resolve(t){return fu(t)}static resolveAndCreate(t,e){const n=mu.resolve(t);return mu.fromResolvedProviders(n,e)}static fromResolvedProviders(t,e){return new yu(t,e)}}let yu=(()=>{class t{constructor(t,e){this._constructionCounter=0,this._providers=t,this.parent=e||null;const n=t.length;this.keyIds=new Array(n),this.objs=new Array(n);for(let a=0;a<n;a++)this.keyIds[a]=t[a].key.id,this.objs[a]=bu}get(t,e=Z){return this._getByKey(eu.get(t),null,e)}resolveAndCreateChild(t){const e=mu.resolve(t);return this.createChildFromResolved(e)}createChildFromResolved(e){const n=new t(e);return n.parent=this,n}resolveAndInstantiate(t){return this.instantiateResolved(mu.resolve([t])[0])}instantiateResolved(t){return this._instantiateProvider(t)}getProviderAtIndex(t){if(t<0||t>=this._providers.length)throw function(t){return Error(`Index ${t} is out-of-bounds.`)}(t);return this._providers[t]}_new(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw Qo(this,t.key,(function(t){return`Cannot instantiate cyclic dependency!${Jo(t)}`}));return this._instantiateProvider(t)}_getMaxNumberOfObjects(){return this.objs.length}_instantiateProvider(t){if(t.multiProvider){const e=new Array(t.resolvedFactories.length);for(let n=0;n<t.resolvedFactories.length;++n)e[n]=this._instantiate(t,t.resolvedFactories[n]);return e}return this._instantiate(t,t.resolvedFactories[0])}_instantiate(t,e){const n=e.factory;let a,r;try{a=e.dependencies.map(t=>this._getByReflectiveDependency(t))}catch(s){throw s.addKey&&s.addKey(this,t.key),s}try{r=n(...a)}catch(s){throw Qo(this,t.key,(function(t){const e=j(t[0].token);return`${i.message}: Error during instantiation of ${e}!${Jo(t)}.`}),i=s)}var i;return r}_getByReflectiveDependency(t){return this._getByKey(t.key,t.visibility,t.optional?null:Z)}_getByKey(e,n,a){return e===t.INJECTOR_KEY?this:n instanceof w?this._getByKeySelf(e,a):this._getByKeyDefault(e,a,n)}_getObjByKeyId(t){for(let e=0;e<this.keyIds.length;e++)if(this.keyIds[e]===t)return this.objs[e]===bu&&(this.objs[e]=this._new(this._providers[e])),this.objs[e];return bu}_throwOrNull(t,e){if(e!==Z)return e;throw function(t,e){return Qo(t,e,(function(t){return`No provider for ${j(t[0].token)}!${Jo(t)}`}))}(this,t)}_getByKeySelf(t,e){const n=this._getObjByKeyId(t.id);return n!==bu?n:this._throwOrNull(t,e)}_getByKeyDefault(e,n,a){let r;for(r=a instanceof S?this.parent:this;r instanceof t;){const t=r,n=t._getObjByKeyId(e.id);if(n!==bu)return n;r=t.parent}return null!==r?r.get(e.token,n):this._throwOrNull(e,n)}get displayName(){return`ReflectiveInjector(providers: [${function(t,e){const n=new Array(t._providers.length);for(let a=0;a<t._providers.length;++a)n[a]=e(t.getProviderAtIndex(a));return n}(this,t=>' "'+t.key.displayName+'" ').join(", ")}])`}toString(){return this.displayName}}return t.INJECTOR_KEY=eu.get(Bo),t})();const vu=new K("AnalyzeForEntryComponents");class xu{}const _u=_("ContentChildren",(t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!1,descendants:!1},e),xu),Tu=_("ContentChild",(t,e={})=>Object.assign({selector:t,first:!0,isViewQuery:!1,descendants:!0},e),xu),Ou=_("ViewChildren",(t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!0,descendants:!0},e),xu),wu=_("ViewChild",(t,e)=>Object.assign({selector:t,first:!0,isViewQuery:!0,descendants:!0},e),xu);function Su(t){const e=[],n=new Map;function a(e){let a=n.get(e);if(!a){const r=t(e);n.set(e,a=r.then(Au))}return a}return Iu.forEach((t,n)=>{const r=[];t.templateUrl&&r.push(a(t.templateUrl).then(e=>{t.template=e}));const i=t.styleUrls,s=t.styles||(t.styles=[]),o=t.styles.length;i&&i.forEach((e,n)=>{s.push(""),r.push(a(e).then(a=>{s[o+n]=a,i.splice(i.indexOf(e),1),0==i.length&&(t.styleUrls=void 0)}))});const u=Promise.all(r).then(()=>function(t){Nu.delete(t)}(n));e.push(u)}),Ru(),Promise.all(e).then(()=>{})}let Iu=new Map;const Nu=new Set;function Cu(t){return!!(t.templateUrl&&!t.hasOwnProperty("template")||t.styleUrls&&t.styleUrls.length)}function Ru(){const t=Iu;return Iu=new Map,t}function Au(t){return"string"==typeof t?t:t.text()}function ku(t){const e=Ae(),n=e[1];n.firstTemplatePass&&(function(t,e,n){const a=t.expandoInstructions,r=a.length;r>=2&&a[r-2]===e.hostBindings?a[r-1]=a[r-1]+n:a.push(e.hostBindings,n)}(n,Se,t),function(t,e,n){for(let a=0;a<n;a++)e.push(ci),t.blueprint.push(ci),t.data.push(null)}(n,e,t))}let Eu=null;function Lu(){if(!Eu){const t=U.Symbol;if(t&&t.iterator)Eu=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(Eu=n)}}}return Eu}function Du(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function Pu(t,e){const n=qu(t),a=qu(e);if(n&&a)return function(t,e,n){const a=t[Lu()](),r=e[Lu()]();for(;;){const t=a.next(),e=r.next();if(t.done&&e.done)return!0;if(t.done||e.done)return!1;if(!n(t.value,e.value))return!1}}(t,e,Pu);{const r=t&&("object"==typeof t||"function"==typeof t),i=e&&("object"==typeof e||"function"==typeof e);return!(n||!r||a||!i)||Du(t,e)}}class Mu{constructor(t){this.wrapped=t}static wrap(t){return new Mu(t)}static unwrap(t){return Mu.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof Mu}}function qu(t){return!!ju(t)&&(Array.isArray(t)||!(t instanceof Map)&&Lu()in t)}function ju(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function Fu(t,e,n){return t[e]=n}function Gu(t,e){return t[e]}function Vu(t,e,n){return!!yn(t[e],n)&&(t[e]=n,!0)}function zu(t,e,n,a){const r=Vu(t,e,n);return Vu(t,e+1,a)||r}function Bu(t,e,n,a,r){const i=zu(t,e,n,a);return Vu(t,e+2,r)||i}function Yu(t,e,n,a,r,i){const s=zu(t,e,n,a);return zu(t,e+2,r,i)||s}function Hu(t,e,n){const a=un(),r=Uu(Ae(),e);return r!==ci&&Yi(a,t,r,n),Hu}function Uu(t,e){const n=t[7]++;return cs(t),Vu(t,n,e)?e:ci}function Wu(t,e,n,a){const r=un(),i=Ae(),s=Uu(i,e);return s!==ci&&es(r,t,s,i,n,a),Wu}function Ku(t,e){let n=!1;const a=t[1].data;let r=t[7];if(null==a[r]){for(let t=2;t<e.length;t+=2)a[r++]=e[t];r=t[7]}for(let s=1;s<e.length;s+=2)n=Vu(t,r++,e[s])||n;if(t[7]=r,cs(t,e[0],e[e.length-1]),!n)return ci;let i=e[0];for(let s=1;s<e.length;s+=2)i+=vn(e[s])+e[s+1];return i}function $u(t,e,n,a){const r=Vu(t,t[7]++,n);return cs(t,e,a),r?e+vn(n)+a:ci}function Zu(t,e,n,a,r,i){const s=t[7],o=zu(t,s,n,r);return t[7]+=2,cs(t,e,i)&&(t[1].data[s]=a),o?e+vn(n)+a+vn(r)+i:ci}function Ju(t,e,n,a,r,i,s,o){const u=t[7],d=Bu(t,u,n,r,s);if(t[7]+=3,cs(t,e,o)){const e=t[1].data;e[u]=a,e[u+1]=i}return d?e+vn(n)+a+vn(r)+i+vn(s)+o:ci}function Qu(t,e,n,a,r,i,s,o,u,d){const l=t[7],c=Yu(t,l,n,r,s,u);if(t[7]+=4,cs(t,e,d)){const e=t[1].data;e[l]=a,e[l+1]=i,e[l+2]=o}return c?e+vn(n)+a+vn(r)+i+vn(s)+o+vn(u)+d:ci}function Xu(t,e,n,a,r,i,s,o,u,d,l,c){const f=t[7];let h=Yu(t,f,n,r,s,u);if(h=Vu(t,f+4,l)||h,t[7]+=5,cs(t,e,c)){const e=t[1].data;e[f]=a,e[f+1]=i,e[f+2]=o,e[f+3]=d}return h?e+vn(n)+a+vn(r)+i+vn(s)+o+vn(u)+d+vn(l)+c:ci}function td(t,e,n,a,r,i,s,o,u,d,l,c,f,h){const g=t[7];let p=Yu(t,g,n,r,s,u);if(p=zu(t,g+4,l,f)||p,t[7]+=6,cs(t,e,h)){const e=t[1].data;e[g]=a,e[g+1]=i,e[g+2]=o,e[g+3]=d,e[g+4]=c}return p?e+vn(n)+a+vn(r)+i+vn(s)+o+vn(u)+d+vn(l)+c+vn(f)+h:ci}function ed(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p){const b=t[7];let m=Yu(t,b,n,r,s,u);if(m=Bu(t,b+4,l,f,g)||m,t[7]+=7,cs(t,e,p)){const e=t[1].data;e[b]=a,e[b+1]=i,e[b+2]=o,e[b+3]=d,e[b+4]=c,e[b+5]=h}return m?e+vn(n)+a+vn(r)+i+vn(s)+o+vn(u)+d+vn(l)+c+vn(f)+h+vn(g)+p:ci}function nd(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m){const y=t[7];let v=Yu(t,y,n,r,s,u);if(v=Yu(t,y+4,l,f,g,b)||v,t[7]+=8,cs(t,e,m)){const e=t[1].data;e[y]=a,e[y+1]=i,e[y+2]=o,e[y+3]=d,e[y+4]=c,e[y+5]=h,e[y+6]=p}return v?e+vn(n)+a+vn(r)+i+vn(s)+o+vn(u)+d+vn(l)+c+vn(f)+h+vn(g)+p+vn(b)+m:ci}function ad(t,e,n,a,r,i){const s=un(),o=Ae(),u=$u(o,e,n,a);return u!==ci&&es(s,t,u,o,r,i),ad}function rd(t,e,n,a,r,i,s,o){const u=un(),d=Ae(),l=Zu(d,e,n,a,r,i);return l!==ci&&es(u,t,l,d,s,o),rd}function id(t,e,n,a,r,i,s,o,u,d){const l=un(),c=Ae(),f=Ju(c,e,n,a,r,i,s,o);return f!==ci&&es(l,t,f,c,u,d),id}function sd(t,e,n,a,r,i,s,o,u,d,l,c){const f=un(),h=Ae(),g=Qu(h,e,n,a,r,i,s,o,u,d);return g!==ci&&es(f,t,g,h,l,c),sd}function od(t,e,n,a,r,i,s,o,u,d,l,c,f,h){const g=un(),p=Ae(),b=Xu(p,e,n,a,r,i,s,o,u,d,l,c);return b!==ci&&es(g,t,b,p,f,h),od}function ud(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p){const b=un(),m=Ae(),y=td(m,e,n,a,r,i,s,o,u,d,l,c,f,h);return y!==ci&&es(b,t,y,m,g,p),ud}function dd(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m){const y=un(),v=Ae(),x=ed(v,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p);return x!==ci&&es(y,t,x,v,b,m),dd}function ld(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m,y,v){const x=un(),_=Ae(),T=nd(_,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m);return T!==ci&&es(x,t,T,_,y,v),ld}function cd(t,e,n,a){const r=un(),i=Ae(),s=Ku(i,e);return s!==ci&&es(r,t,s,i,n,a),cd}function fd(t){os(Mr(t),t)}function hd(t){!function(t,e){const n=0===t.flags;if(t.flags|=1,n&&t.clean==Si){let e;t.clean=new Promise(t=>e=t),t.scheduler(()=>{if(1&t.flags&&(t.flags&=-2,ss(t)),2&t.flags){t.flags&=-3;const e=t.playerHandler;e&&e.flushPlayers()}t.clean=Si,e(null)})}}(is(Mr(t))[9])}function gd(t){const e=Ae(),n=yd(e,t,null,null);e[1].firstTemplatePass&&(n.tViews=[]),He()}function pd(t,e,n,a,r,i,s,o){const u=Ae(),d=u[1],l=yd(u,t,r||null,i||null);if(d.firstTemplatePass){Hi(d,u,l,s||null);const t=l.tViews=Fi(-1,e,n,a,d.directiveRegistry,d.pipeRegistry,null,null);null!==d.queries&&(d.queries.template(d,l),t.queries=d.queries.embeddedTView(l))}qi(d,u,l,o),qr(be(l,u),u),re(d,l),He()}function bd(t){const e=Ae(),n=e[1];ze(ve(n.data,t),!0),e[t+19][2]=0,ie(e,n,$e(),void 0)}function md(){let t=Ve();Ye()?He():(t=t.parent,ze(t,!1));const e=Ae()[t.index],n=e[2];for(;n<e.length-9;)Rs(e,n)}function yd(t,e,n,a){const r=e+19,i=t[r]=t[12].createComment(""),s=Ai(t[1],t[6],e,0,n,a),o=t[r]=ns(i,t,i,s);return Ms(i,s,t),rs(t,o),s}function vd(t,e){const n=Ae(),a=n[1],r=t+19;r>=a.data.length&&(a.data[r]=null,a.blueprint[r]=null),n[r]=e}function xd(t){return ve(We,t)}function _d(t){return ve(Ae(),t)}function Td(t,e=C.Default){t=V(t);const n=Ae();return null==n?rt(t,e):_a(Ve(),n,t,e)}function Od(t){return xa(Ve(),t)}function wd(){var t,e;Ae()[1].firstTemplatePass&&(t=Ve(),e=jd(),Nn(Gd(t),e),Nn(Fd(t),e))}function Sd(t){bn(t)}function Id(t,e,n){Nd(un(),t,e,n)}function Nd(t,e,n,a){Rd(t,Ae()[7]++,e,function(t,e){if(t===ci)return t;let n=null;return null!==t&&(n=e?vn(t)+e:t),n}(n,a),!1,zd())}function Cd(t,e){const n=Ae()[7]++;Rd(un(),n,t,e,!0,zd())}function Rd(t,e,n,a,r,i){const s=Ae(),o=ye(t,s),u=be(o,s);let d=!1;if(a!==ci)if(r)d=Qr(Gd(o),s,u,n,e,a,i,!1);else{const t=mn();d=Xr(Fd(o),s,u,n,e,a,t,i,!1)}return d}function Ad(t){const e=un(),n=Ae(),a=ye(e,n),r=Fd(a),i=jd(),s=n[7]++;!i&&$n(a)&&t!==ci&&(Dd(r,n,a,s,t,!1),t=ci),Ld(e,r,s,t,!1,zd())}function kd(t){Ed(un(),t)}function Ed(t,e){const n=Ae(),a=ye(t,n),r=Gd(a),i=jd(),s=n[7]++;!i&&Kn(a)&&e!==ci&&(Dd(r,n,a,s,e,!0),e=ci),Ld(t,r,s,e,!0,zd())}function Ld(t,e,n,a,r,i){pi();const s=Ae();let o=!1;if(a!==ci){const u=be(ye(t,s),s),d=s[n];o=Vn(d,a);const l=function(t,e,n){const a=Array.isArray(t)?t:[null];a[0]=e||null;for(let o=1;o<a.length;o+=2)Jn(a,o,null);let r,i=null,s=!1;if("string"==typeof e?e.length&&(i=e.split(/\s+/),s=!0):(i=e?Object.keys(e):null,r=e),i)for(let o=0;o<i.length;o++){const t=i[o];vi(a,n?Yn(t):t,!!s||r[t],!0)}return a}(d,a,!r);r?Qr(e,s,u,null,n,l,i,o):Xr(e,s,u,null,n,l,mn(),i,o)}return o}function Dd(t,e,n,a,r,i){e[a]!==r&&((r||jn(t))&&ys(e,n.inputs[i?"class":"style"],function(t,e,n){let a=e;var r;return t.length>0&&(a=n?Bn(t,((r=e)&&"string"!=typeof r&&(r=Object.keys(r).join(" ")),r||"")):Bn(t,function(t){let e="";if(t){const n=Object.keys(t);for(let a=0;a<n.length;a++){const r=n[a];e=Bn(e,`${r}:${t[r]}`,";")}}return e}(e),";")),a}(Wn(t),r,i)),e[a]=r)}function Pd(){const t=un(),e=Ae(),n=ye(t,e),a=function(t,e){return 3===t.type?e[12]:null}(n,e),r=be(n,e),i=jd(),s=mn();(function(t,e,n,a,r,i,s){const o=n?Fn(n):!!a&&Fn(a),u=qn(n,i),d=qn(a,i);Jr.length&&(u||d)&&ei();const l=fe(r,o),c=ii(t,r,e,n,u,l.classesBitMask,di,null),f=ii(t,r,e,a,d,l.stylesBitMask,ui,s);c&&f?(he(),o&&function(t){de.delete(t)}(r)):o&&function(t,e){de.set(t,e)}(r,l)})(a,e,Gd(n),Fd(n),r,i,s),bn(null)}function Md(t,e,n){let a=!1,r=Hn(t.styles),i=Hn(t.classes),s=-1;for(let o=n;o<e.length;o++){const t=e[o];"number"==typeof t?s=t:1==s?(i=i||[""],vi(i,t,!0),a=!0):2==s&&(r=r||[""],vi(r,t,e[++o]),a=!0)}return i&&i.length>1&&(t.classes||(t.classes=i),qd(t.classes,xi(i,!0))),r&&r.length>1&&(t.styles||(t.styles=r),qd(t.styles,xi(r,!1))),a}function qd(t,e){Hn(t)[0]=e}function jd(){return De+Pe}function Fd(t){return Vd(t,!1)}function Gd(t){return Vd(t,!0)}function Vd(t,e){let n=e?t.classes:t.styles;return Un(n)||(n=[n||[""],0,0,1,0,"--MAP--"],e?t.classes=n:t.styles=n),n}function zd(){return Me>0}function Bd(t,e,n,a){const r=Ae(),i=r[1],s=r[t+19]=Ci(e),o=r[12],u=Ai(i,r[6],t,3,e,n||null);if(null!=n){const t=na(s,n);i.firstTemplatePass&&Md(u,n,t)}if(xs(o,s,u),Ms(s,u,r),0===le&&qr(s,r),le++,i.firstTemplatePass){Hi(i,r,u,a||null);const t=hs(u);t&&t.hasOwnProperty("class")&&(u.flags|=8),t&&t.hasOwnProperty("style")&&(u.flags|=16),null!==i.queries&&i.queries.elementStart(i,u)}qi(i,r,u),Mi(i,u,r)}function Yd(){let t=Ve();Ye()?He():(t=t.parent,ze(t,!1));const e=t,n=Ae(),a=n[1];re(a,t),le--,a.firstTemplatePass&&null!==a.queries&&Qt(t)&&a.queries.elementEnd(t),Kn(e)&&e.classes&&Wd(e.classes,n,e.inputs.class),$n(e)&&e.styles&&Wd(e.styles,n,e.inputs.style)}function Hd(t,e,n,a){Bd(t,e,n,a),Yd()}function Ud(t){const e=un(),n=Ae(),a=n[1],r=ye(e,n);if(3===r.type){const e=be(r,n),i=na(e,t);a.firstTemplatePass&&Md(r,t,i)&&xs(n[12],e,r)}}function Wd(t,e,n){ys(e,n,Wn(t)||null)}function Kd(t,e,n){const a=Ae(),r=a[1],i=a[t+19]=a[12].createComment(""),s=Ai(r,a[6],t,4,"ng-container",e||null);e&&r.firstTemplatePass&&Md(s,e,0),Ms(i,s,a),r.firstTemplatePass&&(Hi(r,a,s,n||null),r.queries&&r.queries.elementStart(r,s)),qi(r,a,s),qr(i,a),Mi(r,s,a)}function $d(){let t=Ve();const e=Ae()[1];Ye()?He():(t=t.parent,ze(t,!1)),re(e,t),e.firstTemplatePass&&null!==e.queries&&Qt(t)&&e.queries.elementEnd(t)}function Zd(t,e,n){Kd(t,e,n),$d()}function Jd(t,e,n){const a=Ae(),r=Ve(),i=2===r.type?r.parent:r,s=a[i.index];let o=function(t,e,n){for(let a=e+9;a<t.length;a++){const e=t[a][1].id;if(e===n)return t[a];if(!(e<n))break;Rs(t,a-9)}return null}(s,s[2],t);if(o)Ee=!0,an(o,o[1].node);else{o=Ri(a,function(t,e,n,a){const r=Ae()[1],i=a.tViews;return(t>=i.length||null==i[t])&&(i[t]=Fi(t,null,e,n,r.directiveRegistry,r.pipeRegistry,null,null)),i[t]}(t,e,n,i),null,16,null,null);const s=Ye()?r:r&&r.parent;ki(o[1],s,t,o),an(o,o[1].node)}return s&&(Ue(o)&&Is(o,s,s[2]),s[2]++),Ue(o)?3:2}function Qd(){const t=Ae(),e=t[6];Ue(t)&&(Ii(t),t[2]&=-5),Oe(t),Ii(t),sn(t[3][3],!0),ze(e,!1)}function Xd(){return Ae()}function tl(t){return!!t&&"function"==typeof t.then}function el(t){return!!t&&"function"==typeof t.subscribe}function nl(t,e,n=!1,a){rl(t,e,n,a)}function al(t,e,n=!1,a){rl(t,e,n,a,bs)}function rl(t,e,n=!1,a,r){const i=Ae(),s=Ve(),o=i[1],u=o.firstTemplatePass&&(o.cleanup||(o.cleanup=[]));let d=!0;if(3===s.type){const o=be(s,i),l=a?a(o):St,c=l.target||o,f=r?r(s,i):i[12],h=gs(i),g=h.length,p=a?t=>a(ge(t[s.index])).target:s.index;if(ta(f)){let n=null;if(!a&&function(t){return t.directiveEnd>t.directiveStart}(s)&&(n=function(t,e,n){const a=t[1].cleanup;if(null!=a)for(let r=0;r<a.length-1;r+=2){const i=a[r];if(i===e&&a[r+1]===n){const e=t[8],n=a[r+2];return e.length>n?e[n]:null}"string"==typeof i&&(r+=2)}return null}(i,t,s.index)),null!==n)e.__ngNextListenerFn__=n.__ngNextListenerFn__,n.__ngNextListenerFn__=e,d=!1;else{e=sl(s,i,e,!1);const n=f.listen(l.name||c,t,e);h.push(e,n),u&&u.push(t,p,g,g+1)}}else e=sl(s,i,e,!0),c.addEventListener(t,e,n),h.push(e),u&&u.push(t,p,g,n)}void 0===s.outputs&&(s.outputs=zi(s,1));const l=s.outputs;let c;if(d&&l&&(c=l[t])){const n=c.length;if(n){const a=gs(i);for(let r=0;r<n;r+=3){const n=i[c[r]][c[r+2]].subscribe(e),o=a.length;a.push(e,n),u&&u.push(t,s.index,o,-(o+1))}}}}function il(t,e,n){try{return!1!==e(n)}catch(a){return ms(t,a),!1}}function sl(t,e,n,a){return function r(i){const s=1&t.flags?xe(t.index,e):e;0==(32&e[2])&&is(s);let o=il(e,n,i),u=r.__ngNextListenerFn__;for(;u;)o=il(e,u,i)&&o,u=u.__ngNextListenerFn__;return a&&!1===o&&(i.preventDefault(),i.returnValue=!1),o}}function ol(t=1){return rn(t)}function ul(t,e){let n=null;const a=function(t){const e=t.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null}(t);for(let r=0;r<e.length;r++){const i=e[r];if("*"!==i){if(null===a?$r(t,i,!0):Zr(a,i))return r}else n=r}return n}function dl(t){const e=la(Ae())[6];if(!e.projection){const n=e.projection=new Array(t?t.length:1).fill(null),a=n.slice();let r=e.child;for(;null!==r;){const e=t?ul(r,t):0;null!==e&&(a[e]?a[e].projectionNext=r:n[e]=r,a[e]=r),r=r.next}}}let ll=!1;function cl(t){ll=t}function fl(t,e=0,n){const a=Ae(),r=Ai(a[1],a[6],t,1,null,n||null);null===r.projection&&(r.projection=e),He(),ll||Fs(a,r,e,la(a))}function hl(t,e,n){return gl(t,"",e,"",n),hl}function gl(t,e,n,a,r){const i=un(),s=$u(Ae(),e,n,a);return s!==ci&&Yi(i,t,s,r),gl}function pl(t,e,n,a,r,i,s){const o=un(),u=Zu(Ae(),e,n,a,r,i);return u!==ci&&Yi(o,t,u,s),pl}function bl(t,e,n,a,r,i,s,o,u){const d=un(),l=Ju(Ae(),e,n,a,r,i,s,o);return l!==ci&&Yi(d,t,l,u),bl}function ml(t,e,n,a,r,i,s,o,u,d,l){const c=un(),f=Qu(Ae(),e,n,a,r,i,s,o,u,d);return f!==ci&&Yi(c,t,f,l),ml}function yl(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=un(),g=Xu(Ae(),e,n,a,r,i,s,o,u,d,l,c);return g!==ci&&Yi(h,t,g,f),yl}function vl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g){const p=un(),b=td(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h);return b!==ci&&Yi(p,t,b,g),vl}function xl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b){const m=un(),y=ed(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h,g,p);return y!==ci&&Yi(m,t,y,b),xl}function _l(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m,y){const v=un(),x=nd(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m);return x!==ci&&Yi(v,t,x,y),_l}function Tl(t,e,n){const a=un(),r=Ku(Ae(),e);return r!==ci&&Yi(a,t,r,n),Tl}function Ol(t,e){const n=Ae(),a=n[t+19]=ws(e,n[12]),r=Ai(n[1],n[6],t,3,null,null);He(),Ms(a,r,n)}function wl(t){const e=Ae(),n=un(),a=Uu(e,t);a!==ci&&vs(e,n,vn(a))}function Sl(t){return Il("",t,""),Sl}function Il(t,e,n){const a=un(),r=Ae(),i=$u(r,t,e,n);return i!==ci&&vs(r,a,i),Il}function Nl(t,e,n,a,r){const i=un(),s=Ae(),o=Zu(s,t,e,n,a,r);return o!==ci&&vs(s,i,o),Nl}function Cl(t,e,n,a,r,i,s){const o=un(),u=Ae(),d=Ju(u,t,e,n,a,r,i,s);return d!==ci&&vs(u,o,d),Cl}function Rl(t,e,n,a,r,i,s,o,u){const d=un(),l=Ae(),c=Qu(l,t,e,n,a,r,i,s,o,u);return c!==ci&&vs(l,d,c),Rl}function Al(t,e,n,a,r,i,s,o,u,d,l){const c=un(),f=Ae(),h=Xu(f,t,e,n,a,r,i,s,o,u,d,l);return h!==ci&&vs(f,c,h),Al}function kl(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=un(),g=Ae(),p=td(g,t,e,n,a,r,i,s,o,u,d,l,c,f);return p!==ci&&vs(g,h,p),kl}function El(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g){const p=un(),b=Ae(),m=ed(b,t,e,n,a,r,i,s,o,u,d,l,c,f,h,g);return m!==ci&&vs(b,p,m),El}function Ll(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b){const m=un(),y=Ae(),v=nd(y,t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b);return v!==ci&&vs(y,m,v),Ll}function Dl(t){const e=un(),n=Ae(),a=Ku(n,t);return a!==ci&&vs(n,e,a),Dl}function Pl(t,e,n){const a=$u(Ae(),t,e,n);Ed(un(),a)}function Ml(t,e,n,a,r){const i=Zu(Ae(),t,e,n,a,r);Ed(un(),i)}function ql(t,e,n,a,r,i,s){const o=Ju(Ae(),t,e,n,a,r,i,s);Ed(un(),o)}function jl(t,e,n,a,r,i,s,o,u){const d=Qu(Ae(),t,e,n,a,r,i,s,o,u);Ed(un(),d)}function Fl(t,e,n,a,r,i,s,o,u,d,l){const c=Xu(Ae(),t,e,n,a,r,i,s,o,u,d,l);Ed(un(),c)}function Gl(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=td(Ae(),t,e,n,a,r,i,s,o,u,d,l,c,f);Ed(un(),h)}function Vl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g){const p=ed(Ae(),t,e,n,a,r,i,s,o,u,d,l,c,f,h,g);Ed(un(),p)}function zl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b){const m=nd(Ae(),t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b);Ed(un(),m)}function Bl(t){const e=Ku(Ae(),t);Ed(un(),e)}function Yl(t,e,n,a,r){const i=$u(Ae(),e,n,a);return Nd(un(),t,i,r),Yl}function Hl(t,e,n,a,r,i,s){const o=Zu(Ae(),e,n,a,r,i);return Nd(un(),t,o,s),Hl}function Ul(t,e,n,a,r,i,s,o,u){const d=Ju(Ae(),e,n,a,r,i,s,o);return Nd(un(),t,d,u),Ul}function Wl(t,e,n,a,r,i,s,o,u,d,l){const c=Qu(Ae(),e,n,a,r,i,s,o,u,d);return Nd(un(),t,c,l),Wl}function Kl(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=Xu(Ae(),e,n,a,r,i,s,o,u,d,l,c);return Nd(un(),t,h,f),Kl}function $l(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g){const p=td(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h);return Nd(un(),t,p,g),$l}function Zl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b){const m=ed(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h,g,p);return Nd(un(),t,m,b),Zl}function Jl(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m,y){const v=nd(Ae(),e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m);return Nd(un(),t,v,y),Jl}function Ql(t,e,n){const a=Ku(Ae(),e);return Nd(un(),t,a,n),Ql}function Xl(t,e,n){const a=un(),r=Uu(Ae(),e);return r!==ci&&Yi(a,t,r,n,!0),Xl}function tc(t,e,n){const a=un(),r=Uu(Ae(),e);return r!==ci&&Yi(a,t,r,n,!0,bs),tc}function ec(t){const e=dc(t);return void 0===e.component&&(e.component=function(t,e){const n=e[1].data[t];return 1&n.flags?e[n.directiveStart]:null}(e.nodeIndex,e.lView)),e.component}function nc(t){return dc(t).lView[9]}function ac(t){let e,n=oc(t).lView;for(;null===n[0]&&(e=da(n));)n=e;return 512&n[2]?null:n[9]}function rc(t){return[...ca(t).components]}function ic(t){const e=oc(t);return new Ca(e.lView[1].data[e.nodeIndex],e.lView)}function sc(t){const e=oc(t);return void 0===e.directives&&(e.directives=Vr(e.nodeIndex,e.lView,!1)),e.directives||[]}function oc(t,e=!0){const n=Dr(t);if(!n&&e)throw new Error("Invalid ng target");return n}function uc(t){return Dr(t).native}function dc(t){if(!(t instanceof Node))throw new Error("Expecting instance of DOM Node");return oc(t)}function lc(t){return"boolean"==typeof t.useCapture}function cc(t){const e=dc(t).lView,n=e[8],a=e[1].cleanup,r=[];if(a&&n)for(let i=0;i<a.length;){const s=a[i++],o=a[i++];if("string"==typeof s){const u=s,d=ge(e[o]),l=n[a[i++]],c=a[i++],f="boolean"==typeof c?c:!(c>=0)&&null;t==d&&r.push({element:t,name:u,callback:l,useCapture:f})}}return r.sort(fc),r}function fc(t,e){return t.name==e.name?0:t.name<e.name?-1:1}let hc=!1;function gc(){hc||(hc=!0,pc("getComponent",ec),pc("getContext",nc),pc("getListeners",cc),pc("getViewComponent",ac),pc("getHostElement",uc),pc("getInjector",ic),pc("getRootComponents",rc),pc("getDirectives",sc),pc("markDirty",hd))}function pc(t,e){if(U){let n=U.ng;n||(n=U.ng={}),n[t]=e}}function bc(t,e={}){qe(null);const n=e.rendererFactory||ea,a=e.sanitizer||null,r=Ht(t);r.type!=t&&(r.type=t);const i=Gi(n,e.host||r.selectors[0][0]),s=r.onPush?576:528,o=vc(e.scheduler,e.playerHandler),u=n.createRenderer(i,r),d=Ri(null,Fi(-1,null,1,0,null,null,null,null),o,s,null,null,n,u,void 0,e.injector||null),l=an(d,null);let c,f=!1;try{n.begin&&n.begin();const t=mc(i,r,d,n,u,a);c=yc(t,r,d,o,e.hostFeatures||null),rs(d,t),Ii(d),d[2]&=-5,Oe(d),Ii(d),f=!0}finally{sn(l,f),n.end&&n.end()}return c}function mc(t,e,n,a,r,i){Ee=!1,ke=null,le=0,we=!0,bn(null),he(),de.clear();const s=n[1];n[19]=t;const o=Ai(s,null,0,3,null,null),u=Ri(n,ji(e),null,e.onPush?64:16,n[19],o,a,r,i);return s.firstTemplatePass&&(va(pa(o,n),s,e.type),o.flags=1,Qi(o,n.length,1),Zi(o)),n[19]=u}function yc(t,e,n,a,r){const i=n[1],s=function(t,e,n){const a=Ve();t.firstTemplatePass&&(n.providersResolver&&n.providersResolver(n),Wi(t,a,1),Xi(t,e,n,n.factory));const r=Sa(t.data,e,e.length-1,a);return $i(e,a,r),r}(i,n,e);a.components.push(s),t[9]=s,r&&r.forEach(t=>t(s,e)),e.contentQueries&&e.contentQueries(1,s,n.length-1);const o=Ve();return i.firstTemplatePass&&e.hostBindings&&(qe(o.index-19),Ui(e,i.expandoInstructions,s,o,i.firstTemplatePass),qe(null)),s}function vc(t,e){return{components:[],scheduler:t||_n,clean:fs,playerHandler:e||null,flags:0}}function xc(t,e){const n=Te(t)[1],a=n.data.length-1;ae(a,e,n,-1,-1,-1),re(n,{directiveStart:a,directiveEnd:a+1})}function _c(t){return ca(t).clean}class Tc{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function Oc(){return wc.ngInherit=!0,wc}function wc(t){t.type.prototype.ngOnChanges&&(t.setInput=Sc,t.onChanges=function(){const t=Ic(this),e=t&&t.current;if(e){const n=t.previous;if(n===St)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}})}function Sc(t,e,n,a){const r=Ic(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:St,current:null}),i=r.current||(r.current={}),s=r.previous,o=this.declaredInputs[n],u=s[o];i[o]=new Tc(u&&u.currentValue,e,s===St),t[a]=e}function Ic(t){return t.__ngSimpleChanges__||null}function Nc(t){let e=Object.getPrototypeOf(t.type.prototype).constructor;for(;e;){let n=void 0;if(te(t))n=e.ngComponentDef||e.ngDirectiveDef;else{if(e.ngComponentDef)throw new Error("Directives cannot inherit Components");n=e.ngDirectiveDef}const a=e.ngBaseDef;if(a||n){const e=t;e.inputs=Cc(t.inputs),e.declaredInputs=Cc(t.declaredInputs),e.outputs=Cc(t.outputs)}if(a){const e=a.viewQuery,n=a.contentQueries,r=a.hostBindings;r&&kc(t,r),e&&Rc(t,e),n&&Ac(t,n),A(t.inputs,a.inputs),A(t.declaredInputs,a.declaredInputs),A(t.outputs,a.outputs)}if(n){const e=n.hostBindings;e&&kc(t,e);const a=n.viewQuery,r=n.contentQueries;a&&Rc(t,a),r&&Ac(t,r),A(t.inputs,n.inputs),A(t.declaredInputs,n.declaredInputs),A(t.outputs,n.outputs),t.afterContentChecked=t.afterContentChecked||n.afterContentChecked,t.afterContentInit=t.afterContentInit||n.afterContentInit,t.afterViewChecked=t.afterViewChecked||n.afterViewChecked,t.afterViewInit=t.afterViewInit||n.afterViewInit,t.doCheck=t.doCheck||n.doCheck,t.onDestroy=t.onDestroy||n.onDestroy,t.onInit=t.onInit||n.onInit;const i=n.features;if(i)for(const n of i)n&&n.ngInherit&&n(t)}else{const n=e.prototype;n&&(t.afterContentChecked=t.afterContentChecked||n.ngAfterContentChecked,t.afterContentInit=t.afterContentInit||n.ngAfterContentInit,t.afterViewChecked=t.afterViewChecked||n.ngAfterViewChecked,t.afterViewInit=t.afterViewInit||n.ngAfterViewInit,t.doCheck=t.doCheck||n.ngDoCheck,t.onDestroy=t.onDestroy||n.ngOnDestroy,t.onInit=t.onInit||n.ngOnInit,n.ngOnChanges&&Oc()(t))}e=Object.getPrototypeOf(e)}}function Cc(t){return t===St?{}:t===It?[]:t}function Rc(t,e){const n=t.viewQuery;t.viewQuery=n?(t,a)=>{e(t,a),n(t,a)}:e}function Ac(t,e){const n=t.contentQueries;t.contentQueries=n?(t,a,r)=>{e(t,a,r),n(t,a,r)}:e}function kc(t,e){const n=t.hostBindings;e!==n&&(t.hostBindings=n?(t,a,r)=>{Fe(1);try{e(t,a,r)}finally{Fe(-1)}n(t,a,r)}:e)}function Ec(t,e,n,a,r){if(t=V(t),Array.isArray(t))for(let i=0;i<t.length;i++)Ec(t[i],e,n,a,r);else{const i=Ae(),s=i[1];let o=Go(t)?t:V(t.provide),u=qo(t);const d=Ve(),l=65535&d.providerIndexes,c=d.directiveStart,f=d.providerIndexes>>16;if(t.useClass||Go(t)){const n=(t.useClass||t).prototype.ngOnDestroy;n&&(s.destroyHooks||(s.destroyHooks=[])).push(e.length,n)}if(Go(t)||!t.multi){const t=new ne(u,r,Td),a=Dc(o,e,r?l:l+f,c);-1==a?(va(pa(d,i),s,o),e.push(o),d.directiveStart++,d.directiveEnd++,r&&(d.providerIndexes+=65536),n.push(t),i.push(t)):(n[a]=t,i[a]=t)}else{const t=Dc(o,e,l+f,c),h=Dc(o,e,l,l+f),g=t>=0&&n[t],p=h>=0&&n[h];if(r&&!p||!r&&!g){va(pa(d,i),s,o);const t=function(t,e,n,a,r){const i=new ne(t,n,Td);return i.multi=[],i.index=e,i.componentProviders=0,Lc(i,r,a&&!n),i}(r?Mc:Pc,n.length,r,a,u);!r&&p&&(n[h].providerFactory=t),e.push(o),d.directiveStart++,d.directiveEnd++,r&&(d.providerIndexes+=65536),n.push(t),i.push(t)}else Lc(n[r?h:t],u,!r&&a);!r&&a&&p&&n[h].componentProviders++}}}function Lc(t,e,n){t.multi.push(e),n&&t.componentProviders++}function Dc(t,e,n,a){for(let r=n;r<a;r++)if(e[r]===t)return r;return-1}function Pc(t,e,n,a){return qc(this.multi,[])}function Mc(t,e,n,a){const r=this.multi;let i;if(this.providerFactory){const t=this.providerFactory.componentProviders,s=Sa(e,n,this.providerFactory.index,a);i=s.slice(0,t),qc(r,i);for(let e=t;e<s.length;e++)i.push(s[e])}else i=[],qc(r,i);return i}function qc(t,e){for(let n=0;n<t.length;n++)e.push((0,t[n])());return e}function jc(t,e=[]){return n=>{n.providersResolver=(n,a)=>function(t,e,n){const a=Ae()[1];if(a.firstTemplatePass){const r=te(t);Ec(n,a.data,a.blueprint,r,!0),Ec(e,a.data,a.blueprint,r,!1)}}(n,a?a(t):t,e)}}class Fc{}class Gc{}function Vc(t){const e=Error(`No component factory found for ${j(t)}. Did you add it to @NgModule.entryComponents?`);return e[zc]=t,e}const zc="ngComponent";class Bc{resolveComponentFactory(t){throw Vc(t)}}let Yc=(()=>{class t{}return t.NULL=new Bc,t})();class Hc{constructor(t,e,n){this._parent=e,this._ngModule=n,this._factories=new Map;for(let a=0;a<t.length;a++){const e=t[a];this._factories.set(e.componentType,e)}}resolveComponentFactory(t){let e=this._factories.get(t);if(!e&&this._parent&&(e=this._parent.resolveComponentFactory(t)),!e)throw Vc(t);return new Uc(e,this._ngModule)}}class Uc extends Gc{constructor(t,e){super(),this.factory=t,this.ngModule=e,this.selector=t.selector,this.componentType=t.componentType,this.ngContentSelectors=t.ngContentSelectors,this.inputs=t.inputs,this.outputs=t.outputs}create(t,e,n,a){return this.factory.create(t,e,n,a||this.ngModule)}}function Wc(...t){}let Kc=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=()=>Zc(t),t})();const $c=function(t){return $s(t,Ve(),Ae())},Zc=Wc;class Jc{constructor(t,e,n,a,r,i){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=a,this.styles=r,this.animations=i}}class Qc{}class Xc{}class tf{}class ef{}const nf=function(){var t={Important:1,DashCase:2};return t[t.Important]="Important",t[t.DashCase]="DashCase",t}();let af=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>sf(),t})();const rf=function(){const t=Ae(),e=xe(Ve().index,t);return function(t){const e=t[12];if(ta(e))return e;throw new Error("Cannot inject Renderer2 when the application uses Renderer3!")}(Zt(e)?e:t)},sf=Wc;class of{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const uf=new of("8.2.14");class df{constructor(){}supports(t){return qu(t)}create(t){return new cf(t)}}const lf=(t,e)=>e;class cf{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||lf}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,a=0,r=null;for(;e||n;){const i=!n||e&&e.currentIndex<pf(n,a,r)?e:n,s=pf(i,a,r),o=i.currentIndex;if(i===n)a--,n=n._nextRemoved;else if(e=e._next,null==i.previousIndex)a++;else{r||(r=[]);const t=s-a,e=o-a;if(t!=e){for(let n=0;n<t;n++){const a=n<r.length?r[n]:r[n]=0,i=a+n;e<=i&&i<t&&(r[n]=a+1)}r[i.previousIndex]=e-t}}s!==o&&t(i,s,o)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!qu(t))throw new Error(`Error trying to diff '${j(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,a,r=this._itHead,i=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],a=this._trackByFn(e,n),null!==r&&Du(r.trackById,a)?(i&&(r=this._verifyReinsertion(r,n,a,e)),Du(r.item,n)||this._addIdentityChange(r,n)):(r=this._mismatch(r,n,a,e),i=!0),r=r._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[Lu()]();let a;for(;!(a=n.next()).done;)e(a.value)}}(t,t=>{a=this._trackByFn(e,t),null!==r&&Du(r.trackById,a)?(i&&(r=this._verifyReinsertion(r,t,a,e)),Du(r.item,t)||this._addIdentityChange(r,t)):(r=this._mismatch(r,t,a,e),i=!0),r=r._next,e++}),this.length=e;return this._truncate(r),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,e;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=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,a){let r;return null===t?r=this._itTail:(r=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,a))?(Du(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,r,a)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Du(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,r,a)):t=this._addAfter(new ff(e,n),r,a),t}_verifyReinsertion(t,e,n,a){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==r?t=this._reinsertAfter(r,t._prev,a):t.currentIndex!=a&&(t.currentIndex=a,this._addToMoves(t,a)),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,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const a=t._prevRemoved,r=t._nextRemoved;return null===a?this._removalsHead=r:a._nextRemoved=r,null===r?this._removalsTail=a:r._prevRemoved=a,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const a=null===e?this._itHead:e._next;return t._next=a,t._prev=e,null===a?this._itTail=t:a._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new gf),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e?t:(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t,t)}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new gf),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 ff{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 hf{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 n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Du(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class gf{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new hf,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.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 pf(t,e,n){const a=t.previousIndex;if(null===a)return a;let r=0;return n&&a<n.length&&(r=n[a]),a+e+r}class bf{constructor(){}supports(t){return t instanceof Map||ju(t)}create(){return new mf}}class mf{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||ju(t)))throw new Error(`Error trying to diff '${j(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const a=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,a)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._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 n=this._records.get(t);this._maybeAddToChanges(n,e);const a=n._prev,r=n._next;return a&&(a._next=r),r&&(r._prev=a),n._next=null,n._prev=null,n}const n=new yf(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_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){Du(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(n=>e(t[n],n))}}class yf{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}}let vf=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error("Cannot extend IterableDiffers without a parent injector");return t.create(e,n)},deps:[[t,new S,new O]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.ngInjectableDef=k({token:t,providedIn:"root",factory:()=>new t([new df])}),t})(),xf=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return t.create(e,n)},deps:[[t,new S,new O]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.ngInjectableDef=k({token:t,providedIn:"root",factory:()=>new t([new bf])}),t})();const _f=[new bf],Tf=new vf([new df]),Of=new xf(_f);let wf=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>If(t,Kc),t})();const Sf=function(t,e){return Zs(t,e,Ve(),Ae())},If=Wc;let Nf=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Rf(t,Kc),t})();const Cf=function(t,e){return Js(t,e,Ve(),Ae())},Rf=Wc;function Af(t,e,n,a){let r=`ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '${e}'. Current value: '${n}'.`;return a&&(r+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),function(t,e){const n=new Error(t);return kf(n,e),n}(r,t)}function kf(t,e){t.ngDebugContext=e,t.ngErrorLogger=e.logError.bind(e)}function Ef(t){return new Error(`ViewDestroyedError: Attempt to use a destroyed view: ${t}`)}function Lf(t,e,n){const a=t.state,r=1792&a;return r===e?(t.state=-1793&a|n,t.initIndex=-1,!0):r===n}function Df(t,e,n){return(1792&t.state)===e&&t.initIndex<=n&&(t.initIndex=n+1,!0)}function Pf(t,e){return t.nodes[e]}function Mf(t,e){return t.nodes[e]}function qf(t,e){return t.nodes[e]}function jf(t,e){return t.nodes[e]}function Ff(t,e){return t.nodes[e]}class Gf{}const Vf={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,createComponentView:void 0,createNgModuleRef:void 0,overrideProvider:void 0,overrideComponentView:void 0,clearOverrides:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0},zf=()=>{},Bf=new Map;function Yf(t){let e=Bf.get(t);return e||(e=j(t)+"_"+Bf.size,Bf.set(t,e)),e}function Hf(t,e,n,a){if(Mu.isWrapped(a)){a=Mu.unwrap(a);const r=t.def.nodes[e].bindingIndex+n,i=Mu.unwrap(t.oldValues[r]);t.oldValues[r]=new Mu(i)}return a}function Uf(t){return{id:"$$undefined",styles:t.styles,encapsulation:t.encapsulation,data:t.data}}let Wf=0;function Kf(t,e,n,a){return!(!(2&t.state)&&Du(t.oldValues[e.bindingIndex+n],a))}function $f(t,e,n,a){return!!Kf(t,e,n,a)&&(t.oldValues[e.bindingIndex+n]=a,!0)}function Zf(t,e,n,a){const r=t.oldValues[e.bindingIndex+n];if(1&t.state||!Pu(r,a)){const i=e.bindings[n].name;throw Af(Vf.createDebugContext(t,e.nodeIndex),`${i}: ${r}`,`${i}: ${a}`,0!=(1&t.state))}}function Jf(t){let e=t;for(;e;)2&e.def.flags&&(e.state|=8),e=e.viewContainerParent||e.parent}function Qf(t,e){let n=t;for(;n&&n!==e;)n.state|=64,n=n.viewContainerParent||n.parent}function Xf(t,e,n,a){try{return Jf(33554432&t.def.nodes[e].flags?Mf(t,e).componentView:t),Vf.handleEvent(t,e,n,a)}catch(r){t.root.errorHandler.handleError(r)}}function th(t){return t.parent?Mf(t.parent,t.parentNodeDef.nodeIndex):null}function eh(t){return t.parent?t.parentNodeDef.parent:null}function nh(t,e){switch(201347067&e.flags){case 1:return Mf(t,e.nodeIndex).renderElement;case 2:return Pf(t,e.nodeIndex).renderText}}function ah(t){return!!t.parent&&!!(32768&t.parentNodeDef.flags)}function rh(t){return!(!t.parent||32768&t.parentNodeDef.flags)}function ih(t){return 1<<t%32}function sh(t){const e={};let n=0;const a={};return t&&t.forEach(([t,r])=>{"number"==typeof t?(e[t]=r,n|=ih(t)):a[t]=r}),{matchedQueries:e,references:a,matchedQueryIds:n}}function oh(t,e){return t.map(t=>{let n,a;return Array.isArray(t)?[a,n]=t:(a=0,n=t),n&&("function"==typeof n||"object"==typeof n)&&e&&Object.defineProperty(n,"__source",{value:e,configurable:!0}),{flags:a,token:n,tokenKey:Yf(n)}})}function uh(t,e,n){let a=n.renderParent;return a?0==(1&a.flags)||0==(33554432&a.flags)||a.element.componentRendererType&&a.element.componentRendererType.encapsulation===Ot.Native?Mf(t,n.renderParent.nodeIndex).renderElement:void 0:e}const dh=new WeakMap;function lh(t){let e=dh.get(t);return e||(e=t(()=>zf),e.factory=t,dh.set(t,e)),e}function ch(t,e,n,a,r){3===e&&(n=t.renderer.parentNode(nh(t,t.def.lastRenderRootNode))),fh(t,e,0,t.def.nodes.length-1,n,a,r)}function fh(t,e,n,a,r,i,s){for(let o=n;o<=a;o++){const n=t.def.nodes[o];11&n.flags&&gh(t,n,e,r,i,s),o+=n.childCount}}function hh(t,e,n,a,r,i){let s=t;for(;s&&!ah(s);)s=s.parent;const o=s.parent,u=eh(s),d=u.nodeIndex+u.childCount;for(let l=u.nodeIndex+1;l<=d;l++){const t=o.def.nodes[l];t.ngContentIndex===e&&gh(o,t,n,a,r,i),l+=t.childCount}if(!o.parent){const s=t.root.projectableNodes[e];if(s)for(let e=0;e<s.length;e++)ph(t,s[e],n,a,r,i)}}function gh(t,e,n,a,r,i){if(8&e.flags)hh(t,e.ngContent.index,n,a,r,i);else{const s=nh(t,e);if(3===n&&33554432&e.flags&&48&e.bindingFlags?(16&e.bindingFlags&&ph(t,s,n,a,r,i),32&e.bindingFlags&&ph(Mf(t,e.nodeIndex).componentView,s,n,a,r,i)):ph(t,s,n,a,r,i),16777216&e.flags){const s=Mf(t,e.nodeIndex).viewContainer._embeddedViews;for(let t=0;t<s.length;t++)ch(s[t],n,a,r,i)}1&e.flags&&!e.element.name&&fh(t,n,e.nodeIndex+1,e.nodeIndex+e.childCount,a,r,i)}}function ph(t,e,n,a,r,i){const s=t.renderer;switch(n){case 1:s.appendChild(a,e);break;case 2:s.insertBefore(a,e,r);break;case 3:s.removeChild(a,e);break;case 0:i.push(e)}}const bh=/^:([^:]+):(.+)$/;function mh(t){if(":"===t[0]){const e=t.match(bh);return[e[1],e[2]]}return["",t]}function yh(t){let e=0;for(let n=0;n<t.length;n++)e|=t[n].flags;return e}function vh(t,e){let n="";for(let a=0;a<2*t;a+=2)n=n+e[a]+_h(e[a+1]);return n+e[2*t]}function xh(t,e,n,a,r,i,s,o,u,d,l,c,f,h,g,p,b,m,y,v){switch(t){case 1:return e+_h(n)+a;case 2:return e+_h(n)+a+_h(r)+i;case 3:return e+_h(n)+a+_h(r)+i+_h(s)+o;case 4:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d;case 5:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d+_h(l)+c;case 6:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d+_h(l)+c+_h(f)+h;case 7:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d+_h(l)+c+_h(f)+h+_h(g)+p;case 8:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d+_h(l)+c+_h(f)+h+_h(g)+p+_h(b)+m;case 9:return e+_h(n)+a+_h(r)+i+_h(s)+o+_h(u)+d+_h(l)+c+_h(f)+h+_h(g)+p+_h(b)+m+_h(y)+v;default:throw new Error("Does not support more than 9 expressions")}}function _h(t){return null!=t?t.toString():""}const Th=[],Oh={},wh=new Object,Sh=Yf(Bo),Ih=Yf($),Nh=Yf(ft);function Ch(t,e,n,a){return n=V(n),{index:-1,deps:oh(a,j(e)),flags:t,token:e,value:n}}function Rh(t){const e={},n=[];let a=!1;for(let r=0;r<t.length;r++){const i=t[r];i.token===Co&&!0===i.value&&(a=!0),1073741824&i.flags&&n.push(i.token),i.index=r,e[Yf(i.token)]=i}return{factory:null,providersByKey:e,providers:t,modules:n,isRoot:a}}function Ah(t,e,n=Bo.THROW_IF_NOT_FOUND){const a=et(t);try{if(8&e.flags)return e.token;if(2&e.flags&&(n=null),1&e.flags)return t._parent.get(e.token,n);const s=e.tokenKey;switch(s){case Sh:case Ih:case Nh:return t}const o=t._def.providersByKey[s];let u;if(o){let e=t._providers[o.index];return void 0===e&&(e=t._providers[o.index]=kh(t,o)),e===wh?void 0:e}if((u=D(e.token))&&(r=t,null!=(i=u).providedIn&&(function(t,e){return t._def.modules.indexOf(e)>-1}(r,i.providedIn)||"root"===i.providedIn&&r._def.isRoot))){const n=t._providers.length;return t._def.providers[n]=t._def.providersByKey[e.tokenKey]={flags:5120,value:u.factory,deps:[],index:n,token:e.token},t._providers[n]=wh,t._providers[n]=kh(t,t._def.providersByKey[e.tokenKey])}return 4&e.flags?n:t._parent.get(e.token,n)}finally{et(a)}var r,i}function kh(t,e){let n;switch(201347067&e.flags){case 512:n=function(t,e,n){const a=n.length;switch(a){case 0:return new e;case 1:return new e(Ah(t,n[0]));case 2:return new e(Ah(t,n[0]),Ah(t,n[1]));case 3:return new e(Ah(t,n[0]),Ah(t,n[1]),Ah(t,n[2]));default:const r=new Array(a);for(let e=0;e<a;e++)r[e]=Ah(t,n[e]);return new e(...r)}}(t,e.value,e.deps);break;case 1024:n=function(t,e,n){const a=n.length;switch(a){case 0:return e();case 1:return e(Ah(t,n[0]));case 2:return e(Ah(t,n[0]),Ah(t,n[1]));case 3:return e(Ah(t,n[0]),Ah(t,n[1]),Ah(t,n[2]));default:const r=Array(a);for(let e=0;e<a;e++)r[e]=Ah(t,n[e]);return e(...r)}}(t,e.value,e.deps);break;case 2048:n=Ah(t,e.deps[0]);break;case 256:n=e.value}return n===wh||null===n||"object"!=typeof n||131072&e.flags||"function"!=typeof n.ngOnDestroy||(e.flags|=131072),void 0===n?wh:n}function Eh(t,e){const n=t.viewContainer._embeddedViews;if((null==e||e>=n.length)&&(e=n.length-1),e<0)return null;const a=n[e];return a.viewContainerParent=null,yt(n,e),Vf.dirtyParentQueries(a),Dh(a),a}function Lh(t,e,n){const a=e?nh(e,e.def.lastRenderRootNode):t.renderElement,r=n.renderer.parentNode(a),i=n.renderer.nextSibling(a);ch(n,2,r,i,void 0)}function Dh(t){ch(t,3,null,null,void 0)}const Ph=new Object;function Mh(t,e,n,a,r,i){return new jh(t,e,n,a,r,i)}function qh(t){return t.viewDefFactory}class jh extends Gc{constructor(t,e,n,a,r,i){super(),this.selector=t,this.componentType=e,this._inputs=a,this._outputs=r,this.ngContentSelectors=i,this.viewDefFactory=n}get inputs(){const t=[],e=this._inputs;for(let n in e)t.push({propName:n,templateName:e[n]});return t}get outputs(){const t=[];for(let e in this._outputs)t.push({propName:e,templateName:this._outputs[e]});return t}create(t,e,n,a){if(!a)throw new Error("ngModule should be provided");const r=lh(this.viewDefFactory),i=r.nodes[0].element.componentProvider.nodeIndex,s=Vf.createRootView(t,e||[],n,r,a,Ph),o=qf(s,i).instance;return n&&s.renderer.setAttribute(Mf(s,0).renderElement,"ng-version",uf.full),new Fh(s,new Bh(s),o)}}class Fh extends Fc{constructor(t,e,n){super(),this._view=t,this._viewRef=e,this._component=n,this._elDef=this._view.def.nodes[0],this.hostView=e,this.changeDetectorRef=e,this.instance=n}get location(){return new Kc(Mf(this._view,this._elDef.nodeIndex).renderElement)}get injector(){return new Wh(this._view,this._elDef)}get componentType(){return this._component.constructor}destroy(){this._viewRef.destroy()}onDestroy(t){this._viewRef.onDestroy(t)}}function Gh(t,e,n){return new Vh(t,e,n)}class Vh{constructor(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}get element(){return new Kc(this._data.renderElement)}get injector(){return new Wh(this._view,this._elDef)}get parentInjector(){let t=this._view,e=this._elDef.parent;for(;!e&&t;)e=eh(t),t=t.parent;return t?new Wh(t,e):new Wh(this._view,null)}clear(){for(let t=this._embeddedViews.length-1;t>=0;t--){const e=Eh(this._data,t);Vf.destroyView(e)}}get(t){const e=this._embeddedViews[t];if(e){const t=new Bh(e);return t.attachToViewContainerRef(this),t}return null}get length(){return this._embeddedViews.length}createEmbeddedView(t,e,n){const a=t.createEmbeddedView(e||{});return this.insert(a,n),a}createComponent(t,e,n,a,r){const i=n||this.parentInjector;r||t instanceof Uc||(r=i.get(ft));const s=t.create(i,a,void 0,r);return this.insert(s.hostView,e),s}insert(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");const n=t;return function(t,e,n,a){let r=e.viewContainer._embeddedViews;null==n&&(n=r.length),a.viewContainerParent=t,mt(r,n,a),function(t,e){const n=th(e);if(!n||n===t||16&e.state)return;e.state|=16;let a=n.template._projectedViews;a||(a=n.template._projectedViews=[]),a.push(e),function(t,e){if(4&e.flags)return;t.nodeFlags|=4,e.flags|=4;let n=e.parent;for(;n;)n.childFlags|=4,n=n.parent}(e.parent.def,e.parentNodeDef)}(e,a),Vf.dirtyParentQueries(a),Lh(e,n>0?r[n-1]:null,a)}(this._view,this._data,e,n._view),n.attachToViewContainerRef(this),t}move(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");const n=this._embeddedViews.indexOf(t._view);return function(t,e,n){const a=t.viewContainer._embeddedViews,r=a[e];yt(a,e),null==n&&(n=a.length),mt(a,n,r),Vf.dirtyParentQueries(r),Dh(r),Lh(t,n>0?a[n-1]:null,r)}(this._data,n,e),t}indexOf(t){return this._embeddedViews.indexOf(t._view)}remove(t){const e=Eh(this._data,t);e&&Vf.destroyView(e)}detach(t){const e=Eh(this._data,t);return e?new Bh(e):null}}function zh(t){return new Bh(t)}class Bh{constructor(t){this._view=t,this._viewContainerRef=null,this._appRef=null}get rootNodes(){return function(t){const e=[];return ch(t,0,void 0,void 0,e),e}(this._view)}get context(){return this._view.context}get destroyed(){return 0!=(128&this._view.state)}markForCheck(){Jf(this._view)}detach(){this._view.state&=-5}detectChanges(){const t=this._view.root.rendererFactory;t.begin&&t.begin();try{Vf.checkAndUpdateView(this._view)}finally{t.end&&t.end()}}checkNoChanges(){Vf.checkNoChangesView(this._view)}reattach(){this._view.state|=4}onDestroy(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)}destroy(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Vf.destroyView(this._view)}detachFromAppRef(){this._appRef=null,Dh(this._view),Vf.dirtyParentQueries(this._view)}attachToAppRef(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}attachToViewContainerRef(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t}}function Yh(t,e){return new Hh(t,e)}class Hh extends wf{constructor(t,e){super(),this._parentView=t,this._def=e}createEmbeddedView(t){return new Bh(Vf.createEmbeddedView(this._parentView,this._def,this._def.element.template,t))}get elementRef(){return new Kc(Mf(this._parentView,this._def.nodeIndex).renderElement)}}function Uh(t,e){return new Wh(t,e)}class Wh{constructor(t,e){this.view=t,this.elDef=e}get(t,e=Bo.THROW_IF_NOT_FOUND){return Vf.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:t,tokenKey:Yf(t)},e)}}function Kh(t,e){const n=t.def.nodes[e];if(1&n.flags){const e=Mf(t,n.nodeIndex);return n.element.template?e.template:e.renderElement}if(2&n.flags)return Pf(t,n.nodeIndex).renderText;if(20240&n.flags)return qf(t,n.nodeIndex).instance;throw new Error(`Illegal state: read nodeValue for node index ${e}`)}function $h(t){return new Zh(t.renderer)}class Zh{constructor(t){this.delegate=t}selectRootElement(t){return this.delegate.selectRootElement(t)}createElement(t,e){const[n,a]=mh(e),r=this.delegate.createElement(a,n);return t&&this.delegate.appendChild(t,r),r}createViewRoot(t){return t}createTemplateAnchor(t){const e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e}createText(t,e){const n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n}projectNodes(t,e){for(let n=0;n<e.length;n++)this.delegate.appendChild(t,e[n])}attachViewAfter(t,e){const n=this.delegate.parentNode(t),a=this.delegate.nextSibling(t);for(let r=0;r<e.length;r++)this.delegate.insertBefore(n,e[r],a)}detachView(t){for(let e=0;e<t.length;e++){const n=t[e],a=this.delegate.parentNode(n);this.delegate.removeChild(a,n)}}destroyView(t,e){for(let n=0;n<e.length;n++)this.delegate.destroyNode(e[n])}listen(t,e,n){return this.delegate.listen(t,e,n)}listenGlobal(t,e,n){return this.delegate.listen(t,e,n)}setElementProperty(t,e,n){this.delegate.setProperty(t,e,n)}setElementAttribute(t,e,n){const[a,r]=mh(e);null!=n?this.delegate.setAttribute(t,r,n,a):this.delegate.removeAttribute(t,r,a)}setBindingDebugInfo(t,e,n){}setElementClass(t,e,n){n?this.delegate.addClass(t,e):this.delegate.removeClass(t,e)}setElementStyle(t,e,n){null!=n?this.delegate.setStyle(t,e,n):this.delegate.removeStyle(t,e)}invokeElementMethod(t,e,n){t[e].apply(t,n)}setText(t,e){this.delegate.setValue(t,e)}animate(){throw new Error("Renderer.animate is no longer supported!")}}function Jh(t,e,n,a){return new Qh(t,e,n,a)}class Qh{constructor(t,e,n,a){this._moduleType=t,this._parent=e,this._bootstrapComponents=n,this._def=a,this._destroyListeners=[],this._destroyed=!1,this.injector=this,function(t){const e=t._def,n=t._providers=new Array(e.providers.length);for(let a=0;a<e.providers.length;a++){const r=e.providers[a];4096&r.flags||void 0===n[a]&&(n[a]=kh(t,r))}}(this)}get(t,e=Bo.THROW_IF_NOT_FOUND,n=C.Default){let a=0;return n&C.SkipSelf?a|=1:n&C.Self&&(a|=4),Ah(this,{token:t,tokenKey:Yf(t),flags:a},e)}get instance(){return this.get(this._moduleType)}get componentFactoryResolver(){return this.get(Yc)}destroy(){if(this._destroyed)throw new Error(`The ng module ${j(this.instance.constructor)} has already been destroyed.`);this._destroyed=!0,function(t,e){const n=t._def,a=new Set;for(let r=0;r<n.providers.length;r++)if(131072&n.providers[r].flags){const e=t._providers[r];if(e&&e!==wh){const t=e.ngOnDestroy;"function"!=typeof t||a.has(e)||(t.apply(e),a.add(e))}}}(this),this._destroyListeners.forEach(t=>t())}onDestroy(t){this._destroyListeners.push(t)}}const Xh=Yf(Xc),tg=Yf(af),eg=Yf(Kc),ng=Yf(Nf),ag=Yf(wf),rg=Yf(Xs),ig=Yf(Bo),sg=Yf($);function og(t,e,n,a,r,i,s,o){const u=[];if(s)for(let l in s){const[t,e]=s[l];u[t]={flags:8,name:l,nonMinifiedName:e,ns:null,securityContext:null,suffix:null}}const d=[];if(o)for(let l in o)d.push({type:1,propName:l,target:null,eventName:o[l]});return lg(t,e|=16384,n,a,r,r,i,u,d)}function ug(t,e,n){return lg(-1,t|=16,null,0,e,e,n)}function dg(t,e,n,a,r){return lg(-1,t,e,0,n,a,r)}function lg(t,e,n,a,r,i,s,o,u){const{matchedQueries:d,references:l,matchedQueryIds:c}=sh(n);u||(u=[]),o||(o=[]),i=V(i);const f=oh(s,j(r));return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:d,matchedQueryIds:c,references:l,ngContentIndex:-1,childCount:a,bindings:o,bindingFlags:yh(o),outputs:u,element:null,provider:{token:r,value:i,deps:f},text:null,query:null,ngContent:null}}function cg(t,e){return pg(t,e)}function fg(t,e){let n=t;for(;n.parent&&!ah(n);)n=n.parent;return bg(n.parent,eh(n),!0,e.provider.value,e.provider.deps)}function hg(t,e){const n=bg(t,e.parent,(32768&e.flags)>0,e.provider.value,e.provider.deps);if(e.outputs.length)for(let a=0;a<e.outputs.length;a++){const r=e.outputs[a],i=n[r.propName];if(!el(i))throw new Error(`@Output ${r.propName} not initialized in '${n.constructor.name}'.`);{const n=i.subscribe(gg(t,e.parent.nodeIndex,r.eventName));t.disposables[e.outputIndex+a]=n.unsubscribe.bind(n)}}return n}function gg(t,e,n){return a=>Xf(t,e,n,a)}function pg(t,e){const n=(8192&e.flags)>0,a=e.provider;switch(201347067&e.flags){case 512:return bg(t,e.parent,n,a.value,a.deps);case 1024:return function(t,e,n,a,r){const i=r.length;switch(i){case 0:return a();case 1:return a(yg(t,e,n,r[0]));case 2:return a(yg(t,e,n,r[0]),yg(t,e,n,r[1]));case 3:return a(yg(t,e,n,r[0]),yg(t,e,n,r[1]),yg(t,e,n,r[2]));default:const s=Array(i);for(let a=0;a<i;a++)s[a]=yg(t,e,n,r[a]);return a(...s)}}(t,e.parent,n,a.value,a.deps);case 2048:return yg(t,e.parent,n,a.deps[0]);case 256:return a.value}}function bg(t,e,n,a,r){const i=r.length;switch(i){case 0:return new a;case 1:return new a(yg(t,e,n,r[0]));case 2:return new a(yg(t,e,n,r[0]),yg(t,e,n,r[1]));case 3:return new a(yg(t,e,n,r[0]),yg(t,e,n,r[1]),yg(t,e,n,r[2]));default:const s=new Array(i);for(let a=0;a<i;a++)s[a]=yg(t,e,n,r[a]);return new a(...s)}}const mg={};function yg(t,e,n,a,r=Bo.THROW_IF_NOT_FOUND){if(8&a.flags)return a.token;const i=t;2&a.flags&&(r=null);const s=a.tokenKey;s===rg&&(n=!(!e||!e.element.componentView)),e&&1&a.flags&&(n=!1,e=e.parent);let o=t;for(;o;){if(e)switch(s){case Xh:return $h(vg(o,e,n));case tg:return vg(o,e,n).renderer;case eg:return new Kc(Mf(o,e.nodeIndex).renderElement);case ng:return Mf(o,e.nodeIndex).viewContainer;case ag:if(e.element.template)return Mf(o,e.nodeIndex).template;break;case rg:return zh(vg(o,e,n));case ig:case sg:return Uh(o,e);default:const t=(n?e.element.allProviders:e.element.publicProviders)[s];if(t){let e=qf(o,t.nodeIndex);return e||(e={instance:pg(o,t)},o.nodes[t.nodeIndex]=e),e.instance}}n=ah(o),e=eh(o),o=o.parent,4&a.flags&&(o=null)}const u=i.root.injector.get(a.token,mg);return u!==mg||r===mg?u:i.root.ngModule.injector.get(a.token,r)}function vg(t,e,n){let a;if(n)a=Mf(t,e.nodeIndex).componentView;else for(a=t;a.parent&&!ah(a);)a=a.parent;return a}function xg(t,e,n,a,r,i){if(32768&n.flags){const e=Mf(t,n.parent.nodeIndex).componentView;2&e.def.flags&&(e.state|=8)}if(e.instance[n.bindings[a].name]=r,524288&n.flags){i=i||{};const e=Mu.unwrap(t.oldValues[n.bindingIndex+a]);i[n.bindings[a].nonMinifiedName]=new Tc(e,r,0!=(2&t.state))}return t.oldValues[n.bindingIndex+a]=r,i}function _g(t,e){if(!(t.def.nodeFlags&e))return;const n=t.def.nodes;let a=0;for(let r=0;r<n.length;r++){const i=n[r];let s=i.parent;for(!s&&i.flags&e&&Og(t,r,i.flags&e,a++),0==(i.childFlags&e)&&(r+=i.childCount);s&&1&s.flags&&r===s.nodeIndex+s.childCount;)s.directChildFlags&e&&(a=Tg(t,s,e,a)),s=s.parent}}function Tg(t,e,n,a){for(let r=e.nodeIndex+1;r<=e.nodeIndex+e.childCount;r++){const e=t.def.nodes[r];e.flags&n&&Og(t,r,e.flags&n,a++),r+=e.childCount}return a}function Og(t,e,n,a){const r=qf(t,e);if(!r)return;const i=r.instance;i&&(Vf.setCurrentNode(t,e),1048576&n&&Df(t,512,a)&&i.ngAfterContentInit(),2097152&n&&i.ngAfterContentChecked(),4194304&n&&Df(t,768,a)&&i.ngAfterViewInit(),8388608&n&&i.ngAfterViewChecked(),131072&n&&i.ngOnDestroy())}function wg(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const Sg=new K("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>_n});class Ig extends Gc{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors[0][0]||"div",this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return wg(this.componentDef.inputs)}get outputs(){return wg(this.componentDef.outputs)}create(t,e,n,a){const r=(a=a||this.ngModule)?function(t,e){return{get:(n,a,r)=>{const i=t.get(n,mg,r);return i!==mg||a===mg?i:e.get(n,a,r)}}}(t,a.injector):t,i=r.get(ef,ea),s=r.get(vr,null);pn();const o=n?Gi(i,n):Ci(this.selector,i.createRenderer(null,this.componentDef)),u=this.componentDef.onPush?576:528,d="string"==typeof n&&/^#root-ng-internal-isolated-\d+/.test(n),l=vc(),c=i.createRenderer(o,this.componentDef);n&&o&&(ta(c)?c.setAttribute(o,"ng-version",uf.full):o.setAttribute("ng-version",uf.full));const f=Ri(null,Fi(-1,null,1,0,null,null,null,null),l,u,null,null,i,c,s,r),h=an(f,null);let g,p,b=!1;try{const t=mc(o,this.componentDef,f,i,c);p=ye(0,f),e&&(p.projection=e.map(t=>Array.from(t))),g=yc(t,this.componentDef,f,l,[xc]),rs(f,t),Ii(f),b=!0}finally{sn(h,b)}const m=new Ng(this.componentType,g,$s(Kc,p,f),f,p);return n&&!d||(m.hostView._tViewNode.child=p),m}}class Ng extends Fc{constructor(t,e,n,a,r){super(),this.location=n,this._rootLView=a,this._tNode=r,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Hs(a),this.hostView._tViewNode=ki(a[1],null,-1,a),this.componentType=t}get injector(){return new Ca(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const Cg={},Rg=function(){var t={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencySymbol:15,CurrencyName:16,Currencies:17,PluralCase:18,ExtraData:19};return t[t.LocaleId]="LocaleId",t[t.DayPeriodsFormat]="DayPeriodsFormat",t[t.DayPeriodsStandalone]="DayPeriodsStandalone",t[t.DaysFormat]="DaysFormat",t[t.DaysStandalone]="DaysStandalone",t[t.MonthsFormat]="MonthsFormat",t[t.MonthsStandalone]="MonthsStandalone",t[t.Eras]="Eras",t[t.FirstDayOfWeek]="FirstDayOfWeek",t[t.WeekendRange]="WeekendRange",t[t.DateFormat]="DateFormat",t[t.TimeFormat]="TimeFormat",t[t.DateTimeFormat]="DateTimeFormat",t[t.NumberSymbols]="NumberSymbols",t[t.NumberFormats]="NumberFormats",t[t.CurrencySymbol]="CurrencySymbol",t[t.CurrencyName]="CurrencyName",t[t.Currencies]="Currencies",t[t.PluralCase]="PluralCase",t[t.ExtraData]="ExtraData",t}(),Ag=void 0;var kg=["en",[["a","p"],["AM","PM"],Ag],[["AM","PM"],Ag,Ag],[["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"]],Ag,[["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"]],Ag,[["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}",Ag,"{1} 'at' {0}",Ag],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"$","US Dollar",{},function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}];function Eg(t){return Lg(t)[Rg.PluralCase]}function Lg(t){const e=t.toLowerCase().replace(/_/g,"-");let n=Cg[e];if(n)return n;const a=e.split("-")[0];if(n=Cg[a],n)return n;if("en"===a)return kg;throw new Error(`Missing locale data for the locale "${t}".`)}const Dg="en-US",Pg=/^\s*(�\d+:?\d*�)\s*,\s*(select|plural)\s*,/,Mg=/�\/?\*(\d+:\d+)�/gi,qg=/�(\/?[#*!]\d+):?\d*�/gi,jg=/�(\d+):?\d*�/gi,Fg=/({\s*�\d+:?\d*�\s*,\s*\S{6}\s*,[\s\S]*})/gi,Gg=/\[(�.+?�?)\]/,Vg=/\[(�.+?�?)\]|(�\/?\*\d+:\d+�)/g,zg=/({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g,Bg=/{([A-Z0-9_]+)}/g,Yg=/�I18N_EXP_(ICU(_\d+)?)�/g,Hg=/\/\*/,Ug=/\d+\:(\d+)/;function Wg(t){if(!t)return[];let e=0;const n=[],a=[],r=/[{}]/g;let i;for(r.lastIndex=0;i=r.exec(t);){const r=i.index;if("}"==i[0]){if(n.pop(),0==n.length){const n=t.substring(e,r);Pg.test(n)?a.push(Kg(n)):a.push(n),e=r+1}}else{if(0==n.length){const n=t.substring(e,r);a.push(n),e=r+1}n.push("{")}}const s=t.substring(e);return a.push(s),a}function Kg(t){const e=[],n=[];let a=1,r=0;const i=Wg(t=t.replace(Pg,(function(t,e,n){return a="select"===n?0:1,r=parseInt(e.substr(1),10),""})));for(let s=0;s<i.length;){let t=i[s++].trim();1===a&&(t=t.replace(/\s*(?:=)?(\w+)\s*/,"$1")),t.length&&e.push(t);const r=Wg(i[s++]);e.length>n.length&&n.push(r)}return'Missing key "other" in ICU statement.',e.indexOf("other")<=-1&&vt('Missing key "other" in ICU statement.'),{type:a,mainBinding:r,cases:e,values:n}}function $g(t){let e,n,a="",r=0,i=!1;for(;null!==(e=Mg.exec(t));)i?e[0]===`�/*${n}�`&&(r=e.index,i=!1):(a+=t.substring(r,e.index+e[0].length),n=e[1],i=!0);return a+=t.substr(r),a}function Zg(t,e,n,a=null){const r=[null,null],i=t.split(jg);let s=0;for(let o=0;o<i.length;o++){const t=i[o];if(1&o){const e=parseInt(t,10);r.push(-1-e),s|=tp(e)}else""!==t&&r.push(t)}return r.push(e<<2|(n?1:0)),n&&r.push(n,a),r[0]=s,r[1]=r.length-2,r}function Jg(t,e=0){let n;e|=tp(t.mainBinding);for(let a=0;a<t.values.length;a++){const r=t.values[a];for(let t=0;t<r.length;t++){const a=r[t];if("string"==typeof a)for(;n=jg.exec(a);)e|=tp(parseInt(n[1],10));else e=Jg(a,e)}}return e}const Qg=[];let Xg=-1;function tp(t){return 1<<Math.min(t,31)}const ep=[];function np(t,e,n){const a=Ae()[1];Qg[++Xg]=t,cl(!0),a.firstTemplatePass&&null===a.data[t+19]&&function(t,e,n,a){const r=Ae(),i=t.blueprint.length-19;ap=0;const s=Ve(),o=Ye()?Ve():s&&s.parent;let u=o&&o!==r[6]?o.index-19:e,d=0;ep[d]=u;const l=[];e>0&&s!==o&&l.push(s.index<<3|0);const c=[],f=[],h=(g=function(t,e){if("number"!=typeof e)return $g(t);{const n=t.indexOf(`:${e}�`)+2+e.toString().length,a=t.search(new RegExp(`�\\/\\*\\d+:${e}�`));return $g(t.substring(n,a))}}(n,a),g.replace(xp," ")).split(qg);var g;for(let p=0;p<h.length;p++){let t=h[p];if(1&p)if("/"===t.charAt(0)){if("#"===t.charAt(1)){const e=parseInt(t.substr(2),10);u=ep[--d],l.push(e<<3|5)}}else{const e=parseInt(t.substr(1),10);l.push(e<<3|0,u<<17|1),"#"===t.charAt(0)&&(ep[++d]=u=e)}else{const e=Wg(t);for(let t=0;t<e.length;t++)if(1&t){const n=i+ap++;l.push(hi,"",n,u<<17|1);const a=e[t],r=Jg(a);mp(f,a,n,n);const s=f.length-1;c.push(tp(a.mainBinding),3,-1-a.mainBinding,n<<2|2,s,r,2,n<<2|3,s)}else if(""!==e[t]){const n=e[t],a=n.match(jg),r=i+ap++;l.push(a?"":n,r,u<<17|1),a&&gt(Zg(n,r),c)}}}ap>0&&function(t,e){if(e>0){const n=t[1];if(n.firstTemplatePass){for(let a=0;a<e;a++)n.blueprint.push(null),n.data.push(null),t.push(null);n.expandoInstructions?n.expandoInstructions.push(e):n.expandoStartIndex+=e}}}(r,ap),t.data[e+19]={vars:ap,create:l,update:c,icus:f.length?f:null}}(a,t,e,n)}let ap;function rp(t,e,n,a){const r=t.next;n||(n=e),n===e&&t!==e.child?(t.next=e.child,e.child=t):n!==e&&t!==n.next?(t.next=n.next,n.next=t):t.next=null,e!==a[6]&&(t.parent=e);let i=t.next;for(;i;)i.next===t&&(i.next=r),i=i.next;if(1===t.type)return Fs(a,t,t.projection,la(a)),t;Ms(be(t,a),t,a);const s=a[t.index];return 0!==t.type&&Jt(s)&&Ms(s[7],t,a),t}function ip(t,e={}){let n=t;if(Gg.test(t)){const t={},e=[0];n=n.replace(Vg,(n,a,r)=>{const i=a||r,s=t[i]||[];if(s.length||(i.split("|").forEach(t=>{const e=t.match(Ug),n=e?parseInt(e[1],10):0,a=Hg.test(t);s.push([n,a,t])}),t[i]=s),!s.length)throw new Error(`i18n postprocess: unmatched placeholder - ${i}`);const o=e[e.length-1];let u=0;for(let t=0;t<s.length;t++)if(s[t][0]===o){u=t;break}const[d,l,c]=s[u];return l?e.pop():o!==d&&e.push(d),s.splice(u,1),c})}return Object.keys(e).length?(n=n.replace(zg,(t,n,a,r,i,s)=>e.hasOwnProperty(a)?`${n}${e[a]}${s}`:t),n=n.replace(Bg,(t,n)=>e.hasOwnProperty(n)?e[n]:t),n=n.replace(Yg,(t,n)=>{if(e.hasOwnProperty(n)){const a=e[n];if(!a.length)throw new Error(`i18n postprocess: unmatched ICU - ${t} with key: ${n}`);return a.shift()}return t}),n):n}function sp(){!function(t){const e=Ae(),n=Qg[Xg--],a=t.data[n+19];let r=Ve();const i=up(n,a.create,0,e);for(let s=n+1;s<=r.index-19;s++)-1===i.indexOf(s)&&dp(s,e)}(Ae()[1]),cl(!1)}function op(t,e,n,a,r){const i=Ve();t[e+19]=a;const s=Ai(t[1],t[6],e,n,r,null);return i.next===s&&(i.next=null),s}function up(t,e,n,a){const r=Ae()[12];let i=null,s=null;const o=[];for(let u=0;u<e.length;u++){const n=e[u];if("string"==typeof n){const t=ws(n,r),d=e[++u];s=i,i=op(a,d,3,t,null),o.push(d),He()}else if("number"==typeof n)switch(7&n){case 1:const r=n>>>17;let d;d=r===t?a[6]:ye(r,a),s=rp(i,d,s,a);break;case 0:const l=n>>>3;o.push(l),s=i,i=ye(l,a),i&&ze(i,3===i.type);break;case 5:s=i=ye(n>>>3,a),ze(i,!1);break;case 4:es(n>>>3,e[++u],e[++u],a);break;default:throw new Error(`Unable to determine the type of mutate operation for "${n}"`)}else switch(n){case hi:const t=e[++u],d=e[++u],l=r.createComment(t);s=i,i=op(a,d,5,l,null),o.push(d),qr(l,a),i.activeCaseIndex=null,He();break;case fi:const c=e[++u],f=e[++u];s=i,i=op(a,f,3,r.createElement(c),c),o.push(f);break;default:throw new Error(`Unable to determine the type of mutate operation for "${n}"`)}}return He(),o}function dp(t,e){const n=ye(t,e),a=pe(t,e);a&&js(e[12],a);const r=_d(t);if(Jt(r)){const t=r;0!==n.type&&js(e[12],t[7])}n.flags|=32}function lp(t,e,n){np(t,e,n),sp()}function cp(t,e){!function(t,e,n){const a=Ve().index-19,r=[];for(let i=0;i<n.length;i+=2){const s=n[i],o=n[i+1].split(Fg);for(let n=0;n<o.length;n++){const i=o[n];if(1&n)throw new Error("ICU expressions are not yet supported in attributes");if(""!==i)if(i.match(jg))t.firstTemplatePass&&null===t.data[e+19]&&gt(Zg(i,a,s),r);else{const t=Ae();es(a,s,i,t);const e=ye(a,t),n=e.inputs&&e.inputs[s];n&&ys(t,n,i)}}}t.firstTemplatePass&&null===t.data[e+19]&&(t.data[e+19]=r)}(Ae()[1],t,e)}let fp=0,hp=0;function gp(t){return Uu(Ae(),t)!==ci&&(fp|=1<<hp),hp++,gp}function pp(t){if(hp){const e=Ae(),n=e[1].data[t+19];let a,r=null;Array.isArray(n)?a=n:(a=n.update,r=n.icus),function t(e,n,a,r,i,s=!1){let o=!1;for(let u=0;u<e.length;u++){const d=e[u],l=e[++u];if(s||d&r){let s="";for(let d=u+1;d<=u+l;d++){const u=e[d];if("string"==typeof u)s+=u;else if("number"==typeof u)if(u<0)s+=vn(i[a-u]);else{const l=u>>>2;let c,f,h;switch(3&u){case 1:Yi(l,e[++d],s,e[++d]);break;case 0:vs(i,l,s);break;case 2:if(c=e[++d],f=n[c],h=ye(l,i),null!==h.activeCaseIndex){const t=f.remove[h.activeCaseIndex];for(let e=0;e<t.length;e++){const a=t[e];switch(7&a){case 3:dp(a>>>3,i);break;case 6:const r=ye(t[e+1]>>>3,i).activeCaseIndex;null!==r&&gt(n[a>>>3].remove[r],t)}}}const u=bp(f,s);h.activeCaseIndex=-1!==u?u:null,up(-1,f.create[u],0,i),o=!0;break;case 3:c=e[++d],f=n[c],h=ye(l,i),t(f.update[h.activeCaseIndex],n,a,r,i,o)}}}}u+=l}}(a,r,e[7]-hp-1,fp,e),fp=0,hp=0}}function bp(t,e){let n=t.cases.indexOf(e);if(-1===n)switch(t.type){case 1:{const a=function(t,e){switch(Eg(e)(t)){case 0:return"zero";case 1:return"one";case 2:return"two";case 3:return"few";case 4:return"many";default:return"other"}}(e,Sp);n=t.cases.indexOf(a),-1===n&&"other"!==a&&(n=t.cases.indexOf("other"));break}case 0:n=t.cases.indexOf("other")}return n}function mp(t,e,n,a){const r=[],i=[],s=[],o=[],u=[];for(let d=0;d<e.values.length;d++){const l=e.values[d],c=[];for(let t=0;t<l.length;t++){const e=l[t];if("string"!=typeof e){const n=c.push(e)-1;l[t]=`\x3c!--�${n}�--\x3e`}}const f=yp(l.join(""),n,c,t,a);r.push(f.create),i.push(f.remove),s.push(f.update),o.push(f.vars),u.push(f.childIcus)}t.push({type:e.type,vars:o,childIcus:u,cases:e.cases,create:r,remove:i,update:s}),ap+=Math.max(...o)}function yp(t,e,n,a,r){const i=new $a(document).getInertBodyElement(t);if(!i)throw new Error("Unable to generate inert body element");const s={vars:0,childIcus:[],create:[],remove:[],update:[]};return function t(e,n,a,r,i,s){if(e){const o=[];for(;e;){const u=e.nextSibling,d=s+ ++n.vars;switch(e.nodeType){case Node.ELEMENT_NODE:const u=e,l=u.tagName.toLowerCase();if(sr.hasOwnProperty(l)){n.create.push(fi,l,d,a<<17|1);const o=u.attributes;for(let t=0;t<o.length;t++){const e=o.item(t),a=e.name.toLowerCase();e.value.match(jg)?dr.hasOwnProperty(a)&&gt(or[a]?Zg(e.value,d,e.name,Qa):ur[a]?Zg(e.value,d,e.name,Xa):Zg(e.value,d,e.name),n.update):n.create.push(d<<3|4,e.name,e.value)}t(e.firstChild,n,d,r,i,s),n.remove.push(d<<3|3)}else n.vars--;break;case Node.TEXT_NODE:const c=e.textContent||"",f=c.match(jg);n.create.push(f?"":c,d,a<<17|1),n.remove.push(d<<3|3),f&&gt(Zg(c,d),n.update);break;case Node.COMMENT_NODE:const h=vp.exec(e.textContent||"");if(h){const t=parseInt(h[1],10);n.create.push(hi,"",d,a<<17|1),o.push([r[t],d])}else n.vars--;break;default:n.vars--}e=u}for(let t=0;t<o.length;t++){const e=o[t][0],a=o[t][1];mp(i,e,a,s+n.vars);const r=i.length-1;n.vars+=Math.max(...i[r].vars),n.childIcus.push(r);const u=Jg(e);n.update.push(tp(e.mainBinding),3,-1-e.mainBinding,a<<2|2,r,u,2,a<<2|3,r),n.remove.push(r<<3|6,a<<3|3)}}}((mr(i)||i).firstChild,s,e,n,a,r),s}const vp=/�(\d+)�/,xp=/\uE500/g;let _p={};function Tp(t={translations:{}}){_p=t.translations}const Op=/\{\$(.*?)\}/g;function wp(t,e){return void 0!==_p[t]&&(t=_p[t]),void 0!==e&&Object.keys(e).length?t.replace(Op,(t,n)=>e[n]||""):t}let Sp=Dg;function Ip(t){null==t&&vt("Expected localeId to be defined"),"string"==typeof t&&(Sp=t.toLowerCase().replace(/_/g,"-"))}const Np=new Map;function Cp(t,e){const n=Np.get(t);Rp(t,n&&n.moduleType,e.moduleType),Np.set(t,e)}function Rp(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${j(e)} vs ${j(e.name)}`)}function Ap(t){if(null!==t.ngModuleDef.id){const e=t.ngModuleDef.id;Rp(e,Np.get(e),t),Np.set(e,t)}let e=t.ngModuleDef.imports;e instanceof Function&&(e=e()),e&&e.forEach(t=>Ap(t))}function kp(t){return Np.get(t)}const Ep={provide:Yc,useClass:class extends Yc{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=Ht(t);return new Ig(e,this.ngModule)}},deps:[ft]};class Lp extends ft{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=$t(t),a=t[kt]||null;a&&Ip(a),this._bootstrapComponents=In(n.bootstrap),this._r3Injector=Do(t,e,[{provide:ft,useValue:this},Ep],j(t)),this.instance=this.get(t)}get(t,e=Bo.THROW_IF_NOT_FOUND,n=C.Default){return t===Bo||t===ft||t===$?this:this._r3Injector.get(t,e,n)}get componentFactoryResolver(){return this.get(Yc)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Dp extends ht{constructor(t){super(),this.moduleType=t,null!==$t(t)&&Ap(t)}create(t){return new Lp(this.moduleType,t)}}function Pp(t,e,n,a){return wt(()=>{const r=t,i=r.prototype?Object.getPrototypeOf(r.prototype):null,s=i&&i.constructor;null!==e&&(void 0===r.decorators||s&&s.decorators===r.decorators?r.decorators=e:r.decorators.push(...e)),null!==n&&(r.ctorParameters=n),null!==a&&(r.propDecorators=void 0===r.propDecorators||s&&s.propDecorators===r.propDecorators?a:Object.assign({},r.propDecorators,a))})}function Mp(t,e,n){const a=Qe()+t,r=Ae();return Ue()?Fu(r,a,n?e.call(n):e()):Gu(r,a)}function qp(t,e,n,a){const r=Ae(),i=Qe()+t;return Vu(r,i,n)?Fu(r,i+1,a?e.call(a,n):e(n)):Gu(r,i+1)}function jp(t,e,n,a,r){const i=Qe()+t,s=Ae();return zu(s,i,n,a)?Fu(s,i+2,r?e.call(r,n,a):e(n,a)):Gu(s,i+2)}function Fp(t,e,n,a,r,i){const s=Qe()+t,o=Ae();return Bu(o,s,n,a,r)?Fu(o,s+3,i?e.call(i,n,a,r):e(n,a,r)):Gu(o,s+3)}function Gp(t,e,n,a,r,i,s){const o=Qe()+t,u=Ae();return Yu(u,o,n,a,r,i)?Fu(u,o+4,s?e.call(s,n,a,r,i):e(n,a,r,i)):Gu(u,o+4)}function Vp(t,e,n,a,r,i,s,o){const u=Qe()+t,d=Ae(),l=Yu(d,u,n,a,r,i);return Vu(d,u+4,s)||l?Fu(d,u+5,o?e.call(o,n,a,r,i,s):e(n,a,r,i,s)):Gu(d,u+5)}function zp(t,e,n,a,r,i,s,o,u){const d=Qe()+t,l=Ae(),c=Yu(l,d,n,a,r,i);return zu(l,d+4,s,o)||c?Fu(l,d+6,u?e.call(u,n,a,r,i,s,o):e(n,a,r,i,s,o)):Gu(l,d+6)}function Bp(t,e,n,a,r,i,s,o,u,d){const l=Qe()+t,c=Ae();let f=Yu(c,l,n,a,r,i);return Bu(c,l+4,s,o,u)||f?Fu(c,l+7,d?e.call(d,n,a,r,i,s,o,u):e(n,a,r,i,s,o,u)):Gu(c,l+7)}function Yp(t,e,n,a,r,i,s,o,u,d,l){const c=Qe()+t,f=Ae(),h=Yu(f,c,n,a,r,i);return Yu(f,c+4,s,o,u,d)||h?Fu(f,c+8,l?e.call(l,n,a,r,i,s,o,u,d):e(n,a,r,i,s,o,u,d)):Gu(f,c+8)}function Hp(t,e,n,a){let r=Qe()+t,i=!1;const s=Ae();for(let o=0;o<n.length;o++)Vu(s,r++,n[o])&&(i=!0);return i?Fu(s,r,e.apply(a,n)):Gu(s,r)}function Up(t,e){const n=Ae()[1];let a;const r=t+19;n.firstTemplatePass?(a=function(t,e){if(e)for(let n=e.length-1;n>=0;n--){const a=e[n];if(t===a.name)return a}throw new Error(`The pipe '${t}' could not be found!`)}(e,n.pipeRegistry),n.data[r]=a,a.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(r,a.onDestroy)):a=n.data[r];const i=a.factory();return vd(t,i),i}function Wp(t,e,n){const a=_d(t);return Xp(Qp(t)?qp(e,a.transform,n,a):a.transform(n))}function Kp(t,e,n,a){const r=_d(t);return Xp(Qp(t)?jp(e,r.transform,n,a,r):r.transform(n,a))}function $p(t,e,n,a,r){const i=_d(t);return Xp(Qp(t)?Fp(e,i.transform,n,a,r,i):i.transform(n,a,r))}function Zp(t,e,n,a,r,i){const s=_d(t);return Xp(Qp(t)?Gp(e,s.transform,n,a,r,i,s):s.transform(n,a,r,i))}function Jp(t,e,n){const a=_d(t);return Xp(Qp(t)?Hp(e,a.transform,n,a):a.transform.apply(a,n))}function Qp(t){return Ae()[1].data[t+19].pure}function Xp(t){if(Mu.isWrapped(t)){t=Mu.unwrap(t);const e=Ae();e[e[7]]=ci}return t}class tb extends a.a{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let a,i=t=>null,s=()=>null;t&&"object"==typeof t?(a=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(i=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(s=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(a=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(i=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(s=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const o=super.subscribe(a,i,s);return t instanceof r.a&&t.add(o),o}}function eb(){return this._results[Lu()]()}class nb{constructor(){this.dirty=!0,this._results=[],this.changes=new tb,this.length=0;const t=Lu(),e=nb.prototype;e[t]||(e[t]=eb)}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){this._results=pt(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]}notifyOnChanges(){this.changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}class ab{constructor(t){this.queryList=t,this.matches=null}clone(){return new ab(this.queryList)}setDirty(){this.queryList.setDirty()}}class rb{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const n=null!==t.contentQueries?t.contentQueries[0]:e.length,a=new Array(n);for(let t=0;t<n;t++){const n=e.getByIndex(t);a[t]=this.queries[n.indexInDeclarationView].clone()}return new rb(a)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let e=0;e<this.queries.length;e++)null!==Ob(t,e).matches&&this.queries[e].setDirty()}}class ib{constructor(t,e,n,a=null){this.predicate=t,this.descendants=e,this.isStatic=n,this.read=a}}class sb{constructor(t=[]){this.queries=t}elementStart(t,e){for(let n of this.queries)n.elementStart(t,e)}elementEnd(t){for(let e of this.queries)e.elementEnd(t)}embeddedTView(t){let e=null;for(let n=0;n<this.length;n++){const a=null!==e?e.length:0,r=this.getByIndex(n).embeddedTView(t,a);r&&(r.indexInDeclarationView=n,null!==e?e.push(r):e=[r])}return null!==e?new sb(e):null}template(t,e){for(let n of this.queries)n.template(t,e)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class ob{constructor(t,e=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=e}elementStart(t,e){this.isApplyingToNode(e)&&this.matchTNode(t,e)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,e){this.elementStart(t,e)}embeddedTView(t,e){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,e),new ob(this.metadata)):null}isApplyingToNode(t){return this._appliesToNextNode&&!1===this.metadata.descendants?this._declarationNodeIndex===(t.parent?t.parent.index:-1):this._appliesToNextNode}matchTNode(t,e){if(Array.isArray(this.metadata.predicate)){const n=this.metadata.predicate;for(let a=0;a<n.length;a++)this.matchTNodeWithReadOption(t,e,ub(e,n[a]))}else{const n=this.metadata.predicate;n===wf?0===e.type&&this.matchTNodeWithReadOption(t,e,-1):this.matchTNodeWithReadOption(t,e,wa(e,t,n,!1,!1))}}matchTNodeWithReadOption(t,e,n){if(null!==n){const a=this.metadata.read;if(null!==a)if(a===Kc||a===Nf||a===wf&&0===e.type)this.addMatch(e.index,-2);else{const n=wa(e,t,a,!1,!1);null!==n&&this.addMatch(e.index,n)}else this.addMatch(e.index,n)}}addMatch(t,e){null===this.matches?this.matches=[t,e]:this.matches.push(t,e)}}function ub(t,e){const n=t.localNames;if(null!==n)for(let a=0;a<n.length;a+=2)if(n[a]===e)return n[a+1];return null}function db(t,e,n,a){return-1===n?function(t,e){return 3===t.type||4===t.type?$s(Kc,t,e):0===t.type?Zs(wf,Kc,t,e):null}(e,t):-2===n?function(t,e,n){return n===Kc?$s(Kc,e,t):n===wf?Zs(wf,Kc,e,t):n===Nf?Js(Nf,Kc,e,t):void 0}(t,e,a):Sa(t[1].data,t,n,e)}function lb(t,e,n){const a=t[5].queries[n];if(null===a.matches){const n=t[1].data,r=e.matches,i=new Array(r.length/2);for(let a=0;a<r.length;a+=2){const s=r[a];i[a/2]=s<0?null:db(t,n[s],r[a+1],e.metadata.read)}a.matches=i}return a.matches}function cb(t){const e=Ae(),n=en();nn(n+1);const a=Ob(e[1],n);if(t.dirty&&Ue()===a.metadata.isStatic){if(null===a.matches)t.reset([]);else{const r=a.crossesNgTemplate?function t(e,n,a){const r=e[1].queries.getByIndex(n),i=r.matches;if(null!==i){const s=lb(e,r,n);for(let n=0;n<i.length;n+=2){const r=i[n];if(r>0)a.push(s[n/2]);else{const s=i[n+1],o=e[-r];for(let e=9;e<o.length;e++){const n=o[e];n[17]===n[3]&&t(n,s,a)}if(null!==o[5])for(let e of o[5])t(e,s,a)}}}return a}(e,n,[]):lb(e,a,n);t.reset(r),t.notifyOnChanges()}return!0}return!1}function fb(t,e,n){gb(Ae(),t,e,n,!0)}function hb(t,e,n){gb(Ae(),t,e,n,!1)}function gb(t,e,n,a,r){const i=t[1];i.firstTemplatePass&&(Tb(i,new ib(e,n,r,a),-1),r&&(i.staticViewQueries=!0)),_b(t)}function pb(){return xb(Ae(),en())}function bb(t,e,n,a){yb(Ae(),e,n,a,!1,Ve(),t)}function mb(t,e,n,a){yb(Ae(),e,n,a,!0,Ve(),t)}function yb(t,e,n,a,r,i,s){const o=t[1];o.firstTemplatePass&&(Tb(o,new ib(e,n,r,a),i.index),function(t,e){const n=t.contentQueries||(t.contentQueries=[]);e!==(t.contentQueries.length?n[n.length-1]:-1)&&n.push(t.queries.length-1,e)}(o,s),r&&(o.staticContentQueries=!0)),_b(t)}function vb(){return xb(Ae(),en())}function xb(t,e){return t[5].queries[e].queryList}function _b(t){const e=new nb;!function(t,e,n){const a=gs(t);a.push(e),t[1].firstTemplatePass&&ps(t).push(n,a.length-1)}(t,e,e.destroy),null===t[5]&&(t[5]=new rb),t[5].queries.push(new ab(e))}function Tb(t,e,n){null===t.queries&&(t.queries=new sb),t.queries.track(new ob(e,n))}function Ob(t,e){return t.queries.getByIndex(e)}function wb(t,e){return Zs(wf,Kc,t,e)}function Sb(t=C.Default){const e=Qs(!0);if(null!=e||t&C.Optional)return e;throw new Error("No provider for ChangeDetectorRef!")}const Ib=(()=>({"ɵɵattribute":Wu,"ɵɵattributeInterpolate1":ad,"ɵɵattributeInterpolate2":rd,"ɵɵattributeInterpolate3":id,"ɵɵattributeInterpolate4":sd,"ɵɵattributeInterpolate5":od,"ɵɵattributeInterpolate6":ud,"ɵɵattributeInterpolate7":dd,"ɵɵattributeInterpolate8":ld,"ɵɵattributeInterpolateV":cd,"ɵɵdefineBase":zt,"ɵɵdefineComponent":Pt,"ɵɵdefineDirective":Bt,"ɵɵdefineInjectable":k,"ɵɵdefineInjector":L,"ɵɵdefineNgModule":Ft,"ɵɵdefinePipe":Yt,"ɵɵdirectiveInject":Td,"ɵɵgetFactoryOf":Ra,"ɵɵgetInheritedFactory":Aa,"ɵɵinject":rt,"ɵɵinjectAttribute":Od,"ɵɵinjectPipeChangeDetectorRef":Sb,"ɵɵtemplateRefExtractor":wb,"ɵɵNgOnChangesFeature":Oc,"ɵɵProvidersFeature":jc,"ɵɵInheritDefinitionFeature":Nc,"ɵɵcontainer":gd,"ɵɵnextContext":ol,"ɵɵcontainerRefreshStart":bd,"ɵɵcontainerRefreshEnd":md,"ɵɵnamespaceHTML":gn,"ɵɵnamespaceMathML":hn,"ɵɵnamespaceSVG":fn,"ɵɵenableBindings":Ce,"ɵɵdisableBindings":Re,"ɵɵallocHostVars":ku,"ɵɵelementStart":Bd,"ɵɵelementEnd":Yd,"ɵɵelement":Hd,"ɵɵelementContainerStart":Kd,"ɵɵelementContainerEnd":$d,"ɵɵelementContainer":Zd,"ɵɵpureFunction0":Mp,"ɵɵpureFunction1":qp,"ɵɵpureFunction2":jp,"ɵɵpureFunction3":Fp,"ɵɵpureFunction4":Gp,"ɵɵpureFunction5":Vp,"ɵɵpureFunction6":zp,"ɵɵpureFunction7":Bp,"ɵɵpureFunction8":Yp,"ɵɵpureFunctionV":Hp,"ɵɵgetCurrentView":Xd,"ɵɵrestoreView":Ge,"ɵɵlistener":nl,"ɵɵload":_d,"ɵɵprojection":fl,"ɵɵupdateSyntheticHostBinding":tc,"ɵɵcomponentHostSyntheticListener":al,"ɵɵpipeBind1":Wp,"ɵɵpipeBind2":Kp,"ɵɵpipeBind3":$p,"ɵɵpipeBind4":Zp,"ɵɵpipeBindV":Jp,"ɵɵprojectionDef":dl,"ɵɵhostProperty":Xl,"ɵɵproperty":Hu,"ɵɵpropertyInterpolate":hl,"ɵɵpropertyInterpolate1":gl,"ɵɵpropertyInterpolate2":pl,"ɵɵpropertyInterpolate3":bl,"ɵɵpropertyInterpolate4":ml,"ɵɵpropertyInterpolate5":yl,"ɵɵpropertyInterpolate6":vl,"ɵɵpropertyInterpolate7":xl,"ɵɵpropertyInterpolate8":_l,"ɵɵpropertyInterpolateV":Tl,"ɵɵpipe":Up,"ɵɵqueryRefresh":cb,"ɵɵviewQuery":hb,"ɵɵstaticViewQuery":fb,"ɵɵstaticContentQuery":mb,"ɵɵloadViewQuery":pb,"ɵɵcontentQuery":bb,"ɵɵloadContentQuery":vb,"ɵɵreference":xd,"ɵɵelementHostAttrs":Ud,"ɵɵclassMap":kd,"ɵɵclassMapInterpolate1":Pl,"ɵɵclassMapInterpolate2":Ml,"ɵɵclassMapInterpolate3":ql,"ɵɵclassMapInterpolate4":jl,"ɵɵclassMapInterpolate5":Fl,"ɵɵclassMapInterpolate6":Gl,"ɵɵclassMapInterpolate7":Vl,"ɵɵclassMapInterpolate8":zl,"ɵɵclassMapInterpolateV":Bl,"ɵɵstyling":wd,"ɵɵstyleMap":Ad,"ɵɵstyleProp":Id,"ɵɵstylePropInterpolate1":Yl,"ɵɵstylePropInterpolate2":Hl,"ɵɵstylePropInterpolate3":Ul,"ɵɵstylePropInterpolate4":Wl,"ɵɵstylePropInterpolate5":Kl,"ɵɵstylePropInterpolate6":$l,"ɵɵstylePropInterpolate7":Zl,"ɵɵstylePropInterpolate8":Jl,"ɵɵstylePropInterpolateV":Ql,"ɵɵstyleSanitizer":Sd,"ɵɵstylingApply":Pd,"ɵɵclassProp":Cd,"ɵɵselect":Oi,"ɵɵtemplate":pd,"ɵɵtext":Ol,"ɵɵtextBinding":wl,"ɵɵtextInterpolate":Sl,"ɵɵtextInterpolate1":Il,"ɵɵtextInterpolate2":Nl,"ɵɵtextInterpolate3":Cl,"ɵɵtextInterpolate4":Rl,"ɵɵtextInterpolate5":Al,"ɵɵtextInterpolate6":kl,"ɵɵtextInterpolate7":El,"ɵɵtextInterpolate8":Ll,"ɵɵtextInterpolateV":Dl,"ɵɵembeddedViewStart":Jd,"ɵɵembeddedViewEnd":Qd,"ɵɵi18n":lp,"ɵɵi18nAttributes":cp,"ɵɵi18nExp":gp,"ɵɵi18nStart":np,"ɵɵi18nEnd":sp,"ɵɵi18nApply":pp,"ɵɵi18nPostprocess":ip,"ɵɵi18nLocalize":wp,"ɵɵresolveWindow":Tn,"ɵɵresolveDocument":On,"ɵɵresolveBody":wn,"ɵɵsetComponentScope":Mt,"ɵɵsetNgModuleScope":Gt,"ɵɵsanitizeHtml":Or,"ɵɵsanitizeStyle":wr,"ɵɵdefaultStyleSanitizer":Ar,"ɵɵsanitizeResourceUrl":Ir,"ɵɵsanitizeScript":Nr,"ɵɵsanitizeUrl":Sr,"ɵɵsanitizeUrlOrResourceUrl":Rr}))(),Nb=[],Cb=[];let Rb=!1;function Ab(){if(!Rb){Rb=!0;try{for(let t=Cb.length-1;t>=0;t--){const{moduleType:e,ngModule:n}=Cb[t];n.declarations&&n.declarations.every(kb)&&(Cb.splice(t,1),qb(e,n))}}finally{Rb=!1}}}function kb(t){return Array.isArray(t)?t.every(kb):!!V(t)}function Eb(t,e={}){Lb(t,e),function(t,e){Cb.push({moduleType:t,ngModule:e})}(t,e)}function Lb(t,e,n=!1){const a=pt(e.declarations||Nb);let r=null;Object.defineProperty(t,At,{configurable:!0,get:()=>(null===r&&(r=W().compileNgModule(Ib,`ng:///${t.name}/ngModuleDef.js`,{type:t,bootstrap:pt(e.bootstrap||Nb).map(V),declarations:a.map(V),imports:pt(e.imports||Nb).map(V).map(Gb),exports:pt(e.exports||Nb).map(V).map(Gb),emitInline:!0,schemas:e.schemas?pt(e.schemas):null,id:e.id||null})),r)});let i=null;Object.defineProperty(t,q,{get:()=>{if(null===i){const n={name:t.name,type:t,deps:go(t),providers:e.providers||Nb,imports:[(e.imports||Nb).map(V),(e.exports||Nb).map(V)]};i=W().compileInjector(Ib,`ng:///${t.name}/ngInjectorDef.js`,n)}return i},configurable:!1})}let Db=new Map,Pb=new Map;function Mb(){Db=new Map,Pb=new Map,Cb.length=0}function qb(t,e){const n=pt(e.declarations||Nb),a=Fb(t);n.forEach(e=>{e.hasOwnProperty(Nt)?jb(Ht(e),a):e.hasOwnProperty(Ct)||e.hasOwnProperty(Rt)||(e.ngSelectorScope=t)})}function jb(t,e){t.directiveDefs=()=>Array.from(e.compilation.directives).map(t=>t.hasOwnProperty(Nt)?Ht(t):Ut(t)).filter(t=>!!t),t.pipeDefs=()=>Array.from(e.compilation.pipes).map(t=>Wt(t)),t.schemas=e.schemas,t.tView=null}function Fb(t,e){if(!Vb(t))throw new Error(`${t.name} does not have an ngModuleDef`);const n=$t(t);if(null!==n.transitiveCompileScopes)return n.transitiveCompileScopes;const a={schemas:n.schemas||null,compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return In(n.declarations).forEach(t=>{Wt(t)?a.compilation.pipes.add(t):a.compilation.directives.add(t)}),In(n.imports).forEach(t=>{const n=t;if(!Vb(n))throw new Error(`Importing ${n.name} which does not have an ngModuleDef`);e&&e(n);const r=Fb(n,e);r.exported.directives.forEach(t=>a.compilation.directives.add(t)),r.exported.pipes.forEach(t=>a.compilation.pipes.add(t))}),In(n.exports).forEach(t=>{const n=t;if(Vb(n)){const t=Fb(n,e);t.exported.directives.forEach(t=>{a.compilation.directives.add(t),a.exported.directives.add(t)}),t.exported.pipes.forEach(t=>{a.compilation.pipes.add(t),a.exported.pipes.add(t)})}else Wt(n)?a.exported.pipes.add(n):a.exported.directives.add(n)}),n.transitiveCompileScopes=a,a}function Gb(t){return function(t){return void 0!==t.ngModule}(t)?t.ngModule:t}function Vb(t){return!!$t(t)}function zb(t,e){let n=null;!function(t,e){Cu(e)&&(Iu.set(t,e),Nu.add(t))}(t,e),Object.defineProperty(t,Nt,{get:()=>{const a=W();if(null===n){if(Cu(e)){const n=[`Component '${t.name}' is not resolved:`];throw e.templateUrl&&n.push(` - templateUrl: ${e.templateUrl}`),e.styleUrls&&e.styleUrls.length&&n.push(` - styleUrls: ${JSON.stringify(e.styleUrls)}`),n.push("Did you run and wait for 'resolveComponentResources()'?"),new Error(n.join("\n"))}const r=e.templateUrl||`ng:///${t.name}/template.html`,i=Object.assign({},Hb(t,e),{typeSourceSpan:a.createParseSourceSpan("Component",t.name,r),template:e.template||"",preserveWhitespaces:e.preserveWhitespaces||!1,styles:e.styles||It,animations:e.animations,directives:[],changeDetection:e.changeDetection,pipes:new Map,encapsulation:e.encapsulation||Ot.Emulated,interpolation:e.interpolation,viewProviders:e.viewProviders||null});if(i.usesInheritance&&Ub(t),n=a.compileComponent(Ib,r,i),Ab(),void 0!==t.ngSelectorScope){const e=Fb(t.ngSelectorScope);jb(n,e)}}return n},configurable:!1}),bo(t)}function Bb(t,e){let n=null;Object.defineProperty(t,Ct,{get:()=>{if(null===n){const a=t&&t.name,r=`ng:///${a}/ngDirectiveDef.js`,i=W(),s=Hb(t,e);s.typeSourceSpan=i.createParseSourceSpan("Directive",a,r),s.usesInheritance&&Ub(t),n=i.compileDirective(Ib,r,s)}return n},configurable:!1}),bo(t)}function Yb(t){return Object.getPrototypeOf(t.prototype)===Object.prototype}function Hb(t,e){const n=ho().ownPropMetadata(t);return{name:t.name,type:t,typeArgumentCount:0,selector:e.selector,deps:go(t),host:e.host||St,propMetadata:n,inputs:e.inputs||It,outputs:e.outputs||It,queries:Zb(t,n,Jb),lifecycle:{usesOnChanges:t.prototype.hasOwnProperty("ngOnChanges")},typeSourceSpan:null,usesInheritance:!Yb(t),exportAs:(a=e.exportAs,void 0===a?null:a.split(",").map(t=>t.trim())),providers:e.providers||null,viewQueries:Zb(t,n,Qb)};var a}function Ub(t){const e=Object.prototype;let n=Object.getPrototypeOf(t);for(;n&&n!==e;){if(!Ut(n)&&!Ht(n)&&!Kt(n)){const t=Kb(n);t&&Wb(n,t)}n=Object.getPrototypeOf(n)}}function Wb(t,e){let n=null;Object.defineProperty(t,Et,{get:()=>{if(null===n){const a=`ng://${t&&t.name}/ngBaseDef.js`,r=W();n=r.compileBase(Ib,a,e)}return n},configurable:!1})}function Kb(t){const e=ho().ownPropMetadata(t),n=Zb(t,e,Qb),a=Zb(t,e,Jb);let r,i,s=!1;for(const o in e)e[o].forEach(t=>{const e=t.ngMetadataName;"Input"===e?(r=r||{},r[o]=t.bindingPropertyName?[t.bindingPropertyName,o]:o):"Output"===e?(i=i||{},i[o]=t.bindingPropertyName||o):"HostBinding"!==e&&"HostListener"!==e||(s=!0)});return r||i||n.length||a.length||s?{name:t.name,type:t,inputs:r,outputs:i,viewQueries:n,queries:a,propMetadata:e}:null}function $b(t,e){return{propertyName:t,predicate:(n=e.selector,"string"==typeof n?n.split(",").map(t=>t.trim()):V(n)),descendants:e.descendants,first:e.first,read:e.read?e.read:null,static:!!e.static};var n}function Zb(t,e,n){const a=[];for(const r in e)if(e.hasOwnProperty(r)){const i=e[r];i.forEach(e=>{if(n(e)){if(!e.selector)throw new Error(`Can't construct a query for the property "${r}" of `+`"${xn(t)}" since the query selector wasn't defined.`);if(i.some(Xb))throw new Error("Cannot combine @Input decorators with query decorators");a.push($b(r,e))}})}return a}function Jb(t){const e=t.ngMetadataName;return"ContentChild"===e||"ContentChildren"===e}function Qb(t){const e=t.ngMetadataName;return"ViewChild"===e||"ViewChildren"===e}function Xb(t){return"Input"===t.ngMetadataName}function tm(t,e){let n=null;Object.defineProperty(t,Rt,{get:()=>{if(null===n){const a=t.name;n=W().compilePipe(Ib,`ng:///${a}/ngPipeDef.js`,{type:t,typeArgumentCount:0,name:a,deps:go(t),pipeName:e.name,pure:void 0===e.pure||e.pure})}return n},configurable:!1})}const em=y("Directive",(t={})=>t,void 0,void 0,(t,e)=>fm(t,e)),nm=y("Component",(t={})=>Object.assign({changeDetection:xt.Default},t),em,void 0,(t,e)=>cm(t,e)),am=y("Pipe",t=>Object.assign({pure:!0},t),void 0,void 0,(t,e)=>hm(t,e)),rm=_("Input",t=>({bindingPropertyName:t})),im=_("Output",t=>({bindingPropertyName:t})),sm=_("HostBinding",t=>({hostPropertyName:t})),om=_("HostListener",(t,e)=>({eventName:t,args:e})),um=zb,dm=Bb,lm=tm,cm=Wc,fm=Wc,hm=Wc,gm=y("NgModule",t=>t,void 0,void 0,(t,e)=>bm(t,e)),pm=Eb,bm=function(t,e){let n=e&&e.imports||[];e&&e.exports&&(n=[...n,e.exports]),t.ngInjectorDef=L({factory:wo(t,{useClass:t}),providers:e&&e.providers,imports:n})},mm=new K("Application Initializer");class ym{constructor(t){this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();tl(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}const vm=new K("AppId");function xm(){return`${Tm()}${Tm()}${Tm()}`}const _m={provide:vm,useFactory:xm,deps:[]};function Tm(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Om=new K("Platform Initializer"),wm=new K("Platform ID"),Sm=new K("appBootstrapListener"),Im=new K("Application Packages Root URL");class Nm{log(t){console.log(t)}warn(t){console.warn(t)}}const Cm=new K("LocaleId"),Rm=new K("Translations"),Am=new K("TranslationsFormat"),km=function(){var t={Error:0,Warning:1,Ignore:2};return t[t.Error]="Error",t[t.Warning]="Warning",t[t.Ignore]="Ignore",t}(),Em=!0,Lm=!1;class Dm{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}function Pm(){throw new Error("Runtime compiler is not loaded")}const Mm=function(t){return new Dp(t)},qm=Pm,jm=function(t){return Promise.resolve(Mm(t))},Fm=Pm,Gm=function(t){const e=Mm(t),n=In($t(t).declarations).reduce((t,e)=>{const n=Ht(e);return n&&t.push(new Ig(n)),t},[]);return new Dm(e,n)},Vm=Pm,zm=function(t){return Promise.resolve(Gm(t))},Bm=Pm;class Ym{constructor(){this.compileModuleSync=qm,this.compileModuleAsync=Fm,this.compileModuleAndAllComponentsSync=Vm,this.compileModuleAndAllComponentsAsync=Bm}clearCache(){}clearCacheFor(t){}getModuleId(t){}}const Hm=new K("compilerOptions");class Um{}let Wm,Km;function $m(){const t=U.wtf;return!(!t||(Wm=t.trace,!Wm)||(Km=Wm.events,0))}function Zm(t,e=null){return Km.createScope(t,e)}function Jm(t,e){return Wm.leaveScope(t,e),e}function Qm(t,e){return Wm.beginTimeRange(t,e)}function Xm(t){Wm.endTimeRange(t)}const ty=$m();function ey(t,e){return null}const ny=ty?Zm:(t,e)=>ey,ay=ty?Jm:(t,e)=>e,ry=ty?Qm:(t,e)=>null,iy=ty?Xm:t=>null,sy=(()=>Promise.resolve(0))();function oy(t){"undefined"==typeof Zone?sy.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class uy{constructor({enableLongStackTrace:t=!1}){if(this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new tb(!1),this.onMicrotaskEmpty=new tb(!1),this.onStable=new tb(!1),this.onError=new tb(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");var e;Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),(e=this)._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,n,a,r,i,s)=>{try{return fy(e),t.invokeTask(a,r,i,s)}finally{hy(e)}},onInvoke:(t,n,a,r,i,s,o)=>{try{return fy(e),t.invoke(a,r,i,s,o)}finally{hy(e)}},onHasTask:(t,n,a,r)=>{t.hasTask(a,r),n===a&&("microTask"==r.change?(e.hasPendingMicrotasks=r.microTask,cy(e)):"macroTask"==r.change&&(e.hasPendingMacrotasks=r.macroTask))},onHandleError:(t,n,a,r)=>(t.handleError(a,r),e.runOutsideAngular(()=>e.onError.emit(r)),!1)})}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!uy.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(uy.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,a){const r=this._inner,i=r.scheduleEventTask("NgZoneEvent: "+a,t,ly,dy,dy);try{return r.runTask(i,e,n)}finally{r.cancelTask(i)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function dy(){}const ly={};function cy(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 fy(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function hy(t){t._nesting--,cy(t)}class gy{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new tb,this.onMicrotaskEmpty=new tb,this.onStable=new tb,this.onError=new tb}run(t){return t()}runGuarded(t){return t()}runOutsideAngular(t){return t()}runTask(t){return t()}}class py{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?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:()=>{uy.assertNotInAngularZone(),oy(()=>{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())oy(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let a=-1;e&&e>0&&(a=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==a),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:a,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}class by{constructor(){this._applications=new Map,xy.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return xy.findTestabilityInTree(this,t,e)}}class my{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}function yy(t){xy=t}let vy,xy=new my;function _y(t,e,n){const a=new Dp(n);if(0===Iu.size)return Promise.resolve(a);const r=function(t){const e=[];return t.forEach(t=>t&&e.push(...t)),e}(t.get(Hm,[]).concat(e).map(t=>t.providers));if(0===r.length)return Promise.resolve(a);const i=W(),s=Bo.create({providers:r}).get(i.ResourceLoader);return Su(t=>Promise.resolve(s.get(t))).then(()=>a)}function Ty(t){return t.isBoundToModule}const Oy=new K("AllowMultipleToken");class wy{constructor(t,e){this.name=t,this.token=e}}function Sy(t){if(vy&&!vy.destroyed&&!vy.injector.get(Oy,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");vy=t.get(Ay);const e=t.get(Om,null);return e&&e.forEach(t=>t()),vy}function Iy(t,e,n=[]){const a=`Platform: ${e}`,r=new K(a);return(e=[])=>{let i=Ry();if(!i||i.injector.get(Oy,!1))if(t)t(n.concat(e).concat({provide:r,useValue:!0}));else{const t=n.concat(e).concat({provide:r,useValue:!0});Sy(Bo.create({providers:t,name:a}))}return Ny(r)}}function Ny(t){const e=Ry();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function Cy(){vy&&!vy.destroyed&&vy.destroy()}function Ry(){return vy&&!vy.destroyed?vy:null}class Ay{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t){let e;return e="noop"===t?new gy:("zone.js"===t?void 0:t)||new uy({enableLongStackTrace:Wa()}),e}(e?e.ngZone:void 0),a=[{provide:uy,useValue:n}];return n.run(()=>{const e=Bo.create({providers:a,parent:this.injector,name:t.moduleType.name}),r=t.create(e),i=r.injector.get(Da,null);if(!i)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return Lm&&Ip(r.injector.get(Cm,Dg)||Dg),r.onDestroy(()=>Ly(this._modules,r)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{i.handleError(t)}})),function(t,e,n){try{const a=n();return tl(a)?a.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):a}catch(a){throw e.runOutsideAngular(()=>t.handleError(a)),a}}(i,n,()=>{const t=r.injector.get(ym);return t.runInitializers(),t.donePromise.then(()=>(this._moduleDoBootstrap(r),r))})})}bootstrapModule(t,e=[]){const n=ky({},e);return function(t,e,n){return t.get(Um).createCompiler([e]).compileModuleAsync(n)}(this.injector,n,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(Ey);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${j(t.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. `+"Please define one of these.");t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}function ky(t,e){return Array.isArray(e)?e.reduce(ky,t):Object.assign({},t,e)}let Ey=(()=>{class t{constructor(t,e,n,a,r,o){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=a,this._componentFactoryResolver=r,this._initStatus=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=Wa(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const d=new i.a(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),l=new i.a(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{uy.assertNotInAngularZone(),oy(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{uy.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(s.a)(d,l.pipe(t=>{return u()((e=g,function(t){let n;n="function"==typeof e?e:function(){return e};const a=Object.create(t,f);return a.source=t,a.subjectFactory=n,a})(t));var e}))}bootstrap(t,e){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let n;n=t instanceof Gc?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const a=n instanceof Uc?null:this._injector.get(ft),r=n.create(Bo.NULL,[],e||n.selector,a);r.onDestroy(()=>{this._unloadComponent(r)});const i=r.injector.get(py,null);return i&&r.injector.get(by).registerApplication(r.location.nativeElement,i),this._loadComponent(r),Wa()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),r}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");const e=t._tickScope();try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1,ay(e)}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;Ly(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(Sm,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),Ly(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t._tickScope=ny("ApplicationRef#tick()"),t})();function Ly(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}class Dy{}function Py(t){const e=kp(t);if(!e)throw jy(t);return e}function My(t){const e=kp(t);if(!e)throw jy(t);return new Dp(e)}const qy=Py;function jy(t){return new Error(`No module with ID ${t} loaded`)}class Fy{}const Gy={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};class Vy{constructor(t,e){this._compiler=t,this._config=e||Gy}load(t){return!Lm&&this._compiler instanceof Ym?this.loadFactory(t):this.loadAndCompile(t)}loadAndCompile(t){let[e,a]=t.split("#");return void 0===a&&(a="default"),n("crnd")(e).then(t=>t[a]).then(t=>zy(t,e,a)).then(t=>this._compiler.compileModuleAsync(t))}loadFactory(t){let[e,a]=t.split("#"),r="NgFactory";return void 0===a&&(a="default",r=""),n("crnd")(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then(t=>t[a+r]).then(t=>zy(t,e,a))}}function zy(t,e,n){if(!t)throw new Error(`Cannot find '${n}' in '${e}'`);return t}class By extends Xs{}class Yy extends By{}class Hy{constructor(t,e){this.name=t,this.callback=e}}class Uy{constructor(t,e,n){this.listeners=[],this.parent=null,this._debugContext=n,this.nativeNode=t,e&&e instanceof Wy&&e.addChild(this)}get injector(){return this._debugContext.injector}get componentInstance(){return this._debugContext.component}get context(){return this._debugContext.context}get references(){return this._debugContext.references}get providerTokens(){return this._debugContext.providerTokens}}class Wy extends Uy{constructor(t,e,n){super(t,e,n),this.properties={},this.attributes={},this.classes={},this.styles={},this.childNodes=[],this.nativeElement=t}addChild(t){t&&(this.childNodes.push(t),t.parent=this)}removeChild(t){const e=this.childNodes.indexOf(t);-1!==e&&(t.parent=null,this.childNodes.splice(e,1))}insertChildrenAfter(t,e){const n=this.childNodes.indexOf(t);-1!==n&&(this.childNodes.splice(n+1,0,...e),e.forEach(e=>{e.parent&&e.parent.removeChild(e),t.parent=this}))}insertBefore(t,e){const n=this.childNodes.indexOf(t);-1===n?this.addChild(e):(e.parent&&e.parent.removeChild(e),e.parent=this,this.childNodes.splice(n,0,e))}query(t){return this.queryAll(t)[0]||null}queryAll(t){const e=[];return function t(e,n,a){e.childNodes.forEach(e=>{e instanceof Wy&&(n(e)&&a.push(e),t(e,n,a))})}(this,t,e),e}queryAllNodes(t){const e=[];return function t(e,n,a){e instanceof Wy&&e.childNodes.forEach(e=>{n(e)&&a.push(e),e instanceof Wy&&t(e,n,a)})}(this,t,e),e}get children(){return this.childNodes.filter(t=>t instanceof Wy)}triggerEventHandler(t,e){this.listeners.forEach(n=>{n.name==t&&n.callback(e)})}}function Ky(t){return t.map(t=>t.nativeElement)}class $y{constructor(t){this.nativeNode=t}get parent(){const t=this.nativeNode.parentNode;return t?new Zy(t):null}get injector(){return ic(this.nativeNode)}get componentInstance(){const t=this.nativeNode;return t&&(ec(t)||ac(t))}get context(){return ec(this.nativeNode)||nc(this.nativeNode)}get listeners(){return cc(this.nativeNode).filter(lc)}get references(){return function(t){const e=oc(t);return void 0===e.localRefs&&(e.localRefs=function(t,e){const n=t[1].data[e];if(n&&n.localNames){const e={};let a=n.index+1;for(let r=0;r<n.localNames.length;r+=2)e[n.localNames[r]]=t[a],a++;return e}return null}(e.lView,e.nodeIndex)),e.localRefs||{}}(this.nativeNode)}get providerTokens(){return function(t){const e=oc(t,!1);if(!e)return[];const n=e.lView[1],a=n.data[e.nodeIndex],r=[],i=a.directiveEnd;for(let o=65535&a.providerIndexes;o<i;o++){let t=n.data[o];void 0!==(s=t).type&&void 0!==s.template&&void 0!==s.declaredInputs&&(t=t.type),r.push(t)}var s;return r}(this.nativeNode)}}class Zy extends $y{constructor(t){super(t)}get nativeElement(){return this.nativeNode.nodeType==Node.ELEMENT_NODE?this.nativeNode:null}get name(){return this.nativeElement.nodeName}get properties(){const t=oc(this.nativeNode),e=t.lView,n=e[1].data,a=n[t.nodeIndex],r=function(t,e,n){const a={};let r=function(t,e){let n=t-1,a=e[n];for(;"string"==typeof a&&!Sn(a);)a=e[--n];return n+1}(t.propertyMetadataStartIndex,n);for(;r<t.propertyMetadataEndIndex;){let t,i=n[r];for(;!Sn(i);)t=(t||"")+vn(e[r])+n[r],i=n[++r];t=void 0===t?e[r]:t+=e[r];const s=i.split("�"),o=s[0];o&&(a[o]=s[1]&&s[2]?s[1]+t+s[2]:t),r++}return a}(a,e,n),i=function(t,e,n){const a={};let r=t.directiveEnd,i=n[r];for(;"string"==typeof i;)a[i.split("�")[0]]=e[r],i=n[++r];return a}(a,e,n),s=function(t){const e=t.classes;let n="";for(const a of Object.keys(e))e[a]&&(n=n?n+` ${a}`:a);return n}(this),o=Object.assign({},r,i);return s&&(o.className=o.className?o.className+` ${s}`:s),o}get attributes(){const t={},e=this.nativeElement;if(!e)return t;const n=oc(e),a=n.lView[1].data[n.nodeIndex].attrs,r=[];if(a){let e=0;for(;e<a.length;){const n=a[e];if("string"!=typeof n)break;t[n]=a[e+1],r.push(n.toLowerCase()),e+=2}}const i=e.attributes;for(let s=0;s<i.length;s++){const e=i[s];-1===r.indexOf(e.name)&&(t[e.name]=e.value)}return t}get styles(){return Jy(this.nativeElement,!1)}get classes(){return Jy(this.nativeElement,!0)}get childNodes(){const t=this.nativeNode.childNodes,e=[];for(let n=0;n<t.length;n++)e.push(av(t[n]));return e}get children(){const t=this.nativeElement;if(!t)return[];const e=t.children,n=[];for(let a=0;a<e.length;a++)n.push(av(e[a]));return n}query(t){return this.queryAll(t)[0]||null}queryAll(t){const e=[];return Qy(this,t,e,!0),e}queryAllNodes(t){const e=[];return Qy(this,t,e,!1),e}triggerEventHandler(t,e){this.listeners.forEach(n=>{n.name===t&&n.callback(e)})}}function Jy(t,e){if(t){const n=dc(t),a=n.lView,r=a[1].data[n.nodeIndex];return e?Un(r.classes)?new Ti(r.classes,a,!0).values:_i(r.classes):Un(r.styles)?new Ti(r.styles,a,!1).values:_i(r.styles)}return{}}function Qy(t,e,n,a){const r=oc(t.nativeNode);Xy(r.lView[1].data[r.nodeIndex],r.lView,e,n,a,t.nativeNode)}function Xy(t,e,n,a,r,i){const s=me(t,e);if(3===t.type||4===t.type){if(ev(s,n,a,r,i),Xt(t)){const s=xe(t.index,e);s&&s[1].firstChild&&Xy(s[1].firstChild,s,n,a,r,i)}else t.child&&Xy(t.child,e,n,a,r,i),s&&function t(e,n,a,r){const i=e.childNodes,s=i.length;for(let o=0;o<s;o++){const e=i[o],s=rv(e);s&&(r&&s instanceof Zy&&n(s)&&-1===a.indexOf(s)?a.push(s):!r&&n(s)&&-1===a.indexOf(s)&&a.push(s),t(e,n,a,r))}}(s,n,a,r);const o=e[t.index];Jt(o)&&tv(o,n,a,r,i)}else if(0===t.type){const s=e[t.index];ev(s[7],n,a,r,i),tv(s,n,a,r,i)}else if(1===t.type){const s=la(e),o=s[6].projection[t.projection];if(Array.isArray(o))for(let t of o)ev(t,n,a,r,i);else if(o){const t=s[3];Xy(t[1].data[o.index],t,n,a,r,i)}}else t.child&&Xy(t.child,e,n,a,r,i);if(i!==s){const s=2&t.flags?t.projectionNext:t.next;s&&Xy(s,e,n,a,r,i)}}function tv(t,e,n,a,r){for(let i=9;i<t.length;i++){const s=t[i];Xy(s[1].node,s,e,n,a,r)}}function ev(t,e,n,a,r){if(r!==t){const r=rv(t);if(!r)return;a&&r instanceof Zy&&e(r)&&-1===n.indexOf(r)?n.push(r):!a&&e(r)&&-1===n.indexOf(r)&&n.push(r)}}const nv=new Map;function av(t){return t instanceof Node?(t.hasOwnProperty("__ng_debug__")||(t.__ng_debug__=t.nodeType==Node.ELEMENT_NODE?new Zy(t):new $y(t)),t.__ng_debug__):null}const rv=function(t){return nv.get(t)||null};function iv(t){nv.set(t.nativeNode,t)}const sv=Uy,ov=Wy,uv=Iy(null,"core",[{provide:wm,useValue:"unknown"},{provide:Ay,deps:[Bo]},{provide:by,deps:[]},{provide:Nm,deps:[]}]);function dv(){return Tf}function lv(){return Of}function cv(t){return t?(Lm&&Ip(t),t):Dg}const fv=[{provide:Ey,useClass:Ey,deps:[uy,Nm,Bo,Da,Yc,ym]},{provide:Sg,deps:[uy],useFactory:hv},{provide:ym,useClass:ym,deps:[[new O,mm]]},{provide:Ym,useClass:Ym,deps:[]},_m,{provide:vf,useFactory:dv,deps:[]},{provide:xf,useFactory:lv,deps:[]},{provide:Cm,useFactory:cv,deps:[[new T(Cm),new O,new S]]}];function hv(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}class gv{constructor(t){}}function pv(t,e,n,a,r,i){t|=1;const{matchedQueries:s,references:o,matchedQueryIds:u}=sh(e);return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,checkIndex:-1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:s,matchedQueryIds:u,references:o,ngContentIndex:n,childCount:a,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:i?lh(i):null,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:r||zf},provider:null,text:null,query:null,ngContent:null}}function bv(t,e,n,a,r,i,s=[],o,u,d,l,c){d||(d=zf);const{matchedQueries:f,references:h,matchedQueryIds:g}=sh(n);let p=null,b=null;i&&([p,b]=mh(i)),o=o||[];const m=new Array(o.length);for(let x=0;x<o.length;x++){const[t,e,n]=o[x],[a,r]=mh(e);let i=void 0,s=void 0;switch(15&t){case 4:s=n;break;case 1:case 8:i=n}m[x]={flags:t,ns:a,name:r,nonMinifiedName:r,securityContext:i,suffix:s}}u=u||[];const y=new Array(u.length);for(let x=0;x<u.length;x++){const[t,e]=u[x];y[x]={type:0,target:t,eventName:e,propName:null}}const v=(s=s||[]).map(([t,e])=>{const[n,a]=mh(t);return[n,a,e]});return c=function(t){if(t&&"$$undefined"===t.id){const e=null!=t.encapsulation&&t.encapsulation!==Ot.None||t.styles.length||Object.keys(t.data).length;t.id=e?`c${Wf++}`:"$$empty"}return t&&"$$empty"===t.id&&(t=null),t||null}(c),l&&(e|=33554432),{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e|=1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:f,matchedQueryIds:g,references:h,ngContentIndex:a,childCount:r,bindings:m,bindingFlags:yh(m),outputs:y,element:{ns:p,name:b,attrs:v,template:null,componentProvider:null,componentView:l||null,componentRendererType:c,publicProviders:null,allProviders:null,handleEvent:d||zf},provider:null,text:null,query:null,ngContent:null}}function mv(t,e,n){const a=n.element,r=t.root.selectorOrNode,i=t.renderer;let s;if(t.parent||!r){s=a.name?i.createElement(a.name,a.ns):i.createComment("");const r=uh(t,e,n);r&&i.appendChild(r,s)}else s=i.selectRootElement(r,!!a.componentRendererType&&a.componentRendererType.encapsulation===Ot.ShadowDom);if(a.attrs)for(let o=0;o<a.attrs.length;o++){const[t,e,n]=a.attrs[o];i.setAttribute(s,e,n,t)}return s}function yv(t,e,n,a){for(let s=0;s<n.outputs.length;s++){const o=n.outputs[s],u=vv(t,n.nodeIndex,(i=o.eventName,(r=o.target)?`${r}:${i}`:i));let d=o.target,l=t;"component"===o.target&&(d=null,l=e);const c=l.renderer.listen(d||a,o.eventName,u);t.disposables[n.outputIndex+s]=c}var r,i}function vv(t,e,n){return a=>Xf(t,e,n,a)}function xv(t,e,n,a){if(!$f(t,e,n,a))return!1;const r=e.bindings[n],i=Mf(t,e.nodeIndex),s=i.renderElement,o=r.name;switch(15&r.flags){case 1:!function(t,e,n,a,r,i){const s=e.securityContext;let o=s?t.root.sanitizer.sanitize(s,i):i;o=null!=o?o.toString():null;const u=t.renderer;null!=i?u.setAttribute(n,r,o,a):u.removeAttribute(n,r,a)}(t,r,s,r.ns,o,a);break;case 2:!function(t,e,n,a){const r=t.renderer;a?r.addClass(e,n):r.removeClass(e,n)}(t,s,o,a);break;case 4:!function(t,e,n,a,r){let i=t.root.sanitizer.sanitize(yr.STYLE,r);if(null!=i){i=i.toString();const t=e.suffix;null!=t&&(i+=t)}else i=null;const s=t.renderer;null!=i?s.setStyle(n,a,i):s.removeStyle(n,a)}(t,r,s,o,a);break;case 8:!function(t,e,n,a,r){const i=e.securityContext;let s=i?t.root.sanitizer.sanitize(i,r):r;t.renderer.setProperty(n,a,s)}(33554432&e.flags&&32&r.flags?i.componentView:t,r,s,o,a)}return!0}function _v(t,e,n){let a=[];for(let r in n)a.push({propName:r,bindingType:n[r]});return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:e,filterId:ih(e),bindings:a},ngContent:null}}function Tv(t){const e=t.def.nodeMatchedQueries;for(;t.parent&&rh(t);){let n=t.parentNodeDef;t=t.parent;const a=n.nodeIndex+n.childCount;for(let r=0;r<=a;r++){const a=t.def.nodes[r];67108864&a.flags&&536870912&a.flags&&(a.query.filterId&e)===a.query.filterId&&Ff(t,r).setDirty(),!(1&a.flags&&r+a.childCount<n.nodeIndex)&&67108864&a.childFlags&&536870912&a.childFlags||(r+=a.childCount)}}if(134217728&t.def.nodeFlags)for(let n=0;n<t.def.nodes.length;n++){const e=t.def.nodes[n];134217728&e.flags&&536870912&e.flags&&Ff(t,n).setDirty(),n+=e.childCount}}function Ov(t,e){const n=Ff(t,e.nodeIndex);if(!n.dirty)return;let a,r=void 0;if(67108864&e.flags){const n=e.parent.parent;r=wv(t,n.nodeIndex,n.nodeIndex+n.childCount,e.query,[]),a=qf(t,e.parent.nodeIndex).instance}else 134217728&e.flags&&(r=wv(t,0,t.def.nodes.length-1,e.query,[]),a=t.component);n.reset(r);const i=e.query.bindings;let s=!1;for(let o=0;o<i.length;o++){const t=i[o];let e;switch(t.bindingType){case 0:e=n.first;break;case 1:e=n,s=!0}a[t.propName]=e}s&&n.notifyOnChanges()}function wv(t,e,n,a,r){for(let i=e;i<=n;i++){const e=t.def.nodes[i],n=e.matchedQueries[a.id];if(null!=n&&r.push(Sv(t,e,n)),1&e.flags&&e.element.template&&(e.element.template.nodeMatchedQueries&a.filterId)===a.filterId){const n=Mf(t,i);if((e.childMatchedQueries&a.filterId)===a.filterId&&(wv(t,i+1,i+e.childCount,a,r),i+=e.childCount),16777216&e.flags){const t=n.viewContainer._embeddedViews;for(let e=0;e<t.length;e++){const i=t[e],s=th(i);s&&s===n&&wv(i,0,i.def.nodes.length-1,a,r)}}const s=n.template._projectedViews;if(s)for(let t=0;t<s.length;t++){const e=s[t];wv(e,0,e.def.nodes.length-1,a,r)}}(e.childMatchedQueries&a.filterId)!==a.filterId&&(i+=e.childCount)}return r}function Sv(t,e,n){if(null!=n)switch(n){case 1:return Mf(t,e.nodeIndex).renderElement;case 0:return new Kc(Mf(t,e.nodeIndex).renderElement);case 2:return Mf(t,e.nodeIndex).template;case 3:return Mf(t,e.nodeIndex).viewContainer;case 4:return qf(t,e.nodeIndex).instance}}function Iv(t,e){return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:8,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:e}}}function Nv(t,e,n){const a=uh(t,e,n);a&&hh(t,n.ngContent.index,1,a,null,void 0)}function Cv(t,e){return kv(128,t,new Array(e+1))}function Rv(t,e){return kv(32,t,new Array(e))}function Av(t,e){const n=Object.keys(e),a=n.length,r=new Array(a);for(let i=0;i<a;i++){const t=n[i];r[e[t]]=t}return kv(64,t,r)}function kv(t,e,n){const a=new Array(n.length);for(let r=0;r<n.length;r++){const t=n[r];a[r]={flags:8,name:t,ns:null,nonMinifiedName:t,securityContext:null,suffix:null}}return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:a,bindingFlags:yh(a),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function Ev(t,e,n){const a=new Array(n.length-1);for(let r=1;r<n.length;r++)a[r-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:n[r]};return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:2,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:e,childCount:0,bindings:a,bindingFlags:8,outputs:[],element:null,provider:null,text:{prefix:n[0]},query:null,ngContent:null}}function Lv(t,e,n){let a;const r=t.renderer;a=r.createText(n.text.prefix);const i=uh(t,e,n);return i&&r.appendChild(i,a),{renderText:a}}function Dv(t,e){return(null!=t?t.toString():"")+e.suffix}function Pv(t,e,n,a){let r=0,i=0,s=0,o=0,u=0,d=null,l=null,c=!1,f=!1,h=null;for(let g=0;g<e.length;g++){const t=e[g];if(t.nodeIndex=g,t.parent=d,t.bindingIndex=r,t.outputIndex=i,t.renderParent=l,s|=t.flags,u|=t.matchedQueryIds,t.element){const e=t.element;e.publicProviders=d?d.element.publicProviders:Object.create(null),e.allProviders=e.publicProviders,c=!1,f=!1,t.element.template&&(u|=t.element.template.nodeMatchedQueries)}if(qv(d,t,e.length),r+=t.bindings.length,i+=t.outputs.length,!l&&3&t.flags&&(h=t),20224&t.flags){c||(c=!0,d.element.publicProviders=Object.create(d.element.publicProviders),d.element.allProviders=d.element.publicProviders);const e=0!=(32768&t.flags);0==(8192&t.flags)||e?d.element.publicProviders[Yf(t.provider.token)]=t:(f||(f=!0,d.element.allProviders=Object.create(d.element.publicProviders)),d.element.allProviders[Yf(t.provider.token)]=t),e&&(d.element.componentProvider=t)}if(d?(d.childFlags|=t.flags,d.directChildFlags|=t.flags,d.childMatchedQueries|=t.matchedQueryIds,t.element&&t.element.template&&(d.childMatchedQueries|=t.element.template.nodeMatchedQueries)):o|=t.flags,t.childCount>0)d=t,Mv(t)||(l=t);else for(;d&&g===d.nodeIndex+d.childCount;){const t=d.parent;t&&(t.childFlags|=d.childFlags,t.childMatchedQueries|=d.childMatchedQueries),d=t,l=d&&Mv(d)?d.renderParent:d}}return{factory:null,nodeFlags:s,rootNodeFlags:o,nodeMatchedQueries:u,flags:t,nodes:e,updateDirectives:n||zf,updateRenderer:a||zf,handleEvent:(t,n,a,r)=>e[n].element.handleEvent(t,a,r),bindingCount:r,outputCount:i,lastRenderRootNode:h}}function Mv(t){return 0!=(1&t.flags)&&null===t.element.name}function qv(t,e,n){const a=e.element&&e.element.template;if(a){if(!a.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(a.lastRenderRootNode&&16777216&a.lastRenderRootNode.flags)throw new Error(`Illegal State: Last root node of a template can't have embedded views, at index ${e.nodeIndex}!`)}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error(`Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index ${e.nodeIndex}!`);if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error(`Illegal State: Content Query nodes need to be children of directives, at index ${e.nodeIndex}!`);if(134217728&e.flags&&t)throw new Error(`Illegal State: View Query nodes have to be top level nodes, at index ${e.nodeIndex}!`)}if(e.childCount){const a=t?t.nodeIndex+t.childCount:n-1;if(e.nodeIndex<=a&&e.nodeIndex+e.childCount>a)throw new Error(`Illegal State: childCount of node leads outside of parent, at index ${e.nodeIndex}!`)}}function jv(t,e,n,a){const r=Vv(t.root,t.renderer,t,e,n);return zv(r,t.component,a),Bv(r),r}function Fv(t,e,n){const a=Vv(t,t.renderer,null,null,e);return zv(a,n,n),Bv(a),a}function Gv(t,e,n,a){const r=e.element.componentRendererType;let i;return i=r?t.root.rendererFactory.createRenderer(a,r):t.root.renderer,Vv(t.root,i,t,e.element.componentProvider,n)}function Vv(t,e,n,a,r){const i=new Array(r.nodes.length),s=r.outputCount?new Array(r.outputCount):null;return{def:r,parent:n,viewContainerParent:null,parentNodeDef:a,context:null,component:null,nodes:i,state:13,root:t,renderer:e,oldValues:new Array(r.bindingCount),disposables:s,initIndex:-1}}function zv(t,e,n){t.component=e,t.context=n}function Bv(t){let e;ah(t)&&(e=Mf(t.parent,t.parentNodeDef.parent.nodeIndex).renderElement);const n=t.def,a=t.nodes;for(let r=0;r<n.nodes.length;r++){const i=n.nodes[r];let s;switch(Vf.setCurrentNode(t,r),201347067&i.flags){case 1:const n=mv(t,e,i);let o=void 0;if(33554432&i.flags){const e=lh(i.element.componentView);o=Vf.createComponentView(t,i,e,n)}yv(t,o,i,n),s={renderElement:n,componentView:o,viewContainer:null,template:i.element.template?Yh(t,i):void 0},16777216&i.flags&&(s.viewContainer=Gh(t,i,s));break;case 2:s=Lv(t,e,i);break;case 512:case 1024:case 2048:case 256:s=a[r],s||4096&i.flags||(s={instance:cg(t,i)});break;case 16:s={instance:fg(t,i)};break;case 16384:s=a[r],s||(s={instance:hg(t,i)}),32768&i.flags&&zv(Mf(t,i.parent.nodeIndex).componentView,s.instance,s.instance);break;case 32:case 64:case 128:s={value:void 0};break;case 67108864:case 134217728:s=new nb;break;case 8:Nv(t,e,i),s=void 0}a[r]=s}Qv(t,Jv.CreateViewNodes),nx(t,201326592,268435456,0)}function Yv(t){Wv(t),Vf.updateDirectives(t,1),Xv(t,Jv.CheckNoChanges),Vf.updateRenderer(t,1),Qv(t,Jv.CheckNoChanges),t.state&=-97}function Hv(t){1&t.state?(t.state&=-2,t.state|=2):t.state&=-3,Lf(t,0,256),Wv(t),Vf.updateDirectives(t,0),Xv(t,Jv.CheckAndUpdate),nx(t,67108864,536870912,0);let e=Lf(t,256,512);_g(t,2097152|(e?1048576:0)),Vf.updateRenderer(t,0),Qv(t,Jv.CheckAndUpdate),nx(t,134217728,536870912,0),e=Lf(t,512,768),_g(t,8388608|(e?4194304:0)),2&t.def.flags&&(t.state&=-9),t.state&=-97,Lf(t,768,1024)}function Uv(t,e,n,a,r,i,s,o,u,d,l,c,f){return 0===n?function(t,e,n,a,r,i,s,o,u,d,l,c){switch(201347067&e.flags){case 1:return function(t,e,n,a,r,i,s,o,u,d,l,c){const f=e.bindings.length;let h=!1;return f>0&&xv(t,e,0,n)&&(h=!0),f>1&&xv(t,e,1,a)&&(h=!0),f>2&&xv(t,e,2,r)&&(h=!0),f>3&&xv(t,e,3,i)&&(h=!0),f>4&&xv(t,e,4,s)&&(h=!0),f>5&&xv(t,e,5,o)&&(h=!0),f>6&&xv(t,e,6,u)&&(h=!0),f>7&&xv(t,e,7,d)&&(h=!0),f>8&&xv(t,e,8,l)&&(h=!0),f>9&&xv(t,e,9,c)&&(h=!0),h}(t,e,n,a,r,i,s,o,u,d,l,c);case 2:return function(t,e,n,a,r,i,s,o,u,d,l,c){let f=!1;const h=e.bindings,g=h.length;if(g>0&&$f(t,e,0,n)&&(f=!0),g>1&&$f(t,e,1,a)&&(f=!0),g>2&&$f(t,e,2,r)&&(f=!0),g>3&&$f(t,e,3,i)&&(f=!0),g>4&&$f(t,e,4,s)&&(f=!0),g>5&&$f(t,e,5,o)&&(f=!0),g>6&&$f(t,e,6,u)&&(f=!0),g>7&&$f(t,e,7,d)&&(f=!0),g>8&&$f(t,e,8,l)&&(f=!0),g>9&&$f(t,e,9,c)&&(f=!0),f){let f=e.text.prefix;g>0&&(f+=Dv(n,h[0])),g>1&&(f+=Dv(a,h[1])),g>2&&(f+=Dv(r,h[2])),g>3&&(f+=Dv(i,h[3])),g>4&&(f+=Dv(s,h[4])),g>5&&(f+=Dv(o,h[5])),g>6&&(f+=Dv(u,h[6])),g>7&&(f+=Dv(d,h[7])),g>8&&(f+=Dv(l,h[8])),g>9&&(f+=Dv(c,h[9]));const p=Pf(t,e.nodeIndex).renderText;t.renderer.setValue(p,f)}return f}(t,e,n,a,r,i,s,o,u,d,l,c);case 16384:return function(t,e,n,a,r,i,s,o,u,d,l,c){const f=qf(t,e.nodeIndex),h=f.instance;let g=!1,p=void 0;const b=e.bindings.length;return b>0&&Kf(t,e,0,n)&&(g=!0,p=xg(t,f,e,0,n,p)),b>1&&Kf(t,e,1,a)&&(g=!0,p=xg(t,f,e,1,a,p)),b>2&&Kf(t,e,2,r)&&(g=!0,p=xg(t,f,e,2,r,p)),b>3&&Kf(t,e,3,i)&&(g=!0,p=xg(t,f,e,3,i,p)),b>4&&Kf(t,e,4,s)&&(g=!0,p=xg(t,f,e,4,s,p)),b>5&&Kf(t,e,5,o)&&(g=!0,p=xg(t,f,e,5,o,p)),b>6&&Kf(t,e,6,u)&&(g=!0,p=xg(t,f,e,6,u,p)),b>7&&Kf(t,e,7,d)&&(g=!0,p=xg(t,f,e,7,d,p)),b>8&&Kf(t,e,8,l)&&(g=!0,p=xg(t,f,e,8,l,p)),b>9&&Kf(t,e,9,c)&&(g=!0,p=xg(t,f,e,9,c,p)),p&&h.ngOnChanges(p),65536&e.flags&&Df(t,256,e.nodeIndex)&&h.ngOnInit(),262144&e.flags&&h.ngDoCheck(),g}(t,e,n,a,r,i,s,o,u,d,l,c);case 32:case 64:case 128:return function(t,e,n,a,r,i,s,o,u,d,l,c){const f=e.bindings;let h=!1;const g=f.length;if(g>0&&$f(t,e,0,n)&&(h=!0),g>1&&$f(t,e,1,a)&&(h=!0),g>2&&$f(t,e,2,r)&&(h=!0),g>3&&$f(t,e,3,i)&&(h=!0),g>4&&$f(t,e,4,s)&&(h=!0),g>5&&$f(t,e,5,o)&&(h=!0),g>6&&$f(t,e,6,u)&&(h=!0),g>7&&$f(t,e,7,d)&&(h=!0),g>8&&$f(t,e,8,l)&&(h=!0),g>9&&$f(t,e,9,c)&&(h=!0),h){const h=jf(t,e.nodeIndex);let p;switch(201347067&e.flags){case 32:p=new Array(f.length),g>0&&(p[0]=n),g>1&&(p[1]=a),g>2&&(p[2]=r),g>3&&(p[3]=i),g>4&&(p[4]=s),g>5&&(p[5]=o),g>6&&(p[6]=u),g>7&&(p[7]=d),g>8&&(p[8]=l),g>9&&(p[9]=c);break;case 64:p={},g>0&&(p[f[0].name]=n),g>1&&(p[f[1].name]=a),g>2&&(p[f[2].name]=r),g>3&&(p[f[3].name]=i),g>4&&(p[f[4].name]=s),g>5&&(p[f[5].name]=o),g>6&&(p[f[6].name]=u),g>7&&(p[f[7].name]=d),g>8&&(p[f[8].name]=l),g>9&&(p[f[9].name]=c);break;case 128:const t=n;switch(g){case 1:p=t.transform(n);break;case 2:p=t.transform(a);break;case 3:p=t.transform(a,r);break;case 4:p=t.transform(a,r,i);break;case 5:p=t.transform(a,r,i,s);break;case 6:p=t.transform(a,r,i,s,o);break;case 7:p=t.transform(a,r,i,s,o,u);break;case 8:p=t.transform(a,r,i,s,o,u,d);break;case 9:p=t.transform(a,r,i,s,o,u,d,l);break;case 10:p=t.transform(a,r,i,s,o,u,d,l,c)}}h.value=p}return h}(t,e,n,a,r,i,s,o,u,d,l,c);default:throw"unreachable"}}(t,e,a,r,i,s,o,u,d,l,c,f):function(t,e,n){switch(201347067&e.flags){case 1:return function(t,e,n){let a=!1;for(let r=0;r<n.length;r++)xv(t,e,r,n[r])&&(a=!0);return a}(t,e,n);case 2:return function(t,e,n){const a=e.bindings;let r=!1;for(let i=0;i<n.length;i++)$f(t,e,i,n[i])&&(r=!0);if(r){let r="";for(let t=0;t<n.length;t++)r+=Dv(n[t],a[t]);r=e.text.prefix+r;const i=Pf(t,e.nodeIndex).renderText;t.renderer.setValue(i,r)}return r}(t,e,n);case 16384:return function(t,e,n){const a=qf(t,e.nodeIndex),r=a.instance;let i=!1,s=void 0;for(let o=0;o<n.length;o++)Kf(t,e,o,n[o])&&(i=!0,s=xg(t,a,e,o,n[o],s));return s&&r.ngOnChanges(s),65536&e.flags&&Df(t,256,e.nodeIndex)&&r.ngOnInit(),262144&e.flags&&r.ngDoCheck(),i}(t,e,n);case 32:case 64:case 128:return function(t,e,n){const a=e.bindings;let r=!1;for(let i=0;i<n.length;i++)$f(t,e,i,n[i])&&(r=!0);if(r){const r=jf(t,e.nodeIndex);let i;switch(201347067&e.flags){case 32:i=n;break;case 64:i={};for(let r=0;r<n.length;r++)i[a[r].name]=n[r];break;case 128:const t=n[0],e=n.slice(1);i=t.transform(...e)}r.value=i}return r}(t,e,n);default:throw"unreachable"}}(t,e,a)}function Wv(t){const e=t.def;if(4&e.nodeFlags)for(let n=0;n<e.nodes.length;n++){const a=e.nodes[n];if(4&a.flags){const e=Mf(t,n).template._projectedViews;if(e)for(let n=0;n<e.length;n++){const a=e[n];a.state|=32,Qf(a,t)}}else 0==(4&a.childFlags)&&(n+=a.childCount)}}function Kv(t,e,n,a,r,i,s,o,u,d,l,c,f){return 0===n?function(t,e,n,a,r,i,s,o,u,d,l,c){const f=e.bindings.length;f>0&&Zf(t,e,0,n),f>1&&Zf(t,e,1,a),f>2&&Zf(t,e,2,r),f>3&&Zf(t,e,3,i),f>4&&Zf(t,e,4,s),f>5&&Zf(t,e,5,o),f>6&&Zf(t,e,6,u),f>7&&Zf(t,e,7,d),f>8&&Zf(t,e,8,l),f>9&&Zf(t,e,9,c)}(t,e,a,r,i,s,o,u,d,l,c,f):function(t,e,n){for(let a=0;a<n.length;a++)Zf(t,e,a,n[a])}(t,e,a),!1}function $v(t,e){if(Ff(t,e.nodeIndex).dirty)throw Af(Vf.createDebugContext(t,e.nodeIndex),`Query ${e.query.id} not dirty`,`Query ${e.query.id} dirty`,0!=(1&t.state))}function Zv(t){if(!(128&t.state)){if(Xv(t,Jv.Destroy),Qv(t,Jv.Destroy),_g(t,131072),t.disposables)for(let e=0;e<t.disposables.length;e++)t.disposables[e]();!function(t){if(!(16&t.state))return;const e=th(t);if(e){const n=e.template._projectedViews;n&&(yt(n,n.indexOf(t)),Vf.dirtyParentQueries(t))}}(t),t.renderer.destroyNode&&function(t){const e=t.def.nodes.length;for(let n=0;n<e;n++){const e=t.def.nodes[n];1&e.flags?t.renderer.destroyNode(Mf(t,n).renderElement):2&e.flags?t.renderer.destroyNode(Pf(t,n).renderText):(67108864&e.flags||134217728&e.flags)&&Ff(t,n).destroy()}}(t),ah(t)&&t.renderer.destroy(),t.state|=128}}const Jv=function(){var t={CreateViewNodes:0,CheckNoChanges:1,CheckNoChangesProjectedViews:2,CheckAndUpdate:3,CheckAndUpdateProjectedViews:4,Destroy:5};return t[t.CreateViewNodes]="CreateViewNodes",t[t.CheckNoChanges]="CheckNoChanges",t[t.CheckNoChangesProjectedViews]="CheckNoChangesProjectedViews",t[t.CheckAndUpdate]="CheckAndUpdate",t[t.CheckAndUpdateProjectedViews]="CheckAndUpdateProjectedViews",t[t.Destroy]="Destroy",t}();function Qv(t,e){const n=t.def;if(33554432&n.nodeFlags)for(let a=0;a<n.nodes.length;a++){const r=n.nodes[a];33554432&r.flags?tx(Mf(t,a).componentView,e):0==(33554432&r.childFlags)&&(a+=r.childCount)}}function Xv(t,e){const n=t.def;if(16777216&n.nodeFlags)for(let a=0;a<n.nodes.length;a++){const r=n.nodes[a];if(16777216&r.flags){const n=Mf(t,a).viewContainer._embeddedViews;for(let t=0;t<n.length;t++)tx(n[t],e)}else 0==(16777216&r.childFlags)&&(a+=r.childCount)}}function tx(t,e){const n=t.state;switch(e){case Jv.CheckNoChanges:0==(128&n)&&(12==(12&n)?Yv(t):64&n&&ex(t,Jv.CheckNoChangesProjectedViews));break;case Jv.CheckNoChangesProjectedViews:0==(128&n)&&(32&n?Yv(t):64&n&&ex(t,e));break;case Jv.CheckAndUpdate:0==(128&n)&&(12==(12&n)?Hv(t):64&n&&ex(t,Jv.CheckAndUpdateProjectedViews));break;case Jv.CheckAndUpdateProjectedViews:0==(128&n)&&(32&n?Hv(t):64&n&&ex(t,e));break;case Jv.Destroy:Zv(t);break;case Jv.CreateViewNodes:Bv(t)}}function ex(t,e){Xv(t,e),Qv(t,e)}function nx(t,e,n,a){if(!(t.def.nodeFlags&e&&t.def.nodeFlags&n))return;const r=t.def.nodes.length;for(let i=0;i<r;i++){const r=t.def.nodes[i];if(r.flags&e&&r.flags&n)switch(Vf.setCurrentNode(t,r.nodeIndex),a){case 0:Ov(t,r);break;case 1:$v(t,r)}r.childFlags&e&&r.childFlags&n||(i+=r.childCount)}}let ax=!1;function rx(){if(ax)return;ax=!0;const t=Wa()?{setCurrentNode:Nx,createRootView:sx,createEmbeddedView:ux,createComponentView:dx,createNgModuleRef:lx,overrideProvider:gx,overrideComponentView:px,clearOverrides:bx,checkAndUpdateView:xx,checkNoChangesView:_x,destroyView:Tx,createDebugContext:(t,e)=>new Px(t,e),handleEvent:Cx,updateDirectives:Rx,updateRenderer:Ax}:{setCurrentNode:()=>{},createRootView:ix,createEmbeddedView:jv,createComponentView:Gv,createNgModuleRef:Jh,overrideProvider:zf,overrideComponentView:zf,clearOverrides:zf,checkAndUpdateView:Hv,checkNoChangesView:Yv,destroyView:Zv,createDebugContext:(t,e)=>new Px(t,e),handleEvent:(t,e,n,a)=>t.def.handleEvent(t,e,n,a),updateDirectives:(t,e)=>t.def.updateDirectives(0===e?yx:vx,t),updateRenderer:(t,e)=>t.def.updateRenderer(0===e?yx:vx,t)};Vf.setCurrentNode=t.setCurrentNode,Vf.createRootView=t.createRootView,Vf.createEmbeddedView=t.createEmbeddedView,Vf.createComponentView=t.createComponentView,Vf.createNgModuleRef=t.createNgModuleRef,Vf.overrideProvider=t.overrideProvider,Vf.overrideComponentView=t.overrideComponentView,Vf.clearOverrides=t.clearOverrides,Vf.checkAndUpdateView=t.checkAndUpdateView,Vf.checkNoChangesView=t.checkNoChangesView,Vf.destroyView=t.destroyView,Vf.resolveDep=yg,Vf.createDebugContext=t.createDebugContext,Vf.handleEvent=t.handleEvent,Vf.updateDirectives=t.updateDirectives,Vf.updateRenderer=t.updateRenderer,Vf.dirtyParentQueries=Tv}function ix(t,e,n,a,r,i){const s=r.injector.get(ef);return Fv(ox(t,r,s,e,n),a,i)}function sx(t,e,n,a,r,i){const s=r.injector.get(ef),o=ox(t,r,new Fx(s),e,n),u=mx(a);return qx(Ox.create,Fv,null,[o,u,i])}function ox(t,e,n,a,r){const i=e.injector.get(vr),s=e.injector.get(Da),o=n.createRenderer(null,null);return{ngModule:e,injector:t,projectableNodes:a,selectorOrNode:r,sanitizer:i,rendererFactory:n,renderer:o,errorHandler:s}}function ux(t,e,n,a){const r=mx(n);return qx(Ox.create,jv,null,[t,e,r,a])}function dx(t,e,n,a){return n=hx.get(e.element.componentProvider.provider.token)||mx(n),qx(Ox.create,Gv,null,[t,e,n,a])}function lx(t,e,n,a){return Jh(t,e,n,function(t){const{hasOverrides:e,hasDeprecatedOverrides:n}=function(t){let e=!1,n=!1;return 0===cx.size?{hasOverrides:e,hasDeprecatedOverrides:n}:(t.providers.forEach(t=>{const a=cx.get(t.token);3840&t.flags&&a&&(e=!0,n=n||a.deprecatedBehavior)}),t.modules.forEach(t=>{fx.forEach((a,r)=>{D(r).providedIn===t&&(e=!0,n=n||a.deprecatedBehavior)})}),{hasOverrides:e,hasDeprecatedOverrides:n})}(t);return e?(function(t){for(let e=0;e<t.providers.length;e++){const a=t.providers[e];n&&(a.flags|=4096);const r=cx.get(a.token);r&&(a.flags=-3841&a.flags|r.flags,a.deps=oh(r.deps),a.value=r.value)}if(fx.size>0){let e=new Set(t.modules);fx.forEach((a,r)=>{if(e.has(D(r).providedIn)){let e={token:r,flags:a.flags|(n?4096:0),deps:oh(a.deps),value:a.value,index:t.providers.length};t.providers.push(e),t.providersByKey[Yf(r)]=e}})}}(t=t.factory(()=>zf)),t):t}(a))}const cx=new Map,fx=new Map,hx=new Map;function gx(t){let e;cx.set(t.token,t),"function"==typeof t.token&&(e=D(t.token))&&"function"==typeof e.providedIn&&fx.set(t.token,t)}function px(t,e){const n=lh(qh(e)),a=lh(n.nodes[0].element.componentView);hx.set(t,a)}function bx(){cx.clear(),fx.clear(),hx.clear()}function mx(t){if(0===cx.size)return t;const e=function(t){const e=[];let n=null;for(let a=0;a<t.nodes.length;a++){const r=t.nodes[a];1&r.flags&&(n=r),n&&3840&r.flags&&cx.has(r.provider.token)&&(e.push(n.nodeIndex),n=null)}return e}(t);if(0===e.length)return t;t=t.factory(()=>zf);for(let a=0;a<e.length;a++)n(t,e[a]);return t;function n(t,e){for(let n=e+1;n<t.nodes.length;n++){const e=t.nodes[n];if(1&e.flags)return;if(3840&e.flags){const t=e.provider,n=cx.get(t.token);n&&(e.flags=-3841&e.flags|n.flags,t.deps=oh(n.deps),t.value=n.value)}}}}function yx(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=t.def.nodes[e];return Uv(t,h,n,a,r,i,s,o,u,d,l,c,f),224&h.flags?jf(t,e).value:void 0}function vx(t,e,n,a,r,i,s,o,u,d,l,c,f){const h=t.def.nodes[e];return Kv(t,h,n,a,r,i,s,o,u,d,l,c,f),224&h.flags?jf(t,e).value:void 0}function xx(t){return qx(Ox.detectChanges,Hv,null,[t])}function _x(t){return qx(Ox.checkNoChanges,Yv,null,[t])}function Tx(t){return qx(Ox.destroy,Zv,null,[t])}const Ox=function(){var t={create:0,detectChanges:1,checkNoChanges:2,destroy:3,handleEvent:4};return t[t.create]="create",t[t.detectChanges]="detectChanges",t[t.checkNoChanges]="checkNoChanges",t[t.destroy]="destroy",t[t.handleEvent]="handleEvent",t}();let wx,Sx,Ix;function Nx(t,e){Sx=t,Ix=e}function Cx(t,e,n,a){return Nx(t,e),qx(Ox.handleEvent,t.def.handleEvent,null,[t,e,n,a])}function Rx(t,e){if(128&t.state)throw Ef(Ox[wx]);return Nx(t,Lx(t,0)),t.def.updateDirectives((function(t,n,a,...r){const i=t.def.nodes[n];return 0===e?kx(t,i,a,r):Ex(t,i,a,r),16384&i.flags&&Nx(t,Lx(t,n)),224&i.flags?jf(t,i.nodeIndex).value:void 0}),t)}function Ax(t,e){if(128&t.state)throw Ef(Ox[wx]);return Nx(t,Dx(t,0)),t.def.updateRenderer((function(t,n,a,...r){const i=t.def.nodes[n];return 0===e?kx(t,i,a,r):Ex(t,i,a,r),3&i.flags&&Nx(t,Dx(t,n)),224&i.flags?jf(t,i.nodeIndex).value:void 0}),t)}function kx(t,e,n,a){if(Uv(t,e,n,...a)){const s=1===n?a[0]:a;if(16384&e.flags){const n={};for(let t=0;t<e.bindings.length;t++){const a=e.bindings[t],o=s[t];8&a.flags&&(n[(r=a.nonMinifiedName,i=void 0,i=r.replace(/[$@]/g,"_"),`ng-reflect-${r=i.replace(Er,(...t)=>"-"+t[1].toLowerCase())}`)]=Lr(o))}const a=e.parent,o=Mf(t,a.nodeIndex).renderElement;if(a.element.name)for(let e in n){const a=n[e];null!=a?t.renderer.setAttribute(o,e,a):t.renderer.removeAttribute(o,e)}else t.renderer.setValue(o,`bindings=${JSON.stringify(n,null,2)}`)}}var r,i}function Ex(t,e,n,a){Kv(t,e,n,...a)}function Lx(t,e){for(let n=e;n<t.def.nodes.length;n++){const e=t.def.nodes[n];if(16384&e.flags&&e.bindings&&e.bindings.length)return n}return null}function Dx(t,e){for(let n=e;n<t.def.nodes.length;n++){const e=t.def.nodes[n];if(3&e.flags&&e.bindings&&e.bindings.length)return n}return null}class Px{constructor(t,e){this.view=t,this.nodeIndex=e,null==e&&(this.nodeIndex=e=0),this.nodeDef=t.def.nodes[e];let n=this.nodeDef,a=t;for(;n&&0==(1&n.flags);)n=n.parent;if(!n)for(;!n&&a;)n=eh(a),a=a.parent;this.elDef=n,this.elView=a}get elOrCompView(){return Mf(this.elView,this.elDef.nodeIndex).componentView||this.view}get injector(){return Uh(this.elView,this.elDef)}get component(){return this.elOrCompView.component}get context(){return this.elOrCompView.context}get providerTokens(){const t=[];if(this.elDef)for(let e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){const n=this.elView.def.nodes[e];20224&n.flags&&t.push(n.provider.token),e+=n.childCount}return t}get references(){const t={};if(this.elDef){Mx(this.elView,this.elDef,t);for(let e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){const n=this.elView.def.nodes[e];20224&n.flags&&Mx(this.elView,n,t),e+=n.childCount}}return t}get componentRenderElement(){const t=function(t){for(;t&&!ah(t);)t=t.parent;return t.parent?Mf(t.parent,eh(t).nodeIndex):null}(this.elOrCompView);return t?t.renderElement:void 0}get renderNode(){return 2&this.nodeDef.flags?nh(this.view,this.nodeDef):nh(this.elView,this.elDef)}logError(t,...e){let n,a;2&this.nodeDef.flags?(n=this.view.def,a=this.nodeDef.nodeIndex):(n=this.elView.def,a=this.elDef.nodeIndex);const r=function(t,e){let n=-1;for(let a=0;a<=e;a++)3&t.nodes[a].flags&&n++;return n}(n,a);let i=-1;n.factory(()=>(i++,i===r?t.error.bind(t,...e):zf)),i<r&&(t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),t.error(...e))}}function Mx(t,e,n){for(let a in e.references)n[a]=Sv(t,e,e.references[a])}function qx(t,e,n,a){const r=wx,i=Sx,s=Ix;try{wx=t;const o=e.apply(n,a);return Sx=i,Ix=s,wx=r,o}catch(o){if(ka(o)||!Sx)throw o;throw function(t,e){return t instanceof Error||(t=new Error(t.toString())),kf(t,e),t}(o,jx())}}function jx(){return Sx?new Px(Sx,Ix):null}class Fx{constructor(t){this.delegate=t}createRenderer(t,e){return new Gx(this.delegate.createRenderer(t,e))}begin(){this.delegate.begin&&this.delegate.begin()}end(){this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.delegate.whenRenderingDone?this.delegate.whenRenderingDone():Promise.resolve(null)}}class Gx{constructor(t){this.delegate=t,this.debugContextFactory=jx,this.data=this.delegate.data}createDebugContext(t){return this.debugContextFactory(t)}destroyNode(t){const e=rv(t);!function(t){nv.delete(t.nativeNode)}(e),e instanceof Uy&&(e.listeners.length=0),this.delegate.destroyNode&&this.delegate.destroyNode(t)}destroy(){this.delegate.destroy()}createElement(t,e){const n=this.delegate.createElement(t,e),a=this.createDebugContext(n);if(a){const e=new Wy(n,null,a);e.name=t,iv(e)}return n}createComment(t){const e=this.delegate.createComment(t),n=this.createDebugContext(e);return n&&iv(new Uy(e,null,n)),e}createText(t){const e=this.delegate.createText(t),n=this.createDebugContext(e);return n&&iv(new Uy(e,null,n)),e}appendChild(t,e){const n=rv(t),a=rv(e);n&&a&&n instanceof Wy&&n.addChild(a),this.delegate.appendChild(t,e)}insertBefore(t,e,n){const a=rv(t),r=rv(e),i=rv(n);a&&r&&a instanceof Wy&&a.insertBefore(i,r),this.delegate.insertBefore(t,e,n)}removeChild(t,e){const n=rv(t),a=rv(e);n&&a&&n instanceof Wy&&n.removeChild(a),this.delegate.removeChild(t,e)}selectRootElement(t,e){const n=this.delegate.selectRootElement(t,e),a=jx();return a&&iv(new Wy(n,null,a)),n}setAttribute(t,e,n,a){const r=rv(t);r&&r instanceof Wy&&(r.attributes[a?a+":"+e:e]=n),this.delegate.setAttribute(t,e,n,a)}removeAttribute(t,e,n){const a=rv(t);a&&a instanceof Wy&&(a.attributes[n?n+":"+e:e]=null),this.delegate.removeAttribute(t,e,n)}addClass(t,e){const n=rv(t);n&&n instanceof Wy&&(n.classes[e]=!0),this.delegate.addClass(t,e)}removeClass(t,e){const n=rv(t);n&&n instanceof Wy&&(n.classes[e]=!1),this.delegate.removeClass(t,e)}setStyle(t,e,n,a){const r=rv(t);r&&r instanceof Wy&&(r.styles[e]=n),this.delegate.setStyle(t,e,n,a)}removeStyle(t,e,n){const a=rv(t);a&&a instanceof Wy&&(a.styles[e]=null),this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){const a=rv(t);a&&a instanceof Wy&&(a.properties[e]=n),this.delegate.setProperty(t,e,n)}listen(t,e,n){if("string"!=typeof t){const a=rv(t);a&&a.listeners.push(new Hy(e,n))}return this.delegate.listen(t,e,n)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setValue(t,e){return this.delegate.setValue(t,e)}}function Vx(t){return rx(),Vf.overrideProvider(t)}function zx(t,e){return rx(),Vf.overrideComponentView(t,e)}function Bx(){return rx(),Vf.clearOverrides()}function Yx(t,e,n){return new Hx(t,e,n)}class Hx extends ht{constructor(t,e,n){super(),this.moduleType=t,this._bootstrapComponents=e,this._ngModuleDefFactory=n}create(t){rx();const e=function(t){const e=Array.from(t.providers),n=Array.from(t.modules),a={};for(const r in t.providersByKey)a[r]=t.providersByKey[r];return{factory:t.factory,isRoot:t.isRoot,providers:e,modules:n,providersByKey:a}}(lh(this._ngModuleDefFactory));return Vf.createNgModuleRef(this.moduleType,t||Bo.NULL,this._bootstrapComponents,e)}}},"8YOa":function(t,e,n){var a=n("0BK2"),r=n("hh1v"),i=n("UTVS"),s=n("m/L8").f,o=n("kOOl"),u=n("uy83"),d=o("meta"),l=0,c=Object.isExtensible||function(){return!0},f=function(t){s(t,d,{value:{objectID:"O"+ ++l,weakData:{}}})},h=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,d)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[d].objectID},getWeakData:function(t,e){if(!i(t,d)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[d].weakData},onFreeze:function(t){return u&&h.REQUIRED&&c(t)&&!i(t,d)&&f(t),t}};a[d]=!0},"8j5A":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="it-IT">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Attiva/Disattiva barra di navigazione</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dashboard</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Servizi</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configurazione</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mappa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Moduli Manager</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Log</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blocco</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Immagini</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Esecuzione della copia speculare</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI </target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>File system</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Utenti</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartimenti</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Selezionare una lingua</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Caricamento pannello dati in corso...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Selezione ora di Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Impostazioni di ripristino</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Indietro</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Non è stato possibile caricare i dati.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>selezionato</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>trovato</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>totale</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nome</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descrizione</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descrizione lunga</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Default</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Default del daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valori</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Salva</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visualizzatore mappa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Caricamento in corso...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nome host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Questo campo è obbligatorio.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sì.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Annulla</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Chiudi</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Elenco degli host</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Prestazioni complessive</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nessuna voce trovata</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Log dei cluster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Log delle revisioni</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Caricamento della configurazione in corso...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Impossibile caricare la configurazione.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Modifica modulo Manager</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Il valore immesso non è un UUID valido, ad es.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Il valore immesso deve essere un indirizzo IP valido.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Il valore immesso deve essere un numero.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Il valore immesso deve essere un numero o un decimale.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aggiorna</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID cluster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>mappa mon modificata</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>epoca mappa mon</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con richiesta</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon richiesto</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Nel quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Non nel quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Aggiungi</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funzioni</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flag OSD in tutto il cluster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Invia</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avanzate...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorità di recupero OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorità</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizza valori di priorità</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Questo campo è obbligatorio.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Il valore deve essere compreso tra 0 e 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ripesa</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Elenco degli OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valore</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Modifica</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Elimina</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiche</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Client</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Può accedere qualsiasi client</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Indirizzi</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo obbligatorio</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Deve contenere uno o più valori delimitati da virgole</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Ad esempio:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo di accesso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Esegui squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Aggiungi client</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Nessun cluster disponibile --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Selezionare il cluster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Aggiungi daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend di storage</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Nessun pool di dati disponibile --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Selezionare il backend di storage --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Utente Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Nessun utente disponibile --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Selezionare l\'utente Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID utente CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Nessun client disponibile --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Selezionare il client Cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nome CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etichetta di sicurezza</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Abilita etichetta di sicurezza</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Percorso CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Il percorso deve iniziare con una barra \'/\' e può essere seguito da una parola</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Viene creata la nuova directory</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Percorso</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Il percorso può essere solo una singola barra \'/\' o parola</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Viene creato il nuovo compartimento</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocollo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>I client non possono montare le sottodirectory (ad es. se Tag = foo, il client non può montare foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Utilizzando diverse opzioni Tag, è possibile esportare più volte lo stesso percorso.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Utilizzando diverse opzioni Pseudo, è possibile esportare più volte lo stesso percorso.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Nessun tipo di accesso disponibile --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Selezionare il tipo di accesso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Nessuno squash disponibile --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>--Selezionare il tipo di squash dell\'ID utente da eseguire --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocollo di trasporto</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Benvenuto in Ceph.</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nome utente necessario</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Password richiesta</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Login</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Spiacenti, l\'utente non esiste in Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Non consentito</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Spiacenti, non è consentito visualizzare ciò che si stava cercando.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configurazione RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Rimuovere il valore della configurazione locale. Al suo posto verrà ereditato e utilizzato il valore della configurazione superiore.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Il valore minimo è 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Elenco dei pool</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Il nome può contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Il nome del profilo del codice di cancellazione selezionato è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Porzioni di dati (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Deve essere uguale o maggiore di 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Porzioni di codice (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Deve essere uguale o maggiore di 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Stima durata (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Località (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Dominio di errore Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Località Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nessuno</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Tecnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Dimensione del pacchetto</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Radice Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe dispositivo Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>qualsiasi</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Directory</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nome...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Il nome del pool Ceph scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo di pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Selezionare un tipo di pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Gruppi di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>È necessario almeno un gruppo di posizionamento.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Il cluster non può gestire questo numero eccessivo di gruppi di posizionamento. Ricalcolare il numero di gruppi di posizionamento necessari.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Guida per il calcolo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Dimensioni replicate</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flag</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sovrascritture EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Applicazioni</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profilo del codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Nessun profilo del codice di cancellazione disponibile --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Selezionare un profilo del codice di cancellazione --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Set di regole Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Selezionare una regola Crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regola Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Passaggi Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compressione</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modalità</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Nessun algoritmo di compressione della cancellazione disponibile --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Dimensioni minime del blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>ad es. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Il valore deve essere maggiore di 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Dimensioni massime del blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>ad es. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Il valore deve essere maggiore delle dimensioni minime del blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rapporto</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rapporto di compressione</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Il valore deve essere compreso tra 0,0 e 1,0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ad es. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Dettagli</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Dettagli sulle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Dettagli livelli cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Sposta un\'immagine nel cestino</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protezione scade alle</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NON PROTETTO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato data errato. Utilizzare "AAAA-MM-GG HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protezione è già scaduta. Selezionare una data futura o lasciarla vuota.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Sposta immagine</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Panoramica</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinazioni</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticazione rilevazione</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Utente</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n              possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Password</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Utente reciproco</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Password reciproca</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informazioni disponibili:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinazioni iSCSI non disponibili</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool di dati</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Creato</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Dimensioni</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Oggetti</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Dimensioni oggetto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Soggetto al provisioning</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/D</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Totale soggetto al provisioning</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unità di striping</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Conteggio di striping</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Superiore</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefisso nome blocco</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Ordine</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshot</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Immagine</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Questa impostazione sostituisce il valore globale</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globale</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Questo è il valore globale. Nessun valore di opzione è stato impostato per questa immagine.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' e \'@\' non sono consentiti.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Nessun pool rbd disponibile --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Selezionare un pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Utilizza un pool di dati dedicato</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool di dati</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool dedicato che archivia i dati oggetto dell\'RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>È necessario aumentare le dimensioni.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avanzate</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Striping</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unità di striping</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Selezionare l\'unità di striping --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Questo campo è obbligatorio perché è specificato il numero di striping.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>L\'unità di striping è maggiore delle dimensioni dell\'oggetto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Numero di striping</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Questo campo è obbligatorio perché è specificata l\'unità di striping.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Il numero di striping deve essere maggiore di 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Si sta per eseguire il rollback</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Elimina definitivamente contenuto del cestino</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tutto</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nome pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Ripristina immagine</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Per ripristinare,</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>digitare il nuovo nome dell\'immagine e fare clic su</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nuovo nome</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Scaduto alle</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protetto fino alle</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Di solito non è necessario modificare questi parametri rispetto ai valori di default.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Impostazioni</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Conferma</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Impostazioni avanzate</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN di destinazione</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN contiene un modello errato.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Ad esempio: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Ulteriori informazioni</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Questa destinazione contiene impostazioni avanzate modificate.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portali</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Aggiungi portale</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Questa immagine contiene impostazioni modificate.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Aggiungi immagine</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticazione ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniziatori</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniziatore</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN client</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>L\'IQN dell\'iniziatore deve essere univoco.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n                        possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>L\'iniziatore appartiene a un gruppo. Le immagini verranno configurate nel gruppo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nessun elemento aggiunto.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Aggiungi iniziatore</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Gruppi</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Gruppo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Aggiungi gruppo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Cestino</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemi</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizzazione in corso</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Pronto</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Modifica modalità speculare per il pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>È necessario rimuovere i cluster peer prima di disabilitare la copia speculare.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nome cluster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Il nome del cluster non è valido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>L\'ID CephX non è valido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Indirizzi dei monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Indirizzi con valori delimitati da virgole...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>L\'indirizzo del monitor non è valido.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Chiave CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Chiave con codifica Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La chiave CephX deve essere con codifica Base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Contatori delle prestazioni non disponibili</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Elenco dei daemon</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contatori delle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Caricamento dati compartimento in corso...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Il valore non è valido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Il nome scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Proprietario</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Selezionare un utente --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Abilitato</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo di indice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regola di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Contrassegno</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Contrassegno massimo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versione</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versione master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Ora di modifica</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Gruppo di zone</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Quota compartimenti</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Dimensioni massime</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Illimitato</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Numero massimo di oggetti</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nome utente</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Selezionare un nome utente --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Generazione automatica chiave</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Chiave di accesso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Chiave segreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nome completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Indirizzo e-mail</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Sospeso</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Numero massimo di compartimenti</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Sottoutenti</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Capacità</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Quota utenti</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostra</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Chiavi</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Selezionare un tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Autorizzazione</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Selezionare un\'autorizzazione --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Sottoutente</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>L\'ID del sottoutente scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lettura, scrittura</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>pieno</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Chiave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Generazione automatica segreto</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Caricamento dati utente in corso...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Impossibile caricare i dati utente.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>L\'ID utente scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Non è un indirizzo e-mail valido.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>L\'indirizzo e-mail scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Numero max. di compartimenti</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Disabilitato</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizzato</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Chiave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Non esistono sottoutenti.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Non esistono chiavi.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Non esistono capacità.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Dimensioni illimitate</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Dimensione max.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Oggetti illimitati</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Numero max. di oggetti</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Il valore immesso deve essere &gt;= a 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descrizione...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Autorizzazioni</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Ruoli</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Conferma password</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>La password di conferma non corrisponde alla password.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>E-mail non valida.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Si stanno per rimuovere le autorizzazioni di "lettura/aggiornamento utente" dal proprio utente.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Se si continua, non è più possibile aggiungere o rimuovere ruoli da qualsiasi utente.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Continuare?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Guida</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentazione</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Informazioni su</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Impostazioni del dashboard</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestione utenti</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Utente connesso</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Disconnetti</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attributi (mappa OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadati non disponibili</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadati</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contatore delle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Scritture</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Letture</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Istogramma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valori attuali</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origine</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Livello</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Può essere aggiornato al runtime (modificabile)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tag</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valori di enumerazione</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Vedere anche</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Stato del cluster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manager Daemon</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Server di metadati</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI Gateway</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS client</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Velocità effettiva client</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lettura/scrittura client</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Velocità effettiva di recupero</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Pulitura</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Prestazioni</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacità di base</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Gruppi di posizionamento per OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Stato gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacità</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Classificazioni</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Attuale</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticazione rilevazione aggiornata</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Non sono disponibili pool.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Non sono disponibili immagini.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Non sono disponibili immagini. Assicurarsi di aggiungere un\'immagine alla destinazione.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Non sono disponibili iniziatori. Assicurarsi di aggiungere un iniziatore alla destinazione.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destinazione</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Byte letti</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Byte scritti</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operazioni di lettura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operazioni di scrittura</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O da</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Istanza</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Avanzamento</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Modalità di modifica</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Aggiungi peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Modifica peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Elimina peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Sequenza iniziale</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Locale</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Remoto</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>peer copia speculare</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Chiave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Appiattimento profondo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Su strati</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Blocco esclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mappa oggetti (richiede il blocco escluso)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journaling (richiede il blocco esclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NON PROTETTO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Esegui rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Eliminato alle</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stato</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versione</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>root</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemon in standby</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Classificazione</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Task</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentry</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Utilizzo</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aggiornato</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>È possibile aggiornare il valore al runtime.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>I daemon/client non estraggono questo valore dal\n      database della configurazione di monitoraggio. Non è consentito impostare questa opzione tramite \'ceph config\n      set ...\'. È necessario configurare questa opzione tramite ceph.conf o dalla\n      riga di comando.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>L\'opzione diventa attiva solo all\'avvio del daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>L\'opzione interessa solo la creazione del cluster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>L\'opzione interessa solo la creazione del daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Servizio</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valore attuale</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Modificabile</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Abilita</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Disabilita</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Riconnessione in corso. Attendere.</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Indirizzo pubblico</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessioni aperte</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Nessuno in entrata</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Gli OSD che sono stati contrassegnati come disattivi in precedenza non verranno contrassegnati nuovamente come attivi all\'avvio</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Nessuno in uscita</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Gli OSD non verranno disattivati automaticamente dopo l\'intervallo configurato</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Nessuno attivo</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Non è consentito l\'avvio degli OSD</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Nessuno disattivo</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>I rapporti di errore degli OSD vengono ignorati in modo che i monitor non disattivino gli OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Sospendi</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Sospende le operazioni di lettura e scrittura</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nessuna pulitura</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Pulitura disabilitata</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nessun pulitura approfondita</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Pulitura approfondita disabilitata</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Nessuna operazione di recupero</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Recupero dei gruppi di posizionamento sospeso</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Nessun recupero</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Recupero dei gruppi di posizionamento sospeso</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Ordinamento bitwise</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usa ordinamento bitwise</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdir eliminate definitivamente</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Gli OSD contengono set di snap convertiti</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Eliminazioni recuperi</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Eliminazioni eseguite durante il recupero invece del peering</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite rigido log gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Inserisce un limite rigido alla lunghezza del log del gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flag OSD aggiornati</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>esterno</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>interno</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>in basso</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Contrassegna</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perso</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>contrassegnato come perso</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>elimina</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Gruppi di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Byte letti</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Byte scritti</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operazioni di lettura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operazioni di scrittura</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Numero max di recuperi informazioni</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Numero max di recuperi attivi</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Avvio singolo numero max di recuperi</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Sospensione recupero</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Lavoro</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravità</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Avviato</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Utilizzato</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispon.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Pulisci</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>In funzione</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Avviso</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Sconosciuto</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>su</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>nessun file system</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>attivo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/d</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon attivo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target> quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Il servizio NFS Ganesha non è configurato.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Trasporto</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Utente CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>File system CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(ereditato dalla configurazione globale)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>importato dalla configurazione globale</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Selezionare il tipo di squash dell\'ID utente che viene eseguito --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Non vi sono daemon disponibili.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modalità cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Numero minimo di giorni per la rimozione</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Numero minimo di giorni per la cancellazione</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Numero max di byte di destinazione</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Numero max di oggetti di destinazione</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Non sono state aggiunte applicazioni.</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Raggiunto il limite di applicazioni</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Un pool può contenere solo fino a quattro definizioni delle applicazioni.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caratteri consentiti \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La lunghezza massima è di 128 caratteri</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtra o aggiungi applicazioni</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Aggiungi applicazione</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profilo del codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Dimensioni della replica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Ultima modifica</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profilo con codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Set di regole Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartimento</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartimenti</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>utente</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>utenti</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Ambito</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lettura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Crea</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Ruolo di sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Aggiorna utente</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continua</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Si è stati automaticamente disconnessi perché i ruoli sono stati modificati.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Ogni oggetto è suddiviso in porzioni di dati, ciascuna delle quali è memorizzata su un diverso OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcola le porzioni di codice relative a ciascun oggetto e le memorizza su diversi OSD.\n      Il numero di porzioni di codice è anche il numero degli OSD che è possibile disattivare senza perdere i dati.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Il plugin jerasure è il plugin più generico e flessibile,\n          ed è anche il plugin di default dei pool con codice di cancellazione di Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La tecnica più flessibile è reed_sol_van: è sufficiente impostare k\n          ed m. La tecnica cauchy_good può essere più rapida ma occorre selezionare attentamente la dimensione del\n          pacchetto. reed_sol_r6_op, liberation, blaum_roth, liber8tion sono tutti equivalenti a RAID6,\n          nel senso che è possibile configurarli solo con m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>La codifica viene eseguita su pacchetti di dimensioni in byte, uno alla volta.\n          È difficile scegliere la dimensione del pacchetto corretta.\n          La documentazione su jerasure fornisce informazioni esaustive su questo argomento.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Con il plugin di jerasure, quando un oggetto con codice di cancellazione viene memorizzato su\n          più OSD, il recupero della perdita di un OSD richiede la lettura di tutti gli altri.\n          Ad esempio, se jerasure è configurato con k=8 e m=4, la perdita di un OSD richiede la lettura\n          degli altri undici per il ripristino.\n\n          Il plugin del codice di cancellazione lrc crea porzioni di parità locali che è possibile recuperare utilizzando un\n          minor numero di OSD. Ad esempio, se lrc è configurato con k=8, m=4 e l=4, crea\n          una porzione di parità aggiuntiva ogni quattro OSD. Quando si perde un singolo OSD, è possibile\n          recuperarlo solo con quattro OSD invece che con undici.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Raggruppa le porzioni di codice e dati in set di località dimensione. Ad esempio,\n          per k=4 e m=2, se località=3 vengono creati due gruppi su tre. È possibile recuperare ciascun set\n          senza leggere le porzioni di un altro set.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Il tipo di compartimento Crush in cui viene memorizzato ciascun set di porzioni definito\n          dall\'utente. Ad esempio, se è impostato su rack, ciascun gruppo di porzioni viene\n          posizionato in un diverso rack. Viene utilizzato per creare un passaggio della regola CRUSH come il passaggio choose\n          rack. Se non è impostato, il raggruppamento non viene eseguito.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Il plugin ISA incapsula la libreria ISA. Viene eseguito solo su processori Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Il plugin ISA è disponibile in due formati Reed Solomon.\n          Se è impostato reed_sol_van, il formato è Vandermonde, se è impostato cauchy, il formato è Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Il plugin shec incapsula la libreria SHEC multipla.\n          Consente a Ceph di recuperare i dati in modo più efficiente rispetto ai codici Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Il numero di compartimenti di parità, ciascuno dei quali include i singoli compartimenti di dati\n          nell\'intervallo di calcolo. Il numero viene utilizzato come strumento di stima della durabilità. Ad esempio, se c=2,\n          è possibile disattivare 2 OSD senza perdere i dati.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Il nome del compartimento Crush utilizzato per il primo passaggio della regola CRUSH.\n      Ad esempio il passaggio take default.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Assicurarsi che non esistano due porzioni in un compartimento con lo stesso dominio\n      di errore. Ad esempio, se il dominio di errore è l\'host, non verranno memorizzate due porzioni sullo stesso\n      host. Viene utilizzato per creare un passaggio della regola CRUSH come passaggio chooseleaf host.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Limitare il posizionamento ai dispositivi di una classe specifica\n      (ad es. ssd o hdd) usando i nomi delle classi di dispositivi Crush nella mappa CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Impostare il nome della directory da cui viene caricato il plugin del codice di cancellazione.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Consente tutte le operazioni</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Consente solo le operazioni che non modificano il server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Non consente operazioni di lettura o scrittura, ma consente qualsiasi altra operazione</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Non consente operazioni di lettura o scrittura o qualsiasi operazione che modifichi gli attributi dei file o il contenuto della directory</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Non consente alcun accesso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Selezionare la priorità --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Bassa</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informazioni</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Ultimi 5 minuti</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Ultimi 15 minuti</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Ultimi 30 minuti</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Ultima ora (Default)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Ultime 3 ore</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Ultime 6 ore</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Ultime 12 ore</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Ultime 24 ore</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ieri</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Oggi</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Fino a oggi</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Giorno prima di ieri</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Ultimi 2 giorni</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Questo giorno della scorsa settimana</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Settimana precedente</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Questa settimana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Fino a questa settimana</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Ultimi 7 giorni</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Mese precedente</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Questo mese</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Fino a questo mese</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Ultimi 30 giorni</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Ultimi 90 giorni</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Ultimi 6 mesi</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Ultimo anno</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Anno precedente</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Quest\'anno</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Fino a quest\'anno</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Ultimi 2 anni</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Ultimi 5 anni</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nessun elemento selezionato.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Deselezionare l\'elemento per selezionare di nuovo</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target> Raggiunto il limite per la selezione</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtra tag</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Aggiungi badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Non vi sono elementi disponibili.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clona</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copia</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Pulitura approfondita</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Eliminazione definitiva</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Appiattisci</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Declassa</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Attiva</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Contrassegna come perso</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Disattiva</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteggi</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Rinomina</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Ripristina</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Sposta nel cestino</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Rimuovi protezione</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Eliminato</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonato</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiato</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Appiattito</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Ripristinato</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback eseguito</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sì</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>No</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualità di servizio</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite di BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Il limite desiderato di byte I/O al secondo.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite di IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Il limite desiderato di operazioni I/O al secondo.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite BPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Il limite desiderato dei byte letti al secondo.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite di IOPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Il limite desiderato di operazioni di lettura al secondo.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite di BPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Il limite desiderato di byte scritti al secondo.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite di IOPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Il limite desiderato di operazioni di scrittura al secondo.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Burst BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Il limite di burst desiderato dei byte di I/O.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Burst IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di I/O.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Burst BPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Il limite di burst desiderato dei byte letti.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Burst IOPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di lettura.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Burst BPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Il limite di burst desiderato dei byte scritti.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Burst di IOPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di scrittura.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>In esecuzione</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>esegui</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Eseguito</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>task sconosciuto</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Creazione in corso</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>crea</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aggiornamento in corso</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aggiorna</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Eliminazione in corso</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonazione in corso</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clona</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copia in corso</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copia</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Appiattimento</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>appiattisci</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Rollback in corso</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Spostamento in corso</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>sposta</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Spostato</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Impossibile trovare l\'immagine.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Ripristino in corso</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>ripristina</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Eliminazione in corso</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>tutti i pool</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossibile disabilitare l\'esecuzione della copia speculare perché contiene un peer.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"8mBD":function(t,e,n){!function(t){"use strict";t.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},"8xTl":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t){return a.upperFirst(t)}}},"9/5/":function(t,e){var n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt,o="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,d=o||u||Function("return this")(),l=Object.prototype.toString,c=Math.max,f=Math.min,h=function(){return d.Date.now()};function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function p(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==l.call(t)}(t))return NaN;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var o=r.test(t);return o||i.test(t)?s(t.slice(2),o?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var a,r,i,s,o,u,d=0,l=!1,b=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=a,i=r;return a=r=void 0,d=e,s=t.apply(i,n)}function v(t){return d=t,o=setTimeout(_,e),l?y(t):s}function x(t){var n=t-u;return void 0===u||n>=e||n<0||b&&t-d>=i}function _(){var t=h();if(x(t))return T(t);o=setTimeout(_,function(t){var n=e-(t-u);return b?f(n,i-(t-d)):n}(t))}function T(t){return o=void 0,m&&a?y(t):(a=r=void 0,s)}function O(){var t=h(),n=x(t);if(a=arguments,r=this,u=t,n){if(void 0===o)return v(u);if(b)return o=setTimeout(_,e),y(u)}return void 0===o&&(o=setTimeout(_,e)),s}return e=p(e)||0,g(n)&&(l=!!n.leading,i=(b="maxWait"in n)?c(p(n.maxWait)||0,e):i,m="trailing"in n?!!n.trailing:m),O.cancel=function(){void 0!==o&&clearTimeout(o),d=0,a=u=r=o=void 0},O.flush=function(){return void 0===o?s:T(h())},O}},"93I0":function(t,e,n){var a=n("VpIT"),r=n("kOOl"),i=a("keys");t.exports=function(t){return i[t]||(i[t]=r(t))}},"978R":function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return l})),n.d(e,"c",(function(){return f})),n.d(e,"d",(function(){return h}));var a=n("8Y7J"),r=n("hpHm"),i=n("mrSG"),s=n("z/SZ"),o=n("2uy1"),u=n("PqYM");class d{constructor(){this.adaptivePosition=!0,this.placement="top",this.triggers="hover focus",this.delay=0}}class l{constructor(t){Object.assign(this,t)}get isBs3(){return Object(r.d)()}ngAfterViewInit(){this.classMap={in:!1,fade:!1},this.classMap[this.placement]=!0,this.classMap[`tooltip-${this.placement}`]=!0,this.classMap.in=!0,this.animation&&(this.classMap.fade=!0),this.containerClass&&(this.classMap[this.containerClass]=!0)}}let c=0,f=(()=>{class t{constructor(t,e,n,r,i,s){this._elementRef=r,this._renderer=i,this._positionService=s,this.tooltipId=c++,this.tooltipChange=new a.EventEmitter,this.containerClass="",this.tooltipAnimation=!0,this.tooltipFadeDuration=150,this.tooltipStateChanged=new a.EventEmitter,this._tooltip=e.createLoader(this._elementRef,t,this._renderer).provide({provide:d,useValue:n}),Object.assign(this,n),this.onShown=this._tooltip.onShown,this.onHidden=this._tooltip.onHidden}get isOpen(){return this._tooltip.isShown}set isOpen(t){t?this.show():this.hide()}set htmlContent(t){Object(r.i)("tooltipHtml was deprecated, please use `tooltip` instead"),this.tooltip=t}set _placement(t){Object(r.i)("tooltipPlacement was deprecated, please use `placement` instead"),this.placement=t}set _isOpen(t){Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen=t}get _isOpen(){return Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen}set _enable(t){Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled=!t}get _enable(){return Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled}set _appendToBody(t){Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),this.container=t?"body":this.container}get _appendToBody(){return Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),"body"===this.container}set _popupClass(t){Object(r.i)("tooltipClass deprecated")}set _tooltipContext(t){Object(r.i)("tooltipContext deprecated")}set _tooltipPopupDelay(t){Object(r.i)("tooltipPopupDelay is deprecated, use `delay` instead"),this.delay=t}get _tooltipTrigger(){return Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers}set _tooltipTrigger(t){Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers=(t||"").toString()}ngOnInit(){this._tooltip.listen({triggers:this.triggers,show:()=>this.show()}),this.tooltipChange.subscribe(t=>{t||this._tooltip.hide()}),this.onShown.subscribe(()=>{this.setAriaDescribedBy()}),this.onHidden.subscribe(()=>{this.setAriaDescribedBy()})}setAriaDescribedBy(){this._ariaDescribedby=this.isOpen?`tooltip-${this.tooltipId}`:null,this._ariaDescribedby?this._renderer.setAttribute(this._elementRef.nativeElement,"aria-describedby",this._ariaDescribedby):this._renderer.removeAttribute(this._elementRef.nativeElement,"aria-describedby")}toggle(){if(this.isOpen)return this.hide();this.show()}show(){if(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),this.isOpen||this.isDisabled||this._delayTimeoutId||!this.tooltip)return;const t=()=>{this._delayTimeoutId&&(this._delayTimeoutId=void 0),this._tooltip.attach(l).to(this.container).position({attachment:this.placement}).show({content:this.tooltip,placement:this.placement,containerClass:this.containerClass,id:`tooltip-${this.tooltipId}`})},e=()=>{this._tooltipCancelShowFn&&this._tooltipCancelShowFn()};if(this.delay){const n=Object(u.a)(this.delay).subscribe(()=>{t(),e()});this.triggers&&Object(r.f)(this.triggers).forEach(t=>{this._tooltipCancelShowFn=this._renderer.listen(this._elementRef.nativeElement,t.close,()=>{n.unsubscribe(),e()})})}else t()}hide(){this._delayTimeoutId&&(clearTimeout(this._delayTimeoutId),this._delayTimeoutId=void 0),this._tooltip.isShown&&(this._tooltip.instance.classMap.in=!1,setTimeout(()=>{this._tooltip.hide()},this.tooltipFadeDuration))}ngOnDestroy(){this._tooltip.dispose(),this.tooltipChange.unsubscribe(),this.onShown.unsubscribe(),this.onHidden.unsubscribe()}}return Object(i.__decorate)([Object(r.a)(),Object(i.__metadata)("design:type",Object)],t.prototype,"tooltip",void 0),t})();class h{static forRoot(){return{ngModule:h,providers:[d,s.a,o.a]}}}},"9Nap":function(t,e,n){var a=n("/9aa");t.exports=function(t){if("string"==typeof t||a(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}},"9Xeq":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},"9d/t":function(t,e,n){var a=n("AO7/"),r=n("xrYK"),i=n("tiKp")("toStringTag"),s="Arguments"==r(function(){return arguments}());t.exports=a?r:function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),i))?n:s?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},"9ggG":function(t,e,n){var a=n("Z0cm"),r=n("/9aa"),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;t.exports=function(t,e){if(a(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!r(t))||s.test(t)||!i.test(t)||null!=e&&t in Object(e)}},"9nlD":function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var a=n("LvDl"),r=n("2Vo4"),i=n("XNiG"),s=n("mtw6"),o=n("G1I9"),u=n("a0VL"),d=n("ufoC"),l=n("8Y7J"),c=n("EApP");let f=(()=>{class t{constructor(t,e,n){this.toastr=t,this.taskMessageService=e,this.cdDatePipe=n,this.hideToasties=!1,this.dataSource=new r.a([]),this.data$=this.dataSource.asObservable(),this.sidebarSubject=new i.a,this.queued=[],this.KEY="cdNotifications";const s=localStorage.getItem(this.KEY);let u=[];a.isString(s)&&(u=JSON.parse(s,(t,e)=>a.isPlainObject(e)?a.assign(new o.a,e):e)),this.dataSource.next(u)}removeAll(){localStorage.removeItem(this.KEY),this.dataSource.next([])}remove(t){const e=this.dataSource.getValue();e.splice(t,1),this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))}save(t){const e=this.dataSource.getValue();for(e.push(t),e.sort((t,e)=>t.timestamp>e.timestamp?-1:1);e.length>10;)e.pop();this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))}show(t,e,n,r,i){return window.setTimeout(()=>{let s;s=a.isFunction(t)?t():a.isObject(t)?t:new o.b(t,e,n,r,i),this.queueToShow(s)},10)}queueToShow(t){this.cancel(this.queuedTimeoutId),this.queued.find(e=>a.isEqual(e,t))||this.queued.push(t),this.queuedTimeoutId=window.setTimeout(()=>{this.showQueued()},500)}showQueued(){this.getUnifiedTitleQueue().forEach(t=>{const e=new o.a(t);e.isFinishedTask||this.save(e),this.showToasty(e)})}getUnifiedTitleQueue(){return Object.values(this.queueShiftByTitle()).map(t=>{const e=t[0];return t.length>1&&(e.message="<ul>"+t.map(t=>`<li>${t.message}</li>`).join("")+"</ul>"),e})}queueShiftByTitle(){const t={};let e;for(;e=this.queued.shift();)t[e.title]||(t[e.title]=[]),t[e.title].push(e);return t}showToasty(t){this.hideToasties||this.toastr[["error","info","success"][t.type]]((t.message?t.message+"<br>":"")+this.renderTimeAndApplicationHtml(t),t.title,t.options)}renderTimeAndApplicationHtml(t){return`<small class="date">${this.cdDatePipe.transform(t.timestamp)}</small><i class="float-right custom-icon ${t.applicationClass}" title="${t.application}"></i>`}notifyTask(t,e=!0){const n=this.finishedTaskToNotification(t,e);return n.isFinishedTask=!0,this.show(n)}finishedTaskToNotification(t,e=!0){let n;return n=t.success&&e?new o.b(s.a.success,this.taskMessageService.getSuccessTitle(t)):new o.b(s.a.error,this.taskMessageService.getErrorTitle(t),this.taskMessageService.getErrorMessage(t)),n.isFinishedTask=!0,n}cancel(t){window.clearTimeout(t)}suspendToasties(t){this.hideToasties=t}toggleSidebar(t=!1){this.sidebarSubject.next(t)}}return t.ngInjectableDef=l["ɵɵdefineInjectable"]({factory:function(){return new t(l["ɵɵinject"](c.j),l["ɵɵinject"](d.a),l["ɵɵinject"](u.a))},token:t,providedIn:"root"}),t})()},"9ppp":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})()},"9rRi":function(t,e,n){!function(t){"use strict";t.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","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àireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè 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ìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n("wd/R"))},"A+xa":function(t,e,n){!function(t){"use strict";t.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(t){return t+(/сехет$/i.exec(t)?"рен":/ҫул$/i.exec(t)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n("wd/R"))},A2ZE:function(t,e,n){var a=n("HAuM");t.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},A90E:function(t,e,n){var a=n("6sVZ"),r=n("V6Ve"),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return r(t);var e=[];for(var n in Object(t))i.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"AO7/":function(t,e,n){var a={};a[n("tiKp")("toStringTag")]="z",t.exports="[object z]"===String(a)},AP2z:function(t,e,n){var a=n("nmnc"),r=Object.prototype,i=r.hasOwnProperty,s=r.toString,o=a?a.toStringTag:void 0;t.exports=function(t){var e=i.call(t,o),n=t[o];try{t[o]=void 0;var a=!0}catch(u){}var r=s.call(t);return a&&(e?t[o]=n:delete t[o]),r}},AQ68:function(t,e,n){!function(t){"use strict";t.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("wd/R"))},AWcq:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("yJti");class r{constructor(){this.vcs=a.a}ngOnInit(){}}},AfCQ:function(t,e,n){"use strict";var a=n("2Vo4"),r=n("qgXg"),i=n("HDdC"),s=n("pxpQ"),o=n("Kqap"),u=n("lJxs"),d=n("7o/Q");class l{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new c(t,this.compare,this.keySelector))}}class c extends d.a{constructor(t,e,n){super(t),this.keySelector=n,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:n}=this;e=n?n(t):t}catch(a){return this.destination.error(a)}let n=!1;if(this.hasKey)try{const{compare:t}=this;n=t(this.key,e)}catch(a){return this.destination.error(a)}else this.hasKey=!0;n||(this.key=e,this.destination.next(t))}}n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return h}));class f extends a.a{constructor(t,e,n){super(t),e.pipe(Object(s.b)(r.a)).pipe(Object(o.a)((t,e)=>e?n(t,e):t,t)).subscribe(t=>this.next(t))}}class h extends i.a{constructor(t,e,n){super(),this._dispatcher=t,this._reducer=e,this.source=n}select(t){return this.source.pipe(Object(u.a)(t)).pipe(t=>t.lift(new l(void 0,void 0)))}lift(t){const e=new h(this._dispatcher,this._reducer,this);return e.operator=t,e}dispatch(t){this._dispatcher.next(t)}next(t){this._dispatcher.next(t)}error(t){this._dispatcher.error(t)}complete(){}}},AiMb:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="zh-CN">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>切换导航</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>仪表盘</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>集群</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>主机</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>对应的服务</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>配置项</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH 索引</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Manager 扩展模块</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>日志</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>存储池</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>块设备</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>映像</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>镜像</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>文件系统</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>对象网关</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>守护进程</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>请选择语言</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>正在加载面板的相关数据…</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana 时间选择工具</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>重新设置</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>返回</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>无法加载数据。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>选中个数</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>命中个数</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>总数</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名称</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>解释</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>更详尽的解释</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>缺省值</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>守护进程的缺省值</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>可选值</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>保存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>检查 CRUSH 索引图</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>正在加载…</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>主机名</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>请填写此栏目!</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>是的,我确定。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>取消</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>关闭</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>主机列表</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>总体性能</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>无法找到相关条目</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>集群日志</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>审计日志</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>正在加载相关配置信息...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>配置信息无法加载。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>编辑 Manager 扩展模块</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>输入值不是有效的 UUID,如:67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>输入的应该是个有效的 IP 地址。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>输入须为数字。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>输入的应该是一个浮点数或者十进制整数。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>集群 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap 修改时间</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con </target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>仲裁成员</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非仲裁成员</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>添加</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>特性</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>集群范围的 OSD 标志</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>提交</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>高级设置…</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 恢复优先级</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>优先级</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>自定义优先级</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>这个字段是必填的!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>权重值必须在 0 和 1 之间</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>重设权重</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深度}}</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深度} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 列表</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>编辑</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>删除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>健康状况</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>统计数据</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>客户端</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任何客户端均可访问</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>地址</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必填项</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>必须包含一个或多个逗号分隔值</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例如:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>访问类型</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>添加客户端</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 无可用集群 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 请选择一个集群 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>添加守护进程</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>存储后端</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 没有可用的数据存储池 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 请选择存储后端 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>对象网关用户</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 无可选用户 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 请选择对象网关用户 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 用户 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 无可用客户端 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- 请选择 cephx 客户端 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 名称</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>安全标签</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>启用安全标签</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 路径</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>路径需以“/”开头,后面可跟单词</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>将创建新文件夹</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>路径</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>路径只能是单个“/”或单词</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>将创建新的桶</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 协议</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 标签</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>客户端不能装入子目录(即如果标记为 foo,则客户端无法装入 foo/baz)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>通过使用不同标记选项,可将同一路径导出多次。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>伪</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>通过使用不同伪选项,可将同一路径导出多次。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 没有可用的访问类型 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 选择访问类型 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 没有可用的 squash --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 选择执行哪种类型的用户 ID 匿名访问 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>传输协议</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>欢迎使用 Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>请输入用户名</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>请输入密码</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>登录</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>抱歉,此用户不存在。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>禁止访问</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>抱歉,您无权访问这个页面。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 配置</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>删除本地的配置项,改用更高作用域的配置值。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小值为 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>存储池列表</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名称只能由字母、数字、短划线和下划线组成。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>此纠删码配置名称已被使用。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>纠删码算法</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>数据块 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>必须大于等于 2</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>校验块 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>必须大于等于 1</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>持久因子 (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>局部性因子 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>CRUSH 故障域</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>CRUSH 局部性</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>无</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>算法</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>packetsize</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>CRUSH 根</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>CRUSH 设备类型</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任意</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>目录</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名称…</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>此 Ceph 存储池名称已被使用。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>存储池类型</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 请选择存储池的类型 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>归置组 (PG)</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>至少需要一个归置组!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>您的集群没法支持这么多的 PG。请重新计算需要的 PG 个数。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>在线 PG 计算器</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>副本个数</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>标志</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 重写 (overwrite)</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>应用类型</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 无纠删码配置可选 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 请选择一个纠删码配置 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>CRUSH 算法规则组</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 选择 CRUSH 规则 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>CRUSH 规则</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>CRUSH 步骤</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>压缩</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>模式</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>算法</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 无可用的纠删码压缩算法 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>blob 大小下限</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>比如 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>取值必须大于 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>blob 大小上限</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>如 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>取值必须大于 blob 大小下限</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>比例</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>压缩率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>取值必须在 0.0 和 1.0 之间</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>如 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>详情</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>性能详情</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>缓存层详细信息</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>将映像移至回收站</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保护期一直到</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>无保护</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日期格式有问题。请使用“YYYY-MM-DD HH:mm:ss”。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保护期限已经过了。请设置一个将来的日期,或者清空不填。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>移动映像</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>概览</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>目标</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>发现身份验证</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>用户名长度必须在 8 到 64 个字符之间,且只能包含\n以下字符:英文字母、“.”、“@”、“-”、“_”或“:”。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>密码</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>互认证用户</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>互认证密码</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>可用信息:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>无可用 iSCSI 目标</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>存储池</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>数据存储池</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>创建</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>对象数</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>对象大小</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>供给容量</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>总供给容量</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>条带单元</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>条带个数</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>父节点</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>块存储名字前缀</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>order</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>快照</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>映像</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>此设置会覆盖全局值</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>全局</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>该值为全局值。没有为此映像设置此选项的值。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>不允许使用“/”和“@”。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 没有可用的 RBD 存储池 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 请选择存储池 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>使用一个专用的数据池</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>数据池</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>为保存 RBD 的对象数据单独分配的存储池。</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>您需要设置大一些的容量。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>高级设置</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>条带</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>条带单元大小</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 选择条带单元大小 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>因为设置了条带个数,所以这个字段是必选的!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>条带单元大小超过了对象大小。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>条带个数</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>因为设置了条带单元大小,所以这个字段是必选的!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>条带的个数必须大于 0。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>您即将进行回滚操作</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>清空回收站</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>全选</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>存储池:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>存储池名称…</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>恢复映像</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>要恢复</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>输入映像的新名称,并点击</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新名称</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>过期时间</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保护期限</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 结构图</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常无须改变这些默认参数值。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>设置</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>后备存储</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>确认</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>高级设置</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>目标限定名</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN 格式错误。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例如:iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>更多信息</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>此目标的高级设置项存在修改。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>端口</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>添加端口</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>此映像的设置项存在修改。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>添加映像</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 身份验证</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>授权人</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>授权人</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>客户端 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>授权人 IQN 必须唯一。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>用户名长度必须在 8 到 64 个字符之间,且只能包含\n以下字符:英文字母、“.”、“@”、“-”、“_”或“:”。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>授权人属于群组。映像须在群组中进行设置。</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>无项目添加。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>添加授权人</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>群组</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>群组</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>添加群组</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>回收站</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>问题</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>正在同步</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>已就绪</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>编辑存储池镜像模式</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>在禁用镜像功能前必须先移除同伴集群。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {编辑} other {添加} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>集群名称</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>集群名称无效。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID 无效。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Monitor 地址</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>逗号分割的地址...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Monitor 地址无效。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 密钥</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64 编码的密钥...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 密钥必须是 base64 编码的。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>无法读取性能计数器</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>守护进程列表</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>性能计数器</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>正在加载存储桶数据…</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>输入值无效。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>所选名称已经被使用。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>所有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 请选择一个用户 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>开启</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>索引类型</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>归置规则</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>标识</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>max marker</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>主版本</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>修改时间</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>zonegroup</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>存储桶配额</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大数目</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>无限制</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大对象数目</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>用户名</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 请选择用户名 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>自动生成密钥</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>访问密钥</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>秘密密钥</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>全名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>邮箱</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>冻结</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>系统</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大存储桶数目</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>子用户</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>用户权限</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>用户配额</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>显示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>密钥</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>类型</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 请选择一个类型 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>权限</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 请选择权限类型 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>子用户</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>所选的子用户 ID 已被使用。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>读、写</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>全部</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift 密钥</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>自动生成密钥</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>正在加载用户数据…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>用户数据无法加载。 </target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>所选的用户 ID 已被使用。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>无效的邮箱地址。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>此邮箱地址已被使用。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>存储桶个数的上限</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>禁用</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>自定义</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 密钥</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>没有子用户。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>没有任何密钥。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>权限为空。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>空间无限制</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>空间上限</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>对象个数无限制</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>对象个数上限</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>设置的值必须 &gt;= 0。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>描述…</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>权限</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>角色</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>确认密码</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>密码和之前的输入不匹配。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>邮箱</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>邮箱地址无效。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>您即将取消您自己用户的 "user read / update" 权限。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>如果您继续的话,您以后就没办法为其他用户添加或者删除角色了。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>您确实要继续吗?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>帮助</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>文档</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>关于</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>仪表盘设置</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>用户管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>登录的用户</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>登出</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>OSD map</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>元数据不可用</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>相关元数据</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>性能计数器</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>写入请求</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>读取请求</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>直方图</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>当前值</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>下限</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>上限</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>来源</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>级别</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>可在运行时更新(可编辑)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>标记</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>可选项</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>参见</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>集群状态</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>manager 守护进程</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>对象网关</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>metadata 服务器</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 网关</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>客户端 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>客户端吞吐量</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>客户端读/写</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>恢复吞吐量</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>洗刷</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>性能</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>基本容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>每个 OSD 的 PG 数</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 状态</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>排位</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>当前</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>已更新发现身份验证</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>无可用端口。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>无可用映像。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>无可用映像。请确保为目标添加一个映像。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>无可用授权人。请确保为目标添加一个授权人。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>目标</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>读字节数</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>写字节数</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>读请求数</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>写请求数</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>活动/优化自</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>实例</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>问题</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>进度</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>编辑模式</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>添加 peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>编辑 peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>删除 peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># 本地</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># 远程</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>镜像 peer</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>密钥</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>完全展开</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>分层</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>互斥锁</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>object map(要求互斥锁支持)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>日志(要求互斥锁支持)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>无保护的</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 快照回滚</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>回滚</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 快照</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>定点删除</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>类型</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>主机</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>根</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>备用服务</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>排位</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>守护进程</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>活跃度</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用率</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>更新完成</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>该值可在运行时更新。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>服务器或客户端不会主动从 monitor 的配置数据库读取这个配置。\n 所以不能用“ceph config set ...”设置它。但是可以通过\n ceph.conf 或者用命令行进行配置。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>该配置只有在服务启动的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>该配置只在创建集群的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>该配置只在服务创建的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>服务</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>当前值</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>可编辑</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>启用</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>禁用</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>正在重新连接,请稍候…</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>外部地址</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>活动会话</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>禁止加入</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>之前被除名的 OSD 在启动之后,不会被加入集群</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>禁止除名</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>在发现 OSD 没有响应之后一段时间,该 OSD 会被踢出集群。该标志会禁止这个功能。</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>禁止启用</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>不允许 OSD 启动</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>禁止停用</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>当前不受理对 OSD 的失效报告,因而 monitor 不会停用 OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>暂停</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>暂停读写</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>禁止洗刷</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>洗刷已禁止</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>禁止深层洗刷</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>深层洗刷已禁止</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>禁止回填</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG 回填已推迟</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>禁止恢复</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG 恢复已推迟</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>逐位排序</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>使用逐位排序</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>老版本的快照已全部升级</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD 上的快照已全部转换完毕</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>在恢复时进行删除操作</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>在恢复时,而非对齐阶段进行删除</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 日志硬限制</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>为 pg 日志长度添加硬限制</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>已更新 OSD 标志</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>除名</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>加入</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>停用</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>标记</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 丢失</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>已标记丢失</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>销毁</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>已销毁</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>删除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>读字节数</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>写字节数</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>读请求数</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>写请求数</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大回填量</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>最大活跃恢复请求数</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>最大单次恢复操作数</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>恢复/回填操作间隔睡眠时间</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>任务</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>严重程度</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>已启动</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>已使用</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>空闲</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>正常</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>运行中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警报</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>未知</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>启用中</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>无文件系统</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>工作</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>待机</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>工作的守护进程</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganesha 服务的配置还没有完成。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>传输</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 用户</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 文件系统</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(继承自全局配置)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>继承自全局配置</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 选择执行哪种类型的用户 ID 匿名访问 --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>没有可用的守护进程。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>缓存模式</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>最少延迟赶出时间</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>最少延迟刷回时间</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>目标器最大字节数</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>目标器最大对象数</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>还没有任何应用标记</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>应用标记到了上限</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>一个存储池最多能有四个应用标记。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>可用的字符为“_a-zA-Z0-9”</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>长度限制为 128 个字符</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>添加应用标记或根据其进行筛选</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>添加应用标记</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>副本个数</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>最后修改时间</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>CRUSH 规则集</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>作用范围</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>读权限</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>新建</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>系统角色</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>更新用户</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>继续</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>您被自动登出,因为您的角色有了变动。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target> 各对象都被分割为数据块,分别存储于不同 OSD 。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>计算各对象的编码块、并存储于不同 OSD 。\n编码块的数量等同于在不丢数据的前提下允许同时失效的 OSD 数量。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>jerasure 插件是最通用、最灵活的插件,\n也是 Ceph 纠删码存储池的默认插件。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>reed_sol_van 技术更灵活:它足以设置 k 和 m 值。 \ncauchy_good 技术更快,但你得谨慎地选择 packetsize 值。\nreed_sol_r6_op 、 liberation 、 blaum_roth 、 liber8tion 都是与 RAID6 等价的技术,\n它们只能配置为 m=2 。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target> 以 bytes 大小的包为单位进行编码。\n确定合适的包尺寸很难, \njerasure 文档对此有很详细的描述。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>用 jerasure 插件时,纠删码编码的对象存储在多个 OSD 上,\n丢失一个 OSD 的恢复过程需读取所有其他的 OSD 。\n比如 jerasure 的配置为 k=8 且 m=4 ,丢失一个 OSD 后需读取其他 11 个 OSD 才能恢复。\n\nlrc 纠删码插件创建的是局部校验块,这样只需较少的 OSD 即可恢复。\n比如 lrc 的配置为 k=8 、 m=4 且 l=4 ,它将为每四个 OSD 创建额外的校验块,\n当一个 OSD 丢失时,它只需四个 OSD 即可恢复,而不需要十一个。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>把编码块和数据块分组为大小为 locality 的集合。\n比如, k=4 且 m=2 时,若设置 locality=3 ,将会分组为大小为三的两组,\n这样各组都能自行恢复,无需从另一组读数据块。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>由 l 定义的块集合将按哪种 crush 桶类型存储。\n比如,若设置为 rack ,大小为 l 块的各组将被存入不同的机架,\n此值会被用于创建类似 step choose rack 的规则集。\n如果没设置,就不会这样分组。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 插件封装了 ISA 库。它只能运行在 Intel 处理器上。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 插件包含两种 Reed Solomon 编码形式。\n设置为 reed_sol_van 表示用 Vandermonde 算法,设置为 cauchy 表示用 Cauchy 算法。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec 插件封装了 multiple SHEC 库。\n与 Reed Solomon 编码相比,它能使 Ceph 更高效地恢复数据。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target> 奇偶校验块数量,它们在各自的计算范围内包含了各数据块。\n此数值被用作持久性估值。\n例如,假设 c=2 ,就是说不丟数据的情况下可损失 2 个 OSD 。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>规则集第一步所指向的 CRUSH 桶之名,\n如 step take default 。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>确保两个编码块不会存在于同一故障域的桶里面。\n比如,假设故障域是 host ,就不会有两个编码块存储到同一主机;\n此值用于在规则集中创建类似 step chooseleaf host 的步骤。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>使用 CRUSH 索引中的 crush 设备类名,\n将归置限制于特定类的设备(例如,ssd 或 hdd)。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>设置纠删码插件所在目录。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>允许所有操作</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>只允许不修改服务器端数据的操作</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>禁止读写,但是允许其他的操作</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>禁止读、写以及任何可能修改文件内容的操作</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>完全禁止访问</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 选择优先级 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>信息</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>过去 5 分钟</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>过去 15 分钟</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>过去 30 分钟</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>过去 1 小时(默认)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>过去 3 小时</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>过去 6 小时</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>过去 12 小时</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>过去 24 小时</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨天</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>今天</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>今天到现在为止</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>前天</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>过去 2 天</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>上周的今天</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>上个星期</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>本周</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>本周以来</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>过去 7 天</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>上个月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>当月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>本月以来</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>过去 30 天</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>过去 90 天</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>过去 6 个月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>过去 1 年</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>去年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年以来</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>过去 2 年</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>过去 5 年</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>无选中项目。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>取消选择</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>达到选择项数上限。</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>过滤标签</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>添加 badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>无可选项目。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>复制</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>深层洗刷</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>销毁</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>展开</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>标记为停用</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>标记为加入</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>标记为丢失</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>标记为已除名</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保护</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>重命名</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>恢复</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>移至回收站</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>解除保护</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>删除完成</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>克隆完成</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>复制完成</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>展开完成</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>已经把</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>回滚完成</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>是</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>否</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>服务质量 (QoS)</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>指定的每秒 IO 字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>指定的每秒 IO 操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>读 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>指定的每秒内读取的字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>读 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>指定的每秒读操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>写 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>指定的每秒内写入的字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>写 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>指定的每秒写操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>指定的 IO 字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>指定的 IO 操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>读 BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>指定的读取的字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>读 IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>指定的读操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>写 BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>指定的写入的字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>写 IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>指定的写操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>正在执行</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>执行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>执行完毕</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>未知任务</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>正在创建</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>创建</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>正在更新</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>正在删除</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>正在克隆</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>正在复制</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>复制</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>正在展开</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>展开</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>正在回滚</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>回滚</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>正在把</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>把</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>已经把</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>无法找到映像。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>正在把</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>把</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>正在清除</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>所有存储池</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>因为包含同伴集群,无法禁用镜像功能</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},Avrn:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("aexS"),r=n("8Y7J"),i=n("iInd");let s=(()=>{class t{constructor(t,e){this.router=t,this.authStorageService=e}canActivate(){return!!this.authStorageService.isLoggedIn()||(this.router.navigate(["/login"]),!1)}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t(r["ɵɵinject"](i.m),r["ɵɵinject"](a.a))},token:t,providedIn:"root"}),t})()},AvvY:function(t,e,n){!function(t){"use strict";t.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".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:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(t,e){return 12===t&&(t=0),"രാത്രി"===e&&t>=4||"ഉച്ച കഴിഞ്ഞ്"===e||"വൈകുന്നേരം"===e?t+12:t},meridiem:function(t,e,n){return t<4?"രാത്രി":t<12?"രാവിലെ":t<17?"ഉച്ച കഴിഞ്ഞ്":t<20?"വൈകുന്നേരം":"രാത്രി"}})}(n("wd/R"))},AxL3:function(t,e){var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.exports=n},B55N:function(t,e,n){!function(t){"use strict";t.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(t){return"午後"===t},meridiem:function(t,e,n){return t<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(t){return t.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(t){return this.week()<t.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";default:return t}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n("wd/R"))},B8du:function(t,e){t.exports=function(){return!1}},BFxc:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("7o/Q"),r=n("4I5i"),i=n("EY2u");function s(t){return function(e){return 0===t?Object(i.b)():e.lift(new o(t))}}class o{constructor(t){if(this.total=t,this.total<0)throw new r.a}call(t,e){return e.subscribe(new u(t,this.total))}}class u extends a.a{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,n=this.total,a=this.count++;e.length<n?e.push(t):e[a%n]=t}_complete(){const t=this.destination;let e=this.count;if(e>0){const n=this.count>=this.total?this.total:this.count,a=this.ring;for(let r=0;r<n;r++){const r=e++%n;t.next(a[r])}}t.complete()}}},BQkM:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return`${t} IOPS`}}},BVg3:function(t,e,n){!function(t){"use strict";function e(t){return t%100==11||t%10!=1}function n(t,n,a,r){var i=t+" ";switch(a){case"s":return n||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return e(t)?i+(n||r?"sekúndur":"sekúndum"):i+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return e(t)?i+(n||r?"mínútur":"mínútum"):n?i+"mínúta":i+"mínútu";case"hh":return e(t)?i+(n||r?"klukkustundir":"klukkustundum"):i+"klukkustund";case"d":return n?"dagur":r?"dag":"degi";case"dd":return e(t)?n?i+"dagar":i+(r?"daga":"dögum"):n?i+"dagur":i+(r?"dag":"degi");case"M":return n?"mánuður":r?"mánuð":"mánuði";case"MM":return e(t)?n?i+"mánuðir":i+(r?"mánuði":"mánuðum"):n?i+"mánuður":i+(r?"mánuð":"mánuði");case"y":return n||r?"ár":"ári";case"yy":return e(t)?i+(n||r?"ár":"árum"):i+(n||r?"ár":"ári")}}t.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_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:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},BiGR:function(t,e,n){var a=n("nmnc"),r=n("03A+"),i=n("Z0cm"),s=a?a.isConcatSpreadable:void 0;t.exports=function(t){return i(t)||r(t)||!!(s&&t&&t[s])}},Bs8V:function(t,e,n){var a=n("g6v/"),r=n("0eef"),i=n("XGwC"),s=n("/GqU"),o=n("wE6v"),u=n("UTVS"),d=n("DPsx"),l=Object.getOwnPropertyDescriptor;e.f=a?l:function(t,e){if(t=s(t),e=o(e,!0),d)try{return l(t,e)}catch(n){}if(u(t,e))return i(!r.f.call(t,e),t[e])}},ByF4:function(t,e,n){!function(t){"use strict";t.defineLocale("fo",{months:"januar_februar_mars_apríl_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ánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_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:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},C523:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("gk6K"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(t,e,n,a){this.el=t,this.renderer=e,this.treeDraggedElement=n,this.ngZone=a,this.dragEventHandler=this.onDrag.bind(this)}return t.prototype.ngAfterViewInit=function(){var t=this,e=this.el.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("drag",t.dragEventHandler)}))},t.prototype.ngDoCheck=function(){this.renderer.setAttribute(this.el.nativeElement,"draggable",this.treeDragEnabled?"true":"false")},t.prototype.ngOnDestroy=function(){this.el.nativeElement.removeEventListener("drag",this.dragEventHandler)},t.prototype.onDragStart=function(t){t.dataTransfer.setData("text",t.target.id),this.treeDraggedElement.set(this.draggedElement),this.draggedElement.mouseAction&&this.draggedElement.mouseAction("dragStart",t)},t.prototype.onDrag=function(t){this.draggedElement.mouseAction&&this.draggedElement.mouseAction("drag",t)},t.prototype.onDragEnd=function(){this.draggedElement.mouseAction&&this.draggedElement.mouseAction("dragEnd"),this.treeDraggedElement.set(null)},i([Object(a.Input)("treeDrag"),s("design:type",Object)],t.prototype,"draggedElement",void 0),i([Object(a.Input)(),s("design:type",Object)],t.prototype,"treeDragEnabled",void 0),i([Object(a.HostListener)("dragstart",["$event"]),s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],t.prototype,"onDragStart",null),i([Object(a.HostListener)("dragend"),s("design:type",Function),s("design:paramtypes",[]),s("design:returntype",void 0)],t.prototype,"onDragEnd",null),i([Object(a.Directive)({selector:"[treeDrag]"}),s("design:paramtypes",[a.ElementRef,a.Renderer2,r.a,a.NgZone])],t)}()},C6Ij:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("DqMs"),i=n("/NlG"),s=n("GiVz"),o=n("SVse");n("AWcq"),n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return p}));var u=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","info"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,i.a,[s.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Retrieving data"])),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[". Please wait..."]))],(function(t,e){var n=e.component;t(e,1,0,"info"),t(e,5,0,n.statusFor)}),null)}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","warning"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,i.a,[s.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Displaying previously cached data"])),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,["."]))],(function(t,e){var n=e.component;t(e,1,0,"warning"),t(e,5,0,n.statusFor)}),null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","error"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,i.a,[s.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Could not load data"])),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[". Please check the cluster health."]))],(function(t,e){var n=e.component;t(e,1,0,"error"),t(e,5,0,n.statusFor)}),null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.status===n.vcs.ValueNone),t(e,3,0,n.status===n.vcs.ValueStale),t(e,5,0,n.status===n.vcs.ValueException)}),null)}},CFvb:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a={LEFT:37,UP:38,RIGHT:39,DOWN:40,ENTER:13,SPACE:32,CONTEXT_MENU:32}},CH3K:function(t,e){t.exports=function(t,e){for(var n=-1,a=e.length,r=t.length;++n<a;)t[r+n]=e[n];return t}},CMye:function(t,e,n){var a=n("GoyQ");t.exports=function(t){return t==t&&!a(t)}},CNMR:function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return u}));var a=n("mrSG"),r=n("8Y7J"),i=n("hpHm");class s{constructor(){this.type="warning",this.dismissible=!1,this.dismissOnTimeout=void 0}}let o=(()=>{class t{constructor(t,e){this.changeDetection=e,this.type="warning",this.dismissible=!1,this.isOpen=!0,this.onClose=new r.EventEmitter,this.onClosed=new r.EventEmitter,this.classes="",this.dismissibleChange=new r.EventEmitter,Object.assign(this,t),this.dismissibleChange.subscribe(t=>{this.classes=this.dismissible?"alert-dismissible":"",this.changeDetection.markForCheck()})}ngOnInit(){this.dismissOnTimeout&&setTimeout(()=>this.close(),parseInt(this.dismissOnTimeout,10))}close(){this.isOpen&&(this.onClose.emit(this),this.isOpen=!1,this.changeDetection.markForCheck(),this.onClosed.emit(this))}}return Object(a.__decorate)([Object(i.a)(),Object(a.__metadata)("design:type",Object)],t.prototype,"dismissible",void 0),t})();class u{static forRoot(){return{ngModule:u,providers:[s]}}}},CZoQ:function(t,e){t.exports=function(t,e,n){for(var a=n-1,r=t.length;++a<r;)if(t[a]===e)return a;return-1}},Cfvw:function(t,e,n){"use strict";var a=n("HDdC"),r=n("SeVD"),i=n("quSY"),s=n("kJWO"),o=n("jZKg"),u=n("Lhse"),d=n("c2HN"),l=n("I55L");function c(t,e){return e?function(t,e){if(null!=t){if(function(t){return t&&"function"==typeof t[s.a]}(t))return function(t,e){return new a.a(n=>{const a=new i.a;return a.add(e.schedule(()=>{const r=t[s.a]();a.add(r.subscribe({next(t){a.add(e.schedule(()=>n.next(t)))},error(t){a.add(e.schedule(()=>n.error(t)))},complete(){a.add(e.schedule(()=>n.complete()))}}))})),a})}(t,e);if(Object(d.a)(t))return function(t,e){return new a.a(n=>{const a=new i.a;return a.add(e.schedule(()=>t.then(t=>{a.add(e.schedule(()=>{n.next(t),a.add(e.schedule(()=>n.complete()))}))},t=>{a.add(e.schedule(()=>n.error(t)))}))),a})}(t,e);if(Object(l.a)(t))return Object(o.a)(t,e);if(function(t){return t&&"function"==typeof t[u.a]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new a.a(n=>{const a=new i.a;let r;return a.add(()=>{r&&"function"==typeof r.return&&r.return()}),a.add(e.schedule(()=>{r=t[u.a](),a.add(e.schedule((function(){if(n.closed)return;let t,e;try{const n=r.next();t=n.value,e=n.done}catch(a){return void n.error(a)}e?n.complete():(n.next(t),this.schedule())})))})),a})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}(t,e):t instanceof a.a?t:new a.a(Object(r.a)(t))}n.d(e,"a",(function(){return c}))},ChqD:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},CjzT:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},CoRJ:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n("wd/R"))},CoVI:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("2vnA"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(t,e){this.templateRef=t,this.viewContainer=e,this.templateBindings={}}return t.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.templateRef),this.dispose&&this.dispose(),this.shouldDetach()&&this.view.detach(),this.autoDetect(this.view)},t.prototype.shouldDetach=function(){return this.treeMobxAutorun&&this.treeMobxAutorun.detach},t.prototype.autoDetect=function(t){this.dispose=Object(r.b)((function(){return t.detectChanges()}))},t.prototype.ngOnDestroy=function(){this.dispose&&this.dispose()},i([Object(a.Input)(),s("design:type",Object)],t.prototype,"treeMobxAutorun",void 0),i([Object(a.Directive)({selector:"[treeMobxAutorun]"}),s("design:paramtypes",[a.TemplateRef,a.ViewContainerRef])],t)}()},Cwc5:function(t,e,n){var a=n("NKxu"),r=n("Npjl");t.exports=function(t,e){var n=r(t,e);return a(n)?n:void 0}},CxY0:function(t,e,n){"use strict";var a=n("nYho"),r=n("Nehr");function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=v,e.resolve=function(t,e){return v(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?v(t,!1,!0).resolveObject(e):e},e.format=function(t){return r.isString(t)&&(t=v(t)),t instanceof i?t.format():i.prototype.format.call(t)},e.Url=i;var s=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(d),c=["%","/","?",";","#"].concat(l),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,g=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n("r8II");function v(t,e,n){if(t&&r.isObject(t)&&t instanceof i)return t;var a=new i;return a.parse(t,e,n),a}i.prototype.parse=function(t,e,n){if(!r.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var i=t.indexOf("?"),o=-1!==i&&i<t.indexOf("#")?"?":"#",d=t.split(o);d[0]=d[0].replace(/\\/g,"/");var v=t=d.join(o);if(v=v.trim(),!n&&1===t.split("#").length){var x=u.exec(v);if(x)return this.path=v,this.href=v,this.pathname=x[1],x[2]?(this.search=x[2],this.query=e?y.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var _=s.exec(v);if(_){var T=(_=_[0]).toLowerCase();this.protocol=T,v=v.substr(_.length)}if(n||_||v.match(/^\/\/[^@\/]+@[^@\/]+/)){var O="//"===v.substr(0,2);!O||_&&b[_]||(v=v.substr(2),this.slashes=!0)}if(!b[_]&&(O||_&&!m[_])){for(var w,S,I=-1,N=0;N<f.length;N++)-1!==(C=v.indexOf(f[N]))&&(-1===I||C<I)&&(I=C);for(-1!==(S=-1===I?v.lastIndexOf("@"):v.lastIndexOf("@",I))&&(w=v.slice(0,S),v=v.slice(S+1),this.auth=decodeURIComponent(w)),I=-1,N=0;N<c.length;N++){var C;-1!==(C=v.indexOf(c[N]))&&(-1===I||C<I)&&(I=C)}-1===I&&(I=v.length),this.host=v.slice(0,I),v=v.slice(I),this.parseHost(),this.hostname=this.hostname||"";var R="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!R)for(var A=this.hostname.split(/\./),k=(N=0,A.length);N<k;N++){var E=A[N];if(E&&!E.match(h)){for(var L="",D=0,P=E.length;D<P;D++)E.charCodeAt(D)>127?L+="x":L+=E[D];if(!L.match(h)){var M=A.slice(0,N),q=A.slice(N+1),j=E.match(g);j&&(M.push(j[1]),q.unshift(j[2])),q.length&&(v="/"+q.join(".")+v),this.hostname=M.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),R||(this.hostname=a.toASCII(this.hostname)),this.host=(this.hostname||"")+(this.port?":"+this.port:""),this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!p[T])for(N=0,k=l.length;N<k;N++){var F=l[N];if(-1!==v.indexOf(F)){var G=encodeURIComponent(F);G===F&&(G=escape(F)),v=v.split(F).join(G)}}var V=v.indexOf("#");-1!==V&&(this.hash=v.substr(V),v=v.slice(0,V));var z=v.indexOf("?");return-1!==z?(this.search=v.substr(z),this.query=v.substr(z+1),e&&(this.query=y.parse(this.query)),v=v.slice(0,z)):e&&(this.search="",this.query={}),v&&(this.pathname=v),m[T]&&this.hostname&&!this.pathname&&(this.pathname="/"),(this.pathname||this.search)&&(this.path=(this.pathname||"")+(this.search||"")),this.href=this.format(),this},i.prototype.format=function(){var t=this.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var e=this.protocol||"",n=this.pathname||"",a=this.hash||"",i=!1,s="";this.host?i=t+this.host:this.hostname&&(i=t+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(s=y.stringify(this.query));var o=this.search||s&&"?"+s||"";return e&&":"!==e.substr(-1)&&(e+=":"),this.slashes||(!e||m[e])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),a&&"#"!==a.charAt(0)&&(a="#"+a),o&&"?"!==o.charAt(0)&&(o="?"+o),e+i+(n=n.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(o=o.replace("#","%23"))+a},i.prototype.resolve=function(t){return this.resolveObject(v(t,!1,!0)).format()},i.prototype.resolveObject=function(t){if(r.isString(t)){var e=new i;e.parse(t,!1,!0),t=e}for(var n=new i,a=Object.keys(this),s=0;s<a.length;s++){var o=a[s];n[o]=this[o]}if(n.hash=t.hash,""===t.href)return n.href=n.format(),n;if(t.slashes&&!t.protocol){for(var u=Object.keys(t),d=0;d<u.length;d++){var l=u[d];"protocol"!==l&&(n[l]=t[l])}return m[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(t.protocol&&t.protocol!==n.protocol){if(!m[t.protocol]){for(var c=Object.keys(t),f=0;f<c.length;f++){var h=c[f];n[h]=t[h]}return n.href=n.format(),n}if(n.protocol=t.protocol,t.host||b[t.protocol])n.pathname=t.pathname;else{for(var g=(t.pathname||"").split("/");g.length&&!(t.host=g.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),""!==g[0]&&g.unshift(""),g.length<2&&g.unshift(""),n.pathname=g.join("/")}return n.search=t.search,n.query=t.query,n.host=t.host||"",n.auth=t.auth,n.hostname=t.hostname||t.host,n.port=t.port,(n.pathname||n.search)&&(n.path=(n.pathname||"")+(n.search||"")),n.slashes=n.slashes||t.slashes,n.href=n.format(),n}var p=n.pathname&&"/"===n.pathname.charAt(0),y=t.host||t.pathname&&"/"===t.pathname.charAt(0),v=y||p||n.host&&t.pathname,x=v,_=n.pathname&&n.pathname.split("/")||[],T=(g=t.pathname&&t.pathname.split("/")||[],n.protocol&&!m[n.protocol]);if(T&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(""===g[0]?g[0]=t.host:g.unshift(t.host)),t.host=null),v=v&&(""===g[0]||""===_[0])),y)n.host=t.host||""===t.host?t.host:n.host,n.hostname=t.hostname||""===t.hostname?t.hostname:n.hostname,n.search=t.search,n.query=t.query,_=g;else if(g.length)_||(_=[]),_.pop(),_=_.concat(g),n.search=t.search,n.query=t.query;else if(!r.isNullOrUndefined(t.search))return T&&(n.hostname=n.host=_.shift(),(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift())),n.search=t.search,n.query=t.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!_.length)return n.pathname=null,n.path=n.search?"/"+n.search:null,n.href=n.format(),n;for(var O=_.slice(-1)[0],w=(n.host||t.host||_.length>1)&&("."===O||".."===O)||""===O,S=0,I=_.length;I>=0;I--)"."===(O=_[I])?_.splice(I,1):".."===O?(_.splice(I,1),S++):S&&(_.splice(I,1),S--);if(!v&&!x)for(;S--;S)_.unshift("..");!v||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),w&&"/"!==_.join("/").substr(-1)&&_.push("");var N,C=""===_[0]||_[0]&&"/"===_[0].charAt(0);return T&&(n.hostname=n.host=C?"":_.length?_.shift():"",(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift())),(v=v||n.host&&_.length)&&!C&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=t.auth||n.auth,n.slashes=n.slashes||t.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var t=this.host,e=o.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},"D/JM":function(t,e,n){!function(t){"use strict";t.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("wd/R"))},D0XW:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("3N8a");const r=new(n("IjjT").a)(a.a)},D4zM:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e){this.elementRef=t,this.renderer=e}ngOnInit(){this.renderer.setAttribute(this.elementRef.nativeElement,"tabindex","-1"),this.iElement=this.renderer.createElement("i"),this.renderer.addClass(this.iElement,"fa"),this.renderer.appendChild(this.elementRef.nativeElement,this.iElement),this.update()}getInputElement(){return document.getElementById(this.cdPasswordButton)}update(){const t=this.getInputElement();t&&"text"===t.type?(this.renderer.removeClass(this.iElement,"fa-eye"),this.renderer.addClass(this.iElement,"fa-eye-slash")):(this.renderer.removeClass(this.iElement,"fa-eye-slash"),this.renderer.addClass(this.iElement,"fa-eye"))}onClick(){const t=this.getInputElement();t.type="password"===t.type?"text":"password",this.update()}}},DH7j:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>Array.isArray||(t=>t&&"number"==typeof t.length))()},"DKr+":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[n][0]:r[n][1]}t.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:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}(n("wd/R"))},DNAf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{constructor(t,e){this.customValidations={},this.i18n=e,this.empty=this.i18n("No items selected."),this.selectionLimit={tooltip:this.i18n("Deselect item to select again"),text:this.i18n("Selection limit reached")},this.filter=this.i18n("Filter tags"),this.add=this.i18n("Add badge"),this.noOptions=this.i18n("There are no items available."),a.merge(this,t)}}},DPsx:function(t,e,n){var a=n("g6v/"),r=n("0Dky"),i=n("zBJ4");t.exports=!a&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},DSRE:function(t,e,n){(function(t){var a=n("Kz5y"),r=n("B8du"),i=e&&!e.nodeType&&e,s=i&&"object"==typeof t&&t&&!t.nodeType&&t,o=s&&s.exports===i?a.Buffer:void 0;t.exports=(o?o.isBuffer:void 0)||r}).call(this,n("YuTi")(t))},DSvg:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("vkgz"),r=n("aexS"),i=n("8Y7J"),s=n("IheW"),o=n("iInd"),u=n("pL04");let d=(()=>{class t{constructor(t,e,n){this.authStorageService=t,this.http=e,this.router=n}check(t){return this.http.post("api/auth/check",{token:t})}login(t){return this.http.post("api/auth",t).pipe(Object(a.a)(t=>{this.authStorageService.set(t.username,t.token,t.permissions,t.sso,t.pwdExpirationDate,t.pwdUpdateRequired)}))}logout(t=null){return this.http.post("api/auth/logout",null).subscribe(e=>{this.router.navigate(["/login"],{skipLocationChange:!0}),this.authStorageService.remove(),t&&t(),window.location.replace(e.redirect_url)})}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](r.a),i["ɵɵinject"](s.c),i["ɵɵinject"](o.m))},token:t,providedIn:u.a}),t})()},Dkky:function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n("wd/R"))},Dmvi:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},DoHr:function(t,e,n){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};t.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_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ün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'ıncı";var a=t%10;return t+(e[a]||e[t%100-a]||e[t>=100?100:null])}},week:{dow:1,doy:7}})}(n("wd/R"))},DqMs:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("IZUe"),s=n("MdoF"),o=n("CNMR");n("/NlG"),n("GiVz"),n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return v}));var u=a["ɵcrt"]({encapsulation:0,styles:[[".alert-panel-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:.5em}.alert-panel-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"td",[["class","alert-panel-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpad"](4,1)],(function(t,e){var n=e.component,r=a["ɵinlineInterpolate"](2,"alert-",n.bootstrapClass," ",n.typeIcon,""),i=t(e,4,0,n.icons.large3x);t(e,3,0,r,i)}),null)}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-title"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](6,0,null,null,3,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](7,0,null,null,2,"td",[["class","alert-panel-text"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](9,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.showIcon),t(e,5,0,n.showTitle),t(e,9,0,a["ɵnov"](e.parent,6))}),null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-icon"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"i",[["aria-hidden","true"]],[[8,"className",0]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](2,"alert-",n.bootstrapClass," ",n.typeIcon,""))}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-title"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](5,0,null,null,2,"td",[["class","alert-panel-text"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.showIcon),t(e,4,0,n.showTitle),t(e,7,0,a["ɵnov"](e.parent,6))}),null)}function m(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"button",[["autofocus",""],["class","btn btn-light tc_backButton"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.backAction.emit()&&a),a}),null,null)),a["ɵdid"](2,4210688,null,0,i.a,[a.ElementRef],{autofocus:[0,"autofocus"]},null),(t()(),a["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,2,0,"")}),null)}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"alert",[],null,null,null,s.c,s.b)),a["ɵdid"](1,114688,null,0,o.a,[o.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,3,"table",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["slim",2]],null,0,null,b)),(t()(),a["ɵand"](0,[["content",2]],null,0,null,m)),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](8,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](1,"",n.bootstrapClass,"")),t(e,4,0,"normal"===n.size,a["ɵnov"](e,5)),t(e,8,0,n.backAction.observers.length>0)}),null)}},"Dw+G":function(t,e,n){var a=n("juv8"),r=n("mTTR");t.exports=function(t,e){return t&&a(e,r(e),t)}},Dwqy:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("wd/R");class r{constructor(){}transform(t){return t?a(1e3*t).fromNow():"unknown"}}},DxQv:function(t,e,n){!function(t){"use strict";t.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øndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".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å dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få 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åned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},DzJC:function(t,e,n){var a=n("sEfC"),r=n("GoyQ");t.exports=function(t,e,n){var i=!0,s=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return r(n)&&(i="leading"in n?!!n.leading:i,s="trailing"in n?!!n.trailing:s),a(t,e,{leading:i,maxWait:e,trailing:s})}},Dzi0:function(t,e,n){!function(t){"use strict";t.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(t){return t},week:{dow:1,doy:4}})}(n("wd/R"))},"E+lV":function(t,e,n){!function(t){"use strict";var e={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".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:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},E2fk:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return"[INF]"===t?"info":"[WRN]"===t?"warn":"[ERR]"===t?"err":""}}},E2jh:function(t,e,n){var a,r=n("2gN3"),i=(a=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+a:"";t.exports=function(t){return!!i&&i in t}},E9XD:function(t,e,n){"use strict";var a=n("I+eb"),r=n("1Y/n").left,i=n("pkCn"),s=n("rkAj"),o=i("reduce"),u=s("reduce",{1:0});a({target:"Array",proto:!0,forced:!o||!u},{reduce:function(t){return r(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},EA7m:function(t,e,n){var a=n("zZ0H"),r=n("Ioao"),i=n("wclG");t.exports=function(t,e){return i(r(t,e,a),t+"")}},EApP:function(t,e,n){"use strict";n.d(e,"a",(function(){return _})),n.d(e,"b",(function(){return l})),n.d(e,"c",(function(){return v})),n.d(e,"d",(function(){return o})),n.d(e,"e",(function(){return S})),n.d(e,"f",(function(){return N})),n.d(e,"g",(function(){return u})),n.d(e,"h",(function(){return O})),n.d(e,"i",(function(){return T})),n.d(e,"j",(function(){return y}));var a=n("8Y7J"),r=n("XNiG"),i=n("cUpR"),s=n("SVse");let o=class{};class u{constructor(t,e,n,a,i,s){this.toastId=t,this.config=e,this.message=n,this.title=a,this.toastType=i,this.toastRef=s,this._onTap=new r.a,this._onAction=new r.a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}}const d={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},l=new a.InjectionToken("ToastConfig");class c{constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){const t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class f extends class{attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}}{constructor(t,e,n){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=n}attachComponentPortal(t,e){const n=this._componentFactoryResolver.resolveComponentFactory(t.component);let a;return a=n.create(t.injector),this._appRef.attachView(a.hostView),this.setDisposeFn(()=>{this._appRef.detachView(a.hostView),a.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(a),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(a)),a}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let h=(()=>{let t=class{constructor(t){this._document=t}ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t=this._document.createElement("div");t.classList.add("overlay-container"),this._document.body.appendChild(t),this._containerElement=t}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(s.DOCUMENT))},token:t,providedIn:"root"}),t})();class g{constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}}let p=(()=>{let t=class{constructor(t,e,n,a){this._overlayContainer=t,this._componentFactoryResolver=e,this._appRef=n,this._document=a,this._paneElements=new Map}create(t,e){return this._createOverlayRef(this.getPaneElement(t,e))}getPaneElement(t="",e){return this._paneElements.get(e)||this._paneElements.set(e,{}),this._paneElements.get(e)[t]||(this._paneElements.get(e)[t]=this._createPaneElement(t,e)),this._paneElements.get(e)[t]}_createPaneElement(t,e){const n=this._document.createElement("div");return n.id="toast-container",n.classList.add(t),n.classList.add("toast-container"),e?e.getContainerElement().appendChild(n):this._overlayContainer.getContainerElement().appendChild(n),n}_createPortalHost(t){return new f(t,this._componentFactoryResolver,this._appRef)}_createOverlayRef(t){return new g(this._createPortalHost(t))}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(h),Object(a["ɵɵinject"])(a.ComponentFactoryResolver),Object(a["ɵɵinject"])(a.ApplicationRef),Object(a["ɵɵinject"])(s.DOCUMENT))},token:t,providedIn:"root"}),t})();class b{constructor(t){this._overlayRef=t,this.duplicatesCount=0,this._afterClosed=new r.a,this._activate=new r.a,this._manualClose=new r.a,this._resetTimeout=new r.a,this._countDuplicate=new r.a}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}}class m{constructor(t,e){this._toastPackage=t,this._parentInjector=e}get(t,e,n){return t===u?this._toastPackage:this._parentInjector.get(t,e,n)}}let y=(()=>{let t=class{constructor(t,e,n,a,r){this.overlay=e,this._injector=n,this.sanitizer=a,this.ngZone=r,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig=Object.assign({},t.default,t.config),t.config.iconClasses&&(this.toastrConfig.iconClasses=Object.assign({},t.default.iconClasses,t.config.iconClasses))}show(t,e,n={},a=""){return this._preBuildNotification(a,t,e,this.applyConfig(n))}success(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",t,e,this.applyConfig(n))}error(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",t,e,this.applyConfig(n))}info(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",t,e,this.applyConfig(n))}warning(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",t,e,this.applyConfig(n))}clear(t){for(const e of this.toasts)if(void 0!==t){if(e.toastId===t)return void e.toastRef.manualClose()}else e.toastRef.manualClose()}remove(t){const e=this._findToast(t);if(!e)return!1;if(e.activeToast.toastRef.close(),this.toasts.splice(e.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length)return!1;if(this.currentlyActive<this.toastrConfig.maxOpened&&this.toasts[this.currentlyActive]){const t=this.toasts[this.currentlyActive].toastRef;t.isInactive()||(this.currentlyActive=this.currentlyActive+1,t.activate())}return!0}findDuplicate(t,e,n){for(const a of this.toasts)if(a.message===t)return a.toastRef.onDuplicate(e,n),a;return null}applyConfig(t={}){return Object.assign({},this.toastrConfig,t)}_findToast(t){for(let e=0;e<this.toasts.length;e++)if(this.toasts[e].toastId===t)return{index:e,activeToast:this.toasts[e]};return null}_preBuildNotification(t,e,n,a){return a.onActivateTick?this.ngZone.run(()=>this._buildNotification(t,e,n,a)):this._buildNotification(t,e,n,a)}_buildNotification(t,e,n,r){if(!r.toastComponent)throw new Error("toastComponent required");const i=this.findDuplicate(e,this.toastrConfig.resetTimeoutOnDuplicate&&r.timeOut>0,this.toastrConfig.countDuplicates);if(e&&this.toastrConfig.preventDuplicates&&null!==i)return i;this.previousToastMessage=e;let s=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(s=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const o=this.overlay.create(r.positionClass,this.overlayContainer);this.index=this.index+1;let d=e;e&&r.enableHtml&&(d=this.sanitizer.sanitize(a.SecurityContext.HTML,e));const l=new b(o),f=new u(this.index,r,d,n,t,l),h=new m(f,this._injector),g=new c(r.toastComponent,h),p=o.attach(g,this.toastrConfig.newestOnTop);l.componentInstance=p._component;const y={toastId:this.index,message:e||"",toastRef:l,onShown:l.afterActivate(),onHidden:l.afterClosed(),onTap:f.onTap(),onAction:f.onAction(),portal:p};return s||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{y.toastRef.activate()})),this.toasts.push(y),y}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(l),Object(a["ɵɵinject"])(p),Object(a["ɵɵinject"])(a.INJECTOR),Object(a["ɵɵinject"])(i.b),Object(a["ɵɵinject"])(a.NgZone))},token:t,providedIn:"root"}),t})(),v=class{constructor(t,e,n){this.toastrService=t,this.toastPackage=e,this.ngZone=n,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(t=>{this.duplicatesCount=t})}get displayStyle(){if("inactive"===this.state.value)return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state=Object.assign({},this.state,{value:"active"}),!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state=Object.assign({},this.state,{value:"active"}),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state=Object.assign({},this.state,{value:"removed"}),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0!==this.options.disableTimeOut&&"extendedTimeOut"!==this.options.disableTimeOut&&0!==this.options.extendedTimeOut&&"removed"!==this.state.value&&(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(t,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(t),e)):this.timeout=setTimeout(()=>t(),e)}outsideInterval(t,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(t),e)):this.intervalId=setInterval(()=>t(),e)}runInsideAngular(t){this.ngZone?this.ngZone.run(()=>t()):t()}};var x;const _=Object.assign({},d,{toastComponent:v});let T=x=class{static forRoot(t={}){return{ngModule:x,providers:[{provide:l,useValue:{default:_,config:t}}]}}},O=class{static forRoot(t={}){return{ngModule:T,providers:[{provide:l,useValue:{default:d,config:t}}]}}};var w;let S=class{constructor(t,e,n){this.toastrService=t,this.toastPackage=e,this.appRef=n,this.width=-1,this.toastClasses="",this.state="inactive",this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(t=>{this.duplicatesCount=t})}get displayStyle(){if("inactive"===this.state)return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state="active",!0!==this.options.disableTimeOut&&"timeOut"!==this.options.disableTimeOut&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state="active",this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=(new Date).getTime()+(this.originalTimeout||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){"removed"!==this.state&&(clearTimeout(this.timeout),this.state="removed",this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){"removed"!==this.state&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){!0!==this.options.disableTimeOut&&"extendedTimeOut"!==this.options.disableTimeOut&&0!==this.options.extendedTimeOut&&"removed"!==this.state&&(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}};const I=Object.assign({},d,{toastComponent:S});let N=w=class{static forRoot(t={}){return{ngModule:w,providers:[{provide:l,useValue:{default:I,config:t}}]}}}},EEGq:function(t,e,n){var a=n("juv8"),r=n("oCl/");t.exports=function(t,e){return a(t,r(t),e)}},EEJc:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("ajRT");n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return s})),n.d(e,"a",(function(){return u}));var i=a["ɵcrt"]({encapsulation:0,styles:[[".modal-header[_ngcontent-%COMP%]{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:5px 5px 0 0}  .modal-footer{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:0 0 5px 5px}  .modal-body{max-height:70vh;overflow-y:auto;overflow-x:hidden}"]],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"h4",[["class","modal-title float-left"]],null,null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵeld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close float-right"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["×"])),a["ɵncd"](null,1)],null,null)}function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-modal",[],null,null,null,s,i)),a["ɵdid"](1,49152,null,0,r.a,[],null,null)],null,null)}var u=a["ɵccf"]("cd-modal",r.a,o,{modalRef:"modalRef"},{hide:"hide"},[".modal-title",".modal-content"])},ENF9:function(t,e,n){"use strict";var a,r=n("2oRo"),i=n("4syw"),s=n("8YOa"),o=n("bWFh"),u=n("rKzb"),d=n("hh1v"),l=n("afO8").enforce,c=n("f5p1"),f=!r.ActiveXObject&&"ActiveXObject"in r,h=Object.isExtensible,g=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},p=t.exports=o("WeakMap",g,u);if(c&&f){a=u.getConstructor(g,"WeakMap",!0),s.REQUIRED=!0;var b=p.prototype,m=b.delete,y=b.has,v=b.get,x=b.set;i(b,{delete:function(t){if(d(t)&&!h(t)){var e=l(this);return e.frozen||(e.frozen=new a),m.call(this,t)||e.frozen.delete(t)}return m.call(this,t)},has:function(t){if(d(t)&&!h(t)){var e=l(this);return e.frozen||(e.frozen=new a),y.call(this,t)||e.frozen.has(t)}return y.call(this,t)},get:function(t){if(d(t)&&!h(t)){var e=l(this);return e.frozen||(e.frozen=new a),y.call(this,t)?v.call(this,t):e.frozen.get(t)}return v.call(this,t)},set:function(t,e){if(d(t)&&!h(t)){var n=l(this);n.frozen||(n.frozen=new a),y.call(this,t)?x.call(this,t,e):n.frozen.set(t,e)}else x.call(this,t,e);return this}})}},EOgW:function(t,e,n){!function(t){"use strict";t.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".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"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(t){return"หลังเที่ยง"===t},meridiem:function(t,e,n){return t<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n("wd/R"))},ES0t:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("8Y7J"),r=n("KOzp"),i=n("SVse"),s=a["ɵcrt"]({encapsulation:0,styles:[".bs3.popover-top[_nghost-%COMP%] {\n      margin-bottom: 10px;\n    }\n    .bs3.popover.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -2px;\n    }\n    .bs3.popover.top[_nghost-%COMP%] {\n      margin-bottom: 10px;\n    }\n    .popover.bottom[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -4px;\n    }\n    .bs3.bs-popover-left[_nghost-%COMP%] {\n      margin-right: .5rem;\n    }\n    .bs3.bs-popover-right[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%], .bs3.bs-popover-left[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%]{\n      margin: .3rem 0;\n    }"],data:{}});function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"h3",[["class","popover-title popover-header"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function u(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","popover-arrow arrow"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,o)),a["ɵdid"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"div",[["class","popover-content popover-body"]],null,null,null,null,null)),a["ɵncd"](null,0)],(function(t,e){t(e,2,0,e.component.title)}),null)}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"popover-container",[["role","tooltip"],["style","display:block;"]],[[8,"className",0],[2,"show",null],[2,"bs3",null]],null,null,u,s)),a["ɵdid"](1,49152,null,0,r.b,[r.a],null,null)],null,(function(t,e){t(e,0,0,"popover in popover-"+a["ɵnov"](e,1).placement+" bs-popover-"+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).containerClass,!a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).isBs3)}))}var l=a["ɵccf"]("popover-container",r.b,d,{placement:"placement",title:"title"},{},["*"])},EY2u:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var a=n("HDdC");const r=new a.a(t=>t.complete());function i(t){return t?function(t){return new a.a(e=>t.schedule(()=>e.complete()))}(t):r}},EgGo:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("SVse"),r=n("sne2");class i{constructor(t){this.base=t}static concatURLSegments(t){return t.reduce(a.Location.joinWithSlash)}static buildURL(t,...e){return i.concatURLSegments([...t?["/"]:[],...e])}getURL(t,e=!0,...n){return i.buildURL(e,this.base,t,...n)}getCreate(t=!0){return this.getURL(r.e.CREATE,t)}getCreateFrom(t,e=!0){return this.getURL(r.e.CREATE,e,t)}getDelete(t=!0){return this.getURL(r.e.DELETE,t)}getEdit(t,e=!0){return this.getURL(r.e.EDIT,e,t)}getUpdate(t,e=!0){return this.getURL(r.e.UPDATE,e,t)}getAdd(t=!0){return this.getURL(r.e.ADD,t)}getRemove(t=!0){return this.getURL(r.e.REMOVE,t)}getRecreate(t,e=!0){return this.getURL(r.e.RECREATE,e,t)}}},EiPl:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="de-DE">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Navigation umschalten</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dashboard</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Verzeichnis</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitore</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Services</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfiguration</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH-Zuordnung</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Manager-Module</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Protokolle</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Überwachung</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pools</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Block</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Images</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Spiegelung</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Dateisysteme</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Objektgateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Buckets</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Daten \n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> für\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>werden abgerufen. Bitte warten...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Zuvor zwischengespeicherte Daten\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  für \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> werden angezeigt.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Daten\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> für\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> konnten nicht geladen werden.\n  Prüfen Sie die Clusterintegrität.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Benachrichtigungen löschen</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Benachrichtigungen entfernen</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Dauer:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>Es sind keine Benachrichtigungen verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Aufträge und Benachrichtigungen</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Sprache auswählen</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Bereichsdaten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Lesen Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Überwachungsfunktion.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Das Grafana-Dashboard ist nicht vorhanden. In der\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> wird beschrieben,\n  wie Grafana Dashboards hinzugefügt werden.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana-Zeitauswahl</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Einstellungen für Zurücksetzungen</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Entfernen Sie den aktuellen Konfigurationswert. Stattdessen wird der Standard-Konfigurationswert übernommen und verwendet.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Zurück</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Das Passwort läuft in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>weniger als 1 \n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>Tag ab. Klicken Sie \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> hier \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, um es jetzt zu ändern.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Das Passwort läuft in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>Tag(en) ab. Klicken Sie \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> hier \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, um es jetzt zu ändern.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Das Modul "Orchestrator" ist nicht verfügbar. Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>zum Konfigurieren und Aktivieren dieses Moduls.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Daten konnten nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Filter löschen</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>ausgewählt</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>gefunden</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>insgesamt</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Name</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Beschreibung</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Detaillierte Beschreibung</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Standard</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon-Standard</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Werte</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Standard --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>wahr</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>falsch</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Speichern</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSH-Betrachter</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Laden...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Hostname</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Dies ist ein Pflichtfeld.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>Der ausgewählte Hostname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Sind Sie sicher dass Sie die ausgewählten Einträge \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> möchten?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Sind Sie sicher dass Sie die ausgewählten \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> möchten?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ja, ich bin sicher.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Abbrechen</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Schließen</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Liste mit Hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Gesamtleistung</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Laufwerke</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Keine Einträge gefunden</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Clusterprotokolle</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Revisionsprotokoll</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priorität:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Schlüsselwort:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Datum:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datumsauswahl</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Zeitraum:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Konfiguration wird geladen...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Die Konfiguration konnte nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Manager-Modul bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Der eingegebene Wert ist kein gültiger UUID, z. B.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Der eingegebene Wert muss eine gültige IP-Adresse sein.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er muss kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/> sein oder diesem Wert entsprechen.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er muss größer als \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/> sein oder diesem Wert entsprechen.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Der eingegebene Wert muss eine Zahl sein.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Der eingegebene Wert muss eine Zahl oder Dezimalzahl sein.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aktualisiere</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Cluster-ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Monmap geändert</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>Monmap-Epoche</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>erforderliche Verbindung</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>erforderliche Überwachung</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>In Quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Nicht in Quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>Vorschau der OSD-Erstellung</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> Laufwerke\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Löschen</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Geteilte Laufwerke</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL Slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>Wie viele OSDs pro WAL-Laufwerk.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Geben Sie 0 an, um das Orchestrator-Backend entscheiden zu lassen.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Der Wert sollte größer als oder gleich 0 sein</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB Slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>Wie viele OSDs pro DB-Laufwerk.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funktionen</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Vorschau</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Clusterweite OSD-Flags</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Absenden</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Erweitert...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Erweiterte Konfigurationsoptionen</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD-Wiederherstellungspriorität</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorität</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Prioritätswerte anpassen</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Dies ist ein Pflichtfeld!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Der Wert muss zwischen 0 und 1 liegen.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Neu gewichten</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Tief } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {tief } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD-Liste</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Aktive Warnungen</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>Alle Warnungen</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Wählen Sie das zu vergleichende Attribut --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Wert</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Regulären Ausdruck verwenden</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Löschen</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Das Bearbeiten einer Stummschaltung löscht die Vorherige und legt eine neue Stummschaltung an.</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Ersteller</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Kommentar</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Startzeit</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>Wenn die Startzeit in der Vergangenheit liegt, wird die Erstellungszeit verwendet</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Dauer</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>Ende</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Integrität</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiken</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für NFS Ganesha.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clients</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Jeder Client hat Zugriff</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adressen</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Pflichtfeld</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Muss mindestens einen kommagetrennten Wert enthalten</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Beispielsweise:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Zugriffstyp</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Clients hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Kein Cluster verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Cluster auswählen --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Daemon hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Speicher-Back-End</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Keine Datenpools verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Speicher-Back-End auswählen --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Objektgatewaybenutzer</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Keine Benutzer verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Objektgatewaybenutzer auswählen --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS-Benutzer-ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- keine Clients verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephx-Client auswählen --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS-Name</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- Kein CephFS Dateisystem verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- CephFS Dateisystem auswählen --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Sicherheitsbezeichnung</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Sicherheitsbezeichnung aktivieren</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS-Pfad</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Pfad muss mit einem \'/\' beginnen und kann von einem Wort gefolgt werden</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Neues Verzeichnis wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Pfad</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Pfad darf nur ein einzelner \'/\' oder ein Wort sein</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Neuer Bucket wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS-Protokoll</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS-Tag</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternativer Zugriff für \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>-Mountpunkte (dürfen keinen führenden / enthalten)\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Clients können Unterverzeichnisse möglicherweise nicht mounten (d. h. wenn der Pfad = foo ist, kann der Client foo/baz möglicherweise nicht mounten).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Wenn unterschiedliche Tag-Optionen verwendet werden, wird derselbe Pfad möglicherweise mehrfach exportiert.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>Die Position dieses \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>-Exports\n                auf dem \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo-Dateisystem\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (muss eindeutig sein).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Wenn unterschiedliche Pseudo-Optionen verwendet werden, wird derselbe Pfad möglicherweise mehrfach exportiert.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Kein Zugriffstyp verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Zugriffstyp auswählen --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>Das NFS-Backend für das Objektgateway besitzt eine Reihe von\n Einschränkungen, die Schreibvorgänge von Anwendungen auf diese\n Freigaben ernsthaft beeinträchtigen. Bitte konsultieren Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> Dokumentation \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> für weitere Informationen, bevor Sie den Schreibzugriff aktivieren.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Kein Squash verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Durchzuführende Benutzer-ID-Squashing-Art auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Transportprotokoll</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Altes Passwort</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>Das alte und neue Passwort müssen unterschiedlich sein.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>Neues Passwort</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Neues Passwort bestätigen</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Passwortbestätigung stimmt nicht mit dem neuen Passwort überein.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Bitte legen Sie ein neues Passwort fest.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>Sie werden anschließend auf die Login-Seite weitergeleitet.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Willkommen bei Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Benutzername ist erforderlich</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Passwort ist erforderlich</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Anmeldung</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Der Benutzer ist in Ceph leider nicht enthalten.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Kehren Sie zur \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Anmeldeseite\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zurück. Sie werden vom Identitätsanbieter abgemeldet, wenn Sie versuchen, sich erneut anzumelden.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Verboten</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Leider sind Sie nicht berechtigt, den gewünschten Inhalt anzuzeigen.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Leider konnte der gewünschte Inhalt nicht gefunden werden.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Weder Hostname noch OSD ID angegeben</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>bestanden</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>fehlgeschlagen</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Laufwerksinformationen</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>Keine SMART-Daten für dieses Laufwerk verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART-Daten werden geladen.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD-Konfiguration</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Entfernen Sie den lokalen Konfigurationswert. Stattdessen wird der übergeordnete Konfigurationswert übernommen und verwendet.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Der Mindestwert lautet 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Pool-Liste</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Der Name darf nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Der ausgewählte Erasure-Coding-Profilname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Laufwerksklasse</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Datenblöcke (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Muss größer oder gleich 2 sein.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Datenblöcke für die Codierung (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Muss größer oder gleich 1 sein.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Dauerhaftigkeitsschätzung (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Standort (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Crush-Ausfalldomäne</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Crush-Standort</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Keine</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technik</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Paketgröße</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crush-Stamm</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Crush-Geräteklasse</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>beliebig</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Verzeichnis</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Name...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Der ausgewählte Poolname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Pooltyp</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Pooltyp auswählen --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoskalierung</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Platzierungsgruppen</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Es wird mindestens eine Platzierungsgruppe benötigt.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Ihr Cluster kann nicht so viele Platzierungsgruppen verarbeiten. Berechnen Sie die benötigte Anzahl an Platzierungsgruppen.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Hilfe zur Berechnung</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>Die aktuellen Einstellungen für die Platzierungsgruppen wurden für Sie berechnet.\n                    Stellen Sie vor dem Senden sicher, dass die Werte Ihren Anforderungen entsprechen.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Reproduzierte Größe</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>Die angegebene Größe liegt außerhalb des Bereichs. Gültige Werte liegen zwischen\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> und \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flags</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC-Überschreibungen</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Anwendungen</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Kein Erasure-Coding-Profil verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Erasure-Coding-Profil auswählen --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Crush-Regelsatz</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>Ein neuer CRUSH Regelsatz wird implizit erstellt.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>Keine Regeln vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Crush-Regel auswählen --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crush-Regel</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush-Schritte</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Komprimierung</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modus</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorithmus</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Kein Komprimierungsalgorithmus für Erasure-Coding verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimale Blobgröße</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>z. B. 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Wert sollte größer als 0 sein</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Wert sollte niedriger als die maximale Blobgröße sein</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Maximale Blobgröße</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>z. B. 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Wert sollte größer als die minimale Blobgröße sein</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Verhältnis</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Komprimierungsverhältnis</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Wert sollte zwischen 0,0 und 1,0 liegen</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Kontingente</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max. Bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Lassen Sie das Feld leer oder geben Sie 0 an, um dieses Quota zu deaktivieren.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>Ein gültiges Kontingent sollte größer als 0 sein.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>z. B. 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max. Objekte</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>Der Wert sollte größer als oder gleich 0 sein</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Details</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Leistungsdetails</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Details zu den Cache-Ebenen</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Bootstrap-Token erstellen</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site-Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>Mindestens ein Pool ist erforderlich.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Erzeugen</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Erzeugtes Token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Bootstrap-Token importieren</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Richtung</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>Der Token ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Site-Namen bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site-Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Image in Papierkorb verschieben</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Schutz läuft ab am</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NICHT GESCHÜTZT</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Falsches Datumsformat. Verwenden Sie "TT.MM.JJJJ HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Schutz ist bereits abgelaufen. Wählen Sie ein künftiges Datum aus oder lassen Sie es leer.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Image verschieben</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Muss grösser oder gleich \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Muss kleiner oder gleich \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Übersicht</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Ziele</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Ermittlungsauthentifizierung</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Benutzernamen müssen zwischen 8 und 64 Zeichen lang sein und\n              dürfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Passwort</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Gemeinsamer Benutzer</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Gemeinsames Passwort</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Lesen Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für iSCSI-Ziele.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Verfügbare Informationen:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI-Ziele nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Ermittlungsauthentifizierung</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Nur für RBD-Images verfügbar, bei denen \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> aktiviert ist\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Datenpool</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Erstellt</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Größe</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objekte</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Objektgröße</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Bereitgestellt</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>n. v.</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Bereitgestellt gesamt</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Striping-Einheit</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Striping-Anzahl</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Übergeordnet</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Präfix für Blockname</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Reihenfolge</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshots</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Diese Einstellung überschreibt den globalen Wert</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Dies ist der globale Wert. Kein Wert für diese Option wurde für dieses Image festgelegt.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' und \'@\' sind nicht zulässig.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Keine rbd-Pools verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Pool auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- Keine Namensräume verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Namensraum auswählen --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Dedizierten Datenpool verwenden</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Datenpool</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Dedizierter Pool zur Speicherung von RBD-Objektdaten.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Sie müssen die Größe erhöhen.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Erweitert</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Striping</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Stripe-Einheit</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Stripe-Einheit auswählen --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Dies ist ein Pflichtfeld, da eine Stripe-Anzahl definiert wurde!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Die Stripe-Einheit ist größer als die Objektgröße.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Stripe-Anzahl</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Dies ist ein Pflichtfeld, da eine Stripe-Einheit definiert wurde!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Die Stripe-Anzahl muss größer als 0 sein.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Namensraum anlegen</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namensraum existiert bereits.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Sie sind dabei, ein Rollback durchzuführen</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Papierkorb bereinigen</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Alle</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Poolname...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Image wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Zum Wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>Neuen Namen des Images eingeben und klicken</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Neuer Name</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Abgelaufen am</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Geschützt bis</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>Dieses Image ist geschützt bis \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI-Topologie</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Konfigurieren</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Eine Änderung dieser Parameter von ihren Standardwerten ist in der Regel nicht erforderlich.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Bezeichner</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Bestätigen</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Erweiterte Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Ziel-IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN hat ein fehlerhaftes Muster.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>Eine IQN hat die folgende Notation \n\'iqn.$jahr-$monat.$umkehradresse:$definierterName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Zum Beispiel: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Weitere Informationen</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Erweiterte Einstellungen bei diesem Ziel wurden geändert.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portale</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Portal hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>Es sind mindestens \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> Gateways erforderlich.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Einstellungen bei diesem Image wurden geändert.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Image hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL-Authentifizierung</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Initiatoren</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Initiator</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Client-IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Initiator-IQN muss eindeutig sein.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Benutzernamen müssen zwischen 8 und 64 Zeichen lang sein und\n                        dürfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Der Initiator gehört zu einer Gruppe. Images werden in der Gruppe konfiguriert.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Keine Elemente hinzugefügt.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Initiator hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Gruppen</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Gruppe</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Gruppe hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namensräume</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Papierkorb</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Probleme</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Wird synchronisiert</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Fertig</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Spiegelungsmodus für Pool bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Wählen Sie zum Bearbeiten des Spiegelungsmodus für den Pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> einen neuen Modus aus der Liste aus und klicken Sie auf \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Aktualisieren\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Vor dem Deaktivieren der Spiegelung müssen Peer-Cluster entfernt werden.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  Peer für Poolspiegelung\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Bearbeiten} other {Hinzufügen} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Clustername</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Der Clustername ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX-ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX-ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>Die CephX ID ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adressen der Monitore</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Kommagetrennte Adressen...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Die Anrede ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64-codierter Schlüssel...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX-Schlüssel muss base64-codiert sein.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Leistungsindikatoren nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für das Objektgateway.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Liste der Daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Leistungsindikatoren</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Bucket-Daten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Der Wert ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Der ausgewählte Name wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Inhaber</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Benutzer auswählen --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Aktiviert</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Indextyp</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Platzierungsregel</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marker</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Maximum für Marker</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Masterversion</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Änderungszeit</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Zonengruppe</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Bucket-Quote</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Maximale Größe</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Unbegrenzt</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Maximale Objekte</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Benutzername</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Benutzername auswählen --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Schlüssel automatisch generieren</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Zugriffsschlüssel</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Geheimer Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Vollständiger Name</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>E-Mail-Adresse</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Angehalten</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>System</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Maximale Buckets</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Befähigungen</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Benutzerquote</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Anzeigen</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Typ auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Berechtigung</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Berechtigung auswählen --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Die ausgewählte Unterbenutzer-ID wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lesen, schreiben</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>voll</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Geheimnis automatisch generieren</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Benutzerdaten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Die Benutzerdaten konnten nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Die ausgewählte Benutzer-ID wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Dies ist keine gültige E-Mail-Adresse.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Die ausgewählte E-Mail-Adresse wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Max. Buckets</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Benutzerdefiniert</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Keine Unterbenutzer vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Keine Schlüssel vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Keine Befähigungen vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Unbegrenzte Größe</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Max. Größe</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Unbegrenzte Objekte</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Max. Objekte</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Der eingegebene Wert muss &gt;=0 sein.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Beschreibung...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Berechtigungen</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Rollen</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Passwort bestätigen</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Passwortbestätigung stimmt nicht mit dem Passwort überein.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Ablaufdatum des Passworts</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Ablaufdatum des Passworts...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-Mail-Adresse</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Ungültige E-Mail-Adresse.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>Benutzer muss das Passwort bei der nächsten Anmeldung ändern</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Sie sind dabei, die Lese-/Aktualisierungsberechtigungen für Benutzer von Ihrem eigenen Benutzer zu entfernen.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Wenn Sie den Vorgang fortsetzen, können Sie Benutzerrollen nicht mehr hinzufügen oder entfernen.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Möchten Sie den Vorgang wirklich fortsetzen?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Hilfe</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentation</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Über</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Dashboard-Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Benutzerverwaltung</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Angemeldeter Benutzer</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Angemeldet als\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Passwort ändern</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Abmelden</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attribute (OSD-Zuordnung)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadaten nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadaten</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Laufwerkszustand</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Leistungsindikator</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogramm nicht verfügbar: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Schreiben</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lesen</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogramm</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>Hostname nicht gefunden.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Aktuelle Werte</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Quelle</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Ebene</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Kann zur Laufzeit aktualisiert werden (bearbeitbar)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tags</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Auflistungswerte</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Siehe auch</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Clusterstatus</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manager-Daemons</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Objektgateways</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Metadatenserver</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI-Gateways</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>Client-IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Clientdurchsatz</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Client-Lese-/Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Wiederherstellungsdurchsatz</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Scrub</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Leistung</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Rohkapazität</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Platzierungsgruppen pro OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Platzierungsgruppenstatus</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapazität</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> Weitere Details finden Sie in den \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Protokollen\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Ränge</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS Leistungsindikatoren</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Verzeichnisse</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Aktuell</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target> Ermittlungsauthentifizierung aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Keine Portale verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Keine Images verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Keine Images verfügbar. Fügen Sie dem Ziel ein Image hinzu.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Keine Initiatoren verfügen. Fügen Sie dem Ziel einen Initiator hinzu.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Ziel</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Zustand</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes für Lesevorgang</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes für Schreibvorgang</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O seit</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instanz</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problem</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Fortschritt</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Bearbeitungsmodus</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Peer hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Peer bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Peer löschen</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># lokal</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># remote</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>Peer spiegeln</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Umfassende Vereinfachung</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Schichtung</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Exklusive Sperre</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Objektzuordnung (erfordert exklusive Sperre)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journaling (erfordert exklusive Sperre)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namensraum</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Images insgesamt</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namensraum enthält Images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NICHT GESCHÜTZT</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback für RBD-Snapshot</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD-Snapshot</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Gelöscht am</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>Zustand</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>Stamm</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Standby-Daemons</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Rang</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivität</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Nutzung</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Der Wert kann zur Laufzeit aktualisiert werden.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemons/Clients rufen diesen Wert nicht aus der\n      Datenbank \'monitor config\' ab. Es ist nicht zulässig, diese Option über \'ceph config\n      set ...\' festzulegen. Diese Option sollte über \'ceph.conf\' oder an der\n      Befehlszeile konfiguriert werden.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Die Option wird nur während des Daemon-Starts wirksam.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Die Option wirkt sich nur auf die Cluster-Erstellung aus.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Die Option wirkt sich nur auf die Daemon-Erstellung aus.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Aktualisierte Konfigurationsoption \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Service</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Aktueller Wert</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Bearbeitbar</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Laufwerkspfad</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identifiziere Laufwerk \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifikation von \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' auf Host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\' gestartet\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Aktivieren</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Deaktivieren</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Verbindung wird erneut hergestellt, bitte warten...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Öffentliche Adresse</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Offene Sitzungen</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Kein In-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSDs, die zuvor als \'out\' markiert wurden, werden beim Start nicht wieder markiert</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Kein Out-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSDs werden nach dem konfigurierten Intervall nicht automatisch als \'out\' markiert</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Kein Up-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSDs dürfen nicht gestartet werden</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Kein Down-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>OSD-Fehlerberichte werden ignoriert, sodass die Monitore die OSDs nicht als ausgefallen markieren</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pause</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Hält Lese- und Schreibvorgänge an</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Kein Scrub</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Scrubbing ist deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Kein umfassender Scrub</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Umfassendes Scrubbing ist deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Kein Abgleich</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Abgleich der Platzierungsgruppen ist ausgesetzt</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Keine Wiederherstellung</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Wiederherstellung der Platzierungsgruppen ist ausgesetzt</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Bitweise Sortierung</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Bitweise Sortierung verwenden</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Bereinigte Snapdirs</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDs besitzen konvertierte Snapsets</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Löschvorgänge bei Wiederherstellungen</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Bei der Wiederherstellung anstelle des Peerings durchgeführte Löschvorgänge</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Hardlimit für Platzierungsgruppen-Protokoll</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Legt ein Hardlimit für die Platzierungsgruppen-Protokolllänge fest</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Aktualisierte OSD-Flags</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>aus</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>ein</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>ausgefallen</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Markieren</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD verloren</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>markierter Verlust</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Bereinigen</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>bereinigt</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>vernichten</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>vernichtet</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>löschen</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Wiederherstellungspriorität</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG Scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Platzierungsgruppen</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes für Lesevorgang</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes für Schreibvorgang</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/> markieren\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/> markieren\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG Scrub-Optionen</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Aktualisierte PG Scrub-Optionen</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max. Abgleiche</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Wiederherstellung, max. aktiv</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Wiederherstellung, max. - einzelner Start</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Wiederherstellung - Inaktivität</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Auftrag</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Schweregrad</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Gestartet</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attributname</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regulärer Ausdruck</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Bitte fügen Sie Ihren Prometheus-Host zur Dashboard-Konfiguration hinzu und aktualisieren die Seite</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Erstellt von</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Endet</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Verwendet</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Verf.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Bereinigen</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>In Bearbeitung</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Warnung</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Unbekannt</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>aktiv</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>keine Dateisysteme</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktiv</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>Standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n. v.</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktiver Daemon</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>Quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Der NFS Ganesha-Dienst ist nicht konfiguriert.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS-Benutzer</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS-Dateisystem</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(aus globaler Konfiguration übernommen)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>aus globaler Konfiguration übernommen</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Durchzuführende Benutzer-ID-Squashing-Art auswählen --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Keine Daemons verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS-Export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC-Profil</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Cache-Modus</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min. Alter für Vertreibung</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min. Alter für Leerung</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Max. Bytes für Ziel</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Max. Objekte für Ziel</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Keine Anwendungen hinzugefügt</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Anwendungslimit erreicht</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Ein Pool kann nur bis zu vier Anwendungsdefinitionen aufweisen.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Zulässige Zeichen \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Maximale Länge beträgt 128 Zeichen</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Anwendungen filtern oder hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Anwendung hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Größe des Replikats</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Letzte Änderung</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Crush-Regelsatz</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Das Löschen des Pools ist durch die Konfigurationsoption mon_allow_pool_delete deaktiviert.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>Bucket</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>Buckets</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Laufwerks-ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Laufwerksname</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Bereich</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lesen</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Erstelle</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>Rolle</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' erstellt\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' aktualisiert\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Systemrolle</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' gelöscht\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Benutzer aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Fortfahren</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Sie wurden automatisch abgemeldet, da Ihre Rollen geändert wurden.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>Passwort</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Benutzerpasswort aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Jedes Objekt wird in Datenblöcke aufgeteilt und jeweils auf einem anderen OSD gespeichert.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Berechnen Sie Codierungsdatenblöcke für jedes Objekt und speichern Sie sie auf unterschiedlichen OSDs.\n      Die Anzahl der Codierungsdatenblöcke entspricht auch der Anzahl der OSDs, die ausfallen können, ohne dass Daten verloren gehen.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Das jerasure-Modul ist das allgemeinste und flexibelste Modul\n          und fungiert auch als der Standard für Ceph-Pools mit Löschcodierung.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Die flexiblere Technik ist \'reed_sol_van :\', wobei es ausreicht, k\n          und m festzulegen. Die Technik \'cauchy_good\' kann schneller sein. Sie müssen jedoch die Paketgröße sorgfältig\n          auswählen. Sämtliche \'reed_sol_r6_op\'-, \'liberation\'-, \'blaum_roth\'- und \'liber8tion\'-Vorgänge sind dahingehend RAID6-Entsprechungen,\n          dass sie nur mit \'m=2\' konfiguriert werden können.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Die Codierung wird jeweils für Pakete auf Bytes-Größe vorgenommen.\n          Die Auswahl der richtigen Paketgröße ist schwierig.\n          In der Jerasure-Dokumentation sind ausführliche Informationen zu diesem Thema enthalten.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Bei Verwendung des Jerasure-Moduls, wenn ein Objekt mit Löschcodierung auf mehreren OSDs gespeichert ist,\n          müssen alle anderen OSDs gelesen werden, um die verloren gegangenen Daten eines OSDs wiederherzustellen.\n          Wenn jerasure beispielsweise mit \'k=8\' und \'m=4\' konfiguriert ist,\n          müssen bei Verlust eines OSDs zum Reparieren die elf anderen gelesen werden.\n\n          Das lrc-Löschcode-Modul erstellt lokale Paritätsdatenblöcke, um die Wiederherstellung mit weniger OSDs auszuführen.\n          Wenn lrc beispielsweise mit \'k=8\', \'m=4\' und \'l=4\' konfiguriert ist, wird ein zusätzlicher Paritätsdatenblock für jeweils vier OSDs erstellt.\n          Geht ein einzelnes OSD verloren, kann es mit nur vier OSDs anstelle\n          von elf wiederhergestellt werden.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Gruppieren Sie die Codierungs- und Datenblöcke in Sätze entsprechend dem Speicherort.\n          Beispielsweise werden für \'k=4\' und \'m=2\', wenn der Speicherort \'3\' entspricht, zwei Dreiergruppen erstellt.\n          Jeder Satz kann wiederhergestellt werden, ohne dass Datenblöcke aus einem anderen Satz gelesen werden.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Der Typ des Crush-Buckets, in dem jeder durch l definierte Satz von Datenblöcken gespeichert wird.\n          Wenn er beispielsweise auf \'rack\' festgelegt ist, wird jede Gruppe an l-Datenblöcken in einem anderen Rack platziert.\n          Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise für einen Schritt zum Auswählen des Racks.\n          Wenn er nicht festgelegt ist, wird keine solche Gruppierung vorgenommen.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Das isa-Modul kapselt die ISA-Bibliothek und wird nur auf Intel-Prozessoren ausgeführt.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Das ISA-Modul wird in zwei Reed Solomon-Formularen bereitgestellt.\n          Wenn \'reed_sol_van\' festgelegt ist, entspricht dies Vandermonde. Ist \'cauchy\' festgelegt, entspricht dies \'Cauchy\'.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Das shec-Modul kapselt die SHEC-Mehrfachbibliothek.\n          Dadurch kann ceph Daten effizienter wiederherstellen als Reed Solomon-Codes.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Die Anzahl der Paritätsdatenblöcke, von denen jeder jeden Datenblock in seinem Berechnungsbereich enthält.\n          Die Anzahl wird als eine Dauerhaftigkeitsschätzung verwendet. Wenn beispielsweise \'c=2\' vorliegt,\n          können 2 OSDs ausfallen, ohne dass Daten verloren gehen.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Der Name des für den ersten Schritt der CRUSH-Regel verwendeten Crush-Buckets.\n      Beispielsweise \'step take default\'.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Stellen Sie sicher, dass sich keine zwei Datenblöcke in einem Bucket mit derselben Ausfalldomäne befinden.\n      Wenn die Ausfalldomäne beispielsweise als Host fungiert, werden keine zwei Datenblöcke auf demselben Host gespeichert.\n      Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise \'step chooseleaf host\'.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Schränken Sie mithilfe der Klassennamen für Crush-Geräte in der CRUSH-Zuordnung die Platzierung\n      auf Geräte einer bestimmten Klasse (z. B. SSD oder HDD) ein.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Legen Sie den Verzeichnisnamen fest, über den das Löschcode-Modul geladen wird.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Lässt alle Vorgänge zu</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Lässt nur Vorgänge zu, die den Server nicht ändern</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Lässt weder Lese- noch Schreibvorgänge zu, jedoch alle anderen Vorgänge</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Lässt Lese-/Schreibvorgänge und andere Vorgänge nicht zu, die Dateiattribute oder Verzeichnisinhalte ändern</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Lässt überhaupt keinen Zugriff zu</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Priorität auswählen --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Niedrig</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Hoch</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informationen</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Letzte 5 Minuten</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Letzte 15 Minuten</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Letzte 30 Minuten</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Letzte Stunde (Standard)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Letzte 3 Stunden</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Letzte 6 Stunden</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Letzte 12 Stunden</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Letzte 24 Stunden</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Gestern</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Heute</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Heute bisher</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Vorgestern</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Letzte 2 Tage</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Dieser Tag letzte Woche</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Vorwoche</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Diese Woche</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Diese Woche bisher</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Letzte 7 Tage</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Vormonat</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Dieser Monat</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Dieser Monat bisher</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Letzte 30 Tage</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Letzte 90 Tage</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Letzte 6 Monate</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Letztes Jahr</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Vorjahr</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Dieses Jahr</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Dieses Jahr bisher</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Letzte 2 Jahre</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Letzte 5 Jahre</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Keine Elemente ausgewählt.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Elementauswahl zum erneuten Auswählen aufheben</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Auswahllimit erreicht</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tags filtern</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Badge hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Keine Elemente verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Entfernen</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klonen</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopieren</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Umfassender Scrub</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Vernichten</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Vereinfachen</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Als ausgefallen markieren</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Mit Befehl \'In\' markieren</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Als verloren markieren</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Mit Befehl \'Out\' markieren</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Schützen</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Umbenennen</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>In Papierkorb verschieben</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Schutz aufheben</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Ändern</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Gelöscht</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Hinzugefügt</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Entfernt</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Bearbeitet</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Abgebrochen</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Geklont</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Kopiert</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Vereinfacht</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Geschützt</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Bereinigt</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Umbenannt</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Wiederhergestellt</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback wurde ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>In den Papierkorb verschoben</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Schutz aufgehoben</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Abgelaufen</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ja</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Nein</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Erforderliche Regeln für Passwörter:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>keine aktiven Warnungen</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 aktive Warnung</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> aktive Warnungen\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> mit \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Quality of Service</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS-Limit</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Das gewünschte Limit der E/A-Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS-Limit</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Das gewünschte Limit der E/A-Vorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>BPS-Limit für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Das gewünschte Limit der gelesenen Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>IOPS-Limit für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Das gewünschte Limit für Lesevorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>BPS-Limit für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Das gewünschte Limit der geschriebenen Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>IOPS-Limit für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Das gewünschte Limit für Schreibvorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS-Block</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Das gewünschte Blocklimit der E/A-Bytes.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS-Block</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Das gewünschte Blocklimit der E/A-Vorgänge.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>BPS-Block für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Das gewünschte Blocklimit der gelesenen Bytes.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>IOPS-Block für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Das gewünschte Blocklimit der Lesevorgänge.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>BPS-Block für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Das gewünschte Blocklimit der geschriebenen Bytes.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>IOPS-Block für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Das gewünschte Blocklimit der Schreibvorgänge.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Wird ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>ausführen</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>Unbekannte Aufgabe</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>erstellen</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Wird aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Wird gelöscht</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD-Snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>Spiegelungsmodus für Pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>Alle Dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> enthält Snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Wird geklont</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klonen</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot von \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> muss geschützt sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Wird kopiert</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>kopieren</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Wird vereinfacht</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>vereinfachen</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Der Schutz von \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> kann aufgrund untergeordneter Images nicht aufgehoben werden.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> kann nicht gelöscht werden, da es geschützt ist.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Rollback wird ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>Rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Wird verschoben</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>verschieben</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Verschoben</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' in Papierkorb verschieben\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Image konnte nicht gefunden werden.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Wird wiederhergestellt</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' in \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\' verschieben\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image-Name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' wird bereits verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Wird bereinigt</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>bereinigen</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>alle Pools</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>Images von \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Spiegelung kann nicht deaktiviert werden, da sie einen Peer enthält.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>Pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>Erasure-Coding-Profil \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>Ziel \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},EmSq:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=n("LvDl");n("Fgil"),n("aXbf");class i{constructor(t,e,n,r){this.elementRef=t,this.control=e,this.dimlessBinaryPipe=n,this.formatter=r,this.ngModelChange=new a.EventEmitter,this.el=this.elementRef.nativeElement}ngOnInit(){this.setValue(this.el.value)}setValue(t){/^[\d.]+$/.test(t)&&(t+=this.defaultUnit||"m");const e=this.formatter.toBytes(t),n=this.round(e);this.el.value=this.dimlessBinaryPipe.transform(n),null!==e?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))}round(t){if(null!==t&&0!==t){if(!r.isUndefined(this.minBytes)&&t<this.minBytes)return this.minBytes;if(!r.isUndefined(this.maxBytes)&&t>this.maxBytes)return this.maxBytes;if(!r.isUndefined(this.roundPower)){const e=Math.round(Math.log(t)/Math.log(this.roundPower));return Math.pow(this.roundPower,e)}}return t}onBlur(t){this.setValue(t)}}},EpBk:function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},ExA7:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"F+uO":function(t,e,n){var a={"./messages.cs.xlf":"ViD7","./messages.de-DE.xlf":"EiPl","./messages.es-ES.xlf":"yt+r","./messages.fr-FR.xlf":"V5SL","./messages.id-ID.xlf":"jqst","./messages.it-IT.xlf":"8j5A","./messages.ja-JP.xlf":"bN42","./messages.ko-KR.xlf":"3+CB","./messages.pl-PL.xlf":"SPu7","./messages.pt-BR.xlf":"+Wg/","./messages.zh-CN.xlf":"AiMb","./messages.zh-TW.xlf":"HjS5"};function r(t){var e=i(t);return n(e)}function i(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="F+uO"},F8JR:function(t,e,n){"use strict";var a=n("tycR").forEach,r=n("pkCn"),i=n("rkAj"),s=r("forEach"),o=i("forEach");t.exports=s&&o?[].forEach:function(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}},FE24:function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return f})),n.d(e,"c",(function(){return h})),n.d(e,"d",(function(){return g})),n.d(e,"e",(function(){return b})),n.d(e,"f",(function(){return l})),n.d(e,"g",(function(){return p}));var a=n("8Y7J"),r=n("pLZG"),i=n("z/SZ"),s=n("hpHm"),o=n("GS7A"),u=n("2uy1");class d{constructor(){this.autoClose=!0,this.insideClick=!1,this.isAnimated=!1}}class l{constructor(){this.direction="down",this.isOpenChange=new a.EventEmitter,this.isDisabledChange=new a.EventEmitter,this.toggleClick=new a.EventEmitter,this.dropdownMenu=new Promise(t=>{this.resolveDropdownMenu=t})}}const c=[Object(o.h)({height:0,overflow:"hidden"}),Object(o.e)("220ms cubic-bezier(0, 0, 0.2, 1)",Object(o.h)({height:"*",overflow:"hidden"}))];class f{constructor(t,e,n,a,r){this._state=t,this.cd=e,this._renderer=n,this._element=a,this.isOpen=!1,this._factoryDropDownAnimation=r.build(c),this._subscription=t.isOpenChange.subscribe(t=>{this.isOpen=t;const e=this._element.nativeElement.querySelector(".dropdown-menu");this._renderer.addClass(this._element.nativeElement.querySelector("div"),"open"),e&&!Object(s.d)()&&(this._renderer.addClass(e,"show"),e.classList.contains("dropdown-menu-right")&&(this._renderer.setStyle(e,"left","auto"),this._renderer.setStyle(e,"right","0")),"up"===this.direction&&(this._renderer.setStyle(e,"top","auto"),this._renderer.setStyle(e,"transform","translateY(-101%)"))),e&&this._state.isAnimated&&this._factoryDropDownAnimation.create(e).play(),this.cd.markForCheck(),this.cd.detectChanges()})}get direction(){return this._state.direction}_contains(t){return this._element.nativeElement.contains(t)}ngOnDestroy(){this._subscription.unsubscribe()}}class h{constructor(t,e,n,a,r,i,s){this._elementRef=t,this._renderer=e,this._viewContainerRef=n,this._cis=a,this._state=r,this._config=i,this._isInlineOpen=!1,this._subscriptions=[],this._isInited=!1,this._state.autoClose=this._config.autoClose,this._state.insideClick=this._config.insideClick,this._state.isAnimated=this._config.isAnimated,this._factoryDropDownAnimation=s.build(c),this._dropdown=this._cis.createLoader(this._elementRef,this._viewContainerRef,this._renderer).provide({provide:l,useValue:this._state}),this.onShown=this._dropdown.onShown,this.onHidden=this._dropdown.onHidden,this.isOpenChange=this._state.isOpenChange}set autoClose(t){this._state.autoClose=t}get autoClose(){return this._state.autoClose}set isAnimated(t){this._state.isAnimated=t}get isAnimated(){return this._state.isAnimated}set insideClick(t){this._state.insideClick=t}get insideClick(){return this._state.insideClick}set isDisabled(t){this._isDisabled=t,this._state.isDisabledChange.emit(t),t&&this.hide()}get isDisabled(){return this._isDisabled}get isOpen(){return this._showInline?this._isInlineOpen:this._dropdown.isShown}set isOpen(t){t?this.show():this.hide()}get isBs4(){return!Object(s.d)()}get _showInline(){return!this.container}ngOnInit(){this._isInited||(this._isInited=!0,this._dropdown.listen({outsideClick:!1,triggers:this.triggers,show:()=>this.show()}),this._subscriptions.push(this._state.toggleClick.subscribe(t=>this.toggle(t))),this._subscriptions.push(this._state.isDisabledChange.pipe(Object(r.a)(t=>t)).subscribe(t=>this.hide())))}show(){if(!this.isOpen&&!this.isDisabled)return this._showInline?(this._inlinedMenu||this._state.dropdownMenu.then(t=>{this._dropdown.attachInline(t.viewContainer,t.templateRef),this._inlinedMenu=this._dropdown._inlineViewRef,this.addBs4Polyfills(),this._renderer.addClass(this._inlinedMenu.rootNodes[0].parentNode,"open"),this.playAnimation()}).catch(),this.addBs4Polyfills(),this._isInlineOpen=!0,this.onShown.emit(!0),this._state.isOpenChange.emit(!0),void this.playAnimation()):void this._state.dropdownMenu.then(t=>{const e=this.dropup||void 0!==this.dropup&&this.dropup;this._state.direction=e?"up":"down";const n=this.placement||(e?"top start":"bottom start");this._dropdown.attach(f).to(this.container).position({attachment:n}).show({content:t.templateRef,placement:n}),this._state.isOpenChange.emit(!0)}).catch()}hide(){this.isOpen&&(this._showInline?(this.removeShowClass(),this.removeDropupStyles(),this._isInlineOpen=!1,this.onHidden.emit(!0)):this._dropdown.hide(),this._state.isOpenChange.emit(!1))}toggle(t){return this.isOpen||!t?this.hide():this.show()}_contains(t){return this._elementRef.nativeElement.contains(t.target)||this._dropdown.instance&&this._dropdown.instance._contains(t.target)}ngOnDestroy(){for(const t of this._subscriptions)t.unsubscribe();this._dropdown.dispose()}addBs4Polyfills(){Object(s.d)()||(this.addShowClass(),this.checkRightAlignment(),this.addDropupStyles())}playAnimation(){this._state.isAnimated&&this._inlinedMenu&&this._factoryDropDownAnimation.create(this._inlinedMenu.rootNodes[0]).play()}addShowClass(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.addClass(this._inlinedMenu.rootNodes[0],"show")}removeShowClass(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.removeClass(this._inlinedMenu.rootNodes[0],"show")}checkRightAlignment(){if(this._inlinedMenu&&this._inlinedMenu.rootNodes[0]){const t=this._inlinedMenu.rootNodes[0].classList.contains("dropdown-menu-right");this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"left",t?"auto":"0"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"right",t?"0":"auto")}}addDropupStyles(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"top",this.dropup?"auto":"100%"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"transform",this.dropup?"translateY(-101%)":"translateY(0)"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"bottom","auto"))}removeDropupStyles(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"top"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"transform"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"bottom"))}}class g{constructor(t,e,n){t.resolveDropdownMenu({templateRef:n,viewContainer:e})}}class p{constructor(t,e,n,a,r){this._changeDetectorRef=t,this._dropdown=e,this._element=n,this._renderer=a,this._state=r,this.isDisabled=null,this._subscriptions=[],this._subscriptions.push(this._state.isOpenChange.subscribe(t=>{this.isOpen=t,t?(this._documentClickListener=this._renderer.listen("document","click",t=>{!this._state.autoClose||2===t.button||this._element.nativeElement.contains(t.target)||this._state.insideClick&&this._dropdown._contains(t)||(this._state.toggleClick.emit(!1),this._changeDetectorRef.detectChanges())}),this._escKeyUpListener=this._renderer.listen(this._element.nativeElement,"keyup.esc",()=>{this._state.autoClose&&(this._state.toggleClick.emit(!1),this._changeDetectorRef.detectChanges())})):(this._documentClickListener(),this._escKeyUpListener())})),this._subscriptions.push(this._state.isDisabledChange.subscribe(t=>this.isDisabled=t||null))}onClick(){this.isDisabled||this._state.toggleClick.emit(!0)}ngOnDestroy(){this._documentClickListener&&this._documentClickListener(),this._escKeyUpListener&&this._escKeyUpListener();for(const t of this._subscriptions)t.unsubscribe()}}class b{static forRoot(t){return{ngModule:b,providers:[i.a,u.a,l,{provide:d,useValue:t||{autoClose:!0,insideClick:!1}}]}}}},FFMq:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return t.join(", ")}}},FMNM:function(t,e,n){var a=n("xrYK"),r=n("kmMV");t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var i=n.call(t,e);if("object"!=typeof i)throw TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==a(t))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},FSuO:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("LvDl"),i=n("x38r");n("a0VL"),n("uIqm");class s{constructor(t){this.datePipe=t,this.autoReload=5e3,this.renderObjects=!1,this.appendParentKey=!0,this.hideEmpty=!1,this.hideKeys=[],this.columns=[],this.fetchData=new a.EventEmitter}ngOnInit(){this.columns=[{prop:"key",flexGrow:1,cellTransformation:i.a.bold},{prop:"value",flexGrow:3}],this.customCss&&(this.columns[1].cellTransformation=i.a.classAdding),this.fetchData.observers.length>0&&this.table.fetchData.subscribe(()=>{this.fetchData.emit()}),this.useData()}ngOnChanges(){this.useData()}useData(){if(!this.data)return;let t=this.makePairs(this.data);this.hideKeys&&(t=t.filter(t=>!this.hideKeys.includes(t.key))),this.tableData=t}makePairs(t){let e=[];if(t){if(r.isArray(t))e=this.makePairsFromArray(t);else{if(!r.isObject(t))throw new Error("Wrong data format");e=this.makePairsFromObject(t)}return e=e.map(t=>(t.value=this.convertValue(t.value),t)).filter(t=>null!==t.value),r.sortBy(this.renderObjects?this.insertFlattenObjects(e):e,"key")}}makePairsFromArray(t){let e=[];const n=t[0];if(r.isArray(n)){if(2!==n.length)throw new Error(`Array contains too many elements (${n.length}). `+"Needs to be of type [string, any][]");e=t.map(t=>({key:t[0],value:t[1]}))}else r.isObject(n)&&(e=r.has(n,"key")&&r.has(n,"value")?[...t]:t.reduce((t,e)=>t.concat(this.makePairsFromObject(e)),e));return e}makePairsFromObject(t){return Object.keys(t).map(e=>({key:e,value:t[e]}))}insertFlattenObjects(t){return r.flattenDeep(t.map(t=>{const e=t.value,n=r.isObject(e);return!n||r.isEmpty(e)?(n&&(t.value=""),t):this.splitItemIntoItems(t)}))}splitItemIntoItems(t){return this.makePairs(t.value).map(e=>(this.appendParentKey&&(e.key=t.key+" "+e.key),e))}convertValue(t){if(r.isArray(t)){if(r.isEmpty(t)&&this.hideEmpty)return null;t=t.map(t=>r.isObject(t)?JSON.stringify(t):t).join(", ")}else if(r.isObject(t)){if(this.hideEmpty&&r.isEmpty(t)||!this.renderObjects)return null}else if(r.isString(t)){if(""===t&&this.hideEmpty)return null;this.isDate(t)&&(t=this.datePipe.transform(t)||t)}return t}isDate(t){const e="\\d{2}[ -:.TZ]";return t.match(new RegExp("^\\d{4}[ -:.TZ]"+e+e+e+e+e+"\\d*Z?$"))}}},FZoo:function(t,e,n){var a=n("MrPd"),r=n("4uTw"),i=n("wJg7"),s=n("GoyQ"),o=n("9Nap");t.exports=function(t,e,n,u){if(!s(t))return t;for(var d=-1,l=(e=r(e,t)).length,c=l-1,f=t;null!=f&&++d<l;){var h=o(e[d]),g=n;if(d!=c){var p=f[h];void 0===(g=u?u(p,h,f):void 0)&&(g=s(p)?p:i(e[d+1])?[]:{})}a(f,h,g),f=f[h]}return t}},FZtP:function(t,e,n){var a=n("2oRo"),r=n("/byt"),i=n("F8JR"),s=n("kRJp");for(var o in r){var u=a[o],d=u&&u.prototype;if(d&&d.forEach!==i)try{s(d,"forEach",i)}catch(l){d.forEach=i}}},FfPP:function(t,e,n){var a=n("idmN"),r=n("hgQt");t.exports=function(t,e){return a(t,e,(function(e,n){return r(t,n)}))}},Fgil:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1024,["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"])}}},Fwy9:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("gk6K"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(t,e,n,r){this.el=t,this.renderer=e,this.treeDraggedElement=n,this.ngZone=r,this.allowDragoverStyling=!0,this.onDropCallback=new a.EventEmitter,this.onDragOverCallback=new a.EventEmitter,this.onDragLeaveCallback=new a.EventEmitter,this.onDragEnterCallback=new a.EventEmitter,this._allowDrop=function(t,e){return!0},this.dragOverEventHandler=this.onDragOver.bind(this),this.dragEnterEventHandler=this.onDragEnter.bind(this),this.dragLeaveEventHandler=this.onDragLeave.bind(this)}return Object.defineProperty(t.prototype,"treeAllowDrop",{set:function(t){this._allowDrop=t instanceof Function?t:function(e,n){return t}},enumerable:!0,configurable:!0}),t.prototype.allowDrop=function(t){return this._allowDrop(this.treeDraggedElement.get(),t)},t.prototype.ngAfterViewInit=function(){var t=this,e=this.el.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("dragover",t.dragOverEventHandler),e.addEventListener("dragenter",t.dragEnterEventHandler),e.addEventListener("dragleave",t.dragLeaveEventHandler)}))},t.prototype.ngOnDestroy=function(){var t=this.el.nativeElement;t.removeEventListener("dragover",this.dragOverEventHandler),t.removeEventListener("dragenter",this.dragEnterEventHandler),t.removeEventListener("dragleave",this.dragLeaveEventHandler)},t.prototype.onDragOver=function(t){if(!this.allowDrop(t))return this.allowDragoverStyling?this.addDisabledClass():void 0;this.onDragOverCallback.emit({event:t,element:this.treeDraggedElement.get()}),t.preventDefault(),this.allowDragoverStyling&&this.addClass()},t.prototype.onDragEnter=function(t){this.allowDrop(t)&&(t.preventDefault(),this.onDragEnterCallback.emit({event:t,element:this.treeDraggedElement.get()}))},t.prototype.onDragLeave=function(t){if(!this.allowDrop(t))return this.allowDragoverStyling?this.removeDisabledClass():void 0;this.onDragLeaveCallback.emit({event:t,element:this.treeDraggedElement.get()}),this.allowDragoverStyling&&this.removeClass()},t.prototype.onDrop=function(t){this.allowDrop(t)&&(t.preventDefault(),this.onDropCallback.emit({event:t,element:this.treeDraggedElement.get()}),this.allowDragoverStyling&&this.removeClass(),this.treeDraggedElement.set(null))},t.prototype.addClass=function(){this.renderer.addClass(this.el.nativeElement,"is-dragging-over")},t.prototype.removeClass=function(){this.renderer.removeClass(this.el.nativeElement,"is-dragging-over")},t.prototype.addDisabledClass=function(){this.renderer.addClass(this.el.nativeElement,"is-dragging-over-disabled")},t.prototype.removeDisabledClass=function(){this.renderer.removeClass(this.el.nativeElement,"is-dragging-over-disabled")},i([Object(a.Input)(),s("design:type",Object)],t.prototype,"allowDragoverStyling",void 0),i([Object(a.Output)("treeDrop"),s("design:type",Object)],t.prototype,"onDropCallback",void 0),i([Object(a.Output)("treeDropDragOver"),s("design:type",Object)],t.prototype,"onDragOverCallback",void 0),i([Object(a.Output)("treeDropDragLeave"),s("design:type",Object)],t.prototype,"onDragLeaveCallback",void 0),i([Object(a.Output)("treeDropDragEnter"),s("design:type",Object)],t.prototype,"onDragEnterCallback",void 0),i([Object(a.Input)(),s("design:type",Object),s("design:paramtypes",[Object])],t.prototype,"treeAllowDrop",null),i([Object(a.HostListener)("drop",["$event"]),s("design:type",Function),s("design:paramtypes",[Object]),s("design:returntype",void 0)],t.prototype,"onDrop",null),i([Object(a.Directive)({selector:"[treeDrop]"}),s("design:paramtypes",[a.ElementRef,a.Renderer2,r.a,a.NgZone])],t)}()},"G+Rx":function(t,e,n){var a=n("0GbY");t.exports=a("document","documentElement")},G0Uy:function(t,e,n){!function(t){"use strict";t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_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ħada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},"G1/K":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.i18n=t}transform(t){return""===t?this.i18n("n/a"):t}}},G1I9:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return s}));var a=n("oxzT"),r=n("mtw6");class i{constructor(t=r.a.info,e,n,a,i="Ceph"){this.type=t,this.title=e,this.message=n,this.options=a,this.application=i,this.isFinishedTask=!1,this.classes={Ceph:"ceph-icon",Prometheus:"prometheus-icon"},this.applicationClass=this.classes[this.application]}}class s extends i{constructor(t=new i){super(t.type,t.title,t.message,t.options,t.application),this.config=t,this.textClasses=["text-danger","text-info","text-success"],this.iconClasses=[a.a.warning,a.a.info,a.a.check],delete this.config,this.timestamp=(new Date).toJSON(),this.iconClass=this.iconClasses[this.type],this.textClass=this.textClasses[this.type],this.isFinishedTask=t.isFinishedTask}}},"G6Q+":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},G6z8:function(t,e,n){var a=n("fR/l"),r=n("oCl/"),i=n("mTTR");t.exports=function(t){return a(t,i,r)}},GDhZ:function(t,e,n){var a=n("wF/u"),r=n("mwIZ"),i=n("hgQt"),s=n("9ggG"),o=n("CMye"),u=n("IOzZ"),d=n("9Nap");t.exports=function(t,e){return s(t)&&o(e)?u(d(t),e):function(n){var s=r(n,t);return void 0===s&&s===e?i(n,t):a(e,s,3)}}},GNiM:function(t,e,n){var a=n("I01J"),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,s=a((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(r,(function(t,n,a,r){e.push(a?r.replace(i,"$1"):n||t)})),e}));t.exports=s},GS7A:function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return r})),n.d(e,"a",(function(){return i})),n.d(e,"e",(function(){return o})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return d})),n.d(e,"i",(function(){return c})),n.d(e,"j",(function(){return s})),n.d(e,"d",(function(){return h})),n.d(e,"k",(function(){return g})),n.d(e,"l",(function(){return p}));class a{}class r{}const i="*";function s(t,e){return{type:7,name:t,definitions:e,options:{}}}function o(t,e=null){return{type:4,styles:e,timings:t}}function u(t,e=null){return{type:2,steps:t,options:e}}function d(t){return{type:6,styles:t,offset:null}}function l(t,e,n){return{type:0,name:t,styles:e,options:n}}function c(t,e,n=null){return{type:1,expr:t,animation:e,options:n}}function f(t){Promise.resolve(null).then(t)}class h{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(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(){f(()=>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(){}setPosition(t){}getPosition(){return 0}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class g{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,n=0,a=0;const r=this.players.length;0==r?f(()=>this._onFinish()):this.players.forEach(t=>{t.onDone(()=>{++e==r&&this._onFinish()}),t.onDestroy(()=>{++n==r&&this._onDestroy()}),t.onStart(()=>{++a==r&&this._onStart()})}),this.totalTime=this.players.reduce((t,e)=>Math.max(t,e.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(t=>{const n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})}getPosition(){let t=0;return this.players.forEach(e=>{const n=e.getPosition();t=Math.min(n,t)}),t}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}const p="!"},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},GgAd:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(){}ngOnChanges(){this.usedPercentage=Math.round(this.usedBytes/this.totalBytes*100),this.freePercentage=100-this.usedPercentage,this.freeBytes=this.totalBytes-this.usedBytes}}},Gi0A:function(t,e,n){var a=n("QqLw"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Map]"==a(t)}},GiVz:function(t,e,n){"use strict";n.d(e,"a",(function(){return We})),n.d(e,"b",(function(){return Ue}));var a=n("SVse"),r=n("8Y7J");class i{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitText(this,e)}}class s{constructor(t,e,n,a,r){this.switchValue=t,this.type=e,this.cases=n,this.sourceSpan=a,this.switchValueSourceSpan=r}visit(t,e){return t.visitExpansion(this,e)}}class o{constructor(t,e,n,a,r){this.value=t,this.expression=e,this.sourceSpan=n,this.valueSourceSpan=a,this.expSourceSpan=r}visit(t,e){return t.visitExpansionCase(this,e)}}class u{constructor(t,e,n,a){this.name=t,this.value=e,this.sourceSpan=n,this.valueSpan=a}visit(t,e){return t.visitAttribute(this,e)}}class d{constructor(t,e,n,a,r=null,i=null){this.name=t,this.attrs=e,this.children=n,this.sourceSpan=a,this.startSourceSpan=r,this.endSourceSpan=i}visit(t,e){return t.visitElement(this,e)}}class l{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitComment(this,e)}}function c(t,e,n=null){const a=[],r=t.visit?e=>t.visit(e,n)||e.visit(t,n):e=>e.visit(t,n);return e.forEach(t=>{const e=r(t);e&&a.push(e)}),a}class f{constructor(t,e,n,a,r,i){this.nodes=t,this.placeholders=e,this.placeholderToMessage=n,this.meaning=a,this.description=r,this.id=i,this.sources=t.length?[{filePath:t[0].sourceSpan.start.file.url,startLine:t[0].sourceSpan.start.line+1,startCol:t[0].sourceSpan.start.col+1,endLine:t[t.length-1].sourceSpan.end.line+1,endCol:t[0].sourceSpan.start.col+1}]:[]}}class h{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitText(this,e)}}class g{constructor(t,e){this.children=t,this.sourceSpan=e}visit(t,e){return t.visitContainer(this,e)}}class p{constructor(t,e,n,a){this.expression=t,this.type=e,this.cases=n,this.sourceSpan=a}visit(t,e){return t.visitIcu(this,e)}}class b{constructor(t,e,n,a,r,i,s){this.tag=t,this.attrs=e,this.startName=n,this.closeName=a,this.children=r,this.isVoid=i,this.sourceSpan=s}visit(t,e){return t.visitTagPlaceholder(this,e)}}class m{constructor(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}visit(t,e){return t.visitPlaceholder(this,e)}}class y{constructor(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}visit(t,e){return t.visitIcuPlaceholder(this,e)}}class v{constructor(t,e,n,a){this.file=t,this.offset=e,this.line=n,this.col=a}toString(){return null!=this.offset?`${this.line}:${this.col}`:""}getContext(t,e){const n=this.file.content;let a=this.offset;if(null!=a){a>n.length-1&&(a=n.length-1);let r=a,i=0,s=0;for(;i<t&&a>0&&(a--,i++,"\n"!==n[a]||++s!==e););for(i=0,s=0;i<t&&r<n.length-1&&(r++,i++,"\n"!==n[r]||++s!==e););return{before:n.substring(a,this.offset),after:n.substring(this.offset,r+1)}}return null}}class x{constructor(t,e=""){this.content=t,this.url=e}}class _{constructor(t,e,n=null){this.start=t,this.end=e,this.details=n}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}}const T=function(){var t={WARNING:0,ERROR:1};return t[t.WARNING]="WARNING",t[t.ERROR]="ERROR",t}();class O{constructor(t,e,n=T.ERROR){this.span=t,this.msg=e,this.level=n}contextualMessage(){const t=this.span.start.getContext(100,3);return t?` ("${t.before}[${T[this.level]} ->]${t.after}")`:""}toString(){const t=this.span.details?`, ${this.span.details}`:"";return`${this.msg}${this.contextualMessage()}: ${this.span.start}${t}`}}class w extends O{constructor(t,e){super(t,e)}}function S(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}class I{constructor(t,e){this.start=t,this.end=e}}const N=new I("{{","}}");function C(t){return t>=9&&t<=32||160===t}function R(t){return 48<=t&&t<=57}function A(t){return t>=97&&t<=122||t>=65&&t<=90}const k=function(){var t={RAW_TEXT:0,ESCAPABLE_RAW_TEXT:1,PARSABLE_DATA:2};return t[t.RAW_TEXT]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA]="PARSABLE_DATA",t}();function E(t){if(":"!==t[0])return[null,t];const e=t.indexOf(":",1);if(-1===e)throw new Error(`Unsupported format "${t}" expecting ":namespace:name"`);return[t.slice(1,e),t.slice(e+1)]}function L(t){return null===t?null:E(t)[0]}function D(t,e){return t?`:${t}:${e}`:e}const P={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞",int:"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"‎",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"‏",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"‍",zwnj:"‌",ngsp:""},M=function(){var t={TAG_OPEN_START:0,TAG_OPEN_END:1,TAG_OPEN_END_VOID:2,TAG_CLOSE:3,TEXT:4,ESCAPABLE_RAW_TEXT:5,RAW_TEXT:6,COMMENT_START:7,COMMENT_END:8,CDATA_START:9,CDATA_END:10,ATTR_NAME:11,ATTR_VALUE:12,DOC_TYPE:13,EXPANSION_FORM_START:14,EXPANSION_CASE_VALUE:15,EXPANSION_CASE_EXP_START:16,EXPANSION_CASE_EXP_END:17,EXPANSION_FORM_END:18,EOF:19};return t[t.TAG_OPEN_START]="TAG_OPEN_START",t[t.TAG_OPEN_END]="TAG_OPEN_END",t[t.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",t[t.TAG_CLOSE]="TAG_CLOSE",t[t.TEXT]="TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.RAW_TEXT]="RAW_TEXT",t[t.COMMENT_START]="COMMENT_START",t[t.COMMENT_END]="COMMENT_END",t[t.CDATA_START]="CDATA_START",t[t.CDATA_END]="CDATA_END",t[t.ATTR_NAME]="ATTR_NAME",t[t.ATTR_VALUE]="ATTR_VALUE",t[t.DOC_TYPE]="DOC_TYPE",t[t.EXPANSION_FORM_START]="EXPANSION_FORM_START",t[t.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",t[t.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",t[t.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",t[t.EXPANSION_FORM_END]="EXPANSION_FORM_END",t[t.EOF]="EOF",t}();class q{constructor(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}}class j extends O{constructor(t,e,n){super(n,t),this.tokenType=e}}class F{constructor(t,e){this.tokens=t,this.errors=e}}const G=/\r\n?/g;function V(t){return`Unexpected character "${0===t?"EOF":String.fromCharCode(t)}"`}function z(t){return`Unknown entity "${t}" - use the "&#<decimal>;" or  "&#x<hex>;" syntax`}class B{constructor(t){this.error=t}}class Y{constructor(t,e,n,a=N){this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=a,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}_processCarriageReturns(t){return t.replace(G,"\n")}tokenize(){for(;0!==this._peek;){const e=this._getLocation();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(e):this._attemptCharCode(45)?this._consumeComment(e):this._consumeDocType(e):this._attemptCharCode(47)?this._consumeTagClose(e):this._consumeTagOpen(e):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(t){if(!(t instanceof B))throw t;this.errors.push(t.error)}}return this._beginToken(M.EOF),this._endToken([]),new F(function(t){const e=[];let n=void 0;for(let a=0;a<t.length;a++){const r=t[a];n&&n.type===M.TEXT&&r.type===M.TEXT?(n.parts[0]+=r.parts[0],n.sourceSpan.end=r.sourceSpan.end):(n=r,e.push(n))}return e}(this.tokens),this.errors)}_tokenizeExpansionForm(){if($(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if((61===(t=this._peek)||A(t)||R(t))&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;var t;if(125===this._peek){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_getLocation(){return new v(this._file,this._index,this._line,this._column)}_getSpan(t=this._getLocation(),e=this._getLocation()){return new _(t,e)}_beginToken(t,e=this._getLocation()){this._currentTokenStart=e,this._currentTokenType=t}_endToken(t,e=this._getLocation()){const n=new q(this._currentTokenType,t,new _(this._currentTokenStart,e));return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n}_createError(t,e){this._isInExpansionForm()&&(t+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');const n=new j(t,this._currentTokenType,e);return this._currentTokenStart=null,this._currentTokenType=null,new B(n)}_advance(){if(this._index>=this._length)throw this._createError(V(0),this._getSpan());10===this._peek?(this._line++,this._column=0):10!==this._peek&&13!==this._peek&&this._column++,this._index++,this._peek=this._index>=this._length?0:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?0:this._input.charCodeAt(this._index+1)}_attemptCharCode(t){return this._peek===t&&(this._advance(),!0)}_attemptCharCodeCaseInsensitive(t){return e=t,Z(this._peek)===Z(e)&&(this._advance(),!0);var e}_requireCharCode(t){const e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(V(this._peek),this._getSpan(e,e))}_attemptStr(t){const e=t.length;if(this._index+e>this._length)return!1;const n=this._savePosition();for(let a=0;a<e;a++)if(!this._attemptCharCode(t.charCodeAt(a)))return this._restorePosition(n),!1;return!0}_attemptStrCaseInsensitive(t){for(let e=0;e<t.length;e++)if(!this._attemptCharCodeCaseInsensitive(t.charCodeAt(e)))return!1;return!0}_requireStr(t){const e=this._getLocation();if(!this._attemptStr(t))throw this._createError(V(this._peek),this._getSpan(e))}_attemptCharCodeUntilFn(t){for(;!t(this._peek);)this._advance()}_requireCharCodeUntilFn(t,e){const n=this._getLocation();if(this._attemptCharCodeUntilFn(t),this._index-n.offset<e)throw this._createError(V(this._peek),this._getSpan(n,n))}_attemptUntilChar(t){for(;this._peek!==t;)this._advance()}_readChar(t){if(t&&38===this._peek)return this._decodeEntity();{const t=this._index;return this._advance(),this._input[t]}}_decodeEntity(){const t=this._getLocation();if(this._advance(),!this._attemptCharCode(35)){const e=this._savePosition();if(this._attemptCharCodeUntilFn(K),59!==this._peek)return this._restorePosition(e),"&";this._advance();const n=this._input.substring(t.offset+1,this._index-1),a=P[n];if(!a)throw this._createError(z(n),this._getSpan(t));return a}{const n=this._attemptCharCode(120)||this._attemptCharCode(88),a=this._getLocation().offset;if(this._attemptCharCodeUntilFn(W),59!==this._peek)throw this._createError(V(this._peek),this._getSpan());this._advance();const r=this._input.substring(a,this._index-1);try{const t=parseInt(r,n?16:10);return String.fromCharCode(t)}catch(e){const n=this._input.substring(t.offset+1,this._index-1);throw this._createError(z(n),this._getSpan(t))}}}_consumeRawText(t,e,n){let a;const r=this._getLocation();this._beginToken(t?M.ESCAPABLE_RAW_TEXT:M.RAW_TEXT,r);const i=[];for(;a=this._getLocation(),!this._attemptCharCode(e)||!n();)for(this._index>a.offset&&i.push(this._input.substring(a.offset,this._index));this._peek!==e;)i.push(this._readChar(t));return this._endToken([this._processCarriageReturns(i.join(""))],a)}_consumeComment(t){this._beginToken(M.COMMENT_START,t),this._requireCharCode(45),this._endToken([]);const e=this._consumeRawText(!1,45,()=>this._attemptStr("->"));this._beginToken(M.COMMENT_END,e.sourceSpan.end),this._endToken([])}_consumeCdata(t){this._beginToken(M.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);const e=this._consumeRawText(!1,93,()=>this._attemptStr("]>"));this._beginToken(M.CDATA_END,e.sourceSpan.end),this._endToken([])}_consumeDocType(t){this._beginToken(M.DOC_TYPE,t),this._attemptUntilChar(62),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])}_consumePrefixAndName(){const t=this._index;let e=null;for(;58!==this._peek&&!(((n=this._peek)<97||122<n)&&(n<65||90<n)&&(n<48||n>57));)this._advance();var n;let a;return 58===this._peek?(this._advance(),e=this._input.substring(t,this._index-1),a=this._index):a=t,this._requireCharCodeUntilFn(U,this._index===a?1:0),[e,this._input.substring(a,this._index)]}_consumeTagOpen(t){const e=this._savePosition();let n,a;try{if(!A(this._peek))throw this._createError(V(this._peek),this._getSpan());const e=this._index;for(this._consumeTagOpenStart(t),n=this._input.substring(e,this._index),a=n.toLowerCase(),this._attemptCharCodeUntilFn(H);47!==this._peek&&62!==this._peek;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(H),this._attemptCharCode(61)&&(this._attemptCharCodeUntilFn(H),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(H);this._consumeTagOpenEnd()}catch(i){if(i instanceof B)return this._restorePosition(e),this._beginToken(M.TEXT,t),void this._endToken(["<"]);throw i}const r=this._getTagDefinition(n).contentType;r===k.RAW_TEXT?this._consumeRawTextWithTagClose(a,!1):r===k.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(a,!0)}_consumeRawTextWithTagClose(t,e){const n=this._consumeRawText(e,60,()=>!!this._attemptCharCode(47)&&(this._attemptCharCodeUntilFn(H),!!this._attemptStrCaseInsensitive(t)&&(this._attemptCharCodeUntilFn(H),this._attemptCharCode(62))));this._beginToken(M.TAG_CLOSE,n.sourceSpan.end),this._endToken([null,t])}_consumeTagOpenStart(t){this._beginToken(M.TAG_OPEN_START,t);const e=this._consumePrefixAndName();this._endToken(e)}_consumeAttributeName(){this._beginToken(M.ATTR_NAME);const t=this._consumePrefixAndName();this._endToken(t)}_consumeAttributeValue(){let t;if(this._beginToken(M.ATTR_VALUE),39===this._peek||34===this._peek){const e=this._peek;this._advance();const n=[];for(;this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{const e=this._index;this._requireCharCodeUntilFn(U,1),t=this._input.substring(e,this._index)}this._endToken([this._processCarriageReturns(t)])}_consumeTagOpenEnd(){const t=this._attemptCharCode(47)?M.TAG_OPEN_END_VOID:M.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(62),this._endToken([])}_consumeTagClose(t){this._beginToken(M.TAG_CLOSE,t),this._attemptCharCodeUntilFn(H);const e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(H),this._requireCharCode(62),this._endToken(e)}_consumeExpansionFormStart(){this._beginToken(M.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(M.EXPANSION_FORM_START),this._beginToken(M.RAW_TEXT,this._getLocation());const t=this._readUntil(44);this._endToken([t],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(H),this._beginToken(M.RAW_TEXT,this._getLocation());const e=this._readUntil(44);this._endToken([e],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(H)}_consumeExpansionCaseStart(){this._beginToken(M.EXPANSION_CASE_VALUE,this._getLocation());const t=this._readUntil(123).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(H),this._beginToken(M.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(123),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(H),this._expansionCaseStack.push(M.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(M.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(125),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(H),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(M.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){const t=this._getLocation();this._beginToken(M.TEXT,t);const e=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])}_isTextEnd(){if(60===this._peek||0===this._peek)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if($(this._input,this._index,this._interpolationConfig))return!0;if(125===this._peek&&this._isInExpansionCase())return!0}return!1}_savePosition(){return[this._peek,this._index,this._column,this._line,this.tokens.length]}_readUntil(t){const e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)}_restorePosition(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];const e=t[4];e<this.tokens.length&&(this.tokens=this.tokens.slice(0,e))}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===M.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===M.EXPANSION_FORM_START}}function H(t){return!C(t)||0===t}function U(t){return C(t)||62===t||47===t||39===t||34===t||61===t}function W(t){return 59===t||0===t||!function(t){return t>=97&&t<=102||t>=65&&t<=70||R(t)}(t)}function K(t){return 59===t||0===t||!A(t)}function $(t,e,n){const a=!!n&&t.indexOf(n.start,e)===e;return 123===t.charCodeAt(e)&&!a}function Z(t){return t>=97&&t<=122?t-97+65:t}class J extends O{constructor(t,e,n){super(e,n),this.elementName=t}static create(t,e,n){return new J(t,e,n)}}class Q{constructor(t,e){this.rootNodes=t,this.errors=e}}class X{constructor(t){this.getTagDefinition=t}parse(t,e,n=!1,a=N){const r=function(t,e,n,a=!1,r=N){return new Y(new x(t,e),n,a,r).tokenize()}(t,e,this.getTagDefinition,n,a),i=new tt(r.tokens,this.getTagDefinition).build();return new Q(i.rootNodes,r.errors.concat(i.errors))}}class tt{constructor(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==M.EOF;)this._peek.type===M.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===M.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===M.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===M.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===M.TEXT||this._peek.type===M.RAW_TEXT||this._peek.type===M.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===M.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new Q(this._rootNodes,this._errors)}_advance(){const t=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],t}_advanceIf(t){return this._peek.type===t?this._advance():null}_consumeCdata(t){this._consumeText(this._advance()),this._advanceIf(M.CDATA_END)}_consumeComment(t){const e=this._advanceIf(M.RAW_TEXT);this._advanceIf(M.COMMENT_END);const n=null!==e?e.parts[0].trim():null;this._addToParent(new l(n,t.sourceSpan))}_consumeExpansion(t){const e=this._advance(),n=this._advance(),a=[];for(;this._peek.type===M.EXPANSION_CASE_VALUE;){const t=this._parseExpansionCase();if(!t)return;a.push(t)}if(this._peek.type!==M.EXPANSION_FORM_END)return void this._errors.push(J.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));const r=new _(t.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new s(e.parts[0],n.parts[0],a,r,e.sourceSpan)),this._advance()}_parseExpansionCase(){const t=this._advance();if(this._peek.type!==M.EXPANSION_CASE_EXP_START)return this._errors.push(J.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;const e=this._advance(),n=this._collectExpansionExpTokens(e);if(!n)return null;const a=this._advance();n.push(new q(M.EOF,[],a.sourceSpan));const r=new tt(n,this.getTagDefinition).build();if(r.errors.length>0)return this._errors=this._errors.concat(r.errors),null;const i=new _(t.sourceSpan.start,a.sourceSpan.end),s=new _(e.sourceSpan.start,a.sourceSpan.end);return new o(t.parts[0],r.rootNodes,i,t.sourceSpan,s)}_collectExpansionExpTokens(t){const e=[],n=[M.EXPANSION_CASE_EXP_START];for(;;){if(this._peek.type!==M.EXPANSION_FORM_START&&this._peek.type!==M.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===M.EXPANSION_CASE_EXP_END){if(!et(n,M.EXPANSION_CASE_EXP_START))return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0===n.length)return e}if(this._peek.type===M.EXPANSION_FORM_END){if(!et(n,M.EXPANSION_FORM_START))return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===M.EOF)return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}}_consumeText(t){let e=t.parts[0];if(e.length>0&&"\n"===e[0]){const t=this._getParentElement();null!==t&&0===t.children.length&&this.getTagDefinition(t.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new i(e,t.sourceSpan))}_closeVoidElement(){const t=this._getParentElement();t&&this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()}_consumeStartTag(t){const e=t.parts[0],n=t.parts[1],a=[];for(;this._peek.type===M.ATTR_NAME;)a.push(this._consumeAttr(this._advance()));const r=this._getElementFullName(e,n,this._getParentElement());let i=!1;if(this._peek.type===M.TAG_OPEN_END_VOID){this._advance(),i=!0;const e=this.getTagDefinition(r);e.canSelfClose||null!==L(r)||e.isVoid||this._errors.push(J.create(r,t.sourceSpan,`Only void and foreign elements can be self closed "${t.parts[1]}"`))}else this._peek.type===M.TAG_OPEN_END&&(this._advance(),i=!1);const s=new _(t.sourceSpan.start,this._peek.sourceSpan.start),o=new d(r,a,[],s,s,void 0);this._pushElement(o),i&&(this._popElement(r),o.endSourceSpan=s)}_pushElement(t){const e=this._getParentElement();e&&this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop();const n=this.getTagDefinition(t.name),{parent:a,container:r}=this._getParentElementSkippingContainers();if(a&&n.requireExtraParent(a.name)){const e=new d(n.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(a,r,e)}this._addToParent(t),this._elementStack.push(t)}_consumeEndTag(t){const e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid?this._errors.push(J.create(e,t.sourceSpan,`Void elements do not have end tags "${t.parts[1]}"`)):this._popElement(e)||this._errors.push(J.create(e,t.sourceSpan,`Unexpected closing tag "${e}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`))}_popElement(t){for(let e=this._elementStack.length-1;e>=0;e--){const n=this._elementStack[e];if(n.name===t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1}_consumeAttr(t){const e=D(t.parts[0],t.parts[1]);let n=t.sourceSpan.end,a="",r=void 0;if(this._peek.type===M.ATTR_VALUE){const t=this._advance();a=t.parts[0],n=t.sourceSpan.end,r=t.sourceSpan}return new u(e,a,new _(t.sourceSpan.start,n),r)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let t=null;for(let e=this._elementStack.length-1;e>=0;e--){if("ng-container"!==E(this._elementStack[e].name)[1])return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:null,container:t}}_addToParent(t){const e=this._getParentElement();null!==e?e.children.push(t):this._rootNodes.push(t)}_insertBeforeContainer(t,e,n){if(e){if(t){const a=t.children.indexOf(e);t.children[a]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)}_getElementFullName(t,e,n){return null===t&&null===(t=this.getTagDefinition(e).implicitNamespacePrefix)&&null!==n&&(t=L(n.name)),D(t,e)}}function et(t,e){return t.length>0&&t[t.length-1]===e}class nt{constructor(){this.closedByParent=!1,this.contentType=k.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}requireExtraParent(t){return!1}isClosedByChild(t){return!1}}const at=new nt;function rt(t){return at}class it{constructor({closedByChildren:t,requiredParents:e,implicitNamespacePrefix:n,contentType:a=k.PARSABLE_DATA,closedByParent:r=!1,isVoid:i=!1,ignoreFirstLf:s=!1}={}){this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,t&&t.length>0&&t.forEach(t=>this.closedByChildren[t]=!0),this.isVoid=i,this.closedByParent=r||i,e&&e.length>0&&(this.requiredParents={},this.parentToAdd=e[0],e.forEach(t=>this.requiredParents[t]=!0)),this.implicitNamespacePrefix=n||null,this.contentType=a,this.ignoreFirstLf=s}requireExtraParent(t){if(!this.requiredParents)return!1;if(!t)return!0;const e=t.toLowerCase();return!("template"===e||"ng-template"===t)&&!0!==this.requiredParents[e]}isClosedByChild(t){return this.isVoid||t.toLowerCase()in this.closedByChildren}}const st={base:new it({isVoid:!0}),meta:new it({isVoid:!0}),area:new it({isVoid:!0}),embed:new it({isVoid:!0}),link:new it({isVoid:!0}),img:new it({isVoid:!0}),input:new it({isVoid:!0}),param:new it({isVoid:!0}),hr:new it({isVoid:!0}),br:new it({isVoid:!0}),source:new it({isVoid:!0}),track:new it({isVoid:!0}),wbr:new it({isVoid:!0}),p:new it({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new it({closedByChildren:["tbody","tfoot"]}),tbody:new it({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new it({closedByChildren:["tbody"],closedByParent:!0}),tr:new it({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new it({closedByChildren:["td","th"],closedByParent:!0}),th:new it({closedByChildren:["td","th"],closedByParent:!0}),col:new it({requiredParents:["colgroup"],isVoid:!0}),svg:new it({implicitNamespacePrefix:"svg"}),math:new it({implicitNamespacePrefix:"math"}),li:new it({closedByChildren:["li"],closedByParent:!0}),dt:new it({closedByChildren:["dt","dd"]}),dd:new it({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new it({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new it({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new it({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new it({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new it({closedByChildren:["optgroup"],closedByParent:!0}),option:new it({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new it({ignoreFirstLf:!0}),listing:new it({ignoreFirstLf:!0}),style:new it({contentType:k.RAW_TEXT}),script:new it({contentType:k.RAW_TEXT}),title:new it({contentType:k.ESCAPABLE_RAW_TEXT}),textarea:new it({contentType:k.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},ot=new it;function ut(t){return st[t.toLowerCase()]||ot}class dt extends class{visitText(t,e){}visitContainer(t,e){t.children.forEach(t=>t.visit(this))}visitIcu(t,e){Object.keys(t.cases).forEach(e=>{t.cases[e].visit(this)})}visitTagPlaceholder(t,e){t.children.forEach(t=>t.visit(this))}visitPlaceholder(t,e){}visitIcuPlaceholder(t,e){}}{constructor(t,e){super(),this.mapName=e,this.internalToPublic={},this.publicToNextId={},this.publicToInternal={},t.nodes.forEach(t=>t.visit(this))}toPublicName(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null}toInternalName(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null}visitText(t,e){return null}visitTagPlaceholder(t,e){this.visitPlaceholderName(t.startName),super.visitTagPlaceholder(t,e),this.visitPlaceholderName(t.closeName)}visitPlaceholder(t,e){this.visitPlaceholderName(t.name)}visitIcuPlaceholder(t,e){this.visitPlaceholderName(t.name)}visitPlaceholderName(t){if(!t||this.internalToPublic.hasOwnProperty(t))return;let e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){const t=this.publicToNextId[e];this.publicToNextId[e]=t+1,e=`${e}_${t}`}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}}const lt=new a.I18nSelectPipe;class ct{constructor(t,e){this.params=e,this.i18nPluralPipe=new a.I18nPluralPipe(new a.NgLocaleLocalization(t))}visitElement(t,e){return ut(t.name).isVoid?`<${t.name}${this.serializeNodes(t.attrs," ")}/>`:`<${t.name}${this.serializeNodes(t.attrs," ")}>${this.serializeNodes(t.children)}</${t.name}>`}visitAttribute(t,e){return`${t.name}="${t.value}"`}visitText(t,e){return t.value}visitComment(t,e){return`\x3c!--${t.value}--\x3e`}visitExpansion(t,e){const n={};switch(t.cases.forEach(t=>n[t.value]=this.serializeNodes(t.expression)),t.type){case"select":return lt.transform(this.params[t.switchValue]||"",n);case"plural":return this.i18nPluralPipe.transform(this.params[t.switchValue],n)}throw new Error(`Unknown expansion type "${t.type}"`)}visitExpansionCase(t,e){return` ${t.value} {${this.serializeNodes(t.expression)}}`}serializeNodes(t,e=""){return 0===t.length?"":e+t.map(t=>t.visit(this,null)).join(e)}}function ft(t){return t.id||function(t){const e=At(t),n=function(t,e){const n=Array(t.length+3>>>2);for(let a=0;a<n.length;a++)n[a]=It(t,4*a,e);return n}(e,xt.Big),a=8*e.length,r=new Array(80);let[i,s,o,u,d]=[1732584193,4023233417,2562383102,271733878,3285377520];n[a>>5]|=128<<24-a%32,n[15+(a+64>>9<<4)]=a;for(let l=0;l<n.length;l+=16){const[t,e,a,c,f]=[i,s,o,u,d];for(let h=0;h<80;h++){r[h]=h<16?n[l+h]:wt(r[h-3]^r[h-8]^r[h-14]^r[h-16],1);const[t,e]=bt(h,s,o,u),a=[wt(i,5),t,d,e,r[h]].reduce(_t);[d,u,o,s,i]=[u,o,wt(s,30),i,a]}[i,s,o,u,d]=[_t(i,t),_t(s,e),_t(o,a),_t(u,c),_t(d,f)]}return function(t){let e="";for(let n=0;n<t.length;n++){const a=St(t,n);e+=(a>>>4).toString(16)+(15&a).toString(16)}return e.toLowerCase()}(Nt([i,s,o,u,d]))}((e=t.nodes,e.map(t=>t.visit(gt,null))).join("")+`[${t.meaning}]`);var e}class ht{visitText(t,e){return t.value}visitContainer(t,e){return`[${t.children.map(t=>t.visit(this)).join(", ")}]`}visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${t.expression}, ${t.type}, ${n.join(", ")}}`}visitTagPlaceholder(t,e){return t.isVoid?`<ph tag name="${t.startName}"/>`:`<ph tag name="${t.startName}">${t.children.map(t=>t.visit(this)).join(", ")}</ph name="${t.closeName}">`}visitPlaceholder(t,e){return t.value?`<ph name="${t.name}">${t.value}</ph>`:`<ph name="${t.name}"/>`}visitIcuPlaceholder(t,e){return`<ph icu name="${t.name}">${t.value.visit(this)}</ph>`}}const gt=new ht;class pt extends ht{visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${t.type}, ${n.join(", ")}}`}}function bt(t,e,n,a){return t<20?[e&n|~e&a,1518500249]:t<40?[e^n^a,1859775393]:t<60?[e&n|e&a|n&a,2400959708]:[e^n^a,3395469782]}function mt(t){const e=At(t);let[n,a]=[yt(e,0),yt(e,102072)];return 0!==n||0!==a&&1!==a||(n^=319790063,a^=-1801410264),[n,a]}function yt(t,e){let n,[a,r]=[2654435769,2654435769];const i=t.length;for(n=0;n+12<=i;n+=12)a=_t(a,It(t,n,xt.Little)),r=_t(r,It(t,n+4,xt.Little)),e=_t(e,It(t,n+8,xt.Little)),[a,r,e]=vt([a,r,e]);return a=_t(a,It(t,n,xt.Little)),r=_t(r,It(t,n+4,xt.Little)),e=_t(e,i),vt([a,r,e=_t(e,It(t,n+8,xt.Little)<<8)])[2]}function vt([t,e,n]){return t=Ot(t,e),t=Ot(t,n),t^=n>>>13,e=Ot(e,n),e=Ot(e,t),e^=t<<8,n=Ot(n,t),n=Ot(n,e),n^=e>>>13,t=Ot(t,e),t=Ot(t,n),t^=n>>>12,e=Ot(e,n),e=Ot(e,t),e^=t<<16,n=Ot(n,t),n=Ot(n,e),n^=e>>>5,t=Ot(t,e),t=Ot(t,n),t^=n>>>3,e=Ot(e,n),e=Ot(e,t),e^=t<<10,n=Ot(n,t),n=Ot(n,e),[t,e,n^=e>>>15]}const xt=function(){var t={Little:0,Big:1};return t[t.Little]="Little",t[t.Big]="Big",t}();function _t(t,e){return Tt(t,e)[1]}function Tt(t,e){const n=(65535&t)+(65535&e),a=(t>>>16)+(e>>>16)+(n>>>16);return[a>>>16,a<<16|65535&n]}function Ot(t,e){const n=(65535&t)-(65535&e);return(t>>16)-(e>>16)+(n>>16)<<16|65535&n}function wt(t,e){return t<<e|t>>>32-e}function St(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function It(t,e,n){let a=0;if(n===xt.Big)for(let r=0;r<4;r++)a+=St(t,e+r)<<24-8*r;else for(let r=0;r<4;r++)a+=St(t,e+r)<<8*r;return a}function Nt(t){return t.reduce((t,e)=>t+function(t){let e="";for(let n=0;n<4;n++)e+=String.fromCharCode(t>>>8*(3-n)&255);return e}(e),"")}function Ct(t,e){let n="";const a=Math.max(t.length,e.length);for(let r=0,i=0;r<a||i;r++){const a=i+ +(t[r]||0)+ +(e[r]||0);a>=10?(i=1,n+=a-10):(i=0,n+=a)}return n}function Rt(t,e){let n="",a=e;for(;0!==t;t>>>=1)1&t&&(n=Ct(n,a)),a=Ct(a,a);return n}function At(t){let e="";for(let n=0;n<t.length;n++){let a=t.charCodeAt(n);if(a>=55296&&a<=56319&&t.length>n+1){const e=t.charCodeAt(n+1);e>=56320&&e<=57343&&(n++,a=(a-55296<<10)+e-56320+65536)}a<=127?e+=String.fromCharCode(a):a<=2047?e+=String.fromCharCode(a>>6&31|192,63&a|128):a<=65535?e+=String.fromCharCode(a>>12|224,a>>6&63|128,63&a|128):a<=2097151&&(e+=String.fromCharCode(a>>18&7|240,a>>12&63|128,a>>6&63|128,63&a|128))}return e}function kt(t){const e=new Lt,{msgIdToHtml:n,errors:a}=e.parse(t),r={},i=new Dt;if(Object.keys(n).forEach(t=>{const{i18nNodes:e,errors:s}=i.convert(n[t]);a.push(...s),r[t]=e}),a.length)throw new Error(`xliff parse errors:\n${a.join("\n")}`);return r}const Et=ft;class Lt{parse(t){this._unitMlString=null,this._msgIdToHtml={};const e=new X(rt).parse(t,"",!1);return this._errors=e.errors,c(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"trans-unit":this._unitMlString=null;const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;this._msgIdToHtml.hasOwnProperty(n)?this._addError(t,`Duplicated translations for msg ${n}`):(c(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[n]=this._unitMlString:this._addError(t,`Message ${n} misses a translation`))}else this._addError(t,'<trans-unit> misses the "id" attribute');break;case"source":break;case"target":const n=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=n;break;case"file":c(this,t.children,null);break;default:c(this,t.children,null)}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}class Dt{convert(t){const e=new X(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:c(this,e.rootNodes),errors:this._errors}}visitText(t,e){return new h(t.value,t.sourceSpan)}visitElement(t,e){if("x"===t.name){const e=t.attrs.find(t=>"id"===t.name);if(e)return new m("",e.value,t.sourceSpan);this._addError(t,'<x> misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null}visitExpansion(t,e){const n={};return c(this,t.cases).forEach(e=>{n[e.value]=new g(e.nodes,t.sourceSpan)}),new p(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:c(this,t.expression)}}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}function Pt(t){const e=new qt,{msgIdToHtml:n,errors:a}=e.parse(t),r={},i=new jt;if(Object.keys(n).forEach(t=>{const{i18nNodes:e,errors:s}=i.convert(n[t]);a.push(...s),r[t]=e}),a.length)throw new Error(`xliff2 parse errors:\n${a.join("\n")}`);return r}const Mt=function(t){if(t.id)return t.id;const e=new pt;return function(t,e){let[n,a]=mt(t);if(e){const[t,r]=mt(e);[n,a]=function([t,e],[n,a]){const[r,i]=Tt(e,a);return[_t(_t(t,n),r),i]}(function([t,e],n){return[t<<n|e>>>32-n,e<<n|t>>>32-n]}([n,a],1),[t,r])}return function(t){let e="",n="1";for(let a=t.length-1;a>=0;a--)e=Ct(e,Rt(St(t,a),n)),n=Rt(256,n);return e.split("").reverse().join("")}(Nt([2147483647&n,a]))}(t.nodes.map(t=>t.visit(e,null)).join(""),t.meaning)};class qt{parse(t){this._unitMlString=null,this._msgIdToHtml={};const e=new X(rt).parse(t,"",!1);return this._errors=e.errors,c(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"unit":this._unitMlString=null;const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;this._msgIdToHtml.hasOwnProperty(n)?this._addError(t,`Duplicated translations for msg ${n}`):(c(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[n]=this._unitMlString:this._addError(t,`Message ${n} misses a translation`))}else this._addError(t,'<unit> misses the "id" attribute');break;case"source":break;case"target":const n=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=n;break;case"xliff":const a=t.attrs.find(t=>"version"===t.name);if(a){const e=a.value;"2.0"!==e?this._addError(t,`The XLIFF file version ${e} is not compatible with XLIFF 2.0 serializer`):c(this,t.children,null)}break;default:c(this,t.children,null)}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}class jt{convert(t){const e=new X(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:[].concat(...c(this,e.rootNodes)),errors:this._errors}}visitText(t,e){return new h(t.value,t.sourceSpan)}visitElement(t,e){switch(t.name){case"ph":const e=t.attrs.find(t=>"equiv"===t.name);if(e)return[new m("",e.value,t.sourceSpan)];this._addError(t,'<ph> misses the "equiv" attribute');break;case"pc":const n=t.attrs.find(t=>"equivStart"===t.name),a=t.attrs.find(t=>"equivEnd"===t.name);if(n){if(a){const e=a.value;return[].concat(new m("",n.value,t.sourceSpan),...t.children.map(t=>t.visit(this,null)),new m("",e,t.sourceSpan))}this._addError(t,'<ph> misses the "equivEnd" attribute')}else this._addError(t,'<ph> misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null}visitExpansion(t,e){const n={};return c(this,t.cases).forEach(e=>{n[e.value]=new g(e.nodes,t.sourceSpan)}),new p(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:[].concat(...c(this,t.expression))}}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}function Ft(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function Gt(t){const e=new Bt,{msgIdToHtml:n,errors:a}=e.parse(t);if(a.length)throw new Error(`xtb parse errors:\n${a.join("\n")}`);const r={},i=new Yt;return Object.keys(n).forEach(t=>{var e,a;e=r,a=t,Object.defineProperty(e,a,{configurable:!0,enumerable:!0,get:()=>{const r=(()=>{const{i18nNodes:e,errors:a}=i.convert(n[t]);if(a.length)throw new Error(`xtb parse errors:\n${a.join("\n")}`);return e})();return Object.defineProperty(e,a,{enumerable:!0,value:r}),r},set:t=>{throw new Error("Could not overwrite an XTB translation")}})}),r}const Vt=ft,zt=function(t){return new dt(t,Ft)};class Bt{parse(t){this._bundleDepth=0,this._msgIdToHtml={};const e=new X(rt).parse(t,"",!1);return this._errors=e.errors,c(this,e.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(t,"<translationbundle> elements can not be nested"),c(this,t.children,null),this._bundleDepth--;break;case"translation":const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;if(this._msgIdToHtml.hasOwnProperty(n))this._addError(t,`Duplicated translations for msg ${n}`);else{const e=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._msgIdToHtml[n]=e}}else this._addError(t,'<translation> misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}class Yt{convert(t){const e=new X(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:c(this,e.rootNodes),errors:this._errors}}visitText(t,e){return new h(t.value,t.sourceSpan)}visitExpansion(t,e){const n={};return c(this,t.cases).forEach(e=>{n[e.value]=new g(e.nodes,t.sourceSpan)}),new p(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:c(this,t.expression)}}visitElement(t,e){if("ph"===t.name){const e=t.attrs.find(t=>"name"===t.name);if(e)return new m("",e.value,t.sourceSpan);this._addError(t,'<ph> misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}class Ht{constructor(t,e,n,a){this.input=e,this.errLocation=n,this.ctxLocation=a,this.message=`Parser Error: ${t} ${n} [${e}] in ${a}`}}class Ut{constructor(t,e){this.start=t,this.end=e}}class Wt{constructor(t){this.span=t}visit(t,e=null){return null}toString(){return"AST"}}class Kt extends Wt{constructor(t,e,n,a){super(t),this.prefix=e,this.uninterpretedExpression=n,this.location=a}visit(t,e=null){return t.visitQuote(this,e)}toString(){return"Quote"}}class $t extends Wt{visit(t,e=null){}}class Zt extends Wt{visit(t,e=null){return t.visitImplicitReceiver(this,e)}}class Jt extends Wt{constructor(t,e){super(t),this.expressions=e}visit(t,e=null){return t.visitChain(this,e)}}class Qt extends Wt{constructor(t,e,n,a){super(t),this.condition=e,this.trueExp=n,this.falseExp=a}visit(t,e=null){return t.visitConditional(this,e)}}class Xt extends Wt{constructor(t,e,n){super(t),this.receiver=e,this.name=n}visit(t,e=null){return t.visitPropertyRead(this,e)}}class te extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.value=a}visit(t,e=null){return t.visitPropertyWrite(this,e)}}class ee extends Wt{constructor(t,e,n){super(t),this.receiver=e,this.name=n}visit(t,e=null){return t.visitSafePropertyRead(this,e)}}class ne extends Wt{constructor(t,e,n){super(t),this.obj=e,this.key=n}visit(t,e=null){return t.visitKeyedRead(this,e)}}class ae extends Wt{constructor(t,e,n,a){super(t),this.obj=e,this.key=n,this.value=a}visit(t,e=null){return t.visitKeyedWrite(this,e)}}class re extends Wt{constructor(t,e,n,a){super(t),this.exp=e,this.name=n,this.args=a}visit(t,e=null){return t.visitPipe(this,e)}}class ie extends Wt{constructor(t,e){super(t),this.value=e}visit(t,e=null){return t.visitLiteralPrimitive(this,e)}}class se extends Wt{constructor(t,e){super(t),this.expressions=e}visit(t,e=null){return t.visitLiteralArray(this,e)}}class oe extends Wt{constructor(t,e,n){super(t),this.keys=e,this.values=n}visit(t,e=null){return t.visitLiteralMap(this,e)}}class ue extends Wt{constructor(t,e,n){super(t),this.strings=e,this.expressions=n}visit(t,e=null){return t.visitInterpolation(this,e)}}class de extends Wt{constructor(t,e,n,a){super(t),this.operation=e,this.left=n,this.right=a}visit(t,e=null){return t.visitBinary(this,e)}}class le extends Wt{constructor(t,e){super(t),this.expression=e}visit(t,e=null){return t.visitPrefixNot(this,e)}}class ce extends Wt{constructor(t,e){super(t),this.expression=e}visit(t,e=null){return t.visitNonNullAssert(this,e)}}class fe extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.args=a}visit(t,e=null){return t.visitMethodCall(this,e)}}class he extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.args=a}visit(t,e=null){return t.visitSafeMethodCall(this,e)}}class ge extends Wt{constructor(t,e,n){super(t),this.target=e,this.args=n}visit(t,e=null){return t.visitFunctionCall(this,e)}}class pe extends Wt{constructor(t,e,n,a){super(new Ut(0,null==e?0:e.length)),this.ast=t,this.source=e,this.location=n,this.errors=a}visit(t,e=null){return this.ast.visit(t,e)}toString(){return`${this.source} in ${this.location}`}}class be{constructor(t,e,n,a,r){this.span=t,this.key=e,this.keyIsVar=n,this.name=a,this.expression=r}}const me=function(){var t={Character:0,Identifier:1,Keyword:2,String:3,Operator:4,Number:5,Error:6};return t[t.Character]="Character",t[t.Identifier]="Identifier",t[t.Keyword]="Keyword",t[t.String]="String",t[t.Operator]="Operator",t[t.Number]="Number",t[t.Error]="Error",t}(),ye=["var","let","as","null","undefined","true","false","if","else","this"];class ve{tokenize(t){const e=new we(t),n=[];let a=e.scanToken();for(;null!=a;)n.push(a),a=e.scanToken();return n}}class xe{constructor(t,e,n,a){this.index=t,this.type=e,this.numValue=n,this.strValue=a}isCharacter(t){return this.type===me.Character&&this.numValue===t}isNumber(){return this.type===me.Number}isString(){return this.type===me.String}isOperator(t){return this.type===me.Operator&&this.strValue===t}isIdentifier(){return this.type===me.Identifier}isKeyword(){return this.type===me.Keyword}isKeywordLet(){return this.type===me.Keyword&&"let"===this.strValue}isKeywordAs(){return this.type===me.Keyword&&"as"===this.strValue}isKeywordNull(){return this.type===me.Keyword&&"null"===this.strValue}isKeywordUndefined(){return this.type===me.Keyword&&"undefined"===this.strValue}isKeywordTrue(){return this.type===me.Keyword&&"true"===this.strValue}isKeywordFalse(){return this.type===me.Keyword&&"false"===this.strValue}isKeywordThis(){return this.type===me.Keyword&&"this"===this.strValue}isError(){return this.type===me.Error}toNumber(){return this.type===me.Number?this.numValue:-1}toString(){switch(this.type){case me.Character:case me.Identifier:case me.Keyword:case me.Operator:case me.String:case me.Error:return this.strValue;case me.Number:return this.numValue.toString();default:return null}}}function _e(t,e){return new xe(t,me.Character,e,String.fromCharCode(e))}function Te(t,e){return new xe(t,me.Operator,0,e)}const Oe=new xe(-1,me.Character,0,"");class we{constructor(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){const t=this.input,e=this.length;let n=this.peek,a=this.index;for(;n<=32;){if(++a>=e){n=0;break}n=t.charCodeAt(a)}if(this.peek=n,this.index=a,a>=e)return null;if(Se(n))return this.scanIdentifier();if(R(n))return this.scanNumber(a);const r=a;switch(n){case 46:return this.advance(),R(this.peek)?this.scanNumber(r):_e(r,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(r,n);case 39:case 34:return this.scanString();case 35:case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(r,String.fromCharCode(n));case 63:return this.scanComplexOperator(r,"?",46,".");case 60:case 62:return this.scanComplexOperator(r,String.fromCharCode(n),61,"=");case 33:case 61:return this.scanComplexOperator(r,String.fromCharCode(n),61,"=",61,"=");case 38:return this.scanComplexOperator(r,"&",38,"&");case 124:return this.scanComplexOperator(r,"|",124,"|");case 160:for(;C(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(n)}]`,0)}scanCharacter(t,e){return this.advance(),_e(t,e)}scanOperator(t,e){return this.advance(),Te(t,e)}scanComplexOperator(t,e,n,a,r,i){this.advance();let s=e;return this.peek===n&&(this.advance(),s+=a),null!=r&&this.peek===r&&(this.advance(),s+=i),Te(t,s)}scanIdentifier(){const t=this.index;for(this.advance();Ie(this.peek);)this.advance();const e=this.input.substring(t,this.index);return ye.indexOf(e)>-1?new xe(t,me.Keyword,0,e):function(t,e){return new xe(t,me.Identifier,0,e)}(t,e)}scanNumber(t){let e=this.index===t;for(this.advance();;){if(R(this.peek));else if(46===this.peek)e=!1;else{if(101!==(n=this.peek)&&69!==n)break;if(this.advance(),Ne(this.peek)&&this.advance(),!R(this.peek))return this.error("Invalid exponent",-1);e=!1}this.advance()}var n;const a=this.input.substring(t,this.index),r=e?function(t){const e=parseInt(t,10);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}(a):parseFloat(a);return new xe(t,me.Number,r,"")}scanString(){const t=this.index,e=this.peek;this.advance();let n="",a=this.index;const r=this.input;for(;this.peek!==e;)if(92===this.peek){let t;if(n+=r.substring(a,this.index),this.advance(),this.peek=this.peek,117===this.peek){const e=r.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(e))return this.error(`Invalid unicode escape [\\u${e}]`,0);t=parseInt(e,16);for(let t=0;t<5;t++)this.advance()}else t=Ce(this.peek),this.advance();n+=String.fromCharCode(t),a=this.index}else{if(0===this.peek)return this.error("Unterminated quote",0);this.advance()}const i=r.substring(a,this.index);return this.advance(),new xe(t,me.String,0,n+i)}error(t,e){const n=this.index+e;return function(t,e){return new xe(t,me.Error,0,e)}(n,`Lexer Error: ${t} at column ${n} in expression [${this.input}]`)}}function Se(t){return 97<=t&&t<=122||65<=t&&t<=90||95===t||36===t}function Ie(t){return A(t)||R(t)||95===t||36===t}function Ne(t){return 45===t||43===t}function Ce(t){switch(t){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return t}}class Re{constructor(t,e,n){this.strings=t,this.expressions=e,this.offsets=n}}class Ae{constructor(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}}function ke(t){const e=S(t.start)+"([\\s\\S]*?)"+S(t.end);return new RegExp(e,"g")}class Ee{constructor(t){this._lexer=t,this.errors=[]}parseAction(t,e,n=N){this._checkNoInterpolation(t,e,n);const a=this._stripComments(t),r=this._lexer.tokenize(this._stripComments(t)),i=new Le(t,e,r,a.length,!0,this.errors,t.length-a.length).parseChain();return new pe(i,t,e,this.errors)}parseBinding(t,e,n=N){const a=this._parseBindingAst(t,e,n);return new pe(a,t,e,this.errors)}parseSimpleBinding(t,e,n=N){const a=this._parseBindingAst(t,e,n),r=De.check(a);return r.length>0&&this._reportError(`Host binding expression cannot contain ${r.join(" ")}`,t,e),new pe(a,t,e,this.errors)}_reportError(t,e,n,a){this.errors.push(new Ht(t,e,n,a))}_parseBindingAst(t,e,n){const a=this._parseQuote(t,e);if(null!=a)return a;this._checkNoInterpolation(t,e,n);const r=this._stripComments(t),i=this._lexer.tokenize(r);return new Le(t,e,i,r.length,!1,this.errors,t.length-r.length).parseChain()}_parseQuote(t,e){if(null===t)return null;const n=t.indexOf(":");if(-1===n)return null;const a=t.substring(0,n).trim();if(!function(t){if(0===t.length)return!1;const e=new we(t);if(!Se(e.peek))return!1;for(e.advance();0!==e.peek;){if(!Ie(e.peek))return!1;e.advance()}return!0}(a))return null;const r=t.substring(n+1);return new Kt(new Ut(0,t.length),a,r,e)}parseTemplateBindings(t,e,n){const a=this._lexer.tokenize(e);if(t){const e=this._lexer.tokenize(t).map(t=>(t.index=0,t));a.unshift(...e)}return new Le(e,n,a,e.length,!1,this.errors,0).parseTemplateBindings()}parseInterpolation(t,e,n=N){const a=this.splitInterpolation(t,e,n);if(null===a)return null;const r=[];for(let i=0;i<a.expressions.length;++i){const n=a.expressions[i],s=this._stripComments(n),o=this._lexer.tokenize(s),u=new Le(t,e,o,s.length,!1,this.errors,a.offsets[i]+(n.length-s.length)).parseChain();r.push(u)}return new pe(new ue(new Ut(0,null===t?0:t.length),a.strings,r),t,e,this.errors)}splitInterpolation(t,e,n=N){const a=ke(n),r=t.split(a);if(r.length<=1)return null;const i=[],s=[],o=[];let u=0;for(let d=0;d<r.length;d++){const a=r[d];d%2==0?(i.push(a),u+=a.length):a.trim().length>0?(u+=n.start.length,s.push(a),o.push(u),u+=a.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,`at column ${this._findInterpolationErrorColumn(r,d,n)} in`,e),s.push("$implict"),o.push(u))}return new Re(i,s,o)}wrapLiteralPrimitive(t,e){return new pe(new ie(new Ut(0,null===t?0:t.length),t),t,e,this.errors)}_stripComments(t){const e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t}_commentStart(t){let e=null;for(let a=0;a<t.length-1;a++){const r=t.charCodeAt(a),i=t.charCodeAt(a+1);if(47===r&&47===i&&null===e)return a;e===r?e=null:null===e&&(39===(n=r)||34===n||96===n)&&(e=r)}var n;return null}_checkNoInterpolation(t,e,n){const a=ke(n),r=t.split(a);r.length>1&&this._reportError(`Got interpolation (${n.start}${n.end}) where expression was expected`,t,`at column ${this._findInterpolationErrorColumn(r,1,n)} in`,e)}_findInterpolationErrorColumn(t,e,n){let a="";for(let r=0;r<e;r++)a+=r%2==0?t[r]:`${n.start}${t[r]}${n.end}`;return a.length}}class Le{constructor(t,e,n,a,r,i,s){this.input=t,this.location=e,this.tokens=n,this.inputLength=a,this.parseAction=r,this.errors=i,this.offset=s,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}peek(t){const e=this.index+t;return e<this.tokens.length?this.tokens[e]:Oe}get next(){return this.peek(0)}get inputIndex(){return this.index<this.tokens.length?this.next.index+this.offset:this.inputLength+this.offset}span(t){return new Ut(t,this.inputIndex)}advance(){this.index++}optionalCharacter(t){return!!this.next.isCharacter(t)&&(this.advance(),!0)}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(t){this.optionalCharacter(t)||this.error(`Missing expected ${String.fromCharCode(t)}`)}optionalOperator(t){return!!this.next.isOperator(t)&&(this.advance(),!0)}expectOperator(t){this.optionalOperator(t)||this.error(`Missing expected operator ${t}`)}expectIdentifierOrKeyword(){const t=this.next;return t.isIdentifier()||t.isKeyword()?(this.advance(),t.toString()):(this.error(`Unexpected token ${t}, expected identifier or keyword`),"")}expectIdentifierOrKeywordOrString(){const t=this.next;return t.isIdentifier()||t.isKeyword()||t.isString()?(this.advance(),t.toString()):(this.error(`Unexpected token ${t}, expected identifier, keyword, or string`),"")}parseChain(){const t=[],e=this.inputIndex;for(;this.index<this.tokens.length;){const e=this.parsePipe();if(t.push(e),this.optionalCharacter(59))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(59););else this.index<this.tokens.length&&this.error(`Unexpected token '${this.next}'`)}return 0===t.length?new $t(this.span(e)):1===t.length?t[0]:new Jt(this.span(e),t)}parsePipe(){let t=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{const e=this.expectIdentifierOrKeyword(),n=[];for(;this.optionalCharacter(58);)n.push(this.parseExpression());t=new re(this.span(t.span.start),t,e,n)}while(this.optionalOperator("|"))}return t}parseExpression(){return this.parseConditional()}parseConditional(){const t=this.inputIndex,e=this.parseLogicalOr();if(this.optionalOperator("?")){const n=this.parsePipe();let a;if(this.optionalCharacter(58))a=this.parsePipe();else{const e=this.input.substring(t,this.inputIndex);this.error(`Conditional expression ${e} requires all 3 expressions`),a=new $t(this.span(t))}return new Qt(this.span(t),e,n,a)}return e}parseLogicalOr(){let t=this.parseLogicalAnd();for(;this.optionalOperator("||");){const e=this.parseLogicalAnd();t=new de(this.span(t.span.start),"||",t,e)}return t}parseLogicalAnd(){let t=this.parseEquality();for(;this.optionalOperator("&&");){const e=this.parseEquality();t=new de(this.span(t.span.start),"&&",t,e)}return t}parseEquality(){let t=this.parseRelational();for(;this.next.type===me.Operator;){const e=this.next.strValue;switch(e){case"==":case"===":case"!=":case"!==":this.advance();const n=this.parseRelational();t=new de(this.span(t.span.start),e,t,n);continue}break}return t}parseRelational(){let t=this.parseAdditive();for(;this.next.type===me.Operator;){const e=this.next.strValue;switch(e){case"<":case">":case"<=":case">=":this.advance();const n=this.parseAdditive();t=new de(this.span(t.span.start),e,t,n);continue}break}return t}parseAdditive(){let t=this.parseMultiplicative();for(;this.next.type===me.Operator;){const e=this.next.strValue;switch(e){case"+":case"-":this.advance();const n=this.parseMultiplicative();t=new de(this.span(t.span.start),e,t,n);continue}break}return t}parseMultiplicative(){let t=this.parsePrefix();for(;this.next.type===me.Operator;){const e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();const n=this.parsePrefix();t=new de(this.span(t.span.start),e,t,n);continue}break}return t}parsePrefix(){if(this.next.type===me.Operator){const t=this.inputIndex,e=this.next.strValue;let n;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new de(this.span(t),e,new ie(new Ut(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new le(this.span(t),n)}}return this.parseCallChain()}parseCallChain(){let t=this.parsePrimary();for(;;)if(this.optionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(91)){this.rbracketsExpected++;const e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(93),this.optionalOperator("=")){const n=this.parseConditional();t=new ae(this.span(t.span.start),t,e,n)}else t=new ne(this.span(t.span.start),t,e)}else if(this.optionalCharacter(40)){this.rparensExpected++;const e=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new ge(this.span(t.span.start),t,e)}else{if(!this.optionalOperator("!"))return t;t=new ce(this.span(t.span.start),t)}}parsePrimary(){const t=this.inputIndex;if(this.optionalCharacter(40)){this.rparensExpected++;const t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),t}if(this.next.isKeywordNull())return this.advance(),new ie(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new ie(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new ie(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new ie(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new Zt(this.span(t));if(this.optionalCharacter(91)){this.rbracketsExpected++;const e=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new se(this.span(t),e)}if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Zt(this.span(t)),!1);if(this.next.isNumber()){const e=this.next.toNumber();return this.advance(),new ie(this.span(t),e)}if(this.next.isString()){const e=this.next.toString();return this.advance(),new ie(this.span(t),e)}return this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $t(this.span(t))):(this.error(`Unexpected token ${this.next}`),new $t(this.span(t)))}parseExpressionList(t){const e=[];if(!this.next.isCharacter(t))do{e.push(this.parsePipe())}while(this.optionalCharacter(44));return e}parseLiteralMap(){const t=[],e=[],n=this.inputIndex;if(this.expectCharacter(123),!this.optionalCharacter(125)){this.rbracesExpected++;do{const n=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();t.push({key:a,quoted:n}),this.expectCharacter(58),e.push(this.parsePipe())}while(this.optionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new oe(this.span(n),t,e)}parseAccessMemberOrMethodCall(t,e=!1){const n=t.span.start,a=this.expectIdentifierOrKeyword();if(this.optionalCharacter(40)){this.rparensExpected++;const r=this.parseCallArguments();this.expectCharacter(41),this.rparensExpected--;const i=this.span(n);return e?new he(i,t,a,r):new fe(i,t,a,r)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new $t(this.span(n))):new ee(this.span(n),t,a);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new $t(this.span(n));const e=this.parseConditional();return new te(this.span(n),t,a,e)}return new Xt(this.span(n),t,a)}parseCallArguments(){if(this.next.isCharacter(41))return[];const t=[];do{t.push(this.parsePipe())}while(this.optionalCharacter(44));return t}expectTemplateBindingKey(){let t="",e=!1;do{t+=this.expectIdentifierOrKeywordOrString(),e=this.optionalOperator("-"),e&&(t+="-")}while(e);return t.toString()}parseTemplateBindings(){const t=[];let e=null;for(;this.index<this.tokens.length;){const n=this.inputIndex;let a=this.peekKeywordLet();a&&this.advance();const r=this.expectTemplateBindingKey();let i=r;a||(null===e?e=i:i=e+i[0].toUpperCase()+i.substring(1)),this.optionalCharacter(58);let s=null,o=null;if(a)s=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.peekKeywordAs())this.advance(),s=r,i=this.expectTemplateBindingKey(),a=!0;else if(this.next!==Oe&&!this.peekKeywordLet()){const t=this.inputIndex,e=this.parsePipe(),n=this.input.substring(t-this.offset,this.inputIndex-this.offset);o=new pe(e,n,this.location,this.errors)}if(t.push(new be(this.span(n),i,a,s,o)),this.peekKeywordAs()&&!a){const e=this.inputIndex;this.advance();const n=this.expectTemplateBindingKey();t.push(new be(this.span(e),n,!0,i,null))}this.optionalCharacter(59)||this.optionalCharacter(44)}return new Ae(t,[],this.errors)}error(t,e=null){this.errors.push(new Ht(t,this.input,this.locationText(e),this.location)),this.skip()}locationText(t=null){return null===t&&(t=this.index),t<this.tokens.length?`at column ${this.tokens[t].index+1} in`:"at the end of the expression"}skip(){let t=this.next;for(;this.index<this.tokens.length&&!t.isCharacter(59)&&(this.rparensExpected<=0||!t.isCharacter(41))&&(this.rbracesExpected<=0||!t.isCharacter(125))&&(this.rbracketsExpected<=0||!t.isCharacter(93));)this.next.isError()&&this.errors.push(new Ht(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next}}class De{constructor(){this.errors=[]}static check(t){const e=new De;return t.visit(e),e.errors}visitImplicitReceiver(t,e){}visitInterpolation(t,e){}visitLiteralPrimitive(t,e){}visitPropertyRead(t,e){}visitPropertyWrite(t,e){}visitSafePropertyRead(t,e){}visitMethodCall(t,e){}visitSafeMethodCall(t,e){}visitFunctionCall(t,e){}visitLiteralArray(t,e){this.visitAll(t.expressions)}visitLiteralMap(t,e){this.visitAll(t.values)}visitBinary(t,e){}visitPrefixNot(t,e){}visitNonNullAssert(t,e){}visitConditional(t,e){}visitPipe(t,e){this.errors.push("pipes")}visitKeyedRead(t,e){}visitKeyedWrite(t,e){}visitAll(t){return t.map(t=>t.visit(this))}visitChain(t,e){}visitQuote(t,e){}}const Pe={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"};class Me{constructor(){this._placeHolderNameCounts={},this._signatureToName={}}getStartTagPlaceholderName(t,e,n){const a=this._hashTag(t,e,n);if(this._signatureToName[a])return this._signatureToName[a];const r=t.toUpperCase(),i=Pe[r]||`TAG_${r}`,s=this._generateUniqueName(n?i:`START_${i}`);return this._signatureToName[a]=s,s}getCloseTagPlaceholderName(t){const e=this._hashClosingTag(t);if(this._signatureToName[e])return this._signatureToName[e];const n=t.toUpperCase(),a=this._generateUniqueName(`CLOSE_${Pe[n]||`TAG_${n}`}`);return this._signatureToName[e]=a,a}getPlaceholderName(t,e){const n=t.toUpperCase(),a=`PH: ${n}=${e}`;if(this._signatureToName[a])return this._signatureToName[a];const r=this._generateUniqueName(n);return this._signatureToName[a]=r,r}getUniquePlaceholder(t){return this._generateUniqueName(t.toUpperCase())}_hashTag(t,e,n){return`<${t}`+Object.keys(e).sort().map(t=>` ${t}=${e[t]}`).join("")+(n?"/>":`></${t}>`)}_hashClosingTag(t){return this._hashTag(`/${t}`,{},!1)}_generateUniqueName(t){if(!this._placeHolderNameCounts.hasOwnProperty(t))return this._placeHolderNameCounts[t]=1,t;const e=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=e+1,`${t}_${e}`}}const qe=new Ee(new ve);class je{constructor(t,e){this._expressionParser=t,this._interpolationConfig=e}toI18nMessage(t,e,n,a){this._isIcu=1===t.length&&t[0]instanceof s,this._icuDepth=0,this._placeholderRegistry=new Me,this._placeholderToContent={},this._placeholderToMessage={};const r=c(this,t,{});return new f(r,this._placeholderToContent,this._placeholderToMessage,e,n,a)}visitElement(t,e){const n=c(this,t.children),a={};t.attrs.forEach(t=>{a[t.name]=t.value});const r=ut(t.name).isVoid,i=this._placeholderRegistry.getStartTagPlaceholderName(t.name,a,r);this._placeholderToContent[i]=t.sourceSpan?t.sourceSpan.toString():"";let s="";return r||(s=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[s]=`</${t.name}>`),new b(t.name,a,i,s,n,r,t.sourceSpan)}visitAttribute(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)}visitText(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)}visitComment(t,e){return null}visitExpansion(t,e){this._icuDepth++;const n={},a=new p(t.switchValue,t.type,n,t.sourceSpan);if(t.cases.forEach(t=>{n[t.value]=new g(t.expression.map(t=>t.visit(this,{})),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){const e=this._placeholderRegistry.getUniquePlaceholder(`VAR_${t.type}`);return a.expressionPlaceholder=e,this._placeholderToContent[e]=t.switchValue,a}const r=this._placeholderRegistry.getPlaceholderName("ICU",t.sourceSpan.toString()),i=new je(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[r]=i.toI18nMessage([t],"","",""),new y(a,r,t.sourceSpan)}visitExpansionCase(t,e){throw new Error("Unreachable code")}_visitTextWithInterpolation(t,e){const n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new h(t,e);const a=[],r=new g(a,e),{start:i,end:s}=this._interpolationConfig;for(let u=0;u<n.strings.length-1;u++){const t=n.expressions[u],r=t.split(Fe)[2]||"INTERPOLATION",o=this._placeholderRegistry.getPlaceholderName(r,t);n.strings[u].length&&a.push(new h(n.strings[u],e)),a.push(new m(t,o,e)),this._placeholderToContent[o]=i+t+s}const o=n.strings.length-1;return n.strings[o].length&&a.push(new h(n.strings[o],e)),r}}const Fe=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*("|')([\s\S]*?)\1[\s\S]*\)/g;class Ge extends X{constructor(t=N){super(ut),this.interpolationConfig=t}parse(t,e,n=!1){return super.parse(t,e,n,this.interpolationConfig)}extractMessages(t){const e=new He(["wrapper"]),n=new d("wrapper",[],t,void 0,void 0,void 0);return e.extract(n,this.interpolationConfig)}mergeTranslations(t,e,n,a,r=[]){const i=new He(r),s=new d("wrapper",[],t,void 0,void 0,void 0);return i.merge(s,e,this.interpolationConfig,n,a)}}class Ve{constructor(t,e){this.messages=t,this.errors=e}}class ze{constructor(t={},e,n,a,r,i){this.i18nNodesByMsgId=t,this.digest=e,this.mapperFactory=r,this.i18nToHtml=new Be(t,e,r,a,n,i)}static load(t,e,n,a,r,i,s=N){const o=r(t,e);return new ze(o,t=>n(t),s,i,t=>a(t),console)}get(t,e){const n=this.i18nToHtml.convert(t,e);if(n.errors.length)throw new Error(n.errors.join("\n"));return n.nodes}has(t){return this.digest(t)in this.i18nNodesByMsgId}}class Be{constructor(t={},e,n,a,r,i){this._i18nNodesByMsgId=t,this._digest=e,this._mapperFactory=n,this._missingTranslationStrategy=a,this._interpolationConfig=r,this._console=i,this._contextStack=[],this._errors=[]}convert(t,e){this._contextStack.length=0,this._errors.length=0,this._params=e,this._paramKeys=Object.keys(e);const n=this.convertToText(t),a=t.nodes[0].sourceSpan.start.file.url,r=(new Ge).parse(n,a,!0);return{nodes:r.rootNodes,errors:[...this._errors,...r.errors]}}visitText(t,e){return t.value}visitContainer(t,e){return t.children.map(t=>t.visit(this)).join("")}visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${this._srcMsg.placeholders.hasOwnProperty(t.expression)?this._srcMsg.placeholders[t.expression]:t.expression}, ${t.type}, ${n.join(" ")}}`}visitPlaceholder(t,e){const n=this._mapper(t.name);return this._srcMsg.placeholders.hasOwnProperty(n)?this.convertToValue(this._srcMsg.placeholders[n]):this._srcMsg.placeholderToMessage.hasOwnProperty(n)?this.convertToText(this._srcMsg.placeholderToMessage[n]):(this._addError(t,`Unknown placeholder "${t.name}"`),"")}visitTagPlaceholder(t,e){const n=`${t.tag}`,a=Object.keys(t.attrs).map(e=>`${e}="${t.attrs[e]}"`).join(" ");return t.isVoid?`<${n} ${a}/>`:`<${n} ${a}>${t.children.map(t=>t.visit(this)).join("")}</${n}>`}visitIcuPlaceholder(t,e){return this.convertToText(this._srcMsg.placeholderToMessage[t.name])}convertToText(t){const e=this._digest(t),n=this._mapperFactory?this._mapperFactory(t):null;let a;this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(e)?(a=this._i18nNodesByMsgId[e],this._mapper=t=>n?n.toInternalName(t):t):(this._missingTranslationStrategy===r.MissingTranslationStrategy.Error?this._addError(t.nodes[0],`Missing translation for message "${e}"`):this._console&&this._missingTranslationStrategy===r.MissingTranslationStrategy.Warning&&this._console.warn(`Missing translation for message "${e}"`),a=t.nodes,this._mapper=t=>t);const i=a.map(t=>t.visit(this)).join(""),s=this._contextStack.pop();return this._srcMsg=s.msg,this._mapper=s.mapper,i}convertToValue(t){const e=t.replace(this._interpolationConfig.start,"").replace(this._interpolationConfig.end,"");return-1!==this._paramKeys.indexOf(e)?this._params[e]:t}_addError(t,e){this._errors.push(new w(t.sourceSpan,e))}}const Ye=function(){var t={Extract:0,Merge:1};return t[t.Extract]="Extract",t[t.Merge]="Merge",t}();class He{constructor(t=[]){this._implicitTags=t,this.blockChildren=[]}extract(t,e){return this.init(Ye.Extract,e),t.visit(this,null),this.inI18nBlock&&this._reportError(t,"Unclosed block"),new Ve(this.messages,this.errors)}merge(t,e,n,a,r={}){this.init(Ye.Merge,n,a),this.translations=e,this.metadata=r;const i=t.visit(this,null);return this.inI18nBlock&&this._reportError(t,"Unclosed block"),new Q(i.children,this.errors)}visitExpansionCase(t,e){const n=c(this,t.expression,e);if(this.mode===Ye.Merge)return new o(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)}visitExpansion(t,e){this.mayBeAddBlockChildren(t);const n=this.inIcu;this.inIcu||(this.isInTranslatableSection&&this.addMessage([t]),this.inIcu=!0);const a=c(this,t.cases,e);return this.mode===Ye.Merge&&(t=new s(t.switchValue,t.type,a,t.sourceSpan,t.switchValueSourceSpan)),this.inIcu=n,t}visitComment(t,e){}visitText(t,e){return this.isInTranslatableSection&&this.mayBeAddBlockChildren(t),t}visitElement(t,e){this.mayBeAddBlockChildren(t),this.depth++;const n=this.inI18nNode,a=this.inImplicitNode;let r=[],i=void 0;const s=t.attrs.find(t=>"i18n"===t.name)||null,o=this._implicitTags.some(e=>t.name===e)&&!this.inIcu&&!this.isInTranslatableSection,u=!a&&o;if(this.inImplicitNode=a||o,this.isInTranslatableSection||this.inIcu)(s||u)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this.mode===Ye.Extract&&c(this,t.children);else{if(s||u){this.inI18nNode=!0;const e=this.addMessage(t.children,this.metadata);i=this.translateMessage(t,e)}if(this.mode===Ye.Extract){const e=s||u;e&&this.openTranslatableSection(t),c(this,t.children),e&&this._closeTranslatableSection(t,t.children)}}return this.mode===Ye.Merge&&(i||t.children).forEach(t=>{const n=t.visit(this,e);n&&!this.isInTranslatableSection&&(r=r.concat(n))}),this.depth--,this.inI18nNode=n,this.inImplicitNode=a,this.mode===Ye.Merge?new d(t.name,[],r,t.sourceSpan,t.startSourceSpan,t.endSourceSpan):null}visitAttribute(t,e){throw new Error("unreachable code")}init(t,e,n={}){this.mode=t,this.inI18nBlock=!1,this.inI18nNode=!1,this.depth=0,this.inIcu=!1,this.msgCountAtSectionStart=void 0,this.errors=[],this.messages=[],this.inImplicitNode=!1,this.createI18nMessage=function(t){const e=new je(qe,t);return(t,n,a,r)=>e.toI18nMessage(t,n,a,r)}(e),this.params=n}addMessage(t,{meaning:e="",description:n="",id:a=""}={}){if(0===t.length||1===t.length&&t[0]instanceof u&&!t[0].value)return null;const r=this.createI18nMessage(t,e,n,a);return this.messages.push(r),r}translateMessage(t,e){if(e&&this.mode===Ye.Merge){const n=this.translations.get(e,this.params);if(n)return n;this._reportError(t,`Translation unavailable for message id="${this.translations.digest(e)}"`)}return[]}mayBeAddBlockChildren(t){this.inI18nBlock&&!this.inIcu&&this.depth===this.blockStartDepth&&this.blockChildren.push(t)}openTranslatableSection(t){this.isInTranslatableSection?this._reportError(t,"Unexpected section start"):this.msgCountAtSectionStart=this.messages.length}get isInTranslatableSection(){return void 0!==this.msgCountAtSectionStart}_closeTranslatableSection(t,e){if(!this.isInTranslatableSection)return void this._reportError(t,"Unexpected section end");const n=this.msgCountAtSectionStart;if(1===e.reduce((t,e)=>t+(e instanceof l?0:1),0))for(let a=this.messages.length-1;a>=n;a--){const t=this.messages[a].nodes;if(!(1===t.length&&t[0]instanceof h)){this.messages.splice(a,1);break}}this.msgCountAtSectionStart=void 0}_reportError(t,e){this.errors.push(new w(t.sourceSpan,e))}}const Ue=new r.InjectionToken("MissingTranslationStrategy");class We{constructor(t,e,n,a=r.MissingTranslationStrategy.Warning){let i,s,o=t=>null;switch(t=(t||"xlf").toLowerCase()){case"xtb":i=Gt,s=Vt,o=zt;break;case"xliff2":case"xlf2":i=Pt,s=Mt;break;case"xliff":case"xlf":i=kt,s=Et;break;default:throw new Error(`Unknown translations format ${t}`)}const u=new Ge,d=ze.load(e,"i18n",s,o,i,a);return(t,e={})=>{const a="string"==typeof t?t:t.value,r={};"object"==typeof t&&(r.id=t.id,r.meaning=t.meaning,r.description=t.description);const i=u.parse(a,"",!0);if(i.errors.length)throw i.errors;return function(t,e,n){return t.map(t=>t.visit(new ct(e,n),null))}(u.mergeTranslations(i.rootNodes,d,e,r,["wrapper"]).rootNodes,n,e).join("")}}}},GoyQ:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},GyhO:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("LRne"),r=n("0EUg");function i(...t){return Object(r.a)()(Object(a.a)(...t))}},H0h1:function(t,e,n){var a=n("SKAX");t.exports=function(t,e){var n=!0;return a(t,(function(t,a,r){return n=!!e(t,a,r)})),n}},H8ED:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"хвіліна":"хвіліну":"h"===n?e?"гадзіна":"гадзіну":t+" "+(a=+t,r={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:e?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}t.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".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:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:e,mm:e,h:e,hh:e,d:"дзень",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(t){return/^(дня|вечара)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночы":t<12?"раніцы":t<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-ы":t+"-і";case"D":return t+"-га";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},H8j4:function(t,e,n){var a=n("QkVE");t.exports=function(t,e){var n=a(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}},HAuM:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},HDdC:function(t,e,n){"use strict";var a=n("7o/Q"),r=n("2QA8"),i=n("gRHU"),s=n("kJWO"),o=n("mCNh"),u=n("2fFW");n.d(e,"a",(function(){return d}));let d=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:s}=this,o=function(t,e,n){if(t){if(t instanceof a.a)return t;if(t[r.a])return t[r.a]()}return t||e||n?new a.a(t,e,n):new a.a(i.a)}(t,e,n);if(o.add(s?s.call(o,this.source):this.source||u.a.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),u.a.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o}_trySubscribe(t){try{return this._subscribe(t)}catch(e){u.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),function(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof a.a?n:null}return!0}(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=l(e))((e,n)=>{let a;a=this.subscribe(e=>{try{t(e)}catch(r){n(r),a&&a.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[s.a](){return this}pipe(...t){return 0===t.length?this:Object(o.b)(t)(this)}toPromise(t){return new(t=l(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function l(t){if(t||(t=u.a.Promise||Promise),!t)throw new Error("no Promise impl found");return t}},HDyB:function(t,e,n){var a=n("nmnc"),r=n("JHRd"),i=n("ljhN"),s=n("or5M"),o=n("7fqy"),u=n("rEGp"),d=a?a.prototype:void 0,l=d?d.valueOf:void 0;t.exports=function(t,e,n,a,d,c,f){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!c(new r(t),new r(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return i(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var h=o;case"[object Set]":if(h||(h=u),t.size!=e.size&&!(1&a))return!1;var g=f.get(t);if(g)return g==e;a|=2,f.set(t,e);var p=s(h(t),h(e),a,d,c,f);return f.delete(t),p;case"[object Symbol]":if(l)return l.call(t)==l.call(e)}return!1}},HH4o:function(t,e,n){var a=n("tiKp")("iterator"),r=!1;try{var i=0,s={next:function(){return{done:!!i++}},return:function(){r=!0}};s[a]=function(){return this},Array.from(s,(function(){throw 2}))}catch(o){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i={};i[a]=function(){return{next:function(){return{done:n=!0}}}},t(i)}catch(o){}return n}},HIU9:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("8Y7J"),r=n("dApe"),i=n("X+05"),s=n("DzJC"),o=n.n(s),u=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},d=function(){function t(t,e,n){var a=this;this.elementRef=t,this.ngZone=e,this.virtualScroll=n,this.setViewport=o()((function(){a.virtualScroll.setViewport(a.elementRef.nativeElement)}),17),this.scrollEventHandler=this.setViewport.bind(this)}return t.prototype.ngOnInit=function(){this.virtualScroll.init()},t.prototype.ngAfterViewInit=function(){var t=this;setTimeout((function(){t.setViewport(),t.virtualScroll.fireEvent({eventName:i.a.initialized})}));var e=this.elementRef.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("scroll",t.scrollEventHandler)}))},t.prototype.ngOnDestroy=function(){this.virtualScroll.clear(),this.elementRef.nativeElement.removeEventListener("scroll",this.scrollEventHandler)},t.prototype.getTotalHeight=function(){return this.virtualScroll.isEnabled()&&this.virtualScroll.totalHeight+"px"||"auto"},function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}([Object(a.Component)({selector:"tree-viewport",styles:[],providers:[r.a],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div [style.height]="getTotalHeight()">\n        <ng-content></ng-content>\n      </div>\n    </ng-container>\n  '}),u("design:paramtypes",[a.ElementRef,a.NgZone,r.a])],t)}()},HOxn:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Promise");t.exports=a},HP3h:function(t,e,n){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(t){return function(e,r,i,s){var o=n(e),u=a[t][n(e)];return 2===o&&(u=u[r?0:1]),u.replace(/%d/i,e)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar-ly",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},Hd5f:function(t,e,n){var a=n("0Dky"),r=n("tiKp"),i=n("LQDL"),s=r("species");t.exports=function(t){return i>=51||!a((function(){var e=[];return(e.constructor={})[s]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HjS5:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="zh-TW">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>切換導覽</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>儀表板</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>叢集</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>主機</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>監控程式</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>服務</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>組態</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH 地圖</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>管理員模組</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>記錄</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>池</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>區塊</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>影像</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>鏡像</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>檔案系統</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>物件閘道</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>精靈</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>刪除通知</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>沒有通知。</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>任務與通知</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>選取語言</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>正在載入面板資料...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana 時間選擇器</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>重設設定</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>刷新</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>返回</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>無法載入資料。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>選取的數目</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>找到的數目</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>總計</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名稱</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>描述</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>詳細描述</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>預設值</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>精靈預設值</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>儲存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSH 地圖檢視器</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>正在載入...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>主機名稱</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>此欄位為必填欄位。</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>是的,我確定。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>取消</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>關閉</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>主機清單</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>整體效能</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>找不到項目</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>叢集記錄</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>稽核記錄</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>正在載入組態...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>無法載入組態。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>編輯管理員模組</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>輸入的值不是有效的 UUID,例如 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>輸入的值必須是有效的  IP 位址。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>輸入的值必須為數字。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>輸入的值必須為數字或小數。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>叢集 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap 修改時間</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap 版本編號</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>仲裁成員</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非仲裁成員</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>新增</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>功能</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>叢集範圍的 OSD 旗標</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>提交</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>進階...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 復原優先程度</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>優先程度</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>自訂優先程度值</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>此欄位為必填欄位!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>該值必須介於 0 至 1 之間。</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>重新設定權數</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深層} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深層} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 清單</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>編輯</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>刪除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>統計資料</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>用戶端</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任何用戶端均可存取</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>位址</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必填欄位</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>必須包含一或多個逗號分隔值</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例如︰</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>存取類型</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>新增用戶端</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 沒有可用的叢集 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 選取叢集 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>新增精靈</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>儲存後端</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 沒有可用的資料池 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 選取儲存後端 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>物件閘道使用者</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 沒有可用的使用者 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 選取物件閘道使用者 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 使用者 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 沒有可用的用戶端 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- 選取 cephx 用戶端 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 名稱</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>安全標籤</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>啟用安全標籤</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 路徑</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>路徑必須以「/」開頭,後面可接單詞</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>將建立新目錄</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>路徑</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>路徑只能以單一「/」或單詞開頭</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>將建立新桶</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 通訊協定</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 標記</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>用戶端不能掛接子目錄 (即如果標記為 foo,則用戶端無法掛接 foo/baz)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>透過使用不同標記選項,可將同一路徑輸出多次。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>虛擬</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>透過使用不同虛擬選項,可將同一路徑輸出多次。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 沒有可用的存取類型 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 選取存取類型 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 沒有可用的 squash --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 選取執行哪種類型的使用者 ID 匿名存取 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>傳輸通訊協定</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>歡迎使用 Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>需要指定使用者名稱</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>需要指定密碼</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>登入</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>抱歉,該使用者不存在於 Ceph 中。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>已禁止</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>抱歉,您無權查看您要尋找的內容。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 組態</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>移除本地組態值。將繼承並使用父組態值。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小值為 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>池清單</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名稱只能由英數字元、破折號和底線組成。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>所選的糾刪碼設定檔名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>外掛程式</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>資料區塊 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>必須大於或等於 2。</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>編碼區塊 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>必須大於或等於 1。</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>持久性估值 (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>本地性 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>CRUSH 故障網域</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>CRUSH 本地性</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>技術</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>封包大小</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>CRUSH 根</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>CRUSH 裝置類別</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任何</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>目錄</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名稱...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>所選的 Ceph 池名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>池類型</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 選取池類型 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>放置群組</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>至少需要一個放置群組!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>您的叢集無法處理這麼多的 PG。請重新計算所需的 PG 數量。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>計算說明</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>複製大小</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>旗標</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 覆寫</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>應用程式</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 沒有可用的糾刪碼設定檔 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 選取糾刪碼設定檔 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>CRUSH 規則集</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 選取 CRUSH 規則 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>CRUSH 規則</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>CRUSH 步驟</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>壓縮</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>模式</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>演算法</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 沒有可用的糾刪壓縮演算法 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Blob 最小大小</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>例如 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>值應大於 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Blob 最大大小</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>例如 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>值應大於 blob 最小大小</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>比率</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>壓縮率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>值應介於 0.0 至 1.0 之間</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>例如 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>詳細資料</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>效能詳細資料</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>快取層詳細資料</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>將影像移至垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保護的過期日為</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>無保護</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日期格式錯誤。請使用「YYYY-MM-DD HH:mm:ss」。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保護已過期。請選取一個未來的日期或保留空白。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>移動影像</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>綜覽</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>目標</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>探查驗證</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>使用者名稱的長度必須介於 8 至 64 個字元之間,並且只能包含以下\n                        字元︰字母、「.」、「@」、「-」、「_」或「:」。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>密碼</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>雙向驗證使用者</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>雙向驗證密碼</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>可用資訊︰</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>無法使用 iSCSI 目標</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>池</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>資料池</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>已建立</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>大小</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>物件</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>物件大小</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>已佈建</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>總佈建數</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>分割單位</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>分割計數</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>父</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>區塊名稱字首</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>順序</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>快照</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>影像</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>此設定會覆寫全域值</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>全域</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>此值為全域值。未為此影像設定此選項的值。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>不允許使用「/」和「@」。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 沒有可用的 RBD 池 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 選取池 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>使用專屬的資料池</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>資料池</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>專用於儲存 RBD 的物件資料的池</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>您必須增加大小。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>進階</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>分割</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>分割單位</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 選取分割單位 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>由於已定義分割計數,因此必須填寫此欄位!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>分割單位大於物件大小。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>分割計數</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>由於已定義分割單位,因此必須填寫此欄位!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>分割計數必須大於 0。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>您正要復原</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>清除垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>全部</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>池︰</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>池名稱...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>回存影像</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>若要回存</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>鍵入影像的新名稱并按一下</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新名稱</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>過期日為</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保護過期日為</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 拓撲</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常不需要變更這些參數的預設值。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>支援儲存</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>確認</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>進階設定</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>目標 IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN 模式錯誤。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例如:iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>更多資訊</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>此目標的進階設定存在修改。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>入口網站</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>新增入口網站</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>此影像的設定存在修改。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>新增影像</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 驗證</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>啟動器</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>啟動器</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>用戶端 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>啟動器 IQN 必須唯一。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>使用者名稱的長度必須介於 8 至 64 個字元之間,並且只能包含以下\n                        字元︰字母、「.」、「@」、「-」、「_」或「:」。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>啟動器屬於群組。影像須在群組中進行設定。 </target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>未新增項目。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>新增啟動器</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>群組</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>群組</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>新增群組</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>正在同步</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>準備就緒</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>編輯池鏡像模式</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>在停用鏡像之前,必須先移除對等叢集。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {編輯} other {新增} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>叢集名稱</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>叢集名稱無效。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID 無效。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>監控程式位址</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>逗號分隔的位址...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>監控程式位址無效。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 金鑰</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64 編碼的金鑰...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 金鑰必須為 Base64 編碼的金鑰。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>沒有可用的效能計數器</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>精靈清單</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>效能計數器</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>正在載入桶資料...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>該值無效。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>所選的名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>擁有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 選取使用者 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>已啟用</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>索引類型</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>放置規則</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>標記</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>最大標記數</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>主版本</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>修改時間</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>區域群組</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>桶定額</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大大小</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>無限制</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大物件數</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>使用者名稱</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 選取使用者名稱 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>自動產生金鑰</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>存取金鑰</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>機密金鑰</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>全名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>電子郵件地址</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>已暫停</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>系統</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大桶數</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>子使用者</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>功能</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>使用者定額</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>顯示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>金鑰</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>類型</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 選取類型 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>許可權</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 選取許可權 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>子使用者</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>所選的子使用者 ID 已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>讀取、寫入</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>完整</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift 金鑰</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>自動產生機密金鑰</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>正在載入使用者資料...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>無法載入使用者資料。</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>所選的使用者 ID 已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>電子郵件地址無效。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>所選的電子郵件地址已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>最大桶數</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>已停用</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>自訂</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 金鑰</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>沒有子使用者。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>沒有金鑰。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>沒有功能。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>大小不限</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>最大大小</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>物件數不限</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>最大物件數</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>輸入的值必須大於或等於 0。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>描述...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>許可權</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>角色</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>確認密碼</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>確認的密碼與之前輸入的密碼不符。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>電子郵件</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>電子郵件無效。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>您正要為您自己的使用者移除「使用者讀取/寫入」許可權。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>若繼續,您將再也無法為任何使用者新增或移除角色。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>確定要繼續嗎?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>說明</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>文件</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>關於</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>儀表板設定</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>使用者管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>登入的使用者</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>登出</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>屬性 (OSD 地圖)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>無法使用中繼資料</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>中繼資料</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>效能計數器</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>寫入</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>讀取</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>長條圖</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>目前的值</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>最小值</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>最大值</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>來源</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>層級</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>可在執行時期更新 (可編輯)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>標記</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>列舉值</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>另請參閱</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>叢集狀態</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>管理員精靈</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>物件閘道</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>中繼資料伺服器</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 閘道</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>用戶端 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>用戶端輸送量</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>用戶端讀取/寫入</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>復原輸送量</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>整理</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>效能</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>原始容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>每個 OSD 的 PG 數</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 狀態</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>階層</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>目前</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>已更新探查驗證</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>沒有可用的入口網站。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>沒有可用的影像。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>沒有可用的影像。請確定為目標新增一個影像。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>沒有可用的啟動器。請確定為目標新增一個啟動器。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>目標</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>讀取位元組數</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>寫入位元組數</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>讀取操作數</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>寫入操作數</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>使用中/最佳化開始時間</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>例項</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>進度</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>編輯模式</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>新增對等</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>編輯對等</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>刪除對等</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>本地數量</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>遠端數量</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>鏡像對等</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>金鑰</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>深層壓平</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>分層</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>獨佔鎖定</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>物件對應 (需要獨佔鎖定)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>記錄 (需要獨佔鎖定)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>未受保護</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 快照復原</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>復原</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 快照</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>刪除位置</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>類型</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>主機</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>根</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>待命精靈</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>階層</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>精靈</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>活動</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentry</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用率</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>已更新</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>該值可在執行時期更新。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>精靈/用戶端不會從監控程式組態資料庫\n      提取此值。我們不允許透過「ceph config set ...」\n      設定此選項。應透過 ceph.conf 或使用指令行\n      進行設定。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>該選項僅在精靈啟動期間生效。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>該選項僅影響叢集建立。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>該選項僅影響精靈建立。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>服務</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>目前的值</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>可編輯</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>啟用</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>停用</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>正在重新連接,請稍候...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>公用位址</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>開啟的工作階段</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>禁止標示為 In</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>之前標示為 out 的 OSD 在啟動時將不會重新標示為 in</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>禁止標示為 Out</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD 在設定的間隔過後將不會自動標示為 out</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>禁止標示為 Up</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>不允許 OSD 啟動</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>禁止標示為 Down</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>將會忽略 OSD 故障報告,如此監控程式便不會將 OSD 標示為 down</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>暫停</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>暫停讀取和寫入</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>禁止整理</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>整理已停用</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>禁止深層整理</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>深層整理已停用</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>禁止回填</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG 回填已暫停</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>禁止復原</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG 復原已暫停</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>按位元排序</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>使用按位元排序</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>已清除 Snapdir</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD 已轉換 snapset</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>復原刪除</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>在復原期間,而非在建立互聯時執行刪除</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 記錄硬限制</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>為 pg 記錄長度設定硬限制</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>已更新 OSD 旗標</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>out</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>in</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>down</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>標示</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 遺失</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>已標示為遺失</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>損毀</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>已損毀</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>刪除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>讀取位元組數</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>寫入位元組數</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>讀取操作數</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>寫入操作數</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大回填數</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>處於使用中狀態的最大復原操作數</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>單次啟動的最大復原操作數</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>復原操作間隔睡眠時間</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>工作</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>嚴重性</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>已啟動</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>已使用</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>可用</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>乾淨</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>工作中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警告</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>未知</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>啟用中</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>無檔案系統</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>使用中</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>待命</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>使用中的精靈</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>未設定 NFS Ganesha 服務。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>傳輸</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 使用者</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 檔案系統</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(繼承自全域組態)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>繼承自全域組態</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 選取執行哪種類型的使用者 ID 匿名存取 --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>沒有可用的精靈。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>快取模式</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>逐出前至少可留存的時間</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>衝洗前至少可留存的時間</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>目標最大位元組數</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>目標最大物件數</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>未新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>已達到應用程式上限</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>一個池最多只能四個應用程式定義。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>允許的字元為「_a-zA-Z0-9」</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>最大長度為 128 個字元</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>過濾或新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>複本大小</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>上次變更時間</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>CRUSH 規則集</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>範圍</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>讀取</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>建立</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>系統角色</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>更新使用者</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>繼續</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>您已被自動登出,因為您的角色發生了變更。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>各物件都被分割成資料區塊部分,分別儲存於不同的 OSD。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>運算各物件的編碼區塊并將它們儲存到不同的 OSD。\n      編碼區塊的數量等同於在不遺失資料的前提下,可停機的 OSD 數量。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Jerasure 外掛程式是最一般、最靈活的外掛程式,\n          也是 Ceph 糾刪碼池的預設外掛程式。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Reed_sol_van 方法更靈活︰它足以設定 k\n          和 m。Cauchy_good 方法更快,但您需要小心選取封包大小。\n          所有 reed_sol_r6_op、liberation、blaum_roth、liber8tion 都\n          等同於 RAID6,它們只能設定為 m=2。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>將以位元組大小的封包為單位進行編碼。\n          選取合適的封包大小很難。\n          Jerasure 文件包含有關此主題的詳細資訊。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>使用 jerasure 外掛程式時,若糾刪碼物件儲存於\n          多個 OSD 上,則復原一個遺失的 OSD 時需要讀取所有其他 OSD。\n          例如,若 jerasure 設定為 k=8 且 m=4,則遺失一個 OSD 後需讀取\n          其他十一個 OSD 才能修復。\n\n          lrc 糾刪碼外掛程式會建立本地同位區塊,因此只需較少的 OSD 即\n          可復原。例如,若 lrc 設定為 k=8、m=4 且 l=4,它將為每四個 OSD\n          建立額外的同位區塊。這樣,當一個 OSD 遺失時,它只需四個 OSD\n          即可復原,而不需要十一個。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>將編碼區塊和資料區塊分組為大小為 locality 的集合。例如,\n          k=4 且 m=2 時,若 locality=3,則會建立 2 個大小為 3 的組。這樣,各組都能\n          自行復原,而無需從另一組讀取區塊。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>由 l 定義的區塊集將按哪種 CRUSH 桶類型儲存。\n          例如,若設定為機架,則各組 l 區塊將會被放置到不同的\n          機架中。該值用於建立類似 step choose rack 的 CRUSH\n          規則步驟。若未設定,則不會進行此類分組。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 外掛程式封包了 ISA 程式庫。它只能在 Intel 處理器上執行。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 外掛程式包含兩種 Reed Solomon 格式。\n          若設定為 reed_sol_van,則為 Vandermonde。若設定為 cauchy,則為 Cauchy。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec 外掛程式封包了多個 SHEC 程式庫。\n          與 Reed Solomon 代碼相比,它能更有效地復原資料。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>同位區塊的數量,它們在各自的計算範圍內包含了\n          各資料區塊。該數值被用做持久性估值。例如,若 c=2,\n          則在不遺失資料的前提下,可有 2 個 OSD 停機。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSH 規則的第一步所指向的 CRUSH 桶名稱。\n      例如 step take default。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>確定兩個區塊不會存在於同一故障網域的桶中。\n      例如,若故障網域為主機,則不會有兩個區塊儲存於同一主機中。\n      該值用於建立類似 step chooseleaf host 的 CRUSH 規則步驟。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>使用 CRUSH 地圖中的 crush 裝置類別名稱,\n      將放置限制於特定類別的裝置 (例如 ssd 或 hdd)。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>設定糾刪碼外掛程式所在目錄。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>允許所有操作</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>僅允許不修改伺服器的操作</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>不允許讀取或寫入操作,但是允許任何其他操作</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>不允許讀取、寫入或任何可能修改檔案屬性或目錄內容的操作</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>完全禁止存取</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 選取優先程度 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>資訊</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>過去 5 分鐘</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>過去 15 分鐘</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>過去 30 分鐘</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>過去 1 小時 (預設值)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>過去 3 小時</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>過去 6 小時</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>過去 12 小時</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>過去 24 小時</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨天</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>今天</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>今天到目前為止</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>前天</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>過去 2 天</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>上週的今天</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>上週</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>本週</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>本週目前為止</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>過去 7 天</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>上個月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>本月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>本月目前為止</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>過去 30 天</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>過去 90 天</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>過去 6 個月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>過去 1 年</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>去年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年目前為止</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>過去 2 年</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>過去 5 年</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>未選取項目。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>取消選取項目以再次選取</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>已達到選取上限</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>過濾標記</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>新增徽章</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>沒有可用的項目。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>深層整理</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>損毀</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>壓平</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>標示為 Down</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>標示為 In</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>標示為遺失</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>標示為 Out</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保護</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>重新命名</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>還原</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>移至垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>取消保護</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>已刪除</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>已克隆</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>已複製</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>已壓平</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>已還原</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>已復原</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>是</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>否</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>服務品質</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>指定的每秒 IO 位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>指定的每秒 IO 操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>讀取 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>指定的每秒內讀取的位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>讀取 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>指定的每秒讀取操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>寫入 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>指定的每秒內寫入的位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>寫入 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>指定的每秒寫入操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>指定的 IO 位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>指定的 IO 操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>讀取 BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>指定的讀取的位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>讀取 IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>指定的讀取操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>寫入 BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>指定的寫入的位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>寫入 IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>指定的寫入操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>正在執行</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>執行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>已執行</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>未知任務</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>正在建立</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>建立</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>正在更新</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>正在刪除</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>正在克隆</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>正在複製</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>正在壓平</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>壓平</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>正在復原</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>復原</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>正在移動</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>移動</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>已移動</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>找不到影像。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>正在還原</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>還原</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>正在清除</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>所有池</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>無法停用鏡像,因為其包含對等。</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},Hvzi:function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},"I+eb":function(t,e,n){var a=n("2oRo"),r=n("Bs8V").f,i=n("kRJp"),s=n("busE"),o=n("zk60"),u=n("6JNq"),d=n("lMq5");t.exports=function(t,e){var n,l,c,f,h,g=t.target,p=t.global,b=t.stat;if(n=p?a:b?a[g]||o(g,{}):(a[g]||{}).prototype)for(l in e){if(f=e[l],c=t.noTargetGet?(h=r(n,l))&&h.value:n[l],!d(p?l:g+(b?".":"#")+l,t.forced)&&void 0!==c){if(typeof f==typeof c)continue;u(f,c)}(t.sham||c&&c.sham)&&i(f,"sham",!0),s(n,l,f,t)}}},I01J:function(t,e,n){var a=n("44Ds");t.exports=function(t){var e=a(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}},I55L:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=t=>t&&"number"==typeof t.length&&"function"!=typeof t},I8vh:function(t,e,n){var a=n("ppGB"),r=Math.max,i=Math.min;t.exports=function(t,e){var n=a(t);return n<0?r(n+e,0):i(n,e)}},IBtZ:function(t,e,n){!function(t){"use strict";t.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".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:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(t){return/(წამი|წუთი|საათი|წელი)/.test(t)?t.replace(/ი$/,"ში"):t+"ში"},past:function(t){return/(წამი|წუთი|საათი|დღე|თვე)/.test(t)?t.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(t)?t.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(t){return 0===t?t:1===t?t+"-ლი":t<20||t<=100&&t%20==0||t%100==0?"მე-"+t:t+"-ე"},week:{dow:1,doy:7}})}(n("wd/R"))},IOzZ:function(t,e){t.exports=function(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}}},IZUe:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{constructor(t){this.elementRef=t,this.focus=!0}ngAfterViewInit(){const t=this.elementRef.nativeElement;this.focus&&a.isFunction(t.focus)&&t.focus()}set autofocus(t){a.isBoolean(t)?this.focus=t:a.isFunction(t)&&(this.focus=t())}}},Iab2:function(t,e,n){var a,r;void 0===(r="function"==typeof(a=function(){"use strict";function e(t,e,n){var a=new XMLHttpRequest;a.open("GET",t),a.responseType="blob",a.onload=function(){i(a.response,e,n)},a.onerror=function(){console.error("could not download file")},a.send()}function n(t){var e=new XMLHttpRequest;e.open("HEAD",t,!1);try{e.send()}catch(t){}return 200<=e.status&&299>=e.status}function a(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(e){var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(n)}}var r="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,i=r.saveAs||("object"!=typeof window||window!==r?function(){}:"download"in HTMLAnchorElement.prototype?function(t,i,s){var o=r.URL||r.webkitURL,u=document.createElement("a");u.download=i=i||t.name||"download",u.rel="noopener","string"==typeof t?(u.href=t,u.origin===location.origin?a(u):n(u.href)?e(t,i,s):a(u,u.target="_blank")):(u.href=o.createObjectURL(t),setTimeout((function(){o.revokeObjectURL(u.href)}),4e4),setTimeout((function(){a(u)}),0))}:"msSaveOrOpenBlob"in navigator?function(t,r,i){if(r=r||t.name||"download","string"!=typeof t)navigator.msSaveOrOpenBlob(function(t,e){return void 0===e?e={autoBom:!1}:"object"!=typeof e&&(console.warn("Deprecated: Expected third argument to be a object"),e={autoBom:!e}),e.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(t.type)?new Blob(["\ufeff",t],{type:t.type}):t}(t,i),r);else if(n(t))e(t,r,i);else{var s=document.createElement("a");s.href=t,s.target="_blank",setTimeout((function(){a(s)}))}}:function(t,n,a,i){if((i=i||open("","_blank"))&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof t)return e(t,n,a);var s="application/octet-stream"===t.type,o=/constructor/i.test(r.HTMLElement)||r.safari,u=/CriOS\/[\d]+/.test(navigator.userAgent);if((u||s&&o)&&"object"==typeof FileReader){var d=new FileReader;d.onloadend=function(){var t=d.result;t=u?t:t.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=t:location=t,i=null},d.readAsDataURL(t)}else{var l=r.URL||r.webkitURL,c=l.createObjectURL(t);i?i.location=c:location.href=c,i=null,setTimeout((function(){l.revokeObjectURL(c)}),4e4)}});r.saveAs=i.saveAs=i,t.exports=i})?a.apply(e,[]):a)||(t.exports=r)},IheW:function(t,e,n){"use strict";n.d(e,"m",(function(){return E})),n.d(e,"p",(function(){return q})),n.d(e,"q",(function(){return j})),n.d(e,"n",(function(){return D})),n.d(e,"o",(function(){return P})),n.d(e,"b",(function(){return c})),n.d(e,"g",(function(){return l})),n.d(e,"c",(function(){return I})),n.d(e,"a",(function(){return C})),n.d(e,"d",(function(){return V})),n.d(e,"e",(function(){return G})),n.d(e,"l",(function(){return F})),n.d(e,"h",(function(){return p})),n.d(e,"f",(function(){return w})),n.d(e,"i",(function(){return L})),n.d(e,"k",(function(){return k})),n.d(e,"j",(function(){return M}));var a=n("8Y7J"),r=n("LRne"),i=n("HDdC"),s=n("bOdf"),o=n("pLZG"),u=n("lJxs"),d=n("SVse");class l{}class c{}class f{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(t=>{const e=t.indexOf(":");if(e>0){const n=t.slice(0,e),a=n.toLowerCase(),r=t.slice(e+1).trim();this.maybeSetNormalizedName(n,a),this.headers.has(a)?this.headers.get(a).push(r):this.headers.set(a,[r])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let n=t[e];const a=e.toLowerCase();"string"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(a,n),this.maybeSetNormalizedName(e,a))})}: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 f?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 f;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof f?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 n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);const a=("a"===t.op?this.headers.get(e):void 0)||[];a.push(...n),this.headers.set(e,a);break;case"d":const r=t.value;if(r){let t=this.headers.get(e);if(!t)return;t=t.filter(t=>-1===r.indexOf(t)),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}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 h{encodeKey(t){return g(t)}encodeValue(t){return g(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function g(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}class p{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new h,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(t,e){const n=new Map;return t.length>0&&t.split("&").forEach(t=>{const a=t.indexOf("="),[r,i]=-1==a?[e.decodeKey(t),""]:[e.decodeKey(t.slice(0,a)),e.decodeValue(t.slice(a+1))],s=n.get(r)||[];s.push(i),n.set(r,s)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const n=t.fromObject[e];this.map.set(e,Array.isArray(n)?n:[n])})):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"})}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(t=>e+"="+this.encoder.encodeValue(t)).join("&")}).join("&")}clone(t){const e=new p({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(t.value),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const n=e.indexOf(t.value);-1!==n&&e.splice(n,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}function b(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function m(t){return"undefined"!=typeof Blob&&t instanceof Blob}function y(t){return"undefined"!=typeof FormData&&t instanceof FormData}class v{constructor(t,e,n,a){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||a?(this.body=void 0!==n?n:null,r=a):r=n,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.params&&(this.params=r.params)),this.headers||(this.headers=new f),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const n=e.indexOf("?");this.urlWithParams=e+(-1===n?"?":n<e.length-1?"&":"")+t}}else this.params=new p,this.urlWithParams=e}serializeBody(){return null===this.body?null:b(this.body)||m(this.body)||y(this.body)||"string"==typeof this.body?this.body:this.body instanceof p?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body?null:y(this.body)?null:m(this.body)?this.body.type||null:b(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof p?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||Array.isArray(this.body)?"application/json":null}clone(t={}){const e=t.method||this.method,n=t.url||this.url,a=t.responseType||this.responseType,r=void 0!==t.body?t.body:this.body,i=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,s=void 0!==t.reportProgress?t.reportProgress:this.reportProgress;let o=t.headers||this.headers,u=t.params||this.params;return void 0!==t.setHeaders&&(o=Object.keys(t.setHeaders).reduce((e,n)=>e.set(n,t.setHeaders[n]),o)),t.setParams&&(u=Object.keys(t.setParams).reduce((e,n)=>e.set(n,t.setParams[n]),u)),new v(e,n,r,{params:u,headers:o,reportProgress:s,responseType:a,withCredentials:i})}}const x=function(){var t={Sent:0,UploadProgress:1,ResponseHeader:2,DownloadProgress:3,Response:4,User:5};return t[t.Sent]="Sent",t[t.UploadProgress]="UploadProgress",t[t.ResponseHeader]="ResponseHeader",t[t.DownloadProgress]="DownloadProgress",t[t.Response]="Response",t[t.User]="User",t}();class _{constructor(t,e=200,n="OK"){this.headers=t.headers||new f,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class T extends _{constructor(t={}){super(t),this.type=x.ResponseHeader}clone(t={}){return new T({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 O extends _{constructor(t={}){super(t),this.type=x.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new O({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 w extends _{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 S(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}class I{constructor(t){this.handler=t}request(t,e,n={}){let a;if(t instanceof v)a=t;else{let r=void 0;r=n.headers instanceof f?n.headers:new f(n.headers);let i=void 0;n.params&&(i=n.params instanceof p?n.params:new p({fromObject:n.params})),a=new v(t,e,void 0!==n.body?n.body:null,{headers:r,params:i,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}const i=Object(r.a)(a).pipe(Object(s.a)(t=>this.handler.handle(t)));if(t instanceof v||"events"===n.observe)return i;const d=i.pipe(Object(o.a)(t=>t instanceof O));switch(n.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return d.pipe(Object(u.a)(t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return d.pipe(Object(u.a)(t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return d.pipe(Object(u.a)(t=>{if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return d.pipe(Object(u.a)(t=>t.body))}case"response":return d;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(t,e={}){return this.request("DELETE",t,e)}get(t,e={}){return this.request("GET",t,e)}head(t,e={}){return this.request("HEAD",t,e)}jsonp(t,e){return this.request("JSONP",t,{params:(new p).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,e={}){return this.request("OPTIONS",t,e)}patch(t,e,n={}){return this.request("PATCH",t,S(n,e))}post(t,e,n={}){return this.request("POST",t,S(n,e))}put(t,e,n={}){return this.request("PUT",t,S(n,e))}}class N{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const C=new a.InjectionToken("HTTP_INTERCEPTORS");class R{intercept(t,e){return e.handle(t)}}const A=/^\)\]\}',?\n/;class k{}class E{constructor(){}build(){return new XMLHttpRequest}}class L{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new i.a(e=>{const n=this.xhrFactory.build();if(n.open(t.method,t.urlWithParams),t.withCredentials&&(n.withCredentials=!0),t.headers.forEach((t,e)=>n.setRequestHeader(t,e.join(","))),t.headers.has("Accept")||n.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const e=t.detectContentTypeHeader();null!==e&&n.setRequestHeader("Content-Type",e)}if(t.responseType){const e=t.responseType.toLowerCase();n.responseType="json"!==e?e:"text"}const a=t.serializeBody();let r=null;const i=()=>{if(null!==r)return r;const e=1223===n.status?204:n.status,a=n.statusText||"OK",i=new f(n.getAllResponseHeaders()),s=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(n)||t.url;return r=new T({headers:i,status:e,statusText:a,url:s}),r},s=()=>{let{headers:a,status:r,statusText:s,url:o}=i(),u=null;204!==r&&(u=void 0===n.response?n.responseText:n.response),0===r&&(r=u?200:0);let d=r>=200&&r<300;if("json"===t.responseType&&"string"==typeof u){const t=u;u=u.replace(A,"");try{u=""!==u?JSON.parse(u):null}catch(l){u=t,d&&(d=!1,u={error:l,text:u})}}d?(e.next(new O({body:u,headers:a,status:r,statusText:s,url:o||void 0})),e.complete()):e.error(new w({error:u,headers:a,status:r,statusText:s,url:o||void 0}))},o=t=>{const{url:a}=i(),r=new w({error:t,status:n.status||0,statusText:n.statusText||"Unknown Error",url:a||void 0});e.error(r)};let u=!1;const d=a=>{u||(e.next(i()),u=!0);let r={type:x.DownloadProgress,loaded:a.loaded};a.lengthComputable&&(r.total=a.total),"text"===t.responseType&&n.responseText&&(r.partialText=n.responseText),e.next(r)},l=t=>{let n={type:x.UploadProgress,loaded:t.loaded};t.lengthComputable&&(n.total=t.total),e.next(n)};return n.addEventListener("load",s),n.addEventListener("error",o),t.reportProgress&&(n.addEventListener("progress",d),null!==a&&n.upload&&n.upload.addEventListener("progress",l)),n.send(a),e.next({type:x.Sent}),()=>{n.removeEventListener("error",o),n.removeEventListener("load",s),t.reportProgress&&(n.removeEventListener("progress",d),null!==a&&n.upload&&n.upload.removeEventListener("progress",l)),n.abort()}})}}const D=new a.InjectionToken("XSRF_COOKIE_NAME"),P=new a.InjectionToken("XSRF_HEADER_NAME");class M{}class q{constructor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(d["ɵparseCookieValue"])(t,this.cookieName),this.lastCookieString=t),this.lastToken}}class j{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);const a=this.tokenService.getToken();return null===a||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,a)})),e.handle(t)}}class F{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(C,[]);this.chain=t.reduceRight((t,e)=>new N(t,e),this.backend)}return this.chain.handle(t)}}class G{static disable(){return{ngModule:G,providers:[{provide:j,useClass:R}]}}static withOptions(t={}){return{ngModule:G,providers:[t.cookieName?{provide:D,useValue:t.cookieName}:[],t.headerName?{provide:P,useValue:t.headerName}:[]]}}}class V{}},IjjT:function(t,e,n){"use strict";let a=(()=>{class t{constructor(e,n=t.now){this.SchedulerAction=e,this.now=n}schedule(t,e=0,n){return new this.SchedulerAction(this,t).schedule(n,e)}}return t.now=()=>Date.now(),t})();n.d(e,"a",(function(){return r}));class r extends a{constructor(t,e=a.now){super(t,()=>r.delegate&&r.delegate!==this?r.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,n){return r.delegate&&r.delegate!==this?r.delegate.schedule(t,e,n):super.schedule(t,e,n)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}}},ImZN:function(t,e,n){var a=n("glrk"),r=n("6VoE"),i=n("UMSQ"),s=n("A2ZE"),o=n("NaFW"),u=n("m92n"),d=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,l,c){var f,h,g,p,b,m,y,v=s(e,n,l?2:1);if(c)f=t;else{if("function"!=typeof(h=o(t)))throw TypeError("Target is not iterable");if(r(h)){for(g=0,p=i(t.length);p>g;g++)if((b=l?v(a(y=t[g])[0],y[1]):v(t[g]))&&b instanceof d)return b;return new d(!1)}f=h.call(t)}for(m=f.next;!(y=m.call(f)).done;)if("object"==typeof(b=u(f,v,y.value,l))&&b&&b instanceof d)return b;return new d(!1)}).stop=function(t){return new d(!0,t)}},Ioao:function(t,e,n){var a=n("heNW"),r=Math.max;t.exports=function(t,e,n){return e=r(void 0===e?t.length-1:e,0),function(){for(var i=arguments,s=-1,o=r(i.length-e,0),u=Array(o);++s<o;)u[s]=i[e+s];s=-1;for(var d=Array(e+1);++s<e;)d[s]=i[s];return d[e]=n(u),a(t,this,d)}}},"Ivi+":function(t,e,n){!function(t){"use strict";t.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),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일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}})}(n("wd/R"))},IzCI:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1024,["B/s","kB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"])}}},IzEk:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("7o/Q"),r=n("4I5i"),i=n("EY2u");function s(t){return e=>0===t?Object(i.b)():e.lift(new o(t))}class o{constructor(t){if(this.total=t,this.total<0)throw new r.a}call(t,e){return e.subscribe(new u(t,this.total))}}class u extends a.a{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))}}},J2m7:function(t,e,n){var a=n("XKAG")(n("UfWW"));t.exports=a},JBE3:function(t,e,n){var a=n("+Qka"),r=n("LsHQ")((function(t,e,n,r){a(t,e,n,r)}));t.exports=r},JBy8:function(t,e,n){var a=n("yoRg"),r=n("eDl+").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return a(t,r)}},JC6p:function(t,e,n){var a=n("cq/+"),r=n("7GkX");t.exports=function(t,e){return t&&a(t,e,r)}},"JCF/":function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];t.defineLocale("ku",{months:a,monthsShort:a,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".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:/ئێواره‌|به‌یانی/,isPM:function(t){return/ئێواره‌/.test(t)},meridiem:function(t,e,n){return t<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},JHRd:function(t,e,n){var a=n("Kz5y");t.exports=a.Uint8Array},JHgL:function(t,e,n){var a=n("QkVE");t.exports=function(t){return a(this,t).get(t)}},JIr8:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("l7GE"),r=n("51Dv"),i=n("ZUHj");function s(t){return function(e){const n=new o(t),a=e.lift(n);return n.caught=a}}class o{constructor(t){this.selector=t}call(t,e){return e.subscribe(new u(t,this.selector,this.caught))}}class u extends a.a{constructor(t,e,n){super(t),this.selector=e,this.caught=n}error(t){if(!this.isStopped){let n;try{n=this.selector(t,this.caught)}catch(e){return void super.error(e)}this._unsubscribeAndRecycle();const a=new r.a(this,void 0,void 0);this.add(a);const s=Object(i.a)(this,n,void 0,void 0,a);s!==a&&this.add(s)}}}},JSQU:function(t,e,n){var a=n("YESw");t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=a&&void 0===e?"__lodash_hash_undefined__":e,this}},JTzB:function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Arguments]"==a(t)}},JVSJ:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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čer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},JZM8:function(t,e,n){var a=n("FfPP"),r=n("xs/l")((function(t,e){return null==t?{}:a(t,e)}));t.exports=r},Jlc5:function(t,e,n){var a=n("ZirO"),r=n("H0h1"),i=n("ut/Y"),s=n("Z0cm"),o=n("mv/X");t.exports=function(t,e,n){var u=s(t)?a:r;return n&&o(t,e,n)&&(e=void 0),u(t,i(e,3))}},JmpY:function(t,e,n){var a=n("eUgh");t.exports=function(t,e){return a(e,(function(e){return t[e]}))}},Juji:function(t,e){t.exports=function(t,e){return null!=t&&e in Object(t)}},JvlW:function(t,e,n){!function(t){"use strict";var e={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(t,e,n,a){return e?r(n)[0]:a?r(n)[1]:r(n)[2]}function a(t){return t%10==0||t>10&&t<20}function r(t){return e[t].split("_")}function i(t,e,i,s){var o=t+" ";return 1===t?o+n(0,e,i[0],s):e?o+(a(t)?r(i)[1]:r(i)[0]):s?o+r(i)[1]:o+(a(t)?r(i)[1]:r(i)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_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į_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".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:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(t,e,n,a){return e?"kelios sekundės":a?"kelių sekundžių":"kelias sekundes"},ss:i,m:n,mm:i,h:n,hh:i,d:n,dd:i,M:n,MM:i,y:n,yy:i},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(n("wd/R"))},JxMD:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("hrfs");n("dgut"),n("Fgil"),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return o}));var s=a["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:static!important}']],data:{}});function o(t){return a["ɵvid"](0,[a["ɵqud"](402653184,1,{chartCanvasRef:0}),a["ɵqud"](402653184,2,{chartTooltipRef:0}),(t()(),a["ɵeld"](2,0,null,null,6,"div",[["class","chart-container"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgStyleImpl"],r["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgStyle,[r["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵeld"](5,0,[[1,0],["sparkCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),a["ɵdid"](6,999424,null,0,i.a,[a.ElementRef,i.c],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),a["ɵeld"](7,0,[[2,0],["sparkTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),a["ɵeld"](8,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.style),t(e,6,0,n.datasets,n.labels,n.options,"line",n.colors)}),null)}},"K/tc":function(t,e,n){!function(t){"use strict";t.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(t){return/^nm$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"vm":"VM":n?"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ôre 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(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},KMkd:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},KOzp:function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return u})),n.d(e,"c",(function(){return d})),n.d(e,"d",(function(){return l}));var a=n("z/SZ"),r=n("hpHm"),i=n("2uy1"),s=n("PqYM");class o{constructor(){this.adaptivePosition=!0,this.placement="top",this.triggers="click",this.outsideClick=!1,this.delay=0}}class u{constructor(t){Object.assign(this,t)}get isBs3(){return Object(r.d)()}}class d{constructor(t,e,n,a,r,i){this._elementRef=e,this._renderer=n,this._positionService=i,this.outsideClick=!1,this.containerClass="",this._isInited=!1,this._popover=r.createLoader(e,a,n).provide({provide:o,useValue:t}),Object.assign(this,t),this.onShown=this._popover.onShown,this.onHidden=this._popover.onHidden,"undefined"!=typeof window&&e.nativeElement.addEventListener("click",(function(){try{e.nativeElement.focus()}catch(t){return}}))}get isOpen(){return this._popover.isShown}set isOpen(t){t?this.show():this.hide()}show(){if(this._popover.isShown||!this.popover||this._delayTimeoutId)return;this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}});const t=()=>{this._delayTimeoutId&&(this._delayTimeoutId=void 0),this._popover.attach(u).to(this.container).position({attachment:this.placement}).show({content:this.popover,context:this.popoverContext,placement:this.placement,title:this.popoverTitle,containerClass:this.containerClass}),this.adaptivePosition||(this._positionService.calcPosition(),this._positionService.deletePositionElement(this._popover._componentRef.location)),this.isOpen=!0},e=()=>{this._popoverCancelShowFn&&this._popoverCancelShowFn()};if(this.delay){const n=Object(s.a)(this.delay).subscribe(()=>{t(),e()});this.triggers&&Object(r.f)(this.triggers).forEach(t=>{this._popoverCancelShowFn=this._renderer.listen(this._elementRef.nativeElement,t.close,()=>{n.unsubscribe(),e()})})}else t()}hide(){this._delayTimeoutId&&(clearTimeout(this._delayTimeoutId),this._delayTimeoutId=void 0),this.isOpen&&(this._popover.hide(),this.isOpen=!1)}toggle(){if(this.isOpen)return this.hide();this.show()}ngOnInit(){this._isInited||(this._isInited=!0,this._popover.listen({triggers:this.triggers,outsideClick:this.outsideClick,show:()=>this.show()}))}ngOnDestroy(){this._popover.dispose()}}class l{static forRoot(){return{ngModule:l,providers:[o,a.a,i.a]}}}},KSF8:function(t,e,n){!function(t){"use strict";t.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".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(t){return/^ch$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] 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ôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(n("wd/R"))},KTz0:function(t,e,n){!function(t){"use strict";var e={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(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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če u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},KVJa:function(t,e,n){"use strict";var a=n("8Y7J");n("Z21x"),n("SVse"),n("sne2"),n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var r=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function i(t){return a["ɵvid"](0,[(t()(),a["ɵted"](-1,null,[" \n"])),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-light tc_backButton"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.back()&&a),a}),null,null)),(t()(),a["ɵted"](2,null,[" ","\n"]))],null,(function(t,e){t(e,2,0,e.component.name)}))}},KfNM:function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},Kqap:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(a){return a.lift(new i(t,e,n))}}class i{constructor(t,e,n=!1){this.accumulator=t,this.seed=e,this.hasSeed=n}call(t,e){return e.subscribe(new s(t,this.accumulator,this.seed,this.hasSeed))}}class s extends a.a{constructor(t,e,n,a){super(t),this.accumulator=e,this._seed=n,this.hasSeed=a,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 n;try{n=this.accumulator(this.seed,t,e)}catch(a){this.destination.error(a)}this.seed=n,this.destination.next(n)}}},KqfI:function(t,e,n){"use strict";function a(){}n.d(e,"a",(function(){return a}))},KwMD:function(t,e){t.exports=function(t,e,n,a){for(var r=t.length,i=n+(a?1:-1);a?i--:++i<r;)if(e(t[i],i,t))return i;return-1}},KxBF:function(t,e){t.exports=function(t,e,n){var a=-1,r=t.length;e<0&&(e=-e>r?0:r+e),(n=n>r?r:n)<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var i=Array(r);++a<r;)i[a]=t[a+e];return i}},Kz5y:function(t,e,n){var a=n("WFqU"),r="object"==typeof self&&self&&self.Object===Object&&self,i=a||r||Function("return this")();t.exports=i},L8xA:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},LOMR:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("Fwy9"),i=n("gk6K"),s=n("woSy"),o=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"div",[["class","node-drop-slot"]],null,[[null,"treeDrop"],[null,"drop"]],(function(t,e,n){var r=!0,i=t.component;return"drop"===e&&(r=!1!==a["ɵnov"](t,1).onDrop(n)&&r),"treeDrop"===e&&(r=!1!==i.onDrop(n)&&r),r}),null,null)),a["ɵdid"](1,4341760,null,0,r.a,[a.ElementRef,a.Renderer2,i.a,a.NgZone],{allowDragoverStyling:[0,"allowDragoverStyling"],treeAllowDrop:[1,"treeAllowDrop"]},{onDropCallback:"treeDrop"})],(function(t,e){var n=e.component;t(e,1,0,!0,n.allowDrop.bind(n))}),null)}var d=n("SVse"),l=n("CoVI"),c=n("uNpg"),f=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["class","tree-node-checkbox"],["type","checkbox"]],[[8,"checked",0],[8,"indeterminate",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.node.mouseAction("checkboxClick",n)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,1,0,n.node.isSelected,n.node.isPartiallySelected)}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,h)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var p=n("jV1L"),b=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","toggle-children-wrapper"]],[[2,"toggle-children-wrapper-expanded",null],[2,"toggle-children-wrapper-collapsed",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.node.mouseAction("expanderClick",n)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"span",[["class","toggle-children"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.node.isExpanded,n.node.isCollapsed)}))}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[["class","toggle-children-placeholder"]],null,null,null,null,null))],null,null)}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](2,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](4,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.node.hasChildren),t(e,4,0,!n.node.hasChildren)}),null)}function x(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,v)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var _=n("C523"),T=n("rZud"),O=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.node.displayField)}))}function S(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](1,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,d.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0,node:1,index:2})],(function(t,e){var n=e.component;t(e,1,0,!n.template);var a=t(e,4,0,n.node,n.node,n.index);t(e,3,0,a,n.template)}),null)}var I=n("OIDT"),N=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-checkbox",[],null,null,null,g,f)),a["ɵdid"](1,49152,null,0,c.a,[],{node:[0,"node"]},null)],(function(t,e){t(e,1,0,e.component.node)}),null)}function R(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","node-wrapper"]],[[4,"padding-left",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](2,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"tree-node-expander",[],null,null,null,x,b)),a["ɵdid"](4,49152,null,0,p.a,[],{node:[0,"node"]},null),(t()(),a["ɵeld"](5,0,null,null,4,"div",[["class","node-content-wrapper"]],[[2,"node-content-wrapper-active",null],[2,"node-content-wrapper-focused",null]],[[null,"click"],[null,"dblclick"],[null,"mouseover"],[null,"mouseout"],[null,"contextmenu"],[null,"treeDrop"],[null,"treeDropDragOver"],[null,"treeDropDragLeave"],[null,"treeDropDragEnter"],[null,"drop"],[null,"dragstart"],[null,"dragend"]],(function(t,e,n){var r=!0,i=t.component;return"drop"===e&&(r=!1!==a["ɵnov"](t,6).onDrop(n)&&r),"dragstart"===e&&(r=!1!==a["ɵnov"](t,7).onDragStart(n)&&r),"dragend"===e&&(r=!1!==a["ɵnov"](t,7).onDragEnd()&&r),"click"===e&&(r=!1!==i.node.mouseAction("click",n)&&r),"dblclick"===e&&(r=!1!==i.node.mouseAction("dblClick",n)&&r),"mouseover"===e&&(r=!1!==i.node.mouseAction("mouseOver",n)&&r),"mouseout"===e&&(r=!1!==i.node.mouseAction("mouseOut",n)&&r),"contextmenu"===e&&(r=!1!==i.node.mouseAction("contextMenu",n)&&r),"treeDrop"===e&&(r=!1!==i.node.onDrop(n)&&r),"treeDropDragOver"===e&&(r=!1!==i.node.mouseAction("dragOver",n)&&r),"treeDropDragLeave"===e&&(r=!1!==i.node.mouseAction("dragLeave",n)&&r),"treeDropDragEnter"===e&&(r=!1!==i.node.mouseAction("dragEnter",n)&&r),r}),null,null)),a["ɵdid"](6,4341760,null,0,r.a,[a.ElementRef,a.Renderer2,i.a,a.NgZone],{allowDragoverStyling:[0,"allowDragoverStyling"],treeAllowDrop:[1,"treeAllowDrop"]},{onDropCallback:"treeDrop",onDragOverCallback:"treeDropDragOver",onDragLeaveCallback:"treeDropDragLeave",onDragEnterCallback:"treeDropDragEnter"}),a["ɵdid"](7,4603904,null,0,_.a,[a.ElementRef,a.Renderer2,i.a,a.NgZone],{draggedElement:[0,"draggedElement"],treeDragEnabled:[1,"treeDragEnabled"]},null),(t()(),a["ɵeld"](8,0,null,null,1,"tree-node-content",[],null,null,null,S,O)),a["ɵdid"](9,49152,null,0,T.a,[],{node:[0,"node"],index:[1,"index"],template:[2,"template"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.node.options.useCheckbox),t(e,4,0,n.node),t(e,6,0,n.node.allowDragoverStyling(),n.node.allowDrop),t(e,7,0,n.node,n.node.allowDrag()),t(e,9,0,n.node,n.index,n.templates.treeNodeTemplate)}),(function(t,e){var n=e.component;t(e,0,0,n.node.getNodePadding()),t(e,5,0,n.node.isActive,n.node.isFocused)}))}function A(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,R)),a["ɵdid"](1,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,d.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0,node:1,index:2,templates:3})],(function(t,e){var n=e.component;t(e,1,0,!n.templates.treeNodeWrapperTemplate);var a=t(e,4,0,n.node,n.node,n.index,n.templates);t(e,3,0,a,n.templates.treeNodeWrapperTemplate)}),null)}var k=n("WaXT"),E=n("ZhuC"),L=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function D(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["loading..."]))],null,null)}function P(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,D)),a["ɵdid"](1,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,d.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0})],(function(t,e){var n=e.component;t(e,1,0,!n.template);var a=t(e,4,0,n.node);t(e,3,0,a,n.template)}),null)}var M=n("4Dmd"),q=n("pcHL"),j=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function F(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-collection",[],null,null,null,X,Z)),a["ɵdid"](1,245760,null,0,k.a,[],{nodes:[0,"nodes"],treeModel:[1,"treeModel"],templates:[2,"templates"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.node.children,n.node.treeModel,n.templates)}),null)}function G(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-loading-component",[["class","tree-node-loading"]],[[4,"padding-left",null]],null,null,P,L)),a["ɵdid"](1,49152,null,0,E.a,[],{template:[0,"template"],node:[1,"node"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.templates.loadingTemplate,n.node)}),(function(t,e){t(e,0,0,e.component.node.getNodePadding())}))}function V(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[2,"tree-children",null],[2,"tree-children-no-padding",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,F)),a["ɵdid"](2,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,G)),a["ɵdid"](4,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.node.children),t(e,4,0,!n.node.children)}),(function(t,e){t(e,0,0,!0,e.component.node.options.levelPadding)}))}function z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,V)),a["ɵdid"](2,16384,null,0,M.a,[a.Renderer2,a.TemplateRef,a.ViewContainerRef],{animateSpeed:[0,"animateSpeed"],animateAcceleration:[1,"animateAcceleration"],isEnabled:[2,"isEnabled"],isOpen:[3,"isOpen"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.node.options.animateSpeed,n.node.options.animateAcceleration,n.node.options.animateExpand,n.node.isExpanded)}),null)}function B(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,z)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var Y=n("TNUL"),H=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function U(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-drop-slot",[],null,null,null,u,o)),a["ɵdid"](1,49152,null,0,s.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.node.parent,n.node.index)}),null)}function W(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[],[[8,"className",0],[2,"tree-node",null],[2,"tree-node-expanded",null],[2,"tree-node-collapsed",null],[2,"tree-node-leaf",null],[2,"tree-node-active",null],[2,"tree-node-focused",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,U)),a["ɵdid"](2,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"tree-node-wrapper",[],null,null,null,A,N)),a["ɵdid"](4,49152,null,0,I.a,[],{node:[0,"node"],index:[1,"index"],templates:[2,"templates"]},null),(t()(),a["ɵeld"](5,0,null,null,1,"tree-node-children",[],null,null,null,B,j)),a["ɵdid"](6,49152,null,0,q.a,[],{node:[0,"node"],templates:[1,"templates"]},null),(t()(),a["ɵeld"](7,0,null,null,1,"tree-node-drop-slot",[],null,null,null,u,o)),a["ɵdid"](8,49152,null,0,s.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){var n=e.component;t(e,2,0,0===n.index),t(e,4,0,n.node,n.index,n.templates),t(e,6,0,n.node,n.templates),t(e,8,0,n.node.parent,n.node.index+1)}),(function(t,e){var n=e.component;t(e,0,0,n.node.getClass(),!0,n.node.isExpanded&&n.node.hasChildren,n.node.isCollapsed&&n.node.hasChildren,n.node.isLeaf,n.node.isActive,n.node.isFocused)}))}function K(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,W)),a["ɵdid"](2,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](4,540672,null,0,d.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](5,{$implicit:0,node:1,index:2,templates:3}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!n.templates.treeNodeFullTemplate);var a=t(e,5,0,n.node,n.node,n.index,n.templates);t(e,4,0,a,n.templates.treeNodeFullTemplate)}),null)}function $(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,K)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var Z=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function J(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node",[],null,null,null,$,H)),a["ɵdid"](1,49152,null,0,Y.a,[],{node:[0,"node"],index:[1,"index"],templates:[2,"templates"]},null)],(function(t,e){t(e,1,0,e.context.$implicit,e.context.index,e.component.templates)}),null)}function Q(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"div",[],[[4,"margin-top",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,J)),a["ɵdid"](3,278528,null,0,d.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.viewportNodes,n.trackNode)}),(function(t,e){t(e,1,0,e.component.marginTop)}))}function X(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,Q)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var tt=n("dApe"),et=n("MP8s"),nt=n("HIU9"),at=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function rt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[],[[4,"height",null]],null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){t(e,1,0,e.component.getTotalHeight())}))}function it(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,rt)),a["ɵdid"](1,212992,null,0,l.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}n("fxL3"),n.d(e,"a",(function(){return st})),n.d(e,"b",(function(){return dt}));var st=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function ot(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tree-node-collection",[],null,null,null,X,Z)),a["ɵdid"](1,245760,null,0,k.a,[],{nodes:[0,"nodes"],treeModel:[1,"treeModel"],templates:[2,"templates"]},null),a["ɵpod"](2,{loadingTemplate:0,treeNodeTemplate:1,treeNodeWrapperTemplate:2,treeNodeFullTemplate:3})],(function(t,e){var n=e.component,a=n.treeModel.roots,r=n.treeModel,i=t(e,2,0,n.loadingTemplate,n.treeNodeTemplate,n.treeNodeWrapperTemplate,n.treeNodeFullTemplate);t(e,1,0,a,r,i)}),null)}function ut(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-drop-slot",[["class","empty-tree-drop-slot"]],null,null,null,u,o)),a["ɵdid"](1,49152,null,0,s.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){t(e,1,0,e.component.treeModel.virtualRoot,0)}),null)}function dt(t){return a["ɵvid"](0,[a["ɵqud"](671088640,1,{viewportComponent:0}),(t()(),a["ɵeld"](1,0,null,null,7,"tree-viewport",[],null,null,null,it,at)),a["ɵprd"](512,null,tt.a,tt.a,[et.a]),a["ɵdid"](3,4440064,[[1,4],["viewport",4]],0,nt.a,[a.ElementRef,a.NgZone,tt.a],null,null),(t()(),a["ɵeld"](4,0,null,0,4,"div",[["class","angular-tree-component"]],[[2,"node-dragging",null],[2,"angular-tree-component-rtl",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ot)),a["ɵdid"](6,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ut)),a["ɵdid"](8,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0),t(e,6,0,n.treeModel.roots),t(e,8,0,n.treeModel.isEmptyTree())}),(function(t,e){var n=e.component;t(e,4,0,n.treeDraggedElement.isDragging(),n.treeModel.options.rtl)}))}},LQDL:function(t,e,n){var a,r,i=n("2oRo"),s=n("NC/Y"),o=i.process,u=o&&o.versions,d=u&&u.v8;d?r=(a=d.split("."))[0]+a[1]:s&&(!(a=s.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=s.match(/Chrome\/(\d+)/))&&(r=a[1]),t.exports=r&&+r},LRne:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("z+Ro"),r=n("yCtX"),i=n("jZKg");function s(...t){let e=t[t.length-1];return Object(a.a)(e)?(t.pop(),Object(i.a)(t,e)):Object(r.a)(t)}},LXxW:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length,r=0,i=[];++n<a;){var s=t[n];e(s,n,t)&&(i[r++]=s)}return i}},LceX:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return c})),n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return s})),n.d(e,"e",(function(){return o})),n.d(e,"f",(function(){return u})),n.d(e,"g",(function(){return d})),n.d(e,"h",(function(){return l}));var a=n("sne2");n("eTJe"),n("n/D3"),n("V3my"),n("ZEkX");class r{}const i={breadcrumbs:"Users"},s={breadcrumbs:a.a.CREATE},o={breadcrumbs:a.a.EDIT},u={breadcrumbs:"Roles"},d={breadcrumbs:a.a.CREATE},l={breadcrumbs:a.a.EDIT};class c{}},LcsW:function(t,e,n){var a=n("kekF")(Object.getPrototypeOf,Object);t.exports=a},Lhse:function(t,e,n){"use strict";function a(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.d(e,"a",(function(){return r}));const r=a()},Loxo:function(t,e,n){!function(t){"use strict";t.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".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:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n("wd/R"))},LqlI:function(t,e,n){"use strict";n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return f})),n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return l})),n.d(e,"e",(function(){return h})),n.d(e,"f",(function(){return u}));var a=n("8Y7J"),r=n("hpHm"),i=n("z/SZ"),s=n("2uy1");class o{constructor(){this.hide=Function,this.setClass=Function}}class u{}const d={backdrop:!0,keyboard:!0,focus:!0,show:!1,ignoreBackdropClick:!1,class:"",animated:!0,initialState:{}};class l{constructor(t,e,n){this._element=e,this._renderer=n,this.isShown=!1,this.isModalHiding=!1,this.clickStartedInContent=!1,this.config=Object.assign({},t)}ngOnInit(){this.isAnimated&&this._renderer.addClass(this._element.nativeElement,"fade"),this._renderer.setStyle(this._element.nativeElement,"display","block"),setTimeout(()=>{this.isShown=!0,this._renderer.addClass(this._element.nativeElement,Object(r.d)()?"in":"show")},this.isAnimated?150:0),document&&document.body&&(1===this.bsModalService.getModalsCount()&&(this.bsModalService.checkScrollbar(),this.bsModalService.setScrollbar()),this._renderer.addClass(document.body,"modal-open")),this._element.nativeElement&&this._element.nativeElement.focus()}onClickStarted(t){this.clickStartedInContent=t.target!==this._element.nativeElement}onClickStop(t){this.config.ignoreBackdropClick||"static"===this.config.backdrop||t.target!==this._element.nativeElement||this.clickStartedInContent?this.clickStartedInContent=!1:(this.bsModalService.setDismissReason("backdrop-click"),this.hide())}onEsc(t){this.isShown&&(27!==t.keyCode&&"Escape"!==t.key||t.preventDefault(),this.config.keyboard&&this.level===this.bsModalService.getModalsCount()&&(this.bsModalService.setDismissReason("esc"),this.hide()))}ngOnDestroy(){this.isShown&&this.hide()}hide(){!this.isModalHiding&&this.isShown&&(this.isModalHiding=!0,this._renderer.removeClass(this._element.nativeElement,Object(r.d)()?"in":"show"),setTimeout(()=>{this.isShown=!1,document&&document.body&&1===this.bsModalService.getModalsCount()&&this._renderer.removeClass(document.body,"modal-open"),this.bsModalService.hide(this.level),this.isModalHiding=!1},this.isAnimated?300:0))}}class c{constructor(t,e){this._isShown=!1,this.element=t,this.renderer=e}get isAnimated(){return this._isAnimated}set isAnimated(t){this._isAnimated=t}get isShown(){return this._isShown}set isShown(t){this._isShown=t,t?this.renderer.addClass(this.element.nativeElement,"in"):this.renderer.removeClass(this.element.nativeElement,"in"),Object(r.d)()||(t?this.renderer.addClass(this.element.nativeElement,"show"):this.renderer.removeClass(this.element.nativeElement,"show"))}ngOnInit(){this.isAnimated&&(this.renderer.addClass(this.element.nativeElement,"fade"),r.b.reflow(this.element.nativeElement)),this.isShown=!0}}class f{constructor(t,e){this.clf=e,this.config=d,this.onShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this.isBodyOverflowing=!1,this.originalBodyPadding=0,this.scrollbarWidth=0,this.modalsCount=0,this.lastDismissReason="",this.loaders=[],this._backdropLoader=this.clf.createLoader(null,null,null),this._renderer=t.createRenderer(null,null)}show(t,e){return this.modalsCount++,this._createLoaders(),this.config=Object.assign({},d,e),this._showBackdrop(),this.lastDismissReason=null,this._showModal(t)}hide(t){1===this.modalsCount&&(this._hideBackdrop(),this.resetScrollbar()),this.modalsCount=this.modalsCount>=1?this.modalsCount-1:0,setTimeout(()=>{this._hideModal(t),this.removeLoaders(t)},this.config.animated?150:0)}_showBackdrop(){const t=this.config.backdrop||"static"===this.config.backdrop,e=!this.backdropRef||!this.backdropRef.instance.isShown;1===this.modalsCount&&(this.removeBackdrop(),t&&e&&(this._backdropLoader.attach(c).to("body").show({isAnimated:this.config.animated}),this.backdropRef=this._backdropLoader._componentRef))}_hideBackdrop(){this.backdropRef&&(this.backdropRef.instance.isShown=!1,setTimeout(()=>this.removeBackdrop(),this.config.animated?150:0))}_showModal(t){const e=this.loaders[this.loaders.length-1],n=new o,a=e.provide({provide:u,useValue:this.config}).provide({provide:o,useValue:n}).attach(l).to("body").show({content:t,isAnimated:this.config.animated,initialState:this.config.initialState,bsModalService:this});return a.instance.level=this.getModalsCount(),n.hide=()=>{setTimeout(()=>a.instance.hide(),this.config.animated?300:0)},n.content=e.getInnerComponent()||null,n.setClass=t=>{a.instance.config.class=t},n}_hideModal(t){const e=this.loaders[t-1];e&&e.hide()}getModalsCount(){return this.modalsCount}setDismissReason(t){this.lastDismissReason=t}removeBackdrop(){this._backdropLoader.hide(),this.backdropRef=null}checkScrollbar(){this.isBodyOverflowing=document.body.clientWidth<window.innerWidth,this.scrollbarWidth=this.getScrollbarWidth()}setScrollbar(){document&&(this.originalBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")||"0",10),this.isBodyOverflowing&&(document.body.style.paddingRight=`${this.originalBodyPadding+this.scrollbarWidth}px`))}resetScrollbar(){document.body.style.paddingRight=`${this.originalBodyPadding}px`}getScrollbarWidth(){const t=this._renderer.createElement("div");this._renderer.addClass(t,"modal-scrollbar-measure"),this._renderer.appendChild(document.body,t);const e=t.offsetWidth-t.clientWidth;return this._renderer.removeChild(document.body,t),e}_createLoaders(){const t=this.clf.createLoader(null,null,null);this.copyEvent(t.onBeforeShow,this.onShow),this.copyEvent(t.onShown,this.onShown),this.copyEvent(t.onBeforeHide,this.onHide),this.copyEvent(t.onHidden,this.onHidden),this.loaders.push(t)}removeLoaders(t){this.loaders.splice(t-1,1),this.loaders.forEach((t,e)=>{t.instance.level=e+1})}copyEvent(t,e){t.subscribe(()=>{e.emit(this.lastDismissReason)})}}class h{static forRoot(){return{ngModule:h,providers:[f,i.a,s.a]}}static forChild(){return{ngModule:h,providers:[f,i.a,s.a]}}}},LsHQ:function(t,e,n){var a=n("EA7m"),r=n("mv/X");t.exports=function(t){return a((function(e,n){var a=-1,i=n.length,s=i>1?n[i-1]:void 0,o=i>2?n[2]:void 0;for(s=t.length>3&&"function"==typeof s?(i--,s):void 0,o&&r(n[0],n[1],o)&&(s=i<3?void 0:s,i=1),e=Object(e);++a<i;){var u=n[a];u&&t(e,u,a,s)}return e}))}},LvDl:function(t,e,n){(function(t){var a;(function(){var r="Expected a function",i="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],o="[object Arguments]",u="[object Array]",d="[object Boolean]",l="[object Date]",c="[object Error]",f="[object Function]",h="[object GeneratorFunction]",g="[object Map]",p="[object Number]",b="[object Object]",m="[object RegExp]",y="[object Set]",v="[object String]",x="[object Symbol]",_="[object WeakMap]",T="[object ArrayBuffer]",O="[object DataView]",w="[object Float32Array]",S="[object Float64Array]",I="[object Int8Array]",N="[object Int16Array]",C="[object Int32Array]",R="[object Uint8Array]",A="[object Uint16Array]",k="[object Uint32Array]",E=/\b__p \+= '';/g,L=/\b(__p \+=) '' \+/g,D=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,M=/[&<>"']/g,q=RegExp(P.source),j=RegExp(M.source),F=/<%-([\s\S]+?)%>/g,G=/<%([\s\S]+?)%>/g,V=/<%=([\s\S]+?)%>/g,z=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,B=/^\w*$/,Y=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,H=/[\\^$.*+?()[\]{}|]/g,U=RegExp(H.source),W=/^\s+|\s+$/g,K=/^\s+/,$=/\s+$/,Z=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Q=/,? & /,X=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,tt=/\\(\\)?/g,et=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,nt=/\w*$/,at=/^[-+]0x[0-9a-f]+$/i,rt=/^0b[01]+$/i,it=/^\[object .+?Constructor\]$/,st=/^0o[0-7]+$/i,ot=/^(?:0|[1-9]\d*)$/,ut=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,dt=/($^)/,lt=/['\n\r\u2028\u2029\\]/g,ct="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",ft="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ht="["+ft+"]",gt="["+ct+"]",pt="\\d+",bt="[a-z\\xdf-\\xf6\\xf8-\\xff]",mt="[^\\ud800-\\udfff"+ft+pt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",yt="\\ud83c[\\udffb-\\udfff]",vt="[^\\ud800-\\udfff]",xt="(?:\\ud83c[\\udde6-\\uddff]){2}",_t="[\\ud800-\\udbff][\\udc00-\\udfff]",Tt="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Ot="(?:"+bt+"|"+mt+")",wt="(?:"+Tt+"|"+mt+")",St="(?:"+gt+"|"+yt+")?",It="[\\ufe0e\\ufe0f]?"+St+"(?:\\u200d(?:"+[vt,xt,_t].join("|")+")[\\ufe0e\\ufe0f]?"+St+")*",Nt="(?:"+["[\\u2700-\\u27bf]",xt,_t].join("|")+")"+It,Ct="(?:"+[vt+gt+"?",gt,xt,_t,"[\\ud800-\\udfff]"].join("|")+")",Rt=RegExp("['’]","g"),At=RegExp(gt,"g"),kt=RegExp(yt+"(?="+yt+")|"+Ct+It,"g"),Et=RegExp([Tt+"?"+bt+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ht,Tt,"$"].join("|")+")",wt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ht,Tt+Ot,"$"].join("|")+")",Tt+"?"+Ot+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Tt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",pt,Nt].join("|"),"g"),Lt=RegExp("[\\u200d\\ud800-\\udfff"+ct+"\\ufe0e\\ufe0f]"),Dt=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Pt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Mt=-1,qt={};qt[w]=qt[S]=qt[I]=qt[N]=qt[C]=qt[R]=qt["[object Uint8ClampedArray]"]=qt[A]=qt[k]=!0,qt[o]=qt[u]=qt[T]=qt[d]=qt[O]=qt[l]=qt[c]=qt[f]=qt[g]=qt[p]=qt[b]=qt[m]=qt[y]=qt[v]=qt[_]=!1;var jt={};jt[o]=jt[u]=jt[T]=jt[O]=jt[d]=jt[l]=jt[w]=jt[S]=jt[I]=jt[N]=jt[C]=jt[g]=jt[p]=jt[b]=jt[m]=jt[y]=jt[v]=jt[x]=jt[R]=jt["[object Uint8ClampedArray]"]=jt[A]=jt[k]=!0,jt[c]=jt[f]=jt[_]=!1;var Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Gt=parseFloat,Vt=parseInt,zt="object"==typeof global&&global&&global.Object===Object&&global,Bt="object"==typeof self&&self&&self.Object===Object&&self,Yt=zt||Bt||Function("return this")(),Ht=e&&!e.nodeType&&e,Ut=Ht&&"object"==typeof t&&t&&!t.nodeType&&t,Wt=Ut&&Ut.exports===Ht,Kt=Wt&&zt.process,$t=function(){try{return Ut&&Ut.require&&Ut.require("util").types||Kt&&Kt.binding&&Kt.binding("util")}catch(t){}}(),Zt=$t&&$t.isArrayBuffer,Jt=$t&&$t.isDate,Qt=$t&&$t.isMap,Xt=$t&&$t.isRegExp,te=$t&&$t.isSet,ee=$t&&$t.isTypedArray;function ne(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function ae(t,e,n,a){for(var r=-1,i=null==t?0:t.length;++r<i;){var s=t[r];e(a,s,n(s),t)}return a}function re(t,e){for(var n=-1,a=null==t?0:t.length;++n<a&&!1!==e(t[n],n,t););return t}function ie(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function se(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(!e(t[n],n,t))return!1;return!0}function oe(t,e){for(var n=-1,a=null==t?0:t.length,r=0,i=[];++n<a;){var s=t[n];e(s,n,t)&&(i[r++]=s)}return i}function ue(t,e){return!(null==t||!t.length)&&ye(t,e,0)>-1}function de(t,e,n){for(var a=-1,r=null==t?0:t.length;++a<r;)if(n(e,t[a]))return!0;return!1}function le(t,e){for(var n=-1,a=null==t?0:t.length,r=Array(a);++n<a;)r[n]=e(t[n],n,t);return r}function ce(t,e){for(var n=-1,a=e.length,r=t.length;++n<a;)t[r+n]=e[n];return t}function fe(t,e,n,a){var r=-1,i=null==t?0:t.length;for(a&&i&&(n=t[++r]);++r<i;)n=e(n,t[r],r,t);return n}function he(t,e,n,a){var r=null==t?0:t.length;for(a&&r&&(n=t[--r]);r--;)n=e(n,t[r],r,t);return n}function ge(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(e(t[n],n,t))return!0;return!1}var pe=Te("length");function be(t,e,n){var a;return n(t,(function(t,n,r){if(e(t,n,r))return a=n,!1})),a}function me(t,e,n,a){for(var r=t.length,i=n+(a?1:-1);a?i--:++i<r;)if(e(t[i],i,t))return i;return-1}function ye(t,e,n){return e==e?function(t,e,n){for(var a=n-1,r=t.length;++a<r;)if(t[a]===e)return a;return-1}(t,e,n):me(t,xe,n)}function ve(t,e,n,a){for(var r=n-1,i=t.length;++r<i;)if(a(t[r],e))return r;return-1}function xe(t){return t!=t}function _e(t,e){var n=null==t?0:t.length;return n?Se(t,e)/n:NaN}function Te(t){return function(e){return null==e?void 0:e[t]}}function Oe(t){return function(e){return null==t?void 0:t[e]}}function we(t,e,n,a,r){return r(t,(function(t,r,i){n=a?(a=!1,t):e(n,t,r,i)})),n}function Se(t,e){for(var n,a=-1,r=t.length;++a<r;){var i=e(t[a]);void 0!==i&&(n=void 0===n?i:n+i)}return n}function Ie(t,e){for(var n=-1,a=Array(t);++n<t;)a[n]=e(n);return a}function Ne(t){return function(e){return t(e)}}function Ce(t,e){return le(e,(function(e){return t[e]}))}function Re(t,e){return t.has(e)}function Ae(t,e){for(var n=-1,a=t.length;++n<a&&ye(e,t[n],0)>-1;);return n}function ke(t,e){for(var n=t.length;n--&&ye(e,t[n],0)>-1;);return n}function Ee(t,e){for(var n=t.length,a=0;n--;)t[n]===e&&++a;return a}var Le=Oe({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),De=Oe({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function Pe(t){return"\\"+Ft[t]}function Me(t){return Lt.test(t)}function qe(t){var e=-1,n=Array(t.size);return t.forEach((function(t,a){n[++e]=[a,t]})),n}function je(t,e){return function(n){return t(e(n))}}function Fe(t,e){for(var n=-1,a=t.length,r=0,s=[];++n<a;){var o=t[n];o!==e&&o!==i||(t[n]=i,s[r++]=n)}return s}function Ge(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function Ve(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function ze(t){return Me(t)?function(t){for(var e=kt.lastIndex=0;kt.test(t);)++e;return e}(t):pe(t)}function Be(t){return Me(t)?function(t){return t.match(kt)||[]}(t):function(t){return t.split("")}(t)}var Ye=Oe({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),He=function t(e){var n,a=(e=null==e?Yt:He.defaults(Yt.Object(),e,He.pick(Yt,Pt))).Array,ct=e.Date,ft=e.Error,ht=e.Function,gt=e.Math,pt=e.Object,bt=e.RegExp,mt=e.String,yt=e.TypeError,vt=a.prototype,xt=pt.prototype,_t=e["__core-js_shared__"],Tt=ht.prototype.toString,Ot=xt.hasOwnProperty,wt=0,St=(n=/[^.]+$/.exec(_t&&_t.keys&&_t.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",It=xt.toString,Nt=Tt.call(pt),Ct=Yt._,kt=bt("^"+Tt.call(Ot).replace(H,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Lt=Wt?e.Buffer:void 0,Ft=e.Symbol,zt=e.Uint8Array,Bt=Lt?Lt.allocUnsafe:void 0,Ht=je(pt.getPrototypeOf,pt),Ut=pt.create,Kt=xt.propertyIsEnumerable,$t=vt.splice,pe=Ft?Ft.isConcatSpreadable:void 0,Oe=Ft?Ft.iterator:void 0,Ue=Ft?Ft.toStringTag:void 0,We=function(){try{var t=Jr(pt,"defineProperty");return t({},"",{}),t}catch(e){}}(),Ke=e.clearTimeout!==Yt.clearTimeout&&e.clearTimeout,$e=ct&&ct.now!==Yt.Date.now&&ct.now,Ze=e.setTimeout!==Yt.setTimeout&&e.setTimeout,Je=gt.ceil,Qe=gt.floor,Xe=pt.getOwnPropertySymbols,tn=Lt?Lt.isBuffer:void 0,en=e.isFinite,nn=vt.join,an=je(pt.keys,pt),rn=gt.max,sn=gt.min,on=ct.now,un=e.parseInt,dn=gt.random,ln=vt.reverse,cn=Jr(e,"DataView"),fn=Jr(e,"Map"),hn=Jr(e,"Promise"),gn=Jr(e,"Set"),pn=Jr(e,"WeakMap"),bn=Jr(pt,"create"),mn=pn&&new pn,yn={},vn=Ii(cn),xn=Ii(fn),_n=Ii(hn),Tn=Ii(gn),On=Ii(pn),wn=Ft?Ft.prototype:void 0,Sn=wn?wn.valueOf:void 0,In=wn?wn.toString:void 0;function Nn(t){if(Bs(t)&&!Es(t)&&!(t instanceof kn)){if(t instanceof An)return t;if(Ot.call(t,"__wrapped__"))return Ni(t)}return new An(t)}var Cn=function(){function t(){}return function(e){if(!zs(e))return{};if(Ut)return Ut(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function Rn(){}function An(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function kn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function En(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function Ln(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function Dn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function Pn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Dn;++e<n;)this.add(t[e])}function Mn(t){var e=this.__data__=new Ln(t);this.size=e.size}function qn(t,e){var n=Es(t),a=!n&&ks(t),r=!n&&!a&&Ms(t),i=!n&&!a&&!r&&Js(t),s=n||a||r||i,o=s?Ie(t.length,mt):[],u=o.length;for(var d in t)!e&&!Ot.call(t,d)||s&&("length"==d||r&&("offset"==d||"parent"==d)||i&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||ri(d,u))||o.push(d);return o}function jn(t){var e=t.length;return e?t[Da(0,e-1)]:void 0}function Fn(t,e){return _i(pr(t),Kn(e,0,t.length))}function Gn(t){return _i(pr(t))}function Vn(t,e,n){(void 0===n||Cs(t[e],n))&&(void 0!==n||e in t)||Un(t,e,n)}function zn(t,e,n){var a=t[e];Ot.call(t,e)&&Cs(a,n)&&(void 0!==n||e in t)||Un(t,e,n)}function Bn(t,e){for(var n=t.length;n--;)if(Cs(t[n][0],e))return n;return-1}function Yn(t,e,n,a){return Xn(t,(function(t,r,i){e(a,t,n(t),i)})),a}function Hn(t,e){return t&&br(e,xo(e),t)}function Un(t,e,n){"__proto__"==e&&We?We(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Wn(t,e){for(var n=-1,r=e.length,i=a(r),s=null==t;++n<r;)i[n]=s?void 0:po(t,e[n]);return i}function Kn(t,e,n){return t==t&&(void 0!==n&&(t=t<=n?t:n),void 0!==e&&(t=t>=e?t:e)),t}function $n(t,e,n,a,r,i){var s,u=1&e,c=2&e,_=4&e;if(n&&(s=r?n(t,a,r,i):n(t)),void 0!==s)return s;if(!zs(t))return t;var E=Es(t);if(E){if(s=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Ot.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!u)return pr(t,s)}else{var L=ti(t),D=L==f||L==h;if(Ms(t))return dr(t,u);if(L==b||L==o||D&&!r){if(s=c||D?{}:ni(t),!u)return c?function(t,e){return br(t,Xr(t),e)}(t,function(t,e){return t&&br(e,_o(e),t)}(s,t)):function(t,e){return br(t,Qr(t),e)}(t,Hn(s,t))}else{if(!jt[L])return r?t:{};s=function(t,e,n){var a=t.constructor;switch(e){case T:return lr(t);case d:case l:return new a(+t);case O:return function(t,e){var n=e?lr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case w:case S:case I:case N:case C:case R:case"[object Uint8ClampedArray]":case A:case k:return cr(t,n);case g:return new a;case p:case v:return new a(t);case m:return function(t){var e=new t.constructor(t.source,nt.exec(t));return e.lastIndex=t.lastIndex,e}(t);case y:return new a;case x:return Sn?pt(Sn.call(t)):{}}}(t,L,u)}}i||(i=new Mn);var P=i.get(t);if(P)return P;i.set(t,s),Ks(t)?t.forEach((function(a){s.add($n(a,e,n,a,t,i))})):Ys(t)&&t.forEach((function(a,r){s.set(r,$n(a,e,n,r,t,i))}));var M=E?void 0:(_?c?Yr:Br:c?_o:xo)(t);return re(M||t,(function(a,r){M&&(a=t[r=a]),zn(s,r,$n(a,e,n,r,t,i))})),s}function Zn(t,e,n){var a=n.length;if(null==t)return!a;for(t=pt(t);a--;){var r=n[a],i=t[r];if(void 0===i&&!(r in t)||!(0,e[r])(i))return!1}return!0}function Jn(t,e,n){if("function"!=typeof t)throw new yt(r);return mi((function(){t.apply(void 0,n)}),e)}function Qn(t,e,n,a){var r=-1,i=ue,s=!0,o=t.length,u=[],d=e.length;if(!o)return u;n&&(e=le(e,Ne(n))),a?(i=de,s=!1):e.length>=200&&(i=Re,s=!1,e=new Pn(e));t:for(;++r<o;){var l=t[r],c=null==n?l:n(l);if(l=a||0!==l?l:0,s&&c==c){for(var f=d;f--;)if(e[f]===c)continue t;u.push(l)}else i(e,c,a)||u.push(l)}return u}Nn.templateSettings={escape:F,evaluate:G,interpolate:V,variable:"",imports:{_:Nn}},(Nn.prototype=Rn.prototype).constructor=Nn,(An.prototype=Cn(Rn.prototype)).constructor=An,(kn.prototype=Cn(Rn.prototype)).constructor=kn,En.prototype.clear=function(){this.__data__=bn?bn(null):{},this.size=0},En.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},En.prototype.get=function(t){var e=this.__data__;if(bn){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return Ot.call(e,t)?e[t]:void 0},En.prototype.has=function(t){var e=this.__data__;return bn?void 0!==e[t]:Ot.call(e,t)},En.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=bn&&void 0===e?"__lodash_hash_undefined__":e,this},Ln.prototype.clear=function(){this.__data__=[],this.size=0},Ln.prototype.delete=function(t){var e=this.__data__,n=Bn(e,t);return!(n<0||(n==e.length-1?e.pop():$t.call(e,n,1),--this.size,0))},Ln.prototype.get=function(t){var e=this.__data__,n=Bn(e,t);return n<0?void 0:e[n][1]},Ln.prototype.has=function(t){return Bn(this.__data__,t)>-1},Ln.prototype.set=function(t,e){var n=this.__data__,a=Bn(n,t);return a<0?(++this.size,n.push([t,e])):n[a][1]=e,this},Dn.prototype.clear=function(){this.size=0,this.__data__={hash:new En,map:new(fn||Ln),string:new En}},Dn.prototype.delete=function(t){var e=$r(this,t).delete(t);return this.size-=e?1:0,e},Dn.prototype.get=function(t){return $r(this,t).get(t)},Dn.prototype.has=function(t){return $r(this,t).has(t)},Dn.prototype.set=function(t,e){var n=$r(this,t),a=n.size;return n.set(t,e),this.size+=n.size==a?0:1,this},Pn.prototype.add=Pn.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(t){return this.__data__.has(t)},Mn.prototype.clear=function(){this.__data__=new Ln,this.size=0},Mn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Mn.prototype.get=function(t){return this.__data__.get(t)},Mn.prototype.has=function(t){return this.__data__.has(t)},Mn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof Ln){var a=n.__data__;if(!fn||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new Dn(a)}return n.set(t,e),this.size=n.size,this};var Xn=vr(oa),ta=vr(ua,!0);function ea(t,e){var n=!0;return Xn(t,(function(t,a,r){return n=!!e(t,a,r)})),n}function na(t,e,n){for(var a=-1,r=t.length;++a<r;){var i=t[a],s=e(i);if(null!=s&&(void 0===o?s==s&&!Zs(s):n(s,o)))var o=s,u=i}return u}function aa(t,e){var n=[];return Xn(t,(function(t,a,r){e(t,a,r)&&n.push(t)})),n}function ra(t,e,n,a,r){var i=-1,s=t.length;for(n||(n=ai),r||(r=[]);++i<s;){var o=t[i];e>0&&n(o)?e>1?ra(o,e-1,n,a,r):ce(r,o):a||(r[r.length]=o)}return r}var ia=xr(),sa=xr(!0);function oa(t,e){return t&&ia(t,e,xo)}function ua(t,e){return t&&sa(t,e,xo)}function da(t,e){return oe(e,(function(e){return Fs(t[e])}))}function la(t,e){for(var n=0,a=(e=ir(e,t)).length;null!=t&&n<a;)t=t[Si(e[n++])];return n&&n==a?t:void 0}function ca(t,e,n){var a=e(t);return Es(t)?a:ce(a,n(t))}function fa(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Ue&&Ue in pt(t)?function(t){var e=Ot.call(t,Ue),n=t[Ue];try{t[Ue]=void 0;var a=!0}catch(i){}var r=It.call(t);return a&&(e?t[Ue]=n:delete t[Ue]),r}(t):function(t){return It.call(t)}(t)}function ha(t,e){return t>e}function ga(t,e){return null!=t&&Ot.call(t,e)}function pa(t,e){return null!=t&&e in pt(t)}function ba(t,e,n){for(var r=n?de:ue,i=t[0].length,s=t.length,o=s,u=a(s),d=1/0,l=[];o--;){var c=t[o];o&&e&&(c=le(c,Ne(e))),d=sn(c.length,d),u[o]=!n&&(e||i>=120&&c.length>=120)?new Pn(o&&c):void 0}c=t[0];var f=-1,h=u[0];t:for(;++f<i&&l.length<d;){var g=c[f],p=e?e(g):g;if(g=n||0!==g?g:0,!(h?Re(h,p):r(l,p,n))){for(o=s;--o;){var b=u[o];if(!(b?Re(b,p):r(t[o],p,n)))continue t}h&&h.push(p),l.push(g)}}return l}function ma(t,e,n){var a=null==(t=hi(t,e=ir(e,t)))?t:t[Si(ji(e))];return null==a?void 0:ne(a,t,n)}function ya(t){return Bs(t)&&fa(t)==o}function va(t,e,n,a,r){return t===e||(null==t||null==e||!Bs(t)&&!Bs(e)?t!=t&&e!=e:function(t,e,n,a,r,i){var s=Es(t),f=Es(e),h=s?u:ti(t),_=f?u:ti(e),w=(h=h==o?b:h)==b,S=(_=_==o?b:_)==b,I=h==_;if(I&&Ms(t)){if(!Ms(e))return!1;s=!0,w=!1}if(I&&!w)return i||(i=new Mn),s||Js(t)?Vr(t,e,n,a,r,i):function(t,e,n,a,r,i,s){switch(n){case O:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case T:return!(t.byteLength!=e.byteLength||!i(new zt(t),new zt(e)));case d:case l:case p:return Cs(+t,+e);case c:return t.name==e.name&&t.message==e.message;case m:case v:return t==e+"";case g:var o=qe;case y:if(o||(o=Ge),t.size!=e.size&&!(1&a))return!1;var u=s.get(t);if(u)return u==e;a|=2,s.set(t,e);var f=Vr(o(t),o(e),a,r,i,s);return s.delete(t),f;case x:if(Sn)return Sn.call(t)==Sn.call(e)}return!1}(t,e,h,n,a,r,i);if(!(1&n)){var N=w&&Ot.call(t,"__wrapped__"),C=S&&Ot.call(e,"__wrapped__");if(N||C){var R=N?t.value():t,A=C?e.value():e;return i||(i=new Mn),r(R,A,n,a,i)}}return!!I&&(i||(i=new Mn),function(t,e,n,a,r,i){var s=1&n,o=Br(t),u=o.length;if(u!=Br(e).length&&!s)return!1;for(var d=u;d--;){var l=o[d];if(!(s?l in e:Ot.call(e,l)))return!1}var c=i.get(t);if(c&&i.get(e))return c==e;var f=!0;i.set(t,e),i.set(e,t);for(var h=s;++d<u;){var g=t[l=o[d]],p=e[l];if(a)var b=s?a(p,g,l,e,t,i):a(g,p,l,t,e,i);if(!(void 0===b?g===p||r(g,p,n,a,i):b)){f=!1;break}h||(h="constructor"==l)}if(f&&!h){var m=t.constructor,y=e.constructor;m!=y&&"constructor"in t&&"constructor"in e&&!("function"==typeof m&&m instanceof m&&"function"==typeof y&&y instanceof y)&&(f=!1)}return i.delete(t),i.delete(e),f}(t,e,n,a,r,i))}(t,e,n,a,va,r))}function xa(t,e,n,a){var r=n.length,i=r,s=!a;if(null==t)return!i;for(t=pt(t);r--;){var o=n[r];if(s&&o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++r<i;){var u=(o=n[r])[0],d=t[u],l=o[1];if(s&&o[2]){if(void 0===d&&!(u in t))return!1}else{var c=new Mn;if(a)var f=a(d,l,u,t,e,c);if(!(void 0===f?va(l,d,3,a,c):f))return!1}}return!0}function _a(t){return!(!zs(t)||(e=t,St&&St in e))&&(Fs(t)?kt:it).test(Ii(t));var e}function Ta(t){return"function"==typeof t?t:null==t?Uo:"object"==typeof t?Es(t)?Na(t[0],t[1]):Ia(t):eu(t)}function Oa(t){if(!di(t))return an(t);var e=[];for(var n in pt(t))Ot.call(t,n)&&"constructor"!=n&&e.push(n);return e}function wa(t,e){return t<e}function Sa(t,e){var n=-1,r=Ds(t)?a(t.length):[];return Xn(t,(function(t,a,i){r[++n]=e(t,a,i)})),r}function Ia(t){var e=Zr(t);return 1==e.length&&e[0][2]?ci(e[0][0],e[0][1]):function(n){return n===t||xa(n,t,e)}}function Na(t,e){return si(t)&&li(e)?ci(Si(t),e):function(n){var a=po(n,t);return void 0===a&&a===e?bo(n,t):va(e,a,3)}}function Ca(t,e,n,a,r){t!==e&&ia(e,(function(i,s){if(r||(r=new Mn),zs(i))!function(t,e,n,a,r,i,s){var o=pi(t,n),u=pi(e,n),d=s.get(u);if(d)Vn(t,n,d);else{var l=i?i(o,u,n+"",t,e,s):void 0,c=void 0===l;if(c){var f=Es(u),h=!f&&Ms(u),g=!f&&!h&&Js(u);l=u,f||h||g?Es(o)?l=o:Ps(o)?l=pr(o):h?(c=!1,l=dr(u,!0)):g?(c=!1,l=cr(u,!0)):l=[]:Us(u)||ks(u)?(l=o,ks(o)?l=io(o):zs(o)&&!Fs(o)||(l=ni(u))):c=!1}c&&(s.set(u,l),r(l,u,a,i,s),s.delete(u)),Vn(t,n,l)}}(t,e,s,n,Ca,a,r);else{var o=a?a(pi(t,s),i,s+"",t,e,r):void 0;void 0===o&&(o=i),Vn(t,s,o)}}),_o)}function Ra(t,e){var n=t.length;if(n)return ri(e+=e<0?n:0,n)?t[e]:void 0}function Aa(t,e,n){var a=-1;return e=le(e.length?e:[Uo],Ne(Kr())),function(t,e){var a=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var a=-1,r=t.criteria,i=e.criteria,s=r.length,o=n.length;++a<s;){var u=fr(r[a],i[a]);if(u)return a>=o?u:u*("desc"==n[a]?-1:1)}return t.index-e.index}(t,e,n)}));a--;)t[a]=t[a].value;return t}(Sa(t,(function(t,n,r){return{criteria:le(e,(function(e){return e(t)})),index:++a,value:t}})))}function ka(t,e,n){for(var a=-1,r=e.length,i={};++a<r;){var s=e[a],o=la(t,s);n(o,s)&&Fa(i,ir(s,t),o)}return i}function Ea(t,e,n,a){var r=a?ve:ye,i=-1,s=e.length,o=t;for(t===e&&(e=pr(e)),n&&(o=le(t,Ne(n)));++i<s;)for(var u=0,d=e[i],l=n?n(d):d;(u=r(o,l,u,a))>-1;)o!==t&&$t.call(o,u,1),$t.call(t,u,1);return t}function La(t,e){for(var n=t?e.length:0,a=n-1;n--;){var r=e[n];if(n==a||r!==i){var i=r;ri(r)?$t.call(t,r,1):Ja(t,r)}}return t}function Da(t,e){return t+Qe(dn()*(e-t+1))}function Pa(t,e){var n="";if(!t||e<1||e>9007199254740991)return n;do{e%2&&(n+=t),(e=Qe(e/2))&&(t+=t)}while(e);return n}function Ma(t,e){return yi(fi(t,e,Uo),t+"")}function qa(t){return jn(Ro(t))}function ja(t,e){var n=Ro(t);return _i(n,Kn(e,0,n.length))}function Fa(t,e,n,a){if(!zs(t))return t;for(var r=-1,i=(e=ir(e,t)).length,s=i-1,o=t;null!=o&&++r<i;){var u=Si(e[r]),d=n;if(r!=s){var l=o[u];void 0===(d=a?a(l,u,o):void 0)&&(d=zs(l)?l:ri(e[r+1])?[]:{})}zn(o,u,d),o=o[u]}return t}var Ga=mn?function(t,e){return mn.set(t,e),t}:Uo,Va=We?function(t,e){return We(t,"toString",{configurable:!0,enumerable:!1,value:Bo(e),writable:!0})}:Uo;function za(t){return _i(Ro(t))}function Ba(t,e,n){var r=-1,i=t.length;e<0&&(e=-e>i?0:i+e),(n=n>i?i:n)<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;for(var s=a(i);++r<i;)s[r]=t[r+e];return s}function Ya(t,e){var n;return Xn(t,(function(t,a,r){return!(n=e(t,a,r))})),!!n}function Ha(t,e,n){var a=0,r=null==t?a:t.length;if("number"==typeof e&&e==e&&r<=2147483647){for(;a<r;){var i=a+r>>>1,s=t[i];null!==s&&!Zs(s)&&(n?s<=e:s<e)?a=i+1:r=i}return r}return Ua(t,e,Uo,n)}function Ua(t,e,n,a){e=n(e);for(var r=0,i=null==t?0:t.length,s=e!=e,o=null===e,u=Zs(e),d=void 0===e;r<i;){var l=Qe((r+i)/2),c=n(t[l]),f=void 0!==c,h=null===c,g=c==c,p=Zs(c);if(s)var b=a||g;else b=d?g&&(a||f):o?g&&f&&(a||!h):u?g&&f&&!h&&(a||!p):!h&&!p&&(a?c<=e:c<e);b?r=l+1:i=l}return sn(i,4294967294)}function Wa(t,e){for(var n=-1,a=t.length,r=0,i=[];++n<a;){var s=t[n],o=e?e(s):s;if(!n||!Cs(o,u)){var u=o;i[r++]=0===s?0:s}}return i}function Ka(t){return"number"==typeof t?t:Zs(t)?NaN:+t}function $a(t){if("string"==typeof t)return t;if(Es(t))return le(t,$a)+"";if(Zs(t))return In?In.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Za(t,e,n){var a=-1,r=ue,i=t.length,s=!0,o=[],u=o;if(n)s=!1,r=de;else if(i>=200){var d=e?null:Pr(t);if(d)return Ge(d);s=!1,r=Re,u=new Pn}else u=e?[]:o;t:for(;++a<i;){var l=t[a],c=e?e(l):l;if(l=n||0!==l?l:0,s&&c==c){for(var f=u.length;f--;)if(u[f]===c)continue t;e&&u.push(c),o.push(l)}else r(u,c,n)||(u!==o&&u.push(c),o.push(l))}return o}function Ja(t,e){return null==(t=hi(t,e=ir(e,t)))||delete t[Si(ji(e))]}function Qa(t,e,n,a){return Fa(t,e,n(la(t,e)),a)}function Xa(t,e,n,a){for(var r=t.length,i=a?r:-1;(a?i--:++i<r)&&e(t[i],i,t););return n?Ba(t,a?0:i,a?i+1:r):Ba(t,a?i+1:0,a?r:i)}function tr(t,e){var n=t;return n instanceof kn&&(n=n.value()),fe(e,(function(t,e){return e.func.apply(e.thisArg,ce([t],e.args))}),n)}function er(t,e,n){var r=t.length;if(r<2)return r?Za(t[0]):[];for(var i=-1,s=a(r);++i<r;)for(var o=t[i],u=-1;++u<r;)u!=i&&(s[i]=Qn(s[i]||o,t[u],e,n));return Za(ra(s,1),e,n)}function nr(t,e,n){for(var a=-1,r=t.length,i=e.length,s={};++a<r;)n(s,t[a],a<i?e[a]:void 0);return s}function ar(t){return Ps(t)?t:[]}function rr(t){return"function"==typeof t?t:Uo}function ir(t,e){return Es(t)?t:si(t,e)?[t]:wi(so(t))}var sr=Ma;function or(t,e,n){var a=t.length;return n=void 0===n?a:n,!e&&n>=a?t:Ba(t,e,n)}var ur=Ke||function(t){return Yt.clearTimeout(t)};function dr(t,e){if(e)return t.slice();var n=t.length,a=Bt?Bt(n):new t.constructor(n);return t.copy(a),a}function lr(t){var e=new t.constructor(t.byteLength);return new zt(e).set(new zt(t)),e}function cr(t,e){var n=e?lr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function fr(t,e){if(t!==e){var n=void 0!==t,a=null===t,r=t==t,i=Zs(t),s=void 0!==e,o=null===e,u=e==e,d=Zs(e);if(!o&&!d&&!i&&t>e||i&&s&&u&&!o&&!d||a&&s&&u||!n&&u||!r)return 1;if(!a&&!i&&!d&&t<e||d&&n&&r&&!a&&!i||o&&n&&r||!s&&r||!u)return-1}return 0}function hr(t,e,n,r){for(var i=-1,s=t.length,o=n.length,u=-1,d=e.length,l=rn(s-o,0),c=a(d+l),f=!r;++u<d;)c[u]=e[u];for(;++i<o;)(f||i<s)&&(c[n[i]]=t[i]);for(;l--;)c[u++]=t[i++];return c}function gr(t,e,n,r){for(var i=-1,s=t.length,o=-1,u=n.length,d=-1,l=e.length,c=rn(s-u,0),f=a(c+l),h=!r;++i<c;)f[i]=t[i];for(var g=i;++d<l;)f[g+d]=e[d];for(;++o<u;)(h||i<s)&&(f[g+n[o]]=t[i++]);return f}function pr(t,e){var n=-1,r=t.length;for(e||(e=a(r));++n<r;)e[n]=t[n];return e}function br(t,e,n,a){var r=!n;n||(n={});for(var i=-1,s=e.length;++i<s;){var o=e[i],u=a?a(n[o],t[o],o,n,t):void 0;void 0===u&&(u=t[o]),r?Un(n,o,u):zn(n,o,u)}return n}function mr(t,e){return function(n,a){var r=Es(n)?ae:Yn,i=e?e():{};return r(n,t,Kr(a,2),i)}}function yr(t){return Ma((function(e,n){var a=-1,r=n.length,i=r>1?n[r-1]:void 0,s=r>2?n[2]:void 0;for(i=t.length>3&&"function"==typeof i?(r--,i):void 0,s&&ii(n[0],n[1],s)&&(i=r<3?void 0:i,r=1),e=pt(e);++a<r;){var o=n[a];o&&t(e,o,a,i)}return e}))}function vr(t,e){return function(n,a){if(null==n)return n;if(!Ds(n))return t(n,a);for(var r=n.length,i=e?r:-1,s=pt(n);(e?i--:++i<r)&&!1!==a(s[i],i,s););return n}}function xr(t){return function(e,n,a){for(var r=-1,i=pt(e),s=a(e),o=s.length;o--;){var u=s[t?o:++r];if(!1===n(i[u],u,i))break}return e}}function _r(t){return function(e){var n=Me(e=so(e))?Be(e):void 0,a=n?n[0]:e.charAt(0),r=n?or(n,1).join(""):e.slice(1);return a[t]()+r}}function Tr(t){return function(e){return fe(Go(Eo(e).replace(Rt,"")),t,"")}}function Or(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Cn(t.prototype),a=t.apply(n,e);return zs(a)?a:n}}function wr(t){return function(e,n,a){var r=pt(e);if(!Ds(e)){var i=Kr(n,3);e=xo(e),n=function(t){return i(r[t],t,r)}}var s=t(e,n,a);return s>-1?r[i?e[s]:s]:void 0}}function Sr(t){return zr((function(e){var n=e.length,a=n,i=An.prototype.thru;for(t&&e.reverse();a--;){var s=e[a];if("function"!=typeof s)throw new yt(r);if(i&&!o&&"wrapper"==Ur(s))var o=new An([],!0)}for(a=o?a:n;++a<n;){var u=Ur(s=e[a]),d="wrapper"==u?Hr(s):void 0;o=d&&oi(d[0])&&424==d[1]&&!d[4].length&&1==d[9]?o[Ur(d[0])].apply(o,d[3]):1==s.length&&oi(s)?o[u]():o.thru(s)}return function(){var t=arguments,a=t[0];if(o&&1==t.length&&Es(a))return o.plant(a).value();for(var r=0,i=n?e[r].apply(this,t):a;++r<n;)i=e[r].call(this,i);return i}}))}function Ir(t,e,n,r,i,s,o,u,d,l){var c=128&e,f=1&e,h=2&e,g=24&e,p=512&e,b=h?void 0:Or(t);return function m(){for(var y=arguments.length,v=a(y),x=y;x--;)v[x]=arguments[x];if(g)var _=Wr(m),T=Ee(v,_);if(r&&(v=hr(v,r,i,g)),s&&(v=gr(v,s,o,g)),y-=T,g&&y<l){var O=Fe(v,_);return Lr(t,e,Ir,m.placeholder,n,v,O,u,d,l-y)}var w=f?n:this,S=h?w[t]:t;return y=v.length,u?v=gi(v,u):p&&y>1&&v.reverse(),c&&d<y&&(v.length=d),this&&this!==Yt&&this instanceof m&&(S=b||Or(S)),S.apply(w,v)}}function Nr(t,e){return function(n,a){return function(t,e,n,a){return oa(t,(function(t,r,i){e(a,n(t),r,i)})),a}(n,t,e(a),{})}}function Cr(t,e){return function(n,a){var r;if(void 0===n&&void 0===a)return e;if(void 0!==n&&(r=n),void 0!==a){if(void 0===r)return a;"string"==typeof n||"string"==typeof a?(n=$a(n),a=$a(a)):(n=Ka(n),a=Ka(a)),r=t(n,a)}return r}}function Rr(t){return zr((function(e){return e=le(e,Ne(Kr())),Ma((function(n){var a=this;return t(e,(function(t){return ne(t,a,n)}))}))}))}function Ar(t,e){var n=(e=void 0===e?" ":$a(e)).length;if(n<2)return n?Pa(e,t):e;var a=Pa(e,Je(t/ze(e)));return Me(e)?or(Be(a),0,t).join(""):a.slice(0,t)}function kr(t){return function(e,n,r){return r&&"number"!=typeof r&&ii(e,n,r)&&(n=r=void 0),e=eo(e),void 0===n?(n=e,e=0):n=eo(n),function(t,e,n,r){for(var i=-1,s=rn(Je((e-t)/(n||1)),0),o=a(s);s--;)o[r?s:++i]=t,t+=n;return o}(e,n,r=void 0===r?e<n?1:-1:eo(r),t)}}function Er(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ro(e),n=ro(n)),t(e,n)}}function Lr(t,e,n,a,r,i,s,o,u,d){var l=8&e;e|=l?32:64,4&(e&=~(l?64:32))||(e&=-4);var c=[t,e,r,l?i:void 0,l?s:void 0,l?void 0:i,l?void 0:s,o,u,d],f=n.apply(void 0,c);return oi(t)&&bi(f,c),f.placeholder=a,vi(f,t,e)}function Dr(t){var e=gt[t];return function(t,n){if(t=ro(t),(n=null==n?0:sn(no(n),292))&&en(t)){var a=(so(t)+"e").split("e");return+((a=(so(e(a[0]+"e"+(+a[1]+n)))+"e").split("e"))[0]+"e"+(+a[1]-n))}return e(t)}}var Pr=gn&&1/Ge(new gn([,-0]))[1]==1/0?function(t){return new gn(t)}:Jo;function Mr(t){return function(e){var n=ti(e);return n==g?qe(e):n==y?Ve(e):function(t,e){return le(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function qr(t,e,n,s,o,u,d,l){var c=2&e;if(!c&&"function"!=typeof t)throw new yt(r);var f=s?s.length:0;if(f||(e&=-97,s=o=void 0),d=void 0===d?d:rn(no(d),0),l=void 0===l?l:no(l),f-=o?o.length:0,64&e){var h=s,g=o;s=o=void 0}var p=c?void 0:Hr(t),b=[t,e,n,s,o,h,g,u,d,l];if(p&&function(t,e){var n=t[1],a=e[1],r=n|a;if(!(r<131||128==a&&8==n||128==a&&256==n&&t[7].length<=e[8]||384==a&&e[7].length<=e[8]&&8==n))return t;1&a&&(t[2]=e[2],r|=1&n?0:4);var s=e[3];if(s){var o=t[3];t[3]=o?hr(o,s,e[4]):s,t[4]=o?Fe(t[3],i):e[4]}(s=e[5])&&(t[5]=(o=t[5])?gr(o,s,e[6]):s,t[6]=o?Fe(t[5],i):e[6]),(s=e[7])&&(t[7]=s),128&a&&(t[8]=null==t[8]?e[8]:sn(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=r}(b,p),t=b[0],e=b[1],n=b[2],s=b[3],o=b[4],!(l=b[9]=void 0===b[9]?c?0:t.length:rn(b[9]-f,0))&&24&e&&(e&=-25),e&&1!=e)m=8==e||16==e?function(t,e,n){var r=Or(t);return function i(){for(var s=arguments.length,o=a(s),u=s,d=Wr(i);u--;)o[u]=arguments[u];var l=s<3&&o[0]!==d&&o[s-1]!==d?[]:Fe(o,d);if((s-=l.length)<n)return Lr(t,e,Ir,i.placeholder,void 0,o,l,void 0,void 0,n-s);var c=this&&this!==Yt&&this instanceof i?r:t;return ne(c,this,o)}}(t,e,l):32!=e&&33!=e||o.length?Ir.apply(void 0,b):function(t,e,n,r){var i=1&e,s=Or(t);return function e(){for(var o=-1,u=arguments.length,d=-1,l=r.length,c=a(l+u),f=this&&this!==Yt&&this instanceof e?s:t;++d<l;)c[d]=r[d];for(;u--;)c[d++]=arguments[++o];return ne(f,i?n:this,c)}}(t,e,n,s);else var m=function(t,e,n){var a=1&e,r=Or(t);return function e(){var i=this&&this!==Yt&&this instanceof e?r:t;return i.apply(a?n:this,arguments)}}(t,e,n);return vi((p?Ga:bi)(m,b),t,e)}function jr(t,e,n,a){return void 0===t||Cs(t,xt[n])&&!Ot.call(a,n)?e:t}function Fr(t,e,n,a,r,i){return zs(t)&&zs(e)&&(i.set(e,t),Ca(t,e,void 0,Fr,i),i.delete(e)),t}function Gr(t){return Us(t)?void 0:t}function Vr(t,e,n,a,r,i){var s=1&n,o=t.length,u=e.length;if(o!=u&&!(s&&u>o))return!1;var d=i.get(t);if(d&&i.get(e))return d==e;var l=-1,c=!0,f=2&n?new Pn:void 0;for(i.set(t,e),i.set(e,t);++l<o;){var h=t[l],g=e[l];if(a)var p=s?a(g,h,l,e,t,i):a(h,g,l,t,e,i);if(void 0!==p){if(p)continue;c=!1;break}if(f){if(!ge(e,(function(t,e){if(!Re(f,e)&&(h===t||r(h,t,n,a,i)))return f.push(e)}))){c=!1;break}}else if(h!==g&&!r(h,g,n,a,i)){c=!1;break}}return i.delete(t),i.delete(e),c}function zr(t){return yi(fi(t,void 0,Li),t+"")}function Br(t){return ca(t,xo,Qr)}function Yr(t){return ca(t,_o,Xr)}var Hr=mn?function(t){return mn.get(t)}:Jo;function Ur(t){for(var e=t.name+"",n=yn[e],a=Ot.call(yn,e)?n.length:0;a--;){var r=n[a],i=r.func;if(null==i||i==t)return r.name}return e}function Wr(t){return(Ot.call(Nn,"placeholder")?Nn:t).placeholder}function Kr(){var t=Nn.iteratee||Wo;return t=t===Wo?Ta:t,arguments.length?t(arguments[0],arguments[1]):t}function $r(t,e){var n,a,r=t.__data__;return("string"==(a=typeof(n=e))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof e?"string":"hash"]:r.map}function Zr(t){for(var e=xo(t),n=e.length;n--;){var a=e[n],r=t[a];e[n]=[a,r,li(r)]}return e}function Jr(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return _a(n)?n:void 0}var Qr=Xe?function(t){return null==t?[]:(t=pt(t),oe(Xe(t),(function(e){return Kt.call(t,e)})))}:ru,Xr=Xe?function(t){for(var e=[];t;)ce(e,Qr(t)),t=Ht(t);return e}:ru,ti=fa;function ei(t,e,n){for(var a=-1,r=(e=ir(e,t)).length,i=!1;++a<r;){var s=Si(e[a]);if(!(i=null!=t&&n(t,s)))break;t=t[s]}return i||++a!=r?i:!!(r=null==t?0:t.length)&&Vs(r)&&ri(s,r)&&(Es(t)||ks(t))}function ni(t){return"function"!=typeof t.constructor||di(t)?{}:Cn(Ht(t))}function ai(t){return Es(t)||ks(t)||!!(pe&&t&&t[pe])}function ri(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&ot.test(t))&&t>-1&&t%1==0&&t<e}function ii(t,e,n){if(!zs(n))return!1;var a=typeof e;return!!("number"==a?Ds(n)&&ri(e,n.length):"string"==a&&e in n)&&Cs(n[e],t)}function si(t,e){if(Es(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Zs(t))||B.test(t)||!z.test(t)||null!=e&&t in pt(e)}function oi(t){var e=Ur(t),n=Nn[e];if("function"!=typeof n||!(e in kn.prototype))return!1;if(t===n)return!0;var a=Hr(n);return!!a&&t===a[0]}(cn&&ti(new cn(new ArrayBuffer(1)))!=O||fn&&ti(new fn)!=g||hn&&"[object Promise]"!=ti(hn.resolve())||gn&&ti(new gn)!=y||pn&&ti(new pn)!=_)&&(ti=function(t){var e=fa(t),n=e==b?t.constructor:void 0,a=n?Ii(n):"";if(a)switch(a){case vn:return O;case xn:return g;case _n:return"[object Promise]";case Tn:return y;case On:return _}return e});var ui=_t?Fs:iu;function di(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||xt)}function li(t){return t==t&&!zs(t)}function ci(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in pt(n))}}function fi(t,e,n){return e=rn(void 0===e?t.length-1:e,0),function(){for(var r=arguments,i=-1,s=rn(r.length-e,0),o=a(s);++i<s;)o[i]=r[e+i];i=-1;for(var u=a(e+1);++i<e;)u[i]=r[i];return u[e]=n(o),ne(t,this,u)}}function hi(t,e){return e.length<2?t:la(t,Ba(e,0,-1))}function gi(t,e){for(var n=t.length,a=sn(e.length,n),r=pr(t);a--;){var i=e[a];t[a]=ri(i,n)?r[i]:void 0}return t}function pi(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var bi=xi(Ga),mi=Ze||function(t,e){return Yt.setTimeout(t,e)},yi=xi(Va);function vi(t,e,n){var a=e+"";return yi(t,function(t,e){var n=e.length;if(!n)return t;var a=n-1;return e[a]=(n>1?"& ":"")+e[a],e=e.join(n>2?", ":" "),t.replace(Z,"{\n/* [wrapped with "+e+"] */\n")}(a,function(t,e){return re(s,(function(n){var a="_."+n[0];e&n[1]&&!ue(t,a)&&t.push(a)})),t.sort()}(function(t){var e=t.match(J);return e?e[1].split(Q):[]}(a),n)))}function xi(t){var e=0,n=0;return function(){var a=on(),r=16-(a-n);if(n=a,r>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function _i(t,e){var n=-1,a=t.length,r=a-1;for(e=void 0===e?a:e;++n<e;){var i=Da(n,r),s=t[i];t[i]=t[n],t[n]=s}return t.length=e,t}var Ti,Oi,wi=(Ti=Ts((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Y,(function(t,n,a,r){e.push(a?r.replace(tt,"$1"):n||t)})),e}),(function(t){return 500===Oi.size&&Oi.clear(),t})),Oi=Ti.cache,Ti);function Si(t){if("string"==typeof t||Zs(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Ii(t){if(null!=t){try{return Tt.call(t)}catch(e){}try{return t+""}catch(e){}}return""}function Ni(t){if(t instanceof kn)return t.clone();var e=new An(t.__wrapped__,t.__chain__);return e.__actions__=pr(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Ci=Ma((function(t,e){return Ps(t)?Qn(t,ra(e,1,Ps,!0)):[]})),Ri=Ma((function(t,e){var n=ji(e);return Ps(n)&&(n=void 0),Ps(t)?Qn(t,ra(e,1,Ps,!0),Kr(n,2)):[]})),Ai=Ma((function(t,e){var n=ji(e);return Ps(n)&&(n=void 0),Ps(t)?Qn(t,ra(e,1,Ps,!0),void 0,n):[]}));function ki(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:no(n);return r<0&&(r=rn(a+r,0)),me(t,Kr(e,3),r)}function Ei(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=a-1;return void 0!==n&&(r=no(n),r=n<0?rn(a+r,0):sn(r,a-1)),me(t,Kr(e,3),r,!0)}function Li(t){return null!=t&&t.length?ra(t,1):[]}function Di(t){return t&&t.length?t[0]:void 0}var Pi=Ma((function(t){var e=le(t,ar);return e.length&&e[0]===t[0]?ba(e):[]})),Mi=Ma((function(t){var e=ji(t),n=le(t,ar);return e===ji(n)?e=void 0:n.pop(),n.length&&n[0]===t[0]?ba(n,Kr(e,2)):[]})),qi=Ma((function(t){var e=ji(t),n=le(t,ar);return(e="function"==typeof e?e:void 0)&&n.pop(),n.length&&n[0]===t[0]?ba(n,void 0,e):[]}));function ji(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}var Fi=Ma(Gi);function Gi(t,e){return t&&t.length&&e&&e.length?Ea(t,e):t}var Vi=zr((function(t,e){var n=null==t?0:t.length,a=Wn(t,e);return La(t,le(e,(function(t){return ri(t,n)?+t:t})).sort(fr)),a}));function zi(t){return null==t?t:ln.call(t)}var Bi=Ma((function(t){return Za(ra(t,1,Ps,!0))})),Yi=Ma((function(t){var e=ji(t);return Ps(e)&&(e=void 0),Za(ra(t,1,Ps,!0),Kr(e,2))})),Hi=Ma((function(t){var e=ji(t);return e="function"==typeof e?e:void 0,Za(ra(t,1,Ps,!0),void 0,e)}));function Ui(t){if(!t||!t.length)return[];var e=0;return t=oe(t,(function(t){if(Ps(t))return e=rn(t.length,e),!0})),Ie(e,(function(e){return le(t,Te(e))}))}function Wi(t,e){if(!t||!t.length)return[];var n=Ui(t);return null==e?n:le(n,(function(t){return ne(e,void 0,t)}))}var Ki=Ma((function(t,e){return Ps(t)?Qn(t,e):[]})),$i=Ma((function(t){return er(oe(t,Ps))})),Zi=Ma((function(t){var e=ji(t);return Ps(e)&&(e=void 0),er(oe(t,Ps),Kr(e,2))})),Ji=Ma((function(t){var e=ji(t);return e="function"==typeof e?e:void 0,er(oe(t,Ps),void 0,e)})),Qi=Ma(Ui),Xi=Ma((function(t){var e=t.length,n=e>1?t[e-1]:void 0;return n="function"==typeof n?(t.pop(),n):void 0,Wi(t,n)}));function ts(t){var e=Nn(t);return e.__chain__=!0,e}function es(t,e){return e(t)}var ns=zr((function(t){var e=t.length,n=e?t[0]:0,a=this.__wrapped__,r=function(e){return Wn(e,t)};return!(e>1||this.__actions__.length)&&a instanceof kn&&ri(n)?((a=a.slice(n,+n+(e?1:0))).__actions__.push({func:es,args:[r],thisArg:void 0}),new An(a,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(r)})),as=mr((function(t,e,n){Ot.call(t,n)?++t[n]:Un(t,n,1)})),rs=wr(ki),is=wr(Ei);function ss(t,e){return(Es(t)?re:Xn)(t,Kr(e,3))}function os(t,e){return(Es(t)?ie:ta)(t,Kr(e,3))}var us=mr((function(t,e,n){Ot.call(t,n)?t[n].push(e):Un(t,n,[e])})),ds=Ma((function(t,e,n){var r=-1,i="function"==typeof e,s=Ds(t)?a(t.length):[];return Xn(t,(function(t){s[++r]=i?ne(e,t,n):ma(t,e,n)})),s})),ls=mr((function(t,e,n){Un(t,n,e)}));function cs(t,e){return(Es(t)?le:Sa)(t,Kr(e,3))}var fs=mr((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),hs=Ma((function(t,e){if(null==t)return[];var n=e.length;return n>1&&ii(t,e[0],e[1])?e=[]:n>2&&ii(e[0],e[1],e[2])&&(e=[e[0]]),Aa(t,ra(e,1),[])})),gs=$e||function(){return Yt.Date.now()};function ps(t,e,n){return e=n?void 0:e,qr(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function bs(t,e){var n;if("function"!=typeof e)throw new yt(r);return t=no(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var ms=Ma((function(t,e,n){var a=1;if(n.length){var r=Fe(n,Wr(ms));a|=32}return qr(t,a,e,n,r)})),ys=Ma((function(t,e,n){var a=3;if(n.length){var r=Fe(n,Wr(ys));a|=32}return qr(e,a,t,n,r)}));function vs(t,e,n){var a,i,s,o,u,d,l=0,c=!1,f=!1,h=!0;if("function"!=typeof t)throw new yt(r);function g(e){var n=a,r=i;return a=i=void 0,l=e,o=t.apply(r,n)}function p(t){return l=t,u=mi(m,e),c?g(t):o}function b(t){var n=t-d;return void 0===d||n>=e||n<0||f&&t-l>=s}function m(){var t=gs();if(b(t))return y(t);u=mi(m,function(t){var n=e-(t-d);return f?sn(n,s-(t-l)):n}(t))}function y(t){return u=void 0,h&&a?g(t):(a=i=void 0,o)}function v(){var t=gs(),n=b(t);if(a=arguments,i=this,d=t,n){if(void 0===u)return p(d);if(f)return ur(u),u=mi(m,e),g(d)}return void 0===u&&(u=mi(m,e)),o}return e=ro(e)||0,zs(n)&&(c=!!n.leading,s=(f="maxWait"in n)?rn(ro(n.maxWait)||0,e):s,h="trailing"in n?!!n.trailing:h),v.cancel=function(){void 0!==u&&ur(u),l=0,a=d=i=u=void 0},v.flush=function(){return void 0===u?o:y(gs())},v}var xs=Ma((function(t,e){return Jn(t,1,e)})),_s=Ma((function(t,e,n){return Jn(t,ro(e)||0,n)}));function Ts(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new yt(r);var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],i=n.cache;if(i.has(r))return i.get(r);var s=t.apply(this,a);return n.cache=i.set(r,s)||i,s};return n.cache=new(Ts.Cache||Dn),n}function Os(t){if("function"!=typeof t)throw new yt(r);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Ts.Cache=Dn;var ws=sr((function(t,e){var n=(e=1==e.length&&Es(e[0])?le(e[0],Ne(Kr())):le(ra(e,1),Ne(Kr()))).length;return Ma((function(a){for(var r=-1,i=sn(a.length,n);++r<i;)a[r]=e[r].call(this,a[r]);return ne(t,this,a)}))})),Ss=Ma((function(t,e){return qr(t,32,void 0,e,Fe(e,Wr(Ss)))})),Is=Ma((function(t,e){return qr(t,64,void 0,e,Fe(e,Wr(Is)))})),Ns=zr((function(t,e){return qr(t,256,void 0,void 0,void 0,e)}));function Cs(t,e){return t===e||t!=t&&e!=e}var Rs=Er(ha),As=Er((function(t,e){return t>=e})),ks=ya(function(){return arguments}())?ya:function(t){return Bs(t)&&Ot.call(t,"callee")&&!Kt.call(t,"callee")},Es=a.isArray,Ls=Zt?Ne(Zt):function(t){return Bs(t)&&fa(t)==T};function Ds(t){return null!=t&&Vs(t.length)&&!Fs(t)}function Ps(t){return Bs(t)&&Ds(t)}var Ms=tn||iu,qs=Jt?Ne(Jt):function(t){return Bs(t)&&fa(t)==l};function js(t){if(!Bs(t))return!1;var e=fa(t);return e==c||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Us(t)}function Fs(t){if(!zs(t))return!1;var e=fa(t);return e==f||e==h||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Gs(t){return"number"==typeof t&&t==no(t)}function Vs(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function zs(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Bs(t){return null!=t&&"object"==typeof t}var Ys=Qt?Ne(Qt):function(t){return Bs(t)&&ti(t)==g};function Hs(t){return"number"==typeof t||Bs(t)&&fa(t)==p}function Us(t){if(!Bs(t)||fa(t)!=b)return!1;var e=Ht(t);if(null===e)return!0;var n=Ot.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Tt.call(n)==Nt}var Ws=Xt?Ne(Xt):function(t){return Bs(t)&&fa(t)==m},Ks=te?Ne(te):function(t){return Bs(t)&&ti(t)==y};function $s(t){return"string"==typeof t||!Es(t)&&Bs(t)&&fa(t)==v}function Zs(t){return"symbol"==typeof t||Bs(t)&&fa(t)==x}var Js=ee?Ne(ee):function(t){return Bs(t)&&Vs(t.length)&&!!qt[fa(t)]},Qs=Er(wa),Xs=Er((function(t,e){return t<=e}));function to(t){if(!t)return[];if(Ds(t))return $s(t)?Be(t):pr(t);if(Oe&&t[Oe])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Oe]());var e=ti(t);return(e==g?qe:e==y?Ge:Ro)(t)}function eo(t){return t?(t=ro(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function no(t){var e=eo(t),n=e%1;return e==e?n?e-n:e:0}function ao(t){return t?Kn(no(t),0,4294967295):0}function ro(t){if("number"==typeof t)return t;if(Zs(t))return NaN;if(zs(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=zs(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(W,"");var n=rt.test(t);return n||st.test(t)?Vt(t.slice(2),n?2:8):at.test(t)?NaN:+t}function io(t){return br(t,_o(t))}function so(t){return null==t?"":$a(t)}var oo=yr((function(t,e){if(di(e)||Ds(e))br(e,xo(e),t);else for(var n in e)Ot.call(e,n)&&zn(t,n,e[n])})),uo=yr((function(t,e){br(e,_o(e),t)})),lo=yr((function(t,e,n,a){br(e,_o(e),t,a)})),co=yr((function(t,e,n,a){br(e,xo(e),t,a)})),fo=zr(Wn),ho=Ma((function(t,e){t=pt(t);var n=-1,a=e.length,r=a>2?e[2]:void 0;for(r&&ii(e[0],e[1],r)&&(a=1);++n<a;)for(var i=e[n],s=_o(i),o=-1,u=s.length;++o<u;){var d=s[o],l=t[d];(void 0===l||Cs(l,xt[d])&&!Ot.call(t,d))&&(t[d]=i[d])}return t})),go=Ma((function(t){return t.push(void 0,Fr),ne(Oo,void 0,t)}));function po(t,e,n){var a=null==t?void 0:la(t,e);return void 0===a?n:a}function bo(t,e){return null!=t&&ei(t,e,pa)}var mo=Nr((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=It.call(e)),t[e]=n}),Bo(Uo)),yo=Nr((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=It.call(e)),Ot.call(t,e)?t[e].push(n):t[e]=[n]}),Kr),vo=Ma(ma);function xo(t){return Ds(t)?qn(t):Oa(t)}function _o(t){return Ds(t)?qn(t,!0):function(t){if(!zs(t))return function(t){var e=[];if(null!=t)for(var n in pt(t))e.push(n);return e}(t);var e=di(t),n=[];for(var a in t)("constructor"!=a||!e&&Ot.call(t,a))&&n.push(a);return n}(t)}var To=yr((function(t,e,n){Ca(t,e,n)})),Oo=yr((function(t,e,n,a){Ca(t,e,n,a)})),wo=zr((function(t,e){var n={};if(null==t)return n;var a=!1;e=le(e,(function(e){return e=ir(e,t),a||(a=e.length>1),e})),br(t,Yr(t),n),a&&(n=$n(n,7,Gr));for(var r=e.length;r--;)Ja(n,e[r]);return n})),So=zr((function(t,e){return null==t?{}:function(t,e){return ka(t,e,(function(e,n){return bo(t,n)}))}(t,e)}));function Io(t,e){if(null==t)return{};var n=le(Yr(t),(function(t){return[t]}));return e=Kr(e),ka(t,n,(function(t,n){return e(t,n[0])}))}var No=Mr(xo),Co=Mr(_o);function Ro(t){return null==t?[]:Ce(t,xo(t))}var Ao=Tr((function(t,e,n){return e=e.toLowerCase(),t+(n?ko(e):e)}));function ko(t){return Fo(so(t).toLowerCase())}function Eo(t){return(t=so(t))&&t.replace(ut,Le).replace(At,"")}var Lo=Tr((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Do=Tr((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Po=_r("toLowerCase"),Mo=Tr((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),qo=Tr((function(t,e,n){return t+(n?" ":"")+Fo(e)})),jo=Tr((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Fo=_r("toUpperCase");function Go(t,e,n){return t=so(t),void 0===(e=n?void 0:e)?function(t){return Dt.test(t)}(t)?function(t){return t.match(Et)||[]}(t):function(t){return t.match(X)||[]}(t):t.match(e)||[]}var Vo=Ma((function(t,e){try{return ne(t,void 0,e)}catch(n){return js(n)?n:new ft(n)}})),zo=zr((function(t,e){return re(e,(function(e){e=Si(e),Un(t,e,ms(t[e],t))})),t}));function Bo(t){return function(){return t}}var Yo=Sr(),Ho=Sr(!0);function Uo(t){return t}function Wo(t){return Ta("function"==typeof t?t:$n(t,1))}var Ko=Ma((function(t,e){return function(n){return ma(n,t,e)}})),$o=Ma((function(t,e){return function(n){return ma(t,n,e)}}));function Zo(t,e,n){var a=xo(e),r=da(e,a);null!=n||zs(e)&&(r.length||!a.length)||(n=e,e=t,t=this,r=da(e,xo(e)));var i=!(zs(n)&&"chain"in n&&!n.chain),s=Fs(t);return re(r,(function(n){var a=e[n];t[n]=a,s&&(t.prototype[n]=function(){var e=this.__chain__;if(i||e){var n=t(this.__wrapped__),r=n.__actions__=pr(this.__actions__);return r.push({func:a,args:arguments,thisArg:t}),n.__chain__=e,n}return a.apply(t,ce([this.value()],arguments))})})),t}function Jo(){}var Qo=Rr(le),Xo=Rr(se),tu=Rr(ge);function eu(t){return si(t)?Te(Si(t)):function(t){return function(e){return la(e,t)}}(t)}var nu=kr(),au=kr(!0);function ru(){return[]}function iu(){return!1}var su,ou=Cr((function(t,e){return t+e}),0),uu=Dr("ceil"),du=Cr((function(t,e){return t/e}),1),lu=Dr("floor"),cu=Cr((function(t,e){return t*e}),1),fu=Dr("round"),hu=Cr((function(t,e){return t-e}),0);return Nn.after=function(t,e){if("function"!=typeof e)throw new yt(r);return t=no(t),function(){if(--t<1)return e.apply(this,arguments)}},Nn.ary=ps,Nn.assign=oo,Nn.assignIn=uo,Nn.assignInWith=lo,Nn.assignWith=co,Nn.at=fo,Nn.before=bs,Nn.bind=ms,Nn.bindAll=zo,Nn.bindKey=ys,Nn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Es(t)?t:[t]},Nn.chain=ts,Nn.chunk=function(t,e,n){e=(n?ii(t,e,n):void 0===e)?1:rn(no(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var i=0,s=0,o=a(Je(r/e));i<r;)o[s++]=Ba(t,i,i+=e);return o},Nn.compact=function(t){for(var e=-1,n=null==t?0:t.length,a=0,r=[];++e<n;){var i=t[e];i&&(r[a++]=i)}return r},Nn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=a(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return ce(Es(n)?pr(n):[n],ra(e,1))},Nn.cond=function(t){var e=null==t?0:t.length,n=Kr();return t=e?le(t,(function(t){if("function"!=typeof t[1])throw new yt(r);return[n(t[0]),t[1]]})):[],Ma((function(n){for(var a=-1;++a<e;){var r=t[a];if(ne(r[0],this,n))return ne(r[1],this,n)}}))},Nn.conforms=function(t){return function(t){var e=xo(t);return function(n){return Zn(n,t,e)}}($n(t,1))},Nn.constant=Bo,Nn.countBy=as,Nn.create=function(t,e){var n=Cn(t);return null==e?n:Hn(n,e)},Nn.curry=function t(e,n,a){var r=qr(e,8,void 0,void 0,void 0,void 0,void 0,n=a?void 0:n);return r.placeholder=t.placeholder,r},Nn.curryRight=function t(e,n,a){var r=qr(e,16,void 0,void 0,void 0,void 0,void 0,n=a?void 0:n);return r.placeholder=t.placeholder,r},Nn.debounce=vs,Nn.defaults=ho,Nn.defaultsDeep=go,Nn.defer=xs,Nn.delay=_s,Nn.difference=Ci,Nn.differenceBy=Ri,Nn.differenceWith=Ai,Nn.drop=function(t,e,n){var a=null==t?0:t.length;return a?Ba(t,(e=n||void 0===e?1:no(e))<0?0:e,a):[]},Nn.dropRight=function(t,e,n){var a=null==t?0:t.length;return a?Ba(t,0,(e=a-(e=n||void 0===e?1:no(e)))<0?0:e):[]},Nn.dropRightWhile=function(t,e){return t&&t.length?Xa(t,Kr(e,3),!0,!0):[]},Nn.dropWhile=function(t,e){return t&&t.length?Xa(t,Kr(e,3),!0):[]},Nn.fill=function(t,e,n,a){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&ii(t,e,n)&&(n=0,a=r),function(t,e,n,a){var r=t.length;for((n=no(n))<0&&(n=-n>r?0:r+n),(a=void 0===a||a>r?r:no(a))<0&&(a+=r),a=n>a?0:ao(a);n<a;)t[n++]=e;return t}(t,e,n,a)):[]},Nn.filter=function(t,e){return(Es(t)?oe:aa)(t,Kr(e,3))},Nn.flatMap=function(t,e){return ra(cs(t,e),1)},Nn.flatMapDeep=function(t,e){return ra(cs(t,e),1/0)},Nn.flatMapDepth=function(t,e,n){return n=void 0===n?1:no(n),ra(cs(t,e),n)},Nn.flatten=Li,Nn.flattenDeep=function(t){return null!=t&&t.length?ra(t,1/0):[]},Nn.flattenDepth=function(t,e){return null!=t&&t.length?ra(t,e=void 0===e?1:no(e)):[]},Nn.flip=function(t){return qr(t,512)},Nn.flow=Yo,Nn.flowRight=Ho,Nn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,a={};++e<n;){var r=t[e];a[r[0]]=r[1]}return a},Nn.functions=function(t){return null==t?[]:da(t,xo(t))},Nn.functionsIn=function(t){return null==t?[]:da(t,_o(t))},Nn.groupBy=us,Nn.initial=function(t){return null!=t&&t.length?Ba(t,0,-1):[]},Nn.intersection=Pi,Nn.intersectionBy=Mi,Nn.intersectionWith=qi,Nn.invert=mo,Nn.invertBy=yo,Nn.invokeMap=ds,Nn.iteratee=Wo,Nn.keyBy=ls,Nn.keys=xo,Nn.keysIn=_o,Nn.map=cs,Nn.mapKeys=function(t,e){var n={};return e=Kr(e,3),oa(t,(function(t,a,r){Un(n,e(t,a,r),t)})),n},Nn.mapValues=function(t,e){var n={};return e=Kr(e,3),oa(t,(function(t,a,r){Un(n,a,e(t,a,r))})),n},Nn.matches=function(t){return Ia($n(t,1))},Nn.matchesProperty=function(t,e){return Na(t,$n(e,1))},Nn.memoize=Ts,Nn.merge=To,Nn.mergeWith=Oo,Nn.method=Ko,Nn.methodOf=$o,Nn.mixin=Zo,Nn.negate=Os,Nn.nthArg=function(t){return t=no(t),Ma((function(e){return Ra(e,t)}))},Nn.omit=wo,Nn.omitBy=function(t,e){return Io(t,Os(Kr(e)))},Nn.once=function(t){return bs(2,t)},Nn.orderBy=function(t,e,n,a){return null==t?[]:(Es(e)||(e=null==e?[]:[e]),Es(n=a?void 0:n)||(n=null==n?[]:[n]),Aa(t,e,n))},Nn.over=Qo,Nn.overArgs=ws,Nn.overEvery=Xo,Nn.overSome=tu,Nn.partial=Ss,Nn.partialRight=Is,Nn.partition=fs,Nn.pick=So,Nn.pickBy=Io,Nn.property=eu,Nn.propertyOf=function(t){return function(e){return null==t?void 0:la(t,e)}},Nn.pull=Fi,Nn.pullAll=Gi,Nn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Ea(t,e,Kr(n,2)):t},Nn.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?Ea(t,e,void 0,n):t},Nn.pullAt=Vi,Nn.range=nu,Nn.rangeRight=au,Nn.rearg=Ns,Nn.reject=function(t,e){return(Es(t)?oe:aa)(t,Os(Kr(e,3)))},Nn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var a=-1,r=[],i=t.length;for(e=Kr(e,3);++a<i;){var s=t[a];e(s,a,t)&&(n.push(s),r.push(a))}return La(t,r),n},Nn.rest=function(t,e){if("function"!=typeof t)throw new yt(r);return Ma(t,e=void 0===e?e:no(e))},Nn.reverse=zi,Nn.sampleSize=function(t,e,n){return e=(n?ii(t,e,n):void 0===e)?1:no(e),(Es(t)?Fn:ja)(t,e)},Nn.set=function(t,e,n){return null==t?t:Fa(t,e,n)},Nn.setWith=function(t,e,n,a){return a="function"==typeof a?a:void 0,null==t?t:Fa(t,e,n,a)},Nn.shuffle=function(t){return(Es(t)?Gn:za)(t)},Nn.slice=function(t,e,n){var a=null==t?0:t.length;return a?(n&&"number"!=typeof n&&ii(t,e,n)?(e=0,n=a):(e=null==e?0:no(e),n=void 0===n?a:no(n)),Ba(t,e,n)):[]},Nn.sortBy=hs,Nn.sortedUniq=function(t){return t&&t.length?Wa(t):[]},Nn.sortedUniqBy=function(t,e){return t&&t.length?Wa(t,Kr(e,2)):[]},Nn.split=function(t,e,n){return n&&"number"!=typeof n&&ii(t,e,n)&&(e=n=void 0),(n=void 0===n?4294967295:n>>>0)?(t=so(t))&&("string"==typeof e||null!=e&&!Ws(e))&&!(e=$a(e))&&Me(t)?or(Be(t),0,n):t.split(e,n):[]},Nn.spread=function(t,e){if("function"!=typeof t)throw new yt(r);return e=null==e?0:rn(no(e),0),Ma((function(n){var a=n[e],r=or(n,0,e);return a&&ce(r,a),ne(t,this,r)}))},Nn.tail=function(t){var e=null==t?0:t.length;return e?Ba(t,1,e):[]},Nn.take=function(t,e,n){return t&&t.length?Ba(t,0,(e=n||void 0===e?1:no(e))<0?0:e):[]},Nn.takeRight=function(t,e,n){var a=null==t?0:t.length;return a?Ba(t,(e=a-(e=n||void 0===e?1:no(e)))<0?0:e,a):[]},Nn.takeRightWhile=function(t,e){return t&&t.length?Xa(t,Kr(e,3),!1,!0):[]},Nn.takeWhile=function(t,e){return t&&t.length?Xa(t,Kr(e,3)):[]},Nn.tap=function(t,e){return e(t),t},Nn.throttle=function(t,e,n){var a=!0,i=!0;if("function"!=typeof t)throw new yt(r);return zs(n)&&(a="leading"in n?!!n.leading:a,i="trailing"in n?!!n.trailing:i),vs(t,e,{leading:a,maxWait:e,trailing:i})},Nn.thru=es,Nn.toArray=to,Nn.toPairs=No,Nn.toPairsIn=Co,Nn.toPath=function(t){return Es(t)?le(t,Si):Zs(t)?[t]:pr(wi(so(t)))},Nn.toPlainObject=io,Nn.transform=function(t,e,n){var a=Es(t),r=a||Ms(t)||Js(t);if(e=Kr(e,4),null==n){var i=t&&t.constructor;n=r?a?new i:[]:zs(t)&&Fs(i)?Cn(Ht(t)):{}}return(r?re:oa)(t,(function(t,a,r){return e(n,t,a,r)})),n},Nn.unary=function(t){return ps(t,1)},Nn.union=Bi,Nn.unionBy=Yi,Nn.unionWith=Hi,Nn.uniq=function(t){return t&&t.length?Za(t):[]},Nn.uniqBy=function(t,e){return t&&t.length?Za(t,Kr(e,2)):[]},Nn.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Za(t,void 0,e):[]},Nn.unset=function(t,e){return null==t||Ja(t,e)},Nn.unzip=Ui,Nn.unzipWith=Wi,Nn.update=function(t,e,n){return null==t?t:Qa(t,e,rr(n))},Nn.updateWith=function(t,e,n,a){return a="function"==typeof a?a:void 0,null==t?t:Qa(t,e,rr(n),a)},Nn.values=Ro,Nn.valuesIn=function(t){return null==t?[]:Ce(t,_o(t))},Nn.without=Ki,Nn.words=Go,Nn.wrap=function(t,e){return Ss(rr(e),t)},Nn.xor=$i,Nn.xorBy=Zi,Nn.xorWith=Ji,Nn.zip=Qi,Nn.zipObject=function(t,e){return nr(t||[],e||[],zn)},Nn.zipObjectDeep=function(t,e){return nr(t||[],e||[],Fa)},Nn.zipWith=Xi,Nn.entries=No,Nn.entriesIn=Co,Nn.extend=uo,Nn.extendWith=lo,Zo(Nn,Nn),Nn.add=ou,Nn.attempt=Vo,Nn.camelCase=Ao,Nn.capitalize=ko,Nn.ceil=uu,Nn.clamp=function(t,e,n){return void 0===n&&(n=e,e=void 0),void 0!==n&&(n=(n=ro(n))==n?n:0),void 0!==e&&(e=(e=ro(e))==e?e:0),Kn(ro(t),e,n)},Nn.clone=function(t){return $n(t,4)},Nn.cloneDeep=function(t){return $n(t,5)},Nn.cloneDeepWith=function(t,e){return $n(t,5,e="function"==typeof e?e:void 0)},Nn.cloneWith=function(t,e){return $n(t,4,e="function"==typeof e?e:void 0)},Nn.conformsTo=function(t,e){return null==e||Zn(t,e,xo(e))},Nn.deburr=Eo,Nn.defaultTo=function(t,e){return null==t||t!=t?e:t},Nn.divide=du,Nn.endsWith=function(t,e,n){t=so(t),e=$a(e);var a=t.length,r=n=void 0===n?a:Kn(no(n),0,a);return(n-=e.length)>=0&&t.slice(n,r)==e},Nn.eq=Cs,Nn.escape=function(t){return(t=so(t))&&j.test(t)?t.replace(M,De):t},Nn.escapeRegExp=function(t){return(t=so(t))&&U.test(t)?t.replace(H,"\\$&"):t},Nn.every=function(t,e,n){var a=Es(t)?se:ea;return n&&ii(t,e,n)&&(e=void 0),a(t,Kr(e,3))},Nn.find=rs,Nn.findIndex=ki,Nn.findKey=function(t,e){return be(t,Kr(e,3),oa)},Nn.findLast=is,Nn.findLastIndex=Ei,Nn.findLastKey=function(t,e){return be(t,Kr(e,3),ua)},Nn.floor=lu,Nn.forEach=ss,Nn.forEachRight=os,Nn.forIn=function(t,e){return null==t?t:ia(t,Kr(e,3),_o)},Nn.forInRight=function(t,e){return null==t?t:sa(t,Kr(e,3),_o)},Nn.forOwn=function(t,e){return t&&oa(t,Kr(e,3))},Nn.forOwnRight=function(t,e){return t&&ua(t,Kr(e,3))},Nn.get=po,Nn.gt=Rs,Nn.gte=As,Nn.has=function(t,e){return null!=t&&ei(t,e,ga)},Nn.hasIn=bo,Nn.head=Di,Nn.identity=Uo,Nn.includes=function(t,e,n,a){t=Ds(t)?t:Ro(t),n=n&&!a?no(n):0;var r=t.length;return n<0&&(n=rn(r+n,0)),$s(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&ye(t,e,n)>-1},Nn.indexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:no(n);return r<0&&(r=rn(a+r,0)),ye(t,e,r)},Nn.inRange=function(t,e,n){return e=eo(e),void 0===n?(n=e,e=0):n=eo(n),function(t,e,n){return t>=sn(e,n)&&t<rn(e,n)}(t=ro(t),e,n)},Nn.invoke=vo,Nn.isArguments=ks,Nn.isArray=Es,Nn.isArrayBuffer=Ls,Nn.isArrayLike=Ds,Nn.isArrayLikeObject=Ps,Nn.isBoolean=function(t){return!0===t||!1===t||Bs(t)&&fa(t)==d},Nn.isBuffer=Ms,Nn.isDate=qs,Nn.isElement=function(t){return Bs(t)&&1===t.nodeType&&!Us(t)},Nn.isEmpty=function(t){if(null==t)return!0;if(Ds(t)&&(Es(t)||"string"==typeof t||"function"==typeof t.splice||Ms(t)||Js(t)||ks(t)))return!t.length;var e=ti(t);if(e==g||e==y)return!t.size;if(di(t))return!Oa(t).length;for(var n in t)if(Ot.call(t,n))return!1;return!0},Nn.isEqual=function(t,e){return va(t,e)},Nn.isEqualWith=function(t,e,n){var a=(n="function"==typeof n?n:void 0)?n(t,e):void 0;return void 0===a?va(t,e,void 0,n):!!a},Nn.isError=js,Nn.isFinite=function(t){return"number"==typeof t&&en(t)},Nn.isFunction=Fs,Nn.isInteger=Gs,Nn.isLength=Vs,Nn.isMap=Ys,Nn.isMatch=function(t,e){return t===e||xa(t,e,Zr(e))},Nn.isMatchWith=function(t,e,n){return n="function"==typeof n?n:void 0,xa(t,e,Zr(e),n)},Nn.isNaN=function(t){return Hs(t)&&t!=+t},Nn.isNative=function(t){if(ui(t))throw new ft("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return _a(t)},Nn.isNil=function(t){return null==t},Nn.isNull=function(t){return null===t},Nn.isNumber=Hs,Nn.isObject=zs,Nn.isObjectLike=Bs,Nn.isPlainObject=Us,Nn.isRegExp=Ws,Nn.isSafeInteger=function(t){return Gs(t)&&t>=-9007199254740991&&t<=9007199254740991},Nn.isSet=Ks,Nn.isString=$s,Nn.isSymbol=Zs,Nn.isTypedArray=Js,Nn.isUndefined=function(t){return void 0===t},Nn.isWeakMap=function(t){return Bs(t)&&ti(t)==_},Nn.isWeakSet=function(t){return Bs(t)&&"[object WeakSet]"==fa(t)},Nn.join=function(t,e){return null==t?"":nn.call(t,e)},Nn.kebabCase=Lo,Nn.last=ji,Nn.lastIndexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=a;return void 0!==n&&(r=(r=no(n))<0?rn(a+r,0):sn(r,a-1)),e==e?function(t,e,n){for(var a=n+1;a--;)if(t[a]===e)return a;return a}(t,e,r):me(t,xe,r,!0)},Nn.lowerCase=Do,Nn.lowerFirst=Po,Nn.lt=Qs,Nn.lte=Xs,Nn.max=function(t){return t&&t.length?na(t,Uo,ha):void 0},Nn.maxBy=function(t,e){return t&&t.length?na(t,Kr(e,2),ha):void 0},Nn.mean=function(t){return _e(t,Uo)},Nn.meanBy=function(t,e){return _e(t,Kr(e,2))},Nn.min=function(t){return t&&t.length?na(t,Uo,wa):void 0},Nn.minBy=function(t,e){return t&&t.length?na(t,Kr(e,2),wa):void 0},Nn.stubArray=ru,Nn.stubFalse=iu,Nn.stubObject=function(){return{}},Nn.stubString=function(){return""},Nn.stubTrue=function(){return!0},Nn.multiply=cu,Nn.nth=function(t,e){return t&&t.length?Ra(t,no(e)):void 0},Nn.noConflict=function(){return Yt._===this&&(Yt._=Ct),this},Nn.noop=Jo,Nn.now=gs,Nn.pad=function(t,e,n){t=so(t);var a=(e=no(e))?ze(t):0;if(!e||a>=e)return t;var r=(e-a)/2;return Ar(Qe(r),n)+t+Ar(Je(r),n)},Nn.padEnd=function(t,e,n){t=so(t);var a=(e=no(e))?ze(t):0;return e&&a<e?t+Ar(e-a,n):t},Nn.padStart=function(t,e,n){t=so(t);var a=(e=no(e))?ze(t):0;return e&&a<e?Ar(e-a,n)+t:t},Nn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),un(so(t).replace(K,""),e||0)},Nn.random=function(t,e,n){if(n&&"boolean"!=typeof n&&ii(t,e,n)&&(e=n=void 0),void 0===n&&("boolean"==typeof e?(n=e,e=void 0):"boolean"==typeof t&&(n=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=eo(t),void 0===e?(e=t,t=0):e=eo(e)),t>e){var a=t;t=e,e=a}if(n||t%1||e%1){var r=dn();return sn(t+r*(e-t+Gt("1e-"+((r+"").length-1))),e)}return Da(t,e)},Nn.reduce=function(t,e,n){var a=Es(t)?fe:we,r=arguments.length<3;return a(t,Kr(e,4),n,r,Xn)},Nn.reduceRight=function(t,e,n){var a=Es(t)?he:we,r=arguments.length<3;return a(t,Kr(e,4),n,r,ta)},Nn.repeat=function(t,e,n){return e=(n?ii(t,e,n):void 0===e)?1:no(e),Pa(so(t),e)},Nn.replace=function(){var t=arguments,e=so(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Nn.result=function(t,e,n){var a=-1,r=(e=ir(e,t)).length;for(r||(r=1,t=void 0);++a<r;){var i=null==t?void 0:t[Si(e[a])];void 0===i&&(a=r,i=n),t=Fs(i)?i.call(t):i}return t},Nn.round=fu,Nn.runInContext=t,Nn.sample=function(t){return(Es(t)?jn:qa)(t)},Nn.size=function(t){if(null==t)return 0;if(Ds(t))return $s(t)?ze(t):t.length;var e=ti(t);return e==g||e==y?t.size:Oa(t).length},Nn.snakeCase=Mo,Nn.some=function(t,e,n){var a=Es(t)?ge:Ya;return n&&ii(t,e,n)&&(e=void 0),a(t,Kr(e,3))},Nn.sortedIndex=function(t,e){return Ha(t,e)},Nn.sortedIndexBy=function(t,e,n){return Ua(t,e,Kr(n,2))},Nn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var a=Ha(t,e);if(a<n&&Cs(t[a],e))return a}return-1},Nn.sortedLastIndex=function(t,e){return Ha(t,e,!0)},Nn.sortedLastIndexBy=function(t,e,n){return Ua(t,e,Kr(n,2),!0)},Nn.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=Ha(t,e,!0)-1;if(Cs(t[n],e))return n}return-1},Nn.startCase=qo,Nn.startsWith=function(t,e,n){return t=so(t),n=null==n?0:Kn(no(n),0,t.length),e=$a(e),t.slice(n,n+e.length)==e},Nn.subtract=hu,Nn.sum=function(t){return t&&t.length?Se(t,Uo):0},Nn.sumBy=function(t,e){return t&&t.length?Se(t,Kr(e,2)):0},Nn.template=function(t,e,n){var a=Nn.templateSettings;n&&ii(t,e,n)&&(e=void 0),t=so(t),e=lo({},e,a,jr);var r,i,s=lo({},e.imports,a.imports,jr),o=xo(s),u=Ce(s,o),d=0,l=e.interpolate||dt,c="__p += '",f=bt((e.escape||dt).source+"|"+l.source+"|"+(l===V?et:dt).source+"|"+(e.evaluate||dt).source+"|$","g"),h="//# sourceURL="+(Ot.call(e,"sourceURL")?(e.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++Mt+"]")+"\n";t.replace(f,(function(e,n,a,s,o,u){return a||(a=s),c+=t.slice(d,u).replace(lt,Pe),n&&(r=!0,c+="' +\n__e("+n+") +\n'"),o&&(i=!0,c+="';\n"+o+";\n__p += '"),a&&(c+="' +\n((__t = ("+a+")) == null ? '' : __t) +\n'"),d=u+e.length,e})),c+="';\n";var g=Ot.call(e,"variable")&&e.variable;g||(c="with (obj) {\n"+c+"\n}\n"),c=(i?c.replace(E,""):c).replace(L,"$1").replace(D,"$1;"),c="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+c+"return __p\n}";var p=Vo((function(){return ht(o,h+"return "+c).apply(void 0,u)}));if(p.source=c,js(p))throw p;return p},Nn.times=function(t,e){if((t=no(t))<1||t>9007199254740991)return[];var n=4294967295,a=sn(t,4294967295);t-=4294967295;for(var r=Ie(a,e=Kr(e));++n<t;)e(n);return r},Nn.toFinite=eo,Nn.toInteger=no,Nn.toLength=ao,Nn.toLower=function(t){return so(t).toLowerCase()},Nn.toNumber=ro,Nn.toSafeInteger=function(t){return t?Kn(no(t),-9007199254740991,9007199254740991):0===t?t:0},Nn.toString=so,Nn.toUpper=function(t){return so(t).toUpperCase()},Nn.trim=function(t,e,n){if((t=so(t))&&(n||void 0===e))return t.replace(W,"");if(!t||!(e=$a(e)))return t;var a=Be(t),r=Be(e);return or(a,Ae(a,r),ke(a,r)+1).join("")},Nn.trimEnd=function(t,e,n){if((t=so(t))&&(n||void 0===e))return t.replace($,"");if(!t||!(e=$a(e)))return t;var a=Be(t);return or(a,0,ke(a,Be(e))+1).join("")},Nn.trimStart=function(t,e,n){if((t=so(t))&&(n||void 0===e))return t.replace(K,"");if(!t||!(e=$a(e)))return t;var a=Be(t);return or(a,Ae(a,Be(e))).join("")},Nn.truncate=function(t,e){var n=30,a="...";if(zs(e)){var r="separator"in e?e.separator:r;n="length"in e?no(e.length):n,a="omission"in e?$a(e.omission):a}var i=(t=so(t)).length;if(Me(t)){var s=Be(t);i=s.length}if(n>=i)return t;var o=n-ze(a);if(o<1)return a;var u=s?or(s,0,o).join(""):t.slice(0,o);if(void 0===r)return u+a;if(s&&(o+=u.length-o),Ws(r)){if(t.slice(o).search(r)){var d,l=u;for(r.global||(r=bt(r.source,so(nt.exec(r))+"g")),r.lastIndex=0;d=r.exec(l);)var c=d.index;u=u.slice(0,void 0===c?o:c)}}else if(t.indexOf($a(r),o)!=o){var f=u.lastIndexOf(r);f>-1&&(u=u.slice(0,f))}return u+a},Nn.unescape=function(t){return(t=so(t))&&q.test(t)?t.replace(P,Ye):t},Nn.uniqueId=function(t){var e=++wt;return so(t)+e},Nn.upperCase=jo,Nn.upperFirst=Fo,Nn.each=ss,Nn.eachRight=os,Nn.first=Di,Zo(Nn,(su={},oa(Nn,(function(t,e){Ot.call(Nn.prototype,e)||(su[e]=t)})),su),{chain:!1}),Nn.VERSION="4.17.15",re(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Nn[t].placeholder=Nn})),re(["drop","take"],(function(t,e){kn.prototype[t]=function(n){n=void 0===n?1:rn(no(n),0);var a=this.__filtered__&&!e?new kn(this):this.clone();return a.__filtered__?a.__takeCount__=sn(n,a.__takeCount__):a.__views__.push({size:sn(n,4294967295),type:t+(a.__dir__<0?"Right":"")}),a},kn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),re(["filter","map","takeWhile"],(function(t,e){var n=e+1,a=1==n||3==n;kn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Kr(t,3),type:n}),e.__filtered__=e.__filtered__||a,e}})),re(["head","last"],(function(t,e){var n="take"+(e?"Right":"");kn.prototype[t]=function(){return this[n](1).value()[0]}})),re(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");kn.prototype[t]=function(){return this.__filtered__?new kn(this):this[n](1)}})),kn.prototype.compact=function(){return this.filter(Uo)},kn.prototype.find=function(t){return this.filter(t).head()},kn.prototype.findLast=function(t){return this.reverse().find(t)},kn.prototype.invokeMap=Ma((function(t,e){return"function"==typeof t?new kn(this):this.map((function(n){return ma(n,t,e)}))})),kn.prototype.reject=function(t){return this.filter(Os(Kr(t)))},kn.prototype.slice=function(t,e){t=no(t);var n=this;return n.__filtered__&&(t>0||e<0)?new kn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),void 0!==e&&(n=(e=no(e))<0?n.dropRight(-e):n.take(e-t)),n)},kn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},kn.prototype.toArray=function(){return this.take(4294967295)},oa(kn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),a=/^(?:head|last)$/.test(e),r=Nn[a?"take"+("last"==e?"Right":""):e],i=a||/^find/.test(e);r&&(Nn.prototype[e]=function(){var e=this.__wrapped__,s=a?[1]:arguments,o=e instanceof kn,u=s[0],d=o||Es(e),l=function(t){var e=r.apply(Nn,ce([t],s));return a&&c?e[0]:e};d&&n&&"function"==typeof u&&1!=u.length&&(o=d=!1);var c=this.__chain__,f=!!this.__actions__.length,h=i&&!c,g=o&&!f;if(!i&&d){e=g?e:new kn(this);var p=t.apply(e,s);return p.__actions__.push({func:es,args:[l],thisArg:void 0}),new An(p,c)}return h&&g?t.apply(this,s):(p=this.thru(l),h?a?p.value()[0]:p.value():p)})})),re(["pop","push","shift","sort","splice","unshift"],(function(t){var e=vt[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",a=/^(?:pop|shift)$/.test(t);Nn.prototype[t]=function(){var t=arguments;if(a&&!this.__chain__){var r=this.value();return e.apply(Es(r)?r:[],t)}return this[n]((function(n){return e.apply(Es(n)?n:[],t)}))}})),oa(kn.prototype,(function(t,e){var n=Nn[e];if(n){var a=n.name+"";Ot.call(yn,a)||(yn[a]=[]),yn[a].push({name:e,func:n})}})),yn[Ir(void 0,2).name]=[{name:"wrapper",func:void 0}],kn.prototype.clone=function(){var t=new kn(this.__wrapped__);return t.__actions__=pr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=pr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=pr(this.__views__),t},kn.prototype.reverse=function(){if(this.__filtered__){var t=new kn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},kn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Es(t),a=e<0,r=n?t.length:0,i=function(t,e,n){for(var a=-1,r=n.length;++a<r;){var i=n[a],s=i.size;switch(i.type){case"drop":t+=s;break;case"dropRight":e-=s;break;case"take":e=sn(e,t+s);break;case"takeRight":t=rn(t,e-s)}}return{start:t,end:e}}(0,r,this.__views__),s=i.start,o=i.end,u=o-s,d=a?o:s-1,l=this.__iteratees__,c=l.length,f=0,h=sn(u,this.__takeCount__);if(!n||!a&&r==u&&h==u)return tr(t,this.__actions__);var g=[];t:for(;u--&&f<h;){for(var p=-1,b=t[d+=e];++p<c;){var m=l[p],y=m.type,v=(0,m.iteratee)(b);if(2==y)b=v;else if(!v){if(1==y)continue t;break t}}g[f++]=b}return g},Nn.prototype.at=ns,Nn.prototype.chain=function(){return ts(this)},Nn.prototype.commit=function(){return new An(this.value(),this.__chain__)},Nn.prototype.next=function(){void 0===this.__values__&&(this.__values__=to(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Nn.prototype.plant=function(t){for(var e,n=this;n instanceof Rn;){var a=Ni(n);a.__index__=0,a.__values__=void 0,e?r.__wrapped__=a:e=a;var r=a;n=n.__wrapped__}return r.__wrapped__=t,e},Nn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof kn){var e=t;return this.__actions__.length&&(e=new kn(this)),(e=e.reverse()).__actions__.push({func:es,args:[zi],thisArg:void 0}),new An(e,this.__chain__)}return this.thru(zi)},Nn.prototype.toJSON=Nn.prototype.valueOf=Nn.prototype.value=function(){return tr(this.__wrapped__,this.__actions__)},Nn.prototype.first=Nn.prototype.head,Oe&&(Nn.prototype[Oe]=function(){return this}),Nn}();Yt._=He,void 0===(a=(function(){return He}).call(e,n,e,t))||(t.exports=a)}).call(this)}).call(this,n("YuTi")(t))},MJIl:function(t,e,n){var a=n("QoRX"),r=n("ut/Y"),i=n("Nh2a"),s=n("Z0cm"),o=n("mv/X");t.exports=function(t,e,n){var u=s(t)?a:i;return n&&o(t,e,n)&&(e=void 0),u(t,r(e,3))}},MMmD:function(t,e,n){var a=n("lSCD"),r=n("shjB");t.exports=function(t){return null!=t&&r(t.length)&&!a(t)}},"MO+k":function(t,e,n){t.exports=function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:n,rgb2hsv:a,rgb2hwb:i,rgb2cmyk:s,rgb2keyword:o,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return v(d(t))},hsl2rgb:l,hsl2hsv:function(t){var e=t[1]/100,n=t[2]/100;return 0===n?[0,0,0]:[t[0],2*(e*=(n*=2)<=1?n:2-n)/(n+e)*100,(n+e)/2*100]},hsl2hwb:function(t){return i(l(t))},hsl2cmyk:function(t){return s(l(t))},hsl2keyword:function(t){return o(l(t))},hsv2rgb:c,hsv2hsl:function(t){var e,n,a=t[1]/100,r=t[2]/100;return e=a*r,[t[0],100*(e=(e/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return i(c(t))},hsv2cmyk:function(t){return s(c(t))},hsv2keyword:function(t){return o(c(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return s(f(t))},hwb2keyword:function(t){return o(f(t))},cmyk2rgb:h,cmyk2hsl:function(t){return n(h(t))},cmyk2hsv:function(t){return a(h(t))},cmyk2hwb:function(t){return i(h(t))},cmyk2keyword:function(t){return o(h(t))},keyword2rgb:T,keyword2hsl:function(t){return n(T(t))},keyword2hsv:function(t){return a(T(t))},keyword2hwb:function(t){return i(T(t))},keyword2cmyk:function(t){return s(T(t))},keyword2lab:function(t){return d(T(t))},keyword2xyz:function(t){return u(T(t))},xyz2rgb:p,xyz2lab:m,xyz2lch:function(t){return v(m(t))},lab2xyz:y,lab2rgb:x,lab2lch:v,lch2lab:_,lch2xyz:function(t){return y(_(t))},lch2rgb:function(t){return x(_(t))}};function n(t){var e,n,a=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.min(a,r,i),o=Math.max(a,r,i),u=o-s;return o==s?e=0:a==o?e=(r-i)/u:r==o?e=2+(i-a)/u:i==o&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),n=(s+o)/2,[e,100*(o==s?0:n<=.5?u/(o+s):u/(2-o-s)),100*n]}function a(t){var e,n,a=t[0],r=t[1],i=t[2],s=Math.min(a,r,i),o=Math.max(a,r,i),u=o-s;return n=0==o?0:u/o*1e3/10,o==s?e=0:a==o?e=(r-i)/u:r==o?e=2+(i-a)/u:i==o&&(e=4+(a-r)/u),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,o/255*1e3/10]}function i(t){var e=t[0],a=t[1],r=t[2];return[n(t)[0],1/255*Math.min(e,Math.min(a,r))*100,100*(r=1-1/255*Math.max(e,Math.max(a,r)))]}function s(t){var e,n=t[0]/255,a=t[1]/255,r=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-a,1-r)))/(1-e)||0),100*((1-a-e)/(1-e)||0),100*((1-r-e)/(1-e)||0),100*e]}function o(t){return w[JSON.stringify(t)]}function u(t){var e=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)),100*(.2126*e+.7152*n+.0722*a),100*(.0193*e+.1192*n+.9505*a)]}function d(t){var e=u(t),n=e[0],a=e[1],r=e[2];return a/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(n-a),200*(a-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]}function l(t){var e,n,a,r,i,s=t[0]/360,o=t[1]/100,u=t[2]/100;if(0==o)return[i=255*u,i,i];e=2*u-(n=u<.5?u*(1+o):u+o-u*o),r=[0,0,0];for(var d=0;d<3;d++)(a=s+1/3*-(d-1))<0&&a++,a>1&&a--,r[d]=255*(i=6*a<1?e+6*(n-e)*a:2*a<1?n:3*a<2?e+(n-e)*(2/3-a)*6:e);return r}function c(t){var e=t[0]/60,n=t[1]/100,a=t[2]/100,r=Math.floor(e)%6,i=e-Math.floor(e),s=255*a*(1-n),o=255*a*(1-n*i),u=255*a*(1-n*(1-i));switch(a*=255,r){case 0:return[a,u,s];case 1:return[o,a,s];case 2:return[s,a,u];case 3:return[s,o,a];case 4:return[u,s,a];case 5:return[a,s,o]}}function f(t){var e,n,a,i,s=t[0]/360,o=t[1]/100,u=t[2]/100,d=o+u;switch(d>1&&(o/=d,u/=d),a=6*s-(e=Math.floor(6*s)),0!=(1&e)&&(a=1-a),i=o+a*((n=1-u)-o),e){default:case 6:case 0:r=n,g=i,b=o;break;case 1:r=i,g=n,b=o;break;case 2:r=o,g=n,b=i;break;case 3:r=o,g=i,b=n;break;case 4:r=i,g=o,b=n;break;case 5:r=n,g=o,b=i}return[255*r,255*g,255*b]}function h(t){var e=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,t[0]/100*(1-a)+a)),255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function p(t){var e,n,a,r=t[0]/100,i=t[1]/100,s=t[2]/100;return n=-.9689*r+1.8758*i+.0415*s,a=.0557*r+-.204*i+1.057*s,e=(e=3.2406*r+-1.5372*i+-.4986*s)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(a=Math.min(Math.max(0,a),1))]}function m(t){var e=t[0],n=t[1],a=t[2];return n/=100,a/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function y(t){var e,n,a,r,i=t[0],s=t[1],o=t[2];return i<=8?r=(n=100*i/903.3)/100*7.787+16/116:(n=100*Math.pow((i+16)/116,3),r=Math.pow(n/100,1/3)),[e=e/95.047<=.008856?e=95.047*(s/500+r-16/116)/7.787:95.047*Math.pow(s/500+r,3),n,a=a/108.883<=.008859?a=108.883*(r-o/200-16/116)/7.787:108.883*Math.pow(r-o/200,3)]}function v(t){var e,n=t[0],a=t[1],r=t[2];return(e=360*Math.atan2(r,a)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(a*a+r*r),e]}function x(t){return p(y(t))}function _(t){var e,n=t[1];return e=t[2]/360*2*Math.PI,[t[0],n*Math.cos(e),n*Math.sin(e)]}function T(t){return O[t]}var O={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]},w={};for(var S in O)w[JSON.stringify(O[S])]=S;var I=function(){return new k};for(var N in e){I[N+"Raw"]=function(t){return function(n){return"number"==typeof n&&(n=Array.prototype.slice.call(arguments)),e[t](n)}}(N);var C=/(\w+)2(\w+)/.exec(N),R=C[1],A=C[2];(I[R]=I[R]||{})[A]=I[N]=function(t){return function(n){"number"==typeof n&&(n=Array.prototype.slice.call(arguments));var a=e[t](n);if("string"==typeof a||void 0===a)return a;for(var r=0;r<a.length;r++)a[r]=Math.round(a[r]);return a}}(N)}var k=function(){this.convs={}};k.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},k.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},k.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space;e=I[n][t](this.convs[n]),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach((function(t){k.prototype[t]=function(e){return this.routeSpace(t,arguments)}}));var E=I,L={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]},D={getRgba:P,getHsla:M,getRgb:function(t){var e=P(t);return e&&e.slice(0,3)},getHsl:function(t){var e=M(t);return e&&e.slice(0,3)},getHwb:q,getAlpha:function(t){var e=P(t);return e?e[3]:(e=M(t))?e[3]:(e=q(t))?e[3]:void 0},hexString:function(t,e){return e=void 0!==e&&3===t.length?e:t[3],"#"+z(t[0])+z(t[1])+z(t[2])+(e>=0&&e<1?z(Math.round(255*e)):"")},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?j(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:j,percentString:function(t,e){return e<1||t[3]&&t[3]<1?F(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:F,hslString:function(t,e){return e<1||t[3]&&t[3]<1?G(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:G,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return B[t.slice(0,3)]}};function P(t){if(t){var e=[0,0,0],n=1,a=t.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(a){r=(a=a[1])[3];for(var i=0;i<e.length;i++)e[i]=parseInt(a[i]+a[i],16);r&&(n=Math.round(parseInt(r+r,16)/255*100)/100)}else if(a=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(r=a[2],a=a[1],i=0;i<e.length;i++)e[i]=parseInt(a.slice(2*i,2*i+2),16);r&&(n=Math.round(parseInt(r,16)/255*100)/100)}else if(a=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(i=0;i<e.length;i++)e[i]=parseInt(a[i+1]);n=parseFloat(a[4])}else if(a=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(i=0;i<e.length;i++)e[i]=Math.round(2.55*parseFloat(a[i+1]));n=parseFloat(a[4])}else if(a=t.match(/(\w+)/)){if("transparent"==a[1])return[0,0,0,0];if(!(e=L[a[1]]))return}for(i=0;i<e.length;i++)e[i]=V(e[i],0,255);return n=n||0==n?V(n,0,1):1,e[3]=n,e}}function M(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[V(parseInt(e[1]),0,360),V(parseFloat(e[2]),0,100),V(parseFloat(e[3]),0,100),V(isNaN(n)?1:n,0,1)]}}}function q(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[V(parseInt(e[1]),0,360),V(parseFloat(e[2]),0,100),V(parseFloat(e[3]),0,100),V(isNaN(n)?1:n,0,1)]}}}function j(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function F(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function G(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function V(t,e,n){return Math.min(Math.max(e,t),n)}function z(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var B={};for(var Y in L)B[L[Y]]=Y;var H=function(t){return t instanceof H?t:this instanceof H?(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 t?(e=D.getRgba(t))?this.setValues("rgb",e):(e=D.getHsla(t))?this.setValues("hsl",e):(e=D.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new H(t);var e};H.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 t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return D.hexString(this.values.rgb)},rgbString:function(){return D.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return D.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return D.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return D.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return D.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return D.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return D.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var a=t[n]/255;e[n]=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,a=void 0===e?.5:e,r=2*a-1,i=this.alpha()-n.alpha(),s=((r*i==-1?r:(r+i)/(1+r*i))+1)/2,o=1-s;return this.rgb(s*this.red()+o*n.red(),s*this.green()+o*n.green(),s*this.blue()+o*n.blue()).alpha(this.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new H,a=this.values,r=n.values;for(var i in a)a.hasOwnProperty(i)&&("[object Array]"===(e={}.toString.call(t=a[i]))?r[i]=t.slice(0):"[object Number]"===e?r[i]=t:console.error("unexpected color value:",t));return n}},H.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},H.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},H.prototype.getValues=function(t){for(var e=this.values,n={},a=0;a<t.length;a++)n[t.charAt(a)]=e[t][a];return 1!==e.alpha&&(n.a=e.alpha),n},H.prototype.setValues=function(t,e){var n,a,r=this.values,i=this.spaces,s=this.maxes,o=1;if(this.valid=!0,"alpha"===t)o=e;else if(e.length)r[t]=e.slice(0,t.length),o=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)r[t][n]=e[t.charAt(n)];o=e.a}else if(void 0!==e[i[t][0]]){var u=i[t];for(n=0;n<t.length;n++)r[t][n]=e[u[n]];o=e.alpha}if(r.alpha=Math.max(0,Math.min(1,void 0===o?r.alpha:o)),"alpha"===t)return!1;for(n=0;n<t.length;n++)a=Math.max(0,Math.min(s[t][n],r[t][n])),r[t][n]=Math.round(a);for(var d in i)d!==t&&(r[d]=E[t][d](r[t]));return!0},H.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},H.prototype.setChannel=function(t,e,n){var a=this.values[t];return void 0===n?a[e]:n===a[e]?this:(a[e]=n,this.setValues(t,a),this)},"undefined"!=typeof window&&(window.Color=H);var U,W=H,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return K.valueOrDefault(K.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var r,i,s;if(K.isArray(t))if(i=t.length,a)for(r=i-1;r>=0;r--)e.call(n,t[r],r);else for(r=0;r<i;r++)e.call(n,t[r],r);else if(K.isObject(t))for(i=(s=Object.keys(t)).length,r=0;r<i;r++)e.call(n,t[s[r]],s[r])},arrayEquals:function(t,e){var n,a,r,i;if(!t||!e||t.length!==e.length)return!1;for(n=0,a=t.length;n<a;++n)if(i=e[n],(r=t[n])instanceof Array&&i instanceof Array){if(!K.arrayEquals(r,i))return!1}else if(r!==i)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},n=Object.keys(t),a=n.length,r=0;r<a;++r)e[n[r]]=K.clone(t[n[r]]);return e}return t},_merger:function(t,e,n,a){var r=e[t],i=n[t];K.isObject(r)&&K.isObject(i)?K.merge(r,i,a):e[t]=K.clone(i)},_mergerIf:function(t,e,n){var a=e[t],r=n[t];K.isObject(a)&&K.isObject(r)?K.mergeIf(a,r):e.hasOwnProperty(t)||(e[t]=K.clone(r))},merge:function(t,e,n){var a,r,i,s,o,u=K.isArray(e)?e:[e],d=u.length;if(!K.isObject(t))return t;for(a=(n=n||{}).merger||K._merger,r=0;r<d;++r)if(K.isObject(e=u[r]))for(o=0,s=(i=Object.keys(e)).length;o<s;++o)a(i[o],t,e,n);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,n){t[n]=e},n=1,a=arguments.length;n<a;++n)K.each(arguments[n],e);return t},inherits:function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},a=function(){this.constructor=n};return a.prototype=e.prototype,n.prototype=new a,n.extend=K.inherits,t&&K.extend(n.prototype,t),n.__super__=e.prototype,n}},$=K;K.callCallback=K.callback,K.indexOf=function(t,e,n){return Array.prototype.indexOf.call(t,e,n)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),-a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),a*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),t<1?a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:a*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},J={effects:Z};$.easingEffects=Z;var Q=Math.PI,X=Q/180,tt=2*Q,et=Q/2,nt=Q/4,at=2*Q/3,rt={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,a,r,i){if(i){var s=Math.min(i,r/2,a/2),o=e+s,u=n+s,d=e+a-s,l=n+r-s;t.moveTo(e,u),o<d&&u<l?(t.arc(o,u,s,-Q,-et),t.arc(d,u,s,-et,0),t.arc(d,l,s,0,et),t.arc(o,l,s,et,Q)):o<d?(t.moveTo(o,n),t.arc(d,u,s,-et,et),t.arc(o,u,s,et,Q+et)):u<l?(t.arc(o,u,s,-Q,0),t.arc(o,l,s,0,Q)):t.arc(o,u,s,-Q,Q),t.closePath(),t.moveTo(e,n)}else t.rect(e,n,a,r)},drawPoint:function(t,e,n,a,r,i){var s,o,u,d,l,c=(i||0)*X;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(s=e.toString())&&"[object HTMLCanvasElement]"!==s){if(!(isNaN(n)||n<=0)){switch(t.beginPath(),e){default:t.arc(a,r,n,0,tt),t.closePath();break;case"triangle":t.moveTo(a+Math.sin(c)*n,r-Math.cos(c)*n),c+=at,t.lineTo(a+Math.sin(c)*n,r-Math.cos(c)*n),c+=at,t.lineTo(a+Math.sin(c)*n,r-Math.cos(c)*n),t.closePath();break;case"rectRounded":d=n-(l=.516*n),o=Math.cos(c+nt)*d,u=Math.sin(c+nt)*d,t.arc(a-o,r-u,l,c-Q,c-et),t.arc(a+u,r-o,l,c-et,c),t.arc(a+o,r+u,l,c,c+et),t.arc(a-u,r+o,l,c+et,c+Q),t.closePath();break;case"rect":if(!i){d=Math.SQRT1_2*n,t.rect(a-d,r-d,2*d,2*d);break}c+=nt;case"rectRot":o=Math.cos(c)*n,u=Math.sin(c)*n,t.moveTo(a-o,r-u),t.lineTo(a+u,r-o),t.lineTo(a+o,r+u),t.lineTo(a-u,r+o),t.closePath();break;case"crossRot":c+=nt;case"cross":o=Math.cos(c)*n,u=Math.sin(c)*n,t.moveTo(a-o,r-u),t.lineTo(a+o,r+u),t.moveTo(a+u,r-o),t.lineTo(a-u,r+o);break;case"star":o=Math.cos(c)*n,u=Math.sin(c)*n,t.moveTo(a-o,r-u),t.lineTo(a+o,r+u),t.moveTo(a+u,r-o),t.lineTo(a-u,r+o),c+=nt,o=Math.cos(c)*n,u=Math.sin(c)*n,t.moveTo(a-o,r-u),t.lineTo(a+o,r+u),t.moveTo(a+u,r-o),t.lineTo(a-u,r+o);break;case"line":o=Math.cos(c)*n,u=Math.sin(c)*n,t.moveTo(a-o,r-u),t.lineTo(a+o,r+u);break;case"dash":t.moveTo(a,r),t.lineTo(a+Math.cos(c)*n,r+Math.sin(c)*n)}t.fill(),t.stroke()}}else t.drawImage(e,a-e.width/2,r-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,a){var r=n.steppedLine;if(r){if("middle"===r){var i=(e.x+n.x)/2;t.lineTo(i,a?n.y:e.y),t.lineTo(i,a?e.y:n.y)}else"after"===r&&!a||"after"!==r&&a?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y);t.lineTo(n.x,n.y)}else n.tension?t.bezierCurveTo(a?e.controlPointPreviousX:e.controlPointNextX,a?e.controlPointPreviousY:e.controlPointNextY,a?n.controlPointNextX:n.controlPointPreviousX,a?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}},it=rt;$.clear=rt.clear,$.drawRoundedRectangle=function(t){t.beginPath(),rt.roundedRect.apply(rt,arguments)};var st={_set:function(t,e){return $.merge(this[t]||(this[t]={}),e)}};st._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var ot=st,ut=$.valueOrDefault,dt={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,r;return $.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,r=+t.left||0):e=n=a=r=+t||0,{top:e,right:n,bottom:a,left:r,height:e+a,width:r+n}},_parseFont:function(t){var e=ot.global,n=ut(t.fontSize,e.defaultFontSize),a={family:ut(t.fontFamily,e.defaultFontFamily),lineHeight:$.options.toLineHeight(ut(t.lineHeight,e.defaultLineHeight),n),size:n,style:ut(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return a.string=function(t){return!t||$.isNullOrUndef(t.size)||$.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(a),a},resolve:function(t,e,n){var a,r,i;for(a=0,r=t.length;a<r;++a)if(void 0!==(i=t[a])&&(void 0!==e&&"function"==typeof i&&(i=i(e)),void 0!==n&&$.isArray(i)&&(i=i[n]),void 0!==i))return i}},lt=$,ct=it,ft=dt;lt.easing=J,lt.canvas=ct,lt.options=ft;var ht=function(t){lt.extend(this,t),this.initialize.apply(this,arguments)};lt.extend(ht.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=lt.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,a=e._start,r=e._view;return n&&1!==t?(r||(r=e._view={}),a||(a=e._start={}),function(t,e,n,a){var r,i,s,o,u,d,l,c,f,h=Object.keys(n);for(r=0,i=h.length;r<i;++r)if(d=n[s=h[r]],e.hasOwnProperty(s)||(e[s]=d),(o=e[s])!==d&&"_"!==s[0]){if(t.hasOwnProperty(s)||(t[s]=o),(l=typeof d)==typeof(u=t[s]))if("string"===l){if((c=W(u)).valid&&(f=W(d)).valid){e[s]=f.mix(c,a).rgbString();continue}}else if(lt.isFinite(u)&&lt.isFinite(d)){e[s]=u+(d-u)*a;continue}e[s]=d}}(a,r,n,t),e):(e._view=n,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return lt.isNumber(this._model.x)&&lt.isNumber(this._model.y)}}),ht.extend=lt.inherits;var gt=ht,pt=gt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),bt=pt;Object.defineProperty(pt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(pt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),ot._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:lt.noop,onComplete:lt.noop}});var mt={animations:[],request:null,addAnimation:function(t,e,n,a){var r,i,s=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=n,a||(t.animating=!0),r=0,i=s.length;r<i;++r)if(s[r].chart===t)return void(s[r]=e);s.push(e),1===s.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=lt.findIndex(this.animations,(function(e){return e.chart===t}));-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=lt.requestAnimFrame.call(window,(function(){t.request=null,t.startDigest()})))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,a,r=this.animations,i=0;i<r.length;)e=(t=r[i]).chart,n=t.numSteps,a=Math.floor((Date.now()-t.startTime)/t.duration*n)+1,t.currentStep=Math.min(a,n),lt.callback(t.render,[e,t],e),lt.callback(t.onAnimationProgress,[t],e),t.currentStep>=n?(lt.callback(t.onAnimationComplete,[t],e),e.animating=!1,r.splice(i,1)):++i}},yt=lt.options.resolve,vt=["push","pop","shift","splice","unshift"];function xt(t,e){var n=t._chartjs;if(n){var a=n.listeners,r=a.indexOf(e);-1!==r&&a.splice(r,1),a.length>0||(vt.forEach((function(e){delete t[e]})),delete t._chartjs)}}var _t=function(t,e){this.initialize(t,e)};lt.extend(_t.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.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(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&xt(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),a=this.getDataset().data||[],r=n.data;for(t=0,e=a.length;t<e;++t)r[t]=r[t]||this.createMetaData(t);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,n=this,a=n.getDataset(),r=a.data||(a.data=[]);n._data!==r&&(n._data&&xt(n._data,n),r&&Object.isExtensible(r)&&(e=n,(t=r)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),vt.forEach((function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),r=a.apply(this,e);return lt.each(t._chartjs.listeners,(function(t){"function"==typeof t[n]&&t[n].apply(t,e)})),r}})})))),n._data=r),n.resyncElements()},update:lt.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],a=n.length,r=0;r<a;++r)n[r].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,a=0;for(t.dataset&&t.dataset.draw();a<n;++a)e[a].draw()},removeHoverStyle:function(t){lt.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},r=t._model,i=lt.getHoverColor;t.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=yt([a.hoverBackgroundColor,e.hoverBackgroundColor,i(r.backgroundColor)],void 0,n),r.borderColor=yt([a.hoverBorderColor,e.hoverBorderColor,i(r.borderColor)],void 0,n),r.borderWidth=yt([a.hoverBorderWidth,e.hoverBorderWidth,r.borderWidth],void 0,n)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,n=t.data.length,a=e.length;a<n?t.data.splice(a,n-a):a>n&&this.insertElements(n,a-n)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),_t.extend=lt.inherits;var Tt=_t;ot._set("global",{elements:{arc:{backgroundColor:ot.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var Ot=gt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var n=this._view;if(n){for(var a=lt.getAngleFromPoint(n,{x:t,y:e}),r=a.angle,i=a.distance,s=n.startAngle,o=n.endAngle;o<s;)o+=2*Math.PI;for(;r>o;)r-=2*Math.PI;for(;r<s;)r+=2*Math.PI;return r>=s&&r<=o&&i>=n.innerRadius&&i<=n.outerRadius}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,a=n.startAngle,r=n.endAngle,i="inner"===n.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(n.x,n.y,Math.max(n.outerRadius-i,0),a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.fillStyle=n.backgroundColor,e.fill(),n.borderWidth&&("inner"===n.borderAlign?(e.beginPath(),e.arc(n.x,n.y,n.outerRadius,a-(t=i/n.outerRadius),r+t),n.innerRadius>i?e.arc(n.x,n.y,n.innerRadius-i,r+(t=i/n.innerRadius),a-t,!0):e.arc(n.x,n.y,i,r+Math.PI/2,a-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(n.x,n.y,n.outerRadius,a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.lineWidth=2*n.borderWidth,e.lineJoin="round"):(e.lineWidth=n.borderWidth,e.lineJoin="bevel"),e.strokeStyle=n.borderColor,e.stroke()),e.restore()}}),wt=lt.valueOrDefault,St=ot.global.defaultColor;ot._set("global",{elements:{line:{tension:.4,backgroundColor:St,borderWidth:3,borderColor:St,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var It=gt.extend({draw:function(){var t,e,n,a,r=this._view,i=this._chart.ctx,s=r.spanGaps,o=this._children.slice(),u=ot.global,d=u.elements.line,l=-1;for(this._loop&&o.length&&o.push(o[0]),i.save(),i.lineCap=r.borderCapStyle||d.borderCapStyle,i.setLineDash&&i.setLineDash(r.borderDash||d.borderDash),i.lineDashOffset=wt(r.borderDashOffset,d.borderDashOffset),i.lineJoin=r.borderJoinStyle||d.borderJoinStyle,i.lineWidth=wt(r.borderWidth,d.borderWidth),i.strokeStyle=r.borderColor||u.defaultColor,i.beginPath(),l=-1,t=0;t<o.length;++t)e=o[t],n=lt.previousItem(o,t),a=e._view,0===t?a.skip||(i.moveTo(a.x,a.y),l=t):(n=-1===l?n:o[l],a.skip||(l!==t-1&&!s||-1===l?i.moveTo(a.x,a.y):lt.canvas.lineTo(i,n._view,e._view),l=t));i.stroke(),i.restore()}}),Nt=lt.valueOrDefault,Ct=ot.global.defaultColor;function Rt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}ot._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:Ct,borderColor:Ct,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var At=gt.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:Rt,inXRange:Rt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,n=this._chart.ctx,a=e.pointStyle,r=e.rotation,i=e.radius,s=e.x,o=e.y,u=ot.global,d=u.defaultColor;e.skip||(void 0===t||lt.canvas._isPointInArea(e,t))&&(n.strokeStyle=e.borderColor||d,n.lineWidth=Nt(e.borderWidth,u.elements.point.borderWidth),n.fillStyle=e.backgroundColor||d,lt.canvas.drawPoint(n,a,i,s,o,r))}}),kt=ot.global.defaultColor;function Et(t){return t&&void 0!==t.width}function Lt(t){var e,n,a,r,i;return Et(t)?(e=t.x-(i=t.width/2),n=t.x+i,a=Math.min(t.y,t.base),r=Math.max(t.y,t.base)):(i=t.height/2,e=Math.min(t.x,t.base),n=Math.max(t.x,t.base),a=t.y-i,r=t.y+i),{left:e,top:a,right:n,bottom:r}}function Dt(t,e,n){return t===e?n:t===n?e:t}function Pt(t,e,n){var a=null===e,r=null===n,i=!(!t||a&&r)&&Lt(t);return i&&(a||e>=i.left&&e<=i.right)&&(r||n>=i.top&&n<=i.bottom)}ot._set("global",{elements:{rectangle:{backgroundColor:kt,borderColor:kt,borderSkipped:"bottom",borderWidth:0}}});var Mt=gt.extend({draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=Lt(t),n=e.right-e.left,a=e.bottom-e.top,r=function(t,e,n){var a,r,i,s,o=t.borderWidth,u=function(t){var e=t.borderSkipped,n={};return e?(t.horizontal?t.base>t.x&&(e=Dt(e,"left","right")):t.base<t.y&&(e=Dt(e,"bottom","top")),n[e]=!0,n):n}(t);return lt.isObject(o)?(a=+o.top||0,r=+o.right||0,i=+o.bottom||0,s=+o.left||0):a=r=i=s=+o||0,{t:u.top||a<0?0:a>n?n:a,r:u.right||r<0?0:r>e?e:r,b:u.bottom||i<0?0:i>n?n:i,l:u.left||s<0?0:s>e?e:s}}(t,n/2,a/2);return{outer:{x:e.left,y:e.top,w:n,h:a},inner:{x:e.left+r.l,y:e.top+r.t,w:n-r.l-r.r,h:a-r.t-r.b}}}(e),a=n.outer,r=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(a.x,a.y,a.w,a.h),a.w===r.w&&a.h===r.h||(t.save(),t.beginPath(),t.rect(a.x,a.y,a.w,a.h),t.clip(),t.fillStyle=e.borderColor,t.rect(r.x,r.y,r.w,r.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Pt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return Et(n)?Pt(n,t,null):Pt(n,null,e)},inXRange:function(t){return Pt(this._view,t,null)},inYRange:function(t){return Pt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return Et(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return Et(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),qt={},jt=It,Ft=At,Gt=Mt;qt.Arc=Ot,qt.Line=jt,qt.Point=Ft,qt.Rectangle=Gt;var Vt=lt.options.resolve;ot._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var zt=Tt.extend({dataElementType:qt.Rectangle,initialize:function(){var t,e=this;Tt.prototype.initialize.apply(e,arguments),(t=e.getMeta()).stack=e.getDataset().stack,t.bar=!0},update:function(t){var e,n,a=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=a.length;e<n;++e)this.updateElement(a[e],e,t)},updateElement:function(t,e,n){var a=this,r=a.getMeta(),i=a.getDataset(),s=a._resolveElementOptions(t,e);t._xScale=a.getScaleForId(r.xAxisID),t._yScale=a.getScaleForId(r.yAxisID),t._datasetIndex=a.index,t._index=e,t._model={backgroundColor:s.backgroundColor,borderColor:s.borderColor,borderSkipped:s.borderSkipped,borderWidth:s.borderWidth,datasetLabel:i.label,label:a.chart.data.labels[e]},a._updateElementGeometry(t,e,n),t.pivot()},_updateElementGeometry:function(t,e,n){var a=this,r=t._model,i=a._getValueScale(),s=i.getBasePixel(),o=i.isHorizontal(),u=a._ruler||a.getRuler(),d=a.calculateBarValuePixels(a.index,e),l=a.calculateBarIndexPixels(a.index,e,u);r.horizontal=o,r.base=n?s:d.base,r.x=o?n?s:d.head:l.center,r.y=o?l.center:n?s:d.head,r.height=o?l.size:void 0,r.width=o?void 0:l.size},_getStacks:function(t){var e,n,a=this.chart,r=this._getIndexScale().options.stacked,i=void 0===t?a.data.datasets.length:t+1,s=[];for(e=0;e<i;++e)(n=a.getDatasetMeta(e)).bar&&a.isDatasetVisible(e)&&(!1===r||!0===r&&-1===s.indexOf(n.stack)||void 0===r&&(void 0===n.stack||-1===s.indexOf(n.stack)))&&s.push(n.stack);return s},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var n=this._getStacks(t),a=void 0!==e?n.indexOf(e):-1;return-1===a?n.length-1:a},getRuler:function(){var t,e,n=this._getIndexScale(),a=this.getStackCount(),r=this.index,i=n.isHorizontal(),s=i?n.left:n.top,o=s+(i?n.width:n.height),u=[];for(t=0,e=this.getMeta().data.length;t<e;++t)u.push(n.getPixelForValue(null,t,r));return{min:lt.isNullOrUndef(n.options.barThickness)?function(t,e){var n,a,r,i,s=t.isHorizontal()?t.width:t.height,o=t.getTicks();for(r=1,i=e.length;r<i;++r)s=Math.min(s,Math.abs(e[r]-e[r-1]));for(r=0,i=o.length;r<i;++r)a=t.getPixelForTick(r),s=r>0?Math.min(s,a-n):s,n=a;return s}(n,u):-1,pixels:u,start:s,end:o,stackCount:a,scale:n}},calculateBarValuePixels:function(t,e){var n,a,r,i,s,o,u=this.chart,d=this.getMeta(),l=this._getValueScale(),c=l.isHorizontal(),f=u.data.datasets,h=+l.getRightValue(f[t].data[e]),g=l.options.minBarLength,p=l.options.stacked,b=d.stack,m=0;if(p||void 0===p&&void 0!==b)for(n=0;n<t;++n)(a=u.getDatasetMeta(n)).bar&&a.stack===b&&a.controller._getValueScaleId()===l.id&&u.isDatasetVisible(n)&&(r=+l.getRightValue(f[n].data[e]),(h<0&&r<0||h>=0&&r>0)&&(m+=r));return i=l.getPixelForValue(m),o=(s=l.getPixelForValue(m+h))-i,void 0!==g&&Math.abs(o)<g&&(o=g,s=h>=0&&!c||h<0&&c?i-g:i+g),{size:o,base:i,head:s,center:s+o/2}},calculateBarIndexPixels:function(t,e,n){var a=n.scale.options,r="flex"===a.barThickness?function(t,e,n){var a,r=e.pixels,i=r[t],s=t>0?r[t-1]:null,o=t<r.length-1?r[t+1]:null,u=n.categoryPercentage;return null===s&&(s=i-(null===o?e.end-e.start:o-i)),null===o&&(o=i+i-s),a=i-(i-Math.min(s,o))/2*u,{chunk:Math.abs(o-s)/2*u/e.stackCount,ratio:n.barPercentage,start:a}}(e,n,a):function(t,e,n){var a,r,i=n.barThickness,s=e.stackCount,o=e.pixels[t];return lt.isNullOrUndef(i)?(a=e.min*n.categoryPercentage,r=n.barPercentage):(a=i*s,r=1),{chunk:a/s,ratio:r,start:o-a/2}}(e,n,a),i=this.getStackIndex(t,this.getMeta().stack),s=r.start+r.chunk*i+r.chunk/2,o=Math.min(lt.valueOrDefault(a.maxBarThickness,1/0),r.chunk*r.ratio);return{base:s-o/2,head:s+o/2,center:s,size:o}},draw:function(){var t=this.chart,e=this._getValueScale(),n=this.getMeta().data,a=this.getDataset(),r=n.length,i=0;for(lt.canvas.clipArea(t.ctx,t.chartArea);i<r;++i)isNaN(e.getRightValue(a.data[i]))||n[i].draw();lt.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var n,a,r,i=this.chart,s=i.data.datasets[this.index],o=t.custom||{},u=i.options.elements.rectangle,d={},l={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},c=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(n=0,a=c.length;n<a;++n)d[r=c[n]]=Vt([o[r],s[r],u[r]],l,e);return d}}),Bt=lt.valueOrDefault,Yt=lt.options.resolve;ot._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(t,e){return(e.datasets[t.datasetIndex].label||"")+": ("+t.xLabel+", "+t.yLabel+", "+e.datasets[t.datasetIndex].data[t.index].r+")"}}}});var Ht=Tt.extend({dataElementType:qt.Point,update:function(t){var e=this,n=e.getMeta();lt.each(n.data,(function(n,a){e.updateElement(n,a,t)}))},updateElement:function(t,e,n){var a=this,r=a.getMeta(),i=t.custom||{},s=a.getScaleForId(r.xAxisID),o=a.getScaleForId(r.yAxisID),u=a._resolveElementOptions(t,e),d=a.getDataset().data[e],l=a.index,c=n?s.getPixelForDecimal(.5):s.getPixelForValue("object"==typeof d?d:NaN,e,l),f=n?o.getBasePixel():o.getPixelForValue(d,e,l);t._xScale=s,t._yScale=o,t._options=u,t._datasetIndex=l,t._index=e,t._model={backgroundColor:u.backgroundColor,borderColor:u.borderColor,borderWidth:u.borderWidth,hitRadius:u.hitRadius,pointStyle:u.pointStyle,rotation:u.rotation,radius:n?0:u.radius,skip:i.skip||isNaN(c)||isNaN(f),x:c,y:f},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options,a=lt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Bt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Bt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Bt(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},_resolveElementOptions:function(t,e){var n,a,r,i=this.chart,s=i.data.datasets[this.index],o=t.custom||{},u=i.options.elements.point,d=s.data[e],l={},c={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},f=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(n=0,a=f.length;n<a;++n)l[r=f[n]]=Yt([o[r],s[r],u[r]],c,e);return l.radius=Yt([o.radius,d?d.r:void 0,s.radius,u.radius],c,e),l}}),Ut=lt.options.resolve,Wt=lt.valueOrDefault;ot._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i<a[0].data.length;++i)e.push('<li><span style="background-color:'+a[0].backgroundColor[i]+'"></span>'),r[i]&&e.push(r[i]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map((function(n,a){var r=t.getDatasetMeta(0),i=e.datasets[0],s=r.data[a],o=s&&s.custom||{},u=t.options.elements.arc;return{text:n,fillStyle:Ut([o.backgroundColor,i.backgroundColor,u.backgroundColor],void 0,a),strokeStyle:Ut([o.borderColor,i.borderColor,u.borderColor],void 0,a),lineWidth:Ut([o.borderWidth,i.borderWidth,u.borderWidth],void 0,a),hidden:isNaN(i.data[a])||r.data[a].hidden,index:a}})):[]}},onClick:function(t,e){var n,a,r,i=e.index,s=this.chart;for(n=0,a=(s.data.datasets||[]).length;n<a;++n)(r=s.getDatasetMeta(n)).data[i]&&(r.data[i].hidden=!r.data[i].hidden);s.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.labels[t.index],a=": "+e.datasets[t.datasetIndex].data[t.index];return lt.isArray(n)?(n=n.slice())[0]+=a:n+=a,n}}}});var Kt=Tt.extend({dataElementType:qt.Arc,linkScales:lt.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var e,n,a=this,r=a.chart,i=r.chartArea,s=r.options,o=i.right-i.left,u=i.bottom-i.top,d=Math.min(o,u),l={x:0,y:0},c=a.getMeta(),f=c.data,h=s.cutoutPercentage,g=s.circumference,p=a._getRingWeight(a.index);if(g<2*Math.PI){var b=s.rotation%(2*Math.PI),m=(b+=2*Math.PI*(b>=Math.PI?-1:b<-Math.PI?1:0))+g,y={x:Math.cos(b),y:Math.sin(b)},v={x:Math.cos(m),y:Math.sin(m)},x=b<=0&&m>=0||b<=2*Math.PI&&2*Math.PI<=m,_=b<=.5*Math.PI&&.5*Math.PI<=m||b<=2.5*Math.PI&&2.5*Math.PI<=m,T=b<=-Math.PI&&-Math.PI<=m||b<=Math.PI&&Math.PI<=m,O=b<=.5*-Math.PI&&.5*-Math.PI<=m||b<=1.5*Math.PI&&1.5*Math.PI<=m,w=h/100,S={x:T?-1:Math.min(y.x*(y.x<0?1:w),v.x*(v.x<0?1:w)),y:O?-1:Math.min(y.y*(y.y<0?1:w),v.y*(v.y<0?1:w))},I={x:x?1:Math.max(y.x*(y.x>0?1:w),v.x*(v.x>0?1:w)),y:_?1:Math.max(y.y*(y.y>0?1:w),v.y*(v.y>0?1:w))},N={width:.5*(I.x-S.x),height:.5*(I.y-S.y)};d=Math.min(o/N.width,u/N.height),l={x:-.5*(I.x+S.x),y:-.5*(I.y+S.y)}}for(e=0,n=f.length;e<n;++e)f[e]._options=a._resolveElementOptions(f[e],e);for(r.borderWidth=a.getMaxBorderWidth(),r.outerRadius=Math.max((d-r.borderWidth)/2,0),r.innerRadius=Math.max(h?r.outerRadius/100*h:0,0),r.radiusLength=(r.outerRadius-r.innerRadius)/(a._getVisibleDatasetWeightTotal()||1),r.offsetX=l.x*r.outerRadius,r.offsetY=l.y*r.outerRadius,c.total=a.calculateTotal(),a.outerRadius=r.outerRadius-r.radiusLength*a._getRingWeightOffset(a.index),a.innerRadius=Math.max(a.outerRadius-r.radiusLength*p,0),e=0,n=f.length;e<n;++e)a.updateElement(f[e],e,t)},updateElement:function(t,e,n){var a=this,r=a.chart,i=r.chartArea,s=r.options,o=s.animation,u=(i.left+i.right)/2,d=(i.top+i.bottom)/2,l=s.rotation,c=s.rotation,f=a.getDataset(),h=n&&o.animateRotate?0:t.hidden?0:a.calculateCircumference(f.data[e])*(s.circumference/(2*Math.PI)),g=t._options||{};lt.extend(t,{_datasetIndex:a.index,_index:e,_model:{backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,borderAlign:g.borderAlign,x:u+r.offsetX,y:d+r.offsetY,startAngle:l,endAngle:c,circumference:h,outerRadius:n&&o.animateScale?0:a.outerRadius,innerRadius:n&&o.animateScale?0:a.innerRadius,label:lt.valueAtIndexOrDefault(f.label,e,r.data.labels[e])}});var p=t._model;n&&o.animateRotate||(p.startAngle=0===e?s.rotation:a.getMeta().data[e-1]._model.endAngle,p.endAngle=p.startAngle+p.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),a=0;return lt.each(n.data,(function(n,r){t=e.data[r],isNaN(t)||n.hidden||(a+=Math.abs(t))})),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,a,r,i,s,o,u,d=0,l=this.chart;if(!t)for(e=0,n=l.data.datasets.length;e<n;++e)if(l.isDatasetVisible(e)){t=(a=l.getDatasetMeta(e)).data,e!==this.index&&(i=a.controller);break}if(!t)return 0;for(e=0,n=t.length;e<n;++e)r=t[e],"inner"!==(s=i?i._resolveElementOptions(r,e):r._options).borderAlign&&(d=(u=s.hoverBorderWidth)>(d=(o=s.borderWidth)>d?o:d)?u:d);return d},setHoverStyle:function(t){var e=t._model,n=t._options,a=lt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Wt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Wt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Wt(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,a,r,i=this.chart,s=this.getDataset(),o=t.custom||{},u=i.options.elements.arc,d={},l={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,a=c.length;n<a;++n)d[r=c[n]]=Ut([o[r],s[r],u[r]],l,e);return d},_getRingWeightOffset:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&(e+=this._getRingWeight(n));return e},_getRingWeight:function(t){return Math.max(Wt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});ot._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var $t=zt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Zt=lt.valueOrDefault,Jt=lt.options.resolve,Qt=lt.canvas._isPointInArea;function Xt(t,e){return Zt(t.showLine,e.showLines)}ot._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var te=Tt.extend({datasetElementType:qt.Line,dataElementType:qt.Point,update:function(t){var e,n,a=this,r=a.getMeta(),i=r.dataset,s=r.data||[],o=a.getScaleForId(r.yAxisID),u=a.getDataset(),d=Xt(u,a.chart.options);for(d&&(void 0!==u.tension&&void 0===u.lineTension&&(u.lineTension=u.tension),i._scale=o,i._datasetIndex=a.index,i._children=s,i._model=a._resolveLineOptions(i),i.pivot()),e=0,n=s.length;e<n;++e)a.updateElement(s[e],e,t);for(d&&0!==i._model.tension&&a.updateBezierControlPoints(),e=0,n=s.length;e<n;++e)s[e].pivot()},updateElement:function(t,e,n){var a,r,i=this,s=i.getMeta(),o=t.custom||{},u=i.getDataset(),d=i.index,l=u.data[e],c=i.getScaleForId(s.yAxisID),f=i.getScaleForId(s.xAxisID),h=s.dataset._model,g=i._resolvePointOptions(t,e);a=f.getPixelForValue("object"==typeof l?l:NaN,e,d),r=n?c.getBasePixel():i.calculatePointY(l,e,d),t._xScale=f,t._yScale=c,t._options=g,t._datasetIndex=d,t._index=e,t._model={x:a,y:r,skip:o.skip||isNaN(a)||isNaN(r),radius:g.radius,pointStyle:g.pointStyle,rotation:g.rotation,backgroundColor:g.backgroundColor,borderColor:g.borderColor,borderWidth:g.borderWidth,tension:Zt(o.tension,h?h.tension:0),steppedLine:!!h&&h.steppedLine,hitRadius:g.hitRadius}},_resolvePointOptions:function(t,e){var n,a,r,i=this.chart,s=i.data.datasets[this.index],o=t.custom||{},u=i.options.elements.point,d={},l={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},c={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},f=Object.keys(c);for(n=0,a=f.length;n<a;++n)d[r=f[n]]=Jt([o[r],s[c[r]],s[r],u[r]],l,e);return d},_resolveLineOptions:function(t){var e,n,a,r=this.chart,i=r.data.datasets[this.index],s=t.custom||{},o=r.options,u=o.elements.line,d={},l=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,n=l.length;e<n;++e)d[a=l[e]]=Jt([s[a],i[a],u[a]]);return d.spanGaps=Zt(i.spanGaps,o.spanGaps),d.tension=Zt(i.lineTension,u.tension),d.steppedLine=Jt([s.steppedLine,i.steppedLine,u.stepped]),d},calculatePointY:function(t,e,n){var a,r,i,s=this.chart,o=this.getMeta(),u=this.getScaleForId(o.yAxisID),d=0,l=0;if(u.options.stacked){for(a=0;a<n;a++)if(r=s.data.datasets[a],"line"===(i=s.getDatasetMeta(a)).type&&i.yAxisID===u.id&&s.isDatasetVisible(a)){var c=Number(u.getRightValue(r.data[e]));c<0?l+=c||0:d+=c||0}var f=Number(u.getRightValue(t));return u.getPixelForValue(f<0?l+f:d+f)}return u.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,n,a,r=this.chart,i=this.getMeta(),s=i.dataset._model,o=r.chartArea,u=i.data||[];function d(t,e,n){return Math.max(Math.min(t,n),e)}if(s.spanGaps&&(u=u.filter((function(t){return!t._model.skip}))),"monotone"===s.cubicInterpolationMode)lt.splineCurveMonotone(u);else for(t=0,e=u.length;t<e;++t)n=u[t]._model,a=lt.splineCurve(lt.previousItem(u,t)._model,n,lt.nextItem(u,t)._model,s.tension),n.controlPointPreviousX=a.previous.x,n.controlPointPreviousY=a.previous.y,n.controlPointNextX=a.next.x,n.controlPointNextY=a.next.y;if(r.options.elements.line.capBezierPoints)for(t=0,e=u.length;t<e;++t)Qt(n=u[t]._model,o)&&(t>0&&Qt(u[t-1]._model,o)&&(n.controlPointPreviousX=d(n.controlPointPreviousX,o.left,o.right),n.controlPointPreviousY=d(n.controlPointPreviousY,o.top,o.bottom)),t<u.length-1&&Qt(u[t+1]._model,o)&&(n.controlPointNextX=d(n.controlPointNextX,o.left,o.right),n.controlPointNextY=d(n.controlPointNextY,o.top,o.bottom)))},draw:function(){var t,e=this.chart,n=this.getMeta(),a=n.data||[],r=e.chartArea,i=a.length,s=0;for(Xt(this.getDataset(),e.options)&&(lt.canvas.clipArea(e.ctx,{left:r.left,right:r.right,top:r.top-(t=(n.dataset._model.borderWidth||0)/2),bottom:r.bottom+t}),n.dataset.draw(),lt.canvas.unclipArea(e.ctx));s<i;++s)a[s].draw(r)},setHoverStyle:function(t){var e=t._model,n=t._options,a=lt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Zt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Zt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Zt(n.hoverBorderWidth,n.borderWidth),e.radius=Zt(n.hoverRadius,n.radius)}}),ee=lt.options.resolve;ot._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(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var i=0;i<a[0].data.length;++i)e.push('<li><span style="background-color:'+a[0].backgroundColor[i]+'"></span>'),r[i]&&e.push(r[i]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map((function(n,a){var r=t.getDatasetMeta(0),i=e.datasets[0],s=r.data[a].custom||{},o=t.options.elements.arc;return{text:n,fillStyle:ee([s.backgroundColor,i.backgroundColor,o.backgroundColor],void 0,a),strokeStyle:ee([s.borderColor,i.borderColor,o.borderColor],void 0,a),lineWidth:ee([s.borderWidth,i.borderWidth,o.borderWidth],void 0,a),hidden:isNaN(i.data[a])||r.data[a].hidden,index:a}})):[]}},onClick:function(t,e){var n,a,r,i=e.index,s=this.chart;for(n=0,a=(s.data.datasets||[]).length;n<a;++n)(r=s.getDatasetMeta(n)).data[i].hidden=!r.data[i].hidden;s.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var ne=Tt.extend({dataElementType:qt.Arc,linkScales:lt.noop,update:function(t){var e,n,a,r=this,i=r.getDataset(),s=r.getMeta(),o=r.chart.options.startAngle||0,u=r._starts=[],d=r._angles=[],l=s.data;for(r._updateRadius(),s.count=r.countVisibleElements(),e=0,n=i.data.length;e<n;e++)u[e]=o,a=r._computeAngle(e),d[e]=a,o+=a;for(e=0,n=l.length;e<n;++e)l[e]._options=r._resolveElementOptions(l[e],e),r.updateElement(l[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,n=e.chartArea,a=e.options,r=Math.min(n.right-n.left,n.bottom-n.top);e.outerRadius=Math.max(r/2,0),e.innerRadius=Math.max(a.cutoutPercentage?e.outerRadius/100*a.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,n){var a=this,r=a.chart,i=a.getDataset(),s=r.options,o=s.animation,u=r.scale,d=r.data.labels,l=u.xCenter,c=u.yCenter,f=s.startAngle,h=t.hidden?0:u.getDistanceFromCenterForValue(i.data[e]),g=a._starts[e],p=g+(t.hidden?0:a._angles[e]),b=o.animateScale?0:u.getDistanceFromCenterForValue(i.data[e]),m=t._options||{};lt.extend(t,{_datasetIndex:a.index,_index:e,_scale:u,_model:{backgroundColor:m.backgroundColor,borderColor:m.borderColor,borderWidth:m.borderWidth,borderAlign:m.borderAlign,x:l,y:c,innerRadius:0,outerRadius:n?b:h,startAngle:n&&o.animateRotate?f:g,endAngle:n&&o.animateRotate?f:p,label:lt.valueAtIndexOrDefault(d,e,d[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),n=0;return lt.each(e.data,(function(e,a){isNaN(t.data[a])||e.hidden||n++})),n},setHoverStyle:function(t){var e=t._model,n=t._options,a=lt.getHoverColor,r=lt.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=r(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=r(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=r(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,a,r,i=this.chart,s=this.getDataset(),o=t.custom||{},u=i.options.elements.arc,d={},l={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},c=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,a=c.length;n<a;++n)d[r=c[n]]=ee([o[r],s[r],u[r]],l,e);return d},_computeAngle:function(t){var e=this,n=this.getMeta().count,a=e.getDataset(),r=e.getMeta();return isNaN(a.data[t])||r.data[t].hidden?0:ee([e.chart.options.elements.arc.angle,2*Math.PI/n],{chart:e.chart,dataIndex:t,dataset:a,datasetIndex:e.index},t)}});ot._set("pie",lt.clone(ot.doughnut)),ot._set("pie",{cutoutPercentage:0});var ae=Kt,re=lt.valueOrDefault,ie=lt.options.resolve;ot._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var se=Tt.extend({datasetElementType:qt.Line,dataElementType:qt.Point,linkScales:lt.noop,update:function(t){var e,n,a=this,r=a.getMeta(),i=r.dataset,s=r.data||[],o=a.chart.scale,u=a.getDataset();for(void 0!==u.tension&&void 0===u.lineTension&&(u.lineTension=u.tension),i._scale=o,i._datasetIndex=a.index,i._children=s,i._loop=!0,i._model=a._resolveLineOptions(i),i.pivot(),e=0,n=s.length;e<n;++e)a.updateElement(s[e],e,t);for(a.updateBezierControlPoints(),e=0,n=s.length;e<n;++e)s[e].pivot()},updateElement:function(t,e,n){var a=this,r=t.custom||{},i=a.getDataset(),s=a.chart.scale,o=s.getPointPositionForValue(e,i.data[e]),u=a._resolvePointOptions(t,e),d=a.getMeta().dataset._model,l=n?s.xCenter:o.x,c=n?s.yCenter:o.y;t._scale=s,t._options=u,t._datasetIndex=a.index,t._index=e,t._model={x:l,y:c,skip:r.skip||isNaN(l)||isNaN(c),radius:u.radius,pointStyle:u.pointStyle,rotation:u.rotation,backgroundColor:u.backgroundColor,borderColor:u.borderColor,borderWidth:u.borderWidth,tension:re(r.tension,d?d.tension:0),hitRadius:u.hitRadius}},_resolvePointOptions:function(t,e){var n,a,r,i=this.chart,s=i.data.datasets[this.index],o=t.custom||{},u=i.options.elements.point,d={},l={chart:i,dataIndex:e,dataset:s,datasetIndex:this.index},c={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},f=Object.keys(c);for(n=0,a=f.length;n<a;++n)d[r=f[n]]=ie([o[r],s[c[r]],s[r],u[r]],l,e);return d},_resolveLineOptions:function(t){var e,n,a,r=this.chart,i=r.data.datasets[this.index],s=t.custom||{},o=r.options.elements.line,u={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,n=d.length;e<n;++e)u[a=d[e]]=ie([s[a],i[a],o[a]]);return u.tension=re(i.lineTension,o.tension),u},updateBezierControlPoints:function(){var t,e,n,a,r=this.getMeta(),i=this.chart.chartArea,s=r.data||[];function o(t,e,n){return Math.max(Math.min(t,n),e)}for(t=0,e=s.length;t<e;++t)n=s[t]._model,a=lt.splineCurve(lt.previousItem(s,t,!0)._model,n,lt.nextItem(s,t,!0)._model,n.tension),n.controlPointPreviousX=o(a.previous.x,i.left,i.right),n.controlPointPreviousY=o(a.previous.y,i.top,i.bottom),n.controlPointNextX=o(a.next.x,i.left,i.right),n.controlPointNextY=o(a.next.y,i.top,i.bottom)},setHoverStyle:function(t){var e=t._model,n=t._options,a=lt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=re(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=re(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=re(n.hoverBorderWidth,n.borderWidth),e.radius=re(n.hoverRadius,n.radius)}});ot._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(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var oe={bar:zt,bubble:Ht,doughnut:Kt,horizontalBar:$t,line:te,polarArea:ne,pie:ae,radar:se,scatter:te};function ue(t,e){return t.native?{x:t.x,y:t.y}:lt.getRelativePosition(t,e)}function de(t,e){var n,a,r,i,s;for(a=0,i=t.data.datasets.length;a<i;++a)if(t.isDatasetVisible(a))for(r=0,s=(n=t.getDatasetMeta(a)).data.length;r<s;++r){var o=n.data[r];o._view.skip||e(o)}}function le(t,e){var n=[];return de(t,(function(t){t.inRange(e.x,e.y)&&n.push(t)})),n}function ce(t,e,n,a){var r=Number.POSITIVE_INFINITY,i=[];return de(t,(function(t){if(!n||t.inRange(e.x,e.y)){var s=t.getCenterPoint(),o=a(e,s);o<r?(i=[t],r=o):o===r&&i.push(t)}})),i}function fe(t){var e=-1!==t.indexOf("x"),n=-1!==t.indexOf("y");return function(t,a){var r=e?Math.abs(t.x-a.x):0,i=n?Math.abs(t.y-a.y):0;return Math.sqrt(Math.pow(r,2)+Math.pow(i,2))}}function he(t,e,n){var a=ue(e,t);n.axis=n.axis||"x";var r=fe(n.axis),i=n.intersect?le(t,a):ce(t,a,!1,r),s=[];return i.length?(t.data.datasets.forEach((function(e,n){if(t.isDatasetVisible(n)){var a=t.getDatasetMeta(n).data[i[0]._index];a&&!a._view.skip&&s.push(a)}})),s):[]}var ge={modes:{single:function(t,e){var n=ue(e,t),a=[];return de(t,(function(t){if(t.inRange(n.x,n.y))return a.push(t),a})),a.slice(0,1)},label:he,index:he,dataset:function(t,e,n){var a=ue(e,t);n.axis=n.axis||"xy";var r=fe(n.axis),i=n.intersect?le(t,a):ce(t,a,!1,r);return i.length>0&&(i=t.getDatasetMeta(i[0]._datasetIndex).data),i},"x-axis":function(t,e){return he(t,e,{intersect:!1})},point:function(t,e){return le(t,ue(e,t))},nearest:function(t,e,n){var a=ue(e,t);n.axis=n.axis||"xy";var r=fe(n.axis);return ce(t,a,n.intersect,r)},x:function(t,e,n){var a=ue(e,t),r=[],i=!1;return de(t,(function(t){t.inXRange(a.x)&&r.push(t),t.inRange(a.x,a.y)&&(i=!0)})),n.intersect&&!i&&(r=[]),r},y:function(t,e,n){var a=ue(e,t),r=[],i=!1;return de(t,(function(t){t.inYRange(a.y)&&r.push(t),t.inRange(a.x,a.y)&&(i=!0)})),n.intersect&&!i&&(r=[]),r}}};function pe(t,e){return lt.where(t,(function(t){return t.position===e}))}function be(t,e){t.forEach((function(t,e){return t._tmpIndex_=e,t})),t.sort((function(t,n){var a=e?n:t,r=e?t:n;return a.weight===r.weight?a._tmpIndex_-r._tmpIndex_:a.weight-r.weight})),t.forEach((function(t){delete t._tmpIndex_}))}function me(t,e){lt.each(t,(function(t){e[t.position]+=t.isHorizontal()?t.height:t.width}))}ot._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ye,ve={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var a,r=["fullWidth","position","weight"],i=r.length,s=0;s<i;++s)n.hasOwnProperty(a=r[s])&&(e[a]=n[a])},update:function(t,e,n){if(t){var a=lt.options.toPadding((t.options.layout||{}).padding),r=a.left,i=a.right,s=a.top,o=a.bottom,u=pe(t.boxes,"left"),d=pe(t.boxes,"right"),l=pe(t.boxes,"top"),c=pe(t.boxes,"bottom"),f=pe(t.boxes,"chartArea");be(u,!0),be(d,!1),be(l,!0),be(c,!1);var h,g=u.concat(d),p=l.concat(c),b=g.concat(p),m=e-r-i,y=n-s-o,v=(e-m/2)/g.length,x=m,_=y,T={top:s,left:r,bottom:o,right:i},O=[];lt.each(b,(function(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?m:x,y/2),_-=e.height):(e=t.update(v,_),x-=e.width),O.push({horizontal:n,width:e.width,box:t})})),h=function(t){var e=0,n=0,a=0,r=0;return lt.each(t,(function(t){if(t.getPadding){var i=t.getPadding();e=Math.max(e,i.top),n=Math.max(n,i.left),a=Math.max(a,i.bottom),r=Math.max(r,i.right)}})),{top:e,left:n,bottom:a,right:r}}(b),lt.each(g,A),me(g,T),lt.each(p,A),me(p,T),lt.each(g,(function(t){var e=lt.findNextWhere(O,(function(e){return e.box===t}));e&&t.update(e.width,_,{left:0,right:0,top:T.top,bottom:T.bottom})})),me(b,T={top:s,left:r,bottom:o,right:i});var w=Math.max(h.left-T.left,0);T.left+=w,T.right+=Math.max(h.right-T.right,0);var S=Math.max(h.top-T.top,0);T.top+=S,T.bottom+=Math.max(h.bottom-T.bottom,0);var I=n-T.top-T.bottom,N=e-T.left-T.right;N===x&&I===_||(lt.each(g,(function(t){t.height=I})),lt.each(p,(function(t){t.fullWidth||(t.width=N)})),_=I,x=N);var C=r+w,R=s+S;lt.each(u.concat(l),k),C+=x,R+=_,lt.each(d,k),lt.each(c,k),t.chartArea={left:T.left,top:T.top,right:T.left+x,bottom:T.top+_},lt.each(f,(function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(x,_)}))}function A(t){var e=lt.findNextWhere(O,(function(e){return e.box===t}));if(e)if(e.horizontal){var n={left:Math.max(T.left,h.left),right:Math.max(T.right,h.right),top:0,bottom:0};t.update(t.fullWidth?m:x,y/2,n)}else t.update(e.width,_)}function k(t){t.isHorizontal()?(t.left=t.fullWidth?r:T.left,t.right=t.fullWidth?e-i:T.left+x,t.top=R,t.bottom=R+t.height,R=t.bottom):(t.left=C,t.right=C+t.width,t.top=T.top,t.bottom=T.top+_,C=t.right)}}},xe=(ye=Object.freeze({default:"/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-animation {\n\tfrom { opacity: 0.99; }\n\tto { opacity: 1; }\n}\n\n.chartjs-render-monitor {\n\tanimation: chartjs-render-animation 0.001s;\n}\n\n/*\n * DOM element resizing detection\n * https://github.com/marcj/css-element-queries\n */\n.chartjs-size-monitor,\n.chartjs-size-monitor-expand,\n.chartjs-size-monitor-shrink {\n\tposition: absolute;\n\tdirection: ltr;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tvisibility: hidden;\n\tz-index: -1;\n}\n\n.chartjs-size-monitor-expand > div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"}))&&ye.default||ye,_e=["animationstart","webkitAnimationStart"],Te={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function Oe(t,e){var n=lt.getStyle(t,e),a=n&&n.match(/^(\d+)(\.\d+)?px$/);return a?Number(a[1]):void 0}var we=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(n){}return t}()&&{passive:!0};function Se(t,e,n){t.addEventListener(e,n,we)}function Ie(t,e,n){t.removeEventListener(e,n,we)}function Ne(t,e,n,a,r){return{type:t,chart:e,native:r||null,x:void 0!==n?n:null,y:void 0!==a?a:null}}function Ce(t){var e=document.createElement("div");return e.className=t||"",e}var Re={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){this._loaded||(this._loaded=!0,this.disableCSSInjection||function(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}(this,xe))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),n&&n.canvas===t?(function(t,e){var n=t.style,a=t.getAttribute("height"),r=t.getAttribute("width");if(t.$chartjs={initial:{height:a,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var i=Oe(t,"width");void 0!==i&&(t.width=i)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var s=Oe(t,"height");void 0!==i&&(t.height=s)}}(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e.$chartjs){var n=e.$chartjs.initial;["height","width"].forEach((function(t){var a=n[t];lt.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)})),lt.each(n.style||{},(function(t,n){e.style[n]=t})),e.width=e.width,delete e.$chartjs}},addEventListener:function(t,e,n){var a=t.canvas;if("resize"!==e){var r=n.$chartjs||(n.$chartjs={});Se(a,e,(r.proxies||(r.proxies={}))[t.id+"_"+e]=function(e){n(function(t,e){var n=Te[t.type]||t.type,a=lt.getRelativePosition(t,e);return Ne(n,e,a.x,a.y,t)}(e,t))})}else!function(t,e,n){var a,r,i,s,o=t.$chartjs||(t.$chartjs={}),u=o.resizer=function(t){var e=Ce("chartjs-size-monitor"),n=Ce("chartjs-size-monitor-expand"),a=Ce("chartjs-size-monitor-shrink");n.appendChild(Ce()),a.appendChild(Ce()),e.appendChild(n),e.appendChild(a),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,a.scrollLeft=1e6,a.scrollTop=1e6};var r=function(){e._reset(),t()};return Se(n,"scroll",r.bind(n,"expand")),Se(a,"scroll",r.bind(a,"shrink")),e}((a=function(){if(o.resizer){var a=n.options.maintainAspectRatio&&t.parentNode,r=a?a.clientWidth:0;e(Ne("resize",n)),a&&a.clientWidth<r&&n.canvas&&e(Ne("resize",n))}},i=!1,s=[],function(){s=Array.prototype.slice.call(arguments),r=r||this,i||(i=!0,lt.requestAnimFrame.call(window,(function(){i=!1,a.apply(r,s)})))}));!function(t,e){var n=t.$chartjs||(t.$chartjs={}),a=n.renderProxy=function(t){"chartjs-render-animation"===t.animationName&&e()};lt.each(_e,(function(e){Se(t,e,a)})),n.reflow=!!t.offsetParent,t.classList.add("chartjs-render-monitor")}(t,(function(){if(o.resizer){var e=t.parentNode;e&&e!==u.parentNode&&e.insertBefore(u,e.firstChild),u._reset()}}))}(a,n,t)},removeEventListener:function(t,e,n){var a,r,i,s=t.canvas;if("resize"!==e){var o=((n.$chartjs||{}).proxies||{})[t.id+"_"+e];o&&Ie(s,e,o)}else i=(r=(a=s).$chartjs||{}).resizer,delete r.resizer,function(t){var e=t.$chartjs||{},n=e.renderProxy;n&&(lt.each(_e,(function(e){Ie(t,e,n)})),delete e.renderProxy),t.classList.remove("chartjs-render-monitor")}(a),i&&i.parentNode&&i.parentNode.removeChild(i)}};lt.addEvent=Se,lt.removeEvent=Ie;var Ae=lt.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},Re._enabled?Re:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}});ot._set("global",{plugins:{}});var ke={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach((function(t){-1===e.indexOf(t)&&e.push(t)})),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach((function(t){var n=e.indexOf(t);-1!==n&&e.splice(n,1)})),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var a,r,i,s,o,u=this.descriptors(t),d=u.length;for(a=0;a<d;++a)if("function"==typeof(o=(i=(r=u[a]).plugin)[e])&&((s=[t].concat(n||[])).push(r.options),!1===o.apply(i,s)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var n=[],a=[],r=t&&t.config||{},i=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach((function(t){if(-1===n.indexOf(t)){var e=t.id,r=i[e];!1!==r&&(!0===r&&(r=lt.clone(ot.global.plugins[e])),n.push(t),a.push({plugin:t,options:r||{}}))}})),e.descriptors=a,e.id=this._cacheId,a},_invalidate:function(t){delete t.$plugins}},Ee={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=lt.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?lt.merge({},[ot.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=lt.extend(this.defaults[t],e))},addScalesToLayout:function(t){lt.each(t.scales,(function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,ve.addBox(t,e)}))}},Le=lt.valueOrDefault;ot._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:lt.noop,title:function(t,e){var n="",a=e.labels,r=a?a.length:0;if(t.length>0){var i=t[0];i.label?n=i.label:i.xLabel?n=i.xLabel:r>0&&i.index<r&&(n=a[i.index])}return n},afterTitle:lt.noop,beforeBody:lt.noop,beforeLabel:lt.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),lt.isNullOrUndef(t.value)?n+=t.yLabel:n+=t.value,n},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:lt.noop,afterBody:lt.noop,beforeFooter:lt.noop,footer:lt.noop,afterFooter:lt.noop}}});var De={average:function(t){if(!t.length)return!1;var e,n,a=0,r=0,i=0;for(e=0,n=t.length;e<n;++e){var s=t[e];if(s&&s.hasValue()){var o=s.tooltipPosition();a+=o.x,r+=o.y,++i}}return{x:a/i,y:r/i}},nearest:function(t,e){var n,a,r,i=e.x,s=e.y,o=Number.POSITIVE_INFINITY;for(n=0,a=t.length;n<a;++n){var u=t[n];if(u&&u.hasValue()){var d=u.getCenterPoint(),l=lt.distanceBetweenPoints(e,d);l<o&&(o=l,r=u)}}if(r){var c=r.tooltipPosition();i=c.x,s=c.y}return{x:i,y:s}}};function Pe(t,e){return e&&(lt.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Me(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function qe(t){var e=ot.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Le(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Le(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Le(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Le(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Le(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Le(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Le(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Le(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Le(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function je(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Fe(t){return Pe([],Me(t))}var Ge=gt.extend({initialize:function(){this._model=qe(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,a=n.beforeTitle.apply(t,arguments),r=n.title.apply(t,arguments),i=n.afterTitle.apply(t,arguments),s=[];return s=Pe(s,Me(a)),s=Pe(s,Me(r)),Pe(s,Me(i))},getBeforeBody:function(){return Fe(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return lt.each(t,(function(t){var i={before:[],lines:[],after:[]};Pe(i.before,Me(a.beforeLabel.call(n,t,e))),Pe(i.lines,a.label.call(n,t,e)),Pe(i.after,Me(a.afterLabel.call(n,t,e))),r.push(i)})),r},getAfterBody:function(){return Fe(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),i=[];return i=Pe(i,Me(n)),i=Pe(i,Me(a)),Pe(i,Me(r))},update:function(t){var e,n,a,r,i,s,o,u,d,l,c=this,f=c._options,h=c._model,g=c._model=qe(f),p=c._active,b=c._data,m={xAlign:h.xAlign,yAlign:h.yAlign},y={x:h.x,y:h.y},v={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(p.length){g.opacity=1;var _=[],T=[];x=De[f.position].call(c,p,c._eventPosition);var O=[];for(e=0,n=p.length;e<n;++e)O.push((r=void 0,i=void 0,u=void 0,d=void 0,l=void 0,r=(a=p[e])._xScale,i=a._yScale||a._scale,s=a._index,d=(u=a._chart.getDatasetMeta(o=a._datasetIndex).controller)._getIndexScale(),l=u._getValueScale(),{xLabel:r?r.getLabelForIndex(s,o):"",yLabel:i?i.getLabelForIndex(s,o):"",label:d?""+d.getLabelForIndex(s,o):"",value:l?""+l.getLabelForIndex(s,o):"",index:s,datasetIndex:o,x:a._model.x,y:a._model.y}));f.filter&&(O=O.filter((function(t){return f.filter(t,b)}))),f.itemSort&&(O=O.sort((function(t,e){return f.itemSort(t,e,b)}))),lt.each(O,(function(t){_.push(f.callbacks.labelColor.call(c,t,c._chart)),T.push(f.callbacks.labelTextColor.call(c,t,c._chart))})),g.title=c.getTitle(O,b),g.beforeBody=c.getBeforeBody(O,b),g.body=c.getBody(O,b),g.afterBody=c.getAfterBody(O,b),g.footer=c.getFooter(O,b),g.x=x.x,g.y=x.y,g.caretPadding=f.caretPadding,g.labelColors=_,g.labelTextColors=T,g.dataPoints=O,v=function(t,e){var n=t._chart.ctx,a=2*e.yPadding,r=0,i=e.body,s=i.reduce((function(t,e){return t+e.before.length+e.lines.length+e.after.length}),0),o=e.title.length,u=e.footer.length,d=e.titleFontSize,l=e.bodyFontSize,c=e.footerFontSize;a+=o*d,a+=o?(o-1)*e.titleSpacing:0,a+=o?e.titleMarginBottom:0,a+=(s+=e.beforeBody.length+e.afterBody.length)*l,a+=s?(s-1)*e.bodySpacing:0,a+=u?e.footerMarginTop:0,a+=u*c,a+=u?(u-1)*e.footerSpacing:0;var f=0,h=function(t){r=Math.max(r,n.measureText(t).width+f)};return n.font=lt.fontString(d,e._titleFontStyle,e._titleFontFamily),lt.each(e.title,h),n.font=lt.fontString(l,e._bodyFontStyle,e._bodyFontFamily),lt.each(e.beforeBody.concat(e.afterBody),h),f=e.displayColors?l+2:0,lt.each(i,(function(t){lt.each(t.before,h),lt.each(t.lines,h),lt.each(t.after,h)})),f=0,n.font=lt.fontString(c,e._footerFontStyle,e._footerFontFamily),lt.each(e.footer,h),{width:r+=2*e.xPadding,height:a}}(this,g),y=function(t,e,n,a){var r=t.x,i=t.y,s=t.caretPadding,o=n.xAlign,u=n.yAlign,d=t.caretSize+s,l=t.cornerRadius+s;return"right"===o?r-=e.width:"center"===o&&((r-=e.width/2)+e.width>a.width&&(r=a.width-e.width),r<0&&(r=0)),"top"===u?i+=d:i-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===o?r+=d:"right"===o&&(r-=d):"left"===o?r-=l:"right"===o&&(r+=l),{x:r,y:i}}(g,v,m=function(t,e){var n,a,r,i,s,o=t._model,u=t._chart,d=t._chart.chartArea,l="center",c="center";o.y<e.height?c="top":o.y>u.height-e.height&&(c="bottom");var f=(d.left+d.right)/2,h=(d.top+d.bottom)/2;"center"===c?(n=function(t){return t<=f},a=function(t){return t>f}):(n=function(t){return t<=e.width/2},a=function(t){return t>=u.width-e.width/2}),r=function(t){return t+e.width+o.caretSize+o.caretPadding>u.width},i=function(t){return t-e.width-o.caretSize-o.caretPadding<0},s=function(t){return t<=h?"top":"bottom"},n(o.x)?(l="left",r(o.x)&&(l="center",c=s(o.y))):a(o.x)&&(l="right",i(o.x)&&(l="center",c=s(o.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:l,yAlign:g.yAlign?g.yAlign:c}}(this,v),c._chart)}else g.opacity=0;return g.xAlign=m.xAlign,g.yAlign=m.yAlign,g.x=y.x,g.y=y.y,g.width=v.width,g.height=v.height,g.caretX=x.x,g.caretY=x.y,c._model=g,t&&f.custom&&f.custom.call(c,g),c},drawCaret:function(t,e){var n=this._chart.ctx,a=this.getCaretPosition(t,e,this._view);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var a,r,i,s,o,u,d=n.caretSize,l=n.cornerRadius,c=n.xAlign,f=n.yAlign,h=t.x,g=t.y,p=e.width,b=e.height;if("center"===f)o=g+b/2,"left"===c?(r=(a=h)-d,i=a,s=o+d,u=o-d):(r=(a=h+p)+d,i=a,s=o-d,u=o+d);else if("left"===c?(a=(r=h+l+d)-d,i=r+d):"right"===c?(a=(r=h+p-l-d)-d,i=r+d):(a=(r=n.caretX)-d,i=r+d),"top"===f)o=(s=g)-d,u=s;else{o=(s=g+b)+d,u=s;var m=i;i=a,a=m}return{x1:a,x2:r,x3:i,y1:s,y2:o,y3:u}},drawTitle:function(t,e,n){var a=e.title;if(a.length){t.x=je(e,e._titleAlign),n.textAlign=e._titleAlign,n.textBaseline="top";var r,i,s=e.titleFontSize,o=e.titleSpacing;for(n.fillStyle=e.titleFontColor,n.font=lt.fontString(s,e._titleFontStyle,e._titleFontFamily),r=0,i=a.length;r<i;++r)n.fillText(a[r],t.x,t.y),t.y+=s+o,r+1===a.length&&(t.y+=e.titleMarginBottom-o)}},drawBody:function(t,e,n){var a,r=e.bodyFontSize,i=e.bodySpacing,s=e._bodyAlign,o=e.body,u=e.displayColors,d=e.labelColors,l=0,c=u?je(e,"left"):0;n.textAlign=s,n.textBaseline="top",n.font=lt.fontString(r,e._bodyFontStyle,e._bodyFontFamily),t.x=je(e,s);var f=function(e){n.fillText(e,t.x+l,t.y),t.y+=r+i};n.fillStyle=e.bodyFontColor,lt.each(e.beforeBody,f),l=u&&"right"!==s?"center"===s?r/2+1:r+2:0,lt.each(o,(function(i,s){n.fillStyle=a=e.labelTextColors[s],lt.each(i.before,f),lt.each(i.lines,(function(i){u&&(n.fillStyle=e.legendColorBackground,n.fillRect(c,t.y,r,r),n.lineWidth=1,n.strokeStyle=d[s].borderColor,n.strokeRect(c,t.y,r,r),n.fillStyle=d[s].backgroundColor,n.fillRect(c+1,t.y+1,r-2,r-2),n.fillStyle=a),f(i)})),lt.each(i.after,f)})),l=0,lt.each(e.afterBody,f),t.y-=i},drawFooter:function(t,e,n){var a=e.footer;a.length&&(t.x=je(e,e._footerAlign),t.y+=e.footerMarginTop,n.textAlign=e._footerAlign,n.textBaseline="top",n.fillStyle=e.footerFontColor,n.font=lt.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),lt.each(a,(function(a){n.fillText(a,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing})))},drawBackground:function(t,e,n,a){n.fillStyle=e.backgroundColor,n.strokeStyle=e.borderColor,n.lineWidth=e.borderWidth;var r=e.xAlign,i=e.yAlign,s=t.x,o=t.y,u=a.width,d=a.height,l=e.cornerRadius;n.beginPath(),n.moveTo(s+l,o),"top"===i&&this.drawCaret(t,a),n.lineTo(s+u-l,o),n.quadraticCurveTo(s+u,o,s+u,o+l),"center"===i&&"right"===r&&this.drawCaret(t,a),n.lineTo(s+u,o+d-l),n.quadraticCurveTo(s+u,o+d,s+u-l,o+d),"bottom"===i&&this.drawCaret(t,a),n.lineTo(s+l,o+d),n.quadraticCurveTo(s,o+d,s,o+d-l),"center"===i&&"left"===r&&this.drawCaret(t,a),n.lineTo(s,o+l),n.quadraticCurveTo(s,o,s+l,o),n.closePath(),n.fill(),e.borderWidth>0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},a={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity;this._options.enabled&&(e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length)&&(t.save(),t.globalAlpha=r,this.drawBackground(a,e,t,n),a.y+=e.yPadding,this.drawTitle(a,e,t),this.drawBody(a,e,t),this.drawFooter(a,e,t),t.restore())}},handleEvent:function(t){var e,n=this,a=n._options;return n._lastActive=n._lastActive||[],n._active="mouseout"===t.type?[]:n._chart.getElementsAtEventForMode(t,a.mode,a),(e=!lt.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(a.enabled||a.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}});Ge.positioners=De;var Ve=lt.valueOrDefault;function ze(){return lt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){if("xAxes"===t||"yAxes"===t){var r,i,s,o=n[t].length;for(e[t]||(e[t]=[]),r=0;r<o;++r)i=Ve((s=n[t][r]).type,"xAxes"===t?"category":"linear"),r>=e[t].length&&e[t].push({}),lt.merge(e[t][r],!e[t][r].type||s.type&&s.type!==e[t][r].type?[Ee.getScaleDefaults(i),s]:s)}else lt._merger(t,e,n,a)}})}function Be(){return lt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){var r=e[t]||{},i=n[t];"scales"===t?e[t]=ze(r,i):"scale"===t?e[t]=lt.merge(r,[Ee.getScaleDefaults(i.type),i]):lt._merger(t,e,n,a)}})}function Ye(t){var e=t.options;lt.each(t.scales,(function(e){ve.removeBox(t,e)})),e=Be(ot.global,ot[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function He(t){return"top"===t||"bottom"===t}ot._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Ue=function(t,e){return this.construct(t,e),this};lt.extend(Ue.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Be(ot.global,ot[t.type],t.options||{}),t}(e);var a=Ae.acquireContext(t,e),r=a&&a.canvas,i=r&&r.height,s=r&&r.width;n.id=lt.uid(),n.ctx=a,n.canvas=r,n.config=e,n.width=s,n.height=i,n.aspectRatio=i?s/i:null,n.options=e.options,n._bufferedRender=!1,n.chart=n,n.controller=n,Ue.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),a&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return ke.notify(t,"beforeInit"),lt.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),ke.notify(t,"afterInit"),t},clear:function(){return lt.canvas.clear(this),this},stop:function(){return mt.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,a=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,i=Math.max(0,Math.floor(lt.getMaximumWidth(a))),s=Math.max(0,Math.floor(r?i/r:lt.getMaximumHeight(a)));if((e.width!==i||e.height!==s)&&(a.width=e.width=i,a.height=e.height=s,a.style.width=i+"px",a.style.height=s+"px",lt.retinaScale(e,n.devicePixelRatio),!t)){var o={width:i,height:s};ke.notify(e,"resize",[o]),n.onResize&&n.onResize(e,o),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;lt.each(e.xAxes,(function(t,e){t.id=t.id||"x-axis-"+e})),lt.each(e.yAxes,(function(t,e){t.id=t.id||"y-axis-"+e})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},a=[],r=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(a=a.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&a.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),lt.each(a,(function(e){var a=e.options,i=a.id,s=Ve(a.type,e.dtype);He(a.position)!==He(e.dposition)&&(a.position=e.dposition),r[i]=!0;var o=null;if(i in n&&n[i].type===s)(o=n[i]).options=a,o.ctx=t.ctx,o.chart=t;else{var u=Ee.getScaleConstructor(s);if(!u)return;o=new u({id:i,type:s,options:a,ctx:t.ctx,chart:t}),n[o.id]=o}o.mergeTicksOptions(),e.isDefault&&(t.scale=o)})),lt.each(r,(function(t,e){t||delete n[e]})),t.scales=n,Ee.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return lt.each(t.data.datasets,(function(n,a){var r=t.getDatasetMeta(a),i=n.type||t.config.type;if(r.type&&r.type!==i&&(t.destroyDatasetMeta(a),r=t.getDatasetMeta(a)),r.type=i,r.controller)r.controller.updateIndex(a),r.controller.linkScales();else{var s=oe[r.type];if(void 0===s)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new s(t,a),e.push(r.controller)}}),t),e},resetElements:function(){var t=this;lt.each(t.data.datasets,(function(e,n){t.getDatasetMeta(n).controller.reset()}),t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),Ye(e),ke._invalidate(e),!1!==ke.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var n=e.buildOrUpdateControllers();lt.each(e.data.datasets,(function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()}),e),e.updateLayout(),e.options.animation&&e.options.animation.duration&&lt.each(n,(function(t){t.reset()})),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],ke.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){!1!==ke.notify(this,"beforeLayout")&&(ve.update(this,this.width,this.height),ke.notify(this,"afterScaleUpdate"),ke.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==ke.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);ke.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),n={meta:e,index:t};!1!==ke.notify(this,"beforeDatasetUpdate",[n])&&(e.controller.update(),ke.notify(this,"afterDatasetUpdate",[n]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var n=e.options.animation,a=Ve(t.duration,n&&n.duration),r=t.lazy;if(!1!==ke.notify(e,"beforeRender")){var i=function(t){ke.notify(e,"afterRender"),lt.callback(n&&n.onComplete,[t],e)};if(n&&a){var s=new bt({numSteps:a/16.66,easing:t.easing||n.easing,render:function(t,e){var n=e.currentStep,a=n/e.numSteps;t.draw((0,lt.easing.effects[e.easing])(a),a,n)},onAnimationProgress:n.onProgress,onAnimationComplete:i});mt.addAnimation(e,s,a,r)}else e.draw(),i(new bt({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),lt.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==ke.notify(e,"beforeDraw",[t])&&(lt.each(e.boxes,(function(t){t.draw(e.chartArea)}),e),e.drawDatasets(t),e._drawTooltip(t),ke.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,n=(this.data.datasets||[]).length;e<n;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==ke.notify(e,"beforeDatasetsDraw",[t])){for(var n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);ke.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),a={meta:n,index:t,easingValue:e};!1!==ke.notify(this,"beforeDatasetDraw",[a])&&(n.controller.draw(e),ke.notify(this,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==ke.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),ke.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return ge.modes.single(this,t)},getElementsAtEvent:function(t){return ge.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return ge.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var a=ge.modes[e];return"function"==typeof a?a(this,t,n):[]},getDatasetAtEvent:function(t){return ge.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,n=this.data.datasets[t],a=n._meta&&n._meta[e];a&&(a.controller.destroy(),delete n._meta[e])},destroy:function(){var t,e,n=this,a=n.canvas;for(n.stop(),t=0,e=n.data.datasets.length;t<e;++t)n.destroyDatasetMeta(t);a&&(n.unbindEvents(),lt.canvas.clear(n),Ae.releaseContext(n.ctx),n.canvas=null,n.ctx=null),ke.notify(n,"destroy"),delete Ue.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new Ge({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};lt.each(t.options.events,(function(a){Ae.addEventListener(t,a,n),e[a]=n})),t.options.responsive&&(n=function(){t.resize()},Ae.addEventListener(t,"resize",n),e.resize=n)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,lt.each(e,(function(e,n){Ae.removeEventListener(t,n,e)})))},updateHoverStyle:function(t,e,n){var a,r,i,s=n?"setHoverStyle":"removeHoverStyle";for(r=0,i=t.length;r<i;++r)(a=t[r])&&this.getDatasetMeta(a._datasetIndex).controller[s](a)},eventHandler:function(t){var e=this,n=e.tooltip;if(!1!==ke.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var a=e.handleEvent(t);n&&(a=n._start?n.handleEvent(t):a|n.handleEvent(t)),ke.notify(e,"afterEvent",[t]);var r=e._bufferedRequest;return r?e.render(r):a&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,n=this,a=n.options||{},r=a.hover;return n.lastActive=n.lastActive||[],n.active="mouseout"===t.type?[]:n.getElementsAtEventForMode(t,r.mode,r),lt.callback(a.onHover||a.hover.onHover,[t.native,n.active],n),"mouseup"!==t.type&&"click"!==t.type||a.onClick&&a.onClick.call(n,t.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,r.mode,!1),n.active.length&&r.mode&&n.updateHoverStyle(n.active,r.mode,!0),e=!lt.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,e}}),Ue.instances={};var We=Ue;function Ke(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function $e(t){this.options=t||{}}Ue.Controller=Ue,Ue.types={},lt.configMerge=Be,lt.scaleMerge=ze,lt.extend($e.prototype,{formats:Ke,parse:Ke,format:Ke,add:Ke,diff:Ke,startOf:Ke,endOf:Ke,_create:function(t){return t}}),$e.override=function(t){lt.extend($e.prototype,t)};var Ze={_date:$e},Je={formatters:{values:function(t){return lt.isArray(t)?t:""+t},linear:function(t,e,n){var a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var r=lt.log10(Math.abs(a)),i="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var s=lt.log10(Math.abs(t));i=t.toExponential(Math.floor(s)-Math.floor(r))}else{var o=-1*Math.floor(r);o=Math.max(Math.min(o,20),0),i=t.toFixed(o)}else i="0";return i},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(lt.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}},Qe=lt.valueOrDefault,Xe=lt.valueAtIndexOrDefault;function tn(t){var e,n,a=[];for(e=0,n=t.length;e<n;++e)a.push(t[e].label);return a}function en(t,e,n){return lt.isArray(e)?lt.longestText(t,n,e):t.measureText(e).width}ot._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Je.formatters.values,minor:{},major:{}}});var nn=gt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){lt.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var a,r,i,s,o,u,d=this;for(d.beforeUpdate(),d.maxWidth=t,d.maxHeight=e,d.margins=lt.extend({left:0,right:0,top:0,bottom:0},n),d._maxLabelLines=0,d.longestLabelWidth=0,d.longestTextCache=d.longestTextCache||{},d.beforeSetDimensions(),d.setDimensions(),d.afterSetDimensions(),d.beforeDataLimits(),d.determineDataLimits(),d.afterDataLimits(),d.beforeBuildTicks(),o=d.buildTicks()||[],o=d.afterBuildTicks(o)||o,d.beforeTickToLabelConversion(),i=d.convertTicksToLabels(o)||d.ticks,d.afterTickToLabelConversion(),d.ticks=i,a=0,r=i.length;a<r;++a)s=i[a],(u=o[a])?u.label=s:o.push(u={label:s,major:!1});return d._ticks=o,d.beforeCalculateTickRotation(),d.calculateTickRotation(),d.afterCalculateTickRotation(),d.beforeFit(),d.fit(),d.afterFit(),d.afterUpdate(),d.minSize},afterUpdate:function(){lt.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){lt.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){lt.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){lt.callback(this.options.beforeDataLimits,[this])},determineDataLimits:lt.noop,afterDataLimits:function(){lt.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){lt.callback(this.options.beforeBuildTicks,[this])},buildTicks:lt.noop,afterBuildTicks:function(t){var e=this;return lt.isArray(t)&&t.length?lt.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=lt.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){lt.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){lt.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){lt.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,n=t.options.ticks,a=tn(t._ticks),r=lt.options._parseFont(n);e.font=r.string;var i=n.minRotation||0;if(a.length&&t.options.display&&t.isHorizontal())for(var s,o=lt.longestText(e,r.string,a,t.longestTextCache),u=o,d=t.getPixelForTick(1)-t.getPixelForTick(0)-6;u>d&&i<n.maxRotation;){var l=lt.toRadians(i);if(s=Math.cos(l),Math.sin(l)*o>t.maxHeight){i--;break}i++,u=s*o}t.labelRotation=i},afterCalculateTickRotation:function(){lt.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){lt.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=tn(t._ticks),a=t.options,r=a.ticks,i=a.scaleLabel,s=a.gridLines,o=t._isVisible(),u=a.position,d=t.isHorizontal(),l=lt.options._parseFont,c=l(r),f=a.gridLines.tickMarkLength;if(e.width=d?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:o&&s.drawTicks?f:0,e.height=d?o&&s.drawTicks?f:0:t.maxHeight,i.display&&o){var h=l(i),g=lt.options.toPadding(i.padding),p=h.lineHeight+g.height;d?e.height+=p:e.width+=p}if(r.display&&o){var b=lt.longestText(t.ctx,c.string,n,t.longestTextCache),m=lt.numberOfLabelLines(n),y=.5*c.size,v=t.options.ticks.padding;if(t._maxLabelLines=m,t.longestLabelWidth=b,d){var x=lt.toRadians(t.labelRotation),_=Math.cos(x),T=Math.sin(x);e.height=Math.min(t.maxHeight,e.height+(T*b+c.lineHeight*m+y)+v),t.ctx.font=c.string;var O,w,S=en(t.ctx,n[0],c.string),I=en(t.ctx,n[n.length-1],c.string),N=t.getPixelForTick(0)-t.left,C=t.right-t.getPixelForTick(n.length-1);0!==t.labelRotation?(O="bottom"===u?_*S:_*y,w="bottom"===u?_*y:_*I):(O=S/2,w=I/2),t.paddingLeft=Math.max(O-N,0)+3,t.paddingRight=Math.max(w-C,0)+3}else r.mirror?b=0:b+=v+y,e.width=Math.min(t.maxWidth,e.width+b),t.paddingTop=c.size/2,t.paddingBottom=c.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){lt.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(lt.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:lt.noop,getPixelForValue:lt.noop,getValueForPixel:lt.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var a=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),r=a*t+e.paddingLeft;return n&&(r+=a/2),e.left+r+(e.isFullWidth()?e.margins.left:0)}return e.top+t*((e.height-(e.paddingTop+e.paddingBottom))/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;return e.isHorizontal()?e.left+((e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft)+(e.isFullWidth()?e.margins.left:0):e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,a=this,r=a.isHorizontal(),i=t.length,s=!1,o=a.options.ticks.minor.maxTicksLimit,u=a._tickSize()*(i-1),d=r?a.width-(a.paddingLeft+a.paddingRight):a.height-(a.paddingTop+a.PaddingBottom),l=[];for(u>d&&(s=1+Math.floor(u/d)),i>o&&(s=Math.max(s,1+Math.floor(i/o))),e=0;e<i;e++)n=t[e],s>1&&e%s>0&&delete n.label,l.push(n);return l},_tickSize:function(){var t=this,e=t.isHorizontal(),n=t.options.ticks.minor,a=lt.toRadians(t.labelRotation),r=Math.abs(Math.cos(a)),i=Math.abs(Math.sin(a)),s=n.autoSkipPadding||0,o=t.longestLabelWidth+s||0,u=lt.options._parseFont(n),d=t._maxLabelLines*u.lineHeight+s||0;return e?d*r>o*i?o/r:d/i:d*i<o*r?d/r:o/i},_isVisible:function(){var t,e,n,a=this.chart,r=this.options.display;if("auto"!==r)return!!r;for(t=0,e=a.data.datasets.length;t<e;++t)if(a.isDatasetVisible(t)&&((n=a.getDatasetMeta(t)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,n=e.options;if(e._isVisible()){var a,r,i,s=e.chart,o=e.ctx,u=ot.global.defaultFontColor,d=n.ticks.minor,l=n.ticks.major||d,c=n.gridLines,f=n.scaleLabel,h=n.position,g=0!==e.labelRotation,p=d.mirror,b=e.isHorizontal(),m=lt.options._parseFont,y=d.display&&d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),v=Qe(d.fontColor,u),x=m(d),_=x.lineHeight,T=Qe(l.fontColor,u),O=m(l),w=d.padding,S=d.labelOffset,I=c.drawTicks?c.tickMarkLength:0,N=Qe(f.fontColor,u),C=m(f),R=lt.options.toPadding(f.padding),A=lt.toRadians(e.labelRotation),k=[],E=c.drawBorder?Xe(c.lineWidth,0,0):0,L=lt._alignPixel;if("top"===h?(a=L(s,e.bottom,E),r=e.bottom-I,i=a-E/2):"bottom"===h?(a=L(s,e.top,E),r=a+E/2,i=e.top+I):"left"===h?(a=L(s,e.right,E),r=e.right-I,i=a-E/2):(a=L(s,e.left,E),r=a+E/2,i=e.left+I),lt.each(y,(function(a,o){if(!lt.isNullOrUndef(a.label)){var u,d,l,f,m,y,v,x,T,O,N,C,R,D,P,M,q=a.label;o===e.zeroLineIndex&&n.offset===c.offsetGridLines?(u=c.zeroLineWidth,d=c.zeroLineColor,l=c.zeroLineBorderDash||[],f=c.zeroLineBorderDashOffset||0):(u=Xe(c.lineWidth,o),d=Xe(c.color,o),l=c.borderDash||[],f=c.borderDashOffset||0);var j=lt.isArray(q)?q.length:1,F=function(t,e,n){var a=t.getPixelForTick(e);return n&&(1===t.getTicks().length?a-=t.isHorizontal()?Math.max(a-t.left,t.right-a):Math.max(a-t.top,t.bottom-a):a-=0===e?(t.getPixelForTick(1)-a)/2:(a-t.getPixelForTick(e-1))/2),a}(e,o,c.offsetGridLines);if(b){var G=I+w;F<e.left-1e-7&&(d="rgba(0,0,0,0)"),m=v=T=N=L(s,F,u),y=r,x=i,R=e.getPixelForTick(o)+S,"top"===h?(O=L(s,t.top,E)+E/2,C=t.bottom,P=((g?1:.5)-j)*_,M=g?"left":"center",D=e.bottom-G):(O=t.top,C=L(s,t.bottom,E)-E/2,P=(g?0:.5)*_,M=g?"right":"center",D=e.top+G)}else{var V=(p?0:I)+w;F<e.top-1e-7&&(d="rgba(0,0,0,0)"),m=r,v=i,y=x=O=C=L(s,F,u),D=e.getPixelForTick(o)+S,P=(1-j)*_/2,"left"===h?(T=L(s,t.left,E)+E/2,N=t.right,M=p?"left":"right",R=e.right-V):(T=t.left,N=L(s,t.right,E)-E/2,M=p?"right":"left",R=e.left+V)}k.push({tx1:m,ty1:y,tx2:v,ty2:x,x1:T,y1:O,x2:N,y2:C,labelX:R,labelY:D,glWidth:u,glColor:d,glBorderDash:l,glBorderDashOffset:f,rotation:-1*A,label:q,major:a.major,textOffset:P,textAlign:M})}})),lt.each(k,(function(t){var e=t.glWidth,n=t.glColor;if(c.display&&e&&n&&(o.save(),o.lineWidth=e,o.strokeStyle=n,o.setLineDash&&(o.setLineDash(t.glBorderDash),o.lineDashOffset=t.glBorderDashOffset),o.beginPath(),c.drawTicks&&(o.moveTo(t.tx1,t.ty1),o.lineTo(t.tx2,t.ty2)),c.drawOnChartArea&&(o.moveTo(t.x1,t.y1),o.lineTo(t.x2,t.y2)),o.stroke(),o.restore()),d.display){o.save(),o.translate(t.labelX,t.labelY),o.rotate(t.rotation),o.font=t.major?O.string:x.string,o.fillStyle=t.major?T:v,o.textBaseline="middle",o.textAlign=t.textAlign;var a=t.label,r=t.textOffset;if(lt.isArray(a))for(var i=0;i<a.length;++i)o.fillText(""+a[i],0,r),r+=_;else o.fillText(a,0,r);o.restore()}})),f.display){var D,P,M=0,q=C.lineHeight/2;if(b)D=e.left+(e.right-e.left)/2,P="bottom"===h?e.bottom-q-R.bottom:e.top+q+R.top;else{var j="left"===h;D=j?e.left+q+R.top:e.right-q-R.top,P=e.top+(e.bottom-e.top)/2,M=j?-.5*Math.PI:.5*Math.PI}o.save(),o.translate(D,P),o.rotate(M),o.textAlign="center",o.textBaseline="middle",o.fillStyle=N,o.font=C.string,o.fillText(f.labelString,0,0),o.restore()}if(E){var F,G,V,z,B=E,Y=Xe(c.lineWidth,y.length-1,0);b?(F=L(s,e.left,B)-B/2,G=L(s,e.right,Y)+Y/2,V=z=a):(V=L(s,e.top,B)-B/2,z=L(s,e.bottom,Y)+Y/2,F=G=a),o.lineWidth=E,o.strokeStyle=Xe(c.color,0),o.beginPath(),o.moveTo(F,V),o.lineTo(G,z),o.stroke()}}}}),an=nn.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,n=e.getLabels();e.minIndex=0,e.maxIndex=n.length-1,void 0!==e.options.ticks.min&&(t=n.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=n.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=n[e.minIndex],e.max=n[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,a=n.chart;return a.getDatasetMeta(e).controller._getValueScaleId()===n.id?n.getRightValue(a.data.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,a=this,r=a.options.offset,i=Math.max(a.maxIndex+1-a.minIndex-(r?0:1),1);if(null!=t&&(n=a.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var s=a.getLabels().indexOf(t=n||t);e=-1!==s?s:e}if(a.isHorizontal()){var o=a.width/i,u=o*(e-a.minIndex);return r&&(u+=o/2),a.left+u}var d=a.height/i,l=d*(e-a.minIndex);return r&&(l+=d/2),a.top+l},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,a=Math.max(e._ticks.length-(n?0:1),1),r=e.isHorizontal(),i=(r?e.width:e.height)/a;return t-=r?e.left:e.top,n&&(t-=i/2),(t<=0?0:Math.round(t/i))+e.minIndex},getBasePixel:function(){return this.bottom}});an._defaults={position:"bottom"};var rn=lt.isNullOrUndef,sn=nn.extend({getRightValue:function(t){return"string"==typeof t?+t:nn.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=lt.sign(t.min),a=lt.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var r=void 0!==e.min||void 0!==e.suggestedMin,i=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(t.min=null===t.min?e.suggestedMin:Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(t.max=null===t.max?e.suggestedMax:Math.max(t.max,e.suggestedMax)),r!==i&&t.min>=t.max&&(r?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,a=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),a=a||11),a&&(t=Math.min(a,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:lt.noop,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),a={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:lt.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=function(t,e){var n,a,r,i,s=[],o=t.stepSize,u=o||1,d=t.maxTicks-1,l=t.min,c=t.max,f=t.precision,h=e.min,g=e.max,p=lt.niceNum((g-h)/d/u)*u;if(p<1e-14&&rn(l)&&rn(c))return[h,g];(i=Math.ceil(g/p)-Math.floor(h/p))>d&&(p=lt.niceNum(i*p/d/u)*u),o||rn(f)?n=Math.pow(10,lt._decimalPlaces(p)):(n=Math.pow(10,f),p=Math.ceil(p*n)/n),a=Math.floor(h/p)*p,r=Math.ceil(g/p)*p,o&&(!rn(l)&&lt.almostWhole(l/p,p/1e3)&&(a=l),!rn(c)&&lt.almostWhole(c/p,p/1e3)&&(r=c)),i=lt.almostEquals(i=(r-a)/p,Math.round(i),p/1e3)?Math.round(i):Math.ceil(i),a=Math.round(a*n)/n,r=Math.round(r*n)/n,s.push(rn(l)?a:l);for(var b=1;b<i;++b)s.push(Math.round((a+b*p)*n)/n);return s.push(rn(c)?r:c),s}(a,t);t.handleDirectionalChanges(),t.max=lt.max(r),t.min=lt.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),nn.prototype.convertTicksToLabels.call(t)}}),on={position:"left",ticks:{callback:Je.formatters.linear}},un=sn.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,r=t.isHorizontal();function i(e){return r?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var s=e.stacked;if(void 0===s&&lt.each(a,(function(t,e){if(!s){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&i(a)&&void 0!==a.stack&&(s=!0)}})),e.stacked||s){var o={};lt.each(a,(function(a,r){var s=n.getDatasetMeta(r),u=[s.type,void 0===e.stacked&&void 0===s.stack?r:"",s.stack].join(".");void 0===o[u]&&(o[u]={positiveValues:[],negativeValues:[]});var d=o[u].positiveValues,l=o[u].negativeValues;n.isDatasetVisible(r)&&i(s)&&lt.each(a.data,(function(n,a){var r=+t.getRightValue(n);isNaN(r)||s.data[a].hidden||(d[a]=d[a]||0,l[a]=l[a]||0,e.relativePoints?d[a]=100:r<0?l[a]+=r:d[a]+=r)}))})),lt.each(o,(function(e){var n=e.positiveValues.concat(e.negativeValues),a=lt.min(n),r=lt.max(n);t.min=null===t.min?a:Math.min(t.min,a),t.max=null===t.max?r:Math.max(t.max,r)}))}else lt.each(a,(function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&i(r)&&lt.each(e.data,(function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||(null===t.min?t.min=a:a<t.min&&(t.min=a),null===t.max?t.max=a:a>t.max&&(t.max=a))}))}));t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=lt.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,n=e.start,a=+e.getRightValue(t),r=e.end-n;return e.isHorizontal()?e.left+e.width/r*(a-n):e.bottom-e.height/r*(a-n)},getValueForPixel:function(t){var e=this,n=e.isHorizontal();return e.start+(n?t-e.left:e.bottom-t)/(n?e.width:e.height)*(e.end-e.start)},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});un._defaults=on;var dn=lt.valueOrDefault,ln={position:"left",ticks:{callback:Je.formatters.logarithmic}};function cn(t,e){return lt.isFinite(t)&&t>=0?t:e}var fn=nn.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,r=t.isHorizontal();function i(e){return r?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var s=e.stacked;if(void 0===s&&lt.each(a,(function(t,e){if(!s){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&i(a)&&void 0!==a.stack&&(s=!0)}})),e.stacked||s){var o={};lt.each(a,(function(a,r){var s=n.getDatasetMeta(r),u=[s.type,void 0===e.stacked&&void 0===s.stack?r:"",s.stack].join(".");n.isDatasetVisible(r)&&i(s)&&(void 0===o[u]&&(o[u]=[]),lt.each(a.data,(function(e,n){var a=o[u],r=+t.getRightValue(e);isNaN(r)||s.data[n].hidden||r<0||(a[n]=a[n]||0,a[n]+=r)})))})),lt.each(o,(function(e){if(e.length>0){var n=lt.min(e),a=lt.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)}}))}else lt.each(a,(function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&i(r)&&lt.each(e.data,(function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||a<0||(null===t.min?t.min=a:a<t.min&&(t.min=a),null===t.max?t.max=a:a>t.max&&(t.max=a),0!==a&&(null===t.minNotZero||a<t.minNotZero)&&(t.minNotZero=a))}))}));this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=cn(e.min,t.min),t.max=cn(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(lt.log10(t.min))-1),t.max=Math.pow(10,Math.floor(lt.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(lt.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(lt.log10(t.min))+1):10),null===t.minNotZero&&(t.minNotZero=t.min>0?t.min:t.max<1?Math.pow(10,Math.floor(lt.log10(t.max))):1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),a={min:cn(e.min),max:cn(e.max)},r=t.ticks=function(t,e){var n,a,r=[],i=dn(t.min,Math.pow(10,Math.floor(lt.log10(e.min)))),s=Math.floor(lt.log10(e.max)),o=Math.ceil(e.max/Math.pow(10,s));0===i?(n=Math.floor(lt.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),r.push(i),i=a*Math.pow(10,n)):(n=Math.floor(lt.log10(i)),a=Math.floor(i/Math.pow(10,n)));var u=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(i),10==++a&&(a=1,u=++n>=0?1:u),i=Math.round(a*Math.pow(10,n)*u)/u}while(n<s||n===s&&a<o);var d=dn(t.max,i);return r.push(d),r}(a,t);t.max=lt.max(r),t.min=lt.min(r),e.reverse?(n=!n,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),nn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(lt.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,n,a,r,i,s=this,o=s.options.ticks,u=o.reverse,d=lt.log10,l=s._getFirstTickValue(s.minNotZero),c=0;return t=+s.getRightValue(t),u?(a=s.end,r=s.start,i=-1):(a=s.start,r=s.end,i=1),s.isHorizontal()?(e=s.width,n=u?s.right:s.left):(e=s.height,i*=-1,n=u?s.top:s.bottom),t!==a&&(0===a&&(e-=c=dn(o.fontSize,ot.global.defaultFontSize),a=l),0!==t&&(c+=e/(d(r)-d(a))*(d(t)-d(a))),n+=i*c),n},getValueForPixel:function(t){var e,n,a,r,i=this,s=i.options.ticks,o=s.reverse,u=lt.log10,d=i._getFirstTickValue(i.minNotZero);if(o?(n=i.end,a=i.start):(n=i.start,a=i.end),i.isHorizontal()?(e=i.width,r=o?i.right-t:t-i.left):(e=i.height,r=o?t-i.top:i.bottom-t),r!==n){if(0===n){var l=dn(s.fontSize,ot.global.defaultFontSize);r-=l,e-=l,n=d}r*=u(a)-u(n),r/=e,r=Math.pow(10,u(n)+r)}return r}});fn._defaults=ln;var hn=lt.valueOrDefault,gn=lt.valueAtIndexOrDefault,pn=lt.options.resolve,bn={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Je.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function mn(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function yn(t){var e=t.ticks;return e.display&&t.display?hn(e.fontSize,ot.global.defaultFontSize)+2*e.backdropPaddingY:0}function vn(t,e,n,a,r){return t===a||t===r?{start:e-n/2,end:e+n/2}:t<a||t>r?{start:e-n,end:e}:{start:e,end:e+n}}function xn(t){return 0===t||180===t?"center":t<180?"left":"right"}function _n(t,e,n,a){var r,i,s=n.y+a/2;if(lt.isArray(e))for(r=0,i=e.length;r<i;++r)t.fillText(e[r],n.x,s),s+=a;else t.fillText(e,n.x,s)}function Tn(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function On(t){return lt.isNumber(t)?t:0}var wn=sn.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=yn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;lt.each(e.data.datasets,(function(r,i){if(e.isDatasetVisible(i)){var s=e.getDatasetMeta(i);lt.each(r.data,(function(e,r){var i=+t.getRightValue(e);isNaN(i)||s.data[r].hidden||(n=Math.min(i,n),a=Math.max(i,a))}))}})),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=a===Number.NEGATIVE_INFINITY?0:a,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/yn(this.options))},convertTicksToLabels:function(){var t=this;sn.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,a,r=lt.options._parseFont(t.options.pointLabels),i={l:0,r:t.width,t:0,b:t.height-t.paddingTop},s={};t.ctx.font=r.string,t._pointLabelSizes=[];var o,u,d,l=mn(t);for(e=0;e<l;e++){a=t.getPointPosition(e,t.drawingArea+5),o=t.ctx,u=r.lineHeight,n=lt.isArray(d=t.pointLabels[e]||"")?{w:lt.longestText(o,o.font,d),h:d.length*u}:{w:o.measureText(d).width,h:u},t._pointLabelSizes[e]=n;var c=t.getIndexAngle(e),f=lt.toDegrees(c)%360,h=vn(f,a.x,n.w,0,180),g=vn(f,a.y,n.h,90,270);h.start<i.l&&(i.l=h.start,s.l=c),h.end>i.r&&(i.r=h.end,s.r=c),g.start<i.t&&(i.t=g.start,s.t=c),g.end>i.b&&(i.b=g.end,s.b=c)}t.setReductions(t.drawingArea,i,s)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var a=this,r=e.l/Math.sin(n.l),i=Math.max(e.r-a.width,0)/Math.sin(n.r),s=-e.t/Math.cos(n.t),o=-Math.max(e.b-(a.height-a.paddingTop),0)/Math.cos(n.b);r=On(r),i=On(i),s=On(s),o=On(o),a.drawingArea=Math.min(Math.floor(t-(r+i)/2),Math.floor(t-(s+o)/2)),a.setCenterPoint(r,i,s,o)},setCenterPoint:function(t,e,n,a){var r=this,i=n+r.drawingArea,s=r.height-r.paddingTop-a-r.drawingArea;r.xCenter=Math.floor((t+r.drawingArea+(r.width-e-r.drawingArea))/2+r.left),r.yCenter=Math.floor((i+s)/2+r.top+r.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/mn(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,a=e.ticks;if(e.display){var r=t.ctx,i=this.getIndexAngle(0),s=lt.options._parseFont(a);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,n=t.options,a=n.angleLines,r=n.gridLines,i=n.pointLabels,s=hn(a.lineWidth,r.lineWidth),o=hn(a.color,r.color),u=yn(n);e.save(),e.lineWidth=s,e.strokeStyle=o,e.setLineDash&&(e.setLineDash(pn([a.borderDash,r.borderDash,[]])),e.lineDashOffset=pn([a.borderDashOffset,r.borderDashOffset,0]));var d=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),l=lt.options._parseFont(i);e.font=l.string,e.textBaseline="middle";for(var c=mn(t)-1;c>=0;c--){if(a.display&&s&&o){var f=t.getPointPosition(c,d);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(f.x,f.y),e.stroke()}if(i.display){var h=t.getPointPosition(c,d+(0===c?u/2:0)+5),g=gn(i.fontColor,c,ot.global.defaultFontColor);e.fillStyle=g;var p=t.getIndexAngle(c),b=lt.toDegrees(p);e.textAlign=xn(b),Tn(b,t._pointLabelSizes[c],h),_n(e,t.pointLabels[c]||"",h,l.lineHeight)}}e.restore()}(t),lt.each(t.ticks,(function(e,o){if(o>0||a.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[o]);if(n.display&&0!==o&&function(t,e,n,a){var r,i=t.ctx,s=e.circular,o=mn(t),u=gn(e.color,a-1),d=gn(e.lineWidth,a-1);if((s||o)&&u&&d){if(i.save(),i.strokeStyle=u,i.lineWidth=d,i.setLineDash&&(i.setLineDash(e.borderDash||[]),i.lineDashOffset=e.borderDashOffset||0),i.beginPath(),s)i.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{r=t.getPointPosition(0,n),i.moveTo(r.x,r.y);for(var l=1;l<o;l++)r=t.getPointPosition(l,n),i.lineTo(r.x,r.y)}i.closePath(),i.stroke(),i.restore()}}(t,n,u,o),a.display){var d=hn(a.fontColor,ot.global.defaultFontColor);if(r.font=s.string,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(i),a.showLabelBackdrop){var l=r.measureText(e).width;r.fillStyle=a.backdropColor,r.fillRect(-l/2-a.backdropPaddingX,-u-s.size/2-a.backdropPaddingY,l+2*a.backdropPaddingX,s.size+2*a.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}))}}});wn._defaults=bn;var Sn=lt.valueOrDefault,In=Number.MIN_SAFE_INTEGER||-9007199254740991,Nn=Number.MAX_SAFE_INTEGER||9007199254740991,Cn={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,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,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}},Rn=Object.keys(Cn);function An(t,e){return t-e}function kn(t){var e,n,a,r={},i=[];for(e=0,n=t.length;e<n;++e)r[a=t[e]]||(r[a]=!0,i.push(a));return i}function En(t,e,n,a){var r=function(t,e,n){for(var a,r,i,s=0,o=t.length-1;s>=0&&s<=o;){if(i=t[a=s+o>>1],!(r=t[a-1]||null))return{lo:null,hi:i};if(i[e]<n)s=a+1;else{if(!(r[e]>n))return{lo:r,hi:i};o=a-1}}return{lo:i,hi:null}}(t,e,n),i=r.lo?r.hi?r.lo:t[t.length-2]:t[0],s=r.lo?r.hi?r.hi:t[t.length-1]:t[1],o=s[e]-i[e];return i[a]+(s[a]-i[a])*(o?(n-i[e])/o:0)}function Ln(t,e){var n=t._adapter,a=t.options.time,r=a.parser,i=r||a.format,s=e;return"function"==typeof r&&(s=r(s)),lt.isFinite(s)||(s="string"==typeof i?n.parse(s,i):n.parse(s)),null!==s?+s:(r||"function"!=typeof i||(s=i(e),lt.isFinite(s)||(s=n.parse(s))),s)}function Dn(t,e){if(lt.isNullOrUndef(e))return null;var n=t.options.time,a=Ln(t,t.getRightValue(e));return null===a?a:(n.round&&(a=+t._adapter.startOf(a,n.round)),a)}function Pn(t){for(var e=Rn.indexOf(t)+1,n=Rn.length;e<n;++e)if(Cn[Rn[e]].common)return Rn[e]}var Mn=nn.extend({initialize:function(){this.mergeTicksOptions(),nn.prototype.initialize.call(this)},update:function(){var t=this,e=t.options,n=e.time||(e.time={}),a=t._adapter=new Ze._date(e.adapters.date);return n.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),lt.mergeIf(n.displayFormats,a.formats()),nn.prototype.update.apply(t,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),nn.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,a,r,i,s=this,o=s.chart,u=s._adapter,d=s.options.time,l=d.unit||"day",c=Nn,f=In,h=[],g=[],p=[],b=o.data.labels||[];for(t=0,n=b.length;t<n;++t)p.push(Dn(s,b[t]));for(t=0,n=(o.data.datasets||[]).length;t<n;++t)if(o.isDatasetVisible(t))if(lt.isObject((r=o.data.datasets[t].data)[0]))for(g[t]=[],e=0,a=r.length;e<a;++e)i=Dn(s,r[e]),h.push(i),g[t][e]=i;else{for(e=0,a=p.length;e<a;++e)h.push(p[e]);g[t]=p.slice(0)}else g[t]=[];p.length&&(p=kn(p).sort(An),c=Math.min(c,p[0]),f=Math.max(f,p[p.length-1])),h.length&&(h=kn(h).sort(An),c=Math.min(c,h[0]),f=Math.max(f,h[h.length-1])),c=Dn(s,d.min)||c,f=Dn(s,d.max)||f,c=c===Nn?+u.startOf(Date.now(),l):c,f=f===In?+u.endOf(Date.now(),l)+1:f,s.min=Math.min(c,f),s.max=Math.max(c+1,f),s._horizontal=s.isHorizontal(),s._table=[],s._timestamps={data:h,datasets:g,labels:p}},buildTicks:function(){var t,e,n,a=this,r=a.min,i=a.max,s=a.options,o=s.time,u=[],d=[];switch(s.ticks.source){case"data":u=a._timestamps.data;break;case"labels":u=a._timestamps.labels;break;case"auto":default:u=function(t,e,n,a){var r,i=t._adapter,s=t.options,o=s.time,u=o.unit||function(t,e,n,a){var r,i,s=Rn.length;for(r=Rn.indexOf(t);r<s-1;++r)if((i=Cn[Rn[r]]).common&&Math.ceil((n-e)/((i.steps?i.steps[i.steps.length-1]:Nn)*i.size))<=a)return Rn[r];return Rn[s-1]}(o.minUnit,e,n,a),d=Pn(u),l=Sn(o.stepSize,o.unitStepSize),c="week"===u&&o.isoWeekday,f=s.ticks.major.enabled,h=Cn[u],g=e,p=n,b=[];for(l||(l=function(t,e,n,a){var r,i,s,o=e-t,u=Cn[n],d=u.size,l=u.steps;if(!l)return Math.ceil(o/(a*d));for(r=0,i=l.length;r<i&&(s=l[r],!(Math.ceil(o/(d*s))<=a));++r);return s}(e,n,u,a)),c&&(g=+i.startOf(g,"isoWeek",c),p=+i.startOf(p,"isoWeek",c)),g=+i.startOf(g,c?"day":u),(p=+i.startOf(p,c?"day":u))<n&&(p=+i.add(p,1,u)),r=g,f&&d&&!c&&!o.round&&(r=+i.startOf(r,d),r=+i.add(r,~~((g-r)/(h.size*l))*l,u));r<p;r=+i.add(r,l,u))b.push(+r);return b.push(+r),b}(a,r,i,a.getLabelCapacity(r))}for("ticks"===s.bounds&&u.length&&(r=u[0],i=u[u.length-1]),r=Dn(a,o.min)||r,i=Dn(a,o.max)||i,t=0,e=u.length;t<e;++t)(n=u[t])>=r&&n<=i&&d.push(n);return a.min=r,a.max=i,a._unit=o.unit||function(t,e,n,a,r){var i,s;for(i=Rn.length-1;i>=Rn.indexOf(n);i--)if(Cn[s=Rn[i]].common&&t._adapter.diff(r,a,s)>=e.length)return s;return Rn[n?Rn.indexOf(n):0]}(a,d,o.minUnit,a.min,a.max),a._majorUnit=Pn(a._unit),a._table=function(t,e,n,a){if("linear"===a||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var r,i,s,o,u,d=[],l=[e];for(r=0,i=t.length;r<i;++r)(o=t[r])>e&&o<n&&l.push(o);for(l.push(n),r=0,i=l.length;r<i;++r)u=l[r+1],o=l[r],void 0!==(s=l[r-1])&&void 0!==u&&Math.round((u+s)/2)===o||d.push({time:o,pos:r/(i-1)});return d}(a._timestamps.data,r,i,s.distribution),a._offsets=function(t,e,n,a,r){var i,s,o=0,u=0;return r.offset&&e.length&&(r.time.min||(i=En(t,"time",e[0],"pos"),o=1===e.length?1-i:(En(t,"time",e[1],"pos")-i)/2),r.time.max||(s=En(t,"time",e[e.length-1],"pos"),u=1===e.length?s:(s-En(t,"time",e[e.length-2],"pos"))/2)),{start:o,end:u}}(a._table,d,0,0,s),s.ticks.reverse&&d.reverse(),function(t,e,n){var a,r,i,s,o=[];for(a=0,r=e.length;a<r;++a)i=e[a],s=!!n&&i===+t._adapter.startOf(i,n),o.push({value:i,major:s});return o}(a,d,a._majorUnit)},getLabelForIndex:function(t,e){var n=this,a=n._adapter,r=n.chart.data,i=n.options.time,s=r.labels&&t<r.labels.length?r.labels[t]:"",o=r.datasets[e].data[t];return lt.isObject(o)&&(s=n.getRightValue(o)),i.tooltipFormat?a.format(Ln(n,s),i.tooltipFormat):"string"==typeof s?s:a.format(Ln(n,s),i.displayFormats.datetime)},tickFormatFunction:function(t,e,n,a){var r=this._adapter,i=this.options,s=i.time.displayFormats,o=s[this._unit],u=this._majorUnit,d=s[u],l=+r.startOf(t,u),c=i.ticks.major,f=c.enabled&&u&&d&&t===l,h=r.format(t,a||(f?d:o)),g=f?c:i.ticks.minor,p=Sn(g.callback,g.userCallback);return p?p(h,e,n):h},convertTicksToLabels:function(t){var e,n,a=[];for(e=0,n=t.length;e<n;++e)a.push(this.tickFormatFunction(t[e].value,e,t));return a},getPixelForOffset:function(t){var e=this,n=e.options.ticks.reverse,a=e._horizontal?e.width:e.height,r=e._horizontal?n?e.right:e.left:n?e.bottom:e.top,i=En(e._table,"time",t,"pos"),s=a*(e._offsets.start+i)/(e._offsets.start+1+e._offsets.end);return n?r-s:r+s},getPixelForValue:function(t,e,n){var a=null;if(void 0!==e&&void 0!==n&&(a=this._timestamps.datasets[n][e]),null===a&&(a=Dn(this,t)),null!==a)return this.getPixelForOffset(a)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,n=e._horizontal?e.width:e.height,a=En(e._table,"pos",(n?(t-(e._horizontal?e.left:e.top))/n:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,"time");return e._adapter._create(a)},getLabelWidth:function(t){var e=this.options.ticks,n=this.ctx.measureText(t).width,a=lt.toRadians(e.maxRotation),r=Math.cos(a),i=Math.sin(a);return n*r+Sn(e.fontSize,ot.global.defaultFontSize)*i},getLabelCapacity:function(t){var e=this,n=e.tickFormatFunction(t,0,[],e.options.time.displayFormats.millisecond),a=e.getLabelWidth(n),r=e.isHorizontal()?e.width:e.height,i=Math.floor(r/a);return i>0?i:1}});Mn._defaults={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};var qn={category:an,linear:un,logarithmic:fn,radialLinear:wn,time:Mn},jn={datetime:"MMM D, YYYY, h:mm:ss a",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"};Ze._date.override("function"==typeof t?{_id:"moment",formats:function(){return jn},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,a){return t(e).add(n,a).valueOf()},diff:function(e,n,a){return t.duration(t(e).diff(t(n))).as(a)},startOf:function(e,n,a){return e=t(e),"isoWeek"===n?e.isoWeekday(a).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),ot._set("global",{plugins:{filler:{propagate:!0}}});var Fn={dataset:function(t){var e=t.fill,n=t.chart,a=n.getDatasetMeta(e),r=a&&n.isDatasetVisible(e)&&a.dataset._children||[],i=r.length||0;return i?function(t,e){return e<i&&r[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,a=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===a?t.y:a}}}};function Gn(t,e,n){var a,r=t._model||{},i=r.fill;if(void 0===i&&(i=!!r.backgroundColor),!1===i||null===i)return!1;if(!0===i)return"origin";if(a=parseFloat(i,10),isFinite(a)&&Math.floor(a)===a)return"-"!==i[0]&&"+"!==i[0]||(a=e+a),!(a===e||a<0||a>=n)&&a;switch(i){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return i;default:return!1}}function Vn(t){var e,n=t.el._model||{},a=t.el._scale||{},r=t.fill,i=null;if(isFinite(r))return null;if("start"===r?i=void 0===n.scaleBottom?a.bottom:n.scaleBottom:"end"===r?i=void 0===n.scaleTop?a.top:n.scaleTop:void 0!==n.scaleZero?i=n.scaleZero:a.getBasePosition?i=a.getBasePosition():a.getBasePixel&&(i=a.getBasePixel()),null!=i){if(void 0!==i.x&&void 0!==i.y)return i;if(lt.isFinite(i))return{x:(e=a.isHorizontal())?i:null,y:e?null:i}}return null}function zn(t,e,n){var a,r=t[e].fill,i=[e];if(!n)return r;for(;!1!==r&&-1===i.indexOf(r);){if(!isFinite(r))return r;if(!(a=t[r]))return!1;if(a.visible)return r;i.push(r),r=a.fill}return!1}function Bn(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),Fn[n](t))}function Yn(t){return t&&!t.skip}function Hn(t,e,n,a,r){var i;if(a&&r){for(t.moveTo(e[0].x,e[0].y),i=1;i<a;++i)lt.canvas.lineTo(t,e[i-1],e[i]);for(t.lineTo(n[r-1].x,n[r-1].y),i=r-1;i>0;--i)lt.canvas.lineTo(t,n[i],n[i-1],!0)}}var Un={id:"filler",afterDatasetsUpdate:function(t,e){var n,a,r,i,s=(t.data.datasets||[]).length,o=e.propagate,u=[];for(a=0;a<s;++a)i=null,(r=(n=t.getDatasetMeta(a)).dataset)&&r._model&&r instanceof qt.Line&&(i={visible:t.isDatasetVisible(a),fill:Gn(r,a,s),chart:t,el:r}),n.$filler=i,u.push(i);for(a=0;a<s;++a)(i=u[a])&&(i.fill=zn(u,a,o),i.boundary=Vn(i),i.mapper=Bn(i))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var a=t.ctx,r=n.el,i=r._view,s=r._children||[],o=n.mapper,u=i.backgroundColor||ot.global.defaultColor;o&&u&&s.length&&(lt.canvas.clipArea(a,t.chartArea),function(t,e,n,a,r,i){var s,o,u,d,l,c,f,h=e.length,g=a.spanGaps,p=[],b=[],m=0,y=0;for(t.beginPath(),s=0,o=h+!!i;s<o;++s)l=n(d=e[u=s%h]._view,u,a),c=Yn(d),f=Yn(l),c&&f?(m=p.push(d),y=b.push(l)):m&&y&&(g?(c&&p.push(d),f&&b.push(l)):(Hn(t,p,b,m,y),m=y=0,p=[],b=[]));Hn(t,p,b,m,y),t.closePath(),t.fillStyle=r,t.fill()}(a,s,o,i,u,r._loop),lt.canvas.unclipArea(a))}}},Wn=lt.noop,Kn=lt.valueOrDefault;function $n(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}ot._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,a=this.chart,r=a.getDatasetMeta(n);r.hidden=null===r.hidden?!a.data.datasets[n].hidden:null,a.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return lt.isArray(e.datasets)?e.datasets.map((function(e,n){return{text:e.label,fillStyle:lt.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}}),this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var Zn=gt.extend({initialize:function(t){lt.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:Wn,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Wn,beforeSetDimensions:Wn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Wn,beforeBuildLabels:Wn,buildLabels:function(){var t=this,e=t.options.labels||{},n=lt.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter((function(n){return e.filter(n,t.chart.data)}))),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:Wn,beforeFit:Wn,fit:function(){var t=this,e=t.options,n=e.labels,a=e.display,r=t.ctx,i=lt.options._parseFont(n),s=i.size,o=t.legendHitBoxes=[],u=t.minSize,d=t.isHorizontal();if(d?(u.width=t.maxWidth,u.height=a?10:0):(u.width=a?10:0,u.height=t.maxHeight),a)if(r.font=i.string,d){var l=t.lineWidths=[0],c=0;r.textAlign="left",r.textBaseline="top",lt.each(t.legendItems,(function(t,e){var a=$n(n,s)+s/2+r.measureText(t.text).width;(0===e||l[l.length-1]+a+n.padding>u.width)&&(c+=s+n.padding,l[l.length-(e>0?0:1)]=n.padding),o[e]={left:0,top:0,width:a,height:s},l[l.length-1]+=a+n.padding})),u.height+=c}else{var f=n.padding,h=t.columnWidths=[],g=n.padding,p=0,b=0,m=s+f;lt.each(t.legendItems,(function(t,e){var a=$n(n,s)+s/2+r.measureText(t.text).width;e>0&&b+m>u.height-f&&(g+=p+n.padding,h.push(p),p=0,b=0),p=Math.max(p,a),b+=m,o[e]={left:0,top:0,width:a,height:s}})),g+=p,h.push(p),u.width+=g}t.width=u.width,t.height=u.height},afterFit:Wn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,a=ot.global,r=a.defaultColor,i=a.elements.line,s=t.width,o=t.lineWidths;if(e.display){var u,d=t.ctx,l=Kn(n.fontColor,a.defaultFontColor),c=lt.options._parseFont(n),f=c.size;d.textAlign="left",d.textBaseline="middle",d.lineWidth=.5,d.strokeStyle=l,d.fillStyle=l,d.font=c.string;var h=$n(n,f),g=t.legendHitBoxes,p=t.isHorizontal();u=p?{x:t.left+(s-o[0])/2+n.padding,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var b=f+n.padding;lt.each(t.legendItems,(function(a,l){var c=d.measureText(a.text).width,m=h+f/2+c,y=u.x,v=u.y;p?l>0&&y+m+n.padding>t.left+t.minSize.width&&(v=u.y+=b,u.line++,y=u.x=t.left+(s-o[u.line])/2+n.padding):l>0&&v+b>t.top+t.minSize.height&&(y=u.x=y+t.columnWidths[u.line]+n.padding,v=u.y=t.top+n.padding,u.line++),function(t,n,a){if(!(isNaN(h)||h<=0)){d.save();var s=Kn(a.lineWidth,i.borderWidth);if(d.fillStyle=Kn(a.fillStyle,r),d.lineCap=Kn(a.lineCap,i.borderCapStyle),d.lineDashOffset=Kn(a.lineDashOffset,i.borderDashOffset),d.lineJoin=Kn(a.lineJoin,i.borderJoinStyle),d.lineWidth=s,d.strokeStyle=Kn(a.strokeStyle,r),d.setLineDash&&d.setLineDash(Kn(a.lineDash,i.borderDash)),e.labels&&e.labels.usePointStyle){var o=h*Math.SQRT2/2;lt.canvas.drawPoint(d,a.pointStyle,o,t+h/2,n+f/2)}else 0!==s&&d.strokeRect(t,n,h,f),d.fillRect(t,n,h,f);d.restore()}}(y,v,a),g[l].left=y,g[l].top=v,function(t,e,n,a){var r=f/2,i=h+r+t,s=e+r;d.fillText(n.text,i,s),n.hidden&&(d.beginPath(),d.lineWidth=2,d.moveTo(i,s),d.lineTo(i+a,s),d.stroke())}(y,v,a,c),p?u.x+=m+n.padding:u.y+=b}))}},_getLegendItemAt:function(t,e){var n,a,r,i=this;if(t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom)for(r=i.legendHitBoxes,n=0;n<r.length;++n)if(t>=(a=r[n]).left&&t<=a.left+a.width&&e>=a.top&&e<=a.top+a.height)return i.legendItems[n];return null},handleEvent:function(t){var e,n=this,a=n.options,r="mouseup"===t.type?"click":t.type;if("mousemove"===r){if(!a.onHover&&!a.onLeave)return}else{if("click"!==r)return;if(!a.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===r?e&&a.onClick&&a.onClick.call(n,t.native,e):(a.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&a.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),a.onHover&&e&&a.onHover.call(n,t.native,e))}});function Jn(t,e){var n=new Zn({ctx:t.ctx,options:e,chart:t});ve.configure(t,n,e),ve.addBox(t,n),t.legend=n}var Qn={id:"legend",_element:Zn,beforeInit:function(t){var e=t.options.legend;e&&Jn(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(lt.mergeIf(e,ot.global.legend),n?(ve.configure(t,n,e),n.options=e):Jn(t,e)):n&&(ve.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Xn=lt.noop;ot._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var ta=gt.extend({initialize:function(t){lt.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:Xn,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Xn,beforeSetDimensions:Xn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Xn,beforeBuildLabels:Xn,buildLabels:Xn,afterBuildLabels:Xn,beforeFit:Xn,fit:function(){var t=this,e=t.options,n=e.display,a=t.minSize,r=lt.isArray(e.text)?e.text.length:1,i=lt.options._parseFont(e),s=n?r*i.lineHeight+2*e.padding:0;t.isHorizontal()?(a.width=t.maxWidth,a.height=s):(a.width=s,a.height=t.maxHeight),t.width=a.width,t.height=a.height},afterFit:Xn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var a,r,i,s=lt.options._parseFont(n),o=s.lineHeight,u=o/2+n.padding,d=0,l=t.top,c=t.left,f=t.bottom,h=t.right;e.fillStyle=lt.valueOrDefault(n.fontColor,ot.global.defaultFontColor),e.font=s.string,t.isHorizontal()?(r=c+(h-c)/2,i=l+u,a=h-c):(r="left"===n.position?c+u:h-u,i=l+(f-l)/2,a=f-l,d=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,i),e.rotate(d),e.textAlign="center",e.textBaseline="middle";var g=n.text;if(lt.isArray(g))for(var p=0,b=0;b<g.length;++b)e.fillText(g[b],0,p,a),p+=o;else e.fillText(g,0,0,a);e.restore()}}});function ea(t,e){var n=new ta({ctx:t.ctx,options:e,chart:t});ve.configure(t,n,e),ve.addBox(t,n),t.titleBlock=n}var na={},aa=Un,ra=Qn,ia={id:"title",_element:ta,beforeInit:function(t){var e=t.options.title;e&&ea(t,e)},beforeUpdate:function(t){var e=t.options.title,n=t.titleBlock;e?(lt.mergeIf(e,ot.global.title),n?(ve.configure(t,n,e),n.options=e):ea(t,e)):n&&(ve.removeBox(t,n),delete t.titleBlock)}};for(var sa in na.filler=aa,na.legend=ra,na.title=ia,We.helpers=lt,function(){function t(t,e,n){var a;return"string"==typeof t?(a=parseInt(t,10),-1!==t.indexOf("%")&&(a=a/100*e.parentNode[n])):a=t,a}function e(t){return null!=t&&"none"!==t}function n(n,a,r){var i=document.defaultView,s=lt._getParentNode(n),o=i.getComputedStyle(n)[a],u=i.getComputedStyle(s)[a],d=e(o),l=e(u),c=Number.POSITIVE_INFINITY;return d||l?Math.min(d?t(o,n,r):c,l?t(u,s,r):c):"none"}lt.where=function(t,e){if(lt.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return lt.each(t,(function(t){e(t)&&n.push(t)})),n},lt.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var a=0,r=t.length;a<r;++a)if(e.call(n,t[a],a,t))return a;return-1},lt.findNextWhere=function(t,e,n){lt.isNullOrUndef(n)&&(n=-1);for(var a=n+1;a<t.length;a++){var r=t[a];if(e(r))return r}},lt.findPreviousWhere=function(t,e,n){lt.isNullOrUndef(n)&&(n=t.length);for(var a=n-1;a>=0;a--){var r=t[a];if(e(r))return r}},lt.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},lt.almostEquals=function(t,e,n){return Math.abs(t-e)<n},lt.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&n+e>t},lt.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},lt.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},lt.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},lt.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e);return t===Math.pow(10,n)?n:e},lt.toRadians=function(t){return t*(Math.PI/180)},lt.toDegrees=function(t){return t*(180/Math.PI)},lt._decimalPlaces=function(t){if(lt.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},lt.getAngleFromPoint=function(t,e){var n=e.x-t.x,a=e.y-t.y,r=Math.sqrt(n*n+a*a),i=Math.atan2(a,n);return i<-.5*Math.PI&&(i+=2*Math.PI),{angle:i,distance:r}},lt.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},lt.aliasPixel=function(t){return t%2==0?0:.5},lt._alignPixel=function(t,e,n){var a=t.currentDevicePixelRatio,r=n/2;return Math.round((e-r)*a)/a+r},lt.splineCurve=function(t,e,n,a){var r=t.skip?e:t,i=e,s=n.skip?e:n,o=Math.sqrt(Math.pow(i.x-r.x,2)+Math.pow(i.y-r.y,2)),u=Math.sqrt(Math.pow(s.x-i.x,2)+Math.pow(s.y-i.y,2)),d=o/(o+u),l=u/(o+u),c=a*(d=isNaN(d)?0:d),f=a*(l=isNaN(l)?0:l);return{previous:{x:i.x-c*(s.x-r.x),y:i.y-c*(s.y-r.y)},next:{x:i.x+f*(s.x-r.x),y:i.y+f*(s.y-r.y)}}},lt.EPSILON=Number.EPSILON||1e-14,lt.splineCurveMonotone=function(t){var e,n,a,r,i,s,o,u,d,l=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),c=l.length;for(e=0;e<c;++e)if(!(a=l[e]).model.skip){if(n=e>0?l[e-1]:null,(r=e<c-1?l[e+1]:null)&&!r.model.skip){var f=r.model.x-a.model.x;a.deltaK=0!==f?(r.model.y-a.model.y)/f:0}a.mK=!n||n.model.skip?a.deltaK:!r||r.model.skip?n.deltaK:this.sign(n.deltaK)!==this.sign(a.deltaK)?0:(n.deltaK+a.deltaK)/2}for(e=0;e<c-1;++e)r=l[e+1],(a=l[e]).model.skip||r.model.skip||(lt.almostEquals(a.deltaK,0,this.EPSILON)?a.mK=r.mK=0:(i=a.mK/a.deltaK,s=r.mK/a.deltaK,(u=Math.pow(i,2)+Math.pow(s,2))<=9||(o=3/Math.sqrt(u),a.mK=i*o*a.deltaK,r.mK=s*o*a.deltaK)));for(e=0;e<c;++e)(a=l[e]).model.skip||(r=e<c-1?l[e+1]:null,(n=e>0?l[e-1]:null)&&!n.model.skip&&(a.model.controlPointPreviousX=a.model.x-(d=(a.model.x-n.model.x)/3),a.model.controlPointPreviousY=a.model.y-d*a.mK),r&&!r.model.skip&&(a.model.controlPointNextX=a.model.x+(d=(r.model.x-a.model.x)/3),a.model.controlPointNextY=a.model.y+d*a.mK))},lt.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},lt.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},lt.niceNum=function(t,e){var n=Math.floor(lt.log10(t)),a=t/Math.pow(10,n);return(e?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10)*Math.pow(10,n)},lt.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},lt.getRelativePosition=function(t,e){var n,a,r=t.originalEvent||t,i=t.target||t.srcElement,s=i.getBoundingClientRect(),o=r.touches;o&&o.length>0?(n=o[0].clientX,a=o[0].clientY):(n=r.clientX,a=r.clientY);var u=parseFloat(lt.getStyle(i,"padding-left")),d=parseFloat(lt.getStyle(i,"padding-top")),l=parseFloat(lt.getStyle(i,"padding-right")),c=parseFloat(lt.getStyle(i,"padding-bottom")),f=s.bottom-s.top-d-c;return{x:n=Math.round((n-s.left-u)/(s.right-s.left-u-l)*i.width/e.currentDevicePixelRatio),y:a=Math.round((a-s.top-d)/f*i.height/e.currentDevicePixelRatio)}},lt.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},lt.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},lt._calculatePadding=function(t,e,n){return(e=lt.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},lt._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},lt.getMaximumWidth=function(t){var e=lt._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,a=n-lt._calculatePadding(e,"padding-left",n)-lt._calculatePadding(e,"padding-right",n),r=lt.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},lt.getMaximumHeight=function(t){var e=lt._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,a=n-lt._calculatePadding(e,"padding-top",n)-lt._calculatePadding(e,"padding-bottom",n),r=lt.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},lt.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},lt.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var a=t.canvas,r=t.height,i=t.width;a.height=r*n,a.width=i*n,t.ctx.scale(n,n),a.style.height||a.style.width||(a.style.height=r+"px",a.style.width=i+"px")}},lt.fontString=function(t,e,n){return e+" "+t+"px "+n},lt.longestText=function(t,e,n,a){var r=(a=a||{}).data=a.data||{},i=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(r=a.data={},i=a.garbageCollect=[],a.font=e),t.font=e;var s=0;lt.each(n,(function(e){null!=e&&!0!==lt.isArray(e)?s=lt.measureText(t,r,i,s,e):lt.isArray(e)&&lt.each(e,(function(e){null==e||lt.isArray(e)||(s=lt.measureText(t,r,i,s,e))}))}));var o=i.length/2;if(o>n.length){for(var u=0;u<o;u++)delete r[i[u]];i.splice(0,o)}return s},lt.measureText=function(t,e,n,a,r){var i=e[r];return i||(i=e[r]=t.measureText(r).width,n.push(r)),i>a&&(a=i),a},lt.numberOfLabelLines=function(t){var e=1;return lt.each(t,(function(t){lt.isArray(t)&&t.length>e&&(e=t.length)})),e},lt.color=W?function(t){return t instanceof CanvasGradient&&(t=ot.global.defaultColor),W(t)}:function(t){return console.error("Color.js not found!"),t},lt.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:lt.color(t).saturate(.5).darken(.1).rgbString()}}(),We._adapters=Ze,We.Animation=bt,We.animationService=mt,We.controllers=oe,We.DatasetController=Tt,We.defaults=ot,We.Element=gt,We.elements=qt,We.Interaction=ge,We.layouts=ve,We.platform=Ae,We.plugins=ke,We.Scale=nn,We.scaleService=Ee,We.Ticks=Je,We.Tooltip=Ge,We.helpers.each(qn,(function(t,e){We.scaleService.registerScaleType(e,t,t._defaults)})),na)na.hasOwnProperty(sa)&&We.plugins.register(na[sa]);We.platform.initialize();var oa=We;return"undefined"!=typeof window&&(window.Chart=We),We.Chart=We,We.Legend=na.legend._element,We.Title=na.title._element,We.pluginService=We.plugins,We.PluginBase=We.Element.extend({}),We.canvasHelpers=We.helpers.canvas,We.layoutService=We.layouts,We.LinearScaleBase=sn,We.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(t){We[t]=function(e,n){return new We(e,We.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}})),oa}(function(){try{return n("wd/R")}catch(t){}}())},MP8s:function(t,e,n){"use strict";n.d(e,"a",(function(){return T}));var a=n("8Y7J"),r=n("2vnA"),i=n("f95s"),s=n("mfoh"),o=n("X+05"),u=n("afOK"),d=n.n(u),l=n("RBan"),c=n.n(l),f=n("wig9"),h=n.n(f),g=n("J2m7"),p=n.n(g),b=n("4qC0"),m=n.n(b),y=n("lSCD"),v=n.n(y),x=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},_=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},T=function(){function t(){this.options=new s.b,this.eventNames=Object.keys(o.a),this.expandedNodeIds={},this.selectedLeafNodeIds={},this.activeNodeIds={},this.hiddenNodeIds={},this.focusedNodeId=null,this.firstUpdate=!0,this.subscriptions=[]}var e;return e=t,t.prototype.fireEvent=function(t){t.treeModel=this,this.events[t.eventName].emit(t),this.events.event.emit(t)},t.prototype.subscribe=function(t,e){var n=this.events[t].subscribe(e);this.subscriptions.push(n)},t.prototype.getFocusedNode=function(){return this.focusedNode},t.prototype.getActiveNode=function(){return this.activeNodes[0]},t.prototype.getActiveNodes=function(){return this.activeNodes},t.prototype.getVisibleRoots=function(){return this.virtualRoot.visibleChildren},t.prototype.getFirstRoot=function(t){return void 0===t&&(t=!1),d()(t?this.getVisibleRoots():this.roots)},t.prototype.getLastRoot=function(t){return void 0===t&&(t=!1),c()(t?this.getVisibleRoots():this.roots)},Object.defineProperty(t.prototype,"isFocused",{get:function(){return e.focusedTree===this},enumerable:!0,configurable:!0}),t.prototype.isNodeFocused=function(t){return this.focusedNode===t},t.prototype.isEmptyTree=function(){return this.roots&&0===this.roots.length},Object.defineProperty(t.prototype,"focusedNode",{get:function(){return this.focusedNodeId?this.getNodeById(this.focusedNodeId):null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expandedNodes",{get:function(){var t=this,e=Object.keys(this.expandedNodeIds).filter((function(e){return t.expandedNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return h()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeNodes",{get:function(){var t=this,e=Object.keys(this.activeNodeIds).filter((function(e){return t.activeNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return h()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hiddenNodes",{get:function(){var t=this,e=Object.keys(this.hiddenNodeIds).filter((function(e){return t.hiddenNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return h()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectedLeafNodes",{get:function(){var t=this,e=Object.keys(this.selectedLeafNodeIds).filter((function(e){return t.selectedLeafNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return h()(e)},enumerable:!0,configurable:!0}),t.prototype.getNodeByPath=function(t,e){if(void 0===e&&(e=null),!t)return null;if(e=e||this.virtualRoot,0===t.length)return e;if(!e.children)return null;var n=t.shift(),a=p()(e.children,{id:n});return a?this.getNodeByPath(t,a):null},t.prototype.getNodeById=function(t){var e=t.toString();return this.getNodeBy((function(t){return t.id.toString()===e}))},t.prototype.getNodeBy=function(t,e){if(void 0===e&&(e=null),!(e=e||this.virtualRoot).children)return null;var n=p()(e.children,t);if(n)return n;for(var a=0,r=e.children;a<r.length;a++){var i=this.getNodeBy(t,r[a]);if(i)return i}},t.prototype.isExpanded=function(t){return this.expandedNodeIds[t.id]},t.prototype.isHidden=function(t){return this.hiddenNodeIds[t.id]},t.prototype.isActive=function(t){return this.activeNodeIds[t.id]},t.prototype.isSelected=function(t){return this.selectedLeafNodeIds[t.id]},t.prototype.ngOnDestroy=function(){this.dispose(),this.unsubscribeAll()},t.prototype.dispose=function(){this.virtualRoot&&this.virtualRoot.dispose()},t.prototype.unsubscribeAll=function(){this.subscriptions.forEach((function(t){return t.unsubscribe()})),this.subscriptions=[]},t.prototype.setData=function(t){var e=t.nodes,n=t.options,a=void 0===n?null:n,r=t.events,i=void 0===r?null:r;a&&(this.options=new s.b(a)),i&&(this.events=i),e&&(this.nodes=e),this.update()},t.prototype.update=function(){var t,e=((t={id:this.options.rootId,virtual:!0})[this.options.childrenField]=this.nodes,t);this.dispose(),this.virtualRoot=new i.a(e,null,this,0),this.roots=this.virtualRoot.children,this.firstUpdate?this.roots&&(this.firstUpdate=!1,this._calculateExpandedNodes()):this.fireEvent({eventName:o.a.updateData})},t.prototype.setFocusedNode=function(t){this.focusedNodeId=t?t.id:null},t.prototype.setFocus=function(t){e.focusedTree=t?this:null},t.prototype.doForAll=function(t){this.roots.forEach((function(e){return e.doForAll(t)}))},t.prototype.focusNextNode=function(){var t=this.getFocusedNode(),e=t?t.findNextNode(!0,!0):this.getFirstRoot(!0);e&&e.focus()},t.prototype.focusPreviousNode=function(){var t=this.getFocusedNode(),e=t?t.findPreviousNode(!0):this.getLastRoot(!0);e&&e.focus()},t.prototype.focusDrillDown=function(){var t=this.getFocusedNode();if(t&&t.isCollapsed&&t.hasChildren)t.toggleExpanded();else{var e=t?t.getFirstChild(!0):this.getFirstRoot(!0);e&&e.focus()}},t.prototype.focusDrillUp=function(){var t=this.getFocusedNode();if(t)if(t.isExpanded)t.toggleExpanded();else{var e=t.realParent;e&&e.focus()}},t.prototype.setActiveNode=function(t,e,n){void 0===n&&(n=!1),n?this._setActiveNodeMulti(t,e):this._setActiveNodeSingle(t,e),e?(t.focus(this.options.scrollOnActivate),this.fireEvent({eventName:o.a.activate,node:t}),this.fireEvent({eventName:o.a.nodeActivate,node:t})):(this.fireEvent({eventName:o.a.deactivate,node:t}),this.fireEvent({eventName:o.a.nodeDeactivate,node:t}))},t.prototype.setSelectedNode=function(t,e){var n;this.selectedLeafNodeIds=Object.assign({},this.selectedLeafNodeIds,((n={})[t.id]=e,n)),e?(t.focus(),this.fireEvent({eventName:o.a.select,node:t})):this.fireEvent({eventName:o.a.deselect,node:t})},t.prototype.setExpandedNode=function(t,e){var n;this.expandedNodeIds=Object.assign({},this.expandedNodeIds,((n={})[t.id]=e,n)),this.fireEvent({eventName:o.a.toggleExpanded,node:t,isExpanded:e})},t.prototype.expandAll=function(){this.roots.forEach((function(t){return t.expandAll()}))},t.prototype.collapseAll=function(){this.roots.forEach((function(t){return t.collapseAll()}))},t.prototype.setIsHidden=function(t,e){var n;this.hiddenNodeIds=Object.assign({},this.hiddenNodeIds,((n={})[t.id]=e,n))},t.prototype.setHiddenNodeIds=function(t){this.hiddenNodeIds=t.reduce((function(t,e){var n;return Object.assign(t,((n={})[e]=!0,n))}),{})},t.prototype.performKeyAction=function(t,e){var n=this.options.actionMapping.keys[e.keyCode];return!!n&&(e.preventDefault(),n(this,t,e),!0)},t.prototype.filterNodes=function(t,e){var n,a=this;if(void 0===e&&(e=!0),!t)return this.clearFilter();if(m()(t))n=function(e){return-1!==e.displayField.toLowerCase().indexOf(t.toLowerCase())};else{if(!v()(t))return console.error("Don't know what to do with filter",t),void console.error("Should be either a string or function");n=t}var r={};this.roots.forEach((function(t){return a._filterNode(r,t,n,e)})),this.hiddenNodeIds=r,this.fireEvent({eventName:o.a.changeFilter})},t.prototype.clearFilter=function(){this.hiddenNodeIds={},this.fireEvent({eventName:o.a.changeFilter})},t.prototype.moveNode=function(t,e){var n=t.getIndexInParent(),a=t.parent;if(this.canMoveNode(t,e,n)){var r=a.getField("children");e.parent.getField("children")||e.parent.setField("children",[]);var i=e.parent.getField("children"),s=r.splice(n,1)[0],u=a===e.parent&&e.index>n?e.index-1:e.index;i.splice(u,0,s),a.treeModel.update(),e.parent.treeModel!==a.treeModel&&e.parent.treeModel.update(),this.fireEvent({eventName:o.a.moveNode,node:s,to:{parent:e.parent.data,index:u},from:{parent:a.data,index:n}})}},t.prototype.copyNode=function(t,e){var n=t.getIndexInParent();if(this.canMoveNode(t,e,n)){e.parent.getField("children")||e.parent.setField("children",[]);var a=e.parent.getField("children"),r=this.options.getNodeClone(t);a.splice(e.index,0,r),t.treeModel.update(),e.parent.treeModel!==t.treeModel&&e.parent.treeModel.update(),this.fireEvent({eventName:o.a.copyNode,node:r,to:{parent:e.parent.data,index:e.index}})}},t.prototype.getState=function(){return{expandedNodeIds:this.expandedNodeIds,selectedLeafNodeIds:this.selectedLeafNodeIds,activeNodeIds:this.activeNodeIds,hiddenNodeIds:this.hiddenNodeIds,focusedNodeId:this.focusedNodeId}},t.prototype.setState=function(t){t&&Object.assign(this,{expandedNodeIds:t.expandedNodeIds||{},selectedLeafNodeIds:t.selectedLeafNodeIds||{},activeNodeIds:t.activeNodeIds||{},hiddenNodeIds:t.hiddenNodeIds||{},focusedNodeId:t.focusedNodeId})},t.prototype.subscribeToState=function(t){var e=this;Object(r.b)((function(){return t(e.getState())}))},t.prototype.canMoveNode=function(t,e,n){return void 0===n&&(n=void 0),n||t.getIndexInParent(),(t.parent!==e.parent||n!==e.index)&&!e.parent.isDescendantOf(t)},t.prototype.calculateExpandedNodes=function(){this._calculateExpandedNodes()},t.prototype._filterNode=function(t,e,n,a){var r=this,i=n(e);return e.children&&e.children.forEach((function(e){r._filterNode(t,e,n,a)&&(i=!0)})),i||(t[e.id]=!0),a&&i&&e.ensureVisible(),i},t.prototype._calculateExpandedNodes=function(t){var e,n=this;void 0===t&&(t=null),(t=t||this.virtualRoot).data[this.options.isExpandedField]&&(this.expandedNodeIds=Object.assign({},this.expandedNodeIds,((e={})[t.id]=!0,e))),t.children&&t.children.forEach((function(t){return n._calculateExpandedNodes(t)}))},t.prototype._setActiveNodeSingle=function(t,e){var n,a=this;this.activeNodes.filter((function(e){return e!==t})).forEach((function(t){a.fireEvent({eventName:o.a.deactivate,node:t}),a.fireEvent({eventName:o.a.nodeDeactivate,node:t})})),this.activeNodeIds=e?((n={})[t.id]=!0,n):{}},t.prototype._setActiveNodeMulti=function(t,e){var n;this.activeNodeIds=Object.assign({},this.activeNodeIds,((n={})[t.id]=e,n))},t.focusedTree=null,x([r.d,_("design:type",Array)],t.prototype,"roots",void 0),x([r.d,_("design:type",Object)],t.prototype,"expandedNodeIds",void 0),x([r.d,_("design:type",Object)],t.prototype,"selectedLeafNodeIds",void 0),x([r.d,_("design:type",Object)],t.prototype,"activeNodeIds",void 0),x([r.d,_("design:type",Object)],t.prototype,"hiddenNodeIds",void 0),x([r.d,_("design:type",Object)],t.prototype,"focusedNodeId",void 0),x([r.d,_("design:type",i.a)],t.prototype,"virtualRoot",void 0),x([r.c,_("design:type",Object),_("design:paramtypes",[])],t.prototype,"focusedNode",null),x([r.c,_("design:type",Object),_("design:paramtypes",[])],t.prototype,"expandedNodes",null),x([r.c,_("design:type",Object),_("design:paramtypes",[])],t.prototype,"activeNodes",null),x([r.c,_("design:type",Object),_("design:paramtypes",[])],t.prototype,"hiddenNodes",null),x([r.c,_("design:type",Object),_("design:paramtypes",[])],t.prototype,"selectedLeafNodes",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"setData",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"update",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"setFocusedNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"setFocus",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"doForAll",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"focusNextNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"focusPreviousNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"focusDrillDown",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"focusDrillUp",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object,Object]),_("design:returntype",void 0)],t.prototype,"setActiveNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"setSelectedNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"setExpandedNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"expandAll",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"collapseAll",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"setIsHidden",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"setHiddenNodeIds",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"filterNodes",null),x([r.a,_("design:type",Function),_("design:paramtypes",[]),_("design:returntype",void 0)],t.prototype,"clearFilter",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"moveNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object,Object]),_("design:returntype",void 0)],t.prototype,"copyNode",null),x([r.a,_("design:type",Function),_("design:paramtypes",[Object]),_("design:returntype",void 0)],t.prototype,"setState",null),e=x([Object(a.Injectable)()],t)}()},MdoF:function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return d})),n.d(e,"a",(function(){return c}));var a=n("8Y7J"),r=n("CNMR"),i=n("SVse"),s=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"button",[["aria-label","Close"],["class","close"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["×"])),(t()(),a["ɵeld"](3,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Close"]))],null,null)}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["role","alert"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,o)),a["ɵdid"](4,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"alert alert-"+n.type,n.classes),t(e,4,0,n.dismissible)}),null)}function d(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.isOpen)}),null)}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"alert",[],null,null,null,d,s)),a["ɵdid"](1,114688,null,0,r.a,[r.b,a.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}var c=a["ɵccf"]("alert,bs-alert",r.a,l,{type:"type",dismissible:"dismissible",dismissOnTimeout:"dismissOnTimeout",isOpen:"isOpen"},{onClose:"onClose",onClosed:"onClosed"},["*"])},MrPd:function(t,e,n){var a=n("hypo"),r=n("ljhN"),i=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var s=t[e];i.call(t,e)&&r(s,n)&&(void 0!==n||e in t)||a(t,e,n)}},MuvH:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("IheW"),i=n("pL04");let s=(()=>{class t{constructor(t){this.http=t}findValue(t,e){if(t.value)return t.value.find(t=>t.section===e)}getValue(t,e){let n=this.findValue(t,e);if(!n){const a=e.indexOf(".");-1!==a&&(n=this.findValue(t,e.substring(0,a)))}return n||(n=this.findValue(t,"global")),n?n.value:t.default}getConfigData(){return this.http.get("api/cluster_conf/")}get(t){return this.http.get(`api/cluster_conf/${t}`)}filter(t){return this.http.get(`api/cluster_conf/filter?names=${t.join(",")}`)}create(t){return this.http.post("api/cluster_conf/",t)}delete(t,e){return this.http.delete(`api/cluster_conf/${t}?section=${e}`)}bulkCreate(t){return this.http.put("api/cluster_conf/",t)}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.c))},token:t,providedIn:i.a}),t})()},MvSz:function(t,e,n){var a=n("LXxW"),r=n("0ycA"),i=Object.prototype.propertyIsEnumerable,s=Object.getOwnPropertySymbols;t.exports=s?function(t){return null==t?[]:(t=Object(t),a(s(t),(function(e){return i.call(t,e)})))}:r},Mxhz:function(t,e,n){"use strict";var a=n("IheW"),r=n("LRne"),i=n("7o/Q");class s{constructor(t){this.value=t}call(t,e){return e.subscribe(new o(t,this.value))}}class o extends i.a{constructor(t,e){super(t),this.value=e}_next(t){this.destination.next(this.value)}}var u=n("JIr8"),d=n("8Y7J"),l=n("pL04");n.d(e,"a",(function(){return c}));let c=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("api/user")}delete(t){return this.http.delete(`api/user/${t}`)}get(t){return this.http.get(`api/user/${t}`)}create(t){return this.http.post("api/user",t)}update(t){return this.http.put(`api/user/${t.username}`,t)}changePassword(t,e,n){return this.http.post(`api/user/${t}/change_password`,{old_password:e,new_password:n})}validateUserName(t){return this.get(t).pipe(t=>t.lift(new s(!0)),Object(u.a)(t=>(t.preventDefault(),Object(r.a)(!1))))}validatePassword(t,e=null,n=null){let r=new a.h;return r=r.append("password",t),e&&(r=r.append("username",e)),n&&(r=r.append("old_password",n)),this.http.post("api/user/validate_password",null,{params:r})}}return t.ngInjectableDef=d["ɵɵdefineInjectable"]({factory:function(){return new t(d["ɵɵinject"](a.c))},token:t,providedIn:l.a}),t})()},"N+g0":function(t,e,n){var a=n("g6v/"),r=n("m/L8"),i=n("glrk"),s=n("33Wh");t.exports=a?Object.defineProperties:function(t,e){i(t);for(var n,a=s(e),o=a.length,u=0;o>u;)r.f(t,n=a[u++],e[n]);return t}},"NC/Y":function(t,e,n){var a=n("0GbY");t.exports=a("navigator","userAgent")||""},NEZu:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n,a){this.customColors={backgroundColor:void 0,borderColor:void 0},this.checkOffset=!1,this.chartEl=t.nativeElement,this.getStyleLeft=n,this.getStyleTop=a,this.tooltipEl=e.nativeElement}customTooltips(t){if(0===t.opacity)return void(this.tooltipEl.style.opacity=0);if(this.tooltipEl.classList.remove("above","below","no-transform"),this.tooltipEl.classList.add(t.yAlign?t.yAlign:"no-transform"),t.body){const e=t.title||[],n=t.body.map(t=>t.lines);let a="<thead>";e.forEach(t=>{a+="<tr><th>"+this.getTitle(t)+"</th></tr>"}),a+="</thead><tbody>",n.forEach((e,n)=>{const r=t.labelColors[n];let i="background:"+(this.customColors.backgroundColor||r.backgroundColor);i+="; border-color:"+(this.customColors.borderColor||r.borderColor),i+="; border-width: 2px",a+='<tr><td nowrap><span class="chartjs-tooltip-key" style="'+i+'"></span>'+this.getBody(e)+"</td></tr>"}),a+="</tbody>",this.tooltipEl.querySelector("table").innerHTML=a}const e=this.chartEl.offsetTop,n=this.chartEl.offsetLeft;if(this.checkOffset){const e=t.width/2;this.tooltipEl.classList.remove("transform-left"),this.tooltipEl.classList.remove("transform-right"),t.caretX-e<0?this.tooltipEl.classList.add("transform-left"):t.caretX+e>this.chartEl.width&&this.tooltipEl.classList.add("transform-right")}this.tooltipEl.style.left=this.getStyleLeft(t,n),this.tooltipEl.style.top=this.getStyleTop(t,e),this.tooltipEl.style.opacity=1,this.tooltipEl.style.fontFamily=t._fontFamily,this.tooltipEl.style.fontSize=t.fontSize,this.tooltipEl.style.fontStyle=t._fontStyle,this.tooltipEl.style.padding=t.yPadding+"px "+t.xPadding+"px"}getBody(t){return t}getTitle(t){return t}}},NJ4a:function(t,e,n){"use strict";function a(t){setTimeout(()=>{throw t},0)}n.d(e,"a",(function(){return a}))},NJ9Y:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("sVev"),r=n("pLZG"),i=n("BFxc"),s=n("XDbj"),o=n("xbPD"),u=n("SpAZ");function d(t,e){const n=arguments.length>=2;return d=>d.pipe(t?Object(r.a)((e,n)=>t(e,n,d)):u.a,Object(i.a)(1),n?Object(o.a)(e):Object(s.a)(()=>new a.a))}},NKxu:function(t,e,n){var a=n("lSCD"),r=n("E2jh"),i=n("GoyQ"),s=n("3Fdi"),o=/^\[object .+?Constructor\]$/,u=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!i(t)||r(t))&&(a(t)?u:o).test(s(t))}},NUGo:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("iInd"),s=n("FE24"),o=n("z/SZ"),u=n("GS7A");n("S7zO"),n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return b}));var d=a["ɵcrt"]({encapsulation:0,styles:[[".dropdown-menu[_ngcontent-%COMP%] > .disabled[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{pointer-events:auto;cursor:default!important}"]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,10,"button",[["type","button"]],null,[[null,"click"]],(function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["ɵnov"](t,5).onClick()&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.ngIf)&&r),r}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](4,{disabled:0}),a["ɵdid"](5,16384,null,0,i.n,[i.m,i.a,[8,null],a.Renderer2,a.ElementRef],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](8,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](9,1),(t()(),a["ɵeld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](11,null,["",""]))],(function(t,e){var n=e.component,r=a["ɵinlineInterpolate"](1,"btn btn-",n.btnColor,""),i=t(e,4,0,n.disableSelectionAction(e.context.ngIf));t(e,3,0,r,i),t(e,5,0,e.context.ngIf.preserveFragment?"":null,n.useRouterLink(e.context.ngIf));var s=t(e,9,0,e.context.ngIf.icon);t(e,8,0,s)}),(function(t,e){t(e,11,0,e.context.ngIf.name)}))}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](1,null,[""," "]))],null,(function(t,e){t(e,1,0,e.component.dropDownOnly)}))}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[["class","sr-only"]],null,null,null,null,null))],null,null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"button",[["dropdownToggle",""],["type","button"]],[[8,"className",0],[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick()&&r),r}),null,null)),a["ɵdid"](1,147456,null,0,s.g,[a.ChangeDetectorRef,s.c,a.ElementRef,a.Renderer2,s.f],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.dropDownOnly),t(e,5,0,!n.dropDownOnly)}),(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"btn btn-",e.component.btnColor," dropdown-toggle dropdown-toggle-split"),!0,a["ɵnov"](e,1).isDisabled,a["ɵnov"](e,1).isOpen)}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,12,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,11,"li",[["data-toggle","tooltip"],["role","menuitem"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,10,"a",[["class","dropdown-item"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var r=!0,i=t.component;return"click"===e&&(r=!1!==a["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),"click"===e&&(r=!1!==i.useClickAction(t.context.$implicit)&&r),r}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](5,{disabled:0}),a["ɵdid"](6,671744,null,0,i.p,[i.m,i.a,r.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["ɵeld"](7,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](9,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](10,1),(t()(),a["ɵeld"](11,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](12,null,["",""]))],(function(t,e){var n=e.component,a=t(e,5,0,n.disableSelectionAction(e.context.$implicit));t(e,4,0,"dropdown-item",a),t(e,6,0,e.context.$implicit.preserveFragment?"":null,n.useRouterLink(e.context.$implicit));var r=t(e,10,0,e.context.$implicit.icon);t(e,9,0,r)}),(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](1,"",n.toClassName(e.context.$implicit.name),""),a["ɵinlineInterpolate"](1,"",n.useDisableDesc(e.context.$implicit),"")),t(e,2,0,a["ɵnov"](e,6).target,a["ɵnov"](e,6).href),t(e,12,0,e.context.$implicit.name)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](2,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.dropDownActions)}),null)}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,8,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,s.f,s.f,[]),a["ɵdid"](2,212992,null,0,s.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,o.a,s.f,s.a,u.b],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](8,16384,null,0,s.d,[s.f,a.ViewContainerRef,a.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.getCurrentButton()),t(e,6,0,n.showDropDownActions())}),(function(t,e){t(e,0,0,a["ɵnov"](e,2).dropup,a["ɵnov"](e,2).isOpen,a["ɵnov"](e,2).isOpen&&a["ɵnov"](e,2).isBs4)}))}},NaFW:function(t,e,n){var a=n("9d/t"),r=n("P4y1"),i=n("tiKp")("iterator");t.exports=function(t){if(null!=t)return t[i]||t["@@iterator"]||r[a(t)]}},Nehr:function(t,e,n){"use strict";t.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},Nh2a:function(t,e,n){var a=n("SKAX");t.exports=function(t,e){var n;return a(t,(function(t,a,r){return!(n=e(t,a,r))})),!!n}},Npjl:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},NykK:function(t,e,n){var a=n("nmnc"),r=n("AP2z"),i=n("KfNM"),s=a?a.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":s&&s in Object(t)?r(t):i(t)}},O0oS:function(t,e,n){var a=n("Cwc5"),r=function(){try{var t=a(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();t.exports=r},O741:function(t,e,n){var a=n("hh1v");t.exports=function(t){if(!a(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},O7RO:function(t,e,n){var a=n("CMye"),r=n("7GkX");t.exports=function(t){for(var e=r(t),n=e.length;n--;){var i=e[n],s=t[i];e[n]=[i,s,a(s)]}return e}},O9Tv:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("YzqF");e.Mutex=a.default},OBhP:function(t,e,n){var a=n("fmRc"),r=n("gFfm"),i=n("MrPd"),s=n("WwFo"),o=n("Dw+G"),u=n("5Tg0"),d=n("Q1l4"),l=n("VOtZ"),c=n("EEGq"),f=n("qZTm"),h=n("G6z8"),g=n("QqLw"),p=n("yHx3"),b=n("wrZu"),m=n("+iFO"),y=n("Z0cm"),v=n("DSRE"),x=n("zEVN"),_=n("GoyQ"),T=n("1+5i"),O=n("7GkX"),w={};w["[object Arguments]"]=w["[object Array]"]=w["[object ArrayBuffer]"]=w["[object DataView]"]=w["[object Boolean]"]=w["[object Date]"]=w["[object Float32Array]"]=w["[object Float64Array]"]=w["[object Int8Array]"]=w["[object Int16Array]"]=w["[object Int32Array]"]=w["[object Map]"]=w["[object Number]"]=w["[object Object]"]=w["[object RegExp]"]=w["[object Set]"]=w["[object String]"]=w["[object Symbol]"]=w["[object Uint8Array]"]=w["[object Uint8ClampedArray]"]=w["[object Uint16Array]"]=w["[object Uint32Array]"]=!0,w["[object Error]"]=w["[object Function]"]=w["[object WeakMap]"]=!1,t.exports=function t(e,n,S,I,N,C){var R,A=1&n,k=2&n,E=4&n;if(S&&(R=N?S(e,I,N,C):S(e)),void 0!==R)return R;if(!_(e))return e;var L=y(e);if(L){if(R=p(e),!A)return d(e,R)}else{var D=g(e),P="[object Function]"==D||"[object GeneratorFunction]"==D;if(v(e))return u(e,A);if("[object Object]"==D||"[object Arguments]"==D||P&&!N){if(R=k||P?{}:m(e),!A)return k?c(e,o(R,e)):l(e,s(R,e))}else{if(!w[D])return N?e:{};R=b(e,D,A)}}C||(C=new a);var M=C.get(e);if(M)return M;C.set(e,R),T(e)?e.forEach((function(a){R.add(t(a,n,S,a,e,C))})):x(e)&&e.forEach((function(a,r){R.set(r,t(a,n,S,r,e,C))}));var q=E?k?h:f:k?keysIn:O,j=L?void 0:q(e);return r(j||e,(function(a,r){j&&(a=e[r=a]),i(R,r,t(a,n,S,r,e,C))})),R}},OIDT:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Input)(),s("design:type",Number)],t.prototype,"index",void 0),i([Object(a.Input)(),s("design:type",Object)],t.prototype,"templates",void 0),i([Object(a.Component)({selector:"tree-node-wrapper",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n      <div *ngIf="!templates.treeNodeWrapperTemplate" class="node-wrapper" [style.padding-left]="node.getNodePadding()">\n          <tree-node-checkbox *ngIf="node.options.useCheckbox" [node]="node"></tree-node-checkbox>\n          <tree-node-expander [node]="node"></tree-node-expander>\n          <div class="node-content-wrapper"\n               [class.node-content-wrapper-active]="node.isActive"\n               [class.node-content-wrapper-focused]="node.isFocused"\n               (click)="node.mouseAction(\'click\', $event)"\n               (dblclick)="node.mouseAction(\'dblClick\', $event)"\n               (mouseover)="node.mouseAction(\'mouseOver\', $event)"\n               (mouseout)="node.mouseAction(\'mouseOut\', $event)"\n               (contextmenu)="node.mouseAction(\'contextMenu\', $event)"\n               (treeDrop)="node.onDrop($event)"\n               (treeDropDragOver)="node.mouseAction(\'dragOver\', $event)"\n               (treeDropDragLeave)="node.mouseAction(\'dragLeave\', $event)"\n               (treeDropDragEnter)="node.mouseAction(\'dragEnter\', $event)"\n               [treeAllowDrop]="node.allowDrop"\n               [allowDragoverStyling]="node.allowDragoverStyling()"\n               [treeDrag]="node"\n               [treeDragEnabled]="node.allowDrag()">\n\n              <tree-node-content [node]="node" [index]="index" [template]="templates.treeNodeTemplate">\n              </tree-node-content>\n          </div>\n      </div>\n      <ng-container\n              [ngTemplateOutlet]="templates.treeNodeWrapperTemplate"\n              [ngTemplateOutletContext]="{ $implicit: node, node: node, index: index, templates: templates }">\n      </ng-container>\n  '}),s("design:paramtypes",[])],t)}()},OIYi:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(n("wd/R"))},OLbh:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("s7LF");class r{constructor(t,e){this.modalRef=t,this.modalService=e,this.boundCancel=this.cancel.bind(this),this.canceled=!1,this.confirmationForm=new a.k({}),this.onHide=this.modalService.onHide.subscribe(t=>{this.onCancel&&(t||this.canceled)&&this.onCancel()})}ngOnInit(){if(this.bodyContext=this.bodyContext||{},this.bodyContext.$implicit=this.bodyData,!this.onSubmit)throw new Error("No submit action defined");if(!this.buttonText)throw new Error("No action name defined");if(!this.titleText)throw new Error("No title defined");if(!this.bodyTpl&&!this.description)throw new Error("No description defined")}ngOnDestroy(){this.onHide.unsubscribe()}cancel(){this.canceled=!0,this.modalRef.hide()}stopLoadingSpinner(){this.confirmationForm.setErrors({cdSubmitButton:!0})}}},Oaa7:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},Ob0Z:function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function a(t,e,n,a){var r="";if(e)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,t)}t.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".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:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात्री"===e?t<4?t:t+12:"सकाळी"===e?t:"दुपारी"===e?t>=10?t:t+12:"सायंकाळी"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात्री":t<10?"सकाळी":t<17?"दुपारी":t<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n("wd/R"))},OcYo:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n,a){this.elementRef=t,this.renderer=e,this.toastr=n,this.i18n=a,this.formatted="no"}ngOnInit(){const t=this.renderer.createElement("i");this.renderer.addClass(t,"fa"),this.renderer.addClass(t,"fa-clipboard"),this.renderer.setAttribute(t,"title",this.i18n("Copy to clipboard")),this.renderer.appendChild(this.elementRef.nativeElement,t)}getInputElement(){return document.getElementById(this.cdCopy2ClipboardButton)}onClick(){try{const t=document.createElement(""===this.formatted?"textarea":"input");t.value=this.getInputElement().value,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),this.toastr.success("Copied text to the clipboard successfully.")}catch(t){this.toastr.error("Failed to copy text to the clipboard.")}}}},"Of+w":function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"WeakMap");t.exports=a},OjkT:function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,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 बजे"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(t,e){return 12===t&&(t=0),"राति"===e?t<4?t:t+12:"बिहान"===e?t:"दिउँसो"===e?t>=10?t:t+12:"साँझ"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"राति":t<12?"बिहान":t<16?"दिउँसो":t<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n("wd/R"))},Oxv6:function(t,e,n){!function(t){"use strict";var e={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};t.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".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:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(t,e){return 12===t&&(t=0),"шаб"===e?t<4?t:t+12:"субҳ"===e?t:"рӯз"===e?t>=11?t:t+12:"бегоҳ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"шаб":t<11?"субҳ":t<16?"рӯз":t<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},"P/G1":function(t,e,n){var a=n("JmpY"),r=n("7GkX");t.exports=function(t){return null==t?[]:a(t,r(t))}},P4Tr:function(t,e,n){var a=n("heNW"),r=n("EA7m"),i=n("4DFU"),s=n("JBE3"),o=r((function(t){return t.push(void 0,i),a(s,void 0,t)}));t.exports=o},P4y1:function(t,e){t.exports={}},P8lu:function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var a=n("mrSG"),r=n("IheW"),i=n("LvDl"),s=n("cp0P"),o=n("LRne"),u=n("5+tZ"),d=n("xTzq"),l=n("8Y7J"),c=n("pL04");let f=(()=>{let t=class{constructor(t){this.http=t,this.url="api/rgw/user"}list(){return this.enumerate().pipe(Object(u.a)(t=>t.length>0?Object(s.a)(t.map(t=>this.get(t))):Object(o.a)([])))}enumerate(){return this.http.get(this.url)}enumerateEmail(){return this.http.get(`${this.url}/get_emails`)}get(t){return this.http.get(`${this.url}/${t}`)}getQuota(t){return this.http.get(`${this.url}/${t}/quota`)}create(t){let e=new r.h;return i.keys(t).forEach(n=>{e=e.append(n,t[n])}),this.http.post(this.url,null,{params:e})}update(t,e){let n=new r.h;return i.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.put(`${this.url}/${t}`,null,{params:n})}updateQuota(t,e){let n=new r.h;return i.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.put(`${this.url}/${t}/quota`,null,{params:n})}delete(t){return this.http.delete(`${this.url}/${t}`)}createSubuser(t,e){let n=new r.h;return i.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.post(`${this.url}/${t}/subuser`,null,{params:n})}deleteSubuser(t,e){return this.http.delete(`${this.url}/${t}/subuser/${e}`)}addCapability(t,e,n){let a=new r.h;return a=a.append("type",e),a=a.append("perm",n),this.http.post(`${this.url}/${t}/capability`,null,{params:a})}deleteCapability(t,e,n){let a=new r.h;return a=a.append("type",e),a=a.append("perm",n),this.http.delete(`${this.url}/${t}/capability`,{params:a})}addS3Key(t,e){let n=new r.h;return n=n.append("key_type","s3"),i.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.post(`${this.url}/${t}/key`,null,{params:n})}deleteS3Key(t,e){let n=new r.h;return n=n.append("key_type","s3"),n=n.append("access_key",e),this.http.delete(`${this.url}/${t}/key`,{params:n})}exists(t){return this.enumerate().pipe(Object(u.a)(e=>{const n=i.indexOf(e,t);return Object(o.a)(-1!==n)}))}emailExists(t){return t=decodeURIComponent(t),this.enumerateEmail().pipe(Object(u.a)(e=>{const n=i.indexOf(e,t);return Object(o.a)(-1!==n)}))}};return t.ngInjectableDef=l["ɵɵdefineInjectable"]({factory:function(){return new t(l["ɵɵinject"](r.c))},token:t,providedIn:c.a}),t=a.__decorate([d.a,a.__metadata("design:paramtypes",[r.c])],t),t})()},PA2r:function(t,e,n){!function(t){"use strict";var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),a=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],r=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function i(t){return t>1&&t<5&&1!=~~(t/10)}function s(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"pár sekund":"pár sekundami";case"ss":return e||a?r+(i(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(i(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(i(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(i(t)?"dny":"dní"):r+"dny";case"M":return e||a?"měsíc":"měsícem";case"MM":return e||a?r+(i(t)?"měsíce":"měsíců"):r+"měsíci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(i(t)?"roky":"let"):r+"lety"}}t.defineLocale("cs",{months:e,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_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ítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:s,ss:s,m:s,mm:s,h:s,hh:s,d:s,dd:s,M:s,MM:s,y:s,yy:s},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},PCNd:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},"PEr+":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("EEJc"),s=n("ajRT"),o=n("s7LF"),u=n("+gVj"),d=n("mXUL"),l=n("IZUe"),c=n("gp3X"),f=n("sb0X"),h=n("KVJa"),g=n("Z21x"),p=n("sne2"),b=n("0+/T"),m=n("LqlI");n.d(e,"a",(function(){return A}));var y=a["ɵcrt"]({encapsulation:0,styles:[[".modal-body[_ngcontent-%COMP%]   .question[_ngcontent-%COMP%]{margin-top:1em}.modal-body[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-weight:700}.modal-body[_ngcontent-%COMP%]   .question[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," "])),a["ɵppd"](2,1),(t()(),a["ɵeld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](4,null,["",""])),(t()(),a["ɵted"](-1,null,["?"]))],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r),t(e,4,0,n.itemNames[0])}))}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," the selected items?"])),a["ɵppd"](2,1),(t()(),a["ɵeld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](5,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,5,0,e.component.itemNames)}),(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,_)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["manyNames",2]],null,0,null,O))],(function(t,e){t(e,2,0,1===e.component.itemNames.length,a["ɵnov"](e,3))}),null)}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," the selected ","?"])),a["ɵppd"](2,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,0),n.actionDescription));t(e,1,0,r,n.itemDescription)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function N(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," ","\n"])),a["ɵppd"](1,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,0,0,t(e,1,0,a["ɵnov"](e.parent,1),n.actionDescription));t(e,0,0,r,n.itemDescription)}))}function C(t){return a["ɵvid"](0,[a["ɵpid"](0,r.LowerCasePipe,[]),a["ɵpid"](0,r.TitleCasePipe,[]),a["ɵqud"](402653184,1,{submitButton:0}),(t()(),a["ɵeld"](3,0,null,null,40,"cd-modal",[],null,null,null,i.c,i.b)),a["ɵdid"](4,49152,[["modal",4]],0,s.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["ɵeld"](5,0,null,0,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,v)),a["ɵdid"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](8,0,null,1,35,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,34,"form",[["name","deletionForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,11).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,11).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,14).onSubmit()&&r),r}),null,null)),a["ɵdid"](10,16384,null,0,o.G,[],null,null),a["ɵdid"](11,540672,[["formDir",4]],0,o.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,o.d,null,[o.l]),a["ɵdid"](13,16384,null,0,o.s,[[4,o.d]],null,null),a["ɵdid"](14,16384,null,0,u.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](15,0,null,null,21,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,x)),a["ɵdid"](17,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](18,0,null,null,18,"div",[["class","question"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](20,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["noNames",2]],null,0,null,S)),(t()(),a["ɵeld"](22,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),a["ɵdid"](23,1163264,null,2,u.c,[a.ElementRef,u.g],null,null),a["ɵqud"](603979776,2,{FormControlNames:1}),a["ɵqud"](603979776,3,{messagesBlock:0}),(t()(),a["ɵeld"](26,0,null,0,10,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](27,0,null,null,7,"input",[["autofocus",""],["class","custom-control-input"],["formControlName","confirmation"],["id","confirmation"],["name","confirmation"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t,28).onChange(n.target.checked)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,28).onTouched()&&r),r}),null,null)),a["ɵdid"](28,16384,null,0,o.c,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,o.p,(function(t){return[t]}),[o.c]),a["ɵdid"](30,671744,[[2,4]],0,o.j,[[3,o.d],[8,null],[8,null],[6,o.p],[2,o.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,o.q,null,[o.j]),a["ɵdid"](32,16384,null,0,o.r,[[4,o.q]],null,null),a["ɵdid"](33,4210688,null,0,l.a,[a.ElementRef],{autofocus:[0,"autofocus"]},null),a["ɵdid"](34,16384,null,0,u.h,[[3,o.d],u.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵeld"](35,0,null,null,1,"label",[["class","custom-control-label"],["for","confirmation"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Yes, I am sure."])),(t()(),a["ɵeld"](37,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](38,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.callSubmitAction()&&a),a}),c.b,c.a)),a["ɵdid"](39,114688,[[1,4],["submitButton",4]],0,f.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵand"](16777216,null,0,1,null,I)),a["ɵdid"](41,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](42,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,h.b,h.a)),a["ɵdid"](43,49152,null,0,g.a,[r.Location,p.b],{name:[0,"name"],back:[1,"back"]},null),(t()(),a["ɵand"](0,[["deletionHeading",2]],null,0,null,N))],(function(t,e){var n=e.component;t(e,4,0,n.modalRef),t(e,7,0,a["ɵnov"](e,44)),t(e,11,0,n.deletionForm),t(e,14,0,n.deletionForm),t(e,17,0,n.bodyContext,n.bodyTemplate),t(e,20,0,n.itemNames,a["ɵnov"](e,21)),t(e,23,0),t(e,30,0,"confirmation"),t(e,33,0,""),t(e,34,0,"confirmation"),t(e,39,0,n.deletionForm),t(e,41,0,a["ɵnov"](e,44)),t(e,43,0,"Cancel",n.modalRef.hide)}),(function(t,e){t(e,9,0,a["ɵnov"](e,13).ngClassUntouched,a["ɵnov"](e,13).ngClassTouched,a["ɵnov"](e,13).ngClassPristine,a["ɵnov"](e,13).ngClassDirty,a["ɵnov"](e,13).ngClassValid,a["ɵnov"](e,13).ngClassInvalid,a["ɵnov"](e,13).ngClassPending),t(e,22,0,a["ɵnov"](e,23).hasErrors,a["ɵnov"](e,23).hasSuccess),t(e,27,0,a["ɵnov"](e,32).ngClassUntouched,a["ɵnov"](e,32).ngClassTouched,a["ɵnov"](e,32).ngClassPristine,a["ɵnov"](e,32).ngClassDirty,a["ɵnov"](e,32).ngClassValid,a["ɵnov"](e,32).ngClassInvalid,a["ɵnov"](e,32).ngClassPending,a["ɵnov"](e,34).validClass,a["ɵnov"](e,34).invalidClass)}))}function R(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-deletion-modal",[],null,null,null,C,y)),a["ɵdid"](1,114688,null,0,b.a,[m.a],null,null)],(function(t,e){t(e,1,0)}),null)}var A=a["ɵccf"]("cd-deletion-modal",b.a,R,{},{},[])},PKPk:function(t,e,n){"use strict";var a=n("ZUd8").charAt,r=n("afO8"),i=n("fdAy"),s=r.set,o=r.getterFor("String Iterator");i(String,"String",(function(t){s(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=o(this),n=e.string,r=e.index;return r>=n.length?{value:void 0,done:!0}:(t=a(n,r),e.index+=t.length,{value:t,done:!1})}))},PeUW:function(t,e,n){!function(t){"use strict";var e={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};t.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".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:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(t){return t+"வது"},preparse:function(t){return t.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(t,e,n){return t<2?" யாமம்":t<6?" வைகறை":t<10?" காலை":t<14?" நண்பகல்":t<18?" எற்பாடு":t<22?" மாலை":" யாமம்"},meridiemHour:function(t,e){return 12===t&&(t=0),"யாமம்"===e?t<2?t:t+12:"வைகறை"===e||"காலை"===e?t:"நண்பகல்"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(n("wd/R"))},PpIw:function(t,e,n){!function(t){"use strict";var e={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};t.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".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:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(t){return t.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ರಾತ್ರಿ"===e?t<4?t:t+12:"ಬೆಳಿಗ್ಗೆ"===e?t:"ಮಧ್ಯಾಹ್ನ"===e?t>=10?t:t+12:"ಸಂಜೆ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ರಾತ್ರಿ":t<10?"ಬೆಳಿಗ್ಗೆ":t<17?"ಮಧ್ಯಾಹ್ನ":t<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(t){return t+"ನೇ"},week:{dow:0,doy:6}})}(n("wd/R"))},PqYM:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("HDdC"),r=n("D0XW"),i=n("Y7HM"),s=n("z+Ro");function o(t=0,e,n){let o=-1;return Object(i.a)(e)?o=Number(e)<1?1:Number(e):Object(s.a)(e)&&(n=e),Object(s.a)(n)||(n=r.a),new a.a(e=>{const a=Object(i.a)(t)?t:+t-n.now();return n.schedule(u,a,{index:0,period:o,subscriber:e})})}function u(t){const{index:e,period:n,subscriber:a}=t;if(a.next(e),!a.closed){if(-1===n)return a.complete();t.index=e+1,this.schedule(t,n)}}},Puqe:function(t,e,n){var a=n("eUgh"),r=n("OBhP"),i=n("S7Xf"),s=n("4uTw"),o=n("juv8"),u=n("4Oe1"),d=n("xs/l"),l=n("G6z8"),c=d((function(t,e){var n={};if(null==t)return n;var d=!1;e=a(e,(function(e){return e=s(e,t),d||(d=e.length>1),e})),o(t,l(t),n),d&&(n=r(n,7,u));for(var c=e.length;c--;)i(n,e[c]);return n}));t.exports=c},Q1l4:function(t,e){t.exports=function(t,e){var n=-1,a=t.length;for(e||(e=Array(a));++n<a;)e[n]=t[n];return e}},QC43:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("MdoF"),i=n("CNMR"),s=n("SVse");n("XFyV"),n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return u}));var o=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"alert",[["type","info"]],null,null,null,r.c,r.b)),a["ɵdid"](1,114688,null,0,i.a,[i.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,"strong",[],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](5,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](6,2),a["ɵncd"](0,0)],(function(t,e){var n=e.component;t(e,1,0,"info");var a=t(e,6,0,n.icons.spinner,n.icons.spin);t(e,5,0,a)}),null)}},QFaf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("s7LF");class r extends a.k{constructor(t,e,n){super(t,e,n),this.controls=t}get(t){const e=this._get(t);if(!e)throw new Error(`Control '${t}' could not be found!`);return e}_get(t){return super.get(t)||Object.values(this.controls).filter(t=>t.get).map(e=>e instanceof r?e._get(t):e.get(t)).find(t=>Boolean(t))}getValue(t){return this.get(t).value}silentSet(t,e){this.get(t).setValue(e,{emitEvent:!1})}showError(t,e,n){const a=this.get(t);return(e.submitted||a.dirty)&&(n?a.hasError(n):a.invalid)}}},QIyF:function(t,e,n){var a=n("Kz5y");t.exports=function(){return a.Date.now()}},QTAa:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("t/zF");class r extends a.a{}},QWBl:function(t,e,n){"use strict";var a=n("I+eb"),r=n("F8JR");a({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},QcOe:function(t,e,n){var a=n("GoyQ"),r=n("6sVZ"),i=n("7Ix3"),s=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return i(t);var e=r(t),n=[];for(var o in t)("constructor"!=o||!e&&s.call(t,o))&&n.push(o);return n}},Qj4J:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n("wd/R"))},QkVE:function(t,e,n){var a=n("EpBk");t.exports=function(t,e){var n=t.__data__;return a(e)?n["string"==typeof e?"string":"hash"]:n.map}},Qo9l:function(t,e,n){var a=n("2oRo");t.exports=a},QoRX:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(e(t[n],n,t))return!0;return!1}},QqLw:function(t,e,n){var a=n("tadb"),r=n("ebwN"),i=n("HOxn"),s=n("yGk4"),o=n("Of+w"),u=n("NykK"),d=n("3Fdi"),l=d(a),c=d(r),f=d(i),h=d(s),g=d(o),p=u;(a&&"[object DataView]"!=p(new a(new ArrayBuffer(1)))||r&&"[object Map]"!=p(new r)||i&&"[object Promise]"!=p(i.resolve())||s&&"[object Set]"!=p(new s)||o&&"[object WeakMap]"!=p(new o))&&(p=function(t){var e=u(t),n="[object Object]"==e?t.constructor:void 0,a=n?d(n):"";if(a)switch(a){case l:return"[object DataView]";case c:return"[object Map]";case f:return"[object Promise]";case h:return"[object Set]";case g:return"[object WeakMap]"}return e}),t.exports=p},"R/W3":function(t,e,n){var a=n("KwMD"),r=n("2ajD"),i=n("CZoQ");t.exports=function(t,e,n){return e==e?i(t,e,n):a(t,r,n)}},RAwQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={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 e?r[n][0]:r[n][1]}function n(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10;return n(0===e?t/10:e)}if(t<1e4){for(;t>=10;)t/=10;return n(t)}return n(t/=1e3)}t.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_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éindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_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ëschter 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(t){return n(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t},past:function(t){return n(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t},s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},RBan:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},RK3t:function(t,e,n){var a=n("0Dky"),r=n("xrYK"),i="".split;t.exports=a((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==r(t)?i.call(t,""):Object(t)}:Object},RNIs:function(t,e,n){var a=n("tiKp"),r=n("fHMY"),i=n("m/L8"),s=a("unscopables"),o=Array.prototype;null==o[s]&&i.f(o,s,{configurable:!0,value:r(null)}),t.exports=function(t){o[s][t]=!0}},Rf2I:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("s7LF"),r=n("LvDl");n("2EZI"),n("Fgil"),n("aXbf");class i{constructor(t,e,n,a,r){this.bsModalRef=t,this.formBuilder=e,this.formatter=n,this.dimlessBinaryPipe=a,this.i18n=r}ngOnInit(){this.createForm()}createForm(){const t={};this.fields.forEach(e=>{t[e.name]=this.createFormControl(e)}),this.formGroup=this.formBuilder.group(t)}createFormControl(t){let e=[];return r.isBoolean(t.required)&&t.required&&e.push(a.B.required),t.validators&&(e=e.concat(t.validators)),new a.i(r.defaultTo("binary"===t.type?this.dimlessBinaryPipe.transform(t.value):t.value,null),{validators:e})}getError(t){const e=this.formGroup.get(t.name).errors;return Object.keys(e).map(n=>this.getErrorMessage(n,e[n],t.errors)).join("<br>")}getErrorMessage(t,e,n){if(n){const e=n[t];if(e)return e}return["binaryMin","binaryMax"].includes(t)?e(this.i18n):this.i18n("required"===t?"This field is required.":"An error occurred.")}onSubmitForm(t){this.fields.filter(t=>"binary"===t.type).map(t=>t.name).forEach(e=>{const n=t[e];n&&(t[e]=this.formatter.toBytes(n))}),this.bsModalRef.hide(),r.isFunction(this.onSubmit)&&this.onSubmit(t)}}},Rm1S:function(t,e,n){"use strict";var a=n("14Sl"),r=n("glrk"),i=n("UMSQ"),s=n("HYAF"),o=n("iqWW"),u=n("FMNM");a("match",1,(function(t,e,n){return[function(e){var n=s(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,n):new RegExp(e)[t](String(n))},function(t){var a=n(e,t,this);if(a.done)return a.value;var s=r(t),d=String(this);if(!s.global)return u(s,d);var l=s.unicode;s.lastIndex=0;for(var c,f=[],h=0;null!==(c=u(s,d));){var g=String(c[0]);f[h]=g,""===g&&(s.lastIndex=o(d,i(s.lastIndex),l)),h++}return 0===h?null:f}]}))},RnhZ:function(t,e,n){var a={"./af":"K/tc","./af.js":"K/tc","./ar":"jnO4","./ar-dz":"o1bE","./ar-dz.js":"o1bE","./ar-kw":"Qj4J","./ar-kw.js":"Qj4J","./ar-ly":"HP3h","./ar-ly.js":"HP3h","./ar-ma":"CoRJ","./ar-ma.js":"CoRJ","./ar-sa":"gjCT","./ar-sa.js":"gjCT","./ar-tn":"bYM6","./ar-tn.js":"bYM6","./ar.js":"jnO4","./az":"SFxW","./az.js":"SFxW","./be":"H8ED","./be.js":"H8ED","./bg":"hKrs","./bg.js":"hKrs","./bm":"p/rL","./bm.js":"p/rL","./bn":"kEOa","./bn.js":"kEOa","./bo":"0mo+","./bo.js":"0mo+","./br":"aIdf","./br.js":"aIdf","./bs":"JVSJ","./bs.js":"JVSJ","./ca":"1xZ4","./ca.js":"1xZ4","./cs":"PA2r","./cs.js":"PA2r","./cv":"A+xa","./cv.js":"A+xa","./cy":"l5ep","./cy.js":"l5ep","./da":"DxQv","./da.js":"DxQv","./de":"tGlX","./de-at":"s+uk","./de-at.js":"s+uk","./de-ch":"u3GI","./de-ch.js":"u3GI","./de.js":"tGlX","./dv":"WYrj","./dv.js":"WYrj","./el":"jUeY","./el.js":"jUeY","./en-SG":"zavE","./en-SG.js":"zavE","./en-au":"Dmvi","./en-au.js":"Dmvi","./en-ca":"OIYi","./en-ca.js":"OIYi","./en-gb":"Oaa7","./en-gb.js":"Oaa7","./en-ie":"4dOw","./en-ie.js":"4dOw","./en-il":"czMo","./en-il.js":"czMo","./en-nz":"b1Dy","./en-nz.js":"b1Dy","./eo":"Zduo","./eo.js":"Zduo","./es":"iYuL","./es-do":"CjzT","./es-do.js":"CjzT","./es-us":"Vclq","./es-us.js":"Vclq","./es.js":"iYuL","./et":"7BjC","./et.js":"7BjC","./eu":"D/JM","./eu.js":"D/JM","./fa":"jfSC","./fa.js":"jfSC","./fi":"gekB","./fi.js":"gekB","./fo":"ByF4","./fo.js":"ByF4","./fr":"nyYc","./fr-ca":"2fjn","./fr-ca.js":"2fjn","./fr-ch":"Dkky","./fr-ch.js":"Dkky","./fr.js":"nyYc","./fy":"cRix","./fy.js":"cRix","./ga":"USCx","./ga.js":"USCx","./gd":"9rRi","./gd.js":"9rRi","./gl":"iEDd","./gl.js":"iEDd","./gom-latn":"DKr+","./gom-latn.js":"DKr+","./gu":"4MV3","./gu.js":"4MV3","./he":"x6pH","./he.js":"x6pH","./hi":"3E1r","./hi.js":"3E1r","./hr":"S6ln","./hr.js":"S6ln","./hu":"WxRl","./hu.js":"WxRl","./hy-am":"1rYy","./hy-am.js":"1rYy","./id":"UDhR","./id.js":"UDhR","./is":"BVg3","./is.js":"BVg3","./it":"bpih","./it-ch":"bxKX","./it-ch.js":"bxKX","./it.js":"bpih","./ja":"B55N","./ja.js":"B55N","./jv":"tUCv","./jv.js":"tUCv","./ka":"IBtZ","./ka.js":"IBtZ","./kk":"bXm7","./kk.js":"bXm7","./km":"6B0Y","./km.js":"6B0Y","./kn":"PpIw","./kn.js":"PpIw","./ko":"Ivi+","./ko.js":"Ivi+","./ku":"JCF/","./ku.js":"JCF/","./ky":"lgnt","./ky.js":"lgnt","./lb":"RAwQ","./lb.js":"RAwQ","./lo":"sp3z","./lo.js":"sp3z","./lt":"JvlW","./lt.js":"JvlW","./lv":"uXwI","./lv.js":"uXwI","./me":"KTz0","./me.js":"KTz0","./mi":"aIsn","./mi.js":"aIsn","./mk":"aQkU","./mk.js":"aQkU","./ml":"AvvY","./ml.js":"AvvY","./mn":"lYtQ","./mn.js":"lYtQ","./mr":"Ob0Z","./mr.js":"Ob0Z","./ms":"6+QB","./ms-my":"ZAMP","./ms-my.js":"ZAMP","./ms.js":"6+QB","./mt":"G0Uy","./mt.js":"G0Uy","./my":"honF","./my.js":"honF","./nb":"bOMt","./nb.js":"bOMt","./ne":"OjkT","./ne.js":"OjkT","./nl":"+s0g","./nl-be":"2ykv","./nl-be.js":"2ykv","./nl.js":"+s0g","./nn":"uEye","./nn.js":"uEye","./pa-in":"8/+R","./pa-in.js":"8/+R","./pl":"jVdC","./pl.js":"jVdC","./pt":"8mBD","./pt-br":"0tRk","./pt-br.js":"0tRk","./pt.js":"8mBD","./ro":"lyxo","./ro.js":"lyxo","./ru":"lXzo","./ru.js":"lXzo","./sd":"Z4QM","./sd.js":"Z4QM","./se":"//9w","./se.js":"//9w","./si":"7aV9","./si.js":"7aV9","./sk":"e+ae","./sk.js":"e+ae","./sl":"gVVK","./sl.js":"gVVK","./sq":"yPMs","./sq.js":"yPMs","./sr":"zx6S","./sr-cyrl":"E+lV","./sr-cyrl.js":"E+lV","./sr.js":"zx6S","./ss":"Ur1D","./ss.js":"Ur1D","./sv":"X709","./sv.js":"X709","./sw":"dNwA","./sw.js":"dNwA","./ta":"PeUW","./ta.js":"PeUW","./te":"XLvN","./te.js":"XLvN","./tet":"V2x9","./tet.js":"V2x9","./tg":"Oxv6","./tg.js":"Oxv6","./th":"EOgW","./th.js":"EOgW","./tl-ph":"Dzi0","./tl-ph.js":"Dzi0","./tlh":"z3Vd","./tlh.js":"z3Vd","./tr":"DoHr","./tr.js":"DoHr","./tzl":"z1FC","./tzl.js":"z1FC","./tzm":"wQk9","./tzm-latn":"tT3J","./tzm-latn.js":"tT3J","./tzm.js":"wQk9","./ug-cn":"YRex","./ug-cn.js":"YRex","./uk":"raLr","./uk.js":"raLr","./ur":"UpQW","./ur.js":"UpQW","./uz":"Loxo","./uz-latn":"AQ68","./uz-latn.js":"AQ68","./uz.js":"Loxo","./vi":"KSF8","./vi.js":"KSF8","./x-pseudo":"/X5v","./x-pseudo.js":"/X5v","./yo":"fzPg","./yo.js":"fzPg","./zh-cn":"XDpg","./zh-cn.js":"XDpg","./zh-hk":"SatO","./zh-hk.js":"SatO","./zh-tw":"kOpN","./zh-tw.js":"kOpN"};function r(t){var e=i(t);return n(e)}function i(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}r.keys=function(){return Object.keys(a)},r.resolve=i,t.exports=r,r.id="RnhZ"},S6ln:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}t.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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čer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},S7Xf:function(t,e,n){var a=n("4uTw"),r=n("RBan"),i=n("gpbi"),s=n("9Nap");t.exports=function(t,e){return e=a(e,t),null==(t=i(t,e))||delete t[s(r(e))]}},S7zO:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("LvDl"),r=n("oxzT");n("vCyI"),n("jKX/");class i{constructor(){this.btnColor="secondary",this.dropDownActions=[],this.icons=r.a}ngOnInit(){this.removeActionsWithNoPermissions(),this.updateDropDownActions()}toClassName(t){return t.replace(/ /g,"-").replace(/[^a-z-]/gi,"").toLowerCase()}removeActionsWithNoPermissions(){if(!this.permission)return void(this.tableActions=[]);const t=Object.keys(this.permission).filter(t=>this.permission[t]);this.tableActions=this.tableActions.filter(e=>t.includes(e.permission))}updateDropDownActions(){this.dropDownActions=this.tableActions.filter(t=>t.visible?t.visible(this.selection):t)}getCurrentButton(){if(this.dropDownOnly)return;let t=this.dropDownActions.find(t=>this.showableAction(t));return!t&&this.dropDownActions.length>0&&(t=this.dropDownActions[0]),t}showableAction(t){const e=t.canBePrimary,n=this.selection.hasSingleSelection,a="create"===t.permission?!n:n;return e&&e(this.selection)||!e&&a}useRouterLink(t){if(t.routerLink&&!this.disableSelectionAction(t))return a.isString(t.routerLink)?t.routerLink:t.routerLink()}disableSelectionAction(t){const e=t.disable;if(e)return Boolean(e(this.selection));const n=t.permission,a=this.selection.hasSingleSelection&&this.selection.first();return Boolean(["update","delete"].includes(n)&&(!a||a.cdExecuting))}showDropDownActions(){return this.updateDropDownActions(),this.dropDownActions.length>1}useClickAction(t){return!this.disableSelectionAction(t)&&t.click&&t.click()}useDisableDesc(t){return t.disableDesc&&t.disableDesc()}}},"SB+Q":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return encodeURIComponent(t)}}},SFxW:function(t,e,n){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};t.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əsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".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ün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(t){return/^(gündüz|axşam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gecə":t<12?"səhər":t<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(t){if(0===t)return t+"-ıncı";var n=t%10;return t+(e[n]||e[t%100-n]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},SKAX:function(t,e,n){var a=n("JC6p"),r=n("lQqw")(a);t.exports=r},SPu7:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="pl-PL">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Rozwiń</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Pulpit</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klaster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosty</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitory</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Usługi</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD-ki</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfiguracja</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH mapa</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Zarządca modułów</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Logi</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pule</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Dostęp blokowy</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Obrazy</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Kopia lustrzana</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>Sieciowy system plików NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Systemy plików</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Dostęp obiektowy</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Demony</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Wiadra</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Wybierz język</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Trwa ładowanie danych...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Wybór czasu Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Zresetuj ustawienia</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Wstecz</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Błąd wczytywania danych.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>Wybrane</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>Znaleziono</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>Razem</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nazwa</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Opis</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Długi opis</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Domyślna</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Domyślny demon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Wartości</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Zapisz</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>widok CRUSH mapy</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Ładowanie...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nazwa hosta</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Pole jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Tak, jestem pewny.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Anuluj</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Zamknij</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista hostów</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Całkowita wydajność</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nie znaleziono wejść</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Logi z klastra </target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Audyt logów</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Ładowanie konfiguracji.</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Nie można załadować konfiguracji</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Edytuj moduł zarządzania</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Wpisana wartość nie jest poprawnym UUID, np. 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Wpisana wartość musi być poprawnym adresem IP</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Podana wartość musi być liczbą</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Podana wartość musi być liczbą albo dziesiętną.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Zaktualizuj</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Klaster ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Zmodyfikowana monmapa</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>epoka monmap</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kworum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kworum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>wymagany con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>Wymagane mon </target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>W kworum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Nie w kworum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Dodaj</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funkcje</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flagi OSD w całym klastrze</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Zatwierdź</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Zaawansowane...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorytet odzyskiwania OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorytet</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Dostosuj wartości priorytetowe</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>To pole jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Wartość powinna być pomiędzy 0 a 1. </target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ponowne ważenie</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, wybierz, 1 {Głębokość} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, wybierz, 1 {głębokość} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista OSD-ków </target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Wartość</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Edytuj</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Usuń</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Zdrowie</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statystyki</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klienci</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Każdy klient ma dostęp</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresy</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Obowiązkowe pole</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Musi zawierać jedną albo więcej ,rozdzielonych przecinkiem, wartości </target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Na przykład: </target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Typ dostępu</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Dodaj klientów </target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Brak dostępnego klastra -- </target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Wybierz klaster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Dodaj demona</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Pamięć Podręczna</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Brak danych puli -- </target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Wybierz pamięć podręczną -- </target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Użytkownik dostępu obiektowego</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Brak dostępnych użytkowników -- </target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Wybierz użytkownika dostępu obiektowego -- </target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS Użytkownik ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Brak dostępnych klientów -- </target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Wybierz klienta cephx -- </target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nazwa CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etykieta bezpieczeństwa</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Uruchom etykietę bezpieczeństwa</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Ścieżka CephFS </target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Ścieżka powinna zaczynać się z \'/\' i następne może być słowo</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Nowy katalog będzie stworzony. </target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Ścieżka</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Ścieżką może być tylko \'/\' albo słowo</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Nowe wiadro będzie stworzone </target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protokół NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klient może nie montować podkatalogów ( np. jeśli Tag = foo, klient może nie montować foo/baz) </target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Używając różnych opcji Tagu, ta sama Ścieżka może być wyeksportowana kilka razy.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Używając różnych opcji Pseudo, ta sama Ścieżka może być wyeksportowana kilka razy.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Brak dostępnych typów dostępu --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Wybierz typ dostępu --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>- Brak squasha -</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Wybierz, jakiego rodzaju identyfikacja użytkownika ma być przeprowadzana --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protokół Transportu </target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Witamy w Cephie! </target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nazwa użytkownika jest wymagana</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Hasło jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Zaloguj</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Przepraszam, użytkownik nie istnieje w  Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Zakazany</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Przepraszam, nie masz dostępu do tego czego szukasz. </target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Konfiguracja RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Usuń wartość konfiguracji lokalnej. Wartość konfiguracji rodzica będzie odziedziczona i zostanie użyta zamiast tej.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Minimalna wartość wynosi 0.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista puli</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Nazwa może składać się z alfanumerycznych znaków, kresek i podkreśleń.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Wybrana nazwa profilu kodu kasowania jest już używana.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Wtyczka</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Ramka danych (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Musi być większa bądź równa 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Kodowanie kawałka (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Musi być większa bądź równa 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estymator trwałości (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Lokalność  (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domena niepowodzenia Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalność Crusha</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nic</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technika</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Rozmiar pakietu</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>korzeń Crusha</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>urządzenie klasy Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>którykolwiek</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Katalog</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nazwa...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Wybrana nazwa Ceph pula jest już użyta.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Typ pula</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Wybierz typ pula --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupa umieszczenia</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Przynajmniej jedna grupa umieszczenia jest wymagana</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Twój klaster nie obsługuje tylu PG. Skalkuluj proszę potrzebną ilość PG.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Pomoc obliczeniowa</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Replikowany rozmiar</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flagi</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC Nadpisuje</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Zastosowania</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Skasuj profil kodu.</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Brak profilu kasowania --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Wybierz profil kodu wymazywania --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>zbiór zasad Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Wybierz zasadę Crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>zasada Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Kroki Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Kompresja</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Tryb</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorytm</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Brak algorytmu kompresji wymazywania --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>np. 128 KB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Wartość powinna być większa niż 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Maksymalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>np. 512 KB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Wartość powinna być większa niż minimalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Stosunek</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Skompresowany stosunek</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Wartość powinna być pomiędzy 0.0, a 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>np. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Szczegóły</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Szczegóły wydajności</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Szczegóły poziomów pamięci podręcznej</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Przenieś obraz do kosza</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Zabezpieczenie wygasa w </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NIEZABEZPIECZONY </target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Zły format daty. Proszę używać "RRRR-MM-DD GG:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Ochrona już wygasła. Proszę wybrać przyszłą datę lub zostawić pustą.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Przenieś obraz</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Przegląd</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Obiekty docelowe</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Uwierzytelnianie wykrywania</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Użytkownik</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nazwy użytkowników muszą mieć długość od 8 do 64 znaków i \nmogą zawierać jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Hasło</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Wspólny użytkownik </target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Wspólne hasło</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Dostępne informacje: </target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>obiekty docelowe iSCSI niedostępne </target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pul</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Dane pula</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Utworzony</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Rozmiar</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Obiekty</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Rozmiar obiektu</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Zaopatrzony</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>Niedostępny</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Całkowite rezerwy</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Jednostka maskowana</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Licznik maskowania</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Rodzic</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefiks nazwy bloku</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Zamówienie</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Migawki</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Obraz</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>To ustawienie zastępuję wartość globalną.</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globalne</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>To jest globalna wartość. Dla tego obrazu nie ustawiono żadnej wartości dla tej opcji.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' and \'@\' nie są dozwolone.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Brak dostępnych rbd puli --  </target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Wybierz pul --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Użyj dedykowanych danych pul </target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Dane pul</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Dedykowany pul, który przechowuje dane obiektowe z RBD</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Musisz zwiększyć rozmiar.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Zaawansowane</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Maskowanie</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Jednostka pasków</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Wybierz jednostkę pasków -- </target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Pole jest wymagane, ponieważ licznik pasków jest zdefiniowany. </target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Jednostka pasków jest większa niż rozmiar obiektu.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Licznik pasków </target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Pole jest wymagane, ponieważ jednostka pasków jest zdefiniowana! </target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Licznik pasków musi być większy od 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Zaraz się wycofasz. </target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Usuń Śmieci</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Wszystkie</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pul:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nazwa pula</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Przywróć obraz</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Przywróć</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>Wpisz nazwe nowego obrazu i kliknij. </target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nowa Nazwa</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Wygasły w</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Zabezpieczony do</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Zmiana tych parametrów z domyślnych wartości przeważnie nie jest potrzebna.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Ustawienia</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Tylny koniec przechowywania</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Potwierdź</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Ustawienia zaawansowane</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Nazwa IQN obiektu docelowego iSCSI</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Błędna składnia nazwy IQN.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Na przykład: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Więcej informacji</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Ten obiekt docelowy  zmodyfikował zaawansowane ustawienia.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portale</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Dodaj portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Ten obraz zmodyfikował ustawienia. </target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Dodaj obraz.</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Uwierzytelnianie ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Inicjatory iSCSI</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Inicjator iSCSI</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Klient IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Inicjator IQN powinien być unikalny.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nazwy użytkowników muszą mieć długość od 8 do 64 znaków i mogą zawierać jedynie litery,  \'.\', \'@\', \'-\', \'_\' lub  \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Inicjator iSCSI należą do grupy. Obrazy będą skonfigurowane w grupie. </target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Brak dodanych pozycji.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Dodaj inicjator iSCSI</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupy</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupa</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Dodaj grupę</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Kosz</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Zagadnienia</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronizacja</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Gotowy</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Tryb edycji lustrzanego pula</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Sparowany klaster musi być usunięty  przed wyłączeniem lustra. </target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, wybierz, edytuj{Edytuj} inaczej {Dodaj} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nazwa Klastra</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Nazwa klastra jest niepoprawna </target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>ID CephX nie jest poprawne.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adres monitora </target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Adresy rozdzielane przecinkami... </target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Adres monitora nie jest poprawny.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Klucz CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Klucz zakodowany w Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Klucz CephX musi być zakodowany w Base64/</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Liczniki wydajności nie są dostępne</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista demonów</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Liczniki wydajności</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Ładowanie wiadra danych</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Number ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Wartość nie jest poprawna.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Wybrana nazwa już jest użyta.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Właściciel</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Wybierz użytkownika -- </target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Uaktywniony</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Typ indeksu</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Zasada umieszczania</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Znacznik</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Maksymalny znacznik</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Wersja</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Główna wersja</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Czas modyfikacji</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Strefa </target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>kontyngent wiadra</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Maksymalny rozmiar</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Nielimitowany</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Maksimum obiektów</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nazwa użytkownika</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Wybierz nazwę użytkownika -- </target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Auto-generowany klucz</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Klucz dostępu</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Tajny klucz </target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Pełne imię </target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Adres email</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Zawieszony</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>System</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Maksimum wiader</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>pod-użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Zdolności</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Limit użytkownika</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Pokaż</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Klucze</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- wybierz typ --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Pozwolenie </target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Wybierz pozwolenie --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>pod-użytkownik</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Wybrane ID pod-użytkownika jest już użyte.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>odczyt, zapis</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>pełny</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Szybki klucz</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Auto-generowany sekret</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Ładowanie danych użytkownika...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Nie można załadować danych użytkownika.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Wybrane ID użytkownika jest już użyte.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ten adres email nie jest poprawny.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Wybrany adres email jest już użyty.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Max. wiader </target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Wyłączony</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Zwyczaj</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>klucz S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Nie ma pod-użytkowników.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3 (prosty serwis przechowywania) </target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Nie ma kluczy.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Szybki</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Nie ma zdolności. </target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Nielimitowany rozmiar</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Max. rozmiar</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Nielimitowane obiekty</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Max. obiektów</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Podana wartość musi być &gt;= 0</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Opis...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Pozwolenia</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Role</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Potwierdź hasło</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Potwierdzające hasło nie pokrywa się z hasłem.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Email</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Niepoprawny email.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Zamierzasz usunąć uprawnienia „odczytu / aktualizacji użytkownika” od własnego użytkownika.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Jeśli kontynuujesz, nie będziesz mógł dodawać albo usuwać role od użytkowników.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Jesteś pewny, że chcesz kontynuować? </target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Pomoc</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentacja</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>Interfejs API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>O</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Ustawienia Pulpitu</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Zarządzanie użytkownikami</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Zalogowany użytkownik</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Wyloguj</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atrybuty (mapa OSD-ków)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Niedostępne metadane</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadane</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Licznik wydajności</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Pisze</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Czyta</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Obecne wartości </target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Źródło </target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Poziom</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Może być aktualizowany w czasie wykonywania (edytowalny)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tagi</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Wartości enumerowane </target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Zobacz także </target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status klastra</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Zarządzanie demonami</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Obiekty bram </target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Serwery metadanych</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Bramy iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>Klient IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Przepustowość klienta</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Odczyt/Zapis klienta</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Przepustowość odzyskiwania</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Szoruj</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Wydajność</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Pojemność rzędu</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PG-y na OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Pojemność</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Szeregi</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Obecny</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Zaktualizowane uwierzytelnianie wykrywania</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Brak dostępnych portali.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Nie ma dostępnych obrazów. </target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Nie ma dostępnych obrazów. Proszę się upewnić, że dodajesz obraz do obiektu docelowego. </target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Nie ma dostępnych inicjatorów iSCSI. Proszę upewnić się, że dodajesz inicjator iSCSI do obiektu docelowego.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>obiekt docelowy iSCSI</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stan</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Odczyt bajtów </target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Zapis bajtów</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Odczyt Ops</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Zapis Ops</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Od</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instancja</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Zagadnienie </target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Progres</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Tryb Edycji</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Dodaj parowanie </target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Edytuj parowanie</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Usuń parowanie</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Lider</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Lokalny</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Zdalny</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>lustrzane parowanie</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Klucz</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Głębokie spłaszczenie</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Warstwowanie </target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Wyłączna blokada</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa obiektów (wymaga wyłącznej blokady)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Kronikowanie  (wymaga wyłącznej blokady)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NIEZABEZPIECZONY </target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Wycofywanie migawek RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Wycofanie</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>migawka RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Usunięty o </target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stan</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>wersja</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>administrator</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Czuwanie demona </target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Ranga</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Demon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktywność</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>centrale</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>i-węzły</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Użycie</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Zaktualizowany</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Wartość może być zaktualizowana w czasie wykonywania . </target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Demony/klienci nie pobierają tej wartości z\nbazy danych skonfigurowanego monitora. Nie zezwalamy na ustawienie tej opcji przez \'konfiguracje ceph\nustaw.. \'. Ta opcja powinna być skonfigurowana przez ceph.conf albo przez\nterminal.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Opcja działa tylko podczas startu demona.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Opcja dotyczy tylko tworzenia klastra.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Opcja tylko wpływa na tworzenie demona.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Usługa</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Obecna wartość</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Edytowalny</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Włączyć</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Wyłączyć</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Ponowne łączenie, proszę czekać</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Adres publiczny</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Otwarte sesje</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Nie w </target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD-ki, które zostały oznaczone jako poza, nie będą oznaczone ponownie jako w gdy zostaną uruchomion</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Nie poza</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD-ki nie będą automatycznie oznaczone jako poza po konfiguracji interwału</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Nie powstały </target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD-ki nie mogą startować</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Nie upadły</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Raport z niepowodzenia OSD jest ignorowany, także monitory nie oznaczą OSD jako upadłego. </target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pauza </target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pauzuje czytanie i zapisywanie</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nie szoruj</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Szorowanie jest wyłączone</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nie ma głębokiego szorowania</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Głębokie szorowanie jest wyłączone</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Brak zasypywania</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Zasypywanie PG jest zawieszone</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Nie przywrócono</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Przywrócenie PGy jest zawieszone </target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Sortuj bitowo</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Użyj sortowania bitowego</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Usuń snap katalogi</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD-ki zmieniły snapsety</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Odzyskaj usunięte</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Podczas zdrowienia zastosowano usunięcie zamiast parowania</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Twardy limit logów PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Ustawia twardy limit na długość logów PG</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Zaktualizowane flagi OSD-ków</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD-ik</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>poza</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>w</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>upadły</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Zaznacz</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>Stracony OSD</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>Zaznaczony jako stracony</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Czyść</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>Oczyszczony</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>Zniszcz</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>Zniszczony</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>Usuń</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG-y</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Czytanie bajtów</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Zapis bajtów </target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Czytanie ops</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Zapis ops</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max zasypywanie</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Max aktywność wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Max pojedynczy start wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Uśpienie wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Praca</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>surowość</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Wystartowany</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Użyty</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dostępny</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Czyść</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Działający</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Ostrzeżenie </target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Nieznany</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>Podniesiony</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>brak systemów plików</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktywny</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>Rezerwa</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>niedostępny</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktywny demon</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kworum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Usługa NFS Ganesha nie jest skonfigurowana</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Użytkownik CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>system plików CephFS </target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(Odziedziczyło z globalnej konfiguracji)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>Odziedziczyło z globalnej konfiguracji</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Wybierz, jakiego rodzaju identyfikacja użytkownika ma być przeprowadzana -- </target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Brak dostępnym demonów</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Tryb pamięci podręcznej</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min wiek eksmisji</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min wiek wyrównania </target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Max bajtów obiektu docelowego </target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Max obiektów docelowych</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nie dodano żadnego zastosowania</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Osiągnięto limit zastosowań </target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Pul może mieć maksymalnie 4 definicje aplikacji. </target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Dozwolone znaki \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Maksymalna długość wynosi 128 znaków</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtruj lub dodaj zastosowanie</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Dodaj zastosowanie</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>skasuj profil kodu</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Rozmiar repliki</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Ostatnia zmiana</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Skasuj profil zakodowany</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Zbiór zasad Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>wiadro</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>Wiadra</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>użytkownik</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Zakres</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Czytaj</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Stwórz</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>System roli </target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Zaktualizuj użytkownika</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Kontynuuj </target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Zostałeś automatycznie wylogowany, ponieważ zostały zmienione twoje role.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Każdy obiekt jest podzielony na części fragmentów danych, każdy jest przechowywany na innym OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Oblicz porcje kodu dla każdego obiektu i przechowuj je na różnych OSD.\n Liczba fragmentów kodujących to również liczba OSD, które mogą zostać wyłączone bez utraty danych.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Wtyczka jerasure jest najbardziej uniwersalną i elastyczną wtyczką,\n jest to również domyślne ustawienie dla pui kodowanych przez Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Bardziej elastyczną techniką jest reed_sol_van: wystarczy ustawić k\n oraz m. Technika cauchy_good może być szybsza, ale musisz wybrać rozmiar pakietu\n ostrożnie. Wszystkie reed_sol_r6_op, liberation, blaum_roth, liber8tion są odpowiednikami RAID6\n w tym sensie, że mogą być skonfigurowane tylko z m = 2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Kodowanie będzie wykonywane na pakietach o rozmiarze bajtów naraz.\n Wybór odpowiedniego rozmiaru pakietu jest trudny.\n Dokumentacja jerasure zawiera obszerne informacje na ten temat.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Z wtyczką jerasure, gdy obiekt zakodowany przy użyciu skasowania jest przechowywany na \n wielu OSD-kach, odzyskiwanie po utracie jednego OSD wymaga odczytu ze wszystkich pozostałych.\n Na przykład, jeśli konfiguracja skryptu ma wartość k = 8 ,m = 4 i l=4, utrata jednego OSD wymaga odczytu\n od jedenastu innych do naprawy.\n\n Wtyczka kodu wymazywania lrc tworzy fragmenty o parzystości lokalnej, aby móc je odzyskać\n mniej OSD. Na przykład, jeśli lrc jest skonfigurowane z k = 8, m = 4 i l = 4, zostanie utworzony\n dodatkowy fragment parzystości na każde cztery OSD. Gdy jeden OSD zostanie utracone, może to być\n odzyskane tylko z czterema OSD zamiast jedenastu.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Grupuj fragmenty kodu i danych w zestawy lokalizacji wielkości. Na przykład,\n dla k = 4 i m = 2, gdy lokalność = 3 tworzone są dwie grupy po trzy. Każdy zestaw może\n odzyskać bez czytania kawałków z innego zestawu.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Typ wiadra CRUSH, w którym zdefiniowano każdy zestaw porcji\n przez l zostaną zapisane. Na przykład, jeśli jest ustawiony na rack, każda grupa l porcji będzie\n umieszczona w innym raku. Służy do utworzenia kroku reguły CRUSH, takiego jak krok wyboru\n racka. Jeśli nie jest ustawiony, nie ma takiego grupowania.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Wtyczka isa zawiera bibliotekę ISA. Działa tylko na procesorach Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Wtyczka ISA jest dostępna w dwóch formach Reed Solomon.\n Jeśli ustawiono reed_sol_van, jest to Vandermonde, jeśli ustawiono cauchy, to jest to Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Wtyczka shec zawiera wiele bibliotek SHEC.\n Pozwala ceph odzyskać dane bardziej efektywnie niż kody Reeda Solomona.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Liczba kawałków parzystości, z których każdy zawiera każdą porcję danych w swoim zakresie obliczeń. Liczba jest używana jako estymator trwałości. Na przykład, jeśli c = 2,\n 2 OSD można wyłączyć bez utraty danych.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nazwa wiadra crush jest użyte do pierwszego kroku reguły CRUSH.\nNa przykład krok jest domyślny.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Upewnij się, że żadne dwie porcje nie znajdują się w wiadrze z tą samą awarią\n domeny. Na przykład, jeśli domena awarii jest hostem, nie zostaną na niej zapisane dwie porcje\n hosta. Służy do utworzenia kroku reguły CRUSH, takiego jak krok wyboru hosta.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Ogranicz umieszczanie do urządzeń określonej klasy\n (np. ssd lub hdd), używając nazw klas urządzeń zgniatających na mapie CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Ustaw nazwę katalogu, z którego ładowana jest wtyczka kodu kasowania.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Dozwolone są wszystkie operacje</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Dozwolone są operacje, które nie modyfikują serweru</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Operacje odczytu i zapisu są zakazane, wszystkie inne dozwolone</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Operacje odczytu i zapisu, oraz wszystkie operacje modyfikujące atrybuty albo katalogi są zakazane </target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Brak dostępu w ogóle</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- wybierz priorytet -- </target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Niski</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Wysoki</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informacja</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Ostatnie 5 minut</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Ostatnie 15 minut</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Ostatnie 30 minut</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Ostatnia 1 godzina (domyślnie)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Ostatnie 3 godziny</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Ostatnie 6 godzin</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Ostatnie 12 godzin</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Ostatnie 24 godziny</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Wczoraj</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Dzisiaj</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Do tej pory dzisiaj</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Przedwczoraj</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Ostatnie 2 dni</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Tego dnia tydzień temu</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Poprzedni tydzień</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Ten tydzień </target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Do tej pory w tym tygodniu</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Ostatnie 7 dni</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Poprzedniego miesiąca</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>ten miesiąc</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Do tej pory w tym miesiącu</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Ostatnie 30 dni</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Ostatnie 90 dni</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Ostatnie 6 miesięcy</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Ostatni 1 rok</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Poprzedniego roku</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Bieżącego roku</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Do tej pory bieżącego roku</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Ostatnie 2 lata</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Ostatnie 5 lat</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nie wybrano żadnej pozycji</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Odznacz pozycję, żeby wybrać ponownie</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Osiągnięto limit wyboru. </target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtr tagów.</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Dodaj odznakę</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Brak dostępnych pozycji.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Sklonuj</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopia</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Szoruj głęboko</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Zniszcz</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Spłaszcz</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>zaznacz jako upadły</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Zaznacz jako w </target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Zaznacz jako stracony</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Zaznacz jako poza</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Zabezpiecz</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Zmień nazwę</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Przywróć</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Przenieś do kosza</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Odbezpiecz </target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Usunięty</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Sklonowano</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Skopiowano </target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Spłaszczony</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Oczyszczony</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Przywrócony</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Wycofaj</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Tak</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Nie</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Jakość serwisu</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Pożądany limit IO bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Pożądany limit operacji IO na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>limit odczytu BPS</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Pożądany limit odczytu bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>limit  odczytu IOPS</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Pożądany limit operacji odczytu na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit zapisu BPS</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Pożądany limit zapisu bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit zapisu IOPS</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Pożądany limit operacji zapisu na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Wiązka BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Żądana granica serii IO bajtów.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Wiązka IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Żądana granica serii operacji IO.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Odczyt wiązki BPS</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Żądana granica serii odczytanych bajtów.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Odczyt wiązki IOPS</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target> Żądana granica serii operacji odczytu.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Zapis wiązki BPS</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Żądana granica serii bajtów zapisu.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Zapis wiązki IOPS</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Żądana granica serii operacji zapisu.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Wykonywanie </target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>Wykonaj</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Wykonany</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>Nieznane zadanie</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Tworzenie</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>Utwórz</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aktualizowanie </target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>Zaktualizuj</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Usuwanie</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Klonowanie</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>Sklonuj </target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Kopiowanie </target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>Kopiuj</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Spłaszczanie</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>Spłaszcz</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Wycofywanie </target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>Wycofanie</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Przenoszenie</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>Przenieś</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Przeniesiono</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Nie znaleziono obrazu.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Przywracanie</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>Przywróć </target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>oczyszczać</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>oczyść</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>Wszystkie pule</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Nie można wyłączyć lustrzenia ponieważ zawiera parowanie.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},STAE:function(t,e,n){var a=n("0Dky");t.exports=!!Object.getOwnPropertySymbols&&!a((function(){return!String(Symbol())}))},SVse:function(t,e,n){"use strict";n.r(e),n.d(e,"ɵangular_packages_common_common_c",(function(){return ae})),n.d(e,"ɵangular_packages_common_common_h",(function(){return At})),n.d(e,"ɵangular_packages_common_common_g",(function(){return Ct})),n.d(e,"ɵangular_packages_common_common_f",(function(){return Nt})),n.d(e,"ɵangular_packages_common_common_k",(function(){return Qt})),n.d(e,"ɵangular_packages_common_common_j",(function(){return Zt})),n.d(e,"ɵangular_packages_common_common_i",(function(){return $t})),n.d(e,"ɵangular_packages_common_common_a",(function(){return ft})),n.d(e,"ɵangular_packages_common_common_b",(function(){return bt})),n.d(e,"ɵangular_packages_common_common_e",(function(){return Se})),n.d(e,"ɵangular_packages_common_common_d",(function(){return Ke})),n.d(e,"ɵregisterLocaleData",(function(){return mt})),n.d(e,"registerLocaleData",(function(){return mt})),n.d(e,"formatDate",(function(){return K})),n.d(e,"formatCurrency",(function(){return ot})),n.d(e,"formatNumber",(function(){return dt})),n.d(e,"formatPercent",(function(){return ut})),n.d(e,"NgLocaleLocalization",(function(){return pt})),n.d(e,"NgLocalization",(function(){return ht})),n.d(e,"Plural",(function(){return g})),n.d(e,"NumberFormatStyle",(function(){return h})),n.d(e,"FormStyle",(function(){return p})),n.d(e,"TranslationWidth",(function(){return b})),n.d(e,"FormatWidth",(function(){return m})),n.d(e,"NumberSymbol",(function(){return y})),n.d(e,"WeekDay",(function(){return v})),n.d(e,"getNumberOfCurrencyDigits",(function(){return V})),n.d(e,"getCurrencySymbol",(function(){return G})),n.d(e,"getLocaleDayPeriods",(function(){return _})),n.d(e,"getLocaleDayNames",(function(){return T})),n.d(e,"getLocaleMonthNames",(function(){return O})),n.d(e,"getLocaleId",(function(){return x})),n.d(e,"getLocaleEraNames",(function(){return w})),n.d(e,"getLocaleWeekEndRange",(function(){return I})),n.d(e,"getLocaleFirstDayOfWeek",(function(){return S})),n.d(e,"getLocaleDateFormat",(function(){return N})),n.d(e,"getLocaleDateTimeFormat",(function(){return R})),n.d(e,"getLocaleExtraDayPeriodRules",(function(){return M})),n.d(e,"getLocaleExtraDayPeriods",(function(){return q})),n.d(e,"getLocalePluralCase",(function(){return D})),n.d(e,"getLocaleTimeFormat",(function(){return C})),n.d(e,"getLocaleNumberSymbol",(function(){return A})),n.d(e,"getLocaleNumberFormat",(function(){return k})),n.d(e,"getLocaleCurrencyName",(function(){return L})),n.d(e,"getLocaleCurrencySymbol",(function(){return E})),n.d(e,"ɵparseCookieValue",(function(){return yt})),n.d(e,"CommonModule",(function(){return $e})),n.d(e,"DeprecatedI18NPipesModule",(function(){return Ze})),n.d(e,"NgClass",(function(){return Lt})),n.d(e,"NgClassBase",(function(){return Et})),n.d(e,"NgForOf",(function(){return Mt})),n.d(e,"NgForOfContext",(function(){return Pt})),n.d(e,"NgIf",(function(){return jt})),n.d(e,"NgIfContext",(function(){return Ft})),n.d(e,"NgPlural",(function(){return Ht})),n.d(e,"NgPluralCase",(function(){return Ut})),n.d(e,"NgStyle",(function(){return ee})),n.d(e,"NgStyleBase",(function(){return te})),n.d(e,"NgSwitch",(function(){return zt})),n.d(e,"NgSwitchCase",(function(){return Bt})),n.d(e,"NgSwitchDefault",(function(){return Yt})),n.d(e,"NgTemplateOutlet",(function(){return ne})),n.d(e,"NgComponentOutlet",(function(){return Dt})),n.d(e,"DOCUMENT",(function(){return Je})),n.d(e,"AsyncPipe",(function(){return Ae})),n.d(e,"DatePipe",(function(){return Pe})),n.d(e,"I18nPluralPipe",(function(){return qe})),n.d(e,"I18nSelectPipe",(function(){return je})),n.d(e,"JsonPipe",(function(){return Fe})),n.d(e,"LowerCasePipe",(function(){return ke})),n.d(e,"CurrencyPipe",(function(){return Ye})),n.d(e,"DecimalPipe",(function(){return ze})),n.d(e,"PercentPipe",(function(){return Be})),n.d(e,"SlicePipe",(function(){return We})),n.d(e,"UpperCasePipe",(function(){return De})),n.d(e,"TitleCasePipe",(function(){return Le})),n.d(e,"KeyValuePipe",(function(){return Ge})),n.d(e,"DeprecatedDatePipe",(function(){return ve})),n.d(e,"DeprecatedCurrencyPipe",(function(){return we})),n.d(e,"DeprecatedDecimalPipe",(function(){return Te})),n.d(e,"DeprecatedPercentPipe",(function(){return Oe})),n.d(e,"ɵPLATFORM_BROWSER_ID",(function(){return Qe})),n.d(e,"ɵPLATFORM_SERVER_ID",(function(){return Xe})),n.d(e,"ɵPLATFORM_WORKER_APP_ID",(function(){return tn})),n.d(e,"ɵPLATFORM_WORKER_UI_ID",(function(){return en})),n.d(e,"isPlatformBrowser",(function(){return nn})),n.d(e,"isPlatformServer",(function(){return an})),n.d(e,"isPlatformWorkerApp",(function(){return rn})),n.d(e,"isPlatformWorkerUi",(function(){return sn})),n.d(e,"VERSION",(function(){return on})),n.d(e,"ViewportScroller",(function(){return un})),n.d(e,"ɵNullViewportScroller",(function(){return ln})),n.d(e,"ɵNgClassImplProvider__POST_R3__",(function(){return Rt})),n.d(e,"ɵNgClassR2Impl",(function(){return It})),n.d(e,"ɵNgClassImpl",(function(){return St})),n.d(e,"ɵNgStyleImplProvider__POST_R3__",(function(){return Jt})),n.d(e,"ɵNgStyleR2Impl",(function(){return Kt})),n.d(e,"ɵNgStyleImpl",(function(){return Wt})),n.d(e,"ɵngStyleDirectiveDef__POST_R3__",(function(){return Xt})),n.d(e,"ɵngClassDirectiveDef__POST_R3__",(function(){return kt})),n.d(e,"PlatformLocation",(function(){return r})),n.d(e,"LOCATION_INITIALIZED",(function(){return i})),n.d(e,"LocationStrategy",(function(){return s})),n.d(e,"APP_BASE_HREF",(function(){return o})),n.d(e,"HashLocationStrategy",(function(){return l})),n.d(e,"PathLocationStrategy",(function(){return c})),n.d(e,"Location",(function(){return u}));var a=n("8Y7J");class r{}const i=new a.InjectionToken("Location Initialized");class s{}const o=new a.InjectionToken("appBaseHref");class u{constructor(t,e){this._subject=new a.EventEmitter,this._urlChangeListeners=[],this._platformStrategy=t;const n=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=u.stripTrailingSlash(d(n)),this._platformStrategy.onPopState(t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=""){return this.path()==this.normalize(t+u.normalizeQueryParams(e))}normalize(t){return u.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,d(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e="",n=null){this._platformStrategy.pushState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+u.normalizeQueryParams(e)),n)}replaceState(t,e="",n=null){this._platformStrategy.replaceState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+u.normalizeQueryParams(e)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(t){this._urlChangeListeners.push(t),this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)})}_notifyUrlChangeListeners(t="",e){this._urlChangeListeners.forEach(n=>n(t,e))}subscribe(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})}static normalizeQueryParams(t){return t&&"?"!==t[0]?"?"+t:t}static joinWithSlash(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e}static stripTrailingSlash(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)}}function d(t){return t.replace(/\/index.html$/,"")}class l extends s{constructor(t,e){super(),this._platformLocation=t,this._baseHref="",null!=e&&(this._baseHref=e)}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=u.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e}pushState(t,e,n,a){let r=this.prepareExternalUrl(n+u.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(t,e,r)}replaceState(t,e,n,a){let r=this.prepareExternalUrl(n+u.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}class c extends s{constructor(t,e){if(super(),this._platformLocation=t,null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=e}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return u.joinWithSlash(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+u.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?`${e}${n}`:e}pushState(t,e,n,a){const r=this.prepareExternalUrl(n+u.normalizeQueryParams(a));this._platformLocation.pushState(t,e,r)}replaceState(t,e,n,a){const r=this.prepareExternalUrl(n+u.normalizeQueryParams(a));this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}const f={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,0],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"р.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",0],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",0],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",0],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",0],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",0],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"₱"],PKR:[void 0,"Rs",0],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RUR:[void 0,"р."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,0],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UZS:[void 0,void 0,0],VEF:[void 0,"Bs"],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]},h=function(){var t={Decimal:0,Percent:1,Currency:2,Scientific:3};return t[t.Decimal]="Decimal",t[t.Percent]="Percent",t[t.Currency]="Currency",t[t.Scientific]="Scientific",t}(),g=function(){var t={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return t[t.Zero]="Zero",t[t.One]="One",t[t.Two]="Two",t[t.Few]="Few",t[t.Many]="Many",t[t.Other]="Other",t}(),p=function(){var t={Format:0,Standalone:1};return t[t.Format]="Format",t[t.Standalone]="Standalone",t}(),b=function(){var t={Narrow:0,Abbreviated:1,Wide:2,Short:3};return t[t.Narrow]="Narrow",t[t.Abbreviated]="Abbreviated",t[t.Wide]="Wide",t[t.Short]="Short",t}(),m=function(){var t={Short:0,Medium:1,Long:2,Full:3};return t[t.Short]="Short",t[t.Medium]="Medium",t[t.Long]="Long",t[t.Full]="Full",t}(),y=function(){var t={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};return t[t.Decimal]="Decimal",t[t.Group]="Group",t[t.List]="List",t[t.PercentSign]="PercentSign",t[t.PlusSign]="PlusSign",t[t.MinusSign]="MinusSign",t[t.Exponential]="Exponential",t[t.SuperscriptingExponent]="SuperscriptingExponent",t[t.PerMille]="PerMille",t[t.Infinity]="Infinity",t[t.NaN]="NaN",t[t.TimeSeparator]="TimeSeparator",t[t.CurrencyDecimal]="CurrencyDecimal",t[t.CurrencyGroup]="CurrencyGroup",t}(),v=function(){var t={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6};return t[t.Sunday]="Sunday",t[t.Monday]="Monday",t[t.Tuesday]="Tuesday",t[t.Wednesday]="Wednesday",t[t.Thursday]="Thursday",t[t.Friday]="Friday",t[t.Saturday]="Saturday",t}();function x(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].LocaleId]}function _(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),i=j([r[a["ɵLocaleDataIndex"].DayPeriodsFormat],r[a["ɵLocaleDataIndex"].DayPeriodsStandalone]],e);return j(i,n)}function T(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),i=j([r[a["ɵLocaleDataIndex"].DaysFormat],r[a["ɵLocaleDataIndex"].DaysStandalone]],e);return j(i,n)}function O(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),i=j([r[a["ɵLocaleDataIndex"].MonthsFormat],r[a["ɵLocaleDataIndex"].MonthsStandalone]],e);return j(i,n)}function w(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].Eras],e)}function S(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].FirstDayOfWeek]}function I(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].WeekendRange]}function N(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].DateFormat],e)}function C(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].TimeFormat],e)}function R(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].DateTimeFormat],e)}function A(t,e){const n=Object(a["ɵfindLocaleData"])(t),r=n[a["ɵLocaleDataIndex"].NumberSymbols][e];if(void 0===r){if(e===y.CurrencyDecimal)return n[a["ɵLocaleDataIndex"].NumberSymbols][y.Decimal];if(e===y.CurrencyGroup)return n[a["ɵLocaleDataIndex"].NumberSymbols][y.Group]}return r}function k(t,e){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].NumberFormats][e]}function E(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].CurrencySymbol]||null}function L(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].CurrencyName]||null}const D=a["ɵgetLocalePluralCase"];function P(t){if(!t[a["ɵLocaleDataIndex"].ExtraData])throw new Error(`Missing extra locale data for the locale "${t[a["ɵLocaleDataIndex"].LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function M(t){const e=Object(a["ɵfindLocaleData"])(t);return P(e),(e[a["ɵLocaleDataIndex"].ExtraData][2]||[]).map(t=>"string"==typeof t?F(t):[F(t[0]),F(t[1])])}function q(t,e,n){const r=Object(a["ɵfindLocaleData"])(t);P(r);const i=j([r[a["ɵLocaleDataIndex"].ExtraData][0],r[a["ɵLocaleDataIndex"].ExtraData][1]],e)||[];return j(i,n)||[]}function j(t,e){for(let n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function F(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}function G(t,e,n="en"){const r=function(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].Currencies]}(n)[t]||f[t]||[],i=r[1];return"narrow"===e&&"string"==typeof i?i:r[0]||t}function V(t){let e;const n=f[t];return n&&(e=n[2]),"number"==typeof e?e:2}const z=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,B={},Y=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{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]*)/,H=function(){var t={Short:0,ShortGMT:1,Long:2,Extended:3};return t[t.Short]="Short",t[t.ShortGMT]="ShortGMT",t[t.Long]="Long",t[t.Extended]="Extended",t}(),U=function(){var t={FullYear:0,Month:1,Date:2,Hours:3,Minutes:4,Seconds:5,FractionalSeconds:6,Day:7};return t[t.FullYear]="FullYear",t[t.Month]="Month",t[t.Date]="Date",t[t.Hours]="Hours",t[t.Minutes]="Minutes",t[t.Seconds]="Seconds",t[t.FractionalSeconds]="FractionalSeconds",t[t.Day]="Day",t}(),W=function(){var t={DayPeriods:0,Days:1,Months:2,Eras:3};return t[t.DayPeriods]="DayPeriods",t[t.Days]="Days",t[t.Months]="Months",t[t.Eras]="Eras",t}();function K(t,e,n,a){let r=function(t){if(rt(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){t=t.trim();const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){const[e,n,a]=t.split("-").map(t=>+t);return new Date(e,n-1,a)}let n;if(n=t.match(z))return at(n)}const e=new Date(t);if(!rt(e))throw new Error(`Unable to convert "${t}" into a date`);return e}(t);e=function t(e,n){const a=x(e);if(B[a]=B[a]||{},B[a][n])return B[a][n];let r="";switch(n){case"shortDate":r=N(e,m.Short);break;case"mediumDate":r=N(e,m.Medium);break;case"longDate":r=N(e,m.Long);break;case"fullDate":r=N(e,m.Full);break;case"shortTime":r=C(e,m.Short);break;case"mediumTime":r=C(e,m.Medium);break;case"longTime":r=C(e,m.Long);break;case"fullTime":r=C(e,m.Full);break;case"short":const n=t(e,"shortTime"),a=t(e,"shortDate");r=$(R(e,m.Short),[n,a]);break;case"medium":const i=t(e,"mediumTime"),s=t(e,"mediumDate");r=$(R(e,m.Medium),[i,s]);break;case"long":const o=t(e,"longTime"),u=t(e,"longDate");r=$(R(e,m.Long),[o,u]);break;case"full":const d=t(e,"fullTime"),l=t(e,"fullDate");r=$(R(e,m.Full),[d,l])}return r&&(B[a][n]=r),r}(n,e)||e;let i,s=[];for(;e;){if(i=Y.exec(e),!i){s.push(e);break}{s=s.concat(i.slice(1));const t=s.pop();if(!t)break;e=t}}let o=r.getTimezoneOffset();a&&(o=nt(a,o),r=function(t,e,n){const a=t.getTimezoneOffset();return function(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,-1*(nt(e,a)-a))}(r,a));let u="";return s.forEach(t=>{const e=function(t){if(et[t])return et[t];let e;switch(t){case"G":case"GG":case"GGG":e=Q(W.Eras,b.Abbreviated);break;case"GGGG":e=Q(W.Eras,b.Wide);break;case"GGGGG":e=Q(W.Eras,b.Narrow);break;case"y":e=J(U.FullYear,1,0,!1,!0);break;case"yy":e=J(U.FullYear,2,0,!0,!0);break;case"yyy":e=J(U.FullYear,3,0,!1,!0);break;case"yyyy":e=J(U.FullYear,4,0,!1,!0);break;case"M":case"L":e=J(U.Month,1,1);break;case"MM":case"LL":e=J(U.Month,2,1);break;case"MMM":e=Q(W.Months,b.Abbreviated);break;case"MMMM":e=Q(W.Months,b.Wide);break;case"MMMMM":e=Q(W.Months,b.Narrow);break;case"LLL":e=Q(W.Months,b.Abbreviated,p.Standalone);break;case"LLLL":e=Q(W.Months,b.Wide,p.Standalone);break;case"LLLLL":e=Q(W.Months,b.Narrow,p.Standalone);break;case"w":e=tt(1);break;case"ww":e=tt(2);break;case"W":e=tt(1,!0);break;case"d":e=J(U.Date,1);break;case"dd":e=J(U.Date,2);break;case"E":case"EE":case"EEE":e=Q(W.Days,b.Abbreviated);break;case"EEEE":e=Q(W.Days,b.Wide);break;case"EEEEE":e=Q(W.Days,b.Narrow);break;case"EEEEEE":e=Q(W.Days,b.Short);break;case"a":case"aa":case"aaa":e=Q(W.DayPeriods,b.Abbreviated);break;case"aaaa":e=Q(W.DayPeriods,b.Wide);break;case"aaaaa":e=Q(W.DayPeriods,b.Narrow);break;case"b":case"bb":case"bbb":e=Q(W.DayPeriods,b.Abbreviated,p.Standalone,!0);break;case"bbbb":e=Q(W.DayPeriods,b.Wide,p.Standalone,!0);break;case"bbbbb":e=Q(W.DayPeriods,b.Narrow,p.Standalone,!0);break;case"B":case"BB":case"BBB":e=Q(W.DayPeriods,b.Abbreviated,p.Format,!0);break;case"BBBB":e=Q(W.DayPeriods,b.Wide,p.Format,!0);break;case"BBBBB":e=Q(W.DayPeriods,b.Narrow,p.Format,!0);break;case"h":e=J(U.Hours,1,-12);break;case"hh":e=J(U.Hours,2,-12);break;case"H":e=J(U.Hours,1);break;case"HH":e=J(U.Hours,2);break;case"m":e=J(U.Minutes,1);break;case"mm":e=J(U.Minutes,2);break;case"s":e=J(U.Seconds,1);break;case"ss":e=J(U.Seconds,2);break;case"S":e=J(U.FractionalSeconds,1);break;case"SS":e=J(U.FractionalSeconds,2);break;case"SSS":e=J(U.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=X(H.Short);break;case"ZZZZZ":e=X(H.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=X(H.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=X(H.Long);break;default:return null}return et[t]=e,e}(t);u+=e?e(r,n,o):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}function $(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,(function(t,n){return null!=e&&n in e?e[n]:t}))),t}function Z(t,e,n="-",a,r){let i="";(t<0||r&&t<=0)&&(r?t=1-t:(t=-t,i=n));let s=String(t);for(;s.length<e;)s="0"+s;return a&&(s=s.substr(s.length-e)),i+s}function J(t,e,n=0,a=!1,r=!1){return function(i,s){let o=function(t,e){switch(t){case U.FullYear:return e.getFullYear();case U.Month:return e.getMonth();case U.Date:return e.getDate();case U.Hours:return e.getHours();case U.Minutes:return e.getMinutes();case U.Seconds:return e.getSeconds();case U.FractionalSeconds:return e.getMilliseconds();case U.Day:return e.getDay();default:throw new Error(`Unknown DateType value "${t}".`)}}(t,i);if((n>0||o>-n)&&(o+=n),t===U.Hours)0===o&&-12===n&&(o=12);else if(t===U.FractionalSeconds)return u=e,Z(o,3).substr(0,u);var u;const d=A(s,y.MinusSign);return Z(o,e,d,a,r)}}function Q(t,e,n=p.Format,a=!1){return function(r,i){return function(t,e,n,a,r,i){switch(n){case W.Months:return O(e,r,a)[t.getMonth()];case W.Days:return T(e,r,a)[t.getDay()];case W.DayPeriods:const s=t.getHours(),o=t.getMinutes();if(i){const t=M(e),n=q(e,r,a);let i;if(t.forEach((t,e)=>{if(Array.isArray(t)){const{hours:a,minutes:r}=t[0],{hours:u,minutes:d}=t[1];s>=a&&o>=r&&(s<u||s===u&&o<d)&&(i=n[e])}else{const{hours:a,minutes:r}=t;a===s&&r===o&&(i=n[e])}}),i)return i}return _(e,r,a)[s<12?0:1];case W.Eras:return w(e,a)[t.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${n}`)}}(r,i,t,e,n,a)}}function X(t){return function(e,n,a){const r=-1*a,i=A(n,y.MinusSign),s=r>0?Math.floor(r/60):Math.ceil(r/60);switch(t){case H.Short:return(r>=0?"+":"")+Z(s,2,i)+Z(Math.abs(r%60),2,i);case H.ShortGMT:return"GMT"+(r>=0?"+":"")+Z(s,1,i);case H.Long:return"GMT"+(r>=0?"+":"")+Z(s,2,i)+":"+Z(Math.abs(r%60),2,i);case H.Extended:return 0===a?"Z":(r>=0?"+":"")+Z(s,2,i)+":"+Z(Math.abs(r%60),2,i);default:throw new Error(`Unknown zone width "${t}"`)}}}function tt(t,e=!1){return function(n,a){let r;if(e){const t=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,e=n.getDate();r=1+Math.floor((e+t)/7)}else{const t=function(t){const e=new Date(t,0,1).getDay();return new Date(t,0,1+(e<=4?4:11)-e)}(n.getFullYear()),e=(i=n,new Date(i.getFullYear(),i.getMonth(),i.getDate()+(4-i.getDay()))).getTime()-t.getTime();r=1+Math.round(e/6048e5)}var i;return Z(r,t,A(a,y.MinusSign))}}const et={};function nt(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function at(t){const e=new Date(0);let n=0,a=0;const r=t[8]?e.setUTCFullYear:e.setFullYear,i=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),a=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const s=Number(t[4]||0)-n,o=Number(t[5]||0)-a,u=Number(t[6]||0),d=Math.round(1e3*parseFloat("0."+(t[7]||0)));return i.call(e,s,o,u,d),e}function rt(t){return t instanceof Date&&!isNaN(t.valueOf())}const it=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function st(t,e,n,a,r,i,s=!1){let o="",u=!1;if(isFinite(t)){let d=function(t){let e,n,a,r,i,s=Math.abs(t)+"",o=0;for((n=s.indexOf("."))>-1&&(s=s.replace(".","")),(a=s.search(/e/i))>0?(n<0&&(n=a),n+=+s.slice(a+1),s=s.substring(0,a)):n<0&&(n=s.length),a=0;"0"===s.charAt(a);a++);if(a===(i=s.length))e=[0],n=1;else{for(i--;"0"===s.charAt(i);)i--;for(n-=a,e=[],r=0;a<=i;a++,r++)e[r]=Number(s.charAt(a))}return n>22&&(e=e.splice(0,21),o=n-1,n=1),{digits:e,exponent:o,integerLen:n}}(t);s&&(d=function(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(d));let l=e.minInt,c=e.minFrac,f=e.maxFrac;if(i){const t=i.match(it);if(null===t)throw new Error(`${i} is not a valid digit info`);const e=t[1],n=t[3],a=t[5];null!=e&&(l=ct(e)),null!=n&&(c=ct(n)),null!=a?f=ct(a):null!=n&&c>f&&(f=c)}!function(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let a=t.digits,r=a.length-t.integerLen;const i=Math.min(Math.max(e,r),n);let s=i+t.integerLen,o=a[s];if(s>0){a.splice(Math.max(t.integerLen,s));for(let t=s;t<a.length;t++)a[t]=0}else{r=Math.max(0,r),t.integerLen=1,a.length=Math.max(1,s=i+1),a[0]=0;for(let t=1;t<s;t++)a[t]=0}if(o>=5)if(s-1<0){for(let e=0;e>s;e--)a.unshift(0),t.integerLen++;a.unshift(1),t.integerLen++}else a[s-1]++;for(;r<Math.max(0,i);r++)a.push(0);let u=0!==i;const d=e+t.integerLen,l=a.reduceRight((function(t,e,n,a){return a[n]=(e+=t)<10?e:e-10,u&&(0===a[n]&&n>=d?a.pop():u=!1),e>=10?1:0}),0);l&&(a.unshift(l),t.integerLen++)}(d,c,f);let h=d.digits,g=d.integerLen;const p=d.exponent;let b=[];for(u=h.every(t=>!t);g<l;g++)h.unshift(0);for(;g<0;g++)h.unshift(0);g>0?b=h.splice(g,h.length):(b=h,h=[0]);const m=[];for(h.length>=e.lgSize&&m.unshift(h.splice(-e.lgSize,h.length).join(""));h.length>e.gSize;)m.unshift(h.splice(-e.gSize,h.length).join(""));h.length&&m.unshift(h.join("")),o=m.join(A(n,a)),b.length&&(o+=A(n,r)+b.join("")),p&&(o+=A(n,y.Exponential)+"+"+p)}else o=A(n,y.Infinity);return o=t<0&&!u?e.negPre+o+e.negSuf:e.posPre+o+e.posSuf,o}function ot(t,e,n,a,r){const i=lt(k(e,h.Currency),A(e,y.MinusSign));return i.minFrac=V(a),i.maxFrac=i.minFrac,st(t,i,e,y.CurrencyGroup,y.CurrencyDecimal,r).replace("¤",n).replace("¤","")}function ut(t,e,n){return st(t,lt(k(e,h.Percent),A(e,y.MinusSign)),e,y.Group,y.Decimal,n,!0).replace(new RegExp("%","g"),A(e,y.PercentSign))}function dt(t,e,n){return st(t,lt(k(e,h.Decimal),A(e,y.MinusSign)),e,y.Group,y.Decimal,n)}function lt(t,e="-"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},a=t.split(";"),r=a[0],i=a[1],s=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],o=s[0],u=s[1]||"";n.posPre=o.substr(0,o.indexOf("#"));for(let l=0;l<u.length;l++){const t=u.charAt(l);"0"===t?n.minFrac=n.maxFrac=l+1:"#"===t?n.maxFrac=l+1:n.posSuf+=t}const d=o.split(",");if(n.gSize=d[1]?d[1].length:0,n.lgSize=d[2]||d[1]?(d[2]||d[1]).length:0,i){const t=r.length-n.posPre.length-n.posSuf.length,e=i.indexOf("#");n.negPre=i.substr(0,e).replace(/'/g,""),n.negSuf=i.substr(e+t).replace(/'/g,"")}else n.negPre=e+n.posPre,n.negSuf=n.posSuf;return n}function ct(t){const e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}const ft=new a.InjectionToken("UseV4Plurals");class ht{}function gt(t,e,n,a){let r=`=${t}`;if(e.indexOf(r)>-1)return r;if(r=n.getPluralCategory(t,a),e.indexOf(r)>-1)return r;if(e.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${t}"`)}class pt extends ht{constructor(t,e){super(),this.locale=t,this.deprecatedPluralFn=e}getPluralCategory(t,e){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(e||this.locale,t):D(e||this.locale)(t)){case g.Zero:return"zero";case g.One:return"one";case g.Two:return"two";case g.Few:return"few";case g.Many:return"many";default:return"other"}}}function bt(t,e){"string"==typeof e&&(e=parseInt(e,10));const n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),i=a.length,s=parseInt(a,10),o=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?g.One:g.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?g.One:g.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?g.One:g.Other;case"ar":return 0===n?g.Zero:1===n?g.One:2===n?g.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?g.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?g.Many:g.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===i?g.One:g.Other;case"be":return n%10==1&&n%100!=11?g.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?g.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?g.Many:g.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?g.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?g.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?g.Few:0!==n&&n%1e6==0?g.Many:g.Other;case"bs":case"hr":case"sr":return 0===i&&r%10==1&&r%100!=11||s%10==1&&s%100!=11?g.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||s%10===Math.floor(s%10)&&s%10>=2&&s%10<=4&&!(s%100>=12&&s%100<=14)?g.Few:g.Other;case"cs":case"sk":return 1===r&&0===i?g.One:r===Math.floor(r)&&r>=2&&r<=4&&0===i?g.Few:0!==i?g.Many:g.Other;case"cy":return 0===n?g.Zero:1===n?g.One:2===n?g.Two:3===n?g.Few:6===n?g.Many:g.Other;case"da":return 1===n||0!==o&&(0===r||1===r)?g.One:g.Other;case"dsb":case"hsb":return 0===i&&r%100==1||s%100==1?g.One:0===i&&r%100==2||s%100==2?g.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||s%100===Math.floor(s%100)&&s%100>=3&&s%100<=4?g.Few:g.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?g.One:g.Other;case"fil":return 0===i&&(1===r||2===r||3===r)||0===i&&r%10!=4&&r%10!=6&&r%10!=9||0!==i&&s%10!=4&&s%10!=6&&s%10!=9?g.One:g.Other;case"ga":return 1===n?g.One:2===n?g.Two:n===Math.floor(n)&&n>=3&&n<=6?g.Few:n===Math.floor(n)&&n>=7&&n<=10?g.Many:g.Other;case"gd":return 1===n||11===n?g.One:2===n||12===n?g.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?g.Few:g.Other;case"gv":return 0===i&&r%10==1?g.One:0===i&&r%10==2?g.Two:0!==i||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==i?g.Many:g.Other:g.Few;case"he":return 1===r&&0===i?g.One:2===r&&0===i?g.Two:0!==i||n>=0&&n<=10||n%10!=0?g.Other:g.Many;case"is":return 0===o&&r%10==1&&r%100!=11||0!==o?g.One:g.Other;case"ksh":return 0===n?g.Zero:1===n?g.One:g.Other;case"kw":case"naq":case"se":case"smn":return 1===n?g.One:2===n?g.Two:g.Other;case"lag":return 0===n?g.Zero:0!==r&&1!==r||0===n?g.Other:g.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?g.Few:0!==s?g.Many:g.Other:g.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===i&&s%100===Math.floor(s%100)&&s%100>=11&&s%100<=19?g.Zero:n%10==1&&n%100!=11||2===i&&s%10==1&&s%100!=11||2!==i&&s%10==1?g.One:g.Other;case"mk":return 0===i&&r%10==1||s%10==1?g.One:g.Other;case"mt":return 1===n?g.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?g.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?g.Many:g.Other;case"pl":return 1===r&&0===i?g.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?g.Few:0===i&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?g.Many:g.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?g.One:g.Other;case"ro":return 1===r&&0===i?g.One:0!==i||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?g.Few:g.Other;case"ru":case"uk":return 0===i&&r%10==1&&r%100!=11?g.One:0===i&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?g.Few:0===i&&r%10==0||0===i&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===i&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?g.Many:g.Other;case"shi":return 0===r||1===n?g.One:n===Math.floor(n)&&n>=2&&n<=10?g.Few:g.Other;case"si":return 0===n||1===n||0===r&&1===s?g.One:g.Other;case"sl":return 0===i&&r%100==1?g.One:0===i&&r%100==2?g.Two:0===i&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==i?g.Few:g.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?g.One:g.Other;default:return g.Other}}function mt(t,e,n){"string"!=typeof e&&(n=e,e=t[a["ɵLocaleDataIndex"].LocaleId]),e=e.toLowerCase().replace(/_/g,"-"),a["ɵLOCALE_DATA"][e]=t,n&&(a["ɵLOCALE_DATA"][e][a["ɵLocaleDataIndex"].ExtraData]=n)}function yt(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const t=n.indexOf("="),[a,r]=-1==t?[n,""]:[n.slice(0,t),n.slice(t+1)];if(a.trim()===e)return decodeURIComponent(r)}return null}class vt{constructor(t,e){this._name=t,this._options=e,this.value=null,this._lastSetValue=null,this._lastSetValueType=0,this._lastSetValueIdentityChange=!1}setValue(t){if(Array.isArray(t))this._lastSetValueType=4;else if(t instanceof Set)this._lastSetValueType=8;else if(t&&"string"==typeof t){if(!(4&this._options))throw new Error(this._name+" string values are not allowed");this._lastSetValueType=1}else this._lastSetValueType=t?2:0;this._lastSetValueIdentityChange=!0,this._lastSetValue=t||null}hasValueChanged(){let t=this._lastSetValueIdentityChange;if(!(t||14&this._lastSetValueType))return!1;let e=null;const n=!!(1&this._options),a=!!(8&this._options),r=!!(2&this._options);switch(this._lastSetValueType){case 1:const i=this._lastSetValue.split(/\s+/g);16&this._options?(e={},i.forEach((t,n)=>e[t]=!0)):e=i.reduce((t,e,n)=>t+(n?" ":"")+e);break;case 2:const s=this._lastSetValue,o=Object.keys(s);t||(t=!this.value||function(t,e,n){const a=t;if(!wt(Object.keys(e),a))return!0;for(let r=0;r<a.length;r++){const t=a[r];if(e[t]!==n[t])return!0}return!1}(o,this.value,s)),t&&(e=xt(this._name,n,a,r,s,o));break;case 4:case 8:const u=Array.from(this._lastSetValue);t||(t=!wt(Object.keys(this.value),u)),t&&(e=xt(this._name,n,a,r,u));break;default:e=null}return t&&(this.value=e),t}}function xt(t,e,n,a,r,i){const s={};if(i)for(let o=0;o<i.length;o++){let t=i[o];t=e?t.trim():t,Tt(s,t,r[t],n,a)}else for(let o=0;o<r.length;o++){let n=r[o];_t(t,n),n=e?n.trim():n,Tt(s,n,!0,!1,a)}return s}function _t(t,e){if("string"!=typeof e)throw new Error(`${t} can only toggle CSS classes expressed as strings, got ${e}`)}function Tt(t,e,n,a,r){if(r&&e.indexOf(" ")>0){const r=e.split(/\s+/g);for(let e=0;e<r.length;e++)Ot(t,r[e],n,a)}else Ot(t,e,n,a)}function Ot(t,e,n,a){if(a){const t=function(t,e){const n=t.indexOf(".");if(n>0){const a=t.substr(n+1);t=t.substring(0,n),null!=e&&(e+=a)}return{key:t,value:e}}(e,n);n=t.value,e=t.key}t[e]=n}function wt(t,e){if(t&&e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(-1===e.indexOf(t[n]))return!1;return!0}return!1}class St{}class It{constructor(t,e,n,a){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=a,this._initialClasses=[]}getValue(){return null}setClass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}setNgClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(Object(a["ɵisListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}applyChanges(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachChangedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachRemovedItem(t=>{t.previousValue&&this._toggleClass(t.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(t=>{if("string"!=typeof t.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Object(a["ɵstringify"])(t.item)}`);this._toggleClass(t.item,!0)}),t.forEachRemovedItem(t=>this._toggleClass(t.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!0)):Object.keys(t).forEach(e=>this._toggleClass(e,!!t[e])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!1)):Object.keys(t).forEach(t=>this._toggleClass(t,!1)))}_toggleClass(t,e){(t=t.trim())&&t.split(/\s+/g).forEach(t=>{e?this._renderer.addClass(this._ngEl.nativeElement,t):this._renderer.removeClass(this._ngEl.nativeElement,t)})}}class Nt{constructor(){this._value=null,this._ngClassDiffer=new vt("NgClass",23),this._classStringDiffer=null}getValue(){return this._value}setClass(t){(t||this._classStringDiffer)&&(this._classStringDiffer=this._classStringDiffer||new vt("class",20),this._classStringDiffer.setValue(t))}setNgClass(t){this._ngClassDiffer.setValue(t)}applyChanges(){const t=!!this._classStringDiffer&&this._classStringDiffer.hasValueChanged(),e=this._ngClassDiffer.hasValueChanged();if(t||e){let t=this._ngClassDiffer.value;if(this._classStringDiffer){let e=this._classStringDiffer.value;e&&(t=t?Object.assign({},e,t):e)}this._value=t}}}const Ct={provide:St,useClass:It},Rt={provide:St,useClass:Nt},At=Ct,kt=Object(a["ɵɵdefineDirective"])({type:function(){},selectors:null,factory:()=>{},hostBindings:function(t,e,n){1&t&&(Object(a["ɵɵallocHostVars"])(1),Object(a["ɵɵstyling"])()),2&t&&(Object(a["ɵɵclassMap"])(e.getValue()),Object(a["ɵɵstylingApply"])())}});let Et=(()=>{class t{constructor(t){this._delegate=t}getValue(){return this._delegate.getValue()}}return t.ngDirectiveDef=void 0,t})();class Lt extends Et{constructor(t){super(t)}set klass(t){this._delegate.setClass(t)}set ngClass(t){this._delegate.setNgClass(t)}ngDoCheck(){this._delegate.applyChanges()}}class Dt{constructor(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}ngOnChanges(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){const e=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){const t=e.get(a.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(t.injector)}else this._moduleRef=null;const n=(this._moduleRef?this._moduleRef.componentFactoryResolver:e.get(a.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(n,this._viewContainerRef.length,e,this.ngComponentOutletContent)}}ngOnDestroy(){this._moduleRef&&this._moduleRef.destroy()}}class Pt{constructor(t,e,n,a){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=a}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}}class Mt{constructor(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){Object(a.isDevMode)()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}. `+"See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;if(!this._differ&&n)try{this._differ=this._differs.find(n).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${n}' of type '${t=n,t.name||typeof t}'. NgFor only supports binding to Iterables such as Arrays.`)}}var t;if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation((t,n,a)=>{if(null==t.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new Pt(null,this._ngForOf,-1,-1),null===a?void 0:a),r=new qt(t,n);e.push(r)}else if(null==a)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const r=this._viewContainer.get(n);this._viewContainer.move(r,a);const i=new qt(t,r);e.push(i)}});for(let n=0;n<e.length;n++)this._perViewChange(e[n].view,e[n].record);for(let n=0,a=this._viewContainer.length;n<a;n++){const t=this._viewContainer.get(n);t.context.index=n,t.context.count=a,t.context.ngForOf=this._ngForOf}t.forEachIdentityChange(t=>{this._viewContainer.get(t.currentIndex).context.$implicit=t.item})}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}class qt{constructor(t,e){this.record=t,this.view=e}}class jt{constructor(t,e){this._viewContainer=t,this._context=new Ft,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){Gt("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){Gt("ngIfElse",t),this._elseTemplateRef=t,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)))}}class Ft{constructor(){this.$implicit=null,this.ngIf=null}}function Gt(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Object(a["ɵstringify"])(e)}'.`)}class Vt{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()}}class zt{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)}_matchCase(t){const e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e}_updateDefaultCases(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(let e=0;e<this._defaultViews.length;e++)this._defaultViews[e].enforceState(t)}}}class Bt{constructor(t,e,n){this.ngSwitch=n,n._addCase(),this._view=new Vt(t,e)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}class Yt{constructor(t,e,n){n._addDefault(new Vt(t,e))}}class Ht{constructor(t){this._localization=t,this._caseViews={}}set ngPlural(t){this._switchValue=t,this._updateView()}addCase(t,e){this._caseViews[t]=e}_updateView(){this._clearViews();const t=Object.keys(this._caseViews),e=gt(this._switchValue,t,this._localization);this._activateView(this._caseViews[e])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(t){t&&(this._activeView=t,this._activeView.create())}}class Ut{constructor(t,e,n,a){this.value=t;const r=!isNaN(Number(t));a.addCase(r?`=${t}`:t,new Vt(n,e))}}class Wt{}class Kt{constructor(t,e,n){this._ngEl=t,this._differs=e,this._renderer=n}getValue(){return null}setNgStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}applyChanges(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_applyChanges(t){t.forEachRemovedItem(t=>this._setStyle(t.key,null)),t.forEachAddedItem(t=>this._setStyle(t.key,t.currentValue)),t.forEachChangedItem(t=>this._setStyle(t.key,t.currentValue))}_setStyle(t,e){const[n,a]=t.split(".");null!=(e=null!=e&&a?`${e}${a}`:e)?this._renderer.setStyle(this._ngEl.nativeElement,n,e):this._renderer.removeStyle(this._ngEl.nativeElement,n)}}class $t{constructor(){this._differ=new vt("NgStyle",8),this._value=null}getValue(){return this._value}setNgStyle(t){this._differ.setValue(t)}applyChanges(){this._differ.hasValueChanged()&&(this._value=this._differ.value)}}const Zt={provide:Wt,useClass:Kt},Jt={provide:Wt,useClass:$t},Qt=Zt,Xt=Object(a["ɵɵdefineDirective"])({type:function(){},selectors:null,factory:()=>{},hostBindings:function(t,e,n){1&t&&Object(a["ɵɵstyling"])(),2&t&&(Object(a["ɵɵstyleMap"])(e.getValue()),Object(a["ɵɵstylingApply"])())}});let te=(()=>{class t{constructor(t){this._delegate=t}getValue(){return this._delegate.getValue()}}return t.ngDirectiveDef=void 0,t})();class ee extends te{constructor(t){super(t)}set ngStyle(t){this._delegate.setNgStyle(t)}ngDoCheck(){this._delegate.applyChanges()}}class ne{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(t){this._shouldRecreateView(t)?(this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this.ngTemplateOutlet&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext))):this._viewRef&&this.ngTemplateOutletContext&&this._updateExistingContext(this.ngTemplateOutletContext)}_shouldRecreateView(t){const e=t.ngTemplateOutletContext;return!!t.ngTemplateOutlet||e&&this._hasContextShapeChanged(e)}_hasContextShapeChanged(t){const e=Object.keys(t.previousValue||{}),n=Object.keys(t.currentValue||{});if(e.length===n.length){for(let t of n)if(-1===e.indexOf(t))return!0;return!1}return!0}_updateExistingContext(t){for(let e of Object.keys(t))this._viewRef.context[e]=this.ngTemplateOutletContext[e]}}const ae=[Lt,Dt,Mt,jt,ne,ee,zt,Bt,Yt,Ht,Ut];function re(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${Object(a["ɵstringify"])(t)}'`)}const ie=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,se={yMMMdjms:me(be([ge("year",1),pe("month",3),ge("day",1),ge("hour",1),ge("minute",1),ge("second",1)])),yMdjm:me(be([ge("year",1),ge("month",1),ge("day",1),ge("hour",1),ge("minute",1)])),yMMMMEEEEd:me(be([ge("year",1),pe("month",4),pe("weekday",4),ge("day",1)])),yMMMMd:me(be([ge("year",1),pe("month",4),ge("day",1)])),yMMMd:me(be([ge("year",1),pe("month",3),ge("day",1)])),yMd:me(be([ge("year",1),ge("month",1),ge("day",1)])),jms:me(be([ge("hour",1),ge("second",1),ge("minute",1)])),jm:me(be([ge("hour",1),ge("minute",1)]))},oe={yyyy:me(ge("year",4)),yy:me(ge("year",2)),y:me(ge("year",1)),MMMM:me(pe("month",4)),MMM:me(pe("month",3)),MM:me(ge("month",2)),M:me(ge("month",1)),LLLL:me(pe("month",4)),L:me(pe("month",1)),dd:me(ge("day",2)),d:me(ge("day",1)),HH:ue(le(me(he(ge("hour",2),!1)))),H:le(me(he(ge("hour",1),!1))),hh:ue(le(me(he(ge("hour",2),!0)))),h:le(me(he(ge("hour",1),!0))),jj:me(ge("hour",2)),j:me(ge("hour",1)),mm:ue(me(ge("minute",2))),m:me(ge("minute",1)),ss:ue(me(ge("second",2))),s:me(ge("second",1)),sss:me(ge("second",3)),EEEE:me(pe("weekday",4)),EEE:me(pe("weekday",3)),EE:me(pe("weekday",2)),E:me(pe("weekday",1)),a:de(me(he(ge("hour",1),!0))),Z:fe("short"),z:fe("long"),ww:me({}),w:me({}),G:me(pe("era",1)),GG:me(pe("era",2)),GGG:me(pe("era",3)),GGGG:me(pe("era",4))};function ue(t){return function(e,n){const a=t(e,n);return 1==a.length?"0"+a:a}}function de(t){return function(e,n){return t(e,n).split(" ")[1]}}function le(t){return function(e,n){return t(e,n).split(" ")[0]}}function ce(t,e,n){return new Intl.DateTimeFormat(e,n).format(t).replace(/[\u200e\u200f]/g,"")}function fe(t){const e={hour:"2-digit",hour12:!1,timeZoneName:t};return function(t,n){const a=ce(t,n,e);return a?a.substring(3):""}}function he(t,e){return t.hour12=e,t}function ge(t,e){const n={};return n[t]=2===e?"2-digit":"numeric",n}function pe(t,e){const n={};return n[t]=e<4?e>1?"short":"narrow":"long",n}function be(t){return t.reduce((t,e)=>Object.assign({},t,e),{})}function me(t){return(e,n)=>ce(e,n,t)}const ye=new Map;let ve=(()=>{class t{constructor(t){this._locale=t}transform(e,n="mediumDate"){if(null==e||""===e||e!=e)return null;let a;if("string"==typeof e&&(e=e.trim()),xe(e))a=e;else if(isNaN(e-parseFloat(e)))if("string"==typeof e&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){const[t,n,r]=e.split("-").map(t=>parseInt(t,10));a=new Date(t,n-1,r)}else a=new Date(e);else a=new Date(parseFloat(e));if(!xe(a)){let n;if("string"!=typeof e||!(n=e.match(z)))throw re(t,e);a=at(n)}return class{static format(t,e,n){return function(t,e,n){const a=se[t];if(a)return a(e,n);const r=t;let i=ye.get(r);if(!i){let e;i=[],ie.exec(t);let n=t;for(;n;)e=ie.exec(n),e?(i=i.concat(e.slice(1)),n=i.pop()):(i.push(n),n=null);ye.set(r,i)}return i.reduce((t,a)=>{const r=oe[a];return t+(r?r(e,n):function(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}(a))},"")}(n,t,e)}}.format(a,this._locale,t._ALIASES[n]||n)}}return t._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},t})();function xe(t){return t instanceof Date&&!isNaN(t.valueOf())}function _e(t,e,n,a,r,i=null,s=!1){if(null==n)return null;if("number"!=typeof(n="string"!=typeof n||isNaN(+n-parseFloat(n))?n:+n))throw re(t,n);let o,u,d;if(a!==h.Currency&&(o=1,u=0,d=3),r){const t=r.match(it);if(null===t)throw new Error(`${r} is not a valid digit info for number pipes`);null!=t[1]&&(o=ct(t[1])),null!=t[3]&&(u=ct(t[3])),null!=t[5]&&(d=ct(t[5]))}return class{static format(t,e,n,a={}){const{minimumIntegerDigits:r,minimumFractionDigits:i,maximumFractionDigits:s,currency:o,currencyAsSymbol:u=!1}=a,d={minimumIntegerDigits:r,minimumFractionDigits:i,maximumFractionDigits:s,style:h[n].toLowerCase()};return n==h.Currency&&(d.currency="string"==typeof o?o:void 0,d.currencyDisplay=u?"symbol":"code"),new Intl.NumberFormat(e,d).format(t)}}.format(n,e,a,{minimumIntegerDigits:o,minimumFractionDigits:u,maximumFractionDigits:d,currency:i,currencyAsSymbol:s})}class Te{constructor(t){this._locale=t}transform(t,e){return _e(Te,this._locale,t,h.Decimal,e)}}class Oe{constructor(t){this._locale=t}transform(t,e){return _e(Oe,this._locale,t,h.Percent,e)}}class we{constructor(t){this._locale=t}transform(t,e="USD",n=!1,a){return _e(we,this._locale,t,h.Currency,a,e,n)}}const Se=[Te,Oe,we,ve];class Ie{createSubscription(t,e){return t.subscribe({next:e,error:t=>{throw t}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class Ne{createSubscription(t,e){return t.then(e,t=>{throw t})}dispose(t){}onDestroy(t){}}const Ce=new Ne,Re=new Ie;class Ae{constructor(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):Object(a["ɵlooseIdentical"])(this._latestValue,this._latestReturnedValue)?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,a.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,e=>this._updateLatestValue(t,e))}_selectStrategy(t){if(Object(a["ɵisPromise"])(t))return Ce;if(Object(a["ɵisObservable"])(t))return Re;throw re(Ae,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())}}class ke{transform(t){if(!t)return t;if("string"!=typeof t)throw re(ke,t);return t.toLowerCase()}}const Ee=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g;class Le{transform(t){if(!t)return t;if("string"!=typeof t)throw re(Le,t);return t.replace(Ee,t=>t[0].toUpperCase()+t.substr(1).toLowerCase())}}class De{transform(t){if(!t)return t;if("string"!=typeof t)throw re(De,t);return t.toUpperCase()}}class Pe{constructor(t){this.locale=t}transform(t,e="mediumDate",n,a){if(null==t||""===t||t!=t)return null;try{return K(t,e,a||this.locale,n)}catch(r){throw re(Pe,r.message)}}}const Me=/#/g;class qe{constructor(t){this._localization=t}transform(t,e,n){if(null==t)return"";if("object"!=typeof e||null===e)throw re(qe,e);return e[gt(t,Object.keys(e),this._localization,n)].replace(Me,t.toString())}}class je{transform(t,e){if(null==t)return"";if("object"!=typeof e||"string"!=typeof t)throw re(je,e);return e.hasOwnProperty(t)?e[t]:e.hasOwnProperty("other")?e.other:""}}class Fe{transform(t){return JSON.stringify(t,null,2)}}class Ge{constructor(t){this.differs=t,this.keyValues=[]}transform(t,e=Ve){if(!t||!(t instanceof Map)&&"object"!=typeof t)return null;this.differ||(this.differ=this.differs.find(t).create());const n=this.differ.diff(t);return n&&(this.keyValues=[],n.forEachItem(t=>{this.keyValues.push({key:t.key,value:t.currentValue})}),this.keyValues.sort(e)),this.keyValues}}function Ve(t,e){const n=t.key,a=e.key;if(n===a)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(null===n)return 1;if(null===a)return-1;if("string"==typeof n&&"string"==typeof a)return n<a?-1:1;if("number"==typeof n&&"number"==typeof a)return n-a;if("boolean"==typeof n&&"boolean"==typeof a)return n<a?-1:1;const r=String(n),i=String(a);return r==i?0:r<i?-1:1}class ze{constructor(t){this._locale=t}transform(t,e,n){if(He(t))return null;n=n||this._locale;try{return dt(Ue(t),n,e)}catch(a){throw re(ze,a.message)}}}class Be{constructor(t){this._locale=t}transform(t,e,n){if(He(t))return null;n=n||this._locale;try{return ut(Ue(t),n,e)}catch(a){throw re(Be,a.message)}}}class Ye{constructor(t){this._locale=t}transform(t,e,n="symbol",a,r){if(He(t))return null;r=r||this._locale,"boolean"==typeof n&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),n=n?"symbol":"code");let i=e||"USD";"code"!==n&&(i="symbol"===n||"symbol-narrow"===n?G(i,"symbol"===n?"wide":"narrow",r):n);try{return ot(Ue(t),r,i,e,a)}catch(s){throw re(Ye,s.message)}}}function He(t){return null==t||""===t||t!=t}function Ue(t){if("string"==typeof t&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if("number"!=typeof t)throw new Error(`${t} is not a number`);return t}class We{transform(t,e,n){if(null==t)return t;if(!this.supports(t))throw re(We,t);return t.slice(e,n)}supports(t){return"string"==typeof t||Array.isArray(t)}}const Ke=[Ae,De,ke,Fe,We,ze,Be,Le,Ye,Pe,qe,je,Ge];class $e{}class Ze{}const Je=new a.InjectionToken("DocumentToken"),Qe="browser",Xe="server",tn="browserWorkerApp",en="browserWorkerUi";function nn(t){return t===Qe}function an(t){return t===Xe}function rn(t){return t===tn}function sn(t){return t===en}const on=new a.Version("8.2.14");let un=(()=>{class t{}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({token:t,providedIn:"root",factory:()=>new dn(Object(a["ɵɵinject"])(Je),window,Object(a["ɵɵinject"])(a.ErrorHandler))}),t})();class dn{constructor(t,e,n){this.document=t,this.window=e,this.errorHandler=n,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportScrollRestoration()?[this.window.scrollX,this.window.scrollY]:[0,0]}scrollToPosition(t){this.supportScrollRestoration()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(this.supportScrollRestoration()){t=this.window.CSS&&this.window.CSS.escape?this.window.CSS.escape(t):t.replace(/(\"|\'\ |:|\.|\[|\]|,|=)/g,"\\$1");try{const e=this.document.querySelector(`#${t}`);if(e)return void this.scrollToElement(e);const n=this.document.querySelector(`[name='${t}']`);if(n)return void this.scrollToElement(n)}catch(e){this.errorHandler.handleError(e)}}}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,a=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(n-r[0],a-r[1])}supportScrollRestoration(){try{return!!this.window&&!!this.window.scrollTo}catch(t){return!1}}}class ln{setOffset(t){}getScrollPosition(){return[0,0]}scrollToPosition(t){}scrollToAnchor(t){}setHistoryScrollRestoration(t){}}},SatO:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n("wd/R"))},SeVD:function(t,e,n){"use strict";var a=n("ngJS"),r=n("NJ4a"),i=n("Lhse"),s=n("kJWO"),o=n("I55L"),u=n("c2HN"),d=n("XoHu");n.d(e,"a",(function(){return l}));const l=t=>{if(t&&"function"==typeof t[s.a])return l=t,t=>{const e=l[s.a]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)};if(Object(o.a)(t))return Object(a.a)(t);if(Object(u.a)(t))return n=t,t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,r.a),t);if(t&&"function"==typeof t[i.a])return e=t,t=>{const n=e[i.a]();for(;;){const e=n.next();if(e.done){t.complete();break}if(t.next(e.value),t.closed)break}return"function"==typeof n.return&&t.add(()=>{n.return&&n.return()}),t};{const e=Object(d.a)(t)?"an invalid object":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected.`+" You can provide an Observable, Promise, Array, or Iterable.")}var e,n,l}},SfRM:function(t,e,n){var a=n("YESw");t.exports=function(){this.__data__=a?a(null):{},this.size=0}},SgmB:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("IheW"),r=n("LRne"),i=n("5+tZ"),s=n("8Y7J"),o=n("pL04");let u=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("api/role")}delete(t){return this.http.delete(`api/role/${t}`)}get(t){return this.http.get(`api/role/${t}`)}create(t){return this.http.post("api/role",t)}clone(t,e){let n=new a.h;return n=n.append("new_name",e),this.http.post(`api/role/${t}/clone`,null,{params:n})}update(t){return this.http.put(`api/role/${t.name}`,t)}exists(t){return this.list().pipe(Object(i.a)(e=>{const n=e.some(e=>e.name===t);return Object(r.a)(n)}))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](a.c))},token:t,providedIn:o.a}),t})()},SpAZ:function(t,e,n){"use strict";function a(t){return t}n.d(e,"a",(function(){return a}))},SxV6:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("sVev"),r=n("pLZG"),i=n("IzEk"),s=n("xbPD"),o=n("XDbj"),u=n("SpAZ");function d(t,e){const n=arguments.length>=2;return d=>d.pipe(t?Object(r.a)((e,n)=>t(e,n,d)):u.a,Object(i.a)(1),n?Object(s.a)(e):Object(o.a)(()=>new a.a))}},Sxd8:function(t,e,n){var a=n("ZCgT");t.exports=function(t){var e=a(t),n=e%1;return e==e?n?e-n:e:0}},T1AV:function(t,e,n){var a=n("t2Dn"),r=n("5Tg0"),i=n("yP5f"),s=n("Q1l4"),o=n("+iFO"),u=n("03A+"),d=n("Z0cm"),l=n("3L66"),c=n("DSRE"),f=n("lSCD"),h=n("GoyQ"),g=n("YO3V"),p=n("c6wG"),b=n("itsj"),m=n("jeLo");t.exports=function(t,e,n,y,v,x,_){var T=b(t,n),O=b(e,n),w=_.get(O);if(w)a(t,n,w);else{var S=x?x(T,O,n+"",t,e,_):void 0,I=void 0===S;if(I){var N=d(O),C=!N&&c(O),R=!N&&!C&&p(O);S=O,N||C||R?d(T)?S=T:l(T)?S=s(T):C?(I=!1,S=r(O,!0)):R?(I=!1,S=i(O,!0)):S=[]:g(O)||u(O)?(S=T,u(T)?S=m(T):h(T)&&!f(T)||(S=o(O))):I=!1}I&&(_.set(O,S),v(S,O,y,x,_),_.delete(O)),a(t,n,S)}}},TJUb:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e){return a.isPlainObject(e)?a.get(e,t,t):t}}},TNUL:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Input)(),s("design:type",Number)],t.prototype,"index",void 0),i([Object(a.Input)(),s("design:type",Object)],t.prototype,"templates",void 0),i([Object(a.Component)({selector:"TreeNode, tree-node",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div\n        *ngIf="!templates.treeNodeFullTemplate"\n        [class]="node.getClass()"\n        [class.tree-node]="true"\n        [class.tree-node-expanded]="node.isExpanded && node.hasChildren"\n        [class.tree-node-collapsed]="node.isCollapsed && node.hasChildren"\n        [class.tree-node-leaf]="node.isLeaf"\n        [class.tree-node-active]="node.isActive"\n        [class.tree-node-focused]="node.isFocused"\n      >\n        <tree-node-drop-slot\n          *ngIf="index === 0"\n          [dropIndex]="node.index"\n          [node]="node.parent"\n        ></tree-node-drop-slot>\n\n        <tree-node-wrapper\n          [node]="node"\n          [index]="index"\n          [templates]="templates"\n        ></tree-node-wrapper>\n\n        <tree-node-children\n          [node]="node"\n          [templates]="templates"\n        ></tree-node-children>\n        <tree-node-drop-slot\n          [dropIndex]="node.index + 1"\n          [node]="node.parent"\n        ></tree-node-drop-slot>\n      </div>\n      <ng-container\n        [ngTemplateOutlet]="templates.treeNodeFullTemplate"\n        [ngTemplateOutletContext]="{\n          $implicit: node,\n          node: node,\n          index: index,\n          templates: templates\n        }"\n      >\n      </ng-container>\n    </ng-container>\n  '})],t)}()},TWQb:function(t,e,n){var a=n("/GqU"),r=n("UMSQ"),i=n("I8vh"),s=function(t){return function(e,n,s){var o,u=a(e),d=r(u.length),l=i(s,d);if(t&&n!=n){for(;d>l;)if((o=u[l++])!=o)return!0}else for(;d>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},TYy9:function(t,e,n){var a=n("XGnz");t.exports=function(t){return null!=t&&t.length?a(t,1):[]}},TYzs:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=parseInt(t,10);return isNaN(e)?t:t+(1===Math.floor(e/10)?"th":e%10==1?"st":e%10==2?"nd":e%10==3?"rd":"th")}}},TeQF:function(t,e,n){"use strict";var a=n("I+eb"),r=n("tycR").filter,i=n("Hd5f"),s=n("rkAj"),o=i("filter"),u=s("filter");a({target:"Array",proto:!0,forced:!o||!u},{filter:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},UB5X:function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return"number"==typeof t||r(t)&&"[object Number]"==a(t)}},UDhR:function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<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("wd/R"))},UMSQ:function(t,e,n){var a=n("ppGB"),r=Math.min;t.exports=function(t){return t>0?r(a(t),9007199254740991):0}},"UNi/":function(t,e){t.exports=function(t,e){for(var n=-1,a=Array(t);++n<t;)a[n]=e(n);return a}},USCx:function(t,e,n){!function(t){"use strict";t.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","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:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n("wd/R"))},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UfWW:function(t,e,n){var a=n("KwMD"),r=n("ut/Y"),i=n("Sxd8"),s=Math.max;t.exports=function(t,e,n){var o=null==t?0:t.length;if(!o)return-1;var u=null==n?0:i(n);return u<0&&(u=s(o+u,0)),a(t,r(e,3),u)}},UpQW:function(t,e,n){!function(t){"use strict";var e=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];t.defineLocale("ur",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,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:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n("wd/R"))},Ur1D:function(t,e,n){!function(t){"use strict";t.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(t,e,n){return t<11?"ekuseni":t<15?"emini":t<19?"entsambama":"ebusuku"},meridiemHour:function(t,e){return 12===t&&(t=0),"ekuseni"===e?t:"emini"===e?t>=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n("wd/R"))},UxlC:function(t,e,n){"use strict";var a=n("14Sl"),r=n("glrk"),i=n("ewvW"),s=n("UMSQ"),o=n("ppGB"),u=n("HYAF"),d=n("iqWW"),l=n("FMNM"),c=Math.max,f=Math.min,h=Math.floor,g=/\$([$&'`]|\d\d?|<[^>]*>)/g,p=/\$([$&'`]|\d\d?)/g;a("replace",2,(function(t,e,n,a){var b=a.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,m=a.REPLACE_KEEPS_$0,y=b?"$":"$0";return[function(n,a){var r=u(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,r,a):e.call(String(r),n,a)},function(t,a){if(!b&&m||"string"==typeof a&&-1===a.indexOf(y)){var i=n(e,t,this,a);if(i.done)return i.value}var u=r(t),h=String(this),g="function"==typeof a;g||(a=String(a));var p=u.global;if(p){var x=u.unicode;u.lastIndex=0}for(var _=[];;){var T=l(u,h);if(null===T)break;if(_.push(T),!p)break;""===String(T[0])&&(u.lastIndex=d(h,s(u.lastIndex),x))}for(var O,w="",S=0,I=0;I<_.length;I++){T=_[I];for(var N=String(T[0]),C=c(f(o(T.index),h.length),0),R=[],A=1;A<T.length;A++)R.push(void 0===(O=T[A])?O:String(O));var k=T.groups;if(g){var E=[N].concat(R,C,h);void 0!==k&&E.push(k);var L=String(a.apply(void 0,E))}else L=v(N,h,C,R,k,a);C>=S&&(w+=h.slice(S,C)+L,S=C+N.length)}return w+h.slice(S)}];function v(t,n,a,r,s,o){var u=a+t.length,d=r.length,l=p;return void 0!==s&&(s=i(s),l=g),e.call(o,l,(function(e,i){var o;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,a);case"'":return n.slice(u);case"<":o=s[i.slice(1,-1)];break;default:var l=+i;if(0===l)return e;if(l>d){var c=h(l/10);return 0===c?e:c<=d?void 0===r[c-1]?i.charAt(1):r[c-1]+i.charAt(1):e}o=r[l-1]}return void 0===o?"":o}))}}))},"V/fk":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},V2x9:function(t,e,n){!function(t){"use strict";t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},V3my:function(t,e,n){"use strict";var a=n("s7LF"),r=n("LvDl"),i=n("cp0P"),s=(n("DSvg"),n("SgmB"),n("20UP"),n("Mxhz"),n("OLbh")),o=n("DNAf"),u=(n("sne2"),n("oxzT")),d=n("mtw6"),l=(n("2EZI"),n("1Ni5")),c=n("oMSZ"),f=(n("aexS"),n("9nlD"),n("1nQr"),function(t){return t.editing="editing",t}({}));class h{}n.d(e,"a",(function(){return g}));class g{constructor(t,e,n,a,r,i,s,d,l,c,h,g,p){this.authService=t,this.authStorageService=e,this.route=n,this.router=a,this.modalService=r,this.roleService=i,this.userService=s,this.notificationService=d,this.i18n=l,this.actionLabels=c,this.passwordPolicyService=h,this.formBuilder=g,this.settingsService=p,this.userFormMode=f,this.messages=new o.a({empty:this.i18n("There are no roles.")},this.i18n),this.passwordPolicyHelpText="",this.icons=u.a,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.resource=this.i18n("user"),this.createForm(),this.messages=new o.a({empty:this.i18n("There are no roles.")},this.i18n)}createForm(){this.passwordPolicyService.getHelpText().subscribe(t=>{this.passwordPolicyHelpText=t}),this.userForm=this.formBuilder.group({username:["",[a.B.required],[l.a.unique(this.userService.validateUserName,this.userService)]],name:[""],password:["",[],[l.a.passwordPolicy(this.userService,()=>this.userForm.getValue("username"),(t,e,n)=>{this.passwordStrengthLevelClass=this.passwordPolicyService.mapCreditsToCssClass(e),this.passwordValuation=r.defaultTo(n,"")})]],confirmpassword:[""],pwdExpirationDate:[""],email:["",[l.a.email]],roles:[[]],enabled:[!0,[a.B.required]],pwdUpdateRequired:[!0]},{validators:[l.a.match("password","confirmpassword")]})}ngOnInit(){this.router.url.startsWith("/user-management/users/edit")?(this.mode=this.userFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.minDate=new Date;const t=[this.roleService.list(),this.settingsService.getStandardSettings()];Object(i.a)(t).subscribe(t=>{if(this.allRoles=r.map(t[0],t=>(t.enabled=!0,t)),this.pwdExpirationSettings=new c.a(t[1]),this.mode===this.userFormMode.editing)this.initEdit();else if(this.pwdExpirationSettings.pwdExpirationSpan>0){const t=this.userForm.get("pwdExpirationDate"),e=new Date;e.setDate(this.minDate.getDate()+this.pwdExpirationSettings.pwdExpirationSpan),t.setValue(e),t.setValidators([a.B.required])}})}initEdit(){this.disableForEdit(),this.route.params.subscribe(t=>{this.userService.get(t.username).subscribe(t=>{this.response=r.cloneDeep(t),this.setResponse(t)})})}disableForEdit(){this.userForm.get("username").disable()}setResponse(t){["username","name","email","roles","enabled","pwdUpdateRequired"].forEach(e=>this.userForm.get(e).setValue(t[e]));const e=t.pwdExpirationDate;e&&this.userForm.get("pwdExpirationDate").setValue(new Date(1e3*e))}getRequest(){const t=new h;["username","password","name","email","roles","enabled","pwdUpdateRequired"].forEach(e=>t[e]=this.userForm.get(e).value);const e=this.userForm.get("pwdExpirationDate").value;return e&&(this.mode===this.userFormMode.editing&&this.response.pwdExpirationDate===Number(e)/1e3||e.setHours(23,59,59),t.pwdExpirationDate=Number(e)/1e3),t}createAction(){const t=this.getRequest();this.userService.create(t).subscribe(()=>{this.notificationService.show(d.a.success,this.i18n('Created user "{{username}}"',{username:t.username})),this.router.navigate(["/user-management/users"])},()=>{this.userForm.setErrors({cdSubmitButton:!0})})}editAction(){if(this.isUserRemovingNeededRolePermissions()){const t={titleText:this.i18n("Update user"),buttonText:this.i18n("Continue"),bodyTpl:this.removeSelfUserReadUpdatePermissionTpl,onSubmit:()=>{this.modalRef.hide(),this.doEditAction()},onCancel:()=>{this.userForm.setErrors({cdSubmitButton:!0}),this.userForm.get("roles").reset(this.userForm.get("roles").value)}};this.modalRef=this.modalService.show(s.a,{initialState:t})}else this.doEditAction()}isCurrentUser(){return this.authStorageService.getUsername()===this.userForm.getValue("username")}isUserChangingRoles(){return this.isCurrentUser()&&this.response&&!r.isEqual(this.response.roles,this.userForm.getValue("roles"))}isUserRemovingNeededRolePermissions(){return this.isCurrentUser()&&!this.hasUserReadUpdatePermissions(this.userForm.getValue("roles"))}hasUserReadUpdatePermissions(t=[]){for(const e of this.allRoles)if(-1!==t.indexOf(e.name)&&e.scopes_permissions.user){const t=e.scopes_permissions.user;return["read","update"].every(e=>-1!==t.indexOf(e))}return!1}doEditAction(){const t=this.getRequest();this.userService.update(t).subscribe(()=>{this.isUserChangingRoles()?this.authService.logout(()=>{this.notificationService.show(d.a.info,this.i18n("You were automatically logged out because your roles have been changed."))}):(this.notificationService.show(d.a.success,this.i18n('Updated user "{{username}}"',{username:t.username})),this.router.navigate(["/user-management/users"]))},()=>{this.userForm.setErrors({cdSubmitButton:!0})})}clearExpirationDate(){this.userForm.get("pwdExpirationDate").setValue(void 0)}submit(){this.mode===this.userFormMode.editing?this.editAction():this.createAction()}}},V5SL:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="fr-FR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Activer/Désactiver la navigation</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Tableau de bord</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Grappe</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Serveurs</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Moniteurs</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Services</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuration</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Carte CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Modules Manager</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Journaux</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Réserves</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloc</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Images</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Mise en miroir</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Systèmes de fichiers</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartiments</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Sélectionner une langue</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Chargement des données du panneau...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Sélecteur d\'heure Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Réinitialiser les paramètres</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Retour</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Échec du chargement des données.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>sélectionné(e)(s)</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>trouvé(e)(s)</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nom</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Description</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Description longue</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Valeur par défaut</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Valeur par défaut du daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valeurs</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Sauvegarder</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visionneuse de carte CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Chargement...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nom d\'hôte</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Ce champs est requis.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Oui.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Annuler</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Fermer</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Liste d\'hôtes</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Performance globale</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Aucune entrée trouvée</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Journaux de grappes</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Journaux d\'audit</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Chargement de la configuration...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>La configuration n\'a pas pu être chargée.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Modifier le module Manager</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>La valeur entrée n\'est pas un UUID valide, par exemple : 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>La valeur entrée doit être une adresse IP valide.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>La valeur entrée doit être un nombre.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>La valeur entrée doit être un nombre ou une valeur décimale.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Mise à jour</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Statut</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID de grappe</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap modifié</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Dans le quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Hors quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Ajouter</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Fonctionnalités</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Drapeaux OSD à l\'échelle de la grappe</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Soumettre</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avancé...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorité de récupération des OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorité</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personnaliser les valeurs de priorité</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Ce champ est obligatoire !</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>La valeur doit être comprise entre 0 et 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Réévaluer</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profondeur } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profondeur } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Liste des OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valeur</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Modifier</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Supprimer</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Santé</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiques</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clients</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Accès possible par tous les clients</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresses</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Champ obligatoire</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Doit contenir une ou plusieurs valeurs séparées par une virgule</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Par exemple :</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Type d\'accès</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Ajouter des clients</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Aucune grappe disponible --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Sélectionner la grappe --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Ajouter un daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend de stockage</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Aucune réserve de données disponible --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Sélectionner le backend de stockage --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Utilisateur Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Aucun utilisateur disponible --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Sélectionner l\'utilisateur Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID utilisateur CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Aucun client disponible --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Sélectionner le client cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nom CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Libellé de sécurité</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Activer le libellé de sécurité</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Chemin CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Le chemin doit commencer par \'/\' et peut être suivi d\'un mot</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Un nouveau répertoire sera créé</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Chemin</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Le chemin peut être constitué d\'un seul \'/\' ou d\'un seul mot</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Un compartiment sera créé</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocole NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Balise NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Les clients ne peuvent pas monter de sous-répertoires (si la balise = foo, le client ne peut pas monter foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>En utilisant différentes options de balise, il est possible d\'exporter plusieurs fois le même chemin.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>En utilisant différentes options de pseudo, il est possible d\'exporter exporter plusieurs fois le même chemin.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Aucun type d\'accès disponible --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Sélectionner le type d\'accès --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Aucun squash disponible --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Sélectionnez le type de squash d\'ID utilisateur qui est effectué --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocole de transport</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Bienvenue dans Ceph !</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nom d\'utilisateur requis</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Mot de passe requis</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Connexion</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Désolé, l\'utilisateur n\'existe pas dans Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Interdit</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Désolé, vous n\'êtes pas autorisé à voir ce que vous cherchez.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuration RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Supprimez la valeur de configuration locale. La valeur de configuration parent sera héritée et utilisée à la place.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>La valeur minimale est 0.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Liste des réserves</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Le nom doit être exclusivement composé de caractères alphanumériques, de tirets et de traits de soulignement.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Le nom de profil du code d\'effacement sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plug-in</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Blocs de données (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Doit être égal ou supérieur à 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Blocs de codage (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Doit être égal ou supérieur à 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimateur de durabilité (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localité (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domaine de défaillance Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localité Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Aucun</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technique</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Taille de paquet</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Racine Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe de périphérique Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>tout</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Répertoire</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nom...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Le nom de réserve Ceph sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Type de réserve</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Sélectionner un type de réserve --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Au moins un groupe de placements est nécessaire.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Votre grappe ne peut pas gérer autant de groupes de placements. Veuillez recalculer le nombre de groupes de placements nécessaires.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Aide au calcul</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Taille de réplication</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Drapeaux</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Écrasements EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Applications</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Aucun profil de code d\'effacement n\'est disponible --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Sélectionner un profil de code d\'effacement --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Jeu de règles Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Sélectionner une règle crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Règle Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Étapes Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compression</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Mode</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorithme</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Aucun algorithme de compression d\'effacement n\'est disponible --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Taille de blob minimale</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>par ex. 128 Kio</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>La valeur doit être supérieure à 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Taille de blob maximale</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>par ex., 512 Kio</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>La valeur doit être supérieure à la taille de blob minimale.</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rapport</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rapport de compression</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>La valeur doit se situer entre 0.0 et 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>par exemple, 10 Gio</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Détails</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Détails des performances</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Détails des niveaux de mise en cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Déplacer une image vers la corbeille.</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protection expire le </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NON PROTÉGÉ</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Format de date incorrect. Veuillez utiliser "AAAA-MM-JJ HH:mm:ss"</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protection a déjà expiré. Veuillez sélectionner une date ultérieure ou laisser le champ vide.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Déplacer une image</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Présentation</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Cibles</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Authentification de la découverte</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Utilisateur</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Les noms d\'utilisateur doivent comporter entre 8 et 64 caractères et\n                        ne peuvent contenir que des lettres et les caractères \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Mot de passe</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Utilisateur commun</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Mot de passe commun</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informations disponibles :</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Cibles iSCSI non disponibles</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Réserve</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Réserve de données</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Créé</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Taille</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objets</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Taille de l\'objet</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Provisionné</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Provisionnement total</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unité de segmentation</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Nombre de segmentations</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Parent</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Préfixe du nom de bloc</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Tri</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantanés</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Ce paramètre remplace la valeur globale</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Il s\'agit de la valeur globale. Aucune valeur de cette option n\'a été définie pour cette image.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>Les caractères \'/\' et \'@\' ne sont pas autorisés.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Aucune réserve RBD disponible --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Sélectionner une réserve --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Utiliser une réserve de données dédiée</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Réserve de données</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Réserve dédiée qui stocke les données objet du RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Vous devez augmenter la taille.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avancé</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Segmentation</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unité de segmentation</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Sélectionner une unité de segmentation --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Ce champ est obligatoire, car le nombre de segments est défini.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>L\'unité de segmentation est supérieure à la taille de l\'objet.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Nombre de segments</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Ce champ est obligatoire, car l\'unité de segmentation est définie.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Le nombre de segments doit être supérieur à 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Vous êtes sur le point de revenir à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vider la corbeille</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tout</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Réserve :</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nom de la réserve...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurer l\'image</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Pour restaurer</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>saisissez le nouveau nom de l\'image, puis cliquez sur</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nouveau nom</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Expiration le </target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protection jusqu\'au</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologie iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Il n\'est généralement pas nécessaire de modifier ces paramètres par défaut.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Paramètres</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmer</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Paramètres avancés</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN cible</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Modèle IQN incorrect.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Par exemple : iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Plus d\'informations</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Des paramètres avancés de cette cible ont été modifiés.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portails</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Ajouter un portail</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Des paramètres avancés de cette image ont été modifiés.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Ajouter une image</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Authentification ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Initiateurs</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Initiateur</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN client</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>L\'IQN de l\'initiateur doit être unique.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Les noms d\'utilisateur doivent comporter entre 8 et 64 caractères et\n                        ne peuvent contenir que des lettres et les caractères \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>L\'initiateur appartient à un groupe dans lequel les images seront configurées.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Aucun élément ajouté.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Ajouter un initiateur</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Groupes</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Groupe</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Ajouter un groupe</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Corbeille</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problèmes</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronisation en cours</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Prêt</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Modifier le mode de mise en miroir de la réserve</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Les grappes d\'homologues doivent être supprimées avant de désactiver la mise en miroir.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Modifier} other {Ajouter} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nom de grappe</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Le nom de grappe n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>L\'ID CephX n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adresses du moniteur</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Adresses séparées par une virgule...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>L\'adresse du moniteur n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Clef CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Clef Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La clef CephX doit être codée en base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Compteurs de performance non disponibles</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Liste de daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Compteurs de performance</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Chargement des données de compartiment...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>La valeur n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Le nom sélectionné est déjà en cours d\'utilisation.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Propriétaire</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Sélectionner un utilisateur --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Activé</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Type d\'index</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Règle de placement</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marqueur</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marqueur maximum</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Version principale</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Date de modification</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Groupe de zones</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Quota de compartiments</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Taille maximale</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Illimité</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Nombre maximal d\'objets</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nom d\'utilisateur</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Sélectionner un nom d\'utilisateur --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Générer automatiquement la clef</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Clef d\'accès</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Clef secrète</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nom complet</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Adresse électronique</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspendu</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Système</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Nombre maximal de compartiments</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Utilisateurs secondaires</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Fonctionnalités</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Quota utilisateur</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Afficher</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Clefs</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Type</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Sélectionner un type --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Autorisation</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Sélectionner une autorisation --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Utilisateur secondaire</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>L\'ID d\'utilisateur secondaire sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lire, écrire</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>complet</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Clé Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Générer automatiquement le secret</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Chargement des donnés utilisateur…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Les donnés utilisateur n\'ont pas pu être chargées.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>L\'ID utilisateur spécifié est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ceci n\'est pas une adresse électronique valide.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>L\'adresse électronique spécifiée est déjà utilisée.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Nombre max. de compartiments</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Désactivé</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personnalisé</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Clef S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Il n\'y a aucun utilisateur secondaire.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Il n\'y a pas de clefs.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Il n\'y a aucune fonctionnalité.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Taille illimitée</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Taille max.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objets illimités</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Nombre max. d\'objets</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>La valeur saisie doit être &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Description...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Autorisations</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Rôles</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmer le mot de passe</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Le mot de passe de confirmation ne correspond pas au mot de passe.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Adresse électronique</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>L\'adresse électronique n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Vous êtes sur le point de supprimer les autorisations "lecture/mise à jour utilisateur" de votre propre utilisateur.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Si vous continuez, vous ne serez plus en mesure d\'ajouter ni de supprimer des rôles pour n\'importe quel utilisateur.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Voulez-vous vraiment continuer ?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Aide</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentation</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>À propos de</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Paramètres du tableau de bord</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestion des utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Utilisateur connecté</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Se déconnecter</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attributs (carte OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Métadonnées non disponibles</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Métadonnées</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Compteur de performance</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Écritures</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lectures</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogramme</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valeurs actuelles</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Minimum</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Maximum</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Source</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Niveau</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Mise à jour possible lors de l\'exécution (modifiable)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Balises</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valeurs d\'énuménation</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Voir aussi</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Statut de la grappe</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons du gestionnaire</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Passerelles d\'objet</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Serveurs de métadonnées</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Passerelles iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS client</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Débit client</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lectures/Écritures client</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Débit de récupération</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Nettoyer</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Performance</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacité brute</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Groupes de placements par OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Statut du groupe de placements</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacité</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Rangs</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Actuel</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Authentification de la découverte mise à jour</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Il n\'y a aucun portail disponible.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Il n\'y a aucune image disponible.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Il n\'y a aucune image disponible. Veillez à ajouter une image à la cible.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Il n\'y a aucun initiateur disponible. Veillez à ajouter un initiateur à la cible.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Cible</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>État</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Octets de lecture</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Octets d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Opérations d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O depuis</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problème</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Avancement</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Mode d\'édition</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Ajouter un homologue</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Modifier un homologue</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Supprimer un homologue</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>nb en local</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>nb à distance</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>mettre en miroir l\'homologue</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Clef</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Aplatissement en profondeur</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Superposition</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Verrou exclusif</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Assignation d\'objet (nécessite exclusive-lock)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journalisation (nécessite exclusive-lock)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NON PROTÉGÉ</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Retour à l\'état initial de l\'instantané RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Revenir à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Intantané RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Supprimé le</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>type</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>état</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>version</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Hôte</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>racine</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons en veille</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Rang</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Activité</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Utilisation</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Mis à jour</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>La valeur peut être mise à jour au moment de l\'exécution.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Les daemons/clients ne tirent pas cette valeur de\n  la base de données de configuration de Monitor. Nous n\'autorisons pas le réglage de cette option via \'ceph config\n  set ...\'. Cette option doit être configurée via ceph.conf ou via\n  la ligne de commande.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>L\'option ne prend effet qu\'au démarrage du daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>L\'option n\'affecte que la création des grappes.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>L\'option n\'affecte que la création des daemons.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Service</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valeur actuelle</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Modifiable</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Activer</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Désactiver</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Reconnexion en cours… Veuillez patienter.</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Adresse publique</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessions ouvertes</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Pas rentrés</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Les OSD qui ont été marqués comme sortis ne seront pas marqués comme rentrés à leur démarrage.</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Pas sortis</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Les OSD ne seront pas marqués automatiquement comme sortis après l\'intervalle configuré.</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Pas démarrés</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Les OSD ne sont pas autorisés à démarrer.</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Pas arrêtés</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Les rapports de défaillance des OSD sont ignorés, de sorte que les moniteurs ne marquent pas les OSD comme étant arrêtés.</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pause</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Met en pause les lectures et écritures</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Pas de nettoyage</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Nettoyage désactivé</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Pas de nettoyage en profondeur</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Le nettoyage en profondeur est désactivé</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Pas de renvoi</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Le renvoi des groupes de placements est suspendu</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Pas de récupération</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>La récupération des groupes de placements est suspendue</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Tri au niveau du bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Utiliser le tri au niveau du bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Variables snapdir purgées</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Les OSD ont converti les variables snapset</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Suppressions des récupérations</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Suppressions effectuées pendant la restauration et non l\'homologation</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite stricte de journalisation des groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Impose une limite stricte à la longueur du journal des groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Drapeaux OSD mis à jour</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>sorti</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>rentré</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>arrêté</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marquer</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdu</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marqué comme perdu</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Purger</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>purgé</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>détruire</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>détruit</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>supprimer</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Octets de lecture</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Octets d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Opérations d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Nbre max. de renvois</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Nombre maximum de récupérations actives</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Nombre maximum de démarrages uniques de récupérations</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Mise en veille de la récupération</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Travail</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravité</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Démarré</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Utilisé</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispo.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Nettoyé</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>En cours</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Avertissement</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Inconnu</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>opérationnel</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>aucun système de fichiers</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>actif</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>veille</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon actif</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Le service NFS Ganesha n\'est pas configuré.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Utilisateur CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Système de fichiers CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(hérité de la configuration globale)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>hérité de la configuration globale</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Sélectionner le type de squashing d\'ID utilisateur effectué --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Aucun daemon n\'est disponible.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Mode cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Âge évict min.</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Âge vidage min.</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Nombre max d\'octets cibles</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Nombre max. d\'objets cibles</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Aucune application ajoutée</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Limite d\'applications atteinte</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Une réserve peut avoir quatre définitions d\'application maximum.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caractère autorisés \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La longueur maximale est de 128 caractères.</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrer ou ajouter des applications</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Ajouter une application</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Taille de la réplique</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Dernier changement</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Jeu de règles Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartiment</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartiments</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>utilisateur</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Périmètre</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lecture</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Créer</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Rôle système</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Mettre à jour l\'utilisateur</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuer</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Vous avez été automatiquement déconnecté, car vos rôles ont changé.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Chaque objet est divisé en parties de blocs de données, chacune étant stockée sur un OSD différent.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calculez des blocs de codage pour chaque objet et stockez-les sur différents OSD.\n Le nombre de blocs de codage correspond également au nombre d\'OSD qui peuvent être arrêtés sans perdre de données.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Le plugin jerasure est le plugin le plus générique et le plus flexible,\n  c\'est aussi la valeur par défaut des réserves codées à effacement Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La technique la plus flexible est reed_sol_van_van : il suffit de définir k\n et m. La technique cauchy_good peut être plus rapide, mais vous devez choisir la taille du paquet\n avec précaution. reed_sol_r6_op, liberation, blaum_roth et liber8tion sont des équivalents RAID6\n en ce sens qu\'ils ne peuvent être configurés qu\'avec m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>L\'encodage se fera sur des paquets de taille d\'octets.\n  Choisir la bonne taille de paquet est difficile.\n  La documentation de jerasure contient de nombreuses informations à ce sujet.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Avec le plugin jerasure, lorsqu\'un objet codé à effacement est stocké sur\n plusieurs OSD, la récupération à la suite de la perte d\'un OSD nécessite la lecture de tous les autres.\n Par exemple, si jerasure est configuré avec k=8 et m=4, la perte d\'un OSD nécessite de lire\n les onze autres pour pouvoir effectuer une réparation.\n\n Le plugin de code d\'effacement lrc crée des blocs de parité locale pour permettre la récupération avec\n moins d\'OSD. Par exemple, si lrc est configuré avec k=8, m=4 et l=4,\n un bloc de parité supplémentaire est créé pour chaque groupe de quatre OSD. Lorsqu\'un seul OSD est perdu, il peut être\n récupéré avec seulement quatre OSD au lieu de onze.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Regroupez les blocs de données et de codage en ensembles de localité de taille. Par exemple,\n pour k=4 et m=2, lorsque locality=3, deux groupes de trois sont créés. Chaque ensemble peut\n être récupéré sans lire les blocs d\'un autre jeu.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Type de compartiment Crush dans lequel chaque ensemble de blocs défini\n par I sera stocké. Par exemple, s\'il est réglé sur rack, chaque groupe de blocs I sera\n placé dans un rack différent. Il est utilisé pour créer une étape de la règle CRUSH telle que l\'étape de choix\n d\'un rack. S\'il n\'est pas défini, aucun regroupement de ce type n\'est effectué.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Le plug-in isa encapsule la bibliothèque ISA. Il ne fonctionne qu\'avec des processeurs Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Le plugin ISA se présente sous deux formes Reed Solomon.\n Si reed_sol_van est défini, il équivaut à Vandermonde. Si cauchy est configuré, il équivaut à Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Le plug-in shec encapsule la bibliothèque SHEC multiple.\n Il permet à Ceph de récupérer les données plus efficacement qu\'avec les codes Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Nombre de blocs de parité, chacun incluant chaque bloc de données dans sa\n plage de calcul. Ce nombre est utilisé comme estimateur de durabilité. Par exemple, si c=2,\n 2 OSD peuvent être arrêtés sans perte de données.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nom du compartiment crush utilisé pour la première étape de la règle CRUSH.\n Par exemple, l\'étape de définition des valeurs par défaut.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Vérifiez qu\'il n\'existe pas deux blocs dans un compartiment avec le même domaine de\n défaillance. Par exemple, si le domaine de défaillance est un hôte, deux blocs ne seront pas stockés sur le même\n hôte. Cette option est utilisée pour créer une étape de la règle CRUSH telle que chooseleaf host.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restreindre le placement aux périphériques d\'une classe spécifique\n (par exemple, ssd ou hdd), en utilisant les noms des classes de périphériques crush dans la carte CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Définissez le nom du répertoire à partir duquel le plug-in de code d\'effacement est chargé.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Autoriser toutes les opérations</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Autorise uniquement les opérations qui ne modifient pas le serveur</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>N\'autorise pas les opérations de lecture ou d\'écriture, mais toutes les autres.</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>N\'autorise pas la lecture, l\'écriture ni aucune autre opération modifiant les attributs d\'un fichier ou le contenu d\'un répertoire.</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>N\'autorise aucun accès</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Sélectionner la priorité --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Faible</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Élevée</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informations</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Les 5 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Les 15 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Les 30 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>La dernière heure (par défaut)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Les 3 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Les 6 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Les 12 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Les 24 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Hier</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Aujourd\'hui</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Depuis le début de la journée</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Avant-hier</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Les 2 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Il y a huit jours</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>La semaine dernière</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Cette semaine</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Depuis le début de la semaine</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Les 7 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Le mois dernier</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Ce mois</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Depuis le début du mois</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Les 30 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Les 90 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Les 6 derniers mois</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>L\'année écoulée</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>L\'année dernière</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Cette année</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Depuis le début de l\'année</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Les 2 dernières années</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Les 5 dernières années</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Aucun élément sélectionné.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Désélectionnez l\'élément pour le sélectionner à nouveau.</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Limite de sélection atteinte</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Balises de filtre</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Ajouter un badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Aucun élément disponible.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Cloner</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copier</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Nettoyage en profondeur</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Détruire</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Aplatir</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marquer comme arrêté</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marquer comme rentré</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marquer comme perdu</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marquer comme sorti</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Protéger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renommer</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurer</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Déplacer vers la corbeille</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Annuler la protection</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Supprimé</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Cloné</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copié</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Applati</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Purgé</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restauré</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rétabli à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Oui</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Non</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualité de service</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite de bits/s</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Limite souhaitée d\'octets E/S par seconde.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite E/S par seconde</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Limite souhaitée d\'opérations E/S par seconde.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite de bits/s en lecture</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Limite souhaitée de lecture d\'octets par seconde.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Limite souhaitée d\'opérations de lecture par seconde.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite de bits/s en écriture</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Limite souhaitée d\'écriture d\'octets par seconde.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Limite souhaitée d\'opérations d\'écriture par seconde.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Rafale de bits/s</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Limite de rafale d\'octets en E/S souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Rafale E/S par seconde</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Limite de rafale d\'opérations E/S souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Rafale E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Limite de rafale d\'octets lus par seconde.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Rafale E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Limite de rafale d\'opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Rafale E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Limite de rafale de lectures d\'octets souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Rafale d\'E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Limite de rafale d\'opérations d\'écriture souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>En cours d\'exécution</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>exécuter</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Exécuté</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tâche inconnue</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>En cours de création</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>créer</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>En cours de mise à jour</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>mettre à jour</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>En cours de suppression</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonage en cours</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>cloner</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>En cours de copie</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copie</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Aplatissement</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>aplatir</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Retour à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rétablir l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>En cours de déplacement</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>déplacer</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Déplacé</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Impossible de trouver l\'image.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>En cours de restauration.</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurer</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>En cours de purge</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>purger</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>toutes les réserves</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossible de désactiver la mise en miroir, car l\'élément contient un homologue.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},V6Ve:function(t,e,n){var a=n("kekF")(Object.keys,Object);t.exports=a},VOtZ:function(t,e,n){var a=n("juv8"),r=n("MvSz");t.exports=function(t,e){return a(t,r(t),e)}},VRyK:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("HDdC"),r=n("z+Ro"),i=n("bHdf"),s=n("yCtX");function o(...t){let e=Number.POSITIVE_INFINITY,n=null,o=t[t.length-1];return Object(r.a)(o)?(n=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(e=t.pop())):"number"==typeof o&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof a.a?t[0]:Object(i.a)(e)(Object(s.a)(t,n))}},VTlA:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("mSOc"),n("ufoC");class a{constructor(t,e){this.taskMessageService=t,this.summaryService=e}init(t,e,n,a,r,i,s){this.getUpdate=t,this.preProcessing=e,this.setList=n,this.onFetchError=a,this.taskFilter=r,this.itemFilter=i,this.builders=s||{},this.summaryDataSubscription=this.summaryService.subscribe(t=>{t&&this.getUpdate().subscribe(e=>{this.updateData(e,t.executing_tasks.filter(this.taskFilter))},this.onFetchError)},this.onFetchError)}updateData(t,e){const n=this.preProcessing?this.preProcessing(t):t;this.addMissing(n,e),n.forEach(t=>{const n=e.filter(e=>this.itemFilter(t,e));t.cdExecuting=this.getTaskAction(n)}),this.setList(n)}addMissing(t,e){const n=this.builders.default;e.forEach(e=>{const a=t.find(t=>this.itemFilter(t,e)),r=this.builders[e.name];a||!r&&!n||t.push(r?r(e.metadata):n(e.metadata))})}getTaskAction(t){if(0!==t.length)return t.map(t=>{const e=t.progress?` ${t.progress}%`:"";return this.taskMessageService.getRunningText(t)+"..."+e}).join(", ")}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}}},VXsX:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("LvDl"),r=n("8Y7J");class i{constructor(t,e,n){this.name=t,this.metadata=e,this.onTaskFinished=n}}let s=(()=>{class t{constructor(){this.subscriptions=[]}init(t){return t.subscribe(t=>{if(!t)return;const e=t.executing_tasks,n=t.finished_tasks,a=[];for(const r of this.subscriptions){const t=this._getTask(r,n),i=this._getTask(r,e);null!==t&&null===i&&r.onTaskFinished(t),null!==i&&a.push(r),this.subscriptions=a}})}subscribe(t,e,n){this.subscriptions.push(new i(t,e,n))}_getTask(t,e){for(const n of e)if(n.name===t.name&&a.isEqual(n.metadata,t.metadata))return n;return null}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},VaNO:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Vclq:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n("wd/R"))},Vhfg:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("lJxs"),r=n("ej+x"),i=n("8Y7J"),s=n("iInd");let o=(()=>{class t{constructor(t,e){this.router=t,this.featureToggles=e}canActivate(t){return this.featureToggles.get().pipe(Object(a.a)(e=>!1!==e[t.routeConfig.path]||(this.router.navigate(["404"]),!1)))}canActivateChild(t){return this.canActivate(t.parent)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](s.m),i["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})()},ViD7:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="cs">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Zobraz./skrýt navigaci</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Přehled</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klastr</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Stroje</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitory</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Služby</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Nastavení</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH mapa</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Moduly správy</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Záznamy událostí</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Fondy</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blok</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Obrazy</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Zrcadlení</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Souborové systémy</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Objektová brána</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Procesy služeb</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Uživatelé</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Nádoby</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Získávají se data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> pro\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Čekejte…\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Zobrazují se data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>z mezipaměti\n  pro \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Nedaří se načíst dat \n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> pro\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Zkontrolujte zdraví klastru.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Vyčistit oznámení</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Odebrat oznámení</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Trvání:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>Nejsou zde žádná oznámení.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Úlohy a oznámení</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Vyberte jazyk</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Načítání údajů panelu…</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Nahlédněte do\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, kde naleznete jak\n  nastavit a zapnout funkci monitorování.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana přehled neexistuje. Podívejte se do\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> jak\n  přidat přehledy do Grafany.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Volič čas Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Resetovat nastavení</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Načíst znovu</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Odebrat uživatelsky určenou hodnotu nastavení. Namísto toho bude převzato a použito výchozí nastavení.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Nemůže být vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Nemůže být nižší než 1.</target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Zpět</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Data se nepodařilo načíst</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>vybráno</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>nalezeno</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>celkem</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Název</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Popis</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Podrobnější popis</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Výchozí</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Výchozí pro proces služby</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Hodnoty</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Nemůže být vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Nemůže být nižší než \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Uložit</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>prohlížeč CRUSH mapy</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Načítání…</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Název stroje</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Tuto kolonku je třeba vyplnit.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>Zvolený název stroje už je používán.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Opravdu chcete \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Opravdu chcete označené položky \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> ?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Opravdu chcete \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> označené \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ano, opravdu to chci.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Storno</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Zavřít</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Seznam strojů</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Celková výkonnost</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Zařízení</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nenalezeny žádné položky</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Záznamy událostí v klastra</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Auditní záznamy událostí</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priorita:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Klíčové slovo:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Datum:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Volba data</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Časový rozsah:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Načítání nastavení…</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Toto nastavení se nepodařilo načíst.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Upravit modul správy</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Zadaná hodnota není platné UUID, např.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Je třeba, aby zadaná hodnota byla platnou IP adresou.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Je třeba, aby byla nižší nebo rovná \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Je třeba, aby byla vyšší než nebo rovná \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Je třeba, aby zadaná hodnota byla číslo.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Je třeba, aby zadaná hodnota byla číslo nebo desítkové.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aktualizovat</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Stav</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Identif. kastru</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>mapa monitorů změněna</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epocha</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kvórum spojení</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kvórum monitor</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>vyžadováno spojení</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>vyžadováno monitorů</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>V kvóru</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Není v kvóru</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Přidat</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funkce</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Příznaky OSD pro celý klastr</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Odeslat</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Pokročilé…</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Pokročilé volby nastavení</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorita obnovení OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorita</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Přizpůsobit hodnoty priority</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Tuto kolonku je třeba vyplnit!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká, je třeba, aby nebyla vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Je třeba, aby byla nižší než \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Je třeba, aby hodnota byla mezi 0 a 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Znovu vyvážit</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSD \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>kontrola\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, vybrat, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, vybrat, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Seznam OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Ticha</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Vyberte atribut vůči kterému hledat shodu --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Hodnota</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Použít regulární výraz</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Upravit</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Smazat</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Úprava ticha skončí platnost původního ticha a znovu ho vytvoří jako nové ticho</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Tvůrce</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Komentář</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Čas začátku</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>Pokud čas začátku leží v minulosti, bude namísto něj použit okamžik vytvoření</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Trvání</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>Čas konce</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Zdraví</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiky</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Ohledně nastavení a zapnutí funkce správy NFS Ganesha nahlédněte do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klienti</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Přistupovat může libovolný klient</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresy</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Vyžadovaná kolonka</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Je třeba, aby obsahovalo jednu nebo více čárkou oddělovaných hodnot</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Například:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Typ přístupu</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Přidat klienty</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Žádný klastr k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Vyberte klastr --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Přidat proces služby</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Podpůrná vrstva úložiště</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Žádné fondy k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Vyberte podpůrnou vrstvu úložiště --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Uživatel objektové brány</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Žádní uživatelé k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Vyberte uživatele brány objektů --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>Identif. uživatele CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Žádní klienti k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Vyberte cephx klienta --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Název CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- Žádný souborový systém CephFS k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Vyberte CephFS souborový systém --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Štítek zabezpečení</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Zapnout štítek zabezpečení</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Popis umístění CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Je třeba, aby popis umístění začínal na „/“, za kterým následuje slovo</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Bude vytvořena nová složka</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Popis umístění</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Popis umístění může být pouze jediné „/“ nebo slovo</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Bude vytvořena nová nádoba</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS protokol</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS štítek</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternativní přístup pro \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> připojení (nemůže začínat na /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klienti nemohou připojovat podsložky (tj. pokud Tag = neco, klient nemůže připojit neco/podslozka).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Použitím různých voleb Štítku, může to stejné umístění být exportováno vícekrát.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>Pozice kterou tento \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export zabírá\n                v \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (je třeba, aby se neopakovalo).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>By using different Pseudo options, the same Path may be exported multiple times.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Je třeba, aby Pseudo začínalo na „/“ a a nemůže obsahovat nic z následujícího: &gt;, &lt;, |, &amp;, ( nebo ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Žádný typ přístupu k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Vyberte typ přístupu --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Žádné squash k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Vyberte jaký druh squashování identifikátor uživatele je prováděn --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Transportní protokol</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Původní heslo</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>Je třeba, aby původní a nové heslo nebyly stejné</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>Nové heslo</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Zopakování zadání nového hesla</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Kontrolní zadání nového hesla se neshoduje.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Vítejte v Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Je třeba vyplnit uživatelské jméno</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Je třeba vyplnit heslo</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Přihlásit</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Je nám líto, uživatel v Ceph neexistuje.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Vrátit se na \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Přihlašovací stránku\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. Budete odhlášeni od poskytovatele identity když se pokusíte znovu přihlásit.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Odepřeno</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Omlouváme se, ale nemáte oprávnění zobrazit to, po čem se  poohlížíte.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>Data obdržena v JSON formátu verze 2.x, což je v tuto chvíli nekompatibilní s přehledem.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>výsledek SMART testu samoposouzení celkového stavu</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Informace o zařízení</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Nastavení RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Odebrat hodnotu místnímu nastavení. Namísto ní bude použita hodnota nadřazeného nastavení.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Minimální hodnota je 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Seznam fondů</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Název může být tvořen pouze písmeny a číslicemi, dále ještě spojovníky a podtržítky.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Zvolený název pro profil mazacího kódu je už používán.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Zásuvný modul</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Shluky dat (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Je třeba, aby bylo 2 a více.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Shluky kódování (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Je třeba, aby bylo 1 a více.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Odhadování odolnosti (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Umístění (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Doména selhání crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalita crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Žádné</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technika</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Velikostpaketu</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Kořen crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Třída crush zařízení</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>libovolné</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Složka</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Název…</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Zvolený název pro Ceph fond je už používán.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>Není možné vytvořit RBD fond s názvem „/“ v názvu.\n              Změňte název nebo \'rbd\' odeberte ze seznamu aplikací.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Typ fondul</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Vybrat typ fondu --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Je třeba alespoň jedné skupiny umístění!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Váš klastr nemůže obsloužit tolik skupin umístění. Přepočítejte potřebné množství skupin umístění.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Nápověda k výpočtu</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Replikovaná velikost</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Nejméně: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Nejvíce: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>Zadaná velikost je mimo rozsah. Platná hodnota je\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> až \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> .\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Příznaky</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC přebití</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplikace</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil mazacího kódu</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Žádný profil mazacího kódu --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Vyberte profil mazacího kódu --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Sada pravidel crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Vybrat crush pravidlo --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crush pravidlo</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush kroky</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Komprese</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Režim</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmus</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Žádný algoritmus komprese mazání --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimální velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>např. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Hodnota by měla být vyšší než nula</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Hodnota by měla být nižší než maximální velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Nejvyšší velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>např. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Hodnota by měla být vyšší než nejnižší velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Poměr</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Kompresní poměr</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Hodnota by měla být z rozmezí 0.0 až 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Kvóty</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Nejvýše bajtů</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Pro vypnutí této kvóty nevyplňujte nebo zadejte 0 (nulu).</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>Platná kvóta by měla být vyšší než 0 (nula).</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>např. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>Hodnota by měla být vyšší nebo rovna 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Podrobnosti</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Podrobnosti o výkonnosti</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Podrobnosti o stupních mezipaměti</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Přesunout obraz do koše</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Platnost ochrany skončí v</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NECHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Chybný formát data. Použijte „RRRR-MM-DD HH:mm:ss“.</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Platnost ochrany už skončila. Zvolte budoucí datum nebo nevyplňujte.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Přesunout obraz</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Brány</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Je třeba, aby bylo vyšší nebo rovno \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Je třeba, aby bylo nižší nebo rovno \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Přehled</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Cíle</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Uživatele</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména byla 8 až 64 znaků dlouhá a\n              mohu obsahovat pouze písmena a znaky „.“, „@“, „-“, „_“ a „:“.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Heslo</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla byla 12 až 16 znaků dlouhá\n              a mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Uživatel pro vzájemné ověření</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Heslo pro vzájemné ověření</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby heslo byla 12 až 16 znaků dlouhá a\n              mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Podívejte se do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  jak nastavit a zapnout funkci správy iSCSI cílů.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informace k dispozici:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI cíl není k dispozici</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>K dispozici pouze pro RBD obrazy se zapnutým \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Fond</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Datový fond</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Vytvořeno</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Velikost</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objekty</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Velikost objektu</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Poskytováno</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>neaplikovatelné</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Celkem poskytováno</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Proužkovací jednotka</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Počet proužkování</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Nadřazené</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Předpona názvu bloku</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Pořadí</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Zachycené stavy</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Obraz</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Toto nastavení přebije globální hodnotu</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globální</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Toto je globální hodnota. Pro tento obraz nebyla u této volby nastavena žádná hodnota.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> od\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>„/“ a „@“ nejsou dovoleny.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Žádné rbd fondy k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Vybrat fond --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Použít vyhrazený datový fond</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Datový fond</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Vyhrazený fond který uchovává objektová data RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Je třeba zvětšit.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Pokročilé</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Proužkování</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Jednotka proužku</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Vybrat jednotku proužku --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Tuto kolonku je třeba vyplnit, protože je definován počet proužků!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Jednotka proužku je vyšší než velikost objektu.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Počet proužků</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Tuto kolonku je třeba vyplnit, protože je definována jednotka proužku!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Je třeba, aby počet proužků byl větší než nula.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Chystáte se vrátit zpět</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vysypat koš</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Vše</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Fond:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Název fondu…</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Obnovit obraz</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Pro obnovení</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>zadejte nový název pro obraz a klikněte na</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nový název</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Platnost skončila v</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Chráněno do</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>Tento obraz je chráněn do\n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologie iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Měnit tyto parametry z jejich výchozích hodnot obvykle není potřeba.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Nastavení</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Potvrdit</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Pokročilá nastavení</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN cíle</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN nemá správný formát.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>IQN má následující formu zápisu\n                \'iqn.$rok-$mesic.$adresaObracene:$definovanyNazev\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Například: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Další informace</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Tento cíl má změněná pokročilá nastavení.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portály</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Přidat portál</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>Je třeba alespoň \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> bran.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Tento obraz má změněná nastavení.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Přidat obraz</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL ověřování</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména měla délku 8 až 64 znaků a\n                obsahovala pouze písmena a případně ještě znaky „.“, „@“, „-“, „_“ nebo „:“.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 až 16 znaků\n                a obsahovala písmena a znaky „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciátory</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciátor</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN klienta</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Je třeba, aby se IQN iniciátoru neopakovalo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména měla délku 8 až 64 znaků a\n                        mohou obsahovat pouze písmena a znaky „.“, „@“, „-“, „_“ nebo „:“.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 až 16 znaků\n                        a mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 znaků 16 a\n                        mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Iniciátor spadá do skupiny. Obrazy budou nastaveny ve skupině.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nepřidány žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Přidat iniciátor</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Skupiny</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Skupina</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Přidat skupinu</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Koš</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>problémy</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronizuje se</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Připraveno</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Upravit režim zrcadlení fondu</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Pro úpravu režimu zrcadlení pro fond \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, vyberte ze seznamu nový režim a klikněte na \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Aktualizovat\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Před vypnutím zrcadlení je třeba odebrat klastry-protějšky.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  protějšek zrcadlení fondu\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Název klastru</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Název klastru není platný</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX identif.</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX identif. …</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX identif. není platný.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adresy monitorů</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Čárkou oddělované adresy…</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Adresa monitoru není platná.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX klíč</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Klíč v base64 kódování…</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Je třeba, aby CephX klíč byl v kódování base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Výkonnostní čítače nejsou k dispozici</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Podívejte se do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  jak nastavit a zapnout funkci správy brány objektů.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Seznam procesů služeb</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Výkonnostní čítače</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Načítání dat nádoby…</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Identif.</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Hodnota není platná.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Zvolený název už je používán.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Vlastník</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Vybrat uživatele --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Cíl umístění</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Vybrat cíl umístění --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Verzování</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Zapnuto</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>Identif.</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Typ rejstříku</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Pravidlo umístění</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Označovač</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Nejvyšší označovač</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Verze</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Hlavní verze</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Okamžik úpravy</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Skupinazóny</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Kvóta nádoby</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Nejvyšší velikost</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Neomezeno</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Uživatelské jméno</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Vybrat uživatelské jméno --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Automaticky vytvořit klíč</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Přístupový klíč</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Tajný klíč</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Celé jméno</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>E-mailová adresa</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Systém</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Nejvýše nádob</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Dílčí uživatelé</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Schopnosti</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Kvóta uživatele</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Zobrazit</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Klíče</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Vybrat typ --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Oprávnění</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Vybrat oprávnění --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Dílčí uživatel</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Zvolený identifikátor dílčího uživatele už je používán.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>číst, zapisovat</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>plné</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift klíč</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Automaticky vytvořit tajemství</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Načítání údajů uživatele…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Údaje uživatele se nepodařilo načíst.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Zvolený identif. uživatele už je používán.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Toto není platná e-mailová adresa.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Zvolená e-mailová adresa už je používána.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Nejvýše nádob</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Vypnuto</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Uživatelsky určené</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 klíč</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Nejsou zde žádní dílčí uživatelé.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Nejsou zde žádné klíče.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Nejsou zde žádné schopnosti.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Neomezená velikost</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Nejvyšší velikost</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Neomezené objekty</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Je třeba, aby zadaná hodnota byla 0 a vyšší.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Popis…</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Oprávnění</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Role</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Potvrzení zadání hesla</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Zadání hesla se neshodují.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Neplatný e-mail.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Chystáte se odebrat oprávnění „uživatel číst/aktualizovat“ svému vlastnímu účtu.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Pokud budete pokračovat, nebudete nadále schopní přidávat nebo nebo odebírat role žádnému z uživatelů.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Opravdu chcete pokračovat?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Nápověda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentace</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>Aplikační program. rozhraní</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>O aplikaci</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Nastavení přehledu</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Správa uživatelů</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Přihlášený uživatel</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Přihlášeni jako\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Změnit heslo</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Odhlásit</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributy (OSD mapa)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadata nejsou k dispozici</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadata</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Stav zařízení</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Výkonnostní čítač</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram není k dispozici: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Zápisy</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Čtení</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Stávající hodnoty</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Zdroj</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Úroveň</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Je možné aktualizovat za provozu (upravitelné)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Štítky</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Vyčíslit hodnoty</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Viz také</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Stav klastru</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Procesy služby správy</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Objektové brány</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Metadata servery</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI brány</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>vst/výst. klienta</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Propustnost klienta</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Čtení/zápis klienta</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Propustnost zotavení</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Kontrola</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Výkonnost</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Holá kapacita</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Skupin umístění na OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Stav skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapacita</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>Další podrobnosti \n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> naleznete v \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>záznamech událostí\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Hodnocení</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>čítače výkonnosti MDS</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Složky</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Klienti (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Stávající</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Aktualizováno ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Nejsou k dispozici žádné portály.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Nejsou k dispozici žádné obrazy.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Nejsou k dispozici žádné obrazy. Ověřte, že jste cíli přidali obraz.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Nejsou k dispozici žádné iniciátory. Ověřte, že jste cíli přidali iniciátor.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>cíl</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Cíl</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target>Počet relací</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Cíl má aktivní relace</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI cíl</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stav</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target>Počet cílů</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bajtů čtení</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bajtů zápis</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operací/s čtení</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operací/s zápis</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O od</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problém</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Ukazatel postupu</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Upravit režim</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Přidat protějšek</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Upravit protějšek</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Smazat protějšek</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Vedoucí</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>Počet místních</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>Počet vzdálených</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>zrcadlit protějšek</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Klíč</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Hluboké zploštění</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Vrstvení</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Výhradní zámek</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa objektů (vyžaduje výhradní zámek)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Žurnálování (vyžaduje výhradní zámek)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Je třeba, aby nadřazený obraz podporoval vrstvy</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>CHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NECHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Vrácení zachyceného stavu RBD zpět</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Vrácení zpět</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Zachycený stav RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Smazáno v</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>identif.</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stav</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>verze</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Stroj</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>kořen</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Procesy služeb v pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Hodnocení</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Proces služby</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivita</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Struktury složek</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>I-uzlů</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Využití</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Původ</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aktualizováno</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Hodnotu je možné aktualizovat za chodu.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Procesy služeb / klienti nezískávají tuto hodnotu\n      z databáze nastavení monitoru. Není umožněno nastavit tuto volbu\n      prostřednictvím „ceph config set …\'. Tato volba by měla být nastavena\n      z příkazového řádku.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Volba se uplatní pouze při spouštění procesu služby.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Volba ovlivní pouze vytváření klastru.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Volba ovlivní pouze vytvoření procesu služby.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Aktualizována volba nastavení \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Služba</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Stávající hodnota</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Upravitelné</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>stroj</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Popis umístění zařízení</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>K dispozici</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Aktualizována volba pro modul „\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Zapnout</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Vypnout</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>Modul Zpráva je vždy zapnutý.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Opětovné připojování, čekejte…</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Veřejná adresa</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Otevřené relace</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Počet do</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD které byly dříve odznačeny nebudou označeny nazpět když spustí</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Počet ven</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD nebudou automaticky odznačeny po nastaveném intervalu</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Počet aktivních</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD není dovoleno spuštění</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Počet neaktivních</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Hlášení o selhání OSD jsou ignorovány, jako například že monitory OSD neoznačí jako nedostupné</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pozastavit</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pozastavit čtení a zápisy</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Žádná kontrola</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Kontrola je vypnutá</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Žádná hloubková kontrola</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Hloubková kontrola je vypnutá</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Žádné zasypávání</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Zasypávání skupin umístění je pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Žádné obnovení</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Obnovování skupin umístění je pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Bitové třídění</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Třídit podle bitů</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Vyčištěné složky zachycených stavů</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD mají převedené sady zachycených stavů</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Smazáno při zotavování</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Mazání provedená při obnovování namísto peeringu</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Nepřekročitelný limit záznamu událostí PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Zapne nepřekročitelný limit na délku záznamu událostí v pg</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Aktualizovány OSD příznaky</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>ven</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>dovnitř</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>nedostupné</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Značka</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD ztraceno</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>označeno jako ztracené</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Vyčistit</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>vyčištěno</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>zlikvidovat</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>zlikvidováno</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>smazat</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Priorita zotavování</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Přečteno bajtů</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Zapsáno bajtů</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operací/s čtení</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operací/s zápis</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Označit OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Označit \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max Backfills</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Recovery Max Active</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Recovery Max Single Start</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Uspání zotavení</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Aktualizována rychlost zotavení OSD „\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Úloha</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Závažnost</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Zahájeno</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL adresa</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>ticho</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Název atributu</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regulární výraz</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Přidejte hostitele s Prometheus do nastavení přehledu a znovu načtete stránku</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Vytvořil(a)</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Končí</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Ticho</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Popis stavu</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Použito</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>K dispozici</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Čisté</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Pracující</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Varování</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Neznámé</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Zdravé</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Chybně umístěno</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degradováno</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Odnalezeno</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>repliky</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>aktivní</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>žádné souborové systémy</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktivní</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>v pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>neaplikovatelné</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktivní proces služby</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kvórum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Služba NFS Ganesha není nastavena.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS uživatel</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Souborový systém CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(převzato z globálního nastavení)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>převzato z globálního nastavení</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Vyberte jaký druh squashování identifikátor uživatele je prováděn --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Nejsou k dispozici žádné procesy služeb.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC profil</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Režim mezipaměti</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min Evict Age</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min Flush Age</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Nejvýše bajtů cíle</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Nejvýše objektů cíle</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nebyla přidána žádná aplikace</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Dosažen limit aplikací</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Fond může mít nejvýše čtyři definice aplikací.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Použitelné znaky „_a-zA-Z0-9“</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Nejvyšší délka je 128 znaků</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrovat nebo přidat aplikace</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Přidat aplikaci</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>fond</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil mazacího kódu</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Velikost repliky</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Nejnovější změna</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Mazáním kódovaný profil</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Sada crush pravidel</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Smazání fondu je vypnuto nastavením mon_allow_pool_delete configuration.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>nádoba</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Vytvořena nádoba objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>nádoby</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>schopnost</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>uživatel</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>dílčí uživatel</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 klíč</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Aktualizován uživatel objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Vytvořen uživatel objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>uživatelé</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift klíč</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>Vyskytla se chyba s kódem \n          <x id="INTERPOLATION" equiv-text="{{code}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Nezpracované</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Práh</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>Když se nezdařilo</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Nejhorší</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Rozsah</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Čtení</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Vytvořit</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Vytvořena role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Aktualizována role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Systémová role</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Smazána role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>Nejsou zde žádné role.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Vytvořen uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Aktualizovat uživatele</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Pokračovat</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Byli jste automaticky odhlášeni protože vaše role byly změněny.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Aktualizován uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Smazán uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Nepodařilo se smazat uživatele „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>Nyní jste přihlášení jako „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“.\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>heslo</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Aktualizované heslo uživatele"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Každý objekt je rozdělen v částech shluků dat, každé uložené na jiném OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Počítat kódovací shluky pro každý objekt a ukládat je na různých OSD.\n      Počet kódovacích shluků je také počet OSD, které mohou vypadnou, aniž dojde ke ztrátě dat.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Zásuvný modul jerasure je nejobecnější a nejpřizpůsobivější,\n je také výchozí pro Ceph fondy kódované mazáním.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Přizpůsobivější technikou je reed_sol_van: postačí nastvit k\n          a m. Technika cauchy_good technique může být rychlejší, ale je třeba pečlivě nastavit velikost\n          paketu. Všechny z reed_sol_r6_op, liberation, blaum_roth, liber8tion jsou ekvivalenty RAID6\n          v tom smyslu, že je možné je nastavit pouze s m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Zásuvný modul isa obaluje knihovnu ISA. Funguje pouze na procesorech Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Zásuvný modul ISA přichází ve dvou Reed Solomon podobách.\n          Pokud je nastaveno reed_sol_van, je to Vandermonde, pokud je nastaveno Cauchy, je Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Počet paritních shluků, ze kterých každý obsahuje každý shluk dat ve svém\n          výpočetním rozsahu. Číslo je použito pro odhad odolnosti. Například, pokud c=2,\n          2 OSD mohou vypadnou aniž by byla ztracena data.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Název crush nádoby sloužící jako první krok CRUSH pravidla.\n Například krok vzít výchozí.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Zajistit, aby žádné dva shluky nebyly v nádobě nacházejícící se ve stejné\n      doméně selhání. Například, pokud doména selhání je hostitel, žádné dva shluky nebudou uloženy na stejném hostiteli\n      Je použito pro vytvoření kroku CRUSH pravidla jako krok chooseleaf hostitele.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Omezit umístění na zařízení určité třídy\n      (např., ssd nebo hdd), pomocí názvu crush třídy zařízení v  CRUSH mapě.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Nastavit složku ze které načítat zásuvný modul mazacího kódu.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Umožnit všechny operace</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Umožnit pouze operace které neupraví server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Neumožňuje operace čtení či zápisu, ale umožňuje ostatní</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Neumožňuje čtení, zápis nebo jinou operaci která upravuje atributy        souboru nebo obsah složky</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Neumožnit vůbec žádný přístup</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Vyberte prioritu --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Nízká</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Vysoká</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Chyba</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informace</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Úspěch</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Uplynulých 5 minut</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Uplynulých 15 minut</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Uplynulých 30 minut</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Uplynulá 1 hodina (výchozí)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Uplynulé 3 hodiny</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Uplynulých 6 hodin</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Uplynulých 12 hodin</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Uplynulých 24 hodin</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Včera</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Dnes</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Dnes doposud</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Včerejšek</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Uplynulé 2 dny</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Tento den minulý týden</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Předchozí týden</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Tento týden</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Tento týden doposud</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Uplynulých 7 dnů</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Předchozí měsíc</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Tento měsíc</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Tento měsíc doposud</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Uplynulých 30 dnů</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Uplynulých 90 dnů</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Uplynulých 6 měsíců</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Uplynulý 1 rok</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Předchozí rok</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Tento rok</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Tento rok doposud</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Uplynulé 2 roky</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Uplynulých 5 let</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nevybrány žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Aby položku bylo možné znovu vybrat, je třeba nejprve zrušit její výběr</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Dosažen limit výběru</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtrovat štítky</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Přidat odznak</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Nejsou k dispozici žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Odebrat</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klonovat</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopírovat</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Hloubková kontrola</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Zlikvidovat</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Zploštit</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Označit</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Označit</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Označit ztracené</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Odznačit</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Ochránit</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Přejmenovat</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Obnovit</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Přesunout do koše</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Zrušit ochranu</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Změnit</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Znovuvytvořit</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Ukončit platnost</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Smazáno</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Přidáno</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Odebráno</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Upraveno</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Zrušeno</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Naklonováno</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Zkopírováno</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Zlikvidováno</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Zploštěno</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Označeno jako ztracené</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Chráněno</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Vyčištěno</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Přejmenováno</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Obnoveno</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Vzato zpět</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Zobrazeno</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Přesunout do koše</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Ochrana zrušena</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Znovu vytvořeno</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Platnost skončila</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ano</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Ne</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>žádné aktivní výstrahy</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>Jedna aktivní výstraha</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> aktivních výstrah\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Odpovídá jednomu pravidlu</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Odpovídá \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> pravidlům\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> s \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Kvalita služby</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Požadovaný limit vst./výstup. bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit vst/výstup. operací / s</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Požadovaný limit vst./výstup. operací za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limit BPS čtení</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Požadovaný limit čtení bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limit IOPS čtení</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Požadovaný limit operací čtení za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit BPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Požadovaný limit zápisu bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit IOPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Požadovaný limit operací čtení za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS dávka</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Požadovaný limit dávky bajtů vstup/výstupu.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS dávka</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Požadovaný limit dávky vst./výstup. operací.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Dávka BPS čtení</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Požadovaný limit dávky bajtů čtení.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Dávka IOPS čtení</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Požadovaný limit dávky čtení bajtů.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Dávka BPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Požadovaný limit bajtů dávky zápisu.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Dávka IOPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Požadovaný limit dávky operace zápisu.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Nepodařilo se \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Vykonává se</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>vykonat</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Vykonáno</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>neznámý úkol</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Vytváří se</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>vytvořit</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aktualizuje se</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aktualizovat</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Maže se</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Přidávání</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>přidat</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Odebírání</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>odebrat</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD zachycený stav „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>režim zrcadlení pro fond „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>protějšek zrcadlení pro fond „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>všechny přehledy</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> obsahuje zachycené stavy.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Klonuje se</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klonovat</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Je třeba, aby zachycený stav \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> byl chráněný.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Kopíruje se</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>zkopírovat</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Zploštění</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>zploštit</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Název už je používán pro \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Není možné zrušit ochranu \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>, protože obsahuje podřízené obrazy.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> není možné smazat, protože je chráněné.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Bere se zpět</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>vzít zpět</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Přesouvá se</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>přesunout</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Přesunuto</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ do koše\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Obraz se nedaří najít.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Obnovuje se</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>obnovit</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ do „\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Název „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ už je používán pro jiný obraz.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Čistí se</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>vyčistit</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>všechny fondy</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>obrazy z \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Zrcadlení nelze vypnout protože obsahuje protějšek.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>stroj „\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>fond „\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>profil mazacího kódu „\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>cíl „\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},VpIT:function(t,e,n){var a=n("xDBR"),r=n("xs3f");(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.5",mode:a?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},Vu81:function(t,e,n){var a=n("0GbY"),r=n("JBy8"),i=n("dBg+"),s=n("glrk");t.exports=a("Reflect","ownKeys")||function(t){var e=r.f(s(t)),n=i.f;return n?e.concat(n(t)):e}},WF9J:function(t,e,n){"use strict";n("TeQF"),n("QWBl"),n("4mDm"),n("zKZe"),n("07d7"),n("4l63"),n("PKPk"),n("ENF9"),n("3bBZ");var a=n("hKI/"),r=n.n(a),i=n("9/5/"),s=n.n(i),o=n("uyHG"),u=n.n(o),d=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some((function(t,a){return t[0]===e&&(n=a,!0)})),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),a=this.__entries__[n];return a&&a[1]},e.prototype.set=function(e,n){var a=t(this.__entries__,e);~a?this.__entries__[a][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,a=t(n,e);~a&&n.splice(a,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,a=this.__entries__;n<a.length;n++){var r=a[n];t.call(e,r[1],r[0])}},e}()}(),l="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,c="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),f="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(c):function(t){return setTimeout((function(){return t(Date.now())}),1e3/60)},h=["top","right","bottom","left","width","height","size","weight"],g="undefined"!=typeof MutationObserver,p=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(t,e){var n=!1,a=!1,r=0;function i(){n&&(n=!1,t()),a&&o()}function s(){f(i)}function o(){var t=Date.now();if(n){if(t-r<2)return;a=!0}else n=!0,a=!1,setTimeout(s,20);r=t}return o}(this.refresh.bind(this))}return t.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},t.prototype.removeObserver=function(t){var e=this.observers_,n=e.indexOf(t);~n&&e.splice(n,1),!e.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},t.prototype.updateObservers_=function(){var t=this.observers_.filter((function(t){return t.gatherActive(),t.hasActive()}));return t.forEach((function(t){return t.broadcastActive()})),t.length>0},t.prototype.connect_=function(){l&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),g?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){l&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;h.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),b=function(t,e){for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];Object.defineProperty(t,r,{value:e[r],enumerable:!1,writable:!1,configurable:!0})}return t},m=function(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView||c},y=T(0,0,0,0);function v(t){return parseFloat(t)||0}function x(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce((function(e,n){return e+v(t["border-"+n+"-width"])}),0)}var _="undefined"!=typeof SVGGraphicsElement?function(t){return t instanceof m(t).SVGGraphicsElement}:function(t){return t instanceof m(t).SVGElement&&"function"==typeof t.getBBox};function T(t,e,n,a){return{x:t,y:e,width:n,height:a}}var O=function(){function t(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=T(0,0,0,0),this.target=t}return t.prototype.isActive=function(){var t,e=(t=this.target,l?_(t)?function(t){var e=t.getBBox();return T(0,0,e.width,e.height)}(t):function(t){var e=t.clientWidth,n=t.clientHeight;if(!e&&!n)return y;var a=m(t).getComputedStyle(t),r=function(t){for(var e={},n=0,a=["top","right","bottom","left"];n<a.length;n++){var r=a[n];e[r]=v(t["padding-"+r])}return e}(a),i=r.left+r.right,s=r.top+r.bottom,o=v(a.width),u=v(a.height);if("border-box"===a.boxSizing&&(Math.round(o+i)!==e&&(o-=x(a,"left","right")+i),Math.round(u+s)!==n&&(u-=x(a,"top","bottom")+s)),!function(t){return t===m(t).document.documentElement}(t)){var d=Math.round(o+i)-e,l=Math.round(u+s)-n;1!==Math.abs(d)&&(o-=d),1!==Math.abs(l)&&(u-=l)}return T(r.left,r.top,o,u)}(t):y);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},t}(),w=function(t,e){var n,a,r,i,s,o,u,d=(a=(n=e).x,r=n.y,i=n.width,s=n.height,o="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,u=Object.create(o.prototype),b(u,{x:a,y:r,width:i,height:s,top:r,right:a+i,bottom:s+r,left:a}),u);b(this,{target:t,contentRect:d})},S=function(){function t(t,e,n){if(this.activeObservations_=[],this.observations_=new d,"function"!=typeof t)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=e,this.callbackCtx_=n}return t.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof m(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new O(t)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof m(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)&&(e.delete(t),e.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach((function(e){e.isActive()&&t.activeObservations_.push(e)}))},t.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map((function(t){return new w(t.target,t.broadcastRect())}));this.callback_.call(t,e,t),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),I="undefined"!=typeof WeakMap?new WeakMap:new d,N=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=p.getInstance(),a=new S(e,n,this);I.set(this,a)};["observe","unobserve","disconnect"].forEach((function(t){N.prototype[t]=function(){var e;return(e=I.get(this))[t].apply(e,arguments)}}));var C=void 0!==c.ResizeObserver?c.ResizeObserver:N,R=n("AxL3"),A=n.n(R),k=(n("E9XD"),n("sMBO"),n("rB9j"),n("Rm1S"),n("UxlC"),null),E=null;function L(){if(null===k){if("undefined"==typeof document)return k=0;var t=document.body,e=document.createElement("div");e.classList.add("simplebar-hide-scrollbar"),t.appendChild(e);var n=e.getBoundingClientRect().right;t.removeChild(e),k=n}return k}function D(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView:window}function P(t){return t&&t.ownerDocument?t.ownerDocument:document}A.a&&window.addEventListener("resize",(function(){E!==window.devicePixelRatio&&(E=window.devicePixelRatio,k=null)}));var M=function(){function t(e,n){var a=this;this.onScroll=function(){var t=D(a.el);a.scrollXTicking||(t.requestAnimationFrame(a.scrollX),a.scrollXTicking=!0),a.scrollYTicking||(t.requestAnimationFrame(a.scrollY),a.scrollYTicking=!0)},this.scrollX=function(){a.axis.x.isOverflowing&&(a.showScrollbar("x"),a.positionScrollbar("x")),a.scrollXTicking=!1},this.scrollY=function(){a.axis.y.isOverflowing&&(a.showScrollbar("y"),a.positionScrollbar("y")),a.scrollYTicking=!1},this.onMouseEnter=function(){a.showScrollbar("x"),a.showScrollbar("y")},this.onMouseMove=function(t){a.mouseX=t.clientX,a.mouseY=t.clientY,(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseMoveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseMoveForAxis("y")},this.onMouseLeave=function(){a.onMouseMove.cancel(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseLeaveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseLeaveForAxis("y"),a.mouseX=-1,a.mouseY=-1},this.onWindowResize=function(){a.scrollbarWidth=a.getScrollbarWidth(),a.hideNativeScrollbar()},this.hideScrollbars=function(){a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.track.rect)||(a.axis.y.scrollbar.el.classList.remove(a.classNames.visible),a.axis.y.isVisible=!1),a.isWithinBounds(a.axis.x.track.rect)||(a.axis.x.scrollbar.el.classList.remove(a.classNames.visible),a.axis.x.isVisible=!1)},this.onPointerEvent=function(t){var e,n;a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&(e=a.isWithinBounds(a.axis.x.track.rect)),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&(n=a.isWithinBounds(a.axis.y.track.rect)),(e||n)&&(t.preventDefault(),t.stopPropagation(),"mousedown"===t.type&&(e&&(a.axis.x.scrollbar.rect=a.axis.x.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.x.scrollbar.rect)?a.onDragStart(t,"x"):a.onTrackClick(t,"x")),n&&(a.axis.y.scrollbar.rect=a.axis.y.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.scrollbar.rect)?a.onDragStart(t,"y"):a.onTrackClick(t,"y"))))},this.drag=function(e){var n=a.axis[a.draggedAxis].track,r=n.rect[a.axis[a.draggedAxis].sizeAttr],i=a.axis[a.draggedAxis].scrollbar,s=a.contentWrapperEl[a.axis[a.draggedAxis].scrollSizeAttr],o=parseInt(a.elStyles[a.axis[a.draggedAxis].sizeAttr],10);e.preventDefault(),e.stopPropagation();var u=(("y"===a.draggedAxis?e.pageY:e.pageX)-n.rect[a.axis[a.draggedAxis].offsetAttr]-a.axis[a.draggedAxis].dragOffset)/(r-i.size)*(s-o);"x"===a.draggedAxis&&(u=a.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?u-(r+i.size):u,u=a.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-u:u),a.contentWrapperEl[a.axis[a.draggedAxis].scrollOffsetAttr]=u},this.onEndDrag=function(t){var e=P(a.el),n=D(a.el);t.preventDefault(),t.stopPropagation(),a.el.classList.remove(a.classNames.dragging),e.removeEventListener("mousemove",a.drag,!0),e.removeEventListener("mouseup",a.onEndDrag,!0),a.removePreventClickId=n.setTimeout((function(){e.removeEventListener("click",a.preventClick,!0),e.removeEventListener("dblclick",a.preventClick,!0),a.removePreventClickId=null}))},this.preventClick=function(t){t.preventDefault(),t.stopPropagation()},this.el=e,this.minScrollbarWidth=20,this.options=Object.assign({},t.defaultOptions,{},n),this.classNames=Object.assign({},t.defaultOptions.classNames,{},this.options.classNames),this.axis={x:{scrollOffsetAttr:"scrollLeft",sizeAttr:"width",scrollSizeAttr:"scrollWidth",offsetSizeAttr:"offsetWidth",offsetAttr:"left",overflowAttr:"overflowX",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}},y:{scrollOffsetAttr:"scrollTop",sizeAttr:"height",scrollSizeAttr:"scrollHeight",offsetSizeAttr:"offsetHeight",offsetAttr:"top",overflowAttr:"overflowY",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}}},this.removePreventClickId=null,t.instances.has(this.el)||(this.recalculate=r()(this.recalculate.bind(this),64),this.onMouseMove=r()(this.onMouseMove.bind(this),64),this.hideScrollbars=s()(this.hideScrollbars.bind(this),this.options.timeout),this.onWindowResize=s()(this.onWindowResize.bind(this),64,{leading:!0}),t.getRtlHelpers=u()(t.getRtlHelpers),this.init())}t.getRtlHelpers=function(){var e=document.createElement("div");e.innerHTML='<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';var n=e.firstElementChild;document.body.appendChild(n);var a=n.firstElementChild;n.scrollLeft=0;var r=t.getOffset(n),i=t.getOffset(a);n.scrollLeft=999;var s=t.getOffset(a);return{isRtlScrollingInverted:r.left!==i.left&&i.left-s.left!=0,isRtlScrollbarInverted:r.left!==i.left}},t.getOffset=function(t){var e=t.getBoundingClientRect(),n=P(t),a=D(t);return{top:e.top+(a.pageYOffset||n.documentElement.scrollTop),left:e.left+(a.pageXOffset||n.documentElement.scrollLeft)}};var e=t.prototype;return e.init=function(){t.instances.set(this.el,this),A.a&&(this.initDOM(),this.scrollbarWidth=this.getScrollbarWidth(),this.recalculate(),this.initListeners())},e.initDOM=function(){var t=this;if(Array.prototype.filter.call(this.el.children,(function(e){return e.classList.contains(t.classNames.wrapper)})).length)this.wrapperEl=this.el.querySelector("."+this.classNames.wrapper),this.contentWrapperEl=this.options.scrollableNode||this.el.querySelector("."+this.classNames.contentWrapper),this.contentEl=this.options.contentNode||this.el.querySelector("."+this.classNames.contentEl),this.offsetEl=this.el.querySelector("."+this.classNames.offset),this.maskEl=this.el.querySelector("."+this.classNames.mask),this.placeholderEl=this.findChild(this.wrapperEl,"."+this.classNames.placeholder),this.heightAutoObserverWrapperEl=this.el.querySelector("."+this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl=this.el.querySelector("."+this.classNames.heightAutoObserverEl),this.axis.x.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.horizontal),this.axis.y.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.vertical);else{for(this.wrapperEl=document.createElement("div"),this.contentWrapperEl=document.createElement("div"),this.offsetEl=document.createElement("div"),this.maskEl=document.createElement("div"),this.contentEl=document.createElement("div"),this.placeholderEl=document.createElement("div"),this.heightAutoObserverWrapperEl=document.createElement("div"),this.heightAutoObserverEl=document.createElement("div"),this.wrapperEl.classList.add(this.classNames.wrapper),this.contentWrapperEl.classList.add(this.classNames.contentWrapper),this.offsetEl.classList.add(this.classNames.offset),this.maskEl.classList.add(this.classNames.mask),this.contentEl.classList.add(this.classNames.contentEl),this.placeholderEl.classList.add(this.classNames.placeholder),this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);this.el.firstChild;)this.contentEl.appendChild(this.el.firstChild);this.contentWrapperEl.appendChild(this.contentEl),this.offsetEl.appendChild(this.contentWrapperEl),this.maskEl.appendChild(this.offsetEl),this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),this.wrapperEl.appendChild(this.maskEl),this.wrapperEl.appendChild(this.placeholderEl),this.el.appendChild(this.wrapperEl)}if(!this.axis.x.track.el||!this.axis.y.track.el){var e=document.createElement("div"),n=document.createElement("div");e.classList.add(this.classNames.track),n.classList.add(this.classNames.scrollbar),e.appendChild(n),this.axis.x.track.el=e.cloneNode(!0),this.axis.x.track.el.classList.add(this.classNames.horizontal),this.axis.y.track.el=e.cloneNode(!0),this.axis.y.track.el.classList.add(this.classNames.vertical),this.el.appendChild(this.axis.x.track.el),this.el.appendChild(this.axis.y.track.el)}this.axis.x.scrollbar.el=this.axis.x.track.el.querySelector("."+this.classNames.scrollbar),this.axis.y.scrollbar.el=this.axis.y.track.el.querySelector("."+this.classNames.scrollbar),this.options.autoHide||(this.axis.x.scrollbar.el.classList.add(this.classNames.visible),this.axis.y.scrollbar.el.classList.add(this.classNames.visible)),this.el.setAttribute("data-simplebar","init")},e.initListeners=function(){var t=this,e=D(this.el);this.options.autoHide&&this.el.addEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.addEventListener("scroll",this.onScroll),e.addEventListener("resize",this.onWindowResize);var n=!1;this.resizeObserver=new(e.ResizeObserver||C)((function(){n&&t.recalculate()})),this.resizeObserver.observe(this.el),this.resizeObserver.observe(this.contentEl),e.requestAnimationFrame((function(){n=!0})),this.mutationObserver=new e.MutationObserver(this.recalculate),this.mutationObserver.observe(this.contentEl,{childList:!0,subtree:!0,characterData:!0})},e.recalculate=function(){var t=D(this.el);this.elStyles=t.getComputedStyle(this.el),this.isRtl="rtl"===this.elStyles.direction;var e=this.contentEl.offsetWidth,n=this.heightAutoObserverEl.offsetHeight<=1,a=this.heightAutoObserverEl.offsetWidth<=1||e>0,r=this.contentWrapperEl.offsetWidth,i=this.elStyles.overflowX,s=this.elStyles.overflowY;this.contentEl.style.padding=this.elStyles.paddingTop+" "+this.elStyles.paddingRight+" "+this.elStyles.paddingBottom+" "+this.elStyles.paddingLeft,this.wrapperEl.style.margin="-"+this.elStyles.paddingTop+" -"+this.elStyles.paddingRight+" -"+this.elStyles.paddingBottom+" -"+this.elStyles.paddingLeft;var o=this.contentEl.scrollHeight,u=this.contentEl.scrollWidth;this.contentWrapperEl.style.height=n?"auto":"100%",this.placeholderEl.style.width=a?(e||u)+"px":"auto",this.placeholderEl.style.height=o+"px";var d=this.contentWrapperEl.offsetHeight;this.axis.x.isOverflowing=0!==e&&u>e,this.axis.y.isOverflowing=o>d,this.axis.x.isOverflowing="hidden"!==i&&this.axis.x.isOverflowing,this.axis.y.isOverflowing="hidden"!==s&&this.axis.y.isOverflowing,this.axis.x.forceVisible="x"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.y.forceVisible="y"===this.options.forceVisible||!0===this.options.forceVisible,this.hideNativeScrollbar();var l=this.axis.x.isOverflowing?this.scrollbarWidth:0;this.axis.x.isOverflowing=this.axis.x.isOverflowing&&u>r-(this.axis.y.isOverflowing?this.scrollbarWidth:0),this.axis.y.isOverflowing=this.axis.y.isOverflowing&&o>d-l,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width=this.axis.x.scrollbar.size+"px",this.axis.y.scrollbar.el.style.height=this.axis.y.scrollbar.size+"px",this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y")},e.getScrollbarSize=function(t){if(void 0===t&&(t="y"),!this.axis[t].isOverflowing)return 0;var e,n=this.axis[t].track.el[this.axis[t].offsetSizeAttr];return e=Math.max(~~(n/this.contentEl[this.axis[t].scrollSizeAttr]*n),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(e=Math.min(e,this.options.scrollbarMaxSize)),e},e.positionScrollbar=function(e){if(void 0===e&&(e="y"),this.axis[e].isOverflowing){var n=this.contentWrapperEl[this.axis[e].scrollSizeAttr],a=this.axis[e].track.el[this.axis[e].offsetSizeAttr],r=parseInt(this.elStyles[this.axis[e].sizeAttr],10),i=this.axis[e].scrollbar,s=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],o=~~((s="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-s:s)/(n-r)*(a-i.size));o="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?o+(a-i.size):o,i.el.style.transform="x"===e?"translate3d("+o+"px, 0, 0)":"translate3d(0, "+o+"px, 0)"}},e.toggleTrackVisibility=function(t){void 0===t&&(t="y");var e=this.axis[t].track.el,n=this.axis[t].scrollbar.el;this.axis[t].isOverflowing||this.axis[t].forceVisible?(e.style.visibility="visible",this.contentWrapperEl.style[this.axis[t].overflowAttr]="scroll"):(e.style.visibility="hidden",this.contentWrapperEl.style[this.axis[t].overflowAttr]="hidden"),n.style.display=this.axis[t].isOverflowing?"block":"none"},e.hideNativeScrollbar=function(){this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-"+this.scrollbarWidth+"px":0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-"+this.scrollbarWidth+"px":0},e.onMouseMoveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.rect=this.axis[t].track.el.getBoundingClientRect(),this.axis[t].scrollbar.rect=this.axis[t].scrollbar.el.getBoundingClientRect(),this.isWithinBounds(this.axis[t].scrollbar.rect)?this.axis[t].scrollbar.el.classList.add(this.classNames.hover):this.axis[t].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[t].track.rect)?(this.showScrollbar(t),this.axis[t].track.el.classList.add(this.classNames.hover)):this.axis[t].track.el.classList.remove(this.classNames.hover)},e.onMouseLeaveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.el.classList.remove(this.classNames.hover),this.axis[t].scrollbar.el.classList.remove(this.classNames.hover)},e.showScrollbar=function(t){void 0===t&&(t="y"),this.axis[t].isVisible||(this.axis[t].scrollbar.el.classList.add(this.classNames.visible),this.axis[t].isVisible=!0),this.options.autoHide&&this.hideScrollbars()},e.onDragStart=function(t,e){void 0===e&&(e="y");var n=P(this.el),a=D(this.el);this.axis[e].dragOffset=("y"===e?t.pageY:t.pageX)-this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],this.draggedAxis=e,this.el.classList.add(this.classNames.dragging),n.addEventListener("mousemove",this.drag,!0),n.addEventListener("mouseup",this.onEndDrag,!0),null===this.removePreventClickId?(n.addEventListener("click",this.preventClick,!0),n.addEventListener("dblclick",this.preventClick,!0)):(a.clearTimeout(this.removePreventClickId),this.removePreventClickId=null)},e.onTrackClick=function(t,e){var n=this;if(void 0===e&&(e="y"),this.options.clickOnTrack){var a=D(this.el);this.axis[e].scrollbar.rect=this.axis[e].scrollbar.el.getBoundingClientRect();var r=this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],i=parseInt(this.elStyles[this.axis[e].sizeAttr],10),s=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],o=("y"===e?this.mouseY-r:this.mouseX-r)<0?-1:1,u=-1===o?s-i:s+i;!function t(){var r,i;-1===o?s>u&&(n.contentWrapperEl.scrollTo(((r={})[n.axis[e].offsetAttr]=s-=40,r)),a.requestAnimationFrame(t)):s<u&&(n.contentWrapperEl.scrollTo(((i={})[n.axis[e].offsetAttr]=s+=40,i)),a.requestAnimationFrame(t))}()}},e.getContentElement=function(){return this.contentEl},e.getScrollElement=function(){return this.contentWrapperEl},e.getScrollbarWidth=function(){try{return"none"===getComputedStyle(this.contentWrapperEl,"::-webkit-scrollbar").display||"scrollbarWidth"in document.documentElement.style||"-ms-overflow-style"in document.documentElement.style?0:L()}catch(t){return L()}},e.removeListeners=function(){var t=this,e=D(this.el);this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.removeEventListener("mousemove",this.onMouseMove),this.el.removeEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onWindowResize),this.mutationObserver.disconnect(),this.resizeObserver.disconnect(),this.recalculate.cancel(),this.onMouseMove.cancel(),this.hideScrollbars.cancel(),this.onWindowResize.cancel()},e.unMount=function(){this.removeListeners(),t.instances.delete(this.el)},e.isWithinBounds=function(t){return this.mouseX>=t.left&&this.mouseX<=t.left+t.width&&this.mouseY>=t.top&&this.mouseY<=t.top+t.height},e.findChild=function(t,e){var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;return Array.prototype.filter.call(t.children,(function(t){return n.call(t,e)}))[0]},t}();M.defaultOptions={autoHide:!0,forceVisible:!1,clickOnTrack:!0,classNames:{contentEl:"simplebar-content",contentWrapper:"simplebar-content-wrapper",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover",dragging:"simplebar-dragging"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3},M.instances=new WeakMap;var q=M,j=(n("FZtP"),null),F=null;function G(){if(null===j){if("undefined"==typeof document)return j=0;var t=document.body,e=document.createElement("div");e.classList.add("simplebar-hide-scrollbar"),t.appendChild(e);var n=e.getBoundingClientRect().right;t.removeChild(e),j=n}return j}A.a&&window.addEventListener("resize",(function(){F!==window.devicePixelRatio&&(F=window.devicePixelRatio,j=null)}));var V=function(t){return Array.prototype.reduce.call(t,(function(t,e){var n=e.name.match(/data-simplebar-(.+)/);if(n){var a=n[1].replace(/\W+(.)/g,(function(t,e){return e.toUpperCase()}));switch(e.value){case"true":t[a]=!0;break;case"false":t[a]=!1;break;case void 0:t[a]=!0;break;default:t[a]=e.value}}return t}),{})};function z(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView:window}function B(t){return t&&t.ownerDocument?t.ownerDocument:document}var Y=function(){function t(e,n){var a=this;this.onScroll=function(){var t=z(a.el);a.scrollXTicking||(t.requestAnimationFrame(a.scrollX),a.scrollXTicking=!0),a.scrollYTicking||(t.requestAnimationFrame(a.scrollY),a.scrollYTicking=!0)},this.scrollX=function(){a.axis.x.isOverflowing&&(a.showScrollbar("x"),a.positionScrollbar("x")),a.scrollXTicking=!1},this.scrollY=function(){a.axis.y.isOverflowing&&(a.showScrollbar("y"),a.positionScrollbar("y")),a.scrollYTicking=!1},this.onMouseEnter=function(){a.showScrollbar("x"),a.showScrollbar("y")},this.onMouseMove=function(t){a.mouseX=t.clientX,a.mouseY=t.clientY,(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseMoveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseMoveForAxis("y")},this.onMouseLeave=function(){a.onMouseMove.cancel(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseLeaveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseLeaveForAxis("y"),a.mouseX=-1,a.mouseY=-1},this.onWindowResize=function(){a.scrollbarWidth=a.getScrollbarWidth(),a.hideNativeScrollbar()},this.hideScrollbars=function(){a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.track.rect)||(a.axis.y.scrollbar.el.classList.remove(a.classNames.visible),a.axis.y.isVisible=!1),a.isWithinBounds(a.axis.x.track.rect)||(a.axis.x.scrollbar.el.classList.remove(a.classNames.visible),a.axis.x.isVisible=!1)},this.onPointerEvent=function(t){var e,n;a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&(e=a.isWithinBounds(a.axis.x.track.rect)),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&(n=a.isWithinBounds(a.axis.y.track.rect)),(e||n)&&(t.preventDefault(),t.stopPropagation(),"mousedown"===t.type&&(e&&(a.axis.x.scrollbar.rect=a.axis.x.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.x.scrollbar.rect)?a.onDragStart(t,"x"):a.onTrackClick(t,"x")),n&&(a.axis.y.scrollbar.rect=a.axis.y.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.scrollbar.rect)?a.onDragStart(t,"y"):a.onTrackClick(t,"y"))))},this.drag=function(e){var n=a.axis[a.draggedAxis].track,r=n.rect[a.axis[a.draggedAxis].sizeAttr],i=a.axis[a.draggedAxis].scrollbar,s=a.contentWrapperEl[a.axis[a.draggedAxis].scrollSizeAttr],o=parseInt(a.elStyles[a.axis[a.draggedAxis].sizeAttr],10);e.preventDefault(),e.stopPropagation();var u=(("y"===a.draggedAxis?e.pageY:e.pageX)-n.rect[a.axis[a.draggedAxis].offsetAttr]-a.axis[a.draggedAxis].dragOffset)/(r-i.size)*(s-o);"x"===a.draggedAxis&&(u=a.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?u-(r+i.size):u,u=a.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-u:u),a.contentWrapperEl[a.axis[a.draggedAxis].scrollOffsetAttr]=u},this.onEndDrag=function(t){var e=B(a.el),n=z(a.el);t.preventDefault(),t.stopPropagation(),a.el.classList.remove(a.classNames.dragging),e.removeEventListener("mousemove",a.drag,!0),e.removeEventListener("mouseup",a.onEndDrag,!0),a.removePreventClickId=n.setTimeout((function(){e.removeEventListener("click",a.preventClick,!0),e.removeEventListener("dblclick",a.preventClick,!0),a.removePreventClickId=null}))},this.preventClick=function(t){t.preventDefault(),t.stopPropagation()},this.el=e,this.minScrollbarWidth=20,this.options=Object.assign({},t.defaultOptions,{},n),this.classNames=Object.assign({},t.defaultOptions.classNames,{},this.options.classNames),this.axis={x:{scrollOffsetAttr:"scrollLeft",sizeAttr:"width",scrollSizeAttr:"scrollWidth",offsetSizeAttr:"offsetWidth",offsetAttr:"left",overflowAttr:"overflowX",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}},y:{scrollOffsetAttr:"scrollTop",sizeAttr:"height",scrollSizeAttr:"scrollHeight",offsetSizeAttr:"offsetHeight",offsetAttr:"top",overflowAttr:"overflowY",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}}},this.removePreventClickId=null,t.instances.has(this.el)||(this.recalculate=r()(this.recalculate.bind(this),64),this.onMouseMove=r()(this.onMouseMove.bind(this),64),this.hideScrollbars=s()(this.hideScrollbars.bind(this),this.options.timeout),this.onWindowResize=s()(this.onWindowResize.bind(this),64,{leading:!0}),t.getRtlHelpers=u()(t.getRtlHelpers),this.init())}t.getRtlHelpers=function(){var e=document.createElement("div");e.innerHTML='<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';var n=e.firstElementChild;document.body.appendChild(n);var a=n.firstElementChild;n.scrollLeft=0;var r=t.getOffset(n),i=t.getOffset(a);n.scrollLeft=999;var s=t.getOffset(a);return{isRtlScrollingInverted:r.left!==i.left&&i.left-s.left!=0,isRtlScrollbarInverted:r.left!==i.left}},t.getOffset=function(t){var e=t.getBoundingClientRect(),n=B(t),a=z(t);return{top:e.top+(a.pageYOffset||n.documentElement.scrollTop),left:e.left+(a.pageXOffset||n.documentElement.scrollLeft)}};var e=t.prototype;return e.init=function(){t.instances.set(this.el,this),A.a&&(this.initDOM(),this.scrollbarWidth=this.getScrollbarWidth(),this.recalculate(),this.initListeners())},e.initDOM=function(){var t=this;if(Array.prototype.filter.call(this.el.children,(function(e){return e.classList.contains(t.classNames.wrapper)})).length)this.wrapperEl=this.el.querySelector("."+this.classNames.wrapper),this.contentWrapperEl=this.options.scrollableNode||this.el.querySelector("."+this.classNames.contentWrapper),this.contentEl=this.options.contentNode||this.el.querySelector("."+this.classNames.contentEl),this.offsetEl=this.el.querySelector("."+this.classNames.offset),this.maskEl=this.el.querySelector("."+this.classNames.mask),this.placeholderEl=this.findChild(this.wrapperEl,"."+this.classNames.placeholder),this.heightAutoObserverWrapperEl=this.el.querySelector("."+this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl=this.el.querySelector("."+this.classNames.heightAutoObserverEl),this.axis.x.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.horizontal),this.axis.y.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.vertical);else{for(this.wrapperEl=document.createElement("div"),this.contentWrapperEl=document.createElement("div"),this.offsetEl=document.createElement("div"),this.maskEl=document.createElement("div"),this.contentEl=document.createElement("div"),this.placeholderEl=document.createElement("div"),this.heightAutoObserverWrapperEl=document.createElement("div"),this.heightAutoObserverEl=document.createElement("div"),this.wrapperEl.classList.add(this.classNames.wrapper),this.contentWrapperEl.classList.add(this.classNames.contentWrapper),this.offsetEl.classList.add(this.classNames.offset),this.maskEl.classList.add(this.classNames.mask),this.contentEl.classList.add(this.classNames.contentEl),this.placeholderEl.classList.add(this.classNames.placeholder),this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);this.el.firstChild;)this.contentEl.appendChild(this.el.firstChild);this.contentWrapperEl.appendChild(this.contentEl),this.offsetEl.appendChild(this.contentWrapperEl),this.maskEl.appendChild(this.offsetEl),this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),this.wrapperEl.appendChild(this.maskEl),this.wrapperEl.appendChild(this.placeholderEl),this.el.appendChild(this.wrapperEl)}if(!this.axis.x.track.el||!this.axis.y.track.el){var e=document.createElement("div"),n=document.createElement("div");e.classList.add(this.classNames.track),n.classList.add(this.classNames.scrollbar),e.appendChild(n),this.axis.x.track.el=e.cloneNode(!0),this.axis.x.track.el.classList.add(this.classNames.horizontal),this.axis.y.track.el=e.cloneNode(!0),this.axis.y.track.el.classList.add(this.classNames.vertical),this.el.appendChild(this.axis.x.track.el),this.el.appendChild(this.axis.y.track.el)}this.axis.x.scrollbar.el=this.axis.x.track.el.querySelector("."+this.classNames.scrollbar),this.axis.y.scrollbar.el=this.axis.y.track.el.querySelector("."+this.classNames.scrollbar),this.options.autoHide||(this.axis.x.scrollbar.el.classList.add(this.classNames.visible),this.axis.y.scrollbar.el.classList.add(this.classNames.visible)),this.el.setAttribute("data-simplebar","init")},e.initListeners=function(){var t=this,e=z(this.el);this.options.autoHide&&this.el.addEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.addEventListener("scroll",this.onScroll),e.addEventListener("resize",this.onWindowResize);var n=!1;this.resizeObserver=new(e.ResizeObserver||C)((function(){n&&t.recalculate()})),this.resizeObserver.observe(this.el),this.resizeObserver.observe(this.contentEl),e.requestAnimationFrame((function(){n=!0})),this.mutationObserver=new e.MutationObserver(this.recalculate),this.mutationObserver.observe(this.contentEl,{childList:!0,subtree:!0,characterData:!0})},e.recalculate=function(){var t=z(this.el);this.elStyles=t.getComputedStyle(this.el),this.isRtl="rtl"===this.elStyles.direction;var e=this.contentEl.offsetWidth,n=this.heightAutoObserverEl.offsetHeight<=1,a=this.heightAutoObserverEl.offsetWidth<=1||e>0,r=this.contentWrapperEl.offsetWidth,i=this.elStyles.overflowX,s=this.elStyles.overflowY;this.contentEl.style.padding=this.elStyles.paddingTop+" "+this.elStyles.paddingRight+" "+this.elStyles.paddingBottom+" "+this.elStyles.paddingLeft,this.wrapperEl.style.margin="-"+this.elStyles.paddingTop+" -"+this.elStyles.paddingRight+" -"+this.elStyles.paddingBottom+" -"+this.elStyles.paddingLeft;var o=this.contentEl.scrollHeight,u=this.contentEl.scrollWidth;this.contentWrapperEl.style.height=n?"auto":"100%",this.placeholderEl.style.width=a?(e||u)+"px":"auto",this.placeholderEl.style.height=o+"px";var d=this.contentWrapperEl.offsetHeight;this.axis.x.isOverflowing=0!==e&&u>e,this.axis.y.isOverflowing=o>d,this.axis.x.isOverflowing="hidden"!==i&&this.axis.x.isOverflowing,this.axis.y.isOverflowing="hidden"!==s&&this.axis.y.isOverflowing,this.axis.x.forceVisible="x"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.y.forceVisible="y"===this.options.forceVisible||!0===this.options.forceVisible,this.hideNativeScrollbar();var l=this.axis.x.isOverflowing?this.scrollbarWidth:0;this.axis.x.isOverflowing=this.axis.x.isOverflowing&&u>r-(this.axis.y.isOverflowing?this.scrollbarWidth:0),this.axis.y.isOverflowing=this.axis.y.isOverflowing&&o>d-l,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width=this.axis.x.scrollbar.size+"px",this.axis.y.scrollbar.el.style.height=this.axis.y.scrollbar.size+"px",this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y")},e.getScrollbarSize=function(t){if(void 0===t&&(t="y"),!this.axis[t].isOverflowing)return 0;var e,n=this.axis[t].track.el[this.axis[t].offsetSizeAttr];return e=Math.max(~~(n/this.contentEl[this.axis[t].scrollSizeAttr]*n),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(e=Math.min(e,this.options.scrollbarMaxSize)),e},e.positionScrollbar=function(e){if(void 0===e&&(e="y"),this.axis[e].isOverflowing){var n=this.contentWrapperEl[this.axis[e].scrollSizeAttr],a=this.axis[e].track.el[this.axis[e].offsetSizeAttr],r=parseInt(this.elStyles[this.axis[e].sizeAttr],10),i=this.axis[e].scrollbar,s=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],o=~~((s="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-s:s)/(n-r)*(a-i.size));o="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?o+(a-i.size):o,i.el.style.transform="x"===e?"translate3d("+o+"px, 0, 0)":"translate3d(0, "+o+"px, 0)"}},e.toggleTrackVisibility=function(t){void 0===t&&(t="y");var e=this.axis[t].track.el,n=this.axis[t].scrollbar.el;this.axis[t].isOverflowing||this.axis[t].forceVisible?(e.style.visibility="visible",this.contentWrapperEl.style[this.axis[t].overflowAttr]="scroll"):(e.style.visibility="hidden",this.contentWrapperEl.style[this.axis[t].overflowAttr]="hidden"),n.style.display=this.axis[t].isOverflowing?"block":"none"},e.hideNativeScrollbar=function(){this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-"+this.scrollbarWidth+"px":0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-"+this.scrollbarWidth+"px":0},e.onMouseMoveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.rect=this.axis[t].track.el.getBoundingClientRect(),this.axis[t].scrollbar.rect=this.axis[t].scrollbar.el.getBoundingClientRect(),this.isWithinBounds(this.axis[t].scrollbar.rect)?this.axis[t].scrollbar.el.classList.add(this.classNames.hover):this.axis[t].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[t].track.rect)?(this.showScrollbar(t),this.axis[t].track.el.classList.add(this.classNames.hover)):this.axis[t].track.el.classList.remove(this.classNames.hover)},e.onMouseLeaveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.el.classList.remove(this.classNames.hover),this.axis[t].scrollbar.el.classList.remove(this.classNames.hover)},e.showScrollbar=function(t){void 0===t&&(t="y"),this.axis[t].isVisible||(this.axis[t].scrollbar.el.classList.add(this.classNames.visible),this.axis[t].isVisible=!0),this.options.autoHide&&this.hideScrollbars()},e.onDragStart=function(t,e){void 0===e&&(e="y");var n=B(this.el),a=z(this.el);this.axis[e].dragOffset=("y"===e?t.pageY:t.pageX)-this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],this.draggedAxis=e,this.el.classList.add(this.classNames.dragging),n.addEventListener("mousemove",this.drag,!0),n.addEventListener("mouseup",this.onEndDrag,!0),null===this.removePreventClickId?(n.addEventListener("click",this.preventClick,!0),n.addEventListener("dblclick",this.preventClick,!0)):(a.clearTimeout(this.removePreventClickId),this.removePreventClickId=null)},e.onTrackClick=function(t,e){var n=this;if(void 0===e&&(e="y"),this.options.clickOnTrack){var a=z(this.el);this.axis[e].scrollbar.rect=this.axis[e].scrollbar.el.getBoundingClientRect();var r=this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],i=parseInt(this.elStyles[this.axis[e].sizeAttr],10),s=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],o=("y"===e?this.mouseY-r:this.mouseX-r)<0?-1:1,u=-1===o?s-i:s+i;!function t(){var r,i;-1===o?s>u&&(n.contentWrapperEl.scrollTo(((r={})[n.axis[e].offsetAttr]=s-=40,r)),a.requestAnimationFrame(t)):s<u&&(n.contentWrapperEl.scrollTo(((i={})[n.axis[e].offsetAttr]=s+=40,i)),a.requestAnimationFrame(t))}()}},e.getContentElement=function(){return this.contentEl},e.getScrollElement=function(){return this.contentWrapperEl},e.getScrollbarWidth=function(){try{return"none"===getComputedStyle(this.contentWrapperEl,"::-webkit-scrollbar").display||"scrollbarWidth"in document.documentElement.style||"-ms-overflow-style"in document.documentElement.style?0:G()}catch(t){return G()}},e.removeListeners=function(){var t=this,e=z(this.el);this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.removeEventListener("mousemove",this.onMouseMove),this.el.removeEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onWindowResize),this.mutationObserver.disconnect(),this.resizeObserver.disconnect(),this.recalculate.cancel(),this.onMouseMove.cancel(),this.hideScrollbars.cancel(),this.onWindowResize.cancel()},e.unMount=function(){this.removeListeners(),t.instances.delete(this.el)},e.isWithinBounds=function(t){return this.mouseX>=t.left&&this.mouseX<=t.left+t.width&&this.mouseY>=t.top&&this.mouseY<=t.top+t.height},e.findChild=function(t,e){var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;return Array.prototype.filter.call(t.children,(function(t){return n.call(t,e)}))[0]},t}();Y.defaultOptions={autoHide:!0,forceVisible:!1,clickOnTrack:!0,classNames:{contentEl:"simplebar-content",contentWrapper:"simplebar-content-wrapper",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover",dragging:"simplebar-dragging"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3},Y.instances=new WeakMap,Y.initDOMLoadedElements=function(){document.removeEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.removeEventListener("load",this.initDOMLoadedElements),Array.prototype.forEach.call(document.querySelectorAll('[data-simplebar]:not([data-simplebar="init"])'),(function(t){Y.instances.has(t)||new Y(t,V(t.attributes))}))},Y.removeObserver=function(){this.globalObserver.disconnect()},Y.initHtmlApi=function(){this.initDOMLoadedElements=this.initDOMLoadedElements.bind(this),"undefined"!=typeof MutationObserver&&(this.globalObserver=new MutationObserver(Y.handleMutations),this.globalObserver.observe(document,{childList:!0,subtree:!0})),"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(this.initDOMLoadedElements):(document.addEventListener("DOMContentLoaded",this.initDOMLoadedElements),window.addEventListener("load",this.initDOMLoadedElements))},Y.handleMutations=function(t){t.forEach((function(t){Array.prototype.forEach.call(t.addedNodes,(function(t){1===t.nodeType&&(t.hasAttribute("data-simplebar")?!Y.instances.has(t)&&new Y(t,V(t.attributes)):Array.prototype.forEach.call(t.querySelectorAll('[data-simplebar]:not([data-simplebar="init"])'),(function(t){!Y.instances.has(t)&&new Y(t,V(t.attributes))})))})),Array.prototype.forEach.call(t.removedNodes,(function(t){1===t.nodeType&&(t.hasAttribute('[data-simplebar="init"]')?Y.instances.has(t)&&Y.instances.get(t).unMount():Array.prototype.forEach.call(t.querySelectorAll('[data-simplebar="init"]'),(function(t){Y.instances.has(t)&&Y.instances.get(t).unMount()})))}))}))},Y.getOptions=V,A.a&&Y.initHtmlApi(),n.d(e,"a",(function(){return H})),n.d(e,"b",(function(){return U}));class H{constructor(t){this.elRef=t}ngOnInit(){}ngAfterViewInit(){this.SimpleBar=new q(this.elRef.nativeElement,this.options||{})}ngOnDestroy(){this.SimpleBar.unMount(),this.SimpleBar=null}}class U{}},WFqU:function(t,e){var n="object"==typeof global&&global&&global.Object===Object&&global;t.exports=n},WJkJ:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},WKiH:function(t,e,n){var a=n("HYAF"),r="["+n("WJkJ")+"]",i=RegExp("^"+r+r+"*"),s=RegExp(r+r+"*$"),o=function(t){return function(e){var n=String(a(e));return 1&t&&(n=n.replace(i,"")),2&t&&(n=n.replace(s,"")),n}};t.exports={start:o(1),end:o(2),trim:o(3)}},WYrj:function(t,e,n){!function(t){"use strict";var e=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];t.defineLocale("dv",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".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:/މކ|މފ/,isPM:function(t){return"މފ"===t},meridiem:function(t,e,n){return t<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n("wd/R"))},WaXT:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("2vnA"),i=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.a.apply(void 0,t)}),r.a),s=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.c.apply(void 0,t)}),r.c),o=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.d.apply(void 0,t)}),r.d),u=n("MP8s");n.d(e,"a",(function(){return c}));var d=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},l=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},c=function(){function t(){this._dispose=[]}return Object.defineProperty(t.prototype,"nodes",{get:function(){return this._nodes},set:function(t){this.setNodes(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"marginTop",{get:function(){var t=this.viewportNodes&&this.viewportNodes.length&&this.viewportNodes[0];return(t&&t.parent?t.position-t.parent.position-t.parent.getSelfHeight():0)+"px"},enumerable:!0,configurable:!0}),t.prototype.setNodes=function(t){this._nodes=t},t.prototype.ngOnInit=function(){var t=this;this.virtualScroll=this.treeModel.virtualScroll,this._dispose=[Object(r.e)((function(){return t.virtualScroll.getViewportNodes(t.nodes).map((function(t){return t.index}))}),(function(e){t.viewportNodes=e.map((function(e){return t.nodes[e]}))}),{compareStructural:!0,fireImmediately:!0}),Object(r.e)((function(){return t.nodes}),(function(e){t.viewportNodes=t.virtualScroll.getViewportNodes(e)}))]},t.prototype.ngOnDestroy=function(){this._dispose.forEach((function(t){return t()}))},t.prototype.trackNode=function(t,e){return e.id},d([Object(a.Input)(),l("design:type",Object),l("design:paramtypes",[Object])],t.prototype,"nodes",null),d([Object(a.Input)(),l("design:type",u.a)],t.prototype,"treeModel",void 0),d([o,l("design:type",Object)],t.prototype,"_nodes",void 0),d([Object(a.Input)(),l("design:type",Object)],t.prototype,"templates",void 0),d([o,l("design:type",Array)],t.prototype,"viewportNodes",void 0),d([s,l("design:type",String),l("design:paramtypes",[])],t.prototype,"marginTop",null),d([i,l("design:type",Function),l("design:paramtypes",[Object]),l("design:returntype",void 0)],t.prototype,"setNodes",null),d([Object(a.Component)({selector:"tree-node-collection",encapsulation:a.ViewEncapsulation.None,template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div [style.margin-top]="marginTop">\n        <tree-node\n          *ngFor="let node of viewportNodes; let i = index; trackBy: trackNode"\n          [node]="node"\n          [index]="i"\n          [templates]="templates"\n        >\n        </tree-node>\n      </div>\n    </ng-container>\n  '})],t)}()},WiuZ:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("978R"),s=n("z/SZ"),o=n("2uy1"),u=n("s7LF"),d=n("+gVj"),l=n("KOzp");n("wnGv"),n("GiVz"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return w}));var c=a["ɵcrt"]({encapsulation:0,styles:[[".select-menu-item[_ngcontent-%COMP%]{display:block;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.09);font-size:12px}.select-menu-item[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.select-menu-item-icon[_ngcontent-%COMP%]{float:left;padding:.5em;width:3em}.select-menu-item-content[_ngcontent-%COMP%]{padding:.5em}"]],data:{}});function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback text-center"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.messages.customValidations[e.parent.context.$implicit])}))}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.form.showError("filter",a["ɵnov"](e.parent,2))&&n.filter.hasError(e.context.$implicit))}),null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"small",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),a["ɵted"](3,null,[" ","  "]))],null,(function(t,e){t(e,3,0,e.parent.context.$implicit.description)}))}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,11,"div",[["class","select-menu-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.triggerSelection(t.context.$implicit)&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](3,{"help-block disabled":0}),(t()(),a["ɵeld"](4,0,null,null,3,"div",[["class","select-menu-item-icon"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,["   "])),(t()(),a["ɵeld"](8,0,null,null,3,"div",[["class","select-menu-item-content"]],null,null,null,null,null)),(t()(),a["ɵted"](9,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](11,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=t(e,3,0,!(n.data.length!==n.selectionLimit&&e.context.$implicit.enabled||e.context.$implicit.selected));t(e,2,0,"select-menu-item",a),t(e,6,0,e.context.$implicit.selected),t(e,11,0,e.context.$implicit.description)}),(function(t,e){t(e,9,0,e.context.$implicit.name)}))}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[["class","select-menu-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addCustomOption()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","select-menu-item-icon"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](5,1),(t()(),a["ɵted"](-1,null,["   "])),(t()(),a["ɵeld"](7,0,null,null,1,"div",[["class","select-menu-item-content"]],null,null,null,null,null)),(t()(),a["ɵted"](8,null,[" "," '","' "]))],(function(t,e){var n=t(e,5,0,e.component.icons.tag);t(e,4,0,n)}),(function(t,e){var n=e.component;t(e,8,0,n.messages.add,n.filter.value)}))}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,2,"span",[["class","form-text text-muted text-center text-warning"]],null,null,null,null,null)),a["ɵdid"](1,212992,null,0,i.c,[a.ViewContainerRef,s.a,i.a,a.ElementRef,a.Renderer2,o.a],{tooltip:[0,"tooltip"]},null),(t()(),a["ɵted"](2,null,[" "," "])),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.messages.selectionLimit.tooltip)}),(function(t,e){t(e,2,0,e.component.messages.selectionLimit.text)}))}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","is-invalid"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.data.length===n.selectionLimit)}),null)}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,2).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,2).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,5).onSubmit()&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,u.G,[],null,null),a["ɵdid"](2,540672,[["formDir",4]],0,u.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,u.d,null,[u.l]),a["ɵdid"](4,16384,null,0,u.s,[[4,u.d]],null,null),a["ɵdid"](5,16384,null,0,d.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](6,0,null,null,9,"div",[],null,null,null,null,null)),(t()(),a["ɵeld"](7,0,null,null,6,"input",[["class","form-control text-center"],["formControlName","filter"],["type","text"]],[[8,"placeholder",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0,i=t.component;return"input"===e&&(r=!1!==a["ɵnov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,8)._compositionEnd(n.target.value)&&r),"keyup"===e&&(r=!1!==(13==n.keyCode?i.selectOption():i.updateFilter())&&r),r}),null,null)),a["ɵdid"](8,16384,null,0,u.e,[a.Renderer2,a.ElementRef,[2,u.b]],null,null),a["ɵprd"](1024,null,u.p,(function(t){return[t]}),[u.e]),a["ɵdid"](10,671744,null,0,u.j,[[3,u.d],[8,null],[8,null],[6,u.p],[2,u.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,u.q,null,[u.j]),a["ɵdid"](12,16384,null,0,u.r,[[4,u.q]],null,null),a["ɵdid"](13,16384,null,0,d.h,[[3,u.d],d.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](15,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,b)),a["ɵdid"](17,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,v)),a["ɵdid"](21,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.form),t(e,5,0,n.form),t(e,10,0,"filter"),t(e,13,0,"filter"),t(e,15,0,n.Object.keys(n.messages.customValidations)),t(e,17,0,n.filteredOptions),t(e,19,0,n.isCreatable()),t(e,21,0,n.data.length===n.selectionLimit)}),(function(t,e){var n=e.component;t(e,0,0,a["ɵnov"](e,4).ngClassUntouched,a["ɵnov"](e,4).ngClassTouched,a["ɵnov"](e,4).ngClassPristine,a["ɵnov"](e,4).ngClassDirty,a["ɵnov"](e,4).ngClassValid,a["ɵnov"](e,4).ngClassInvalid,a["ɵnov"](e,4).ngClassPending),t(e,7,0,n.messages.filter,a["ɵnov"](e,12).ngClassUntouched,a["ɵnov"](e,12).ngClassTouched,a["ɵnov"](e,12).ngClassPristine,a["ɵnov"](e,12).ngClassDirty,a["ɵnov"](e,12).ngClassValid,a["ɵnov"](e,12).ngClassInvalid,a["ɵnov"](e,12).ngClassPending,a["ɵnov"](e,13).validClass,a["ɵnov"](e,13).invalidClass)}))}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,4,"a",[["class","select-menu-edit float-left"],["container","body"],["outsideClick","true"],["placement","bottom"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵdid"](3,212992,null,0,l.c,[l.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,s.a,o.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,2,0,"select-menu-edit float-left",e.component.elemClass),t(e,3,0,a["ɵnov"](e.parent,0),"bottom","true","body")}),null)}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted float-left"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" ","\n"]))],null,(function(t,e){t(e,1,0,e.component.messages.empty)}))}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted  float-left"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" ","\n"]))],null,(function(t,e){t(e,1,0,e.component.messages.noOptions)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,[["popTemplate",2]],null,0,null,x)),(t()(),a["ɵand"](16777216,null,null,1,null,_)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,O)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.options.length>0),t(e,4,0,0===n.data.length&&n.options.length>0),t(e,6,0,0===n.options.length)}),null)}},WwFo:function(t,e,n){var a=n("juv8"),r=n("7GkX");t.exports=function(t,e){return t&&a(e,r(e),t)}},WxRl:function(t,e,n){!function(t){"use strict";var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(t,e,n,a){var r=t;switch(n){case"s":return a||e?"néhány másodperc":"néhány másodperce";case"ss":return r+(a||e)?" másodperc":" másodperce";case"m":return"egy"+(a||e?" perc":" perce");case"mm":return r+(a||e?" perc":" perce");case"h":return"egy"+(a||e?" óra":" órája");case"hh":return r+(a||e?" óra":" órája");case"d":return"egy"+(a||e?" nap":" napja");case"dd":return r+(a||e?" nap":" napja");case"M":return"egy"+(a||e?" hónap":" hónapja");case"MM":return r+(a||e?" hónap":" hónapja");case"y":return"egy"+(a||e?" év":" éve");case"yy":return r+(a||e?" év":" éve")}return""}function a(t){return(t?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_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(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"X+05":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a={toggleExpanded:"toggleExpanded",activate:"activate",deactivate:"deactivate",nodeActivate:"nodeActivate",nodeDeactivate:"nodeDeactivate",select:"select",deselect:"deselect",focus:"focus",blur:"blur",initialized:"initialized",updateData:"updateData",moveNode:"moveNode",copyNode:"copyNode",event:"event",loadNodeChildren:"loadNodeChildren",changeFilter:"changeFilter",stateChange:"stateChange"}},X709:function(t,e,n){!function(t){"use strict";t.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öndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".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år] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några 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ånad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e")},week:{dow:1,doy:4}})}(n("wd/R"))},XDbj:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("sVev"),r=n("7o/Q");function i(t=u){return e=>e.lift(new s(t))}class s{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new o(t,this.errorFactory))}}class o extends r.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 e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}}function u(){return new a.a}},XDpg:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"周";default:return t}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n("wd/R"))},XFyV:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");class r{constructor(){this.icons=a.a}}},XGnz:function(t,e,n){var a=n("CH3K"),r=n("BiGR");t.exports=function t(e,n,i,s,o){var u=-1,d=e.length;for(i||(i=r),o||(o=[]);++u<d;){var l=e[u];n>0&&i(l)?n>1?t(l,n-1,i,s,o):a(o,l):s||(o[o.length]=l)}return o}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},XKAG:function(t,e,n){var a=n("ut/Y"),r=n("MMmD"),i=n("7GkX");t.exports=function(t){return function(e,n,s){var o=Object(e);if(!r(e)){var u=a(n,3);e=i(e),n=function(t){return u(o[t],t,o)}}var d=t(e,n,s);return d>-1?o[u?e[d]:d]:void 0}}},XLvN:function(t,e,n){!function(t){"use strict";t.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".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:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(t,e){return 12===t&&(t=0),"రాత్రి"===e?t<4?t:t+12:"ఉదయం"===e?t:"మధ్యాహ్నం"===e?t>=10?t:t+12:"సాయంత్రం"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"రాత్రి":t<10?"ఉదయం":t<17?"మధ్యాహ్నం":t<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n("wd/R"))},XNiG:function(t,e,n){"use strict";n.d(e,"b",(function(){return d})),n.d(e,"a",(function(){return l}));var a=n("HDdC"),r=n("7o/Q"),i=n("quSY"),s=n("9ppp"),o=n("Ylt2"),u=n("2QA8");class d extends r.a{constructor(t){super(t),this.destination=t}}let l=(()=>{class t extends a.a{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[u.a](){return new d(this)}lift(t){const e=new c(this,this);return e.operator=t,e}next(t){if(this.closed)throw new s.a;if(!this.isStopped){const{observers:e}=this,n=e.length,a=e.slice();for(let r=0;r<n;r++)a[r].next(t)}}error(t){if(this.closed)throw new s.a;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,a=e.slice();for(let r=0;r<n;r++)a[r].error(t);this.observers.length=0}complete(){if(this.closed)throw new s.a;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let a=0;a<e;a++)n[a].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new s.a;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new s.a;return this.hasError?(t.error(this.thrownError),i.a.EMPTY):this.isStopped?(t.complete(),i.a.EMPTY):(this.observers.push(t),new o.a(this,t))}asObservable(){const t=new a.a;return t.source=this,t}}return t.create=(t,e)=>new c(t,e),t})();class c extends l{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):i.a.EMPTY}}},XYm9:function(t,e,n){var a=n("+K+b");t.exports=function(t,e){var n=e?a(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},Xg1U:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("8Y7J"),r=n("978R"),i=(n("SVse"),a["ɵcrt"]({encapsulation:0,styles:[".tooltip[_nghost-%COMP%] {\n      display: block;\n      pointer-events: none;\n    }\n    .bs3.tooltip.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -2px;\n    }\n    .bs3.tooltip.bottom[_nghost-%COMP%] {\n      margin-top: 0px;\n    }\n    .bs3.bs-tooltip-left[_nghost-%COMP%], .bs3.bs-tooltip-right[_nghost-%COMP%]{\n      margin: 0px;\n    }\n    .bs3.bs-tooltip-right[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%], .bs3.bs-tooltip-left[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%] {\n      margin: .3rem 0;\n    }"],data:{}}));function s(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","tooltip-arrow arrow"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","tooltip-inner"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,null)}function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-tooltip-container",[["role","tooltip"]],[[8,"className",0],[2,"show",null],[2,"bs3",null],[1,"id",0]],null,null,s,i)),a["ɵdid"](1,4243456,null,0,r.b,[r.a],null,null)],null,(function(t,e){t(e,0,0,"tooltip in tooltip-"+a["ɵnov"](e,1).placement+" bs-tooltip-"+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).containerClass,!a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).id)}))}var u=a["ɵccf"]("bs-tooltip-container",r.b,o,{},{},["*"])},Xi7e:function(t,e,n){var a=n("KMkd"),r=n("adU4"),i=n("tMB7"),s=n("+6XX"),o=n("Z8oC");function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}u.prototype.clear=a,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=s,u.prototype.set=o,t.exports=u},XoHu:function(t,e,n){"use strict";function a(t){return null!==t&&"object"==typeof t}n.d(e,"a",(function(){return a}))},Y7HM:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("DH7j");function r(t){return!Object(a.a)(t)&&t-parseFloat(t)+1>=0}},YESw:function(t,e,n){var a=n("Cwc5")(Object,"create");t.exports=a},YNrV:function(t,e,n){"use strict";var a=n("g6v/"),r=n("0Dky"),i=n("33Wh"),s=n("dBg+"),o=n("0eef"),u=n("ewvW"),d=n("RK3t"),l=Object.assign,c=Object.defineProperty;t.exports=!l||r((function(){if(a&&1!==l({b:1},l(c({},"a",{enumerable:!0,get:function(){c(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(t){e[t]=t})),7!=l({},t)[n]||"abcdefghijklmnopqrst"!=i(l({},e)).join("")}))?function(t,e){for(var n=u(t),r=arguments.length,l=1,c=s.f,f=o.f;r>l;)for(var h,g=d(arguments[l++]),p=c?i(g).concat(c(g)):i(g),b=p.length,m=0;b>m;)h=p[m++],a&&!f.call(g,h)||(n[h]=g[h]);return n}:l},YO3V:function(t,e,n){var a=n("NykK"),r=n("LcsW"),i=n("ExA7"),s=Function.prototype.toString,o=Object.prototype.hasOwnProperty,u=s.call(Object);t.exports=function(t){if(!i(t)||"[object Object]"!=a(t))return!1;var e=r(t);if(null===e)return!0;var n=o.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==u}},YRex:function(t,e,n){!function(t){"use strict";t.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(t,e){return 12===t&&(t=0),"يېرىم كېچە"===e||"سەھەر"===e||"چۈشتىن بۇرۇن"===e?t:"چۈشتىن كېيىن"===e||"كەچ"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"يېرىم كېچە":a<900?"سەھەر":a<1130?"چۈشتىن بۇرۇن":a<1230?"چۈش":a<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-كۈنى";case"w":case"W":return t+"-ھەپتە";default:return t}},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n("wd/R"))},YcCt:function(t,e,n){"use strict";function a(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,n,r){n=n||"=";var i={};if("string"!=typeof t||0===t.length)return i;var s=/\+/g;t=t.split(e=e||"&");var o=1e3;r&&"number"==typeof r.maxKeys&&(o=r.maxKeys);var u=t.length;o>0&&u>o&&(u=o);for(var d=0;d<u;++d){var l,c,f,h,g=t[d].replace(s,"%20"),p=g.indexOf(n);p>=0?(l=g.substr(0,p),c=g.substr(p+1)):(l=g,c=""),f=decodeURIComponent(l),h=decodeURIComponent(c),a(i,f)?Array.isArray(i[f])?i[f].push(h):i[f]=[i[f],h]:i[f]=h}return i}},Ylt2:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("quSY");class r extends a.a{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 n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},YuTi:function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},YzqF:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(){this._queue=[],this._pending=!1}return t.prototype.isLocked=function(){return this._pending},t.prototype.acquire=function(){var t=this,e=new Promise((function(e){return t._queue.push(e)}));return this._pending||this._dispatchNext(),e},t.prototype.runExclusive=function(t){return this.acquire().then((function(e){var n;try{n=t()}catch(a){throw e(),a}return Promise.resolve(n).then((function(t){return e(),t}),(function(t){throw e(),t}))}))},t.prototype._dispatchNext=function(){this._queue.length>0?(this._pending=!0,this._queue.shift()(this._dispatchNext.bind(this))):this._pending=!1},t}();e.default=a},Z0cm:function(t,e){t.exports=Array.isArray},Z21x:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("sne2");class a{constructor(t,e){this.location=t,this.actionLabels=e,this.name=this.actionLabels.CANCEL,this.back=()=>this.location.back()}}},Z4QM:function(t,e,n){!function(t){"use strict";var e=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];t.defineLocale("sd",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,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:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n("wd/R"))},Z8oC:function(t,e,n){var a=n("y1pI");t.exports=function(t,e){var n=this.__data__,r=a(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}},ZAMP:function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<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("wd/R"))},ZCgT:function(t,e,n){var a=n("tLB3");t.exports=function(t){return t?(t=a(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},ZCpW:function(t,e,n){var a=n("lm/5"),r=n("O7RO"),i=n("IOzZ");t.exports=function(t){var e=r(t);return 1==e.length&&e[0][2]?i(e[0][0],e[0][1]):function(n){return n===t||a(n,t,e)}}},ZDA6:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("IheW"),i=n("pL04");let s=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("ui-api/scope")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.c))},token:t,providedIn:i.a}),t})()},ZEkX:function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return u})),n("Mxhz");var a=n("0+/T"),r=(n("sne2"),n("x38r")),i=n("oxzT"),s=n("mtw6"),o=n("vCyI");n("a0VL"),n("nSDx"),n("aexS"),n("9nlD");const u=new(n("EgGo").a)("user-management/users");class d{constructor(t,e,n,a,r,s,u,d,l){this.userService=t,this.emptyPipe=e,this.modalService=n,this.notificationService=a,this.authStorageService=r,this.i18n=s,this.urlBuilder=u,this.cdDatePipe=d,this.actionLabels=l,this.selection=new o.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:i.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"update",icon:i.a.edit,routerLink:()=>this.selection.first()&&this.urlBuilder.getEdit(this.selection.first().username),name:this.actionLabels.EDIT},{permission:"delete",icon:i.a.destroy,click:()=>this.deleteUserModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Name"),prop:"name",flexGrow:1,pipe:this.emptyPipe},{name:this.i18n("Email"),prop:"email",flexGrow:1,pipe:this.emptyPipe},{name:this.i18n("Roles"),prop:"roles",flexGrow:1,cellTemplate:this.userRolesTpl},{name:this.i18n("Enabled"),prop:"enabled",flexGrow:1,cellTransformation:r.a.checkIcon},{name:this.i18n("Password expiration date"),prop:"pwdExpirationDate",flexGrow:1,pipe:this.cdDatePipe}]}getUsers(){this.userService.list().subscribe(t=>{t.forEach(t=>{t.pwdExpirationDate&&t.pwdExpirationDate>0&&(t.pwdExpirationDate=1e3*t.pwdExpirationDate)}),this.users=t})}updateSelection(t){this.selection=t}deleteUser(t){this.userService.delete(t).subscribe(()=>{this.getUsers(),this.modalRef.hide(),this.notificationService.show(s.a.success,this.i18n('Deleted user "{{username}}"',{username:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}deleteUserModal(){const t=this.authStorageService.getUsername(),e=this.selection.first().username;t!==e?this.modalRef=this.modalService.show(a.a,{initialState:{itemDescription:"User",itemNames:[e],submitAction:()=>this.deleteUser(e)}}):this.notificationService.show(s.a.error,this.i18n('Failed to delete user "{{username}}"',{username:e}),this.i18n('You are currently logged in as "{{username}}".',{username:e}))}}},ZUHj:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("51Dv"),r=n("SeVD"),i=n("HDdC");function s(t,e,n,s,o=new a.a(t,n,s)){if(!o.closed)return e instanceof i.a?e.subscribe(o):Object(r.a)(e)(o)}},ZUd8:function(t,e,n){var a=n("ppGB"),r=n("HYAF"),i=function(t){return function(e,n){var i,s,o=String(r(e)),u=a(n),d=o.length;return u<0||u>=d?t?"":void 0:(i=o.charCodeAt(u))<55296||i>56319||u+1===d||(s=o.charCodeAt(u+1))<56320||s>57343?t?o.charAt(u):i:t?o.slice(u,u+2):s-56320+(i-55296<<10)+65536}};t.exports={codeAt:i(!1),charAt:i(!0)}},ZWtO:function(t,e,n){var a=n("4uTw"),r=n("9Nap");t.exports=function(t,e){for(var n=0,i=(e=a(e,t)).length;null!=t&&n<i;)t=t[r(e[n++])];return n&&n==i?t:void 0}},Zduo:function(t,e,n){!function(t){"use strict";t.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_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(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %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("wd/R"))},ZfDv:function(t,e,n){var a=n("hh1v"),r=n("6LWA"),i=n("tiKp")("species");t.exports=function(t,e){var n;return r(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!r(n.prototype)?a(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},ZhuC:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",a.TemplateRef)],t.prototype,"template",void 0),i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Component)({encapsulation:a.ViewEncapsulation.None,selector:"tree-loading-component",template:'\n    <span *ngIf="!template">loading...</span>\n    <ng-container\n      [ngTemplateOutlet]="template"\n      [ngTemplateOutletContext]="{ $implicit: node }">\n    </ng-container>\n  '})],t)}()},ZirO:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(!e(t[n],n,t))return!1;return!0}},a0VL:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.datePipe=t}transform(t){return null===t||""===t?"":this.datePipe.transform(t,"shortDate")+" "+this.datePipe.transform(t,"mediumTime")}}},a278:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("QC43"),i=n("XFyV"),s=n("DqMs"),o=n("/NlG"),u=n("GiVz"),d=n("s7LF"),l=n("SVse");n("insk"),n("mSOc"),n("cUpR"),n("20UP"),n("+0ag"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return m}));var c=a["ɵcrt"]({encapsulation:0,styles:[[".grafana[_ngcontent-%COMP%]{width:100%;height:600px;z-index:0}.grafana_one[_ngcontent-%COMP%]{height:400px}.grafana_two[_ngcontent-%COMP%]{height:750px}.grafana_three[_ngcontent-%COMP%]{height:900px}.timepicker[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-weight:700}.dropdown-menu[_ngcontent-%COMP%]{top:20px;right:20px;left:auto}"]],data:{}});function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,r.b,r.a)),a["ɵdid"](1,49152,null,0,i.a,[],null,null),(t()(),a["ɵted"](-1,0,["Loading panel data..."]))],null,null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,s.b,s.a)),a["ɵdid"](1,114688,null,0,o.a,[u.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Please consult the "])),(t()(),a["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["ɵted"](-1,null,["documentation"])),(t()(),a["ɵted"](-1,0,[" on how to configure and enable the monitoring functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,a["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,s.b,s.a)),a["ɵdid"](1,114688,null,0,o.a,[u.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Grafana Dashboard doesn't exist. Please refer to "])),(t()(),a["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["ɵted"](-1,null,["documentation"])),(t()(),a["ɵted"](-1,0,[" on how to add dashboards to Grafana."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,a["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,d.v,[a.ElementRef,a.Renderer2,[2,d.A]],{ngValue:[0,"ngValue"]},null),a["ɵdid"](2,147456,null,0,d.F,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["ɵted"](3,null,[""," "]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,24,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,17,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,16,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,15,"div",[["class","form-inline timepicker"]],null,null,null,null,null)),(t()(),a["ɵeld"](4,0,null,null,1,"label",[["class","ml-1 my-1 col-form-label"],["for","timepicker"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Grafana Time Picker"])),(t()(),a["ɵeld"](6,0,null,null,7,"select",[["class","custom-select my-1 mx-3"],["id","timepicker"],["name","timepicker"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0,i=t.component;return"change"===e&&(r=!1!==a["ɵnov"](t,7).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,7).onTouched()&&r),"ngModelChange"===e&&(r=!1!==(i.time=n)&&r),"ngModelChange"===e&&(r=!1!==i.onTimepickerChange(n)&&r),r}),null,null)),a["ɵdid"](7,16384,null,0,d.A,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,d.p,(function(t){return[t]}),[d.A]),a["ɵdid"](9,671744,null,0,d.u,[[8,null],[8,null],[8,null],[6,d.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),a["ɵprd"](2048,null,d.q,null,[d.u]),a["ɵdid"](11,16384,null,0,d.r,[[4,d.q]],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](13,278528,null,0,l.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](14,0,null,null,4,"button",[["class","btn btn-light my-1"],["title","Reset Settings"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.reset()&&a),a}),null,null)),(t()(),a["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,l["ɵNgClassImpl"],l["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](17,278528,null,0,l.NgClass,[l["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](18,1),(t()(),a["ɵeld"](19,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["ɵeld"](20,0,null,null,4,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),a["ɵeld"](21,0,null,null,3,"div",[["class","grafana-container"]],null,null,null,null,null)),(t()(),a["ɵeld"](22,0,[["iframe",1]],null,2,"iframe",[["class","grafana"],["frameborder","0"],["id","iframe"],["scrolling","no"]],[[8,"src",5]],null,null,null,null)),a["ɵprd"](512,null,l["ɵNgClassImpl"],l["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](24,278528,null,0,l.NgClass,[l["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null)],(function(t,e){var n=e.component;t(e,9,0,"timepicker",n.time),t(e,13,0,n.grafanaTimes);var a=t(e,18,0,n.icons.undo);t(e,17,0,a),t(e,24,0,"grafana",n.panelStyle)}),(function(t,e){var n=e.component;t(e,6,0,a["ɵnov"](e,11).ngClassUntouched,a["ɵnov"](e,11).ngClassTouched,a["ɵnov"](e,11).ngClassPristine,a["ɵnov"](e,11).ngClassDirty,a["ɵnov"](e,11).ngClassValid,a["ɵnov"](e,11).ngClassInvalid,a["ɵnov"](e,11).ngClassPending),t(e,22,0,n.grafanaSrc)}))}function m(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](1,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](3,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](5,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,b)),a["ɵdid"](7,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.loading&&n.grafanaExist),t(e,3,0,!n.grafanaExist),t(e,5,0,!n.dashboardExist),t(e,7,0,n.grafanaExist&&n.dashboardExist)}),null)}},a40w:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("EEJc"),i=n("ajRT"),s=n("s7LF"),o=n("+gVj"),u=n("SVse"),d=n("gp3X"),l=n("sb0X"),c=n("KVJa"),f=n("Z21x"),h=n("sne2"),g=n("OLbh"),p=n("LqlI");n.d(e,"a",(function(){return _}));var b=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.description)}))}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,22,"cd-modal",[],null,[[null,"hide"]],(function(t,e,n){var a=!0;return"hide"===e&&(a=!1!==t.component.cancel()&&a),a}),r.c,r.b)),a["ɵdid"](1,49152,null,0,i.a,[],null,{hide:"hide"}),(t()(),a["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](3,null,["",""])),(t()(),a["ɵeld"](4,0,null,1,18,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,17,"form",[["name","confirmationForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,7).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,10).onSubmit()&&r),r}),null,null)),a["ɵdid"](6,16384,null,0,s.G,[],null,null),a["ɵdid"](7,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,s.d,null,[s.l]),a["ɵdid"](9,16384,null,0,s.s,[[4,s.d]],null,null),a["ɵdid"](10,16384,null,0,o.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](11,0,null,null,4,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](13,540672,null,0,u.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](15,16384,null,0,u.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmit(r.confirmationForm.value)&&a),a}),d.b,d.a)),a["ɵdid"](19,114688,null,0,l.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵted"](20,0,[" "," "])),(t()(),a["ɵeld"](21,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,c.b,c.a)),a["ɵdid"](22,49152,null,0,f.a,[u.Location,h.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,7,0,n.confirmationForm),t(e,10,0,n.confirmationForm),t(e,13,0,n.bodyContext,n.bodyTpl),t(e,15,0,n.description),t(e,19,0,n.confirmationForm),t(e,22,0,"Cancel",n.boundCancel)}),(function(t,e){var n=e.component;t(e,3,0,n.titleText),t(e,5,0,a["ɵnov"](e,9).ngClassUntouched,a["ɵnov"](e,9).ngClassTouched,a["ɵnov"](e,9).ngClassPristine,a["ɵnov"](e,9).ngClassDirty,a["ɵnov"](e,9).ngClassValid,a["ɵnov"](e,9).ngClassInvalid,a["ɵnov"](e,9).ngClassPending),t(e,20,0,n.buttonText)}))}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-confirmation-modal",[],null,null,null,v,b)),a["ɵdid"](1,245760,null,0,g.a,[p.a,p.b],null,null)],(function(t,e){t(e,1,0)}),null)}var _=a["ɵccf"]("cd-confirmation-modal",g.a,x,{},{},[])},a96k:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n,a=!0){this.selected=t,this.name=e,this.description=n,this.enabled=a}}},aHM3:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("8Y7J"),n("s7LF");class a{static forRoot(){return{ngModule:a,providers:[]}}}},aIdf:function(t,e,n){!function(t){"use strict";function e(t,e,n){return t+" "+function(t,e){return 2===e?function(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}(t):t}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}t.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ù",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:function(t){switch(function t(e){return e>9?t(e%10):e}(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(t){return t+(1===t?"añ":"vet")},week:{dow:1,doy:4}})}(n("wd/R"))},aIsn:function(t,e,n){!function(t){"use strict";t.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_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ātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".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ēkona ruarua",ss:"%d hēkona",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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},aQkU:function(t,e,n){!function(t){"use strict";t.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".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:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n("wd/R"))},aXbf:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("LvDl"),r=n("8Y7J");let i=(()=>{class t{constructor(){}format_number(t,e,n,r=1){if(a.isString(t)&&(t=Number(t)),!a.isNumber(t))return"-";let i=t<1?0:Math.floor(Math.log(t)/Math.log(e));i=i>=n.length?n.length-1:i;let s=a.round(t/Math.pow(e,i),r).toString();return""===s?"-":(""!==n[i]&&(s=`${s} ${n[i]}`),s)}toBytes(t,e=null){const n=["b","k","m","g","t","p","e","z","y"],r=RegExp("^(\\d+(.\\d+)?) ?(["+n.join("")+"]?(b|ib|B/s)?)?$","i").exec(t);if(null===r)return e;let i=parseFloat(r[1]);return a.isString(r[3])&&(i*=Math.pow(1024,n.indexOf(r[3].toLowerCase()[0]))),Math.round(i)}toMilliseconds(t){const e=/^\s*(\d+)\s*(ms)?\s*$/i.exec(t);return null!==e?+e[1]:0}toIops(t){const e=/^\s*(\d+)\s*(IOPS)?\s*$/i.exec(t);return null!==e?+e[1]:0}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},adU4:function(t,e,n){var a=n("y1pI"),r=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=a(e,t);return!(n<0||(n==e.length-1?e.pop():r.call(e,n,1),--this.size,0))}},aexS:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("2Vo4"),r=n("jKX/"),i=n("8Y7J");let s=(()=>{class t{constructor(){this.isPwdDisplayedSource=new a.a(!1),this.isPwdDisplayed$=this.isPwdDisplayedSource.asObservable()}set(t,e,n={},a=!1,i=null,s=!1){localStorage.setItem("dashboard_username",t),localStorage.setItem("access_token",e),localStorage.setItem("dashboard_permissions",JSON.stringify(new r.a(n))),localStorage.setItem("user_pwd_expiration_date",String(i)),localStorage.setItem("user_pwd_update_required",String(s)),localStorage.setItem("sso",String(a))}remove(){localStorage.removeItem("access_token"),localStorage.removeItem("dashboard_username"),localStorage.removeItem("user_pwd_expiration_data"),localStorage.removeItem("user_pwd_update_required")}getToken(){return localStorage.getItem("access_token")}isLoggedIn(){return null!==localStorage.getItem("dashboard_username")}getUsername(){return localStorage.getItem("dashboard_username")}getPermissions(){return JSON.parse(localStorage.getItem("dashboard_permissions")||JSON.stringify(new r.a({})))}getPwdExpirationDate(){return Number(localStorage.getItem("user_pwd_expiration_date"))}getPwdUpdateRequired(){return"true"===localStorage.getItem("user_pwd_update_required")}isSSO(){return"true"===localStorage.getItem("sso")}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},afO8:function(t,e,n){var a,r,i,s=n("f5p1"),o=n("2oRo"),u=n("hh1v"),d=n("kRJp"),l=n("UTVS"),c=n("93I0"),f=n("0BK2");if(s){var h=new(0,o.WeakMap),g=h.get,p=h.has,b=h.set;a=function(t,e){return b.call(h,t,e),e},r=function(t){return g.call(h,t)||{}},i=function(t){return p.call(h,t)}}else{var m=c("state");f[m]=!0,a=function(t,e){return d(t,m,e),e},r=function(t){return l(t,m)?t[m]:{}},i=function(t){return l(t,m)}}t.exports={set:a,get:r,has:i,enforce:function(t){return i(t)?r(t):a(t,{})},getterFor:function(t){return function(e){var n;if(!u(e)||(n=r(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},afOK:function(t,e,n){t.exports=n("pZt1")},ajRT:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("8Y7J");class r{constructor(){this.hide=new a.EventEmitter}close(){this.modalRef&&this.modalRef.hide(),this.hide.emit()}}},atuK:function(t,e,n){"use strict";n.d(e,"a",(function(){return v})),n.d(e,"b",(function(){return E})),n.d(e,"d",(function(){return H})),n.d(e,"c",(function(){return rt}));var a=n("8Y7J"),r=n("ienR"),i=n("SVse"),s=(n("s7LF"),n("2uy1")),o=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),It,xt)),a["ɵdid"](1,49152,null,0,r.B,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,u)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),At,Nt)),a["ɵdid"](1,49152,null,0,r.C,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,l)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),Mt,Lt)),a["ɵdid"](1,49152,null,0,r.E,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,f)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,gt,ct)),a["ɵdid"](2,49152,null,0,r.y,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](8,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](10,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](12,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](14,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](16,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function m(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,b)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-datepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"]],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),m,o)),a["ɵprd"](512,null,r.t,r.t,[]),a["ɵprd"](512,null,r.u,r.u,[r.v,r.l]),a["ɵdid"](3,245760,null,0,r.b,[a.Renderer2,r.a,r.t,a.ElementRef,r.v,r.u,s.a],null,null)],(function(t,e){t(e,3,0)}),null)}var v=a["ɵccf"]("bs-datepicker-container",r.b,y,{},{},[]),x=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),It,xt)),a["ɵdid"](1,49152,null,0,r.B,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,_)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),At,Nt)),a["ɵdid"](1,49152,null,0,r.C,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,O)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),Mt,Lt)),a["ɵdid"](1,49152,null,0,r.E,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,S)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function N(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,gt,ct)),a["ɵdid"](2,49152,null,0,r.y,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function R(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](8,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](10,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,I)),a["ɵdid"](12,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,N)),a["ɵdid"](14,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](16,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function A(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,R)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-datepicker-inline-container",[],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),A,x)),a["ɵprd"](512,null,r.t,r.t,[]),a["ɵprd"](512,null,r.u,r.u,[r.v,r.l]),a["ɵdid"](3,245760,null,0,r.e,[a.Renderer2,r.a,r.t,a.ElementRef,r.v,r.u,s.a],null,null)],(function(t,e){t(e,3,0)}),null)}var E=a["ɵccf"]("bs-datepicker-inline-container",r.e,k,{},{},[]),L=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function D(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),It,xt)),a["ɵdid"](1,49152,null,0,r.B,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,D)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),At,Nt)),a["ɵdid"](1,49152,null,0,r.C,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function q(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,M)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function j(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),Mt,Lt)),a["ɵdid"](1,49152,null,0,r.E,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function F(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,j)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function G(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function V(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,gt,ct)),a["ɵdid"](2,49152,null,0,r.y,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,P)),a["ɵdid"](8,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,q)),a["ɵdid"](10,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,F)),a["ɵdid"](12,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,G)),a["ɵdid"](14,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,V)),a["ɵdid"](16,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function B(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,z)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function Y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-daterangepicker-inline-container",[],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),B,L)),a["ɵprd"](512,null,r.t,r.t,[]),a["ɵprd"](512,null,r.u,r.u,[r.v,r.l]),a["ɵdid"](3,245760,null,0,r.k,[a.Renderer2,r.a,r.t,a.ElementRef,r.v,r.u,s.a],null,null)],(function(t,e){t(e,3,0)}),null)}var H=a["ɵccf"]("bs-daterangepicker-inline-container",r.k,Y,{},{},[]),U=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function W(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),It,xt)),a["ɵdid"](1,49152,null,0,r.B,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function K(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,W)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function $(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),At,Nt)),a["ɵdid"](1,49152,null,0,r.C,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function Z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,$)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function J(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),Mt,Lt)),a["ɵdid"](1,49152,null,0,r.E,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function Q(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,J)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function X(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function tt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,gt,ct)),a["ɵdid"](2,49152,null,0,r.y,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function et(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,K)),a["ɵdid"](8,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Z)),a["ɵdid"](10,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Q)),a["ɵdid"](12,278528,null,0,i.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,X)),a["ɵdid"](14,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,tt)),a["ɵdid"](16,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function nt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,et)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,i.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function at(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-daterangepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"]],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),nt,U)),a["ɵprd"](512,null,r.t,r.t,[]),a["ɵprd"](512,null,r.u,r.u,[r.v,r.l]),a["ɵdid"](3,245760,null,0,r.i,[a.Renderer2,r.a,r.t,a.ElementRef,r.v,r.u,s.a],null,null)],(function(t,e){t(e,3,0)}),null)}var rt=a["ɵccf"]("bs-daterangepicker-container",r.i,at,{},{},[]),it=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function st(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-current-date",[["title","hey there"]],null,null,null,lt,dt)),a["ɵdid"](1,49152,null,0,r.x,[],{title:[0,"title"]},null)],(function(t,e){t(e,1,0,"hey there")}),null)}function ot(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-timepicker",[],null,null,null,Et,kt)),a["ɵdid"](1,49152,null,0,r.D,[],null,null)],null,null)}function ut(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,st)),a["ɵdid"](1,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,0,null,null,1,"div",[["class","bs-datepicker-head"]],null,null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵeld"](4,0,null,null,1,"div",[["class","bs-datepicker-body"]],null,null,null,null,null)),a["ɵncd"](null,1),(t()(),a["ɵand"](16777216,null,null,1,null,ot)),a["ɵdid"](7,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,!1),t(e,7,0,!1)}),null)}var dt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function lt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","current-timedate"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.component.title)}))}var ct=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function ft(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"button",[["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.$implicit.label)}))}function ht(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"button",[["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Custom Range"]))],null,null)}function gt(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-predefined-btns"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ft)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ht)),a["ɵdid"](4,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.ranges),t(e,4,0,n.isCustomRangeShown)}),null)}var pt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function bt(t){return a["ɵvid"](2,[(t()(),a["ɵted"](0,null,["",""]))],null,(function(t,e){t(e,0,0,e.component.day.label)}))}var mt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function yt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"button",[["class","current"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("month")&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.component.calendar.monthTitle)}))}function vt(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,2,"button",[["class","previous"],["type","button"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!0)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["‹"])),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵand"](16777216,null,null,1,null,yt)),a["ɵdid"](5,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵeld"](7,0,null,null,2,"button",[["class","current"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("year")&&a),a}),null,null)),(t()(),a["ɵeld"](8,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](9,null,["",""])),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵeld"](11,0,null,null,2,"button",[["class","next"],["type","button"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!1)&&a),a}),null,null)),(t()(),a["ɵeld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["›"]))],(function(t,e){t(e,5,0,e.component.calendar.monthTitle)}),(function(t,e){var n=e.component;t(e,0,0,n.calendar.disableLeftArrow,n.calendar.hideLeftArrow?"hidden":"visible"),t(e,9,0,n.calendar.yearTitle),t(e,11,0,n.calendar.disableRightArrow,n.calendar.hideRightArrow?"hidden":"visible")}))}var xt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function _t(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"th",[],null,null,null,null,null))],null,null)}function Tt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"th",[["aria-label","weekday"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[""," "]))],null,(function(t,e){t(e,1,0,e.component.calendar.weekdays[e.context.index])}))}function Ot(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["class","week"]],[[2,"active-week",null]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectWeek(t.parent.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){var n=e.component;t(e,0,0,n.isWeekHovered),t(e,2,0,n.calendar.weekNumbers[e.parent.context.index])}))}function wt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"td",[["role","gridcell"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"span",[["bsDatepickerDayDecorator",""]],[[2,"disabled",null],[2,"is-highlighted",null],[2,"is-other-month",null],[2,"is-active-other-month",null],[2,"in-range",null],[2,"select-start",null],[2,"select-end",null],[2,"selected",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectDay(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!1)&&a),a}),bt,pt)),a["ɵdid"](2,114688,null,0,r.z,[r.a,a.ElementRef,a.Renderer2],{day:[0,"day"]},null),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,1,0,a["ɵnov"](e,2).day.isDisabled,a["ɵnov"](e,2).day.isHovered,a["ɵnov"](e,2).day.isOtherMonth,a["ɵnov"](e,2).day.isOtherMonthHovered,a["ɵnov"](e,2).day.isInRange,a["ɵnov"](e,2).day.isSelectionStart,a["ɵnov"](e,2).day.isSelectionEnd,a["ɵnov"](e,2).day.isSelected),t(e,3,0,e.context.$implicit.label)}))}function St(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Ot)),a["ɵdid"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,wt)),a["ɵdid"](4,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.options.showWeekNumbers),t(e,4,0,e.context.$implicit.days)}),null)}function It(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,13,"bs-calendar-layout",[],null,null,null,ut,it)),a["ɵdid"](1,49152,null,0,r.w,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),vt,mt)),a["ɵdid"](3,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,9,"table",[["class","days weeks"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,5,"thead",[],null,null,null,null,null)),(t()(),a["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,_t)),a["ɵdid"](8,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Tt)),a["ɵdid"](10,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](11,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,St)),a["ɵdid"](13,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,8,0,n.options.showWeekNumbers),t(e,10,0,n.calendar.weekdays),t(e,13,0,n.calendar.weeks)}),null)}var Nt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Ct(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewMonth(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],[[2,"selected",null]],null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,1,0,e.context.$implicit.isSelected),t(e,2,0,e.context.$implicit.label)}))}function Rt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Ct)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function At(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,ut,it)),a["ɵdid"](1,49152,null,0,r.w,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),vt,mt)),a["ɵdid"](3,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,3,"table",[["class","months"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Rt)),a["ɵdid"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.months)}),null)}var kt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Et(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"div",[["class","bs-timepicker-container"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"button",[["class","bs-decrease"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["-"])),(t()(),a["ɵeld"](4,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"button",[["class","bs-increase"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["+"])),(t()(),a["ɵeld"](7,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["ɵeld"](8,0,null,null,1,"button",[["class","bs-decrease"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["-"])),(t()(),a["ɵeld"](10,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["ɵeld"](11,0,null,null,1,"button",[["class","bs-increase"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["+"])),(t()(),a["ɵeld"](13,0,null,null,2,"button",[["class","switch-time-format"],["type","button"]],null,null,null,null,null)),(t()(),a["ɵted"](14,null,[""," "])),(t()(),a["ɵeld"](15,0,null,null,0,"img",[["alt",""],["src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,4,0,n.hours),t(e,10,0,n.minutes),t(e,14,0,n.ampm)}))}var Lt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Dt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewYear(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],[[2,"selected",null]],null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,1,0,e.context.$implicit.isSelected),t(e,2,0,e.context.$implicit.label)}))}function Pt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Dt)),a["ɵdid"](2,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function Mt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,ut,it)),a["ɵdid"](1,49152,null,0,r.w,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),vt,mt)),a["ɵdid"](3,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,3,"table",[["class","years"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Pt)),a["ɵdid"](7,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.years)}),null)}},b1Dy:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},b2z7:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},b5OY:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("pxLl");class a{constructor(t,e){this.performanceCounterService=t,this.i18n=e,this.columns=[],this.counters=[]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Description"),prop:"description",flexGrow:1},{name:this.i18n("Value"),prop:"value",cellTemplate:this.valueTpl,flexGrow:1}]}getCounters(t){this.performanceCounterService.get(this.serviceType,this.serviceId).subscribe(t=>{this.counters=t},e=>{404===e.status?(e.preventDefault(),this.counters=null):t.error()})}}},b80T:function(t,e,n){var a=n("UNi/"),r=n("03A+"),i=n("Z0cm"),s=n("DSRE"),o=n("wJg7"),u=n("c6wG"),d=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=i(t),l=!n&&r(t),c=!n&&!l&&s(t),f=!n&&!l&&!c&&u(t),h=n||l||c||f,g=h?a(t.length,String):[],p=g.length;for(var b in t)!e&&!d.call(t,b)||h&&("length"==b||c&&("offset"==b||"parent"==b)||f&&("buffer"==b||"byteLength"==b||"byteOffset"==b)||o(b,p))||g.push(b);return g}},bHdf:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("5+tZ"),r=n("SpAZ");function i(t=Number.POSITIVE_INFINITY){return Object(a.a)(r.a,t)}},bN42:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="ja-JP">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>ナビゲーションの切り替え</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>ダッシュボード</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>クラスタ</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>ホスト</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>モニター</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>サービス</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSHマップ</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>マネージャモジュール</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>ログ</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>プール</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>ブロック</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>イメージ</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>ミラーリング</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>ファイルシステム</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>オブジェクトゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>デーモン</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>バケット</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>言語の選択</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>パネルデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana Time Picker</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>設定のリセット</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>戻る</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>データを読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>選択済み</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>検出済み</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>合計</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名前</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>説明</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>長い説明</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>デフォルト</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>デーモンのデフォルト</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>値</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>保存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSHマップビューア</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>ホスト名</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>はい。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>キャンセル</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>閉じる</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>ホストリスト</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>全体的なパフォーマンス</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>エントリが見つかりません</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>クラスタログ</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>監査ログ</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>設定を読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>設定を読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>マネージャモジュールの編集</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>入力された値は有効なUUIDではありません(有効なUUIDの例: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8)。</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>有効なIPアドレスを入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>数字を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>数字または小数を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>ステータス</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>クラスタID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmapが変更されました</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmapエポック</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>定数con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>定数mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>必須のcon</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>必須のmon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>定数内</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非定数内</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>追加</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>機能</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>クラスタ全体のOSDフラグ</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>送信</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>詳細...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD回復優先度</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>優先度</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>優先度値のカスタマイズ</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>値は0と1の間である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>再重みづけ</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSDリスト</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>値</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>編集</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>削除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>ヘルス</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>統計情報</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>クライアント</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任意のクライアントからアクセスできます</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>アドレス</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必須フィールド</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>1つ以上のカンマ区切り値を含んでいる必要があります</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>アクセスタイプ</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>スカッシュ</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>クライアントの追加</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 使用可能なクラスタがありません --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- クラスタを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>デーモンの追加</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>ストレージバックエンド</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 使用可能なデータプールがありません --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- ストレージバックエンドを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>オブジェクトゲートウェイユーザ</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 使用可能なユーザがありません --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- オブジェクトゲートウェイユーザを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFSユーザID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 使用可能なクライアントがありません --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephxクライアントを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS名</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>セキュリティラベル</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>セキュリティラベルの有効化</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFSパス</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>パスは「/」で始まる必要があり、その後ろに1つの単語を配置できます</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>新しいディレクトリが作成されます</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>パス</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>パスは単一の「/」または1つの単語である必要があります</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>新しいバケットが作成されます</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFSプロトコル</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFSタグ</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>クライアントはサブディレクトリをマウントできません(たとえば、[タグ] = fooの場合は、クライアントはfoo/bazをマウントできません)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>異なる[タグ]オプションを使用することで、同じパスを複数回エクスポートできます。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>疑似</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>異なる[疑似]オプションを使用することで、同じパスを複数回エクスポートできます。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 使用可能なアクセスタイプがありません --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- アクセスタイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 使用可能なスカッシュがありません --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 実行されるユーザIDスカッシュ操作の種類を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>トランスポートプロトコル</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Cephにようこそ!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>ユーザ名は必須です</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>パスワードは必須です</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>ログイン</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>このユーザはCephに存在しません。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>禁止</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>検索していた内容を表示することは許可されていません。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD設定</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>ローカル設定値を削除します。親設定値が継承されて代わりに使用されます。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小値は0です</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>プールリスト</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名前は英数字、ダッシュ、および下線のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>選択されたイレイジャコードプロファイル名はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>プラグイン</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>データチャンク(k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>2以上である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>コーディングチャンク(m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>1以上である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>耐久性推定子(c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>地域(l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Crush障害ドメイン</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Crush地域</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>技法</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>パケットサイズ</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crushルート</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Crushデバイスクラス</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任意</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>ディレクトリ</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名前...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>選択されたCephプール名はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>プールタイプ</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- プールタイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>配置グループ</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>少なくとも1つの配置グループが必要です。</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>ご使用のクラスタはこれだけ多数の配置グループを処理できません。必要な配置グループの数を再計算してください。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>計算のヘルプ</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>複製されたサイズ</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>フラグ</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>ECの上書き</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>アプリケーション</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>イレイジャコードプロファイル</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 使用可能なイレイジャコードプロファイルがありません --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- イレイジャコードプロファイルを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Crushルールセット</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Crushルールを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crushルール</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crushステップ</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>圧縮</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>モード</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>アルゴリズム</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 使用可能なイレイジャ圧縮アルゴリズムがありません --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>最小blobサイズ</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>例: 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>値は0より大きい必要があります</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>最大blobサイズ</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>例: 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>値は最小blobサイズより大きい必要があります</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>率</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>圧縮率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>値は0.0~1.0の間である必要があります</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>例: 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>詳細</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>パフォーマンスの詳細</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>キャッシュ層の詳細</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>イメージをごみ箱に移動する</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保護の失効日</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>保護されていません</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日付の形式が正しくありません。「YYYY-MM-DD HH:mm:ss」という形式を使用してください。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保護はすでに失効しています。将来の日付を選択するか、日付を空白のままにしてください。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>イメージの移動</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>概要</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>ターゲット</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>検出認証</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>ユーザ名は8~64文字の長さである必要があり、\n英字、「.」、「@」、「-」、「_」、または「:」のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>パスワード</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>相互ユーザ</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>相互パスワード</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>取得可能な情報:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>使用可能なiSCSIターゲットがありません</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>プール</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>データプール</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>作成済み</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>サイズ</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>オブジェクトサイズ</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>プロビジョニング済み</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>プロビジョニング済み合計</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>ストライピング単位</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>ストライピング数</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>親</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>ブロック名のプレフィックス</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>順番</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>スナップショット</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>イメージ</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>この設定はグローバル値よりも優先されます</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>グローバル</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>これはグローバル値です。このイメージについて、このオプションの値は設定されていません。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>「/」と「@」は使用できません。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 使用可能なrbdプールがありません --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- プールを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>専用のデータプールを使用してください</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>データプール</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>RBDのオブジェクトデータを保管するための専用プール</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>サイズを大きくする必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>詳細</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>ストライピング</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>ストライプ単位</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- ストライプ単位を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>ストライプ数が定義されているため、このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>ストライプ単位がオブジェクトサイズより大きいです。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>ストライプ数</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>ストライプ単位が定義されているため、このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>ストライプ数は0より大きい必要があります。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>ロールバックしようとしています</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>ごみ箱を空にする</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>すべて</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>プール:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>プール名...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>イメージの復元</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>復元するには</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>イメージの新しい名前を入力してクリックします</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新しい名前</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>失効日</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保護の終了日</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSIトポロジ</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常はこれらのパラメータをデフォルト値から変更する必要はありません。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>バックストア</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>確認</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>詳細設定</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>ターゲットIQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQNのパターンが正しくありません。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>詳細情報</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>このターゲットの詳細設定は変更されています。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>ポータル</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>ポータルの追加</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>このイメージの設定は変更されています。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>イメージの追加</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL認証</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>イニシエータ</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>イニシエータ</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>クライアントIQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>イニシエータIQNは一意である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>ユーザ名は8~64文字の長さである必要があり、\n英字、「.」、「@」、「-」、「_」、または「:」のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>イニシエータはいずれかのグループに属します。イメージはそのグループ内で設定されます。</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>アイテムが追加されていません。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>イニシエータの追加</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>グループ</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>グループ</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>グループの追加</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>ごみ箱</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>同期中</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>準備完了</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>プールのミラーモードの編集</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>ミラーを無効にする前に、ピアクラスタを削除する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>クラスタ名</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>このクラスタ名は無効です。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>このCephX IDは無効です。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>モニターアドレス</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>カンマ区切りアドレス...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>この警告アドレスは無効です。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephXキー</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64エンコード化済みキー...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephXキーはbase64でエンコードされている必要があります。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>パフォーマンスカウンタを使用できません</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>デーモンリスト</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>パフォーマンスカウンタ</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>バケットデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Id</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>この値は無効です。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>選択された名前はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>所有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- ユーザを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>有効化済み</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>インデックスタイプ</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>配置ルール</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>マーカー</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>最大マーカー</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>バージョン</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>マスタバージョン</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>変更時間</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>ゾーングループ</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>バケットクォータ</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大サイズ</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>無制限</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>ユーザ名</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- ユーザ名を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>キーの自動生成</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>アクセスキー</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>秘密キー</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>氏名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>電子メールアドレス</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>中断済み</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>システム</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大バケット数</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>サブユーザ</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>機能</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>ユーザクォータ</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>表示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>キー</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>タイプ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- タイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>許可</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 許可を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>サブユーザ</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>選択されたサブユーザIDはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>読み取り、書き込み</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>フル</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>スウィフトキー</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>秘密の自動生成</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>ユーザデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>ユーザデータを読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>選択されたユーザIDはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>これは有効な電子メールアドレスではありません。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>選択された電子メールアドレスはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>最大バケット数</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>無効化済み</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>カスタム</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3キー</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>サブユーザがいません。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>キーがありません。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>スウィフト</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>機能がありません。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>無制限のサイズ</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>最大サイズ</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>無制限のオブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>0以上の値を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>説明...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>許可</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>役割</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>パスワードの確認入力</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>確認入力されたパスワードがパスワードと一致しません。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>電子メール</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>無効な電子メールです。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>自身のユーザから「user read / update」という許可を削除しようとしています。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>続行した場合は、どのユーザの役割も追加および削除できなくなります。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>続行してもよろしいですか?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>ヘルプ</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>ドキュメント</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>バージョン情報</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>ダッシュボード設定</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>ユーザ管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>ログイン済みユーザ</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>サインアウト</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>属性(OSDマップ)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>メタデータを使用できません</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>メタデータ</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>パフォーマンスカウンタ</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>書き込み回数</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>読み取り回数</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>ヒストグラム</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>現行値</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>最小</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>最大</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>ソース</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>レベル</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>実行時に更新できます(編集可能)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>タグ</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>列挙値</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>関連項目</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>クラスタのステータス</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>マネージャデーモン</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>オブジェクトゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>メタデータサーバ</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSIゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>クライアントのIOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>クライアントのスループット</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>クライアントの読み取り/書き込み</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>回復スループット</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>スクラブ</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>パフォーマンス</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>未フォーマット時の容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>OSDあたりの配置グループ数</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>配置グループのステータス</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>ランク</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>現在</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>検出認証を更新しました</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>使用可能なポータルはありません。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>使用可能なイメージはありません。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>使用可能なイメージはありません。ターゲットにイメージを追加したことを確認してください。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>使用可能なイニシエータはありません。ターゲットにイニシエータを追加したことを確認してください。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>ターゲット</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>状態</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>読み取りバイト数</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>書き込みバイト数</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>読み取り操作数</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>書き込み操作数</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>次の日付以降のA/O</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>インスタンス</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>進捗</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>モードの編集</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>ピアの追加</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>ピアの編集</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>ピアの削除</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>リーダー</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>#ローカル</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>#リモート</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>ミラーピア</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>キー</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>ディープフラット化</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>階層化</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>排他ロック</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>オブジェクトマップ(排他ロックが必要)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>ジャーナリング(排他ロックが必要)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>未保護</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBDスナップショットのロールバック</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>ロールバック</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBDスナップショット</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>削除日時</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>タイプ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>状態</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>バージョン</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>ホスト</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>ルート</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>スタンバイデーモン</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>ランク</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>デーモン</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>アクティビティ</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>dエントリ</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>iノード</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用量</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>更新済み</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>この値は実行時に更新できます。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>デーモン/クライアントはこの値をモニター設定データベースから取得しません。\nこのオプションを「ceph config set ...」を通じて設定することは禁止されています。\nこのオプションは、ceph.confまたはコマンドラインを通じて\n設定する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>オプションはデーモン始動時のみに有効になります。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>オプションはクラスタの作成のみに適用されます。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>オプションはデーモンの作成のみに適用されます。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>サービス</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>現行値</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>編集可能</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>有効化</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>無効化</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>再接続していますので、しばらくお待ちください...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>パブリックアドレス</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>セッションの開始</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>インなし</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>以前にアウトとしてマークされたOSDは、それらの始動時にインとしてマークされることはありません</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>アウトなし</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSDは、設定済みの間隔が経過した後に自動的にアウトとしてマークされます</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>アップなし</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSDを始動することは許可されていません</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>ダウンなし</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>OSDの障害レポートは無視されているため、OSDはモニターによってダウンとしてマークされません</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>一時停止</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>読み取りと書き込みを一時停止します</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>スクラブなし</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>スクラブ処理は無効化されています</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>ディープスクラブなし</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>ディープスクラブ処理は無効化されています</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>バックフィルなし</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>配置グループのバックフィルは中断されています</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>回復なし</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>配置グループの回復は中断されています</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>ビット単位のソート</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>ビット単位のソートを使用する</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>消去されたスナップディレクトリ</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDによってスナップセットが変換されました</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>回復の削除</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>ピアリングの代わりに回復時に削除が実行されました</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>配置グループログのハード制限</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>配置グループログ長のハード制限を適用します</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>OSDフラグを更新しました</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>アウト</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>イン</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>ダウン</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>マーク</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>喪失したOSD</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>喪失としてマーク済み</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>消去</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>消去済み</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>破棄</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>破棄済み</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>削除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>配置グループ数</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>読み取りバイト数</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>書き込みバイト数</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>読み取り操作数</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>書き込み操作数</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大バックフィル数</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>回復最大アクティブ</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>回復最大単一始動</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>回復スリープ</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>ジョブ</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>重大度</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>始動済み</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>使用済み</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>使用可能</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>クリーン</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>動作中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警告</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>不明</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>アップ</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>ファイルシステムがありません</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>アクティブ</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>スタンバイ</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>アクティブデーモン</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>定数</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganeshaサービスが設定されていません。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>トランスポート</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFSユーザ</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFSファイルシステム</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(グローバル設定から継承)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>グローバル設定から継承されました</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 実行されるユーザIDスカッシュ操作を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>使用可能なデーモンがありません。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>キャッシュモード</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>退去までの最小経過時間</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>消去までの最小経過時間</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>ターゲットの最大バイト数</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>ターゲットの最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>アプリケーションは追加されていません</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>アプリケーション数の上限に達しました</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>1つのプールは最大で4つのアプリケーション定義しか保有できません。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>使用可能な文字「_a-zA-Z0-9」</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>最大長は128文字です</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>アプリケーションのフィルタリングまたは追加</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>アプリケーションの追加</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>イレイジャコードプロファイル</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>レプリカサイズ</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>最後の変更</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>イレイジャコード化済みプロファイル</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Crushルールセット</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>バケット</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>バケット数</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>ユーザ数</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>範囲</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>読み取り</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>作成</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>システム役割</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>ユーザの更新</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>続行</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>このユーザの役割が変更されたため、このユーザは自動的にログアウトされました。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>各オブジェクトは複数のデータチャンクパートに分割されており、それぞれのパートは異なるOSDに保管されています。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>各オブジェクトのコーディングチャンクを計算して、これらのチャンクを別々のOSDに保管します。\nコーディングチャンクの数は、データを失うことなくダウン状態になることができるOSDの数でもあります。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>jerasureプラグインは最も汎用的で柔軟性の高いプラグインです。\nこのプラグインは、Cephイレイジャコード化済みプール用のデフォルトでもあります。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>さらに柔軟性の高い技法はreed_sol_vanです。kとmを\n設定するだけで十分です。\ncauchy_good技法はより高速となり得ますが、パケットサイズを慎重に選択する必要があります。\nreed_sol_r6_op、liberation、blaum_roth、liber8tionはすべて、\nm=2を使用した設定のみが可能という意味でRAID6と同等です。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>エンコードはバイトサイズのパケット群に対して同時に実行されます。\n適切なパケットサイズを選択することは困難です。\njerasureのドキュメントにはこのトピックに関する詳細な情報が記載されています。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>jerasureプラグインを使用すると、イレイジャコード化済みオブジェクトが複数のOSDに保管されている場合は、\n1つのOSDの喪失から回復するには、他のすべてのOSDからの読み取りが必要になります。\nたとえば、k=8およびm=4を使用してjerasureが設定されている場合は、1つのOSDが失われた場合、\n修復のためには他の11個のOSDからの読み取りが必要になります。\n\nlrcイレイジャコードプラグインは、これより少ないOSDを使用した回復を可能にするために、\nローカルパリティチャンクを作成します。たとえば、lrcがk=8、m=4、およびl=4を使用して設定されている場合は、\nlrcは、4つのOSDごとに1つの追加パリティチャンクを作成します。1つのOSDが失われた場合は、\n11個の代わりに4つのOSDのみを使用してそのOSDを回復できます。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>コーディングチャンクとデータチャンクをサイズ地域の複数セットにグループ分けします。\nたとえば、k=4およびm=2の場合に、[地域]=3の場合は、3つのチャンクからなるグループが2つ作成されます。\n各セットは、別のセットからチャンクを読み取ることなく回復できます。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>1によって定義されたチャンクの各セットが保管されるCrushバケットのタイプ。\nたとえば、このバケットタイプがラックに設定されている場合は、1のチャンクの各グループは異なるラックに配置されます。\nこのバケットタイプを使用して、「ラックの選択」ステップなどのCRUSHルールステップが作成されます。\nこのバケットタイプが設定されていない場合は、このようなグループ分けは行われません。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isaプラグインはISAライブラリをカプセル化します。このプラグインはIntelプロセッサ上のみで動作します。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISAプラグインは2つのリードソロモン形式で提供されています。reed_sol_vanが設定されている場合は、Vandermondeであり、cauchyが設定されている場合は、Cauchyです。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shecプラグインは複数のSHECライブラリをカプセル化します。\nこのプラグインを使用すると、cephはリードソロモンコードより効率的にデータを回復できます。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>それぞれが各データチャンクを各自の計算範囲内に含んでいるパリティチャンクの数。\nこの数は、耐久性推定子として使用されます。\nたとえば、c=2の場合は、データを失うことなく2つのOSDがダウン状態になることができます。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSHルールの最初のステップ(「デフォルトの使用」ステップなど)用に\n使用されるCrushバケットの名前。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>同じ障害ドメインの単一バケット内に2つのチャンクが配置されることを防止します。\nたとえば、障害ドメインがホストである場合は、2つのチャンクが同じホストに保管されることはありません。\nこれを使用して、「リーフホストの選択」ステップなどのCRUSHルールステップが作成されます。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>CRUSHマップ内でCrushデバイスクラス名を使用して、配置先を特定クラス(ssdやhddなど)のデバイスのみに制限します。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>イレイジャコードプラグインの読み込み元となるディレクトリ名を設定します。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>すべての操作を許可します</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>サーバに変更を加えない操作のみを許可します</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>読み取り/書き込み操作を許可しませんが、他のすべての操作を許可します</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>読み取り/書き込み操作、およびファイル属性やディレクトリ内容を変更するどの操作も許可しません</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>アクセスを一切許可しません</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 優先度を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>情報</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>直前の5分間</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>直前の15分間</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>直前の30分間</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>直前の1時間(デフォルト)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>直前の3時間</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>直前の6時間</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>直前の12時間</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>直前の24時間</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨日</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>本日</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>本日の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>一昨日</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>過去2日間</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>先週の同じ曜日</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>前週</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>今週</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>今週の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>過去7日間</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>前月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>今月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>今月の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>過去30日間</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>過去90日間</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>過去6カ月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>過去1年間</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>前年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>過去2年間</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>過去5年間</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>アイテムが選択されていません。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>アイテムを選択解除して再選択してください</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>選択の上限に達しました</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>タグのフィルタリング</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>バッジの追加</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>使用可能なアイテムはありません。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>コピー</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>ディープスクラブ</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>破棄</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>フラット化</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>ダウンとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>インとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>喪失としてマーク</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>アウトとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保護</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>名前の変更</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>復元</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>ごみ箱に移動する</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>保護解除</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>削除済み</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>複製済み</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>コピー済み</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>フラット化済み</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>消去済み</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>復元済み</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>ロールバック済み</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>はい</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>いいえ</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>サービス品質</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS制限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>希望する秒あたり入出力バイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS制限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>希望する秒あたり入出力操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>読み取りBPS制限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>希望する秒あたり読み取りバイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>読み取りIOPS制限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>希望する秒あたり読み取り操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>書き込みBPS制限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>希望する秒あたり書き込みバイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>書き込みIOPS制限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>希望する秒あたり書き込み操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPSバースト</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>希望する入出力バイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>希望する入出力操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>読み取りBPSバースト</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>希望する読み取りバイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>読み取りIOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>希望する読み取り操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>書き込みBPSバースト</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>希望する書き込みバイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>書き込みIOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>希望する書き込み操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>実行中</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>実行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>実行済み</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>不明なタスク</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>作成中</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>作成</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>更新中</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>削除中</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>複製中</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>コピー中</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>コピー</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>フラット化中</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>フラット化</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>ロールバック中</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>ロールバック</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>移動中</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>移動</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>移動済み</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>イメージが見つかりませんでした。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>復元中</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>復元</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>消去中</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>消去</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>すべてのプール</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>ピアを含んでいるためミラーリングを無効化できません。</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},bOMt:function(t,e,n){!function(t){"use strict";t.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øndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".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år 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åned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},bOdf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("5+tZ");function r(t,e){return Object(a.a)(t,e,1)}},bWFh:function(t,e,n){"use strict";var a=n("I+eb"),r=n("2oRo"),i=n("lMq5"),s=n("busE"),o=n("8YOa"),u=n("ImZN"),d=n("GarU"),l=n("hh1v"),c=n("0Dky"),f=n("HH4o"),h=n("1E5z"),g=n("cVYH");t.exports=function(t,e,n){var p=-1!==t.indexOf("Map"),b=-1!==t.indexOf("Weak"),m=p?"set":"add",y=r[t],v=y&&y.prototype,x=y,_={},T=function(t){var e=v[t];s(v,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(b&&!l(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return b&&!l(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(b&&!l(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(i(t,"function"!=typeof y||!(b||v.forEach&&!c((function(){(new y).entries().next()})))))x=n.getConstructor(e,t,p,m),o.REQUIRED=!0;else if(i(t,!0)){var O=new x,w=O[m](b?{}:-0,1)!=O,S=c((function(){O.has(1)})),I=f((function(t){new y(t)})),N=!b&&c((function(){for(var t=new y,e=5;e--;)t[m](e,e);return!t.has(-0)}));I||((x=e((function(e,n){d(e,x,t);var a=g(new y,e,x);return null!=n&&u(n,a[m],a,p),a}))).prototype=v,v.constructor=x),(S||N)&&(T("delete"),T("has"),p&&T("get")),(N||w)&&T(m),b&&v.clear&&delete v.clear}return _[t]=x,a({global:!0,forced:x!=y},_),h(x,t),b||n.setStrong(x,t,p),x}},bXm7:function(t,e,n){!function(t){"use strict";var e={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};t.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".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:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},bYM6:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n("wd/R"))},bpih:function(t,e,n){!function(t){"use strict";t.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ì_martedì_mercoledì_giovedì_venerdì_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(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},busE:function(t,e,n){var a=n("2oRo"),r=n("kRJp"),i=n("UTVS"),s=n("zk60"),o=n("iSVu"),u=n("afO8"),d=u.get,l=u.enforce,c=String(String).split("String");(t.exports=function(t,e,n,o){var u=!!o&&!!o.unsafe,d=!!o&&!!o.enumerable,f=!!o&&!!o.noTargetGet;"function"==typeof n&&("string"!=typeof e||i(n,"name")||r(n,"name",e),l(n).source=c.join("string"==typeof e?e:"")),t!==a?(u?!f&&t[e]&&(d=!0):delete t[e],d?t[e]=n:r(t,e,n)):d?t[e]=n:s(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&d(this).source||o(this)}))},bxKX:function(t,e,n){!function(t){"use strict";t.defineLocale("it-ch",{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ì_martedì_mercoledì_giovedì_venerdì_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(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},bxSN:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J"),i=n("moLw");e.ClickOutsideModule=function(){return a([r.NgModule({declarations:[i.ClickOutsideDirective],exports:[i.ClickOutsideDirective]})],(function(){}))}()},c2HN:function(t,e,n){"use strict";function a(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.d(e,"a",(function(){return a}))},c6wG:function(t,e,n){var a=n("dD9F"),r=n("sEf8"),i=n("mdPL"),s=i&&i.isTypedArray,o=s?r(s):a;t.exports=o},cRix:function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},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:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",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(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},cUpR:function(t,e,n){"use strict";n.d(e,"p",(function(){return _})),n.d(e,"a",(function(){return lt})),n.d(e,"h",(function(){return dt})),n.d(e,"c",(function(){return T})),n.d(e,"d",(function(){return O})),n.d(e,"e",(function(){return W})),n.d(e,"f",(function(){return K})),n.d(e,"g",(function(){return $})),n.d(e,"b",(function(){return tt})),n.d(e,"q",(function(){return s})),n.d(e,"j",(function(){return k})),n.d(e,"i",(function(){return H})),n.d(e,"m",(function(){return Z})),n.d(e,"n",(function(){return X})),n.d(e,"l",(function(){return I})),n.d(e,"o",(function(){return S})),n.d(e,"k",(function(){return et}));var a=n("SVse"),r=n("8Y7J");let i=null;function s(){return i}const o={class:"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},u={"\b":"Backspace","\t":"Tab","\7f":"Delete","\e":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},d={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\90":"NumLock"},l=(()=>{if(r["ɵglobal"].Node)return r["ɵglobal"].Node.prototype.contains||function(t){return!!(16&this.compareDocumentPosition(t))}})();class c extends class extends class{constructor(){this.resourceLoaderType=null}get attrToPropMap(){return this._attrToPropMap}set attrToPropMap(t){this._attrToPropMap=t}}{constructor(){super(),this._animationPrefix=null,this._transitionEnd=null;try{const t=this.createElement("div",document);if(null!=this.getStyle(t,"animationName"))this._animationPrefix="";else{const e=["Webkit","Moz","O","ms"];for(let n=0;n<e.length;n++)if(null!=this.getStyle(t,e[n]+"AnimationName")){this._animationPrefix="-"+e[n].toLowerCase()+"-";break}}const e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(e).forEach(n=>{null!=this.getStyle(t,n)&&(this._transitionEnd=e[n])})}catch(t){this._animationPrefix=null,this._transitionEnd=null}}getDistributedNodes(t){return t.getDistributedNodes()}resolveAndSetHref(t,e,n){t.href=null==n?e:e+"/../"+n}supportsDOMEvents(){return!0}supportsNativeShadowDOM(){return"function"==typeof document.body.createShadowRoot}getAnimationPrefix(){return this._animationPrefix?this._animationPrefix:""}getTransitionEnd(){return this._transitionEnd?this._transitionEnd:""}supportsAnimation(){return null!=this._animationPrefix&&null!=this._transitionEnd}}{parse(t){throw new Error("parse not implemented")}static makeCurrent(){var t;t=new c,i||(i=t)}hasProperty(t,e){return e in t}setProperty(t,e,n){t[e]=n}getProperty(t,e){return t[e]}invoke(t,e,n){t[e](...n)}logError(t){window.console&&(console.error?console.error(t):console.log(t))}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}get attrToPropMap(){return o}contains(t,e){return l.call(t,e)}querySelector(t,e){return t.querySelector(e)}querySelectorAll(t,e){return t.querySelectorAll(e)}on(t,e,n){t.addEventListener(e,n,!1)}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}createMouseEvent(t){const e=this.getDefaultDocument().createEvent("MouseEvent");return e.initEvent(t,!0,!0),e}createEvent(t){const e=this.getDefaultDocument().createEvent("Event");return e.initEvent(t,!0,!0),e}preventDefault(t){t.preventDefault(),t.returnValue=!1}isPrevented(t){return t.defaultPrevented||null!=t.returnValue&&!t.returnValue}getInnerHTML(t){return t.innerHTML}getTemplateContent(t){return"content"in t&&this.isTemplateElement(t)?t.content:null}getOuterHTML(t){return t.outerHTML}nodeName(t){return t.nodeName}nodeValue(t){return t.nodeValue}type(t){return t.type}content(t){return this.hasProperty(t,"content")?t.content:t}firstChild(t){return t.firstChild}nextSibling(t){return t.nextSibling}parentElement(t){return t.parentNode}childNodes(t){return t.childNodes}childNodesAsList(t){const e=t.childNodes,n=new Array(e.length);for(let a=0;a<e.length;a++)n[a]=e[a];return n}clearNodes(t){for(;t.firstChild;)t.removeChild(t.firstChild)}appendChild(t,e){t.appendChild(e)}removeChild(t,e){t.removeChild(e)}replaceChild(t,e,n){t.replaceChild(e,n)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}insertBefore(t,e,n){t.insertBefore(n,e)}insertAllBefore(t,e,n){n.forEach(n=>t.insertBefore(n,e))}insertAfter(t,e,n){t.insertBefore(n,e.nextSibling)}setInnerHTML(t,e){t.innerHTML=e}getText(t){return t.textContent}setText(t,e){t.textContent=e}getValue(t){return t.value}setValue(t,e){t.value=e}getChecked(t){return t.checked}setChecked(t,e){t.checked=e}createComment(t){return this.getDefaultDocument().createComment(t)}createTemplate(t){const e=this.getDefaultDocument().createElement("template");return e.innerHTML=t,e}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createElementNS(t,e,n){return(n=n||this.getDefaultDocument()).createElementNS(t,e)}createTextNode(t,e){return(e=e||this.getDefaultDocument()).createTextNode(t)}createScriptTag(t,e,n){const a=(n=n||this.getDefaultDocument()).createElement("SCRIPT");return a.setAttribute(t,e),a}createStyleElement(t,e){const n=(e=e||this.getDefaultDocument()).createElement("style");return this.appendChild(n,this.createTextNode(t,e)),n}createShadowRoot(t){return t.createShadowRoot()}getShadowRoot(t){return t.shadowRoot}getHost(t){return t.host}clone(t){return t.cloneNode(!0)}getElementsByClassName(t,e){return t.getElementsByClassName(e)}getElementsByTagName(t,e){return t.getElementsByTagName(e)}classList(t){return Array.prototype.slice.call(t.classList,0)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}hasClass(t,e){return t.classList.contains(e)}setStyle(t,e,n){t.style[e]=n}removeStyle(t,e){t.style[e]=""}getStyle(t,e){return t.style[e]}hasStyle(t,e,n){const a=this.getStyle(t,e)||"";return n?a==n:a.length>0}tagName(t){return t.tagName}attributeMap(t){const e=new Map,n=t.attributes;for(let a=0;a<n.length;a++){const t=n.item(a);e.set(t.name,t.value)}return e}hasAttribute(t,e){return t.hasAttribute(e)}hasAttributeNS(t,e,n){return t.hasAttributeNS(e,n)}getAttribute(t,e){return t.getAttribute(e)}getAttributeNS(t,e,n){return t.getAttributeNS(e,n)}setAttribute(t,e,n){t.setAttribute(e,n)}setAttributeNS(t,e,n,a){t.setAttributeNS(e,n,a)}removeAttribute(t,e){t.removeAttribute(e)}removeAttributeNS(t,e,n){t.removeAttributeNS(e,n)}templateAwareRoot(t){return this.isTemplateElement(t)?this.content(t):t}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}getBoundingClientRect(t){try{return t.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}}getTitle(t){return t.title}setTitle(t,e){t.title=e||""}elementMatches(t,e){return!!this.isElementNode(t)&&(t.matches&&t.matches(e)||t.msMatchesSelector&&t.msMatchesSelector(e)||t.webkitMatchesSelector&&t.webkitMatchesSelector(e))}isTemplateElement(t){return this.isElementNode(t)&&"TEMPLATE"===t.nodeName}isTextNode(t){return t.nodeType===Node.TEXT_NODE}isCommentNode(t){return t.nodeType===Node.COMMENT_NODE}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}hasShadowRoot(t){return null!=t.shadowRoot&&t instanceof HTMLElement}isShadowRoot(t){return t instanceof DocumentFragment}importIntoDoc(t){return document.importNode(this.templateAwareRoot(t),!0)}adoptNode(t){return document.adoptNode(t)}getHref(t){return t.getAttribute("href")}getEventKey(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&d.hasOwnProperty(e)&&(e=d[e]))}return u[e]||e}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=h||(h=document.querySelector("base"),h)?h.getAttribute("href"):null;return null==e?null:(n=e,f||(f=document.createElement("a")),f.setAttribute("href",n),"/"===f.pathname.charAt(0)?f.pathname:"/"+f.pathname);var n}resetBaseElement(){h=null}getUserAgent(){return window.navigator.userAgent}setData(t,e,n){this.setAttribute(t,"data-"+e,n)}getData(t,e){return this.getAttribute(t,"data-"+e)}getComputedStyle(t){return getComputedStyle(t)}supportsWebAnimation(){return"function"==typeof Element.prototype.animate}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return Object(a["ɵparseCookieValue"])(document.cookie,t)}setCookie(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)}}let f,h=null;function g(){return!!window.history.pushState}const p=new r.InjectionToken("TRANSITION_ID"),b=[{provide:r.APP_INITIALIZER,useFactory:function(t,e,n){return()=>{n.get(r.ApplicationInitStatus).donePromise.then(()=>{const n=s();Array.prototype.slice.apply(n.querySelectorAll(e,"style[ng-transition]")).filter(e=>n.getAttribute(e,"ng-transition")===t).forEach(t=>n.remove(t))})}},deps:[p,a.DOCUMENT,r.Injector],multi:!0}];class m{static init(){Object(r.setTestabilityGetter)(new m)}addToWindow(t){r["ɵglobal"].getAngularTestability=(e,n=!0)=>{const a=t.findTestabilityInTree(e,n);if(null==a)throw new Error("Could not find testability for element.");return a},r["ɵglobal"].getAllAngularTestabilities=()=>t.getAllTestabilities(),r["ɵglobal"].getAllAngularRootElements=()=>t.getAllRootElements(),r["ɵglobal"].frameworkStabilizers||(r["ɵglobal"].frameworkStabilizers=[]),r["ɵglobal"].frameworkStabilizers.push(t=>{const e=r["ɵglobal"].getAllAngularTestabilities();let n=e.length,a=!1;const i=function(e){a=a||e,n--,0==n&&t(a)};e.forEach((function(t){t.whenStable(i)}))})}findTestabilityInTree(t,e,n){if(null==e)return null;const a=t.getTestability(e);return null!=a?a:n?s().isShadowRoot(e)?this.findTestabilityInTree(t,s().getHost(e),!0):this.findTestabilityInTree(t,s().parentElement(e),!0):null}}function y(t,e){"undefined"!=typeof COMPILED&&COMPILED||((r["ɵglobal"].ng=r["ɵglobal"].ng||{})[t]=e)}const v=(()=>({ApplicationRef:r.ApplicationRef,NgZone:r.NgZone}))();function x(t){return Object(r.getDebugNode)(t)}function _(t){return y("probe",x),y("coreTokens",Object.assign({},v,(t||[]).reduce((t,e)=>(t[e.name]=e.token,t),{}))),()=>x}const T=new r.InjectionToken("EventManagerPlugins");class O{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let a=0;a<n.length;a++){const e=n[a];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(`No event manager plugin found for event ${t}`)}}class w{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const a=s().getGlobalEventTarget(this._doc,t);if(!a)throw new Error(`Unsupported event target ${a} for event ${e}`);return this.addEventListener(a,e,n)}}class S{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}class I extends S{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement("style");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>s().remove(t))}}const N={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/"},C=/%COMP%/g;function R(t,e,n){for(let a=0;a<e.length;a++){let r=e[a];Array.isArray(r)?R(t,r,n):(r=r.replace(C,t),n.push(r))}return n}function A(t){return e=>{!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}class k{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new E(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.ViewEncapsulation.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new P(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case r.ViewEncapsulation.Native:case r.ViewEncapsulation.ShadowDom:return new M(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=R(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}class E{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(N[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector "${t}" did not match any elements`);return e||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,a){if(a){e=a+":"+e;const r=N[a];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const a=N[n];a?t.removeAttributeNS(a,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,a){a&r.RendererStyleFlags2.DashCase?t.style.setProperty(e,n,a&r.RendererStyleFlags2.Important?"important":""):t.style[e]=n}removeStyle(t,e,n){n&r.RendererStyleFlags2.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,n){D(e,"property"),t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return D(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,A(n)):this.eventManager.addEventListener(t,e,A(n))}}const L=(()=>"@".charCodeAt(0))();function D(t,e){if(t.charCodeAt(0)===L)throw new Error(`Found the synthetic ${e} ${t}. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.`)}class P extends E{constructor(t,e,n,a){super(t),this.component=n;const r=R(a+"-"+n.id,n.styles,[]);e.addStyles(r),this.contentAttr="_ngcontent-%COMP%".replace(C,a+"-"+n.id),this.hostAttr=function(t){return"_nghost-%COMP%".replace(C,t)}(a+"-"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,""),n}}class M extends E{constructor(t,e,n,a){super(t),this.sharedStylesHost=e,this.hostEl=n,this.component=a,this.shadowRoot=a.encapsulation===r.ViewEncapsulation.ShadowDom?n.attachShadow({mode:"open"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const i=R(a.id,a.styles,[]);for(let r=0;r<i.length;r++){const t=document.createElement("style");t.textContent=i[r],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}const q=(()=>"undefined"!=typeof Zone&&Zone.__symbol__||function(t){return"__zone_symbol__"+t})(),j=q("addEventListener"),F=q("removeEventListener"),G={},V="__zone_symbol__propagationStopped",z=(()=>{const t="undefined"!=typeof Zone&&Zone[q("BLACK_LISTED_EVENTS")];if(t){const e={};return t.forEach(t=>{e[t]=t}),e}})(),B=function(t){return!!z&&z.hasOwnProperty(t)},Y=function(t){const e=G[t.type];if(!e)return;const n=this[e];if(!n)return;const a=[t];if(1===n.length){const t=n[0];return t.zone!==Zone.current?t.zone.run(t.handler,this,a):t.handler.apply(this,a)}{const e=n.slice();for(let n=0;n<e.length&&!0!==t[V];n++){const t=e[n];t.zone!==Zone.current?t.zone.run(t.handler,this,a):t.handler.apply(this,a)}}};class H extends w{constructor(t,e,n){super(t),this.ngZone=e,n&&Object(a.isPlatformServer)(n)||this.patchEvent()}patchEvent(){if("undefined"==typeof Event||!Event||!Event.prototype)return;if(Event.prototype.__zone_symbol__stopImmediatePropagation)return;const t=Event.prototype.__zone_symbol__stopImmediatePropagation=Event.prototype.stopImmediatePropagation;Event.prototype.stopImmediatePropagation=function(){this&&(this[V]=!0),t&&t.apply(this,arguments)}}supports(t){return!0}addEventListener(t,e,n){let a=n;if(!t[j]||r.NgZone.isInAngularZone()&&!B(e))t.addEventListener(e,a,!1);else{let n=G[e];n||(n=G[e]=q("ANGULAR"+e+"FALSE"));let r=t[n];const i=r&&r.length>0;r||(r=t[n]=[]);const s=B(e)?Zone.root:Zone.current;if(0===r.length)r.push({zone:s,handler:a});else{let t=!1;for(let e=0;e<r.length;e++)if(r[e].handler===a){t=!0;break}t||r.push({zone:s,handler:a})}i||t[j](e,Y,!1)}return()=>this.removeEventListener(t,e,a)}removeEventListener(t,e,n){let a=t[F];if(!a)return t.removeEventListener.apply(t,[e,n,!1]);let r=G[e],i=r&&t[r];if(!i)return t.removeEventListener.apply(t,[e,n,!1]);let s=!1;for(let o=0;o<i.length;o++)if(i[o].handler===n){s=!0,i.splice(o,1);break}s?0===i.length&&a.apply(t,[e,Y,!1]):t.removeEventListener.apply(t,[e,n,!1])}}const U={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},W=new r.InjectionToken("HammerGestureConfig"),K=new r.InjectionToken("HammerLoader");class ${constructor(){this.events=[],this.overrides={}}buildHammer(t){const e=new Hammer(t,this.options);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(const n in this.overrides)e.get(n).set(this.overrides[n]);return e}}class Z extends w{constructor(t,e,n,a){super(t),this._config=e,this.console=n,this.loader=a}supports(t){return!(!U.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t)||!window.Hammer&&!this.loader&&(this.console.warn(`The "${t}" event cannot be bound because Hammer.JS is not `+"loaded and no custom loader has been specified."),1))}addEventListener(t,e,n){const a=this.manager.getZone();if(e=e.toLowerCase(),!window.Hammer&&this.loader){let a=!1,r=()=>{a=!0};return this.loader().then(()=>{if(!window.Hammer)return this.console.warn("The custom HAMMER_LOADER completed, but Hammer.JS is not present."),void(r=()=>{});a||(r=this.addEventListener(t,e,n))}).catch(()=>{this.console.warn(`The "${e}" event cannot be bound because the custom `+"Hammer.JS loader failed."),r=()=>{}}),()=>{r()}}return a.runOutsideAngular(()=>{const r=this._config.buildHammer(t),i=function(t){a.runGuarded((function(){n(t)}))};return r.on(e,i),()=>{r.off(e,i),"function"==typeof r.destroy&&r.destroy()}})}isCustomEvent(t){return this._config.events.indexOf(t)>-1}}const J=["alt","control","meta","shift"],Q={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};class X extends w{constructor(t){super(t)}supports(t){return null!=X.parseEventName(t)}addEventListener(t,e,n){const a=X.parseEventName(e),r=X.eventCallback(a.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>s().onAndCancel(t,a.domEventName,r))}static parseEventName(t){const e=t.toLowerCase().split("."),n=e.shift();if(0===e.length||"keydown"!==n&&"keyup"!==n)return null;const a=X._normalizeKey(e.pop());let r="";if(J.forEach(t=>{const n=e.indexOf(t);n>-1&&(e.splice(n,1),r+=t+".")}),r+=a,0!=e.length||0===a.length)return null;const i={};return i.domEventName=n,i.fullKey=r,i}static getEventFullKey(t){let e="",n=s().getEventKey(t);return n=n.toLowerCase()," "===n?n="space":"."===n&&(n="dot"),J.forEach(a=>{a!=n&&(0,Q[a])(t)&&(e+=a+".")}),e+=n,e}static eventCallback(t,e,n){return a=>{X.getEventFullKey(a)===t&&n.runGuarded(()=>e(a))}}static _normalizeKey(t){switch(t){case"esc":return"escape";default:return t}}}class tt{}class et extends tt{constructor(t){super(),this._doc=t}sanitize(t,e){if(null==e)return null;switch(t){case r.SecurityContext.NONE:return e;case r.SecurityContext.HTML:return e instanceof at?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),Object(r["ɵ_sanitizeHtml"])(this._doc,String(e)));case r.SecurityContext.STYLE:return e instanceof rt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),Object(r["ɵ_sanitizeStyle"])(e));case r.SecurityContext.SCRIPT:if(e instanceof it)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case r.SecurityContext.URL:return e instanceof ot||e instanceof st?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),Object(r["ɵ_sanitizeUrl"])(String(e)));case r.SecurityContext.RESOURCE_URL:if(e instanceof ot)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see http://g.co/ng/security#xss)`)}}checkNotSafeValue(t,e){if(t instanceof nt)throw new Error(`Required a safe ${e}, got a ${t.getTypeName()} `+"(see http://g.co/ng/security#xss)")}bypassSecurityTrustHtml(t){return new at(t)}bypassSecurityTrustStyle(t){return new rt(t)}bypassSecurityTrustScript(t){return new it(t)}bypassSecurityTrustUrl(t){return new st(t)}bypassSecurityTrustResourceUrl(t){return new ot(t)}}class nt{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}`+" (see http://g.co/ng/security#xss)"}}class at extends nt{getTypeName(){return"HTML"}}class rt extends nt{getTypeName(){return"Style"}}class it extends nt{getTypeName(){return"Script"}}class st extends nt{getTypeName(){return"URL"}}class ot extends nt{getTypeName(){return"ResourceURL"}}const ut=[{provide:r.PLATFORM_ID,useValue:a["ɵPLATFORM_BROWSER_ID"]},{provide:r.PLATFORM_INITIALIZER,useValue:function(){c.makeCurrent(),m.init()},multi:!0},{provide:a.PlatformLocation,useClass:class extends a.PlatformLocation{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=s().getLocation(),this._history=s().getHistory()}getBaseHrefFromDOM(){return s().getBaseHref(this._doc)}onPopState(t){s().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)}onHashChange(t){s().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)}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(t){this.location.pathname=t}pushState(t,e,n){g()?this._history.pushState(t,e,n):this.location.hash=n}replaceState(t,e,n){g()?this._history.replaceState(t,e,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}},deps:[a.DOCUMENT]},{provide:a.DOCUMENT,useFactory:function(){return document},deps:[]}],dt=Object(r.createPlatformFactory)(r.platformCore,"browser",ut);class lt{constructor(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(t){return{ngModule:lt,providers:[{provide:r.APP_ID,useValue:t.appId},{provide:p,useExisting:r.APP_ID},b]}}}"undefined"!=typeof window&&window},cVYH:function(t,e,n){var a=n("hh1v"),r=n("0rvr");t.exports=function(t,e,n){var i,s;return r&&"function"==typeof(i=e.constructor)&&i!==n&&a(s=i.prototype)&&s!==n.prototype&&r(t,s),t}},cp0P:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("HDdC"),r=n("DH7j"),i=n("lJxs"),s=n("XoHu"),o=n("Cfvw");function u(...t){if(1===t.length){const e=t[0];if(Object(r.a)(e))return d(e,null);if(Object(s.a)(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return d(t.map(t=>e[t]),t)}}if("function"==typeof t[t.length-1]){const e=t.pop();return d(t=1===t.length&&Object(r.a)(t[0])?t[0]:t,null).pipe(Object(i.a)(t=>e(...t)))}return d(t,null)}function d(t,e){return new a.a(n=>{const a=t.length;if(0===a)return void n.complete();const r=new Array(a);let i=0,s=0;for(let u=0;u<a;u++){const d=Object(o.a)(t[u]);let l=!1;n.add(d.subscribe({next:t=>{l||(l=!0,s++),r[u]=t},error:t=>n.error(t),complete:()=>{i++,i!==a&&l||(s===a&&n.next(e?e.reduce((t,e,n)=>(t[e]=r[n],t),{}):r),n.complete())}}))}})}},"cq/+":function(t,e,n){var a=n("mc0g")();t.exports=a},crnd:function(t,e){function n(t){return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}))}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="crnd"},cvCv:function(t,e){t.exports=function(t){return function(){return t}}},czMo:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(n("wd/R"))},"d+Og":function(t,e,n){"use strict";var a=n("LvDl");let r=(()=>{class t{constructor(t){if(this.type=t,!this.isValidType())throw new Error("Wrong placement group category type");this.setTypeStates()}isValidType(){return t.VALID_CATEGORIES.includes(this.type)}setTypeStates(){switch(this.type){case t.CATEGORY_CLEAN:this.states=["active","clean"];break;case t.CATEGORY_WORKING:this.states=["activating","backfill_wait","backfilling","creating","deep","degraded","forced_backfill","forced_recovery","peering","peered","recovering","recovery_wait","repair","scrubbing","snaptrim","snaptrim_wait"];break;case t.CATEGORY_WARNING:this.states=["backfill_toofull","backfill_unfound","down","incomplete","inconsistent","recovery_toofull","recovery_unfound","remapped","snaptrim_error","stale","undersized"];break;default:this.states=[]}}}return t.CATEGORY_CLEAN="clean",t.CATEGORY_WORKING="working",t.CATEGORY_WARNING="warning",t.CATEGORY_UNKNOWN="unknown",t.VALID_CATEGORIES=[t.CATEGORY_CLEAN,t.CATEGORY_WORKING,t.CATEGORY_WARNING,t.CATEGORY_UNKNOWN],t})();var i=n("8Y7J"),s=n("kJI8");n.d(e,"a",(function(){return o}));let o=(()=>{class t{constructor(){this.categories=this.createCategories()}getAllTypes(){return r.VALID_CATEGORIES}getTypeByStates(t){const e=this.getPgStatesFromText(t);if(0===e.length)return r.CATEGORY_UNKNOWN;const n=a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(t=>a.intersection(this.categories[t].states,e).length));if(n[r.CATEGORY_WARNING]>0)return r.CATEGORY_WARNING;const i=n[r.CATEGORY_WORKING];return e.length>n[r.CATEGORY_CLEAN]+i?r.CATEGORY_UNKNOWN:i?r.CATEGORY_WORKING:r.CATEGORY_CLEAN}createCategories(){return a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(t=>new r(t)))}getPgStatesFromText(t){const e=t.replace(/[^a-z]+/g," ").trim().split(" ");return a.uniq(e)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:s.a}),t})()},dApe:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("8Y7J"),r=n("2vnA"),i=n("MP8s"),s=n("X+05"),o=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},u=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},d=function(){function t(t){var e=this;this.treeModel=t,this.yBlocks=0,this.x=0,this.viewportHeight=null,this.viewport=null,t.virtualScroll=this,this._dispose=[Object(r.b)((function(){return e.fixScroll()}))]}return Object.defineProperty(t.prototype,"y",{get:function(){return 150*this.yBlocks},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalHeight",{get:function(){return this.treeModel.virtualRoot?this.treeModel.virtualRoot.height:0},enumerable:!0,configurable:!0}),t.prototype.fireEvent=function(t){this.treeModel.fireEvent(t)},t.prototype.init=function(){var t=this,e=this.recalcPositions.bind(this);e(),this._dispose=this._dispose.concat([Object(r.e)((function(){return t.treeModel.roots}),e),Object(r.e)((function(){return t.treeModel.expandedNodeIds}),e),Object(r.e)((function(){return t.treeModel.hiddenNodeIds}),e)]),this.treeModel.subscribe(s.a.loadNodeChildren,e)},t.prototype.isEnabled=function(){return this.treeModel.options.useVirtualScroll},t.prototype._setYBlocks=function(t){this.yBlocks=t},t.prototype.recalcPositions=function(){this.treeModel.virtualRoot.height=this._getPositionAfter(this.treeModel.getVisibleRoots(),0)},t.prototype._getPositionAfter=function(t,e){var n=this,a=e;return t.forEach((function(t){t.position=a,a=n._getPositionAfterNode(t,a)})),a},t.prototype._getPositionAfterNode=function(t,e){var n=t.getSelfHeight()+e;return t.children&&t.isExpanded&&(n=this._getPositionAfter(t.visibleChildren,n)),t.height=n-e,n},t.prototype.clear=function(){this._dispose.forEach((function(t){return t()}))},t.prototype.setViewport=function(t){Object.assign(this,{viewport:t,x:t.scrollLeft,yBlocks:Math.round(t.scrollTop/150),viewportHeight:t.getBoundingClientRect?t.getBoundingClientRect().height:0})},t.prototype.scrollIntoView=function(t,e,n){if(void 0===n&&(n=!0),t.options.scrollContainer){var a=t.options.scrollContainer,r=a.getBoundingClientRect().height,i=a.getBoundingClientRect().top,s=this.viewport.getBoundingClientRect().top+t.position-i;(e||s<a.scrollTop||s+t.getSelfHeight()>a.scrollTop+r)&&(a.scrollTop=n?s-r/2:s)}else(e||t.position<this.y||t.position+t.getSelfHeight()>this.y+this.viewportHeight)&&this.viewport&&(this.viewport.scrollTop=n?t.position-this.viewportHeight/2:t.position,this._setYBlocks(Math.floor(this.viewport.scrollTop/150)))},t.prototype.getViewportNodes=function(t){var e=this;if(!t)return[];var n=t.filter((function(t){return!t.isHidden}));if(!this.isEnabled())return n;if(!this.viewportHeight||!n.length)return[];var a=l(n,(function(t){return t.position+500>e.y||t.position+t.height>e.y})),r=l(n,(function(t){return t.position-500>e.y+e.viewportHeight}),a),i=[];if(r-a>(1e3+this.viewportHeight)/n[0].treeModel.options.options.nodeHeight)return[];for(var s=a;s<=r;s++)i.push(n[s]);return i},t.prototype.fixScroll=function(){var t=Math.max(0,this.totalHeight-this.viewportHeight);this.y<0&&this._setYBlocks(0),this.y>t&&this._setYBlocks(t/150)},o([r.d,u("design:type",Object)],t.prototype,"yBlocks",void 0),o([r.d,u("design:type",Object)],t.prototype,"x",void 0),o([r.d,u("design:type",Object)],t.prototype,"viewportHeight",void 0),o([r.c,u("design:type",Object),u("design:paramtypes",[])],t.prototype,"y",null),o([r.c,u("design:type",Object),u("design:paramtypes",[])],t.prototype,"totalHeight",null),o([r.a,u("design:type",Function),u("design:paramtypes",[Object]),u("design:returntype",void 0)],t.prototype,"_setYBlocks",null),o([r.a,u("design:type",Function),u("design:paramtypes",[]),u("design:returntype",void 0)],t.prototype,"recalcPositions",null),o([r.a,u("design:type",Function),u("design:paramtypes",[Object]),u("design:returntype",void 0)],t.prototype,"setViewport",null),o([r.a,u("design:type",Function),u("design:paramtypes",[Object,Object,Object]),u("design:returntype",void 0)],t.prototype,"scrollIntoView",null),o([Object(a.Injectable)(),u("design:paramtypes",[i.a])],t)}();function l(t,e,n){void 0===n&&(n=0);for(var a=n,r=t.length-1;a!==r;){var i=Math.floor((a+r)/2);e(t[i])?r=i:a=a===i?r:i}return a}},"dBg+":function(t,e){e.f=Object.getOwnPropertySymbols},dD9F:function(t,e,n){var a=n("NykK"),r=n("shjB"),i=n("ExA7"),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,t.exports=function(t){return i(t)&&r(t.length)&&!!s[a(t)]}},dEH0:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return`${t} ms`}}},dNwA:function(t,e,n){!function(t){"use strict";t.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("wd/R"))},dTAl:function(t,e,n){var a=n("GoyQ"),r=Object.create,i=function(){function t(){}return function(e){if(!a(e))return{};if(r)return r(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=i},dgut:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("NEZu");n("Fgil");class r{constructor(t){this.dimlessBinaryPipe=t,this.style={height:"30px",width:"100px"},this.colors=[{backgroundColor:"rgba(40,140,234,0.2)",borderColor:"rgba(40,140,234,1)",pointBackgroundColor:"rgba(40,140,234,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(40,140,234,0.8)"}],this.options={animation:{duration:0},responsive:!0,maintainAspectRatio:!1,legend:{display:!1},elements:{line:{borderWidth:1}},tooltips:{enabled:!1,mode:"index",intersect:!1,custom:void 0,callbacks:{label:t=>this.isBinary?this.dimlessBinaryPipe.transform(t.yLabel):t.yLabel,title:()=>""}},scales:{yAxes:[{display:!1}],xAxes:[{display:!1}]}},this.datasets=[{data:[]}],this.labels=[]}ngOnInit(){const t=new a.a(this.chartCanvasRef,this.chartTooltipRef,(t,e)=>e+t.caretX+"px",t=>t.caretY-t.height-t.yPadding-5+"px");t.customColors={backgroundColor:this.colors[0].pointBackgroundColor,borderColor:this.colors[0].pointBorderColor},this.options.tooltips.custom=e=>{t.customTooltips(e)}}ngOnChanges(t){this.datasets[0].data=t.data.currentValue,this.labels=[...Array(t.data.currentValue.length)]}}},dt0z:function(t,e,n){var a=n("zoYe");t.exports=function(t){return null==t?"":a(t)}},"e+ae":function(t,e,n){!function(t){"use strict";var e="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function a(t){return t>1&&t<5}function r(t,e,n,r){var i=t+" ";switch(n){case"s":return e||r?"pár sekúnd":"pár sekundami";case"ss":return e||r?i+(a(t)?"sekundy":"sekúnd"):i+"sekundami";case"m":return e?"minúta":r?"minútu":"minútou";case"mm":return e||r?i+(a(t)?"minúty":"minút"):i+"minútami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?i+(a(t)?"hodiny":"hodín"):i+"hodinami";case"d":return e||r?"deň":"dňom";case"dd":return e||r?i+(a(t)?"dni":"dní"):i+"dňami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?i+(a(t)?"mesiace":"mesiacov"):i+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?i+(a(t)?"roky":"rokov"):i+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_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ľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},e4Nc:function(t,e,n){var a=n("fGT3"),r=n("k+1r"),i=n("JHgL"),s=n("pSRY"),o=n("H8j4");function u(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}u.prototype.clear=a,u.prototype.delete=r,u.prototype.get=i,u.prototype.has=s,u.prototype.set=o,t.exports=u},e5cp:function(t,e,n){var a=n("fmRc"),r=n("or5M"),i=n("HDyB"),s=n("seXi"),o=n("QqLw"),u=n("Z0cm"),d=n("DSRE"),l=n("c6wG"),c="[object Object]",f=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,h,g,p){var b=u(t),m=u(e),y=b?"[object Array]":o(t),v=m?"[object Array]":o(e),x=(y="[object Arguments]"==y?c:y)==c,_=(v="[object Arguments]"==v?c:v)==c,T=y==v;if(T&&d(t)){if(!d(e))return!1;b=!0,x=!1}if(T&&!x)return p||(p=new a),b||l(t)?r(t,e,n,h,g,p):i(t,e,y,n,h,g,p);if(!(1&n)){var O=x&&f.call(t,"__wrapped__"),w=_&&f.call(e,"__wrapped__");if(O||w){var S=O?t.value():t,I=w?e.value():e;return p||(p=new a),g(S,I,n,h,p)}}return!!T&&(p||(p=new a),s(t,e,n,h,g,p))}},"eDl+":function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},eIep:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("l7GE"),r=n("51Dv"),i=n("ZUHj"),s=n("lJxs"),o=n("Cfvw");function u(t,e){return"function"==typeof e?n=>n.pipe(u((n,a)=>Object(o.a)(t(n,a)).pipe(Object(s.a)((t,r)=>e(n,t,a,r))))):e=>e.lift(new d(t))}class d{constructor(t){this.project=t}call(t,e){return e.subscribe(new l(t,this.project))}}class l extends a.a{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this._innerSub(e,t,n)}_innerSub(t,e,n){const a=this.innerSubscription;a&&a.unsubscribe();const s=new r.a(this,e,n),o=this.destination;o.add(s),this.innerSubscription=Object(i.a)(this,t,void 0,void 0,s),this.innerSubscription!==s&&o.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;t&&!t.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=null}notifyComplete(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&super._complete()}notifyNext(t,e,n,a,r){this.destination.next(e)}}},eTJe:function(t,e,n){"use strict";var a=n("s7LF"),r=n("LvDl"),i=n("cp0P"),s=(n("SgmB"),n("ZDA6"),n("sne2"),n("mtw6")),o=n("QFaf"),u=n("1Ni5"),d=(n("9nlD"),function(t){return t.editing="editing",t}({}));class l{}n.d(e,"a",(function(){return c}));class c{constructor(t,e,n,a,r,i,s){this.route=t,this.router=e,this.roleService=n,this.scopeService=a,this.notificationService=r,this.i18n=i,this.actionLabels=s,this.scopes=[],this.scopes_permissions=[],this.roleFormMode=d,this.resource=this.i18n("role"),this.createForm(),this.listenToChanges()}createForm(){this.roleForm=new o.a({name:new a.i("",{validators:[a.B.required],asyncValidators:[u.a.unique(this.roleService.exists,this.roleService)]}),description:new a.i(""),scopes_permissions:new a.i({})})}ngOnInit(){this.columns=[{prop:"scope",name:this.i18n("All"),flexGrow:2,cellTemplate:this.cellScopeCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl}],this.router.url.startsWith("/user-management/roles/edit")?(this.mode=this.roleFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.mode===this.roleFormMode.editing?this.initEdit():this.initCreate()}initCreate(){this.scopeService.list().subscribe(t=>{this.scopes=t,this.roleForm.get("scopes_permissions").setValue({})})}initEdit(){this.roleForm.get("name").disable(),this.route.params.subscribe(t=>{const e=[];e.push(this.scopeService.list()),e.push(this.roleService.get(t.name)),Object(i.a)(e).subscribe(t=>{this.scopes=t[0],["name","description","scopes_permissions"].forEach(e=>this.roleForm.get(e).setValue(t[1][e]))})})}listenToChanges(){this.roleForm.get("scopes_permissions").valueChanges.subscribe(t=>{const e=[];r.each(this.scopes,n=>{const a={read:!1,create:!1,update:!1,delete:!1};a.scope=n,n in t&&r.each(t[n],t=>{a[t]=!0}),e.push(a)}),this.scopes_permissions=e})}isRowChecked(t){const e=r.find(this.scopes_permissions,e=>e.scope===t);return!r.isUndefined(e)&&e.read&&e.create&&e.update&&e.delete}isHeaderChecked(t){let e=[t];return"scope"===t&&(e=["read","create","update","delete"]),e.every(t=>this.scopes_permissions.every(e=>e[t]))}onClickCellCheckbox(t,e,n=null){const a=r.cloneDeep(this.roleForm.getValue("scopes_permissions"));let i=[e];"scope"===e&&(i=["read","create","update","delete"]),t in a||(a[t]=[]),n&&n.target.checked||!r.isEqual(i.sort(),r.intersection(a[t],i).sort())?a[t]=r.union(a[t],i):(a[t]=r.difference(a[t],i),r.isEmpty(a[t])&&r.unset(a,t)),this.roleForm.get("scopes_permissions").setValue(a)}onClickHeaderCheckbox(t,e){const n=r.cloneDeep(this.roleForm.getValue("scopes_permissions"));let a=[t];"scope"===t&&(a=["read","create","update","delete"]),r.each(a,t=>{r.each(this.scopes,a=>{e.target.checked?n[a]=r.union(n[a],[t]):(n[a]=r.difference(n[a],[t]),r.isEmpty(n[a])&&r.unset(n,a))})}),this.roleForm.get("scopes_permissions").setValue(n)}getRequest(){const t=new l;return["name","description","scopes_permissions"].forEach(e=>t[e]=this.roleForm.get(e).value),t}createAction(){const t=this.getRequest();this.roleService.create(t).subscribe(()=>{this.notificationService.show(s.a.success,this.i18n("Created role '{{role_name}}'",{role_name:t.name})),this.router.navigate(["/user-management/roles"])},()=>{this.roleForm.setErrors({cdSubmitButton:!0})})}editAction(){const t=this.getRequest();this.roleService.update(t).subscribe(()=>{this.notificationService.show(s.a.success,this.i18n("Updated role '{{role_name}}'",{role_name:t.name})),this.router.navigate(["/user-management/roles"])},()=>{this.roleForm.setErrors({cdSubmitButton:!0})})}submit(){this.mode===this.roleFormMode.editing?this.editAction():this.createAction()}}},eUgh:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length,r=Array(a);++n<a;)r[n]=e(t[n],n,t);return r}},ebwN:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Map");t.exports=a},efK2:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e,n){return a.isString(t)?(n=a.defaultTo(n,""),a.truncate(t,{length:e,omission:n})):t}}},"ej+x":function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("lOp/"),r=n("8Y7J"),i=n("IheW");let s=(()=>{class t{constructor(t,e){this.http=t,this.timerService=e,this.API_URL="api/feature_toggles",this.REFRESH_INTERVAL=3e4,this.featureToggleMap$=this.timerService.get(()=>this.http.get(this.API_URL),this.REFRESH_INTERVAL)}get(){return this.featureToggleMap$}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t(r["ɵɵinject"](i.c),r["ɵɵinject"](a.a))},token:t,providedIn:"root"}),t})()},ekgI:function(t,e,n){var a=n("YESw"),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return a?void 0!==e[t]:r.call(e,t)}},ewvW:function(t,e,n){var a=n("HYAF");t.exports=function(t){return Object(a(t))}},f5p1:function(t,e,n){var a=n("2oRo"),r=n("iSVu"),i=a.WeakMap;t.exports="function"==typeof i&&/native code/.test(r(i))},f95s:function(t,e,n){"use strict";n.d(e,"a",(function(){return p}));var a=n("2vnA"),r=n("X+05"),i=n("afOK"),s=n.n(i),o=n("RBan"),u=n.n(o),d=n("MJIl"),l=n.n(d),c=n("Jlc5"),f=n.n(c),h=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},g=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},p=function(){function t(t,e,n,a){var r=this;this.data=t,this.parent=e,this.treeModel=n,this.position=0,this.allowDrop=function(t,e){return r.options.allowDrop(t,{parent:r,index:0},e)},this.allowDragoverStyling=function(){return r.options.allowDragoverStyling},null==this.id&&(this.id=Math.floor(1e13*Math.random())),this.index=a,this.getField("children")&&this._initChildren(),this.autoLoadChildren()}return Object.defineProperty(t.prototype,"isHidden",{get:function(){return this.treeModel.isHidden(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isExpanded",{get:function(){return this.treeModel.isExpanded(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isActive",{get:function(){return this.treeModel.isActive(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFocused",{get:function(){return this.treeModel.isNodeFocused(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this.isSelectable()?this.treeModel.isSelected(this):l()(this.children,(function(t){return t.isSelected}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAllSelected",{get:function(){return this.isSelectable()?this.treeModel.isSelected(this):f()(this.children,(function(t){return t.isAllSelected}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isPartiallySelected",{get:function(){return this.isSelected&&!this.isAllSelected},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"level",{get:function(){return this.parent?this.parent.level+1:0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return this.parent?this.parent.path.concat([this.id]):[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"elementRef",{get:function(){throw"Element Ref is no longer supported since introducing virtual scroll\n\n      You may use a template to obtain a reference to the element"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"originalNode",{get:function(){return this._originalNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasChildren",{get:function(){return!!(this.getField("hasChildren")||this.children&&this.children.length>0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCollapsed",{get:function(){return!this.isExpanded},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLeaf",{get:function(){return!this.hasChildren},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isRoot",{get:function(){return this.parent.data.virtual},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"realParent",{get:function(){return this.isRoot?null:this.parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this.treeModel.options},enumerable:!0,configurable:!0}),t.prototype.fireEvent=function(t){this.treeModel.fireEvent(t)},Object.defineProperty(t.prototype,"displayField",{get:function(){return this.getField("display")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this.getField("id")},set:function(t){this.setField("id",t)},enumerable:!0,configurable:!0}),t.prototype.getField=function(t){return this.data[this.options[t+"Field"]]},t.prototype.setField=function(t,e){this.data[this.options[t+"Field"]]=e},t.prototype._findAdjacentSibling=function(t,e){void 0===e&&(e=!1);var n=this._getParentsChildren(e),a=n.indexOf(this);return n.length>a+t?n[a+t]:null},t.prototype.findNextSibling=function(t){return void 0===t&&(t=!1),this._findAdjacentSibling(1,t)},t.prototype.findPreviousSibling=function(t){return void 0===t&&(t=!1),this._findAdjacentSibling(-1,t)},t.prototype.getVisibleChildren=function(){return this.visibleChildren},Object.defineProperty(t.prototype,"visibleChildren",{get:function(){return(this.children||[]).filter((function(t){return!t.isHidden}))},enumerable:!0,configurable:!0}),t.prototype.getFirstChild=function(t){void 0===t&&(t=!1);var e=t?this.visibleChildren:this.children;return s()(e||[])},t.prototype.getLastChild=function(t){void 0===t&&(t=!1);var e=t?this.visibleChildren:this.children;return u()(e||[])},t.prototype.findNextNode=function(t,e){return void 0===t&&(t=!0),void 0===e&&(e=!1),t&&this.isExpanded&&this.getFirstChild(e)||this.findNextSibling(e)||this.parent&&this.parent.findNextNode(!1,e)},t.prototype.findPreviousNode=function(t){void 0===t&&(t=!1);var e=this.findPreviousSibling(t);return e?e._getLastOpenDescendant(t):this.realParent},t.prototype._getLastOpenDescendant=function(t){void 0===t&&(t=!1);var e=this.getLastChild(t);return this.isCollapsed||!e?this:e._getLastOpenDescendant(t)},t.prototype._getParentsChildren=function(t){return void 0===t&&(t=!1),this.parent&&(t?this.parent.getVisibleChildren():this.parent.children)||[]},t.prototype.getIndexInParent=function(t){return void 0===t&&(t=!1),this._getParentsChildren(t).indexOf(this)},t.prototype.isDescendantOf=function(t){return this===t||this.parent&&this.parent.isDescendantOf(t)},t.prototype.getNodePadding=function(){return this.options.levelPadding*(this.level-1)+"px"},t.prototype.getClass=function(){return[this.options.nodeClass(this),"tree-node-level-"+this.level].join(" ")},t.prototype.onDrop=function(t){this.mouseAction("drop",t.event,{from:t.element,to:{parent:this,index:0,dropOnNode:!0}})},t.prototype.allowDrag=function(){return this.options.allowDrag(this)},t.prototype.loadNodeChildren=function(){var t=this;return this.options.getChildren?Promise.resolve(this.options.getChildren(this)).then((function(e){e&&(t.setField("children",e),t._initChildren(),t.options.useTriState&&t.treeModel.isSelected(t)&&t.setIsSelected(!0),t.children.forEach((function(t){t.getField("isExpanded")&&t.hasChildren&&t.expand()})))})).then((function(){t.fireEvent({eventName:r.a.loadNodeChildren,node:t})})):Promise.resolve()},t.prototype.expand=function(){return this.isExpanded||this.toggleExpanded(),this},t.prototype.collapse=function(){return this.isExpanded&&this.toggleExpanded(),this},t.prototype.doForAll=function(t){var e=this;Promise.resolve(t(this)).then((function(){e.children&&e.children.forEach((function(e){return e.doForAll(t)}))}))},t.prototype.expandAll=function(){this.doForAll((function(t){return t.expand()}))},t.prototype.collapseAll=function(){this.doForAll((function(t){return t.collapse()}))},t.prototype.ensureVisible=function(){return this.realParent&&(this.realParent.expand(),this.realParent.ensureVisible()),this},t.prototype.toggleExpanded=function(){return this.setIsExpanded(!this.isExpanded),this},t.prototype.setIsExpanded=function(t){return this.hasChildren&&this.treeModel.setExpandedNode(this,t),this},t.prototype.autoLoadChildren=function(){var t=this;this.handler=Object(a.e)((function(){return t.isExpanded}),(function(e){!t.children&&t.hasChildren&&e&&t.loadNodeChildren()}),{fireImmediately:!0})},t.prototype.dispose=function(){this.children&&this.children.forEach((function(t){return t.dispose()})),this.handler&&this.handler(),this.parent=null,this.children=null},t.prototype.setIsActive=function(t,e){return void 0===e&&(e=!1),this.treeModel.setActiveNode(this,t,e),t&&this.focus(this.options.scrollOnActivate),this},t.prototype.isSelectable=function(){return this.isLeaf||!this.children||!this.options.useTriState},t.prototype.setIsSelected=function(t){return this.isSelectable()?this.treeModel.setSelectedNode(this,t):this.visibleChildren.forEach((function(e){return e.setIsSelected(t)})),this},t.prototype.toggleSelected=function(){return this.setIsSelected(!this.isSelected),this},t.prototype.toggleActivated=function(t){return void 0===t&&(t=!1),this.setIsActive(!this.isActive,t),this},t.prototype.setActiveAndVisible=function(t){return void 0===t&&(t=!1),this.setIsActive(!0,t).ensureVisible(),setTimeout(this.scrollIntoView.bind(this)),this},t.prototype.scrollIntoView=function(t){void 0===t&&(t=!1),this.treeModel.virtualScroll.scrollIntoView(this,t)},t.prototype.focus=function(t){void 0===t&&(t=!0);var e=this.treeModel.getFocusedNode();return this.treeModel.setFocusedNode(this),t&&this.scrollIntoView(),e&&this.fireEvent({eventName:r.a.blur,node:e}),this.fireEvent({eventName:r.a.focus,node:this}),this},t.prototype.blur=function(){var t=this.treeModel.getFocusedNode();return this.treeModel.setFocusedNode(null),t&&this.fireEvent({eventName:r.a.blur,node:this}),this},t.prototype.setIsHidden=function(t){this.treeModel.setIsHidden(this,t)},t.prototype.hide=function(){this.setIsHidden(!0)},t.prototype.show=function(){this.setIsHidden(!1)},t.prototype.mouseAction=function(t,e,n){void 0===n&&(n=null),this.treeModel.setFocus(!0);var a=this.options.actionMapping.mouse[t];a&&a(this.treeModel,this,e,n)},t.prototype.getSelfHeight=function(){return this.options.nodeHeight(this)},t.prototype._initChildren=function(){var e=this;this.children=this.getField("children").map((function(n,a){return new t(n,e,e.treeModel,a)}))},h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isHidden",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isExpanded",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isActive",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isFocused",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isSelected",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isAllSelected",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"isPartiallySelected",null),h([a.d,g("design:type",Array)],t.prototype,"children",void 0),h([a.d,g("design:type",Number)],t.prototype,"index",void 0),h([a.d,g("design:type",Object)],t.prototype,"position",void 0),h([a.d,g("design:type",Number)],t.prototype,"height",void 0),h([a.c,g("design:type",Number),g("design:paramtypes",[])],t.prototype,"level",null),h([a.c,g("design:type",Array),g("design:paramtypes",[])],t.prototype,"path",null),h([a.c,g("design:type",Object),g("design:paramtypes",[])],t.prototype,"visibleChildren",null),h([a.a,g("design:type",Function),g("design:paramtypes",[Object]),g("design:returntype",void 0)],t.prototype,"setIsSelected",null),h([a.a,g("design:type",Function),g("design:paramtypes",[]),g("design:returntype",void 0)],t.prototype,"_initChildren",null),t}()},fGT3:function(t,e,n){var a=n("4kuk"),r=n("Xi7e"),i=n("ebwN");t.exports=function(){this.size=0,this.__data__={hash:new a,map:new(i||r),string:new a}}},fHMY:function(t,e,n){var a,r=n("glrk"),i=n("N+g0"),s=n("eDl+"),o=n("0BK2"),u=n("G+Rx"),d=n("zBJ4"),l=n("93I0")("IE_PROTO"),c=function(){},f=function(t){return"<script>"+t+"<\/script>"},h=function(){try{a=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var t,e;h=a?function(t){t.write(f("")),t.close();var e=t.parentWindow.Object;return t=null,e}(a):((e=d("iframe")).style.display="none",u.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(f("document.F=Object")),t.close(),t.F);for(var n=s.length;n--;)delete h.prototype[s[n]];return h()};o[l]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(c.prototype=r(t),n=new c,c.prototype=null,n[l]=t):n=h(),void 0===e?n:i(n,e)}},"fR/l":function(t,e,n){var a=n("CH3K"),r=n("Z0cm");t.exports=function(t,e,n){var i=e(t);return r(t)?i:a(i,n(t))}},fdAy:function(t,e,n){"use strict";var a=n("I+eb"),r=n("ntOU"),i=n("4WOD"),s=n("0rvr"),o=n("1E5z"),u=n("kRJp"),d=n("busE"),l=n("tiKp"),c=n("xDBR"),f=n("P4y1"),h=n("rpNk"),g=h.IteratorPrototype,p=h.BUGGY_SAFARI_ITERATORS,b=l("iterator"),m=function(){return this};t.exports=function(t,e,n,l,h,y,v){r(n,e,l);var x,_,T,O=function(t){if(t===h&&C)return C;if(!p&&t in I)return I[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},w=e+" Iterator",S=!1,I=t.prototype,N=I[b]||I["@@iterator"]||h&&I[h],C=!p&&N||O(h),R="Array"==e&&I.entries||N;if(R&&(x=i(R.call(new t)),g!==Object.prototype&&x.next&&(c||i(x)===g||(s?s(x,g):"function"!=typeof x[b]&&u(x,b,m)),o(x,w,!0,!0),c&&(f[w]=m))),"values"==h&&N&&"values"!==N.name&&(S=!0,C=function(){return N.call(this)}),c&&!v||I[b]===C||u(I,b,C),f[e]=C,h)if(_={values:O("values"),keys:y?C:O("keys"),entries:O("entries")},v)for(T in _)!p&&!S&&T in I||d(I,T,_[T]);else a({target:e,proto:!0,forced:p||S},_);return _}},fmRc:function(t,e,n){var a=n("Xi7e"),r=n("77Zs"),i=n("L8xA"),s=n("gCq4"),o=n("VaNO"),u=n("0Cz8");function d(t){var e=this.__data__=new a(t);this.size=e.size}d.prototype.clear=r,d.prototype.delete=i,d.prototype.get=s,d.prototype.has=o,d.prototype.set=u,t.exports=d},ftKO:function(t,e){t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},fxL3:function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var a=n("8Y7J"),r=n("MP8s"),i=n("gk6K"),s=n("mfoh"),o=n("HIU9"),u=n("ijCd"),d=n.n(u),l=n("JZM8"),c=n.n(l),f=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},h=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},g=function(){function t(t,e){var n=this;this.treeModel=t,this.treeDraggedElement=e,t.eventNames.forEach((function(t){return n[t]=new a.EventEmitter})),t.subscribeToState((function(t){return n.stateChange.emit(t)}))}return Object.defineProperty(t.prototype,"nodes",{set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"focused",{set:function(t){this.treeModel.setFocus(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{set:function(t){this.treeModel.setState(t)},enumerable:!0,configurable:!0}),t.prototype.onKeydown=function(t){if(this.treeModel.isFocused&&!d()(["input","textarea"],document.activeElement.tagName.toLowerCase())){var e=this.treeModel.getFocusedNode();this.treeModel.performKeyAction(e,t)}},t.prototype.onMousedown=function(t){(function t(e,n){return!e||e.localName!==n&&t(e.parentElement,n)})(t.target,"tree-root")&&this.treeModel.setFocus(!1)},t.prototype.ngOnChanges=function(t){(t.options||t.nodes)&&this.treeModel.setData({options:t.options&&t.options.currentValue,nodes:t.nodes&&t.nodes.currentValue,events:c()(this,this.treeModel.eventNames)})},t.prototype.sizeChanged=function(){this.viewportComponent.setViewport()},f([Object(a.ContentChild)("loadingTemplate",{static:!1}),h("design:type",a.TemplateRef)],t.prototype,"loadingTemplate",void 0),f([Object(a.ContentChild)("treeNodeTemplate",{static:!1}),h("design:type",a.TemplateRef)],t.prototype,"treeNodeTemplate",void 0),f([Object(a.ContentChild)("treeNodeWrapperTemplate",{static:!1}),h("design:type",a.TemplateRef)],t.prototype,"treeNodeWrapperTemplate",void 0),f([Object(a.ContentChild)("treeNodeFullTemplate",{static:!1}),h("design:type",a.TemplateRef)],t.prototype,"treeNodeFullTemplate",void 0),f([Object(a.ViewChild)("viewport",{static:!1}),h("design:type",o.a)],t.prototype,"viewportComponent",void 0),f([Object(a.Input)(),h("design:type",Array),h("design:paramtypes",[Array])],t.prototype,"nodes",null),f([Object(a.Input)(),h("design:type",s.b),h("design:paramtypes",[s.b])],t.prototype,"options",null),f([Object(a.Input)(),h("design:type",Boolean),h("design:paramtypes",[Boolean])],t.prototype,"focused",null),f([Object(a.Input)(),h("design:type",Object),h("design:paramtypes",[Object])],t.prototype,"state",null),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"toggleExpanded",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"activate",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"deactivate",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"nodeActivate",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"nodeDeactivate",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"select",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"deselect",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"focus",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"blur",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"updateData",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"initialized",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"moveNode",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"copyNode",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"loadNodeChildren",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"changeFilter",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"event",void 0),f([Object(a.Output)(),h("design:type",Object)],t.prototype,"stateChange",void 0),f([Object(a.HostListener)("body: keydown",["$event"]),h("design:type",Function),h("design:paramtypes",[Object]),h("design:returntype",void 0)],t.prototype,"onKeydown",null),f([Object(a.HostListener)("body: mousedown",["$event"]),h("design:type",Function),h("design:paramtypes",[Object]),h("design:returntype",void 0)],t.prototype,"onMousedown",null),f([Object(a.Component)({selector:"Tree, tree-root",providers:[r.a],styles:[],template:'\n      <tree-viewport #viewport>\n          <div\n                  class="angular-tree-component"\n                  [class.node-dragging]="treeDraggedElement.isDragging()"\n                  [class.angular-tree-component-rtl]="treeModel.options.rtl">\n              <tree-node-collection\n                      *ngIf="treeModel.roots"\n                      [nodes]="treeModel.roots"\n                      [treeModel]="treeModel"\n                      [templates]="{\n            loadingTemplate: loadingTemplate,\n            treeNodeTemplate: treeNodeTemplate,\n            treeNodeWrapperTemplate: treeNodeWrapperTemplate,\n            treeNodeFullTemplate: treeNodeFullTemplate\n          }">\n              </tree-node-collection>\n              <tree-node-drop-slot\n                      class="empty-tree-drop-slot"\n                      *ngIf="treeModel.isEmptyTree()"\n                      [dropIndex]="0"\n                      [node]="treeModel.virtualRoot">\n              </tree-node-drop-slot>\n          </div>\n      </tree-viewport>\n  '}),h("design:paramtypes",[r.a,i.a])],t)}()},fzPg:function(t,e,n){!function(t){"use strict";t.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".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:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n("wd/R"))},"g6v/":function(t,e,n){var a=n("0Dky");t.exports=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},gCq4:function(t,e){t.exports=function(t){return this.__data__.get(t)}},gFfm:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a&&!1!==e(t[n],n,t););return t}},gRHU:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("2fFW"),r=n("NJ4a");const i={closed:!0,next(t){},error(t){if(a.a.useDeprecatedSynchronousErrorHandling)throw t;Object(r.a)(t)},complete(){}}},gVVK:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===t?e?"sekundo":"sekundi":2===t?e||a?"sekundi":"sekundah":t<5?e||a?"sekunde":"sekundah":"sekund");case"m":return e?"ena minuta":"eno minuto";case"mm":return r+(1===t?e?"minuta":"minuto":2===t?e||a?"minuti":"minutama":t<5?e||a?"minute":"minutami":e||a?"minut":"minutami");case"h":return e?"ena ura":"eno uro";case"hh":return r+(1===t?e?"ura":"uro":2===t?e||a?"uri":"urama":t<5?e||a?"ure":"urami":e||a?"ur":"urami");case"d":return e||a?"en dan":"enim dnem";case"dd":return r+(1===t?e||a?"dan":"dnem":2===t?e||a?"dni":"dnevoma":e||a?"dni":"dnevi");case"M":return e||a?"en mesec":"enim mesecem";case"MM":return r+(1===t?e||a?"mesec":"mesecem":2===t?e||a?"meseca":"mesecema":t<5?e||a?"mesece":"meseci":e||a?"mesecev":"meseci");case"y":return e||a?"eno leto":"enim letom";case"yy":return r+(1===t?e||a?"leto":"letom":2===t?e||a?"leti":"letoma":t<5?e||a?"leta":"leti":e||a?"let":"leti")}}t.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_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_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čeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},gekB:function(t,e,n){!function(t){"use strict";var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];function a(t,a,r,i){var s="";switch(r){case"s":return i?"muutaman sekunnin":"muutama sekunti";case"ss":return i?"sekunnin":"sekuntia";case"m":return i?"minuutin":"minuutti";case"mm":s=i?"minuutin":"minuuttia";break;case"h":return i?"tunnin":"tunti";case"hh":s=i?"tunnin":"tuntia";break;case"d":return i?"päivän":"päivä";case"dd":s=i?"päivän":"päivää";break;case"M":return i?"kuukauden":"kuukausi";case"MM":s=i?"kuukauden":"kuukautta";break;case"y":return i?"vuoden":"vuosi";case"yy":s=i?"vuoden":"vuotta"}return function(t,a){return t<10?a?n[t]:e[t]:t}(t,i)+" "+s}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_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änään] [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äästä",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},gjCT:function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};t.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n("wd/R"))},gk6K:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("8Y7J"),r=function(){function t(){this._draggedElement=null}return t.prototype.set=function(t){this._draggedElement=t},t.prototype.get=function(){return this._draggedElement},t.prototype.isDragging=function(){return!!this.get()},function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}([Object(a.Injectable)()],t)}()},glrk:function(t,e,n){var a=n("hh1v");t.exports=function(t){if(!a(t))throw TypeError(String(t)+" is not an object");return t}},gp3X:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse");n("sb0X"),n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return o}));var i=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](4,2)],(function(t,e){var n=e.component,a=t(e,4,0,n.icons.spinner,n.icons.spin);t(e,3,0,a)}),null)}function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"button",[["class","btn btn-secondary tc_submitButton"]],[[8,"type",0],[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.submit(n)&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵncd"](null,0),(t()(),a["ɵand"](16777216,null,null,1,null,s)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"btn btn-secondary tc_submitButton",n.btnClass),t(e,5,0,n.loading)}),(function(t,e){var n=e.component;t(e,0,0,n.type,n.loading||n.disabled)}))}},gpbi:function(t,e,n){var a=n("ZWtO"),r=n("KxBF");t.exports=function(t,e){return e.length<2?t:a(t,r(e,0,-1))}},"hKI/":function(t,e){var n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,i=/^0o[0-7]+$/i,s=parseInt,o="object"==typeof global&&global&&global.Object===Object&&global,u="object"==typeof self&&self&&self.Object===Object&&self,d=o||u||Function("return this")(),l=Object.prototype.toString,c=Math.max,f=Math.min,h=function(){return d.Date.now()};function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function p(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==l.call(t)}(t))return NaN;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var o=r.test(t);return o||i.test(t)?s(t.slice(2),o?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var a=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return g(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),function(t,e,n){var a,r,i,s,o,u,d=0,l=!1,b=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=a,i=r;return a=r=void 0,d=e,s=t.apply(i,n)}function v(t){return d=t,o=setTimeout(_,e),l?y(t):s}function x(t){var n=t-u;return void 0===u||n>=e||n<0||b&&t-d>=i}function _(){var t=h();if(x(t))return T(t);o=setTimeout(_,function(t){var n=e-(t-u);return b?f(n,i-(t-d)):n}(t))}function T(t){return o=void 0,m&&a?y(t):(a=r=void 0,s)}function O(){var t=h(),n=x(t);if(a=arguments,r=this,u=t,n){if(void 0===o)return v(u);if(b)return o=setTimeout(_,e),y(u)}return void 0===o&&(o=setTimeout(_,e)),s}return e=p(e)||0,g(n)&&(l=!!n.leading,i=(b="maxWait"in n)?c(p(n.maxWait)||0,e):i,m="trailing"in n?!!n.trailing:m),O.cancel=function(){void 0!==o&&clearTimeout(o),d=0,a=u=r=o=void 0},O.flush=function(){return void 0===o?s:T(h())},O}(t,e,{leading:a,maxWait:e,trailing:r})}},hKrs:function(t,e,n){!function(t){"use strict";t.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".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:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n("wd/R"))},heNW:function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},hfeG:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("s7LF"),i=n("+gVj"),s=n("EmSq"),o=n("Fgil"),u=n("aXbf"),d=n("SVse"),l=n("mXUL"),c=n("EEJc"),f=n("ajRT"),h=n("gp3X"),g=n("sb0X"),p=n("KVJa"),b=n("Z21x"),m=n("sne2"),y=n("Rf2I"),v=n("LqlI"),x=n("2EZI"),_=n("GiVz");n.d(e,"a",(function(){return P}));var T=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.titleText)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.message)}))}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,0,0,e.parent.context.$implicit.name),t(e,1,0,e.parent.context.$implicit.label)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0;return"input"===e&&(r=!1!==a["ɵnov"](t,1)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,1)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,1)._compositionEnd(n.target.value)&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.e,[a.Renderer2,a.ElementRef,[2,r.b]],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.e]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,16384,null,0,i.h,[[3,r.d],i.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,1,[e.parent.context.$implicit.type,e.parent.context.$implicit.name,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,6).validClass,a["ɵnov"](e,6).invalidClass])}))}function N(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0;return"input"===e&&(r=!1!==a["ɵnov"](t,1)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,1)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,1)._compositionEnd(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,6).onBlur(n.target.value)&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.e,[a.Renderer2,a.ElementRef,[2,r.b]],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.e]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,81920,null,0,s.a,[a.ElementRef,r.q,o.a,u.a],null,null),a["ɵdid"](7,16384,null,0,i.h,[[3,r.d],i.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0),t(e,7,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,1,[e.parent.context.$implicit.name,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,7).validClass,a["ɵnov"](e,7).invalidClass])}))}function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,r.v,[a.ElementRef,a.Renderer2,[2,r.A]],{ngValue:[0,"ngValue"]},null),a["ɵdid"](2,147456,null,0,r.F,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,null),t(e,2,0,null)}),(function(t,e){t(e,3,0,e.parent.parent.context.$implicit.placeholder)}))}function R(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,r.v,[a.ElementRef,a.Renderer2,[2,r.A]],{value:[0,"value"]},null),a["ɵdid"](2,147456,null,0,r.F,[a.ElementRef,a.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.text)}))}function A(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,10,"select",[["class","form-control custom-select"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t,1).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.A,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.A]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,16384,null,0,i.h,[[3,r.d],i.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](8,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,R)),a["ɵdid"](10,278528,null,0,d.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.name),t(e,8,0,e.parent.context.$implicit.placeholder),t(e,10,0,e.parent.context.$implicit.options)}),(function(t,e){t(e,0,0,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,6).validClass,a["ɵnov"](e,6).invalidClass)}))}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.getError(e.parent.context.$implicit))}))}function E(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,19,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,18,"div",[],[[8,"className",0],[2,"has-error",null],[2,"has-success",null]],null,null,l.b,l.a)),a["ɵdid"](2,1163264,null,2,i.c,[a.ElementRef,i.g],null,null),a["ɵqud"](603979776,1,{FormControlNames:1}),a["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),a["ɵand"](16777216,null,0,1,null,S)),a["ɵdid"](6,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](7,0,null,0,12,"div",[],null,null,null,null,null)),a["ɵprd"](512,null,d["ɵNgClassImpl"],d["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](9,278528,null,0,d.NgClass,[d["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpod"](10,{"cd-col-form-input":0,"col-sm-12":1}),(t()(),a["ɵand"](16777216,null,null,2,null,I)),a["ɵdid"](12,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpad"](13,2),(t()(),a["ɵand"](16777216,null,null,1,null,N)),a["ɵdid"](15,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,A)),a["ɵdid"](17,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,k)),a["ɵdid"](19,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0),t(e,6,0,e.context.$implicit.label);var r=t(e,10,0,e.context.$implicit.label,!e.context.$implicit.label);t(e,9,0,r);var i=t(e,13,0,"text","number").includes(e.context.$implicit.type);t(e,12,0,i),t(e,15,0,"binary"===e.context.$implicit.type),t(e,17,0,"select"===e.context.$implicit.type),t(e,19,0,n.formGroup.showError(e.context.$implicit.name,a["ɵnov"](e.parent,7)))}),(function(t,e){t(e,1,0,a["ɵinlineInterpolate"](1,"form-group row cd-",e.context.$implicit.name,"-form-group"),a["ɵnov"](e,2).hasErrors,a["ɵnov"](e,2).hasSuccess)}))}function L(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,22,"cd-modal",[],null,null,null,c.c,c.b)),a["ɵdid"](1,49152,null,0,f.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,O)),a["ɵdid"](3,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](4,0,null,1,18,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,17,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,7).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,10).onSubmit()&&r),r}),null,null)),a["ɵdid"](6,16384,null,0,r.G,[],null,null),a["ɵdid"](7,540672,[["formDir",4]],0,r.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,r.d,null,[r.l]),a["ɵdid"](9,16384,null,0,r.s,[[4,r.d]],null,null),a["ɵdid"](10,16384,null,0,i.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](11,0,null,null,4,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](13,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,E)),a["ɵdid"](15,278528,null,0,d.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmitForm(r.formGroup.value)&&a),a}),h.b,h.a)),a["ɵdid"](19,114688,null,0,g.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵted"](20,0,[" "," "])),(t()(),a["ɵeld"](21,0,null,null,1,"cd-back-button",[],null,null,null,p.b,p.a)),a["ɵdid"](22,49152,null,0,b.a,[d.Location,m.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,3,0,n.titleText),t(e,7,0,n.formGroup),t(e,10,0,n.formGroup),t(e,13,0,n.message),t(e,15,0,n.fields),t(e,19,0,n.formGroup),t(e,22,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,5,0,a["ɵnov"](e,9).ngClassUntouched,a["ɵnov"](e,9).ngClassTouched,a["ɵnov"](e,9).ngClassPristine,a["ɵnov"](e,9).ngClassDirty,a["ɵnov"](e,9).ngClassValid,a["ɵnov"](e,9).ngClassInvalid,a["ɵnov"](e,9).ngClassPending),t(e,20,0,n.submitButtonText)}))}function D(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-form-modal",[],null,null,null,L,T)),a["ɵdid"](1,114688,null,0,y.a,[v.a,x.a,u.a,o.a,_.a],null,null)],(function(t,e){t(e,1,0)}),null)}var P=a["ɵccf"]("cd-form-modal",y.a,D,{},{},[])},hgQt:function(t,e,n){var a=n("Juji"),r=n("4sDh");t.exports=function(t,e){return null!=t&&r(t,e,a)}},hh1v:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},honF:function(t,e,n){!function(t){"use strict";var e={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};t.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".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:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(t){return t.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(n("wd/R"))},hpHm:function(t,e,n){"use strict";n.d(e,"a",(function(){return g})),n.d(e,"b",(function(){return p})),n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return h})),n.d(e,"e",(function(){return o})),n.d(e,"f",(function(){return s})),n.d(e,"g",(function(){return d})),n.d(e,"h",(function(){return u})),n.d(e,"i",(function(){return y})),n.d(e,"j",(function(){return l}));var a=n("8Y7J");class r{constructor(t,e){this.open=t,this.close=e||t}isManual(){return"manual"===this.open||"manual"===this.close}}const i={hover:["mouseover","mouseout"],focus:["focusin","focusout"]};function s(t,e=i){const n=(t||"").trim();if(0===n.length)return[];const a=n.split(/\s+/).map(t=>t.split(":")).map(t=>{const n=e[t[0]]||t;return new r(n[0],n[1])}),s=a.filter(t=>t.isManual());if(s.length>1)throw new Error("Triggers parse error: only one manual trigger is allowed");if(1===s.length&&a.length>1)throw new Error("Triggers parse error: manual trigger can't be mixed with other triggers");return a}function o(t,e){const n=s(e.triggers),a=e.target;if(1===n.length&&n[0].isManual())return Function.prototype;const r=[],i=[],o=()=>{i.forEach(t=>r.push(t())),i.length=0};return n.forEach(n=>{const s=n.open===n.close,u=s?e.toggle:e.show;s||i.push(()=>t.listen(a,n.close,e.hide)),r.push(t.listen(a,n.open,()=>u(o)))}),()=>{r.forEach(t=>t())}}function u(t,e){return e.outsideClick?t.listen("document","click",t=>{e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(e=>e.contains(t.target))||e.hide()}):Function.prototype}function d(t,e){return e.outsideEsc?t.listen("document","keyup.esc",t=>{e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(e=>e.contains(t.target))||e.hide()}):Function.prototype}const l="undefined"!=typeof window&&window||{},c=l.document;let f;function h(){return void 0===l||(void 0===l.__theme?f?"bs3"===f:(f=function(){if("undefined"==typeof document)return null;const t=document.createElement("span");t.innerText="test bs version",document.body.appendChild(t),t.classList.add("d-none");const e=t.getBoundingClientRect();return document.body.removeChild(t),e&&0===e.top?"bs4":"bs3"}(),"bs3"===f):"bs4"!==l.__theme)}function g(t){return function(t,e){const n=` __${e}Value`;Object.defineProperty(t,e,{get(){return this[n]},set(t){const a=this[n];this[n]=t,a!==t&&this[e+"Change"]&&this[e+"Change"].emit(t)}})}}class p{static reflow(t){}static getStyles(t){let e=t.ownerDocument.defaultView;return e&&e.opener||(e=l),e.getComputedStyle(t)}}const b={},m="undefined"==typeof console||!("warn"in console);function y(t){!Object(a.isDevMode)()||m||t in b||(b[t]=!0,console.warn(t))}},hrfs:function(t,e,n){"use strict";n.d(e,"a",(function(){return b})),n.d(e,"b",(function(){return m})),n.d(e,"c",(function(){return g}));var a=n("8Y7J"),r=n("MO+k"),i=n("2Vo4"),s=n("LvDl");const o=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]];function u(t,e){return"rgba("+t.concat(e).join(",")+")"}function d(t,e){return Math.floor(Math.random()*(e-t+1))+t}function l(t){return{backgroundColor:t.map(t=>u(t,.6)),borderColor:t.map(()=>"#fff"),pointBackgroundColor:t.map(t=>u(t,1)),pointBorderColor:t.map(()=>"#fff"),pointHoverBackgroundColor:t.map(t=>u(t,1)),pointHoverBorderColor:t.map(t=>u(t,1))}}function c(){return[d(0,255),d(0,255),d(0,255)]}function f(t){return o[t]||c()}function h(t){const e=new Array(t);for(let n=0;n<t;n++)e[n]=o[n]||c();return e}let g=(()=>{class t{constructor(){this.pColorschemesOptions={},this.colorschemesOptions=new i.a({})}setColorschemesOptions(t){this.pColorschemesOptions=t,this.colorschemesOptions.next(t)}getColorschemesOptions(){return this.pColorschemesOptions}}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t},token:t,providedIn:"root"}),t})();const p=function(){var t={Default:0,Update:1,Refresh:2};return t[t.Default]="Default",t[t.Update]="Update",t[t.Refresh]="Refresh",t}();class b{constructor(t,e){this.element=t,this.themeService=e,this.options={},this.chartClick=new a.EventEmitter,this.chartHover=new a.EventEmitter,this.old={dataExists:!1,dataLength:0,datasetsExists:!1,datasetsLength:0,datasetsDataObjects:[],datasetsDataLengths:[],colorsExists:!1,colors:[],labelsExist:!1,labels:[],legendExists:!1,legend:{}},this.subs=[]}static registerPlugin(t){r.Chart.plugins.register(t)}static unregisterPlugin(t){r.Chart.plugins.unregister(t)}ngOnInit(){this.ctx=this.element.nativeElement.getContext("2d"),this.refresh(),this.subs.push(this.themeService.colorschemesOptions.subscribe(t=>this.themeChanged(t)))}themeChanged(t){this.refresh()}ngDoCheck(){if(!this.chart)return;let t=p.Default;const e=e=>{t=e>t?e:t};switch(!!this.data!==this.old.dataExists&&(this.propagateDataToDatasets(this.data),this.old.dataExists=!!this.data,e(p.Update)),this.data&&this.data.length!==this.old.dataLength&&(this.old.dataLength=this.data&&this.data.length||0,e(p.Update)),!!this.datasets!==this.old.datasetsExists&&(this.old.datasetsExists=!!this.datasets,e(p.Update)),this.datasets&&this.datasets.length!==this.old.datasetsLength&&(this.old.datasetsLength=this.datasets&&this.datasets.length||0,e(p.Update)),this.datasets&&this.datasets.filter((t,e)=>t.data!==this.old.datasetsDataObjects[e]).length&&(this.old.datasetsDataObjects=this.datasets.map(t=>t.data),e(p.Update)),this.datasets&&this.datasets.filter((t,e)=>t.data.length!==this.old.datasetsDataLengths[e]).length&&(this.old.datasetsDataLengths=this.datasets.map(t=>t.data.length),e(p.Update)),!!this.colors!==this.old.colorsExists&&(this.old.colorsExists=!!this.colors,this.updateColors(),e(p.Update)),this.colors&&this.colors.filter((t,e)=>!this.colorsEqual(t,this.old.colors[e])).length&&(this.old.colors=this.colors.map(t=>this.copyColor(t)),this.updateColors(),e(p.Update)),!!this.labels!==this.old.labelsExist&&(this.old.labelsExist=!!this.labels,e(p.Update)),this.labels&&this.labels.filter((t,e)=>!this.labelsEqual(t,this.old.labels[e])).length&&(this.old.labels=this.labels.map(t=>this.copyLabel(t)),e(p.Update)),!!this.options.legend!==this.old.legendExists&&(this.old.legendExists=!!this.options.legend,e(p.Refresh)),this.options.legend&&this.options.legend.position!==this.old.legend.position&&(this.old.legend.position=this.options.legend.position,e(p.Refresh)),t){case p.Default:break;case p.Update:this.update();break;case p.Refresh:this.refresh()}}copyLabel(t){return Array.isArray(t)?[...t]:t}labelsEqual(t,e){return Array.isArray(t)===Array.isArray(e)&&(Array.isArray(t)||t===e)&&(!Array.isArray(t)||t.length===e.length)&&(!Array.isArray(t)||0===t.filter((t,n)=>t!==e[n]).length)}copyColor(t){return{backgroundColor:t.backgroundColor,borderWidth:t.borderWidth,borderColor:t.borderColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,pointBorderColor:t.pointBorderColor,pointBackgroundColor:t.pointBackgroundColor,pointBorderWidth:t.pointBorderWidth,pointRadius:t.pointRadius,pointHoverRadius:t.pointHoverRadius,pointHitRadius:t.pointHitRadius,pointHoverBackgroundColor:t.pointHoverBackgroundColor,pointHoverBorderColor:t.pointHoverBorderColor,pointHoverBorderWidth:t.pointHoverBorderWidth,pointStyle:t.pointStyle,hoverBackgroundColor:t.hoverBackgroundColor,hoverBorderColor:t.hoverBorderColor,hoverBorderWidth:t.hoverBorderWidth}}colorsEqual(t,e){return!t==!e&&(!t||t.backgroundColor===e.backgroundColor&&t.borderWidth===e.borderWidth&&t.borderColor===e.borderColor&&t.borderCapStyle===e.borderCapStyle&&t.borderDash===e.borderDash&&t.borderDashOffset===e.borderDashOffset&&t.borderJoinStyle===e.borderJoinStyle&&t.pointBorderColor===e.pointBorderColor&&t.pointBackgroundColor===e.pointBackgroundColor&&t.pointBorderWidth===e.pointBorderWidth&&t.pointRadius===e.pointRadius&&t.pointHoverRadius===e.pointHoverRadius&&t.pointHitRadius===e.pointHitRadius&&t.pointHoverBackgroundColor===e.pointHoverBackgroundColor&&t.pointHoverBorderColor===e.pointHoverBorderColor&&t.pointHoverBorderWidth===e.pointHoverBorderWidth&&t.pointStyle===e.pointStyle&&t.hoverBackgroundColor===e.hoverBackgroundColor&&t.hoverBorderColor===e.hoverBorderColor&&t.hoverBorderWidth===e.hoverBorderWidth)}updateColors(){this.datasets.forEach((t,e)=>{this.colors&&this.colors[e]?Object.assign(t,this.colors[e]):Object.assign(t,function(t,e,n){if("pie"===t||"doughnut"===t)return l(h(n));if("polarArea"===t)return{backgroundColor:(a=h(n)).map(t=>u(t,.6)),borderColor:a.map(t=>u(t,1)),hoverBackgroundColor:a.map(t=>u(t,.8)),hoverBorderColor:a.map(t=>u(t,1))};var a;if("line"===t||"radar"===t)return function(t){return{backgroundColor:u(t,.4),borderColor:u(t,1),pointBackgroundColor:u(t,1),pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:u(t,.8)}}(f(e));if("bar"===t||"horizontalBar"===t)return function(t){return{backgroundColor:u(t,.6),borderColor:u(t,1),hoverBackgroundColor:u(t,.8),hoverBorderColor:u(t,1)}}(f(e));if("bubble"===t)return l(h(n));if("scatter"===t)return l(h(n));throw new Error(`getColors - Unsupported chart type ${t}`)}(this.chartType,e,t.data.length),Object.assign({},t))})}ngOnChanges(t){let e=p.Default;const n=t=>{e=t>e?t:e};switch(t.hasOwnProperty("data")&&t.data.currentValue&&(this.propagateDataToDatasets(t.data.currentValue),n(p.Update)),t.hasOwnProperty("datasets")&&t.datasets.currentValue&&(this.propagateDatasetsToData(t.datasets.currentValue),n(p.Update)),t.hasOwnProperty("labels")&&(this.chart&&(this.chart.data.labels=t.labels.currentValue),n(p.Update)),t.hasOwnProperty("legend")&&(this.chart&&(this.chart.config.options.legend.display=t.legend.currentValue,this.chart.generateLegend()),n(p.Update)),t.hasOwnProperty("options")&&n(p.Refresh),e){case p.Update:this.update();break;case p.Refresh:case p.Default:this.refresh()}}ngOnDestroy(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.subs.forEach(t=>t.unsubscribe())}update(t,e){if(this.chart)return this.chart.update(t,e)}hideDataset(t,e){this.chart.getDatasetMeta(t).hidden=e,this.chart.update()}isDatasetHidden(t){return this.chart.getDatasetMeta(t).hidden}toBase64Image(){return this.chart.toBase64Image()}getChartConfiguration(){const t=this.getDatasets(),e=Object.assign({},this.options);!1===this.legend&&(e.legend={display:!1}),e.hover=e.hover||{},e.hover.onHover||(e.hover.onHover=(t,e)=>{e&&!e.length||this.chartHover.emit({event:t,active:e})}),e.onClick||(e.onClick=(t,e)=>{this.chartClick.emit({event:t,active:e})});const n=this.smartMerge(e,this.themeService.getColorschemesOptions());return{type:this.chartType,data:{labels:this.labels||[],datasets:t},plugins:this.plugins,options:n}}getChartBuilder(t){const e=this.getChartConfiguration();return new r.Chart(t,e)}smartMerge(t,e,n=0){if(0===n&&(t=Object(s.cloneDeep)(t)),Object.keys(e).forEach(a=>{if(Array.isArray(e[a])){const r=t[a];r&&r.forEach(t=>{this.smartMerge(t,e[a][0],n+1)})}else"object"==typeof e[a]?(a in t||(t[a]={}),this.smartMerge(t[a],e[a],n+1)):t[a]=e[a]}),0===n)return t}isMultiLineLabel(t){return Array.isArray(t)}joinLabel(t){return t?this.isMultiLineLabel(t)?t.join(" "):t:null}propagateDatasetsToData(t){this.data=this.datasets.map(t=>t.data),this.chart&&(this.chart.data.datasets=t),this.updateColors()}propagateDataToDatasets(t){this.isMultiDataSet(t)?this.datasets&&t.length===this.datasets.length?this.datasets.forEach((e,n)=>{e.data=t[n]}):(this.datasets=t.map((t,e)=>({data:t,label:this.joinLabel(this.labels[e])||`Label ${e}`})),this.chart&&(this.chart.data.datasets=this.datasets)):this.datasets?(this.datasets[0].data=t,this.datasets.splice(1)):(this.datasets=[{data:t}],this.chart&&(this.chart.data.datasets=this.datasets)),this.updateColors()}isMultiDataSet(t){return Array.isArray(t[0])}getDatasets(){if(!this.datasets&&!this.data)throw new Error(`ng-charts configuration error, data or datasets field are required to render chart ${this.chartType}`);return this.datasets?(this.propagateDatasetsToData(this.datasets),this.datasets):this.data?(this.propagateDataToDatasets(this.data),this.datasets):void 0}refresh(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.ctx&&(this.chart=this.getChartBuilder(this.ctx))}}class m{}},hypo:function(t,e,n){var a=n("O0oS");t.exports=function(t,e,n){"__proto__"==e&&a?a(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},iEDd:function(t,e,n){!function(t){"use strict";t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".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()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},iExv:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.i18n=t}transform(t,e=this.i18n("Yes"),n=this.i18n("No")){return Boolean(t)?e:n}}},iInd:function(t,e,n){"use strict";var a=n("SVse"),r=n("8Y7J"),i=n("LRne"),s=n("Cfvw"),o=n("2Vo4"),u=n("HDdC"),d=n("sVev"),l=n("z+Ro"),c=n("DH7j"),f=n("l7GE"),h=n("ZUHj"),g=n("yCtX");const p={};class b{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new m(t,this.resultSelector))}}class m extends f.a{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(p),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 n=0;n<e;n++){const e=t[n];this.add(Object(h.a)(this,e,e,n))}}}notifyComplete(t){0==(this.active-=1)&&this.destination.complete()}notifyNext(t,e,n,a,r){const i=this.values,s=this.toRespond?i[n]===p?--this.toRespond:this.toRespond:0;i[n]=e,0===s&&(this.resultSelector?this._tryResultSelector(i):this.destination.next(i.slice()))}_tryResultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}var y=n("EY2u");function v(t){return new u.a(e=>{let n;try{n=t()}catch(a){return void e.error(a)}return(n?Object(s.a)(n):Object(y.b)()).subscribe(e)})}var x=n("XNiG"),_=n("lJxs"),T=n("0EUg"),O=n("NJ9Y"),w=n("JIr8"),S=n("SxV6"),I=n("5+tZ"),N=n("7o/Q");class C{constructor(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}call(t,e){return e.subscribe(new R(t,this.predicate,this.thisArg,this.source))}}class R extends N.a{constructor(t,e,n,a){super(t),this.predicate=e,this.thisArg=n,this.source=a,this.index=0,this.thisArg=n||this}notifyComplete(t){this.destination.next(t),this.destination.complete()}_next(t){let e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)}_complete(){this.notifyComplete(!0)}}var A=n("eIep"),k=n("IzEk"),E=n("GyhO"),L=n("Kqap"),D=n("pLZG"),P=n("bOdf"),M=n("128B"),q=n("vkgz"),j=n("quSY");class F{constructor(t){this.callback=t}call(t,e){return e.subscribe(new G(t,this.callback))}}class G extends N.a{constructor(t,e){super(t),this.add(new j.a(e))}}var V=n("bHdf"),z=n("cUpR");n.d(e,"F",(function(){return st})),n.d(e,"v",(function(){return _n})),n.d(e,"C",(function(){return kn})),n.d(e,"x",(function(){return Sn})),n.d(e,"D",(function(){return En})),n.d(e,"E",(function(){return Ln})),n.d(e,"z",(function(){return Nn})),n.d(e,"y",(function(){return In})),n.d(e,"B",(function(){return An})),n.d(e,"w",(function(){return On})),n.d(e,"A",(function(){return Rn})),n.d(e,"G",(function(){return vn})),n.d(e,"n",(function(){return on})),n.d(e,"p",(function(){return un})),n.d(e,"o",(function(){return ln})),n.d(e,"r",(function(){return hn})),n.d(e,"d",(function(){return H})),n.d(e,"e",(function(){return Y})),n.d(e,"l",(function(){return Ze})),n.d(e,"m",(function(){return sn})),n.d(e,"k",(function(){return Qe})),n.d(e,"i",(function(){return xn})),n.d(e,"j",(function(){return Dn})),n.d(e,"q",(function(){return wn})),n.d(e,"b",(function(){return fn})),n.d(e,"f",(function(){return mn})),n.d(e,"g",(function(){return bn})),n.d(e,"h",(function(){return pn})),n.d(e,"s",(function(){return yn})),n.d(e,"a",(function(){return $t})),n.d(e,"t",(function(){return tn})),n.d(e,"c",(function(){return Ct})),n.d(e,"u",(function(){return Nt}));class B{constructor(t,e){this.id=t,this.url=e}}class Y extends B{constructor(t,e,n="imperative",a=null){super(t,e),this.navigationTrigger=n,this.restoredState=a}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class H extends B{constructor(t,e,n){super(t,e),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class U extends B{constructor(t,e,n){super(t,e),this.reason=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class W extends B{constructor(t,e,n){super(t,e),this.error=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class K extends B{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class $ extends B{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Z extends B{constructor(t,e,n,a,r){super(t,e),this.urlAfterRedirects=n,this.state=a,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class J extends B{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class Q extends B{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class X{constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class tt{constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class et{constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class nt{constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class at{constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class rt{constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class it{constructor(t,e,n){this.routerEvent=t,this.position=e,this.anchor=n}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class st{}class ot{constructor(t){this.params=t||{}}has(t){return this.params.hasOwnProperty(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 ut(t){return new ot(t)}function dt(t){const e=Error("NavigationCancelingError: "+t);return e.ngNavigationCancelingError=!0,e}function lt(t,e,n){const a=n.path.split("/");if(a.length>t.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||a.length<t.length))return null;const r={};for(let i=0;i<a.length;i++){const e=a[i],n=t[i];if(e.startsWith(":"))r[e.substring(1)]=n;else if(e!==n.path)return null}return{consumed:t.slice(0,a.length),posParams:r}}class ct{constructor(t,e){this.routes=t,this.module=e}}function ft(t,e=""){for(let n=0;n<t.length;n++){const a=t[n];ht(a,gt(e,a))}}function ht(t,e){if(!t)throw new Error(`\n      Invalid configuration of route '${e}': Encountered undefined route.\n      The reason might be an extra comma.\n\n      Example:\n      const routes: Routes = [\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\n        { path: 'detail/:id', component: HeroDetailComponent }\n      ];\n    `);if(Array.isArray(t))throw new Error(`Invalid configuration of route '${e}': Array cannot be specified`);if(!t.component&&!t.children&&!t.loadChildren&&t.outlet&&"primary"!==t.outlet)throw new Error(`Invalid configuration of route '${e}': a componentless route without children or loadChildren cannot have a named outlet set`);if(t.redirectTo&&t.children)throw new Error(`Invalid configuration of route '${e}': redirectTo and children cannot be used together`);if(t.redirectTo&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': redirectTo and loadChildren cannot be used together`);if(t.children&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': children and loadChildren cannot be used together`);if(t.redirectTo&&t.component)throw new Error(`Invalid configuration of route '${e}': redirectTo and component cannot be used together`);if(t.path&&t.matcher)throw new Error(`Invalid configuration of route '${e}': path and matcher cannot be used together`);if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error(`Invalid configuration of route '${e}'. One of the following must be provided: component, redirectTo, children or loadChildren`);if(void 0===t.path&&void 0===t.matcher)throw new Error(`Invalid configuration of route '${e}': routes must have either a path or a matcher specified`);if("string"==typeof t.path&&"/"===t.path.charAt(0))throw new Error(`Invalid configuration of route '${e}': path cannot start with a slash`);if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch)throw new Error(`Invalid configuration of route '{path: "${e}", redirectTo: "${t.redirectTo}"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`);if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error(`Invalid configuration of route '${e}': pathMatch can only be set to 'prefix' or 'full'`);t.children&&ft(t.children,e)}function gt(t,e){return e?t||e.path?t&&!e.path?`${t}/`:!t&&e.path?e.path:`${t}/${e.path}`:"":t}function pt(t){const e=t.children&&t.children.map(pt),n=e?Object.assign({},t,{children:e}):Object.assign({},t);return!n.component&&(e||n.loadChildren)&&n.outlet&&"primary"!==n.outlet&&(n.component=st),n}function bt(t,e){const n=Object.keys(t),a=Object.keys(e);if(!n||!a||n.length!=a.length)return!1;let r;for(let i=0;i<n.length;i++)if(r=n[i],t[r]!==e[r])return!1;return!0}function mt(t){return Array.prototype.concat.apply([],t)}function yt(t){return t.length>0?t[t.length-1]:null}function vt(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function xt(t){return Object(r["ɵisObservable"])(t)?t:Object(r["ɵisPromise"])(t)?Object(s.a)(Promise.resolve(t)):Object(i.a)(t)}function _t(t,e,n){return n?function(t,e){return bt(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!St(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(const a in n.children){if(!e.children[a])return!1;if(!t(e.children[a],n.children[a]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>e[n]===t[n])}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,a,r){if(n.segments.length>r.length)return!!St(n.segments.slice(0,r.length),r)&&!a.hasChildren();if(n.segments.length===r.length){if(!St(n.segments,r))return!1;for(const e in a.children){if(!n.children[e])return!1;if(!t(n.children[e],a.children[e]))return!1}return!0}{const t=r.slice(0,n.segments.length),i=r.slice(n.segments.length);return!!St(n.segments,t)&&!!n.children.primary&&e(n.children.primary,a,i)}}(e,n,n.segments)}(t.root,e.root)}class Tt{constructor(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ut(this.queryParams)),this._queryParamMap}toString(){return Rt.serialize(this)}}class Ot{constructor(t,e){this.segments=t,this.children=e,this.parent=null,vt(e,(t,e)=>t.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return At(this)}}class wt{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=ut(this.parameters)),this._parameterMap}toString(){return Mt(this)}}function St(t,e){return t.length===e.length&&t.every((t,n)=>t.path===e[n].path)}function It(t,e){let n=[];return vt(t.children,(t,a)=>{"primary"===a&&(n=n.concat(e(t,a)))}),vt(t.children,(t,a)=>{"primary"!==a&&(n=n.concat(e(t,a)))}),n}class Nt{}class Ct{parse(t){const e=new Vt(t);return new Tt(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){var e;return`${`/${function t(e,n){if(!e.hasChildren())return At(e);if(n){const n=e.children.primary?t(e.children.primary,!1):"",a=[];return vt(e.children,(e,n)=>{"primary"!==n&&a.push(`${n}:${t(e,!1)}`)}),a.length>0?`${n}(${a.join("//")})`:n}{const n=It(e,(n,a)=>"primary"===a?[t(e.children.primary,!1)]:[`${a}:${t(n,!1)}`]);return`${At(e)}/(${n.join("//")})`}}(t.root,!0)}`}${function(t){const e=Object.keys(t).map(e=>{const n=t[e];return Array.isArray(n)?n.map(t=>`${Et(e)}=${Et(t)}`).join("&"):`${Et(e)}=${Et(n)}`});return e.length?`?${e.join("&")}`:""}(t.queryParams)}${"string"==typeof t.fragment?`#${e=t.fragment,encodeURI(e)}`:""}`}}const Rt=new Ct;function At(t){return t.segments.map(t=>Mt(t)).join("/")}function kt(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Et(t){return kt(t).replace(/%3B/gi,";")}function Lt(t){return kt(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Dt(t){return decodeURIComponent(t)}function Pt(t){return Dt(t.replace(/\+/g,"%20"))}function Mt(t){return`${Lt(t.path)}${e=t.parameters,Object.keys(e).map(t=>`;${Lt(t)}=${Lt(e[t])}`).join("")}`;var e}const qt=/^[^\/()?;=#]+/;function jt(t){const e=t.match(qt);return e?e[0]:""}const Ft=/^[^=?&#]+/,Gt=/^[^?&#]+/;class Vt{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new Ot([],{}):new Ot([],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 n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n.primary=new Ot(t,e)),n}parseSegment(){const t=jt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(t),new wt(Dt(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=jt(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){const t=jt(this.remaining);t&&(n=t,this.capture(n))}t[Dt(e)]=Dt(n)}parseQueryParam(t){const e=function(t){const e=t.match(Ft);return e?e[0]:""}(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){const t=function(t){const e=t.match(Gt);return e?e[0]:""}(this.remaining);t&&(n=t,this.capture(n))}const a=Pt(e),r=Pt(n);if(t.hasOwnProperty(a)){let e=t[a];Array.isArray(e)||(e=[e],t[a]=e),e.push(r)}else t[a]=r}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const n=jt(this.remaining),a=this.remaining[n.length];if("/"!==a&&")"!==a&&";"!==a)throw new Error(`Cannot parse url '${this.url}'`);let r=void 0;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):t&&(r="primary");const i=this.parseChildren();e[r]=1===Object.keys(i).length?i.primary:new Ot([],i),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 Error(`Expected "${t}".`)}}class zt{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=Bt(t,this._root);return e?e.children.map(t=>t.value):[]}firstChild(t){const e=Bt(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=Yt(t,this._root);return e.length<2?[]:e[e.length-2].children.map(t=>t.value).filter(e=>e!==t)}pathFromRoot(t){return Yt(t,this._root).map(t=>t.value)}}function Bt(t,e){if(t===e.value)return e;for(const n of e.children){const e=Bt(t,n);if(e)return e}return null}function Yt(t,e){if(t===e.value)return[e];for(const n of e.children){const a=Yt(t,n);if(a.length)return a.unshift(e),a}return[]}class Ht{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function Ut(t){const e={};return t&&t.children.forEach(t=>e[t.value.outlet]=t),e}class Wt extends zt{constructor(t,e){super(t),this.snapshot=e,Xt(this,t)}toString(){return this.snapshot.toString()}}function Kt(t,e){const n=function(t,e){const n=new Jt([],{},{},"",{},"primary",e,null,t.root,-1,{});return new Qt("",new Ht(n,[]))}(t,e),a=new o.a([new wt("",{})]),r=new o.a({}),i=new o.a({}),s=new o.a({}),u=new o.a(""),d=new $t(a,r,s,u,i,"primary",e,n.root);return d.snapshot=n.root,new Wt(new Ht(d,[]),n)}class $t{constructor(t,e,n,a,r,i,s,o){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=s,this._futureSnapshot=o}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(Object(_.a)(t=>ut(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(_.a)(t=>ut(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Zt(t,e="emptyOnly"){const n=t.pathFromRoot;let a=0;if("always"!==e)for(a=n.length-1;a>=1;){const t=n[a],e=n[a-1];if(t.routeConfig&&""===t.routeConfig.path)a--;else{if(e.component)break;a--}}return function(t){return t.reduce((t,e)=>({params:Object.assign({},t.params,e.params),data:Object.assign({},t.data,e.data),resolve:Object.assign({},t.resolve,e._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(a))}class Jt{constructor(t,e,n,a,r,i,s,o,u,d,l){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=i,this.component=s,this.routeConfig=o,this._urlSegment=u,this._lastPathIndex=d,this._resolve=l}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=ut(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=ut(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(t=>t.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Qt extends zt{constructor(t,e){super(e),this.url=t,Xt(this,e)}toString(){return te(this._root)}}function Xt(t,e){e.value._routerState=t,e.children.forEach(e=>Xt(t,e))}function te(t){const e=t.children.length>0?` { ${t.children.map(te).join(", ")} } `:"";return`${t.value}${e}`}function ee(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,bt(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),bt(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;++n)if(!bt(t[n],e[n]))return!1;return!0}(e.url,n.url)||t.url.next(n.url),bt(e.data,n.data)||t.data.next(n.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function ne(t,e){var n,a;return bt(t.params,e.params)&&St(n=t.url,a=e.url)&&n.every((t,e)=>bt(t.parameters,a[e].parameters))&&!(!t.parent!=!e.parent)&&(!t.parent||ne(t.parent,e.parent))}function ae(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function re(t,e,n,a,r){let i={};return a&&vt(a,(t,e)=>{i[e]=Array.isArray(t)?t.map(t=>`${t}`):`${t}`}),new Tt(n.root===t?e:function t(e,n,a){const r={};return vt(e.children,(e,i)=>{r[i]=e===n?a:t(e,n,a)}),new Ot(e.segments,r)}(n.root,t,e),i,r)}class ie{constructor(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&ae(n[0]))throw new Error("Root segment cannot have matrix parameters");const a=n.find(t=>"object"==typeof t&&null!=t&&t.outlets);if(a&&a!==yt(n))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class se{constructor(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}function oe(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets.primary:`${t}`}function ue(t,e,n){if(t||(t=new Ot([],{})),0===t.segments.length&&t.hasChildren())return de(t,e,n);const a=function(t,e,n){let a=0,r=e;const i={match:!1,pathIndex:0,commandIndex:0};for(;r<t.segments.length;){if(a>=n.length)return i;const e=t.segments[r],s=oe(n[a]),o=a<n.length-1?n[a+1]:null;if(r>0&&void 0===s)break;if(s&&o&&"object"==typeof o&&void 0===o.outlets){if(!he(s,o,e))return i;a+=2}else{if(!he(s,{},e))return i;a++}r++}return{match:!0,pathIndex:r,commandIndex:a}}(t,e,n),r=n.slice(a.commandIndex);if(a.match&&a.pathIndex<t.segments.length){const e=new Ot(t.segments.slice(0,a.pathIndex),{});return e.children.primary=new Ot(t.segments.slice(a.pathIndex),t.children),de(e,0,r)}return a.match&&0===r.length?new Ot(t.segments,{}):a.match&&!t.hasChildren()?le(t,e,n):a.match?de(t,0,r):le(t,e,n)}function de(t,e,n){if(0===n.length)return new Ot(t.segments,{});{const a=function(t){return"object"!=typeof t[0]?{primary:t}:void 0===t[0].outlets?{primary:t}:t[0].outlets}(n),r={};return vt(a,(n,a)=>{null!==n&&(r[a]=ue(t.children[a],e,n))}),vt(t.children,(t,e)=>{void 0===a[e]&&(r[e]=t)}),new Ot(t.segments,r)}}function le(t,e,n){const a=t.segments.slice(0,e);let r=0;for(;r<n.length;){if("object"==typeof n[r]&&void 0!==n[r].outlets){const t=ce(n[r].outlets);return new Ot(a,t)}if(0===r&&ae(n[0])){a.push(new wt(t.segments[e].path,n[0])),r++;continue}const i=oe(n[r]),s=r<n.length-1?n[r+1]:null;i&&s&&ae(s)?(a.push(new wt(i,fe(s))),r+=2):(a.push(new wt(i,{})),r++)}return new Ot(a,{})}function ce(t){const e={};return vt(t,(t,n)=>{null!==t&&(e[n]=le(new Ot([],{}),0,t))}),e}function fe(t){const e={};return vt(t,(t,n)=>e[n]=`${t}`),e}function he(t,e,n){return t==n.path&&bt(e,n.parameters)}class ge{constructor(t,e,n,a){this.routeReuseStrategy=t,this.futureState=e,this.currState=n,this.forwardEvent=a}activate(t){const e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),ee(this.futureState.root),this.activateChildRoutes(e,n,t)}deactivateChildRoutes(t,e,n){const a=Ut(e);t.children.forEach(t=>{const e=t.value.outlet;this.deactivateRoutes(t,a[e],n),delete a[e]}),vt(a,(t,e)=>{this.deactivateRouteAndItsChildren(t,n)})}deactivateRoutes(t,e,n){const a=t.value,r=e?e.value:null;if(a===r)if(a.component){const r=n.getContext(a.outlet);r&&this.deactivateChildRoutes(t,e,r.children)}else this.deactivateChildRoutes(t,e,n);else r&&this.deactivateRouteAndItsChildren(e,n)}deactivateRouteAndItsChildren(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const n=e.getContext(t.value.outlet);if(n&&n.outlet){const e=n.outlet.detach(),a=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:e,route:t,contexts:a})}}deactivateRouteAndOutlet(t,e){const n=e.getContext(t.value.outlet);if(n){const a=Ut(t),r=t.value.component?n.children:e;vt(a,(t,e)=>this.deactivateRouteAndItsChildren(t,r)),n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated())}}activateChildRoutes(t,e,n){const a=Ut(e);t.children.forEach(t=>{this.activateRoutes(t,a[t.value.outlet],n),this.forwardEvent(new rt(t.value.snapshot))}),t.children.length&&this.forwardEvent(new nt(t.value.snapshot))}activateRoutes(t,e,n){const a=t.value,r=e?e.value:null;if(ee(a),a===r)if(a.component){const r=n.getOrCreateContext(a.outlet);this.activateChildRoutes(t,e,r.children)}else this.activateChildRoutes(t,e,n);else if(a.component){const e=n.getOrCreateContext(a.outlet);if(this.routeReuseStrategy.shouldAttach(a.snapshot)){const t=this.routeReuseStrategy.retrieve(a.snapshot);this.routeReuseStrategy.store(a.snapshot,null),e.children.onOutletReAttached(t.contexts),e.attachRef=t.componentRef,e.route=t.route.value,e.outlet&&e.outlet.attach(t.componentRef,t.route.value),pe(t.route)}else{const n=function(t){for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(a.snapshot),r=n?n.module.componentFactoryResolver:null;e.attachRef=null,e.route=a,e.resolver=r,e.outlet&&e.outlet.activateWith(a,r),this.activateChildRoutes(t,null,e.children)}}else this.activateChildRoutes(t,null,n)}}function pe(t){ee(t.value),t.children.forEach(pe)}function be(t){return"function"==typeof t}function me(t){return t instanceof Tt}class ye{constructor(t){this.segmentGroup=t||null}}class ve{constructor(t){this.urlTree=t}}function xe(t){return new u.a(e=>e.error(new ye(t)))}function _e(t){return new u.a(e=>e.error(new ve(t)))}function Te(t){return new u.a(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class Oe{constructor(t,e,n,a,i){this.configLoader=e,this.urlSerializer=n,this.urlTree=a,this.config=i,this.allowRedirects=!0,this.ngModule=t.get(r.NgModuleRef)}apply(){return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,"primary").pipe(Object(_.a)(t=>this.createUrlTree(t,this.urlTree.queryParams,this.urlTree.fragment))).pipe(Object(w.a)(t=>{if(t instanceof ve)return this.allowRedirects=!1,this.match(t.urlTree);if(t instanceof ye)throw this.noMatchError(t);throw t}))}match(t){return this.expandSegmentGroup(this.ngModule,this.config,t.root,"primary").pipe(Object(_.a)(e=>this.createUrlTree(e,t.queryParams,t.fragment))).pipe(Object(w.a)(t=>{if(t instanceof ye)throw this.noMatchError(t);throw t}))}noMatchError(t){return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)}createUrlTree(t,e,n){const a=t.segments.length>0?new Ot([],{primary:t}):t;return new Tt(a,e,n)}expandSegmentGroup(t,e,n,a){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(_.a)(t=>new Ot([],t))):this.expandSegment(t,n,e,n.segments,a,!0)}expandChildren(t,e,n){return function(t,e){if(0===Object.keys(t).length)return Object(i.a)({});const n=[],a=[],r={};return vt(t,(t,i)=>{const s=e(i,t).pipe(Object(_.a)(t=>r[i]=t));"primary"===i?n.push(s):a.push(s)}),i.a.apply(null,n.concat(a)).pipe(Object(T.a)(),Object(O.a)(),Object(_.a)(()=>r))}(n.children,(n,a)=>this.expandSegmentGroup(t,e,a,n))}expandSegment(t,e,n,a,r,s){return Object(i.a)(...n).pipe(Object(_.a)(o=>this.expandSegmentAgainstRoute(t,e,n,o,a,r,s).pipe(Object(w.a)(t=>{if(t instanceof ye)return Object(i.a)(null);throw t}))),Object(T.a)(),Object(S.a)(t=>!!t),Object(w.a)((t,n)=>{if(t instanceof d.a||"EmptyError"===t.name){if(this.noLeftoversInUrl(e,a,r))return Object(i.a)(new Ot([],{}));throw new ye(e)}throw t}))}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}expandSegmentAgainstRoute(t,e,n,a,r,i,s){return Ne(a)!==i?xe(e):void 0===a.redirectTo?this.matchSegmentAgainstRoute(t,e,a,r):s&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i):xe(e)}expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i){return"**"===a.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,a,i):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,n,a){const r=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?_e(r):this.lineralizeSegments(n,r).pipe(Object(I.a)(n=>{const r=new Ot(n,{});return this.expandSegment(t,r,e,n,a,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,i){const{matched:s,consumedSegments:o,lastChild:u,positionalParamSegments:d}=we(e,a,r);if(!s)return xe(e);const l=this.applyRedirectCommands(o,a.redirectTo,d);return a.redirectTo.startsWith("/")?_e(l):this.lineralizeSegments(a,l).pipe(Object(I.a)(a=>this.expandSegment(t,e,n,a.concat(r.slice(u)),i,!1)))}matchSegmentAgainstRoute(t,e,n,a){if("**"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(_.a)(t=>(n._loadedConfig=t,new Ot(a,{})))):Object(i.a)(new Ot(a,{}));const{matched:r,consumedSegments:s,lastChild:o}=we(e,n,a);if(!r)return xe(e);const u=a.slice(o);return this.getChildConfig(t,n,a).pipe(Object(I.a)(t=>{const n=t.module,a=t.routes,{segmentGroup:r,slicedSegments:o}=function(t,e,n,a){return n.length>0&&function(t,e,n){return n.some(n=>Ie(t,e,n)&&"primary"!==Ne(n))}(t,n,a)?{segmentGroup:Se(new Ot(e,function(t,e){const n={};n.primary=e;for(const a of t)""===a.path&&"primary"!==Ne(a)&&(n[Ne(a)]=new Ot([],{}));return n}(a,new Ot(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return n.some(n=>Ie(t,e,n))}(t,n,a)?{segmentGroup:Se(new Ot(t.segments,function(t,e,n,a){const r={};for(const i of n)Ie(t,e,i)&&!a[Ne(i)]&&(r[Ne(i)]=new Ot([],{}));return Object.assign({},a,r)}(t,n,a,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,s,u,a);return 0===o.length&&r.hasChildren()?this.expandChildren(n,a,r).pipe(Object(_.a)(t=>new Ot(s,t))):0===a.length&&0===o.length?Object(i.a)(new Ot(s,{})):this.expandSegment(n,r,a,o,"primary",!0).pipe(Object(_.a)(t=>new Ot(s.concat(t.segments),t.children)))}))}getChildConfig(t,e,n){return e.children?Object(i.a)(new ct(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(i.a)(e._loadedConfig):function(t,e,n){const a=e.canLoad;return a&&0!==a.length?Object(s.a)(a).pipe(Object(_.a)(a=>{const r=t.get(a);let i;if(function(t){return t&&be(t.canLoad)}(r))i=r.canLoad(e,n);else{if(!be(r))throw new Error("Invalid CanLoad guard");i=r(e,n)}return xt(i)})).pipe(Object(T.a)(),(r=t=>!0===t,t=>t.lift(new C(r,void 0,t)))):Object(i.a)(!0);var r}(t.injector,e,n).pipe(Object(I.a)(n=>n?this.configLoader.load(t.injector,e).pipe(Object(_.a)(t=>(e._loadedConfig=t,t))):function(t){return new u.a(e=>e.error(dt(`Cannot load children because the guard of the route "path: '${t.path}'" returned false`)))}(e))):Object(i.a)(new ct([],t))}lineralizeSegments(t,e){let n=[],a=e.root;for(;;){if(n=n.concat(a.segments),0===a.numberOfChildren)return Object(i.a)(n);if(a.numberOfChildren>1||!a.children.primary)return Te(t.redirectTo);a=a.children.primary}}applyRedirectCommands(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)}applyRedirectCreatreUrlTree(t,e,n,a){const r=this.createSegmentGroup(t,e.root,n,a);return new Tt(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const n={};return vt(t,(t,a)=>{if("string"==typeof t&&t.startsWith(":")){const r=t.substring(1);n[a]=e[r]}else n[a]=t}),n}createSegmentGroup(t,e,n,a){const r=this.createSegments(t,e.segments,n,a);let i={};return vt(e.children,(e,r)=>{i[r]=this.createSegmentGroup(t,e,n,a)}),new Ot(r,i)}createSegments(t,e,n,a){return e.map(e=>e.path.startsWith(":")?this.findPosParam(t,e,a):this.findOrReturn(e,n))}findPosParam(t,e,n){const a=n[e.path.substring(1)];if(!a)throw new Error(`Cannot redirect to '${t}'. Cannot find '${e.path}'.`);return a}findOrReturn(t,e){let n=0;for(const a of e){if(a.path===t.path)return e.splice(n),a;n++}return t}}function we(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};const a=(e.matcher||lt)(n,t,e);return a?{matched:!0,consumedSegments:a.consumed,lastChild:a.consumed.length,positionalParamSegments:a.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function Se(t){if(1===t.numberOfChildren&&t.children.primary){const e=t.children.primary;return new Ot(t.segments.concat(e.segments),e.children)}return t}function Ie(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0!==n.redirectTo}function Ne(t){return t.outlet||"primary"}class Ce{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class Re{constructor(t,e){this.component=t,this.route=e}}function Ae(t,e,n){const a=t._root;return function t(e,n,a,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=Ut(n);return e.children.forEach(e=>{!function(e,n,a,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const s=e.value,o=n?n.value:null,u=a?a.getContext(e.value.outlet):null;if(o&&s.routeConfig===o.routeConfig){const d=function(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!St(t.url,e.url);case"pathParamsOrQueryParamsChange":return!St(t.url,e.url)||!bt(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!ne(t,e)||!bt(t.queryParams,e.queryParams);case"paramsChange":default:return!ne(t,e)}}(o,s,s.routeConfig.runGuardsAndResolvers);d?i.canActivateChecks.push(new Ce(r)):(s.data=o.data,s._resolvedData=o._resolvedData),t(e,n,s.component?u?u.children:null:a,r,i),d&&i.canDeactivateChecks.push(new Re(u&&u.outlet&&u.outlet.component||null,o))}else o&&Ee(n,u,i),i.canActivateChecks.push(new Ce(r)),t(e,null,s.component?u?u.children:null:a,r,i)}(e,s[e.value.outlet],a,r.concat([e.value]),i),delete s[e.value.outlet]}),vt(s,(t,e)=>Ee(t,a.getContext(e),i)),i}(a,e?e._root:null,n,[a.value])}function ke(t,e,n){const a=function(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(a?a.module.injector:n).get(t)}function Ee(t,e,n){const a=Ut(t),r=t.value;vt(a,(t,a)=>{Ee(t,r.component?e?e.children.getContext(a):null:e,n)}),n.canDeactivateChecks.push(new Re(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}const Le=Symbol("INITIAL_VALUE");function De(){return Object(A.a)(t=>function(...t){let e=null,n=null;return Object(l.a)(t[t.length-1])&&(n=t.pop()),"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Object(c.a)(t[0])&&(t=t[0]),Object(g.a)(t,n).lift(new b(e))}(...t.map(t=>t.pipe(Object(k.a)(1),function(...t){const e=t[t.length-1];return Object(l.a)(e)?(t.pop(),n=>Object(E.a)(t,n,e)):e=>Object(E.a)(t,e)}(Le)))).pipe(Object(L.a)((t,e)=>{let n=!1;return e.reduce((t,a,r)=>{if(t!==Le)return t;if(a===Le&&(n=!0),!n){if(!1===a)return a;if(r===e.length-1||me(a))return a}return t},t)},Le),Object(D.a)(t=>t!==Le),Object(_.a)(t=>me(t)?t:!0===t),Object(k.a)(1)))}function Pe(t,e){return null!==t&&e&&e(new at(t)),Object(i.a)(!0)}function Me(t,e){return null!==t&&e&&e(new et(t)),Object(i.a)(!0)}function qe(t,e,n){const a=e.routeConfig?e.routeConfig.canActivate:null;if(!a||0===a.length)return Object(i.a)(!0);const r=a.map(a=>v(()=>{const r=ke(a,e,n);let i;if(function(t){return t&&be(t.canActivate)}(r))i=xt(r.canActivate(e,t));else{if(!be(r))throw new Error("Invalid CanActivate guard");i=xt(r(e,t))}return i.pipe(Object(S.a)())}));return Object(i.a)(r).pipe(De())}function je(t,e,n){const a=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(t=>function(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)).filter(t=>null!==t).map(e=>v(()=>{const r=e.guards.map(r=>{const i=ke(r,e.node,n);let s;if(function(t){return t&&be(t.canActivateChild)}(i))s=xt(i.canActivateChild(a,t));else{if(!be(i))throw new Error("Invalid CanActivateChild guard");s=xt(i(a,t))}return s.pipe(Object(S.a)())});return Object(i.a)(r).pipe(De())}));return Object(i.a)(r).pipe(De())}class Fe{}class Ge{constructor(t,e,n,a,r,i){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=a,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=i}recognize(){try{const t=Be(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,"primary"),n=new Jt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},"primary",this.rootComponentType,null,this.urlTree.root,-1,{}),a=new Ht(n,e),r=new Qt(this.url,a);return this.inheritParamsAndData(r._root),Object(i.a)(r)}catch(t){return new u.a(e=>e.error(t))}}inheritParamsAndData(t){const e=t.value,n=Zt(e,this.paramsInheritanceStrategy);e.params=Object.freeze(n.params),e.data=Object.freeze(n.data),t.children.forEach(t=>this.inheritParamsAndData(t))}processSegmentGroup(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)}processChildren(t,e){const n=It(e,(e,n)=>this.processSegmentGroup(t,e,n));return function(t){const e={};t.forEach(t=>{const n=e[t.value.outlet];if(n){const e=n.url.map(t=>t.toString()).join("/"),a=t.value.url.map(t=>t.toString()).join("/");throw new Error(`Two segments cannot have the same outlet name: '${e}' and '${a}'.`)}e[t.value.outlet]=t.value})}(n),n.sort((t,e)=>"primary"===t.value.outlet?-1:"primary"===e.value.outlet?1:t.value.outlet.localeCompare(e.value.outlet)),n}processSegment(t,e,n,a){for(const i of t)try{return this.processSegmentAgainstRoute(i,e,n,a)}catch(r){if(!(r instanceof Fe))throw r}if(this.noLeftoversInUrl(e,n,a))return[];throw new Fe}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}processSegmentAgainstRoute(t,e,n,a){if(t.redirectTo)throw new Fe;if((t.outlet||"primary")!==a)throw new Fe;let r,i=[],s=[];if("**"===t.path){const i=n.length>0?yt(n).parameters:{};r=new Jt(n,i,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Ue(t),a,t.component,t,Ve(e),ze(e)+n.length,We(t))}else{const o=function(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new Fe;return{consumedSegments:[],lastChild:0,parameters:{}}}const a=(e.matcher||lt)(n,t,e);if(!a)throw new Fe;const r={};vt(a.posParams,(t,e)=>{r[e]=t.path});const i=a.consumed.length>0?Object.assign({},r,a.consumed[a.consumed.length-1].parameters):r;return{consumedSegments:a.consumed,lastChild:a.consumed.length,parameters:i}}(e,t,n);i=o.consumedSegments,s=n.slice(o.lastChild),r=new Jt(i,o.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,Ue(t),a,t.component,t,Ve(e),ze(e)+i.length,We(t))}const o=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),{segmentGroup:u,slicedSegments:d}=Be(e,i,s,o,this.relativeLinkResolution);if(0===d.length&&u.hasChildren()){const t=this.processChildren(o,u);return[new Ht(r,t)]}if(0===o.length&&0===d.length)return[new Ht(r,[])];const l=this.processSegment(o,u,d,"primary");return[new Ht(r,l)]}}function Ve(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function ze(t){let e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function Be(t,e,n,a,r){if(n.length>0&&function(t,e,n){return n.some(n=>Ye(t,e,n)&&"primary"!==He(n))}(t,n,a)){const r=new Ot(e,function(t,e,n,a){const r={};r.primary=a,a._sourceSegment=t,a._segmentIndexShift=e.length;for(const i of n)if(""===i.path&&"primary"!==He(i)){const n=new Ot([],{});n._sourceSegment=t,n._segmentIndexShift=e.length,r[He(i)]=n}return r}(t,e,a,new Ot(n,t.children)));return r._sourceSegment=t,r._segmentIndexShift=e.length,{segmentGroup:r,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return n.some(n=>Ye(t,e,n))}(t,n,a)){const i=new Ot(t.segments,function(t,e,n,a,r,i){const s={};for(const o of a)if(Ye(t,n,o)&&!r[He(o)]){const n=new Ot([],{});n._sourceSegment=t,n._segmentIndexShift="legacy"===i?t.segments.length:e.length,s[He(o)]=n}return Object.assign({},r,s)}(t,e,n,a,t.children,r));return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}const i=new Ot(t.segments,t.children);return i._sourceSegment=t,i._segmentIndexShift=e.length,{segmentGroup:i,slicedSegments:n}}function Ye(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0===n.redirectTo}function He(t){return t.outlet||"primary"}function Ue(t){return t.data||{}}function We(t){return t.resolve||{}}function Ke(t,e,n,a){const r=ke(t,e,a);return xt(r.resolve?r.resolve(e,n):r(e,n))}function $e(t){return function(e){return e.pipe(Object(A.a)(e=>{const n=t(e);return n?Object(s.a)(n).pipe(Object(_.a)(()=>e)):Object(s.a)([e])}))}}class Ze{}class Je{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}const Qe=new r.InjectionToken("ROUTES");class Xe{constructor(t,e,n,a){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=a}load(t,e){return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(_.a)(n=>{this.onLoadEndListener&&this.onLoadEndListener(e);const a=n.create(t);return new ct(mt(a.injector.get(Qe)).map(pt),a)}))}loadModuleFactory(t){return"string"==typeof t?Object(s.a)(this.loader.load(t)):xt(t()).pipe(Object(I.a)(t=>t instanceof r.NgModuleFactory?Object(i.a)(t):Object(s.a)(this.compiler.compileModuleAsync(t))))}}class tn{}class en{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function nn(t){throw t}function an(t,e,n){return e.parse("/")}function rn(t,e){return Object(i.a)(null)}class sn{constructor(t,e,n,a,i,s,u,d){this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=a,this.config=d,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new x.a,this.errorHandler=nn,this.malformedUriErrorHandler=an,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:rn,afterPreactivation:rn},this.urlHandlingStrategy=new en,this.routeReuseStrategy=new Je,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy",this.ngModule=i.get(r.NgModuleRef),this.console=i.get(r["ɵConsole"]);const l=i.get(r.NgZone);this.isNgZoneEnabled=l instanceof r.NgZone,this.resetConfig(d),this.currentUrlTree=new Tt(new Ot([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Xe(s,u,t=>this.triggerEvent(new X(t)),t=>this.triggerEvent(new tt(t))),this.routerState=Kt(this.currentUrlTree,this.rootComponentType),this.transitions=new o.a({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(t){const e=this.events;return t.pipe(Object(D.a)(t=>0!==t.id),Object(_.a)(t=>Object.assign({},t,{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl)})),Object(A.a)(t=>{let n=!1,a=!1;return Object(i.a)(t).pipe(Object(q.a)(t=>{this.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign({},this.lastSuccessfulNavigation,{previousNavigation:null}):null}}),Object(A.a)(t=>{const n=!this.navigated||t.extractedUrl.toString()!==this.browserUrlTree.toString();if(("reload"===this.onSameUrlNavigation||n)&&this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(i.a)(t).pipe(Object(A.a)(t=>{const n=this.transitions.getValue();return e.next(new Y(t.id,this.serializeUrl(t.extractedUrl),t.source,t.restoredState)),n!==this.transitions.getValue()?y.a:[t]}),Object(A.a)(t=>Promise.resolve(t)),(a=this.ngModule.injector,r=this.configLoader,s=this.urlSerializer,o=this.config,function(t){return t.pipe(Object(A.a)(t=>function(t,e,n,a,r){return new Oe(t,e,n,a,r).apply()}(a,r,s,t.extractedUrl,o).pipe(Object(_.a)(e=>Object.assign({},t,{urlAfterRedirects:e})))))}),Object(q.a)(t=>{this.currentNavigation=Object.assign({},this.currentNavigation,{finalUrl:t.urlAfterRedirects})}),function(t,e,n,a,r){return function(i){return i.pipe(Object(I.a)(i=>function(t,e,n,a,r="emptyOnly",i="legacy"){return new Ge(t,e,n,a,r,i).recognize()}(t,e,i.urlAfterRedirects,n(i.urlAfterRedirects),a,r).pipe(Object(_.a)(t=>Object.assign({},i,{targetSnapshot:t})))))}}(this.rootComponentType,this.config,t=>this.serializeUrl(t),this.paramsInheritanceStrategy,this.relativeLinkResolution),Object(q.a)(t=>{"eager"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),Object(q.a)(t=>{const n=new K(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.next(n)}));var a,r,s,o;if(n&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:n,extractedUrl:a,source:r,restoredState:s,extras:o}=t,u=new Y(n,this.serializeUrl(a),r,s);e.next(u);const d=Kt(a,this.rootComponentType).snapshot;return Object(i.a)(Object.assign({},t,{targetSnapshot:d,urlAfterRedirects:a,extras:Object.assign({},o,{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=t.rawUrl,this.browserUrlTree=t.urlAfterRedirects,t.resolve(null),y.a}),$e(t=>{const{targetSnapshot:e,id:n,extractedUrl:a,rawUrl:r,extras:{skipLocationChange:i,replaceUrl:s}}=t;return this.hooks.beforePreactivation(e,{navigationId:n,appliedUrlTree:a,rawUrlTree:r,skipLocationChange:!!i,replaceUrl:!!s})}),Object(q.a)(t=>{const e=new $(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),Object(_.a)(t=>Object.assign({},t,{guards:Ae(t.targetSnapshot,t.currentSnapshot,this.rootContexts)})),function(t,e){return function(n){return n.pipe(Object(I.a)(n=>{const{targetSnapshot:a,currentSnapshot:r,guards:{canActivateChecks:o,canDeactivateChecks:u}}=n;return 0===u.length&&0===o.length?Object(i.a)(Object.assign({},n,{guardsResult:!0})):function(t,e,n,a){return Object(s.a)(t).pipe(Object(I.a)(t=>function(t,e,n,a,r){const s=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!s||0===s.length)return Object(i.a)(!0);const o=s.map(i=>{const s=ke(i,e,r);let o;if(function(t){return t&&be(t.canDeactivate)}(s))o=xt(s.canDeactivate(t,e,n,a));else{if(!be(s))throw new Error("Invalid CanDeactivate guard");o=xt(s(t,e,n,a))}return o.pipe(Object(S.a)())});return Object(i.a)(o).pipe(De())}(t.component,t.route,n,e,a)),Object(S.a)(t=>!0!==t,!0))}(u,a,r,t).pipe(Object(I.a)(n=>n&&"boolean"==typeof n?function(t,e,n,a){return Object(s.a)(e).pipe(Object(P.a)(e=>Object(s.a)([Me(e.route.parent,a),Pe(e.route,a),je(t,e.path,n),qe(t,e.route,n)]).pipe(Object(T.a)(),Object(S.a)(t=>!0!==t,!0))),Object(S.a)(t=>!0!==t,!0))}(a,o,t,e):Object(i.a)(n)),Object(_.a)(t=>Object.assign({},n,{guardsResult:t})))}))}}(this.ngModule.injector,t=>this.triggerEvent(t)),Object(q.a)(t=>{if(me(t.guardsResult)){const e=dt(`Redirecting to "${this.serializeUrl(t.guardsResult)}"`);throw e.url=t.guardsResult,e}}),Object(q.a)(t=>{const e=new Z(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);this.triggerEvent(e)}),Object(D.a)(t=>{if(!t.guardsResult){this.resetUrlToCurrentUrlTree();const n=new U(t.id,this.serializeUrl(t.extractedUrl),"");return e.next(n),t.resolve(!1),!1}return!0}),$e(t=>{if(t.guards.canActivateChecks.length)return Object(i.a)(t).pipe(Object(q.a)(t=>{const e=new J(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),(e=this.paramsInheritanceStrategy,n=this.ngModule.injector,function(t){return t.pipe(Object(I.a)(t=>{const{targetSnapshot:a,guards:{canActivateChecks:r}}=t;return r.length?Object(s.a)(r).pipe(Object(P.a)(t=>function(t,e,n,a){return function(t,e,n,a){const r=Object.keys(t);if(0===r.length)return Object(i.a)({});if(1===r.length){const i=r[0];return Ke(t[i],e,n,a).pipe(Object(_.a)(t=>({[i]:t})))}const o={};return Object(s.a)(r).pipe(Object(I.a)(r=>Ke(t[r],e,n,a).pipe(Object(_.a)(t=>(o[r]=t,t))))).pipe(Object(O.a)(),Object(_.a)(()=>o))}(t._resolve,t,e,a).pipe(Object(_.a)(e=>(t._resolvedData=e,t.data=Object.assign({},t.data,Zt(t,n).resolve),null)))}(t.route,a,e,n)),Object(M.a)((t,e)=>t),Object(_.a)(e=>t)):Object(i.a)(t)}))}),Object(q.a)(t=>{const e=new Q(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}));var e,n}),$e(t=>{const{targetSnapshot:e,id:n,extractedUrl:a,rawUrl:r,extras:{skipLocationChange:i,replaceUrl:s}}=t;return this.hooks.afterPreactivation(e,{navigationId:n,appliedUrlTree:a,rawUrlTree:r,skipLocationChange:!!i,replaceUrl:!!s})}),Object(_.a)(t=>{const e=function(t,e,n){const a=function t(e,n,a){if(a&&e.shouldReuseRoute(n.value,a.value.snapshot)){const r=a.value;r._futureSnapshot=n.value;const i=function(e,n,a){return n.children.map(n=>{for(const r of a.children)if(e.shouldReuseRoute(r.value.snapshot,n.value))return t(e,n,r);return t(e,n)})}(e,n,a);return new Ht(r,i)}{const a=e.retrieve(n.value);if(a){const t=a.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==n.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");n.value._futureSnapshot=e.value;for(let a=0;a<e.children.length;++a)t(e.children[a],n.children[a])}(n,t),t}{const a=new $t(new o.a((r=n.value).url),new o.a(r.params),new o.a(r.queryParams),new o.a(r.fragment),new o.a(r.data),r.outlet,r.component,r),i=n.children.map(n=>t(e,n));return new Ht(a,i)}}var r}(t,e._root,n?n._root:void 0);return new Wt(a,e)}(this.routeReuseStrategy,t.targetSnapshot,t.currentRouterState);return Object.assign({},t,{targetRouterState:e})}),Object(q.a)(t=>{this.currentUrlTree=t.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl),this.routerState=t.targetRouterState,"deferred"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),(u=this.rootContexts,d=this.routeReuseStrategy,l=t=>this.triggerEvent(t),Object(_.a)(t=>(new ge(d,t.targetRouterState,t.currentRouterState,l).activate(u),t))),Object(q.a)({next(){n=!0},complete(){n=!0}}),(r=()=>{if(!n&&!a){this.resetUrlToCurrentUrlTree();const n=new U(t.id,this.serializeUrl(t.extractedUrl),`Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`);e.next(n),t.resolve(!1)}this.currentNavigation=null},t=>t.lift(new F(r))),Object(w.a)(n=>{if(a=!0,(r=n)&&r.ngNavigationCancelingError){const a=me(n.url);a||(this.navigated=!0,this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));const r=new U(t.id,this.serializeUrl(t.extractedUrl),n.message);e.next(r),t.resolve(!1),a&&this.navigateByUrl(n.url)}else{this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);const a=new W(t.id,this.serializeUrl(t.extractedUrl),n);e.next(a);try{t.resolve(this.errorHandler(n))}catch(i){t.reject(i)}}var r;return y.a}));var r,u,d,l}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}getTransition(){const t=this.transitions.value;return t.urlAfterRedirects=this.browserUrlTree,t}setTransition(t){this.transitions.next(Object.assign({},this.getTransition(),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{let e=this.parseUrl(t.url);const n="popstate"===t.type?"popstate":"hashchange",a=t.state&&t.state.navigationId?t.state:null;setTimeout(()=>{this.scheduleNavigation(e,n,a,{replaceUrl:!0})},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){ft(t),this.config=t.map(pt),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)}createUrlTree(t,e={}){const{relativeTo:n,queryParams:a,fragment:i,preserveQueryParams:s,queryParamsHandling:o,preserveFragment:u}=e;Object(r.isDevMode)()&&s&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");const d=n||this.routerState.root,l=u?this.currentUrlTree.fragment:i;let c=null;if(o)switch(o){case"merge":c=Object.assign({},this.currentUrlTree.queryParams,a);break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=a||null}else c=s?this.currentUrlTree.queryParams:a||null;return null!==c&&(c=this.removeEmptyProps(c)),function(t,e,n,a,r){if(0===n.length)return re(e.root,e.root,e,a,r);const i=function(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new ie(!0,0,t);let e=0,n=!1;const a=t.reduce((t,a,r)=>{if("object"==typeof a&&null!=a){if(a.outlets){const e={};return vt(a.outlets,(t,n)=>{e[n]="string"==typeof t?t.split("/"):t}),[...t,{outlets:e}]}if(a.segmentPath)return[...t,a.segmentPath]}return"string"!=typeof a?[...t,a]:0===r?(a.split("/").forEach((a,r)=>{0==r&&"."===a||(0==r&&""===a?n=!0:".."===a?e++:""!=a&&t.push(a))}),t):[...t,a]},[]);return new ie(n,e,a)}(n);if(i.toRoot())return re(e.root,new Ot([],{}),e,a,r);const s=function(t,e,n){if(t.isAbsolute)return new se(e.root,!0,0);if(-1===n.snapshot._lastPathIndex)return new se(n.snapshot._urlSegment,!0,0);const a=ae(t.commands[0])?0:1;return function(t,e,n){let a=t,r=e,i=n;for(;i>r;){if(i-=r,a=a.parent,!a)throw new Error("Invalid number of '../'");r=a.segments.length}return new se(a,!1,r-i)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+a,t.numberOfDoubleDots)}(i,e,t),o=s.processChildren?de(s.segmentGroup,s.index,i.commands):ue(s.segmentGroup,s.index,i.commands);return re(s.segmentGroup,o,e,a,r)}(d,this.currentUrlTree,t,c,l)}navigateByUrl(t,e={skipLocationChange:!1}){Object(r.isDevMode)()&&this.isNgZoneEnabled&&!r.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");const n=me(t)?t:this.parseUrl(t),a=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(a,"imperative",null,e)}navigate(t,e={skipLocationChange:!1}){return function(t){for(let e=0;e<t.length;e++){const n=t[e];if(null==n)throw new Error(`The requested path contains ${n} segment at index ${e}`)}}(t),this.navigateByUrl(this.createUrlTree(t,e),e)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){let e;try{e=this.urlSerializer.parse(t)}catch(n){e=this.malformedUriErrorHandler(n,this.urlSerializer,t)}return e}isActive(t,e){if(me(t))return _t(this.currentUrlTree,t,e);const n=this.parseUrl(t);return _t(this.currentUrlTree,n,e)}removeEmptyProps(t){return Object.keys(t).reduce((e,n)=>{const a=t[n];return null!=a&&(e[n]=a),e},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.events.next(new H(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.currentNavigation=null,t.resolve(!0)},t=>{this.console.warn("Unhandled Navigation Error: ")})}scheduleNavigation(t,e,n,a){const r=this.getTransition();if(r&&"imperative"!==e&&"imperative"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(r&&"hashchange"==e&&"popstate"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(r&&"popstate"==e&&"hashchange"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);let i=null,s=null;const o=new Promise((t,e)=>{i=t,s=e}),u=++this.navigationId;return this.setTransition({id:u,source:e,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:a,resolve:i,reject:s,promise:o,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),o.catch(t=>Promise.reject(t))}setBrowserUrl(t,e,n,a){const r=this.urlSerializer.serialize(t);a=a||{},this.location.isCurrentPathEqualTo(r)||e?this.location.replaceState(r,"",Object.assign({},a,{navigationId:n})):this.location.go(r,"",Object.assign({},a,{navigationId:n}))}resetStateAndUrl(t,e,n){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",{navigationId:this.lastSuccessfulId})}}class on{constructor(t,e,n,a,r){this.router=t,this.route=e,this.commands=[],null==n&&a.setAttribute(r.nativeElement,"tabindex","0")}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(r.isDevMode)()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated!, use queryParamsHandling instead."),this.preserve=t}onClick(){const t={skipLocationChange:dn(this.skipLocationChange),replaceUrl:dn(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:dn(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:dn(this.preserveFragment)})}}class un{constructor(t,e,n){this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(t=>{t instanceof H&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(r.isDevMode)()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead."),this.preserve=t}ngOnChanges(t){this.updateTargetUrlAndHref()}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,e,n,a){if(0!==t||e||n||a)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;const r={skipLocationChange:dn(this.skipLocationChange),replaceUrl:dn(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,r),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:dn(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:dn(this.preserveFragment)})}}function dn(t){return""===t||!!t}class ln{constructor(t,e,n,a,r){this.router=t,this.element=e,this.renderer=n,this.link=a,this.linkWithHref=r,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(t=>{t instanceof H&&this.update()})}ngAfterContentInit(){this.links.changes.subscribe(t=>this.update()),this.linksWithHrefs.changes.subscribe(t=>this.update()),this.update()}set routerLinkActive(t){const e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(t=>!!t)}ngOnChanges(t){this.update()}ngOnDestroy(){this.subscription.unsubscribe()}update(){this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.classes.forEach(e=>{t?this.renderer.addClass(this.element.nativeElement,e):this.renderer.removeClass(this.element.nativeElement,e)}))})}isLinkActive(t){return e=>t.isActive(e.urlTree,this.routerLinkActiveOptions.exact)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}class cn{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new fn,this.attachRef=null}}class fn{constructor(){this.contexts=new Map}onChildOutletCreated(t,e){const n=this.getOrCreateContext(t);n.outlet=e,this.contexts.set(t,n)}onChildOutletDestroyed(t){const e=this.getContext(t);e&&(e.outlet=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let e=this.getContext(t);return e||(e=new cn,this.contexts.set(t,e)),e}getContext(t){return this.contexts.get(t)||null}}class hn{constructor(t,e,n,a,i){this.parentContexts=t,this.location=e,this.resolver=n,this.changeDetector=i,this.activated=null,this._activatedRoute=null,this.activateEvents=new r.EventEmitter,this.deactivateEvents=new r.EventEmitter,this.name=a||"primary",t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,t}attach(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,e){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=t;const n=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),a=this.parentContexts.getOrCreateContext(this.name).children,r=new gn(t,a,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,r),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}class gn{constructor(t,e,n){this.route=t,this.childContexts=e,this.parent=n}get(t,e){return t===$t?this.route:t===fn?this.childContexts:this.parent.get(t,e)}}class pn{}class bn{preload(t,e){return e().pipe(Object(w.a)(()=>Object(i.a)(null)))}}class mn{preload(t,e){return Object(i.a)(null)}}class yn{constructor(t,e,n,a,r){this.router=t,this.injector=a,this.preloadingStrategy=r,this.loader=new Xe(e,n,e=>t.triggerEvent(new X(e)),e=>t.triggerEvent(new tt(e)))}setUpPreloading(){this.subscription=this.router.events.pipe(Object(D.a)(t=>t instanceof H),Object(P.a)(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(r.NgModuleRef);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription.unsubscribe()}processRoutes(t,e){const n=[];for(const a of e)if(a.loadChildren&&!a.canLoad&&a._loadedConfig){const t=a._loadedConfig;n.push(this.processRoutes(t.module,t.routes))}else a.loadChildren&&!a.canLoad?n.push(this.preloadConfig(t,a)):a.children&&n.push(this.processRoutes(t,a.children));return Object(s.a)(n).pipe(Object(V.a)(),Object(_.a)(t=>{}))}preloadConfig(t,e){return this.preloadingStrategy.preload(e,()=>this.loader.load(t.injector,e).pipe(Object(I.a)(t=>(e._loadedConfig=t,this.processRoutes(t.module,t.routes)))))}}class vn{constructor(t,e,n={}){this.router=t,this.viewportScroller=e,this.options=n,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||"disabled",n.anchorScrolling=n.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof Y?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof H&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof it&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,e){this.router.triggerEvent(new it(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,e))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}const xn=new r.InjectionToken("ROUTER_CONFIGURATION"),_n=new r.InjectionToken("ROUTER_FORROOT_GUARD"),Tn=[a.Location,{provide:Nt,useClass:Ct},{provide:sn,useFactory:Rn,deps:[r.ApplicationRef,Nt,fn,a.Location,r.Injector,r.NgModuleFactoryLoader,r.Compiler,Qe,xn,[tn,new r.Optional],[Ze,new r.Optional]]},fn,{provide:$t,useFactory:An,deps:[sn]},{provide:r.NgModuleFactoryLoader,useClass:r.SystemJsNgModuleLoader},yn,mn,bn,{provide:xn,useValue:{enableTracing:!1}}];function On(){return new r.NgProbeToken("Router",sn)}class wn{constructor(t,e){}static forRoot(t,e){return{ngModule:wn,providers:[Tn,Cn(t),{provide:_n,useFactory:Nn,deps:[[sn,new r.Optional,new r.SkipSelf]]},{provide:xn,useValue:e||{}},{provide:a.LocationStrategy,useFactory:In,deps:[a.PlatformLocation,[new r.Inject(a.APP_BASE_HREF),new r.Optional],xn]},{provide:vn,useFactory:Sn,deps:[sn,a.ViewportScroller,xn]},{provide:pn,useExisting:e&&e.preloadingStrategy?e.preloadingStrategy:mn},{provide:r.NgProbeToken,multi:!0,useFactory:On},[kn,{provide:r.APP_INITIALIZER,multi:!0,useFactory:En,deps:[kn]},{provide:Dn,useFactory:Ln,deps:[kn]},{provide:r.APP_BOOTSTRAP_LISTENER,multi:!0,useExisting:Dn}]]}}static forChild(t){return{ngModule:wn,providers:[Cn(t)]}}}function Sn(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new vn(t,e,n)}function In(t,e,n={}){return n.useHash?new a.HashLocationStrategy(t,e):new a.PathLocationStrategy(t,e)}function Nn(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function Cn(t){return[{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:t},{provide:Qe,multi:!0,useValue:t}]}function Rn(t,e,n,a,r,i,s,o,u={},d,l){const c=new sn(null,e,n,a,r,i,s,mt(o));if(d&&(c.urlHandlingStrategy=d),l&&(c.routeReuseStrategy=l),u.errorHandler&&(c.errorHandler=u.errorHandler),u.malformedUriErrorHandler&&(c.malformedUriErrorHandler=u.malformedUriErrorHandler),u.enableTracing){const t=Object(z.q)();c.events.subscribe(e=>{t.logGroup(`Router Event: ${e.constructor.name}`),t.log(e.toString()),t.log(e),t.logGroupEnd()})}return u.onSameUrlNavigation&&(c.onSameUrlNavigation=u.onSameUrlNavigation),u.paramsInheritanceStrategy&&(c.paramsInheritanceStrategy=u.paramsInheritanceStrategy),u.urlUpdateStrategy&&(c.urlUpdateStrategy=u.urlUpdateStrategy),u.relativeLinkResolution&&(c.relativeLinkResolution=u.relativeLinkResolution),c}function An(t){return t.routerState.root}class kn{constructor(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new x.a}appInitializer(){return this.injector.get(a.LOCATION_INITIALIZED,Promise.resolve(null)).then(()=>{let t=null;const e=new Promise(e=>t=e),n=this.injector.get(sn),a=this.injector.get(xn);if(this.isLegacyDisabled(a)||this.isLegacyEnabled(a))t(!0);else if("disabled"===a.initialNavigation)n.setUpLocationChangeListener(),t(!0);else{if("enabled"!==a.initialNavigation)throw new Error(`Invalid initialNavigation options: '${a.initialNavigation}'`);n.hooks.afterPreactivation=()=>this.initNavigation?Object(i.a)(null):(this.initNavigation=!0,t(!0),this.resultOfPreactivationDone),n.initialNavigation()}return e})}bootstrapListener(t){const e=this.injector.get(xn),n=this.injector.get(yn),a=this.injector.get(vn),i=this.injector.get(sn),s=this.injector.get(r.ApplicationRef);t===s.components[0]&&(this.isLegacyEnabled(e)?i.initialNavigation():this.isLegacyDisabled(e)&&i.setUpLocationChangeListener(),n.setUpPreloading(),a.init(),i.resetRootComponentType(s.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}isLegacyEnabled(t){return"legacy_enabled"===t.initialNavigation||!0===t.initialNavigation||void 0===t.initialNavigation}isLegacyDisabled(t){return"legacy_disabled"===t.initialNavigation||!1===t.initialNavigation}}function En(t){return t.appInitializer.bind(t)}function Ln(t){return t.bootstrapListener.bind(t)}const Dn=new r.InjectionToken("Router Initializer")},iSVu:function(t,e,n){var a=n("xs3f"),r=Function.toString;"function"!=typeof a.inspectSource&&(a.inspectSource=function(t){return r.call(t)}),t.exports=a.inspectSource},iYuL:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},idmN:function(t,e,n){var a=n("ZWtO"),r=n("FZoo"),i=n("4uTw");t.exports=function(t,e,n){for(var s=-1,o=e.length,u={};++s<o;){var d=e[s],l=a(t,d);n(l,d)&&r(u,i(d,t),l)}return u}},ienR:function(t,e,n){"use strict";n.d(e,"a",(function(){return h})),n.d(e,"b",(function(){return q})),n.d(e,"c",(function(){return j})),n.d(e,"d",(function(){return F})),n.d(e,"e",(function(){return G})),n.d(e,"f",(function(){return Y})),n.d(e,"g",(function(){return nt})),n.d(e,"h",(function(){return H})),n.d(e,"i",(function(){return z})),n.d(e,"j",(function(){return V})),n.d(e,"k",(function(){return B})),n.d(e,"l",(function(){return b})),n.d(e,"m",(function(){return st})),n.d(e,"n",(function(){return rt})),n.d(e,"o",(function(){return it})),n.d(e,"p",(function(){return lt})),n.d(e,"q",(function(){return ot})),n.d(e,"r",(function(){return ut})),n.d(e,"s",(function(){return dt})),n.d(e,"t",(function(){return M})),n.d(e,"u",(function(){return m})),n.d(e,"v",(function(){return p})),n.d(e,"w",(function(){return U})),n.d(e,"x",(function(){return W})),n.d(e,"y",(function(){return K})),n.d(e,"z",(function(){return $})),n.d(e,"A",(function(){return J})),n.d(e,"B",(function(){return Q})),n.d(e,"C",(function(){return X})),n.d(e,"D",(function(){return tt})),n.d(e,"E",(function(){return et}));var a=n("8Y7J"),r=n("pLZG"),i=n("lJxs"),s=n("IzEk"),o=n("xj/R"),u=n("2Vo4"),d=n("AfCQ"),l=n("2uy1"),c=(n("GS7A"),n("z/SZ")),f=(n("s7LF"),n("hpHm"));class h{constructor(){this.adaptivePosition=!1,this.useUtc=!1,this.isAnimated=!1,this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}}class g{constructor(){this._customRangesFish=[]}set minDate(t){this._effects.setMinDate(t)}set maxDate(t){this._effects.setMaxDate(t)}set daysDisabled(t){this._effects.setDaysDisabled(t)}set datesDisabled(t){this._effects.setDatesDisabled(t)}set isDisabled(t){this._effects.setDisabled(t)}set dateCustomClasses(t){this._effects.setDateCustomClasses(t)}setViewMode(t){}navigateTo(t){}dayHoverHandler(t){}weekHoverHandler(t){}monthHoverHandler(t){}yearHoverHandler(t){}daySelectHandler(t){}monthSelectHandler(t){}yearSelectHandler(t){}_stopPropagation(t){t.stopPropagation()}}let p=(()=>{class t{calculate(){return{type:t.CALCULATE}}format(){return{type:t.FORMAT}}flag(){return{type:t.FLAG}}select(e){return{type:t.SELECT,payload:e}}changeViewMode(e){return{type:t.CHANGE_VIEWMODE,payload:e}}navigateTo(e){return{type:t.NAVIGATE_TO,payload:e}}navigateStep(e){return{type:t.NAVIGATE_OFFSET,payload:e}}setOptions(e){return{type:t.SET_OPTIONS,payload:e}}selectRange(e){return{type:t.SELECT_RANGE,payload:e}}hoverDay(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}}minDate(e){return{type:t.SET_MIN_DATE,payload:e}}maxDate(e){return{type:t.SET_MAX_DATE,payload:e}}daysDisabled(e){return{type:t.SET_DAYSDISABLED,payload:e}}datesDisabled(e){return{type:t.SET_DATESDISABLED,payload:e}}isDisabled(e){return{type:t.SET_IS_DISABLED,payload:e}}setDateCustomClasses(e){return{type:t.SET_DATE_CUSTOM_CLASSES,payload:e}}setLocale(e){return{type:t.SET_LOCALE,payload:e}}}return t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_DATE_CUSTOM_CLASSES="[datepicker] set date custom classes",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t})();class b{constructor(){this._defaultLocale="en",this._locale=new u.a(this._defaultLocale),this._localeChange=this._locale.asObservable()}get locale(){return this._locale}get localeChange(){return this._localeChange}get currentLocale(){return this._locale.getValue()}use(t){t!==this.currentLocale&&this._locale.next(t)}}class m{constructor(t,e){this._actions=t,this._localeService=e,this._subs=[]}init(t){return this._store=t,this}setValue(t){this._store.dispatch(this._actions.select(t))}setRangeValue(t){this._store.dispatch(this._actions.selectRange(t))}setMinDate(t){return this._store.dispatch(this._actions.minDate(t)),this}setMaxDate(t){return this._store.dispatch(this._actions.maxDate(t)),this}setDaysDisabled(t){return this._store.dispatch(this._actions.daysDisabled(t)),this}setDatesDisabled(t){return this._store.dispatch(this._actions.datesDisabled(t)),this}setDisabled(t){return this._store.dispatch(this._actions.isDisabled(t)),this}setDateCustomClasses(t){return this._store.dispatch(this._actions.setDateCustomClasses(t)),this}setOptions(t){const e=Object.assign({locale:this._localeService.currentLocale},t);return this._store.dispatch(this._actions.setOptions(e)),this}setBindings(t){return t.daysCalendar=this._store.select(t=>t.flaggedMonths).pipe(Object(r.a)(t=>!!t)),t.monthsCalendar=this._store.select(t=>t.flaggedMonthsCalendar).pipe(Object(r.a)(t=>!!t)),t.yearsCalendar=this._store.select(t=>t.yearsCalendarFlagged).pipe(Object(r.a)(t=>!!t)),t.viewMode=this._store.select(t=>t.view.mode),t.options=this._store.select(t=>t.showWeekNumbers).pipe(Object(i.a)(t=>({showWeekNumbers:t}))),this}setEventHandlers(t){return t.setViewMode=t=>{this._store.dispatch(this._actions.changeViewMode(t))},t.navigateTo=t=>{this._store.dispatch(this._actions.navigateStep(t.step))},t.dayHoverHandler=t=>{const e=t.cell;e.isOtherMonth||e.isDisabled||(this._store.dispatch(this._actions.hoverDay(t)),e.isHovered=t.isHovered)},t.monthHoverHandler=t=>{t.cell.isHovered=t.isHovered},t.yearHoverHandler=t=>{t.cell.isHovered=t.isHovered},t.monthSelectHandler=t=>{t.isDisabled||this._store.dispatch(this._actions.navigateTo({unit:{month:Object(o.l)(t.date),year:Object(o.j)(t.date)},viewMode:"day"}))},t.yearSelectHandler=t=>{t.isDisabled||this._store.dispatch(this._actions.navigateTo({unit:{year:Object(o.j)(t.date)},viewMode:"month"}))},this}registerDatepickerSideEffects(){return this._subs.push(this._store.select(t=>t.view).subscribe(t=>{this._store.dispatch(this._actions.calculate())})),this._subs.push(this._store.select(t=>t.monthsModel).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.format()))),this._subs.push(this._store.select(t=>t.formattedMonths).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.selectedDate).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.selectedRange).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.monthsCalendar).subscribe(()=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.yearsCalendarModel).pipe(Object(r.a)(t=>!!t)).subscribe(()=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.hoveredDate).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.dateCustomClasses).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._localeService.localeChange.subscribe(t=>this._store.dispatch(this._actions.setLocale(t)))),this}destroy(){for(const t of this._subs)t.unsubscribe()}}const y={date:new Date,mode:"day"},v=Object.assign(new h,{locale:"en",view:y,selectedRange:[],monthViewOptions:{width:7,height:6}});function x(t,e,n){const a=e&&Object(o.p)(Object(o.d)(t,"month"),e,"day"),r=n&&Object(o.n)(Object(o.G)(t,"month"),n,"day");return a||r}function _(t,e,n){const a=e&&Object(o.p)(Object(o.d)(t,"year"),e,"day"),r=n&&Object(o.n)(Object(o.G)(t,"year"),n,"day");return a||r}function T(t,e=0){const n=t&&t.yearsCalendarModel&&t.yearsCalendarModel[e];return n&&n.years&&n.years[0]&&n.years[0][0]&&n.years[0][0].date}function O(t,e){let n=t.initialDate;const a=new Array(t.height);for(let r=0;r<t.height;r++){a[r]=new Array(t.width);for(let i=0;i<t.width;i++)a[r][i]=e(n),n=Object(o.F)(n,t.shift)}return a}function w(t,e){const n=Object(o.i)(t),a=function(t,e){if(Object(o.t)(t,e.firstDayOfWeek))return t;const n=function(t,e){if(0===e)return t;const n=t-e%7;return n<0?n+7:n}(Object(o.h)(t),e.firstDayOfWeek);return Object(o.F)(t,{day:-n})}(n,e);return{daysMatrix:O({width:e.width,height:e.height,initialDate:a,shift:{day:1}},t=>t),month:n}}function S(t){const e=Object(o.k)(t),n=e.weekdaysShort(),a=e.firstDayOfWeek();return[...n.slice(a),...n.slice(0,a)]}function I(t,e){return!e||t>=e}const N={month:1};function C(t,e){return{months:O({width:3,height:4,initialDate:Object(o.G)(t,"year"),shift:N},t=>({date:t,label:Object(o.f)(t,e.monthLabel,e.locale)})),monthTitle:"",yearTitle:Object(o.f)(t,e.yearTitle,e.locale)}}const R=-1*(Math.floor(8)-1),A={year:1};function k(t,e,n){const a=O({width:4,height:4,initialDate:function(t,e){return e&&t.getFullYear()>=e.getFullYear()&&t.getFullYear()<e.getFullYear()+16?e:Object(o.F)(t,{year:R})}(t,n),shift:A},t=>({date:t,label:Object(o.f)(t,e.yearLabel,e.locale)}));return{years:a,monthTitle:"",yearTitle:function(t,e){return`${Object(o.f)(t[0][0].date,e.yearTitle,e.locale)} - ${Object(o.f)(t[3][3].date,e.yearTitle,e.locale)}`}(a,e)}}function E(t=v,e){switch(e.type){case p.CALCULATE:return function(t){const e=t.displayMonths;let n=t.view.date;if("day"===t.view.mode){t.showPreviousMonth&&0===t.selectedRange.length&&(n=Object(o.F)(n,{month:-1})),t.monthViewOptions.firstDayOfWeek=Object(o.k)(t.locale).firstDayOfWeek();const a=new Array(e);for(let r=0;r<e;r++)a[r]=w(n,t.monthViewOptions),n=Object(o.F)(n,{month:1});return Object.assign({},t,{monthsModel:a})}if("month"===t.view.mode){const a=new Array(e);for(let r=0;r<e;r++)a[r]=C(n,D(t)),n=Object(o.F)(n,{year:1});return Object.assign({},t,{monthsCalendar:a})}if("year"===t.view.mode){const a=new Array(e);for(let r=0;r<e;r++)a[r]=k(n,D(t),"year"===t.minMode?T(t,r):void 0),n=Object(o.F)(n,{year:16});return Object.assign({},t,{yearsCalendarModel:a})}return t}(t);case p.FORMAT:return function(t,e){if("day"===t.view.mode){const e=t.monthsModel.map((e,n)=>function(t,e,n){return{month:t.month,monthTitle:Object(o.f)(t.month,e.monthTitle,e.locale),yearTitle:Object(o.f)(t.month,e.yearTitle,e.locale),weekNumbers:(a=t.daysMatrix,r=e.weekNumbers,i=e.locale,a.map(t=>t[0]?Object(o.f)(t[0],r,i):"")),weekdays:S(e.locale),weeks:t.daysMatrix.map((t,a)=>({days:t.map((t,r)=>({date:t,label:Object(o.f)(t,e.dayLabel,e.locale),monthIndex:n,weekIndex:a,dayIndex:r}))}))};var a,r,i}(e,D(t),n));return Object.assign({},t,{formattedMonths:e})}const n=t.displayMonths;let a=t.view.date;if("month"===t.view.mode){const e=new Array(n);for(let r=0;r<n;r++)e[r]=C(a,D(t)),a=Object(o.F)(a,{year:1});return Object.assign({},t,{monthsCalendar:e})}if("year"===t.view.mode){const e=new Array(n);for(let r=0;r<n;r++)e[r]=k(a,D(t)),a=Object(o.F)(a,{year:16});return Object.assign({},t,{yearsCalendarModel:e})}return t}(t);case p.FLAG:return function(t,e){if("day"===t.view.mode){const e=t.formattedMonths.map((e,n)=>function(t,e){return t.weeks.forEach(n=>{n.days.forEach((a,r)=>{const i=!Object(o.w)(a.date,t.month),s=!i&&Object(o.v)(a.date,e.hoveredDate),u=!i&&e.selectedRange&&Object(o.v)(a.date,e.selectedRange[0]),d=!i&&e.selectedRange&&Object(o.v)(a.date,e.selectedRange[1]),l=!i&&Object(o.v)(a.date,e.selectedDate)||u||d,c=!i&&e.selectedRange&&function(t,e,n){return!(!t||!e[0])&&(e[1]?t>e[0]&&t<=e[1]:!!n&&t>e[0]&&t<=n)}(a.date,e.selectedRange,e.hoveredDate),f=e.isDisabled||Object(o.p)(a.date,e.minDate,"day")||Object(o.n)(a.date,e.maxDate,"day")||Object(o.s)(a.date,e.daysDisabled)||(h=a.date,!(void 0===(g=e.datesDisabled)||!g||!g.length)&&g.some(t=>Object(o.u)(h,t,"date")));var h,g;const p=new Date,b=!i&&Object(o.v)(a.date,p),m=e.dateCustomClasses&&e.dateCustomClasses.map(t=>Object(o.v)(a.date,t.date)?t.classes:[]).reduce((t,e)=>t.concat(e),[]).join(" ")||"",y=Object.assign({},a,{isOtherMonth:i,isHovered:s,isSelected:l,isSelectionStart:u,isSelectionEnd:d,isInRange:c,isDisabled:f,isToday:b,customClasses:m});a.isOtherMonth===y.isOtherMonth&&a.isHovered===y.isHovered&&a.isSelected===y.isSelected&&a.isSelectionStart===y.isSelectionStart&&a.isSelectionEnd===y.isSelectionEnd&&a.isDisabled===y.isDisabled&&a.isInRange===y.isInRange&&a.customClasses===y.customClasses||(n.days[r]=y)})}),t.hideLeftArrow=e.isDisabled||e.monthIndex>0&&e.monthIndex!==e.displayMonths,t.hideRightArrow=e.isDisabled||e.monthIndex<e.displayMonths&&e.monthIndex+1!==e.displayMonths,t.disableLeftArrow=x(Object(o.F)(t.month,{month:-1}),e.minDate,e.maxDate),t.disableRightArrow=x(Object(o.F)(t.month,{month:1}),e.minDate,e.maxDate),t}(e,{isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,daysDisabled:t.daysDisabled,datesDisabled:t.datesDisabled,hoveredDate:t.hoveredDate,selectedDate:t.selectedDate,selectedRange:t.selectedRange,displayMonths:t.displayMonths,dateCustomClasses:t.dateCustomClasses,monthIndex:n}));return Object.assign({},t,{flaggedMonths:e})}if("month"===t.view.mode){const e=t.monthsCalendar.map((e,n)=>{return r={isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,hoveredMonth:t.hoveredMonth,selectedDate:t.selectedDate,displayMonths:t.displayMonths,monthIndex:n},(a=e).months.forEach((t,e)=>{t.forEach((t,n)=>{const i=Object(o.w)(t.date,r.hoveredMonth),s=r.isDisabled||x(t.date,r.minDate,r.maxDate),u=Object(o.w)(t.date,r.selectedDate),d=Object.assign(t,{isHovered:i,isDisabled:s,isSelected:u});t.isHovered===d.isHovered&&t.isDisabled===d.isDisabled&&t.isSelected===d.isSelected||(a.months[e][n]=d)})}),a.hideLeftArrow=r.monthIndex>0&&r.monthIndex!==r.displayMonths,a.hideRightArrow=r.monthIndex<r.displayMonths&&r.monthIndex+1!==r.displayMonths,a.disableLeftArrow=_(Object(o.F)(a.months[0][0].date,{year:-1}),r.minDate,r.maxDate),a.disableRightArrow=_(Object(o.F)(a.months[0][0].date,{year:1}),r.minDate,r.maxDate),a;var a,r});return Object.assign({},t,{flaggedMonthsCalendar:e})}if("year"===t.view.mode){const e=t.yearsCalendarModel.map((e,n)=>function(t,e){t.years.forEach((n,a)=>{n.forEach((n,r)=>{const i=Object(o.x)(n.date,e.hoveredYear),s=e.isDisabled||_(n.date,e.minDate,e.maxDate),u=Object(o.x)(n.date,e.selectedDate),d=Object.assign(n,{isHovered:i,isDisabled:s,isSelected:u});n.isHovered===d.isHovered&&n.isDisabled===d.isDisabled&&n.isSelected===d.isSelected||(t.years[a][r]=d)})}),t.hideLeftArrow=e.yearIndex>0&&e.yearIndex!==e.displayMonths,t.hideRightArrow=e.yearIndex<e.displayMonths&&e.yearIndex+1!==e.displayMonths,t.disableLeftArrow=_(Object(o.F)(t.years[0][0].date,{year:-1}),e.minDate,e.maxDate);const n=t.years.length-1,a=t.years[n].length-1;return t.disableRightArrow=_(Object(o.F)(t.years[n][a].date,{year:1}),e.minDate,e.maxDate),t}(e,{isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,hoveredYear:t.hoveredYear,selectedDate:t.selectedDate,displayMonths:t.displayMonths,yearIndex:n}));return Object.assign({},t,{yearsCalendarFlagged:e})}return t}(t);case p.NAVIGATE_OFFSET:return function(t,e){const n={view:{mode:t.view.mode,date:L(t,e)}};return Object.assign({},t,n)}(t,e);case p.NAVIGATE_TO:{const n=e.payload,a=Object(o.E)(t.view.date,n.unit);let r,i;return I(n.viewMode,t.minMode)?(i=n.viewMode,r={view:{date:a,mode:i}}):(i=t.view.mode,r={selectedDate:a,view:{date:a,mode:i}}),Object.assign({},t,r)}case p.CHANGE_VIEWMODE:return I(e.payload,t.minMode)?Object.assign({},t,{view:{date:t.view.date,mode:e.payload}}):t;case p.HOVER:return Object.assign({},t,{hoveredDate:e.payload});case p.SELECT:{const n={selectedDate:e.payload,view:t.view},a=t.view.mode,r=P(e.payload||t.view.date,t.minDate,t.maxDate);return n.view={mode:a,date:r},Object.assign({},t,n)}case p.SET_OPTIONS:{const n=e.payload,a=n.minMode?n.minMode:t.view.mode,r=P(Object(o.r)(n.value)&&n.value||Object(o.o)(n.value)&&Object(o.r)(n.value[0])&&n.value[0]||t.view.date,n.minDate,n.maxDate);return n.view={mode:a,date:r},n.value&&(Object(o.o)(n.value)&&(n.selectedRange=n.value),n.value instanceof Date&&(n.selectedDate=n.value)),Object.assign({},t,n)}case p.SELECT_RANGE:{const n={selectedRange:e.payload,view:t.view},a=t.view.mode,r=P(e.payload&&e.payload[0]||t.view.date,t.minDate,t.maxDate);return n.view={mode:a,date:r},Object.assign({},t,n)}case p.SET_MIN_DATE:return Object.assign({},t,{minDate:e.payload});case p.SET_MAX_DATE:return Object.assign({},t,{maxDate:e.payload});case p.SET_IS_DISABLED:return Object.assign({},t,{isDisabled:e.payload});case p.SET_DATE_CUSTOM_CLASSES:return Object.assign({},t,{dateCustomClasses:e.payload});default:return t}}function L(t,e){if("year"===t.view.mode&&"year"===t.minMode){const n=T(t,0),a=Object(o.F)(n,{year:-R});return Object(o.F)(a,e.payload)}return Object(o.F)(Object(o.G)(t.view.date,"month"),e.payload)}function D(t){return{locale:t.locale,monthTitle:t.monthTitle,yearTitle:t.yearTitle,dayLabel:t.dayLabel,monthLabel:t.monthLabel,yearLabel:t.yearLabel,weekNumbers:t.weekNumbers}}function P(t,e,n){const a=Array.isArray(t)?t[0]:t;return e&&Object(o.n)(e,a,"day")?e:n&&Object(o.p)(n,a,"day")?n:a}class M extends d.b{constructor(){const t=new u.a({type:"[datepicker] dispatcher init"});super(t,E,new d.a(v,t,E))}}class q extends g{constructor(t,e,n,r,i,s,o){super(),this._config=e,this._store=n,this._element=r,this._actions=i,this._positionService=o,this.valueChange=new a.EventEmitter,this.animationState="void",this._subs=[],this._effects=s,t.setStyle(r.nativeElement,"display","block"),t.setStyle(r.nativeElement,"position","absolute")}set value(t){this._effects.setValue(t)}ngOnInit(){this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}},allowedPositions:["top","bottom"]}),this._positionService.event$.pipe(Object(s.a)(1)).subscribe(()=>{this._positionService.disable(),this.animationState=this._config.isAnimated?this.isTopPosition?"animated-up":"animated-down":"unanimated"}),this.isOtherMonthsActive=this._config.selectFromOtherMonth,this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(t=>t.selectedDate).subscribe(t=>this.valueChange.emit(t)))}get isTopPosition(){return this._element.nativeElement.classList.contains("top")}positionServiceEnable(){this._positionService.enable()}daySelectHandler(t){(this.isOtherMonthsActive?t.isDisabled:t.isOtherMonth||t.isDisabled)||this._store.dispatch(this._actions.select(t.date))}ngOnDestroy(){for(const t of this._subs)t.unsubscribe();this._effects.destroy()}}class j{constructor(t,e,n,r,i){this._config=t,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new a.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=i.createLoader(e,r,n),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}get isOpen(){return this._datepicker.isShown}set isOpen(t){t?this.show():this.hide()}set bsValue(t){this._bsValue&&t&&this._bsValue.getTime()===t.getTime()||(this._bsValue=t,this.bsValueChange.emit(t))}ngOnInit(){this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:()=>this.show()}),this.setConfig()}ngOnChanges(t){this._datepickerRef&&this._datepickerRef.instance&&(t.minDate&&(this._datepickerRef.instance.minDate=this.minDate),t.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),t.daysDisabled&&(this._datepickerRef.instance.daysDisabled=this.daysDisabled),t.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),t.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled),t.dateCustomClasses&&(this._datepickerRef.instance.dateCustomClasses=this.dateCustomClasses))}show(){this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:h,useValue:this._config}).attach(q).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(t=>{this._datepickerRef.instance.value=t})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(t=>{this.bsValue=t,this.hide()})))}hide(){this.isOpen&&this._datepicker.hide();for(const t of this._subs)t.unsubscribe()}toggle(){if(this.isOpen)return this.hide();this.show()}setConfig(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,daysDisabled:this.daysDisabled||this.bsConfig&&this.bsConfig.daysDisabled,dateCustomClasses:this.dateCustomClasses||this.bsConfig&&this.bsConfig.dateCustomClasses,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled,minMode:this.minMode||this.bsConfig&&this.bsConfig.minMode})}ngOnDestroy(){this._datepicker.dispose()}}class F extends h{}class G extends q{constructor(t,e,n,a,r,i,s){super(t,e,n,a,r,i,s),t.setStyle(a.nativeElement,"display","inline-block"),t.setStyle(a.nativeElement,"position","static")}}class V extends h{constructor(){super(...arguments),this.displayMonths=2,this.isAnimated=!1}}class z extends g{constructor(t,e,n,r,i,s,o){super(),this._config=e,this._store=n,this._element=r,this._actions=i,this._positionService=o,this.valueChange=new a.EventEmitter,this.animationState="void",this._rangeStack=[],this._subs=[],this._effects=s,t.setStyle(r.nativeElement,"display","block"),t.setStyle(r.nativeElement,"position","absolute")}set value(t){this._effects.setRangeValue(t)}ngOnInit(){this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}},allowedPositions:["top","bottom"]}),this._positionService.event$.pipe(Object(s.a)(1)).subscribe(()=>{this._positionService.disable(),this.animationState=this._config.isAnimated?this.isTopPosition?"animated-up":"animated-down":"unanimated"}),this.containerClass=this._config.containerClass,this.isOtherMonthsActive=this._config.selectFromOtherMonth,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(t=>t.selectedRange).subscribe(t=>this.valueChange.emit(t)))}get isTopPosition(){return this._element.nativeElement.classList.contains("top")}positionServiceEnable(){this._positionService.enable()}daySelectHandler(t){(this.isOtherMonthsActive?t.isDisabled:t.isOtherMonth||t.isDisabled)||(1===this._rangeStack.length&&(this._rangeStack=t.date>=this._rangeStack[0]?[this._rangeStack[0],t.date]:[t.date]),0===this._rangeStack.length&&(this._rangeStack=[t.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))}ngOnDestroy(){for(const t of this._subs)t.unsubscribe();this._effects.destroy()}}class B extends z{constructor(t,e,n,a,r,i,s){super(t,e,n,a,r,i,s),t.setStyle(a.nativeElement,"display","inline-block"),t.setStyle(a.nativeElement,"position","static")}}class Y{constructor(t,e,n,a,r){this._picker=t,this._localeService=e,this._renderer=n,this._elRef=a,this.changeDetection=r,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(t=>{let e=t;if(t){const n=this._localeService.currentLocale,a=Object(o.k)(n);if(!a)throw new Error(`Locale "${n}" is not defined, please add it with "defineLocale(...)"`);e=a.preinput(t)}this._setInputValue(e),this._value!==e&&(this._value=e,this._onChange(e),this._onTouched()),this.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(()=>{this._setInputValue(this._value)})}_setInputValue(t){const e=t?Object(o.f)(t,this._picker._config.dateInputFormat,this._localeService.currentLocale):"";this._renderer.setProperty(this._elRef.nativeElement,"value",e)}onChange(t){this.writeValue(t.target.value),this._onChange(this._value),this._onTouched()}validate(t){const e=t.value;if(null==e||""===e)return null;if(Object(o.q)(e)){if(!Object(o.r)(e))return{bsDate:{invalid:e}};if(this._picker&&this._picker.minDate&&Object(o.p)(e,this._picker.minDate,"date"))return this.writeValue(this._picker.minDate),{bsDate:{minDate:this._picker.minDate}};if(this._picker&&this._picker.maxDate&&Object(o.n)(e,this._picker.maxDate,"date"))return this.writeValue(this._picker.maxDate),{bsDate:{maxDate:this._picker.maxDate}}}}registerOnValidatorChange(t){this._validatorChange=t}writeValue(t){if(t){const e=this._localeService.currentLocale;if(!Object(o.k)(e))throw new Error(`Locale "${e}" is not defined, please add it with "defineLocale(...)"`);this._value=Object(o.B)(t,this._picker._config.dateInputFormat,this._localeService.currentLocale),this._picker._config.useUtc&&(this._value=Object(o.H)(this._value))}else this._value=null;this._picker.bsValue=this._value}setDisabledState(t){this._picker.isDisabled=t,t?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}onBlur(){this._onTouched()}hide(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()}}class H extends h{constructor(){super(...arguments),this.displayMonths=2}}class U{}class W{}class K{}class ${constructor(t,e,n){this._config=t,this._elRef=e,this._renderer=n}ngOnInit(){this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass),"string"==typeof this.day.customClasses&&this.day.customClasses.split(" ").filter(t=>t).forEach(t=>{this._renderer.addClass(this._elRef.nativeElement,t)})}}const Z=function(){var t={UP:0,DOWN:1};return t[t.UP]="UP",t[t.DOWN]="DOWN",t}();class J{constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter}navTo(t){this.onNavigate.emit(t?Z.DOWN:Z.UP)}view(t){this.onViewMode.emit(t)}}class Q{constructor(t){this._config=t,this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter,this.onHoverWeek=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{month:Z.DOWN===t?-1:1}})}changeViewMode(t){this.onViewMode.emit(t)}selectDay(t){this.onSelect.emit(t)}selectWeek(t){if(!this._config.selectWeek)return;if(t.days&&t.days[0]&&!t.days[0].isDisabled&&this._config.selectFromOtherMonth)return void this.onSelect.emit(t.days[0]);if(0===t.days.length)return;const e=t.days.find(t=>this._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled);this.onSelect.emit(e)}weekHoverHandler(t,e){this._config.selectWeek&&t.days.find(t=>this._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled)&&(t.isHovered=e,this.isWeekHovered=e,this.onHoverWeek.emit(t))}hoverDay(t,e){this._config.selectFromOtherMonth&&t.isOtherMonth&&(t.isOtherMonthHovered=e),this.onHover.emit({cell:t,isHovered:e})}}class X{constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{year:Z.DOWN===t?-1:1}})}viewMonth(t){this.onSelect.emit(t)}hoverMonth(t,e){this.onHover.emit({cell:t,isHovered:e})}changeViewMode(t){this.onViewMode.emit(t)}}class tt{constructor(){this.ampm="ok",this.hours=0,this.minutes=0}}class et{constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{year:16*(Z.DOWN===t?-1:1)}})}viewYear(t){this.onSelect.emit(t)}hoverYear(t,e){this.onHover.emit({cell:t,isHovered:e})}changeViewMode(t){this.onViewMode.emit(t)}}class nt{static forRoot(){return{ngModule:nt,providers:[c.a,l.a,M,p,h,H,F,V,m,b]}}}class at{format(t,e,n){return Object(o.f)(t,e,n)}}class rt{constructor(){this.selectionDone=new a.EventEmitter(void 0),this.update=new a.EventEmitter(!1),this.activeDateChange=new a.EventEmitter(void 0),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new at}get activeDate(){return this._activeDate}set activeDate(t){this._activeDate=t}ngOnInit(){this.uniqueId=`datepicker--${Math.floor(1e4*Math.random())}`,this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):void 0===this.activeDate&&(this.activeDate=new Date)}ngOnChanges(t){this.refreshView(),this.checkIfActiveDateGotUpdated(t.activeDate)}checkIfActiveDateGotUpdated(t){if(t&&!t.firstChange){const e=t.previousValue;e&&e instanceof Date&&e.getTime()!==t.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}}setCompareHandler(t,e){"day"===e&&(this.compareHandlerDay=t),"month"===e&&(this.compareHandlerMonth=t),"year"===e&&(this.compareHandlerYear=t)}compare(t,e){if(void 0!==t&&void 0!==e)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(t,e):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(t,e):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(t,e):void 0}setRefreshViewHandler(t,e){"day"===e&&(this.refreshViewHandlerDay=t),"month"===e&&(this.refreshViewHandlerMonth=t),"year"===e&&(this.refreshViewHandlerYear=t)}refreshView(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()}dateFilter(t,e){return this.dateFormatter.format(t,e,this.locale)}isActive(t){return 0===this.compare(t.date,this.activeDate)&&(this.activeDateId=t.uid,!0)}createDateObject(t,e){const n={};return n.date=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(t,e),n.selected=0===this.compare(t,this.selectedDate),n.disabled=this.isDisabled(t),n.current=0===this.compare(t,new Date),n.customClass=this.getCustomClassForDate(n.date),n}split(t,e){const n=[];for(;t.length>0;)n.push(t.splice(0,e));return n}fixTimeZone(t){const e=t.getHours();return new Date(t.getFullYear(),t.getMonth(),t.getDate(),23===e?e+2:0)}select(t,e=!0){this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()}move(t){let e;if("day"===this.datepickerMode&&(e=this.stepDay),"month"===this.datepickerMode&&(e=this.stepMonth),"year"===this.datepickerMode&&(e=this.stepYear),e){const n=this.activeDate.getFullYear()+t*(e.years||0),a=this.activeDate.getMonth()+t*(e.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}}toggleMode(t){const e=t||1;this.datepickerMode===this.maxMode&&1===e||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.refreshView())}getCustomClassForDate(t){if(!this.customClass)return"";const e=this.customClass.find(e=>e.date.valueOf()===t.valueOf()&&e.mode===this.datepickerMode,this);return void 0===e?"":e.clazz}compareDateDisabled(t,e){if(void 0!==t&&void 0!==e)return"day"===t.mode&&this.compareHandlerDay?this.compareHandlerDay(t.date,e):"month"===t.mode&&this.compareHandlerMonth?this.compareHandlerMonth(t.date,e):"year"===t.mode&&this.compareHandlerYear?this.compareHandlerYear(t.date,e):void 0}isDisabled(t){let e=!1;return this.dateDisabled&&this.dateDisabled.forEach(n=>{0===this.compareDateDisabled(n,t)&&(e=!0)}),this.dayDisabled&&(e=e||this.dayDisabled.indexOf(t.getDay())>-1),e||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0}}class it{constructor(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}}class st{constructor(t){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new a.EventEmitter(void 0),this.activeDateChange=new a.EventEmitter(void 0),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=t,this.configureOptions()}get activeDate(){return this._activeDate||this._now}set activeDate(t){this._activeDate=t}configureOptions(){Object.assign(this,this.config)}onUpdate(t){this.activeDate=t,this.onChange(t)}onSelectionDone(t){this.selectionDone.emit(t)}onActiveDateChange(t){this.activeDateChange.emit(t)}writeValue(t){if(0!==this._datePicker.compare(t,this._activeDate))return t&&t instanceof Date?(this.activeDate=t,void this._datePicker.select(t,!1)):void(this.activeDate=t?new Date(t):void 0)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}}class ot{constructor(t){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=t}get isBs4(){return!Object(f.d)()}ngOnInit(){const t=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler((function(){const e=this.activeDate.getFullYear(),n=this.activeDate.getMonth(),a=new Date(e,n,1),r=this.startingDay-a.getDay(),i=r>0?7-r:-r,s=new Date(a.getTime());i>0&&s.setDate(1-i);const o=t.getDates(s,42),u=[];for(let t=0;t<42;t++){const e=this.createDateObject(o[t],this.formatDay);e.secondary=o[t].getMonth()!==n,e.uid=this.uniqueId+"-"+t,u[t]=e}t.labels=[];for(let d=0;d<7;d++)t.labels[d]={},t.labels[d].abbr=this.dateFilter(u[d].date,this.formatDayHeader),t.labels[d].full=this.dateFilter(u[d].date,"EEEE");if(t.title=this.dateFilter(this.activeDate,this.formatDayTitle),t.rows=this.split(u,7),this.showWeeks){t.weekNumbers=[];const e=(11-this.startingDay)%7,n=t.rows.length;for(let a=0;a<n;a++)t.weekNumbers.push(t.getISO8601WeekNumber(t.rows[a][e].date))}}),"day"),this.datePicker.setCompareHandler((function(t,e){const n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),a=new Date(e.getFullYear(),e.getMonth(),e.getDate());return n.getTime()-a.getTime()}),"day"),this.datePicker.refreshView()}getDates(t,e){const n=new Array(e);let a,r=new Date(t.getTime()),i=0;for(;i<e;)a=new Date(r.getTime()),a=this.datePicker.fixTimeZone(a),n[i++]=a,r=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return n}getISO8601WeekNumber(t){const e=new Date(t.getTime());e.setDate(e.getDate()+4-(e.getDay()||7));const n=e.getTime();return e.setMonth(0),e.setDate(1),Math.floor(Math.round((n-e.getTime())/864e5)/7)+1}}class ut{constructor(t){this.rows=[],this.datePicker=t}get isBs4(){return!Object(f.d)()}ngOnInit(){const t=this;this.datePicker.stepMonth={years:1},this.datePicker.setRefreshViewHandler((function(){const e=new Array(12),n=this.activeDate.getFullYear();let a;for(let t=0;t<12;t++)a=new Date(n,t,1),a=this.fixTimeZone(a),e[t]=this.createDateObject(a,this.formatMonth),e[t].uid=this.uniqueId+"-"+t;t.title=this.dateFilter(this.activeDate,this.formatMonthTitle),t.rows=this.split(e,t.datePicker.monthColLimit)}),"month"),this.datePicker.setCompareHandler((function(t,e){const n=new Date(t.getFullYear(),t.getMonth()),a=new Date(e.getFullYear(),e.getMonth());return n.getTime()-a.getTime()}),"month"),this.datePicker.refreshView()}}class dt{constructor(t){this.rows=[],this.datePicker=t}get isBs4(){return!Object(f.d)()}ngOnInit(){const t=this;this.datePicker.stepYear={years:this.datePicker.yearRange},this.datePicker.setRefreshViewHandler((function(){const e=new Array(this.yearRange);let n;const a=t.getStartingYear(this.activeDate.getFullYear());for(let t=0;t<this.yearRange;t++)n=new Date(a+t,0,1),n=this.fixTimeZone(n),e[t]=this.createDateObject(n,this.formatYear),e[t].uid=this.uniqueId+"-"+t;t.title=[e[0].label,e[this.yearRange-1].label].join(" - "),t.rows=this.split(e,t.datePicker.yearColLimit)}),"year"),this.datePicker.setCompareHandler((function(t,e){return t.getFullYear()-e.getFullYear()}),"year"),this.datePicker.refreshView()}getStartingYear(t){return(t-1)/this.datePicker.yearRange*this.datePicker.yearRange+1}}class lt{static forRoot(){return{ngModule:lt,providers:[it]}}}},ijCd:function(t,e,n){var a=n("R/W3"),r=n("MMmD"),i=n("4qC0"),s=n("Sxd8"),o=n("P/G1"),u=Math.max;t.exports=function(t,e,n,d){t=r(t)?t:o(t),n=n&&!d?s(n):0;var l=t.length;return n<0&&(n=u(l+n,0)),i(t)?n<=l&&t.indexOf(e,n)>-1:!!l&&a(t,e,n)>-1}},insk:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");n("+0ag"),n("mSOc"),n("20UP");class r{constructor(t,e,n,r,i){this.summaryService=t,this.sanitizer=e,this.settingsService=n,this.cephReleaseNamePipe=r,this.i18n=i,this.grafanaExist=!1,this.mode="&kiosk",this.loading=!0,this.styles={},this.dashboardExist=!0,this.icons=a.a,this.DEFAULT_TIME="from=now-1h&to=now",this.grafanaTimes=[{name:this.i18n("Last 5 minutes"),value:"from=now-5m&to=now"},{name:this.i18n("Last 15 minutes"),value:"from=now-15m&to=now"},{name:this.i18n("Last 30 minutes"),value:"from=now-30m&to=now"},{name:this.i18n("Last 1 hour (Default)"),value:"from=now-1h&to=now"},{name:this.i18n("Last 3 hours"),value:"from=now-3h&to=now"},{name:this.i18n("Last 6 hours"),value:"from=now-6h&to=now"},{name:this.i18n("Last 12 hours"),value:"from=now-12h&to=now"},{name:this.i18n("Last 24 hours"),value:"from=now-24h&to=now"},{name:this.i18n("Yesterday"),value:"from=now-1d%2Fd&to=now-1d%2Fd"},{name:this.i18n("Today"),value:"from=now%2Fd&to=now%2Fd"},{name:this.i18n("Today so far"),value:"from=now%2Fd&to=now"},{name:this.i18n("Day before yesterday"),value:"from=now-2d%2Fd&to=now-2d%2Fd"},{name:this.i18n("Last 2 days"),value:"from=now-2d&to=now"},{name:this.i18n("This day last week"),value:"from=now-7d%2Fd&to=now-7d%2Fd"},{name:this.i18n("Previous week"),value:"from=now-1w%2Fw&to=now-1w%2Fw"},{name:this.i18n("This week"),value:"from=now%2Fw&to=now%2Fw"},{name:this.i18n("This week so far"),value:"from=now%2Fw&to=now"},{name:this.i18n("Last 7 days"),value:"from=now-7d&to=now"},{name:this.i18n("Previous month"),value:"from=now-1M%2FM&to=now-1M%2FM"},{name:this.i18n("This month"),value:"from=now%2FM&to=now%2FM"},{name:this.i18n("This month so far"),value:"from=now%2FM&to=now"},{name:this.i18n("Last 30 days"),value:"from=now-30d&to=now"},{name:this.i18n("Last 90 days"),value:"from=now-90d&to=now"},{name:this.i18n("Last 6 months"),value:"from=now-6M&to=now"},{name:this.i18n("Last 1 year"),value:"from=now-1y&to=now"},{name:this.i18n("Previous year"),value:"from=now-1y%2Fy&to=now-1y%2Fy"},{name:this.i18n("This year"),value:"from=now%2Fy&to=now%2Fy"},{name:this.i18n("This year so far"),value:"from=now%2Fy&to=now"},{name:this.i18n("Last 2 years"),value:"from=now-2y&to=now"},{name:this.i18n("Last 5 years"),value:"from=now-5y&to=now"}]}ngOnInit(){this.time=this.DEFAULT_TIME,this.styles={one:"grafana_one",two:"grafana_two",three:"grafana_three"};const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`+"#enabling-the-embedding-of-grafana-dashboards",setTimeout(()=>{t.unsubscribe()},0)});this.settingsService.ifSettingConfigured("api/grafana/url",t=>{this.grafanaExist=!0,this.loading=!1,this.baseUrl=t+"/d/",this.getFrame()}),this.panelStyle=this.styles[this.grafanaStyle]}getFrame(){this.settingsService.validateGrafanaDashboardUrl(this.uid).subscribe(t=>this.dashboardExist=200===t),this.url=this.baseUrl+this.uid+"/"+this.grafanaPath+"&refresh=2s"+this.mode+"&"+this.time,this.grafanaSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.url)}onTimepickerChange(){this.grafanaExist&&this.getFrame()}reset(){this.time=this.DEFAULT_TIME,this.grafanaExist&&this.getFrame()}ngOnChanges(){this.grafanaExist&&this.getFrame()}}},iqWW:function(t,e,n){"use strict";var a=n("ZUd8").charAt;t.exports=function(t,e,n){return e+(n?a(t,e).length:1)}},itsj:function(t,e){t.exports=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}},iutN:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("8Y7J"),r=n("FE24"),i=n("GS7A"),s=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function o(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,1,"div",[],[[2,"dropup",null],[2,"dropdown",null],[2,"show",null],[2,"open",null]],null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){var n=e.component;t(e,0,0,"up"===n.direction,"down"===n.direction,n.isOpen,n.isOpen)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-dropdown-container",[["style","display:block;position: absolute;"]],null,null,null,o,s)),a["ɵdid"](1,180224,null,0,r.b,[r.f,a.ChangeDetectorRef,a.Renderer2,a.ElementRef,i.b],null,null)],null,null)}var d=a["ɵccf"]("bs-dropdown-container",r.b,u,{},{},["*"])},j8L6:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("25BL"),i=n("uIqm"),s=n("DqMs"),o=n("/NlG"),u=n("GiVz"),d=n("o4+5"),l=n("aXbf"),c=n("SVse");n("b5OY"),n("pxLl"),n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return b}));var f=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function h(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," "," "])),a["ɵppd"](1,1)],null,(function(t,e){var n=a["ɵunv"](e,0,0,t(e,1,0,a["ɵnov"](e.parent.parent,0),e.context.row.value));t(e,0,0,n,e.context.row.unit)}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getCounters(n)&&a),a}),r.b,r.a)),a["ɵdid"](1,2867200,null,0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},{fetchData:"fetchData"}),(t()(),a["ɵand"](0,[[1,2],["valueTpl",2]],null,0,null,h))],(function(t,e){var n=e.component;t(e,1,0,n.counters,n.columns,"flex",!1)}),null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,s.b,s.a)),a["ɵdid"](1,114688,null,0,o.a,[u.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Performance counters not available"]))],(function(t,e){t(e,1,0,"warning")}),null)}function b(t){return a["ɵvid"](0,[a["ɵpid"](0,d.a,[l.a]),a["ɵqud"](671088640,1,{valueTpl:0}),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](3,16384,null,0,c.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["warning",2]],null,0,null,p))],(function(t,e){t(e,3,0,e.component.counters,a["ɵnov"](e,4))}),null)}},"jKX/":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));class a{constructor(t=[]){["read","create","update","delete"].forEach(e=>this[e]=t.includes(e))}}class r{constructor(t){this.hosts=new a(t.hosts),this.configOpt=new a(t["config-opt"]),this.pool=new a(t.pool),this.osd=new a(t.osd),this.monitor=new a(t.monitor),this.rbdImage=new a(t["rbd-image"]),this.iscsi=new a(t.iscsi),this.rbdMirroring=new a(t["rbd-mirroring"]),this.rgw=new a(t.rgw),this.cephfs=new a(t.cephfs),this.manager=new a(t.manager),this.log=new a(t.log),this.user=new a(t.user),this.grafana=new a(t.grafana),this.prometheus=new a(t.prometheus),this.nfs=new a(t["nfs-ganesha"])}}},jUeY:function(t,e,n){!function(t){"use strict";t.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(t,e,n){return t>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(t){return"μ"===(t+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/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:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,e){var n,a=this._calendarEl[t],r=e&&e.hours();return((n=a)instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(a=a.apply(e)),a.replace("{}",r%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n("wd/R"))},jV1L:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Component)({selector:"tree-node-expander",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <span\n        *ngIf="node.hasChildren"\n        [class.toggle-children-wrapper-expanded]="node.isExpanded"\n        [class.toggle-children-wrapper-collapsed]="node.isCollapsed"\n        class="toggle-children-wrapper"\n        (click)="node.mouseAction(\'expanderClick\', $event)"\n      >\n        <span class="toggle-children"></span>\n      </span>\n      <span *ngIf="!node.hasChildren" class="toggle-children-placeholder">\n      </span>\n    </ng-container>\n  '})],t)}()},jVDg:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n){this.poolName=t,this.namespace=e,this.imageName=n}static fromString(t){const e=t.split("/");return new this(e[0],e.length>=3?e[1]:null,e.length>=3?e[2]:e[1])}getNameSpace(){return this.namespace?`${this.namespace}/`:""}toString(){return`${this.poolName}/${this.getNameSpace()}${this.imageName}`}toStringEncoded(){return encodeURIComponent(`${this.poolName}/${this.getNameSpace()}${this.imageName}`)}}},jVdC:function(t,e,n){!function(t){"use strict";var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function a(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function r(t,e,n){var r=t+" ";switch(n){case"ss":return r+(a(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return r+(a(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return r+(a(t)?"godziny":"godzin");case"MM":return r+(a(t)?"miesiące":"miesięcy");case"yy":return r+(a(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,a){return t?""===a?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(a)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_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ś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},jZKg:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("HDdC"),r=n("quSY");function i(t,e){return new a.a(n=>{const a=new r.a;let i=0;return a.add(e.schedule((function(){i!==t.length?(n.next(t[i++]),n.closed||a.add(this.schedule())):n.complete()}))),a})}},jeLo:function(t,e,n){var a=n("juv8"),r=n("mTTR");t.exports=function(t){return a(t,r(t))}},jfSC:function(t,e,n){!function(t){"use strict";var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};t.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".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:/قبل از ظهر|بعد از ظهر/,isPM:function(t){return/بعد از ظهر/.test(t)},meridiem:function(t,e,n){return t<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(t){return t.replace(/[۰-۹]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n("wd/R"))},jnO4:function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},i=function(t){return function(e,n,i,s){var o=a(e),u=r[t][a(e)];return 2===o&&(u=u[n?0:1]),u.replace(/%d/i,e)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:i("s"),ss:i("s"),m:i("m"),mm:i("m"),h:i("h"),hh:i("h"),d:i("d"),dd:i("d"),M:i("M"),MM:i("M"),y:i("y"),yy:i("y")},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},jqst:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="id-ID">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Pengalih navigasi</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dasbor</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klaster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hos</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Layanan</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfigurasi</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>peta CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Modul Ceph Manajer</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Log</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blok</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Pencerminan</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemfile</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Pengguna</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Buket</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Pilih bahasa</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Memuat data panel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Pemilih Waktu Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Reset Pengaturan</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Kembali</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Gagal memuat data.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>dipilih</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>ditemukan</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nama</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Deskripsi</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Deskripsi lengkap</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Bawaan</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon bawaan</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Nilai</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Simpan</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Penampil peta CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Memuat...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nama hos</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Isian ini tidak boleh kosong.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ya, saya yakin.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Batal</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Tutup</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Daftar Hos</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Performa Keseluruhan</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Entri tidak ditemukan</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Log Klaster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Log Audit</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Memuat konfigurasi...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Konfigurasi tidak dapat dimuat.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Edit modul Ceph Manajer</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Nilai yang dimasukkan bukan UUID yang valid, cth: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Nilai yang dimasukkan harus alamat IP yang valid.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Nilai yang dimasukkan harus berupa angka.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Nilai yang dimasukkan harus berupa angka atau desimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Perbarui</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID Klaster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap diubah</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kuorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kuorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con yang dibutuhkan</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon yang dibutuhkan</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Memenuhi Kuorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Tidak dalam Kuorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Tambah</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Fitur</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flag OSD Klaster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Kirim</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Tingkat lanjut...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioritas pemulihan OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioritas</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Ubah nilai prioritas</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Isian ini harus diisi!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Nilai harus antara 0 dan 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ubah bobot</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Dalam } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {dalam } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Daftar OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Nilai</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Edit</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Hapus</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Kesehatan</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistik </target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klien</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Semua klien dapat mengakses</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Alamat</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Wajib diisi</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Harus mengandung satu atau lebih nilai yang dipisahkan koma</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Contoh:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipe Akses</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Tambah klien</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Klaster tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Pilih klaster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Tambah daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend Penyimpanan</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Tidak ada pool data tersedia --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Pilih backend penyimpanan --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Pengguna Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Pengguna tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Pilih pengguna gerbang objek --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID Pengguna CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Klien tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Pilih klien cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nama CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Label Keamanan</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Aktifkan label keamanan</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS Path</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Lintasan atau path harus dimulai dengan \'/\' dan diikuti dengan kata</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Direktori baru akan dibuat</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Path</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Path hanya boleh berupa \'/\' atau kata</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Buket baru akan dibuat</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protokol NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klien mungkin tidak dapat mount subdirektori (cth. jika Tag = foo, klien mungkin tidak bisa mount foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Dengan menggunakan opsi Tag yang berbeda, Path yang sama akan diekspor beberapa kali.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Dengan menggunakan opsi Pseudo yang berbeda, Path yang sama akan diekspor beberapa kali.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Tipe akses tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Pilih tipe akses --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Squash tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Pilih jenis squashing id pengguna yang akan dilakukan --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protokol Transport</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Selamat datang di Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nama pengguna harus diisi</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Kata sandi harus diisi</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Masuk</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Maaf, pengguna tidak terdaftar di Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Terlarang</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Maaf, Anda tidak dizinkan melihat hal yang Anda inginkan.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Konfigurasi RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Menghapus nilai konfigurasi lokal. Nilai konfigurasi induk akan diturun dan digunakan.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Nilai minimum adalah 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Daftar pool</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Nama hanya boleh terdiri dari alfanumerik, tanda hubung, dan garis bawah.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Nama profil erasure code sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Pecahan data (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Harus sama dengan atau lebih dari 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Pecahan Coding (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Harus sama dengan atau lebih dari 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Penduga daya tahan (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Lokalitas (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domain kegagalan Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalitas Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Tidak ada</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Teknik</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Ukuran paket</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crush root</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Kelas perangkat Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>apa saja</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Direktori</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nama...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Nama pool Ceph yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Jenis pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Pilih jenis pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grup penempatan</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Dibutuhkan setidaknya satu grup penempatan!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Klaster Anda tidak dapat menangani PG sebanyak ini. Mohon hitung ulang jumlah PG yang dibutuhkan.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Bantuan penghitungan</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Jumlah replikasi</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flag</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC Overwrites</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplikasi</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil erasure code</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Tidak ada profil erasure code --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Pilih profil erasure code --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Aturan CRUSH</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Pilih aturan crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Aturan crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush steps</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Kompresi</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Mode</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritma</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Tidak ada algoritma pengompresian erasure --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Ukuran blob minimum</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>cth. 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Nilai harus lebih besar dari 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Ukuran maksimum blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>cth. 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Nilai harus lebih besar dari ukuran minimum blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rasio</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rasio kompresi</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Nilai harus antara 0.0 dan 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>cth. 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detail</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detail Performa</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detil Cache Bertingkat</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Pindahkan image ke tempat sampah</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Proteksi berakhir pada</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>TIDAK DIPROTEKSI</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Format tanggal salah. Mohon gunakan "TTTT-BB-HH JJ:mm:dd".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Proteksi telah kedaluarsa. Mohon pilih tanggal masa mendatang atau kosongkan.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Pindahkan Image</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Ikhtisar</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Target</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Otentikasi Discovery</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Pengguna</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nama pengguna harus terdiri dari 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Kata sandi</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Pengguna Bersama</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Kata sandi bersama</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informasi tersedia:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI Target tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool Data</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Dibuat</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Ukuran</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objek</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Ukuran objek</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Disiapkan</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total disiapkan</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unit setrip</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Jumlah setrip</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Induk</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Awalan nama blok</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Urutan</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshot</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Pengaturan ini akan membatalkan nilai global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Ini adalah nilai global. Tidak ada nilai yang diset untuk image ini.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' dan \'@\' tidak diperbolehkan.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Tidak ada pool rbd tersedia --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Pilih pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Gunakan pool data terdedikasi</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool data</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool terdedikasi yang menyimpan data-objek dari RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Anda harus menaikkan ukuran.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Tingkat lanjut</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Setrip</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unit setrip</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Pilih ukuran setrip --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Isian ini harus diisi karena jumlah setrip telah ditentukan!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Unit setrip lebih besar dari ukuran objek.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Jumlah setrip</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Isian wajib diisi karena unit setrip didefinisikan!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Jumlah setrip harus lebih besar dari 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Anda akan mengembalikan semula</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Kosongkan Tempah Sampah</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Semua</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nama Pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Pulihkan Image</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Untuk memulihkan</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>ketik nama baru image dan pilih</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nama Baru</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Kedaluwarsa pada</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Diproteksi hingga</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologi iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Mengganti parameter ini dari nilai bawaan biasanya tidak diperlukan.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Pengaturan</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Konfirmasi</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Pengaturan Lanjut</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Target IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Pola IQN salah.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Contoh: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Informasi lainnya</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Pengaturan lanjutan target ini telah dimodifikasi.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portal</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Tambahkan portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Pengaturan Image ini telah dimodifikasi.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Tambahkan image</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Otentikasi ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Inisiator</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Inisiator</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Klien IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Inisiator IQN harus unik.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nama pengguna harus terdiri atas 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Inisiator termasuk ke dalam grup. Image akan dikonfigurasi di dalam grup.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Tidak ada yang ditambahkan.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Tambahkan inisiator</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grup</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grup</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Tambahkan grup</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Tempat sampah</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Masalah</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Menyinkronkan</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Siap</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Edit mode pencerminan pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Klaster mitra harus dihapus sebelum menonaktfikan pencerminan.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Tambah} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nama Klaster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Nama klaster tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Alamat Monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Alamat dengan pemisah-koma...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Alamat monitor tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX Key</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64-encoded key...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Kunci CephX harus base64 encoded.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Penghitung kinerja tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Daftar Daemon</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Penghitung Performa</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Memuat data buket...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Id</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Nilai tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Nama yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Pemilik</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Pilih pengguna --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Diaktifkan</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Jenis indeks</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Aturan penempatan</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Penanda</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Penanda maksimum</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versi</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versi Master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Modifikasi waktu</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Zona grup</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Kuota Buket</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Ukuran maksimum</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Objek maksimum</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nama pengguna</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Pilih nama pengguna --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Kunci otomatis-dibuat</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Kunci akses</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Kunci rahasia</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nama lengkap</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Alamat email</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Dihentikan</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistem</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Buket maksimum</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subpengguna</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Kemampuan</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Kuota pengguna</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Tampilkan</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Kunci</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipe</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Pilih tipe --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Izin</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Pilih izin --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subpengguna</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>ID subpengguna sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>baca, tulis</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>penuh</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Kunci Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Sandi otomatis-dibuat</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Memuat data pengguna...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Data pengguna tidak dapat dimuat.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>ID pengguna yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ini bukan alamat email yang valid.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Alamat email yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Maks. buket</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Dimatikan</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Ubahsuai</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Kunci S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Tidak ada sub-pengguna.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Kunci tidak ditemukan.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Kemampuan tidak ada.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Ukuran tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Ukuran maks.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objek tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Objek maks.</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Nilai yang dimasukkan harus &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Deskripsi...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Izin</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Peran</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Konfirmasi kata sandi</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Konfirmasi kata sandi tidak sesuai dengan kata sandi.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Email</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Email tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Anda akan menghapus izin "pengguna baca / perbarui" dari diri Anda sendiri.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Jika melanjutkan, Anda tidak akan lagi dapat menambahkan atau menghapus peran dari pengguna manapun.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Anda yakin ingin melanjutkan?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Bantuan</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentasi </target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Tentang</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Pengaturan Dasbor</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Manajemen Pengguna</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Pengguna masuk</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Keluar</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atribut (peta OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadata tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadata</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Penghitung kinerja</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Tulis</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Baca</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Nilai saat ini</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Maks</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Sumber</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Level</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Boleh diperbarui saat dijalankan (bisa diedit)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tag</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Nilai Enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Lihat juga</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status Klaster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manajer Daemon</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Server Metadata</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Gateway iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS klien</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Throughput Pengguna</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Baca/Tulis Klien</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Throughput Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Scrub</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Kinerja</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Kapasitas mentah</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PG per OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapasitas</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Peringkat</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Terkini</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Otentikasi penemuan telah diperbarui</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Tidak ada portal yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Tidak ada image yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Tidak ada image yang tersedia. Mohon pastikan Anda telah menambahkan image ke target.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Tidak ada inisiator tersedia. Mohon pastikan Anda telah menambahkan inisiator ke target.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Target</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Keadaan</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Baca Bytes</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Tulis Bytes</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Ops Baca</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Ops Tulis</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Sejak</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Isu</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Kemajuan</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Mode Edit</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Tambahkan Mitra</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Edit Mitra</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Hapus Mitra</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Pemimpin</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Lokal</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Jauh</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>mitra pencerminan</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Kunci</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Perataan mendalam</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Lapisan</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Kunci eksklusif</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Peta objek (butuh kunci-eksklusif)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Penjurnalan (membutuhkan kunci-eksklusif)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>TIDAK DIPROTEKSI</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Kembalikan snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Kembalikan</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Dihapus pada</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipe</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>keadaan</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versi</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Hos</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>induk</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemon siaga</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Peringkat</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivitas</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Penggunaan</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Diperbarui</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Nilai dapat diperbarui saat runtime.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemon/klien tidak dapat mengambil nilai dari\nbasis data konfigurasi monitor. Kami tidak mengizinkan mengubah ini dari \'ceph config\nset ...\'. Pilihan ini harus dikonfigurasi melalui ceph.conf atau CLI.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Pilihan hanya dapat bekerja selama daemon dimulai.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Pilihan hanya berpengaruh pada pembuatan klaster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Pilihan hanya berpengaruh pada pembuatan daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Layanan</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Nilai saat ini</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Dapat diedit</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Aktifkan</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Nonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Menghubungkan kembali, mohon tunggu...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Alamat Publik</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Buka Sesi</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Tidak boleh Masuk</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD yang telah ditandai keluar tidak akan ditandai masuk saat mereka menyala</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Tidak boleh Keluar</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD tidak akan otomatis ditandai keluar setelah interval dikonfigurasi</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Tidak Nyala</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD tidak diizinkan menyala</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Tidak Mati</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Laporan kegagalan OSD sedang diabaikan sehingga monitor tidak akan menandai OSD mati</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Jeda</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Jeda baca dan tulis</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nonaktifkan Scrub</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Scrubbing dinonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nonaktifkan Deep Scrub</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Deep Scrubing dinonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Tidak ada Penambalan</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Penambalan PG dihentikan</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Tidak ada Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Pemulihan PG dihentikan</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Urutan Bitwise</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Gunakan urutan bitwise</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Buang Snapdirs</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD memiliki snapset yang dikonversi</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Pulihkan yang telah dihapus</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Penghapusan dilakukan saat pemulihan bukan saat bermitra</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Batas Maks Log PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Taruh batas maks pada panjang log pg</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flag OSD diperbarui</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>keluar</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>masuk</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>gugur</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Tandai</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD hilang</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>ditandai hilang</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Buang</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>dibuang</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>hancurkan</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>dihancurkan</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>hapus</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bita baca</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bita tulis</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Ops baca</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Ops tulis</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Maks Penambalan</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Maks Pemulihan Aktif</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Maks Menjalankan Pemulihan Tunggal</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Jeda Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Tugas</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Keparahan</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Dimulai</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Terpakai</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Tersedia</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Bersih</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Bekerja</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Peringatan</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Tidak diketahui</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>nyala</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>tidak ada filesistem</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktif</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>siaga</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon aktif</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kuorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Layanan NFS Ganesha belum dikonfigurasi.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Pengguna CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Filesistem CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(diturunkan dari konfig global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>diturunkan dari konfig global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Pilih jenis squashing id pengguna yang akan dilakukan --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Tidak ada daemon tersedia.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Mode Cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min Waktu Usir</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min Waktu Buang</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Target Maks Bita</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Target Maks Objek</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Tidak ada aplikasi ditambahkan</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Batas aplikasi tercapai</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Sebuah pool hanya dapat memiliki empat definisi aplikasi.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Karakter diperbolehkan \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Panjang maksimum 128 karakter</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Saring atau tambah aplikasi</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Tambah aplikasi</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil erasure code</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Ukuran Replikasi</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Perubahan Terakhir</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profil Erasure Code</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Aturan Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>buket</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>buket</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>pengguna</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>pengguna</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Cakupan</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Baca</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Buat</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Peran Sistem</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Perbarui pengguna</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Lanjutkan</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Anda dikeluarkan otomatis karena peran Anda telah berubah.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Tiap objek dipecah dalam pecahan-data, masing-masing disimpan pada OSD yang berbeda.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Hitung pecahan coding untuk tiap objek dan simpan pada OSD yang berbeda.\nJumlah pecahan data juga menjadi jumlah OSD yang diperbolehkan mati tanpa kehilangan data.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Plugin jerasure merupakan plugin paling umum dan fleksibel,\nserta merupakan plugin bawaan Ceph untuk pool erasure code.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Teknik yang lebih fleksibel yaitu reed_sol_van : cukup mengeset k\ndan m. Teknik cauchy_good bisa lebih cepat, namun Anda harus memilih ukuran paket\ndengan seksama. Semua reed_sol_r6_op, liberation, blaum_roth, liber8tion setara dengan RAID6\ndalam hal mereka hanya bisa diatur dengan m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Penyandian dilakukan setiap saat pada ukuran bita paket.\nSulit untuk menentukan ukuran paket yang tepat.\nSilakan cek dokumentasi jerasure untuk informasi lebih mendalam.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Pada plugin jerasure, saat objek dengan erasure code disimpan pada\nbanyak OSD, pemulihan dari OSD yang hilang membutuhkan akses dari OSD lainnya.\nContoh, saat jerasure dikonfigurasi dengan k=8 dan m=4, saat satu OSD mati, maka pemulihan akan membutuhkan pembacaan dari tujuh OSD lainnya.\n\nPlugin lrc erasure code membuat pecahan paritas lokal agar dapat memulihkan \ndengan OSD yang lebih sedikit. Contoh, jika lrc dikonfigurasi dengan k=8, m=4, dan l=4, maka lrc akan\nmembuat pecahan paritas tambahan tiap empat OSD. Saat satu OSD mati, maka pemulihan dapat dilakukan hanya dengan 4 OSD, alih-alih 7 OSD.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Kelompokkan pecahan data dan coding ke dalam ukuran lokalitas. Controh\nuntuk k=4 dan m=2, saat lokalitas=3 dua grup dari tiga akan dibuat. Setiap set akan\ndipulihkan tanpa membaca pecahan dari set lainnya.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Tipe buket crush setiap set pecahan yang didefinisikan oleh l  \nakan disimpan. Contoh, jika diset pada rak, tiap grup pecahan l akan \nditempatkan pada rak berbeda. Ini akan digunakan pada aturan step CRUSH yaitu \nmemilih tiap rak. Jika tidak diset, tidak akan ada pengelompokkan.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Plugin isa menghimpun perpustakaan ISA. Hanya dapat berjalan pada prosesor Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Plugin ISA memiliki dua jenis Reed Solomon.\nJika reed_sol_van diset, maka menjadi Vandermonde, jika cauchy diset, maka menjadi Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Plugin shec mengenkapsulasi banyak pustaka SHEC.\nHal ini agar ceph dapat dipulihkan dengan lebih efisien dari kode Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Jumlah potongan paritas yang masing-masing mencakup setiap potongan data \ndalam rentang perhitungannya. Nilai ini digunakan untuk perkiraan daya tahan. Contoh, jika c=2, \n2 OSD dapat mati tanpa kehilangan data.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nama buket crush digunakan sebagai langkah pertama dari aturan CRUSH.\nContoh diambil langkah bawaan.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Memastikan tidak ada pecahan data berada pada buket dengan domain kegagalan\nyang sama. Contoh, saat domain gagal adalah hos, maka tidak ada pecahan data yang akan disimpan \npada hos yang sama. Aturan CRUSH seperti step chooseleaf hos akan digunakan untuk hal tersebut.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Batasi penempatan ke perangkat dengan kelas tertentu\n(cth. ssd atau hdd), menggunakan nama kelas perangkat crush pada peta CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Set nama direktori empat plugin erasure code akan dimuat.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Izinkan semua operasi</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Izinkan hanya untuk operasi yang tidak mengubah server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Tidak diizinkan untuk operasi baca dan tulis, namun izinkan operasi lainnya</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Tidak diizinkan untuk baca, tulis, atau operasi lainnya yang mengubah atribut berkas atau konten direktori</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Tidak diizinkan untuk semua hal</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Pilih prioritas --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Rendah</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Tinggi</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informasi</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>5 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>15 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>30 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>1 Jam Terakhir (Bawaan)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>3 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>6 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>12 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>24 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Kemarin</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hari ini</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Sejauh hari ini</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Kemarin dulu</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>2 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Hari ini minggu lalu</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Minggu lalu</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Minggu ini</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Sejauh minggu ini</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>7 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Bulan lalu</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Bulan ini</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Sejauh bulan ini</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>30 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>90 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>6 bulan terakhir</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>1 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Tahun lalu</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Tahun ini</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Sejauh tahun ini</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>2 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>5 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Tidak ada yang dipilih.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Batalkan memilih untuk memilih ulang</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Batas pemilihan tercapai</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tanda penyaringan</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Tambahkan lencana</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Tidak ada yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klon</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Salin</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Deep Scrub</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Hancurkan</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Ratakan</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Tandai Gugur</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Tandai Masuk</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Tandai Hilang</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Tandai Keluar</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteksi</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Ubah nama</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Pulihkan</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Pindahkan ke Tempat Sampah</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Tidak diproteksi</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Dihapus</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Diklon</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Disalin</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Diratakan</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Dibuang</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Dipulihkan</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Dikembalikan</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ya</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Tidak</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Kualitas Layanan atau QoS</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Limit IO bytes per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Limit operasi IO per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limit Baca BPS </target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Limit byte baca per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limit IOPS Baca</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Limit operasi baca per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit Tulis BPS</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Limit tulis byte per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit IOPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Limit operasi tulis per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Letupan BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari IO byte.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Letupan IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst operasi IO.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Letupan Baca BPS</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari baca byte.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Letupan IOPS Baca</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst operasi baca.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Letupan BPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari tulis byte.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Letupan IOPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari operasi baca.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Mengeksekusi</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>eksekusi</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Dieksekusi</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tugas tak diketahui</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Membuat</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>buat</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Memperbarui</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>perbarui</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Menghapus</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Pengklonan</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klon</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Menyalin</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>salin</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Meratakan</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>ratakan</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Mengembalikan</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>kembalikan</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Memindahkan</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>pindah</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>dipindahkan</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Tidak dapat menemukan image.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Memulihkan</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>pulihkan</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Membuang</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>buang</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>semua pool</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Gagal menonaktifkan pencerminan karena sedang bermitra.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},jtHE:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("XNiG"),r=n("qgXg"),i=n("quSY"),s=n("pxpQ"),o=n("9ppp"),u=n("Ylt2");class d extends a.a{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,n){super(),this.scheduler=n,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){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift(),super.next(t)}nextTimeWindow(t){this._events.push(new l(this._getNow(),t)),this._trimBufferThenGetEvents(),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,n=e?this._events:this._trimBufferThenGetEvents(),a=this.scheduler,r=n.length;let d;if(this.closed)throw new o.a;if(this.isStopped||this.hasError?d=i.a.EMPTY:(this.observers.push(t),d=new u.a(this,t)),a&&t.add(t=new s.a(t,a)),e)for(let i=0;i<r&&!t.closed;i++)t.next(n[i]);else for(let i=0;i<r&&!t.closed;i++)t.next(n[i].value);return this.hasError?t.error(this.thrownError):this.isStopped&&t.complete(),d}_getNow(){return(this.scheduler||r.a).now()}_trimBufferThenGetEvents(){const t=this._getNow(),e=this._bufferSize,n=this._windowTime,a=this._events,r=a.length;let i=0;for(;i<r&&!(t-a[i].time<n);)i++;return r>e&&(i=Math.max(i,r-e)),i>0&&a.splice(0,i),a}}class l{constructor(t,e){this.time=t,this.value=e}}},juv8:function(t,e,n){var a=n("MrPd"),r=n("hypo");t.exports=function(t,e,n,i){var s=!n;n||(n={});for(var o=-1,u=e.length;++o<u;){var d=e[o],l=i?i(n[d],t[d],d,n,t):void 0;void 0===l&&(l=t[d]),s?r(n,d,l):a(n,d,l)}return n}},"k+1r":function(t,e,n){var a=n("QkVE");t.exports=function(t){var e=a(this,t).delete(t);return this.size-=e?1:0,e}},kEOa:function(t,e,n){!function(t){"use strict";var e={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};t.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".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:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(t){return t.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(t,e){return 12===t&&(t=0),"রাত"===e&&t>=4||"দুপুর"===e&&t<5||"বিকাল"===e?t+12:t},meridiem:function(t,e,n){return t<4?"রাত":t<10?"সকাল":t<17?"দুপুর":t<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n("wd/R"))},kJI8:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},kJWO:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")()},kOOl:function(t,e){var n=0,a=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+a).toString(36)}},kOpN:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n("wd/R"))},kRJp:function(t,e,n){var a=n("g6v/"),r=n("m/L8"),i=n("XGwC");t.exports=a?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},kekF:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},kmMV:function(t,e,n){"use strict";var a,r,i=n("rW0t"),s=n("n3/R"),o=RegExp.prototype.exec,u=String.prototype.replace,d=o,l=(r=/b*/g,o.call(a=/a/,"a"),o.call(r,"a"),0!==a.lastIndex||0!==r.lastIndex),c=s.UNSUPPORTED_Y||s.BROKEN_CARET,f=void 0!==/()??/.exec("")[1];(l||f||c)&&(d=function(t){var e,n,a,r,s=this,d=c&&s.sticky,h=i.call(s),g=s.source,p=0,b=t;return d&&(-1===(h=h.replace("y","")).indexOf("g")&&(h+="g"),b=String(t).slice(s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==t[s.lastIndex-1])&&(g="(?: "+g+")",b=" "+b,p++),n=new RegExp("^(?:"+g+")",h)),f&&(n=new RegExp("^"+g+"$(?!\\s)",h)),l&&(e=s.lastIndex),a=o.call(d?n:s,b),d?a?(a.input=a.input.slice(p),a[0]=a[0].slice(p),a.index=s.lastIndex,s.lastIndex+=a[0].length):s.lastIndex=0:l&&a&&(s.lastIndex=s.global?a.index+a[0].length:e),f&&a&&a.length>1&&u.call(a[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(a[r]=void 0)})),a}),t.exports=d},"kn/O":function(t,e,n){"use strict";n.d(e,"a",(function(){return f}));var a=n("HDdC"),r=n("mtw6"),i=n("G1I9"),s=n("QTAa"),o=n("9nlD"),u=n("mSOc"),d=n("VXsX"),l=n("ufoC"),c=n("8Y7J");let f=(()=>{class t{constructor(t,e,n,a){this.notificationService=t,this.summaryService=e,this.taskMessageService=n,this.taskManagerService=a}wrapTaskAroundCall({task:t,call:e}){return new a.a(n=>{e.subscribe(e=>{202===e.status?this._handleExecutingTasks(t):(this.summaryService.refresh(),t.success=!0,this.notificationService.notifyTask(t))},e=>{t.success=!1,t.exception=e.error,n.error(e)},()=>{n.complete()})})}_handleExecutingTasks(t){const e=new i.b(r.a.info,this.taskMessageService.getRunningTitle(t));e.isFinishedTask=!0,this.notificationService.show(e);const n=new s.a(t.name,t.metadata);this.summaryService.addRunningTask(n),this.taskManagerService.subscribe(n.name,n.metadata,t=>{this.notificationService.notifyTask(t)})}}return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](o.a),c["ɵɵinject"](u.a),c["ɵɵinject"](l.a),c["ɵɵinject"](d.a))},token:t,providedIn:"root"}),t})()},kvvV:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("t/zF");class r extends a.a{}},l5ep:function(t,e,n){!function(t){"use strict";t.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 ôl",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(t){var e="";return t>20?e=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(e=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][t]),t+e},week:{dow:1,doy:4}})}(n("wd/R"))},l7GE:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");class r extends a.a{notifyNext(t,e,n,a,r){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}},lJxs:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new i(t,e))}}class i{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new s(t,this.project,this.thisArg))}}class s extends a.a{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}},lMq5:function(t,e,n){var a=n("0Dky"),r=/#|\.prototype\./,i=function(t,e){var n=o[s(t)];return n==d||n!=u&&("function"==typeof e?a(e):!!e)},s=i.normalize=function(t){return String(t).replace(r,".").toLowerCase()},o=i.data={},u=i.NATIVE="N",d=i.POLYFILL="P";t.exports=i},"lOp/":function(t,e,n){"use strict";var a=n("PqYM"),r=n("pxpQ"),i=n("eIep"),s=n("jtHE"),o=n("D0XW"),u=n("8Y7J");class d{constructor(t){this.zone=t,this.scheduler=o.a}now(){return this.scheduler.now()}}let l=(()=>{class t extends d{constructor(t){super(t)}schedule(...t){return this.zone.runOutsideAngular(()=>this.scheduler.schedule.apply(this.scheduler,t))}}return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](u.NgZone))},token:t,providedIn:"root"}),t})(),c=(()=>{class t extends d{constructor(t){super(t)}schedule(...t){return this.zone.run(()=>this.scheduler.schedule.apply(this.scheduler,t))}}return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](u.NgZone))},token:t,providedIn:"root"}),t})(),f=(()=>{class t{constructor(t,e){this.leave=t,this.enter=e}}return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](l),u["ɵɵinject"](c))},token:t,providedIn:"root"}),t})();n.d(e,"a",(function(){return h}));let h=(()=>{class t{constructor(t){this.ngZone=t,this.DEFAULT_REFRESH_INTERVAL=5e3,this.DEFAULT_DUE_TIME=0}get(t,e=this.DEFAULT_REFRESH_INTERVAL,n=this.DEFAULT_DUE_TIME){return Object(a.a)(n,e,this.ngZone.leave).pipe(Object(r.b)(this.ngZone.enter),Object(i.a)(t),function(t,e,n){let a;return a=t&&"object"==typeof t?t:{bufferSize:t,windowTime:void 0,refCount:!1,scheduler:void 0},t=>t.lift(function({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:e=Number.POSITIVE_INFINITY,refCount:n,scheduler:a}){let r,i,o=0,u=!1,d=!1;return function(l){o++,r&&!u||(u=!1,r=new s.a(t,e,a),i=l.subscribe({next(t){r.next(t)},error(t){u=!0,r.error(t)},complete(){d=!0,i=void 0,r.complete()}}));const c=r.subscribe(this);this.add(()=>{o--,c.unsubscribe(),i&&!d&&n&&0===o&&(i.unsubscribe(),i=void 0,r=void 0)})}}(a))}({refCount:!0,bufferSize:1}))}}return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](f))},token:t,providedIn:"root"}),t})()},lQqw:function(t,e,n){var a=n("MMmD");t.exports=function(t,e){return function(n,r){if(null==n)return n;if(!a(n))return t(n,r);for(var i=n.length,s=e?i:-1,o=Object(n);(e?s--:++s<i)&&!1!==r(o[s],s,o););return n}}},lSCD:function(t,e,n){var a=n("NykK"),r=n("GoyQ");t.exports=function(t){if(!r(t))return!1;var e=a(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},lXzo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"минута":"минуту":t+" "+(a=+t,r={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];t.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,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:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:e,m:e,mm:e,h:"час",hh:e,d:"день",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(t){return/^(дня|вечера)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночи":t<12?"утра":t<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-й";case"D":return t+"-го";case"w":case"W":return t+"-я";default:return t}},week:{dow:1,doy:4}})}(n("wd/R"))},lYtQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){switch(n){case"s":return e?"хэдхэн секунд":"хэдхэн секундын";case"ss":return t+(e?" секунд":" секундын");case"m":case"mm":return t+(e?" минут":" минутын");case"h":case"hh":return t+(e?" цаг":" цагийн");case"d":case"dd":return t+(e?" өдөр":" өдрийн");case"M":case"MM":return t+(e?" сар":" сарын");case"y":case"yy":return t+(e?" жил":" жилийн");default:return t}}t.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(t){return"ҮХ"===t},meridiem:function(t,e,n){return t<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" өдөр";default:return t}}})}(n("wd/R"))},lgnt:function(t,e,n){!function(t){"use strict";var e={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};t.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".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:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},ljhN:function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"lm/5":function(t,e,n){var a=n("fmRc"),r=n("wF/u");t.exports=function(t,e,n,i){var s=n.length,o=s,u=!i;if(null==t)return!o;for(t=Object(t);s--;){var d=n[s];if(u&&d[2]?d[1]!==t[d[0]]:!(d[0]in t))return!1}for(;++s<o;){var l=(d=n[s])[0],c=t[l],f=d[1];if(u&&d[2]){if(void 0===c&&!(l in t))return!1}else{var h=new a;if(i)var g=i(c,f,l,t,e,h);if(!(void 0===g?r(f,c,3,i,h):g))return!1}}return!0}},lyxo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=" ";return(t%100>=20||t>=100&&t%100==0)&&(a=" de "),t+a+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}t.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ă_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".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âine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:e,m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}(n("wd/R"))},"m/L8":function(t,e,n){var a=n("g6v/"),r=n("DPsx"),i=n("glrk"),s=n("wE6v"),o=Object.defineProperty;e.f=a?o:function(t,e,n){if(i(t),e=s(e,!0),i(n),r)try{return o(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var a=n("glrk");t.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(s){var i=t.return;throw void 0!==i&&a(i.call(t)),s}}},mCNh:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var a=n("KqfI");function r(...t){return i(t)}function i(t){return t?1===t.length?t[0]:function(e){return t.reduce((t,e)=>e(t),e)}:a.a}},mSOc:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("LvDl"),r=n("2Vo4"),i=n("lOp/"),s=n("8Y7J"),o=n("IheW");let u=(()=>{class t{constructor(t,e){this.http=t,this.timerService=e,this.REFRESH_INTERVAL=5e3,this.summaryDataSource=new r.a(null),this.summaryData$=this.summaryDataSource.asObservable()}startPolling(){return this.timerService.get(()=>this.retrieveSummaryObservable(),this.REFRESH_INTERVAL).subscribe(this.retrieveSummaryObserver())}refresh(){return this.retrieveSummaryObservable().subscribe(this.retrieveSummaryObserver())}retrieveSummaryObservable(){return this.http.get("api/summary")}retrieveSummaryObserver(){return t=>{this.summaryDataSource.next(t)}}getCurrentSummary(){return this.summaryDataSource.getValue()}subscribe(t,e){return this.summaryData$.subscribe(t,e)}addRunningTask(t){const e=this.summaryDataSource.getValue();e&&(a.isArray(e.executing_tasks)?e.executing_tasks.find(e=>e.name===t.name&&a.isEqual(e.metadata,t.metadata))||e.executing_tasks.push(t):e.executing_tasks=[t],this.summaryDataSource.next(e))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](o.c),s["ɵɵinject"](i.a))},token:t,providedIn:"root"}),t})()},mTTR:function(t,e,n){var a=n("b80T"),r=n("QcOe"),i=n("MMmD");t.exports=function(t){return i(t)?a(t,!0):r(t)}},mXUL:function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return c}));var a=n("8Y7J"),r=n("+gVj"),i=n("SVse"),s=a["ɵcrt"]({encapsulation:0,styles:[".invalid-feedback[_ngcontent-%COMP%], .valid-feedback[_ngcontent-%COMP%] {\n        display: block;\n      }"],data:{}});function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){t(e,2,0,e.component.className)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,o)),a["ɵdid"](1,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,e.component.messages())}),null)}var d=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bfv-messages",[],null,null,null,u,s)),a["ɵdid"](1,49152,null,0,r.e,[r.a],{messages:[0,"messages"]},null)],(function(t,e){t(e,1,0,e.component.messages)}),null)}function c(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](2,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,!e.component.messagesBlock)}),null)}},mc0g:function(t,e){t.exports=function(t){return function(e,n,a){for(var r=-1,i=Object(e),s=a(e),o=s.length;o--;){var u=s[t?o:++r];if(!1===n(i[u],u,i))break}return e}}},mdPL:function(t,e,n){(function(t){var a=n("WFqU"),r=e&&!e.nodeType&&e,i=r&&"object"==typeof t&&t&&!t.nodeType&&t,s=i&&i.exports===r&&a.process,o=function(){try{return i&&i.require&&i.require("util").types||s&&s.binding&&s.binding("util")}catch(t){}}();t.exports=o}).call(this,n("YuTi")(t))},mfoh:function(t,e,n){"use strict";n.d(e,"a",(function(){return h})),n.d(e,"b",(function(){return p}));var a,r=n("CFvb"),i=n("P4Tr"),s=n.n(i),o=n("mwIZ"),u=n.n(o),d=n("Puqe"),l=n.n(d),c=n("UB5X"),f=n.n(c),h={TOGGLE_ACTIVE:function(t,e,n){return e&&e.toggleActivated()},TOGGLE_ACTIVE_MULTI:function(t,e,n){return e&&e.toggleActivated(!0)},TOGGLE_SELECTED:function(t,e,n){return e&&e.toggleSelected()},ACTIVATE:function(t,e,n){return e.setIsActive(!0)},DEACTIVATE:function(t,e,n){return e.setIsActive(!1)},SELECT:function(t,e,n){return e.setIsSelected(!0)},DESELECT:function(t,e,n){return e.setIsSelected(!1)},FOCUS:function(t,e,n){return e.focus()},TOGGLE_EXPANDED:function(t,e,n){return e.hasChildren&&e.toggleExpanded()},EXPAND:function(t,e,n){return e.expand()},COLLAPSE:function(t,e,n){return e.collapse()},DRILL_DOWN:function(t,e,n){return t.focusDrillDown()},DRILL_UP:function(t,e,n){return t.focusDrillUp()},NEXT_NODE:function(t,e,n){return t.focusNextNode()},PREVIOUS_NODE:function(t,e,n){return t.focusPreviousNode()},MOVE_NODE:function(t,e,n,a){var r=a.from,i=a.to;n.ctrlKey?t.copyNode(r,i):t.moveNode(r,i)}},g={mouse:{click:h.TOGGLE_ACTIVE,dblClick:null,contextMenu:null,expanderClick:h.TOGGLE_EXPANDED,checkboxClick:h.TOGGLE_SELECTED,drop:h.MOVE_NODE},keys:(a={},a[r.a.RIGHT]=h.DRILL_DOWN,a[r.a.LEFT]=h.DRILL_UP,a[r.a.DOWN]=h.NEXT_NODE,a[r.a.UP]=h.PREVIOUS_NODE,a[r.a.SPACE]=h.TOGGLE_ACTIVE,a[r.a.ENTER]=h.TOGGLE_ACTIVE,a)},p=function(){function t(t){void 0===t&&(t={}),this.options=t,this.actionMapping=s()({},this.options.actionMapping,g),t.rtl&&(this.actionMapping.keys[r.a.RIGHT]=u()(t,["actionMapping","keys",r.a.RIGHT])||h.DRILL_UP,this.actionMapping.keys[r.a.LEFT]=u()(t,["actionMapping","keys",r.a.LEFT])||h.DRILL_DOWN)}return Object.defineProperty(t.prototype,"hasChildrenField",{get:function(){return this.options.hasChildrenField||"hasChildren"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"childrenField",{get:function(){return this.options.childrenField||"children"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"displayField",{get:function(){return this.options.displayField||"name"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"idField",{get:function(){return this.options.idField||"id"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isExpandedField",{get:function(){return this.options.isExpandedField||"isExpanded"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"getChildren",{get:function(){return this.options.getChildren},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"levelPadding",{get:function(){return this.options.levelPadding||0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useVirtualScroll",{get:function(){return this.options.useVirtualScroll},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateExpand",{get:function(){return this.options.animateExpand},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateSpeed",{get:function(){return this.options.animateSpeed||1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateAcceleration",{get:function(){return this.options.animateAcceleration||1.2},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollOnActivate",{get:function(){return void 0===this.options.scrollOnActivate||this.options.scrollOnActivate},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rtl",{get:function(){return!!this.options.rtl},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rootId",{get:function(){return this.options.rootId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useCheckbox",{get:function(){return this.options.useCheckbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useTriState",{get:function(){return void 0===this.options.useTriState||this.options.useTriState},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollContainer",{get:function(){return this.options.scrollContainer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allowDragoverStyling",{get:function(){return void 0===this.options.allowDragoverStyling||this.options.allowDragoverStyling},enumerable:!0,configurable:!0}),t.prototype.getNodeClone=function(t){return this.options.getNodeClone?this.options.getNodeClone(t):l()(Object.assign({},t.data),["id"])},t.prototype.allowDrop=function(t,e,n){return this.options.allowDrop instanceof Function?this.options.allowDrop(t,e,n):void 0===this.options.allowDrop||this.options.allowDrop},t.prototype.allowDrag=function(t){return this.options.allowDrag instanceof Function?this.options.allowDrag(t):this.options.allowDrag},t.prototype.nodeClass=function(t){return this.options.nodeClass?this.options.nodeClass(t):""},t.prototype.nodeHeight=function(t){if(t.data.virtual)return 0;var e=this.options.nodeHeight||22;return"function"==typeof e&&(e=e(t)),e+(0===t.index?2:1)*this.dropSlotHeight},Object.defineProperty(t.prototype,"dropSlotHeight",{get:function(){return f()(this.options.dropSlotHeight)?this.options.dropSlotHeight:2},enumerable:!0,configurable:!0}),t}()},moLw:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("8Y7J"),s=n("SVse");e.ClickOutsideDirective=function(){function t(t,e,n){this._el=t,this._ngZone=e,this.platformId=n,this.clickOutsideEnabled=!0,this.attachOutsideOnClick=!1,this.delayClickOutsideInit=!1,this.emitOnBlur=!1,this.exclude="",this.excludeBeforeClick=!1,this.clickOutsideEvents="",this.clickOutside=new i.EventEmitter,this._nodesExcluded=[],this._events=["click"],this._initOnClickBody=this._initOnClickBody.bind(this),this._onClickBody=this._onClickBody.bind(this),this._onWindowBlur=this._onWindowBlur.bind(this)}return t.prototype.ngOnInit=function(){s.isPlatformBrowser(this.platformId)&&this._init()},t.prototype.ngOnDestroy=function(){s.isPlatformBrowser(this.platformId)&&(this._removeClickOutsideListener(),this._removeAttachOutsideOnClickListener(),this._removeWindowBlurListener())},t.prototype.ngOnChanges=function(t){s.isPlatformBrowser(this.platformId)&&(t.attachOutsideOnClick||t.exclude||t.emitOnBlur)&&this._init()},t.prototype._init=function(){""!==this.clickOutsideEvents&&(this._events=this.clickOutsideEvents.split(",").map((function(t){return t.trim()}))),this._excludeCheck(),this.attachOutsideOnClick?this._initAttachOutsideOnClickListener():this._initOnClickBody(),this.emitOnBlur&&this._initWindowBlurListener()},t.prototype._initOnClickBody=function(){this.delayClickOutsideInit?setTimeout(this._initClickOutsideListener.bind(this)):this._initClickOutsideListener()},t.prototype._excludeCheck=function(){if(this.exclude)try{var t=Array.from(document.querySelectorAll(this.exclude));t&&(this._nodesExcluded=t)}catch(e){console.error("[ng-click-outside] Check your exclude selector syntax.",e)}},t.prototype._onClickBody=function(t){this.clickOutsideEnabled&&(this.excludeBeforeClick&&this._excludeCheck(),this._el.nativeElement.contains(t.target)||this._shouldExclude(t.target)||(this._emit(t),this.attachOutsideOnClick&&this._removeClickOutsideListener()))},t.prototype._onWindowBlur=function(t){var e=this;setTimeout((function(){document.hidden||e._emit(t)}))},t.prototype._emit=function(t){var e=this;this.clickOutsideEnabled&&this._ngZone.run((function(){return e.clickOutside.emit(t)}))},t.prototype._shouldExclude=function(t){for(var e=0,n=this._nodesExcluded;e<n.length;e++)if(n[e].contains(t))return!0;return!1},t.prototype._initClickOutsideListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return document.addEventListener(e,t._onClickBody)}))}))},t.prototype._removeClickOutsideListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return document.removeEventListener(e,t._onClickBody)}))}))},t.prototype._initAttachOutsideOnClickListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return t._el.nativeElement.addEventListener(e,t._initOnClickBody)}))}))},t.prototype._removeAttachOutsideOnClickListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return t._el.nativeElement.removeEventListener(e,t._initOnClickBody)}))}))},t.prototype._initWindowBlurListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){window.addEventListener("blur",t._onWindowBlur)}))},t.prototype._removeWindowBlurListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){window.removeEventListener("blur",t._onWindowBlur)}))},a([i.Input(),r("design:type",Boolean)],t.prototype,"clickOutsideEnabled",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"attachOutsideOnClick",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"delayClickOutsideInit",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"emitOnBlur",void 0),a([i.Input(),r("design:type",String)],t.prototype,"exclude",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"excludeBeforeClick",void 0),a([i.Input(),r("design:type",String)],t.prototype,"clickOutsideEvents",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"clickOutside",void 0),a([i.Injectable(),i.Directive({selector:"[clickOutside]"})],t)}()},mrSG:function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",(function(){return r})),n.d(e,"__assign",(function(){return i})),n.d(e,"__rest",(function(){return s})),n.d(e,"__decorate",(function(){return o})),n.d(e,"__param",(function(){return u})),n.d(e,"__metadata",(function(){return d})),n.d(e,"__awaiter",(function(){return l})),n.d(e,"__generator",(function(){return c})),n.d(e,"__exportStar",(function(){return f})),n.d(e,"__values",(function(){return h})),n.d(e,"__read",(function(){return g})),n.d(e,"__spread",(function(){return p})),n.d(e,"__spreadArrays",(function(){return b})),n.d(e,"__await",(function(){return m})),n.d(e,"__asyncGenerator",(function(){return y})),n.d(e,"__asyncDelegator",(function(){return v})),n.d(e,"__asyncValues",(function(){return x})),n.d(e,"__makeTemplateObject",(function(){return _})),n.d(e,"__importStar",(function(){return T})),n.d(e,"__importDefault",(function(){return O})),n.d(e,"__classPrivateFieldGet",(function(){return w})),n.d(e,"__classPrivateFieldSet",(function(){return S}));var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function s(t,e){var n={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(t);r<a.length;r++)e.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(t,a[r])&&(n[a[r]]=t[a[r]])}return n}function o(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function u(t,e){return function(n,a){e(n,a,t)}}function d(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function l(t,e,n,a){return new(n||(n=Promise))((function(r,i){function s(t){try{u(a.next(t))}catch(e){i(e)}}function o(t){try{u(a.throw(t))}catch(e){i(e)}}function u(t){var e;t.done?r(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(s,o)}u((a=a.apply(t,e||[])).next())}))}function c(t,e){var n,a,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(i){return function(o){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,a&&(r=2&i[0]?a.return:i[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,i[1])).done)return r;switch(a=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,a=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){s.label=i[1];break}if(6===i[0]&&s.label<r[1]){s.label=r[1],r=i;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(i);break}r[2]&&s.ops.pop(),s.trys.pop();continue}i=e.call(t,s)}catch(o){i=[6,o],a=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,o])}}}function f(t,e){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}function h(t){var e="function"==typeof Symbol&&Symbol.iterator,n=e&&t[e],a=0;if(n)return n.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&a>=t.length&&(t=void 0),{value:t&&t[a++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function g(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,i=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(a=i.next()).done;)s.push(a.value)}catch(o){r={error:o}}finally{try{a&&!a.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}function p(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(g(arguments[e]));return t}function b(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var a=Array(t),r=0;for(e=0;e<n;e++)for(var i=arguments[e],s=0,o=i.length;s<o;s++,r++)a[r]=i[s];return a}function m(t){return this instanceof m?(this.v=t,this):new m(t)}function y(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a,r=n.apply(t,e||[]),i=[];return a={},s("next"),s("throw"),s("return"),a[Symbol.asyncIterator]=function(){return this},a;function s(t){r[t]&&(a[t]=function(e){return new Promise((function(n,a){i.push([t,e,n,a])>1||o(t,e)}))})}function o(t,e){try{!function(t){t.value instanceof m?Promise.resolve(t.value.v).then(u,d):l(i[0][2],t)}(r[t](e))}catch(n){l(i[0][3],n)}}function u(t){o("next",t)}function d(t){o("throw",t)}function l(t,e){t(e),i.shift(),i.length&&o(i[0][0],i[0][1])}}function v(t){var e,n;return e={},a("next"),a("throw",(function(t){throw t})),a("return"),e[Symbol.iterator]=function(){return this},e;function a(a,r){e[a]=t[a]?function(e){return(n=!n)?{value:m(t[a](e)),done:"return"===a}:r?r(e):e}:r}}function x(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=h(t),e={},a("next"),a("throw"),a("return"),e[Symbol.asyncIterator]=function(){return this},e);function a(n){e[n]=t[n]&&function(e){return new Promise((function(a,r){!function(t,e,n,a){Promise.resolve(a).then((function(e){t({value:e,done:n})}),e)}(a,r,(e=t[n](e)).done,e.value)}))}}}function _(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function T(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function O(t){return t&&t.__esModule?t:{default:t}}function w(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function S(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}},mtw6:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t[t.error=0]="error",t[t.info=1]="info",t[t.success=2]="success",t}({})},"mv/X":function(t,e,n){var a=n("ljhN"),r=n("MMmD"),i=n("wJg7"),s=n("GoyQ");t.exports=function(t,e,n){if(!s(n))return!1;var o=typeof e;return!!("number"==o?r(n)&&i(e,n.length):"string"==o&&e in n)&&a(n[e],t)}},mwIZ:function(t,e,n){var a=n("ZWtO");t.exports=function(t,e,n){var r=null==t?void 0:a(t,e);return void 0===r?n:r}},"n/D3":function(t,e,n){"use strict";n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return c}));var a=n("cp0P"),r=(n("SgmB"),n("ZDA6"),n("+fVR")),i=n("0+/T"),s=n("Rf2I"),o=(n("sne2"),n("x38r")),u=n("oxzT"),d=n("mtw6"),l=n("vCyI");n("nSDx"),n("aexS"),n("9nlD");const c=new(n("EgGo").a)("user-management/roles");class f extends r.a{constructor(t,e,n,a,r,i,s,o,d){super(),this.roleService=t,this.scopeService=e,this.emptyPipe=n,this.authStorageService=a,this.modalService=r,this.notificationService=i,this.i18n=s,this.urlBuilder=o,this.actionLabels=d,this.selection=new l.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:u.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"create",icon:u.a.clone,name:this.actionLabels.CLONE,disable:()=>!this.selection.hasSingleSelection,click:()=>this.cloneRole()},{permission:"update",icon:u.a.edit,disable:()=>!this.selection.hasSingleSelection||this.selection.first().system,routerLink:()=>this.selection.first()&&this.urlBuilder.getEdit(this.selection.first().name),name:this.actionLabels.EDIT},{permission:"delete",icon:u.a.destroy,disable:()=>!this.selection.hasSingleSelection||this.selection.first().system,click:()=>this.deleteRoleModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:3},{name:this.i18n("Description"),prop:"description",flexGrow:5,pipe:this.emptyPipe},{name:this.i18n("System Role"),prop:"system",cellClass:"text-center",flexGrow:1,cellTransformation:o.a.checkIcon}]}getRoles(){Object(a.a)([this.roleService.list(),this.scopeService.list()]).subscribe(t=>{this.roles=t[0],this.scopes=t[1]})}updateSelection(t){this.selection=t}deleteRole(t){this.roleService.delete(t).subscribe(()=>{this.getRoles(),this.modalRef.hide(),this.notificationService.show(d.a.success,this.i18n("Deleted role '{{role_name}}'",{role_name:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}deleteRoleModal(){const t=this.selection.first().name;this.modalRef=this.modalService.show(i.a,{initialState:{itemDescription:"Role",itemNames:[t],submitAction:()=>this.deleteRole(t)}})}cloneRole(){const t=this.selection.first().name;this.modalRef=this.modalService.show(s.a,{initialState:{fields:[{type:"text",name:"newName",value:`${t}_clone`,label:this.i18n("New name"),required:!0}],titleText:this.i18n("Clone Role"),submitButtonText:this.i18n("Clone Role"),onSubmit:e=>{this.roleService.clone(t,e.newName).subscribe(()=>{this.getRoles(),this.notificationService.show(d.a.success,this.i18n("Cloned role '{{dst_name}}' from '{{src_name}}'",{src_name:t,dst_name:e.newName}))})}}})}}},"n3/R":function(t,e,n){"use strict";var a=n("0Dky");function r(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=a((function(){var t=r("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=a((function(){var t=r("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},n6bG:function(t,e,n){"use strict";function a(t){return"function"==typeof t}n.d(e,"a",(function(){return a}))},nSDx:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t){return a.isUndefined(t)||a.isNull(t)?"-":t}}},nYho:function(t,e,n){(function(t){var a;!function(r){"object"==typeof global&&global;var i,s=2147483647,o=/^xn--/,u=/[^\x20-\x7E]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,f=String.fromCharCode;function h(t){throw RangeError(l[t])}function g(t,e){for(var n=t.length,a=[];n--;)a[n]=e(t[n]);return a}function p(t,e){var n=t.split("@"),a="";return n.length>1&&(a=n[0]+"@",t=n[1]),a+g((t=t.replace(d,".")).split("."),e).join(".")}function b(t){for(var e,n,a=[],r=0,i=t.length;r<i;)(e=t.charCodeAt(r++))>=55296&&e<=56319&&r<i?56320==(64512&(n=t.charCodeAt(r++)))?a.push(((1023&e)<<10)+(1023&n)+65536):(a.push(e),r--):a.push(e);return a}function m(t){return g(t,(function(t){var e="";return t>65535&&(e+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+f(t)})).join("")}function y(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function v(t,e,n){var a=0;for(t=n?c(t/700):t>>1,t+=c(t/e);t>455;a+=36)t=c(t/35);return c(a+36*t/(t+38))}function x(t){var e,n,a,r,i,o,u,d,l,f,g,p=[],b=t.length,y=0,x=128,_=72;for((n=t.lastIndexOf("-"))<0&&(n=0),a=0;a<n;++a)t.charCodeAt(a)>=128&&h("not-basic"),p.push(t.charCodeAt(a));for(r=n>0?n+1:0;r<b;){for(i=y,o=1,u=36;r>=b&&h("invalid-input"),((d=(g=t.charCodeAt(r++))-48<10?g-22:g-65<26?g-65:g-97<26?g-97:36)>=36||d>c((s-y)/o))&&h("overflow"),y+=d*o,!(d<(l=u<=_?1:u>=_+26?26:u-_));u+=36)o>c(s/(f=36-l))&&h("overflow"),o*=f;_=v(y-i,e=p.length+1,0==i),c(y/e)>s-x&&h("overflow"),x+=c(y/e),y%=e,p.splice(y++,0,x)}return m(p)}function _(t){var e,n,a,r,i,o,u,d,l,g,p,m,x,_,T,O=[];for(m=(t=b(t)).length,e=128,n=0,i=72,o=0;o<m;++o)(p=t[o])<128&&O.push(f(p));for(a=r=O.length,r&&O.push("-");a<m;){for(u=s,o=0;o<m;++o)(p=t[o])>=e&&p<u&&(u=p);for(u-e>c((s-n)/(x=a+1))&&h("overflow"),n+=(u-e)*x,e=u,o=0;o<m;++o)if((p=t[o])<e&&++n>s&&h("overflow"),p==e){for(d=n,l=36;!(d<(g=l<=i?1:l>=i+26?26:l-i));l+=36)O.push(f(y(g+(T=d-g)%(_=36-g),0))),d=c(T/_);O.push(f(y(d,0))),i=v(n,x,a==r),n=0,++a}++n,++e}return O.join("")}i={version:"1.3.2",ucs2:{decode:b,encode:m},decode:x,encode:_,toASCII:function(t){return p(t,(function(t){return u.test(t)?"xn--"+_(t):t}))},toUnicode:function(t){return p(t,(function(t){return o.test(t)?x(t.slice(4).toLowerCase()):t}))}},void 0===(a=(function(){return i}).call(e,n,e,t))||(t.exports=a)}()}).call(this,n("YuTi")(t))},ngJS:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=t=>e=>{for(let n=0,a=t.length;n<a&&!e.closed;n++)e.next(t[n]);e.complete()}},nmnc:function(t,e,n){var a=n("Kz5y");t.exports=a.Symbol},ntOU:function(t,e,n){"use strict";var a=n("rpNk").IteratorPrototype,r=n("fHMY"),i=n("XGwC"),s=n("1E5z"),o=n("P4y1"),u=function(){return this};t.exports=function(t,e,n){var d=e+" Iterator";return t.prototype=r(a,{next:i(1,n)}),s(t,d,!1,!0),o[d]=u,t}},nyYc:function(t,e,n){!function(t){"use strict";t.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n("wd/R"))},o1bE:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})}(n("wd/R"))},"o4+5":function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1e3,["","k","M","G","T","P","E","Z","Y"])}}},"oCl/":function(t,e,n){var a=n("CH3K"),r=n("LcsW"),i=n("MvSz"),s=n("0ycA");t.exports=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)a(e,i(t)),t=r(t);return e}:s},oMSZ:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.pwdExpirationSpan=0,this.pwdExpirationSpan=t.user_pwd_expiration_span,this.pwdExpirationWarning1=t.user_pwd_expiration_warning_1,this.pwdExpirationWarning2=t.user_pwd_expiration_warning_2}}},or5M:function(t,e,n){var a=n("1hJj"),r=n("QoRX"),i=n("xYSL");t.exports=function(t,e,n,s,o,u){var d=1&n,l=t.length,c=e.length;if(l!=c&&!(d&&c>l))return!1;var f=u.get(t);if(f&&u.get(e))return f==e;var h=-1,g=!0,p=2&n?new a:void 0;for(u.set(t,e),u.set(e,t);++h<l;){var b=t[h],m=e[h];if(s)var y=d?s(m,b,h,e,t,u):s(b,m,h,t,e,u);if(void 0!==y){if(y)continue;g=!1;break}if(p){if(!r(e,(function(t,e){if(!i(p,e)&&(b===t||o(b,t,n,s,u)))return p.push(e)}))){g=!1;break}}else if(b!==m&&!o(b,m,n,s,u)){g=!1;break}}return u.delete(t),u.delete(e),g}},"otv/":function(t,e,n){var a=n("nmnc"),r=a?a.prototype:void 0,i=r?r.valueOf:void 0;t.exports=function(t){return i?Object(i.call(t)):{}}},oxzT:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t.add="fa fa-plus",t.addCircle="fa fa-plus-circle",t.minusCircle="fa fa-minus-circle",t.edit="fa fa-pencil",t.destroy="fa fa-times",t.destroyCircle="fa fa-times-circle",t.exchange="fa fa-exchange",t.copy="fa fa-copy",t.clipboard="fa fa-clipboard",t.flatten="fa fa-chain-broken",t.trash="fa fa-trash-o",t.lock="fa fa-lock",t.unlock="fa fa-unlock",t.clone="fa fa-clone",t.undo="fa fa-undo",t.search="fa fa-search",t.start="fa fa-play",t.stop="fa fa-stop",t.analyse="fa fa-stethoscope",t.deepCheck="fa fa-cog",t.reweight="fa fa-balance-scale",t.left="fa fa-arrow-left",t.right="fa fa-arrow-right",t.down="fa fa-arrow-down",t.erase="fa fa-eraser",t.user="fa fa-user",t.users="fa fa-users",t.share="fa fa-share-alt",t.key="fa fa-key-modern",t.warning="fa fa-exclamation-triangle",t.info="fa fa-info",t.infoCircle="fa fa-info-circle",t.questionCircle="fa fa-question-circle-o",t.check="fa fa-check",t.show="fa fa-eye",t.paragraph="fa fa-paragraph",t.terminal="fa fa-terminal",t.magic="fa fa-magic",t.hourglass="fa fa-hourglass-o",t.filledHourglass="fa fa-hourglass",t.table="fa fa-table",t.spinner="fa fa-spinner",t.refresh="fa fa-refresh",t.bullseye="fa fa-bullseye",t.disk="fa fa-hdd-o",t.server="fa fa-server",t.filter="fa fa-filter",t.lineChart="fa fa-line-chart",t.signOut="fa fa-sign-out",t.health="fa fa-heartbeat",t.circle="fa fa-circle",t.bell="fa fa-bell",t.tag="fa fa-tag",t.leftArrow="fa fa-angle-left",t.rightArrow="fa fa-angle-right",t.leftArrowDouble="fa fa-angle-double-left",t.rightArrowDouble="fa fa-angle-double-right",t.flag="fa fa-flag",t.clearFilters="fa fa-window-close",t.download="fa fa-download",t.upload="fa fa-upload",t.large="fa fa-lg",t.large2x="fa fa-2x",t.large3x="fa fa-3x",t.stack="fa fa-stack",t.stack1x="fa fa-stack-1x",t.stack2x="fa fa-stack-2x",t.pulse="fa fa-pulse",t.spin="fa fa-spin",t.inverse="fa fa-inverse",t}({})},"p/rL":function(t,e,n){!function(t){"use strict";t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_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ɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %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("wd/R"))},p4Cf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");class r{constructor(){this.icons=a.a}}},pFRH:function(t,e,n){var a=n("cvCv"),r=n("O0oS"),i=n("zZ0H");t.exports=r?function(t,e){return r(t,"toString",{configurable:!0,enumerable:!1,value:a(e),writable:!0})}:i},pKUh:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return d}));var a=n("8Y7J"),r=n("2ZVE"),i=n("SVse"),s=a["ɵcrt"]({encapsulation:0,styles:["[_nghost-%COMP%]   .nav-tabs[_ngcontent-%COMP%]   .nav-item.disabled[_ngcontent-%COMP%]   a.disabled[_ngcontent-%COMP%]{cursor:default}"],data:{}});function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","bs-remove-tab"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(n.preventDefault(),a=!1!==r.removeTab(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),a["ɵted"](-1,null,[" ❌"]))],null,null)}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,"li",[],[[2,"active",null],[2,"disabled",null]],[[null,"keydown"]],(function(t,e,n){var a=!0;return"keydown"===e&&(a=!1!==t.component.keyNavActions(n,t.context.index)&&a),a}),null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,2),(t()(),a["ɵeld"](4,0,null,null,5,"a",[["class","nav-link"],["href","javascript:void(0);"],["role","tab"]],[[1,"aria-controls",0],[1,"aria-selected",0],[1,"id",0],[2,"active",null],[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.context.$implicit.active=!0)&&a),a}),null,null)),(t()(),a["ɵeld"](5,16777216,null,null,2,"span",[],null,null,null,null,null)),a["ɵdid"](6,16384,null,0,r.a,[a.ViewContainerRef],{ngTransclude:[0,"ngTransclude"]},null),(t()(),a["ɵted"](7,null,["",""])),(t()(),a["ɵand"](16777216,null,null,1,null,o)),a["ɵdid"](9,16384,null,0,i.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=t(e,3,0,"nav-item",e.context.$implicit.customClass||"");t(e,2,0,n),t(e,6,0,e.context.$implicit.headingRef),t(e,9,0,e.context.$implicit.removable)}),(function(t,e){t(e,0,0,e.context.$implicit.active,e.context.$implicit.disabled),t(e,4,0,e.context.$implicit.id?e.context.$implicit.id:"",!!e.context.$implicit.active,e.context.$implicit.id?e.context.$implicit.id+"-link":"",e.context.$implicit.active,e.context.$implicit.disabled),t(e,7,0,e.context.$implicit.heading)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"ul",[["class","nav"],["role","tablist"]],[[1,"aria-label",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a}),null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](4,278528,null,0,i.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](5,0,null,null,1,"div",[["class","tab-content"]],null,null,null,null,null)),a["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"nav",n.classMap),t(e,4,0,n.tabs)}),(function(t,e){t(e,0,0,e.component.ariaLabel)}))}},pL04:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},pLZG:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return function(n){return n.lift(new i(t,e))}}class i{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new s(t,this.predicate,this.thisArg))}}class s extends a.a{constructor(t,e,n){super(t),this.predicate=e,this.thisArg=n,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)}}},pMnS:function(t,e,n){"use strict";n.d(e,"a",(function(){return u}));var a=n("8Y7J"),r=n("iInd"),i=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),a["ɵdid"](1,212992,null,0,r.r,[r.b,a.ViewContainerRef,a.ComponentFactoryResolver,[8,null],a.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"ng-component",[],null,null,null,s,i)),a["ɵdid"](1,49152,null,0,r.F,[],null,null)],null,null)}var u=a["ɵccf"]("ng-component",r.F,o,{},{},[])},pSRY:function(t,e,n){var a=n("QkVE");t.exports=function(t){return a(this,t).has(t)}},pZt1:function(t,e){t.exports=function(t){return t&&t.length?t[0]:void 0}},pcHL:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Input)(),s("design:type",Object)],t.prototype,"templates",void 0),i([Object(a.Component)({selector:"tree-node-children",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div\n        [class.tree-children]="true"\n        [class.tree-children-no-padding]="node.options.levelPadding"\n        *treeAnimateOpen="\n          node.isExpanded;\n          speed: node.options.animateSpeed;\n          acceleration: node.options.animateAcceleration;\n          enabled: node.options.animateExpand\n        "\n      >\n        <tree-node-collection\n          *ngIf="node.children"\n          [nodes]="node.children"\n          [templates]="templates"\n          [treeModel]="node.treeModel"\n        >\n        </tree-node-collection>\n        <tree-loading-component\n          [style.padding-left]="node.getNodePadding()"\n          class="tree-node-loading"\n          *ngIf="!node.children"\n          [template]="templates.loadingTemplate"\n          [node]="node"\n        ></tree-loading-component>\n      </div>\n    </ng-container>\n  '})],t)}()},pkCn:function(t,e,n){"use strict";var a=n("0Dky");t.exports=function(t,e){var n=[][t];return!!n&&a((function(){n.call(null,e||function(){throw 1},1)}))}},ppGB:function(t,e){var n=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:n)(t)}},pxLl:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("mrSG"),r=n("IheW"),i=n("LRne"),s=n("5+tZ"),o=n("xTzq"),u=n("8Y7J"),d=n("pL04");let l=(()=>{let t=class{constructor(t){this.http=t,this.url="api/perf_counters"}list(){return this.http.get(this.url)}get(t,e){return this.http.get(`${this.url}/${t}/${e}`).pipe(Object(s.a)(t=>Object(i.a)(t.counters)))}};return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](r.c))},token:t,providedIn:d.a}),t=a.__decorate([o.a,a.__metadata("design:paramtypes",[r.c])],t),t})()},pxpQ:function(t,e,n){"use strict";var a=n("7o/Q"),r=n("EY2u"),i=n("LRne"),s=n("z6cu");let o=(()=>{class t{constructor(t,e,n){this.kind=t,this.value=e,this.error=n,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,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}}accept(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)}toObservable(){switch(this.kind){case"N":return Object(i.a)(this.value);case"E":return Object(s.a)(this.error);case"C":return Object(r.b)()}throw new Error("unexpected notification kind value")}static createNext(e){return void 0!==e?new t("N",e):t.undefinedValueNotification}static createError(e){return new t("E",void 0,e)}static createComplete(){return t.completeNotification}}return t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t})();function u(t,e=0){return function(n){return n.lift(new d(t,e))}}n.d(e,"b",(function(){return u})),n.d(e,"a",(function(){return l}));class d{constructor(t,e=0){this.scheduler=t,this.delay=e}call(t,e){return e.subscribe(new l(t,this.scheduler,this.delay))}}class l extends a.a{constructor(t,e,n=0){super(t),this.scheduler=e,this.delay=n}static dispatch(t){const{notification:e,destination:n}=t;e.observe(n),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(l.dispatch,this.delay,new c(t,this.destination)))}_next(t){this.scheduleMessage(o.createNext(t))}_error(t){this.scheduleMessage(o.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(o.createComplete()),this.unsubscribe()}}class c{constructor(t,e){this.notification=t,this.destination=e}}},qZTm:function(t,e,n){var a=n("fR/l"),r=n("MvSz"),i=n("7GkX");t.exports=function(t){return a(t,i,r)}},qgXg:function(t,e,n){"use strict";var a=n("3N8a");class r extends a.a{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,n=0){return null!==n&&n>0||null===n&&this.delay>0?super.requestAsyncId(t,e,n):t.flush(this)}}var i=n("IjjT");class s extends i.a{}n.d(e,"a",(function(){return o}));const o=new s(r)},quSY:function(t,e,n){"use strict";var a=n("DH7j"),r=n("XoHu"),i=n("n6bG");const s=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join("\n  ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})();n.d(e,"a",(function(){return o}));let o=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:o,_subscriptions:d}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(Object(i.a)(o))try{o.call(this)}catch(l){e=l instanceof s?u(l.errors):[l]}if(Object(a.a)(d)){let t=-1,n=d.length;for(;++t<n;){const n=d[t];if(Object(r.a)(n))try{n.unsubscribe()}catch(l){e=e||[],l instanceof s?e=e.concat(u(l.errors)):e.push(l)}}}if(e)throw new s(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case"function":n=new t(e);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}let{_parentOrParents:a}=n;if(null===a)n._parentOrParents=this;else if(a instanceof t){if(a===this)return n;n._parentOrParents=[a,this]}else{if(-1!==a.indexOf(this))return n;a.push(this)}const r=this._subscriptions;return null===r?this._subscriptions=[n]:r.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}var e;return t.EMPTY=((e=new t).closed=!0,e),t})();function u(t){return t.reduce((t,e)=>t.concat(e instanceof s?e.errors:e),[])}},r8II:function(t,e,n){"use strict";e.decode=e.parse=n("YcCt"),e.encode=e.stringify=n("6MUB")},rB9j:function(t,e,n){"use strict";var a=n("I+eb"),r=n("kmMV");a({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},rEGp:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}},rKzb:function(t,e,n){"use strict";var a=n("4syw"),r=n("8YOa").getWeakData,i=n("glrk"),s=n("hh1v"),o=n("GarU"),u=n("ImZN"),d=n("tycR"),l=n("UTVS"),c=n("afO8"),f=c.set,h=c.getterFor,g=d.find,p=d.findIndex,b=0,m=function(t){return t.frozen||(t.frozen=new y)},y=function(){this.entries=[]},v=function(t,e){return g(t.entries,(function(t){return t[0]===e}))};y.prototype={get:function(t){var e=v(this,t);if(e)return e[1]},has:function(t){return!!v(this,t)},set:function(t,e){var n=v(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=p(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,d){var c=t((function(t,a){o(t,c,e),f(t,{type:e,id:b++,frozen:void 0}),null!=a&&u(a,t[d],t,n)})),g=h(e),p=function(t,e,n){var a=g(t),s=r(i(e),!0);return!0===s?m(a).set(e,n):s[a.id]=n,t};return a(c.prototype,{delete:function(t){var e=g(this);if(!s(t))return!1;var n=r(t);return!0===n?m(e).delete(t):n&&l(n,e.id)&&delete n[e.id]},has:function(t){var e=g(this);if(!s(t))return!1;var n=r(t);return!0===n?m(e).has(t):n&&l(n,e.id)}}),a(c.prototype,n?{get:function(t){var e=g(this);if(s(t)){var n=r(t);return!0===n?m(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return p(this,t,e)}}:{add:function(t){return p(this,t,!0)}}),c}}},rW0t:function(t,e,n){"use strict";var a=n("glrk");t.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},rZud:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Input)(),s("design:type",Number)],t.prototype,"index",void 0),i([Object(a.Input)(),s("design:type",a.TemplateRef)],t.prototype,"template",void 0),i([Object(a.Component)({selector:"tree-node-content",encapsulation:a.ViewEncapsulation.None,template:'\n  <span *ngIf="!template">{{ node.displayField }}</span>\n  <ng-container\n    [ngTemplateOutlet]="template"\n    [ngTemplateOutletContext]="{ $implicit: node, node: node, index: index }">\n  </ng-container>'})],t)}()},raLr:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"хвилина":"хвилину":"h"===n?e?"година":"годину":t+" "+(a=+t,r={ss:e?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:e?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:e?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}function n(t){return function(){return t+"о"+(11===this.hours()?"б":"")+"] LT"}}t.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(t,e){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===t?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):t?n[/(\[[ВвУу]\]) ?dddd/.test(e)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".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:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:e,m:e,mm:e,h:"годину",hh:e,d:"день",dd:e,M:"місяць",MM:e,y:"рік",yy:e},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(t){return/^(дня|вечора)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночі":t<12?"ранку":t<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-й";case"D":return t+"-го";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},rkAj:function(t,e,n){var a=n("g6v/"),r=n("0Dky"),i=n("UTVS"),s=Object.defineProperty,o={},u=function(t){throw t};t.exports=function(t,e){if(i(o,t))return o[t];e||(e={});var n=[][t],d=!!i(e,"ACCESSORS")&&e.ACCESSORS,l=i(e,0)?e[0]:u,c=i(e,1)?e[1]:void 0;return o[t]=!!n&&!r((function(){if(d&&!a)return!0;var t={length:-1};d?s(t,1,{enumerable:!0,get:u}):t[1]=1,n.call(t,l,c)}))}},rpNk:function(t,e,n){"use strict";var a,r,i,s=n("4WOD"),o=n("kRJp"),u=n("UTVS"),d=n("tiKp"),l=n("xDBR"),c=d("iterator"),f=!1;[].keys&&("next"in(i=[].keys())?(r=s(s(i)))!==Object.prototype&&(a=r):f=!0),null==a&&(a={}),l||u(a,c)||o(a,c,(function(){return this})),t.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:f}},"s+uk":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},s7LF:function(t,e,n){"use strict";n.d(e,"C",(function(){return Tt})),n.d(e,"G",(function(){return gt})),n.d(e,"D",(function(){return R})),n.d(e,"E",(function(){return pt})),n.d(e,"F",(function(){return F})),n.d(e,"c",(function(){return d})),n.d(e,"d",(function(){return h})),n.d(e,"p",(function(){return u})),n.d(e,"b",(function(){return l})),n.d(e,"e",(function(){return c})),n.d(e,"q",(function(){return p})),n.d(e,"r",(function(){return m})),n.d(e,"s",(function(){return y})),n.d(e,"t",(function(){return ot})),n.d(e,"u",(function(){return ht})),n.d(e,"w",(function(){return C})),n.d(e,"x",(function(){return A})),n.d(e,"j",(function(){return xt})),n.d(e,"l",(function(){return bt})),n.d(e,"g",(function(){return yt})),n.d(e,"m",(function(){return mt})),n.d(e,"v",(function(){return q})),n.d(e,"A",(function(){return M})),n.d(e,"z",(function(){return _t})),n.d(e,"h",(function(){return Ot})),n.d(e,"a",(function(){return nt})),n.d(e,"f",(function(){return it})),n.d(e,"i",(function(){return at})),n.d(e,"k",(function(){return rt})),n.d(e,"o",(function(){return x})),n.d(e,"B",(function(){return T})),n.d(e,"n",(function(){return wt})),n.d(e,"y",(function(){return St}));var a=n("8Y7J"),r=n("cUpR"),i=n("cp0P"),s=n("Cfvw"),o=n("lJxs");const u=new a.InjectionToken("NgValueAccessor");class d{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}const l=new a.InjectionToken("CompositionEventMode");class c{constructor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=t=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const t=Object(r.q)()?Object(r.q)().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}class f{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}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 h extends f{get formDirective(){return null}get path(){return null}}function g(){throw new Error("unimplemented")}class p extends f{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null,this._rawValidators=[],this._rawAsyncValidators=[]}get validator(){return g()}get asyncValidator(){return g()}}class b{constructor(t){this._cd=t}get ngClassUntouched(){return!!this._cd.control&&this._cd.control.untouched}get ngClassTouched(){return!!this._cd.control&&this._cd.control.touched}get ngClassPristine(){return!!this._cd.control&&this._cd.control.pristine}get ngClassDirty(){return!!this._cd.control&&this._cd.control.dirty}get ngClassValid(){return!!this._cd.control&&this._cd.control.valid}get ngClassInvalid(){return!!this._cd.control&&this._cd.control.invalid}get ngClassPending(){return!!this._cd.control&&this._cd.control.pending}}class m extends b{constructor(t){super(t)}}class y extends b{constructor(t){super(t)}}function v(t){return null==t||0===t.length}const x=new a.InjectionToken("NgValidators"),_=/^(?=.{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 T{static min(t){return e=>{if(v(e.value)||v(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}}static max(t){return e=>{if(v(e.value)||v(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}}static required(t){return v(t.value)?{required:!0}:null}static requiredTrue(t){return!0===t.value?null:{required:!0}}static email(t){return v(t.value)?null:_.test(t.value)?null:{email:!0}}static minLength(t){return e=>{if(v(e.value))return null;const n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}}static maxLength(t){return e=>{const n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}}static pattern(t){if(!t)return T.nullValidator;let e,n;return"string"==typeof t?(n="","^"!==t.charAt(0)&&(n+="^"),n+=t,"$"!==t.charAt(t.length-1)&&(n+="$"),e=new RegExp(n)):(n=t.toString(),e=t),t=>{if(v(t.value))return null;const a=t.value;return e.test(a)?null:{pattern:{requiredPattern:n,actualValue:a}}}}static nullValidator(t){return null}static compose(t){if(!t)return null;const e=t.filter(O);return 0==e.length?null:function(t){return S(function(t,e){return e.map(e=>e(t))}(t,e))}}static composeAsync(t){if(!t)return null;const e=t.filter(O);return 0==e.length?null:function(t){const n=function(t,e){return e.map(e=>e(t))}(t,e).map(w);return Object(i.a)(n).pipe(Object(o.a)(S))}}}function O(t){return null!=t}function w(t){const e=Object(a["ɵisPromise"])(t)?Object(s.a)(t):t;if(!Object(a["ɵisObservable"])(e))throw new Error("Expected validator to return Promise or Observable.");return e}function S(t){const e=t.reduce((t,e)=>null!=e?Object.assign({},t,e):t,{});return 0===Object.keys(e).length?null:e}function I(t){return t.validate?e=>t.validate(e):t}function N(t){return t.validate?e=>t.validate(e):t}class C{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}class R{constructor(){this._accessors=[]}add(t,e){this._accessors.push([t,e])}remove(t){for(let e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)}select(t){this._accessors.forEach(e=>{this._isSameGroup(e,t)&&e[1]!==t&&e[1].fireUncheck(t.value)})}_isSameGroup(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name}}class A{constructor(t,e,n,a){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=a,this.onChange=()=>{},this.onTouched=()=>{}}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}fireUncheck(t){this.writeValue(t)}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_checkName(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)}_throwNameError(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')}}const k='\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',E='\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',L='\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>';class D{static controlParentException(){throw new Error(`formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${k}`)}static ngModelGroupException(){throw new Error(`formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        ${E}\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        ${L}`)}static missingFormException(){throw new Error(`formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       ${k}`)}static groupParentException(){throw new Error(`formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${E}`)}static arrayParentException(){throw new Error('formArrayName must be used with a parent formGroup directive.  You\'ll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        \n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });')}static disabledAttrWarning(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")}static ngModelWarning(t){console.warn(`\n    It looks like you're using ngModel on the same form field as ${t}. \n    Support for using the ngModel input property and ngModelChange event with \n    reactive form directives has been deprecated in Angular v6 and will be removed \n    in Angular v7.\n    \n    For more information on this, see our API docs here:\n    https://angular.io/api/forms/${"formControl"===t?"FormControlDirective":"FormControlName"}#use-with-ngmodel\n    `)}}function P(t,e){return null==t?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class M{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=a["ɵlooseIdentical"]}set compareWith(t){if("function"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){this.value=t;const e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);const n=P(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)}registerOnChange(t){this.onChange=e=>{this.value=this._getOptionValue(e),t(this.value)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e),t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t}}class q{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(P(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}function j(t,e){return null==t?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class F{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(j(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(j(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}function G(t,e){return[...e.path,t]}function V(t,e){t||H(e,"Cannot find control with"),e.valueAccessor||H(e,"No value accessor for form control with"),t.validator=T.compose([t.validator,e.validator]),t.asyncValidator=T.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&z(t,e)})}(t,e),function(t,e){t.registerOnChange((t,n)=>{e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&z(t,e),"submit"!==t.updateOn&&t.markAsTouched()})}(t,e),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(t=>{e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())}),e._rawAsyncValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())})}function z(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function B(t,e){null==t&&H(e,"Cannot find control with"),t.validator=T.compose([t.validator,e.validator]),t.asyncValidator=T.composeAsync([t.asyncValidator,e.asyncValidator])}function Y(t){return H(t,"There is no FormControl instance attached to form control element with")}function H(t,e){let n;throw n=t.path.length>1?`path: '${t.path.join(" -> ")}'`:t.path[0]?`name: '${t.path}'`:"unspecified name attribute",new Error(`${e} ${n}`)}function U(t){return null!=t?T.compose(t.map(I)):null}function W(t){return null!=t?T.composeAsync(t.map(N)):null}function K(t,e){if(!t.hasOwnProperty("model"))return!1;const n=t.model;return!!n.isFirstChange()||!Object(a["ɵlooseIdentical"])(e,n.currentValue)}const $=[d,class{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}},C,M,class{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=a["ɵlooseIdentical"]}set compareWith(t){if("function"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){let e;if(this.value=t,Array.isArray(t)){const n=t.map(t=>this._getOptionId(t));e=(t,e)=>{t._setSelected(n.indexOf(e.toString())>-1)}}else e=(t,e)=>{t._setSelected(!1)};this._optionMap.forEach(e)}registerOnChange(t){this.onChange=e=>{const n=[];if(e.hasOwnProperty("selectedOptions")){const t=e.selectedOptions;for(let e=0;e<t.length;e++){const a=t.item(e),r=this._getOptionValue(a.value);n.push(r)}}else{const t=e.options;for(let e=0;e<t.length;e++){const a=t.item(e);if(a.selected){const t=this._getOptionValue(a.value);n.push(t)}}}this.value=n,t(n)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(t){const e=(this._idCounter++).toString();return this._optionMap.set(e,t),e}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e)._value,t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t}},A];function Z(t,e){t._syncPendingControls(),e.forEach(t=>{const e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function J(t,e){if(!e)return null;Array.isArray(e)||H(t,"Value accessor was not provided as an array for form control with");let n=void 0,a=void 0,r=void 0;return e.forEach(e=>{var i;e.constructor===c?n=e:(i=e,$.some(t=>i.constructor===t)?(a&&H(t,"More than one built-in value accessor matches form control with"),a=e):(r&&H(t,"More than one custom value accessor matches form control with"),r=e))}),r||a||n||(H(t,"No valid value accessor for form control with"),null)}function Q(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}function X(t){const e=et(t)?t.validators:t;return Array.isArray(e)?U(e):e||null}function tt(t,e){const n=et(e)?e.asyncValidators:t;return Array.isArray(n)?W(n):n||null}function et(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}class nt{constructor(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=()=>{},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}get parent(){return this._parent}get valid(){return"VALID"===this.status}get invalid(){return"INVALID"===this.status}get pending(){return"PENDING"==this.status}get disabled(){return"DISABLED"===this.status}get enabled(){return"DISABLED"!==this.status}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.validator=X(t)}setAsyncValidators(t){this.asyncValidator=tt(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(t=>{t.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(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status="PENDING",!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="DISABLED",this.errors=null,this._forEachChild(e=>{e.disable(Object.assign({},t,{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign({},t,{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status="VALID",this._forEachChild(e=>{e.enable(Object.assign({},t,{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign({},t,{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||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()?"DISABLED":"VALID"}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status="PENDING";const e=w(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(e=>this.setErrors(e,{emitEvent:t}))}}_cancelExistingSubscription(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(".")),e instanceof Array&&0===e.length?null:e.reduce((t,e)=>t instanceof rt?t.controls.hasOwnProperty(e)?t.controls[e]:null:t instanceof it&&t.at(e)||null,t))}(this,t)}getError(t,e){const n=e?this.get(e):this;return n&&n.errors?n.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 a.EventEmitter,this.statusChanges=new a.EventEmitter}_calculateStatus(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"}_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)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){et(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&this._parent&&this._parent.dirty&&!this._parent._anyControlsDirty()}}class at extends nt{constructor(t=null,e,n){super(X(e),tt(n,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),this._initObservables()}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(t=>t(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,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)}_clearChangeFns(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=()=>{}}registerOnDisabledChange(t){this._onDisabledChange.push(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){this._isBoxedValue(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}}class rt extends nt{constructor(t,e,n){super(X(e),tt(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}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){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach(n=>{this._throwIfControlMissing(n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){Object.keys(t).forEach(n=>{this.controls[n]&&this.controls[n].patchValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t={},e={}){this._forEachChild((n,a)=>{n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,n)=>(t[n]=e instanceof at?e.value:e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(t,e)=>!!e._syncPendingControls()||t);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach(e=>t(this.controls[e],e))}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){let e=!1;return this._forEachChild((n,a)=>{e=e||this.contains(a)&&t(n)}),e}_reduceValue(){return this._reduceChildren({},(t,e,n)=>((e.enabled||this.disabled)&&(t[n]=e.value),t))}_reduceChildren(t,e){let n=t;return this._forEachChild((t,a)=>{n=e(n,t,a)}),n}_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}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)})}}class it extends nt{constructor(t,e,n){super(X(e),tt(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}at(t){return this.controls[t]}push(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()}insert(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()}removeAt(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach((t,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t.forEach((t,n)=>{this.at(n)&&this.at(n).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t=[],e={}){this._forEachChild((n,a)=>{n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t instanceof at?t.value:t.getRawValue())}clear(){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let t=this.controls.reduce((t,e)=>!!e._syncPendingControls()||t,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error(`Cannot find form control at index ${t}`)}_forEachChild(t){this.controls.forEach((e,n)=>{t(e,n)})}_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))}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control at index: ${n}.`)})}_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)}}const st=(()=>Promise.resolve(null))();class ot extends h{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new a.EventEmitter,this.form=new rt({},U(t),W(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){st.then(()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),V(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){st.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),Q(this._directives,t)})}addFormGroup(t){st.then(()=>{const e=this._findContainer(t.path),n=new rt({});B(n,t),e.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){st.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){st.then(()=>{this.form.get(t.path).setValue(e)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,Z(this.form,this._directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}class ut{static modelParentException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup's partner directive "formControlName" instead.  Example:\n\n      ${k}\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      \n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  `)}static formGroupNameException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      ${E}\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      ${L}`)}static missingNameException(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')}static modelGroupParentException(){throw new Error(`\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      ${E}\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      ${L}`)}static ngFormWarning(){console.warn("\n    It looks like you're using 'ngForm'.\n\n    Support for using the 'ngForm' element selector has been deprecated in Angular v6 and will be removed\n    in Angular v9.\n\n    Use 'ng-form' instead.\n\n    Before:\n    <ngForm #myForm=\"ngForm\">\n\n    After:\n    <ng-form #myForm=\"ngForm\">\n    ")}}const dt=new a.InjectionToken("NgFormSelectorWarning");class lt extends h{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return G(this.name,this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._validators)}get asyncValidator(){return W(this._asyncValidators)}_checkParentType(){}}class ct extends lt{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}_checkParentType(){this._parent instanceof ct||this._parent instanceof ot||ut.modelGroupParentException()}}const ft=(()=>Promise.resolve(null))();class ht extends p{constructor(t,e,n,r){super(),this.control=new at,this._registered=!1,this.update=new a.EventEmitter,this._parent=t,this._rawValidators=e||[],this._rawAsyncValidators=n||[],this.valueAccessor=J(this,r)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),K(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?G(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._rawValidators)}get asyncValidator(){return W(this._rawAsyncValidators)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){V(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){!(this._parent instanceof ct)&&this._parent instanceof lt?ut.formGroupNameException():this._parent instanceof ct||this._parent instanceof ot||ut.modelParentException()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||ut.missingNameException()}_updateValue(t){ft.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1})})}_updateDisabled(t){const e=t.isDisabled.currentValue,n=""===e||e&&"false"!==e;ft.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()})}}class gt{}const pt=new a.InjectionToken("NgModelWithFormControlWarning");class bt extends h{constructor(t,e){super(),this._validators=t,this._asyncValidators=e,this.submitted=!1,this.directives=[],this.form=null,this.ngSubmit=new a.EventEmitter}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const e=this.form.get(t.path);return V(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e}getControl(t){return this.form.get(t.path)}removeControl(t){Q(this.directives,t)}addFormGroup(t){const e=this.form.get(t.path);B(e,t),e.updateValueAndValidity({emitEvent:!1})}removeFormGroup(t){}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){const e=this.form.get(t.path);B(e,t),e.updateValueAndValidity({emitEvent:!1})}removeFormArray(t){}getFormArray(t){return this.form.get(t.path)}updateModel(t,e){this.form.get(t.path).setValue(e)}onSubmit(t){return this.submitted=!0,Z(this.form,this.directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach(t=>{const e=this.form.get(t.path);t.control!==e&&(function(t,e){e.valueAccessor.registerOnChange(()=>Y(e)),e.valueAccessor.registerOnTouched(()=>Y(e)),e._rawValidators.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}(t.control,t),e&&V(e,t),t.control=e)}),this.form._updateTreeValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(()=>this._updateDomValue()),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{}),this._oldForm=this.form}_updateValidators(){const t=U(this._validators);this.form.validator=T.compose([this.form.validator,t]);const e=W(this._asyncValidators);this.form.asyncValidator=T.composeAsync([this.form.asyncValidator,e])}_checkFormPresent(){this.form||D.missingFormException()}}class mt extends lt{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}_checkParentType(){vt(this._parent)&&D.groupParentException()}}class yt extends h{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}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 G(this.name,this._parent)}get validator(){return U(this._validators)}get asyncValidator(){return W(this._asyncValidators)}_checkParentType(){vt(this._parent)&&D.arrayParentException()}}function vt(t){return!(t instanceof mt||t instanceof bt||t instanceof yt)}let xt=(()=>{class t extends p{constructor(t,e,n,r,i){super(),this._ngModelWarningConfig=i,this._added=!1,this.update=new a.EventEmitter,this._ngModelWarningSent=!1,this._parent=t,this._rawValidators=e||[],this._rawAsyncValidators=n||[],this.valueAccessor=J(this,r)}set isDisabled(t){D.disabledAttrWarning()}ngOnChanges(e){var n,r;this._added||this._setUpControl(),K(e,this.viewModel)&&("formControlName",n=t,this,r=this._ngModelWarningConfig,Object(a.isDevMode)()&&"never"!==r&&((null!==r&&"once"!==r||n._ngModelWarningSentOnce)&&("always"!==r||this._ngModelWarningSent)||(D.ngModelWarning("formControlName"),n._ngModelWarningSentOnce=!0,this._ngModelWarningSent=!0)),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return G(this.name,this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._rawValidators)}get asyncValidator(){return W(this._rawAsyncValidators)}_checkParentType(){!(this._parent instanceof mt)&&this._parent instanceof lt?D.ngModelGroupException():this._parent instanceof mt||this._parent instanceof bt||this._parent instanceof yt||D.controlParentException()}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return t._ngModelWarningSentOnce=!1,t})();class _t{get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&"false"!==`${t}`,this._onChange&&this._onChange()}validate(t){return this.required?T.required(t):null}registerOnValidatorChange(t){this._onChange=t}}class Tt{}class Ot{group(t,e=null){const n=this._reduceControls(t);let a=null,r=null,i=void 0;return null!=e&&(function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(a=null!=e.validators?e.validators:null,r=null!=e.asyncValidators?e.asyncValidators:null,i=null!=e.updateOn?e.updateOn:void 0):(a=null!=e.validator?e.validator:null,r=null!=e.asyncValidator?e.asyncValidator:null)),new rt(n,{asyncValidators:r,updateOn:i,validators:a})}control(t,e,n){return new at(t,e,n)}array(t,e,n){const a=t.map(t=>this._createControl(t));return new it(a,e,n)}_reduceControls(t){const e={};return Object.keys(t).forEach(n=>{e[n]=this._createControl(t[n])}),e}_createControl(t){return t instanceof at||t instanceof rt||t instanceof it?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}}class wt{static withConfig(t){return{ngModule:wt,providers:[{provide:dt,useValue:t.warnOnDeprecatedNgFormSelector}]}}}class St{static withConfig(t){return{ngModule:St,providers:[{provide:pt,useValue:t.warnOnNgModelWithFormControl}]}}}},sEFX:function(t,e,n){"use strict";var a=n("AO7/"),r=n("9d/t");t.exports=a?{}.toString:function(){return"[object "+r(this)+"]"}},sEf8:function(t,e){t.exports=function(t){return function(e){return t(e)}}},sEfC:function(t,e,n){var a=n("GoyQ"),r=n("QIyF"),i=n("tLB3"),s=Math.max,o=Math.min;t.exports=function(t,e,n){var u,d,l,c,f,h,g=0,p=!1,b=!1,m=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=u,a=d;return u=d=void 0,g=e,c=t.apply(a,n)}function v(t){return g=t,f=setTimeout(_,e),p?y(t):c}function x(t){var n=t-h;return void 0===h||n>=e||n<0||b&&t-g>=l}function _(){var t=r();if(x(t))return T(t);f=setTimeout(_,function(t){var n=e-(t-h);return b?o(n,l-(t-g)):n}(t))}function T(t){return f=void 0,m&&u?y(t):(u=d=void 0,c)}function O(){var t=r(),n=x(t);if(u=arguments,d=this,h=t,n){if(void 0===f)return v(h);if(b)return clearTimeout(f),f=setTimeout(_,e),y(h)}return void 0===f&&(f=setTimeout(_,e)),c}return e=i(e)||0,a(n)&&(p=!!n.leading,l=(b="maxWait"in n)?s(i(n.maxWait)||0,e):l,m="trailing"in n?!!n.trailing:m),O.cancel=function(){void 0!==f&&clearTimeout(f),g=0,u=h=d=f=void 0},O.flush=function(){return void 0===f?c:T(r())},O}},sLuX:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("25BL"),i=n("uIqm");n("FSuO"),n("a0VL"),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return o}));var s=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function o(t){return a["ɵvid"](0,[a["ɵqud"](402653184,1,{table:0}),(t()(),a["ɵeld"](1,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,r.b,r.a)),a["ɵdid"](2,2867200,[[1,4],["table",4]],0,i.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],header:[4,"header"],footer:[5,"footer"],limit:[6,"limit"],autoReload:[7,"autoReload"],autoSave:[8,"autoSave"],customCss:[9,"customCss"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.tableData,n.columns,"flex",!1,!1,!1,0,n.autoReload,!1,n.customCss)}),null)}},sMBO:function(t,e,n){var a=n("g6v/"),r=n("m/L8").f,i=Function.prototype,s=i.toString,o=/^\s*function ([^ (]*)/;!a||"name"in i||r(i,"name",{configurable:!0,get:function(){try{return s.call(this).match(o)[1]}catch(t){return""}}})},sVev:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})()},sb0X:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("s7LF"),i=n("oxzT"),s=n("LvDl");class o{constructor(t){this.elRef=t,this.type="submit",this.disabled=!1,this.submitAction=new a.EventEmitter,this.loading=!1,this.icons=i.a}ngOnInit(){this.form.statusChanges.subscribe(()=>{s.has(this.form.errors,"cdSubmitButton")&&(this.loading=!1,s.unset(this.form.errors,"cdSubmitButton"),this.form instanceof r.a&&this.form.updateValueAndValidity())})}submit(t){this.focusButton(),this.form instanceof r.l&&this.form.onSubmit(t),this.form.invalid?this.focusInvalid():(this.loading=!0,this.submitAction.emit())}focusButton(){this.elRef.nativeElement.offsetParent.querySelector(`button[type="${this.type}"]`).focus()}focusInvalid(){const t=this.elRef.nativeElement.offsetParent.querySelector("input.ng-invalid, select.ng-invalid");t&&t.focus()}}},seXi:function(t,e,n){var a=n("qZTm"),r=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,i,s,o){var u=1&n,d=a(t),l=d.length;if(l!=a(e).length&&!u)return!1;for(var c=l;c--;){var f=d[c];if(!(u?f in e:r.call(e,f)))return!1}var h=o.get(t);if(h&&o.get(e))return h==e;var g=!0;o.set(t,e),o.set(e,t);for(var p=u;++c<l;){var b=t[f=d[c]],m=e[f];if(i)var y=u?i(m,b,f,e,t,o):i(b,m,f,t,e,o);if(!(void 0===y?b===m||s(b,m,n,i,o):y)){g=!1;break}p||(p="constructor"==f)}if(g&&!p){var v=t.constructor,x=e.constructor;v!=x&&"constructor"in t&&"constructor"in e&&!("function"==typeof v&&v instanceof v&&"function"==typeof x&&x instanceof x)&&(g=!1)}return o.delete(t),o.delete(e),g}},shjB:function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},sne2:function(t,e,n){"use strict";n.d(e,"c",(function(){return i})),n.d(e,"e",(function(){return s})),n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return u})),n.d(e,"d",(function(){return d}));var a=n("8Y7J"),r=n("GiVz");let i=(()=>{class t{}return t.organization="ceph",t.projectName="Ceph Dashboard",t.license="Free software (LGPL 2.1).",t})();var s=function(t){return t.CREATE="create",t.EDIT="edit",t.UPDATE="update",t.REMOVE="remove",t.DELETE="delete",t.ADD="add",t.COPY="copy",t.CLONE="clone",t.RECREATE="recreate",t.EXPIRE="expire",t}({}),o=function(t){return t.CREATE="Create",t.DELETE="Delete",t.ADD="Add",t.REMOVE="Remove",t.EDIT="Edit",t.CANCEL="Cancel",t.COPY="Copy",t.CLONE="Clone",t.UPDATE="Update",t.EVICT="Evict",t.SHOW="Show",t.RECREATE="Recreate",t.EXPIRE="Expire",t}({});let u=(()=>{class t{constructor(t){this.i18n=t,this.CREATE=this.i18n("Create"),this.DELETE=this.i18n("Delete"),this.ADD=this.i18n("Add"),this.SET=this.i18n("Set"),this.REMOVE=this.i18n("Remove"),this.UNSET=this.i18n("Unset"),this.EDIT=this.i18n("Edit"),this.UPDATE=this.i18n("Update"),this.CANCEL=this.i18n("Cancel"),this.CLONE=this.i18n("Clone"),this.COPY=this.i18n("Copy"),this.DEEP_SCRUB=this.i18n("Deep Scrub"),this.DESTROY=this.i18n("Destroy"),this.EVICT=this.i18n("Evict"),this.FLATTEN=this.i18n("Flatten"),this.MARK_DOWN=this.i18n("Mark Down"),this.MARK_IN=this.i18n("Mark In"),this.MARK_LOST=this.i18n("Mark Lost"),this.MARK_OUT=this.i18n("Mark Out"),this.PROTECT=this.i18n("Protect"),this.PURGE=this.i18n("Purge"),this.RENAME=this.i18n("Rename"),this.RESTORE=this.i18n("Restore"),this.REWEIGHT=this.i18n("Reweight"),this.ROLLBACK=this.i18n("Rollback"),this.SCRUB=this.i18n("Scrub"),this.SHOW=this.i18n("Show"),this.TRASH=this.i18n("Move to Trash"),this.UNPROTECT=this.i18n("Unprotect"),this.CHANGE=this.i18n("Change"),this.RECREATE=this.i18n("Recreate"),this.EXPIRE=this.i18n("Expire")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})(),d=(()=>{class t{constructor(t){this.i18n=t,this.CREATED=this.i18n("Created"),this.DELETED=this.i18n("Deleted"),this.ADDED=this.i18n("Added"),this.REMOVED=this.i18n("Removed"),this.EDITED=this.i18n("Edited"),this.CANCELED=this.i18n("Canceled"),this.CLONED=this.i18n("Cloned"),this.COPIED=this.i18n("Copied"),this.DEEP_SCRUBBED=this.i18n("Deep Scrubbed"),this.DESTROYED=this.i18n("Destroyed"),this.FLATTENED=this.i18n("Flattened"),this.MARKED_DOWN=this.i18n("Marked Down"),this.MARKED_IN=this.i18n("Marked In"),this.MARKED_LOST=this.i18n("Marked Lost"),this.MARKED_OUT=this.i18n("Marked Out"),this.PROTECTED=this.i18n("Protected"),this.PURGED=this.i18n("Purged"),this.RENAMED=this.i18n("Renamed"),this.RESTORED=this.i18n("Restored"),this.REWEIGHTED=this.i18n("Reweighted"),this.ROLLED_BACK=this.i18n("Rolled back"),this.SCRUBBED=this.i18n("Scrubbed"),this.SHOWED=this.i18n("Showed"),this.TRASHED=this.i18n("Moved to Trash"),this.UNPROTECTED=this.i18n("Unprotected"),this.CHANGE=this.i18n("Change"),this.RECREATED=this.i18n("Recreated"),this.EXPIRED=this.i18n("Expired")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})()},sp3z:function(t,e,n){!function(t){"use strict";t.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".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:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(t){return"ຕອນແລງ"===t},meridiem:function(t,e,n){return t<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(t){return"ທີ່"+t}})}(n("wd/R"))},"t/zF":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e){this.name=t,this.metadata=e}}},t2Dn:function(t,e,n){var a=n("hypo"),r=n("ljhN");t.exports=function(t,e,n){(void 0===n||r(t[e],n))&&(void 0!==n||e in t)||a(t,e,n)}},tAZD:function(t,e,n){var a,r,i;!function(s){if("object"==typeof t.exports){var o=s(0,e);void 0!==o&&(t.exports=o)}else r=[n,e],void 0===(i="function"==typeof(a=s)?a.apply(e,r):a)||(t.exports=i)}((function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=void 0;e.default=["en",[["a","p"],["AM","PM"],n],[["AM","PM"],n,n],[["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"]],n,[["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"]],n,[["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}",n,"{1} 'at' {0}",n],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}]}))},tGlX:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},tLB3:function(t,e,n){var a=n("GoyQ"),r=n("/9aa"),i=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,u=/^0o[0-7]+$/i,d=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(r(t))return NaN;if(a(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=a(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=o.test(t);return n||u.test(t)?d(t.slice(2),n?2:8):s.test(t)?NaN:+t}},tMB7:function(t,e,n){var a=n("y1pI");t.exports=function(t){var e=this.__data__,n=a(e,t);return n<0?void 0:e[n][1]}},tT3J:function(t,e,n){!function(t){"use strict";t.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".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ḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n("wd/R"))},tUCv:function(t,e,n){!function(t){"use strict";t.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".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:/enjing|siyang|sonten|ndalu/,meridiemHour:function(t,e){return 12===t&&(t=0),"enjing"===e?t:"siyang"===e?t>=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<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("wd/R"))},tadb:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"DataView");t.exports=a},tiKp:function(t,e,n){var a=n("2oRo"),r=n("VpIT"),i=n("UTVS"),s=n("kOOl"),o=n("STAE"),u=n("/b8u"),d=r("wks"),l=a.Symbol,c=u?l:l&&l.withoutSetter||s;t.exports=function(t){return i(d,t)||(d[t]=o&&i(l,t)?l[t]:c("Symbol."+t)),d[t]}},tycR:function(t,e,n){var a=n("A2ZE"),r=n("RK3t"),i=n("ewvW"),s=n("UMSQ"),o=n("ZfDv"),u=[].push,d=function(t){var e=1==t,n=2==t,d=3==t,l=4==t,c=6==t,f=5==t||c;return function(h,g,p,b){for(var m,y,v=i(h),x=r(v),_=a(g,p,3),T=s(x.length),O=0,w=b||o,S=e?w(h,T):n?w(h,0):void 0;T>O;O++)if((f||O in x)&&(y=_(m=x[O],O,v),t))if(e)S[O]=y;else if(y)switch(t){case 3:return!0;case 5:return m;case 6:return O;case 2:u.call(S,m)}else if(l)return!1;return c?-1:d||l?l:S}};t.exports={forEach:d(0),map:d(1),filter:d(2),some:d(3),every:d(4),find:d(5),findIndex:d(6)}},u3GI:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},u8Dt:function(t,e,n){var a=n("YESw"),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(a){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return r.call(e,t)?e[t]:void 0}},uEye:function(t,e,n){!function(t){"use strict";t.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åndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".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år klokka] LT",lastWeek:"[Føregåande] 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ånad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uIqm:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("w9WL"),i=n("LvDl"),s=n("PqYM"),o=n("HDdC"),u=n("oxzT"),d=n("x38r");class l{constructor(t){this.errorConfig={resetData:!0,displayError:!0},this.error=t}}var c=n("vCyI");n.d(e,"a",(function(){return f}));class f{constructor(t,e){this.ngZone=t,this.cdRef=e,this.columnMode="flex",this.onlyActionHeader=!1,this.toolHeader=!0,this.searchField=!0,this.header=!0,this.footer=!0,this.limit=10,this.hasDetails=!1,this.autoReload=5e3,this.identifier="id",this.forceIdentifier=!1,this.selectionType=void 0,this.updateSelectionOnRefresh="onChange",this.updateExpandedOnRefresh="onChange",this.autoSave=!0,this.searchableObjects=!1,this.extraFilterableColumns=[],this.fetchData=new a.EventEmitter,this.updateSelection=new a.EventEmitter,this.setExpandedRow=new a.EventEmitter,this.columnFiltersChanged=new a.EventEmitter,this.selection=new c.a,this.expanded=void 0,this.icons=u.a,this.cellTemplates={},this.search="",this.rows=[],this.loadingIndicator=!0,this.loadingError=!1,this.paginationClasses={pagerLeftArrow:u.a.leftArrowDouble,pagerRightArrow:u.a.rightArrowDouble,pagerPrevious:u.a.leftArrow,pagerNext:u.a.rightArrow},this.userConfig={},this.localStorage=window.localStorage,this.updating=!1,this.columnFilters=[]}get columnFiltered(){return i.some(this.columnFilters,t=>void 0!==t.value)}static prepareSearch(t){return(t=t.toLowerCase().replace(/,/g,"")).match(/['"][^'"]+['"]/)&&(t=t.replace(/['"][^'"]+['"]/g,t=>t.replace(/(['"])([^'"]+)(['"])/g,"$2").replace(/ /g,"+"))),t.split(" ").filter(t=>t)}ngOnInit(){if(this.table.element.addEventListener("mouseenter",t=>t.stopPropagation(),!0),this._addTemplates(),!this.sorts){const t=-1!==i.findIndex(this.columns,["prop",this.identifier]);this.sorts=this.createSortingDefinition(t?this.identifier:this.columns[0].prop+""),t||this.forceIdentifier||(this.identifier=this.columns[0].prop+"")}this.initUserConfig(),this.columns.forEach(t=>{t.cellTransformation&&(t.cellTemplate=this.cellTemplates[t.cellTransformation]),t.flexGrow||(t.flexGrow=t.prop+""===this.identifier?1:2),t.resizeable||(t.resizeable=!1)}),this.initExpandCollapseColumn(),this.initCheckboxColumn(),this.filterHiddenColumns(),this.initColumnFilters(),this.updateColumnFilterOptions(),this.fetchData.observers.length>0&&(this.loadingIndicator=!0),i.isInteger(this.autoReload)&&this.autoReload>0?this.ngZone.runOutsideAngular(()=>{this.reloadSubscriber=Object(s.a)(0,this.autoReload).subscribe(()=>{this.ngZone.run(()=>this.reloadData())})}):this.autoReload?this.useData():this.reloadData()}initUserConfig(){this.autoSave&&(this.tableName=this._calculateUniqueTableName(this.columns),this._loadUserConfig(),this._initUserConfigAutoSave()),this.userConfig.limit||(this.userConfig.limit=this.limit),this.userConfig.sorts||(this.userConfig.sorts=this.sorts),this.userConfig.columns?this.columns.forEach((t,e)=>{t.isHidden=this.userConfig.columns[e].isHidden}):this.updateUserColumns()}_calculateUniqueTableName(t){const e=t=>{if(!i.isString(t))return 0;let e=0;for(let n=0;n<t.length;n++)e+=t.charCodeAt(n)*n;return e};return t.reduce((t,n,a)=>(e(n.prop)+e(n.name))*(a+1)+t,0).toString()}_loadUserConfig(){const t=this.localStorage.getItem(this.tableName);t&&(this.userConfig=JSON.parse(t))}_initUserConfigAutoSave(){const t=o.a.create(this._initUserConfigProxy.bind(this));this.saveSubscriber=t.subscribe(this._saveUserConfig.bind(this))}_initUserConfigProxy(t){this.userConfig=new Proxy(this.userConfig,{set:(e,n,a)=>(e[n]=a,t.next(e),!0)})}_saveUserConfig(t){this.localStorage.setItem(this.tableName,JSON.stringify(t))}updateUserColumns(){this.userConfig.columns=this.columns.map(t=>({prop:t.prop,name:t.name,isHidden:!!t.isHidden}))}initCheckboxColumn(){"multiClick"===this.selectionType&&this.columns.unshift({prop:void 0,resizeable:!1,sortable:!1,draggable:!1,checkboxable:!0,canAutoResize:!1,cellClass:"cd-datatable-checkbox",width:30})}initExpandCollapseColumn(){this.hasDetails&&this.columns.unshift({prop:void 0,resizeable:!1,sortable:!1,draggable:!1,isHidden:!1,canAutoResize:!1,cellClass:"cd-datatable-expand-collapse",width:40,cellTemplate:this.rowDetailsTpl})}filterHiddenColumns(){this.tableColumns=this.columns.filter(t=>!t.isHidden)}initColumnFilters(){let t=i.filter(this.columns,{filterable:!0});t=[...t,...this.extraFilterableColumns],this.columnFilters=t.map(t=>({column:t,options:[],value:t.filterInitValue?this.createColumnFilterOption(t.filterInitValue,t.pipe):void 0})),this.selectedFilter=i.first(this.columnFilters)}createColumnFilterOption(t,e){return{raw:i.toString(t),formatted:e?e.transform(t):i.toString(t)}}updateColumnFilterOptions(){this.columnFilters.forEach(t=>{let e=[];if(i.isUndefined(t.column.filterOptions)){const n=i.filter(i.map(this.data,t.column.prop),t=>i.isString(t)&&""!==t||i.isBoolean(t)||i.isFinite(t)||i.isDate(t));e=i.sortedUniq(n.sort())}else e=t.column.filterOptions;const n=e.map(e=>this.createColumnFilterOption(e,t.column.pipe));t.value&&i.isUndefined(i.find(n,{raw:t.value.raw}))&&(t.value=void 0),t.options=n})}onSelectFilter(t){this.selectedFilter=t}onChangeFilter(t,e){t.value=i.isEqual(t.value,e)?void 0:e,this.updateFilter()}doColumnFiltering(){const t=[];let e=[...this.data],n=[];return this.columnFilters.forEach(a=>{if(void 0===a.value)return;t.push({name:a.column.name,prop:a.column.prop,value:a.value});const s=i.partition(e,t=>{const e=Object(r.C)(a.column.prop)(t,a.column.prop);return i.isUndefined(a.column.filterPredicate)?`${e}`===a.value.raw:a.column.filterPredicate(t,a.value.raw)});e=s[0],n=[...n,...s[1]]}),this.columnFiltersChanged.emit({filters:t,data:e,dataOut:n}),i.forEach(this.selection.selected,t=>{void 0===i.find(e,{[this.identifier]:t[this.identifier]})&&(this.selection=new c.a,this.onSelect(this.selection))}),e}ngOnDestroy(){this.reloadSubscriber&&this.reloadSubscriber.unsubscribe(),this.saveSubscriber&&this.saveSubscriber.unsubscribe()}ngAfterContentChecked(){this.table&&this.table.element.clientWidth!==this.currentWidth&&(this.currentWidth=this.table.element.clientWidth,this.table.recalculate(),i.get(this.table,"cd").markForCheck())}_addTemplates(){this.cellTemplates.bold=this.tableCellBoldTpl,this.cellTemplates.checkIcon=this.checkIconTpl,this.cellTemplates.sparkline=this.sparklineTpl,this.cellTemplates.routerLink=this.routerLinkTpl,this.cellTemplates.perSecond=this.perSecondTpl,this.cellTemplates.executing=this.executingTpl,this.cellTemplates.classAdding=this.classAddingTpl,this.cellTemplates.badge=this.badgeTpl,this.cellTemplates.map=this.mapTpl,this.cellTemplates.truncate=this.truncateTpl}useCustomClass(t){if(!this.customCss)throw new Error("Custom classes are not set!");const e=Object.keys(this.customCss),n=Object.values(this.customCss).map((n,a)=>(i.isFunction(n)&&n(t)||n===t)&&e[a]).filter(t=>t).join(" ");return i.isEmpty(n)?void 0:n}ngOnChanges(){this.useData()}setLimit(t){const e=parseInt(t.target.value,10);e>0&&(this.userConfig.limit=e)}reloadData(){if(!this.updating){this.loadingError=!1;const t=new l(()=>{this.loadingError=t.errorConfig.displayError,t.errorConfig.resetData&&(this.data=[]),this.useData()});this.fetchData.emit(t),this.updating=!0}}refreshBtn(){this.loadingIndicator=!0,this.reloadData()}rowIdentity(){return t=>{const e=t[this.identifier];if(i.isUndefined(e))throw new Error(`Wrong identifier "${this.identifier}" -> "${e}"`);return e}}useData(){this.data&&(this.updateColumnFilterOptions(),this.updateFilter(),this.reset(),this.updateSelected(),this.updateExpanded())}reset(){this.loadingIndicator=!1,this.updating=!1}updateSelected(){if("never"===this.updateSelectionOnRefresh)return;const t=[];this.selection.selected.forEach(e=>{for(const n of this.data)e[this.identifier]===n[this.identifier]&&t.push(n)}),"onChange"===this.updateSelectionOnRefresh&&i.isEqual(this.selection.selected,t)||(this.selection.selected=t,this.onSelect(this.selection))}updateExpanded(){if(i.isUndefined(this.expanded)||"never"===this.updateExpandedOnRefresh)return;const t=this.expanded[this.identifier],e=i.find(this.data,e=>t===e[this.identifier]);"onChange"===this.updateExpandedOnRefresh&&i.isEqual(this.expanded,e)||(this.expanded=e,this.setExpandedRow.emit(e))}onSelect(t){this.selection.selected=t.selected,this.updateSelection.emit(i.clone(this.selection))}toggleColumn(t){const e=t.target.name,n=!t.target.checked;n&&1===this.tableColumns.length?t.target.checked=!0:(i.find(this.columns,t=>t.prop===e).isHidden=n,this.updateColumns())}updateColumns(){this.updateUserColumns(),this.filterHiddenColumns();const t=this.userConfig.sorts[0].prop;i.find(this.tableColumns,e=>e.prop===t)||(this.userConfig.sorts=this.createSortingDefinition(this.tableColumns[0].prop)),this.table.recalculate(),this.cdRef.detectChanges()}createSortingDefinition(t){return[{prop:t,dir:r.A.asc}]}changeSorting({sorts:t}){this.userConfig.sorts=t}onClearSearch(){this.search="",this.updateFilter()}onClearFilters(){this.columnFilters.forEach(t=>{t.value=void 0}),this.selectedFilter=i.first(this.columnFilters),this.updateFilter()}updateFilter(){let t=0!==this.columnFilters.length?this.doColumnFiltering():this.data;if(this.search.length>0&&t){const e=this.columns.filter(t=>t.cellTransformation!==d.a.sparkline);t=this.subSearch(t,f.prepareSearch(this.search),e),this.table.offset=0}this.rows=t}subSearch(t,e,n){if(0===e.length||0===t.length)return t;const a=e.pop().replace(/\+/g," ").split(":"),r=[...n];return 2===a.length&&(n=r.filter(t=>-1!==t.name.toLowerCase().indexOf(a[0]))),t=this.basicDataSearch(i.last(a),t,n),this.subSearch(t,e,r)}basicDataSearch(t,e,n){return 0===t.length?e:e.filter(e=>n.filter(n=>{let a=i.get(e,n.prop);if(i.isUndefined(n.pipe)||(a=n.pipe.transform(a)),i.isUndefined(a)||i.isNull(a))return!1;if(i.isArray(a)?a=a.join(" "):(i.isNumber(a)||i.isBoolean(a))&&(a=a.toString()),i.isObjectLike(a)){if(!this.searchableObjects)return!1;a=JSON.stringify(a)}return-1!==a.toLowerCase().indexOf(t)}).length>0)}getRowClass(){return()=>({clickable:!i.isUndefined(this.selectionType)})}toggleExpandRow(t,e){e?(this.expanded=void 0,this.setExpandedRow.emit(void 0)):(this.expanded=t,this.table.rowDetail.collapseAllRows(),this.setExpandedRow.emit(t)),this.table.rowDetail.toggleExpandRow(t)}}},uNpg:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Component)({selector:"tree-node-checkbox",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <input\n        class="tree-node-checkbox"\n        type="checkbox"\n        (click)="node.mouseAction(\'checkboxClick\', $event)"\n        [checked]="node.isSelected"\n        [indeterminate]="node.isPartiallySelected"\n      />\n    </ng-container>\n  '})],t)}()},uXwI:function(t,e,n){!function(t){"use strict";var e={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function a(t,a,r){return t+" "+n(e[r],t,a)}function r(t,a,r){return n(e[r],t,a)}t.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_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:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(t,e){return e?"dažas sekundes":"dažām sekundēm"},ss:a,m:r,mm:a,h:r,hh:a,d:r,dd:a,M:r,MM:a,y:r,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uYzU:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(){}transform(t){switch(t){case"user:rbd":return"user:rbd (tcmu-runner)";default:return t}}}},ufoC:function(t,e,n){"use strict";var a=function(t){return t.auth="Login",t.cephfs="CephFS",t.rbd="RBD",t.pool="Pool",t.osd="OSD",t.role="Role",t.user="User",t}({}),r=n("jVDg"),i=n("8Y7J"),s=n("GiVz");n.d(e,"a",(function(){return d}));class o{constructor(t,e,n){this.running=t,this.failure=e,this.success=n}}class u{failure(t){return this.i18n("Failed to {{failure}} {{metadata}}",{failure:this.operation.failure,metadata:this.involves(t)})}running(t){return`${this.operation.running} ${this.involves(t)}`}success(t){return`${this.operation.success} ${this.involves(t)}`}constructor(t,e,n,a){this.i18n=t,this.operation=e,this.involves=n,this.errors=a||(()=>({}))}}let d=(()=>{class t{constructor(t){this.i18n=t,this.defaultMessage=this.newTaskMessage(new o(this.i18n("Executing"),this.i18n("execute"),this.i18n("Executed")),t=>t&&(a[t.component]||t.component)||this.i18n("unknown task"),()=>({})),this.commonOperations={create:new o(this.i18n("Creating"),this.i18n("create"),this.i18n("Created")),update:new o(this.i18n("Updating"),this.i18n("update"),this.i18n("Updated")),delete:new o(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),add:new o(this.i18n("Adding"),this.i18n("add"),this.i18n("Added")),remove:new o(this.i18n("Removing"),this.i18n("remove"),this.i18n("Removed")),import:new o(this.i18n("Importing"),this.i18n("import"),this.i18n("Imported"))},this.rbd={default:t=>this.i18n("RBD '{{id}}'",{id:`${t.image_spec}`}),create:t=>{const e=new r.a(t.pool_name,t.namespace,t.image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},child:t=>{const e=new r.a(t.child_pool_name,t.child_namespace,t.child_image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},destination:t=>{const e=new r.a(t.dest_pool_name,t.dest_namespace,t.dest_image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},snapshot:t=>this.i18n("RBD snapshot '{{id}}'",{id:`${t.image_spec}@${t.snapshot_name}`})},this.rbd_mirroring={site_name:()=>this.i18n("mirroring site name"),bootstrap:()=>this.i18n("bootstrap token"),pool:t=>this.i18n("mirror mode for pool '{{id}}'",{id:`${t.pool_name}`}),pool_peer:t=>this.i18n("mirror peer for pool '{{id}}'",{id:`${t.pool_name}`})},this.grafana={update_dashboards:()=>this.i18n("all dashboards")},this.messages={"host/create":this.newTaskMessage(this.commonOperations.create,t=>this.host(t)),"host/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.host(t)),"osd/create":this.newTaskMessage(this.commonOperations.create,t=>this.i18n("OSDs (DriveGroups: {{tracking_id}})",{tracking_id:t.tracking_id})),"osd/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.osd(t)),"pool/create":this.newTaskMessage(this.commonOperations.create,t=>this.pool(t),t=>({17:this.i18n("Name is already used by {{pool_name}}.",{pool_name:this.pool(t)})})),"pool/edit":this.newTaskMessage(this.commonOperations.update,t=>this.pool(t),t=>({17:this.i18n("Name is already used by {{pool_name}}.",{pool_name:this.pool(t)})})),"pool/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.pool(t)),"ecp/create":this.newTaskMessage(this.commonOperations.create,t=>this.ecp(t),t=>({17:this.i18n("Name is already used by {{name}}.",{name:this.ecp(t)})})),"ecp/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.ecp(t)),"crushRule/create":this.newTaskMessage(this.commonOperations.create,t=>this.crushRule(t),t=>({17:this.i18n("Name is already used by {{name}}.",{name:this.crushRule(t)})})),"crushRule/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.crushRule(t)),"rbd/create":this.newTaskMessage(this.commonOperations.create,this.rbd.create,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.create(t)})})),"rbd/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.default,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.default(t)})})),"rbd/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.default,t=>({16:this.i18n("{{rbd_name}} is busy.",{rbd_name:this.rbd.default(t)}),39:this.i18n("{{rbd_name}} contains snapshots.",{rbd_name:this.rbd.default(t)})})),"rbd/clone":this.newTaskMessage(new o(this.i18n("Cloning"),this.i18n("clone"),this.i18n("Cloned")),this.rbd.child,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.child(t)}),22:this.i18n("Snapshot of {{rbd_name}} must be protected.",{rbd_name:this.rbd.child(t)})})),"rbd/copy":this.newTaskMessage(new o(this.i18n("Copying"),this.i18n("copy"),this.i18n("Copied")),this.rbd.destination,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.destination(t)})})),"rbd/flatten":this.newTaskMessage(new o(this.i18n("Flattening"),this.i18n("flatten"),this.i18n("Flattened")),this.rbd.default),"rbd/snap/create":this.newTaskMessage(this.commonOperations.create,this.rbd.snapshot,t=>({17:this.i18n("Name is already used by {{snap_name}}.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.snapshot,t=>({16:this.i18n("Cannot unprotect {{snap_name}} because it contains child images.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.snapshot,t=>({16:this.i18n("Cannot delete {{snap_name}} because it's protected.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/rollback":this.newTaskMessage(new o(this.i18n("Rolling back"),this.i18n("rollback"),this.i18n("Rolled back")),this.rbd.snapshot),"rbd/trash/move":this.newTaskMessage(new o(this.i18n("Moving"),this.i18n("move"),this.i18n("Moved")),t=>this.i18n("image '{{id}}' to trash",{id:t.image_spec}),()=>({2:this.i18n("Could not find image.")})),"rbd/trash/restore":this.newTaskMessage(new o(this.i18n("Restoring"),this.i18n("restore"),this.i18n("Restored")),t=>this.i18n("image '{{id}}' into '{{new_id}}'",{id:t.image_id_spec,new_id:t.new_image_name}),t=>({17:this.i18n("Image name '{{id}}' is already in use.",{id:t.new_image_name})})),"rbd/trash/remove":this.newTaskMessage(new o(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),t=>this.i18n("image '{{id}}'",{id:`${t.image_id_spec}`})),"rbd/trash/purge":this.newTaskMessage(new o(this.i18n("Purging"),this.i18n("purge"),this.i18n("Purged")),t=>{let e=this.i18n("all pools");return t.pool_name&&(e=`'${t.pool_name}'`),this.i18n("images from {{message}}",{message:e})}),"rbd/mirroring/site_name/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.site_name,()=>({})),"rbd/mirroring/bootstrap/create":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.bootstrap,()=>({})),"rbd/mirroring/bootstrap/import":this.newTaskMessage(this.commonOperations.import,this.rbd_mirroring.bootstrap,()=>({})),"rbd/mirroring/pool/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool,()=>({16:this.i18n("Cannot disable mirroring because it contains a peer.")})),"rbd/mirroring/peer/add":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.pool_peer,()=>({})),"rbd/mirroring/peer/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool_peer,()=>({})),"rbd/mirroring/peer/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd_mirroring.pool_peer,()=>({})),"iscsi/target/create":this.newTaskMessage(this.commonOperations.create,t=>this.iscsiTarget(t)),"iscsi/target/edit":this.newTaskMessage(this.commonOperations.update,t=>this.iscsiTarget(t)),"iscsi/target/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.iscsiTarget(t)),"nfs/create":this.newTaskMessage(this.commonOperations.create,t=>this.nfs(t)),"nfs/edit":this.newTaskMessage(this.commonOperations.update,t=>this.nfs(t)),"nfs/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.nfs(t)),"grafana/dashboards/update":this.newTaskMessage(this.commonOperations.update,this.grafana.update_dashboards,()=>({})),"orchestrator/identify_device":this.newTaskMessage(new o(this.i18n("Identifying"),this.i18n("identify"),this.i18n("Identified")),t=>this.i18n("device '{{device}}' on host '{{hostname}}'",t))}}newTaskMessage(t,e,n){return new u(this.i18n,t,e,n)}host(t){return this.i18n("host '{{hostname}}'",{hostname:t.hostname})}osd(t){return this.i18n("OSD '{{svc_id}}'",{svc_id:t.svc_id})}pool(t){return this.i18n("pool '{{pool_name}}'",{pool_name:t.pool_name})}ecp(t){return this.i18n("erasure code profile '{{name}}'",{name:t.name})}crushRule(t){return this.i18n("crush rule '{{name}}'",{name:t.name})}iscsiTarget(t){return this.i18n("target '{{target_iqn}}'",{target_iqn:t.target_iqn})}nfs(t){return this.i18n("NFS {{nfs_id}}",{nfs_id:`'${t.cluster_id}:${t.export_id?t.export_id:t.path}'`})}_getTaskTitle(t){return t.name&&t.name.startsWith("progress/")?this.newTaskMessage(new o(t.name.replace("progress/",""),"",t.name.replace("progress/","")),t=>""):this.messages[t.name]||this.defaultMessage}getSuccessTitle(t){return this._getTaskTitle(t).success(t.metadata)}getErrorMessage(t){return this._getTaskTitle(t).errors(t.metadata)[t.exception.code]||t.exception.detail}getErrorTitle(t){return this._getTaskTitle(t).failure(t.metadata)}getRunningTitle(t){return this._getTaskTitle(t).running(t.metadata)}getRunningText(t){return this._getTaskTitle(t).operation.running}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](s.a))},token:t,providedIn:"root"}),t})()},"ut/Y":function(t,e,n){var a=n("ZCpW"),r=n("GDhZ"),i=n("zZ0H"),s=n("Z0cm"),o=n("+c4W");t.exports=function(t){return"function"==typeof t?t:null==t?i:"object"==typeof t?s(t)?r(t[0],t[1]):a(t):o(t)}},uy83:function(t,e,n){var a=n("0Dky");t.exports=!a((function(){return Object.isExtensible(Object.preventExtensions({}))}))},uyHG:function(t,e){var n,a=/^\[object .+?Constructor\]$/,r="object"==typeof global&&global&&global.Object===Object&&global,i="object"==typeof self&&self&&self.Object===Object&&self,s=r||i||Function("return this")(),o=Array.prototype,u=Function.prototype,d=Object.prototype,l=s["__core-js_shared__"],c=(n=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",f=u.toString,h=d.hasOwnProperty,g=d.toString,p=RegExp("^"+f.call(h).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),b=o.splice,m=w(s,"Map"),y=w(Object,"create");function v(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function x(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function _(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function T(t,e){for(var n,a,r=t.length;r--;)if((n=t[r][0])===(a=e)||n!=n&&a!=a)return r;return-1}function O(t,e){var n,a,r=t.__data__;return("string"==(a=typeof(n=e))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof e?"string":"hash"]:r.map}function w(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return function(t){return!(!I(t)||(e=t,c&&c in e))&&(function(t){var e=I(t)?g.call(t):"";return"[object Function]"==e||"[object GeneratorFunction]"==e}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(n){}return e}(t)?p:a).test(function(t){if(null!=t){try{return f.call(t)}catch(e){}try{return t+""}catch(e){}}return""}(t));var e}(n)?n:void 0}function S(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],i=n.cache;if(i.has(r))return i.get(r);var s=t.apply(this,a);return n.cache=i.set(r,s),s};return n.cache=new(S.Cache||_),n}function I(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}v.prototype.clear=function(){this.__data__=y?y(null):{}},v.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},v.prototype.get=function(t){var e=this.__data__;if(y){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return h.call(e,t)?e[t]:void 0},v.prototype.has=function(t){var e=this.__data__;return y?void 0!==e[t]:h.call(e,t)},v.prototype.set=function(t,e){return this.__data__[t]=y&&void 0===e?"__lodash_hash_undefined__":e,this},x.prototype.clear=function(){this.__data__=[]},x.prototype.delete=function(t){var e=this.__data__,n=T(e,t);return!(n<0||(n==e.length-1?e.pop():b.call(e,n,1),0))},x.prototype.get=function(t){var e=this.__data__,n=T(e,t);return n<0?void 0:e[n][1]},x.prototype.has=function(t){return T(this.__data__,t)>-1},x.prototype.set=function(t,e){var n=this.__data__,a=T(n,t);return a<0?n.push([t,e]):n[a][1]=e,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(m||x),string:new v}},_.prototype.delete=function(t){return O(this,t).delete(t)},_.prototype.get=function(t){return O(this,t).get(t)},_.prototype.has=function(t){return O(this,t).has(t)},_.prototype.set=function(t,e){return O(this,t).set(t,e),this},S.Cache=_,t.exports=S},vCyI:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this._selected=[],t&&(this._selected=t),this.update()}update(){this.hasSelection=this._selected.length>0,this.hasSingleSelection=1===this._selected.length,this.hasMultiSelection=this._selected.length>1}set selected(t){this._selected=t,this.update()}get selected(){return this._selected}add(t){this._selected.push(t),this.update()}first(){return this.hasSelection?this._selected[0]:null}}},vkgz:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("7o/Q"),r=n("KqfI"),i=n("n6bG");function s(t,e,n){return function(a){return a.lift(new o(t,e,n))}}class o{constructor(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}call(t,e){return e.subscribe(new u(t,this.nextOrObserver,this.error,this.complete))}}class u extends a.a{constructor(t,e,n,a){super(t),this._tapNext=r.a,this._tapError=r.a,this._tapComplete=r.a,this._tapError=n||r.a,this._tapComplete=a||r.a,Object(i.a)(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||r.a,this._tapError=e.error||r.a,this._tapComplete=e.complete||r.a)}_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(t){return void this.destination.error(t)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}},"w/wX":function(t,e,n){var a=n("QqLw"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Set]"==a(t)}},w9WL:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("XNiG"),i=n("xgIS"),s=n("2Vo4"),o=n("l7GE"),u=n("ZUHj");function d(t){return e=>e.lift(new l(t))}class l{constructor(t){this.notifier=t}call(t,e){const n=new c(t),a=Object(u.a)(n,this.notifier);return a&&!n.seenValue?(n.add(a),e.subscribe(n)):n}}class c extends o.a{constructor(t){super(t),this.seenValue=!1}notifyNext(t,e,n,a,r){this.seenValue=!0,this.complete()}notifyComplete(){}}var f=n("mrSG");n.d(e,"a",(function(){return p})),n.d(e,"b",(function(){return pt})),n.d(e,"c",(function(){return tt})),n.d(e,"d",(function(){return ht})),n.d(e,"e",(function(){return D})),n.d(e,"f",(function(){return dt})),n.d(e,"g",(function(){return b})),n.d(e,"h",(function(){return ut})),n.d(e,"i",(function(){return et})),n.d(e,"j",(function(){return lt})),n.d(e,"k",(function(){return gt})),n.d(e,"l",(function(){return mt})),n.d(e,"m",(function(){return xt})),n.d(e,"n",(function(){return ot})),n.d(e,"o",(function(){return q})),n.d(e,"p",(function(){return M})),n.d(e,"q",(function(){return P})),n.d(e,"r",(function(){return g})),n.d(e,"s",(function(){return y})),n.d(e,"t",(function(){return _})),n.d(e,"u",(function(){return _t})),n.d(e,"v",(function(){return x})),n.d(e,"w",(function(){return ct})),n.d(e,"x",(function(){return v})),n.d(e,"y",(function(){return h})),n.d(e,"z",(function(){return T})),n.d(e,"A",(function(){return it})),n.d(e,"B",(function(){return m})),n.d(e,"C",(function(){return w}));class h{constructor(t){this.document=t,this.width=this.getWidth()}getWidth(){const t=this.document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.msOverflowStyle="scrollbar",this.document.body.appendChild(t);const e=t.offsetWidth;t.style.overflow="scroll";const n=this.document.createElement("div");n.style.width="100%",t.appendChild(n);const a=n.offsetWidth;return t.parentNode.removeChild(t),e-a}}class g{getDimensions(t){return t.getBoundingClientRect()}}class p{constructor(){this.columnInputChanges=new r.a}get columnInputChanges$(){return this.columnInputChanges.asObservable()}onInputChange(){this.columnInputChanges.next()}}class b{constructor(t){this.template=t}}class m{constructor(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new a.EventEmitter}ngOnInit(){this.runCheck()}ngOnDestroy(){clearTimeout(this.timeout)}onVisibilityChange(){this.zone.run(()=>{this.isVisible=!0,this.visible.emit(!0)})}runCheck(){const t=()=>{const{offsetHeight:e,offsetWidth:n}=this.element.nativeElement;e&&n?(clearTimeout(this.timeout),this.onVisibilityChange()):(clearTimeout(this.timeout),this.zone.runOutsideAngular(()=>{this.timeout=setTimeout(()=>t(),50)}))};this.timeout=setTimeout(()=>t())}}class y{constructor(t){this.dragX=!0,this.dragY=!0,this.dragStart=new a.EventEmitter,this.dragging=new a.EventEmitter,this.dragEnd=new a.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}ngOnChanges(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)}ngOnDestroy(){this._destroySubscription()}onMouseup(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))}onMousedown(t){if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;const e={x:t.clientX,y:t.clientY},n=Object(i.a)(document,"mouseup");this.subscription=n.subscribe(t=>this.onMouseup(t));const a=Object(i.a)(document,"mousemove").pipe(d(n)).subscribe(t=>this.move(t,e));this.subscription.add(a),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}}move(t,e){if(!this.isDragging)return;const n=t.clientY-e.y;this.dragX&&(this.element.style.left=`${t.clientX-e.x}px`),this.dragY&&(this.element.style.top=`${n}px`),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}_destroySubscription(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)}}"undefined"!=typeof window&&window||global,"undefined"!=typeof window&&window||global,"undefined"!=typeof window&&window||global;class v{constructor(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new a.EventEmitter,this.resizing=!1,this.element=t.nativeElement}ngAfterViewInit(){const t=this.renderer;this.resizeHandle=t.createElement("span"),t.addClass(this.resizeHandle,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,this.resizeHandle)}ngOnDestroy(){this._destroySubscription(),this.renderer.destroyNode?this.renderer.destroyNode(this.resizeHandle):this.renderer.removeChild(this.renderer.parentNode(this.resizeHandle),this.resizeHandle)}onMouseup(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))}onMousedown(t){const e=t.target.classList.contains("resize-handle"),n=this.element.clientWidth,a=t.screenX;if(e){t.stopPropagation(),this.resizing=!0;const e=Object(i.a)(document,"mouseup");this.subscription=e.subscribe(t=>this.onMouseup());const r=Object(i.a)(document,"mousemove").pipe(d(e)).subscribe(t=>this.move(t,n,a));this.subscription.add(r)}}move(t,e,n){const a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=`${a}px`)}_destroySubscription(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)}}class x{constructor(t,e){this.document=e,this.reorder=new a.EventEmitter,this.targetChanged=new a.EventEmitter,this.differ=t.find({}).create()}ngAfterContentInit(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))}ngOnDestroy(){this.draggables.forEach(t=>{t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()})}updateSubscriptions(){const t=this.differ.diff(this.createMapDiffs());if(t){const e=({currentValue:t,previousValue:e})=>{n({previousValue:e}),t&&(t.dragStart.subscribe(this.onDragStart.bind(this)),t.dragging.subscribe(this.onDragging.bind(this)),t.dragEnd.subscribe(this.onDragEnd.bind(this)))},n=({previousValue:t})=>{t&&(t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe())};t.forEachAddedItem(e),t.forEachRemovedItem(n)}}onDragStart(){this.positions={};let t=0;for(const e of this.draggables.toArray()){const n=e.element,a=parseInt(n.offsetLeft.toString(),0);this.positions[e.dragModel.prop]={left:a,right:a+parseInt(n.offsetWidth.toString(),0),index:t++,element:n}}}onDragging({model:t,event:e}){const n=this.positions[t.prop],a=this.isTarget(t,e);a?this.lastDraggingIndex!==a.i&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,newIndex:a.i,initialIndex:n.index}),this.lastDraggingIndex=a.i):this.lastDraggingIndex!==n.index&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,initialIndex:n.index}),this.lastDraggingIndex=n.index)}onDragEnd({element:t,model:e,event:n}){const a=this.positions[e.prop],r=this.isTarget(e,n);r&&this.reorder.emit({prevIndex:a.index,newIndex:r.i,model:e}),this.lastDraggingIndex=void 0,t.style.left="auto"}isTarget(t,e){let n=0;const a=this.document.elementsFromPoint(e.x||e.clientX,e.y||e.clientY);for(const r in this.positions){const e=this.positions[r];if(t.prop!==r&&a.find(t=>t===e.element))return{pos:e,i:n};n++}}createMapDiffs(){return this.draggables.toArray().reduce((t,e)=>(t[e.dragModel.$$id]=e,t),{})}}class _{constructor(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new a.EventEmitter,this.longPressing=new a.EventEmitter,this.longPressEnd=new a.EventEmitter,this.mouseX=0,this.mouseY=0}get press(){return this.pressing}get isLongPress(){return this.isLongPressing}onMouseDown(t){if(1!==t.which||!this.pressEnabled)return;if(t.target.classList.contains("resize-handle"))return;this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;const e=Object(i.a)(document,"mouseup");this.subscription=e.subscribe(t=>this.onMouseup()),this.timeout=setTimeout(()=>{this.isLongPressing=!0,this.longPressStart.emit({event:t,model:this.pressModel}),this.subscription.add(Object(i.a)(document,"mousemove").pipe(d(e)).subscribe(t=>this.onMouseMove(t))),this.loop(t)},this.duration),this.loop(t)}onMouseMove(t){if(this.pressing&&!this.isLongPressing){const e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}}loop(t){this.isLongPressing&&(this.timeout=setTimeout(()=>{this.longPressing.emit({event:t,model:this.pressModel}),this.loop(t)},50))}endPress(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})}onMouseup(){this.endPress()}ngOnDestroy(){this._destroySubscription()}_destroySubscription(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)}}class T{constructor(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new a.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this._scrollEventListener=null,this.element=e.nativeElement}ngOnInit(){if(this.scrollbarV||this.scrollbarH){const t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this._scrollEventListener=this.onScrolled.bind(this),this.parentElement.addEventListener("scroll",this._scrollEventListener)}}ngOnDestroy(){this._scrollEventListener&&(this.parentElement.removeEventListener("scroll",this._scrollEventListener),this._scrollEventListener=null)}setOffset(t){this.parentElement&&(this.parentElement.scrollTop=t)}onScrolled(t){const e=t.currentTarget;requestAnimationFrame(()=>{this.scrollYPos=e.scrollTop,this.scrollXPos=e.scrollLeft,this.updateOffset()})}updateOffset(){let t;this.scrollYPos<this.prevScrollYPos?t="down":this.scrollYPos>this.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos}}function O(){return""}function w(t){return null==t?O:"number"==typeof t?S:-1!==t.indexOf(".")?N:I}function S(t,e){if(null==t)return"";if(!t||null==e)return t;const n=t[e];return null==n?"":n}function I(t,e){if(null==t)return"";if(!t||!e)return t;const n=t[e];return null==n?"":n}function N(t,e){if(null==t)return"";if(!t||!e)return t;let n=t[e];if(void 0!==n)return n;n=t;const a=e.split(".");if(a.length)for(let r=0;r<a.length;r++)if(n=n[a[r]],null==n)return"";return n}function C(t){return t&&(e=>w(t)(e,t))}function R(t,e,n){if(e&&n){const a={},r=t.length;let i=null;a[0]=new A;const s=t.reduce((t,e)=>{const a=n(e);return-1===t.indexOf(a)&&t.push(a),t},[]);for(let e=0;e<r;e++)a[n(t[e])]=new A(t[e]);for(let u=0;u<r;u++){i=a[n(t[u])];let r=0;const o=e(i.row);o&&s.indexOf(o)>-1&&(r=o),i.parent=a[r],i.row.level=i.parent.row.level+1,i.parent.children.push(i)}let o=[];return a[0].flatten((function(){o=[...o,this.row]}),!0),o}return t}class A{constructor(t=null){t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}flatten(t,e){if("expanded"===this.row.treeStatus)for(let n=0,a=this.children.length;n<a;n++){const a=this.children[n];t.apply(a,Array.prototype.slice.call(arguments,2)),e&&a.flatten.apply(a,arguments)}}}function k(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,(function(t,e,n){return e.trim()+n.toUpperCase()}))}function E(t){if(!t)return;let e=!1;for(const n of t)n.$$id||(n.$$id=("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)),L(n.prop)&&n.name&&(n.prop=k(n.name)),n.$$valueGetter||(n.$$valueGetter=w(n.prop)),!L(n.prop)&&L(n.name)&&(n.name=String(n.prop).replace(/([A-Z])/g,t=>` ${t}`).replace(/^./,t=>t.toUpperCase())),L(n.prop)&&L(n.name)&&(n.name=""),n.hasOwnProperty("resizeable")||(n.resizeable=!0),n.hasOwnProperty("sortable")||(n.sortable=!0),n.hasOwnProperty("draggable")||(n.draggable=!0),n.hasOwnProperty("canAutoResize")||(n.canAutoResize=!0),n.hasOwnProperty("width")||(n.width=150),n.hasOwnProperty("isTreeColumn")&&n.isTreeColumn&&!e?e=!0:n.isTreeColumn=!1}function L(t){return null==t}class D{constructor(t){this.template=t}}class P{constructor(t){this.template=t}}class M{constructor(){this.rowHeight=0,this.toggle=new a.EventEmitter}get template(){return this._templateInput||this._templateQuery}toggleExpandRow(t){this.toggle.emit({type:"row",value:t})}expandAllRows(){this.toggle.emit({type:"all",value:!0})}collapseAllRows(){this.toggle.emit({type:"all",value:!1})}}class q{get template(){return this._templateInput||this._templateQuery}}function j(t){const e={left:[],center:[],right:[]};if(t)for(const n of t)n.frozenLeft?e.left.push(n):n.frozenRight?e.right.push(n):e.center.push(n);return e}function F(t,e){return{left:G(t.left),center:G(t.center),right:G(t.right),total:Math.floor(G(e))}}function G(t,e){let n=0;if(t)for(const a of t)n+=parseFloat(e&&a[e]?a[e]:a.width);return n}function V(t){const e=[],n=j(t);return e.push({type:"left",columns:n.left}),e.push({type:"center",columns:n.center}),e.push({type:"right",columns:n.right}),e}class z{constructor(){this.treeArray=[]}clearCache(){this.treeArray=[]}initCache(t){const{rows:e,rowHeight:n,detailRowHeight:a,externalVirtual:r,rowCount:i,rowIndexes:s,rowExpansions:o}=t,u="function"==typeof n,d="function"==typeof a;if(!u&&isNaN(n))throw new Error(`Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n        valid number or function value: (${n}) when 'scrollbarV' is enabled.`);if(!d&&isNaN(a))throw new Error(`Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n        valid number or function value: (${a}) when 'scrollbarV' is enabled.`);const l=r?i:e.length;this.treeArray=new Array(l);for(let c=0;c<l;++c)this.treeArray[c]=0;for(let c=0;c<l;++c){const t=e[c];let r=n;u&&(r=n(t));const i=o.has(t);t&&i&&(r+=d?a(t,s.get(t)):a),this.update(c,r)}}getRowIndex(t){return 0===t?0:this.calcRowIndex(t)}update(t,e){if(!this.treeArray.length)throw new Error(`Update at index ${t} with value ${e} failed:\n        Row Height cache not initialized.`);const n=this.treeArray.length;for(t|=0;t<n;)this.treeArray[t]+=e,t|=t+1}query(t){if(!this.treeArray.length)throw new Error(`query at index ${t} failed: Fenwick tree array not initialized.`);let e=0;for(t|=0;t>=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e}queryBetween(t,e){return this.query(e)-this.query(t-1)}calcRowIndex(t){if(!this.treeArray.length)return 0;let e=-1;const n=this.treeArray.length;for(let a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){const r=e+a;r<n&&t>=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1}}const B={},Y="undefined"!=typeof document?document.createElement("div").style:void 0,H=function(){const t="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0,e=void 0!==t?Array.prototype.slice.call(t).join("").match(/-(moz|webkit|ms)-/):null,n=null!==e?e[1]:void 0,a=void 0!==n?"WebKit|Moz|MS|O".match(new RegExp("("+n+")","i"))[1]:void 0;return a?{dom:a,lowercase:n,css:`-${n}-`,js:n[0].toUpperCase()+n.substr(1)}:void 0}();function U(t){const e=k(t);return B[e]||(void 0!==H&&void 0!==Y[H.css+t]?B[e]=H.css+t:void 0!==Y[t]&&(B[e]=t)),B[e]}const W="undefined"!=typeof window?U("transform"):void 0,K="undefined"!=typeof window?U("backfaceVisibility"):void 0,$="undefined"!=typeof window?!!U("transform"):void 0,Z="undefined"!=typeof window?!!U("perspective"):void 0,J="undefined"!=typeof window?window.navigator.userAgent:"Chrome",Q=/Safari\//.test(J)&&!/Chrome\//.test(J);function X(t,e,n){void 0!==W&&$?!Q&&Z?(t[W]=`translate3d(${e}px, ${n}px, 0)`,t[K]="hidden"):t[k(W)]=`translate(${e}px, ${n}px)`:(t.top=`${n}px`,t.left=`${e}px`)}class tt{constructor(t){this.cd=t,this.selected=[],this.scroll=new a.EventEmitter,this.page=new a.EventEmitter,this.activate=new a.EventEmitter,this.select=new a.EventEmitter,this.detailToggle=new a.EventEmitter,this.rowContextmenu=new a.EventEmitter(!1),this.treeAction=new a.EventEmitter,this.rowHeightsCache=new z,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=[],this.getDetailRowHeight=(t,e)=>{if(!this.rowDetail)return 0;const n=this.rowDetail.rowHeight;return"function"==typeof n?n(t,e):n},this.rowTrackingFn=(t,e)=>{const n=this.getRowIndex(e);return this.trackByProp?e[this.trackByProp]:n}}set pageSize(t){this._pageSize=t,this.recalcLayout()}get pageSize(){return this._pageSize}set rows(t){this._rows=t,this.recalcLayout()}get rows(){return this._rows}set columns(t){this._columns=t;const e=j(t);this.columnGroupWidths=F(e,t)}get columns(){return this._columns}set offset(t){this._offset=t,(!this.scrollbarV||this.scrollbarV&&!this.virtualization)&&this.recalcLayout()}get offset(){return this._offset}set rowCount(t){this._rowCount=t,this.recalcLayout()}get rowCount(){return this._rowCount}get bodyWidth(){return this.scrollbarH?this.innerWidth+"px":"100%"}set bodyHeight(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()}get bodyHeight(){return this._bodyHeight}get selectEnabled(){return!!this.selectionType}get scrollHeight(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)}ngOnInit(){this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe(({type:t,value:e})=>{"row"===t&&this.toggleRowExpansion(e),"all"===t&&this.toggleAllRows(e),this.updateIndexes(),this.updateRows(),this.cd.markForCheck()})),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe(({type:t,value:e})=>{"group"===t&&this.toggleRowExpansion(e),"all"===t&&this.toggleAllRows(e),this.updateIndexes(),this.updateRows(),this.cd.markForCheck()}))}ngOnDestroy(){(this.rowDetail||this.groupHeader)&&this.listener.unsubscribe()}updateOffsetY(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))}onBodyScroll(t){const e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()}updatePage(t){let e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})}updateRows(){const{first:t,last:e}=this.indexes;let n=t,a=0;const r=[];if(this.rowIndexes.clear(),this.groupedRows){let t=3;for(1===this.groupedRows.length&&(t=this.groupedRows[0].value.length);n<e&&n<this.groupedRows.length;)r[a]=this.groupedRows[n],a++,n++}else for(;n<e&&n<this.rowCount;){const t=this.rows[n];t&&(this.rowIndexes.set(t,n),r[a]=t),a++,n++}this.temp=r}getRowHeight(t){return"function"==typeof this.rowHeight?this.rowHeight(t):this.rowHeight}getGroupHeight(t){let e=0;if(t.value)for(let n=0;n<t.value.length;n++)e+=this.getRowAndDetailHeight(t.value[n]);return e}getRowAndDetailHeight(t){let e=this.getRowHeight(t);return this.getRowExpanded(t)&&(e+=this.getDetailRowHeight(t)),e}getRowsStyles(t){const e={};if(this.groupedRows&&(e.width=this.columnGroupWidths.total),this.scrollbarV&&this.virtualization){let n=0;if(this.groupedRows){const e=t[t.length-1];n=e?this.getRowIndex(e):0}else n=this.getRowIndex(t);X(e,0,this.rowHeightsCache.query(n-1))}return e}getBottomSummaryRowStyles(){if(!this.scrollbarV||!this.rows||!this.rows.length)return null;const t={position:"absolute"};return X(t,0,this.rowHeightsCache.query(this.rows.length-1)),t}hideIndicator(){setTimeout(()=>this.loadingIndicator=!1,500)}updateIndexes(){let t=0,e=0;if(this.scrollbarV)if(this.virtualization){const n=parseInt(this.bodyHeight,0);t=this.rowHeightsCache.getRowIndex(this.offsetY),e=this.rowHeightsCache.getRowIndex(n+this.offsetY)+1}else t=0,e=this.rowCount;else this.externalPaging||(t=Math.max(this.offset*this.pageSize,0)),e=Math.min(t+this.pageSize,this.rowCount);this.indexes={first:t,last:e}}refreshRowHeightCache(){if(this.scrollbarV&&(!this.scrollbarV||this.virtualization)&&(this.rowHeightsCache.clearCache(),this.rows&&this.rows.length)){const t=new Set;for(const e of this.rows)this.getRowExpanded(e)&&t.add(e);this.rowHeightsCache.initCache({rows:this.rows,rowHeight:this.rowHeight,detailRowHeight:this.getDetailRowHeight,externalVirtual:this.scrollbarV&&this.externalPaging,rowCount:this.rowCount,rowIndexes:this.rowIndexes,rowExpansions:t})}}getAdjustedViewPortIndex(){const t=this.indexes.first;return this.scrollbarV&&this.virtualization&&this.rowHeightsCache.query(t-1)<=this.offsetY?t-1:t}toggleRowExpansion(t){const e=this.getAdjustedViewPortIndex(),n=this.getRowExpandedIdx(t,this.rowExpansions),a=n>-1;if(this.scrollbarV&&this.virtualization){const e=this.getDetailRowHeight(t)*(a?-1:1),n=this.getRowIndex(t);this.rowHeightsCache.update(n,e)}a?this.rowExpansions.splice(n,1):this.rowExpansions.push(t),this.detailToggle.emit({rows:[t],currentIndex:e})}toggleAllRows(t){this.rowExpansions=[];const e=this.getAdjustedViewPortIndex();if(t)for(const n of this.rows)this.rowExpansions.push(n);this.scrollbarV&&this.recalcLayout(),this.detailToggle.emit({rows:this.rows,currentIndex:e})}recalcLayout(){this.refreshRowHeightCache(),this.updateIndexes(),this.updateRows()}columnTrackingFn(t,e){return e.$$id}stylesByGroup(t){const e=this.columnGroupWidths,n=this.offsetX,a={width:`${e[t]}px`};if("left"===t)X(a,n,0);else if("right"===t){const t=parseInt(this.innerWidth+"",0);X(a,-1*(e.total-t-n),0)}return a}getRowExpanded(t){if(0===this.rowExpansions.length&&this.groupExpansionDefault)for(const e of this.groupedRows)this.rowExpansions.push(e);return this.getRowExpandedIdx(t,this.rowExpansions)>-1}getRowExpandedIdx(t,e){if(!e||!e.length)return-1;const n=this.rowIdentity(t);return e.findIndex(t=>this.rowIdentity(t)===n)}getRowIndex(t){return this.rowIndexes.get(t)||0}onTreeAction(t){this.treeAction.emit({row:t})}}class et{constructor(t){this.cd=t,this.sort=new a.EventEmitter,this.reorder=new a.EventEmitter,this.resize=new a.EventEmitter,this.select=new a.EventEmitter,this.columnContextmenu=new a.EventEmitter(!1),this._columnGroupWidths={total:100},this._styleByGroup={left:{},center:{},right:{}},this.destroyed=!1}set innerWidth(t){this._innerWidth=t,setTimeout(()=>{if(this._columns){const t=j(this._columns);this._columnGroupWidths=F(t,this._columns),this.setStylesByGroup()}})}get innerWidth(){return this._innerWidth}set headerHeight(t){this._headerHeight="auto"!==t?`${t}px`:t}get headerHeight(){return this._headerHeight}set columns(t){this._columns=t;const e=j(t);this._columnsByPin=V(t),setTimeout(()=>{this._columnGroupWidths=F(e,t),this.setStylesByGroup()})}get columns(){return this._columns}set offsetX(t){this._offsetX=t,this.setStylesByGroup()}get offsetX(){return this._offsetX}ngOnDestroy(){this.destroyed=!0}onLongPressStart({event:t,model:e}){e.dragging=!0,this.dragEventTarget=t}onLongPressEnd({event:t,model:e}){this.dragEventTarget=t,setTimeout(()=>{const t=this._columns.find(t=>t.$$id===e.$$id);t&&(t.dragging=!1)},5)}get headerWidth(){return this.scrollbarH?this.innerWidth+"px":"100%"}trackByGroups(t,e){return e.type}columnTrackingFn(t,e){return e.$$id}onColumnResized(t,e){t<=e.minWidth?t=e.minWidth:t>=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})}onColumnReordered({prevIndex:t,newIndex:e,model:n}){const a=this.getColumn(e);a.isTarget=!1,a.targetMarkerContext=void 0,this.reorder.emit({column:n,prevValue:t,newValue:e})}onTargetChanged({prevIndex:t,newIndex:e,initialIndex:n}){if(t||0===t){const e=this.getColumn(t);e.isTarget=!1,e.targetMarkerContext=void 0}if(e||0===e){const t=this.getColumn(e);t.isTarget=!0,n!==e&&(t.targetMarkerContext={class:"targetMarker ".concat(n>e?"dragFromRight":"dragFromLeft")})}}getColumn(t){const e=this._columnsByPin[0].columns.length;if(t<e)return this._columnsByPin[0].columns[t];const n=this._columnsByPin[1].columns.length;return t<e+n?this._columnsByPin[1].columns[t-e]:this._columnsByPin[2].columns[t-e-n]}onSort({column:t,prevValue:e,newValue:n}){if(t.dragging)return;const a=this.calcNewSorts(t,e,n);this.sort.emit({sorts:a,column:t,prevValue:e,newValue:n})}calcNewSorts(t,e,n){let a=0;this.sorts||(this.sorts=[]);const r=this.sorts.map((e,n)=>((e=Object.assign({},e)).prop===t.prop&&(a=n),e));return void 0===n?r.splice(a,1):e?r[a].dir=n:("single"===this.sortType&&r.splice(0,this.sorts.length),r.push({dir:n,prop:t.prop})),r}setStylesByGroup(){this._styleByGroup.left=this.calcStylesByGroup("left"),this._styleByGroup.center=this.calcStylesByGroup("center"),this._styleByGroup.right=this.calcStylesByGroup("right"),this.destroyed||this.cd.detectChanges()}calcStylesByGroup(t){const e=this._columnGroupWidths,n={width:`${e[t]}px`};return"center"===t?X(n,-1*this.offsetX,0):"right"===t&&X(n,-1*(e.total-this.innerWidth),0),n}}function nt(t,e,n){let a,r,i;n=n||{};let s=null,o=0;function u(){o=!1===n.leading?0:+new Date,s=null,i=t.apply(a,r)}return function(){const d=+new Date;o||!1!==n.leading||(o=d);const l=e-(d-o);return a=this,r=arguments,l<=0?(clearTimeout(s),s=null,o=d,i=t.apply(a,r)):s||!1===n.trailing||(s=setTimeout(u,l)),i}}function at(t,e){for(const n of e){const e=t.indexOf(n);t.splice(e,1)}}function rt(t,e=300){let n=0;for(const a of t)n+=a.width||e;return n}const it={asc:"asc",desc:"desc"};function st(t,e){if(null==t&&(t=0),null==e&&(e=0),t instanceof Date&&e instanceof Date){if(t<e)return-1;if(t>e)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()<e.toLowerCase())return-1;if(t.toLowerCase()>e.toLowerCase())return 1}else{if(parseFloat(t)<parseFloat(e))return-1;if(parseFloat(t)>parseFloat(e))return 1}return 0}let ot=(()=>{class t{constructor(t,e,n,r,i,o,u){this.scrollbarHelper=t,this.dimensionsHelper=e,this.cd=n,this.columnChangesService=o,this.configuration=u,this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.columnMode="standard",this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.loadingIndicator=!1,this.reorderable=!0,this.swapColumns=!0,this.sortType="single",this.sorts=[],this.cssClasses={sortAscending:"datatable-icon-up",sortDescending:"datatable-icon-down",pagerLeftArrow:"datatable-icon-left",pagerRightArrow:"datatable-icon-right",pagerPrevious:"datatable-icon-prev",pagerNext:"datatable-icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total",selectedMessage:"selected"},this.groupExpansionDefault=!1,this.selectAllRowsOnPage=!1,this.virtualization=!0,this.summaryRow=!1,this.summaryHeight=30,this.summaryPosition="top",this.scroll=new a.EventEmitter,this.activate=new a.EventEmitter,this.select=new a.EventEmitter,this.sort=new a.EventEmitter,this.page=new a.EventEmitter,this.reorder=new a.EventEmitter,this.resize=new a.EventEmitter,this.tableContextmenu=new a.EventEmitter(!1),this.treeAction=new a.EventEmitter,this.rowCount=0,this._offsetX=new s.a(0),this._count=0,this._offset=0,this._subscriptions=[],this.rowIdentity=t=>this._groupRowsBy?t.key:t,this.element=r.nativeElement,this.rowDiffer=i.find({}).create(),this.configuration&&this.configuration.messages&&(this.messages=Object.assign({},this.configuration.messages))}set rows(t){this._rows=t,t&&(this._internalRows=[...t]),this.externalSorting||this.sortInternalRows(),this._internalRows=R(this._internalRows,C(this.treeFromRelation),C(this.treeToRelation)),this.recalculate(),this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)),this.cd.markForCheck()}get rows(){return this._rows}set groupRowsBy(t){t&&(this._groupRowsBy=t,this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)))}get groupRowsBy(){return this._groupRowsBy}set columns(t){t&&(this._internalColumns=[...t],E(this._internalColumns),this.recalculateColumns()),this._columns=t}get columns(){return this._columns}set limit(t){this._limit=t,this.recalculate()}get limit(){return this._limit}set count(t){this._count=t,this.recalculate()}get count(){return this._count}set offset(t){this._offset=t}get offset(){return Math.max(Math.min(this._offset,Math.ceil(this.rowCount/this.pageSize)-1),0)}get isFixedHeader(){const t=this.headerHeight;return"string"!=typeof t||"auto"!==t}get isFixedRow(){return"auto"!==this.rowHeight}get isVertScroll(){return this.scrollbarV}get isVirtualized(){return this.virtualization}get isHorScroll(){return this.scrollbarH}get isSelectable(){return void 0!==this.selectionType}get isCheckboxSelection(){return"checkbox"===this.selectionType}get isCellSelection(){return"cell"===this.selectionType}get isSingleSelection(){return"single"===this.selectionType}get isMultiSelection(){return"multi"===this.selectionType}get isMultiClickSelection(){return"multiClick"===this.selectionType}set columnTemplates(t){this._columnTemplates=t,this.translateColumns(t)}get columnTemplates(){return this._columnTemplates}get allRowsSelected(){let t=this.rows&&this.selected&&this.selected.length===this.rows.length;if(this.selectAllRowsOnPage){const e=this.bodyComponent.indexes;t=this.selected.length===e.last-e.first}return this.selected&&this.rows&&0!==this.rows.length&&t}ngOnInit(){this.recalculate()}ngAfterViewInit(){this.externalSorting||this.sortInternalRows(),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame(()=>{this.recalculate(),this.externalPaging&&this.scrollbarV&&this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:0})})}ngAfterContentInit(){this.columnTemplates.changes.subscribe(t=>this.translateColumns(t)),this.listenForColumnInputChanges()}translateColumns(t){if(t){const e=t.toArray();e.length&&(this._internalColumns=function(t){const e=[];for(const n of t){const t={},a=Object.getOwnPropertyNames(n);for(const e of a)t[e]=n[e];n.headerTemplate&&(t.headerTemplate=n.headerTemplate),n.cellTemplate&&(t.cellTemplate=n.cellTemplate),n.summaryFunc&&(t.summaryFunc=n.summaryFunc),n.summaryTemplate&&(t.summaryTemplate=n.summaryTemplate),e.push(t)}return e}(e),E(this._internalColumns),this.recalculateColumns(),this.sortInternalRows(),this.cd.markForCheck())}}groupArrayBy(t,e){const n=new Map;return t.forEach(t=>{const a=t[e];n.has(a)?n.get(a).push(t):n.set(a,[t])}),Array.from(n,t=>({key:t[0],value:t[1]}))}ngDoCheck(){this.rowDiffer.diff(this.rows)&&(this.externalSorting?this._internalRows=[...this.rows]:this.sortInternalRows(),this._internalRows=R(this._internalRows,C(this.treeFromRelation),C(this.treeToRelation)),this.recalculatePages(),this.cd.markForCheck())}recalculate(){this.recalculateDims(),this.recalculateColumns()}onWindowResize(){this.recalculate()}recalculateColumns(t=this._internalColumns,e=-1,n=this.scrollbarH){if(!t)return;let a=this._innerWidth;return this.scrollbarV&&(a-=this.scrollbarHelper.width),"force"===this.columnMode?function(t,e,n,a,r=300){const i=t.slice(n+1,t.length).filter(t=>!1!==t.canAutoResize);for(const c of i)c.$$oldWidth||(c.$$oldWidth=c.width);let s=0,o=!1,u=rt(t,r),d=e-u;const l=[];do{s=d/i.length,o=u>=e;for(const t of i){if(o&&a)t.width=t.$$oldWidth||t.width||r;else{const e=(t.width||r)+s;t.minWidth&&e<t.minWidth?(t.width=t.minWidth,l.push(t)):t.maxWidth&&e>t.maxWidth?(t.width=t.maxWidth,l.push(t)):t.width=e}t.width=Math.max(0,t.width)}u=rt(t),d=e-u,at(i,l)}while(d>1&&0!==i.length)}(t,a,e,n):"flex"===this.columnMode&&function(t,e){const n=function(t,e){let n=0;for(const a of t)n+=a.width;return n}(t),a=function(t){let e=0;for(const n of t)e+=n.flexGrow||0;return e}(t),r=j(t);n!==e&&function(t,e,n){for(const i in t)for(const a of t[i])a.canAutoResize?a.width=0:(e-=a.width,n-=a.flexGrow?a.flexGrow:0);const a={};let r=e;do{const e=r/n;r=0;for(const n in t)for(const i of t[n])if(i.canAutoResize&&!a[i.prop]){const t=i.width+i.flexGrow*e;void 0!==i.minWidth&&t<i.minWidth?(r+=t-i.minWidth,i.width=i.minWidth,a[i.prop]=!0):i.width=t}}while(0!==r)}(r,e,a)}(t,a),t}recalculateDims(){const t=this.dimensionsHelper.getDimensions(this.element);if(this._innerWidth=Math.floor(t.width),this.scrollbarV){let e=t.height;this.headerHeight&&(e-=this.headerHeight),this.footerHeight&&(e-=this.footerHeight),this.bodyHeight=e}this.recalculatePages()}recalculatePages(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()}onBodyPage({offset:t}){this.externalPaging&&!this.virtualization||(this.offset=t,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}))}onBodyScroll(t){this._offsetX.next(t.offsetX),this.scroll.emit(t),this.cd.detectChanges()}onFooterPage(t){this.offset=t.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}),this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected}))}calcPageSize(t=this.rows){if(this.scrollbarV&&this.virtualization){const t=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(t,0)}return void 0!==this.limit?this.limit:t?t.length:0}calcRowCount(t=this.rows){return this.externalPaging?this.count:t?this.groupedRows?this.groupedRows.length:null!=this.treeFromRelation&&null!=this.treeToRelation?this._internalRows.length:t.length:0}onColumnContextmenu({event:t,column:e}){this.tableContextmenu.emit({event:t,type:"header",content:e})}onRowContextmenu({event:t,row:e}){this.tableContextmenu.emit({event:t,type:"body",content:e})}onColumnResize({column:t,newValue:e}){if(void 0===t)return;let n;const a=this._internalColumns.map((a,r)=>((a=Object.assign({},a)).$$id===t.$$id&&(n=r,a.width=e,a.$$oldWidth=e),a));this.recalculateColumns(a,n),this._internalColumns=a,this.resize.emit({column:t,newValue:e})}onColumnReorder({column:t,newValue:e,prevValue:n}){const a=this._internalColumns.map(t=>Object.assign({},t));if(this.swapColumns){const r=a[e];a[e]=t,a[n]=r}else if(e>n){const t=a[n];for(let r=n;r<e;r++)a[r]=a[r+1];a[e]=t}else{const t=a[n];for(let r=n;r>e;r--)a[r]=a[r-1];a[e]=t}this._internalColumns=a,this.reorder.emit({column:t,newValue:e,prevValue:n})}onColumnSort(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=R(this._internalRows,C(this.treeFromRelation),C(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)}onHeaderSelect(t){if(this.selectAllRowsOnPage){const t=this.bodyComponent.indexes.first,e=this.bodyComponent.indexes.last,n=this.selected.length===e-t;this.selected=[],n||this.selected.push(...this._internalRows.slice(t,e))}else{const t=this.selected.length===this.rows.length;this.selected=[],t||this.selected.push(...this.rows)}this.select.emit({selected:this.selected})}onBodySelect(t){this.select.emit(t)}onTreeAction(t){const e=t.row,n=this._rows.findIndex(e=>e[this.treeToRelation]===t.row[this.treeToRelation]);this.treeAction.emit({row:e,rowIndex:n})}ngOnDestroy(){this._subscriptions.forEach(t=>t.unsubscribe())}listenForColumnInputChanges(){this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe(()=>{this.columnTemplates&&this.columnTemplates.notifyOnChanges()}))}sortInternalRows(){this._internalRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return[...t];const a=new Map;t.forEach((t,e)=>a.set(t,e));const r=[...t],i=e.reduce((t,e)=>(e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t),{}),s=n.map(t=>{const e=t.prop;return{prop:e,dir:t.dir,valueGetter:w(e),compareFn:i[e]||st}});return r.sort((function(t,e){for(const n of s){const{prop:a,valueGetter:r}=n,i=r(t,a),s=r(e,a),o=n.dir!==it.desc?n.compareFn(i,s,t,e,n.dir):-n.compareFn(i,s,t,e,n.dir);if(0!==o)return o}return a.has(t)&&a.has(e)?a.get(t)<a.get(e)?-1:1:0}))}(this._internalRows,this._internalColumns,this.sorts)}}return Object(f.__decorate)([function(t,e,n){return{configurable:!0,enumerable:n.enumerable,get:function(){return Object.defineProperty(this,e,{configurable:!0,enumerable:n.enumerable,value:nt(n.value,5,void 0)}),this[e]}}},Object(f.__metadata)("design:type",Function),Object(f.__metadata)("design:paramtypes",[]),Object(f.__metadata)("design:returntype",void 0)],t.prototype,"onWindowResize",null),t})();class ut{constructor(t){this.cd=t,this.sort=new a.EventEmitter,this.select=new a.EventEmitter,this.columnContextmenu=new a.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}set allRowsSelected(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t}get allRowsSelected(){return this._allRowsSelected}set column(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()}get column(){return this._column}set sorts(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()}get sorts(){return this._sorts}get columnCssClasses(){let t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){const e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e){const n=Object.keys(e);for(const a of n)!0===e[a]&&(t+=` ${a}`)}}const e=this.sortDir;return e&&(t+=` sort-active sort-${e}`),t}get name(){return void 0===this.column.headerTemplate?this.column.name:void 0}get minWidth(){return this.column.minWidth}get maxWidth(){return this.column.maxWidth}get width(){return this.column.width}get isCheckboxable(){return this.column.checkboxable&&this.column.headerCheckboxable&&"checkbox"===this.selectionType}onContextmenu(t){this.columnContextmenu.emit({event:t,column:this.column})}calcSortDir(t){if(t&&this.column){const e=t.find(t=>t.prop===this.column.prop);if(e)return e.dir}}onSort(){if(!this.column.sortable)return;const t=(e=this.sortDir,"single"===this.sortType?e===it.asc?it.desc:it.asc:e?e===it.asc?it.desc:void 0:it.asc);var e;this.sort.emit({column:this.column,prevValue:this.sortDir,newValue:t})}calcSortClass(t){return t===it.asc?`sort-btn sort-asc ${this.sortAscendingIcon}`:t===it.desc?`sort-btn sort-desc ${this.sortDescendingIcon}`:"sort-btn"}}class dt{constructor(){this.selectedCount=0,this.page=new a.EventEmitter}get isVisible(){return this.rowCount/this.pageSize>1}get curPage(){return this.offset+1}}class lt{constructor(){this.change=new a.EventEmitter,this._count=0,this._page=1,this._size=0}set size(t){this._size=t,this.pages=this.calcPages()}get size(){return this._size}set count(t){this._count=t,this.pages=this.calcPages()}get count(){return this._count}set page(t){this._page=t,this.pages=this.calcPages()}get page(){return this._page}get totalPages(){const t=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(t||0,1)}canPrevious(){return this.page>1}canNext(){return this.page<this.totalPages}prevPage(){this.selectPage(this.page-1)}nextPage(){this.selectPage(this.page+1)}selectPage(t){t>0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))}calcPages(t){const e=[];let n=1,a=this.totalPages;t=t||this.page,5<this.totalPages&&(n=t-Math.floor(2.5),a=t+Math.floor(2.5),n<1?(n=1,a=Math.min(n+5-1,this.totalPages)):a>this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(let r=n;r<=a;r++)e.push({number:r,text:r});return e}}class ct{}const ft=function(){var t={up:38,down:40,return:13,escape:27,left:37,right:39};return t[t.up]="up",t[t.down]="down",t[t.return]="return",t[t.escape]="escape",t[t.left]="left",t[t.right]="right",t}();class ht{constructor(t,e,n,r){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new a.EventEmitter,this.treeAction=new a.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=r.nativeElement,this._rowDiffer=t.find({}).create()}set columns(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()}get columns(){return this._columns}set innerWidth(t){if(this._columns){const t=j(this._columns);this._columnGroupWidths=F(t,this._columns)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()}get innerWidth(){return this._innerWidth}set offsetX(t){this._offsetX=t,this.buildStylesByGroup()}get offsetX(){return this._offsetX}get cssClass(){let t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){const e=this.rowClass(this.row);if("string"==typeof e)t+=` ${e}`;else if("object"==typeof e){const n=Object.keys(e);for(const a of n)!0===e[a]&&(t+=` ${a}`)}}return t}get columnsTotalWidths(){return this._columnGroupWidths.total}ngDoCheck(){this._rowDiffer.diff(this.row)&&this.cd.markForCheck()}trackByGroups(t,e){return e.type}columnTrackingFn(t,e){return e.$$id}buildStylesByGroup(){this._groupStyles.left=this.calcStylesByGroup("left"),this._groupStyles.center=this.calcStylesByGroup("center"),this._groupStyles.right=this.calcStylesByGroup("right"),this.cd.markForCheck()}calcStylesByGroup(t){const e=this._columnGroupWidths,n=this.offsetX,a={width:`${e[t]}px`};if("left"===t)X(a,n,0);else if("right"===t){const t=parseInt(this.innerWidth+"",0);X(a,-1*(e.total-t-n+this.scrollbarHelper.width),0)}return a}onActivate(t,e){t.cellIndex=e,t.rowElement=this._element,this.activate.emit(t)}onKeyDown(t){const e=t.keyCode;(e===ft.return||e===ft.down||e===ft.up||e===ft.left||e===ft.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,rowElement:this._element}))}onMouseenter(t){this.activate.emit({type:"mouseenter",event:t,row:this.row,rowElement:this._element})}recalculateColumns(t=this.columns){this._columns=t;const e=j(this._columns);this._columnsByPin=V(this._columns),this._columnGroupWidths=F(e,this._columns)}onTreeAction(){this.treeAction.emit()}}class gt{constructor(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new a.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}set rowIndex(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()}get rowIndex(){return this._rowIndex}set expanded(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()}get expanded(){return this._expanded}ngDoCheck(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())}onContextmenu(t){this.rowContextmenu.emit({event:t,row:this.row})}getGroupHeaderStyle(){const t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t}}class pt{constructor(t,e){this.cd=e,this.activate=new a.EventEmitter,this.treeAction=new a.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}set group(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()}get group(){return this._group}set rowHeight(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()}get rowHeight(){return this._rowHeight}set isSelected(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()}get isSelected(){return this._isSelected}set expanded(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()}get expanded(){return this._expanded}set rowIndex(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()}get rowIndex(){return this._rowIndex}set column(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()}get column(){return this._column}set row(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()}get row(){return this._row}set sorts(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)}get sorts(){return this._sorts}set treeStatus(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()}get treeStatus(){return this._treeStatus}get columnCssClasses(){let t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){const e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e){const n=Object.keys(e);for(const a of n)!0===e[a]&&(t+=` ${a}`)}}return this.sortDir||(t+=" sort-active"),this.isFocused&&(t+=" active"),this.sortDir===it.asc&&(t+=" sort-asc"),this.sortDir===it.desc&&(t+=" sort-desc"),t}get width(){return this.column.width}get minWidth(){return this.column.minWidth}get maxWidth(){return this.column.maxWidth}get height(){const t=this.rowHeight;return isNaN(t)?t:t+"px"}ngDoCheck(){this.checkValueUpdates()}ngOnDestroy(){this.cellTemplate&&this.cellTemplate.clear()}checkValueUpdates(){let t="";if(this.row&&this.column){const e=this.column.$$valueGetter(this.row,this.column.prop),n=this.column.pipe;n?t=n.transform(e):void 0!==t&&(t=e)}else t="";this.value!==t&&(this.value=t,this.cellContext.value=t,this.sanitizedValue=null!=t?this.stripHtml(t):t,this.cd.markForCheck())}onFocus(){this.isFocused=!0}onBlur(){this.isFocused=!1}onClick(t){this.activate.emit({type:"click",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})}onDblClick(t){this.activate.emit({type:"dblclick",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})}onKeyDown(t){const e=t.keyCode;(e===ft.return||e===ft.down||e===ft.up||e===ft.left||e===ft.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element}))}onCheckboxChange(t){this.activate.emit({type:"checkbox",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element,treeStatus:"collapsed"})}calcSortDir(t){if(!t)return;const e=t.find(t=>t.prop===this.column.prop);return e?e.dir:void 0}stripHtml(t){return t.replace?t.replace(/<\/?[^>]+(>|$)/g,""):t}onTreeAction(){this.treeAction.emit(this.row)}calcLeftMargin(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0}}function bt(t,e,n){const a=n(e,t);return a>-1?t.splice(a,1):t.push(e),t}class mt{constructor(){this.activate=new a.EventEmitter,this.select=new a.EventEmitter}selectRow(t,e,n){if(!this.selectEnabled)return;const a="checkbox"===this.selectionType,r="multiClick"===this.selectionType;let i=[];i="multi"===this.selectionType||a||r?t.shiftKey?function(t,e,n,a,r){const i=n<a;for(let s=0;s<e.length;s++){const r=e[s],o=s>=a&&s<=n,u=s<=a&&s>=n;let d={start:0,end:0};d=i?{start:n,end:a}:{start:a,end:n+1},(i&&u||!i&&o)&&s>=d.start&&s<=d.end&&t.push(r)}return t}([],this.rows,e,this.prevIndex,this.getRowSelectedIdx.bind(this)):bt(t.ctrlKey||t.metaKey||r||a?[...this.selected]:[],n,this.getRowSelectedIdx.bind(this)):bt([],n,this.getRowSelectedIdx.bind(this)),"function"==typeof this.selectCheck&&(i=i.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),this.selected.push(...i),this.prevIndex=e,this.select.emit({selected:i})}onActivate(t,e){const{type:n,event:a,row:r}=t,i="checkbox"===this.selectionType;!i&&("click"===n||"dblclick"===n)||i&&"checkbox"===n?this.selectRow(a,e,r):"keydown"===n&&(a.keyCode===ft.return?this.selectRow(a,e,r):this.onKeyboardFocus(t)),this.activate.emit(t)}onKeyboardFocus(t){const{keyCode:e}=t.event;if(e===ft.up||e===ft.down||e===ft.right||e===ft.left){const n="cell"===this.selectionType;t.cellElement&&n?n&&this.focusCell(t.cellElement,t.rowElement,e,t.cellIndex):this.focusRow(t.rowElement,e)}}focusRow(t,e){const n=this.getPrevNextRow(t,e);n&&n.focus()}getPrevNextRow(t,e){const n=t.parentElement;if(n){let t;if(e===ft.up?t=n.previousElementSibling:e===ft.down&&(t=n.nextElementSibling),t&&t.children.length)return t.children[0]}}focusCell(t,e,n,a){let r;if(n===ft.left)r=t.previousElementSibling;else if(n===ft.right)r=t.nextElementSibling;else if(n===ft.up||n===ft.down){const t=this.getPrevNextRow(e,n);if(t){const e=t.getElementsByClassName("datatable-body-cell");e.length&&(r=e[a])}}r&&r.focus()}getRowSelected(t){return this.getRowSelectedIdx(t,this.selected)>-1}getRowSelectedIdx(t,e){if(!e||!e.length)return-1;const n=this.rowIdentity(t);return e.findIndex(t=>this.rowIdentity(t)===n)}}function yt(t){const e=t.filter(t=>!!t);return e.length?e.some(t=>"number"!=typeof t)?null:e.reduce((t,e)=>t+e):null}function vt(t){return null}class xt{constructor(){this.summaryRow={}}ngOnChanges(){this.columns&&this.rows&&(this.updateInternalColumns(),this.updateValues())}updateInternalColumns(){this._internalColumns=this.columns.map(t=>Object.assign({},t,{cellTemplate:t.summaryTemplate}))}updateValues(){this.summaryRow={},this.columns.filter(t=>!t.summaryTemplate).forEach(t=>{const e=this.rows.map(e=>e[t.prop]),n=this.getSummaryFunction(t);this.summaryRow[t.prop]=t.pipe?t.pipe.transform(n(e)):n(e)})}getSummaryFunction(t){return void 0===t.summaryFunc?yt:null===t.summaryFunc?vt:t.summaryFunc}}class _t{static forRoot(t){return{ngModule:_t,providers:[{provide:"configuration",useValue:t}]}}}"undefined"==typeof document||document.elementsFromPoint||(document.elementsFromPoint=function(t,e){const n=[],a=[];let r,i,s;for(;(r=document.elementFromPoint(t,e))&&-1===n.indexOf(r)&&null!=r;)n.push(r),a.push({value:r.style.getPropertyValue("pointer-events"),priority:r.style.getPropertyPriority("pointer-events")}),r.style.setProperty("pointer-events","none","important");for(i=a.length;s=a[--i];)n[i].style.setProperty("pointer-events",s.value?s.value:"",s.priority);return n})},wE6v:function(t,e,n){var a=n("hh1v");t.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"wF/u":function(t,e,n){var a=n("e5cp"),r=n("ExA7");t.exports=function t(e,n,i,s,o){return e===n||(null==e||null==n||!r(e)&&!r(n)?e!=e&&n!=n:a(e,n,i,s,t,o))}},wJg7:function(t,e){var n=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var a=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==a||"symbol"!=a&&n.test(t))&&t>-1&&t%1==0&&t<e}},wQk9:function(t,e,n){!function(t){"use strict";t.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".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:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n("wd/R"))},wclG:function(t,e,n){var a=n("pFRH"),r=n("88Gu")(a);t.exports=r},"wd/R":function(t,e,n){(function(t){t.exports=function(){"use strict";var e,a;function r(){return e.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function s(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){return void 0===t}function u(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function d(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function l(t,e){var n,a=[];for(n=0;n<t.length;++n)a.push(e(t[n],n));return a}function c(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function f(t,e){for(var n in e)c(e,n)&&(t[n]=e[n]);return c(e,"toString")&&(t.toString=e.toString),c(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,n,a){return Oe(t,e,n,a,!0).utc()}function g(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function p(t){if(null==t._isValid){var e=g(t),n=a.call(e.parsedDateParts,(function(t){return null!=t})),r=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(r=r&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return r;t._isValid=r}return t._isValid}function b(t){var e=h(NaN);return null!=t?f(g(e),t):g(e).userInvalidated=!0,e}a=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,a=0;a<n;a++)if(a in e&&t.call(this,e[a],a,e))return!0;return!1};var m=r.momentProperties=[];function y(t,e){var n,a,r;if(o(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),o(e._i)||(t._i=e._i),o(e._f)||(t._f=e._f),o(e._l)||(t._l=e._l),o(e._strict)||(t._strict=e._strict),o(e._tzm)||(t._tzm=e._tzm),o(e._isUTC)||(t._isUTC=e._isUTC),o(e._offset)||(t._offset=e._offset),o(e._pf)||(t._pf=g(e)),o(e._locale)||(t._locale=e._locale),m.length>0)for(n=0;n<m.length;n++)o(r=e[a=m[n]])||(t[a]=r);return t}var v=!1;function x(t){y(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===v&&(v=!0,r.updateOffset(this),v=!1)}function _(t){return t instanceof x||null!=t&&null!=t._isAMomentObject}function T(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function O(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=T(e)),n}function w(t,e,n){var a,r=Math.min(t.length,e.length),i=Math.abs(t.length-e.length),s=0;for(a=0;a<r;a++)(n&&t[a]!==e[a]||!n&&O(t[a])!==O(e[a]))&&s++;return s+i}function S(t){!1===r.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function I(t,e){var n=!0;return f((function(){if(null!=r.deprecationHandler&&r.deprecationHandler(null,t),n){for(var a,i=[],s=0;s<arguments.length;s++){if(a="","object"==typeof arguments[s]){for(var o in a+="\n["+s+"] ",arguments[0])a+=o+": "+arguments[0][o]+", ";a=a.slice(0,-2)}else a=arguments[s];i.push(a)}S(t+"\nArguments: "+Array.prototype.slice.call(i).join("")+"\n"+(new Error).stack),n=!1}return e.apply(this,arguments)}),e)}var N,C={};function R(t,e){null!=r.deprecationHandler&&r.deprecationHandler(t,e),C[t]||(S(e),C[t]=!0)}function A(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function k(t,e){var n,a=f({},t);for(n in e)c(e,n)&&(s(t[n])&&s(e[n])?(a[n]={},f(a[n],t[n]),f(a[n],e[n])):null!=e[n]?a[n]=e[n]:delete a[n]);for(n in t)c(t,n)&&!c(e,n)&&s(t[n])&&(a[n]=f({},a[n]));return a}function E(t){null!=t&&this.set(t)}r.suppressDeprecationWarnings=!1,r.deprecationHandler=null,N=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)c(t,e)&&n.push(e);return n};var L={};function D(t,e){var n=t.toLowerCase();L[n]=L[n+"s"]=L[e]=t}function P(t){return"string"==typeof t?L[t]||L[t.toLowerCase()]:void 0}function M(t){var e,n,a={};for(n in t)c(t,n)&&(e=P(n))&&(a[e]=t[n]);return a}var q={};function j(t,e){q[t]=e}function F(t,e,n){var a=""+Math.abs(t);return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var G=/(\[[^\[]*\])|(\\)?([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,V=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,z={},B={};function Y(t,e,n,a){var r=a;"string"==typeof a&&(r=function(){return this[a]()}),t&&(B[t]=r),e&&(B[e[0]]=function(){return F(r.apply(this,arguments),e[1],e[2])}),n&&(B[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function H(t,e){return t.isValid()?(e=U(e,t.localeData()),z[e]=z[e]||function(t){var e,n,a,r=t.match(G);for(e=0,n=r.length;e<n;e++)r[e]=B[r[e]]?B[r[e]]:(a=r[e]).match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"");return function(e){var a,i="";for(a=0;a<n;a++)i+=A(r[a])?r[a].call(e,t):r[a];return i}}(e),z[e](t)):t.localeData().invalidDate()}function U(t,e){var n=5;function a(t){return e.longDateFormat(t)||t}for(V.lastIndex=0;n>=0&&V.test(t);)t=t.replace(V,a),V.lastIndex=0,n-=1;return t}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,J=/[+-]?\d{6}/,Q=/\d\d?/,X=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,it=/[+-]?\d+/,st=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,ut=/[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 lt(t,e,n){dt[t]=A(e)?e:function(t,a){return t&&n?n:e}}function ct(t,e){return c(dt,t)?dt[t](e._strict,e._locale):new RegExp(ft(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,n,a,r){return e||n||a||r}))))}function ft(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ht={};function gt(t,e){var n,a=e;for("string"==typeof t&&(t=[t]),u(e)&&(a=function(t,n){n[e]=O(t)}),n=0;n<t.length;n++)ht[t[n]]=a}function pt(t,e){gt(t,(function(t,n,a,r){a._w=a._w||{},e(t,a._w,a,r)}))}function bt(t,e,n){null!=e&&c(ht,t)&&ht[t](e,n._a,n,t)}function mt(t){return yt(t)?366:365}function yt(t){return t%4==0&&t%100!=0||t%400==0}Y("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),Y(0,["YY",2],0,(function(){return this.year()%100})),Y(0,["YYYY",4],0,"year"),Y(0,["YYYYY",5],0,"year"),Y(0,["YYYYYY",6,!0],0,"year"),D("year","y"),j("year",1),lt("Y",it),lt("YY",Q,K),lt("YYYY",nt,Z),lt("YYYYY",at,J),lt("YYYYYY",at,J),gt(["YYYYY","YYYYYY"],0),gt("YYYY",(function(t,e){e[0]=2===t.length?r.parseTwoDigitYear(t):O(t)})),gt("YY",(function(t,e){e[0]=r.parseTwoDigitYear(t)})),gt("Y",(function(t,e){e[0]=parseInt(t,10)})),r.parseTwoDigitYear=function(t){return O(t)+(O(t)>68?1900:2e3)};var vt,xt=_t("FullYear",!0);function _t(t,e){return function(n){return null!=n?(Ot(this,t,n),r.updateOffset(this,e),this):Tt(this,t)}}function Tt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Ot(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&yt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),wt(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function wt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return t+=(e-n)/12,1===n?yt(t)?29:28:31-n%7%2}vt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},Y("M",["MM",2],"Mo",(function(){return this.month()+1})),Y("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),Y("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),D("month","M"),j("month",8),lt("M",Q),lt("MM",Q,K),lt("MMM",(function(t,e){return e.monthsShortRegex(t)})),lt("MMMM",(function(t,e){return e.monthsRegex(t)})),gt(["M","MM"],(function(t,e){e[1]=O(t)-1})),gt(["MMM","MMMM"],(function(t,e,n,a){var r=n._locale.monthsParse(t,a,n._strict);null!=r?e[1]=r:g(n).invalidMonth=t}));var St=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,It="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Nt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ct(t,e,n){var a,r,i,s=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)i=h([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=vt.call(this._shortMonthsParse,s))?r:null:-1!==(r=vt.call(this._longMonthsParse,s))?r:null:"MMM"===e?-1!==(r=vt.call(this._shortMonthsParse,s))?r:-1!==(r=vt.call(this._longMonthsParse,s))?r:null:-1!==(r=vt.call(this._longMonthsParse,s))?r:-1!==(r=vt.call(this._shortMonthsParse,s))?r:null}function Rt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=O(e);else if(!u(e=t.localeData().monthsParse(e)))return t;return n=Math.min(t.date(),wt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function At(t){return null!=t?(Rt(this,t),r.updateOffset(this,!0),this):Tt(this,"Month")}var kt=ut,Et=ut;function Lt(){function t(t,e){return e.length-t.length}var e,n,a=[],r=[],i=[];for(e=0;e<12;e++)n=h([2e3,e]),a.push(this.monthsShort(n,"")),r.push(this.months(n,"")),i.push(this.months(n,"")),i.push(this.monthsShort(n,""));for(a.sort(t),r.sort(t),i.sort(t),e=0;e<12;e++)a[e]=ft(a[e]),r[e]=ft(r[e]);for(e=0;e<24;e++)i[e]=ft(i[e]);this._monthsRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Dt(t,e,n,a,r,i,s){var o;return t<100&&t>=0?(o=new Date(t+400,e,n,a,r,i,s),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,n,a,r,i,s),o}function Pt(t){var e;if(t<100&&t>=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Mt(t,e,n){var a=7+e-n;return-(7+Pt(t,0,a).getUTCDay()-e)%7+a-1}function qt(t,e,n,a,r){var i,s,o=1+7*(e-1)+(7+n-a)%7+Mt(t,a,r);return o<=0?s=mt(i=t-1)+o:o>mt(t)?(i=t+1,s=o-mt(t)):(i=t,s=o),{year:i,dayOfYear:s}}function jt(t,e,n){var a,r,i=Mt(t.year(),e,n),s=Math.floor((t.dayOfYear()-i-1)/7)+1;return s<1?a=s+Ft(r=t.year()-1,e,n):s>Ft(t.year(),e,n)?(a=s-Ft(t.year(),e,n),r=t.year()+1):(r=t.year(),a=s),{week:a,year:r}}function Ft(t,e,n){var a=Mt(t,e,n),r=Mt(t+1,e,n);return(mt(t)-a+r)/7}function Gt(t,e){return t.slice(e,7).concat(t.slice(0,e))}Y("w",["ww",2],"wo","week"),Y("W",["WW",2],"Wo","isoWeek"),D("week","w"),D("isoWeek","W"),j("week",5),j("isoWeek",5),lt("w",Q),lt("ww",Q,K),lt("W",Q),lt("WW",Q,K),pt(["w","ww","W","WW"],(function(t,e,n,a){e[a.substr(0,1)]=O(t)})),Y("d",0,"do","day"),Y("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),Y("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),Y("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),Y("e",0,0,"weekday"),Y("E",0,0,"isoWeekday"),D("day","d"),D("weekday","e"),D("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),lt("d",Q),lt("e",Q),lt("E",Q),lt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),lt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),lt("dddd",(function(t,e){return e.weekdaysRegex(t)})),pt(["dd","ddd","dddd"],(function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:g(n).invalidWeekday=t})),pt(["d","e","E"],(function(t,e,n,a){e[a]=O(t)}));var Vt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),zt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Bt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Yt(t,e,n){var a,r,i,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)i=h([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(i,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(r=vt.call(this._weekdaysParse,s))?r:null:"ddd"===e?-1!==(r=vt.call(this._shortWeekdaysParse,s))?r:null:-1!==(r=vt.call(this._minWeekdaysParse,s))?r:null:"dddd"===e?-1!==(r=vt.call(this._weekdaysParse,s))?r:-1!==(r=vt.call(this._shortWeekdaysParse,s))?r:-1!==(r=vt.call(this._minWeekdaysParse,s))?r:null:"ddd"===e?-1!==(r=vt.call(this._shortWeekdaysParse,s))?r:-1!==(r=vt.call(this._weekdaysParse,s))?r:-1!==(r=vt.call(this._minWeekdaysParse,s))?r:null:-1!==(r=vt.call(this._minWeekdaysParse,s))?r:-1!==(r=vt.call(this._weekdaysParse,s))?r:-1!==(r=vt.call(this._shortWeekdaysParse,s))?r:null}var Ht=ut,Ut=ut,Wt=ut;function Kt(){function t(t,e){return e.length-t.length}var e,n,a,r,i,s=[],o=[],u=[],d=[];for(e=0;e<7;e++)n=h([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),i=this.weekdays(n,""),s.push(a),o.push(r),u.push(i),d.push(a),d.push(r),d.push(i);for(s.sort(t),o.sort(t),u.sort(t),d.sort(t),e=0;e<7;e++)o[e]=ft(o[e]),u[e]=ft(u[e]),d[e]=ft(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function $t(){return this.hours()%12||12}function Zt(t,e){Y(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}Y("H",["HH",2],0,"hour"),Y("h",["hh",2],0,$t),Y("k",["kk",2],0,(function(){return this.hours()||24})),Y("hmm",0,0,(function(){return""+$t.apply(this)+F(this.minutes(),2)})),Y("hmmss",0,0,(function(){return""+$t.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),Y("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),Y("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Zt("a",!0),Zt("A",!1),D("hour","h"),j("hour",13),lt("a",Jt),lt("A",Jt),lt("H",Q),lt("h",Q),lt("k",Q),lt("HH",Q,K),lt("hh",Q,K),lt("kk",Q,K),lt("hmm",X),lt("hmmss",tt),lt("Hmm",X),lt("Hmmss",tt),gt(["H","HH"],3),gt(["k","kk"],(function(t,e,n){var a=O(t);e[3]=24===a?0:a})),gt(["a","A"],(function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t})),gt(["h","hh"],(function(t,e,n){e[3]=O(t),g(n).bigHour=!0})),gt("hmm",(function(t,e,n){var a=t.length-2;e[3]=O(t.substr(0,a)),e[4]=O(t.substr(a)),g(n).bigHour=!0})),gt("hmmss",(function(t,e,n){var a=t.length-4,r=t.length-2;e[3]=O(t.substr(0,a)),e[4]=O(t.substr(a,2)),e[5]=O(t.substr(r)),g(n).bigHour=!0})),gt("Hmm",(function(t,e,n){var a=t.length-2;e[3]=O(t.substr(0,a)),e[4]=O(t.substr(a))})),gt("Hmmss",(function(t,e,n){var a=t.length-4,r=t.length-2;e[3]=O(t.substr(0,a)),e[4]=O(t.substr(a,2)),e[5]=O(t.substr(r))}));var Qt,Xt=_t("Hours",!0),te={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:It,monthsShort:Nt,week:{dow:0,doy:6},weekdays:Vt,weekdaysMin:Bt,weekdaysShort:zt,meridiemParse:/[ap]\.?m?\.?/i},ee={},ne={};function ae(t){return t?t.toLowerCase().replace("_","-"):t}function re(e){var a=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{a=Qt._abbr,n("RnhZ")("./"+e),ie(a)}catch(r){}return ee[e]}function ie(t,e){var n;return t&&((n=o(e)?oe(t):se(t,e))?Qt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Qt._abbr}function se(t,e){if(null!==e){var n,a=te;if(e.abbr=t,null!=ee[t])R("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."),a=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])a=ee[e.parentLocale]._config;else{if(null==(n=re(e.parentLocale)))return ne[e.parentLocale]||(ne[e.parentLocale]=[]),ne[e.parentLocale].push({name:t,config:e}),null;a=n._config}return ee[t]=new E(k(a,e)),ne[t]&&ne[t].forEach((function(t){se(t.name,t.config)})),ie(t),ee[t]}return delete ee[t],null}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Qt;if(!i(t)){if(e=re(t))return e;t=[t]}return function(t){for(var e,n,a,r,i=0;i<t.length;){for(e=(r=ae(t[i]).split("-")).length,n=(n=ae(t[i+1]))?n.split("-"):null;e>0;){if(a=re(r.slice(0,e).join("-")))return a;if(n&&n.length>=e&&w(r,n,!0)>=e-1)break;e--}i++}return Qt}(t)}function ue(t){var e,n=t._a;return n&&-2===g(t).overflow&&(e=n[1]<0||n[1]>11?1:n[2]<1||n[2]>wt(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,g(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),g(t)._overflowWeeks&&-1===e&&(e=7),g(t)._overflowWeekday&&-1===e&&(e=8),g(t).overflow=e),t}function de(t,e,n){return null!=t?t:null!=e?e:n}function le(t){var e,n,a,i,s,o=[];if(!t._d){for(a=function(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,n,a,r,i,s,o,u;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)i=1,s=4,n=de(e.GG,t._a[0],jt(we(),1,4).year),a=de(e.W,1),((r=de(e.E,1))<1||r>7)&&(u=!0);else{i=t._locale._week.dow,s=t._locale._week.doy;var d=jt(we(),i,s);n=de(e.gg,t._a[0],d.year),a=de(e.w,d.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>Ft(n,i,s)?g(t)._overflowWeeks=!0:null!=u?g(t)._overflowWeekday=!0:(o=qt(n,a,r,i,s),t._a[0]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(s=de(t._a[0],a[0]),(t._dayOfYear>mt(s)||0===t._dayOfYear)&&(g(t)._overflowDayOfYear=!0),n=Pt(s,0,t._dayOfYear),t._a[1]=n.getUTCMonth(),t._a[2]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=a[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Pt:Dt).apply(null,o),i=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==i&&(g(t).weekdayMismatch=!0)}}var ce=/^\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)?)?$/,fe=/^\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)?)?$/,he=/Z|[+-]\d\d(?::?\d\d)?/,ge=[["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}/]],pe=[["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/]],be=/^\/?Date\((\-?\d+)/i;function me(t){var e,n,a,r,i,s,o=t._i,u=ce.exec(o)||fe.exec(o);if(u){for(g(t).iso=!0,e=0,n=ge.length;e<n;e++)if(ge[e][1].exec(u[1])){r=ge[e][0],a=!1!==ge[e][2];break}if(null==r)return void(t._isValid=!1);if(u[3]){for(e=0,n=pe.length;e<n;e++)if(pe[e][1].exec(u[3])){i=(u[2]||" ")+pe[e][0];break}if(null==i)return void(t._isValid=!1)}if(!a&&null!=i)return void(t._isValid=!1);if(u[4]){if(!he.exec(u[4]))return void(t._isValid=!1);s="Z"}t._f=r+(i||"")+(s||""),_e(t)}else t._isValid=!1}var ye=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,ve={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function xe(t){var e,n,a,r,i,s,o,u,d=ye.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(d){var l=(e=d[3],n=d[2],a=d[5],r=d[6],i=d[7],s=[(o=d[4],u=parseInt(o,10),u<=49?2e3+u:u<=999?1900+u:u),Nt.indexOf(e),parseInt(n,10),parseInt(a,10),parseInt(r,10)],i&&s.push(parseInt(i,10)),s);if(!function(t,e,n){return!t||zt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(g(n).weekdayMismatch=!0,n._isValid=!1,!1)}(d[1],l,t))return;t._a=l,t._tzm=function(t,e,n){if(t)return ve[t];if(e)return 0;var a=parseInt(n,10),r=a%100;return(a-r)/100*60+r}(d[8],d[9],d[10]),t._d=Pt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),g(t).rfc2822=!0}else t._isValid=!1}function _e(t){if(t._f!==r.ISO_8601)if(t._f!==r.RFC_2822){t._a=[],g(t).empty=!0;var e,n,a,i,s,o=""+t._i,u=o.length,d=0;for(a=U(t._f,t._locale).match(G)||[],e=0;e<a.length;e++)(n=(o.match(ct(i=a[e],t))||[])[0])&&((s=o.substr(0,o.indexOf(n))).length>0&&g(t).unusedInput.push(s),o=o.slice(o.indexOf(n)+n.length),d+=n.length),B[i]?(n?g(t).empty=!1:g(t).unusedTokens.push(i),bt(i,n,t)):t._strict&&!n&&g(t).unusedTokens.push(i);g(t).charsLeftOver=u-d,o.length>0&&g(t).unusedInput.push(o),t._a[3]<=12&&!0===g(t).bigHour&&t._a[3]>0&&(g(t).bigHour=void 0),g(t).parsedDateParts=t._a.slice(0),g(t).meridiem=t._meridiem,t._a[3]=function(t,e,n){var a;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?((a=t.isPM(n))&&e<12&&(e+=12),a||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),le(t),ue(t)}else xe(t);else me(t)}function Te(t){var e=t._i,n=t._f;return t._locale=t._locale||oe(t._l),null===e||void 0===n&&""===e?b({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),_(e)?new x(ue(e)):(d(e)?t._d=e:i(n)?function(t){var e,n,a,r,i;if(0===t._f.length)return g(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;r<t._f.length;r++)i=0,e=y({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[r],_e(e),p(e)&&(i+=g(e).charsLeftOver,i+=10*g(e).unusedTokens.length,g(e).score=i,(null==a||i<a)&&(a=i,n=e));f(t,n||e)}(t):n?_e(t):function(t){var e=t._i;o(e)?t._d=new Date(r.now()):d(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=be.exec(t._i);null===e?(me(t),!1===t._isValid&&(delete t._isValid,xe(t),!1===t._isValid&&(delete t._isValid,r.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):i(e)?(t._a=l(e.slice(0),(function(t){return parseInt(t,10)})),le(t)):s(e)?function(t){if(!t._d){var e=M(t._i);t._a=l([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),le(t)}}(t):u(e)?t._d=new Date(e):r.createFromInputFallback(t)}(t),p(t)||(t._d=null),t))}function Oe(t,e,n,a,r){var o,u={};return!0!==n&&!1!==n||(a=n,n=void 0),(s(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||i(t)&&0===t.length)&&(t=void 0),u._isAMomentObject=!0,u._useUTC=u._isUTC=r,u._l=n,u._i=t,u._f=e,u._strict=a,(o=new x(ue(Te(u))))._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function we(t,e,n,a){return Oe(t,e,n,a,!1)}r.createFromInputFallback=I("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),r.ISO_8601=function(){},r.RFC_2822=function(){};var Se=I("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=we.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:b()})),Ie=I("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=we.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:b()}));function Ne(t,e){var n,a;if(1===e.length&&i(e[0])&&(e=e[0]),!e.length)return we();for(n=e[0],a=1;a<e.length;++a)e[a].isValid()&&!e[a][t](n)||(n=e[a]);return n}var Ce=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Re(t){var e=M(t),n=e.year||0,a=e.quarter||0,r=e.month||0,i=e.week||e.isoWeek||0,s=e.day||0,o=e.hour||0,u=e.minute||0,d=e.second||0,l=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===vt.call(Ce,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var n=!1,a=0;a<Ce.length;++a)if(t[Ce[a]]){if(n)return!1;parseFloat(t[Ce[a]])!==O(t[Ce[a]])&&(n=!0)}return!0}(e),this._milliseconds=+l+1e3*d+6e4*u+1e3*o*60*60,this._days=+s+7*i,this._months=+r+3*a+12*n,this._data={},this._locale=oe(),this._bubble()}function Ae(t){return t instanceof Re}function ke(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ee(t,e){Y(t,0,0,(function(){var t=this.utcOffset(),n="+";return t<0&&(t=-t,n="-"),n+F(~~(t/60),2)+e+F(~~t%60,2)}))}Ee("Z",":"),Ee("ZZ",""),lt("Z",ot),lt("ZZ",ot),gt(["Z","ZZ"],(function(t,e,n){n._useUTC=!0,n._tzm=De(ot,t)}));var Le=/([\+\-]|\d\d)/gi;function De(t,e){var n=(e||"").match(t);if(null===n)return null;var a=((n[n.length-1]||[])+"").match(Le)||["-",0,0],r=60*a[1]+O(a[2]);return 0===r?0:"+"===a[0]?r:-r}function Pe(t,e){var n,a;return e._isUTC?(n=e.clone(),a=(_(t)||d(t)?t.valueOf():we(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+a),r.updateOffset(n,!1),n):we(t).local()}function Me(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function qe(){return!!this.isValid()&&this._isUTC&&0===this._offset}r.updateOffset=function(){};var je=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Fe=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ge(t,e){var n,a,r,i,s,o,d=t,l=null;return Ae(t)?d={ms:t._milliseconds,d:t._days,M:t._months}:u(t)?(d={},e?d[e]=t:d.milliseconds=t):(l=je.exec(t))?(n="-"===l[1]?-1:1,d={y:0,d:O(l[2])*n,h:O(l[3])*n,m:O(l[4])*n,s:O(l[5])*n,ms:O(ke(1e3*l[6]))*n}):(l=Fe.exec(t))?d={y:Ve(l[2],n="-"===l[1]?-1:1),M:Ve(l[3],n),w:Ve(l[4],n),d:Ve(l[5],n),h:Ve(l[6],n),m:Ve(l[7],n),s:Ve(l[8],n)}:null==d?d={}:"object"==typeof d&&("from"in d||"to"in d)&&(i=we(d.from),s=we(d.to),r=i.isValid()&&s.isValid()?(s=Pe(s,i),i.isBefore(s)?o=ze(i,s):((o=ze(s,i)).milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0},(d={}).ms=r.milliseconds,d.M=r.months),a=new Re(d),Ae(t)&&c(t,"_locale")&&(a._locale=t._locale),a}function Ve(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function ze(t,e){var n={};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Be(t,e){return function(n,a){var r;return null===a||isNaN(+a)||(R(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=a,a=r),Ye(this,Ge(n="string"==typeof n?+n:n,a),t),this}}function Ye(t,e,n,a){var i=e._milliseconds,s=ke(e._days),o=ke(e._months);t.isValid()&&(a=null==a||a,o&&Rt(t,Tt(t,"Month")+o*n),s&&Ot(t,"Date",Tt(t,"Date")+s*n),i&&t._d.setTime(t._d.valueOf()+i*n),a&&r.updateOffset(t,s||o))}Ge.fn=Re.prototype,Ge.invalid=function(){return Ge(NaN)};var He=Be(1,"add"),Ue=Be(-1,"subtract");function We(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),a=t.clone().add(n,"months");return-(n+(e-a<0?(e-a)/(a-t.clone().add(n-1,"months")):(e-a)/(t.clone().add(n+1,"months")-a)))||0}function Ke(t){var e;return void 0===t?this._locale._abbr:(null!=(e=oe(t))&&(this._locale=e),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var $e=I("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Ze(){return this._locale}function Je(t,e){return(t%e+e)%e}function Qe(t,e,n){return t<100&&t>=0?new Date(t+400,e,n)-126227808e5:new Date(t,e,n).valueOf()}function Xe(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-126227808e5:Date.UTC(t,e,n)}function tn(t,e){Y(0,[t,t.length],0,e)}function en(t,e,n,a,r){var i;return null==t?jt(this,a,r).year:(e>(i=Ft(t,a,r))&&(e=i),nn.call(this,t,e,n,a,r))}function nn(t,e,n,a,r){var i=qt(t,e,n,a,r),s=Pt(i.year,0,i.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}Y(0,["gg",2],0,(function(){return this.weekYear()%100})),Y(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),D("weekYear","gg"),D("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),lt("G",it),lt("g",it),lt("GG",Q,K),lt("gg",Q,K),lt("GGGG",nt,Z),lt("gggg",nt,Z),lt("GGGGG",at,J),lt("ggggg",at,J),pt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,a){e[a.substr(0,2)]=O(t)})),pt(["gg","GG"],(function(t,e,n,a){e[a]=r.parseTwoDigitYear(t)})),Y("Q",0,"Qo","quarter"),D("quarter","Q"),j("quarter",7),lt("Q",W),gt("Q",(function(t,e){e[1]=3*(O(t)-1)})),Y("D",["DD",2],"Do","date"),D("date","D"),j("date",9),lt("D",Q),lt("DD",Q,K),lt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),gt(["D","DD"],2),gt("Do",(function(t,e){e[2]=O(t.match(Q)[0])}));var an=_t("Date",!0);Y("DDD",["DDDD",3],"DDDo","dayOfYear"),D("dayOfYear","DDD"),j("dayOfYear",4),lt("DDD",et),lt("DDDD",$),gt(["DDD","DDDD"],(function(t,e,n){n._dayOfYear=O(t)})),Y("m",["mm",2],0,"minute"),D("minute","m"),j("minute",14),lt("m",Q),lt("mm",Q,K),gt(["m","mm"],4);var rn=_t("Minutes",!1);Y("s",["ss",2],0,"second"),D("second","s"),j("second",15),lt("s",Q),lt("ss",Q,K),gt(["s","ss"],5);var sn,on=_t("Seconds",!1);for(Y("S",0,0,(function(){return~~(this.millisecond()/100)})),Y(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),Y(0,["SSS",3],0,"millisecond"),Y(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),Y(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),Y(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),Y(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),Y(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),Y(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),D("millisecond","ms"),j("millisecond",16),lt("S",et,W),lt("SS",et,K),lt("SSS",et,$),sn="SSSS";sn.length<=9;sn+="S")lt(sn,rt);function un(t,e){e[6]=O(1e3*("0."+t))}for(sn="S";sn.length<=9;sn+="S")gt(sn,un);var dn=_t("Milliseconds",!1);Y("z",0,0,"zoneAbbr"),Y("zz",0,0,"zoneName");var ln=x.prototype;function cn(t){return t}ln.add=He,ln.calendar=function(t,e){var n=t||we(),a=Pe(n,this).startOf("day"),i=r.calendarFormat(this,a)||"sameElse",s=e&&(A(e[i])?e[i].call(this,n):e[i]);return this.format(s||this.localeData().calendar(i,this,we(n)))},ln.clone=function(){return new x(this)},ln.diff=function(t,e,n){var a,r,i;if(!this.isValid())return NaN;if(!(a=Pe(t,this)).isValid())return NaN;switch(r=6e4*(a.utcOffset()-this.utcOffset()),e=P(e)){case"year":i=We(this,a)/12;break;case"month":i=We(this,a);break;case"quarter":i=We(this,a)/3;break;case"second":i=(this-a)/1e3;break;case"minute":i=(this-a)/6e4;break;case"hour":i=(this-a)/36e5;break;case"day":i=(this-a-r)/864e5;break;case"week":i=(this-a-r)/6048e5;break;default:i=this-a}return n?i:T(i)},ln.endOf=function(t){var e;if(void 0===(t=P(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?Xe:Qe;switch(t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Je(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Je(e,1e3)-1}return this._d.setTime(e),r.updateOffset(this,!0),this},ln.format=function(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=H(this,t);return this.localeData().postformat(e)},ln.from=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?Ge({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ln.fromNow=function(t){return this.from(we(),t)},ln.to=function(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?Ge({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ln.toNow=function(t){return this.to(we(),t)},ln.get=function(t){return A(this[t=P(t)])?this[t]():this},ln.invalidAt=function(){return g(this).overflow},ln.isAfter=function(t,e){var n=_(t)?t:we(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=P(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf())},ln.isBefore=function(t,e){var n=_(t)?t:we(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=P(e)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf())},ln.isBetween=function(t,e,n,a){var r=_(t)?t:we(t),i=_(e)?e:we(e);return!!(this.isValid()&&r.isValid()&&i.isValid())&&("("===(a=a||"()")[0]?this.isAfter(r,n):!this.isBefore(r,n))&&(")"===a[1]?this.isBefore(i,n):!this.isAfter(i,n))},ln.isSame=function(t,e){var n,a=_(t)?t:we(t);return!(!this.isValid()||!a.isValid())&&("millisecond"===(e=P(e)||"millisecond")?this.valueOf()===a.valueOf():(n=a.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf()))},ln.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},ln.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},ln.isValid=function(){return p(this)},ln.lang=$e,ln.locale=Ke,ln.localeData=Ze,ln.max=Ie,ln.min=Se,ln.parsingFlags=function(){return f({},g(this))},ln.set=function(t,e){if("object"==typeof t)for(var n=function(t){var e=[];for(var n in t)e.push({unit:n,priority:q[n]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=M(t)),a=0;a<n.length;a++)this[n[a].unit](t[n[a].unit]);else if(A(this[t=P(t)]))return this[t](e);return this},ln.startOf=function(t){var e;if(void 0===(t=P(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?Xe:Qe;switch(t){case"year":e=n(this.year(),0,1);break;case"quarter":e=n(this.year(),this.month()-this.month()%3,1);break;case"month":e=n(this.year(),this.month(),1);break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=n(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Je(e,6e4);break;case"second":e=this._d.valueOf(),e-=Je(e,1e3)}return this._d.setTime(e),r.updateOffset(this,!0),this},ln.subtract=Ue,ln.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},ln.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},ln.toDate=function(){return new Date(this.valueOf())},ln.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,n=e?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):A(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ln.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(n+a+"-MM-DD[T]HH:mm:ss.SSS"+e+'[")]')},ln.toJSON=function(){return this.isValid()?this.toISOString():null},ln.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ln.unix=function(){return Math.floor(this.valueOf()/1e3)},ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ln.year=xt,ln.isLeapYear=function(){return yt(this.year())},ln.weekYear=function(t){return en.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ln.isoWeekYear=function(t){return en.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},ln.quarter=ln.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},ln.month=At,ln.daysInMonth=function(){return wt(this.year(),this.month())},ln.week=ln.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},ln.isoWeek=ln.isoWeeks=function(t){var e=jt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},ln.weeksInYear=function(){var t=this.localeData()._week;return Ft(this.year(),t.dow,t.doy)},ln.isoWeeksInYear=function(){return Ft(this.year(),1,4)},ln.date=an,ln.day=ln.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},ln.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},ln.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},ln.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},ln.hour=ln.hours=Xt,ln.minute=ln.minutes=rn,ln.second=ln.seconds=on,ln.millisecond=ln.milliseconds=dn,ln.utcOffset=function(t,e,n){var a,i=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=De(ot,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(a=Me(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),i!==t&&(!e||this._changeInProgress?Ye(this,Ge(t-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Me(this)},ln.utc=function(t){return this.utcOffset(0,t)},ln.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Me(this),"m")),this},ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=De(st,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},ln.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?we(t).utcOffset():0,(this.utcOffset()-t)%60==0)},ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=qe,ln.isUTC=qe,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=I("dates accessor is deprecated. Use date instead.",an),ln.months=I("months accessor is deprecated. Use month instead",At),ln.years=I("years accessor is deprecated. Use year instead",xt),ln.zone=I("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),ln.isDSTShifted=I("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),(t=Te(t))._a){var e=t._isUTC?h(t._a):we(t._a);this._isDSTShifted=this.isValid()&&w(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var fn=E.prototype;function hn(t,e,n,a){var r=oe(),i=h().set(a,e);return r[n](i,t)}function gn(t,e,n){if(u(t)&&(e=t,t=void 0),t=t||"",null!=e)return hn(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=hn(t,a,n,"month");return r}function pn(t,e,n,a){"boolean"==typeof t?(u(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,u(e)&&(n=e,e=void 0),e=e||"");var r,i=oe(),s=t?i._week.dow:0;if(null!=n)return hn(e,(n+s)%7,a,"day");var o=[];for(r=0;r<7;r++)o[r]=hn(e,(r+s)%7,a,"day");return o}fn.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return A(a)?a.call(e,n):a},fn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},fn.invalidDate=function(){return this._invalidDate},fn.ordinal=function(t){return this._ordinal.replace("%d",t)},fn.preparse=cn,fn.postformat=cn,fn.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return A(r)?r(t,e,n,a):r.replace(/%d/i,t)},fn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return A(n)?n(e):n.replace(/%s/i,e)},fn.set=function(t){var e,n;for(n in t)A(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},fn.months=function(t,e){return t?i(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||St).test(e)?"format":"standalone"][t.month()]:i(this._months)?this._months:this._months.standalone},fn.monthsShort=function(t,e){return t?i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[St.test(e)?"format":"standalone"][t.month()]:i(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},fn.monthsParse=function(t,e,n){var a,r,i;if(this._monthsParseExact)return Ct.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(r=h([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(i="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[a]=new RegExp(i.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[a].test(t))return a;if(n&&"MMM"===e&&this._shortMonthsParse[a].test(t))return a;if(!n&&this._monthsParse[a].test(t))return a}},fn.monthsRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||Lt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=Et),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},fn.monthsShortRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||Lt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=kt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},fn.week=function(t){return jt(t,this._week.dow,this._week.doy).week},fn.firstDayOfYear=function(){return this._week.doy},fn.firstDayOfWeek=function(){return this._week.dow},fn.weekdays=function(t,e){var n=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Gt(n,this._week.dow):t?n[t.day()]:n},fn.weekdaysMin=function(t){return!0===t?Gt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},fn.weekdaysShort=function(t){return!0===t?Gt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},fn.weekdaysParse=function(t,e,n){var a,r,i;if(this._weekdaysParseExact)return Yt.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=h([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[a]||(i="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(i.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},fn.weekdaysRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},fn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ut),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},fn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Wt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},fn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},fn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},ie("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===O(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=I("moment.lang is deprecated. Use moment.locale instead.",ie),r.langData=I("moment.langData is deprecated. Use moment.localeData instead.",oe);var bn=Math.abs;function mn(t,e,n,a){var r=Ge(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function yn(t){return t<0?Math.floor(t):Math.ceil(t)}function vn(t){return 4800*t/146097}function xn(t){return 146097*t/4800}function _n(t){return function(){return this.as(t)}}var Tn=_n("ms"),On=_n("s"),wn=_n("m"),Sn=_n("h"),In=_n("d"),Nn=_n("w"),Cn=_n("M"),Rn=_n("Q"),An=_n("y");function kn(t){return function(){return this.isValid()?this._data[t]:NaN}}var En=kn("milliseconds"),Ln=kn("seconds"),Dn=kn("minutes"),Pn=kn("hours"),Mn=kn("days"),qn=kn("months"),jn=kn("years"),Fn=Math.round,Gn={ss:44,s:45,m:45,h:22,d:26,M:11};function Vn(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}var zn=Math.abs;function Bn(t){return(t>0)-(t<0)||+t}function Yn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=zn(this._milliseconds)/1e3,a=zn(this._days),r=zn(this._months);t=T(n/60),e=T(t/60),n%=60,t%=60;var i=T(r/12),s=r%=12,o=a,u=e,d=t,l=n?n.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var f=c<0?"-":"",h=Bn(this._months)!==Bn(c)?"-":"",g=Bn(this._days)!==Bn(c)?"-":"",p=Bn(this._milliseconds)!==Bn(c)?"-":"";return f+"P"+(i?h+i+"Y":"")+(s?h+s+"M":"")+(o?g+o+"D":"")+(u||d||l?"T":"")+(u?p+u+"H":"")+(d?p+d+"M":"")+(l?p+l+"S":"")}var Hn=Re.prototype;return Hn.isValid=function(){return this._isValid},Hn.abs=function(){var t=this._data;return this._milliseconds=bn(this._milliseconds),this._days=bn(this._days),this._months=bn(this._months),t.milliseconds=bn(t.milliseconds),t.seconds=bn(t.seconds),t.minutes=bn(t.minutes),t.hours=bn(t.hours),t.months=bn(t.months),t.years=bn(t.years),this},Hn.add=function(t,e){return mn(this,t,e,1)},Hn.subtract=function(t,e){return mn(this,t,e,-1)},Hn.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if("month"===(t=P(t))||"quarter"===t||"year"===t)switch(n=this._months+vn(e=this._days+a/864e5),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(xn(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}},Hn.asMilliseconds=Tn,Hn.asSeconds=On,Hn.asMinutes=wn,Hn.asHours=Sn,Hn.asDays=In,Hn.asWeeks=Nn,Hn.asMonths=Cn,Hn.asQuarters=Rn,Hn.asYears=An,Hn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*O(this._months/12):NaN},Hn._bubble=function(){var t,e,n,a,r,i=this._milliseconds,s=this._days,o=this._months,u=this._data;return i>=0&&s>=0&&o>=0||i<=0&&s<=0&&o<=0||(i+=864e5*yn(xn(o)+s),s=0,o=0),u.milliseconds=i%1e3,t=T(i/1e3),u.seconds=t%60,e=T(t/60),u.minutes=e%60,n=T(e/60),u.hours=n%24,s+=T(n/24),o+=r=T(vn(s)),s-=yn(xn(r)),a=T(o/12),o%=12,u.days=s,u.months=o,u.years=a,this},Hn.clone=function(){return Ge(this)},Hn.get=function(t){return t=P(t),this.isValid()?this[t+"s"]():NaN},Hn.milliseconds=En,Hn.seconds=Ln,Hn.minutes=Dn,Hn.hours=Pn,Hn.days=Mn,Hn.weeks=function(){return T(this.days()/7)},Hn.months=qn,Hn.years=jn,Hn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=function(t,e,n){var a=Ge(t).abs(),r=Fn(a.as("s")),i=Fn(a.as("m")),s=Fn(a.as("h")),o=Fn(a.as("d")),u=Fn(a.as("M")),d=Fn(a.as("y")),l=r<=Gn.ss&&["s",r]||r<Gn.s&&["ss",r]||i<=1&&["m"]||i<Gn.m&&["mm",i]||s<=1&&["h"]||s<Gn.h&&["hh",s]||o<=1&&["d"]||o<Gn.d&&["dd",o]||u<=1&&["M"]||u<Gn.M&&["MM",u]||d<=1&&["y"]||["yy",d];return l[2]=e,l[3]=+t>0,l[4]=n,Vn.apply(null,l)}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},Hn.toISOString=Yn,Hn.toString=Yn,Hn.toJSON=Yn,Hn.locale=Ke,Hn.localeData=Ze,Hn.toIsoString=I("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Yn),Hn.lang=$e,Y("X",0,0,"unix"),Y("x",0,0,"valueOf"),lt("x",it),lt("X",/[+-]?\d+(\.\d{1,3})?/),gt("X",(function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))})),gt("x",(function(t,e,n){n._d=new Date(O(t))})),r.version="2.24.0",e=we,r.fn=ln,r.min=function(){var t=[].slice.call(arguments,0);return Ne("isBefore",t)},r.max=function(){var t=[].slice.call(arguments,0);return Ne("isAfter",t)},r.now=function(){return Date.now?Date.now():+new Date},r.utc=h,r.unix=function(t){return we(1e3*t)},r.months=function(t,e){return gn(t,e,"months")},r.isDate=d,r.locale=ie,r.invalid=b,r.duration=Ge,r.isMoment=_,r.weekdays=function(t,e,n){return pn(t,e,n,"weekdays")},r.parseZone=function(){return we.apply(null,arguments).parseZone()},r.localeData=oe,r.isDuration=Ae,r.monthsShort=function(t,e){return gn(t,e,"monthsShort")},r.weekdaysMin=function(t,e,n){return pn(t,e,n,"weekdaysMin")},r.defineLocale=se,r.updateLocale=function(t,e){if(null!=e){var n,a,r=te;null!=(a=re(t))&&(r=a._config),(n=new E(e=k(r,e))).parentLocale=ee[t],ee[t]=n,ie(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},r.locales=function(){return N(ee)},r.weekdaysShort=function(t,e,n){return pn(t,e,n,"weekdaysShort")},r.normalizeUnits=P,r.relativeTimeRounding=function(t){return void 0===t?Fn:"function"==typeof t&&(Fn=t,!0)},r.relativeTimeThreshold=function(t,e){return void 0!==Gn[t]&&(void 0===e?Gn[t]:(Gn[t]=e,"s"===t&&(Gn.ss=e-1),!0))},r.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=ln,r.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:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n("YuTi")(t))},wg0c:function(t,e,n){var a=n("2oRo"),r=n("WKiH").trim,i=n("WJkJ"),s=a.parseInt,o=/^[+-]?0[Xx]/,u=8!==s(i+"08")||22!==s(i+"0x16");t.exports=u?function(t,e){var n=r(String(t));return s(n,e>>>0||(o.test(n)?16:10))}:s},wig9:function(t,e){t.exports=function(t){for(var e=-1,n=null==t?0:t.length,a=0,r=[];++e<n;){var i=t[e];i&&(r[a++]=i)}return r}},wnGv:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("8Y7J"),r=n("s7LF"),i=n("LvDl"),s=n("oxzT"),o=n("QFaf"),u=n("DNAf"),d=n("a96k");class l{constructor(t){this.i18n=t,this.data=[],this.options=[],this.messages=new u.a({},this.i18n),this.customBadges=!1,this.customBadgeValidators=[],this.selection=new a.EventEmitter,this.Object=Object,this.filteredOptions=[],this.icons=s.a}ngOnInit(){this.initFilter(),this.data.length>0&&this.initMissingOptions(),this.options=i.sortBy(this.options,["name"]),this.updateOptions()}initFilter(){this.filter=new r.i("",{validators:this.customBadgeValidators}),this.form=new o.a({filter:this.filter}),this.filteredOptions=[...this.options||[]]}initMissingOptions(){const t=this.options.map(t=>t.name);this.data.filter(e=>-1===t.indexOf(e)).forEach(t=>this.addOption(t)),this.forceOptionsToReflectData()}addOption(t){this.options.push(new d.a(!1,t,"")),this.options=i.sortBy(this.options,["name"]),this.triggerSelection(this.options.find(e=>e.name===t))}triggerSelection(t){!t||this.selectionLimit&&!t.selected&&this.data.length>=this.selectionLimit||(t.selected=!t.selected,this.updateOptions(),this.selection.emit({option:t}))}updateOptions(){this.data.splice(0,this.data.length),this.options.forEach(t=>{t.selected&&this.data.push(t.name)}),this.updateFilter()}updateFilter(){this.filteredOptions=this.options.filter(t=>t.name.includes(this.filter.value))}forceOptionsToReflectData(){this.options.forEach(t=>{-1!==this.data.indexOf(t.name)&&(t.selected=!0)})}ngOnChanges(){this.filter&&this.updateFilter(),this.options&&this.data&&0!==this.data.length&&this.forceOptionsToReflectData()}selectOption(){0===this.filteredOptions.length?this.addCustomOption():(this.triggerSelection(this.filteredOptions[0]),this.resetFilter())}addCustomOption(){this.isCreatable()&&(this.addOption(this.filter.value),this.resetFilter())}isCreatable(){return this.customBadges&&this.filter.valid&&this.filter.value.length>0&&this.filteredOptions.every(t=>t.name!==this.filter.value)}resetFilter(){this.filter.setValue(""),this.updateFilter()}removeItem(t){this.triggerSelection(this.options.find(e=>e.name===t&&e.selected))}}},woSy:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("f95s"),i=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s},s=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=function(){function t(){}return t.prototype.onDrop=function(t){this.node.mouseAction("drop",t.event,{from:t.element,to:{parent:this.node,index:this.dropIndex}})},t.prototype.allowDrop=function(t,e){return this.node.options.allowDrop(t,{parent:this.node,index:this.dropIndex},e)},i([Object(a.Input)(),s("design:type",r.a)],t.prototype,"node",void 0),i([Object(a.Input)(),s("design:type",Number)],t.prototype,"dropIndex",void 0),i([Object(a.Component)({selector:"TreeNodeDropSlot, tree-node-drop-slot",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <div\n      class="node-drop-slot"\n      (treeDrop)="onDrop($event)"\n      [treeAllowDrop]="allowDrop.bind(this)"\n      [allowDragoverStyling]="true">\n    </div>\n  '})],t)}()},wrZu:function(t,e,n){var a=n("+K+b"),r=n("XYm9"),i=n("b2z7"),s=n("otv/"),o=n("yP5f");t.exports=function(t,e,n){var u=t.constructor;switch(e){case"[object ArrayBuffer]":return a(t);case"[object Boolean]":case"[object Date]":return new u(+t);case"[object DataView]":return r(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return o(t,n);case"[object Map]":return new u;case"[object Number]":case"[object String]":return new u(t);case"[object RegExp]":return i(t);case"[object Set]":return new u;case"[object Symbol]":return s(t)}}},x38r:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t.bold="bold",t.sparkline="sparkline",t.perSecond="perSecond",t.checkIcon="checkIcon",t.routerLink="routerLink",t.executing="executing",t.classAdding="classAdding",t.badge="badge",t.map="map",t.truncate="truncate",t}({})},x6pH:function(t,e,n){!function(t){"use strict";t.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".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",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(t){return 2===t?"שעתיים":t+" שעות"},d:"יום",dd:function(t){return 2===t?"יומיים":t+" ימים"},M:"חודש",MM:function(t){return 2===t?"חודשיים":t+" חודשים"},y:"שנה",yy:function(t){return 2===t?"שנתיים":t%10==0&&10!==t?t+" שנה":t+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(t){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(t)},meridiem:function(t,e,n){return t<5?"לפנות בוקר":t<10?"בבוקר":t<12?n?'לפנה"צ':"לפני הצהריים":t<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n("wd/R"))},xDBR:function(t,e){t.exports=!1},xSw7:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("Fgil"),i=n("aXbf"),s=n("978R"),o=n("z/SZ"),u=n("2uy1");n("GgAd"),n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return c}));var d=a["ɵcrt"]({encapsulation:0,styles:[[".bg-info[_ngcontent-%COMP%]{background-color:#2b99a8!important}.bg-freespace[_ngcontent-%COMP%]{background-color:#d1d1d1!important}.progress[_ngcontent-%COMP%]{height:20px;position:relative;margin-bottom:0}.progress[_ngcontent-%COMP%]   div.progress-bar[_ngcontent-%COMP%]{position:static}.progress[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{position:absolute;display:block;width:100%;color:#000;font-weight:400}"]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,14,"table",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Used: "])),(t()(),a["ɵeld"](4,0,null,null,3,"td",[["class","text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,[" ",""])),a["ɵppd"](7,1),(t()(),a["ɵeld"](8,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Free: "])),(t()(),a["ɵeld"](11,0,null,null,3,"td",[["class","'text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](12,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](13,null,["",""])),a["ɵppd"](14,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,6,0,t(e,7,0,a["ɵnov"](e.parent,0),n.usedBytes));t(e,6,0,r);var i=a["ɵunv"](e,13,0,t(e,14,0,a["ɵnov"](e.parent,0),n.freeBytes));t(e,13,0,i)}))}function c(t){return a["ɵvid"](0,[a["ɵpid"](0,r.a,[i.a]),(t()(),a["ɵand"](0,[["usageTooltipTpl",2]],null,0,null,l)),(t()(),a["ɵeld"](2,16777216,null,null,5,"div",[["class","progress"],["data-placement","left"]],null,null,null,null,null)),a["ɵdid"](3,212992,null,0,s.c,[a.ViewContainerRef,o.a,s.a,a.ElementRef,a.Renderer2,u.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(t()(),a["ɵeld"](4,0,null,null,2,"div",[["class","progress-bar bg-info"],["role","progressbar"]],[[4,"width",null]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,["","%"])),(t()(),a["ɵeld"](7,0,null,null,0,"div",[["class","progress-bar bg-freespace"],["role","progressbar"]],[[4,"width",null]],null,null,null,null))],(function(t,e){t(e,3,0,a["ɵnov"](e,1),"left")}),(function(t,e){var n=e.component;t(e,4,0,n.usedPercentage+"%"),t(e,6,0,n.usedPercentage),t(e,7,0,n.freePercentage+"%")}))}},xTzq:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i}));var a=n("LvDl");function r(...t){switch(t.length){case 1:return s.apply(void 0,t);case 3:return o.apply(void 0,t);default:throw new Error}}function i(t,e,n){const a=`__ignore_${e}`;Array.isArray(t[a])?t[a].push(n):t[a]=[n]}function s(t){for(const e of Object.getOwnPropertyNames(t.prototype)){const n=Object.getOwnPropertyDescriptor(t.prototype,e),a="constructor"===e;n.value instanceof Function&&!a&&(o(t.prototype,e,n),Object.defineProperty(t.prototype,e,n))}}function o(t,e,n){void 0===n&&(n=Object.getOwnPropertyDescriptor(t,e));const r=n.value;n.value=function(){const n=`__ignore_${e}`,i=t[n]||[],s=[];for(let t=0;t<arguments.length;t++)s[t]=a.isString(arguments[t])&&-1===i.indexOf(t)?encodeURIComponent(arguments[t]):arguments[t];const o=r.apply(this,s);return o}}},xYSL:function(t,e){t.exports=function(t,e){return t.has(e)}},xbPD:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t=null){return e=>e.lift(new i(t))}class i{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new s(t,this.defaultValue))}}class s extends a.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()}}},xgIS:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("HDdC"),r=n("DH7j"),i=n("n6bG"),s=n("lJxs");function o(t,e,n,u){return Object(i.a)(n)&&(u=n,n=void 0),u?o(t,e,n).pipe(Object(s.a)(t=>Object(r.a)(t)?u(...t):u(t))):new a.a(a=>{!function t(e,n,a,r,i){let s;if(function(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(e)){const t=e;e.addEventListener(n,a,i),s=()=>t.removeEventListener(n,a,i)}else if(function(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(e)){const t=e;e.on(n,a),s=()=>t.off(n,a)}else if(function(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(e)){const t=e;e.addListener(n,a),s=()=>t.removeListener(n,a)}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(let s=0,o=e.length;s<o;s++)t(e[s],n,a,r,i)}r.add(s)}(t,e,(function(t){a.next(arguments.length>1?Array.prototype.slice.call(arguments):t)}),a,n)})}},"xj/R":function(t,e,n){"use strict";function a(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function r(t){return"string"==typeof t}function i(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t){return t&&t.getTime&&!isNaN(t.getTime())}function o(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function u(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function d(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function l(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function c(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function f(t){return void 0===t}function h(t){const e=+t;let n=0;return 0!==e&&isFinite(e)&&(n=a(e)),n}n.d(e,"a",(function(){return $e})),n.d(e,"b",(function(){return Je})),n.d(e,"c",(function(){return Jt})),n.d(e,"d",(function(){return Tt})),n.d(e,"e",(function(){return nn})),n.d(e,"f",(function(){return xe})),n.d(e,"g",(function(){return an})),n.d(e,"h",(function(){return R})),n.d(e,"i",(function(){return L})),n.d(e,"j",(function(){return E})),n.d(e,"k",(function(){return Qt})),n.d(e,"l",(function(){return k})),n.d(e,"m",(function(){return rn})),n.d(e,"n",(function(){return Re})),n.d(e,"o",(function(){return d})),n.d(e,"p",(function(){return Ae})),n.d(e,"q",(function(){return i})),n.d(e,"r",(function(){return s})),n.d(e,"s",(function(){return ke})),n.d(e,"t",(function(){return D})),n.d(e,"u",(function(){return Ee})),n.d(e,"v",(function(){return q})),n.d(e,"w",(function(){return P})),n.d(e,"x",(function(){return M})),n.d(e,"y",(function(){return sn})),n.d(e,"z",(function(){return on})),n.d(e,"A",(function(){return un})),n.d(e,"B",(function(){return Ie})),n.d(e,"C",(function(){return hn})),n.d(e,"D",(function(){return gn})),n.d(e,"E",(function(){return bt})),n.d(e,"F",(function(){return pt})),n.d(e,"G",(function(){return _t})),n.d(e,"H",(function(){return Ne})),n.d(e,"I",(function(){return pn}));const g={},p={date:"day",hour:"hours",minute:"minutes",second:"seconds",millisecond:"milliseconds"};function b(t,e){const n=t.toLowerCase();let a=t;n in p&&(a=p[n]),g[n]=g[`${n}s`]=g[e]=a}function m(t){return r(t)?g[t]||g[t.toLowerCase()]:void 0}function y(t,e,n){const a=`${Math.abs(t)}`;return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}let v={},x={};const _=/(\[[^\[]*\])|(\\)?([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;function T(t,e,n,a){t&&(x[t]=a),e&&(x[e[0]]=function(){return y(a.apply(null,arguments),e[1],e[2])}),n&&(x[n]=function(e,n){return n.locale.ordinal(a.apply(null,arguments),t)})}function O(t,e,n){const a=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(a.getUTCFullYear())&&a.setUTCFullYear(t),a}function w(t,e=0,n=1,a=0,r=0,i=0,s=0){const o=new Date(t,e,n,a,r,i,s);return t<100&&t>=0&&isFinite(o.getFullYear())&&o.setFullYear(t),o}function S(t,e=!1){return e?t.getUTCHours():t.getHours()}function I(t,e=!1){return e?t.getUTCMinutes():t.getMinutes()}function N(t,e=!1){return e?t.getUTCSeconds():t.getSeconds()}function C(t,e=!1){return e?t.getUTCMilliseconds():t.getMilliseconds()}function R(t,e=!1){return e?t.getUTCDay():t.getDay()}function A(t,e=!1){return e?t.getUTCDate():t.getDate()}function k(t,e=!1){return e?t.getUTCMonth():t.getMonth()}function E(t,e=!1){return e?t.getUTCFullYear():t.getFullYear()}function L(t){return w(t.getFullYear(),t.getMonth(),1,t.getHours(),t.getMinutes(),t.getSeconds())}function D(t,e){return t.getDay()===e}function P(t,e){return!(!t||!e)&&M(t,e)&&k(t)===k(e)}function M(t,e){return!(!t||!e)&&E(t)===E(e)}function q(t,e){return!(!t||!e)&&M(t,e)&&P(t,e)&&A(t)===A(e)}const j=/\d/,F=/\d\d/,G=/\d{3}/,V=/\d{4}/,z=/[+-]?\d{6}/,B=/\d\d?/,Y=/\d\d\d\d?/,H=/\d\d\d\d\d\d?/,U=/\d{1,3}/,W=/\d{1,4}/,K=/[+-]?\d{1,6}/,$=/\d+/,Z=/[+-]?\d+/,J=/Z|[+-]\d\d(?::?\d\d)?/gi,Q=/[+-]?\d+(\.\d{1,3})?/,X=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,tt={};function et(t,e,n){tt[t]=o(e)?e:function(t,a){return t&&n?n:e}}function nt(t,e){return l(tt,t)?tt[t](!1,e):new RegExp(at(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(t,e,n,a,r)=>e||n||a||r)))}function at(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const rt={};function it(t,e){const n=r(t)?[t]:t;let a=e;if(u(e)&&(a=function(t,n,a){return n[e]=h(t),a}),d(n)&&o(a)){let t;for(t=0;t<n.length;t++)rt[n[t]]=a}}function st(t,e){it(t,(function(t,n,a,r){return a._w=a._w||{},e(t,a._w,a,r)}))}function ot(t,e,n){return null!=e&&l(rt,t)&&rt[t](e,n._a,n,t),n}function ut(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function dt(t,e){return E(t,e.isUTC).toString()}function lt(t){return h(t)+(h(t)>68?1900:2e3)}function ct(t){return ft(t)?366:365}function ft(t){return t%4==0&&t%100!=0||t%400==0}function ht(t,e){if(isNaN(t)||isNaN(e))return NaN;const n=(e%12+12)%12;return 1===n?ft(t+(e-n)/12)?29:28:31-n%7%2}const gt={year:0,month:0,day:0,hour:0,minute:0,seconds:0};function pt(t,e){const n=Object.assign({},gt,e),a=t.getFullYear()+(n.year||0),r=t.getMonth()+(n.month||0);let i=t.getDate()+(n.day||0);return n.month&&!n.day&&(i=Math.min(i,ht(a,r))),w(a,r,i,t.getHours()+(n.hour||0),t.getMinutes()+(n.minute||0),t.getSeconds()+(n.seconds||0))}function bt(t,e){return w(mt(t.getFullYear(),e.year),mt(t.getMonth(),e.month),1,mt(t.getHours(),e.hour),mt(t.getMinutes(),e.minute),mt(t.getSeconds(),e.seconds),mt(t.getMilliseconds(),e.milliseconds))}function mt(t,e){return u(e)?e:t}function yt(t,e,n){const a=Math.min(A(t),ht(E(t),e));return n?t.setUTCMonth(e,a):t.setMonth(e,a),t}function vt(t,e,n){return n?t.setUTCDate(e):t.setDate(e),t}function xt(t){return new Date(t.getTime())}function _t(t,e,n){const a=xt(t);switch(e){case"year":yt(a,0,n);case"quarter":case"month":vt(a,1,n);case"week":case"isoWeek":case"day":case"date":!function(t,e,n){n?t.setUTCHours(0):t.setHours(0)}(a,0,n);case"hours":!function(t,e,n){n?t.setUTCMinutes(0):t.setMinutes(0)}(a,0,n);case"minutes":!function(t,e,n){n?t.setUTCSeconds(0):t.setSeconds(0)}(a,0,n);case"seconds":!function(t,e,n){n?t.setUTCMilliseconds(0):t.setMilliseconds(0)}(a,0,n)}return"week"===e&&function(t,e,n={}){je(t,0-ze(t,n.locale,n.isUTC),"day")}(a,0,{isUTC:n}),"isoWeek"===e&&function(t,e,n={}){const a=function(t,e=Qt()){return r(t)?e.weekdaysParse(t)%7||7:u(t)&&isNaN(t)?null:t}(1,n.locale);Ge(t,Ve(t)%7?a:a-7)}(a),"quarter"===e&&yt(a,3*Math.floor(k(a,n)/3),n),a}function Tt(t,e,n){let a=e;return"date"===a&&(a="day"),function(t,e,n,a){return Fe(t,Pe(1,"milliseconds"),-1,a)}(je(_t(t,a,n),1,"isoWeek"===a?"week":a,n),0,0,n)}function Ot(t,e){const n=+_t(t,"day",e),a=+_t(t,"year",e);return Math.round((n-a)/864e5)+1}function wt(t,e,n){const a=e-n+7;return-(O(t,0,a).getUTCDay()-e+7)%7+a-1}function St(t,e,n,a){const r=wt(E(t,a),e,n),i=Math.floor((Ot(t,a)-r-1)/7)+1;let s,o;return i<1?(o=E(t,a)-1,s=i+It(o,e,n)):i>It(E(t,a),e,n)?(s=i-It(E(t,a),e,n),o=E(t,a)+1):(o=E(t,a),s=i),{week:s,year:o}}function It(t,e,n){const a=wt(t,e,n),r=wt(t+1,e,n);return(ct(t)-a+r)/7}const Nt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Ct="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Rt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),At="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),kt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Et={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"},Lt=X,Dt=X;class Pt{constructor(t){t&&this.set(t)}set(t){let e;for(e in t){if(!t.hasOwnProperty(e))continue;const n=t[e];this[o(n)?e:`_${e}`]=n}this._config=t}calendar(t,e,n){const a=this._calendar[t]||this._calendar.sameElse;return o(a)?a.call(null,e,n):a}longDateFormat(t){const e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])}get invalidDate(){return this._invalidDate}set invalidDate(t){this._invalidDate=t}ordinal(t,e){return this._ordinal.replace("%d",t.toString(10))}preparse(t){return t}preinput(t){return t}postvalue(t){return t}postformat(t){return t}relativeTime(t,e,n,a){const r=this._relativeTime[n];return o(r)?r(t,e,n,a):r.replace(/%d/i,t.toString(10))}pastFuture(t,e){const n=this._relativeTime[t>0?"future":"past"];return o(n)?n(e):n.replace(/%s/i,e)}months(t,e,n=!1){if(!t)return d(this._months)?this._months:this._months.standalone;if(d(this._months))return this._months[k(t,n)];const a=(this._months.isFormat||Nt).test(e)?"format":"standalone";return this._months[a][k(t,n)]}monthsShort(t,e,n=!1){if(!t)return d(this._monthsShort)?this._monthsShort:this._monthsShort.standalone;if(d(this._monthsShort))return this._monthsShort[k(t,n)];const a=Nt.test(e)?"format":"standalone";return this._monthsShort[a][k(t,n)]}monthsParse(t,e,n){let a,r,i;if(this._monthsParseExact)return this.handleMonthStrictParse(t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=new Date(Date.UTC(2e3,i)),n&&!this._longMonthsParse[i]){const t=this.months(a,"",!0).replace(".",""),e=this.monthsShort(a,"",!0).replace(".","");this._longMonthsParse[i]=new RegExp(`^${t}$`,"i"),this._shortMonthsParse[i]=new RegExp(`^${e}$`,"i")}if(n||this._monthsParse[i]||(r=`^${this.months(a,"",!0)}|^${this.monthsShort(a,"",!0)}`,this._monthsParse[i]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(n&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!n&&this._monthsParse[i].test(t))return i}}monthsRegex(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsStrictRegex:this._monthsRegex):(l(this,"_monthsRegex")||(this._monthsRegex=Dt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}monthsShortRegex(t){return this._monthsParseExact?(l(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsShortStrictRegex:this._monthsShortRegex):(l(this,"_monthsShortRegex")||(this._monthsShortRegex=Lt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}week(t,e){return St(t,this._week.dow,this._week.doy,e).week}firstDayOfWeek(){return this._week.dow}firstDayOfYear(){return this._week.doy}weekdays(t,e,n){if(!t)return d(this._weekdays)?this._weekdays:this._weekdays.standalone;if(d(this._weekdays))return this._weekdays[R(t,n)];const a=this._weekdays.isFormat.test(e)?"format":"standalone";return this._weekdays[a][R(t,n)]}weekdaysMin(t,e,n){return t?this._weekdaysMin[R(t,n)]:this._weekdaysMin}weekdaysShort(t,e,n){return t?this._weekdaysShort[R(t,n)]:this._weekdaysShort}weekdaysParse(t,e,n){let a,r;if(this._weekdaysParseExact)return this.handleWeekStrictParse(t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){const i=Ge(new Date(Date.UTC(2e3,1)),a,null,!0);if(n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp(`^${this.weekdays(i,"",!0).replace(".",".?")}$`,"i"),this._shortWeekdaysParse[a]=new RegExp(`^${this.weekdaysShort(i,"",!0).replace(".",".?")}$`,"i"),this._minWeekdaysParse[a]=new RegExp(`^${this.weekdaysMin(i,"",!0).replace(".",".?")}$`,"i")),this._weekdaysParse[a]||(r=`^${this.weekdays(i,"",!0)}|^${this.weekdaysShort(i,"",!0)}|^${this.weekdaysMin(i,"",!0)}`,this._weekdaysParse[a]=new RegExp(r.replace(".",""),"i")),!(d(this._fullWeekdaysParse)&&d(this._shortWeekdaysParse)&&d(this._minWeekdaysParse)&&d(this._weekdaysParse)))return;if(n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}}weekdaysRegex(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=X),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}weekdaysShortRegex(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=X),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}weekdaysMinRegex(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=X),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}isPM(t){return"p"===t.toLowerCase().charAt(0)}meridiem(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}formatLongDate(t){this._longDateFormat=this._longDateFormat?this._longDateFormat:Et;const e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,t=>t.slice(1)),this._longDateFormat[t])}handleMonthStrictParse(t,e,n){const a=t.toLocaleLowerCase();let r,i,s;if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)s=new Date(2e3,r),this._shortMonthsParse[r]=this.monthsShort(s,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(s,"").toLocaleLowerCase();return n?"MMM"===e?(i=this._shortMonthsParse.indexOf(a),-1!==i?i:null):(i=this._longMonthsParse.indexOf(a),-1!==i?i:null):"MMM"===e?(i=this._shortMonthsParse.indexOf(a),-1!==i?i:(i=this._longMonthsParse.indexOf(a),-1!==i?i:null)):(i=this._longMonthsParse.indexOf(a),-1!==i?i:(i=this._shortMonthsParse.indexOf(a),-1!==i?i:null))}handleWeekStrictParse(t,e,n){let a;const r=t.toLocaleLowerCase();if(!this._weekdaysParse){let t;for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],t=0;t<7;++t){const e=Ge(new Date(Date.UTC(2e3,1)),t,null,!0);this._minWeekdaysParse[t]=this.weekdaysMin(e).toLocaleLowerCase(),this._shortWeekdaysParse[t]=this.weekdaysShort(e).toLocaleLowerCase(),this._weekdaysParse[t]=this.weekdays(e,"").toLocaleLowerCase()}}if(d(this._weekdaysParse)&&d(this._shortWeekdaysParse)&&d(this._minWeekdaysParse))return n?"dddd"===e?(a=this._weekdaysParse.indexOf(r),-1!==a?a:null):"ddd"===e?(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:null):(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null):"dddd"===e?(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null))):"ddd"===e?(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null))):(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:null)))}computeMonthsParse(){const t=[],e=[],n=[];let a,r;for(r=0;r<12;r++)a=new Date(2e3,r),t.push(this.monthsShort(a,"")),e.push(this.months(a,"")),n.push(this.months(a,"")),n.push(this.monthsShort(a,""));for(t.sort(Mt),e.sort(Mt),n.sort(Mt),r=0;r<12;r++)t[r]=at(t[r]),e[r]=at(e[r]);for(r=0;r<24;r++)n[r]=at(n[r]);this._monthsRegex=new RegExp(`^(${n.join("|")})`,"i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(`^(${e.join("|")})`,"i"),this._monthsShortStrictRegex=new RegExp(`^(${t.join("|")})`,"i")}computeWeekdaysParse(){const t=[],e=[],n=[],a=[];let r;for(r=0;r<7;r++){const i=Ge(new Date(Date.UTC(2e3,1)),r,null,!0),s=this.weekdaysMin(i),o=this.weekdaysShort(i),u=this.weekdays(i);t.push(s),e.push(o),n.push(u),a.push(s),a.push(o),a.push(u)}for(t.sort(Mt),e.sort(Mt),n.sort(Mt),a.sort(Mt),r=0;r<7;r++)e[r]=at(e[r]),n[r]=at(n[r]),a[r]=at(a[r]);this._weekdaysRegex=new RegExp(`^(${a.join("|")})`,"i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(`^(${n.join("|")})`,"i"),this._weekdaysShortStrictRegex=new RegExp(`^(${e.join("|")})`,"i"),this._weekdaysMinStrictRegex=new RegExp(`^(${t.join("|")})`,"i")}}function Mt(t,e){return e.length-t.length}const qt={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:Et,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:Ct,monthsShort:Rt,week:{dow:0,doy:6},weekdays:At,weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysShort:kt,meridiemParse:/[ap]\.?m?\.?/i};function jt(t,e,n){const a=Math.min(t.length,e.length),r=Math.abs(t.length-e.length);let i,s=0;for(i=0;i<a;i++)(n&&t[i]!==e[i]||!n&&h(t[i])!==h(e[i]))&&s++;return s+r}function Ft(t,e){T(null,[t,t.length,!1],null,e)}function Gt(t,e){return zt(t,e.locale).toString()}function Vt(t){return Bt(t).toString()}function zt(t,e=Qt(),n){return St(t,e.firstDayOfWeek(),e.firstDayOfYear(),n).year}function Bt(t,e){return St(t,1,4,e).year}function Yt(t,e){T(t,null,null,(function(t,n){let a=function(t,e={}){return e._isUTC?e._offset||0:function(t){return 15*-Math.round(t.getTimezoneOffset()/15)}(t)}(t,{_isUTC:n.isUTC,_offset:n.offset}),r="+";return a<0&&(a=-a,r="-"),r+y(~~(a/60),2)+e+y(~~a%60,2)}))}const Ht=/([\+\-]|\d\d)/gi,Ut={},Wt={};let Kt;function $t(t){return t?t.toLowerCase().replace("_","-"):t}function Zt(t,e){let n;return t&&(f(e)?n=Qt(t):r(t)&&(n=Jt(t,e)),n&&(Kt=n)),Kt&&Kt._abbr}function Jt(t,e){if(null===e)return delete Ut[t],Kt=Qt("en"),null;if(!e)return;let n=qt;if(e.abbr=t,null!=e.parentLocale){if(null==Ut[e.parentLocale])return Wt[e.parentLocale]||(Wt[e.parentLocale]=[]),Wt[e.parentLocale].push({name:t,config:e}),null;n=Ut[e.parentLocale]._config}return Ut[t]=new Pt(function(t,e){const n=Object.assign({},t);for(const a in e)l(e,a)&&(c(t[a])&&c(e[a])?(n[a]={},Object.assign(n[a],t[a]),Object.assign(n[a],e[a])):null!=e[a]?n[a]=e[a]:delete n[a]);for(const a in t)l(t,a)&&!l(e,a)&&c(t[a])&&(n[a]=Object.assign({},n[a]));return n}(n,e)),Wt[t]&&Wt[t].forEach((function(t){Jt(t.name,t.config)})),Zt(t),Ut[t]}function Qt(t){return Ut.en||(Zt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal(t){const e=t%10;return t+(1===h(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),T("w",["ww",2,!1],"wo",(function(t,e){return function(t,e=Qt(),n){return e.week(t,void 0)}(t,e.locale).toString(10)})),T("W",["WW",2,!1],"Wo",(function(t){return function(t,e){return St(t,1,4,void 0).week}(t).toString(10)})),b("week","w"),b("isoWeek","W"),et("w",B),et("ww",B,F),et("W",B),et("WW",B,F),st(["w","ww","W","WW"],(function(t,e,n,a){return e[a.substr(0,1)]=h(t),n})),T(null,["gg",2,!1],null,(function(t,e){return(zt(t,e.locale)%100).toString()})),T(null,["GG",2,!1],null,(function(t){return(Bt(t)%100).toString()})),Ft("gggg",Gt),Ft("ggggg",Gt),Ft("GGGG",Vt),Ft("GGGGG",Vt),b("weekYear","gg"),b("isoWeekYear","GG"),et("G",Z),et("g",Z),et("GG",B,F),et("gg",B,F),et("GGGG",W,V),et("gggg",W,V),et("GGGGG",K,z),et("ggggg",K,z),st(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,a){return e[a.substr(0,2)]=h(t),n})),st(["gg","GG"],(function(t,e,n,a){return e[a]=lt(t),n})),T("Y",null,null,(function(t,e){const n=E(t,e.isUTC);return n<=9999?n.toString(10):`+${n}`})),T(null,["YY",2,!1],null,(function(t,e){return(E(t,e.isUTC)%100).toString(10)})),T(null,["YYYY",4,!1],null,dt),T(null,["YYYYY",5,!1],null,dt),T(null,["YYYYYY",6,!0],null,dt),b("year","y"),et("Y",Z),et("YY",B,F),et("YYYY",W,V),et("YYYYY",K,z),et("YYYYYY",K,z),it(["YYYYY","YYYYYY"],0),it("YYYY",(function(t,e,n){return e[0]=2===t.length?lt(t):h(t),n})),it("YY",(function(t,e,n){return e[0]=lt(t),n})),it("Y",(function(t,e,n){return e[0]=parseInt(t,10),n})),T("z",null,null,(function(t,e){return e.isUTC?"UTC":""})),T("zz",null,null,(function(t,e){return e.isUTC?"Coordinated Universal Time":""})),T("X",null,null,(function(t){return function(t){return Math.floor(t.valueOf()/1e3)}(t).toString(10)})),T("x",null,null,(function(t){return t.valueOf().toString(10)})),et("x",Z),et("X",Q),it("X",(function(t,e,n){return n._d=new Date(1e3*parseFloat(t)),n})),it("x",(function(t,e,n){return n._d=new Date(h(t)),n})),T("s",["ss",2,!1],null,(function(t,e){return N(t,e.isUTC).toString(10)})),b("second","s"),et("s",B),et("ss",B,F),it(["s","ss"],5),T("Q",null,"Qo",(function(t,e){return function(t,e=!1){return Math.ceil((k(t,e)+1)/3)}(t,e.isUTC).toString(10)})),b("quarter","Q"),et("Q",j),it("Q",(function(t,e,n){return e[1]=3*(h(t)-1),n})),Yt("Z",":"),Yt("ZZ",""),et("Z",J),et("ZZ",J),it(["Z","ZZ"],(function(t,e,n){return n._useUTC=!0,n._tzm=function(t,e){const n=(e||"").match(t);if(null===n)return null;const a=n[n.length-1].match(Ht)||["-","0","0"],r=60*parseInt(a[1],10)+h(a[2]);return 0===r?0:"+"===a[0]?r:-r}(J,t),n})),T("M",["MM",2,!1],"Mo",(function(t,e){return(k(t,e.isUTC)+1).toString(10)})),T("MMM",null,null,(function(t,e){return e.locale.monthsShort(t,e.format,e.isUTC)})),T("MMMM",null,null,(function(t,e){return e.locale.months(t,e.format,e.isUTC)})),b("month","M"),et("M",B),et("MM",B,F),et("MMM",(function(t,e){return e.monthsShortRegex(t)})),et("MMMM",(function(t,e){return e.monthsRegex(t)})),it(["M","MM"],(function(t,e,n){return e[1]=h(t)-1,n})),it(["MMM","MMMM"],(function(t,e,n,a){const r=n._locale.monthsParse(t,a,n._strict);return null!=r?e[1]=r:ut(n).invalidMonth=!!t,n})),T("m",["mm",2,!1],null,(function(t,e){return I(t,e.isUTC).toString(10)})),b("minute","m"),et("m",B),et("mm",B,F),it(["m","mm"],4),function(){let t;for(T("S",null,null,(function(t,e){return(~~(C(t,e.isUTC)/100)).toString(10)})),T(null,["SS",2,!1],null,(function(t,e){return(~~(C(t,e.isUTC)/10)).toString(10)})),T(null,["SSS",3,!1],null,(function(t,e){return C(t,e.isUTC).toString(10)})),T(null,["SSSS",4,!1],null,(function(t,e){return(10*C(t,e.isUTC)).toString(10)})),T(null,["SSSSS",5,!1],null,(function(t,e){return(100*C(t,e.isUTC)).toString(10)})),T(null,["SSSSSS",6,!1],null,(function(t,e){return(1e3*C(t,e.isUTC)).toString(10)})),T(null,["SSSSSSS",7,!1],null,(function(t,e){return(1e4*C(t,e.isUTC)).toString(10)})),T(null,["SSSSSSSS",8,!1],null,(function(t,e){return(1e5*C(t,e.isUTC)).toString(10)})),T(null,["SSSSSSSSS",9,!1],null,(function(t,e){return(1e6*C(t,e.isUTC)).toString(10)})),b("millisecond","ms"),et("S",U,j),et("SS",U,F),et("SSS",U,G),t="SSSS";t.length<=9;t+="S")et(t,$);function e(t,e,n){return e[6]=h(1e3*parseFloat(`0.${t}`)),n}for(t="S";t.length<=9;t+="S")it(t,e)}(),function(){function t(t,e){return S(t,e)%12||12}function e(t,e){T(t,null,null,(function(t,n){return n.locale.meridiem(S(t,n.isUTC),I(t,n.isUTC),e)}))}function n(t,e){return e._meridiemParse}T("H",["HH",2,!1],null,(function(t,e){return S(t,e.isUTC).toString(10)})),T("h",["hh",2,!1],null,(function(e,n){return t(e,n.isUTC).toString(10)})),T("k",["kk",2,!1],null,(function(t,e){return function(t,e){return S(t,e)||24}(t,e.isUTC).toString(10)})),T("hmm",null,null,(function(e,n){return`${t(e,n.isUTC)}${y(I(e,n.isUTC),2)}`})),T("hmmss",null,null,(function(e,n){return`${t(e,n.isUTC)}${y(I(e,n.isUTC),2)}${y(N(e,n.isUTC),2)}`})),T("Hmm",null,null,(function(t,e){return`${S(t,e.isUTC)}${y(I(t,e.isUTC),2)}`})),T("Hmmss",null,null,(function(t,e){return`${S(t,e.isUTC)}${y(I(t,e.isUTC),2)}${y(N(t,e.isUTC),2)}`})),e("a",!0),e("A",!1),b("hour","h"),et("a",n),et("A",n),et("H",B),et("h",B),et("k",B),et("HH",B,F),et("hh",B,F),et("kk",B,F),et("hmm",Y),et("hmmss",H),et("Hmm",Y),et("Hmmss",H),it(["H","HH"],3),it(["k","kk"],(function(t,e,n){const a=h(t);return e[3]=24===a?0:a,n})),it(["a","A"],(function(t,e,n){return n._isPm=n._locale.isPM(t),n._meridiem=t,n})),it(["h","hh"],(function(t,e,n){return e[3]=h(t),ut(n).bigHour=!0,n})),it("hmm",(function(t,e,n){const a=t.length-2;return e[3]=h(t.substr(0,a)),e[4]=h(t.substr(a)),ut(n).bigHour=!0,n})),it("hmmss",(function(t,e,n){const a=t.length-4,r=t.length-2;return e[3]=h(t.substr(0,a)),e[4]=h(t.substr(a,2)),e[5]=h(t.substr(r)),ut(n).bigHour=!0,n})),it("Hmm",(function(t,e,n){const a=t.length-2;return e[3]=h(t.substr(0,a)),e[4]=h(t.substr(a)),n})),it("Hmmss",(function(t,e,n){const a=t.length-4,r=t.length-2;return e[3]=h(t.substr(0,a)),e[4]=h(t.substr(a,2)),e[5]=h(t.substr(r)),n}))}(),T("DDD",["DDDD",3,!1],"DDDo",(function(t){return Ot(t).toString(10)})),b("dayOfYear","DDD"),et("DDD",U),et("DDDD",G),it(["DDD","DDDD"],(function(t,e,n){return n._dayOfYear=h(t),n})),T("d",null,"do",(function(t,e){return R(t,e.isUTC).toString(10)})),T("dd",null,null,(function(t,e){return e.locale.weekdaysMin(t,e.format,e.isUTC)})),T("ddd",null,null,(function(t,e){return e.locale.weekdaysShort(t,e.format,e.isUTC)})),T("dddd",null,null,(function(t,e){return e.locale.weekdays(t,e.format,e.isUTC)})),T("e",null,null,(function(t,e){return ze(t,e.locale,e.isUTC).toString(10)})),T("E",null,null,(function(t,e){return function(t,e){return R(t,e)||7}(t,e.isUTC).toString(10)})),b("day","d"),b("weekday","e"),b("isoWeekday","E"),et("d",B),et("e",B),et("E",B),et("dd",(function(t,e){return e.weekdaysMinRegex(t)})),et("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),et("dddd",(function(t,e){return e.weekdaysRegex(t)})),st(["dd","ddd","dddd"],(function(t,e,n,a){const r=n._locale.weekdaysParse(t,a,n._strict);return null!=r?e.d=r:ut(n).invalidWeekday=!!t,n})),st(["d","e","E"],(function(t,e,n,a){return e[a]=h(t),n})),T("D",["DD",2,!1],"Do",(function(t,e){return A(t,e.isUTC).toString(10)})),b("date","D"),et("D",B),et("DD",B,F),et("Do",(function(t,e){return e._dayOfMonthOrdinalParse||e._ordinalParse})),it(["D","DD"],2),it("Do",(function(t,e,n){return e[2]=h(t.match(B)[0]),n}))),t?function(t){let e,n,a=0;for(;a<t.length;){const i=$t(t[a]).split("-");let s=i.length;for(e=$t(t[a+1]),e=e?e.split("-"):null;s>0;){if(r=i.slice(0,s).join("-"),Ut[r]||console.error(`Khronos locale error: please load locale "${r}" before using it`),n=Ut[r],n)return n;if(e&&e.length>=s&&jt(i,e,!0)>=s-1)break;s--}a++}var r;return null}(d(t)?t:[t]):Kt}const Xt=["year","quarter","month","week","day","hours","minutes","seconds","milliseconds"],te=Xt.reduce((t,e)=>(t[e]=!0,t),{});function ee(t){return t<0?Math.floor(t):Math.ceil(t)}function ne(t){return 4800*t/146097}function ae(t){return 146097*t/4800}let re=Math.round;function ie(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}class se{constructor(t,e={}){this._data={},this._locale=Qt(),this._locale=e&&e._locale||Qt();const n=t.year||0,r=t.quarter||0,i=t.month||0,s=t.week||0,o=t.day||0,u=t.hours||0,d=t.minutes||0,l=t.seconds||0,c=t.milliseconds||0;return this._isValid=function(t){if(Object.keys(t).some(e=>e in te&&null===t[e]||isNaN(t[e])))return!1;let e=!1;for(let n=0;n<Xt.length;++n)if(t[Xt[n]]){if(e)return!1;t[Xt[n]]!==h(t[Xt[n]])&&(e=!0)}return!0}(t),this._milliseconds=+c+1e3*l+60*d*1e3+1e3*u*60*60,this._days=+o+7*s,this._months=+i+3*r+12*n,function(t){let e=t._milliseconds,n=t._days,r=t._months;const i=t._data;e>=0&&n>=0&&r>=0||e<=0&&n<=0&&r<=0||(e+=864e5*ee(ae(r)+n),n=0,r=0),i.milliseconds=e%1e3;const s=a(e/1e3);i.seconds=s%60;const o=a(s/60);i.minutes=o%60;const u=a(o/60);i.hours=u%24,n+=a(u/24);const d=a(ne(n));r+=d,n-=ee(ae(d));const l=a(r/12);return r%=12,i.day=n,i.month=r,i.year=l,t}(this)}isValid(){return this._isValid}humanize(t){if(!this.isValid())return this.localeData().invalidDate;const e=this.localeData();let n=function(t,e,n){const a=Pe(t).abs(),r=re(a.as("s")),i=re(a.as("m")),s=re(a.as("h")),o=re(a.as("d")),u=re(a.as("M")),d=re(a.as("y")),l=r<=44&&["s",r]||r<45&&["ss",r]||i<=1&&["m"]||i<45&&["mm",i]||s<=1&&["h"]||s<22&&["hh",s]||o<=1&&["d"]||o<26&&["dd",o]||u<=1&&["M"]||u<11&&["MM",u]||d<=1&&["y"]||["yy",d];return ie.apply(null,[l[0],l[1],e,+t>0,n])}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}localeData(){return this._locale}locale(t){return t?(this._locale=Qt(t)||this._locale,this):this._locale._abbr}abs(){const t=Math.abs,e=this._data;return this._milliseconds=t(this._milliseconds),this._days=t(this._days),this._months=t(this._months),e.milliseconds=t(e.milliseconds),e.seconds=t(e.seconds),e.minutes=t(e.minutes),e.hours=t(e.hours),e.month=t(e.month),e.year=t(e.year),this}as(t){if(!this.isValid())return NaN;let e,n;const a=this._milliseconds,r=m(t);if("month"===r||"year"===r)return e=this._days+a/864e5,n=this._months+ne(e),"month"===r?n:n/12;switch(e=this._days+Math.round(ae(this._months)),r){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hours":return 24*e+a/36e5;case"minutes":return 1440*e+a/6e4;case"seconds":return 86400*e+a/1e3;case"milliseconds":return Math.floor(864e5*e)+a;default:throw new Error(`Unknown unit ${r}`)}}valueOf(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*h(this._months/12):NaN}}function oe(t){if(null==t._isValid){const e=ut(t),n=Array.prototype.some.call(e.parsedDateParts,(function(t){return null!=t}));let a=!isNaN(t._d&&t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function ue(t,e){return t._d=new Date(NaN),Object.assign(ut(t),e||{userInvalidated:!0}),t}const de=/^\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)?)?$/,le=/^\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)?)?$/,ce=/Z|[+-]\d\d(?::?\d\d)?/,fe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/,!0],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/,!0],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/,!0],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/,!0],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/,!0],["YYYYMMDD",/\d{8}/,!0],["GGGG[W]WWE",/\d{4}W\d{3}/,!0],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/,!0]],he=[["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/]],ge=/^\/?Date\((\-?\d+)/i,pe={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},be=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function me(t){if(!r(t._i))return t;const e=t._i,n=de.exec(e)||le.exec(e);let a,i,s,o,u,d;if(!n)return t._isValid=!1,t;for(u=0,d=fe.length;u<d;u++)if(fe[u][1].exec(n[1])){i=fe[u][0],a=!1!==fe[u][2];break}if(null==i)return t._isValid=!1,t;if(n[3]){for(u=0,d=he.length;u<d;u++)if(he[u][1].exec(n[3])){s=(n[2]||" ")+he[u][0];break}if(null==s)return t._isValid=!1,t}if(!a&&null!=s)return t._isValid=!1,t;if(n[4]){if(!ce.exec(n[4]))return t._isValid=!1,t;o="Z"}return t._f=i+(s||"")+(o||""),Se(t)}function ye(t){const e=parseInt(t,10);return e<=49?e+2e3:e}function ve(t){if(!r(t._i))return t;const e=be.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(!e)return function(t){return t._isValid=!1,t}(t);const n=function(t,e,n,a,r,i){const s=[ye(t),Rt.indexOf(e),parseInt(n,10),parseInt(a,10),parseInt(r,10)];return i&&s.push(parseInt(i,10)),s}(e[4],e[3],e[2],e[5],e[6],e[7]);return function(t,e,n){return!t||kt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(ut(n).weekdayMismatch=!0,n._isValid=!1,!1)}(e[1],n,t)?(t._a=n,t._tzm=function(t,e,n){if(t)return pe[t];if(e)return 0;{const t=parseInt(n,10),e=t%100;return(t-e)/100*60+e}}(e[8],e[9],e[10]),t._d=O.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),ut(t).rfc2822=!0,t):t}function xe(t,e,n,a,r=0){const i=Qt(n||"en");if(!i)throw new Error(`Locale "${n}" is not defined, please add it with "defineLocale(...)"`);const u=function(t,e,n,a,r=0){if(!s(t))return n.invalidDate;const i=_e(e,n);return v[i]=v[i]||function(t){const e=t.match(_),n=e.length,a=new Array(n);for(let i=0;i<n;i++)a[i]=x[e[i]]?x[e[i]]:(r=e[i]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");var r;return function(e,r,i,s=0){const u=r.postvalue(e);let d="";for(let l=0;l<n;l++)d+=o(a[l])?a[l].call(null,u,{format:t,locale:r,isUTC:i,offset:s}):a[l];return d}}(i),v[i](t,n,a,r)}(t,e||(a?"YYYY-MM-DDTHH:mm:ss[Z]":"YYYY-MM-DDTHH:mm:ssZ"),i,a,r);return u?i.postformat(u):u}function _e(t,e){let n=t,a=5;const r=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,i=t=>e.formatLongDate(t)||t;for(r.lastIndex=0;a>=0&&r.test(n);)n=n.replace(r,i),r.lastIndex=0,a-=1;return n}function Te(t,e,n){return null!=t?t:null!=e?e:n}function Oe(t){const e=[];let n,a,r,i,s;if(t._d)return t;for(r=function(t){const e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){let e,n,a,r,i,s,o,u;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)i=1,s=4,n=Te(e.GG,t._a[0],St(new Date,1,4).year),a=Te(e.W,1),r=Te(e.E,1),(r<1||r>7)&&(u=!0);else{i=t._locale._week.dow,s=t._locale._week.doy;const o=St(new Date,i,s);n=Te(e.gg,t._a[0],o.year),a=Te(e.w,o.week),null!=e.d?(r=e.d,(r<0||r>6)&&(u=!0)):null!=e.e?(r=e.e+i,(e.e<0||e.e>6)&&(u=!0)):r=i}a<1||a>It(n,i,s)?ut(t)._overflowWeeks=!0:null!=u?ut(t)._overflowWeekday=!0:(o=function(t,e,n,a,r){const i=1+7*(e-1)+(7+n-a)%7+wt(t,a,r);let s,o;return i<=0?(s=t-1,o=ct(s)+i):i>ct(t)?(s=t+1,o=i-ct(t)):(s=t,o=i),{year:s,dayOfYear:o}}(n,a,r,i,s),t._a[0]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(s=Te(t._a[0],r[0]),(t._dayOfYear>ct(s)||0===t._dayOfYear)&&(ut(t)._overflowDayOfYear=!0),a=new Date(Date.UTC(s,0,t._dayOfYear)),t._a[1]=a.getUTCMonth(),t._a[2]=a.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=e[n]=r[n];for(;n<7;n++)t._a[n]=e[n]=null==t._a[n]?2===n?1:0:t._a[n];return 24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?O:w).apply(null,e),i=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==i&&(ut(t).weekdayMismatch=!0),t}function we(t){let e;const n=t._a;return n&&-2===ut(t).overflow&&(e=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ht(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,ut(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),ut(t)._overflowWeeks&&-1===e&&(e=7),ut(t)._overflowWeekday&&-1===e&&(e=8),ut(t).overflow=e),t}function Se(t){if("ISO_8601"===t._f)return me(t);if("RFC_2822"===t._f)return ve(t);if(t._a=[],ut(t).empty=!0,d(t._f)||!t._i&&0!==t._i)return t;let e=t._i.toString(),n=0;const a=e.length,r=_e(t._f,t._locale).match(_)||[];let i,s,o,u;for(i=0;i<r.length;i++)s=r[i],o=(e.match(nt(s,t._locale))||[])[0],o&&(u=e.substr(0,e.indexOf(o)),u.length>0&&ut(t).unusedInput.push(u),e=e.slice(e.indexOf(o)+o.length),n+=o.length),x[s]?(o?ut(t).empty=!1:ut(t).unusedTokens.push(s),ot(s,o,t)):t._strict&&!o&&ut(t).unusedTokens.push(s);return ut(t).charsLeftOver=a-n,e.length>0&&ut(t).unusedInput.push(e),t._a[3]<=12&&!0===ut(t).bigHour&&t._a[3]>0&&(ut(t).bigHour=void 0),ut(t).parsedDateParts=t._a.slice(0),ut(t).meridiem=t._meridiem,t._a[3]=function(t,e,n){let a=e;if(null==n)return a;if(null!=t.meridiemHour)return t.meridiemHour(a,n);if(null==t.isPM)return a;const r=t.isPM(n);return r&&a<12&&(a+=12),r||12!==a||(a=0),a}(t._locale,t._a[3],t._meridiem),Oe(t),we(t)}function Ie(t,e,n,a,s){return i(t)?t:function(t,e,n,a,s){const o={};let h=t;return(c(h)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;let e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(h)||d(h)&&0===h.length)&&(h=void 0),o._useUTC=o._isUTC=s,o._l=n,o._i=h,o._f=e,o._strict=a,function(t){const e=we(function(t){let e=t._i;const n=t._f;return t._locale=t._locale||Qt(t._l),null===e||void 0===n&&""===e?ue(t,{nullInput:!0}):(r(e)&&(t._i=e=t._locale.preparse(e)),i(e)?(t._d=xt(e),t):(d(n)?function(t){let e,n,a,r,i;if(!t._f||0===t._f.length)return ut(t).invalidFormat=!0,ue(t);for(i=0;i<t._f.length;i++)r=0,e=Object.assign({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[i],Se(e),oe(e)&&(r+=ut(e).charsLeftOver,r+=10*ut(e).unusedTokens.length,ut(e).score=r,(null==a||r<a)&&(a=r,n=e));Object.assign(t,n||e)}(t):n?Se(t):function(t){const e=t._i;if(f(e))t._d=new Date;else if(i(e))t._d=xt(e);else if(r(e))!function(t){if(!r(t._i))return t;const e=ge.exec(t._i);null!==e?t._d=new Date(+e[1]):(me(t),!1!==t._isValid||(delete t._isValid,ve(t),!1!==t._isValid||(delete t._isValid,ue(t))))}(t);else if(d(e)&&e.length){const n=e.slice(0);t._a=n.map(t=>r(t)?parseInt(t,10):t),Oe(t)}else if(c(e))!function(t){if(t._d)return t;const e=t._i;if(c(e)){const n=function(t){const e={};let n,a;for(a in t)l(t,a)&&(n=m(a),n&&(e[n]=t[a]));return e}(e);t._a=[n.year,n.month,n.day,n.hours,n.minutes,n.seconds,n.milliseconds].map(t=>r(t)?parseInt(t,10):t)}Oe(t)}(t);else{if(!u(e))return ue(t);t._d=new Date(e)}}(t),oe(t)||(t._d=null),t))}(t));return e._d=new Date(null!=e._d?e._d.getTime():NaN),oe(Object.assign({},e,{_isValid:null}))||(e._d=new Date(NaN)),e}(o)}(t,e,n,a,s)._d}function Ne(t){return t instanceof Date?new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()):null}function Ce(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Re(t,e,n="milliseconds"){return!(!t||!e)&&("milliseconds"===n?t.valueOf()>e.valueOf():e.valueOf()<_t(t,n).valueOf())}function Ae(t,e,n="milliseconds"){return!(!t||!e)&&("milliseconds"===n?t.valueOf()<e.valueOf():Tt(t,n).valueOf()<e.valueOf())}function ke(t,e){return!(void 0===e||!e||!e.length)&&e.some(e=>e===t.getDay())}function Ee(t,e,n="milliseconds"){if(!t||!e)return!1;if("milliseconds"===n)return t.valueOf()===e.valueOf();const a=e.valueOf();return _t(t,n).valueOf()<=a&&a<=Tt(t,n).valueOf()}const Le=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,De=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Pe(t,e,n={}){const a=function(t,e){if(null==t)return{};if(t instanceof se)return{milliseconds:t._milliseconds,day:t._days,month:t._months};if(u(t))return e?{[e]:t}:{milliseconds:t};if(r(t)){let e=Le.exec(t);if(e){const t="-"===e[1]?-1:1;return{year:0,day:h(e[2])*t,hours:h(e[3])*t,minutes:h(e[4])*t,seconds:h(e[5])*t,milliseconds:h(Ce(1e3*h(e[6])))*t}}if(e=De.exec(t),e){const t="-"===e[1]?-1:1;return{year:Me(e[2],t),month:Me(e[3],t),week:Me(e[4],t),day:Me(e[5],t),hours:Me(e[6],t),minutes:Me(e[7],t),seconds:Me(e[8],t)}}}if(c(t)&&("from"in t||"to"in t)){const e=function(t,e){if(!s(t)||!s(e))return{milliseconds:0,months:0};let n;const a=function(t,e,n={}){if(!n._isUTC)return t;const a=xt(e),r=6e4*(n._offset||0),i=t.valueOf()-a.valueOf()+r;return a.setTime(a.valueOf()+i),a}(e,t,{_offset:t.getTimezoneOffset()});return Ae(t,a)?n=qe(t,a):(n=qe(a,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n}(Ie(t.from),Ie(t.to));return{milliseconds:e.milliseconds,month:e.months}}return t}(t,e);return new se(a,n)}function Me(t,e){const n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function qe(t,e){const n={milliseconds:0,months:0};return n.months=k(e)-k(t)+12*(E(e)-E(t)),Re(je(xt(t),n.months,"month"),e)&&--n.months,n.milliseconds=+e-+je(xt(t),n.months,"month"),n}function je(t,e,n,a){return Fe(t,Pe(e,n),1,a)}function Fe(t,e,n,a){const r=e._milliseconds,i=Ce(e._days),s=Ce(e._months);return s&&yt(t,k(t,a)+s*n,a),i&&vt(t,A(t,a)+i*n,a),r&&function(t,e){t.setTime(e)}(t,function(t){return t.getTime()}(t)+r*n),xt(t)}function Ge(t,e,n=Qt(),a){const i=R(t,a);return je(t,function(t,e){if(!r(t))return t;const n=parseInt(t,10);if(!isNaN(n))return n;const a=e.weekdaysParse(t);return u(a)?a:null}(e,n)-i,"day")}function Ve(t,e){return R(t,e)}function ze(t,e=Qt(),n){return(R(t,n)+7-e.firstDayOfWeek())%7}const Be="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),Ye="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");function He(t){return t>1&&t<5&&1!=~~(t/10)}function Ue(t,e,n,a){const r=t+" ";switch(n){case"s":return e||a?"pár sekund":"pár sekundami";case"ss":return e||a?r+(He(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(He(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(He(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(He(t)?"dny":"dní"):r+"dny";case"M":return e||a?"měsíc":"měsícem";case"MM":return e||a?r+(He(t)?"měsíce":"měsíců"):r+"měsíci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(He(t)?"roky":"let"):r+"lety"}}const We=function(t){let e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},Ke=function(t){let e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},$e={abbr:"cs",months:Be,monthsShort:Ye,monthsParse:function(t,e){let n,a=[];for(n=0;n<12;n++)a[n]=new RegExp("^"+t[n]+"$|^"+e[n]+"$","i");return a}(Be,Ye),shortMonthsParse:We(Ye),longMonthsParse:Ke(Be),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_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ítra v] LT",nextWeek(t){switch(Ve(t)){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek(t){switch(Ve(t)){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:Ue,ss:Ue,m:Ue,mm:Ue,h:Ue,hh:Ue,d:Ue,dd:Ue,M:Ue,MM:Ue,y:Ue,yy:Ue},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};function Ze(t,e,n,a){const r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}const Je={abbr:"de",months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:Ze,mm:"%d Minuten",h:Ze,hh:"%d Stunden",d:Ze,dd:Ze,M:Ze,MM:Ze,y:Ze,yy:Ze},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};let Qe="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Xe="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),tn=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],en=/^(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;const nn={abbr:"es",months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:(t,e,n)=>t?/-MMM-/.test(e)?Xe[k(t,n)]:Qe[k(t,n)]:Qe,monthsRegex:en,monthsShortRegex:en,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:tn,longMonthsParse:tn,shortMonthsParse:tn,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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:t=>"[hoy a la"+(1!==S(t)?"s":"")+"] LT",nextDay:t=>"[mañana a la"+(1!==S(t)?"s":"")+"] LT",nextWeek:t=>"dddd [a la"+(1!==S(t)?"s":"")+"] LT",lastDay:t=>"[ayer a la"+(1!==S(t)?"s":"")+"] LT",lastWeek:t=>"[el] dddd [pasado a la"+(1!==S(t)?"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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}},an={abbr:"fr",months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){const n=Number(t);switch(e){case"D":return n+(1===n?"er":"");default:case"M":case"Q":case"DDD":case"d":return n+(1===n?"er":"e");case"w":case"W":return n+(1===n?"re":"e")}},week:{dow:1,doy:4}},rn={abbr:"id",months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_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:(t,e)=>(12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0),meridiem:(t,e,n)=>t<11?"pagi":t<15?"siang":t<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}},sn={abbr:"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ì_martedì_mercoledì_giovedì_venerdì_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(t){switch(Ve(t)){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:t=>(/^[0-9].+$/.test(t.toString(10))?"tra":"in")+" "+t,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}º/,ordinal:"%dº",week:{dow:1,doy:4}},on={abbr:"ja",months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:t=>"午後"===t,meridiem:(t,e,n)=>t<12?"午前":"午後",calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";default:return t.toString(10)}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}},un={abbr:"ko",months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),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일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t.toString(10)}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}};let dn="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),ln="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function cn(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function fn(t,e,n){let a=t+" ";switch(n){case"ss":return a+(cn(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return a+(cn(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return a+(cn(t)?"godziny":"godzin");case"MM":return a+(cn(t)?"miesiące":"miesięcy");case"yy":return a+(cn(t)?"lata":"lat")}}const hn={abbr:"pl",months:(t,e,n)=>t?""===e?"("+ln[k(t,n)]+"|"+dn[k(t,n)]+")":/D MMMM/.test(e)?ln[k(t,n)]:dn[k(t,n)]:dn,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_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ś o] LT",nextDay:"[Jutro o] LT",nextWeek(t){switch(Ve(t)){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 5:return"[W piątek o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek(t){switch(Ve(t)){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 4:return"[W zeszłą czwartek o] LT";case 5:return"[W zeszłą piątek o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:fn,m:fn,mm:fn,h:fn,hh:fn,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:fn,y:"rok",yy:fn},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},gn={abbr:"pt-br",months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:t=>0===Ve(t)||6===Ve(t)?"[Último] dddd [às] LT":"[Última] dddd [às] LT",sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrá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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"},pn={abbr:"zh-cn",months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:(t,e)=>(12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12),meridiem(t,e,n){let a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal(t,e){const n=Number(t);switch(e){case"d":case"D":case"DDD":return n+"日";case"M":return n+"月";case"w":case"W":return n+"周";default:return n.toString()}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"xs/l":function(t,e,n){var a=n("TYy9"),r=n("Ioao"),i=n("wclG");t.exports=function(t){return i(r(t,void 0,a),t+"")}},xs3f:function(t,e,n){var a=n("2oRo"),r=n("zk60"),i=a["__core-js_shared__"]||r("__core-js_shared__",{});t.exports=i},y1pI:function(t,e,n){var a=n("ljhN");t.exports=function(t,e){for(var n=t.length;n--;)if(a(t[n][0],e))return n;return-1}},yCtX:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("HDdC"),r=n("ngJS"),i=n("jZKg");function s(t,e){return e?Object(i.a)(t,e):new a.a(Object(r.a)(t))}},yGOH:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},yGk4:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Set");t.exports=a},yHx3:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,a=new t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(a.index=t.index,a.input=t.input),a}},yJti:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t[t.ValueOk=0]="ValueOk",t[t.ValueStale=1]="ValueStale",t[t.ValueNone=2]="ValueNone",t[t.ValueException=3]="ValueException",t}({})},yP5f:function(t,e,n){var a=n("+K+b");t.exports=function(t,e){var n=e?a(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},yPMs:function(t,e,n){!function(t){"use strict";t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<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ë] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},yT6U:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e=!1){let n=t;return(!a.isArray(t)||a.isArray(t)&&e)&&(n=[t]),n}}},yYhs:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),i=n("CoVI"),s=n("mfoh"),o=(n("CFvb"),n("MP8s"),n("f95s"),n("gk6K")),u=(n("dApe"),n("ZhuC")),d=n("fxL3"),l=n("TNUL"),c=n("rZud"),f=n("woSy"),h=n("jV1L"),g=n("pcHL"),p=n("WaXT"),b=n("OIDT"),m=n("HIU9"),y=n("uNpg"),v=n("Fwy9"),x=n("C523"),_=n("4Dmd");n("14R3"),n.d(e,"b",(function(){return T})),n.d(e,"a",(function(){return s.a}));var T=function(){function t(){}var e;return e=t,t.forRoot=function(){return{ngModule:e,providers:[o.a]}},e=function(t,e,n,a){var r,i=arguments.length,s=i<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,a);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(s=(i<3?r(s):i>3?r(e,n,s):r(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}([Object(a.NgModule)({declarations:[d.a,l.a,c.a,u.a,v.a,x.a,h.a,g.a,f.a,p.a,m.a,b.a,y.a,_.a,i.a],exports:[d.a,l.a,c.a,u.a,v.a,x.a,h.a,g.a,f.a,p.a,m.a,b.a,y.a,_.a,i.a],imports:[r.CommonModule],providers:[]})],t)}()},yoRg:function(t,e,n){var a=n("UTVS"),r=n("/GqU"),i=n("TWQb").indexOf,s=n("0BK2");t.exports=function(t,e){var n,o=r(t),u=0,d=[];for(n in o)!a(s,n)&&a(o,n)&&d.push(n);for(;e.length>u;)a(o,n=e[u++])&&(~i(d,n)||d.push(n));return d}},"yt+r":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="es-ES">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Alternar navegación</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Consola</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Clúster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitores</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Servicios</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuración</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mapa de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Módulos de gestor</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Registros</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Repositorios</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloque</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Imágenes</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Duplicación</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemas de archivos</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Usuarios</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Papeleras</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Seleccione un idioma</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Cargando datos del panel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Selector de hora de Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Restablecer ajustes</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Atrás</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Error al cargar los datos.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>seleccionados</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>encontrados</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nombre</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descripción</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descripción larga</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Opción por defecto</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon por defecto</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valores</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Guardar</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visor del mapa de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Cargando...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nombre de host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Este campo es obligatorio.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sí, seguro.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Cancelar</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Cerrar</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista de hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Rendimiento general</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>No se encuentra ninguna entrada</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Registros del clúster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Registros de auditoría</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Cargando configuración...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>No es posible cargar la configuración.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Módulo del gestor de edición</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>El valor introducido no es un UUID válido, por ejemplo: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>El valor introducido debe ser una dirección IP válida.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>El valor introducido debe ser un número.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>El valor introducido debe ser un número o un decimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Actualizar</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID de clúster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Mapa de supervisión modificado</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>Época de mapa de supervisión</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quórum de con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quórum de mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con requerido</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon requerido</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Con quórum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Sin quórum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Añadir</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Características</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Indicadores OSD de todo el clúster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Enviar</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avanzado...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioridad de recuperación de OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioridad</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizar valores de prioridad</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Este campo es obligatorio.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>El valor debe estar entre 0 y 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Reequilibrar peso</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profundo} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profundo} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista de OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valor</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Editar</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Suprimir</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Estadísticas</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clientes</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Cualquier cliente puede acceder</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Destinatarios</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo requerido</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Debe contener uno o varios valores separados por comas</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Por ejemplo:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo de acceso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Reducir privilegios</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Añadir clientes</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- No hay ningún clúster disponible --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Seleccione el clúster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Añadir daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Motor de almacenamiento</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- No hay ningún repositorio de datos disponible --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Seleccione el motor de almacenamiento --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Usuario de Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- No hay ningún usuario disponible --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Seleccione el usuario de Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID de usuario de CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- No hay ningún cliente disponible --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Seleccione el cliente de CephX --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nombre de CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etiqueta de seguridad</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Habilitar etiqueta de seguridad</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Ruta de CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>La ruta debe empezar por "/" y puede ir seguida de una palabra</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Se creará un directorio nuevo</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Ruta</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>La ruta solo puede ser una "/" o una palabra</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Se creará una papelera nueva</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocolo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Etiqueta NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Puede que los clientes no monten subdirectorios (es decir, si Etiqueta = foo, el cliente puede que no monte foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Al usar distintas opciones de Etiqueta, la misma Ruta se puede exportar varias veces.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Al usar distintas opciones de Pseudo, la misma Ruta se puede exportar varias veces.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- No hay ningún tipo de acceso disponible --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Seleccione el tipo de acceso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- No hay ninguna reducción de privilegios disponible --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Seleccione el tipo de reducción de privilegios de ID de usuario que se va a realizar --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocolo de transporte</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>¡Bienvenidos a Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>El nombre de usuario es obligatorio</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>La contraseña es obligatoria</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Entrada</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Lo sentimos. El usuario no existe en Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Prohibido</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Lo sentimos. No tiene permiso para ver lo que busca.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuración de RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Elimina el valor de configuración local. Se heredará y usará en su lugar el valor de configuración padre.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>El valor mínimo es 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista de repositorios</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>El nombre solo puede tener caracteres alfanuméricos, guiones y guiones bajos.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>El nombre del perfil de código de borrado que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Complemento</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Porciones de datos (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Debe ser igual o mayor que 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Porciones de código (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Debe ser igual o mayor que 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimador de durabilidad (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localización (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Dominio de error de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localización de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Ninguna</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Técnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Tamaño del paquete</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Raíz de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Clase de dispositivo de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>cualquiera</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Directorio</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nombre...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>El nombre del repositorio de Ceph que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo de repositorio</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Seleccione un tipo de repositorio --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupos de colocación</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Se necesita al menos un grupo de colocación.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>El clúster no puede gestionar tantos grupos de colocación. Vuelva a calcular la cantidad que necesita.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Ayuda para el cálculo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Tamaño replicado</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Indicadores</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sustituciones de códigos de borrado</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- No hay ningún perfil de código de borrado disponible --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Seleccione un perfil de código de borrado --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Conjunto de reglas de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Seleccione una regla de CRUSH --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regla de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Pasos de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compresión</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modo</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- No hay ningún algoritmo de compresión de borrado disponible --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Tamaño de Blob mínimo</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>p. ej. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>El valor debe ser mayor que 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Tamaño de Blob máximo</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>p. ej. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>El valor debe ser mayor que el tamaño de Blob mínimo</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Relación</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Relación de compresión</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>El valor debe estar entre 0,0 y 1,0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ej.: 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detalles</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detalles de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detalles de niveles de caché</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Mover una imagen a la papelera</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protección caduca a las</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>SIN PROTECCIÓN</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato de fecha erróneo. Use el formato "AAAA-MM-DD HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protección ya ha caducado. Seleccione una fecha del futuro o deje el campo vacío.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Mover imagen</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Resumen</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinos</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticación de descubrimiento</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Usuario</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Los nombres de usuario deben tener entre 8 y 64 caracteres y\n                        solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Contraseña</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Usuario mutuo</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Contraseña mutua</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Información disponible:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinos iSCSI no disponibles</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Repositorio</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Repositorio de datos</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Creados</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Tamaño</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objetos</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Tamaño del objeto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Aprovisionados</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/D</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unidad de repartición</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Recuento de repartición</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Padre</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefijo de nombre de bloque</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Orden</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantáneas</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Imagen</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Este ajuste sustituye al valor global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Este es el valor global. No se ha definido ningún valor para esta opción para esta imagen.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>No se permiten los caracteres "/" ni "@".</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- No hay ningún repositorio RBD disponible --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Seleccione un repositorio --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Usar un repositorio dedicado para datos</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Repositorio de datos</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Repositorio dedicado para almacenar los datos de objeto de RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Debe aumentar el tamaño.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avanzado</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Repartición</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unidad de repartición</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Seleccione la unidad de repartición --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Este campo es obligatorio porque se ha definido el recuento de repartición.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>La unidad de repartición es mayor que el tamaño del objeto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Recuento de repartición</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Este campo es obligatorio porque se ha definido la unidad de repartición.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>El recuento de repartición debe ser mayor que 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Se dispone a revertir</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vaciar papelera</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Todas</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Repositorio:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nombre del repositorio...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurar imágenes</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Para restaurar</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>escriba el nombre nuevo de la imagen y haga clic en</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nombre nuevo</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Caducó a las</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protección hasta</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topología iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Normalmente no es necesario cambiar los valores por defecto de estos parámetros.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Ajustes</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Almacén</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmar</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Ajustes avanzados</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN de destino</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>El IQN tiene un patrón erróneo.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Por ejemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Más información</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Este destino tiene ajustes avanzados modificados.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portales</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Añadir portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Esta imagen tiene ajustes modificados.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Añadir imagen</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticación de ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciadores</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciador</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN del cliente</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>El IQN del iniciador debe ser exclusivo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Los nombres de usuario deben tener entre 8 y 64 caracteres y\n                        solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>El iniciador pertenece a un grupo. Las imágenes se configurarán en el grupo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>No se ha añadido ningún elemento.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Añadir iniciador</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupos</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Añadir grupo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Papelera</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemas</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizando</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Listo</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Editar modo de duplicación de repositorio</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Los clústeres de par deben eliminarse antes de inhabilitar la duplicación.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Editar} other {Añadir} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nombre del clúster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>El nombre del clúster no es válido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID de CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID de CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>El ID de CephX no es válido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Direcciones de monitores</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Direcciones delimitadas por comas...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>La dirección del monitor no es válida.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Clave de CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Clave con cifrado base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La clave de CephX debe tener cifrado base64</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Los contadores de rendimiento no están disponibles</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista de daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contadores de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Cargando datos de la papelera...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>El valor no es válido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>El nombre que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Propietario</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Seleccione un usuario --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Habilitado</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo de índice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regla de colocación</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marcador</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marcador máximo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versión</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versión maestra</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Hora de modificación</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Grupo de zona</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Cuota de papelera</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Tamaño máximo</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Sin límite</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Número máximo de objetos</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nombre de usuario</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Seleccione un nombre de usuario --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Autogenerar clave</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Clave de acceso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Clave secreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nombre completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Dirección de correo electrónico</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspendido</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Número máximo de papeleras</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subusuarios</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Capacidades</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Cuota de usuario</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostrar</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Claves</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Seleccione un tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Permiso</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Seleccione un permiso --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subusuario</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>El ID de subusuario que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lectura, escritura</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>todos</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Clave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Autogenerar secreto</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Cargando datos del usuario...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>No es posible cargar los datos del usuario.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>El ID de usuario que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Esta dirección no es válida.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>La dirección de correo electrónico que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Máx. papeleras</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Inhabilitado</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizar</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Clave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>No hay ningún subusuario.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>No hay ninguna clave.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>No hay ninguna capacidad</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Tamaño ilimitado</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Tamaño máx.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objetos ilimitados</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Objetos máx.</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>El valor introducido debe ser mayor o igual que 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descripción...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Permisos</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Funciones</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmar contraseña</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Las contraseñas no coinciden.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Correo electrónico</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Correo electrónico no válido.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Se dispone a eliminar los permisos "lectura/actualización de usuario" de su propio usuario.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Si continúa, no podrá añadir ni eliminar funciones en ningún usuario.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>¿Seguro que desea continuar?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Ayuda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentación</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Acerca de</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Ajustes de la consola</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestión del usuario</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Usuario que ha entrado</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Salir</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributos (mapa de OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Los metadatos no están disponibles</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadatos</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contandor de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Escrituras</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lecturas</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histograma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valores actuales</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Mín.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Máx.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origen</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Nivel</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Se puede actualizar en el tiempo de ejecución (editable)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Etiquetas</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valores Enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Véase también</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Estado del clúster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons de gestor</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Instancias de Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Servidores de metadatos</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Puertas de enlace iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS de cliente</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Rendimiento del cliente</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lectura/escritura de cliente</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Rendimiento de recuperación</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Depuración</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Rendimiento</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacidad en bruto</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Grupos de colocación por OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Estado del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacidad</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Clasificaciones</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Actual</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticación de descubrimiento actualizada</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>No hay ningún portal disponible.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>No hay ninguna imagen disponible.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>No hay ninguna imagen disponible. Asegúrese de añadir una imagen al destino.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>No hay ningún iniciador disponible. Asegúrese de añadir un iniciador al destino.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destino</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes de lectura</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes de escritura</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operaciones de lectura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operaciones de escritura</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O desde</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instancia</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Progreso</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Editar modo</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Añadir par</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Editar par</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Suprimir par</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Líder</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>N.º locales</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>N.º remotos</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>duplicar par</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Clave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Aplanamiento profundo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>En capas</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Bloqueo exclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa de objetos (requiere bloqueo exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>En diario (requiere bloqueo exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>SIN PROTECCIÓN</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Reversión de instantánea RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Revertir</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Instantánea RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Suprimido a las</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>estado</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versión</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>raíz</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons de reserva</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Clasificación</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Actividad</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodos</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Uso</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Actualizado</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>El valor se puede actualizar en el tiempo de ejecución.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Los daemons/clientes no extraen este valor de la\n      base de datos de configuración del monitor. No se recomienda definir esta opción con "ceph config\n      set ...". Esta opción se debe configurar mediante ceph.conf o a través\n      de la línea de comandos.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>La opción solo surte efecto durante el inicio del daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>La opción solo afecta a la creación del clúster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>La opción solo afecta a la creación del daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Servicio</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valor actual</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Editable</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Habilitar</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Inhabilitar</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Conectando de nuevo. Espere...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Dirección pública</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sesiones abiertas</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>No incluir</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Los OSD que se excluyeron anteriormente no se volverán a incluir cuando se inicien</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>No excluir</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Los OSD no se excluirán automáticamente después del intervalo configurado</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>No activar</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>No se permite que los OSD se inicien</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>No desactivar</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Se ignoran los informes de error de OSD, de forma que los monitores no desactivarán los OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pausa</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pone en pausa las lecturas y escrituras</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>No depurar</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>La depuración está inhabilitada</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>No depuración profunda</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>La depuración profunda está inhabilitada</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>No reponer</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>La reposición de grupos de colocación se suspende</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>No recuperar</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>La recuperación de los grupos de colocación se suspende</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Orden bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usar orden bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdir limpiados</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Los OSD tienen snapset convertidos</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Supresiones de recuperación</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Supresiones realizadas durante la recuperación, en lugar de emparejamientos</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Límite estricto de registro del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Establece un límite estricto para la longitud del registro del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Indicadores de OSD actualizados</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>excluir</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>Incluir</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>desactivar</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marcar</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdido</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marcado como perdido</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Limpiar</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>limpiado</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>destruir</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>destruido</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>suprimir</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Grupos de colocación</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes de lectura</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes de escritura</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operaciones de lectura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operaciones de escritura</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Número máximo de reposiciones</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Máximo de recuperaciones activas</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Máximo de recuperaciones de inicio único</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Reposo de recuperación</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Trabajo</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravedad</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Iniciado</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Usado</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispon.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Limpio</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>En curso</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Advertencia</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Desconocido</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>activo</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>sin sistemas de archivos</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>activo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>reserva</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/d</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon activo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quórum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>El servicio NFS Ganesha no está configurado.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transportar</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Usuario de CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Sistemas de archivos CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(se hereda de la configuración global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>se hereda de la configuración global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Seleccione el tipo de reducción de privilegios de ID de usuario que se va a realizar --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>No hay ningún daemon disponible.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modo de caché</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Antigüedad mínima de expulsión</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Antigüedad mínima de vaciado</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Número máximo de bytes de destino</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Número máximo de objetos de destino</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>No se ha añadido ninguna aplicación</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Se ha alcanzado el límite de aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Un repositorio solo puede tener hasta cuatro definiciones de aplicaciones.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caracteres permitidos: _, a-z, A-Z y 0-9</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La longitud máxima es 128 caracteres</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrar o añadir aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Añadir aplicación</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Tamaño de réplica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Último cambio</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Conjunto de reglas de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>papelera</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>papeleras</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>usuario</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>usuarios</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Ámbito</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lectura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Crear</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Función del sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Actualizar usuario</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuar</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>La sesión se ha cerrado automáticamente porque sus funciones han cambiado.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Cada objeto se divide en porciones de datos, cada una almacenada en un OSD distinto.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcula las porciones de código para cada objeto y las almacena en distintos OSD.\n      El número de porciones de código es también el número de OSD que pueden estar inactivos sin que se pierdan datos.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>El complemento jerasure es el más genérico y flexible,\n          y también el complemento por defecto para los repositorios de código de borrado de Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La técnica más flexible es reed_sol_van: basta con definir k y m.\n          La técnica cauchy_good puede ser más rápida, pero hay que elegir con cuidado el tamaño\n          del paquete. reed_sol_r6_op, liberation, blaum_roth y liber8tion son todas equivalentes a RAID6\n          en el sentido de que solo se pueden configurar con m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>La codificación se realizará según el tamaño de los paquetes de bytes de uno en uno.\n          Elegir el tamaño correcto es difícil.\n          La documentación de jerasure incluye información completa sobre el tema.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Con el complemento jerasure, cuando un objeto de código de borrado se almacena\n          en varios OSD, para recuperarse de la pérdida de un OSD es necesario leer de todos los demás.\n          Por ejemplo, si jerasure está configurado con k=8 y m=4, cuando se pierde un OSD es necesario leer\n          de los otros once para repararlo.\n\n          El complemento de código de borrado lrc crea porciones de paridad local para poder realizar la recuperación con\n          menos OSDs. Por ejemplo, is lrc está configurado con k=8, m=4 y l=4, creará\n          una porción de paridad adicional para cada cuatro OSDs. Si se pierde un solo OSD, se puede recuperar\n          solo con cuatro OSD, en lugar de con once.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Agrupa las porciones de código y de datos en localizaciones de conjuntos de tamaño. Por ejemplo,\n          para k=4 y m=2, si locality=3, se crean dos grupos de tres. Cada conjunto\n          se puede recuperar sin leer porciones de otro conjunto.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>El tipo de papelera de CRUSH en el que se almacenará cada\n          conjunto de porciones definido por l. Por ejemplo, si se define como bastidor, cada grupo de l porciones\n          se colocará en un bastidor distinto. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step choose\n          rack". Si no se define, no se realiza este tipo de agrupamiento.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>El complemento isa encapsula la biblioteca ISA. Solo funciona en procesadores Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>El complemento ISA viene en dos formatos de Reed Solomon.\n          Si se define reed_sol_van, se trata de Vandermonde; si se define cauchy, se trata de Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>El complemento shec encapsula las distintas bibliotecas SHEC.\n          Permite a Ceph recuperar datos de forma más eficiente que los códigos de Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>El número de porciones de paridad. Cada uno de ellas incluye cada porción de datos\n           en su intervalo de cálculo. El número se usa como estimador de durabilidad. Por ejemplo, si c=2,\n          2 OSD pueden estar inactivos sin que se pierdan datos.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>El nombre de la papelera de CRUSH usado para el primer paso de la regla de CRUSH.\n      Por ejemplo, "step take default".</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Asegúrese de que no hay dos porciones en una papelera con el mismo\n      dominio de error. Por ejemplo, si el dominio de error es host, no debe haber dos porciones almacenadas en el mismo\n      host. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step chooseleaf host".</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restringe la colocación a dispositivos de una clase concreta\n      (p.ej., ssd o hdd) usando los nombre de clase de dispositivo CRUSH en el mapa de CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Define el nombre de directorio del que se cargará el complemento de código de borrado.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Permite todas las operaciones</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Permite solo las operaciones que no modifican el servidor</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>No permite operaciones de lectura o escritura, pero sí cualquier otra</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>No permite operaciones de lectura o escritura, ni ninguna otra que modifique los atributos del archivo o el contenido del directorio</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>No permite ningún tipo de acceso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Seleccione la prioridad --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Baja</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Información</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Últimos 5 minutos</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Últimos 15 minutos</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Últimos 30 minutos</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Última hora (opción por defecto)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Últimas 3 horas</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Últimas 6 horas</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Últimas 12 horas</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Últimas 24 horas</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ayer</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hoy</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Hoy hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Anteayer</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Los últimos 2 días</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Este día la semana pasada</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>La semana pasada</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Esta semana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Esta semana hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Los últimos 7 días</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>El mes pasado</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Este mes</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Este mes hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Los últimos 30 días</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Los últimos 90 días</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Los últimos 6 meses</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>El último año</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>El año pasado</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Este año</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Este año hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Los últimos 2 años</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Los últimos 5 años</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>No se ha seleccionado ningún elemento.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Deseleccione el elemento para volver a seleccionarlo</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Se ha alcanzado el límite de selección</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtrar etiquetas</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Añadir insignia</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>No hay ningún elemento disponible.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clonar</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copiar</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Depuración profunda</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Destruir</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Aplanar</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marcar para desactivar</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marcar para incluir</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marcar como perdido</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marcar para excluir</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renombrar</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurar</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Mover a la papelera</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Desproteger</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Suprimido</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonado</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiado</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Aplanado</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Limpiado</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restaurado</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Revertido</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sí</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>No</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Calidad del servicio</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Límite de BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>El límite deseado de bytes de E/S por segundo.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Límite de IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>El límite deseado de operaciones de E/S por segundo.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Límite de BPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>El límite deseado de bytes de lectura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Límite de IOPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>El límite deseado de operaciones de lectura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Límite de BPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>El límite deseado de bytes de escritura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Límite de IOPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>El límite deseado de operaciones de escritura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Ráfaga de BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de E/S.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Ráfaga de IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de E/S.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Ráfaga de BPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de lectura.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Ráfaga de IOPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de lectura.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Ráfaga de BPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de escritura.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Ráfaga de IOPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de escritura.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Ejecutando</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>ejecutar</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Ejecutado</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tarea desconocida</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Creando</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>crear</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Actualizando</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>actualizar</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Suprimiendo</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonando</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clonar</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copiando</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copiar</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Aplanando</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>aplanar</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Revirtiendo</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>revertir</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Moviendo</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>mover</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Movido</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>No se encuentra la imagen.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Restaurando</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurar</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Limpiando</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>limpiar</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>todos los repositorios</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>No es posible inhabilitar la duplicación porque contiene un par</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"z+Ro":function(t,e,n){"use strict";function a(t){return t&&"function"==typeof t.schedule}n.d(e,"a",(function(){return a}))},"z/SZ":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("hpHm");class i{constructor(t,e,n){this.nodes=t,this.viewRef=e,this.componentRef=n}}class s{constructor(t,e,n,r,i,s,o,u){this._viewContainerRef=t,this._renderer=e,this._elementRef=n,this._injector=r,this._componentFactoryResolver=i,this._ngZone=s,this._applicationRef=o,this._posService=u,this.onBeforeShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onBeforeHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this._providers=[],this._isHiding=!1,this.containerDefaultSelector="body",this._listenOpts={},this._globalListener=Function.prototype}get isShown(){return!this._isHiding&&!!this._componentRef}attach(t){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(t),this}to(t){return this.container=t||this.container,this}position(t){return this.attachment=t.attachment||this.attachment,this._elementRef=t.target||this._elementRef,this}provide(t){return this._providers.push(t),this}show(t={}){if(this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(t.content,t.context,t.initialState);const e=a.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(e,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,t),this.container instanceof a.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"string"==typeof this.container&&"undefined"!=typeof document&&(document.querySelector(this.container)||document.querySelector(this.containerDefaultSelector)).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef}hide(){if(!this._componentRef)return this;this._posService.deletePositionElement(this._componentRef.location),this.onBeforeHide.emit(this._componentRef.instance);const t=this._componentRef.location.nativeElement;return t.parentNode.removeChild(t),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this}toggle(){this.isShown?this.hide():this.show()}dispose(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()}listen(t){this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,this._listenOpts.outsideEsc=t.outsideEsc,t.target=t.target||this._elementRef.nativeElement;const e=this._listenOpts.hide=()=>t.hide?t.hide():void this.hide(),n=this._listenOpts.show=e=>{t.show?t.show(e):this.show(e),e()};return this._unregisterListenersFn=Object(r.e)(this._renderer,{target:t.target,triggers:t.triggers,show:n,hide:e,toggle:t=>{this.isShown?e():n(t)}}),this}_removeGlobalListener(){this._globalListener&&(this._globalListener(),this._globalListener=null)}attachInline(t,e){return this._inlineViewRef=t.createEmbeddedView(e),this}_registerOutsideClick(){if(this._componentRef&&this._componentRef.location){if(this._listenOpts.outsideClick){const t=this._componentRef.location.nativeElement;setTimeout(()=>{this._globalListener=Object(r.h)(this._renderer,{targets:[t,this._elementRef.nativeElement],outsideClick:this._listenOpts.outsideClick,hide:()=>this._listenOpts.hide()})})}if(this._listenOpts.outsideEsc){const t=this._componentRef.location.nativeElement;this._globalListener=Object(r.g)(this._renderer,{targets:[t,this._elementRef.nativeElement],outsideEsc:this._listenOpts.outsideEsc,hide:()=>this._listenOpts.hide()})}}}getInnerComponent(){return this._innerComponent}_subscribePositioning(){!this._zoneSubscription&&this.attachment&&(this.onShown.subscribe(()=>{this._posService.position({element:this._componentRef.location,target:this._elementRef,attachment:this.attachment,appendToBody:"body"===this.container})}),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>{this._componentRef&&this._posService.calcPosition()}))}_unsubscribePositioning(){this._zoneSubscription&&(this._zoneSubscription.unsubscribe(),this._zoneSubscription=null)}_getContentRef(t,e,n){if(!t)return new i([]);if(t instanceof a.TemplateRef){if(this._viewContainerRef){const n=this._viewContainerRef.createEmbeddedView(t,e);return n.markForCheck(),new i([n.rootNodes],n)}const n=t.createEmbeddedView({});return this._applicationRef.attachView(n),new i([n.rootNodes],n)}if("function"==typeof t){const e=this._componentFactoryResolver.resolveComponentFactory(t),r=a.Injector.create({providers:this._providers,parent:this._injector}),s=e.create(r);return Object.assign(s.instance,n),this._applicationRef.attachView(s.hostView),new i([[s.location.nativeElement]],s.hostView,s)}return new i([[this._renderer.createText(`${t}`)]])}}class o{constructor(t,e,n,a,r){this._componentFactoryResolver=t,this._ngZone=e,this._injector=n,this._posService=a,this._applicationRef=r}createLoader(t,e,n){return new s(e,n,t,this._injector,this._componentFactoryResolver,this._ngZone,this._applicationRef,this._posService)}}},z1FC:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n míut","'iens míut"],mm:[t+" míuts",t+" míuts"],h:["'n þora","'iensa þora"],hh:[t+" þoras",t+" þoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return a?r[n][0]:e?r[n][0]:r[n][1]}t.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".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(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,n){return t>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z3Vd:function(t,e,n){!function(t){"use strict";var e="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t,n,a,r){var i=function(t){var n=Math.floor(t%1e3/100),a=Math.floor(t%100/10),r=t%10,i="";return n>0&&(i+=e[n]+"vatlh"),a>0&&(i+=(""!==i?" ":"")+e[a]+"maH"),r>0&&(i+=(""!==i?" ":"")+e[r]),""===i?"pagh":i}(t);switch(a){case"ss":return i+" lup";case"mm":return i+" tup";case"hh":return i+" rep";case"dd":return i+" jaj";case"MM":return i+" jar";case"yy":return i+" DIS"}}t.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".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’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"},past:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu’":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z5nN:function(t,e,n){"use strict";n.d(e,"b",(function(){return u})),n.d(e,"a",(function(){return f}));var a=n("8Y7J"),r=n("LqlI"),i=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["role","document"]],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","modal-content"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){var n=e.component;t(e,0,0,"modal-dialog"+(n.config.class?" "+n.config.class:""))}))}function o(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"modal-container",[["class","modal"],["role","dialog"],["tabindex","-1"]],[[1,"aria-modal",0]],[[null,"mousedown"],[null,"mouseup"],["window","keydown.esc"]],(function(t,e,n){var r=!0;return"mousedown"===e&&(r=!1!==a["ɵnov"](t,1).onClickStarted(n)&&r),"mouseup"===e&&(r=!1!==a["ɵnov"](t,1).onClickStop(n)&&r),"window:keydown.esc"===e&&(r=!1!==a["ɵnov"](t,1).onEsc(n)&&r),r}),s,i)),a["ɵdid"](1,245760,null,0,r.d,[r.f,a.ElementRef,a.Renderer2],null,null)],(function(t,e){t(e,1,0)}),(function(t,e){t(e,0,0,!0)}))}var u=a["ɵccf"]("modal-container",r.d,o,{},{},["*"]),d=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function l(t){return a["ɵvid"](0,[],null,null)}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-modal-backdrop",[["class","modal-backdrop"]],null,null,null,l,d)),a["ɵdid"](1,114688,null,0,r.c,[a.ElementRef,a.Renderer2],null,null)],(function(t,e){t(e,1,0)}),null)}var f=a["ɵccf"]("bs-modal-backdrop",r.c,c,{},{},[])},z6cu:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("HDdC");function r(t,e){return new a.a(e?n=>e.schedule(i,0,{error:t,subscriber:n}):e=>e.error(t))}function i({error:t,subscriber:e}){e.error(t)}},zBJ4:function(t,e,n){var a=n("2oRo"),r=n("hh1v"),i=a.document,s=r(i)&&r(i.createElement);t.exports=function(t){return s?i.createElement(t):{}}},zEVN:function(t,e,n){var a=n("Gi0A"),r=n("sEf8"),i=n("mdPL"),s=i&&i.isMap,o=s?r(s):a;t.exports=o},zKZe:function(t,e,n){var a=n("I+eb"),r=n("YNrV");a({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},zUnb:function(t,e,n){"use strict";n.r(e);var a=n("tAZD"),r=n.n(a),i=n("SVse"),s=n("8Y7J");function o(){return localStorage.getItem("access_token")}const u=t=>{t=t||"en-US";try{return n("F+uO")(`./messages.${t}.xlf`).default}catch(e){return[]}};class d{}class l{constructor(){}}var c=n("EApP"),f=s["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"flyInOut",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:0,name:"removed",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:1,expr:"inactive => active",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null},{type:1,expr:"active => removed",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null}],options:{}}]}});function h(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"button",[["aria-label","Close"],["class","toast-close-button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.remove()&&a),a}),null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["×"]))],null,null)}function g(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](1,null,["[","]"]))],null,(function(t,e){t(e,1,0,e.component.duplicatesCount+1)}))}function p(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"div",[],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,g)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,3,0,e.component.duplicatesCount)}),(function(t,e){var n=e.component;t(e,0,0,n.options.titleClass,n.title),t(e,1,0,n.title)}))}function b(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message)}))}function m(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message),t(e,1,0,n.message)}))}function y(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,0,"div",[["class","toast-progress"]],[[4,"width",null]],null,null,null,null))],null,(function(t,e){t(e,1,0,e.component.width+"%")}))}function v(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,h)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,p)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,b)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,m)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,y)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.options.closeButton),t(e,3,0,n.title),t(e,5,0,n.message&&n.options.enableHtml),t(e,7,0,n.message&&!n.options.enableHtml),t(e,9,0,n.options.progressBar)}),null)}function x(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[["toast-component",""]],[[8,"className",0],[40,"@flyInOut",0],[4,"display",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,1).tapToast()&&a),"mouseenter"===e&&(a=!1!==s["ɵnov"](t,1).stickAround()&&a),"mouseleave"===e&&(a=!1!==s["ɵnov"](t,1).delayedHideToast()&&a),a}),v,f)),s["ɵdid"](1,180224,null,0,c.c,[c.j,c.g,s.NgZone],null,null)],null,(function(t,e){t(e,0,0,s["ɵnov"](e,1).toastClasses,s["ɵnov"](e,1).state,s["ɵnov"](e,1).displayStyle)}))}var _=s["ɵccf"]("[toast-component]",c.c,x,{},{},[]),T=n("pMnS"),O=n("jtHE");let w=(()=>{class t{}return t.START="start",t.STOP="stop",t.UPDATE="update",t.RESET="reset",t.UNSUBSCRIBE="unsubscribe",t})();class S{constructor(){this.blockUISettings={},this.blockUIInstances={},this.blockUISubject=new O.a,this.blockUIObservable=this.blockUISubject.asObservable(),this.blockUIObservable.subscribe(this.blockUIMiddleware.bind(this))}getSettings(){return this.blockUISettings}updateSettings(t={}){this.blockUISettings=Object.assign({},this.blockUISettings,t)}decorate(t="block-ui-main"){const e={name:t,isActive:!1,blockCount:0,start:this.dispatch(this.blockUISubject,w.START,t),update:this.dispatch(this.blockUISubject,w.UPDATE,t),stop:this.dispatch(this.blockUISubject,w.STOP,t),reset:this.dispatch(this.blockUISubject,w.RESET,t),unsubscribe:this.dispatch(this.blockUISubject,w.UNSUBSCRIBE,t)};return this.blockUIInstances[t]=this.blockUIInstances[t]||e,e}observe(){return this.blockUIObservable}blockUIMiddleware({action:t,name:e}){let n=null;switch(t){case w.START:n=!0;break;case w.STOP:case w.RESET:n=!1}null!==n&&(this.blockUIInstances[e].isActive=n)}dispatch(t,e,n="block-ui-main"){return a=>{t.next({name:n,action:e,message:a})}}}class I{constructor(t){this.blockUI=t}ngOnInit(){this.name=this.name||"block-ui-main",this.template=this.template||this.blockUI.blockUISettings.template}}class N{constructor(t,e,n){this.blockUI=t,this.resolver=e,this.changeDetectionRef=n,this.name="block-ui-main",this.delayStart=0,this.delayStop=0,this.state={startTimeout:null,stopTimeout:null,blockCount:0},this.active=!1}ngOnInit(){this.settings=this.blockUI.getSettings(),this.blockUISubscription=this.subscribeToBlockUI(this.blockUI.observe())}ngAfterViewInit(){try{if(!this.templateCmp)return!1;if(this.templateCmp instanceof s.TemplateRef)this.templateOutlet.createEmbeddedView(this.templateCmp);else{const t=this.resolver.resolveComponentFactory(this.templateCmp);this.templateCompRef=this.templateOutlet.createComponent(t),this.updateBlockTemplate(this.message)}}catch(t){console.error("ng-block-ui:",t)}}ngAfterViewChecked(){this.detectChanges()}subscribeToBlockUI(t){return t.subscribe(t=>this.onDispatchedEvent(t))}onDispatchedEvent(t){switch(t.action){case w.START:this.onStart(t);break;case w.STOP:this.onStop(t);break;case w.UPDATE:this.onUpdate(t);break;case w.RESET:this.onReset();break;case w.UNSUBSCRIBE:this.onStop(t),this.onUnsubscribe(t.name)}}onStart({name:t,message:e}){if(t===this.name){const t=this.delayStart||this.settings.delayStart||0;null===this.state.startTimeout&&(0===t?this.showBlock(e):this.state.startTimeout=setTimeout(()=>{this.showBlock(e)},t)),this.state.blockCount++,this.updateInstanceBlockCount()}}onStop({name:t}){if(t===this.name){const t=this.delayStop||this.settings.delayStop||0;this.state.blockCount>1?this.state.blockCount--:this.active?null===this.state.stopTimeout&&(0===t?this.hideBlock():this.state.stopTimeout=setTimeout(()=>{this.hideBlock()},t)):this.clearState(),this.updateInstanceBlockCount()}}onReset(){this.hideBlock()}onUpdate({name:t,message:e}){if(t===this.name){const t=this.delayStart||this.settings.delayStart||0;0===t?this.updateMessage(e):setTimeout(()=>{this.updateMessage(e)},t)}}updateMessage(t){this.message=t||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.detectChanges()}showBlock(t){this.active=!0,this.message=t||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.detectChanges()}hideBlock(){this.clearState(),this.active=!1,this.detectChanges()}clearState(){null!=this.state.startTimeout&&clearTimeout(this.state.startTimeout),null!=this.state.stopTimeout&&clearTimeout(this.state.stopTimeout),this.state.blockCount=0,this.state.startTimeout=null,this.state.stopTimeout=null,this.updateInstanceBlockCount()}updateBlockTemplate(t){this.templateCompRef&&this.templateCompRef instanceof s.ComponentRef&&(this.templateCompRef.instance.message=t)}onUnsubscribe(t){this.blockUISubscription&&t===this.name&&this.blockUISubscription.unsubscribe()}updateInstanceBlockCount(){this.blockUI.blockUIInstances[this.name]&&(this.blockUI.blockUIInstances[this.name].blockCount=this.state.blockCount)}detectChanges(){this.changeDetectionRef.destroyed||this.changeDetectionRef.detectChanges()}ngOnDestroy(){this.onUnsubscribe(this.name)}}class C{constructor(t){this.blockUIInstance=t}start(t,e){this.dispatch(t,w.START,e)}stop(t){this.dispatch(t,w.STOP)}reset(t){this.dispatch(t,w.RESET)}unsubscribe(t){this.dispatch(t,w.UNSUBSCRIBE)}isActive(t=null){const e=t?this.toArray(t):null,n=this.blockUIInstance.blockUIInstances;return Object.keys(n).some(t=>e?e.indexOf(n[t].name)>=0&&n[t].isActive:n[t].isActive)}dispatch(t=[],e,n){this.toArray(t).forEach(t=>this.blockUIInstance.decorate(t)[e](n))}toArray(t=[]){return"string"==typeof t?[t]:t}}const R=new S,A=new s.InjectionToken("BlockUIModuleSettings");function k(t){return R.updateSettings(t),R}class E{static forRoot(t={}){return{ngModule:E,providers:[{provide:A,useValue:t},{provide:S,useFactory:k,deps:[A]},C]}}}function L(t){return function(e,n,a){e[n]=R.decorate(t)}}var D=s["ɵcrt"]({encapsulation:2,styles:[],data:{}});function P(t){return s["ɵvid"](0,[s["ɵncd"](null,0),(t()(),s["ɵeld"](1,0,null,null,1,"block-ui-content",[],null,null,null,B,j)),s["ɵdid"](2,12828672,null,0,N,[S,s.ComponentFactoryResolver,s.ChangeDetectorRef],{name:[0,"name"],delayStart:[1,"delayStart"],delayStop:[2,"delayStop"],defaultMessage:[3,"defaultMessage"],templateCmp:[4,"templateCmp"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.name,n.delayStart,n.delayStop,n.message,n.template)}),null)}function M(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"block-ui",[],null,null,null,P,D)),s["ɵdid"](1,114688,null,0,I,[S],null,null)],(function(t,e){t(e,1,0)}),null)}var q=s["ɵccf"]("block-ui",I,M,{name:"name",message:"message",delayStart:"delayStart",delayStop:"delayStop",template:"template"},{},["*"]),j=s["ɵcrt"]({encapsulation:2,styles:["\n.block-ui-wrapper {\n  display: none;\n  position: fixed;\n  height: 100%;\n  width: 100%;\n  top: 0;\n  left: 0;\n  background: rgba(0, 0, 0, 0.70);\n  z-index: 30000;\n  cursor: wait;\n}\n\n.block-ui-wrapper.block-ui-wrapper--element {\n  position: absolute;\n}\n\n.block-ui-wrapper.active {\n  display: block;\n}\n\n.block-ui-wrapper.block-ui-main {\n  position: fixed;\n}\n\n.block-ui-spinner,\n.block-ui-template {\n  position: absolute;\n  top: 40%;\n  margin: 0 auto;\n  left: 0;\n  right: 0;\n  transform: translateY(-50%);\n}\n\n.block-ui-spinner > .message {\n  font-size: 1.3em;\n  text-align: center;\n  color: #fff;\n}\n\n.block-ui__element {\n  position: relative;\n}\n\n.loader,\n.loader:after {\n  border-radius: 50%;\n  width: 10em;\n  height: 10em;\n}\n.loader {\n  margin: 7px auto;\n  font-size: 5px;\n  position: relative;\n  text-indent: -9999em;\n  border-top: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-right: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-left: 1.1em solid #ffffff;\n  -webkit-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  transform: translateZ(0);\n  -webkit-animation: load8 1.1s infinite linear;\n  animation: load8 1.1s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes load8 {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n"],data:{}});function F(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,1,0,n.message||n.defaultMessage)}))}function G(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"div",[["class","block-ui-spinner"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,0,"div",[["class","loader"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,F)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.message||n.defaultMessage)}),null)}function V(t){return s["ɵvid"](0,[(t()(),s["ɵand"](0,null,null,0))],null,null)}function z(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,[[1,3],["templateOutlet",2]],null,0,null,V)),(t()(),s["ɵand"](0,null,null,0))],null,null)}function B(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{templateOutlet:0}),(t()(),s["ɵeld"](1,0,null,null,7,"div",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](3,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](4,{active:0}),(t()(),s["ɵand"](16777216,null,null,1,null,G)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,z)),s["ɵdid"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=s["ɵinlineInterpolate"](2,"block-ui-wrapper ",n.name," ",n.className,""),r=t(e,4,0,n.active);t(e,3,0,a,r),t(e,6,0,!n.templateCmp),t(e,8,0,n.templateCmp)}),null)}function Y(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"block-ui-content",[],null,null,null,B,j)),s["ɵdid"](1,12828672,null,0,N,[S,s.ComponentFactoryResolver,s.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}var H=s["ɵccf"]("block-ui-content",N,Y,{name:"name",delayStart:"delayStart",delayStop:"delayStop",defaultMessage:"message",templateCmp:"template"},{},[]),U=n("FE24"),W=n("z/SZ"),K=n("GS7A"),$=n("s7LF"),Z=n("+gVj"),J=n("LvDl"),Q=n("xj/R"),X=n("IheW");let tt=(()=>{class t{constructor(t,e){this.http=t,this.localeId=e}getLocale(){return this.localeId||"en-US"}setLocale(t){document.cookie=`cd-lang=${t}`}getLanguages(){return this.http.get("ui-api/langs")}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](s.LOCALE_ID))},token:t,providedIn:"root"}),t})();var et=function(t){return t.cs="Čeština",t["de-DE"]="Deutsch",t["en-US"]="English",t["es-ES"]="Español",t["fr-FR"]="Français",t["id-ID"]="Bahasa Indonesia",t["it-IT"]="Italiano",t["ja-JP"]="日本語",t["ko-KR"]="한국어",t["pl-PL"]="Polski",t["pt-BR"]="Português (brasileiro)",t["zh-CN"]="中文 (简体)",t["zh-TW"]="中文 (繁體)",t}({});let nt={cs:Q.a,de:Q.b,es:Q.e,fr:Q.g,id:Q.m,it:Q.y,ja:Q.z,ko:Q.A,pl:Q.C,pt:Q.D,zh:Q.I};class at{constructor(t,e){this.localeService=t,this.languageService=e,this.isDropdown=!0,this.supportedLanguages=et}ngOnInit(){this.selectedLanguage=this.languageService.getLocale(),this.defineUsedLanguage(),this.languageService.getLanguages().subscribe(t=>{this.supportedLanguages=J.pick(this.supportedLanguages,t)})}defineUsedLanguage(){const t=this.selectedLanguage.slice(0,2);t in nt&&(Object(Q.c)(t,nt[t]),this.localeService.use(t))}reloadWindow(){window.location.reload()}changeLanguage(t){this.languageService.setLocale(t),this.reloadWindow()}}var rt=n("ienR"),it=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function st(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.changeLanguage(t.context.$implicit.key)&&a),a}),null,null)),(t()(),s["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.value)}))}function ot(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,st)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,2,0,s["ɵunv"](e,2,0,s["ɵnov"](e,3).transform(n.supportedLanguages)))}),null)}function ut(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,16777216,null,null,7,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["ɵprd"](512,null,U.f,U.f,[]),s["ɵdid"](2,212992,null,0,U.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,U.f,U.a,K.b],null,null),(t()(),s["ɵeld"](3,0,null,null,2,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Select a Language"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,4).onClick()&&a),a}),null,null)),s["ɵdid"](4,147456,null,0,U.g,[s.ChangeDetectorRef,U.c,s.ElementRef,s.Renderer2,U.f],null,null),(t()(),s["ɵted"](5,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,ot)),s["ɵdid"](7,16384,null,0,U.d,[U.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,2,0)}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,2).dropup,s["ɵnov"](e,2).isOpen,s["ɵnov"](e,2).isOpen&&s["ɵnov"](e,2).isBs4),t(e,3,0,!0,s["ɵnov"](e,4).isDisabled,s["ɵnov"](e,4).isOpen),t(e,5,0,n.supportedLanguages[n.selectedLanguage])}))}function dt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.key),t(e,2,0,e.context.$implicit.key)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function lt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"select",[["class","form-control custom-select"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,1).onTouched()&&a),"change"===e&&(a=!1!==r.changeLanguage(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedLanguage=n)&&a),a}),null,null)),s["ɵdid"](1,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](3,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](5,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](6,16384,null,0,Z.h,[[8,null],Z.a],null,null),(t()(),s["ɵand"](16777216,null,null,2,null,dt)),s["ɵdid"](8,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,3,0,n.selectedLanguage),t(e,8,0,s["ɵunv"](e,8,0,s["ɵnov"](e,9).transform(n.supportedLanguages)))}),(function(t,e){t(e,0,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending,s["ɵnov"](e,6).validClass,s["ɵnov"](e,6).invalidClass)}))}function ct(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,ut)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,lt)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.isDropdown),t(e,3,0,!n.isDropdown)}),null)}var ft=n("quSY"),ht=n("oxzT"),gt=n("9nlD"),pt=n("mSOc");class bt{constructor(t,e){this.notificationService=t,this.summaryService=e,this.icons=ht.a,this.hasRunningTasks=!1,this.subs=new ft.a}ngOnInit(){this.subs.add(this.summaryService.subscribe(t=>{t&&(this.hasRunningTasks=t.executing_tasks.length>0)}))}ngOnDestroy(){this.subs.unsubscribe()}toggleSidebar(){this.notificationService.toggleSidebar()}}var mt=s["ɵcrt"]({encapsulation:0,styles:[[".running[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#2b99a8}.running[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%]{color:#fff}"]],data:{}});function yt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"a",[["title","Tasks and Notifications"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSidebar()&&a),a}),null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](3,{running:0}),(t()(),s["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](7,1),(t()(),s["ɵeld"](8,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Tasks and Notifications"]))],(function(t,e){var n=e.component,a=t(e,3,0,n.hasRunningTasks);t(e,2,0,a);var r=t(e,7,0,n.icons.bell);t(e,6,0,r)}),null)}var vt=n("+0ag"),xt=n("aexS"),_t=function(t,e,n){this.name=t,this.version=e,this.os=n,this.type="browser"},Tt=function(t){this.version=t,this.type="node",this.name="node",this.os=process.platform},Ot=function(t,e,n,a){this.name=t,this.version=e,this.os=n,this.bot=a,this.type="bot-device"},wt=function(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null},St=/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,It=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["vivaldi",/Vivaldi\/([0-9\.]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/Edg\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FBAV\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["searchbot",/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/]],Nt=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function Ct(t){var e=function(t){return""!==t&&It.reduce((function(e,n){var a=n[0];if(e)return e;var r=n[1].exec(t);return!!r&&[a,r]}),!1)}(t);if(!e)return null;var n=e[0],a=e[1];if("searchbot"===n)return new wt;var r=a[1]&&a[1].split(/[._]/).slice(0,3);r?r.length<3&&(r=function(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var a=Array(t),r=0;for(e=0;e<n;e++)for(var i=arguments[e],s=0,o=i.length;s<o;s++,r++)a[r]=i[s];return a}(r,function(t){for(var e=[],n=0;n<t;n++)e.push("0");return e}(3-r.length))):r=[];var i=r.join("."),s=function(t){for(var e=0,n=Nt.length;e<n;e++){var a=Nt[e],r=a[0];if(a[1].exec(t))return r}return null}(t),o=St.exec(t);return o&&o[1]?new Ot(n,i,s,o[1]):new _t(n,r.join("."),s)}var Rt=n("Mxhz"),At=n("sne2");class kt{constructor(t,e,n,a){this.modalRef=t,this.summaryService=e,this.userService=n,this.authStorageService=a,this.userPermission=this.authStorageService.getPermissions().user}ngOnInit(){this.copyright="Copyright(c) 2020 Ceph contributors.",this.projectConstants=At.c,this.hostAddr=window.location.hostname,this.modalVariables=this.setVariables(),this.subs=this.summaryService.subscribe(t=>{if(!t)return;const e=t.version.replace("ceph version ","").split(" ");this.hostAddr=t.mgr_host.replace(/(^\w+:|^)\/\//,"").replace(/\/$/,""),this.versionNumber=e[0],this.versionHash=e[1],this.versionName=e.slice(2,e.length).join(" ")})}ngOnDestroy(){this.subs.unsubscribe()}setVariables(){const t={};t.user=localStorage.getItem("dashboard_username"),t.role="user",this.userPermission.read&&this.userService.get(t.user).subscribe(e=>{t.role=e.roles});const e="undefined"!=typeof navigator?Ct(navigator.userAgent):"undefined"!=typeof process&&process.version?new Tt(process.version.slice(1)):null;return t.browserName=e&&e.name?e.name:"Not detected",t.browserVersion=e&&e.version?e.version:"Not detected",t.browserOS=e&&e.os?e.os:"Not detected",t}}class Et{constructor(t,e,n,a){this.summaryService=t,this.cephReleaseNamePipe=e,this.modalService=n,this.authStorageService=a,this.icons=ht.a}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`,setTimeout(()=>{t.unsubscribe()},0)})}openAboutModal(){this.modalRef=this.modalService.show(kt),this.modalRef.setClass("modal-lg")}goToApiDocs(){this.docsFormElement.nativeElement.children[0].value=this.authStorageService.getToken(),this.docsFormElement.nativeElement.submit()}}var Lt=n("LqlI"),Dt=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Pt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,12,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,5,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,4,"a",[["class","dropdown-item"],["target","_blank"]],[[8,"href",4]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](5,{disabled:0}),(t()(),s["ɵted"](-1,null,["Documentation"])),(t()(),s["ɵeld"](7,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.goToApiDocs()&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["API"])),(t()(),s["ɵeld"](10,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.openAboutModal()&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["About"]))],(function(t,e){var n=t(e,5,0,!e.component.docsUrl);t(e,4,0,"dropdown-item",n)}),(function(t,e){t(e,2,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Mt(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{docsFormElement:0}),(t()(),s["ɵeld"](1,0,[[1,0],["docsForm",1]],null,1,"form",[["action","/docs"],["method","post"],["target","_blank"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"input",[["name","token"],["type","hidden"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["ɵprd"](512,null,U.f,U.f,[]),s["ɵdid"](5,212992,null,0,U.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,U.f,U.a,K.b],null,null),(t()(),s["ɵeld"](6,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Help"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,7).onClick()&&a),a}),null,null)),s["ɵdid"](7,147456,null,0,U.g,[s.ChangeDetectorRef,U.c,s.ElementRef,s.Renderer2,U.f],null,null),(t()(),s["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](10,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](11,1),(t()(),s["ɵeld"](12,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Help"])),(t()(),s["ɵand"](16777216,null,null,1,null,Pt)),s["ɵdid"](15,16384,null,0,U.d,[U.f,s.ViewContainerRef,s.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,5,0);var a=t(e,11,0,n.icons.questionCircle);t(e,10,0,a)}),(function(t,e){t(e,3,0,s["ɵnov"](e,5).dropup,s["ɵnov"](e,5).isOpen,s["ɵnov"](e,5).isOpen&&s["ɵnov"](e,5).isBs4),t(e,6,0,!0,s["ɵnov"](e,7).isDisabled,s["ɵnov"](e,7).isOpen)}))}var qt=n("iInd");class jt{constructor(t){this.authStorageService=t,this.icons=ht.a;const e=this.authStorageService.getPermissions();this.userPermission=e.user,this.configOptPermission=e.configOpt}ngOnInit(){}}var Ft=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Gt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/user-management"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](2,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["User management"]))],(function(t,e){t(e,2,0,"/user-management")}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).target,s["ɵnov"](e,2).href)}))}function Vt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/telemetry"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](2,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Telemetry configuration"]))],(function(t,e){t(e,2,0,"/telemetry")}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).target,s["ɵnov"](e,2).href)}))}function zt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Gt)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vt)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.userPermission.read),t(e,4,0,n.configOptPermission.read)}),null)}function Bt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["ɵprd"](512,null,U.f,U.f,[]),s["ɵdid"](2,212992,null,0,U.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,U.f,U.a,K.b],null,null),(t()(),s["ɵeld"](3,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Dashboard Settings"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,4).onClick()&&a),a}),null,null)),s["ɵdid"](4,147456,null,0,U.g,[s.ChangeDetectorRef,U.c,s.ElementRef,s.Renderer2,U.f],null,null),(t()(),s["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](7,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](8,1),(t()(),s["ɵeld"](9,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Dashboard Settings"])),(t()(),s["ɵand"](16777216,null,null,1,null,zt)),s["ɵdid"](12,16384,null,0,U.d,[U.f,s.ViewContainerRef,s.TemplateRef],null,null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0);var a=t(e,8,0,n.icons.deepCheck);t(e,7,0,a)}),(function(t,e){t(e,0,0,s["ɵnov"](e,2).dropup,s["ɵnov"](e,2).isOpen,s["ɵnov"](e,2).isOpen&&s["ɵnov"](e,2).isBs4),t(e,3,0,!0,s["ɵnov"](e,4).isDisabled,s["ɵnov"](e,4).isOpen)}))}function Yt(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Bt)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.userPermission.read)}),null)}var Ht=n("DSvg");class Ut{constructor(t,e){this.authStorageService=t,this.authService=e,this.icons=ht.a}ngOnInit(){this.username=this.authStorageService.getUsername(),this.sso=this.authStorageService.isSSO()}logout(){this.authService.logout()}}var Wt=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Kt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,7,"a",[["class","dropdown-item"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](2,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](3,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](5,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](6,1),(t()(),s["ɵeld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Change password"]))],(function(t,e){var n=e.component;t(e,2,0,"/user-profile/edit");var a=t(e,6,0,n.icons.lock);t(e,5,0,a)}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).target,s["ɵnov"](e,2).href)}))}function $t(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,16,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"li",[["class","disabled"],["role","menuitem"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,3,"a",[["class","dropdown-item disabled"],["href","#"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Signed in as "])),(t()(),s["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](5,null,["",""])),(t()(),s["ɵeld"](6,0,null,null,0,"li",[["class","dropdown-divider"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Kt)),s["ɵdid"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](9,0,null,null,7,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,6,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.logout()&&a),a}),null,null)),(t()(),s["ɵeld"](11,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](13,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](14,1),(t()(),s["ɵeld"](15,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Sign out"]))],(function(t,e){var n=e.component;t(e,8,0,!n.sso);var a=t(e,14,0,n.icons.signOut);t(e,13,0,a)}),(function(t,e){t(e,5,0,e.component.username)}))}function Zt(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),s["ɵprd"](512,null,U.f,U.f,[]),s["ɵdid"](2,212992,null,0,U.c,[s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,U.f,U.a,K.b],null,null),(t()(),s["ɵeld"](3,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Logged in user"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,4).onClick()&&a),a}),null,null)),s["ɵdid"](4,147456,null,0,U.g,[s.ChangeDetectorRef,U.c,s.ElementRef,s.Renderer2,U.f],null,null),(t()(),s["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](7,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](8,1),(t()(),s["ɵeld"](9,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Logged in user"])),(t()(),s["ɵand"](16777216,null,null,1,null,$t)),s["ɵdid"](12,16384,null,0,U.d,[U.f,s.ViewContainerRef,s.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,2,0);var a=t(e,8,0,n.icons.user);t(e,7,0,a)}),(function(t,e){t(e,0,0,s["ɵnov"](e,2).dropup,s["ɵnov"](e,2).isOpen,s["ɵnov"](e,2).isOpen&&s["ɵnov"](e,2).isBs4),t(e,3,0,!0,s["ɵnov"](e,4).isDisabled,s["ɵnov"](e,4).isOpen)}))}const Jt=[Object(K.h)({height:0,visibility:"hidden"}),Object(K.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(K.h)({height:"*",visibility:"visible"}))],Qt=[Object(K.h)({height:"*",visibility:"visible"}),Object(K.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(K.h)({height:0,visibility:"hidden"}))];class Xt{constructor(t,e,n){this._el=t,this._renderer=e,this.collapsed=new s.EventEmitter,this.collapses=new s.EventEmitter,this.expanded=new s.EventEmitter,this.expands=new s.EventEmitter,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1,this.isAnimated=!1,this._display="block",this._stylesLoaded=!1,this._COLLAPSE_ACTION_NAME="collapse",this._EXPAND_ACTION_NAME="expand",this._factoryCollapseAnimation=n.build(Qt),this._factoryExpandAnimation=n.build(Jt)}set display(t){this.isAnimated?(this._display=t,"none"!==t?this.show():this.hide()):this._renderer.setStyle(this._el.nativeElement,"display",t)}set collapse(t){this._player&&!this._isAnimationDone||(this.isExpanded=t,this.toggle())}get collapse(){return this.isExpanded}ngAfterViewChecked(){this._stylesLoaded=!0,this._player&&this._isAnimationDone&&(this._player.reset(),this._renderer.setStyle(this._el.nativeElement,"height","*"))}toggle(){this.isExpanded?this.hide():this.show()}hide(){this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,this.isCollapsing=!1,this.collapses.emit(this),this._isAnimationDone=!1,this.animationRun(this.isAnimated,this._COLLAPSE_ACTION_NAME)(()=>{this._isAnimationDone=!0,this.collapsed.emit(this),this._renderer.setStyle(this._el.nativeElement,"display","none")})}show(){this._renderer.setStyle(this._el.nativeElement,"display",this._display),this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapsing=!1,this.expands.emit(this),this._isAnimationDone=!1,this.animationRun(this.isAnimated,this._EXPAND_ACTION_NAME)(()=>{this._isAnimationDone=!0,this.expanded.emit(this)})}animationRun(t,e){if(!t||!this._stylesLoaded)return t=>t();this._renderer.setStyle(this._el.nativeElement,"overflow","hidden"),this._renderer.addClass(this._el.nativeElement,"collapse");const n=e===this._EXPAND_ACTION_NAME?this._factoryExpandAnimation:this._factoryCollapseAnimation;return this._player&&this._player.destroy(),this._player=n.create(this._el.nativeElement),this._player.play(),t=>this._player.onDone(t)}}class te{static forRoot(){return{ngModule:te,providers:[]}}}class ee{transform(t){return"HEALTH_OK"===t?{color:"#00bb00"}:"HEALTH_WARN"===t?{color:"#ffa500"}:"HEALTH_ERR"===t?{color:"#ff0000"}:null}}var ne=n("MdoF"),ae=n("CNMR"),re=n("20UP"),ie=n("oMSZ");class se{constructor(t,e){this.settingsService=t,this.authStorageService=e}ngOnInit(){this.settingsService.getStandardSettings().subscribe(t=>{this.pwdExpirationSettings=new ie.a(t);const e=this.authStorageService.getPwdExpirationDate();e&&(this.expirationDays=this.getExpirationDays(e),this.alertType=this.expirationDays<=this.pwdExpirationSettings.pwdExpirationWarning2?"danger":"warning",this.authStorageService.isPwdDisplayedSource.next(!0))})}getExpirationDays(t){const e=new Date,n=new Date(1e3*t);return Math.floor((n.valueOf()-e.valueOf())/864e5)}close(){this.authStorageService.isPwdDisplayedSource.next(!1)}}var oe=s["ɵcrt"]({encapsulation:0,styles:[[".no-margin-bottom .alert{margin-bottom:0}"]],data:{}});function ue(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Your password will expire in "])),(t()(),s["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["less than 1"])),(t()(),s["ɵted"](-1,null,[" day. Click "])),(t()(),s["ɵeld"](5,0,null,null,2,"a",[["class","alert-link"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](6,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["here"])),(t()(),s["ɵted"](-1,null,[" to change it now."]))],(function(t,e){t(e,6,0,"/user-profile/edit")}),(function(t,e){t(e,5,0,s["ɵnov"](e,6).target,s["ɵnov"](e,6).href)}))}function de(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Your password will expire in "])),(t()(),s["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](3,null,["",""])),(t()(),s["ɵted"](-1,null,[" day(s). Click "])),(t()(),s["ɵeld"](5,0,null,null,2,"a",[["class","alert-link"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](6,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["here"])),(t()(),s["ɵted"](-1,null,[" to change it now."]))],(function(t,e){t(e,6,0,"/user-profile/edit")}),(function(t,e){t(e,3,0,e.component.expirationDays),t(e,5,0,s["ɵnov"](e,6).target,s["ɵnov"](e,6).href)}))}function le(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"alert",[["class","no-margin-bottom"]],null,[[null,"onClose"]],(function(t,e,n){var a=!0;return"onClose"===e&&(a=!1!==t.component.close(n)&&a),a}),ne.c,ne.b)),s["ɵdid"](1,114688,null,0,ae.a,[ae.b,s.ChangeDetectorRef],{type:[0,"type"],dismissible:[1,"dismissible"]},{onClose:"onClose"}),(t()(),s["ɵand"](16777216,null,0,1,null,ue)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,de)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,s["ɵinlineInterpolate"](1,"",n.alertType,""),!0),t(e,3,0,0===n.expirationDays),t(e,5,0,n.expirationDays>0)}),null)}function ce(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,le)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,null!=n.expirationDays&&n.expirationDays<=n.pwdExpirationSettings.pwdExpirationWarning1)}),null)}var fe=n("7qid"),he=n("38Bd"),ge=n("wd/R");class pe{transform(t,e=!1){return e?ge(t).fromNow():this._forHumans(t)}_forHumans(t){const e=[[`${Math.floor(t/31536e3)}`,"years"],[`${Math.floor(t%31536e3/86400)}`,"days"],[`${Math.floor(t%86400/3600)}`,"hours"],[`${Math.floor(t%3600/60)}`,"minutes"],[`${Math.floor(t%60)}`,"seconds"]];let n="";for(let a=0,r=e.length;a<r;a++)"0"!==e[a][0]&&(n+=" "+e[a][0]+" "+("1"===e[a][0]?e[a][1].substr(0,e[a][1].length-1):e[a][1]));return n.trim()||"1 second"}}var be=n("a0VL"),me=n("moLw"),ye=n("WF9J"),ve=s["ɵcrt"]({encapsulation:2,styles:["[data-simplebar]{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start;align-content:flex-start;-webkit-box-align:start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;visibility:visible;max-width:100%;max-height:100%;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{width:0;height:0}.simplebar-content:after,.simplebar-content:before{content:' ';display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;-webkit-box-flex:inherit;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:'';background:#000;border-radius:7px;left:2px;right:2px;opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;-webkit-transition:opacity linear;transition:opacity linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}","ngx-simplebar{display:block}"],data:{}});function xe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"div",[["class","simplebar-wrapper"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"div",[["class","simplebar-height-auto-observer-wrapper"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"div",[["class","simplebar-height-auto-observer"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,4,"div",[["class","simplebar-mask"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,3,"div",[["class","simplebar-offset"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,2,"div",[["class","simplebar-content-wrapper"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,1,"div",[["class","simplebar-content"]],null,null,null,null,null)),s["ɵncd"](null,0),(t()(),s["ɵeld"](8,0,null,null,0,"div",[["class","simplebar-placeholder"]],null,null,null,null,null)),(t()(),s["ɵeld"](9,0,null,null,1,"div",[["class","simplebar-track simplebar-horizontal"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,0,"div",[["class","simplebar-scrollbar"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,1,"div",[["class","simplebar-track simplebar-vertical"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,0,"div",[["class","simplebar-scrollbar"]],null,null,null,null,null))],null,null)}var _e=n("O9Tv"),Te=n("G1I9"),Oe=n("lJxs"),we=n("pL04");let Se=(()=>{class t{constructor(t,e){this.http=t,this.settingsService=e,this.baseURL="api/prometheus",this.settingsKey={alertmanager:"api/settings/alertmanager-api-host",prometheus:"api/settings/prometheus-api-host"}}ifAlertmanagerConfigured(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.alertmanager,t,e)}disableAlertmanagerConfig(){this.settingsService.disableSetting(this.settingsKey.alertmanager)}ifPrometheusConfigured(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.prometheus,t,e)}disablePrometheusConfig(){this.settingsService.disableSetting(this.settingsKey.prometheus)}getAlerts(t={}){return this.http.get(this.baseURL,{params:t})}getSilences(t={}){return this.http.get(`${this.baseURL}/silences`,{params:t})}getRules(t="all"){return this.http.get(`${this.baseURL}/rules`).pipe(Object(Oe.a)(e=>(["alerting","rewrites"].includes(t)&&e.groups.map(e=>{e.rules=e.rules.filter(e=>e.type===t)}),e)))}setSilence(t){return this.http.post(`${this.baseURL}/silence`,t,{observe:"response"})}expireSilence(t){return this.http.delete(`${this.baseURL}/silence/${t}`,{observe:"response"})}getNotifications(t){return this.http.get(`${this.baseURL}/notifications?from=${t&&t.id?t.id:"last"}`)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](re.a))},token:t,providedIn:we.a}),t})();var Ie=n("mtw6");let Ne=(()=>{class t{constructor(t){this.notificationService=t}sendNotifications(t){t.forEach(t=>this.notificationService.show(t))}convertToCustomAlerts(t){return J.uniqWith(t.map(t=>({status:J.isObject(t.status)?t.status.state:this.getPrometheusNotificationStatus(t),name:t.labels.alertname,url:t.generatorURL,summary:t.annotations.summary,fingerprint:J.isObject(t.status)&&t.fingerprint})),J.isEqual)}getPrometheusNotificationStatus(t){const e=t.status;return"firing"===e?"active":e}convertAlertToNotification(t){return new Te.b(this.formatType(t.status),`${t.name} (${t.status})`,this.appendSourceLink(t,t.summary),void 0,"Prometheus")}formatType(t){return Ie.a[J.findKey({error:["firing","active"],info:["suppressed","unprocessed"],success:["resolved"]},e=>e.includes(t))]}appendSourceLink(t,e){return`${e} <a href="${t.url}" target="_blank"><i class="${ht.a.lineChart}"></i></a>`}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](gt.a))},token:t,providedIn:"root"}),t})(),Ce=(()=>{class t{constructor(t,e){this.alertFormatter=t,this.prometheusService=e,this.canAlertsBeNotified=!1,this.alerts=[],this.rules=[]}getAlerts(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.prometheusService.getAlerts().subscribe(t=>this.handleAlerts(t),t=>{[404,504].includes(t.status)&&this.prometheusService.disableAlertmanagerConfig()})})}getRules(){this.prometheusService.ifPrometheusConfigured(()=>{this.prometheusService.getRules("alerting").subscribe(t=>{this.rules=t.groups.reduce((t,e)=>t.concat(e.rules.map(t=>(t.group=e.name,t))),[])})})}refresh(){this.getAlerts(),this.getRules()}handleAlerts(t){this.canAlertsBeNotified&&this.notifyOnAlertChanges(t,this.alerts),this.alerts=t,this.canAlertsBeNotified=!0}notifyOnAlertChanges(t,e){const n=this.getChangedAlerts(this.alertFormatter.convertToCustomAlerts(t),this.alertFormatter.convertToCustomAlerts(e)).map(t=>this.alertFormatter.convertAlertToNotification(t));this.alertFormatter.sendNotifications(n)}getChangedAlerts(t,e){return J.differenceWith(t,e,J.isEqual).concat(this.getVanishedAlerts(t,e))}getVanishedAlerts(t,e){return J.differenceWith(e,t,(t,e)=>t.fingerprint===e.fingerprint).map(t=>(t.status="resolved",t))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](Ne),s["ɵɵinject"](Se))},token:t,providedIn:"root"}),t})(),Re=(()=>{class t{constructor(t,e){this.alertFormatter=t,this.prometheusService=e,this.backendFailure=!1,this.notifications=[]}refresh(){this.backendFailure||this.prometheusService.getNotifications(J.last(this.notifications)).subscribe(t=>this.handleNotifications(t),()=>this.backendFailure=!0)}handleNotifications(t){0!==t.length&&(this.notifications.length>0&&this.alertFormatter.sendNotifications(J.flatten(t.map(t=>this.formatNotification(t)))),this.notifications=this.notifications.concat(t))}formatNotification(t){return this.alertFormatter.convertToCustomAlerts(t.alerts).map(t=>this.alertFormatter.convertAlertToNotification(t))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](Ne),s["ɵɵinject"](Se))},token:t,providedIn:"root"}),t})();var Ae=n("ufoC");class ke{constructor(t,e,n,a,r,i,s,o){this.notificationService=t,this.summaryService=e,this.taskMessageService=n,this.prometheusNotificationService=a,this.authStorageService=r,this.prometheusAlertService=i,this.ngZone=s,this.cdRef=o,this.isSidebarOpened=!1,this.executingTasks=[],this.subs=new ft.a,this.icons=ht.a,this.last_task="",this.mutex=new _e.Mutex,this.simplebar={autoHide:!1},this.notifications=[]}ngOnDestroy(){window.clearInterval(this.interval),window.clearTimeout(this.timeout),this.subs.unsubscribe()}ngOnInit(){this.last_task=window.localStorage.getItem("last_task");const t=this.authStorageService.getPermissions();t.prometheus.read&&t.configOpt.read&&(this.triggerPrometheusAlerts(),this.ngZone.runOutsideAngular(()=>{this.interval=window.setInterval(()=>{this.ngZone.run(()=>{this.triggerPrometheusAlerts()})},5e3)})),this.subs.add(this.notificationService.data$.subscribe(t=>{this.notifications=J.orderBy(t,["timestamp"],["desc"]),this.cdRef.detectChanges()})),this.subs.add(this.notificationService.sidebarSubject.subscribe(t=>{this.isSidebarOpened=!t&&!this.isSidebarOpened,window.clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{this.cdRef.detectChanges()},0)})),this.subs.add(this.summaryService.subscribe(t=>{t&&(this._handleTasks(t.executing_tasks),this.mutex.acquire().then(e=>{J.filter(t.finished_tasks,t=>!this.last_task||ge(t.end_time).isAfter(this.last_task)).forEach(t=>{const e=this.notificationService.finishedTaskToNotification(t,t.success),n=new Te.a(e);n.timestamp=t.end_time,n.duration=t.duration,this.last_task&&!ge(t.end_time).isAfter(this.last_task)||(this.last_task=t.end_time,window.localStorage.setItem("last_task",this.last_task)),this.notificationService.save(n)}),this.cdRef.detectChanges(),e()}))}))}_handleTasks(t){for(const e of t)e.description=this.taskMessageService.getRunningTitle(e);this.executingTasks=t}triggerPrometheusAlerts(){this.prometheusAlertService.refresh(),this.prometheusNotificationService.refresh()}removeAll(){this.notificationService.removeAll()}remove(t){this.notificationService.remove(t)}closeSidebar(){this.isSidebarOpened=!1}trackByFn(t){return t}}var Ee=s["ɵcrt"]({encapsulation:0,styles:[["[_nghost-%COMP%]{position:fixed;top:53px;bottom:10px;right:-350px;width:350px;max-width:90vw;z-index:9;transition:all .6s}.active[_nghost-%COMP%]{right:20px}.card[_ngcontent-%COMP%]{height:100%}ngx-simplebar[_ngcontent-%COMP%]{height:calc(100% - 42.2px)}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.btn-link[_ngcontent-%COMP%]   .fa-trash-o[_ngcontent-%COMP%]{color:#000}table[_ngcontent-%COMP%]{width:100%}.row[_ngcontent-%COMP%]{margin-left:0;margin-right:0}"]],data:{}});function Le(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,29,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,27,"div",[["class","card tc_task border-0 mb-3"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,26,"div",[["class","row no-gutters"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,12,"div",[["class","col-md-3 text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,11,"span",[["class","text-info"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpad"](7,2),(t()(),s["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](10,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](11,2),(t()(),s["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](14,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](15,4),(t()(),s["ɵeld"](16,0,null,null,12,"div",[["class","col-md-9"]],null,null,null,null,null)),(t()(),s["ɵeld"](17,0,null,null,11,"div",[["class","card-body p-0"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,1,"h6",[["class","card-title bold"]],null,null,null,null,null)),(t()(),s["ɵted"](19,null,["",""])),(t()(),s["ɵeld"](20,0,null,null,2,"div",[["class","progress mb-1"]],null,null,null,null,null)),(t()(),s["ɵeld"](21,0,null,null,1,"progressbar",[["class","progress-striped active"],["max","100"]],[[1,"max",0],[2,"progress",null]],null,null,fe.b,fe.a)),s["ɵdid"](22,49152,null,0,he.b,[he.c],{animate:[0,"animate"],striped:[1,"striped"],value:[2,"value"],max:[3,"max"]},null),(t()(),s["ɵeld"](23,0,null,null,5,"p",[["class","card-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵeld"](24,0,null,null,2,"small",[["class","date float-left"]],null,null,null,null,null)),(t()(),s["ɵted"](25,null,[" "," "])),s["ɵppd"](26,1),(t()(),s["ɵeld"](27,0,null,null,1,"span",[["class","float-right"]],null,null,null,null,null)),(t()(),s["ɵted"](28,null,[" "," % "])),(t()(),s["ɵeld"](29,0,null,null,0,"hr",[],null,null,null,null,null))],(function(t,e){var n=e.component,a=t(e,7,0,n.icons.stack,n.icons.large2x);t(e,6,0,"text-info",a);var r=t(e,11,0,n.icons.stack2x,n.icons.circle);t(e,10,0,r);var i=t(e,15,0,n.icons.stack1x,n.icons.spinner,n.icons.spin,n.icons.inverse);t(e,14,0,i),t(e,22,0,!0,!0,e.context.$implicit.progress,"100")}),(function(t,e){t(e,19,0,e.context.$implicit.description),t(e,21,0,s["ɵnov"](e,22).max,s["ɵnov"](e,22).addClass);var n=s["ɵunv"](e,25,0,t(e,26,0,s["ɵnov"](e.parent.parent,0),e.context.$implicit.begin_time));t(e,25,0,n),t(e,28,0,e.context.$implicit.progress||0)}))}function De(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Le)),s["ɵdid"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.executingTasks,n.trackByFn)}),null)}function Pe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"small",[],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Duration:"])),(t()(),s["ɵted"](4,null,[" "," "])),s["ɵpid"](0,pe,[]),(t()(),s["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,4,0,s["ɵunv"](e,4,0,s["ɵnov"](e,5).transform(e.parent.context.$implicit.duration)))}))}function Me(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,37,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,35,"div",[["class","card tc_notification border-0 mb-3"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,34,"div",[["class","row no-gutters"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,12,"div",[["class","col-md-3 text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,11,"span",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](7,3),(t()(),s["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](10,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](11,2),(t()(),s["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](14,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](15,3),(t()(),s["ɵeld"](16,0,null,null,20,"div",[["class","col-md-9"]],null,null,null,null,null)),(t()(),s["ɵeld"](17,0,null,null,19,"div",[["class","card-body p-0"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,4,"button",[["class","btn btn-link float-right mt-0 pt-0"],["title","Remove notification"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.remove(t.context.index),a=!1!==n.stopPropagation()&&a),a}),null,null)),(t()(),s["ɵeld"](19,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](21,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](22,1),(t()(),s["ɵeld"](23,0,null,null,1,"h6",[["class","card-title bold"]],null,null,null,null,null)),(t()(),s["ɵted"](24,null,["",""])),(t()(),s["ɵeld"](25,0,null,null,0,"p",[["class","card-text"]],[[8,"innerHTML",1]],null,null,null,null)),(t()(),s["ɵeld"](26,0,null,null,10,"p",[["class","card-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Pe)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](29,0,null,null,3,"small",[["class","date"]],[[8,"title",0]],null,null,null,null)),s["ɵppd"](30,1),(t()(),s["ɵted"](31,null,["",""])),s["ɵpid"](0,pe,[]),(t()(),s["ɵeld"](33,0,null,null,3,"i",[["class","float-right custom-icon"]],[[8,"title",0]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](35,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpad"](36,1),(t()(),s["ɵeld"](37,0,null,null,0,"hr",[],null,null,null,null,null))],(function(t,e){var n=e.component,a=t(e,7,0,n.icons.stack,n.icons.large2x,e.context.$implicit.textClass);t(e,6,0,a);var r=t(e,11,0,n.icons.circle,n.icons.stack2x);t(e,10,0,r);var i=t(e,15,0,n.icons.stack1x,n.icons.inverse,e.context.$implicit.iconClass);t(e,14,0,i);var s=t(e,22,0,n.icons.trash);t(e,21,0,s),t(e,28,0,e.context.$implicit.duration);var o=t(e,36,0,e.context.$implicit.applicationClass);t(e,35,0,"float-right custom-icon",o)}),(function(t,e){t(e,24,0,e.context.$implicit.title),t(e,25,0,e.context.$implicit.message);var n=s["ɵunv"](e,29,0,t(e,30,0,s["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.timestamp));t(e,29,0,n),t(e,31,0,s["ɵunv"](e,31,0,s["ɵnov"](e,32).transform(e.context.$implicit.timestamp,!0))),t(e,33,0,e.context.$implicit.application)}))}function qe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,7,"button",[["class","btn btn-light btn-block"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.removeAll(),a=!1!==n.stopPropagation()&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](5,1),(t()(),s["ɵted"](-1,null,["   "])),(t()(),s["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Clear notifications"])),(t()(),s["ɵeld"](9,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Me)),s["ɵdid"](11,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,5,0,n.icons.trash);t(e,4,0,a),t(e,11,0,n.notifications)}),null)}function je(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,qe)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.notifications.length>0)}),null)}function Fe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"div",[["class","message text-center"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["There are no notifications."]))],null,null)}function Ge(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Fe)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,0===n.notifications.length&&0===n.executingTasks.length)}),null)}function Ve(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function ze(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Be(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ye(t){return s["ɵvid"](2,[s["ɵpid"](0,be.a,[i.DatePipe]),(t()(),s["ɵand"](0,[["tasksTpl",2]],null,0,null,De)),(t()(),s["ɵand"](0,[["notificationsTpl",2]],null,0,null,je)),(t()(),s["ɵand"](0,[["emptyTpl",2]],null,0,null,Ge)),(t()(),s["ɵeld"](4,0,null,null,16,"div",[["class","card"]],null,[[null,"clickOutside"]],(function(t,e,n){var a=!0;return"clickOutside"===e&&(a=!1!==t.component.closeSidebar()&&a),a}),null,null)),s["ɵdid"](5,737280,null,0,me.ClickOutsideDirective,[s.ElementRef,s.NgZone,s.PLATFORM_ID],{clickOutsideEnabled:[0,"clickOutsideEnabled"]},{clickOutside:"clickOutside"}),(t()(),s["ɵeld"](6,0,null,null,5,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Tasks and Notifications"])),(t()(),s["ɵeld"](9,0,null,null,2,"button",[["class","close float-right"],["tabindex","-1"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.closeSidebar()&&a),a}),null,null)),(t()(),s["ɵeld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["×"])),(t()(),s["ɵeld"](12,0,null,null,8,"ngx-simplebar",[["data-simplebar","init"]],null,null,null,xe,ve)),s["ɵdid"](13,4440064,null,0,ye.a,[s.ElementRef],{options:[0,"options"]},null),(t()(),s["ɵeld"](14,0,null,0,6,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Ve)),s["ɵdid"](16,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ze)),s["ɵdid"](18,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Be)),s["ɵdid"](20,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.isSidebarOpened),t(e,13,0,n.simplebar),t(e,16,0,s["ɵnov"](e,1)),t(e,18,0,s["ɵnov"](e,2)),t(e,20,0,s["ɵnov"](e,3))}),null)}var He=n("ej+x");class Ue{constructor(t,e,n,a){this.authStorageService=t,this.summaryService=e,this.featureToggles=n,this.prometheusAlertService=a,this.isPwdDisplayed=!1,this.icons=ht.a,this.isCollapsed=!0,this.showMenuSidebar=!0,this.displayedSubMenu="",this.simplebar={autoHide:!1},this.subs=new ft.a,this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}ngOnInit(){this.subs.add(this.summaryService.subscribe(t=>{t&&(this.summaryData=t)})),this.subs.add(this.authStorageService.isPwdDisplayed$.subscribe(t=>{this.isPwdDisplayed=t}))}ngOnDestroy(){this.subs.unsubscribe()}blockHealthColor(){if(this.summaryData&&this.summaryData.rbd_mirroring){if(this.summaryData.rbd_mirroring.errors>0)return{color:"#d9534f"};if(this.summaryData.rbd_mirroring.warnings>0)return{color:"#f0ad4e"}}}toggleSubMenu(t){this.displayedSubMenu=this.displayedSubMenu===t?"":t}}var We=s["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";  .cd-navbar-top .cd-navbar-brand{background:#374249;border-top:4px solid #2b99a8}  .cd-navbar-top .cd-navbar-brand.isPwdDisplayed{top:37.6px}  .cd-navbar-top .cd-navbar-brand .navbar-brand,   .cd-navbar-top .cd-navbar-brand .navbar-brand:hover{color:#eee;height:auto;padding:0}  .cd-navbar-top .cd-navbar-brand .navbar-brand>img{height:25px}  .cd-navbar-top .cd-navbar-brand .navbar-toggler{border:0}  .cd-navbar-top .cd-navbar-brand .navbar-toggler:focus,   .cd-navbar-top .cd-navbar-brand .navbar-toggler:hover{outline:0}  .cd-navbar-top .cd-navbar-brand .navbar-toggler .fa-navicon{color:#eee}  .cd-navbar-top .cd-navbar-brand .navbar-collapse{padding:0}  .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>.active>a{color:#eee;background-color:#2b99a8}  .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a,   .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a:focus,   .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}  .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown]>a,   .cd-navbar-top .navbar-nav>li>.cd-navbar>a,   .cd-navbar-top .navbar-nav>li>a{color:#eee;line-height:1;padding:13.5px 18px!important;position:relative;display:block;text-decoration:none}  .cd-navbar-top .navbar-nav .nav-link,   .cd-navbar-top .navbar-nav .nav-link:hover{color:#eee}  .cd-navbar-top .navbar-nav>li:hover,   .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown].open>a,   .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown]>a:hover,   .cd-navbar-top .navbar-nav>li>.cd-navbar>a:hover,   .cd-navbar-top .navbar-nav>li>a:hover{background-color:#2b99a8}  .cd-navbar-top .navbar-nav>.open>.cd-navbar>[dropdown]>a,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>[dropdown]>a:hover,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a:focus,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a:hover,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>li>a:focus,   .cd-navbar-top .navbar-nav>.open>a,   .cd-navbar-top .navbar-nav>.open>a:focus,   .cd-navbar-top .navbar-nav>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}@media (min-width:768px){  .cd-navbar-top .cd-navbar-utility{border-bottom:0;position:absolute;right:0;top:0;font-size:1.1rem}}@media (max-width:calc(768px - 1px)){  .cd-navbar-top .navbar-nav{margin:0}  .cd-navbar-top .navbar-nav .fa{margin-right:.5em}  .cd-navbar-top .navbar-nav .open .dropdown-menu{border:0;padding-top:0;padding-bottom:0;background-color:#2b99a8}  .cd-navbar-top .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 35px;color:#eee}  .cd-navbar-top .navbar-nav .open .dropdown-menu>.active>a{background-color:#2b99a8}  .cd-navbar-top .navbar-nav>li>a:hover{background-color:#2b99a8}}.cd-navbar-primary[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .cd-navbar-primary[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .cd-navbar-primary[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{color:#eee!important;background-color:#2b99a8!important;border:0!important}.wrapper[_ngcontent-%COMP%]{display:flex;width:100%}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]{width:200px;top:43px;background:#374249;overflow-y:auto;position:fixed;bottom:0;left:0;z-index:999;color:#fff;transition:all .3s}.wrapper[_ngcontent-%COMP%]   #sidebar.active[_ngcontent-%COMP%]{margin-left:-200px}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul.component[_ngcontent-%COMP%]{padding:20px 0;margin:0}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#fff;padding:10px}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{padding:10px;font-size:1.1em;display:block;color:#fff;text-decoration:none}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff;background:#2b99a8}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%] > .badge[_ngcontent-%COMP%]{margin-left:5px}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li.active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]   a[aria-expanded=true][_ngcontent-%COMP%]{color:#fff}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[_ngcontent-%COMP%]{position:relative}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[_ngcontent-%COMP%]::after{position:absolute;right:20px;content:"";font-family:ForkAwesome;border:0;font-size:1rem;transition:transform .3s ease-in-out}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[aria-expanded=true][_ngcontent-%COMP%]::after{transform:rotate(90deg)}.wrapper[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-size:.9em!important;padding-left:30px!important;background:#4d5c66}.wrapper[_ngcontent-%COMP%]   .cd-navbar-primary[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus{outline:0}.wrapper[_ngcontent-%COMP%]   ngx-simplebar[_ngcontent-%COMP%]{height:100%}#content[_ngcontent-%COMP%]{width:calc(100% - 200px);transition:all .3s;position:absolute;top:43px;bottom:0;right:0}#content.active[_ngcontent-%COMP%]{width:100vw}.isPwdDisplayed[_nghost-%COMP%]   .cd-navbar-top[_ngcontent-%COMP%]   .cd-navbar-brand[_ngcontent-%COMP%]{top:37.6px}.isPwdDisplayed[_nghost-%COMP%]   #sidebar[_ngcontent-%COMP%]{top:80.6px}.isPwdDisplayed[_nghost-%COMP%]   #content[_ngcontent-%COMP%]{top:80.6px}.isPwdDisplayed[_nghost-%COMP%]   cd-notifications-sidebar[_ngcontent-%COMP%]{top:90.6px}']],data:{}});function Ke(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function $e(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ze(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"cd-language-selector",[["class","cd-navbar"]],null,null,null,ct,it)),s["ɵdid"](2,114688,null,0,at,[rt.l,tt],null,null),(t()(),s["ɵeld"](3,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,1,"cd-notifications",[["class","cd-navbar"]],null,null,null,yt,mt)),s["ɵdid"](5,245760,null,0,bt,[gt.a,pt.a],null,null),(t()(),s["ɵeld"](6,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"cd-dashboard-help",[["class","cd-navbar"]],null,null,null,Mt,Dt)),s["ɵdid"](8,114688,null,0,Et,[pt.a,vt.a,Lt.b,xt.a],null,null),(t()(),s["ɵeld"](9,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,1,"cd-administration",[["class","cd-navbar"]],null,null,null,Yt,Ft)),s["ɵdid"](11,114688,null,0,jt,[xt.a],null,null),(t()(),s["ɵeld"](12,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,1,"cd-identity",[["class","cd-navbar"]],null,null,null,Zt,Wt)),s["ɵdid"](14,114688,null,0,Ut,[xt.a,Ht.a],null,null)],(function(t,e){t(e,2,0),t(e,5,0),t(e,8,0),t(e,11,0),t(e,14,0)}),null)}function Je(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,5,{links:1}),s["ɵqud"](603979776,6,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/hosts"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[6,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Hosts"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/hosts")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function Qe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_inventory"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,7,{links:1}),s["ɵqud"](603979776,8,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/inventory"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[8,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Inventory"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/inventory")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function Xe(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_monitor"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,9,{links:1}),s["ɵqud"](603979776,10,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/monitor/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[10,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Monitors"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/monitor/")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function tn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_services"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,11,{links:1}),s["ɵqud"](603979776,12,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/services/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[12,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Services"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/services/")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function en(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_osds"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,13,{links:1}),s["ɵqud"](603979776,14,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/osd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[14,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["OSDs"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/osd")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function nn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_configuration"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,15,{links:1}),s["ɵqud"](603979776,16,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/configuration"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[16,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Configuration"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/configuration")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function an(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_crush"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,17,{links:1}),s["ɵqud"](603979776,18,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/crush-map"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[18,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["CRUSH map"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/crush-map")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function rn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_modules"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,19,{links:1}),s["ɵqud"](603979776,20,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/mgr-modules"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[20,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Manager modules"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/mgr-modules")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function sn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_log"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,21,{links:1}),s["ɵqud"](603979776,22,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[22,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Logs"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/logs")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function on(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"small",[["class","badge badge-danger"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.prometheusAlertService.alerts.length)}))}function un(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"li",[["class","tc_submenuitem tc_submenuitem_monitoring"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,23,{links:1}),s["ɵqud"](603979776,24,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,5,"a",[["routerLink","/monitoring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[24,4],[4,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Monitoring"])),(t()(),s["ɵand"](16777216,null,null,1,null,on)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/monitoring"),t(e,9,0,n.prometheusAlertService.alerts.length>0)}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function dn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,28,"li",[["class","nav-item tc_menuitem_cluster"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,3,{links:1}),s["ɵqud"](603979776,4,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("cluster")&&a),a}),null,null)),(t()(),s["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cluster"])),(t()(),s["ɵeld"](7,0,null,null,21,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),s["ɵdid"](8,8404992,null,0,Xt,[s.ElementRef,s.Renderer2,K.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Je)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Qe)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Xe)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,tn)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,en)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,nn)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,an)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,rn)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sn)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,un)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,8,0,!0,"cluster"!==n.displayedSubMenu),t(e,10,0,n.permissions.hosts.read),t(e,12,0,n.permissions.hosts.read),t(e,14,0,n.permissions.monitor.read),t(e,16,0,n.permissions.hosts.read),t(e,18,0,n.permissions.osd.read),t(e,20,0,n.permissions.configOpt.read),t(e,22,0,n.permissions.osd.read),t(e,24,0,n.permissions.configOpt.read),t(e,26,0,n.permissions.log.read),t(e,28,0,n.permissions.prometheus.read)}),(function(t,e){t(e,4,0,"cluster"==e.component.displayedSubMenu),t(e,7,0,s["ɵnov"](e,8).isCollapse,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isCollapsed,s["ɵnov"](e,8).isCollapsing)}))}function ln(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_pool"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,25,{links:1}),s["ɵqud"](603979776,26,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/pool"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[26,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Pools"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/pool")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function cn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_block_images"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,29,{links:1}),s["ɵqud"](603979776,30,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/block/rbd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[30,4],[28,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Images"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/rbd")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function fn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"small",[["class","badge badge-warning"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)}))}function hn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"small",[["class","badge badge-danger"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors)}))}function gn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,"li",[["class","tc_submenuitem tc_submenuitem_block_mirroring"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,31,{links:1}),s["ɵqud"](603979776,32,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,7,"a",[["routerLink","/block/mirroring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[32,4],[28,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Mirroring"])),(t()(),s["ɵand"](16777216,null,null,1,null,fn)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,hn)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/block/mirroring"),t(e,9,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)),t(e,11,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors))}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function pn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_block_iscsi"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,33,{links:1}),s["ɵqud"](603979776,34,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["routerLink","/block/iscsi"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[34,4],[28,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["iSCSI"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/iscsi")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function bn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,16,"li",[["class","nav-item tc_menuitem_block"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,27,{links:1}),s["ɵqud"](603979776,28,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,4,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("block")&&a),a}),null,null)),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),s["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Block"])),(t()(),s["ɵeld"](9,0,null,null,7,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),s["ɵdid"](10,8404992,null,0,Xt,[s.ElementRef,s.Renderer2,K.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,cn)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,gn)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,pn)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,6,0,n.blockHealthColor()),t(e,10,0,!0,"block"!==n.displayedSubMenu),t(e,12,0,n.permissions.rbdImage.read&&e.parent.context.ngIf.rbd),t(e,14,0,n.permissions.rbdMirroring.read&&e.parent.context.ngIf.mirroring),t(e,16,0,n.permissions.iscsi.read&&e.parent.context.ngIf.iscsi)}),(function(t,e){t(e,4,0,"block"==e.component.displayedSubMenu),t(e,9,0,s["ɵnov"](e,10).isCollapse,s["ɵnov"](e,10).isExpanded,s["ɵnov"](e,10).isExpanded,s["ɵnov"](e,10).isExpanded,s["ɵnov"](e,10).isCollapsed,s["ɵnov"](e,10).isCollapsing)}))}function mn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_nfs"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,35,{links:1}),s["ɵqud"](603979776,36,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/nfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[36,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["NFS"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/nfs")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function yn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_cephfs"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,37,{links:1}),s["ɵqud"](603979776,38,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/cephfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](5,671744,[[38,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Filesystems"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/cephfs")}),(function(t,e){t(e,4,0,s["ɵnov"](e,5).target,s["ɵnov"](e,5).href)}))}function vn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,29,"li",[["class","nav-item tc_menuitem_rgw"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](1,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,39,{links:1}),s["ɵqud"](603979776,40,{linksWithHrefs:1}),(t()(),s["ɵeld"](4,0,null,null,2,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("rgw")&&a),a}),null,null)),(t()(),s["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Object Gateway"])),(t()(),s["ɵeld"](7,0,null,null,22,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),s["ɵdid"](8,8404992,null,0,Xt,[s.ElementRef,s.Renderer2,K.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),s["ɵeld"](9,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_daemons"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](10,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,41,{links:1}),s["ɵqud"](603979776,42,{linksWithHrefs:1}),(t()(),s["ɵeld"](13,0,null,null,2,"a",[["routerLink","/rgw/daemon"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,14).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](14,671744,[[42,4],[40,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Daemons"])),(t()(),s["ɵeld"](16,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_users"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](17,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,43,{links:1}),s["ɵqud"](603979776,44,{linksWithHrefs:1}),(t()(),s["ɵeld"](20,0,null,null,2,"a",[["routerLink","/rgw/user"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,21).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](21,671744,[[44,4],[40,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Users"])),(t()(),s["ɵeld"](23,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_buckets"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](24,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,45,{links:1}),s["ɵqud"](603979776,46,{linksWithHrefs:1}),(t()(),s["ɵeld"](27,0,null,null,2,"a",[["routerLink","/rgw/bucket"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,28).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](28,671744,[[46,4],[40,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Buckets"]))],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,8,0,!0,"rgw"!==n.displayedSubMenu),t(e,10,0,"active"),t(e,14,0,"/rgw/daemon"),t(e,17,0,"active"),t(e,21,0,"/rgw/user"),t(e,24,0,"active"),t(e,28,0,"/rgw/bucket")}),(function(t,e){t(e,4,0,"rgw"==e.component.displayedSubMenu),t(e,7,0,s["ɵnov"](e,8).isCollapse,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isExpanded,s["ɵnov"](e,8).isCollapsed,s["ɵnov"](e,8).isCollapsing),t(e,13,0,s["ɵnov"](e,14).target,s["ɵnov"](e,14).href),t(e,20,0,s["ɵnov"](e,21).target,s["ɵnov"](e,21).href),t(e,27,0,s["ɵnov"](e,28).target,s["ɵnov"](e,28).href)}))}function xn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,28,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,15,"li",[["class","nav-item tc_menuitem_dashboard"],["routerLinkActive","active"]],null,null,null,null,null)),s["ɵdid"](2,1720320,null,2,qt.o,[qt.m,s.ElementRef,s.Renderer2,[2,qt.n],[2,qt.p]],{routerLinkActive:[0,"routerLinkActive"]},null),s["ɵqud"](603979776,1,{links:1}),s["ɵqud"](603979776,2,{linksWithHrefs:1}),(t()(),s["ɵeld"](5,0,null,null,11,"a",[["class","nav-link"],["routerLink","/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](6,671744,[[2,4]],0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Dashboard"])),(t()(),s["ɵted"](-1,null,["  "])),(t()(),s["ɵeld"](10,0,null,null,6,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](12,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](13,1),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](15,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),s["ɵppd"](16,1),(t()(),s["ɵand"](16777216,null,null,1,null,dn)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ln)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,bn)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mn)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yn)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vn)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,"active"),t(e,6,0,"/dashboard");var a=t(e,13,0,n.icons.health);t(e,12,0,a);var r=s["ɵunv"](e,15,0,t(e,16,0,s["ɵnov"](e.parent.parent,0),null==n.summaryData?null:n.summaryData.health_status));t(e,15,0,r),t(e,18,0,n.permissions.hosts.read||n.permissions.monitor.read||n.permissions.osd.read||n.permissions.configOpt.read||n.permissions.log.read||n.permissions.prometheus.read),t(e,20,0,n.permissions.pool.read),t(e,22,0,(n.permissions.rbdImage.read||n.permissions.rbdMirroring.read||n.permissions.iscsi.read)&&(e.context.ngIf.rbd||e.context.ngIf.mirroring||e.context.ngIf.iscsi)),t(e,24,0,n.permissions.nfs.read&&e.context.ngIf.nfs),t(e,26,0,n.permissions.cephfs.read&&e.context.ngIf.cephfs),t(e,28,0,n.permissions.rgw.read&&e.context.ngIf.rgw)}),(function(t,e){t(e,5,0,s["ɵnov"](e,6).target,s["ɵnov"](e,6).href)}))}function _n(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,2,null,xn)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵpid"](131072,i.AsyncPipe,[s.ChangeDetectorRef]),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,s["ɵunv"](e,1,0,s["ɵnov"](e,2).transform(n.enabledFeature$)))}),null)}function Tn(t){return s["ɵvid"](0,[s["ɵpid"](0,ee,[]),(t()(),s["ɵeld"](1,0,null,null,1,"cd-pwd-expiration-notification",[],null,null,null,ce,oe)),s["ɵdid"](2,114688,null,0,se,[re.a,xt.a],null,null),(t()(),s["ɵeld"](3,0,null,null,1,"cd-notifications-sidebar",[],[[2,"active",null]],null,null,Ye,Ee)),s["ɵdid"](4,245760,null,0,ke,[gt.a,pt.a,Ae.a,Re,xt.a,Ce,s.NgZone,s.ChangeDetectorRef],null,null),(t()(),s["ɵeld"](5,0,null,null,15,"div",[["class","cd-navbar-top"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,14,"nav",[["class","navbar fixed-top navbar-expand-md navbar-dark cd-navbar-brand"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"button",[["class","btn btn-link py-0"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.showMenuSidebar=!r.showMenuSidebar)&&a),a}),null,null)),(t()(),s["ɵeld"](8,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-bars fa-2x"]],null,null,null,null,null)),(t()(),s["ɵeld"](9,0,null,null,1,"a",[["class","navbar-brand ml-2"],["href","#"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,0,"img",[["alt","Ceph"],["src","assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,4,"button",[["class","navbar-toggler"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.isCollapsed=!r.isCollapsed)&&a),a}),null,null)),(t()(),s["ɵeld"](12,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Toggle navigation"])),(t()(),s["ɵeld"](14,0,null,null,1,"span",[["class",""]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,0,"i",[["class","fa fa-navicon fa-lg"]],null,null,null,null,null)),(t()(),s["ɵeld"](16,0,null,null,4,"div",[["class","collapse navbar-collapse"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),s["ɵdid"](17,8404992,null,0,Xt,[s.ElementRef,s.Renderer2,K.b],{collapse:[0,"collapse"]},null),(t()(),s["ɵeld"](18,0,null,null,2,"ul",[["class","nav navbar-nav cd-navbar-utility my-2 my-md-0"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Ke)),s["ɵdid"](20,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵeld"](21,0,null,null,14,"div",[["class","wrapper"]],null,null,null,null,null)),(t()(),s["ɵeld"](22,0,null,null,8,"nav",[["id","sidebar"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](24,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](25,{active:0}),(t()(),s["ɵeld"](26,0,null,null,4,"ngx-simplebar",[["data-simplebar","init"]],null,null,null,xe,ve)),s["ɵdid"](27,4440064,null,0,ye.a,[s.ElementRef],{options:[0,"options"]},null),(t()(),s["ɵeld"](28,0,null,0,2,"ul",[["class","list-unstyled components cd-navbar-primary"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,$e)),s["ɵdid"](30,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵeld"](31,0,null,null,4,"div",[["id","content"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](33,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](34,{active:0}),s["ɵncd"](null,0),(t()(),s["ɵand"](0,[["cd_utilities",2]],null,0,null,Ze)),(t()(),s["ɵand"](0,[["cd_menu",2]],null,0,null,_n))],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0),t(e,17,0,n.isCollapsed),t(e,20,0,s["ɵnov"](e,36));var a=t(e,25,0,!n.showMenuSidebar);t(e,24,0,a),t(e,27,0,n.simplebar),t(e,30,0,s["ɵnov"](e,37));var r=t(e,34,0,!n.showMenuSidebar);t(e,33,0,r)}),(function(t,e){t(e,3,0,s["ɵnov"](e,4).isSidebarOpened),t(e,16,0,s["ɵnov"](e,17).isCollapse,s["ɵnov"](e,17).isExpanded,s["ɵnov"](e,17).isExpanded,s["ɵnov"](e,17).isExpanded,s["ɵnov"](e,17).isCollapsed,s["ɵnov"](e,17).isCollapsing)}))}var On=n("LRne"),wn=n("HDdC"),Sn=n("Cfvw"),In=n("pLZG"),Nn=n("5+tZ"),Cn=n("l7GE"),Rn=n("ZUHj");class An{constructor(t,e){this.keySelector=t,this.flushes=e}call(t,e){return e.subscribe(new kn(t,this.keySelector,this.flushes))}}class kn extends Cn.a{constructor(t,e,n){super(t),this.keySelector=e,this.values=new Set,n&&this.add(Object(Rn.a)(this,n))}notifyNext(t,e,n,a,r){this.values.clear()}notifyError(t,e){this._error(t)}_next(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)}_useKeySelector(t){let e;const{destination:n}=this;try{e=this.keySelector(t)}catch(a){return void n.error(a)}this._finalizeNext(e,t)}_finalizeNext(t,e){const{values:n}=this;n.has(t)||(n.add(t),this.destination.next(e))}}var En=n("128B");function Ln(t,e,n){return 0===n?[e]:(t.push(e),t)}function Dn(){return Object(En.a)(Ln,[])}var Pn=n("SxV6"),Mn=n("GyhO");class qn{resolve(t){const e=t.routeConfig.data,n=null===e.path?null:this.getFullPath(t),a=[{text:"string"==typeof e.breadcrumbs?e.breadcrumbs:e.breadcrumbs.text||e.text||n,path:n}];return Object(On.a)(a)}getFullPath(t){return t.pathFromRoot.reduce((t,e)=>t+e.url.reduce((t,e)=>t+"/"+e.path,""),"")}}class jn{constructor(t,e){this.router=t,this.injector=e,this.crumbs=[],this.finished=!1,this.defaultResolver=new qn,this.subscription=this.router.events.pipe(Object(In.a)(t=>t instanceof qt.e)).subscribe(()=>{this.finished=!1}),this.subscription=this.router.events.pipe(Object(In.a)(t=>t instanceof qt.d)).subscribe(()=>{var e;this._resolveCrumbs(t.routerState.snapshot.root).pipe(Object(Nn.a)(t=>t),(e=t=>t.text,t=>t.lift(new An(e,void 0))),Dn(),Object(Nn.a)(t=>{const e=this.postProcess(t);return this.wrapIntoObservable(e).pipe(Object(Pn.a)())})).subscribe(t=>{this.finished=!0,this.crumbs=t})})}ngOnDestroy(){this.subscription.unsubscribe()}_resolveCrumbs(t){let e;const n=t.routeConfig&&t.routeConfig.data;if(n&&n.breadcrumbs){let a;a=n.breadcrumbs.prototype instanceof qn?this.injector.get(n.breadcrumbs):this.defaultResolver;const r=a.resolve(t);e=this.wrapIntoObservable(r).pipe(Object(Pn.a)())}else e=Object(On.a)([]);return t.firstChild&&(e=e.pipe(function(...t){return e=>e.lift.call(Object(Mn.a)(e,...t))}(this._resolveCrumbs(t.firstChild)))),e}postProcess(t){const e=[];return t.forEach(t=>{const n=t.text.split("/");if(n.length>1){t.text=n[n.length-1];for(let t=0;t<n.length-1;t++)e.push({text:n[t],path:null})}e.push(t)}),e}isPromise(t){return t&&"function"==typeof t.then}wrapIntoObservable(t){return t instanceof wn.a?t:this.isPromise(t)?Object(Sn.a)(Promise.resolve(t)):Object(On.a)(t)}}var Fn=s["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.breadcrumb[_ngcontent-%COMP%]{padding:8px 0;background-color:transparent;border-radius:0;margin-top:8px}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] + li[_ngcontent-%COMP%]:before{padding:0 5px 0 7px;color:#474544;font-family:ForkAwesome;content:""}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#474544}']],data:{}});function Gn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"a",[["preserveFragment",""]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](1,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),s["ɵted"](2,null,["",""]))],(function(t,e){t(e,1,0,"",e.parent.context.$implicit.path)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).target,s["ɵnov"](e,1).href),t(e,2,0,e.parent.context.$implicit.text)}))}function Vn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.text)}))}function zn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,"li",[["class","breadcrumb-item"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](3,{active:0}),(t()(),s["ɵand"](16777216,null,null,1,null,Gn)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vn)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=t(e,3,0,e.context.last&&e.component.finished);t(e,2,0,"breadcrumb-item",n),t(e,5,0,!e.context.last&&null!==e.context.$implicit.path),t(e,7,0,e.context.last||null===e.context.$implicit.path)}),null)}function Bn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"ol",[["class","breadcrumb"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,zn)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.crumbs)}),null)}function Yn(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Bn)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.crumbs.length)}),null)}var Hn=n("978R"),Un=n("VXsX");const Wn=()=>Object.assign(new Hn.a,{container:"body"});class Kn{constructor(t,e,n){this.router=t,this.summaryService=e,this.taskManagerService=n,this.subs=new ft.a}ngOnInit(){this.subs.add(this.summaryService.startPolling()),this.subs.add(this.taskManagerService.init(this.summaryService))}ngOnDestroy(){this.subs.unsubscribe()}isDashboardPage(){return"/dashboard"===this.router.url}}var $n=s["ɵcrt"]({encapsulation:0,styles:[[".dashboard[_ngcontent-%COMP%]{background-color:#f5f5f5;margin:0;padding:0}.container-fluid[_ngcontent-%COMP%]{overflow:auto}  #toast-container{margin-top:2vw}@media (max-width:1600px){  #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){  #toast-container{margin-top:9vw}}@media (max-width:900px){  #toast-container{margin-top:10vw}}@media (max-width:319px){  #toast-container{margin-top:11vw}}@media (max-width:260px){  #toast-container{margin-top:14vw}}"]],data:{}});function Zn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,"block-ui",[],null,null,null,P,D)),s["ɵdid"](1,114688,null,0,I,[S],null,null),(t()(),s["ɵeld"](2,0,null,0,9,"cd-navigation",[],[[2,"isPwdDisplayed",null]],null,null,Tn,We)),s["ɵdid"](3,245760,null,0,Ue,[xt.a,pt.a,He.a,Ce],null,null),(t()(),s["ɵeld"](4,0,null,0,7,"div",[["class","container-fluid h-100"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](7,{dashboard:0}),(t()(),s["ɵeld"](8,0,null,null,1,"cd-breadcrumbs",[],null,null,null,Yn,Fn)),s["ɵdid"](9,180224,null,0,jn,[qt.m,s.Injector],null,null),(t()(),s["ɵeld"](10,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),s["ɵdid"](11,212992,null,0,qt.r,[qt.b,s.ViewContainerRef,s.ComponentFactoryResolver,[8,null],s.ChangeDetectorRef],null,null)],(function(t,e){var n=e.component;t(e,1,0),t(e,3,0);var a=t(e,7,0,n.isDashboardPage());t(e,6,0,"container-fluid h-100",a),t(e,11,0)}),(function(t,e){t(e,2,0,s["ɵnov"](e,3).isPwdDisplayed)}))}function Jn(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-workbench-layout",[],null,null,null,Zn,$n)),s["ɵprd"](5120,null,Hn.a,Wn,[]),s["ɵdid"](2,245760,null,0,Kn,[qt.m,pt.a,Un.a],null,null)],(function(t,e){t(e,2,0)}),null)}var Qn=s["ɵccf"]("cd-workbench-layout",Kn,Jn,{},{},[]),Xn=n("pKUh"),ta=n("2ZVE"),ea=n("KOzp"),na=n("2uy1");class aa{constructor(){this.cardClass=""}}var ra=s["ɵcrt"]({encapsulation:0,styles:[[".card[_ngcontent-%COMP%]{height:100%;border:.5px solid #ddd;border-radius:3px;box-shadow:0 1px 1px rgba(3,3,3,.175);font-size:12px}@media screen and (min-width:320px){.card[_ngcontent-%COMP%]{font-size:calc(12px + 9 * ((100vw - 320px)/ 1728))}}@media screen and (min-width:2048px){.card[_ngcontent-%COMP%]{font-size:21px}}.card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding-top:40px!important}.card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{position:absolute;left:0;top:0}.no-center[_ngcontent-%COMP%]{position:unset;top:unset;left:unset;transform:unset}.content-highlight[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function ia(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](1,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](2,null,["",""]))],(function(t,e){t(e,1,0,e.component.link)}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,1).target,s["ɵnov"](e,1).href),t(e,2,0,n.cardTitle)}))}function sa(t){return s["ɵvid"](0,[(t()(),s["ɵted"](0,null,[" "," "]))],null,(function(t,e){t(e,0,0,e.component.cardTitle)}))}function oa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,"div",[["class","card"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),s["ɵeld"](3,0,null,null,8,"div",[["class","card-body d-flex align-items-center justify-content-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,3,"h5",[["class","card-title m-4"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,ia)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["noLinkTitle",2]],null,0,null,sa)),(t()(),s["ɵeld"](8,0,null,null,3,"div",[["class","card-text text-center"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](10,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"card",n.cardClass),t(e,6,0,n.link,s["ɵnov"](e,7)),t(e,10,0,"card-text text-center",n.contentClass)}),null)}class ua{}var da=s["ɵcrt"]({encapsulation:0,styles:[[".info-group-title[_ngcontent-%COMP%]{margin:0 0 .5vw .5vw;font-size:21px}"]],data:{}});function la(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["class","info-group-title"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""])),(t()(),s["ɵeld"](3,0,null,null,1,"div",[["class","row"]],null,null,null,null,null)),s["ɵncd"](null,0)],null,(function(t,e){t(e,2,0,e.component.groupTitle)}))}var ca=n("hrfs"),fa=n("MO+k"),ha=n("NEZu"),ga=n("Fgil"),pa=n("o4+5"),ba=function(t){return t.DEFAULT_RED="#ff7592",t.DEFAULT_BLUE="#1d699d",t.DEFAULT_ORANGE="#ffa500",t.DEFAULT_MAGENTA="#564d65",t.DEFAULT_GREEN="#00bb00",t}({});class ma{constructor(t,e){this.dimlessBinary=t,this.dimless=e,this.config={},this.isBytesData=!1,this.showLabelAsTooltip=!1,this.prepareFn=new s.EventEmitter,this.chartConfig={chartType:"pie",dataset:[{label:null,borderWidth:0}],options:{legend:{display:!0,position:"right",labels:{usePointStyle:!0},onClick:(t,e)=>{this.onLegendClick(t,e)}},animation:{duration:0},tooltips:{enabled:!1},title:{display:!1}}},this.hiddenSlices=[]}ngOnInit(){fa.pluginService.register({beforeDraw:function(t){if(!t.options.center_text)return;const e=t.chart.width,n=t.chart.height,a=t.chart.ctx;a.restore();const r=(n/114).toFixed(2);a.font=r+"em sans-serif",a.textBaseline="middle";const i=t.options.center_text,s=Math.round((e-a.measureText(i).width)/2);a.fillText(i,s,n/2),a.save()}});const t=new ha.a(this.chartCanvasRef,this.chartTooltipRef,(t,e)=>e+t.caretX+"px",(t,e)=>e+t.caretY-t.height-10+"px");t.getBody=t=>this.getChartTooltipBody(t),this.chartConfig.options.tooltips.custom=e=>{t.customTooltips(e)},this.chartConfig.colors=[{backgroundColor:[ba.DEFAULT_RED,ba.DEFAULT_BLUE,ba.DEFAULT_ORANGE,ba.DEFAULT_GREEN,ba.DEFAULT_MAGENTA]}],J.merge(this.chartConfig,this.config),this.prepareFn.emit([this.chartConfig,this.data])}ngOnChanges(){this.prepareFn.emit([this.chartConfig,this.data]),this.hideSlices(),this.setChartSliceBorderWidth()}getChartTooltipBody(t){const e=t[0].split(": ");return this.showLabelAsTooltip?e[0]:(e[1]=this.isBytesData?this.dimlessBinary.transform(e[1]):this.dimless.transform(e[1]),e.join(": "))}setChartSliceBorderWidth(){let t=0;J.forEach(this.chartConfig.dataset[0].data,(function(e){e>0&&(t+=1)})),this.chartConfig.dataset[0].borderWidth=t>1?1:0}onLegendClick(t,e){t.stopPropagation(),this.hiddenSlices[e.index]=!e.hidden,this.ngOnChanges()}hideSlices(){J.forEach(this.chartConfig.dataset[0].data,(t,e)=>{this.hiddenSlices[e]&&(this.chartConfig.dataset[0].data[e]=void 0)})}}var ya=s["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:unset;width:100%;height:100%}.chart-canvas[_ngcontent-%COMP%]{position:unset;width:100%;height:100%;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}']],data:{}});function va(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{chartCanvasRef:0}),s["ɵqud"](402653184,2,{chartTooltipRef:0}),(t()(),s["ɵeld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""],["class","chart-canvas"]],null,null,null,null,null)),s["ɵdid"](4,999424,null,0,ca.a,[s.ElementRef,ca.c],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),s["ɵeld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.chartConfig.dataset,n.chartConfig.labels,n.chartConfig.options,n.chartConfig.chartType,n.chartConfig.colors)}),null)}class xa{constructor(t){this.i18n=t}transform(t){return t?`${t.monmap.mons.length.toString()} (${this.i18n("quorum")} ${t.quorum.join(", ")})`:""}}var _a=n("GiVz");class Ta{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e=0,n=0;J.each(t.osds,t=>{t.in&&e++,t.up&&n++});const a=[{content:`${t.osds.length} ${this.i18n("total")}`,class:""}];a.push({content:"",class:"card-text-line-break"}),a.push({content:`${n} ${this.i18n("up")}, ${e} ${this.i18n("in")}`,class:""});const r=t.osds.length-n,i=n-e;if(r>0||i>0){a.push({content:"",class:"card-text-line-break"});const t=r>0?`${r} ${this.i18n("down")}`:"",e=r>0&&i>0?", ":"",n=i>0?`${i} ${this.i18n("out")}`:"";a.push({content:`${t}${e}${n}`,class:"card-text-error"})}return a}}class Oa{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e=this.i18n("n/a");const n=J.isUndefined(t.active_name)?"":`${this.i18n("active daemon")}: ${t.active_name}`;n.length>0&&(e="1");const a=t.standbys.map(t=>t.name).join(", "),r=a?`${this.i18n("standby daemons")}: ${a}`:"",i=t.standbys.length,s=[{content:`${e} ${this.i18n("active")}`,class:"popover-info",titleText:n}];return s.push({content:"",class:"card-text-line-break",titleText:""}),s.push({content:`${i} ${this.i18n("standby")}`,class:"popover-info",titleText:r}),s}}class wa{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e="",n="",a=0,r=0,i=0;J.each(t.standbys,()=>{a+=1}),t.standbys&&!t.filesystems?(e=`${a} ${this.i18n("up")}`,n=this.i18n("no filesystems")):0===t.filesystems.length?e=this.i18n("no filesystems"):(J.each(t.filesystems,t=>{J.each(t.mdsmap.info,t=>{"up:standby-replay"===t.state?i+=1:r+=1})}),e=`${r} ${this.i18n("active")}`,n=`${a+i} ${this.i18n("standby")}`);const s=t.standbys.map(t=>t.name).join(", "),o=s?`${this.i18n("standby daemons")}: ${s}`:"",u=t.filesystems?t.filesystems.length:0,d=Object.values(u>0?t.filesystems[0].mdsmap.info:{}).map(t=>t.name).join(", ");let l=d?`${this.i18n("active daemon")}: ${d}`:"";!r&&u>0&&(l=`${i} ${this.i18n("standbyReplay")}`);const c=[{content:e,class:"popover-info",titleText:l}];return n&&(c.push({content:"",class:"card-text-line-break",titleText:""}),c.push({content:n,class:"popover-info",titleText:o})),c}}class Sa{transform(t,e){return J.round(t,e)}}var Ia=n("aXbf");let Na=(()=>{class t{constructor(t){this.http=t}getFullHealth(){return this.http.get("api/health/full")}getMinimalHealth(){return this.http.get("api/health/minimal")}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();var Ca=n("2Vo4"),Ra=n("D0XW"),Aa=n("Y7HM");function ka(t){const{subscriber:e,counter:n,period:a}=t;e.next(n),this.schedule({subscriber:e,counter:n+1,period:a},a)}let Ea=(()=>{class t{constructor(t){this.ngZone=t,this.intervalDataSource=new Ca.a(null),this.intervalData$=this.intervalDataSource.asObservable();const e=parseInt(sessionStorage.getItem("dashboard_interval"),10)||5e3;this.setRefreshInterval(e)}setRefreshInterval(t){this.intervalTime=t,sessionStorage.setItem("dashboard_interval",t.toString()),this.intervalSubscription&&this.intervalSubscription.unsubscribe(),this.ngZone.runOutsideAngular(()=>{this.intervalSubscription=function(t=0,e=Ra.a){return(!Object(Aa.a)(t)||t<0)&&(t=0),e&&"function"==typeof e.schedule||(e=Ra.a),new wn.a(n=>(n.add(e.schedule(ka,t,{subscriber:n,counter:0,period:t})),n))}(this.intervalTime).subscribe(()=>this.ngZone.run(()=>{this.intervalDataSource.next(this.intervalTime)}))})}getRefreshInterval(){return this.intervalTime}ngOnDestroy(){this.intervalSubscription&&this.intervalSubscription.unsubscribe()}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](s.NgZone))},token:t,providedIn:"root"}),t})();var La=n("d+Og");class Da{constructor(t,e,n,a,r,i,s,o){this.healthService=t,this.i18n=e,this.authStorageService=n,this.pgCategoryService=a,this.featureToggles=r,this.refreshIntervalService=i,this.dimlessBinary=s,this.dimless=o,this.interval=new ft.a,this.icons=ht.a,this.rawCapacityChartConfig={options:{title:{display:!0,position:"bottom"}}},this.objectsChartConfig={options:{title:{display:!0,position:"bottom"}},colors:[{backgroundColor:[ba.DEFAULT_GREEN,ba.DEFAULT_MAGENTA,ba.DEFAULT_ORANGE,ba.DEFAULT_RED]}]},this.pgStatusChartConfig={colors:[{backgroundColor:[ba.DEFAULT_GREEN,ba.DEFAULT_BLUE,ba.DEFAULT_ORANGE,ba.DEFAULT_RED]}]},this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}ngOnInit(){this.getHealth(),this.interval=this.refreshIntervalService.intervalData$.subscribe(()=>{this.getHealth()})}ngOnDestroy(){this.interval.unsubscribe()}getHealth(){this.healthService.getMinimalHealth().subscribe(t=>{this.healthData=t})}prepareReadWriteRatio(t){const e=[],n=[],a=this.healthData.client_perf.write_op_per_sec+this.healthData.client_perf.read_op_per_sec;e.push(`${this.i18n("Writes")} (${this.calcPercentage(this.healthData.client_perf.write_op_per_sec,a)}%)`),n.push(this.healthData.client_perf.write_op_per_sec),e.push(`${this.i18n("Reads")} (${this.calcPercentage(this.healthData.client_perf.read_op_per_sec,a)}%)`),n.push(this.healthData.client_perf.read_op_per_sec),t.dataset[0].data=n,t.labels=e}prepareRawUsage(t,e){const n=this.calcPercentage(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes),a=this.calcPercentage(e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes);t.dataset[0].data=[e.df.stats.total_used_raw_bytes,e.df.stats.total_avail_bytes],t.labels=[`${this.dimlessBinary.transform(e.df.stats.total_used_raw_bytes)} ${this.i18n("Used")} (${a}%)`,`${this.dimlessBinary.transform(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes)} ${this.i18n("Avail.")} (${n}%)`],t.options.title.text=`${this.dimlessBinary.transform(e.df.stats.total_bytes)} ${this.i18n("total")}`}preparePgStatus(t,e){const n={};let a=0;J.forEach(e.pg_info.statuses,(t,e)=>{const r=this.pgCategoryService.getTypeByStates(e);J.isUndefined(n[r])&&(n[r]=0),n[r]+=t,a+=t}),t.dataset[0].data=this.pgCategoryService.getAllTypes().map(t=>n[t]),t.labels=[`${this.i18n("Clean")} (${this.calcPercentage(n.clean,a)}%)`,`${this.i18n("Working")} (${this.calcPercentage(n.working,a)}%)`,`${this.i18n("Warning")} (${this.calcPercentage(n.warning,a)}%)`,`${this.i18n("Unknown")} (${this.calcPercentage(n.unknown,a)}%)`]}prepareObjects(t,e){const n=e.pg_info.object_stats.num_object_copies,a=n-e.pg_info.object_stats.num_objects_misplaced-e.pg_info.object_stats.num_objects_degraded-e.pg_info.object_stats.num_objects_unfound;t.labels=[`${this.i18n("Healthy")} (${this.calcPercentage(a,n)}%)`,`${this.i18n("Misplaced")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_misplaced,n)}%)`,`${this.i18n("Degraded")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_degraded,n)}%)`,`${this.i18n("Unfound")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_unfound,n)}%)`],t.dataset[0].data=[a,e.pg_info.object_stats.num_objects_misplaced,e.pg_info.object_stats.num_objects_degraded,e.pg_info.object_stats.num_objects_unfound],t.options.title.text=`${this.dimless.transform(e.pg_info.object_stats.num_objects)} ${this.i18n("total")} (${this.dimless.transform(n)} ${this.i18n("replicas")})`,t.options.maintainAspectRatio=window.innerWidth>=375}isClientReadWriteChartShowable(){return(this.healthData.client_perf.read_op_per_sec||0)+(this.healthData.client_perf.write_op_per_sec||0)>0}calcPercentage(t,e){return J.isNumber(t)&&J.isNumber(e)&&0!==e?Math.round(t/e*100):0}}var Pa=s["ɵcrt"]({encapsulation:0,styles:[['cd-info-card[_ngcontent-%COMP%]{padding:0 .5vw}  .pg-status-popover-wrapper{position:relative}  .pg-status-popover-wrapper .popover{position:absolute;width:116%;max-height:20vh;min-width:unset!important;max-width:unset!important}  .pg-status-popover-wrapper .popover .popover-body{max-width:100%;max-height:19vh;font-size:12px}.logs-link[_ngcontent-%COMP%]{text-align:center}.card-text-error[_ngcontent-%COMP%]{display:inline;color:red}.card-text-line-break[_ngcontent-%COMP%]:after{content:"\\a";white-space:pre}.popover-info[_ngcontent-%COMP%]:hover{cursor:pointer}']],data:{}});function Ma(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function qa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"li",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"span",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](3,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),s["ɵppd"](4,1),(t()(),s["ɵted"](5,null,["",""])),(t()(),s["ɵted"](6,null,[": "," "]))],(function(t,e){var n=s["ɵunv"](e,3,0,t(e,4,0,s["ɵnov"](e.parent.parent.parent.parent.parent.parent,0),e.context.$implicit.severity));t(e,3,0,n)}),(function(t,e){t(e,5,0,e.context.$implicit.type),t(e,6,0,e.context.$implicit.summary.message)}))}function ja(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Ma)),s["ɵdid"](1,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵeld"](2,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,qa)),s["ɵdid"](4,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e.parent.parent.parent.parent,7)),t(e,4,0,n.healthData.health.checks)}),null)}function Fa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["ɵand"](0,[["healthChecks",2]],null,0,null,ja)),(t()(),s["ɵeld"](2,16777216,null,null,5,"div",[["class","info-card-content-clickable"],["container","body"],["containerClass","info-card-popover-cluster-status"],["placement","bottom"],["triggers",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,6).toggle()&&a),a}),null,null)),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),s["ɵppd"](5,1),s["ɵdid"](6,212992,[["healthChecksTarget",4]],0,ea.c,[ea.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,na.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"],container:[3,"container"],containerClass:[4,"containerClass"]},null),(t()(),s["ɵted"](7,null,[" "," "])),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=s["ɵunv"](e,4,0,t(e,5,0,s["ɵnov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,4,0,a),t(e,6,0,s["ɵnov"](e,1),"bottom","","body","info-card-popover-cluster-status")}),(function(t,e){t(e,7,0,e.component.healthData.health.status)}))}function Ga(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"div",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](3,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),s["ɵppd"](4,1),(t()(),s["ɵted"](5,null,[" "," "]))],(function(t,e){var n=e.component,a=s["ɵunv"](e,3,0,t(e,4,0,s["ɵnov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,3,0,a)}),(function(t,e){t(e,5,0,e.component.healthData.health.status)}))}function Va(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Cluster Status"],["class","cd-status-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Fa)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Ga)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Cluster Status","content-highlight"),t(e,3,0,(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0),t(e,5,0,!(null!=n.healthData.health&&null!=n.healthData.health.checks&&n.healthData.health.checks.length))}),null)}function za(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Monitors"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/monitor"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Monitors","/monitor","content-highlight")}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,1),n.healthData.mon_status));t(e,2,0,a)}))}function Ba(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,3,0,e.context.$implicit.content)}))}function Ya(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","OSDs"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/osd"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Ba)),s["ɵdid"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,"OSDs","/osd","content-highlight"),t(e,3,0,e.context.ngIf)}),null)}function Ha(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,3,0,e.context.$implicit.content)}))}function Ua(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"cd-info-card",[["cardTitle","Manager Daemons"],["class","cd-status-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵand"](16777216,null,0,2,null,Ha)),s["ɵdid"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵppd"](4,1)],(function(t,e){var n=e.component;t(e,1,0,"Manager Daemons","content-highlight");var a=s["ɵunv"](e,3,0,t(e,4,0,s["ɵnov"](e.parent.parent.parent,3),n.healthData.mgr_map));t(e,3,0,a)}),null)}function Wa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Hosts"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/hosts"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," total "]))],(function(t,e){t(e,1,0,"Hosts","/hosts","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.hosts)}))}function Ka(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Object Gateways"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/rgw/daemon"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," total "]))],(function(t,e){t(e,1,0,"Object Gateways","/rgw/daemon","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.rgw)}))}function $a(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,3,0,e.context.$implicit.content)}))}function Za(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Metadata Servers"],["class","cd-status-card"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,$a)),s["ɵdid"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,"Metadata Servers",(e.context.ngIf.length>1?"text-area-size-2":"")+" content-highlight"),t(e,3,0,e.context.ngIf)}),null)}function Ja(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"cd-info-card",[["cardTitle","iSCSI Gateways"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/block/iscsi"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," total "])),(t()(),s["ɵeld"](3,0,null,0,0,"span",[["class","card-text-line-break"]],null,null,null,null,null)),(t()(),s["ɵted"](4,0,[" "," up, "])),(t()(),s["ɵeld"](5,0,null,0,4,"span",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](7,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](8,{"card-text-error":0}),(t()(),s["ɵted"](9,null,[""," down"]))],(function(t,e){var n=e.component;t(e,1,0,"iSCSI Gateways","/block/iscsi","content-highlight");var a=t(e,8,0,n.healthData.iscsi_daemons.down>0);t(e,7,0,a)}),(function(t,e){var n=e.component;t(e,2,0,n.healthData.iscsi_daemons.up+n.healthData.iscsi_daemons.down),t(e,4,0,n.healthData.iscsi_daemons.up),t(e,9,0,n.healthData.iscsi_daemons.down)}))}function Qa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,19,"cd-info-group",[["groupTitle","Status"]],null,null,null,la,da)),s["ɵdid"](1,49152,null,0,ua,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Va)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,za)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,2,null,Ya)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵppd"](8,1),(t()(),s["ɵand"](16777216,null,0,1,null,Ua)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Wa)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Ka)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,2,null,Za)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵppd"](17,1),(t()(),s["ɵand"](16777216,null,0,1,null,Ja)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Status"),t(e,3,0,null==n.healthData.health?null:n.healthData.health.status),t(e,5,0,n.healthData.mon_status);var a=s["ɵunv"](e,7,0,t(e,8,0,s["ɵnov"](e.parent.parent,2),n.healthData.osd_map));t(e,7,0,a),t(e,10,0,n.healthData.mgr_map),t(e,12,0,null!=n.healthData.hosts),t(e,14,0,e.parent.context.ngIf.rgw&&null!=n.healthData.rgw);var r=s["ɵunv"](e,16,0,t(e,17,0,s["ɵnov"](e.parent.parent,4),e.parent.context.ngIf.cephfs&&n.healthData.fs_map));t(e,16,0,r),t(e,19,0,e.parent.context.ngIf.iscsi&&null!=n.healthData.iscsi_daemons)}),null)}function Xa(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Client IOPS"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,2)],(function(t,e){t(e,1,0,"Client IOPS","content-highlight")}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,5),n.healthData.client_perf.read_op_per_sec+n.healthData.client_perf.write_op_per_sec,1));t(e,2,0,a)}))}function tr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Client Throughput"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Client Throughput","content-highlight")}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,6),n.healthData.client_perf.read_bytes_sec+n.healthData.client_perf.write_bytes_sec))+"/s";t(e,2,0,a)}))}function er(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareReadWriteRatio(n[0],n[1])&&a),a}),va,ya)),s["ɵdid"](1,638976,null,0,ma,[ga.a,pa.a],{data:[0,"data"]},{prepareFn:"prepareFn"})],(function(t,e){t(e,1,0,e.component.healthData)}),null)}function nr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" N/A "]))],null,null)}function ar(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Client Read/Write"],["class","cd-performance-card"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,er)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,nr)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Client Read/Write",n.isClientReadWriteChartShowable()?"content-chart":"content-highlight"),t(e,3,0,n.isClientReadWriteChartShowable()),t(e,5,0,!n.isClientReadWriteChartShowable())}),null)}function rr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Recovery Throughput"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Recovery Throughput","content-highlight")}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,6),n.healthData.client_perf.recovering_bytes_per_sec))+"/s";t(e,2,0,a)}))}function ir(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Scrub"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "]))],(function(t,e){t(e,1,0,"Scrub","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.scrub_status)}))}function sr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,"cd-info-group",[["groupTitle","Performance"]],null,null,null,la,da)),s["ɵdid"](1,49152,null,0,ua,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Xa)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,tr)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ar)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,rr)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ir)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance"),t(e,3,0,n.healthData.client_perf),t(e,5,0,n.healthData.client_perf),t(e,7,0,n.healthData.client_perf),t(e,9,0,n.healthData.client_perf),t(e,11,0,n.healthData.scrub_status)}),null)}function or(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Pools"],["class","cd-capacity-card order-md-1 order-lg-4 order-xl-1"],["contentClass","content-highlight"],["link","/pool"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "]))],(function(t,e){t(e,1,0,"Pools","/pool","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.pools.length)}))}function ur(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Raw Capacity"],["class","cd-capacity-card order-md-3 order-lg-1 order-xl-2"],["contentClass","content-chart"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵeld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareRawUsage(n[0],n[1])&&a),a}),va,ya)),s["ɵdid"](3,638976,null,0,ma,[ga.a,pa.a],{data:[0,"data"],config:[1,"config"],isBytesData:[2,"isBytesData"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"Raw Capacity","content-chart"),t(e,3,0,n.healthData,n.rawCapacityChartConfig,!0)}),null)}function dr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Objects"],["class","cd-capacity-card order-md-4 order-lg-2 order-xl-3"],["contentClass","content-chart"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵeld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareObjects(n[0],n[1])&&a),a}),va,ya)),s["ɵdid"](3,638976,null,0,ma,[ga.a,pa.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"Objects","content-chart"),t(e,3,0,n.healthData,n.objectsChartConfig)}),null)}function lr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","PGs per OSD"],["class","cd-capacity-card order-md-2 order-lg-5 order-xl-4"],["contentClass","content-highlight"]],null,null,null,oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,1)],(function(t,e){t(e,1,0,"PGs per OSD","content-highlight")}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,7),n.healthData.pg_info.pgs_per_osd));t(e,2,0,a)}))}function cr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function fr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ",": "," "]))],null,(function(t,e){t(e,1,0,e.context.$implicit.key,e.context.$implicit.value)}))}function hr(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,cr)),s["ɵdid"](1,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵeld"](2,0,null,null,3,"ul",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,fr)),s["ɵdid"](4,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e.parent.parent.parent,7)),t(e,4,0,s["ɵunv"](e,4,0,s["ɵnov"](e,5).transform(n.healthData.pg_info.statuses)))}),null)}function gr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,"cd-info-card",[["cardTitle","PG Status"],["class","cd-capacity-card order-md-5 order-lg-3 order-xl-5"],["contentClass","content-chart"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,5).toggle()&&a),a}),oa,ra)),s["ɵdid"](1,49152,null,0,aa,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),s["ɵand"](0,[["pgStatus",2]],0,0,null,hr)),(t()(),s["ɵeld"](3,0,null,0,4,"div",[["class","pg-status-popover-wrapper"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,16777216,null,null,3,"div",[["placement","bottom"],["triggers",""]],null,null,null,null,null)),s["ɵdid"](5,212992,[["pgStatusTarget",4]],0,ea.c,[ea.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a,na.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"]},null),(t()(),s["ɵeld"](6,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.preparePgStatus(n[0],n[1])&&a),a}),va,ya)),s["ɵdid"](7,638976,null,0,ma,[ga.a,pa.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"PG Status","content-chart"),t(e,5,0,s["ɵnov"](e,2),"bottom",""),t(e,7,0,n.healthData,n.pgStatusChartConfig)}),null)}function pr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,"cd-info-group",[["groupTitle","Capacity"]],null,null,null,la,da)),s["ɵdid"](1,49152,null,0,ua,[],{groupTitle:[0,"groupTitle"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,or)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ur)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,dr)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,lr)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,gr)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Capacity"),t(e,3,0,n.healthData.pools),t(e,5,0,n.healthData.df),t(e,7,0,null!=(null==n.healthData.pg_info?null:null==n.healthData.pg_info.object_stats?null:n.healthData.pg_info.object_stats.num_objects)),t(e,9,0,n.healthData.pg_info),t(e,11,0,n.healthData.pg_info)}),null)}function br(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,9,"p",[["class","logs-link"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](5,1),(t()(),s["ɵted"](-1,null,[" See "])),(t()(),s["ɵeld"](7,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,8).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](8,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Logs"])),(t()(),s["ɵted"](-1,null,[" for more details."]))],(function(t,e){var n=t(e,5,0,e.component.icons.infoCircle);t(e,4,0,n),t(e,8,0,"/logs")}),(function(t,e){t(e,7,0,s["ɵnov"](e,8).target,s["ɵnov"](e,8).href)}))}function mr(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,br)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.permissions.log.read)}),null)}function yr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,"div",[["class","container-fluid"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Qa)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sr)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,pr)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[["logsLink",2]],null,0,null,mr))],(function(t,e){var n=e.component;t(e,2,0,(null==n.healthData.health?null:n.healthData.health.status)||n.healthData.mon_status||n.healthData.osd_map||n.healthData.mgr_map||null!=n.healthData.hosts||null!=n.healthData.rgw||n.healthData.fs_map||null!=n.healthData.iscsi_daemons),t(e,4,0,n.healthData.client_perf||n.healthData.scrub_status),t(e,6,0,n.healthData.pools||n.healthData.df||n.healthData.pg_info)}),null)}function vr(t){return s["ɵvid"](0,[s["ɵpid"](0,ee,[]),s["ɵpid"](0,xa,[_a.a]),s["ɵpid"](0,Ta,[_a.a]),s["ɵpid"](0,Oa,[_a.a]),s["ɵpid"](0,wa,[_a.a]),s["ɵpid"](0,Sa,[]),s["ɵpid"](0,ga.a,[Ia.a]),s["ɵpid"](0,pa.a,[Ia.a]),(t()(),s["ɵand"](16777216,null,null,2,null,yr)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵpid"](131072,i.AsyncPipe,[s.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,9,0,s["ɵunv"](e,9,0,s["ɵnov"](e,10).transform(n.healthData&&n.enabledFeature$)))}),null)}class xr{constructor(t){this.refreshIntervalService=t,this.intervalList={"5 s":5e3,"10 s":1e4,"15 s":15e3,"30 s":3e4,"1 min":6e4,"3 min":18e4,"5 min":3e5},this.intervalKeys=Object.keys(this.intervalList)}ngOnInit(){this.selectedInterval=this.refreshIntervalService.getRefreshInterval()||5e3}changeRefreshInterval(t){this.refreshIntervalService.setRefreshInterval(t)}}var _r=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Tr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){var n=e.component;t(e,1,0,n.intervalList[e.context.$implicit]),t(e,2,0,n.intervalList[e.context.$implicit])}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Or(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,12,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,11,"div",[["class","float-right d-inline-flex"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,1,"label",[["class","col-form-label my-0 mx-2"],["for","refreshInterval"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Refresh"])),(t()(),s["ɵeld"](5,0,null,null,8,"select",[["class","form-control custom-select"],["id","refreshInterval"],["name","refreshInterval"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,6).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,6).onTouched()&&a),"change"===e&&(a=!1!==r.changeRefreshInterval(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedInterval=n)&&a),a}),null,null)),s["ɵdid"](6,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](8,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](10,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](11,16384,null,0,Z.h,[[8,null],Z.a],null,null),(t()(),s["ɵand"](16777216,null,null,1,null,Tr)),s["ɵdid"](13,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,8,0,"refreshInterval",n.selectedInterval),t(e,13,0,n.intervalKeys)}),(function(t,e){t(e,5,0,s["ɵnov"](e,10).ngClassUntouched,s["ɵnov"](e,10).ngClassTouched,s["ɵnov"](e,10).ngClassPristine,s["ɵnov"](e,10).ngClassDirty,s["ɵnov"](e,10).ngClassValid,s["ɵnov"](e,10).ngClassInvalid,s["ɵnov"](e,10).ngClassPending,s["ɵnov"](e,11).validClass,s["ɵnov"](e,11).invalidClass)}))}class wr{constructor(){this.hasGrafana=!1}ngOnInit(){}}var Sr=s["ɵcrt"]({encapsulation:0,styles:[["div[_ngcontent-%COMP%]{padding-top:20px}"]],data:{}});function Ir(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-health",[],null,null,null,vr,Pa)),s["ɵdid"](5,245760,null,0,Da,[Na,_a.a,xt.a,La.a,He.a,Ea,ga.a,pa.a],null,null),(t()(),s["ɵeld"](6,0,null,0,1,"tab",[["heading","Statistics"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](7,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null)],(function(t,e){t(e,3,0,"Health"),t(e,5,0),t(e,7,0,"Statistics")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,6,0,s["ɵnov"](e,7).id,s["ɵnov"](e,7).active,s["ɵnov"](e,7).addClass,s["ɵnov"](e,7).role,s["ɵnov"](e,7).ariaLabelledby)}))}function Nr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-health",[],null,null,null,vr,Pa)),s["ɵdid"](1,245760,null,0,Da,[Na,_a.a,xt.a,La.a,He.a,Ea,ga.a,pa.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Cr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"cd-refresh-selector",[],null,null,null,Or,_r)),s["ɵdid"](2,114688,null,0,xr,[Ea],null,null),(t()(),s["ɵand"](16777216,null,null,1,null,Ir)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Nr)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.hasGrafana),t(e,6,0,!n.hasGrafana)}),null)}function Rr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-dashboard",[],null,null,null,Cr,Sr)),s["ɵdid"](1,114688,null,0,wr,[],null,null)],(function(t,e){t(e,1,0)}),null)}var Ar=s["ɵccf"]("cd-dashboard",wr,Rr,{},{},[]),kr=n("a278"),Er=n("insk"),Lr=n("cUpR"),Dr=n("25BL"),Pr=n("uIqm"),Mr=n("NUGo"),qr=n("S7zO"),jr=n("DqMs"),Fr=n("/NlG");class Gr{constructor(t,e){this.cephReleaseNamePipe=t,this.summaryService=e}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/orchestrator/`,setTimeout(()=>{t.unsubscribe()},0)})}}var Vr=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function zr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["Orchestrator is not available. Please consult the "])),(t()(),s["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["documentation"])),(t()(),s["ɵted"](-1,0,[" on how to configure and enable the functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}let Br=(()=>{class t{constructor(t){this.http=t,this.url="api/orchestrator"}status(){return this.http.get(`${this.url}/status`)}identifyDevice(t,e,n){return this.http.post(`${this.url}/identify_device`,{hostname:t,device:e,duration:n})}inventoryList(t){const e=t?{params:(new X.h).set("hostname",t)}:{};return this.http.get(`${this.url}/inventory`,e)}inventoryDeviceList(t){return this.inventoryList(t).pipe(Object(Nn.a)(t=>{const e=J.flatMap(t,t=>t.devices.map(e=>(e.hostname=t.name,e.uid=e.device_id?e.device_id:`${e.hostname}-${e.path}`,e)));return Object(On.a)(e)}))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();var Yr=n("Rf2I"),Hr=n("x38r"),Ur=n("vCyI");class Wr{constructor(t,e,n,a,r,i){this.authStorageService=t,this.dimlessBinary=e,this.i18n=n,this.modalService=a,this.notificationService=r,this.orchService=i,this.devices=[],this.hiddenColumns=[],this.filterColumns=["hostname","human_readable_type","available","sys_api.vendor","sys_api.model","sys_api.size"],this.selectionType=void 0,this.filterChange=new s.EventEmitter,this.fetchInventory=new s.EventEmitter,this.icons=ht.a,this.columns=[],this.selection=new Ur.a}ngOnInit(){this.permission=this.authStorageService.getPermissions().osd,this.tableActions=[{permission:"update",icon:ht.a.show,click:()=>this.identifyDevice(),name:this.i18n("Identify"),disable:()=>!this.selection.hasSingleSelection,canBePrimary:t=>!t.hasSingleSelection,visible:()=>J.isString(this.selectionType)}];const t=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Device path"),prop:"path",flexGrow:1},{name:this.i18n("Type"),prop:"human_readable_type",flexGrow:1,cellTransformation:Hr.a.badge,customTemplateConfig:{map:{hdd:{value:"HDD",class:"badge-hdd"},ssd:{value:"SSD",class:"badge-ssd"}}}},{name:this.i18n("Available"),prop:"available",flexGrow:1},{name:this.i18n("Vendor"),prop:"sys_api.vendor",flexGrow:1},{name:this.i18n("Model"),prop:"sys_api.model",flexGrow:1},{name:this.i18n("Size"),prop:"sys_api.size",flexGrow:1,pipe:this.dimlessBinary},{name:this.i18n("OSDs"),prop:"osd_ids",flexGrow:1,cellTransformation:Hr.a.badge,customTemplateConfig:{class:"badge-dark",prefix:"osd."}}];this.columns=t.filter(t=>!this.hiddenColumns.includes(t.prop)),J.forEach(this.filterColumns,t=>{const e=J.find(this.columns,{prop:t});e&&(e.filterable=!0)}),this.fetchInventory.observers.length>0&&(this.fetchInventorySub=this.table.fetchData.subscribe(()=>{this.fetchInventory.emit()}))}ngOnDestroy(){this.fetchInventorySub&&this.fetchInventorySub.unsubscribe()}onColumnFiltersChanged(t){this.filterChange.emit(t)}updateSelection(t){this.selection=t}identifyDevice(){const t=this.selection.first(),e=t.hostname,n=t.path||t.device_id;this.modalService.show(Yr.a,{initialState:{titleText:this.i18n("Identify device {{device}}",{device:n}),message:this.i18n("Please enter the duration how long to blink the LED."),fields:[{type:"select",name:"duration",value:300,required:!0,options:[{text:this.i18n("1 minute"),value:60},{text:this.i18n("2 minutes"),value:120},{text:this.i18n("5 minutes"),value:300},{text:this.i18n("10 minutes"),value:600},{text:this.i18n("15 minutes"),value:900}]}],submitButtonText:this.i18n("Execute"),onSubmit:t=>{this.orchService.identifyDevice(e,n,t.duration).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("Identifying '{{device}}' started on host '{{hostname}}'",{hostname:e,device:n}))})}}})}}var Kr=s["ɵcrt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px}.fa-stack[_ngcontent-%COMP%]{font-size:.79rem}.fa-stack[_ngcontent-%COMP%]   .fa-stack-1x[_ngcontent-%COMP%]{margin-left:8px;margin-top:5px}"]],data:{}});function $r(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{table:0}),(t()(),s["ɵeld"](1,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","uid"]],null,[[null,"updateSelection"],[null,"columnFiltersChanged"]],(function(t,e,n){var a=!0,r=t.component;return"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),"columnFiltersChanged"===e&&(a=!1!==r.onColumnFiltersChanged(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](2,2867200,[[1,4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],searchField:[3,"searchField"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],forceIdentifier:[6,"forceIdentifier"],selectionType:[7,"selectionType"]},{updateSelection:"updateSelection",columnFiltersChanged:"columnFiltersChanged"}),(t()(),s["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](4,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.devices,n.columns,"flex",!1,!1,"uid",!0,n.selectionType),t(e,4,0,n.permission,n.selection,n.tableActions)}),null)}class Zr{constructor(t){this.orchService=t,this.icons=ht.a,this.hasOrchestrator=!1,this.devices=[]}ngOnInit(){this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available,t.available&&this.getInventory()})}ngOnChanges(){this.hasOrchestrator&&(this.devices=[],this.getInventory())}getInventory(){""!==this.hostname&&this.orchService.inventoryDeviceList(this.hostname).subscribe(t=>{this.devices=t},()=>{this.devices=[]})}refresh(){this.getInventory()}}var Jr=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Qr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,zr,Vr)),s["ɵdid"](1,114688,null,0,Gr,[vt.a,pt.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Xr(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Devices"])),(t()(),s["ɵeld"](3,0,null,null,4,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,3,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,2,"cd-inventory-devices",[["selectionType","single"]],null,[[null,"fetchInventory"]],(function(t,e,n){var a=!0;return"fetchInventory"===e&&(a=!1!==t.component.refresh()&&a),a}),$r,Kr)),s["ɵdid"](6,245760,null,0,Wr,[xt.a,ga.a,_a.a,Lt.b,gt.a,Br],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],selectionType:[2,"selectionType"]},{fetchInventory:"fetchInventory"}),s["ɵpad"](7,1)],(function(t,e){var n=e.component,a=n.devices,r=void 0===n.hostname?s["ɵEMPTY_ARRAY"]:t(e,7,0,"hostname");t(e,6,0,a,r,"single")}),null)}function ti(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Qr)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Xr)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,!n.hasOrchestrator),t(e,3,0,n.hasOrchestrator)}),null)}function ei(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-inventory",[],null,null,null,ti,Jr)),s["ɵdid"](1,638976,null,0,Zr,[Br],null,null)],(function(t,e){t(e,1,0)}),null)}var ni=s["ɵccf"]("cd-inventory",Zr,ei,{hostname:"hostname"},{},[]);let ai=(()=>{class t{constructor(t){this.http=t,this.url="api/service"}list(t){const e=t?{params:(new X.h).set("service_name",t)}:{};return this.http.get(this.url,e)}getDaemons(t){return this.http.get(`${this.url}/${t}/daemons`)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})(),ri=(()=>{class t{constructor(){}calculateAdditionalData(t){if(!t.life_expectancy_min||!t.life_expectancy_max)return t.state="unknown",t;const e=t=>!!Number.parseFloat(t),n=(t,n)=>t&&n&&e(t)&&e(n)?ge.duration(ge(t).diff(ge(n))).asWeeks():null,a=ge.duration(ge(ge.now()).diff(ge(t.life_expectancy_stamp))).asWeeks(),r=n(t.life_expectancy_max,t.life_expectancy_stamp),i=n(t.life_expectancy_min,t.life_expectancy_stamp);return t.state=a>1?"stale":null!==r&&r<=2?"bad":null!==i&&i<=4?"warning":"good",t.life_expectancy_weeks={max:null!==r?Math.round(r):null,min:null!==i?Math.round(i):null},t}readable(t){return t.readableDaemons=t.daemons.join(" "),t}prepareDevice(t){return this.readable(this.calculateAdditionalData(t))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})(),ii=(()=>{class t{constructor(t,e){this.http=t,this.deviceService=e,this.baseURL="api/host"}list(){return this.http.get(this.baseURL)}create(t){return this.http.post(this.baseURL,{hostname:t},{observe:"response"})}delete(t){return this.http.delete(`${this.baseURL}/${t}`,{observe:"response"})}getDevices(t){return this.http.get(`${this.baseURL}/${t}/devices`).pipe(Object(Oe.a)(t=>t.map(t=>this.deviceService.prepareDevice(t))))}getSmartData(t){return this.http.get(`${this.baseURL}/${t}/smart`)}getDaemons(t){return this.http.get(`${this.baseURL}/${t}/daemons`)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](ri))},token:t,providedIn:we.a}),t})();class si{constructor(t,e,n,a){this.i18n=t,this.hostService=e,this.cephServiceService=n,this.orchService=a,this.daemons=[],this.columns=[],this.hasOrchestrator=!1}ngOnInit(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1,filterable:!0},{name:this.i18n("Daemon type"),prop:"daemon_type",flexGrow:1,filterable:!0},{name:this.i18n("Daemon ID"),prop:"daemon_id",flexGrow:1,filterable:!0},{name:this.i18n("Container ID"),prop:"container_id",flexGrow:3,filterable:!0,cellTransformation:Hr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Container Image name"),prop:"container_image_name",flexGrow:3,filterable:!0},{name:this.i18n("Container Image ID"),prop:"container_image_id",flexGrow:3,filterable:!0,cellTransformation:Hr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Version"),prop:"version",flexGrow:1,filterable:!0},{name:this.i18n("Status"),prop:"status_desc",flexGrow:1,filterable:!0,cellTemplate:this.statusTpl},{name:this.i18n("Last Refreshed"),prop:"last_refresh",flexGrow:2}],this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available})}ngOnChanges(){J.isUndefined(this.daemonsTable)||this.daemonsTable.reloadData()}ngAfterViewInit(){this.daemonsTableTplsSub=this.daemonsTableTpls.changes.subscribe(t=>{this.daemonsTable=t.first})}ngOnDestroy(){this.daemonsTableTplsSub&&this.daemonsTableTplsSub.unsubscribe()}getStatusClass(t){return J.get({"-1":"badge-danger",0:"badge-warning",1:"badge-success"},t,"badge-dark")}getDaemons(t){let e;if(this.hostname)e=this.hostService.getDaemons(this.hostname);else{if(!this.serviceName)return void(this.daemons=[]);e=this.cephServiceService.getDaemons(this.serviceName)}e.subscribe(t=>{this.daemons=t},()=>{this.daemons=[],t.error()})}}var oi=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ui(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,zr,Vr)),s["ɵdid"](1,114688,null,0,Gr,[vt.a,pt.a],null,null)],(function(t,e){t(e,1,0)}),null)}function di(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getDaemons(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](1,2867200,[[2,4],["daemonsTable",4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"})],(function(t,e){var n=e.component;t(e,1,0,n.daemons,n.columns,"flex",6e4)}),null)}function li(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"span",[["class","badge"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,"badge",e.component.getStatusClass(e.context.row.status))}),(function(t,e){t(e,3,0,e.context.row.status_desc)}))}function ci(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{statusTpl:0}),s["ɵqud"](671088640,2,{daemonsTableTpls:1}),(t()(),s["ɵand"](16777216,null,null,1,null,ui)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,di)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[[1,2],["statusTpl",2]],null,0,null,li))],(function(t,e){var n=e.component;t(e,3,0,!n.hasOrchestrator),t(e,5,0,n.hasOrchestrator)}),null)}var fi=n("sLuX"),hi=n("FSuO"),gi=n("QC43"),pi=n("XFyV");let bi=(()=>{class t{constructor(t,e,n){this.http=t,this.i18n=e,this.deviceService=n,this.path="api/osd",this.osdRecvSpeedModalPriorities={KNOWN_PRIORITIES:[{name:null,text:this.i18n("-- Select the priority --"),values:{osd_max_backfills:null,osd_recovery_max_active:null,osd_recovery_max_single_start:null,osd_recovery_sleep:null}},{name:"low",text:this.i18n("Low"),values:{osd_max_backfills:1,osd_recovery_max_active:1,osd_recovery_max_single_start:1,osd_recovery_sleep:.5}},{name:"default",text:this.i18n("Default"),values:{osd_max_backfills:1,osd_recovery_max_active:3,osd_recovery_max_single_start:1,osd_recovery_sleep:0}},{name:"high",text:this.i18n("High"),values:{osd_max_backfills:4,osd_recovery_max_active:4,osd_recovery_max_single_start:4,osd_recovery_sleep:0}}]}}create(t){const e={method:"drive_groups",data:t,tracking_id:J.join(J.map(t,"service_id"),", ")};return this.http.post(this.path,e,{observe:"response"})}getList(){return this.http.get(`${this.path}`)}getDetails(t){return this.http.get(`${this.path}/${t}`)}getSmartData(t){return this.http.get(`${this.path}/${t}/smart`)}scrub(t,e){return this.http.post(`${this.path}/${t}/scrub?deep=${e}`,null)}getFlags(){return this.http.get(`${this.path}/flags`)}updateFlags(t){return this.http.put(`${this.path}/flags`,{flags:t})}markOut(t){return this.http.post(`${this.path}/${t}/mark_out`,null)}markIn(t){return this.http.post(`${this.path}/${t}/mark_in`,null)}markDown(t){return this.http.post(`${this.path}/${t}/mark_down`,null)}reweight(t,e){return this.http.post(`${this.path}/${t}/reweight`,{weight:e})}update(t,e){return this.http.put(`${this.path}/${t}`,{device_class:e})}markLost(t){return this.http.post(`${this.path}/${t}/mark_lost`,null)}purge(t){return this.http.post(`${this.path}/${t}/purge`,null)}destroy(t){return this.http.post(`${this.path}/${t}/destroy`,null)}delete(t,e){const n=e?{params:(new X.h).set("force","true")}:{};return n.observe="response",this.http.delete(`${this.path}/${t}`,n)}safeToDestroy(t){return this.http.get(`${this.path}/safe_to_destroy?ids=${t}`)}safeToDelete(t){return this.http.get(`${this.path}/safe_to_delete?svc_ids=${t}`)}getDevices(t){return this.http.get(`${this.path}/${t}/devices`).pipe(Object(Oe.a)(t=>t.map(t=>this.deviceService.prepareDevice(t))))}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](_a.a),s["ɵɵinject"](ri))},token:t,providedIn:we.a}),t})();class mi{constructor(t,e,n){this.i18n=t,this.osdService=e,this.hostService=n,this.osdId=null,this.hostname=null,this.loading=!1,this.incompatible=!1,this.error=!1,this.data={}}isSmartError(t){return void 0!==J.get(t,"error")}isNvmeSmartData(t){return"nvme"===J.get(t,"device.protocol","").toLowerCase()}isHddSmartData(t){return"ata"===J.get(t,"device.protocol","").toLowerCase()}fetchData(t){const e={};J.each(t,(t,n)=>{if(this.isSmartError(t)){let a="";return a=this.i18n(-22===t.smartctl_error_code?"Smartctl has received an unknown argument (error code {{code}}). You may be using an incompatible version of smartmontools. Version >= 7.0 of smartmontools is required to successfully retrieve data.":"An error with error code {{code}} occurred.",{code:t.smartctl_error_code}),void(e[n]={error:t.error,smartctl_error_code:t.smartctl_error_code,smartctl_output:t.smartctl_output,userMessage:a,device:t.dev,identifier:t.nvme_vendor})}1!==t.json_format_version[0]?this.incompatible=!0:this.isHddSmartData(t)?e[n]=this.extractHddData(t):this.isNvmeSmartData(t)&&(e[n]=this.extractNvmeData(t))}),this.data=e,this.loading=!1}extractNvmeData(t){return{info:J.omitBy(t,(t,e)=>["nvme_smart_health_information_log"].includes(e)),smart:{nvmeData:t.nvme_smart_health_information_log},device:t.device.name,identifier:t.serial_number}}extractHddData(t){const e=J.omitBy(t,(t,e)=>["ata_smart_attributes","ata_smart_selective_self_test_log","ata_smart_data"].includes(e));return{info:e,smart:{attributes:t.ata_smart_attributes,data:t.ata_smart_data},device:e.device.name,identifier:e.serial_number}}updateData(){this.loading=!0,null!==this.osdId?this.osdService.getSmartData(this.osdId).subscribe(this.fetchData.bind(this),t=>{t.preventDefault(),this.error=t,this.loading=!1}):null!==this.hostname&&this.hostService.getSmartData(this.hostname).subscribe(this.fetchData.bind(this),t=>{t.preventDefault(),this.error=t,this.loading=!1})}ngOnInit(){this.smartDataColumns=[{prop:"id",name:this.i18n("ID")},{prop:"name",name:this.i18n("Name")},{prop:"raw.value",name:this.i18n("Raw")},{prop:"thresh",name:this.i18n("Threshold")},{prop:"value",name:this.i18n("Value")},{prop:"when_failed",name:this.i18n("When Failed")},{prop:"worst",name:this.i18n("Worst")}]}ngOnChanges(t){this.data={},t.osdId?this.osdId=t.osdId.currentValue:t.hostname&&(this.hostname=t.hostname.currentValue),this.updateData()}}var yi=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function vi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["Failed to retrieve SMART data."]))],(function(t,e){t(e,1,0,"error")}),null)}function xi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["The data received has the JSON format version 2.x and is currently incompatible with the dashboard."]))],(function(t,e){t(e,1,0,"warning")}),null)}function _i(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["No SMART data available."]))],(function(t,e){t(e,1,0,"info")}),null)}function Ti(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"cd-alert-panel",[["id","alert-error"],["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](2,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](3,0,["",""]))],(function(t,e){t(e,2,0,"warning")}),(function(t,e){t(e,3,0,e.parent.context.$implicit.value.userMessage)}))}function Oi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"cd-alert-panel",[["id","alert-self-test-passed"],["size","slim"],["title","SMART overall-health self-assessment test result"],["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](2,114688,null,0,Fr.a,[_a.a],{title:[0,"title"],type:[1,"type"],size:[2,"size"]},null),(t()(),s["ɵted"](-1,0,["passed"]))],(function(t,e){t(e,2,0,"SMART overall-health self-assessment test result","info","slim")}),null)}function wi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["id","alert-self-test-failed"],["size","slim"],["title","SMART overall-health self-assessment test result"],["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{title:[0,"title"],type:[1,"type"],size:[2,"size"]},null),(t()(),s["ɵted"](-1,0,["failed"]))],(function(t,e){t(e,1,0,"SMART overall-health self-assessment test result","warning","slim")}),null)}function Si(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table",[["updateSelectionOnRefresh","never"]],null,null,null,Dr.b,Dr.a)),s["ɵdid"](1,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],updateSelectionOnRefresh:[2,"updateSelectionOnRefresh"]},null)],(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.smart.attributes.table,e.component.smartDataColumns,"never")}),null)}function Ii(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-key-value",[["updateSelectionOnRefresh","never"]],null,null,null,fi.b,fi.a)),s["ɵdid"](1,638976,null,0,hi.a,[be.a],{data:[0,"data"],renderObjects:[1,"renderObjects"]},null)],(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.smart.nvmeData,!0)}),null)}function Ni(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["No SMART data available for this device."]))],(function(t,e){t(e,1,0,"info")}),null)}function Ci(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Oi)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["selfTestFailed",2]],null,0,null,wi)),(t()(),s["ɵeld"](3,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](4,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](5,0,null,0,3,"tab",[["heading","Device Information"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](6,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](7,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](8,638976,null,0,hi.a,[be.a],{data:[0,"data"],renderObjects:[1,"renderObjects"]},null),(t()(),s["ɵeld"](9,0,null,0,7,"tab",[["heading","SMART"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](10,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Si)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ii)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ni)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.parent.context.$implicit.value.info.smart_status.passed,s["ɵnov"](e,2)),t(e,6,0,"Device Information"),t(e,8,0,e.parent.context.$implicit.value.info,!0),t(e,10,0,"SMART"),t(e,12,0,e.parent.context.$implicit.value.smart.attributes),t(e,14,0,e.parent.context.$implicit.value.smart.nvmeData),t(e,16,0,!e.parent.context.$implicit.value.smart.attributes&&!e.parent.context.$implicit.value.smart.nvmeData)}),(function(t,e){t(e,3,0,s["ɵnov"](e,4).clazz),t(e,5,0,s["ɵnov"](e,6).id,s["ɵnov"](e,6).active,s["ɵnov"](e,6).addClass,s["ɵnov"](e,6).role,s["ɵnov"](e,6).ariaLabelledby),t(e,9,0,s["ɵnov"](e,10).id,s["ɵnov"](e,10).active,s["ɵnov"](e,10).addClass,s["ɵnov"](e,10).role,s["ɵnov"](e,10).ariaLabelledby)}))}function Ri(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,4,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ti)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["noError",2]],null,0,null,Ci))],(function(t,e){t(e,3,0,e.context.$implicit.value.device+" ("+e.context.$implicit.value.identifier+")"),t(e,5,0,e.context.$implicit.value.error,s["ɵnov"](e,6))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby)}))}function Ai(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,_i)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["ɵand"](16777216,null,null,2,null,Ri)),s["ɵdid"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!s["ɵunv"](e,2,0,s["ɵnov"](e,3).transform(n.data)).length),t(e,5,0,s["ɵunv"](e,5,0,s["ɵnov"](e,6).transform(n.data)))}),null)}function ki(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,vi)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,xi)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ai)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.error),t(e,4,0,n.incompatible),t(e,6,0,!n.error&&!n.incompatible)}),null)}function Ei(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,gi.b,gi.a)),s["ɵdid"](1,49152,null,0,pi.a,[],null,null),(t()(),s["ɵted"](-1,0,["SMART data is loading."]))],null,null)}function Li(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,ki)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["isLoading",2]],null,0,null,Ei))],(function(t,e){t(e,1,0,!e.component.loading,s["ɵnov"](e,2))}),null)}class Di{constructor(t,e,n,a){this.hostService=t,this.i18n=e,this.datePipe=n,this.osdService=a,this.hostname="",this.osdId=null,this.devices=null,this.columns=[],this.translationMapping={"=1":"# week",other:"# weeks"}}ngOnInit(){const t=t=>this.devices=t;this.hostname?this.hostService.getDevices(this.hostname).subscribe(t):null!==this.osdId&&this.osdService.getDevices(this.osdId).subscribe(t),this.columns=[{prop:"devid",name:this.i18n("Device ID"),minWidth:200},{prop:"state",name:this.i18n("State of Health"),flexGrow:1,cellTransformation:Hr.a.badge,customTemplateConfig:{map:{good:{value:this.i18n("Good"),class:"badge-success"},warning:{value:this.i18n("Warning"),class:"badge-warning"},bad:{value:this.i18n("Bad"),class:"badge-danger"},stale:{value:this.i18n("Stale"),class:"badge-info"},unknown:{value:this.i18n("Unknown"),class:"badge-dark"}}}},{prop:"life_expectancy_weeks",name:this.i18n("Life Expectancy"),cellTemplate:this.lifeExpectancyTemplate},{prop:"life_expectancy_stamp",name:this.i18n("Prediction Creation Date"),cellTemplate:this.lifeExpectancyTimestampTemplate,pipe:this.datePipe,isHidden:!0},{prop:"location",name:this.i18n("Device Name"),cellTemplate:this.locationTemplate},{prop:"readableDaemons",name:this.i18n("Daemons")}]}}var Pi=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Mi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table",[],null,null,null,Dr.b,Dr.a)),s["ɵdid"](1,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.devices,n.columns)}),null)}function qi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["Neither hostname nor OSD ID given"]))],(function(t,e){t(e,1,0,"warning")}),null)}function ji(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.$implicit.dev)}))}function Fi(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,ji)),s["ɵdid"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function Gi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["> ",""])),s["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=s["ɵunv"](e,1,0,t(e,2,0,s["ɵnov"](e.parent.parent,0),e.parent.context.value.min,n.translationMapping));t(e,1,0,a)}))}function Vi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["< ",""])),s["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=s["ɵunv"](e,1,0,t(e,2,0,s["ɵnov"](e.parent.parent,0),e.parent.context.value.max,n.translationMapping));t(e,1,0,a)}))}function zi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[""," to ",""])),s["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=e.parent.context.value.min,r=s["ɵunv"](e,1,1,t(e,2,0,s["ɵnov"](e.parent.parent,0),e.parent.context.value.max,n.translationMapping));t(e,1,0,a,r)}))}function Bi(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Gi)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vi)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,zi)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value.min&&!e.context.value.max),t(e,3,0,e.context.value.max&&!e.context.value.min),t(e,5,0,e.context.value.max&&e.context.value.min)}),null)}function Yi(t){return s["ɵvid"](0,[(t()(),s["ɵted"](0,null,[" ","\n"]))],null,(function(t,e){t(e,0,0,e.context.value)}))}function Hi(t){return s["ɵvid"](0,[s["ɵpid"](0,i.I18nPluralPipe,[i.NgLocalization]),s["ɵqud"](402653184,1,{locationTemplate:0}),s["ɵqud"](402653184,2,{lifeExpectancyTemplate:0}),s["ɵqud"](402653184,3,{lifeExpectancyTimestampTemplate:0}),(t()(),s["ɵand"](16777216,null,null,1,null,Mi)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,qi)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[[1,2],["deviceLocation",2]],null,0,null,Fi)),(t()(),s["ɵand"](0,[[2,2],["lifeExpectancy",2]],null,0,null,Bi)),(t()(),s["ɵand"](0,[[3,2],["lifeExpectancyTimestamp",2]],null,0,null,Yi))],(function(t,e){var n=e.component;t(e,5,0,n.hostname||null!==n.osdId),t(e,7,0,""===n.hostname&&null===n.osdId)}),null)}n("jKX/");class Ui{get selectedHostname(){return void 0!==this.selection?this.selection.hostname:null}constructor(){}}var Wi=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ki(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Inventory"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-inventory",[],null,null,null,ti,Jr)),s["ɵdid"](3,638976,null,0,Zr,[Br],{hostname:[0,"hostname"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Inventory"),t(e,3,0,n.selectedHostname)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function $i(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Daemons"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-service-daemon-list",[],null,null,null,ci,oi)),s["ɵdid"](3,4964352,null,0,si,[_a.a,ii,ai,Br],{hostname:[0,"hostname"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Daemons"),t(e,3,0,n.selectedHostname)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function Zi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","rtOg0AiWz"]],null,null,null,kr.b,kr.a)),s["ɵdid"](3,638976,null,0,Er.a,[pt.a,Lr.b,re.a,vt.a,_a.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"host-details?var-ceph_hosts="+n.selectedHostname,"three","rtOg0AiWz")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function Ji(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-smart-list",[],null,null,null,Li,yi)),s["ɵdid"](1,638976,null,0,mi,[_a.a,bi,ii],{hostname:[0,"hostname"]},null)],(function(t,e){t(e,1,0,e.component.selectedHostname)}),null)}function Qi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,[[1,4]],0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Devices"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-device-list",[],null,null,null,Hi,Pi)),s["ɵdid"](5,114688,null,0,Di,[ii,_a.a,i.DatePipe,bi],{hostname:[0,"hostname"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Ki)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,$i)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Zi)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](12,0,null,0,3,"tab",[["heading","Device health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](13,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ji)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Devices"),t(e,5,0,n.selection.hostname),t(e,7,0,n.permissions.hosts.read),t(e,9,0,n.permissions.hosts.read),t(e,11,0,n.permissions.grafana.read),t(e,13,0,"Device health"),t(e,15,0,n.selectedHostname,s["ɵnov"](e.parent,3))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,12,0,s["ɵnov"](e,13).id,s["ɵnov"](e,13).active,s["ɵnov"](e,13).addClass,s["ɵnov"](e,13).role,s["ɵnov"](e,13).ariaLabelledby)}))}function Xi(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["No hostname found."]))],(function(t,e){t(e,1,0,"error")}),null)}function ts(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{tabsetChild:0}),(t()(),s["ɵand"](16777216,null,null,1,null,Qi)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[["noHostname",2]],null,0,null,Xi))],(function(t,e){t(e,2,0,e.component.selection)}),null)}var es=n("EgGo"),ns=n("+fVR"),as=n("0+/T"),rs=n("kvvV"),is=n("85J/"),ss=n("FFMq");class os{constructor(t){this.bsModalRef=t}ngOnInit(){}onSubmit(){this.bsModalRef.hide()}}let us=(()=>{class t{constructor(t,e){this.orchService=t,this.modalService=e}checkOrchestratorOrModal(t,e,n){this.orchService.status().subscribe(a=>{a.available?n():this.modalService.show(os,{initialState:{actionDescription:t,itemDescription:e}})})}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](Br),s["ɵɵinject"](Lt.b))},token:t,providedIn:"root"}),t})();var ds=n("kn/O");const ls=new es.a("hosts");class cs extends ns.a{constructor(t,e,n,a,r,i,s,o,u,d,l){super(),this.authStorageService=t,this.hostService=e,this.cephShortVersionPipe=n,this.joinPipe=a,this.i18n=r,this.urlBuilder=i,this.actionLabels=s,this.modalService=o,this.taskWrapper=u,this.router=d,this.depCheckerService=l,this.columns=[],this.hosts=[],this.isLoadingHosts=!1,this.cdParams={fromLink:"/hosts"},this.selection=new Ur.a,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.CREATE,permission:"create",icon:ht.a.add,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.CREATE,this.i18n("Host"),()=>{this.router.navigate([this.urlBuilder.getCreate()])})}},{name:this.actionLabels.DELETE,permission:"delete",icon:ht.a.destroy,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.DELETE,this.i18n("Host"),()=>this.deleteHostModal())},disable:()=>!this.selection.hasSelection}]}ngOnInit(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Services"),prop:"services",flexGrow:3,cellTemplate:this.servicesTpl},{name:this.i18n("Labels"),prop:"labels",flexGrow:1,pipe:this.joinPipe},{name:this.i18n("Version"),prop:"ceph_version",flexGrow:1,pipe:this.cephShortVersionPipe}]}updateSelection(t){this.selection=t}deleteHostModal(){const t=this.selection.first().hostname;this.modalRef=this.modalService.show(as.a,{initialState:{itemDescription:"Host",itemNames:[t],actionDescription:"delete",submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new rs.a("host/delete",{hostname:t}),call:this.hostService.delete(t)})}})}getHosts(t){if(this.isLoadingHosts)return;const e={mds:"cephfs",mon:"monitor",osd:"osd",rgw:"rgw","rbd-mirror":"rbdMirroring",mgr:"manager","tcmu-runner":"iscsi"};this.isLoadingHosts=!0,this.hostService.list().subscribe(t=>{t.map(t=>(t.services.map(t=>{t.cdLink=`/perf_counters/${t.type}/${encodeURIComponent(t.id)}`;const n=this.permissions[e[t.type]];return t.canRead=!!n&&n.read,t}),t)),this.hosts=t,this.isLoadingHosts=!1},()=>{this.isLoadingHosts=!1,t.error()})}}var fs=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function hs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"a",[["class","service-link"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),s["ɵdid"](1,671744,null,0,qt.p,[qt.m,qt.a,i.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),s["ɵpad"](2,1),(t()(),s["ɵted"](3,null,["",".",""]))],(function(t,e){var n=e.component.cdParams,a=t(e,2,0,e.parent.context.$implicit.cdLink);t(e,1,0,n,a)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).target,s["ɵnov"](e,1).href),t(e,3,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)}))}function gs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ","."," "]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)}))}function ps(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[", "]))],null,null)}function bs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,hs)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,gs)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ps)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit.canRead),t(e,4,0,!e.context.$implicit.canRead),t(e,6,0,!e.context.last)}),null)}function ms(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,bs)),s["ɵdid"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function ys(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","y0KGL0iZz"]],null,null,null,kr.b,kr.a)),s["ɵdid"](3,638976,null,0,Er.a,[pt.a,Lr.b,re.a,vt.a,_a.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"host-overview?","two","y0KGL0iZz")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function vs(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{servicesTpl:0}),(t()(),s["ɵeld"](1,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](2,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](3,0,null,0,9,"tab",[["heading","Hosts List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](4,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](5,0,null,null,7,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"fetchData"],[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getHosts(n)&&a),"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](6,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],selectionType:[4,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](7,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"cd-table-actions",[["class","btn-group"],["id","host-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](9,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵand"](0,[[1,2],["servicesTpl",2]],null,0,null,ms)),(t()(),s["ɵeld"](11,0,null,3,1,"cd-host-details",[["cdTableDetail",""]],null,null,null,ts,Wi)),s["ɵdid"](12,49152,null,0,Ui,[],{permissions:[0,"permissions"],selection:[1,"selection"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ys)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,"Hosts List"),t(e,6,0,n.hosts,n.columns,"flex",!0,"single"),t(e,9,0,n.permissions.hosts,n.selection,n.tableActions),t(e,12,0,n.permissions,n.expandedRow),t(e,14,0,n.permissions.grafana.read)}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).clazz),t(e,3,0,s["ɵnov"](e,4).id,s["ɵnov"](e,4).active,s["ɵnov"](e,4).addClass,s["ɵnov"](e,4).role,s["ɵnov"](e,4).ariaLabelledby)}))}function xs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-hosts",[],null,null,null,vs,fs)),s["ɵprd"](256,null,es.a,ls,[]),s["ɵdid"](2,114688,null,0,cs,[xt.a,ii,is.a,ss.a,_a.a,es.a,At.b,Lt.b,ds.a,qt.m,us],null,null)],(function(t,e){t(e,2,0)}),null)}var _s=s["ɵccf"]("cd-hosts",cs,xs,{},{},[]),Ts=n("mXUL"),Os=n("IZUe"),ws=n("gp3X"),Ss=n("sb0X"),Is=n("KVJa"),Ns=n("Z21x"),Cs=n("8xTl"),Rs=n("QFaf"),As=n("1Ni5");class ks{constructor(t,e,n,a,r){this.router=t,this.i18n=e,this.actionLabels=n,this.hostService=a,this.taskWrapper=r,this.loading=!0,this.resource=this.i18n("host"),this.action=this.actionLabels.CREATE,this.createForm()}ngOnInit(){this.hostService.list().subscribe(t=>{this.hostnames=t.map(t=>t.hostname),this.loading=!1})}createForm(){this.hostForm=new Rs.a({hostname:new $.i("",{validators:[$.B.required,As.a.custom("uniqueName",t=>this.hostnames&&-1!==this.hostnames.indexOf(t))]})})}submit(){const t=this.hostForm.get("hostname").value;this.taskWrapper.wrapTaskAroundCall({task:new rs.a("host/"+At.e.CREATE,{hostname:t}),call:this.hostService.create(t)}).subscribe(void 0,()=>{this.hostForm.setErrors({cdSubmitButton:!0})},()=>{this.router.navigate(["/hosts"])})}}var Es=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ls(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,gi.b,gi.a)),s["ɵdid"](1,49152,null,0,pi.a,[],null,null),(t()(),s["ɵted"](-1,0,["Loading..."]))],null,null)}function Ds(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function Ps(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The chosen hostname is already in use."]))],null,null)}function Ms(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,39,"form",[["name","hostForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,2).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,2).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,5).onSubmit()&&a),a}),null,null)),s["ɵdid"](1,16384,null,0,$.G,[],null,null),s["ɵdid"](2,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](4,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](5,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](6,0,null,null,33,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](8,null,[""," ",""])),s["ɵppd"](9,1),s["ɵppd"](10,1),(t()(),s["ɵeld"](11,0,null,null,19,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](13,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","hostname"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Hostname"])),(t()(),s["ɵeld"](18,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","hostname"],["id","hostname"],["name","hostname"],["placeholder","mon-123"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](20,4210688,null,0,Os.a,[s.ElementRef],{autofocus:[0,"autofocus"]},null),s["ɵdid"](21,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](23,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](25,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](26,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ds)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ps)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](31,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](32,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](33,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ws.b,ws.a)),s["ɵdid"](34,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](35,0,[""," ",""])),s["ɵppd"](36,1),s["ɵppd"](37,1),(t()(),s["ɵeld"](38,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](39,49152,null,0,Ns.a,[i.Location,At.b],null,null)],(function(t,e){var n=e.component;t(e,2,0,n.hostForm),t(e,5,0,n.hostForm),t(e,13,0),t(e,20,0,""),t(e,23,0,"hostname"),t(e,26,0,"hostname"),t(e,28,0,n.hostForm.showError("hostname",s["ɵnov"](e,2),"required")),t(e,30,0,n.hostForm.showError("hostname",s["ɵnov"](e,2),"uniqueName")),t(e,34,0,s["ɵnov"](e,2))}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,4).ngClassUntouched,s["ɵnov"](e,4).ngClassTouched,s["ɵnov"](e,4).ngClassPristine,s["ɵnov"](e,4).ngClassDirty,s["ɵnov"](e,4).ngClassValid,s["ɵnov"](e,4).ngClassInvalid,s["ɵnov"](e,4).ngClassPending);var a=s["ɵunv"](e,8,0,t(e,9,0,s["ɵnov"](e.parent,0),n.action)),r=s["ɵunv"](e,8,1,t(e,10,0,s["ɵnov"](e.parent,1),n.resource));t(e,8,0,a,r),t(e,12,0,s["ɵnov"](e,13).hasErrors,s["ɵnov"](e,13).hasSuccess),t(e,19,0,s["ɵnov"](e,25).ngClassUntouched,s["ɵnov"](e,25).ngClassTouched,s["ɵnov"](e,25).ngClassPristine,s["ɵnov"](e,25).ngClassDirty,s["ɵnov"](e,25).ngClassValid,s["ɵnov"](e,25).ngClassInvalid,s["ɵnov"](e,25).ngClassPending,s["ɵnov"](e,26).validClass,s["ɵnov"](e,26).invalidClass);var i=s["ɵunv"](e,35,0,t(e,36,0,s["ɵnov"](e.parent,0),n.action)),o=s["ɵunv"](e,35,1,t(e,37,0,s["ɵnov"](e.parent,1),n.resource));t(e,35,0,i,o)}))}function qs(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),(t()(),s["ɵand"](16777216,null,null,1,null,Ls)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](4,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Ms)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.loading),t(e,6,0,!n.loading)}),null)}function js(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-host-form",[],null,null,null,qs,Es)),s["ɵdid"](1,114688,null,0,ks,[qt.m,_a.a,At.b,ii,ds.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Fs=s["ɵccf"]("cd-host-form",ks,js,{},{},[]);let Gs=(()=>{class t{constructor(t){this.http=t}getMonitor(){return this.http.get("api/monitor")}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();class Vs{constructor(t,e){this.monitorService=t,this.i18n=e,this.inQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:Hr.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")},{prop:"cdOpenSessions",name:this.i18n("Open Sessions"),cellTransformation:Hr.a.sparkline,comparator:(t,e)=>{const n=J.last(t),a=J.last(e);return n&&a&&n!==a?n>a?1:-1:0}}]},this.notInQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:Hr.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")}]}}refresh(){this.monitorService.getMonitor().subscribe(t=>{t.in_quorum.map(t=>(t.cdOpenSessions=t.stats.num_sessions.map(t=>t[1]),t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t)),t.out_quorum.map(t=>(t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t)),this.inQuorum.data=[...t.in_quorum],this.notInQuorum.data=[...t.out_quorum],this.mon_status=t.mon_status})}}var zs=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Bs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,35,"table",[["class","table table-striped"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cluster ID"])),(t()(),s["ɵeld"](4,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](5,null,["",""])),(t()(),s["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["monmap modified"])),(t()(),s["ɵeld"](9,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](10,null,["",""])),(t()(),s["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["monmap epoch"])),(t()(),s["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](15,null,["",""])),(t()(),s["ɵeld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["quorum con"])),(t()(),s["ɵeld"](19,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](20,null,["",""])),(t()(),s["ɵeld"](21,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["quorum mon"])),(t()(),s["ɵeld"](24,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](25,null,["",""])),(t()(),s["ɵeld"](26,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](27,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["required con"])),(t()(),s["ɵeld"](29,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](30,null,["",""])),(t()(),s["ɵeld"](31,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](32,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["required mon"])),(t()(),s["ɵeld"](34,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](35,null,["",""]))],null,(function(t,e){var n=e.component;t(e,5,0,n.mon_status.monmap.fsid),t(e,10,0,n.mon_status.monmap.modified),t(e,15,0,n.mon_status.monmap.epoch),t(e,20,0,n.mon_status.features.quorum_con),t(e,25,0,n.mon_status.features.quorum_mon),t(e,30,0,n.mon_status.features.required_con),t(e,35,0,n.mon_status.features.required_mon)}))}function Ys(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,15,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,5,"div",[["class","col-lg-4"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,4,"fieldset",[],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Status"])),(t()(),s["ɵand"](16777216,null,null,1,null,Bs)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](7,0,null,null,8,"div",[["class","col-lg-8"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"legend",[["class","in-quorum cd-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["In Quorum"])),(t()(),s["ɵeld"](10,0,null,null,1,"cd-table",[],null,null,null,Dr.b,Dr.a)),s["ɵdid"](11,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(t()(),s["ɵeld"](12,0,null,null,1,"legend",[["class","in-quorum cd-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Not In Quorum"])),(t()(),s["ɵeld"](14,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a}),Dr.b,Dr.a)),s["ɵdid"](15,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"})],(function(t,e){var n=e.component;t(e,6,0,n.mon_status),t(e,11,0,n.inQuorum.data,n.inQuorum.columns),t(e,15,0,n.notInQuorum.data,n.notInQuorum.columns)}),null)}function Hs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-monitor",[],null,null,null,Ys,zs)),s["ɵdid"](1,49152,null,0,Vs,[Gs,_a.a],null,null)],null,null)}var Us=s["ɵccf"]("cd-monitor",Vs,Hs,{},{},[]);class Ws{constructor(){}ngOnInit(){}}var Ks=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function $s(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,[[1,4]],0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Daemons"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-service-daemon-list",[],null,null,null,ci,oi)),s["ɵdid"](5,4964352,null,0,si,[_a.a,ii,ai,Br],{serviceName:[0,"serviceName"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Daemons"),t(e,5,0,n.selection.service_name)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby)}))}function Zs(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{tabsetChild:0}),(t()(),s["ɵand"](16777216,null,null,1,null,$s)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.component.selection)}),null)}class Js extends ns.a{constructor(t,e,n,a){super(),this.authStorageService=t,this.i18n=e,this.orchService=n,this.cephServiceService=a,this.hiddenColumns=[],this.checkingOrchestrator=!0,this.hasOrchestrator=!1,this.columns=[],this.services=[],this.isLoadingServices=!1,this.selection=new Ur.a,this.permissions=this.authStorageService.getPermissions()}ngOnInit(){const t=[{name:this.i18n("Service"),prop:"service_name",flexGrow:1},{name:this.i18n("Container image name"),prop:"status.container_image_name",flexGrow:3},{name:this.i18n("Container image ID"),prop:"status.container_image_id",flexGrow:3,cellTransformation:Hr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Running"),prop:"status.running",flexGrow:1},{name:this.i18n("Size"),prop:"status.size",flexGrow:1},{name:this.i18n("Last Refreshed"),prop:"status.last_refresh",flexGrow:1}];this.columns=t.filter(t=>!this.hiddenColumns.includes(t.prop)),this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available})}ngOnChanges(){this.hasOrchestrator&&(this.services=[],this.table.reloadData())}getServices(t){this.isLoadingServices||(this.isLoadingServices=!0,this.cephServiceService.list().subscribe(t=>{this.services=t,this.isLoadingServices=!1},()=>{this.isLoadingServices=!1,this.services=[],t.error()}))}}var Qs=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Xs(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,zr,Vr)),s["ɵdid"](1,114688,null,0,Gr,[vt.a,pt.a],null,null)],(function(t,e){t(e,1,0)}),null)}function to(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","service_name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"setExpandedRow"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getServices(n)&&a),"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](2,2867200,[[1,4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],forceIdentifier:[6,"forceIdentifier"],selectionType:[7,"selectionType"]},{fetchData:"fetchData",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](3,0,null,3,1,"cd-service-details",[["cdTableDetail",""]],null,null,null,Zs,Ks)),s["ɵdid"](4,114688,null,0,Ws,[],{permissions:[0,"permissions"],selection:[1,"selection"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.services,n.columns,"flex",!0,6e4,"service_name","true","single"),t(e,4,0,n.permissions,n.expandedRow)}),null)}function eo(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{table:0}),(t()(),s["ɵand"](16777216,null,null,1,null,Xs)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,to)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,!n.hasOrchestrator),t(e,4,0,n.hasOrchestrator)}),null)}function no(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-services",[],null,null,null,eo,Qs)),s["ɵdid"](1,638976,null,0,Js,[xt.a,_a.a,Br,ai],null,null)],(function(t,e){t(e,1,0)}),null)}var ao=s["ɵccf"]("cd-services",Js,no,{hostname:"hostname",hiddenColumns:"hiddenColumns"},{},[]),ro=n("xSw7"),io=n("GgAd"),so=n("j8L6"),oo=n("b5OY"),uo=n("pxLl");class lo{constructor(){this.last={}}ngOnChanges(){this.render()}hexdigits(t){const e=Math.floor(255*t).toString(16);return 1===e.length?"0"+e:e}hexcolor(t,e,n){return"#"+this.hexdigits(t)+this.hexdigits(e)+this.hexdigits(n)}render(){if(!this.histogram)return;let t=0;J.each(this.histogram.values,(e,n)=>{J.each(e,(e,a)=>{let r;r=this.last&&this.last[n]&&this.last[n][a]?e-this.last[n][a]:e,t=Math.max(t,r)})}),this.valuesStyle=this.histogram.values.map((e,n)=>e.map((e,a)=>{const r=t?(this.last&&this.last[n]&&this.last[n][a]?e-this.last[n][a]:e)/t:0;return{backgroundColor:this.hexcolor(1-r,r,0)}})),this.last=this.histogram.values}}var co=s["ɵcrt"]({encapsulation:0,styles:[["table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]{height:10px}table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{width:10px;height:10px}"]],data:{}});function fo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgStyleImpl"],i["ɵNgStyleR2Impl"],[s.ElementRef,s.KeyValueDiffers,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgStyle,[i["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function ho(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,fo)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function go(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"table",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,ho)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.valuesStyle)}),null)}class po{constructor(t,e){this.osdService=t,this.authStorageService=e,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.osd={loaded:!1},this.selection&&(this.osd=this.selection,this.refresh())}refresh(){this.osdService.getDetails(this.osd.id).subscribe(t=>{this.osd.details=t,this.osd.histogram_failed="",J.isObject(t.histogram)||(this.osd.histogram_failed=t.histogram,this.osd.details.histogram=void 0),this.osd.loaded=!0})}}var bo=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function mo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-device-list",[],null,null,null,Hi,Pi)),s["ɵdid"](1,114688,null,0,Di,[ii,_a.a,i.DatePipe,bi],{osdId:[0,"osdId"]},null)],(function(t,e){t(e,1,0,e.component.osd.id)}),null)}function yo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](1,638976,null,0,hi.a,[be.a],{data:[0,"data"]},null)],(function(t,e){t(e,1,0,e.component.osd.details.osd_map)}),null)}function vo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a}),fi.b,fi.a)),s["ɵdid"](1,638976,null,0,hi.a,[be.a],{data:[0,"data"]},{fetchData:"fetchData"})],(function(t,e){t(e,1,0,e.component.osd.details.osd_metadata)}),null)}function xo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["Metadata not available"]))],(function(t,e){t(e,1,0,"warning")}),null)}function _o(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-performance-counter",[["serviceType","osd"]],null,null,null,so.b,so.a)),s["ɵdid"](1,114688,null,0,oo.a,[uo.a,_a.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],(function(t,e){t(e,1,0,"osd",e.component.osd.id)}),null)}function To(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](2,0,["Histogram not available: ",""]))],(function(t,e){t(e,1,0,"warning")}),(function(t,e){t(e,2,0,e.component.osd.histogram_failed)}))}function Oo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Writes"])),(t()(),s["ɵeld"](4,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,go,co)),s["ɵdid"](5,573440,null,0,lo,[],{histogram:[0,"histogram"]},null),(t()(),s["ɵeld"](6,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Reads"])),(t()(),s["ɵeld"](9,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,go,co)),s["ɵdid"](10,573440,null,0,lo,[],{histogram:[0,"histogram"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.osd.details.histogram.osd.op_w_latency_in_bytes_histogram),t(e,10,0,n.osd.details.histogram.osd.op_r_latency_out_bytes_histogram)}),null)}function wo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","GrafanaStyles.two"],["uid","CrAHE0iZz"]],null,null,null,kr.b,kr.a)),s["ɵdid"](3,638976,null,0,Er.a,[pt.a,Lr.b,re.a,vt.a,_a.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"osd-device-details?var-osd=osd."+n.osd.id,"GrafanaStyles.two","CrAHE0iZz")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function So(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,30,"tabset",[["id","tabset-osd-details"]],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Devices"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mo)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](6,0,null,0,3,"tab",[["heading","Attributes (OSD map)"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](7,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yo)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](10,0,null,0,4,"tab",[["heading","Metadata"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](11,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vo)),s["ɵdid"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["noMetaData",2]],null,0,null,xo)),(t()(),s["ɵeld"](15,0,null,0,3,"tab",[["heading","Device health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](16,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](17,0,null,null,1,"cd-smart-list",[],null,null,null,Li,yi)),s["ɵdid"](18,638976,null,0,mi,[_a.a,bi,ii],{osdId:[0,"osdId"]},null),(t()(),s["ɵeld"](19,0,null,0,3,"tab",[["heading","Performance counter"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](20,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,_o)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](23,0,null,0,5,"tab",[["heading","Histogram"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](24,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,To)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Oo)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,wo)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Devices"),t(e,5,0,n.osd.loaded&&null!==n.osd.id),t(e,7,0,"Attributes (OSD map)"),t(e,9,0,n.osd.loaded),t(e,11,0,"Metadata"),t(e,13,0,n.osd.loaded&&n.osd.details.osd_metadata,s["ɵnov"](e,14)),t(e,16,0,"Device health"),t(e,18,0,n.osd.id),t(e,20,0,"Performance counter"),t(e,22,0,n.osd.loaded),t(e,24,0,"Histogram"),t(e,26,0,n.osd.loaded&&n.osd.histogram_failed),t(e,28,0,n.osd.loaded&&n.osd.details.histogram),t(e,30,0,n.grafanaPermission.read)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,6,0,s["ɵnov"](e,7).id,s["ɵnov"](e,7).active,s["ɵnov"](e,7).addClass,s["ɵnov"](e,7).role,s["ɵnov"](e,7).ariaLabelledby),t(e,10,0,s["ɵnov"](e,11).id,s["ɵnov"](e,11).active,s["ɵnov"](e,11).addClass,s["ɵnov"](e,11).role,s["ɵnov"](e,11).ariaLabelledby),t(e,15,0,s["ɵnov"](e,16).id,s["ɵnov"](e,16).active,s["ɵnov"](e,16).addClass,s["ɵnov"](e,16).role,s["ɵnov"](e,16).ariaLabelledby),t(e,19,0,s["ɵnov"](e,20).id,s["ɵnov"](e,20).active,s["ɵnov"](e,20).addClass,s["ɵnov"](e,20).role,s["ɵnov"](e,20).ariaLabelledby),t(e,23,0,s["ɵnov"](e,24).id,s["ɵnov"](e,24).active,s["ɵnov"](e,24).addClass,s["ɵnov"](e,24).role,s["ɵnov"](e,24).ariaLabelledby)}))}function Io(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,So)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection)}),null)}function No(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-details",[],null,null,null,Io,bo)),s["ɵdid"](1,573440,null,0,po,[bi,xt.a],null,null)],null,null)}var Co=s["ɵccf"]("cd-osd-details",po,No,{selection:"selection"},{},[]),Ro=n("cp0P"),Ao=n("OLbh");class ko{constructor(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.osdService=n,this.notificationService=a,this.i18n=r,this.osdFlagsForm=new $.k({}),this.allFlags={noin:{code:"noin",name:this.i18n("No In"),value:!1,description:this.i18n("OSDs that were previously marked out will not be marked back in when they start")},noout:{code:"noout",name:this.i18n("No Out"),value:!1,description:this.i18n("OSDs will not automatically be marked out after the configured interval")},noup:{code:"noup",name:this.i18n("No Up"),value:!1,description:this.i18n("OSDs are not allowed to start")},nodown:{code:"nodown",name:this.i18n("No Down"),value:!1,description:this.i18n("OSD failure reports are being ignored, such that the monitors will not mark OSDs down")},pause:{code:"pause",name:this.i18n("Pause"),value:!1,description:this.i18n("Pauses reads and writes")},noscrub:{code:"noscrub",name:this.i18n("No Scrub"),value:!1,description:this.i18n("Scrubbing is disabled")},"nodeep-scrub":{code:"nodeep-scrub",name:this.i18n("No Deep Scrub"),value:!1,description:this.i18n("Deep Scrubbing is disabled")},nobackfill:{code:"nobackfill",name:this.i18n("No Backfill"),value:!1,description:this.i18n("Backfilling of PGs is suspended")},norebalance:{code:"norebalance",name:this.i18n("No Rebalance"),value:!1,description:this.i18n("OSD will choose not to backfill unless PG is also degraded")},norecover:{code:"norecover",name:this.i18n("No Recover"),value:!1,description:this.i18n("Recovery of PGs is suspended")},sortbitwise:{code:"sortbitwise",name:this.i18n("Bitwise Sort"),value:!1,description:this.i18n("Use bitwise sort"),disabled:!0},purged_snapdirs:{code:"purged_snapdirs",name:this.i18n("Purged Snapdirs"),value:!1,description:this.i18n("OSDs have converted snapsets"),disabled:!0},recovery_deletes:{code:"recovery_deletes",name:this.i18n("Recovery Deletes"),value:!1,description:this.i18n("Deletes performed during recovery instead of peering"),disabled:!0},pglog_hardlimit:{code:"pglog_hardlimit",name:this.i18n("PG Log Hard Limit"),value:!1,description:this.i18n("Puts a hard limit on pg log length"),disabled:!0}},this.unknownFlags=[],this.permissions=this.authStorageService.getPermissions()}ngOnInit(){this.osdService.getFlags().subscribe(t=>{t.forEach(t=>{this.allFlags[t]?this.allFlags[t].value=!0:this.unknownFlags.push(t)}),this.flags=J.toArray(this.allFlags)})}submitAction(){const t=this.flags.filter(t=>t.value).map(t=>t.code).concat(this.unknownFlags);this.osdService.updateFlags(t).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("Updated OSD Flags")),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}var Eo=n("MuvH");let Lo=(()=>{class t{static getType(t){const e=J.find(this.knownTypes,e=>e.name===t);if(void 0!==e)return e;throw new Error('Found unknown type "'+t+'" for config option.')}static getTypeValidators(e){const n=t.getType(e.type);if("bool"===n.name||"str"===n.name)return;const a={validators:[],patternHelpText:n.patternHelpText};return n.isNumberType?(e.max&&""!==e.max&&(a.max=e.max,a.validators.push($.B.max(e.max))),e.min&&""!==e.min?(a.min=e.min,a.validators.push($.B.min(e.min))):"defaultMin"in n&&(a.min=n.defaultMin,a.validators.push($.B.min(n.defaultMin))),a.validators.push("float"===e.type?As.a.decimalNumber():As.a.number(n.allowsNegative))):"addr"===e.type?a.validators=[As.a.ip()]:"uuid"===e.type&&(a.validators=[As.a.uuid()]),a}static getTypeStep(t,e){if(["uint","int","size","secs"].includes(t))return 1;if("float"===t){if(null!==e&&-1!==e.toString().indexOf(".")){const t=e.toString().split(".");return Math.pow(10,-t[1].length)}return.1}}}return t.knownTypes=[{name:"uint",inputType:"number",humanReadable:"Unsigned integer value",defaultMin:0,patternHelpText:"The entered value needs to be an unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"int",inputType:"number",humanReadable:"Integer value",patternHelpText:"The entered value needs to be a number.",isNumberType:!0,allowsNegative:!0},{name:"size",inputType:"number",humanReadable:"Unsigned integer value (>=16bit)",defaultMin:0,patternHelpText:"The entered value needs to be a unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"secs",inputType:"number",humanReadable:"Number of seconds",defaultMin:1,patternHelpText:"The entered value needs to be a number >= 1.",isNumberType:!0,allowsNegative:!1},{name:"float",inputType:"number",humanReadable:"Double value",patternHelpText:"The entered value needs to be a number or decimal.",isNumberType:!0,allowsNegative:!0},{name:"str",inputType:"text",humanReadable:"Text",isNumberType:!1},{name:"addr",inputType:"text",humanReadable:"IPv4 or IPv6 address",patternHelpText:"The entered value needs to be a valid IP address.",isNumberType:!1},{name:"uuid",inputType:"text",humanReadable:"UUID",patternHelpText:"The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8",isNumberType:!1},{name:"bool",inputType:"checkbox",humanReadable:"Boolean value",isNumberType:!1}],t})();class Do{constructor(t){this.configService=t,this.optionNames=[],this.optionsForm=new Rs.a({}),this.optionsFormDir=new $.t([],[]),this.optionsFormGroupName="",this.optionsFormShowReset=!0,this.icons=ht.a,this.options=[],this.optionsFormGroup=new Rs.a({})}static optionNameToText(t){const e=["mon","mgr","osd","mds","client"];return t.split("_").filter((t,n)=>0!==n||!e.includes(t)).map(t=>t.charAt(0).toUpperCase()+t.substring(1)).join(" ")}ngOnInit(){this.createForm(),this.loadStoredData()}createForm(){this.optionsForm.addControl(this.optionsFormGroupName,this.optionsFormGroup),this.optionNames.forEach(t=>{this.optionsFormGroup.addControl(t,new $.i(null))})}getStep(t,e){return Lo.getTypeStep(t,e)}loadStoredData(){this.configService.filter(this.optionNames).subscribe(t=>{this.options=t.map(t=>{const e=this.optionsForm.get(t.name),n=Lo.getTypeValidators(t);return t.additionalTypeInfo=Lo.getType(t.type),t.text=Do.optionNameToText(t.name),t.value=J.find(t.value,t=>"osd"===t.section),t.value&&e.setValue("bool"===t.additionalTypeInfo.name?"true"===t.value.value:t.value.value),n&&(t.patternHelpText=n.patternHelpText,"max"in n&&""!==n.max&&(t.maxValue=n.max),"min"in n&&""!==n.min&&(t.minValue=n.min),e.setValidators(n.validators)),t})})}saveValues(){const t={};return this.optionNames.forEach(e=>{const n=this.optionsForm.getValue(e);null!==n&&""!==n&&(t[e]={section:"osd",value:n})}),this.configService.bulkCreate({options:t})}resetValue(t){this.configService.delete(t,"osd").subscribe(()=>{this.optionsForm.get(t).reset()})}}let Po=(()=>{class t{}return t.basicOptions=["osd_scrub_during_recovery","osd_scrub_begin_hour","osd_scrub_end_hour","osd_scrub_begin_week_day","osd_scrub_end_week_day","osd_scrub_min_interval","osd_scrub_max_interval","osd_deep_scrub_interval","osd_scrub_auto_repair","osd_max_scrubs","osd_scrub_priority","osd_scrub_sleep"],t.advancedOptions=["osd_scrub_auto_repair_num_errors","osd_debug_deep_scrub_sleep","osd_deep_scrub_keys","osd_deep_scrub_large_omap_object_key_threshold","osd_deep_scrub_large_omap_object_value_sum_threshold","osd_deep_scrub_randomize_ratio","osd_deep_scrub_stride","osd_deep_scrub_update_digest_min_age","osd_requested_scrub_priority","osd_scrub_backoff_ratio","osd_scrub_chunk_max","osd_scrub_chunk_min","osd_scrub_cost","osd_scrub_interval_randomize_ratio","osd_scrub_invalid_stats","osd_scrub_load_threshold","osd_scrub_max_preemptions"],t})();class Mo{constructor(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.notificationService=n,this.i18n=a,this.actionLabels=r,this.basicOptions=Po.basicOptions,this.advancedOptions=Po.advancedOptions,this.advancedEnabled=!1,this.osdPgScrubForm=new Rs.a({}),this.resource=this.i18n("PG scrub options"),this.action=this.actionLabels.EDIT,this.permissions=this.authStorageService.getPermissions()}submitAction(){const t=[this.basicOptionsValues.saveValues()];this.advancedOptionsValues&&t.push(this.advancedOptionsValues.saveValues()),Object(Ro.a)(t).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("Updated PG scrub options")),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}class qo{constructor(t,e,n,a,r,i){this.bsModalRef=t,this.authStorageService=e,this.configService=n,this.notificationService=a,this.i18n=r,this.osdService=i,this.priorities=[],this.priorityAttrs={},this.permissions=this.authStorageService.getPermissions(),this.priorities=this.osdService.osdRecvSpeedModalPriorities.KNOWN_PRIORITIES,this.osdRecvSpeedForm=new Rs.a({priority:new $.i(null,{validators:[$.B.required]}),customizePriority:new $.i(!1)}),this.priorityAttrs={osd_max_backfills:{text:this.i18n("Max Backfills"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_active:{text:this.i18n("Recovery Max Active"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_single_start:{text:this.i18n("Recovery Max Single Start"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_sleep:{text:this.i18n("Recovery Sleep"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0}},Object.keys(this.priorityAttrs).forEach(t=>{this.osdRecvSpeedForm.addControl(t,new $.i(null,{validators:[$.B.required]}))})}ngOnInit(){this.configService.filter(Object.keys(this.priorityAttrs)).subscribe(t=>{const e=this.getCurrentValues(t);this.detectPriority(e.values,t=>{this.setPriority(t)}),this.setDescription(e.configOptions),this.setValidators(e.configOptions)})}detectPriority(t,e){const n=J.find(this.priorities,e=>J.isEqual(e.values,t));return this.osdRecvSpeedForm.controls.customizePriority.setValue(!1),n?e(n):4===Object.entries(t).length?(this.osdRecvSpeedForm.controls.customizePriority.setValue(!0),e(Object({name:"custom",text:this.i18n("Custom"),values:t}))):e(this.priorities[0])}getCurrentValues(t){const e={values:{},configOptions:[]};return t.forEach(t=>{e.configOptions.push(t),"value"in t?t.value.forEach(n=>{"osd"===n.section&&(e.values[t.name]=Number(n.value))}):"default"in t&&null!==t.default&&(e.values[t.name]=Number(t.default))}),e}setDescription(t){t.forEach(t=>{""!==t.desc&&(this.priorityAttrs[t.name].desc=t.desc)})}setPriority(t){const e=J.find(this.priorities,t=>"custom"===t.name);"custom"===t.name?e||this.priorities.push(t):e&&this.priorities.splice(this.priorities.indexOf(e),1),this.osdRecvSpeedForm.controls.priority.setValue(t.name),Object.entries(t.values).forEach(([t,e])=>{this.osdRecvSpeedForm.controls[t].setValue(e)})}setValidators(t){t.forEach(t=>{const e=Lo.getTypeValidators(t);e?(e.validators.push($.B.required),"max"in e&&""!==e.max&&(this.priorityAttrs[t.name].maxValue=e.max),"min"in e&&""!==e.min&&(this.priorityAttrs[t.name].minValue=e.min),this.priorityAttrs[t.name].patternHelpText=e.patternHelpText,this.osdRecvSpeedForm.controls[t.name].setValidators(e.validators)):this.osdRecvSpeedForm.controls[t.name].setValidators($.B.required)})}onCustomizePriorityChange(){const t={};if(Object.keys(this.priorityAttrs).forEach(e=>{t[e]=this.osdRecvSpeedForm.getValue(e)}),this.osdRecvSpeedForm.getValue("customizePriority")){const e={name:"custom",text:this.i18n("Custom"),values:t};this.setPriority(e)}else this.detectPriority(t,t=>{this.setPriority(t)})}onPriorityChange(t){const e=J.find(this.priorities,e=>e.name===t)||this.priorities[0];this.osdRecvSpeedForm.get("customizePriority").setValue(!1),this.setPriority(e)}submitAction(){const t={};Object.keys(this.priorityAttrs).forEach(e=>{t[e]={section:"osd",value:this.osdRecvSpeedForm.getValue(e)}}),this.configService.bulkCreate({options:t}).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n('Updated OSD recovery speed priority "{{value}}"',{value:this.osdRecvSpeedForm.getValue("priority")})),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}var jo=n("2EZI");class Fo{constructor(t,e,n){this.bsModalRef=t,this.osdService=e,this.fb=n,this.currentWeight=1}get weight(){return this.reweightForm.get("weight")}ngOnInit(){this.reweightForm=this.fb.group({weight:this.fb.control(this.currentWeight,[$.B.required,$.B.max(1),$.B.min(0)])})}reweight(){this.osdService.reweight(this.osdId,this.reweightForm.value.weight).subscribe(()=>this.bsModalRef.hide())}}class Go{constructor(t,e,n,a,r){this.bsModalRef=t,this.osdService=e,this.notificationService=n,this.i18n=a,this.joinPipe=r,this.selected=[]}ngOnInit(){this.scrubForm=new $.k({})}scrub(){Object(Ro.a)(this.selected.map(t=>this.osdService.scrub(t,this.deep))).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("{{operation}} was initialized in the following OSD(s): {{id}}",{operation:this.deep?"Deep scrub":"Scrub",id:this.joinPipe.transform(this.selected)})),this.bsModalRef.hide()},()=>this.bsModalRef.hide())}}const Vo=new es.a("osd");class zo extends ns.a{constructor(t,e,n,a,r,i,s,o,u,d,l){super(),this.authStorageService=t,this.osdService=e,this.dimlessBinaryPipe=n,this.modalService=a,this.i18n=r,this.urlBuilder=i,this.router=s,this.depCheckerService=o,this.taskWrapper=u,this.actionLabels=d,this.notificationService=l,this.icons=ht.a,this.selection=new Ur.a,this.osds=[],this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.CREATE,permission:"create",icon:ht.a.add,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.CREATE,this.i18n("OSD"),()=>{this.router.navigate([this.urlBuilder.getCreate()])})},canBePrimary:t=>!t.hasSelection},{name:this.actionLabels.EDIT,permission:"update",icon:ht.a.edit,click:()=>this.editAction()},{name:this.actionLabels.SCRUB,permission:"update",icon:ht.a.analyse,click:()=>this.scrubAction(!1),disable:()=>!this.hasOsdSelected,canBePrimary:t=>t.hasSelection},{name:this.actionLabels.DEEP_SCRUB,permission:"update",icon:ht.a.deepCheck,click:()=>this.scrubAction(!0),disable:()=>!this.hasOsdSelected},{name:this.actionLabels.REWEIGHT,permission:"update",click:()=>this.reweight(),disable:()=>!this.hasOsdSelected||!this.selection.hasSingleSelection,icon:ht.a.reweight},{name:this.actionLabels.MARK_OUT,permission:"update",click:()=>this.showConfirmationModal(this.i18n("out"),this.osdService.markOut),disable:()=>this.isNotSelectedOrInState("out"),icon:ht.a.left},{name:this.actionLabels.MARK_IN,permission:"update",click:()=>this.showConfirmationModal(this.i18n("in"),this.osdService.markIn),disable:()=>this.isNotSelectedOrInState("in"),icon:ht.a.right},{name:this.actionLabels.MARK_DOWN,permission:"update",click:()=>this.showConfirmationModal(this.i18n("down"),this.osdService.markDown),disable:()=>this.isNotSelectedOrInState("down"),icon:ht.a.down},{name:this.actionLabels.MARK_LOST,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("Mark"),this.i18n("OSD lost"),this.i18n("marked lost"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",this.osdService.markLost),disable:()=>this.isNotSelectedOrInState("up"),icon:ht.a.flatten},{name:this.actionLabels.PURGE,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("Purge"),this.i18n("OSD"),this.i18n("purged"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",t=>(this.selection=new Ur.a,this.osdService.purge(t))),disable:()=>this.isNotSelectedOrInState("up"),icon:ht.a.erase},{name:this.actionLabels.DESTROY,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("destroy"),this.i18n("OSD"),this.i18n("destroyed"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",t=>(this.selection=new Ur.a,this.osdService.destroy(t))),disable:()=>this.isNotSelectedOrInState("up"),icon:ht.a.destroyCircle},{name:this.actionLabels.DELETE,permission:"delete",click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.DELETE,this.i18n("OSD"),()=>{this.showCriticalConfirmationModal(this.i18n("delete"),this.i18n("OSD"),this.i18n("deleted"),t=>this.osdService.safeToDelete(JSON.stringify(t)),"is_safe_to_delete",t=>(this.selection=new Ur.a,this.taskWrapper.wrapTaskAroundCall({task:new rs.a("osd/"+At.e.DELETE,{svc_id:t}),call:this.osdService.delete(t,!0)})),!0)})},disable:()=>!this.hasOsdSelected,icon:ht.a.destroy}]}static collectStates(t){const e=[t.in?"in":"out"];return t.up?e.push("up"):t.state.includes("destroyed")?e.push("destroyed"):e.push("down"),e}ngOnInit(){this.clusterWideActions=[{name:this.i18n("Flags"),icon:ht.a.flag,click:()=>this.configureFlagsAction(),permission:"read",visible:()=>this.permissions.osd.read},{name:this.i18n("Recovery Priority"),icon:ht.a.deepCheck,click:()=>this.configureQosParamsAction(),permission:"read",visible:()=>this.permissions.configOpt.read},{name:this.i18n("PG scrub"),icon:ht.a.analyse,click:()=>this.configurePgScrubAction(),permission:"read",visible:()=>this.permissions.configOpt.read}],this.columns=[{prop:"host.name",name:this.i18n("Host")},{prop:"id",name:this.i18n("ID"),flexGrow:1,cellTransformation:Hr.a.bold},{prop:"collectedStates",name:this.i18n("Status"),flexGrow:1,cellTransformation:Hr.a.badge,customTemplateConfig:{map:{in:{class:"badge-success"},up:{class:"badge-success"},down:{class:"badge-danger"},out:{class:"badge-danger"},destroyed:{class:"badge-danger"}}}},{prop:"tree.device_class",name:this.i18n("Device class"),flexGrow:1,cellTransformation:Hr.a.badge,customTemplateConfig:{map:{hdd:{class:"badge-hdd"},ssd:{class:"badge-ssd"}}}},{prop:"stats.numpg",name:this.i18n("PGs"),flexGrow:1},{prop:"stats.stat_bytes",name:this.i18n("Size"),flexGrow:1,pipe:this.dimlessBinaryPipe},{prop:"stats.usage",name:this.i18n("Usage"),cellTemplate:this.osdUsageTpl},{prop:"stats_history.out_bytes",name:this.i18n("Read bytes"),cellTransformation:Hr.a.sparkline},{prop:"stats_history.in_bytes",name:this.i18n("Write bytes"),cellTransformation:Hr.a.sparkline},{prop:"stats.op_r",name:this.i18n("Read ops"),cellTransformation:Hr.a.perSecond},{prop:"stats.op_w",name:this.i18n("Write ops"),cellTransformation:Hr.a.perSecond}]}getSelectedOsdIds(){const t=this.osds.map(t=>t.id);return this.selection.selected.map(t=>t.id).filter(e=>t.includes(e))}getSelectedOsds(){return this.osds.filter(t=>!J.isUndefined(t)&&this.getSelectedOsdIds().includes(t.id))}get hasOsdSelected(){return this.getSelectedOsdIds().length>0}updateSelection(t){this.selection=t}isNotSelectedOrInState(t){const e=this.getSelectedOsds();if(0===e.length)return!0;switch(t){case"in":return e.some(t=>1===t.in);case"out":return e.some(t=>1!==t.in);case"down":return e.some(t=>1!==t.up);case"up":return e.some(t=>1===t.up)}}getOsdList(){this.osdService.getList().subscribe(t=>{this.osds=t.map(t=>(t.collectedStates=zo.collectStates(t),t.stats_history.out_bytes=t.stats_history.op_out_bytes.map(t=>t[1]),t.stats_history.in_bytes=t.stats_history.op_in_bytes.map(t=>t[1]),t.stats.usage=t.stats.stat_bytes_used/t.stats.stat_bytes,t.cdIsBinary=!0,t))})}editAction(){const t=J.filter(this.osds,["id",this.selection.first().id]).pop();this.modalService.show(Yr.a,{initialState:{titleText:this.i18n("Edit OSD: {{id}}",{id:t.id}),fields:[{type:"text",name:"deviceClass",value:t.tree.device_class,label:this.i18n("Device class"),required:!0}],submitButtonText:this.i18n("Edit OSD"),onSubmit:e=>{this.osdService.update(t.id,e.deviceClass).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n('Updated OSD "{{id}}"',{id:t.id})),this.getOsdList()})}}})}scrubAction(t){if(!this.hasOsdSelected)return;const e={selected:this.getSelectedOsdIds(),deep:t};this.bsModalRef=this.modalService.show(Go,{initialState:e})}configureFlagsAction(){this.bsModalRef=this.modalService.show(ko,{})}showConfirmationModal(t,e){this.bsModalRef=this.modalService.show(Ao.a,{initialState:{titleText:this.i18n("Mark OSD {{markAction}}",{markAction:t}),buttonText:this.i18n("Mark {{markAction}}",{markAction:t}),bodyTpl:this.markOsdConfirmationTpl,bodyContext:{markActionDescription:t},onSubmit:()=>{Object(Ro.a)(this.getSelectedOsdIds().map(t=>e.call(this.osdService,t))).subscribe(()=>this.bsModalRef.hide())}}})}reweight(){const t=this.osds.filter(t=>t.id===this.selection.first().id).pop();this.modalService.show(Fo,{initialState:{currentWeight:t.weight,osdId:t.id}})}showCriticalConfirmationModal(t,e,n,a,r,i,s=!1){a(this.getSelectedOsdIds()).subscribe(a=>{const o=this.modalService.show(as.a,{initialState:{actionDescription:t,itemDescription:e,bodyTemplate:this.criticalConfirmationTpl,bodyContext:{safeToPerform:a[r],message:a.message,actionDescription:n},submitAction:()=>{const t=Object(Ro.a)(this.getSelectedOsdIds().map(t=>i.call(this.osdService,t)));s?t.subscribe(void 0,()=>{this.getOsdList(),o.hide()},()=>o.hide()):t.subscribe(()=>{this.getOsdList(),o.hide()},()=>o.hide())}}})})}configureQosParamsAction(){this.bsModalRef=this.modalService.show(qo,{})}configurePgScrubAction(){this.bsModalRef=this.modalService.show(Mo,{class:"modal-lg"})}}var Bo=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Yo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,ro.b,ro.a)),s["ɵdid"](1,573440,null,0,io.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(t,e){t(e,1,0,e.context.row.stats.stat_bytes,e.context.row.stats.stat_bytes_used)}),null)}function Ho(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","lo02I1Aiz"]],null,null,null,kr.b,kr.a)),s["ɵdid"](3,638976,null,0,Er.a,[pt.a,Lr.b,re.a,vt.a,_a.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"osd-overview?","three","lo02I1Aiz")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function Uo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["OSD(s) ",""])),s["ɵppd"](3,1),(t()(),s["ɵted"](-1,null,[" will be marked\n"])),(t()(),s["ɵeld"](5,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](6,null,["",""])),(t()(),s["ɵted"](-1,null,[" if you proceed."]))],null,(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent,0),n.getSelectedOsdIds()));t(e,2,0,a),t(e,6,0,e.context.markActionDescription)}))}function Wo(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["OSDs are"]))],null,null)}function Ko(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["OSD is"]))],null,null)}function $o(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,"div",[["class","danger"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,9,"cd-alert-panel",[["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](2,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["The "])),(t()(),s["ɵeld"](4,0,null,0,5,null,null,null,null,null,null,null)),s["ɵdid"](5,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Wo)),s["ɵdid"](7,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ko)),s["ɵdid"](9,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵted"](10,0,[" not safe to be ","! ",""]))],(function(t,e){var n=e.component;t(e,2,0,"warning"),t(e,5,0,n.selection.hasSingleSelection),t(e,7,0,"0"),t(e,9,0,"1")}),(function(t,e){t(e,10,0,e.parent.context.actionDescription,e.parent.context.message)}))}function Zo(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,$o)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](2,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](4,null,["OSD ",""])),s["ɵppd"](5,1),(t()(),s["ɵted"](-1,null,[" will be\n"])),(t()(),s["ɵeld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](8,null,["",""])),(t()(),s["ɵted"](-1,null,[" if you proceed."]))],(function(t,e){t(e,1,0,!e.context.safeToPerform)}),(function(t,e){var n=e.component,a=s["ɵunv"](e,4,0,t(e,5,0,s["ɵnov"](e.parent,0),n.getSelectedOsdIds()));t(e,4,0,a),t(e,8,0,e.context.actionDescription)}))}function Jo(t){return s["ɵvid"](0,[s["ɵpid"](0,ss.a,[]),s["ɵqud"](402653184,1,{osdUsageTpl:0}),s["ɵqud"](402653184,2,{markOsdConfirmationTpl:0}),s["ɵqud"](402653184,3,{criticalConfirmationTpl:0}),s["ɵqud"](402653184,4,{tableComponent:0}),s["ɵqud"](671088640,5,{reweightBodyTpl:0}),s["ɵqud"](671088640,6,{safeToDestroyBodyTpl:0}),(t()(),s["ɵeld"](7,0,null,null,16,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](8,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](9,0,null,0,12,"tab",[["heading","OSDs List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](10,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](11,0,null,null,9,"cd-table",[["selectionType","multiClick"]],null,[[null,"fetchData"],[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getOsdList()&&a),"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](12,2867200,[[4,4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],hasDetails:[2,"hasDetails"],autoReload:[3,"autoReload"],selectionType:[4,"selectionType"],updateSelectionOnRefresh:[5,"updateSelectionOnRefresh"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](13,0,null,1,5,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),s["ɵeld"](14,0,null,null,1,"cd-table-actions",[["class","btn-group"],["id","osd-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](15,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵeld"](16,0,null,null,2,"cd-table-actions",[["btnColor","light"],["class","btn-group"],["dropDownOnly","Cluster-wide configuration"],["id","cluster-wide-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](17,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"],btnColor:[3,"btnColor"],dropDownOnly:[4,"dropDownOnly"]},null),s["ɵpod"](18,{read:0}),(t()(),s["ɵeld"](19,0,null,3,1,"cd-osd-details",[["cdTableDetail",""]],null,null,null,Io,bo)),s["ɵdid"](20,573440,null,0,po,[bi,xt.a],{selection:[0,"selection"]},null),(t()(),s["ɵand"](0,[[1,2],["osdUsageTpl",2]],null,0,null,Yo)),(t()(),s["ɵand"](16777216,null,0,1,null,Ho)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[[2,2],["markOsdConfirmationTpl",2]],null,0,null,Uo)),(t()(),s["ɵand"](0,[[3,2],["criticalConfirmationTpl",2]],null,0,null,Zo))],(function(t,e){var n=e.component;t(e,10,0,"OSDs List"),t(e,12,0,n.osds,n.columns,!0,!1,"multiClick","never"),t(e,15,0,n.permissions.osd,n.selection,n.tableActions);var a=t(e,18,0,!0);t(e,17,0,a,n.selection,n.clusterWideActions,"light","Cluster-wide configuration"),t(e,20,0,n.expandedRow),t(e,23,0,n.permissions.grafana.read)}),(function(t,e){t(e,7,0,s["ɵnov"](e,8).clazz),t(e,9,0,s["ɵnov"](e,10).id,s["ɵnov"](e,10).active,s["ɵnov"](e,10).addClass,s["ɵnov"](e,10).role,s["ɵnov"](e,10).ariaLabelledby)}))}function Qo(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-osd-list",[],null,null,null,Jo,Bo)),s["ɵprd"](256,null,es.a,Vo,[]),s["ɵdid"](2,114688,null,0,zo,[xt.a,bi,ga.a,Lt.b,_a.a,es.a,qt.m,us,ds.a,At.b,gt.a],null,null)],(function(t,e){t(e,2,0)}),null)}var Xo=s["ɵccf"]("cd-osd-list",zo,Qo,{},{},[]),tu=n("4HWh"),eu=n("p4Cf");class nu{constructor(t,e,n){this.formBuilder=t,this.bsModalRef=e,this.actionLabels=n,this.submitAction=new s.EventEmitter,this.icons=ht.a,this.filterColumns=[],this.devices=[],this.filteredDevices=[],this.capacity=0,this.canSubmit=!1,this.requiredFilters=[],this.action=n.ADD,this.createForm()}ngAfterViewInit(){const t=J.filter(this.inventoryDevices.columns,t=>this.filterColumns.includes(t.prop)&&"hostname"!==t.prop);this.requiredFilters=J.map(t,"name")}createForm(){this.formGroup=this.formBuilder.group({})}onFilterChange(t){if(this.capacity=0,this.canSubmit=!1,J.isEmpty(t.filters))this.filteredDevices=[],this.event=void 0;else{const e=t.filters.filter(t=>"hostname"!==t.prop);this.canSubmit=!J.isEmpty(e),this.filteredDevices=t.data,this.capacity=J.sumBy(this.filteredDevices,"sys_api.size"),this.event=t}}onSubmit(){this.submitAction.emit(this.event),this.bsModalRef.hide()}}class au{constructor(t,e){this.bsModalService=t,this.i18n=e,this.selected=new s.EventEmitter,this.cleared=new s.EventEmitter,this.icons=ht.a,this.devices=[],this.capacity=0,this.appliedFilters=[],this.tooltips={noAvailDevices:this.i18n("No available devices"),addPrimaryFirst:this.i18n("Please add primary devices first"),addByFilters:this.i18n("Add devices by using filters")}}ngOnInit(){this.updateAddButtonTooltip()}ngOnChanges(){this.updateAddButtonTooltip()}showSelectionModal(){let t=["human_readable_type","sys_api.vendor","sys_api.model","sys_api.size"];"data"===this.type&&(t=["hostname",...t]),this.bsModalService.show(nu,{class:"modal-xl",initialState:{hostname:this.hostname,deviceType:this.name,devices:this.availDevices,filterColumns:t}}).content.submitAction.subscribe(t=>{this.devices=t.data,this.capacity=J.sumBy(this.devices,"sys_api.size"),this.appliedFilters=t.filters;const e=J.assign({type:this.type},t);this.selected.emit(e)})}updateAddButtonTooltip(){this.addButtonTooltip="data"===this.type&&0===this.availDevices.length?this.tooltips.noAvailDevices:this.canSelect?0===this.availDevices.length?this.tooltips.noAvailDevices:this.tooltips.addByFilters:this.tooltips.addPrimaryFirst}clearDevices(){const t={type:this.type,clearedDevices:[...this.devices]};this.devices=[],this.cleared.emit(t)}}var ru=s["ɵcrt"]({encapsulation:0,styles:[[".tc_clearSelections[_ngcontent-%COMP%]{text-decoration:none}"]],data:{}});function iu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The primary storage devices. These devices contain all OSD data."]))],null,null)}function su(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device."]))],null,null)}function ou(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["DB devices can be used for storing BlueStore’s internal metadata. It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD)."]))],null,null)}function uu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,6,"button",[["class","btn btn-light"],["data-toggle","tooltip"],["type","button"]],[[8,"title",0],[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showSelectionModal()&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](5,1),(t()(),s["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Add"]))],(function(t,e){var n=t(e,5,0,e.component.icons.add);t(e,4,0,n)}),(function(t,e){var n=e.component;t(e,1,0,n.addButtonTooltip,0===n.availDevices.length||!n.canSelect)}))}function du(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",": ",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.name,e.context.$implicit.value.formatted)}))}function lu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"div",[["class","float-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["Raw capacity: ",""])),s["ɵppd"](3,1)],null,(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent,0),n.capacity));t(e,2,0,a)}))}function cu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"div",[["class","pb-2 my-2 border-bottom"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,du)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](3,0,null,null,6,"a",[["class","tc_clearSelections"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.clearDevices(),a=!1),a}),null,null)),(t()(),s["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](7,1),(t()(),s["ɵeld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Clear"])),(t()(),s["ɵeld"](10,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,2,"cd-inventory-devices",[],null,null,null,$r,Kr)),s["ɵdid"](12,245760,null,0,Wr,[xt.a,ga.a,_a.a,Lt.b,gt.a,Br],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],filterColumns:[2,"filterColumns"]},null),s["ɵpad"](13,2),(t()(),s["ɵand"](16777216,null,null,1,null,lu)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.appliedFilters);var a=t(e,7,0,n.icons.clearFilters);t(e,6,0,a);var r=n.devices,i=t(e,13,0,"available","osd_ids");t(e,12,0,r,i,s["ɵEMPTY_ARRAY"]),t(e,15,0,"data"===n.type)}),null)}function fu(t){return s["ɵvid"](0,[s["ɵpid"](0,ga.a,[Ia.a]),(t()(),s["ɵeld"](1,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](2,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](5,0,null,0,10,"label",[["class","cd-col-form-label"],["for","createDeleteButton"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](7,null,[""," devices"])),(t()(),s["ɵeld"](8,0,null,null,7,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](9,49152,null,0,eu.a,[],null,null),(t()(),s["ɵand"](16777216,null,0,1,null,iu)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,su)),s["ɵdid"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ou)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](16,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,uu)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),s["ɵand"](0,[["blockClearDevices",2]],null,0,null,cu))],(function(t,e){var n=e.component;t(e,2,0),t(e,11,0,"data"===n.type),t(e,13,0,"wal"===n.type),t(e,15,0,"db"===n.type),t(e,18,0,0===n.devices.length,s["ɵnov"](e,19))}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,2).hasErrors,s["ɵnov"](e,2).hasSuccess),t(e,7,0,n.name)}))}class hu{constructor(t,e,n,a,r){this.bsModalRef=t,this.actionLabels=e,this.formBuilder=n,this.osdService=a,this.taskWrapper=r,this.driveGroups=[],this.submitAction=new s.EventEmitter,this.action=e.CREATE,this.createForm()}ngOnInit(){}createForm(){this.formGroup=this.formBuilder.group({})}onSubmit(){this.taskWrapper.wrapTaskAroundCall({task:new rs.a("osd/"+At.e.CREATE,{tracking_id:J.join(J.map(this.driveGroups,"service_id"),", ")}),call:this.osdService.create(this.driveGroups)}).subscribe(void 0,()=>{this.formGroup.setErrors({cdSubmitButton:!0})},()=>{this.submitAction.emit(),this.bsModalRef.hide()})}}class gu{constructor(){this.reset(),this.formatterService=new Ia.a,this.deviceSelectionAttrs={"sys_api.vendor":{name:"vendor"},"sys_api.model":{name:"model"},device_id:{name:"device_id"},human_readable_type:{name:"rotational",formatter:t=>"hdd"===t.toLowerCase()},"sys_api.size":{name:"size",formatter:t=>this.formatterService.format_number(t,1024,["B","KB","MB","GB","TB","PB"]).replace(" ","")}}}reset(){this.spec={service_type:"osd",service_id:`dashboard-${J.now()}`}}setName(t){this.spec.service_id=t}setHostPattern(t){this.spec.host_pattern=t}setDeviceSelection(t,e){const n=`${t}_devices`;this.spec[n]={},e.forEach(t=>{const e=this.deviceSelectionAttrs[t.prop];e&&(this.spec[n][e.name]=e.formatter?e.formatter(t.value.raw):t.value.raw)})}clearDeviceSelection(t){delete this.spec[`${t}_devices`]}setSlots(t,e){const n=`${t}_slots`;0===e?delete this.spec[n]:this.spec[n]=e}setFeature(t,e){e?this.spec[t]=!0:delete this.spec[t]}}class pu{constructor(t,e,n,a,r,i){this.actionLabels=t,this.authStorageService=e,this.i18n=n,this.orchService=a,this.router=r,this.bsModalService=i,this.icons=ht.a,this.columns=[],this.loading=!1,this.allDevices=[],this.availDevices=[],this.dataDeviceFilters=[],this.dbDeviceFilters=[],this.walDeviceFilters=[],this.hostname="",this.driveGroup=new gu,this.featureList=[],this.hasOrchestrator=!1,this.resource=this.i18n("OSDs"),this.action=this.actionLabels.CREATE,this.features={encrypted:{key:"encrypted",desc:this.i18n("Encryption")}},this.featureList=J.map(this.features,(t,e)=>Object.assign(t,{key:e})),this.createForm()}ngOnInit(){this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available,this.hasOrchestrator&&this.getDataDevices()}),this.form.get("walSlots").valueChanges.subscribe(t=>this.setSlots("wal",t)),this.form.get("dbSlots").valueChanges.subscribe(t=>this.setSlots("db",t)),J.each(this.features,t=>{this.form.get("features").get(t.key).valueChanges.subscribe(e=>this.featureFormUpdate(t.key,e))})}createForm(){this.form=new Rs.a({walSlots:new $.i(0,{updateOn:"blur",validators:[$.B.min(0)]}),dbSlots:new $.i(0,{updateOn:"blur",validators:[$.B.min(0)]}),features:new Rs.a(this.featureList.reduce((t,e)=>(t[e.key]=new $.i({value:!1,disabled:!0}),t),{}))})}getDataDevices(){this.loading||(this.loading=!0,this.orchService.inventoryDeviceList().subscribe(t=>{this.allDevices=J.filter(t,"available"),this.availDevices=[...this.allDevices],this.loading=!1},()=>{this.allDevices=[],this.availDevices=[],this.loading=!1}))}setSlots(t,e){"number"==typeof e&&e>=0&&this.driveGroup.setSlots(t,e)}featureFormUpdate(t,e){this.driveGroup.setFeature(t,e)}enableFeatures(){this.featureList.forEach(t=>{this.form.get(t.key).enable({emitEvent:!1})})}disableFeatures(){this.featureList.forEach(t=>{const e=this.form.get(t.key);e.disable({emitEvent:!1}),e.setValue(!1,{emitEvent:!1})})}onDevicesSelected(t){if(this.availDevices=t.dataOut,"data"===t.type){const e=J.find(t.filters,{prop:"hostname"});e?(this.hostname=e.value.raw,this.availDevices=t.dataOut.filter(t=>t.hostname===this.hostname),this.driveGroup.setHostPattern(this.hostname)):this.driveGroup.setHostPattern("*"),this.enableFeatures()}this.driveGroup.setDeviceSelection(t.type,t.filters)}onDevicesCleared(t){"data"===t.type?(this.availDevices=[...this.allDevices],this.walDeviceSelectionGroups.devices=[],this.dbDeviceSelectionGroups.devices=[],this.disableFeatures(),this.driveGroup.reset(),this.form.get("walSlots").setValue(0,{emitEvent:!1}),this.form.get("dbSlots").setValue(0,{emitEvent:!1})):(this.availDevices=[...this.availDevices,...t.clearedDevices],this.driveGroup.clearDeviceSelection(t.type),this.form.get(`${t.type}Slots`).setValue(0,{emitEvent:!1}))}submit(){const t=this.authStorageService.getUsername();this.driveGroup.setName(`dashboard-${t}-${J.now()}`),this.bsModalService.show(hu,{initialState:{driveGroups:[this.driveGroup.spec]}}).content.submitAction.subscribe(()=>{this.router.navigate(["/osd"])}),this.previewButton.loading=!1}}var bu=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function mu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,zr,Vr)),s["ɵdid"](1,114688,null,0,Gr,[vt.a,pt.a],null,null)],(function(t,e){t(e,1,0)}),null)}function yu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Value should be greater than or equal to 0"]))],null,null)}function vu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,9,"label",[["class","cd-col-form-label"],["for","walSlots"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["WAL slots"])),(t()(),s["ɵeld"](7,0,null,null,6,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](8,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](9,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["How many OSDs per WAL device."])),(t()(),s["ɵeld"](11,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Specify 0 to let Orchestrator backend decide it."])),(t()(),s["ɵeld"](14,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,7,"input",[["class","form-control"],["formControlName","walSlots"],["id","walSlots"],["min","0"],["name","walSlots"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,16)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,16).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,16)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,16)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,17).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,17).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,17).onTouched()&&a),a}),null,null)),s["ɵdid"](16,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](17,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](19,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](21,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](22,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yu)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,19,0,"walSlots"),t(e,22,0,"walSlots"),t(e,24,0,n.form.showError("walSlots",s["ɵnov"](e.parent,3),"min"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,15,0,s["ɵnov"](e,21).ngClassUntouched,s["ɵnov"](e,21).ngClassTouched,s["ɵnov"](e,21).ngClassPristine,s["ɵnov"](e,21).ngClassDirty,s["ɵnov"](e,21).ngClassValid,s["ɵnov"](e,21).ngClassInvalid,s["ɵnov"](e,21).ngClassPending,s["ɵnov"](e,22).validClass,s["ɵnov"](e,22).invalidClass)}))}function xu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Value should be greater than or equal to 0"]))],null,null)}function _u(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,9,"label",[["class","cd-col-form-label"],["for","dbSlots"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["DB slots"])),(t()(),s["ɵeld"](7,0,null,null,6,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](8,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](9,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["How many OSDs per DB device."])),(t()(),s["ɵeld"](11,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Specify 0 to let Orchestrator backend decide it."])),(t()(),s["ɵeld"](14,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,7,"input",[["class","form-control"],["formControlName","dbSlots"],["id","dbSlots"],["min","0"],["name","dbSlots"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,16)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,16).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,16)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,16)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,17).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,17).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,17).onTouched()&&a),a}),null,null)),s["ɵdid"](16,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](17,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](19,671744,[[7,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](21,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](22,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,xu)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,19,0,"dbSlots"),t(e,22,0,"dbSlots"),t(e,24,0,n.form.showError("dbSlots",s["ɵnov"](e.parent,3),"min"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,15,0,s["ɵnov"](e,21).ngClassUntouched,s["ɵnov"](e,21).ngClassTouched,s["ɵnov"](e,21).ngClassPristine,s["ɵnov"](e,21).ngClassDirty,s["ɵnov"](e,21).ngClassValid,s["ɵnov"](e,21).ngClassInvalid,s["ɵnov"](e,21).ngClassPending,s["ɵnov"](e,22).validClass,s["ɵnov"](e,22).invalidClass)}))}function Tu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,2).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,2).onTouched()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](4,671744,[[9,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](6,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](7,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵted"](9,null,["",""]))],(function(t,e){t(e,4,0,s["ɵinlineInterpolate"](1,"",e.context.$implicit.key,"")),t(e,7,0,s["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""))}),(function(t,e){t(e,1,1,[s["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""),s["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""),s["ɵnov"](e,6).ngClassUntouched,s["ɵnov"](e,6).ngClassTouched,s["ɵnov"](e,6).ngClassPristine,s["ɵnov"](e,6).ngClassDirty,s["ɵnov"](e,6).ngClassValid,s["ɵnov"](e,6).ngClassInvalid,s["ɵnov"](e,6).ngClassPending,s["ɵnov"](e,7).validClass,s["ɵnov"](e,7).invalidClass]),t(e,8,0,s["ɵinlineInterpolate"](1,"",e.context.$implicit.key,"")),t(e,9,0,e.context.$implicit.desc)}))}function Ou(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,48,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,47,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](6,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](7,0,null,null,41,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](9,null,[""," ",""])),s["ɵppd"](10,1),s["ɵppd"](11,1),(t()(),s["ɵeld"](12,0,null,null,29,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,2,"fieldset",[],null,null,null,null,null)),(t()(),s["ɵeld"](14,0,null,null,1,"cd-osd-devices-selection-groups",[["name","Primary"],["type","data"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),fu,ru)),s["ɵdid"](15,638976,[[1,4],["dataDeviceSelectionGroups",4]],0,au,[Lt.b,_a.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),s["ɵeld"](16,0,null,null,10,"fieldset",[],null,null,null,null,null)),(t()(),s["ɵeld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Shared devices"])),(t()(),s["ɵeld"](19,0,null,null,1,"cd-osd-devices-selection-groups",[["name","WAL"],["type","wal"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),fu,ru)),s["ɵdid"](20,638976,[[2,4],["walDeviceSelectionGroups",4]],0,au,[Lt.b,_a.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),s["ɵand"](16777216,null,null,1,null,vu)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](23,0,null,null,1,"cd-osd-devices-selection-groups",[["name","DB"],["type","db"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),fu,ru)),s["ɵdid"](24,638976,[[3,4],["dbDeviceSelectionGroups",4]],0,au,[Lt.b,_a.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),s["ɵand"](16777216,null,null,1,null,_u)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](27,0,null,null,14,"fieldset",[],null,null,null,null,null)),(t()(),s["ɵeld"](28,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Configuration"])),(t()(),s["ɵeld"](30,0,null,null,11,"div",[["class","form-group row"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](31,212992,null,0,$.m,[[3,$.d],[8,null],[8,null]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.d,null,[$.m]),s["ɵdid"](33,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](34,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,9,{FormControlNames:1}),s["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),s["ɵeld"](37,0,null,0,1,"label",[["class","cd-col-form-label"],["for","features"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Features"])),(t()(),s["ɵeld"](39,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Tu)),s["ɵdid"](41,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](42,0,null,null,6,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](43,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](44,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ws.b,ws.a)),s["ɵdid"](45,114688,[[4,4],["previewButton",4]],0,Ss.a,[s.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](-1,0,["Preview"])),(t()(),s["ɵeld"](47,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](48,49152,null,0,Ns.a,[i.Location,At.b],null,null)],(function(t,e){var n=e.component;t(e,3,0,n.form),t(e,6,0,n.form),t(e,15,0,"data","Primary",n.availDevices,0!==n.availDevices.length),t(e,20,0,"wal","WAL",n.availDevices,0!==s["ɵnov"](e,15).devices.length),t(e,22,0,0!==s["ɵnov"](e,20).devices.length),t(e,24,0,"db","DB",n.availDevices,0!==s["ɵnov"](e,15).devices.length),t(e,26,0,0!==s["ɵnov"](e,24).devices.length),t(e,31,0,"features"),t(e,34,0),t(e,41,0,n.featureList),t(e,45,0,s["ɵnov"](e,3),0===s["ɵnov"](e,15).devices.length)}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending);var a=s["ɵunv"](e,9,0,t(e,10,0,s["ɵnov"](e.parent,0),n.action)),r=s["ɵunv"](e,9,1,t(e,11,0,s["ɵnov"](e.parent,1),n.resource));t(e,9,0,a,r),t(e,30,0,s["ɵnov"](e,33).ngClassUntouched,s["ɵnov"](e,33).ngClassTouched,s["ɵnov"](e,33).ngClassPristine,s["ɵnov"](e,33).ngClassDirty,s["ɵnov"](e,33).ngClassValid,s["ɵnov"](e,33).ngClassInvalid,s["ɵnov"](e,33).ngClassPending,s["ɵnov"](e,34).hasErrors,s["ɵnov"](e,34).hasSuccess)}))}function wu(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),s["ɵqud"](671088640,1,{dataDeviceSelectionGroups:0}),s["ɵqud"](671088640,2,{walDeviceSelectionGroups:0}),s["ɵqud"](671088640,3,{dbDeviceSelectionGroups:0}),s["ɵqud"](671088640,4,{previewButton:0}),(t()(),s["ɵand"](16777216,null,null,1,null,mu)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ou)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,7,0,!n.hasOrchestrator),t(e,9,0,!n.loading&&n.hasOrchestrator)}),null)}function Su(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-form",[],null,null,null,wu,bu)),s["ɵdid"](1,114688,null,0,pu,[At.b,xt.a,_a.a,Br,qt.m,Lt.b],null,null)],(function(t,e){t(e,1,0)}),null)}var Iu=s["ɵccf"]("cd-osd-form",pu,Su,{},{},[]),Nu=n("iExv");class Cu{constructor(t){this.i18n=t,this.flags={runtime:this.i18n("The value can be updated at runtime."),no_mon_update:this.i18n("Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via 'ceph config\n      set ...'. This option should be configured via ceph.conf or via the\n      command line."),startup:this.i18n("Option takes effect only during daemon startup."),cluster_create:this.i18n("Option only affects cluster creation."),create:this.i18n("Option only affects daemon creation.")}}ngOnChanges(){this.selection&&(this.selection.services=J.split(this.selection.services,","))}}var Ru=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Au(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ",": ","",""])),(t()(),s["ɵeld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")}))}function ku(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,2,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),s["ɵted"](3,null,["",""])),s["ɵppd"](4,1)],null,(function(t,e){t(e,1,0,s["ɵinlineInterpolate"](1,"",e.component.flags[e.context.$implicit],""));var n=s["ɵunv"](e,3,0,t(e,4,0,s["ɵnov"](e.parent.parent,0),e.context.$implicit));t(e,3,0,n)}))}function Eu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function Lu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,94,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,92,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,90,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,89,"tbody",[],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Name"])),(t()(),s["ɵeld"](9,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(t()(),s["ɵted"](10,null,["",""])),(t()(),s["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Description"])),(t()(),s["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](15,null,["",""])),(t()(),s["ɵeld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Long description"])),(t()(),s["ɵeld"](19,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](20,null,["",""])),(t()(),s["ɵeld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Current values"])),(t()(),s["ɵeld"](24,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Au)),s["ɵdid"](26,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Default"])),(t()(),s["ɵeld"](30,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](31,null,["",""])),(t()(),s["ɵeld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](33,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Daemon default"])),(t()(),s["ɵeld"](35,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](36,null,["",""])),(t()(),s["ɵeld"](37,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](38,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Type"])),(t()(),s["ɵeld"](40,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](41,null,["",""])),(t()(),s["ɵeld"](42,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](43,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Min"])),(t()(),s["ɵeld"](45,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](46,null,["",""])),(t()(),s["ɵeld"](47,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](48,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Max"])),(t()(),s["ɵeld"](50,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](51,null,["",""])),(t()(),s["ɵeld"](52,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](53,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Flags"])),(t()(),s["ɵeld"](55,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,ku)),s["ɵdid"](57,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](58,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](59,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Services"])),(t()(),s["ɵeld"](61,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Eu)),s["ɵdid"](63,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](65,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Source"])),(t()(),s["ɵeld"](67,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](68,null,["",""])),(t()(),s["ɵeld"](69,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](70,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Level"])),(t()(),s["ɵeld"](72,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](73,null,["",""])),(t()(),s["ɵeld"](74,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](75,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Can be updated at runtime (editable)"])),(t()(),s["ɵeld"](77,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](78,null,["",""])),s["ɵppd"](79,1),(t()(),s["ɵeld"](80,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](81,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Tags"])),(t()(),s["ɵeld"](83,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](84,null,["",""])),(t()(),s["ɵeld"](85,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](86,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Enum values"])),(t()(),s["ɵeld"](88,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](89,null,["",""])),(t()(),s["ɵeld"](90,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](91,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["See also"])),(t()(),s["ɵeld"](93,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](94,null,["",""]))],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,26,0,n.selection.value),t(e,57,0,n.selection.flags),t(e,63,0,n.selection.services)}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,10,0,n.selection.name),t(e,15,0,n.selection.desc),t(e,20,0,n.selection.long_desc),t(e,31,0,n.selection.default),t(e,36,0,n.selection.daemon_default),t(e,41,0,n.selection.type),t(e,46,0,n.selection.min),t(e,51,0,n.selection.max),t(e,68,0,n.selection.source),t(e,73,0,n.selection.level);var a=s["ɵunv"](e,78,0,t(e,79,0,s["ɵnov"](e.parent,1),n.selection.can_update_at_runtime));t(e,78,0,a),t(e,84,0,n.selection.tags),t(e,89,0,n.selection.enum_values),t(e,94,0,n.selection.see_also)}))}function Du(t){return s["ɵvid"](0,[s["ɵpid"](0,i.UpperCasePipe,[]),s["ɵpid"](0,Nu.a,[_a.a]),(t()(),s["ɵand"](16777216,null,null,1,null,Lu)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,3,0,e.component.selection)}),null)}class Pu extends ns.a{constructor(t,e,n,a){super(),this.authStorageService=t,this.configurationService=e,this.i18n=n,this.actionLabels=a,this.data=[],this.icons=ht.a,this.selection=new Ur.a,this.filters=[{name:this.i18n("Level"),prop:"level",filterOptions:["basic","advanced","dev"],filterInitValue:"basic",filterPredicate:(t,e)=>{let n;return function(t){t[t.basic=0]="basic",t[t.advanced=1]="advanced",t[t.dev=2]="dev"}(n||(n={})),n[t.level]<=n[e]}},{name:this.i18n("Service"),prop:"services",filterOptions:["mon","mgr","osd","mds","common","mds_client","rgw"],filterPredicate:(t,e)=>t.services.includes(e)},{name:this.i18n("Source"),prop:"source",filterOptions:["mon"],filterPredicate:(t,e)=>!!t.hasOwnProperty("source")&&t.source.includes(e)},{name:this.i18n("Modified"),prop:"modified",filterOptions:["yes","no"],filterPredicate:(t,e)=>!("yes"!==e||!t.hasOwnProperty("value"))||"no"===e&&!t.hasOwnProperty("value")}],this.permission=this.authStorageService.getPermissions().configOpt;const r=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().name)}`;this.tableActions=[{permission:"update",icon:ht.a.edit,routerLink:()=>`/configuration/edit/${r()}`,name:this.actionLabels.EDIT,disable:()=>!this.isEditable(this.selection)}]}ngOnInit(){this.columns=[{canAutoResize:!0,prop:"name",name:this.i18n("Name")},{prop:"desc",name:this.i18n("Description"),cellClass:"wrap"},{prop:"value",name:this.i18n("Current value"),cellClass:"wrap",cellTemplate:this.confValTpl},{prop:"default",name:this.i18n("Default"),cellClass:"wrap"},{prop:"can_update_at_runtime",name:this.i18n("Editable"),cellTransformation:Hr.a.checkIcon,flexGrow:.4,cellClass:"text-center"}]}updateSelection(t){this.selection=t}getConfigurationList(t){this.configurationService.getConfigData().subscribe(t=>{this.data=t},()=>{t.error()})}isEditable(t){return 1===t.selected.length&&t.selected[0].can_update_at_runtime}}var Mu=s["ɵcrt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px}.fa-stack[_ngcontent-%COMP%]{font-size:.79rem}.fa-stack[_ngcontent-%COMP%]   .fa-stack-1x[_ngcontent-%COMP%]{margin-left:8px;margin-top:5px}  datatable-body-cell.wrap{word-break:break-all}"]],data:{}});function qu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ",": ","",""])),(t()(),s["ɵeld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")}))}function ju(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,qu)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.parent.context.value)}),null)}function Fu(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,ju)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function Gu(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{confValTpl:0}),s["ɵqud"](671088640,2,{confFlagTpl:0}),(t()(),s["ɵeld"](2,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getConfigurationList(n)&&a),"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](3,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],hasDetails:[2,"hasDetails"],selectionType:[3,"selectionType"],extraFilterableColumns:[4,"extraFilterableColumns"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](5,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵeld"](6,0,null,3,1,"cd-configuration-details",[["cdTableDetail",""]],null,null,null,Du,Ru)),s["ɵdid"](7,573440,null,0,Cu,[_a.a],{selection:[0,"selection"]},null),(t()(),s["ɵand"](0,[[1,2],["confValTpl",2]],null,0,null,Fu))],(function(t,e){var n=e.component;t(e,3,0,n.data,n.columns,!0,"single",n.filters),t(e,5,0,n.permission,n.selection,n.tableActions),t(e,7,0,n.expandedRow)}),null)}function Vu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-configuration",[],null,null,null,Gu,Mu)),s["ɵdid"](1,114688,null,0,Pu,[xt.a,Eo.a,_a.a,At.b],null,null)],(function(t,e){t(e,1,0)}),null)}var zu=s["ɵccf"]("cd-configuration",Pu,Vu,{},{},[]);class Bu{constructor(){this.value=[]}}class Yu{constructor(t,e,n,a,r){this.route=t,this.router=e,this.configService=n,this.notificationService=a,this.i18n=r,this.availSections=["global","mon","mgr","osd","mds","client"],this.createForm()}createForm(){const t={name:new $.i({value:null}),desc:new $.i({value:null}),long_desc:new $.i({value:null}),values:new $.k({}),default:new $.i({value:null}),daemon_default:new $.i({value:null}),services:new $.i([])};this.availSections.forEach(e=>{t.values.addControl(e,new $.i(null))}),this.configForm=new Rs.a(t)}ngOnInit(){this.route.params.subscribe(t=>{this.configService.get(t.name).subscribe(t=>{this.setResponse(t)})})}getValidators(t){const e=Lo.getTypeValidators(t);if(e)return this.patternHelpText=e.patternHelpText,"max"in e&&""!==e.max&&(this.maxValue=e.max),"min"in e&&""!==e.min&&(this.minValue=e.min),e.validators}getStep(t,e){return Lo.getTypeStep(t,e)}setResponse(t){this.response=t;const e=this.getValidators(t);this.configForm.get("name").setValue(t.name),this.configForm.get("desc").setValue(t.desc),this.configForm.get("long_desc").setValue(t.long_desc),this.configForm.get("default").setValue(t.default),this.configForm.get("daemon_default").setValue(t.daemon_default),this.configForm.get("services").setValue(t.services),this.response.value&&this.response.value.forEach(t=>{let e=null;e="true"===t.value||"false"!==t.value&&t.value,this.configForm.get("values").get(t.section).setValue(e)}),this.availSections.forEach(t=>{this.configForm.get("values").get(t).setValidators(e)});const n=Lo.getType(t.type);this.type=n.name,this.inputType=n.inputType,this.humanReadableType=n.humanReadable}createRequest(){const t=[];if(this.availSections.forEach(e=>{const n=this.configForm.getValue(e);null!==n&&""!==n&&t.push({section:e,value:n})}),!J.isEqual(this.response.value,t)){const e=new Bu;return e.name=this.configForm.getValue("name"),e.value=t,e}return null}submit(){const t=this.createRequest();t&&this.configService.create(t).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("Updated config option {{name}}",{name:t.name})),this.router.navigate(["/configuration"])},()=>{this.configForm.setErrors({cdSubmitButton:!0})}),this.router.navigate(["/configuration"])}}var Hu=s["ɵcrt"]({encapsulation:0,styles:[[".form-component-badge[_ngcontent-%COMP%]{height:34px;display:block}.form-component-badge[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{margin-top:7px}.resize-vertical[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function Uu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Description"])),(t()(),s["ɵeld"](6,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,7,"textarea",[["class","form-control resize-vertical"],["formControlName","desc"],["id","desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵted"](-1,null,["            "]))],(function(t,e){t(e,1,0),t(e,10,0,"desc"),t(e,13,0,"desc")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Wu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Long description"])),(t()(),s["ɵeld"](6,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,7,"textarea",[["class","form-control resize-vertical"],["formControlName","long_desc"],["id","long_desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵted"](-1,null,["            "]))],(function(t,e){t(e,1,0),t(e,10,0,"long_desc"),t(e,13,0,"long_desc")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Ku(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Default"])),(t()(),s["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","default"],["id","default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[7,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,10,0,"default"),t(e,13,0,"default")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function $u(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,9,{FormControlNames:1}),s["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Daemon default"])),(t()(),s["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","daemon_default"],["id","daemon_default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[9,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,10,0,"daemon_default"),t(e,13,0,"daemon_default")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Zu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[["class","form-component-badge"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function Ju(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,11,{FormControlNames:1}),s["ɵqud"](603979776,12,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Services"])),(t()(),s["ɵeld"](6,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Zu)),s["ɵdid"](8,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,8,0,n.configForm.getValue("services"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess)}))}function Qu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,13,{FormControlNames:1}),s["ɵqud"](603979776,14,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵted"](5,null,[""," "])),(t()(),s["ɵeld"](6,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,18,"select",[["class","form-control custom-select"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,[[13,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](14,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](15,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{ngValue:[0,"ngValue"]},null),s["ɵdid"](16,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["ɵted"](-1,null,["-- Default --"])),(t()(),s["ɵeld"](18,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](19,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{ngValue:[0,"ngValue"]},null),s["ɵdid"](20,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["ɵted"](-1,null,["true"])),(t()(),s["ɵeld"](22,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](23,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{ngValue:[0,"ngValue"]},null),s["ɵdid"](24,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["ɵted"](-1,null,["false"]))],(function(t,e){t(e,1,0),t(e,10,0,e.parent.context.$implicit),t(e,13,0,e.parent.context.$implicit),t(e,15,0,null),t(e,16,0,null),t(e,19,0,!0),t(e,20,0,!0),t(e,23,0,!1),t(e,24,0,!1)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit),t(e,5,0,e.parent.context.$implicit),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Xu(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.patternHelpText)}))}function td(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.patternHelpText)}))}function ed(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.component.maxValue)}))}function nd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.component.minValue)}))}function ad(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,15,{FormControlNames:1}),s["ɵqud"](603979776,16,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵted"](5,null,[""," "])),(t()(),s["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[15,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Xu)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,td)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ed)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,nd)),s["ɵdid"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,e.parent.context.$implicit),t(e,13,0,e.parent.context.$implicit),t(e,15,0,n.configForm.showError(e.parent.context.$implicit,s["ɵnov"](e.parent.parent,3),"pattern")),t(e,17,0,n.configForm.showError(e.parent.context.$implicit,s["ɵnov"](e.parent.parent,3),"invalidUuid")),t(e,19,0,n.configForm.showError(e.parent.context.$implicit,s["ɵnov"](e.parent.parent,3),"max")),t(e,21,0,n.configForm.showError(e.parent.context.$implicit,s["ɵnov"](e.parent.parent,3),"min"))}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit),t(e,5,0,e.parent.context.$implicit),t(e,7,1,[n.inputType,e.parent.context.$implicit,n.humanReadableType,n.getStep(n.type,n.configForm.getValue(e.parent.context.$implicit)),s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass])}))}function rd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Qu)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ad)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,"bool"===n.type),t(e,4,0,"bool"!==n.type)}),null)}function id(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,52,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,51,"form",[["name","configForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](6,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](7,0,null,null,45,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Edit"])),(t()(),s["ɵted"](11,null,[" "," "])),(t()(),s["ɵeld"](12,0,null,null,32,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](14,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](17,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Name"])),(t()(),s["ɵeld"](19,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](20,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](21,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](23,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](25,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](26,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Uu)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Wu)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ku)),s["ɵdid"](32,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,$u)),s["ɵdid"](34,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ju)),s["ɵdid"](36,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](37,0,null,null,7,"div",[["formGroupName","values"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["ɵdid"](38,212992,null,0,$.m,[[3,$.d],[8,null],[8,null]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.d,null,[$.m]),s["ɵdid"](40,16384,null,0,$.s,[[4,$.d]],null,null),(t()(),s["ɵeld"](41,0,null,null,1,"h2",[["class","cd-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Values"])),(t()(),s["ɵand"](16777216,null,null,1,null,rd)),s["ɵdid"](44,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](45,0,null,null,7,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](46,0,null,null,6,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](47,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ws.b,ws.a)),s["ɵdid"](48,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵeld"](49,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Save"])),(t()(),s["ɵeld"](51,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](52,49152,null,0,Ns.a,[i.Location,At.b],null,null)],(function(t,e){var n=e.component;t(e,3,0,n.configForm),t(e,6,0,n.configForm),t(e,14,0),t(e,23,0,"name"),t(e,26,0,"name"),t(e,28,0,n.configForm.getValue("desc")),t(e,30,0,n.configForm.getValue("long_desc")),t(e,32,0,""!==n.configForm.getValue("default")),t(e,34,0,""!==n.configForm.getValue("daemon_default")),t(e,36,0,n.configForm.getValue("services").length>0),t(e,38,0,"values"),t(e,44,0,n.availSections),t(e,48,0,s["ɵnov"](e,3))}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending),t(e,11,0,n.configForm.getValue("name")),t(e,13,0,s["ɵnov"](e,14).hasErrors,s["ɵnov"](e,14).hasSuccess),t(e,20,0,s["ɵnov"](e,25).ngClassUntouched,s["ɵnov"](e,25).ngClassTouched,s["ɵnov"](e,25).ngClassPristine,s["ɵnov"](e,25).ngClassDirty,s["ɵnov"](e,25).ngClassValid,s["ɵnov"](e,25).ngClassInvalid,s["ɵnov"](e,25).ngClassPending,s["ɵnov"](e,26).validClass,s["ɵnov"](e,26).invalidClass),t(e,37,0,s["ɵnov"](e,40).ngClassUntouched,s["ɵnov"](e,40).ngClassTouched,s["ɵnov"](e,40).ngClassPristine,s["ɵnov"](e,40).ngClassDirty,s["ɵnov"](e,40).ngClassValid,s["ɵnov"](e,40).ngClassInvalid,s["ɵnov"](e,40).ngClassPending)}))}function sd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-configuration-form",[],null,null,null,id,Hu)),s["ɵdid"](1,114688,null,0,Yu,[qt.a,qt.m,Eo.a,gt.a,_a.a],null,null)],(function(t,e){t(e,1,0)}),null)}var od=s["ɵccf"]("cd-configuration-form",Yu,sd,{},{},[]),ud=n("LOMR"),dd=n("MP8s"),ld=n("fxL3"),cd=n("gk6K"),fd=n("mrSG"),hd=n("yYhs");class gd{constructor(t){this.healthService=t,this.icons=ht.a,this.loadingIndicator=!0,this.nodes=[],this.treeOptions={useVirtualScroll:!0,actionMapping:{mouse:{click:this.onNodeSelected.bind(this)}}},this.metadataKeyMap={}}ngOnInit(){this.healthService.getFullHealth().subscribe(t=>{this.loadingIndicator=!1,this.nodes=this.abstractTreeData(t)})}abstractTreeData(t){const e=t.osd_map.tree.nodes||[],n={};if(0===e.length)return[{name:"No nodes!"}];const a=[];return e.reverse().forEach(t=>{"root"===t.type&&a.push(t.id),n[t.id]=this.generateTreeLeaf(t,n)}),a.map(t=>n[t])}generateTreeLeaf(t,e){const n=t.id;this.metadataKeyMap[n]=t;const a=[],r={name:t.name+" ("+t.type+")",status:t.status,cdId:n,type:t.type};return t.children&&(t.children.sort().forEach(t=>{a.push(e[t])}),r.children=a),r}onNodeSelected(t,e){if(hd.a.ACTIVATE(t,e,!0),void 0!==e.data.cdId){const t=this.metadataKeyMap[e.data.cdId],{name:n,type:a}=t,r=fd.__rest(t,["name","type","status"]);this.metadata=r,this.metadataTitle=n+" ("+a+")"}else delete this.metadata,delete this.metadataTitle}onUpdateData(){this.tree.treeModel.expandAll()}}var pd=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function bd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](3,3)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.large,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function md(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"span",[["class","badge"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpad"](3,2),s["ɵpad"](4,3),s["ɵpod"](5,{"badge-success":0,"badge-danger":1}),(t()(),s["ɵted"](6,null,[" "," "]))],(function(t,e){var n=t(e,5,0,t(e,3,0,"in","up").includes(e.parent.context.$implicit.data.status),t(e,4,0,"down","out","destroyed").includes(e.parent.context.$implicit.data.status));t(e,2,0,"badge",n)}),(function(t,e){t(e,6,0,e.parent.context.$implicit.data.status)}))}function yd(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,md)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" "])),(t()(),s["ɵeld"](4,0,null,null,3,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](7,{"type-osd":0})],(function(t,e){t(e,1,0,e.context.$implicit.data.status);var n=t(e,7,0,"osd"===e.context.$implicit.data.type);t(e,6,0,"node-name",n)}),(function(t,e){t(e,4,0,e.context.$implicit.data.name)}))}function vd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""])),(t()(),s["ɵeld"](3,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](4,638976,null,0,hi.a,[be.a],{data:[0,"data"]},null)],(function(t,e){t(e,4,0,e.component.metadata)}),(function(t,e){t(e,2,0,e.component.metadataTitle)}))}function xd(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{tree:0}),(t()(),s["ɵeld"](1,0,null,null,19,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,18,"div",[["class","col-sm-12 col-lg-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,17,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CRUSH map viewer"])),(t()(),s["ɵeld"](6,0,null,null,14,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,10,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,bd)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](11,0,null,null,7,"tree-root",[],null,[[null,"updateData"],["body","keydown"],["body","mousedown"]],(function(t,e,n){var a=!0,r=t.component;return"body:keydown"===e&&(a=!1!==s["ɵnov"](t,13).onKeydown(n)&&a),"body:mousedown"===e&&(a=!1!==s["ɵnov"](t,13).onMousedown(n)&&a),"updateData"===e&&(a=!1!==r.onUpdateData()&&a),a}),ud.b,ud.a)),s["ɵprd"](131584,null,dd.a,dd.a,[]),s["ɵdid"](13,573440,[[1,4],["tree",4]],4,ld.a,[dd.a,cd.a],{nodes:[0,"nodes"],options:[1,"options"]},{updateData:"updateData"}),s["ɵqud"](603979776,2,{loadingTemplate:0}),s["ɵqud"](603979776,3,{treeNodeTemplate:0}),s["ɵqud"](603979776,4,{treeNodeWrapperTemplate:0}),s["ɵqud"](603979776,5,{treeNodeFullTemplate:0}),(t()(),s["ɵand"](0,[[3,2],["treeNodeTemplate",2]],null,0,null,yd)),(t()(),s["ɵand"](16777216,null,null,1,null,vd)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,10,0,n.loadingIndicator),t(e,13,0,n.nodes,n.treeOptions),t(e,20,0,n.metadata)}),null)}function _d(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-crushmap",[],null,null,null,xd,pd)),s["ɵdid"](1,114688,null,0,gd,[Na],null,null)],(function(t,e){t(e,1,0)}),null)}var Td=s["ɵccf"]("cd-crushmap",gd,_d,{},{},[]),Od=n("AfCQ");let wd=(()=>{class t{writeValue(e){return{type:t.WRITE_VALUE,payload:e}}changeHours(e){return{type:t.CHANGE_HOURS,payload:e}}changeMinutes(e){return{type:t.CHANGE_MINUTES,payload:e}}changeSeconds(e){return{type:t.CHANGE_SECONDS,payload:e}}setTime(e){return{type:t.SET_TIME_UNIT,payload:e}}updateControls(e){return{type:t.UPDATE_CONTROLS,payload:e}}}return t.WRITE_VALUE="[timepicker] write value from ng model",t.CHANGE_HOURS="[timepicker] change hours",t.CHANGE_MINUTES="[timepicker] change minutes",t.CHANGE_SECONDS="[timepicker] change seconds",t.SET_TIME_UNIT="[timepicker] set time unit",t.UPDATE_CONTROLS="[timepicker] update controls",t})();function Sd(t){return!!t&&!(t instanceof Date&&isNaN(t.getHours()))&&("string"!=typeof t||Sd(new Date(t)))}function Id(t,e){return!(t.min&&e<t.min||t.max&&e>t.max)}function Nd(t){return"number"==typeof t?t:parseInt(t,10)}function Cd(t,e=!1){const n=Nd(t);return isNaN(n)||n<0||n>(e?12:24)?NaN:n}function Rd(t){const e=Nd(t);return isNaN(e)||e<0||e>60?NaN:e}function Ad(t){const e=Nd(t);return isNaN(e)||e<0||e>60?NaN:e}function kd(t){return"string"==typeof t?new Date(t):t}function Ed(t,e){if(!t)return Ed(Dd(new Date,0,0,0),e);let n=t.getHours(),a=t.getMinutes(),r=t.getSeconds();return e.hour&&(n+=Nd(e.hour)),e.minute&&(a+=Nd(e.minute)),e.seconds&&(r+=Nd(e.seconds)),Dd(t,n,a,r)}function Ld(t,e){let n=Cd(e.hour);const a=Rd(e.minute),r=Ad(e.seconds)||0;return e.isPM&&12!==n&&(n+=12),t?isNaN(n)||isNaN(a)?t:Dd(t,n,a,r):isNaN(n)||isNaN(a)?t:Dd(new Date,n,a,r)}function Dd(t,e,n,a){const r=new Date(t.getFullYear(),t.getMonth(),t.getDate(),e,n,a,t.getMilliseconds());return r.setFullYear(t.getFullYear()),r.setMonth(t.getMonth()),r.setDate(t.getDate()),r}function Pd(t){const e=t.toString();return e.length>1?e:`0${e}`}function Md(t,e){return!isNaN(Cd(t,e))}function qd(t){return!isNaN(Rd(t))}function jd(t){return!isNaN(Ad(t))}function Fd(t,e="0",n="0",a){return Md(t,a)&&qd(e)&&jd(n)}function Gd(t,e){if(t.readonlyInput||t.disabled)return!1;if(e){if("wheel"===e.source&&!t.mousewheel)return!1;if("key"===e.source&&!t.arrowkeys)return!1}return!0}function Vd(t){const{hourStep:e,minuteStep:n,secondsStep:a,readonlyInput:r,disabled:i,mousewheel:s,arrowkeys:o,showSpinners:u,showMeridian:d,showSeconds:l,meridians:c,min:f,max:h}=t;return{hourStep:e,minuteStep:n,secondsStep:a,readonlyInput:r,disabled:i,mousewheel:s,arrowkeys:o,showSpinners:u,showMeridian:d,showSeconds:l,meridians:c,min:f,max:h}}class zd{constructor(){this.hourStep=1,this.minuteStep=5,this.secondsStep=10,this.showMeridian=!0,this.meridians=["AM","PM"],this.readonlyInput=!1,this.disabled=!1,this.mousewheel=!0,this.arrowkeys=!0,this.showSpinners=!0,this.showSeconds=!1,this.showMinutes=!0,this.hoursPlaceholder="HH",this.minutesPlaceholder="MM",this.secondsPlaceholder="SS",this.ariaLabelHours="hours",this.ariaLabelMinutes="minutes",this.ariaLabelSeconds="seconds"}}const Bd={value:null,config:new zd,controls:{canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0}};function Yd(t=Bd,e){switch(e.type){case wd.WRITE_VALUE:return Object.assign({},t,{value:e.payload});case wd.CHANGE_HOURS:{if(!Gd(t.config,e.payload)||(a=t.controls,!(n=e.payload).step||n.step>0&&!a.canIncrementHours||n.step<0&&!a.canDecrementHours))return t;const r=Ed(t.value,{hour:e.payload.step});return!t.config.max&&!t.config.min||Id(t.config,r)?Object.assign({},t,{value:r}):t}case wd.CHANGE_MINUTES:{if(!Gd(t.config,e.payload)||!function(t,e){return!(!t.step||t.step>0&&!e.canIncrementMinutes||t.step<0&&!e.canDecrementMinutes)}(e.payload,t.controls))return t;const n=Ed(t.value,{minute:e.payload.step});return!t.config.max&&!t.config.min||Id(t.config,n)?Object.assign({},t,{value:n}):t}case wd.CHANGE_SECONDS:{if(!Gd(t.config,e.payload)||!function(t,e){return!(!t.step||t.step>0&&!e.canIncrementSeconds||t.step<0&&!e.canDecrementSeconds)}(e.payload,t.controls))return t;const n=Ed(t.value,{seconds:e.payload.step});return!t.config.max&&!t.config.min||Id(t.config,n)?Object.assign({},t,{value:n}):t}case wd.SET_TIME_UNIT:{if(!Gd(t.config))return t;const n=Ld(t.value,e.payload);return Object.assign({},t,{value:n})}case wd.UPDATE_CONTROLS:{const n=function(t,e){const{min:n,max:a,hourStep:r,minuteStep:i,secondsStep:s,showSeconds:o}=e,u={canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0};if(!t)return u;if(a){const e=Ed(t,{hour:r});if(u.canIncrementHours=a>e,!u.canIncrementHours){const e=Ed(t,{minute:i});u.canIncrementMinutes=o?a>e:a>=e}if(!u.canIncrementMinutes){const e=Ed(t,{seconds:s});u.canIncrementSeconds=a>=e}t.getHours()<12&&(u.canToggleMeridian=Ed(t,{hour:12})<a)}if(n){const e=Ed(t,{hour:-r});if(u.canDecrementHours=n<e,!u.canDecrementHours){const e=Ed(t,{minute:-i});u.canDecrementMinutes=o?n<e:n<=e}if(!u.canDecrementMinutes){const e=Ed(t,{seconds:-s});u.canDecrementSeconds=n<=e}t.getHours()>=12&&(u.canToggleMeridian=Ed(t,{hour:-12})>n)}return u}(t.value,e.payload),a={value:t.value,config:e.payload,controls:n};return t.config.showMeridian!==a.config.showMeridian&&t.value&&(a.value=new Date(t.value)),Object.assign({},t,a)}default:return t}var n,a}class Hd extends Od.b{constructor(){const t=new Ca.a({type:"[mini-ngrx] dispatcher init"});super(t,Yd,new Od.a(Bd,t,Yd))}}class Ud{constructor(t,e,n,a){this._cd=e,this._store=n,this._timepickerActions=a,this.isValid=new s.EventEmitter,this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype,Object.assign(this,t),this.timepickerSub=n.select(t=>t.value).subscribe(t=>{this._renderTime(t),this.onChange(t),this._store.dispatch(this._timepickerActions.updateControls(Vd(this)))}),n.select(t=>t.controls).subscribe(t=>{this.isValid.emit(Fd(this.hours,this.minutes,this.seconds,this.isPM())),Object.assign(this,t),e.markForCheck()})}get isSpinnersVisible(){return this.showSpinners&&!this.readonlyInput}get isEditable(){return!(this.readonlyInput||this.disabled)}resetValidation(){this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1}isPM(){return this.showMeridian&&this.meridian===this.meridians[1]}prevDef(t){t.preventDefault()}wheelSign(t){return-1*Math.sign(t.deltaY)}ngOnChanges(t){this._store.dispatch(this._timepickerActions.updateControls(Vd(this)))}changeHours(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeHours({step:t,source:e}))}changeMinutes(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeMinutes({step:t,source:e}))}changeSeconds(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeSeconds({step:t,source:e}))}updateHours(t){if(this.resetValidation(),this.hours=t,!Md(this.hours,this.isPM())||!this.isValidLimit())return this.invalidHours=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}updateMinutes(t){if(this.resetValidation(),this.minutes=t,!qd(this.minutes)||!this.isValidLimit())return this.invalidMinutes=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}updateSeconds(t){if(this.resetValidation(),this.seconds=t,!jd(this.seconds)||!this.isValidLimit())return this.invalidSeconds=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}isValidLimit(){return function(t,e,n){const a=Ld(new Date,t);return!(e&&a>e||n&&a<n)}({hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()},this.max,this.min)}_updateTime(){if(!Fd(this.hours,this.showMinutes?this.minutes:void 0,this.showSeconds?this.seconds:void 0,this.isPM()))return this.isValid.emit(!1),void this.onChange(null);this._store.dispatch(this._timepickerActions.setTime({hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()}))}toggleMeridian(){this.showMeridian&&this.isEditable&&this._store.dispatch(this._timepickerActions.changeHours({step:12,source:""}))}writeValue(t){Sd(t)?this._store.dispatch(this._timepickerActions.writeValue(kd(t))):null==t&&this._store.dispatch(this._timepickerActions.writeValue(null))}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._cd.markForCheck()}ngOnDestroy(){this.timepickerSub.unsubscribe()}_renderTime(t){if(!Sd(t))return this.hours="",this.minutes="",this.seconds="",void(this.meridian=this.meridians[0]);const e=kd(t);let n=e.getHours();this.showMeridian&&(this.meridian=this.meridians[n>=12?1:0],n%=12,0===n&&(n=12)),this.hours=Pd(n),this.minutes=Pd(e.getMinutes()),this.seconds=Pd(e.getUTCSeconds())}}class Wd{static forRoot(){return{ngModule:Wd,providers:[zd,wd,Hd]}}}var Kd=s["ɵcrt"]({encapsulation:2,styles:["\n    .bs-chevron {\n      border-style: solid;\n      display: block;\n      width: 9px;\n      height: 9px;\n      position: relative;\n      border-width: 3px 0px 0 3px;\n    }\n\n    .bs-chevron-up {\n      -webkit-transform: rotate(45deg);\n      transform: rotate(45deg);\n      top: 2px;\n    }\n\n    .bs-chevron-down {\n      -webkit-transform: rotate(-135deg);\n      transform: rotate(-135deg);\n      top: -2px;\n    }\n\n    .bs-timepicker-field {\n      width: 50px;\n      padding: .375rem .55rem;\n    }\n  "],data:{}});function $d(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["   "]))],null,null)}function Zd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(r.minuteStep)&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canIncrementMinutes||!n.isEditable)}))}function Jd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" "]))],null,null)}function Qd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(r.secondsStep)&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canIncrementSeconds||!n.isEditable)}))}function Xd(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["   "]))],null,null)}function tl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function el(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" : "]))],null,null)}function nl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["type","text"]],[[2,"is-invalid",null],[8,"placeholder",0],[8,"readOnly",0],[8,"disabled",0],[8,"value",0],[1,"aria-label",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeMinutes(r.minuteStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeMinutes(r.minuteStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep,"key")&&a),"change"===e&&(a=!1!==r.updateMinutes(n.target.value)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.invalidMinutes),t(e,1,0,n.invalidMinutes,n.minutesPlaceholder,n.readonlyInput,n.disabled,n.minutes,n.labelMinutes)}))}function al(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" : "]))],null,null)}function rl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["type","text"]],[[2,"is-invalid",null],[8,"placeholder",0],[8,"readOnly",0],[8,"disabled",0],[8,"value",0],[1,"aria-label",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeSeconds(r.secondsStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeSeconds(r.secondsStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep,"key")&&a),"change"===e&&(a=!1!==r.updateSeconds(n.target.value)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.invalidSeconds),t(e,1,0,n.invalidSeconds,n.secondsPlaceholder,n.readonlyInput,n.disabled,n.seconds,n.labelSeconds)}))}function il(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["   "]))],null,null)}function sl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-default text-center"],["type","button"]],[[8,"disabled",0],[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleMeridian()&&a),a}),null,null)),(t()(),s["ɵted"](2,null,[""," "]))],null,(function(t,e){var n=e.component;t(e,1,0,!n.isEditable||!n.canToggleMeridian,!n.isEditable||!n.canToggleMeridian),t(e,2,0,n.meridian)}))}function ol(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["   "]))],null,null)}function ul(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep)&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canDecrementMinutes||!n.isEditable)}))}function dl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" "]))],null,null)}function ll(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep)&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canDecrementSeconds||!n.isEditable)}))}function cl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["   "]))],null,null)}function fl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function hl(t){return s["ɵvid"](2,[(t()(),s["ɵeld"](0,0,null,null,48,"table",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,47,"tbody",[],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(r.hourStep)&&a),a}),null,null)),(t()(),s["ɵeld"](5,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,$d)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Zd)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Jd)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Qd)),s["ɵdid"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Xd)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,tl)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](18,0,null,null,14,"tr",[],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),s["ɵeld"](20,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["type","text"]],[[2,"is-invalid",null],[8,"placeholder",0],[8,"readOnly",0],[8,"disabled",0],[8,"value",0],[1,"aria-label",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeHours(r.hourStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeHours(r.hourStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeHours(0-r.hourStep,"key")&&a),"change"===e&&(a=!1!==r.updateHours(n.target.value)&&a),a}),null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,el)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,nl)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,al)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,rl)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,il)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sl)),s["ɵdid"](32,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](33,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),s["ɵeld"](34,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),s["ɵeld"](35,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(0-r.hourStep)&&a),a}),null,null)),(t()(),s["ɵeld"](36,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,ol)),s["ɵdid"](38,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ul)),s["ɵdid"](40,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,dl)),s["ɵdid"](42,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ll)),s["ɵdid"](44,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,cl)),s["ɵdid"](46,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,fl)),s["ɵdid"](48,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,7,0,n.showMinutes),t(e,9,0,n.showMinutes),t(e,11,0,n.showSeconds),t(e,13,0,n.showSeconds),t(e,15,0,n.showMeridian),t(e,17,0,n.showMeridian),t(e,22,0,n.showMinutes),t(e,24,0,n.showMinutes),t(e,26,0,n.showSeconds),t(e,28,0,n.showSeconds),t(e,30,0,n.showMeridian),t(e,32,0,n.showMeridian),t(e,38,0,n.showMinutes),t(e,40,0,n.showMinutes),t(e,42,0,n.showSeconds),t(e,44,0,n.showSeconds),t(e,46,0,n.showMeridian),t(e,48,0,n.showMeridian)}),(function(t,e){var n=e.component;t(e,2,0,!n.showSpinners),t(e,4,0,!n.canIncrementHours||!n.isEditable),t(e,19,0,n.invalidHours),t(e,20,0,n.invalidHours,n.hoursPlaceholder,n.readonlyInput,n.disabled,n.hours,n.labelHours),t(e,33,0,!n.showSpinners),t(e,35,0,!n.canDecrementHours||!n.isEditable)}))}var gl=n("E2fk");let pl=(()=>{class t{constructor(t){this.http=t}getLogs(){return this.http.get("api/logs/all")}validateDashboardUrl(t){return this.http.get(`api/grafana/validation/${t}`)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();class bl{constructor(t,e,n){this.logsService=t,this.datePipe=e,this.ngZone=n,this.icons=ht.a,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.prioritys=[{name:"Info",value:"[INF]"},{name:"Warning",value:"[WRN]"},{name:"Error",value:"[ERR]"},{name:"All",value:"All"}],this.priority="All",this.search="",this.startTime=new Date,this.endTime=new Date,this.startTime.setHours(0,0),this.endTime.setHours(23,59)}ngOnInit(){this.getInfo(),this.ngZone.runOutsideAngular(()=>{this.interval=window.setInterval(()=>{this.ngZone.run(()=>{this.getInfo()})},5e3)})}ngOnDestroy(){clearInterval(this.interval)}getInfo(){this.logsService.getLogs().subscribe(t=>{this.contentData=t,this.filterLogs()})}abstractfilters(){const t=this.priority,e=this.search.toLowerCase().replace(/,/g,"");let n;if(this.selectedDate){const t=this.selectedDate.getMonth()+1,e=this.selectedDate.getDate();n=`${this.selectedDate.getFullYear().toString()}-${t<=9?`0${t}`:`${t}`}-${e<=9?`0${e}`:`${e}`}`}else n="";return{priority:t,key:e,yearMonthDay:n,sTime:60*(this.startTime?this.startTime.getHours():0)+(this.startTime?this.startTime.getMinutes():0),eTime:60*(this.endTime?this.endTime.getHours():23)+(this.endTime?this.endTime.getMinutes():59)}}filterExecutor(t,e){return t.filter(t=>{const n=this.datePipe.transform(t.stamp,"mediumTime"),a=parseInt(n.split(":")[0],10),r=parseInt(n.split(":")[1],10);let i,s,o;return i="All"===e.priority?t.priority:e.priority,s=e.yearMonthDay?e.yearMonthDay:t.stamp,o=60*a+r,t.priority===i&&-1!==t.message.toLowerCase().indexOf(e.key)&&-1!==t.stamp.indexOf(s)&&o>=e.sTime&&o<=e.eTime})}filterLogs(){const t=this.abstractfilters();this.clog=this.filterExecutor(this.contentData.clog,t),this.audit_log=this.filterExecutor(this.contentData.audit_log,t)}clearSearchKey(){this.search="",this.filterLogs()}clearDate(){this.selectedDate=null,this.filterLogs()}}var ml=s["ɵcrt"]({encapsulation:0,styles:[["p[_ngcontent-%COMP%]{font-family:monospace}.card[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{display:flex}.card[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card[_ngcontent-%COMP%]   .timestamp[_ngcontent-%COMP%]{font-weight:700;flex-shrink:0}.card[_ngcontent-%COMP%]   .priority[_ngcontent-%COMP%]{margin-left:.5rem}.card[_ngcontent-%COMP%]   .message[_ngcontent-%COMP%]{margin-left:1rem}.card[_ngcontent-%COMP%]   .err[_ngcontent-%COMP%]{color:#a94442}.card[_ngcontent-%COMP%]   .warn[_ngcontent-%COMP%]{color:#ffc200}.card[_ngcontent-%COMP%]   .info[_ngcontent-%COMP%]{color:#2b99a8}  timepicker table tbody tr td input.bs-timepicker-field{width:3.5rem!important;font-size:1rem;padding:4px 6px}.middle[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function yl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function vl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"p",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""])),s["ɵppd"](3,1),(t()(),s["ɵeld"](4,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),s["ɵppd"](5,1),(t()(),s["ɵted"](6,null,["",""])),(t()(),s["ɵeld"](7,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),s["ɵted"](8,null,["",""]))],null,(function(t,e){var n=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.stamp));t(e,2,0,n);var a=s["ɵinlineInterpolate"](1,"priority ",s["ɵunv"](e,4,0,t(e,5,0,s["ɵnov"](e.parent.parent.parent,1),e.context.$implicit.priority)),"");t(e,4,0,a),t(e,6,0,e.context.$implicit.priority),t(e,8,0,e.context.$implicit.message)}))}function xl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["No entries found"]))],null,null)}function _l(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"div",[["class","card bg-light mb-3"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,vl)),s["ɵdid"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,xl)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.clog),t(e,5,0,0===n.contentData.clog.length)}),null)}function Tl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"p",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),s["ɵted"](2,null,["",""])),s["ɵppd"](3,1),(t()(),s["ɵeld"](4,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),s["ɵppd"](5,1),(t()(),s["ɵted"](6,null,["",""])),(t()(),s["ɵeld"](7,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),s["ɵted"](8,null,["",""]))],null,(function(t,e){var n=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.stamp));t(e,2,0,n);var a=s["ɵinlineInterpolate"](1,"priority ",s["ɵunv"](e,4,0,t(e,5,0,s["ɵnov"](e.parent.parent.parent,1),e.context.$implicit.priority)),"");t(e,4,0,a),t(e,6,0,e.context.$implicit.priority),t(e,8,0,e.context.$implicit.message)}))}function Ol(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["No entries found"]))],null,null)}function wl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"div",[["class","card bg-light mb-3"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Tl)),s["ɵdid"](3,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ol)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.audit_log),t(e,5,0,0===n.contentData.audit_log.length)}),null)}function Sl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,12,"div",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,yl)),s["ɵdid"](2,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),s["ɵeld"](3,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](4,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](5,0,null,0,3,"tab",[["heading","Cluster Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](6,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,_l)),s["ɵdid"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](9,0,null,0,3,"tab",[["heading","Audit Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](10,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,wl)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,s["ɵnov"](e.parent,4)),t(e,6,0,"Cluster Logs"),t(e,8,0,n.clog),t(e,10,0,"Audit Logs"),t(e,12,0,n.audit_log)}),(function(t,e){t(e,3,0,s["ɵnov"](e,4).clazz),t(e,5,0,s["ɵnov"](e,6).id,s["ɵnov"](e,6).active,s["ɵnov"](e,6).addClass,s["ɵnov"](e,6).role,s["ɵnov"](e,6).ariaLabelledby),t(e,9,0,s["ɵnov"](e,10).id,s["ɵnov"](e,10).active,s["ɵnov"](e,10).addClass,s["ɵnov"](e,10).role,s["ɵnov"](e,10).ariaLabelledby)}))}function Il(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function Nl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,81,"div",[["class","form-inline"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](2,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](5,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Priority:"])),(t()(),s["ɵeld"](7,0,null,0,8,"select",[["class","form-control custom-select"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(r.priority=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[8,null],Z.a],null,null),(t()(),s["ɵand"](16777216,null,null,1,null,Il)),s["ɵdid"](15,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](16,0,null,null,22,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](17,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](20,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Keyword:"])),(t()(),s["ɵeld"](22,0,null,0,16,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](23,0,null,null,5,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),s["ɵeld"](24,0,null,null,4,"span",[["class","input-group-text"]],null,null,null,null,null)),(t()(),s["ɵeld"](25,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](27,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](28,1),(t()(),s["ɵeld"](29,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,30)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,30).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,30)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,30)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.search=n)&&a),"keyup"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),s["ɵdid"](30,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](32,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](34,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](35,16384,null,0,Z.h,[[8,null],Z.a],null,null),(t()(),s["ɵeld"](36,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](37,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearSearchKey()&&a),a}),null,null)),(t()(),s["ɵeld"](38,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵeld"](39,0,null,null,19,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](40,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](43,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Date:"])),(t()(),s["ɵeld"](45,0,null,0,13,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](46,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["placeholder","Datepicker"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,47)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,47).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,47)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,47)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,49).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==s["ɵnov"](t,49).hide()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,49).onBlur()&&a),"ngModelChange"===e&&(a=!1!==(r.selectedDate=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),s["ɵdid"](47,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](48,737280,null,0,rt.c,[rt.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a],{bsConfig:[0,"bsConfig"]},null),s["ɵdid"](49,16384,null,0,rt.f,[rt.c,rt.l,s.Renderer2,s.ElementRef,s.ChangeDetectorRef],null,null),s["ɵprd"](1024,null,$.o,(function(t){return[t]}),[rt.f]),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,rt.f]),s["ɵdid"](52,671744,null,0,$.u,[[8,null],[6,$.o],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](54,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](55,16384,null,0,Z.h,[[8,null],Z.a],null,null),(t()(),s["ɵeld"](56,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](57,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearDate()&&a),a}),null,null)),(t()(),s["ɵeld"](58,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵeld"](59,0,null,null,22,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](60,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](63,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Time range:"])),(t()(),s["ɵeld"](65,0,null,0,16,"div",[["class","d-inline-flex"]],null,null,null,null,null)),(t()(),s["ɵeld"](66,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],(function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.startTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),hl,Kd)),s["ɵprd"](512,null,Hd,Hd,[]),s["ɵdid"](68,704512,null,0,Ud,[zd,s.ChangeDetectorRef,Hd,wd],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[Ud]),s["ɵdid"](70,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](72,16384,null,0,$.r,[[4,$.q]],null,null),(t()(),s["ɵeld"](73,0,null,null,1,"span",[["class","middle"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" — "])),(t()(),s["ɵeld"](75,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],(function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.endTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),hl,Kd)),s["ɵprd"](512,null,Hd,Hd,[]),s["ɵdid"](77,704512,null,0,Ud,[zd,s.ChangeDetectorRef,Hd,wd],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[Ud]),s["ɵdid"](79,671744,null,0,$.u,[[8,null],[8,null],[8,null],[6,$.p]],{model:[0,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](81,16384,null,0,$.r,[[4,$.q]],null,null)],(function(t,e){var n=e.component;t(e,2,0),t(e,10,0,n.priority),t(e,15,0,n.prioritys),t(e,17,0);var a=t(e,28,0,n.icons.search);t(e,27,0,a),t(e,32,0,n.search),t(e,40,0),t(e,48,0,n.bsConfig),t(e,52,0,n.selectedDate),t(e,60,0),t(e,68,0,1,!1,!1),t(e,70,0,n.startTime),t(e,77,0,1,!1,!1),t(e,79,0,n.endTime)}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,2).hasErrors,s["ɵnov"](e,2).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass),t(e,16,0,s["ɵnov"](e,17).hasErrors,s["ɵnov"](e,17).hasSuccess),t(e,29,0,s["ɵnov"](e,34).ngClassUntouched,s["ɵnov"](e,34).ngClassTouched,s["ɵnov"](e,34).ngClassPristine,s["ɵnov"](e,34).ngClassDirty,s["ɵnov"](e,34).ngClassValid,s["ɵnov"](e,34).ngClassInvalid,s["ɵnov"](e,34).ngClassPending,s["ɵnov"](e,35).validClass,s["ɵnov"](e,35).invalidClass),t(e,38,0,s["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,"")),t(e,39,0,s["ɵnov"](e,40).hasErrors,s["ɵnov"](e,40).hasSuccess),t(e,46,0,s["ɵnov"](e,54).ngClassUntouched,s["ɵnov"](e,54).ngClassTouched,s["ɵnov"](e,54).ngClassPristine,s["ɵnov"](e,54).ngClassDirty,s["ɵnov"](e,54).ngClassValid,s["ɵnov"](e,54).ngClassInvalid,s["ɵnov"](e,54).ngClassPending,s["ɵnov"](e,55).validClass,s["ɵnov"](e,55).invalidClass),t(e,58,0,s["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,"")),t(e,59,0,s["ɵnov"](e,60).hasErrors,s["ɵnov"](e,60).hasSuccess),t(e,66,0,s["ɵnov"](e,72).ngClassUntouched,s["ɵnov"](e,72).ngClassTouched,s["ɵnov"](e,72).ngClassPristine,s["ɵnov"](e,72).ngClassDirty,s["ɵnov"](e,72).ngClassValid,s["ɵnov"](e,72).ngClassInvalid,s["ɵnov"](e,72).ngClassPending),t(e,75,0,s["ɵnov"](e,81).ngClassUntouched,s["ɵnov"](e,81).ngClassTouched,s["ɵnov"](e,81).ngClassPristine,s["ɵnov"](e,81).ngClassDirty,s["ɵnov"](e,81).ngClassValid,s["ɵnov"](e,81).ngClassInvalid,s["ɵnov"](e,81).ngClassPending)}))}function Cl(t){return s["ɵvid"](0,[s["ɵpid"](0,be.a,[i.DatePipe]),s["ɵpid"](0,gl.a,[]),(t()(),s["ɵand"](16777216,null,null,1,null,Sl)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[["logFiltersTpl",2]],null,0,null,Nl))],(function(t,e){t(e,3,0,e.component.contentData)}),null)}function Rl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-logs",[],null,null,null,Cl,ml)),s["ɵdid"](1,245760,null,0,bl,[pl,i.DatePipe,s.NgZone],null,null)],(function(t,e){t(e,1,0)}),null)}var Al=s["ɵccf"]("cd-logs",bl,Rl,{},{},[]),kl=n("OcYo");let El=(()=>{class t{constructor(t,e,n,a,r,i,s){this.formBuilder=t,this.mgrModuleService=e,this.notificationService=n,this.router=a,this.telemetryService=r,this.i18n=i,this.textToDownloadService=s,this.error=!1,this.licenseAgrmt=!1,this.loading=!1,this.options={},this.requiredFields=["channel_basic","channel_crash","channel_device","channel_ident","interval","proxy","contact","description"],this.report=void 0,this.reportId=void 0,this.sendToUrl="",this.sendToDeviceUrl="",this.step=1}ngOnInit(){this.loading=!0;const t=[this.mgrModuleService.getOptions("telemetry"),this.mgrModuleService.getConfig("telemetry")];Object(Ro.a)(t).subscribe(t=>{const e=t[1];this.moduleEnabled=e.enabled,this.sendToUrl=e.url,this.sendToDeviceUrl=e.device_url,this.options=J.pick(t[0],this.requiredFields);const n=J.pick(e,this.requiredFields);this.createConfigForm(),this.configForm.setValue(n),this.loading=!1},t=>{this.error=!0})}createConfigForm(){const t={};J.forEach(Object.values(this.options),e=>{t[e.name]=[e.default_value,this.getValidators(e)]}),this.configForm=this.formBuilder.group(t)}createPreviewForm(){const t={report:JSON.stringify(this.report,null,2),reportId:this.reportId,licenseAgrmt:[this.licenseAgrmt,$.B.requiredTrue]};this.previewForm=this.formBuilder.group(t)}getValidators(t){const e=[];switch(t.type){case"int":e.push(As.a.number()),e.push($.B.required),J.isNumber(t.min)&&e.push($.B.min(t.min)),J.isNumber(t.max)&&e.push($.B.max(t.max));break;case"str":J.isNumber(t.min)&&e.push($.B.minLength(t.min)),J.isNumber(t.max)&&e.push($.B.maxLength(t.max))}return e}getReport(){this.loading=!0,this.telemetryService.getReport().subscribe(t=>{this.report=t,this.reportId=t.report.report_id,this.createPreviewForm(),this.loading=!1,this.step++},t=>{this.error=!0})}updateConfig(){const t={};J.forEach(Object.values(this.options),e=>{const n=this.configForm.get(e.name);n.dirty&&n.valid&&(t[e.name]=n.value)}),this.mgrModuleService.updateConfig("telemetry",t).subscribe(()=>{this.disableModule(this.i18n("Your settings have been applied successfully. Due to privacy/legal reasons the Telemetry module is now disabled until you complete the next step and accept the license."),()=>{this.getReport()})},()=>{this.configForm.setErrors({cdSubmitButton:!0})})}download(t,e){this.textToDownloadService.download(JSON.stringify(t,null,2),e)}disableModule(t=null,e=null){this.telemetryService.enable(!1).subscribe(()=>{t&&this.notificationService.show(Ie.a.success,t),e?e():this.router.navigate([""])})}next(){this.configForm.pristine?this.getReport():this.updateConfig()}back(){this.step--}onSubmit(){this.telemetryService.enable().subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n("The Telemetry module has been configured and activated successfully.")),this.router.navigate([""])})}}return fd.__decorate([L(),fd.__metadata("design:type",Object)],t.prototype,"blockUI",void 0),t})(),Ll=(()=>{class t{constructor(t){this.http=t,this.url="api/mgr/module"}list(){return this.http.get(`${this.url}`)}getConfig(t){return this.http.get(`${this.url}/${t}`)}updateConfig(t,e){return this.http.put(`${this.url}/${t}`,{config:e})}enable(t){return this.http.post(`${this.url}/${t}/enable`,null)}disable(t){return this.http.post(`${this.url}/${t}/disable`,null)}getOptions(t){return this.http.get(`${this.url}/${t}/options`)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})(),Dl=(()=>{class t{constructor(t){this.http=t,this.url="api/telemetry"}getReport(){return this.http.get(`${this.url}/report`)}enable(t=!0){const e={enable:t};return t&&(e.license_name="sharing-1-0"),this.http.put(`${this.url}`,e)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();var Pl=n("Iab2");let Ml=(()=>{class t{constructor(){}download(t,e){Object(Pl.saveAs)(new Blob([t]),e)}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})();var ql=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function jl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,gi.b,gi.a)),s["ɵdid"](1,49152,null,0,pi.a,[],null,null),(t()(),s["ɵted"](-1,0,["Loading configuration..."]))],null,null)}function Fl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["The configuration could not be loaded."]))],(function(t,e){t(e,1,0,"error")}),null)}function Gl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"div",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" The plugin is already "])),(t()(),s["ɵeld"](2,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["enabled"])),(t()(),s["ɵted"](-1,null,[". Click "])),(t()(),s["ɵeld"](5,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Deactivate"])),(t()(),s["ɵted"](-1,null,[" to disable it.  "])),(t()(),s["ɵeld"](8,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.disableModule("The Telemetry module has been disabled successfully.")&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["Deactivate"]))],null,null)}function Vl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The entered value is too low! It must be greater or equal to 8."]))],null,null)}function zl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,224,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,223,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](6,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](7,0,null,null,217,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](9,null,["Step "," of 2: Telemetry report configuration"])),(t()(),s["ɵeld"](10,0,null,null,209,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,12,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The telemetry module sends anonymous data about this Ceph cluster back to the Ceph developers to help understand how Ceph is used and what problems users may be experiencing."])),(t()(),s["ɵeld"](13,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" This data is visualized on "])),(t()(),s["ɵeld"](15,0,null,null,1,"a",[["href","https://telemetry-public.ceph.com/"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["public dashboards"])),(t()(),s["ɵted"](-1,null,[" that allow the community to quickly see summary statistics on how many clusters are reporting, their total capacity and OSD count, and version distribution trends."])),(t()(),s["ɵeld"](18,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[" The data being reported does "])),(t()(),s["ɵeld"](21,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["not"])),(t()(),s["ɵted"](23,null,[" contain any sensitive data like pool names, object names, object contents, hostnames, or device serial numbers. It contains counters and statistics on how the cluster has been deployed, the version of Ceph, the distribution of the hosts and other parameters which help the project to gain a better understanding of the way Ceph is used. The data is sent secured to "," and "," (device report)."])),(t()(),s["ɵand"](16777216,null,null,1,null,Gl)),s["ɵdid"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](26,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Channels"])),(t()(),s["ɵeld"](28,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,['The telemetry report is broken down into several "channels", each with a different type of information that can be configured below.'])),(t()(),s["ɵeld"](30,0,null,null,31,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](31,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](34,0,null,0,17,"label",[["class","cd-col-form-label"],["for","channel_basic"]],null,null,null,null,null)),(t()(),s["ɵeld"](35,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Basic"])),(t()(),s["ɵeld"](37,0,null,null,14,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](38,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](39,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Includes basic information about the cluster:"])),(t()(),s["ɵeld"](41,0,null,0,10,"ul",[],null,null,null,null,null)),(t()(),s["ɵeld"](42,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Capacity of the cluster"])),(t()(),s["ɵeld"](44,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Number of monitors, managers, OSDs, MDSs, object gateways, or other daemons"])),(t()(),s["ɵeld"](46,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Software version currently being used"])),(t()(),s["ɵeld"](48,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Number and types of RADOS pools and CephFS file systems"])),(t()(),s["ɵeld"](50,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Names of configuration options that have been changed from their default (but not their values)"])),(t()(),s["ɵeld"](52,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](53,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](54,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","channel_basic"],["id","channel_basic"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,55).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,55).onTouched()&&a),a}),null,null)),s["ɵdid"](55,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](57,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](59,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](60,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](61,0,null,null,0,"label",[["class","custom-control-label"],["for","channel_basic"]],null,null,null,null,null)),(t()(),s["ɵeld"](62,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](63,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](66,0,null,0,15,"label",[["class","cd-col-form-label"],["for","channel_crash"]],null,null,null,null,null)),(t()(),s["ɵeld"](67,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Crash"])),(t()(),s["ɵeld"](69,0,null,null,12,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](70,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](71,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Includes information about daemon crashes:"])),(t()(),s["ɵeld"](73,0,null,0,8,"ul",[],null,null,null,null,null)),(t()(),s["ɵeld"](74,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Type of daemon"])),(t()(),s["ɵeld"](76,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Version of the daemon"])),(t()(),s["ɵeld"](78,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Operating system (OS distribution, kernel version)"])),(t()(),s["ɵeld"](80,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Stack trace identifying where in the Ceph code the crash occurred"])),(t()(),s["ɵeld"](82,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](83,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](84,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","channel_crash"],["id","channel_crash"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,85).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,85).onTouched()&&a),a}),null,null)),s["ɵdid"](85,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](87,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](89,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](90,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](91,0,null,null,0,"label",[["class","custom-control-label"],["for","channel_crash"]],null,null,null,null,null)),(t()(),s["ɵeld"](92,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](93,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](96,0,null,0,4,"label",[["class","cd-col-form-label"],["for","channel_device"]],null,null,null,null,null)),(t()(),s["ɵeld"](97,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Device"])),(t()(),s["ɵeld"](99,0,null,null,1,"cd-helper",[["html","Includes information about device metrics like anonymized SMART metrics."]],null,null,null,tu.b,tu.a)),s["ɵdid"](100,49152,null,0,eu.a,[],{html:[0,"html"]},null),(t()(),s["ɵeld"](101,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](102,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](103,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","channel_device"],["id","channel_device"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,104).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,104).onTouched()&&a),a}),null,null)),s["ɵdid"](104,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](106,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](108,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](109,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](110,0,null,null,0,"label",[["class","custom-control-label"],["for","channel_device"]],null,null,null,null,null)),(t()(),s["ɵeld"](111,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](112,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](115,0,null,0,11,"label",[["class","cd-col-form-label"],["for","channel_ident"]],null,null,null,null,null)),(t()(),s["ɵeld"](116,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Ident"])),(t()(),s["ɵeld"](118,0,null,null,8,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](119,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](120,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Includes user-provided identifying information about the cluster:"])),(t()(),s["ɵeld"](122,0,null,0,4,"ul",[],null,null,null,null,null)),(t()(),s["ɵeld"](123,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cluster description"])),(t()(),s["ɵeld"](125,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Contact email address"])),(t()(),s["ɵeld"](127,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](128,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](129,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","channel_ident"],["id","channel_ident"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,130).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,130).onTouched()&&a),a}),null,null)),s["ɵdid"](130,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](132,671744,[[7,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](134,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](135,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](136,0,null,null,0,"label",[["class","custom-control-label"],["for","channel_ident"]],null,null,null,null,null)),(t()(),s["ɵeld"](137,0,null,null,5,"legend",[],null,null,null,null,null)),(t()(),s["ɵeld"](138,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Contact Information"])),(t()(),s["ɵeld"](140,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](141,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](-1,0,["Submitting any contact information is completely optional and disabled by default."])),(t()(),s["ɵeld"](143,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](144,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,9,{FormControlNames:1}),s["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),s["ɵeld"](147,0,null,0,1,"label",[["class","cd-col-form-label"],["for","contact"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Contact"])),(t()(),s["ɵeld"](149,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](150,0,null,null,6,"input",[["class","form-control"],["formControlName","contact"],["id","contact"],["placeholder","Example User <user@example.com>"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,151)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,151).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,151)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,151)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](151,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](153,671744,[[9,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](155,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](156,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](157,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](158,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,11,{FormControlNames:1}),s["ɵqud"](603979776,12,{messagesBlock:0}),(t()(),s["ɵeld"](161,0,null,0,1,"label",[["class","cd-col-form-label"],["for","description"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Description"])),(t()(),s["ɵeld"](163,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](164,0,null,null,6,"input",[["class","form-control"],["formControlName","description"],["id","description"],["placeholder","My first Ceph cluster"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,165)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,165).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,165)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,165)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](165,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](167,671744,[[11,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](169,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](170,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](171,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Advanced Settings"])),(t()(),s["ɵeld"](173,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](174,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,13,{FormControlNames:1}),s["ɵqud"](603979776,14,{messagesBlock:0}),(t()(),s["ɵeld"](177,0,null,0,5,"label",[["class","cd-col-form-label"],["for","interval"]],null,null,null,null,null)),(t()(),s["ɵeld"](178,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Interval"])),(t()(),s["ɵeld"](180,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](181,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](-1,0,["The module compiles and sends a new report every 24 hours by default. You can adjust this interval by setting a different number of hours."])),(t()(),s["ɵeld"](183,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](184,0,null,null,7,"input",[["class","form-control"],["formControlName","interval"],["id","interval"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,185)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,185).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,185)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,185)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,186).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,186).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,186).onTouched()&&a),a}),null,null)),s["ɵdid"](185,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](186,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](188,671744,[[13,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](190,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](191,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vl)),s["ɵdid"](193,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](194,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](195,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,15,{FormControlNames:1}),s["ɵqud"](603979776,16,{messagesBlock:0}),(t()(),s["ɵeld"](198,0,null,0,8,"label",[["class","cd-col-form-label"],["for","proxy"]],null,null,null,null,null)),(t()(),s["ɵeld"](199,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Proxy"])),(t()(),s["ɵeld"](201,0,null,null,5,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](202,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](203,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["If the cluster cannot directly connect to the configured telemetry endpoint (default telemetry.ceph.com), you can configure a HTTP/HTTPS proxy server by e.g. adding https://10.0.0.1:8080"])),(t()(),s["ɵeld"](205,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["You can also include a user:pass if needed e.g. https://ceph:telemetry@10.0.0.1:8080"])),(t()(),s["ɵeld"](207,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](208,0,null,null,6,"input",[["class","form-control"],["formControlName","proxy"],["id","proxy"],["placeholder","https://10.0.0.1:8080"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,209)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,209).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,209)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,209)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](209,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](211,671744,[[15,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](213,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](214,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](215,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](216,0,null,null,3,"p",[],null,null,null,null,null)),(t()(),s["ɵeld"](217,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Note:"])),(t()(),s["ɵted"](-1,null,[" By clicking 'Next' you will first see a preview of the report content before you can activate the automatic submission of your data."])),(t()(),s["ɵeld"](220,0,null,null,4,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](221,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](222,0,null,null,2,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.next()&&a),a}),null,null)),(t()(),s["ɵeld"](223,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Next"]))],(function(t,e){var n=e.component;t(e,3,0,n.configForm),t(e,6,0,n.configForm),t(e,25,0,n.moduleEnabled),t(e,31,0),t(e,57,0,"channel_basic"),t(e,60,0,"channel_basic"),t(e,63,0),t(e,87,0,"channel_crash"),t(e,90,0,"channel_crash"),t(e,93,0),t(e,100,0,"Includes information about device metrics like anonymized SMART metrics."),t(e,106,0,"channel_device"),t(e,109,0,"channel_device"),t(e,112,0),t(e,132,0,"channel_ident"),t(e,135,0,"channel_ident"),t(e,144,0),t(e,153,0,"contact"),t(e,156,0,"contact"),t(e,158,0),t(e,167,0,"description"),t(e,170,0,"description"),t(e,174,0),t(e,188,0,"interval"),t(e,191,0,"interval"),t(e,193,0,n.configForm.showError("interval",s["ɵnov"](e,3),"min")),t(e,195,0),t(e,211,0,"proxy"),t(e,214,0,"proxy")}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending),t(e,9,0,n.step),t(e,23,0,n.sendToUrl,n.sendToDeviceUrl),t(e,30,0,s["ɵnov"](e,31).hasErrors,s["ɵnov"](e,31).hasSuccess),t(e,54,0,s["ɵnov"](e,59).ngClassUntouched,s["ɵnov"](e,59).ngClassTouched,s["ɵnov"](e,59).ngClassPristine,s["ɵnov"](e,59).ngClassDirty,s["ɵnov"](e,59).ngClassValid,s["ɵnov"](e,59).ngClassInvalid,s["ɵnov"](e,59).ngClassPending,s["ɵnov"](e,60).validClass,s["ɵnov"](e,60).invalidClass),t(e,62,0,s["ɵnov"](e,63).hasErrors,s["ɵnov"](e,63).hasSuccess),t(e,84,0,s["ɵnov"](e,89).ngClassUntouched,s["ɵnov"](e,89).ngClassTouched,s["ɵnov"](e,89).ngClassPristine,s["ɵnov"](e,89).ngClassDirty,s["ɵnov"](e,89).ngClassValid,s["ɵnov"](e,89).ngClassInvalid,s["ɵnov"](e,89).ngClassPending,s["ɵnov"](e,90).validClass,s["ɵnov"](e,90).invalidClass),t(e,92,0,s["ɵnov"](e,93).hasErrors,s["ɵnov"](e,93).hasSuccess),t(e,103,0,s["ɵnov"](e,108).ngClassUntouched,s["ɵnov"](e,108).ngClassTouched,s["ɵnov"](e,108).ngClassPristine,s["ɵnov"](e,108).ngClassDirty,s["ɵnov"](e,108).ngClassValid,s["ɵnov"](e,108).ngClassInvalid,s["ɵnov"](e,108).ngClassPending,s["ɵnov"](e,109).validClass,s["ɵnov"](e,109).invalidClass),t(e,111,0,s["ɵnov"](e,112).hasErrors,s["ɵnov"](e,112).hasSuccess),t(e,129,0,s["ɵnov"](e,134).ngClassUntouched,s["ɵnov"](e,134).ngClassTouched,s["ɵnov"](e,134).ngClassPristine,s["ɵnov"](e,134).ngClassDirty,s["ɵnov"](e,134).ngClassValid,s["ɵnov"](e,134).ngClassInvalid,s["ɵnov"](e,134).ngClassPending,s["ɵnov"](e,135).validClass,s["ɵnov"](e,135).invalidClass),t(e,143,0,s["ɵnov"](e,144).hasErrors,s["ɵnov"](e,144).hasSuccess),t(e,150,0,s["ɵnov"](e,155).ngClassUntouched,s["ɵnov"](e,155).ngClassTouched,s["ɵnov"](e,155).ngClassPristine,s["ɵnov"](e,155).ngClassDirty,s["ɵnov"](e,155).ngClassValid,s["ɵnov"](e,155).ngClassInvalid,s["ɵnov"](e,155).ngClassPending,s["ɵnov"](e,156).validClass,s["ɵnov"](e,156).invalidClass),t(e,157,0,s["ɵnov"](e,158).hasErrors,s["ɵnov"](e,158).hasSuccess),t(e,164,0,s["ɵnov"](e,169).ngClassUntouched,s["ɵnov"](e,169).ngClassTouched,s["ɵnov"](e,169).ngClassPristine,s["ɵnov"](e,169).ngClassDirty,s["ɵnov"](e,169).ngClassValid,s["ɵnov"](e,169).ngClassInvalid,s["ɵnov"](e,169).ngClassPending,s["ɵnov"](e,170).validClass,s["ɵnov"](e,170).invalidClass),t(e,173,0,s["ɵnov"](e,174).hasErrors,s["ɵnov"](e,174).hasSuccess),t(e,184,0,s["ɵnov"](e,190).ngClassUntouched,s["ɵnov"](e,190).ngClassTouched,s["ɵnov"](e,190).ngClassPristine,s["ɵnov"](e,190).ngClassDirty,s["ɵnov"](e,190).ngClassValid,s["ɵnov"](e,190).ngClassInvalid,s["ɵnov"](e,190).ngClassPending,s["ɵnov"](e,191).validClass,s["ɵnov"](e,191).invalidClass),t(e,194,0,s["ɵnov"](e,195).hasErrors,s["ɵnov"](e,195).hasSuccess),t(e,208,0,s["ɵnov"](e,213).ngClassUntouched,s["ɵnov"](e,213).ngClassTouched,s["ɵnov"](e,213).ngClassPristine,s["ɵnov"](e,213).ngClassDirty,s["ɵnov"](e,213).ngClassValid,s["ɵnov"](e,213).ngClassInvalid,s["ɵnov"](e,213).ngClassPending,s["ɵnov"](e,214).validClass,s["ɵnov"](e,214).invalidClass)}))}function Bl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,73,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,72,"form",[["name","previewForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](6,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](7,0,null,null,66,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](9,null,["Step "," of 2: Telemetry report preview"])),(t()(),s["ɵeld"](10,0,null,null,55,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](12,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,17,{FormControlNames:1}),s["ɵqud"](603979776,18,{messagesBlock:0}),(t()(),s["ɵeld"](15,0,null,0,1,"label",[["class","cd-col-form-label"],["for","reportId"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Report ID"])),(t()(),s["ɵeld"](17,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,6,"input",[["class","form-control"],["formControlName","reportId"],["id","reportId"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,19)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](19,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](21,671744,[[17,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](23,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](24,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](25,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](26,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,19,{FormControlNames:1}),s["ɵqud"](603979776,20,{messagesBlock:0}),(t()(),s["ɵeld"](29,0,null,0,1,"label",[["class","cd-col-form-label"],["for","report"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Report preview"])),(t()(),s["ɵeld"](31,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](32,0,null,null,6,"textarea",[["class","form-control"],["formControlName","report"],["id","report"],["readonly",""],["rows","15"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,33)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,33).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,33)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,33)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](33,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](35,671744,[[19,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](37,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](38,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](39,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](40,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,21,{FormControlNames:1}),s["ɵqud"](603979776,22,{messagesBlock:0}),(t()(),s["ɵeld"](43,0,null,0,4,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),s["ɵeld"](44,0,null,null,1,"button",[["class","btn btn-light mr-2"],["title","Download"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.download(r.report,"telemetry_report.json")&&a),a}),null,null)),(t()(),s["ɵeld"](45,0,null,null,0,"i",[["class","fa fa-download"]],null,null,null,null,null)),(t()(),s["ɵeld"](46,0,null,null,1,"button",[["cdCopy2ClipboardButton","report"],["class","btn btn-light"],["formatted",""],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,47).onClick()&&a),a}),null,null)),s["ɵdid"](47,81920,null,0,kl.a,[s.ElementRef,s.Renderer2,c.j,_a.a],{cdCopy2ClipboardButton:[0,"cdCopy2ClipboardButton"],formatted:[1,"formatted"]},null),(t()(),s["ɵeld"](48,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](49,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,23,{FormControlNames:1}),s["ɵqud"](603979776,24,{messagesBlock:0}),(t()(),s["ɵeld"](52,0,null,0,13,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),s["ɵeld"](53,0,null,null,12,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](54,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","licenseAgrmt"],["id","licenseAgrmt"],["name","licenseAgrmt"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,55).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,55).onTouched()&&a),a}),null,null)),s["ɵdid"](55,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](57,671744,[[23,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](59,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](60,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](61,0,null,null,4,"label",[["class","custom-control-label"],["for","licenseAgrmt"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["I agree to my telemetry data being submitted under the Community Data License Agreement - Sharing - Version 1.0 ("])),(t()(),s["ɵeld"](63,0,null,null,1,"a",[["href","https://cdla.io/sharing-1-0/"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["https://cdla.io/sharing-1-0/"])),(t()(),s["ɵted"](-1,null,[")"])),(t()(),s["ɵeld"](66,0,null,null,7,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](67,0,null,null,6,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](68,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](69,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵeld"](70,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Save"])),(t()(),s["ɵeld"](72,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.back()&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["Back"]))],(function(t,e){var n=e.component;t(e,3,0,n.previewForm),t(e,6,0,n.previewForm),t(e,12,0),t(e,21,0,"reportId"),t(e,24,0,"reportId"),t(e,26,0),t(e,35,0,"report"),t(e,38,0,"report"),t(e,40,0),t(e,47,0,"report",""),t(e,49,0),t(e,57,0,"licenseAgrmt"),t(e,60,0,"licenseAgrmt"),t(e,69,0,n.previewForm)}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending),t(e,9,0,n.step),t(e,11,0,s["ɵnov"](e,12).hasErrors,s["ɵnov"](e,12).hasSuccess),t(e,18,0,s["ɵnov"](e,23).ngClassUntouched,s["ɵnov"](e,23).ngClassTouched,s["ɵnov"](e,23).ngClassPristine,s["ɵnov"](e,23).ngClassDirty,s["ɵnov"](e,23).ngClassValid,s["ɵnov"](e,23).ngClassInvalid,s["ɵnov"](e,23).ngClassPending,s["ɵnov"](e,24).validClass,s["ɵnov"](e,24).invalidClass),t(e,25,0,s["ɵnov"](e,26).hasErrors,s["ɵnov"](e,26).hasSuccess),t(e,32,0,s["ɵnov"](e,37).ngClassUntouched,s["ɵnov"](e,37).ngClassTouched,s["ɵnov"](e,37).ngClassPristine,s["ɵnov"](e,37).ngClassDirty,s["ɵnov"](e,37).ngClassValid,s["ɵnov"](e,37).ngClassInvalid,s["ɵnov"](e,37).ngClassPending,s["ɵnov"](e,38).validClass,s["ɵnov"](e,38).invalidClass),t(e,39,0,s["ɵnov"](e,40).hasErrors,s["ɵnov"](e,40).hasSuccess),t(e,48,0,s["ɵnov"](e,49).hasErrors,s["ɵnov"](e,49).hasSuccess),t(e,54,0,s["ɵnov"](e,59).ngClassUntouched,s["ɵnov"](e,59).ngClassTouched,s["ɵnov"](e,59).ngClassPristine,s["ɵnov"](e,59).ngClassDirty,s["ɵnov"](e,59).ngClassValid,s["ɵnov"](e,59).ngClassInvalid,s["ɵnov"](e,59).ngClassPending,s["ɵnov"](e,60).validClass,s["ɵnov"](e,60).invalidClass)}))}function Yl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,5,null,null,null,null,null,null,null)),s["ɵdid"](2,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,zl)),s["ɵdid"](4,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Bl)),s["ɵdid"](6,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null)],(function(t,e){t(e,2,0,e.component.step),t(e,4,0,1),t(e,6,0,2)}),null)}function Hl(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,jl)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Fl)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Yl)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.loading&&!n.error),t(e,3,0,n.loading&&n.error),t(e,5,0,!n.loading&&!n.error)}),null)}function Ul(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-telemetry",[],null,null,null,Hl,ql)),s["ɵdid"](1,114688,null,0,El,[jo.a,Ll,gt.a,qt.m,Dl,_a.a,Ml],null,null)],(function(t,e){t(e,1,0)}),null)}var Wl=s["ɵccf"]("cd-telemetry",El,Ul,{},{},[]);const Kl=new es.a("silence");class $l extends ns.a{constructor(t,e,n,a,r){super(),this.authStorageService=t,this.prometheusAlertService=e,this.urlBuilder=n,this.i18n=a,this.cdDatePipe=r,this.selection=new Ur.a,this.icons=ht.a,this.customCss={"badge badge-danger":"active","badge badge-warning":"unprocessed","badge badge-info":"suppressed"},this.permission=this.authStorageService.getPermissions().prometheus,this.tableActions=[{permission:"create",canBePrimary:t=>t.hasSingleSelection,disable:t=>!t.hasSingleSelection||t.first().cdExecuting,icon:ht.a.add,routerLink:()=>"/monitoring"+this.urlBuilder.getCreateFrom(this.selection.first().fingerprint),name:this.i18n("Create Silence")}]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"labels.alertname",flexGrow:2},{name:this.i18n("Job"),prop:"labels.job",flexGrow:2},{name:this.i18n("Severity"),prop:"labels.severity"},{name:this.i18n("State"),prop:"status.state",cellTransformation:Hr.a.classAdding},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("URL"),prop:"generatorURL",sortable:!1,cellTemplate:this.externalLinkTpl}]}updateSelection(t){this.selection=t}}var Zl=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Jl(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-key-value",[["cdTableDetail",""]],null,null,null,fi.b,fi.a)),s["ɵdid"](1,638976,null,0,hi.a,[be.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.expandedRow,!1,!0,!1,!0,n.customCss)}),null)}function Ql(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](3,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](4,1),(t()(),s["ɵted"](-1,null,[" Source"]))],(function(t,e){var n=t(e,4,0,e.component.icons.lineChart);t(e,3,0,n)}),(function(t,e){t(e,0,0,e.context.value)}))}function Xl(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{externalLinkTpl:0}),(t()(),s["ɵeld"](1,0,null,null,5,"cd-table",[["identifier","fingerprint"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](2,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],hasDetails:[2,"hasDetails"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"],customCss:[6,"customCss"]},{updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](4,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵand"](16777216,null,3,1,null,Jl)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[[1,2],["externalLinkTpl",2]],null,0,null,Ql))],(function(t,e){var n=e.component;t(e,2,0,n.prometheusAlertService.alerts,n.columns,!0,"fingerprint",!0,"single",n.customCss),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.expandedRow)}),null)}class tc extends ns.a{constructor(t){super(),this.i18n=t,this.hideKeys=["alerts","type"]}ngOnInit(){this.columns=[{prop:"name",name:this.i18n("Name")},{prop:"labels.severity",name:this.i18n("Severity")},{prop:"group",name:this.i18n("Group")},{prop:"duration",name:this.i18n("Duration"),pipe:new pe},{prop:"query",name:this.i18n("Query"),isHidden:!0},{prop:"annotations.description",name:this.i18n("Description")}]}}var ec=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function nc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](5,638976,null,0,hi.a,[be.a],{data:[0,"data"],renderObjects:[1,"renderObjects"],hideKeys:[2,"hideKeys"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.expandedRow,!0,n.hideKeys)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby)}))}function ac(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-table",[],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.setExpandedRow(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](1,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],hasDetails:[2,"hasDetails"],selectionType:[3,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),s["ɵand"](16777216,null,3,1,null,nc)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.data,n.columns,!0,"single"),t(e,3,0,n.expandedRow)}),null)}var rc=n("w9WL");const ic=new es.a("monitoring/silence");class sc extends ns.a{constructor(t,e,n,a,r,i,s,o,u){super(),this.authStorageService=t,this.i18n=e,this.cdDatePipe=n,this.prometheusService=a,this.modalService=r,this.notificationService=i,this.urlBuilder=s,this.actionLabels=o,this.succeededLabels=u,this.silences=[],this.selection=new Ur.a,this.customCss={"badge badge-danger":"active","badge badge-warning":"pending","badge badge-default":"expired"},this.sorts=[{prop:"endsAt",dir:rc.A.desc}],this.permission=this.authStorageService.getPermissions().prometheus;const d=t=>t.first()&&t.first().status&&"expired"===t.first().status.state;this.tableActions=[{permission:"create",icon:ht.a.add,routerLink:()=>this.urlBuilder.getCreate(),preserveFragment:!0,canBePrimary:t=>!t.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"create",canBePrimary:t=>t.hasSingleSelection&&d(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||t.first().cdExecuting&&d(t)||!d(t),icon:ht.a.copy,routerLink:()=>this.urlBuilder.getRecreate(this.selection.first().id),preserveFragment:!0,name:this.actionLabels.RECREATE},{permission:"update",icon:ht.a.edit,canBePrimary:t=>t.hasSingleSelection&&!d(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||t.first().cdExecuting&&!d(t)||d(t),routerLink:()=>this.urlBuilder.getEdit(this.selection.first().id),preserveFragment:!0,name:this.actionLabels.EDIT},{permission:"delete",icon:ht.a.trash,canBePrimary:t=>t.hasSingleSelection&&!d(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||d(t),click:()=>this.expireSilence(),name:this.actionLabels.EXPIRE}],this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:3},{name:this.i18n("Created by"),prop:"createdBy",flexGrow:2},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("Updated"),prop:"updatedAt",pipe:this.cdDatePipe},{name:this.i18n("Ends"),prop:"endsAt",pipe:this.cdDatePipe},{name:this.i18n("Status"),prop:"status.state",cellTransformation:Hr.a.classAdding}]}refresh(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.prometheusService.getSilences().subscribe(t=>{this.silences=t},()=>{this.prometheusService.disableAlertmanagerConfig()})})}updateSelection(t){this.selection=t}expireSilence(){const t=this.selection.first().id,e=this.i18n("Silence");this.modalRef=this.modalService.show(as.a,{initialState:{itemDescription:e,itemNames:[t],actionDescription:this.actionLabels.EXPIRE,submitActionObservable:()=>new wn.a(n=>{this.prometheusService.expireSilence(t).subscribe(()=>{this.notificationService.show(Ie.a.success,`${this.succeededLabels.EXPIRED} ${e} ${t}`,void 0,void 0,"Prometheus")},t=>{t.application="Prometheus",n.error(t)},()=>{n.complete(),this.refresh()})})}})}}var oc=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function uc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-table-key-value",[["cdTableDetail",""]],null,null,null,fi.b,fi.a)),s["ɵdid"](1,638976,null,0,hi.a,[be.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.expandedRow,!1,!0,!1,!0,n.customCss)}),null)}function dc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"fetchData"===e&&(a=!1!==r.refresh()&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](1,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],sorts:[2,"sorts"],hasDetails:[3,"hasDetails"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"],customCss:[6,"customCss"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](2,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](3,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵand"](16777216,null,3,1,null,uc)),s["ɵdid"](5,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.silences,n.columns,n.sorts,!0,!0,"single",n.customCss),t(e,3,0,n.permission,n.selection,n.tableActions),t(e,5,0,n.expandedRow)}),null)}class lc{constructor(t,e,n,a,r,i){this.prometheusAlertService=t,this.prometheusService=e,this.route=n,this.router=a,this.summaryService=r,this.cephReleaseNamePipe=i,this.isPrometheusConfigured=!1,this.isAlertmanagerConfigured=!1,this.docsUrl=""}ngOnInit(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.isAlertmanagerConfigured=!0}),this.prometheusService.ifPrometheusConfigured(()=>{this.isPrometheusConfigured=!0});const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`https://docs.ceph.com/docs/${n}/mgr/dashboard/#enabling-prometheus-alerting`,setTimeout(()=>{t.unsubscribe()},0)});if(this.route.snapshot.fragment){const t=this.tabs.tabs.find(t=>t.elementRef.nativeElement.id===this.route.snapshot.fragment);t&&(t.active=!0),this.router.navigate([],{fragment:this.route.snapshot.fragment})}}setFragment(t){this.router.navigate([],{fragment:t.id})}}var cc=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function fc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-active-alert-list",[],null,null,null,Xl,Zl)),s["ɵprd"](256,null,es.a,Kl,[]),s["ɵdid"](2,114688,null,0,$l,[xt.a,Ce,es.a,_a.a,be.a],null,null)],(function(t,e){t(e,2,0)}),null)}function hc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["To see all active Prometheus alerts, please provide the URL to the API of Prometheus' Alertmanager as described in the "])),(t()(),s["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["documentation"])),(t()(),s["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function gc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-rules-list",[],null,null,null,ac,ec)),s["ɵdid"](1,114688,null,0,tc,[_a.a],{data:[0,"data"]},null)],(function(t,e){t(e,1,0,e.component.prometheusAlertService.rules)}),null)}function pc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["To see all configured Prometheus alerts, please provide the URL to the API of Prometheus as described in the "])),(t()(),s["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["documentation"])),(t()(),s["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function bc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-silences-list",[],null,null,null,dc,oc)),s["ɵprd"](256,null,es.a,ic,[]),s["ɵdid"](2,49152,null,0,sc,[xt.a,_a.a,be.a,Se,Lt.b,gt.a,es.a,At.b,At.d],null,null)],null,null)}function mc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["To enable Silences, please provide the URL to the API of the Prometheus' Alertmanager as described in the "])),(t()(),s["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["documentation"])),(t()(),s["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function yc(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{tabs:0}),(t()(),s["ɵeld"](1,0,null,null,19,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](2,180224,[[1,4],["tabs",4]],0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](3,0,null,0,5,"tab",[["heading","Active Alerts"],["id","active-alerts"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),s["ɵdid"](4,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),s["ɵand"](16777216,null,null,1,null,fc)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,hc)),s["ɵdid"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](9,0,null,0,5,"tab",[["heading","All Alerts"],["id","all-alerts"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),s["ɵdid"](10,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),s["ɵand"](16777216,null,null,1,null,gc)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,pc)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](15,0,null,0,5,"tab",[["heading","Silences"],["id","silences"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),s["ɵdid"](16,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),s["ɵand"](16777216,null,null,1,null,bc)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mc)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,"Active Alerts","active-alerts"),t(e,6,0,n.isAlertmanagerConfigured),t(e,8,0,!n.isAlertmanagerConfigured),t(e,10,0,"All Alerts","all-alerts"),t(e,12,0,n.isPrometheusConfigured),t(e,14,0,!n.isPrometheusConfigured),t(e,16,0,"Silences","silences"),t(e,18,0,n.isAlertmanagerConfigured),t(e,20,0,!n.isAlertmanagerConfigured)}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).clazz),t(e,3,0,s["ɵnov"](e,4).id,s["ɵnov"](e,4).active,s["ɵnov"](e,4).addClass,s["ɵnov"](e,4).role,s["ɵnov"](e,4).ariaLabelledby),t(e,9,0,s["ɵnov"](e,10).id,s["ɵnov"](e,10).active,s["ɵnov"](e,10).addClass,s["ɵnov"](e,10).role,s["ɵnov"](e,10).ariaLabelledby),t(e,15,0,s["ɵnov"](e,16).id,s["ɵnov"](e,16).active,s["ɵnov"](e,16).addClass,s["ɵnov"](e,16).role,s["ɵnov"](e,16).ariaLabelledby)}))}function vc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-monitoring-list",[],null,null,null,yc,cc)),s["ɵdid"](1,114688,null,0,lc,[Ce,Se,qt.a,qt.m,pt.a,vt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var xc=s["ɵccf"]("cd-monitoring-list",lc,vc,{},{},[]);let _c=(()=>{class t{constructor(t){this.i18n=t,this.valueAttributePath={alertname:"name",instance:"alerts.0.labels.instance",job:"alerts.0.labels.job",severity:"labels.severity"}}singleMatch(t,e){return this.multiMatch([t],e)}multiMatch(t,e){if(!t.some(t=>t.isRegex))return t.forEach(t=>{e=this.getMatchedRules(t,e)}),this.describeMatch(e)}getMatchedRules(t,e){const n=this.getAttributePath(t.name);return e.filter(e=>J.get(e,n)===t.value)}describeMatch(t){let e=0;return t.forEach(t=>e+=t.alerts.length),{status:this.getMatchText(t.length,e),cssClass:e?"has-success":"has-warning"}}getAttributePath(t){return this.valueAttributePath[t]}getMatchText(t,e){const n={noRule:this.i18n("Your matcher seems to match no currently defined rule or active alert."),noAlerts:this.i18n("no active alerts"),alert:this.i18n("1 active alert"),alerts:this.i18n("{{n}} active alerts",{n:e}),rule:this.i18n("Matches 1 rule"),rules:this.i18n("Matches {{n}} rules",{n:t})};return t?this.i18n("{{rules}} with {{alerts}}.",{rules:t>1?n.rules:n.rule,alerts:e?e>1?n.alerts:n.alert:n.noAlerts}):n.noRule}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](_a.a))},token:t,providedIn:"root"}),t})(),Tc=(()=>{class t{constructor(){}calculateDuration(t,e){const n=+t,a=+e,r=this.getDuration(Math.abs(n-a));return n>a?"-"+r:r}getDuration(t){const e=new Date(t),n=e.getUTCHours(),a=e.getUTCMinutes(),r=(t,e)=>t?t+e:t;return[r(Math.floor(t/864e5),"d"),r(n,"h"),r(a,"m")].filter(t=>t).join(" ")}calculateDate(t,e,n){const a=+t;if(J.isNaN(a))return;const r=this.getDurationMs(e)*(n?-1:1);return new Date(a+r)}getDurationMs(t){return 6e4*(60*(24*this.getNumbersFromString(t,"d")+this.getNumbersFromString(t,"h"))+this.getNumbersFromString(t,"m"))}getNumbersFromString(t,e){const n=t.match(new RegExp(`[0-9 ]+${e}`,"i"));return n?parseInt(n[0],10):0}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})();class Oc{constructor(t,e,n){this.formBuilder=t,this.silenceMatcher=e,this.bsModalRef=n,this.submitAction=new s.EventEmitter,this.editMode=!1,this.nameAttributes=["alertname","instance","job","severity"],this.possibleValues=[],this.matcherMatch=void 0,this.createForm(),this.subscribeToChanges()}createForm(){this.form=this.formBuilder.group({name:[null,[$.B.required]],value:[{value:null,disabled:!0},[$.B.required]],isRegex:new $.i(!1)})}subscribeToChanges(){this.form.get("name").valueChanges.subscribe(t=>{null!==t?(this.setPossibleValues(t),this.form.get("value").enable()):this.form.get("value").disable()}),this.form.get("value").valueChanges.subscribe(t=>{const e=this.form.value;e.value=t,this.matcherMatch=this.silenceMatcher.singleMatch(e,this.rules)})}setPossibleValues(t){this.possibleValues=J.sortedUniq(this.rules.map(e=>J.get(e,this.silenceMatcher.getAttributePath(t))).filter(t=>t))}preFillControls(t){this.form.setValue(t)}onSubmit(){this.submitAction.emit(this.form.value),this.bsModalRef.hide()}}class wc{constructor(t,e,n,a,r,i,s,o,u,d,l,c){this.i18n=t,this.router=e,this.authStorageService=n,this.formBuilder=a,this.prometheusService=r,this.notificationService=i,this.route=s,this.timeDiff=o,this.bsModalService=u,this.silenceMatcher=d,this.actionLabels=l,this.succeededLabels=c,this.icons=ht.a,this.bsConfig={dateInputFormat:"YYYY-MM-DDT HH:mm"},this.recreate=!1,this.edit=!1,this.resource=this.i18n("silence"),this.matchers=[],this.matcherMatch=void 0,this.matcherConfig=[{tooltip:this.i18n("Attribute name"),icon:this.icons.paragraph,attribute:"name"},{tooltip:this.i18n("Value"),icon:this.icons.terminal,attribute:"value"},{tooltip:this.i18n("Regular expression"),icon:this.icons.magic,attribute:"isRegex"}],this.init()}init(){this.chooseMode(),this.authenticate(),this.createForm(),this.setupDates(),this.getData()}chooseMode(){this.edit=this.router.url.startsWith("/monitoring/silence/edit"),this.recreate=this.router.url.startsWith("/monitoring/silence/recreate"),this.action=this.edit?this.actionLabels.EDIT:this.recreate?this.actionLabels.RECREATE:this.actionLabels.CREATE}authenticate(){this.permission=this.authStorageService.getPermissions().prometheus,this.permission.read&&(this.edit?this.permission.update:this.permission.create)||this.router.navigate(["/404"])}createForm(){this.form=this.formBuilder.group({startsAt:[null,[$.B.required]],duration:["2h",[$.B.min(1)]],endsAt:[null,[$.B.required]],createdBy:[this.authStorageService.getUsername(),[$.B.required]],comment:[null,[$.B.required]]},{validators:As.a.custom("matcherRequired",()=>0===this.matchers.length)})}setupDates(){const t=new Date;t.setSeconds(0,0),this.form.silentSet("startsAt",t),this.updateDate(),this.subscribeDateChanges()}updateDate(t){const e=this.timeDiff.calculateDate(this.form.getValue(t?"endsAt":"startsAt"),this.form.getValue("duration"),t);e&&this.form.silentSet(t?"startsAt":"endsAt",e)}subscribeDateChanges(){this.form.get("startsAt").valueChanges.subscribe(()=>{this.onDateChange()}),this.form.get("duration").valueChanges.subscribe(()=>{this.updateDate()}),this.form.get("endsAt").valueChanges.subscribe(()=>{this.onDateChange(!0)})}onDateChange(t){this.form.getValue("startsAt")<this.form.getValue("endsAt")?this.updateDuration():this.updateDate(t)}updateDuration(){this.form.silentSet("duration",this.timeDiff.calculateDuration(this.form.getValue("startsAt"),this.form.getValue("endsAt")))}getData(){this.getRules(),this.getModeSpecificData()}getRules(){this.prometheusService.ifPrometheusConfigured(()=>this.prometheusService.getRules().subscribe(t=>{this.rules=t.groups.reduce((t,e)=>J.concat(t,e.rules),[])},()=>{this.prometheusService.disablePrometheusConfig(),this.rules=[]}),()=>{this.rules=[],this.notificationService.show(Ie.a.info,this.i18n("Please add your Prometheus host to the dashboard configuration and refresh the page"),void 0,void 0,"Prometheus")})}getModeSpecificData(){this.route.params.subscribe(t=>{t.id&&(this.edit||this.recreate?this.prometheusService.getSilences(t).subscribe(t=>{this.fillFormWithSilence(t[0])}):this.prometheusService.getAlerts(t).subscribe(t=>{this.fillFormByAlert(t[0])}))})}fillFormWithSilence(t){this.id=t.id,this.edit&&(["startsAt","endsAt"].forEach(e=>this.form.silentSet(e,new Date(t[e]))),this.updateDuration()),["createdBy","comment"].forEach(e=>this.form.silentSet(e,t[e])),this.matchers=t.matchers,this.validateMatchers()}validateMatchers(){this.rules?(this.matcherMatch=this.silenceMatcher.multiMatch(this.matchers,this.rules),this.form.markAsDirty(),this.form.updateValueAndValidity()):window.setTimeout(()=>this.validateMatchers(),100)}fillFormByAlert(t){const e=t.labels;Object.keys(e).forEach(t=>this.setMatcher({name:t,value:e[t],isRegex:!1}))}setMatcher(t,e){J.isNumber(e)?this.matchers[e]=t:this.matchers.push(t),this.validateMatchers()}showMatcherModal(t){const e=this.bsModalService.show(Oc),n=e.content;n.rules=this.rules,J.isNumber(t)&&(n.editMode=!0,n.preFillControls(this.matchers[t])),e.content.submitAction.subscribe(e=>{this.setMatcher(e,t)})}deleteMatcher(t){this.matchers.splice(t,1),this.validateMatchers()}submit(){this.form.invalid||this.prometheusService.setSilence(this.getSubmitData()).subscribe(t=>{this.router.navigate(["/monitoring"],{fragment:"silences"}),this.notificationService.show(Ie.a.success,this.getNotificationTile(t.body.silenceId),void 0,void 0,"Prometheus")},()=>this.form.setErrors({cdSubmitButton:!0}))}getSubmitData(){const t=this.form.value;return delete t.duration,t.startsAt=t.startsAt.toISOString(),t.endsAt=t.endsAt.toISOString(),t.matchers=this.matchers,this.edit&&(t.id=this.id),t}getNotificationTile(t){let e;return e=this.edit?this.succeededLabels.EDITED:this.recreate?this.succeededLabels.RECREATED:this.succeededLabels.CREATED,`${e} ${this.resource} ${t}`}}var Sc=s["ɵcrt"]({encapsulation:0,styles:[["textarea[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function Ic(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"input",[["class","form-control"],["disabled",""],["readonly",""],["type","text"]],[[8,"id",0],[8,"value",0],[2,"is-valid",null],[2,"is-invalid",null]],null,null,null,null)),s["ɵdid"](2,16384,null,0,Z.h,[[8,null],Z.a],null,null)],null,(function(t,e){t(e,1,0,s["ɵinlineInterpolate"](2,"matcher-",e.parent.context.$implicit.attribute,"-",e.parent.parent.context.index,""),e.parent.parent.context.matcher[e.parent.context.$implicit.attribute],s["ɵnov"](e,2).validClass,s["ɵnov"](e,2).invalidClass)}))}function Nc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,0,"input",[["disabled",""],["readonly",""],["type","checkbox"]],[[8,"id",0],[8,"checked",0]],null,null,null,null))],null,(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](2,"matcher-",e.parent.context.$implicit.attribute,"-",e.parent.parent.context.index,""),e.parent.parent.context.matcher[e.parent.context.$implicit.attribute])}))}function Cc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,6,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,16777216,null,null,5,"span",[["class","input-group-text"]],null,null,null,null,null)),s["ɵdid"](3,212992,null,0,Hn.c,[s.ViewContainerRef,W.a,Hn.a,s.ElementRef,s.Renderer2,na.a],{tooltip:[0,"tooltip"]},null),(t()(),s["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](7,1),(t()(),s["ɵand"](16777216,null,null,1,null,Ic)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Nc)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,3,0,e.context.$implicit.tooltip);var n=t(e,7,0,e.context.$implicit.icon);t(e,6,0,n),t(e,9,0,"isRegex"!==e.context.$implicit.attribute),t(e,11,0,"isRegex"===e.context.$implicit.attribute)}),null)}function Rc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,15,"div",[["class","input-group my-2"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Cc)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](3,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","Edit"],["type","button"]],[[8,"id",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showMatcherModal(t.context.index)&&a),a}),null,null)),s["ɵdid"](5,212992,null,0,Hn.c,[s.ViewContainerRef,W.a,Hn.a,s.ElementRef,s.Renderer2,na.a],{tooltip:[0,"tooltip"]},null),(t()(),s["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](8,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](9,1),(t()(),s["ɵeld"](10,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","Delete"],["type","button"]],[[8,"id",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.deleteMatcher(t.context.index)&&a),a}),null,null)),s["ɵdid"](11,212992,null,0,Hn.c,[s.ViewContainerRef,W.a,Hn.a,s.ElementRef,s.Renderer2,na.a],{tooltip:[0,"tooltip"]},null),(t()(),s["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](14,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](15,1),(t()(),s["ɵeld"](16,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,2,0,n.matcherConfig),t(e,5,0,"Edit");var a=t(e,9,0,n.icons.edit);t(e,8,0,a),t(e,11,0,"Delete");var r=t(e,15,0,n.icons.trash);t(e,14,0,r)}),(function(t,e){t(e,4,0,s["ɵinlineInterpolate"](1,"matcher-edit-",e.context.index,"")),t(e,10,0,s["ɵinlineInterpolate"](1,"matcher-delete-",e.context.index,""))}))}function Ac(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](-1,0,["Editing a silence will expire the old silence and recreate it as a new silence"]))],null,null)}function kc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Ec(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Lc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Dc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Pc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Mc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"h5",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](3,{"text-warning":0,"text-danger":1}),(t()(),s["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["A silence requires at least one matcher"]))],(function(t,e){var n=t(e,3,0,!s["ɵnov"](e.parent,6).submitted,s["ɵnov"](e.parent,6).submitted);t(e,2,0,n)}),null)}function qc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function jc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,qc)),s["ɵdid"](2,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["ɵpod"](3,{index:0,matcher:1})],(function(t,e){var n=t(e,3,0,e.context.index,e.context.$implicit);t(e,2,0,n,s["ɵnov"](e.parent,2))}),null)}function Fc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵted"](2,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,s["ɵinlineInterpolate"](1,"cd-col-form-offset ",n.matcherMatch.cssClass,"")),t(e,1,0,s["ɵinlineInterpolate"](1,"text-muted ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)}))}function Gc(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),(t()(),s["ɵand"](0,[["matcherTpl",2]],null,0,null,Rc)),(t()(),s["ɵeld"](3,0,null,null,137,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,136,"form",[["class","form"],["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,6).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,9).onSubmit()&&a),a}),null,null)),s["ɵdid"](5,16384,null,0,$.G,[],null,null),s["ɵdid"](6,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](8,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](9,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](10,0,null,null,130,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,6,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](13,null,[" "," "," "])),s["ɵppd"](14,1),s["ɵppd"](15,1),(t()(),s["ɵand"](16777216,null,null,1,null,Ac)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](18,0,null,null,113,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](20,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](23,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","created-by"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Creator"])),(t()(),s["ɵeld"](25,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](26,0,null,null,6,"input",[["class","form-control"],["formControlName","createdBy"],["id","created-by"],["name","created-by"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,27)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,27).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,27)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,27)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](27,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](29,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](31,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](32,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,kc)),s["ɵdid"](34,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](35,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](36,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](39,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","comment"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Comment"])),(t()(),s["ɵeld"](41,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](42,0,null,null,7,"textarea",[["class","form-control"],["formControlName","comment"],["id","comment"],["name","comment"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,43)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,43).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,43)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,43)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](43,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](45,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](47,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](48,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵted"](-1,null,["            "])),(t()(),s["ɵand"](16777216,null,null,1,null,Ec)),s["ɵdid"](51,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](52,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](53,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](56,0,null,0,5,"label",[["class","cd-col-form-label"],["for","starts-at"]],null,null,null,null,null)),(t()(),s["ɵeld"](57,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Start time"])),(t()(),s["ɵeld"](59,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](60,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](-1,0,["If the start time lies in the past the creation time will be used"])),(t()(),s["ɵeld"](62,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](63,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","startsAt"],["id","starts-at"],["name","starts-at"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,64)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,64).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,64)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,64)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,66).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==s["ɵnov"](t,66).hide()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,66).onBlur()&&a),a}),null,null)),s["ɵdid"](64,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](65,737280,null,0,rt.c,[rt.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a],{bsConfig:[0,"bsConfig"]},null),s["ɵdid"](66,16384,null,0,rt.f,[rt.c,rt.l,s.Renderer2,s.ElementRef,s.ChangeDetectorRef],null,null),s["ɵprd"](1024,null,$.o,(function(t){return[t]}),[rt.f]),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,rt.f]),s["ɵdid"](69,671744,[[5,4]],0,$.j,[[3,$.d],[6,$.o],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](71,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](72,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Lc)),s["ɵdid"](74,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](75,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](76,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](79,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","duration"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Duration"])),(t()(),s["ɵeld"](81,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](82,0,null,null,6,"input",[["class","form-control"],["formControlName","duration"],["id","duration"],["name","duration"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,83)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,83).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,83)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,83)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](83,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](85,671744,[[7,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](87,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](88,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Dc)),s["ɵdid"](90,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](91,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](92,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,9,{FormControlNames:1}),s["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),s["ɵeld"](95,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","ends-at"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["End time"])),(t()(),s["ɵeld"](97,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](98,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","endsAt"],["id","ends-at"],["name","ends-at"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,99)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,99).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,99)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,99)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,101).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==s["ɵnov"](t,101).hide()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,101).onBlur()&&a),a}),null,null)),s["ɵdid"](99,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](100,737280,null,0,rt.c,[rt.a,s.ElementRef,s.Renderer2,s.ViewContainerRef,W.a],{bsConfig:[0,"bsConfig"]},null),s["ɵdid"](101,16384,null,0,rt.f,[rt.c,rt.l,s.Renderer2,s.ElementRef,s.ChangeDetectorRef],null,null),s["ɵprd"](1024,null,$.o,(function(t){return[t]}),[rt.f]),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,rt.f]),s["ɵdid"](104,671744,[[9,4]],0,$.j,[[3,$.d],[6,$.o],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](106,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](107,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Pc)),s["ɵdid"](109,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](110,0,null,null,21,"fieldset",[],null,null,null,null,null)),(t()(),s["ɵeld"](111,0,null,null,1,"legend",[["class","required"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Matchers"])),(t()(),s["ɵeld"](113,0,null,null,16,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Mc)),s["ɵdid"](115,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,jc)),s["ɵdid"](117,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](118,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](119,0,null,null,10,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](120,0,null,null,9,"button",[["class","btn btn-light float-right my-3"],["id","add-matcher"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showMatcherModal()&&a),a}),null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](122,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](123,{"btn-warning":0}),(t()(),s["ɵeld"](124,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](126,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](127,1),(t()(),s["ɵeld"](128,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Add matcher"])),(t()(),s["ɵand"](16777216,null,null,1,null,Fc)),s["ɵdid"](131,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](132,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](133,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](134,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ws.b,ws.a)),s["ɵdid"](135,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](136,0,[" "," "," "])),s["ɵppd"](137,1),s["ɵppd"](138,1),(t()(),s["ɵeld"](139,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](140,49152,null,0,Ns.a,[i.Location,At.b],null,null)],(function(t,e){var n=e.component;t(e,6,0,n.form),t(e,9,0,n.form),t(e,17,0,n.edit),t(e,20,0),t(e,29,0,"createdBy"),t(e,32,0,"createdBy"),t(e,34,0,n.form.showError("createdBy",s["ɵnov"](e,6),"required")),t(e,36,0),t(e,45,0,"comment"),t(e,48,0,"comment"),t(e,51,0,n.form.showError("comment",s["ɵnov"](e,6),"required")),t(e,53,0),t(e,65,0,n.bsConfig),t(e,69,0,"startsAt"),t(e,72,0,"startsAt"),t(e,74,0,n.form.showError("startsAt",s["ɵnov"](e,6),"required")),t(e,76,0),t(e,85,0,"duration"),t(e,88,0,"duration"),t(e,90,0,n.form.showError("duration",s["ɵnov"](e,6),"required")),t(e,92,0),t(e,100,0,n.bsConfig),t(e,104,0,"endsAt"),t(e,107,0,"endsAt"),t(e,109,0,n.form.showError("endsAt",s["ɵnov"](e,6),"required")),t(e,115,0,0===n.matchers.length),t(e,117,0,n.matchers);var a=t(e,123,0,s["ɵnov"](e,6).submitted&&0===n.matchers.length);t(e,122,0,"btn btn-light float-right my-3",a);var r=t(e,127,0,n.icons.add);t(e,126,0,r),t(e,131,0,n.matchers.length&&n.matcherMatch),t(e,135,0,s["ɵnov"](e,6))}),(function(t,e){var n=e.component;t(e,4,0,s["ɵnov"](e,8).ngClassUntouched,s["ɵnov"](e,8).ngClassTouched,s["ɵnov"](e,8).ngClassPristine,s["ɵnov"](e,8).ngClassDirty,s["ɵnov"](e,8).ngClassValid,s["ɵnov"](e,8).ngClassInvalid,s["ɵnov"](e,8).ngClassPending);var a=s["ɵunv"](e,13,0,t(e,14,0,s["ɵnov"](e,0),n.action)),r=s["ɵunv"](e,13,1,t(e,15,0,s["ɵnov"](e,1),n.resource));t(e,13,0,a,r),t(e,19,0,s["ɵnov"](e,20).hasErrors,s["ɵnov"](e,20).hasSuccess),t(e,26,0,s["ɵnov"](e,31).ngClassUntouched,s["ɵnov"](e,31).ngClassTouched,s["ɵnov"](e,31).ngClassPristine,s["ɵnov"](e,31).ngClassDirty,s["ɵnov"](e,31).ngClassValid,s["ɵnov"](e,31).ngClassInvalid,s["ɵnov"](e,31).ngClassPending,s["ɵnov"](e,32).validClass,s["ɵnov"](e,32).invalidClass),t(e,35,0,s["ɵnov"](e,36).hasErrors,s["ɵnov"](e,36).hasSuccess),t(e,42,0,s["ɵnov"](e,47).ngClassUntouched,s["ɵnov"](e,47).ngClassTouched,s["ɵnov"](e,47).ngClassPristine,s["ɵnov"](e,47).ngClassDirty,s["ɵnov"](e,47).ngClassValid,s["ɵnov"](e,47).ngClassInvalid,s["ɵnov"](e,47).ngClassPending,s["ɵnov"](e,48).validClass,s["ɵnov"](e,48).invalidClass),t(e,52,0,s["ɵnov"](e,53).hasErrors,s["ɵnov"](e,53).hasSuccess),t(e,63,0,s["ɵnov"](e,71).ngClassUntouched,s["ɵnov"](e,71).ngClassTouched,s["ɵnov"](e,71).ngClassPristine,s["ɵnov"](e,71).ngClassDirty,s["ɵnov"](e,71).ngClassValid,s["ɵnov"](e,71).ngClassInvalid,s["ɵnov"](e,71).ngClassPending,s["ɵnov"](e,72).validClass,s["ɵnov"](e,72).invalidClass),t(e,75,0,s["ɵnov"](e,76).hasErrors,s["ɵnov"](e,76).hasSuccess),t(e,82,0,s["ɵnov"](e,87).ngClassUntouched,s["ɵnov"](e,87).ngClassTouched,s["ɵnov"](e,87).ngClassPristine,s["ɵnov"](e,87).ngClassDirty,s["ɵnov"](e,87).ngClassValid,s["ɵnov"](e,87).ngClassInvalid,s["ɵnov"](e,87).ngClassPending,s["ɵnov"](e,88).validClass,s["ɵnov"](e,88).invalidClass),t(e,91,0,s["ɵnov"](e,92).hasErrors,s["ɵnov"](e,92).hasSuccess),t(e,98,0,s["ɵnov"](e,106).ngClassUntouched,s["ɵnov"](e,106).ngClassTouched,s["ɵnov"](e,106).ngClassPristine,s["ɵnov"](e,106).ngClassDirty,s["ɵnov"](e,106).ngClassValid,s["ɵnov"](e,106).ngClassInvalid,s["ɵnov"](e,106).ngClassPending,s["ɵnov"](e,107).validClass,s["ɵnov"](e,107).invalidClass);var i=s["ɵunv"](e,136,0,t(e,137,0,s["ɵnov"](e,0),n.action)),o=s["ɵunv"](e,136,1,t(e,138,0,s["ɵnov"](e,1),n.resource));t(e,136,0,i,o)}))}function Vc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-prometheus-form",[],null,null,null,Gc,Sc)),s["ɵdid"](1,49152,null,0,wc,[_a.a,qt.m,xt.a,jo.a,Se,gt.a,qt.a,Tc,Lt.b,_c,At.b,At.d],null,null)],null,null)}var zc=s["ɵccf"]("cd-prometheus-form",wc,Vc,{},{},[]);let Bc=(()=>{class t{constructor(e){this.route=e,this.route.queryParams.subscribe(e=>{this.fromLink=e.fromLink||t.defaultFromLink}),this.route.params.subscribe(t=>{this.serviceId=decodeURIComponent(t.id),this.serviceType=t.type})}}return t.defaultFromLink="/hosts",t})();var Yc=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Hc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",".",""])),(t()(),s["ɵeld"](2,0,null,null,1,"cd-table-performance-counter",[],null,null,null,so.b,so.a)),s["ɵdid"](3,114688,null,0,oo.a,[uo.a,_a.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.serviceType,n.serviceId)}),(function(t,e){var n=e.component;t(e,1,0,n.serviceType,n.serviceId)}))}function Uc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-performance-counter",[],null,null,null,Hc,Yc)),s["ɵdid"](1,49152,null,0,Bc,[qt.a],null,null)],null,null)}var Wc=s["ɵccf"]("cd-performance-counter",Bc,Uc,{},{},[]);class Kc{constructor(t){this.mgrModuleService=t}ngOnChanges(){this.selection&&this.mgrModuleService.getConfig(this.selection.name).subscribe(t=>{this.module_config=t})}}var $c=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Zc(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](5,638976,null,0,hi.a,[be.a],{data:[0,"data"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.module_config)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby)}))}function Jc(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Zc)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection)}),null)}var Qc=n("PqYM");let Xc=(()=>{class t extends ns.a{constructor(t,e,n,a){super(),this.authStorageService=t,this.mgrModuleService=e,this.notificationService=n,this.i18n=a,this.columns=[],this.modules=[],this.selection=new Ur.a,this.permission=this.authStorageService.getPermissions().configOpt,this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Enabled"),prop:"enabled",flexGrow:1,cellClass:"text-center",cellTransformation:Hr.a.checkIcon},{name:this.i18n("Always-On"),prop:"always_on",isHidden:!0,flexGrow:1,cellClass:"text-center",cellTransformation:Hr.a.checkIcon}];const r=()=>this.selection.first()&&encodeURIComponent(this.selection.first().name);this.tableActions=[{name:this.i18n("Edit"),permission:"update",disable:()=>!this.selection.hasSelection||0===Object.values(this.selection.first().options).length,routerLink:()=>`/mgr-modules/edit/${r()}`,icon:ht.a.edit},{name:this.i18n("Enable"),permission:"update",click:()=>this.updateModuleState(),disable:()=>this.isTableActionDisabled("enabled"),icon:ht.a.start},{name:this.i18n("Disable"),permission:"update",click:()=>this.updateModuleState(),disable:()=>this.isTableActionDisabled("disabled"),disableDesc:()=>this.getTableActionDisabledDesc(),icon:ht.a.stop}]}getModuleList(t){this.mgrModuleService.list().subscribe(t=>{this.modules=t},()=>{t.error()})}updateSelection(t){this.selection=t}isTableActionDisabled(t){if(!this.selection.hasSelection)return!0;const e=this.selection.first();if("dashboard"===e.name)return!0;if(e.always_on)return!0;switch(t){case"enabled":return e.enabled;case"disabled":return!e.enabled}}getTableActionDisabledDesc(){if(this.selection.hasSelection&&this.selection.first().always_on)return this.i18n("This Manager module is always on.")}updateModuleState(){if(!this.selection.hasSelection)return;let t;const e=()=>{Object(Qc.a)(2e3).subscribe(()=>{this.mgrModuleService.list().subscribe(()=>{this.notificationService.suspendToasties(!1),this.blockUI.stop(),this.table.refreshBtn()},()=>{e()})})},n=this.selection.first();t=n.enabled?this.mgrModuleService.disable(n.name):this.mgrModuleService.enable(n.name),t.subscribe(()=>{},()=>{this.notificationService.suspendToasties(!0),this.blockUI.start(this.i18n("Reconnecting, please wait ...")),e()})}}return fd.__decorate([L(),fd.__metadata("design:type",Object)],t.prototype,"blockUI",void 0),t})();var tf=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ef(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{table:0}),(t()(),s["ɵeld"](1,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","module"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"],[null,"fetchData"]],(function(t,e,n){var a=!0,r=t.component;return"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),"fetchData"===e&&(a=!1!==r.getModuleList(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](2,2867200,[[1,4],["table",4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](4,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵeld"](5,0,null,3,1,"cd-mgr-module-details",[["cdTableDetail",""]],null,null,null,Jc,$c)),s["ɵdid"](6,573440,null,0,Kc,[Ll],{selection:[0,"selection"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.modules,n.columns,"flex",!0,!1,"module","single"),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.expandedRow)}),null)}function nf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-mgr-module-list",[],null,null,null,ef,tf)),s["ɵdid"](1,49152,null,0,Xc,[xt.a,Ll,gt.a,_a.a],null,null)],null,null)}var af=s["ɵccf"]("cd-mgr-module-list",Xc,nf,{},{},[]);class rf{constructor(t,e,n,a,r,i){this.route=t,this.router=e,this.formBuilder=n,this.mgrModuleService=a,this.notificationService=r,this.i18n=i,this.error=!1,this.loading=!1,this.moduleName="",this.moduleOptions=[]}ngOnInit(){this.route.params.subscribe(t=>{this.moduleName=decodeURIComponent(t.name),this.loading=!0;const e=[this.mgrModuleService.getOptions(this.moduleName),this.mgrModuleService.getConfig(this.moduleName)];Object(Ro.a)(e).subscribe(t=>{this.loading=!1,this.moduleOptions=t[0],this.createForm(),this.mgrModuleForm.setValue(t[1])},t=>{this.error=!0})})}getValidators(t){const e=[];switch(t.type){case"addr":e.push(As.a.ip());break;case"uint":case"int":case"size":case"secs":e.push(As.a.number()),e.push($.B.required),J.isNumber(t.min)&&e.push($.B.min(t.min)),J.isNumber(t.max)&&e.push($.B.max(t.max));break;case"str":J.isNumber(t.min)&&e.push($.B.minLength(t.min)),J.isNumber(t.max)&&e.push($.B.maxLength(t.max));break;case"float":e.push($.B.required),e.push(As.a.decimalNumber());break;case"uuid":e.push(As.a.uuid())}return e}createForm(){const t={};J.forEach(this.moduleOptions,e=>{t[e.name]=[e.default_value,this.getValidators(e)]}),this.mgrModuleForm=this.formBuilder.group(t)}goToListView(){this.router.navigate(["/mgr-modules"])}onSubmit(){if(this.mgrModuleForm.pristine)return void this.goToListView();const t={};J.forEach(this.moduleOptions,e=>{const n=this.mgrModuleForm.get(e.name);n.dirty&&n.valid&&(t[e.name]=n.value)}),this.mgrModuleService.updateConfig(this.moduleName,t).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n('Updated options for module "{{name}}".',{name:this.moduleName})),this.goToListView()},()=>{this.mgrModuleForm.setErrors({cdSubmitButton:!0})})}}var sf=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function of(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,gi.b,gi.a)),s["ɵdid"](1,49152,null,0,pi.a,[],null,null),(t()(),s["ɵted"](-1,0,["Loading configuration..."]))],null,null)}function uf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](-1,0,["The configuration could not be loaded."]))],(function(t,e){t(e,1,0,"error")}),null)}function df(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](2,0,[" "," "])),s["ɵppd"](3,1)],null,(function(t,e){var n=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent.parent.parent,0),e.parent.context.$implicit.value.long_desc||e.parent.context.$implicit.value.desc));t(e,2,0,n)}))}function lf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,3).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,3).onTouched()&&a),a}),null,null)),s["ɵdid"](3,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](5,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](7,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](8,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](9,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],(function(t,e){t(e,5,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""))}),(function(t,e){t(e,2,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),s["ɵnov"](e,7).ngClassUntouched,s["ɵnov"](e,7).ngClassTouched,s["ɵnov"](e,7).ngClassPristine,s["ɵnov"](e,7).ngClassDirty,s["ɵnov"](e,7).ngClassValid,s["ɵnov"](e,7).ngClassInvalid,s["ɵnov"](e,7).ngClassPending,s["ɵnov"](e,8).validClass,s["ɵnov"](e,8).invalidClass),t(e,9,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""))}))}function cf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,1)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](1,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](3,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](5,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](6,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,6,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""))}),(function(t,e){t(e,0,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""),s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending,s["ɵnov"](e,6).validClass,s["ɵnov"](e,6).invalidClass)}))}function ff(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{ngValue:[0,"ngValue"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function hf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"select",[["class","form-control custom-select"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,1).onTouched()&&a),a}),null,null)),s["ɵdid"](1,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](3,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](5,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](6,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ff)),s["ɵdid"](8,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,3,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,6,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,8,0,e.parent.parent.context.$implicit.value.enum_allowed)}),(function(t,e){t(e,0,0,s["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""),s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending,s["ɵnov"](e,6).validClass,s["ɵnov"](e,6).invalidClass)}))}function gf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8"]))],null,null)}function pf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The entered value needs to be a valid IP address."]))],null,null)}function bf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,cf)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,hf)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,gf)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,pf)),s["ɵdid"](8,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,0===e.parent.context.$implicit.value.enum_allowed.length),t(e,4,0,e.parent.context.$implicit.value.enum_allowed.length>0),t(e,6,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"invalidUuid")),t(e,8,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"pattern"))}),null)}function mf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function yf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too high! It must be lower or equal to ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.max)}))}function vf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too low! It must be greater or equal to ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.min)}))}function xf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The entered value needs to be a number."]))],null,null)}function _f(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,16,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"min",0],[8,"max",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,3).onTouched()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](3,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](5,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](7,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](8,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mf)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yf)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vf)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,xf)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"max")),t(e,14,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"min")),t(e,16,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"pattern"))}),(function(t,e){t(e,1,1,[s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.min,""),s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.max,""),s["ɵnov"](e,7).ngClassUntouched,s["ɵnov"](e,7).ngClassTouched,s["ɵnov"](e,7).ngClassPristine,s["ɵnov"](e,7).ngClassDirty,s["ɵnov"](e,7).ngClassValid,s["ɵnov"](e,7).ngClassInvalid,s["ɵnov"](e,7).ngClassPending,s["ɵnov"](e,8).validClass,s["ɵnov"](e,8).invalidClass])}))}function Tf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function Of(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The entered value needs to be a number or decimal."]))],null,null)}function wf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,12,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,3).onTouched()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](3,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](5,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](7,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](8,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Tf)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Of)),s["ɵdid"](12,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,s["ɵnov"](e.parent.parent,3),"pattern"))}),(function(t,e){t(e,1,0,s["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),s["ɵnov"](e,7).ngClassUntouched,s["ɵnov"](e,7).ngClassTouched,s["ɵnov"](e,7).ngClassPristine,s["ɵnov"](e,7).ngClassDirty,s["ɵnov"](e,7).ngClassValid,s["ɵnov"](e,7).ngClassInvalid,s["ɵnov"](e,7).ngClassPending,s["ɵnov"](e,8).validClass,s["ɵnov"](e,8).invalidClass)}))}function Sf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,3,"label",[["class","col-form-label col-sm-5"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵted"](5,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,df)),s["ɵdid"](7,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,lf)),s["ɵdid"](9,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,2,null,bf)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵpad"](12,3),(t()(),s["ɵand"](16777216,null,0,2,null,_f)),s["ɵdid"](14,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),s["ɵpad"](15,4),(t()(),s["ɵand"](16777216,null,0,1,null,wf)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0),t(e,7,0,e.context.$implicit.value.long_desc||e.context.$implicit.value.desc),t(e,9,0,"bool"===e.context.$implicit.value.type);var n=t(e,12,0,"addr","str","uuid").includes(e.context.$implicit.value.type);t(e,11,0,n);var a=t(e,15,0,"uint","int","size","secs").includes(e.context.$implicit.value.type);t(e,14,0,a),t(e,17,0,"float"===e.context.$implicit.value.type)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,s["ɵinlineInterpolate"](1,"",e.context.$implicit.value.name,"")),t(e,5,0,e.context.$implicit.value.name)}))}function If(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,22,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,21,"form",[["name","mgrModuleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](6,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](7,0,null,null,15,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Edit Manager module"])),(t()(),s["ɵeld"](10,0,null,null,3,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,Sf)),s["ɵdid"](12,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["ɵeld"](14,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](16,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](17,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵeld"](18,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Update"])),(t()(),s["ɵeld"](20,0,null,null,2,"button",[["class","btn btn-light"],["routerLink","/mgr-modules"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,21).onClick()&&a),a}),null,null)),s["ɵdid"](21,16384,null,0,qt.n,[qt.m,qt.a,[8,null],s.Renderer2,s.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵted"](-1,null,["Back"]))],(function(t,e){var n=e.component;t(e,3,0,n.mgrModuleForm),t(e,6,0,n.mgrModuleForm),t(e,12,0,s["ɵunv"](e,12,0,s["ɵnov"](e,13).transform(n.moduleOptions))),t(e,17,0,n.mgrModuleForm),t(e,21,0,"/mgr-modules")}),(function(t,e){t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending)}))}function Nf(t){return s["ɵvid"](0,[s["ɵpid"](0,Cs.a,[]),(t()(),s["ɵand"](16777216,null,null,1,null,of)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,uf)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,If)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.loading&&!n.error),t(e,4,0,n.loading&&n.error),t(e,6,0,!n.loading&&!n.error)}),null)}function Cf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-mgr-module-form",[],null,null,null,Nf,sf)),s["ɵdid"](1,114688,null,0,rf,[qt.a,qt.m,jo.a,Ll,gt.a,_a.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Rf=s["ɵccf"]("cd-mgr-module-form",rf,Cf,{},{},[]),Af=n("xTzq");let kf=(()=>{let t=class{constructor(t){this.http=t,this.baseURL="api/cephfs",this.baseUiURL="ui-api/cephfs"}list(){return this.http.get(`${this.baseURL}`)}lsDir(t,e){let n=`${this.baseUiURL}/${t}/ls_dir?depth=2`;return e&&(n+=`&path=${encodeURIComponent(e)}`),this.http.get(n)}getCephfs(t){return this.http.get(`${this.baseURL}/${t}`)}getTabs(t){return this.http.get(`ui-api/cephfs/${t}/tabs`)}getClients(t){return this.http.get(`${this.baseURL}/${t}/clients`)}evictClient(t,e){return this.http.delete(`${this.baseURL}/${t}/client/${e}`)}getMdsCounters(t){return this.http.get(`${this.baseURL}/${t}/mds_counters`)}mkSnapshot(t,e,n){let a=new X.h;return a=a.append("path",e),J.isUndefined(n)||(a=a.append("name",n)),this.http.post(`${this.baseURL}/${t}/mk_snapshot`,null,{params:a})}rmSnapshot(t,e,n){let a=new X.h;return a=a.append("path",e),a=a.append("name",n),this.http.post(`${this.baseURL}/${t}/rm_snapshot`,null,{params:a})}updateQuota(t,e,n){let a=new X.h;return a=a.append("path",e),this.http.post(`${this.baseURL}/${t}/set_quotas`,n,{observe:"response",params:a})}};return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t=fd.__decorate([Af.a,fd.__metadata("design:paramtypes",[X.c])],t),t})();class Ef{constructor(t,e,n,a,r,i,s,o){this.authStorageService=t,this.modalService=e,this.cephfsService=n,this.cdDatePipe=a,this.i18n=r,this.actionLabels=i,this.notificationService=s,this.dimlessBinaryPipe=o,this.icons=ht.a,this.loadingIndicator=!1,this.loading={},this.treeOptions={useVirtualScroll:!0,getChildren:t=>this.updateDirectory(t.id),actionMapping:{mouse:{click:this.selectAndShowNode.bind(this),expanderClick:this.selectAndShowNode.bind(this)}}}}selectAndShowNode(t,e,n){hd.a.TOGGLE_EXPANDED(t,e,n),this.selectNode(e)}selectNode(t){hd.a.TOGGLE_ACTIVE(void 0,t,void 0),this.selectedDir=this.getDirectory(t),"/"!==t.id&&this.setSettings(t)}ngOnInit(){this.permission=this.authStorageService.getPermissions().cephfs,this.setUpQuotaTable(),this.setUpSnapshotTable()}setUpQuotaTable(){this.quota={columns:[{prop:"row.name",name:this.i18n("Name"),flexGrow:1},{prop:"row.value",name:this.i18n("Value"),sortable:!1,flexGrow:1},{prop:"row.originPath",name:this.i18n("Origin"),sortable:!1,cellTemplate:this.originTmpl,flexGrow:1}],selection:new Ur.a,updateSelection:t=>{this.quota.selection=t},tableActions:[{name:this.actionLabels.SET,icon:ht.a.edit,permission:"update",visible:t=>!t.hasSelection||t.first()&&0===t.first().dirValue,click:()=>this.updateQuotaModal()},{name:this.actionLabels.UPDATE,icon:ht.a.edit,permission:"update",visible:t=>t.first()&&t.first().dirValue>0,click:()=>this.updateQuotaModal()},{name:this.actionLabels.UNSET,icon:ht.a.destroy,permission:"update",disable:t=>!t.hasSelection||t.first()&&0===t.first().dirValue,click:()=>this.unsetQuotaModal()}]}}setUpSnapshotTable(){this.snapshot={columns:[{prop:"name",name:this.i18n("Name"),flexGrow:1},{prop:"path",name:this.i18n("Path"),isHidden:!0,flexGrow:2},{prop:"created",name:this.i18n("Created"),flexGrow:1,pipe:this.cdDatePipe}],selection:new Ur.a,updateSelection:t=>{this.snapshot.selection=t},tableActions:[{name:this.actionLabels.CREATE,icon:ht.a.add,permission:"create",canBePrimary:t=>!t.hasSelection,click:()=>this.createSnapshot()},{name:this.actionLabels.DELETE,icon:ht.a.destroy,permission:"delete",click:()=>this.deleteSnapshotModal(),canBePrimary:t=>t.hasSelection,disable:t=>!t.hasSelection}]}}ngOnChanges(){this.selectedDir=void 0,this.dirs=[],this.requestedPaths=[],this.nodeIds={},this.id&&(this.setRootNode(),this.firstCall())}setRootNode(){this.nodes=[{name:"/",id:"/",isExpanded:!0}]}firstCall(){setTimeout(()=>{this.getNode("/").loadNodeChildren()},10)}updateDirectory(t){if(this.unsetLoadingIndicator(),this.requestedPaths.includes(t)){if(!0===this.loading[t])return}else this.requestedPaths.push(t);return new Promise(e=>{this.setLoadingIndicator(t,!0),this.cephfsService.lsDir(this.id,t).subscribe(n=>{this.updateTreeStructure(n),this.updateQuotaTable(),this.updateTree(),e(this.getChildren(t)),this.setLoadingIndicator(t,!1)})})}setLoadingIndicator(t,e){this.loading[t]=e,this.unsetLoadingIndicator()}getSubDirectories(t,e=this.dirs){return e.filter(e=>e.parent===t)}getChildren(t){const e=this.getSubTree(t);return J.sortBy(this.getSubDirectories(t),"path").map(t=>this.createNode(t,e))}createNode(t,e){return this.nodeIds[t.path]=t,e||this.getSubTree(t.parent),{name:t.name,id:t.path,hasChildren:this.getSubDirectories(t.path,e).length>0}}getSubTree(t){return this.dirs.filter(e=>e.parent&&e.parent.startsWith(t))}setSettings(t){const e=(t,e)=>t?e?e(t):t:"";this.settings=[this.getQuota(t,"max_files",e),this.getQuota(t,"max_bytes",t=>e(t,t=>this.dimlessBinaryPipe.transform(t)))]}getQuota(t,e,n){const a=t.id;t=this.getOrigin(t,e);const r=this.getDirectory(t),i=r.quotas[e];let s=i,o=r.path;if(t.id===a)if("/"===t.parent.id)s=0;else{const n=this.getDirectory(this.getOrigin(t.parent,e));s=n.quotas[e],o=n.path}return{row:{name:this.i18n("max_bytes"===e?"Max size":"Max files"),value:n(i),originPath:i?r.path:""},quotaKey:e,dirValue:this.nodeIds[a].quotas[e],nextTreeMaximum:{value:s,path:s?o:""}}}getOrigin(t,e){if(t.parent&&"/"!==t.parent.id){const n=this.getQuotaFromTree(t,e),a=this.getOrigin(t.parent,e),r=this.getQuotaFromTree(a,e);return 0===n||0!==r&&r<n?a:t}return t}getQuotaFromTree(t,e){return this.getDirectory(t).quotas[e]}getDirectory(t){return this.nodeIds[t.id]}selectOrigin(t){this.selectNode(this.getNode(t))}getNode(t){return this.treeComponent.treeModel.getNodeById(t)}updateQuotaModal(){const t=this.selectedDir.path,e=this.quota.selection.first(),n=e.nextTreeMaximum,a=e.quotaKey,r=e.dirValue;this.modalService.show(Yr.a,{initialState:{titleText:this.getModalQuotaTitle(0===r?this.actionLabels.SET:this.actionLabels.UPDATE,t),message:n.value?this.i18n("The inherited {{quotaValue}} is the maximum value to be used.",{quotaValue:this.getQuotaValueFromPathMsg(n.value,n.path)}):void 0,fields:[this.getQuotaFormField(e.row.name,a,r,n.value)],submitButtonText:this.i18n("Save"),onSubmit:t=>this.updateQuota(t)}})}getModalQuotaTitle(t,e){return this.i18n("{{action}} CephFS {{quotaName}} quota for '{{path}}'",{action:t,quotaName:this.getQuotaName(),path:e})}getQuotaName(){return this.isBytesQuotaSelected()?this.i18n("size"):this.i18n("files")}isBytesQuotaSelected(){return"max_bytes"===this.quota.selection.first().quotaKey}getQuotaValueFromPathMsg(t,e){return this.i18n("{{quotaName}} quota {{value}} from '{{path}}'",{value:this.isBytesQuotaSelected()?this.dimlessBinaryPipe.transform(t):t,quotaName:this.getQuotaName(),path:e})}getQuotaFormField(t,e,n,a){const r="max_bytes"===e,i=[r?As.a.binaryMin(0):$.B.min(0)];a&&i.push(r?As.a.binaryMax(a):$.B.max(a));const s={type:r?"binary":"number",label:t,name:e,value:n,validators:i,required:!0};return r||(s.errors={min:this.i18n("Value has to be at least {{value}} or more",{value:0}),max:this.i18n("Value has to be at most {{value}} or less",{value:a})}),s}updateQuota(t,e){const n=this.selectedDir.path,a=this.quota.selection.first().quotaKey,r=0===this.selectedDir.quotas[a]?this.actionLabels.SET:0===t[a]?this.actionLabels.UNSET:this.i18n("Updated");this.cephfsService.updateQuota(this.id,n,t).subscribe(()=>{e&&e(),this.notificationService.show(Ie.a.success,this.getModalQuotaTitle(r,n)),this.forceDirRefresh()})}unsetQuotaModal(){const t=this.selectedDir.path,e=this.quota.selection.first(),n=e.quotaKey,a=e.nextTreeMaximum,r=e.dirValue;this.modalRef=this.modalService.show(Ao.a,{initialState:{titleText:this.getModalQuotaTitle(this.actionLabels.UNSET,t),buttonText:this.actionLabels.UNSET,description:this.i18n("{{action}} {{quotaValue}} {{conclusion}}.",{action:this.actionLabels.UNSET,quotaValue:this.getQuotaValueFromPathMsg(r,t),conclusion:a.value>0?this.i18n(a.value>r?"in order to inherit {{quotaValue}}":"which isn't used because of the inheritance of {{quotaValue}}",{quotaValue:this.getQuotaValueFromPathMsg(a.value,a.path)}):this.i18n("in order to have no quota on the directory")}),onSubmit:()=>this.updateQuota({[n]:0},()=>this.modalRef.hide())}})}createSnapshot(){const t=this.selectedDir.path;this.modalService.show(Yr.a,{initialState:{titleText:this.i18n("Create Snapshot"),message:this.i18n("Please enter the name of the snapshot."),fields:[{type:"text",name:"name",value:`${ge().toISOString(!0)}`,required:!0}],submitButtonText:this.i18n("Create Snapshot"),onSubmit:e=>{this.cephfsService.mkSnapshot(this.id,t,e.name).subscribe(e=>{this.notificationService.show(Ie.a.success,this.i18n('Created snapshot "{{name}}" for "{{path}}"',{name:e,path:t})),this.forceDirRefresh()})}}})}forceDirRefresh(t){if(!t){const e=this.selectedDir;if(!e)throw new Error("This function can only be called without path if an selection was made");t=e.parent?e.parent:e.path}this.getNode(t).loadNodeChildren()}updateTreeStructure(t){const e=(t,e)=>{const n=t.filter(t=>t.parent===e),a=n.map(t=>t.path);return{children:n,paths:a}};J.uniq(t.map(t=>t.parent).sort()).forEach(n=>{const a=e(t,n),r=e(this.dirs,n);r.children.forEach(t=>{a.paths.includes(t.path)||this.removeOldDirectory(t)}),a.children.forEach(t=>{r.paths.includes(t.path)?this.updateExistingDirectory(r.children,t):this.addNewDirectory(t)})})}removeOldDirectory(t){const e=t.path;J.remove(this.dirs,t=>t.path===e),delete this.nodeIds[e],this.updateDirectoriesParentNode(t)}updateDirectoriesParentNode(t){const e=t.parent;if(!e)return;const n=this.getNode(e);if(!n)return;const a=this.getChildren(e);n.data.children=a,n.data.hasChildren=a.length>0,this.treeComponent.treeModel.update()}addNewDirectory(t){this.dirs.push(t),this.nodeIds[t.path]=t,this.updateDirectoriesParentNode(t)}updateExistingDirectory(t,e){const n=t.find(t=>t.path===e.path);Object.assign(n,e)}updateQuotaTable(){const t=this.selectedDir?this.getNode(this.selectedDir.path):void 0;t&&"/"!==t.id&&this.setSettings(t)}updateTree(t=!1){this.loadingIndicator&&!t||(this.treeComponent.treeModel.update(),this.nodes=[...this.nodes],this.treeComponent.sizeChanged())}deleteSnapshotModal(){this.modalRef=this.modalService.show(as.a,{initialState:{itemDescription:this.i18n("CephFs Snapshot"),itemNames:this.snapshot.selection.selected.map(t=>t.name),submitAction:()=>this.deleteSnapshot()}})}deleteSnapshot(){const t=this.selectedDir.path;this.snapshot.selection.selected.forEach(e=>{const n=e.name;this.cephfsService.rmSnapshot(this.id,t,n).subscribe(()=>{this.notificationService.show(Ie.a.success,this.i18n('Deleted snapshot "{{name}}" for "{{path}}"',{name:n,path:t}))})}),this.modalRef.hide(),this.forceDirRefresh()}refreshAllDirectories(){this.loadingIndicator=!0,this.requestedPaths.map(t=>this.forceDirRefresh(t));const t=setInterval(()=>{this.updateTree(!0),this.loadingIndicator||clearInterval(t)},3e3)}unsetLoadingIndicator(){this.loadingIndicator&&(clearTimeout(this.loadingTimeout),this.loadingTimeout=setTimeout(()=>{if(Object.values(this.loading).some(t=>t))return this.unsetLoadingIndicator();this.loadingIndicator=!1,this.updateTree()},3e3))}}var Lf=s["ɵcrt"]({encapsulation:0,styles:[["tree-root .tree-children{overflow:inherit}.quota-origin[_ngcontent-%COMP%]{cursor:pointer;color:#2b99a8}.quota-origin[_ngcontent-%COMP%]:hover{color:#212121}"]],data:{}});function Df(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](2,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](3,2)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function Pf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,7,"tree-root",[],null,[["body","keydown"],["body","mousedown"]],(function(t,e,n){var a=!0;return"body:keydown"===e&&(a=!1!==s["ɵnov"](t,2).onKeydown(n)&&a),"body:mousedown"===e&&(a=!1!==s["ɵnov"](t,2).onMousedown(n)&&a),a}),ud.b,ud.a)),s["ɵprd"](131584,null,dd.a,dd.a,[]),s["ɵdid"](2,573440,[[1,4]],4,ld.a,[dd.a,cd.a],{nodes:[0,"nodes"],options:[1,"options"]},null),s["ɵqud"](603979776,3,{loadingTemplate:0}),s["ɵqud"](603979776,4,{treeNodeTemplate:0}),s["ɵqud"](603979776,5,{treeNodeWrapperTemplate:0}),s["ɵqud"](603979776,6,{treeNodeFullTemplate:0}),(t()(),s["ɵand"](0,[[3,2],["loadingTemplate",2]],null,0,null,Df))],(function(t,e){var n=e.component;t(e,2,0,n.nodes,n.treeOptions)}),null)}function Mf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Quotas"])),(t()(),s["ɵeld"](3,0,null,null,3,"cd-table",[["identifier","quotaKey"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.quota.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](4,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],onlyActionHeader:[2,"onlyActionHeader"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],identifier:[6,"identifier"],forceIdentifier:[7,"forceIdentifier"],selectionType:[8,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),s["ɵeld"](5,0,null,0,1,"cd-table-actions",[["class","only-table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](6,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.settings,n.quota.columns,!0,!1,!1,0,"quotaKey",!0,"single"),t(e,6,0,n.permission,n.quota.selection,n.quota.tableActions)}),null)}function qf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,12,"div",[["class","col-sm-8 metadata"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,11,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](3,null,[" "," "])),(t()(),s["ɵeld"](4,0,null,null,8,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Mf)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](7,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Snapshots"])),(t()(),s["ɵeld"](9,0,null,null,3,"cd-table",[["forceIdentifier","true"],["identifier","name"],["selectionType","multiClick"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.snapshot.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](10,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),s["ɵeld"](11,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](12,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,6,0,"/"!==n.selectedDir.path),t(e,10,0,n.selectedDir.snapshots,n.snapshot.columns,"name","true","multiClick"),t(e,12,0,n.permission,n.snapshot.selection,n.snapshot.tableActions)}),(function(t,e){t(e,3,0,e.component.selectedDir.path)}))}function jf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","quota-origin"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectOrigin(t.context.value)&&a),a}),null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.value)}))}function Ff(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{treeComponent:0}),s["ɵqud"](402653184,2,{originTmpl:0}),(t()(),s["ɵeld"](2,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,10,"div",[["class","col-sm-4 pr-0"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,9,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,5,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,4,"button",[["class","btn btn-light pull-right"],["type","button"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshAllDirectories()&&a),a}),null,null)),(t()(),s["ɵeld"](7,0,null,null,3,"i",[],[[2,"fa-spin",null]],null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](9,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](10,2),(t()(),s["ɵeld"](11,0,null,null,2,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Pf)),s["ɵdid"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,qf)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,[[2,2],["origin",2]],null,0,null,jf))],(function(t,e){var n=e.component,a=t(e,10,0,n.icons.large,n.icons.refresh);t(e,9,0,a),t(e,13,0,n.nodes),t(e,15,0,n.selectedDir)}),(function(t,e){var n=e.component;t(e,6,0,n.loadingIndicator),t(e,7,0,n.loadingIndicator)}))}class Gf{constructor(){this.lhsCounter="mds_mem.ino",this.rhsCounter="mds_server.handle_client_request",this.chart={datasets:[{label:this.lhsCounter,yAxisID:"LHS",data:[],lineTension:.1},{label:this.rhsCounter,yAxisID:"RHS",data:[],lineTension:.1}],options:{title:{text:"",display:!0},responsive:!0,maintainAspectRatio:!1,legend:{position:"top"},scales:{xAxes:[{position:"top",type:"time",time:{displayFormats:{quarter:"MMM YYYY"}},ticks:{maxRotation:0}}],yAxes:[{id:"LHS",type:"linear",position:"left"},{id:"RHS",type:"linear",position:"right"}]},tooltips:{enabled:!1,mode:"index",intersect:!1,position:"nearest",callbacks:{title:(t,e)=>{let n=0;if(t.length>0){const a=t[0];n=e.datasets[a.datasetIndex].data[a.index].x}return n.toString()}}}},chartType:"line"}}ngOnInit(){J.isUndefined(this.mdsCounter)||(this.setChartTooltip(),this.updateChart())}ngOnChanges(){J.isUndefined(this.mdsCounter)||this.updateChart()}setChartTooltip(){const t=new ha.a(this.chartCanvas,this.chartTooltip,t=>t.caretX+"px",t=>t.caretY-t.height-23+"px");t.getTitle=t=>ge(t,"x").format("LTS"),t.checkOffset=!0,J.merge(this.chart,{options:{title:{text:this.mdsCounter.name},tooltips:{custom:e=>t.customTooltips(e)}}})}updateChart(){const t=[{data:this.convertTimeSeries(this.mdsCounter[this.lhsCounter])},{data:this.deltaTimeSeries(this.mdsCounter[this.rhsCounter])}];J.merge(this.chart,{datasets:t}),this.chart.datasets=[...this.chart.datasets]}convertTimeSeries(t){const e=[];return J.each(t,t=>{e.push({x:1e3*t[0],y:t[1]})}),e.shift(),e}deltaTimeSeries(t){let e,n=t[0];const a=[];for(e=1;e<t.length;e++){const r=t[e];a.push({x:1e3*r[0],y:r[1]-n[1]}),n=r}return a}}var Vf=s["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto auto 20px;cursor:pointer;overflow:visible;position:relative;height:500px;width:100%}']],data:{}});function zf(t){return s["ɵvid"](0,[s["ɵqud"](402653184,1,{chartCanvas:0}),s["ɵqud"](402653184,2,{chartTooltip:0}),(t()(),s["ɵeld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),s["ɵdid"](4,999424,null,0,ca.a,[s.ElementRef,ca.c],{datasets:[0,"datasets"],options:[1,"options"],chartType:[2,"chartType"]},null),(t()(),s["ɵeld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.chart.datasets,n.chart.options,n.chart.chartType)}),null)}class Bf{constructor(t,e,n){this.dimlessBinary=t,this.dimless=e,this.i18n=n,this.standbys=[],this.objectValues=Object.values}ngOnChanges(){this.setStandbys()}setStandbys(){this.standbys=[{key:this.i18n("Standby daemons"),value:this.data.standbys}]}ngOnInit(){this.columns={ranks:[{prop:"rank",name:this.i18n("Rank")},{prop:"state",name:this.i18n("State")},{prop:"mds",name:this.i18n("Daemon")},{prop:"activity",name:this.i18n("Activity"),cellTemplate:this.activityTmpl},{prop:"dns",name:this.i18n("Dentries"),pipe:this.dimless},{prop:"inos",name:this.i18n("Inodes"),pipe:this.dimless}],pools:[{prop:"pool",name:this.i18n("Pool")},{prop:"type",name:this.i18n("Type")},{prop:"size",name:this.i18n("Size"),pipe:this.dimlessBinary},{name:this.i18n("Usage"),cellTemplate:this.poolUsageTpl,comparator:(t,e,n,a)=>{const r=n.used/n.avail,i=a.used/a.avail;return r===i?0:r>i?1:-1}}]}}trackByFn(t,e){return e.name}}var Yf=s["ɵcrt"]({encapsulation:0,styles:[[".progress[_ngcontent-%COMP%]{margin-bottom:0}"]],data:{}});function Hf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,2,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"cd-cephfs-chart",[],null,null,null,zf,Vf)),s["ɵdid"](3,638976,null,0,Gf,[],{mdsCounter:[0,"mdsCounter"]},null)],(function(t,e){t(e,3,0,e.context.$implicit)}),null)}function Uf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,ro.b,ro.a)),s["ɵdid"](1,573440,null,0,io.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(t,e){t(e,1,0,e.context.row.size,e.context.row.used)}),null)}function Wf(t){return s["ɵvid"](0,[(t()(),s["ɵted"](0,null,[" ",": "," /s\n"])),s["ɵppd"](1,1)],null,(function(t,e){var n="standby-replay"===e.context.row.state?"Evts":"Reqs",a=s["ɵunv"](e,0,1,t(e,1,0,s["ɵnov"](e.parent,0),e.context.value));t(e,0,0,n,a)}))}function Kf(t){return s["ɵvid"](0,[s["ɵpid"](0,pa.a,[Ia.a]),s["ɵqud"](402653184,1,{poolUsageTpl:0}),s["ɵqud"](402653184,2,{activityTmpl:0}),(t()(),s["ɵeld"](3,0,null,null,14,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,8,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Ranks"])),(t()(),s["ɵeld"](7,0,null,null,1,"cd-table",[],null,null,null,Dr.b,Dr.a)),s["ɵdid"](8,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),s["ɵeld"](9,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Standbys"])),(t()(),s["ɵeld"](11,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](12,638976,null,0,hi.a,[be.a],{data:[0,"data"]},null),(t()(),s["ɵeld"](13,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](14,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Pools"])),(t()(),s["ɵeld"](16,0,null,null,1,"cd-table",[],null,null,null,Dr.b,Dr.a)),s["ɵdid"](17,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),s["ɵeld"](18,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["MDS performance counters"])),(t()(),s["ɵand"](16777216,null,null,1,null,Hf)),s["ɵdid"](21,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),s["ɵand"](0,[[1,2],["poolUsageTpl",2]],null,0,null,Uf)),(t()(),s["ɵand"](0,[[2,2],["activityTmpl",2]],null,0,null,Wf))],(function(t,e){var n=e.component;t(e,8,0,n.data.ranks,n.columns.ranks,!1),t(e,12,0,n.standbys),t(e,17,0,n.data.pools,n.columns.pools,!1),t(e,21,0,n.objectValues(n.data.mdsCounters),n.trackByFn)}),null)}var $f=n("C6Ij"),Zf=n("AWcq");class Jf{constructor(t,e,n,a,r,i){this.cephfsService=t,this.modalService=e,this.notificationService=n,this.authStorageService=a,this.i18n=r,this.actionLabels=i,this.triggerApiUpdate=new s.EventEmitter,this.selection=new Ur.a,this.permission=this.authStorageService.getPermissions().cephfs,this.tableActions=[{permission:"update",icon:ht.a.signOut,click:()=>this.evictClientModal(),name:this.actionLabels.EVICT}]}ngOnInit(){this.columns=[{prop:"id",name:this.i18n("id")},{prop:"type",name:this.i18n("type")},{prop:"state",name:this.i18n("state")},{prop:"version",name:this.i18n("version")},{prop:"hostname",name:this.i18n("Host")},{prop:"root",name:this.i18n("root")}]}updateSelection(t){this.selection=t}evictClient(t){this.cephfsService.evictClient(this.id,t).subscribe(()=>{this.triggerApiUpdate.emit(),this.modalRef.hide(),this.notificationService.show(Ie.a.success,this.i18n('Evicted client "{{clientId}}"',{clientId:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}evictClientModal(){const t=this.selection.first().id;this.modalRef=this.modalService.show(as.a,{initialState:{itemDescription:"client",itemNames:[t],actionDescription:"evict",submitAction:()=>this.evictClient(t)}})}}var Qf=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Xf(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,$f.b,$f.a)),s["ɵdid"](1,114688,null,0,Zf.a,[],{status:[0,"status"]},null),(t()(),s["ɵeld"](2,0,null,null,3,"cd-table",[["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](3,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),s["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](5,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.clients.status),t(e,3,0,n.clients.data,n.columns,"single"),t(e,5,0,n.permission,n.selection,n.tableActions)}),null)}var th=n("yJti");class eh{constructor(t,e,n){this.ngZone=t,this.authStorageService=e,this.cephfsService=n,this.clients={data:[],status:th.a.ValueNone},this.details={standbys:"",pools:[],ranks:[],mdsCounters:{},name:""},this.directoriesSelected=!1,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.selection?this.selection.id!==this.id&&this.setupSelected(this.selection.id,this.selection.mdsmap.info):this.unsubscribeInterval()}setupSelected(t,e){this.id=t;const n=J.first(Object.values(e));this.grafanaId=n&&n.name,this.details={standbys:"",pools:[],ranks:[],mdsCounters:{},name:""},this.clients={data:[],status:th.a.ValueNone},this.updateInterval()}updateInterval(){this.unsubscribeInterval(),this.subscribeInterval()}unsubscribeInterval(){this.reloadSubscriber&&this.reloadSubscriber.unsubscribe()}subscribeInterval(){this.ngZone.runOutsideAngular(()=>this.reloadSubscriber=Object(Qc.a)(0,5e3).subscribe(()=>this.ngZone.run(()=>this.refresh())))}refresh(){this.cephfsService.getTabs(this.id).subscribe(t=>{this.data=t,this.softRefresh()},()=>{this.clients.status=th.a.ValueException})}softRefresh(){const t=J.cloneDeep(this.data);this.clients=t.clients,this.details={standbys:t.standbys,pools:t.pools,ranks:t.ranks,mdsCounters:t.mds_counters,name:t.name}}ngOnDestroy(){this.unsubscribeInterval()}}var nh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ah(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Clients"])),(t()(),s["ɵeld"](2,0,null,null,1,"span",[["class","badge badge-pill badge-tab ml-1"]],null,null,null,null,null)),(t()(),s["ɵted"](3,null,["",""]))],null,(function(t,e){t(e,3,0,e.component.clients.data.length)}))}function rh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-cephfs-directories",[],null,null,null,Ff,Lf)),s["ɵdid"](1,638976,null,0,Ef,[xt.a,Lt.b,kf,be.a,_a.a,At.b,gt.a,ga.a],{id:[0,"id"]},null)],(function(t,e){t(e,1,0,e.component.id)}),null)}function ih(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](1,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","tbO9LAiZz"]],null,null,null,kr.b,kr.a)),s["ɵdid"](3,638976,null,0,Er.a,[pt.a,Lr.b,re.a,vt.a,_a.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"mds-performance?var-mds_servers=mds."+n.grafanaId,"one","tbO9LAiZz")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).id,s["ɵnov"](e,1).active,s["ɵnov"](e,1).addClass,s["ɵnov"](e,1).role,s["ɵnov"](e,1).ariaLabelledby)}))}function sh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,17,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.softRefresh()&&a),a}),null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab"}),(t()(),s["ɵeld"](4,0,null,null,1,"cd-cephfs-detail",[],null,null,null,Kf,Yf)),s["ɵdid"](5,638976,null,0,Bf,[ga.a,pa.a,_a.a],{data:[0,"data"]},null),(t()(),s["ɵeld"](6,0,null,0,5,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.softRefresh()&&a),a}),null,null)),s["ɵdid"](7,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],null,{selectTab:"selectTab"}),(t()(),s["ɵand"](0,null,null,1,null,ah)),s["ɵdid"](9,16384,null,0,ta.c,[s.TemplateRef,ta.b],null,null),(t()(),s["ɵeld"](10,0,null,null,1,"cd-cephfs-clients",[],null,[[null,"triggerApiUpdate"]],(function(t,e,n){var a=!0;return"triggerApiUpdate"===e&&(a=!1!==t.component.refresh()&&a),a}),Xf,Qf)),s["ɵdid"](11,114688,null,0,Jf,[kf,Lt.b,gt.a,xt.a,_a.a,At.b],{id:[0,"id"],clients:[1,"clients"]},{triggerApiUpdate:"triggerApiUpdate"}),(t()(),s["ɵeld"](12,0,null,0,3,"tab",[["heading","Directories"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=0!=(t.component.directoriesSelected=!0)&&a),a}),null,null)),s["ɵdid"](13,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab"}),(t()(),s["ɵand"](16777216,null,null,1,null,rh)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ih)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.details),t(e,7,0),t(e,11,0,n.id,n.clients),t(e,13,0,"Directories"),t(e,15,0,n.directoriesSelected),t(e,17,0,n.grafanaPermission.read&&n.grafanaId)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,6,0,s["ɵnov"](e,7).id,s["ɵnov"](e,7).active,s["ɵnov"](e,7).addClass,s["ɵnov"](e,7).role,s["ɵnov"](e,7).ariaLabelledby),t(e,12,0,s["ɵnov"](e,13).id,s["ɵnov"](e,13).active,s["ɵnov"](e,13).addClass,s["ɵnov"](e,13).role,s["ɵnov"](e,13).ariaLabelledby)}))}function oh(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,sh)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection)}),null)}class uh extends ns.a{constructor(t,e,n){super(),this.cephfsService=t,this.cdDatePipe=e,this.i18n=n,this.filesystems=[],this.selection=new Ur.a}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"mdsmap.fs_name",flexGrow:2},{name:this.i18n("Created"),prop:"mdsmap.created",flexGrow:2,pipe:this.cdDatePipe},{name:this.i18n("Enabled"),prop:"mdsmap.enabled",flexGrow:1,cellTransformation:Hr.a.checkIcon}]}loadFilesystems(t){this.cephfsService.list().subscribe(t=>{this.filesystems=t},()=>{t.error()})}updateSelection(t){this.selection=t}}var dh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function lh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.loadFilesystems(n)&&a),"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](1,2867200,null,0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](2,0,null,3,1,"cd-cephfs-tabs",[["cdTableDetail",""]],null,null,null,oh,nh)),s["ɵdid"](3,704512,null,0,eh,[s.NgZone,xt.a,kf],{selection:[0,"selection"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.filesystems,n.columns,"flex",!0,"id","true","single"),t(e,3,0,n.expandedRow)}),null)}function ch(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-cephfs-list",[],null,null,null,lh,dh)),s["ɵdid"](1,114688,null,0,uh,[kf,be.a,_a.a],null,null)],(function(t,e){t(e,1,0)}),null)}var fh=s["ɵccf"]("cd-cephfs-list",uh,ch,{},{},[]),hh=n("D4zM"),gh=n("1nQr");class ph{constructor(t,e,n,a,r,i,s,o){this.i18n=t,this.actionLabels=e,this.notificationService=n,this.userService=a,this.authStorageService=r,this.formBuilder=i,this.router=s,this.passwordPolicyService=o,this.passwordPolicyHelpText="",this.icons=ht.a,this.action=this.actionLabels.CHANGE,this.resource=this.i18n("password"),this.createForm()}createForm(){this.passwordPolicyService.getHelpText().subscribe(t=>{this.passwordPolicyHelpText=t}),this.userForm=this.formBuilder.group({oldpassword:[null,[$.B.required,As.a.custom("notmatch",()=>this.userForm&&this.userForm.getValue("newpassword")===this.userForm.getValue("oldpassword"))]],newpassword:[null,[$.B.required,As.a.custom("notmatch",()=>this.userForm&&this.userForm.getValue("oldpassword")===this.userForm.getValue("newpassword"))],[As.a.passwordPolicy(this.userService,()=>this.authStorageService.getUsername(),(t,e,n)=>{this.passwordStrengthLevelClass=this.passwordPolicyService.mapCreditsToCssClass(e),this.passwordValuation=J.defaultTo(n,"")})]],confirmnewpassword:[null,[$.B.required]]},{validators:[As.a.match("newpassword","confirmnewpassword")]})}onSubmit(){if(this.userForm.pristine)return;const t=this.authStorageService.getUsername(),e=this.userForm.getValue("oldpassword"),n=this.userForm.getValue("newpassword");this.userService.changePassword(t,e,n).subscribe(()=>this.onPasswordChange(),()=>{this.userForm.setErrors({cdSubmitButton:!0})})}onPasswordChange(){this.notificationService.show(Ie.a.success,this.i18n('Updated user password"')),this.router.navigate(["/login"])}}var bh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function mh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function yh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function vh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-helper",[["class","text-pre"]],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],{class:[0,"class"],html:[1,"html"]},null)],(function(t,e){t(e,1,0,"text-pre",s["ɵinlineInterpolate"](1,"",e.component.passwordPolicyHelpText,""))}),null)}function xh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function _h(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function Th(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.passwordValuation)}))}function Oh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function wh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Password confirmation doesn't match the new password."]))],null,null)}function Sh(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),(t()(),s["ɵeld"](2,0,null,null,93,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,92,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,5).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,5).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,8).onSubmit()&&a),a}),null,null)),s["ɵdid"](4,16384,null,0,$.G,[],null,null),s["ɵdid"](5,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](7,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](8,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](9,0,null,null,86,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](11,null,[""," ",""])),s["ɵppd"](12,1),s["ɵppd"](13,1),(t()(),s["ɵeld"](14,0,null,null,74,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](16,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](19,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","oldpassword"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Old password"])),(t()(),s["ɵeld"](21,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](22,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](23,0,null,null,7,"input",[["autocomplete","new-password"],["autofocus",""],["class","form-control"],["formControlName","oldpassword"],["id","oldpassword"],["placeholder","Old password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,24)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,24).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,24)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,24)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](24,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](26,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](28,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](29,4210688,null,0,Os.a,[s.ElementRef],{autofocus:[0,"autofocus"]},null),s["ɵdid"](30,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](31,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](32,0,null,null,1,"button",[["cdPasswordButton","oldpassword"],["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,33).onClick()&&a),a}),null,null)),s["ɵdid"](33,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mh)),s["ɵdid"](35,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yh)),s["ɵdid"](37,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](38,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](39,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](42,0,null,0,4,"label",[["class","cd-col-form-label"],["for","newpassword"]],null,null,null,null,null)),(t()(),s["ɵeld"](43,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["New password"])),(t()(),s["ɵand"](16777216,null,null,1,null,vh)),s["ɵdid"](46,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](47,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](48,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](49,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","newpassword"],["id","newpassword"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,50)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,50).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,50)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,50)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](50,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](52,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](54,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](55,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](56,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](57,0,null,null,1,"button",[["cdPasswordButton","newpassword"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,58).onClick()&&a),a}),null,null)),s["ɵdid"](58,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵeld"](59,0,null,null,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(t()(),s["ɵeld"](60,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,xh)),s["ɵdid"](62,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,_h)),s["ɵdid"](64,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Th)),s["ɵdid"](66,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](67,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](68,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](71,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","confirmnewpassword"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Confirm new password"])),(t()(),s["ɵeld"](73,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](74,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](75,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","confirmnewpassword"],["id","confirmnewpassword"],["placeholder","Confirm new password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,76)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,76).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,76)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,76)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](76,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](78,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](80,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](81,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](82,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](83,0,null,null,1,"button",[["cdPasswordButton","confirmnewpassword"],["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,84).onClick()&&a),a}),null,null)),s["ɵdid"](84,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Oh)),s["ɵdid"](86,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,wh)),s["ɵdid"](88,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](89,0,null,null,6,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](90,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](91,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](92,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](93,0,[" "," "," "])),s["ɵppd"](94,1),s["ɵppd"](95,1)],(function(t,e){var n=e.component;t(e,5,0,n.userForm),t(e,8,0,n.userForm),t(e,16,0),t(e,26,0,"oldpassword"),t(e,29,0,""),t(e,30,0,"oldpassword"),t(e,33,0,"oldpassword"),t(e,35,0,n.userForm.showError("oldpassword",s["ɵnov"](e,5),"required")),t(e,37,0,n.userForm.showError("oldpassword",s["ɵnov"](e,5),"notmatch")),t(e,39,0),t(e,46,0,n.passwordPolicyHelpText.length>0),t(e,52,0,"newpassword"),t(e,55,0,"newpassword"),t(e,58,0,"newpassword"),t(e,62,0,n.userForm.showError("newpassword",s["ɵnov"](e,5),"required")),t(e,64,0,n.userForm.showError("newpassword",s["ɵnov"](e,5),"notmatch")),t(e,66,0,n.userForm.showError("newpassword",s["ɵnov"](e,5),"passwordPolicy")),t(e,68,0),t(e,78,0,"confirmnewpassword"),t(e,81,0,"confirmnewpassword"),t(e,84,0,"confirmnewpassword"),t(e,86,0,n.userForm.showError("confirmnewpassword",s["ɵnov"](e,5),"required")),t(e,88,0,n.userForm.showError("confirmnewpassword",s["ɵnov"](e,5),"match")),t(e,92,0,n.userForm)}),(function(t,e){var n=e.component;t(e,3,0,s["ɵnov"](e,7).ngClassUntouched,s["ɵnov"](e,7).ngClassTouched,s["ɵnov"](e,7).ngClassPristine,s["ɵnov"](e,7).ngClassDirty,s["ɵnov"](e,7).ngClassValid,s["ɵnov"](e,7).ngClassInvalid,s["ɵnov"](e,7).ngClassPending);var a=s["ɵunv"](e,11,0,t(e,12,0,s["ɵnov"](e,0),n.action)),r=s["ɵunv"](e,11,1,t(e,13,0,s["ɵnov"](e,1),n.resource));t(e,11,0,a,r),t(e,15,0,s["ɵnov"](e,16).hasErrors,s["ɵnov"](e,16).hasSuccess),t(e,23,0,s["ɵnov"](e,28).ngClassUntouched,s["ɵnov"](e,28).ngClassTouched,s["ɵnov"](e,28).ngClassPristine,s["ɵnov"](e,28).ngClassDirty,s["ɵnov"](e,28).ngClassValid,s["ɵnov"](e,28).ngClassInvalid,s["ɵnov"](e,28).ngClassPending,s["ɵnov"](e,30).validClass,s["ɵnov"](e,30).invalidClass),t(e,38,0,s["ɵnov"](e,39).hasErrors,s["ɵnov"](e,39).hasSuccess),t(e,49,0,s["ɵnov"](e,54).ngClassUntouched,s["ɵnov"](e,54).ngClassTouched,s["ɵnov"](e,54).ngClassPristine,s["ɵnov"](e,54).ngClassDirty,s["ɵnov"](e,54).ngClassValid,s["ɵnov"](e,54).ngClassInvalid,s["ɵnov"](e,54).ngClassPending,s["ɵnov"](e,55).validClass,s["ɵnov"](e,55).invalidClass),t(e,60,0,s["ɵinlineInterpolate"](1,"",n.passwordStrengthLevelClass,""),s["ɵinlineInterpolate"](1,"",n.passwordValuation,"")),t(e,67,0,s["ɵnov"](e,68).hasErrors,s["ɵnov"](e,68).hasSuccess),t(e,75,0,s["ɵnov"](e,80).ngClassUntouched,s["ɵnov"](e,80).ngClassTouched,s["ɵnov"](e,80).ngClassPristine,s["ɵnov"](e,80).ngClassDirty,s["ɵnov"](e,80).ngClassValid,s["ɵnov"](e,80).ngClassInvalid,s["ɵnov"](e,80).ngClassPending,s["ɵnov"](e,81).validClass,s["ɵnov"](e,81).invalidClass);var i=s["ɵunv"](e,93,0,t(e,94,0,s["ɵnov"](e,0),n.action)),o=s["ɵunv"](e,93,1,t(e,95,0,s["ɵnov"](e,1),n.resource));t(e,93,0,i,o)}))}function Ih(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-user-password-form",[],null,null,null,Sh,bh)),s["ɵdid"](1,49152,null,0,ph,[_a.a,At.b,gt.a,Rt.a,xt.a,jo.a,qt.m,gh.a],null,null)],null,null)}var Nh=s["ɵccf"]("cd-user-password-form",ph,Ih,{},{},[]);class Ch{constructor(t,e,n,a){this.route=t,this.summaryService=e,this.cephReleaseNamePipe=n,this.i18n=a,this.message=this.i18n("The NFS Ganesha service is not configured.")}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`+"#configuring-nfs-ganesha-in-the-dashboard",setTimeout(()=>{t.unsubscribe()},0)});this.routeParamsSubscribe=this.route.params.subscribe(t=>{this.message=t.message})}ngOnDestroy(){this.routeParamsSubscribe.unsubscribe()}}var Rh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ah(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["type","info"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"]},null),(t()(),s["ɵted"](2,0,[" ",""])),(t()(),s["ɵeld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,0,4,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Please consult the "])),(t()(),s["ɵeld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["documentation"])),(t()(),s["ɵted"](-1,null,[" on how to configure and enable the NFS Ganesha management functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){var n=e.component;t(e,2,0,n.message),t(e,6,0,s["ɵinlineInterpolate"](1,"",n.docsUrl,""))}))}function kh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-nfs-501",[],null,null,null,Ah,Rh)),s["ɵdid"](1,245760,null,0,Ch,[qt.a,pt.a,vt.a,_a.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Eh=s["ɵccf"]("cd-nfs-501",Ch,kh,{},{},[]);class Lh{constructor(t){this.i18n=t,this.clients=[],this.clientsColumns=[{name:this.i18n("Addresses"),prop:"addresses",flexGrow:2},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:1},{name:this.i18n("Squash"),prop:"squash",flexGrow:1}]}ngOnChanges(){this.selection&&(this.selectedItem=this.selection,this.clients=this.selectedItem.clients,this.data={},this.data[this.i18n("Cluster")]=this.selectedItem.cluster_id,this.data[this.i18n("Daemons")]=this.selectedItem.daemons,this.data[this.i18n("NFS Protocol")]=this.selectedItem.protocols.map(t=>"NFSv"+t),this.data[this.i18n("Pseudo")]=this.selectedItem.pseudo,this.data[this.i18n("Access Type")]=this.selectedItem.access_type,this.data[this.i18n("Squash")]=this.selectedItem.squash,this.data[this.i18n("Transport")]=this.selectedItem.transports,this.data[this.i18n("Path")]=this.selectedItem.path,"CEPH"===this.selectedItem.fsal.name?(this.data[this.i18n("Storage Backend")]=this.i18n("CephFS"),this.data[this.i18n("CephFS User")]=this.selectedItem.fsal.user_id,this.data[this.i18n("CephFS Filesystem")]=this.selectedItem.fsal.fs_name,this.data[this.i18n("Security Label")]=this.selectedItem.fsal.sec_label_xattr):(this.data[this.i18n("Storage Backend")]=this.i18n("Object Gateway"),this.data[this.i18n("Object Gateway User")]=this.selectedItem.fsal.rgw_user_id))}}var Dh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ph(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,Xn.b,Xn.a)),s["ɵdid"](1,180224,null,0,ta.e,[ta.f,s.Renderer2,s.ElementRef],null,null),(t()(),s["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](3,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,fi.b,fi.a)),s["ɵdid"](5,638976,null,0,hi.a,[be.a],{data:[0,"data"]},null),(t()(),s["ɵeld"](6,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null],[1,"role",0],[1,"aria-labelledby",0]],null,null,null,null)),s["ɵdid"](7,212992,null,0,ta.b,[ta.e,s.ElementRef,s.Renderer2],{heading:[0,"heading"]},null),(t()(),s["ɵeld"](8,0,null,null,1,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","addresses"],["selectionType",""]],null,null,null,Dr.b,Dr.a)),s["ɵdid"](9,2867200,[["table",4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.data),t(e,7,0,s["ɵinlineInterpolate"](1,"Clients (",n.clients.length,")")),t(e,9,0,n.clients,n.clientsColumns,"flex","addresses","true","")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).clazz),t(e,2,0,s["ɵnov"](e,3).id,s["ɵnov"](e,3).active,s["ɵnov"](e,3).addClass,s["ɵnov"](e,3).role,s["ɵnov"](e,3).ariaLabelledby),t(e,6,0,s["ɵnov"](e,7).id,s["ɵnov"](e,7).active,s["ɵnov"](e,7).addClass,s["ɵnov"](e,7).role,s["ɵnov"](e,7).ariaLabelledby)}))}function Mh(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Ph)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection)}),null)}var qh=n("VTlA");let jh=(()=>{class t{constructor(t,e){this.http=t,this.i18n=e,this.apiPath="api/nfs-ganesha",this.uiApiPath="ui-api/nfs-ganesha",this.nfsAccessType=[{value:"RW",help:this.i18n("Allows all operations")},{value:"RO",help:this.i18n("Allows only operations that do not modify the server")},{value:"MDONLY",help:this.i18n("Does not allow read or write operations, but allows any other operation")},{value:"MDONLY_RO",help:this.i18n("Does not allow read, write, or any operation that modifies file        attributes or directory content")},{value:"NONE",help:this.i18n("Allows no access at all")}],this.nfsFsal=[{value:"CEPH",descr:this.i18n("CephFS")},{value:"RGW",descr:this.i18n("Object Gateway")}],this.nfsSquash=["no_root_squash","root_id_squash","root_squash","all_squash"]}list(){return this.http.get(`${this.apiPath}/export`)}get(t,e){return this.http.get(`${this.apiPath}/export/${t}/${e}`)}create(t){return this.http.post(`${this.apiPath}/export`,t,{observe:"response"})}update(t,e,n){return this.http.put(`${this.apiPath}/export/${t}/${e}`,n,{observe:"response"})}delete(t,e){return this.http.delete(`${this.apiPath}/export/${t}/${e}`,{observe:"response"})}lsDir(t){return this.http.get(`${this.uiApiPath}/lsdir?root_dir=${t}`)}buckets(t){return this.http.get(`${this.uiApiPath}/rgw/buckets?user_id=${t}`)}clients(){return this.http.get(`${this.uiApiPath}/cephx/clients`)}fsals(){return this.http.get(`${this.uiApiPath}/fsals`)}filesystems(){return this.http.get(`${this.uiApiPath}/cephfs/filesystems`)}daemon(){return this.http.get(`${this.apiPath}/daemon`)}start(t){return this.http.put(`${this.apiPath}/service/${t}/start`,null,{observe:"response"})}stop(t){return this.http.put(`${this.apiPath}/service/${t}/stop`,null,{observe:"response"})}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](_a.a))},token:t,providedIn:we.a}),t})();class Fh extends ns.a{constructor(t,e,n,a,r,i,s){super(),this.authStorageService=t,this.i18n=e,this.modalService=n,this.nfsService=a,this.taskListService=r,this.taskWrapper=i,this.actionLabels=s,this.selection=new Ur.a,this.isDefaultCluster=!1,this.builders={"nfs/create":t=>({path:t.path,cluster_id:t.cluster_id,fsal:t.fsal})},this.permission=this.authStorageService.getPermissions().nfs;const o=()=>this.selection.first()&&`${encodeURI(this.selection.first().cluster_id)}/${encodeURI(this.selection.first().export_id)}`;this.tableActions=[{permission:"create",icon:ht.a.add,routerLink:()=>"/nfs/create",canBePrimary:t=>!t.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"update",icon:ht.a.edit,routerLink:()=>`/nfs/edit/${o()}`,name:this.actionLabels.EDIT},{permission:"delete",icon:ht.a.destroy,click:()=>this.deleteNfsModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Path"),prop:"path",flexGrow:2,cellTransformation:Hr.a.executing},{name:this.i18n("Pseudo"),prop:"pseudo",flexGrow:2},{name:this.i18n("Cluster"),prop:"cluster_id",flexGrow:2},{name:this.i18n("Daemons"),prop:"daemons",flexGrow:2},{name:this.i18n("Storage Backend"),prop:"fsal",flexGrow:2,cellTemplate:this.nfsFsal},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:2}],this.nfsService.daemon().subscribe(t=>{const e=J(t).map(t=>t.cluster_id).uniq().value();this.isDefaultCluster=1===e.length&&"_default_"===e[0],this.columns[2].isHidden=this.isDefaultCluster,this.table&&this.table.updateColumns(),this.taskListService.init(()=>this.nfsService.list(),t=>this.prepareResponse(t),t=>this.exports=t,()=>this.onFetchError(),this.taskFilter,this.itemFilter,this.builders)},()=>{this.onFetchError()})}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}prepareResponse(t){let e=[];return t.forEach(t=>{t.id=`${t.cluster_id}:${t.export_id}`,t.state="LOADING",e=e.concat(t)}),e}onFetchError(){this.table.reset(),this.viewCacheStatus={status:th.a.ValueException}}itemFilter(t,e){return t.cluster_id===e.metadata.cluster_id&&t.export_id===e.metadata.export_id}taskFilter(t){return["nfs/create","nfs/delete","nfs/edit"].includes(t.name)}updateSelection(t){this.selection=t}deleteNfsModal(){const t=this.selection.first().cluster_id,e=this.selection.first().export_id;this.modalRef=this.modalService.show(as.a,{initialState:{itemDescription:this.i18n("NFS export"),itemNames:[`${t}:${e}`],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new rs.a("nfs/delete",{cluster_id:t,export_id:e}),call:this.nfsService.delete(t,e)})}})}}var Gh=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Vh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CephFS"]))],null,null)}function zh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Object Gateway"]))],null,null)}function Bh(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Vh)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,zh)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,"CEPH"===e.context.value.name),t(e,3,0,"RGW"===e.context.value.name)}),null)}function Yh(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{nfsState:0}),s["ɵqud"](402653184,2,{nfsFsal:0}),s["ɵqud"](402653184,3,{table:0}),(t()(),s["ɵeld"](3,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"setExpandedRow"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"setExpandedRow"===e&&(a=!1!==r.setExpandedRow(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),Dr.b,Dr.a)),s["ɵdid"](4,2867200,[[3,4],["table",4]],0,Pr.a,[s.NgZone,s.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],hasDetails:[3,"hasDetails"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{updateSelection:"updateSelection",setExpandedRow:"setExpandedRow"}),(t()(),s["ɵeld"](5,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,Mr.b,Mr.a)),s["ɵdid"](7,114688,null,0,qr.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),s["ɵeld"](8,0,null,3,1,"cd-nfs-details",[["cdTableDetail",""]],null,null,null,Mh,Dh)),s["ɵdid"](9,573440,null,0,Lh,[_a.a],{selection:[0,"selection"]},null),(t()(),s["ɵand"](0,[[2,2],["nfsFsal",2]],null,0,null,Bh))],(function(t,e){var n=e.component;t(e,4,0,n.exports,n.columns,"flex",!0,"id","true","single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,9,0,n.expandedRow)}),null)}function Hh(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-nfs-list",[],null,null,null,Yh,Gh)),s["ɵprd"](131584,null,qh.a,qh.a,[Ae.a,pt.a]),s["ɵdid"](2,245760,null,0,Fh,[xt.a,_a.a,Lt.b,jh,qh.a,ds.a,At.b],null,null)],(function(t,e){t(e,2,0)}),null)}var Uh=s["ɵccf"]("cd-nfs-list",Fh,Hh,{},{},[]),Wh=n("hpHm");function Kh(t){return!!t&&(t instanceof wn.a||"function"==typeof t.lift&&"function"==typeof t.subscribe)}var $h=n("7o/Q");function Zh(t,e=Ra.a){return n=>n.lift(new Jh(t,e))}class Jh{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new Qh(t,this.dueTime,this.scheduler))}}class Qh extends $h.a{constructor(t,e,n){super(t),this.dueTime=e,this.scheduler=n,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(Xh,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 Xh(t){t.debouncedNext()}var tg=n("eIep");const eg={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"};class ng{constructor(t,e=t,n=!1){this.item=t,this.value=e,this.header=n}isHeader(){return this.header}toString(){return this.value}}function ag(t){return t?t.replace(/[^A-Za-z0-9\[\] ]/g,(function(t){return eg[t]||t})):""}function rg(t,e=" ",n=""){const a=t.split(new RegExp(`(?:[${n}])([^${n}]+)`+`(?:[${n}])|([^${e}]+)`,"g")),r=[],i=a.length;let s;const o=new RegExp(`[${n}]+`,"g");for(let u=0;u<i;u+=1)s=a[u],s&&s.length&&s!==e&&r.push(s.replace(o,""));return r}function ig(t,e){if(!e||"object"!=typeof t)return t.toString();if(e.endsWith("()"))return t[e.slice(0,e.length-2)]().toString();const n=e.replace(/\[(\w+)\]/g,".$1").replace(/^\./,"").split(".");for(const a of n)a in t&&(t=t[a]);return t?t.toString():""}class sg{constructor(t,e,n,a){this.positionService=t,this.renderer=e,this.element=n,this.changeDetectorRef=a,this.isFocused=!1,this.height=0,this._matches=[],this.isScrolledIntoView=function(t){const e=this.ulElement.nativeElement.scrollTop,n=e+Number(this.ulElement.nativeElement.offsetHeight),a=t.offsetTop;return a+t.offsetHeight<=n&&a>=e},this.positionServiceSubscription=this.positionService.event$.subscribe(()=>{if(this.isAnimated)return this.animationState=this.isTopPosition?"animated-up":"animated-down",void this.changeDetectorRef.detectChanges();this.animationState="unanimated",this.changeDetectorRef.detectChanges()})}get isBs4(){return!Object(Wh.d)()}get active(){return this._active}get matches(){return this._matches}set matches(t){if(this.positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition}},allowedPositions:["top","bottom"]}),this._matches=t,this.needScrollbar=this.typeaheadScrollable&&this.typeaheadOptionsInScrollableView<this.matches.length,this.typeaheadScrollable&&setTimeout(()=>{this.setScrollableMode()}),this.typeaheadIsFirstItemActive&&this._matches.length>0&&(this._active=this._matches[0],this._active.isHeader()&&this.nextActiveMatch()),this._active&&!this.typeaheadIsFirstItemActive){const t=this._matches.find(t=>t.value===this._active.value);if(t)return void this.selectActive(t);this._active=null}}get isTopPosition(){return this.element.nativeElement.classList.contains("top")}get optionsListTemplate(){return this.parent?this.parent.optionsListTemplate:void 0}get isAnimated(){return!!this.parent&&this.parent.isAnimated}get adaptivePosition(){return!!this.parent&&this.parent.adaptivePosition}get typeaheadScrollable(){return!!this.parent&&this.parent.typeaheadScrollable}get typeaheadOptionsInScrollableView(){return this.parent?this.parent.typeaheadOptionsInScrollableView:5}get typeaheadIsFirstItemActive(){return!this.parent||this.parent.typeaheadIsFirstItemActive}get itemTemplate(){return this.parent?this.parent.typeaheadItemTemplate:void 0}selectActiveMatch(t){this._active&&this.parent.typeaheadSelectFirstItem&&this.selectMatch(this._active),!this.parent.typeaheadSelectFirstItem&&t&&this.selectMatch(this._active)}prevActiveMatch(){const t=this.matches.indexOf(this._active);this._active=this.matches[t-1<0?this.matches.length-1:t-1],this._active.isHeader()&&this.prevActiveMatch(),this.typeaheadScrollable&&this.scrollPrevious(t)}nextActiveMatch(){const t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1],this._active.isHeader()&&this.nextActiveMatch(),this.typeaheadScrollable&&this.scrollNext(t)}selectActive(t){this.isFocused=!0,this._active=t}highlight(t,e){let n,a,r=t.value,i=(this.parent&&this.parent.typeaheadLatinize?ag(r):r).toLowerCase();if("object"==typeof e){const t=e.length;for(let s=0;s<t;s+=1)n=i.indexOf(e[s]),a=e[s].length,n>=0&&a>0&&(r=`${r.substring(0,n)}<strong>${r.substring(n,n+a)}</strong>`+`${r.substring(n+a)}`,i=`${i.substring(0,n)}        ${" ".repeat(a)}         `+`${i.substring(n+a)}`)}else e&&(n=i.indexOf(e),a=e.length,n>=0&&a>0&&(r=`${r.substring(0,n)}<strong>${r.substring(n,n+a)}</strong>`+`${r.substring(n+a)}`));return r}focusLost(){this.isFocused=!1}isActive(t){return this._active===t}selectMatch(t,e){return e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),setTimeout(()=>this.parent.typeaheadOnSelect.emit(t),0),!1}setScrollableMode(){if(this.ulElement||(this.ulElement=this.element),this.liElements.first){const t=Wh.b.getStyles(this.ulElement.nativeElement),e=Wh.b.getStyles(this.liElements.first.nativeElement),n=parseFloat((t["padding-bottom"]?t["padding-bottom"]:"").replace("px","")),a=parseFloat((t["padding-top"]?t["padding-top"]:"0").replace("px","")),r=parseFloat((e.height?e.height:"0").replace("px",""));this.guiHeight=`${this.typeaheadOptionsInScrollableView*r+a+n}px`}this.renderer.setStyle(this.element.nativeElement,"visibility","visible")}scrollPrevious(t){if(0!==t){if(this.liElements){const e=this.liElements.toArray()[t-1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop)}}else this.scrollToBottom()}scrollNext(t){if(t+1>this.matches.length-1)this.scrollToTop();else if(this.liElements){const e=this.liElements.toArray()[t+1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop-Number(this.ulElement.nativeElement.offsetHeight)+Number(e.nativeElement.offsetHeight))}}ngOnDestroy(){this.positionServiceSubscription.unsubscribe()}scrollToBottom(){this.ulElement.nativeElement.scrollTop=this.ulElement.nativeElement.scrollHeight}scrollToTop(){this.ulElement.nativeElement.scrollTop=0}}class og{constructor(){this.adaptivePosition=!1,this.isAnimated=!1,this.hideResultsOnBlur=!0,this.selectFirstItem=!0,this.isFirstItemActive=!0,this.minLength=1}}class ug{constructor(t,e,n,a,r,i,o){this.changeDetection=n,this.element=a,this.ngControl=r,this.renderer=i,this.typeaheadMinLength=void 0,this.isAnimated=!1,this.typeaheadAsync=void 0,this.typeaheadLatinize=!0,this.typeaheadSingleWords=!0,this.typeaheadWordDelimiters=" ",this.typeaheadPhraseDelimiters="'\"",this.typeaheadScrollable=!1,this.typeaheadOptionsInScrollableView=5,this.typeaheadSelectFirstItem=!0,this.typeaheadIsFirstItemActive=!0,this.typeaheadLoading=new s.EventEmitter,this.typeaheadNoResults=new s.EventEmitter,this.typeaheadOnSelect=new s.EventEmitter,this.typeaheadOnBlur=new s.EventEmitter,this.dropup=!1,this.isActiveItemChanged=!1,this.isTypeaheadOptionsListActive=!1,this.keyUpEventEmitter=new s.EventEmitter,this.placement="bottom-left",this._subscriptions=[],this._typeahead=t.createLoader(a,o,i).provide({provide:og,useValue:e}),Object.assign(this,{typeaheadHideResultsOnBlur:e.hideResultsOnBlur,typeaheadSelectFirstItem:e.selectFirstItem,typeaheadIsFirstItemActive:e.isFirstItemActive,typeaheadMinLength:e.minLength,adaptivePosition:e.adaptivePosition,isAnimated:e.isAnimated})}ngOnInit(){this.typeaheadOptionsLimit=this.typeaheadOptionsLimit||20,this.typeaheadMinLength=void 0===this.typeaheadMinLength?1:this.typeaheadMinLength,this.typeaheadWaitMs=this.typeaheadWaitMs||0,void 0!==this.typeaheadAsync||Kh(this.typeahead)||(this.typeaheadAsync=!1),Kh(this.typeahead)&&(this.typeaheadAsync=!0),this.typeaheadAsync?this.asyncActions():this.syncActions()}onInput(t){const e=void 0!==t.target.value?t.target.value:void 0!==t.target.textContent?t.target.textContent:t.target.innerText;null!=e&&e.trim().length>=this.typeaheadMinLength?(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(t.target.value)):(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!1),this.hide())}onChange(t){if(this._container){if(27===t.keyCode||"Escape"===t.key)return void this.hide();if(38===t.keyCode||"ArrowUp"===t.key)return this.isActiveItemChanged=!0,void this._container.prevActiveMatch();if(40===t.keyCode||"ArrowDown"===t.key)return this.isActiveItemChanged=!0,void this._container.nextActiveMatch();if(13===t.keyCode||"Enter"===t.key)return void this._container.selectActiveMatch()}}onFocus(){0===this.typeaheadMinLength&&(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(this.element.nativeElement.value||""))}onBlur(){this._container&&!this._container.isFocused&&this.typeaheadOnBlur.emit(this._container.active)}onKeydown(t){if(this._container&&(9===t.keyCode||"Tab"===t.key||13===t.keyCode||"Enter"===t.key)){if(t.preventDefault(),this.typeaheadSelectFirstItem)return void this._container.selectActiveMatch();this.typeaheadSelectFirstItem||(this._container.selectActiveMatch(this.isActiveItemChanged),this.isActiveItemChanged=!1,this.hide())}}changeModel(t){const e=t.value;this.ngControl.viewToModelUpdate(e),this.ngControl.control.setValue(e),this.changeDetection.markForCheck(),this.hide()}get matches(){return this._matches}show(){this._typeahead.attach(sg).to(this.container).position({attachment:`${this.dropup?"top":"bottom"} start`}).show({typeaheadRef:this,placement:this.placement,animation:!1,dropup:this.dropup}),this._outsideClickListener=this.renderer.listen("document","click",t=>{0===this.typeaheadMinLength&&this.element.nativeElement.contains(t.target)||this.typeaheadHideResultsOnBlur&&!this.element.nativeElement.contains(t.target)&&this.onOutsideClick()}),this._container=this._typeahead.instance,this._container.parent=this;const t=(this.typeaheadLatinize?ag(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this._container.query=this.typeaheadSingleWords?rg(t,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):t,this._container.matches=this._matches,this.element.nativeElement.focus()}hide(){this._typeahead.isShown&&(this._typeahead.hide(),this._outsideClickListener(),this._container=null)}onOutsideClick(){this._container&&!this._container.isFocused&&this.hide()}ngOnDestroy(){for(const t of this._subscriptions)t.unsubscribe();this._typeahead.dispose()}asyncActions(){this._subscriptions.push(this.keyUpEventEmitter.pipe(Zh(this.typeaheadWaitMs),Object(tg.a)(t=>this.typeahead.pipe(Object(Oe.a)(e=>{const n=this.normalizeQuery(t);return e.filter(t=>t&&this.testMatch(this.normalizeOption(t),n))})))).subscribe(t=>{this.finalizeAsyncCall(t)}))}syncActions(){this._subscriptions.push(this.keyUpEventEmitter.pipe(Zh(this.typeaheadWaitMs),Object(Nn.a)(t=>{const e=this.normalizeQuery(t);return Object(Sn.a)(this.typeahead).pipe(Object(In.a)(t=>t&&this.testMatch(this.normalizeOption(t),e)),Dn())})).subscribe(t=>{this.finalizeAsyncCall(t)}))}normalizeOption(t){const e=ig(t,this.typeaheadOptionField);return(this.typeaheadLatinize?ag(e):e).toLowerCase()}normalizeQuery(t){let e=(this.typeaheadLatinize?ag(t):t).toString().toLowerCase();return e=this.typeaheadSingleWords?rg(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,e}testMatch(t,e){let n;if("object"==typeof e){n=e.length;for(let a=0;a<n;a+=1)if(e[a].length>0&&t.indexOf(e[a])<0)return!1;return!0}return t.indexOf(e)>=0}finalizeAsyncCall(t){if(this.prepareMatches(t||[]),this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!this.hasMatches()),this.hasMatches())if(this._container){const t=((this.typeaheadLatinize?ag(this.ngControl.control.value):this.ngControl.control.value)||"").toString().toLowerCase();this._container.query=this.typeaheadSingleWords?rg(t,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):t,this._container.matches=this._matches}else this.show();else this.hide()}prepareMatches(t){const e=t.slice(0,this.typeaheadOptionsLimit);if(this.typeaheadGroupField){let t=[];e.map(t=>ig(t,this.typeaheadGroupField)).filter((t,e,n)=>n.indexOf(t)===e).forEach(n=>{t.push(new ng(n,n,!0)),t=t.concat(e.filter(t=>ig(t,this.typeaheadGroupField)===n).map(t=>new ng(t,ig(t,this.typeaheadOptionField))))}),this._matches=t}else this._matches=e.map(t=>new ng(t,ig(t,this.typeaheadOptionField)))}hasMatches(){return this._matches.length>0}}class dg{static forRoot(){return{ngModule:dg,providers:[W.a,na.a,og]}}}var lg=n("WiuZ"),cg=n("wnGv"),fg=n("TYzs");class hg{constructor(t,e){this.nfsService=t,this.i18n=e,this.nfsSquash=this.nfsService.nfsSquash,this.nfsAccessType=this.nfsService.nfsAccessType,this.icons=ht.a}getNoAccessTypeDescr(){return this.form.getValue("access_type")?`${this.form.getValue("access_type")} ${this.i18n("(inherited from global config)")}`:this.i18n("-- Select the access type --")}getAccessTypeHelp(t){const e=this.nfsAccessType.find(e=>this.getValue(t,"access_type")===e.value);return J.isObjectLike(e)?e.help:""}getNoSquashDescr(){return this.form.getValue("squash")?`${this.form.getValue("squash")} (${this.i18n("inherited from global config")})`:this.i18n("-- Select what kind of user id squashing is performed --")}addClient(){const t=this.form.get("clients"),e="(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?)",n=new Rs.a({addresses:new $.i("",{validators:[$.B.required,$.B.pattern(`${e}([ ,]{1,2}${e})*`)]}),access_type:new $.i(""),squash:new $.i("")});return t.push(n),n}removeClient(t){this.form.get("clients").removeAt(t)}showError(t,e,n,a){return this.form.controls.clients.controls[t].showError(e,n,a)}getValue(t,e){return this.form.get("clients").at(t).getValue(e)}resolveModel(t){J.forEach(t,t=>{this.addClient().patchValue(t)})}trackByFn(t){return t}}var gg=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function pg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"span",[["class","no-border text-muted"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Any client can access"]))],null,null)}function bg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function mg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Must contain one or more comma-separated values"])),(t()(),s["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["For example:"])),(t()(),s["ɵted"](-1,null,[" 192.168.0.10, 192.168.1.0/8 "]))],null,null)}function yg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function vg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.getAccessTypeHelp(e.parent.context.index))}))}function xg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function _g(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,71,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,70,"div",[["class","card"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["ɵdid"](2,212992,null,0,$.m,[[3,$.d],[8,null],[8,null]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.d,null,[$.m]),s["ɵdid"](4,16384,null,0,$.s,[[4,$.d]],null,null),(t()(),s["ɵeld"](5,0,null,null,4,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](6,null,[" "," "])),s["ɵppd"](7,1),(t()(),s["ɵeld"](8,0,null,null,1,"span",[["class","float-right clickable"],["tooltip","Remove"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeClient(t.context.index)&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["×"])),(t()(),s["ɵeld"](10,0,null,null,61,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](12,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](15,0,null,0,1,"label",[["class","cd-col-form-label"],["for","addresses"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Addresses"])),(t()(),s["ɵeld"](17,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,6,"input",[["class","form-control"],["formControlName","addresses"],["id","addresses"],["name","addresses"],["placeholder","192.168.0.10, 192.168.1.0/8"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,19)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](19,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](21,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](23,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](24,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](25,0,null,null,4,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,bg)),s["ɵdid"](27,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mg)),s["ɵdid"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](30,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](31,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](34,0,null,0,1,"label",[["class","cd-col-form-label"],["for","access_type"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Access Type"])),(t()(),s["ɵeld"](36,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](37,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,38).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,38).onTouched()&&a),a}),null,null)),s["ɵdid"](38,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](40,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](42,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](43,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](44,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](45,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](46,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](47,null,["",""])),(t()(),s["ɵand"](16777216,null,null,1,null,yg)),s["ɵdid"](49,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vg)),s["ɵdid"](51,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](52,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](53,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,7,{FormControlNames:1}),s["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),s["ɵeld"](56,0,null,0,1,"label",[["class","cd-col-form-label"],["for","squash"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Squash"])),(t()(),s["ɵeld"](58,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](59,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,60).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,60).onTouched()&&a),a}),null,null)),s["ɵdid"](60,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](62,671744,[[7,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](64,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](65,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](66,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](67,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](68,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](69,null,["",""])),(t()(),s["ɵand"](16777216,null,null,1,null,xg)),s["ɵdid"](71,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,2,0,e.context.index),t(e,12,0),t(e,21,0,"addresses"),t(e,24,0,"addresses"),t(e,27,0,n.showError(e.context.index,"addresses",s["ɵnov"](e.parent,8),"required")),t(e,29,0,n.showError(e.context.index,"addresses",s["ɵnov"](e.parent,8),"pattern")),t(e,31,0),t(e,40,0,"access_type"),t(e,43,0,"access_type"),t(e,45,0,""),t(e,46,0,""),t(e,49,0,n.nfsAccessType),t(e,51,0,n.getValue(e.context.index,"access_type")),t(e,53,0),t(e,62,0,"squash"),t(e,65,0,"squash"),t(e,67,0,""),t(e,68,0,""),t(e,71,0,n.nfsSquash)}),(function(t,e){var n=e.component;t(e,1,0,s["ɵnov"](e,4).ngClassUntouched,s["ɵnov"](e,4).ngClassTouched,s["ɵnov"](e,4).ngClassPristine,s["ɵnov"](e,4).ngClassDirty,s["ɵnov"](e,4).ngClassValid,s["ɵnov"](e,4).ngClassInvalid,s["ɵnov"](e,4).ngClassPending);var a=s["ɵunv"](e,6,0,t(e,7,0,s["ɵnov"](e.parent,0),e.context.index+1));t(e,6,0,a),t(e,11,0,s["ɵnov"](e,12).hasErrors,s["ɵnov"](e,12).hasSuccess),t(e,18,0,s["ɵnov"](e,23).ngClassUntouched,s["ɵnov"](e,23).ngClassTouched,s["ɵnov"](e,23).ngClassPristine,s["ɵnov"](e,23).ngClassDirty,s["ɵnov"](e,23).ngClassValid,s["ɵnov"](e,23).ngClassInvalid,s["ɵnov"](e,23).ngClassPending,s["ɵnov"](e,24).validClass,s["ɵnov"](e,24).invalidClass),t(e,30,0,s["ɵnov"](e,31).hasErrors,s["ɵnov"](e,31).hasSuccess),t(e,37,0,s["ɵnov"](e,42).ngClassUntouched,s["ɵnov"](e,42).ngClassTouched,s["ɵnov"](e,42).ngClassPristine,s["ɵnov"](e,42).ngClassDirty,s["ɵnov"](e,42).ngClassValid,s["ɵnov"](e,42).ngClassInvalid,s["ɵnov"](e,42).ngClassPending,s["ɵnov"](e,43).validClass,s["ɵnov"](e,43).invalidClass),t(e,47,0,n.getNoAccessTypeDescr()),t(e,52,0,s["ɵnov"](e,53).hasErrors,s["ɵnov"](e,53).hasSuccess),t(e,59,0,s["ɵnov"](e,64).ngClassUntouched,s["ɵnov"](e,64).ngClassTouched,s["ɵnov"](e,64).ngClassPristine,s["ɵnov"](e,64).ngClassDirty,s["ɵnov"](e,64).ngClassValid,s["ɵnov"](e,64).ngClassInvalid,s["ɵnov"](e,64).ngClassPending,s["ɵnov"](e,65).validClass,s["ɵnov"](e,65).invalidClass),t(e,69,0,n.getNoSquashDescr())}))}function Tg(t){return s["ɵvid"](0,[s["ɵpid"](0,fg.a,[]),(t()(),s["ɵeld"](1,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](2,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Clients"])),(t()(),s["ɵeld"](7,0,null,0,22,"div",[["class","cd-col-form-input"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,8).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,11).onSubmit()&&a),a}),null,null)),s["ɵdid"](8,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](10,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](11,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,pg)),s["ɵdid"](13,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](14,0,null,null,5,null,null,null,null,null,null,null)),s["ɵdid"](15,212992,null,0,$.g,[[3,$.d],[8,null],[8,null]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.d,null,[$.g]),s["ɵdid"](17,16384,null,0,$.s,[[4,$.d]],null,null),(t()(),s["ɵand"](16777216,null,null,1,null,_g)),s["ɵdid"](19,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),s["ɵeld"](20,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](21,0,null,null,8,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](22,0,null,null,7,"div",[["class","float-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](23,0,null,null,6,"button",[["class","btn btn-light "]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addClient()&&a),a}),null,null)),(t()(),s["ɵeld"](24,0,null,null,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](26,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](27,1),(t()(),s["ɵeld"](28,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Add clients"]))],(function(t,e){var n=e.component;t(e,2,0),t(e,8,0,n.form),t(e,11,0,n.form),t(e,13,0,0===n.form.get("clients").value.length),t(e,15,0,"clients"),t(e,19,0,n.form.get("clients").value,n.trackByFn);var a=t(e,27,0,n.icons.add);t(e,26,0,a)}),(function(t,e){t(e,1,0,s["ɵnov"](e,2).hasErrors,s["ɵnov"](e,2).hasSuccess),t(e,7,0,s["ɵnov"](e,10).ngClassUntouched,s["ɵnov"](e,10).ngClassTouched,s["ɵnov"](e,10).ngClassPristine,s["ɵnov"](e,10).ngClassDirty,s["ɵnov"](e,10).ngClassValid,s["ɵnov"](e,10).ngClassInvalid,s["ɵnov"](e,10).ngClassPending)}))}var Og=n("P8lu"),wg=n("DNAf"),Sg=n("a96k");class Ig{constructor(t,e,n,a,r,i,s,o,u,d,l,c){this.authStorageService=t,this.nfsService=e,this.route=n,this.router=a,this.rgwUserService=r,this.formBuilder=i,this.summaryservice=s,this.cephReleaseNamePipe=o,this.taskWrapper=u,this.cdRef=d,this.i18n=l,this.actionLabels=c,this.isEdit=!1,this.cluster_id=null,this.export_id=null,this.isNewDirectory=!1,this.isNewBucket=!1,this.isDefaultCluster=!1,this.allClusters=null,this.allDaemons={},this.icons=ht.a,this.allFsals=[],this.allRgwUsers=[],this.allCephxClients=null,this.allFsNames=null,this.defaultAccessType={RGW:"RO"},this.nfsAccessType=this.nfsService.nfsAccessType,this.nfsSquash=this.nfsService.nfsSquash,this.daemonsSelections=[],this.daemonsMessages=new wg.a({noOptions:this.i18n("There are no daemons available.")},this.i18n),this.pathDataSource=wn.a.create(t=>{t.next(this.nfsForm.getValue("path"))}).pipe(Object(Nn.a)(t=>this.getPathTypeahead(t)),Object(Oe.a)(t=>t.paths)),this.bucketDataSource=wn.a.create(t=>{t.next(this.nfsForm.getValue("path"))}).pipe(Object(Nn.a)(t=>this.getBucketTypeahead(t))),this.permission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("NFS export"),this.createForm()}ngOnInit(){const t=[this.nfsService.daemon(),this.nfsService.fsals(),this.nfsService.clients(),this.nfsService.filesystems()];this.router.url.startsWith("/nfs/edit")&&(this.isEdit=!0),this.isEdit?(this.action=this.actionLabels.EDIT,this.route.params.subscribe(e=>{this.cluster_id=decodeURIComponent(e.cluster_id),this.export_id=decodeURIComponent(e.export_id),t.push(this.nfsService.get(this.cluster_id,this.export_id)),this.getData(t)})):(this.action=this.actionLabels.CREATE,this.getData(t));const e=this.summaryservice.getCurrentSummary(),n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/radosgw/nfs/`}getData(t){Object(Ro.a)(t).subscribe(t=>{this.resolveDaemons(t[0]),this.resolvefsals(t[1]),this.resolveClients(t[2]),this.resolveFilesystems(t[3]),t[4]&&this.resolveModel(t[4])})}createForm(){this.nfsForm=new Rs.a({cluster_id:new $.i("",{validators:[$.B.required]}),daemons:new $.i([]),fsal:new Rs.a({name:new $.i("",{validators:[$.B.required]}),user_id:new $.i("",{validators:[As.a.requiredIf({name:"CEPH"})]}),fs_name:new $.i("",{validators:[As.a.requiredIf({name:"CEPH"})]}),rgw_user_id:new $.i("",{validators:[As.a.requiredIf({name:"RGW"})]})}),path:new $.i(""),protocolNfsv3:new $.i(!0,{validators:[As.a.requiredIf({protocolNfsv4:!1},t=>!t)]}),protocolNfsv4:new $.i(!0,{validators:[As.a.requiredIf({protocolNfsv3:!1},t=>!t)]}),tag:new $.i(""),pseudo:new $.i("",{validators:[As.a.requiredIf({protocolNfsv4:!0}),$.B.pattern("^/[^><|&()]*$")]}),access_type:new $.i("RW",{validators:[$.B.required]}),squash:new $.i("",{validators:[$.B.required]}),transportUDP:new $.i(!0,{validators:[As.a.requiredIf({transportTCP:!1},t=>!t)]}),transportTCP:new $.i(!0,{validators:[As.a.requiredIf({transportUDP:!1},t=>!t)]}),clients:this.formBuilder.array([]),security_label:new $.i(!1),sec_label_xattr:new $.i("security.selinux",As.a.requiredIf({security_label:!0,"fsal.name":"CEPH"}))})}resolveModel(t){"CEPH"===t.fsal.name&&(t.sec_label_xattr=t.fsal.sec_label_xattr),this.daemonsSelections=J.map(this.allDaemons[t.cluster_id],e=>new Sg.a(-1!==t.daemons.indexOf(e),e,"")),this.daemonsSelections=[...this.daemonsSelections],t.protocolNfsv3=-1!==t.protocols.indexOf(3),t.protocolNfsv4=-1!==t.protocols.indexOf(4),delete t.protocols,t.transportTCP=-1!==t.transports.indexOf("TCP"),t.transportUDP=-1!==t.transports.indexOf("UDP"),delete t.transports,t.clients.forEach(t=>{let e="";t.addresses.forEach(t=>{e+=t+", "}),e.length>=2&&(e=e.substring(0,e.length-2)),t.addresses=e}),this.nfsForm.patchValue(t),this.setPathValidation(),this.nfsClients.resolveModel(t.clients)}resolveDaemons(t){t=J.sortBy(t,["daemon_id"]),this.allClusters=J(t).map(t=>t.cluster_id).sortedUniq().value(),J.forEach(this.allClusters,t=>{this.allDaemons[t]=[]}),J.forEach(t,t=>{this.allDaemons[t.cluster_id].push(t.daemon_id)});const e=J.isArray(this.allClusters)&&1===this.allClusters.length;this.isDefaultCluster=e&&"_default_"===this.allClusters[0],e&&(this.nfsForm.patchValue({cluster_id:this.allClusters[0]}),this.onClusterChange())}resolvefsals(t){t.forEach(t=>{const e=this.nfsService.nfsFsal.find(e=>t===e.value);J.isObjectLike(e)&&(this.allFsals.push(e),"RGW"===e.value&&this.rgwUserService.list().subscribe(t=>{t.forEach(t=>{0===t.suspended&&t.keys.length>0&&this.allRgwUsers.push(t.user_id)})}))}),1===this.allFsals.length&&J.isUndefined(this.nfsForm.getValue("fsal"))&&this.nfsForm.patchValue({fsal:this.allFsals[0]})}resolveClients(t){this.allCephxClients=t}resolveFilesystems(t){this.allFsNames=t,1===t.length&&this.nfsForm.patchValue({fsal:{fs_name:t[0].name}})}fsalChangeHandler(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo(),access_type:this._updateAccessType()}),this.setPathValidation(),this.cdRef.detectChanges()}accessTypeChangeHandler(){const t=this.nfsForm.getValue("name"),e=this.nfsForm.getValue("access_type");this.defaultAccessType[t]=e}setPathValidation(){"RGW"===this.nfsForm.getValue("name")?this.nfsForm.get("path").setValidators([$.B.required,$.B.pattern("^(/|[^/><|&()#?]+)$")]):this.nfsForm.get("path").setValidators([$.B.required,$.B.pattern("^/[^><|&()?]*$")])}rgwUserIdChangeHandler(){this.nfsForm.patchValue({pseudo:this._generatePseudo()})}getAccessTypeHelp(t){const e=this.nfsAccessType.find(e=>{if(t===e.value)return e});return J.isObjectLike(e)?e.help:""}getId(){return J.isString(this.nfsForm.getValue("cluster_id"))&&J.isString(this.nfsForm.getValue("path"))?this.nfsForm.getValue("cluster_id")+":"+this.nfsForm.getValue("path"):""}getPathTypeahead(t){return J.isString(t)&&"/"!==t?this.nfsService.lsDir(t):Object(On.a)([])}pathChangeHandler(){this.nfsForm.patchValue({pseudo:this._generatePseudo()});const t=this.nfsForm.getValue("path");this.getPathTypeahead(t).subscribe(e=>{this.isNewDirectory="/"!==t&&-1===e.paths.indexOf(t)})}bucketChangeHandler(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo()});const t=this.nfsForm.getValue("path");this.getBucketTypeahead(t).subscribe(e=>{this.isNewBucket=""!==t&&-1===e.indexOf(t)})}getBucketTypeahead(t){const e=this.nfsForm.getValue("rgw_user_id");return J.isString(e)&&J.isString(t)&&"/"!==t&&""!==t?this.nfsService.buckets(e):Object(On.a)([])}_generateTag(){let t=this.nfsForm.getValue("tag");return this.nfsForm.get("tag").dirty||(t=void 0,"RGW"===this.nfsForm.getValue("fsal")&&(t=this.nfsForm.getValue("path"))),t}_generatePseudo(){let t=this.nfsForm.getValue("pseudo");return this.nfsForm.get("pseudo")&&!this.nfsForm.get("pseudo").dirty&&(t=void 0,"CEPH"===this.nfsForm.getValue("fsal")?(t="/cephfs",J.isString(this.nfsForm.getValue("path"))&&(t+=this.nfsForm.getValue("path"))):"RGW"===this.nfsForm.getValue("fsal")&&J.isString(this.nfsForm.getValue("rgw_user_id"))&&(t="/"+this.nfsForm.getValue("rgw_user_id"),J.isString(this.nfsForm.getValue("path"))&&(t+="/"+this.nfsForm.getValue("path")))),t}_updateAccessType(){const t=this.nfsForm.getValue("name");let e=this.defaultAccessType[t];return e||(e="RW"),e}onClusterChange(){const t=this.nfsForm.getValue("cluster_id");this.daemonsSelections=J.map(this.allDaemons[t],t=>new Sg.a(!1,t,"")),this.daemonsSelections=[...this.daemonsSelections],this.nfsForm.patchValue({daemons:[]})}removeDaemon(t,e){this.daemonsSelections.forEach(t=>{t.name===e&&(t.selected=!1)});const n=this.nfsForm.get("daemons");return n.value.splice(t,1),n.setValue(n.value),!1}onDaemonSelection(){this.nfsForm.get("daemons").setValue(this.nfsForm.getValue("daemons"))}submitAction(){let t;const e=this._buildRequest();t=this.taskWrapper.wrapTaskAroundCall(this.isEdit?{task:new rs.a("nfs/edit",{cluster_id:this.cluster_id,export_id:this.export_id}),call:this.nfsService.update(this.cluster_id,this.export_id,e)}:{task:new rs.a("nfs/create",{path:e.path,fsal:e.fsal,cluster_id:e.cluster_id}),call:this.nfsService.create(e)}),t.subscribe(void 0,()=>this.nfsForm.setErrors({cdSubmitButton:!0}),()=>this.router.navigate(["/nfs"]))}_buildRequest(){const t=J.cloneDeep(this.nfsForm.value);return(J.isUndefined(t.tag)||""===t.tag)&&(t.tag=null),this.isEdit&&(t.export_id=this.export_id),"CEPH"===t.fsal.name?delete t.fsal.rgw_user_id:(delete t.fsal.fs_name,delete t.fsal.user_id),t.protocols=[],t.protocolNfsv3?t.protocols.push(3):t.tag=null,delete t.protocolNfsv3,t.protocolNfsv4?t.protocols.push(4):t.pseudo=null,delete t.protocolNfsv4,t.transports=[],t.transportTCP&&t.transports.push("TCP"),delete t.transportTCP,t.transportUDP&&t.transports.push("UDP"),delete t.transportUDP,t.clients.forEach(e=>{e.addresses=J.isString(e.addresses)?J(e.addresses).split(/[ ,]+/).uniq().filter(t=>""!==t).value():[],e.squash||(e.squash=t.squash),e.access_type||(e.access_type=t.access_type)}),t.fsal.sec_label_xattr=!1===t.security_label||"RGW"===t.fsal.name?null:t.sec_label_xattr,delete t.sec_label_xattr,t}}var Ng=s["ɵcrt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function Cg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Rg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No cluster available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Ag(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the cluster --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function kg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Eg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Lg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,2,{FormControlNames:1}),s["ɵqud"](603979776,3,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","cluster_id"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cluster"])),(t()(),s["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","cluster_id"],["id","cluster_id"],["name","cluster_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.onClusterChange()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,[[2,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Cg)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Rg)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ag)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,kg)),s["ɵdid"](21,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Eg)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"cluster_id"),t(e,13,0,"cluster_id"),t(e,15,0,null===n.allClusters),t(e,17,0,null!==n.allClusters&&0===n.allClusters.length),t(e,19,0,null!==n.allClusters&&n.allClusters.length>0),t(e,21,0,n.allClusters),t(e,23,0,n.nfsForm.showError("cluster_id",s["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Dg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeDaemon(t.context.index,t.context.$implicit)&&a),a}),null,null)),(t()(),s["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](7,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](8,1)],(function(t,e){var n=t(e,8,0,e.component.icons.destroy);t(e,7,0,n)}),(function(t,e){t(e,2,0,e.context.$implicit)}))}function Pg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Mg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No data pools available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function qg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the storage backend --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function jg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.descr)}))}function Fg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Gg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Vg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No users available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function zg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the object gateway user --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Bg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Yg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Hg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,8,{FormControlNames:1}),s["ɵqud"](603979776,9,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","rgw_user_id"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Object Gateway User"])),(t()(),s["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","rgw_user_id"],["id","rgw_user_id"],["name","rgw_user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,[[8,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Gg)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vg)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,zg)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Bg)),s["ɵdid"](21,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Yg)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"rgw_user_id"),t(e,13,0,"rgw_user_id"),t(e,15,0,null===n.allRgwUsers),t(e,17,0,null!==n.allRgwUsers&&0===n.allRgwUsers.length),t(e,19,0,null!==n.allRgwUsers&&n.allRgwUsers.length>0),t(e,21,0,n.allRgwUsers),t(e,23,0,n.nfsForm.showError("rgw_user_id",s["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Ug(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Wg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No clients available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Kg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the cephx client --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function $g(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Zg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Jg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,10,{FormControlNames:1}),s["ɵqud"](603979776,11,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_id"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CephFS User ID"])),(t()(),s["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","user_id"],["id","user_id"],["name","user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,[[10,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ug)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Wg)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Kg)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,$g)),s["ɵdid"](21,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Zg)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"user_id"),t(e,13,0,"user_id"),t(e,15,0,null===n.allCephxClients),t(e,17,0,null!==n.allCephxClients&&0===n.allCephxClients.length),t(e,19,0,null!==n.allCephxClients&&n.allCephxClients.length>0),t(e,21,0,n.allCephxClients),t(e,23,0,n.nfsForm.showError("user_id",s["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function Qg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Xg(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No CephFS filesystem available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function tp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the CephFS filesystem --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function ep(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function np(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function ap(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,12,{FormControlNames:1}),s["ɵqud"](603979776,13,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","fs_name"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CephFS Name"])),(t()(),s["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","fs_name"],["id","fs_name"],["name","fs_name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](10,671744,[[12,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Qg)),s["ɵdid"](15,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Xg)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,tp)),s["ɵdid"](19,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ep)),s["ɵdid"](21,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,np)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"fs_name"),t(e,13,0,"fs_name"),t(e,15,0,null===n.allFsNames),t(e,17,0,null!==n.allFsNames&&0===n.allFsNames.length),t(e,19,0,null!==n.allFsNames&&n.allFsNames.length>0),t(e,21,0,n.allFsNames),t(e,23,0,n.nfsForm.showError("fs_name",s["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,13).validClass,s["ɵnov"](e,13).invalidClass)}))}function rp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","sec_label_xattr"],["id","sec_label_xattr"],["name","sec_label_xattr"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,1)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](1,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](3,671744,[[14,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](5,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](6,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,"sec_label_xattr"),t(e,6,0,"sec_label_xattr")}),(function(t,e){t(e,0,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending,s["ɵnov"](e,6).validClass,s["ɵnov"](e,6).invalidClass)}))}function ip(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function sp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,14,{FormControlNames:1}),s["ɵqud"](603979776,15,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","security_label"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](6,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),s["ɵpod"](7,{required:0}),(t()(),s["ɵted"](-1,null,["Security Label"])),(t()(),s["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","security_label"],["id","security_label"],["name","security_label"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,12).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,12).onTouched()&&a),a}),null,null)),s["ɵdid"](12,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](14,671744,[[14,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](16,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](17,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](18,0,null,null,1,"label",[["class","custom-control-label"],["for","security_label"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Enable security label"])),(t()(),s["ɵeld"](20,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,rp)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ip)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0);var a=t(e,7,0,n.nfsForm.getValue("security_label"));t(e,6,0,"cd-col-form-label",a),t(e,14,0,"security_label"),t(e,17,0,"security_label"),t(e,22,0,n.nfsForm.getValue("security_label")),t(e,24,0,n.nfsForm.showError("sec_label_xattr",s["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,11,0,s["ɵnov"](e,16).ngClassUntouched,s["ɵnov"](e,16).ngClassTouched,s["ɵnov"](e,16).ngClassPristine,s["ɵnov"](e,16).ngClassDirty,s["ɵnov"](e,16).ngClassValid,s["ɵnov"](e,16).ngClassInvalid,s["ɵnov"](e,16).ngClassPending,s["ɵnov"](e,17).validClass,s["ɵnov"](e,17).invalidClass)}))}function op(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function up(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Path need to start with a '/' and can be followed by a word"]))],null,null)}function dp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["New directory will be created"]))],null,null)}function lp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,16,{FormControlNames:1}),s["ɵqud"](603979776,17,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","path"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CephFS Path"])),(t()(),s["ɵeld"](6,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,13).onInput(n)&&a),"keyup"===e&&(a=!1!==s["ɵnov"](t,13).onChange(n)&&a),"click"===e&&(a=!1!==s["ɵnov"](t,13).onFocus()&&a),"focus"===e&&(a=!1!==s["ɵnov"](t,13).onFocus()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,13).onBlur()&&a),"keydown"===e&&(a=!1!==s["ɵnov"](t,13).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.pathChangeHandler()&&a),"blur"===e&&(a=!1!==r.pathChangeHandler()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[16,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,212992,null,0,ug,[W.a,og,s.ChangeDetectorRef,s.ElementRef,$.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),s["ɵdid"](14,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,op)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,up)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,dp)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"path"),t(e,13,0,n.pathDataSource),t(e,14,0,"path"),t(e,16,0,n.nfsForm.showError("path",s["ɵnov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",s["ɵnov"](e.parent,6),"pattern")),t(e,20,0,n.isNewDirectory&&!n.nfsForm.showError("path",s["ɵnov"](e.parent,6)))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,14).validClass,s["ɵnov"](e,14).invalidClass)}))}function cp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function fp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Path can only be a single '/' or a word"]))],null,null)}function hp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["New bucket will be created"]))],null,null)}function gp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,18,{FormControlNames:1}),s["ɵqud"](603979776,19,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","path"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Path"])),(t()(),s["ɵeld"](6,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](7,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,13).onInput(n)&&a),"keyup"===e&&(a=!1!==s["ɵnov"](t,13).onChange(n)&&a),"click"===e&&(a=!1!==s["ɵnov"](t,13).onFocus()&&a),"focus"===e&&(a=!1!==s["ɵnov"](t,13).onFocus()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,13).onBlur()&&a),"keydown"===e&&(a=!1!==s["ɵnov"](t,13).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.bucketChangeHandler()&&a),"blur"===e&&(a=!1!==r.bucketChangeHandler()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](10,671744,[[18,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](12,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](13,212992,null,0,ug,[W.a,og,s.ChangeDetectorRef,s.ElementRef,$.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),s["ɵdid"](14,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,cp)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,fp)),s["ɵdid"](18,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,hp)),s["ɵdid"](20,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"path"),t(e,13,0,n.bucketDataSource),t(e,14,0,"path"),t(e,16,0,n.nfsForm.showError("path",s["ɵnov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",s["ɵnov"](e.parent,6),"pattern")),t(e,20,0,n.isNewBucket&&!n.nfsForm.showError("path",s["ɵnov"](e.parent,6)))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,7,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending,s["ɵnov"](e,14).validClass,s["ɵnov"](e,14).invalidClass)}))}function pp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function bp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,22,{FormControlNames:1}),s["ɵqud"](603979776,23,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,13,"label",[["class","cd-col-form-label"],["for","tag"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFS Tag"])),(t()(),s["ɵeld"](7,0,null,null,10,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](8,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](9,0,null,0,4,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Alternative access for "])),(t()(),s["ɵeld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFS v3"])),(t()(),s["ɵted"](-1,null,[" mounts (it must not have a leading /)."])),(t()(),s["ɵeld"](14,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz)."])),(t()(),s["ɵeld"](16,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["By using different Tag options, the same Path may be exported multiple times."])),(t()(),s["ɵeld"](18,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,6,"input",[["class","form-control"],["formControlName","tag"],["id","tag"],["name","tag"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,20)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,20).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,20)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,20)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](20,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](22,671744,[[22,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](24,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](25,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,22,0,"tag"),t(e,25,0,"tag")}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,19,0,s["ɵnov"](e,24).ngClassUntouched,s["ɵnov"](e,24).ngClassTouched,s["ɵnov"](e,24).ngClassPristine,s["ɵnov"](e,24).ngClassDirty,s["ɵnov"](e,24).ngClassValid,s["ɵnov"](e,24).ngClassInvalid,s["ɵnov"](e,24).ngClassPending,s["ɵnov"](e,25).validClass,s["ɵnov"](e,25).invalidClass)}))}function mp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function yp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Pseudo needs to start with a '/' and can't contain any of the following: >, <, |, &, ( or )."]))],null,null)}function vp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,24,{FormControlNames:1}),s["ɵqud"](603979776,25,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,14,"label",[["class","cd-col-form-label"],["for","pseudo"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Pseudo"])),(t()(),s["ɵeld"](7,0,null,null,11,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](8,49152,null,0,eu.a,[],null,null),(t()(),s["ɵeld"](9,0,null,0,7,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The position that this "])),(t()(),s["ɵeld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFS v4"])),(t()(),s["ɵted"](-1,null,[" export occupies in the "])),(t()(),s["ɵeld"](14,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Pseudo FS"])),(t()(),s["ɵted"](-1,null,[" (it must be unique)."])),(t()(),s["ɵeld"](17,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["By using different Pseudo options, the same Path may be exported multiple times."])),(t()(),s["ɵeld"](19,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](20,0,null,null,6,"input",[["class","form-control"],["formControlName","pseudo"],["id","pseudo"],["name","pseudo"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](21,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](23,671744,[[24,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](25,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](26,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,mp)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,yp)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,23,0,"pseudo"),t(e,26,0,"pseudo"),t(e,28,0,n.nfsForm.showError("pseudo",s["ɵnov"](e.parent,6),"required")),t(e,30,0,n.nfsForm.showError("pseudo",s["ɵnov"](e.parent,6),"pattern"))}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,20,0,s["ɵnov"](e,25).ngClassUntouched,s["ɵnov"](e,25).ngClassTouched,s["ɵnov"](e,25).ngClassPristine,s["ɵnov"](e,25).ngClassDirty,s["ɵnov"](e,25).ngClassValid,s["ɵnov"](e,25).ngClassInvalid,s["ɵnov"](e,25).ngClassPending,s["ɵnov"](e,26).validClass,s["ɵnov"](e,26).invalidClass)}))}function xp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function _p(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No access type available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Tp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- Select the access type --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Op(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function wp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,1,0,n.getAccessTypeHelp(n.nfsForm.getValue("access_type")))}))}function Sp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"span",[["class","form-text text-warning"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The Object Gateway NFS backend has a number of limitations which will seriously affect applications writing to the share. Please consult the "])),(t()(),s["ɵeld"](2,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,[" documentation"])),(t()(),s["ɵted"](-1,null,[" for details before enabling write access."]))],null,(function(t,e){t(e,2,0,s["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Ip(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Np(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Cp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["-- No squash available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Rp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](-1,null,["--Select what kind of user id squashing is performed --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Ap(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function kp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Ep(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Required field"]))],null,null)}function Lp(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),s["ɵqud"](402653184,1,{nfsClients:0}),(t()(),s["ɵeld"](3,0,null,null,200,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,199,"form",[["name","nfsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,6).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,9).onSubmit()&&a),a}),null,null)),s["ɵdid"](5,16384,null,0,$.G,[],null,null),s["ɵdid"](6,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](8,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](9,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](10,0,null,null,193,"div",[["class","card"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),s["ɵted"](12,null,[""," ",""])),s["ɵppd"](13,1),s["ɵppd"](14,1),(t()(),s["ɵeld"](15,0,null,null,179,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Lg)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](18,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](19,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,4,{FormControlNames:1}),s["ɵqud"](603979776,5,{messagesBlock:0}),(t()(),s["ɵeld"](22,0,null,0,2,"label",[["class","cd-col-form-label"],["for","daemons"]],null,null,null,null,null)),(t()(),s["ɵeld"](23,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Daemons"])),(t()(),s["ɵeld"](25,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Dg)),s["ɵdid"](27,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](28,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](29,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),s["ɵeld"](30,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(t,e,n){var a=!0;return"selection"===e&&(a=!1!==t.component.onDaemonSelection()&&a),a}),lg.b,lg.a)),s["ɵdid"](31,638976,null,0,cg.a,[_a.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(t()(),s["ɵeld"](32,0,null,0,3,"i",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](34,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](35,1),(t()(),s["ɵeld"](36,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Add daemon"])),(t()(),s["ɵeld"](38,0,null,null,33,"div",[["formGroupName","fsal"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),s["ɵdid"](39,212992,null,0,$.m,[[3,$.d],[8,null],[8,null]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.d,null,[$.m]),s["ɵdid"](41,16384,null,0,$.s,[[4,$.d]],null,null),(t()(),s["ɵeld"](42,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](43,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,6,{FormControlNames:1}),s["ɵqud"](603979776,7,{messagesBlock:0}),(t()(),s["ɵeld"](46,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Storage Backend"])),(t()(),s["ɵeld"](48,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](49,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,50).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,50).onTouched()&&a),"change"===e&&(a=!1!==r.fsalChangeHandler()&&a),a}),null,null)),s["ɵdid"](50,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](52,671744,[[6,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](54,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](55,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Pg)),s["ɵdid"](57,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Mg)),s["ɵdid"](59,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,qg)),s["ɵdid"](61,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,jg)),s["ɵdid"](63,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Fg)),s["ɵdid"](65,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Hg)),s["ɵdid"](67,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Jg)),s["ɵdid"](69,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ap)),s["ɵdid"](71,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sp)),s["ɵdid"](73,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,lp)),s["ɵdid"](75,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,gp)),s["ɵdid"](77,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](78,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](79,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,20,{FormControlNames:1}),s["ɵqud"](603979776,21,{messagesBlock:0}),(t()(),s["ɵeld"](82,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","protocols"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFS Protocol"])),(t()(),s["ɵeld"](84,0,null,0,22,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](85,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](86,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","protocolNfsv3"],["id","protocolNfsv3"],["name","protocolNfsv3"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,87).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,87).onTouched()&&a),a}),null,null)),s["ɵdid"](87,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](89,671744,[[20,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](91,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](92,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](93,0,null,null,1,"label",[["class","custom-control-label"],["for","protocolNfsv3"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFSv3"])),(t()(),s["ɵeld"](95,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](96,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","protocolNfsv4"],["id","protocolNfsv4"],["name","protocolNfsv4"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,97).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,97).onTouched()&&a),a}),null,null)),s["ɵdid"](97,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](99,671744,[[20,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](101,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](102,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](103,0,null,null,1,"label",[["class","custom-control-label"],["for","protocolNfsv4"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["NFSv4"])),(t()(),s["ɵand"](16777216,null,null,1,null,pp)),s["ɵdid"](106,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,bp)),s["ɵdid"](108,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vp)),s["ɵdid"](110,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](111,0,null,null,27,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](112,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,26,{FormControlNames:1}),s["ɵqud"](603979776,27,{messagesBlock:0}),(t()(),s["ɵeld"](115,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","access_type"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Access Type"])),(t()(),s["ɵeld"](117,0,null,0,21,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](118,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,119).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,119).onTouched()&&a),"change"===e&&(a=!1!==r.accessTypeChangeHandler()&&a),a}),null,null)),s["ɵdid"](119,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](121,671744,[[26,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](123,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](124,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,xp)),s["ɵdid"](126,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,_p)),s["ɵdid"](128,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Tp)),s["ɵdid"](130,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Op)),s["ɵdid"](132,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,wp)),s["ɵdid"](134,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Sp)),s["ɵdid"](136,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ip)),s["ɵdid"](138,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](139,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](140,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,28,{FormControlNames:1}),s["ɵqud"](603979776,29,{messagesBlock:0}),(t()(),s["ɵeld"](143,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","squash"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Squash"])),(t()(),s["ɵeld"](145,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](146,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,147).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,147).onTouched()&&a),a}),null,null)),s["ɵdid"](147,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](149,671744,[[28,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](151,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](152,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Np)),s["ɵdid"](154,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Cp)),s["ɵdid"](156,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Rp)),s["ɵdid"](158,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ap)),s["ɵdid"](160,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,kp)),s["ɵdid"](162,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](163,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](164,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,30,{FormControlNames:1}),s["ɵqud"](603979776,31,{messagesBlock:0}),(t()(),s["ɵeld"](167,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","transports"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Transport Protocol"])),(t()(),s["ɵeld"](169,0,null,0,23,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](170,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](171,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","transportUDP"],["id","transportUDP"],["name","transportUDP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,172).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,172).onTouched()&&a),a}),null,null)),s["ɵdid"](172,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](174,671744,[[30,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](176,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](177,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](178,0,null,null,1,"label",[["class","custom-control-label"],["for","transportUDP"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["UDP"])),(t()(),s["ɵeld"](180,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](181,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","transportTCP"],["id","transportTCP"],["name","transportTCP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,182).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,182).onTouched()&&a),a}),null,null)),s["ɵdid"](182,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](184,671744,[[30,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](186,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](187,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](188,0,null,null,1,"label",[["class","custom-control-label"],["for","transportTCP"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["TCP"])),(t()(),s["ɵand"](16777216,null,null,1,null,Ep)),s["ɵdid"](191,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](192,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),s["ɵeld"](193,0,null,null,1,"cd-nfs-form-client",[],null,null,null,Tg,gg)),s["ɵdid"](194,49152,[[1,4],["nfsClients",4]],0,hg,[jh,_a.a],{form:[0,"form"]},null),(t()(),s["ɵeld"](195,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](196,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵeld"](197,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ws.b,ws.a)),s["ɵdid"](198,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](199,0,[""," ",""])),s["ɵppd"](200,1),s["ɵppd"](201,1),(t()(),s["ɵeld"](202,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](203,49152,null,0,Ns.a,[i.Location,At.b],null,null)],(function(t,e){var n=e.component;t(e,6,0,n.nfsForm),t(e,9,0,n.nfsForm),t(e,17,0,!n.isDefaultCluster),t(e,19,0),t(e,27,0,n.nfsForm.getValue("daemons")),t(e,31,0,"btn btn-light float-right",n.nfsForm.get("daemons").value,n.daemonsSelections,n.daemonsMessages);var a=t(e,35,0,n.icons.add);t(e,34,0,a),t(e,39,0,"fsal"),t(e,43,0),t(e,52,0,"name"),t(e,55,0,"name"),t(e,57,0,null===n.allFsals),t(e,59,0,null!==n.allFsals&&0===n.allFsals.length),t(e,61,0,null!==n.allFsals&&n.allFsals.length>0),t(e,63,0,n.allFsals),t(e,65,0,n.nfsForm.showError("name",s["ɵnov"](e,6),"required")),t(e,67,0,"RGW"===n.nfsForm.getValue("name")),t(e,69,0,"CEPH"===n.nfsForm.getValue("name")),t(e,71,0,"CEPH"===n.nfsForm.getValue("name")),t(e,73,0,"CEPH"===n.nfsForm.getValue("name")),t(e,75,0,"CEPH"===n.nfsForm.getValue("name")),t(e,77,0,"RGW"===n.nfsForm.getValue("name")),t(e,79,0),t(e,89,0,"protocolNfsv3"),t(e,92,0,"protocolNfsv3"),t(e,99,0,"protocolNfsv4"),t(e,102,0,"protocolNfsv4"),t(e,106,0,n.nfsForm.showError("protocolNfsv3",s["ɵnov"](e,6),"required")||n.nfsForm.showError("protocolNfsv4",s["ɵnov"](e,6),"required")),t(e,108,0,n.nfsForm.getValue("protocolNfsv3")),t(e,110,0,n.nfsForm.getValue("protocolNfsv4")),t(e,112,0),t(e,121,0,"access_type"),t(e,124,0,"access_type"),t(e,126,0,null===n.nfsAccessType),t(e,128,0,null!==n.nfsAccessType&&0===n.nfsAccessType.length),t(e,130,0,null!==n.nfsAccessType&&n.nfsAccessType.length>0),t(e,132,0,n.nfsAccessType),t(e,134,0,n.nfsForm.getValue("access_type")),t(e,136,0,"RW"===n.nfsForm.getValue("access_type")&&"RGW"===n.nfsForm.getValue("name")),t(e,138,0,n.nfsForm.showError("access_type",s["ɵnov"](e,6),"required")),t(e,140,0),t(e,149,0,"squash"),t(e,152,0,"squash"),t(e,154,0,null===n.nfsSquash),t(e,156,0,null!==n.nfsSquash&&0===n.nfsSquash.length),t(e,158,0,null!==n.nfsSquash&&n.nfsSquash.length>0),t(e,160,0,n.nfsSquash),t(e,162,0,n.nfsForm.showError("squash",s["ɵnov"](e,6),"required")),t(e,164,0),t(e,174,0,"transportUDP"),t(e,177,0,"transportUDP"),t(e,184,0,"transportTCP"),t(e,187,0,"transportTCP"),t(e,191,0,n.nfsForm.showError("transportUDP",s["ɵnov"](e,6),"required")||n.nfsForm.showError("transportTCP",s["ɵnov"](e,6),"required")),t(e,194,0,n.nfsForm),t(e,198,0,s["ɵnov"](e,6))}),(function(t,e){var n=e.component;t(e,4,0,s["ɵnov"](e,8).ngClassUntouched,s["ɵnov"](e,8).ngClassTouched,s["ɵnov"](e,8).ngClassPristine,s["ɵnov"](e,8).ngClassDirty,s["ɵnov"](e,8).ngClassValid,s["ɵnov"](e,8).ngClassInvalid,s["ɵnov"](e,8).ngClassPending);var a=s["ɵunv"](e,12,0,t(e,13,0,s["ɵnov"](e,0),n.action)),r=s["ɵunv"](e,12,1,t(e,14,0,s["ɵnov"](e,1),n.resource));t(e,12,0,a,r),t(e,18,0,s["ɵnov"](e,19).hasErrors,s["ɵnov"](e,19).hasSuccess),t(e,38,0,s["ɵnov"](e,41).ngClassUntouched,s["ɵnov"](e,41).ngClassTouched,s["ɵnov"](e,41).ngClassPristine,s["ɵnov"](e,41).ngClassDirty,s["ɵnov"](e,41).ngClassValid,s["ɵnov"](e,41).ngClassInvalid,s["ɵnov"](e,41).ngClassPending),t(e,42,0,s["ɵnov"](e,43).hasErrors,s["ɵnov"](e,43).hasSuccess),t(e,49,0,s["ɵnov"](e,54).ngClassUntouched,s["ɵnov"](e,54).ngClassTouched,s["ɵnov"](e,54).ngClassPristine,s["ɵnov"](e,54).ngClassDirty,s["ɵnov"](e,54).ngClassValid,s["ɵnov"](e,54).ngClassInvalid,s["ɵnov"](e,54).ngClassPending,s["ɵnov"](e,55).validClass,s["ɵnov"](e,55).invalidClass),t(e,78,0,s["ɵnov"](e,79).hasErrors,s["ɵnov"](e,79).hasSuccess),t(e,86,0,s["ɵnov"](e,91).ngClassUntouched,s["ɵnov"](e,91).ngClassTouched,s["ɵnov"](e,91).ngClassPristine,s["ɵnov"](e,91).ngClassDirty,s["ɵnov"](e,91).ngClassValid,s["ɵnov"](e,91).ngClassInvalid,s["ɵnov"](e,91).ngClassPending,s["ɵnov"](e,92).validClass,s["ɵnov"](e,92).invalidClass),t(e,96,0,s["ɵnov"](e,101).ngClassUntouched,s["ɵnov"](e,101).ngClassTouched,s["ɵnov"](e,101).ngClassPristine,s["ɵnov"](e,101).ngClassDirty,s["ɵnov"](e,101).ngClassValid,s["ɵnov"](e,101).ngClassInvalid,s["ɵnov"](e,101).ngClassPending,s["ɵnov"](e,102).validClass,s["ɵnov"](e,102).invalidClass),t(e,111,0,s["ɵnov"](e,112).hasErrors,s["ɵnov"](e,112).hasSuccess),t(e,118,0,s["ɵnov"](e,123).ngClassUntouched,s["ɵnov"](e,123).ngClassTouched,s["ɵnov"](e,123).ngClassPristine,s["ɵnov"](e,123).ngClassDirty,s["ɵnov"](e,123).ngClassValid,s["ɵnov"](e,123).ngClassInvalid,s["ɵnov"](e,123).ngClassPending,s["ɵnov"](e,124).validClass,s["ɵnov"](e,124).invalidClass),t(e,139,0,s["ɵnov"](e,140).hasErrors,s["ɵnov"](e,140).hasSuccess),t(e,146,0,s["ɵnov"](e,151).ngClassUntouched,s["ɵnov"](e,151).ngClassTouched,s["ɵnov"](e,151).ngClassPristine,s["ɵnov"](e,151).ngClassDirty,s["ɵnov"](e,151).ngClassValid,s["ɵnov"](e,151).ngClassInvalid,s["ɵnov"](e,151).ngClassPending,s["ɵnov"](e,152).validClass,s["ɵnov"](e,152).invalidClass),t(e,163,0,s["ɵnov"](e,164).hasErrors,s["ɵnov"](e,164).hasSuccess),t(e,171,0,s["ɵnov"](e,176).ngClassUntouched,s["ɵnov"](e,176).ngClassTouched,s["ɵnov"](e,176).ngClassPristine,s["ɵnov"](e,176).ngClassDirty,s["ɵnov"](e,176).ngClassValid,s["ɵnov"](e,176).ngClassInvalid,s["ɵnov"](e,176).ngClassPending,s["ɵnov"](e,177).validClass,s["ɵnov"](e,177).invalidClass),t(e,181,0,s["ɵnov"](e,186).ngClassUntouched,s["ɵnov"](e,186).ngClassTouched,s["ɵnov"](e,186).ngClassPristine,s["ɵnov"](e,186).ngClassDirty,s["ɵnov"](e,186).ngClassValid,s["ɵnov"](e,186).ngClassInvalid,s["ɵnov"](e,186).ngClassPending,s["ɵnov"](e,187).validClass,s["ɵnov"](e,187).invalidClass);var i=s["ɵunv"](e,199,0,t(e,200,0,s["ɵnov"](e,0),n.action)),o=s["ɵunv"](e,199,1,t(e,201,0,s["ɵnov"](e,1),n.resource));t(e,199,0,i,o)}))}function Dp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-nfs-form",[],null,null,null,Lp,Ng)),s["ɵdid"](1,114688,null,0,Ig,[xt.a,jh,qt.a,qt.m,Og.a,jo.a,pt.a,vt.a,ds.a,s.ChangeDetectorRef,_a.a,At.b],null,null)],(function(t,e){t(e,1,0)}),null)}var Pp=s["ɵccf"]("cd-nfs-form",Ig,Dp,{},{},[]);class Mp{}var qp=s["ɵcrt"]({encapsulation:0,styles:[[".login{color:#fff;background-color:#374249;background-image:url(ceph_background.7c127240f022e7baf57d.gif);background-position:right bottom;background-repeat:no-repeat}  .login header{position:absolute;width:100vw}  .login header .navbar{padding:1rem 2rem}  .login header .navbar .dropdown-menu{margin-top:.2rem}  .login header .navbar .dropdown-menu li a:hover{background-color:#2b99a8}  .login section{display:inline-flex;width:100vw;min-height:100vh}"]],data:{}});function jp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,13,"main",[["class","login full-height"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,5,"header",[],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,4,"nav",[["class","navbar"]],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,0,"a",[["class","navbar-brand"]],null,null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,2,"div",[["class","form-inline"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,"cd-language-selector",[],null,null,null,ct,it)),s["ɵdid"](6,114688,null,0,at,[rt.l,tt],null,null),(t()(),s["ɵeld"](7,0,null,null,6,"section",[],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,5,"div",[["class","container"]],null,null,null,null,null)),(t()(),s["ɵeld"](9,0,null,null,4,"div",[["class","row full-height vertical-align"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,3,"div",[["class","col-sm-12 col-md-6 d-sm-block"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,0,"img",[["alt","Ceph"],["class","img-fluid mb-5"],["src","assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),s["ɵdid"](13,212992,null,0,qt.r,[qt.b,s.ViewContainerRef,s.ComponentFactoryResolver,[8,null],s.ChangeDetectorRef],null,null)],(function(t,e){t(e,6,0),t(e,13,0)}),null)}function Fp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-login-layout",[],null,null,null,jp,qp)),s["ɵdid"](1,49152,null,0,Mp,[],null,null)],null,null)}var Gp=s["ɵccf"]("cd-login-layout",Mp,Fp,{},{},[]);class Vp{}class zp{constructor(t,e,n,a){this.authService=t,this.authStorageService=e,this.bsModalService=n,this.router=a,this.model=new Vp,this.isLoginActive=!1}ngOnInit(){if(this.authStorageService.isLoggedIn())this.router.navigate([""]);else{const t=this.bsModalService.getModalsCount();for(let n=1;n<=t;n++)this.bsModalService.hide(n);let e=null;if(-1!==window.location.hash.indexOf("access_token=")){e=window.location.hash.split("access_token=")[1];const t=window.location.toString();window.history.replaceState({},document.title,t.split("?")[0])}this.authService.check(e).subscribe(t=>{t.login_url?"#/login"===t.login_url?this.isLoginActive=!0:window.location.replace(t.login_url):(this.authStorageService.set(t.username,e,t.permissions,t.sso,t.pwdExpirationDate),this.router.navigate([""]))})}}login(){this.authService.login(this.model).subscribe(()=>{this.router.navigate([""])})}}var Bp=s["ɵcrt"]({encapsulation:0,styles:[["cd-login h1{margin:0 0 30px}  cd-login .form-group{border-left:4px solid #fff;background-color:#333e46;height:auto;margin-bottom:2rem}  cd-login .form-group:focus-within{border-left:4px solid #ef5c55}  cd-login .form-group .invalid-feedback{display:inline}  cd-login .btn-password,   cd-login .btn-password:focus,   cd-login .form-control,   cd-login .form-control:focus{border:none;outline:0;box-shadow:none;color:#fff;background-color:#333e46;filter:none}  cd-login .placeholder{color:#90949c}  cd-login .btn-password:focus{outline-color:#2b99a8}@keyframes autofill{to{color:#fff;background-color:#333e46}}input[_ngcontent-%COMP%]:-webkit-autofill{animation-name:autofill;animation-fill-mode:both;box-shadow:0 0 0 1000px #333e46 inset;-webkit-text-fill-color:#fff;transition-property:none;border-radius:0}"]],data:{}});function Yp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[["class","invalid-feedback pl-4"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Username is required"]))],null,null)}function Hp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"div",[["class","invalid-feedback pl-4"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Password is required"]))],null,null)}function Up(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,46,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,45,"form",[["name","loginForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngSubmit"],[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0,r=t.component;return"submit"===e&&(a=!1!==s["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,3).onReset()&&a),"ngSubmit"===e&&(a=!1!==r.login()&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,$.G,[],null,null),s["ɵdid"](3,4210688,[["loginForm",4]],0,$.t,[[8,null],[8,null]],null,{ngSubmit:"ngSubmit"}),s["ɵprd"](2048,null,$.d,null,[$.t]),s["ɵdid"](5,16384,null,0,$.s,[[4,$.d]],null,null),(t()(),s["ɵeld"](6,0,null,null,17,"div",[["class","form-group has-feedback d-flex flex-column py-3"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](7,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](10,0,null,0,1,"label",[["class","placeholder pl-4"],["for","username"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Username"])),(t()(),s["ɵeld"](12,0,null,0,9,"input",[["aria-labelledby","username"],["autofocus",""],["class","form-control pl-4"],["id","username"],["name","username"],["required",""],["type","text"]],[[1,"aria-invalid",0],[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,13)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,13).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,13)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,13)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.username=n)&&a),a}),null,null)),s["ɵdid"](13,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](14,16384,null,0,$.z,[],{required:[0,"required"]},null),s["ɵprd"](1024,null,$.o,(function(t){return[t]}),[$.z]),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](17,671744,[["username",4]],0,$.u,[[2,$.d],[6,$.o],[8,null],[6,$.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](19,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](20,4210688,null,0,Os.a,[s.ElementRef],{autofocus:[0,"autofocus"]},null),s["ɵdid"](21,16384,null,0,Z.h,[[3,$.d],Z.a],null,null),(t()(),s["ɵand"](16777216,null,0,1,null,Yp)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](24,0,null,null,21,"div",[["class","form-group has-feedback"],["id","password-div"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](25,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](28,0,null,0,17,"div",[["class","input-group d-flex flex-nowrap"]],null,null,null,null,null)),(t()(),s["ɵeld"](29,0,null,null,13,"div",[["class","d-flex flex-column flex-grow-1 py-3"]],null,null,null,null,null)),(t()(),s["ɵeld"](30,0,null,null,1,"label",[["class","placeholder pl-4"],["for","password"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Password"])),(t()(),s["ɵeld"](32,0,null,null,8,"input",[["aria-labelledby","password"],["class","form-control pl-4"],["id","password"],["name","password"],["required",""],["type","password"]],[[1,"aria-invalid",0],[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==s["ɵnov"](t,33)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,33).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,33)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,33)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.password=n)&&a),a}),null,null)),s["ɵdid"](33,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](34,16384,null,0,$.z,[],{required:[0,"required"]},null),s["ɵprd"](1024,null,$.o,(function(t){return[t]}),[$.z]),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](37,671744,[["password",4]],0,$.u,[[2,$.d],[6,$.o],[8,null],[6,$.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),s["ɵprd"](2048,null,$.q,null,[$.u]),s["ɵdid"](39,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](40,16384,null,0,Z.h,[[3,$.d],Z.a],null,null),(t()(),s["ɵand"](16777216,null,null,1,null,Hp)),s["ɵdid"](42,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](43,0,null,null,2,"span",[["class","form-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](44,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-outline-light btn-password h-100 px-4"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,45).onClick()&&a),a}),null,null)),s["ɵdid"](45,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵeld"](46,0,null,null,0,"input",[["class","btn btn-secondary px-5 py-2"],["type","submit"],["value","Login"]],[[8,"disabled",0]],null,null,null,null))],(function(t,e){var n=e.component;t(e,7,0),t(e,14,0,""),t(e,17,0,"username",n.model.username),t(e,20,0,""),t(e,23,0,(s["ɵnov"](e,3).submitted||s["ɵnov"](e,17).dirty)&&s["ɵnov"](e,17).invalid),t(e,25,0),t(e,34,0,""),t(e,37,0,"password",n.model.password),t(e,42,0,(s["ɵnov"](e,3).submitted||s["ɵnov"](e,37).dirty)&&s["ɵnov"](e,37).invalid),t(e,45,0,"password")}),(function(t,e){t(e,1,0,s["ɵnov"](e,5).ngClassUntouched,s["ɵnov"](e,5).ngClassTouched,s["ɵnov"](e,5).ngClassPristine,s["ɵnov"](e,5).ngClassDirty,s["ɵnov"](e,5).ngClassValid,s["ɵnov"](e,5).ngClassInvalid,s["ɵnov"](e,5).ngClassPending),t(e,6,0,s["ɵnov"](e,7).hasErrors,s["ɵnov"](e,7).hasSuccess),t(e,12,1,[s["ɵnov"](e,17).invalid,s["ɵnov"](e,14).required?"":null,s["ɵnov"](e,19).ngClassUntouched,s["ɵnov"](e,19).ngClassTouched,s["ɵnov"](e,19).ngClassPristine,s["ɵnov"](e,19).ngClassDirty,s["ɵnov"](e,19).ngClassValid,s["ɵnov"](e,19).ngClassInvalid,s["ɵnov"](e,19).ngClassPending,s["ɵnov"](e,21).validClass,s["ɵnov"](e,21).invalidClass]),t(e,24,0,s["ɵnov"](e,25).hasErrors,s["ɵnov"](e,25).hasSuccess),t(e,32,1,[s["ɵnov"](e,37).invalid,s["ɵnov"](e,34).required?"":null,s["ɵnov"](e,39).ngClassUntouched,s["ɵnov"](e,39).ngClassTouched,s["ɵnov"](e,39).ngClassPristine,s["ɵnov"](e,39).ngClassDirty,s["ɵnov"](e,39).ngClassValid,s["ɵnov"](e,39).ngClassInvalid,s["ɵnov"](e,39).ngClassPending,s["ɵnov"](e,40).validClass,s["ɵnov"](e,40).invalidClass]),t(e,46,0,s["ɵnov"](e,3).invalid)}))}function Wp(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Up)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.isLoginActive)}),null)}function Kp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-login",[],null,null,null,Wp,Bp)),s["ɵdid"](1,114688,null,0,zp,[Ht.a,xt.a,Lt.b,qt.m],null,null)],(function(t,e){t(e,1,0)}),null)}var $p=s["ɵccf"]("cd-login",zp,Kp,{},{},[]);class Zp extends ph{constructor(t,e,n,a,r,i,s,o,u){super(t,e,n,a,r,i,s,o),this.i18n=t,this.actionLabels=e,this.notificationService=n,this.userService=a,this.authStorageService=r,this.formBuilder=i,this.router=s,this.passwordPolicyService=o,this.authService=u}onPasswordChange(){this.authService.logout()}onCancel(){this.authService.logout()}}var Jp=s["ɵcrt"]({encapsulation:0,styles:[["cd-login-password-form h4{margin:0 0 30px}  cd-login-password-form .btn-password,   cd-login-password-form .btn-password:focus,   cd-login-password-form .form-control,   cd-login-password-form .form-control:focus{color:#fff;background-color:#333e46}  cd-login-password-form .form-control::placeholder{color:#90949c}  cd-login-password-form .btn-password:focus{outline-color:#2b99a8}  cd-login-password-form button.btn:not(:first-child){margin-left:5px}"]],data:{}});function Qp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function Xp(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function tb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function eb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function nb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.passwordValuation)}))}function ab(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function rb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Password confirmation doesn't match the new password."]))],null,null)}function ib(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),(t()(),s["ɵeld"](2,0,null,null,81,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](3,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Please set a new password."])),(t()(),s["ɵeld"](5,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["You will be redirected to the login page afterwards."])),(t()(),s["ɵeld"](7,0,null,null,67,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,9).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,9).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,12).onSubmit()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,$.G,[],null,null),s["ɵdid"](9,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](11,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](12,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](13,0,null,null,19,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](14,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](17,0,null,0,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,7,"input",[["autocomplete","new-password"],["autofocus",""],["class","form-control"],["formControlName","oldpassword"],["id","oldpassword"],["placeholder","Old password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,19)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](19,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](21,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](23,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](24,4210688,null,0,Os.a,[s.ElementRef],{autofocus:[0,"autofocus"]},null),s["ɵdid"](25,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](26,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](27,0,null,null,1,"button",[["cdPasswordButton","oldpassword"],["class","btn btn-outline-light btn-password"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,28).onClick()&&a),a}),null,null)),s["ɵdid"](28,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Qp)),s["ɵdid"](30,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,Xp)),s["ɵdid"](32,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](33,0,null,null,22,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](34,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](37,0,null,0,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](38,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","newpassword"],["id","newpassword"],["placeholder","New password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,39)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,39).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,39)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,39)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](39,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](41,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](43,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](44,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](45,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](46,0,null,null,1,"button",[["cdPasswordButton","newpassword"],["class","btn btn-outline-light btn-password"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,47).onClick()&&a),a}),null,null)),s["ɵdid"](47,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵeld"](48,0,null,0,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(t()(),s["ɵeld"](49,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),s["ɵand"](16777216,null,0,1,null,tb)),s["ɵdid"](51,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,eb)),s["ɵdid"](53,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,nb)),s["ɵdid"](55,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](56,0,null,null,18,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](57,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](60,0,null,0,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](61,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","confirmnewpassword"],["id","confirmnewpassword"],["placeholder","Confirm new password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,62)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,62).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,62)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,62)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](62,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](64,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](66,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](67,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](68,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](69,0,null,null,1,"button",[["cdPasswordButton","confirmnewpassword"],["class","btn btn-outline-light btn-password"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,70).onClick()&&a),a}),null,null)),s["ɵdid"](70,81920,null,0,hh.a,[s.ElementRef,s.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,ab)),s["ɵdid"](72,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,rb)),s["ɵdid"](74,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](75,0,null,null,8,"div",[["class","form-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](76,0,null,null,4,"cd-submit-button",[["btnClass","btn-block"],["class","full-width"]],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](77,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"],btnClass:[1,"btnClass"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](78,0,[" "," "," "])),s["ɵppd"](79,1),s["ɵppd"](80,1),(t()(),s["ɵeld"](81,0,null,null,2,"button",[["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCancel()&&a),a}),null,null)),(t()(),s["ɵeld"](82,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cancel"]))],(function(t,e){var n=e.component;t(e,9,0,n.userForm),t(e,12,0,n.userForm),t(e,14,0),t(e,21,0,"oldpassword"),t(e,24,0,""),t(e,25,0,"oldpassword"),t(e,28,0,"oldpassword"),t(e,30,0,n.userForm.showError("oldpassword",s["ɵnov"](e,9),"required")),t(e,32,0,n.userForm.showError("oldpassword",s["ɵnov"](e,9),"notmatch")),t(e,34,0),t(e,41,0,"newpassword"),t(e,44,0,"newpassword"),t(e,47,0,"newpassword"),t(e,51,0,n.userForm.showError("newpassword",s["ɵnov"](e,9),"required")),t(e,53,0,n.userForm.showError("newpassword",s["ɵnov"](e,9),"notmatch")),t(e,55,0,n.userForm.showError("newpassword",s["ɵnov"](e,9),"passwordPolicy")),t(e,57,0),t(e,64,0,"confirmnewpassword"),t(e,67,0,"confirmnewpassword"),t(e,70,0,"confirmnewpassword"),t(e,72,0,n.userForm.showError("confirmnewpassword",s["ɵnov"](e,9),"required")),t(e,74,0,n.userForm.showError("confirmnewpassword",s["ɵnov"](e,9),"match")),t(e,77,0,n.userForm,"btn-block")}),(function(t,e){var n=e.component;t(e,7,0,s["ɵnov"](e,11).ngClassUntouched,s["ɵnov"](e,11).ngClassTouched,s["ɵnov"](e,11).ngClassPristine,s["ɵnov"](e,11).ngClassDirty,s["ɵnov"](e,11).ngClassValid,s["ɵnov"](e,11).ngClassInvalid,s["ɵnov"](e,11).ngClassPending),t(e,13,0,s["ɵnov"](e,14).hasErrors,s["ɵnov"](e,14).hasSuccess),t(e,18,0,s["ɵnov"](e,23).ngClassUntouched,s["ɵnov"](e,23).ngClassTouched,s["ɵnov"](e,23).ngClassPristine,s["ɵnov"](e,23).ngClassDirty,s["ɵnov"](e,23).ngClassValid,s["ɵnov"](e,23).ngClassInvalid,s["ɵnov"](e,23).ngClassPending,s["ɵnov"](e,25).validClass,s["ɵnov"](e,25).invalidClass),t(e,33,0,s["ɵnov"](e,34).hasErrors,s["ɵnov"](e,34).hasSuccess),t(e,38,0,s["ɵnov"](e,43).ngClassUntouched,s["ɵnov"](e,43).ngClassTouched,s["ɵnov"](e,43).ngClassPristine,s["ɵnov"](e,43).ngClassDirty,s["ɵnov"](e,43).ngClassValid,s["ɵnov"](e,43).ngClassInvalid,s["ɵnov"](e,43).ngClassPending,s["ɵnov"](e,44).validClass,s["ɵnov"](e,44).invalidClass),t(e,49,0,s["ɵinlineInterpolate"](1,"",n.passwordStrengthLevelClass,""),s["ɵinlineInterpolate"](1,"",n.passwordValuation,"")),t(e,56,0,s["ɵnov"](e,57).hasErrors,s["ɵnov"](e,57).hasSuccess),t(e,61,0,s["ɵnov"](e,66).ngClassUntouched,s["ɵnov"](e,66).ngClassTouched,s["ɵnov"](e,66).ngClassPristine,s["ɵnov"](e,66).ngClassDirty,s["ɵnov"](e,66).ngClassValid,s["ɵnov"](e,66).ngClassInvalid,s["ɵnov"](e,66).ngClassPending,s["ɵnov"](e,67).validClass,s["ɵnov"](e,67).invalidClass);var a=s["ɵunv"](e,78,0,t(e,79,0,s["ɵnov"](e,0),n.action)),r=s["ɵunv"](e,78,1,t(e,80,0,s["ɵnov"](e,1),n.resource));t(e,78,0,a,r)}))}function sb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-login-password-form",[],null,null,null,ib,Jp)),s["ɵdid"](1,49152,null,0,Zp,[_a.a,At.b,gt.a,Rt.a,xt.a,jo.a,qt.m,gh.a,Ht.a],null,null)],null,null)}var ob=s["ɵccf"]("cd-login-password-form",Zp,sb,{},{},[]);class ub{constructor(){}}var db=s["ɵcrt"]({encapsulation:0,styles:[["#toast-container{margin-top:2vw}@media (max-width:1600px){  #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){  #toast-container{margin-top:9vw}}@media (max-width:900px){  #toast-container{margin-top:10vw}}@media (max-width:319px){  #toast-container{margin-top:11vw}}@media (max-width:260px){  #toast-container{margin-top:14vw}}"]],data:{}});function lb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),s["ɵdid"](1,212992,null,0,qt.r,[qt.b,s.ViewContainerRef,s.ComponentFactoryResolver,[8,null],s.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function cb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-blank-layout",[],null,null,null,lb,db)),s["ɵdid"](1,49152,null,0,ub,[],null,null)],null,null)}var fb=s["ɵccf"]("cd-blank-layout",ub,cb,{},{},[]);class hb{constructor(){this.logoutUrl=`${window.location.origin}/auth/saml2/slo`}}var gb=s["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function pb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,17,"div",[["class","vertical-align full-height"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,16,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Sorry, the user does not exist in Ceph."])),(t()(),s["ɵeld"](4,0,null,null,4,"h4",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Return to "])),(t()(),s["ɵeld"](6,0,null,null,1,"a",[["class","sso-logout"]],[[8,"href",4]],null,null,null,null)),(t()(),s["ɵted"](-1,null,["Login Page"])),(t()(),s["ɵted"](-1,null,[". You'll be logged out from the Identity Provider when you retry logging in."])),(t()(),s["ɵeld"](9,0,null,null,0,"img",[["class","img-fluid mx-auto rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),s["ɵeld"](10,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[' "'])),(t()(),s["ɵeld"](13,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Nautilus Octopus"])),(t()(),s["ɵted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),s["ɵeld"](16,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CC BY 2.0"]))],null,(function(t,e){t(e,6,0,e.component.logoutUrl)}))}function bb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-sso-not-found",[],null,null,null,pb,gb)),s["ɵdid"](1,49152,null,0,hb,[],null,null)],null,null)}var mb=s["ɵccf"]("cd-sso-not-found",hb,bb,{},{},[]);class yb{constructor(){this.icons=ht.a}}var vb=s["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}h2[_ngcontent-%COMP%]{font-size:xx-large;font-family:monospace}i[_ngcontent-%COMP%]{font-size:200px}"]],data:{}});function xb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,"div",[["class","horizontal-align vertical-align full-height"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,9,"div",[["class","text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Forbidden"])),(t()(),s["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,"h2",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Sorry, you are not allowed to see what you were looking for."])),(t()(),s["ɵeld"](7,0,null,null,3,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,8).onClick()&&a),a}),null,null)),s["ɵdid"](8,16384,null,0,qt.n,[qt.m,qt.a,[8,null],s.Renderer2,s.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,8,0,"/login")}),(function(t,e){t(e,4,0,s["ɵinlineInterpolate"](1,"",e.component.icons.lock," text-danger"))}))}function _b(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-forbidden",[],null,null,null,xb,vb)),s["ɵdid"](1,49152,null,0,yb,[],null,null)],null,null)}var Tb=s["ɵccf"]("cd-forbidden",yb,_b,{},{},[]);class Ob{constructor(){}}var wb=s["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function Sb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,17,"div",[["class","horizontal-align vertical-align full-height"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,16,"div",[["class","text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Sorry, we could not find what you were looking for."])),(t()(),s["ɵeld"](4,0,null,null,0,"img",[["class","img-fluid mx-auto rounded"],["src","assets/1500px-Southern_Keeled_Octopus.jpg"]],null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,[' "'])),(t()(),s["ɵeld"](8,0,null,null,1,"a",[["href","https://collections.museumvictoria.com.au/species/8696"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Southern Keeled Octopus, Octopus berrima"])),(t()(),s["ɵted"](-1,null,['" by Museums Victoria (Photographer: Julian Finn) is licensed under '])),(t()(),s["ɵeld"](11,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/4.0"],["rel","nofollow"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["CC BY 4.0"])),(t()(),s["ɵeld"](13,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](14,0,null,null,3,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==s["ɵnov"](t,15).onClick()&&a),a}),null,null)),s["ɵdid"](15,16384,null,0,qt.n,[qt.m,qt.a,[8,null],s.Renderer2,s.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),s["ɵeld"](16,0,null,null,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,15,0,"/login")}),null)}function Ib(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-not-found",[],null,null,null,Sb,wb)),s["ɵdid"](1,49152,null,0,Ob,[],null,null)],null,null)}var Nb=s["ɵccf"]("cd-not-found",Ob,Ib,{},{},[]),Cb=n("ES0t"),Rb=n("Xg1U"),Ab=n("z5nN"),kb=n("iutN"),Eb=n("EEJc"),Lb=n("PEr+"),Db=n("a40w"),Pb=n("hfeG"),Mb=n("atuK"),qb=s["ɵcrt"]({encapsulation:0,styles:[[".about-container[_ngcontent-%COMP%]{background-color:#374249;background-image:url(ceph_background.7c127240f022e7baf57d.gif);background-position:right bottom;background-repeat:no-repeat;color:#fff;text-shadow:1px 1px #374249}.product-versions[_ngcontent-%COMP%]{margin-top:30px}.product-versions[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{margin-right:10px}.modal-header[_ngcontent-%COMP%]{border-bottom:none}.modal-header[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{color:#fff;font-size:2em}.modal-body[_ngcontent-%COMP%]{padding-left:80px;padding-right:80px}.ceph-logo[_ngcontent-%COMP%]{width:25%;margin-bottom:30px;object-position:-20px 0}.modal-footer[_ngcontent-%COMP%]{display:block;border-top:none;padding:15px 80px 35px}"]],data:{}});function jb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,45,"div",[["class","about-container"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,2,"button",[["aria-label","Close"],["class","close float-right"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.modalRef.hide()&&a),a}),null,null)),(t()(),s["ɵeld"](3,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["×"])),(t()(),s["ɵeld"](5,0,null,null,37,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,0,"img",[["class","ceph-logo"],["src","assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png"]],[[8,"alt",0]],null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,2,"h3",[],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](9,null,["",""])),(t()(),s["ɵeld"](10,0,null,null,6,"div",[["class","product-versions"]],null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Version"])),(t()(),s["ɵeld"](13,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵted"](14,null,[" "," "," "])),(t()(),s["ɵeld"](15,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵted"](16,null,[" "," "])),(t()(),s["ɵeld"](17,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,24,"dl",[],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Ceph Manager"])),(t()(),s["ɵeld"](21,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](22,null,["",""])),(t()(),s["ɵeld"](23,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["User"])),(t()(),s["ɵeld"](25,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](26,null,["",""])),(t()(),s["ɵeld"](27,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["User Role"])),(t()(),s["ɵeld"](29,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](30,null,["",""])),(t()(),s["ɵeld"](31,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Browser"])),(t()(),s["ɵeld"](33,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](34,null,["",""])),(t()(),s["ɵeld"](35,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Browser Version"])),(t()(),s["ɵeld"](37,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](38,null,["",""])),(t()(),s["ɵeld"](39,0,null,null,1,"dt",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Browser OS"])),(t()(),s["ɵeld"](41,0,null,null,1,"dd",[],null,null,null,null,null)),(t()(),s["ɵted"](42,null,["",""])),(t()(),s["ɵeld"](43,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](44,0,null,null,1,"div",[["class","text-left"]],null,null,null,null,null)),(t()(),s["ɵted"](45,null,[" "," "," "]))],null,(function(t,e){var n=e.component;t(e,6,0,s["ɵinlineInterpolate"](1,"",n.projectConstants.organization,"")),t(e,9,0,n.projectConstants.projectName),t(e,14,0,n.versionNumber,n.versionHash),t(e,16,0,n.versionName),t(e,22,0,n.hostAddr),t(e,26,0,n.modalVariables.user),t(e,30,0,n.modalVariables.role),t(e,34,0,n.modalVariables.browserName),t(e,38,0,n.modalVariables.browserVersion),t(e,42,0,n.modalVariables.browserOS),t(e,45,0,n.copyright,n.projectConstants.license)}))}function Fb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-about",[],null,null,null,jb,qb)),s["ɵdid"](1,245760,null,0,kt,[Lt.a,pt.a,Rt.a,xt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Gb=s["ɵccf"]("cd-about",kt,Fb,{},{},[]),Vb=s["ɵcrt"]({encapsulation:0,styles:[".dropdown[_nghost-%COMP%] {\n      z-index: 1000;\n    }\n\n    .dropdown-menu[_nghost-%COMP%], .dropdown-menu[_ngcontent-%COMP%] {\n      overflow-y: auto;\n      height: 100px;\n    }"],data:{animation:[{type:7,name:"typeaheadAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function zb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](0,null,null,0))],null,null)}function Bb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,0,0,e.component.highlight(e.context.match,e.context.query))}))}function Yb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,[[2,0],["liElements",1]],null,1,"li",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit)}))}function Hb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](0,null,null,0))],null,null)}function Ub(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,[[2,0],["liElements",1]],null,4,"li",[],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"mouseenter"]],(function(t,e,n){var a=!0;return"mouseenter"===e&&(a=!1!==t.component.selectActive(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"a",[["href","#"],["tabindex","-1"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectMatch(t.parent.context.$implicit,n)&&a),a}),null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,Hb)),s["ɵdid"](3,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["ɵpod"](4,{item:0,index:1,match:2,query:3})],(function(t,e){var n=e.component,a=t(e,4,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,3,0,a,n.itemTemplate||s["ɵnov"](e.parent.parent.parent,5))}),(function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))}))}function Wb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Yb)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ub)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)}),null)}function Kb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,[[1,0],["ulElement",1]],null,2,"ul",[["class","dropdown-menu"]],[[4,"overflow-y",null],[4,"height",null]],null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Wb)),s["ɵdid"](2,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.matches)}),(function(t,e){var n=e.component;t(e,0,0,n.needScrollbar?"scroll":"auto",n.needScrollbar?n.guiHeight:"auto")}))}function $b(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"h6",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit)}))}function Zb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](0,null,null,0))],null,null)}function Jb(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,[[2,0],["liElements",1]],null,3,"button",[["class","dropdown-item"]],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"click"],[null,"mouseenter"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectMatch(t.parent.context.$implicit,n)&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),s["ɵand"](16777216,null,null,2,null,Zb)),s["ɵdid"](2,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["ɵpod"](3,{item:0,index:1,match:2,query:3})],(function(t,e){var n=e.component,a=t(e,3,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,2,0,a,n.itemTemplate||s["ɵnov"](e.parent.parent.parent,5))}),(function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))}))}function Qb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,$b)),s["ɵdid"](1,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Jb)),s["ɵdid"](3,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)}),null)}function Xb(t){return s["ɵvid"](0,[(t()(),s["ɵand"](16777216,null,null,1,null,Qb)),s["ɵdid"](1,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.matches)}),null)}function tm(t){return s["ɵvid"](0,[s["ɵqud"](671088640,1,{ulElement:0}),s["ɵqud"](671088640,2,{liElements:1}),(t()(),s["ɵand"](16777216,null,null,2,null,zb)),s["ɵdid"](3,540672,null,0,i.NgTemplateOutlet,[s.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),s["ɵpod"](4,{matches:0,itemTemplate:1,query:2}),(t()(),s["ɵand"](0,[["bsItemTemplate",2]],null,0,null,Bb)),(t()(),s["ɵand"](0,[["bs3Template",2]],null,0,null,Kb)),(t()(),s["ɵand"](0,[["bs4Template",2]],null,0,null,Xb))],(function(t,e){var n=e.component,a=t(e,4,0,n.matches,n.itemTemplate,n.query);t(e,3,0,a,n.optionsListTemplate||s["ɵnov"](e,n.isBs4?7:6))}),null)}function em(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"typeahead-container",[["class","dropdown open bottom"],["style","position: absolute;display: block;"]],[[2,"dropdown-menu",null],[4,"height",null],[4,"visibility",null],[2,"dropup",null]],[[null,"mouseleave"],[null,"blur"]],(function(t,e,n){var a=!0;return"mouseleave"===e&&(a=!1!==s["ɵnov"](t,1).focusLost()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,1).focusLost()&&a),a}),tm,Vb)),s["ɵdid"](1,180224,null,0,sg,[na.a,s.Renderer2,s.ElementRef,s.ChangeDetectorRef],null,null)],null,(function(t,e){t(e,0,0,s["ɵnov"](e,1).isBs4,s["ɵnov"](e,1).isBs4&&s["ɵnov"](e,1).needScrollbar?s["ɵnov"](e,1).guiHeight:"auto","inherit",s["ɵnov"](e,1).dropup)}))}var nm=s["ɵccf"]("typeahead-container",sg,em,{},{},[]),am=n("ajRT"),rm=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function im(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["Deep "]))],null,null)}function sm(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["deep "]))],null,null)}function om(t){return s["ɵvid"](0,[s["ɵpid"](0,ss.a,[]),(t()(),s["ɵeld"](1,0,null,null,33,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](2,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](3,0,null,0,6,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["OSDs "])),(t()(),s["ɵeld"](5,0,null,null,3,null,null,null,null,null,null,null)),s["ɵdid"](6,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,im)),s["ɵdid"](8,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵted"](-1,null,["Scrub"])),(t()(),s["ɵeld"](10,0,null,1,24,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,23,"form",[["name","scrubForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,13).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,13).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,16).onSubmit()&&a),a}),null,null)),s["ɵdid"](12,16384,null,0,$.G,[],null,null),s["ɵdid"](13,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](15,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](16,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](17,0,null,null,11,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,10,"p",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["You are about to apply a "])),(t()(),s["ɵeld"](20,0,null,null,3,null,null,null,null,null,null,null)),s["ɵdid"](21,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sm)),s["ɵdid"](23,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵted"](-1,null,["scrub to the OSD(s): "])),(t()(),s["ɵeld"](25,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](26,null,["",""])),s["ɵppd"](27,1),(t()(),s["ɵted"](-1,null,["."])),(t()(),s["ɵeld"](29,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](30,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.scrub()&&a),a}),ws.b,ws.a)),s["ɵdid"](31,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](-1,0,["Submit"])),(t()(),s["ɵeld"](33,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Is.b,Is.a)),s["ɵdid"](34,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.bsModalRef),t(e,6,0,n.deep),t(e,8,0,"1"),t(e,13,0,n.scrubForm),t(e,16,0,n.scrubForm),t(e,21,0,n.deep),t(e,23,0,"1"),t(e,31,0,n.scrubForm),t(e,34,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,11,0,s["ɵnov"](e,15).ngClassUntouched,s["ɵnov"](e,15).ngClassTouched,s["ɵnov"](e,15).ngClassPristine,s["ɵnov"](e,15).ngClassDirty,s["ɵnov"](e,15).ngClassValid,s["ɵnov"](e,15).ngClassInvalid,s["ɵnov"](e,15).ngClassPending);var a=s["ɵunv"](e,26,0,t(e,27,0,s["ɵnov"](e,0),n.selected));t(e,26,0,a)}))}function um(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-scrub-modal",[],null,null,null,om,rm)),s["ɵdid"](1,114688,null,0,Go,[Lt.a,bi,gt.a,_a.a,ss.a],null,null)],(function(t,e){t(e,1,0)}),null)}var dm=s["ɵccf"]("cd-osd-scrub-modal",Go,um,{},{},[]),lm=s["ɵcrt"]({encapsulation:0,styles:[[".osd-modal[_ngcontent-%COMP%]   .oa-hr-small[_ngcontent-%COMP%]{margin:5px}"]],data:{}});function cm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"hr",[["class","oa-hr-small"]],null,null,null,null,null))],null,null)}function fm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"checked",0],[8,"name",0],[8,"id",0],[8,"disabled",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=0!=(t.context.$implicit.value=!t.context.$implicit.value)&&a),a}),null,null)),s["ɵdid"](2,16384,null,0,Z.h,[[3,$.d],Z.a],null,null),(t()(),s["ɵeld"](3,0,null,null,5,"label",[["class","custom-control-label"],["ng-class","['tc_' + key]"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),s["ɵted"](5,null,["",""])),(t()(),s["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](8,null,["",""])),(t()(),s["ɵand"](16777216,null,null,1,null,cm)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,10,0,!e.context.last)}),(function(t,e){t(e,1,0,e.context.$implicit.value,e.context.$implicit.code,e.context.$implicit.code,e.context.$implicit.disabled,s["ɵnov"](e,2).validClass,s["ɵnov"](e,2).invalidClass),t(e,3,0,e.context.$implicit.code),t(e,5,0,e.context.$implicit.name),t(e,8,0,e.context.$implicit.description)}))}function hm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ws.b,ws.a)),s["ɵdid"](1,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](-1,0,["Submit"]))],(function(t,e){t(e,1,0,e.component.osdFlagsForm)}),null)}function gm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,19,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](1,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Cluster-wide OSD Flags"])),(t()(),s["ɵeld"](4,0,null,1,15,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,14,"form",[["name","osdFlagsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),s["ɵdid"](6,16384,null,0,$.G,[],null,null),s["ɵdid"](7,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](9,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](10,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](11,0,null,null,2,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,fm)),s["ɵdid"](13,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵeld"](14,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](15,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,hm)),s["ɵdid"](17,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](18,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Is.b,Is.a)),s["ɵdid"](19,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdFlagsForm),t(e,10,0,n.osdFlagsForm),t(e,13,0,n.flags),t(e,17,0,n.permissions.osd.update),t(e,19,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,s["ɵnov"](e,9).ngClassUntouched,s["ɵnov"](e,9).ngClassTouched,s["ɵnov"](e,9).ngClassPristine,s["ɵnov"](e,9).ngClassDirty,s["ɵnov"](e,9).ngClassValid,s["ɵnov"](e,9).ngClassInvalid,s["ɵnov"](e,9).ngClassPending)}))}function pm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-flags-modal",[],null,null,null,gm,lm)),s["ɵdid"](1,114688,null,0,ko,[Lt.a,xt.a,bi,gt.a,_a.a],null,null)],(function(t,e){t(e,1,0)}),null)}var bm=s["ɵccf"]("cd-osd-flags-modal",ko,pm,{},{},[]),mm=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ym(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)}),(function(t,e){t(e,3,0,e.context.$implicit.text)}))}function vm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function xm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](2,0,["",""]))],null,(function(t,e){t(e,2,0,e.parent.context.$implicit.value.desc)}))}function _m(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function Tm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.patternHelpText)}))}function Om(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.maxValue)}))}function wm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.minValue)}))}function Sm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,7,"label",[["class","col-form-label col-sm-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,4,"span",[],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](7,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpod"](8,{required:0}),(t()(),s["ɵted"](9,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,xm)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](12,0,null,0,16,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,14)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,14).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,14)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,14)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,15).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,15).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,15).onTouched()&&a),a}),null,null)),s["ɵdid"](14,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](15,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](17,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](19,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](20,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,_m)),s["ɵdid"](22,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Tm)),s["ɵdid"](24,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Om)),s["ɵdid"](26,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,wm)),s["ɵdid"](28,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0);var a=t(e,8,0,n.osdRecvSpeedForm.getValue("customizePriority"));t(e,7,0,a),t(e,11,0,e.context.$implicit.value.desc),t(e,17,0,e.context.$implicit.key),t(e,20,0,e.context.$implicit.key),t(e,22,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["ɵnov"](e.parent,7),"required")),t(e,24,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["ɵnov"](e.parent,7),"pattern")),t(e,26,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["ɵnov"](e.parent,7),"max")),t(e,28,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,s["ɵnov"](e.parent,7),"min"))}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,e.context.$implicit.key),t(e,9,0,e.context.$implicit.value.text),t(e,13,1,[e.context.$implicit.key,!n.osdRecvSpeedForm.getValue("customizePriority"),s["ɵnov"](e,19).ngClassUntouched,s["ɵnov"](e,19).ngClassTouched,s["ɵnov"](e,19).ngClassPristine,s["ɵnov"](e,19).ngClassDirty,s["ɵnov"](e,19).ngClassValid,s["ɵnov"](e,19).ngClassInvalid,s["ɵnov"](e,19).ngClassPending,s["ɵnov"](e,20).validClass,s["ɵnov"](e,20).invalidClass])}))}function Im(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ws.b,ws.a)),s["ɵdid"](1,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](-1,0,["Submit"]))],(function(t,e){t(e,1,0,e.component.osdRecvSpeedForm)}),null)}function Nm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,53,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](1,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["OSD Recovery Priority"])),(t()(),s["ɵeld"](4,0,null,1,49,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,48,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),s["ɵdid"](6,16384,null,0,$.G,[],null,null),s["ɵdid"](7,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](9,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](10,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](11,0,null,null,36,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](13,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](16,0,null,0,1,"label",[["class","col-form-label col-sm-6 required"],["for","priority"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Priority"])),(t()(),s["ɵeld"](18,0,null,0,11,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","priority"],["id","priority"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,20).onTouched()&&a),"change"===e&&(a=!1!==r.onPriorityChange(n.target.value)&&a),a}),null,null)),s["ɵdid"](20,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](22,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](24,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](25,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,ym)),s["ɵdid"](27,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,vm)),s["ɵdid"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](30,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](31,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](34,0,null,0,10,"div",[["class","offset-sm-6 col-sm-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](35,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](36,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","customizePriority"],["id","customizePriority"],["name","customizePriority"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==s["ɵnov"](t,37).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,37).onTouched()&&a),"change"===e&&(a=!1!==r.onCustomizePriorityChange()&&a),a}),null,null)),s["ɵdid"](37,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](39,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](41,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](42,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](43,0,null,null,1,"label",[["class","custom-control-label"],["for","customizePriority"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Customize priority values"])),(t()(),s["ɵand"](16777216,null,null,2,null,Sm)),s["ɵdid"](46,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),s["ɵpid"](0,i.KeyValuePipe,[s.KeyValueDiffers]),(t()(),s["ɵeld"](48,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](49,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Im)),s["ɵdid"](51,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](52,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Is.b,Is.a)),s["ɵdid"](53,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdRecvSpeedForm),t(e,10,0,n.osdRecvSpeedForm),t(e,13,0),t(e,22,0,"priority"),t(e,25,0,"priority"),t(e,27,0,n.priorities),t(e,29,0,n.osdRecvSpeedForm.showError("priority",s["ɵnov"](e,7),"required")),t(e,31,0),t(e,39,0,"customizePriority"),t(e,42,0,"customizePriority"),t(e,46,0,s["ɵunv"](e,46,0,s["ɵnov"](e,47).transform(n.priorityAttrs))),t(e,51,0,n.permissions.configOpt.update),t(e,53,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,s["ɵnov"](e,9).ngClassUntouched,s["ɵnov"](e,9).ngClassTouched,s["ɵnov"](e,9).ngClassPristine,s["ɵnov"](e,9).ngClassDirty,s["ɵnov"](e,9).ngClassValid,s["ɵnov"](e,9).ngClassInvalid,s["ɵnov"](e,9).ngClassPending),t(e,12,0,s["ɵnov"](e,13).hasErrors,s["ɵnov"](e,13).hasSuccess),t(e,19,0,s["ɵnov"](e,24).ngClassUntouched,s["ɵnov"](e,24).ngClassTouched,s["ɵnov"](e,24).ngClassPristine,s["ɵnov"](e,24).ngClassDirty,s["ɵnov"](e,24).ngClassValid,s["ɵnov"](e,24).ngClassInvalid,s["ɵnov"](e,24).ngClassPending,s["ɵnov"](e,25).validClass,s["ɵnov"](e,25).invalidClass),t(e,30,0,s["ɵnov"](e,31).hasErrors,s["ɵnov"](e,31).hasSuccess),t(e,36,0,s["ɵnov"](e,41).ngClassUntouched,s["ɵnov"](e,41).ngClassTouched,s["ɵnov"](e,41).ngClassPristine,s["ɵnov"](e,41).ngClassDirty,s["ɵnov"](e,41).ngClassValid,s["ɵnov"](e,41).ngClassInvalid,s["ɵnov"](e,41).ngClassPending,s["ɵnov"](e,42).validClass,s["ɵnov"](e,42).invalidClass)}))}function Cm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-recv-speed-modal",[],null,null,null,Nm,mm)),s["ɵdid"](1,114688,null,0,qo,[Lt.a,xt.a,Eo.a,gt.a,_a.a,bi],null,null)],(function(t,e){t(e,1,0)}),null)}var Rm=s["ɵccf"]("cd-osd-recv-speed-modal",qo,Cm,{},{},[]),Am=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function km(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required."]))],null,null)}function Em(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["The value needs to be between 0 and 1."]))],null,null)}function Lm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,km)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Em)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,null==n.weight.errors?null:n.weight.errors.required),t(e,4,0,(null==n.weight.errors?null:n.weight.errors.max)||(null==n.weight.errors?null:n.weight.errors.min))}),null)}function Dm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,31,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](1,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](3,null,["Reweight OSD: ",""])),(t()(),s["ɵeld"](4,0,null,1,27,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,26,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),s["ɵdid"](6,16384,null,0,$.G,[],null,null),s["ɵdid"](7,540672,null,0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](9,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](10,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](11,0,null,null,14,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,1,"label",[["class","col-sm-2 col-form-label"],["for","weight"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Weight"])),(t()(),s["ɵeld"](15,0,null,null,10,"div",[["class","col-sm-10"]],null,null,null,null,null)),(t()(),s["ɵeld"](16,0,null,null,7,"input",[["class","form-control"],["formControlName","weight"],["id","weight"],["max","1"],["min","0"],["step","0.1"],["type","number"]],[[8,"value",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,17)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,17).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,17)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,17)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==s["ɵnov"](t,18).onChange(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,18).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,18).onTouched()&&a),a}),null,null)),s["ɵdid"](17,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵdid"](18,16384,null,0,$.w,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t,e){return[t,e]}),[$.e,$.w]),s["ɵdid"](20,671744,null,0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](22,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](23,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Lm)),s["ɵdid"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](27,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.reweight()&&a),a}),ws.b,ws.a)),s["ɵdid"](28,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](-1,0,["Reweight"])),(t()(),s["ɵeld"](30,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,Is.b,Is.a)),s["ɵdid"](31,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.reweightForm),t(e,10,0,n.reweightForm),t(e,20,0,"weight"),t(e,23,0,"weight"),t(e,25,0,n.weight.errors),t(e,28,0,n.reweightForm,n.reweightForm.invalid),t(e,31,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,3,0,n.osdId),t(e,5,0,s["ɵnov"](e,9).ngClassUntouched,s["ɵnov"](e,9).ngClassTouched,s["ɵnov"](e,9).ngClassPristine,s["ɵnov"](e,9).ngClassDirty,s["ɵnov"](e,9).ngClassValid,s["ɵnov"](e,9).ngClassInvalid,s["ɵnov"](e,9).ngClassPending),t(e,16,0,n.currentWeight,s["ɵnov"](e,22).ngClassUntouched,s["ɵnov"](e,22).ngClassTouched,s["ɵnov"](e,22).ngClassPristine,s["ɵnov"](e,22).ngClassDirty,s["ɵnov"](e,22).ngClassValid,s["ɵnov"](e,22).ngClassInvalid,s["ɵnov"](e,22).ngClassPending,s["ɵnov"](e,23).validClass,s["ɵnov"](e,23).invalidClass)}))}function Pm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-reweight-modal",[],null,null,null,Dm,Am)),s["ɵdid"](1,114688,null,0,Fo,[Lt.a,bi,jo.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Mm=s["ɵccf"]("cd-osd-reweight-modal",Fo,Pm,{},{},[]),qm=s["ɵcrt"]({encapsulation:0,styles:[[".custom-checkbox[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .custom-checkbox[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{cursor:pointer}.col-form-label[_ngcontent-%COMP%]{text-align:left}"]],data:{}});function jm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](2,0,[" ",""]))],null,(function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)}))}function Fm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,21,"div",[["class","form-group row pt-2"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,7,"label",[["class","col-form-label col-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),s["ɵted"](6,null,["",""])),(t()(),s["ɵeld"](7,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](9,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,jm)),s["ɵdid"](11,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](12,0,null,0,9,"div",[["class","col-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](14,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,15).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,15).onTouched()&&a),a}),null,null)),s["ɵdid"](15,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](17,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](19,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](20,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](21,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],(function(t,e){t(e,1,0),t(e,11,0,e.parent.context.$implicit.long_desc),t(e,17,0,e.parent.context.$implicit.name),t(e,20,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.text),t(e,9,0,e.parent.context.$implicit.desc),t(e,14,0,e.parent.context.$implicit.name,s["ɵnov"](e,19).ngClassUntouched,s["ɵnov"](e,19).ngClassTouched,s["ɵnov"](e,19).ngClassPristine,s["ɵnov"](e,19).ngClassDirty,s["ɵnov"](e,19).ngClassValid,s["ɵnov"](e,19).ngClassInvalid,s["ɵnov"](e,19).ngClassPending,s["ɵnov"](e,20).validClass,s["ɵnov"](e,20).invalidClass),t(e,21,0,e.parent.context.$implicit.name)}))}function Gm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,tu.b,tu.a)),s["ɵdid"](1,49152,null,0,eu.a,[],null,null),(t()(),s["ɵted"](2,0,[" ",""]))],null,(function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)}))}function Vm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,4,"button",[["class","btn btn-light"],["data-toggle","button"],["title","Remove the custom configuration value. The default configuration will be inherited and used instead."],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetValue(t.parent.parent.context.$implicit.name)&&a),a}),null,null)),(t()(),s["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),s["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[s.IterableDiffers,s.KeyValueDiffers,s.ElementRef,s.Renderer2]),s["ɵdid"](4,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),s["ɵpad"](5,1)],(function(t,e){var n=t(e,5,0,e.component.icons.erase);t(e,4,0,n)}),null)}function zm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ",""]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)}))}function Bm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" ",""]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)}))}function Ym(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.maxValue)}))}function Hm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.minValue)}))}function Um(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,29,"div",[["class","form-group row pt-2"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](1,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](4,0,null,0,6,"label",[["class","col-6 col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),s["ɵted"](5,null,[""," "])),(t()(),s["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),s["ɵeld"](7,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),s["ɵted"](8,null,[" "," "])),(t()(),s["ɵand"](16777216,null,null,1,null,Gm)),s["ɵdid"](10,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](11,0,null,0,18,"div",[["class","col-6"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,14)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,14).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,14)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,14)._compositionEnd(n.target.value)&&a),a}),null,null)),s["ɵdid"](14,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](16,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](18,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](19,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Vm)),s["ɵdid"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,zm)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Bm)),s["ɵdid"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Ym)),s["ɵdid"](27,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Hm)),s["ɵdid"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,e.parent.context.$implicit.long_desc),t(e,16,0,e.parent.context.$implicit.name),t(e,19,0,e.parent.context.$implicit.name),t(e,21,0,n.optionsFormShowReset),t(e,23,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"pattern")),t(e,25,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"invalidUuid")),t(e,27,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"max")),t(e,29,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"min"))}),(function(t,e){var n=e.component;t(e,0,0,s["ɵnov"](e,1).hasErrors,s["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit.name),t(e,5,0,e.parent.context.$implicit.text),t(e,8,0,e.parent.context.$implicit.desc),t(e,13,1,[e.parent.context.$implicit.additionalTypeInfo.inputType,e.parent.context.$implicit.name,e.parent.context.$implicit.additionalTypeInfo.humanReadable,n.getStep(e.parent.context.$implicit.type,n.optionsForm.getValue(e.parent.context.$implicit.name)),s["ɵnov"](e,18).ngClassUntouched,s["ɵnov"](e,18).ngClassTouched,s["ɵnov"](e,18).ngClassPristine,s["ɵnov"](e,18).ngClassDirty,s["ɵnov"](e,18).ngClassValid,s["ɵnov"](e,18).ngClassInvalid,s["ɵnov"](e,18).ngClassPending,s["ɵnov"](e,19).validClass,s["ɵnov"](e,19).invalidClass])}))}function Wm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,0,"hr",[["class","my-2"]],null,null,null,null,null))],null,null)}function Km(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Fm)),s["ɵdid"](2,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Um)),s["ɵdid"](4,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Wm)),s["ɵdid"](6,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,"bool"===e.context.$implicit.type),t(e,4,0,"bool"!==e.context.$implicit.type),t(e,6,0,!e.context.last)}),null)}function $m(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,6,"div",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,1).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,1).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,4).onSubmit()&&a),a}),null,null)),s["ɵdid"](1,540672,null,0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](3,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](4,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Km)),s["ɵdid"](6,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.optionsFormGroup),t(e,4,0,n.optionsFormGroup),t(e,6,0,n.options)}),(function(t,e){t(e,0,0,s["ɵnov"](e,3).ngClassUntouched,s["ɵnov"](e,3).ngClassTouched,s["ɵnov"](e,3).ngClassPristine,s["ɵnov"](e,3).ngClassDirty,s["ɵnov"](e,3).ngClassValid,s["ɵnov"](e,3).ngClassInvalid,s["ɵnov"](e,3).ngClassPending)}))}var Zm=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Jm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.component.advancedEnabled=!0)&&a),a}),null,null)),(t()(),s["ɵted"](-1,null,["Advanced..."]))],null,null)}function Qm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Advanced configuration options"])),(t()(),s["ɵeld"](3,0,null,null,1,"cd-config-option",[],null,null,null,$m,qm)),s["ɵdid"](4,114688,[[2,4],["advancedOptionsValues",4]],0,Do,[Eo.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.advancedOptions,n.osdPgScrubForm,s["ɵnov"](e.parent,13),"advancedFormGroup")}),null)}function Xm(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ws.b,ws.a)),s["ɵdid"](1,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](2,0,[""," ",""])),s["ɵppd"](3,1),s["ɵppd"](4,1)],(function(t,e){t(e,1,0,e.component.osdPgScrubForm)}),(function(t,e){var n=e.component,a=s["ɵunv"](e,2,0,t(e,3,0,s["ɵnov"](e.parent,0),n.action)),r=s["ɵunv"](e,2,1,t(e,4,0,s["ɵnov"](e.parent,1),n.resource));t(e,2,0,a,r)}))}function ty(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵpid"](0,Cs.a,[]),s["ɵqud"](402653184,1,{basicOptionsValues:0}),s["ɵqud"](671088640,2,{advancedOptionsValues:0}),(t()(),s["ɵeld"](4,0,null,null,27,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](5,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](6,0,null,0,3,null,null,null,null,null,null,null)),(t()(),s["ɵted"](7,null,[""," ",""])),s["ɵppd"](8,1),s["ɵppd"](9,1),(t()(),s["ɵeld"](10,0,null,1,21,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](11,0,null,null,20,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,13).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,13).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,16).onSubmit()&&a),a}),null,null)),s["ɵdid"](12,16384,null,0,$.G,[],null,null),s["ɵdid"](13,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](15,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](16,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](17,0,null,null,8,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),s["ɵeld"](18,0,null,null,1,"cd-config-option",[],null,null,null,$m,qm)),s["ɵdid"](19,114688,[[1,4],["basicOptionsValues",4]],0,Do,[Eo.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null),(t()(),s["ɵeld"](20,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),s["ɵeld"](21,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Jm)),s["ɵdid"](23,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,Qm)),s["ɵdid"](25,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](27,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,Xm)),s["ɵdid"](29,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](30,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](31,49152,null,0,Ns.a,[i.Location,At.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.bsModalRef),t(e,13,0,n.osdPgScrubForm),t(e,16,0,n.osdPgScrubForm),t(e,19,0,n.basicOptions,n.osdPgScrubForm,s["ɵnov"](e,13),"basicFormGroup"),t(e,23,0,!n.advancedEnabled),t(e,25,0,n.advancedEnabled),t(e,29,0,n.permissions.configOpt.update),t(e,31,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component,a=s["ɵunv"](e,7,0,t(e,8,0,s["ɵnov"](e,0),n.action)),r=s["ɵunv"](e,7,1,t(e,9,0,s["ɵnov"](e,1),n.resource));t(e,7,0,a,r),t(e,11,0,s["ɵnov"](e,15).ngClassUntouched,s["ɵnov"](e,15).ngClassTouched,s["ɵnov"](e,15).ngClassPristine,s["ɵnov"](e,15).ngClassDirty,s["ɵnov"](e,15).ngClassValid,s["ɵnov"](e,15).ngClassInvalid,s["ɵnov"](e,15).ngClassPending)}))}function ey(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-pg-scrub-modal",[],null,null,null,ty,Zm)),s["ɵdid"](1,49152,null,0,Mo,[Lt.a,xt.a,gt.a,_a.a,At.b],null,null)],null,null)}var ny=s["ɵccf"]("cd-osd-pg-scrub-modal",Mo,ey,{},{},[]),ay=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ry(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](1,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{value:[0,"value"]},null),s["ɵdid"](2,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),s["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function iy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function sy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["This field is required!"]))],null,null)}function oy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),s["ɵted"](2,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,s["ɵinlineInterpolate"](1,"cd-col-form-offset ",n.matcherMatch.cssClass,"")),t(e,1,0,s["ɵinlineInterpolate"](1,"text-muted ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)}))}function uy(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["Update"]))],null,null)}function dy(t){return s["ɵvid"](0,[(t()(),s["ɵted"](-1,null,["Add"]))],null,null)}function ly(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,79,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](1,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Matcher"])),(t()(),s["ɵeld"](4,0,null,1,75,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,74,"form",[["class","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),s["ɵdid"](6,16384,null,0,$.G,[],null,null),s["ɵdid"](7,540672,[["formDir",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](9,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](10,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](11,0,null,null,56,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](12,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](13,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,1,{FormControlNames:1}),s["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),s["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Name"])),(t()(),s["ɵeld"](18,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,12,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,20).onTouched()&&a),a}),null,null)),s["ɵdid"](20,16384,null,0,$.A,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.A]),s["ɵdid"](22,671744,[[1,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](24,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](25,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](26,0,null,null,3,"option",[],null,null,null,null,null)),s["ɵdid"](27,147456,null,0,$.v,[s.ElementRef,s.Renderer2,[2,$.A]],{ngValue:[0,"ngValue"]},null),s["ɵdid"](28,147456,null,0,$.F,[s.ElementRef,s.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),s["ɵted"](-1,null,["-- Select an attribute to match against --"])),(t()(),s["ɵand"](16777216,null,null,1,null,ry)),s["ɵdid"](31,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,iy)),s["ɵdid"](33,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](34,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](35,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,3,{FormControlNames:1}),s["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),s["ɵeld"](38,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","value"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Value"])),(t()(),s["ɵeld"](40,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),s["ɵeld"](41,16777216,null,null,7,"input",[["class","form-control"],["formControlName","value"],["id","value"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==s["ɵnov"](t,42)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,42).onTouched()&&a),"compositionstart"===e&&(a=!1!==s["ɵnov"](t,42)._compositionStart()&&a),"compositionend"===e&&(a=!1!==s["ɵnov"](t,42)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==s["ɵnov"](t,47).onInput(n)&&a),"keyup"===e&&(a=!1!==s["ɵnov"](t,47).onChange(n)&&a),"click"===e&&(a=!1!==s["ɵnov"](t,47).onFocus()&&a),"focus"===e&&(a=!1!==s["ɵnov"](t,47).onFocus()&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,47).onBlur()&&a),"keydown"===e&&(a=!1!==s["ɵnov"](t,47).onKeydown(n)&&a),a}),null,null)),s["ɵdid"](42,16384,null,0,$.e,[s.Renderer2,s.ElementRef,[2,$.b]],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.e]),s["ɵdid"](44,671744,[[3,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](46,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](47,212992,null,0,ug,[W.a,og,s.ChangeDetectorRef,s.ElementRef,$.q,s.Renderer2,s.ViewContainerRef],{typeahead:[0,"typeahead"],typeaheadMinLength:[1,"typeaheadMinLength"]},null),s["ɵdid"](48,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,sy)),s["ɵdid"](50,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵand"](16777216,null,0,1,null,oy)),s["ɵdid"](52,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](53,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,Ts.b,Ts.a)),s["ɵdid"](54,1163264,null,2,Z.c,[s.ElementRef,Z.g],null,null),s["ɵqud"](603979776,5,{FormControlNames:1}),s["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),s["ɵeld"](57,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),s["ɵeld"](58,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),s["ɵeld"](59,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","isRegex"],["id","is-regex"],["name","is-regex"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==s["ɵnov"](t,60).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==s["ɵnov"](t,60).onTouched()&&a),a}),null,null)),s["ɵdid"](60,16384,null,0,$.c,[s.Renderer2,s.ElementRef],null,null),s["ɵprd"](1024,null,$.p,(function(t){return[t]}),[$.c]),s["ɵdid"](62,671744,[[5,4]],0,$.j,[[3,$.d],[8,null],[8,null],[6,$.p],[2,$.E]],{name:[0,"name"]},null),s["ɵprd"](2048,null,$.q,null,[$.j]),s["ɵdid"](64,16384,null,0,$.r,[[4,$.q]],null,null),s["ɵdid"](65,16384,null,0,Z.h,[[3,$.d],Z.a],{formControlName:[0,"formControlName"]},null),(t()(),s["ɵeld"](66,0,null,null,1,"label",[["class","custom-control-label"],["for","is-regex"]],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["Use regular expression"])),(t()(),s["ɵeld"](68,0,null,null,11,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](69,0,null,null,8,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](70,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵeld"](71,0,null,0,6,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](72,0,null,null,5,null,null,null,null,null,null,null)),s["ɵdid"](73,16384,null,0,i.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,uy)),s["ɵdid"](75,278528,null,0,i.NgSwitchCase,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),s["ɵand"](16777216,null,null,1,null,dy)),s["ɵdid"](77,16384,null,0,i.NgSwitchDefault,[s.ViewContainerRef,s.TemplateRef,i.NgSwitch],null,null),(t()(),s["ɵeld"](78,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,Is.b,Is.a)),s["ɵdid"](79,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.form),t(e,10,0,n.form),t(e,13,0),t(e,22,0,"name"),t(e,25,0,"name"),t(e,27,0,null),t(e,28,0,null),t(e,31,0,n.nameAttributes),t(e,33,0,n.form.showError("name",s["ɵnov"](e,7),"required")),t(e,35,0),t(e,44,0,"value"),t(e,47,0,n.possibleValues,0),t(e,48,0,"value"),t(e,50,0,n.form.showError("value",s["ɵnov"](e,7),"required")),t(e,52,0,n.form.getValue("value")&&!n.form.getValue("isRegex")&&n.matcherMatch),t(e,54,0),t(e,62,0,"isRegex"),t(e,65,0,"isRegex"),t(e,70,0,n.form),t(e,73,0,n.editMode),t(e,75,0,"1"),t(e,79,0,"Close",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,s["ɵnov"](e,9).ngClassUntouched,s["ɵnov"](e,9).ngClassTouched,s["ɵnov"](e,9).ngClassPristine,s["ɵnov"](e,9).ngClassDirty,s["ɵnov"](e,9).ngClassValid,s["ɵnov"](e,9).ngClassInvalid,s["ɵnov"](e,9).ngClassPending),t(e,12,0,s["ɵnov"](e,13).hasErrors,s["ɵnov"](e,13).hasSuccess),t(e,19,0,s["ɵnov"](e,24).ngClassUntouched,s["ɵnov"](e,24).ngClassTouched,s["ɵnov"](e,24).ngClassPristine,s["ɵnov"](e,24).ngClassDirty,s["ɵnov"](e,24).ngClassValid,s["ɵnov"](e,24).ngClassInvalid,s["ɵnov"](e,24).ngClassPending,s["ɵnov"](e,25).validClass,s["ɵnov"](e,25).invalidClass),t(e,34,0,s["ɵnov"](e,35).hasErrors,s["ɵnov"](e,35).hasSuccess),t(e,41,0,s["ɵnov"](e,46).ngClassUntouched,s["ɵnov"](e,46).ngClassTouched,s["ɵnov"](e,46).ngClassPristine,s["ɵnov"](e,46).ngClassDirty,s["ɵnov"](e,46).ngClassValid,s["ɵnov"](e,46).ngClassInvalid,s["ɵnov"](e,46).ngClassPending,s["ɵnov"](e,48).validClass,s["ɵnov"](e,48).invalidClass),t(e,53,0,s["ɵnov"](e,54).hasErrors,s["ɵnov"](e,54).hasSuccess),t(e,59,0,s["ɵnov"](e,64).ngClassUntouched,s["ɵnov"](e,64).ngClassTouched,s["ɵnov"](e,64).ngClassPristine,s["ɵnov"](e,64).ngClassDirty,s["ɵnov"](e,64).ngClassValid,s["ɵnov"](e,64).ngClassInvalid,s["ɵnov"](e,64).ngClassPending,s["ɵnov"](e,65).validClass,s["ɵnov"](e,65).invalidClass)}))}function cy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-silence-matcher-modal",[],null,null,null,ly,ay)),s["ɵdid"](1,49152,null,0,Oc,[jo.a,_c,Lt.a],null,null)],null,null)}var fy=s["ɵccf"]("cd-silence-matcher-modal",Oc,cy,{},{submitAction:"submitAction"},[]),hy=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function gy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"span",[["class","badge badge-dark ml-2"]],null,null,null,null,null)),(t()(),s["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.context.$implicit)}))}function py(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,jr.b,jr.a)),s["ɵdid"](1,114688,null,0,Fr.a,[_a.a],{type:[0,"type"],size:[1,"size"],showTitle:[2,"showTitle"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["At least one of these filters must be applied in order to proceed:"])),(t()(),s["ɵand"](16777216,null,0,1,null,gy)),s["ɵdid"](5,278528,null,0,i.NgForOf,[s.ViewContainerRef,s.TemplateRef,s.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"warning","slim",!1),t(e,5,0,n.requiredFilters)}),null)}function by(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),s["ɵeld"](1,0,null,null,3,"p",[["class","text-center"]],null,null,null,null,null)),(t()(),s["ɵeld"](2,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),s["ɵted"](3,null,["Number of devices: ",". Raw capacity: ","."])),s["ɵppd"](4,1)],null,(function(t,e){var n=e.component,a=n.filteredDevices.length,r=s["ɵunv"](e,3,1,t(e,4,0,s["ɵnov"](e.parent,0),n.capacity));t(e,3,0,a,r)}))}function my(t){return s["ɵvid"](0,[s["ɵpid"](0,ga.a,[Ia.a]),s["ɵpid"](0,i.TitleCasePipe,[]),s["ɵqud"](671088640,1,{inventoryDevices:0}),(t()(),s["ɵeld"](3,0,null,null,25,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](4,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](5,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](6,null,[""," devices"])),(t()(),s["ɵeld"](7,0,null,1,21,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](8,0,null,null,20,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,10).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,10).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,13).onSubmit()&&a),a}),null,null)),s["ɵdid"](9,16384,null,0,$.G,[],null,null),s["ɵdid"](10,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](12,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](13,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](14,0,null,null,7,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵand"](16777216,null,null,1,null,py)),s["ɵdid"](16,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](17,0,null,null,2,"cd-inventory-devices",[],null,[[null,"filterChange"]],(function(t,e,n){var a=!0;return"filterChange"===e&&(a=!1!==t.component.onFilterChange(n)&&a),a}),$r,Kr)),s["ɵdid"](18,245760,[[1,4],["inventoryDevices",4]],0,Wr,[xt.a,ga.a,_a.a,Lt.b,gt.a,Br],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],filterColumns:[2,"filterColumns"]},{filterChange:"filterChange"}),s["ɵpad"](19,2),(t()(),s["ɵand"](16777216,null,null,1,null,by)),s["ɵdid"](21,16384,null,0,i.NgIf,[s.ViewContainerRef,s.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),s["ɵeld"](22,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](23,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](24,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](25,0,["",""])),s["ɵppd"](26,1),(t()(),s["ɵeld"](27,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](28,49152,null,0,Ns.a,[i.Location,At.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.bsModalRef),t(e,10,0,n.formGroup),t(e,13,0,n.formGroup),t(e,16,0,!n.canSubmit);var a=n.devices,r=t(e,19,0,"available","osd_ids");t(e,18,0,a,r,n.filterColumns),t(e,21,0,n.canSubmit),t(e,24,0,n.formGroup,!n.canSubmit||0===n.filteredDevices.length),t(e,28,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,6,0,n.deviceType),t(e,8,0,s["ɵnov"](e,12).ngClassUntouched,s["ɵnov"](e,12).ngClassTouched,s["ɵnov"](e,12).ngClassPristine,s["ɵnov"](e,12).ngClassDirty,s["ɵnov"](e,12).ngClassValid,s["ɵnov"](e,12).ngClassInvalid,s["ɵnov"](e,12).ngClassPending);var a=s["ɵunv"](e,25,0,t(e,26,0,s["ɵnov"](e,1),n.action));t(e,25,0,a)}))}function yy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-devices-selection-modal",[],null,null,null,my,hy)),s["ɵdid"](1,4243456,null,0,nu,[jo.a,Lt.a,At.b],null,null)],null,null)}var vy=s["ɵccf"]("cd-osd-devices-selection-modal",nu,yy,{},{submitAction:"submitAction"},[]),xy=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _y(t){return s["ɵvid"](0,[s["ɵpid"](0,i.TitleCasePipe,[]),(t()(),s["ɵeld"](1,0,null,null,23,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](2,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](3,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["OSD creation preview"])),(t()(),s["ɵeld"](5,0,null,1,19,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,18,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==s["ɵnov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==s["ɵnov"](t,8).onReset()&&a),"submit"===e&&(a=!1!==s["ɵnov"](t,11).onSubmit()&&a),a}),null,null)),s["ɵdid"](7,16384,null,0,$.G,[],null,null),s["ɵdid"](8,540672,[["frm",4]],0,$.l,[[8,null],[8,null]],{form:[0,"form"]},null),s["ɵprd"](2048,null,$.d,null,[$.l]),s["ɵdid"](10,16384,null,0,$.s,[[4,$.d]],null,null),s["ɵdid"](11,16384,null,0,Z.d,[],{formGroup:[0,"formGroup"]},null),(t()(),s["ɵeld"](12,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](13,0,null,null,1,"h3",[],null,null,null,null,null)),(t()(),s["ɵted"](-1,null,["DriveGroups"])),(t()(),s["ɵeld"](15,0,null,null,2,"pre",[],null,null,null,null,null)),(t()(),s["ɵted"](16,null,["",""])),s["ɵpid"](0,i.JsonPipe,[]),(t()(),s["ɵeld"](18,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](19,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ws.b,ws.a)),s["ɵdid"](20,114688,null,0,Ss.a,[s.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),s["ɵted"](21,0,["",""])),s["ɵppd"](22,1),(t()(),s["ɵeld"](23,0,null,null,1,"cd-back-button",[],null,null,null,Is.b,Is.a)),s["ɵdid"](24,49152,null,0,Ns.a,[i.Location,At.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.bsModalRef),t(e,8,0,n.formGroup),t(e,11,0,n.formGroup),t(e,20,0,n.formGroup),t(e,24,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,6,0,s["ɵnov"](e,10).ngClassUntouched,s["ɵnov"](e,10).ngClassTouched,s["ɵnov"](e,10).ngClassPristine,s["ɵnov"](e,10).ngClassDirty,s["ɵnov"](e,10).ngClassValid,s["ɵnov"](e,10).ngClassInvalid,s["ɵnov"](e,10).ngClassPending),t(e,16,0,s["ɵunv"](e,16,0,s["ɵnov"](e,17).transform(n.driveGroups)));var a=s["ɵunv"](e,21,0,t(e,22,0,s["ɵnov"](e,0),n.action));t(e,21,0,a)}))}function Ty(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-osd-creation-preview-modal",[],null,null,null,_y,xy)),s["ɵdid"](1,114688,null,0,hu,[Lt.a,At.b,jo.a,bi,ds.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Oy=s["ɵccf"]("cd-osd-creation-preview-modal",hu,Ty,{driveGroups:"driveGroups"},{submitAction:"submitAction"},[]),wy=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Sy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,10,"cd-modal",[],null,null,null,Eb.c,Eb.b)),s["ɵdid"](1,49152,null,0,am.a,[],{modalRef:[0,"modalRef"]},null),(t()(),s["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),s["ɵted"](3,null,[""," ",""])),(t()(),s["ɵeld"](4,0,null,1,6,null,null,null,null,null,null,null)),(t()(),s["ɵeld"](5,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),s["ɵeld"](6,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,zr,Vr)),s["ɵdid"](7,114688,null,0,Gr,[vt.a,pt.a],null,null),(t()(),s["ɵeld"](8,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),s["ɵeld"](9,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,Is.b,Is.a)),s["ɵdid"](10,49152,null,0,Ns.a,[i.Location,At.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0),t(e,10,0,"Close",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,3,0,n.actionDescription,n.itemDescription)}))}function Iy(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-modal",[],null,null,null,Sy,wy)),s["ɵdid"](1,114688,null,0,os,[Lt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Ny=s["ɵccf"]("cd-orchestrator-doc-modal",os,Iy,{},{},[]),Cy=s["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ry(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),s["ɵdid"](1,212992,null,0,qt.r,[qt.b,s.ViewContainerRef,s.ComponentFactoryResolver,[8,null],s.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function Ay(t){return s["ɵvid"](0,[(t()(),s["ɵeld"](0,0,null,null,1,"cd-root",[],null,null,null,Ry,Cy)),s["ɵdid"](1,49152,null,0,l,[],null,null)],null,null)}var ky=s["ɵccf"]("cd-root",l,Ay,{},{},[]),Ey=new s.InjectionToken("JWT_OPTIONS"),Ly=function(){function t(t){void 0===t&&(t=null),this.tokenGetter=t&&t.tokenGetter||function(){}}return t.prototype.urlBase64Decode=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}return this.b64DecodeUnicode(e)},t.prototype.b64decode=function(t){var e="";if((t=String(t).replace(/=+$/,"")).length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var n=0,a=void 0,r=void 0,i=0;r=t.charAt(i++);~r&&(a=n%4?64*a+r:r,n++%4)?e+=String.fromCharCode(255&a>>(-2*n&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return e},t.prototype.b64DecodeUnicode=function(t){return decodeURIComponent(Array.prototype.map.call(this.b64decode(t),(function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)})).join(""))},t.prototype.decodeToken=function(t){if(void 0===t&&(t=this.tokenGetter()),null===t)return null;var e=t.split(".");if(3!==e.length)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");var n=this.urlBase64Decode(e[1]);if(!n)throw new Error("Cannot decode the token.");return JSON.parse(n)},t.prototype.getTokenExpirationDate=function(t){var e;if(void 0===t&&(t=this.tokenGetter()),!(e=this.decodeToken(t)).hasOwnProperty("exp"))return null;var n=new Date(0);return n.setUTCSeconds(e.exp),n},t.prototype.isTokenExpired=function(t,e){if(void 0===t&&(t=this.tokenGetter()),null===t||""===t)return!0;var n=this.getTokenExpirationDate(t);return e=e||0,null===n||!(n.valueOf()>(new Date).valueOf()+1e3*e)},t}(),Dy=n("CxY0"),Py=function(){function t(t,e){this.jwtHelper=e,this.tokenGetter=t.tokenGetter,this.headerName=t.headerName||"Authorization",this.authScheme=t.authScheme||""===t.authScheme?t.authScheme:"Bearer ",this.whitelistedDomains=t.whitelistedDomains||[],this.blacklistedRoutes=t.blacklistedRoutes||[],this.throwNoTokenError=t.throwNoTokenError||!1,this.skipWhenExpired=t.skipWhenExpired}return t.prototype.isWhitelistedDomain=function(t){var e=Object(Dy.parse)(t.url,!1,!0);return null===e.host||this.whitelistedDomains.findIndex((function(t){return"string"==typeof t?t===e.host:t instanceof RegExp&&t.test(e.host)}))>-1},t.prototype.isBlacklistedRoute=function(t){var e=t.url;return this.blacklistedRoutes.findIndex((function(t){return"string"==typeof t?t===e:t instanceof RegExp&&t.test(e)}))>-1},t.prototype.handleInterception=function(t,e,n){var a,r=!1;if(!t&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");return this.skipWhenExpired&&(r=!t||this.jwtHelper.isTokenExpired(t)),t&&r&&this.skipWhenExpired?e=e.clone():t&&(e=e.clone({setHeaders:(a={},a[this.headerName]=""+this.authScheme+t,a)})),n.handle(e)},t.prototype.intercept=function(t,e){var n=this;if(!this.isWhitelistedDomain(t)||this.isBlacklistedRoute(t))return e.handle(t);var a=this.tokenGetter();return a instanceof Promise?Object(Sn.a)(a).pipe(Object(Nn.a)((function(a){return n.handleInterception(a,t,e)}))):this.handleInterception(a,t,e)},t}(),My=n("z6cu"),qy=n("JIr8");let jy=(()=>{class t{constructor(t,e,n){this.router=t,this.authStorageService=e,this.notificationService=n}intercept(t,e){return e.handle(t).pipe(Object(qy.a)(t=>{if(t instanceof X.f){let e;switch(t.status){case 400:const n=new rs.a,a=t.error.task;J.isPlainObject(a)?(a.metadata.component=a.metadata.component||t.error.component,n.name=a.name,n.metadata=a.metadata):n.metadata=t.error,n.success=!1,n.exception=t.error,e=this.notificationService.notifyTask(n);break;case 401:this.authStorageService.remove(),this.router.navigate(["/login"]);break;case 403:this.router.navigate(["/403"]);break;default:e=this.prepareNotification(t)}t.preventDefault=()=>{this.notificationService.cancel(e)},t.ignoreStatusCode=function(t){this.status===t&&this.preventDefault()}}return Object(My.a)(t)}))}prepareNotification(t){return this.notificationService.show(()=>{let e="";return J.isPlainObject(t.error)&&J.isString(t.error.detail)?e=t.error.detail:J.isString(t.error)?e=t.error:J.isString(t.message)&&(e=t.message),new Te.b(Ie.a.error,`${t.status} - ${t.statusText}`,e,void 0,t.application)})}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](qt.m),s["ɵɵinject"](xt.a),s["ɵɵinject"](gt.a))},token:t,providedIn:"root"}),t})();function Fy(){return"undefined"!=typeof process}function Gy(t){switch(t.length){case 0:return new K.d;case 1:return t[0];default:return new K.k(t)}}function Vy(t,e,n,a,r={},i={}){const s=[],o=[];let u=-1,d=null;if(a.forEach(t=>{const n=t.offset,a=n==u,l=a&&d||{};Object.keys(t).forEach(n=>{let a=n,o=t[n];if("offset"!==n)switch(a=e.normalizePropertyName(a,s),o){case K.l:o=r[n];break;case K.a:o=i[n];break;default:o=e.normalizeStyleValue(n,a,o,s)}l[a]=o}),a||o.push(l),d=l,u=n}),s.length){const t="\n - ";throw new Error(`Unable to animate due to the following errors:${t}${s.join(t)}`)}return o}function zy(t,e,n,a){switch(e){case"start":t.onStart(()=>a(n&&By(n,"start",t)));break;case"done":t.onDone(()=>a(n&&By(n,"done",t)));break;case"destroy":t.onDestroy(()=>a(n&&By(n,"destroy",t)))}}function By(t,e,n){const a=n.totalTime,r=Yy(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==a?t.totalTime:a,!!n.disabled),i=t._data;return null!=i&&(r._data=i),r}function Yy(t,e,n,a,r="",i=0,s){return{element:t,triggerName:e,fromState:n,toState:a,phaseName:r,totalTime:i,disabled:!!s}}function Hy(t,e,n){let a;return t instanceof Map?(a=t.get(e),a||t.set(e,a=n)):(a=t[e],a||(a=t[e]=n)),a}function Uy(t){const e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}let Wy=(t,e)=>!1,Ky=(t,e)=>!1,$y=(t,e,n)=>[];const Zy=Fy();(Zy||"undefined"!=typeof Element)&&(Wy=(t,e)=>t.contains(e),Ky=(()=>{if(Zy||Element.prototype.matches)return(t,e)=>t.matches(e);{const t=Element.prototype,e=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector;return e?(t,n)=>e.apply(t,[n]):Ky}})(),$y=(t,e,n)=>{let a=[];if(n)a.push(...t.querySelectorAll(e));else{const n=t.querySelector(e);n&&a.push(n)}return a});let Jy=null,Qy=!1;function Xy(t){Jy||(Jy=("undefined"!=typeof document?document.body:null)||{},Qy=!!Jy.style&&"WebkitAppearance"in Jy.style);let e=!0;return Jy.style&&!function(t){return"ebkit"==t.substring(1,6)}(t)&&(e=t in Jy.style,!e&&Qy)&&(e="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in Jy.style),e}const tv=Ky,ev=Wy,nv=$y;function av(t){const e={};return Object.keys(t).forEach(n=>{const a=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[a]=t[n]}),e}class rv{validateStyleProperty(t){return Xy(t)}matchesElement(t,e){return tv(t,e)}containsElement(t,e){return ev(t,e)}query(t,e,n){return nv(t,e,n)}computeStyle(t,e,n){return n||""}animate(t,e,n,a,r,i=[],s){return new K.d(n,a)}}let iv=(()=>{class t{}return t.NOOP=new rv,t})();function sv(t){if("number"==typeof t)return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:ov(parseFloat(e[1]),e[2])}function ov(t,e){switch(e){case"s":return 1e3*t;default:return t}}function uv(t,e,n){return t.hasOwnProperty("duration")?t:function(t,e,n){let a,r=0,i="";if("string"==typeof t){const n=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===n)return e.push(`The provided timing value "${t}" is invalid.`),{duration:0,delay:0,easing:""};a=ov(parseFloat(n[1]),n[2]);const s=n[3];null!=s&&(r=ov(parseFloat(s),n[4]));const o=n[5];o&&(i=o)}else a=t;if(!n){let n=!1,i=e.length;a<0&&(e.push("Duration values below 0 are not allowed for this animation step."),n=!0),r<0&&(e.push("Delay values below 0 are not allowed for this animation step."),n=!0),n&&e.splice(i,0,`The provided timing value "${t}" is invalid.`)}return{duration:a,delay:r,easing:i}}(t,e,n)}function dv(t,e={}){return Object.keys(t).forEach(n=>{e[n]=t[n]}),e}function lv(t,e,n={}){if(e)for(let a in t)n[a]=t[a];else dv(t,n);return n}function cv(t,e,n){return n?e+":"+n+";":""}function fv(t){let e="";for(let n=0;n<t.style.length;n++){const a=t.style.item(n);e+=cv(0,a,t.style.getPropertyValue(a))}for(const n in t.style)t.style.hasOwnProperty(n)&&!n.startsWith("_")&&(e+=cv(0,n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t.style[n]));t.setAttribute("style",e)}function hv(t,e,n){t.style&&(Object.keys(e).forEach(a=>{const r=_v(a);n&&!n.hasOwnProperty(a)&&(n[a]=t.style[r]),t.style[r]=e[a]}),Fy()&&fv(t))}function gv(t,e){t.style&&(Object.keys(e).forEach(e=>{const n=_v(e);t.style[n]=""}),Fy()&&fv(t))}function pv(t){return Array.isArray(t)?1==t.length?t[0]:Object(K.f)(t):t}const bv=new RegExp("{{\\s*(.+?)\\s*}}","g");function mv(t){let e=[];if("string"==typeof t){const n=t.toString();let a;for(;a=bv.exec(n);)e.push(a[1]);bv.lastIndex=0}return e}function yv(t,e,n){const a=t.toString(),r=a.replace(bv,(t,a)=>{let r=e[a];return e.hasOwnProperty(a)||(n.push(`Please provide a value for the animation param ${a}`),r=""),r.toString()});return r==a?t:r}function vv(t){const e=[];let n=t.next();for(;!n.done;)e.push(n.value),n=t.next();return e}const xv=/-+([a-z0-9])/g;function _v(t){return t.replace(xv,(...t)=>t[1].toUpperCase())}function Tv(t,e){return 0===t||0===e}function Ov(t,e,n){const a=Object.keys(n);if(a.length&&e.length){let i=e[0],s=[];if(a.forEach(t=>{i.hasOwnProperty(t)||s.push(t),i[t]=n[t]}),s.length)for(var r=1;r<e.length;r++){let n=e[r];s.forEach((function(e){n[e]=Sv(t,e)}))}}return e}function wv(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw new Error(`Unable to resolve animation metadata node #${e.type}`)}}function Sv(t,e){return window.getComputedStyle(t)[e]}function Iv(t,e){const n=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(t=>function(t,e,n){if(":"==t[0]){const a=function(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,e)=>parseFloat(e)>parseFloat(t);case":decrement":return(t,e)=>parseFloat(e)<parseFloat(t);default:return e.push(`The transition alias value "${t}" is not supported`),"* => *"}}(t,n);if("function"==typeof a)return void e.push(a);t=a}const a=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==a||a.length<4)return n.push(`The provided transition expression "${t}" is not supported`),e;const r=a[1],i=a[2],s=a[3];e.push(Rv(r,s)),"<"!=i[0]||"*"==r&&"*"==s||e.push(Rv(s,r))}(t,n,e)):n.push(t),n}const Nv=new Set(["true","1"]),Cv=new Set(["false","0"]);function Rv(t,e){const n=Nv.has(t)||Cv.has(t),a=Nv.has(e)||Cv.has(e);return(r,i)=>{let s="*"==t||t==r,o="*"==e||e==i;return!s&&n&&"boolean"==typeof r&&(s=r?Nv.has(t):Cv.has(t)),!o&&a&&"boolean"==typeof i&&(o=i?Nv.has(e):Cv.has(e)),s&&o}}const Av=new RegExp("s*:selfs*,?","g");function kv(t,e,n){return new Ev(t).build(e,n)}class Ev{constructor(t){this._driver=t}build(t,e){const n=new Lv(e);return this._resetContextStyleTimingState(n),wv(this,pv(t),n)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let n=e.queryCount=0,a=e.depCount=0;const r=[],i=[];return"@"==t.name.charAt(0)&&e.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),t.definitions.forEach(t=>{if(this._resetContextStyleTimingState(e),0==t.type){const n=t,a=n.name;a.toString().split(/\s*,\s*/).forEach(t=>{n.name=t,r.push(this.visitState(n,e))}),n.name=a}else if(1==t.type){const r=this.visitTransition(t,e);n+=r.queryCount,a+=r.depCount,i.push(r)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:t.name,states:r,transitions:i,queryCount:n,depCount:a,options:null}}visitState(t,e){const n=this.visitStyle(t.styles,e),a=t.options&&t.options.params||null;if(n.containsDynamicStyles){const r=new Set,i=a||{};if(n.styles.forEach(t=>{if(Dv(t)){const e=t;Object.keys(e).forEach(t=>{mv(e[t]).forEach(t=>{i.hasOwnProperty(t)||r.add(t)})})}}),r.size){const n=vv(r.values());e.errors.push(`state("${t.name}", ...) must define default values for all the following style substitutions: ${n.join(", ")}`)}}return{type:0,name:t.name,style:n,options:a?{params:a}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const n=wv(this,pv(t.animation),e);return{type:1,matchers:Iv(t.expr,e.errors),animation:n,queryCount:e.queryCount,depCount:e.depCount,options:Pv(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(t=>wv(this,t,e)),options:Pv(t.options)}}visitGroup(t,e){const n=e.currentTime;let a=0;const r=t.steps.map(t=>{e.currentTime=n;const r=wv(this,t,e);return a=Math.max(a,e.currentTime),r});return e.currentTime=a,{type:3,steps:r,options:Pv(t.options)}}visitAnimate(t,e){const n=function(t,e){let n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return Mv(uv(t,e).duration,0,"");const a=t;if(a.split(/\s+/).some(t=>"{"==t.charAt(0)&&"{"==t.charAt(1))){const t=Mv(0,0,"");return t.dynamic=!0,t.strValue=a,t}return n=n||uv(a,e),Mv(n.duration,n.delay,n.easing)}(t.timings,e.errors);let a;e.currentAnimateTimings=n;let r=t.styles?t.styles:Object(K.h)({});if(5==r.type)a=this.visitKeyframes(r,e);else{let r=t.styles,i=!1;if(!r){i=!0;const t={};n.easing&&(t.easing=n.easing),r=Object(K.h)(t)}e.currentTime+=n.duration+n.delay;const s=this.visitStyle(r,e);s.isEmptyStep=i,a=s}return e.currentAnimateTimings=null,{type:4,timings:n,style:a,options:null}}visitStyle(t,e){const n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n}_makeStyleAst(t,e){const n=[];Array.isArray(t.styles)?t.styles.forEach(t=>{"string"==typeof t?t==K.a?n.push(t):e.errors.push(`The provided style string value ${t} is not allowed.`):n.push(t)}):n.push(t.styles);let a=!1,r=null;return n.forEach(t=>{if(Dv(t)){const e=t,n=e.easing;if(n&&(r=n,delete e.easing),!a)for(let t in e)if(e[t].toString().indexOf("{{")>=0){a=!0;break}}}),{type:6,styles:n,easing:r,offset:t.offset,containsDynamicStyles:a,options:null}}_validateStyleAst(t,e){const n=e.currentAnimateTimings;let a=e.currentTime,r=e.currentTime;n&&r>0&&(r-=n.duration+n.delay),t.styles.forEach(t=>{"string"!=typeof t&&Object.keys(t).forEach(n=>{if(!this._driver.validateStyleProperty(n))return void e.errors.push(`The provided animation property "${n}" is not a supported CSS property for animations`);const i=e.collectedStyles[e.currentQuerySelector],s=i[n];let o=!0;s&&(r!=a&&r>=s.startTime&&a<=s.endTime&&(e.errors.push(`The CSS property "${n}" that exists between the times of "${s.startTime}ms" and "${s.endTime}ms" is also being animated in a parallel animation between the times of "${r}ms" and "${a}ms"`),o=!1),r=s.startTime),o&&(i[n]={startTime:r,endTime:a}),e.options&&function(t,e,n){const a=e.params||{},r=mv(t);r.length&&r.forEach(t=>{a.hasOwnProperty(t)||n.push(`Unable to resolve the local animation param ${t} in the given list of values`)})}(t[n],e.options,e.errors)})})}visitKeyframes(t,e){const n={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),n;let a=0;const r=[];let i=!1,s=!1,o=0;const u=t.steps.map(t=>{const n=this._makeStyleAst(t,e);let u=null!=n.offset?n.offset:function(t){if("string"==typeof t)return null;let e=null;if(Array.isArray(t))t.forEach(t=>{if(Dv(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}});else if(Dv(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}return e}(n.styles),d=0;return null!=u&&(a++,d=n.offset=u),s=s||d<0||d>1,i=i||d<o,o=d,r.push(d),n});s&&e.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),i&&e.errors.push("Please ensure that all keyframe offsets are in order");const d=t.steps.length;let l=0;a>0&&a<d?e.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==a&&(l=1/(d-1));const c=d-1,f=e.currentTime,h=e.currentAnimateTimings,g=h.duration;return u.forEach((t,a)=>{const i=l>0?a==c?1:l*a:r[a],s=i*g;e.currentTime=f+h.delay+s,h.duration=s,this._validateStyleAst(t,e),t.offset=i,n.styles.push(t)}),n}visitReference(t,e){return{type:8,animation:wv(this,pv(t.animation),e),options:Pv(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Pv(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Pv(t.options)}}visitQuery(t,e){const n=e.currentQuerySelector,a=t.options||{};e.queryCount++,e.currentQuery=t;const[r,i]=function(t){const e=!!t.split(/\s*,\s*/).find(t=>":self"==t);return e&&(t=t.replace(Av,"")),[t=t.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,t=>".ng-trigger-"+t.substr(1)).replace(/:animating/g,".ng-animating"),e]}(t.selector);e.currentQuerySelector=n.length?n+" "+r:r,Hy(e.collectedStyles,e.currentQuerySelector,{});const s=wv(this,pv(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:r,limit:a.limit||0,optional:!!a.optional,includeSelf:i,animation:s,originalSelector:t.selector,options:Pv(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");const n="full"===t.timings?{duration:0,delay:0,easing:"full"}:uv(t.timings,e.errors,!0);return{type:12,animation:wv(this,pv(t.animation),e),timings:n,options:null}}}class Lv{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={},this.options=null}}function Dv(t){return!Array.isArray(t)&&"object"==typeof t}function Pv(t){var e;return t?(t=dv(t)).params&&(t.params=(e=t.params)?dv(e):null):t={},t}function Mv(t,e,n){return{duration:t,delay:e,easing:n}}function qv(t,e,n,a,r,i,s=null,o=!1){return{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:a,duration:r,delay:i,totalTime:r+i,easing:s,subTimeline:o}}class jv{constructor(){this._map=new Map}consume(t){let e=this._map.get(t);return e?this._map.delete(t):e=[],e}append(t,e){let n=this._map.get(t);n||this._map.set(t,n=[]),n.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const Fv=new RegExp(":enter","g"),Gv=new RegExp(":leave","g");function Vv(t,e,n,a,r,i={},s={},o,u,d=[]){return(new zv).buildKeyframes(t,e,n,a,r,i,s,o,u,d)}class zv{buildKeyframes(t,e,n,a,r,i,s,o,u,d=[]){u=u||new jv;const l=new Yv(t,e,u,a,r,d,[]);l.options=o,l.currentTimeline.setStyles([i],null,l.errors,o),wv(this,n,l);const c=l.timelines.filter(t=>t.containsAnimation());if(c.length&&Object.keys(s).length){const t=c[c.length-1];t.allowOnlyTimelineStyles()||t.setStyles([s],null,l.errors,o)}return c.length?c.map(t=>t.buildKeyframes()):[qv(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const n=e.subInstructions.consume(e.element);if(n){const a=e.createSubContext(t.options),r=e.currentTimeline.currentTime,i=this._visitSubInstructions(n,a,a.options);r!=i&&e.transformIntoNewTimeline(i)}e.previousNode=t}visitAnimateRef(t,e){const n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,n){let a=e.currentTimeline.currentTime;const r=null!=n.duration?sv(n.duration):null,i=null!=n.delay?sv(n.delay):null;return 0!==r&&t.forEach(t=>{const n=e.appendInstructionToTimeline(t,r,i);a=Math.max(a,n.duration+n.delay)}),a}visitReference(t,e){e.updateOptions(t.options,!0),wv(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const n=e.subContextCount;let a=e;const r=t.options;if(r&&(r.params||r.delay)&&(a=e.createSubContext(r),a.transformIntoNewTimeline(),null!=r.delay)){6==a.previousNode.type&&(a.currentTimeline.snapshotCurrentStyles(),a.previousNode=Bv);const t=sv(r.delay);a.delayNextStep(t)}t.steps.length&&(t.steps.forEach(t=>wv(this,t,a)),a.currentTimeline.applyStylesToKeyframe(),a.subContextCount>n&&a.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const n=[];let a=e.currentTimeline.currentTime;const r=t.options&&t.options.delay?sv(t.options.delay):0;t.steps.forEach(i=>{const s=e.createSubContext(t.options);r&&s.delayNextStep(r),wv(this,i,s),a=Math.max(a,s.currentTimeline.currentTime),n.push(s.currentTimeline)}),n.forEach(t=>e.currentTimeline.mergeTimelineCollectedStyles(t)),e.transformIntoNewTimeline(a),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const n=t.strValue;return uv(e.params?yv(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const n=e.currentAnimateTimings=this._visitTiming(t.timings,e),a=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),a.snapshotCurrentStyles());const r=t.style;5==r.type?this.visitKeyframes(r,e):(e.incrementTime(n.duration),this.visitStyle(r,e),a.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const n=e.currentTimeline,a=e.currentAnimateTimings;!a&&n.getCurrentStyleProperties().length&&n.forwardFrame();const r=a&&a.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(r):n.setStyles(t.styles,r,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const n=e.currentAnimateTimings,a=e.currentTimeline.duration,r=n.duration,i=e.createSubContext().currentTimeline;i.easing=n.easing,t.styles.forEach(t=>{i.forwardTime((t.offset||0)*r),i.setStyles(t.styles,t.easing,e.errors,e.options),i.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(i),e.transformIntoNewTimeline(a+r),e.previousNode=t}visitQuery(t,e){const n=e.currentTimeline.currentTime,a=t.options||{},r=a.delay?sv(a.delay):0;r&&(6===e.previousNode.type||0==n&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Bv);let i=n;const s=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!a.optional,e.errors);e.currentQueryTotal=s.length;let o=null;s.forEach((n,a)=>{e.currentQueryIndex=a;const s=e.createSubContext(t.options,n);r&&s.delayNextStep(r),n===e.element&&(o=s.currentTimeline),wv(this,t.animation,s),s.currentTimeline.applyStylesToKeyframe(),i=Math.max(i,s.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(i),o&&(e.currentTimeline.mergeTimelineCollectedStyles(o),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const n=e.parentContext,a=e.currentTimeline,r=t.timings,i=Math.abs(r.duration),s=i*(e.currentQueryTotal-1);let o=i*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":o=s-o;break;case"full":o=n.currentStaggerTime}const u=e.currentTimeline;o&&u.delayNextStep(o);const d=u.currentTime;wv(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=a.currentTime-d+(a.startTime-n.currentTimeline.startTime)}}const Bv={};class Yv{constructor(t,e,n,a,r,i,s,o){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=a,this._leaveClassName=r,this.errors=i,this.timelines=s,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=Bv,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=o||new Hv(this._driver,e,0),s.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const n=t;let a=this.options;null!=n.duration&&(a.duration=sv(n.duration)),null!=n.delay&&(a.delay=sv(n.delay));const r=n.params;if(r){let t=a.params;t||(t=this.options.params={}),Object.keys(r).forEach(n=>{e&&t.hasOwnProperty(n)||(t[n]=yv(r[n],t,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const n=t.params={};Object.keys(e).forEach(t=>{n[t]=e[t]})}}return t}createSubContext(t=null,e,n){const a=e||this.element,r=new Yv(this._driver,a,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(a,n||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(t),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(t){return this.previousNode=Bv,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,n){const a={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},r=new Uv(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,a,t.stretchStartingKeyframe);return this.timelines.push(r),a}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,n,a,r,i){let s=[];if(a&&s.push(this.element),t.length>0){t=(t=t.replace(Fv,"."+this._enterClassName)).replace(Gv,"."+this._leaveClassName);let e=this._driver.query(this.element,t,1!=n);0!==n&&(e=n<0?e.slice(e.length+n,e.length):e.slice(0,n)),s.push(...e)}return r||0!=s.length||i.push(`\`query("${e}")\` returned zero elements. (Use \`query("${e}", { optional: true })\` if you wish to allow this.)`),s}}class Hv{constructor(t,e,n,a){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=a,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),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.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new Hv(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=Object.create(this._backFill,{}),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[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(t=>{this._backFill[t]=this._globalTimelineStyles[t]||K.a,this._currentKeyframe[t]=K.a}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,n,a){e&&(this._previousKeyframe.easing=e);const r=a&&a.params||{},i=function(t,e){const n={};let a;return t.forEach(t=>{"*"===t?(a=a||Object.keys(e),a.forEach(t=>{n[t]=K.a})):lv(t,!1,n)}),n}(t,this._globalTimelineStyles);Object.keys(i).forEach(t=>{const e=yv(i[t],r,n);this._pendingStyles[t]=e,this._localTimelineStyles.hasOwnProperty(t)||(this._backFill[t]=this._globalTimelineStyles.hasOwnProperty(t)?this._globalTimelineStyles[t]:K.a),this._updateStyle(t,e)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(e=>{this._currentKeyframe[e]=t[e]}),Object.keys(this._localTimelineStyles).forEach(t=>{this._currentKeyframe.hasOwnProperty(t)||(this._currentKeyframe[t]=this._localTimelineStyles[t])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[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){Object.keys(t._styleSummary).forEach(e=>{const n=this._styleSummary[e],a=t._styleSummary[e];(!n||a.time>n.time)&&this._updateStyle(e,a.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,n=1===this._keyframes.size&&0===this.duration;let a=[];this._keyframes.forEach((r,i)=>{const s=lv(r,!0);Object.keys(s).forEach(n=>{const a=s[n];a==K.l?t.add(n):a==K.a&&e.add(n)}),n||(s.offset=i/this.duration),a.push(s)});const r=t.size?vv(t.values()):[],i=e.size?vv(e.values()):[];if(n){const t=a[0],e=dv(t);t.offset=0,e.offset=1,a=[t,e]}return qv(this.element,a,r,i,this.duration,this.startTime,this.easing,!1)}}class Uv extends Hv{constructor(t,e,n,a,r,i,s=!1){super(t,e,i.delay),this.element=e,this.keyframes=n,this.preStyleProps=a,this.postStyleProps=r,this._stretchStartingKeyframe=s,this.timings={duration:i.duration,delay:i.delay,easing:i.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:n,easing:a}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],i=n+e,s=e/i,o=lv(t[0],!1);o.offset=0,r.push(o);const u=lv(t[0],!1);u.offset=Wv(s),r.push(u);const d=t.length-1;for(let a=1;a<=d;a++){let s=lv(t[a],!1);s.offset=Wv((e+s.offset*n)/i),r.push(s)}n=i,e=0,a="",t=r}return qv(this.element,t,this.preStyleProps,this.postStyleProps,n,e,a,!0)}}function Wv(t,e=3){const n=Math.pow(10,e-1);return Math.round(t*n)/n}class Kv{}class $v extends Kv{normalizePropertyName(t,e){return _v(t)}normalizeStyleValue(t,e,n,a){let r="";const i=n.toString().trim();if(Zv[e]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{const e=n.match(/^[+-]?[\d\.]+([a-z]*)$/);e&&0==e[1].length&&a.push(`Please provide a CSS unit value for ${t}:${n}`)}return i+r}}const Zv=(()=>function(t){const e={};return t.forEach(t=>e[t]=!0),e}("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".split(",")))();function Jv(t,e,n,a,r,i,s,o,u,d,l,c,f){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:n,fromStyles:i,toState:a,toStyles:s,timelines:o,queriedElements:u,preStyleProps:d,postStyleProps:l,totalTime:c,errors:f}}const Qv={};class Xv{constructor(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}match(t,e,n,a){return function(t,e,n,a,r){return t.some(t=>t(e,n,a,r))}(this.ast.matchers,t,e,n,a)}buildStyles(t,e,n){const a=this._stateStyles["*"],r=this._stateStyles[t],i=a?a.buildStyles(e,n):{};return r?r.buildStyles(e,n):i}build(t,e,n,a,r,i,s,o,u,d){const l=[],c=this.ast.options&&this.ast.options.params||Qv,f=this.buildStyles(n,s&&s.params||Qv,l),h=o&&o.params||Qv,g=this.buildStyles(a,h,l),p=new Set,b=new Map,m=new Map,y="void"===a,v={params:Object.assign({},c,h)},x=d?[]:Vv(t,e,this.ast.animation,r,i,f,g,v,u,l);let _=0;if(x.forEach(t=>{_=Math.max(t.duration+t.delay,_)}),l.length)return Jv(e,this._triggerName,n,a,y,f,g,[],[],b,m,_,l);x.forEach(t=>{const n=t.element,a=Hy(b,n,{});t.preStyleProps.forEach(t=>a[t]=!0);const r=Hy(m,n,{});t.postStyleProps.forEach(t=>r[t]=!0),n!==e&&p.add(n)});const T=vv(p.values());return Jv(e,this._triggerName,n,a,y,f,g,x,T,b,m,_)}}class tx{constructor(t,e){this.styles=t,this.defaultParams=e}buildStyles(t,e){const n={},a=dv(this.defaultParams);return Object.keys(t).forEach(e=>{const n=t[e];null!=n&&(a[e]=n)}),this.styles.styles.forEach(t=>{if("string"!=typeof t){const r=t;Object.keys(r).forEach(t=>{let i=r[t];i.length>1&&(i=yv(i,a,e)),n[t]=i})}}),n}}class ex{constructor(t,e){this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(t=>{this.states[t.name]=new tx(t.style,t.options&&t.options.params||{})}),nx(this.states,"true","1"),nx(this.states,"false","0"),e.transitions.forEach(e=>{this.transitionFactories.push(new Xv(t,e,this.states))}),this.fallbackTransition=new Xv(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(t,e)=>!0],options:null,queryCount:0,depCount:0},this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,n,a){return this.transitionFactories.find(r=>r.match(t,e,n,a))||null}matchStyles(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)}}function nx(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}const ax=new jv;class rx{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}register(t,e){const n=[],a=kv(this._driver,e,n);if(n.length)throw new Error(`Unable to build the animation due to the following errors: ${n.join("\n")}`);this._animations[t]=a}_buildPlayer(t,e,n){const a=t.element,r=Vy(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(a,r,t.duration,t.delay,t.easing,[],!0)}create(t,e,n={}){const a=[],r=this._animations[t];let i;const s=new Map;if(r?(i=Vv(this._driver,e,r,"ng-enter","ng-leave",{},{},n,ax,a),i.forEach(t=>{const e=Hy(s,t.element,{});t.postStyleProps.forEach(t=>e[t]=null)})):(a.push("The requested animation doesn't exist or has already been destroyed"),i=[]),a.length)throw new Error(`Unable to create the animation due to the following errors: ${a.join("\n")}`);s.forEach((t,e)=>{Object.keys(t).forEach(n=>{t[n]=this._driver.computeStyle(e,n,K.a)})});const o=Gy(i.map(t=>{const e=s.get(t.element);return this._buildPlayer(t,{},e)}));return this._playersById[t]=o,o.onDestroy(()=>this.destroy(t)),this.players.push(o),o}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw new Error(`Unable to find the timeline player referenced by ${t}`);return e}listen(t,e,n,a){const r=Yy(e,"","","");return zy(this._getPlayer(t),n,r,a),()=>{}}command(t,e,n,a){if("register"==n)return void this.register(t,a[0]);if("create"==n)return void this.create(t,e,a[0]||{});const r=this._getPlayer(t);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(a[0]));break;case"destroy":this.destroy(t)}}}const ix=[],sx={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},ox={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0};class ux{constructor(t,e=""){this.namespaceId=e;const n=t&&t.hasOwnProperty("value");if(this.value=null!=(a=n?t.value:t)?a:null,n){const e=dv(t);delete e.value,this.options=e}else this.options={};var a;this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const t=this.options.params;Object.keys(e).forEach(n=>{null==t[n]&&(t[n]=e[n])})}}}const dx=new ux("void");class lx{constructor(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,mx(e,this._hostClassName)}listen(t,e,n,a){if(!this._triggers.hasOwnProperty(e))throw new Error(`Unable to listen on the animation trigger event "${n}" because the animation trigger "${e}" doesn't exist!`);if(null==n||0==n.length)throw new Error(`Unable to listen on the animation trigger "${e}" because the provided event is undefined!`);if("start"!=(r=n)&&"done"!=r)throw new Error(`The provided animation trigger event "${n}" for the animation trigger "${e}" is not supported!`);var r;const i=Hy(this._elementListeners,t,[]),s={name:e,phase:n,callback:a};i.push(s);const o=Hy(this._engine.statesByElement,t,{});return o.hasOwnProperty(e)||(mx(t,"ng-trigger"),mx(t,"ng-trigger-"+e),o[e]=dx),()=>{this._engine.afterFlush(()=>{const t=i.indexOf(s);t>=0&&i.splice(t,1),this._triggers[e]||delete o[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw new Error(`The provided animation trigger "${t}" has not been registered!`);return e}trigger(t,e,n,a=!0){const r=this._getTrigger(e),i=new fx(this.id,e,t);let s=this._engine.statesByElement.get(t);s||(mx(t,"ng-trigger"),mx(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,s={}));let o=s[e];const u=new ux(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&o&&u.absorbOptions(o.options),s[e]=u,o||(o=dx),"void"!==u.value&&o.value===u.value){if(!function(t,e){const n=Object.keys(t),a=Object.keys(e);if(n.length!=a.length)return!1;for(let r=0;r<n.length;r++){const a=n[r];if(!e.hasOwnProperty(a)||t[a]!==e[a])return!1}return!0}(o.params,u.params)){const e=[],n=r.matchStyles(o.value,o.params,e),a=r.matchStyles(u.value,u.params,e);e.length?this._engine.reportError(e):this._engine.afterFlush(()=>{gv(t,n),hv(t,a)})}return}const d=Hy(this._engine.playersByElement,t,[]);d.forEach(t=>{t.namespaceId==this.id&&t.triggerName==e&&t.queued&&t.destroy()});let l=r.matchTransition(o.value,u.value,t,u.params),c=!1;if(!l){if(!a)return;l=r.fallbackTransition,c=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:l,fromState:o,toState:u,player:i,isFallbackTransition:c}),c||(mx(t,"ng-animate-queued"),i.onStart(()=>{yx(t,"ng-animate-queued")})),i.onDone(()=>{let e=this.players.indexOf(i);e>=0&&this.players.splice(e,1);const n=this._engine.playersByElement.get(t);if(n){let t=n.indexOf(i);t>=0&&n.splice(t,1)}}),this.players.push(i),d.push(i),i}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,n)=>{delete e[t]}),this._elementListeners.forEach((e,n)=>{this._elementListeners.set(n,e.filter(e=>e.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(t=>t.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e,n=!1){this._engine.driver.query(t,".ng-trigger",!0).forEach(t=>{if(t.__ng_removed)return;const n=this._engine.fetchNamespacesByElement(t);n.size?n.forEach(n=>n.triggerLeaveAnimation(t,e,!1,!0)):this.clearElementCache(t)})}triggerLeaveAnimation(t,e,n,a){const r=this._engine.statesByElement.get(t);if(r){const i=[];if(Object.keys(r).forEach(e=>{if(this._triggers[e]){const n=this.trigger(t,e,"void",a);n&&i.push(n)}}),i.length)return this._engine.markElementAsRemoved(this.id,t,!0,e),n&&Gy(i).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t);if(e){const n=new Set;e.forEach(e=>{const a=e.name;if(n.has(a))return;n.add(a);const r=this._triggers[a].fallbackTransition,i=this._engine.statesByElement.get(t)[a]||dx,s=new ux("void"),o=new fx(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:r,fromState:i,toState:s,player:o,isFallbackTransition:!0})})}}removeNode(t,e){const n=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e,!0),this.triggerLeaveAnimation(t,e,!0))return;let a=!1;if(n.totalAnimations){const e=n.players.length?n.playersByQueriedElement.get(t):[];if(e&&e.length)a=!0;else{let e=t;for(;e=e.parentNode;)if(n.statesByElement.get(e)){a=!0;break}}}this.prepareLeaveAnimationListeners(t),a?n.markElementAsRemoved(this.id,t,!1,e):(n.afterFlush(()=>this.clearElementCache(t)),n.destroyInnerAnimations(t),n._onRemovalComplete(t,e))}insertNode(t,e){mx(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(n=>{const a=n.player;if(a.destroyed)return;const r=n.element,i=this._elementListeners.get(r);i&&i.forEach(e=>{if(e.name==n.triggerName){const a=Yy(r,n.triggerName,n.fromState.value,n.toState.value);a._data=t,zy(n.player,e.phase,a,e.callback)}}),a.markedForDestroy?this._engine.afterFlush(()=>{a.destroy()}):e.push(n)}),this._queue=[],e.sort((t,e)=>{const n=t.transition.ast.depCount,a=e.transition.ast.depCount;return 0==n||0==a?n-a:this._engine.driver.containsElement(t.element,e.element)?1:-1})}destroy(t){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(e=>e.element===t)||e,e}}class cx{constructor(t,e,n){this.bodyNode=t,this.driver=e,this._normalizer=n,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=(t,e)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(e=>{e.queued&&t.push(e)})}),t}createNamespace(t,e){const n=new lx(t,e,this);return e.parentNode?this._balanceNamespaceList(n,e):(this.newHostElements.set(e,n),this.collectEnterElement(e)),this._namespaceLookup[t]=n}_balanceNamespaceList(t,e){const n=this._namespaceList.length-1;if(n>=0){let a=!1;for(let r=n;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,e)){this._namespaceList.splice(r+1,0,t),a=!0;break}a||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t}register(t,e){let n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n}registerTrigger(t,e,n){let a=this._namespaceLookup[t];a&&a.register(e,n)&&this.totalAnimations++}destroy(t,e){if(!t)return;const n=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(n.hostElement),delete this._namespaceLookup[t];const e=this._namespaceList.indexOf(n);e>=0&&this._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(()=>n.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,n=this.statesByElement.get(t);if(n){const t=Object.keys(n);for(let a=0;a<t.length;a++){const r=n[t[a]].namespaceId;if(r){const t=this._fetchNamespace(r);t&&e.add(t)}}}return e}trigger(t,e,n,a){if(hx(e)){const r=this._fetchNamespace(t);if(r)return r.trigger(e,n,a),!0}return!1}insertNode(t,e,n,a){if(!hx(e))return;const r=e.__ng_removed;if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const t=this.collectedLeaveElements.indexOf(e);t>=0&&this.collectedLeaveElements.splice(t,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,n)}a&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),mx(t,"ng-animate-disabled")):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),yx(t,"ng-animate-disabled"))}removeNode(t,e,n,a){if(hx(e)){const r=t?this._fetchNamespace(t):null;if(r?r.removeNode(e,a):this.markElementAsRemoved(t,e,!1,a),n){const n=this.namespacesByHostElement.get(e);n&&n.id!==t&&n.removeNode(e,a)}}else this._onRemovalComplete(e,a)}markElementAsRemoved(t,e,n,a){this.collectedLeaveElements.push(e),e.__ng_removed={namespaceId:t,setForRemoval:a,hasAnimation:n,removedBeforeQueried:!1}}listen(t,e,n,a,r){return hx(e)?this._fetchNamespace(t).listen(e,n,a,r):()=>{}}_buildInstruction(t,e,n,a,r){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,a,t.fromState.options,t.toState.options,e,r)}destroyInnerAnimations(t){let e=this.driver.query(t,".ng-trigger",!0);e.forEach(t=>this.destroyActiveAnimationsForElement(t)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,".ng-animating",!0),e.forEach(t=>this.finishActiveQueriedAnimationOnElement(t)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(t=>{t.queued?t.markedForDestroy=!0:t.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(t=>t.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return Gy(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t.__ng_removed;if(e&&e.setForRemoval){if(t.__ng_removed=sx,e.namespaceId){this.destroyInnerAnimations(t);const n=this._fetchNamespace(e.namespaceId);n&&n.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}this.driver.matchesElement(t,".ng-animate-disabled")&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(t=>{this.markElementAsDisabled(t,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((t,e)=>this._balanceNamespaceList(t,e)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let n=0;n<this.collectedEnterElements.length;n++)mx(this.collectedEnterElements[n],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const n=[];try{e=this._flushAnimations(n,t)}finally{for(let t=0;t<n.length;t++)n[t]()}}else for(let n=0;n<this.collectedLeaveElements.length;n++)this.processLeaveNode(this.collectedLeaveElements[n]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(t=>t()),this._flushFns=[],this._whenQuietFns.length){const t=this._whenQuietFns;this._whenQuietFns=[],e.length?Gy(e).onDone(()=>{t.forEach(t=>t())}):t.forEach(t=>t())}}reportError(t){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${t.join("\n")}`)}_flushAnimations(t,e){const n=new jv,a=[],r=new Map,i=[],s=new Map,o=new Map,u=new Map,d=new Set;this.disabledNodes.forEach(t=>{d.add(t);const e=this.driver.query(t,".ng-animate-queued",!0);for(let n=0;n<e.length;n++)d.add(e[n])});const l=this.bodyNode,c=Array.from(this.statesByElement.keys()),f=bx(c,this.collectedEnterElements),h=new Map;let g=0;f.forEach((t,e)=>{const n="ng-enter"+g++;h.set(e,n),t.forEach(t=>mx(t,n))});const p=[],b=new Set,m=new Set;for(let A=0;A<this.collectedLeaveElements.length;A++){const t=this.collectedLeaveElements[A],e=t.__ng_removed;e&&e.setForRemoval&&(p.push(t),b.add(t),e.hasAnimation?this.driver.query(t,".ng-star-inserted",!0).forEach(t=>b.add(t)):m.add(t))}const y=new Map,v=bx(c,Array.from(b));v.forEach((t,e)=>{const n="ng-leave"+g++;y.set(e,n),t.forEach(t=>mx(t,n))}),t.push(()=>{f.forEach((t,e)=>{const n=h.get(e);t.forEach(t=>yx(t,n))}),v.forEach((t,e)=>{const n=y.get(e);t.forEach(t=>yx(t,n))}),p.forEach(t=>{this.processLeaveNode(t)})});const x=[],_=[];for(let A=this._namespaceList.length-1;A>=0;A--)this._namespaceList[A].drainQueuedTransitions(e).forEach(t=>{const e=t.player,r=t.element;if(x.push(e),this.collectedEnterElements.length){const t=r.__ng_removed;if(t&&t.setForMove)return void e.destroy()}const d=!l||!this.driver.containsElement(l,r),c=y.get(r),f=h.get(r),g=this._buildInstruction(t,n,f,c,d);if(!g.errors||!g.errors.length)return d?(e.onStart(()=>gv(r,g.fromStyles)),e.onDestroy(()=>hv(r,g.toStyles)),void a.push(e)):t.isFallbackTransition?(e.onStart(()=>gv(r,g.fromStyles)),e.onDestroy(()=>hv(r,g.toStyles)),void a.push(e)):(g.timelines.forEach(t=>t.stretchStartingKeyframe=!0),n.append(r,g.timelines),i.push({instruction:g,player:e,element:r}),g.queriedElements.forEach(t=>Hy(s,t,[]).push(e)),g.preStyleProps.forEach((t,e)=>{const n=Object.keys(t);if(n.length){let t=o.get(e);t||o.set(e,t=new Set),n.forEach(e=>t.add(e))}}),void g.postStyleProps.forEach((t,e)=>{const n=Object.keys(t);let a=u.get(e);a||u.set(e,a=new Set),n.forEach(t=>a.add(t))}));_.push(g)});if(_.length){const t=[];_.forEach(e=>{t.push(`@${e.triggerName} has failed due to:\n`),e.errors.forEach(e=>t.push(`- ${e}\n`))}),x.forEach(t=>t.destroy()),this.reportError(t)}const T=new Map,O=new Map;i.forEach(t=>{const e=t.element;n.has(e)&&(O.set(e,e),this._beforeAnimationBuild(t.player.namespaceId,t.instruction,T))}),a.forEach(t=>{const e=t.element;this._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(t=>{Hy(T,e,[]).push(t),t.destroy()})});const w=p.filter(t=>xx(t,o,u)),S=new Map;px(S,this.driver,m,u,K.a).forEach(t=>{xx(t,o,u)&&w.push(t)});const I=new Map;f.forEach((t,e)=>{px(I,this.driver,new Set(t),o,K.l)}),w.forEach(t=>{const e=S.get(t),n=I.get(t);S.set(t,Object.assign({},e,n))});const N=[],C=[],R={};i.forEach(t=>{const{element:e,player:i,instruction:s}=t;if(n.has(e)){if(d.has(e))return i.onDestroy(()=>hv(e,s.toStyles)),i.disabled=!0,i.overrideTotalTime(s.totalTime),void a.push(i);let t=R;if(O.size>1){let n=e;const a=[];for(;n=n.parentNode;){const e=O.get(n);if(e){t=e;break}a.push(n)}a.forEach(e=>O.set(e,t))}const n=this._buildAnimation(i.namespaceId,s,T,r,I,S);if(i.setRealPlayer(n),t===R)N.push(i);else{const e=this.playersByElement.get(t);e&&e.length&&(i.parentPlayer=Gy(e)),a.push(i)}}else gv(e,s.fromStyles),i.onDestroy(()=>hv(e,s.toStyles)),C.push(i),d.has(e)&&a.push(i)}),C.forEach(t=>{const e=r.get(t.element);if(e&&e.length){const n=Gy(e);t.setRealPlayer(n)}}),a.forEach(t=>{t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(let A=0;A<p.length;A++){const t=p[A],e=t.__ng_removed;if(yx(t,"ng-leave"),e&&e.hasAnimation)continue;let n=[];if(s.size){let e=s.get(t);e&&e.length&&n.push(...e);let a=this.driver.query(t,".ng-animating",!0);for(let t=0;t<a.length;t++){let e=s.get(a[t]);e&&e.length&&n.push(...e)}}const a=n.filter(t=>!t.destroyed);a.length?vx(this,t,a):this.processLeaveNode(t)}return p.length=0,N.forEach(t=>{this.players.push(t),t.onDone(()=>{t.destroy();const e=this.players.indexOf(t);this.players.splice(e,1)}),t.play()}),N}elementContainsData(t,e){let n=!1;const a=e.__ng_removed;return a&&a.setForRemoval&&(n=!0),this.playersByElement.has(e)&&(n=!0),this.playersByQueriedElement.has(e)&&(n=!0),this.statesByElement.has(e)&&(n=!0),this._fetchNamespace(t).elementContainsData(e)||n}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,n,a,r){let i=[];if(e){const e=this.playersByQueriedElement.get(t);e&&(i=e)}else{const e=this.playersByElement.get(t);if(e){const t=!r||"void"==r;e.forEach(e=>{e.queued||(t||e.triggerName==a)&&i.push(e)})}}return(n||a)&&(i=i.filter(t=>!(n&&n!=t.namespaceId||a&&a!=t.triggerName))),i}_beforeAnimationBuild(t,e,n){const a=e.element,r=e.isRemovalTransition?void 0:t,i=e.isRemovalTransition?void 0:e.triggerName;for(const s of e.timelines){const t=s.element,o=t!==a,u=Hy(n,t,[]);this._getPreviousPlayers(t,o,r,i,e.toState).forEach(t=>{const e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),u.push(t)})}gv(a,e.fromStyles)}_buildAnimation(t,e,n,a,r,i){const s=e.triggerName,o=e.element,u=[],d=new Set,l=new Set,c=e.timelines.map(e=>{const c=e.element;d.add(c);const f=c.__ng_removed;if(f&&f.removedBeforeQueried)return new K.d(e.duration,e.delay);const h=c!==o,g=function(t){const e=[];return function t(e,n){for(let a=0;a<e.length;a++){const r=e[a];r instanceof K.k?t(r.players,n):n.push(r)}}(t,e),e}((n.get(c)||ix).map(t=>t.getRealPlayer())).filter(t=>!!t.element&&t.element===c),p=r.get(c),b=i.get(c),m=Vy(0,this._normalizer,0,e.keyframes,p,b),y=this._buildPlayer(e,m,g);if(e.subTimeline&&a&&l.add(c),h){const e=new fx(t,s,c);e.setRealPlayer(y),u.push(e)}return y});u.forEach(t=>{Hy(this.playersByQueriedElement,t.element,[]).push(t),t.onDone(()=>function(t,e,n){let a;if(t instanceof Map){if(a=t.get(e),a){if(a.length){const t=a.indexOf(n);a.splice(t,1)}0==a.length&&t.delete(e)}}else if(a=t[e],a){if(a.length){const t=a.indexOf(n);a.splice(t,1)}0==a.length&&delete t[e]}return a}(this.playersByQueriedElement,t.element,t))}),d.forEach(t=>mx(t,"ng-animating"));const f=Gy(c);return f.onDestroy(()=>{d.forEach(t=>yx(t,"ng-animating")),hv(o,e.toStyles)}),l.forEach(t=>{Hy(a,t,[]).push(f)}),f}_buildPlayer(t,e,n){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new K.d(t.duration,t.delay)}}class fx{constructor(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new K.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(n=>zy(t,e,void 0,n))}),this._queuedCallbacks={},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){Hy(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 hx(t){return t&&1===t.nodeType}function gx(t,e){const n=t.style.display;return t.style.display=null!=e?e:"none",n}function px(t,e,n,a,r){const i=[];n.forEach(t=>i.push(gx(t)));const s=[];a.forEach((n,a)=>{const i={};n.forEach(t=>{const n=i[t]=e.computeStyle(a,t,r);n&&0!=n.length||(a.__ng_removed=ox,s.push(a))}),t.set(a,i)});let o=0;return n.forEach(t=>gx(t,i[o++])),s}function bx(t,e){const n=new Map;if(t.forEach(t=>n.set(t,[])),0==e.length)return n;const a=new Set(e),r=new Map;return e.forEach(t=>{const e=function t(e){if(!e)return 1;let i=r.get(e);if(i)return i;const s=e.parentNode;return i=n.has(s)?s:a.has(s)?1:t(s),r.set(e,i),i}(t);1!==e&&n.get(e).push(t)}),n}function mx(t,e){if(t.classList)t.classList.add(e);else{let n=t.$$classes;n||(n=t.$$classes={}),n[e]=!0}}function yx(t,e){if(t.classList)t.classList.remove(e);else{let n=t.$$classes;n&&delete n[e]}}function vx(t,e,n){Gy(n).onDone(()=>t.processLeaveNode(e))}function xx(t,e,n){const a=n.get(t);if(!a)return!1;let r=e.get(t);return r?a.forEach(t=>r.add(t)):e.set(t,a),n.delete(t),!0}class _x{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=(t,e)=>{},this._transitionEngine=new cx(t,e,n),this._timelineEngine=new rx(t,e,n),this._transitionEngine.onRemovalComplete=(t,e)=>this.onRemovalComplete(t,e)}registerTrigger(t,e,n,a,r){const i=t+"-"+a;let s=this._triggerCache[i];if(!s){const t=[],e=kv(this._driver,r,t);if(t.length)throw new Error(`The animation trigger "${a}" has failed to build due to the following errors:\n - ${t.join("\n - ")}`);s=function(t,e){return new ex(t,e)}(a,e),this._triggerCache[i]=s}this._transitionEngine.registerTrigger(e,a,s)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,n,a){this._transitionEngine.insertNode(t,e,n,a)}onRemove(t,e,n,a){this._transitionEngine.removeNode(t,e,a||!1,n)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,n,a){if("@"==n.charAt(0)){const[t,r]=Uy(n);this._timelineEngine.command(t,e,r,a)}else this._transitionEngine.trigger(t,e,n,a)}listen(t,e,n,a,r){if("@"==n.charAt(0)){const[t,a]=Uy(n);return this._timelineEngine.listen(t,e,a,r)}return this._transitionEngine.listen(t,e,n,a,r)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function Tx(t,e){let n=null,a=null;return Array.isArray(e)&&e.length?(n=wx(e[0]),e.length>1&&(a=wx(e[e.length-1]))):e&&(n=wx(e)),n||a?new Ox(t,n,a):null}let Ox=(()=>{class t{constructor(e,n,a){this._element=e,this._startStyles=n,this._endStyles=a,this._state=0;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r={}),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&hv(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(hv(this._element,this._initialStyles),this._endStyles&&(hv(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(gv(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(gv(this._element,this._endStyles),this._endStyles=null),hv(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function wx(t){let e=null;const n=Object.keys(t);for(let a=0;a<n.length;a++){const r=n[a];Sx(r)&&(e=e||{},e[r]=t[r])}return e}function Sx(t){return"display"===t||"position"===t}class Ix{constructor(t,e,n,a,r,i,s){this._element=t,this._name=e,this._duration=n,this._delay=a,this._easing=r,this._fillMode=i,this._onDoneFn=s,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=t=>this._handleCallback(t)}apply(){!function(t,e){const n=Ex(t,"").trim();n.length&&(function(t,e){let n=0;for(let a=0;a<t.length;a++)","===t.charAt(a)&&n++}(n),e=`${n}, ${e}`),kx(t,"",e)}(this._element,`${this._duration}ms ${this._easing} ${this._delay}ms 1 normal ${this._fillMode} ${this._name}`),Ax(this._element,this._eventFn,!1),this._startTime=Date.now()}pause(){Nx(this._element,this._name,"paused")}resume(){Nx(this._element,this._name,"running")}setPosition(t){const e=Cx(this._element,this._name);this._position=t*this._duration,kx(this._element,"Delay",`-${this._position}ms`,e)}getPosition(){return this._position}_handleCallback(t){const e=t._ngTestManualTimestamp||Date.now(),n=1e3*parseFloat(t.elapsedTime.toFixed(3));t.animationName==this._name&&Math.max(e-this._startTime,0)>=this._delay&&n>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),Ax(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function(t,e){const n=Ex(t,"").split(","),a=Rx(n,e);a>=0&&(n.splice(a,1),kx(t,"",n.join(",")))}(this._element,this._name))}}function Nx(t,e,n){kx(t,"PlayState",n,Cx(t,e))}function Cx(t,e){const n=Ex(t,"");return n.indexOf(",")>0?Rx(n.split(","),e):Rx([n],e)}function Rx(t,e){for(let n=0;n<t.length;n++)if(t[n].indexOf(e)>=0)return n;return-1}function Ax(t,e,n){n?t.removeEventListener("animationend",e):t.addEventListener("animationend",e)}function kx(t,e,n,a){const r="animation"+e;if(null!=a){const e=t.style[r];if(e.length){const t=e.split(",");t[a]=n,n=t.join(",")}}t.style[r]=n}function Ex(t,e){return t.style["animation"+e]}class Lx{constructor(t,e,n,a,r,i,s,o){this.element=t,this.keyframes=e,this.animationName=n,this._duration=a,this._delay=r,this._finalStyles=s,this._specialStyles=o,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=i||"linear",this.totalTime=a+r,this._buildStyler()}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}destroy(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(t=>t()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}finish(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(t){this._styler.setPosition(t)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new Ix(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}beforeDestroy(){this.init();const t={};if(this.hasStarted()){const e=this._state>=3;Object.keys(this._finalStyles).forEach(n=>{"offset"!=n&&(t[n]=e?this._finalStyles[n]:Sv(this.element,n))})}this.currentSnapshot=t}}class Dx extends K.d{constructor(t,e){super(),this.element=t,this._startingStyles={},this.__initialized=!1,this._styles=av(e)}init(){!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(t=>{this._startingStyles[t]=this.element.style[t]}),super.init())}play(){this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(t=>this.element.style.setProperty(t,this._styles[t])),super.play())}destroy(){this._startingStyles&&(Object.keys(this._startingStyles).forEach(t=>{const e=this._startingStyles[t];e?this.element.style.setProperty(t,e):this.element.style.removeProperty(t)}),this._startingStyles=null,super.destroy())}}class Px{constructor(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}validateStyleProperty(t){return Xy(t)}matchesElement(t,e){return tv(t,e)}containsElement(t,e){return ev(t,e)}query(t,e,n){return nv(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}buildKeyframeElement(t,e,n){n=n.map(t=>av(t));let a=`@keyframes ${e} {\n`,r="";n.forEach(t=>{r=" ";const e=parseFloat(t.offset);a+=`${r}${100*e}% {\n`,r+=" ",Object.keys(t).forEach(e=>{const n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(a+=`${r}animation-timing-function: ${n};\n`));default:return void(a+=`${r}${e}: ${n};\n`)}}),a+=`${r}}\n`}),a+="}\n";const i=document.createElement("style");return i.innerHTML=a,i}animate(t,e,n,a,r,i=[],s){s&&this._notifyFaultyScrubber();const o=i.filter(t=>t instanceof Lx),u={};Tv(n,a)&&o.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>u[t]=e[t])});const d=function(t){let e={};return t&&(Array.isArray(t)?t:[t]).forEach(t=>{Object.keys(t).forEach(n=>{"offset"!=n&&"easing"!=n&&(e[n]=t[n])})}),e}(e=Ov(t,e,u));if(0==n)return new Dx(t,d);const l=`gen_css_kf_${this._count++}`,c=this.buildKeyframeElement(t,l,e);document.querySelector("head").appendChild(c);const f=Tx(t,e),h=new Lx(t,e,l,n,a,r,d,f);return h.onDestroy(()=>{var t;(t=c).parentNode.removeChild(t)}),h}_notifyFaultyScrubber(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n","  visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)}}class Mx{constructor(t,e,n,a){this.element=t,this.keyframes=e,this.options=n,this._specialStyles=a,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.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]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,n){return t.animate(e,n)}onStart(t){this._onStartFns.push(t)}onDone(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}_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){this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(e=>{"offset"!=e&&(t[e]=this._finished?this._finalKeyframe[e]:Sv(this.element,e))}),this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class qx{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(jx().toString()),this._cssKeyframesDriver=new Px}validateStyleProperty(t){return Xy(t)}matchesElement(t,e){return tv(t,e)}containsElement(t,e){return ev(t,e)}query(t,e,n){return nv(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}overrideWebAnimationsSupport(t){this._isNativeImpl=t}animate(t,e,n,a,r,i=[],s){if(!s&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,a,r,i);const o={duration:n,delay:a,fill:0==a?"both":"forwards"};r&&(o.easing=r);const u={},d=i.filter(t=>t instanceof Mx);Tv(n,a)&&d.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>u[t]=e[t])});const l=Tx(t,e=Ov(t,e=e.map(t=>lv(t,!1)),u));return new Mx(t,e,o,l)}}function jx(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}}class Fx extends K.b{constructor(t,e){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(e.body,{id:"0",encapsulation:s.ViewEncapsulation.None,styles:[],data:{animation:[]}})}build(t){const e=this._nextAnimationId.toString();this._nextAnimationId++;const n=Array.isArray(t)?Object(K.f)(t):t;return zx(this._renderer,null,e,"register",[n]),new Gx(e,this._renderer)}}class Gx extends K.c{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new Vx(this._id,t,e||{},this._renderer)}}class Vx{constructor(t,e,n,a){this.id=t,this.element=e,this._renderer=a,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return zx(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")}setPosition(t){this._command("setPosition",t)}getPosition(){return 0}}function zx(t,e,n,a,r){return t.setProperty(e,`@@${n}:${a}`,r)}class Bx{constructor(t,e,n){this.delegate=t,this.engine=e,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),e.onRemovalComplete=(t,e)=>{e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}createRenderer(t,e){const n=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){let t=this._rendererCache.get(n);return t||(t=new Yx("",n,this.engine),this._rendererCache.set(n,t)),t}const a=e.id,r=e.id+"-"+this._currentId;return this._currentId++,this.engine.register(r,t),e.data.animation.forEach(e=>this.engine.registerTrigger(a,r,t,e.name,e)),new Hx(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,n){t>=0&&t<this._microtaskId?this._zone.run(()=>e(n)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(t=>{const[e,n]=t;e(n)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([e,n]))}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()}}class Yx{constructor(t,e,n){this.namespaceId=t,this.delegate=e,this.engine=n,this.destroyNode=this.delegate.destroyNode?t=>e.destroyNode(t):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}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,n){this.delegate.insertBefore(t,e,n),this.engine.onInsert(this.namespaceId,e,t,!0)}removeChild(t,e,n){this.engine.onRemove(this.namespaceId,e,this.delegate,n)}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,n,a){this.delegate.setAttribute(t,e,n,a)}removeAttribute(t,e,n){this.delegate.removeAttribute(t,e,n)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,n,a){this.delegate.setStyle(t,e,n,a)}removeStyle(t,e,n){this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){"@"==e.charAt(0)&&"@.disabled"==e?this.disableAnimations(t,!!n):this.delegate.setProperty(t,e,n)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,n){return this.delegate.listen(t,e,n)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class Hx extends Yx{constructor(t,e,n,a){super(e,n,a),this.factory=t,this.namespaceId=e}setProperty(t,e,n){"@"==e.charAt(0)?"."==e.charAt(1)&&"@.disabled"==e?this.disableAnimations(t,n=void 0===n||!!n):this.engine.process(this.namespaceId,t,e.substr(1),n):this.delegate.setProperty(t,e,n)}listen(t,e,n){if("@"==e.charAt(0)){const a=function(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(t);let r=e.substr(1),i="";return"@"!=r.charAt(0)&&([r,i]=function(t){const e=t.indexOf(".");return[t.substring(0,e),t.substr(e+1)]}(r)),this.engine.listen(this.namespaceId,a,r,i,t=>{this.factory.scheduleListenerCallback(t._data||-1,n,t)})}return this.delegate.listen(t,e,n)}}class Ux extends _x{constructor(t,e,n){super(t.body,e,n)}}function Wx(){return"function"==typeof jx()?new qx:new Px}function Kx(){return new $v}function $x(t,e,n){return new Bx(t,e,n)}const Zx=new s.InjectionToken("AnimationModuleType");class Jx{}var Qx=n("Avrn");let Xx=(()=>{class t{constructor(t,e){this.router=t,this.authStorageService=e}canActivate(){return!(this.authStorageService.isLoggedIn()&&!this.authStorageService.isSSO()&&this.authStorageService.getPwdUpdateRequired()&&(this.router.navigate(["/login-change-password"]),1))}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](qt.m),s["ɵɵinject"](xt.a))},token:t,providedIn:"root"}),t})();var t_=n("Vhfg");let e_=(()=>{class t{constructor(t,e){this.http=t,this.router=e}canActivate(t){return this.doCheck(t)}canActivateChild(t){return this.doCheck(t)}doCheck(e){if(e.url.length>0&&t.WHITELIST.includes(e.url[0].path))return Object(On.a)(!0);const n=e.data.moduleStatusGuardConfig;return this.http.get(`api/${n.apiPath}/status`).pipe(Object(Oe.a)(t=>(t.available||this.router.navigate([n.redirectTo,t.message||""]),t.available)),Object(qy.a)(()=>(this.router.navigate([n.redirectTo]),Object(On.a)(!1))))}}return t.WHITELIST=["501"],t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c),s["ɵɵinject"](qt.m))},token:t,providedIn:"root"}),t})(),n_=(()=>{class t{constructor(t,e){this.authStorageService=t,this.router=e}canActivate(){return!this.authStorageService.isSSO()||(this.router.navigate(["404"]),!1)}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](xt.a),s["ɵɵinject"](qt.m))},token:t,providedIn:"root"}),t})();class a_ extends qn{resolve(t){const e=[],n=t.queryParams.fromLink||null;let a="";switch(n){case"/monitor":a="Monitors";break;case"/hosts":a="Hosts"}return e.push({text:"Cluster",path:null}),e.push({text:a,path:n}),e.push({text:"Performance Counters",path:""}),e}}class r_ extends qn{resolve(t){const e=t.params.name;return[{text:`${J.startCase(e)}/Edit`,path:e}]}}const i_={breadcrumbs:"Cluster/Hosts"},s_={breadcrumbs:At.a.CREATE},o_={breadcrumbs:"Cluster/Monitors"},u_={breadcrumbs:"Cluster/Services"},d_={breadcrumbs:"Cluster/Inventory"},l_={breadcrumbs:"Cluster/OSDs"},c_={breadcrumbs:At.a.CREATE},f_={breadcrumbs:"Cluster/Configuration"},h_={breadcrumbs:At.a.EDIT},g_={breadcrumbs:"Cluster/CRUSH map"},p_={breadcrumbs:"Cluster/Logs"},b_={breadcrumbs:"Telemetry configuration"},m_={breadcrumbs:"Cluster/Monitoring"},y_={breadcrumbs:`${At.a.CREATE} Silence`},v_={breadcrumbs:At.a.CREATE},x_={breadcrumbs:At.a.EDIT},__={breadcrumbs:At.a.RECREATE},T_={breadcrumbs:a_},O_={breadcrumbs:"Cluster/Manager modules"},w_={breadcrumbs:r_},S_={breadcrumbs:"Pools"},I_=()=>Promise.all([n.e(2),n.e(1),n.e(7)]).then(n.bind(null,"nOaW")).then(t=>t.RoutedPoolModuleNgFactory),N_={breadcrumbs:!0,text:"Block",path:null},C_=()=>Promise.all([n.e(2),n.e(6)]).then(n.bind(null,"J6Oi")).then(t=>t.RoutedBlockModuleNgFactory),R_={breadcrumbs:"Filesystems"},A_={moduleStatusGuardConfig:{apiPath:"rgw",redirectTo:"rgw/501"},breadcrumbs:!0,text:"Object Gateway",path:null},k_=()=>n.e(8).then(n.bind(null,"Znkk")).then(t=>t.RoutedRgwModuleNgFactory),E_={breadcrumbs:"User management",path:null},L_=()=>Promise.all([n.e(1),n.e(9)]).then(n.bind(null,"DY6s")).then(t=>t.RoutedAuthModuleNgFactory),D_={breadcrumbs:"User profile",path:null},P_={breadcrumbs:At.a.EDIT},M_={breadcrumbs:"NFS"},q_={moduleStatusGuardConfig:{apiPath:"nfs-ganesha",redirectTo:"nfs/501"},breadcrumbs:"NFS"},j_={breadcrumbs:At.a.CREATE},F_={breadcrumbs:At.a.EDIT};class G_{}var V_=n("yT6U"),z_=n("4DD9"),B_=n("IzCI"),Y_=n("Dwqy"),H_=n("uYzU"),U_=n("nSDx"),W_=n("SB+Q"),K_=n("BQkM"),$_=n("dEH0"),Z_=n("G1/K"),J_=n("TJUb"),Q_=n("efK2");class X_{constructor(){this.closeOthers=!1,this.isAnimated=!1}}class tT{static forRoot(){return{ngModule:tT,providers:[X_]}}}let eT=(()=>{class t{constructor(t){this.http=t}jsError(t,e,n){return this.http.post("ui-api/logging/js-error",{url:t,message:e,stack:n})}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](X.c))},token:t,providedIn:we.a}),t})();class nT{constructor(t){this.injector=t}handleError(t){const e=this.injector.get(eT),n=window.location.href;throw e.jsError(n,t&&t.message,t&&t.stack).subscribe(),t}}var aT=n("aHM3"),rT=n("9Xeq"),iT=n("yGOH"),sT=n("bxSN"),oT=n("V/fk"),uT=n("ChqD"),dT=n("PCNd"),lT=n("LceX");class cT{}class fT{}var hT=n("G6Q+");class gT{}var pT=n("kJI8");class bT{}class mT{}class yT{}class vT{}class xT{}var _T=function(){function t(t){if(t)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}return t.forRoot=function(e){return{ngModule:t,providers:[{provide:X.a,useClass:Py,multi:!0},e.jwtOptionsProvider||{provide:Ey,useValue:e.config},Ly]}},t}(),TT=s["ɵcmf"](d,[l],(function(t){return s["ɵmod"]([s["ɵmpd"](512,s.ComponentFactoryResolver,s["ɵCodegenComponentFactoryResolver"],[[8,[_,T.a,Qn,Ar,_s,Fs,Us,ao,ni,Xo,Iu,zu,od,Td,Al,Wl,xc,zc,Wc,af,Rf,fh,Nh,Eh,Uh,Pp,Gp,$p,ob,fb,mb,Tb,Nb,q,H,Cb.a,ne.a,Rb.a,Ab.a,Ab.b,kb.a,Eb.a,Lb.a,Db.a,Pb.a,Mb.a,Mb.c,Mb.b,Mb.d,Gb,nm,Co,dm,bm,Rm,Mm,ny,fy,vy,Oy,Ny,ky]],[3,s.ComponentFactoryResolver],s.NgModuleRef]),s["ɵmpd"](4608,X.j,X.p,[i.DOCUMENT,s.PLATFORM_ID,X.n]),s["ɵmpd"](4608,X.q,X.q,[X.j,X.o]),s["ɵmpd"](4608,Ly,Ly,[Ey]),s["ɵmpd"](4608,xt.a,xt.a,[]),s["ɵmpd"](5120,X.a,(function(t,e,n,a,r,i){return[t,new Py(e,n),new jy(a,r,i)]}),[X.q,Ey,Ly,qt.m,xt.a,gt.a]),s["ɵmpd"](4608,X.m,X.m,[]),s["ɵmpd"](6144,X.k,null,[X.m]),s["ɵmpd"](4608,X.i,X.i,[X.k]),s["ɵmpd"](6144,X.b,null,[X.i]),s["ɵmpd"](4608,X.g,X.l,[X.b,s.Injector]),s["ɵmpd"](4608,X.c,X.c,[X.g]),s["ɵmpd"](4352,s.LOCALE_ID,"en-US",[]),s["ɵmpd"](4608,i.NgLocalization,i.NgLocaleLocalization,[s.LOCALE_ID,[2,i["ɵangular_packages_common_common_a"]]]),s["ɵmpd"](5120,s["ɵangular_packages_core_core_ba"],s["ɵangular_packages_core_core_r"],[s.NgZone]),s["ɵmpd"](5120,s.APP_ID,s["ɵangular_packages_core_core_f"],[]),s["ɵmpd"](5120,s.IterableDiffers,s["ɵangular_packages_core_core_n"],[]),s["ɵmpd"](5120,s.KeyValueDiffers,s["ɵangular_packages_core_core_o"],[]),s["ɵmpd"](4608,Lr.b,Lr.k,[i.DOCUMENT]),s["ɵmpd"](6144,s.Sanitizer,null,[Lr.b]),s["ɵmpd"](4608,Lr.e,Lr.g,[]),s["ɵmpd"](5120,Lr.c,(function(t,e,n,a,r,i,s,o){return[new Lr.i(t,e,n),new Lr.n(a),new Lr.m(r,i,s,o)]}),[i.DOCUMENT,s.NgZone,s.PLATFORM_ID,i.DOCUMENT,i.DOCUMENT,Lr.e,s["ɵConsole"],[2,Lr.f]]),s["ɵmpd"](4608,Lr.d,Lr.d,[Lr.c,s.NgZone]),s["ɵmpd"](135680,Lr.l,Lr.l,[i.DOCUMENT]),s["ɵmpd"](4608,Lr.j,Lr.j,[Lr.d,Lr.l,s.APP_ID]),s["ɵmpd"](5120,iv,Wx,[]),s["ɵmpd"](5120,Kv,Kx,[]),s["ɵmpd"](4608,_x,Ux,[i.DOCUMENT,iv,Kv]),s["ɵmpd"](5120,s.RendererFactory2,$x,[Lr.j,_x,s.NgZone]),s["ɵmpd"](6144,Lr.o,null,[Lr.l]),s["ɵmpd"](4608,s.Testability,s.Testability,[s.NgZone]),s["ɵmpd"](4608,K.b,Fx,[s.RendererFactory2,i.DOCUMENT]),s["ɵmpd"](5120,qt.a,qt.B,[qt.m]),s["ɵmpd"](4608,qt.g,qt.g,[]),s["ɵmpd"](6144,qt.h,null,[qt.g]),s["ɵmpd"](135680,qt.s,qt.s,[qt.m,s.NgModuleFactoryLoader,s.Compiler,s.Injector,qt.h]),s["ɵmpd"](4608,qt.f,qt.f,[]),s["ɵmpd"](5120,qt.G,qt.x,[qt.m,i.ViewportScroller,qt.i]),s["ɵmpd"](5120,qt.j,qt.E,[qt.C]),s["ɵmpd"](5120,s.APP_BOOTSTRAP_LISTENER,(function(t){return[t]}),[qt.j]),s["ɵmpd"](4608,r_,r_,[]),s["ɵmpd"](4608,a_,a_,[]),s["ɵmpd"](4608,$.D,$.D,[]),s["ɵmpd"](4608,$.h,$.h,[]),s["ɵmpd"](4608,V_.a,V_.a,[]),s["ɵmpd"](4608,z_.a,z_.a,[]),s["ɵmpd"](5120,s.TRANSLATIONS,u,[s.LOCALE_ID]),s["ɵmpd"](4608,_a.a,_a.a,[s.TRANSLATIONS_FORMAT,s.TRANSLATIONS,s.LOCALE_ID,[2,_a.b]]),s["ɵmpd"](4608,Nu.a,Nu.a,[_a.a]),s["ɵmpd"](4608,i.DatePipe,i.DatePipe,[s.LOCALE_ID]),s["ɵmpd"](4608,is.a,is.a,[]),s["ɵmpd"](4608,vt.a,vt.a,[]),s["ɵmpd"](4608,Ia.a,Ia.a,[]),s["ɵmpd"](4608,ga.a,ga.a,[Ia.a]),s["ɵmpd"](4608,B_.a,B_.a,[Ia.a]),s["ɵmpd"](4608,pa.a,pa.a,[Ia.a]),s["ɵmpd"](4608,Y_.a,Y_.a,[]),s["ɵmpd"](4608,H_.a,H_.a,[]),s["ɵmpd"](4608,ss.a,ss.a,[]),s["ɵmpd"](4608,gl.a,gl.a,[]),s["ɵmpd"](4608,be.a,be.a,[i.DatePipe]),s["ɵmpd"](4608,U_.a,U_.a,[]),s["ɵmpd"](4608,W_.a,W_.a,[]),s["ɵmpd"](4608,fg.a,fg.a,[]),s["ɵmpd"](4608,K_.a,K_.a,[]),s["ɵmpd"](4608,$_.a,$_.a,[]),s["ɵmpd"](4608,Z_.a,Z_.a,[_a.a]),s["ɵmpd"](4608,Cs.a,Cs.a,[]),s["ɵmpd"](4608,J_.a,J_.a,[]),s["ɵmpd"](4608,Q_.a,Q_.a,[]),s["ɵmpd"](4608,ae.b,ae.b,[]),s["ɵmpd"](4608,ea.a,ea.a,[]),s["ɵmpd"](4608,na.a,na.a,[s.NgZone,s.RendererFactory2,s.PLATFORM_ID]),s["ɵmpd"](4608,W.a,W.a,[s.ComponentFactoryResolver,s.NgZone,s.Injector,na.a,s.ApplicationRef]),s["ɵmpd"](4608,he.c,he.c,[]),s["ɵmpd"](4608,Hn.a,Hn.a,[]),s["ɵmpd"](4608,Lt.b,Lt.b,[s.RendererFactory2,W.a]),s["ɵmpd"](4608,rc.y,rc.y,[i.DOCUMENT]),s["ɵmpd"](4608,rc.r,rc.r,[]),s["ɵmpd"](4608,rc.a,rc.a,[]),s["ɵmpd"](4608,U.f,U.f,[]),s["ɵmpd"](4608,Qx.a,Qx.a,[qt.m,xt.a]),s["ɵmpd"](4608,ta.f,ta.f,[]),s["ɵmpd"](4608,rt.t,rt.t,[]),s["ɵmpd"](4608,rt.v,rt.v,[]),s["ɵmpd"](4608,rt.a,rt.a,[]),s["ɵmpd"](4608,rt.h,rt.h,[]),s["ɵmpd"](4608,rt.d,rt.d,[]),s["ɵmpd"](4608,rt.j,rt.j,[]),s["ɵmpd"](4608,rt.l,rt.l,[]),s["ɵmpd"](4608,rt.u,rt.u,[rt.v,rt.l]),s["ɵmpd"](5120,S,k,[A]),s["ɵmpd"](4608,C,C,[S]),s["ɵmpd"](4608,og,og,[]),s["ɵmpd"](4608,zd,zd,[]),s["ɵmpd"](4608,wd,wd,[]),s["ɵmpd"](4608,Hd,Hd,[]),s["ɵmpd"](4608,cd.a,cd.a,[]),s["ɵmpd"](4608,X_,X_,[]),s["ɵmpd"](4608,Z.g,Z.g,[Z.b]),s["ɵmpd"](1073742336,X.e,X.e,[]),s["ɵmpd"](1073742336,X.d,X.d,[]),s["ɵmpd"](1073742336,i.CommonModule,i.CommonModule,[]),s["ɵmpd"](512,s.ErrorHandler,nT,[s.Injector]),s["ɵmpd"](1024,s.NgProbeToken,(function(){return[qt.w()]}),[]),s["ɵmpd"](512,qt.C,qt.C,[s.Injector]),s["ɵmpd"](1024,s.APP_INITIALIZER,(function(t,e){return[Lr.p(t),qt.D(e)]}),[[2,s.NgProbeToken],qt.C]),s["ɵmpd"](512,s.ApplicationInitStatus,s.ApplicationInitStatus,[[2,s.APP_INITIALIZER]]),s["ɵmpd"](131584,s.ApplicationRef,s.ApplicationRef,[s.NgZone,s["ɵConsole"],s.Injector,s.ErrorHandler,s.ComponentFactoryResolver,s.ApplicationInitStatus]),s["ɵmpd"](1073742336,s.ApplicationModule,s.ApplicationModule,[s.ApplicationRef]),s["ɵmpd"](1073742336,Lr.a,Lr.a,[[3,Lr.a]]),s["ɵmpd"](1073742336,Jx,Jx,[]),s["ɵmpd"](1073742336,c.i,c.i,[]),s["ɵmpd"](1024,qt.v,qt.z,[[3,qt.m]]),s["ɵmpd"](512,qt.u,qt.c,[]),s["ɵmpd"](512,qt.b,qt.b,[]),s["ɵmpd"](256,qt.i,{useHash:!0,preloadingStrategy:qt.g},[]),s["ɵmpd"](1024,i.LocationStrategy,qt.y,[i.PlatformLocation,[2,i.APP_BASE_HREF],qt.i]),s["ɵmpd"](512,i.Location,i.Location,[i.LocationStrategy,i.PlatformLocation]),s["ɵmpd"](512,s.Compiler,s.Compiler,[]),s["ɵmpd"](512,s.NgModuleFactoryLoader,s.SystemJsNgModuleLoader,[s.Compiler,[2,s.SystemJsNgModuleLoaderConfig]]),s["ɵmpd"](1024,qt.k,(function(){return[[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"",component:Kn,canActivate:[Qx.a,Xx],canActivateChild:[Qx.a,Xx],children:[{path:"dashboard",component:wr},{path:"hosts",data:i_,children:[{path:"",component:cs},{path:"create",component:ks,data:s_}]},{path:"monitor",component:Vs,data:o_},{path:"services",component:Js,data:u_},{path:"inventory",component:Zr,data:d_},{path:"osd",data:l_,children:[{path:"",component:zo},{path:"create",component:pu,data:c_}]},{path:"configuration",data:f_,children:[{path:"",component:Pu},{path:"edit/:name",component:Yu,data:h_}]},{path:"crush-map",component:gd,data:g_},{path:"logs",component:bl,data:p_},{path:"telemetry",component:El,data:b_},{path:"monitoring",data:m_,children:[{path:"",component:lc},{path:"silence/create",component:wc,data:y_},{path:"silence/create/:id",component:wc,data:v_},{path:"silence/edit/:id",component:wc,data:x_},{path:"silence/recreate/:id",component:wc,data:__}]},{path:"perf_counters/:type/:id",component:Bc,data:T_},{path:"mgr-modules",data:O_,children:[{path:"",component:Xc},{path:"edit/:name",component:rf,data:w_}]},{path:"pool",data:S_,loadChildren:I_},{path:"block",data:N_,loadChildren:C_},{path:"cephfs",component:uh,canActivate:[t_.a],data:R_},{path:"rgw",canActivateChild:[t_.a,e_],data:A_,loadChildren:k_},{path:"user-management",data:E_,loadChildren:L_},{path:"user-profile",data:D_,children:[{path:"edit",component:ph,canActivate:[n_],data:P_}]},{path:"nfs/501/:message",component:Ch,data:M_},{path:"nfs",canActivateChild:[t_.a,e_],data:q_,children:[{path:"",component:Fh},{path:"create",component:Ig,data:j_},{path:"edit/:cluster_id/:export_id",component:Ig,data:F_}]}]},{path:"",component:Mp,children:[{path:"login",component:zp},{path:"login-change-password",component:Zp,canActivate:[n_]}]},{path:"",component:ub,children:[{path:"sso/404",component:hb},{path:"403",component:yb},{path:"404",component:Ob},{path:"**",redirectTo:"/404"}]}]]}),[]),s["ɵmpd"](1024,qt.m,qt.A,[s.ApplicationRef,qt.u,qt.b,i.Location,s.Injector,s.NgModuleFactoryLoader,s.Compiler,qt.k,qt.i,[2,qt.t],[2,qt.l]]),s["ɵmpd"](1073742336,qt.q,qt.q,[[2,qt.v],[2,qt.m]]),s["ɵmpd"](1073742336,G_,G_,[]),s["ɵmpd"](1073742336,E,E,[]),s["ɵmpd"](1073742336,aT.a,aT.a,[]),s["ɵmpd"](1073742336,$.C,$.C,[]),s["ɵmpd"](1073742336,$.n,$.n,[]),s["ɵmpd"](1073742336,ea.d,ea.d,[]),s["ɵmpd"](1073742336,$.y,$.y,[]),s["ɵmpd"](1073742336,rT.a,rT.a,[]),s["ɵmpd"](1073742336,ae.c,ae.c,[]),s["ɵmpd"](1073742336,he.d,he.d,[]),s["ɵmpd"](1073742336,Hn.d,Hn.d,[]),s["ɵmpd"](1073742336,ca.b,ca.b,[]),s["ɵmpd"](1073742336,Lt.e,Lt.e,[]),s["ɵmpd"](1073742336,iT.a,iT.a,[]),s["ɵmpd"](1073742336,U.e,U.e,[]),s["ɵmpd"](1073742336,Z.f,Z.f,[]),s["ɵmpd"](1073742336,sT.ClickOutsideModule,sT.ClickOutsideModule,[]),s["ɵmpd"](1073742336,ye.b,ye.b,[]),s["ɵmpd"](1073742336,oT.a,oT.a,[]),s["ɵmpd"](1073742336,rc.u,rc.u,[]),s["ɵmpd"](1073742336,uT.a,uT.a,[]),s["ɵmpd"](1073742336,we.a,we.a,[]),s["ɵmpd"](1073742336,dT.a,dT.a,[]),s["ɵmpd"](1073742336,ta.d,ta.d,[]),s["ɵmpd"](1073742336,rt.g,rt.g,[]),s["ɵmpd"](1073742336,lT.a,lT.a,[]),s["ɵmpd"](1073742336,te,te,[]),s["ɵmpd"](1073742336,cT,cT,[]),s["ɵmpd"](1073742336,fT,fT,[]),s["ɵmpd"](1073742336,hT.a,hT.a,[]),s["ɵmpd"](1073742336,gT,gT,[]),s["ɵmpd"](1073742336,dg,dg,[]),s["ɵmpd"](1073742336,Wd,Wd,[]),s["ɵmpd"](1073742336,hd.b,hd.b,[]),s["ɵmpd"](1073742336,pT.a,pT.a,[]),s["ɵmpd"](1073742336,bT,bT,[]),s["ɵmpd"](1073742336,mT,mT,[]),s["ɵmpd"](1073742336,yT,yT,[]),s["ɵmpd"](1073742336,vT,vT,[]),s["ɵmpd"](1073742336,xT,xT,[]),s["ɵmpd"](1073742336,tT,tT,[]),s["ɵmpd"](1073742336,_T,_T,[[3,_T]]),s["ɵmpd"](1073742336,d,d,[]),s["ɵmpd"](256,X.n,"XSRF-TOKEN",[]),s["ɵmpd"](256,X.o,"X-XSRF-TOKEN",[]),s["ɵmpd"](256,Ey,{tokenGetter:o},[]),s["ɵmpd"](256,s["ɵAPP_ROOT"],!0,[]),s["ɵmpd"](256,Zx,"BrowserAnimations",[]),s["ɵmpd"](256,s.TRANSLATIONS_FORMAT,"xlf",[]),s["ɵmpd"](256,U.a,{autoClose:!0,insideClick:!1},[]),s["ɵmpd"](256,A,{},[]),s["ɵmpd"](256,c.b,{default:c.a,config:{positionClass:"toast-top-right",preventDuplicates:!0,enableHtml:!0}},[]),s["ɵmpd"](1024,Z.b,(function(){return[[]]}),[]),s["ɵmpd"](256,Z.a,1,[])])}));i.registerLocaleData(r.a),Object(s.enableProdMode)(),Lr.h().bootstrapModuleFactory(TT).catch(t=>console.log(t))},zZ0H:function(t,e){t.exports=function(t){return t}},zavE:function(t,e,n){!function(t){"use strict";t.defineLocale("en-SG",{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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},zk60:function(t,e,n){var a=n("2oRo"),r=n("kRJp");t.exports=function(t,e){try{r(a,t,e)}catch(n){a[t]=e}return e}},zoYe:function(t,e,n){var a=n("nmnc"),r=n("eUgh"),i=n("Z0cm"),s=n("/9aa"),o=a?a.prototype:void 0,u=o?o.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(i(e))return r(e,t)+"";if(s(e))return u?u.call(e):"";var n=e+"";return"0"==n&&1/e==-1/0?"-0":n}},zx6S:function(t,e,n){!function(t){"use strict";var e={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(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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če u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))}},[[0,0]]]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.bbd2d62de0d7a670cae3.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/main.bbd2d62de0d7a670cae3.js
deleted file mode 100644 (file)
index 53ae1a7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{"+0ag":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=/ceph version\s+[^ ]+\s+\(.+\)\s+(.+)\s+\((.+)\)/.exec(t);return e?"dev"===e[2]?"master":e[1]:t}}},"+6XX":function(t,e,n){var a=n("y1pI");t.exports=function(t){return a(this.__data__,t)>-1}},"+K+b":function(t,e,n){var a=n("JHRd");t.exports=function(t){var e=new t.constructor(t.byteLength);return new a(e).set(new a(t)),e}},"+Qka":function(t,e,n){var a=n("fmRc"),r=n("t2Dn"),o=n("cq/+"),i=n("T1AV"),s=n("GoyQ"),c=n("mTTR"),l=n("itsj");t.exports=function t(e,n,d,u,g){e!==n&&o(n,(function(o,c){if(g||(g=new a),s(o))i(e,n,c,d,t,u,g);else{var f=u?u(l(e,c),o,c+"",e,n,g):void 0;void 0===f&&(f=o),r(e,c,f)}}),c)}},"+Wg/":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="pt-BR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Alternar navegação</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Painel de controle</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitores</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Serviços</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuração</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mapa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Módulos do gerenciador</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Registros</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pools</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloco</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Imagens</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Espelhamento</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemas de arquivos</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Gateway de Objetos</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Usuários</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartimentos</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Selecionar Idioma</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Carregando dados do painel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Seletor de Horário do Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Redefinir Configurações</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Voltar</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Falha ao carregar dados.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>selecionado(s)</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>encontrado(s)</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nome</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descrição</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descrição extensa</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Padrão</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Padrão do daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valores</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Salvar</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visualizador de mapa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Carregando...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nome de host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Este campo é obrigatório.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sim, desejo.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Cancelar</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Fechar</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista de Hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Desempenho Geral</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nenhuma entrada encontrada</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Registros do Cluster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Registros de Auditoria</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Carregando configuração...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Não foi possível carregar a configuração.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Editar módulo do gerenciador</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>O valor inserido não é um UUID válido. Ex.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>O valor inserido precisa ser um endereço IP válido.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>O valor inserido precisa ser um número.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>O valor inserido precisa ser um número ou decimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Atualizar</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID do Cluster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap modificado</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>época de monmap</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con obrigatório</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon obrigatório</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>No Quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Não está no Quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Adicionar</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Recursos</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flags OSD de todo o Cluster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Enviar</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avançado...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioridade de Recuperação de OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioridade</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizar valores de prioridade</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Este campo é obrigatório!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>O valor precisa ser entre 0 e 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Reponderar</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profundo } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profundo} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista de OSDs</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valor</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Editar</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Excluir</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Saúde</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Estatísticas</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clientes</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Qualquer cliente pode acessar</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Endereços</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo obrigatório</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Deve conter um ou mais valores separados por vírgula</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Por exemplo:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo de Acesso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Executar Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Adicionar clientes</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Não há clusters disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Selecionar cluster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Adicionar daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend de Armazenamento</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Não há pools de dados disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Selecionar backend de armazenamento --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Usuário do Gateway de Objetos</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Não há usuários disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Selecionar usuário do gateway de objetos --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID de Usuário do CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Não há clientes disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Selecionar cliente do cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nome do CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Rótulo de Segurança</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Habilitar rótulo de segurança</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Caminho do CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>O caminho precisa começar com \'/\' e pode ser seguido de uma palavra</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Novo diretório será criado</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Caminho</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>O caminho pode ser apenas uma \'/\' ou uma palavra</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Novo compartimento será criado</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocolo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Clientes não podem montar subdiretórios (ou seja, se Tag = foo, o cliente não poderá montar foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Ao usar opções diferentes de Tag, o mesmo Caminho pode ser exportado várias vezes.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Ao usar opções diferentes de Pseudo, o mesmo Caminho pode ser exportado várias vezes.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Não há tipos de acesso disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Selecionar tipo de acesso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Não há squashes disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>--Selecionar que tipo de squash de ID de usuário será executado --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocolo de Transporte</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Bem-vindo ao Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nome de usuário é obrigatório</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Senha é obrigatória</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Login</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>O usuário não existe no Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Proibido</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Você não tem permissão para ver o que está procurando.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuração de RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Remova o valor de configuração local. No lugar dele, o valor de configuração pai será herdado e usado.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>O valor mínimo é 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista de Pools</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>O nome pode conter apenas caracteres alfanuméricos, traços e sublinhados.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>O nome do perfil de código de eliminação escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plug-in</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Pacotes de dados (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Deve ser igual ou maior do que 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Pacotes de codificação (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Deve ser igual ou maior do que 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimador de durabilidade (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localidade (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domínio de falha do Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localidade do Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nenhum</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Técnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Tamanho do pacote</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Raiz do Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe do dispositivo do Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>qualquer</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Diretório</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nome...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>O nome do pool do Ceph escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo de pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Selecionar tipo de pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupos de posicionamento</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Pelo menos um grupo de posicionamento é necessário!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Seu cluster não pode processar tantos PGs. Recalcule a quantidade de PG necessária.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Ajuda no cálculo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Tamanho replicado</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flags</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sobregravações de EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplicativos</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Perfil do código de eliminação</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Não há perfis de código de eliminação disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Selecionar perfil do código de eliminação --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Conjunto de regras do Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Selecionar regra de crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regra de Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Etapas do Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compactação</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modo</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Não há algoritmos de compactação de eliminação disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Tamanho mínimo do blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>ex. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>O valor deve ser maior do que 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Tamanho máximo do blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>ex. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>O valor deve ser maior do que o tamanho mínimo do blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Taxa</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Taxa de compactação</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>O valor deve ser entre 0.0 e 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ex. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detalhes</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detalhes de Desempenho</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detalhes das Camadas do Cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Mover imagem para o lixo</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Vencimento da proteção em</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NÃO PROTEGIDO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato de data incorreto. Use "AAAA-MM-DD HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>A proteção já venceu. Escolha uma data no futuro ou deixe-a vazia.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Mover Imagem</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Visão geral</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinos</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticação de Descoberta</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Usuário</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Os nomes de usuário devem ter entre 8 e 64 caracteres e\n              apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Senha</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Usuário Mútuo</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Senha Mútua</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informações disponíveis:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinos iSCSI não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool de Dados</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Criado</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Tamanho</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objetos</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Tamanho do objeto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unidade de distribuição</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Total de distribuições</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Pai</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefixo do nome do bloco</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Ordem</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantâneos</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Imagem</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Esta configuração substitui o valor global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Este é o valor global. Nenhum valor para esta opção foi definido para esta imagem.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' e \'@\' não são permitidos.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Não há pools de RBD disponíveis --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Selecionar pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Usar pool de dados dedicado</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool de dados</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool dedicado que armazena os dados de objetos do RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Você precisa aumentar o tamanho.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avançado</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Distribuição</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unidade de distribuição</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Selecionar unidade de distribuição --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Este campo é obrigatório porque o total de distribuições foi definido!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>A unidade de distribuição é maior do que o tamanho do objeto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Total de distribuições</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Este campo é obrigatório porque a unidade de distribuição foi definida!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>O total de distribuições deve ser maior do que 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Você está prestes a fazer rollback</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Purgar Lixo</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tudo</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nome do pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurar Imagem</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Para restaurar</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>digite o novo nome da imagem e clique em</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Novo Nome</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Venceu em</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protegido até</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Não costuma ser necessário mudar o valor padrão destes parâmetros.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Configurações</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmar</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Configurações Avançadas</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN de Destino</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN tem padrão incorreto.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Por exemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Mais informações</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Este destino tem configurações avançadas modificadas.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portais</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Adicionar portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Esta imagem tem configurações modificadas.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Adicionar imagem</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticação ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciadores</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciador</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN do Cliente</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>O IQN do Iniciador precisa ser exclusivo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Os nomes de usuário devem ter entre 8 e 64 caracteres e\n                        apenas podem conter letras, \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>O iniciador pertence a um grupo. As imagens serão configuradas no grupo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nenhum item adicionado.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Adicionar iniciador</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupos</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Adicionar grupo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Lixo</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemas</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizando</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Pronto</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Editar modo de espelho do pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Clusters de peer devem ser removidos antes de desabilitar o espelho.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Editar} other {Adicionar} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nome do Cluster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>O nome do cluster não é válido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID do CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID do CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>O ID do CephX não é válido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Endereços do Monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Endereços delimitados por vírgula...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>O endereço de monitoria não é válido.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Chave do CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Chave codificada com base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>A chave do CephX deve ser codificada com base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Contadores de desempenho não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista de Daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contadores de Desempenho</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Carregando dados do compartimento...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>O valor não é válido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>O nome escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Proprietário</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Selecionar usuário --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Habilitado</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo de índice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regra de posicionamento</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marcador</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marcador máximo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versão</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versão master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Horário da modificação</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Grupo de zonas</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Cota do compartimento</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Tamanho máximo</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Ilimitado</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Máximo de objetos</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nome de usuário</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Selecionar nome de usuário --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Gerar chave automaticamente</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Chave de acesso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Chave secreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nome completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Endereço de e-mail</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspenso</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Máximo de compartimentos</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subusuários</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Recursos</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Cota do usuário</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostrar</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Chaves</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Selecionar tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Permissão</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Selecionar permissão --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subusuário</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>O ID de subusuário escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>leitura, gravação</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>completo</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Chave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Gerar segredo automaticamente</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Carregando dados do usuário...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Não foi possível carregar os dados do usuário.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>O ID de usuário escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Este não é um endereço de e-mail válido.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>O endereço de e-mail escolhido já está em uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Máx. de compartimentos</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Desabilitado</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizado</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Chave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Não há subusuários.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Não há chaves.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Não há recursos.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Tamanho ilimitado</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Tamanho máx.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objetos ilimitados</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Máx. de objetos</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>O valor inserido deve ser &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descrição...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Permissões</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Funções</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmar senha</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>A confirmação de senha não corresponde à senha.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>E-mail inválido.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Você está prestes a remover as permissões de "leitura/atualização de usuário" do seu próprio usuário.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Se você continuar, não poderá mais adicionar ou remover funções de nenhum usuário.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Deseja realmente continuar?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Ajuda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentação</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Sobre</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Configurações do Painel de Controle</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gerenciamento de usuários</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Usuário que efetuou login</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Efetuar logout</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributos (mapa OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadados não disponíveis</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadados</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contador de desempenho</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Gravações</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Leituras</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histograma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valores atuais</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Mín.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Máx.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origem</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Nível</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Pode ser atualizado em tempo de execução (editável)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tags</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valores de enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Consulte também</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status do Cluster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons do Gerenciador</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Gateways de Objetos</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Servidores de Metadados</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Gateways iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS do Cliente</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Throughput do Cliente</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Leitura/Gravação do Cliente</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Throughput de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Remoção</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Desempenho</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacidade Bruta</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PGs por OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status do PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacidade</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Posições</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Atual</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticação de descoberta atualizada</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Não há portais disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Não há imagens disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Não há imagens disponíveis. Adicione uma imagem ao destino.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Não há iniciadores disponíveis. Adicione um iniciador ao destino.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destino</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes de Leitura</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes de Gravação</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Op. de Leitura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Op. de Gravação</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Desde</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instância</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Andamento</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Modo de Edição</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Adicionar Peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Editar Peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Excluir Peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>Nº Local</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>Nº Remoto</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>espelhar peer</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Chave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Nivelamento profundo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Disposição em camadas</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Bloqueio exclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa de objetos (requer bloqueio exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Registro em diário (requer bloqueio exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NÃO PROTEGIDO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback de instantâneo do RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Fazer Rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Instantâneo do RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Excluído à(s)</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>estado</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versão</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>raiz</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons de standby</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Posição</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Atividade</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Uso</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Atualizado</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>É possível atualizar o valor em temo de execução.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemons/clientes não extraem este valor do\n      banco de dados de configuração do monitor. A configuração desta opção não é permitida por meio de \'ceph config\n      set ...\'. Essa opção deve ser configurada por meio do ceph.conf ou da\n      linha de comando.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>A opção entra em vigor apenas durante a inicialização do daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>A opção afeta apenas a criação do cluster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>A opção afeta apenas a criação do daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Serviço</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valor atual</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Editável</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Habilitar</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Desabilitar</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Reconectando, aguarde...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Endereço Público</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessões Abertas</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Não Entrada</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Os OSDs que já foram marcados como saída não serão remarcados como entrada ao serem iniciados</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Não Saída</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Os OSDs não serão automaticamente marcados como saída após o intervalo configurado</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Não Ativo</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Os OSDs não podem ser iniciados</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Não Inativo</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Os relatórios de falha de OSD estão sendo ignorados, portanto, os monitores não marcarão os OSDs como inativos</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pausar</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pausa leituras e gravações</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Sem Remoção</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Remoção desabilitada</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Sem Remoção Profunda</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Remoção Profunda desabilitada</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Sem Provisionamento</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Provisionamento de PGs suspenso</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Sem Recuperação</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Recuperação de PGs suspensa</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Classificação Bit a Bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usar classificação bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdirs Purgados</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDs converteram snapsets</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Exclusões de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Exclusões realizadas durante a recuperação, e não o emparelhamento</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite Físico do Registro de PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Atribui um limite físico ao tamanho do registro de PG</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flags OSD Atualizadas</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>saída</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>entrada</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>inativo</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marcar</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdido</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marcado como perdido</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Purgar</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>purgado</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>destruir</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>destruído</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>excluir</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PGs</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes de leitura</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes de gravação</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Op. de leitura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Op. de gravação</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Máx. de Provisionamentos</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Máx. Recuperação Ativo</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Máx. Recuperação Inicialização Única</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Suspensão de Recuperação</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Tarefa</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravidade</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Iniciado</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Usado</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Disp.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Limpar</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Em funcionamento</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Aviso</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Desconhecido</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>ativo</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>sem sistemas de arquivos</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>ativo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon ativo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>O serviço NFS Ganesha não está configurado.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transporte</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Usuário do CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Sistema de Arquivos do CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(herdado da configuração global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>herdado da configuração global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Selecionar que tipo de squash de ID de usuário será executado --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Não há daemons disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modo de Cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Tempo Mín. Expulsão</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Tempo Mín. Descarregamento</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Máx. de Bytes de Destino</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Máx. de Objetos de Destino</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nenhum aplicativo adicionado</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Limite de aplicativos atingido</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Um pool apenas pode ter até quatro definições de aplicativos.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caracteres permitidos: \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Tamanho máximo de 128 caracteres</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrar ou adicionar aplicativos</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Adicionar aplicativo</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>perfil de código de eliminação</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Tamanho da Réplica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Última Alteração</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Perfil Codificado para Eliminação</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Conjunto de Regras do Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartimento</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartimentos</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>usuário</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>usuários</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Escopo</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Leitura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Criar</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Função do Sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Atualizar usuário</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuar</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Você foi automaticamente desconectado porque suas funções foram alteradas.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Cada objeto é dividido em partes de pacotes de dados, cada uma armazenada em um OSD diferente.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcule os pacotes de codificação de cada objeto e armazene-os em diferentes OSDs.\n      O número de pacotes de codificação é também o número de OSDs que podem ficar inativos sem perda de dados.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>O plug-in jerasure é o mais genérico e flexível,\n          além de ser o padrão para pools codificados para eliminação do Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>A técnica mais flexível é reed_sol_van: ela é suficiente para definir k\n          e m. A técnica cauchy_good pode ser mais rápida, mas você precisa escolher o tamanho do pacote\n          com cuidado. Todos os reed_sol_r6_op, liberation, blaum_roth e liber8tion são equivalentes ao RAID6\n          no sentido de que só podem ser configurados com m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>A codificação será feita em pacotes de tamanho de bytes um de cada vez.\n          A escolha do tamanho do pacote certo é difícil.\n          A documentação do jerasure contém informações completas sobre este tópico.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Com o plug-in jerasure, quando um objeto codificado para eliminação é armazenado em\n          vários OSDs, a recuperação após a perda de um OSD requer a leitura de todos os outros.\n          Por exemplo, se o jerasure for configurado com k=8 e m=4, a perda de um OSD exigirá a leitura\n          dos outros onze para fazer o reparo.\n\n          O plug-in de código de eliminação lrc cria pacotes locais de paridade para conseguir recuperar usando\n          menos OSDs. Por exemplo, se o lrc for configurado com k=8, m=4 e l=4, ele criará\n          um pacote de paridade adicional para cada quatro OSDs. Quando um único OSD é perdido, ele pode ser\n          recuperado apenas com quatro OSDs, em vez de onze.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Agrupe os pacotes de codificação e dados em conjuntos de localidades com tamanho. Por exemplo,\n          no caso de k=4 e m=2, quando locality=3, dois grupos de três são criados. Cada conjunto pode\n          ser recuperado sem a leitura dos pacotes do outro conjunto.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>O tipo do compartimento de crush em que cada conjunto de pacotes definido\n          por l será armazenado. Por exemplo, se isso for definido como rack, cada grupo de pacotes l será\n          colocado em um rack diferente. Isso é usado para criar uma etapa da regra CRUSH, como a etapa de escolha do\n          rack. Se isso não for definido, esse tipo de agrupamento não será feito.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>O plug-in isa encapsula a biblioteca ISA. Ele apenas é executado em processadores Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>O plug-in ISA vem em dois formatos de Reed Solomon.\n          Se reed_sol_van for definido, ele será Vandermonde, se cauchy for definido, ele será Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>O plug-in shec encapsula a biblioteca múltipla SHEC.\n          Ele permite ao ceph recuperar dados com mais eficiência do que os códigos de Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>O número de pacotes de paridade, em que cada um inclui cada pacote de dados em sua\n          faixa de cálculo. O número é usado como estimador de durabilidade. Por exemplo, se c=2,\n          2 OSDs podem ficar inativos sem perda de dados.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>O nome do compartimento de crush usado para a primeira etapa da regra CRUSH.\n      Por exemplo, a etapa assumir o padrão.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Verifique se não há dois pacotes em um compartimento com o mesmo domínio de\n      falha. Por exemplo, se o domínio de falha for um host, não armazene dois pacotes no mesmo\n      host. Isso é usado para criar uma etapa da regra CRUSH, como a etapa de escolha do host folha.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restrinja o posicionamento a dispositivos de uma classe específica\n      (ex. ssd ou hdd), usando nomes de classe de dispositivo crush no mapa CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Defina o nome do diretório do qual o plug-in de código de eliminação é carregado.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Permite todas as operações</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Permite apenas as operações que não modificam o servidor</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Não permite operações de leitura ou gravação, mas permite qualquer outra operação</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Não permite leitura, gravação ou qualquer operação que modifica os atributos do arquivo ou o conteúdo do diretório</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Não permite nenhum tipo de acesso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Selecionar prioridade --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Baixa</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informações</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Últimos 5 minutos</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Últimos 15 minutos</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Últimos 30 minutos</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Última 1 hora (Padrão)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Últimas 3 horas</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Últimas 6 horas</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Últimas 12 horas</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Últimas 24 horas</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ontem</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hoje</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Até agora hoje</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Antes de ontem</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Últimos 2 dias</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Este dia na semana passada</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Semana anterior</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Esta semana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Até agora nesta semana</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Últimos 7 dias</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Mês anterior</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Este mês</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Até agora neste mês</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Últimos 30 dias</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Últimos 90 dias</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Últimos 6 meses</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Último ano</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Ano anterior</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Este ano</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Até agora neste ano</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Últimos 2 anos</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Últimos 5 anos</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nenhum item selecionado.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Desmarcar item para selecionar novamente</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Limite de seleção atingido</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tags de filtro</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Adicionar selo</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Não há itens disponíveis.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clonar</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copiar</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Remoção Profunda</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Destruir</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Nivelar</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marcar como Inativo</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marcar como Entrada</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marcar como Perdido</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marcar como Saída</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renomear</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurar</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Mover para Lixo</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Cancelar proteção</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Excluído</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonado</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiado</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Nivelado</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Purgado</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restaurado</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback feito</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sim</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Não</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualidade do Serviço</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite de BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>O limite de bytes por segundo de E/S desejado.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite de IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>O limite de operações por segundo de E/S desejado.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite de BPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>O limite de bytes por segundo de leitura desejado.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite de IOPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>O limite de operações por segundo de leitura desejado.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite de BPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>O limite de bytes por segundo de gravação desejado.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite de IOPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>O limite de operações por segundo de gravação desejado.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Intermitência de BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>O limite de bytes de E/S de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Intermitência de IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>O limite de operações de E/S de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Intermitência de BPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>O limite de bytes de leitura de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Intermitência de IOPS de Leitura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>O limite de operações de leitura de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Intermitência de BPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>O limite de bytes de gravação de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Intermitência de IOPS de Gravação</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>O limite de operações de gravação de intermitência desejado.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Executando</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>executar</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Executado</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tarefa desconhecida</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Criando</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>criar</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Atualizando</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>atualizar</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Excluindo</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonando</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clonar</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copiando</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copiar</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Nivelando</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>nivelar</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Fazendo rollback</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Movendo</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>mover</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Movido</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Imagem não encontrada.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Restaurando</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurar</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Purgando</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>purgar</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>todos os pools</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossível desabilitar espelhamento porque ele contém um peer.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"+c4W":function(t,e,n){var a=n("711d"),r=n("4/ic"),o=n("9ggG"),i=n("9Nap");t.exports=function(t){return o(t)?a(i(t)):r(t)}},"+gVj":function(t,e,n){"use strict";n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return g})),n.d(e,"d",(function(){return o})),n.d(e,"e",(function(){return l})),n.d(e,"f",(function(){return p})),n.d(e,"g",(function(){return u})),n.d(e,"h",(function(){return f}));var a=n("8Y7J"),r=n("s7LF");class o{constructor(){this.validSubmit=new a.EventEmitter}onSubmit(){this.markAsTouchedAndDirty(this.formGroup),this.formGroup.valid&&this.validSubmit.emit(this.formGroup.value)}markAsTouchedAndDirty(t){t instanceof r.k?Object.keys(t.controls).forEach(e=>this.markAsTouchedAndDirty(t.controls[e])):t instanceof r.f?t.controls.forEach(t=>this.markAsTouchedAndDirty(t)):t instanceof r.i&&t.enabled&&(t.markAsDirty(),t.markAsTouched(),t.updateValueAndValidity())}}const i=function(){var t={Three:0,Four:1};return t[t.Three]="Three",t[t.Four]="Four",t}(),s=new a.InjectionToken("ng-bootstrap-form-validation custom error messages"),c=new a.InjectionToken("ng-bootstrap-form-validation module options");class l{constructor(t){this.bootstrapVersion=t,this.messages=()=>[]}get className(){switch(this.bootstrapVersion){case i.Three:return"help-block";case i.Four:return"invalid-feedback"}}}const d=[{error:"required",format:t=>`${t} is required`},{error:"pattern",format:t=>`${t} is invalid`},{error:"minlength",format:(t,e)=>`${t} must be at least ${e.requiredLength} characters`},{error:"maxlength",format:(t,e)=>`${t} must be no longer than ${e.requiredLength} characters`},{error:"requiredTrue",format:(t,e)=>`${t} is required`},{error:"email",format:(t,e)=>"Invalid email address"},{error:"max",format:(t,e)=>`${t} must be no greater than ${e.max}`},{error:"min",format:(t,e)=>`${t} must be no less than ${e.min}`}];let u=(()=>{class t{constructor(t){this.customErrorMessages=t,this.defaultErrors=d,this.errorMessages=t.reduce((t,e)=>t.concat(e),this.defaultErrors)}}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(s))},token:t,providedIn:"root"}),t})();class g{constructor(t,e){this.elRef=t,this.errorMessageService=e,this.customErrorMessages=[],this.validationDisabled=!1,this.messages=()=>this.getMessages()}get hasErrors(){return this.FormControlNames.some(t=>!t.valid&&t.dirty&&t.touched)&&!this.validationDisabled}get hasSuccess(){return!this.FormControlNames.some(t=>!t.valid)&&this.FormControlNames.some(t=>t.dirty&&t.touched)&&!this.validationDisabled}ngAfterContentInit(){this.messagesBlock&&(this.messagesBlock.messages=this.messages)}ngOnInit(){this.errorMessages=this.errorMessageService.errorMessages.concat(this.customErrorMessages).reverse()}get label(){const t=this.elRef.nativeElement.querySelector("label");return t&&t.textContent?t.textContent.trim():"This field"}get isDirtyAndTouched(){return this.FormControlNames.some(t=>t.dirty&&t.touched)}getMessages(){const t=[];if(!this.isDirtyAndTouched||this.validationDisabled)return t;const e=this.FormControlNames.map(t=>t.name);return this.FormControlNames.filter((t,n)=>!t.valid&&!!t.errors&&e.indexOf(t.name)===n).forEach(e=>{Object.keys(e.errors).forEach(n=>{const a=this.errorMessages.find(t=>t.error===n);a&&t.push(a.format(this.label,e.errors[n]))})}),t}}class f{constructor(t,e){this.parent=t,this.bootstrapVersion=e}get validClass(){return!!this.control&&this.bootstrapFour&&this.control.valid&&(this.control.touched||this.control.dirty)}get invalidClass(){return!!this.control&&this.bootstrapFour&&this.control.invalid&&this.control.touched&&this.control.dirty}get path(){return[...this.parent.path,this.formControlName]}get control(){return this.formDirective&&this.formDirective.getControl(this)}get formDirective(){return this.parent?this.parent.formDirective:null}get bootstrapFour(){return this.bootstrapVersion===i.Four}}class p{static forRoot(t={bootstrapVersion:i.Four}){return{ngModule:p,providers:[{provide:s,useValue:t.customErrorMessages||[],multi:!0},{provide:c,useValue:t.bootstrapVersion},u]}}}},"+iFO":function(t,e,n){var a=n("dTAl"),r=n("LcsW"),o=n("6sVZ");t.exports=function(t){return"function"!=typeof t.constructor||o(t)?{}:a(r(t))}},"+s0g":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^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],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,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:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"//9w":function(t,e,n){!function(t){"use strict";t.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".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žes",past:"maŋit %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ánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"/9aa":function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return"symbol"==typeof t||r(t)&&"[object Symbol]"==a(t)}},"/GqU":function(t,e,n){var a=n("RK3t"),r=n("HYAF");t.exports=function(t){return a(r(t))}},"/NlG":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("oxzT");class o{constructor(t){this.i18n=t,this.title="",this.bootstrapClass="",this.backAction=new a.EventEmitter,this.size="normal",this.showIcon=!0,this.showTitle=!0,this.icons=r.a}ngOnInit(){switch(this.type){case"warning":this.title=this.title||this.i18n("Warning"),this.typeIcon=this.typeIcon||r.a.warning,this.bootstrapClass=this.bootstrapClass||"warning";break;case"error":this.title=this.title||this.i18n("Error"),this.typeIcon=this.typeIcon||r.a.destroyCircle,this.bootstrapClass=this.bootstrapClass||"danger";break;case"info":this.title=this.title||this.i18n("Information"),this.typeIcon=this.typeIcon||r.a.infoCircle,this.bootstrapClass=this.bootstrapClass||"info";break;case"success":this.title=this.title||this.i18n("Success"),this.typeIcon=this.typeIcon||r.a.check,this.bootstrapClass=this.bootstrapClass||"success"}}}},"/X5v":function(t,e,n){!function(t){"use strict";t.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".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~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},"/b8u":function(t,e,n){var a=n("STAE");t.exports=a&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},"/byt":function(t,e){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},"/uUt":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return n=>n.lift(new o(t,e))}class o{constructor(t,e){this.compare=t,this.keySelector=e}call(t,e){return e.subscribe(new i(t,this.compare,this.keySelector))}}class i extends a.a{constructor(t,e,n){super(t),this.keySelector=n,this.hasKey=!1,"function"==typeof e&&(this.compare=e)}compare(t,e){return t===e}_next(t){let e;try{const{keySelector:n}=this;e=n?n(t):t}catch(a){return this.destination.error(a)}let n=!1;if(this.hasKey)try{const{compare:t}=this;n=t(this.key,e)}catch(a){return this.destination.error(a)}else this.hasKey=!0;n||(this.key=e,this.destination.next(t))}}},0:function(t,e,n){t.exports=n("zUnb")},"0+/T":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("s7LF"),r=n("QFaf");n("sb0X");class o{constructor(t){this.modalRef=t,this.actionDescription="delete"}ngOnInit(){if(this.deletionForm=new r.a({confirmation:new a.i(!1,[a.B.requiredTrue])}),!this.submitAction&&!this.submitActionObservable)throw new Error("No submit action defined")}callSubmitAction(){this.submitActionObservable?this.submitActionObservable().subscribe(null,this.stopLoadingSpinner.bind(this),this.hideModal.bind(this)):this.submitAction()}hideModal(){this.modalRef.hide()}stopLoadingSpinner(){this.deletionForm.setErrors({cdSubmitButton:!0})}}},"02Lk":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("l7GE"),r=n("ZUHj");function o(t,e){return n=>n.lift(new i(t,e))}class i{constructor(t,e){this.keySelector=t,this.flushes=e}call(t,e){return e.subscribe(new s(t,this.keySelector,this.flushes))}}class s extends a.a{constructor(t,e,n){super(t),this.keySelector=e,this.values=new Set,n&&this.add(Object(r.a)(this,n))}notifyNext(t,e,n,a,r){this.values.clear()}notifyError(t,e){this._error(t)}_next(t){this.keySelector?this._useKeySelector(t):this._finalizeNext(t,t)}_useKeySelector(t){let e;const{destination:n}=this;try{e=this.keySelector(t)}catch(a){return void n.error(a)}this._finalizeNext(e,t)}_finalizeNext(t,e){const{values:n}=this;n.has(t)||(n.add(t),this.destination.next(e))}}},"03A+":function(t,e,n){var a=n("JTzB"),r=n("ExA7"),o=Object.prototype,i=o.hasOwnProperty,s=o.propertyIsEnumerable,c=a(function(){return arguments}())?a:function(t){return r(t)&&i.call(t,"callee")&&!s.call(t,"callee")};t.exports=c},"07d7":function(t,e,n){var a=n("AO7/"),r=n("busE"),o=n("sEFX");a||r(Object.prototype,"toString",o,{unsafe:!0})},"0BK2":function(t,e){t.exports={}},"0Cz8":function(t,e,n){var a=n("Xi7e"),r=n("ebwN"),o=n("e4Nc");t.exports=function(t,e){var n=this.__data__;if(n instanceof a){var i=n.__data__;if(!r||i.length<199)return i.push([t,e]),this.size=++n.size,this;n=this.__data__=new o(i)}return n.set(t,e),this.size=n.size,this}},"0Dky":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"0EUg":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("bHdf");function r(){return Object(a.a)(1)}},"0GbY":function(t,e,n){var a=n("Qo9l"),r=n("2oRo"),o=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,e){return arguments.length<2?o(a[t])||o(r[t]):a[t]&&a[t][e]||r[t]&&r[t][e]}},"0MID":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("qwkt"),s=n("5tze");n("czA5"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new o.EventEmitter,this.select=new o.EventEmitter,this.columnContextmenu=new o.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}var o=this.sortDir;return o&&(t+=" sort-active sort-"+o),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return void 0===this.column.headerTemplate?this.column.name:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxable",{get:function(){return this.column.checkboxable&&this.column.headerCheckboxable&&this.selectionType===i.SelectionType.checkbox},enumerable:!0,configurable:!0}),t.prototype.onContextmenu=function(t){this.columnContextmenu.emit({event:t,column:this.column})},t.prototype.calcSortDir=function(t){var e=this;if(t&&this.column){var n=t.find((function(t){return t.prop===e.column.prop}));if(n)return n.dir}},t.prototype.onSort=function(){if(this.column.sortable){var t=s.nextSortDir(this.sortType,this.sortDir);this.sort.emit({column:this.column,prevValue:this.sortDir,newValue:t})}},t.prototype.calcSortClass=function(t){return t===i.SortDirection.asc?"sort-btn sort-asc "+this.sortAscendingIcon:t===i.SortDirection.desc?"sort-btn sort-desc "+this.sortDescendingIcon:"sort-btn"},a([o.Input(),r("design:type",String)],t.prototype,"sortType",void 0),a([o.Input(),r("design:type",String)],t.prototype,"sortAscendingIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"sortDescendingIcon",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"isTarget",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"targetMarkerContext",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"allRowsSelected",null),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([o.HostBinding("style.height.px"),o.Input(),r("design:type",Number)],t.prototype,"headerHeight",void 0),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"sort",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"columnContextmenu",void 0),a([o.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([o.HostBinding("attr.title"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"name",null),a([o.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([o.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([o.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([o.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([o.Component({selector:"datatable-header-cell",template:'\n    <div class="datatable-header-cell-template-wrap">\n      <ng-template\n        *ngIf="isTarget"\n        [ngTemplateOutlet]="targetMarkerTemplate"\n        [ngTemplateOutletContext]="targetMarkerContext">\n      </ng-template>\n      <label\n        *ngIf="isCheckboxable"\n        class="datatable-checkbox">\n        <input\n          type="checkbox"\n          [checked]="allRowsSelected"\n          (change)="select.emit(!allRowsSelected)"\n        />\n      </label>\n      <span\n        *ngIf="!column.headerTemplate"\n        class="datatable-header-cell-wrapper">\n        <span\n          class="datatable-header-cell-label draggable"\n          (click)="onSort()"\n          [innerHTML]="name">\n        </span>\n      </span>\n      <ng-template\n        *ngIf="column.headerTemplate"\n        [ngTemplateOutlet]="column.headerTemplate"\n        [ngTemplateOutletContext]="cellContext">\n      </ng-template>\n      <span\n        (click)="onSort()"\n        [class]="sortClass">\n      </span>\n    </div>\n  ',host:{class:"datatable-header-cell"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},"0eef":function(t,e,n){"use strict";var a={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,o=r&&!a.call({1:2},1);e.f=o?function(t){var e=r(this,t);return!!e&&e.enumerable}:a},"0mo+":function(t,e,n){!function(t){"use strict";var e={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};t.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".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:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(t){return t.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(t,e){return 12===t&&(t=0),"མཚན་མོ"===e&&t>=4||"ཉིན་གུང"===e&&t<5||"དགོང་དག"===e?t+12:t},meridiem:function(t,e,n){return t<4?"མཚན་མོ":t<10?"ཞོགས་ཀས":t<17?"ཉིན་གུང":t<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n("wd/R"))},"0rvr":function(t,e,n){var a=n("glrk"),r=n("O741");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{(t=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),e=n instanceof Array}catch(o){}return function(n,o){return a(n),r(o),e?t.call(n,o):n.__proto__=o,n}}():void 0)},"0tRk":function(t,e,n){!function(t){"use strict";t.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})}(n("wd/R"))},"0ycA":function(t,e){t.exports=function(){return[]}},"1+5i":function(t,e,n){var a=n("w/wX"),r=n("sEf8"),o=n("mdPL"),i=o&&o.isSet,s=i?r(i):a;t.exports=s},"128B":function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("Kqap"),r=n("BFxc"),o=n("xbPD"),i=n("mCNh");function s(t,e){return arguments.length>=2?function(n){return Object(i.a)(Object(a.a)(t,e),Object(r.a)(1),Object(o.a)(e))(n)}:function(e){return Object(i.a)(Object(a.a)((e,n,a)=>t(e,n,a+1)),Object(r.a)(1))(e)}}},"14R3":function(t,e){"undefined"!=typeof Element&&("function"!=typeof Element.prototype.matches&&(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.webkitMatchesSelector||function(t){for(var e=(this.document||this.ownerDocument).querySelectorAll(t),n=0;e[n]&&e[n]!==this;)++n;return Boolean(e[n])}),"function"!=typeof Element.prototype.closest&&(Element.prototype.closest=function(t){for(var e=this;e&&1===e.nodeType;){if(e.matches(t))return e;e=e.parentNode}return null}))},"14Sl":function(t,e,n){"use strict";n("rB9j");var a=n("busE"),r=n("0Dky"),o=n("tiKp"),i=n("kmMV"),s=n("kRJp"),c=o("species"),l=!r((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")})),d="$0"==="a".replace(/./,"$0"),u=o("replace"),g=!!/./[u]&&""===/./[u]("a","$0"),f=!r((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]}));t.exports=function(t,e,n,u){var p=o(t),m=!r((function(){var e={};return e[p]=function(){return 7},7!=""[t](e)})),h=m&&!r((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[c]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](""),!e}));if(!m||!h||"replace"===t&&(!l||!d||g)||"split"===t&&!f){var b=/./[p],y=n(p,""[t],(function(t,e,n,a,r){return e.exec===i?m&&!r?{done:!0,value:b.call(e,n,a)}:{done:!0,value:t.call(n,e,a)}:{done:!1}}),{REPLACE_KEEPS_$0:d,REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE:g}),_=y[1];a(String.prototype,t,y[0]),a(RegExp.prototype,p,2==e?function(t,e){return _.call(t,this,e)}:function(t){return _.call(t,this)})}u&&s(RegExp.prototype[p],"sham",!0)}},"1E5z":function(t,e,n){var a=n("m/L8").f,r=n("UTVS"),o=n("tiKp")("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&a(t,o,{configurable:!0,value:e})}},"1HVU":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("rdkg"),r=n("CVuo"),o="undefined"!=typeof window?a.getVendorPrefixedName("transform"):void 0,i="undefined"!=typeof window?a.getVendorPrefixedName("backfaceVisibility"):void 0,s="undefined"!=typeof window?!!a.getVendorPrefixedName("transform"):void 0,c="undefined"!=typeof window?!!a.getVendorPrefixedName("perspective"):void 0,l="undefined"!=typeof window?window.navigator.userAgent:"Chrome",d=/Safari\//.test(l)&&!/Chrome\//.test(l);e.translateXY=function(t,e,n){void 0!==o&&s?!d&&c?(t[o]="translate3d("+e+"px, "+n+"px, 0)",t[i]="hidden"):t[r.camelCase(o)]="translate("+e+"px, "+n+"px)":(t.top=n+"px",t.left=e+"px")}},"1Ni5":function(t,e,n){"use strict";n.d(e,"b",(function(){return g})),n.d(e,"a",(function(){return f}));var a=n("s7LF"),r=n("LvDl"),o=n("LRne"),i=n("PqYM"),s=n("aGrj"),c=n("lJxs"),l=n("IzEk"),d=n("Fgil"),u=n("aXbf");function g(t){return null==t||0===t.length}class f{static email(t){return g(t.value)?null:a.B.email(t)}static ip(t=0){const e=/^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i,n=/^(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}$/i;return a.B.pattern(4===t?e:6===t?n:new RegExp(e.source+"|"+n.source))}static number(t=!0){return a.B.pattern(t?/^-?[0-9]+$/i:/^[0-9]+$/i)}static decimalNumber(t=!0){return a.B.pattern(t?/^-?[0-9]+(.[0-9]+)?$/i:/^[0-9]+(.[0-9]+)?$/i)}static requiredIf(t,e){let n=!1;return a=>(!n&&a.parent&&(Object.keys(t).forEach(t=>{a.parent.get(t).valueChanges.subscribe(()=>{a.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(e=>a.parent&&a.parent.get(e).value===t[e])&&(r.isFunction(e)?e.call(e,a.value):g(a.value))?{required:!0}:null)}static composeIf(t,e){let n=!1;return r=>(!n&&r.parent&&(Object.keys(t).forEach(t=>{r.parent.get(t).valueChanges.subscribe(()=>{r.updateValueAndValidity({emitEvent:!1})})}),n=!0),Object.keys(t).every(e=>r.parent&&r.parent.get(e).value===t[e])?a.B.compose(e)(r):null)}static custom(t,e){return n=>{const a=e.call(this,n.value);return a?{[t]:a}:null}}static validateIf(t,e,n,r=[],o=[]){n=n.concat(r),t.setValidators(t=>e.call(this)?a.B.compose(n)(t):r.length>0?a.B.compose(r)(t):null),o.forEach(e=>{e.valueChanges.subscribe(()=>{t.updateValueAndValidity({emitEvent:!1})})})}static match(t,e){return n=>{const a=n.get(t),o=n.get(e);if(!a||!o)return null;if(a.value!==o.value)o.setErrors({match:!0});else if(o.hasError("match")){const t=o.errors;r.unset(t,"match"),o.setErrors(r.isEmpty(r.keys(t))?null:t)}return null}}static unique(t,e=null,n=500){return a=>a.pristine||g(a.value)?Object(o.a)(null):Object(i.a)(n).pipe(Object(s.a)(t.call(e,a.value)),Object(c.a)(t=>t?{notUnique:!0}:null),Object(l.a)(1))}static uuid(t=!1){const e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return n=>n.pristine&&n.untouched?null:t||n.value?e.test(n.value)?null:{invalidUuid:"This is not a valid UUID"}:null}static binaryMin(t){return e=>{const n=new u.a,a=(new u.a).toBytes(e.value);if(t<=a)return null;const r=new d.a(n).transform(t);return{binaryMin:t=>t("Size has to be at least {{value}} or more",{value:r})}}}static binaryMax(t){return e=>{const n=new u.a,a=n.toBytes(e.value);if(t>=a)return null;const r=new d.a(n).transform(t);return{binaryMax:t=>t("Size has to be at most {{value}} or less",{value:r})}}}static passwordPolicy(t,e,n){return a=>{if(a.pristine||""===a.value)return r.isFunction(n)&&n(!0,0),Object(o.a)(null);let d;return r.isFunction(e)&&(d=e()),Object(i.a)(500).pipe(Object(s.a)(r.invoke(t,"validatePassword",a.value,d)),Object(c.a)(t=>(r.isFunction(n)&&n(t.valid,t.credits,t.valuation),t.valid?null:{passwordPolicy:!0})),Object(l.a)(1))}}}},"1Y/n":function(t,e,n){var a=n("HAuM"),r=n("ewvW"),o=n("RK3t"),i=n("UMSQ"),s=function(t){return function(e,n,s,c){a(n);var l=r(e),d=o(l),u=i(l.length),g=t?u-1:0,f=t?-1:1;if(s<2)for(;;){if(g in d){c=d[g],g+=f;break}if(g+=f,t?g<0:u<=g)throw TypeError("Reduce of empty array with no initial value")}for(;t?g>=0:u>g;g+=f)g in d&&(c=n(c,d[g],g,l));return c}};t.exports={left:s(!1),right:s(!0)}},"1hJj":function(t,e,n){var a=n("e4Nc"),r=n("ftKO"),o=n("3A9y");function i(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new a;++e<n;)this.add(t[e])}i.prototype.add=i.prototype.push=r,i.prototype.has=o,t.exports=i},"1nQr":function(t,e,n){"use strict";var a=n("LvDl"),r=n("lJxs"),o=n("20UP");class i{constructor(t){this.pwdPolicyEnabled=t.pwd_policy_enabled,this.pwdPolicyMinLength=t.pwd_policy_min_length,this.pwdPolicyCheckLengthEnabled=t.pwd_policy_check_length_enabled,this.pwdPolicyCheckOldpwdEnabled=t.pwd_policy_check_oldpwd_enabled,this.pwdPolicyCheckUsernameEnabled=t.pwd_policy_check_username_enabled,this.pwdPolicyCheckExclusionListEnabled=t.pwd_policy_check_exclusion_list_enabled,this.pwdPolicyCheckRepetitiveCharsEnabled=t.pwd_policy_check_repetitive_chars_enabled,this.pwdPolicyCheckSequentialCharsEnabled=t.pwd_policy_check_sequential_chars_enabled,this.pwdPolicyCheckComplexityEnabled=t.pwd_policy_check_complexity_enabled}}var s=n("8Y7J"),c=n("GiVz");n.d(e,"a",(function(){return l}));let l=(()=>{class t{constructor(t,e){this.i18n=t,this.settingsService=e}getHelpText(){return this.settingsService.getStandardSettings().pipe(Object(r.a)(t=>{const e=new i(t);let n=[];if(e.pwdPolicyEnabled){n.push(this.i18n("Required rules for passwords:"));const t={pwdPolicyCheckLengthEnabled:this.i18n("Must contain at least {{length}} characters",{length:e.pwdPolicyMinLength}),pwdPolicyCheckOldpwdEnabled:this.i18n("Must not be the same as the previous one"),pwdPolicyCheckUsernameEnabled:this.i18n("Cannot contain the username"),pwdPolicyCheckExclusionListEnabled:this.i18n("Cannot contain any configured keyword"),pwdPolicyCheckRepetitiveCharsEnabled:this.i18n('Cannot contain any repetitive characters e.g. "aaa"'),pwdPolicyCheckSequentialCharsEnabled:this.i18n('Cannot contain any sequential characters e.g. "abc"'),pwdPolicyCheckComplexityEnabled:this.i18n("Must consist of characters from the following groups:\n  * Alphabetic a-z, A-Z\n  * Numbers 0-9\n  * Special chars: !\"#$%& '()*+,-./:;<=>?@[\\]^_`{{|}}~\n  * Any other characters (signs)")};n=n.concat(a.keys(t).filter(t=>a.get(e,t)).map(e=>"- "+a.get(t,e)))}return n.join("\n")}))}mapCreditsToCssClass(t){let e="very-strong";return t<10?e="too-weak":t<15?e="weak":t<20?e="ok":t<25&&(e="strong"),e}}return t.ngInjectableDef=s["ɵɵdefineInjectable"]({factory:function(){return new t(s["ɵɵinject"](c.a),s["ɵɵinject"](o.a))},token:t,providedIn:"root"}),t})()},"1rYy":function(t,e,n){!function(t){"use strict";t.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".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:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(t){return/^(ցերեկվա|երեկոյան)$/.test(t)},meridiem:function(t){return t<4?"գիշերվա":t<12?"առավոտվա":t<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-ին":t+"-րդ";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},"1uah":function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var a=n("yCtX"),r=n("DH7j"),o=n("7o/Q"),i=n("l7GE"),s=n("ZUHj"),c=n("Lhse");function l(...t){const e=t[t.length-1];return"function"==typeof e&&t.pop(),Object(a.a)(t,void 0).lift(new d(e))}class d{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new u(t,this.resultSelector))}}class u extends o.a{constructor(t,e,n=Object.create(null)){super(t),this.iterators=[],this.active=0,this.resultSelector="function"==typeof e?e:null,this.values=n}_next(t){const e=this.iterators;Object(r.a)(t)?e.push(new f(t)):e.push("function"==typeof t[c.a]?new g(t[c.a]()):new p(this.destination,this,t))}_complete(){const t=this.iterators,e=t.length;if(this.unsubscribe(),0!==e){this.active=e;for(let n=0;n<e;n++){let e=t[n];e.stillUnsubscribed?this.destination.add(e.subscribe(e,n)):this.active--}}else this.destination.complete()}notifyInactive(){this.active--,0===this.active&&this.destination.complete()}checkIterators(){const t=this.iterators,e=t.length,n=this.destination;for(let o=0;o<e;o++){let e=t[o];if("function"==typeof e.hasValue&&!e.hasValue())return}let a=!1;const r=[];for(let o=0;o<e;o++){let e=t[o],i=e.next();if(e.hasCompleted()&&(a=!0),i.done)return void n.complete();r.push(i.value)}this.resultSelector?this._tryresultSelector(r):n.next(r),a&&n.complete()}_tryresultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}class g{constructor(t){this.iterator=t,this.nextResult=t.next()}hasValue(){return!0}next(){const t=this.nextResult;return this.nextResult=this.iterator.next(),t}hasCompleted(){const t=this.nextResult;return t&&t.done}}class f{constructor(t){this.array=t,this.index=0,this.length=0,this.length=t.length}[c.a](){return this}next(t){const e=this.index++;return e<this.length?{value:this.array[e],done:!1}:{value:null,done:!0}}hasValue(){return this.array.length>this.index}hasCompleted(){return this.array.length===this.index}}class p extends i.a{constructor(t,e,n){super(t),this.parent=e,this.observable=n,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}[c.a](){return this}next(){const t=this.buffer;return 0===t.length&&this.isComplete?{value:null,done:!0}:{value:t.shift(),done:!1}}hasValue(){return this.buffer.length>0}hasCompleted(){return 0===this.buffer.length&&this.isComplete}notifyComplete(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()}notifyNext(t,e,n,a,r){this.buffer.push(e),this.parent.checkIterators()}subscribe(t,e){return Object(s.a)(this,this.observable,this,e)}}},"1xZ4":function(t,e,n){!function(t){"use strict";t.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_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ç_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à 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í %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|è|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"è";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})}(n("wd/R"))},"20UP":function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("LvDl"),r=n("lJxs"),o=n("8Y7J"),i=n("IheW"),s=n("pL04");let c=(()=>{class t{constructor(t){this.http=t,this.settings={}}getValues(t){return a.isArray(t)&&(t=t.join(",")),this.http.get(`api/settings?names=${t}`).pipe(Object(r.a)(t=>{const e={};return a.forEach(t,t=>{a.set(e,t.name,t.value)}),e}))}ifSettingConfigured(t,e,n){const a=this.settings[t];void 0===a?this.http.get(t).subscribe(a=>{this.settings[t]=this.getSettingsValue(a),this.ifSettingConfigured(t,e,n)},e=>{401!==e.status&&(this.settings[t]="")}):""!==a?e(a):n&&n()}disableSetting(t){this.settings[t]=""}getSettingsValue(t){return t.value||t.instance||""}validateGrafanaDashboardUrl(t){return this.http.get(`api/grafana/validation/${t}`)}getStandardSettings(){return this.http.get("ui-api/standard_settings")}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t(o["ɵɵinject"](i.c))},token:t,providedIn:s.a}),t})()},"25BL":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("DqMs"),o=n("/NlG"),i=n("GiVz"),s=n("SVse"),c=n("FE24"),l=n("z/SZ"),d=n("s7LF"),u=n("fhFe"),g=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[["class","pages"],["role","button"]],[[1,"aria-label",0],[2,"active",null]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"a",[["href","javascript:void(0)"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(t.context.$implicit.number)&&a),a}),null,null)),(t()(),a["ɵted"](2,null,[" "," "]))],null,(function(t,e){t(e,0,0,"page "+e.context.$implicit.number,e.context.$implicit.number===e.component.page),t(e,2,0,e.context.$implicit.text)}))}function p(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,14,"ul",[["class","pager"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"a",[["aria-label","go to first page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectPage(1)&&a),a}),null,null)),(t()(),a["ɵeld"](3,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](4,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"a",[["aria-label","go to previous page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.prevPage()&&a),a}),null,null)),(t()(),a["ɵeld"](6,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](8,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](9,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](10,0,null,null,1,"a",[["aria-label","go to next page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.nextPage()&&a),a}),null,null)),(t()(),a["ɵeld"](11,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](12,0,null,null,2,"li",[],[[2,"disabled",null]],null,null,null,null)),(t()(),a["ɵeld"](13,0,null,null,1,"a",[["aria-label","go to last page"],["href","javascript:void(0)"],["role","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectPage(r.totalPages)&&a),a}),null,null)),(t()(),a["ɵeld"](14,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],(function(t,e){t(e,8,0,e.component.pages)}),(function(t,e){var n=e.component;t(e,1,0,!n.canPrevious()),t(e,3,0,a["ɵinlineInterpolate"](1,"",n.pagerPreviousIcon,"")),t(e,4,0,!n.canPrevious()),t(e,6,0,a["ɵinlineInterpolate"](1,"",n.pagerLeftArrowIcon,"")),t(e,9,0,!n.canNext()),t(e,11,0,a["ɵinlineInterpolate"](1,"",n.pagerRightArrowIcon,"")),t(e,12,0,!n.canNext()),t(e,14,0,a["ɵinlineInterpolate"](1,"",n.pagerNextIcon,""))}))}var m=n("JxMD"),h=n("dgut"),b=n("Fgil"),y=n("iInd"),_=n("4DD9"),O=n("yT6U"),v=n("TJUb"),C=n("efK2"),P=n("0MID"),M=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function x(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function w(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,x)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.targetMarkerContext,n.targetMarkerTemplate)}),null)}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==r.select.emit(!r.allRowsSelected)&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.allRowsSelected)}))}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","datatable-header-cell-wrapper"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"span",[["class","datatable-header-cell-label draggable"]],[[8,"innerHTML",1]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.name)}))}function k(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function I(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,k)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.headerTemplate)}),null)}function N(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","datatable-header-cell-template-wrap"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,S)),a["ɵdid"](6,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,I)),a["ɵdid"](8,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](9,0,null,null,0,"span",[],[[8,"className",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onSort()&&a),a}),null,null))],(function(t,e){var n=e.component;t(e,2,0,n.isTarget),t(e,4,0,n.isCheckboxable),t(e,6,0,!n.column.headerTemplate),t(e,8,0,n.column.headerTemplate)}),(function(t,e){t(e,9,0,e.component.sortClass)}))}var R=n("3MdB"),A=n("M9eX"),E=n("Cc8h"),D=n("ylLw"),L=n("tFKq"),q=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function j(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"datatable-header-cell",[["class","datatable-header-cell"],["draggable",""],["long-press",""],["resizeable",""]],[[2,"resizeable",null],[2,"press",null],[2,"longpress",null],[4,"height","px"],[8,"className",0],[1,"title",0],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"width","px"]],[[null,"resize"],[null,"longPressStart"],[null,"longPressEnd"],[null,"sort"],[null,"select"],[null,"columnContextmenu"],[null,"mousedown"],[null,"contextmenu"]],(function(t,e,n){var r=!0,o=t.component;return"mousedown"===e&&(r=!1!==a["ɵnov"](t,2).onMousedown(n)&&r),"mousedown"===e&&(r=!1!==a["ɵnov"](t,3).onMouseDown(n)&&r),"contextmenu"===e&&(r=!1!==a["ɵnov"](t,4).onContextmenu(n)&&r),"resize"===e&&(r=!1!==o.onColumnResized(n,t.context.$implicit)&&r),"longPressStart"===e&&(r=!1!==o.onLongPressStart(n)&&r),"longPressEnd"===e&&(r=!1!==o.onLongPressEnd(n)&&r),"sort"===e&&(r=!1!==o.onSort(n)&&r),"select"===e&&(r=!1!==o.select.emit(n)&&r),"columnContextmenu"===e&&(r=!1!==o.columnContextmenu.emit(n)&&r),r}),N,M)),a["ɵdid"](1,671744,[[1,4]],0,R.DraggableDirective,[a.ElementRef],{dragEventTarget:[0,"dragEventTarget"],dragModel:[1,"dragModel"],dragX:[2,"dragX"],dragY:[3,"dragY"]},null),a["ɵdid"](2,4341760,null,0,A.ResizeableDirective,[a.ElementRef,a.Renderer2],{resizeEnabled:[0,"resizeEnabled"]},{resize:"resize"}),a["ɵdid"](3,147456,null,0,E.LongPressDirective,[],{pressEnabled:[0,"pressEnabled"],pressModel:[1,"pressModel"]},{longPressStart:"longPressStart",longPressEnd:"longPressEnd"}),a["ɵdid"](4,49152,null,0,P.DataTableHeaderCellComponent,[a.ChangeDetectorRef],{sortType:[0,"sortType"],sortAscendingIcon:[1,"sortAscendingIcon"],sortDescendingIcon:[2,"sortDescendingIcon"],isTarget:[3,"isTarget"],targetMarkerTemplate:[4,"targetMarkerTemplate"],targetMarkerContext:[5,"targetMarkerContext"],allRowsSelected:[6,"allRowsSelected"],selectionType:[7,"selectionType"],column:[8,"column"],headerHeight:[9,"headerHeight"],sorts:[10,"sorts"]},{sort:"sort",select:"select",columnContextmenu:"columnContextmenu"})],(function(t,e){var n=e.component;t(e,1,0,n.dragEventTarget,e.context.$implicit,n.reorderable&&e.context.$implicit.draggable&&e.context.$implicit.dragging,!1),t(e,2,0,e.context.$implicit.resizeable),t(e,3,0,n.reorderable&&e.context.$implicit.draggable,e.context.$implicit),t(e,4,1,[n.sortType,n.sortAscendingIcon,n.sortDescendingIcon,e.context.$implicit.isTarget,n.targetMarkerTemplate,e.context.$implicit.targetMarkerContext,n.allRowsSelected,n.selectionType,e.context.$implicit,n.headerHeight,n.sorts])}),(function(t,e){t(e,0,0,a["ɵnov"](e,2).resizeEnabled,a["ɵnov"](e,3).press,a["ɵnov"](e,3).isLongPress,a["ɵnov"](e,4).headerHeight,a["ɵnov"](e,4).columnCssClasses,a["ɵnov"](e,4).name,a["ɵnov"](e,4).minWidth,a["ɵnov"](e,4).maxWidth,a["ɵnov"](e,4).width)}))}function F(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[8,"className",0]],null,null,null,null)),a["ɵprd"](512,null,s["ɵNgStyleImpl"],s["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgStyle,[s["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,j)),a["ɵdid"](4,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,2,0,n._styleByGroup[e.context.$implicit.type]),t(e,4,0,e.context.$implicit.columns,n.columnTrackingFn)}),(function(t,e){t(e,0,0,"datatable-row-"+e.context.$implicit.type)}))}function z(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","datatable-header-inner"],["orderable",""]],[[4,"width","px"]],[[null,"reorder"],[null,"targetChanged"]],(function(t,e,n){var a=!0,r=t.component;return"reorder"===e&&(a=!1!==r.onColumnReordered(n)&&a),"targetChanged"===e&&(a=!1!==r.onTargetChanged(n)&&a),a}),null,null)),a["ɵdid"](1,1196032,null,1,D.OrderableDirective,[a.KeyValueDiffers,s.DOCUMENT],null,{reorder:"reorder",targetChanged:"targetChanged"}),a["ɵqud"](603979776,1,{draggables:1}),(t()(),a["ɵand"](16777216,null,null,1,null,F)),a["ɵdid"](4,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,4,0,n._columnsByPin,n.trackByGroups)}),(function(t,e){t(e,0,0,e.component._columnGroupWidths.total)}))}var G=n("Ahxa"),B=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function V(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function Y(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,V)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](2,{rowCount:0,pageSize:1,selectedCount:2,curPage:3,offset:4}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,2,0,n.rowCount,n.pageSize,n.selectedCount,n.curPage,n.offset);t(e,1,0,a,n.footerTemplate.template)}),null)}function H(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "," / "]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.selectedCount?null:n.selectedCount.toLocaleString(),n.selectedMessage)}))}function U(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,H)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](3,null,[" "," "," "]))],(function(t,e){t(e,2,0,e.component.selectedMessage)}),(function(t,e){var n=e.component;t(e,3,0,null==n.rowCount?null:n.rowCount.toLocaleString(),n.totalMessage)}))}function W(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.page.emit(n)&&a),a}),p,g)),a["ɵdid"](1,49152,null,0,u.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],(function(t,e){var n=e.component;t(e,1,0,n.pagerLeftArrowIcon,n.pagerRightArrowIcon,n.pagerPreviousIcon,n.pagerNextIcon,n.pageSize,n.rowCount,n.curPage)}),(function(t,e){t(e,0,0,!e.component.isVisible)}))}function K(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","datatable-footer-inner"]],[[4,"height","px"]],null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](3,{"selected-count":0}),(t()(),a["ɵand"](16777216,null,null,1,null,Y)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,U)),a["ɵdid"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,W)),a["ɵdid"](9,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=t(e,3,0,n.selectedMessage);t(e,2,0,"datatable-footer-inner",a),t(e,5,0,n.footerTemplate),t(e,7,0,!n.footerTemplate),t(e,9,0,!n.footerTemplate)}),(function(t,e){t(e,0,0,e.component.footerHeight)}))}var $=n("uKs4"),Z=n("PNOi"),J=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function X(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","progress-linear"],["role","progressbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","container"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,0,"div",[["class","bar"]],null,null,null,null,null))],null,null)}var Q=n("YVFZ"),tt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function et(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","datatable-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["type","checkbox"]],[[8,"checked",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCheckboxChange(n)&&a),a}),null,null))],null,(function(t,e){t(e,1,0,e.component.isSelected)}))}function nt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-collapse"]],null,null,null,null,null))],null,null)}function at(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-up"]],null,null,null,null,null))],null,null)}function rt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"i",[["class","icon datatable-icon-down"]],null,null,null,null,null))],null,null)}function ot(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"button",[["class","datatable-tree-button"]],[[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onTreeAction()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,nt)),a["ɵdid"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,at)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,rt)),a["ɵdid"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"loading"===n.treeStatus),t(e,5,0,"collapsed"===n.treeStatus),t(e,7,0,"expanded"===n.treeStatus||"disabled"===n.treeStatus)}),(function(t,e){t(e,0,0,"disabled"===e.component.treeStatus)}))}function it(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function st(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,it)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](2,{cellContext:0}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,2,0,n.cellContext);t(e,1,0,a,n.column.treeToggleTemplate)}),null)}function ct(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ot)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,st)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!n.column.treeToggleTemplate),t(e,4,0,n.column.treeToggleTemplate)}),null)}function lt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[],[[8,"title",0],[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.sanitizedValue,n.value)}))}function dt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function ut(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,[[1,3],["cellTemplate",2]],null,1,null,dt)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.cellContext,n.column.cellTemplate)}),null)}function gt(t){return a["ɵvid"](2,[a["ɵqud"](402653184,1,{cellTemplate:0}),(t()(),a["ɵeld"](1,0,null,null,8,"div",[["class","datatable-body-cell-label"]],[[4,"margin-left","px"]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,et)),a["ɵdid"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ct)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,lt)),a["ɵdid"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ut)),a["ɵdid"](9,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.column.checkboxable&&(!n.displayCheck||n.displayCheck(n.row,n.column,n.value))),t(e,5,0,n.column.isTreeColumn),t(e,7,0,!n.column.cellTemplate),t(e,9,0,n.column.cellTemplate)}),(function(t,e){var n=e.component;t(e,1,0,n.calcLeftMargin(n.column,n.row))}))}var ft=n("syrc"),pt=n("FO+L"),mt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function ht(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-cell",[["tabindex","-1"]],[[8,"className",0],[4,"width","px"],[4,"minWidth","px"],[4,"maxWidth","px"],[4,"height",null]],[[null,"activate"],[null,"treeAction"],[null,"focus"],[null,"blur"],[null,"click"],[null,"dblclick"],[null,"keydown"]],(function(t,e,n){var r=!0,o=t.component;return"focus"===e&&(r=!1!==a["ɵnov"](t,1).onFocus()&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onBlur()&&r),"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick(n)&&r),"dblclick"===e&&(r=!1!==a["ɵnov"](t,1).onDblClick(n)&&r),"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"activate"===e&&(r=!1!==o.onActivate(n,t.context.index)&&r),"treeAction"===e&&(r=!1!==o.onTreeAction()&&r),r}),gt,tt)),a["ɵdid"](1,442368,null,0,Q.DataTableBodyCellComponent,[a.ElementRef,a.ChangeDetectorRef],{displayCheck:[0,"displayCheck"],group:[1,"group"],rowHeight:[2,"rowHeight"],isSelected:[3,"isSelected"],expanded:[4,"expanded"],rowIndex:[5,"rowIndex"],column:[6,"column"],row:[7,"row"],treeStatus:[8,"treeStatus"]},{activate:"activate",treeAction:"treeAction"})],(function(t,e){var n=e.component;t(e,1,0,n.displayCheck,n.group,n.rowHeight,n.isSelected,n.expanded,n.rowIndex,e.context.$implicit,n.row,n.treeStatus)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).columnCssClasses,a["ɵnov"](e,1).width,a["ɵnov"](e,1).minWidth,a["ɵnov"](e,1).maxWidth,a["ɵnov"](e,1).height)}))}function bt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[8,"className",0]],null,null,null,null)),a["ɵprd"](512,null,s["ɵNgStyleImpl"],s["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgStyle,[s["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ht)),a["ɵdid"](4,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,2,0,n._groupStyles[e.context.$implicit.type]),t(e,4,0,e.context.$implicit.columns,n.columnTrackingFn)}),(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"datatable-row-",e.context.$implicit.type," datatable-row-group"))}))}function yt(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,bt)),a["ɵdid"](1,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,1,0,n._columnsByPin,n.trackByGroups)}),null)}var _t=n("rLYq"),Ot=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function vt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),r}),yt,mt)),a["ɵdid"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],row:[2,"row"],rowIndex:[3,"rowIndex"],offsetX:[4,"offsetX"],rowHeight:[5,"rowHeight"]},null)],(function(t,e){var n=e.component;t(e,1,0,n._internalColumns,n.innerWidth,n.summaryRow,-1,n.offsetX,n.rowHeight)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function Ct(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,vt)),a["ɵdid"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.summaryRow&&n._internalColumns)}),null)}var Pt=n("Mfce"),Mt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function xt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function wt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,xt)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.groupContext,n.groupHeader.template)}),null)}function Tt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","datatable-group-header"]],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgStyleImpl"],s["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgStyle,[s["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,wt)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.getGroupHeaderStyle()),t(e,4,0,n.groupHeader&&n.groupHeader.template)}),null)}function St(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,null)}function kt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,null,null,0))],null,null)}function It(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,kt)),a["ɵdid"](1,540672,null,0,s.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.rowContext,n.rowDetail.template)}),null)}function Nt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","datatable-row-detail"]],[[4,"height","px"]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,It)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.rowDetail&&n.rowDetail.template)}),(function(t,e){t(e,0,0,e.component.detailRowHeight)}))}function Rt(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,Tt)),a["ɵdid"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,St)),a["ɵdid"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Nt)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.groupHeader&&n.groupHeader.template),t(e,3,0,n.groupHeader&&n.groupHeader.template&&n.expanded||!n.groupHeader||!n.groupHeader.template),t(e,5,0,n.rowDetail&&n.rowDetail.template&&n.expanded)}),null)}var At=n("SfHT"),Et=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Dt(t){return a["ɵvid"](2,[a["ɵncd"](null,0)],null,null)}var Lt=n("7F1K"),qt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function jt(t){return a["ɵvid"](2,[a["ɵncd"](null,0)],null,null)}var Ft=n("IPm6"),zt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function Gt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-progress",[],null,null,null,X,J)),a["ɵdid"](1,49152,null,0,Z.ProgressBarComponent,[],null,null)],null,null)}function Bt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,Ct,Ot)),a["ɵdid"](1,573440,null,0,_t.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)}),null)}function Vt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"treeAction"],[null,"activate"],[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0,o=t.component;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),"treeAction"===e&&(r=!1!==o.onTreeAction(t.parent.context.$implicit)&&r),"activate"===e&&(r=!1!==a["ɵnov"](t.parent.parent.parent,2).onActivate(n,o.indexes.first+t.parent.context.index)&&r),r}),yt,mt)),a["ɵdid"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],isSelected:[5,"isSelected"],rowIndex:[6,"rowIndex"],displayCheck:[7,"displayCheck"],treeStatus:[8,"treeStatus"],offsetX:[9,"offsetX"],rowHeight:[10,"rowHeight"]},{activate:"activate",treeAction:"treeAction"})],(function(t,e){var n=e.component;t(e,1,1,[n.columns,n.innerWidth,n.getRowExpanded(e.parent.context.$implicit),n.rowClass,e.parent.context.$implicit,a["ɵnov"](e.parent.parent.parent,2).getRowSelected(e.parent.context.$implicit),n.getRowIndex(e.parent.context.$implicit),n.displayCheck,e.parent.context.$implicit.treeStatus,n.offsetX,n.getRowHeight(e.parent.context.$implicit)])}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function Yt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-body-row",[["tabindex","-1"]],[[8,"className",0],[4,"height","px"],[4,"width","px"]],[[null,"activate"],[null,"keydown"],[null,"mouseenter"]],(function(t,e,n){var r=!0;return"keydown"===e&&(r=!1!==a["ɵnov"](t,1).onKeyDown(n)&&r),"mouseenter"===e&&(r=!1!==a["ɵnov"](t,1).onMouseenter(n)&&r),"activate"===e&&(r=!1!==a["ɵnov"](t.parent.parent.parent.parent,2).onActivate(n,t.context.index)&&r),r}),yt,mt)),a["ɵdid"](1,311296,null,0,ft.DataTableBodyRowComponent,[a.KeyValueDiffers,[1,pt.ScrollbarHelper],a.ChangeDetectorRef,a.ElementRef],{columns:[0,"columns"],innerWidth:[1,"innerWidth"],expanded:[2,"expanded"],rowClass:[3,"rowClass"],row:[4,"row"],group:[5,"group"],isSelected:[6,"isSelected"],rowIndex:[7,"rowIndex"],offsetX:[8,"offsetX"],rowHeight:[9,"rowHeight"]},{activate:"activate"})],(function(t,e){var n=e.component;t(e,1,0,n.columns,n.innerWidth,n.getRowExpanded(e.context.$implicit),n.rowClass,e.context.$implicit,e.parent.parent.context.$implicit.value,a["ɵnov"](e.parent.parent.parent.parent,2).getRowSelected(e.context.$implicit),n.getRowIndex(e.context.$implicit),n.offsetX,n.getRowHeight(e.context.$implicit))}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).cssClass,a["ɵnov"](e,1).rowHeight,a["ɵnov"](e,1).columnsTotalWidths)}))}function Ht(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,Yt)),a["ɵdid"](1,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.parent.context.$implicit.value,e.component.rowTrackingFn)}),null)}function Ut(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"datatable-row-wrapper",[["class","datatable-row-wrapper"]],null,[[null,"rowContextmenu"],[null,"contextmenu"]],(function(t,e,n){var r=!0,o=t.component;return"contextmenu"===e&&(r=!1!==a["ɵnov"](t,3).onContextmenu(n)&&r),"rowContextmenu"===e&&(r=!1!==o.rowContextmenu.emit(n)&&r),r}),Rt,Mt)),a["ɵprd"](512,null,s["ɵNgStyleImpl"],s["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgStyle,[s["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),a["ɵdid"](3,311296,null,0,Pt.DataTableRowWrapperComponent,[a.ChangeDetectorRef,a.KeyValueDiffers],{innerWidth:[0,"innerWidth"],rowDetail:[1,"rowDetail"],groupHeader:[2,"groupHeader"],offsetX:[3,"offsetX"],detailRowHeight:[4,"detailRowHeight"],row:[5,"row"],groupedRows:[6,"groupedRows"],rowIndex:[7,"rowIndex"],expanded:[8,"expanded"]},{rowContextmenu:"rowContextmenu"}),(t()(),a["ɵand"](16777216,null,0,1,null,Vt)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["groupedRowsTemplate",2]],0,0,null,Ht))],(function(t,e){var n=e.component;t(e,2,0,n.getRowsStyles(e.context.$implicit)),t(e,3,0,n.innerWidth,n.rowDetail,n.groupHeader,n.offsetX,n.getDetailRowHeight(e.context.$implicit[e.context.index],e.context.index),e.context.$implicit,n.groupedRows,n.getRowIndex(e.context.$implicit[e.context.index]),n.getRowExpanded(e.context.$implicit)),t(e,5,0,!n.groupedRows,a["ɵnov"](e,6))}),null)}function Wt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"datatable-summary-row",[["class","datatable-summary-row"]],null,null,null,Ct,Ot)),a["ɵprd"](512,null,s["ɵNgStyleImpl"],s["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgStyle,[s["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),a["ɵdid"](3,573440,null,0,_t.DataTableSummaryRowComponent,[],{rows:[0,"rows"],columns:[1,"columns"],rowHeight:[2,"rowHeight"],offsetX:[3,"offsetX"],innerWidth:[4,"innerWidth"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.getBottomSummaryRowStyles()),t(e,3,0,n.rows,n.columns,n.summaryHeight,n.offsetX,n.innerWidth)}),null)}function Kt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"datatable-scroller",[["class","datatable-scroll"]],[[4,"height","px"],[4,"width","px"]],[[null,"scroll"]],(function(t,e,n){var a=!0;return"scroll"===e&&(a=!1!==t.component.onBodyScroll(n)&&a),a}),Dt,Et)),a["ɵdid"](1,245760,[[1,4]],0,At.ScrollerComponent,[a.NgZone,a.ElementRef,a.Renderer2],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],scrollHeight:[2,"scrollHeight"],scrollWidth:[3,"scrollWidth"]},{scroll:"scroll"}),(t()(),a["ɵand"](16777216,null,0,1,null,Bt)),a["ɵdid"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,Ut)),a["ɵdid"](5,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,Wt)),a["ɵdid"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.scrollbarV,n.scrollbarH,n.scrollHeight,null==n.columnGroupWidths?null:n.columnGroupWidths.total),t(e,3,0,n.summaryRow&&"top"===n.summaryPosition),t(e,5,0,n.temp,n.rowTrackingFn),t(e,7,0,n.summaryRow&&"bottom"===n.summaryPosition)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).scrollHeight,a["ɵnov"](e,1).scrollWidth)}))}function $t(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","empty-row"]],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,0,0,e.component.emptyMessage)}))}function Zt(t){return a["ɵvid"](2,[a["ɵqud"](671088640,1,{scroller:0}),(t()(),a["ɵeld"](1,0,null,null,7,"datatable-selection",[],null,[[null,"select"],[null,"activate"]],(function(t,e,n){var a=!0,r=t.component;return"select"===e&&(a=!1!==r.select.emit(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),a}),jt,qt)),a["ɵdid"](2,49152,[["selector",4]],0,Lt.DataTableSelectionComponent,[],{rows:[0,"rows"],selected:[1,"selected"],selectEnabled:[2,"selectEnabled"],selectionType:[3,"selectionType"],rowIdentity:[4,"rowIdentity"],selectCheck:[5,"selectCheck"]},{activate:"activate",select:"select"}),(t()(),a["ɵand"](16777216,null,0,1,null,Gt)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,Kt)),a["ɵdid"](6,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,$t)),a["ɵdid"](8,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.rows,n.selected,n.selectEnabled,n.selectionType,n.rowIdentity,n.selectCheck),t(e,4,0,n.loadingIndicator),t(e,6,0,null==n.rows?null:n.rows.length),t(e,8,0,!(null!=n.rows&&n.rows.length||n.loadingIndicator))}),null)}var Jt=n("3/HP"),Xt=n("nhM1"),Qt=n("BARL"),te=a["ɵcrt"]({encapsulation:2,styles:[[".ngx-datatable{display:block;overflow:hidden;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:flex;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:flex;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:flex}.ngx-datatable .datatable-footer{display:block;width:100%}.ngx-datatable .datatable-footer .datatable-footer-inner{display:flex;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}"]],data:{}});function ee(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"datatable-header",[["class","datatable-header"]],[[4,"height",null],[4,"width",null]],[[null,"sort"],[null,"resize"],[null,"reorder"],[null,"select"],[null,"columnContextmenu"]],(function(t,e,n){var a=!0,r=t.component;return"sort"===e&&(a=!1!==r.onColumnSort(n)&&a),"resize"===e&&(a=!1!==r.onColumnResize(n)&&a),"reorder"===e&&(a=!1!==r.onColumnReorder(n)&&a),"select"===e&&(a=!1!==r.onHeaderSelect(n)&&a),"columnContextmenu"===e&&(a=!1!==r.onColumnContextmenu(n)&&a),a}),z,q)),a["ɵdid"](1,49152,[[2,4]],0,L.DataTableHeaderComponent,[a.ChangeDetectorRef],{sortAscendingIcon:[0,"sortAscendingIcon"],sortDescendingIcon:[1,"sortDescendingIcon"],scrollbarH:[2,"scrollbarH"],dealsWithGroup:[3,"dealsWithGroup"],targetMarkerTemplate:[4,"targetMarkerTemplate"],innerWidth:[5,"innerWidth"],sorts:[6,"sorts"],sortType:[7,"sortType"],allRowsSelected:[8,"allRowsSelected"],selectionType:[9,"selectionType"],reorderable:[10,"reorderable"],headerHeight:[11,"headerHeight"],columns:[12,"columns"],offsetX:[13,"offsetX"]},{sort:"sort",reorder:"reorder",resize:"resize",select:"select",columnContextmenu:"columnContextmenu"}),a["ɵpid"](131072,s.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,1,[n.cssClasses.sortAscending,n.cssClasses.sortDescending,n.scrollbarH,n.groupedRows,n.targetMarkerTemplate,n._innerWidth,n.sorts,n.sortType,n.allRowsSelected,n.selectionType,n.reorderable,n.headerHeight,n._internalColumns,a["ɵunv"](e,1,13,a["ɵnov"](e,2).transform(n._offsetX))])}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).headerHeight,a["ɵnov"](e,1).headerWidth)}))}function ne(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"datatable-footer",[["class","datatable-footer"]],null,[[null,"page"]],(function(t,e,n){var a=!0;return"page"===e&&(a=!1!==t.component.onFooterPage(n)&&a),a}),K,B)),a["ɵdid"](1,49152,null,0,G.DataTableFooterComponent,[],{footerHeight:[0,"footerHeight"],rowCount:[1,"rowCount"],pageSize:[2,"pageSize"],offset:[3,"offset"],pagerLeftArrowIcon:[4,"pagerLeftArrowIcon"],pagerRightArrowIcon:[5,"pagerRightArrowIcon"],pagerPreviousIcon:[6,"pagerPreviousIcon"],pagerNextIcon:[7,"pagerNextIcon"],totalMessage:[8,"totalMessage"],footerTemplate:[9,"footerTemplate"],selectedCount:[10,"selectedCount"],selectedMessage:[11,"selectedMessage"]},{page:"page"})],(function(t,e){var n=e.component;t(e,1,1,[n.footerHeight,n.rowCount,n.pageSize,n.offset,n.cssClasses.pagerLeftArrow,n.cssClasses.pagerRightArrow,n.cssClasses.pagerPrevious,n.cssClasses.pagerNext,n.messages.totalMessage,n.footer,n.selected.length,!!n.selectionType&&n.messages.selectedMessage])}),null)}function ae(t){return a["ɵvid"](2,[a["ɵqud"](671088640,1,{bodyComponent:0}),a["ɵqud"](671088640,2,{headerComponent:0}),(t()(),a["ɵeld"](2,0,null,null,8,"div",[["visibilityObserver",""]],[[2,"visible",null]],[[null,"visible"]],(function(t,e,n){var a=!0;return"visible"===e&&(a=!1!==t.component.recalculate()&&a),a}),null,null)),a["ɵdid"](3,212992,null,0,$.VisibilityDirective,[a.ElementRef,a.NgZone],null,{visible:"visible"}),(t()(),a["ɵand"](16777216,null,null,1,null,ee)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](6,0,null,null,2,"datatable-body",[["class","datatable-body"]],[[4,"width",null],[4,"height",null]],[[null,"page"],[null,"activate"],[null,"rowContextmenu"],[null,"select"],[null,"scroll"],[null,"treeAction"]],(function(t,e,n){var a=!0,r=t.component;return"page"===e&&(a=!1!==r.onBodyPage(n)&&a),"activate"===e&&(a=!1!==r.activate.emit(n)&&a),"rowContextmenu"===e&&(a=!1!==r.onRowContextmenu(n)&&a),"select"===e&&(a=!1!==r.onBodySelect(n)&&a),"scroll"===e&&(a=!1!==r.onBodyScroll(n)&&a),"treeAction"===e&&(a=!1!==r.onTreeAction(n)&&a),a}),Zt,zt)),a["ɵdid"](7,245760,[[1,4]],0,Ft.DataTableBodyComponent,[a.ChangeDetectorRef],{scrollbarV:[0,"scrollbarV"],scrollbarH:[1,"scrollbarH"],loadingIndicator:[2,"loadingIndicator"],externalPaging:[3,"externalPaging"],rowHeight:[4,"rowHeight"],offsetX:[5,"offsetX"],emptyMessage:[6,"emptyMessage"],selectionType:[7,"selectionType"],selected:[8,"selected"],rowIdentity:[9,"rowIdentity"],rowDetail:[10,"rowDetail"],groupHeader:[11,"groupHeader"],selectCheck:[12,"selectCheck"],displayCheck:[13,"displayCheck"],trackByProp:[14,"trackByProp"],rowClass:[15,"rowClass"],groupedRows:[16,"groupedRows"],groupExpansionDefault:[17,"groupExpansionDefault"],innerWidth:[18,"innerWidth"],groupRowsBy:[19,"groupRowsBy"],virtualization:[20,"virtualization"],summaryRow:[21,"summaryRow"],summaryPosition:[22,"summaryPosition"],summaryHeight:[23,"summaryHeight"],pageSize:[24,"pageSize"],rows:[25,"rows"],columns:[26,"columns"],offset:[27,"offset"],rowCount:[28,"rowCount"],bodyHeight:[29,"bodyHeight"]},{scroll:"scroll",page:"page",activate:"activate",select:"select",rowContextmenu:"rowContextmenu",treeAction:"treeAction"}),a["ɵpid"](131072,s.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,ne)),a["ɵdid"](10,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0),t(e,5,0,n.headerHeight),t(e,7,1,[n.scrollbarV,n.scrollbarH,n.loadingIndicator,n.externalPaging,n.rowHeight,a["ɵunv"](e,7,5,a["ɵnov"](e,8).transform(n._offsetX)),n.messages.emptyMessage,n.selectionType,n.selected,n.rowIdentity,n.rowDetail,n.groupHeader,n.selectCheck,n.displayCheck,n.trackByProp,n.rowClass,n.groupedRows,n.groupExpansionDefault,n._innerWidth,n.groupRowsBy,n.virtualization,n.summaryRow,n.summaryPosition,n.summaryHeight,n.pageSize,n._internalRows,n._internalColumns,n.offset,n.rowCount,n.bodyHeight]),t(e,10,0,n.footerHeight)}),(function(t,e){t(e,2,0,a["ɵnov"](e,3).isVisible),t(e,6,0,a["ɵnov"](e,7).bodyWidth,a["ɵnov"](e,7).bodyHeight)}))}var re=n("lUjN"),oe=n("vxfy");n("uIqm"),n.d(e,"a",(function(){return ie})),n.d(e,"b",(function(){return Ge}));var ie=a["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.tree-children.tree-children-no-padding[_ngcontent-%COMP%]{padding-left:0}.node-drop-slot[_ngcontent-%COMP%]{display:block;height:2px}.node-drop-slot.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(90deg)}.toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(0)}.toggle-children-wrapper[_ngcontent-%COMP%]{padding:2px 3px 5px 1px}.toggle-children[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder[_ngcontent-%COMP%]{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper[_ngcontent-%COMP%]{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-active.node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper.node-content-wrapper-active[_ngcontent-%COMP%]:hover{background:#beebff}.node-content-wrapper-focused[_ngcontent-%COMP%]{background:#e7f4f9}.node-content-wrapper[_ngcontent-%COMP%]:hover{background:#f7fbff}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper[_ngcontent-%COMP%]:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled[_ngcontent-%COMP%]{opacity:.5}tree-viewport[_ngcontent-%COMP%]{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children[_ngcontent-%COMP%]{overflow:hidden;padding-left:20px}.empty-tree-drop-slot[_ngcontent-%COMP%]   .node-drop-slot[_ngcontent-%COMP%]{height:20px;min-width:100px}.angular-tree-component[_ngcontent-%COMP%]{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]{direction:rtl}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(180deg)!important}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .tree-children[_ngcontent-%COMP%]{padding-right:20px;padding-left:0}tree-node-checkbox[_ngcontent-%COMP%]{padding:1px}[_ngcontent-%COMP%]:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{box-sizing:border-box}html[_ngcontent-%COMP%]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article[_ngcontent-%COMP%], aside[_ngcontent-%COMP%], figcaption[_ngcontent-%COMP%], figure[_ngcontent-%COMP%], footer[_ngcontent-%COMP%], header[_ngcontent-%COMP%], hgroup[_ngcontent-%COMP%], main[_ngcontent-%COMP%], nav[_ngcontent-%COMP%], section[_ngcontent-%COMP%]{display:block}body[_ngcontent-%COMP%]{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"][_ngcontent-%COMP%]:focus{outline:0!important}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-top:0}dl[_ngcontent-%COMP%], ol[_ngcontent-%COMP%], p[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem}abbr[data-original-title][_ngcontent-%COMP%], abbr[title][_ngcontent-%COMP%]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address[_ngcontent-%COMP%]{margin-bottom:1rem;font-style:normal;line-height:inherit}ol[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ol[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{margin-bottom:0}dt[_ngcontent-%COMP%]{font-weight:700}dd[_ngcontent-%COMP%]{margin-bottom:.5rem;margin-left:0}blockquote[_ngcontent-%COMP%], figure[_ngcontent-%COMP%]{margin:0 0 1rem}b[_ngcontent-%COMP%], strong[_ngcontent-%COMP%]{font-weight:bolder}sub[_ngcontent-%COMP%], sup[_ngcontent-%COMP%]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[_ngcontent-%COMP%]{bottom:-.25em}sup[_ngcontent-%COMP%]{top:-.5em}a[_ngcontent-%COMP%]{color:#2b99a8;text-decoration:none;background-color:transparent}a[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}a[_ngcontent-%COMP%]:not([href]):not([tabindex]), a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus, a[_ngcontent-%COMP%]:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus{outline:0}code[_ngcontent-%COMP%], kbd[_ngcontent-%COMP%], pre[_ngcontent-%COMP%], samp[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem;overflow:auto}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}svg[_ngcontent-%COMP%]{overflow:hidden;vertical-align:middle}table[_ngcontent-%COMP%]{border-collapse:collapse}caption[_ngcontent-%COMP%]{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th[_ngcontent-%COMP%]{text-align:inherit}label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:.5rem}button[_ngcontent-%COMP%]{border-radius:0}button[_ngcontent-%COMP%]:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%], optgroup[_ngcontent-%COMP%], select[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%]{overflow:visible}button[_ngcontent-%COMP%], select[_ngcontent-%COMP%]{text-transform:none}select[_ngcontent-%COMP%]{word-wrap:normal}[type=button][_ngcontent-%COMP%], [type=reset][_ngcontent-%COMP%], [type=submit][_ngcontent-%COMP%], button[_ngcontent-%COMP%]{-webkit-appearance:button}[type=button][_ngcontent-%COMP%]:not(:disabled), [type=reset][_ngcontent-%COMP%]:not(:disabled), [type=submit][_ngcontent-%COMP%]:not(:disabled), button[_ngcontent-%COMP%]:not(:disabled){cursor:pointer}[type=button][_ngcontent-%COMP%]::-moz-focus-inner, [type=reset][_ngcontent-%COMP%]::-moz-focus-inner, [type=submit][_ngcontent-%COMP%]::-moz-focus-inner, button[_ngcontent-%COMP%]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][_ngcontent-%COMP%], input[type=radio][_ngcontent-%COMP%]{box-sizing:border-box;padding:0}input[type=date][_ngcontent-%COMP%], input[type=datetime-local][_ngcontent-%COMP%], input[type=month][_ngcontent-%COMP%], input[type=time][_ngcontent-%COMP%]{-webkit-appearance:listbox}textarea[_ngcontent-%COMP%]{overflow:auto;resize:vertical}fieldset[_ngcontent-%COMP%]{min-width:0;padding:0;margin:0;border:0}legend[_ngcontent-%COMP%]{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress[_ngcontent-%COMP%]{vertical-align:baseline}[type=number][_ngcontent-%COMP%]::-webkit-inner-spin-button, [type=number][_ngcontent-%COMP%]::-webkit-outer-spin-button{height:auto}[type=search][_ngcontent-%COMP%]{outline-offset:-2px;-webkit-appearance:none}[type=search][_ngcontent-%COMP%]::-webkit-search-decoration{-webkit-appearance:none}[_ngcontent-%COMP%]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[_ngcontent-%COMP%]{display:inline-block}summary[_ngcontent-%COMP%]{display:list-item;cursor:pointer}template[_ngcontent-%COMP%]{display:none}[hidden][_ngcontent-%COMP%]{display:none!important}.h1[_ngcontent-%COMP%], .h2[_ngcontent-%COMP%], .h3[_ngcontent-%COMP%], .h4[_ngcontent-%COMP%], .h5[_ngcontent-%COMP%], .h6[_ngcontent-%COMP%], h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1[_ngcontent-%COMP%], h1[_ngcontent-%COMP%]{font-size:2.5rem}.h2[_ngcontent-%COMP%], h2[_ngcontent-%COMP%]{font-size:2rem}.h3[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{font-size:1.75rem}.h4[_ngcontent-%COMP%], h4[_ngcontent-%COMP%]{font-size:1.5rem}.h5[_ngcontent-%COMP%], h5[_ngcontent-%COMP%]{font-size:1.25rem}.h6[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-size:1rem}.lead[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:300}.display-1[_ngcontent-%COMP%]{font-size:6rem;font-weight:300;line-height:1.2}.display-2[_ngcontent-%COMP%]{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3[_ngcontent-%COMP%]{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4[_ngcontent-%COMP%]{font-size:3.5rem;font-weight:300;line-height:1.2}hr[_ngcontent-%COMP%]{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:80%;font-weight:400}.mark[_ngcontent-%COMP%], mark[_ngcontent-%COMP%]{padding:.2em;background-color:#fcf8e3}.list-inline[_ngcontent-%COMP%], .list-unstyled[_ngcontent-%COMP%]{padding-left:0;list-style:none}.list-inline-item[_ngcontent-%COMP%]{display:inline-block}.list-inline-item[_ngcontent-%COMP%]:not(:last-child){margin-right:.5rem}.initialism[_ngcontent-%COMP%]{font-size:90%;text-transform:uppercase}.blockquote[_ngcontent-%COMP%]{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer[_ngcontent-%COMP%]{display:block;font-size:80%;color:#6c757d}.blockquote-footer[_ngcontent-%COMP%]::before{content:"— "}.img-fluid[_ngcontent-%COMP%]{max-width:100%;height:auto}.img-thumbnail[_ngcontent-%COMP%]{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure[_ngcontent-%COMP%]{display:inline-block}.figure-img[_ngcontent-%COMP%]{margin-bottom:.5rem;line-height:1}.figure-caption[_ngcontent-%COMP%]{font-size:90%;color:#6c757d}code[_ngcontent-%COMP%]{font-size:87.5%;color:#e83e8c;word-break:break-word}a[_ngcontent-%COMP%] > code[_ngcontent-%COMP%]{color:inherit}kbd[_ngcontent-%COMP%]{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd[_ngcontent-%COMP%]   kbd[_ngcontent-%COMP%]{padding:0;font-size:100%;font-weight:700}pre[_ngcontent-%COMP%]{display:block;font-size:87.5%;color:#212529}pre[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable[_ngcontent-%COMP%]{max-height:340px;overflow-y:scroll}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container[_ngcontent-%COMP%]{max-width:540px}}@media (min-width:768px){.container[_ngcontent-%COMP%]{max-width:720px}}@media (min-width:992px){.container[_ngcontent-%COMP%]{max-width:960px}}@media (min-width:1200px){.container[_ngcontent-%COMP%]{max-width:1140px}}.container-fluid[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.no-gutters[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.no-gutters[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .no-gutters[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:0;padding-left:0}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-auto[_ngcontent-%COMP%], .col-lg[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-lg-auto[_ngcontent-%COMP%], .col-md[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-md-auto[_ngcontent-%COMP%], .col-sm[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], .col-sm-auto[_ngcontent-%COMP%], .col-xl[_ngcontent-%COMP%], .col-xl-1[_ngcontent-%COMP%], .col-xl-10[_ngcontent-%COMP%], .col-xl-11[_ngcontent-%COMP%], .col-xl-12[_ngcontent-%COMP%], .col-xl-2[_ngcontent-%COMP%], .col-xl-3[_ngcontent-%COMP%], .col-xl-4[_ngcontent-%COMP%], .col-xl-5[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%], .col-xl-7[_ngcontent-%COMP%], .col-xl-8[_ngcontent-%COMP%], .col-xl-9[_ngcontent-%COMP%], .col-xl-auto[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{position:relative;width:100%;padding-right:15px;padding-left:15px}.col[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-first[_ngcontent-%COMP%]{order:-1}.order-last[_ngcontent-%COMP%]{order:13}.order-0[_ngcontent-%COMP%]{order:0}.order-1[_ngcontent-%COMP%]{order:1}.order-2[_ngcontent-%COMP%]{order:2}.order-3[_ngcontent-%COMP%]{order:3}.order-4[_ngcontent-%COMP%]{order:4}.order-5[_ngcontent-%COMP%]{order:5}.order-6[_ngcontent-%COMP%]{order:6}.order-7[_ngcontent-%COMP%]{order:7}.order-8[_ngcontent-%COMP%]{order:8}.order-9[_ngcontent-%COMP%]{order:9}.order-10[_ngcontent-%COMP%]{order:10}.order-11[_ngcontent-%COMP%]{order:11}.order-12[_ngcontent-%COMP%]{order:12}.offset-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-3[_ngcontent-%COMP%]{margin-left:25%}.offset-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-6[_ngcontent-%COMP%]{margin-left:50%}.offset-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-9[_ngcontent-%COMP%]{margin-left:75%}.offset-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}@media (min-width:576px){.col-sm[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-sm-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-sm-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-sm-first[_ngcontent-%COMP%]{order:-1}.order-sm-last[_ngcontent-%COMP%]{order:13}.order-sm-0[_ngcontent-%COMP%]{order:0}.order-sm-1[_ngcontent-%COMP%]{order:1}.order-sm-2[_ngcontent-%COMP%]{order:2}.order-sm-3[_ngcontent-%COMP%]{order:3}.order-sm-4[_ngcontent-%COMP%]{order:4}.order-sm-5[_ngcontent-%COMP%]{order:5}.order-sm-6[_ngcontent-%COMP%]{order:6}.order-sm-7[_ngcontent-%COMP%]{order:7}.order-sm-8[_ngcontent-%COMP%]{order:8}.order-sm-9[_ngcontent-%COMP%]{order:9}.order-sm-10[_ngcontent-%COMP%]{order:10}.order-sm-11[_ngcontent-%COMP%]{order:11}.order-sm-12[_ngcontent-%COMP%]{order:12}.offset-sm-0[_ngcontent-%COMP%]{margin-left:0}.offset-sm-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-sm-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-sm-3[_ngcontent-%COMP%]{margin-left:25%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-sm-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-sm-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-sm-6[_ngcontent-%COMP%]{margin-left:50%}.offset-sm-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-sm-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-sm-9[_ngcontent-%COMP%]{margin-left:75%}.offset-sm-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-sm-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:768px){.col-md[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-md-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-md-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-md-first[_ngcontent-%COMP%]{order:-1}.order-md-last[_ngcontent-%COMP%]{order:13}.order-md-0[_ngcontent-%COMP%]{order:0}.order-md-1[_ngcontent-%COMP%]{order:1}.order-md-2[_ngcontent-%COMP%]{order:2}.order-md-3[_ngcontent-%COMP%]{order:3}.order-md-4[_ngcontent-%COMP%]{order:4}.order-md-5[_ngcontent-%COMP%]{order:5}.order-md-6[_ngcontent-%COMP%]{order:6}.order-md-7[_ngcontent-%COMP%]{order:7}.order-md-8[_ngcontent-%COMP%]{order:8}.order-md-9[_ngcontent-%COMP%]{order:9}.order-md-10[_ngcontent-%COMP%]{order:10}.order-md-11[_ngcontent-%COMP%]{order:11}.order-md-12[_ngcontent-%COMP%]{order:12}.offset-md-0[_ngcontent-%COMP%]{margin-left:0}.offset-md-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-md-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-md-3[_ngcontent-%COMP%]{margin-left:25%}.offset-md-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-md-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-md-6[_ngcontent-%COMP%]{margin-left:50%}.offset-md-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-md-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-md-9[_ngcontent-%COMP%]{margin-left:75%}.offset-md-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-md-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-lg-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-lg-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-lg-first[_ngcontent-%COMP%]{order:-1}.order-lg-last[_ngcontent-%COMP%]{order:13}.order-lg-0[_ngcontent-%COMP%]{order:0}.order-lg-1[_ngcontent-%COMP%]{order:1}.order-lg-2[_ngcontent-%COMP%]{order:2}.order-lg-3[_ngcontent-%COMP%]{order:3}.order-lg-4[_ngcontent-%COMP%]{order:4}.order-lg-5[_ngcontent-%COMP%]{order:5}.order-lg-6[_ngcontent-%COMP%]{order:6}.order-lg-7[_ngcontent-%COMP%]{order:7}.order-lg-8[_ngcontent-%COMP%]{order:8}.order-lg-9[_ngcontent-%COMP%]{order:9}.order-lg-10[_ngcontent-%COMP%]{order:10}.order-lg-11[_ngcontent-%COMP%]{order:11}.order-lg-12[_ngcontent-%COMP%]{order:12}.offset-lg-0[_ngcontent-%COMP%]{margin-left:0}.offset-lg-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-lg-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-lg-3[_ngcontent-%COMP%]{margin-left:25%}.offset-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-lg-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-lg-6[_ngcontent-%COMP%]{margin-left:50%}.offset-lg-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-lg-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-lg-9[_ngcontent-%COMP%]{margin-left:75%}.offset-lg-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-lg-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-xl-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-xl-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-xl-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-xl-first[_ngcontent-%COMP%]{order:-1}.order-xl-last[_ngcontent-%COMP%]{order:13}.order-xl-0[_ngcontent-%COMP%]{order:0}.order-xl-1[_ngcontent-%COMP%]{order:1}.order-xl-2[_ngcontent-%COMP%]{order:2}.order-xl-3[_ngcontent-%COMP%]{order:3}.order-xl-4[_ngcontent-%COMP%]{order:4}.order-xl-5[_ngcontent-%COMP%]{order:5}.order-xl-6[_ngcontent-%COMP%]{order:6}.order-xl-7[_ngcontent-%COMP%]{order:7}.order-xl-8[_ngcontent-%COMP%]{order:8}.order-xl-9[_ngcontent-%COMP%]{order:9}.order-xl-10[_ngcontent-%COMP%]{order:10}.order-xl-11[_ngcontent-%COMP%]{order:11}.order-xl-12[_ngcontent-%COMP%]{order:12}.offset-xl-0[_ngcontent-%COMP%]{margin-left:0}.offset-xl-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-xl-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-xl-3[_ngcontent-%COMP%]{margin-left:25%}.offset-xl-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-xl-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-xl-6[_ngcontent-%COMP%]{margin-left:50%}.offset-xl-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-xl-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-xl-9[_ngcontent-%COMP%]{margin-left:75%}.offset-xl-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-xl-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}.table[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem;color:#212529}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%]{border-top:2px solid #dee2e6}.table-sm[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-sm[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.3rem}.table-bordered[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6}.table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-bottom-width:2px}.table-borderless[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:0}.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c4e2e7}.table-primary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#91cad2}.table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b2d9e0}.table-secondary[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fbd1cf}.table-secondary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#f7aaa7}.table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f9bab7}.table-success[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c3e6cb}.table-success[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#8fd19e}.table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b1dfbb}.table-info[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#bee5eb}.table-info[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#86cfda}.table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#abdde5}.table-warning[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#ffeeba}.table-warning[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ffdf7e}.table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ffe8a1}.table-danger[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#f5c6cb}.table-danger[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ed969e}.table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f1b0b7}.table-light[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fdfdfe}.table-light[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#fbfcfc}.table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ececf6}.table-dark[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#d9d9d9}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#b8b8b8}.table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ccc}.table-active[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > th[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.075)}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#fff;background-color:#343a40;border-color:#454d55}.table[_ngcontent-%COMP%]   .thead-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark[_ngcontent-%COMP%]{color:#fff;background-color:#343a40}.table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#454d55}.table-dark.table-bordered[_ngcontent-%COMP%]{border:0}.table-dark.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:767.98px){.table-responsive-md[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:991.98px){.table-responsive-lg[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:1199.98px){.table-responsive-xl[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}.table-responsive[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{transition:none}}.cd-form-control[_ngcontent-%COMP%]::-ms-expand, .form-control[_ngcontent-%COMP%]::-ms-expand{background-color:transparent;border:0}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control[_ngcontent-%COMP%]::placeholder, .form-control[_ngcontent-%COMP%]::placeholder{color:#6c757d;opacity:1}.cd-form-control[_ngcontent-%COMP%]:disabled, .form-control[_ngcontent-%COMP%]:disabled, .form-control[readonly][_ngcontent-%COMP%], [readonly].cd-form-control[_ngcontent-%COMP%]{background-color:#e9ecef;opacity:1}select.cd-form-control[_ngcontent-%COMP%]:focus::-ms-value, select.form-control[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file[_ngcontent-%COMP%], .form-control-range[_ngcontent-%COMP%]{display:block;width:100%}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg[_ngcontent-%COMP%]{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm[_ngcontent-%COMP%]{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext[_ngcontent-%COMP%]{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg[_ngcontent-%COMP%], .form-control-plaintext.form-control-sm[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.form-control-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple][_ngcontent-%COMP%], select.form-control[size][_ngcontent-%COMP%], select[multiple].cd-form-control[_ngcontent-%COMP%], select[size].cd-form-control[_ngcontent-%COMP%], textarea.cd-form-control[_ngcontent-%COMP%], textarea.form-control[_ngcontent-%COMP%]{height:auto}.form-group[_ngcontent-%COMP%]{margin-bottom:1rem}.form-text[_ngcontent-%COMP%]{display:block;margin-top:.25rem}.form-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .form-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:5px;padding-left:5px}.form-check[_ngcontent-%COMP%]{position:relative;display:block;padding-left:1.25rem}.form-check-input[_ngcontent-%COMP%]{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[_ngcontent-%COMP%]:disabled ~ .form-check-label[_ngcontent-%COMP%]{color:#6c757d}.form-check-label[_ngcontent-%COMP%]{margin-bottom:0}.form-check-inline[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid[_ngcontent-%COMP%]:focus, .is-valid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:valid, textarea.form-control.is-valid[_ngcontent-%COMP%], textarea.is-valid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .form-check-label[_ngcontent-%COMP%]{color:#28a745}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid[_ngcontent-%COMP%]:focus, .is-invalid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:invalid, textarea.form-control.is-invalid[_ngcontent-%COMP%], textarea.is-invalid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .form-check-label[_ngcontent-%COMP%]{color:#dc3545}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]{color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline[_ngcontent-%COMP%]{display:flex;flex-flow:row wrap;align-items:center}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{width:100%}@media (min-width:576px){.form-inline[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{display:inline-block;width:auto;vertical-align:middle}.form-inline[_ngcontent-%COMP%]   .form-control-plaintext[_ngcontent-%COMP%]{display:inline-block}.form-inline[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline[_ngcontent-%COMP%]   .custom-control[_ngcontent-%COMP%]{align-items:center;justify-content:center}.form-inline[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]{margin-bottom:0}}.btn[_ngcontent-%COMP%]{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn[_ngcontent-%COMP%]{transition:none}}.btn[_ngcontent-%COMP%]:hover{color:#212529;text-decoration:none}.btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:disabled{opacity:.65}a.btn.disabled[_ngcontent-%COMP%], fieldset[_ngcontent-%COMP%]:disabled   a.btn[_ngcontent-%COMP%]{pointer-events:none}.btn-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light[_ngcontent-%COMP%]{color:#212529}.btn-light[_ngcontent-%COMP%]:hover{color:#212529}.btn-light.focus[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary[_ngcontent-%COMP%]{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary[_ngcontent-%COMP%]{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success[_ngcontent-%COMP%]{color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:disabled{color:#28a745;background-color:transparent}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info[_ngcontent-%COMP%]{color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning[_ngcontent-%COMP%]{color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger[_ngcontent-%COMP%]{color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light[_ngcontent-%COMP%]{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark[_ngcontent-%COMP%]{color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:disabled{color:#777;background-color:transparent}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link[_ngcontent-%COMP%]{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}.btn-link.focus[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block[_ngcontent-%COMP%]{display:block;width:100%}.btn-block[_ngcontent-%COMP%] + .btn-block[_ngcontent-%COMP%]{margin-top:.5rem}input[type=button].btn-block[_ngcontent-%COMP%], input[type=reset].btn-block[_ngcontent-%COMP%], input[type=submit].btn-block[_ngcontent-%COMP%]{width:100%}.fade[_ngcontent-%COMP%]{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade[_ngcontent-%COMP%]{transition:none}}.fade[_ngcontent-%COMP%]:not(.show){opacity:0}.collapse[_ngcontent-%COMP%]:not(.show){display:none}.collapsing[_ngcontent-%COMP%]{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown[_ngcontent-%COMP%], .dropleft[_ngcontent-%COMP%], .dropright[_ngcontent-%COMP%], .dropup[_ngcontent-%COMP%]{position:relative}.dropdown-toggle[_ngcontent-%COMP%]{white-space:nowrap}.dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-right[_ngcontent-%COMP%]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-sm-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-md-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-lg-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-xl-right[_ngcontent-%COMP%]{right:0;left:auto}}.dropup[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropright[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom][_ngcontent-%COMP%], .dropdown-menu[x-placement^=left][_ngcontent-%COMP%], .dropdown-menu[x-placement^=right][_ngcontent-%COMP%], .dropdown-menu[x-placement^=top][_ngcontent-%COMP%]{right:auto;bottom:auto}.dropdown-divider[_ngcontent-%COMP%]{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item[_ngcontent-%COMP%]{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item[_ngcontent-%COMP%]:focus, .dropdown-item[_ngcontent-%COMP%]:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show[_ngcontent-%COMP%]{display:block}.dropdown-header[_ngcontent-%COMP%]{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text[_ngcontent-%COMP%]{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%]{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{position:relative;flex:1 1 auto}.btn-group-vertical[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover, .btn-group[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover{z-index:1}.btn-toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-left:-1px}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropright[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropup[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::before{margin-right:0}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.375rem;padding-left:.375rem}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]{width:100%}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-top:-1px}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{margin-bottom:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%]{margin-left:-1px}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:focus{z-index:3}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus{z-index:4}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]{display:flex;align-items:center}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%]::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:first-child)   .custom-file-label[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]{display:flex}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{position:relative;z-index:2}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus, .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus{z-index:3}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%]{margin-left:-1px}.input-group-prepend[_ngcontent-%COMP%]{margin-right:-1px}.input-group-append[_ngcontent-%COMP%]{margin-left:-1px}.input-group-text[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .input-group-text[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{margin-top:0}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]{padding-right:1.75rem}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .input-group-text[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .btn[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .input-group-text[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .input-group-text[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control[_ngcontent-%COMP%]{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline[_ngcontent-%COMP%]{display:inline-flex;margin-right:1rem}.custom-control-input[_ngcontent-%COMP%]{position:absolute;z-index:-1;opacity:0}.custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}.custom-control-input[_ngcontent-%COMP%]:not(:disabled):active ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]{color:#6c757d}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:#e9ecef}.custom-control-label[_ngcontent-%COMP%]{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label[_ngcontent-%COMP%]::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label[_ngcontent-%COMP%]::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:.25rem}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-radio[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:50%}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e")}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-switch[_ngcontent-%COMP%]{padding-left:2.25rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-select[_ngcontent-%COMP%]{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select[_ngcontent-%COMP%]:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple][_ngcontent-%COMP%], .custom-select[size][_ngcontent-%COMP%]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select[_ngcontent-%COMP%]:disabled{color:#6c757d;background-color:#e9ecef}.custom-select[_ngcontent-%COMP%]::-ms-expand{display:none}.custom-select-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file[_ngcontent-%COMP%]{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input[_ngcontent-%COMP%]{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input[_ngcontent-%COMP%]:disabled ~ .custom-file-label[_ngcontent-%COMP%]{background-color:#e9ecef}.custom-file-input[_ngcontent-%COMP%]:lang(en) ~ .custom-file-label[_ngcontent-%COMP%]::after{content:"Browse"}.custom-file-input[_ngcontent-%COMP%] ~ .custom-file-label[data-browse][_ngcontent-%COMP%]::after{content:attr(data-browse)}.custom-file-label[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range[_ngcontent-%COMP%]{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range[_ngcontent-%COMP%]:focus{outline:0}.custom-range[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]::-moz-focus-outer{border:0}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing[_ngcontent-%COMP%], .custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{transition:none}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-ms-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-ms-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:none}}.nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link[_ngcontent-%COMP%]{display:block;padding:.5rem 1rem}.nav-link[_ngcontent-%COMP%]:focus, .nav-link[_ngcontent-%COMP%]:hover{text-decoration:none}.nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{margin-bottom:-1px}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs[_ngcontent-%COMP%]   .nav-item.show[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%], .nav-tabs[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%]{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border-radius:.25rem}.nav-pills[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .nav-pills[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}.nav-fill[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex:1 1 auto;text-align:center}.nav-justified[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;text-align:center}.tab-content[_ngcontent-%COMP%] > .tab-pane[_ngcontent-%COMP%]{display:none}.tab-content[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%]{display:block}.navbar[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand[_ngcontent-%COMP%]{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand[_ngcontent-%COMP%]:focus, .navbar-brand[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:static;float:none}.navbar-text[_ngcontent-%COMP%]{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse[_ngcontent-%COMP%]{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler[_ngcontent-%COMP%]{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler[_ngcontent-%COMP%]:focus, .navbar-toggler[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-toggler-icon[_ngcontent-%COMP%]{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:767.98px){.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:991.98px){.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:1199.98px){.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}.navbar-expand[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}.navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.7)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(0,0,0,.3)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(0, 0, 0, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(255,255,255,.75)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(255,255,255,.25)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff}.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%], pre[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body[_ngcontent-%COMP%]{flex:1 1 auto;padding:1.25rem}.card-title[_ngcontent-%COMP%]{margin-bottom:.75rem}.card-subtitle[_ngcontent-%COMP%]{margin-top:-.375rem;margin-bottom:0}.card-text[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card-link[_ngcontent-%COMP%]:hover{text-decoration:none}.card-link[_ngcontent-%COMP%] + .card-link[_ngcontent-%COMP%]{margin-left:1.25rem}.card-header[_ngcontent-%COMP%]{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header[_ngcontent-%COMP%]:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header[_ngcontent-%COMP%] + .list-group[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.card-footer[_ngcontent-%COMP%]{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer[_ngcontent-%COMP%]:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs[_ngcontent-%COMP%]{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills[_ngcontent-%COMP%]{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img[_ngcontent-%COMP%]{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top[_ngcontent-%COMP%]{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom[_ngcontent-%COMP%]{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-deck[_ngcontent-%COMP%]{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-group[_ngcontent-%COMP%]{flex-flow:row wrap}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{flex:1 0 0%;margin-bottom:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%]{margin-left:0;border-left:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%]{border-top-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%]{border-top-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-left-radius:0}.card-columns[_ngcontent-%COMP%]{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:inline-block;width:100%}}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:.75rem}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{overflow:hidden}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child{border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:first-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:last-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%]{margin-bottom:-1px}.breadcrumb[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]{padding-left:.5rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]:hover::before{text-decoration:none}.breadcrumb-item.active[_ngcontent-%COMP%]{color:#6c757d}.pagination[_ngcontent-%COMP%],   .cd-datatable .datatable-footer .datatable-pager ul{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link[_ngcontent-%COMP%],   .cd-datatable .datatable-footer .datatable-pager ul li a{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link[_ngcontent-%COMP%]:hover,   .cd-datatable .datatable-footer .datatable-pager ul li a:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link[_ngcontent-%COMP%]:focus,   .cd-datatable .datatable-footer .datatable-pager ul li a:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%], .page-item[_ngcontent-%COMP%]:first-child     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .page-item:first-child a,   .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul li:first-child a{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%], .page-item[_ngcontent-%COMP%]:last-child     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .page-item:last-child a,   .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul li:last-child a{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%], .page-item.active[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .page-item.active a,   .cd-datatable .datatable-footer .datatable-pager ul li.active .page-link,   .cd-datatable .datatable-footer .datatable-pager ul li.active a{z-index:1;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%], .page-item.disabled[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .page-item.disabled a,   .cd-datatable .datatable-footer .datatable-pager ul li.disabled .page-link,   .cd-datatable .datatable-footer .datatable-pager ul li.disabled a{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%], .pagination-lg[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg a{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%], .pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child     .cd-datatable .datatable-footer .datatable-pager ul li a, .pagination-lg[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link, .pagination-lg[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:first-child a,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:first-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:first-child a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg .page-item:first-child a{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%], .pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child     .cd-datatable .datatable-footer .datatable-pager ul li a, .pagination-lg[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link, .pagination-lg[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:last-child a,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:last-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:last-child a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg .page-item:last-child a{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%], .pagination-sm[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm a{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%], .pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child     .cd-datatable .datatable-footer .datatable-pager ul li a, .pagination-sm[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link, .pagination-sm[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:first-child a,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:first-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:first-child a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm .page-item:first-child a{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%], .pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child     .cd-datatable .datatable-footer .datatable-pager ul li a, .pagination-sm[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link, .pagination-sm[_ngcontent-%COMP%]     .cd-datatable .datatable-footer .datatable-pager ul li:last-child a,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:last-child .page-link,   .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:last-child a,   .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm .page-item:last-child a{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge[_ngcontent-%COMP%]{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge[_ngcontent-%COMP%]{transition:none}}a.badge[_ngcontent-%COMP%]:focus, a.badge[_ngcontent-%COMP%]:hover{text-decoration:none}.badge[_ngcontent-%COMP%]:empty{display:none}.btn[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{position:relative;top:-1px}.badge-pill[_ngcontent-%COMP%]{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}a.badge-primary[_ngcontent-%COMP%]:focus, a.badge-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#21747f}a.badge-primary.focus[_ngcontent-%COMP%], a.badge-primary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55}a.badge-secondary[_ngcontent-%COMP%]:focus, a.badge-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus[_ngcontent-%COMP%], a.badge-secondary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745}a.badge-success[_ngcontent-%COMP%]:focus, a.badge-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus[_ngcontent-%COMP%], a.badge-success[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8}a.badge-info[_ngcontent-%COMP%]:focus, a.badge-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#117a8b}a.badge-info.focus[_ngcontent-%COMP%], a.badge-info[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107}a.badge-warning[_ngcontent-%COMP%]:focus, a.badge-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus[_ngcontent-%COMP%], a.badge-warning[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545}a.badge-danger[_ngcontent-%COMP%]:focus, a.badge-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus[_ngcontent-%COMP%], a.badge-danger[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa}a.badge-light[_ngcontent-%COMP%]:focus, a.badge-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus[_ngcontent-%COMP%], a.badge-light[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777}a.badge-dark[_ngcontent-%COMP%]:focus, a.badge-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus[_ngcontent-%COMP%], a.badge-dark[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron[_ngcontent-%COMP%]{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron[_ngcontent-%COMP%]{padding:4rem 2rem}}.jumbotron-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;border-radius:0}.alert[_ngcontent-%COMP%]{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading[_ngcontent-%COMP%]{color:inherit}.alert-link[_ngcontent-%COMP%]{font-weight:700}.alert-dismissible[_ngcontent-%COMP%]{padding-right:4rem}.alert-dismissible[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary[_ngcontent-%COMP%]{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b2d9e0}.alert-primary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0c2b2e}.alert-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f9bab7}.alert-secondary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#56211f}.alert-success[_ngcontent-%COMP%]{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b1dfbb}.alert-success[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0b2e13}.alert-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#abdde5}.alert-info[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#062c33}.alert-warning[_ngcontent-%COMP%]{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ffe8a1}.alert-warning[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#533f03}.alert-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f1b0b7}.alert-danger[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#491217}.alert-light[_ngcontent-%COMP%]{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ececf6}.alert-light[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#686868}.alert-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ccc}.alert-dark[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress[_ngcontent-%COMP%]{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped[_ngcontent-%COMP%]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated[_ngcontent-%COMP%]{animation:1s linear infinite progress-bar-stripes}.media[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.media-body[_ngcontent-%COMP%]{flex:1}.list-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action[_ngcontent-%COMP%]{width:100%;color:#495057;text-align:inherit}.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-action[_ngcontent-%COMP%]:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action[_ngcontent-%COMP%]:active{color:#212529;background-color:#e9ecef}.list-group-item[_ngcontent-%COMP%]{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled[_ngcontent-%COMP%], .list-group-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active[_ngcontent-%COMP%]{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-horizontal[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{border-right:0;border-left:0;border-radius:0}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:-1px}.list-group-flush[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.list-group-flush[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary[_ngcontent-%COMP%]{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success[_ngcontent-%COMP%]{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning[_ngcontent-%COMP%]{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light[_ngcontent-%COMP%]{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close[_ngcontent-%COMP%]{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close[_ngcontent-%COMP%]:hover{color:#000;text-decoration:none}.close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):focus, .close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):hover{opacity:.75}button.close[_ngcontent-%COMP%]{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled[_ngcontent-%COMP%]{pointer-events:none}.toast[_ngcontent-%COMP%]{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast[_ngcontent-%COMP%]:not(:last-child){margin-bottom:.75rem}.toast.showing[_ngcontent-%COMP%]{opacity:1}.toast.show[_ngcontent-%COMP%]{display:block;opacity:1}.toast.hide[_ngcontent-%COMP%]{display:none}.toast-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body[_ngcontent-%COMP%]{padding:.75rem}.modal-open[_ngcontent-%COMP%]{overflow:hidden}.modal-open[_ngcontent-%COMP%]   .modal[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto}.modal[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog[_ngcontent-%COMP%]{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar[_ngcontent-%COMP%]{transition:none}.progress-bar-animated[_ngcontent-%COMP%]{animation:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:none}}.modal.show[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transform:none}.modal-dialog-scrollable[_ngcontent-%COMP%]{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-footer[_ngcontent-%COMP%], .modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-header[_ngcontent-%COMP%]{flex-shrink:0}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-body[_ngcontent-%COMP%]{overflow-y:auto}.modal-dialog-centered[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:none}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]::before{content:none}.modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade[_ngcontent-%COMP%]{opacity:0}.modal-backdrop.show[_ngcontent-%COMP%]{opacity:.5}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title[_ngcontent-%COMP%]{margin-bottom:0;line-height:1.5}.modal-body[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;padding:1rem}.modal-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:first-child){margin-left:.25rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure[_ngcontent-%COMP%]{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog[_ngcontent-%COMP%]{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable[_ngcontent-%COMP%]{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]{min-height:calc(100% - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{height:calc(100vh - 3.5rem)}.modal-sm[_ngcontent-%COMP%]{max-width:300px}}@media (min-width:992px){.modal-lg[_ngcontent-%COMP%], .modal-xl[_ngcontent-%COMP%]{max-width:800px}}@media (min-width:1200px){.modal-xl[_ngcontent-%COMP%]{max-width:1140px}}.tooltip[_ngcontent-%COMP%]{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show[_ngcontent-%COMP%]{opacity:.9}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{bottom:0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{top:0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner[_ngcontent-%COMP%]{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::after, .popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%]{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%]{margin-left:.5rem}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%]{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%]{margin-right:.5rem}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header[_ngcontent-%COMP%]{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header[_ngcontent-%COMP%]:empty{display:none}.popover-body[_ngcontent-%COMP%]{padding:.5rem .75rem;color:#212529}.carousel[_ngcontent-%COMP%]{position:relative}.carousel.pointer-event[_ngcontent-%COMP%]{touch-action:pan-y}.carousel-inner[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden}.carousel-inner[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.carousel-item[_ngcontent-%COMP%]{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%], .carousel-item.active[_ngcontent-%COMP%]{display:block}.active.carousel-item-right[_ngcontent-%COMP%], .carousel-item-next[_ngcontent-%COMP%]:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%]:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade[_ngcontent-%COMP%]   .carousel-item[_ngcontent-%COMP%]{opacity:0;transition-property:opacity;transform:none}.carousel-fade[_ngcontent-%COMP%]   .carousel-item-next.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item-prev.carousel-item-right[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item.active[_ngcontent-%COMP%]{z-index:1;opacity:1}.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%]{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%], .carousel-item[_ngcontent-%COMP%]{transition:none}}.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next[_ngcontent-%COMP%]:focus, .carousel-control-next[_ngcontent-%COMP%]:hover, .carousel-control-prev[_ngcontent-%COMP%]:focus, .carousel-control-prev[_ngcontent-%COMP%]:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev[_ngcontent-%COMP%]{left:0}.carousel-control-next[_ngcontent-%COMP%]{right:0}.carousel-control-next-icon[_ngcontent-%COMP%], .carousel-control-prev-icon[_ngcontent-%COMP%]{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3e%3c/svg%3e")}.carousel-control-next-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3e%3c/svg%3e")}.carousel-indicators[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%], .carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{transition:none}}.carousel-indicators[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%]{opacity:1}.carousel-caption[_ngcontent-%COMP%]{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.align-baseline[_ngcontent-%COMP%]{vertical-align:baseline!important}.align-top[_ngcontent-%COMP%]{vertical-align:top!important}.align-middle[_ngcontent-%COMP%]{vertical-align:middle!important}.align-bottom[_ngcontent-%COMP%]{vertical-align:bottom!important}.align-text-bottom[_ngcontent-%COMP%]{vertical-align:text-bottom!important}.align-text-top[_ngcontent-%COMP%]{vertical-align:text-top!important}.bg-primary[_ngcontent-%COMP%]{background-color:#2b99a8!important}a.bg-primary[_ngcontent-%COMP%]:focus, a.bg-primary[_ngcontent-%COMP%]:hover, button.bg-primary[_ngcontent-%COMP%]:focus, button.bg-primary[_ngcontent-%COMP%]:hover{background-color:#21747f!important}.bg-secondary[_ngcontent-%COMP%]{background-color:#ef5c55!important}a.bg-secondary[_ngcontent-%COMP%]:focus, a.bg-secondary[_ngcontent-%COMP%]:hover, button.bg-secondary[_ngcontent-%COMP%]:focus, button.bg-secondary[_ngcontent-%COMP%]:hover{background-color:#eb2f26!important}.bg-success[_ngcontent-%COMP%]{background-color:#28a745!important}a.bg-success[_ngcontent-%COMP%]:focus, a.bg-success[_ngcontent-%COMP%]:hover, button.bg-success[_ngcontent-%COMP%]:focus, button.bg-success[_ngcontent-%COMP%]:hover{background-color:#1e7e34!important}.bg-info[_ngcontent-%COMP%]{background-color:#17a2b8!important}a.bg-info[_ngcontent-%COMP%]:focus, a.bg-info[_ngcontent-%COMP%]:hover, button.bg-info[_ngcontent-%COMP%]:focus, button.bg-info[_ngcontent-%COMP%]:hover{background-color:#117a8b!important}.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important}a.bg-warning[_ngcontent-%COMP%]:focus, a.bg-warning[_ngcontent-%COMP%]:hover, button.bg-warning[_ngcontent-%COMP%]:focus, button.bg-warning[_ngcontent-%COMP%]:hover{background-color:#d39e00!important}.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}a.bg-danger[_ngcontent-%COMP%]:focus, a.bg-danger[_ngcontent-%COMP%]:hover, button.bg-danger[_ngcontent-%COMP%]:focus, button.bg-danger[_ngcontent-%COMP%]:hover{background-color:#bd2130!important}.bg-light[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{background-color:#f8f9fa!important}a.bg-light[_ngcontent-%COMP%]:focus, a.bg-light[_ngcontent-%COMP%]:hover, button.bg-light[_ngcontent-%COMP%]:focus, button.bg-light[_ngcontent-%COMP%]:hover{background-color:#dae0e5!important}.bg-dark[_ngcontent-%COMP%]{background-color:#777!important}a.bg-dark[_ngcontent-%COMP%]:focus, a.bg-dark[_ngcontent-%COMP%]:hover, button.bg-dark[_ngcontent-%COMP%]:focus, button.bg-dark[_ngcontent-%COMP%]:hover{background-color:#5e5e5e!important}.bg-white[_ngcontent-%COMP%]{background-color:#fff!important}.bg-transparent[_ngcontent-%COMP%]{background-color:transparent!important}.border[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.border-top[_ngcontent-%COMP%]{border-top:1px solid #dee2e6!important}.border-right[_ngcontent-%COMP%]{border-right:1px solid #dee2e6!important}.border-bottom[_ngcontent-%COMP%], .cd-header[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6!important}.border-left[_ngcontent-%COMP%]{border-left:1px solid #dee2e6!important}.border-0[_ngcontent-%COMP%]{border:0!important}.border-top-0[_ngcontent-%COMP%]{border-top:0!important}.border-right-0[_ngcontent-%COMP%]{border-right:0!important}.border-bottom-0[_ngcontent-%COMP%]{border-bottom:0!important}.border-left-0[_ngcontent-%COMP%]{border-left:0!important}.border-primary[_ngcontent-%COMP%]{border-color:#2b99a8!important}.border-secondary[_ngcontent-%COMP%]{border-color:#ef5c55!important}.border-success[_ngcontent-%COMP%]{border-color:#28a745!important}.border-info[_ngcontent-%COMP%]{border-color:#17a2b8!important}.border-warning[_ngcontent-%COMP%]{border-color:#ffc107!important}.border-danger[_ngcontent-%COMP%]{border-color:#dc3545!important}.border-light[_ngcontent-%COMP%]{border-color:#f8f9fa!important}.border-dark[_ngcontent-%COMP%]{border-color:#777!important}.border-white[_ngcontent-%COMP%]{border-color:#fff!important}.rounded-sm[_ngcontent-%COMP%]{border-radius:.2rem!important}.rounded[_ngcontent-%COMP%]{border-radius:.25rem!important}.rounded-top[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right[_ngcontent-%COMP%]{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg[_ngcontent-%COMP%]{border-radius:.3rem!important}.rounded-circle[_ngcontent-%COMP%]{border-radius:50%!important}.rounded-pill[_ngcontent-%COMP%]{border-radius:50rem!important}.rounded-0[_ngcontent-%COMP%]{border-radius:0!important}.clearfix[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.d-none[_ngcontent-%COMP%]{display:none!important}.d-inline[_ngcontent-%COMP%]{display:inline!important}.d-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-block[_ngcontent-%COMP%]{display:block!important}.d-table[_ngcontent-%COMP%]{display:table!important}.d-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.d-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}@media (min-width:576px){.d-sm-none[_ngcontent-%COMP%]{display:none!important}.d-sm-inline[_ngcontent-%COMP%]{display:inline!important}.d-sm-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-sm-block[_ngcontent-%COMP%]{display:block!important}.d-sm-table[_ngcontent-%COMP%]{display:table!important}.d-sm-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-sm-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-sm-flex[_ngcontent-%COMP%]{display:flex!important}.d-sm-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:768px){.d-md-none[_ngcontent-%COMP%]{display:none!important}.d-md-inline[_ngcontent-%COMP%]{display:inline!important}.d-md-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-table[_ngcontent-%COMP%]{display:table!important}.d-md-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-md-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-md-flex[_ngcontent-%COMP%]{display:flex!important}.d-md-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:992px){.d-lg-none[_ngcontent-%COMP%]{display:none!important}.d-lg-inline[_ngcontent-%COMP%]{display:inline!important}.d-lg-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-lg-block[_ngcontent-%COMP%]{display:block!important}.d-lg-table[_ngcontent-%COMP%]{display:table!important}.d-lg-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-lg-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-lg-flex[_ngcontent-%COMP%]{display:flex!important}.d-lg-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none[_ngcontent-%COMP%]{display:none!important}.d-xl-inline[_ngcontent-%COMP%]{display:inline!important}.d-xl-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-xl-block[_ngcontent-%COMP%]{display:block!important}.d-xl-table[_ngcontent-%COMP%]{display:table!important}.d-xl-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-xl-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-xl-flex[_ngcontent-%COMP%]{display:flex!important}.d-xl-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media print{.d-print-none[_ngcontent-%COMP%]{display:none!important}.d-print-inline[_ngcontent-%COMP%]{display:inline!important}.d-print-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-print-block[_ngcontent-%COMP%]{display:block!important}.d-print-table[_ngcontent-%COMP%]{display:table!important}.d-print-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-print-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-print-flex[_ngcontent-%COMP%]{display:flex!important}.d-print-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}.embed-responsive[_ngcontent-%COMP%]{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive[_ngcontent-%COMP%]::before{display:block;content:""}.embed-responsive[_ngcontent-%COMP%]   .embed-responsive-item[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   embed[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   iframe[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   object[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   video[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9[_ngcontent-%COMP%]::before{padding-top:42.8571428571%}.embed-responsive-16by9[_ngcontent-%COMP%]::before{padding-top:56.25%}.embed-responsive-4by3[_ngcontent-%COMP%]::before{padding-top:75%}.embed-responsive-1by1[_ngcontent-%COMP%]::before{padding-top:100%}.flex-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-stretch[_ngcontent-%COMP%]{align-self:stretch!important}@media (min-width:576px){.flex-sm-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-sm-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-sm-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-sm-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-sm-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-sm-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-sm-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-sm-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-sm-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-sm-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-sm-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-sm-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-sm-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-sm-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-sm-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-sm-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-sm-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-sm-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-sm-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-sm-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-sm-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-sm-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-sm-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-sm-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-sm-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-sm-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-sm-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-sm-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-sm-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-sm-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-sm-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-sm-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-sm-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-sm-stretch[_ngcontent-%COMP%]{align-self:stretch!important}}.float-left[_ngcontent-%COMP%]{float:left!important}.float-right[_ngcontent-%COMP%]{float:right!important}.float-none[_ngcontent-%COMP%]{float:none!important}@media (min-width:576px){.float-sm-left[_ngcontent-%COMP%]{float:left!important}.float-sm-right[_ngcontent-%COMP%]{float:right!important}.float-sm-none[_ngcontent-%COMP%]{float:none!important}}.overflow-auto[_ngcontent-%COMP%]{overflow:auto!important}.overflow-hidden[_ngcontent-%COMP%]{overflow:hidden!important}.position-static[_ngcontent-%COMP%]{position:static!important}.position-relative[_ngcontent-%COMP%]{position:relative!important}.position-absolute[_ngcontent-%COMP%]{position:absolute!important}.position-fixed[_ngcontent-%COMP%]{position:fixed!important}.position-sticky[_ngcontent-%COMP%]{position:sticky!important}.fixed-top[_ngcontent-%COMP%]{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom[_ngcontent-%COMP%]{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1020}}.sr-only[_ngcontent-%COMP%]{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm[_ngcontent-%COMP%]{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow[_ngcontent-%COMP%]{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg[_ngcontent-%COMP%]{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none[_ngcontent-%COMP%]{box-shadow:none!important}.w-25[_ngcontent-%COMP%]{width:25%!important}.w-50[_ngcontent-%COMP%]{width:50%!important}.w-75[_ngcontent-%COMP%]{width:75%!important}.w-100[_ngcontent-%COMP%]{width:100%!important}.w-auto[_ngcontent-%COMP%]{width:auto!important}.h-25[_ngcontent-%COMP%]{height:25%!important}.h-50[_ngcontent-%COMP%]{height:50%!important}.h-75[_ngcontent-%COMP%]{height:75%!important}.h-100[_ngcontent-%COMP%]{height:100%!important}.h-auto[_ngcontent-%COMP%]{height:auto!important}.mw-100[_ngcontent-%COMP%]{max-width:100%!important}.mh-100[_ngcontent-%COMP%]{max-height:100%!important}.min-vw-100[_ngcontent-%COMP%]{min-width:100vw!important}.min-vh-100[_ngcontent-%COMP%]{min-height:100vh!important}.vw-100[_ngcontent-%COMP%]{width:100vw!important}.vh-100[_ngcontent-%COMP%]{height:100vh!important}.stretched-link[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0[_ngcontent-%COMP%]{margin:0!important}.mt-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-left:0!important}.m-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-4[_ngcontent-%COMP%]{margin:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mt-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mb-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-0[_ngcontent-%COMP%]{padding:0!important}.pt-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-left:0!important}.p-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.cd-header[_ngcontent-%COMP%], .pb-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-2[_ngcontent-%COMP%],   .cd-datatable .datatable-footer, pre[_ngcontent-%COMP%]{padding:.5rem!important}.pt-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-left:auto!important}@media (min-width:576px){.m-sm-0[_ngcontent-%COMP%]{margin:0!important}.mt-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-left:0!important}.m-sm-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-sm-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-sm-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-sm-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-sm-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-sm-0[_ngcontent-%COMP%]{padding:0!important}.pt-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-left:0!important}.p-sm-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-sm-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-sm-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-sm-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-sm-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-sm-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-sm-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-sm-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-sm-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-sm-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-sm-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-left:auto!important}}.text-monospace[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify[_ngcontent-%COMP%]{text-align:justify!important}.text-wrap[_ngcontent-%COMP%]{white-space:normal!important}.text-nowrap[_ngcontent-%COMP%]{white-space:nowrap!important}.text-truncate[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left[_ngcontent-%COMP%]{text-align:left!important}.text-right[_ngcontent-%COMP%]{text-align:right!important}.text-center[_ngcontent-%COMP%]{text-align:center!important}@media (min-width:576px){.text-sm-left[_ngcontent-%COMP%]{text-align:left!important}.text-sm-right[_ngcontent-%COMP%]{text-align:right!important}.text-sm-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:768px){.flex-md-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-md-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-md-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-md-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-md-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-md-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-md-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-md-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-md-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-md-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-md-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-md-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-md-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-md-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-md-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-md-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-md-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-md-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-md-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-md-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-md-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-md-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-md-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-md-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-md-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-md-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-md-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-md-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-md-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-md-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-md-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-md-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-md-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-md-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-md-left[_ngcontent-%COMP%]{float:left!important}.float-md-right[_ngcontent-%COMP%]{float:right!important}.float-md-none[_ngcontent-%COMP%]{float:none!important}.m-md-0[_ngcontent-%COMP%]{margin:0!important}.mt-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-left:0!important}.m-md-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-md-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-md-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-md-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-md-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-md-0[_ngcontent-%COMP%]{padding:0!important}.pt-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-left:0!important}.p-md-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-md-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-md-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-md-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-md-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-md-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-md-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-md-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-md-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-md-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-md-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-md-left[_ngcontent-%COMP%]{text-align:left!important}.text-md-right[_ngcontent-%COMP%]{text-align:right!important}.text-md-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:992px){.flex-lg-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-lg-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-lg-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-lg-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-lg-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-lg-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-lg-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-lg-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-lg-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-lg-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-lg-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-lg-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-lg-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-lg-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-lg-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-lg-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-lg-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-lg-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-lg-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-lg-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-lg-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-lg-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-lg-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-lg-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-lg-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-lg-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-lg-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-lg-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-lg-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-lg-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-lg-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-lg-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-lg-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-lg-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-lg-left[_ngcontent-%COMP%]{float:left!important}.float-lg-right[_ngcontent-%COMP%]{float:right!important}.float-lg-none[_ngcontent-%COMP%]{float:none!important}.m-lg-0[_ngcontent-%COMP%]{margin:0!important}.mt-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-left:0!important}.m-lg-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-lg-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-lg-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-lg-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-lg-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-lg-0[_ngcontent-%COMP%]{padding:0!important}.pt-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-left:0!important}.p-lg-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-lg-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-lg-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-lg-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-lg-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-lg-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-lg-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-lg-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-lg-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-lg-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-lg-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-lg-left[_ngcontent-%COMP%]{text-align:left!important}.text-lg-right[_ngcontent-%COMP%]{text-align:right!important}.text-lg-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:1200px){.flex-xl-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-xl-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-xl-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-xl-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-xl-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-xl-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-xl-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-xl-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-xl-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-xl-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-xl-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-xl-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-xl-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-xl-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-xl-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-xl-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-xl-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-xl-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-xl-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-xl-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-xl-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-xl-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-xl-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-xl-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-xl-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-xl-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-xl-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-xl-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-xl-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-xl-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-xl-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-xl-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-xl-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-xl-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-xl-left[_ngcontent-%COMP%]{float:left!important}.float-xl-right[_ngcontent-%COMP%]{float:right!important}.float-xl-none[_ngcontent-%COMP%]{float:none!important}.m-xl-0[_ngcontent-%COMP%]{margin:0!important}.mt-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-left:0!important}.m-xl-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-xl-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-xl-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-xl-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-xl-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-xl-0[_ngcontent-%COMP%]{padding:0!important}.pt-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-left:0!important}.p-xl-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-xl-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-xl-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-xl-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-xl-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-xl-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-xl-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-xl-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-xl-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-xl-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-xl-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-xl-left[_ngcontent-%COMP%]{text-align:left!important}.text-xl-right[_ngcontent-%COMP%]{text-align:right!important}.text-xl-center[_ngcontent-%COMP%]{text-align:center!important}}.text-lowercase[_ngcontent-%COMP%]{text-transform:lowercase!important}.text-uppercase[_ngcontent-%COMP%]{text-transform:uppercase!important}.text-capitalize[_ngcontent-%COMP%]{text-transform:capitalize!important}.font-weight-light[_ngcontent-%COMP%]{font-weight:300!important}.font-weight-lighter[_ngcontent-%COMP%]{font-weight:lighter!important}.font-weight-normal[_ngcontent-%COMP%]{font-weight:400!important}.font-weight-bold[_ngcontent-%COMP%]{font-weight:700!important}.font-weight-bolder[_ngcontent-%COMP%]{font-weight:bolder!important}.font-italic[_ngcontent-%COMP%]{font-style:italic!important}.text-white[_ngcontent-%COMP%]{color:#fff!important}.text-primary[_ngcontent-%COMP%]{color:#2b99a8!important}a.text-primary[_ngcontent-%COMP%]:focus, a.text-primary[_ngcontent-%COMP%]:hover{color:#1b626b!important}.text-secondary[_ngcontent-%COMP%]{color:#ef5c55!important}a.text-secondary[_ngcontent-%COMP%]:focus, a.text-secondary[_ngcontent-%COMP%]:hover{color:#e21f15!important}.text-success[_ngcontent-%COMP%]{color:#28a745!important}a.text-success[_ngcontent-%COMP%]:focus, a.text-success[_ngcontent-%COMP%]:hover{color:#19692c!important}.text-info[_ngcontent-%COMP%]{color:#17a2b8!important}a.text-info[_ngcontent-%COMP%]:focus, a.text-info[_ngcontent-%COMP%]:hover{color:#0f6674!important}.text-warning[_ngcontent-%COMP%]{color:#ffc107!important}a.text-warning[_ngcontent-%COMP%]:focus, a.text-warning[_ngcontent-%COMP%]:hover{color:#ba8b00!important}.text-danger[_ngcontent-%COMP%]{color:#dc3545!important}a.text-danger[_ngcontent-%COMP%]:focus, a.text-danger[_ngcontent-%COMP%]:hover{color:#a71d2a!important}.text-light[_ngcontent-%COMP%]{color:#f8f9fa!important}a.text-light[_ngcontent-%COMP%]:focus, a.text-light[_ngcontent-%COMP%]:hover{color:#cbd3da!important}.text-dark[_ngcontent-%COMP%]{color:#777!important}a.text-dark[_ngcontent-%COMP%]:focus, a.text-dark[_ngcontent-%COMP%]:hover{color:#515151!important}.text-body[_ngcontent-%COMP%]{color:#212529!important}.text-muted[_ngcontent-%COMP%]{color:#6c757d!important}.text-black-50[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)!important}.text-white-50[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)!important}.text-hide[_ngcontent-%COMP%]{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none[_ngcontent-%COMP%]{text-decoration:none!important}.text-break[_ngcontent-%COMP%]{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset[_ngcontent-%COMP%]{color:inherit!important}.visible[_ngcontent-%COMP%]{visibility:visible!important}.invisible[_ngcontent-%COMP%]{visibility:hidden!important}@media print{*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{text-shadow:none!important;box-shadow:none!important}a[_ngcontent-%COMP%]:not(.btn){text-decoration:underline}abbr[title][_ngcontent-%COMP%]::after{content:" (" attr(title) ")"}pre[_ngcontent-%COMP%]{white-space:pre-wrap!important}blockquote[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{border:1px solid #adb5bd;page-break-inside:avoid}thead[_ngcontent-%COMP%]{display:table-header-group}img[_ngcontent-%COMP%], tr[_ngcontent-%COMP%]{page-break-inside:avoid}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{orphans:3;widows:3}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{page-break-after:avoid}@page{size:a3}.container[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{min-width:992px!important}.navbar[_ngcontent-%COMP%]{display:none}.badge[_ngcontent-%COMP%]{border:1px solid #000}.table[_ngcontent-%COMP%]{border-collapse:collapse!important}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#fff!important}.table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.table-dark[_ngcontent-%COMP%]{color:inherit}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#dee2e6}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:inherit;border-color:#dee2e6}}@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa[_ngcontent-%COMP%]{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg[_ngcontent-%COMP%]{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x[_ngcontent-%COMP%]{font-size:2em}.fa-3x[_ngcontent-%COMP%]{font-size:3em}.fa-4x[_ngcontent-%COMP%]{font-size:4em}.fa-5x[_ngcontent-%COMP%]{font-size:5em}.fa[_ngcontent-%COMP%], .fa-fw[_ngcontent-%COMP%]{width:1.2857142857em;text-align:center}.fa-ul[_ngcontent-%COMP%]{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{position:relative}.fa-li[_ngcontent-%COMP%]{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg[_ngcontent-%COMP%]{left:-1.8571428571em}.fa-border[_ngcontent-%COMP%]{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left[_ngcontent-%COMP%]{float:left}.fa-pull-right[_ngcontent-%COMP%]{float:right}.fa.fa-pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.fa-pull-right[_ngcontent-%COMP%]{margin-left:.3em}.pull-right[_ngcontent-%COMP%]{float:right}.pull-left[_ngcontent-%COMP%]{float:left}.fa.pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.pull-right[_ngcontent-%COMP%]{margin-left:.3em}.fa-spin[_ngcontent-%COMP%]{animation:2s linear infinite fa-spin}.fa-pulse[_ngcontent-%COMP%]{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}[_ngcontent-%COMP%]:root   .fa-flip-horizontal[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-flip-vertical[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-180[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-270[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-90[_ngcontent-%COMP%]{filter:none}.fa-stack[_ngcontent-%COMP%]{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x[_ngcontent-%COMP%], .fa-stack-2x[_ngcontent-%COMP%]{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x[_ngcontent-%COMP%]{line-height:inherit}.fa-stack-2x[_ngcontent-%COMP%]{font-size:2em}.fa-inverse[_ngcontent-%COMP%]{color:#fff}.fa-glass[_ngcontent-%COMP%]:before{content:""}.fa-music[_ngcontent-%COMP%]:before{content:""}.fa-search[_ngcontent-%COMP%]:before{content:""}.fa-envelope-o[_ngcontent-%COMP%]:before{content:""}.fa-heart[_ngcontent-%COMP%]:before{content:""}.fa-star[_ngcontent-%COMP%]:before{content:""}.fa-star-o[_ngcontent-%COMP%]:before{content:""}.fa-user[_ngcontent-%COMP%]:before{content:""}.fa-film[_ngcontent-%COMP%]:before{content:""}.fa-th-large[_ngcontent-%COMP%]:before{content:""}.fa-th[_ngcontent-%COMP%]:before{content:""}.fa-th-list[_ngcontent-%COMP%]:before{content:""}.fa-check[_ngcontent-%COMP%]:before{content:""}.fa-close[_ngcontent-%COMP%]:before, .fa-remove[_ngcontent-%COMP%]:before, .fa-times[_ngcontent-%COMP%]:before{content:""}.fa-search-plus[_ngcontent-%COMP%]:before{content:""}.fa-search-minus[_ngcontent-%COMP%]:before{content:""}.fa-power-off[_ngcontent-%COMP%]:before{content:""}.fa-signal[_ngcontent-%COMP%]:before{content:""}.fa-cog[_ngcontent-%COMP%]:before, .fa-gear[_ngcontent-%COMP%]:before{content:""}.fa-trash-o[_ngcontent-%COMP%]:before{content:""}.fa-home[_ngcontent-%COMP%]:before{content:""}.fa-file-o[_ngcontent-%COMP%]:before{content:""}.fa-clock-o[_ngcontent-%COMP%]:before{content:""}.fa-road[_ngcontent-%COMP%]:before{content:""}.fa-download[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-up[_ngcontent-%COMP%]:before{content:""}.fa-inbox[_ngcontent-%COMP%]:before{content:""}.fa-play-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-repeat[_ngcontent-%COMP%]:before, .fa-rotate-right[_ngcontent-%COMP%]:before{content:""}.fa-refresh[_ngcontent-%COMP%]:before, .fa-sync[_ngcontent-%COMP%]:before{content:""}.fa-list-alt[_ngcontent-%COMP%]:before{content:""}.fa-lock[_ngcontent-%COMP%]:before{content:""}.fa-flag[_ngcontent-%COMP%]:before{content:""}.fa-headphones[_ngcontent-%COMP%]:before{content:""}.fa-volume-off[_ngcontent-%COMP%]:before{content:""}.fa-volume-down[_ngcontent-%COMP%]:before{content:""}.fa-volume-up[_ngcontent-%COMP%]:before{content:""}.fa-qrcode[_ngcontent-%COMP%]:before{content:""}.fa-barcode[_ngcontent-%COMP%]:before{content:""}.fa-tag[_ngcontent-%COMP%]:before{content:""}.fa-tags[_ngcontent-%COMP%]:before{content:""}.fa-book[_ngcontent-%COMP%]:before{content:""}.fa-bookmark[_ngcontent-%COMP%]:before{content:""}.fa-print[_ngcontent-%COMP%]:before{content:""}.fa-camera[_ngcontent-%COMP%]:before{content:""}.fa-font[_ngcontent-%COMP%]:before{content:""}.fa-bold[_ngcontent-%COMP%]:before{content:""}.fa-italic[_ngcontent-%COMP%]:before{content:""}.fa-text-height[_ngcontent-%COMP%]:before{content:""}.fa-text-width[_ngcontent-%COMP%]:before{content:""}.fa-align-left[_ngcontent-%COMP%]:before{content:""}.fa-align-center[_ngcontent-%COMP%]:before{content:""}.fa-align-right[_ngcontent-%COMP%]:before{content:""}.fa-align-justify[_ngcontent-%COMP%]:before{content:""}.fa-list[_ngcontent-%COMP%]:before{content:""}.fa-dedent[_ngcontent-%COMP%]:before, .fa-outdent[_ngcontent-%COMP%]:before{content:""}.fa-indent[_ngcontent-%COMP%]:before{content:""}.fa-video-camera[_ngcontent-%COMP%]:before, .fa-video[_ngcontent-%COMP%]:before{content:""}.fa-image[_ngcontent-%COMP%]:before, .fa-photo[_ngcontent-%COMP%]:before, .fa-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-pencil[_ngcontent-%COMP%]:before{content:""}.fa-map-marker[_ngcontent-%COMP%]:before{content:""}.fa-adjust[_ngcontent-%COMP%]:before{content:""}.fa-tint[_ngcontent-%COMP%]:before{content:""}.fa-edit[_ngcontent-%COMP%]:before, .fa-pencil-square-o[_ngcontent-%COMP%]:before{content:""}.fa-share-square-o[_ngcontent-%COMP%]:before{content:""}.fa-check-square-o[_ngcontent-%COMP%]:before{content:""}.fa-arrows[_ngcontent-%COMP%]:before{content:""}.fa-step-backward[_ngcontent-%COMP%]:before{content:""}.fa-fast-backward[_ngcontent-%COMP%]:before{content:""}.fa-backward[_ngcontent-%COMP%]:before{content:""}.fa-play[_ngcontent-%COMP%]:before{content:""}.fa-pause[_ngcontent-%COMP%]:before{content:""}.fa-stop[_ngcontent-%COMP%]:before{content:""}.fa-forward[_ngcontent-%COMP%]:before{content:""}.fa-fast-forward[_ngcontent-%COMP%]:before{content:""}.fa-step-forward[_ngcontent-%COMP%]:before{content:""}.fa-eject[_ngcontent-%COMP%]:before{content:""}.fa-chevron-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-right[_ngcontent-%COMP%]:before{content:""}.fa-plus-circle[_ngcontent-%COMP%]:before{content:""}.fa-minus-circle[_ngcontent-%COMP%]:before{content:""}.fa-times-circle[_ngcontent-%COMP%]:before{content:""}.fa-check-circle[_ngcontent-%COMP%]:before{content:""}.fa-question-circle[_ngcontent-%COMP%]:before{content:""}.fa-info-circle[_ngcontent-%COMP%]:before{content:""}.fa-crosshairs[_ngcontent-%COMP%]:before{content:""}.fa-times-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-check-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-ban[_ngcontent-%COMP%]:before{content:""}.fa-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-mail-forward[_ngcontent-%COMP%]:before, .fa-share[_ngcontent-%COMP%]:before{content:""}.fa-expand[_ngcontent-%COMP%]:before{content:""}.fa-compress[_ngcontent-%COMP%]:before{content:""}.fa-plus[_ngcontent-%COMP%]:before{content:""}.fa-minus[_ngcontent-%COMP%]:before{content:""}.fa-asterisk[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-circle[_ngcontent-%COMP%]:before{content:""}.fa-gift[_ngcontent-%COMP%]:before{content:""}.fa-leaf[_ngcontent-%COMP%]:before{content:""}.fa-fire[_ngcontent-%COMP%]:before{content:""}.fa-eye[_ngcontent-%COMP%]:before{content:""}.fa-eye-slash[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-triangle[_ngcontent-%COMP%]:before, .fa-warning[_ngcontent-%COMP%]:before{content:""}.fa-plane[_ngcontent-%COMP%]:before{content:""}.fa-calendar[_ngcontent-%COMP%]:before{content:""}.fa-random[_ngcontent-%COMP%]:before{content:""}.fa-comment[_ngcontent-%COMP%]:before{content:""}.fa-magnet[_ngcontent-%COMP%]:before{content:""}.fa-chevron-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-down[_ngcontent-%COMP%]:before{content:""}.fa-retweet[_ngcontent-%COMP%]:before{content:""}.fa-shopping-cart[_ngcontent-%COMP%]:before{content:""}.fa-folder[_ngcontent-%COMP%]:before{content:""}.fa-folder-open[_ngcontent-%COMP%]:before{content:""}.fa-arrows-v[_ngcontent-%COMP%]:before{content:""}.fa-arrows-h[_ngcontent-%COMP%]:before{content:""}.fa-bar-chart-o[_ngcontent-%COMP%]:before, .fa-bar-chart[_ngcontent-%COMP%]:before{content:""}.fa-twitter-square[_ngcontent-%COMP%]:before{content:""}.fa-facebook-square[_ngcontent-%COMP%]:before{content:""}.fa-camera-retro[_ngcontent-%COMP%]:before{content:""}.fa-key[_ngcontent-%COMP%]:before{content:""}.fa-cogs[_ngcontent-%COMP%]:before, .fa-gears[_ngcontent-%COMP%]:before{content:""}.fa-comments[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-down[_ngcontent-%COMP%]:before{content:""}.fa-star-half[_ngcontent-%COMP%]:before{content:""}.fa-heart-o[_ngcontent-%COMP%]:before{content:""}.fa-sign-out[_ngcontent-%COMP%]:before{content:""}.fa-linkedin-square[_ngcontent-%COMP%]:before{content:""}.fa-thumb-tack[_ngcontent-%COMP%]:before{content:""}.fa-external-link[_ngcontent-%COMP%]:before{content:""}.fa-sign-in[_ngcontent-%COMP%]:before{content:""}.fa-trophy[_ngcontent-%COMP%]:before{content:""}.fa-github-square[_ngcontent-%COMP%]:before{content:""}.fa-upload[_ngcontent-%COMP%]:before{content:""}.fa-lemon-o[_ngcontent-%COMP%]:before{content:""}.fa-phone[_ngcontent-%COMP%]:before{content:""}.fa-square-o[_ngcontent-%COMP%]:before{content:""}.fa-bookmark-o[_ngcontent-%COMP%]:before{content:""}.fa-phone-square[_ngcontent-%COMP%]:before{content:""}.fa-twitter[_ngcontent-%COMP%]:before{content:""}.fa-facebook-f[_ngcontent-%COMP%]:before, .fa-facebook[_ngcontent-%COMP%]:before{content:""}.fa-github[_ngcontent-%COMP%]:before{content:""}.fa-unlock[_ngcontent-%COMP%]:before{content:""}.fa-credit-card[_ngcontent-%COMP%]:before{content:""}.fa-feed[_ngcontent-%COMP%]:before, .fa-rss[_ngcontent-%COMP%]:before{content:""}.fa-hdd-o[_ngcontent-%COMP%]:before{content:""}.fa-bullhorn[_ngcontent-%COMP%]:before{content:""}.fa-bell-o[_ngcontent-%COMP%]:before{content:""}.fa-certificate[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-right[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-left[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-up[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-globe[_ngcontent-%COMP%]:before{content:""}.fa-globe-e[_ngcontent-%COMP%]:before{content:""}.fa-globe-w[_ngcontent-%COMP%]:before{content:""}.fa-wrench[_ngcontent-%COMP%]:before{content:""}.fa-tasks[_ngcontent-%COMP%]:before{content:""}.fa-filter[_ngcontent-%COMP%]:before{content:""}.fa-briefcase[_ngcontent-%COMP%]:before{content:""}.fa-arrows-alt[_ngcontent-%COMP%]:before{content:""}.fa-community[_ngcontent-%COMP%]:before, .fa-group[_ngcontent-%COMP%]:before, .fa-users[_ngcontent-%COMP%]:before{content:""}.fa-chain[_ngcontent-%COMP%]:before, .fa-link[_ngcontent-%COMP%]:before{content:""}.fa-cloud[_ngcontent-%COMP%]:before{content:""}.fa-flask[_ngcontent-%COMP%]:before{content:""}.fa-cut[_ngcontent-%COMP%]:before, .fa-scissors[_ngcontent-%COMP%]:before{content:""}.fa-copy[_ngcontent-%COMP%]:before, .fa-files-o[_ngcontent-%COMP%]:before{content:""}.fa-paperclip[_ngcontent-%COMP%]:before{content:""}.fa-floppy-o[_ngcontent-%COMP%]:before, .fa-save[_ngcontent-%COMP%]:before{content:""}.fa-square[_ngcontent-%COMP%]:before{content:""}.fa-bars[_ngcontent-%COMP%]:before, .fa-navicon[_ngcontent-%COMP%]:before, .fa-reorder[_ngcontent-%COMP%]:before{content:""}.fa-list-ul[_ngcontent-%COMP%]:before{content:""}.fa-list-ol[_ngcontent-%COMP%]:before{content:""}.fa-strikethrough[_ngcontent-%COMP%]:before{content:""}.fa-underline[_ngcontent-%COMP%]:before{content:""}.fa-table[_ngcontent-%COMP%]:before{content:""}.fa-magic[_ngcontent-%COMP%]:before{content:""}.fa-truck[_ngcontent-%COMP%]:before{content:""}.fa-pinterest[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-g[_ngcontent-%COMP%]:before, .fa-google-plus[_ngcontent-%COMP%]:before{content:""}.fa-money[_ngcontent-%COMP%]:before{content:""}.fa-caret-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-right[_ngcontent-%COMP%]:before{content:""}.fa-columns[_ngcontent-%COMP%]:before{content:""}.fa-sort[_ngcontent-%COMP%]:before, .fa-unsorted[_ngcontent-%COMP%]:before{content:""}.fa-sort-desc[_ngcontent-%COMP%]:before, .fa-sort-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-asc[_ngcontent-%COMP%]:before, .fa-sort-up[_ngcontent-%COMP%]:before{content:""}.fa-envelope[_ngcontent-%COMP%]:before{content:""}.fa-linkedin[_ngcontent-%COMP%]:before{content:""}.fa-rotate-left[_ngcontent-%COMP%]:before, .fa-undo[_ngcontent-%COMP%]:before{content:""}.fa-gavel[_ngcontent-%COMP%]:before, .fa-legal[_ngcontent-%COMP%]:before{content:""}.fa-dashboard[_ngcontent-%COMP%]:before, .fa-tachometer[_ngcontent-%COMP%]:before{content:""}.fa-comment-o[_ngcontent-%COMP%]:before{content:""}.fa-comments-o[_ngcontent-%COMP%]:before{content:""}.fa-bolt[_ngcontent-%COMP%]:before, .fa-flash[_ngcontent-%COMP%]:before{content:""}.fa-sitemap[_ngcontent-%COMP%]:before{content:""}.fa-umbrella[_ngcontent-%COMP%]:before{content:""}.fa-clipboard[_ngcontent-%COMP%]:before, .fa-paste[_ngcontent-%COMP%]:before{content:""}.fa-lightbulb-o[_ngcontent-%COMP%]:before{content:""}.fa-exchange[_ngcontent-%COMP%]:before{content:""}.fa-cloud-download[_ngcontent-%COMP%]:before{content:""}.fa-cloud-upload[_ngcontent-%COMP%]:before{content:""}.fa-user-md[_ngcontent-%COMP%]:before{content:""}.fa-stethoscope[_ngcontent-%COMP%]:before{content:""}.fa-suitcase[_ngcontent-%COMP%]:before{content:""}.fa-bell[_ngcontent-%COMP%]:before{content:""}.fa-coffee[_ngcontent-%COMP%]:before{content:""}.fa-cutlery[_ngcontent-%COMP%]:before, .fa-utensils[_ngcontent-%COMP%]:before{content:""}.fa-file-text-o[_ngcontent-%COMP%]:before{content:""}.fa-building-o[_ngcontent-%COMP%]:before{content:""}.fa-hospital-o[_ngcontent-%COMP%]:before{content:""}.fa-ambulance[_ngcontent-%COMP%]:before{content:""}.fa-medkit[_ngcontent-%COMP%]:before{content:""}.fa-fighter-jet[_ngcontent-%COMP%]:before{content:""}.fa-beer[_ngcontent-%COMP%]:before{content:""}.fa-h-square[_ngcontent-%COMP%]:before{content:""}.fa-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-down[_ngcontent-%COMP%]:before{content:""}.fa-angle-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-down[_ngcontent-%COMP%]:before{content:""}.fa-desktop[_ngcontent-%COMP%]:before{content:""}.fa-laptop[_ngcontent-%COMP%]:before{content:""}.fa-tablet[_ngcontent-%COMP%]:before{content:""}.fa-mobile-phone[_ngcontent-%COMP%]:before, .fa-mobile[_ngcontent-%COMP%]:before{content:""}.fa-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-quote-left[_ngcontent-%COMP%]:before{content:""}.fa-quote-right[_ngcontent-%COMP%]:before{content:""}.fa-spinner[_ngcontent-%COMP%]:before{content:""}.fa-circle[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply[_ngcontent-%COMP%]:before, .fa-reply[_ngcontent-%COMP%]:before{content:""}.fa-github-alt[_ngcontent-%COMP%]:before{content:""}.fa-folder-o[_ngcontent-%COMP%]:before{content:""}.fa-folder-open-o[_ngcontent-%COMP%]:before{content:""}.fa-smile-o[_ngcontent-%COMP%]:before{content:""}.fa-frown-o[_ngcontent-%COMP%]:before{content:""}.fa-meh-o[_ngcontent-%COMP%]:before{content:""}.fa-gamepad[_ngcontent-%COMP%]:before{content:""}.fa-keyboard-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-checkered[_ngcontent-%COMP%]:before{content:""}.fa-terminal[_ngcontent-%COMP%]:before{content:""}.fa-code[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply-all[_ngcontent-%COMP%]:before, .fa-reply-all[_ngcontent-%COMP%]:before{content:""}.fa-star-half-empty[_ngcontent-%COMP%]:before, .fa-star-half-full[_ngcontent-%COMP%]:before, .fa-star-half-o[_ngcontent-%COMP%]:before{content:""}.fa-location-arrow[_ngcontent-%COMP%]:before{content:""}.fa-crop[_ngcontent-%COMP%]:before{content:""}.fa-code-fork[_ngcontent-%COMP%]:before{content:""}.fa-chain-broken[_ngcontent-%COMP%]:before, .fa-unlink[_ngcontent-%COMP%]:before{content:""}.fa-question[_ngcontent-%COMP%]:before{content:""}.fa-info[_ngcontent-%COMP%]:before{content:""}.fa-exclamation[_ngcontent-%COMP%]:before{content:""}.fa-superscript[_ngcontent-%COMP%]:before{content:""}.fa-subscript[_ngcontent-%COMP%]:before{content:""}.fa-eraser[_ngcontent-%COMP%]:before{content:""}.fa-puzzle-piece[_ngcontent-%COMP%]:before{content:""}.fa-microphone[_ngcontent-%COMP%]:before{content:""}.fa-microphone-slash[_ngcontent-%COMP%]:before{content:""}.fa-shield[_ngcontent-%COMP%]:before{content:""}.fa-calendar-o[_ngcontent-%COMP%]:before{content:""}.fa-fire-extinguisher[_ngcontent-%COMP%]:before{content:""}.fa-rocket[_ngcontent-%COMP%]:before{content:""}.fa-maxcdn[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-html5[_ngcontent-%COMP%]:before{content:""}.fa-css3[_ngcontent-%COMP%]:before{content:""}.fa-anchor[_ngcontent-%COMP%]:before{content:""}.fa-unlock-alt[_ngcontent-%COMP%]:before{content:""}.fa-bullseye[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-h[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-v[_ngcontent-%COMP%]:before{content:""}.fa-rss-square[_ngcontent-%COMP%]:before{content:""}.fa-play-circle[_ngcontent-%COMP%]:before{content:""}.fa-ticket[_ngcontent-%COMP%]:before{content:""}.fa-minus-square[_ngcontent-%COMP%]:before{content:""}.fa-minus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-level-up[_ngcontent-%COMP%]:before{content:""}.fa-level-down[_ngcontent-%COMP%]:before{content:""}.fa-check-square[_ngcontent-%COMP%]:before{content:""}.fa-pencil-square[_ngcontent-%COMP%]:before{content:""}.fa-external-link-square[_ngcontent-%COMP%]:before{content:""}.fa-share-square[_ngcontent-%COMP%]:before{content:""}.fa-compass[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-down[_ngcontent-%COMP%]:before, .fa-toggle-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-up[_ngcontent-%COMP%]:before, .fa-toggle-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-right[_ngcontent-%COMP%]:before, .fa-toggle-right[_ngcontent-%COMP%]:before{content:""}.fa-eur[_ngcontent-%COMP%]:before, .fa-euro[_ngcontent-%COMP%]:before{content:""}.fa-gbp[_ngcontent-%COMP%]:before, .fa-pound[_ngcontent-%COMP%]:before{content:""}.fa-dollar[_ngcontent-%COMP%]:before, .fa-usd[_ngcontent-%COMP%]:before{content:""}.fa-inr[_ngcontent-%COMP%]:before, .fa-rupee[_ngcontent-%COMP%]:before{content:""}.fa-cny[_ngcontent-%COMP%]:before, .fa-jpy[_ngcontent-%COMP%]:before, .fa-rmb[_ngcontent-%COMP%]:before, .fa-yen[_ngcontent-%COMP%]:before{content:""}.fa-rouble[_ngcontent-%COMP%]:before, .fa-rub[_ngcontent-%COMP%]:before, .fa-ruble[_ngcontent-%COMP%]:before{content:""}.fa-krw[_ngcontent-%COMP%]:before, .fa-won[_ngcontent-%COMP%]:before{content:""}.fa-bitcoin[_ngcontent-%COMP%]:before, .fa-btc[_ngcontent-%COMP%]:before{content:""}.fa-file[_ngcontent-%COMP%]:before{content:""}.fa-file-text[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-asc[_ngcontent-%COMP%]:before, .fa-sort-alpha-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-desc[_ngcontent-%COMP%]:before, .fa-sort-alpha-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-asc[_ngcontent-%COMP%]:before, .fa-sort-amount-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-desc[_ngcontent-%COMP%]:before, .fa-sort-amount-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-asc[_ngcontent-%COMP%]:before, .fa-sort-numeric-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-desc[_ngcontent-%COMP%]:before, .fa-sort-numeric-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-down[_ngcontent-%COMP%]:before{content:""}.fa-youtube-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube[_ngcontent-%COMP%]:before{content:""}.fa-xing[_ngcontent-%COMP%]:before{content:""}.fa-xing-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube-play[_ngcontent-%COMP%]:before{content:""}.fa-dropbox[_ngcontent-%COMP%]:before{content:""}.fa-stack-overflow[_ngcontent-%COMP%]:before{content:""}.fa-instagram[_ngcontent-%COMP%]:before{content:""}.fa-flickr[_ngcontent-%COMP%]:before{content:""}.fa-adn[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket-square[_ngcontent-%COMP%]:before{content:""}.fa-tumblr[_ngcontent-%COMP%]:before{content:""}.fa-tumblr-square[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-apple[_ngcontent-%COMP%]:before{content:""}.fa-windows[_ngcontent-%COMP%]:before{content:""}.fa-android[_ngcontent-%COMP%]:before{content:""}.fa-linux[_ngcontent-%COMP%]:before{content:""}.fa-dribbble[_ngcontent-%COMP%]:before{content:""}.fa-skype[_ngcontent-%COMP%]:before{content:""}.fa-foursquare[_ngcontent-%COMP%]:before{content:""}.fa-trello[_ngcontent-%COMP%]:before{content:""}.fa-female[_ngcontent-%COMP%]:before{content:""}.fa-male[_ngcontent-%COMP%]:before{content:""}.fa-gittip[_ngcontent-%COMP%]:before, .fa-gratipay[_ngcontent-%COMP%]:before{content:""}.fa-sun-o[_ngcontent-%COMP%]:before{content:""}.fa-moon-o[_ngcontent-%COMP%]:before{content:""}.fa-archive[_ngcontent-%COMP%]:before{content:""}.fa-bug[_ngcontent-%COMP%]:before{content:""}.fa-vk[_ngcontent-%COMP%]:before{content:""}.fa-weibo[_ngcontent-%COMP%]:before{content:""}.fa-renren[_ngcontent-%COMP%]:before{content:""}.fa-pagelines[_ngcontent-%COMP%]:before{content:""}.fa-stack-exchange[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-left[_ngcontent-%COMP%]:before, .fa-toggle-left[_ngcontent-%COMP%]:before{content:""}.fa-dot-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-square[_ngcontent-%COMP%]:before{content:""}.fa-try[_ngcontent-%COMP%]:before, .fa-turkish-lira[_ngcontent-%COMP%]:before{content:""}.fa-plus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-space-shuttle[_ngcontent-%COMP%]:before{content:""}.fa-slack[_ngcontent-%COMP%]:before{content:""}.fa-envelope-square[_ngcontent-%COMP%]:before{content:""}.fa-wordpress[_ngcontent-%COMP%]:before{content:""}.fa-openid[_ngcontent-%COMP%]:before{content:""}.fa-bank[_ngcontent-%COMP%]:before, .fa-institution[_ngcontent-%COMP%]:before, .fa-university[_ngcontent-%COMP%]:before{content:""}.fa-graduation-cap[_ngcontent-%COMP%]:before, .fa-mortar-board[_ngcontent-%COMP%]:before{content:""}.fa-yahoo[_ngcontent-%COMP%]:before{content:""}.fa-google[_ngcontent-%COMP%]:before{content:""}.fa-reddit[_ngcontent-%COMP%]:before{content:""}.fa-reddit-square[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon-circle[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon[_ngcontent-%COMP%]:before{content:""}.fa-delicious[_ngcontent-%COMP%]:before{content:""}.fa-digg[_ngcontent-%COMP%]:before{content:""}.fa-drupal[_ngcontent-%COMP%]:before{content:""}.fa-joomla[_ngcontent-%COMP%]:before{content:""}.fa-language[_ngcontent-%COMP%]:before{content:""}.fa-fax[_ngcontent-%COMP%]:before{content:""}.fa-building[_ngcontent-%COMP%]:before{content:""}.fa-child[_ngcontent-%COMP%]:before{content:""}.fa-paw[_ngcontent-%COMP%]:before{content:""}.fa-spoon[_ngcontent-%COMP%]:before, .fa-utensil-spoon[_ngcontent-%COMP%]:before{content:""}.fa-cube[_ngcontent-%COMP%]:before{content:""}.fa-cubes[_ngcontent-%COMP%]:before{content:""}.fa-behance[_ngcontent-%COMP%]:before{content:""}.fa-behance-square[_ngcontent-%COMP%]:before{content:""}.fa-steam[_ngcontent-%COMP%]:before{content:""}.fa-steam-square[_ngcontent-%COMP%]:before{content:""}.fa-recycle[_ngcontent-%COMP%]:before{content:""}.fa-automobile[_ngcontent-%COMP%]:before, .fa-car[_ngcontent-%COMP%]:before{content:""}.fa-cab[_ngcontent-%COMP%]:before, .fa-taxi[_ngcontent-%COMP%]:before{content:""}.fa-tree[_ngcontent-%COMP%]:before{content:""}.fa-spotify[_ngcontent-%COMP%]:before{content:""}.fa-deviantart[_ngcontent-%COMP%]:before{content:""}.fa-soundcloud[_ngcontent-%COMP%]:before{content:""}.fa-database[_ngcontent-%COMP%]:before{content:""}.fa-file-pdf-o[_ngcontent-%COMP%]:before{content:""}.fa-file-word-o[_ngcontent-%COMP%]:before{content:""}.fa-file-excel-o[_ngcontent-%COMP%]:before{content:""}.fa-file-powerpoint-o[_ngcontent-%COMP%]:before{content:""}.fa-file-image-o[_ngcontent-%COMP%]:before, .fa-file-photo-o[_ngcontent-%COMP%]:before, .fa-file-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-file-archive-o[_ngcontent-%COMP%]:before, .fa-file-zip-o[_ngcontent-%COMP%]:before{content:""}.fa-file-audio-o[_ngcontent-%COMP%]:before, .fa-file-sound-o[_ngcontent-%COMP%]:before{content:""}.fa-file-movie-o[_ngcontent-%COMP%]:before, .fa-file-video-o[_ngcontent-%COMP%]:before{content:""}.fa-file-code-o[_ngcontent-%COMP%]:before{content:""}.fa-vine[_ngcontent-%COMP%]:before{content:""}.fa-codepen[_ngcontent-%COMP%]:before{content:""}.fa-jsfiddle[_ngcontent-%COMP%]:before{content:""}.fa-life-bouy[_ngcontent-%COMP%]:before, .fa-life-buoy[_ngcontent-%COMP%]:before, .fa-life-ring[_ngcontent-%COMP%]:before, .fa-life-saver[_ngcontent-%COMP%]:before, .fa-support[_ngcontent-%COMP%]:before{content:""}.fa-circle-o-notch[_ngcontent-%COMP%]:before{content:""}.fa-ra[_ngcontent-%COMP%]:before, .fa-rebel[_ngcontent-%COMP%]:before, .fa-resistance[_ngcontent-%COMP%]:before{content:""}.fa-empire[_ngcontent-%COMP%]:before, .fa-ge[_ngcontent-%COMP%]:before{content:""}.fa-git-square[_ngcontent-%COMP%]:before{content:""}.fa-git[_ngcontent-%COMP%]:before{content:""}.fa-hacker-news[_ngcontent-%COMP%]:before, .fa-y-combinator-square[_ngcontent-%COMP%]:before, .fa-yc-square[_ngcontent-%COMP%]:before{content:""}.fa-tencent-weibo[_ngcontent-%COMP%]:before{content:""}.fa-qq[_ngcontent-%COMP%]:before{content:""}.fa-wechat[_ngcontent-%COMP%]:before, .fa-weixin[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane[_ngcontent-%COMP%]:before, .fa-send[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane-o[_ngcontent-%COMP%]:before, .fa-send-o[_ngcontent-%COMP%]:before{content:""}.fa-history[_ngcontent-%COMP%]:before{content:""}.fa-circle-thin[_ngcontent-%COMP%]:before{content:""}.fa-header[_ngcontent-%COMP%]:before, .fa-heading[_ngcontent-%COMP%]:before{content:""}.fa-paragraph[_ngcontent-%COMP%]:before{content:""}.fa-sliders[_ngcontent-%COMP%]:before{content:""}.fa-share-alt[_ngcontent-%COMP%]:before{content:""}.fa-share-alt-square[_ngcontent-%COMP%]:before{content:""}.fa-bomb[_ngcontent-%COMP%]:before{content:""}.fa-futbol-o[_ngcontent-%COMP%]:before, .fa-soccer-ball-o[_ngcontent-%COMP%]:before{content:""}.fa-tty[_ngcontent-%COMP%]:before{content:""}.fa-binoculars[_ngcontent-%COMP%]:before{content:""}.fa-plug[_ngcontent-%COMP%]:before{content:""}.fa-slideshare[_ngcontent-%COMP%]:before{content:""}.fa-twitch[_ngcontent-%COMP%]:before{content:""}.fa-yelp[_ngcontent-%COMP%]:before{content:""}.fa-newspaper-o[_ngcontent-%COMP%]:before{content:""}.fa-wifi[_ngcontent-%COMP%]:before{content:""}.fa-calculator[_ngcontent-%COMP%]:before{content:""}.fa-paypal[_ngcontent-%COMP%]:before{content:""}.fa-google-wallet[_ngcontent-%COMP%]:before{content:""}.fa-cc-visa[_ngcontent-%COMP%]:before{content:""}.fa-cc-mastercard[_ngcontent-%COMP%]:before{content:""}.fa-cc-discover[_ngcontent-%COMP%]:before{content:""}.fa-cc-amex[_ngcontent-%COMP%]:before{content:""}.fa-cc-paypal[_ngcontent-%COMP%]:before{content:""}.fa-cc-stripe[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash-o[_ngcontent-%COMP%]:before{content:""}.fa-trash[_ngcontent-%COMP%]:before{content:""}.fa-copyright[_ngcontent-%COMP%]:before{content:""}.fa-at[_ngcontent-%COMP%]:before{content:""}.fa-eyedropper[_ngcontent-%COMP%]:before{content:""}.fa-paint-brush[_ngcontent-%COMP%]:before{content:""}.fa-birthday-cake[_ngcontent-%COMP%]:before{content:""}.fa-area-chart[_ngcontent-%COMP%]:before{content:""}.fa-pie-chart[_ngcontent-%COMP%]:before{content:""}.fa-line-chart[_ngcontent-%COMP%]:before{content:""}.fa-lastfm[_ngcontent-%COMP%]:before{content:""}.fa-lastfm-square[_ngcontent-%COMP%]:before{content:""}.fa-toggle-off[_ngcontent-%COMP%]:before{content:""}.fa-toggle-on[_ngcontent-%COMP%]:before{content:""}.fa-bicycle[_ngcontent-%COMP%]:before{content:""}.fa-bus[_ngcontent-%COMP%]:before{content:""}.fa-ioxhost[_ngcontent-%COMP%]:before{content:""}.fa-angellist[_ngcontent-%COMP%]:before{content:""}.fa-cc[_ngcontent-%COMP%]:before, .fa-closed-captioning[_ngcontent-%COMP%]:before{content:""}.fa-ils[_ngcontent-%COMP%]:before, .fa-shekel[_ngcontent-%COMP%]:before, .fa-sheqel[_ngcontent-%COMP%]:before{content:""}.fa-meanpath[_ngcontent-%COMP%]:before{content:""}.fa-buysellads[_ngcontent-%COMP%]:before{content:""}.fa-connectdevelop[_ngcontent-%COMP%]:before{content:""}.fa-dashcube[_ngcontent-%COMP%]:before{content:""}.fa-forumbee[_ngcontent-%COMP%]:before{content:""}.fa-leanpub[_ngcontent-%COMP%]:before{content:""}.fa-sellsy[_ngcontent-%COMP%]:before{content:""}.fa-shirtsinbulk[_ngcontent-%COMP%]:before{content:""}.fa-simplybuilt[_ngcontent-%COMP%]:before{content:""}.fa-skyatlas[_ngcontent-%COMP%]:before{content:""}.fa-cart-plus[_ngcontent-%COMP%]:before{content:""}.fa-cart-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-diamond[_ngcontent-%COMP%]:before, .fa-gem[_ngcontent-%COMP%]:before{content:""}.fa-ship[_ngcontent-%COMP%]:before{content:""}.fa-user-secret[_ngcontent-%COMP%]:before{content:""}.fa-motorcycle[_ngcontent-%COMP%]:before{content:""}.fa-street-view[_ngcontent-%COMP%]:before{content:""}.fa-heartbeat[_ngcontent-%COMP%]:before{content:""}.fa-venus[_ngcontent-%COMP%]:before{content:""}.fa-mars[_ngcontent-%COMP%]:before{content:""}.fa-mercury[_ngcontent-%COMP%]:before{content:""}.fa-intersex[_ngcontent-%COMP%]:before, .fa-transgender[_ngcontent-%COMP%]:before{content:""}.fa-transgender-alt[_ngcontent-%COMP%]:before{content:""}.fa-venus-double[_ngcontent-%COMP%]:before{content:""}.fa-mars-double[_ngcontent-%COMP%]:before{content:""}.fa-venus-mars[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-v[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-h[_ngcontent-%COMP%]:before{content:""}.fa-neuter[_ngcontent-%COMP%]:before{content:""}.fa-genderless[_ngcontent-%COMP%]:before{content:""}.fa-facebook-official[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-p[_ngcontent-%COMP%]:before{content:""}.fa-whatsapp[_ngcontent-%COMP%]:before{content:""}.fa-server[_ngcontent-%COMP%]:before{content:""}.fa-user-plus[_ngcontent-%COMP%]:before{content:""}.fa-user-times[_ngcontent-%COMP%]:before{content:""}.fa-bed[_ngcontent-%COMP%]:before, .fa-hotel[_ngcontent-%COMP%]:before{content:""}.fa-viacoin[_ngcontent-%COMP%]:before{content:""}.fa-train[_ngcontent-%COMP%]:before{content:""}.fa-subway[_ngcontent-%COMP%]:before{content:""}.fa-medium[_ngcontent-%COMP%]:before{content:""}.fa-medium-square[_ngcontent-%COMP%]:before{content:""}.fa-y-combinator[_ngcontent-%COMP%]:before, .fa-yc[_ngcontent-%COMP%]:before{content:""}.fa-optin-monster[_ngcontent-%COMP%]:before{content:""}.fa-opencart[_ngcontent-%COMP%]:before{content:""}.fa-expeditedssl[_ngcontent-%COMP%]:before{content:""}.fa-battery-4[_ngcontent-%COMP%]:before, .fa-battery-full[_ngcontent-%COMP%]:before, .fa-battery[_ngcontent-%COMP%]:before{content:""}.fa-battery-3[_ngcontent-%COMP%]:before, .fa-battery-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-battery-2[_ngcontent-%COMP%]:before, .fa-battery-half[_ngcontent-%COMP%]:before{content:""}.fa-battery-1[_ngcontent-%COMP%]:before, .fa-battery-quarter[_ngcontent-%COMP%]:before{content:""}.fa-battery-0[_ngcontent-%COMP%]:before, .fa-battery-empty[_ngcontent-%COMP%]:before{content:""}.fa-mouse-pointer[_ngcontent-%COMP%]:before{content:""}.fa-i-cursor[_ngcontent-%COMP%]:before{content:""}.fa-object-group[_ngcontent-%COMP%]:before{content:""}.fa-object-ungroup[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note-o[_ngcontent-%COMP%]:before{content:""}.fa-cc-jcb[_ngcontent-%COMP%]:before{content:""}.fa-cc-diners-club[_ngcontent-%COMP%]:before{content:""}.fa-clone[_ngcontent-%COMP%]:before{content:""}.fa-balance-scale[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-o[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-1[_ngcontent-%COMP%]:before, .fa-hourglass-start[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-2[_ngcontent-%COMP%]:before, .fa-hourglass-half[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-3[_ngcontent-%COMP%]:before, .fa-hourglass-end[_ngcontent-%COMP%]:before{content:""}.fa-hourglass[_ngcontent-%COMP%]:before{content:""}.fa-hand-grab-o[_ngcontent-%COMP%]:before, .fa-hand-rock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-paper-o[_ngcontent-%COMP%]:before, .fa-hand-stop-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-scissors-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-lizard-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-spock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-pointer-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-peace-o[_ngcontent-%COMP%]:before{content:""}.fa-trademark[_ngcontent-%COMP%]:before{content:""}.fa-registered[_ngcontent-%COMP%]:before{content:""}.fa-creative-commons[_ngcontent-%COMP%]:before{content:""}.fa-gg[_ngcontent-%COMP%]:before{content:""}.fa-gg-circle[_ngcontent-%COMP%]:before{content:""}.fa-tripadvisor[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki-square[_ngcontent-%COMP%]:before{content:""}.fa-get-pocket[_ngcontent-%COMP%]:before{content:""}.fa-wikipedia-w[_ngcontent-%COMP%]:before{content:""}.fa-safari[_ngcontent-%COMP%]:before{content:""}.fa-chrome[_ngcontent-%COMP%]:before{content:""}.fa-firefox[_ngcontent-%COMP%]:before{content:""}.fa-opera[_ngcontent-%COMP%]:before{content:""}.fa-internet-explorer[_ngcontent-%COMP%]:before{content:""}.fa-television[_ngcontent-%COMP%]:before, .fa-tv[_ngcontent-%COMP%]:before{content:""}.fa-contao[_ngcontent-%COMP%]:before{content:""}.fa-500px[_ngcontent-%COMP%]:before{content:""}.fa-amazon[_ngcontent-%COMP%]:before{content:""}.fa-calendar-plus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-minus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-times-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-check-o[_ngcontent-%COMP%]:before{content:""}.fa-industry[_ngcontent-%COMP%]:before{content:""}.fa-map-pin[_ngcontent-%COMP%]:before{content:""}.fa-map-signs[_ngcontent-%COMP%]:before{content:""}.fa-map-o[_ngcontent-%COMP%]:before{content:""}.fa-map[_ngcontent-%COMP%]:before{content:""}.fa-commenting[_ngcontent-%COMP%]:before{content:""}.fa-commenting-o[_ngcontent-%COMP%]:before{content:""}.fa-houzz[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-v[_ngcontent-%COMP%]:before, .fa-vimeo[_ngcontent-%COMP%]:before{content:""}.fa-black-tie[_ngcontent-%COMP%]:before{content:""}.fa-fonticons[_ngcontent-%COMP%]:before{content:""}.fa-reddit-alien[_ngcontent-%COMP%]:before{content:""}.fa-edge[_ngcontent-%COMP%]:before{content:""}.fa-credit-card-alt[_ngcontent-%COMP%]:before{content:""}.fa-codiepie[_ngcontent-%COMP%]:before{content:""}.fa-modx[_ngcontent-%COMP%]:before{content:""}.fa-fort-awesome[_ngcontent-%COMP%]:before{content:""}.fa-usb[_ngcontent-%COMP%]:before{content:""}.fa-product-hunt[_ngcontent-%COMP%]:before{content:""}.fa-mixcloud[_ngcontent-%COMP%]:before{content:""}.fa-scribd[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-shopping-bag[_ngcontent-%COMP%]:before{content:""}.fa-shopping-basket[_ngcontent-%COMP%]:before{content:""}.fa-hashtag[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth-b[_ngcontent-%COMP%]:before{content:""}.fa-percent[_ngcontent-%COMP%]:before{content:""}.fa-gitlab[_ngcontent-%COMP%]:before{content:""}.fa-wpbeginner[_ngcontent-%COMP%]:before{content:""}.fa-wpforms[_ngcontent-%COMP%]:before{content:""}.fa-envira[_ngcontent-%COMP%]:before{content:""}.fa-universal-access[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair-alt[_ngcontent-%COMP%]:before{content:""}.fa-question-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-blind[_ngcontent-%COMP%]:before{content:""}.fa-audio-description[_ngcontent-%COMP%]:before{content:""}.fa-phone-volume[_ngcontent-%COMP%]:before, .fa-volume-control-phone[_ngcontent-%COMP%]:before{content:""}.fa-braille[_ngcontent-%COMP%]:before{content:""}.fa-assistive-listening-systems[_ngcontent-%COMP%]:before{content:""}.fa-american-sign-language-interpreting[_ngcontent-%COMP%]:before, .fa-asl-interpreting[_ngcontent-%COMP%]:before{content:""}.fa-deaf[_ngcontent-%COMP%]:before, .fa-deafness[_ngcontent-%COMP%]:before, .fa-hard-of-hearing[_ngcontent-%COMP%]:before{content:""}.fa-glide[_ngcontent-%COMP%]:before{content:""}.fa-glide-g[_ngcontent-%COMP%]:before{content:""}.fa-sign-language[_ngcontent-%COMP%]:before, .fa-signing[_ngcontent-%COMP%]:before{content:""}.fa-low-vision[_ngcontent-%COMP%]:before{content:""}.fa-viadeo[_ngcontent-%COMP%]:before{content:""}.fa-viadeo-square[_ngcontent-%COMP%]:before{content:""}.fa-snapchat[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-ghost[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-square[_ngcontent-%COMP%]:before{content:""}.fa-first-order[_ngcontent-%COMP%]:before{content:""}.fa-yoast[_ngcontent-%COMP%]:before{content:""}.fa-themeisle[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-circle[_ngcontent-%COMP%]:before, .fa-google-plus-official[_ngcontent-%COMP%]:before{content:""}.fa-fa[_ngcontent-%COMP%]:before, .fa-font-awesome[_ngcontent-%COMP%]:before{content:""}.fa-handshake-o[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open-o[_ngcontent-%COMP%]:before{content:""}.fa-linode[_ngcontent-%COMP%]:before{content:""}.fa-address-book[_ngcontent-%COMP%]:before{content:""}.fa-address-book-o[_ngcontent-%COMP%]:before{content:""}.fa-address-card[_ngcontent-%COMP%]:before, .fa-vcard[_ngcontent-%COMP%]:before{content:""}.fa-address-card-o[_ngcontent-%COMP%]:before, .fa-vcard-o[_ngcontent-%COMP%]:before{content:""}.fa-user-circle[_ngcontent-%COMP%]:before{content:""}.fa-user-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-user-o[_ngcontent-%COMP%]:before{content:""}.fa-id-badge[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license[_ngcontent-%COMP%]:before, .fa-id-card[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license-o[_ngcontent-%COMP%]:before, .fa-id-card-o[_ngcontent-%COMP%]:before{content:""}.fa-quora[_ngcontent-%COMP%]:before{content:""}.fa-free-code-camp[_ngcontent-%COMP%]:before{content:""}.fa-telegram[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-4[_ngcontent-%COMP%]:before, .fa-thermometer-full[_ngcontent-%COMP%]:before, .fa-thermometer[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-3[_ngcontent-%COMP%]:before, .fa-thermometer-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-2[_ngcontent-%COMP%]:before, .fa-thermometer-half[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-1[_ngcontent-%COMP%]:before, .fa-thermometer-quarter[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-0[_ngcontent-%COMP%]:before, .fa-thermometer-empty[_ngcontent-%COMP%]:before{content:""}.fa-shower[_ngcontent-%COMP%]:before{content:""}.fa-bath[_ngcontent-%COMP%]:before, .fa-bathtub[_ngcontent-%COMP%]:before, .fa-s15[_ngcontent-%COMP%]:before{content:""}.fa-podcast[_ngcontent-%COMP%]:before{content:""}.fa-window-maximize[_ngcontent-%COMP%]:before{content:""}.fa-window-minimize[_ngcontent-%COMP%]:before{content:""}.fa-window-restore[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle[_ngcontent-%COMP%]:before, .fa-window-close[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle-o[_ngcontent-%COMP%]:before, .fa-window-close-o[_ngcontent-%COMP%]:before{content:""}.fa-bandcamp[_ngcontent-%COMP%]:before{content:""}.fa-grav[_ngcontent-%COMP%]:before{content:""}.fa-etsy[_ngcontent-%COMP%]:before{content:""}.fa-imdb[_ngcontent-%COMP%]:before{content:""}.fa-ravelry[_ngcontent-%COMP%]:before{content:""}.fa-eercast[_ngcontent-%COMP%]:before{content:""}.fa-microchip[_ngcontent-%COMP%]:before{content:""}.fa-snowflake-o[_ngcontent-%COMP%]:before{content:""}.fa-superpowers[_ngcontent-%COMP%]:before{content:""}.fa-wpexplorer[_ngcontent-%COMP%]:before{content:""}.fa-meetup[_ngcontent-%COMP%]:before{content:""}.fa-mastodon[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-alt[_ngcontent-%COMP%]:before{content:""}.fa-fork-awesome[_ngcontent-%COMP%]:before, .fa-fork-circle[_ngcontent-%COMP%]:before{content:""}.fa-peertube[_ngcontent-%COMP%]:before{content:""}.fa-diaspora[_ngcontent-%COMP%]:before{content:""}.fa-friendica[_ngcontent-%COMP%]:before{content:""}.fa-gnu-social[_ngcontent-%COMP%]:before{content:""}.fa-liberapay-square[_ngcontent-%COMP%]:before{content:""}.fa-liberapay[_ngcontent-%COMP%]:before{content:""}.fa-scuttlebutt[_ngcontent-%COMP%]:before, .fa-ssb[_ngcontent-%COMP%]:before{content:""}.fa-hubzilla[_ngcontent-%COMP%]:before{content:""}.fa-social-home[_ngcontent-%COMP%]:before{content:""}.fa-artstation[_ngcontent-%COMP%]:before{content:""}.fa-discord[_ngcontent-%COMP%]:before{content:""}.fa-discord-alt[_ngcontent-%COMP%]:before{content:""}.fa-patreon[_ngcontent-%COMP%]:before{content:""}.fa-snowdrift[_ngcontent-%COMP%]:before{content:""}.fa-activitypub[_ngcontent-%COMP%]:before{content:""}.fa-ethereum[_ngcontent-%COMP%]:before{content:""}.fa-keybase[_ngcontent-%COMP%]:before{content:""}.fa-shaarli[_ngcontent-%COMP%]:before{content:""}.fa-shaarli-o[_ngcontent-%COMP%]:before{content:""}.fa-cut-key[_ngcontent-%COMP%]:before, .fa-key-modern[_ngcontent-%COMP%]:before{content:""}.fa-xmpp[_ngcontent-%COMP%]:before{content:""}.fa-archive-org[_ngcontent-%COMP%]:before{content:""}.fa-freedombox[_ngcontent-%COMP%]:before{content:""}.fa-facebook-messenger[_ngcontent-%COMP%]:before{content:""}.fa-debian[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-square[_ngcontent-%COMP%]:before{content:""}.fa-tipeee[_ngcontent-%COMP%]:before{content:""}.fa-react[_ngcontent-%COMP%]:before{content:""}.fa-dogmazic[_ngcontent-%COMP%]:before{content:""}.fa-zotero[_ngcontent-%COMP%]:before{content:""}.fa-nodejs[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud-square[_ngcontent-%COMP%]:before{content:""}.fa-hackaday[_ngcontent-%COMP%]:before{content:""}.fa-laravel[_ngcontent-%COMP%]:before{content:""}.fa-signalapp[_ngcontent-%COMP%]:before{content:""}.fa-gnupg[_ngcontent-%COMP%]:before{content:""}.fa-php[_ngcontent-%COMP%]:before{content:""}.fa-ffmpeg[_ngcontent-%COMP%]:before{content:""}.fa-joplin[_ngcontent-%COMP%]:before{content:""}.fa-syncthing[_ngcontent-%COMP%]:before{content:""}.fa-inkscape[_ngcontent-%COMP%]:before{content:""}.fa-matrix-org[_ngcontent-%COMP%]:before{content:""}.fa-pixelfed[_ngcontent-%COMP%]:before{content:""}.fa-bootstrap[_ngcontent-%COMP%]:before{content:""}.fa-dev-to[_ngcontent-%COMP%]:before{content:""}.fa-hashnode[_ngcontent-%COMP%]:before{content:""}.fa-jirafeau[_ngcontent-%COMP%]:before{content:""}.fa-emby[_ngcontent-%COMP%]:before{content:""}.fa-wikidata[_ngcontent-%COMP%]:before{content:""}.fa-gimp[_ngcontent-%COMP%]:before{content:""}.fa-c[_ngcontent-%COMP%]:before{content:""}.fa-digitalocean[_ngcontent-%COMP%]:before{content:""}.fa-att[_ngcontent-%COMP%]:before{content:""}.fa-gitea[_ngcontent-%COMP%]:before{content:""}.fa-file-epub[_ngcontent-%COMP%]:before{content:""}.fa-python[_ngcontent-%COMP%]:before{content:""}.fa-archlinux[_ngcontent-%COMP%]:before{content:""}.fa-pleroma[_ngcontent-%COMP%]:before{content:""}.fa-unsplash[_ngcontent-%COMP%]:before{content:""}.fa-hackster[_ngcontent-%COMP%]:before{content:""}.fa-spell-check[_ngcontent-%COMP%]:before{content:""}.fa-moon[_ngcontent-%COMP%]:before{content:""}.fa-sun[_ngcontent-%COMP%]:before{content:""}.fa-f-droid[_ngcontent-%COMP%]:before{content:""}.fa-biometric[_ngcontent-%COMP%]:before{content:""}.sr-only[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable[_ngcontent-%COMP%]:active, .sr-only-focusable[_ngcontent-%COMP%]:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status[_ngcontent-%COMP%]   .popover-body[_ngcontent-%COMP%]{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:83vw}}.info-card-content-clickable[_ngcontent-%COMP%]{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable[_ngcontent-%COMP%]:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]{color:initial}.custom-control-input.is-valid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#adb5bd}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}html[_ngcontent-%COMP%]{background-color:#fff}body[_ngcontent-%COMP%], html[_ngcontent-%COMP%]{width:100%;height:100%;font-size:12px}h1[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:2em}h2[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:1.833em}h3[_ngcontent-%COMP%]{display:block;font-size:1.583em;font-weight:400}h4[_ngcontent-%COMP%]{font-size:1.5em;line-height:normal}option[_ngcontent-%COMP%]{font-weight:400;font-style:normal}.full-height[_ngcontent-%COMP%]{height:100vh}.full-width[_ngcontent-%COMP%]{width:100vw}.vertical-align[_ngcontent-%COMP%]{display:flex;align-items:center}.horizontal-align[_ngcontent-%COMP%]{display:flex;justify-content:center}.loading[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}.margin-right-md[_ngcontent-%COMP%]{margin-right:15px}.no-border[_ngcontent-%COMP%]{border:0;box-shadow:0 0 0!important}.italic[_ngcontent-%COMP%]{font-style:italic}.bold[_ngcontent-%COMP%]{font-weight:700}.text-pre[_ngcontent-%COMP%]{white-space:pre-wrap}.btn-light[_ngcontent-%COMP%]{background-color:#fff!important;border-color:#ced4da!important}.btn-light[_ngcontent-%COMP%]:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus[_ngcontent-%COMP%], .btn.active[_ngcontent-%COMP%]:focus, .btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:active.focus, .btn[_ngcontent-%COMP%]:active:focus, .btn[_ngcontent-%COMP%]:focus{outline:0}.btn-primary[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{color:#2b99a8;background-color:#eee}.btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%], .cd-datatable-actions[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]   i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%]{min-width:50px;z-index:999999}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#474544;cursor:pointer}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#eee}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background-color:#21747f}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li.dropdown-divider[_ngcontent-%COMP%]{cursor:auto}.container[_ngcontent-%COMP%], .container-fluid[_ngcontent-%COMP%]{padding-left:30px!important;padding-right:30px!important}.row[_ngcontent-%COMP%]{margin-left:-30px;margin-right:-30px}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{padding-left:30px;padding-right:30px}tags-input[_ngcontent-%COMP%]   .tags[_ngcontent-%COMP%]{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], uib-accordion[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{font-size:14px!important}.card-header[_ngcontent-%COMP%]{font-size:1.3em}.card-body[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]:first-child{margin-top:0}.disabled[_ngcontent-%COMP%]{pointer-events:none}.clickable[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{cursor:pointer}[_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%], [_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%]:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript[_ngcontent-%COMP%]{padding-top:5em}.noscript[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#777}.required[_ngcontent-%COMP%]::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer[_ngcontent-%COMP%]{width:100%;display:flex}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{display:table-cell}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]{padding-top:7px}.card-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child), .modal-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child){margin-left:5px}.nav-tabs[_ngcontent-%COMP%]{margin-bottom:15px}.ceph-icon[_ngcontent-%COMP%]{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon[_ngcontent-%COMP%]{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon[_ngcontent-%COMP%]{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message[_ngcontent-%COMP%]   .custom-icon[_ngcontent-%COMP%]{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper[_ngcontent-%COMP%]{background:rgba(0,0,0,.7)!important}.tooltip-wide[_ngcontent-%COMP%]   .tooltip-inner[_ngcontent-%COMP%]{width:400px}.tooltip-inner[_ngcontent-%COMP%]{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%]{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{text-align:right}}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{font-weight:700}cd-submit-button[_ngcontent-%COMP%]{background-color:transparent!important}bfv-messages[_ngcontent-%COMP%]{display:none}.form-group.has-error[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}.password-strength-level[_ngcontent-%COMP%]{flex:100%;margin-top:2px}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{border-radius:.25rem;height:13px}.password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{width:25%;background:red}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%]{width:50%;background:#ffc200}.password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%]{width:75%;background:#0b0}.password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%]{width:100%;background:#245e03}.badge-hdd[_ngcontent-%COMP%]{color:#fff;background-color:#90949c}.badge-ssd[_ngcontent-%COMP%]{color:#fff;background-color:#288cea}.badge-tab[_ngcontent-%COMP%]{color:#555;background-color:#f3f3f3}tree-root[_ngcontent-%COMP%]   tree-viewport[_ngcontent-%COMP%]{min-height:1em}.dataTables_wrapper[_ngcontent-%COMP%]{margin-bottom:25px}.dataTables_wrapper[_ngcontent-%COMP%]   .separator[_ngcontent-%COMP%]{height:30px;border-left:1px solid rgba(0,0,0,.09);padding-left:5px;margin-left:5px;display:inline-block;vertical-align:middle}.dataTables_wrapper[_ngcontent-%COMP%]   .widget-toolbar[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding:0 8px}.dataTables_wrapper[_ngcontent-%COMP%]   .widget-toolbar[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{padding-left:0}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{white-space:nowrap}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]{width:100%;margin-bottom:0;padding-left:20px;padding-right:20px;cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > label[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{cursor:pointer}.dataTables_wrapper[_ngcontent-%COMP%]   .dataTables_length[_ngcontent-%COMP%] > input[_ngcontent-%COMP%]{line-height:25px;text-align:right}.dataTables_header[_ngcontent-%COMP%]{background-color:#f5f5f5;border:1px solid #d1d1d1;border-bottom:none;padding:5px;position:relative}.dataTables_header[_ngcontent-%COMP%]   .cd-datatable-actions[_ngcontent-%COMP%]{float:left}.dataTables_header[_ngcontent-%COMP%]     .table-filters{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px}.dataTables_header[_ngcontent-%COMP%]     .table-filters label{margin-right:4px}.dataTables_header[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{padding-left:8px}.dataTables_header[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{float:right;border-left:1px solid rgba(0,0,0,.09);padding-left:8px;padding-right:8px;width:40%;max-width:250px}.dataTables_header[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%], .dataTables_header[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{height:30px}.dataTables_header[_ngcontent-%COMP%]   .input-group.dataTables_paginate[_ngcontent-%COMP%]{width:8%;min-width:85px;padding-right:8px}.dataTables_header[_ngcontent-%COMP%]   .filter-chips[_ngcontent-%COMP%]{float:right;padding:0 8px}  .cd-datatable{border:1px solid #d1d1d1;margin-bottom:0;max-width:none!important}  .cd-datatable .progress-linear{display:block;position:relative;width:100%;height:5px;padding:0;margin:0}  .cd-datatable .progress-linear .container{background-color:#afd9ee}  .cd-datatable .progress-linear .container .bar{left:0;height:100%;width:100%;position:absolute;overflow:hidden;background-color:#afd9ee}  .cd-datatable .progress-linear .container .bar:before{display:block;position:absolute;content:"";left:-200px;width:200px;height:100%;background-color:#2b99a8;animation:3s linear infinite progress-loading}  .cd-datatable .datatable-header{background-clip:padding-box;background-color:#f5f5f5;background-image:linear-gradient(to bottom,#f5f5f5 0,#ededed 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#fffafafa", endColorstr="#ffededed", GradientType=0)}  .cd-datatable .datatable-header .sort-asc,   .cd-datatable .datatable-header .sort-desc{color:#2b99a8}  .cd-datatable .datatable-header .datatable-header-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;text-align:left;font-weight:700}  .cd-datatable .datatable-header .datatable-header-cell .datatable-header-cell-label:after{font-family:ForkAwesome;font-weight:400;height:9px;left:10px;line-height:12px;position:relative;vertical-align:baseline;width:12px}  .cd-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-asc .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell.sortable.sort-active.sort-desc .datatable-header-cell-label:after{content:" "}  .cd-datatable .datatable-header .datatable-header-cell:first-child{border-left:none}  .cd-datatable .datatable-body{margin-bottom:-6px}  .cd-datatable .datatable-body .empty-row{background-color:#fff3cd;text-align:center;font-weight:700;font-style:italic;padding-top:5px;padding-bottom:5px}  .cd-datatable .datatable-body .datatable-body-row.clickable:hover .datatable-row-group{background-color:#eee;transition-property:background;transition-duration:.3s;transition-timing-function:linear}  .cd-datatable .datatable-body .datatable-body-row.datatable-row-even{background-color:#fff}  .cd-datatable .datatable-body .datatable-body-row.datatable-row-odd{background-color:#f5f5f5}  .cd-datatable .datatable-body .datatable-body-row.active,   .cd-datatable .datatable-body .datatable-body-row.active:hover{background-color:#d1ecf1}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell{padding:5px;border:none;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell:first-child{border-left:none}  .cd-datatable .datatable-body .datatable-body-row .datatable-body-cell .datatable-body-cell-label{display:block}  .cd-datatable .datatable-footer .page-count,   .cd-datatable .datatable-footer .selected-count{font-style:italic;padding-left:5px}  .cd-datatable .cd-datatable-checkbox{text-align:center}@keyframes progress-loading{from{left:-200px;width:15%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}']],data:{}});function se(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,o.a,[i.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Failed to load data."]))],(function(t,e){t(e,1,0,"error")}),null)}function ce(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","cd-datatable-actions"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,null)}function le(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"a",[["class","dropdown-item"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onSelectFilter(t.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.column.name)}))}function de(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-1"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,le)),a["ɵdid"](2,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.columnFilters)}),null)}function ue(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),null)}function ge(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"a",[["class","dropdown-item"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(r.onChangeFilter(r.selectedFilter,t.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵted"](2,null,[""," "])),(t()(),a["ɵand"](16777216,null,null,1,null,ue)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,void 0!==n.selectedFilter.value&&n.selectedFilter.value.raw===e.context.$implicit.raw)}),(function(t,e){t(e,2,0,e.context.$implicit.formatted)}))}function fe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-1"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ge)),a["ɵdid"](2,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.selectedFilter.options)}),null)}function pe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,20,"div",[["class","btn-group widget-toolbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,16777216,null,null,11,"div",[["class","btn-group tc_filter_name"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,c.f,c.f,[]),a["ɵdid"](3,212992,null,0,c.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,l.a,c.a,c.f],null,null),(t()(),a["ɵeld"](4,0,null,null,6,"a",[["class","btn btn-light dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,5).onClick()&&r),r}),null,null)),a["ɵdid"](5,147456,null,0,c.g,[a.ChangeDetectorRef,c.c,a.ElementRef,a.Renderer2,c.f],null,null),(t()(),a["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](8,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](9,2),(t()(),a["ɵted"](10,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,de)),a["ɵdid"](12,16384,null,0,c.d,[c.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["ɵeld"](13,16777216,null,null,7,"div",[["class","btn-group tc_filter_option"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,c.f,c.f,[]),a["ɵdid"](15,212992,null,0,c.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,l.a,c.a,c.f],null,null),(t()(),a["ɵeld"](16,0,null,null,2,"a",[["class","btn btn-light dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""]],[[2,"disabled",null],[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,17).onClick()&&r),r}),null,null)),a["ɵdid"](17,147456,null,0,c.g,[a.ChangeDetectorRef,c.c,a.ElementRef,a.Renderer2,c.f],null,null),(t()(),a["ɵted"](18,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,fe)),a["ɵdid"](20,16384,null,0,c.d,[c.f,a.ViewContainerRef,a.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,3,0);var a=t(e,9,0,n.icons.large,n.icons.filter);t(e,8,0,a),t(e,15,0)}),(function(t,e){var n=e.component;t(e,1,0,a["ɵnov"](e,3).dropup,a["ɵnov"](e,3).isOpen,a["ɵnov"](e,3).isOpen&&a["ɵnov"](e,3).isBs4),t(e,4,0,!0,a["ɵnov"](e,5).isDisabled,a["ɵnov"](e,5).isOpen),t(e,10,0,n.selectedFilter.column.name),t(e,13,0,a["ɵnov"](e,15).dropup,a["ɵnov"](e,15).isOpen,a["ɵnov"](e,15).isOpen&&a["ɵnov"](e,15).isBs4),t(e,16,0,0===n.selectedFilter.options.length,!0,a["ɵnov"](e,17).isDisabled,a["ɵnov"](e,17).isOpen),t(e,18,0,n.selectedFilter.value?n.selectedFilter.value.formatted:"Any")}))}function me(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"div",[["class","input-group search"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"span",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,4,"span",[["class","input-group-text"]],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](5,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](6,1),(t()(),a["ɵeld"](7,0,null,null,5,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0,o=t.component;return"input"===e&&(r=!1!==a["ɵnov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,8)._compositionEnd(n.target.value)&&r),"ngModelChange"===e&&(r=!1!==(o.search=n)&&r),"keyup"===e&&(r=!1!==o.updateFilter()&&r),r}),null,null)),a["ɵdid"](8,16384,null,0,d.e,[a.Renderer2,a.ElementRef,[2,d.b]],null,null),a["ɵprd"](1024,null,d.p,(function(t){return[t]}),[d.e]),a["ɵdid"](10,671744,null,0,d.u,[[8,null],[8,null],[8,null],[6,d.p]],{model:[0,"model"]},{update:"ngModelChange"}),a["ɵprd"](2048,null,d.q,null,[d.u]),a["ɵdid"](12,16384,null,0,d.r,[[4,d.q]],null,null),(t()(),a["ɵeld"](13,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),a["ɵeld"](14,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onClearSearch()&&a),a}),null,null)),(t()(),a["ɵeld"](15,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null))],(function(t,e){var n=e.component,a=t(e,6,0,n.icons.search);t(e,5,0,a),t(e,10,0,n.search)}),(function(t,e){var n=e.component;t(e,7,0,a["ɵnov"](e,12).ngClassUntouched,a["ɵnov"](e,12).ngClassTouched,a["ɵnov"](e,12).ngClassPristine,a["ɵnov"](e,12).ngClassDirty,a["ɵnov"](e,12).ngClassValid,a["ɵnov"](e,12).ngClassInvalid,a["ɵnov"](e,12).ngClassPending),t(e,15,0,a["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,""))}))}function he(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"li",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,0,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"name",0],[8,"id",0],[8,"checked",0]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==t.component.toggleColumn(n)&&a),a}),null,null)),(t()(),a["ɵeld"](3,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),a["ɵted"](4,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.prop,e.context.$implicit.prop,!e.context.$implicit.isHidden),t(e,3,0,e.context.$implicit.prop),t(e,4,0,e.context.$implicit.name)}))}function be(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu px-3"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,he)),a["ɵdid"](2,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.columns)}),null)}function ye(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["class","widget-toolbar tc_refreshBtn"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshBtn()&&a),a}),null,null)),(t()(),a["ɵeld"](2,0,null,null,3,"i",[],[[2,"fa-spin",null]],null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](5,2)],(function(t,e){var n=e.component,a=t(e,5,0,n.icons.large,n.icons.refresh);t(e,4,0,a)}),(function(t,e){var n=e.component;t(e,2,0,n.updating||n.loadingIndicator)}))}function _e(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,23,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","cd-datatable-actions"]],null,null,null,null,null)),a["ɵncd"](null,1),a["ɵncd"](null,2),(t()(),a["ɵand"](16777216,null,null,1,null,pe)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,me)),a["ɵdid"](7,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](8,0,null,null,1,"div",[["class","input-group dataTables_paginate"]],null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,0,"input",[["class","form-control"],["max","9999"],["min","1"],["type","number"]],[[8,"value",0]],[[null,"click"],[null,"keyup"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.setLimit(n)&&a),"keyup"===e&&(a=!1!==r.setLimit(n)&&a),"blur"===e&&(a=!1!==r.setLimit(n)&&a),a}),null,null)),(t()(),a["ɵeld"](10,0,null,null,11,"div",[["class","widget-toolbar"]],null,null,null,null,null)),(t()(),a["ɵeld"](11,16777216,null,null,10,"div",[["class","dropdown tc_menuitem tc_menuitem_cluster"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,c.f,c.f,[]),a["ɵdid"](13,212992,null,0,c.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,l.a,c.a,c.f],{autoClose:[0,"autoClose"]},null),(t()(),a["ɵeld"](14,0,null,null,5,"a",[["class","btn btn-light dropdown-toggle tc_columnBtn"],["data-toggle","dropdown"],["dropdownToggle",""]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,15).onClick()&&r),r}),null,null)),a["ɵdid"](15,147456,null,0,c.g,[a.ChangeDetectorRef,c.c,a.ElementRef,a.Renderer2,c.f],null,null),(t()(),a["ɵeld"](16,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](18,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](19,2),(t()(),a["ɵand"](16777216,null,null,1,null,be)),a["ɵdid"](21,16384,null,0,c.d,[c.f,a.ViewContainerRef,a.TemplateRef],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,ye)),a["ɵdid"](23,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,0!==n.columnFilters.length),t(e,7,0,n.searchField),t(e,13,0,!1);var a=t(e,19,0,n.icons.large,n.icons.table);t(e,18,0,a),t(e,23,0,n.fetchData.observers.length>0)}),(function(t,e){t(e,9,0,e.component.userConfig.limit),t(e,11,0,a["ɵnov"](e,13).dropup,a["ɵnov"](e,13).isOpen,a["ɵnov"](e,13).isOpen&&a["ɵnov"](e,13).isBs4),t(e,14,0,!0,a["ɵnov"](e,15).isDisabled,a["ɵnov"](e,15).isOpen)}))}function Oe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"span",[["class","badge badge-info mr-2"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[["class","mr-2"]],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",": ",""])),(t()(),a["ɵeld"](3,0,null,null,4,"a",[["class","badge-remove"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onChangeFilter(t.parent.context.$implicit),a=!1),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](6,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](7,1)],(function(t,e){var n=t(e,7,0,e.component.icons.destroy);t(e,6,0,n)}),(function(t,e){t(e,2,0,e.parent.context.$implicit.column.name,e.parent.context.$implicit.value.formatted)}))}function ve(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Oe)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit.value)}),null)}function Ce(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"div",[["class","dataTables_header clearfix"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","filter-chips"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ve)),a["ɵdid"](3,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](4,0,null,null,2,"a",[["class","tc_clearSelections"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.onClearFilters(),a=!1),a}),null,null)),(t()(),a["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Clear filters"]))],(function(t,e){t(e,3,0,e.component.columnFilters)}),null)}function Pe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "])),(t()(),a["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["selected"])),(t()(),a["ɵted"](-1,null,[" / "]))],null,(function(t,e){t(e,1,0,e.parent.context.selectedCount)}))}function Me(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "])),(t()(),a["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["found"])),(t()(),a["ɵted"](-1,null,[" / "]))],null,(function(t,e){t(e,1,0,e.parent.context.rowCount)}))}function xe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[["class","page-count"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,Pe)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Me)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](5,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,[" "," "])),(t()(),a["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["total"])),(t()(),a["ɵeld"](9,0,null,null,1,"datatable-pager",[["class","datatable-pager"]],[[8,"hidden",0]],[[null,"change"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t.parent,25).onFooterPage(n)&&r),r}),p,g)),a["ɵdid"](10,49152,null,0,u.DataTablePagerComponent,[],{pagerLeftArrowIcon:[0,"pagerLeftArrowIcon"],pagerRightArrowIcon:[1,"pagerRightArrowIcon"],pagerPreviousIcon:[2,"pagerPreviousIcon"],pagerNextIcon:[3,"pagerNextIcon"],size:[4,"size"],count:[5,"count"],page:[6,"page"]},{change:"change"})],(function(t,e){var n=e.component;t(e,2,0,n.selectionType),t(e,4,0,e.context.rowCount!=(null==n.data?null:n.data.length)),t(e,10,0,n.paginationClasses.pagerLeftArrow,n.paginationClasses.pagerRightArrow,n.paginationClasses.pagerPrevious,n.paginationClasses.pagerNext,e.context.pageSize,e.context.rowCount,e.context.curPage)}),(function(t,e){var n=e.component;t(e,6,0,(null==n.data?null:n.data.length)||0),t(e,9,0,!(e.context.rowCount/e.context.pageSize>1))}))}function we(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.value)}))}function Te(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-sparkline",[],null,null,null,m.b,m.a)),a["ɵdid"](1,638976,null,0,h.a,[b.a],{data:[0,"data"],isBinary:[1,"isBinary"]},null)],(function(t,e){t(e,1,0,e.context.value,e.context.row.cdIsBinary)}),null)}function Se(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),r}),null,null)),a["ɵdid"](1,671744,null,0,y.p,[y.m,y.a,s.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),a["ɵpad"](2,1),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){var n=e.context.row.cdParams,a=t(e,2,0,e.context.row.cdLink);t(e,1,0,n,a)}),(function(t,e){t(e,0,0,a["ɵnov"](e,1).target,a["ɵnov"](e,1).href),t(e,3,0,e.context.value)}))}function ke(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"i",[],[[8,"hidden",0]],null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1),a["ɵppd"](4,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),(function(t,e){var n=!a["ɵunv"](e,0,0,t(e,4,0,a["ɵnov"](e.parent,0),e.context.value));t(e,0,0,n)}))}function Ie(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," /s\n"]))],null,(function(t,e){t(e,0,0,e.context.value)}))}function Ne(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,2)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function Re(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","text-muted italic"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["(",")"]))],null,(function(t,e){t(e,1,0,e.parent.context.row.cdExecuting)}))}function Ae(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,Ne)),a["ɵdid"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](2,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,Re)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.row.cdExecuting),t(e,4,0,e.context.row.cdExecuting)}),(function(t,e){t(e,2,0,e.context.value)}))}function Ee(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"",e.component.useCustomClass(e.context.value),"")),t(e,1,0,e.context.value)}))}function De(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[["class","badge"]],null,null,null,null,null)),a["ɵprd"](512,null,s["ɵNgClassImpl"],s["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,s.NgClass,[s["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,"badge",null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.map&&null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&null!=e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit]&&e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].class?e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].class:null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.class?e.parent.parent.context.column.customTemplateConfig.class:"badge-primary")}),(function(t,e){t(e,3,0,null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.map&&null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&null!=e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit]&&e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].value?e.parent.parent.context.column.customTemplateConfig.map[e.parent.context.$implicit].value:null!=e.parent.parent.context.column&&null!=e.parent.parent.context.column.customTemplateConfig&&e.parent.parent.context.column.customTemplateConfig.prefix?e.parent.parent.context.column.customTemplateConfig.prefix+e.parent.context.$implicit:e.parent.context.$implicit)}))}function Le(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" "]))],null,null)}function qe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,De)),a["ɵdid"](2,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Le)),a["ɵdid"](4,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&e.parent.context.column.customTemplateConfig.map&&null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&null!=e.parent.context.column.customTemplateConfig.map[e.context.$implicit]&&e.parent.context.column.customTemplateConfig.map[e.context.$implicit].value?e.parent.context.column.customTemplateConfig.map[e.context.$implicit].value:null!=e.parent.context.column&&null!=e.parent.context.column.customTemplateConfig&&e.parent.context.column.customTemplateConfig.prefix?e.parent.context.column.customTemplateConfig.prefix+e.context.$implicit:e.context.$implicit),t(e,4,0,!e.context.last)}),null)}function je(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,qe)),a["ɵdid"](1,278528,null,0,s.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵppd"](2,1),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,1),e.context.value));t(e,1,0,n)}),null)}function Fe(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""])),a["ɵppd"](2,2)],null,(function(t,e){var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,2),e.context.value,null==e.context.column?null:e.context.column.customTemplateConfig));t(e,1,0,n)}))}function ze(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[["data-toggle","tooltip"]],[[8,"title",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,["",""])),a["ɵppd"](2,3)],null,(function(t,e){t(e,0,0,e.context.value);var n=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,3),e.context.value,null==e.context.column?null:null==e.context.column.customTemplateConfig?null:e.context.column.customTemplateConfig.length,null==e.context.column?null:null==e.context.column.customTemplateConfig?null:e.context.column.customTemplateConfig.omission));t(e,1,0,n)}))}function Ge(t){return a["ɵvid"](2,[a["ɵpid"](0,_.a,[]),a["ɵpid"](0,O.a,[]),a["ɵpid"](0,v.a,[]),a["ɵpid"](0,C.a,[]),a["ɵqud"](402653184,1,{table:0}),a["ɵqud"](402653184,2,{tableCellBoldTpl:0}),a["ɵqud"](402653184,3,{sparklineTpl:0}),a["ɵqud"](402653184,4,{routerLinkTpl:0}),a["ɵqud"](402653184,5,{checkIconTpl:0}),a["ɵqud"](402653184,6,{perSecondTpl:0}),a["ɵqud"](402653184,7,{executingTpl:0}),a["ɵqud"](402653184,8,{classAddingTpl:0}),a["ɵqud"](402653184,9,{badgeTpl:0}),a["ɵqud"](402653184,10,{mapTpl:0}),a["ɵqud"](402653184,11,{truncateTpl:0}),(t()(),a["ɵand"](16777216,null,null,1,null,se)),a["ɵdid"](16,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](17,0,null,null,17,"div",[["class","dataTables_wrapper"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ce)),a["ɵdid"](19,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,_e)),a["ɵdid"](21,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Ce)),a["ɵdid"](23,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](24,0,null,null,10,"ngx-datatable",[["class","bootstrap cd-datatable ngx-datatable"]],[[2,"fixed-header",null],[2,"fixed-row",null],[2,"scroll-vertical",null],[2,"virtualized",null],[2,"scroll-horz",null],[2,"selectable",null],[2,"checkbox-selection",null],[2,"cell-selection",null],[2,"single-selection",null],[2,"multi-selection",null],[2,"multi-click-selection",null]],[[null,"select"],[null,"sort"],["window","resize"]],(function(t,e,n){var r=!0,o=t.component;return"window:resize"===e&&(r=!1!==a["ɵnov"](t,25).onWindowResize()&&r),"select"===e&&(r=!1!==o.onSelect(n)&&r),"sort"===e&&(r=!1!==o.changeSorting(n)&&r),r}),ae,te)),a["ɵdid"](25,5750784,[[1,4],["table",4]],4,Jt.DatatableComponent,[[1,pt.ScrollbarHelper],[1,Xt.DimensionsHelper],a.ChangeDetectorRef,a.ElementRef,a.KeyValueDiffers,Qt.ColumnChangesService],{rows:[0,"rows"],columns:[1,"columns"],selected:[2,"selected"],rowHeight:[3,"rowHeight"],columnMode:[4,"columnMode"],headerHeight:[5,"headerHeight"],footerHeight:[6,"footerHeight"],limit:[7,"limit"],loadingIndicator:[8,"loadingIndicator"],selectionType:[9,"selectionType"],sorts:[10,"sorts"],cssClasses:[11,"cssClasses"],rowIdentity:[12,"rowIdentity"],rowClass:[13,"rowClass"]},{select:"select",sort:"sort"}),a["ɵqud"](603979776,12,{columnTemplates:1}),a["ɵqud"](603979776,13,{rowDetail:0}),a["ɵqud"](603979776,14,{groupHeader:0}),a["ɵqud"](603979776,15,{footer:0}),(t()(),a["ɵeld"](30,0,null,null,4,"ngx-datatable-footer",[],null,null,null,null,null)),a["ɵdid"](31,16384,[[15,4]],1,re.DatatableFooterDirective,[],null,null),a["ɵqud"](603979776,16,{template:0}),(t()(),a["ɵand"](0,[[16,2]],null,1,null,xe)),a["ɵdid"](34,16384,null,0,oe.DataTableFooterTemplateDirective,[a.TemplateRef],null,null),a["ɵncd"](null,3),(t()(),a["ɵand"](0,[[2,2],["tableCellBoldTpl",2]],null,0,null,we)),(t()(),a["ɵand"](0,[[3,2],["sparklineTpl",2]],null,0,null,Te)),(t()(),a["ɵand"](0,[[4,2],["routerLinkTpl",2]],null,0,null,Se)),(t()(),a["ɵand"](0,[[5,2],["checkIconTpl",2]],null,0,null,ke)),(t()(),a["ɵand"](0,[[6,2],["perSecondTpl",2]],null,0,null,Ie)),(t()(),a["ɵand"](0,[[7,2],["executingTpl",2]],null,0,null,Ae)),(t()(),a["ɵand"](0,[[8,2],["classAddingTpl",2]],null,0,null,Ee)),(t()(),a["ɵand"](0,[[9,2],["badgeTpl",2]],null,0,null,je)),(t()(),a["ɵand"](0,[[10,2],["mapTpl",2]],null,0,null,Fe)),(t()(),a["ɵand"](0,[[11,2],["truncateTpl",2]],null,0,null,ze))],(function(t,e){var n=e.component;t(e,16,0,n.loadingError),t(e,19,0,n.onlyActionHeader),t(e,21,0,n.toolHeader),t(e,23,0,n.toolHeader&&n.columnFiltered),t(e,25,1,[n.rows,n.tableColumns,n.selection.selected,"auto",n.columnMode,n.header?"auto":0,n.footer?"auto":0,n.userConfig.limit>0?n.userConfig.limit:void 0,n.loadingIndicator,n.selectionType,n.userConfig.sorts,n.paginationClasses,n.rowIdentity(),n.getRowClass()])}),(function(t,e){t(e,24,1,[a["ɵnov"](e,25).isFixedHeader,a["ɵnov"](e,25).isFixedRow,a["ɵnov"](e,25).isVertScroll,a["ɵnov"](e,25).isVirtualized,a["ɵnov"](e,25).isHorScroll,a["ɵnov"](e,25).isSelectable,a["ɵnov"](e,25).isCheckboxSelection,a["ɵnov"](e,25).isCellSelection,a["ɵnov"](e,25).isSingleSelection,a["ɵnov"](e,25).isMultiSelection,a["ɵnov"](e,25).isMultiClickSelection])}))}},"2EZI":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("s7LF"),r=n("QFaf"),o=n("8Y7J");let i=(()=>{class t extends a.h{group(t,e=null){const n=super.group(t,e);return new r.a(n.controls,n.validator,n.asyncValidator)}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},"2QA8":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>"function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random())()},"2V7f":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("IPm6")),a(n("YVFZ")),a(n("syrc")),a(n("PNOi")),a(n("SfHT")),a(n("Mfce")),a(n("7F1K")),a(n("99TG")),a(n("Fjl2")),a(n("VHo1"))},"2Vo4":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("XNiG"),r=n("9ppp");class o extends a.a{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 r.a;return this._value}next(t){super.next(this._value=t)}}},"2ZVE":function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return l})),n.d(e,"e",(function(){return i})),n.d(e,"f",(function(){return o}));var a=n("8Y7J");class r{constructor(t){this.viewRef=t}set ngTransclude(t){this._ngTransclude=t,t&&this.viewRef.createEmbeddedView(t)}get ngTransclude(){return this._ngTransclude}}class o{constructor(){this.type="tabs"}}class i{constructor(t,e,n){this.renderer=e,this.elementRef=n,this.clazz=!0,this.tabs=[],this.classMap={},Object.assign(this,t)}get vertical(){return this._vertical}set vertical(t){this._vertical=t,this.setClassMap()}get justified(){return this._justified}set justified(t){this._justified=t,this.setClassMap()}get type(){return this._type}set type(t){this._type=t,this.setClassMap()}ngOnDestroy(){this.isDestroyed=!0}addTab(t){this.tabs.push(t),t.active=1===this.tabs.length&&void 0===t.active}removeTab(t,e={reselect:!0,emit:!0}){const n=this.tabs.indexOf(t);if(-1!==n&&!this.isDestroyed){if(e.reselect&&t.active&&this.hasAvailableTabs(n)){const t=this.getClosestTabIndex(n);this.tabs[t].active=!0}e.emit&&t.removed.emit(t),this.tabs.splice(n,1),t.elementRef.nativeElement.parentNode&&this.renderer.removeChild(t.elementRef.nativeElement.parentNode,t.elementRef.nativeElement)}}keyNavActions(t,e){const n=Array.from(this.elementRef.nativeElement.querySelectorAll(".nav-link"));if(13===t.keyCode||"Enter"===t.key||32===t.keyCode||"Space"===t.key)return t.preventDefault(),void n[e%n.length].click();if(39!==t.keyCode&&"RightArrow"!==t.key)if(37!==t.keyCode&&"LeftArrow"!==t.key)if(36!==t.keyCode&&"Home"!==t.key)if(35!==t.keyCode&&"End"!==t.key){if((46===t.keyCode||"Delete"===t.key)&&this.tabs[e].removable){if(this.removeTab(this.tabs[e]),n[e+1])return void n[(e+1)%n.length].focus();n[n.length-1]&&n[0].focus()}}else{let a;t.preventDefault();let r=1,o=e;do{o-r<0?(o=n.length-1,a=n[o],r=0):a=n[o-r],r++}while(a.classList.contains("disabled"));a.focus()}else{let e;t.preventDefault();let a=0;do{e=n[a%n.length],a++}while(e.classList.contains("disabled"));e.focus()}else{let t,a=1,r=e;do{r-a<0?(r=n.length-1,t=n[r],a=0):t=n[r-a],a++}while(t.classList.contains("disabled"));t.focus()}else{let t,a=1;do{t=n[(e+a)%n.length],a++}while(t.classList.contains("disabled"));t.focus()}}getClosestTabIndex(t){const e=this.tabs.length;if(!e)return-1;for(let n=1;n<=e;n+=1){const e=t-n,a=t+n;if(this.tabs[e]&&!this.tabs[e].disabled)return e;if(this.tabs[a]&&!this.tabs[a].disabled)return a}return-1}hasAvailableTabs(t){const e=this.tabs.length;if(!e)return!1;for(let n=0;n<e;n+=1)if(!this.tabs[n].disabled&&n!==t)return!0;return!1}setClassMap(){this.classMap={"nav-stacked":this.vertical,"flex-column":this.vertical,"nav-justified":this.justified,[`nav-${this.type}`]:!0}}}class s{constructor(t,e,n){this.elementRef=e,this.renderer=n,this.selectTab=new a.EventEmitter,this.deselect=new a.EventEmitter,this.removed=new a.EventEmitter,this.addClass=!0,this.tabset=t,this.tabset.addTab(this)}get customClass(){return this._customClass}set customClass(t){this.customClass&&this.customClass.split(" ").forEach(t=>{this.renderer.removeClass(this.elementRef.nativeElement,t)}),this._customClass=t?t.trim():null,this.customClass&&this.customClass.split(" ").forEach(t=>{this.renderer.addClass(this.elementRef.nativeElement,t)})}get active(){return this._active}set active(t){this._active!==t&&(this.disabled&&t||!t?this._active&&!t&&(this.deselect.emit(this),this._active=t):(this._active=t,this.selectTab.emit(this),this.tabset.tabs.forEach(t=>{t!==this&&(t.active=!1)})))}ngOnInit(){this.removable=this.removable}ngOnDestroy(){this.tabset.removeTab(this,{reselect:!1,emit:!1})}}class c{constructor(t,e){e.headingRef=t}}class l{static forRoot(){return{ngModule:l,providers:[o]}}}},"2ajD":function(t,e){t.exports=function(t){return t!=t}},"2fFW":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));let a=!1;const r={Promise:void 0,set useDeprecatedSynchronousErrorHandling(t){if(t){const t=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+t.stack)}else a&&console.log("RxJS: Back to a better error behavior. Thank you. <3");a=t},get useDeprecatedSynchronousErrorHandling(){return a}}},"2fjn":function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})}(n("wd/R"))},"2gN3":function(t,e,n){var a=n("Kz5y");t.exports=a["__core-js_shared__"]},"2oRo":function(t,e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof global&&global)||Function("return this")()},"2uy1":function(t,e,n){"use strict";n.d(e,"a",(function(){return B}));var a=n("8Y7J"),r=n("SVse"),o=n("XNiG"),i=n("VRyK"),s=n("xgIS"),c=n("LRne"),l=n("eNwd");function d(t,e){if(1!==t.nodeType)return[];const n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function u(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function g(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}const{overflow:e,overflowX:n,overflowY:a}=d(t);return/(auto|scroll|overlay)/.test(String(e)+String(a)+String(n))?t:g(u(t))}const f="undefined"!=typeof window&&"undefined"!=typeof document,p=f&&!(!window.MSInputMethodContext||!document.documentMode),m=f&&!(!window.MSInputMethodContext||!/MSIE 10/.test(navigator.userAgent));function h(t){return 11===t?p:10===t?m:p||m}function b(t){if(!t)return document.documentElement;const e=h(10)?document.body:null;let n,a=t.offsetParent||null;for(;a===e&&t.nextElementSibling&&n!==t.nextElementSibling;)n=t.nextElementSibling,a=n.offsetParent;const r=a&&a.nodeName;return r&&"BODY"!==r&&"HTML"!==r?-1!==["TH","TD","TABLE"].indexOf(a.nodeName)&&"static"===d(a,"position")?b(a):a:n?n.ownerDocument.documentElement:document.documentElement}function y(t){return null!==t.parentNode?y(t.parentNode):t}function _(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;const n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,a=n?t:e,r=n?e:t,o=document.createRange();o.setStart(a,0),o.setEnd(r,0);const{commonAncestorContainer:i}=o;if(t!==i&&e!==i||a.contains(r))return function(t){const{nodeName:e}=t;return"BODY"!==e&&("HTML"===e||b(t.firstElementChild)===t)}(i)?i:b(i);const s=y(t);return s.host?_(s.host,e):_(t,y(e).host)}function O(t,e){const n="x"===e?"Left":"Top",a="Left"===n?"Right":"Bottom";return parseFloat(t[`border${n}Width`])+parseFloat(t[`border${a}Width`])}function v(t,e,n,a){return Math.max(e[`offset${t}`],e[`scroll${t}`],n[`client${t}`],n[`offset${t}`],n[`scroll${t}`],h(10)?parseInt(n[`offset${t}`],10)+parseInt(a[`margin${"Height"===t?"Top":"Left"}`],10)+parseInt(a[`margin${"Height"===t?"Bottom":"Right"}`],10):0)}function C(t){const e=t.body,n=t.documentElement,a=h(10)&&getComputedStyle(n);return{height:v("Height",e,n,a),width:v("Width",e,n,a)}}function P(t,e="top"){const n="top"===e?"scrollTop":"scrollLeft",a=t.nodeName;if("BODY"===a||"HTML"===a){const e=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||e)[n]}return t[n]}function M(t){return Object.assign({},t,{right:t.left+t.width,bottom:t.top+t.height})}function x(t){let e={};try{if(h(10)){e=t.getBoundingClientRect();const n=P(t,"top"),a=P(t,"left");e.top+=n,e.left+=a,e.bottom+=n,e.right+=a}else e=t.getBoundingClientRect()}catch(i){return}const n={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},a="HTML"===t.nodeName?C(t.ownerDocument):{};let r=t.offsetWidth-(a.width||t.clientWidth||n.right-n.left),o=t.offsetHeight-(a.height||t.clientHeight||n.bottom-n.top);if(r||o){const e=d(t);r-=O(e,"x"),o-=O(e,"y"),n.width-=r,n.height-=o}return M(n)}function w(t,e,n=!1){const a=h(10),r="HTML"===e.nodeName,o=x(t),i=x(e),s=g(t),c=d(e),l=parseFloat(c.borderTopWidth),u=parseFloat(c.borderLeftWidth);n&&r&&(i.top=Math.max(i.top,0),i.left=Math.max(i.left,0));let f=M({top:o.top-i.top-l,left:o.left-i.left-u,width:o.width,height:o.height});if(f.marginTop=0,f.marginLeft=0,!a&&r){const t=parseFloat(c.marginTop),e=parseFloat(c.marginLeft);f.top-=l-t,f.bottom-=l-t,f.left-=u-e,f.right-=u-e,f.marginTop=t,f.marginLeft=e}return(a&&!n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(f=function(t,e,n=!1){const a=P(e,"top"),r=P(e,"left"),o=n?-1:1;return t.top+=a*o,t.bottom+=a*o,t.left+=r*o,t.right+=r*o,t}(f,e)),f}function T(t){if(!t||!t.parentElement||h())return document.documentElement;let e=t.parentElement;for(;e&&"none"===d(e,"transform");)e=e.parentElement;return e||document.documentElement}function S(t,e,n=0,a,r=!1){let o={top:0,left:0};const i=r?T(t):_(t,e);if("viewport"===a)o=function(t,e=!1){const n=t.ownerDocument.documentElement,a=w(t,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),i=e?0:P(n),s=e?0:P(n,"left");return M({top:i-Number(a.top)+Number(a.marginTop),left:s-Number(a.left)+Number(a.marginLeft),width:r,height:o})}(i,r);else{let n;"scrollParent"===a?(n=g(u(e)),"BODY"===n.nodeName&&(n=t.ownerDocument.documentElement)):n="window"===a?t.ownerDocument.documentElement:a;const s=w(n,i,r);if("HTML"!==n.nodeName||function t(e){const n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===d(e,"position")||t(u(e)))}(i))o=s;else{const{height:e,width:n}=C(t.ownerDocument);o.top+=s.top-s.marginTop,o.bottom=Number(e)+Number(s.top),o.left+=s.left-s.marginLeft,o.right=Number(n)+Number(s.left)}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function k({width:t,height:e}){return t*e}function I(t,e,n,a,r=["top","bottom","right","left"],o="viewport",i=0){if(-1===t.indexOf("auto"))return t;const s=S(n,a,i,o),c={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(c).map(t=>Object.assign({key:t},c[t],{area:k(c[t])})).sort((t,e)=>e.area-t.area);let d=l.filter(({width:t,height:e})=>t>=n.clientWidth&&e>=n.clientHeight);d=d.filter(t=>r.some(e=>e===t.key));const u=d.length>0?d[0].key:l[0].key,g=t.split(" ")[1];return n.className=n.className.replace(/bs-tooltip-auto/g,`bs-tooltip-${u}`),u+(g?`-${g}`:"")}function N(t){const e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),a=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:Number(t.offsetWidth)+a,height:Number(t.offsetHeight)+n}}function R(t,e,n=null){return w(e,n?T(t):_(t,e),n)}function A(t,e,n){const a=n.split(" ")[0],r=N(t),o={width:r.width,height:r.height},i=-1!==["right","left"].indexOf(a),s=i?"top":"left",c=i?"left":"top",l=i?"height":"width",d=i?"width":"height";return o[s]=e[s]+e[l]/2-r[l]/2,o[c]=a===c?e[c]-r[d]:e[function(t){const e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,t=>e[t])}(c)],o}function E(t,e){return t&&t.modifiers&&t.modifiers[e]&&t.modifiers[e].enabled}function D(t,e,n){Object.keys(e).forEach(a=>{let r="";var o;-1!==["width","height","top","right","bottom","left"].indexOf(a)&&""!==(o=e[a])&&!isNaN(parseFloat(o))&&isFinite(o)&&(r="px"),n?n.setStyle(t,a,`${String(e[a])}${r}`):t.style[a]=String(e[a])+r})}function L(t){let e=t.offsets.target;const n=t.instance.target.querySelector(".arrow");if(!n)return t;const a=-1!==["left","right"].indexOf(t.placement),r=a?"height":"width",o=a?"Top":"Left",i=o.toLowerCase(),s=a?"left":"top",c=a?"bottom":"right",l=N(n)[r];t.offsets.host[c]-l<e[i]&&(e[i]-=e[i]-(t.offsets.host[c]-l)),Number(t.offsets.host[i])+Number(l)>e[c]&&(e[i]+=Number(t.offsets.host[i])+Number(l)-Number(e[c])),e=M(e);const u=Number(t.offsets.host[i])+Number(t.offsets.host[r]/2-l/2),g=d(t.instance.target),f=parseFloat(g[`margin${o}`]),p=parseFloat(g[`border${o}Width`]);let m=u-e[i]-f-p;return m=Math.max(Math.min(e[r]-l,m),0),t.offsets.arrow={[i]:Math.round(m),[s]:""},t.instance.arrow=n,t}function q(t){if(t.offsets.target=M(t.offsets.target),!E(t.options,"flip"))return t.offsets.target=Object.assign({},t.offsets.target,A(t.instance.target,t.offsets.host,t.placement)),t;const e=S(t.instance.target,t.instance.host,0,"viewport",!1);let n=t.placement.split(" ")[0],a=t.placement.split(" ")[1]||"";const r=I("auto",t.offsets.host,t.instance.target,t.instance.host,t.options.allowedPositions),o=[n,r];return o.forEach((r,i)=>{if(n!==r||o.length===i+1)return t;n=t.placement.split(" ")[0];const s="left"===n&&Math.floor(t.offsets.target.right)>Math.floor(t.offsets.host.left)||"right"===n&&Math.floor(t.offsets.target.left)<Math.floor(t.offsets.host.right)||"top"===n&&Math.floor(t.offsets.target.bottom)>Math.floor(t.offsets.host.top)||"bottom"===n&&Math.floor(t.offsets.target.top)<Math.floor(t.offsets.host.bottom),c=Math.floor(t.offsets.target.left)<Math.floor(e.left),l=Math.floor(t.offsets.target.right)>Math.floor(e.right),d=Math.floor(t.offsets.target.top)<Math.floor(e.top),u=Math.floor(t.offsets.target.bottom)>Math.floor(e.bottom),g="left"===n&&c||"right"===n&&l||"top"===n&&d||"bottom"===n&&u,f=-1!==["top","bottom"].indexOf(n),p=f&&"left"===a&&c||f&&"right"===a&&l||!f&&"left"===a&&d||!f&&"right"===a&&u;(s||g||p)&&((s||g)&&(n=o[i+1]),p&&(a=function(t){return"right"===t?"left":"left"===t?"right":t}(a)),t.placement=n+(a?` ${a}`:""),t.offsets.target=Object.assign({},t.offsets.target,A(t.instance.target,t.offsets.host,t.placement)))}),t}function j(t){if(!E(t.options,"preventOverflow"))return t;const e="transform",n=t.instance.target.style,{top:a,left:r,[e]:o}=n;n.top="",n.left="",n[e]="";const i=S(t.instance.target,t.instance.host,0,"scrollParent",!1);n.top=a,n.left=r,n[e]=o;const s={primary(e){let n=t.offsets.target[e];return t.offsets.target[e]<i[e]&&(n=Math.max(t.offsets.target[e],i[e])),{[e]:n}},secondary(e){const n="right"===e?"left":"top";let a=t.offsets.target[n];return t.offsets.target[e]>i[e]&&(a=Math.min(t.offsets.target[n],i[e]-("right"===e?t.offsets.target.width:t.offsets.target.height))),{[n]:a}}};let c;return["left","right","top","bottom"].forEach(e=>{c=-1!==["left","top"].indexOf(e)?"primary":"secondary",t.offsets.target=Object.assign({},t.offsets.target,s[c](e))}),t}function F(t){const e=t.placement,n=e.split(" ")[0],a=e.split(" ")[1];if(a){const{host:e,target:r}=t.offsets,o=-1!==["bottom","top"].indexOf(n),i=o?"left":"top",s=o?"width":"height";t.offsets.target=Object.assign({},r,{start:{[i]:e[i]},end:{[i]:e[i]+e[s]-r[s]}}[a])}return t}class z{position(t,e,n=!0){return this.offset(t,e,!1)}offset(t,e,n=!0){return R(e,t)}positionElements(t,e,n,a,r){return[q,F,j,L].reduce((t,e)=>e(t),function(t,e,n,a){const r=R(t,e);n.match(/^(auto)*\s*(left|right|top|bottom)*$/)||n.match(/^(left|right|top|bottom)*\s*(start|end)*$/)||(n="auto");const o=!!n.match(/auto/g);let i=n.match(/auto\s(left|right|top|bottom)/)?n.split(" ")[1]||"auto":n;const s=A(t,r,i);return i=I(i,r,t,e,a?a.allowedPositions:void 0),{options:a,instance:{target:t,host:e,arrow:null},offsets:{target:s,host:r,arrow:null},positionFixed:!1,placement:i,placementAuto:o}}(e,t,n,r))}}const G=new z;class B{constructor(t,e){this.update$$=new o.a,this.positionElements=new Map,this.isDisabled=!1,Object(r.isPlatformBrowser)(e)&&(this.triggerEvent$=Object(i.a)(Object(s.a)(window,"scroll"),Object(s.a)(window,"resize"),Object(c.a)(0,l.a),this.update$$),this.triggerEvent$.subscribe(()=>{this.isDisabled||this.positionElements.forEach(e=>{!function(t,e,n,a,r,o){const i=G.positionElements(t,e,n,a,r),s=function(t){return{width:t.offsets.target.width,height:t.offsets.target.height,left:Math.floor(t.offsets.target.left),top:Math.round(t.offsets.target.top),bottom:Math.round(t.offsets.target.bottom),right:Math.floor(t.offsets.target.right)}}(i);D(e,{"will-change":"transform",top:"0px",left:"0px",transform:`translate3d(${s.left}px, ${s.top}px, 0px)`},o),i.instance.arrow&&D(i.instance.arrow,i.offsets.arrow,o),function(t,e){const n=t.instance.target;let a=n.className;t.placementAuto&&(a=a.replace(/bs-popover-auto/g,`bs-popover-${t.placement}`),a=a.replace(/bs-tooltip-auto/g,`bs-tooltip-${t.placement}`),a=a.replace(/\sauto/g,` ${t.placement}`),-1!==a.indexOf("popover")&&-1===a.indexOf("popover-auto")&&(a+=" popover-auto"),-1!==a.indexOf("tooltip")&&-1===a.indexOf("tooltip-auto")&&(a+=" tooltip-auto")),a=a.replace(/left|right|top|bottom/g,`${t.placement.split(" ")[0]}`),e?e.setAttribute(n,"class",a):n.className=a}(i,o)}(V(e.target),V(e.element),e.attachment,e.appendToBody,this.options,t.createRenderer(null,null))})}))}position(t){this.addPositionElement(t)}get event$(){return this.triggerEvent$}disable(){this.isDisabled=!0}enable(){this.isDisabled=!1}addPositionElement(t){this.positionElements.set(V(t.element),t)}calcPosition(){this.update$$.next()}deletePositionElement(t){this.positionElements.delete(V(t))}setOptions(t){this.options=t}}function V(t){return"string"==typeof t?document.querySelector(t):t instanceof a.ElementRef?t.nativeElement:t}},"2vnA":function(t,e,n){"use strict";n.d(e,"a",(function(){return Kt})),n.d(e,"b",(function(){return Zt})),n.d(e,"c",(function(){return at})),n.d(e,"d",(function(){return Q})),n.d(e,"e",(function(){return Qt}));var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function i(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,o=n.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(a=o.next()).done;)i.push(a.value)}catch(s){r={error:s}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i}function s(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(i(arguments[e]));return t}var c=[];Object.freeze(c);var l={};Object.freeze(l);var d={};function u(){return"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:d}function g(){return++kt.mobxGuid}function f(t){throw p(!1,t),"X"}function p(t,e){if(!t)throw new Error("[mobx] "+(e||"An invariant failed, however the error is obfuscated because this is an production build."))}function m(t){var e=!1;return function(){if(!e)return e=!0,t.apply(this,arguments)}}var h=function(){};function b(t){return null!==t&&"object"==typeof t}function y(t){if(null===t||"object"!=typeof t)return!1;var e=Object.getPrototypeOf(t);return e===Object.prototype||null===e}function _(t,e,n){Object.defineProperty(t,e,{enumerable:!1,writable:!0,configurable:!0,value:n})}function O(t,e,n){Object.defineProperty(t,e,{enumerable:!1,writable:!1,configurable:!0,value:n})}function v(t,e){var n="isMobX"+t;return e.prototype[n]=!0,function(t){return b(t)&&!0===t[n]}}function C(t){return void 0!==u().Map&&t instanceof u().Map}function P(t){return t instanceof Set}function M(t){for(var e=[];;){var n=t.next();if(n.done)break;e.push(n.value)}return e}function x(){return"function"==typeof Symbol&&Symbol.toPrimitive||"@@toPrimitive"}function w(t){return null===t?null:"object"==typeof t?""+t:t}function T(){return"function"==typeof Symbol&&Symbol.iterator||"@@iterator"}function S(t,e){O(t,T(),e)}function k(t){return t[T()]=N,t}function I(){return"function"==typeof Symbol&&Symbol.toStringTag||"@@toStringTag"}function N(){return this}var R=function(){function t(t){void 0===t&&(t="Atom@"+g()),this.name=t,this.isPendingUnobservation=!1,this.isBeingObserved=!1,this.observers=[],this.observersIndexes={},this.diffValue=0,this.lastAccessedBy=0,this.lowestObserverState=rt.NOT_TRACKING}return t.prototype.onBecomeUnobserved=function(){},t.prototype.onBecomeObserved=function(){},t.prototype.reportObserved=function(){return Dt(this)},t.prototype.reportChanged=function(){At(),function(t){if(t.lowestObserverState!==rt.STALE){t.lowestObserverState=rt.STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.UP_TO_DATE&&(a.isTracing!==ot.NONE&&Lt(a,t),a.onBecomeStale()),a.dependenciesState=rt.STALE}}}(this),Et()},t.prototype.toString=function(){return this.name},t}(),A=v("Atom",R);function E(t,e){return t===e}var D={identity:E,structural:function(t,e){return He(t,e)},default:function(t,e){return function(t,e){return"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(t,e)||E(t,e)},shallow:function(t,e){return He(t,e,1)}},L={},q={};function j(t,e){var n=e?L:q;return n[t]||(n[t]={configurable:!0,enumerable:e,get:function(){return F(this),this[t]},set:function(e){F(this),this[t]=e}})}function F(t){if(!0!==t.__mobxDidRunLazyInitializers){var e=t.__mobxDecorators;if(e)for(var n in _(t,"__mobxDidRunLazyInitializers",!0),e){var a=e[n];a.propertyCreator(t,a.prop,a.descriptor,a.decoratorTarget,a.decoratorArguments)}}}function z(t,e){return function(){var n,a=function(a,r,i,s){return!0===s?(e(a,r,i,a,n),null):(Object.prototype.hasOwnProperty.call(a,"__mobxDecorators")||_(a,"__mobxDecorators",o({},a.__mobxDecorators)),a.__mobxDecorators[r]={prop:r,propertyCreator:e,descriptor:i,decoratorTarget:a,decoratorArguments:n},j(r,t))};return G(arguments)?(n=c,a.apply(null,arguments)):(n=Array.prototype.slice.call(arguments),a)}}function G(t){return(2===t.length||3===t.length)&&"string"==typeof t[1]||4===t.length&&!0===t[3]}function B(t,e,n){return oe(t)?t:Array.isArray(t)?Q.array(t,{name:n}):y(t)?Q.object(t,void 0,{name:n}):C(t)?Q.map(t,{name:n}):P(t)?Q.set(t,{name:n}):t}function V(t){return t}function Y(t){p(t);var e=z(!0,(function(e,n,a,r,i){!function(t,e,n,a){var r=qe(t);if(ce(r)){var i=de(r,{object:t,name:e,type:"add",newValue:n});if(!i)return;n=i.newValue}n=(r.values[e]=new Mt(n,a,r.name+"."+e,!1)).value,Object.defineProperty(t,e,function(t){return je[t]||(je[t]={configurable:!0,enumerable:!0,get:function(){return this.$mobx.read(this,t)},set:function(e){this.$mobx.write(this,t,e)}})}(e)),r.keys&&r.keys.push(e),function(t,e,n,a){var r=ue(t),i=zt(),s=r||i?{type:"add",object:e,name:n,newValue:a}:null;i&&Bt(o(o({},s),{name:t.name,key:n})),r&&fe(t,s),i&&Yt()}(r,t,e,n)}(e,n,a?a.initializer?a.initializer.call(e):a.value:void 0,t)})),n=("undefined"!=typeof process&&process,e);return n.enhancer=t,n}var H={deep:!0,name:void 0,defaultDecorator:void 0};function U(t){return null==t?H:"string"==typeof t?{name:t,deep:!0}:t}function W(t){return t.defaultDecorator?t.defaultDecorator.enhancer:!1===t.deep?V:B}Object.freeze(H),Object.freeze({deep:!1,name:void 0,defaultDecorator:void 0});var K=Y(B),$=Y((function(t,e,n){return null==t?t:Be(t)||Se(t)||Re(t)||De(t)?t:Array.isArray(t)?Q.array(t,{name:n,deep:!1}):y(t)?Q.object(t,void 0,{name:n,deep:!1}):C(t)?Q.map(t,{name:n,deep:!1}):P(t)?Q.set(t,{name:n,deep:!1}):f(!1)})),Z=Y(V),J=Y((function(t,e,n){return He(t,e)?e:t})),X={box:function(t,e){arguments.length>2&&tt("box");var n=U(e);return new Mt(t,W(n),n.name,!0,n.equals)},shallowBox:function(t,e){return arguments.length>2&&tt("shallowBox"),Q.box(t,{name:e,deep:!1})},array:function(t,e){arguments.length>2&&tt("array");var n=U(e);return new Ce(t,W(n),n.name)},shallowArray:function(t,e){return arguments.length>2&&tt("shallowArray"),Q.array(t,{name:e,deep:!1})},map:function(t,e){arguments.length>2&&tt("map");var n=U(e);return new Ie(t,W(n),n.name)},shallowMap:function(t,e){return arguments.length>2&&tt("shallowMap"),Q.map(t,{name:e,deep:!1})},set:function(t,e){arguments.length>2&&tt("set");var n=U(e);return new Ee(t,W(n),n.name)},object:function(t,e,n){"string"==typeof arguments[1]&&tt("object");var a=U(n);return ne({},t,e,a)},shallowObject:function(t,e){return"string"==typeof arguments[1]&&tt("shallowObject"),Q.object(t,{},{name:e,deep:!1})},ref:Z,shallow:$,deep:K,struct:J},Q=function(t,e,n){if("string"==typeof arguments[1])return K.apply(null,arguments);if(oe(t))return t;var a=y(t)?Q.object(t,e,n):Array.isArray(t)?Q.array(t,e):C(t)?Q.map(t,e):P(t)?Q.set(t,e):t;if(a!==t)return a;f(!1)};function tt(t){f("Expected one or two arguments to observable."+t+". Did you accidentally try to use observable."+t+" as decorator?")}Object.keys(X).forEach((function(t){return Q[t]=X[t]}));var et=z(!1,(function(t,e,n,a,r){var i,s,c,l;i=t,s=e,c=o({get:n.get,set:n.set},r[0]||{}),l=qe(i),c.name=l.name+"."+s,c.context=i,l.values[s]=new xt(c),Object.defineProperty(i,s,function(t){return Fe[t]||(Fe[t]={configurable:kt.computedConfigurable,enumerable:!1,get:function(){return ze(this).read(this,t)},set:function(e){ze(this).write(this,t,e)}})}(s))})),nt=et({equals:D.structural}),at=function(t,e,n){if("string"==typeof e)return et.apply(null,arguments);if(null!==t&&"object"==typeof t&&1===arguments.length)return et.apply(null,arguments);var a="object"==typeof e?e:{};return a.get=t,a.set="function"==typeof e?e:a.set,a.name=a.name||t.name||"",new xt(a)};at.struct=nt;var rt=function(t){return t[t.NOT_TRACKING=-1]="NOT_TRACKING",t[t.UP_TO_DATE=0]="UP_TO_DATE",t[t.POSSIBLY_STALE=1]="POSSIBLY_STALE",t[t.STALE=2]="STALE",t}({}),ot=function(t){return t[t.NONE=0]="NONE",t[t.LOG=1]="LOG",t[t.BREAK=2]="BREAK",t}({}),it=function(){return function(t){this.cause=t}}();function st(t){return t instanceof it}function ct(t){switch(t.dependenciesState){case rt.UP_TO_DATE:return!1;case rt.NOT_TRACKING:case rt.STALE:return!0;case rt.POSSIBLY_STALE:for(var e=mt(!0),n=ft(),a=t.observing,r=a.length,o=0;o<r;o++){var i=a[o];if(wt(i)){if(kt.disableErrorBoundaries)i.get();else try{i.get()}catch(s){return pt(n),ht(e),!0}if(t.dependenciesState===rt.STALE)return pt(n),ht(e),!0}}return bt(t),pt(n),ht(e),!1}}function lt(t){var e=t.observers.length>0;kt.computationDepth>0&&e&&f(!1),kt.allowStateChanges||!e&&"strict"!==kt.enforceActions||f(!1)}function dt(t,e,n){var a=mt(!0);bt(t),t.newObserving=new Array(t.observing.length+100),t.unboundDepsCount=0,t.runId=++kt.runId;var r,o=kt.trackingDerivation;if(kt.trackingDerivation=t,!0===kt.disableErrorBoundaries)r=e.call(n);else try{r=e.call(n)}catch(i){r=new it(i)}return kt.trackingDerivation=o,function(t){for(var e=t.observing,n=t.observing=t.newObserving,a=rt.UP_TO_DATE,r=0,o=t.unboundDepsCount,i=0;i<o;i++)0===(s=n[i]).diffValue&&(s.diffValue=1,r!==i&&(n[r]=s),r++),s.dependenciesState>a&&(a=s.dependenciesState);for(n.length=r,t.newObserving=null,o=e.length;o--;)0===(s=e[o]).diffValue&&Nt(s,t),s.diffValue=0;for(;r--;){var s;1===(s=n[r]).diffValue&&(s.diffValue=0,It(s,t))}a!==rt.UP_TO_DATE&&(t.dependenciesState=a,t.onBecomeStale())}(t),ht(a),r}function ut(t){var e=t.observing;t.observing=[];for(var n=e.length;n--;)Nt(e[n],t);t.dependenciesState=rt.NOT_TRACKING}function gt(t){var e=ft(),n=t();return pt(e),n}function ft(){var t=kt.trackingDerivation;return kt.trackingDerivation=null,t}function pt(t){kt.trackingDerivation=t}function mt(t){var e=kt.allowStateReads;return kt.allowStateReads=t,e}function ht(t){kt.allowStateReads=t}function bt(t){if(t.dependenciesState!==rt.UP_TO_DATE){t.dependenciesState=rt.UP_TO_DATE;for(var e=t.observing,n=e.length;n--;)e[n].lowestObserverState=rt.UP_TO_DATE}}var yt=0,_t=1;function Ot(t,e){var n=function(){return vt(t,e,this,arguments)};return n.isMobxAction=!0,n}function vt(t,e,n,a){var r=function(t,e,n){var a=zt()&&!!t,r=0;if(a){r=Date.now();var o=n&&n.length||0,i=new Array(o);if(o>0)for(var s=0;s<o;s++)i[s]=n[s];Bt({type:"action",name:t,object:e,arguments:i})}var c=ft();At();var l={prevDerivation:c,prevAllowStateChanges:Ct(!0),prevAllowStateReads:mt(!0),notifySpy:a,startTime:r,actionId:_t++,parentActionId:yt};return yt=l.actionId,l}(t,n,a);try{return e.apply(n,a)}catch(o){throw r.error=o,o}finally{!function(t){yt!==t.actionId&&f("invalid action stack. did you forget to finish an action?"),yt=t.parentActionId,void 0!==t.error&&(kt.suppressReactionErrors=!0),Pt(t.prevAllowStateChanges),ht(t.prevAllowStateReads),Et(),pt(t.prevDerivation),t.notifySpy&&Yt({time:Date.now()-t.startTime}),kt.suppressReactionErrors=!1}(r)}}function Ct(t){var e=kt.allowStateChanges;return kt.allowStateChanges=t,e}function Pt(t){kt.allowStateChanges=t}Object.getOwnPropertyDescriptor((function(){}),"name");var Mt=function(t){function e(e,n,a,r,o){void 0===a&&(a="ObservableValue@"+g()),void 0===r&&(r=!0),void 0===o&&(o=D.default);var i=t.call(this,a)||this;return i.enhancer=n,i.name=a,i.equals=o,i.hasUnreportedChange=!1,i.value=n(e,void 0,a),r&&zt()&&Gt({type:"create",name:i.name,newValue:""+i.value}),i}return r(e,t),e.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},e.prototype.set=function(t){var e=this.value;if((t=this.prepareNewValue(t))!==kt.UNCHANGED){var n=zt();n&&Bt({type:"update",name:this.name,newValue:t,oldValue:e}),this.setNewValue(t),n&&Yt()}},e.prototype.prepareNewValue=function(t){if(lt(this),ce(this)){var e=de(this,{object:this,type:"update",newValue:t});if(!e)return kt.UNCHANGED;t=e.newValue}return t=this.enhancer(t,this.value,this.name),this.equals(this.value,t)?kt.UNCHANGED:t},e.prototype.setNewValue=function(t){var e=this.value;this.value=t,this.reportChanged(),ue(this)&&fe(this,{type:"update",object:this,newValue:t,oldValue:e})},e.prototype.get=function(){return this.reportObserved(),this.dehanceValue(this.value)},e.prototype.intercept=function(t){return le(this,t)},e.prototype.observe=function(t,e){return e&&t({object:this,type:"update",newValue:this.value,oldValue:void 0}),ge(this,t)},e.prototype.toJSON=function(){return this.get()},e.prototype.toString=function(){return this.name+"["+this.value+"]"},e.prototype.valueOf=function(){return w(this.get())},e}(R);Mt.prototype[x()]=Mt.prototype.valueOf,v("ObservableValue",Mt);var xt=function(){function t(t){this.dependenciesState=rt.NOT_TRACKING,this.observing=[],this.newObserving=null,this.isBeingObserved=!1,this.isPendingUnobservation=!1,this.observers=[],this.observersIndexes={},this.diffValue=0,this.runId=0,this.lastAccessedBy=0,this.lowestObserverState=rt.UP_TO_DATE,this.unboundDepsCount=0,this.__mapid="#"+g(),this.value=new it(null),this.isComputing=!1,this.isRunningSetter=!1,this.isTracing=ot.NONE,p(t.get,"missing option for computed: get"),this.derivation=t.get,this.name=t.name||"ComputedValue@"+g(),t.set&&(this.setter=Ot(this.name+"-setter",t.set)),this.equals=t.equals||(t.compareStructural||t.struct?D.structural:D.default),this.scope=t.context,this.requiresReaction=!!t.requiresReaction,this.keepAlive=!!t.keepAlive}return t.prototype.onBecomeStale=function(){!function(t){if(t.lowestObserverState===rt.UP_TO_DATE){t.lowestObserverState=rt.POSSIBLY_STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.UP_TO_DATE&&(a.dependenciesState=rt.POSSIBLY_STALE,a.isTracing!==ot.NONE&&Lt(a,t),a.onBecomeStale())}}}(this)},t.prototype.onBecomeUnobserved=function(){},t.prototype.onBecomeObserved=function(){},t.prototype.get=function(){this.isComputing&&f("Cycle detected in computation "+this.name+": "+this.derivation),0!==kt.inBatch||0!==this.observers.length||this.keepAlive?(Dt(this),ct(this)&&this.trackAndCompute()&&function(t){if(t.lowestObserverState!==rt.STALE){t.lowestObserverState=rt.STALE;for(var e=t.observers,n=e.length;n--;){var a=e[n];a.dependenciesState===rt.POSSIBLY_STALE?a.dependenciesState=rt.STALE:a.dependenciesState===rt.UP_TO_DATE&&(t.lowestObserverState=rt.UP_TO_DATE)}}}(this)):ct(this)&&(this.warnAboutUntrackedRead(),At(),this.value=this.computeValue(!1),Et());var t=this.value;if(st(t))throw t.cause;return t},t.prototype.peek=function(){var t=this.computeValue(!1);if(st(t))throw t.cause;return t},t.prototype.set=function(t){if(this.setter){p(!this.isRunningSetter,"The setter of computed value '"+this.name+"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?"),this.isRunningSetter=!0;try{this.setter.call(this.scope,t)}finally{this.isRunningSetter=!1}}else p(!1,!1)},t.prototype.trackAndCompute=function(){zt()&&Gt({object:this.scope,type:"compute",name:this.name});var t=this.value,e=this.dependenciesState===rt.NOT_TRACKING,n=this.computeValue(!0),a=e||st(t)||st(n)||!this.equals(t,n);return a&&(this.value=n),a},t.prototype.computeValue=function(t){var e;if(this.isComputing=!0,kt.computationDepth++,t)e=dt(this,this.derivation,this.scope);else if(!0===kt.disableErrorBoundaries)e=this.derivation.call(this.scope);else try{e=this.derivation.call(this.scope)}catch(n){e=new it(n)}return kt.computationDepth--,this.isComputing=!1,e},t.prototype.suspend=function(){this.keepAlive||(ut(this),this.value=void 0)},t.prototype.observe=function(t,e){var n=this,a=!0,r=void 0;return Zt((function(){var o=n.get();if(!a||e){var i=ft();t({type:"update",object:n,newValue:o,oldValue:r}),pt(i)}a=!1,r=o}))},t.prototype.warnAboutUntrackedRead=function(){},t.prototype.toJSON=function(){return this.get()},t.prototype.toString=function(){return this.name+"["+this.derivation.toString()+"]"},t.prototype.valueOf=function(){return w(this.get())},t}();xt.prototype[x()]=xt.prototype.valueOf;var wt=v("ComputedValue",xt),Tt=function(){return function(){this.version=5,this.UNCHANGED={},this.trackingDerivation=null,this.computationDepth=0,this.runId=0,this.mobxGuid=0,this.inBatch=0,this.pendingUnobservations=[],this.pendingReactions=[],this.isRunningReactions=!1,this.allowStateChanges=!0,this.allowStateReads=!0,this.enforceActions=!1,this.spyListeners=[],this.globalReactionErrorHandlers=[],this.computedRequiresReaction=!1,this.reactionRequiresObservable=!1,this.observableRequiresReaction=!1,this.computedConfigurable=!1,this.disableErrorBoundaries=!1,this.suppressReactionErrors=!1}}(),St=!0,kt=function(){var t=u();return t.__mobxInstanceCount>0&&!t.__mobxGlobals&&(St=!1),t.__mobxGlobals&&t.__mobxGlobals.version!==(new Tt).version&&(St=!1),St?t.__mobxGlobals?(t.__mobxInstanceCount+=1,t.__mobxGlobals.UNCHANGED||(t.__mobxGlobals.UNCHANGED={}),t.__mobxGlobals):(t.__mobxInstanceCount=1,t.__mobxGlobals=new Tt):(setTimeout((function(){f("There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`")}),1),new Tt)}();function It(t,e){var n=t.observers.length;n&&(t.observersIndexes[e.__mapid]=n),t.observers[n]=e,t.lowestObserverState>e.dependenciesState&&(t.lowestObserverState=e.dependenciesState)}function Nt(t,e){if(1===t.observers.length)t.observers.length=0,Rt(t);else{var n=t.observers,a=t.observersIndexes,r=n.pop();if(r!==e){var o=a[e.__mapid]||0;o?a[r.__mapid]=o:delete a[r.__mapid],n[o]=r}delete a[e.__mapid]}}function Rt(t){!1===t.isPendingUnobservation&&(t.isPendingUnobservation=!0,kt.pendingUnobservations.push(t))}function At(){kt.inBatch++}function Et(){if(0==--kt.inBatch){jt();for(var t=kt.pendingUnobservations,e=0;e<t.length;e++){var n=t[e];n.isPendingUnobservation=!1,0===n.observers.length&&(n.isBeingObserved&&(n.isBeingObserved=!1,n.onBecomeUnobserved()),n instanceof xt&&n.suspend())}kt.pendingUnobservations=[]}}function Dt(t){var e=kt.trackingDerivation;return null!==e?(e.runId!==t.lastAccessedBy&&(t.lastAccessedBy=e.runId,e.newObserving[e.unboundDepsCount++]=t,t.isBeingObserved||(t.isBeingObserved=!0,t.onBecomeObserved())),!0):(0===t.observers.length&&kt.inBatch>0&&Rt(t),!1)}function Lt(t,e){if(console.log("[mobx.trace] '"+t.name+"' is invalidated due to a change in: '"+e.name+"'"),t.isTracing===ot.BREAK){var n=[];!function t(e,n,a){n.length>=1e3?n.push("(and many more)"):(n.push(""+new Array(a).join("\t")+e.name),e.dependencies&&e.dependencies.forEach((function(e){return t(e,n,a+1)})))}((a=t,ae(Ve(a,void 0))),n,1),new Function("debugger;\n/*\nTracing '"+t.name+"'\n\nYou are entering this break point because derivation '"+t.name+"' is being traced and '"+e.name+"' is now forcing it to update.\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\n\n"+(t instanceof xt?t.derivation.toString().replace(/[*]\//g,"/"):"")+"\n\nThe dependencies for this derivation are:\n\n"+n.join("\n")+"\n*/\n    ")()}var a}var qt=function(){function t(t,e,n,a){void 0===t&&(t="Reaction@"+g()),void 0===a&&(a=!1),this.name=t,this.onInvalidate=e,this.errorHandler=n,this.requiresObservable=a,this.observing=[],this.newObserving=[],this.dependenciesState=rt.NOT_TRACKING,this.diffValue=0,this.runId=0,this.unboundDepsCount=0,this.__mapid="#"+g(),this.isDisposed=!1,this._isScheduled=!1,this._isTrackPending=!1,this._isRunning=!1,this.isTracing=ot.NONE}return t.prototype.onBecomeStale=function(){this.schedule()},t.prototype.schedule=function(){this._isScheduled||(this._isScheduled=!0,kt.pendingReactions.push(this),jt())},t.prototype.isScheduled=function(){return this._isScheduled},t.prototype.runReaction=function(){if(!this.isDisposed){if(At(),this._isScheduled=!1,ct(this)){this._isTrackPending=!0;try{this.onInvalidate(),this._isTrackPending&&zt()&&Gt({name:this.name,type:"scheduled-reaction"})}catch(t){this.reportExceptionInDerivation(t)}}Et()}},t.prototype.track=function(t){At();var e,n=zt();n&&(e=Date.now(),Bt({name:this.name,type:"reaction"})),this._isRunning=!0;var a=dt(this,t,void 0);this._isRunning=!1,this._isTrackPending=!1,this.isDisposed&&ut(this),st(a)&&this.reportExceptionInDerivation(a.cause),n&&Yt({time:Date.now()-e}),Et()},t.prototype.reportExceptionInDerivation=function(t){var e=this;if(this.errorHandler)this.errorHandler(t,this);else{if(kt.disableErrorBoundaries)throw t;var n="[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '"+this+"'";kt.suppressReactionErrors?console.warn("[mobx] (error in reaction '"+this.name+"' suppressed, fix error of causing action below)"):console.error(n,t),zt()&&Gt({type:"error",name:this.name,message:n,error:""+t}),kt.globalReactionErrorHandlers.forEach((function(n){return n(t,e)}))}},t.prototype.dispose=function(){this.isDisposed||(this.isDisposed=!0,this._isRunning||(At(),ut(this),Et()))},t.prototype.getDisposer=function(){var t=this.dispose.bind(this);return t.$mobx=this,t},t.prototype.toString=function(){return"Reaction["+this.name+"]"},t.prototype.trace=function(t){void 0===t&&(t=!1),function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=!1;"boolean"==typeof t[t.length-1]&&(n=t.pop());var a=ie(t);if(!a)return f(!1);a.isTracing===ot.NONE&&console.log("[mobx.trace] '"+a.name+"' tracing enabled"),a.isTracing=n?ot.BREAK:ot.LOG}(this,t)},t}();function jt(){kt.inBatch>0||kt.isRunningReactions||function(){kt.isRunningReactions=!0;for(var t=kt.pendingReactions,e=0;t.length>0;){100==++e&&(console.error("Reaction doesn't converge to a stable state after 100 iterations. Probably there is a cycle in the reactive function: "+t[0]),t.splice(0));for(var n=t.splice(0),a=0,r=n.length;a<r;a++)n[a].runReaction()}kt.isRunningReactions=!1}()}var Ft=v("Reaction",qt);function zt(){return!!kt.spyListeners.length}function Gt(t){if(kt.spyListeners.length)for(var e=kt.spyListeners,n=0,a=e.length;n<a;n++)e[n](t)}function Bt(t){Gt(o(o({},t),{spyReportStart:!0}))}var Vt={spyReportEnd:!0};function Yt(t){Gt(t?o(o({},t),{spyReportEnd:!0}):Vt)}function Ht(){f(!1)}function Ut(t){return function(e,n,a){if(a){if(a.value)return{value:Ot(t,a.value),enumerable:!1,configurable:!0,writable:!0};var r=a.initializer;return{enumerable:!1,configurable:!0,writable:!0,initializer:function(){return Ot(t,r.call(this))}}}return Wt(t).apply(this,arguments)}}function Wt(t){return function(e,n,a){Object.defineProperty(e,n,{configurable:!0,enumerable:!1,get:function(){},set:function(e){_(this,n,Kt(t,e))}})}}var Kt=function(t,e,n,a){return 1===arguments.length&&"function"==typeof t?Ot(t.name||"<unnamed action>",t):2===arguments.length&&"function"==typeof e?Ot(t,e):1===arguments.length&&"string"==typeof t?Ut(t):!0!==a?Ut(e).apply(null,arguments):void(t[e]=Ot(t.name||e,n.value))};function $t(t,e,n){_(t,e,Ot(e,n.bind(t)))}function Zt(t,e){void 0===e&&(e=l);var n,a=e&&e.name||t.name||"Autorun@"+g();if(e.scheduler||e.delay){var r=Xt(e),o=!1;n=new qt(a,(function(){o||(o=!0,r((function(){o=!1,n.isDisposed||n.track(i)})))}),e.onError,e.requiresObservable)}else n=new qt(a,(function(){this.track(i)}),e.onError,e.requiresObservable);function i(){t(n)}return n.schedule(),n.getDisposer()}Kt.bound=function(t,e,n,a){return!0===a?($t(t,e,n.value),null):n?{configurable:!0,enumerable:!1,get:function(){return $t(this,e,n.value||n.initializer.call(this)),this[e]},set:Ht}:{enumerable:!1,configurable:!0,set:function(t){$t(this,e,t)},get:function(){}}};var Jt=function(t){return t()};function Xt(t){return t.scheduler?t.scheduler:t.delay?function(e){return setTimeout(e,t.delay)}:Jt}function Qt(t,e,n){void 0===n&&(n=l),"boolean"==typeof n&&(n={fireImmediately:n});var a,r,o,i=n.name||"Reaction@"+g(),s=Kt(i,n.onError?(a=n.onError,r=e,function(){try{return r.apply(this,arguments)}catch(t){a.call(this,t)}}):e),c=!n.scheduler&&!n.delay,d=Xt(n),u=!0,f=!1,p=n.compareStructural?D.structural:n.equals||D.default,m=new qt(i,(function(){u||c?h():f||(f=!0,d(h))}),n.onError,n.requiresObservable);function h(){if(f=!1,!m.isDisposed){var e=!1;m.track((function(){var n=t(m);e=u||!p(o,n),o=n})),u&&n.fireImmediately&&s(o,m),u||!0!==e||s(o,m),u&&(u=!1)}}return m.schedule(),m.getDisposer()}function te(t,e,n){return ee("onBecomeUnobserved",t,e,n)}function ee(t,e,n,a){var r="function"==typeof a?Ve(e,n):Ve(e),o="function"==typeof a?a:n,i=r[t];return"function"!=typeof i?f(!1):(r[t]=function(){i.call(this),o.call(this)},function(){r[t]=i})}function ne(t,e,n,a){var r=(a=U(a)).defaultDecorator||(!1===a.deep?Z:K);F(t),qe(t,a.name,r.enhancer),At();try{for(var o in e){var i=Object.getOwnPropertyDescriptor(e,o),s=(n&&o in n?n[o]:i.get?et:r)(t,o,i,!0);s&&Object.defineProperty(t,o,s)}}finally{Et()}return t}function ae(t){var e,n,a={name:t.name};return t.observing&&t.observing.length>0&&(a.dependencies=(e=t.observing,n=[],e.forEach((function(t){-1===n.indexOf(t)&&n.push(t)})),n).map(ae)),a}function re(t,e){if(null==t)return!1;if(void 0!==e){if(Be(t)){var n=t.$mobx;return n.values&&!!n.values[e]}return!1}return Be(t)||!!t.$mobx||A(t)||Ft(t)||wt(t)}function oe(t){return 1!==arguments.length&&f(!1),re(t)}function ie(t){switch(t.length){case 0:return kt.trackingDerivation;case 1:return Ve(t[0]);case 2:return Ve(t[0],t[1])}}function se(t,e){void 0===e&&(e=void 0),At();try{return t.apply(e)}finally{Et()}}function ce(t){return void 0!==t.interceptors&&t.interceptors.length>0}function le(t,e){var n=t.interceptors||(t.interceptors=[]);return n.push(e),m((function(){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}))}function de(t,e){var n=ft();try{var a=t.interceptors;if(a)for(var r=0,o=a.length;r<o&&(p(!(e=a[r](e))||e.type,"Intercept handlers should return nothing or a change object"),e);r++);return e}finally{pt(n)}}function ue(t){return void 0!==t.changeListeners&&t.changeListeners.length>0}function ge(t,e){var n=t.changeListeners||(t.changeListeners=[]);return n.push(e),m((function(){var t=n.indexOf(e);-1!==t&&n.splice(t,1)}))}function fe(t,e){var n=ft(),a=t.changeListeners;if(a){for(var r=0,o=(a=a.slice()).length;r<o;r++)a[r](e);pt(n)}}Object.create(Error.prototype);var pe,me,he,be,ye=(pe=!1,me={},Object.defineProperty(me,"0",{set:function(){pe=!0}}),Object.create(me)[0]=1,!1===pe),_e=0,Oe=function(){return function(){}}();he=Oe,be=Array.prototype,void 0!==Object.setPrototypeOf?Object.setPrototypeOf(he.prototype,be):void 0!==he.prototype.__proto__?he.prototype.__proto__=be:he.prototype=be,Object.isFrozen(Array)&&["constructor","push","shift","concat","pop","unshift","replace","find","findIndex","splice","reverse","sort"].forEach((function(t){Object.defineProperty(Oe.prototype,t,{configurable:!0,writable:!0,value:Array.prototype[t]})}));var ve=function(){function t(t,e,n,a){this.array=n,this.owned=a,this.values=[],this.lastKnownLength=0,this.atom=new R(t||"ObservableArray@"+g()),this.enhancer=function(n,a){return e(n,a,t+"[..]")}}return t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.dehanceValues=function(t){return void 0!==this.dehancer&&t.length>0?t.map(this.dehancer):t},t.prototype.intercept=function(t){return le(this,t)},t.prototype.observe=function(t,e){return void 0===e&&(e=!1),e&&t({object:this.array,type:"splice",index:0,added:this.values.slice(),addedCount:this.values.length,removed:[],removedCount:0}),ge(this,t)},t.prototype.getArrayLength=function(){return this.atom.reportObserved(),this.values.length},t.prototype.setArrayLength=function(t){if("number"!=typeof t||t<0)throw new Error("[mobx.array] Out of range: "+t);var e=this.values.length;if(t!==e)if(t>e){for(var n=new Array(t-e),a=0;a<t-e;a++)n[a]=void 0;this.spliceWithArray(e,0,n)}else this.spliceWithArray(t,e-t)},t.prototype.updateArrayLength=function(t,e){if(t!==this.lastKnownLength)throw new Error("[mobx] Modification exception: the internal structure of an observable array was changed. Did you use peek() to change it?");this.lastKnownLength+=e,e>0&&t+e+1>_e&&we(t+e+1)},t.prototype.spliceWithArray=function(t,e,n){var a=this;lt(this.atom);var r=this.values.length;if(void 0===t?t=0:t>r?t=r:t<0&&(t=Math.max(0,r+t)),e=1===arguments.length?r-t:null==e?0:Math.max(0,Math.min(e,r-t)),void 0===n&&(n=c),ce(this)){var o=de(this,{object:this.array,type:"splice",index:t,removedCount:e,added:n});if(!o)return c;e=o.removedCount,n=o.added}var i=(n=0===n.length?n:n.map((function(t){return a.enhancer(t,void 0)}))).length-e;this.updateArrayLength(r,i);var s=this.spliceItemsIntoValues(t,e,n);return 0===e&&0===n.length||this.notifyArraySplice(t,n,s),this.dehanceValues(s)},t.prototype.spliceItemsIntoValues=function(t,e,n){var a;if(n.length<1e4)return(a=this.values).splice.apply(a,s([t,e],n));var r=this.values.slice(t,t+e);return this.values=this.values.slice(0,t).concat(n,this.values.slice(t+e)),r},t.prototype.notifyArrayChildUpdate=function(t,e,n){var a=!this.owned&&zt(),r=ue(this),i=r||a?{object:this.array,type:"update",index:t,newValue:e,oldValue:n}:null;a&&Bt(o(o({},i),{name:this.atom.name})),this.atom.reportChanged(),r&&fe(this,i),a&&Yt()},t.prototype.notifyArraySplice=function(t,e,n){var a=!this.owned&&zt(),r=ue(this),i=r||a?{object:this.array,type:"splice",index:t,removed:n,added:e,removedCount:n.length,addedCount:e.length}:null;a&&Bt(o(o({},i),{name:this.atom.name})),this.atom.reportChanged(),r&&fe(this,i),a&&Yt()},t}(),Ce=function(t){function e(e,n,a,r){void 0===a&&(a="ObservableArray@"+g()),void 0===r&&(r=!1);var o=t.call(this)||this,i=new ve(a,n,o,r);if(O(o,"$mobx",i),e&&e.length){var s=Ct(!0);o.spliceWithArray(0,0,e),Pt(s)}return ye&&Object.defineProperty(i.array,"0",Pe),o}return r(e,t),e.prototype.intercept=function(t){return this.$mobx.intercept(t)},e.prototype.observe=function(t,e){return void 0===e&&(e=!1),this.$mobx.observe(t,e)},e.prototype.clear=function(){return this.splice(0)},e.prototype.concat=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this.$mobx.atom.reportObserved(),Array.prototype.concat.apply(this.peek(),t.map((function(t){return Se(t)?t.peek():t})))},e.prototype.replace=function(t){return this.$mobx.spliceWithArray(0,this.$mobx.values.length,t)},e.prototype.toJS=function(){return this.slice()},e.prototype.toJSON=function(){return this.toJS()},e.prototype.peek=function(){return this.$mobx.atom.reportObserved(),this.$mobx.dehanceValues(this.$mobx.values)},e.prototype.find=function(t,e,n){void 0===n&&(n=0);var a=this.findIndex.apply(this,arguments);return-1===a?void 0:this.get(a)},e.prototype.findIndex=function(t,e,n){void 0===n&&(n=0);for(var a=this.peek(),r=a.length,o=n;o<r;o++)if(t.call(e,a[o],o,this))return o;return-1},e.prototype.splice=function(t,e){for(var n=[],a=2;a<arguments.length;a++)n[a-2]=arguments[a];switch(arguments.length){case 0:return[];case 1:return this.$mobx.spliceWithArray(t);case 2:return this.$mobx.spliceWithArray(t,e)}return this.$mobx.spliceWithArray(t,e,n)},e.prototype.spliceWithArray=function(t,e,n){return this.$mobx.spliceWithArray(t,e,n)},e.prototype.push=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this.$mobx;return n.spliceWithArray(n.values.length,0,t),n.values.length},e.prototype.pop=function(){return this.splice(Math.max(this.$mobx.values.length-1,0),1)[0]},e.prototype.shift=function(){return this.splice(0,1)[0]},e.prototype.unshift=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n=this.$mobx;return n.spliceWithArray(0,0,t),n.values.length},e.prototype.reverse=function(){var t=this.slice();return t.reverse.apply(t,arguments)},e.prototype.sort=function(t){var e=this.slice();return e.sort.apply(e,arguments)},e.prototype.remove=function(t){var e=this.$mobx.dehanceValues(this.$mobx.values).indexOf(t);return e>-1&&(this.splice(e,1),!0)},e.prototype.move=function(t,e){function n(t){if(t<0)throw new Error("[mobx.array] Index out of bounds: "+t+" is negative");var e=this.$mobx.values.length;if(t>=e)throw new Error("[mobx.array] Index out of bounds: "+t+" is not smaller than "+e)}if(n.call(this,t),n.call(this,e),t!==e){var a,r=this.$mobx.values;a=t<e?s(r.slice(0,t),r.slice(t+1,e+1),[r[t]],r.slice(e+1)):s(r.slice(0,e),[r[t]],r.slice(e,t),r.slice(t+1)),this.replace(a)}},e.prototype.get=function(t){var e=this.$mobx;if(e){if(t<e.values.length)return e.atom.reportObserved(),e.dehanceValue(e.values[t]);console.warn("[mobx.array] Attempt to read an array index ("+t+") that is out of bounds ("+e.values.length+"). Please check length first. Out of bound indices will not be tracked by MobX")}},e.prototype.set=function(t,e){var n=this.$mobx,a=n.values;if(t<a.length){lt(n.atom);var r=a[t];if(ce(n)){var o=de(n,{type:"update",object:this,index:t,newValue:e});if(!o)return;e=o.newValue}(e=n.enhancer(e,r))!==r&&(a[t]=e,n.notifyArrayChildUpdate(t,e,r))}else{if(t!==a.length)throw new Error("[mobx.array] Index out of bounds, "+t+" is larger than "+a.length);n.spliceWithArray(t,0,[e])}},e}(Oe);S(Ce.prototype,(function(){this.$mobx.atom.reportObserved();var t=this,e=0;return k({next:function(){return e<t.length?{value:t[e++],done:!1}:{done:!0,value:void 0}}})})),Object.defineProperty(Ce.prototype,"length",{enumerable:!1,configurable:!0,get:function(){return this.$mobx.getArrayLength()},set:function(t){this.$mobx.setArrayLength(t)}}),_(Ce.prototype,I(),"Array"),["every","filter","forEach","indexOf","join","lastIndexOf","map","reduce","reduceRight","slice","some","toString","toLocaleString"].forEach((function(t){var e=Array.prototype[t];p("function"==typeof e,"Base function not defined on Array prototype: '"+t+"'"),_(Ce.prototype,t,(function(){return e.apply(this.peek(),arguments)}))})),function(t,e){for(var n=0;n<e.length;n++)_(t,e[n],t[e[n]])}(Ce.prototype,["constructor","intercept","observe","clear","concat","get","replace","toJS","toJSON","peek","find","findIndex","splice","spliceWithArray","push","pop","set","shift","unshift","reverse","sort","remove","move","toString","toLocaleString"]);var Pe=Me(0);function Me(t){return{enumerable:!1,configurable:!1,get:function(){return this.get(t)},set:function(e){this.set(t,e)}}}function xe(t){Object.defineProperty(Ce.prototype,""+t,Me(t))}function we(t){for(var e=_e;e<t;e++)xe(e);_e=t}we(1e3);var Te=v("ObservableArrayAdministration",ve);function Se(t){return b(t)&&Te(t.$mobx)}var ke={},Ie=function(){function t(t,e,n){if(void 0===e&&(e=B),void 0===n&&(n="ObservableMap@"+g()),this.enhancer=e,this.name=n,this.$mobx=ke,this._keys=new Ce(void 0,V,this.name+".keys()",!0),"function"!=typeof Map)throw new Error("mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js");this._data=new Map,this._hasMap=new Map,this.merge(t)}return t.prototype._has=function(t){return this._data.has(t)},t.prototype.has=function(t){var e=this;if(!kt.trackingDerivation)return this._has(t);var n=this._hasMap.get(t);if(!n){var a=n=new Mt(this._has(t),V,this.name+"."+Ne(t)+"?",!1);this._hasMap.set(t,a),te(a,(function(){return e._hasMap.delete(t)}))}return n.get()},t.prototype.set=function(t,e){var n=this._has(t);if(ce(this)){var a=de(this,{type:n?"update":"add",object:this,newValue:e,name:t});if(!a)return this;e=a.newValue}return n?this._updateValue(t,e):this._addValue(t,e),this},t.prototype.delete=function(t){var e=this;if(ce(this)&&!(r=de(this,{type:"delete",object:this,name:t})))return!1;if(this._has(t)){var n=zt(),a=ue(this),r=a||n?{type:"delete",object:this,oldValue:this._data.get(t).value,name:t}:null;return n&&Bt(o(o({},r),{name:this.name,key:t})),se((function(){e._keys.remove(t),e._updateHasMapEntry(t,!1),e._data.get(t).setNewValue(void 0),e._data.delete(t)})),a&&fe(this,r),n&&Yt(),!0}return!1},t.prototype._updateHasMapEntry=function(t,e){var n=this._hasMap.get(t);n&&n.setNewValue(e)},t.prototype._updateValue=function(t,e){var n=this._data.get(t);if((e=n.prepareNewValue(e))!==kt.UNCHANGED){var a=zt(),r=ue(this),i=r||a?{type:"update",object:this,oldValue:n.value,name:t,newValue:e}:null;a&&Bt(o(o({},i),{name:this.name,key:t})),n.setNewValue(e),r&&fe(this,i),a&&Yt()}},t.prototype._addValue=function(t,e){var n=this;se((function(){var a=new Mt(e,n.enhancer,n.name+"."+Ne(t),!1);n._data.set(t,a),e=a.value,n._updateHasMapEntry(t,!0),n._keys.push(t)}));var a=zt(),r=ue(this),i=r||a?{type:"add",object:this,name:t,newValue:e}:null;a&&Bt(o(o({},i),{name:this.name,key:t})),r&&fe(this,i),a&&Yt()},t.prototype.get=function(t){return this.has(t)?this.dehanceValue(this._data.get(t).get()):this.dehanceValue(void 0)},t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.keys=function(){return this._keys[T()]()},t.prototype.values=function(){var t=this,e=0;return k({next:function(){return e<t._keys.length?{value:t.get(t._keys[e++]),done:!1}:{value:void 0,done:!0}}})},t.prototype.entries=function(){var t=this,e=0;return k({next:function(){if(e<t._keys.length){var n=t._keys[e++];return{value:[n,t.get(n)],done:!1}}return{done:!0}}})},t.prototype.forEach=function(t,e){var n=this;this._keys.forEach((function(a){return t.call(e,n.get(a),a,n)}))},t.prototype.merge=function(t){var e=this;return Re(t)&&(t=t.toJS()),se((function(){y(t)?Object.keys(t).forEach((function(n){return e.set(n,t[n])})):Array.isArray(t)?t.forEach((function(t){var n=i(t,2);return e.set(n[0],n[1])})):C(t)?t.constructor!==Map?f("Cannot initialize from classes that inherit from Map: "+t.constructor.name):t.forEach((function(t,n){return e.set(n,t)})):null!=t&&f("Cannot initialize map from "+t)})),this},t.prototype.clear=function(){var t=this;se((function(){gt((function(){t._keys.slice().forEach((function(e){return t.delete(e)}))}))}))},t.prototype.replace=function(t){var e=this;return se((function(){for(var n,a=C(n=t)||Re(n)?n:Array.isArray(n)?new Map(n):y(n)?new Map(Object.entries(n)):f("Cannot convert to map from '"+n+"'"),r=e._keys,o=Array.from(a.keys()),i=!1,s=0;s<r.length;s++){var c=r[s];r.length===o.length&&c!==o[s]&&(i=!0),a.has(c)||(i=!0,e.delete(c))}a.forEach((function(t,n){e._data.has(n)||(i=!0),e.set(n,t)})),i&&e._keys.replace(o)})),this},Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.toPOJO=function(){var t=this,e={};return this._keys.forEach((function(n){return e["symbol"==typeof n?n:Ne(n)]=t.get(n)})),e},t.prototype.toJS=function(){var t=this,e=new Map;return this._keys.forEach((function(n){return e.set(n,t.get(n))})),e},t.prototype.toJSON=function(){return this.toPOJO()},t.prototype.toString=function(){var t=this;return this.name+"[{ "+this._keys.map((function(e){return Ne(e)+": "+t.get(e)})).join(", ")+" }]"},t.prototype.observe=function(t,e){return ge(this,t)},t.prototype.intercept=function(t){return le(this,t)},t}();function Ne(t){return t&&t.toString?t.toString():new String(t).toString()}S(Ie.prototype,(function(){return this.entries()})),O(Ie.prototype,I(),"Map");var Re=v("ObservableMap",Ie),Ae={},Ee=function(){function t(t,e,n){if(void 0===e&&(e=B),void 0===n&&(n="ObservableSet@"+g()),this.name=n,this.$mobx=Ae,this._data=new Set,this._atom=function(t,e,n){void 0===e&&(e=h),void 0===n&&(n=h);var a=new R(t);return ee("onBecomeObserved",a,e,void 0),te(a,n),a}(this.name),"function"!=typeof Set)throw new Error("mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js");this.enhancer=function(t,a){return e(t,a,n)},t&&this.replace(t)}return t.prototype.dehanceValue=function(t){return void 0!==this.dehancer?this.dehancer(t):t},t.prototype.clear=function(){var t=this;se((function(){gt((function(){t._data.forEach((function(e){t.delete(e)}))}))}))},t.prototype.forEach=function(t,e){var n=this;this._data.forEach((function(a){t.call(e,a,a,n)}))},Object.defineProperty(t.prototype,"size",{get:function(){return this._atom.reportObserved(),this._data.size},enumerable:!0,configurable:!0}),t.prototype.add=function(t){var e=this;if(lt(this._atom),ce(this)&&!(r=de(this,{type:"add",object:this,newValue:t})))return this;if(!this.has(t)){se((function(){e._data.add(e.enhancer(t,void 0)),e._atom.reportChanged()}));var n=zt(),a=ue(this),r=a||n?{type:"add",object:this,newValue:t}:null;a&&fe(this,r)}return this},t.prototype.delete=function(t){var e=this;if(ce(this)&&!(r=de(this,{type:"delete",object:this,oldValue:t})))return!1;if(this.has(t)){var n=zt(),a=ue(this),r=a||n?{type:"delete",object:this,oldValue:t}:null;return se((function(){e._atom.reportChanged(),e._data.delete(t)})),a&&fe(this,r),!0}return!1},t.prototype.has=function(t){return this._atom.reportObserved(),this._data.has(this.dehanceValue(t))},t.prototype.entries=function(){var t=0,e=M(this.keys()),n=M(this.values());return k({next:function(){var a=t;return t+=1,a<n.length?{value:[e[a],n[a]],done:!1}:{done:!0}}})},t.prototype.keys=function(){return this.values()},t.prototype.values=function(){this._atom.reportObserved();var t,e=this,n=0;return void 0!==this._data.values?t=M(this._data.values()):(t=[],this._data.forEach((function(e){return t.push(e)}))),k({next:function(){return n<t.length?{value:e.dehanceValue(t[n++]),done:!1}:{done:!0}}})},t.prototype.replace=function(t){var e=this;return De(t)&&(t=t.toJS()),se((function(){Array.isArray(t)?(e.clear(),t.forEach((function(t){return e.add(t)}))):P(t)?(e.clear(),t.forEach((function(t){return e.add(t)}))):null!=t&&f("Cannot initialize set from "+t)})),this},t.prototype.observe=function(t,e){return ge(this,t)},t.prototype.intercept=function(t){return le(this,t)},t.prototype.toJS=function(){return new Set(this)},t.prototype.toString=function(){return this.name+"[ "+M(this.keys()).join(", ")+" ]"},t}();S(Ee.prototype,(function(){return this.values()})),O(Ee.prototype,I(),"Set");var De=v("ObservableSet",Ee),Le=function(){function t(t,e,n){this.target=t,this.name=e,this.defaultEnhancer=n,this.values={}}return t.prototype.read=function(t,e){if(this.target===t||(this.illegalAccess(t,e),this.values[e]))return this.values[e].get()},t.prototype.write=function(t,e,n){var a=this.target;a!==t&&this.illegalAccess(t,e);var r=this.values[e];if(r instanceof xt)r.set(n);else{if(ce(this)){if(!(c=de(this,{type:"update",object:a,name:e,newValue:n})))return;n=c.newValue}if((n=r.prepareNewValue(n))!==kt.UNCHANGED){var i=ue(this),s=zt(),c=i||s?{type:"update",object:a,oldValue:r.value,name:e,newValue:n}:null;s&&Bt(o(o({},c),{name:this.name,key:e})),r.setNewValue(n),i&&fe(this,c),s&&Yt()}}},t.prototype.remove=function(t){if(this.values[t]){var e=this.target;if(ce(this)&&!(i=de(this,{object:e,name:t,type:"remove"})))return;try{At();var n=ue(this),a=zt(),r=this.values[t].get();this.keys&&this.keys.remove(t),delete this.values[t],delete this.target[t];var i=n||a?{type:"remove",object:e,oldValue:r,name:t}:null;a&&Bt(o(o({},i),{name:this.name,key:t})),n&&fe(this,i),a&&Yt()}finally{Et()}}},t.prototype.illegalAccess=function(t,e){console.warn("Property '"+e+"' of '"+t+"' was accessed through the prototype chain. Use 'decorate' instead to declare the prop or access it statically through it's owner")},t.prototype.observe=function(t,e){return ge(this,t)},t.prototype.intercept=function(t){return le(this,t)},t.prototype.getKeys=function(){var t=this;return void 0===this.keys&&(this.keys=new Ce(Object.keys(this.values).filter((function(e){return t.values[e]instanceof Mt})),V,"keys("+this.name+")",!0)),this.keys.slice()},t}();function qe(t,e,n){void 0===e&&(e=""),void 0===n&&(n=B);var a=t.$mobx;return a||(y(t)||(e=(t.constructor.name||"ObservableObject")+"@"+g()),e||(e="ObservableObject@"+g()),O(t,"$mobx",a=new Le(t,e,n)),a)}var je=Object.create(null),Fe=Object.create(null);function ze(t){return t.$mobx||(F(t),t.$mobx)}var Ge=v("ObservableObjectAdministration",Le);function Be(t){return!!b(t)&&(F(t),Ge(t.$mobx))}function Ve(t,e){if("object"==typeof t&&null!==t){if(Se(t))return void 0!==e&&f(!1),t.$mobx.atom;if(De(t))return t.$mobx;if(Re(t)){var n=t;return void 0===e?Ve(n._keys):((a=n._data.get(e)||n._hasMap.get(e))||f(!1),a)}var a;if(F(t),Be(t))return e?((a=t.$mobx.values[e])||f(!1),a):f(!1);if(A(t)||wt(t)||Ft(t))return t}else if("function"==typeof t&&Ft(t.$mobx))return t.$mobx;return f(!1)}var Ye=Object.prototype.toString;function He(t,e,n){return void 0===n&&(n=-1),function t(e,n,a,r,o){if(e===n)return 0!==e||1/e==1/n;if(null==e||null==n)return!1;if(e!=e)return n!=n;var i=typeof e;if("function"!==i&&"object"!==i&&"object"!=typeof n)return!1;e=Ue(e),n=Ue(n);var s=Ye.call(e);if(s!==Ye.call(n))return!1;switch(s){case"[object RegExp]":case"[object String]":return""+e==""+n;case"[object Number]":return+e!=+e?+n!=+n:0==+e?1/+e==1/n:+e==+n;case"[object Date]":case"[object Boolean]":return+e==+n;case"[object Symbol]":return"undefined"!=typeof Symbol&&Symbol.valueOf.call(e)===Symbol.valueOf.call(n)}var c="[object Array]"===s;if(!c){if("object"!=typeof e||"object"!=typeof n)return!1;var l=e.constructor,d=n.constructor;if(l!==d&&!("function"==typeof l&&l instanceof l&&"function"==typeof d&&d instanceof d)&&"constructor"in e&&"constructor"in n)return!1}if(0===a)return!1;a<0&&(a=-1),o=o||[];for(var u=(r=r||[]).length;u--;)if(r[u]===e)return o[u]===n;if(r.push(e),o.push(n),c){if((u=e.length)!==n.length)return!1;for(;u--;)if(!t(e[u],n[u],a-1,r,o))return!1}else{var g=Object.keys(e),f=void 0;if(u=g.length,Object.keys(n).length!==u)return!1;for(;u--;)if(!We(n,f=g[u])||!t(e[f],n[f],a-1,r,o))return!1}return r.pop(),o.pop(),!0}(t,e,n)}function Ue(t){return Se(t)?t.peek():C(t)||Re(t)?M(t.entries()):P(t)||De(t)?M(t.entries()):t}function We(t,e){return Object.prototype.hasOwnProperty.call(t,e)}"object"==typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__&&__MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({spy:function(t){return kt.spyListeners.push(t),m((function(){kt.spyListeners=kt.spyListeners.filter((function(e){return e!==t}))}))},extras:{getDebugName:function(t,e){return(void 0!==e?Ve(t,e):Be(t)||Re(t)||De(t)?function t(e,n){return e||f("Expecting some object"),void 0!==n?t(Ve(e,n)):A(e)||wt(e)||Ft(e)?e:Re(e)||De(e)?e:(F(e),e.$mobx?e.$mobx:void f(!1))}(t):Ve(t)).name}},$mobx:"$mobx"})},"2ykv":function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),a=[/^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],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,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:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},"3+CB":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="ko-KR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>네비게이션 전환</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>현황판</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>클러스터</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>호스트들</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>모니터들</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>서비스들</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD들</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>설정</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>크러쉬맵</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>메니저 모듈들</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>로그들</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>풀들</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>블럭</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>이미지들</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>미러링</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>파일시스템들</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>오브젝트게이트웨이</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>데몬들</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>버킷들</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>언어선택</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>패널 데이타 로딩 중...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>그라파나 타임 픽커</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>설정 초기화</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>뒤로</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>데이타 로딩 실폐</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>선택된</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>발견된</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>전체</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>이름</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>설명</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>자세한 설명</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>기본값</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>데모 기본값</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>값들</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>저장하기</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>크러쉬맵 보기</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>로딩중...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>호스트이름</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>이 필드는 필수적입니다.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>예, 확실합니다.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>취소</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>닫기</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>호스트 목록들</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>통합 성능치</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>항목들을 찾을 수 없음</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>클러스터 로그들</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>감사 로그들</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>설정 로딩 중</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>설정을 로드할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>관리모듈 편집하기</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>입력된 값이 유효한 UUID가 아닙니다, 예.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>입력된 값은 유효한 IP주소 여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>입력된 값은 적어도 하나의 숫자를 필요로 합니다.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>입력 된 값은 숫자 또는 십진수여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>갱신</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>클러스터 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>몬맵 변경시간</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>몬맵 변경번호</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>정족수 일치번호</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>정족수 모니터상태</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>요구되는 일치번호</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>요구되는 모니터상태</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>정족수에 포함</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>정족수 미포함</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>추가</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>특징들</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>클러스터-수준의 OSD 플레그들</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>제출</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>자세한 옵션...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 복구 우선순위</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>우선순위</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>우선 순위 값 맞춤 설정</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>이 필드는 요구됩니다!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>값은 0과 1사이어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>재-조정</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, 선택, 1 {깊이 } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, 선택, 1 {깊이 } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 목록들</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>값</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>편집</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>삭제</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>건강상태</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>통계들</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>클라이언트들</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>모든 클라이언트 접근가능</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>주소들</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>필수 입력란</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>반드시 하나 이상의 쉼표로 구분 된 값을 포함해야 함</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>예를들면:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>접근형태</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>클라이언트들 추가</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 사용가능 클러스터 없음 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 클러스터 선택 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>데몬 추가하기</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>스토리지 백엔드</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 이용가능한 데이타풀 없음 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 스토리지 백엔드 선택 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>객체 게이트웨이 사용자</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 사용가능한 사용자들 없음 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 객체 게이트웨이 사용자 선택 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 사용자 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 사용가능한 클라이언트 없음 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephx 클라이언트 선택 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 이름</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>보안 레이블</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>보안 레이블 사용</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 경로</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>경로는 \'/\'로 시작해야하며 그 뒤에 단어가 올 수 있습니다</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>새로운 디렉토리가 만들어 질 것입니다</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>경로</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>경로는 하나의 \'/\' 또는 하나의 단어 일 수 있습니다</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>새로운 버킷이 만들어 질 것입니다</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 프로토콜</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 태크</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>클라이언트는 하위 디렉토리를 마운트 할 수 없습니다 (즉, Tag = foo 인 경우 클라이언트가 foo / baz를 마운트하지 못할 수 있습니다).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>다른 태그 옵션을 사용하면 같은 경로를 여러 번 내보낼 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>다른 Pseudo 옵션을 사용하면 동일한 경로를 여러 번 내보낼 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 사용가능한 접근형태 없음 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 접근형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 사용가능한 squash 없음 --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 어떤 종류의 사용자 ID 스쿼시가 수행되는지 선택하세요 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>전송프로토콜</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Ceph 사용을 환영합니다.</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>사용자이름이 필요합니다</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>암호가 필요합니다</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>로그인</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>미안합니다. 사용자가 Ceph내에 존재하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>금지됨</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>미안합니다. 당신이 요청할 것을 열람하는 것이 허락되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 설정들</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>로컬 구성 값을 제거하십시오. 상위 구성 값은 계승되고 대신 사용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>최소값은 0입니다.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>풀 목록들</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>이름은 영숫자, 대시 및 밑줄로만 구성 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>선택한 Erasure Code 프로파일 이름이 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>플러그인</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>데이터 덩어리들 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>반드시 2보다 크거나 같아야합니다.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>코딩 덩어리들 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>반드시 1보다 크거나 같아야합니다.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>내구성 평가(c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>지역 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>크러쉬 실패 도메인</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>크러쉬 지역</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>없음</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>기술</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>패킷크기</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>크러쉬루트</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>크러쉬 장치 클래스</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>모든</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>디렉토리</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>이름...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>선택한 Ceph 풀이름이 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>풀 형태</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 풀 형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>게재위치 그룹</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>적어도 하나의 게재위치 그룹이 필요함!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>클러스터는 이 많은 PG들를 처리 할 수 없습니다. 필요한 PG 양을 다시 계산하십시오.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>계산 도움말</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>복제되는 크기</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>플레그들</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 덮어쓰기</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>응용프로그램들</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Erasure Code 프로파일</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 사용가능한 Erasure Code 프로파일 없음 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 한개의 Erasure Code 프로파일 선택 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>크러쉬 룰셋</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 크러쉬 룰 선택 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>크러쉬 룰</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>크러쉬 단계들</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>압축</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>양식</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>알고리즘</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 이용가능한 Erasure 압축알고리즘 없음 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>최소 blob 크기</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>예) 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>값은 0보다 커야합니다</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>최대 blob 크기</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>예) 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>값은 최소 blob 크기보다 커야 합니다</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>비율</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>압축율</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>값은 0.0과 1.0 사이 여야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>예., 100 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>세부설명</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>성능 세부정보들</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>케쉬 계층들 상세설명들</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>이미지를 휴지통에 이동</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>보호가 만료되는 </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>보호되지 않음</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>날짜 형식 오류. "YYYY-MM-DD HH:mm:ss" 형식으로 지정하세요.</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>보호기간이 이미 만료되었습니다. 더 미래의 날짜를 선택하거나 공란으로 남겨두세요.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>이미지 옮기기</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>개관</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>타겟들</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>인증 탐색</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>사용자이름은 8~64자까지 길이의 문자들을 가져야 하며 그리고, 오직 , \'.\', \'@\', \'-\', \'_\', \':\' 등의 특수 문자들만을 포함가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>암호</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>공동 사용자</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>공통 암호</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>이용가능한 정보:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI 타겟이 이용 불가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>풀</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>데이타 풀</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>생성된</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>크기</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>오브젝트들</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>객체크기</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>준비된</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>이용불가</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>준비된 총계</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>스트라이핑 단위</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>스트라이핑 횟수</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>상위</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>블록 이름 접두사</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>순서</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>스냅삿</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>이미지</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>이 설정은 전역 값을 덮어씁니다.</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>글로벌</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>이것은 전역 값입니다. 이 이미지에 대해 이 옵션의 값이 설정되지 않았습니다.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' 와 \'@\' 문자는 사용불가입니다.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 이용가능한 rbd풀 없음 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 풀 선택 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>전용 데이타 풀들을 사용하세요</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>데이타 풀</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>RBD의 객체-데이타를 저장하고 있는 전용 풀</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>사이즈를 증가시켜야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>자세한</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>분산저장</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>분산저장단위</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 분산저장단위 선택 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>분산저장 개수가 정의되어 있으므로 이 필드는 필수입니다!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>분산저장단위는 객체크기보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>분산저장 갯수</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>분산저장 단위가 정의되어 있으므로 이 필드는 필수입니다!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>분산저장 갯수는 반드시 0보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>롤백하려고 합니다.</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>휴지통 비우기</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>모든</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>풀:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>풀 이름:</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>이미지 복구하기</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>복구를 위해</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>이미지들의 새로운 이름을 입력하고 클릭하세요</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>새로운 이름</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>폐기될</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>까지 보호됨</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 토폴로지</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>기본설정 값들로 부터 인자를 변경하는 것은 일반적으로 필요하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>설정들</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>백스토어</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>확인</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>고급설정들</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>타겟 IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN이 잘못된 패턴을 가지고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Key\n예를들면: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>추가 정보</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>이 타겟은 고급설정들을 수정했습니다.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>포털</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>포털 추가</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>이 이미지는 설정들을 수정했습니다. </target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>이미지 추가</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 인증</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>개시자들</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>개시자들</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>클라이언트 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>개시자 IQN은 유일해야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>사용자이름은 8~64자까지 길이의 문자들을 가져야 하며 그리고, 오직 , \'.\', \'@\', \'-\', \'_\', \':\' 등의 특수 문자들만 포함이 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>개시자는 하나의 그룹에 속해야 하고, 이미지는 그룹안에서 설정합니다.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>추가된 아이템들이 없음</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>게시자 추가</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>그룹들</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>그룹</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>그룹추가</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>휴지통</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>이슈들</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>동기화중</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>준비됨</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>풀 미러모드를 편집하기</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>상대방 클러스터들은 미러를 단절하기 전에 반드시 제거되어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>클러스터 이름</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>클러스터 이름이 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX 아이디</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX 아이디...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX 아이디가 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>모니터 주소들</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>콤마로 분리된 주소들...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>모니터 주소가 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 키</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64로 인코딩 된 키 ...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 키는 반드시 base64로 인코드 되어야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>성능 카운터들을 사용 할 수 없음</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>데몬 목록들</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>성능 카운터</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>버킷데이타 적재 중</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>값이 유효하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>선택한 이름이 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>소유자</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 사용자 선택 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>이용가능</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>색인형식</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>위치규칙</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>표시</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>최대 마커</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>버젼</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>마스터 버젼</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>수정된 시간</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>제로그룹</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>버킷 할당량</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>최대 크기</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>무제한</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>최대 객체들</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>사용자명</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 사용자명 선택 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>자동생성된 키</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>접근 키</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>비밀 키</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>전체 이름</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>전자우편 주소</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>유예되다.</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>시스템</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>최대 버킷들</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>보조사용자들</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>능력치들</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>사용자 할당량</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>보기</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>키들</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>형태</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 형태 선택 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>권한</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 권한 선택 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>보조사용자</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>선택한 보조사용자 아이디가 이미 사용중입니다.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>읽기, 쓰기</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>가득찬</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>스위프트 키</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>자동생선된 비밀</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>사용자 데이타 적재 중...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>사용자 데이타를 적재할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>선택된 사용자 아이디가 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>이것은 유효한 전자우편 주소가 아닙니다.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>선택한 전자우편 주소가 이미 사용 중입니다.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>최대 버킷들</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>설정해제됨</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>커스텀</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 키</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>보조사용자가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>키가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>스위프트</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>능력치가 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>무제한 크기</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>최대 크기</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>무제한 객체들</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>최대 객체들</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>입력된 값은 반드시 0보다 커야 합니다.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>세부설명...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>권한들</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>역할들</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>암호 확인</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>암호 확인이 암호와 일치하지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>전자우편</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>유효하지않는 전자우편.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>당신의 사용자로부터 "사용자 읽기 / 업데이트"권한을 제거하려고합니다.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>계속하면 모든 사용자에게 역할을 추가하거나 제거 할 수 없게됩니다.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>계속 진행하기를 원하십니까?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>도움말</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>문서</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>대하여</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>대쉬보드 설정</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>사용자 관리</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>로그인된 사용자</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>로그아웃</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>속성들 (OSD 맵)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>메타데이타 사용할 수 없음</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>메타데이타</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>성능 카운터</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>쓰기</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>읽기</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>히스토그램</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>현재 값들</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>최소</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>최대</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>소스</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>수준</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>수행시간에 갱신가능함(편집가능)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>테크들</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>열거형 값들</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>추가로 더보기</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>클러스터 상태</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>관리자 데몬들</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>오브젝트 게이트웨이들</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>메타데이타 서버들</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 게이트웨이들</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>클라이언트 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>클라이언트 처리량</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>클라이언트 읽기/쓰기</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>복구 처리량</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>세정작업</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>성능</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>원시용량</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>OSD당 PG들</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 상태들</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>용량</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>순위</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>현재</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>업데이트된 검색 인증</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>사용가능한 포탈들이 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>사용가능한 이미지들이 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>사용할 수있는 이미지가 없습니다. 대상에 이미지를 추가했는지 확인하십시오.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>사용할 수있는 개시자가 없습니다. 대상에 개시자를 추가했는지 확인하십시오.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>타겟</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>읽은 바이트들</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>쓰기 바이트들</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>읽기 Ops</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>쓰기 Ops</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O 이래로</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>인스탄스</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>이슈</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>진행중</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>편집모드</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>상대방 추가</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>상대방 편집</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>상대방 삭제</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>리더</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># 로컬</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># 원격</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>상대방 미러</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>키</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>딥 패턴</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>계층화</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>배타적인 락</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>오프젝트-맵(배타적인-락을 요구한다)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>저널링(배탁적인-락을 요구합니다.)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>보호안됨</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 스냅샷 롤백</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>롤백</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 스냅샷</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>삭제될 </target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>아이디</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>형태</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>상태</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>버젼</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>호스트</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>루트</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>대기 데몬들</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>순위</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>데몬</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>활동</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>덴트리들</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>아이노드들</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>사용량</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>갱신된</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>이 값은 런타임에 업데이트 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>데몬들 / 클라이언트들은 모니터 구성 데이터베이스에서이 값을 가져 오지 않습니다. \'ceph config set ...\'을 통해이 옵션을 설정하는 것은 허락되지 않습니다. 이 옵션은 ceph.conf 또는 명령 줄을 통해 구성해야합니다.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>옵션은 데몬 시작 중에 만 적용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>옵션은 클러스터 생성할 때 만 영향을 줍니다.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>옵션은 데몬 생성할 때만 영향을줍니다.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>서비스</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>현재값</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>편집가능</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>사용가능</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>사용불가</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>재-접속 중, 기다려 주세요...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>공개 주소</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>열린 세션들</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>들어올 수 없는</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>이전에 마크 아웃 된 OSD는 시작시 다시 표시되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>나갈 수 없는</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD들은 구성된 간격 후에는 자동으로 표시되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>살아나지 않는</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD는 시작할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>죽일 수 없는</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>모니터가 OSD들의 다운을 표시하지 않도록 OSD 장애 보고서가 무시되고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>멈출</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>읽기와 쓰기를 멈춤</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>스크러빙 않됨</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>스크러빙이 비활성화되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>딥 스크럽 안됨</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>딥 스크러빙이 비활성되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>백필 없음</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG들의 백필이 일시중지 되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>복구 않됨</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG들의 복구가 일시중지 되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>비트단위 정렬</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>비트단위 정렬을 사용하세요</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>완전삭제된 스냅디렉토리들</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD들이 변화된 스냅셋을 가지고 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>삭제된 복구들</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>피어링 대신 복구 중에 수행된 삭제물들</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 로그 하드 한계</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>pg 로그 길이에 하드 한계를 넣으세요</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>갱신된 OSD 플래그들</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>아웃</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>인</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>다운</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>표시</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 손실</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>손실 표시</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>완전제거</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>완전제거된</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>파괴된</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>삭제</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>읽은 바이트들</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>쓰여진 바이트들</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>읽기 ops</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>쓰기 ops</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>최대 백필들</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>최대 활성화를 복구하기</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>최대 단일 시작을 복구하기</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>잠자기를 복구하기</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>일</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>심각도</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>시작된</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>사용된</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>이용가능:</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>깨끗한</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>정상동작중</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>경고</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>알려지지 않은</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>정상</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>파일시스템들 없음</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>활성화된</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>대기중인</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>이용불가</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>활성화된 데몬들</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>정족수</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganesha 서비스가 설정되지 않음</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>전송</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 사용자</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 파일시스템</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(전역 구성에서 상속)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>전역 구성에서 상속</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>- 어떤 종류의 사용자 ID 스쿼시가 수행되는지 선택 -</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>사용가능한 데몬이 없읍니다.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>캐쉬모드</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>최소 퇴거 연령</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>최소 플러시 연령</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>목표 최대 바이트들</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>목표 최대 오브젝트들</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>추가된 응용프로그램 없음</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>응용프로그램 한계에 도달함</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>하나의 풀은 오직 네개의 응용프로그램 정의들을 가질 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target> \'_a-zA-Z0-9\' 문자들만 허락됨</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>최대 길이는 128글자이다.</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>필터 또는 추가된 응용프로그램들</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>응용프로그램 추가</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>Erasure 코드 프로파일</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>복제 크기</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>마지막 변경</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Erasure 코드화된 프로파일</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>크러쉬 룰셋</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>버킷</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>버킷들</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>사용자</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>사용자들</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>범위</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>읽기</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>만들기</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>시스템 롤</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>갱신된 사용자</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>계속</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>당신의 롤들이 변경되어 당신은 자동적으로 로그아웃되었습니다.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>각각의 오브젝트들은 데이타-청크 부분들로 분리되어, 각기 다른 OSD에 보관됩니다.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>각 오브젝트들에 대한 코딩 청크를 계산하고 서로 다른 OSD에 저장합니다. \n코딩된 청크의 수는 데이터 손실없이 작동중지 되어 질 수있는 OSD의 숫자이기도합니다.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Jerasure 플러그인은 가장 일반적이고 유연한 플러그인으로,\n또한 Ceph erasure 코드 풀의 기본값이기도합니다.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>보다 유연한 기술은 reed_sol_van입니다 : k와 m을 설정하면 충분합니다. \ncauchy_good 기술은 빠를 수 있지만 패킷크기를 주의깊게 선택해야합니다. \nreed_sol_r6_op, liberation, blaum_roth, liber8tion은 모두 m = 2로만 구성 할 수 있다는 점에서 RAID-6에 해당합니다.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>인코딩은 한번에 바이트들 크기의 패킷에 대해 수행됩니다. 올바른 패킷 크기를 선택하는 것은 어렵습니다. jerasure 문서에는이 주제에 대한 광범위한 정보가 들어 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>jerasure 플러그인을 사용하면 삭제 된 코딩 된 객체가 여러 OSD에 저장 될 때 하나의 OSD가 손실되는 것을 복구하려면 다른 모든 OSD를 읽어야합니다. 예를 들어 jerasure가 k = 8 및 m = 4로 구성되어있는 경우 하나의 OSD를 잃어 버리면 11 명의 다른 사람들이 수리해야합니다.\nlrc erasure code plugin은 적은 양의 OSD를 사용하여 복구 할 수 있도록 로컬 패리티 청크를 만듭니다. 예를 들어, lrc가 k = 8, m = 4 및 l = 4로 구성된 경우 4 개의 OSD마다 추가 패리티 덩어리가 생성됩니다. 단일 OSD가 손실되면 11 개 대신 4 개의 OSD만으로 복구 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>코딩 및 데이터 청크를 크기 지역 집합으로 그룹화합니다. 예를 들어, k = 4 및 m = 2에 대해, 지역성 = 3 일 때 두 개의 세 그룹이 생성됩니다. 각 세트는 다른 세트의 청크를 읽지 않고도 복구 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>l로 정의 된 각 청크 집합이 저장되는 크러시 버킷의 유형입니다. 예를 들어 랙으로 설정하면 l 개의 청크 그룹이 각각 다른 랙에 배치됩니다. \n랙 선택 단계와 같은 CRUSH 규칙 단계를 만드는 데 사용됩니다. 설정되어 있지 않으면, 그러한 그룹화가 수행되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 플러그인은 ISA 라이브러리를 캡슐화합니다. 인텔 프로세서에서만 실행됩니다.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 플러그인은 두 개의 리드 솔로몬 형식으로 제공됩니다.\nreed_sol_van이 설정되면 Vandermonde, cauchy가 설정되면 Cauchy입니다.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec plugin은 다중 SHEC 라이브러리를 캡슐화합니다.\n           ceph가 리드 솔로몬 코드보다 더 효율적으로 데이터를 복구 할 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>각 데이터 청크가 계산 범위에 포함되는 패리티 청크의 수입니다. 이 수치는 내구성 측정기로 사용됩니다. 예를 들어, c = 2 인 경우 2 개의 OSD가 데이터 손실없이 중단 될 수 있습니다.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSH 규칙의 첫 번째 단계에 사용 된 크러시 버킷의 이름입니다. 예를 들어 step은 기본값을 취합니다.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>동일한 실패 도메인을 가진 양동이에 두 개의 청크가 없는지 확인하십시오. 예를 들어 실패 도메인이 호스트 인 경우 두 개의 청크가 동일한 호스트에 저장되지 않습니다. 이 단계는 리프 호스트를 선택하는 단계와 같은 CRUSH 규칙 단계를 만드는 데 사용됩니다.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>CRUSH지도에서 크래시 장치 클래스 이름을 사용하여 특정 클래스 (예 : ssd 또는 hdd)의 장치로 배치를 제한합니다.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>삭제 코드 플러그인이로드되는 디렉토리 이름을 설정하십시오.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>모든 작업들 허용</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>오직 서버를 수정하지 않는 작업들만 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>읽기와 쓰기 작업은 허용되지 않지만, 그외 모든 작업이 가능합니다.</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>파일의 속성과 디렉토리 내용을 변경하는 읽기, 쓰기 또는 어떠한 작업은 허용되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>전혀 어떠한 접근도 허용되지 않습니다.</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 우선순위 선택 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>낮음</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>높음</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>정보</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>마지막 5분</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>지난 15분</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>지난 30분</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>지난 1시간(기본)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>지난 3시간</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>지난 6시간</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>지난 12시간</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>지난 24시간</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>어제</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>오늘</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>오늘 지금까지</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>그저께</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>지난 2일</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>이번 주 마지막날</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>전주</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>이번주</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>이번주 지금까지</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>지난 7일</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>지난 달</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>이번 달</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>이번 달 지금까지</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>지난 30일</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>지난 90일</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>지난 6개월</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>지난 1년</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>전년도</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>금년도</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>금년 지금까지</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>지난 2년</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>지난 5년</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>선택된 아이템 없음</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>다시 선택하기 위해 아이템 선택을 취소</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>선택 한계에 도달함</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>필터 테그들</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>베찌 추가</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>사용가능한 아이템 없음</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>복제</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>복사</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>딥 스크럽</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>파괴됨</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>단조로움</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>다운 표시</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>인 표시</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>손실 표시</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>아웃 표시</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>보호</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>이름변경</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>복구</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>휴지통으로 옮기기</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>보호않됨</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>삭제돔</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>복제된</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>복사된</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>평평하게 됨</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>완전삭제됨</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>복구됨</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>롤백됨</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>예</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>아니오</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>서비스 량</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 한계</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>원하는 초당 IO 바이트 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 제한</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>원하는 초당 IO 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>읽기 BPS 제한</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>원하는 초당 읽기 바이스 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>읽기 IOPS 한도</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>원하는 초당 읽기 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>쓰기 BPS 한도</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>원하는 초당 쓰기 바이트 수 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>쓰기 IOPS 제한</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>원하는 초당 쓰기 작업 제한입니다.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>원하는 버스트 IO 바이트 한도 입니다.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>원하는 IO 작업의 버스트 한계입니다.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>읽기 BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>원하는 읽기 버스트 한계입니다.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>읽기 IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>원하는 읽기 작업의 버스트 한도입니다.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>쓰기 BPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>쓰기 바이트의 원하는 버스트 한도.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>쓰기 IOPS 버스트</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>쓰기 바이트의 원하는 버스트 한도.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>수행중</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>수행</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>수행된</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>알려지지 않는 작업</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>생성하는 중</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>생성</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>갱신 중</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>갱신</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>삭제 중</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>복제중</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>복제</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>복사중</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>복사</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>평평하게 하는 중</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>평평함</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>롤백 중</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>롤백</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>옮기는 중</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>옮기기</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>옮겨짐</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>이미지를 찾을 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>복구중</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>복구</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>완전삭제 중</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>완전삭제</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>모든 풀들</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>피어가 포함되어 있기 때문에 미러링을 비활성화 할 수 없습니다.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"3/HP":function(t,e,n){var a=n("mrSG").__assign,r=n("mrSG").__decorate,o=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("8Y7J"),s=n("5tze"),c=(n("bpWZ"),n("qwkt")),l=n("2V7f"),d=n("99TG"),u=n("QHrR"),g=n("i3PA"),f=n("fktO"),p=n("FLvf"),m=n("qCKp");e.DatatableComponent=function(){function t(t,e,n,a,r,o){this.scrollbarHelper=t,this.dimensionsHelper=e,this.cd=n,this.columnChangesService=o,this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.columnMode=c.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.loadingIndicator=!1,this.reorderable=!0,this.swapColumns=!0,this.sortType=c.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"datatable-icon-up",sortDescending:"datatable-icon-down",pagerLeftArrow:"datatable-icon-left",pagerRightArrow:"datatable-icon-right",pagerPrevious:"datatable-icon-prev",pagerNext:"datatable-icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total",selectedMessage:"selected"},this.rowIdentity=function(t){return t},this.groupExpansionDefault=!1,this.selectAllRowsOnPage=!1,this.virtualization=!0,this.summaryRow=!1,this.summaryHeight=30,this.summaryPosition="top",this.scroll=new i.EventEmitter,this.activate=new i.EventEmitter,this.select=new i.EventEmitter,this.sort=new i.EventEmitter,this.page=new i.EventEmitter,this.reorder=new i.EventEmitter,this.resize=new i.EventEmitter,this.tableContextmenu=new i.EventEmitter(!1),this.treeAction=new i.EventEmitter,this.rowCount=0,this._offsetX=new m.BehaviorSubject(0),this._count=0,this._offset=0,this._subscriptions=[],this.element=a.nativeElement,this.rowDiffer=r.find({}).create()}return Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,t&&(this._internalRows=t.slice()),this.externalSorting||this.sortInternalRows(),this._internalRows=s.groupRowsByParents(this._internalRows,s.optionalGetterForProp(this.treeFromRelation),s.optionalGetterForProp(this.treeToRelation)),this.recalculate(),this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"groupRowsBy",{get:function(){return this._groupRowsBy},set:function(t){t&&(this._groupRowsBy=t,this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){t&&(this._internalColumns=t.slice(),s.setColumnDefaults(this._internalColumns),this.recalculateColumns()),this._columns=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"limit",{get:function(){return this._limit},set:function(t){this._limit=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return Math.max(Math.min(this._offset,Math.ceil(this.rowCount/this.pageSize)-1),0)},set:function(t){this._offset=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedHeader",{get:function(){var t=this.headerHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedRow",{get:function(){var t=this.rowHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVirtualized",{get:function(){return this.virtualization},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===c.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCellSelection",{get:function(){return this.selectionType===c.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSingleSelection",{get:function(){return this.selectionType===c.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiSelection",{get:function(){return this.selectionType===c.SelectionType.multi},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiClickSelection",{get:function(){return this.selectionType===c.SelectionType.multiClick},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(t){this._columnTemplates=t,this.translateColumns(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){var t=this.rows&&this.selected&&this.selected.length===this.rows.length;if(this.selectAllRowsOnPage){var e=this.bodyComponent.indexes;t=this.selected.length===e.last-e.first}return this.selected&&this.rows&&0!==this.rows.length&&t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.recalculate()},t.prototype.ngAfterViewInit=function(){var t=this;this.externalSorting||this.sortInternalRows(),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame((function(){t.recalculate(),t.externalPaging&&t.scrollbarV&&t.page.emit({count:t.count,pageSize:t.pageSize,limit:t.limit,offset:0})}))},t.prototype.ngAfterContentInit=function(){var t=this;this.columnTemplates.changes.subscribe((function(e){return t.translateColumns(e)})),this.listenForColumnInputChanges()},t.prototype.translateColumns=function(t){if(t){var e=t.toArray();e.length&&(this._internalColumns=s.translateTemplates(e),s.setColumnDefaults(this._internalColumns),this.recalculateColumns(),this.sortInternalRows(),this.cd.markForCheck())}},t.prototype.groupArrayBy=function(t,e){var n=new Map;return t.forEach((function(t){var a=t[e];n.has(a)?n.get(a).push(t):n.set(a,[t])})),Array.from(n,(function(t){return{key:t[0],value:t[1]}}))},t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.rows)&&(this.externalSorting?this._internalRows=this.rows.slice():this.sortInternalRows(),this._internalRows=s.groupRowsByParents(this._internalRows,s.optionalGetterForProp(this.treeFromRelation),s.optionalGetterForProp(this.treeToRelation)),this.recalculatePages(),this.cd.markForCheck())},t.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},t.prototype.onWindowResize=function(){this.recalculate()},t.prototype.recalculateColumns=function(t,e,n){if(void 0===t&&(t=this._internalColumns),void 0===e&&(e=-1),void 0===n&&(n=this.scrollbarH),t){var a=this._innerWidth;return this.scrollbarV&&(a-=this.scrollbarHelper.width),this.columnMode===c.ColumnMode.force?s.forceFillColumnWidths(t,a,e,n):this.columnMode===c.ColumnMode.flex&&s.adjustColumnWidths(t,a),t}},t.prototype.recalculateDims=function(){var t=this.dimensionsHelper.getDimensions(this.element);if(this._innerWidth=Math.floor(t.width),this.scrollbarV){var e=t.height;this.headerHeight&&(e-=this.headerHeight),this.footerHeight&&(e-=this.footerHeight),this.bodyHeight=e}this.recalculatePages()},t.prototype.recalculatePages=function(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},t.prototype.onBodyPage=function(t){this.externalPaging&&!this.virtualization||(this.offset=t.offset,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}))},t.prototype.onBodyScroll=function(t){this._offsetX.next(t.offsetX),this.scroll.emit(t),this.cd.detectChanges()},t.prototype.onFooterPage=function(t){this.offset=t.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}),this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected}))},t.prototype.calcPageSize=function(t){if(void 0===t&&(t=this.rows),this.scrollbarV&&this.virtualization){var e=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(e,0)}return void 0!==this.limit?this.limit:t?t.length:0},t.prototype.calcRowCount=function(t){return void 0===t&&(t=this.rows),this.externalPaging?this.count:t?this.groupedRows?this.groupedRows.length:null!=this.treeFromRelation&&null!=this.treeToRelation?this._internalRows.length:t.length:0},t.prototype.onColumnContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:c.ContextmenuType.header,content:t.column})},t.prototype.onRowContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:c.ContextmenuType.body,content:t.row})},t.prototype.onColumnResize=function(t){var e=t.column,n=t.newValue;if(void 0!==e){var r,o=this._internalColumns.map((function(t,o){return(t=a({},t)).$$id===e.$$id&&(r=o,t.width=n,t.$$oldWidth=n),t}));this.recalculateColumns(o,r),this._internalColumns=o,this.resize.emit({column:e,newValue:n})}},t.prototype.onColumnReorder=function(t){var e=t.column,n=t.newValue,r=t.prevValue,o=this._internalColumns.map((function(t){return a({},t)}));if(this.swapColumns){var i=o[n];o[n]=e,o[r]=i}else if(n>r){for(var s=o[r],c=r;c<n;c++)o[c]=o[c+1];o[n]=s}else{for(s=o[r],c=r;c>n;c--)o[c]=o[c-1];o[n]=s}this._internalColumns=o,this.reorder.emit({column:e,newValue:n,prevValue:r})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=s.groupRowsByParents(this._internalRows,s.optionalGetterForProp(this.treeFromRelation),s.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,o=this.selected.length===r-a;this.selected=[],o||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else o=this.selected.length===this.rows.length,this.selected=[],o||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex((function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]}));this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach((function(t){return t.unsubscribe()}))},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe((function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()})))},t.prototype.sortInternalRows=function(){this._internalRows=s.sortRows(this._internalRows,this._internalColumns,this.sorts)},r([i.Input(),o("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([i.Input(),o("design:type",Object),o("design:paramtypes",[Object])],t.prototype,"rows",null),r([i.Input(),o("design:type",String),o("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),r([i.Input(),o("design:type",Array)],t.prototype,"groupedRows",void 0),r([i.Input(),o("design:type",Array),o("design:paramtypes",[Array])],t.prototype,"columns",null),r([i.Input(),o("design:type",Array)],t.prototype,"selected",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"scrollbarV",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"rowHeight",void 0),r([i.Input(),o("design:type",String)],t.prototype,"columnMode",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"headerHeight",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"footerHeight",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"externalPaging",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"externalSorting",void 0),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"limit",null),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"count",null),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"offset",null),r([i.Input(),o("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),r([i.Input(),o("design:type",String)],t.prototype,"selectionType",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"reorderable",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"swapColumns",void 0),r([i.Input(),o("design:type",String)],t.prototype,"sortType",void 0),r([i.Input(),o("design:type",Array)],t.prototype,"sorts",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"cssClasses",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"messages",void 0),r([i.Input(),o("design:type",Function)],t.prototype,"rowIdentity",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"rowClass",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"selectCheck",void 0),r([i.Input(),o("design:type",Function)],t.prototype,"displayCheck",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),r([i.Input(),o("design:type",String)],t.prototype,"trackByProp",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"virtualization",void 0),r([i.Input(),o("design:type",String)],t.prototype,"treeFromRelation",void 0),r([i.Input(),o("design:type",String)],t.prototype,"treeToRelation",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"summaryRow",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"summaryHeight",void 0),r([i.Input(),o("design:type",String)],t.prototype,"summaryPosition",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"scroll",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"activate",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"select",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"sort",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"page",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"reorder",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"resize",void 0),r([i.Output(),o("design:type",Object)],t.prototype,"tableContextmenu",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),r([i.HostBinding("class.fixed-header"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isFixedHeader",null),r([i.HostBinding("class.fixed-row"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isFixedRow",null),r([i.HostBinding("class.scroll-vertical"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isVertScroll",null),r([i.HostBinding("class.virtualized"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isVirtualized",null),r([i.HostBinding("class.scroll-horz"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isHorScroll",null),r([i.HostBinding("class.selectable"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isSelectable",null),r([i.HostBinding("class.checkbox-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),r([i.HostBinding("class.cell-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isCellSelection",null),r([i.HostBinding("class.single-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isSingleSelection",null),r([i.HostBinding("class.multi-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isMultiSelection",null),r([i.HostBinding("class.multi-click-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),r([i.ContentChildren(u.DataTableColumnDirective),o("design:type",i.QueryList),o("design:paramtypes",[i.QueryList])],t.prototype,"columnTemplates",null),r([i.ContentChild(g.DatatableRowDetailDirective,{static:!1}),o("design:type",g.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),r([i.ContentChild(d.DatatableGroupHeaderDirective,{static:!1}),o("design:type",d.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),r([i.ContentChild(f.DatatableFooterDirective,{static:!1}),o("design:type",f.DatatableFooterDirective)],t.prototype,"footer",void 0),r([i.ViewChild(l.DataTableBodyComponent,{static:!1}),o("design:type",l.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),r([i.ViewChild(p.DataTableHeaderComponent,{static:!1}),o("design:type",p.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),r([i.HostListener("window:resize"),s.throttleable(5),o("design:type",Function),o("design:paramtypes",[]),o("design:returntype",void 0)],t.prototype,"onWindowResize",null),r([i.Component({selector:"ngx-datatable",template:'\n    <div\n      visibilityObserver\n      (visible)="recalculate()">\n      <datatable-header\n        *ngIf="headerHeight"\n        [sorts]="sorts"\n        [sortType]="sortType"\n        [scrollbarH]="scrollbarH"\n        [innerWidth]="_innerWidth"\n        [offsetX]="_offsetX | async"\n        [dealsWithGroup]="groupedRows"\n        [columns]="_internalColumns"\n        [headerHeight]="headerHeight"\n        [reorderable]="reorderable"\n        [targetMarkerTemplate]="targetMarkerTemplate"\n        [sortAscendingIcon]="cssClasses.sortAscending"\n        [sortDescendingIcon]="cssClasses.sortDescending"\n        [allRowsSelected]="allRowsSelected"\n        [selectionType]="selectionType"\n        (sort)="onColumnSort($event)"\n        (resize)="onColumnResize($event)"\n        (reorder)="onColumnReorder($event)"\n        (select)="onHeaderSelect($event)"\n        (columnContextmenu)="onColumnContextmenu($event)">\n      </datatable-header>\n      <datatable-body\n        [groupRowsBy]="groupRowsBy"\n        [groupedRows]="groupedRows"\n        [rows]="_internalRows"\n        [groupExpansionDefault]="groupExpansionDefault"\n        [scrollbarV]="scrollbarV"\n        [scrollbarH]="scrollbarH"\n        [virtualization]="virtualization"\n        [loadingIndicator]="loadingIndicator"\n        [externalPaging]="externalPaging"\n        [rowHeight]="rowHeight"\n        [rowCount]="rowCount"\n        [offset]="offset"\n        [trackByProp]="trackByProp"\n        [columns]="_internalColumns"\n        [pageSize]="pageSize"\n        [offsetX]="_offsetX | async"\n        [rowDetail]="rowDetail"\n        [groupHeader]="groupHeader"\n        [selected]="selected"\n        [innerWidth]="_innerWidth"\n        [bodyHeight]="bodyHeight"\n        [selectionType]="selectionType"\n        [emptyMessage]="messages.emptyMessage"\n        [rowIdentity]="rowIdentity"\n        [rowClass]="rowClass"\n        [selectCheck]="selectCheck"\n        [displayCheck]="displayCheck"\n        [summaryRow]="summaryRow"\n        [summaryHeight]="summaryHeight"\n        [summaryPosition]="summaryPosition"\n        (page)="onBodyPage($event)"\n        (activate)="activate.emit($event)"\n        (rowContextmenu)="onRowContextmenu($event)"\n        (select)="onBodySelect($event)"\n        (scroll)="onBodyScroll($event)"\n        (treeAction)="onTreeAction($event)">\n      </datatable-body>\n      <datatable-footer\n        *ngIf="footerHeight"\n        [rowCount]="rowCount"\n        [pageSize]="pageSize"\n        [offset]="offset"\n        [footerHeight]="footerHeight"\n        [footerTemplate]="footer"\n        [totalMessage]="messages.totalMessage"\n        [pagerLeftArrowIcon]="cssClasses.pagerLeftArrow"\n        [pagerRightArrowIcon]="cssClasses.pagerRightArrow"\n        [pagerPreviousIcon]="cssClasses.pagerPrevious"\n        [selectedCount]="selected.length"\n        [selectedMessage]="!!selectionType && messages.selectedMessage"\n        [pagerNextIcon]="cssClasses.pagerNext"\n        (page)="onFooterPage($event)">\n      </datatable-footer>\n    </div>\n  ',changeDetection:i.ChangeDetectionStrategy.OnPush,encapsulation:i.ViewEncapsulation.None,styleUrls:["./datatable.component.css"],host:{class:"ngx-datatable"}})],t)}()},"33Wh":function(t,e,n){var a=n("yoRg"),r=n("eDl+");t.exports=Object.keys||function(t){return a(t,r)}},"38Bd":function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return r})),n.d(e,"d",(function(){return s}));var a=n("hpHm");class r{constructor(){this.animate=!1,this.max=100}}class o{constructor(t){this.isStacked=!1,this.addClass=!0,this.bars=[],this._max=100,Object.assign(this,t)}set animate(t){this._animate=t,this.bars.forEach(e=>{e.animate=t})}set striped(t){this._striped=t,this.bars.forEach(e=>{e.striped=t})}set value(t){this.isStacked=Array.isArray(t),this._value=t}get isBs3(){return Object(a.d)()}get max(){return this._max}set max(t){this._max=t,this.bars.forEach(t=>{t.recalculatePercentage()})}addBar(t){t.animate=this._animate,t.striped=this._striped,this.bars.push(t)}removeBar(t){this.bars.splice(this.bars.indexOf(t),1)}}class i{constructor(t){this.percent=0,this.progress=t}get value(){return this._value}set value(t){(t||0===t)&&(this._value=t,this.recalculatePercentage())}get setBarWidth(){return this.recalculatePercentage(),this.percent}get isBs3(){return Object(a.d)()}ngOnInit(){this.progress.addBar(this)}ngOnDestroy(){this.progress.removeBar(this)}recalculatePercentage(){this.percent=+(this.value/this.progress.max*100).toFixed(2);const t=this.progress.bars.reduce((function(t,e){return t+e.percent}),0);t>100&&(this.percent-=t-100)}}class s{static forRoot(){return{ngModule:s,providers:[r]}}}},"3A9y":function(t,e){t.exports=function(t){return this.__data__.has(t)}},"3E1r":function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".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:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात"===e?t<4?t:t+12:"सुबह"===e?t:"दोपहर"===e?t>=10?t:t+12:"शाम"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात":t<10?"सुबह":t<17?"दोपहर":t<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n("wd/R"))},"3Fdi":function(t,e){var n=Function.prototype.toString;t.exports=function(t){if(null!=t){try{return n.call(t)}catch(e){}try{return t+""}catch(e){}}return""}},"3L66":function(t,e,n){var a=n("MMmD"),r=n("ExA7");t.exports=function(t){return r(t)&&a(t)}},"3MdB":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("qCKp"),s=n("kU1M");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new o.EventEmitter,this.dragging=new o.EventEmitter,this.dragEnd=new o.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=i.fromEvent(document,"mouseup");this.subscription=a.subscribe((function(t){return e.onMouseup(t)}));var r=i.fromEvent(document,"mousemove").pipe(s.takeUntil(a)).subscribe((function(t){return e.move(t,n)}));this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragStart",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragging",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragEnd",void 0),a([o.Directive({selector:"[draggable]"})],t)}()},"3N8a":function(t,e,n){"use strict";var a=n("quSY");class r extends a.a{constructor(t,e){super()}schedule(t,e=0){return this}}n.d(e,"a",(function(){return o}));class o extends r{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 n=this.id,a=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(a,n,e)),this.pending=!0,this.delay=e,this.id=this.id||this.requestAsyncId(a,this.id,e),this}requestAsyncId(t,e,n=0){return setInterval(t.flush.bind(t,this),n)}recycleAsyncId(t,e,n=0){if(null!==n&&this.delay===n&&!1===this.pending)return e;clearInterval(e)}execute(t,e){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const n=this._execute(t,e);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,e){let n=!1,a=void 0;try{this.work(t)}catch(r){n=!0,a=!!r&&r||new Error(r)}if(n)return this.unsubscribe(),a}_unsubscribe(){const t=this.id,e=this.scheduler,n=e.actions,a=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==a&&n.splice(a,1),null!=t&&(this.id=this.recycleAsyncId(e,t,null)),this.delay=null}}},"3bBZ":function(t,e,n){var a=n("2oRo"),r=n("/byt"),o=n("4mDm"),i=n("kRJp"),s=n("tiKp"),c=s("iterator"),l=s("toStringTag"),d=o.values;for(var u in r){var g=a[u],f=g&&g.prototype;if(f){if(f[c]!==d)try{i(f,c,d)}catch(m){f[c]=d}if(f[l]||i(f,l,u),r[u])for(var p in o)if(f[p]!==o[p])try{i(f,p,o[p])}catch(m){f[p]=o[p]}}}},"4/ic":function(t,e,n){var a=n("ZWtO");t.exports=function(t){return function(e){return a(e,t)}}},"44Ds":function(t,e,n){var a=n("e4Nc");function r(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=t.apply(this,a);return n.cache=o.set(r,i)||o,i};return n.cache=new(r.Cache||a),n}r.Cache=a,t.exports=r},"4DD9":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){let e=!1;switch(t){case!0:case 1:case"y":case"yes":case"t":case"true":case"on":case"1":e=!0}return e}}},"4DFU":function(t,e,n){var a=n("+Qka"),r=n("GoyQ");t.exports=function t(e,n,o,i,s,c){return r(e)&&r(n)&&(c.set(n,e),a(e,n,void 0,t,c),c.delete(n)),e}},"4Dmd":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=function(){function t(t,e,n){this.renderer=t,this.templateRef=e,this.viewContainerRef=n}return Object.defineProperty(t.prototype,"isOpen",{set:function(t){t?(this._show(),this.isEnabled&&!1===this._isOpen&&this._animateOpen()):this.isEnabled?this._animateClose():this._hide(),this._isOpen=!!t},enumerable:!0,configurable:!0}),t.prototype._show=function(){this.innerElement||(this.innerElement=this.viewContainerRef.createEmbeddedView(this.templateRef).rootNodes[0])},t.prototype._hide=function(){this.viewContainerRef.clear(),this.innerElement=null},t.prototype._animateOpen=function(){var t=this,e=this.animateSpeed,n=this.animateAcceleration,a=0;this.renderer.setStyle(this.innerElement,"max-height","0"),setTimeout((function(){var r=setInterval((function(){if(!t._isOpen||!t.innerElement)return clearInterval(r);var o=Math.round(a+=e);t.renderer.setStyle(t.innerElement,"max-height",o+"px");var i=t.innerElement.getBoundingClientRect?t.innerElement.getBoundingClientRect().height:0;e*=n,n*=1.005,i<o&&(t.renderer.setStyle(t.innerElement,"max-height",null),clearInterval(r))}),17)}))},t.prototype._animateClose=function(){var t=this;if(this.innerElement)var e=this.animateSpeed,n=this.animateAcceleration,a=this.innerElement.getBoundingClientRect().height,r=setInterval((function(){if(t._isOpen||!t.innerElement)return clearInterval(r);t.renderer.setStyle(t.innerElement,"max-height",(a-=e)+"px"),e*=n,n*=1.005,a<=0&&(t.viewContainerRef.clear(),t.innerElement=null,clearInterval(r))}),17)},r([Object(a.Input)("treeAnimateOpenSpeed"),o("design:type",Number)],t.prototype,"animateSpeed",void 0),r([Object(a.Input)("treeAnimateOpenAcceleration"),o("design:type",Number)],t.prototype,"animateAcceleration",void 0),r([Object(a.Input)("treeAnimateOpenEnabled"),o("design:type",Boolean)],t.prototype,"isEnabled",void 0),r([Object(a.Input)("treeAnimateOpen"),o("design:type",Boolean),o("design:paramtypes",[Boolean])],t.prototype,"isOpen",null),r([Object(a.Directive)({selector:"[treeAnimateOpen]"}),o("design:paramtypes",[a.Renderer2,a.TemplateRef,a.ViewContainerRef])],t)}()},"4HWh":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("KOzp"),i=n("z/SZ"),s=n("2uy1");n("p4Cf"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return d}));var c=a["ɵcrt"]({encapsulation:0,styles:[["i[_ngcontent-%COMP%]{color:#2b99a8;cursor:pointer;padding-left:4px}"]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,(function(t,e){var n=e.component;t(e,0,0,n.class,n.html)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,[["popoverTpl",2]],null,0,null,l)),(t()(),a["ɵeld"](1,16777216,null,null,4,"i",[["aria-hidden","true"],["container","body"],["placement","bottom"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](4,1),a["ɵdid"](5,212992,null,0,o.c,[o.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,i.a,s.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null)],(function(t,e){var n=t(e,4,0,e.component.icons.questionCircle);t(e,3,0,n),t(e,5,0,a["ɵnov"](e,0),"bottom",!0,"body")}),null)}},"4I5i":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return t.prototype=Object.create(Error.prototype),t})()},"4MV3":function(t,e,n){!function(t){"use strict";var e={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};t.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".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:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(t){return t.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(t,e){return 12===t&&(t=0),"રાત"===e?t<4?t:t+12:"સવાર"===e?t:"બપોર"===e?t>=10?t:t+12:"સાંજ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"રાત":t<10?"સવાર":t<17?"બપોર":t<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n("wd/R"))},"4Oe1":function(t,e,n){var a=n("YO3V");t.exports=function(t){return a(t)?void 0:t}},"4WOD":function(t,e,n){var a=n("UTVS"),r=n("ewvW"),o=n("93I0"),i=n("4Xet"),s=o("IE_PROTO"),c=Object.prototype;t.exports=i?Object.getPrototypeOf:function(t){return t=r(t),a(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?c:null}},"4Xet":function(t,e,n){var a=n("0Dky");t.exports=!a((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},"4dOw":function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},"4kuk":function(t,e,n){var a=n("SfRM"),r=n("Hvzi"),o=n("u8Dt"),i=n("ekgI"),s=n("JSQU");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}c.prototype.clear=a,c.prototype.delete=r,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,t.exports=c},"4l63":function(t,e,n){var a=n("I+eb"),r=n("wg0c");a({global:!0,forced:parseInt!=r},{parseInt:r})},"4mDm":function(t,e,n){"use strict";var a=n("/GqU"),r=n("RNIs"),o=n("P4y1"),i=n("afO8"),s=n("fdAy"),c=i.set,l=i.getterFor("Array Iterator");t.exports=s(Array,"Array",(function(t,e){c(this,{type:"Array Iterator",target:a(t),index:0,kind:e})}),(function(){var t=l(this),e=t.target,n=t.kind,a=t.index++;return!e||a>=e.length?(t.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:a,done:!1}:"values"==n?{value:e[a],done:!1}:{value:[a,e[a]],done:!1}}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},"4qC0":function(t,e,n){var a=n("NykK"),r=n("Z0cm"),o=n("ExA7");t.exports=function(t){return"string"==typeof t||!r(t)&&o(t)&&"[object String]"==a(t)}},"4sDh":function(t,e,n){var a=n("4uTw"),r=n("03A+"),o=n("Z0cm"),i=n("wJg7"),s=n("shjB"),c=n("9Nap");t.exports=function(t,e,n){for(var l=-1,d=(e=a(e,t)).length,u=!1;++l<d;){var g=c(e[l]);if(!(u=null!=t&&n(t,g)))break;t=t[g]}return u||++l!=d?u:!!(d=null==t?0:t.length)&&s(d)&&i(g,d)&&(o(t)||r(t))}},"4syw":function(t,e,n){var a=n("busE");t.exports=function(t,e,n){for(var r in e)a(t,r,e[r],n);return t}},"4uTw":function(t,e,n){var a=n("Z0cm"),r=n("9ggG"),o=n("GNiM"),i=n("dt0z");t.exports=function(t,e){return a(t)?t:r(t,e)?[t]:o(i(t))}},"5+tZ":function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("ZUHj"),r=n("l7GE"),o=n("51Dv"),i=n("lJxs"),s=n("Cfvw");function c(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?a=>a.pipe(c((n,a)=>Object(s.a)(t(n,a)).pipe(Object(i.a)((t,r)=>e(n,t,a,r))),n)):("number"==typeof e&&(n=e),e=>e.lift(new l(t,n)))}class l{constructor(t,e=Number.POSITIVE_INFINITY){this.project=t,this.concurrent=e}call(t,e){return e.subscribe(new d(t,this.project,this.concurrent))}}class d extends r.a{constructor(t,e,n=Number.POSITIVE_INFINITY){super(t),this.project=e,this.concurrent=n,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){this.active<this.concurrent?this._tryNext(t):this.buffer.push(t)}_tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this.active++,this._innerSub(e,t,n)}_innerSub(t,e,n){const r=new o.a(this,e,n),i=this.destination;i.add(r);const s=Object(a.a)(this,t,void 0,void 0,r);s!==r&&i.add(s)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,a,r){this.destination.next(e)}notifyComplete(t){const e=this.buffer;this.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}},"51Dv":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");class r extends a.a{constructor(t,e,n){super(),this.parent=t,this.outerValue=e,this.outerIndex=n,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()}}},"5Tg0":function(t,e,n){(function(t){var a=n("Kz5y"),r=e&&!e.nodeType&&e,o=r&&"object"==typeof t&&t&&!t.nodeType&&t,i=o&&o.exports===r?a.Buffer:void 0,s=i?i.allocUnsafe:void 0;t.exports=function(t,e){if(e)return t.slice();var n=t.length,a=s?s(n):new t.constructor(n);return t.copy(a),a}}).call(this,n("YuTi")(t))},"5tze":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("HV4d")),a(n("ae7Z")),a(n("h+PQ")),a(n("CVuo")),a(n("RnPR")),a(n("ohIB")),a(n("rdkg")),a(n("y9Z7")),a(n("1HVU")),a(n("MgB7")),a(n("h6KF")),a(n("GDJm")),a(n("VYA+")),a(n("AqeW")),a(n("FMPj"))},"6+QB":function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<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("wd/R"))},"6B0Y":function(t,e,n){!function(t){"use strict";var e={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};t.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".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:/ព្រឹក|ល្ងាច/,isPM:function(t){return"ល្ងាច"===t},meridiem:function(t,e,n){return t<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(t){return t.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(n("wd/R"))},"6JNq":function(t,e,n){var a=n("UTVS"),r=n("Vu81"),o=n("Bs8V"),i=n("m/L8");t.exports=function(t,e){for(var n=r(e),s=i.f,c=o.f,l=0;l<n.length;l++){var d=n[l];a(t,d)||s(t,d,c(e,d))}}},"6LWA":function(t,e,n){var a=n("xrYK");t.exports=Array.isArray||function(t){return"Array"==a(t)}},"6MUB":function(t,e,n){"use strict";var a=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,r){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?Object.keys(t).map((function(r){var o=encodeURIComponent(a(r))+n;return Array.isArray(t[r])?t[r].map((function(t){return o+encodeURIComponent(a(t))})).join(e):o+encodeURIComponent(a(t[r]))})).join(e):r?encodeURIComponent(a(r))+n+encodeURIComponent(a(t)):""}},"6VoE":function(t,e,n){var a=n("tiKp"),r=n("P4y1"),o=a("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},"6sVZ":function(t,e){var n=Object.prototype;t.exports=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||n)}},"7+OI":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("HDdC");function r(t){return!!t&&(t instanceof a.a||"function"==typeof t.lift&&"function"==typeof t.subscribe)}},"711d":function(t,e){t.exports=function(t){return function(e){return null==e?void 0:e[t]}}},"77Zs":function(t,e,n){var a=n("Xi7e");t.exports=function(){this.__data__=new a,this.size=0}},"7BjC":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["ühe minuti","üks minut"],mm:[t+" minuti",t+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[t+" tunni",t+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[t+" kuu",t+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[t+" aasta",t+" aastat"]};return e?r[n][2]?r[n][2]:r[n][1]:a?r[n][0]:r[n][1]}t.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".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äna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d päeva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"7F1K":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("5tze"),s=n("qwkt");e.DataTableSelectionComponent=function(){function t(){this.activate=new o.EventEmitter,this.select=new o.EventEmitter}return t.prototype.selectRow=function(t,e,n){var a;if(this.selectEnabled){var r=this.selectionType===s.SelectionType.checkbox,o=this.selectionType===s.SelectionType.multiClick,c=[];c=this.selectionType===s.SelectionType.multi||r||o?t.shiftKey?i.selectRowsBetween([],this.rows,e,this.prevIndex,this.getRowSelectedIdx.bind(this)):i.selectRows(t.ctrlKey||t.metaKey||o||r?this.selected.slice():[],n,this.getRowSelectedIdx.bind(this)):i.selectRows([],n,this.getRowSelectedIdx.bind(this)),"function"==typeof this.selectCheck&&(c=c.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),(a=this.selected).push.apply(a,c),this.prevIndex=e,this.select.emit({selected:c})}},t.prototype.onActivate=function(t,e){var n=t.type,a=t.event,r=t.row,o=this.selectionType===s.SelectionType.checkbox;!o&&("click"===n||"dblclick"===n)||o&&"checkbox"===n?this.selectRow(a,e,r):"keydown"===n&&(a.keyCode===i.Keys.return?this.selectRow(a,e,r):this.onKeyboardFocus(t)),this.activate.emit(t)},t.prototype.onKeyboardFocus=function(t){var e=t.event.keyCode;if(e===i.Keys.up||e===i.Keys.down||e===i.Keys.right||e===i.Keys.left){var n=this.selectionType===s.SelectionType.cell;t.cellElement&&n?n&&this.focusCell(t.cellElement,t.rowElement,e,t.cellIndex):this.focusRow(t.rowElement,e)}},t.prototype.focusRow=function(t,e){var n=this.getPrevNextRow(t,e);n&&n.focus()},t.prototype.getPrevNextRow=function(t,e){var n=t.parentElement;if(n){var a=void 0;if(e===i.Keys.up?a=n.previousElementSibling:e===i.Keys.down&&(a=n.nextElementSibling),a&&a.children.length)return a.children[0]}},t.prototype.focusCell=function(t,e,n,a){var r;if(n===i.Keys.left)r=t.previousElementSibling;else if(n===i.Keys.right)r=t.nextElementSibling;else if(n===i.Keys.up||n===i.Keys.down){var o=this.getPrevNextRow(e,n);if(o){var s=o.getElementsByClassName("datatable-body-cell");s.length&&(r=s[a])}}r&&r.focus()},t.prototype.getRowSelected=function(t){return this.getRowSelectedIdx(t,this.selected)>-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex((function(t){return n.rowIdentity(t)===a}))},a([o.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([o.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Component({selector:"datatable-selection",template:"\n    <ng-content></ng-content>\n  ",changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},"7GkX":function(t,e,n){var a=n("b80T"),r=n("A90E"),o=n("MMmD");t.exports=function(t){return o(t)?a(t):r(t)}},"7HRe":function(t,e,n){"use strict";var a=n("HDdC"),r=n("quSY"),o=n("kJWO"),i=n("jZKg"),s=n("Lhse"),c=n("c2HN"),l=n("I55L");function d(t,e){if(null!=t){if(function(t){return t&&"function"==typeof t[o.a]}(t))return function(t,e){return new a.a(n=>{const a=new r.a;return a.add(e.schedule(()=>{const r=t[o.a]();a.add(r.subscribe({next(t){a.add(e.schedule(()=>n.next(t)))},error(t){a.add(e.schedule(()=>n.error(t)))},complete(){a.add(e.schedule(()=>n.complete()))}}))})),a})}(t,e);if(Object(c.a)(t))return function(t,e){return new a.a(n=>{const a=new r.a;return a.add(e.schedule(()=>t.then(t=>{a.add(e.schedule(()=>{n.next(t),a.add(e.schedule(()=>n.complete()))}))},t=>{a.add(e.schedule(()=>n.error(t)))}))),a})}(t,e);if(Object(l.a)(t))return Object(i.a)(t,e);if(function(t){return t&&"function"==typeof t[s.a]}(t)||"string"==typeof t)return function(t,e){if(!t)throw new Error("Iterable cannot be null");return new a.a(n=>{const a=new r.a;let o;return a.add(()=>{o&&"function"==typeof o.return&&o.return()}),a.add(e.schedule(()=>{o=t[s.a](),a.add(e.schedule((function(){if(n.closed)return;let t,e;try{const n=o.next();t=n.value,e=n.done}catch(a){return void n.error(a)}e?n.complete():(n.next(t),this.schedule())})))})),a})}(t,e)}throw new TypeError((null!==t&&typeof t||t)+" is not observable")}n.d(e,"a",(function(){return d}))},"7Hc7":function(t,e,n){"use strict";let a=1;const r=(()=>Promise.resolve())(),o={};function i(t){return t in o&&(delete o[t],!0)}const s={setImmediate(t){const e=a++;return o[e]=!0,r.then(()=>i(e)&&t()),e},clearImmediate(t){i(t)}};var c=n("3N8a");class l extends c.a{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,n=0){return null!==n&&n>0?super.requestAsyncId(t,e,n):(t.actions.push(this),t.scheduled||(t.scheduled=s.setImmediate(t.flush.bind(t,null))))}recycleAsyncId(t,e,n=0){if(null!==n&&n>0||null===n&&this.delay>0)return super.recycleAsyncId(t,e,n);0===t.actions.length&&(s.clearImmediate(e),t.scheduled=void 0)}}var d=n("IjjT");class u extends d.a{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let n,a=-1,r=e.length;t=t||e.shift();do{if(n=t.execute(t.state,t.delay))break}while(++a<r&&(t=e.shift()));if(this.active=!1,n){for(;++a<r&&(t=e.shift());)t.unsubscribe();throw n}}}n.d(e,"a",(function(){return g}));const g=new u(l)},"7Ix3":function(t,e){t.exports=function(t){var e=[];if(null!=t)for(var n in Object(t))e.push(n);return e}},"7aV9":function(t,e,n){!function(t){"use strict";t.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".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 [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(t){return t+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(t){return"ප.ව."===t||"පස් වරු"===t},meridiem:function(t,e,n){return t>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n("wd/R"))},"7fqy":function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t,a){n[++e]=[a,t]})),n}},"7o/Q":function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("n6bG"),r=n("gRHU"),o=n("quSY"),i=n("2QA8"),s=n("2fFW"),c=n("NJ4a");class l extends o.a{constructor(t,e,n){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=r.a;break;case 1:if(!t){this.destination=r.a;break}if("object"==typeof t){t instanceof l?(this.syncErrorThrowable=t.syncErrorThrowable,this.destination=t,t.add(this)):(this.syncErrorThrowable=!0,this.destination=new d(this,t));break}default:this.syncErrorThrowable=!0,this.destination=new d(this,t,e,n)}}[i.a](){return this}static create(t,e,n){const a=new l(t,e,n);return a.syncErrorThrowable=!1,a}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 d extends l{constructor(t,e,n,o){let i;super(),this._parentSubscriber=t;let s=this;Object(a.a)(e)?i=e:e&&(i=e.next,n=e.error,o=e.complete,e!==r.a&&(s=Object.create(e),Object(a.a)(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=i,this._error=n,this._complete=o}next(t){if(!this.isStopped&&this._next){const{_parentSubscriber:e}=this;s.a.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:n}=s.a;if(this._error)n&&e.syncErrorThrowable?(this.__tryOrSetError(e,this._error,t),this.unsubscribe()):(this.__tryOrUnsub(this._error,t),this.unsubscribe());else if(e.syncErrorThrowable)n?(e.syncErrorValue=t,e.syncErrorThrown=!0):Object(c.a)(t),this.unsubscribe();else{if(this.unsubscribe(),n)throw t;Object(c.a)(t)}}}complete(){if(!this.isStopped){const{_parentSubscriber:t}=this;if(this._complete){const e=()=>this._complete.call(this._context);s.a.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(n){if(this.unsubscribe(),s.a.useDeprecatedSynchronousErrorHandling)throw n;Object(c.a)(n)}}__tryOrSetError(t,e,n){if(!s.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{e.call(this._context,n)}catch(a){return s.a.useDeprecatedSynchronousErrorHandling?(t.syncErrorValue=a,t.syncErrorThrown=!0,!0):(Object(c.a)(a),!0)}return!1}_unsubscribe(){const{_parentSubscriber:t}=this;this._context=null,this._parentSubscriber=null,t.unsubscribe()}}},"7qid":function(t,e,n){"use strict";n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return g}));var a=n("8Y7J"),r=n("38Bd"),o=n("SVse"),i=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["ɵvid"](0,[a["ɵncd"](null,0)],null,null)}var c=a["ɵcrt"]({encapsulation:0,styles:["[_nghost-%COMP%] {\n      width: 100%;\n      display: flex;\n    }"],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,s,i)),a["ɵdid"](1,245760,null,0,r.a,[r.b],{type:[0,"type"],value:[1,"value"]},null),a["ɵncd"](0,0)],(function(t,e){var n=e.component;t(e,1,0,n.type,n._value)}),(function(t,e){t(e,0,0,"progress-bar "+(a["ɵnov"](e,1).type?"progress-bar-"+a["ɵnov"](e,1).type+" bg-"+a["ɵnov"](e,1).type:""),!a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).striped,a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).value,a["ɵnov"](e,1).percent?a["ɵnov"](e,1).percent.toFixed(0)+"%":"",a["ɵnov"](e,1).max,"100",a["ɵnov"](e,1).setBarWidth)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bar",[["aria-valuemin","0"],["role","progressbar"]],[[8,"className",0],[2,"progress-bar-animated",null],[2,"progress-bar-striped",null],[2,"active",null],[1,"aria-valuenow",0],[1,"aria-valuetext",0],[1,"aria-valuemax",0],[4,"height","%"],[4,"width","%"]],null,null,s,i)),a["ɵdid"](1,245760,null,0,r.a,[r.b],{type:[0,"type"],value:[1,"value"]},null),(t()(),a["ɵted"](2,0,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.type,e.context.$implicit.value)}),(function(t,e){t(e,0,0,"progress-bar "+(a["ɵnov"](e,1).type?"progress-bar-"+a["ɵnov"](e,1).type+" bg-"+a["ɵnov"](e,1).type:""),!a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).striped,a["ɵnov"](e,1).isBs3&&a["ɵnov"](e,1).animate,a["ɵnov"](e,1).value,a["ɵnov"](e,1).percent?a["ɵnov"](e,1).percent.toFixed(0)+"%":"",a["ɵnov"](e,1).max,"100",a["ɵnov"](e,1).setBarWidth),t(e,2,0,e.context.$implicit.label)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component._value)}),null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](3,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,!n.isStacked),t(e,3,0,n.isStacked)}),null)}},"8/+R":function(t,e,n){!function(t){"use strict";var e={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};t.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".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:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(t){return t.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ਰਾਤ"===e?t<4?t:t+12:"ਸਵੇਰ"===e?t:"ਦੁਪਹਿਰ"===e?t>=10?t:t+12:"ਸ਼ਾਮ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ਰਾਤ":t<10?"ਸਵੇਰ":t<17?"ਦੁਪਹਿਰ":t<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n("wd/R"))},"85J/":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=/ceph version\s+([^ ]+)\s+\(.+\)/.exec(t);return e?e[1]:t}}},"88Gu":function(t,e){var n=Date.now;t.exports=function(t){var e=0,a=0;return function(){var r=n(),o=16-(r-a);if(a=r,o>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}},"8Qeq":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t){for(;t;){const{closed:e,destination:n,isStopped:r}=t;if(e||r)return!1;t=n&&n instanceof a.a?n:null}return!0}},"8Y7J":function(t,e,n){"use strict";n.r(e),n.d(e,"ɵangular_packages_core_core_q",(function(){return o_})),n.d(e,"ɵangular_packages_core_core_n",(function(){return n_})),n.d(e,"ɵangular_packages_core_core_o",(function(){return a_})),n.d(e,"ɵangular_packages_core_core_p",(function(){return r_})),n.d(e,"ɵangular_packages_core_core_r",(function(){return i_})),n.d(e,"ɵangular_packages_core_core_f",(function(){return fb})),n.d(e,"ɵangular_packages_core_core_l",(function(){return eg})),n.d(e,"ɵangular_packages_core_core_m",(function(){return cg})),n.d(e,"ɵangular_packages_core_core_k",(function(){return zy})),n.d(e,"ɵangular_packages_core_core_j",(function(){return Fy})),n.d(e,"ɵangular_packages_core_core_b",(function(){return et})),n.d(e,"ɵangular_packages_core_core_a",(function(){return Z})),n.d(e,"ɵangular_packages_core_core_c",(function(){return uc})),n.d(e,"ɵangular_packages_core_core_d",(function(){return Qs})),n.d(e,"ɵangular_packages_core_core_e",(function(){return oc})),n.d(e,"ɵangular_packages_core_core_i",(function(){return Sy})),n.d(e,"ɵangular_packages_core_core_s",(function(){return Wb})),n.d(e,"ɵangular_packages_core_core_u",(function(){return Vb})),n.d(e,"ɵangular_packages_core_core_t",(function(){return Bb})),n.d(e,"ɵangular_packages_core_core_x",(function(){return Ub})),n.d(e,"ɵangular_packages_core_core_v",(function(){return Yb})),n.d(e,"ɵangular_packages_core_core_w",(function(){return Hb})),n.d(e,"ɵangular_packages_core_core_ba",(function(){return yp})),n.d(e,"ɵangular_packages_core_core_bb",(function(){return fa})),n.d(e,"ɵangular_packages_core_core_bc",(function(){return Pe})),n.d(e,"ɵangular_packages_core_core_bd",(function(){return Ee})),n.d(e,"ɵangular_packages_core_core_be",(function(){return Je})),n.d(e,"ɵangular_packages_core_core_bm",(function(){return ra})),n.d(e,"ɵangular_packages_core_core_bl",(function(){return ge})),n.d(e,"ɵangular_packages_core_core_g",(function(){return Vi})),n.d(e,"ɵangular_packages_core_core_h",(function(){return Yi})),n.d(e,"ɵangular_packages_core_core_bg",(function(){return vr})),n.d(e,"ɵangular_packages_core_core_bk",(function(){return bt})),n.d(e,"ɵangular_packages_core_core_bh",(function(){return f})),n.d(e,"ɵangular_packages_core_core_bi",(function(){return p})),n.d(e,"ɵangular_packages_core_core_bn",(function(){return C})),n.d(e,"ɵangular_packages_core_core_y",(function(){return ap})),n.d(e,"ɵangular_packages_core_core_z",(function(){return Rg})),n.d(e,"createPlatform",(function(){return yy})),n.d(e,"assertPlatform",(function(){return Oy})),n.d(e,"destroyPlatform",(function(){return vy})),n.d(e,"getPlatform",(function(){return Cy})),n.d(e,"PlatformRef",(function(){return Py})),n.d(e,"ApplicationRef",(function(){return xy})),n.d(e,"createPlatformFactory",(function(){return _y})),n.d(e,"NgProbeToken",(function(){return by})),n.d(e,"enableProdMode",(function(){return Ga})),n.d(e,"isDevMode",(function(){return za})),n.d(e,"APP_ID",(function(){return gb})),n.d(e,"PACKAGE_ROOT_URL",(function(){return _b})),n.d(e,"PLATFORM_INITIALIZER",(function(){return hb})),n.d(e,"PLATFORM_ID",(function(){return bb})),n.d(e,"APP_BOOTSTRAP_LISTENER",(function(){return yb})),n.d(e,"APP_INITIALIZER",(function(){return db})),n.d(e,"ApplicationInitStatus",(function(){return ub})),n.d(e,"DebugElement",(function(){return t_})),n.d(e,"DebugEventListener",(function(){return jy})),n.d(e,"DebugNode",(function(){return Qy})),n.d(e,"asNativeElements",(function(){return Gy})),n.d(e,"getDebugNode",(function(){return Jy})),n.d(e,"Testability",(function(){return cy})),n.d(e,"TestabilityRegistry",(function(){return ly})),n.d(e,"setTestabilityGetter",(function(){return uy})),n.d(e,"TRANSLATIONS",(function(){return Cb})),n.d(e,"TRANSLATIONS_FORMAT",(function(){return Pb})),n.d(e,"LOCALE_ID",(function(){return vb})),n.d(e,"MissingTranslationStrategy",(function(){return Mb})),n.d(e,"ApplicationModule",(function(){return s_})),n.d(e,"wtfCreateScope",(function(){return $b})),n.d(e,"wtfLeave",(function(){return Zb})),n.d(e,"wtfStartTimeRange",(function(){return Jb})),n.d(e,"wtfEndTimeRange",(function(){return Xb})),n.d(e,"Type",(function(){return Zi})),n.d(e,"EventEmitter",(function(){return Wm})),n.d(e,"ErrorHandler",(function(){return Ta})),n.d(e,"Sanitizer",(function(){return gr})),n.d(e,"SecurityContext",(function(){return ur})),n.d(e,"Attribute",(function(){return O})),n.d(e,"ANALYZE_FOR_ENTRY_COMPONENTS",(function(){return gc})),n.d(e,"ContentChild",(function(){return mc})),n.d(e,"ContentChildren",(function(){return pc})),n.d(e,"Query",(function(){return fc})),n.d(e,"ViewChild",(function(){return bc})),n.d(e,"ViewChildren",(function(){return hc})),n.d(e,"Component",(function(){return $h})),n.d(e,"Directive",(function(){return Kh})),n.d(e,"HostBinding",(function(){return Qh})),n.d(e,"HostListener",(function(){return tb})),n.d(e,"Input",(function(){return Jh})),n.d(e,"Output",(function(){return Xh})),n.d(e,"Pipe",(function(){return Zh})),n.d(e,"NgModule",(function(){return sb})),n.d(e,"CUSTOM_ELEMENTS_SCHEMA",(function(){return Sa})),n.d(e,"NO_ERRORS_SCHEMA",(function(){return ka})),n.d(e,"ViewEncapsulation",(function(){return ht})),n.d(e,"Version",(function(){return Qu})),n.d(e,"VERSION",(function(){return tg})),n.d(e,"InjectFlags",(function(){return v})),n.d(e,"ɵɵdefineInjectable",(function(){return M})),n.d(e,"defineInjectable",(function(){return x})),n.d(e,"ɵɵdefineInjector",(function(){return w})),n.d(e,"forwardRef",(function(){return A})),n.d(e,"resolveForwardRef",(function(){return E})),n.d(e,"Injectable",(function(){return ys})),n.d(e,"Injector",(function(){return Ls})),n.d(e,"ɵɵinject",(function(){return J})),n.d(e,"inject",(function(){return X})),n.d(e,"INJECTOR",(function(){return B})),n.d(e,"ReflectiveInjector",(function(){return dc})),n.d(e,"ResolvedReflectiveFactory",(function(){return nc})),n.d(e,"ReflectiveKey",(function(){return Ks})),n.d(e,"InjectionToken",(function(){return G})),n.d(e,"Inject",(function(){return m})),n.d(e,"Optional",(function(){return h})),n.d(e,"Self",(function(){return b})),n.d(e,"SkipSelf",(function(){return y})),n.d(e,"Host",(function(){return _})),n.d(e,"NgZone",(function(){return ey})),n.d(e,"ɵNoopNgZone",(function(){return sy})),n.d(e,"RenderComponentType",(function(){return Yu})),n.d(e,"Renderer",(function(){return Uu})),n.d(e,"Renderer2",(function(){return Zu})),n.d(e,"RendererFactory2",(function(){return Ku})),n.d(e,"RendererStyleFlags2",(function(){return $u})),n.d(e,"RootRenderer",(function(){return Wu})),n.d(e,"COMPILER_OPTIONS",(function(){return jb})),n.d(e,"Compiler",(function(){return qb})),n.d(e,"CompilerFactory",(function(){return Fb})),n.d(e,"ModuleWithComponentFactories",(function(){return Tb})),n.d(e,"ComponentFactory",(function(){return Au})),n.d(e,"ɵComponentFactory",(function(){return Au})),n.d(e,"ComponentRef",(function(){return Ru})),n.d(e,"ComponentFactoryResolver",(function(){return qu})),n.d(e,"ElementRef",(function(){return Gu})),n.d(e,"NgModuleFactory",(function(){return it})),n.d(e,"NgModuleRef",(function(){return ot})),n.d(e,"NgModuleFactoryLoader",(function(){return Ty})),n.d(e,"getModuleFactory",(function(){return Iy})),n.d(e,"QueryList",(function(){return $m})),n.d(e,"SystemJsNgModuleLoader",(function(){return Ey})),n.d(e,"SystemJsNgModuleLoaderConfig",(function(){return Ry})),n.d(e,"TemplateRef",(function(){return hg})),n.d(e,"ViewContainerRef",(function(){return _g})),n.d(e,"EmbeddedViewRef",(function(){return qy})),n.d(e,"ViewRef",(function(){return Ly})),n.d(e,"ChangeDetectionStrategy",(function(){return ft})),n.d(e,"ChangeDetectorRef",(function(){return Wi})),n.d(e,"DefaultIterableDiffer",(function(){return ag})),n.d(e,"IterableDiffers",(function(){return ug})),n.d(e,"KeyValueDiffers",(function(){return gg})),n.d(e,"SimpleChange",(function(){return mu})),n.d(e,"WrappedValue",(function(){return kc})),n.d(e,"platformCore",(function(){return e_})),n.d(e,"ɵALLOW_MULTIPLE_PLATFORMS",(function(){return hy})),n.d(e,"ɵAPP_ID_RANDOM_PROVIDER",(function(){return pb})),n.d(e,"ɵdefaultIterableDiffers",(function(){return pg})),n.d(e,"ɵdefaultKeyValueDiffers",(function(){return mg})),n.d(e,"ɵdevModeEqual",(function(){return Sc})),n.d(e,"ɵisListLikeIterable",(function(){return Ic})),n.d(e,"ɵChangeDetectorStatus",(function(){return pt})),n.d(e,"ɵisDefaultChangeDetectionStrategy",(function(){return mt})),n.d(e,"ɵConsole",(function(){return Ob})),n.d(e,"ɵsetCurrentInjector",(function(){return K})),n.d(e,"ɵgetInjectableDef",(function(){return T})),n.d(e,"ɵAPP_ROOT",(function(){return vs})),n.d(e,"ɵDEFAULT_LOCALE_ID",(function(){return Tp})),n.d(e,"ɵivyEnabled",(function(){return wb})),n.d(e,"ɵCodegenComponentFactoryResolver",(function(){return ju})),n.d(e,"ɵclearResolutionOfComponentResourcesQueue",(function(){return Cc})),n.d(e,"ɵresolveComponentResources",(function(){return yc})),n.d(e,"ɵReflectionCapabilities",(function(){return ns})),n.d(e,"ɵRenderDebugInfo",(function(){return Hu})),n.d(e,"ɵ_sanitizeHtml",(function(){return lr})),n.d(e,"ɵ_sanitizeStyle",(function(){return mr})),n.d(e,"ɵ_sanitizeUrl",(function(){return Ha})),n.d(e,"ɵglobal",(function(){return F})),n.d(e,"ɵlooseIdentical",(function(){return Tc})),n.d(e,"ɵstringify",(function(){return N})),n.d(e,"ɵmakeDecorator",(function(){return u})),n.d(e,"ɵisObservable",(function(){return Kl})),n.d(e,"ɵisPromise",(function(){return Wl})),n.d(e,"ɵclearOverrides",(function(){return LO})),n.d(e,"ɵinitServicesIfNeeded",(function(){return J_})),n.d(e,"ɵoverrideComponentView",(function(){return DO})),n.d(e,"ɵoverrideProvider",(function(){return EO})),n.d(e,"ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR",(function(){return dp})),n.d(e,"ɵgetLocalePluralCase",(function(){return xp})),n.d(e,"ɵfindLocaleData",(function(){return wp})),n.d(e,"ɵLOCALE_DATA",(function(){return vp})),n.d(e,"ɵLocaleDataIndex",(function(){return Cp})),n.d(e,"ɵɵattribute",(function(){return zc})),n.d(e,"ɵɵattributeInterpolate1",(function(){return Zc})),n.d(e,"ɵɵattributeInterpolate2",(function(){return Jc})),n.d(e,"ɵɵattributeInterpolate3",(function(){return Xc})),n.d(e,"ɵɵattributeInterpolate4",(function(){return Qc})),n.d(e,"ɵɵattributeInterpolate5",(function(){return tl})),n.d(e,"ɵɵattributeInterpolate6",(function(){return el})),n.d(e,"ɵɵattributeInterpolate7",(function(){return nl})),n.d(e,"ɵɵattributeInterpolate8",(function(){return al})),n.d(e,"ɵɵattributeInterpolateV",(function(){return rl})),n.d(e,"ɵɵdefineBase",(function(){return Dt})),n.d(e,"ɵɵdefineComponent",(function(){return St})),n.d(e,"ɵɵdefineDirective",(function(){return Lt})),n.d(e,"ɵɵdefinePipe",(function(){return qt})),n.d(e,"ɵɵdefineNgModule",(function(){return Rt})),n.d(e,"ɵdetectChanges",(function(){return ol})),n.d(e,"ɵrenderComponent",(function(){return lu})),n.d(e,"ɵRender3ComponentFactory",(function(){return _p})),n.d(e,"ɵRender3ComponentRef",(function(){return Op})),n.d(e,"ɵɵdirectiveInject",(function(){return ml})),n.d(e,"ɵɵinjectAttribute",(function(){return hl})),n.d(e,"ɵɵinjectPipeChangeDetectorRef",(function(){return yh})),n.d(e,"ɵɵgetFactoryOf",(function(){return Ca})),n.d(e,"ɵɵgetInheritedFactory",(function(){return Pa})),n.d(e,"ɵɵsetComponentScope",(function(){return kt})),n.d(e,"ɵɵsetNgModuleScope",(function(){return At})),n.d(e,"ɵɵtemplateRefExtractor",(function(){return bh})),n.d(e,"ɵɵProvidersFeature",(function(){return Nu})),n.d(e,"ɵɵInheritDefinitionFeature",(function(){return Ou})),n.d(e,"ɵɵNgOnChangesFeature",(function(){return hu})),n.d(e,"ɵLifecycleHooksFeature",(function(){return fu})),n.d(e,"ɵRender3NgModuleRef",(function(){return wm})),n.d(e,"ɵmarkDirty",(function(){return il})),n.d(e,"ɵNgModuleFactory",(function(){return Tm})),n.d(e,"ɵNO_CHANGE",(function(){return ro})),n.d(e,"ɵɵcontainer",(function(){return sl})),n.d(e,"ɵɵnextContext",(function(){return td})),n.d(e,"ɵɵelementStart",(function(){return Ll})),n.d(e,"ɵɵnamespaceHTML",(function(){return sn})),n.d(e,"ɵɵnamespaceMathML",(function(){return on})),n.d(e,"ɵɵnamespaceSVG",(function(){return rn})),n.d(e,"ɵɵelement",(function(){return jl})),n.d(e,"ɵɵlistener",(function(){return $l})),n.d(e,"ɵɵtext",(function(){return hd})),n.d(e,"ɵɵtextInterpolate",(function(){return yd})),n.d(e,"ɵɵtextInterpolate1",(function(){return _d})),n.d(e,"ɵɵtextInterpolate2",(function(){return Od})),n.d(e,"ɵɵtextInterpolate3",(function(){return vd})),n.d(e,"ɵɵtextInterpolate4",(function(){return Cd})),n.d(e,"ɵɵtextInterpolate5",(function(){return Pd})),n.d(e,"ɵɵtextInterpolate6",(function(){return Md})),n.d(e,"ɵɵtextInterpolate7",(function(){return xd})),n.d(e,"ɵɵtextInterpolate8",(function(){return wd})),n.d(e,"ɵɵtextInterpolateV",(function(){return Td})),n.d(e,"ɵɵembeddedViewStart",(function(){return Yl})),n.d(e,"ɵɵprojection",(function(){return od})),n.d(e,"ɵɵpipeBind1",(function(){return zm})),n.d(e,"ɵɵpipeBind2",(function(){return Gm})),n.d(e,"ɵɵpipeBind3",(function(){return Bm})),n.d(e,"ɵɵpipeBind4",(function(){return Vm})),n.d(e,"ɵɵpipeBindV",(function(){return Ym})),n.d(e,"ɵɵpureFunction0",(function(){return km})),n.d(e,"ɵɵpureFunction1",(function(){return Im})),n.d(e,"ɵɵpureFunction2",(function(){return Nm})),n.d(e,"ɵɵpureFunction3",(function(){return Rm})),n.d(e,"ɵɵpureFunction4",(function(){return Am})),n.d(e,"ɵɵpureFunction5",(function(){return Em})),n.d(e,"ɵɵpureFunction6",(function(){return Dm})),n.d(e,"ɵɵpureFunction7",(function(){return Lm})),n.d(e,"ɵɵpureFunction8",(function(){return qm})),n.d(e,"ɵɵpureFunctionV",(function(){return jm})),n.d(e,"ɵɵgetCurrentView",(function(){return Ul})),n.d(e,"ɵgetDirectives",(function(){return Qd})),n.d(e,"ɵgetHostElement",(function(){return eu})),n.d(e,"ɵɵrestoreView",(function(){return Ae})),n.d(e,"ɵɵcontainerRefreshStart",(function(){return ll})),n.d(e,"ɵɵcontainerRefreshEnd",(function(){return dl})),n.d(e,"ɵɵqueryRefresh",(function(){return rh})),n.d(e,"ɵɵviewQuery",(function(){return ih})),n.d(e,"ɵɵstaticViewQuery",(function(){return oh})),n.d(e,"ɵɵstaticContentQuery",(function(){return dh})),n.d(e,"ɵɵloadViewQuery",(function(){return ch})),n.d(e,"ɵɵcontentQuery",(function(){return lh})),n.d(e,"ɵɵloadContentQuery",(function(){return gh})),n.d(e,"ɵɵelementEnd",(function(){return ql})),n.d(e,"ɵɵhostProperty",(function(){return Ud})),n.d(e,"ɵɵproperty",(function(){return jc})),n.d(e,"ɵɵpropertyInterpolate",(function(){return id})),n.d(e,"ɵɵpropertyInterpolate1",(function(){return sd})),n.d(e,"ɵɵpropertyInterpolate2",(function(){return cd})),n.d(e,"ɵɵpropertyInterpolate3",(function(){return ld})),n.d(e,"ɵɵpropertyInterpolate4",(function(){return dd})),n.d(e,"ɵɵpropertyInterpolate5",(function(){return ud})),n.d(e,"ɵɵpropertyInterpolate6",(function(){return gd})),n.d(e,"ɵɵpropertyInterpolate7",(function(){return fd})),n.d(e,"ɵɵpropertyInterpolate8",(function(){return pd})),n.d(e,"ɵɵpropertyInterpolateV",(function(){return md})),n.d(e,"ɵɵupdateSyntheticHostBinding",(function(){return Wd})),n.d(e,"ɵɵcomponentHostSyntheticListener",(function(){return Zl})),n.d(e,"ɵɵprojectionDef",(function(){return nd})),n.d(e,"ɵɵreference",(function(){return fl})),n.d(e,"ɵɵenableBindings",(function(){return ve})),n.d(e,"ɵɵdisableBindings",(function(){return Ce})),n.d(e,"ɵɵallocHostVars",(function(){return Mc})),n.d(e,"ɵɵelementContainerStart",(function(){return Gl})),n.d(e,"ɵɵelementContainerEnd",(function(){return Bl})),n.d(e,"ɵɵelementContainer",(function(){return Vl})),n.d(e,"ɵɵstyling",(function(){return bl})),n.d(e,"ɵɵstyleMap",(function(){return Pl})),n.d(e,"ɵɵstyleSanitizer",(function(){return yl})),n.d(e,"ɵɵclassMap",(function(){return Ml})),n.d(e,"ɵɵclassMapInterpolate1",(function(){return Sd})),n.d(e,"ɵɵclassMapInterpolate2",(function(){return kd})),n.d(e,"ɵɵclassMapInterpolate3",(function(){return Id})),n.d(e,"ɵɵclassMapInterpolate4",(function(){return Nd})),n.d(e,"ɵɵclassMapInterpolate5",(function(){return Rd})),n.d(e,"ɵɵclassMapInterpolate6",(function(){return Ad})),n.d(e,"ɵɵclassMapInterpolate7",(function(){return Ed})),n.d(e,"ɵɵclassMapInterpolate8",(function(){return Dd})),n.d(e,"ɵɵclassMapInterpolateV",(function(){return Ld})),n.d(e,"ɵɵstyleProp",(function(){return _l})),n.d(e,"ɵɵstylePropInterpolate1",(function(){return qd})),n.d(e,"ɵɵstylePropInterpolate2",(function(){return jd})),n.d(e,"ɵɵstylePropInterpolate3",(function(){return Fd})),n.d(e,"ɵɵstylePropInterpolate4",(function(){return zd})),n.d(e,"ɵɵstylePropInterpolate5",(function(){return Gd})),n.d(e,"ɵɵstylePropInterpolate6",(function(){return Bd})),n.d(e,"ɵɵstylePropInterpolate7",(function(){return Vd})),n.d(e,"ɵɵstylePropInterpolate8",(function(){return Yd})),n.d(e,"ɵɵstylePropInterpolateV",(function(){return Hd})),n.d(e,"ɵɵstylingApply",(function(){return Sl})),n.d(e,"ɵɵclassProp",(function(){return vl})),n.d(e,"ɵɵelementHostAttrs",(function(){return Fl})),n.d(e,"ɵɵselect",(function(){return bo})),n.d(e,"ɵɵtextBinding",(function(){return bd})),n.d(e,"ɵɵtemplate",(function(){return cl})),n.d(e,"ɵɵembeddedViewEnd",(function(){return Hl})),n.d(e,"ɵstore",(function(){return gl})),n.d(e,"ɵɵload",(function(){return pl})),n.d(e,"ɵɵpipe",(function(){return Fm})),n.d(e,"ɵwhenRendered",(function(){return pu})),n.d(e,"ɵɵi18n",(function(){return am})),n.d(e,"ɵɵi18nAttributes",(function(){return rm})),n.d(e,"ɵɵi18nExp",(function(){return sm})),n.d(e,"ɵɵi18nStart",(function(){return $p})),n.d(e,"ɵɵi18nEnd",(function(){return Qp})),n.d(e,"ɵɵi18nApply",(function(){return cm})),n.d(e,"ɵɵi18nPostprocess",(function(){return Xp})),n.d(e,"ɵi18nConfigureLocalize",(function(){return mm})),n.d(e,"ɵɵi18nLocalize",(function(){return bm})),n.d(e,"ɵsetLocaleId",(function(){return _m})),n.d(e,"ɵsetClassMetadata",(function(){return Sm})),n.d(e,"ɵɵresolveWindow",(function(){return mn})),n.d(e,"ɵɵresolveDocument",(function(){return hn})),n.d(e,"ɵɵresolveBody",(function(){return bn})),n.d(e,"ɵcompileComponent",(function(){return Dh})),n.d(e,"ɵcompileDirective",(function(){return Lh})),n.d(e,"ɵcompileNgModule",(function(){return xh})),n.d(e,"ɵcompileNgModuleDefs",(function(){return wh})),n.d(e,"ɵpatchComponentDefWithScope",(function(){return Nh})),n.d(e,"ɵresetCompiledComponents",(function(){return kh})),n.d(e,"ɵflushModuleScopingQueueAsMuchAsPossible",(function(){return Ph})),n.d(e,"ɵtransitiveScopesFor",(function(){return Rh})),n.d(e,"ɵcompilePipe",(function(){return Wh})),n.d(e,"ɵɵsanitizeHtml",(function(){return hr})),n.d(e,"ɵɵsanitizeStyle",(function(){return br})),n.d(e,"ɵɵdefaultStyleSanitizer",(function(){return Pr})),n.d(e,"ɵɵsanitizeScript",(function(){return Or})),n.d(e,"ɵɵsanitizeUrl",(function(){return yr})),n.d(e,"ɵɵsanitizeResourceUrl",(function(){return _r})),n.d(e,"ɵɵsanitizeUrlOrResourceUrl",(function(){return Cr})),n.d(e,"ɵbypassSanitizationTrustHtml",(function(){return Ra})),n.d(e,"ɵbypassSanitizationTrustStyle",(function(){return Aa})),n.d(e,"ɵbypassSanitizationTrustScript",(function(){return Ea})),n.d(e,"ɵbypassSanitizationTrustUrl",(function(){return Da})),n.d(e,"ɵbypassSanitizationTrustResourceUrl",(function(){return La})),n.d(e,"ɵgetLContext",(function(){return Tr})),n.d(e,"ɵNG_ELEMENT_ID",(function(){return wt})),n.d(e,"ɵNG_COMPONENT_DEF",(function(){return Ot})),n.d(e,"ɵNG_DIRECTIVE_DEF",(function(){return vt})),n.d(e,"ɵNG_PIPE_DEF",(function(){return Ct})),n.d(e,"ɵNG_MODULE_DEF",(function(){return Pt})),n.d(e,"ɵNG_BASE_DEF",(function(){return xt})),n.d(e,"ɵNG_INJECTABLE_DEF",(function(){return k})),n.d(e,"ɵNG_INJECTOR_DEF",(function(){return I})),n.d(e,"ɵcompileNgModuleFactory__POST_R3__",(function(){return py})),n.d(e,"ɵisBoundToModule__POST_R3__",(function(){return my})),n.d(e,"ɵSWITCH_COMPILE_COMPONENT__POST_R3__",(function(){return eb})),n.d(e,"ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__",(function(){return nb})),n.d(e,"ɵSWITCH_COMPILE_PIPE__POST_R3__",(function(){return ab})),n.d(e,"ɵSWITCH_COMPILE_NGMODULE__POST_R3__",(function(){return cb})),n.d(e,"ɵgetDebugNode__POST_R3__",(function(){return Zy})),n.d(e,"ɵSWITCH_COMPILE_INJECTABLE__POST_R3__",(function(){return _s})),n.d(e,"ɵSWITCH_IVY_ENABLED__POST_R3__",(function(){return xb})),n.d(e,"ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__",(function(){return Ki})),n.d(e,"ɵCompiler_compileModuleSync__POST_R3__",(function(){return kb})),n.d(e,"ɵCompiler_compileModuleAsync__POST_R3__",(function(){return Nb})),n.d(e,"ɵCompiler_compileModuleAndAllComponentsSync__POST_R3__",(function(){return Ab})),n.d(e,"ɵCompiler_compileModuleAndAllComponentsAsync__POST_R3__",(function(){return Db})),n.d(e,"ɵSWITCH_ELEMENT_REF_FACTORY__POST_R3__",(function(){return Bu})),n.d(e,"ɵSWITCH_TEMPLATE_REF_FACTORY__POST_R3__",(function(){return bg})),n.d(e,"ɵSWITCH_VIEW_CONTAINER_REF_FACTORY__POST_R3__",(function(){return Og})),n.d(e,"ɵSWITCH_RENDERER2_FACTORY__POST_R3__",(function(){return Ju})),n.d(e,"ɵgetModuleFactory__POST_R3__",(function(){return ky})),n.d(e,"ɵregisterNgModuleType",(function(){return Pm})),n.d(e,"ɵpublishGlobalUtil",(function(){return cu})),n.d(e,"ɵpublishDefaultGlobalUtils",(function(){return su})),n.d(e,"ɵcreateInjector",(function(){return Ts})),n.d(e,"ɵINJECTOR_IMPL__POST_R3__",(function(){return Es})),n.d(e,"ɵregisterModuleFactory",(function(){return vm})),n.d(e,"ɵEMPTY_ARRAY",(function(){return mf})),n.d(e,"ɵEMPTY_MAP",(function(){return hf})),n.d(e,"ɵand",(function(){return c_})),n.d(e,"ɵccf",(function(){return kf})),n.d(e,"ɵcmf",(function(){return qO})),n.d(e,"ɵcrt",(function(){return jg})),n.d(e,"ɵdid",(function(){return tp})),n.d(e,"ɵeld",(function(){return l_})),n.d(e,"ɵgetComponentViewDefinitionFactory",(function(){return If})),n.d(e,"ɵinlineInterpolate",(function(){return ff})),n.d(e,"ɵinterpolate",(function(){return gf})),n.d(e,"ɵmod",(function(){return Cf})),n.d(e,"ɵmpd",(function(){return vf})),n.d(e,"ɵncd",(function(){return __})),n.d(e,"ɵnov",(function(){return Gf})),n.d(e,"ɵpid",(function(){return ep})),n.d(e,"ɵprd",(function(){return np})),n.d(e,"ɵpad",(function(){return C_})),n.d(e,"ɵpod",(function(){return P_})),n.d(e,"ɵppd",(function(){return v_})),n.d(e,"ɵqud",(function(){return p_})),n.d(e,"ɵted",(function(){return x_})),n.d(e,"ɵunv",(function(){return qg})),n.d(e,"ɵvid",(function(){return S_}));var a=n("XNiG"),r=n("quSY"),o=n("HDdC"),i=n("VRyK"),s=n("w1tV");const c="__annotations__",l="__parameters__",d="__prop__metadata__";function u(t,e,n,a,r){const o=g(e);function i(...t){if(this instanceof i)return o.call(this,...t),this;const e=new i(...t);return function(n){return r&&r(n,...t),(n.hasOwnProperty(c)?n[c]:Object.defineProperty(n,c,{value:[]})[c]).push(e),a&&a(n),n}}return n&&(i.prototype=Object.create(n.prototype)),i.prototype.ngMetadataName=t,i.annotationCls=i,i}function g(t){return function(...e){if(t){const n=t(...e);for(const t in n)this[t]=n[t]}}}function f(t,e,n){const a=g(e);function r(...t){if(this instanceof r)return a.apply(this,t),this;const e=new r(...t);return n.annotation=e,n;function n(t,n,a){const r=t.hasOwnProperty(l)?t[l]:Object.defineProperty(t,l,{value:[]})[l];for(;r.length<=a;)r.push(null);return(r[a]=r[a]||[]).push(e),t}}return n&&(r.prototype=Object.create(n.prototype)),r.prototype.ngMetadataName=t,r.annotationCls=r,r}function p(t,e,n,a){const r=g(e);function o(...t){if(this instanceof o)return r.apply(this,t),this;const e=new o(...t);return function(n,r){const o=n.constructor,i=o.hasOwnProperty(d)?o[d]:Object.defineProperty(o,d,{value:{}})[d];i[r]=i.hasOwnProperty(r)&&i[r]||[],i[r].unshift(e),a&&a(n,r,...t)}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=t,o.annotationCls=o,o}const m=f("Inject",t=>({token:t})),h=f("Optional"),b=f("Self"),y=f("SkipSelf"),_=f("Host"),O=f("Attribute",t=>({attributeName:t}));var v=function(t){return t[t.Default=0]="Default",t[t.Host=1]="Host",t[t.Self=2]="Self",t[t.SkipSelf=4]="SkipSelf",t[t.Optional=8]="Optional",t}({});function C(t){for(let e in t)if(t[e]===C)return e;throw Error("Could not find renamed property on target object.")}function P(t,e){for(const n in e)e.hasOwnProperty(n)&&!t.hasOwnProperty(n)&&(t[n]=e[n])}function M(t){return{token:t.token,providedIn:t.providedIn||null,factory:t.factory,value:void 0}}const x=M;function w(t){return{factory:t.factory,providers:t.providers||[],imports:t.imports||[]}}function T(t){const e=t[k];return e&&e.token===t?e:null}function S(t){return t&&t.hasOwnProperty(I)?t[I]:null}const k=C({ngInjectableDef:C}),I=C({ngInjectorDef:C});function N(t){if("string"==typeof t)return t;if(t instanceof Array)return"["+t.map(N).join(", ")+"]";if(null==t)return""+t;if(t.overriddenName)return`${t.overriddenName}`;if(t.name)return`${t.name}`;const e=t.toString();if(null==e)return""+e;const n=e.indexOf("\n");return-1===n?e:e.substring(0,n)}const R=C({__forward_ref__:C});function A(t){return t.__forward_ref__=A,t.toString=function(){return N(this())},t}function E(t){const e=t;return"function"==typeof e&&e.hasOwnProperty(R)&&e.__forward_ref__===A?e():t}const D="undefined"!=typeof globalThis&&globalThis,L="undefined"!=typeof window&&window,q="undefined"!=typeof self&&"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&self,j="undefined"!=typeof global&&global,F=D||j||L||q;function z(){const t=F.ng;if(!t||!t.ɵcompilerFacade)throw new Error("Angular JIT compilation failed: '@angular/compiler' not loaded!\n  - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\n  - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\n  - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.");return t.ɵcompilerFacade}class G{constructor(t,e){this._desc=t,this.ngMetadataName="InjectionToken",this.ngInjectableDef=void 0,"number"==typeof e?this.__NG_ELEMENT_ID__=e:void 0!==e&&(this.ngInjectableDef=M({token:this,providedIn:e.providedIn||"root",factory:e.factory}))}toString(){return`InjectionToken ${this._desc}`}}const B=new G("INJECTOR",-1),V=new Object,Y=/\n/gm,H=C({provide:String,useValue:C});let U,W=void 0;function K(t){const e=W;return W=t,e}function $(t){const e=U;return U=t,e}function Z(t,e=v.Default){if(void 0===W)throw new Error("inject() must be called from an injection context");return null===W?Q(t,void 0,e):W.get(t,e&v.Optional?null:void 0,e)}function J(t,e=v.Default){return(U||Z)(t,e)}const X=J;function Q(t,e,n){const a=T(t);if(a&&"root"==a.providedIn)return void 0===a.value?a.value=a.factory():a.value;if(n&v.Optional)return null;if(void 0!==e)return e;throw new Error(`Injector: NOT_FOUND [${N(t)}]`)}function tt(t){const e=[];for(let n=0;n<t.length;n++){const a=E(t[n]);if(Array.isArray(a)){if(0===a.length)throw new Error("Arguments array must have arguments.");let t=void 0,n=v.Default;for(let e=0;e<a.length;e++){const r=a[e];r instanceof h||"Optional"===r.ngMetadataName||r===h?n|=v.Optional:r instanceof y||"SkipSelf"===r.ngMetadataName||r===y?n|=v.SkipSelf:r instanceof b||"Self"===r.ngMetadataName||r===b?n|=v.Self:t=r instanceof m||r===m?r.token:r}e.push(J(t,n))}else e.push(J(a))}return e}class et{get(t,e=V){if(e===V){const e=new Error(`NullInjectorError: No provider for ${N(t)}!`);throw e.name="NullInjectorError",e}return e}}function nt(t,e,n,a){const r=t.ngTempTokenPath;throw e.__source&&r.unshift(e.__source),t.message=at("\n"+t.message,r,n,a),t.ngTokenPath=r,t.ngTempTokenPath=null,t}function at(t,e,n,a=null){t=t&&"\n"===t.charAt(0)&&"ɵ"==t.charAt(1)?t.substr(2):t;let r=N(e);if(e instanceof Array)r=e.map(N).join(" -> ");else if("object"==typeof e){let t=[];for(let n in e)if(e.hasOwnProperty(n)){let a=e[n];t.push(n+":"+("string"==typeof a?JSON.stringify(a):N(a)))}r=`{${t.join(", ")}}`}return`${n}${a?"("+a+")":""}[${r}]: ${t.replace(Y,"\n  ")}`}const rt={"ɵɵdefineInjectable":M,"ɵɵdefineInjector":w,"ɵɵinject":J,"ɵɵgetFactoryOf":function(t){const e=t,n=T(e)||S(e);return n&&void 0!==n.factory?n.factory:null}};class ot{}class it{}function st(t,e){for(let n=0;n<t.length;n++)e.push(t[n])}function ct(t,e){void 0===e&&(e=t);for(let n=0;n<t.length;n++){let a=t[n];Array.isArray(a)?(e===t&&(e=t.slice(0,n)),ct(a,e)):e!==t&&e.push(a)}return e}function lt(t,e){t.forEach(t=>Array.isArray(t)?lt(t,e):e(t))}function dt(t,e,n){e>=t.length?t.push(n):t.splice(e,0,n)}function ut(t,e){return e>=t.length-1?t.pop():t.splice(e,1)[0]}function gt(t){throw new Error(`ASSERTION ERROR: ${t}`)}const ft=function(){var t={OnPush:0,Default:1};return t[t.OnPush]="OnPush",t[t.Default]="Default",t}(),pt=function(){var t={CheckOnce:0,Checked:1,CheckAlways:2,Detached:3,Errored:4,Destroyed:5};return t[t.CheckOnce]="CheckOnce",t[t.Checked]="Checked",t[t.CheckAlways]="CheckAlways",t[t.Detached]="Detached",t[t.Errored]="Errored",t[t.Destroyed]="Destroyed",t}();function mt(t){return null==t||t===ft.Default}const ht=function(){var t={Emulated:0,Native:1,None:2,ShadowDom:3};return t[t.Emulated]="Emulated",t[t.Native]="Native",t[t.None]="None",t[t.ShadowDom]="ShadowDom",t}();function bt(t){return""+{toString:t}}const yt={},_t=[],Ot=C({ngComponentDef:C}),vt=C({ngDirectiveDef:C}),Ct=C({ngPipeDef:C}),Pt=C({ngModuleDef:C}),Mt=C({ngLocaleIdDef:C}),xt=C({ngBaseDef:C}),wt=C({__NG_ELEMENT_ID__:C});let Tt=0;function St(t){const e=t.type,n=e.prototype,a={},r={type:e,providersResolver:null,consts:t.consts,vars:t.vars,factory:t.factory,template:t.template||null,ngContentSelectors:t.ngContentSelectors,hostBindings:t.hostBindings||null,contentQueries:t.contentQueries||null,declaredInputs:a,inputs:null,outputs:null,exportAs:t.exportAs||null,onChanges:null,onInit:n.ngOnInit||null,doCheck:n.ngDoCheck||null,afterContentInit:n.ngAfterContentInit||null,afterContentChecked:n.ngAfterContentChecked||null,afterViewInit:n.ngAfterViewInit||null,afterViewChecked:n.ngAfterViewChecked||null,onDestroy:n.ngOnDestroy||null,onPush:t.changeDetection===ft.OnPush,directiveDefs:null,pipeDefs:null,selectors:t.selectors,viewQuery:t.viewQuery||null,features:t.features||null,data:t.data||{},encapsulation:t.encapsulation||ht.Emulated,id:"c",styles:t.styles||_t,_:null,setInput:null,schemas:t.schemas||null,tView:null};return r._=bt(()=>{const n=t.directives,o=t.features,i=t.pipes;r.id+=Tt++,r.inputs=Et(t.inputs,a),r.outputs=Et(t.outputs),o&&o.forEach(t=>t(r)),r.directiveDefs=n?()=>("function"==typeof n?n():n).map(It):null,r.pipeDefs=i?()=>("function"==typeof i?i():i).map(Nt):null,e.hasOwnProperty(k)||(e[k]=M({token:e,factory:t.factory}))}),r}function kt(t,e,n){const a=t.ngComponentDef;a.directiveDefs=()=>e.map(It),a.pipeDefs=()=>n.map(Nt)}function It(t){return jt(t)||Ft(t)}function Nt(t){return zt(t)}function Rt(t){return{type:t.type,bootstrap:t.bootstrap||_t,declarations:t.declarations||_t,imports:t.imports||_t,exports:t.exports||_t,transitiveCompileScopes:null,schemas:t.schemas||null,id:t.id||null}}function At(t,e){return bt(()=>{const n=Bt(t,!0);n.declarations=e.declarations||_t,n.imports=e.imports||_t,n.exports=e.exports||_t})}function Et(t,e){if(null==t)return yt;const n={};for(const a in t)if(t.hasOwnProperty(a)){let r=t[a],o=r;Array.isArray(r)&&(o=r[1],r=r[0]),n[r]=a,e&&(e[r]=o)}return n}function Dt(t){const e={};return{inputs:Et(t.inputs,e),declaredInputs:e,outputs:Et(t.outputs),viewQuery:t.viewQuery||null,contentQueries:t.contentQueries||null,hostBindings:t.hostBindings||null}}const Lt=St;function qt(t){return{name:t.name,factory:t.factory,pure:!1!==t.pure,onDestroy:t.type.prototype.ngOnDestroy||null}}function jt(t){return t[Ot]||null}function Ft(t){return t[vt]||null}function zt(t){return t[Ct]||null}function Gt(t){return t[xt]||null}function Bt(t,e){const n=t[Pt]||null;if(!n&&!0===e)throw new Error(`Type ${N(t)} does not have 'ngModuleDef' property.`);return n}function Vt(t){return Array.isArray(t)&&"object"==typeof t[1]}function Yt(t){return Array.isArray(t)&&!0===t[1]}function Ht(t){return 0!=(4&t.flags)}function Ut(t){return 1==(1&t.flags)}function Wt(t){return null!==t.template}function Kt(t){return 0!=(512&t[2])}class $t{constructor(t,e,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=e,this.injectImpl=n}}function Zt(t,e,n,a,r,o){const{onChanges:i,onInit:s,doCheck:c}=e;r>=0&&(!n.preOrderHooks||r===n.preOrderHooks.length)&&(i||s||c)&&(n.preOrderHooks||(n.preOrderHooks=[])).push(a),o>=0&&(!n.preOrderCheckHooks||o===n.preOrderCheckHooks.length)&&(i||c)&&(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(a),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,i)),s&&(n.preOrderHooks||(n.preOrderHooks=[])).push(-t,s),c&&((n.preOrderHooks||(n.preOrderHooks=[])).push(t,c),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(t,c))}function Jt(t,e){if(t.firstTemplatePass)for(let n=e.directiveStart,a=e.directiveEnd;n<a;n++){const e=t.data[n];e.afterContentInit&&(t.contentHooks||(t.contentHooks=[])).push(-n,e.afterContentInit),e.afterContentChecked&&((t.contentHooks||(t.contentHooks=[])).push(n,e.afterContentChecked),(t.contentCheckHooks||(t.contentCheckHooks=[])).push(n,e.afterContentChecked)),e.afterViewInit&&(t.viewHooks||(t.viewHooks=[])).push(-n,e.afterViewInit),e.afterViewChecked&&((t.viewHooks||(t.viewHooks=[])).push(n,e.afterViewChecked),(t.viewCheckHooks||(t.viewCheckHooks=[])).push(n,e.afterViewChecked)),null!=e.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(n,e.onDestroy)}}function Xt(t,e,n,a){n||Qt(t,e.preOrderHooks,e.preOrderCheckHooks,n,0,void 0!==a?a:null)}function Qt(t,e,n,a,r,o){if(a)return;const i=(3&t[2])===r?e:n;i&&function(t,e,n,a){const r=null!=a?a:-1;let o=0;for(let i=void 0!==a?65535&t[18]:0;i<e.length;i++)if("number"==typeof e[i+1]){if(o=e[i],null!=a&&o>=a)break}else e[i]<0&&(t[18]+=65536),(o<r||-1==r)&&(te(t,n,e,i),t[18]=(4294901760&t[18])+i+2),i++}(t,i,r,o),null==o&&(3&t[2])===r&&3!==r&&(t[2]&=1023,t[2]+=1)}function te(t,e,n,a){const r=n[a]<0,o=n[a+1],i=t[r?-n[a]:n[a]];r?t[2]>>10<t[18]>>16&&(3&t[2])===e&&(t[2]+=1024,o.call(i)):o.call(i)}let ee=null;const ne=new Map;let ae,re=null;function oe(t,e){return re&&t===re||(re=t,e&&(ee=ne.get(t)||null),ee=ee||{classesBitMask:0,classesIndex:1,stylesBitMask:0,stylesIndex:1}),ee}function ie(){ee=null,re=null}function se(t){for(;Array.isArray(t);)t=t[0];return t}function ce(t,e){return se(e[t+19])}function le(t,e){return se(e[t.index])}function de(t,e){const n=t.index;return-1==n?null:se(e[n])}function ue(t,e){return e[1].data[t+19]}function ge(t,e){return t[e+19]}function fe(t,e){const n=e[t];return Vt(n)?n:n[0]}function pe(t){return t.__ngContext__}function me(t){const e=pe(t);return e?Array.isArray(e)?e:e.lView:null}function he(t){t[18]=0}let be,ye=null;function _e(t){ye=t}function Oe(){return be}function ve(){be=!0}function Ce(){be=!1}function Pe(){return we}let Me,xe,we,Te=1,Se=0,ke=0;function Ie(t=null){Qe!==t&&(en(null==t?-1:t),Te=null==t?0:1,Se=0,ke=0)}function Ne(){Te+=1+ke,Se=0,ke=0}function Re(t){Se+=t,ke=Math.max(ke,Se)}function Ae(t){ze=t}function Ee(){return Me}function De(t,e){Me=t,xe=e}function Le(t,e){Me=t,we=e}function qe(){return xe}function je(){xe=!1}function Fe(t=we){return 4==(4&t[2])}let ze=null,Ge=!1;function Be(){return Ge}function Ve(t){Ge=t}let Ye=-1;function He(){return Ye}function Ue(t){Ye=t}let We=0;function Ke(){return We}function $e(t){We=t}function Ze(t,e){const n=we;return t&&(Ye=t[1].bindingStartIndex),Me=e,xe=!0,we=ze=t,n}function Je(t=1){return ze=function(t,e){for(;t>0;)e=e[16],t--;return e}(t,ze),ze[9]}function Xe(t,e){const n=we[1];if(Fe(we))we[2]&=-5;else try{he(we),e&&Qt(we,n.viewHooks,n.viewCheckHooks,Ge,2,void 0)}finally{we[2]&=-73,we[7]=n.bindingStartIndex}Ze(t,null)}let Qe=-1;function tn(){return Qe}function en(t){Qe=t,ie()}let nn,an=null;function rn(){an="http://www.w3.org/2000/svg"}function on(){an="http://www.w3.org/1998/MathML/"}function sn(){cn()}function cn(){an=null}function ln(t){nn=t}function dn(){return nn}function un(t,e){return!(t!=t&&e!=e)&&t!==e}function gn(t){return"string"==typeof t?t:null==t?"":""+t}function fn(t){return"function"==typeof t?t.name||t.toString():"object"==typeof t&&null!=t&&"function"==typeof t.type?t.type.name||t.type.toString():gn(t)}const pn=(()=>("undefined"!=typeof requestAnimationFrame&&requestAnimationFrame||setTimeout).bind(F))();function mn(t){return{name:"window",target:t.ownerDocument.defaultView}}function hn(t){return{name:"document",target:t.ownerDocument}}function bn(t){return{name:"body",target:t.ownerDocument.body}}function yn(t){return t.indexOf("�")>=0}function _n(t){return t instanceof Function?t():t}function On(t,e){0===e?t[2]>0&&function(t){Cn(t,2|vn(t))}(t):t[2]=e}function vn(t){return t[1]}function Cn(t,e){t[1]=e}function Pn(t,e){return t[e+2]}function Mn(t,e){return 1&t[e+0]}function xn(t,e){return(1&Mn(t,e))>0}function wn(t,e){return t[e+0]>>1}function Tn(t,e,n){const a=Mn(t,e);t[e+0]=a|n<<1}function Sn(t,e){return t[e+1]}function kn(t,e,n){return t[e+3+n]}function In(t,e){return!(!t||e!==t[2])}function Nn(t){return(1&vn(t))>0}function Rn(t){return(2&vn(t))>0}function An(t){return 6+t[4]}function En(t,e){let n=Array.isArray(t)?t[0]:t,a=Array.isArray(e)?e[0]:e;return n instanceof String&&(n=n.toString()),a instanceof String&&(a=a.toString()),un(n,a)}function Dn(t){return null!=t&&""!==t}function Ln(t,e,n=" "){return t+(e.length&&t.length?n:"")+e}function qn(t){return t.replace(/[a-z][A-Z]/g,t=>t.charAt(0)+"-"+t.charAt(1)).toLowerCase()}function jn(t){return Fn(t)?t[0]:t}function Fn(t){return Array.isArray(t)&&t.length>=6&&"string"!=typeof t[1]}function zn(t){const e=jn(t);return e&&e[0]||""}function Gn(t){return 0!=(8&t.flags)}function Bn(t){return 0!=(16&t.flags)}function Vn(t,e){return t[e+0]}function Yn(t,e,n){t[e+1]=n}function Hn(t,e){return t[e+1]}const Un=function(){var t={Important:1,DashCase:2};return t[t.Important]="Important",t[t.DashCase]="DashCase",t}();function Wn(t){return!!t.listen}const Kn={createRenderer:(t,e)=>document};function $n(t,e){const n=Pe()[12],a=Wn(n);let r=0;for(;r<e.length;){const o=e[r];if("number"==typeof o){if(0!==o)break;r++;const i=e[r++],s=e[r++],c=e[r++];a?n.setAttribute(t,s,c,i):t.setAttributeNS(i,s,c)}else{const i=o,s=e[++r];Jn(i)?a&&n.setProperty(t,i,s):a?n.setAttribute(t,i,s):t.setAttribute(i,s),r++}}return r}function Zn(t){return 3===t||4===t||6===t}function Jn(t){return"@"===t[0]}function Xn(t){return-1!==t}function Qn(t){return 32767&t}function ta(t){return t>>16}function ea(t,e){let n=ta(t),a=e;for(;n>0;)a=a[16],n--;return a}function na(t){const e=t[3];return Yt(e)?e[3]:e}function aa(t){let e=t[6];for(;null!==e&&2===e.type;)e=(t=t[16])[6];return t}function ra(t){return function(t){let e=Vt(t)?t:me(t);for(;e&&!(512&e[2]);)e=na(e);return e}(t)[9]}let oa=!0;function ia(t){const e=oa;return oa=t,e}let sa=0;function ca(t,e){const n=da(t,e);if(-1!==n)return n;const a=e[1];a.firstTemplatePass&&(t.injectorIndex=e.length,la(a.data,t),la(e,null),la(a.blueprint,null));const r=ua(t,e),o=Qn(r),i=ea(r,e),s=t.injectorIndex;if(Xn(r)){const t=i[1].data;for(let n=0;n<8;n++)e[s+n]=i[o+n]|t[o+n]}return e[s+8]=r,s}function la(t,e){t.push(0,0,0,0,0,0,0,0,e)}function da(t,e){return-1===t.injectorIndex||t.parent&&t.parent.injectorIndex===t.injectorIndex||null==e[t.injectorIndex+8]?-1:t.injectorIndex}function ua(t,e){if(t.parent&&-1!==t.parent.injectorIndex)return t.parent.injectorIndex;let n=e[6],a=1;for(;n&&-1===n.injectorIndex;)n=(e=e[16])?e[6]:null,a++;return n?n.injectorIndex|a<<16:-1}function ga(t,e,n){!function(t,e,n){let a="string"!=typeof n?n[wt]:n.charCodeAt(0)||0;null==a&&(a=n[wt]=sa++);const r=255&a,o=1<<r,i=64&r,s=32&r,c=e.data;128&r?i?s?c[t+7]|=o:c[t+6]|=o:s?c[t+5]|=o:c[t+4]|=o:i?s?c[t+3]|=o:c[t+2]|=o:s?c[t+1]|=o:c[t]|=o}(t,e,n)}function fa(t,e){if("class"===e)return zn(t.classes);if("style"===e)return zn(t.styles);const n=t.attrs;if(n){const t=n.length;let a=0;for(;a<t;){const r=n[a];if(Zn(r))break;if(0===r)a+=2;else if("number"==typeof r)for(a++;a<t&&"string"==typeof n[a];)a++;else{if(r===e)return n[a+1];a+=2}}}return null}function pa(t,e,n,a=v.Default,r){if(t){const r=function(t){if("string"==typeof t)return t.charCodeAt(0)||0;const e=t[wt];return"number"==typeof e&&e>0?255&e:e}(n);if("function"==typeof r){const o=Ee(),i=Pe();Le(t,e);try{const t=r();if(null!=t||a&v.Optional)return t;throw new Error(`No provider for ${fn(n)}!`)}finally{Le(o,i)}}else if("number"==typeof r){if(-1===r)return new va(t,e);let o=null,i=da(t,e),s=-1,c=a&v.Host?aa(e)[6]:null;for((-1===i||a&v.SkipSelf)&&(s=-1===i?ua(t,e):e[i+8],Oa(a,!1)?(o=e[1],i=Qn(s),e=ea(s,e)):i=-1);-1!==i;){s=e[i+8];const t=e[1];if(_a(r,i,t.data)){const t=ha(i,e,n,o,a,c);if(t!==ma)return t}Oa(a,e[1].data[i+8]===c)&&_a(r,i,e)?(o=t,i=Qn(s),e=ea(s,e)):i=-1}}}if(a&v.Optional&&void 0===r&&(r=null),0==(a&(v.Self|v.Host))){const t=e[10],o=$(void 0);try{return t?t.get(n,r,a&v.Optional):Q(n,r,a&v.Optional)}finally{$(o)}}if(a&v.Optional)return r;throw new Error(`NodeInjector: NOT_FOUND [${fn(n)}]`)}const ma={};function ha(t,e,n,a,r,o){const i=e[1],s=i.data[t+8],c=ba(s,i,n,null==a?Ut(s)&&oa:a!=i&&3===s.type,r&v.Host&&o===s);return null!==c?ya(i.data,e,c,s):ma}function ba(t,e,n,a,r){const o=t.providerIndexes,i=e.data,s=65535&o,c=t.directiveStart,l=o>>16,d=r?s+l:t.directiveEnd;for(let u=a?s:s+l;u<d;u++){const t=i[u];if(u<c&&n===t||u>=c&&t.type===n)return u}if(r){const t=i[c];if(t&&Wt(t)&&t.type===n)return c}return null}function ya(t,e,n,a){let r=e[n];if(null!==(o=r)&&"object"==typeof o&&Object.getPrototypeOf(o)==$t.prototype){const o=r;if(o.resolving)throw new Error(`Circular dep for ${fn(t[n])}`);const i=ia(o.canSeeViewProviders);let s;o.resolving=!0,o.injectImpl&&(s=$(o.injectImpl));const c=Ee(),l=Pe();Le(a,e);try{r=e[n]=o.factory(void 0,t,e,a)}finally{o.injectImpl&&$(s),ia(i),o.resolving=!1,Le(c,l)}}var o;return r}function _a(t,e,n){const a=64&t,r=32&t;let o;return o=128&t?a?r?n[e+7]:n[e+6]:r?n[e+5]:n[e+4]:a?r?n[e+3]:n[e+2]:r?n[e+1]:n[e],!!(o&1<<t)}function Oa(t,e){return!(t&v.Self||t&v.Host&&e)}class va{constructor(t,e){this._tNode=t,this._lView=e}get(t,e){return pa(this._tNode,this._lView,t,void 0,e)}}function Ca(t){const e=t,n=jt(e)||Ft(e)||zt(e)||T(e)||S(e);return n&&void 0!==n.factory?n.factory:null}function Pa(t){const e=Ca(Object.getPrototypeOf(t.prototype).constructor);return null!==e?e:t=>new t}function Ma(t){return t.ngDebugContext}function xa(t){return t.ngOriginalError}function wa(t,...e){t.error(...e)}class Ta{constructor(){this._console=console}handleError(t){const e=this._findOriginalError(t),n=this._findContext(t),a=function(t){return t.ngErrorLogger||wa}(t);a(this._console,"ERROR",t),e&&a(this._console,"ORIGINAL ERROR",e),n&&a(this._console,"ERROR CONTEXT",n)}_findContext(t){return t?Ma(t)?Ma(t):this._findContext(xa(t)):null}_findOriginalError(t){let e=xa(t);for(;e&&xa(e);)e=xa(e);return e}}const Sa={name:"custom-elements"},ka={name:"no-errors-schema"},Ia="__SANITIZER_TRUSTED_BRAND__";function Na(t,e){return t instanceof String&&t[Ia]===e}function Ra(t){return qa(t,"Html")}function Aa(t){return qa(t,"Style")}function Ea(t){return qa(t,"Script")}function Da(t){return qa(t,"Url")}function La(t){return qa(t,"ResourceUrl")}function qa(t,e){const n=new String(t);return n[Ia]=e,n}let ja=!0,Fa=!1;function za(){return Fa=!0,ja}function Ga(){if(Fa)throw new Error("Cannot enable prod mode after platform setup.");ja=!1}class Ba{constructor(t){if(this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),this.inertBodyElement=this.inertDocument.body,null==this.inertBodyElement){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t),this.inertBodyElement=this.inertDocument.createElement("body"),t.appendChild(this.inertBodyElement)}this.inertBodyElement.innerHTML='<svg><g onload="this.parentNode.remove()"></g></svg>',!this.inertBodyElement.querySelector||this.inertBodyElement.querySelector("svg")?(this.inertBodyElement.innerHTML='<svg><p><style><img src="</style><img src=x onerror=alert(1)//">',this.getInertBodyElement=this.inertBodyElement.querySelector&&this.inertBodyElement.querySelector("svg img")&&function(){try{return!!window.DOMParser}catch(t){return!1}}()?this.getInertBodyElement_DOMParser:this.getInertBodyElement_InertDocument):this.getInertBodyElement=this.getInertBodyElement_XHR}getInertBodyElement_XHR(t){t="<body><remove></remove>"+t+"</body>";try{t=encodeURI(t)}catch(a){return null}const e=new XMLHttpRequest;e.responseType="document",e.open("GET","data:text/html;charset=utf-8,"+t,!1),e.send(void 0);const n=e.response.body;return n.removeChild(n.firstChild),n}getInertBodyElement_DOMParser(t){t="<body><remove></remove>"+t+"</body>";try{const e=(new window.DOMParser).parseFromString(t,"text/html").body;return e.removeChild(e.firstChild),e}catch(e){return null}}getInertBodyElement_InertDocument(t){const e=this.inertDocument.createElement("template");return"content"in e?(e.innerHTML=t,e):(this.inertBodyElement.innerHTML=t,this.defaultDoc.documentMode&&this.stripCustomNsAttrs(this.inertBodyElement),this.inertBodyElement)}stripCustomNsAttrs(t){const e=t.attributes;for(let a=e.length-1;0<a;a--){const n=e.item(a).name;"xmlns:ns1"!==n&&0!==n.indexOf("ns1:")||t.removeAttribute(n)}let n=t.firstChild;for(;n;)n.nodeType===Node.ELEMENT_NODE&&this.stripCustomNsAttrs(n),n=n.nextSibling}}const Va=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,Ya=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i;function Ha(t){return(t=String(t)).match(Va)||t.match(Ya)?t:(za()&&console.warn(`WARNING: sanitizing unsafe URL value ${t} (see http://g.co/ng/security#xss)`),"unsafe:"+t)}function Ua(t){return(t=String(t)).split(",").map(t=>Ha(t.trim())).join(", ")}function Wa(t){const e={};for(const n of t.split(","))e[n]=!0;return e}function Ka(...t){const e={};for(const n of t)for(const t in n)n.hasOwnProperty(t)&&(e[t]=!0);return e}const $a=Wa("area,br,col,hr,img,wbr"),Za=Wa("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ja=Wa("rp,rt"),Xa=Ka(Ja,Za),Qa=Ka($a,Ka(Za,Wa("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")),Ka(Ja,Wa("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")),Xa),tr=Wa("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),er=Wa("srcset"),nr=Ka(tr,er,Wa("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,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Wa("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")),ar=Wa("script,style,template");class rr{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(t){let e=t.firstChild,n=!0;for(;e;)if(e.nodeType===Node.ELEMENT_NODE?n=this.startElement(e):e.nodeType===Node.TEXT_NODE?this.chars(e.nodeValue):this.sanitizedSomething=!0,n&&e.firstChild)e=e.firstChild;else for(;e;){e.nodeType===Node.ELEMENT_NODE&&this.endElement(e);let t=this.checkClobberedElement(e,e.nextSibling);if(t){e=t;break}e=this.checkClobberedElement(e,e.parentNode)}return this.buf.join("")}startElement(t){const e=t.nodeName.toLowerCase();if(!Qa.hasOwnProperty(e))return this.sanitizedSomething=!0,!ar.hasOwnProperty(e);this.buf.push("<"),this.buf.push(e);const n=t.attributes;for(let a=0;a<n.length;a++){const t=n.item(a),e=t.name,r=e.toLowerCase();if(!nr.hasOwnProperty(r)){this.sanitizedSomething=!0;continue}let o=t.value;tr[r]&&(o=Ha(o)),er[r]&&(o=Ua(o)),this.buf.push(" ",e,'="',sr(o),'"')}return this.buf.push(">"),!0}endElement(t){const e=t.nodeName.toLowerCase();Qa.hasOwnProperty(e)&&!$a.hasOwnProperty(e)&&(this.buf.push("</"),this.buf.push(e),this.buf.push(">"))}chars(t){this.buf.push(sr(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 or=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,ir=/([^\#-~ |!])/g;function sr(t){return t.replace(/&/g,"&amp;").replace(or,(function(t){return"&#"+(1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536)+";"})).replace(ir,(function(t){return"&#"+t.charCodeAt(0)+";"})).replace(/</g,"&lt;").replace(/>/g,"&gt;")}let cr;function lr(t,e){let n=null;try{cr=cr||new Ba(t);let a=e?String(e):"";n=cr.getInertBodyElement(a);let r=5,o=a;do{if(0===r)throw new Error("Failed to sanitize html because the input is unstable");r--,a=o,o=n.innerHTML,n=cr.getInertBodyElement(a)}while(a!==o);const i=new rr,s=i.sanitizeChildren(dr(n)||n);return za()&&i.sanitizedSomething&&console.warn("WARNING: sanitizing HTML stripped some content, see http://g.co/ng/security#xss"),s}finally{if(n){const t=dr(n)||n;for(;t.firstChild;)t.removeChild(t.firstChild)}}}function dr(t){return"content"in t&&function(t){return t.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===t.nodeName}(t)?t.content:null}const ur=function(){var t={NONE:0,HTML:1,STYLE:2,SCRIPT:3,URL:4,RESOURCE_URL:5};return t[t.NONE]="NONE",t[t.HTML]="HTML",t[t.STYLE]="STYLE",t[t.SCRIPT]="SCRIPT",t[t.URL]="URL",t[t.RESOURCE_URL]="RESOURCE_URL",t}();class gr{}const fr=new RegExp("^([-,.\"'%_!# a-zA-Z0-9]+|(?:(?:matrix|translate|scale|rotate|skew|perspective)(?:X|Y|Z|3d)?|(?:rgb|hsl)a?|(?:repeating-)?(?:linear|radial)-gradient|(?:calc|attr))\\([-0-9.%, #a-zA-Z]+\\))$","g"),pr=/^url\(([^)]+)\)$/;function mr(t){if(!(t=String(t).trim()))return"";const e=t.match(pr);return e&&Ha(e[1])===e[1]||t.match(fr)&&function(t){let e=!0,n=!0;for(let a=0;a<t.length;a++){const r=t.charAt(a);"'"===r&&n?e=!e:'"'===r&&e&&(n=!n)}return e&&n}(t)?t:(za()&&console.warn(`WARNING: sanitizing unsafe style value ${t} (see http://g.co/ng/security#xss).`),"unsafe")}function hr(t){const e=Mr();return e?e.sanitize(ur.HTML,t)||"":Na(t,"Html")?t.toString():lr(document,gn(t))}function br(t){const e=Mr();return e?e.sanitize(ur.STYLE,t)||"":Na(t,"Style")?t.toString():mr(gn(t))}function yr(t){const e=Mr();return e?e.sanitize(ur.URL,t)||"":Na(t,"Url")?t.toString():Ha(gn(t))}function _r(t){const e=Mr();if(e)return e.sanitize(ur.RESOURCE_URL,t)||"";if(Na(t,"ResourceUrl"))return t.toString();throw new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)")}function Or(t){const e=Mr();if(e)return e.sanitize(ur.SCRIPT,t)||"";if(Na(t,"Script"))return t.toString();throw new Error("unsafe value used in a script context")}function vr(t,e){return"src"===e&&("embed"===t||"frame"===t||"iframe"===t||"media"===t||"script"===t)||"href"===e&&("base"===t||"link"===t)?_r:yr}function Cr(t,e,n){return vr(e,n)(t)}const Pr=function(t,e,n){let a=!0;return 1&(n=n||3)&&(a="background-image"===t||"background"===t||"border-image"===t||"filter"===t||"list-style"===t||"list-style-image"===t||"clip-path"===t),2&n?a?br(e):e:a};function Mr(){const t=Pe();return t&&t[13]}const xr=/([A-Z])/g;function wr(t){try{return null!=t?t.toString().slice(0,30):t}catch(e){return"[ERROR] Exception while trying to serialize the value"}}function Tr(t){let e=pe(t);if(e){if(Array.isArray(e)){const a=e;let r,o=void 0,i=void 0;if((n=t)&&n.constructor&&n.constructor.ngComponentDef){if(r=Ar(a,t),-1==r)throw new Error("The provided component was not found in the application");o=t}else if(function(t){return t&&t.constructor&&t.constructor.ngDirectiveDef}(t)){if(r=function(t,e){let n=t[1].firstChild;for(;n;){const a=n.directiveEnd;for(let r=n.directiveStart;r<a;r++)if(t[r]===e)return n.index;n=Rr(n)}return-1}(a,t),-1==r)throw new Error("The provided directive was not found in the application");i=Er(r,a,!1)}else if(r=Nr(a,t),-1==r)return null;const s=se(a[r]),c=pe(s),l=c&&!Array.isArray(c)?c:Sr(a,r,s);if(o&&void 0===l.component&&(l.component=o,Ir(l.component,l)),i&&void 0===l.directives){l.directives=i;for(let t=0;t<i.length;t++)Ir(i[t],l)}Ir(l.native,l),e=l}}else{const n=t;let a=n;for(;a=a.parentNode;){const t=pe(a);if(t){let a;if(a=Array.isArray(t)?t:t.lView,!a)return null;const r=Nr(a,n);if(r>=0){const t=se(a[r]),n=Sr(a,r,t);Ir(t,n),e=n;break}}}}var n;return e||null}function Sr(t,e,n){return{lView:t,nodeIndex:e,native:n,component:void 0,directives:void 0,localRefs:void 0}}function kr(t){let e,n=pe(t);if(Array.isArray(n)){const a=Ar(n,t);e=fe(a,n);const r=Sr(n,a,e[0]);r.component=t,Ir(t,r),Ir(r.native,r)}else e=fe(n.nodeIndex,n.lView);return e}function Ir(t,e){t.__ngContext__=e}function Nr(t,e){let n=t[1].firstChild;for(;n;){if(de(n,t)===e)return n.index;n=Rr(n)}return-1}function Rr(t){if(t.child)return t.child;if(t.next)return t.next;for(;t.parent&&!t.parent.next;)t=t.parent;return t.parent&&t.parent.next}function Ar(t,e){const n=t[1].components;if(n)for(let a=0;a<n.length;a++){const r=n[a];if(fe(r,t)[9]===e)return r}else if(fe(19,t)[9]===e)return 19;return-1}function Er(t,e,n){const a=e[1].data[t];let r=a.directiveStart;return 0==r?_t:(!n&&1&a.flags&&r++,e.slice(r,a.directiveEnd))}function Dr(t){throw new Error(`Multiple components match node with tagname ${t.tagName}`)}function Lr(){throw new Error("Cannot mix multi providers and regular providers")}function qr(t,e){const n=t.length,a=t.indexOf(e),r=a+e.length;return!(-1===a||a>0&&" "!==t[a-1]||r<n&&" "!==t[r])}function jr(t,e,n){return e===(0!==t.type||n?t.tagName:"ng-template")}function Fr(t,e,n){let a=4;const r=t.attrs||[],o=function(t){for(let e=0;e<t.length;e++)if(Zn(t[e]))return e;return t.length}(r);let i=!1;for(let s=0;s<e.length;s++){const c=e[s];if("number"!=typeof c){if(!i)if(4&a){if(a=2|1&a,""!==c&&!jr(t,c,n)||""===c&&1===e.length){if(zr(a))return!1;i=!0}}else{const l=8&a?c:e[++s];if(8&a&&t.classes){if(!qr(zn(t.classes),l)){if(zr(a))return!1;i=!0}continue}const d=Gr(8&a?"class":c,r,0==t.type&&"ng-template"!==t.tagName,n);if(-1===d){if(zr(a))return!1;i=!0;continue}if(""!==l){let t;t=d>o?"":r[d+1];const e=8&a?t:null;if(e&&!qr(e,l)||2&a&&l!==t){if(zr(a))return!1;i=!0}}}}else{if(!i&&!zr(a)&&!zr(c))return!1;if(i&&zr(c))continue;i=!1,a=c|1&a}}return zr(a)||i}function zr(t){return 0==(1&t)}function Gr(t,e,n,a){if(null===e)return-1;let r=0;if(a||!n){let n=!1;for(;r<e.length;){const a=e[r];if(a===t)return r;if(3===a||6===a)n=!0;else{if(1===a){let t=e[++r];for(;"string"==typeof t;)t=e[++r];continue}if(4===a)break;if(0===a){r+=4;continue}}r+=n?1:2}return-1}return function(t,e){let n=t.indexOf(4);if(n>-1)for(n++;n<t.length;){if(t[n]===e)return n;n++}return-1}(e,t)}function Br(t,e,n=!1){for(let a=0;a<e.length;a++)if(Fr(t,e[a],n))return!0;return!1}function Vr(t,e){t:for(let n=0;n<e.length;n++){const a=e[n];if(t.length===a.length){for(let e=0;e<t.length;e++)if(t[e]!==a[e])continue t;return!0}}return!1}let Yr=[];function Hr(t,e,n,a,r,o,i,s){const c=!a,l=oe(n,Rn(t)),d=c?0:l.classesIndex++;return!(!Wr(t,e,d,a,r,o,i,s,!1)&&!s||(l.classesBitMask|=1<<d,0))}function Ur(t,e,n,a,r,o,i,s,c){const l=!a,d=oe(n,Rn(t)),u=l?0:d.stylesIndex++;return!(!Wr(t,e,u,a,r,o,s,c,!!l||!!i&&i(a,null,1))&&!c||(d.stylesBitMask|=1<<u,0))}function Wr(t,e,n,a,r,o,i,s,c){Nn(t)||(i?function(t,e,n,a,r){Yr.unshift(t,e,n,a,r)}(t,n,a,r,c):(Yr.length&&Kr(),$r(t,n,a,r,c)));const l=s||En(e[r],o);return l&&(e[r]=o),l}function Kr(){let t=0;for(;t<Yr.length;)$r(Yr[t++],Yr[t++],Yr[t++],Yr[t++],Yr[t++]);Yr.length=0}function $r(t,e,n,a,r){let o=!1;if(n){let i=!1,s=An(t);for(;s<t.length;){const o=Sn(t,s),c=Pn(t,s);if(i=n<=c,i){n<c&&Zr(t,s,n,r),Jr(t,!1,s,a,e);break}s+=3+o}i||(Zr(t,t.length,n,r),Jr(t,!1,s,a,e),o=!0)}else Jr(t,!0,3,a,e),o=!0;return o}function Zr(t,e,n,a){t.splice(e,0,a?1:0,1,n,null),Tn(t,e,1)}function Jr(t,e,n,a,r){const o=n+3;let i=o+Sn(t,n);if(e||i--,"number"==typeof a){for(let e=o;e<=i;e++)if(t[e]===a)return;t.splice(i,0,a),t[n+1]++,Tn(t,n,wn(t,n)|1<<r)}else null!==a&&null==t[i]&&(t[i]=a)}function Xr(t,e,n,a,r,o,i,s){return r&&a&&(function(t){if(!Nn(t)){const e=jn(t);e&&function(t,e){for(let n=1;n<e.length;n+=2){const a=Hn(e,n);a&&$r(t,-1,Vn(e,n),a,!1)}}(t,e),function(t){Cn(t,1|vn(t))}(t)}}(a),function(t,e){return t&&e>0}(a,o))?(Qr(a,t,e,n,o,i,s),!0):r}function Qr(t,e,n,a,r,o,i){const s=!0===(c=r)?-1:!1===c?0:c;var c;const l=to,d=(s&wn(t,3))>0?1:0;let u=An(t);for(;u<t.length;){const r=Sn(t,u);if(s&wn(t,u)){let s=!1;const c=Pn(t,u),g=r-1,f=kn(t,u,g);for(let r=0;r<g;r++){const l=kn(t,u,r),d=a[l];if(Dn(d)){o(e,n,c,i&&xn(t,u)?i(c,d,2):d,l),s=!0;break}}if(l){const r=l(t,e,n,a,o,i,d|(s?4:2),c,f);s=s||r}s||o(e,n,c,f)}u+=3+r}l&&l(t,e,n,a,o,i,d)}let to=null;const eo=(t,e,n,a)=>{const r=e.style;a?(a=a.toString(),t&&Wn(t)?t.setStyle(e,n,a,Un.DashCase):r&&r.setProperty(n,a)):t&&Wn(t)?t.removeStyle(e,n,Un.DashCase):r&&r.removeProperty(n)},no=(t,e,n,a)=>{if(""!==n){const r=e.classList;a?t&&Wn(t)?t.addClass(e,n):r&&r.add(n):t&&Wn(t)?t.removeClass(e,n):r&&r.remove(n)}};function ao(t,e,n,a){const r=jn(n);if(r)for(let o=1;o<r.length;o+=2){const n=Vn(r,o),i=Hn(r,o);a?no(t,e,n,i):eo(t,e,n,i)}}const ro={},oo={marker:"element"},io={marker:"comment"},so=(t,e,n,a,r,o,i,s,c)=>{let l=!1;if(Sn(t,3)){let d=!0;const u=!s;u&&-2&i&&(d=!1,l=!0),d&&(l=function t(e,n,a,r,o,i,s,c,l,d){let u=!1;if(l<Sn(e,3)){const g=kn(e,3,l),f=r[g];let p=function(t){return t>=go.length&&go.push(1),go[t]}(l);for(;p<f.length;){const m=Vn(f,p),h=c&&m>c,b=!h&&m===c,y=Hn(f,p),_=Dn(y);let O=t(e,n,a,r,o,i,h?s:lo(s,_,b),h?c:m,l+1,d);if(h){u||(u=O);break}if(!O&&uo(s,b)){const t=b&&!_,e=t?d:y,r=t?g:null;o(n,a,m,i?i(m,e,3):e,r),O=!0}u=O&&b,p+=2}if(go[l]=p,1===f.length||!c)return t(e,n,a,r,o,i,s,c,l+1,d)}return u}(t,e,n,a,r,o,i,s||null,0,c||null)),u&&function(){for(let t=0;t<go.length;t++)go[t]=1}()}return l};function co(){to=so}function lo(t,e,n){let a=t;return e||4&t||!(n||1&t)?(a|=4,a&=-3):(a|=2,a&=-5),a}function uo(t,e){let n=(1&t)>0;return n?4&t&&e&&(n=!1):2&t&&(n=e),n}const go=[];function fo(t,e,n,a){for(let r=1;r<t.length;r+=2){const o=Vn(t,r);if(e<=o){let i=!1;if(o===e){const e=t[r];!a&&Dn(e)||(i=!0,Yn(t,r,n))}else i=!0,t.splice(r,0,e,n);return i}}return t.push(e,n),!0}function po(t,e){let n="";for(let a=1;a<t.length;a+=2){const r=Vn(t,a),o=Hn(t,a),i=Ln(r,e?"":o,":");n=Ln(n,i,e?" ":"; ")}return n}function mo(t){let e={};if(t)for(let n=1;n<t.length;n+=2){const a=Vn(t,n),r=Hn(t,n);e[a]=r}return e}class ho{constructor(t,e,n){this.context=t,this._data=e,this._isClassBased=n,this._sanitizer=null}overrideSanitizer(t){this._sanitizer=t}get summary(){const t={};return this._mapValues((e,n,a)=>{t[e]={prop:e,value:n,bindingIndex:a}}),t}get values(){const t={};return this._mapValues((e,n)=>{t[e]=n}),t}_mapValues(t){Sn(this.context,3)>0&&co();const e=this._isClassBased?null:this._sanitizer||dn();Qr(this.context,null,{},this._data,!0,(e,n,a,r,o)=>{t(a,r,o||null)},e)}}function bo(t){yo(Pe(),t)}function yo(t,e){Xt(t,t[1],Be(),e),en(e)}const _o=(()=>Promise.resolve(null))();function Oo(t){const e=t[1],n=Fe(t);if(e.firstTemplatePass=!1,t[7]=e.bindingStartIndex,!n){const n=Be();Xt(t,e,n,void 0),function(t){for(let e=t[14];null!==e;e=e[4])if(-1===e[2]&&Yt(e))for(let t=9;t<e.length;t++){const n=e[t];wo(n,n[1],n[9])}}(t),vo(e,t),he(t),Qt(t,e.contentHooks,e.contentCheckHooks,n,1,void 0),function(t,e){const n=tn();try{if(t.expandoInstructions){let n=e[7]=t.expandoStartIndex;Ue(n);let a=-1,r=-1;for(let o=0;o<t.expandoInstructions.length;o++){const i=t.expandoInstructions[o];"number"==typeof i?(i<=0?(r=-i,Ie(r),n+=9+t.expandoInstructions[++o],a=n):n+=i,Ue(n)):(null!==i&&(e[7]=n,i(2,se(e[a]),r),Ne()),a++)}}}finally{Ie(n)}}(e,t)}n&&e.staticContentQueries&&vo(e,t),n&&!e.staticViewQueries||ri(2,e,t[9]),function(t,e){if(null!=e)for(let n=0;n<e.length;n++)Jo(t,e[n])}(t,e.components)}function vo(t,e){const n=t.contentQueries;if(null!==n)for(let a=0;a<n.length;a+=2){const r=n[a],o=n[a+1];if(-1!==o){const n=t.data[o];$e(r),n.contentQueries(2,e[o],o)}}}function Co(t,e){let n;const a=e||Pe()[12],r=an;return n=Wn(a)?a.createElement(t,r):null===r?a.createElement(t):a.createElementNS(r,t),n}function Po(t,e,n,a,r,o,i,s,c,l){const d=e.blueprint.slice();return d[0]=r,d[2]=140|a,he(d),d[3]=d[16]=t,d[9]=n,d[11]=i||t&&t[11],d[12]=s||t&&t[12],d[13]=c||t&&t[13]||null,d[10]=l||t&&t[10]||null,d[6]=o,d}function Mo(t,e,n,a,r,o){const i=n+19,s=t.data[i]||function(t,e,n,a,r,o,i){const s=Ee(),c=qe(),l=c?s:s&&s.parent,d=t.data[n]=Do(0,l&&l!==e?l:null,a,n,r,o);return 0!==i&&t.firstChild||(t.firstChild=d),s&&(!c||null!=s.child||null===d.parent&&2!==s.type?c||(s.next=d):s.child=d),d}(t,e,i,a,r,o,n);return De(s,!0),s}function xo(t,e,n,a){let r=t.node;return null==r&&(t.node=r=Do(0,e,2,n,null,null)),a[6]=r}function wo(t,e,n){const a=qe(),r=Ee();let o;if(512&t[2])ti(ra(t));else{let i=!1;try{De(null,!0),o=Ze(t,t[6]),he(t),So(t,e.template,ko(t),n),e.firstTemplatePass=!1,Oo(t),i=!0}finally{Xe(o,i),De(r,a)}}}function To(t,e,n){const a=t[11],r=Ze(t,t[6]),o=!Be(),i=Fe(t);let s=!1;try{o&&!i&&a.begin&&a.begin(),i&&(n&&So(t,n,1,e),Oo(t),t[2]&=-5),he(t),n&&So(t,n,2,e),Oo(t),s=!0}finally{o&&!i&&a.end&&a.end(),Xe(r,s)}}function So(t,e,n,a){cn();const r=tn();try{Ie(null),2&n&&yo(t,0),e(n,a)}finally{en(r)}}function ko(t){return Fe(t)?1:2}function Io(t,e,n){if(Ht(e)){const a=e.directiveEnd;for(let r=e.directiveStart;r<a;r++){const e=t.data[r];e.contentQueries&&e.contentQueries(1,n[r],r)}}}function No(t,e,n,a=le){Oe()&&(function(t,e,n){const a=n.directiveStart,r=n.directiveEnd;!t.firstTemplatePass&&a<r&&ca(n,e);for(let o=a;o<r;o++){const a=t.data[o];Wt(a)&&Ko(e,n,a),Bo(e,ya(t.data,e,o,n),a,o)}}(t,e,n),function(t,e,n){const a=n.directiveStart,r=n.directiveEnd,o=t.expandoInstructions,i=t.firstTemplatePass,s=n.index-19,c=tn();try{Ie(s);for(let s=a;s<r;s++){const a=t.data[s],r=e[s];a.hostBindings?(zo(a,o,r,n,i),Ne()):i&&o.push(null)}}finally{Ie(c)}}(t,e,n),function(t,e,n){const a=e.localNames;if(a){let r=e.index+1;for(let o=0;o<a.length;o+=2){const i=a[o+1],s=-1===i?n(e,t):t[i];t[r++]=s}}}(e,n,a),Ie(null))}function Ro(t){return t.tView||(t.tView=Ao(-1,t.template,t.consts,t.vars,t.directiveDefs,t.pipeDefs,t.viewQuery,t.schemas))}function Ao(t,e,n,a,r,o,i,s){const c=19+n,l=c+a,d=function(t,e){const n=new Array(e).fill(null,0,t).fill(ro,t);return n[7]=t,n}(c,l);return d[1]={id:t,blueprint:d,template:e,queries:null,viewQuery:i,node:null,data:d.slice().fill(null,c),bindingStartIndex:c,expandoStartIndex:l,expandoInstructions:null,firstTemplatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:"function"==typeof r?r():r,pipeRegistry:"function"==typeof o?o():o,firstChild:null,schemas:s}}function Eo(t,e){const n=t.createRenderer(null,null);return"string"==typeof e?Wn(n)?n.selectRootElement(e):n.querySelector(e):e}function Do(t,e,n,a,r,o){return{type:n,index:a,injectorIndex:e?e.injectorIndex:-1,directiveStart:-1,directiveEnd:-1,propertyMetadataStartIndex:-1,propertyMetadataEndIndex:-1,flags:0,providerIndexes:0,tagName:r,attrs:o,localNames:null,initialInputs:void 0,inputs:void 0,outputs:void 0,tViews:null,next:null,projectionNext:null,child:null,parent:e,projection:null,styles:null,classes:null}}function Lo(t,e){const n=Pe()[1];let a=null;const r=t.directiveStart,o=t.directiveEnd;if(o>r){const t=0===e,i=n.data;for(let e=r;e<o;e++){const n=i[e],r=t?n.inputs:n.outputs;for(let t in r)if(r.hasOwnProperty(t)){a=a||{};const n=r[t];a.hasOwnProperty(t)?a[t].push(e,t,n):a[t]=[e,t,n]}}}return a}const qo={class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"};function jo(t,e,n,a,r,o){const i=Pe(),s=ce(t,i),c=ue(t,i);let l,d;if(!r&&(l=si(c))&&(d=l[e]))gi(i,d,n),Ut(c)&&function(t,e){const n=fe(e,t);16&n[2]||(n[2]|=64)}(i,t+19);else if(3===c.type){!function(t,e,n,a,r){const o=e[7]-1,i=a[o];"�"==i[0]&&(a[o]=n+i,r||(-1==t.propertyMetadataStartIndex&&(t.propertyMetadataStartIndex=o),t.propertyMetadataEndIndex=o+1))}(c,i,e=qo[e]||e,i[1].data,r);const t=o?o(c,i):i[12];n=null!=a?a(n,c.tagName||"",e):n,Wn(t)?t.setProperty(s,e,n):Jn(e)||(s.setProperty?s.setProperty(e,n):s[e]=n)}}function Fo(t,e,n,a){if(!Oe())return;const r=function(t,e,n){const a=t.directiveRegistry;let r=null;if(a)for(let o=0;o<a.length;o++){const i=a[o];Br(n,i.selectors,!1)&&(r||(r=[]),ga(ca(n,e),t,i.type),Wt(i)?(1&n.flags&&Dr(n),n.flags=1,r.unshift(i)):r.push(i))}return r}(t,e,n),o=a?{"":-1}:null;if(r){Uo(n,t.data.length,r.length);for(let t=0;t<r.length;t++){const e=r[t];e.providersResolver&&e.providersResolver(e)}Go(t,n,r.length);const a=t.preOrderHooks&&t.preOrderHooks.length||0,i=t.preOrderCheckHooks&&t.preOrderCheckHooks.length||0,s=n.index-19;for(let n=0;n<r.length;n++){const c=r[n],l=t.data.length;Wo(t,e,c,c.factory),Ho(t.data.length-1,c,o),Zt(l,c,t,s,a,i)}}o&&function(t,e,n){if(e){const a=t.localNames=[];for(let t=0;t<e.length;t+=2){const r=n[e[t+1]];if(null==r)throw new Error(`Export of name '${e[t+1]}' not found!`);a.push(e[t],r)}}}(n,a,o)}function zo(t,e,n,a,r){const o=e.length;_e(t),t.hostBindings(1,n,a.index-19),_e(null),o===e.length&&r&&e.push(t.hostBindings)}function Go(t,e,n){const a=-(e.index-19),r=t.data.length-(65535&e.providerIndexes);(t.expandoInstructions||(t.expandoInstructions=[])).push(a,r,n)}function Bo(t,e,n,a){const r=Ee();Vo(t,r,e),r&&r.attrs&&function(t,e,n,a){let r=a.initialInputs;(void 0===r||t>=r.length)&&(r=function(t,e,n){const a=n.initialInputs||(n.initialInputs=[]);for(let i=a.length;i<=t;i++)a.push(null);const r=n.attrs;let o=0;for(;o<r.length;){const n=r[o];if(0===n){o+=4;continue}if(5===n){o+=2;continue}if("number"==typeof n)break;const i=e[n],s=r[o+1];void 0!==i&&(a[t]||(a[t]=[])).push(n,i,s),o+=2}return a}(t,n.inputs,a));const o=r[t];if(o){const t=n.setInput;for(let a=0;a<o.length;){const r=o[a++],i=o[a++],s=o[a++];t?n.setInput(e,s,r,i):e[i]=s}}}(a,e,n,r),t[1].firstTemplatePass&&n.contentQueries&&(r.flags|=4),Wt(n)&&(fe(r.index,t)[9]=e)}function Vo(t,e,n){const a=le(e,t);Ir(n,t),a&&Ir(a,t)}function Yo(t){const e=Pe()[1];(e.components||(e.components=[])).push(t.index)}function Ho(t,e,n){if(n){if(e.exportAs)for(let a=0;a<e.exportAs.length;a++)n[e.exportAs[a]]=t;e.template&&(n[""]=t)}}function Uo(t,e,n){t.flags=1&t.flags,t.directiveStart=e,t.directiveEnd=e+n,t.providerIndexes=e}function Wo(t,e,n,a){t.data.push(n);const r=new $t(a,Wt(n),null);t.blueprint.push(r),e.push(r)}function Ko(t,e,n){const a=le(e,t),r=Ro(n),o=t[11],i=Xo(t,Po(t,r,null,n.onPush?64:16,t[e.index],e,o,o.createRenderer(a,n)));i[6]=e,t[e.index]=i,t[1].firstTemplatePass&&Yo(e)}function $o(t,e,n,a,r,o){const i=ce(t,a),s=a[12];if(null==n)Wn(s)?s.removeAttribute(i,e,o):i.removeAttribute(e);else{const c=ue(t,a),l=null==r?gn(n):r(n,c.tagName||"",e);Wn(s)?s.setAttribute(i,e,l,o):o?i.setAttributeNS(o,e,l):i.setAttribute(e,l)}}function Zo(t,e,n,a,r){return new Array(t,!0,r?-1:0,e,null,null,a,n,null)}function Jo(t,e){const n=fe(e,t);(128==(128&n[2])||Fe(t))&&80&n[2]&&(function(t){const e=t[1];for(let n=t.length;n<e.blueprint.length;n++)t[n]=e.blueprint[n]}(n),ai(n,n[9]))}function Xo(t,e){return t[14]?t[15][4]=e:t[14]=e,t[15]=e,e}function Qo(t){for(;t;){t[2]|=64;const e=na(t);if(Kt(t)&&!e)return t;t=e}return null}function ti(t){for(let e=0;e<t.components.length;e++){const n=t.components[e];To(me(n),n)}}function ei(t,e){const n=t[11];n.begin&&n.begin();try{Fe(t)&&ai(t,e),ai(t,e)}catch(a){throw ui(t,a),a}finally{n.end&&n.end()}}function ni(t){ti(t[9])}function ai(t,e){const n=t[1],a=Ze(t,t[6]),r=n.template,o=Fe(t);let i=!1;try{he(t),o&&ri(1,n,e),So(t,r,ko(t),e),Oo(t),i=!0}finally{Xe(a,i)}}function ri(t,e,n){const a=e.viewQuery;null!==a&&($e(0),a(t,n))}function oi(t,e="",n=""){const a=t[1].data,r=t[7]-1;return null==a[r]?a[r]="�"+e+"�"+n:null}const ii=_o;function si(t){return void 0===t.inputs&&(t.inputs=Lo(t,0)),t.inputs}function ci(t){return t[8]||(t[8]=[])}function li(t){return t[1].cleanup||(t[1].cleanup=[])}function di(t,e){return e[t.index][12]}function ui(t,e){const n=t[10],a=n?n.get(Ta,null):null;a&&a.handleError(e)}function gi(t,e,n){const a=t[1];for(let r=0;r<e.length;){const o=e[r++],i=e[r++],s=e[r++],c=t[o],l=a.data[o];l.setInput?l.setInput(c,n,i,s):c[s]=n}}function fi(t,e,n){const a=ce(e,t),r=t[12];Wn(r)?r.setValue(a,n):a.textContent=n}function pi(t,e,n){ao(t,e,n.classes,!0),ao(t,e,n.styles,!1)}function mi(t,e){const n=e[3];return-1===t.index?Yt(n)?n:null:n}function hi(t,e){const n=mi(t,e);return n?ki(e[12],n[7]):null}function bi(t,e,n,a,r){if(null!=a){let o,i=!1;Yt(a)?o=a:Vt(a)&&(i=!0,a=a[0]);const s=se(a);0===t?Ti(e,n,s,r||null):1===t?Ri(e,s,i):2===t&&e.destroyNode(s),null!=o&&function(t,e,n,a,r){const o=n[7];o!==se(n)&&bi(e,t,a,o,r);for(let i=9;i<n.length;i++)Li(t,e,n[i],a,o)}(e,t,o,n,r)}}function yi(t,e){return Wn(e)?e.createText(gn(t)):e.createTextNode(gn(t))}function _i(t,e,n){const a=hi(t[1].node,t);a&&Li(t[12],e?0:1,t,a,n)}function Oi(t,e,n){const a=9+n,r=e.length;n>0&&(e[a-1][4]=t),n<r-9?(t[4]=e[a],dt(e,9+n,t)):(e.push(t),t[4]=null),t[3]=e;const o=t[17];null!==o&&e!==o&&function(t,e){const n=t[5];null===n?t[5]=[e]:n.push(e)}(o,t);const i=t[5];null!==i&&i.insertView(t[1]),t[2]|=128}function vi(t,e){const n=t[5],a=n.indexOf(e);n.splice(a,1)}function Ci(t,e){if(t.length<=9)return;const n=9+e,a=t[n];if(a){const r=a[17];null!==r&&r!==t&&vi(r,a),e>0&&(t[n-1][4]=a[4]);const o=ut(t,9+e);_i(a,!1);const i=o[5];null!==i&&i.detachView(o[1]),a[3]=null,a[4]=null,a[2]&=-129}return a}function Pi(t,e){const n=Ci(t,e);n&&Mi(n)}function Mi(t){if(!(256&t[2])){const e=t[12];Wn(e)&&e.destroyNode&&Li(e,2,t,null,null),function(t){let e=t[14];if(!e)return wi(t);for(;e;){let n=null;if(Vt(e))n=e[14];else{const t=e[9];t&&(n=t)}if(!n){for(;e&&!e[4]&&e!==t;)wi(e),e=xi(e,t);wi(e||t),n=e&&e[4]}e=n}}(t)}}function xi(t,e){let n;return Vt(t)&&(n=t[6])&&2===n.type?mi(n,t):t[3]===e?null:t[3]}function wi(t){if(Vt(t)&&!(256&t[2])){t[2]&=-129,t[2]|=256,function(t){const e=t[1];let n;if(null!=e&&null!=(n=e.destroyHooks))for(let a=0;a<n.length;a+=2){const e=t[n[a]];e instanceof $t||n[a+1].call(e)}}(t),function(t){const e=t[1].cleanup;if(null!==e){const n=t[8];for(let a=0;a<e.length-1;a+=2)if("string"==typeof e[a]){const r=e[a+1],o="function"==typeof r?r(t):se(t[r]),i=n[e[a+2]],s=e[a+3];"boolean"==typeof s?o.removeEventListener(e[a],i,s):s>=0?n[s]():n[-s].unsubscribe(),a+=2}else e[a].call(n[e[a+1]]);t[8]=null}}(t);const e=t[6];e&&3===e.type&&Wn(t[12])&&t[12].destroy();const n=t[17];if(null!==n&&Yt(t[3])){n!==t[3]&&vi(n,t);const e=t[5];null!==e&&e.detachView(t[1])}}}function Ti(t,e,n,a){Wn(t)?t.insertBefore(e,n,a):e.insertBefore(n,a,!0)}function Si(t,e,n,a){null!==a?Ti(t,e,n,a):function(t,e,n){Wn(t)?t.appendChild(e,n):e.appendChild(n)}(t,e,n)}function ki(t,e){return Wn(t)?t.parentNode(e):e.parentNode}function Ii(t,e,n){const a=function(t,e){if(Kt(e))return ki(e[12],le(t,e));const n=function(t){for(;null!=t.parent&&(4===t.parent.type||5===t.parent.type);)t=t.parent;return t}(t),a=n.parent;if(null==a){const t=e[6];return 2===t.type?hi(t,e):function(t){const e=t[6];return e&&3===e.type?le(e,na(t)):null}(e)}{const t=n&&5===n.type;if(t&&2&n.flags)return le(n,e).parentNode;if(1&a.flags&&!t){const t=e[1].data,n=t[t[a.index].directiveStart].encapsulation;if(n!==ht.ShadowDom&&n!==ht.Native)return null}return le(a,e)}}(e,n);if(null!=a){const r=n[12],o=function(t,e){if(2===t.type){const n=mi(t,e);return Ni(n.indexOf(e,9)-9,n)}return 4===t.type||5===t.type?le(t,e):null}(e.parent||n[6],n);if(Array.isArray(t))for(let e of t)Si(r,a,e,o);else Si(r,a,t,o)}}function Ni(t,e){const n=9+t+1;if(n<e.length){const t=e[n],a=t[6].child;return null!==a?de(a,t):e[7]}return e[7]}function Ri(t,e,n){const a=ki(t,e);a&&function(t,e,n,a){Wn(t)?t.removeChild(e,n,a):e.removeChild(n)}(t,a,e,n)}function Ai(t,e,n,a){const r=a[3];let o=a[6].projection[n];if(Array.isArray(o))Ii(o,e,t);else for(;o;)32&o.flags||(1===o.type?Ai(t,e,o.projection,aa(r)):(o.flags|=2,Di(o,e,t,r))),o=o.projectionNext}function Ei(t,e,n,a){for(;t;)Di(t,e,n,a),t=t.next}function Di(t,e,n,a){const r=le(t,a);Ii(r,e,n),Ir(r,a);const o=a[t.index];if(0===t.type)for(let i=9;i<o.length;i++)_i(o[i],!0,o[7]);else if(5===t.type){let e=t.child;Ei(e,e,a,a)}else 4===t.type&&Ei(t.child,e,n,a),Yt(o)&&Ii(o[7],e,n)}function Li(t,e,n,a,r){let o=n[1].node.child;for(;null!==o;)qi(t,e,n,o,a,r),o=o.next}function qi(t,e,n,a,r,o){const i=a.type;32&a.flags||(4===i||5===i?function(t,e,n,a,r,o){bi(e,t,r,n[a.index],o);let i=a.child;for(;i;)qi(t,e,n,i,r,o),i=i.next}(t,e,n,a,r,o):1===i?function(t,e,n,a,r,o){const i=aa(n),s=i[6].projection[a.projection];if(void 0!==s)if(Array.isArray(s))for(let c=0;c<s.length;c++)bi(e,t,r,s[c],o);else{let n=s;const a=i[3];for(;null!==n;)qi(t,e,a,n,r,o),n=n.projectionNext}}(t,e,n,a,r,o):bi(e,t,r,n[a.index],o))}class ji{constructor(t,e,n){this._context=e,this._componentIndex=n,this._appRef=null,this._viewContainerRef=null,this._tViewNode=null,this._lView=t}get rootNodes(){return null==this._lView[0]?function t(e,n,a){let r=n.child;for(;r;){const n=de(r,e);if(n&&a.push(n),4===r.type)t(e,r,a);else if(1===r.type){const t=aa(e),n=t[6],o=na(t);let i=n.projection[r.projection];for(;i&&o;)a.push(le(i,o)),i=i.next}r=r.next}return a}(this._lView,this._lView[6],[]):[]}get context(){return this._context?this._context:this._lookUpContext()}get destroyed(){return 256==(256&this._lView[2])}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._viewContainerRef){const t=this._viewContainerRef.indexOf(this);t>-1&&this._viewContainerRef.detach(t),this._viewContainerRef=null}Mi(this._lView)}onDestroy(t){var e,n;n=t,ci(e=this._lView).push(n),e[1].firstTemplatePass&&li(e).push(e[8].length-1,null)}markForCheck(){Qo(this._lView)}detach(){this._lView[2]&=-129}reattach(){this._lView[2]|=128}detectChanges(){ei(this._lView,this.context)}checkNoChanges(){!function(t,e){Ve(!0);try{ei(t,e)}finally{Ve(!1)}}(this._lView,this.context)}attachToViewContainerRef(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t}detachFromAppRef(){this._appRef=null,function(t){Li(t[12],1,t,null,null)}(this._lView)}attachToAppRef(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}_lookUpContext(){return this._context=na(this._lView)[this._componentIndex]}}class Fi extends ji{constructor(t){super(t,null,-1),this._view=t}detectChanges(){ni(this._view)}checkNoChanges(){!function(t){Ve(!0);try{ni(t)}finally{Ve(!1)}}(this._view)}get context(){return null}}let zi,Gi,Bi;function Vi(t,e,n){return zi||(zi=class extends t{}),new zi(le(e,n))}function Yi(t,e,n,a){return Gi||(Gi=class extends t{constructor(t,e,n){super(),this._declarationView=t,this._declarationTContainer=e,this.elementRef=n}createEmbeddedView(t){const e=this._declarationTContainer.tViews,n=function(t,e,n,a){const r=qe(),o=Ee();De(null,!0);const i=Po(n,t,e,16,null,null);return i[16]=n,xo(t,null,-1,i),t.firstTemplatePass&&(t.node.injectorIndex=a),De(o,r),i}(e,t,this._declarationView,this._declarationTContainer.injectorIndex);n[17]=this._declarationView[this._declarationTContainer.index];const a=this._declarationView[5];null!==a&&(n[5]=a.createEmbeddedView(e)),wo(n,e,t);const r=new ji(n,t,-1);return r._tViewNode=n[6],r}}),0===n.type?new Gi(a,n,Vi(e,n,a)):null}function Hi(t,e,n,a){let r;Bi||(Bi=class extends t{constructor(t,e,n){super(),this._lContainer=t,this._hostTNode=e,this._hostView=n}get element(){return Vi(e,this._hostTNode,this._hostView)}get injector(){return new va(this._hostTNode,this._hostView)}get parentInjector(){const t=ua(this._hostTNode,this._hostView),e=ea(t,this._hostView),n=function(t,e,n){if(n.parent&&-1!==n.parent.injectorIndex){const t=n.parent.injectorIndex;let e=n.parent;for(;null!=e.parent&&t==e.injectorIndex;)e=e.parent;return e}let a=ta(t),r=e,o=e[6];for(;a>1;)r=r[16],o=r[6],a--;return o}(t,this._hostView,this._hostTNode);return Xn(t)&&null!=n?new va(n,e):new va(null,this._hostView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){return null!==this._lContainer[8]&&this._lContainer[8][t]||null}get length(){return this._lContainer.length-9}createEmbeddedView(t,e,n){const a=t.createEmbeddedView(e||{});return this.insert(a,n),a}createComponent(t,e,n,a,r){const o=n||this.parentInjector;!r&&null==t.ngModule&&o&&(r=o.get(ot,null));const i=t.create(o,a,void 0,r);return this.insert(i.hostView,e),i}insert(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");this.allocateContainerIfNeeded();const n=t._lView,a=this._adjustIndex(e);return Yt(n[3])?this.move(t,a):(Oi(n,this._lContainer,a),_i(n,!0,Ni(a,this._lContainer)),t.attachToViewContainerRef(this),dt(this._lContainer[8],a,t),t)}move(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");const n=this.indexOf(t);return-1!==n&&this.detach(n),this.insert(t,e),t}indexOf(t){return null!==this._lContainer[8]?this._lContainer[8].indexOf(t):0}remove(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1);Pi(this._lContainer,e),ut(this._lContainer[8],e)}detach(t){this.allocateContainerIfNeeded();const e=this._adjustIndex(t,-1),n=Ci(this._lContainer,e);return n&&null!=ut(this._lContainer[8],e)?new ji(n,n[9],-1):null}_adjustIndex(t,e=0){return null==t?this.length+e:t}allocateContainerIfNeeded(){null===this._lContainer[8]&&(this._lContainer[8]=[])}});const o=a[n.index];if(Yt(o))r=o,r[2]=-1;else{let t;if(t=4===n.type?se(o):a[12].createComment(""),Kt(a)){const e=a[12],r=le(n,a);Ti(e,ki(e,r),t,function(t,e){return Wn(t)?t.nextSibling(e):e.nextSibling}(e,r))}else Ii(t,n,a);a[n.index]=r=Zo(o,a,t,n,!0),Xo(a,r)}return new Bi(r,n,a)}function Ui(t=!1){return function(t,e,n){if(Ut(t)&&!n){const n=t.directiveStart,a=fe(t.index,e);return new ji(a,null,n)}if(3===t.type||0===t.type||4===t.type){const t=aa(e);return new ji(t,t[9],-1)}return null}(Ee(),Pe(),t)}let Wi=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>$i(),t})();const Ki=Ui,$i=(...t)=>{},Zi=Function;function Ji(t){return"function"==typeof t}const Xi=/^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/,Qi=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/,ts=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/,es=/^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s+super\(\.\.\.arguments\)/;class ns{constructor(t){this._reflect=t||F.Reflect}isReflectionEnabled(){return!0}factory(t){return(...e)=>new t(...e)}_zipTypesAndAnnotations(t,e){let n;n=new Array(void 0===t?e.length:t.length);for(let a=0;a<n.length;a++)n[a]=void 0===t?[]:t[a]&&t[a]!=Object?[t[a]]:[],e&&null!=e[a]&&(n[a]=n[a].concat(e[a]));return n}_ownParameters(t,e){if(n=t.toString(),Xi.test(n)||es.test(n)||Qi.test(n)&&!ts.test(n))return null;var n;if(t.parameters&&t.parameters!==e.parameters)return t.parameters;const a=t.ctorParameters;if(a&&a!==e.ctorParameters){const t="function"==typeof a?a():a,e=t.map(t=>t&&t.type),n=t.map(t=>t&&as(t.decorators));return this._zipTypesAndAnnotations(e,n)}const r=t.hasOwnProperty(l)&&t[l],o=this._reflect&&this._reflect.getOwnMetadata&&this._reflect.getOwnMetadata("design:paramtypes",t);return o||r?this._zipTypesAndAnnotations(o,r):new Array(t.length).fill(void 0)}parameters(t){if(!Ji(t))return[];const e=rs(t);let n=this._ownParameters(t,e);return n||e===Object||(n=this.parameters(e)),n||[]}_ownAnnotations(t,e){if(t.annotations&&t.annotations!==e.annotations){let e=t.annotations;return"function"==typeof e&&e.annotations&&(e=e.annotations),e}return t.decorators&&t.decorators!==e.decorators?as(t.decorators):t.hasOwnProperty(c)?t[c]:null}annotations(t){if(!Ji(t))return[];const e=rs(t),n=this._ownAnnotations(t,e)||[];return(e!==Object?this.annotations(e):[]).concat(n)}_ownPropMetadata(t,e){if(t.propMetadata&&t.propMetadata!==e.propMetadata){let e=t.propMetadata;return"function"==typeof e&&e.propMetadata&&(e=e.propMetadata),e}if(t.propDecorators&&t.propDecorators!==e.propDecorators){const e=t.propDecorators,n={};return Object.keys(e).forEach(t=>{n[t]=as(e[t])}),n}return t.hasOwnProperty(d)?t[d]:null}propMetadata(t){if(!Ji(t))return{};const e=rs(t),n={};if(e!==Object){const t=this.propMetadata(e);Object.keys(t).forEach(e=>{n[e]=t[e]})}const a=this._ownPropMetadata(t,e);return a&&Object.keys(a).forEach(t=>{const e=[];n.hasOwnProperty(t)&&e.push(...n[t]),e.push(...a[t]),n[t]=e}),n}ownPropMetadata(t){return Ji(t)&&this._ownPropMetadata(t,rs(t))||{}}hasLifecycleHook(t,e){return t instanceof Zi&&e in t.prototype}guards(t){return{}}getter(t){return new Function("o","return o."+t+";")}setter(t){return new Function("o","v","return o."+t+" = v;")}method(t){return new Function("o","args",`if (!o.${t}) throw new Error('"${t}" is undefined');\n        return o.${t}.apply(o, args);`)}importUri(t){return"object"==typeof t&&t.filePath?t.filePath:`./${N(t)}`}resourceUri(t){return`./${N(t)}`}resolveIdentifier(t,e,n,a){return a}resolveEnum(t,e){return t[e]}}function as(t){return t?t.map(t=>new(0,t.type.annotationCls)(...t.args?t.args:[])):[]}function rs(t){const e=t.prototype?Object.getPrototypeOf(t.prototype):null;return(e?e.constructor:null)||Object}let os=null;function is(){return os=os||new ns}function ss(t){return cs(is().parameters(t))}function cs(t){const e=z();return t.map(t=>function(t,e){const n={token:null,host:!1,optional:!1,resolved:t.R3ResolvedDependencyType.Token,self:!1,skipSelf:!1};function a(e){n.resolved=t.R3ResolvedDependencyType.Token,n.token=e}if(Array.isArray(e)){if(0===e.length)throw new Error("Dependency array must have arguments.");for(let r=0;r<e.length;r++){const o=e[r];if(void 0!==o)if(o instanceof h||"Optional"===o.__proto__.ngMetadataName)n.optional=!0;else if(o instanceof y||"SkipSelf"===o.__proto__.ngMetadataName)n.skipSelf=!0;else if(o instanceof b||"Self"===o.__proto__.ngMetadataName)n.self=!0;else if(o instanceof _||"Host"===o.__proto__.ngMetadataName)n.host=!0;else if(o instanceof m)n.token=o.token;else if(o instanceof O){if(void 0===o.attributeName)throw new Error("Attribute name must be defined.");n.token=o.attributeName,n.resolved=t.R3ResolvedDependencyType.Attribute}else o===Wi?(n.token=o,n.resolved=t.R3ResolvedDependencyType.ChangeDetectorRef):a(o)}}else a(e);return n}(e,t))}function ls(t,e){let n=null;t.hasOwnProperty(k)||Object.defineProperty(t,k,{get:()=>{if(null===n){const a=e||{providedIn:null},r=us(a)||fs(a)||gs(a)||ps(a),o={name:t.name,type:t,typeArgumentCount:0,providedIn:a.providedIn,ctorDeps:ss(t),userDeps:void 0};if((us(a)||fs(a))&&void 0!==a.deps&&(o.userDeps=cs(a.deps)),r)if(us(a))o.useClass=a.useClass;else if(gs(a))o.useValue=a.useValue;else if(fs(a))o.useFactory=a.useFactory;else{if(!ps(a))throw new Error("Unreachable state.");o.useExisting=a.useExisting}else o.useClass=t;n=z().compileInjectable(rt,`ng:///${t.name}/ngInjectableDef.js`,o)}return n}})}const ds=C({provide:String,useValue:C});function us(t){return void 0!==t.useClass}function gs(t){return ds in t}function fs(t){return void 0!==t.useFactory}function ps(t){return void 0!==t.useExisting}const ms=C({provide:String,useValue:C}),hs=[];function bs(t,e){if(!e){const e=(new ns).parameters(t);return()=>new t(...tt(e))}if(ms in e){const t=e;return()=>t.useValue}if(e.useExisting){const t=e;return()=>J(t.useExisting)}if(e.useFactory){const t=e;return()=>t.useFactory(...tt(t.deps||hs))}if(e.useClass){const n=e;let a=e.deps;if(!a){const e=new ns;a=e.parameters(t)}return()=>new n.useClass(...tt(a))}{let n=e.deps;if(!n){const e=new ns;n=e.parameters(t)}return()=>new t(...tt(n))}}const ys=u("Injectable",void 0,void 0,void 0,(t,e)=>Os(t,e)),_s=ls,Os=function(t,e){e&&void 0!==e.providedIn&&!T(t)&&(t.ngInjectableDef=M({token:t,providedIn:e.providedIn,factory:bs(t,e)}))},vs=new G("The presence of this token marks an injector as being the root injector."),Cs={},Ps={},Ms=[];let xs=void 0;function ws(){return void 0===xs&&(xs=new et),xs}function Ts(t,e=null,n=null,a){return e=e||ws(),new Ss(t,n,e,a)}class Ss{constructor(t,e,n,a=null){this.parent=n,this.records=new Map,this.injectorDefTypes=new Set,this.onDestroy=new Set,this._destroyed=!1;const r=[];lt([t],t=>this.processInjectorType(t,[],r)),e&&lt(e,n=>this.processProvider(n,t,e)),this.records.set(B,Ns(void 0,this)),this.isRootInjector=this.records.has(vs),this.injectorDefTypes.forEach(t=>this.get(t)),this.source=a||("object"==typeof t?null:N(t))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{this.onDestroy.forEach(t=>t.ngOnDestroy())}finally{this.records.clear(),this.onDestroy.clear(),this.injectorDefTypes.clear()}}get(t,e=V,n=v.Default){this.assertNotDestroyed();const a=K(this);try{if(!(n&v.SkipSelf)){let e=this.records.get(t);if(void 0===e){const n=("function"==typeof(r=t)||"object"==typeof r&&r instanceof G)&&T(t);n&&this.injectableDefInScope(n)&&(e=Ns(ks(t),Cs),this.records.set(t,e))}if(void 0!==e)return this.hydrate(t,e)}return(n&v.Self?ws():this.parent).get(t,n&v.Optional?null:e)}catch(o){if("NullInjectorError"===o.name){if((o.ngTempTokenPath=o.ngTempTokenPath||[]).unshift(N(t)),a)throw o;return nt(o,t,"R3InjectorError",this.source)}throw o}finally{K(a)}var r}toString(){const t=[];return this.records.forEach((e,n)=>t.push(N(n))),`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new Error("Injector has already been destroyed.")}processInjectorType(t,e,n){if(!(t=E(t)))return!1;let a=S(t);const r=null==a&&t.ngModule||void 0,o=void 0===r?t:r,i=-1!==n.indexOf(o);if(void 0!==r&&(a=S(r)),null==a)return!1;if(this.injectorDefTypes.add(o),this.records.set(o,Ns(a.factory,Cs)),null!=a.imports&&!i){let t;n.push(o);try{lt(a.imports,a=>{this.processInjectorType(a,e,n)&&(void 0===t&&(t=[]),t.push(a))})}finally{}if(void 0!==t)for(let e=0;e<t.length;e++){const{ngModule:n,providers:a}=t[e];lt(a,t=>this.processProvider(t,n,a||Ms))}}const s=a.providers;if(null!=s&&!i){const e=t;lt(s,t=>this.processProvider(t,e,s))}return void 0!==r&&void 0!==t.providers}processProvider(t,e,n){let a=As(t=E(t))?t:E(t&&t.provide);const r=function(t,e,n){let a=Is(t,e,n);return Rs(t)?Ns(void 0,t.useValue):Ns(a,Cs)}(t,e,n);if(As(t)||!0!==t.multi){const t=this.records.get(a);t&&void 0!==t.multi&&Lr()}else{let e=this.records.get(a);e?void 0===e.multi&&Lr():(e=Ns(void 0,Cs,!0),e.factory=()=>tt(e.multi),this.records.set(a,e)),a=t,e.multi.push(t)}this.records.set(a,r)}hydrate(t,e){var n;return e.value===Ps?function(t){throw new Error(`Cannot instantiate cyclic dependency! ${t}`)}(N(t)):e.value===Cs&&(e.value=Ps,e.value=e.factory()),"object"==typeof e.value&&e.value&&null!==(n=e.value)&&"object"==typeof n&&"function"==typeof n.ngOnDestroy&&this.onDestroy.add(e.value),e.value}injectableDefInScope(t){return!!t.providedIn&&("string"==typeof t.providedIn?"any"===t.providedIn||"root"===t.providedIn&&this.isRootInjector:this.injectorDefTypes.has(t.providedIn))}}function ks(t){const e=T(t);if(null!==e)return e.factory;const n=S(t);if(null!==n)return n.factory;if(t instanceof G)throw new Error(`Token ${N(t)} is missing an ngInjectableDef definition.`);if(t instanceof Function)return function(t){const e=t.length;if(e>0){const n=new Array(e).fill("?");throw new Error(`Can't resolve all parameters for ${N(t)}: (${n.join(", ")}).`)}const n=(a=t)&&a[k]?(console.warn(`DEPRECATED: DI is instantiating a token "${a.name}" that inherits its @Injectable decorator but does not provide one itself.\n`+`This will become an error in v10. Please add @Injectable() to the "${a.name}" class.`),a[k]):null;var a;return null!==n?()=>n.factory(t):()=>new t}(t);throw new Error("unreachable")}function Is(t,e,n){let a=void 0;if(As(t))return ks(E(t));if(Rs(t))a=()=>E(t.useValue);else if((r=t)&&r.useExisting)a=()=>J(E(t.useExisting));else if(function(t){return!(!t||!t.useFactory)}(t))a=()=>t.useFactory(...tt(t.deps||[]));else{const r=E(t&&(t.useClass||t.provide));if(r||function(t,e,n){let a="";throw t&&e&&(a=` - only instances of Provider and Type are allowed, got: [${e.map(t=>t==n?"?"+n+"?":"...").join(", ")}]`),new Error(`Invalid provider for the NgModule '${N(t)}'`+a)}(e,n,t),!function(t){return!!t.deps}(t))return ks(r);a=()=>new r(...tt(t.deps))}var r;return a}function Ns(t,e,n=!1){return{factory:t,value:e,multi:n?[]:void 0}}function Rs(t){return null!==t&&"object"==typeof t&&H in t}function As(t){return"function"==typeof t}function Es(t,e,n){return Ts({name:n},e,t,n)}const Ds=function(t,e,n){return new Gs(t,e,n)};let Ls=(()=>{class t{static create(t,e){return Array.isArray(t)?Ds(t,e,""):Ds(t.providers,t.parent,t.name||"")}}return t.THROW_IF_NOT_FOUND=V,t.NULL=new et,t.ngInjectableDef=M({token:t,providedIn:"any",factory:()=>J(B)}),t.__NG_ELEMENT_ID__=-1,t})();const qs=function(t){return t},js=[],Fs=qs,zs=function(){return Array.prototype.slice.call(arguments)};class Gs{constructor(t,e=Ls.NULL,n=null){this.parent=e,this.source=n;const a=this._records=new Map;a.set(Ls,{token:Ls,fn:qs,deps:js,value:this,useNew:!1}),a.set(B,{token:B,fn:qs,deps:js,value:this,useNew:!1}),function t(e,n){if(n)if((n=E(n))instanceof Array)for(let a=0;a<n.length;a++)t(e,n[a]);else{if("function"==typeof n)throw Vs("Function/Class not supported",n);if(!n||"object"!=typeof n||!n.provide)throw Vs("Unexpected provider",n);{let t=E(n.provide);const a=function(t){const e=function(t){let e=js;const n=t.deps;if(n&&n.length){e=[];for(let t=0;t<n.length;t++){let a=6,r=E(n[t]);if(r instanceof Array)for(let t=0,e=r;t<e.length;t++){const n=e[t];n instanceof h||n==h?a|=1:n instanceof y||n==y?a&=-3:n instanceof b||n==b?a&=-5:r=n instanceof m?n.token:E(n)}e.push({token:r,options:a})}}else if(t.useExisting)e=[{token:E(t.useExisting),options:6}];else if(!(n||H in t))throw Vs("'deps' required",t);return e}(t);let n=qs,a=js,r=!1,o=E(t.provide);if(H in t)a=t.useValue;else if(t.useFactory)n=t.useFactory;else if(t.useExisting);else if(t.useClass)r=!0,n=E(t.useClass);else{if("function"!=typeof o)throw Vs("StaticProvider does not have [useValue|useFactory|useExisting|useClass] or [provide] is not newable",t);r=!0,n=o}return{deps:e,fn:n,useNew:r,value:a}}(n);if(!0===n.multi){let a=e.get(t);if(a){if(a.fn!==zs)throw Bs(t)}else e.set(t,a={token:n.provide,deps:[],useNew:!1,fn:zs,value:js});t=n,a.deps.push({token:t,options:6})}const r=e.get(t);if(r&&r.fn==zs)throw Bs(t);e.set(t,a)}}}(a,t)}get(t,e,n=v.Default){const a=this._records.get(t);try{return function t(e,n,a,r,o,i){try{return function(e,n,a,r,o,i){let s;if(!n||i&v.SkipSelf)i&v.Self||(s=r.get(e,o,v.Default));else{if(s=n.value,s==Fs)throw Error("ɵCircular dependency");if(s===js){n.value=Fs;let e=void 0,o=n.useNew,i=n.fn,c=n.deps,l=js;if(c.length){l=[];for(let e=0;e<c.length;e++){const n=c[e],o=n.options,i=2&o?a.get(n.token):void 0;l.push(t(n.token,i,a,i||4&o?r:Ls.NULL,1&o?null:Ls.THROW_IF_NOT_FOUND,v.Default))}}n.value=s=o?new i(...l):i.apply(e,l)}}return s}(e,n,a,r,o,i)}catch(s){throw s instanceof Error||(s=new Error(s)),(s.ngTempTokenPath=s.ngTempTokenPath||[]).unshift(e),n&&n.value==Fs&&(n.value=js),s}}(t,a,this._records,this.parent,e,n)}catch(r){return nt(r,t,"StaticInjectorError",this.source)}}toString(){const t=[];return this._records.forEach((e,n)=>t.push(N(n))),`StaticInjector[${t.join(", ")}]`}}function Bs(t){return Vs("Cannot mix multi providers and regular providers",t)}function Vs(t,e){return new Error(at(t,e,"StaticInjectorError"))}function Ys(t){return t.length>1?" ("+function(t){const e=[];for(let n=0;n<t.length;++n){if(e.indexOf(t[n])>-1)return e.push(t[n]),e;e.push(t[n])}return e}(t.slice().reverse()).map(t=>N(t.token)).join(" -> ")+")":""}function Hs(t,e,n,a){const r=[e],o=n(r),i=a?function(t,e){const n=`${t} caused by: ${e instanceof Error?e.message:e}`,a=Error(n);return a.ngOriginalError=e,a}(o,a):Error(o);return i.addKey=Us,i.keys=r,i.injectors=[t],i.constructResolvingMessage=n,i.ngOriginalError=a,i}function Us(t,e){this.injectors.push(t),this.keys.push(e),this.message=this.constructResolvingMessage(this.keys)}function Ws(t,e){const n=[];for(let a=0,r=e.length;a<r;a++){const t=e[a];n.push(t&&0!=t.length?t.map(N).join(" "):"?")}return Error("Cannot resolve all parameters for '"+N(t)+"'("+n.join(", ")+"). Make sure that all the parameters are decorated with Inject or have valid type annotations and that '"+N(t)+"' is decorated with Injectable.")}class Ks{constructor(t,e){if(this.token=t,this.id=e,!t)throw new Error("Token must be defined!");this.displayName=N(this.token)}static get(t){return Zs.get(E(t))}static get numberOfKeys(){return Zs.numberOfKeys}}class $s{constructor(){this._allKeys=new Map}get(t){if(t instanceof Ks)return t;if(this._allKeys.has(t))return this._allKeys.get(t);const e=new Ks(t,Ks.numberOfKeys);return this._allKeys.set(t,e),e}get numberOfKeys(){return this._allKeys.size}}const Zs=new $s;class Js{constructor(t){this.reflectionCapabilities=t}updateCapabilities(t){this.reflectionCapabilities=t}factory(t){return this.reflectionCapabilities.factory(t)}parameters(t){return this.reflectionCapabilities.parameters(t)}annotations(t){return this.reflectionCapabilities.annotations(t)}propMetadata(t){return this.reflectionCapabilities.propMetadata(t)}hasLifecycleHook(t,e){return this.reflectionCapabilities.hasLifecycleHook(t,e)}getter(t){return this.reflectionCapabilities.getter(t)}setter(t){return this.reflectionCapabilities.setter(t)}method(t){return this.reflectionCapabilities.method(t)}importUri(t){return this.reflectionCapabilities.importUri(t)}resourceUri(t){return this.reflectionCapabilities.resourceUri(t)}resolveIdentifier(t,e,n,a){return this.reflectionCapabilities.resolveIdentifier(t,e,n,a)}resolveEnum(t,e){return this.reflectionCapabilities.resolveEnum(t,e)}}const Xs=new Js(new ns);class Qs{constructor(t,e,n){this.key=t,this.optional=e,this.visibility=n}static fromKey(t){return new Qs(t,!1,null)}}const tc=[];class ec{constructor(t,e,n){this.key=t,this.resolvedFactories=e,this.multiProvider=n,this.resolvedFactory=this.resolvedFactories[0]}}class nc{constructor(t,e){this.factory=t,this.dependencies=e}}function ac(t){let e,n;if(t.useClass){const a=E(t.useClass);e=Xs.factory(a),n=ic(a)}else t.useExisting?(e=t=>t,n=[Qs.fromKey(Ks.get(t.useExisting))]):t.useFactory?(e=t.useFactory,n=function(t,e){if(e){const n=e.map(t=>[t]);return e.map(e=>sc(t,e,n))}return ic(t)}(t.useFactory,t.deps)):(e=()=>t.useValue,n=tc);return new nc(e,n)}function rc(t){return new ec(Ks.get(t.provide),[ac(t)],t.multi||!1)}function oc(t){const e=function(t,e){for(let n=0;n<t.length;n++){const a=t[n],r=e.get(a.key.id);if(r){if(a.multiProvider!==r.multiProvider)throw Error(`Cannot mix multi providers and regular providers, got: ${r} ${a}`);if(a.multiProvider)for(let t=0;t<a.resolvedFactories.length;t++)r.resolvedFactories.push(a.resolvedFactories[t]);else e.set(a.key.id,a)}else{let t;t=a.multiProvider?new ec(a.key,a.resolvedFactories.slice(),a.multiProvider):a,e.set(a.key.id,t)}}return e}(function t(e,n){return e.forEach(e=>{if(e instanceof Zi)n.push({provide:e,useClass:e});else if(e&&"object"==typeof e&&void 0!==e.provide)n.push(e);else{if(!(e instanceof Array))throw Error(`Invalid provider - only instances of Provider and Type are allowed, got: ${e}`);t(e,n)}}),n}(t,[]).map(rc),new Map);return Array.from(e.values())}function ic(t){const e=Xs.parameters(t);if(!e)return[];if(e.some(t=>null==t))throw Ws(t,e);return e.map(n=>sc(t,n,e))}function sc(t,e,n){let a=null,r=!1;if(!Array.isArray(e))return cc(e instanceof m?e.token:e,r,null);let o=null;for(let i=0;i<e.length;++i){const t=e[i];t instanceof Zi?a=t:t instanceof m?a=t.token:t instanceof h?r=!0:t instanceof b||t instanceof y?o=t:t instanceof G&&(a=t)}if(a=E(a),null!=a)return cc(a,r,o);throw Ws(t,n)}function cc(t,e,n){return new Qs(Ks.get(t),e,n)}const lc=new Object;class dc{static resolve(t){return oc(t)}static resolveAndCreate(t,e){const n=dc.resolve(t);return dc.fromResolvedProviders(n,e)}static fromResolvedProviders(t,e){return new uc(t,e)}}let uc=(()=>{class t{constructor(t,e){this._constructionCounter=0,this._providers=t,this.parent=e||null;const n=t.length;this.keyIds=new Array(n),this.objs=new Array(n);for(let a=0;a<n;a++)this.keyIds[a]=t[a].key.id,this.objs[a]=lc}get(t,e=V){return this._getByKey(Ks.get(t),null,e)}resolveAndCreateChild(t){const e=dc.resolve(t);return this.createChildFromResolved(e)}createChildFromResolved(e){const n=new t(e);return n.parent=this,n}resolveAndInstantiate(t){return this.instantiateResolved(dc.resolve([t])[0])}instantiateResolved(t){return this._instantiateProvider(t)}getProviderAtIndex(t){if(t<0||t>=this._providers.length)throw function(t){return Error(`Index ${t} is out-of-bounds.`)}(t);return this._providers[t]}_new(t){if(this._constructionCounter++>this._getMaxNumberOfObjects())throw Hs(this,t.key,(function(t){return`Cannot instantiate cyclic dependency!${Ys(t)}`}));return this._instantiateProvider(t)}_getMaxNumberOfObjects(){return this.objs.length}_instantiateProvider(t){if(t.multiProvider){const e=new Array(t.resolvedFactories.length);for(let n=0;n<t.resolvedFactories.length;++n)e[n]=this._instantiate(t,t.resolvedFactories[n]);return e}return this._instantiate(t,t.resolvedFactories[0])}_instantiate(t,e){const n=e.factory;let a,r;try{a=e.dependencies.map(t=>this._getByReflectiveDependency(t))}catch(i){throw i.addKey&&i.addKey(this,t.key),i}try{r=n(...a)}catch(i){throw Hs(this,t.key,(function(t){const e=N(t[0].token);return`${o.message}: Error during instantiation of ${e}!${Ys(t)}.`}),o=i)}var o;return r}_getByReflectiveDependency(t){return this._getByKey(t.key,t.visibility,t.optional?null:V)}_getByKey(e,n,a){return e===t.INJECTOR_KEY?this:n instanceof b?this._getByKeySelf(e,a):this._getByKeyDefault(e,a,n)}_getObjByKeyId(t){for(let e=0;e<this.keyIds.length;e++)if(this.keyIds[e]===t)return this.objs[e]===lc&&(this.objs[e]=this._new(this._providers[e])),this.objs[e];return lc}_throwOrNull(t,e){if(e!==V)return e;throw function(t,e){return Hs(t,e,(function(t){return`No provider for ${N(t[0].token)}!${Ys(t)}`}))}(this,t)}_getByKeySelf(t,e){const n=this._getObjByKeyId(t.id);return n!==lc?n:this._throwOrNull(t,e)}_getByKeyDefault(e,n,a){let r;for(r=a instanceof y?this.parent:this;r instanceof t;){const t=r,n=t._getObjByKeyId(e.id);if(n!==lc)return n;r=t.parent}return null!==r?r.get(e.token,n):this._throwOrNull(e,n)}get displayName(){return`ReflectiveInjector(providers: [${function(t,e){const n=new Array(t._providers.length);for(let a=0;a<t._providers.length;++a)n[a]=e(t.getProviderAtIndex(a));return n}(this,t=>' "'+t.key.displayName+'" ').join(", ")}])`}toString(){return this.displayName}}return t.INJECTOR_KEY=Ks.get(Ls),t})();const gc=new G("AnalyzeForEntryComponents");class fc{}const pc=p("ContentChildren",(t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!1,descendants:!1},e),fc),mc=p("ContentChild",(t,e={})=>Object.assign({selector:t,first:!0,isViewQuery:!1,descendants:!0},e),fc),hc=p("ViewChildren",(t,e={})=>Object.assign({selector:t,first:!1,isViewQuery:!0,descendants:!0},e),fc),bc=p("ViewChild",(t,e)=>Object.assign({selector:t,first:!0,isViewQuery:!0,descendants:!0},e),fc);function yc(t){const e=[],n=new Map;function a(e){let a=n.get(e);if(!a){const r=t(e);n.set(e,a=r.then(Pc))}return a}return _c.forEach((t,n)=>{const r=[];t.templateUrl&&r.push(a(t.templateUrl).then(e=>{t.template=e}));const o=t.styleUrls,i=t.styles||(t.styles=[]),s=t.styles.length;o&&o.forEach((e,n)=>{i.push(""),r.push(a(e).then(a=>{i[s+n]=a,o.splice(o.indexOf(e),1),0==o.length&&(t.styleUrls=void 0)}))});const c=Promise.all(r).then(()=>function(t){Oc.delete(t)}(n));e.push(c)}),Cc(),Promise.all(e).then(()=>{})}let _c=new Map;const Oc=new Set;function vc(t){return!!(t.templateUrl&&!t.hasOwnProperty("template")||t.styleUrls&&t.styleUrls.length)}function Cc(){const t=_c;return _c=new Map,t}function Pc(t){return"string"==typeof t?t:t.text()}function Mc(t){const e=Pe(),n=e[1];n.firstTemplatePass&&(function(t,e,n){const a=t.expandoInstructions,r=a.length;r>=2&&a[r-2]===e.hostBindings?a[r-1]=a[r-1]+n:a.push(e.hostBindings,n)}(n,ye,t),function(t,e,n){for(let a=0;a<n;a++)e.push(ro),t.blueprint.push(ro),t.data.push(null)}(n,e,t))}let xc=null;function wc(){if(!xc){const t=F.Symbol;if(t&&t.iterator)xc=t.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let e=0;e<t.length;++e){const n=t[e];"entries"!==n&&"size"!==n&&Map.prototype[n]===Map.prototype.entries&&(xc=n)}}}return xc}function Tc(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}function Sc(t,e){const n=Ic(t),a=Ic(e);if(n&&a)return function(t,e,n){const a=t[wc()](),r=e[wc()]();for(;;){const t=a.next(),e=r.next();if(t.done&&e.done)return!0;if(t.done||e.done)return!1;if(!n(t.value,e.value))return!1}}(t,e,Sc);{const r=t&&("object"==typeof t||"function"==typeof t),o=e&&("object"==typeof e||"function"==typeof e);return!(n||!r||a||!o)||Tc(t,e)}}class kc{constructor(t){this.wrapped=t}static wrap(t){return new kc(t)}static unwrap(t){return kc.isWrapped(t)?t.wrapped:t}static isWrapped(t){return t instanceof kc}}function Ic(t){return!!Nc(t)&&(Array.isArray(t)||!(t instanceof Map)&&wc()in t)}function Nc(t){return null!==t&&("function"==typeof t||"object"==typeof t)}function Rc(t,e,n){return t[e]=n}function Ac(t,e){return t[e]}function Ec(t,e,n){return!!un(t[e],n)&&(t[e]=n,!0)}function Dc(t,e,n,a){const r=Ec(t,e,n);return Ec(t,e+1,a)||r}function Lc(t,e,n,a,r){const o=Dc(t,e,n,a);return Ec(t,e+2,r)||o}function qc(t,e,n,a,r,o){const i=Dc(t,e,n,a);return Dc(t,e+2,r,o)||i}function jc(t,e,n){const a=tn(),r=Fc(Pe(),e);return r!==ro&&jo(a,t,r,n),jc}function Fc(t,e){const n=t[7]++;return oi(t),Ec(t,n,e)?e:ro}function zc(t,e,n,a){const r=tn(),o=Pe(),i=Fc(o,e);return i!==ro&&$o(r,t,i,o,n,a),zc}function Gc(t,e){let n=!1;const a=t[1].data;let r=t[7];if(null==a[r]){for(let t=2;t<e.length;t+=2)a[r++]=e[t];r=t[7]}for(let i=1;i<e.length;i+=2)n=Ec(t,r++,e[i])||n;if(t[7]=r,oi(t,e[0],e[e.length-1]),!n)return ro;let o=e[0];for(let i=1;i<e.length;i+=2)o+=gn(e[i])+e[i+1];return o}function Bc(t,e,n,a){const r=Ec(t,t[7]++,n);return oi(t,e,a),r?e+gn(n)+a:ro}function Vc(t,e,n,a,r,o){const i=t[7],s=Dc(t,i,n,r);return t[7]+=2,oi(t,e,o)&&(t[1].data[i]=a),s?e+gn(n)+a+gn(r)+o:ro}function Yc(t,e,n,a,r,o,i,s){const c=t[7],l=Lc(t,c,n,r,i);if(t[7]+=3,oi(t,e,s)){const e=t[1].data;e[c]=a,e[c+1]=o}return l?e+gn(n)+a+gn(r)+o+gn(i)+s:ro}function Hc(t,e,n,a,r,o,i,s,c,l){const d=t[7],u=qc(t,d,n,r,i,c);if(t[7]+=4,oi(t,e,l)){const e=t[1].data;e[d]=a,e[d+1]=o,e[d+2]=s}return u?e+gn(n)+a+gn(r)+o+gn(i)+s+gn(c)+l:ro}function Uc(t,e,n,a,r,o,i,s,c,l,d,u){const g=t[7];let f=qc(t,g,n,r,i,c);if(f=Ec(t,g+4,d)||f,t[7]+=5,oi(t,e,u)){const e=t[1].data;e[g]=a,e[g+1]=o,e[g+2]=s,e[g+3]=l}return f?e+gn(n)+a+gn(r)+o+gn(i)+s+gn(c)+l+gn(d)+u:ro}function Wc(t,e,n,a,r,o,i,s,c,l,d,u,g,f){const p=t[7];let m=qc(t,p,n,r,i,c);if(m=Dc(t,p+4,d,g)||m,t[7]+=6,oi(t,e,f)){const e=t[1].data;e[p]=a,e[p+1]=o,e[p+2]=s,e[p+3]=l,e[p+4]=u}return m?e+gn(n)+a+gn(r)+o+gn(i)+s+gn(c)+l+gn(d)+u+gn(g)+f:ro}function Kc(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m){const h=t[7];let b=qc(t,h,n,r,i,c);if(b=Lc(t,h+4,d,g,p)||b,t[7]+=7,oi(t,e,m)){const e=t[1].data;e[h]=a,e[h+1]=o,e[h+2]=s,e[h+3]=l,e[h+4]=u,e[h+5]=f}return b?e+gn(n)+a+gn(r)+o+gn(i)+s+gn(c)+l+gn(d)+u+gn(g)+f+gn(p)+m:ro}function $c(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b){const y=t[7];let _=qc(t,y,n,r,i,c);if(_=qc(t,y+4,d,g,p,h)||_,t[7]+=8,oi(t,e,b)){const e=t[1].data;e[y]=a,e[y+1]=o,e[y+2]=s,e[y+3]=l,e[y+4]=u,e[y+5]=f,e[y+6]=m}return _?e+gn(n)+a+gn(r)+o+gn(i)+s+gn(c)+l+gn(d)+u+gn(g)+f+gn(p)+m+gn(h)+b:ro}function Zc(t,e,n,a,r,o){const i=tn(),s=Pe(),c=Bc(s,e,n,a);return c!==ro&&$o(i,t,c,s,r,o),Zc}function Jc(t,e,n,a,r,o,i,s){const c=tn(),l=Pe(),d=Vc(l,e,n,a,r,o);return d!==ro&&$o(c,t,d,l,i,s),Jc}function Xc(t,e,n,a,r,o,i,s,c,l){const d=tn(),u=Pe(),g=Yc(u,e,n,a,r,o,i,s);return g!==ro&&$o(d,t,g,u,c,l),Xc}function Qc(t,e,n,a,r,o,i,s,c,l,d,u){const g=tn(),f=Pe(),p=Hc(f,e,n,a,r,o,i,s,c,l);return p!==ro&&$o(g,t,p,f,d,u),Qc}function tl(t,e,n,a,r,o,i,s,c,l,d,u,g,f){const p=tn(),m=Pe(),h=Uc(m,e,n,a,r,o,i,s,c,l,d,u);return h!==ro&&$o(p,t,h,m,g,f),tl}function el(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m){const h=tn(),b=Pe(),y=Wc(b,e,n,a,r,o,i,s,c,l,d,u,g,f);return y!==ro&&$o(h,t,y,b,p,m),el}function nl(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b){const y=tn(),_=Pe(),O=Kc(_,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m);return O!==ro&&$o(y,t,O,_,h,b),nl}function al(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b,y,_){const O=tn(),v=Pe(),C=$c(v,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b);return C!==ro&&$o(O,t,C,v,y,_),al}function rl(t,e,n,a){const r=tn(),o=Pe(),i=Gc(o,e);return i!==ro&&$o(r,t,i,o,n,a),rl}function ol(t){ei(kr(t),t)}function il(t){!function(t,e){const n=0===t.flags;if(t.flags|=1,n&&t.clean==_o){let e;t.clean=new Promise(t=>e=t),t.scheduler(()=>{if(1&t.flags&&(t.flags&=-2,ti(t)),2&t.flags){t.flags&=-3;const e=t.playerHandler;e&&e.flushPlayers()}t.clean=_o,e(null)})}}(Qo(kr(t))[9])}function sl(t){const e=Pe(),n=ul(e,t,null,null);e[1].firstTemplatePass&&(n.tViews=[]),je()}function cl(t,e,n,a,r,o,i,s){const c=Pe(),l=c[1],d=ul(c,t,r||null,o||null);if(l.firstTemplatePass){Fo(l,c,d,i||null);const t=d.tViews=Ao(-1,e,n,a,l.directiveRegistry,l.pipeRegistry,null,null);null!==l.queries&&(l.queries.template(l,d),t.queries=l.queries.embeddedTView(d))}No(l,c,d,s),Ir(le(d,c),c),Jt(l,d),je()}function ll(t){const e=Pe(),n=e[1];De(ge(n.data,t),!0),e[t+19][2]=0,Xt(e,n,Be(),void 0)}function dl(){let t=Ee();qe()?je():(t=t.parent,De(t,!1));const e=Pe()[t.index],n=e[2];for(;n<e.length-9;)Pi(e,n)}function ul(t,e,n,a){const r=e+19,o=t[r]=t[12].createComment(""),i=Mo(t[1],t[6],e,0,n,a),s=t[r]=Zo(o,t,o,i);return Ii(o,i,t),Xo(t,s),i}function gl(t,e){const n=Pe(),a=n[1],r=t+19;r>=a.data.length&&(a.data[r]=null,a.blueprint[r]=null),n[r]=e}function fl(t){return ge(ze,t)}function pl(t){return ge(Pe(),t)}function ml(t,e=v.Default){t=E(t);const n=Pe();return null==n?J(t,e):pa(Ee(),n,t,e)}function hl(t){return fa(Ee(),t)}function bl(){var t,e;Pe()[1].firstTemplatePass&&(t=Ee(),e=Nl(),On(Al(t),e),On(Rl(t),e))}function yl(t){ln(t)}function _l(t,e,n){Ol(tn(),t,e,n)}function Ol(t,e,n,a){Cl(t,Pe()[7]++,e,function(t,e){if(t===ro)return t;let n=null;return null!==t&&(n=e?gn(t)+e:t),n}(n,a),!1,Dl())}function vl(t,e){const n=Pe()[7]++;Cl(tn(),n,t,e,!0,Dl())}function Cl(t,e,n,a,r,o){const i=Pe(),s=ue(t,i),c=le(s,i);let l=!1;if(a!==ro)if(r)l=Hr(Al(s),i,c,n,e,a,o,!1);else{const t=dn();l=Ur(Rl(s),i,c,n,e,a,t,o,!1)}return l}function Pl(t){const e=tn(),n=Pe(),a=ue(e,n),r=Rl(a),o=Nl(),i=n[7]++;!o&&Bn(a)&&t!==ro&&(Tl(r,n,a,i,t,!1),t=ro),wl(e,r,i,t,!1,Dl())}function Ml(t){xl(tn(),t)}function xl(t,e){const n=Pe(),a=ue(t,n),r=Al(a),o=Nl(),i=n[7]++;!o&&Gn(a)&&e!==ro&&(Tl(r,n,a,i,e,!0),e=ro),wl(t,r,i,e,!0,Dl())}function wl(t,e,n,a,r,o){co();const i=Pe();let s=!1;if(a!==ro){const c=le(ue(t,i),i),l=i[n];s=En(l,a);const d=function(t,e,n){const a=Array.isArray(t)?t:[null];a[0]=e||null;for(let s=1;s<a.length;s+=2)Yn(a,s,null);let r,o=null,i=!1;if("string"==typeof e?e.length&&(o=e.split(/\s+/),i=!0):(o=e?Object.keys(e):null,r=e),o)for(let s=0;s<o.length;s++){const t=o[s];fo(a,n?qn(t):t,!!i||r[t],!0)}return a}(l,a,!r);r?Hr(e,i,c,null,n,d,o,s):Ur(e,i,c,null,n,d,dn(),o,s)}return s}function Tl(t,e,n,a,r,o){e[a]!==r&&((r||Nn(t))&&gi(e,n.inputs[o?"class":"style"],function(t,e,n){let a=e;var r;return t.length>0&&(a=n?Ln(t,((r=e)&&"string"!=typeof r&&(r=Object.keys(r).join(" ")),r||"")):Ln(t,function(t){let e="";if(t){const n=Object.keys(t);for(let a=0;a<n.length;a++){const r=n[a];e=Ln(e,`${r}:${t[r]}`,";")}}return e}(e),";")),a}(zn(t),r,o)),e[a]=r)}function Sl(){const t=tn(),e=Pe(),n=ue(t,e),a=function(t,e){return 3===t.type?e[12]:null}(n,e),r=le(n,e),o=Nl(),i=dn();(function(t,e,n,a,r,o,i){const s=n?Rn(n):!!a&&Rn(a),c=In(n,o),l=In(a,o);Yr.length&&(c||l)&&Kr();const d=oe(r,s),u=Xr(t,r,e,n,c,d.classesBitMask,no,null),g=Xr(t,r,e,a,l,d.stylesBitMask,eo,i);u&&g?(ie(),s&&function(t){ne.delete(t)}(r)):s&&function(t,e){ne.set(t,e)}(r,d)})(a,e,Al(n),Rl(n),r,o,i),ln(null)}function kl(t,e,n){let a=!1,r=jn(t.styles),o=jn(t.classes),i=-1;for(let s=n;s<e.length;s++){const t=e[s];"number"==typeof t?i=t:1==i?(o=o||[""],fo(o,t,!0),a=!0):2==i&&(r=r||[""],fo(r,t,e[++s]),a=!0)}return o&&o.length>1&&(t.classes||(t.classes=o),Il(t.classes,po(o,!0))),r&&r.length>1&&(t.styles||(t.styles=r),Il(t.styles,po(r,!1))),a}function Il(t,e){jn(t)[0]=e}function Nl(){return Te+Se}function Rl(t){return El(t,!1)}function Al(t){return El(t,!0)}function El(t,e){let n=e?t.classes:t.styles;return Fn(n)||(n=[n||[""],0,0,1,0,"--MAP--"],e?t.classes=n:t.styles=n),n}function Dl(){return ke>0}function Ll(t,e,n,a){const r=Pe(),o=r[1],i=r[t+19]=Co(e),s=r[12],c=Mo(o,r[6],t,3,e,n||null);if(null!=n){const t=$n(i,n);o.firstTemplatePass&&kl(c,n,t)}if(pi(s,i,c),Ii(i,c,r),0===ae&&Ir(i,r),ae++,o.firstTemplatePass){Fo(o,r,c,a||null);const t=si(c);t&&t.hasOwnProperty("class")&&(c.flags|=8),t&&t.hasOwnProperty("style")&&(c.flags|=16),null!==o.queries&&o.queries.elementStart(o,c)}No(o,r,c),Io(o,c,r)}function ql(){let t=Ee();qe()?je():(t=t.parent,De(t,!1));const e=t,n=Pe(),a=n[1];Jt(a,t),ae--,a.firstTemplatePass&&null!==a.queries&&Ht(t)&&a.queries.elementEnd(t),Gn(e)&&e.classes&&zl(e.classes,n,e.inputs.class),Bn(e)&&e.styles&&zl(e.styles,n,e.inputs.style)}function jl(t,e,n,a){Ll(t,e,n,a),ql()}function Fl(t){const e=tn(),n=Pe(),a=n[1],r=ue(e,n);if(3===r.type){const e=le(r,n),o=$n(e,t);a.firstTemplatePass&&kl(r,t,o)&&pi(n[12],e,r)}}function zl(t,e,n){gi(e,n,zn(t)||null)}function Gl(t,e,n){const a=Pe(),r=a[1],o=a[t+19]=a[12].createComment(""),i=Mo(r,a[6],t,4,"ng-container",e||null);e&&r.firstTemplatePass&&kl(i,e,0),Ii(o,i,a),r.firstTemplatePass&&(Fo(r,a,i,n||null),r.queries&&r.queries.elementStart(r,i)),No(r,a,i),Ir(o,a),Io(r,i,a)}function Bl(){let t=Ee();const e=Pe()[1];qe()?je():(t=t.parent,De(t,!1)),Jt(e,t),e.firstTemplatePass&&null!==e.queries&&Ht(t)&&e.queries.elementEnd(t)}function Vl(t,e,n){Gl(t,e,n),Bl()}function Yl(t,e,n){const a=Pe(),r=Ee(),o=2===r.type?r.parent:r,i=a[o.index];let s=function(t,e,n){for(let a=e+9;a<t.length;a++){const e=t[a][1].id;if(e===n)return t[a];if(!(e<n))break;Pi(t,a-9)}return null}(i,i[2],t);if(s)xe=!0,Ze(s,s[1].node);else{s=Po(a,function(t,e,n,a){const r=Pe()[1],o=a.tViews;return(t>=o.length||null==o[t])&&(o[t]=Ao(t,null,e,n,r.directiveRegistry,r.pipeRegistry,null,null)),o[t]}(t,e,n,o),null,16,null,null);const i=qe()?r:r&&r.parent;xo(s[1],i,t,s),Ze(s,s[1].node)}return i&&(Fe(s)&&Oi(s,i,i[2]),i[2]++),Fe(s)?3:2}function Hl(){const t=Pe(),e=t[6];Fe(t)&&(Oo(t),t[2]&=-5),he(t),Oo(t),Xe(t[3][3],!0),De(e,!1)}function Ul(){return Pe()}function Wl(t){return!!t&&"function"==typeof t.then}function Kl(t){return!!t&&"function"==typeof t.subscribe}function $l(t,e,n=!1,a){Jl(t,e,n,a)}function Zl(t,e,n=!1,a){Jl(t,e,n,a,di)}function Jl(t,e,n=!1,a,r){const o=Pe(),i=Ee(),s=o[1],c=s.firstTemplatePass&&(s.cleanup||(s.cleanup=[]));let l=!0;if(3===i.type){const s=le(i,o),d=a?a(s):yt,u=d.target||s,g=r?r(i,o):o[12],f=ci(o),p=f.length,m=a?t=>a(se(t[i.index])).target:i.index;if(Wn(g)){let n=null;if(!a&&function(t){return t.directiveEnd>t.directiveStart}(i)&&(n=function(t,e,n){const a=t[1].cleanup;if(null!=a)for(let r=0;r<a.length-1;r+=2){const o=a[r];if(o===e&&a[r+1]===n){const e=t[8],n=a[r+2];return e.length>n?e[n]:null}"string"==typeof o&&(r+=2)}return null}(o,t,i.index)),null!==n)e.__ngNextListenerFn__=n.__ngNextListenerFn__,n.__ngNextListenerFn__=e,l=!1;else{e=Ql(i,o,e,!1);const n=g.listen(d.name||u,t,e);f.push(e,n),c&&c.push(t,m,p,p+1)}}else e=Ql(i,o,e,!0),u.addEventListener(t,e,n),f.push(e),c&&c.push(t,m,p,n)}void 0===i.outputs&&(i.outputs=Lo(i,1));const d=i.outputs;let u;if(l&&d&&(u=d[t])){const n=u.length;if(n){const a=ci(o);for(let r=0;r<n;r+=3){const n=o[u[r]][u[r+2]].subscribe(e),s=a.length;a.push(e,n),c&&c.push(t,i.index,s,-(s+1))}}}}function Xl(t,e,n){try{return!1!==e(n)}catch(a){return ui(t,a),!1}}function Ql(t,e,n,a){return function r(o){const i=1&t.flags?fe(t.index,e):e;0==(32&e[2])&&Qo(i);let s=Xl(e,n,o),c=r.__ngNextListenerFn__;for(;c;)s=Xl(e,c,o)&&s,c=c.__ngNextListenerFn__;return a&&!1===s&&(o.preventDefault(),o.returnValue=!1),s}}function td(t=1){return Je(t)}function ed(t,e){let n=null;const a=function(t){const e=t.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null}(t);for(let r=0;r<e.length;r++){const o=e[r];if("*"!==o){if(null===a?Br(t,o,!0):Vr(a,o))return r}else n=r}return n}function nd(t){const e=aa(Pe())[6];if(!e.projection){const n=e.projection=new Array(t?t.length:1).fill(null),a=n.slice();let r=e.child;for(;null!==r;){const e=t?ed(r,t):0;null!==e&&(a[e]?a[e].projectionNext=r:n[e]=r,a[e]=r),r=r.next}}}let ad=!1;function rd(t){ad=t}function od(t,e=0,n){const a=Pe(),r=Mo(a[1],a[6],t,1,null,n||null);null===r.projection&&(r.projection=e),je(),ad||Ai(a,r,e,aa(a))}function id(t,e,n){return sd(t,"",e,"",n),id}function sd(t,e,n,a,r){const o=tn(),i=Bc(Pe(),e,n,a);return i!==ro&&jo(o,t,i,r),sd}function cd(t,e,n,a,r,o,i){const s=tn(),c=Vc(Pe(),e,n,a,r,o);return c!==ro&&jo(s,t,c,i),cd}function ld(t,e,n,a,r,o,i,s,c){const l=tn(),d=Yc(Pe(),e,n,a,r,o,i,s);return d!==ro&&jo(l,t,d,c),ld}function dd(t,e,n,a,r,o,i,s,c,l,d){const u=tn(),g=Hc(Pe(),e,n,a,r,o,i,s,c,l);return g!==ro&&jo(u,t,g,d),dd}function ud(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=tn(),p=Uc(Pe(),e,n,a,r,o,i,s,c,l,d,u);return p!==ro&&jo(f,t,p,g),ud}function gd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p){const m=tn(),h=Wc(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f);return h!==ro&&jo(m,t,h,p),gd}function fd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h){const b=tn(),y=Kc(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f,p,m);return y!==ro&&jo(b,t,y,h),fd}function pd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b,y){const _=tn(),O=$c(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b);return O!==ro&&jo(_,t,O,y),pd}function md(t,e,n){const a=tn(),r=Gc(Pe(),e);return r!==ro&&jo(a,t,r,n),md}function hd(t,e){const n=Pe(),a=n[t+19]=yi(e,n[12]),r=Mo(n[1],n[6],t,3,null,null);je(),Ii(a,r,n)}function bd(t){const e=Pe(),n=tn(),a=Fc(e,t);a!==ro&&fi(e,n,gn(a))}function yd(t){return _d("",t,""),yd}function _d(t,e,n){const a=tn(),r=Pe(),o=Bc(r,t,e,n);return o!==ro&&fi(r,a,o),_d}function Od(t,e,n,a,r){const o=tn(),i=Pe(),s=Vc(i,t,e,n,a,r);return s!==ro&&fi(i,o,s),Od}function vd(t,e,n,a,r,o,i){const s=tn(),c=Pe(),l=Yc(c,t,e,n,a,r,o,i);return l!==ro&&fi(c,s,l),vd}function Cd(t,e,n,a,r,o,i,s,c){const l=tn(),d=Pe(),u=Hc(d,t,e,n,a,r,o,i,s,c);return u!==ro&&fi(d,l,u),Cd}function Pd(t,e,n,a,r,o,i,s,c,l,d){const u=tn(),g=Pe(),f=Uc(g,t,e,n,a,r,o,i,s,c,l,d);return f!==ro&&fi(g,u,f),Pd}function Md(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=tn(),p=Pe(),m=Wc(p,t,e,n,a,r,o,i,s,c,l,d,u,g);return m!==ro&&fi(p,f,m),Md}function xd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p){const m=tn(),h=Pe(),b=Kc(h,t,e,n,a,r,o,i,s,c,l,d,u,g,f,p);return b!==ro&&fi(h,m,b),xd}function wd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h){const b=tn(),y=Pe(),_=$c(y,t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h);return _!==ro&&fi(y,b,_),wd}function Td(t){const e=tn(),n=Pe(),a=Gc(n,t);return a!==ro&&fi(n,e,a),Td}function Sd(t,e,n){const a=Bc(Pe(),t,e,n);xl(tn(),a)}function kd(t,e,n,a,r){const o=Vc(Pe(),t,e,n,a,r);xl(tn(),o)}function Id(t,e,n,a,r,o,i){const s=Yc(Pe(),t,e,n,a,r,o,i);xl(tn(),s)}function Nd(t,e,n,a,r,o,i,s,c){const l=Hc(Pe(),t,e,n,a,r,o,i,s,c);xl(tn(),l)}function Rd(t,e,n,a,r,o,i,s,c,l,d){const u=Uc(Pe(),t,e,n,a,r,o,i,s,c,l,d);xl(tn(),u)}function Ad(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=Wc(Pe(),t,e,n,a,r,o,i,s,c,l,d,u,g);xl(tn(),f)}function Ed(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p){const m=Kc(Pe(),t,e,n,a,r,o,i,s,c,l,d,u,g,f,p);xl(tn(),m)}function Dd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h){const b=$c(Pe(),t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h);xl(tn(),b)}function Ld(t){const e=Gc(Pe(),t);xl(tn(),e)}function qd(t,e,n,a,r){const o=Bc(Pe(),e,n,a);return Ol(tn(),t,o,r),qd}function jd(t,e,n,a,r,o,i){const s=Vc(Pe(),e,n,a,r,o);return Ol(tn(),t,s,i),jd}function Fd(t,e,n,a,r,o,i,s,c){const l=Yc(Pe(),e,n,a,r,o,i,s);return Ol(tn(),t,l,c),Fd}function zd(t,e,n,a,r,o,i,s,c,l,d){const u=Hc(Pe(),e,n,a,r,o,i,s,c,l);return Ol(tn(),t,u,d),zd}function Gd(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=Uc(Pe(),e,n,a,r,o,i,s,c,l,d,u);return Ol(tn(),t,f,g),Gd}function Bd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p){const m=Wc(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f);return Ol(tn(),t,m,p),Bd}function Vd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h){const b=Kc(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f,p,m);return Ol(tn(),t,b,h),Vd}function Yd(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b,y){const _=$c(Pe(),e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b);return Ol(tn(),t,_,y),Yd}function Hd(t,e,n){const a=Gc(Pe(),e);return Ol(tn(),t,a,n),Hd}function Ud(t,e,n){const a=tn(),r=Fc(Pe(),e);return r!==ro&&jo(a,t,r,n,!0),Ud}function Wd(t,e,n){const a=tn(),r=Fc(Pe(),e);return r!==ro&&jo(a,t,r,n,!0,di),Wd}function Kd(t){const e=nu(t);return void 0===e.component&&(e.component=function(t,e){const n=e[1].data[t];return 1&n.flags?e[n.directiveStart]:null}(e.nodeIndex,e.lView)),e.component}function $d(t){return nu(t).lView[9]}function Zd(t){let e,n=tu(t).lView;for(;null===n[0]&&(e=na(n));)n=e;return 512&n[2]?null:n[9]}function Jd(t){return[...ra(t).components]}function Xd(t){const e=tu(t);return new va(e.lView[1].data[e.nodeIndex],e.lView)}function Qd(t){const e=tu(t);return void 0===e.directives&&(e.directives=Er(e.nodeIndex,e.lView,!1)),e.directives||[]}function tu(t,e=!0){const n=Tr(t);if(!n&&e)throw new Error("Invalid ng target");return n}function eu(t){return Tr(t).native}function nu(t){if(!(t instanceof Node))throw new Error("Expecting instance of DOM Node");return tu(t)}function au(t){return"boolean"==typeof t.useCapture}function ru(t){const e=nu(t).lView,n=e[8],a=e[1].cleanup,r=[];if(a&&n)for(let o=0;o<a.length;){const i=a[o++],s=a[o++];if("string"==typeof i){const c=i,l=se(e[s]),d=n[a[o++]],u=a[o++],g="boolean"==typeof u?u:!(u>=0)&&null;t==l&&r.push({element:t,name:c,callback:d,useCapture:g})}}return r.sort(ou),r}function ou(t,e){return t.name==e.name?0:t.name<e.name?-1:1}let iu=!1;function su(){iu||(iu=!0,cu("getComponent",Kd),cu("getContext",$d),cu("getListeners",ru),cu("getViewComponent",Zd),cu("getHostElement",eu),cu("getInjector",Xd),cu("getRootComponents",Jd),cu("getDirectives",Qd),cu("markDirty",il))}function cu(t,e){if(F){let n=F.ng;n||(n=F.ng={}),n[t]=e}}function lu(t,e={}){Ie(null);const n=e.rendererFactory||Kn,a=e.sanitizer||null,r=jt(t);r.type!=t&&(r.type=t);const o=Eo(n,e.host||r.selectors[0][0]),i=r.onPush?576:528,s=gu(e.scheduler,e.playerHandler),c=n.createRenderer(o,r),l=Po(null,Ao(-1,null,1,0,null,null,null,null),s,i,null,null,n,c,void 0,e.injector||null),d=Ze(l,null);let u,g=!1;try{n.begin&&n.begin();const t=du(o,r,l,n,c,a);u=uu(t,r,l,s,e.hostFeatures||null),Xo(l,t),Oo(l),l[2]&=-5,he(l),Oo(l),g=!0}finally{Xe(d,g),n.end&&n.end()}return u}function du(t,e,n,a,r,o){xe=!1,Me=null,ae=0,be=!0,ln(null),ie(),ne.clear();const i=n[1];n[19]=t;const s=Mo(i,null,0,3,null,null),c=Po(n,Ro(e),null,e.onPush?64:16,n[19],s,a,r,o);return i.firstTemplatePass&&(ga(ca(s,n),i,e.type),s.flags=1,Uo(s,n.length,1),Yo(s)),n[19]=c}function uu(t,e,n,a,r){const o=n[1],i=function(t,e,n){const a=Ee();t.firstTemplatePass&&(n.providersResolver&&n.providersResolver(n),Go(t,a,1),Wo(t,e,n,n.factory));const r=ya(t.data,e,e.length-1,a);return Vo(e,a,r),r}(o,n,e);a.components.push(i),t[9]=i,r&&r.forEach(t=>t(i,e)),e.contentQueries&&e.contentQueries(1,i,n.length-1);const s=Ee();return o.firstTemplatePass&&e.hostBindings&&(Ie(s.index-19),zo(e,o.expandoInstructions,i,s,o.firstTemplatePass),Ie(null)),i}function gu(t,e){return{components:[],scheduler:t||pn,clean:ii,playerHandler:e||null,flags:0}}function fu(t,e){const n=me(t)[1],a=n.data.length-1;Zt(a,e,n,-1,-1,-1),Jt(n,{directiveStart:a,directiveEnd:a+1})}function pu(t){return ra(t).clean}class mu{constructor(t,e,n){this.previousValue=t,this.currentValue=e,this.firstChange=n}isFirstChange(){return this.firstChange}}function hu(){return bu.ngInherit=!0,bu}function bu(t){t.type.prototype.ngOnChanges&&(t.setInput=yu,t.onChanges=function(){const t=_u(this),e=t&&t.current;if(e){const n=t.previous;if(n===yt)t.previous=e;else for(let t in e)n[t]=e[t];t.current=null,this.ngOnChanges(e)}})}function yu(t,e,n,a){const r=_u(t)||function(t,e){return t.__ngSimpleChanges__=e}(t,{previous:yt,current:null}),o=r.current||(r.current={}),i=r.previous,s=this.declaredInputs[n],c=i[s];o[s]=new mu(c&&c.currentValue,e,i===yt),t[a]=e}function _u(t){return t.__ngSimpleChanges__||null}function Ou(t){let e=Object.getPrototypeOf(t.type.prototype).constructor;for(;e;){let n=void 0;if(Wt(t))n=e.ngComponentDef||e.ngDirectiveDef;else{if(e.ngComponentDef)throw new Error("Directives cannot inherit Components");n=e.ngDirectiveDef}const a=e.ngBaseDef;if(a||n){const e=t;e.inputs=vu(t.inputs),e.declaredInputs=vu(t.declaredInputs),e.outputs=vu(t.outputs)}if(a){const e=a.viewQuery,n=a.contentQueries,r=a.hostBindings;r&&Mu(t,r),e&&Cu(t,e),n&&Pu(t,n),P(t.inputs,a.inputs),P(t.declaredInputs,a.declaredInputs),P(t.outputs,a.outputs)}if(n){const e=n.hostBindings;e&&Mu(t,e);const a=n.viewQuery,r=n.contentQueries;a&&Cu(t,a),r&&Pu(t,r),P(t.inputs,n.inputs),P(t.declaredInputs,n.declaredInputs),P(t.outputs,n.outputs),t.afterContentChecked=t.afterContentChecked||n.afterContentChecked,t.afterContentInit=t.afterContentInit||n.afterContentInit,t.afterViewChecked=t.afterViewChecked||n.afterViewChecked,t.afterViewInit=t.afterViewInit||n.afterViewInit,t.doCheck=t.doCheck||n.doCheck,t.onDestroy=t.onDestroy||n.onDestroy,t.onInit=t.onInit||n.onInit;const o=n.features;if(o)for(const n of o)n&&n.ngInherit&&n(t)}else{const n=e.prototype;n&&(t.afterContentChecked=t.afterContentChecked||n.ngAfterContentChecked,t.afterContentInit=t.afterContentInit||n.ngAfterContentInit,t.afterViewChecked=t.afterViewChecked||n.ngAfterViewChecked,t.afterViewInit=t.afterViewInit||n.ngAfterViewInit,t.doCheck=t.doCheck||n.ngDoCheck,t.onDestroy=t.onDestroy||n.ngOnDestroy,t.onInit=t.onInit||n.ngOnInit,n.ngOnChanges&&hu()(t))}e=Object.getPrototypeOf(e)}}function vu(t){return t===yt?{}:t===_t?[]:t}function Cu(t,e){const n=t.viewQuery;t.viewQuery=n?(t,a)=>{e(t,a),n(t,a)}:e}function Pu(t,e){const n=t.contentQueries;t.contentQueries=n?(t,a,r)=>{e(t,a,r),n(t,a,r)}:e}function Mu(t,e){const n=t.hostBindings;e!==n&&(t.hostBindings=n?(t,a,r)=>{Re(1);try{e(t,a,r)}finally{Re(-1)}n(t,a,r)}:e)}function xu(t,e,n,a,r){if(t=E(t),Array.isArray(t))for(let o=0;o<t.length;o++)xu(t[o],e,n,a,r);else{const o=Pe(),i=o[1];let s=As(t)?t:E(t.provide),c=Is(t);const l=Ee(),d=65535&l.providerIndexes,u=l.directiveStart,g=l.providerIndexes>>16;if(t.useClass||As(t)){const n=(t.useClass||t).prototype.ngOnDestroy;n&&(i.destroyHooks||(i.destroyHooks=[])).push(e.length,n)}if(As(t)||!t.multi){const t=new $t(c,r,ml),a=Tu(s,e,r?d:d+g,u);-1==a?(ga(ca(l,o),i,s),e.push(s),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=65536),n.push(t),o.push(t)):(n[a]=t,o[a]=t)}else{const t=Tu(s,e,d+g,u),f=Tu(s,e,d,d+g),p=t>=0&&n[t],m=f>=0&&n[f];if(r&&!m||!r&&!p){ga(ca(l,o),i,s);const t=function(t,e,n,a,r){const o=new $t(t,n,ml);return o.multi=[],o.index=e,o.componentProviders=0,wu(o,r,a&&!n),o}(r?ku:Su,n.length,r,a,c);!r&&m&&(n[f].providerFactory=t),e.push(s),l.directiveStart++,l.directiveEnd++,r&&(l.providerIndexes+=65536),n.push(t),o.push(t)}else wu(n[r?f:t],c,!r&&a);!r&&a&&m&&n[f].componentProviders++}}}function wu(t,e,n){t.multi.push(e),n&&t.componentProviders++}function Tu(t,e,n,a){for(let r=n;r<a;r++)if(e[r]===t)return r;return-1}function Su(t,e,n,a){return Iu(this.multi,[])}function ku(t,e,n,a){const r=this.multi;let o;if(this.providerFactory){const t=this.providerFactory.componentProviders,i=ya(e,n,this.providerFactory.index,a);o=i.slice(0,t),Iu(r,o);for(let e=t;e<i.length;e++)o.push(i[e])}else o=[],Iu(r,o);return o}function Iu(t,e){for(let n=0;n<t.length;n++)e.push((0,t[n])());return e}function Nu(t,e=[]){return n=>{n.providersResolver=(n,a)=>function(t,e,n){const a=Pe()[1];if(a.firstTemplatePass){const r=Wt(t);xu(n,a.data,a.blueprint,r,!0),xu(e,a.data,a.blueprint,r,!1)}}(n,a?a(t):t,e)}}class Ru{}class Au{}function Eu(t){const e=Error(`No component factory found for ${N(t)}. Did you add it to @NgModule.entryComponents?`);return e[Du]=t,e}const Du="ngComponent";class Lu{resolveComponentFactory(t){throw Eu(t)}}let qu=(()=>{class t{}return t.NULL=new Lu,t})();class ju{constructor(t,e,n){this._parent=e,this._ngModule=n,this._factories=new Map;for(let a=0;a<t.length;a++){const e=t[a];this._factories.set(e.componentType,e)}}resolveComponentFactory(t){let e=this._factories.get(t);if(!e&&this._parent&&(e=this._parent.resolveComponentFactory(t)),!e)throw Eu(t);return new Fu(e,this._ngModule)}}class Fu extends Au{constructor(t,e){super(),this.factory=t,this.ngModule=e,this.selector=t.selector,this.componentType=t.componentType,this.ngContentSelectors=t.ngContentSelectors,this.inputs=t.inputs,this.outputs=t.outputs}create(t,e,n,a){return this.factory.create(t,e,n,a||this.ngModule)}}function zu(...t){}let Gu=(()=>{class t{constructor(t){this.nativeElement=t}}return t.__NG_ELEMENT_ID__=()=>Vu(t),t})();const Bu=function(t){return Vi(t,Ee(),Pe())},Vu=zu;class Yu{constructor(t,e,n,a,r,o){this.id=t,this.templateUrl=e,this.slotCount=n,this.encapsulation=a,this.styles=r,this.animations=o}}class Hu{}class Uu{}class Wu{}class Ku{}const $u=function(){var t={Important:1,DashCase:2};return t[t.Important]="Important",t[t.DashCase]="DashCase",t}();let Zu=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>Xu(),t})();const Ju=function(){const t=Pe(),e=fe(Ee().index,t);return function(t){const e=t[12];if(Wn(e))return e;throw new Error("Cannot inject Renderer2 when the application uses Renderer3!")}(Vt(e)?e:t)},Xu=zu;class Qu{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const tg=new Qu("8.2.14");class eg{constructor(){}supports(t){return Ic(t)}create(t){return new ag(t)}}const ng=(t,e)=>e;class ag{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||ng}forEachItem(t){let e;for(e=this._itHead;null!==e;e=e._next)t(e)}forEachOperation(t){let e=this._itHead,n=this._removalsHead,a=0,r=null;for(;e||n;){const o=!n||e&&e.currentIndex<sg(n,a,r)?e:n,i=sg(o,a,r),s=o.currentIndex;if(o===n)a--,n=n._nextRemoved;else if(e=e._next,null==o.previousIndex)a++;else{r||(r=[]);const t=i-a,e=s-a;if(t!=e){for(let n=0;n<t;n++){const a=n<r.length?r[n]:r[n]=0,o=a+n;e<=o&&o<t&&(r[n]=a+1)}r[o.previousIndex]=e-t}}i!==s&&t(o,i,s)}}forEachPreviousItem(t){let e;for(e=this._previousItHead;null!==e;e=e._nextPrevious)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachMovedItem(t){let e;for(e=this._movesHead;null!==e;e=e._nextMoved)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}forEachIdentityChange(t){let e;for(e=this._identityChangesHead;null!==e;e=e._nextIdentityChange)t(e)}diff(t){if(null==t&&(t=[]),!Ic(t))throw new Error(`Error trying to diff '${N(t)}'. Only arrays and iterables are allowed`);return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e,n,a,r=this._itHead,o=!1;if(Array.isArray(t)){this.length=t.length;for(let e=0;e<this.length;e++)n=t[e],a=this._trackByFn(e,n),null!==r&&Tc(r.trackById,a)?(o&&(r=this._verifyReinsertion(r,n,a,e)),Tc(r.item,n)||this._addIdentityChange(r,n)):(r=this._mismatch(r,n,a,e),o=!0),r=r._next}else e=0,function(t,e){if(Array.isArray(t))for(let n=0;n<t.length;n++)e(t[n]);else{const n=t[wc()]();let a;for(;!(a=n.next()).done;)e(a.value)}}(t,t=>{a=this._trackByFn(e,t),null!==r&&Tc(r.trackById,a)?(o&&(r=this._verifyReinsertion(r,t,a,e)),Tc(r.item,t)||this._addIdentityChange(r,t)):(r=this._mismatch(r,t,a,e),o=!0),r=r._next,e++}),this.length=e;return this._truncate(r),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,e;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=e)t.previousIndex=t.currentIndex,e=t._nextMoved;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,e,n,a){let r;return null===t?r=this._itTail:(r=t._prev,this._remove(t)),null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,a))?(Tc(t.item,e)||this._addIdentityChange(t,e),this._moveAfter(t,r,a)):null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Tc(t.item,e)||this._addIdentityChange(t,e),this._reinsertAfter(t,r,a)):t=this._addAfter(new rg(e,n),r,a),t}_verifyReinsertion(t,e,n,a){let r=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==r?t=this._reinsertAfter(r,t._prev,a):t.currentIndex!=a&&(t.currentIndex=a,this._addToMoves(t,a)),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,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const a=t._prevRemoved,r=t._nextRemoved;return null===a?this._removalsHead=r:a._nextRemoved=r,null===r?this._removalsTail=a:r._prevRemoved=a,this._insertAfter(t,e,n),this._addToMoves(t,n),t}_moveAfter(t,e,n){return this._unlink(t),this._insertAfter(t,e,n),this._addToMoves(t,n),t}_addAfter(t,e,n){return this._insertAfter(t,e,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,e,n){const a=null===e?this._itHead:e._next;return t._next=a,t._prev=e,null===a?this._itTail=t:a._prev=t,null===e?this._itHead=t:e._next=t,null===this._linkedRecords&&(this._linkedRecords=new ig),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const e=t._prev,n=t._next;return null===e?this._itHead=n:e._next=n,null===n?this._itTail=e:n._prev=e,t}_addToMoves(t,e){return t.previousIndex===e?t:(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t,t)}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ig),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 rg{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 og{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 n;for(n=this._head;null!==n;n=n._nextDup)if((null===e||e<=n.currentIndex)&&Tc(n.trackById,t))return n;return null}remove(t){const e=t._prevDup,n=t._nextDup;return null===e?this._head=n:e._nextDup=n,null===n?this._tail=e:n._prevDup=e,null===this._head}}class ig{constructor(){this.map=new Map}put(t){const e=t.trackById;let n=this.map.get(e);n||(n=new og,this.map.set(e,n)),n.add(t)}get(t,e){const n=this.map.get(t);return n?n.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 sg(t,e,n){const a=t.previousIndex;if(null===a)return a;let r=0;return n&&a<n.length&&(r=n[a]),a+e+r}class cg{constructor(){}supports(t){return t instanceof Map||Nc(t)}create(){return new lg}}class lg{constructor(){this._records=new Map,this._mapHead=null,this._appendAfter=null,this._previousMapHead=null,this._changesHead=null,this._changesTail=null,this._additionsHead=null,this._additionsTail=null,this._removalsHead=null,this._removalsTail=null}get isDirty(){return null!==this._additionsHead||null!==this._changesHead||null!==this._removalsHead}forEachItem(t){let e;for(e=this._mapHead;null!==e;e=e._next)t(e)}forEachPreviousItem(t){let e;for(e=this._previousMapHead;null!==e;e=e._nextPrevious)t(e)}forEachChangedItem(t){let e;for(e=this._changesHead;null!==e;e=e._nextChanged)t(e)}forEachAddedItem(t){let e;for(e=this._additionsHead;null!==e;e=e._nextAdded)t(e)}forEachRemovedItem(t){let e;for(e=this._removalsHead;null!==e;e=e._nextRemoved)t(e)}diff(t){if(t){if(!(t instanceof Map||Nc(t)))throw new Error(`Error trying to diff '${N(t)}'. Only maps and objects are allowed`)}else t=new Map;return this.check(t)?this:null}onDestroy(){}check(t){this._reset();let e=this._mapHead;if(this._appendAfter=null,this._forEach(t,(t,n)=>{if(e&&e.key===n)this._maybeAddToChanges(e,t),this._appendAfter=e,e=e._next;else{const a=this._getOrCreateRecordForKey(n,t);e=this._insertBeforeOrAppend(e,a)}}),e){e._prev&&(e._prev._next=null),this._removalsHead=e;for(let t=e;null!==t;t=t._nextRemoved)t===this._mapHead&&(this._mapHead=null),this._records.delete(t.key),t._nextRemoved=t._next,t.previousValue=t.currentValue,t.currentValue=null,t._prev=null,t._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,e){if(t){const n=t._prev;return e._next=t,e._prev=n,t._prev=e,n&&(n._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 n=this._records.get(t);this._maybeAddToChanges(n,e);const a=n._prev,r=n._next;return a&&(a._next=r),r&&(r._prev=a),n._next=null,n._prev=null,n}const n=new dg(t);return this._records.set(t,n),n.currentValue=e,this._addToAdditions(n),n}_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){Tc(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(n=>e(t[n],n))}}class dg{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}}let ug=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(null!=n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error("Cannot extend IterableDiffers without a parent injector");return t.create(e,n)},deps:[[t,new y,new h]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(null!=e)return e;throw new Error(`Cannot find a differ supporting object '${t}' of type '${n=t,n.name||typeof n}'`);var n}}return t.ngInjectableDef=M({token:t,providedIn:"root",factory:()=>new t([new eg])}),t})(),gg=(()=>{class t{constructor(t){this.factories=t}static create(e,n){if(n){const t=n.factories.slice();e=e.concat(t)}return new t(e)}static extend(e){return{provide:t,useFactory:n=>{if(!n)throw new Error("Cannot extend KeyValueDiffers without a parent injector");return t.create(e,n)},deps:[[t,new y,new h]]}}find(t){const e=this.factories.find(e=>e.supports(t));if(e)return e;throw new Error(`Cannot find a differ supporting object '${t}'`)}}return t.ngInjectableDef=M({token:t,providedIn:"root",factory:()=>new t([new cg])}),t})();const fg=[new cg],pg=new ug([new eg]),mg=new gg(fg);let hg=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>yg(t,Gu),t})();const bg=function(t,e){return Yi(t,e,Ee(),Pe())},yg=zu;let _g=(()=>{class t{}return t.__NG_ELEMENT_ID__=()=>vg(t,Gu),t})();const Og=function(t,e){return Hi(t,e,Ee(),Pe())},vg=zu;function Cg(t,e,n,a){let r=`ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '${e}'. Current value: '${n}'.`;return a&&(r+=" It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?"),function(t,e){const n=new Error(t);return Pg(n,e),n}(r,t)}function Pg(t,e){t.ngDebugContext=e,t.ngErrorLogger=e.logError.bind(e)}function Mg(t){return new Error(`ViewDestroyedError: Attempt to use a destroyed view: ${t}`)}function xg(t,e,n){const a=t.state,r=1792&a;return r===e?(t.state=-1793&a|n,t.initIndex=-1,!0):r===n}function wg(t,e,n){return(1792&t.state)===e&&t.initIndex<=n&&(t.initIndex=n+1,!0)}function Tg(t,e){return t.nodes[e]}function Sg(t,e){return t.nodes[e]}function kg(t,e){return t.nodes[e]}function Ig(t,e){return t.nodes[e]}function Ng(t,e){return t.nodes[e]}class Rg{}const Ag={setCurrentNode:void 0,createRootView:void 0,createEmbeddedView:void 0,createComponentView:void 0,createNgModuleRef:void 0,overrideProvider:void 0,overrideComponentView:void 0,clearOverrides:void 0,checkAndUpdateView:void 0,checkNoChangesView:void 0,destroyView:void 0,resolveDep:void 0,createDebugContext:void 0,handleEvent:void 0,updateDirectives:void 0,updateRenderer:void 0,dirtyParentQueries:void 0},Eg=()=>{},Dg=new Map;function Lg(t){let e=Dg.get(t);return e||(e=N(t)+"_"+Dg.size,Dg.set(t,e)),e}function qg(t,e,n,a){if(kc.isWrapped(a)){a=kc.unwrap(a);const r=t.def.nodes[e].bindingIndex+n,o=kc.unwrap(t.oldValues[r]);t.oldValues[r]=new kc(o)}return a}function jg(t){return{id:"$$undefined",styles:t.styles,encapsulation:t.encapsulation,data:t.data}}let Fg=0;function zg(t,e,n,a){return!(!(2&t.state)&&Tc(t.oldValues[e.bindingIndex+n],a))}function Gg(t,e,n,a){return!!zg(t,e,n,a)&&(t.oldValues[e.bindingIndex+n]=a,!0)}function Bg(t,e,n,a){const r=t.oldValues[e.bindingIndex+n];if(1&t.state||!Sc(r,a)){const o=e.bindings[n].name;throw Cg(Ag.createDebugContext(t,e.nodeIndex),`${o}: ${r}`,`${o}: ${a}`,0!=(1&t.state))}}function Vg(t){let e=t;for(;e;)2&e.def.flags&&(e.state|=8),e=e.viewContainerParent||e.parent}function Yg(t,e){let n=t;for(;n&&n!==e;)n.state|=64,n=n.viewContainerParent||n.parent}function Hg(t,e,n,a){try{return Vg(33554432&t.def.nodes[e].flags?Sg(t,e).componentView:t),Ag.handleEvent(t,e,n,a)}catch(r){t.root.errorHandler.handleError(r)}}function Ug(t){return t.parent?Sg(t.parent,t.parentNodeDef.nodeIndex):null}function Wg(t){return t.parent?t.parentNodeDef.parent:null}function Kg(t,e){switch(201347067&e.flags){case 1:return Sg(t,e.nodeIndex).renderElement;case 2:return Tg(t,e.nodeIndex).renderText}}function $g(t){return!!t.parent&&!!(32768&t.parentNodeDef.flags)}function Zg(t){return!(!t.parent||32768&t.parentNodeDef.flags)}function Jg(t){return 1<<t%32}function Xg(t){const e={};let n=0;const a={};return t&&t.forEach(([t,r])=>{"number"==typeof t?(e[t]=r,n|=Jg(t)):a[t]=r}),{matchedQueries:e,references:a,matchedQueryIds:n}}function Qg(t,e){return t.map(t=>{let n,a;return Array.isArray(t)?[a,n]=t:(a=0,n=t),n&&("function"==typeof n||"object"==typeof n)&&e&&Object.defineProperty(n,"__source",{value:e,configurable:!0}),{flags:a,token:n,tokenKey:Lg(n)}})}function tf(t,e,n){let a=n.renderParent;return a?0==(1&a.flags)||0==(33554432&a.flags)||a.element.componentRendererType&&a.element.componentRendererType.encapsulation===ht.Native?Sg(t,n.renderParent.nodeIndex).renderElement:void 0:e}const ef=new WeakMap;function nf(t){let e=ef.get(t);return e||(e=t(()=>Eg),e.factory=t,ef.set(t,e)),e}function af(t,e,n,a,r){3===e&&(n=t.renderer.parentNode(Kg(t,t.def.lastRenderRootNode))),rf(t,e,0,t.def.nodes.length-1,n,a,r)}function rf(t,e,n,a,r,o,i){for(let s=n;s<=a;s++){const n=t.def.nodes[s];11&n.flags&&sf(t,n,e,r,o,i),s+=n.childCount}}function of(t,e,n,a,r,o){let i=t;for(;i&&!$g(i);)i=i.parent;const s=i.parent,c=Wg(i),l=c.nodeIndex+c.childCount;for(let d=c.nodeIndex+1;d<=l;d++){const t=s.def.nodes[d];t.ngContentIndex===e&&sf(s,t,n,a,r,o),d+=t.childCount}if(!s.parent){const i=t.root.projectableNodes[e];if(i)for(let e=0;e<i.length;e++)cf(t,i[e],n,a,r,o)}}function sf(t,e,n,a,r,o){if(8&e.flags)of(t,e.ngContent.index,n,a,r,o);else{const i=Kg(t,e);if(3===n&&33554432&e.flags&&48&e.bindingFlags?(16&e.bindingFlags&&cf(t,i,n,a,r,o),32&e.bindingFlags&&cf(Sg(t,e.nodeIndex).componentView,i,n,a,r,o)):cf(t,i,n,a,r,o),16777216&e.flags){const i=Sg(t,e.nodeIndex).viewContainer._embeddedViews;for(let t=0;t<i.length;t++)af(i[t],n,a,r,o)}1&e.flags&&!e.element.name&&rf(t,n,e.nodeIndex+1,e.nodeIndex+e.childCount,a,r,o)}}function cf(t,e,n,a,r,o){const i=t.renderer;switch(n){case 1:i.appendChild(a,e);break;case 2:i.insertBefore(a,e,r);break;case 3:i.removeChild(a,e);break;case 0:o.push(e)}}const lf=/^:([^:]+):(.+)$/;function df(t){if(":"===t[0]){const e=t.match(lf);return[e[1],e[2]]}return["",t]}function uf(t){let e=0;for(let n=0;n<t.length;n++)e|=t[n].flags;return e}function gf(t,e){let n="";for(let a=0;a<2*t;a+=2)n=n+e[a]+pf(e[a+1]);return n+e[2*t]}function ff(t,e,n,a,r,o,i,s,c,l,d,u,g,f,p,m,h,b,y,_){switch(t){case 1:return e+pf(n)+a;case 2:return e+pf(n)+a+pf(r)+o;case 3:return e+pf(n)+a+pf(r)+o+pf(i)+s;case 4:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l;case 5:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l+pf(d)+u;case 6:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l+pf(d)+u+pf(g)+f;case 7:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l+pf(d)+u+pf(g)+f+pf(p)+m;case 8:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l+pf(d)+u+pf(g)+f+pf(p)+m+pf(h)+b;case 9:return e+pf(n)+a+pf(r)+o+pf(i)+s+pf(c)+l+pf(d)+u+pf(g)+f+pf(p)+m+pf(h)+b+pf(y)+_;default:throw new Error("Does not support more than 9 expressions")}}function pf(t){return null!=t?t.toString():""}const mf=[],hf={},bf=new Object,yf=Lg(Ls),_f=Lg(B),Of=Lg(ot);function vf(t,e,n,a){return n=E(n),{index:-1,deps:Qg(a,N(e)),flags:t,token:e,value:n}}function Cf(t){const e={},n=[];let a=!1;for(let r=0;r<t.length;r++){const o=t[r];o.token===vs&&!0===o.value&&(a=!0),1073741824&o.flags&&n.push(o.token),o.index=r,e[Lg(o.token)]=o}return{factory:null,providersByKey:e,providers:t,modules:n,isRoot:a}}function Pf(t,e,n=Ls.THROW_IF_NOT_FOUND){const a=K(t);try{if(8&e.flags)return e.token;if(2&e.flags&&(n=null),1&e.flags)return t._parent.get(e.token,n);const i=e.tokenKey;switch(i){case yf:case _f:case Of:return t}const s=t._def.providersByKey[i];let c;if(s){let e=t._providers[s.index];return void 0===e&&(e=t._providers[s.index]=Mf(t,s)),e===bf?void 0:e}if((c=T(e.token))&&(r=t,null!=(o=c).providedIn&&(function(t,e){return t._def.modules.indexOf(e)>-1}(r,o.providedIn)||"root"===o.providedIn&&r._def.isRoot))){const n=t._providers.length;return t._def.providers[n]=t._def.providersByKey[e.tokenKey]={flags:5120,value:c.factory,deps:[],index:n,token:e.token},t._providers[n]=bf,t._providers[n]=Mf(t,t._def.providersByKey[e.tokenKey])}return 4&e.flags?n:t._parent.get(e.token,n)}finally{K(a)}var r,o}function Mf(t,e){let n;switch(201347067&e.flags){case 512:n=function(t,e,n){const a=n.length;switch(a){case 0:return new e;case 1:return new e(Pf(t,n[0]));case 2:return new e(Pf(t,n[0]),Pf(t,n[1]));case 3:return new e(Pf(t,n[0]),Pf(t,n[1]),Pf(t,n[2]));default:const r=new Array(a);for(let e=0;e<a;e++)r[e]=Pf(t,n[e]);return new e(...r)}}(t,e.value,e.deps);break;case 1024:n=function(t,e,n){const a=n.length;switch(a){case 0:return e();case 1:return e(Pf(t,n[0]));case 2:return e(Pf(t,n[0]),Pf(t,n[1]));case 3:return e(Pf(t,n[0]),Pf(t,n[1]),Pf(t,n[2]));default:const r=Array(a);for(let e=0;e<a;e++)r[e]=Pf(t,n[e]);return e(...r)}}(t,e.value,e.deps);break;case 2048:n=Pf(t,e.deps[0]);break;case 256:n=e.value}return n===bf||null===n||"object"!=typeof n||131072&e.flags||"function"!=typeof n.ngOnDestroy||(e.flags|=131072),void 0===n?bf:n}function xf(t,e){const n=t.viewContainer._embeddedViews;if((null==e||e>=n.length)&&(e=n.length-1),e<0)return null;const a=n[e];return a.viewContainerParent=null,ut(n,e),Ag.dirtyParentQueries(a),Tf(a),a}function wf(t,e,n){const a=e?Kg(e,e.def.lastRenderRootNode):t.renderElement,r=n.renderer.parentNode(a),o=n.renderer.nextSibling(a);af(n,2,r,o,void 0)}function Tf(t){af(t,3,null,null,void 0)}const Sf=new Object;function kf(t,e,n,a,r,o){return new Nf(t,e,n,a,r,o)}function If(t){return t.viewDefFactory}class Nf extends Au{constructor(t,e,n,a,r,o){super(),this.selector=t,this.componentType=e,this._inputs=a,this._outputs=r,this.ngContentSelectors=o,this.viewDefFactory=n}get inputs(){const t=[],e=this._inputs;for(let n in e)t.push({propName:n,templateName:e[n]});return t}get outputs(){const t=[];for(let e in this._outputs)t.push({propName:e,templateName:this._outputs[e]});return t}create(t,e,n,a){if(!a)throw new Error("ngModule should be provided");const r=nf(this.viewDefFactory),o=r.nodes[0].element.componentProvider.nodeIndex,i=Ag.createRootView(t,e||[],n,r,a,Sf),s=kg(i,o).instance;return n&&i.renderer.setAttribute(Sg(i,0).renderElement,"ng-version",tg.full),new Rf(i,new Lf(i),s)}}class Rf extends Ru{constructor(t,e,n){super(),this._view=t,this._viewRef=e,this._component=n,this._elDef=this._view.def.nodes[0],this.hostView=e,this.changeDetectorRef=e,this.instance=n}get location(){return new Gu(Sg(this._view,this._elDef.nodeIndex).renderElement)}get injector(){return new zf(this._view,this._elDef)}get componentType(){return this._component.constructor}destroy(){this._viewRef.destroy()}onDestroy(t){this._viewRef.onDestroy(t)}}function Af(t,e,n){return new Ef(t,e,n)}class Ef{constructor(t,e,n){this._view=t,this._elDef=e,this._data=n,this._embeddedViews=[]}get element(){return new Gu(this._data.renderElement)}get injector(){return new zf(this._view,this._elDef)}get parentInjector(){let t=this._view,e=this._elDef.parent;for(;!e&&t;)e=Wg(t),t=t.parent;return t?new zf(t,e):new zf(this._view,null)}clear(){for(let t=this._embeddedViews.length-1;t>=0;t--){const e=xf(this._data,t);Ag.destroyView(e)}}get(t){const e=this._embeddedViews[t];if(e){const t=new Lf(e);return t.attachToViewContainerRef(this),t}return null}get length(){return this._embeddedViews.length}createEmbeddedView(t,e,n){const a=t.createEmbeddedView(e||{});return this.insert(a,n),a}createComponent(t,e,n,a,r){const o=n||this.parentInjector;r||t instanceof Fu||(r=o.get(ot));const i=t.create(o,a,void 0,r);return this.insert(i.hostView,e),i}insert(t,e){if(t.destroyed)throw new Error("Cannot insert a destroyed View in a ViewContainer!");const n=t;return function(t,e,n,a){let r=e.viewContainer._embeddedViews;null==n&&(n=r.length),a.viewContainerParent=t,dt(r,n,a),function(t,e){const n=Ug(e);if(!n||n===t||16&e.state)return;e.state|=16;let a=n.template._projectedViews;a||(a=n.template._projectedViews=[]),a.push(e),function(t,e){if(4&e.flags)return;t.nodeFlags|=4,e.flags|=4;let n=e.parent;for(;n;)n.childFlags|=4,n=n.parent}(e.parent.def,e.parentNodeDef)}(e,a),Ag.dirtyParentQueries(a),wf(e,n>0?r[n-1]:null,a)}(this._view,this._data,e,n._view),n.attachToViewContainerRef(this),t}move(t,e){if(t.destroyed)throw new Error("Cannot move a destroyed View in a ViewContainer!");const n=this._embeddedViews.indexOf(t._view);return function(t,e,n){const a=t.viewContainer._embeddedViews,r=a[e];ut(a,e),null==n&&(n=a.length),dt(a,n,r),Ag.dirtyParentQueries(r),Tf(r),wf(t,n>0?a[n-1]:null,r)}(this._data,n,e),t}indexOf(t){return this._embeddedViews.indexOf(t._view)}remove(t){const e=xf(this._data,t);e&&Ag.destroyView(e)}detach(t){const e=xf(this._data,t);return e?new Lf(e):null}}function Df(t){return new Lf(t)}class Lf{constructor(t){this._view=t,this._viewContainerRef=null,this._appRef=null}get rootNodes(){return function(t){const e=[];return af(t,0,void 0,void 0,e),e}(this._view)}get context(){return this._view.context}get destroyed(){return 0!=(128&this._view.state)}markForCheck(){Vg(this._view)}detach(){this._view.state&=-5}detectChanges(){const t=this._view.root.rendererFactory;t.begin&&t.begin();try{Ag.checkAndUpdateView(this._view)}finally{t.end&&t.end()}}checkNoChanges(){Ag.checkNoChangesView(this._view)}reattach(){this._view.state|=4}onDestroy(t){this._view.disposables||(this._view.disposables=[]),this._view.disposables.push(t)}destroy(){this._appRef?this._appRef.detachView(this):this._viewContainerRef&&this._viewContainerRef.detach(this._viewContainerRef.indexOf(this)),Ag.destroyView(this._view)}detachFromAppRef(){this._appRef=null,Tf(this._view),Ag.dirtyParentQueries(this._view)}attachToAppRef(t){if(this._viewContainerRef)throw new Error("This view is already attached to a ViewContainer!");this._appRef=t}attachToViewContainerRef(t){if(this._appRef)throw new Error("This view is already attached directly to the ApplicationRef!");this._viewContainerRef=t}}function qf(t,e){return new jf(t,e)}class jf extends hg{constructor(t,e){super(),this._parentView=t,this._def=e}createEmbeddedView(t){return new Lf(Ag.createEmbeddedView(this._parentView,this._def,this._def.element.template,t))}get elementRef(){return new Gu(Sg(this._parentView,this._def.nodeIndex).renderElement)}}function Ff(t,e){return new zf(t,e)}class zf{constructor(t,e){this.view=t,this.elDef=e}get(t,e=Ls.THROW_IF_NOT_FOUND){return Ag.resolveDep(this.view,this.elDef,!!this.elDef&&0!=(33554432&this.elDef.flags),{flags:0,token:t,tokenKey:Lg(t)},e)}}function Gf(t,e){const n=t.def.nodes[e];if(1&n.flags){const e=Sg(t,n.nodeIndex);return n.element.template?e.template:e.renderElement}if(2&n.flags)return Tg(t,n.nodeIndex).renderText;if(20240&n.flags)return kg(t,n.nodeIndex).instance;throw new Error(`Illegal state: read nodeValue for node index ${e}`)}function Bf(t){return new Vf(t.renderer)}class Vf{constructor(t){this.delegate=t}selectRootElement(t){return this.delegate.selectRootElement(t)}createElement(t,e){const[n,a]=df(e),r=this.delegate.createElement(a,n);return t&&this.delegate.appendChild(t,r),r}createViewRoot(t){return t}createTemplateAnchor(t){const e=this.delegate.createComment("");return t&&this.delegate.appendChild(t,e),e}createText(t,e){const n=this.delegate.createText(e);return t&&this.delegate.appendChild(t,n),n}projectNodes(t,e){for(let n=0;n<e.length;n++)this.delegate.appendChild(t,e[n])}attachViewAfter(t,e){const n=this.delegate.parentNode(t),a=this.delegate.nextSibling(t);for(let r=0;r<e.length;r++)this.delegate.insertBefore(n,e[r],a)}detachView(t){for(let e=0;e<t.length;e++){const n=t[e],a=this.delegate.parentNode(n);this.delegate.removeChild(a,n)}}destroyView(t,e){for(let n=0;n<e.length;n++)this.delegate.destroyNode(e[n])}listen(t,e,n){return this.delegate.listen(t,e,n)}listenGlobal(t,e,n){return this.delegate.listen(t,e,n)}setElementProperty(t,e,n){this.delegate.setProperty(t,e,n)}setElementAttribute(t,e,n){const[a,r]=df(e);null!=n?this.delegate.setAttribute(t,r,n,a):this.delegate.removeAttribute(t,r,a)}setBindingDebugInfo(t,e,n){}setElementClass(t,e,n){n?this.delegate.addClass(t,e):this.delegate.removeClass(t,e)}setElementStyle(t,e,n){null!=n?this.delegate.setStyle(t,e,n):this.delegate.removeStyle(t,e)}invokeElementMethod(t,e,n){t[e].apply(t,n)}setText(t,e){this.delegate.setValue(t,e)}animate(){throw new Error("Renderer.animate is no longer supported!")}}function Yf(t,e,n,a){return new Hf(t,e,n,a)}class Hf{constructor(t,e,n,a){this._moduleType=t,this._parent=e,this._bootstrapComponents=n,this._def=a,this._destroyListeners=[],this._destroyed=!1,this.injector=this,function(t){const e=t._def,n=t._providers=new Array(e.providers.length);for(let a=0;a<e.providers.length;a++){const r=e.providers[a];4096&r.flags||void 0===n[a]&&(n[a]=Mf(t,r))}}(this)}get(t,e=Ls.THROW_IF_NOT_FOUND,n=v.Default){let a=0;return n&v.SkipSelf?a|=1:n&v.Self&&(a|=4),Pf(this,{token:t,tokenKey:Lg(t),flags:a},e)}get instance(){return this.get(this._moduleType)}get componentFactoryResolver(){return this.get(qu)}destroy(){if(this._destroyed)throw new Error(`The ng module ${N(this.instance.constructor)} has already been destroyed.`);this._destroyed=!0,function(t,e){const n=t._def,a=new Set;for(let r=0;r<n.providers.length;r++)if(131072&n.providers[r].flags){const e=t._providers[r];if(e&&e!==bf){const t=e.ngOnDestroy;"function"!=typeof t||a.has(e)||(t.apply(e),a.add(e))}}}(this),this._destroyListeners.forEach(t=>t())}onDestroy(t){this._destroyListeners.push(t)}}const Uf=Lg(Uu),Wf=Lg(Zu),Kf=Lg(Gu),$f=Lg(_g),Zf=Lg(hg),Jf=Lg(Wi),Xf=Lg(Ls),Qf=Lg(B);function tp(t,e,n,a,r,o,i,s){const c=[];if(i)for(let d in i){const[t,e]=i[d];c[t]={flags:8,name:d,nonMinifiedName:e,ns:null,securityContext:null,suffix:null}}const l=[];if(s)for(let d in s)l.push({type:1,propName:d,target:null,eventName:s[d]});return ap(t,e|=16384,n,a,r,r,o,c,l)}function ep(t,e,n){return ap(-1,t|=16,null,0,e,e,n)}function np(t,e,n,a,r){return ap(-1,t,e,0,n,a,r)}function ap(t,e,n,a,r,o,i,s,c){const{matchedQueries:l,references:d,matchedQueryIds:u}=Xg(n);c||(c=[]),s||(s=[]),o=E(o);const g=Qg(i,N(r));return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:l,matchedQueryIds:u,references:d,ngContentIndex:-1,childCount:a,bindings:s,bindingFlags:uf(s),outputs:c,element:null,provider:{token:r,value:o,deps:g},text:null,query:null,ngContent:null}}function rp(t,e){return cp(t,e)}function op(t,e){let n=t;for(;n.parent&&!$g(n);)n=n.parent;return lp(n.parent,Wg(n),!0,e.provider.value,e.provider.deps)}function ip(t,e){const n=lp(t,e.parent,(32768&e.flags)>0,e.provider.value,e.provider.deps);if(e.outputs.length)for(let a=0;a<e.outputs.length;a++){const r=e.outputs[a],o=n[r.propName];if(!Kl(o))throw new Error(`@Output ${r.propName} not initialized in '${n.constructor.name}'.`);{const n=o.subscribe(sp(t,e.parent.nodeIndex,r.eventName));t.disposables[e.outputIndex+a]=n.unsubscribe.bind(n)}}return n}function sp(t,e,n){return a=>Hg(t,e,n,a)}function cp(t,e){const n=(8192&e.flags)>0,a=e.provider;switch(201347067&e.flags){case 512:return lp(t,e.parent,n,a.value,a.deps);case 1024:return function(t,e,n,a,r){const o=r.length;switch(o){case 0:return a();case 1:return a(up(t,e,n,r[0]));case 2:return a(up(t,e,n,r[0]),up(t,e,n,r[1]));case 3:return a(up(t,e,n,r[0]),up(t,e,n,r[1]),up(t,e,n,r[2]));default:const i=Array(o);for(let a=0;a<o;a++)i[a]=up(t,e,n,r[a]);return a(...i)}}(t,e.parent,n,a.value,a.deps);case 2048:return up(t,e.parent,n,a.deps[0]);case 256:return a.value}}function lp(t,e,n,a,r){const o=r.length;switch(o){case 0:return new a;case 1:return new a(up(t,e,n,r[0]));case 2:return new a(up(t,e,n,r[0]),up(t,e,n,r[1]));case 3:return new a(up(t,e,n,r[0]),up(t,e,n,r[1]),up(t,e,n,r[2]));default:const i=new Array(o);for(let a=0;a<o;a++)i[a]=up(t,e,n,r[a]);return new a(...i)}}const dp={};function up(t,e,n,a,r=Ls.THROW_IF_NOT_FOUND){if(8&a.flags)return a.token;const o=t;2&a.flags&&(r=null);const i=a.tokenKey;i===Jf&&(n=!(!e||!e.element.componentView)),e&&1&a.flags&&(n=!1,e=e.parent);let s=t;for(;s;){if(e)switch(i){case Uf:return Bf(gp(s,e,n));case Wf:return gp(s,e,n).renderer;case Kf:return new Gu(Sg(s,e.nodeIndex).renderElement);case $f:return Sg(s,e.nodeIndex).viewContainer;case Zf:if(e.element.template)return Sg(s,e.nodeIndex).template;break;case Jf:return Df(gp(s,e,n));case Xf:case Qf:return Ff(s,e);default:const t=(n?e.element.allProviders:e.element.publicProviders)[i];if(t){let e=kg(s,t.nodeIndex);return e||(e={instance:cp(s,t)},s.nodes[t.nodeIndex]=e),e.instance}}n=$g(s),e=Wg(s),s=s.parent,4&a.flags&&(s=null)}const c=o.root.injector.get(a.token,dp);return c!==dp||r===dp?c:o.root.ngModule.injector.get(a.token,r)}function gp(t,e,n){let a;if(n)a=Sg(t,e.nodeIndex).componentView;else for(a=t;a.parent&&!$g(a);)a=a.parent;return a}function fp(t,e,n,a,r,o){if(32768&n.flags){const e=Sg(t,n.parent.nodeIndex).componentView;2&e.def.flags&&(e.state|=8)}if(e.instance[n.bindings[a].name]=r,524288&n.flags){o=o||{};const e=kc.unwrap(t.oldValues[n.bindingIndex+a]);o[n.bindings[a].nonMinifiedName]=new mu(e,r,0!=(2&t.state))}return t.oldValues[n.bindingIndex+a]=r,o}function pp(t,e){if(!(t.def.nodeFlags&e))return;const n=t.def.nodes;let a=0;for(let r=0;r<n.length;r++){const o=n[r];let i=o.parent;for(!i&&o.flags&e&&hp(t,r,o.flags&e,a++),0==(o.childFlags&e)&&(r+=o.childCount);i&&1&i.flags&&r===i.nodeIndex+i.childCount;)i.directChildFlags&e&&(a=mp(t,i,e,a)),i=i.parent}}function mp(t,e,n,a){for(let r=e.nodeIndex+1;r<=e.nodeIndex+e.childCount;r++){const e=t.def.nodes[r];e.flags&n&&hp(t,r,e.flags&n,a++),r+=e.childCount}return a}function hp(t,e,n,a){const r=kg(t,e);if(!r)return;const o=r.instance;o&&(Ag.setCurrentNode(t,e),1048576&n&&wg(t,512,a)&&o.ngAfterContentInit(),2097152&n&&o.ngAfterContentChecked(),4194304&n&&wg(t,768,a)&&o.ngAfterViewInit(),8388608&n&&o.ngAfterViewChecked(),131072&n&&o.ngOnDestroy())}function bp(t){const e=[];for(let n in t)t.hasOwnProperty(n)&&e.push({propName:t[n],templateName:n});return e}const yp=new G("SCHEDULER_TOKEN",{providedIn:"root",factory:()=>pn});class _p extends Au{constructor(t,e){super(),this.componentDef=t,this.ngModule=e,this.componentType=t.type,this.selector=t.selectors[0][0]||"div",this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!e}get inputs(){return bp(this.componentDef.inputs)}get outputs(){return bp(this.componentDef.outputs)}create(t,e,n,a){const r=(a=a||this.ngModule)?function(t,e){return{get:(n,a,r)=>{const o=t.get(n,dp,r);return o!==dp||a===dp?o:e.get(n,a,r)}}}(t,a.injector):t,o=r.get(Ku,Kn),i=r.get(gr,null);cn();const s=n?Eo(o,n):Co(this.selector,o.createRenderer(null,this.componentDef)),c=this.componentDef.onPush?576:528,l="string"==typeof n&&/^#root-ng-internal-isolated-\d+/.test(n),d=gu(),u=o.createRenderer(s,this.componentDef);n&&s&&(Wn(u)?u.setAttribute(s,"ng-version",tg.full):s.setAttribute("ng-version",tg.full));const g=Po(null,Ao(-1,null,1,0,null,null,null,null),d,c,null,null,o,u,i,r),f=Ze(g,null);let p,m,h=!1;try{const t=du(s,this.componentDef,g,o,u);m=ue(0,g),e&&(m.projection=e.map(t=>Array.from(t))),p=uu(t,this.componentDef,g,d,[fu]),Xo(g,t),Oo(g),h=!0}finally{Xe(f,h)}const b=new Op(this.componentType,p,Vi(Gu,m,g),g,m);return n&&!l||(b.hostView._tViewNode.child=m),b}}class Op extends Ru{constructor(t,e,n,a,r){super(),this.location=n,this._rootLView=a,this._tNode=r,this.destroyCbs=[],this.instance=e,this.hostView=this.changeDetectorRef=new Fi(a),this.hostView._tViewNode=xo(a[1],null,-1,a),this.componentType=t}get injector(){return new va(this._tNode,this._rootLView)}destroy(){this.destroyCbs&&(this.destroyCbs.forEach(t=>t()),this.destroyCbs=null,!this.hostView.destroyed&&this.hostView.destroy())}onDestroy(t){this.destroyCbs&&this.destroyCbs.push(t)}}const vp={},Cp=function(){var t={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencySymbol:15,CurrencyName:16,Currencies:17,PluralCase:18,ExtraData:19};return t[t.LocaleId]="LocaleId",t[t.DayPeriodsFormat]="DayPeriodsFormat",t[t.DayPeriodsStandalone]="DayPeriodsStandalone",t[t.DaysFormat]="DaysFormat",t[t.DaysStandalone]="DaysStandalone",t[t.MonthsFormat]="MonthsFormat",t[t.MonthsStandalone]="MonthsStandalone",t[t.Eras]="Eras",t[t.FirstDayOfWeek]="FirstDayOfWeek",t[t.WeekendRange]="WeekendRange",t[t.DateFormat]="DateFormat",t[t.TimeFormat]="TimeFormat",t[t.DateTimeFormat]="DateTimeFormat",t[t.NumberSymbols]="NumberSymbols",t[t.NumberFormats]="NumberFormats",t[t.CurrencySymbol]="CurrencySymbol",t[t.CurrencyName]="CurrencyName",t[t.Currencies]="Currencies",t[t.PluralCase]="PluralCase",t[t.ExtraData]="ExtraData",t}(),Pp=void 0;var Mp=["en",[["a","p"],["AM","PM"],Pp],[["AM","PM"],Pp,Pp],[["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"]],Pp,[["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"]],Pp,[["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}",Pp,"{1} 'at' {0}",Pp],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"$","US Dollar",{},function(t){let e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}];function xp(t){return wp(t)[Cp.PluralCase]}function wp(t){const e=t.toLowerCase().replace(/_/g,"-");let n=vp[e];if(n)return n;const a=e.split("-")[0];if(n=vp[a],n)return n;if("en"===a)return Mp;throw new Error(`Missing locale data for the locale "${t}".`)}const Tp="en-US",Sp=/^\s*(�\d+:?\d*�)\s*,\s*(select|plural)\s*,/,kp=/�\/?\*(\d+:\d+)�/gi,Ip=/�(\/?[#*!]\d+):?\d*�/gi,Np=/�(\d+):?\d*�/gi,Rp=/({\s*�\d+:?\d*�\s*,\s*\S{6}\s*,[\s\S]*})/gi,Ap=/\[(�.+?�?)\]/,Ep=/\[(�.+?�?)\]|(�\/?\*\d+:\d+�)/g,Dp=/({\s*)(VAR_(PLURAL|SELECT)(_\d+)?)(\s*,)/g,Lp=/{([A-Z0-9_]+)}/g,qp=/�I18N_EXP_(ICU(_\d+)?)�/g,jp=/\/\*/,Fp=/\d+\:(\d+)/;function zp(t){if(!t)return[];let e=0;const n=[],a=[],r=/[{}]/g;let o;for(r.lastIndex=0;o=r.exec(t);){const r=o.index;if("}"==o[0]){if(n.pop(),0==n.length){const n=t.substring(e,r);Sp.test(n)?a.push(Gp(n)):a.push(n),e=r+1}}else{if(0==n.length){const n=t.substring(e,r);a.push(n),e=r+1}n.push("{")}}const i=t.substring(e);return a.push(i),a}function Gp(t){const e=[],n=[];let a=1,r=0;const o=zp(t=t.replace(Sp,(function(t,e,n){return a="select"===n?0:1,r=parseInt(e.substr(1),10),""})));for(let i=0;i<o.length;){let t=o[i++].trim();1===a&&(t=t.replace(/\s*(?:=)?(\w+)\s*/,"$1")),t.length&&e.push(t);const r=zp(o[i++]);e.length>n.length&&n.push(r)}return'Missing key "other" in ICU statement.',e.indexOf("other")<=-1&&gt('Missing key "other" in ICU statement.'),{type:a,mainBinding:r,cases:e,values:n}}function Bp(t){let e,n,a="",r=0,o=!1;for(;null!==(e=kp.exec(t));)o?e[0]===`�/*${n}�`&&(r=e.index,o=!1):(a+=t.substring(r,e.index+e[0].length),n=e[1],o=!0);return a+=t.substr(r),a}function Vp(t,e,n,a=null){const r=[null,null],o=t.split(Np);let i=0;for(let s=0;s<o.length;s++){const t=o[s];if(1&s){const e=parseInt(t,10);r.push(-1-e),i|=Wp(e)}else""!==t&&r.push(t)}return r.push(e<<2|(n?1:0)),n&&r.push(n,a),r[0]=i,r[1]=r.length-2,r}function Yp(t,e=0){let n;e|=Wp(t.mainBinding);for(let a=0;a<t.values.length;a++){const r=t.values[a];for(let t=0;t<r.length;t++){const a=r[t];if("string"==typeof a)for(;n=Np.exec(a);)e|=Wp(parseInt(n[1],10));else e=Yp(a,e)}}return e}const Hp=[];let Up=-1;function Wp(t){return 1<<Math.min(t,31)}const Kp=[];function $p(t,e,n){const a=Pe()[1];Hp[++Up]=t,rd(!0),a.firstTemplatePass&&null===a.data[t+19]&&function(t,e,n,a){const r=Pe(),o=t.blueprint.length-19;Zp=0;const i=Ee(),s=qe()?Ee():i&&i.parent;let c=s&&s!==r[6]?s.index-19:e,l=0;Kp[l]=c;const d=[];e>0&&i!==s&&d.push(i.index<<3|0);const u=[],g=[],f=(p=function(t,e){if("number"!=typeof e)return Bp(t);{const n=t.indexOf(`:${e}�`)+2+e.toString().length,a=t.search(new RegExp(`�\\/\\*\\d+:${e}�`));return Bp(t.substring(n,a))}}(n,a),p.replace(fm," ")).split(Ip);var p;for(let m=0;m<f.length;m++){let t=f[m];if(1&m)if("/"===t.charAt(0)){if("#"===t.charAt(1)){const e=parseInt(t.substr(2),10);c=Kp[--l],d.push(e<<3|5)}}else{const e=parseInt(t.substr(1),10);d.push(e<<3|0,c<<17|1),"#"===t.charAt(0)&&(Kp[++l]=c=e)}else{const e=zp(t);for(let t=0;t<e.length;t++)if(1&t){const n=o+Zp++;d.push(io,"",n,c<<17|1);const a=e[t],r=Yp(a);dm(g,a,n,n);const i=g.length-1;u.push(Wp(a.mainBinding),3,-1-a.mainBinding,n<<2|2,i,r,2,n<<2|3,i)}else if(""!==e[t]){const n=e[t],a=n.match(Np),r=o+Zp++;d.push(a?"":n,r,c<<17|1),a&&st(Vp(n,r),u)}}}Zp>0&&function(t,e){if(e>0){const n=t[1];if(n.firstTemplatePass){for(let a=0;a<e;a++)n.blueprint.push(null),n.data.push(null),t.push(null);n.expandoInstructions?n.expandoInstructions.push(e):n.expandoStartIndex+=e}}}(r,Zp),t.data[e+19]={vars:Zp,create:d,update:u,icus:g.length?g:null}}(a,t,e,n)}let Zp;function Jp(t,e,n,a){const r=t.next;n||(n=e),n===e&&t!==e.child?(t.next=e.child,e.child=t):n!==e&&t!==n.next?(t.next=n.next,n.next=t):t.next=null,e!==a[6]&&(t.parent=e);let o=t.next;for(;o;)o.next===t&&(o.next=r),o=o.next;if(1===t.type)return Ai(a,t,t.projection,aa(a)),t;Ii(le(t,a),t,a);const i=a[t.index];return 0!==t.type&&Yt(i)&&Ii(i[7],t,a),t}function Xp(t,e={}){let n=t;if(Ap.test(t)){const t={},e=[0];n=n.replace(Ep,(n,a,r)=>{const o=a||r,i=t[o]||[];if(i.length||(o.split("|").forEach(t=>{const e=t.match(Fp),n=e?parseInt(e[1],10):0,a=jp.test(t);i.push([n,a,t])}),t[o]=i),!i.length)throw new Error(`i18n postprocess: unmatched placeholder - ${o}`);const s=e[e.length-1];let c=0;for(let t=0;t<i.length;t++)if(i[t][0]===s){c=t;break}const[l,d,u]=i[c];return d?e.pop():s!==l&&e.push(l),i.splice(c,1),u})}return Object.keys(e).length?(n=n.replace(Dp,(t,n,a,r,o,i)=>e.hasOwnProperty(a)?`${n}${e[a]}${i}`:t),n=n.replace(Lp,(t,n)=>e.hasOwnProperty(n)?e[n]:t),n=n.replace(qp,(t,n)=>{if(e.hasOwnProperty(n)){const a=e[n];if(!a.length)throw new Error(`i18n postprocess: unmatched ICU - ${t} with key: ${n}`);return a.shift()}return t}),n):n}function Qp(){!function(t){const e=Pe(),n=Hp[Up--],a=t.data[n+19];let r=Ee();const o=em(n,a.create,0,e);for(let i=n+1;i<=r.index-19;i++)-1===o.indexOf(i)&&nm(i,e)}(Pe()[1]),rd(!1)}function tm(t,e,n,a,r){const o=Ee();t[e+19]=a;const i=Mo(t[1],t[6],e,n,r,null);return o.next===i&&(o.next=null),i}function em(t,e,n,a){const r=Pe()[12];let o=null,i=null;const s=[];for(let c=0;c<e.length;c++){const n=e[c];if("string"==typeof n){const t=yi(n,r),l=e[++c];i=o,o=tm(a,l,3,t,null),s.push(l),je()}else if("number"==typeof n)switch(7&n){case 1:const r=n>>>17;let l;l=r===t?a[6]:ue(r,a),i=Jp(o,l,i,a);break;case 0:const d=n>>>3;s.push(d),i=o,o=ue(d,a),o&&De(o,3===o.type);break;case 5:i=o=ue(n>>>3,a),De(o,!1);break;case 4:$o(n>>>3,e[++c],e[++c],a);break;default:throw new Error(`Unable to determine the type of mutate operation for "${n}"`)}else switch(n){case io:const t=e[++c],l=e[++c],d=r.createComment(t);i=o,o=tm(a,l,5,d,null),s.push(l),Ir(d,a),o.activeCaseIndex=null,je();break;case oo:const u=e[++c],g=e[++c];i=o,o=tm(a,g,3,r.createElement(u),u),s.push(g);break;default:throw new Error(`Unable to determine the type of mutate operation for "${n}"`)}}return je(),s}function nm(t,e){const n=ue(t,e),a=ce(t,e);a&&Ri(e[12],a);const r=pl(t);if(Yt(r)){const t=r;0!==n.type&&Ri(e[12],t[7])}n.flags|=32}function am(t,e,n){$p(t,e,n),Qp()}function rm(t,e){!function(t,e,n){const a=Ee().index-19,r=[];for(let o=0;o<n.length;o+=2){const i=n[o],s=n[o+1].split(Rp);for(let n=0;n<s.length;n++){const o=s[n];if(1&n)throw new Error("ICU expressions are not yet supported in attributes");if(""!==o)if(o.match(Np))t.firstTemplatePass&&null===t.data[e+19]&&st(Vp(o,a,i),r);else{const t=Pe();$o(a,i,o,t);const e=ue(a,t),n=e.inputs&&e.inputs[i];n&&gi(t,n,o)}}}t.firstTemplatePass&&null===t.data[e+19]&&(t.data[e+19]=r)}(Pe()[1],t,e)}let om=0,im=0;function sm(t){return Fc(Pe(),t)!==ro&&(om|=1<<im),im++,sm}function cm(t){if(im){const e=Pe(),n=e[1].data[t+19];let a,r=null;Array.isArray(n)?a=n:(a=n.update,r=n.icus),function t(e,n,a,r,o,i=!1){let s=!1;for(let c=0;c<e.length;c++){const l=e[c],d=e[++c];if(i||l&r){let i="";for(let l=c+1;l<=c+d;l++){const c=e[l];if("string"==typeof c)i+=c;else if("number"==typeof c)if(c<0)i+=gn(o[a-c]);else{const d=c>>>2;let u,g,f;switch(3&c){case 1:jo(d,e[++l],i,e[++l]);break;case 0:fi(o,d,i);break;case 2:if(u=e[++l],g=n[u],f=ue(d,o),null!==f.activeCaseIndex){const t=g.remove[f.activeCaseIndex];for(let e=0;e<t.length;e++){const a=t[e];switch(7&a){case 3:nm(a>>>3,o);break;case 6:const r=ue(t[e+1]>>>3,o).activeCaseIndex;null!==r&&st(n[a>>>3].remove[r],t)}}}const c=lm(g,i);f.activeCaseIndex=-1!==c?c:null,em(-1,g.create[c],0,o),s=!0;break;case 3:u=e[++l],g=n[u],f=ue(d,o),t(g.update[f.activeCaseIndex],n,a,r,o,s)}}}}c+=d}}(a,r,e[7]-im-1,om,e),om=0,im=0}}function lm(t,e){let n=t.cases.indexOf(e);if(-1===n)switch(t.type){case 1:{const a=function(t,e){switch(xp(e)(t)){case 0:return"zero";case 1:return"one";case 2:return"two";case 3:return"few";case 4:return"many";default:return"other"}}(e,ym);n=t.cases.indexOf(a),-1===n&&"other"!==a&&(n=t.cases.indexOf("other"));break}case 0:n=t.cases.indexOf("other")}return n}function dm(t,e,n,a){const r=[],o=[],i=[],s=[],c=[];for(let l=0;l<e.values.length;l++){const d=e.values[l],u=[];for(let t=0;t<d.length;t++){const e=d[t];if("string"!=typeof e){const n=u.push(e)-1;d[t]=`\x3c!--�${n}�--\x3e`}}const g=um(d.join(""),n,u,t,a);r.push(g.create),o.push(g.remove),i.push(g.update),s.push(g.vars),c.push(g.childIcus)}t.push({type:e.type,vars:s,childIcus:c,cases:e.cases,create:r,remove:o,update:i}),Zp+=Math.max(...s)}function um(t,e,n,a,r){const o=new Ba(document).getInertBodyElement(t);if(!o)throw new Error("Unable to generate inert body element");const i={vars:0,childIcus:[],create:[],remove:[],update:[]};return function t(e,n,a,r,o,i){if(e){const s=[];for(;e;){const c=e.nextSibling,l=i+ ++n.vars;switch(e.nodeType){case Node.ELEMENT_NODE:const c=e,d=c.tagName.toLowerCase();if(Qa.hasOwnProperty(d)){n.create.push(oo,d,l,a<<17|1);const s=c.attributes;for(let t=0;t<s.length;t++){const e=s.item(t),a=e.name.toLowerCase();e.value.match(Np)?nr.hasOwnProperty(a)&&st(tr[a]?Vp(e.value,l,e.name,Ha):er[a]?Vp(e.value,l,e.name,Ua):Vp(e.value,l,e.name),n.update):n.create.push(l<<3|4,e.name,e.value)}t(e.firstChild,n,l,r,o,i),n.remove.push(l<<3|3)}else n.vars--;break;case Node.TEXT_NODE:const u=e.textContent||"",g=u.match(Np);n.create.push(g?"":u,l,a<<17|1),n.remove.push(l<<3|3),g&&st(Vp(u,l),n.update);break;case Node.COMMENT_NODE:const f=gm.exec(e.textContent||"");if(f){const t=parseInt(f[1],10);n.create.push(io,"",l,a<<17|1),s.push([r[t],l])}else n.vars--;break;default:n.vars--}e=c}for(let t=0;t<s.length;t++){const e=s[t][0],a=s[t][1];dm(o,e,a,i+n.vars);const r=o.length-1;n.vars+=Math.max(...o[r].vars),n.childIcus.push(r);const c=Yp(e);n.update.push(Wp(e.mainBinding),3,-1-e.mainBinding,a<<2|2,r,c,2,a<<2|3,r),n.remove.push(r<<3|6,a<<3|3)}}}((dr(o)||o).firstChild,i,e,n,a,r),i}const gm=/�(\d+)�/,fm=/\uE500/g;let pm={};function mm(t={translations:{}}){pm=t.translations}const hm=/\{\$(.*?)\}/g;function bm(t,e){return void 0!==pm[t]&&(t=pm[t]),void 0!==e&&Object.keys(e).length?t.replace(hm,(t,n)=>e[n]||""):t}let ym=Tp;function _m(t){null==t&&gt("Expected localeId to be defined"),"string"==typeof t&&(ym=t.toLowerCase().replace(/_/g,"-"))}const Om=new Map;function vm(t,e){const n=Om.get(t);Cm(t,n&&n.moduleType,e.moduleType),Om.set(t,e)}function Cm(t,e,n){if(e&&e!==n)throw new Error(`Duplicate module registered for ${t} - ${N(e)} vs ${N(e.name)}`)}function Pm(t){if(null!==t.ngModuleDef.id){const e=t.ngModuleDef.id;Cm(e,Om.get(e),t),Om.set(e,t)}let e=t.ngModuleDef.imports;e instanceof Function&&(e=e()),e&&e.forEach(t=>Pm(t))}function Mm(t){return Om.get(t)}const xm={provide:qu,useClass:class extends qu{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const e=jt(t);return new _p(e,this.ngModule)}},deps:[ot]};class wm extends ot{constructor(t,e){super(),this._parent=e,this._bootstrapComponents=[],this.injector=this,this.destroyCbs=[];const n=Bt(t),a=t[Mt]||null;a&&_m(a),this._bootstrapComponents=_n(n.bootstrap),this._r3Injector=Ts(t,e,[{provide:ot,useValue:this},xm],N(t)),this.instance=this.get(t)}get(t,e=Ls.THROW_IF_NOT_FOUND,n=v.Default){return t===Ls||t===ot||t===B?this:this._r3Injector.get(t,e,n)}get componentFactoryResolver(){return this.get(qu)}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Tm extends it{constructor(t){super(),this.moduleType=t,null!==Bt(t)&&Pm(t)}create(t){return new wm(this.moduleType,t)}}function Sm(t,e,n,a){return bt(()=>{const r=t,o=r.prototype?Object.getPrototypeOf(r.prototype):null,i=o&&o.constructor;null!==e&&(void 0===r.decorators||i&&i.decorators===r.decorators?r.decorators=e:r.decorators.push(...e)),null!==n&&(r.ctorParameters=n),null!==a&&(r.propDecorators=void 0===r.propDecorators||i&&i.propDecorators===r.propDecorators?a:Object.assign({},r.propDecorators,a))})}function km(t,e,n){const a=He()+t,r=Pe();return Fe()?Rc(r,a,n?e.call(n):e()):Ac(r,a)}function Im(t,e,n,a){const r=Pe(),o=He()+t;return Ec(r,o,n)?Rc(r,o+1,a?e.call(a,n):e(n)):Ac(r,o+1)}function Nm(t,e,n,a,r){const o=He()+t,i=Pe();return Dc(i,o,n,a)?Rc(i,o+2,r?e.call(r,n,a):e(n,a)):Ac(i,o+2)}function Rm(t,e,n,a,r,o){const i=He()+t,s=Pe();return Lc(s,i,n,a,r)?Rc(s,i+3,o?e.call(o,n,a,r):e(n,a,r)):Ac(s,i+3)}function Am(t,e,n,a,r,o,i){const s=He()+t,c=Pe();return qc(c,s,n,a,r,o)?Rc(c,s+4,i?e.call(i,n,a,r,o):e(n,a,r,o)):Ac(c,s+4)}function Em(t,e,n,a,r,o,i,s){const c=He()+t,l=Pe(),d=qc(l,c,n,a,r,o);return Ec(l,c+4,i)||d?Rc(l,c+5,s?e.call(s,n,a,r,o,i):e(n,a,r,o,i)):Ac(l,c+5)}function Dm(t,e,n,a,r,o,i,s,c){const l=He()+t,d=Pe(),u=qc(d,l,n,a,r,o);return Dc(d,l+4,i,s)||u?Rc(d,l+6,c?e.call(c,n,a,r,o,i,s):e(n,a,r,o,i,s)):Ac(d,l+6)}function Lm(t,e,n,a,r,o,i,s,c,l){const d=He()+t,u=Pe();let g=qc(u,d,n,a,r,o);return Lc(u,d+4,i,s,c)||g?Rc(u,d+7,l?e.call(l,n,a,r,o,i,s,c):e(n,a,r,o,i,s,c)):Ac(u,d+7)}function qm(t,e,n,a,r,o,i,s,c,l,d){const u=He()+t,g=Pe(),f=qc(g,u,n,a,r,o);return qc(g,u+4,i,s,c,l)||f?Rc(g,u+8,d?e.call(d,n,a,r,o,i,s,c,l):e(n,a,r,o,i,s,c,l)):Ac(g,u+8)}function jm(t,e,n,a){let r=He()+t,o=!1;const i=Pe();for(let s=0;s<n.length;s++)Ec(i,r++,n[s])&&(o=!0);return o?Rc(i,r,e.apply(a,n)):Ac(i,r)}function Fm(t,e){const n=Pe()[1];let a;const r=t+19;n.firstTemplatePass?(a=function(t,e){if(e)for(let n=e.length-1;n>=0;n--){const a=e[n];if(t===a.name)return a}throw new Error(`The pipe '${t}' could not be found!`)}(e,n.pipeRegistry),n.data[r]=a,a.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(r,a.onDestroy)):a=n.data[r];const o=a.factory();return gl(t,o),o}function zm(t,e,n){const a=pl(t);return Um(Hm(t)?Im(e,a.transform,n,a):a.transform(n))}function Gm(t,e,n,a){const r=pl(t);return Um(Hm(t)?Nm(e,r.transform,n,a,r):r.transform(n,a))}function Bm(t,e,n,a,r){const o=pl(t);return Um(Hm(t)?Rm(e,o.transform,n,a,r,o):o.transform(n,a,r))}function Vm(t,e,n,a,r,o){const i=pl(t);return Um(Hm(t)?Am(e,i.transform,n,a,r,o,i):i.transform(n,a,r,o))}function Ym(t,e,n){const a=pl(t);return Um(Hm(t)?jm(e,a.transform,n,a):a.transform.apply(a,n))}function Hm(t){return Pe()[1].data[t+19].pure}function Um(t){if(kc.isWrapped(t)){t=kc.unwrap(t);const e=Pe();e[e[7]]=ro}return t}class Wm extends a.a{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,e,n){let a,o=t=>null,i=()=>null;t&&"object"==typeof t?(a=this.__isAsync?e=>{setTimeout(()=>t.next(e))}:e=>{t.next(e)},t.error&&(o=this.__isAsync?e=>{setTimeout(()=>t.error(e))}:e=>{t.error(e)}),t.complete&&(i=this.__isAsync?()=>{setTimeout(()=>t.complete())}:()=>{t.complete()})):(a=this.__isAsync?e=>{setTimeout(()=>t(e))}:e=>{t(e)},e&&(o=this.__isAsync?t=>{setTimeout(()=>e(t))}:t=>{e(t)}),n&&(i=this.__isAsync?()=>{setTimeout(()=>n())}:()=>{n()}));const s=super.subscribe(a,o,i);return t instanceof r.a&&t.add(s),s}}function Km(){return this._results[wc()]()}class $m{constructor(){this.dirty=!0,this._results=[],this.changes=new Wm,this.length=0;const t=wc(),e=$m.prototype;e[t]||(e[t]=Km)}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){this._results=ct(t),this.dirty=!1,this.length=this._results.length,this.last=this._results[this.length-1],this.first=this._results[0]}notifyOnChanges(){this.changes.emit(this)}setDirty(){this.dirty=!0}destroy(){this.changes.complete(),this.changes.unsubscribe()}}class Zm{constructor(t){this.queryList=t,this.matches=null}clone(){return new Zm(this.queryList)}setDirty(){this.queryList.setDirty()}}class Jm{constructor(t=[]){this.queries=t}createEmbeddedView(t){const e=t.queries;if(null!==e){const n=null!==t.contentQueries?t.contentQueries[0]:e.length,a=new Array(n);for(let t=0;t<n;t++){const n=e.getByIndex(t);a[t]=this.queries[n.indexInDeclarationView].clone()}return new Jm(a)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let e=0;e<this.queries.length;e++)null!==hh(t,e).matches&&this.queries[e].setDirty()}}class Xm{constructor(t,e,n,a=null){this.predicate=t,this.descendants=e,this.isStatic=n,this.read=a}}class Qm{constructor(t=[]){this.queries=t}elementStart(t,e){for(let n of this.queries)n.elementStart(t,e)}elementEnd(t){for(let e of this.queries)e.elementEnd(t)}embeddedTView(t){let e=null;for(let n=0;n<this.length;n++){const a=null!==e?e.length:0,r=this.getByIndex(n).embeddedTView(t,a);r&&(r.indexInDeclarationView=n,null!==e?e.push(r):e=[r])}return null!==e?new Qm(e):null}template(t,e){for(let n of this.queries)n.template(t,e)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}}class th{constructor(t,e=-1){this.metadata=t,this.matches=null,this.indexInDeclarationView=-1,this.crossesNgTemplate=!1,this._appliesToNextNode=!0,this._declarationNodeIndex=e}elementStart(t,e){this.isApplyingToNode(e)&&this.matchTNode(t,e)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,e){this.elementStart(t,e)}embeddedTView(t,e){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,e),new th(this.metadata)):null}isApplyingToNode(t){return this._appliesToNextNode&&!1===this.metadata.descendants?this._declarationNodeIndex===(t.parent?t.parent.index:-1):this._appliesToNextNode}matchTNode(t,e){if(Array.isArray(this.metadata.predicate)){const n=this.metadata.predicate;for(let a=0;a<n.length;a++)this.matchTNodeWithReadOption(t,e,eh(e,n[a]))}else{const n=this.metadata.predicate;n===hg?0===e.type&&this.matchTNodeWithReadOption(t,e,-1):this.matchTNodeWithReadOption(t,e,ba(e,t,n,!1,!1))}}matchTNodeWithReadOption(t,e,n){if(null!==n){const a=this.metadata.read;if(null!==a)if(a===Gu||a===_g||a===hg&&0===e.type)this.addMatch(e.index,-2);else{const n=ba(e,t,a,!1,!1);null!==n&&this.addMatch(e.index,n)}else this.addMatch(e.index,n)}}addMatch(t,e){null===this.matches?this.matches=[t,e]:this.matches.push(t,e)}}function eh(t,e){const n=t.localNames;if(null!==n)for(let a=0;a<n.length;a+=2)if(n[a]===e)return n[a+1];return null}function nh(t,e,n,a){return-1===n?function(t,e){return 3===t.type||4===t.type?Vi(Gu,t,e):0===t.type?Yi(hg,Gu,t,e):null}(e,t):-2===n?function(t,e,n){return n===Gu?Vi(Gu,e,t):n===hg?Yi(hg,Gu,e,t):n===_g?Hi(_g,Gu,e,t):void 0}(t,e,a):ya(t[1].data,t,n,e)}function ah(t,e,n){const a=t[5].queries[n];if(null===a.matches){const n=t[1].data,r=e.matches,o=new Array(r.length/2);for(let a=0;a<r.length;a+=2){const i=r[a];o[a/2]=i<0?null:nh(t,n[i],r[a+1],e.metadata.read)}a.matches=o}return a.matches}function rh(t){const e=Pe(),n=Ke();$e(n+1);const a=hh(e[1],n);if(t.dirty&&Fe()===a.metadata.isStatic){if(null===a.matches)t.reset([]);else{const r=a.crossesNgTemplate?function t(e,n,a){const r=e[1].queries.getByIndex(n),o=r.matches;if(null!==o){const i=ah(e,r,n);for(let n=0;n<o.length;n+=2){const r=o[n];if(r>0)a.push(i[n/2]);else{const i=o[n+1],s=e[-r];for(let e=9;e<s.length;e++){const n=s[e];n[17]===n[3]&&t(n,i,a)}if(null!==s[5])for(let e of s[5])t(e,i,a)}}}return a}(e,n,[]):ah(e,a,n);t.reset(r),t.notifyOnChanges()}return!0}return!1}function oh(t,e,n){sh(Pe(),t,e,n,!0)}function ih(t,e,n){sh(Pe(),t,e,n,!1)}function sh(t,e,n,a,r){const o=t[1];o.firstTemplatePass&&(mh(o,new Xm(e,n,r,a),-1),r&&(o.staticViewQueries=!0)),ph(t)}function ch(){return fh(Pe(),Ke())}function lh(t,e,n,a){uh(Pe(),e,n,a,!1,Ee(),t)}function dh(t,e,n,a){uh(Pe(),e,n,a,!0,Ee(),t)}function uh(t,e,n,a,r,o,i){const s=t[1];s.firstTemplatePass&&(mh(s,new Xm(e,n,r,a),o.index),function(t,e){const n=t.contentQueries||(t.contentQueries=[]);e!==(t.contentQueries.length?n[n.length-1]:-1)&&n.push(t.queries.length-1,e)}(s,i),r&&(s.staticContentQueries=!0)),ph(t)}function gh(){return fh(Pe(),Ke())}function fh(t,e){return t[5].queries[e].queryList}function ph(t){const e=new $m;!function(t,e,n){const a=ci(t);a.push(e),t[1].firstTemplatePass&&li(t).push(n,a.length-1)}(t,e,e.destroy),null===t[5]&&(t[5]=new Jm),t[5].queries.push(new Zm(e))}function mh(t,e,n){null===t.queries&&(t.queries=new Qm),t.queries.track(new th(e,n))}function hh(t,e){return t.queries.getByIndex(e)}function bh(t,e){return Yi(hg,Gu,t,e)}function yh(t=v.Default){const e=Ui(!0);if(null!=e||t&v.Optional)return e;throw new Error("No provider for ChangeDetectorRef!")}const _h=(()=>({"ɵɵattribute":zc,"ɵɵattributeInterpolate1":Zc,"ɵɵattributeInterpolate2":Jc,"ɵɵattributeInterpolate3":Xc,"ɵɵattributeInterpolate4":Qc,"ɵɵattributeInterpolate5":tl,"ɵɵattributeInterpolate6":el,"ɵɵattributeInterpolate7":nl,"ɵɵattributeInterpolate8":al,"ɵɵattributeInterpolateV":rl,"ɵɵdefineBase":Dt,"ɵɵdefineComponent":St,"ɵɵdefineDirective":Lt,"ɵɵdefineInjectable":M,"ɵɵdefineInjector":w,"ɵɵdefineNgModule":Rt,"ɵɵdefinePipe":qt,"ɵɵdirectiveInject":ml,"ɵɵgetFactoryOf":Ca,"ɵɵgetInheritedFactory":Pa,"ɵɵinject":J,"ɵɵinjectAttribute":hl,"ɵɵinjectPipeChangeDetectorRef":yh,"ɵɵtemplateRefExtractor":bh,"ɵɵNgOnChangesFeature":hu,"ɵɵProvidersFeature":Nu,"ɵɵInheritDefinitionFeature":Ou,"ɵɵcontainer":sl,"ɵɵnextContext":td,"ɵɵcontainerRefreshStart":ll,"ɵɵcontainerRefreshEnd":dl,"ɵɵnamespaceHTML":sn,"ɵɵnamespaceMathML":on,"ɵɵnamespaceSVG":rn,"ɵɵenableBindings":ve,"ɵɵdisableBindings":Ce,"ɵɵallocHostVars":Mc,"ɵɵelementStart":Ll,"ɵɵelementEnd":ql,"ɵɵelement":jl,"ɵɵelementContainerStart":Gl,"ɵɵelementContainerEnd":Bl,"ɵɵelementContainer":Vl,"ɵɵpureFunction0":km,"ɵɵpureFunction1":Im,"ɵɵpureFunction2":Nm,"ɵɵpureFunction3":Rm,"ɵɵpureFunction4":Am,"ɵɵpureFunction5":Em,"ɵɵpureFunction6":Dm,"ɵɵpureFunction7":Lm,"ɵɵpureFunction8":qm,"ɵɵpureFunctionV":jm,"ɵɵgetCurrentView":Ul,"ɵɵrestoreView":Ae,"ɵɵlistener":$l,"ɵɵload":pl,"ɵɵprojection":od,"ɵɵupdateSyntheticHostBinding":Wd,"ɵɵcomponentHostSyntheticListener":Zl,"ɵɵpipeBind1":zm,"ɵɵpipeBind2":Gm,"ɵɵpipeBind3":Bm,"ɵɵpipeBind4":Vm,"ɵɵpipeBindV":Ym,"ɵɵprojectionDef":nd,"ɵɵhostProperty":Ud,"ɵɵproperty":jc,"ɵɵpropertyInterpolate":id,"ɵɵpropertyInterpolate1":sd,"ɵɵpropertyInterpolate2":cd,"ɵɵpropertyInterpolate3":ld,"ɵɵpropertyInterpolate4":dd,"ɵɵpropertyInterpolate5":ud,"ɵɵpropertyInterpolate6":gd,"ɵɵpropertyInterpolate7":fd,"ɵɵpropertyInterpolate8":pd,"ɵɵpropertyInterpolateV":md,"ɵɵpipe":Fm,"ɵɵqueryRefresh":rh,"ɵɵviewQuery":ih,"ɵɵstaticViewQuery":oh,"ɵɵstaticContentQuery":dh,"ɵɵloadViewQuery":ch,"ɵɵcontentQuery":lh,"ɵɵloadContentQuery":gh,"ɵɵreference":fl,"ɵɵelementHostAttrs":Fl,"ɵɵclassMap":Ml,"ɵɵclassMapInterpolate1":Sd,"ɵɵclassMapInterpolate2":kd,"ɵɵclassMapInterpolate3":Id,"ɵɵclassMapInterpolate4":Nd,"ɵɵclassMapInterpolate5":Rd,"ɵɵclassMapInterpolate6":Ad,"ɵɵclassMapInterpolate7":Ed,"ɵɵclassMapInterpolate8":Dd,"ɵɵclassMapInterpolateV":Ld,"ɵɵstyling":bl,"ɵɵstyleMap":Pl,"ɵɵstyleProp":_l,"ɵɵstylePropInterpolate1":qd,"ɵɵstylePropInterpolate2":jd,"ɵɵstylePropInterpolate3":Fd,"ɵɵstylePropInterpolate4":zd,"ɵɵstylePropInterpolate5":Gd,"ɵɵstylePropInterpolate6":Bd,"ɵɵstylePropInterpolate7":Vd,"ɵɵstylePropInterpolate8":Yd,"ɵɵstylePropInterpolateV":Hd,"ɵɵstyleSanitizer":yl,"ɵɵstylingApply":Sl,"ɵɵclassProp":vl,"ɵɵselect":bo,"ɵɵtemplate":cl,"ɵɵtext":hd,"ɵɵtextBinding":bd,"ɵɵtextInterpolate":yd,"ɵɵtextInterpolate1":_d,"ɵɵtextInterpolate2":Od,"ɵɵtextInterpolate3":vd,"ɵɵtextInterpolate4":Cd,"ɵɵtextInterpolate5":Pd,"ɵɵtextInterpolate6":Md,"ɵɵtextInterpolate7":xd,"ɵɵtextInterpolate8":wd,"ɵɵtextInterpolateV":Td,"ɵɵembeddedViewStart":Yl,"ɵɵembeddedViewEnd":Hl,"ɵɵi18n":am,"ɵɵi18nAttributes":rm,"ɵɵi18nExp":sm,"ɵɵi18nStart":$p,"ɵɵi18nEnd":Qp,"ɵɵi18nApply":cm,"ɵɵi18nPostprocess":Xp,"ɵɵi18nLocalize":bm,"ɵɵresolveWindow":mn,"ɵɵresolveDocument":hn,"ɵɵresolveBody":bn,"ɵɵsetComponentScope":kt,"ɵɵsetNgModuleScope":At,"ɵɵsanitizeHtml":hr,"ɵɵsanitizeStyle":br,"ɵɵdefaultStyleSanitizer":Pr,"ɵɵsanitizeResourceUrl":_r,"ɵɵsanitizeScript":Or,"ɵɵsanitizeUrl":yr,"ɵɵsanitizeUrlOrResourceUrl":Cr}))(),Oh=[],vh=[];let Ch=!1;function Ph(){if(!Ch){Ch=!0;try{for(let t=vh.length-1;t>=0;t--){const{moduleType:e,ngModule:n}=vh[t];n.declarations&&n.declarations.every(Mh)&&(vh.splice(t,1),Ih(e,n))}}finally{Ch=!1}}}function Mh(t){return Array.isArray(t)?t.every(Mh):!!E(t)}function xh(t,e={}){wh(t,e),function(t,e){vh.push({moduleType:t,ngModule:e})}(t,e)}function wh(t,e,n=!1){const a=ct(e.declarations||Oh);let r=null;Object.defineProperty(t,Pt,{configurable:!0,get:()=>(null===r&&(r=z().compileNgModule(_h,`ng:///${t.name}/ngModuleDef.js`,{type:t,bootstrap:ct(e.bootstrap||Oh).map(E),declarations:a.map(E),imports:ct(e.imports||Oh).map(E).map(Ah),exports:ct(e.exports||Oh).map(E).map(Ah),emitInline:!0,schemas:e.schemas?ct(e.schemas):null,id:e.id||null})),r)});let o=null;Object.defineProperty(t,I,{get:()=>{if(null===o){const n={name:t.name,type:t,deps:ss(t),providers:e.providers||Oh,imports:[(e.imports||Oh).map(E),(e.exports||Oh).map(E)]};o=z().compileInjector(_h,`ng:///${t.name}/ngInjectorDef.js`,n)}return o},configurable:!1})}let Th=new Map,Sh=new Map;function kh(){Th=new Map,Sh=new Map,vh.length=0}function Ih(t,e){const n=ct(e.declarations||Oh),a=Rh(t);n.forEach(e=>{e.hasOwnProperty(Ot)?Nh(jt(e),a):e.hasOwnProperty(vt)||e.hasOwnProperty(Ct)||(e.ngSelectorScope=t)})}function Nh(t,e){t.directiveDefs=()=>Array.from(e.compilation.directives).map(t=>t.hasOwnProperty(Ot)?jt(t):Ft(t)).filter(t=>!!t),t.pipeDefs=()=>Array.from(e.compilation.pipes).map(t=>zt(t)),t.schemas=e.schemas,t.tView=null}function Rh(t,e){if(!Eh(t))throw new Error(`${t.name} does not have an ngModuleDef`);const n=Bt(t);if(null!==n.transitiveCompileScopes)return n.transitiveCompileScopes;const a={schemas:n.schemas||null,compilation:{directives:new Set,pipes:new Set},exported:{directives:new Set,pipes:new Set}};return _n(n.declarations).forEach(t=>{zt(t)?a.compilation.pipes.add(t):a.compilation.directives.add(t)}),_n(n.imports).forEach(t=>{const n=t;if(!Eh(n))throw new Error(`Importing ${n.name} which does not have an ngModuleDef`);e&&e(n);const r=Rh(n,e);r.exported.directives.forEach(t=>a.compilation.directives.add(t)),r.exported.pipes.forEach(t=>a.compilation.pipes.add(t))}),_n(n.exports).forEach(t=>{const n=t;if(Eh(n)){const t=Rh(n,e);t.exported.directives.forEach(t=>{a.compilation.directives.add(t),a.exported.directives.add(t)}),t.exported.pipes.forEach(t=>{a.compilation.pipes.add(t),a.exported.pipes.add(t)})}else zt(n)?a.exported.pipes.add(n):a.exported.directives.add(n)}),n.transitiveCompileScopes=a,a}function Ah(t){return function(t){return void 0!==t.ngModule}(t)?t.ngModule:t}function Eh(t){return!!Bt(t)}function Dh(t,e){let n=null;!function(t,e){vc(e)&&(_c.set(t,e),Oc.add(t))}(t,e),Object.defineProperty(t,Ot,{get:()=>{const a=z();if(null===n){if(vc(e)){const n=[`Component '${t.name}' is not resolved:`];throw e.templateUrl&&n.push(` - templateUrl: ${e.templateUrl}`),e.styleUrls&&e.styleUrls.length&&n.push(` - styleUrls: ${JSON.stringify(e.styleUrls)}`),n.push("Did you run and wait for 'resolveComponentResources()'?"),new Error(n.join("\n"))}const r=e.templateUrl||`ng:///${t.name}/template.html`,o=Object.assign({},jh(t,e),{typeSourceSpan:a.createParseSourceSpan("Component",t.name,r),template:e.template||"",preserveWhitespaces:e.preserveWhitespaces||!1,styles:e.styles||_t,animations:e.animations,directives:[],changeDetection:e.changeDetection,pipes:new Map,encapsulation:e.encapsulation||ht.Emulated,interpolation:e.interpolation,viewProviders:e.viewProviders||null});if(o.usesInheritance&&Fh(t),n=a.compileComponent(_h,r,o),Ph(),void 0!==t.ngSelectorScope){const e=Rh(t.ngSelectorScope);Nh(n,e)}}return n},configurable:!1}),ls(t)}function Lh(t,e){let n=null;Object.defineProperty(t,vt,{get:()=>{if(null===n){const a=t&&t.name,r=`ng:///${a}/ngDirectiveDef.js`,o=z(),i=jh(t,e);i.typeSourceSpan=o.createParseSourceSpan("Directive",a,r),i.usesInheritance&&Fh(t),n=o.compileDirective(_h,r,i)}return n},configurable:!1}),ls(t)}function qh(t){return Object.getPrototypeOf(t.prototype)===Object.prototype}function jh(t,e){const n=is().ownPropMetadata(t);return{name:t.name,type:t,typeArgumentCount:0,selector:e.selector,deps:ss(t),host:e.host||yt,propMetadata:n,inputs:e.inputs||_t,outputs:e.outputs||_t,queries:Vh(t,n,Yh),lifecycle:{usesOnChanges:t.prototype.hasOwnProperty("ngOnChanges")},typeSourceSpan:null,usesInheritance:!qh(t),exportAs:(a=e.exportAs,void 0===a?null:a.split(",").map(t=>t.trim())),providers:e.providers||null,viewQueries:Vh(t,n,Hh)};var a}function Fh(t){const e=Object.prototype;let n=Object.getPrototypeOf(t);for(;n&&n!==e;){if(!Ft(n)&&!jt(n)&&!Gt(n)){const t=Gh(n);t&&zh(n,t)}n=Object.getPrototypeOf(n)}}function zh(t,e){let n=null;Object.defineProperty(t,xt,{get:()=>{if(null===n){const a=`ng://${t&&t.name}/ngBaseDef.js`,r=z();n=r.compileBase(_h,a,e)}return n},configurable:!1})}function Gh(t){const e=is().ownPropMetadata(t),n=Vh(t,e,Hh),a=Vh(t,e,Yh);let r,o,i=!1;for(const s in e)e[s].forEach(t=>{const e=t.ngMetadataName;"Input"===e?(r=r||{},r[s]=t.bindingPropertyName?[t.bindingPropertyName,s]:s):"Output"===e?(o=o||{},o[s]=t.bindingPropertyName||s):"HostBinding"!==e&&"HostListener"!==e||(i=!0)});return r||o||n.length||a.length||i?{name:t.name,type:t,inputs:r,outputs:o,viewQueries:n,queries:a,propMetadata:e}:null}function Bh(t,e){return{propertyName:t,predicate:(n=e.selector,"string"==typeof n?n.split(",").map(t=>t.trim()):E(n)),descendants:e.descendants,first:e.first,read:e.read?e.read:null,static:!!e.static};var n}function Vh(t,e,n){const a=[];for(const r in e)if(e.hasOwnProperty(r)){const o=e[r];o.forEach(e=>{if(n(e)){if(!e.selector)throw new Error(`Can't construct a query for the property "${r}" of `+`"${fn(t)}" since the query selector wasn't defined.`);if(o.some(Uh))throw new Error("Cannot combine @Input decorators with query decorators");a.push(Bh(r,e))}})}return a}function Yh(t){const e=t.ngMetadataName;return"ContentChild"===e||"ContentChildren"===e}function Hh(t){const e=t.ngMetadataName;return"ViewChild"===e||"ViewChildren"===e}function Uh(t){return"Input"===t.ngMetadataName}function Wh(t,e){let n=null;Object.defineProperty(t,Ct,{get:()=>{if(null===n){const a=t.name;n=z().compilePipe(_h,`ng:///${a}/ngPipeDef.js`,{type:t,typeArgumentCount:0,name:a,deps:ss(t),pipeName:e.name,pure:void 0===e.pure||e.pure})}return n},configurable:!1})}const Kh=u("Directive",(t={})=>t,void 0,void 0,(t,e)=>ob(t,e)),$h=u("Component",(t={})=>Object.assign({changeDetection:ft.Default},t),Kh,void 0,(t,e)=>rb(t,e)),Zh=u("Pipe",t=>Object.assign({pure:!0},t),void 0,void 0,(t,e)=>ib(t,e)),Jh=p("Input",t=>({bindingPropertyName:t})),Xh=p("Output",t=>({bindingPropertyName:t})),Qh=p("HostBinding",t=>({hostPropertyName:t})),tb=p("HostListener",(t,e)=>({eventName:t,args:e})),eb=Dh,nb=Lh,ab=Wh,rb=zu,ob=zu,ib=zu,sb=u("NgModule",t=>t,void 0,void 0,(t,e)=>lb(t,e)),cb=xh,lb=function(t,e){let n=e&&e.imports||[];e&&e.exports&&(n=[...n,e.exports]),t.ngInjectorDef=w({factory:bs(t,{useClass:t}),providers:e&&e.providers,imports:n})},db=new G("Application Initializer");class ub{constructor(t){this.appInits=t,this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,e)=>{this.resolve=t,this.reject=e})}runInitializers(){if(this.initialized)return;const t=[],e=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let n=0;n<this.appInits.length;n++){const e=this.appInits[n]();Wl(e)&&t.push(e)}Promise.all(t).then(()=>{e()}).catch(t=>{this.reject(t)}),0===t.length&&e(),this.initialized=!0}}const gb=new G("AppId");function fb(){return`${mb()}${mb()}${mb()}`}const pb={provide:gb,useFactory:fb,deps:[]};function mb(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const hb=new G("Platform Initializer"),bb=new G("Platform ID"),yb=new G("appBootstrapListener"),_b=new G("Application Packages Root URL");class Ob{log(t){console.log(t)}warn(t){console.warn(t)}}const vb=new G("LocaleId"),Cb=new G("Translations"),Pb=new G("TranslationsFormat"),Mb=function(){var t={Error:0,Warning:1,Ignore:2};return t[t.Error]="Error",t[t.Warning]="Warning",t[t.Ignore]="Ignore",t}(),xb=!0,wb=!1;class Tb{constructor(t,e){this.ngModuleFactory=t,this.componentFactories=e}}function Sb(){throw new Error("Runtime compiler is not loaded")}const kb=function(t){return new Tm(t)},Ib=Sb,Nb=function(t){return Promise.resolve(kb(t))},Rb=Sb,Ab=function(t){const e=kb(t),n=_n(Bt(t).declarations).reduce((t,e)=>{const n=jt(e);return n&&t.push(new _p(n)),t},[]);return new Tb(e,n)},Eb=Sb,Db=function(t){return Promise.resolve(Ab(t))},Lb=Sb;class qb{constructor(){this.compileModuleSync=Ib,this.compileModuleAsync=Rb,this.compileModuleAndAllComponentsSync=Eb,this.compileModuleAndAllComponentsAsync=Lb}clearCache(){}clearCacheFor(t){}getModuleId(t){}}const jb=new G("compilerOptions");class Fb{}let zb,Gb;function Bb(){const t=F.wtf;return!(!t||(zb=t.trace,!zb)||(Gb=zb.events,0))}function Vb(t,e=null){return Gb.createScope(t,e)}function Yb(t,e){return zb.leaveScope(t,e),e}function Hb(t,e){return zb.beginTimeRange(t,e)}function Ub(t){zb.endTimeRange(t)}const Wb=Bb();function Kb(t,e){return null}const $b=Wb?Vb:(t,e)=>Kb,Zb=Wb?Yb:(t,e)=>e,Jb=Wb?Hb:(t,e)=>null,Xb=Wb?Ub:t=>null,Qb=(()=>Promise.resolve(0))();function ty(t){"undefined"==typeof Zone?Qb.then(()=>{t&&t.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",t)}class ey{constructor({enableLongStackTrace:t=!1}){if(this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Wm(!1),this.onMicrotaskEmpty=new Wm(!1),this.onStable=new Wm(!1),this.onError=new Wm(!1),"undefined"==typeof Zone)throw new Error("In this configuration Angular requires Zone.js");var e;Zone.assertZonePatched(),this._nesting=0,this._outer=this._inner=Zone.current,Zone.wtfZoneSpec&&(this._inner=this._inner.fork(Zone.wtfZoneSpec)),Zone.TaskTrackingZoneSpec&&(this._inner=this._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(this._inner=this._inner.fork(Zone.longStackTraceZoneSpec)),(e=this)._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,n,a,r,o,i)=>{try{return oy(e),t.invokeTask(a,r,o,i)}finally{iy(e)}},onInvoke:(t,n,a,r,o,i,s)=>{try{return oy(e),t.invoke(a,r,o,i,s)}finally{iy(e)}},onHasTask:(t,n,a,r)=>{t.hasTask(a,r),n===a&&("microTask"==r.change?(e.hasPendingMicrotasks=r.microTask,ry(e)):"macroTask"==r.change&&(e.hasPendingMacrotasks=r.macroTask))},onHandleError:(t,n,a,r)=>(t.handleError(a,r),e.runOutsideAngular(()=>e.onError.emit(r)),!1)})}static isInAngularZone(){return!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!ey.isInAngularZone())throw new Error("Expected to be in Angular Zone, but it is not!")}static assertNotInAngularZone(){if(ey.isInAngularZone())throw new Error("Expected to not be in Angular Zone, but it is!")}run(t,e,n){return this._inner.run(t,e,n)}runTask(t,e,n,a){const r=this._inner,o=r.scheduleEventTask("NgZoneEvent: "+a,t,ay,ny,ny);try{return r.runTask(o,e,n)}finally{r.cancelTask(o)}}runGuarded(t,e,n){return this._inner.runGuarded(t,e,n)}runOutsideAngular(t){return this._outer.run(t)}}function ny(){}const ay={};function ry(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 oy(t){t._nesting++,t.isStable&&(t.isStable=!1,t.onUnstable.emit(null))}function iy(t){t._nesting--,ry(t)}class sy{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Wm,this.onMicrotaskEmpty=new Wm,this.onStable=new Wm,this.onError=new Wm}run(t){return t()}runGuarded(t){return t()}runOutsideAngular(t){return t()}runTask(t){return t()}}class cy{constructor(t){this._ngZone=t,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone="undefined"==typeof Zone?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:()=>{ey.assertNotInAngularZone(),ty(()=>{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())ty(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(e=>!e.updateCb||!e.updateCb(t)||(clearTimeout(e.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,e,n){let a=-1;e&&e>0&&(a=setTimeout(()=>{this._callbacks=this._callbacks.filter(t=>t.timeoutId!==a),t(this._didWork,this.getPendingTasks())},e)),this._callbacks.push({doneCb:t,timeoutId:a,updateCb:n})}whenStable(t,e,n){if(n&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/dist/task-tracking.js" loaded?');this.addCallback(t,e,n),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}findProviders(t,e,n){return[]}}class ly{constructor(){this._applications=new Map,fy.addToWindow(this)}registerApplication(t,e){this._applications.set(t,e)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,e=!0){return fy.findTestabilityInTree(this,t,e)}}class dy{addToWindow(t){}findTestabilityInTree(t,e,n){return null}}function uy(t){fy=t}let gy,fy=new dy;function py(t,e,n){const a=new Tm(n);if(0===_c.size)return Promise.resolve(a);const r=function(t){const e=[];return t.forEach(t=>t&&e.push(...t)),e}(t.get(jb,[]).concat(e).map(t=>t.providers));if(0===r.length)return Promise.resolve(a);const o=z(),i=Ls.create({providers:r}).get(o.ResourceLoader);return yc(t=>Promise.resolve(i.get(t))).then(()=>a)}function my(t){return t.isBoundToModule}const hy=new G("AllowMultipleToken");class by{constructor(t,e){this.name=t,this.token=e}}function yy(t){if(gy&&!gy.destroyed&&!gy.injector.get(hy,!1))throw new Error("There can be only one platform. Destroy the previous one to create a new one.");gy=t.get(Py);const e=t.get(hb,null);return e&&e.forEach(t=>t()),gy}function _y(t,e,n=[]){const a=`Platform: ${e}`,r=new G(a);return(e=[])=>{let o=Cy();if(!o||o.injector.get(hy,!1))if(t)t(n.concat(e).concat({provide:r,useValue:!0}));else{const t=n.concat(e).concat({provide:r,useValue:!0});yy(Ls.create({providers:t,name:a}))}return Oy(r)}}function Oy(t){const e=Cy();if(!e)throw new Error("No platform exists!");if(!e.injector.get(t,null))throw new Error("A platform with a different configuration has been created. Please destroy it first.");return e}function vy(){gy&&!gy.destroyed&&gy.destroy()}function Cy(){return gy&&!gy.destroyed?gy:null}class Py{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,e){const n=function(t){let e;return e="noop"===t?new sy:("zone.js"===t?void 0:t)||new ey({enableLongStackTrace:za()}),e}(e?e.ngZone:void 0),a=[{provide:ey,useValue:n}];return n.run(()=>{const e=Ls.create({providers:a,parent:this.injector,name:t.moduleType.name}),r=t.create(e),o=r.injector.get(Ta,null);if(!o)throw new Error("No ErrorHandler. Is platform module (BrowserModule) included?");return wb&&_m(r.injector.get(vb,Tp)||Tp),r.onDestroy(()=>wy(this._modules,r)),n.runOutsideAngular(()=>n.onError.subscribe({next:t=>{o.handleError(t)}})),function(t,e,n){try{const a=n();return Wl(a)?a.catch(n=>{throw e.runOutsideAngular(()=>t.handleError(n)),n}):a}catch(a){throw e.runOutsideAngular(()=>t.handleError(a)),a}}(o,n,()=>{const t=r.injector.get(ub);return t.runInitializers(),t.donePromise.then(()=>(this._moduleDoBootstrap(r),r))})})}bootstrapModule(t,e=[]){const n=My({},e);return function(t,e,n){return t.get(Fb).createCompiler([e]).compileModuleAsync(n)}(this.injector,n,t).then(t=>this.bootstrapModuleFactory(t,n))}_moduleDoBootstrap(t){const e=t.injector.get(xy);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(t=>e.bootstrap(t));else{if(!t.instance.ngDoBootstrap)throw new Error(`The module ${N(t.instance.constructor)} was bootstrapped, but it does not declare "@NgModule.bootstrap" components nor a "ngDoBootstrap" method. `+"Please define one of these.");t.instance.ngDoBootstrap(e)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new Error("The platform has already been destroyed!");this._modules.slice().forEach(t=>t.destroy()),this._destroyListeners.forEach(t=>t()),this._destroyed=!0}get destroyed(){return this._destroyed}}function My(t,e){return Array.isArray(e)?e.reduce(My,t):Object.assign({},t,e)}let xy=(()=>{class t{constructor(t,e,n,a,r,c){this._zone=t,this._console=e,this._injector=n,this._exceptionHandler=a,this._componentFactoryResolver=r,this._initStatus=c,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._enforceNoNewChanges=!1,this._stable=!0,this.componentTypes=[],this.components=[],this._enforceNoNewChanges=za(),this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const l=new o.a(t=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{t.next(this._stable),t.complete()})}),d=new o.a(t=>{let e;this._zone.runOutsideAngular(()=>{e=this._zone.onStable.subscribe(()=>{ey.assertNotInAngularZone(),ty(()=>{this._stable||this._zone.hasPendingMacrotasks||this._zone.hasPendingMicrotasks||(this._stable=!0,t.next(!0))})})});const n=this._zone.onUnstable.subscribe(()=>{ey.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{t.next(!1)}))});return()=>{e.unsubscribe(),n.unsubscribe()}});this.isStable=Object(i.a)(l,d.pipe(Object(s.a)()))}bootstrap(t,e){if(!this._initStatus.done)throw new Error("Cannot bootstrap as there are still asynchronous initializers running. Bootstrap components in the `ngDoBootstrap` method of the root module.");let n;n=t instanceof Au?t:this._componentFactoryResolver.resolveComponentFactory(t),this.componentTypes.push(n.componentType);const a=n instanceof Fu?null:this._injector.get(ot),r=n.create(Ls.NULL,[],e||n.selector,a);r.onDestroy(()=>{this._unloadComponent(r)});const o=r.injector.get(cy,null);return o&&r.injector.get(ly).registerApplication(r.location.nativeElement,o),this._loadComponent(r),za()&&this._console.log("Angular is running in the development mode. Call enableProdMode() to enable the production mode."),r}tick(){if(this._runningTick)throw new Error("ApplicationRef.tick is called recursively");const e=t._tickScope();try{this._runningTick=!0;for(let t of this._views)t.detectChanges();if(this._enforceNoNewChanges)for(let t of this._views)t.checkNoChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1,Zb(e)}}attachView(t){const e=t;this._views.push(e),e.attachToAppRef(this)}detachView(t){const e=t;wy(this._views,e),e.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(yb,[]).concat(this._bootstrapListeners).forEach(e=>e(t))}_unloadComponent(t){this.detachView(t.hostView),wy(this.components,t)}ngOnDestroy(){this._views.slice().forEach(t=>t.destroy())}get viewCount(){return this._views.length}}return t._tickScope=$b("ApplicationRef#tick()"),t})();function wy(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}class Ty{}function Sy(t){const e=Mm(t);if(!e)throw Ny(t);return e}function ky(t){const e=Mm(t);if(!e)throw Ny(t);return new Tm(e)}const Iy=Sy;function Ny(t){return new Error(`No module with ID ${t} loaded`)}class Ry{}const Ay={factoryPathPrefix:"",factoryPathSuffix:".ngfactory"};class Ey{constructor(t,e){this._compiler=t,this._config=e||Ay}load(t){return!wb&&this._compiler instanceof qb?this.loadFactory(t):this.loadAndCompile(t)}loadAndCompile(t){let[e,a]=t.split("#");return void 0===a&&(a="default"),n("crnd")(e).then(t=>t[a]).then(t=>Dy(t,e,a)).then(t=>this._compiler.compileModuleAsync(t))}loadFactory(t){let[e,a]=t.split("#"),r="NgFactory";return void 0===a&&(a="default",r=""),n("crnd")(this._config.factoryPathPrefix+e+this._config.factoryPathSuffix).then(t=>t[a+r]).then(t=>Dy(t,e,a))}}function Dy(t,e,n){if(!t)throw new Error(`Cannot find '${n}' in '${e}'`);return t}class Ly extends Wi{}class qy extends Ly{}class jy{constructor(t,e){this.name=t,this.callback=e}}class Fy{constructor(t,e,n){this.listeners=[],this.parent=null,this._debugContext=n,this.nativeNode=t,e&&e instanceof zy&&e.addChild(this)}get injector(){return this._debugContext.injector}get componentInstance(){return this._debugContext.component}get context(){return this._debugContext.context}get references(){return this._debugContext.references}get providerTokens(){return this._debugContext.providerTokens}}class zy extends Fy{constructor(t,e,n){super(t,e,n),this.properties={},this.attributes={},this.classes={},this.styles={},this.childNodes=[],this.nativeElement=t}addChild(t){t&&(this.childNodes.push(t),t.parent=this)}removeChild(t){const e=this.childNodes.indexOf(t);-1!==e&&(t.parent=null,this.childNodes.splice(e,1))}insertChildrenAfter(t,e){const n=this.childNodes.indexOf(t);-1!==n&&(this.childNodes.splice(n+1,0,...e),e.forEach(e=>{e.parent&&e.parent.removeChild(e),t.parent=this}))}insertBefore(t,e){const n=this.childNodes.indexOf(t);-1===n?this.addChild(e):(e.parent&&e.parent.removeChild(e),e.parent=this,this.childNodes.splice(n,0,e))}query(t){return this.queryAll(t)[0]||null}queryAll(t){const e=[];return function t(e,n,a){e.childNodes.forEach(e=>{e instanceof zy&&(n(e)&&a.push(e),t(e,n,a))})}(this,t,e),e}queryAllNodes(t){const e=[];return function t(e,n,a){e instanceof zy&&e.childNodes.forEach(e=>{n(e)&&a.push(e),e instanceof zy&&t(e,n,a)})}(this,t,e),e}get children(){return this.childNodes.filter(t=>t instanceof zy)}triggerEventHandler(t,e){this.listeners.forEach(n=>{n.name==t&&n.callback(e)})}}function Gy(t){return t.map(t=>t.nativeElement)}class By{constructor(t){this.nativeNode=t}get parent(){const t=this.nativeNode.parentNode;return t?new Vy(t):null}get injector(){return Xd(this.nativeNode)}get componentInstance(){const t=this.nativeNode;return t&&(Kd(t)||Zd(t))}get context(){return Kd(this.nativeNode)||$d(this.nativeNode)}get listeners(){return ru(this.nativeNode).filter(au)}get references(){return function(t){const e=tu(t);return void 0===e.localRefs&&(e.localRefs=function(t,e){const n=t[1].data[e];if(n&&n.localNames){const e={};let a=n.index+1;for(let r=0;r<n.localNames.length;r+=2)e[n.localNames[r]]=t[a],a++;return e}return null}(e.lView,e.nodeIndex)),e.localRefs||{}}(this.nativeNode)}get providerTokens(){return function(t){const e=tu(t,!1);if(!e)return[];const n=e.lView[1],a=n.data[e.nodeIndex],r=[],o=a.directiveEnd;for(let s=65535&a.providerIndexes;s<o;s++){let t=n.data[s];void 0!==(i=t).type&&void 0!==i.template&&void 0!==i.declaredInputs&&(t=t.type),r.push(t)}var i;return r}(this.nativeNode)}}class Vy extends By{constructor(t){super(t)}get nativeElement(){return this.nativeNode.nodeType==Node.ELEMENT_NODE?this.nativeNode:null}get name(){return this.nativeElement.nodeName}get properties(){const t=tu(this.nativeNode),e=t.lView,n=e[1].data,a=n[t.nodeIndex],r=function(t,e,n){const a={};let r=function(t,e){let n=t-1,a=e[n];for(;"string"==typeof a&&!yn(a);)a=e[--n];return n+1}(t.propertyMetadataStartIndex,n);for(;r<t.propertyMetadataEndIndex;){let t,o=n[r];for(;!yn(o);)t=(t||"")+gn(e[r])+n[r],o=n[++r];t=void 0===t?e[r]:t+=e[r];const i=o.split("�"),s=i[0];s&&(a[s]=i[1]&&i[2]?i[1]+t+i[2]:t),r++}return a}(a,e,n),o=function(t,e,n){const a={};let r=t.directiveEnd,o=n[r];for(;"string"==typeof o;)a[o.split("�")[0]]=e[r],o=n[++r];return a}(a,e,n),i=function(t){const e=t.classes;let n="";for(const a of Object.keys(e))e[a]&&(n=n?n+` ${a}`:a);return n}(this),s=Object.assign({},r,o);return i&&(s.className=s.className?s.className+` ${i}`:i),s}get attributes(){const t={},e=this.nativeElement;if(!e)return t;const n=tu(e),a=n.lView[1].data[n.nodeIndex].attrs,r=[];if(a){let e=0;for(;e<a.length;){const n=a[e];if("string"!=typeof n)break;t[n]=a[e+1],r.push(n.toLowerCase()),e+=2}}const o=e.attributes;for(let i=0;i<o.length;i++){const e=o[i];-1===r.indexOf(e.name)&&(t[e.name]=e.value)}return t}get styles(){return Yy(this.nativeElement,!1)}get classes(){return Yy(this.nativeElement,!0)}get childNodes(){const t=this.nativeNode.childNodes,e=[];for(let n=0;n<t.length;n++)e.push(Zy(t[n]));return e}get children(){const t=this.nativeElement;if(!t)return[];const e=t.children,n=[];for(let a=0;a<e.length;a++)n.push(Zy(e[a]));return n}query(t){return this.queryAll(t)[0]||null}queryAll(t){const e=[];return Hy(this,t,e,!0),e}queryAllNodes(t){const e=[];return Hy(this,t,e,!1),e}triggerEventHandler(t,e){this.listeners.forEach(n=>{n.name===t&&n.callback(e)})}}function Yy(t,e){if(t){const n=nu(t),a=n.lView,r=a[1].data[n.nodeIndex];return e?Fn(r.classes)?new ho(r.classes,a,!0).values:mo(r.classes):Fn(r.styles)?new ho(r.styles,a,!1).values:mo(r.styles)}return{}}function Hy(t,e,n,a){const r=tu(t.nativeNode);Uy(r.lView[1].data[r.nodeIndex],r.lView,e,n,a,t.nativeNode)}function Uy(t,e,n,a,r,o){const i=de(t,e);if(3===t.type||4===t.type){if(Ky(i,n,a,r,o),Ut(t)){const i=fe(t.index,e);i&&i[1].firstChild&&Uy(i[1].firstChild,i,n,a,r,o)}else t.child&&Uy(t.child,e,n,a,r,o),i&&function t(e,n,a,r){const o=e.childNodes,i=o.length;for(let s=0;s<i;s++){const e=o[s],i=Jy(e);i&&(r&&i instanceof Vy&&n(i)&&-1===a.indexOf(i)?a.push(i):!r&&n(i)&&-1===a.indexOf(i)&&a.push(i),t(e,n,a,r))}}(i,n,a,r);const s=e[t.index];Yt(s)&&Wy(s,n,a,r,o)}else if(0===t.type){const i=e[t.index];Ky(i[7],n,a,r,o),Wy(i,n,a,r,o)}else if(1===t.type){const i=aa(e),s=i[6].projection[t.projection];if(Array.isArray(s))for(let t of s)Ky(t,n,a,r,o);else if(s){const t=i[3];Uy(t[1].data[s.index],t,n,a,r,o)}}else t.child&&Uy(t.child,e,n,a,r,o);if(o!==i){const i=2&t.flags?t.projectionNext:t.next;i&&Uy(i,e,n,a,r,o)}}function Wy(t,e,n,a,r){for(let o=9;o<t.length;o++){const i=t[o];Uy(i[1].node,i,e,n,a,r)}}function Ky(t,e,n,a,r){if(r!==t){const r=Jy(t);if(!r)return;a&&r instanceof Vy&&e(r)&&-1===n.indexOf(r)?n.push(r):!a&&e(r)&&-1===n.indexOf(r)&&n.push(r)}}const $y=new Map;function Zy(t){return t instanceof Node?(t.hasOwnProperty("__ng_debug__")||(t.__ng_debug__=t.nodeType==Node.ELEMENT_NODE?new Vy(t):new By(t)),t.__ng_debug__):null}const Jy=function(t){return $y.get(t)||null};function Xy(t){$y.set(t.nativeNode,t)}const Qy=Fy,t_=zy,e_=_y(null,"core",[{provide:bb,useValue:"unknown"},{provide:Py,deps:[Ls]},{provide:ly,deps:[]},{provide:Ob,deps:[]}]);function n_(){return pg}function a_(){return mg}function r_(t){return t?(wb&&_m(t),t):Tp}const o_=[{provide:xy,useClass:xy,deps:[ey,Ob,Ls,Ta,qu,ub]},{provide:yp,deps:[ey],useFactory:i_},{provide:ub,useClass:ub,deps:[[new h,db]]},{provide:qb,useClass:qb,deps:[]},pb,{provide:ug,useFactory:n_,deps:[]},{provide:gg,useFactory:a_,deps:[]},{provide:vb,useFactory:r_,deps:[[new m(vb),new h,new y]]}];function i_(t){let e=[];return t.onStable.subscribe(()=>{for(;e.length;)e.pop()()}),function(t){e.push(t)}}class s_{constructor(t){}}function c_(t,e,n,a,r,o){t|=1;const{matchedQueries:i,references:s,matchedQueryIds:c}=Xg(e);return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,flags:t,checkIndex:-1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:i,matchedQueryIds:c,references:s,ngContentIndex:n,childCount:a,bindings:[],bindingFlags:0,outputs:[],element:{ns:null,name:null,attrs:null,template:o?nf(o):null,componentProvider:null,componentView:null,componentRendererType:null,publicProviders:null,allProviders:null,handleEvent:r||Eg},provider:null,text:null,query:null,ngContent:null}}function l_(t,e,n,a,r,o,i=[],s,c,l,d,u){l||(l=Eg);const{matchedQueries:g,references:f,matchedQueryIds:p}=Xg(n);let m=null,h=null;o&&([m,h]=df(o)),s=s||[];const b=new Array(s.length);for(let O=0;O<s.length;O++){const[t,e,n]=s[O],[a,r]=df(e);let o=void 0,i=void 0;switch(15&t){case 4:i=n;break;case 1:case 8:o=n}b[O]={flags:t,ns:a,name:r,nonMinifiedName:r,securityContext:o,suffix:i}}c=c||[];const y=new Array(c.length);for(let O=0;O<c.length;O++){const[t,e]=c[O];y[O]={type:0,target:t,eventName:e,propName:null}}const _=(i=i||[]).map(([t,e])=>{const[n,a]=df(t);return[n,a,e]});return u=function(t){if(t&&"$$undefined"===t.id){const e=null!=t.encapsulation&&t.encapsulation!==ht.None||t.styles.length||Object.keys(t.data).length;t.id=e?`c${Fg++}`:"$$empty"}return t&&"$$empty"===t.id&&(t=null),t||null}(u),d&&(e|=33554432),{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:e|=1,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:g,matchedQueryIds:p,references:f,ngContentIndex:a,childCount:r,bindings:b,bindingFlags:uf(b),outputs:y,element:{ns:m,name:h,attrs:_,template:null,componentProvider:null,componentView:d||null,componentRendererType:u,publicProviders:null,allProviders:null,handleEvent:l||Eg},provider:null,text:null,query:null,ngContent:null}}function d_(t,e,n){const a=n.element,r=t.root.selectorOrNode,o=t.renderer;let i;if(t.parent||!r){i=a.name?o.createElement(a.name,a.ns):o.createComment("");const r=tf(t,e,n);r&&o.appendChild(r,i)}else i=o.selectRootElement(r,!!a.componentRendererType&&a.componentRendererType.encapsulation===ht.ShadowDom);if(a.attrs)for(let s=0;s<a.attrs.length;s++){const[t,e,n]=a.attrs[s];o.setAttribute(i,e,n,t)}return i}function u_(t,e,n,a){for(let i=0;i<n.outputs.length;i++){const s=n.outputs[i],c=g_(t,n.nodeIndex,(o=s.eventName,(r=s.target)?`${r}:${o}`:o));let l=s.target,d=t;"component"===s.target&&(l=null,d=e);const u=d.renderer.listen(l||a,s.eventName,c);t.disposables[n.outputIndex+i]=u}var r,o}function g_(t,e,n){return a=>Hg(t,e,n,a)}function f_(t,e,n,a){if(!Gg(t,e,n,a))return!1;const r=e.bindings[n],o=Sg(t,e.nodeIndex),i=o.renderElement,s=r.name;switch(15&r.flags){case 1:!function(t,e,n,a,r,o){const i=e.securityContext;let s=i?t.root.sanitizer.sanitize(i,o):o;s=null!=s?s.toString():null;const c=t.renderer;null!=o?c.setAttribute(n,r,s,a):c.removeAttribute(n,r,a)}(t,r,i,r.ns,s,a);break;case 2:!function(t,e,n,a){const r=t.renderer;a?r.addClass(e,n):r.removeClass(e,n)}(t,i,s,a);break;case 4:!function(t,e,n,a,r){let o=t.root.sanitizer.sanitize(ur.STYLE,r);if(null!=o){o=o.toString();const t=e.suffix;null!=t&&(o+=t)}else o=null;const i=t.renderer;null!=o?i.setStyle(n,a,o):i.removeStyle(n,a)}(t,r,i,s,a);break;case 8:!function(t,e,n,a,r){const o=e.securityContext;let i=o?t.root.sanitizer.sanitize(o,r):r;t.renderer.setProperty(n,a,i)}(33554432&e.flags&&32&r.flags?o.componentView:t,r,i,s,a)}return!0}function p_(t,e,n){let a=[];for(let r in n)a.push({propName:r,bindingType:n[r]});return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,ngContentIndex:-1,matchedQueries:{},matchedQueryIds:0,references:{},childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:{id:e,filterId:Jg(e),bindings:a},ngContent:null}}function m_(t){const e=t.def.nodeMatchedQueries;for(;t.parent&&Zg(t);){let n=t.parentNodeDef;t=t.parent;const a=n.nodeIndex+n.childCount;for(let r=0;r<=a;r++){const a=t.def.nodes[r];67108864&a.flags&&536870912&a.flags&&(a.query.filterId&e)===a.query.filterId&&Ng(t,r).setDirty(),!(1&a.flags&&r+a.childCount<n.nodeIndex)&&67108864&a.childFlags&&536870912&a.childFlags||(r+=a.childCount)}}if(134217728&t.def.nodeFlags)for(let n=0;n<t.def.nodes.length;n++){const e=t.def.nodes[n];134217728&e.flags&&536870912&e.flags&&Ng(t,n).setDirty(),n+=e.childCount}}function h_(t,e){const n=Ng(t,e.nodeIndex);if(!n.dirty)return;let a,r=void 0;if(67108864&e.flags){const n=e.parent.parent;r=b_(t,n.nodeIndex,n.nodeIndex+n.childCount,e.query,[]),a=kg(t,e.parent.nodeIndex).instance}else 134217728&e.flags&&(r=b_(t,0,t.def.nodes.length-1,e.query,[]),a=t.component);n.reset(r);const o=e.query.bindings;let i=!1;for(let s=0;s<o.length;s++){const t=o[s];let e;switch(t.bindingType){case 0:e=n.first;break;case 1:e=n,i=!0}a[t.propName]=e}i&&n.notifyOnChanges()}function b_(t,e,n,a,r){for(let o=e;o<=n;o++){const e=t.def.nodes[o],n=e.matchedQueries[a.id];if(null!=n&&r.push(y_(t,e,n)),1&e.flags&&e.element.template&&(e.element.template.nodeMatchedQueries&a.filterId)===a.filterId){const n=Sg(t,o);if((e.childMatchedQueries&a.filterId)===a.filterId&&(b_(t,o+1,o+e.childCount,a,r),o+=e.childCount),16777216&e.flags){const t=n.viewContainer._embeddedViews;for(let e=0;e<t.length;e++){const o=t[e],i=Ug(o);i&&i===n&&b_(o,0,o.def.nodes.length-1,a,r)}}const i=n.template._projectedViews;if(i)for(let t=0;t<i.length;t++){const e=i[t];b_(e,0,e.def.nodes.length-1,a,r)}}(e.childMatchedQueries&a.filterId)!==a.filterId&&(o+=e.childCount)}return r}function y_(t,e,n){if(null!=n)switch(n){case 1:return Sg(t,e.nodeIndex).renderElement;case 0:return new Gu(Sg(t,e.nodeIndex).renderElement);case 2:return Sg(t,e.nodeIndex).template;case 3:return Sg(t,e.nodeIndex).viewContainer;case 4:return kg(t,e.nodeIndex).instance}}function __(t,e){return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:-1,flags:8,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:t,childCount:0,bindings:[],bindingFlags:0,outputs:[],element:null,provider:null,text:null,query:null,ngContent:{index:e}}}function O_(t,e,n){const a=tf(t,e,n);a&&of(t,n.ngContent.index,1,a,null,void 0)}function v_(t,e){return M_(128,t,new Array(e+1))}function C_(t,e){return M_(32,t,new Array(e))}function P_(t,e){const n=Object.keys(e),a=n.length,r=new Array(a);for(let o=0;o<a;o++){const t=n[o];r[e[t]]=t}return M_(64,t,r)}function M_(t,e,n){const a=new Array(n.length);for(let r=0;r<n.length;r++){const t=n[r];a[r]={flags:8,name:t,ns:null,nonMinifiedName:t,securityContext:null,suffix:null}}return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:e,flags:t,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:-1,childCount:0,bindings:a,bindingFlags:uf(a),outputs:[],element:null,provider:null,text:null,query:null,ngContent:null}}function x_(t,e,n){const a=new Array(n.length-1);for(let r=1;r<n.length;r++)a[r-1]={flags:8,name:null,ns:null,nonMinifiedName:null,securityContext:null,suffix:n[r]};return{nodeIndex:-1,parent:null,renderParent:null,bindingIndex:-1,outputIndex:-1,checkIndex:t,flags:2,childFlags:0,directChildFlags:0,childMatchedQueries:0,matchedQueries:{},matchedQueryIds:0,references:{},ngContentIndex:e,childCount:0,bindings:a,bindingFlags:8,outputs:[],element:null,provider:null,text:{prefix:n[0]},query:null,ngContent:null}}function w_(t,e,n){let a;const r=t.renderer;a=r.createText(n.text.prefix);const o=tf(t,e,n);return o&&r.appendChild(o,a),{renderText:a}}function T_(t,e){return(null!=t?t.toString():"")+e.suffix}function S_(t,e,n,a){let r=0,o=0,i=0,s=0,c=0,l=null,d=null,u=!1,g=!1,f=null;for(let p=0;p<e.length;p++){const t=e[p];if(t.nodeIndex=p,t.parent=l,t.bindingIndex=r,t.outputIndex=o,t.renderParent=d,i|=t.flags,c|=t.matchedQueryIds,t.element){const e=t.element;e.publicProviders=l?l.element.publicProviders:Object.create(null),e.allProviders=e.publicProviders,u=!1,g=!1,t.element.template&&(c|=t.element.template.nodeMatchedQueries)}if(I_(l,t,e.length),r+=t.bindings.length,o+=t.outputs.length,!d&&3&t.flags&&(f=t),20224&t.flags){u||(u=!0,l.element.publicProviders=Object.create(l.element.publicProviders),l.element.allProviders=l.element.publicProviders);const e=0!=(32768&t.flags);0==(8192&t.flags)||e?l.element.publicProviders[Lg(t.provider.token)]=t:(g||(g=!0,l.element.allProviders=Object.create(l.element.publicProviders)),l.element.allProviders[Lg(t.provider.token)]=t),e&&(l.element.componentProvider=t)}if(l?(l.childFlags|=t.flags,l.directChildFlags|=t.flags,l.childMatchedQueries|=t.matchedQueryIds,t.element&&t.element.template&&(l.childMatchedQueries|=t.element.template.nodeMatchedQueries)):s|=t.flags,t.childCount>0)l=t,k_(t)||(d=t);else for(;l&&p===l.nodeIndex+l.childCount;){const t=l.parent;t&&(t.childFlags|=l.childFlags,t.childMatchedQueries|=l.childMatchedQueries),l=t,d=l&&k_(l)?l.renderParent:l}}return{factory:null,nodeFlags:i,rootNodeFlags:s,nodeMatchedQueries:c,flags:t,nodes:e,updateDirectives:n||Eg,updateRenderer:a||Eg,handleEvent:(t,n,a,r)=>e[n].element.handleEvent(t,a,r),bindingCount:r,outputCount:o,lastRenderRootNode:f}}function k_(t){return 0!=(1&t.flags)&&null===t.element.name}function I_(t,e,n){const a=e.element&&e.element.template;if(a){if(!a.lastRenderRootNode)throw new Error("Illegal State: Embedded templates without nodes are not allowed!");if(a.lastRenderRootNode&&16777216&a.lastRenderRootNode.flags)throw new Error(`Illegal State: Last root node of a template can't have embedded views, at index ${e.nodeIndex}!`)}if(20224&e.flags&&0==(1&(t?t.flags:0)))throw new Error(`Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index ${e.nodeIndex}!`);if(e.query){if(67108864&e.flags&&(!t||0==(16384&t.flags)))throw new Error(`Illegal State: Content Query nodes need to be children of directives, at index ${e.nodeIndex}!`);if(134217728&e.flags&&t)throw new Error(`Illegal State: View Query nodes have to be top level nodes, at index ${e.nodeIndex}!`)}if(e.childCount){const a=t?t.nodeIndex+t.childCount:n-1;if(e.nodeIndex<=a&&e.nodeIndex+e.childCount>a)throw new Error(`Illegal State: childCount of node leads outside of parent, at index ${e.nodeIndex}!`)}}function N_(t,e,n,a){const r=E_(t.root,t.renderer,t,e,n);return D_(r,t.component,a),L_(r),r}function R_(t,e,n){const a=E_(t,t.renderer,null,null,e);return D_(a,n,n),L_(a),a}function A_(t,e,n,a){const r=e.element.componentRendererType;let o;return o=r?t.root.rendererFactory.createRenderer(a,r):t.root.renderer,E_(t.root,o,t,e.element.componentProvider,n)}function E_(t,e,n,a,r){const o=new Array(r.nodes.length),i=r.outputCount?new Array(r.outputCount):null;return{def:r,parent:n,viewContainerParent:null,parentNodeDef:a,context:null,component:null,nodes:o,state:13,root:t,renderer:e,oldValues:new Array(r.bindingCount),disposables:i,initIndex:-1}}function D_(t,e,n){t.component=e,t.context=n}function L_(t){let e;$g(t)&&(e=Sg(t.parent,t.parentNodeDef.parent.nodeIndex).renderElement);const n=t.def,a=t.nodes;for(let r=0;r<n.nodes.length;r++){const o=n.nodes[r];let i;switch(Ag.setCurrentNode(t,r),201347067&o.flags){case 1:const n=d_(t,e,o);let s=void 0;if(33554432&o.flags){const e=nf(o.element.componentView);s=Ag.createComponentView(t,o,e,n)}u_(t,s,o,n),i={renderElement:n,componentView:s,viewContainer:null,template:o.element.template?qf(t,o):void 0},16777216&o.flags&&(i.viewContainer=Af(t,o,i));break;case 2:i=w_(t,e,o);break;case 512:case 1024:case 2048:case 256:i=a[r],i||4096&o.flags||(i={instance:rp(t,o)});break;case 16:i={instance:op(t,o)};break;case 16384:i=a[r],i||(i={instance:ip(t,o)}),32768&o.flags&&D_(Sg(t,o.parent.nodeIndex).componentView,i.instance,i.instance);break;case 32:case 64:case 128:i={value:void 0};break;case 67108864:case 134217728:i=new $m;break;case 8:O_(t,e,o),i=void 0}a[r]=i}H_(t,Y_.CreateViewNodes),$_(t,201326592,268435456,0)}function q_(t){z_(t),Ag.updateDirectives(t,1),U_(t,Y_.CheckNoChanges),Ag.updateRenderer(t,1),H_(t,Y_.CheckNoChanges),t.state&=-97}function j_(t){1&t.state?(t.state&=-2,t.state|=2):t.state&=-3,xg(t,0,256),z_(t),Ag.updateDirectives(t,0),U_(t,Y_.CheckAndUpdate),$_(t,67108864,536870912,0);let e=xg(t,256,512);pp(t,2097152|(e?1048576:0)),Ag.updateRenderer(t,0),H_(t,Y_.CheckAndUpdate),$_(t,134217728,536870912,0),e=xg(t,512,768),pp(t,8388608|(e?4194304:0)),2&t.def.flags&&(t.state&=-9),t.state&=-97,xg(t,768,1024)}function F_(t,e,n,a,r,o,i,s,c,l,d,u,g){return 0===n?function(t,e,n,a,r,o,i,s,c,l,d,u){switch(201347067&e.flags){case 1:return function(t,e,n,a,r,o,i,s,c,l,d,u){const g=e.bindings.length;let f=!1;return g>0&&f_(t,e,0,n)&&(f=!0),g>1&&f_(t,e,1,a)&&(f=!0),g>2&&f_(t,e,2,r)&&(f=!0),g>3&&f_(t,e,3,o)&&(f=!0),g>4&&f_(t,e,4,i)&&(f=!0),g>5&&f_(t,e,5,s)&&(f=!0),g>6&&f_(t,e,6,c)&&(f=!0),g>7&&f_(t,e,7,l)&&(f=!0),g>8&&f_(t,e,8,d)&&(f=!0),g>9&&f_(t,e,9,u)&&(f=!0),f}(t,e,n,a,r,o,i,s,c,l,d,u);case 2:return function(t,e,n,a,r,o,i,s,c,l,d,u){let g=!1;const f=e.bindings,p=f.length;if(p>0&&Gg(t,e,0,n)&&(g=!0),p>1&&Gg(t,e,1,a)&&(g=!0),p>2&&Gg(t,e,2,r)&&(g=!0),p>3&&Gg(t,e,3,o)&&(g=!0),p>4&&Gg(t,e,4,i)&&(g=!0),p>5&&Gg(t,e,5,s)&&(g=!0),p>6&&Gg(t,e,6,c)&&(g=!0),p>7&&Gg(t,e,7,l)&&(g=!0),p>8&&Gg(t,e,8,d)&&(g=!0),p>9&&Gg(t,e,9,u)&&(g=!0),g){let g=e.text.prefix;p>0&&(g+=T_(n,f[0])),p>1&&(g+=T_(a,f[1])),p>2&&(g+=T_(r,f[2])),p>3&&(g+=T_(o,f[3])),p>4&&(g+=T_(i,f[4])),p>5&&(g+=T_(s,f[5])),p>6&&(g+=T_(c,f[6])),p>7&&(g+=T_(l,f[7])),p>8&&(g+=T_(d,f[8])),p>9&&(g+=T_(u,f[9]));const m=Tg(t,e.nodeIndex).renderText;t.renderer.setValue(m,g)}return g}(t,e,n,a,r,o,i,s,c,l,d,u);case 16384:return function(t,e,n,a,r,o,i,s,c,l,d,u){const g=kg(t,e.nodeIndex),f=g.instance;let p=!1,m=void 0;const h=e.bindings.length;return h>0&&zg(t,e,0,n)&&(p=!0,m=fp(t,g,e,0,n,m)),h>1&&zg(t,e,1,a)&&(p=!0,m=fp(t,g,e,1,a,m)),h>2&&zg(t,e,2,r)&&(p=!0,m=fp(t,g,e,2,r,m)),h>3&&zg(t,e,3,o)&&(p=!0,m=fp(t,g,e,3,o,m)),h>4&&zg(t,e,4,i)&&(p=!0,m=fp(t,g,e,4,i,m)),h>5&&zg(t,e,5,s)&&(p=!0,m=fp(t,g,e,5,s,m)),h>6&&zg(t,e,6,c)&&(p=!0,m=fp(t,g,e,6,c,m)),h>7&&zg(t,e,7,l)&&(p=!0,m=fp(t,g,e,7,l,m)),h>8&&zg(t,e,8,d)&&(p=!0,m=fp(t,g,e,8,d,m)),h>9&&zg(t,e,9,u)&&(p=!0,m=fp(t,g,e,9,u,m)),m&&f.ngOnChanges(m),65536&e.flags&&wg(t,256,e.nodeIndex)&&f.ngOnInit(),262144&e.flags&&f.ngDoCheck(),p}(t,e,n,a,r,o,i,s,c,l,d,u);case 32:case 64:case 128:return function(t,e,n,a,r,o,i,s,c,l,d,u){const g=e.bindings;let f=!1;const p=g.length;if(p>0&&Gg(t,e,0,n)&&(f=!0),p>1&&Gg(t,e,1,a)&&(f=!0),p>2&&Gg(t,e,2,r)&&(f=!0),p>3&&Gg(t,e,3,o)&&(f=!0),p>4&&Gg(t,e,4,i)&&(f=!0),p>5&&Gg(t,e,5,s)&&(f=!0),p>6&&Gg(t,e,6,c)&&(f=!0),p>7&&Gg(t,e,7,l)&&(f=!0),p>8&&Gg(t,e,8,d)&&(f=!0),p>9&&Gg(t,e,9,u)&&(f=!0),f){const f=Ig(t,e.nodeIndex);let m;switch(201347067&e.flags){case 32:m=new Array(g.length),p>0&&(m[0]=n),p>1&&(m[1]=a),p>2&&(m[2]=r),p>3&&(m[3]=o),p>4&&(m[4]=i),p>5&&(m[5]=s),p>6&&(m[6]=c),p>7&&(m[7]=l),p>8&&(m[8]=d),p>9&&(m[9]=u);break;case 64:m={},p>0&&(m[g[0].name]=n),p>1&&(m[g[1].name]=a),p>2&&(m[g[2].name]=r),p>3&&(m[g[3].name]=o),p>4&&(m[g[4].name]=i),p>5&&(m[g[5].name]=s),p>6&&(m[g[6].name]=c),p>7&&(m[g[7].name]=l),p>8&&(m[g[8].name]=d),p>9&&(m[g[9].name]=u);break;case 128:const t=n;switch(p){case 1:m=t.transform(n);break;case 2:m=t.transform(a);break;case 3:m=t.transform(a,r);break;case 4:m=t.transform(a,r,o);break;case 5:m=t.transform(a,r,o,i);break;case 6:m=t.transform(a,r,o,i,s);break;case 7:m=t.transform(a,r,o,i,s,c);break;case 8:m=t.transform(a,r,o,i,s,c,l);break;case 9:m=t.transform(a,r,o,i,s,c,l,d);break;case 10:m=t.transform(a,r,o,i,s,c,l,d,u)}}f.value=m}return f}(t,e,n,a,r,o,i,s,c,l,d,u);default:throw"unreachable"}}(t,e,a,r,o,i,s,c,l,d,u,g):function(t,e,n){switch(201347067&e.flags){case 1:return function(t,e,n){let a=!1;for(let r=0;r<n.length;r++)f_(t,e,r,n[r])&&(a=!0);return a}(t,e,n);case 2:return function(t,e,n){const a=e.bindings;let r=!1;for(let o=0;o<n.length;o++)Gg(t,e,o,n[o])&&(r=!0);if(r){let r="";for(let t=0;t<n.length;t++)r+=T_(n[t],a[t]);r=e.text.prefix+r;const o=Tg(t,e.nodeIndex).renderText;t.renderer.setValue(o,r)}return r}(t,e,n);case 16384:return function(t,e,n){const a=kg(t,e.nodeIndex),r=a.instance;let o=!1,i=void 0;for(let s=0;s<n.length;s++)zg(t,e,s,n[s])&&(o=!0,i=fp(t,a,e,s,n[s],i));return i&&r.ngOnChanges(i),65536&e.flags&&wg(t,256,e.nodeIndex)&&r.ngOnInit(),262144&e.flags&&r.ngDoCheck(),o}(t,e,n);case 32:case 64:case 128:return function(t,e,n){const a=e.bindings;let r=!1;for(let o=0;o<n.length;o++)Gg(t,e,o,n[o])&&(r=!0);if(r){const r=Ig(t,e.nodeIndex);let o;switch(201347067&e.flags){case 32:o=n;break;case 64:o={};for(let r=0;r<n.length;r++)o[a[r].name]=n[r];break;case 128:const t=n[0],e=n.slice(1);o=t.transform(...e)}r.value=o}return r}(t,e,n);default:throw"unreachable"}}(t,e,a)}function z_(t){const e=t.def;if(4&e.nodeFlags)for(let n=0;n<e.nodes.length;n++){const a=e.nodes[n];if(4&a.flags){const e=Sg(t,n).template._projectedViews;if(e)for(let n=0;n<e.length;n++){const a=e[n];a.state|=32,Yg(a,t)}}else 0==(4&a.childFlags)&&(n+=a.childCount)}}function G_(t,e,n,a,r,o,i,s,c,l,d,u,g){return 0===n?function(t,e,n,a,r,o,i,s,c,l,d,u){const g=e.bindings.length;g>0&&Bg(t,e,0,n),g>1&&Bg(t,e,1,a),g>2&&Bg(t,e,2,r),g>3&&Bg(t,e,3,o),g>4&&Bg(t,e,4,i),g>5&&Bg(t,e,5,s),g>6&&Bg(t,e,6,c),g>7&&Bg(t,e,7,l),g>8&&Bg(t,e,8,d),g>9&&Bg(t,e,9,u)}(t,e,a,r,o,i,s,c,l,d,u,g):function(t,e,n){for(let a=0;a<n.length;a++)Bg(t,e,a,n[a])}(t,e,a),!1}function B_(t,e){if(Ng(t,e.nodeIndex).dirty)throw Cg(Ag.createDebugContext(t,e.nodeIndex),`Query ${e.query.id} not dirty`,`Query ${e.query.id} dirty`,0!=(1&t.state))}function V_(t){if(!(128&t.state)){if(U_(t,Y_.Destroy),H_(t,Y_.Destroy),pp(t,131072),t.disposables)for(let e=0;e<t.disposables.length;e++)t.disposables[e]();!function(t){if(!(16&t.state))return;const e=Ug(t);if(e){const n=e.template._projectedViews;n&&(ut(n,n.indexOf(t)),Ag.dirtyParentQueries(t))}}(t),t.renderer.destroyNode&&function(t){const e=t.def.nodes.length;for(let n=0;n<e;n++){const e=t.def.nodes[n];1&e.flags?t.renderer.destroyNode(Sg(t,n).renderElement):2&e.flags?t.renderer.destroyNode(Tg(t,n).renderText):(67108864&e.flags||134217728&e.flags)&&Ng(t,n).destroy()}}(t),$g(t)&&t.renderer.destroy(),t.state|=128}}const Y_=function(){var t={CreateViewNodes:0,CheckNoChanges:1,CheckNoChangesProjectedViews:2,CheckAndUpdate:3,CheckAndUpdateProjectedViews:4,Destroy:5};return t[t.CreateViewNodes]="CreateViewNodes",t[t.CheckNoChanges]="CheckNoChanges",t[t.CheckNoChangesProjectedViews]="CheckNoChangesProjectedViews",t[t.CheckAndUpdate]="CheckAndUpdate",t[t.CheckAndUpdateProjectedViews]="CheckAndUpdateProjectedViews",t[t.Destroy]="Destroy",t}();function H_(t,e){const n=t.def;if(33554432&n.nodeFlags)for(let a=0;a<n.nodes.length;a++){const r=n.nodes[a];33554432&r.flags?W_(Sg(t,a).componentView,e):0==(33554432&r.childFlags)&&(a+=r.childCount)}}function U_(t,e){const n=t.def;if(16777216&n.nodeFlags)for(let a=0;a<n.nodes.length;a++){const r=n.nodes[a];if(16777216&r.flags){const n=Sg(t,a).viewContainer._embeddedViews;for(let t=0;t<n.length;t++)W_(n[t],e)}else 0==(16777216&r.childFlags)&&(a+=r.childCount)}}function W_(t,e){const n=t.state;switch(e){case Y_.CheckNoChanges:0==(128&n)&&(12==(12&n)?q_(t):64&n&&K_(t,Y_.CheckNoChangesProjectedViews));break;case Y_.CheckNoChangesProjectedViews:0==(128&n)&&(32&n?q_(t):64&n&&K_(t,e));break;case Y_.CheckAndUpdate:0==(128&n)&&(12==(12&n)?j_(t):64&n&&K_(t,Y_.CheckAndUpdateProjectedViews));break;case Y_.CheckAndUpdateProjectedViews:0==(128&n)&&(32&n?j_(t):64&n&&K_(t,e));break;case Y_.Destroy:V_(t);break;case Y_.CreateViewNodes:L_(t)}}function K_(t,e){U_(t,e),H_(t,e)}function $_(t,e,n,a){if(!(t.def.nodeFlags&e&&t.def.nodeFlags&n))return;const r=t.def.nodes.length;for(let o=0;o<r;o++){const r=t.def.nodes[o];if(r.flags&e&&r.flags&n)switch(Ag.setCurrentNode(t,r.nodeIndex),a){case 0:h_(t,r);break;case 1:B_(t,r)}r.childFlags&e&&r.childFlags&n||(o+=r.childCount)}}let Z_=!1;function J_(){if(Z_)return;Z_=!0;const t=za()?{setCurrentNode:OO,createRootView:Q_,createEmbeddedView:eO,createComponentView:nO,createNgModuleRef:aO,overrideProvider:sO,overrideComponentView:cO,clearOverrides:lO,checkAndUpdateView:fO,checkNoChangesView:pO,destroyView:mO,createDebugContext:(t,e)=>new SO(t,e),handleEvent:vO,updateDirectives:CO,updateRenderer:PO}:{setCurrentNode:()=>{},createRootView:X_,createEmbeddedView:N_,createComponentView:A_,createNgModuleRef:Yf,overrideProvider:Eg,overrideComponentView:Eg,clearOverrides:Eg,checkAndUpdateView:j_,checkNoChangesView:q_,destroyView:V_,createDebugContext:(t,e)=>new SO(t,e),handleEvent:(t,e,n,a)=>t.def.handleEvent(t,e,n,a),updateDirectives:(t,e)=>t.def.updateDirectives(0===e?uO:gO,t),updateRenderer:(t,e)=>t.def.updateRenderer(0===e?uO:gO,t)};Ag.setCurrentNode=t.setCurrentNode,Ag.createRootView=t.createRootView,Ag.createEmbeddedView=t.createEmbeddedView,Ag.createComponentView=t.createComponentView,Ag.createNgModuleRef=t.createNgModuleRef,Ag.overrideProvider=t.overrideProvider,Ag.overrideComponentView=t.overrideComponentView,Ag.clearOverrides=t.clearOverrides,Ag.checkAndUpdateView=t.checkAndUpdateView,Ag.checkNoChangesView=t.checkNoChangesView,Ag.destroyView=t.destroyView,Ag.resolveDep=up,Ag.createDebugContext=t.createDebugContext,Ag.handleEvent=t.handleEvent,Ag.updateDirectives=t.updateDirectives,Ag.updateRenderer=t.updateRenderer,Ag.dirtyParentQueries=m_}function X_(t,e,n,a,r,o){const i=r.injector.get(Ku);return R_(tO(t,r,i,e,n),a,o)}function Q_(t,e,n,a,r,o){const i=r.injector.get(Ku),s=tO(t,r,new RO(i),e,n),c=dO(a);return IO(hO.create,R_,null,[s,c,o])}function tO(t,e,n,a,r){const o=e.injector.get(gr),i=e.injector.get(Ta),s=n.createRenderer(null,null);return{ngModule:e,injector:t,projectableNodes:a,selectorOrNode:r,sanitizer:o,rendererFactory:n,renderer:s,errorHandler:i}}function eO(t,e,n,a){const r=dO(n);return IO(hO.create,N_,null,[t,e,r,a])}function nO(t,e,n,a){return n=iO.get(e.element.componentProvider.provider.token)||dO(n),IO(hO.create,A_,null,[t,e,n,a])}function aO(t,e,n,a){return Yf(t,e,n,function(t){const{hasOverrides:e,hasDeprecatedOverrides:n}=function(t){let e=!1,n=!1;return 0===rO.size?{hasOverrides:e,hasDeprecatedOverrides:n}:(t.providers.forEach(t=>{const a=rO.get(t.token);3840&t.flags&&a&&(e=!0,n=n||a.deprecatedBehavior)}),t.modules.forEach(t=>{oO.forEach((a,r)=>{T(r).providedIn===t&&(e=!0,n=n||a.deprecatedBehavior)})}),{hasOverrides:e,hasDeprecatedOverrides:n})}(t);return e?(function(t){for(let e=0;e<t.providers.length;e++){const a=t.providers[e];n&&(a.flags|=4096);const r=rO.get(a.token);r&&(a.flags=-3841&a.flags|r.flags,a.deps=Qg(r.deps),a.value=r.value)}if(oO.size>0){let e=new Set(t.modules);oO.forEach((a,r)=>{if(e.has(T(r).providedIn)){let e={token:r,flags:a.flags|(n?4096:0),deps:Qg(a.deps),value:a.value,index:t.providers.length};t.providers.push(e),t.providersByKey[Lg(r)]=e}})}}(t=t.factory(()=>Eg)),t):t}(a))}const rO=new Map,oO=new Map,iO=new Map;function sO(t){let e;rO.set(t.token,t),"function"==typeof t.token&&(e=T(t.token))&&"function"==typeof e.providedIn&&oO.set(t.token,t)}function cO(t,e){const n=nf(If(e)),a=nf(n.nodes[0].element.componentView);iO.set(t,a)}function lO(){rO.clear(),oO.clear(),iO.clear()}function dO(t){if(0===rO.size)return t;const e=function(t){const e=[];let n=null;for(let a=0;a<t.nodes.length;a++){const r=t.nodes[a];1&r.flags&&(n=r),n&&3840&r.flags&&rO.has(r.provider.token)&&(e.push(n.nodeIndex),n=null)}return e}(t);if(0===e.length)return t;t=t.factory(()=>Eg);for(let a=0;a<e.length;a++)n(t,e[a]);return t;function n(t,e){for(let n=e+1;n<t.nodes.length;n++){const e=t.nodes[n];if(1&e.flags)return;if(3840&e.flags){const t=e.provider,n=rO.get(t.token);n&&(e.flags=-3841&e.flags|n.flags,t.deps=Qg(n.deps),t.value=n.value)}}}}function uO(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=t.def.nodes[e];return F_(t,f,n,a,r,o,i,s,c,l,d,u,g),224&f.flags?Ig(t,e).value:void 0}function gO(t,e,n,a,r,o,i,s,c,l,d,u,g){const f=t.def.nodes[e];return G_(t,f,n,a,r,o,i,s,c,l,d,u,g),224&f.flags?Ig(t,e).value:void 0}function fO(t){return IO(hO.detectChanges,j_,null,[t])}function pO(t){return IO(hO.checkNoChanges,q_,null,[t])}function mO(t){return IO(hO.destroy,V_,null,[t])}const hO=function(){var t={create:0,detectChanges:1,checkNoChanges:2,destroy:3,handleEvent:4};return t[t.create]="create",t[t.detectChanges]="detectChanges",t[t.checkNoChanges]="checkNoChanges",t[t.destroy]="destroy",t[t.handleEvent]="handleEvent",t}();let bO,yO,_O;function OO(t,e){yO=t,_O=e}function vO(t,e,n,a){return OO(t,e),IO(hO.handleEvent,t.def.handleEvent,null,[t,e,n,a])}function CO(t,e){if(128&t.state)throw Mg(hO[bO]);return OO(t,wO(t,0)),t.def.updateDirectives((function(t,n,a,...r){const o=t.def.nodes[n];return 0===e?MO(t,o,a,r):xO(t,o,a,r),16384&o.flags&&OO(t,wO(t,n)),224&o.flags?Ig(t,o.nodeIndex).value:void 0}),t)}function PO(t,e){if(128&t.state)throw Mg(hO[bO]);return OO(t,TO(t,0)),t.def.updateRenderer((function(t,n,a,...r){const o=t.def.nodes[n];return 0===e?MO(t,o,a,r):xO(t,o,a,r),3&o.flags&&OO(t,TO(t,n)),224&o.flags?Ig(t,o.nodeIndex).value:void 0}),t)}function MO(t,e,n,a){if(F_(t,e,n,...a)){const i=1===n?a[0]:a;if(16384&e.flags){const n={};for(let t=0;t<e.bindings.length;t++){const a=e.bindings[t],s=i[t];8&a.flags&&(n[(r=a.nonMinifiedName,o=void 0,o=r.replace(/[$@]/g,"_"),`ng-reflect-${r=o.replace(xr,(...t)=>"-"+t[1].toLowerCase())}`)]=wr(s))}const a=e.parent,s=Sg(t,a.nodeIndex).renderElement;if(a.element.name)for(let e in n){const a=n[e];null!=a?t.renderer.setAttribute(s,e,a):t.renderer.removeAttribute(s,e)}else t.renderer.setValue(s,`bindings=${JSON.stringify(n,null,2)}`)}}var r,o}function xO(t,e,n,a){G_(t,e,n,...a)}function wO(t,e){for(let n=e;n<t.def.nodes.length;n++){const e=t.def.nodes[n];if(16384&e.flags&&e.bindings&&e.bindings.length)return n}return null}function TO(t,e){for(let n=e;n<t.def.nodes.length;n++){const e=t.def.nodes[n];if(3&e.flags&&e.bindings&&e.bindings.length)return n}return null}class SO{constructor(t,e){this.view=t,this.nodeIndex=e,null==e&&(this.nodeIndex=e=0),this.nodeDef=t.def.nodes[e];let n=this.nodeDef,a=t;for(;n&&0==(1&n.flags);)n=n.parent;if(!n)for(;!n&&a;)n=Wg(a),a=a.parent;this.elDef=n,this.elView=a}get elOrCompView(){return Sg(this.elView,this.elDef.nodeIndex).componentView||this.view}get injector(){return Ff(this.elView,this.elDef)}get component(){return this.elOrCompView.component}get context(){return this.elOrCompView.context}get providerTokens(){const t=[];if(this.elDef)for(let e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){const n=this.elView.def.nodes[e];20224&n.flags&&t.push(n.provider.token),e+=n.childCount}return t}get references(){const t={};if(this.elDef){kO(this.elView,this.elDef,t);for(let e=this.elDef.nodeIndex+1;e<=this.elDef.nodeIndex+this.elDef.childCount;e++){const n=this.elView.def.nodes[e];20224&n.flags&&kO(this.elView,n,t),e+=n.childCount}}return t}get componentRenderElement(){const t=function(t){for(;t&&!$g(t);)t=t.parent;return t.parent?Sg(t.parent,Wg(t).nodeIndex):null}(this.elOrCompView);return t?t.renderElement:void 0}get renderNode(){return 2&this.nodeDef.flags?Kg(this.view,this.nodeDef):Kg(this.elView,this.elDef)}logError(t,...e){let n,a;2&this.nodeDef.flags?(n=this.view.def,a=this.nodeDef.nodeIndex):(n=this.elView.def,a=this.elDef.nodeIndex);const r=function(t,e){let n=-1;for(let a=0;a<=e;a++)3&t.nodes[a].flags&&n++;return n}(n,a);let o=-1;n.factory(()=>(o++,o===r?t.error.bind(t,...e):Eg)),o<r&&(t.error("Illegal state: the ViewDefinitionFactory did not call the logger!"),t.error(...e))}}function kO(t,e,n){for(let a in e.references)n[a]=y_(t,e,e.references[a])}function IO(t,e,n,a){const r=bO,o=yO,i=_O;try{bO=t;const s=e.apply(n,a);return yO=o,_O=i,bO=r,s}catch(s){if(Ma(s)||!yO)throw s;throw function(t,e){return t instanceof Error||(t=new Error(t.toString())),Pg(t,e),t}(s,NO())}}function NO(){return yO?new SO(yO,_O):null}class RO{constructor(t){this.delegate=t}createRenderer(t,e){return new AO(this.delegate.createRenderer(t,e))}begin(){this.delegate.begin&&this.delegate.begin()}end(){this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.delegate.whenRenderingDone?this.delegate.whenRenderingDone():Promise.resolve(null)}}class AO{constructor(t){this.delegate=t,this.debugContextFactory=NO,this.data=this.delegate.data}createDebugContext(t){return this.debugContextFactory(t)}destroyNode(t){const e=Jy(t);!function(t){$y.delete(t.nativeNode)}(e),e instanceof Fy&&(e.listeners.length=0),this.delegate.destroyNode&&this.delegate.destroyNode(t)}destroy(){this.delegate.destroy()}createElement(t,e){const n=this.delegate.createElement(t,e),a=this.createDebugContext(n);if(a){const e=new zy(n,null,a);e.name=t,Xy(e)}return n}createComment(t){const e=this.delegate.createComment(t),n=this.createDebugContext(e);return n&&Xy(new Fy(e,null,n)),e}createText(t){const e=this.delegate.createText(t),n=this.createDebugContext(e);return n&&Xy(new Fy(e,null,n)),e}appendChild(t,e){const n=Jy(t),a=Jy(e);n&&a&&n instanceof zy&&n.addChild(a),this.delegate.appendChild(t,e)}insertBefore(t,e,n){const a=Jy(t),r=Jy(e),o=Jy(n);a&&r&&a instanceof zy&&a.insertBefore(o,r),this.delegate.insertBefore(t,e,n)}removeChild(t,e){const n=Jy(t),a=Jy(e);n&&a&&n instanceof zy&&n.removeChild(a),this.delegate.removeChild(t,e)}selectRootElement(t,e){const n=this.delegate.selectRootElement(t,e),a=NO();return a&&Xy(new zy(n,null,a)),n}setAttribute(t,e,n,a){const r=Jy(t);r&&r instanceof zy&&(r.attributes[a?a+":"+e:e]=n),this.delegate.setAttribute(t,e,n,a)}removeAttribute(t,e,n){const a=Jy(t);a&&a instanceof zy&&(a.attributes[n?n+":"+e:e]=null),this.delegate.removeAttribute(t,e,n)}addClass(t,e){const n=Jy(t);n&&n instanceof zy&&(n.classes[e]=!0),this.delegate.addClass(t,e)}removeClass(t,e){const n=Jy(t);n&&n instanceof zy&&(n.classes[e]=!1),this.delegate.removeClass(t,e)}setStyle(t,e,n,a){const r=Jy(t);r&&r instanceof zy&&(r.styles[e]=n),this.delegate.setStyle(t,e,n,a)}removeStyle(t,e,n){const a=Jy(t);a&&a instanceof zy&&(a.styles[e]=null),this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){const a=Jy(t);a&&a instanceof zy&&(a.properties[e]=n),this.delegate.setProperty(t,e,n)}listen(t,e,n){if("string"!=typeof t){const a=Jy(t);a&&a.listeners.push(new jy(e,n))}return this.delegate.listen(t,e,n)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setValue(t,e){return this.delegate.setValue(t,e)}}function EO(t){return J_(),Ag.overrideProvider(t)}function DO(t,e){return J_(),Ag.overrideComponentView(t,e)}function LO(){return J_(),Ag.clearOverrides()}function qO(t,e,n){return new jO(t,e,n)}class jO extends it{constructor(t,e,n){super(),this.moduleType=t,this._bootstrapComponents=e,this._ngModuleDefFactory=n}create(t){J_();const e=function(t){const e=Array.from(t.providers),n=Array.from(t.modules),a={};for(const r in t.providersByKey)a[r]=t.providersByKey[r];return{factory:t.factory,isRoot:t.isRoot,providers:e,modules:n,providersByKey:a}}(nf(this._ngModuleDefFactory));return Ag.createNgModuleRef(this.moduleType,t||Ls.NULL,this._bootstrapComponents,e)}}},"8YOa":function(t,e,n){var a=n("0BK2"),r=n("hh1v"),o=n("UTVS"),i=n("m/L8").f,s=n("kOOl"),c=n("uy83"),l=s("meta"),d=0,u=Object.isExtensible||function(){return!0},g=function(t){i(t,l,{value:{objectID:"O"+ ++d,weakData:{}}})},f=t.exports={REQUIRED:!1,fastKey:function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,l)){if(!u(t))return"F";if(!e)return"E";g(t)}return t[l].objectID},getWeakData:function(t,e){if(!o(t,l)){if(!u(t))return!0;if(!e)return!1;g(t)}return t[l].weakData},onFreeze:function(t){return c&&f.REQUIRED&&u(t)&&!o(t,l)&&g(t),t}};a[l]=!0},"8iEZ":function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DataTableColumnCellDirective=function(){return a([r.Directive({selector:"[ngx-datatable-cell-template]"})],(function(t){this.template=t}))}()},"8j5A":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="it-IT">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Attiva/Disattiva barra di navigazione</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dashboard</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Servizi</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configurazione</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mappa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Moduli Manager</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Log</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blocco</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Immagini</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Esecuzione della copia speculare</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI </target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>File system</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Utenti</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartimenti</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Selezionare una lingua</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Caricamento pannello dati in corso...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Selezione ora di Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Impostazioni di ripristino</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Indietro</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Non è stato possibile caricare i dati.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>selezionato</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>trovato</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>totale</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nome</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descrizione</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descrizione lunga</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Default</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Default del daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valori</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Salva</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visualizzatore mappa CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Caricamento in corso...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nome host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Questo campo è obbligatorio.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sì.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Annulla</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Chiudi</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Elenco degli host</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Prestazioni complessive</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nessuna voce trovata</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Log dei cluster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Log delle revisioni</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Caricamento della configurazione in corso...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Impossibile caricare la configurazione.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Modifica modulo Manager</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Il valore immesso non è un UUID valido, ad es.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Il valore immesso deve essere un indirizzo IP valido.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Il valore immesso deve essere un numero.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Il valore immesso deve essere un numero o un decimale.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aggiorna</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID cluster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>mappa mon modificata</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>epoca mappa mon</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con richiesta</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon richiesto</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Nel quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Non nel quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Aggiungi</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funzioni</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flag OSD in tutto il cluster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Invia</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avanzate...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorità di recupero OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorità</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizza valori di priorità</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Questo campo è obbligatorio.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Il valore deve essere compreso tra 0 e 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ripesa</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Elenco degli OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valore</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Modifica</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Elimina</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiche</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Client</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Può accedere qualsiasi client</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Indirizzi</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo obbligatorio</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Deve contenere uno o più valori delimitati da virgole</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Ad esempio:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo di accesso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Esegui squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Aggiungi client</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Nessun cluster disponibile --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Selezionare il cluster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Aggiungi daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend di storage</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Nessun pool di dati disponibile --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Selezionare il backend di storage --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Utente Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Nessun utente disponibile --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Selezionare l\'utente Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID utente CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Nessun client disponibile --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Selezionare il client Cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nome CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etichetta di sicurezza</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Abilita etichetta di sicurezza</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Percorso CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Il percorso deve iniziare con una barra \'/\' e può essere seguito da una parola</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Viene creata la nuova directory</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Percorso</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Il percorso può essere solo una singola barra \'/\' o parola</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Viene creato il nuovo compartimento</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocollo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>I client non possono montare le sottodirectory (ad es. se Tag = foo, il client non può montare foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Utilizzando diverse opzioni Tag, è possibile esportare più volte lo stesso percorso.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Utilizzando diverse opzioni Pseudo, è possibile esportare più volte lo stesso percorso.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Nessun tipo di accesso disponibile --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Selezionare il tipo di accesso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Nessuno squash disponibile --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>--Selezionare il tipo di squash dell\'ID utente da eseguire --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocollo di trasporto</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Benvenuto in Ceph.</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nome utente necessario</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Password richiesta</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Login</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Spiacenti, l\'utente non esiste in Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Non consentito</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Spiacenti, non è consentito visualizzare ciò che si stava cercando.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configurazione RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Rimuovere il valore della configurazione locale. Al suo posto verrà ereditato e utilizzato il valore della configurazione superiore.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Il valore minimo è 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Elenco dei pool</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Il nome può contenere solo caratteri alfanumerici, trattini e caratteri di sottolineatura.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Il nome del profilo del codice di cancellazione selezionato è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Porzioni di dati (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Deve essere uguale o maggiore di 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Porzioni di codice (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Deve essere uguale o maggiore di 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Stima durata (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Località (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Dominio di errore Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Località Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nessuno</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Tecnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Dimensione del pacchetto</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Radice Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe dispositivo Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>qualsiasi</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Directory</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nome...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Il nome del pool Ceph scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo di pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Selezionare un tipo di pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Gruppi di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>È necessario almeno un gruppo di posizionamento.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Il cluster non può gestire questo numero eccessivo di gruppi di posizionamento. Ricalcolare il numero di gruppi di posizionamento necessari.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Guida per il calcolo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Dimensioni replicate</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flag</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sovrascritture EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Applicazioni</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profilo del codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Nessun profilo del codice di cancellazione disponibile --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Selezionare un profilo del codice di cancellazione --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Set di regole Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Selezionare una regola Crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regola Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Passaggi Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compressione</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modalità</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Nessun algoritmo di compressione della cancellazione disponibile --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Dimensioni minime del blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>ad es. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Il valore deve essere maggiore di 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Dimensioni massime del blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>ad es. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Il valore deve essere maggiore delle dimensioni minime del blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rapporto</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rapporto di compressione</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Il valore deve essere compreso tra 0,0 e 1,0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ad es. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Dettagli</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Dettagli sulle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Dettagli livelli cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Sposta un\'immagine nel cestino</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protezione scade alle</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NON PROTETTO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato data errato. Utilizzare "AAAA-MM-GG HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protezione è già scaduta. Selezionare una data futura o lasciarla vuota.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Sposta immagine</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Panoramica</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinazioni</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticazione rilevazione</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Utente</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n              possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Password</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Utente reciproco</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Password reciproca</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informazioni disponibili:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinazioni iSCSI non disponibili</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool di dati</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Creato</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Dimensioni</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Oggetti</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Dimensioni oggetto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Soggetto al provisioning</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/D</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Totale soggetto al provisioning</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unità di striping</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Conteggio di striping</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Superiore</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefisso nome blocco</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Ordine</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshot</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Immagine</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Questa impostazione sostituisce il valore globale</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globale</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Questo è il valore globale. Nessun valore di opzione è stato impostato per questa immagine.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' e \'@\' non sono consentiti.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Nessun pool rbd disponibile --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Selezionare un pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Utilizza un pool di dati dedicato</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool di dati</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool dedicato che archivia i dati oggetto dell\'RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>È necessario aumentare le dimensioni.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avanzate</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Striping</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unità di striping</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Selezionare l\'unità di striping --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Questo campo è obbligatorio perché è specificato il numero di striping.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>L\'unità di striping è maggiore delle dimensioni dell\'oggetto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Numero di striping</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Questo campo è obbligatorio perché è specificata l\'unità di striping.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Il numero di striping deve essere maggiore di 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Si sta per eseguire il rollback</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Elimina definitivamente contenuto del cestino</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tutto</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nome pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Ripristina immagine</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Per ripristinare,</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>digitare il nuovo nome dell\'immagine e fare clic su</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nuovo nome</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Scaduto alle</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protetto fino alle</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Di solito non è necessario modificare questi parametri rispetto ai valori di default.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Impostazioni</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Conferma</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Impostazioni avanzate</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN di destinazione</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN contiene un modello errato.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Ad esempio: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Ulteriori informazioni</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Questa destinazione contiene impostazioni avanzate modificate.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portali</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Aggiungi portale</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Questa immagine contiene impostazioni modificate.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Aggiungi immagine</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticazione ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniziatori</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniziatore</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN client</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>L\'IQN dell\'iniziatore deve essere univoco.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e\n                        possono contenere solo lettere, \'.\', \'@\', \'-\', \'_\' o \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>L\'iniziatore appartiene a un gruppo. Le immagini verranno configurate nel gruppo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nessun elemento aggiunto.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Aggiungi iniziatore</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Gruppi</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Gruppo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Aggiungi gruppo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Cestino</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemi</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizzazione in corso</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Pronto</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Modifica modalità speculare per il pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>È necessario rimuovere i cluster peer prima di disabilitare la copia speculare.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nome cluster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Il nome del cluster non è valido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>L\'ID CephX non è valido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Indirizzi dei monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Indirizzi con valori delimitati da virgole...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>L\'indirizzo del monitor non è valido.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Chiave CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Chiave con codifica Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La chiave CephX deve essere con codifica Base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Contatori delle prestazioni non disponibili</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Elenco dei daemon</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contatori delle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Caricamento dati compartimento in corso...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Il valore non è valido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Il nome scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Proprietario</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Selezionare un utente --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Abilitato</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo di indice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regola di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Contrassegno</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Contrassegno massimo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versione</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versione master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Ora di modifica</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Gruppo di zone</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Quota compartimenti</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Dimensioni massime</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Illimitato</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Numero massimo di oggetti</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nome utente</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Selezionare un nome utente --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Generazione automatica chiave</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Chiave di accesso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Chiave segreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nome completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Indirizzo e-mail</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Sospeso</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Numero massimo di compartimenti</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Sottoutenti</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Capacità</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Quota utenti</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostra</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Chiavi</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Selezionare un tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Autorizzazione</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Selezionare un\'autorizzazione --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Sottoutente</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>L\'ID del sottoutente scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lettura, scrittura</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>pieno</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Chiave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Generazione automatica segreto</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Caricamento dati utente in corso...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Impossibile caricare i dati utente.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>L\'ID utente scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Non è un indirizzo e-mail valido.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>L\'indirizzo e-mail scelto è già in uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Numero max. di compartimenti</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Disabilitato</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizzato</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Chiave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Non esistono sottoutenti.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Non esistono chiavi.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Non esistono capacità.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Dimensioni illimitate</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Dimensione max.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Oggetti illimitati</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Numero max. di oggetti</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Il valore immesso deve essere &gt;= a 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descrizione...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Autorizzazioni</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Ruoli</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Conferma password</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>La password di conferma non corrisponde alla password.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>E-mail non valida.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Si stanno per rimuovere le autorizzazioni di "lettura/aggiornamento utente" dal proprio utente.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Se si continua, non è più possibile aggiungere o rimuovere ruoli da qualsiasi utente.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Continuare?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Guida</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentazione</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Informazioni su</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Impostazioni del dashboard</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestione utenti</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Utente connesso</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Disconnetti</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attributi (mappa OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadati non disponibili</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadati</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contatore delle prestazioni</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Scritture</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Letture</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Istogramma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valori attuali</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origine</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Livello</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Può essere aggiornato al runtime (modificabile)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tag</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valori di enumerazione</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Vedere anche</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Stato del cluster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manager Daemon</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Server di metadati</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI Gateway</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS client</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Velocità effettiva client</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lettura/scrittura client</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Velocità effettiva di recupero</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Pulitura</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Prestazioni</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacità di base</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Gruppi di posizionamento per OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Stato gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacità</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Classificazioni</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Attuale</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticazione rilevazione aggiornata</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Non sono disponibili pool.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Non sono disponibili immagini.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Non sono disponibili immagini. Assicurarsi di aggiungere un\'immagine alla destinazione.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Non sono disponibili iniziatori. Assicurarsi di aggiungere un iniziatore alla destinazione.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destinazione</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stato</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Byte letti</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Byte scritti</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operazioni di lettura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operazioni di scrittura</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O da</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Istanza</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Avanzamento</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Modalità di modifica</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Aggiungi peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Modifica peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Elimina peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Sequenza iniziale</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Locale</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Remoto</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>peer copia speculare</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Chiave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Appiattimento profondo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Su strati</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Blocco esclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mappa oggetti (richiede il blocco escluso)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journaling (richiede il blocco esclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NON PROTETTO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Esegui rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Eliminato alle</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stato</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versione</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>root</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemon in standby</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Classificazione</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Task</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentry</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Utilizzo</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aggiornato</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>È possibile aggiornare il valore al runtime.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>I daemon/client non estraggono questo valore dal\n      database della configurazione di monitoraggio. Non è consentito impostare questa opzione tramite \'ceph config\n      set ...\'. È necessario configurare questa opzione tramite ceph.conf o dalla\n      riga di comando.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>L\'opzione diventa attiva solo all\'avvio del daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>L\'opzione interessa solo la creazione del cluster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>L\'opzione interessa solo la creazione del daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Servizio</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valore attuale</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Modificabile</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Abilita</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Disabilita</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Riconnessione in corso. Attendere.</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Indirizzo pubblico</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessioni aperte</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Nessuno in entrata</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Gli OSD che sono stati contrassegnati come disattivi in precedenza non verranno contrassegnati nuovamente come attivi all\'avvio</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Nessuno in uscita</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Gli OSD non verranno disattivati automaticamente dopo l\'intervallo configurato</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Nessuno attivo</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Non è consentito l\'avvio degli OSD</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Nessuno disattivo</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>I rapporti di errore degli OSD vengono ignorati in modo che i monitor non disattivino gli OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Sospendi</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Sospende le operazioni di lettura e scrittura</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nessuna pulitura</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Pulitura disabilitata</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nessun pulitura approfondita</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Pulitura approfondita disabilitata</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Nessuna operazione di recupero</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Recupero dei gruppi di posizionamento sospeso</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Nessun recupero</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Recupero dei gruppi di posizionamento sospeso</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Ordinamento bitwise</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usa ordinamento bitwise</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdir eliminate definitivamente</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Gli OSD contengono set di snap convertiti</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Eliminazioni recuperi</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Eliminazioni eseguite durante il recupero invece del peering</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite rigido log gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Inserisce un limite rigido alla lunghezza del log del gruppo di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flag OSD aggiornati</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>esterno</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>interno</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>in basso</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Contrassegna</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perso</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>contrassegnato come perso</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>elimina</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Gruppi di posizionamento</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Byte letti</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Byte scritti</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operazioni di lettura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operazioni di scrittura</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Numero max di recuperi informazioni</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Numero max di recuperi attivi</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Avvio singolo numero max di recuperi</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Sospensione recupero</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Lavoro</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravità</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Avviato</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Utilizzato</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispon.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Pulisci</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>In funzione</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Avviso</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Sconosciuto</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>su</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>nessun file system</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>attivo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/d</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon attivo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target> quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Il servizio NFS Ganesha non è configurato.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Trasporto</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Utente CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>File system CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(ereditato dalla configurazione globale)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>importato dalla configurazione globale</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Selezionare il tipo di squash dell\'ID utente che viene eseguito --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Non vi sono daemon disponibili.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modalità cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Numero minimo di giorni per la rimozione</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Numero minimo di giorni per la cancellazione</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Numero max di byte di destinazione</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Numero max di oggetti di destinazione</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Non sono state aggiunte applicazioni.</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Raggiunto il limite di applicazioni</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Un pool può contenere solo fino a quattro definizioni delle applicazioni.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caratteri consentiti \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La lunghezza massima è di 128 caratteri</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtra o aggiungi applicazioni</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Aggiungi applicazione</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profilo del codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Dimensioni della replica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Ultima modifica</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profilo con codice di cancellazione</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Set di regole Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartimento</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartimenti</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>utente</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>utenti</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Ambito</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lettura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Crea</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Ruolo di sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Aggiorna utente</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continua</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Si è stati automaticamente disconnessi perché i ruoli sono stati modificati.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Ogni oggetto è suddiviso in porzioni di dati, ciascuna delle quali è memorizzata su un diverso OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcola le porzioni di codice relative a ciascun oggetto e le memorizza su diversi OSD.\n      Il numero di porzioni di codice è anche il numero degli OSD che è possibile disattivare senza perdere i dati.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Il plugin jerasure è il plugin più generico e flessibile,\n          ed è anche il plugin di default dei pool con codice di cancellazione di Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La tecnica più flessibile è reed_sol_van: è sufficiente impostare k\n          ed m. La tecnica cauchy_good può essere più rapida ma occorre selezionare attentamente la dimensione del\n          pacchetto. reed_sol_r6_op, liberation, blaum_roth, liber8tion sono tutti equivalenti a RAID6,\n          nel senso che è possibile configurarli solo con m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>La codifica viene eseguita su pacchetti di dimensioni in byte, uno alla volta.\n          È difficile scegliere la dimensione del pacchetto corretta.\n          La documentazione su jerasure fornisce informazioni esaustive su questo argomento.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Con il plugin di jerasure, quando un oggetto con codice di cancellazione viene memorizzato su\n          più OSD, il recupero della perdita di un OSD richiede la lettura di tutti gli altri.\n          Ad esempio, se jerasure è configurato con k=8 e m=4, la perdita di un OSD richiede la lettura\n          degli altri undici per il ripristino.\n\n          Il plugin del codice di cancellazione lrc crea porzioni di parità locali che è possibile recuperare utilizzando un\n          minor numero di OSD. Ad esempio, se lrc è configurato con k=8, m=4 e l=4, crea\n          una porzione di parità aggiuntiva ogni quattro OSD. Quando si perde un singolo OSD, è possibile\n          recuperarlo solo con quattro OSD invece che con undici.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Raggruppa le porzioni di codice e dati in set di località dimensione. Ad esempio,\n          per k=4 e m=2, se località=3 vengono creati due gruppi su tre. È possibile recuperare ciascun set\n          senza leggere le porzioni di un altro set.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Il tipo di compartimento Crush in cui viene memorizzato ciascun set di porzioni definito\n          dall\'utente. Ad esempio, se è impostato su rack, ciascun gruppo di porzioni viene\n          posizionato in un diverso rack. Viene utilizzato per creare un passaggio della regola CRUSH come il passaggio choose\n          rack. Se non è impostato, il raggruppamento non viene eseguito.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Il plugin ISA incapsula la libreria ISA. Viene eseguito solo su processori Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Il plugin ISA è disponibile in due formati Reed Solomon.\n          Se è impostato reed_sol_van, il formato è Vandermonde, se è impostato cauchy, il formato è Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Il plugin shec incapsula la libreria SHEC multipla.\n          Consente a Ceph di recuperare i dati in modo più efficiente rispetto ai codici Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Il numero di compartimenti di parità, ciascuno dei quali include i singoli compartimenti di dati\n          nell\'intervallo di calcolo. Il numero viene utilizzato come strumento di stima della durabilità. Ad esempio, se c=2,\n          è possibile disattivare 2 OSD senza perdere i dati.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Il nome del compartimento Crush utilizzato per il primo passaggio della regola CRUSH.\n      Ad esempio il passaggio take default.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Assicurarsi che non esistano due porzioni in un compartimento con lo stesso dominio\n      di errore. Ad esempio, se il dominio di errore è l\'host, non verranno memorizzate due porzioni sullo stesso\n      host. Viene utilizzato per creare un passaggio della regola CRUSH come passaggio chooseleaf host.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Limitare il posizionamento ai dispositivi di una classe specifica\n      (ad es. ssd o hdd) usando i nomi delle classi di dispositivi Crush nella mappa CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Impostare il nome della directory da cui viene caricato il plugin del codice di cancellazione.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Consente tutte le operazioni</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Consente solo le operazioni che non modificano il server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Non consente operazioni di lettura o scrittura, ma consente qualsiasi altra operazione</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Non consente operazioni di lettura o scrittura o qualsiasi operazione che modifichi gli attributi dei file o il contenuto della directory</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Non consente alcun accesso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Selezionare la priorità --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Bassa</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informazioni</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Ultimi 5 minuti</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Ultimi 15 minuti</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Ultimi 30 minuti</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Ultima ora (Default)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Ultime 3 ore</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Ultime 6 ore</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Ultime 12 ore</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Ultime 24 ore</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ieri</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Oggi</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Fino a oggi</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Giorno prima di ieri</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Ultimi 2 giorni</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Questo giorno della scorsa settimana</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Settimana precedente</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Questa settimana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Fino a questa settimana</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Ultimi 7 giorni</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Mese precedente</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Questo mese</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Fino a questo mese</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Ultimi 30 giorni</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Ultimi 90 giorni</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Ultimi 6 mesi</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Ultimo anno</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Anno precedente</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Quest\'anno</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Fino a quest\'anno</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Ultimi 2 anni</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Ultimi 5 anni</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nessun elemento selezionato.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Deselezionare l\'elemento per selezionare di nuovo</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target> Raggiunto il limite per la selezione</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtra tag</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Aggiungi badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Non vi sono elementi disponibili.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clona</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copia</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Pulitura approfondita</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Eliminazione definitiva</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Appiattisci</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Declassa</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Attiva</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Contrassegna come perso</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Disattiva</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteggi</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Rinomina</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Ripristina</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Sposta nel cestino</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Rimuovi protezione</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Eliminato</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonato</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiato</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Appiattito</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Eliminato definitivamente</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Ripristinato</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback eseguito</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sì</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>No</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualità di servizio</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite di BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Il limite desiderato di byte I/O al secondo.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite di IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Il limite desiderato di operazioni I/O al secondo.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite BPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Il limite desiderato dei byte letti al secondo.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite di IOPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Il limite desiderato di operazioni di lettura al secondo.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite di BPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Il limite desiderato di byte scritti al secondo.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite di IOPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Il limite desiderato di operazioni di scrittura al secondo.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Burst BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Il limite di burst desiderato dei byte di I/O.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Burst IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di I/O.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Burst BPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Il limite di burst desiderato dei byte letti.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Burst IOPS in lettura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di lettura.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Burst BPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Il limite di burst desiderato dei byte scritti.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Burst di IOPS in scrittura</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Il limite di burst desiderato delle operazioni di scrittura.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>In esecuzione</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>esegui</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Eseguito</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>task sconosciuto</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Creazione in corso</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>crea</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aggiornamento in corso</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aggiorna</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Eliminazione in corso</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonazione in corso</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clona</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copia in corso</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copia</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Appiattimento</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>appiattisci</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Rollback in corso</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Spostamento in corso</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>sposta</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Spostato</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Impossibile trovare l\'immagine.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Ripristino in corso</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>ripristina</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Eliminazione in corso</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>elimina definitivamente</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>tutti i pool</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossibile disabilitare l\'esecuzione della copia speculare perché contiene un peer.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"8mBD":function(t,e,n){!function(t){"use strict";t.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},"8xTl":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t){return a.upperFirst(t)}}},"9/5/":function(t,e){var n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,s="object"==typeof global&&global&&global.Object===Object&&global,c="object"==typeof self&&self&&self.Object===Object&&self,l=s||c||Function("return this")(),d=Object.prototype.toString,u=Math.max,g=Math.min,f=function(){return l.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function m(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==d.call(t)}(t))return NaN;if(p(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=p(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var s=r.test(t);return s||o.test(t)?i(t.slice(2),s?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var a,r,o,i,s,c,l=0,d=!1,h=!1,b=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=a,o=r;return a=r=void 0,l=e,i=t.apply(o,n)}function _(t){return l=t,s=setTimeout(v,e),d?y(t):i}function O(t){var n=t-c;return void 0===c||n>=e||n<0||h&&t-l>=o}function v(){var t=f();if(O(t))return C(t);s=setTimeout(v,function(t){var n=e-(t-c);return h?g(n,o-(t-l)):n}(t))}function C(t){return s=void 0,b&&a?y(t):(a=r=void 0,i)}function P(){var t=f(),n=O(t);if(a=arguments,r=this,c=t,n){if(void 0===s)return _(c);if(h)return s=setTimeout(v,e),y(c)}return void 0===s&&(s=setTimeout(v,e)),i}return e=m(e)||0,p(n)&&(d=!!n.leading,o=(h="maxWait"in n)?u(m(n.maxWait)||0,e):o,b="trailing"in n?!!n.trailing:b),P.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=r=s=void 0},P.flush=function(){return void 0===s?i:C(f())},P}},"93I0":function(t,e,n){var a=n("VpIT"),r=n("kOOl"),o=a("keys");t.exports=function(t){return o[t]||(o[t]=r(t))}},"978R":function(t,e,n){"use strict";n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return d})),n.d(e,"c",(function(){return g})),n.d(e,"d",(function(){return f}));var a=n("8Y7J"),r=n("hpHm"),o=n("mrSG"),i=n("z/SZ"),s=n("2uy1"),c=n("PqYM");class l{constructor(){this.adaptivePosition=!0,this.placement="top",this.triggers="hover focus",this.delay=0}}class d{constructor(t){Object.assign(this,t)}get isBs3(){return Object(r.d)()}ngAfterViewInit(){this.classMap={in:!1,fade:!1},this.classMap[this.placement]=!0,this.classMap[`tooltip-${this.placement}`]=!0,this.classMap.in=!0,this.animation&&(this.classMap.fade=!0),this.containerClass&&(this.classMap[this.containerClass]=!0)}}let u=0,g=(()=>{class t{constructor(t,e,n,r,o,i){this._elementRef=r,this._renderer=o,this._positionService=i,this.tooltipId=u++,this.tooltipChange=new a.EventEmitter,this.containerClass="",this.tooltipAnimation=!0,this.tooltipFadeDuration=150,this.ariaDescribedby=`tooltip-${this.tooltipId}`,this.tooltipStateChanged=new a.EventEmitter,this._tooltip=e.createLoader(this._elementRef,t,this._renderer).provide({provide:l,useValue:n}),Object.assign(this,n),this.onShown=this._tooltip.onShown,this.onHidden=this._tooltip.onHidden}get isOpen(){return this._tooltip.isShown}set isOpen(t){t?this.show():this.hide()}set htmlContent(t){Object(r.i)("tooltipHtml was deprecated, please use `tooltip` instead"),this.tooltip=t}set _placement(t){Object(r.i)("tooltipPlacement was deprecated, please use `placement` instead"),this.placement=t}set _isOpen(t){Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen=t}get _isOpen(){return Object(r.i)("tooltipIsOpen was deprecated, please use `isOpen` instead"),this.isOpen}set _enable(t){Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled=!t}get _enable(){return Object(r.i)("tooltipEnable was deprecated, please use `isDisabled` instead"),this.isDisabled}set _appendToBody(t){Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),this.container=t?"body":this.container}get _appendToBody(){return Object(r.i)('tooltipAppendToBody was deprecated, please use `container="body"` instead'),"body"===this.container}set _popupClass(t){Object(r.i)("tooltipClass deprecated")}set _tooltipContext(t){Object(r.i)("tooltipContext deprecated")}set _tooltipPopupDelay(t){Object(r.i)("tooltipPopupDelay is deprecated, use `delay` instead"),this.delay=t}get _tooltipTrigger(){return Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers}set _tooltipTrigger(t){Object(r.i)("tooltipTrigger was deprecated, please use `triggers` instead"),this.triggers=(t||"").toString()}ngOnInit(){this._tooltip.listen({triggers:this.triggers,show:()=>this.show()}),this.tooltipChange.subscribe(t=>{t||this._tooltip.hide()})}toggle(){if(this.isOpen)return this.hide();this.show()}show(){if(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),this.isOpen||this.isDisabled||this._delayTimeoutId||!this.tooltip)return;const t=()=>{this._delayTimeoutId&&(this._delayTimeoutId=void 0),this._tooltip.attach(d).to(this.container).position({attachment:this.placement}).show({content:this.tooltip,placement:this.placement,containerClass:this.containerClass,id:this.ariaDescribedby})},e=()=>{this._tooltipCancelShowFn&&this._tooltipCancelShowFn()};if(this.delay){const n=Object(c.a)(this.delay).subscribe(()=>{t(),e()});if(this.triggers){const t=Object(r.f)(this.triggers);this._tooltipCancelShowFn=this._renderer.listen(this._elementRef.nativeElement,t[0].close,()=>{n.unsubscribe(),e()})}}else t()}hide(){this._delayTimeoutId&&(clearTimeout(this._delayTimeoutId),this._delayTimeoutId=void 0),this._tooltip.isShown&&(this._tooltip.instance.classMap.in=!1,setTimeout(()=>{this._tooltip.hide()},this.tooltipFadeDuration))}ngOnDestroy(){this._tooltip.dispose()}}return Object(o.__decorate)([Object(r.a)(),Object(o.__metadata)("design:type",Object)],t.prototype,"tooltip",void 0),t})();class f{static forRoot(){return{ngModule:f,providers:[l,i.a,s.a]}}}},"99TG":function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("Fjl2");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new o.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),o.ContentChild(i.DatatableGroupHeaderTemplateDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"toggle",void 0),a([o.Directive({selector:"ngx-datatable-group-header"})],t)}()},"9Nap":function(t,e,n){var a=n("/9aa");t.exports=function(t){if("string"==typeof t||a(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}},"9Xeq":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},"9d/t":function(t,e,n){var a=n("AO7/"),r=n("xrYK"),o=n("tiKp")("toStringTag"),i="Arguments"==r(function(){return arguments}());t.exports=a?r:function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(n){}}(e=Object(t),o))?n:i?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},"9ggG":function(t,e,n){var a=n("Z0cm"),r=n("/9aa"),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;t.exports=function(t,e){if(a(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!r(t))||i.test(t)||!o.test(t)||null!=e&&t in Object(e)}},"9nlD":function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var a=n("LvDl"),r=n("2Vo4"),o=n("XNiG"),i=n("mtw6"),s=n("G1I9"),c=n("a0VL"),l=n("ufoC"),d=n("8Y7J"),u=n("EApP");let g=(()=>{class t{constructor(t,e,n){this.toastr=t,this.taskMessageService=e,this.cdDatePipe=n,this.hideToasties=!1,this.dataSource=new r.a([]),this.data$=this.dataSource.asObservable(),this.sidebarSubject=new o.a,this.queued=[],this.KEY="cdNotifications";const i=localStorage.getItem(this.KEY);let c=[];a.isString(i)&&(c=JSON.parse(i,(t,e)=>a.isPlainObject(e)?a.assign(new s.a,e):e)),this.dataSource.next(c)}removeAll(){localStorage.removeItem(this.KEY),this.dataSource.next([])}remove(t){const e=this.dataSource.getValue();e.splice(t,1),this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))}save(t){const e=this.dataSource.getValue();for(e.push(t),e.sort((t,e)=>t.timestamp>e.timestamp?-1:1);e.length>10;)e.pop();this.dataSource.next(e),localStorage.setItem(this.KEY,JSON.stringify(e))}show(t,e,n,r,o){return window.setTimeout(()=>{let i;i=a.isFunction(t)?t():a.isObject(t)?t:new s.b(t,e,n,r,o),this.queueToShow(i)},10)}queueToShow(t){this.cancel(this.queuedTimeoutId),this.queued.find(e=>a.isEqual(e,t))||this.queued.push(t),this.queuedTimeoutId=window.setTimeout(()=>{this.showQueued()},500)}showQueued(){this.getUnifiedTitleQueue().forEach(t=>{const e=new s.a(t);e.isFinishedTask||this.save(e),this.showToasty(e)})}getUnifiedTitleQueue(){return Object.values(this.queueShiftByTitle()).map(t=>{const e=t[0];return t.length>1&&(e.message="<ul>"+t.map(t=>`<li>${t.message}</li>`).join("")+"</ul>"),e})}queueShiftByTitle(){const t={};let e;for(;e=this.queued.shift();)t[e.title]||(t[e.title]=[]),t[e.title].push(e);return t}showToasty(t){this.hideToasties||this.toastr[["error","info","success"][t.type]]((t.message?t.message+"<br>":"")+this.renderTimeAndApplicationHtml(t),t.title,t.options)}renderTimeAndApplicationHtml(t){return`<small class="date">${this.cdDatePipe.transform(t.timestamp)}</small><i class="float-right custom-icon ${t.applicationClass}" title="${t.application}"></i>`}notifyTask(t,e=!0){const n=this.finishedTaskToNotification(t,e);return n.isFinishedTask=!0,this.show(n)}finishedTaskToNotification(t,e=!0){let n;return n=t.success&&e?new s.b(i.a.success,this.taskMessageService.getSuccessTitle(t)):new s.b(i.a.error,this.taskMessageService.getErrorTitle(t),this.taskMessageService.getErrorMessage(t)),n.isFinishedTask=!0,n}cancel(t){window.clearTimeout(t)}suspendToasties(t){this.hideToasties=t}toggleSidebar(t=!1){this.sidebarSubject.next(t)}}return t.ngInjectableDef=d["ɵɵdefineInjectable"]({factory:function(){return new t(d["ɵɵinject"](u.j),d["ɵɵinject"](l.a),d["ɵɵinject"](c.a))},token:t,providedIn:"root"}),t})()},"9ppp":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return t.prototype=Object.create(Error.prototype),t})()},"9rRi":function(t,e,n){!function(t){"use strict";t.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","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àireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè 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ìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n("wd/R"))},"A+xa":function(t,e,n){!function(t){"use strict";t.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(t){return t+(/сехет$/i.exec(t)?"рен":/ҫул$/i.exec(t)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n("wd/R"))},A2ZE:function(t,e,n){var a=n("HAuM");t.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 0:return function(){return t.call(e)};case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},A90E:function(t,e,n){var a=n("6sVZ"),r=n("V6Ve"),o=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return r(t);var e=[];for(var n in Object(t))o.call(t,n)&&"constructor"!=n&&e.push(n);return e}},"AO7/":function(t,e,n){var a={};a[n("tiKp")("toStringTag")]="z",t.exports="[object z]"===String(a)},AP2z:function(t,e,n){var a=n("nmnc"),r=Object.prototype,o=r.hasOwnProperty,i=r.toString,s=a?a.toStringTag:void 0;t.exports=function(t){var e=o.call(t,s),n=t[s];try{t[s]=void 0;var a=!0}catch(c){}var r=i.call(t);return a&&(e?t[s]=n:delete t[s]),r}},AQ68:function(t,e,n){!function(t){"use strict";t.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("wd/R"))},AWcq:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("yJti");class r{constructor(){this.vcs=a.a}ngOnInit(){}}},AfCQ:function(t,e,n){"use strict";n.d(e,"a",(function(){return d})),n.d(e,"b",(function(){return u}));var a=n("2Vo4"),r=n("qgXg"),o=n("HDdC"),i=n("pxpQ"),s=n("Kqap"),c=n("lJxs"),l=n("/uUt");class d extends a.a{constructor(t,e,n){super(t),e.pipe(Object(i.b)(r.a)).pipe(Object(s.a)((t,e)=>e?n(t,e):t,t)).subscribe(t=>this.next(t))}}class u extends o.a{constructor(t,e,n){super(),this._dispatcher=t,this._reducer=e,this.source=n}select(t){return this.source.pipe(Object(c.a)(t)).pipe(Object(l.a)())}lift(t){const e=new u(this._dispatcher,this._reducer,this);return e.operator=t,e}dispatch(t){this._dispatcher.next(t)}next(t){this._dispatcher.next(t)}error(t){this._dispatcher.error(t)}complete(){}}},Ahxa:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("lUjN");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new o.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([o.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([o.Input(),r("design:type",i.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"page",void 0),a([o.Component({selector:"datatable-footer",template:'\n    <div\n      class="datatable-footer-inner"\n      [ngClass]="{\'selected-count\': selectedMessage}"\n      [style.height.px]="footerHeight">\n      <ng-template\n        *ngIf="footerTemplate"\n        [ngTemplateOutlet]="footerTemplate.template"\n        [ngTemplateOutletContext]="{ \n          rowCount: rowCount, \n          pageSize: pageSize, \n          selectedCount: selectedCount,\n          curPage: curPage,\n          offset: offset\n        }">\n      </ng-template>\n      <div class="page-count" *ngIf="!footerTemplate">\n        <span *ngIf="selectedMessage">\n          {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n        </span>\n        {{rowCount?.toLocaleString()}} {{totalMessage}}\n      </div>\n      <datatable-pager *ngIf="!footerTemplate"\n        [pagerLeftArrowIcon]="pagerLeftArrowIcon"\n        [pagerRightArrowIcon]="pagerRightArrowIcon"\n        [pagerPreviousIcon]="pagerPreviousIcon"\n        [pagerNextIcon]="pagerNextIcon"\n        [page]="curPage"\n        [size]="pageSize"\n        [count]="rowCount"\n        [hidden]="!isVisible"\n        (change)="page.emit($event)">\n      </datatable-pager>\n    </div>\n  ',host:{class:"datatable-footer"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},AiMb:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="zh-CN">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>切换导航</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>仪表盘</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>集群</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>主机</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>对应的服务</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>配置项</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH 索引</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Manager 扩展模块</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>日志</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>存储池</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>块设备</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>映像</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>镜像</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>文件系统</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>对象网关</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>守护进程</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>请选择语言</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>正在加载面板的相关数据…</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana 时间选择工具</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>重新设置</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>返回</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>无法加载数据。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>选中个数</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>命中个数</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>总数</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名称</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>解释</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>更详尽的解释</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>缺省值</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>守护进程的缺省值</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>可选值</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>保存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>检查 CRUSH 索引图</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>正在加载…</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>主机名</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>请填写此栏目!</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>是的,我确定。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>取消</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>关闭</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>主机列表</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>总体性能</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>无法找到相关条目</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>集群日志</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>审计日志</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>正在加载相关配置信息...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>配置信息无法加载。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>编辑 Manager 扩展模块</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>输入值不是有效的 UUID,如:67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>输入的应该是个有效的 IP 地址。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>输入须为数字。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>输入的应该是一个浮点数或者十进制整数。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>集群 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap 修改时间</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con </target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>仲裁成员</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非仲裁成员</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>添加</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>特性</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>集群范围的 OSD 标志</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>提交</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>高级设置…</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 恢复优先级</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>优先级</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>自定义优先级</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>这个字段是必填的!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>权重值必须在 0 和 1 之间</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>重设权重</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深度}}</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深度} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 列表</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>编辑</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>删除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>健康状况</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>统计数据</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>客户端</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任何客户端均可访问</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>地址</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必填项</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>必须包含一个或多个逗号分隔值</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例如:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>访问类型</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>添加客户端</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 无可用集群 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 请选择一个集群 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>添加守护进程</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>存储后端</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 没有可用的数据存储池 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 请选择存储后端 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>对象网关用户</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 无可选用户 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 请选择对象网关用户 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 用户 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 无可用客户端 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- 请选择 cephx 客户端 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 名称</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>安全标签</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>启用安全标签</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 路径</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>路径需以“/”开头,后面可跟单词</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>将创建新文件夹</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>路径</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>路径只能是单个“/”或单词</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>将创建新的桶</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 协议</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 标签</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>客户端不能装入子目录(即如果标记为 foo,则客户端无法装入 foo/baz)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>通过使用不同标记选项,可将同一路径导出多次。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>伪</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>通过使用不同伪选项,可将同一路径导出多次。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 没有可用的访问类型 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 选择访问类型 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 没有可用的 squash --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 选择执行哪种类型的用户 ID 匿名访问 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>传输协议</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>欢迎使用 Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>请输入用户名</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>请输入密码</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>登录</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>抱歉,此用户不存在。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>禁止访问</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>抱歉,您无权访问这个页面。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 配置</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>删除本地的配置项,改用更高作用域的配置值。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小值为 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>存储池列表</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名称只能由字母、数字、短划线和下划线组成。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>此纠删码配置名称已被使用。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>纠删码算法</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>数据块 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>必须大于等于 2</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>校验块 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>必须大于等于 1</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>持久因子 (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>局部性因子 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>CRUSH 故障域</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>CRUSH 局部性</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>无</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>算法</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>packetsize</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>CRUSH 根</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>CRUSH 设备类型</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任意</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>目录</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名称…</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>此 Ceph 存储池名称已被使用。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>存储池类型</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 请选择存储池的类型 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>归置组 (PG)</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>至少需要一个归置组!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>您的集群没法支持这么多的 PG。请重新计算需要的 PG 个数。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>在线 PG 计算器</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>副本个数</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>标志</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 重写 (overwrite)</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>应用类型</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 无纠删码配置可选 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 请选择一个纠删码配置 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>CRUSH 算法规则组</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 选择 CRUSH 规则 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>CRUSH 规则</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>CRUSH 步骤</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>压缩</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>模式</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>算法</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 无可用的纠删码压缩算法 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>blob 大小下限</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>比如 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>取值必须大于 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>blob 大小上限</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>如 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>取值必须大于 blob 大小下限</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>比例</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>压缩率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>取值必须在 0.0 和 1.0 之间</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>如 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>详情</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>性能详情</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>缓存层详细信息</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>将映像移至回收站</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保护期一直到</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>无保护</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日期格式有问题。请使用“YYYY-MM-DD HH:mm:ss”。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保护期限已经过了。请设置一个将来的日期,或者清空不填。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>移动映像</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>概览</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>目标</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>发现身份验证</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>用户名长度必须在 8 到 64 个字符之间,且只能包含\n以下字符:英文字母、“.”、“@”、“-”、“_”或“:”。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>密码</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>互认证用户</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>互认证密码</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>可用信息:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>无可用 iSCSI 目标</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>存储池</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>数据存储池</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>创建</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>对象数</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>对象大小</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>供给容量</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>总供给容量</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>条带单元</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>条带个数</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>父节点</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>块存储名字前缀</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>order</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>快照</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>映像</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>此设置会覆盖全局值</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>全局</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>该值为全局值。没有为此映像设置此选项的值。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>不允许使用“/”和“@”。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 没有可用的 RBD 存储池 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 请选择存储池 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>使用一个专用的数据池</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>数据池</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>为保存 RBD 的对象数据单独分配的存储池。</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>您需要设置大一些的容量。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>高级设置</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>条带</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>条带单元大小</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 选择条带单元大小 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>因为设置了条带个数,所以这个字段是必选的!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>条带单元大小超过了对象大小。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>条带个数</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>因为设置了条带单元大小,所以这个字段是必选的!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>条带的个数必须大于 0。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>您即将进行回滚操作</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>清空回收站</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>全选</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>存储池:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>存储池名称…</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>恢复映像</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>要恢复</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>输入映像的新名称,并点击</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新名称</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>过期时间</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保护期限</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 结构图</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常无须改变这些默认参数值。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>设置</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>后备存储</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>确认</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>高级设置</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>目标限定名</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN 格式错误。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例如:iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>更多信息</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>此目标的高级设置项存在修改。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>端口</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>添加端口</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>此映像的设置项存在修改。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>添加映像</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 身份验证</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>授权人</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>授权人</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>客户端 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>授权人 IQN 必须唯一。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>用户名长度必须在 8 到 64 个字符之间,且只能包含\n以下字符:英文字母、“.”、“@”、“-”、“_”或“:”。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>授权人属于群组。映像须在群组中进行设置。</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>无项目添加。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>添加授权人</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>群组</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>群组</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>添加群组</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>回收站</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>问题</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>正在同步</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>已就绪</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>编辑存储池镜像模式</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>在禁用镜像功能前必须先移除同伴集群。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {编辑} other {添加} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>集群名称</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>集群名称无效。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID 无效。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Monitor 地址</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>逗号分割的地址...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Monitor 地址无效。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 密钥</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64 编码的密钥...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 密钥必须是 base64 编码的。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>无法读取性能计数器</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>守护进程列表</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>性能计数器</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>正在加载存储桶数据…</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>输入值无效。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>所选名称已经被使用。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>所有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 请选择一个用户 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>开启</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>索引类型</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>归置规则</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>标识</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>max marker</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>主版本</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>修改时间</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>zonegroup</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>存储桶配额</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大数目</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>无限制</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大对象数目</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>用户名</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 请选择用户名 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>自动生成密钥</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>访问密钥</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>秘密密钥</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>全名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>邮箱</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>冻结</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>系统</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大存储桶数目</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>子用户</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>用户权限</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>用户配额</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>显示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>密钥</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>类型</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 请选择一个类型 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>权限</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 请选择权限类型 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>子用户</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>所选的子用户 ID 已被使用。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>读、写</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>全部</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift 密钥</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>自动生成密钥</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>正在加载用户数据…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>用户数据无法加载。 </target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>所选的用户 ID 已被使用。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>无效的邮箱地址。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>此邮箱地址已被使用。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>存储桶个数的上限</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>禁用</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>自定义</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 密钥</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>没有子用户。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>没有任何密钥。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>权限为空。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>空间无限制</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>空间上限</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>对象个数无限制</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>对象个数上限</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>设置的值必须 &gt;= 0。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>描述…</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>权限</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>角色</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>确认密码</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>密码和之前的输入不匹配。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>邮箱</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>邮箱地址无效。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>您即将取消您自己用户的 "user read / update" 权限。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>如果您继续的话,您以后就没办法为其他用户添加或者删除角色了。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>您确实要继续吗?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>帮助</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>文档</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>关于</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>仪表盘设置</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>用户管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>登录的用户</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>登出</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>OSD map</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>元数据不可用</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>相关元数据</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>性能计数器</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>写入请求</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>读取请求</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>直方图</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>当前值</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>下限</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>上限</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>来源</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>级别</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>可在运行时更新(可编辑)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>标记</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>可选项</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>参见</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>集群状态</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>manager 守护进程</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>对象网关</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>metadata 服务器</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 网关</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>客户端 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>客户端吞吐量</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>客户端读/写</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>恢复吞吐量</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>洗刷</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>性能</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>基本容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>每个 OSD 的 PG 数</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 状态</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>排位</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>当前</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>已更新发现身份验证</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>无可用端口。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>无可用映像。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>无可用映像。请确保为目标添加一个映像。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>无可用授权人。请确保为目标添加一个授权人。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>目标</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>读字节数</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>写字节数</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>读请求数</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>写请求数</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>活动/优化自</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>实例</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>问题</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>进度</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>编辑模式</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>添加 peer</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>编辑 peer</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>删除 peer</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># 本地</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># 远程</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>镜像 peer</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>密钥</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>完全展开</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>分层</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>互斥锁</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>object map(要求互斥锁支持)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>日志(要求互斥锁支持)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>无保护的</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 快照回滚</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>回滚</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 快照</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>定点删除</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>类型</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>状态</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>主机</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>根</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>备用服务</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>排位</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>守护进程</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>活跃度</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用率</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>更新完成</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>该值可在运行时更新。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>服务器或客户端不会主动从 monitor 的配置数据库读取这个配置。\n 所以不能用“ceph config set ...”设置它。但是可以通过\n ceph.conf 或者用命令行进行配置。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>该配置只有在服务启动的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>该配置只在创建集群的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>该配置只在服务创建的时候才会生效。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>服务</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>当前值</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>可编辑</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>启用</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>禁用</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>正在重新连接,请稍候…</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>外部地址</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>活动会话</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>禁止加入</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>之前被除名的 OSD 在启动之后,不会被加入集群</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>禁止除名</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>在发现 OSD 没有响应之后一段时间,该 OSD 会被踢出集群。该标志会禁止这个功能。</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>禁止启用</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>不允许 OSD 启动</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>禁止停用</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>当前不受理对 OSD 的失效报告,因而 monitor 不会停用 OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>暂停</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>暂停读写</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>禁止洗刷</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>洗刷已禁止</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>禁止深层洗刷</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>深层洗刷已禁止</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>禁止回填</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG 回填已推迟</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>禁止恢复</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG 恢复已推迟</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>逐位排序</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>使用逐位排序</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>老版本的快照已全部升级</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD 上的快照已全部转换完毕</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>在恢复时进行删除操作</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>在恢复时,而非对齐阶段进行删除</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 日志硬限制</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>为 pg 日志长度添加硬限制</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>已更新 OSD 标志</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>除名</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>加入</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>停用</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>标记</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 丢失</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>已标记丢失</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>销毁</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>已销毁</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>删除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>读字节数</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>写字节数</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>读请求数</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>写请求数</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大回填量</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>最大活跃恢复请求数</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>最大单次恢复操作数</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>恢复/回填操作间隔睡眠时间</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>任务</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>严重程度</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>已启动</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>已使用</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>空闲</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>正常</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>运行中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警报</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>未知</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>启用中</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>无文件系统</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>工作</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>待机</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>工作的守护进程</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganesha 服务的配置还没有完成。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>传输</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 用户</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 文件系统</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(继承自全局配置)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>继承自全局配置</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 选择执行哪种类型的用户 ID 匿名访问 --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>没有可用的守护进程。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>缓存模式</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>最少延迟赶出时间</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>最少延迟刷回时间</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>目标器最大字节数</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>目标器最大对象数</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>还没有任何应用标记</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>应用标记到了上限</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>一个存储池最多能有四个应用标记。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>可用的字符为“_a-zA-Z0-9”</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>长度限制为 128 个字符</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>添加应用标记或根据其进行筛选</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>添加应用标记</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>副本个数</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>最后修改时间</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>纠删码配置</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>CRUSH 规则集</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>存储桶</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>用户</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>作用范围</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>读权限</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>新建</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>系统角色</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>更新用户</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>继续</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>您被自动登出,因为您的角色有了变动。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target> 各对象都被分割为数据块,分别存储于不同 OSD 。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>计算各对象的编码块、并存储于不同 OSD 。\n编码块的数量等同于在不丢数据的前提下允许同时失效的 OSD 数量。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>jerasure 插件是最通用、最灵活的插件,\n也是 Ceph 纠删码存储池的默认插件。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>reed_sol_van 技术更灵活:它足以设置 k 和 m 值。 \ncauchy_good 技术更快,但你得谨慎地选择 packetsize 值。\nreed_sol_r6_op 、 liberation 、 blaum_roth 、 liber8tion 都是与 RAID6 等价的技术,\n它们只能配置为 m=2 。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target> 以 bytes 大小的包为单位进行编码。\n确定合适的包尺寸很难, \njerasure 文档对此有很详细的描述。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>用 jerasure 插件时,纠删码编码的对象存储在多个 OSD 上,\n丢失一个 OSD 的恢复过程需读取所有其他的 OSD 。\n比如 jerasure 的配置为 k=8 且 m=4 ,丢失一个 OSD 后需读取其他 11 个 OSD 才能恢复。\n\nlrc 纠删码插件创建的是局部校验块,这样只需较少的 OSD 即可恢复。\n比如 lrc 的配置为 k=8 、 m=4 且 l=4 ,它将为每四个 OSD 创建额外的校验块,\n当一个 OSD 丢失时,它只需四个 OSD 即可恢复,而不需要十一个。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>把编码块和数据块分组为大小为 locality 的集合。\n比如, k=4 且 m=2 时,若设置 locality=3 ,将会分组为大小为三的两组,\n这样各组都能自行恢复,无需从另一组读数据块。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>由 l 定义的块集合将按哪种 crush 桶类型存储。\n比如,若设置为 rack ,大小为 l 块的各组将被存入不同的机架,\n此值会被用于创建类似 step choose rack 的规则集。\n如果没设置,就不会这样分组。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 插件封装了 ISA 库。它只能运行在 Intel 处理器上。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 插件包含两种 Reed Solomon 编码形式。\n设置为 reed_sol_van 表示用 Vandermonde 算法,设置为 cauchy 表示用 Cauchy 算法。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec 插件封装了 multiple SHEC 库。\n与 Reed Solomon 编码相比,它能使 Ceph 更高效地恢复数据。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target> 奇偶校验块数量,它们在各自的计算范围内包含了各数据块。\n此数值被用作持久性估值。\n例如,假设 c=2 ,就是说不丟数据的情况下可损失 2 个 OSD 。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>规则集第一步所指向的 CRUSH 桶之名,\n如 step take default 。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>确保两个编码块不会存在于同一故障域的桶里面。\n比如,假设故障域是 host ,就不会有两个编码块存储到同一主机;\n此值用于在规则集中创建类似 step chooseleaf host 的步骤。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>使用 CRUSH 索引中的 crush 设备类名,\n将归置限制于特定类的设备(例如,ssd 或 hdd)。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>设置纠删码插件所在目录。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>允许所有操作</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>只允许不修改服务器端数据的操作</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>禁止读写,但是允许其他的操作</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>禁止读、写以及任何可能修改文件内容的操作</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>完全禁止访问</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 选择优先级 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>信息</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>过去 5 分钟</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>过去 15 分钟</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>过去 30 分钟</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>过去 1 小时(默认)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>过去 3 小时</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>过去 6 小时</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>过去 12 小时</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>过去 24 小时</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨天</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>今天</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>今天到现在为止</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>前天</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>过去 2 天</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>上周的今天</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>上个星期</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>本周</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>本周以来</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>过去 7 天</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>上个月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>当月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>本月以来</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>过去 30 天</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>过去 90 天</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>过去 6 个月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>过去 1 年</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>去年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年以来</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>过去 2 年</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>过去 5 年</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>无选中项目。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>取消选择</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>达到选择项数上限。</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>过滤标签</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>添加 badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>无可选项目。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>复制</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>深层洗刷</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>销毁</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>展开</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>标记为停用</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>标记为加入</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>标记为丢失</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>标记为已除名</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保护</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>重命名</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>恢复</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>移至回收站</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>解除保护</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>删除完成</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>克隆完成</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>复制完成</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>展开完成</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>已经把</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>回滚完成</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>是</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>否</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>服务质量 (QoS)</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>指定的每秒 IO 字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>指定的每秒 IO 操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>读 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>指定的每秒内读取的字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>读 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>指定的每秒读操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>写 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>指定的每秒内写入的字节数上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>写 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>指定的每秒写操作次数上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>指定的 IO 字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>指定的 IO 操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>读 BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>指定的读取的字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>读 IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>指定的读操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>写 BPS 突发</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>指定的写入的字节数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>写 IOPS 突发</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>指定的写操作次数突发上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>正在执行</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>执行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>执行完毕</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>未知任务</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>正在创建</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>创建</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>正在更新</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>正在删除</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>正在克隆</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>正在复制</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>复制</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>正在展开</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>展开</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>正在回滚</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>回滚</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>正在把</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>把</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>已经把</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>无法找到映像。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>正在把</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>把</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>正在清除</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>所有存储池</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>因为包含同伴集群,无法禁用镜像功能</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},AqeW:function(t,e,n){"use strict";function a(t,e){for(var n,a,r,o=[],i=[];(n=document.elementFromPoint(t,e))&&-1===o.indexOf(n)&&null!=n;)o.push(n),i.push({value:n.style.getPropertyValue("pointer-events"),priority:n.style.getPropertyPriority("pointer-events")}),n.style.setProperty("pointer-events","none","important");for(a=i.length;r=i[--a];)o[a].style.setProperty("pointer-events",r.value?r.value:"",r.priority);return o}Object.defineProperty(e,"__esModule",{value:!0}),"undefined"==typeof document||document.elementsFromPoint||(document.elementsFromPoint=a),e.elementsFromPoint=a},Avrn:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("aexS"),r=n("8Y7J"),o=n("iInd");let i=(()=>{class t{constructor(t,e){this.router=t,this.authStorageService=e}canActivate(){return!!this.authStorageService.isLoggedIn()||(this.router.navigate(["/login"]),!1)}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t(r["ɵɵinject"](o.m),r["ɵɵinject"](a.a))},token:t,providedIn:"root"}),t})()},AvvY:function(t,e,n){!function(t){"use strict";t.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".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:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(t,e){return 12===t&&(t=0),"രാത്രി"===e&&t>=4||"ഉച്ച കഴിഞ്ഞ്"===e||"വൈകുന്നേരം"===e?t+12:t},meridiem:function(t,e,n){return t<4?"രാത്രി":t<12?"രാവിലെ":t<17?"ഉച്ച കഴിഞ്ഞ്":t<20?"വൈകുന്നേരം":"രാത്രി"}})}(n("wd/R"))},AxL3:function(t,e){var n=!("undefined"==typeof window||!window.document||!window.document.createElement);t.exports=n},B55N:function(t,e,n){!function(t){"use strict";t.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(t){return"午後"===t},meridiem:function(t,e,n){return t<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(t){return t.week()<this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(t){return this.week()<t.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";default:return t}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n("wd/R"))},B8du:function(t,e){t.exports=function(){return!1}},BARL:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J"),o=n("qCKp");e.ColumnChangesService=function(){function t(){this.columnInputChanges=new o.Subject}return Object.defineProperty(t.prototype,"columnInputChanges$",{get:function(){return this.columnInputChanges.asObservable()},enumerable:!0,configurable:!0}),t.prototype.onInputChange=function(){this.columnInputChanges.next()},a([r.Injectable()],t)}()},BFxc:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("7o/Q"),r=n("4I5i"),o=n("EY2u");function i(t){return function(e){return 0===t?Object(o.b)():e.lift(new s(t))}}class s{constructor(t){if(this.total=t,this.total<0)throw new r.a}call(t,e){return e.subscribe(new c(t,this.total))}}class c extends a.a{constructor(t,e){super(t),this.total=e,this.ring=new Array,this.count=0}_next(t){const e=this.ring,n=this.total,a=this.count++;e.length<n?e.push(t):e[a%n]=t}_complete(){const t=this.destination;let e=this.count;if(e>0){const n=this.count>=this.total?this.total:this.count,a=this.ring;for(let r=0;r<n;r++){const r=e++%n;t.next(a[r])}}t.complete()}}},BQkM:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return`${t} IOPS`}}},BVg3:function(t,e,n){!function(t){"use strict";function e(t){return t%100==11||t%10!=1}function n(t,n,a,r){var o=t+" ";switch(a){case"s":return n||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return e(t)?o+(n||r?"sekúndur":"sekúndum"):o+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return e(t)?o+(n||r?"mínútur":"mínútum"):n?o+"mínúta":o+"mínútu";case"hh":return e(t)?o+(n||r?"klukkustundir":"klukkustundum"):o+"klukkustund";case"d":return n?"dagur":r?"dag":"degi";case"dd":return e(t)?n?o+"dagar":o+(r?"daga":"dögum"):n?o+"dagur":o+(r?"dag":"degi");case"M":return n?"mánuður":r?"mánuð":"mánuði";case"MM":return e(t)?n?o+"mánuðir":o+(r?"mánuði":"mánuðum"):n?o+"mánuður":o+(r?"mánuð":"mánuði");case"y":return n||r?"ár":"ári";case"yy":return e(t)?o+(n||r?"ár":"árum"):o+(n||r?"ár":"ári")}}t.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_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:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},BiGR:function(t,e,n){var a=n("nmnc"),r=n("03A+"),o=n("Z0cm"),i=a?a.isConcatSpreadable:void 0;t.exports=function(t){return o(t)||r(t)||!!(i&&t&&t[i])}},Bs8V:function(t,e,n){var a=n("g6v/"),r=n("0eef"),o=n("XGwC"),i=n("/GqU"),s=n("wE6v"),c=n("UTVS"),l=n("DPsx"),d=Object.getOwnPropertyDescriptor;e.f=a?d:function(t,e){if(t=i(t),e=s(e,!0),l)try{return d(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},ByF4:function(t,e,n){!function(t){"use strict";t.defineLocale("fo",{months:"januar_februar_mars_apríl_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ánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_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:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},C523:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("gk6K"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(t,e,n,a){this.el=t,this.renderer=e,this.treeDraggedElement=n,this.ngZone=a,this.dragEventHandler=this.onDrag.bind(this)}return t.prototype.ngAfterViewInit=function(){var t=this,e=this.el.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("drag",t.dragEventHandler)}))},t.prototype.ngDoCheck=function(){this.renderer.setAttribute(this.el.nativeElement,"draggable",this.treeDragEnabled?"true":"false")},t.prototype.ngOnDestroy=function(){this.el.nativeElement.removeEventListener("drag",this.dragEventHandler)},t.prototype.onDragStart=function(t){t.dataTransfer.setData("text",t.target.id),this.treeDraggedElement.set(this.draggedElement),this.draggedElement.mouseAction&&this.draggedElement.mouseAction("dragStart",t)},t.prototype.onDrag=function(t){this.draggedElement.mouseAction&&this.draggedElement.mouseAction("drag",t)},t.prototype.onDragEnd=function(){this.draggedElement.mouseAction&&this.draggedElement.mouseAction("dragEnd"),this.treeDraggedElement.set(null)},o([Object(a.Input)("treeDrag"),i("design:type",Object)],t.prototype,"draggedElement",void 0),o([Object(a.Input)(),i("design:type",Object)],t.prototype,"treeDragEnabled",void 0),o([Object(a.HostListener)("dragstart",["$event"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],t.prototype,"onDragStart",null),o([Object(a.HostListener)("dragend"),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],t.prototype,"onDragEnd",null),o([Object(a.Directive)({selector:"[treeDrag]"}),i("design:paramtypes",[a.ElementRef,a.Renderer2,r.a,a.NgZone])],t)}()},C6Ij:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("DqMs"),o=n("/NlG"),i=n("GiVz"),s=n("SVse");n("AWcq"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return m}));var c=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","info"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,o.a,[i.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Retrieving data"])),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[". Please wait..."]))],(function(t,e){var n=e.component;t(e,1,0,"info"),t(e,5,0,n.statusFor)}),null)}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","warning"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,o.a,[i.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Displaying previously cached data"])),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,["."]))],(function(t,e){var n=e.component;t(e,1,0,"warning"),t(e,5,0,n.statusFor)}),null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,[" for "])),(t()(),a["ɵeld"](2,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,2,0,e.component.statusFor)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"cd-alert-panel",[["type","error"]],null,null,null,r.b,r.a)),a["ɵdid"](1,114688,null,0,o.a,[i.a],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,null,null,null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Could not load data"])),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[". Please check the cluster health."]))],(function(t,e){var n=e.component;t(e,1,0,"error"),t(e,5,0,n.statusFor)}),null)}function m(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](1,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](3,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](5,16384,null,0,s.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.status===n.vcs.ValueNone),t(e,3,0,n.status===n.vcs.ValueStale),t(e,5,0,n.status===n.vcs.ValueException)}),null)}},CFvb:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a={LEFT:37,UP:38,RIGHT:39,DOWN:40,ENTER:13,SPACE:32,CONTEXT_MENU:32}},CH3K:function(t,e){t.exports=function(t,e){for(var n=-1,a=e.length,r=t.length;++n<a;)t[r+n]=e[n];return t}},CMye:function(t,e,n){var a=n("GoyQ");t.exports=function(t){return t==t&&!a(t)}},CNMR:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return c}));var a=n("mrSG"),r=n("8Y7J"),o=n("hpHm");class i{constructor(){this.type="warning",this.dismissible=!1,this.dismissOnTimeout=void 0}}let s=(()=>{class t{constructor(t,e){this.changeDetection=e,this.type="warning",this.dismissible=!1,this.isOpen=!0,this.onClose=new r.EventEmitter,this.onClosed=new r.EventEmitter,this.classes="",this.dismissibleChange=new r.EventEmitter,Object.assign(this,t),this.dismissibleChange.subscribe(t=>{this.classes=this.dismissible?"alert-dismissible":"",this.changeDetection.markForCheck()})}ngOnInit(){this.dismissOnTimeout&&setTimeout(()=>this.close(),parseInt(this.dismissOnTimeout,10))}close(){this.isOpen&&(this.onClose.emit(this),this.isOpen=!1,this.changeDetection.markForCheck(),this.onClosed.emit(this))}}return Object(a.__decorate)([Object(o.a)(),Object(a.__metadata)("design:type",Object)],t.prototype,"dismissible",void 0),t})();class c{static forRoot(){return{ngModule:c,providers:[i]}}}},CVuo:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,(function(t,e,n){return e.trim()+n.toUpperCase()}))},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,(function(t){return" "+t})).replace(/^./,(function(t){return t.toUpperCase()}))}},CZoQ:function(t,e){t.exports=function(t,e,n){for(var a=n-1,r=t.length;++a<r;)if(t[a]===e)return a;return-1}},Cc8h:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("qCKp"),s=n("kU1M");n("czA5"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new o.EventEmitter,this.longPressing=new o.EventEmitter,this.longPressEnd=new o.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=i.fromEvent(document,"mouseup");this.subscription=n.subscribe((function(t){return e.onMouseup()})),this.timeout=setTimeout((function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(i.fromEvent(document,"mousemove").pipe(s.takeUntil(n)).subscribe((function(t){return e.onMouseMove(t)}))),e.loop(t)}),this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout((function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)}),50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressStart",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressing",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressEnd",void 0),a([o.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([o.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([o.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([o.Directive({selector:"[long-press]"})],t)}()},Cfvw:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("HDdC"),r=n("SeVD"),o=n("7HRe");function i(t,e){return e?Object(o.a)(t,e):t instanceof a.a?t:new a.a(Object(r.a)(t))}},ChqD:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},CjzT:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},CoRJ:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})}(n("wd/R"))},CoVI:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("2vnA"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(t,e){this.templateRef=t,this.viewContainer=e,this.templateBindings={}}return t.prototype.ngOnInit=function(){this.view=this.viewContainer.createEmbeddedView(this.templateRef),this.dispose&&this.dispose(),this.shouldDetach()&&this.view.detach(),this.autoDetect(this.view)},t.prototype.shouldDetach=function(){return this.treeMobxAutorun&&this.treeMobxAutorun.detach},t.prototype.autoDetect=function(t){this.dispose=Object(r.b)((function(){return t.detectChanges()}))},t.prototype.ngOnDestroy=function(){this.dispose&&this.dispose()},o([Object(a.Input)(),i("design:type",Object)],t.prototype,"treeMobxAutorun",void 0),o([Object(a.Directive)({selector:"[treeMobxAutorun]"}),i("design:paramtypes",[a.TemplateRef,a.ViewContainerRef])],t)}()},Cwc5:function(t,e,n){var a=n("NKxu"),r=n("Npjl");t.exports=function(t,e){var n=r(t,e);return a(n)?n:void 0}},CxY0:function(t,e,n){"use strict";var a=n("nYho"),r=n("Nehr");function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=_,e.resolve=function(t,e){return _(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?_(t,!1,!0).resolveObject(e):e},e.format=function(t){return r.isString(t)&&(t=_(t)),t instanceof o?t.format():o.prototype.format.call(t)},e.Url=o;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),d=["'"].concat(l),u=["%","/","?",";","#"].concat(d),g=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},h={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n("r8II");function _(t,e,n){if(t&&r.isObject(t)&&t instanceof o)return t;var a=new o;return a.parse(t,e,n),a}o.prototype.parse=function(t,e,n){if(!r.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),s=-1!==o&&o<t.indexOf("#")?"?":"#",l=t.split(s);l[0]=l[0].replace(/\\/g,"/");var _=t=l.join(s);if(_=_.trim(),!n&&1===t.split("#").length){var O=c.exec(_);if(O)return this.path=_,this.href=_,this.pathname=O[1],O[2]?(this.search=O[2],this.query=e?y.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var v=i.exec(_);if(v){var C=(v=v[0]).toLowerCase();this.protocol=C,_=_.substr(v.length)}if(n||v||_.match(/^\/\/[^@\/]+@[^@\/]+/)){var P="//"===_.substr(0,2);!P||v&&h[v]||(_=_.substr(2),this.slashes=!0)}if(!h[v]&&(P||v&&!b[v])){for(var M,x,w=-1,T=0;T<g.length;T++)-1!==(S=_.indexOf(g[T]))&&(-1===w||S<w)&&(w=S);for(-1!==(x=-1===w?_.lastIndexOf("@"):_.lastIndexOf("@",w))&&(M=_.slice(0,x),_=_.slice(x+1),this.auth=decodeURIComponent(M)),w=-1,T=0;T<u.length;T++){var S;-1!==(S=_.indexOf(u[T]))&&(-1===w||S<w)&&(w=S)}-1===w&&(w=_.length),this.host=_.slice(0,w),_=_.slice(w),this.parseHost(),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k)for(var I=this.hostname.split(/\./),N=(T=0,I.length);T<N;T++){var R=I[T];if(R&&!R.match(f)){for(var A="",E=0,D=R.length;E<D;E++)R.charCodeAt(E)>127?A+="x":A+=R[E];if(!A.match(f)){var L=I.slice(0,T),q=I.slice(T+1),j=R.match(p);j&&(L.push(j[1]),q.unshift(j[2])),q.length&&(_="/"+q.join(".")+_),this.hostname=L.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),k||(this.hostname=a.toASCII(this.hostname)),this.host=(this.hostname||"")+(this.port?":"+this.port:""),this.href+=this.host,k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==_[0]&&(_="/"+_))}if(!m[C])for(T=0,N=d.length;T<N;T++){var F=d[T];if(-1!==_.indexOf(F)){var z=encodeURIComponent(F);z===F&&(z=escape(F)),_=_.split(F).join(z)}}var G=_.indexOf("#");-1!==G&&(this.hash=_.substr(G),_=_.slice(0,G));var B=_.indexOf("?");return-1!==B?(this.search=_.substr(B),this.query=_.substr(B+1),e&&(this.query=y.parse(this.query)),_=_.slice(0,B)):e&&(this.search="",this.query={}),_&&(this.pathname=_),b[C]&&this.hostname&&!this.pathname&&(this.pathname="/"),(this.pathname||this.search)&&(this.path=(this.pathname||"")+(this.search||"")),this.href=this.format(),this},o.prototype.format=function(){var t=this.auth||"";t&&(t=(t=encodeURIComponent(t)).replace(/%3A/i,":"),t+="@");var e=this.protocol||"",n=this.pathname||"",a=this.hash||"",o=!1,i="";this.host?o=t+this.host:this.hostname&&(o=t+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&r.isObject(this.query)&&Object.keys(this.query).length&&(i=y.stringify(this.query));var s=this.search||i&&"?"+i||"";return e&&":"!==e.substr(-1)&&(e+=":"),this.slashes||(!e||b[e])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),a&&"#"!==a.charAt(0)&&(a="#"+a),s&&"?"!==s.charAt(0)&&(s="?"+s),e+o+(n=n.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(s=s.replace("#","%23"))+a},o.prototype.resolve=function(t){return this.resolveObject(_(t,!1,!0)).format()},o.prototype.resolveObject=function(t){if(r.isString(t)){var e=new o;e.parse(t,!1,!0),t=e}for(var n=new o,a=Object.keys(this),i=0;i<a.length;i++){var s=a[i];n[s]=this[s]}if(n.hash=t.hash,""===t.href)return n.href=n.format(),n;if(t.slashes&&!t.protocol){for(var c=Object.keys(t),l=0;l<c.length;l++){var d=c[l];"protocol"!==d&&(n[d]=t[d])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(t.protocol&&t.protocol!==n.protocol){if(!b[t.protocol]){for(var u=Object.keys(t),g=0;g<u.length;g++){var f=u[g];n[f]=t[f]}return n.href=n.format(),n}if(n.protocol=t.protocol,t.host||h[t.protocol])n.pathname=t.pathname;else{for(var p=(t.pathname||"").split("/");p.length&&!(t.host=p.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),n.pathname=p.join("/")}return n.search=t.search,n.query=t.query,n.host=t.host||"",n.auth=t.auth,n.hostname=t.hostname||t.host,n.port=t.port,(n.pathname||n.search)&&(n.path=(n.pathname||"")+(n.search||"")),n.slashes=n.slashes||t.slashes,n.href=n.format(),n}var m=n.pathname&&"/"===n.pathname.charAt(0),y=t.host||t.pathname&&"/"===t.pathname.charAt(0),_=y||m||n.host&&t.pathname,O=_,v=n.pathname&&n.pathname.split("/")||[],C=(p=t.pathname&&t.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===v[0]?v[0]=n.host:v.unshift(n.host)),n.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(""===p[0]?p[0]=t.host:p.unshift(t.host)),t.host=null),_=_&&(""===p[0]||""===v[0])),y)n.host=t.host||""===t.host?t.host:n.host,n.hostname=t.hostname||""===t.hostname?t.hostname:n.hostname,n.search=t.search,n.query=t.query,v=p;else if(p.length)v||(v=[]),v.pop(),v=v.concat(p),n.search=t.search,n.query=t.query;else if(!r.isNullOrUndefined(t.search))return C&&(n.hostname=n.host=v.shift(),(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift())),n.search=t.search,n.query=t.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n;if(!v.length)return n.pathname=null,n.path=n.search?"/"+n.search:null,n.href=n.format(),n;for(var P=v.slice(-1)[0],M=(n.host||t.host||v.length>1)&&("."===P||".."===P)||""===P,x=0,w=v.length;w>=0;w--)"."===(P=v[w])?v.splice(w,1):".."===P?(v.splice(w,1),x++):x&&(v.splice(w,1),x--);if(!_&&!O)for(;x--;x)v.unshift("..");!_||""===v[0]||v[0]&&"/"===v[0].charAt(0)||v.unshift(""),M&&"/"!==v.join("/").substr(-1)&&v.push("");var T,S=""===v[0]||v[0]&&"/"===v[0].charAt(0);return C&&(n.hostname=n.host=S?"":v.length?v.shift():"",(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift())),(_=_||n.host&&v.length)&&!S&&v.unshift(""),v.length?n.pathname=v.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=t.auth||n.auth,n.slashes=n.slashes||t.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var t=this.host,e=s.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},"D/JM":function(t,e,n){!function(t){"use strict";t.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("wd/R"))},D0XW:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("3N8a");const r=new(n("IjjT").a)(a.a)},D4zM:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e){this.elementRef=t,this.renderer=e}ngOnInit(){this.renderer.setAttribute(this.elementRef.nativeElement,"tabindex","-1"),this.iElement=this.renderer.createElement("i"),this.renderer.addClass(this.iElement,"fa"),this.renderer.appendChild(this.elementRef.nativeElement,this.iElement),this.update()}getInputElement(){return document.getElementById(this.cdPasswordButton)}update(){const t=this.getInputElement();t&&"text"===t.type?(this.renderer.removeClass(this.iElement,"fa-eye"),this.renderer.addClass(this.iElement,"fa-eye-slash")):(this.renderer.removeClass(this.iElement,"fa-eye-slash"),this.renderer.addClass(this.iElement,"fa-eye"))}onClick(){const t=this.getInputElement();t.type="password"===t.type?"text":"password",this.update()}}},DH7j:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>Array.isArray||(t=>t&&"number"==typeof t.length))()},"DKr+":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[n][0]:r[n][1]}t.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:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})}(n("wd/R"))},DNAf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{constructor(t,e){this.customValidations={},this.i18n=e,this.empty=this.i18n("No items selected."),this.selectionLimit={tooltip:this.i18n("Deselect item to select again"),text:this.i18n("Selection limit reached")},this.filter=this.i18n("Filter tags"),this.add=this.i18n("Add badge"),this.noOptions=this.i18n("There are no items available."),a.merge(this,t)}}},DPsx:function(t,e,n){var a=n("g6v/"),r=n("0Dky"),o=n("zBJ4");t.exports=!a&&!r((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},DSRE:function(t,e,n){(function(t){var a=n("Kz5y"),r=n("B8du"),o=e&&!e.nodeType&&e,i=o&&"object"==typeof t&&t&&!t.nodeType&&t,s=i&&i.exports===o?a.Buffer:void 0;t.exports=(s?s.isBuffer:void 0)||r}).call(this,n("YuTi")(t))},DSvg:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("vkgz"),r=n("aexS"),o=n("8Y7J"),i=n("IheW"),s=n("iInd"),c=n("pL04");let l=(()=>{class t{constructor(t,e,n){this.authStorageService=t,this.http=e,this.router=n}check(t){return this.http.post("api/auth/check",{token:t})}login(t){return this.http.post("api/auth",t).pipe(Object(a.a)(t=>{this.authStorageService.set(t.username,t.token,t.permissions,t.sso,t.pwdExpirationDate,t.pwdUpdateRequired)}))}logout(t=null){return this.http.post("api/auth/logout",null).subscribe(e=>{this.router.navigate(["/logout"],{skipLocationChange:!0}),this.authStorageService.remove(),t&&t(),window.location.replace(e.redirect_url)})}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t(o["ɵɵinject"](r.a),o["ɵɵinject"](i.c),o["ɵɵinject"](s.m))},token:t,providedIn:c.a}),t})()},Dkky:function(t,e,n){!function(t){"use strict";t.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n("wd/R"))},Dmvi:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},DoHr:function(t,e,n){!function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};t.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_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ün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'ıncı";var a=t%10;return t+(e[a]||e[t%100-a]||e[t>=100?100:null])}},week:{dow:1,doy:7}})}(n("wd/R"))},DqMs:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("IZUe"),i=n("MdoF"),s=n("CNMR");n("/NlG"),n("GiVz"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return _}));var c=a["ɵcrt"]({encapsulation:0,styles:[[".alert-panel-icon[_ngcontent-%COMP%]{vertical-align:top;padding-right:.5em}.alert-panel-title[_ngcontent-%COMP%]{font-weight:700}"]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"td",[["class","alert-panel-icon"],["rowspan","2"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpad"](4,1)],(function(t,e){var n=e.component,r=a["ɵinlineInterpolate"](2,"alert-",n.bootstrapClass," ",n.typeIcon,""),o=t(e,4,0,n.icons.large3x);t(e,3,0,r,o)}),null)}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-title"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](6,0,null,null,3,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](7,0,null,null,2,"td",[["class","alert-panel-text"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](9,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.showIcon),t(e,5,0,n.showTitle),t(e,9,0,a["ɵnov"](e.parent,6))}),null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-icon"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"i",[["aria-hidden","true"]],[[8,"className",0]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](2,"alert-",n.bootstrapClass," ",n.typeIcon,""))}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"td",[["class","alert-panel-title"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](5,0,null,null,2,"td",[["class","alert-panel-text"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.showIcon),t(e,4,0,n.showTitle),t(e,7,0,a["ɵnov"](e.parent,6))}),null)}function b(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],null,null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"button",[["autofocus",""],["class","btn btn-light tc_backButton"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.backAction.emit()&&a),a}),null,null)),a["ɵdid"](2,4210688,null,0,o.a,[a.ElementRef],{autofocus:[0,"autofocus"]},null),(t()(),a["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,2,0,"")}),null)}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"alert",[],null,null,null,i.c,i.b)),a["ɵdid"](1,114688,null,0,s.a,[s.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,3,"table",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["slim",2]],null,0,null,h)),(t()(),a["ɵand"](0,[["content",2]],null,0,null,b)),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](8,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](1,"",n.bootstrapClass,"")),t(e,4,0,"normal"===n.size,a["ɵnov"](e,5)),t(e,8,0,n.backAction.observers.length>0)}),null)}},"Dw+G":function(t,e,n){var a=n("juv8"),r=n("mTTR");t.exports=function(t,e){return t&&a(e,r(e),t)}},Dwqy:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("wd/R");class r{constructor(){}transform(t){return t?a(1e3*t).fromNow():"unknown"}}},DxQv:function(t,e,n){!function(t){"use strict";t.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øndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".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å dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få 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åned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},DzJC:function(t,e,n){var a=n("sEfC"),r=n("GoyQ");t.exports=function(t,e,n){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return r(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),a(t,e,{leading:o,maxWait:e,trailing:i})}},Dzi0:function(t,e,n){!function(t){"use strict";t.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(t){return t},week:{dow:1,doy:4}})}(n("wd/R"))},"E+lV":function(t,e,n){!function(t){"use strict";var e={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".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:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},E2fk:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return"[INF]"===t?"info":"[WRN]"===t?"warn":"[ERR]"===t?"err":""}}},E2jh:function(t,e,n){var a,r=n("2gN3"),o=(a=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||""))?"Symbol(src)_1."+a:"";t.exports=function(t){return!!o&&o in t}},E9XD:function(t,e,n){"use strict";var a=n("I+eb"),r=n("1Y/n").left,o=n("pkCn"),i=n("rkAj"),s=o("reduce"),c=i("reduce",{1:0});a({target:"Array",proto:!0,forced:!s||!c},{reduce:function(t){return r(this,t,arguments.length,arguments.length>1?arguments[1]:void 0)}})},EA7m:function(t,e,n){var a=n("zZ0H"),r=n("Ioao"),o=n("wclG");t.exports=function(t,e){return o(r(t,e,a),t+"")}},EApP:function(t,e,n){"use strict";n.d(e,"a",(function(){return v})),n.d(e,"b",(function(){return d})),n.d(e,"c",(function(){return _})),n.d(e,"d",(function(){return s})),n.d(e,"e",(function(){return x})),n.d(e,"f",(function(){return T})),n.d(e,"g",(function(){return c})),n.d(e,"h",(function(){return P})),n.d(e,"i",(function(){return C})),n.d(e,"j",(function(){return y})),n("mrSG");var a=n("8Y7J"),r=n("XNiG"),o=n("cUpR"),i=n("SVse");let s=class{};class c{constructor(t,e,n,a,o,i){this.toastId=t,this.config=e,this.message=n,this.title=a,this.toastType=o,this.toastRef=i,this._onTap=new r.a,this._onAction=new r.a,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}}const l={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},d=new a.InjectionToken("ToastConfig");class u{constructor(t,e){this.component=t,this.injector=e}attach(t,e){return this._attachedHost=t,t.attach(this,e)}detach(){const t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return null!=this._attachedHost}setAttachedHost(t){this._attachedHost=t}}class g extends class{attach(t,e){return this._attachedPortal=t,this.attachComponentPortal(t,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}}{constructor(t,e,n){super(),this._hostDomElement=t,this._componentFactoryResolver=e,this._appRef=n}attachComponentPortal(t,e){const n=this._componentFactoryResolver.resolveComponentFactory(t.component);let a;return a=n.create(t.injector),this._appRef.attachView(a.hostView),this.setDisposeFn(()=>{this._appRef.detachView(a.hostView),a.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(a),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(a)),a}_getComponentRootNode(t){return t.hostView.rootNodes[0]}}let f=(()=>{let t=class{constructor(t){this._document=t}ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t=this._document.createElement("div");t.classList.add("overlay-container"),this._document.body.appendChild(t),this._containerElement=t}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(i.DOCUMENT))},token:t,providedIn:"root"}),t})();class p{constructor(t){this._portalHost=t}attach(t,e=!0){return this._portalHost.attach(t,e)}detach(){return this._portalHost.detach()}}let m=(()=>{let t=class{constructor(t,e,n,a){this._overlayContainer=t,this._componentFactoryResolver=e,this._appRef=n,this._document=a,this._paneElements=new Map}create(t,e){return this._createOverlayRef(this.getPaneElement(t,e))}getPaneElement(t="",e){return this._paneElements.get(e)||this._paneElements.set(e,{}),this._paneElements.get(e)[t]||(this._paneElements.get(e)[t]=this._createPaneElement(t,e)),this._paneElements.get(e)[t]}_createPaneElement(t,e){const n=this._document.createElement("div");return n.id="toast-container",n.classList.add(t),n.classList.add("toast-container"),e?e.getContainerElement().appendChild(n):this._overlayContainer.getContainerElement().appendChild(n),n}_createPortalHost(t){return new g(t,this._componentFactoryResolver,this._appRef)}_createOverlayRef(t){return new p(this._createPortalHost(t))}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(f),Object(a["ɵɵinject"])(a.ComponentFactoryResolver),Object(a["ɵɵinject"])(a.ApplicationRef),Object(a["ɵɵinject"])(i.DOCUMENT))},token:t,providedIn:"root"}),t})();class h{constructor(t){this._overlayRef=t,this.duplicatesCount=0,this._afterClosed=new r.a,this._activate=new r.a,this._manualClose=new r.a,this._resetTimeout=new r.a,this._countDuplicate=new r.a}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,e){t&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}}class b{constructor(t,e){this._toastPackage=t,this._parentInjector=e}get(t,e,n){return t===c?this._toastPackage:this._parentInjector.get(t,e,n)}}let y=(()=>{let t=class{constructor(t,e,n,a,r){this.overlay=e,this._injector=n,this.sanitizer=a,this.ngZone=r,this.currentlyActive=0,this.toasts=[],this.index=0,this.toastrConfig=Object.assign({},t.default,t.config),t.config.iconClasses&&(this.toastrConfig.iconClasses=Object.assign({},t.default.iconClasses,t.config.iconClasses))}show(t,e,n={},a=""){return this._preBuildNotification(a,t,e,this.applyConfig(n))}success(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.success||"",t,e,this.applyConfig(n))}error(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.error||"",t,e,this.applyConfig(n))}info(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.info||"",t,e,this.applyConfig(n))}warning(t,e,n={}){return this._preBuildNotification(this.toastrConfig.iconClasses.warning||"",t,e,this.applyConfig(n))}clear(t){for(const e of this.toasts)if(void 0!==t){if(e.toastId===t)return void e.toastRef.manualClose()}else e.toastRef.manualClose()}remove(t){const e=this._findToast(t);if(!e)return!1;if(e.activeToast.toastRef.close(),this.toasts.splice(e.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length)return!1;if(this.currentlyActive<this.toastrConfig.maxOpened&&this.toasts[this.currentlyActive]){const t=this.toasts[this.currentlyActive].toastRef;t.isInactive()||(this.currentlyActive=this.currentlyActive+1,t.activate())}return!0}findDuplicate(t,e,n){for(const a of this.toasts)if(a.message===t)return a.toastRef.onDuplicate(e,n),a;return null}applyConfig(t={}){return Object.assign({},this.toastrConfig,t)}_findToast(t){for(let e=0;e<this.toasts.length;e++)if(this.toasts[e].toastId===t)return{index:e,activeToast:this.toasts[e]};return null}_preBuildNotification(t,e,n,a){return a.onActivateTick?this.ngZone.run(()=>this._buildNotification(t,e,n,a)):this._buildNotification(t,e,n,a)}_buildNotification(t,e,n,r){if(!r.toastComponent)throw new Error("toastComponent required");const o=this.findDuplicate(e,this.toastrConfig.resetTimeoutOnDuplicate&&r.timeOut>0,this.toastrConfig.countDuplicates);if(e&&this.toastrConfig.preventDuplicates&&null!==o)return o;this.previousToastMessage=e;let i=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(i=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));const s=this.overlay.create(r.positionClass,this.overlayContainer);this.index=this.index+1;let l=e;e&&r.enableHtml&&(l=this.sanitizer.sanitize(a.SecurityContext.HTML,e));const d=new h(s),g=new c(this.index,r,l,n,t,d),f=new b(g,this._injector),p=new u(r.toastComponent,f),m=s.attach(p,this.toastrConfig.newestOnTop);d.componentInstance=m._component;const y={toastId:this.index,message:e||"",toastRef:d,onShown:d.afterActivate(),onHidden:d.afterClosed(),onTap:g.onTap(),onAction:g.onAction(),portal:m};return i||setTimeout(()=>{y.toastRef.activate(),this.currentlyActive=this.currentlyActive+1}),this.toasts.push(y),y}};return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t(Object(a["ɵɵinject"])(d),Object(a["ɵɵinject"])(m),Object(a["ɵɵinject"])(a.INJECTOR),Object(a["ɵɵinject"])(o.b),Object(a["ɵɵinject"])(a.NgZone))},token:t,providedIn:"root"}),t})(),_=class{constructor(t,e,n){this.toastrService=t,this.toastPackage=e,this.ngZone=n,this.width=-1,this.toastClasses="",this.state={value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}},this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(t=>{this.duplicatesCount=t})}get displayStyle(){if("inactive"===this.state.value)return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state=Object.assign({},this.state,{value:"active"}),!this.options.disableTimeOut&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state=Object.assign({},this.state,{value:"active"}),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.state=Object.assign({},this.state,{value:"removed"}),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){"removed"!==this.state.value&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state.value&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state.value||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(t,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(t),e)):this.timeout=setTimeout(()=>t(),e)}outsideInterval(t,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(t),e)):this.intervalId=setInterval(()=>t(),e)}runInsideAngular(t){this.ngZone?this.ngZone.run(()=>t()):t()}};var O;const v=Object.assign({},l,{toastComponent:_});let C=O=class{static forRoot(t={}){return{ngModule:O,providers:[{provide:d,useValue:{default:v,config:t}}]}}},P=class{static forRoot(t={}){return{ngModule:C,providers:[{provide:d,useValue:{default:l,config:t}}]}}};var M;let x=class{constructor(t,e,n){this.toastrService=t,this.toastPackage=e,this.appRef=n,this.width=-1,this.toastClasses="",this.state="inactive",this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(t=>{this.duplicatesCount=t})}get displayStyle(){if("inactive"===this.state)return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state="active",!this.options.disableTimeOut&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=(new Date).getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(0===this.width||100===this.width||!this.options.timeOut)return;const t=(new Date).getTime();this.width=(this.hideTime-t)/this.options.timeOut*100,"increasing"===this.options.progressAnimation&&(this.width=100-this.width),this.width<=0&&(this.width=0),this.width>=100&&(this.width=100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state="active",this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=(new Date).getTime()+(this.originalTimeout||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){"removed"!==this.state&&(clearTimeout(this.timeout),this.state="removed",this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){"removed"!==this.state&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){"removed"!==this.state&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width=0)}delayedHideToast(){this.options.disableTimeOut||0===this.options.extendedTimeOut||"removed"===this.state||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=(new Date).getTime()+(this.options.timeOut||0),this.width=-1,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}};const w=Object.assign({},l,{toastComponent:x});let T=M=class{static forRoot(t={}){return{ngModule:M,providers:[{provide:d,useValue:{default:w,config:t}}]}}}},EEGq:function(t,e,n){var a=n("juv8"),r=n("oCl/");t.exports=function(t,e){return a(t,r(t),e)}},EEJc:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("ajRT");n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"a",(function(){return c}));var o=a["ɵcrt"]({encapsulation:0,styles:[[".modal-header[_ngcontent-%COMP%]{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:5px 5px 0 0}  .modal-footer{border-bottom:1px solid #d1d1d1;background-color:#f5f5f5;border-radius:0 0 5px 5px}  .modal-body{max-height:70vh;overflow-y:auto;overflow-x:hidden}"]],data:{}});function i(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"h4",[["class","modal-title float-left"]],null,null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵeld"](3,0,null,null,2,"button",[["aria-label","Close"],["class","close float-right"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["×"])),a["ɵncd"](null,1)],null,null)}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-modal",[],null,null,null,i,o)),a["ɵdid"](1,49152,null,0,r.a,[],null,null)],null,null)}var c=a["ɵccf"]("cd-modal",r.a,s,{modalRef:"modalRef"},{hide:"hide"},[".modal-title",".modal-content"])},ENF9:function(t,e,n){"use strict";var a,r=n("2oRo"),o=n("4syw"),i=n("8YOa"),s=n("bWFh"),c=n("rKzb"),l=n("hh1v"),d=n("afO8").enforce,u=n("f5p1"),g=!r.ActiveXObject&&"ActiveXObject"in r,f=Object.isExtensible,p=function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},m=t.exports=s("WeakMap",p,c);if(u&&g){a=c.getConstructor(p,"WeakMap",!0),i.REQUIRED=!0;var h=m.prototype,b=h.delete,y=h.has,_=h.get,O=h.set;o(h,{delete:function(t){if(l(t)&&!f(t)){var e=d(this);return e.frozen||(e.frozen=new a),b.call(this,t)||e.frozen.delete(t)}return b.call(this,t)},has:function(t){if(l(t)&&!f(t)){var e=d(this);return e.frozen||(e.frozen=new a),y.call(this,t)||e.frozen.has(t)}return y.call(this,t)},get:function(t){if(l(t)&&!f(t)){var e=d(this);return e.frozen||(e.frozen=new a),y.call(this,t)?_.call(this,t):e.frozen.get(t)}return _.call(this,t)},set:function(t,e){if(l(t)&&!f(t)){var n=d(this);n.frozen||(n.frozen=new a),y.call(this,t)?O.call(this,t,e):n.frozen.set(t,e)}else O.call(this,t,e);return this}})}},EOgW:function(t,e,n){!function(t){"use strict";t.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".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"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(t){return"หลังเที่ยง"===t},meridiem:function(t,e,n){return t<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n("wd/R"))},EQ5u:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return c}));var a=n("XNiG"),r=n("HDdC"),o=(n("7o/Q"),n("quSY")),i=n("x+ZX");class s extends r.a{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 o.a,t.add(this.source.subscribe(new l(this.getSubject(),this))),t.closed&&(this._connection=null,t=o.a.EMPTY)),t}refCount(){return Object(i.a)()(this)}}const c=(()=>{const t=s.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 l extends a.b{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()}}}},ES0t:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("8Y7J"),r=n("KOzp"),o=n("SVse"),i=a["ɵcrt"]({encapsulation:0,styles:[".bs3.popover-top[_nghost-%COMP%] {\n      margin-bottom: 10px;\n    }\n    .bs3.popover.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -2px;\n    }\n    .bs3.popover.top[_nghost-%COMP%] {\n      margin-bottom: 10px;\n    }\n    .popover.bottom[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -4px;\n    }\n    .bs3.bs-popover-left[_nghost-%COMP%] {\n      margin-right: .5rem;\n    }\n    .bs3.bs-popover-right[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%], .bs3.bs-popover-left[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%]{\n      margin: .3rem 0;\n    }"],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"h3",[["class","popover-title popover-header"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.title)}))}function c(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","popover-arrow arrow"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,s)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"div",[["class","popover-content popover-body"]],null,null,null,null,null)),a["ɵncd"](null,0)],(function(t,e){t(e,2,0,e.component.title)}),null)}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"popover-container",[["role","tooltip"],["style","display:block;"]],[[8,"className",0],[2,"show",null],[2,"bs3",null]],null,null,c,i)),a["ɵdid"](1,49152,null,0,r.b,[r.a],null,null)],null,(function(t,e){t(e,0,0,"popover in popover-"+a["ɵnov"](e,1).placement+" bs-popover-"+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).containerClass,!a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).isBs3)}))}var d=a["ɵccf"]("popover-container",r.b,l,{placement:"placement",title:"title"},{},["*"])},EY2u:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}));var a=n("HDdC");const r=new a.a(t=>t.complete());function o(t){return t?function(t){return new a.a(e=>t.schedule(()=>e.complete()))}(t):r}},EgGo:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("SVse"),r=n("sne2");class o{constructor(t){this.base=t}static concatURLSegments(t){return t.reduce(a.Location.joinWithSlash)}static buildURL(t,...e){return o.concatURLSegments([...t?["/"]:[],...e])}getURL(t,e=!0,...n){return o.buildURL(e,this.base,t,...n)}getCreate(t=!0){return this.getURL(r.e.CREATE,t)}getCreateFrom(t,e=!0){return this.getURL(r.e.CREATE,e,t)}getDelete(t=!0){return this.getURL(r.e.DELETE,t)}getEdit(t,e=!0){return this.getURL(r.e.EDIT,e,t)}getUpdate(t,e=!0){return this.getURL(r.e.UPDATE,e,t)}getAdd(t=!0){return this.getURL(r.e.ADD,t)}getRemove(t=!0){return this.getURL(r.e.REMOVE,t)}getRecreate(t,e=!0){return this.getURL(r.e.RECREATE,e,t)}}},EiPl:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="de-DE">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Navigation umschalten</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dashboard</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Cluster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Verzeichnis</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitore</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Services</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfiguration</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH-Zuordnung</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Manager-Module</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Protokolle</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Überwachung</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pools</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Block</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Images</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Spiegelung</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Dateisysteme</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Objektgateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Buckets</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Daten \n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> für\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>werden abgerufen. Bitte warten...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Zuvor zwischengespeicherte Daten\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  für \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> werden angezeigt.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Daten\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> für\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/> konnten nicht geladen werden.\n  Prüfen Sie die Clusterintegrität.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Benachrichtigungen löschen</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Benachrichtigungen entfernen</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Dauer:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>Es sind keine Benachrichtigungen verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Aufträge und Benachrichtigungen</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Sprache auswählen</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Bereichsdaten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Lesen Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Überwachungsfunktion.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Das Grafana-Dashboard ist nicht vorhanden. In der\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> wird beschrieben,\n  wie Grafana Dashboards hinzugefügt werden.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana-Zeitauswahl</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Einstellungen für Zurücksetzungen</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Entfernen Sie den aktuellen Konfigurationswert. Stattdessen wird der Standard-Konfigurationswert übernommen und verwendet.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Zurück</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Das Passwort läuft in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>weniger als 1 \n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>Tag ab. Klicken Sie \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> hier \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, um es jetzt zu ändern.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Das Passwort läuft in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>Tag(en) ab. Klicken Sie \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> hier \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, um es jetzt zu ändern.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Das Modul "Orchestrator" ist nicht verfügbar. Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>zum Konfigurieren und Aktivieren dieses Moduls.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Daten konnten nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Filter löschen</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>ausgewählt</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>gefunden</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>insgesamt</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Name</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Beschreibung</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Detaillierte Beschreibung</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Standard</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon-Standard</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Werte</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Standard --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>wahr</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>falsch</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Speichern</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSH-Betrachter</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Laden...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Hostname</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Dies ist ein Pflichtfeld.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>Der ausgewählte Hostname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Sind Sie sicher dass Sie die ausgewählten Einträge \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> möchten?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Sind Sie sicher dass Sie die ausgewählten \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> möchten?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ja, ich bin sicher.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Abbrechen</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Schließen</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Liste mit Hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Gesamtleistung</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Laufwerke</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Keine Einträge gefunden</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Clusterprotokolle</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Revisionsprotokoll</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priorität:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Schlüsselwort:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Datum:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datumsauswahl</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Zeitraum:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Konfiguration wird geladen...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Die Konfiguration konnte nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Manager-Modul bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Der eingegebene Wert ist kein gültiger UUID, z. B.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Der eingegebene Wert muss eine gültige IP-Adresse sein.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er muss kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/> sein oder diesem Wert entsprechen.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er muss größer als \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/> sein oder diesem Wert entsprechen.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Der eingegebene Wert muss eine Zahl sein.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Der eingegebene Wert muss eine Zahl oder Dezimalzahl sein.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aktualisiere</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Cluster-ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Monmap geändert</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>Monmap-Epoche</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>erforderliche Verbindung</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>erforderliche Überwachung</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>In Quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Nicht in Quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>Vorschau der OSD-Erstellung</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> Laufwerke\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Löschen</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Geteilte Laufwerke</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL Slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>Wie viele OSDs pro WAL-Laufwerk.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Geben Sie 0 an, um das Orchestrator-Backend entscheiden zu lassen.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Der Wert sollte größer als oder gleich 0 sein</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB Slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>Wie viele OSDs pro DB-Laufwerk.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funktionen</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Vorschau</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Clusterweite OSD-Flags</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Absenden</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Erweitert...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Erweiterte Konfigurationsoptionen</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD-Wiederherstellungspriorität</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorität</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Prioritätswerte anpassen</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Dies ist ein Pflichtfeld!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu hoch! Er darf nicht größer als \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>Der eingegebene Wert ist zu niedrig! Er darf nicht kleiner als \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Der Wert muss zwischen 0 und 1 liegen.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Neu gewichten</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Tief } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {tief } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD-Liste</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Aktive Warnungen</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>Alle Warnungen</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Wählen Sie das zu vergleichende Attribut --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Wert</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Regulären Ausdruck verwenden</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Löschen</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Das Bearbeiten einer Stummschaltung löscht die Vorherige und legt eine neue Stummschaltung an.</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Ersteller</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Kommentar</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Startzeit</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>Wenn die Startzeit in der Vergangenheit liegt, wird die Erstellungszeit verwendet</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Dauer</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>Ende</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Integrität</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiken</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für NFS Ganesha.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clients</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Jeder Client hat Zugriff</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adressen</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Pflichtfeld</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Muss mindestens einen kommagetrennten Wert enthalten</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Beispielsweise:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Zugriffstyp</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Clients hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Kein Cluster verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Cluster auswählen --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Daemon hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Speicher-Back-End</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Keine Datenpools verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Speicher-Back-End auswählen --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Objektgatewaybenutzer</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Keine Benutzer verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Objektgatewaybenutzer auswählen --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS-Benutzer-ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- keine Clients verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephx-Client auswählen --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS-Name</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- Kein CephFS Dateisystem verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- CephFS Dateisystem auswählen --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Sicherheitsbezeichnung</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Sicherheitsbezeichnung aktivieren</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS-Pfad</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Pfad muss mit einem \'/\' beginnen und kann von einem Wort gefolgt werden</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Neues Verzeichnis wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Pfad</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Pfad darf nur ein einzelner \'/\' oder ein Wort sein</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Neuer Bucket wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS-Protokoll</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS-Tag</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternativer Zugriff für \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>-Mountpunkte (dürfen keinen führenden / enthalten)\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Clients können Unterverzeichnisse möglicherweise nicht mounten (d. h. wenn der Pfad = foo ist, kann der Client foo/baz möglicherweise nicht mounten).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Wenn unterschiedliche Tag-Optionen verwendet werden, wird derselbe Pfad möglicherweise mehrfach exportiert.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>Die Position dieses \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>-Exports\n                auf dem \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo-Dateisystem\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (muss eindeutig sein).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Wenn unterschiedliche Pseudo-Optionen verwendet werden, wird derselbe Pfad möglicherweise mehrfach exportiert.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Kein Zugriffstyp verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Zugriffstyp auswählen --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>Das NFS-Backend für das Objektgateway besitzt eine Reihe von\n Einschränkungen, die Schreibvorgänge von Anwendungen auf diese\n Freigaben ernsthaft beeinträchtigen. Bitte konsultieren Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> Dokumentation \n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> für weitere Informationen, bevor Sie den Schreibzugriff aktivieren.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Kein Squash verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Durchzuführende Benutzer-ID-Squashing-Art auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Transportprotokoll</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Altes Passwort</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>Das alte und neue Passwort müssen unterschiedlich sein.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>Neues Passwort</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Neues Passwort bestätigen</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Passwortbestätigung stimmt nicht mit dem neuen Passwort überein.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Bitte legen Sie ein neues Passwort fest.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>Sie werden anschließend auf die Login-Seite weitergeleitet.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Willkommen bei Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Benutzername ist erforderlich</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Passwort ist erforderlich</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Anmeldung</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Der Benutzer ist in Ceph leider nicht enthalten.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Kehren Sie zur \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Anmeldeseite\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zurück. Sie werden vom Identitätsanbieter abgemeldet, wenn Sie versuchen, sich erneut anzumelden.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Verboten</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Leider sind Sie nicht berechtigt, den gewünschten Inhalt anzuzeigen.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Leider konnte der gewünschte Inhalt nicht gefunden werden.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Weder Hostname noch OSD ID angegeben</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>bestanden</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>fehlgeschlagen</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Laufwerksinformationen</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>Keine SMART-Daten für dieses Laufwerk verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART-Daten werden geladen.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD-Konfiguration</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Entfernen Sie den lokalen Konfigurationswert. Stattdessen wird der übergeordnete Konfigurationswert übernommen und verwendet.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Der Mindestwert lautet 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Pool-Liste</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Der Name darf nur alphanumerische Zeichen, Bindestriche und Unterstriche enthalten.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Der ausgewählte Erasure-Coding-Profilname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Laufwerksklasse</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Datenblöcke (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Muss größer oder gleich 2 sein.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Datenblöcke für die Codierung (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Muss größer oder gleich 1 sein.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Dauerhaftigkeitsschätzung (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Standort (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Crush-Ausfalldomäne</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Crush-Standort</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Keine</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technik</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Paketgröße</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crush-Stamm</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Crush-Geräteklasse</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>beliebig</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Verzeichnis</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Name...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Der ausgewählte Poolname wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Pooltyp</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Pooltyp auswählen --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoskalierung</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Platzierungsgruppen</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Es wird mindestens eine Platzierungsgruppe benötigt.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Ihr Cluster kann nicht so viele Platzierungsgruppen verarbeiten. Berechnen Sie die benötigte Anzahl an Platzierungsgruppen.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Hilfe zur Berechnung</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>Die aktuellen Einstellungen für die Platzierungsgruppen wurden für Sie berechnet.\n                    Stellen Sie vor dem Senden sicher, dass die Werte Ihren Anforderungen entsprechen.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Reproduzierte Größe</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>Die angegebene Größe liegt außerhalb des Bereichs. Gültige Werte liegen zwischen\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> und \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flags</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC-Überschreibungen</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Anwendungen</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Kein Erasure-Coding-Profil verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Erasure-Coding-Profil auswählen --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Crush-Regelsatz</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>Ein neuer CRUSH Regelsatz wird implizit erstellt.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>Keine Regeln vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Crush-Regel auswählen --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crush-Regel</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush-Schritte</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Komprimierung</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modus</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorithmus</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Kein Komprimierungsalgorithmus für Erasure-Coding verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimale Blobgröße</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>z. B. 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Wert sollte größer als 0 sein</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Wert sollte niedriger als die maximale Blobgröße sein</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Maximale Blobgröße</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>z. B. 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Wert sollte größer als die minimale Blobgröße sein</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Verhältnis</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Komprimierungsverhältnis</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Wert sollte zwischen 0,0 und 1,0 liegen</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Kontingente</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max. Bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Lassen Sie das Feld leer oder geben Sie 0 an, um dieses Quota zu deaktivieren.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>Ein gültiges Kontingent sollte größer als 0 sein.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>z. B. 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max. Objekte</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>Der Wert sollte größer als oder gleich 0 sein</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Details</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Leistungsdetails</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Details zu den Cache-Ebenen</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Bootstrap-Token erstellen</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site-Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>Mindestens ein Pool ist erforderlich.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Erzeugen</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Erzeugtes Token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Bootstrap-Token importieren</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Richtung</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>Der Token ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Site-Namen bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site-Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Image in Papierkorb verschieben</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Schutz läuft ab am</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NICHT GESCHÜTZT</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Falsches Datumsformat. Verwenden Sie "TT.MM.JJJJ HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Schutz ist bereits abgelaufen. Wählen Sie ein künftiges Datum aus oder lassen Sie es leer.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Image verschieben</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Muss grösser oder gleich \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Muss kleiner oder gleich \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/> sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Übersicht</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Ziele</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Ermittlungsauthentifizierung</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Benutzernamen müssen zwischen 8 und 64 Zeichen lang sein und\n              dürfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Passwort</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Gemeinsamer Benutzer</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Gemeinsames Passwort</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Lesen Sie die\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für iSCSI-Ziele.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Verfügbare Informationen:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI-Ziele nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Ermittlungsauthentifizierung</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Nur für RBD-Images verfügbar, bei denen \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> aktiviert ist\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Datenpool</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Erstellt</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Größe</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objekte</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Objektgröße</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Bereitgestellt</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>n. v.</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Bereitgestellt gesamt</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Striping-Einheit</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Striping-Anzahl</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Übergeordnet</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Präfix für Blockname</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Reihenfolge</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshots</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Diese Einstellung überschreibt den globalen Wert</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Dies ist der globale Wert. Kein Wert für diese Option wurde für dieses Image festgelegt.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' und \'@\' sind nicht zulässig.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Keine rbd-Pools verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Pool auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- Keine Namensräume verfügbar --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Namensraum auswählen --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Dedizierten Datenpool verwenden</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Datenpool</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Dedizierter Pool zur Speicherung von RBD-Objektdaten.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Sie müssen die Größe erhöhen.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Erweitert</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Striping</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Stripe-Einheit</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Stripe-Einheit auswählen --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Dies ist ein Pflichtfeld, da eine Stripe-Anzahl definiert wurde!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Die Stripe-Einheit ist größer als die Objektgröße.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Stripe-Anzahl</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Dies ist ein Pflichtfeld, da eine Stripe-Einheit definiert wurde!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Die Stripe-Anzahl muss größer als 0 sein.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Namensraum anlegen</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namensraum existiert bereits.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Sie sind dabei, ein Rollback durchzuführen</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Papierkorb bereinigen</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Alle</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Poolname...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Image wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Zum Wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>Neuen Namen des Images eingeben und klicken</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Neuer Name</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Abgelaufen am</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Geschützt bis</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>Dieses Image ist geschützt bis \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI-Topologie</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Konfigurieren</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Eine Änderung dieser Parameter von ihren Standardwerten ist in der Regel nicht erforderlich.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Bezeichner</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Bestätigen</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Erweiterte Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Ziel-IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN hat ein fehlerhaftes Muster.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>Eine IQN hat die folgende Notation \n\'iqn.$jahr-$monat.$umkehradresse:$definierterName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Zum Beispiel: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Weitere Informationen</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Erweiterte Einstellungen bei diesem Ziel wurden geändert.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portale</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Portal hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>Es sind mindestens \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> Gateways erforderlich.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Einstellungen bei diesem Image wurden geändert.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Image hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL-Authentifizierung</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Initiatoren</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Initiator</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Client-IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Initiator-IQN muss eindeutig sein.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Benutzernamen müssen zwischen 8 und 64 Zeichen lang sein und\n                        dürfen nur Buchstaben, \'.\', \'@\', \'-\', \'_\' oder \':\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwörter müssen zwischen 12 und 16 Zeichen lang sein\n              und dürfen nur Buchstaben, \'@\', \'-\', \'_\' oder \'/\' enthalten.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Der Initiator gehört zu einer Gruppe. Images werden in der Gruppe konfiguriert.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Keine Elemente hinzugefügt.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Initiator hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Gruppen</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Gruppe</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Gruppe hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namensräume</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Papierkorb</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Probleme</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Wird synchronisiert</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Fertig</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Spiegelungsmodus für Pool bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Wählen Sie zum Bearbeiten des Spiegelungsmodus für den Pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> einen neuen Modus aus der Liste aus und klicken Sie auf \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Aktualisieren\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Vor dem Deaktivieren der Spiegelung müssen Peer-Cluster entfernt werden.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  Peer für Poolspiegelung\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Bearbeiten} other {Hinzufügen} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Clustername</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Der Clustername ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX-ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX-ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>Die CephX ID ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adressen der Monitore</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Kommagetrennte Adressen...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Die Anrede ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64-codierter Schlüssel...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX-Schlüssel muss base64-codiert sein.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Leistungsindikatoren nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Lesen Sie die \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Dokumentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> zum\n  Konfigurieren und Aktivieren der Verwaltungsfunktion für das Objektgateway.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Liste der Daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Leistungsindikatoren</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Bucket-Daten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Der Wert ist ungültig.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Der ausgewählte Name wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Inhaber</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Benutzer auswählen --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Aktiviert</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Indextyp</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Platzierungsregel</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marker</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Maximum für Marker</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Masterversion</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Änderungszeit</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Zonengruppe</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Bucket-Quote</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Maximale Größe</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Unbegrenzt</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Maximale Objekte</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Benutzername</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Benutzername auswählen --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Schlüssel automatisch generieren</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Zugriffsschlüssel</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Geheimer Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Vollständiger Name</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>E-Mail-Adresse</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Angehalten</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>System</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Maximale Buckets</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Befähigungen</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Benutzerquote</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Anzeigen</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Typ auswählen --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Berechtigung</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Berechtigung auswählen --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Die ausgewählte Unterbenutzer-ID wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lesen, schreiben</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>voll</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Geheimnis automatisch generieren</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Benutzerdaten werden geladen...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Die Benutzerdaten konnten nicht geladen werden.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Die ausgewählte Benutzer-ID wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Dies ist keine gültige E-Mail-Adresse.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Die ausgewählte E-Mail-Adresse wird bereits verwendet.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Max. Buckets</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Benutzerdefiniert</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Keine Unterbenutzer vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Keine Schlüssel vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Keine Befähigungen vorhanden.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Unbegrenzte Größe</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Max. Größe</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Unbegrenzte Objekte</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Max. Objekte</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Der eingegebene Wert muss &gt;=0 sein.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Beschreibung...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Berechtigungen</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Rollen</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Passwort bestätigen</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Passwortbestätigung stimmt nicht mit dem Passwort überein.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Ablaufdatum des Passworts</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Ablaufdatum des Passworts...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-Mail-Adresse</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Ungültige E-Mail-Adresse.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>Benutzer muss das Passwort bei der nächsten Anmeldung ändern</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Sie sind dabei, die Lese-/Aktualisierungsberechtigungen für Benutzer von Ihrem eigenen Benutzer zu entfernen.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Wenn Sie den Vorgang fortsetzen, können Sie Benutzerrollen nicht mehr hinzufügen oder entfernen.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Möchten Sie den Vorgang wirklich fortsetzen?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Hilfe</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentation</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Über</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Dashboard-Einstellungen</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Benutzerverwaltung</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Angemeldeter Benutzer</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Angemeldet als\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Passwort ändern</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Abmelden</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attribute (OSD-Zuordnung)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadaten nicht verfügbar</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadaten</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Laufwerkszustand</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Leistungsindikator</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogramm nicht verfügbar: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Schreiben</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lesen</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogramm</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>Hostname nicht gefunden.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Aktuelle Werte</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Quelle</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Ebene</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Kann zur Laufzeit aktualisiert werden (bearbeitbar)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tags</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Auflistungswerte</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Siehe auch</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Clusterstatus</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manager-Daemons</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Objektgateways</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Metadatenserver</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI-Gateways</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>Client-IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Clientdurchsatz</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Client-Lese-/Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Wiederherstellungsdurchsatz</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Scrub</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Leistung</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Rohkapazität</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Platzierungsgruppen pro OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Platzierungsgruppenstatus</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapazität</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> Weitere Details finden Sie in den \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Protokollen\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Ränge</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS Leistungsindikatoren</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Verzeichnisse</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Aktuell</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target> Ermittlungsauthentifizierung aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Keine Portale verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Keine Images verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Keine Images verfügbar. Fügen Sie dem Ziel ein Image hinzu.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Keine Initiatoren verfügen. Fügen Sie dem Ziel einen Initiator hinzu.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Ziel</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Zustand</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes für Lesevorgang</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes für Schreibvorgang</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O seit</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instanz</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problem</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Fortschritt</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Bearbeitungsmodus</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Peer hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Peer bearbeiten</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Peer löschen</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># lokal</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># remote</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>Peer spiegeln</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Umfassende Vereinfachung</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Schichtung</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Exklusive Sperre</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Objektzuordnung (erfordert exklusive Sperre)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journaling (erfordert exklusive Sperre)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namensraum</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Images insgesamt</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namensraum enthält Images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NICHT GESCHÜTZT</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Rollback für RBD-Snapshot</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Rollback</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD-Snapshot</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Gelöscht am</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>Zustand</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>Stamm</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Standby-Daemons</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Rang</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivität</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Nutzung</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Der Wert kann zur Laufzeit aktualisiert werden.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemons/Clients rufen diesen Wert nicht aus der\n      Datenbank \'monitor config\' ab. Es ist nicht zulässig, diese Option über \'ceph config\n      set ...\' festzulegen. Diese Option sollte über \'ceph.conf\' oder an der\n      Befehlszeile konfiguriert werden.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Die Option wird nur während des Daemon-Starts wirksam.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Die Option wirkt sich nur auf die Cluster-Erstellung aus.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Die Option wirkt sich nur auf die Daemon-Erstellung aus.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Aktualisierte Konfigurationsoption \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Service</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Aktueller Wert</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Bearbeitbar</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Laufwerkspfad</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identifiziere Laufwerk \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifikation von \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' auf Host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\' gestartet\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Aktivieren</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Deaktivieren</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Verbindung wird erneut hergestellt, bitte warten...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Öffentliche Adresse</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Offene Sitzungen</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Kein In-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSDs, die zuvor als \'out\' markiert wurden, werden beim Start nicht wieder markiert</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Kein Out-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSDs werden nach dem konfigurierten Intervall nicht automatisch als \'out\' markiert</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Kein Up-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSDs dürfen nicht gestartet werden</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Kein Down-Vorgang</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>OSD-Fehlerberichte werden ignoriert, sodass die Monitore die OSDs nicht als ausgefallen markieren</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pause</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Hält Lese- und Schreibvorgänge an</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Kein Scrub</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Scrubbing ist deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Kein umfassender Scrub</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Umfassendes Scrubbing ist deaktiviert</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Kein Abgleich</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Abgleich der Platzierungsgruppen ist ausgesetzt</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Keine Wiederherstellung</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Wiederherstellung der Platzierungsgruppen ist ausgesetzt</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Bitweise Sortierung</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Bitweise Sortierung verwenden</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Bereinigte Snapdirs</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDs besitzen konvertierte Snapsets</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Löschvorgänge bei Wiederherstellungen</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Bei der Wiederherstellung anstelle des Peerings durchgeführte Löschvorgänge</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Hardlimit für Platzierungsgruppen-Protokoll</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Legt ein Hardlimit für die Platzierungsgruppen-Protokolllänge fest</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Aktualisierte OSD-Flags</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>aus</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>ein</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>ausgefallen</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Markieren</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD verloren</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>markierter Verlust</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Bereinigen</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>bereinigt</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>vernichten</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>vernichtet</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>löschen</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Wiederherstellungspriorität</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG Scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Platzierungsgruppen</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes für Lesevorgang</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes für Schreibvorgang</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/> markieren\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/> markieren\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG Scrub-Optionen</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Aktualisierte PG Scrub-Optionen</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max. Abgleiche</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Wiederherstellung, max. aktiv</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Wiederherstellung, max. - einzelner Start</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Wiederherstellung - Inaktivität</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Auftrag</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Schweregrad</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Gestartet</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attributname</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regulärer Ausdruck</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Bitte fügen Sie Ihren Prometheus-Host zur Dashboard-Konfiguration hinzu und aktualisieren die Seite</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Erstellt von</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Endet</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Verwendet</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Verf.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Bereinigen</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>In Bearbeitung</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Warnung</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Unbekannt</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>aktiv</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>keine Dateisysteme</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktiv</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>Standby</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n. v.</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktiver Daemon</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>Quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Der NFS Ganesha-Dienst ist nicht konfiguriert.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS-Benutzer</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS-Dateisystem</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(aus globaler Konfiguration übernommen)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>aus globaler Konfiguration übernommen</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Durchzuführende Benutzer-ID-Squashing-Art auswählen --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Keine Daemons verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS-Export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC-Profil</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Cache-Modus</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min. Alter für Vertreibung</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min. Alter für Leerung</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Max. Bytes für Ziel</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Max. Objekte für Ziel</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Keine Anwendungen hinzugefügt</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Anwendungslimit erreicht</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Ein Pool kann nur bis zu vier Anwendungsdefinitionen aufweisen.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Zulässige Zeichen \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Maximale Länge beträgt 128 Zeichen</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Anwendungen filtern oder hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Anwendung hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Größe des Replikats</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Letzte Änderung</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Erasure-Coding-Profil</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Crush-Regelsatz</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Das Löschen des Pools ist durch die Konfigurationsoption mon_allow_pool_delete deaktiviert.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>Bucket</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>Buckets</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>Unterbenutzer</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>Benutzer</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift-Schlüssel</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Laufwerks-ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Laufwerksname</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Bereich</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lesen</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Erstelle</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>Rolle</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' erstellt\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' aktualisiert\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Systemrolle</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Rolle \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\' gelöscht\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Benutzer aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Fortfahren</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Sie wurden automatisch abgemeldet, da Ihre Rollen geändert wurden.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>Passwort</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Benutzerpasswort aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Jedes Objekt wird in Datenblöcke aufgeteilt und jeweils auf einem anderen OSD gespeichert.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Berechnen Sie Codierungsdatenblöcke für jedes Objekt und speichern Sie sie auf unterschiedlichen OSDs.\n      Die Anzahl der Codierungsdatenblöcke entspricht auch der Anzahl der OSDs, die ausfallen können, ohne dass Daten verloren gehen.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Das jerasure-Modul ist das allgemeinste und flexibelste Modul\n          und fungiert auch als der Standard für Ceph-Pools mit Löschcodierung.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Die flexiblere Technik ist \'reed_sol_van :\', wobei es ausreicht, k\n          und m festzulegen. Die Technik \'cauchy_good\' kann schneller sein. Sie müssen jedoch die Paketgröße sorgfältig\n          auswählen. Sämtliche \'reed_sol_r6_op\'-, \'liberation\'-, \'blaum_roth\'- und \'liber8tion\'-Vorgänge sind dahingehend RAID6-Entsprechungen,\n          dass sie nur mit \'m=2\' konfiguriert werden können.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Die Codierung wird jeweils für Pakete auf Bytes-Größe vorgenommen.\n          Die Auswahl der richtigen Paketgröße ist schwierig.\n          In der Jerasure-Dokumentation sind ausführliche Informationen zu diesem Thema enthalten.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Bei Verwendung des Jerasure-Moduls, wenn ein Objekt mit Löschcodierung auf mehreren OSDs gespeichert ist,\n          müssen alle anderen OSDs gelesen werden, um die verloren gegangenen Daten eines OSDs wiederherzustellen.\n          Wenn jerasure beispielsweise mit \'k=8\' und \'m=4\' konfiguriert ist,\n          müssen bei Verlust eines OSDs zum Reparieren die elf anderen gelesen werden.\n\n          Das lrc-Löschcode-Modul erstellt lokale Paritätsdatenblöcke, um die Wiederherstellung mit weniger OSDs auszuführen.\n          Wenn lrc beispielsweise mit \'k=8\', \'m=4\' und \'l=4\' konfiguriert ist, wird ein zusätzlicher Paritätsdatenblock für jeweils vier OSDs erstellt.\n          Geht ein einzelnes OSD verloren, kann es mit nur vier OSDs anstelle\n          von elf wiederhergestellt werden.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Gruppieren Sie die Codierungs- und Datenblöcke in Sätze entsprechend dem Speicherort.\n          Beispielsweise werden für \'k=4\' und \'m=2\', wenn der Speicherort \'3\' entspricht, zwei Dreiergruppen erstellt.\n          Jeder Satz kann wiederhergestellt werden, ohne dass Datenblöcke aus einem anderen Satz gelesen werden.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Der Typ des Crush-Buckets, in dem jeder durch l definierte Satz von Datenblöcken gespeichert wird.\n          Wenn er beispielsweise auf \'rack\' festgelegt ist, wird jede Gruppe an l-Datenblöcken in einem anderen Rack platziert.\n          Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise für einen Schritt zum Auswählen des Racks.\n          Wenn er nicht festgelegt ist, wird keine solche Gruppierung vorgenommen.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Das isa-Modul kapselt die ISA-Bibliothek und wird nur auf Intel-Prozessoren ausgeführt.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Das ISA-Modul wird in zwei Reed Solomon-Formularen bereitgestellt.\n          Wenn \'reed_sol_van\' festgelegt ist, entspricht dies Vandermonde. Ist \'cauchy\' festgelegt, entspricht dies \'Cauchy\'.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Das shec-Modul kapselt die SHEC-Mehrfachbibliothek.\n          Dadurch kann ceph Daten effizienter wiederherstellen als Reed Solomon-Codes.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Die Anzahl der Paritätsdatenblöcke, von denen jeder jeden Datenblock in seinem Berechnungsbereich enthält.\n          Die Anzahl wird als eine Dauerhaftigkeitsschätzung verwendet. Wenn beispielsweise \'c=2\' vorliegt,\n          können 2 OSDs ausfallen, ohne dass Daten verloren gehen.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Der Name des für den ersten Schritt der CRUSH-Regel verwendeten Crush-Buckets.\n      Beispielsweise \'step take default\'.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Stellen Sie sicher, dass sich keine zwei Datenblöcke in einem Bucket mit derselben Ausfalldomäne befinden.\n      Wenn die Ausfalldomäne beispielsweise als Host fungiert, werden keine zwei Datenblöcke auf demselben Host gespeichert.\n      Er wird zum Erstellen eines CRUSH-Regelschritts verwendet, beispielsweise \'step chooseleaf host\'.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Schränken Sie mithilfe der Klassennamen für Crush-Geräte in der CRUSH-Zuordnung die Platzierung\n      auf Geräte einer bestimmten Klasse (z. B. SSD oder HDD) ein.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Legen Sie den Verzeichnisnamen fest, über den das Löschcode-Modul geladen wird.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Lässt alle Vorgänge zu</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Lässt nur Vorgänge zu, die den Server nicht ändern</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Lässt weder Lese- noch Schreibvorgänge zu, jedoch alle anderen Vorgänge</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Lässt Lese-/Schreibvorgänge und andere Vorgänge nicht zu, die Dateiattribute oder Verzeichnisinhalte ändern</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Lässt überhaupt keinen Zugriff zu</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Priorität auswählen --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Niedrig</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Hoch</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informationen</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Letzte 5 Minuten</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Letzte 15 Minuten</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Letzte 30 Minuten</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Letzte Stunde (Standard)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Letzte 3 Stunden</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Letzte 6 Stunden</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Letzte 12 Stunden</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Letzte 24 Stunden</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Gestern</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Heute</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Heute bisher</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Vorgestern</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Letzte 2 Tage</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Dieser Tag letzte Woche</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Vorwoche</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Diese Woche</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Diese Woche bisher</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Letzte 7 Tage</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Vormonat</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Dieser Monat</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Dieser Monat bisher</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Letzte 30 Tage</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Letzte 90 Tage</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Letzte 6 Monate</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Letztes Jahr</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Vorjahr</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Dieses Jahr</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Dieses Jahr bisher</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Letzte 2 Jahre</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Letzte 5 Jahre</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Keine Elemente ausgewählt.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Elementauswahl zum erneuten Auswählen aufheben</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Auswahllimit erreicht</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tags filtern</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Badge hinzufügen</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Keine Elemente verfügbar.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Entfernen</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klonen</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopieren</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Umfassender Scrub</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Vernichten</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Vereinfachen</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Als ausgefallen markieren</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Mit Befehl \'In\' markieren</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Als verloren markieren</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Mit Befehl \'Out\' markieren</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Schützen</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Umbenennen</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>In Papierkorb verschieben</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Schutz aufheben</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Ändern</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Gelöscht</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Hinzugefügt</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Entfernt</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Bearbeitet</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Abgebrochen</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Geklont</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Kopiert</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Vereinfacht</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Geschützt</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Bereinigt</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Umbenannt</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Wiederhergestellt</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rollback wurde ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>In den Papierkorb verschoben</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Schutz aufgehoben</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Abgelaufen</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ja</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Nein</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Erforderliche Regeln für Passwörter:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>keine aktiven Warnungen</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 aktive Warnung</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> aktive Warnungen\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> mit \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Quality of Service</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS-Limit</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Das gewünschte Limit der E/A-Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS-Limit</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Das gewünschte Limit der E/A-Vorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>BPS-Limit für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Das gewünschte Limit der gelesenen Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>IOPS-Limit für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Das gewünschte Limit für Lesevorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>BPS-Limit für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Das gewünschte Limit der geschriebenen Bytes pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>IOPS-Limit für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Das gewünschte Limit für Schreibvorgänge pro Sekunde.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS-Block</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Das gewünschte Blocklimit der E/A-Bytes.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS-Block</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Das gewünschte Blocklimit der E/A-Vorgänge.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>BPS-Block für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Das gewünschte Blocklimit der gelesenen Bytes.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>IOPS-Block für Lesevorgänge</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Das gewünschte Blocklimit der Lesevorgänge.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>BPS-Block für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Das gewünschte Blocklimit der geschriebenen Bytes.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>IOPS-Block für Schreibvorgänge</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Das gewünschte Blocklimit der Schreibvorgänge.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Wird ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>ausführen</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>Unbekannte Aufgabe</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Wird erstellt</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>erstellen</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Wird aktualisiert</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aktualisieren</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Wird gelöscht</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD-Snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>Spiegelungsmodus für Pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>Alle Dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> enthält Snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Wird geklont</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klonen</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot von \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> muss geschützt sein.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Wird kopiert</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>kopieren</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Wird vereinfacht</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>vereinfachen</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name wird bereits von \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Der Schutz von \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> kann aufgrund untergeordneter Images nicht aufgehoben werden.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> kann nicht gelöscht werden, da es geschützt ist.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Rollback wird ausgeführt</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>Rollback</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Wird verschoben</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>verschieben</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Verschoben</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' in Papierkorb verschieben\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Image konnte nicht gefunden werden.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Wird wiederhergestellt</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>wiederherstellen</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' in \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\' verschieben\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image-Name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' wird bereits verwendet.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>Image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Wird bereinigt</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>bereinigen</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>alle Pools</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>Images von \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Spiegelung kann nicht deaktiviert werden, da sie einen Peer enthält.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>Pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>Erasure-Coding-Profil \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>Ziel \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},EmSq:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("8Y7J"),r=n("LvDl");n("Fgil"),n("aXbf");class o{constructor(t,e,n,r){this.elementRef=t,this.control=e,this.dimlessBinaryPipe=n,this.formatter=r,this.ngModelChange=new a.EventEmitter,this.el=this.elementRef.nativeElement}ngOnInit(){this.setValue(this.el.value)}setValue(t){/^[\d.]+$/.test(t)&&(t+=this.defaultUnit||"m");const e=this.formatter.toBytes(t),n=this.round(e);this.el.value=this.dimlessBinaryPipe.transform(n),null!==e?(this.ngModelChange.emit(this.el.value),this.control.control.setValue(this.el.value)):(this.ngModelChange.emit(null),this.control.control.setValue(null))}round(t){if(null!==t&&0!==t){if(!r.isUndefined(this.minBytes)&&t<this.minBytes)return this.minBytes;if(!r.isUndefined(this.maxBytes)&&t>this.maxBytes)return this.maxBytes;if(!r.isUndefined(this.roundPower)){const e=Math.round(Math.log(t)/Math.log(this.roundPower));return Math.pow(this.roundPower,e)}}return t}onBlur(t){this.setValue(t)}}},EpBk:function(t,e){t.exports=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t}},ExA7:function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"F+uO":function(t,e,n){var a={"./messages.cs.xlf":"ViD7","./messages.de-DE.xlf":"EiPl","./messages.es-ES.xlf":"yt+r","./messages.fr-FR.xlf":"V5SL","./messages.id-ID.xlf":"jqst","./messages.it-IT.xlf":"8j5A","./messages.ja-JP.xlf":"bN42","./messages.ko-KR.xlf":"3+CB","./messages.pl-PL.xlf":"SPu7","./messages.pt-BR.xlf":"+Wg/","./messages.zh-CN.xlf":"AiMb","./messages.zh-TW.xlf":"HjS5"};function r(t){var e=o(t);return n(e)}function o(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}r.keys=function(){return Object.keys(a)},r.resolve=o,t.exports=r,r.id="F+uO"},F8JR:function(t,e,n){"use strict";var a=n("tycR").forEach,r=n("pkCn"),o=n("rkAj"),i=r("forEach"),s=o("forEach");t.exports=i&&s?[].forEach:function(t){return a(this,t,arguments.length>1?arguments[1]:void 0)}},F8xH:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J"),o=n("SVse"),i=n("Nia1"),s=n("mn2k"),c=n("bpWZ");e.NgxDatatableModule=function(){return a([r.NgModule({imports:[o.CommonModule],providers:[c.ScrollbarHelper,c.DimensionsHelper,c.ColumnChangesService],declarations:[i.DataTableFooterTemplateDirective,s.VisibilityDirective,s.DraggableDirective,s.ResizeableDirective,s.OrderableDirective,s.LongPressDirective,i.ScrollerComponent,i.DatatableComponent,i.DataTableColumnDirective,i.DataTableHeaderComponent,i.DataTableHeaderCellComponent,i.DataTableBodyComponent,i.DataTableFooterComponent,i.DataTablePagerComponent,i.ProgressBarComponent,i.DataTableBodyRowComponent,i.DataTableRowWrapperComponent,i.DatatableRowDetailDirective,i.DatatableGroupHeaderDirective,i.DatatableRowDetailTemplateDirective,i.DataTableBodyCellComponent,i.DataTableSelectionComponent,i.DataTableColumnHeaderDirective,i.DataTableColumnCellDirective,i.DataTableColumnCellTreeToggle,i.DatatableFooterDirective,i.DatatableGroupHeaderTemplateDirective,i.DataTableSummaryRowComponent],exports:[i.DatatableComponent,i.DatatableRowDetailDirective,i.DatatableGroupHeaderDirective,i.DatatableRowDetailTemplateDirective,i.DataTableColumnDirective,i.DataTableColumnHeaderDirective,i.DataTableColumnCellDirective,i.DataTableColumnCellTreeToggle,i.DataTableFooterTemplateDirective,i.DatatableFooterDirective,i.DataTablePagerComponent,i.DatatableGroupHeaderTemplateDirective]})],(function(){}))}()},"F97/":function(t,e,n){"use strict";function a(t,e){function n(){return!n.pred.apply(n.thisArg,arguments)}return n.pred=t,n.thisArg=e,n}n.d(e,"a",(function(){return a}))},FE24:function(t,e,n){"use strict";n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return d})),n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return g})),n.d(e,"e",(function(){return p})),n.d(e,"f",(function(){return l})),n.d(e,"g",(function(){return f}));var a=n("8Y7J"),r=n("pLZG"),o=n("z/SZ"),i=n("hpHm"),s=n("2uy1");class c{constructor(){this.autoClose=!0,this.insideClick=!1}}class l{constructor(){this.direction="down",this.isOpenChange=new a.EventEmitter,this.isDisabledChange=new a.EventEmitter,this.toggleClick=new a.EventEmitter,this.dropdownMenu=new Promise(t=>{this.resolveDropdownMenu=t})}}class d{constructor(t,e,n,a){this._state=t,this.cd=e,this._renderer=n,this._element=a,this.isOpen=!1,this._subscription=t.isOpenChange.subscribe(t=>{this.isOpen=t;const e=this._element.nativeElement.querySelector(".dropdown-menu");e&&!Object(i.d)()&&(this._renderer.addClass(e,"show"),e.classList.contains("dropdown-menu-right")&&(this._renderer.setStyle(e,"left","auto"),this._renderer.setStyle(e,"right","0")),"up"===this.direction&&(this._renderer.setStyle(e,"top","auto"),this._renderer.setStyle(e,"transform","translateY(-101%)"))),this.cd.markForCheck(),this.cd.detectChanges()})}get direction(){return this._state.direction}_contains(t){return this._element.nativeElement.contains(t)}ngOnDestroy(){this._subscription.unsubscribe()}}class u{constructor(t,e,n,a,r,o){this._elementRef=t,this._renderer=e,this._viewContainerRef=n,this._cis=a,this._config=r,this._state=o,this._isInlineOpen=!1,this._subscriptions=[],this._isInited=!1,this._state.autoClose=this._config.autoClose,this._state.insideClick=this._config.insideClick,this._dropdown=this._cis.createLoader(this._elementRef,this._viewContainerRef,this._renderer).provide({provide:l,useValue:this._state}),this.onShown=this._dropdown.onShown,this.onHidden=this._dropdown.onHidden,this.isOpenChange=this._state.isOpenChange}set autoClose(t){this._state.autoClose=t}get autoClose(){return this._state.autoClose}set insideClick(t){this._state.insideClick=t}get insideClick(){return this._state.insideClick}set isDisabled(t){this._isDisabled=t,this._state.isDisabledChange.emit(t),t&&this.hide()}get isDisabled(){return this._isDisabled}get isOpen(){return this._showInline?this._isInlineOpen:this._dropdown.isShown}set isOpen(t){t?this.show():this.hide()}get isBs4(){return!Object(i.d)()}get _showInline(){return!this.container}ngOnInit(){this._isInited||(this._isInited=!0,this._dropdown.listen({outsideClick:!1,triggers:this.triggers,show:()=>this.show()}),this._subscriptions.push(this._state.toggleClick.subscribe(t=>this.toggle(t))),this._subscriptions.push(this._state.isDisabledChange.pipe(Object(r.a)(t=>t)).subscribe(t=>this.hide())))}show(){if(!this.isOpen&&!this.isDisabled)return this._showInline?(this._inlinedMenu||this._state.dropdownMenu.then(t=>{this._dropdown.attachInline(t.viewContainer,t.templateRef),this._inlinedMenu=this._dropdown._inlineViewRef,this.addBs4Polyfills()}).catch(),this.addBs4Polyfills(),this._isInlineOpen=!0,this.onShown.emit(!0),void this._state.isOpenChange.emit(!0)):void this._state.dropdownMenu.then(t=>{const e=this.dropup||void 0!==this.dropup&&this.dropup;this._state.direction=e?"up":"down";const n=this.placement||(e?"top start":"bottom start");this._dropdown.attach(d).to(this.container).position({attachment:n}).show({content:t.templateRef,placement:n}),this._state.isOpenChange.emit(!0)}).catch()}hide(){this.isOpen&&(this._showInline?(this.removeShowClass(),this.removeDropupStyles(),this._isInlineOpen=!1,this.onHidden.emit(!0)):this._dropdown.hide(),this._state.isOpenChange.emit(!1))}toggle(t){return this.isOpen||!t?this.hide():this.show()}_contains(t){return this._elementRef.nativeElement.contains(t.target)||this._dropdown.instance&&this._dropdown.instance._contains(t.target)}ngOnDestroy(){for(const t of this._subscriptions)t.unsubscribe();this._dropdown.dispose()}addBs4Polyfills(){Object(i.d)()||(this.addShowClass(),this.checkRightAlignment(),this.addDropupStyles())}addShowClass(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.addClass(this._inlinedMenu.rootNodes[0],"show")}removeShowClass(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&this._renderer.removeClass(this._inlinedMenu.rootNodes[0],"show")}checkRightAlignment(){if(this._inlinedMenu&&this._inlinedMenu.rootNodes[0]){const t=this._inlinedMenu.rootNodes[0].classList.contains("dropdown-menu-right");this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"left",t?"auto":"0"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"right",t?"0":"auto")}}addDropupStyles(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"top",this.dropup?"auto":"100%"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"transform",this.dropup?"translateY(-101%)":"translateY(0)"),this._renderer.setStyle(this._inlinedMenu.rootNodes[0],"bottom","auto"))}removeDropupStyles(){this._inlinedMenu&&this._inlinedMenu.rootNodes[0]&&(this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"top"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"transform"),this._renderer.removeStyle(this._inlinedMenu.rootNodes[0],"bottom"))}}class g{constructor(t,e,n){t.resolveDropdownMenu({templateRef:n,viewContainer:e})}}class f{constructor(t,e,n,a,r){this._changeDetectorRef=t,this._dropdown=e,this._element=n,this._renderer=a,this._state=r,this.isDisabled=null,this._subscriptions=[],this._subscriptions.push(this._state.isOpenChange.subscribe(t=>{this.isOpen=t,t?(this._documentClickListener=this._renderer.listen("document","click",t=>{!this._state.autoClose||2===t.button||this._element.nativeElement.contains(t.target)||this._state.insideClick&&this._dropdown._contains(t)||(this._state.toggleClick.emit(!1),this._changeDetectorRef.detectChanges())}),this._escKeyUpListener=this._renderer.listen(this._element.nativeElement,"keyup.esc",()=>{this._state.autoClose&&(this._state.toggleClick.emit(!1),this._changeDetectorRef.detectChanges())})):(this._documentClickListener(),this._escKeyUpListener())})),this._subscriptions.push(this._state.isDisabledChange.subscribe(t=>this.isDisabled=t||null))}onClick(){this.isDisabled||this._state.toggleClick.emit(!0)}ngOnDestroy(){this._documentClickListener&&this._documentClickListener(),this._escKeyUpListener&&this._escKeyUpListener();for(const t of this._subscriptions)t.unsubscribe()}}class p{static forRoot(t){return{ngModule:p,providers:[o.a,s.a,l,{provide:c,useValue:t||{autoClose:!0,insideClick:!1}}]}}}},FFMq:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return t.join(", ")}}},FLvf:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("tFKq")),a(n("0MID"))},FMNM:function(t,e,n){var a=n("xrYK"),r=n("kmMV");t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var o=n.call(t,e);if("object"!=typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==a(t))throw TypeError("RegExp#exec called on incompatible receiver");return r.call(t,e)}},FMPj:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("h+PQ");e.optionalGetterForProp=function(t){return t&&function(e){return a.getterForProp(t)(e,t)}},e.groupRowsByParents=function(t,e,n){if(e&&n){var a={},o=t.length,i=null;a[0]=new r;for(var s=t.reduce((function(t,e){var a=n(e);return-1===t.indexOf(a)&&t.push(a),t}),[]),c=0;c<o;c++)a[n(t[c])]=new r(t[c]);for(c=0;c<o;c++){var l=0,d=e((i=a[n(t[c])]).row);d&&s.indexOf(d)>-1&&(l=d),i.parent=a[l],i.row.level=i.parent.row.level+1,i.parent.children.push(i)}var u=[];return a[0].flatten((function(){u=u.concat([this.row])}),!0),u}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n<a;n++){var r=this.children[n];t.apply(r,Array.prototype.slice.call(arguments,2)),e&&r.flatten.apply(r,arguments)}},t}()},"FO+L":function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");n("SVse"),e.ScrollbarHelper=function(){function t(t){this.document=t,this.width=this.getWidth()}return t.prototype.getWidth=function(){var t=this.document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.msOverflowStyle="scrollbar",this.document.body.appendChild(t);var e=t.offsetWidth;t.style.overflow="scroll";var n=this.document.createElement("div");n.style.width="100%",t.appendChild(n);var a=n.offsetWidth;return t.parentNode.removeChild(t),e-a},a([r.Injectable()],t)}()},FSuO:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=n("LvDl"),o=n("x38r");n("a0VL"),n("uIqm");class i{constructor(t){this.datePipe=t,this.autoReload=5e3,this.renderObjects=!1,this.appendParentKey=!0,this.hideEmpty=!1,this.hideKeys=[],this.columns=[],this.fetchData=new a.EventEmitter}ngOnInit(){this.columns=[{prop:"key",flexGrow:1,cellTransformation:o.a.bold},{prop:"value",flexGrow:3}],this.customCss&&(this.columns[1].cellTransformation=o.a.classAdding),this.fetchData.observers.length>0&&this.table.fetchData.subscribe(()=>{this.fetchData.emit()}),this.useData()}ngOnChanges(){this.useData()}useData(){if(!this.data)return;let t=this.makePairs(this.data);this.hideKeys&&(t=t.filter(t=>!this.hideKeys.includes(t.key))),this.tableData=t}makePairs(t){let e=[];if(t){if(r.isArray(t))e=this.makePairsFromArray(t);else{if(!r.isObject(t))throw new Error("Wrong data format");e=this.makePairsFromObject(t)}return e=e.map(t=>(t.value=this.convertValue(t.value),t)).filter(t=>null!==t.value),r.sortBy(this.renderObjects?this.insertFlattenObjects(e):e,"key")}}makePairsFromArray(t){let e=[];const n=t[0];if(r.isArray(n)){if(2!==n.length)throw new Error(`Array contains too many elements (${n.length}). `+"Needs to be of type [string, any][]");e=t.map(t=>({key:t[0],value:t[1]}))}else r.isObject(n)&&(e=r.has(n,"key")&&r.has(n,"value")?[...t]:t.reduce((t,e)=>t.concat(this.makePairsFromObject(e)),e));return e}makePairsFromObject(t){return Object.keys(t).map(e=>({key:e,value:t[e]}))}insertFlattenObjects(t){return r.flattenDeep(t.map(t=>{const e=t.value,n=r.isObject(e);return!n||r.isEmpty(e)?(n&&(t.value=""),t):this.splitItemIntoItems(t)}))}splitItemIntoItems(t){return this.makePairs(t.value).map(e=>(this.appendParentKey&&(e.key=t.key+" "+e.key),e))}convertValue(t){if(r.isArray(t)){if(r.isEmpty(t)&&this.hideEmpty)return null;t=t.map(t=>r.isObject(t)?JSON.stringify(t):t).join(", ")}else if(r.isObject(t)){if(this.hideEmpty&&r.isEmpty(t)||!this.renderObjects)return null}else if(r.isString(t)){if(""===t&&this.hideEmpty)return null;this.isDate(t)&&(t=this.datePipe.transform(t)||t)}return t}isDate(t){const e="\\d{2}[ -:.TZ]";return t.match(new RegExp("^\\d{4}[ -:.TZ]"+e+e+e+e+e+"\\d*Z?$"))}}},FZoo:function(t,e,n){var a=n("MrPd"),r=n("4uTw"),o=n("wJg7"),i=n("GoyQ"),s=n("9Nap");t.exports=function(t,e,n,c){if(!i(t))return t;for(var l=-1,d=(e=r(e,t)).length,u=d-1,g=t;null!=g&&++l<d;){var f=s(e[l]),p=n;if(l!=u){var m=g[f];void 0===(p=c?c(m,f,g):void 0)&&(p=i(m)?m:o(e[l+1])?[]:{})}a(g,f,p),g=g[f]}return t}},FfPP:function(t,e,n){var a=n("idmN"),r=n("hgQt");t.exports=function(t,e){return a(t,e,(function(e,n){return r(t,n)}))}},Fgil:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1024,["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"])}}},Fjl2:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DatatableGroupHeaderTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-group-header-template]"})],(function(t){this.template=t}))}()},Fwy9:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("gk6K"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(t,e,n,r){this.el=t,this.renderer=e,this.treeDraggedElement=n,this.ngZone=r,this.allowDragoverStyling=!0,this.onDropCallback=new a.EventEmitter,this.onDragOverCallback=new a.EventEmitter,this.onDragLeaveCallback=new a.EventEmitter,this.onDragEnterCallback=new a.EventEmitter,this._allowDrop=function(t,e){return!0},this.dragOverEventHandler=this.onDragOver.bind(this),this.dragEnterEventHandler=this.onDragEnter.bind(this),this.dragLeaveEventHandler=this.onDragLeave.bind(this)}return Object.defineProperty(t.prototype,"treeAllowDrop",{set:function(t){this._allowDrop=t instanceof Function?t:function(e,n){return t}},enumerable:!0,configurable:!0}),t.prototype.allowDrop=function(t){return this._allowDrop(this.treeDraggedElement.get(),t)},t.prototype.ngAfterViewInit=function(){var t=this,e=this.el.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("dragover",t.dragOverEventHandler),e.addEventListener("dragenter",t.dragEnterEventHandler),e.addEventListener("dragleave",t.dragLeaveEventHandler)}))},t.prototype.ngOnDestroy=function(){var t=this.el.nativeElement;t.removeEventListener("dragover",this.dragOverEventHandler),t.removeEventListener("dragenter",this.dragEnterEventHandler),t.removeEventListener("dragleave",this.dragLeaveEventHandler)},t.prototype.onDragOver=function(t){if(!this.allowDrop(t))return this.allowDragoverStyling?this.addDisabledClass():void 0;this.onDragOverCallback.emit({event:t,element:this.treeDraggedElement.get()}),t.preventDefault(),this.allowDragoverStyling&&this.addClass()},t.prototype.onDragEnter=function(t){this.allowDrop(t)&&(t.preventDefault(),this.onDragEnterCallback.emit({event:t,element:this.treeDraggedElement.get()}))},t.prototype.onDragLeave=function(t){if(!this.allowDrop(t))return this.allowDragoverStyling?this.removeDisabledClass():void 0;this.onDragLeaveCallback.emit({event:t,element:this.treeDraggedElement.get()}),this.allowDragoverStyling&&this.removeClass()},t.prototype.onDrop=function(t){this.allowDrop(t)&&(t.preventDefault(),this.onDropCallback.emit({event:t,element:this.treeDraggedElement.get()}),this.allowDragoverStyling&&this.removeClass(),this.treeDraggedElement.set(null))},t.prototype.addClass=function(){this.renderer.addClass(this.el.nativeElement,"is-dragging-over")},t.prototype.removeClass=function(){this.renderer.removeClass(this.el.nativeElement,"is-dragging-over")},t.prototype.addDisabledClass=function(){this.renderer.addClass(this.el.nativeElement,"is-dragging-over-disabled")},t.prototype.removeDisabledClass=function(){this.renderer.removeClass(this.el.nativeElement,"is-dragging-over-disabled")},o([Object(a.Input)(),i("design:type",Object)],t.prototype,"allowDragoverStyling",void 0),o([Object(a.Output)("treeDrop"),i("design:type",Object)],t.prototype,"onDropCallback",void 0),o([Object(a.Output)("treeDropDragOver"),i("design:type",Object)],t.prototype,"onDragOverCallback",void 0),o([Object(a.Output)("treeDropDragLeave"),i("design:type",Object)],t.prototype,"onDragLeaveCallback",void 0),o([Object(a.Output)("treeDropDragEnter"),i("design:type",Object)],t.prototype,"onDragEnterCallback",void 0),o([Object(a.Input)(),i("design:type",Object),i("design:paramtypes",[Object])],t.prototype,"treeAllowDrop",null),o([Object(a.HostListener)("drop",["$event"]),i("design:type",Function),i("design:paramtypes",[Object]),i("design:returntype",void 0)],t.prototype,"onDrop",null),o([Object(a.Directive)({selector:"[treeDrop]"}),i("design:paramtypes",[a.ElementRef,a.Renderer2,r.a,a.NgZone])],t)}()},"G+Rx":function(t,e,n){var a=n("0GbY");t.exports=a("document","documentElement")},G0Uy:function(t,e,n){!function(t){"use strict";t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_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ħada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},"G1/K":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.i18n=t}transform(t){return""===t?this.i18n("n/a"):t}}},G1I9:function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return i}));var a=n("oxzT"),r=n("mtw6");class o{constructor(t=r.a.info,e,n,a,o="Ceph"){this.type=t,this.title=e,this.message=n,this.options=a,this.application=o,this.isFinishedTask=!1,this.classes={Ceph:"ceph-icon",Prometheus:"prometheus-icon"},this.applicationClass=this.classes[this.application]}}class i extends o{constructor(t=new o){super(t.type,t.title,t.message,t.options,t.application),this.config=t,this.textClasses=["text-danger","text-info","text-success"],this.iconClasses=[a.a.warning,a.a.info,a.a.check],delete this.config,this.timestamp=(new Date).toJSON(),this.iconClass=this.iconClasses[this.type],this.textClass=this.textClasses[this.type],this.isFinishedTask=t.isFinishedTask}}},"G6Q+":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},G6z8:function(t,e,n){var a=n("fR/l"),r=n("oCl/"),o=n("mTTR");t.exports=function(t){return a(t,o,r)}},GDJm:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RowHeightCache=function(){function t(){this.treeArray=[]}return t.prototype.clearCache=function(){this.treeArray=[]},t.prototype.initCache=function(t){var e=t.rows,n=t.rowHeight,a=t.detailRowHeight,r=t.externalVirtual,o=t.rowCount,i=t.rowIndexes,s=t.rowExpansions,c="function"==typeof n,l="function"==typeof a;if(!c&&isNaN(n))throw new Error("Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n        valid number or function value: ("+n+") when 'scrollbarV' is enabled.");if(!l&&isNaN(a))throw new Error("Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n        valid number or function value: ("+a+") when 'scrollbarV' is enabled.");var d=r?o:e.length;this.treeArray=new Array(d);for(var u=0;u<d;++u)this.treeArray[u]=0;for(u=0;u<d;++u){var g=e[u],f=n;c&&(f=n(g));var p=s.get(g);g&&1===p&&(f+=l?a(g,i.get(g)):a),this.update(u,f)}},t.prototype.getRowIndex=function(t){return 0===t?0:this.calcRowIndex(t)},t.prototype.update=function(t,e){if(!this.treeArray.length)throw new Error("Update at index "+t+" with value "+e+" failed:\n        Row Height cache not initialized.");var n=this.treeArray.length;for(t|=0;t<n;)this.treeArray[t]+=e,t|=t+1},t.prototype.query=function(t){if(!this.treeArray.length)throw new Error("query at index "+t+" failed: Fenwick tree array not initialized.");var e=0;for(t|=0;t>=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r<n&&t>=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},GDhZ:function(t,e,n){var a=n("wF/u"),r=n("mwIZ"),o=n("hgQt"),i=n("9ggG"),s=n("CMye"),c=n("IOzZ"),l=n("9Nap");t.exports=function(t,e){return i(t)&&s(e)?c(l(t),e):function(n){var i=r(n,t);return void 0===i&&i===e?o(n,t):a(e,i,3)}}},GNiM:function(t,e,n){var a=n("I01J"),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,i=a((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(r,(function(t,n,a,r){e.push(a?r.replace(o,"$1"):n||t)})),e}));t.exports=i},GS7A:function(t,e,n){"use strict";n.d(e,"b",(function(){return a})),n.d(e,"c",(function(){return r})),n.d(e,"a",(function(){return o})),n.d(e,"e",(function(){return s})),n.d(e,"f",(function(){return c})),n.d(e,"g",(function(){return d})),n.d(e,"h",(function(){return l})),n.d(e,"i",(function(){return u})),n.d(e,"j",(function(){return i})),n.d(e,"d",(function(){return f})),n.d(e,"k",(function(){return p})),n.d(e,"l",(function(){return m}));class a{}class r{}const o="*";function i(t,e){return{type:7,name:t,definitions:e,options:{}}}function s(t,e=null){return{type:4,styles:e,timings:t}}function c(t,e=null){return{type:2,steps:t,options:e}}function l(t){return{type:6,styles:t,offset:null}}function d(t,e,n){return{type:0,name:t,styles:e,options:n}}function u(t,e,n=null){return{type:1,expr:t,animation:e,options:n}}function g(t){Promise.resolve(null).then(t)}class f{constructor(t=0,e=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this.parentPlayer=null,this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._onStartFns.push(t)}onDone(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(){g(()=>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(){}setPosition(t){}getPosition(){return 0}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class p{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,n=0,a=0;const r=this.players.length;0==r?g(()=>this._onFinish()):this.players.forEach(t=>{t.onDone(()=>{++e==r&&this._onFinish()}),t.onDestroy(()=>{++n==r&&this._onDestroy()}),t.onStart(()=>{++a==r&&this._onStart()})}),this.totalTime=this.players.reduce((t,e)=>Math.max(t,e.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(t=>{const n=t.totalTime?Math.min(1,e/t.totalTime):1;t.setPosition(n)})}getPosition(){let t=0;return this.players.forEach(e=>{const n=e.getPosition();t=Math.min(n,t)}),t}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}const m="!"},GarU:function(t,e){t.exports=function(t,e,n){if(!(t instanceof e))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return t}},GgAd:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(){}ngOnChanges(){this.usedPercentage=Math.round(this.usedBytes/this.totalBytes*100),this.freePercentage=100-this.usedPercentage,this.freeBytes=this.totalBytes-this.usedBytes}}},Gi0A:function(t,e,n){var a=n("QqLw"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Map]"==a(t)}},Gi4w:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return n=>n.lift(new o(t,e,n))}class o{constructor(t,e,n){this.predicate=t,this.thisArg=e,this.source=n}call(t,e){return e.subscribe(new i(t,this.predicate,this.thisArg,this.source))}}class i extends a.a{constructor(t,e,n,a){super(t),this.predicate=e,this.thisArg=n,this.source=a,this.index=0,this.thisArg=n||this}notifyComplete(t){this.destination.next(t),this.destination.complete()}_next(t){let e=!1;try{e=this.predicate.call(this.thisArg,t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e||this.notifyComplete(!1)}_complete(){this.notifyComplete(!0)}}},GiVz:function(t,e,n){"use strict";n.d(e,"a",(function(){return We})),n.d(e,"b",(function(){return Ue}));var a=n("SVse"),r=n("8Y7J");class o{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitText(this,e)}}class i{constructor(t,e,n,a,r){this.switchValue=t,this.type=e,this.cases=n,this.sourceSpan=a,this.switchValueSourceSpan=r}visit(t,e){return t.visitExpansion(this,e)}}class s{constructor(t,e,n,a,r){this.value=t,this.expression=e,this.sourceSpan=n,this.valueSourceSpan=a,this.expSourceSpan=r}visit(t,e){return t.visitExpansionCase(this,e)}}class c{constructor(t,e,n,a){this.name=t,this.value=e,this.sourceSpan=n,this.valueSpan=a}visit(t,e){return t.visitAttribute(this,e)}}class l{constructor(t,e,n,a,r=null,o=null){this.name=t,this.attrs=e,this.children=n,this.sourceSpan=a,this.startSourceSpan=r,this.endSourceSpan=o}visit(t,e){return t.visitElement(this,e)}}class d{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitComment(this,e)}}function u(t,e,n=null){const a=[],r=t.visit?e=>t.visit(e,n)||e.visit(t,n):e=>e.visit(t,n);return e.forEach(t=>{const e=r(t);e&&a.push(e)}),a}class g{constructor(t,e,n,a,r,o){this.nodes=t,this.placeholders=e,this.placeholderToMessage=n,this.meaning=a,this.description=r,this.id=o,this.sources=t.length?[{filePath:t[0].sourceSpan.start.file.url,startLine:t[0].sourceSpan.start.line+1,startCol:t[0].sourceSpan.start.col+1,endLine:t[t.length-1].sourceSpan.end.line+1,endCol:t[0].sourceSpan.start.col+1}]:[]}}class f{constructor(t,e){this.value=t,this.sourceSpan=e}visit(t,e){return t.visitText(this,e)}}class p{constructor(t,e){this.children=t,this.sourceSpan=e}visit(t,e){return t.visitContainer(this,e)}}class m{constructor(t,e,n,a){this.expression=t,this.type=e,this.cases=n,this.sourceSpan=a}visit(t,e){return t.visitIcu(this,e)}}class h{constructor(t,e,n,a,r,o,i){this.tag=t,this.attrs=e,this.startName=n,this.closeName=a,this.children=r,this.isVoid=o,this.sourceSpan=i}visit(t,e){return t.visitTagPlaceholder(this,e)}}class b{constructor(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}visit(t,e){return t.visitPlaceholder(this,e)}}class y{constructor(t,e,n){this.value=t,this.name=e,this.sourceSpan=n}visit(t,e){return t.visitIcuPlaceholder(this,e)}}class _{constructor(t,e,n,a){this.file=t,this.offset=e,this.line=n,this.col=a}toString(){return null!=this.offset?`${this.line}:${this.col}`:""}getContext(t,e){const n=this.file.content;let a=this.offset;if(null!=a){a>n.length-1&&(a=n.length-1);let r=a,o=0,i=0;for(;o<t&&a>0&&(a--,o++,"\n"!==n[a]||++i!==e););for(o=0,i=0;o<t&&r<n.length-1&&(r++,o++,"\n"!==n[r]||++i!==e););return{before:n.substring(a,this.offset),after:n.substring(this.offset,r+1)}}return null}}class O{constructor(t,e=""){this.content=t,this.url=e}}class v{constructor(t,e,n=null){this.start=t,this.end=e,this.details=n}toString(){return this.start.file.content.substring(this.start.offset,this.end.offset)}}const C=function(){var t={WARNING:0,ERROR:1};return t[t.WARNING]="WARNING",t[t.ERROR]="ERROR",t}();class P{constructor(t,e,n=C.ERROR){this.span=t,this.msg=e,this.level=n}contextualMessage(){const t=this.span.start.getContext(100,3);return t?` ("${t.before}[${C[this.level]} ->]${t.after}")`:""}toString(){const t=this.span.details?`, ${this.span.details}`:"";return`${this.msg}${this.contextualMessage()}: ${this.span.start}${t}`}}class M extends P{constructor(t,e){super(t,e)}}function x(t){return t.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}class w{constructor(t,e){this.start=t,this.end=e}}const T=new w("{{","}}");function S(t){return t>=9&&t<=32||160===t}function k(t){return 48<=t&&t<=57}function I(t){return t>=97&&t<=122||t>=65&&t<=90}const N=function(){var t={RAW_TEXT:0,ESCAPABLE_RAW_TEXT:1,PARSABLE_DATA:2};return t[t.RAW_TEXT]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA]="PARSABLE_DATA",t}();function R(t){if(":"!==t[0])return[null,t];const e=t.indexOf(":",1);if(-1===e)throw new Error(`Unsupported format "${t}" expecting ":namespace:name"`);return[t.slice(1,e),t.slice(e+1)]}function A(t){return null===t?null:R(t)[0]}function E(t,e){return t?`:${t}:${e}`:e}const D={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",alefsym:"ℵ",Alpha:"Α",alpha:"α",amp:"&",and:"∧",ang:"∠",apos:"'",Aring:"Å",aring:"å",asymp:"≈",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",bdquo:"„",Beta:"Β",beta:"β",brvbar:"¦",bull:"•",cap:"∩",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",Chi:"Χ",chi:"χ",circ:"ˆ",clubs:"♣",cong:"≅",copy:"©",crarr:"↵",cup:"∪",curren:"¤",dagger:"†",Dagger:"‡",darr:"↓",dArr:"⇓",deg:"°",Delta:"Δ",delta:"δ",diams:"♦",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",empty:"∅",emsp:" ",ensp:" ",Epsilon:"Ε",epsilon:"ε",equiv:"≡",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",exist:"∃",fnof:"ƒ",forall:"∀",frac12:"½",frac14:"¼",frac34:"¾",frasl:"⁄",Gamma:"Γ",gamma:"γ",ge:"≥",gt:">",harr:"↔",hArr:"⇔",hearts:"♥",hellip:"…",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",image:"ℑ",infin:"∞",int:"∫",Iota:"Ι",iota:"ι",iquest:"¿",isin:"∈",Iuml:"Ï",iuml:"ï",Kappa:"Κ",kappa:"κ",Lambda:"Λ",lambda:"λ",lang:"⟨",laquo:"«",larr:"←",lArr:"⇐",lceil:"⌈",ldquo:"“",le:"≤",lfloor:"⌊",lowast:"∗",loz:"◊",lrm:"‎",lsaquo:"‹",lsquo:"‘",lt:"<",macr:"¯",mdash:"—",micro:"µ",middot:"·",minus:"−",Mu:"Μ",mu:"μ",nabla:"∇",nbsp:" ",ndash:"–",ne:"≠",ni:"∋",not:"¬",notin:"∉",nsub:"⊄",Ntilde:"Ñ",ntilde:"ñ",Nu:"Ν",nu:"ν",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",OElig:"Œ",oelig:"œ",Ograve:"Ò",ograve:"ò",oline:"‾",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",oplus:"⊕",or:"∨",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",otimes:"⊗",Ouml:"Ö",ouml:"ö",para:"¶",permil:"‰",perp:"⊥",Phi:"Φ",phi:"φ",Pi:"Π",pi:"π",piv:"ϖ",plusmn:"±",pound:"£",prime:"′",Prime:"″",prod:"∏",prop:"∝",Psi:"Ψ",psi:"ψ",quot:'"',radic:"√",rang:"⟩",raquo:"»",rarr:"→",rArr:"⇒",rceil:"⌉",rdquo:"”",real:"ℜ",reg:"®",rfloor:"⌋",Rho:"Ρ",rho:"ρ",rlm:"‏",rsaquo:"›",rsquo:"’",sbquo:"‚",Scaron:"Š",scaron:"š",sdot:"⋅",sect:"§",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sim:"∼",spades:"♠",sub:"⊂",sube:"⊆",sum:"∑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supe:"⊇",szlig:"ß",Tau:"Τ",tau:"τ",there4:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thinsp:" ",THORN:"Þ",thorn:"þ",tilde:"˜",times:"×",trade:"™",Uacute:"Ú",uacute:"ú",uarr:"↑",uArr:"⇑",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",Uuml:"Ü",uuml:"ü",weierp:"℘",Xi:"Ξ",xi:"ξ",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ",Yuml:"Ÿ",Zeta:"Ζ",zeta:"ζ",zwj:"‍",zwnj:"‌",ngsp:""},L=function(){var t={TAG_OPEN_START:0,TAG_OPEN_END:1,TAG_OPEN_END_VOID:2,TAG_CLOSE:3,TEXT:4,ESCAPABLE_RAW_TEXT:5,RAW_TEXT:6,COMMENT_START:7,COMMENT_END:8,CDATA_START:9,CDATA_END:10,ATTR_NAME:11,ATTR_VALUE:12,DOC_TYPE:13,EXPANSION_FORM_START:14,EXPANSION_CASE_VALUE:15,EXPANSION_CASE_EXP_START:16,EXPANSION_CASE_EXP_END:17,EXPANSION_FORM_END:18,EOF:19};return t[t.TAG_OPEN_START]="TAG_OPEN_START",t[t.TAG_OPEN_END]="TAG_OPEN_END",t[t.TAG_OPEN_END_VOID]="TAG_OPEN_END_VOID",t[t.TAG_CLOSE]="TAG_CLOSE",t[t.TEXT]="TEXT",t[t.ESCAPABLE_RAW_TEXT]="ESCAPABLE_RAW_TEXT",t[t.RAW_TEXT]="RAW_TEXT",t[t.COMMENT_START]="COMMENT_START",t[t.COMMENT_END]="COMMENT_END",t[t.CDATA_START]="CDATA_START",t[t.CDATA_END]="CDATA_END",t[t.ATTR_NAME]="ATTR_NAME",t[t.ATTR_VALUE]="ATTR_VALUE",t[t.DOC_TYPE]="DOC_TYPE",t[t.EXPANSION_FORM_START]="EXPANSION_FORM_START",t[t.EXPANSION_CASE_VALUE]="EXPANSION_CASE_VALUE",t[t.EXPANSION_CASE_EXP_START]="EXPANSION_CASE_EXP_START",t[t.EXPANSION_CASE_EXP_END]="EXPANSION_CASE_EXP_END",t[t.EXPANSION_FORM_END]="EXPANSION_FORM_END",t[t.EOF]="EOF",t}();class q{constructor(t,e,n){this.type=t,this.parts=e,this.sourceSpan=n}}class j extends P{constructor(t,e,n){super(n,t),this.tokenType=e}}class F{constructor(t,e){this.tokens=t,this.errors=e}}const z=/\r\n?/g;function G(t){return`Unexpected character "${0===t?"EOF":String.fromCharCode(t)}"`}function B(t){return`Unknown entity "${t}" - use the "&#<decimal>;" or  "&#x<hex>;" syntax`}class V{constructor(t){this.error=t}}class Y{constructor(t,e,n,a=T){this._file=t,this._getTagDefinition=e,this._tokenizeIcu=n,this._interpolationConfig=a,this._peek=-1,this._nextPeek=-1,this._index=-1,this._line=0,this._column=-1,this._expansionCaseStack=[],this._inInterpolation=!1,this.tokens=[],this.errors=[],this._input=t.content,this._length=t.content.length,this._advance()}_processCarriageReturns(t){return t.replace(z,"\n")}tokenize(){for(;0!==this._peek;){const e=this._getLocation();try{this._attemptCharCode(60)?this._attemptCharCode(33)?this._attemptCharCode(91)?this._consumeCdata(e):this._attemptCharCode(45)?this._consumeComment(e):this._consumeDocType(e):this._attemptCharCode(47)?this._consumeTagClose(e):this._consumeTagOpen(e):this._tokenizeIcu&&this._tokenizeExpansionForm()||this._consumeText()}catch(t){if(!(t instanceof V))throw t;this.errors.push(t.error)}}return this._beginToken(L.EOF),this._endToken([]),new F(function(t){const e=[];let n=void 0;for(let a=0;a<t.length;a++){const r=t[a];n&&n.type===L.TEXT&&r.type===L.TEXT?(n.parts[0]+=r.parts[0],n.sourceSpan.end=r.sourceSpan.end):(n=r,e.push(n))}return e}(this.tokens),this.errors)}_tokenizeExpansionForm(){if($(this._input,this._index,this._interpolationConfig))return this._consumeExpansionFormStart(),!0;if((61===(t=this._peek)||I(t)||k(t))&&this._isInExpansionForm())return this._consumeExpansionCaseStart(),!0;var t;if(125===this._peek){if(this._isInExpansionCase())return this._consumeExpansionCaseEnd(),!0;if(this._isInExpansionForm())return this._consumeExpansionFormEnd(),!0}return!1}_getLocation(){return new _(this._file,this._index,this._line,this._column)}_getSpan(t=this._getLocation(),e=this._getLocation()){return new v(t,e)}_beginToken(t,e=this._getLocation()){this._currentTokenStart=e,this._currentTokenType=t}_endToken(t,e=this._getLocation()){const n=new q(this._currentTokenType,t,new v(this._currentTokenStart,e));return this.tokens.push(n),this._currentTokenStart=null,this._currentTokenType=null,n}_createError(t,e){this._isInExpansionForm()&&(t+=' (Do you have an unescaped "{" in your template? Use "{{ \'{\' }}") to escape it.)');const n=new j(t,this._currentTokenType,e);return this._currentTokenStart=null,this._currentTokenType=null,new V(n)}_advance(){if(this._index>=this._length)throw this._createError(G(0),this._getSpan());10===this._peek?(this._line++,this._column=0):10!==this._peek&&13!==this._peek&&this._column++,this._index++,this._peek=this._index>=this._length?0:this._input.charCodeAt(this._index),this._nextPeek=this._index+1>=this._length?0:this._input.charCodeAt(this._index+1)}_attemptCharCode(t){return this._peek===t&&(this._advance(),!0)}_attemptCharCodeCaseInsensitive(t){return e=t,Z(this._peek)===Z(e)&&(this._advance(),!0);var e}_requireCharCode(t){const e=this._getLocation();if(!this._attemptCharCode(t))throw this._createError(G(this._peek),this._getSpan(e,e))}_attemptStr(t){const e=t.length;if(this._index+e>this._length)return!1;const n=this._savePosition();for(let a=0;a<e;a++)if(!this._attemptCharCode(t.charCodeAt(a)))return this._restorePosition(n),!1;return!0}_attemptStrCaseInsensitive(t){for(let e=0;e<t.length;e++)if(!this._attemptCharCodeCaseInsensitive(t.charCodeAt(e)))return!1;return!0}_requireStr(t){const e=this._getLocation();if(!this._attemptStr(t))throw this._createError(G(this._peek),this._getSpan(e))}_attemptCharCodeUntilFn(t){for(;!t(this._peek);)this._advance()}_requireCharCodeUntilFn(t,e){const n=this._getLocation();if(this._attemptCharCodeUntilFn(t),this._index-n.offset<e)throw this._createError(G(this._peek),this._getSpan(n,n))}_attemptUntilChar(t){for(;this._peek!==t;)this._advance()}_readChar(t){if(t&&38===this._peek)return this._decodeEntity();{const t=this._index;return this._advance(),this._input[t]}}_decodeEntity(){const t=this._getLocation();if(this._advance(),!this._attemptCharCode(35)){const e=this._savePosition();if(this._attemptCharCodeUntilFn(K),59!==this._peek)return this._restorePosition(e),"&";this._advance();const n=this._input.substring(t.offset+1,this._index-1),a=D[n];if(!a)throw this._createError(B(n),this._getSpan(t));return a}{const n=this._attemptCharCode(120)||this._attemptCharCode(88),a=this._getLocation().offset;if(this._attemptCharCodeUntilFn(W),59!==this._peek)throw this._createError(G(this._peek),this._getSpan());this._advance();const r=this._input.substring(a,this._index-1);try{const t=parseInt(r,n?16:10);return String.fromCharCode(t)}catch(e){const n=this._input.substring(t.offset+1,this._index-1);throw this._createError(B(n),this._getSpan(t))}}}_consumeRawText(t,e,n){let a;const r=this._getLocation();this._beginToken(t?L.ESCAPABLE_RAW_TEXT:L.RAW_TEXT,r);const o=[];for(;a=this._getLocation(),!this._attemptCharCode(e)||!n();)for(this._index>a.offset&&o.push(this._input.substring(a.offset,this._index));this._peek!==e;)o.push(this._readChar(t));return this._endToken([this._processCarriageReturns(o.join(""))],a)}_consumeComment(t){this._beginToken(L.COMMENT_START,t),this._requireCharCode(45),this._endToken([]);const e=this._consumeRawText(!1,45,()=>this._attemptStr("->"));this._beginToken(L.COMMENT_END,e.sourceSpan.end),this._endToken([])}_consumeCdata(t){this._beginToken(L.CDATA_START,t),this._requireStr("CDATA["),this._endToken([]);const e=this._consumeRawText(!1,93,()=>this._attemptStr("]>"));this._beginToken(L.CDATA_END,e.sourceSpan.end),this._endToken([])}_consumeDocType(t){this._beginToken(L.DOC_TYPE,t),this._attemptUntilChar(62),this._advance(),this._endToken([this._input.substring(t.offset+2,this._index-1)])}_consumePrefixAndName(){const t=this._index;let e=null;for(;58!==this._peek&&!(((n=this._peek)<97||122<n)&&(n<65||90<n)&&(n<48||n>57));)this._advance();var n;let a;return 58===this._peek?(this._advance(),e=this._input.substring(t,this._index-1),a=this._index):a=t,this._requireCharCodeUntilFn(U,this._index===a?1:0),[e,this._input.substring(a,this._index)]}_consumeTagOpen(t){const e=this._savePosition();let n,a;try{if(!I(this._peek))throw this._createError(G(this._peek),this._getSpan());const e=this._index;for(this._consumeTagOpenStart(t),n=this._input.substring(e,this._index),a=n.toLowerCase(),this._attemptCharCodeUntilFn(H);47!==this._peek&&62!==this._peek;)this._consumeAttributeName(),this._attemptCharCodeUntilFn(H),this._attemptCharCode(61)&&(this._attemptCharCodeUntilFn(H),this._consumeAttributeValue()),this._attemptCharCodeUntilFn(H);this._consumeTagOpenEnd()}catch(o){if(o instanceof V)return this._restorePosition(e),this._beginToken(L.TEXT,t),void this._endToken(["<"]);throw o}const r=this._getTagDefinition(n).contentType;r===N.RAW_TEXT?this._consumeRawTextWithTagClose(a,!1):r===N.ESCAPABLE_RAW_TEXT&&this._consumeRawTextWithTagClose(a,!0)}_consumeRawTextWithTagClose(t,e){const n=this._consumeRawText(e,60,()=>!!this._attemptCharCode(47)&&(this._attemptCharCodeUntilFn(H),!!this._attemptStrCaseInsensitive(t)&&(this._attemptCharCodeUntilFn(H),this._attemptCharCode(62))));this._beginToken(L.TAG_CLOSE,n.sourceSpan.end),this._endToken([null,t])}_consumeTagOpenStart(t){this._beginToken(L.TAG_OPEN_START,t);const e=this._consumePrefixAndName();this._endToken(e)}_consumeAttributeName(){this._beginToken(L.ATTR_NAME);const t=this._consumePrefixAndName();this._endToken(t)}_consumeAttributeValue(){let t;if(this._beginToken(L.ATTR_VALUE),39===this._peek||34===this._peek){const e=this._peek;this._advance();const n=[];for(;this._peek!==e;)n.push(this._readChar(!0));t=n.join(""),this._advance()}else{const e=this._index;this._requireCharCodeUntilFn(U,1),t=this._input.substring(e,this._index)}this._endToken([this._processCarriageReturns(t)])}_consumeTagOpenEnd(){const t=this._attemptCharCode(47)?L.TAG_OPEN_END_VOID:L.TAG_OPEN_END;this._beginToken(t),this._requireCharCode(62),this._endToken([])}_consumeTagClose(t){this._beginToken(L.TAG_CLOSE,t),this._attemptCharCodeUntilFn(H);const e=this._consumePrefixAndName();this._attemptCharCodeUntilFn(H),this._requireCharCode(62),this._endToken(e)}_consumeExpansionFormStart(){this._beginToken(L.EXPANSION_FORM_START,this._getLocation()),this._requireCharCode(123),this._endToken([]),this._expansionCaseStack.push(L.EXPANSION_FORM_START),this._beginToken(L.RAW_TEXT,this._getLocation());const t=this._readUntil(44);this._endToken([t],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(H),this._beginToken(L.RAW_TEXT,this._getLocation());const e=this._readUntil(44);this._endToken([e],this._getLocation()),this._requireCharCode(44),this._attemptCharCodeUntilFn(H)}_consumeExpansionCaseStart(){this._beginToken(L.EXPANSION_CASE_VALUE,this._getLocation());const t=this._readUntil(123).trim();this._endToken([t],this._getLocation()),this._attemptCharCodeUntilFn(H),this._beginToken(L.EXPANSION_CASE_EXP_START,this._getLocation()),this._requireCharCode(123),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(H),this._expansionCaseStack.push(L.EXPANSION_CASE_EXP_START)}_consumeExpansionCaseEnd(){this._beginToken(L.EXPANSION_CASE_EXP_END,this._getLocation()),this._requireCharCode(125),this._endToken([],this._getLocation()),this._attemptCharCodeUntilFn(H),this._expansionCaseStack.pop()}_consumeExpansionFormEnd(){this._beginToken(L.EXPANSION_FORM_END,this._getLocation()),this._requireCharCode(125),this._endToken([]),this._expansionCaseStack.pop()}_consumeText(){const t=this._getLocation();this._beginToken(L.TEXT,t);const e=[];do{this._interpolationConfig&&this._attemptStr(this._interpolationConfig.start)?(e.push(this._interpolationConfig.start),this._inInterpolation=!0):this._interpolationConfig&&this._inInterpolation&&this._attemptStr(this._interpolationConfig.end)?(e.push(this._interpolationConfig.end),this._inInterpolation=!1):e.push(this._readChar(!0))}while(!this._isTextEnd());this._endToken([this._processCarriageReturns(e.join(""))])}_isTextEnd(){if(60===this._peek||0===this._peek)return!0;if(this._tokenizeIcu&&!this._inInterpolation){if($(this._input,this._index,this._interpolationConfig))return!0;if(125===this._peek&&this._isInExpansionCase())return!0}return!1}_savePosition(){return[this._peek,this._index,this._column,this._line,this.tokens.length]}_readUntil(t){const e=this._index;return this._attemptUntilChar(t),this._input.substring(e,this._index)}_restorePosition(t){this._peek=t[0],this._index=t[1],this._column=t[2],this._line=t[3];const e=t[4];e<this.tokens.length&&(this.tokens=this.tokens.slice(0,e))}_isInExpansionCase(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===L.EXPANSION_CASE_EXP_START}_isInExpansionForm(){return this._expansionCaseStack.length>0&&this._expansionCaseStack[this._expansionCaseStack.length-1]===L.EXPANSION_FORM_START}}function H(t){return!S(t)||0===t}function U(t){return S(t)||62===t||47===t||39===t||34===t||61===t}function W(t){return 59===t||0===t||!function(t){return t>=97&&t<=102||t>=65&&t<=70||k(t)}(t)}function K(t){return 59===t||0===t||!I(t)}function $(t,e,n){const a=!!n&&t.indexOf(n.start,e)===e;return 123===t.charCodeAt(e)&&!a}function Z(t){return t>=97&&t<=122?t-97+65:t}class J extends P{constructor(t,e,n){super(e,n),this.elementName=t}static create(t,e,n){return new J(t,e,n)}}class X{constructor(t,e){this.rootNodes=t,this.errors=e}}class Q{constructor(t){this.getTagDefinition=t}parse(t,e,n=!1,a=T){const r=function(t,e,n,a=!1,r=T){return new Y(new O(t,e),n,a,r).tokenize()}(t,e,this.getTagDefinition,n,a),o=new tt(r.tokens,this.getTagDefinition).build();return new X(o.rootNodes,r.errors.concat(o.errors))}}class tt{constructor(t,e){this.tokens=t,this.getTagDefinition=e,this._index=-1,this._rootNodes=[],this._errors=[],this._elementStack=[],this._advance()}build(){for(;this._peek.type!==L.EOF;)this._peek.type===L.TAG_OPEN_START?this._consumeStartTag(this._advance()):this._peek.type===L.TAG_CLOSE?this._consumeEndTag(this._advance()):this._peek.type===L.CDATA_START?(this._closeVoidElement(),this._consumeCdata(this._advance())):this._peek.type===L.COMMENT_START?(this._closeVoidElement(),this._consumeComment(this._advance())):this._peek.type===L.TEXT||this._peek.type===L.RAW_TEXT||this._peek.type===L.ESCAPABLE_RAW_TEXT?(this._closeVoidElement(),this._consumeText(this._advance())):this._peek.type===L.EXPANSION_FORM_START?this._consumeExpansion(this._advance()):this._advance();return new X(this._rootNodes,this._errors)}_advance(){const t=this._peek;return this._index<this.tokens.length-1&&this._index++,this._peek=this.tokens[this._index],t}_advanceIf(t){return this._peek.type===t?this._advance():null}_consumeCdata(t){this._consumeText(this._advance()),this._advanceIf(L.CDATA_END)}_consumeComment(t){const e=this._advanceIf(L.RAW_TEXT);this._advanceIf(L.COMMENT_END);const n=null!==e?e.parts[0].trim():null;this._addToParent(new d(n,t.sourceSpan))}_consumeExpansion(t){const e=this._advance(),n=this._advance(),a=[];for(;this._peek.type===L.EXPANSION_CASE_VALUE;){const t=this._parseExpansionCase();if(!t)return;a.push(t)}if(this._peek.type!==L.EXPANSION_FORM_END)return void this._errors.push(J.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '}'."));const r=new v(t.sourceSpan.start,this._peek.sourceSpan.end);this._addToParent(new i(e.parts[0],n.parts[0],a,r,e.sourceSpan)),this._advance()}_parseExpansionCase(){const t=this._advance();if(this._peek.type!==L.EXPANSION_CASE_EXP_START)return this._errors.push(J.create(null,this._peek.sourceSpan,"Invalid ICU message. Missing '{'.")),null;const e=this._advance(),n=this._collectExpansionExpTokens(e);if(!n)return null;const a=this._advance();n.push(new q(L.EOF,[],a.sourceSpan));const r=new tt(n,this.getTagDefinition).build();if(r.errors.length>0)return this._errors=this._errors.concat(r.errors),null;const o=new v(t.sourceSpan.start,a.sourceSpan.end),i=new v(e.sourceSpan.start,a.sourceSpan.end);return new s(t.parts[0],r.rootNodes,o,t.sourceSpan,i)}_collectExpansionExpTokens(t){const e=[],n=[L.EXPANSION_CASE_EXP_START];for(;;){if(this._peek.type!==L.EXPANSION_FORM_START&&this._peek.type!==L.EXPANSION_CASE_EXP_START||n.push(this._peek.type),this._peek.type===L.EXPANSION_CASE_EXP_END){if(!et(n,L.EXPANSION_CASE_EXP_START))return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;if(n.pop(),0===n.length)return e}if(this._peek.type===L.EXPANSION_FORM_END){if(!et(n,L.EXPANSION_FORM_START))return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;n.pop()}if(this._peek.type===L.EOF)return this._errors.push(J.create(null,t.sourceSpan,"Invalid ICU message. Missing '}'.")),null;e.push(this._advance())}}_consumeText(t){let e=t.parts[0];if(e.length>0&&"\n"===e[0]){const t=this._getParentElement();null!==t&&0===t.children.length&&this.getTagDefinition(t.name).ignoreFirstLf&&(e=e.substring(1))}e.length>0&&this._addToParent(new o(e,t.sourceSpan))}_closeVoidElement(){const t=this._getParentElement();t&&this.getTagDefinition(t.name).isVoid&&this._elementStack.pop()}_consumeStartTag(t){const e=t.parts[0],n=t.parts[1],a=[];for(;this._peek.type===L.ATTR_NAME;)a.push(this._consumeAttr(this._advance()));const r=this._getElementFullName(e,n,this._getParentElement());let o=!1;if(this._peek.type===L.TAG_OPEN_END_VOID){this._advance(),o=!0;const e=this.getTagDefinition(r);e.canSelfClose||null!==A(r)||e.isVoid||this._errors.push(J.create(r,t.sourceSpan,`Only void and foreign elements can be self closed "${t.parts[1]}"`))}else this._peek.type===L.TAG_OPEN_END&&(this._advance(),o=!1);const i=new v(t.sourceSpan.start,this._peek.sourceSpan.start),s=new l(r,a,[],i,i,void 0);this._pushElement(s),o&&(this._popElement(r),s.endSourceSpan=i)}_pushElement(t){const e=this._getParentElement();e&&this.getTagDefinition(e.name).isClosedByChild(t.name)&&this._elementStack.pop();const n=this.getTagDefinition(t.name),{parent:a,container:r}=this._getParentElementSkippingContainers();if(a&&n.requireExtraParent(a.name)){const e=new l(n.parentToAdd,[],[],t.sourceSpan,t.startSourceSpan,t.endSourceSpan);this._insertBeforeContainer(a,r,e)}this._addToParent(t),this._elementStack.push(t)}_consumeEndTag(t){const e=this._getElementFullName(t.parts[0],t.parts[1],this._getParentElement());this._getParentElement()&&(this._getParentElement().endSourceSpan=t.sourceSpan),this.getTagDefinition(e).isVoid?this._errors.push(J.create(e,t.sourceSpan,`Void elements do not have end tags "${t.parts[1]}"`)):this._popElement(e)||this._errors.push(J.create(e,t.sourceSpan,`Unexpected closing tag "${e}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`))}_popElement(t){for(let e=this._elementStack.length-1;e>=0;e--){const n=this._elementStack[e];if(n.name===t)return this._elementStack.splice(e,this._elementStack.length-e),!0;if(!this.getTagDefinition(n.name).closedByParent)return!1}return!1}_consumeAttr(t){const e=E(t.parts[0],t.parts[1]);let n=t.sourceSpan.end,a="",r=void 0;if(this._peek.type===L.ATTR_VALUE){const t=this._advance();a=t.parts[0],n=t.sourceSpan.end,r=t.sourceSpan}return new c(e,a,new v(t.sourceSpan.start,n),r)}_getParentElement(){return this._elementStack.length>0?this._elementStack[this._elementStack.length-1]:null}_getParentElementSkippingContainers(){let t=null;for(let e=this._elementStack.length-1;e>=0;e--){if("ng-container"!==R(this._elementStack[e].name)[1])return{parent:this._elementStack[e],container:t};t=this._elementStack[e]}return{parent:null,container:t}}_addToParent(t){const e=this._getParentElement();null!==e?e.children.push(t):this._rootNodes.push(t)}_insertBeforeContainer(t,e,n){if(e){if(t){const a=t.children.indexOf(e);t.children[a]=n}else this._rootNodes.push(n);n.children.push(e),this._elementStack.splice(this._elementStack.indexOf(e),0,n)}else this._addToParent(n),this._elementStack.push(n)}_getElementFullName(t,e,n){return null===t&&null===(t=this.getTagDefinition(e).implicitNamespacePrefix)&&null!==n&&(t=A(n.name)),E(t,e)}}function et(t,e){return t.length>0&&t[t.length-1]===e}class nt{constructor(){this.closedByParent=!1,this.contentType=N.PARSABLE_DATA,this.isVoid=!1,this.ignoreFirstLf=!1,this.canSelfClose=!0}requireExtraParent(t){return!1}isClosedByChild(t){return!1}}const at=new nt;function rt(t){return at}class ot{constructor({closedByChildren:t,requiredParents:e,implicitNamespacePrefix:n,contentType:a=N.PARSABLE_DATA,closedByParent:r=!1,isVoid:o=!1,ignoreFirstLf:i=!1}={}){this.closedByChildren={},this.closedByParent=!1,this.canSelfClose=!1,t&&t.length>0&&t.forEach(t=>this.closedByChildren[t]=!0),this.isVoid=o,this.closedByParent=r||o,e&&e.length>0&&(this.requiredParents={},this.parentToAdd=e[0],e.forEach(t=>this.requiredParents[t]=!0)),this.implicitNamespacePrefix=n||null,this.contentType=a,this.ignoreFirstLf=i}requireExtraParent(t){if(!this.requiredParents)return!1;if(!t)return!0;const e=t.toLowerCase();return!("template"===e||"ng-template"===t)&&!0!==this.requiredParents[e]}isClosedByChild(t){return this.isVoid||t.toLowerCase()in this.closedByChildren}}const it={base:new ot({isVoid:!0}),meta:new ot({isVoid:!0}),area:new ot({isVoid:!0}),embed:new ot({isVoid:!0}),link:new ot({isVoid:!0}),img:new ot({isVoid:!0}),input:new ot({isVoid:!0}),param:new ot({isVoid:!0}),hr:new ot({isVoid:!0}),br:new ot({isVoid:!0}),source:new ot({isVoid:!0}),track:new ot({isVoid:!0}),wbr:new ot({isVoid:!0}),p:new ot({closedByChildren:["address","article","aside","blockquote","div","dl","fieldset","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","main","nav","ol","p","pre","section","table","ul"],closedByParent:!0}),thead:new ot({closedByChildren:["tbody","tfoot"]}),tbody:new ot({closedByChildren:["tbody","tfoot"],closedByParent:!0}),tfoot:new ot({closedByChildren:["tbody"],closedByParent:!0}),tr:new ot({closedByChildren:["tr"],requiredParents:["tbody","tfoot","thead"],closedByParent:!0}),td:new ot({closedByChildren:["td","th"],closedByParent:!0}),th:new ot({closedByChildren:["td","th"],closedByParent:!0}),col:new ot({requiredParents:["colgroup"],isVoid:!0}),svg:new ot({implicitNamespacePrefix:"svg"}),math:new ot({implicitNamespacePrefix:"math"}),li:new ot({closedByChildren:["li"],closedByParent:!0}),dt:new ot({closedByChildren:["dt","dd"]}),dd:new ot({closedByChildren:["dt","dd"],closedByParent:!0}),rb:new ot({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rt:new ot({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),rtc:new ot({closedByChildren:["rb","rtc","rp"],closedByParent:!0}),rp:new ot({closedByChildren:["rb","rt","rtc","rp"],closedByParent:!0}),optgroup:new ot({closedByChildren:["optgroup"],closedByParent:!0}),option:new ot({closedByChildren:["option","optgroup"],closedByParent:!0}),pre:new ot({ignoreFirstLf:!0}),listing:new ot({ignoreFirstLf:!0}),style:new ot({contentType:N.RAW_TEXT}),script:new ot({contentType:N.RAW_TEXT}),title:new ot({contentType:N.ESCAPABLE_RAW_TEXT}),textarea:new ot({contentType:N.ESCAPABLE_RAW_TEXT,ignoreFirstLf:!0})},st=new ot;function ct(t){return it[t.toLowerCase()]||st}class lt extends class{visitText(t,e){}visitContainer(t,e){t.children.forEach(t=>t.visit(this))}visitIcu(t,e){Object.keys(t.cases).forEach(e=>{t.cases[e].visit(this)})}visitTagPlaceholder(t,e){t.children.forEach(t=>t.visit(this))}visitPlaceholder(t,e){}visitIcuPlaceholder(t,e){}}{constructor(t,e){super(),this.mapName=e,this.internalToPublic={},this.publicToNextId={},this.publicToInternal={},t.nodes.forEach(t=>t.visit(this))}toPublicName(t){return this.internalToPublic.hasOwnProperty(t)?this.internalToPublic[t]:null}toInternalName(t){return this.publicToInternal.hasOwnProperty(t)?this.publicToInternal[t]:null}visitText(t,e){return null}visitTagPlaceholder(t,e){this.visitPlaceholderName(t.startName),super.visitTagPlaceholder(t,e),this.visitPlaceholderName(t.closeName)}visitPlaceholder(t,e){this.visitPlaceholderName(t.name)}visitIcuPlaceholder(t,e){this.visitPlaceholderName(t.name)}visitPlaceholderName(t){if(!t||this.internalToPublic.hasOwnProperty(t))return;let e=this.mapName(t);if(this.publicToInternal.hasOwnProperty(e)){const t=this.publicToNextId[e];this.publicToNextId[e]=t+1,e=`${e}_${t}`}else this.publicToNextId[e]=1;this.internalToPublic[t]=e,this.publicToInternal[e]=t}}const dt=new a.I18nSelectPipe;class ut{constructor(t,e){this.params=e,this.i18nPluralPipe=new a.I18nPluralPipe(new a.NgLocaleLocalization(t))}visitElement(t,e){return ct(t.name).isVoid?`<${t.name}${this.serializeNodes(t.attrs," ")}/>`:`<${t.name}${this.serializeNodes(t.attrs," ")}>${this.serializeNodes(t.children)}</${t.name}>`}visitAttribute(t,e){return`${t.name}="${t.value}"`}visitText(t,e){return t.value}visitComment(t,e){return`\x3c!--${t.value}--\x3e`}visitExpansion(t,e){const n={};switch(t.cases.forEach(t=>n[t.value]=this.serializeNodes(t.expression)),t.type){case"select":return dt.transform(this.params[t.switchValue]||"",n);case"plural":return this.i18nPluralPipe.transform(this.params[t.switchValue],n)}throw new Error(`Unknown expansion type "${t.type}"`)}visitExpansionCase(t,e){return` ${t.value} {${this.serializeNodes(t.expression)}}`}serializeNodes(t,e=""){return 0===t.length?"":e+t.map(t=>t.visit(this,null)).join(e)}}function gt(t){return t.id||function(t){const e=It(t),n=function(t,e){const n=Array(t.length+3>>>2);for(let a=0;a<n.length;a++)n[a]=wt(t,4*a,e);return n}(e,Ot.Big),a=8*e.length,r=new Array(80);let[o,i,s,c,l]=[1732584193,4023233417,2562383102,271733878,3285377520];n[a>>5]|=128<<24-a%32,n[15+(a+64>>9<<4)]=a;for(let d=0;d<n.length;d+=16){const[t,e,a,u,g]=[o,i,s,c,l];for(let f=0;f<80;f++){r[f]=f<16?n[d+f]:Mt(r[f-3]^r[f-8]^r[f-14]^r[f-16],1);const[t,e]=ht(f,i,s,c),a=[Mt(o,5),t,l,e,r[f]].reduce(vt);[l,c,s,i,o]=[c,s,Mt(i,30),o,a]}[o,i,s,c,l]=[vt(o,t),vt(i,e),vt(s,a),vt(c,u),vt(l,g)]}return function(t){let e="";for(let n=0;n<t.length;n++){const a=xt(t,n);e+=(a>>>4).toString(16)+(15&a).toString(16)}return e.toLowerCase()}(Tt([o,i,s,c,l]))}((e=t.nodes,e.map(t=>t.visit(pt,null))).join("")+`[${t.meaning}]`);var e}class ft{visitText(t,e){return t.value}visitContainer(t,e){return`[${t.children.map(t=>t.visit(this)).join(", ")}]`}visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${t.expression}, ${t.type}, ${n.join(", ")}}`}visitTagPlaceholder(t,e){return t.isVoid?`<ph tag name="${t.startName}"/>`:`<ph tag name="${t.startName}">${t.children.map(t=>t.visit(this)).join(", ")}</ph name="${t.closeName}">`}visitPlaceholder(t,e){return t.value?`<ph name="${t.name}">${t.value}</ph>`:`<ph name="${t.name}"/>`}visitIcuPlaceholder(t,e){return`<ph icu name="${t.name}">${t.value.visit(this)}</ph>`}}const pt=new ft;class mt extends ft{visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${t.type}, ${n.join(", ")}}`}}function ht(t,e,n,a){return t<20?[e&n|~e&a,1518500249]:t<40?[e^n^a,1859775393]:t<60?[e&n|e&a|n&a,2400959708]:[e^n^a,3395469782]}function bt(t){const e=It(t);let[n,a]=[yt(e,0),yt(e,102072)];return 0!==n||0!==a&&1!==a||(n^=319790063,a^=-1801410264),[n,a]}function yt(t,e){let n,[a,r]=[2654435769,2654435769];const o=t.length;for(n=0;n+12<=o;n+=12)a=vt(a,wt(t,n,Ot.Little)),r=vt(r,wt(t,n+4,Ot.Little)),e=vt(e,wt(t,n+8,Ot.Little)),[a,r,e]=_t([a,r,e]);return a=vt(a,wt(t,n,Ot.Little)),r=vt(r,wt(t,n+4,Ot.Little)),e=vt(e,o),_t([a,r,e=vt(e,wt(t,n+8,Ot.Little)<<8)])[2]}function _t([t,e,n]){return t=Pt(t,e),t=Pt(t,n),t^=n>>>13,e=Pt(e,n),e=Pt(e,t),e^=t<<8,n=Pt(n,t),n=Pt(n,e),n^=e>>>13,t=Pt(t,e),t=Pt(t,n),t^=n>>>12,e=Pt(e,n),e=Pt(e,t),e^=t<<16,n=Pt(n,t),n=Pt(n,e),n^=e>>>5,t=Pt(t,e),t=Pt(t,n),t^=n>>>3,e=Pt(e,n),e=Pt(e,t),e^=t<<10,n=Pt(n,t),n=Pt(n,e),[t,e,n^=e>>>15]}const Ot=function(){var t={Little:0,Big:1};return t[t.Little]="Little",t[t.Big]="Big",t}();function vt(t,e){return Ct(t,e)[1]}function Ct(t,e){const n=(65535&t)+(65535&e),a=(t>>>16)+(e>>>16)+(n>>>16);return[a>>>16,a<<16|65535&n]}function Pt(t,e){const n=(65535&t)-(65535&e);return(t>>16)-(e>>16)+(n>>16)<<16|65535&n}function Mt(t,e){return t<<e|t>>>32-e}function xt(t,e){return e>=t.length?0:255&t.charCodeAt(e)}function wt(t,e,n){let a=0;if(n===Ot.Big)for(let r=0;r<4;r++)a+=xt(t,e+r)<<24-8*r;else for(let r=0;r<4;r++)a+=xt(t,e+r)<<8*r;return a}function Tt(t){return t.reduce((t,e)=>t+function(t){let e="";for(let n=0;n<4;n++)e+=String.fromCharCode(t>>>8*(3-n)&255);return e}(e),"")}function St(t,e){let n="";const a=Math.max(t.length,e.length);for(let r=0,o=0;r<a||o;r++){const a=o+ +(t[r]||0)+ +(e[r]||0);a>=10?(o=1,n+=a-10):(o=0,n+=a)}return n}function kt(t,e){let n="",a=e;for(;0!==t;t>>>=1)1&t&&(n=St(n,a)),a=St(a,a);return n}function It(t){let e="";for(let n=0;n<t.length;n++){let a=t.charCodeAt(n);if(a>=55296&&a<=56319&&t.length>n+1){const e=t.charCodeAt(n+1);e>=56320&&e<=57343&&(n++,a=(a-55296<<10)+e-56320+65536)}a<=127?e+=String.fromCharCode(a):a<=2047?e+=String.fromCharCode(a>>6&31|192,63&a|128):a<=65535?e+=String.fromCharCode(a>>12|224,a>>6&63|128,63&a|128):a<=2097151&&(e+=String.fromCharCode(a>>18&7|240,a>>12&63|128,a>>6&63|128,63&a|128))}return e}function Nt(t){const e=new At,{msgIdToHtml:n,errors:a}=e.parse(t),r={},o=new Et;if(Object.keys(n).forEach(t=>{const{i18nNodes:e,errors:i}=o.convert(n[t]);a.push(...i),r[t]=e}),a.length)throw new Error(`xliff parse errors:\n${a.join("\n")}`);return r}const Rt=gt;class At{parse(t){this._unitMlString=null,this._msgIdToHtml={};const e=new Q(rt).parse(t,"",!1);return this._errors=e.errors,u(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"trans-unit":this._unitMlString=null;const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;this._msgIdToHtml.hasOwnProperty(n)?this._addError(t,`Duplicated translations for msg ${n}`):(u(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[n]=this._unitMlString:this._addError(t,`Message ${n} misses a translation`))}else this._addError(t,'<trans-unit> misses the "id" attribute');break;case"source":break;case"target":const n=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=n;break;case"file":u(this,t.children,null);break;default:u(this,t.children,null)}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}class Et{convert(t){const e=new Q(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:u(this,e.rootNodes),errors:this._errors}}visitText(t,e){return new f(t.value,t.sourceSpan)}visitElement(t,e){if("x"===t.name){const e=t.attrs.find(t=>"id"===t.name);if(e)return new b("",e.value,t.sourceSpan);this._addError(t,'<x> misses the "id" attribute')}else this._addError(t,"Unexpected tag");return null}visitExpansion(t,e){const n={};return u(this,t.cases).forEach(e=>{n[e.value]=new p(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:u(this,t.expression)}}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}function Dt(t){const e=new qt,{msgIdToHtml:n,errors:a}=e.parse(t),r={},o=new jt;if(Object.keys(n).forEach(t=>{const{i18nNodes:e,errors:i}=o.convert(n[t]);a.push(...i),r[t]=e}),a.length)throw new Error(`xliff2 parse errors:\n${a.join("\n")}`);return r}const Lt=function(t){if(t.id)return t.id;const e=new mt;return function(t,e){let[n,a]=bt(t);if(e){const[t,r]=bt(e);[n,a]=function([t,e],[n,a]){const[r,o]=Ct(e,a);return[vt(vt(t,n),r),o]}(function([t,e],n){return[t<<n|e>>>32-n,e<<n|t>>>32-n]}([n,a],1),[t,r])}return function(t){let e="",n="1";for(let a=t.length-1;a>=0;a--)e=St(e,kt(xt(t,a),n)),n=kt(256,n);return e.split("").reverse().join("")}(Tt([2147483647&n,a]))}(t.nodes.map(t=>t.visit(e,null)).join(""),t.meaning)};class qt{parse(t){this._unitMlString=null,this._msgIdToHtml={};const e=new Q(rt).parse(t,"",!1);return this._errors=e.errors,u(this,e.rootNodes,null),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"unit":this._unitMlString=null;const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;this._msgIdToHtml.hasOwnProperty(n)?this._addError(t,`Duplicated translations for msg ${n}`):(u(this,t.children,null),"string"==typeof this._unitMlString?this._msgIdToHtml[n]=this._unitMlString:this._addError(t,`Message ${n} misses a translation`))}else this._addError(t,'<unit> misses the "id" attribute');break;case"source":break;case"target":const n=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._unitMlString=n;break;case"xliff":const a=t.attrs.find(t=>"version"===t.name);if(a){const e=a.value;"2.0"!==e?this._addError(t,`The XLIFF file version ${e} is not compatible with XLIFF 2.0 serializer`):u(this,t.children,null)}break;default:u(this,t.children,null)}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}class jt{convert(t){const e=new Q(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:[].concat(...u(this,e.rootNodes)),errors:this._errors}}visitText(t,e){return new f(t.value,t.sourceSpan)}visitElement(t,e){switch(t.name){case"ph":const e=t.attrs.find(t=>"equiv"===t.name);if(e)return[new b("",e.value,t.sourceSpan)];this._addError(t,'<ph> misses the "equiv" attribute');break;case"pc":const n=t.attrs.find(t=>"equivStart"===t.name),a=t.attrs.find(t=>"equivEnd"===t.name);if(n){if(a){const e=a.value;return[].concat(new b("",n.value,t.sourceSpan),...t.children.map(t=>t.visit(this,null)),new b("",e,t.sourceSpan))}this._addError(t,'<ph> misses the "equivEnd" attribute')}else this._addError(t,'<ph> misses the "equivStart" attribute');break;default:this._addError(t,"Unexpected tag")}return null}visitExpansion(t,e){const n={};return u(this,t.cases).forEach(e=>{n[e.value]=new p(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:[].concat(...u(this,t.expression))}}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}function Ft(t){return t.toUpperCase().replace(/[^A-Z0-9_]/g,"_")}function zt(t){const e=new Vt,{msgIdToHtml:n,errors:a}=e.parse(t);if(a.length)throw new Error(`xtb parse errors:\n${a.join("\n")}`);const r={},o=new Yt;return Object.keys(n).forEach(t=>{var e,a;e=r,a=t,Object.defineProperty(e,a,{configurable:!0,enumerable:!0,get:()=>{const r=(()=>{const{i18nNodes:e,errors:a}=o.convert(n[t]);if(a.length)throw new Error(`xtb parse errors:\n${a.join("\n")}`);return e})();return Object.defineProperty(e,a,{enumerable:!0,value:r}),r},set:t=>{throw new Error("Could not overwrite an XTB translation")}})}),r}const Gt=gt,Bt=function(t){return new lt(t,Ft)};class Vt{parse(t){this._bundleDepth=0,this._msgIdToHtml={};const e=new Q(rt).parse(t,"",!1);return this._errors=e.errors,u(this,e.rootNodes),{msgIdToHtml:this._msgIdToHtml,errors:this._errors}}visitElement(t,e){switch(t.name){case"translationbundle":this._bundleDepth++,this._bundleDepth>1&&this._addError(t,"<translationbundle> elements can not be nested"),u(this,t.children,null),this._bundleDepth--;break;case"translation":const e=t.attrs.find(t=>"id"===t.name);if(e){const n=e.value;if(this._msgIdToHtml.hasOwnProperty(n))this._addError(t,`Duplicated translations for msg ${n}`);else{const e=t.startSourceSpan.start.file.content.slice(t.startSourceSpan.end.offset,t.endSourceSpan.start.offset);this._msgIdToHtml[n]=e}}else this._addError(t,'<translation> misses the "id" attribute');break;default:this._addError(t,"Unexpected tag")}}visitAttribute(t,e){}visitText(t,e){}visitComment(t,e){}visitExpansion(t,e){}visitExpansionCase(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}class Yt{convert(t){const e=new Q(rt).parse(t,"",!0);return this._errors=e.errors,{i18nNodes:this._errors.length>0||0===e.rootNodes.length?[]:u(this,e.rootNodes),errors:this._errors}}visitText(t,e){return new f(t.value,t.sourceSpan)}visitExpansion(t,e){const n={};return u(this,t.cases).forEach(e=>{n[e.value]=new p(e.nodes,t.sourceSpan)}),new m(t.switchValue,t.type,n,t.sourceSpan)}visitExpansionCase(t,e){return{value:t.value,nodes:u(this,t.expression)}}visitElement(t,e){if("ph"===t.name){const e=t.attrs.find(t=>"name"===t.name);if(e)return new b("",e.value,t.sourceSpan);this._addError(t,'<ph> misses the "name" attribute')}else this._addError(t,"Unexpected tag");return null}visitComment(t,e){}visitAttribute(t,e){}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}class Ht{constructor(t,e,n,a){this.input=e,this.errLocation=n,this.ctxLocation=a,this.message=`Parser Error: ${t} ${n} [${e}] in ${a}`}}class Ut{constructor(t,e){this.start=t,this.end=e}}class Wt{constructor(t){this.span=t}visit(t,e=null){return null}toString(){return"AST"}}class Kt extends Wt{constructor(t,e,n,a){super(t),this.prefix=e,this.uninterpretedExpression=n,this.location=a}visit(t,e=null){return t.visitQuote(this,e)}toString(){return"Quote"}}class $t extends Wt{visit(t,e=null){}}class Zt extends Wt{visit(t,e=null){return t.visitImplicitReceiver(this,e)}}class Jt extends Wt{constructor(t,e){super(t),this.expressions=e}visit(t,e=null){return t.visitChain(this,e)}}class Xt extends Wt{constructor(t,e,n,a){super(t),this.condition=e,this.trueExp=n,this.falseExp=a}visit(t,e=null){return t.visitConditional(this,e)}}class Qt extends Wt{constructor(t,e,n){super(t),this.receiver=e,this.name=n}visit(t,e=null){return t.visitPropertyRead(this,e)}}class te extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.value=a}visit(t,e=null){return t.visitPropertyWrite(this,e)}}class ee extends Wt{constructor(t,e,n){super(t),this.receiver=e,this.name=n}visit(t,e=null){return t.visitSafePropertyRead(this,e)}}class ne extends Wt{constructor(t,e,n){super(t),this.obj=e,this.key=n}visit(t,e=null){return t.visitKeyedRead(this,e)}}class ae extends Wt{constructor(t,e,n,a){super(t),this.obj=e,this.key=n,this.value=a}visit(t,e=null){return t.visitKeyedWrite(this,e)}}class re extends Wt{constructor(t,e,n,a){super(t),this.exp=e,this.name=n,this.args=a}visit(t,e=null){return t.visitPipe(this,e)}}class oe extends Wt{constructor(t,e){super(t),this.value=e}visit(t,e=null){return t.visitLiteralPrimitive(this,e)}}class ie extends Wt{constructor(t,e){super(t),this.expressions=e}visit(t,e=null){return t.visitLiteralArray(this,e)}}class se extends Wt{constructor(t,e,n){super(t),this.keys=e,this.values=n}visit(t,e=null){return t.visitLiteralMap(this,e)}}class ce extends Wt{constructor(t,e,n){super(t),this.strings=e,this.expressions=n}visit(t,e=null){return t.visitInterpolation(this,e)}}class le extends Wt{constructor(t,e,n,a){super(t),this.operation=e,this.left=n,this.right=a}visit(t,e=null){return t.visitBinary(this,e)}}class de extends Wt{constructor(t,e){super(t),this.expression=e}visit(t,e=null){return t.visitPrefixNot(this,e)}}class ue extends Wt{constructor(t,e){super(t),this.expression=e}visit(t,e=null){return t.visitNonNullAssert(this,e)}}class ge extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.args=a}visit(t,e=null){return t.visitMethodCall(this,e)}}class fe extends Wt{constructor(t,e,n,a){super(t),this.receiver=e,this.name=n,this.args=a}visit(t,e=null){return t.visitSafeMethodCall(this,e)}}class pe extends Wt{constructor(t,e,n){super(t),this.target=e,this.args=n}visit(t,e=null){return t.visitFunctionCall(this,e)}}class me extends Wt{constructor(t,e,n,a){super(new Ut(0,null==e?0:e.length)),this.ast=t,this.source=e,this.location=n,this.errors=a}visit(t,e=null){return this.ast.visit(t,e)}toString(){return`${this.source} in ${this.location}`}}class he{constructor(t,e,n,a,r){this.span=t,this.key=e,this.keyIsVar=n,this.name=a,this.expression=r}}const be=function(){var t={Character:0,Identifier:1,Keyword:2,String:3,Operator:4,Number:5,Error:6};return t[t.Character]="Character",t[t.Identifier]="Identifier",t[t.Keyword]="Keyword",t[t.String]="String",t[t.Operator]="Operator",t[t.Number]="Number",t[t.Error]="Error",t}(),ye=["var","let","as","null","undefined","true","false","if","else","this"];class _e{tokenize(t){const e=new Me(t),n=[];let a=e.scanToken();for(;null!=a;)n.push(a),a=e.scanToken();return n}}class Oe{constructor(t,e,n,a){this.index=t,this.type=e,this.numValue=n,this.strValue=a}isCharacter(t){return this.type===be.Character&&this.numValue===t}isNumber(){return this.type===be.Number}isString(){return this.type===be.String}isOperator(t){return this.type===be.Operator&&this.strValue===t}isIdentifier(){return this.type===be.Identifier}isKeyword(){return this.type===be.Keyword}isKeywordLet(){return this.type===be.Keyword&&"let"===this.strValue}isKeywordAs(){return this.type===be.Keyword&&"as"===this.strValue}isKeywordNull(){return this.type===be.Keyword&&"null"===this.strValue}isKeywordUndefined(){return this.type===be.Keyword&&"undefined"===this.strValue}isKeywordTrue(){return this.type===be.Keyword&&"true"===this.strValue}isKeywordFalse(){return this.type===be.Keyword&&"false"===this.strValue}isKeywordThis(){return this.type===be.Keyword&&"this"===this.strValue}isError(){return this.type===be.Error}toNumber(){return this.type===be.Number?this.numValue:-1}toString(){switch(this.type){case be.Character:case be.Identifier:case be.Keyword:case be.Operator:case be.String:case be.Error:return this.strValue;case be.Number:return this.numValue.toString();default:return null}}}function ve(t,e){return new Oe(t,be.Character,e,String.fromCharCode(e))}function Ce(t,e){return new Oe(t,be.Operator,0,e)}const Pe=new Oe(-1,be.Character,0,"");class Me{constructor(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){const t=this.input,e=this.length;let n=this.peek,a=this.index;for(;n<=32;){if(++a>=e){n=0;break}n=t.charCodeAt(a)}if(this.peek=n,this.index=a,a>=e)return null;if(xe(n))return this.scanIdentifier();if(k(n))return this.scanNumber(a);const r=a;switch(n){case 46:return this.advance(),k(this.peek)?this.scanNumber(r):ve(r,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(r,n);case 39:case 34:return this.scanString();case 35:case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(r,String.fromCharCode(n));case 63:return this.scanComplexOperator(r,"?",46,".");case 60:case 62:return this.scanComplexOperator(r,String.fromCharCode(n),61,"=");case 33:case 61:return this.scanComplexOperator(r,String.fromCharCode(n),61,"=",61,"=");case 38:return this.scanComplexOperator(r,"&",38,"&");case 124:return this.scanComplexOperator(r,"|",124,"|");case 160:for(;S(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(n)}]`,0)}scanCharacter(t,e){return this.advance(),ve(t,e)}scanOperator(t,e){return this.advance(),Ce(t,e)}scanComplexOperator(t,e,n,a,r,o){this.advance();let i=e;return this.peek===n&&(this.advance(),i+=a),null!=r&&this.peek===r&&(this.advance(),i+=o),Ce(t,i)}scanIdentifier(){const t=this.index;for(this.advance();we(this.peek);)this.advance();const e=this.input.substring(t,this.index);return ye.indexOf(e)>-1?new Oe(t,be.Keyword,0,e):function(t,e){return new Oe(t,be.Identifier,0,e)}(t,e)}scanNumber(t){let e=this.index===t;for(this.advance();;){if(k(this.peek));else if(46===this.peek)e=!1;else{if(101!==(n=this.peek)&&69!==n)break;if(this.advance(),Te(this.peek)&&this.advance(),!k(this.peek))return this.error("Invalid exponent",-1);e=!1}this.advance()}var n;const a=this.input.substring(t,this.index),r=e?function(t){const e=parseInt(t,10);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}(a):parseFloat(a);return new Oe(t,be.Number,r,"")}scanString(){const t=this.index,e=this.peek;this.advance();let n="",a=this.index;const r=this.input;for(;this.peek!==e;)if(92===this.peek){let t;if(n+=r.substring(a,this.index),this.advance(),this.peek=this.peek,117===this.peek){const e=r.substring(this.index+1,this.index+5);if(!/^[0-9a-f]+$/i.test(e))return this.error(`Invalid unicode escape [\\u${e}]`,0);t=parseInt(e,16);for(let t=0;t<5;t++)this.advance()}else t=Se(this.peek),this.advance();n+=String.fromCharCode(t),a=this.index}else{if(0===this.peek)return this.error("Unterminated quote",0);this.advance()}const o=r.substring(a,this.index);return this.advance(),new Oe(t,be.String,0,n+o)}error(t,e){const n=this.index+e;return function(t,e){return new Oe(t,be.Error,0,e)}(n,`Lexer Error: ${t} at column ${n} in expression [${this.input}]`)}}function xe(t){return 97<=t&&t<=122||65<=t&&t<=90||95===t||36===t}function we(t){return I(t)||k(t)||95===t||36===t}function Te(t){return 45===t||43===t}function Se(t){switch(t){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return t}}class ke{constructor(t,e,n){this.strings=t,this.expressions=e,this.offsets=n}}class Ie{constructor(t,e,n){this.templateBindings=t,this.warnings=e,this.errors=n}}function Ne(t){const e=x(t.start)+"([\\s\\S]*?)"+x(t.end);return new RegExp(e,"g")}class Re{constructor(t){this._lexer=t,this.errors=[]}parseAction(t,e,n=T){this._checkNoInterpolation(t,e,n);const a=this._stripComments(t),r=this._lexer.tokenize(this._stripComments(t)),o=new Ae(t,e,r,a.length,!0,this.errors,t.length-a.length).parseChain();return new me(o,t,e,this.errors)}parseBinding(t,e,n=T){const a=this._parseBindingAst(t,e,n);return new me(a,t,e,this.errors)}parseSimpleBinding(t,e,n=T){const a=this._parseBindingAst(t,e,n),r=Ee.check(a);return r.length>0&&this._reportError(`Host binding expression cannot contain ${r.join(" ")}`,t,e),new me(a,t,e,this.errors)}_reportError(t,e,n,a){this.errors.push(new Ht(t,e,n,a))}_parseBindingAst(t,e,n){const a=this._parseQuote(t,e);if(null!=a)return a;this._checkNoInterpolation(t,e,n);const r=this._stripComments(t),o=this._lexer.tokenize(r);return new Ae(t,e,o,r.length,!1,this.errors,t.length-r.length).parseChain()}_parseQuote(t,e){if(null===t)return null;const n=t.indexOf(":");if(-1===n)return null;const a=t.substring(0,n).trim();if(!function(t){if(0===t.length)return!1;const e=new Me(t);if(!xe(e.peek))return!1;for(e.advance();0!==e.peek;){if(!we(e.peek))return!1;e.advance()}return!0}(a))return null;const r=t.substring(n+1);return new Kt(new Ut(0,t.length),a,r,e)}parseTemplateBindings(t,e,n){const a=this._lexer.tokenize(e);if(t){const e=this._lexer.tokenize(t).map(t=>(t.index=0,t));a.unshift(...e)}return new Ae(e,n,a,e.length,!1,this.errors,0).parseTemplateBindings()}parseInterpolation(t,e,n=T){const a=this.splitInterpolation(t,e,n);if(null===a)return null;const r=[];for(let o=0;o<a.expressions.length;++o){const n=a.expressions[o],i=this._stripComments(n),s=this._lexer.tokenize(i),c=new Ae(t,e,s,i.length,!1,this.errors,a.offsets[o]+(n.length-i.length)).parseChain();r.push(c)}return new me(new ce(new Ut(0,null===t?0:t.length),a.strings,r),t,e,this.errors)}splitInterpolation(t,e,n=T){const a=Ne(n),r=t.split(a);if(r.length<=1)return null;const o=[],i=[],s=[];let c=0;for(let l=0;l<r.length;l++){const a=r[l];l%2==0?(o.push(a),c+=a.length):a.trim().length>0?(c+=n.start.length,i.push(a),s.push(c),c+=a.length+n.end.length):(this._reportError("Blank expressions are not allowed in interpolated strings",t,`at column ${this._findInterpolationErrorColumn(r,l,n)} in`,e),i.push("$implict"),s.push(c))}return new ke(o,i,s)}wrapLiteralPrimitive(t,e){return new me(new oe(new Ut(0,null===t?0:t.length),t),t,e,this.errors)}_stripComments(t){const e=this._commentStart(t);return null!=e?t.substring(0,e).trim():t}_commentStart(t){let e=null;for(let a=0;a<t.length-1;a++){const r=t.charCodeAt(a),o=t.charCodeAt(a+1);if(47===r&&47===o&&null===e)return a;e===r?e=null:null===e&&(39===(n=r)||34===n||96===n)&&(e=r)}var n;return null}_checkNoInterpolation(t,e,n){const a=Ne(n),r=t.split(a);r.length>1&&this._reportError(`Got interpolation (${n.start}${n.end}) where expression was expected`,t,`at column ${this._findInterpolationErrorColumn(r,1,n)} in`,e)}_findInterpolationErrorColumn(t,e,n){let a="";for(let r=0;r<e;r++)a+=r%2==0?t[r]:`${n.start}${t[r]}${n.end}`;return a.length}}class Ae{constructor(t,e,n,a,r,o,i){this.input=t,this.location=e,this.tokens=n,this.inputLength=a,this.parseAction=r,this.errors=o,this.offset=i,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.index=0}peek(t){const e=this.index+t;return e<this.tokens.length?this.tokens[e]:Pe}get next(){return this.peek(0)}get inputIndex(){return this.index<this.tokens.length?this.next.index+this.offset:this.inputLength+this.offset}span(t){return new Ut(t,this.inputIndex)}advance(){this.index++}optionalCharacter(t){return!!this.next.isCharacter(t)&&(this.advance(),!0)}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(t){this.optionalCharacter(t)||this.error(`Missing expected ${String.fromCharCode(t)}`)}optionalOperator(t){return!!this.next.isOperator(t)&&(this.advance(),!0)}expectOperator(t){this.optionalOperator(t)||this.error(`Missing expected operator ${t}`)}expectIdentifierOrKeyword(){const t=this.next;return t.isIdentifier()||t.isKeyword()?(this.advance(),t.toString()):(this.error(`Unexpected token ${t}, expected identifier or keyword`),"")}expectIdentifierOrKeywordOrString(){const t=this.next;return t.isIdentifier()||t.isKeyword()||t.isString()?(this.advance(),t.toString()):(this.error(`Unexpected token ${t}, expected identifier, keyword, or string`),"")}parseChain(){const t=[],e=this.inputIndex;for(;this.index<this.tokens.length;){const e=this.parsePipe();if(t.push(e),this.optionalCharacter(59))for(this.parseAction||this.error("Binding expression cannot contain chained expression");this.optionalCharacter(59););else this.index<this.tokens.length&&this.error(`Unexpected token '${this.next}'`)}return 0===t.length?new $t(this.span(e)):1===t.length?t[0]:new Jt(this.span(e),t)}parsePipe(){let t=this.parseExpression();if(this.optionalOperator("|")){this.parseAction&&this.error("Cannot have a pipe in an action expression");do{const e=this.expectIdentifierOrKeyword(),n=[];for(;this.optionalCharacter(58);)n.push(this.parseExpression());t=new re(this.span(t.span.start),t,e,n)}while(this.optionalOperator("|"))}return t}parseExpression(){return this.parseConditional()}parseConditional(){const t=this.inputIndex,e=this.parseLogicalOr();if(this.optionalOperator("?")){const n=this.parsePipe();let a;if(this.optionalCharacter(58))a=this.parsePipe();else{const e=this.input.substring(t,this.inputIndex);this.error(`Conditional expression ${e} requires all 3 expressions`),a=new $t(this.span(t))}return new Xt(this.span(t),e,n,a)}return e}parseLogicalOr(){let t=this.parseLogicalAnd();for(;this.optionalOperator("||");){const e=this.parseLogicalAnd();t=new le(this.span(t.span.start),"||",t,e)}return t}parseLogicalAnd(){let t=this.parseEquality();for(;this.optionalOperator("&&");){const e=this.parseEquality();t=new le(this.span(t.span.start),"&&",t,e)}return t}parseEquality(){let t=this.parseRelational();for(;this.next.type===be.Operator;){const e=this.next.strValue;switch(e){case"==":case"===":case"!=":case"!==":this.advance();const n=this.parseRelational();t=new le(this.span(t.span.start),e,t,n);continue}break}return t}parseRelational(){let t=this.parseAdditive();for(;this.next.type===be.Operator;){const e=this.next.strValue;switch(e){case"<":case">":case"<=":case">=":this.advance();const n=this.parseAdditive();t=new le(this.span(t.span.start),e,t,n);continue}break}return t}parseAdditive(){let t=this.parseMultiplicative();for(;this.next.type===be.Operator;){const e=this.next.strValue;switch(e){case"+":case"-":this.advance();const n=this.parseMultiplicative();t=new le(this.span(t.span.start),e,t,n);continue}break}return t}parseMultiplicative(){let t=this.parsePrefix();for(;this.next.type===be.Operator;){const e=this.next.strValue;switch(e){case"*":case"%":case"/":this.advance();const n=this.parsePrefix();t=new le(this.span(t.span.start),e,t,n);continue}break}return t}parsePrefix(){if(this.next.type===be.Operator){const t=this.inputIndex,e=this.next.strValue;let n;switch(e){case"+":return this.advance(),this.parsePrefix();case"-":return this.advance(),n=this.parsePrefix(),new le(this.span(t),e,new oe(new Ut(t,t),0),n);case"!":return this.advance(),n=this.parsePrefix(),new de(this.span(t),n)}}return this.parseCallChain()}parseCallChain(){let t=this.parsePrimary();for(;;)if(this.optionalCharacter(46))t=this.parseAccessMemberOrMethodCall(t,!1);else if(this.optionalOperator("?."))t=this.parseAccessMemberOrMethodCall(t,!0);else if(this.optionalCharacter(91)){this.rbracketsExpected++;const e=this.parsePipe();if(this.rbracketsExpected--,this.expectCharacter(93),this.optionalOperator("=")){const n=this.parseConditional();t=new ae(this.span(t.span.start),t,e,n)}else t=new ne(this.span(t.span.start),t,e)}else if(this.optionalCharacter(40)){this.rparensExpected++;const e=this.parseCallArguments();this.rparensExpected--,this.expectCharacter(41),t=new pe(this.span(t.span.start),t,e)}else{if(!this.optionalOperator("!"))return t;t=new ue(this.span(t.span.start),t)}}parsePrimary(){const t=this.inputIndex;if(this.optionalCharacter(40)){this.rparensExpected++;const t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),t}if(this.next.isKeywordNull())return this.advance(),new oe(this.span(t),null);if(this.next.isKeywordUndefined())return this.advance(),new oe(this.span(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new oe(this.span(t),!0);if(this.next.isKeywordFalse())return this.advance(),new oe(this.span(t),!1);if(this.next.isKeywordThis())return this.advance(),new Zt(this.span(t));if(this.optionalCharacter(91)){this.rbracketsExpected++;const e=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new ie(this.span(t),e)}if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMemberOrMethodCall(new Zt(this.span(t)),!1);if(this.next.isNumber()){const e=this.next.toNumber();return this.advance(),new oe(this.span(t),e)}if(this.next.isString()){const e=this.next.toString();return this.advance(),new oe(this.span(t),e)}return this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $t(this.span(t))):(this.error(`Unexpected token ${this.next}`),new $t(this.span(t)))}parseExpressionList(t){const e=[];if(!this.next.isCharacter(t))do{e.push(this.parsePipe())}while(this.optionalCharacter(44));return e}parseLiteralMap(){const t=[],e=[],n=this.inputIndex;if(this.expectCharacter(123),!this.optionalCharacter(125)){this.rbracesExpected++;do{const n=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();t.push({key:a,quoted:n}),this.expectCharacter(58),e.push(this.parsePipe())}while(this.optionalCharacter(44));this.rbracesExpected--,this.expectCharacter(125)}return new se(this.span(n),t,e)}parseAccessMemberOrMethodCall(t,e=!1){const n=t.span.start,a=this.expectIdentifierOrKeyword();if(this.optionalCharacter(40)){this.rparensExpected++;const r=this.parseCallArguments();this.expectCharacter(41),this.rparensExpected--;const o=this.span(n);return e?new fe(o,t,a,r):new ge(o,t,a,r)}if(e)return this.optionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),new $t(this.span(n))):new ee(this.span(n),t,a);if(this.optionalOperator("=")){if(!this.parseAction)return this.error("Bindings cannot contain assignments"),new $t(this.span(n));const e=this.parseConditional();return new te(this.span(n),t,a,e)}return new Qt(this.span(n),t,a)}parseCallArguments(){if(this.next.isCharacter(41))return[];const t=[];do{t.push(this.parsePipe())}while(this.optionalCharacter(44));return t}expectTemplateBindingKey(){let t="",e=!1;do{t+=this.expectIdentifierOrKeywordOrString(),e=this.optionalOperator("-"),e&&(t+="-")}while(e);return t.toString()}parseTemplateBindings(){const t=[];let e=null;for(;this.index<this.tokens.length;){const n=this.inputIndex;let a=this.peekKeywordLet();a&&this.advance();const r=this.expectTemplateBindingKey();let o=r;a||(null===e?e=o:o=e+o[0].toUpperCase()+o.substring(1)),this.optionalCharacter(58);let i=null,s=null;if(a)i=this.optionalOperator("=")?this.expectTemplateBindingKey():"$implicit";else if(this.peekKeywordAs())this.advance(),i=r,o=this.expectTemplateBindingKey(),a=!0;else if(this.next!==Pe&&!this.peekKeywordLet()){const t=this.inputIndex,e=this.parsePipe(),n=this.input.substring(t-this.offset,this.inputIndex-this.offset);s=new me(e,n,this.location,this.errors)}if(t.push(new he(this.span(n),o,a,i,s)),this.peekKeywordAs()&&!a){const e=this.inputIndex;this.advance();const n=this.expectTemplateBindingKey();t.push(new he(this.span(e),n,!0,o,null))}this.optionalCharacter(59)||this.optionalCharacter(44)}return new Ie(t,[],this.errors)}error(t,e=null){this.errors.push(new Ht(t,this.input,this.locationText(e),this.location)),this.skip()}locationText(t=null){return null===t&&(t=this.index),t<this.tokens.length?`at column ${this.tokens[t].index+1} in`:"at the end of the expression"}skip(){let t=this.next;for(;this.index<this.tokens.length&&!t.isCharacter(59)&&(this.rparensExpected<=0||!t.isCharacter(41))&&(this.rbracesExpected<=0||!t.isCharacter(125))&&(this.rbracketsExpected<=0||!t.isCharacter(93));)this.next.isError()&&this.errors.push(new Ht(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next}}class Ee{constructor(){this.errors=[]}static check(t){const e=new Ee;return t.visit(e),e.errors}visitImplicitReceiver(t,e){}visitInterpolation(t,e){}visitLiteralPrimitive(t,e){}visitPropertyRead(t,e){}visitPropertyWrite(t,e){}visitSafePropertyRead(t,e){}visitMethodCall(t,e){}visitSafeMethodCall(t,e){}visitFunctionCall(t,e){}visitLiteralArray(t,e){this.visitAll(t.expressions)}visitLiteralMap(t,e){this.visitAll(t.values)}visitBinary(t,e){}visitPrefixNot(t,e){}visitNonNullAssert(t,e){}visitConditional(t,e){}visitPipe(t,e){this.errors.push("pipes")}visitKeyedRead(t,e){}visitKeyedWrite(t,e){}visitAll(t){return t.map(t=>t.visit(this))}visitChain(t,e){}visitQuote(t,e){}}const De={A:"LINK",B:"BOLD_TEXT",BR:"LINE_BREAK",EM:"EMPHASISED_TEXT",H1:"HEADING_LEVEL1",H2:"HEADING_LEVEL2",H3:"HEADING_LEVEL3",H4:"HEADING_LEVEL4",H5:"HEADING_LEVEL5",H6:"HEADING_LEVEL6",HR:"HORIZONTAL_RULE",I:"ITALIC_TEXT",LI:"LIST_ITEM",LINK:"MEDIA_LINK",OL:"ORDERED_LIST",P:"PARAGRAPH",Q:"QUOTATION",S:"STRIKETHROUGH_TEXT",SMALL:"SMALL_TEXT",SUB:"SUBSTRIPT",SUP:"SUPERSCRIPT",TBODY:"TABLE_BODY",TD:"TABLE_CELL",TFOOT:"TABLE_FOOTER",TH:"TABLE_HEADER_CELL",THEAD:"TABLE_HEADER",TR:"TABLE_ROW",TT:"MONOSPACED_TEXT",U:"UNDERLINED_TEXT",UL:"UNORDERED_LIST"};class Le{constructor(){this._placeHolderNameCounts={},this._signatureToName={}}getStartTagPlaceholderName(t,e,n){const a=this._hashTag(t,e,n);if(this._signatureToName[a])return this._signatureToName[a];const r=t.toUpperCase(),o=De[r]||`TAG_${r}`,i=this._generateUniqueName(n?o:`START_${o}`);return this._signatureToName[a]=i,i}getCloseTagPlaceholderName(t){const e=this._hashClosingTag(t);if(this._signatureToName[e])return this._signatureToName[e];const n=t.toUpperCase(),a=this._generateUniqueName(`CLOSE_${De[n]||`TAG_${n}`}`);return this._signatureToName[e]=a,a}getPlaceholderName(t,e){const n=t.toUpperCase(),a=`PH: ${n}=${e}`;if(this._signatureToName[a])return this._signatureToName[a];const r=this._generateUniqueName(n);return this._signatureToName[a]=r,r}getUniquePlaceholder(t){return this._generateUniqueName(t.toUpperCase())}_hashTag(t,e,n){return`<${t}`+Object.keys(e).sort().map(t=>` ${t}=${e[t]}`).join("")+(n?"/>":`></${t}>`)}_hashClosingTag(t){return this._hashTag(`/${t}`,{},!1)}_generateUniqueName(t){if(!this._placeHolderNameCounts.hasOwnProperty(t))return this._placeHolderNameCounts[t]=1,t;const e=this._placeHolderNameCounts[t];return this._placeHolderNameCounts[t]=e+1,`${t}_${e}`}}const qe=new Re(new _e);class je{constructor(t,e){this._expressionParser=t,this._interpolationConfig=e}toI18nMessage(t,e,n,a){this._isIcu=1===t.length&&t[0]instanceof i,this._icuDepth=0,this._placeholderRegistry=new Le,this._placeholderToContent={},this._placeholderToMessage={};const r=u(this,t,{});return new g(r,this._placeholderToContent,this._placeholderToMessage,e,n,a)}visitElement(t,e){const n=u(this,t.children),a={};t.attrs.forEach(t=>{a[t.name]=t.value});const r=ct(t.name).isVoid,o=this._placeholderRegistry.getStartTagPlaceholderName(t.name,a,r);this._placeholderToContent[o]=t.sourceSpan?t.sourceSpan.toString():"";let i="";return r||(i=this._placeholderRegistry.getCloseTagPlaceholderName(t.name),this._placeholderToContent[i]=`</${t.name}>`),new h(t.name,a,o,i,n,r,t.sourceSpan)}visitAttribute(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)}visitText(t,e){return this._visitTextWithInterpolation(t.value,t.sourceSpan)}visitComment(t,e){return null}visitExpansion(t,e){this._icuDepth++;const n={},a=new m(t.switchValue,t.type,n,t.sourceSpan);if(t.cases.forEach(t=>{n[t.value]=new p(t.expression.map(t=>t.visit(this,{})),t.expSourceSpan)}),this._icuDepth--,this._isIcu||this._icuDepth>0){const e=this._placeholderRegistry.getUniquePlaceholder(`VAR_${t.type}`);return a.expressionPlaceholder=e,this._placeholderToContent[e]=t.switchValue,a}const r=this._placeholderRegistry.getPlaceholderName("ICU",t.sourceSpan.toString()),o=new je(this._expressionParser,this._interpolationConfig);return this._placeholderToMessage[r]=o.toI18nMessage([t],"","",""),new y(a,r,t.sourceSpan)}visitExpansionCase(t,e){throw new Error("Unreachable code")}_visitTextWithInterpolation(t,e){const n=this._expressionParser.splitInterpolation(t,e.start.toString(),this._interpolationConfig);if(!n)return new f(t,e);const a=[],r=new p(a,e),{start:o,end:i}=this._interpolationConfig;for(let c=0;c<n.strings.length-1;c++){const t=n.expressions[c],r=t.split(Fe)[2]||"INTERPOLATION",s=this._placeholderRegistry.getPlaceholderName(r,t);n.strings[c].length&&a.push(new f(n.strings[c],e)),a.push(new b(t,s,e)),this._placeholderToContent[s]=o+t+i}const s=n.strings.length-1;return n.strings[s].length&&a.push(new f(n.strings[s],e)),r}}const Fe=/\/\/[\s\S]*i18n[\s\S]*\([\s\S]*ph[\s\S]*=[\s\S]*("|')([\s\S]*?)\1[\s\S]*\)/g;class ze extends Q{constructor(t=T){super(ct),this.interpolationConfig=t}parse(t,e,n=!1){return super.parse(t,e,n,this.interpolationConfig)}extractMessages(t){const e=new He(["wrapper"]),n=new l("wrapper",[],t,void 0,void 0,void 0);return e.extract(n,this.interpolationConfig)}mergeTranslations(t,e,n,a,r=[]){const o=new He(r),i=new l("wrapper",[],t,void 0,void 0,void 0);return o.merge(i,e,this.interpolationConfig,n,a)}}class Ge{constructor(t,e){this.messages=t,this.errors=e}}class Be{constructor(t={},e,n,a,r,o){this.i18nNodesByMsgId=t,this.digest=e,this.mapperFactory=r,this.i18nToHtml=new Ve(t,e,r,a,n,o)}static load(t,e,n,a,r,o,i=T){const s=r(t,e);return new Be(s,t=>n(t),i,o,t=>a(t),console)}get(t,e){const n=this.i18nToHtml.convert(t,e);if(n.errors.length)throw new Error(n.errors.join("\n"));return n.nodes}has(t){return this.digest(t)in this.i18nNodesByMsgId}}class Ve{constructor(t={},e,n,a,r,o){this._i18nNodesByMsgId=t,this._digest=e,this._mapperFactory=n,this._missingTranslationStrategy=a,this._interpolationConfig=r,this._console=o,this._contextStack=[],this._errors=[]}convert(t,e){this._contextStack.length=0,this._errors.length=0,this._params=e,this._paramKeys=Object.keys(e);const n=this.convertToText(t),a=t.nodes[0].sourceSpan.start.file.url,r=(new ze).parse(n,a,!0);return{nodes:r.rootNodes,errors:[...this._errors,...r.errors]}}visitText(t,e){return t.value}visitContainer(t,e){return t.children.map(t=>t.visit(this)).join("")}visitIcu(t,e){const n=Object.keys(t.cases).map(e=>`${e} {${t.cases[e].visit(this)}}`);return`{${this._srcMsg.placeholders.hasOwnProperty(t.expression)?this._srcMsg.placeholders[t.expression]:t.expression}, ${t.type}, ${n.join(" ")}}`}visitPlaceholder(t,e){const n=this._mapper(t.name);return this._srcMsg.placeholders.hasOwnProperty(n)?this.convertToValue(this._srcMsg.placeholders[n]):this._srcMsg.placeholderToMessage.hasOwnProperty(n)?this.convertToText(this._srcMsg.placeholderToMessage[n]):(this._addError(t,`Unknown placeholder "${t.name}"`),"")}visitTagPlaceholder(t,e){const n=`${t.tag}`,a=Object.keys(t.attrs).map(e=>`${e}="${t.attrs[e]}"`).join(" ");return t.isVoid?`<${n} ${a}/>`:`<${n} ${a}>${t.children.map(t=>t.visit(this)).join("")}</${n}>`}visitIcuPlaceholder(t,e){return this.convertToText(this._srcMsg.placeholderToMessage[t.name])}convertToText(t){const e=this._digest(t),n=this._mapperFactory?this._mapperFactory(t):null;let a;this._contextStack.push({msg:this._srcMsg,mapper:this._mapper}),this._srcMsg=t,this._i18nNodesByMsgId.hasOwnProperty(e)?(a=this._i18nNodesByMsgId[e],this._mapper=t=>n?n.toInternalName(t):t):(this._missingTranslationStrategy===r.MissingTranslationStrategy.Error?this._addError(t.nodes[0],`Missing translation for message "${e}"`):this._console&&this._missingTranslationStrategy===r.MissingTranslationStrategy.Warning&&this._console.warn(`Missing translation for message "${e}"`),a=t.nodes,this._mapper=t=>t);const o=a.map(t=>t.visit(this)).join(""),i=this._contextStack.pop();return this._srcMsg=i.msg,this._mapper=i.mapper,o}convertToValue(t){const e=t.replace(this._interpolationConfig.start,"").replace(this._interpolationConfig.end,"");return-1!==this._paramKeys.indexOf(e)?this._params[e]:t}_addError(t,e){this._errors.push(new M(t.sourceSpan,e))}}const Ye=function(){var t={Extract:0,Merge:1};return t[t.Extract]="Extract",t[t.Merge]="Merge",t}();class He{constructor(t=[]){this._implicitTags=t,this.blockChildren=[]}extract(t,e){return this.init(Ye.Extract,e),t.visit(this,null),this.inI18nBlock&&this._reportError(t,"Unclosed block"),new Ge(this.messages,this.errors)}merge(t,e,n,a,r={}){this.init(Ye.Merge,n,a),this.translations=e,this.metadata=r;const o=t.visit(this,null);return this.inI18nBlock&&this._reportError(t,"Unclosed block"),new X(o.children,this.errors)}visitExpansionCase(t,e){const n=u(this,t.expression,e);if(this.mode===Ye.Merge)return new s(t.value,n,t.sourceSpan,t.valueSourceSpan,t.expSourceSpan)}visitExpansion(t,e){this.mayBeAddBlockChildren(t);const n=this.inIcu;this.inIcu||(this.isInTranslatableSection&&this.addMessage([t]),this.inIcu=!0);const a=u(this,t.cases,e);return this.mode===Ye.Merge&&(t=new i(t.switchValue,t.type,a,t.sourceSpan,t.switchValueSourceSpan)),this.inIcu=n,t}visitComment(t,e){}visitText(t,e){return this.isInTranslatableSection&&this.mayBeAddBlockChildren(t),t}visitElement(t,e){this.mayBeAddBlockChildren(t),this.depth++;const n=this.inI18nNode,a=this.inImplicitNode;let r=[],o=void 0;const i=t.attrs.find(t=>"i18n"===t.name)||null,s=this._implicitTags.some(e=>t.name===e)&&!this.inIcu&&!this.isInTranslatableSection,c=!a&&s;if(this.inImplicitNode=a||s,this.isInTranslatableSection||this.inIcu)(i||c)&&this._reportError(t,"Could not mark an element as translatable inside a translatable section"),this.mode===Ye.Extract&&u(this,t.children);else{if(i||c){this.inI18nNode=!0;const e=this.addMessage(t.children,this.metadata);o=this.translateMessage(t,e)}if(this.mode===Ye.Extract){const e=i||c;e&&this.openTranslatableSection(t),u(this,t.children),e&&this._closeTranslatableSection(t,t.children)}}return this.mode===Ye.Merge&&(o||t.children).forEach(t=>{const n=t.visit(this,e);n&&!this.isInTranslatableSection&&(r=r.concat(n))}),this.depth--,this.inI18nNode=n,this.inImplicitNode=a,this.mode===Ye.Merge?new l(t.name,[],r,t.sourceSpan,t.startSourceSpan,t.endSourceSpan):null}visitAttribute(t,e){throw new Error("unreachable code")}init(t,e,n={}){this.mode=t,this.inI18nBlock=!1,this.inI18nNode=!1,this.depth=0,this.inIcu=!1,this.msgCountAtSectionStart=void 0,this.errors=[],this.messages=[],this.inImplicitNode=!1,this.createI18nMessage=function(t){const e=new je(qe,t);return(t,n,a,r)=>e.toI18nMessage(t,n,a,r)}(e),this.params=n}addMessage(t,{meaning:e="",description:n="",id:a=""}={}){if(0===t.length||1===t.length&&t[0]instanceof c&&!t[0].value)return null;const r=this.createI18nMessage(t,e,n,a);return this.messages.push(r),r}translateMessage(t,e){if(e&&this.mode===Ye.Merge){const n=this.translations.get(e,this.params);if(n)return n;this._reportError(t,`Translation unavailable for message id="${this.translations.digest(e)}"`)}return[]}mayBeAddBlockChildren(t){this.inI18nBlock&&!this.inIcu&&this.depth===this.blockStartDepth&&this.blockChildren.push(t)}openTranslatableSection(t){this.isInTranslatableSection?this._reportError(t,"Unexpected section start"):this.msgCountAtSectionStart=this.messages.length}get isInTranslatableSection(){return void 0!==this.msgCountAtSectionStart}_closeTranslatableSection(t,e){if(!this.isInTranslatableSection)return void this._reportError(t,"Unexpected section end");const n=this.msgCountAtSectionStart;if(1===e.reduce((t,e)=>t+(e instanceof d?0:1),0))for(let a=this.messages.length-1;a>=n;a--){const t=this.messages[a].nodes;if(!(1===t.length&&t[0]instanceof f)){this.messages.splice(a,1);break}}this.msgCountAtSectionStart=void 0}_reportError(t,e){this.errors.push(new M(t.sourceSpan,e))}}const Ue=new r.InjectionToken("MissingTranslationStrategy");class We{constructor(t,e,n,a=r.MissingTranslationStrategy.Warning){let o,i,s=t=>null;switch(t=(t||"xlf").toLowerCase()){case"xtb":o=zt,i=Gt,s=Bt;break;case"xliff2":case"xlf2":o=Dt,i=Lt;break;case"xliff":case"xlf":o=Nt,i=Rt;break;default:throw new Error(`Unknown translations format ${t}`)}const c=new ze,l=Be.load(e,"i18n",i,s,o,a);return(t,e={})=>{const a="string"==typeof t?t:t.value,r={};"object"==typeof t&&(r.id=t.id,r.meaning=t.meaning,r.description=t.description);const o=c.parse(a,"",!0);if(o.errors.length)throw o.errors;return function(t,e,n){return t.map(t=>t.visit(new ut(e,n),null))}(c.mergeTranslations(o.rootNodes,l,e,r,["wrapper"]).rootNodes,n,e).join("")}}}},GoyQ:function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},GyhO:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("LRne"),r=n("0EUg");function o(...t){return Object(r.a)()(Object(a.a)(...t))}},H0h1:function(t,e,n){var a=n("SKAX");t.exports=function(t,e){var n=!0;return a(t,(function(t,a,r){return n=!!e(t,a,r)})),n}},H8ED:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"хвіліна":"хвіліну":"h"===n?e?"гадзіна":"гадзіну":t+" "+(a=+t,r={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:e?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}t.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".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:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:e,mm:e,h:e,hh:e,d:"дзень",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(t){return/^(дня|вечара)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночы":t<12?"раніцы":t<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-ы":t+"-і";case"D":return t+"-га";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},H8j4:function(t,e,n){var a=n("QkVE");t.exports=function(t,e){var n=a(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this}},HAuM:function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(String(t)+" is not a function");return t}},HDdC:function(t,e,n){"use strict";var a=n("8Qeq"),r=n("7o/Q"),o=n("2QA8"),i=n("gRHU"),s=n("kJWO"),c=n("mCNh"),l=n("2fFW");n.d(e,"a",(function(){return d}));let d=(()=>{class t{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(e){const n=new t;return n.source=this,n.operator=e,n}subscribe(t,e,n){const{operator:a}=this,s=function(t,e,n){if(t){if(t instanceof r.a)return t;if(t[o.a])return t[o.a]()}return t||e||n?new r.a(t,e,n):new r.a(i.a)}(t,e,n);if(s.add(a?a.call(s,this.source):this.source||l.a.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),l.a.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(e){l.a.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=e),Object(a.a)(t)?t.error(e):console.warn(e)}}forEach(t,e){return new(e=u(e))((e,n)=>{let a;a=this.subscribe(e=>{try{t(e)}catch(r){n(r),a&&a.unsubscribe()}},n,e)})}_subscribe(t){const{source:e}=this;return e&&e.subscribe(t)}[s.a](){return this}pipe(...t){return 0===t.length?this:Object(c.b)(t)(this)}toPromise(t){return new(t=u(t))((t,e)=>{let n;this.subscribe(t=>n=t,t=>e(t),()=>t(n))})}}return t.create=e=>new t(e),t})();function u(t){if(t||(t=l.a.Promise||Promise),!t)throw new Error("no Promise impl found");return t}},HDyB:function(t,e,n){var a=n("nmnc"),r=n("JHRd"),o=n("ljhN"),i=n("or5M"),s=n("7fqy"),c=n("rEGp"),l=a?a.prototype:void 0,d=l?l.valueOf:void 0;t.exports=function(t,e,n,a,l,u,g){switch(n){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return!(t.byteLength!=e.byteLength||!u(new r(t),new r(e)));case"[object Boolean]":case"[object Date]":case"[object Number]":return o(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var f=s;case"[object Set]":if(f||(f=c),t.size!=e.size&&!(1&a))return!1;var p=g.get(t);if(p)return p==e;a|=2,g.set(t,e);var m=i(f(t),f(e),a,l,u,g);return g.delete(t),m;case"[object Symbol]":if(d)return d.call(t)==d.call(e)}return!1}},HH4o:function(t,e,n){var a=n("tiKp")("iterator"),r=!1;try{var o=0,i={next:function(){return{done:!!o++}},return:function(){r=!0}};i[a]=function(){return this},Array.from(i,(function(){throw 2}))}catch(s){}t.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var o={};o[a]=function(){return{next:function(){return{done:n=!0}}}},t(o)}catch(s){}return n}},HIU9:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("8Y7J"),r=n("dApe"),o=n("X+05"),i=n("DzJC"),s=n.n(i),c=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},l=function(){function t(t,e,n){var a=this;this.elementRef=t,this.ngZone=e,this.virtualScroll=n,this.setViewport=s()((function(){a.virtualScroll.setViewport(a.elementRef.nativeElement)}),17),this.scrollEventHandler=this.setViewport.bind(this)}return t.prototype.ngOnInit=function(){this.virtualScroll.init()},t.prototype.ngAfterViewInit=function(){var t=this;setTimeout((function(){t.setViewport(),t.virtualScroll.fireEvent({eventName:o.a.initialized})}));var e=this.elementRef.nativeElement;this.ngZone.runOutsideAngular((function(){e.addEventListener("scroll",t.scrollEventHandler)}))},t.prototype.ngOnDestroy=function(){this.virtualScroll.clear(),this.elementRef.nativeElement.removeEventListener("scroll",this.scrollEventHandler)},t.prototype.getTotalHeight=function(){return this.virtualScroll.isEnabled()&&this.virtualScroll.totalHeight+"px"||"auto"},function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i}([Object(a.Component)({selector:"tree-viewport",styles:[],providers:[r.a],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div [style.height]="getTotalHeight()">\n        <ng-content></ng-content>\n      </div>\n    </ng-container>\n  '}),c("design:paramtypes",[a.ElementRef,a.NgZone,r.a])],t)}()},HOxn:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Promise");t.exports=a},HP3h:function(t,e,n){!function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(t){return function(e,r,o,i){var s=n(e),c=a[t][n(e)];return 2===s&&(c=c[r?0:1]),c.replace(/%d/i,e)}},o=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar-ly",{months:o,monthsShort:o,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},HV4d:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.id=function(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}},HYAF:function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t}},Hd5f:function(t,e,n){var a=n("0Dky"),r=n("tiKp"),o=n("LQDL"),i=r("species");t.exports=function(t){return o>=51||!a((function(){var e=[];return(e.constructor={})[i]=function(){return{foo:1}},1!==e[t](Boolean).foo}))}},HjS5:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="zh-TW">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>切換導覽</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>儀表板</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>叢集</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>主機</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>監控程式</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>服務</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>組態</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH 地圖</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>管理員模組</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>記錄</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>池</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>區塊</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>影像</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>鏡像</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>檔案系統</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>物件閘道</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>精靈</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>刪除通知</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>沒有通知。</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>任務與通知</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>選取語言</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>正在載入面板資料...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana 時間選擇器</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>重設設定</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>刷新</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>返回</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>無法載入資料。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>選取的數目</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>找到的數目</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>總計</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名稱</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>描述</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>詳細描述</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>預設值</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>精靈預設值</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>儲存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSH 地圖檢視器</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>正在載入...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>主機名稱</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>此欄位為必填欄位。</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>是的,我確定。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>取消</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>關閉</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>主機清單</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>整體效能</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>找不到項目</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>叢集記錄</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>稽核記錄</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>正在載入組態...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>無法載入組態。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>編輯管理員模組</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>輸入的值不是有效的 UUID,例如 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>輸入的值必須是有效的  IP 位址。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>輸入的值必須為數字。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>輸入的值必須為數字或小數。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>叢集 ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap 修改時間</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap 版本編號</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>仲裁成員</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非仲裁成員</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>新增</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>功能</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>叢集範圍的 OSD 旗標</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>提交</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>進階...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD 復原優先程度</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>優先程度</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>自訂優先程度值</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>此欄位為必填欄位!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>該值必須介於 0 至 1 之間。</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>重新設定權數</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深層} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {深層} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSD 清單</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>值</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>編輯</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>刪除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>統計資料</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>用戶端</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任何用戶端均可存取</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>位址</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必填欄位</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>必須包含一或多個逗號分隔值</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例如︰</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>存取類型</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>新增用戶端</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 沒有可用的叢集 --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- 選取叢集 --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>新增精靈</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>儲存後端</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 沒有可用的資料池 --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- 選取儲存後端 --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>物件閘道使用者</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 沒有可用的使用者 --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- 選取物件閘道使用者 --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS 使用者 ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 沒有可用的用戶端 --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- 選取 cephx 用戶端 --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS 名稱</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>安全標籤</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>啟用安全標籤</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS 路徑</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>路徑必須以「/」開頭,後面可接單詞</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>將建立新目錄</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>路徑</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>路徑只能以單一「/」或單詞開頭</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>將建立新桶</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS 通訊協定</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS 標記</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>用戶端不能掛接子目錄 (即如果標記為 foo,則用戶端無法掛接 foo/baz)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>透過使用不同標記選項,可將同一路徑輸出多次。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>虛擬</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>透過使用不同虛擬選項,可將同一路徑輸出多次。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 沒有可用的存取類型 --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- 選取存取類型 --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 沒有可用的 squash --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 選取執行哪種類型的使用者 ID 匿名存取 --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>傳輸通訊協定</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>歡迎使用 Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>需要指定使用者名稱</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>需要指定密碼</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>登入</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>抱歉,該使用者不存在於 Ceph 中。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>已禁止</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>抱歉,您無權查看您要尋找的內容。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD 組態</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>移除本地組態值。將繼承並使用父組態值。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小值為 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>池清單</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名稱只能由英數字元、破折號和底線組成。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>所選的糾刪碼設定檔名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>外掛程式</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>資料區塊 (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>必須大於或等於 2。</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>編碼區塊 (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>必須大於或等於 1。</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>持久性估值 (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>本地性 (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>CRUSH 故障網域</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>CRUSH 本地性</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>技術</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>封包大小</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>CRUSH 根</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>CRUSH 裝置類別</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任何</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>目錄</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名稱...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>所選的 Ceph 池名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>池類型</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- 選取池類型 --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>放置群組</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>至少需要一個放置群組!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>您的叢集無法處理這麼多的 PG。請重新計算所需的 PG 數量。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>計算說明</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>複製大小</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>旗標</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC 覆寫</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>應用程式</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 沒有可用的糾刪碼設定檔 --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- 選取糾刪碼設定檔 --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>CRUSH 規則集</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- 選取 CRUSH 規則 --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>CRUSH 規則</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>CRUSH 步驟</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>壓縮</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>模式</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>演算法</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 沒有可用的糾刪壓縮演算法 --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Blob 最小大小</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>例如 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>值應大於 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Blob 最大大小</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>例如 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>值應大於 blob 最小大小</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>比率</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>壓縮率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>值應介於 0.0 至 1.0 之間</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>例如 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>詳細資料</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>效能詳細資料</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>快取層詳細資料</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>將影像移至垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保護的過期日為</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>無保護</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日期格式錯誤。請使用「YYYY-MM-DD HH:mm:ss」。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保護已過期。請選取一個未來的日期或保留空白。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>移動影像</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>綜覽</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>目標</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>探查驗證</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>使用者名稱的長度必須介於 8 至 64 個字元之間,並且只能包含以下\n                        字元︰字母、「.」、「@」、「-」、「_」或「:」。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>密碼</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>雙向驗證使用者</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>雙向驗證密碼</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>可用資訊︰</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>無法使用 iSCSI 目標</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>池</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>資料池</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>已建立</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>大小</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>物件</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>物件大小</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>已佈建</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>總佈建數</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>分割單位</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>分割計數</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>父</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>區塊名稱字首</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>順序</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>快照</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>影像</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>此設定會覆寫全域值</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>全域</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>此值為全域值。未為此影像設定此選項的值。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>不允許使用「/」和「@」。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 沒有可用的 RBD 池 --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- 選取池 --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>使用專屬的資料池</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>資料池</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>專用於儲存 RBD 的物件資料的池</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>您必須增加大小。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>進階</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>分割</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>分割單位</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- 選取分割單位 --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>由於已定義分割計數,因此必須填寫此欄位!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>分割單位大於物件大小。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>分割計數</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>由於已定義分割單位,因此必須填寫此欄位!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>分割計數必須大於 0。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>您正要復原</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>清除垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>全部</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>池︰</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>池名稱...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>回存影像</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>若要回存</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>鍵入影像的新名稱并按一下</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新名稱</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>過期日為</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保護過期日為</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSI 拓撲</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常不需要變更這些參數的預設值。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>支援儲存</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>確認</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>進階設定</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>目標 IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN 模式錯誤。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例如:iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>更多資訊</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>此目標的進階設定存在修改。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>入口網站</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>新增入口網站</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>此影像的設定存在修改。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>新增影像</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL 驗證</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>啟動器</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>啟動器</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>用戶端 IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>啟動器 IQN 必須唯一。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>使用者名稱的長度必須介於 8 至 64 個字元之間,並且只能包含以下\n                        字元︰字母、「.」、「@」、「-」、「_」或「:」。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>啟動器屬於群組。影像須在群組中進行設定。 </target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>未新增項目。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>新增啟動器</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>群組</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>群組</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>新增群組</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>正在同步</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>準備就緒</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>編輯池鏡像模式</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>在停用鏡像之前,必須先移除對等叢集。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {編輯} other {新增} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>叢集名稱</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>叢集名稱無效。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID 無效。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>監控程式位址</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>逗號分隔的位址...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>監控程式位址無效。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX 金鑰</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64 編碼的金鑰...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephX 金鑰必須為 Base64 編碼的金鑰。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>沒有可用的效能計數器</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>精靈清單</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>效能計數器</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>正在載入桶資料...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>該值無效。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>所選的名稱已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>擁有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- 選取使用者 --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>已啟用</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>索引類型</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>放置規則</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>標記</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>最大標記數</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>主版本</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>修改時間</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>區域群組</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>桶定額</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大大小</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>無限制</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大物件數</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>使用者名稱</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- 選取使用者名稱 --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>自動產生金鑰</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>存取金鑰</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>機密金鑰</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>全名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>電子郵件地址</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>已暫停</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>系統</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大桶數</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>子使用者</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>功能</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>使用者定額</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>顯示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>金鑰</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>類型</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- 選取類型 --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>許可權</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 選取許可權 --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>子使用者</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>所選的子使用者 ID 已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>讀取、寫入</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>完整</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift 金鑰</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>自動產生機密金鑰</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>正在載入使用者資料...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>無法載入使用者資料。</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>所選的使用者 ID 已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>電子郵件地址無效。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>所選的電子郵件地址已在使用中。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>最大桶數</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>已停用</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>自訂</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 金鑰</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>沒有子使用者。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>沒有金鑰。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>沒有功能。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>大小不限</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>最大大小</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>物件數不限</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>最大物件數</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>輸入的值必須大於或等於 0。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>描述...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>許可權</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>角色</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>確認密碼</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>確認的密碼與之前輸入的密碼不符。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>電子郵件</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>電子郵件無效。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>您正要為您自己的使用者移除「使用者讀取/寫入」許可權。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>若繼續,您將再也無法為任何使用者新增或移除角色。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>確定要繼續嗎?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>說明</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>文件</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>關於</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>儀表板設定</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>使用者管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>登入的使用者</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>登出</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>屬性 (OSD 地圖)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>無法使用中繼資料</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>中繼資料</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>效能計數器</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>寫入</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>讀取</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>長條圖</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>目前的值</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>最小值</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>最大值</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>來源</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>層級</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>可在執行時期更新 (可編輯)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>標記</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>列舉值</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>另請參閱</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>叢集狀態</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>管理員精靈</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>物件閘道</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>中繼資料伺服器</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI 閘道</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>用戶端 IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>用戶端輸送量</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>用戶端讀取/寫入</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>復原輸送量</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>整理</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>效能</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>原始容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>每個 OSD 的 PG 數</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>PG 狀態</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>階層</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>目前</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>已更新探查驗證</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>沒有可用的入口網站。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>沒有可用的影像。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>沒有可用的影像。請確定為目標新增一個影像。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>沒有可用的啟動器。請確定為目標新增一個啟動器。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>目標</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>讀取位元組數</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>寫入位元組數</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>讀取操作數</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>寫入操作數</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>使用中/最佳化開始時間</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>例項</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>進度</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>編輯模式</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>新增對等</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>編輯對等</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>刪除對等</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>本地數量</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>遠端數量</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>鏡像對等</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>金鑰</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>深層壓平</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>分層</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>獨佔鎖定</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>物件對應 (需要獨佔鎖定)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>記錄 (需要獨佔鎖定)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>未受保護</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBD 快照復原</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>復原</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBD 快照</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>刪除位置</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>類型</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>狀態</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>版本</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>主機</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>根</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>待命精靈</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>階層</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>精靈</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>活動</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentry</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用率</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>已更新</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>該值可在執行時期更新。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>精靈/用戶端不會從監控程式組態資料庫\n      提取此值。我們不允許透過「ceph config set ...」\n      設定此選項。應透過 ceph.conf 或使用指令行\n      進行設定。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>該選項僅在精靈啟動期間生效。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>該選項僅影響叢集建立。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>該選項僅影響精靈建立。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>服務</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>目前的值</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>可編輯</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>啟用</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>停用</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>正在重新連接,請稍候...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>公用位址</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>開啟的工作階段</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>禁止標示為 In</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>之前標示為 out 的 OSD 在啟動時將不會重新標示為 in</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>禁止標示為 Out</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD 在設定的間隔過後將不會自動標示為 out</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>禁止標示為 Up</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>不允許 OSD 啟動</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>禁止標示為 Down</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>將會忽略 OSD 故障報告,如此監控程式便不會將 OSD 標示為 down</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>暫停</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>暫停讀取和寫入</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>禁止整理</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>整理已停用</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>禁止深層整理</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>深層整理已停用</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>禁止回填</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>PG 回填已暫停</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>禁止復原</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>PG 復原已暫停</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>按位元排序</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>使用按位元排序</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>已清除 Snapdir</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD 已轉換 snapset</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>復原刪除</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>在復原期間,而非在建立互聯時執行刪除</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>PG 記錄硬限制</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>為 pg 記錄長度設定硬限制</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>已更新 OSD 旗標</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>out</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>in</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>down</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>標示</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD 遺失</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>已標示為遺失</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>損毀</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>已損毀</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>刪除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>讀取位元組數</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>寫入位元組數</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>讀取操作數</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>寫入操作數</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大回填數</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>處於使用中狀態的最大復原操作數</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>單次啟動的最大復原操作數</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>復原操作間隔睡眠時間</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>工作</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>嚴重性</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>已啟動</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>已使用</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>可用</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>乾淨</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>工作中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警告</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>未知</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>啟用中</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>無檔案系統</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>使用中</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>待命</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>無</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>使用中的精靈</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>未設定 NFS Ganesha 服務。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>傳輸</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS 使用者</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFS 檔案系統</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(繼承自全域組態)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>繼承自全域組態</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 選取執行哪種類型的使用者 ID 匿名存取 --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>沒有可用的精靈。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>快取模式</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>逐出前至少可留存的時間</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>衝洗前至少可留存的時間</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>目標最大位元組數</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>目標最大物件數</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>未新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>已達到應用程式上限</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>一個池最多只能四個應用程式定義。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>允許的字元為「_a-zA-Z0-9」</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>最大長度為 128 個字元</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>過濾或新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>新增應用程式</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>複本大小</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>上次變更時間</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>糾刪碼設定檔</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>CRUSH 規則集</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>桶</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>使用者</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>範圍</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>讀取</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>建立</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>系統角色</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>更新使用者</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>繼續</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>您已被自動登出,因為您的角色發生了變更。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>各物件都被分割成資料區塊部分,分別儲存於不同的 OSD。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>運算各物件的編碼區塊并將它們儲存到不同的 OSD。\n      編碼區塊的數量等同於在不遺失資料的前提下,可停機的 OSD 數量。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Jerasure 外掛程式是最一般、最靈活的外掛程式,\n          也是 Ceph 糾刪碼池的預設外掛程式。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Reed_sol_van 方法更靈活︰它足以設定 k\n          和 m。Cauchy_good 方法更快,但您需要小心選取封包大小。\n          所有 reed_sol_r6_op、liberation、blaum_roth、liber8tion 都\n          等同於 RAID6,它們只能設定為 m=2。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>將以位元組大小的封包為單位進行編碼。\n          選取合適的封包大小很難。\n          Jerasure 文件包含有關此主題的詳細資訊。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>使用 jerasure 外掛程式時,若糾刪碼物件儲存於\n          多個 OSD 上,則復原一個遺失的 OSD 時需要讀取所有其他 OSD。\n          例如,若 jerasure 設定為 k=8 且 m=4,則遺失一個 OSD 後需讀取\n          其他十一個 OSD 才能修復。\n\n          lrc 糾刪碼外掛程式會建立本地同位區塊,因此只需較少的 OSD 即\n          可復原。例如,若 lrc 設定為 k=8、m=4 且 l=4,它將為每四個 OSD\n          建立額外的同位區塊。這樣,當一個 OSD 遺失時,它只需四個 OSD\n          即可復原,而不需要十一個。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>將編碼區塊和資料區塊分組為大小為 locality 的集合。例如,\n          k=4 且 m=2 時,若 locality=3,則會建立 2 個大小為 3 的組。這樣,各組都能\n          自行復原,而無需從另一組讀取區塊。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>由 l 定義的區塊集將按哪種 CRUSH 桶類型儲存。\n          例如,若設定為機架,則各組 l 區塊將會被放置到不同的\n          機架中。該值用於建立類似 step choose rack 的 CRUSH\n          規則步驟。若未設定,則不會進行此類分組。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isa 外掛程式封包了 ISA 程式庫。它只能在 Intel 處理器上執行。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISA 外掛程式包含兩種 Reed Solomon 格式。\n          若設定為 reed_sol_van,則為 Vandermonde。若設定為 cauchy,則為 Cauchy。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shec 外掛程式封包了多個 SHEC 程式庫。\n          與 Reed Solomon 代碼相比,它能更有效地復原資料。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>同位區塊的數量,它們在各自的計算範圍內包含了\n          各資料區塊。該數值被用做持久性估值。例如,若 c=2,\n          則在不遺失資料的前提下,可有 2 個 OSD 停機。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSH 規則的第一步所指向的 CRUSH 桶名稱。\n      例如 step take default。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>確定兩個區塊不會存在於同一故障網域的桶中。\n      例如,若故障網域為主機,則不會有兩個區塊儲存於同一主機中。\n      該值用於建立類似 step chooseleaf host 的 CRUSH 規則步驟。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>使用 CRUSH 地圖中的 crush 裝置類別名稱,\n      將放置限制於特定類別的裝置 (例如 ssd 或 hdd)。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>設定糾刪碼外掛程式所在目錄。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>允許所有操作</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>僅允許不修改伺服器的操作</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>不允許讀取或寫入操作,但是允許任何其他操作</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>不允許讀取、寫入或任何可能修改檔案屬性或目錄內容的操作</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>完全禁止存取</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 選取優先程度 --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>資訊</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>過去 5 分鐘</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>過去 15 分鐘</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>過去 30 分鐘</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>過去 1 小時 (預設值)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>過去 3 小時</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>過去 6 小時</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>過去 12 小時</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>過去 24 小時</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨天</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>今天</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>今天到目前為止</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>前天</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>過去 2 天</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>上週的今天</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>上週</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>本週</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>本週目前為止</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>過去 7 天</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>上個月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>本月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>本月目前為止</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>過去 30 天</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>過去 90 天</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>過去 6 個月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>過去 1 年</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>去年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年目前為止</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>過去 2 年</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>過去 5 年</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>未選取項目。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>取消選取項目以再次選取</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>已達到選取上限</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>過濾標記</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>新增徽章</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>沒有可用的項目。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>深層整理</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>損毀</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>壓平</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>標示為 Down</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>標示為 In</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>標示為遺失</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>標示為 Out</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保護</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>重新命名</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>還原</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>移至垃圾桶</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>取消保護</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>已刪除</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>已克隆</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>已複製</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>已壓平</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>已清除</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>已還原</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>已復原</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>是</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>否</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>服務品質</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>指定的每秒 IO 位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>指定的每秒 IO 操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>讀取 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>指定的每秒內讀取的位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>讀取 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>指定的每秒讀取操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>寫入 BPS 上限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>指定的每秒內寫入的位元組數上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>寫入 IOPS 上限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>指定的每秒寫入操作次數上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>指定的 IO 位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>指定的 IO 操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>讀取 BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>指定的讀取的位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>讀取 IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>指定的讀取操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>寫入 BPS 高載</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>指定的寫入的位元組數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>寫入 IOPS 高載</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>指定的寫入操作次數高載上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>正在執行</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>執行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>已執行</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>未知任務</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>正在建立</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>建立</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>正在更新</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>正在刪除</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>正在克隆</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>克隆</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>正在複製</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>正在壓平</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>壓平</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>正在復原</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>復原</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>正在移動</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>移動</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>已移動</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>找不到影像。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>正在還原</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>還原</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>正在清除</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>清除</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>所有池</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>無法停用鏡像,因為其包含對等。</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},Hvzi:function(t,e){t.exports=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}},"I+eb":function(t,e,n){var a=n("2oRo"),r=n("Bs8V").f,o=n("kRJp"),i=n("busE"),s=n("zk60"),c=n("6JNq"),l=n("lMq5");t.exports=function(t,e){var n,d,u,g,f,p=t.target,m=t.global,h=t.stat;if(n=m?a:h?a[p]||s(p,{}):(a[p]||{}).prototype)for(d in e){if(g=e[d],u=t.noTargetGet?(f=r(n,d))&&f.value:n[d],!l(m?d:p+(h?".":"#")+d,t.forced)&&void 0!==u){if(typeof g==typeof u)continue;c(g,u)}(t.sham||u&&u.sham)&&o(g,"sham",!0),i(n,d,g,t)}}},I01J:function(t,e,n){var a=n("44Ds");t.exports=function(t){var e=a(t,(function(t){return 500===n.size&&n.clear(),t})),n=e.cache;return e}},I55L:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=t=>t&&"number"==typeof t.length&&"function"!=typeof t},I8vh:function(t,e,n){var a=n("ppGB"),r=Math.max,o=Math.min;t.exports=function(t,e){var n=a(t);return n<0?r(n+e,0):o(n,e)}},IAdc:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("128B");function r(t,e,n){return 0===n?[e]:(t.push(e),t)}function o(){return Object(a.a)(r,[])}},IBtZ:function(t,e,n){!function(t){"use strict";t.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".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:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(t){return/(წამი|წუთი|საათი|წელი)/.test(t)?t.replace(/ი$/,"ში"):t+"ში"},past:function(t){return/(წამი|წუთი|საათი|დღე|თვე)/.test(t)?t.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(t)?t.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(t){return 0===t?t:1===t?t+"-ლი":t<20||t<=100&&t%20==0||t%100==0?"მე-"+t:t+"-ე"},week:{dow:1,doy:7}})}(n("wd/R"))},ILDN:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ClickType=function(t){return t.single="single",t.double="double",t}(e.ClickType||{})},IOzZ:function(t,e){t.exports=function(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in Object(n))}}},IPm6:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("5tze"),s=(n("qwkt"),n("SfHT"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new o.EventEmitter,this.page=new o.EventEmitter,this.activate=new o.EventEmitter,this.select=new o.EventEmitter,this.detailToggle=new o.EventEmitter,this.rowContextmenu=new o.EventEmitter(!1),this.treeAction=new o.EventEmitter,this.rowHeightsCache=new i.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=function(t,n){var a=e.getRowIndex(n);return e.trackByProp?n[e.trackByProp]:a}}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=i.columnsByPin(t);this.columnGroupWidths=i.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe((function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe((function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n<e&&n<this.groupedRows.length;)r[a]=this.groupedRows[n],a++,n++;else for(;n<e&&n<this.rowCount;){var o=this.rows[n];o&&(this.rowIndexes.set(o,n),r[a]=o),a++,n++}this.temp=r},t.prototype.getRowHeight=function(t){return"function"==typeof this.rowHeight?this.rowHeight(t):this.rowHeight},t.prototype.getGroupHeight=function(t){var e=0;if(t.value)for(var n=0;n<t.value.length;n++)e+=this.getRowAndDetailHeight(t.value[n]);return e},t.prototype.getRowAndDetailHeight=function(t){var e=this.getRowHeight(t);return 1===this.rowExpansions.get(t)&&(e+=this.getDetailRowHeight(t)),e},t.prototype.getRowsStyles=function(t){var e={};if(this.groupedRows&&(e.width=this.columnGroupWidths.total),this.scrollbarV&&this.virtualization){var n=0;if(this.groupedRows){var a=t[t.length-1];n=a?this.getRowIndex(a):0}else n=this.getRowIndex(t);var r=this.rowHeightsCache.query(n-1);i.translateXY(e,0,r)}return e},t.prototype.getBottomSummaryRowStyles=function(){if(!this.scrollbarV||!this.rows||!this.rows.length)return null;var t={position:"absolute"},e=this.rowHeightsCache.query(this.rows.length-1);return i.translateXY(t,0,e),t},t.prototype.hideIndicator=function(){var t=this;setTimeout((function(){return t.loadingIndicator=!1}),500)},t.prototype.updateIndexes=function(){var t=0,e=0;if(this.scrollbarV)if(this.virtualization){var n=parseInt(this.bodyHeight,0);t=this.rowHeightsCache.getRowIndex(this.offsetY),e=this.rowHeightsCache.getRowIndex(n+this.offsetY)+1}else t=0,e=this.rowCount;else this.externalPaging||(t=Math.max(this.offset*this.pageSize,0)),e=Math.min(t+this.pageSize,this.rowCount);this.indexes={first:t,last:e}},t.prototype.refreshRowHeightCache=function(){!this.scrollbarV||this.scrollbarV&&!this.virtualization||(this.rowHeightsCache.clearCache(),this.rows&&this.rows.length&&this.rowHeightsCache.initCache({rows:this.rows,rowHeight:this.rowHeight,detailRowHeight:this.getDetailRowHeight,externalVirtual:this.scrollbarV&&this.externalPaging,rowCount:this.rowCount,rowIndexes:this.rowIndexes,rowExpansions:this.rowExpansions}))},t.prototype.getAdjustedViewPortIndex=function(){var t=this.indexes.first;return this.scrollbarV&&this.virtualization&&this.rowHeightsCache.query(t-1)<=this.offsetY?t-1:t},t.prototype.toggleRowExpansion=function(t){var e=this.getAdjustedViewPortIndex(),n=this.rowExpansions.get(t);if(this.scrollbarV&&this.virtualization){var a=this.getDetailRowHeight(t)*(n?-1:1),r=this.getRowIndex(t);this.rowHeightsCache.update(r,a)}n=n^=1,this.rowExpansions.set(t,n),this.detailToggle.emit({rows:[t],currentIndex:e})},t.prototype.toggleAllRows=function(t){this.rowExpansions.clear();for(var e=t?1:0,n=this.getAdjustedViewPortIndex(),a=0,r=this.rows;a<r.length;a++)this.rowExpansions.set(r[a],e);this.scrollbarV&&this.recalcLayout(),this.detailToggle.emit({rows:this.rows,currentIndex:n})},t.prototype.recalcLayout=function(){this.refreshRowHeightCache(),this.updateIndexes(),this.updateRows()},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.stylesByGroup=function(t){var e=this.columnGroupWidths,n=this.offsetX,a={width:e[t]+"px"};if("left"===t)i.translateXY(a,n,0);else if("right"===t){var r=parseInt(this.innerWidth+"",0);i.translateXY(a,-1*(e.total-r-n),0)}return a},t.prototype.getRowExpanded=function(t){if(0===this.rowExpansions.size&&this.groupExpansionDefault)for(var e=0,n=this.groupedRows;e<n.length;e++)this.rowExpansions.set(n[e],1);return 1===this.rowExpansions.get(t)},t.prototype.getRowIndex=function(t){return this.rowIndexes.get(t)||0},t.prototype.onTreeAction=function(t){this.treeAction.emit({row:t})},a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"externalPaging",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([o.Input(),r("design:type",String)],t.prototype,"emptyMessage",void 0),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",String)],t.prototype,"trackByProp",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([o.Input(),r("design:type",String)],t.prototype,"groupRowsBy",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"virtualization",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"summaryRow",void 0),a([o.Input(),r("design:type",String)],t.prototype,"summaryPosition",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"summaryHeight",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"pageSize",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"rows",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offset",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowCount",null),a([o.HostBinding("style.width"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"bodyWidth",null),a([o.Input(),o.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"bodyHeight",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"page",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"detailToggle",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.ViewChild(s.ScrollerComponent,{static:!1}),r("design:type",s.ScrollerComponent)],t.prototype,"scroller",void 0),a([o.Component({selector:"datatable-body",template:'\n    <datatable-selection\n      #selector\n      [selected]="selected"\n      [rows]="rows"\n      [selectCheck]="selectCheck"\n      [selectEnabled]="selectEnabled"\n      [selectionType]="selectionType"\n      [rowIdentity]="rowIdentity"\n      (select)="select.emit($event)"\n      (activate)="activate.emit($event)"\n    >\n      <datatable-progress *ngIf="loadingIndicator"> </datatable-progress>\n      <datatable-scroller\n        *ngIf="rows?.length"\n        [scrollbarV]="scrollbarV"\n        [scrollbarH]="scrollbarH"\n        [scrollHeight]="scrollHeight"\n        [scrollWidth]="columnGroupWidths?.total"\n        (scroll)="onBodyScroll($event)"\n      >\n        <datatable-summary-row\n          *ngIf="summaryRow && summaryPosition === \'top\'"\n          [rowHeight]="summaryHeight"\n          [offsetX]="offsetX"\n          [innerWidth]="innerWidth"\n          [rows]="rows"\n          [columns]="columns"\n        >\n        </datatable-summary-row>\n        <datatable-row-wrapper\n          [groupedRows]="groupedRows"\n          *ngFor="let group of temp; let i = index; trackBy: rowTrackingFn"\n          [innerWidth]="innerWidth"\n          [ngStyle]="getRowsStyles(group)"\n          [rowDetail]="rowDetail"\n          [groupHeader]="groupHeader"\n          [offsetX]="offsetX"\n          [detailRowHeight]="getDetailRowHeight(group[i], i)"\n          [row]="group"\n          [expanded]="getRowExpanded(group)"\n          [rowIndex]="getRowIndex(group[i])"\n          (rowContextmenu)="rowContextmenu.emit($event)"\n        >\n          <datatable-body-row\n            *ngIf="!groupedRows; else groupedRowsTemplate"\n            tabindex="-1"\n            [isSelected]="selector.getRowSelected(group)"\n            [innerWidth]="innerWidth"\n            [offsetX]="offsetX"\n            [columns]="columns"\n            [rowHeight]="getRowHeight(group)"\n            [row]="group"\n            [rowIndex]="getRowIndex(group)"\n            [expanded]="getRowExpanded(group)"\n            [rowClass]="rowClass"\n            [displayCheck]="displayCheck"\n            [treeStatus]="group.treeStatus"\n            (treeAction)="onTreeAction(group)"\n            (activate)="selector.onActivate($event, indexes.first + i)"\n          >\n          </datatable-body-row>\n          <ng-template #groupedRowsTemplate>\n            <datatable-body-row\n              *ngFor="\n                let row of group.value;\n                let i = index;\n                trackBy: rowTrackingFn\n              "\n              tabindex="-1"\n              [isSelected]="selector.getRowSelected(row)"\n              [innerWidth]="innerWidth"\n              [offsetX]="offsetX"\n              [columns]="columns"\n              [rowHeight]="getRowHeight(row)"\n              [row]="row"\n              [group]="group.value"\n              [rowIndex]="getRowIndex(row)"\n              [expanded]="getRowExpanded(row)"\n              [rowClass]="rowClass"\n              (activate)="selector.onActivate($event, i)"\n            >\n            </datatable-body-row>\n          </ng-template>\n        </datatable-row-wrapper>\n        <datatable-summary-row\n          *ngIf="summaryRow && summaryPosition === \'bottom\'"\n          [ngStyle]="getBottomSummaryRowStyles()"\n          [rowHeight]="summaryHeight"\n          [offsetX]="offsetX"\n          [innerWidth]="innerWidth"\n          [rows]="rows"\n          [columns]="columns"\n        >\n        </datatable-summary-row>\n      </datatable-scroller>\n      <div\n        class="empty-row"\n        *ngIf="!rows?.length && !loadingIndicator"\n        [innerHTML]="emptyMessage"\n      ></div>\n    </datatable-selection>\n  ',changeDetection:o.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}})],t)}()},IZUe:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{constructor(t){this.elementRef=t,this.focus=!0}ngAfterViewInit(){const t=this.elementRef.nativeElement;this.focus&&a.isFunction(t.focus)&&t.focus()}set autofocus(t){a.isBoolean(t)?this.focus=t:a.isFunction(t)&&(this.focus=t())}}},IheW:function(t,e,n){"use strict";n.d(e,"m",(function(){return R})),n.d(e,"p",(function(){return q})),n.d(e,"q",(function(){return j})),n.d(e,"n",(function(){return E})),n.d(e,"o",(function(){return D})),n.d(e,"b",(function(){return u})),n.d(e,"g",(function(){return d})),n.d(e,"c",(function(){return w})),n.d(e,"a",(function(){return S})),n.d(e,"d",(function(){return G})),n.d(e,"e",(function(){return z})),n.d(e,"l",(function(){return F})),n.d(e,"h",(function(){return m})),n.d(e,"f",(function(){return M})),n.d(e,"i",(function(){return A})),n.d(e,"k",(function(){return N})),n.d(e,"j",(function(){return L}));var a=n("8Y7J"),r=n("LRne"),o=n("HDdC"),i=n("bOdf"),s=n("pLZG"),c=n("lJxs"),l=n("SVse");class d{}class u{}class g{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(t=>{const e=t.indexOf(":");if(e>0){const n=t.slice(0,e),a=n.toLowerCase(),r=t.slice(e+1).trim();this.maybeSetNormalizedName(n,a),this.headers.has(a)?this.headers.get(a).push(r):this.headers.set(a,[r])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(e=>{let n=t[e];const a=e.toLowerCase();"string"==typeof n&&(n=[n]),n.length>0&&(this.headers.set(a,n),this.maybeSetNormalizedName(e,a))})}: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 g?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 g;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof g?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 n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,e);const a=("a"===t.op?this.headers.get(e):void 0)||[];a.push(...n),this.headers.set(e,a);break;case"d":const r=t.value;if(r){let t=this.headers.get(e);if(!t)return;t=t.filter(t=>-1===r.indexOf(t)),0===t.length?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,t)}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 f{encodeKey(t){return p(t)}encodeValue(t){return p(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}function p(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/gi,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%2B/gi,"+").replace(/%3D/gi,"=").replace(/%3F/gi,"?").replace(/%2F/gi,"/")}class m{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new f,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function(t,e){const n=new Map;return t.length>0&&t.split("&").forEach(t=>{const a=t.indexOf("="),[r,o]=-1==a?[e.decodeKey(t),""]:[e.decodeKey(t.slice(0,a)),e.decodeValue(t.slice(a+1))],i=n.get(r)||[];i.push(o),n.set(r,i)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(e=>{const n=t.fromObject[e];this.map.set(e,Array.isArray(n)?n:[n])})):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"})}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(t=>e+"="+this.encoder.encodeValue(t)).join("&")}).join("&")}clone(t){const e=new m({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(t.value),this.map.set(t.param,e);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let e=this.map.get(t.param)||[];const n=e.indexOf(t.value);-1!==n&&e.splice(n,1),e.length>0?this.map.set(t.param,e):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}function h(t){return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer}function b(t){return"undefined"!=typeof Blob&&t instanceof Blob}function y(t){return"undefined"!=typeof FormData&&t instanceof FormData}class _{constructor(t,e,n,a){let r;if(this.url=e,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||a?(this.body=void 0!==n?n:null,r=a):r=n,r&&(this.reportProgress=!!r.reportProgress,this.withCredentials=!!r.withCredentials,r.responseType&&(this.responseType=r.responseType),r.headers&&(this.headers=r.headers),r.params&&(this.params=r.params)),this.headers||(this.headers=new g),this.params){const t=this.params.toString();if(0===t.length)this.urlWithParams=e;else{const n=e.indexOf("?");this.urlWithParams=e+(-1===n?"?":n<e.length-1?"&":"")+t}}else this.params=new m,this.urlWithParams=e}serializeBody(){return null===this.body?null:h(this.body)||b(this.body)||y(this.body)||"string"==typeof this.body?this.body:this.body instanceof m?this.body.toString():"object"==typeof this.body||"boolean"==typeof this.body||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return null===this.body?null:y(this.body)?null:b(this.body)?this.body.type||null:h(this.body)?null:"string"==typeof this.body?"text/plain":this.body instanceof m?"application/x-www-form-urlencoded;charset=UTF-8":"object"==typeof this.body||"number"==typeof this.body||Array.isArray(this.body)?"application/json":null}clone(t={}){const e=t.method||this.method,n=t.url||this.url,a=t.responseType||this.responseType,r=void 0!==t.body?t.body:this.body,o=void 0!==t.withCredentials?t.withCredentials:this.withCredentials,i=void 0!==t.reportProgress?t.reportProgress:this.reportProgress;let s=t.headers||this.headers,c=t.params||this.params;return void 0!==t.setHeaders&&(s=Object.keys(t.setHeaders).reduce((e,n)=>e.set(n,t.setHeaders[n]),s)),t.setParams&&(c=Object.keys(t.setParams).reduce((e,n)=>e.set(n,t.setParams[n]),c)),new _(e,n,r,{params:c,headers:s,reportProgress:i,responseType:a,withCredentials:o})}}const O=function(){var t={Sent:0,UploadProgress:1,ResponseHeader:2,DownloadProgress:3,Response:4,User:5};return t[t.Sent]="Sent",t[t.UploadProgress]="UploadProgress",t[t.ResponseHeader]="ResponseHeader",t[t.DownloadProgress]="DownloadProgress",t[t.Response]="Response",t[t.User]="User",t}();class v{constructor(t,e=200,n="OK"){this.headers=t.headers||new g,this.status=void 0!==t.status?t.status:e,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class C extends v{constructor(t={}){super(t),this.type=O.ResponseHeader}clone(t={}){return new C({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 P extends v{constructor(t={}){super(t),this.type=O.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new P({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 M extends v{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 x(t,e){return{body:e,headers:t.headers,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials}}class w{constructor(t){this.handler=t}request(t,e,n={}){let a;if(t instanceof _)a=t;else{let r=void 0;r=n.headers instanceof g?n.headers:new g(n.headers);let o=void 0;n.params&&(o=n.params instanceof m?n.params:new m({fromObject:n.params})),a=new _(t,e,void 0!==n.body?n.body:null,{headers:r,params:o,reportProgress:n.reportProgress,responseType:n.responseType||"json",withCredentials:n.withCredentials})}const o=Object(r.a)(a).pipe(Object(i.a)(t=>this.handler.handle(t)));if(t instanceof _||"events"===n.observe)return o;const l=o.pipe(Object(s.a)(t=>t instanceof P));switch(n.observe||"body"){case"body":switch(a.responseType){case"arraybuffer":return l.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return t.body}));case"blob":return l.pipe(Object(c.a)(t=>{if(null!==t.body&&!(t.body instanceof Blob))throw new Error("Response is not a Blob.");return t.body}));case"text":return l.pipe(Object(c.a)(t=>{if(null!==t.body&&"string"!=typeof t.body)throw new Error("Response is not a string.");return t.body}));case"json":default:return l.pipe(Object(c.a)(t=>t.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${n.observe}}`)}}delete(t,e={}){return this.request("DELETE",t,e)}get(t,e={}){return this.request("GET",t,e)}head(t,e={}){return this.request("HEAD",t,e)}jsonp(t,e){return this.request("JSONP",t,{params:(new m).append(e,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,e={}){return this.request("OPTIONS",t,e)}patch(t,e,n={}){return this.request("PATCH",t,x(n,e))}post(t,e,n={}){return this.request("POST",t,x(n,e))}put(t,e,n={}){return this.request("PUT",t,x(n,e))}}class T{constructor(t,e){this.next=t,this.interceptor=e}handle(t){return this.interceptor.intercept(t,this.next)}}const S=new a.InjectionToken("HTTP_INTERCEPTORS");class k{intercept(t,e){return e.handle(t)}}const I=/^\)\]\}',?\n/;class N{}class R{constructor(){}build(){return new XMLHttpRequest}}class A{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new Error("Attempted to construct Jsonp request without JsonpClientModule installed.");return new o.a(e=>{const n=this.xhrFactory.build();if(n.open(t.method,t.urlWithParams),t.withCredentials&&(n.withCredentials=!0),t.headers.forEach((t,e)=>n.setRequestHeader(t,e.join(","))),t.headers.has("Accept")||n.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const e=t.detectContentTypeHeader();null!==e&&n.setRequestHeader("Content-Type",e)}if(t.responseType){const e=t.responseType.toLowerCase();n.responseType="json"!==e?e:"text"}const a=t.serializeBody();let r=null;const o=()=>{if(null!==r)return r;const e=1223===n.status?204:n.status,a=n.statusText||"OK",o=new g(n.getAllResponseHeaders()),i=function(t){return"responseURL"in t&&t.responseURL?t.responseURL:/^X-Request-URL:/m.test(t.getAllResponseHeaders())?t.getResponseHeader("X-Request-URL"):null}(n)||t.url;return r=new C({headers:o,status:e,statusText:a,url:i}),r},i=()=>{let{headers:a,status:r,statusText:i,url:s}=o(),c=null;204!==r&&(c=void 0===n.response?n.responseText:n.response),0===r&&(r=c?200:0);let l=r>=200&&r<300;if("json"===t.responseType&&"string"==typeof c){const t=c;c=c.replace(I,"");try{c=""!==c?JSON.parse(c):null}catch(d){c=t,l&&(l=!1,c={error:d,text:c})}}l?(e.next(new P({body:c,headers:a,status:r,statusText:i,url:s||void 0})),e.complete()):e.error(new M({error:c,headers:a,status:r,statusText:i,url:s||void 0}))},s=t=>{const{url:a}=o(),r=new M({error:t,status:n.status||0,statusText:n.statusText||"Unknown Error",url:a||void 0});e.error(r)};let c=!1;const l=a=>{c||(e.next(o()),c=!0);let r={type:O.DownloadProgress,loaded:a.loaded};a.lengthComputable&&(r.total=a.total),"text"===t.responseType&&n.responseText&&(r.partialText=n.responseText),e.next(r)},d=t=>{let n={type:O.UploadProgress,loaded:t.loaded};t.lengthComputable&&(n.total=t.total),e.next(n)};return n.addEventListener("load",i),n.addEventListener("error",s),t.reportProgress&&(n.addEventListener("progress",l),null!==a&&n.upload&&n.upload.addEventListener("progress",d)),n.send(a),e.next({type:O.Sent}),()=>{n.removeEventListener("error",s),n.removeEventListener("load",i),t.reportProgress&&(n.removeEventListener("progress",l),null!==a&&n.upload&&n.upload.removeEventListener("progress",d)),n.abort()}})}}const E=new a.InjectionToken("XSRF_COOKIE_NAME"),D=new a.InjectionToken("XSRF_HEADER_NAME");class L{}class q{constructor(t,e,n){this.doc=t,this.platform=e,this.cookieName=n,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Object(l["ɵparseCookieValue"])(t,this.cookieName),this.lastCookieString=t),this.lastToken}}class j{constructor(t,e){this.tokenService=t,this.headerName=e}intercept(t,e){const n=t.url.toLowerCase();if("GET"===t.method||"HEAD"===t.method||n.startsWith("http://")||n.startsWith("https://"))return e.handle(t);const a=this.tokenService.getToken();return null===a||t.headers.has(this.headerName)||(t=t.clone({headers:t.headers.set(this.headerName,a)})),e.handle(t)}}class F{constructor(t,e){this.backend=t,this.injector=e,this.chain=null}handle(t){if(null===this.chain){const t=this.injector.get(S,[]);this.chain=t.reduceRight((t,e)=>new T(t,e),this.backend)}return this.chain.handle(t)}}class z{static disable(){return{ngModule:z,providers:[{provide:j,useClass:k}]}}static withOptions(t={}){return{ngModule:z,providers:[t.cookieName?{provide:E,useValue:t.cookieName}:[],t.headerName?{provide:D,useValue:t.headerName}:[]]}}}class G{}},IjjT:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("Y/cZ");class r extends a.a{constructor(t,e=a.a.now){super(t,()=>r.delegate&&r.delegate!==this?r.delegate.now():e()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(t,e=0,n){return r.delegate&&r.delegate!==this?r.delegate.schedule(t,e,n):super.schedule(t,e,n)}flush(t){const{actions:e}=this;if(this.active)return void e.push(t);let n;this.active=!0;do{if(n=t.execute(t.state,t.delay))break}while(t=e.shift());if(this.active=!1,n){for(;t=e.shift();)t.unsubscribe();throw n}}}},ImZN:function(t,e,n){var a=n("glrk"),r=n("6VoE"),o=n("UMSQ"),i=n("A2ZE"),s=n("NaFW"),c=n("m92n"),l=function(t,e){this.stopped=t,this.result=e};(t.exports=function(t,e,n,d,u){var g,f,p,m,h,b,y,_=i(e,n,d?2:1);if(u)g=t;else{if("function"!=typeof(f=s(t)))throw TypeError("Target is not iterable");if(r(f)){for(p=0,m=o(t.length);m>p;p++)if((h=d?_(a(y=t[p])[0],y[1]):_(t[p]))&&h instanceof l)return h;return new l(!1)}g=f.call(t)}for(b=g.next;!(y=b.call(g)).done;)if("object"==typeof(h=c(g,_,y.value,d))&&h&&h instanceof l)return h;return new l(!1)}).stop=function(t){return new l(!0,t)}},Ioao:function(t,e,n){var a=n("heNW"),r=Math.max;t.exports=function(t,e,n){return e=r(void 0===e?t.length-1:e,0),function(){for(var o=arguments,i=-1,s=r(o.length-e,0),c=Array(s);++i<s;)c[i]=o[e+i];i=-1;for(var l=Array(e+1);++i<e;)l[i]=o[i];return l[e]=n(c),a(t,this,l)}}},"Ivi+":function(t,e,n){!function(t){"use strict";t.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),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일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}})}(n("wd/R"))},IzCI:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1024,["B/s","kB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"])}}},IzEk:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("7o/Q"),r=n("4I5i"),o=n("EY2u");function i(t){return e=>0===t?Object(o.b)():e.lift(new s(t))}class s{constructor(t){if(this.total=t,this.total<0)throw new r.a}call(t,e){return e.subscribe(new c(t,this.total))}}class c extends a.a{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){const e=this.total,n=++this.count;n<=e&&(this.destination.next(t),n===e&&(this.destination.complete(),this.unsubscribe()))}}},J2m7:function(t,e,n){var a=n("XKAG")(n("UfWW"));t.exports=a},JBE3:function(t,e,n){var a=n("+Qka"),r=n("LsHQ")((function(t,e,n,r){a(t,e,n,r)}));t.exports=r},JBy8:function(t,e,n){var a=n("yoRg"),r=n("eDl+").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return a(t,r)}},JC6p:function(t,e,n){var a=n("cq/+"),r=n("7GkX");t.exports=function(t,e){return t&&a(t,e,r)}},"JCF/":function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];t.defineLocale("ku",{months:a,monthsShort:a,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".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:/ئێواره‌|به‌یانی/,isPM:function(t){return/ئێواره‌/.test(t)},meridiem:function(t,e,n){return t<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},JHRd:function(t,e,n){var a=n("Kz5y");t.exports=a.Uint8Array},JHgL:function(t,e,n){var a=n("QkVE");t.exports=function(t){return a(this,t).get(t)}},JIr8:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("l7GE"),r=n("51Dv"),o=n("ZUHj");function i(t){return function(e){const n=new s(t),a=e.lift(n);return n.caught=a}}class s{constructor(t){this.selector=t}call(t,e){return e.subscribe(new c(t,this.selector,this.caught))}}class c extends a.a{constructor(t,e,n){super(t),this.selector=e,this.caught=n}error(t){if(!this.isStopped){let n;try{n=this.selector(t,this.caught)}catch(e){return void super.error(e)}this._unsubscribeAndRecycle();const a=new r.a(this,void 0,void 0);this.add(a);const i=Object(o.a)(this,n,void 0,void 0,a);i!==a&&this.add(i)}}}},JSQU:function(t,e,n){var a=n("YESw");t.exports=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=a&&void 0===e?"__lodash_hash_undefined__":e,this}},JTzB:function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Arguments]"==a(t)}},JVSJ:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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čer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},JX91:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("GyhO"),r=n("z+Ro");function o(...t){const e=t[t.length-1];return Object(r.a)(e)?(t.pop(),n=>Object(a.a)(t,n,e)):e=>Object(a.a)(t,e)}},JZM8:function(t,e,n){var a=n("FfPP"),r=n("xs/l")((function(t,e){return null==t?{}:a(t,e)}));t.exports=r},Jlc5:function(t,e,n){var a=n("ZirO"),r=n("H0h1"),o=n("ut/Y"),i=n("Z0cm"),s=n("mv/X");t.exports=function(t,e,n){var c=i(t)?a:r;return n&&s(t,e,n)&&(e=void 0),c(t,o(e,3))}},JmpY:function(t,e,n){var a=n("eUgh");t.exports=function(t,e){return a(e,(function(e){return t[e]}))}},Juji:function(t,e){t.exports=function(t,e){return null!=t&&e in Object(t)}},JvlW:function(t,e,n){!function(t){"use strict";var e={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(t,e,n,a){return e?r(n)[0]:a?r(n)[1]:r(n)[2]}function a(t){return t%10==0||t>10&&t<20}function r(t){return e[t].split("_")}function o(t,e,o,i){var s=t+" ";return 1===t?s+n(0,e,o[0],i):e?s+(a(t)?r(o)[1]:r(o)[0]):i?s+r(o)[1]:s+(a(t)?r(o)[1]:r(o)[2])}t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_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į_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".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:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(t,e,n,a){return e?"kelios sekundės":a?"kelių sekundžių":"kelias sekundes"},ss:o,m:n,mm:o,h:n,hh:o,d:n,dd:o,M:n,MM:o,y:n,yy:o},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})}(n("wd/R"))},JxMD:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("hrfs");n("dgut"),n("Fgil"),n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return s}));var i=a["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:static!important}']],data:{}});function s(t){return a["ɵvid"](0,[a["ɵqud"](402653184,1,{chartCanvasRef:0}),a["ɵqud"](402653184,2,{chartTooltipRef:0}),(t()(),a["ɵeld"](2,0,null,null,6,"div",[["class","chart-container"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgStyleImpl"],r["ɵNgStyleR2Impl"],[a.ElementRef,a.KeyValueDiffers,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgStyle,[r["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),a["ɵeld"](5,0,[[1,0],["sparkCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),a["ɵdid"](6,999424,null,0,o.a,[a.ElementRef,o.c],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),a["ɵeld"](7,0,[[2,0],["sparkTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),a["ɵeld"](8,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.style),t(e,6,0,n.datasets,n.labels,n.options,"line",n.colors)}),null)}},"K/tc":function(t,e,n){!function(t){"use strict";t.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(t){return/^nm$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"vm":"VM":n?"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ôre 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(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},KMkd:function(t,e){t.exports=function(){this.__data__=[],this.size=0}},KOzp:function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return s})),n.d(e,"c",(function(){return c})),n.d(e,"d",(function(){return l}));var a=n("z/SZ"),r=n("hpHm"),o=n("2uy1");class i{constructor(){this.adaptivePosition=!0,this.placement="top",this.triggers="click",this.outsideClick=!1}}class s{constructor(t){Object.assign(this,t)}get isBs3(){return Object(r.d)()}}class c{constructor(t,e,n,a,r,o){this._positionService=o,this.outsideClick=!1,this.containerClass="",this._isInited=!1,this._popover=r.createLoader(e,a,n).provide({provide:i,useValue:t}),Object.assign(this,t),this.onShown=this._popover.onShown,this.onHidden=this._popover.onHidden,"undefined"!=typeof window&&e.nativeElement.addEventListener("click",(function(){try{e.nativeElement.focus()}catch(t){return}}))}get isOpen(){return this._popover.isShown}set isOpen(t){t?this.show():this.hide()}show(){!this._popover.isShown&&this.popover&&(this._positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition},preventOverflow:{enabled:this.adaptivePosition}}}),this._popover.attach(s).to(this.container).position({attachment:this.placement}).show({content:this.popover,context:this.popoverContext,placement:this.placement,title:this.popoverTitle,containerClass:this.containerClass}),this.adaptivePosition||(this._positionService.calcPosition(),this._positionService.deletePositionElement(this._popover._componentRef.location)),this.isOpen=!0)}hide(){this.isOpen&&(this._popover.hide(),this.isOpen=!1)}toggle(){if(this.isOpen)return this.hide();this.show()}ngOnInit(){this._isInited||(this._isInited=!0,this._popover.listen({triggers:this.triggers,outsideClick:this.outsideClick,show:()=>this.show()}))}ngOnDestroy(){this._popover.dispose()}}class l{static forRoot(){return{ngModule:l,providers:[i,a.a,o.a]}}}},KSF8:function(t,e,n){!function(t){"use strict";t.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".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(t){return/^ch$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] 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ôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})}(n("wd/R"))},KTz0:function(t,e,n){!function(t){"use strict";var e={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(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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če u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},KVJa:function(t,e,n){"use strict";var a=n("8Y7J");n("Z21x"),n("SVse"),n("sne2"),n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}));var r=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function o(t){return a["ɵvid"](0,[(t()(),a["ɵted"](-1,null,[" \n"])),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-light tc_backButton"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.back()&&a),a}),null,null)),(t()(),a["ɵted"](2,null,[" ","\n"]))],null,(function(t,e){t(e,2,0,e.component.name)}))}},KfNM:function(t,e){var n=Object.prototype.toString;t.exports=function(t){return n.call(t)}},Kj3r:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("7o/Q"),r=n("D0XW");function o(t,e=r.a){return n=>n.lift(new i(t,e))}class i{constructor(t,e){this.dueTime=t,this.scheduler=e}call(t,e){return e.subscribe(new s(t,this.dueTime,this.scheduler))}}class s extends a.a{constructor(t,e,n){super(t),this.dueTime=e,this.scheduler=n,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(c,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 c(t){t.debouncedNext()}},Kqap:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){let n=!1;return arguments.length>=2&&(n=!0),function(a){return a.lift(new o(t,e,n))}}class o{constructor(t,e,n=!1){this.accumulator=t,this.seed=e,this.hasSeed=n}call(t,e){return e.subscribe(new i(t,this.accumulator,this.seed,this.hasSeed))}}class i extends a.a{constructor(t,e,n,a){super(t),this.accumulator=e,this._seed=n,this.hasSeed=a,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 n;try{n=this.accumulator(this.seed,t,e)}catch(a){this.destination.error(a)}this.seed=n,this.destination.next(n)}}},KqfI:function(t,e,n){"use strict";function a(){}n.d(e,"a",(function(){return a}))},KwMD:function(t,e){t.exports=function(t,e,n,a){for(var r=t.length,o=n+(a?1:-1);a?o--:++o<r;)if(e(t[o],o,t))return o;return-1}},KxBF:function(t,e){t.exports=function(t,e,n){var a=-1,r=t.length;e<0&&(e=-e>r?0:r+e),(n=n>r?r:n)<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var o=Array(r);++a<r;)o[a]=t[a+e];return o}},Kz5y:function(t,e,n){var a=n("WFqU"),r="object"==typeof self&&self&&self.Object===Object&&self,o=a||r||Function("return this")();t.exports=o},L5sC:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DataTableColumnCellTreeToggle=function(){return a([r.Directive({selector:"[ngx-datatable-tree-toggle]"})],(function(t){this.template=t}))}()},L8xA:function(t,e){t.exports=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n}},LOMR:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("Fwy9"),o=n("gk6K"),i=n("woSy"),s=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"div",[["class","node-drop-slot"]],null,[[null,"treeDrop"],[null,"drop"]],(function(t,e,n){var r=!0,o=t.component;return"drop"===e&&(r=!1!==a["ɵnov"](t,1).onDrop(n)&&r),"treeDrop"===e&&(r=!1!==o.onDrop(n)&&r),r}),null,null)),a["ɵdid"](1,4341760,null,0,r.a,[a.ElementRef,a.Renderer2,o.a,a.NgZone],{allowDragoverStyling:[0,"allowDragoverStyling"],treeAllowDrop:[1,"treeAllowDrop"]},{onDropCallback:"treeDrop"})],(function(t,e){var n=e.component;t(e,1,0,!0,n.allowDrop.bind(n))}),null)}var l=n("SVse"),d=n("CoVI"),u=n("uNpg"),g=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"input",[["class","tree-node-checkbox"],["type","checkbox"]],[[8,"checked",0],[8,"indeterminate",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.node.mouseAction("checkboxClick",n)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,1,0,n.node.isSelected,n.node.isPartiallySelected)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,f)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var m=n("jV1L"),h=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","toggle-children-wrapper"]],[[2,"toggle-children-wrapper-expanded",null],[2,"toggle-children-wrapper-collapsed",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.node.mouseAction("expanderClick",n)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"span",[["class","toggle-children"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.node.isExpanded,n.node.isCollapsed)}))}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[["class","toggle-children-placeholder"]],null,null,null,null,null))],null,null)}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,b)),a["ɵdid"](2,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](4,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.node.hasChildren),t(e,4,0,!n.node.hasChildren)}),null)}function O(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,_)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var v=n("C523"),C=n("rZud"),P=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.node.displayField)}))}function x(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,M)),a["ɵdid"](1,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,l.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0,node:1,index:2})],(function(t,e){var n=e.component;t(e,1,0,!n.template);var a=t(e,4,0,n.node,n.node,n.index);t(e,3,0,a,n.template)}),null)}var w=n("OIDT"),T=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-checkbox",[],null,null,null,p,g)),a["ɵdid"](1,49152,null,0,u.a,[],{node:[0,"node"]},null)],(function(t,e){t(e,1,0,e.component.node)}),null)}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,"div",[["class","node-wrapper"]],[[4,"padding-left",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,S)),a["ɵdid"](2,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"tree-node-expander",[],null,null,null,O,h)),a["ɵdid"](4,49152,null,0,m.a,[],{node:[0,"node"]},null),(t()(),a["ɵeld"](5,0,null,null,4,"div",[["class","node-content-wrapper"]],[[2,"node-content-wrapper-active",null],[2,"node-content-wrapper-focused",null]],[[null,"click"],[null,"dblclick"],[null,"mouseover"],[null,"mouseout"],[null,"contextmenu"],[null,"treeDrop"],[null,"treeDropDragOver"],[null,"treeDropDragLeave"],[null,"treeDropDragEnter"],[null,"drop"],[null,"dragstart"],[null,"dragend"]],(function(t,e,n){var r=!0,o=t.component;return"drop"===e&&(r=!1!==a["ɵnov"](t,6).onDrop(n)&&r),"dragstart"===e&&(r=!1!==a["ɵnov"](t,7).onDragStart(n)&&r),"dragend"===e&&(r=!1!==a["ɵnov"](t,7).onDragEnd()&&r),"click"===e&&(r=!1!==o.node.mouseAction("click",n)&&r),"dblclick"===e&&(r=!1!==o.node.mouseAction("dblClick",n)&&r),"mouseover"===e&&(r=!1!==o.node.mouseAction("mouseOver",n)&&r),"mouseout"===e&&(r=!1!==o.node.mouseAction("mouseOut",n)&&r),"contextmenu"===e&&(r=!1!==o.node.mouseAction("contextMenu",n)&&r),"treeDrop"===e&&(r=!1!==o.node.onDrop(n)&&r),"treeDropDragOver"===e&&(r=!1!==o.node.mouseAction("dragOver",n)&&r),"treeDropDragLeave"===e&&(r=!1!==o.node.mouseAction("dragLeave",n)&&r),"treeDropDragEnter"===e&&(r=!1!==o.node.mouseAction("dragEnter",n)&&r),r}),null,null)),a["ɵdid"](6,4341760,null,0,r.a,[a.ElementRef,a.Renderer2,o.a,a.NgZone],{allowDragoverStyling:[0,"allowDragoverStyling"],treeAllowDrop:[1,"treeAllowDrop"]},{onDropCallback:"treeDrop",onDragOverCallback:"treeDropDragOver",onDragLeaveCallback:"treeDropDragLeave",onDragEnterCallback:"treeDropDragEnter"}),a["ɵdid"](7,4603904,null,0,v.a,[a.ElementRef,a.Renderer2,o.a,a.NgZone],{draggedElement:[0,"draggedElement"],treeDragEnabled:[1,"treeDragEnabled"]},null),(t()(),a["ɵeld"](8,0,null,null,1,"tree-node-content",[],null,null,null,x,P)),a["ɵdid"](9,49152,null,0,C.a,[],{node:[0,"node"],index:[1,"index"],template:[2,"template"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.node.options.useCheckbox),t(e,4,0,n.node),t(e,6,0,n.node.allowDragoverStyling(),n.node.allowDrop),t(e,7,0,n.node,n.node.allowDrag()),t(e,9,0,n.node,n.index,n.templates.treeNodeTemplate)}),(function(t,e){var n=e.component;t(e,0,0,n.node.getNodePadding()),t(e,5,0,n.node.isActive,n.node.isFocused)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,k)),a["ɵdid"](1,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,l.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0,node:1,index:2,templates:3})],(function(t,e){var n=e.component;t(e,1,0,!n.templates.treeNodeWrapperTemplate);var a=t(e,4,0,n.node,n.node,n.index,n.templates);t(e,3,0,a,n.templates.treeNodeWrapperTemplate)}),null)}var N=n("WaXT"),R=n("ZhuC"),A=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function E(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["loading..."]))],null,null)}function D(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,E)),a["ɵdid"](1,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](3,540672,null,0,l.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](4,{$implicit:0})],(function(t,e){var n=e.component;t(e,1,0,!n.template);var a=t(e,4,0,n.node);t(e,3,0,a,n.template)}),null)}var L=n("4Dmd"),q=n("pcHL"),j=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function F(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-collection",[],null,null,null,Q,Z)),a["ɵdid"](1,245760,null,0,N.a,[],{nodes:[0,"nodes"],treeModel:[1,"treeModel"],templates:[2,"templates"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.node.children,n.node.treeModel,n.templates)}),null)}function z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-loading-component",[["class","tree-node-loading"]],[[4,"padding-left",null]],null,null,D,A)),a["ɵdid"](1,49152,null,0,R.a,[],{template:[0,"template"],node:[1,"node"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.templates.loadingTemplate,n.node)}),(function(t,e){t(e,0,0,e.component.node.getNodePadding())}))}function G(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[],[[2,"tree-children",null],[2,"tree-children-no-padding",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,F)),a["ɵdid"](2,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,z)),a["ɵdid"](4,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.node.children),t(e,4,0,!n.node.children)}),(function(t,e){t(e,0,0,!0,e.component.node.options.levelPadding)}))}function B(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,G)),a["ɵdid"](2,16384,null,0,L.a,[a.Renderer2,a.TemplateRef,a.ViewContainerRef],{animateSpeed:[0,"animateSpeed"],animateAcceleration:[1,"animateAcceleration"],isEnabled:[2,"isEnabled"],isOpen:[3,"isOpen"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.node.options.animateSpeed,n.node.options.animateAcceleration,n.node.options.animateExpand,n.node.isExpanded)}),null)}function V(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,B)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var Y=n("TNUL"),H=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function U(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-drop-slot",[],null,null,null,c,s)),a["ɵdid"](1,49152,null,0,i.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.node.parent,n.node.index)}),null)}function W(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[],[[8,"className",0],[2,"tree-node",null],[2,"tree-node-expanded",null],[2,"tree-node-collapsed",null],[2,"tree-node-leaf",null],[2,"tree-node-active",null],[2,"tree-node-focused",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,U)),a["ɵdid"](2,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,0,null,null,1,"tree-node-wrapper",[],null,null,null,I,T)),a["ɵdid"](4,49152,null,0,w.a,[],{node:[0,"node"],index:[1,"index"],templates:[2,"templates"]},null),(t()(),a["ɵeld"](5,0,null,null,1,"tree-node-children",[],null,null,null,V,j)),a["ɵdid"](6,49152,null,0,q.a,[],{node:[0,"node"],templates:[1,"templates"]},null),(t()(),a["ɵeld"](7,0,null,null,1,"tree-node-drop-slot",[],null,null,null,c,s)),a["ɵdid"](8,49152,null,0,i.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){var n=e.component;t(e,2,0,0===n.index),t(e,4,0,n.node,n.index,n.templates),t(e,6,0,n.node,n.templates),t(e,8,0,n.node.parent,n.node.index+1)}),(function(t,e){var n=e.component;t(e,0,0,n.node.getClass(),!0,n.node.isExpanded&&n.node.hasChildren,n.node.isCollapsed&&n.node.hasChildren,n.node.isLeaf,n.node.isActive,n.node.isFocused)}))}function K(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,W)),a["ɵdid"](2,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](3,16777216,null,null,2,null,null,null,null,null,null,null)),a["ɵdid"](4,540672,null,0,l.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),a["ɵpod"](5,{$implicit:0,node:1,index:2,templates:3}),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!n.templates.treeNodeFullTemplate);var a=t(e,5,0,n.node,n.node,n.index,n.templates);t(e,4,0,a,n.templates.treeNodeFullTemplate)}),null)}function $(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,K)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var Z=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function J(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node",[],null,null,null,$,H)),a["ɵdid"](1,49152,null,0,Y.a,[],{node:[0,"node"],index:[1,"index"],templates:[2,"templates"]},null)],(function(t,e){t(e,1,0,e.context.$implicit,e.context.index,e.component.templates)}),null)}function X(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"div",[],[[4,"margin-top",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,J)),a["ɵdid"](3,278528,null,0,l.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.viewportNodes,n.trackNode)}),(function(t,e){t(e,1,0,e.component.marginTop)}))}function Q(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,X)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}var tt=n("dApe"),et=n("MP8s"),nt=n("HIU9"),at=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function rt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[],[[4,"height",null]],null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){t(e,1,0,e.component.getTotalHeight())}))}function ot(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,rt)),a["ɵdid"](1,212992,null,0,d.a,[a.TemplateRef,a.ViewContainerRef],{treeMobxAutorun:[0,"treeMobxAutorun"]},null),a["ɵpod"](2,{dontDetach:0})],(function(t,e){var n=t(e,2,0,!0);t(e,1,0,n)}),null)}n("fxL3"),n.d(e,"a",(function(){return it})),n.d(e,"b",(function(){return lt}));var it=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function st(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tree-node-collection",[],null,null,null,Q,Z)),a["ɵdid"](1,245760,null,0,N.a,[],{nodes:[0,"nodes"],treeModel:[1,"treeModel"],templates:[2,"templates"]},null),a["ɵpod"](2,{loadingTemplate:0,treeNodeTemplate:1,treeNodeWrapperTemplate:2,treeNodeFullTemplate:3})],(function(t,e){var n=e.component,a=n.treeModel.roots,r=n.treeModel,o=t(e,2,0,n.loadingTemplate,n.treeNodeTemplate,n.treeNodeWrapperTemplate,n.treeNodeFullTemplate);t(e,1,0,a,r,o)}),null)}function ct(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"tree-node-drop-slot",[["class","empty-tree-drop-slot"]],null,null,null,c,s)),a["ɵdid"](1,49152,null,0,i.a,[],{node:[0,"node"],dropIndex:[1,"dropIndex"]},null)],(function(t,e){t(e,1,0,e.component.treeModel.virtualRoot,0)}),null)}function lt(t){return a["ɵvid"](0,[a["ɵqud"](671088640,1,{viewportComponent:0}),(t()(),a["ɵeld"](1,0,null,null,7,"tree-viewport",[],null,null,null,ot,at)),a["ɵprd"](512,null,tt.a,tt.a,[et.a]),a["ɵdid"](3,4440064,[[1,4],["viewport",4]],0,nt.a,[a.ElementRef,a.NgZone,tt.a],null,null),(t()(),a["ɵeld"](4,0,null,0,4,"div",[["class","angular-tree-component"]],[[2,"node-dragging",null],[2,"angular-tree-component-rtl",null]],null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,st)),a["ɵdid"](6,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,ct)),a["ɵdid"](8,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0),t(e,6,0,n.treeModel.roots),t(e,8,0,n.treeModel.isEmptyTree())}),(function(t,e){var n=e.component;t(e,4,0,n.treeDraggedElement.isDragging(),n.treeModel.options.rtl)}))}},LQDL:function(t,e,n){var a,r,o=n("2oRo"),i=n("NC/Y"),s=o.process,c=s&&s.versions,l=c&&c.v8;l?r=(a=l.split("."))[0]+a[1]:i&&(!(a=i.match(/Edge\/(\d+)/))||a[1]>=74)&&(a=i.match(/Chrome\/(\d+)/))&&(r=a[1]),t.exports=r&&+r},LRne:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("z+Ro"),r=n("yCtX"),o=n("jZKg");function i(...t){let e=t[t.length-1];return Object(a.a)(e)?(t.pop(),Object(o.a)(t,e)):Object(r.a)(t)}},LXxW:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length,r=0,o=[];++n<a;){var i=t[n];e(i,n,t)&&(o[r++]=i)}return o}},LceX:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return u})),n.d(e,"c",(function(){return o})),n.d(e,"d",(function(){return i})),n.d(e,"e",(function(){return s})),n.d(e,"f",(function(){return c})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return d}));var a=n("sne2");n("eTJe"),n("n/D3"),n("V3my"),n("ZEkX");class r{}const o={breadcrumbs:"Users"},i={breadcrumbs:a.a.CREATE},s={breadcrumbs:a.a.EDIT},c={breadcrumbs:"Roles"},l={breadcrumbs:a.a.CREATE},d={breadcrumbs:a.a.EDIT};class u{}},LcsW:function(t,e,n){var a=n("kekF")(Object.getPrototypeOf,Object);t.exports=a},Lhse:function(t,e,n){"use strict";function a(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}n.d(e,"a",(function(){return r}));const r=a()},Loxo:function(t,e,n){!function(t){"use strict";t.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".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:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n("wd/R"))},LqlI:function(t,e,n){"use strict";n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return g})),n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return d})),n.d(e,"e",(function(){return f})),n.d(e,"f",(function(){return c}));var a=n("8Y7J"),r=n("hpHm"),o=n("z/SZ"),i=n("2uy1");class s{constructor(){this.hide=Function,this.setClass=Function}}class c{}const l={backdrop:!0,keyboard:!0,focus:!0,show:!1,ignoreBackdropClick:!1,class:"",animated:!0,initialState:{}};class d{constructor(t,e,n){this._element=e,this._renderer=n,this.isShown=!1,this.isModalHiding=!1,this.config=Object.assign({},t)}ngOnInit(){this.isAnimated&&this._renderer.addClass(this._element.nativeElement,"fade"),this._renderer.setStyle(this._element.nativeElement,"display","block"),setTimeout(()=>{this.isShown=!0,this._renderer.addClass(this._element.nativeElement,Object(r.d)()?"in":"show")},this.isAnimated?150:0),document&&document.body&&(1===this.bsModalService.getModalsCount()&&(this.bsModalService.checkScrollbar(),this.bsModalService.setScrollbar()),this._renderer.addClass(document.body,"modal-open")),this._element.nativeElement&&this._element.nativeElement.focus()}onClick(t){this.config.ignoreBackdropClick||"static"===this.config.backdrop||t.target!==this._element.nativeElement||(this.bsModalService.setDismissReason("backdrop-click"),this.hide())}onEsc(t){this.isShown&&(27!==t.keyCode&&"Escape"!==t.key||t.preventDefault(),this.config.keyboard&&this.level===this.bsModalService.getModalsCount()&&(this.bsModalService.setDismissReason("esc"),this.hide()))}ngOnDestroy(){this.isShown&&this.hide()}hide(){!this.isModalHiding&&this.isShown&&(this.isModalHiding=!0,this._renderer.removeClass(this._element.nativeElement,Object(r.d)()?"in":"show"),setTimeout(()=>{this.isShown=!1,document&&document.body&&1===this.bsModalService.getModalsCount()&&this._renderer.removeClass(document.body,"modal-open"),this.bsModalService.hide(this.level),this.isModalHiding=!1},this.isAnimated?300:0))}}class u{constructor(t,e){this._isShown=!1,this.element=t,this.renderer=e}get isAnimated(){return this._isAnimated}set isAnimated(t){this._isAnimated=t}get isShown(){return this._isShown}set isShown(t){this._isShown=t,t?this.renderer.addClass(this.element.nativeElement,"in"):this.renderer.removeClass(this.element.nativeElement,"in"),Object(r.d)()||(t?this.renderer.addClass(this.element.nativeElement,"show"):this.renderer.removeClass(this.element.nativeElement,"show"))}ngOnInit(){this.isAnimated&&(this.renderer.addClass(this.element.nativeElement,"fade"),r.b.reflow(this.element.nativeElement)),this.isShown=!0}}class g{constructor(t,e){this.clf=e,this.config=l,this.onShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this.isBodyOverflowing=!1,this.originalBodyPadding=0,this.scrollbarWidth=0,this.modalsCount=0,this.lastDismissReason="",this.loaders=[],this._backdropLoader=this.clf.createLoader(null,null,null),this._renderer=t.createRenderer(null,null)}show(t,e){return this.modalsCount++,this._createLoaders(),this.config=Object.assign({},l,e),this._showBackdrop(),this.lastDismissReason=null,this._showModal(t)}hide(t){1===this.modalsCount&&(this._hideBackdrop(),this.resetScrollbar()),this.modalsCount=this.modalsCount>=1?this.modalsCount-1:0,setTimeout(()=>{this._hideModal(t),this.removeLoaders(t)},this.config.animated?150:0)}_showBackdrop(){const t=this.config.backdrop||"static"===this.config.backdrop,e=!this.backdropRef||!this.backdropRef.instance.isShown;1===this.modalsCount&&(this.removeBackdrop(),t&&e&&(this._backdropLoader.attach(u).to("body").show({isAnimated:this.config.animated}),this.backdropRef=this._backdropLoader._componentRef))}_hideBackdrop(){this.backdropRef&&(this.backdropRef.instance.isShown=!1,setTimeout(()=>this.removeBackdrop(),this.config.animated?150:0))}_showModal(t){const e=this.loaders[this.loaders.length-1],n=new s,a=e.provide({provide:c,useValue:this.config}).provide({provide:s,useValue:n}).attach(d).to("body").show({content:t,isAnimated:this.config.animated,initialState:this.config.initialState,bsModalService:this});return a.instance.level=this.getModalsCount(),n.hide=()=>{a.instance.hide()},n.content=e.getInnerComponent()||null,n.setClass=t=>{a.instance.config.class=t},n}_hideModal(t){const e=this.loaders[t-1];e&&e.hide()}getModalsCount(){return this.modalsCount}setDismissReason(t){this.lastDismissReason=t}removeBackdrop(){this._backdropLoader.hide(),this.backdropRef=null}checkScrollbar(){this.isBodyOverflowing=document.body.clientWidth<window.innerWidth,this.scrollbarWidth=this.getScrollbarWidth()}setScrollbar(){document&&(this.originalBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")||"0",10),this.isBodyOverflowing&&(document.body.style.paddingRight=`${this.originalBodyPadding+this.scrollbarWidth}px`))}resetScrollbar(){document.body.style.paddingRight=`${this.originalBodyPadding}px`}getScrollbarWidth(){const t=this._renderer.createElement("div");this._renderer.addClass(t,"modal-scrollbar-measure"),this._renderer.appendChild(document.body,t);const e=t.offsetWidth-t.clientWidth;return this._renderer.removeChild(document.body,t),e}_createLoaders(){const t=this.clf.createLoader(null,null,null);this.copyEvent(t.onBeforeShow,this.onShow),this.copyEvent(t.onShown,this.onShown),this.copyEvent(t.onBeforeHide,this.onHide),this.copyEvent(t.onHidden,this.onHidden),this.loaders.push(t)}removeLoaders(t){this.loaders.splice(t-1,1),this.loaders.forEach((t,e)=>{t.instance.level=e+1})}copyEvent(t,e){t.subscribe(()=>{e.emit(this.lastDismissReason)})}}class f{static forRoot(){return{ngModule:f,providers:[g,o.a,i.a]}}}},LsHQ:function(t,e,n){var a=n("EA7m"),r=n("mv/X");t.exports=function(t){return a((function(e,n){var a=-1,o=n.length,i=o>1?n[o-1]:void 0,s=o>2?n[2]:void 0;for(i=t.length>3&&"function"==typeof i?(o--,i):void 0,s&&r(n[0],n[1],s)&&(i=o<3?void 0:i,o=1),e=Object(e);++a<o;){var c=n[a];c&&t(e,c,a,i)}return e}))}},LvDl:function(t,e,n){(function(t){var a;(function(){var r="Expected a function",o="__lodash_placeholder__",i=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],s="[object Arguments]",c="[object Array]",l="[object Boolean]",d="[object Date]",u="[object Error]",g="[object Function]",f="[object GeneratorFunction]",p="[object Map]",m="[object Number]",h="[object Object]",b="[object RegExp]",y="[object Set]",_="[object String]",O="[object Symbol]",v="[object WeakMap]",C="[object ArrayBuffer]",P="[object DataView]",M="[object Float32Array]",x="[object Float64Array]",w="[object Int8Array]",T="[object Int16Array]",S="[object Int32Array]",k="[object Uint8Array]",I="[object Uint16Array]",N="[object Uint32Array]",R=/\b__p \+= '';/g,A=/\b(__p \+=) '' \+/g,E=/(__e\(.*?\)|\b__t\)) \+\n'';/g,D=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,q=RegExp(D.source),j=RegExp(L.source),F=/<%-([\s\S]+?)%>/g,z=/<%([\s\S]+?)%>/g,G=/<%=([\s\S]+?)%>/g,B=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,Y=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,H=/[\\^$.*+?()[\]{}|]/g,U=RegExp(H.source),W=/^\s+|\s+$/g,K=/^\s+/,$=/\s+$/,Z=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,X=/,? & /,Q=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,tt=/\\(\\)?/g,et=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,nt=/\w*$/,at=/^[-+]0x[0-9a-f]+$/i,rt=/^0b[01]+$/i,ot=/^\[object .+?Constructor\]$/,it=/^0o[0-7]+$/i,st=/^(?:0|[1-9]\d*)$/,ct=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,lt=/($^)/,dt=/['\n\r\u2028\u2029\\]/g,ut="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",gt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ft="["+gt+"]",pt="["+ut+"]",mt="\\d+",ht="[a-z\\xdf-\\xf6\\xf8-\\xff]",bt="[^\\ud800-\\udfff"+gt+mt+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",yt="\\ud83c[\\udffb-\\udfff]",_t="[^\\ud800-\\udfff]",Ot="(?:\\ud83c[\\udde6-\\uddff]){2}",vt="[\\ud800-\\udbff][\\udc00-\\udfff]",Ct="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Pt="(?:"+ht+"|"+bt+")",Mt="(?:"+Ct+"|"+bt+")",xt="(?:"+pt+"|"+yt+")?",wt="[\\ufe0e\\ufe0f]?"+xt+"(?:\\u200d(?:"+[_t,Ot,vt].join("|")+")[\\ufe0e\\ufe0f]?"+xt+")*",Tt="(?:"+["[\\u2700-\\u27bf]",Ot,vt].join("|")+")"+wt,St="(?:"+[_t+pt+"?",pt,Ot,vt,"[\\ud800-\\udfff]"].join("|")+")",kt=RegExp("['’]","g"),It=RegExp(pt,"g"),Nt=RegExp(yt+"(?="+yt+")|"+St+wt,"g"),Rt=RegExp([Ct+"?"+ht+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ft,Ct,"$"].join("|")+")",Mt+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ft,Ct+Pt,"$"].join("|")+")",Ct+"?"+Pt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Ct+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",mt,Tt].join("|"),"g"),At=RegExp("[\\u200d\\ud800-\\udfff"+ut+"\\ufe0e\\ufe0f]"),Et=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Dt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Lt=-1,qt={};qt[M]=qt[x]=qt[w]=qt[T]=qt[S]=qt[k]=qt["[object Uint8ClampedArray]"]=qt[I]=qt[N]=!0,qt[s]=qt[c]=qt[C]=qt[l]=qt[P]=qt[d]=qt[u]=qt[g]=qt[p]=qt[m]=qt[h]=qt[b]=qt[y]=qt[_]=qt[v]=!1;var jt={};jt[s]=jt[c]=jt[C]=jt[P]=jt[l]=jt[d]=jt[M]=jt[x]=jt[w]=jt[T]=jt[S]=jt[p]=jt[m]=jt[h]=jt[b]=jt[y]=jt[_]=jt[O]=jt[k]=jt["[object Uint8ClampedArray]"]=jt[I]=jt[N]=!0,jt[u]=jt[g]=jt[v]=!1;var Ft={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},zt=parseFloat,Gt=parseInt,Bt="object"==typeof global&&global&&global.Object===Object&&global,Vt="object"==typeof self&&self&&self.Object===Object&&self,Yt=Bt||Vt||Function("return this")(),Ht=e&&!e.nodeType&&e,Ut=Ht&&"object"==typeof t&&t&&!t.nodeType&&t,Wt=Ut&&Ut.exports===Ht,Kt=Wt&&Bt.process,$t=function(){try{return Ut&&Ut.require&&Ut.require("util").types||Kt&&Kt.binding&&Kt.binding("util")}catch(t){}}(),Zt=$t&&$t.isArrayBuffer,Jt=$t&&$t.isDate,Xt=$t&&$t.isMap,Qt=$t&&$t.isRegExp,te=$t&&$t.isSet,ee=$t&&$t.isTypedArray;function ne(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function ae(t,e,n,a){for(var r=-1,o=null==t?0:t.length;++r<o;){var i=t[r];e(a,i,n(i),t)}return a}function re(t,e){for(var n=-1,a=null==t?0:t.length;++n<a&&!1!==e(t[n],n,t););return t}function oe(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function ie(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(!e(t[n],n,t))return!1;return!0}function se(t,e){for(var n=-1,a=null==t?0:t.length,r=0,o=[];++n<a;){var i=t[n];e(i,n,t)&&(o[r++]=i)}return o}function ce(t,e){return!(null==t||!t.length)&&ye(t,e,0)>-1}function le(t,e,n){for(var a=-1,r=null==t?0:t.length;++a<r;)if(n(e,t[a]))return!0;return!1}function de(t,e){for(var n=-1,a=null==t?0:t.length,r=Array(a);++n<a;)r[n]=e(t[n],n,t);return r}function ue(t,e){for(var n=-1,a=e.length,r=t.length;++n<a;)t[r+n]=e[n];return t}function ge(t,e,n,a){var r=-1,o=null==t?0:t.length;for(a&&o&&(n=t[++r]);++r<o;)n=e(n,t[r],r,t);return n}function fe(t,e,n,a){var r=null==t?0:t.length;for(a&&r&&(n=t[--r]);r--;)n=e(n,t[r],r,t);return n}function pe(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(e(t[n],n,t))return!0;return!1}var me=Ce("length");function he(t,e,n){var a;return n(t,(function(t,n,r){if(e(t,n,r))return a=n,!1})),a}function be(t,e,n,a){for(var r=t.length,o=n+(a?1:-1);a?o--:++o<r;)if(e(t[o],o,t))return o;return-1}function ye(t,e,n){return e==e?function(t,e,n){for(var a=n-1,r=t.length;++a<r;)if(t[a]===e)return a;return-1}(t,e,n):be(t,Oe,n)}function _e(t,e,n,a){for(var r=n-1,o=t.length;++r<o;)if(a(t[r],e))return r;return-1}function Oe(t){return t!=t}function ve(t,e){var n=null==t?0:t.length;return n?xe(t,e)/n:NaN}function Ce(t){return function(e){return null==e?void 0:e[t]}}function Pe(t){return function(e){return null==t?void 0:t[e]}}function Me(t,e,n,a,r){return r(t,(function(t,r,o){n=a?(a=!1,t):e(n,t,r,o)})),n}function xe(t,e){for(var n,a=-1,r=t.length;++a<r;){var o=e(t[a]);void 0!==o&&(n=void 0===n?o:n+o)}return n}function we(t,e){for(var n=-1,a=Array(t);++n<t;)a[n]=e(n);return a}function Te(t){return function(e){return t(e)}}function Se(t,e){return de(e,(function(e){return t[e]}))}function ke(t,e){return t.has(e)}function Ie(t,e){for(var n=-1,a=t.length;++n<a&&ye(e,t[n],0)>-1;);return n}function Ne(t,e){for(var n=t.length;n--&&ye(e,t[n],0)>-1;);return n}function Re(t,e){for(var n=t.length,a=0;n--;)t[n]===e&&++a;return a}var Ae=Pe({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Ee=Pe({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"});function De(t){return"\\"+Ft[t]}function Le(t){return At.test(t)}function qe(t){var e=-1,n=Array(t.size);return t.forEach((function(t,a){n[++e]=[a,t]})),n}function je(t,e){return function(n){return t(e(n))}}function Fe(t,e){for(var n=-1,a=t.length,r=0,i=[];++n<a;){var s=t[n];s!==e&&s!==o||(t[n]=o,i[r++]=n)}return i}function ze(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function Ge(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function Be(t){return Le(t)?function(t){for(var e=Nt.lastIndex=0;Nt.test(t);)++e;return e}(t):me(t)}function Ve(t){return Le(t)?function(t){return t.match(Nt)||[]}(t):function(t){return t.split("")}(t)}var Ye=Pe({"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"}),He=function t(e){var n,a=(e=null==e?Yt:He.defaults(Yt.Object(),e,He.pick(Yt,Dt))).Array,ut=e.Date,gt=e.Error,ft=e.Function,pt=e.Math,mt=e.Object,ht=e.RegExp,bt=e.String,yt=e.TypeError,_t=a.prototype,Ot=mt.prototype,vt=e["__core-js_shared__"],Ct=ft.prototype.toString,Pt=Ot.hasOwnProperty,Mt=0,xt=(n=/[^.]+$/.exec(vt&&vt.keys&&vt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",wt=Ot.toString,Tt=Ct.call(mt),St=Yt._,Nt=ht("^"+Ct.call(Pt).replace(H,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),At=Wt?e.Buffer:void 0,Ft=e.Symbol,Bt=e.Uint8Array,Vt=At?At.allocUnsafe:void 0,Ht=je(mt.getPrototypeOf,mt),Ut=mt.create,Kt=Ot.propertyIsEnumerable,$t=_t.splice,me=Ft?Ft.isConcatSpreadable:void 0,Pe=Ft?Ft.iterator:void 0,Ue=Ft?Ft.toStringTag:void 0,We=function(){try{var t=Jr(mt,"defineProperty");return t({},"",{}),t}catch(e){}}(),Ke=e.clearTimeout!==Yt.clearTimeout&&e.clearTimeout,$e=ut&&ut.now!==Yt.Date.now&&ut.now,Ze=e.setTimeout!==Yt.setTimeout&&e.setTimeout,Je=pt.ceil,Xe=pt.floor,Qe=mt.getOwnPropertySymbols,tn=At?At.isBuffer:void 0,en=e.isFinite,nn=_t.join,an=je(mt.keys,mt),rn=pt.max,on=pt.min,sn=ut.now,cn=e.parseInt,ln=pt.random,dn=_t.reverse,un=Jr(e,"DataView"),gn=Jr(e,"Map"),fn=Jr(e,"Promise"),pn=Jr(e,"Set"),mn=Jr(e,"WeakMap"),hn=Jr(mt,"create"),bn=mn&&new mn,yn={},_n=To(un),On=To(gn),vn=To(fn),Cn=To(pn),Pn=To(mn),Mn=Ft?Ft.prototype:void 0,xn=Mn?Mn.valueOf:void 0,wn=Mn?Mn.toString:void 0;function Tn(t){if(Yi(t)&&!Ai(t)&&!(t instanceof Nn)){if(t instanceof In)return t;if(Pt.call(t,"__wrapped__"))return So(t)}return new In(t)}var Sn=function(){function t(){}return function(e){if(!Vi(e))return{};if(Ut)return Ut(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();function kn(){}function In(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}function Nn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Rn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function An(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function En(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function Dn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new En;++e<n;)this.add(t[e])}function Ln(t){var e=this.__data__=new An(t);this.size=e.size}function qn(t,e){var n=Ai(t),a=!n&&Ri(t),r=!n&&!a&&qi(t),o=!n&&!a&&!r&&Xi(t),i=n||a||r||o,s=i?we(t.length,bt):[],c=s.length;for(var l in t)!e&&!Pt.call(t,l)||i&&("length"==l||r&&("offset"==l||"parent"==l)||o&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||ro(l,c))||s.push(l);return s}function jn(t){var e=t.length;return e?t[Ea(0,e-1)]:void 0}function Fn(t,e){return Co(mr(t),Kn(e,0,t.length))}function zn(t){return Co(mr(t))}function Gn(t,e,n){(void 0===n||ki(t[e],n))&&(void 0!==n||e in t)||Un(t,e,n)}function Bn(t,e,n){var a=t[e];Pt.call(t,e)&&ki(a,n)&&(void 0!==n||e in t)||Un(t,e,n)}function Vn(t,e){for(var n=t.length;n--;)if(ki(t[n][0],e))return n;return-1}function Yn(t,e,n,a){return Qn(t,(function(t,r,o){e(a,t,n(t),o)})),a}function Hn(t,e){return t&&hr(e,Os(e),t)}function Un(t,e,n){"__proto__"==e&&We?We(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function Wn(t,e){for(var n=-1,r=e.length,o=a(r),i=null==t;++n<r;)o[n]=i?void 0:ms(t,e[n]);return o}function Kn(t,e,n){return t==t&&(void 0!==n&&(t=t<=n?t:n),void 0!==e&&(t=t>=e?t:e)),t}function $n(t,e,n,a,r,o){var i,c=1&e,u=2&e,v=4&e;if(n&&(i=r?n(t,a,r,o):n(t)),void 0!==i)return i;if(!Vi(t))return t;var R=Ai(t);if(R){if(i=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Pt.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!c)return mr(t,i)}else{var A=to(t),E=A==g||A==f;if(qi(t))return lr(t,c);if(A==h||A==s||E&&!r){if(i=u||E?{}:no(t),!c)return u?function(t,e){return hr(t,Qr(t),e)}(t,function(t,e){return t&&hr(e,vs(e),t)}(i,t)):function(t,e){return hr(t,Xr(t),e)}(t,Hn(i,t))}else{if(!jt[A])return r?t:{};i=function(t,e,n){var a=t.constructor;switch(e){case C:return dr(t);case l:case d:return new a(+t);case P:return function(t,e){var n=e?dr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case M:case x:case w:case T:case S:case k:case"[object Uint8ClampedArray]":case I:case N:return ur(t,n);case p:return new a;case m:case _:return new a(t);case b:return function(t){var e=new t.constructor(t.source,nt.exec(t));return e.lastIndex=t.lastIndex,e}(t);case y:return new a;case O:return xn?mt(xn.call(t)):{}}}(t,A,c)}}o||(o=new Ln);var D=o.get(t);if(D)return D;o.set(t,i),$i(t)?t.forEach((function(a){i.add($n(a,e,n,a,t,o))})):Hi(t)&&t.forEach((function(a,r){i.set(r,$n(a,e,n,r,t,o))}));var L=R?void 0:(v?u?Yr:Vr:u?vs:Os)(t);return re(L||t,(function(a,r){L&&(a=t[r=a]),Bn(i,r,$n(a,e,n,r,t,o))})),i}function Zn(t,e,n){var a=n.length;if(null==t)return!a;for(t=mt(t);a--;){var r=n[a],o=t[r];if(void 0===o&&!(r in t)||!(0,e[r])(o))return!1}return!0}function Jn(t,e,n){if("function"!=typeof t)throw new yt(r);return yo((function(){t.apply(void 0,n)}),e)}function Xn(t,e,n,a){var r=-1,o=ce,i=!0,s=t.length,c=[],l=e.length;if(!s)return c;n&&(e=de(e,Te(n))),a?(o=le,i=!1):e.length>=200&&(o=ke,i=!1,e=new Dn(e));t:for(;++r<s;){var d=t[r],u=null==n?d:n(d);if(d=a||0!==d?d:0,i&&u==u){for(var g=l;g--;)if(e[g]===u)continue t;c.push(d)}else o(e,u,a)||c.push(d)}return c}Tn.templateSettings={escape:F,evaluate:z,interpolate:G,variable:"",imports:{_:Tn}},(Tn.prototype=kn.prototype).constructor=Tn,(In.prototype=Sn(kn.prototype)).constructor=In,(Nn.prototype=Sn(kn.prototype)).constructor=Nn,Rn.prototype.clear=function(){this.__data__=hn?hn(null):{},this.size=0},Rn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Rn.prototype.get=function(t){var e=this.__data__;if(hn){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return Pt.call(e,t)?e[t]:void 0},Rn.prototype.has=function(t){var e=this.__data__;return hn?void 0!==e[t]:Pt.call(e,t)},Rn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=hn&&void 0===e?"__lodash_hash_undefined__":e,this},An.prototype.clear=function(){this.__data__=[],this.size=0},An.prototype.delete=function(t){var e=this.__data__,n=Vn(e,t);return!(n<0||(n==e.length-1?e.pop():$t.call(e,n,1),--this.size,0))},An.prototype.get=function(t){var e=this.__data__,n=Vn(e,t);return n<0?void 0:e[n][1]},An.prototype.has=function(t){return Vn(this.__data__,t)>-1},An.prototype.set=function(t,e){var n=this.__data__,a=Vn(n,t);return a<0?(++this.size,n.push([t,e])):n[a][1]=e,this},En.prototype.clear=function(){this.size=0,this.__data__={hash:new Rn,map:new(gn||An),string:new Rn}},En.prototype.delete=function(t){var e=$r(this,t).delete(t);return this.size-=e?1:0,e},En.prototype.get=function(t){return $r(this,t).get(t)},En.prototype.has=function(t){return $r(this,t).has(t)},En.prototype.set=function(t,e){var n=$r(this,t),a=n.size;return n.set(t,e),this.size+=n.size==a?0:1,this},Dn.prototype.add=Dn.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Dn.prototype.has=function(t){return this.__data__.has(t)},Ln.prototype.clear=function(){this.__data__=new An,this.size=0},Ln.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},Ln.prototype.get=function(t){return this.__data__.get(t)},Ln.prototype.has=function(t){return this.__data__.has(t)},Ln.prototype.set=function(t,e){var n=this.__data__;if(n instanceof An){var a=n.__data__;if(!gn||a.length<199)return a.push([t,e]),this.size=++n.size,this;n=this.__data__=new En(a)}return n.set(t,e),this.size=n.size,this};var Qn=_r(sa),ta=_r(ca,!0);function ea(t,e){var n=!0;return Qn(t,(function(t,a,r){return n=!!e(t,a,r)})),n}function na(t,e,n){for(var a=-1,r=t.length;++a<r;){var o=t[a],i=e(o);if(null!=i&&(void 0===s?i==i&&!Ji(i):n(i,s)))var s=i,c=o}return c}function aa(t,e){var n=[];return Qn(t,(function(t,a,r){e(t,a,r)&&n.push(t)})),n}function ra(t,e,n,a,r){var o=-1,i=t.length;for(n||(n=ao),r||(r=[]);++o<i;){var s=t[o];e>0&&n(s)?e>1?ra(s,e-1,n,a,r):ue(r,s):a||(r[r.length]=s)}return r}var oa=Or(),ia=Or(!0);function sa(t,e){return t&&oa(t,e,Os)}function ca(t,e){return t&&ia(t,e,Os)}function la(t,e){return se(e,(function(e){return zi(t[e])}))}function da(t,e){for(var n=0,a=(e=or(e,t)).length;null!=t&&n<a;)t=t[wo(e[n++])];return n&&n==a?t:void 0}function ua(t,e,n){var a=e(t);return Ai(t)?a:ue(a,n(t))}function ga(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Ue&&Ue in mt(t)?function(t){var e=Pt.call(t,Ue),n=t[Ue];try{t[Ue]=void 0;var a=!0}catch(o){}var r=wt.call(t);return a&&(e?t[Ue]=n:delete t[Ue]),r}(t):function(t){return wt.call(t)}(t)}function fa(t,e){return t>e}function pa(t,e){return null!=t&&Pt.call(t,e)}function ma(t,e){return null!=t&&e in mt(t)}function ha(t,e,n){for(var r=n?le:ce,o=t[0].length,i=t.length,s=i,c=a(i),l=1/0,d=[];s--;){var u=t[s];s&&e&&(u=de(u,Te(e))),l=on(u.length,l),c[s]=!n&&(e||o>=120&&u.length>=120)?new Dn(s&&u):void 0}u=t[0];var g=-1,f=c[0];t:for(;++g<o&&d.length<l;){var p=u[g],m=e?e(p):p;if(p=n||0!==p?p:0,!(f?ke(f,m):r(d,m,n))){for(s=i;--s;){var h=c[s];if(!(h?ke(h,m):r(t[s],m,n)))continue t}f&&f.push(m),d.push(p)}}return d}function ba(t,e,n){var a=null==(t=po(t,e=or(e,t)))?t:t[wo(Fo(e))];return null==a?void 0:ne(a,t,n)}function ya(t){return Yi(t)&&ga(t)==s}function _a(t,e,n,a,r){return t===e||(null==t||null==e||!Yi(t)&&!Yi(e)?t!=t&&e!=e:function(t,e,n,a,r,o){var i=Ai(t),g=Ai(e),f=i?c:to(t),v=g?c:to(e),M=(f=f==s?h:f)==h,x=(v=v==s?h:v)==h,w=f==v;if(w&&qi(t)){if(!qi(e))return!1;i=!0,M=!1}if(w&&!M)return o||(o=new Ln),i||Xi(t)?Gr(t,e,n,a,r,o):function(t,e,n,a,r,o,i){switch(n){case P:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case C:return!(t.byteLength!=e.byteLength||!o(new Bt(t),new Bt(e)));case l:case d:case m:return ki(+t,+e);case u:return t.name==e.name&&t.message==e.message;case b:case _:return t==e+"";case p:var s=qe;case y:if(s||(s=ze),t.size!=e.size&&!(1&a))return!1;var c=i.get(t);if(c)return c==e;a|=2,i.set(t,e);var g=Gr(s(t),s(e),a,r,o,i);return i.delete(t),g;case O:if(xn)return xn.call(t)==xn.call(e)}return!1}(t,e,f,n,a,r,o);if(!(1&n)){var T=M&&Pt.call(t,"__wrapped__"),S=x&&Pt.call(e,"__wrapped__");if(T||S){var k=T?t.value():t,I=S?e.value():e;return o||(o=new Ln),r(k,I,n,a,o)}}return!!w&&(o||(o=new Ln),function(t,e,n,a,r,o){var i=1&n,s=Vr(t),c=s.length;if(c!=Vr(e).length&&!i)return!1;for(var l=c;l--;){var d=s[l];if(!(i?d in e:Pt.call(e,d)))return!1}var u=o.get(t);if(u&&o.get(e))return u==e;var g=!0;o.set(t,e),o.set(e,t);for(var f=i;++l<c;){var p=t[d=s[l]],m=e[d];if(a)var h=i?a(m,p,d,e,t,o):a(p,m,d,t,e,o);if(!(void 0===h?p===m||r(p,m,n,a,o):h)){g=!1;break}f||(f="constructor"==d)}if(g&&!f){var b=t.constructor,y=e.constructor;b!=y&&"constructor"in t&&"constructor"in e&&!("function"==typeof b&&b instanceof b&&"function"==typeof y&&y instanceof y)&&(g=!1)}return o.delete(t),o.delete(e),g}(t,e,n,a,r,o))}(t,e,n,a,_a,r))}function Oa(t,e,n,a){var r=n.length,o=r,i=!a;if(null==t)return!o;for(t=mt(t);r--;){var s=n[r];if(i&&s[2]?s[1]!==t[s[0]]:!(s[0]in t))return!1}for(;++r<o;){var c=(s=n[r])[0],l=t[c],d=s[1];if(i&&s[2]){if(void 0===l&&!(c in t))return!1}else{var u=new Ln;if(a)var g=a(l,d,c,t,e,u);if(!(void 0===g?_a(d,l,3,a,u):g))return!1}}return!0}function va(t){return!(!Vi(t)||(e=t,xt&&xt in e))&&(zi(t)?Nt:ot).test(To(t));var e}function Ca(t){return"function"==typeof t?t:null==t?Us:"object"==typeof t?Ai(t)?Ta(t[0],t[1]):wa(t):ec(t)}function Pa(t){if(!lo(t))return an(t);var e=[];for(var n in mt(t))Pt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Ma(t,e){return t<e}function xa(t,e){var n=-1,r=Di(t)?a(t.length):[];return Qn(t,(function(t,a,o){r[++n]=e(t,a,o)})),r}function wa(t){var e=Zr(t);return 1==e.length&&e[0][2]?go(e[0][0],e[0][1]):function(n){return n===t||Oa(n,t,e)}}function Ta(t,e){return io(t)&&uo(e)?go(wo(t),e):function(n){var a=ms(n,t);return void 0===a&&a===e?hs(n,t):_a(e,a,3)}}function Sa(t,e,n,a,r){t!==e&&oa(e,(function(o,i){if(r||(r=new Ln),Vi(o))!function(t,e,n,a,r,o,i){var s=ho(t,n),c=ho(e,n),l=i.get(c);if(l)Gn(t,n,l);else{var d=o?o(s,c,n+"",t,e,i):void 0,u=void 0===d;if(u){var g=Ai(c),f=!g&&qi(c),p=!g&&!f&&Xi(c);d=c,g||f||p?Ai(s)?d=s:Li(s)?d=mr(s):f?(u=!1,d=lr(c,!0)):p?(u=!1,d=ur(c,!0)):d=[]:Wi(c)||Ri(c)?(d=s,Ri(s)?d=is(s):Vi(s)&&!zi(s)||(d=no(c))):u=!1}u&&(i.set(c,d),r(d,c,a,o,i),i.delete(c)),Gn(t,n,d)}}(t,e,i,n,Sa,a,r);else{var s=a?a(ho(t,i),o,i+"",t,e,r):void 0;void 0===s&&(s=o),Gn(t,i,s)}}),vs)}function ka(t,e){var n=t.length;if(n)return ro(e+=e<0?n:0,n)?t[e]:void 0}function Ia(t,e,n){var a=-1;return e=de(e.length?e:[Us],Te(Kr())),function(t,e){var a=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var a=-1,r=t.criteria,o=e.criteria,i=r.length,s=n.length;++a<i;){var c=gr(r[a],o[a]);if(c)return a>=s?c:c*("desc"==n[a]?-1:1)}return t.index-e.index}(t,e,n)}));a--;)t[a]=t[a].value;return t}(xa(t,(function(t,n,r){return{criteria:de(e,(function(e){return e(t)})),index:++a,value:t}})))}function Na(t,e,n){for(var a=-1,r=e.length,o={};++a<r;){var i=e[a],s=da(t,i);n(s,i)&&Fa(o,or(i,t),s)}return o}function Ra(t,e,n,a){var r=a?_e:ye,o=-1,i=e.length,s=t;for(t===e&&(e=mr(e)),n&&(s=de(t,Te(n)));++o<i;)for(var c=0,l=e[o],d=n?n(l):l;(c=r(s,d,c,a))>-1;)s!==t&&$t.call(s,c,1),$t.call(t,c,1);return t}function Aa(t,e){for(var n=t?e.length:0,a=n-1;n--;){var r=e[n];if(n==a||r!==o){var o=r;ro(r)?$t.call(t,r,1):Ja(t,r)}}return t}function Ea(t,e){return t+Xe(ln()*(e-t+1))}function Da(t,e){var n="";if(!t||e<1||e>9007199254740991)return n;do{e%2&&(n+=t),(e=Xe(e/2))&&(t+=t)}while(e);return n}function La(t,e){return _o(fo(t,e,Us),t+"")}function qa(t){return jn(ks(t))}function ja(t,e){var n=ks(t);return Co(n,Kn(e,0,n.length))}function Fa(t,e,n,a){if(!Vi(t))return t;for(var r=-1,o=(e=or(e,t)).length,i=o-1,s=t;null!=s&&++r<o;){var c=wo(e[r]),l=n;if(r!=i){var d=s[c];void 0===(l=a?a(d,c,s):void 0)&&(l=Vi(d)?d:ro(e[r+1])?[]:{})}Bn(s,c,l),s=s[c]}return t}var za=bn?function(t,e){return bn.set(t,e),t}:Us,Ga=We?function(t,e){return We(t,"toString",{configurable:!0,enumerable:!1,value:Vs(e),writable:!0})}:Us;function Ba(t){return Co(ks(t))}function Va(t,e,n){var r=-1,o=t.length;e<0&&(e=-e>o?0:o+e),(n=n>o?o:n)<0&&(n+=o),o=e>n?0:n-e>>>0,e>>>=0;for(var i=a(o);++r<o;)i[r]=t[r+e];return i}function Ya(t,e){var n;return Qn(t,(function(t,a,r){return!(n=e(t,a,r))})),!!n}function Ha(t,e,n){var a=0,r=null==t?a:t.length;if("number"==typeof e&&e==e&&r<=2147483647){for(;a<r;){var o=a+r>>>1,i=t[o];null!==i&&!Ji(i)&&(n?i<=e:i<e)?a=o+1:r=o}return r}return Ua(t,e,Us,n)}function Ua(t,e,n,a){e=n(e);for(var r=0,o=null==t?0:t.length,i=e!=e,s=null===e,c=Ji(e),l=void 0===e;r<o;){var d=Xe((r+o)/2),u=n(t[d]),g=void 0!==u,f=null===u,p=u==u,m=Ji(u);if(i)var h=a||p;else h=l?p&&(a||g):s?p&&g&&(a||!f):c?p&&g&&!f&&(a||!m):!f&&!m&&(a?u<=e:u<e);h?r=d+1:o=d}return on(o,4294967294)}function Wa(t,e){for(var n=-1,a=t.length,r=0,o=[];++n<a;){var i=t[n],s=e?e(i):i;if(!n||!ki(s,c)){var c=s;o[r++]=0===i?0:i}}return o}function Ka(t){return"number"==typeof t?t:Ji(t)?NaN:+t}function $a(t){if("string"==typeof t)return t;if(Ai(t))return de(t,$a)+"";if(Ji(t))return wn?wn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Za(t,e,n){var a=-1,r=ce,o=t.length,i=!0,s=[],c=s;if(n)i=!1,r=le;else if(o>=200){var l=e?null:Dr(t);if(l)return ze(l);i=!1,r=ke,c=new Dn}else c=e?[]:s;t:for(;++a<o;){var d=t[a],u=e?e(d):d;if(d=n||0!==d?d:0,i&&u==u){for(var g=c.length;g--;)if(c[g]===u)continue t;e&&c.push(u),s.push(d)}else r(c,u,n)||(c!==s&&c.push(u),s.push(d))}return s}function Ja(t,e){return null==(t=po(t,e=or(e,t)))||delete t[wo(Fo(e))]}function Xa(t,e,n,a){return Fa(t,e,n(da(t,e)),a)}function Qa(t,e,n,a){for(var r=t.length,o=a?r:-1;(a?o--:++o<r)&&e(t[o],o,t););return n?Va(t,a?0:o,a?o+1:r):Va(t,a?o+1:0,a?r:o)}function tr(t,e){var n=t;return n instanceof Nn&&(n=n.value()),ge(e,(function(t,e){return e.func.apply(e.thisArg,ue([t],e.args))}),n)}function er(t,e,n){var r=t.length;if(r<2)return r?Za(t[0]):[];for(var o=-1,i=a(r);++o<r;)for(var s=t[o],c=-1;++c<r;)c!=o&&(i[o]=Xn(i[o]||s,t[c],e,n));return Za(ra(i,1),e,n)}function nr(t,e,n){for(var a=-1,r=t.length,o=e.length,i={};++a<r;)n(i,t[a],a<o?e[a]:void 0);return i}function ar(t){return Li(t)?t:[]}function rr(t){return"function"==typeof t?t:Us}function or(t,e){return Ai(t)?t:io(t,e)?[t]:xo(ss(t))}var ir=La;function sr(t,e,n){var a=t.length;return n=void 0===n?a:n,!e&&n>=a?t:Va(t,e,n)}var cr=Ke||function(t){return Yt.clearTimeout(t)};function lr(t,e){if(e)return t.slice();var n=t.length,a=Vt?Vt(n):new t.constructor(n);return t.copy(a),a}function dr(t){var e=new t.constructor(t.byteLength);return new Bt(e).set(new Bt(t)),e}function ur(t,e){var n=e?dr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function gr(t,e){if(t!==e){var n=void 0!==t,a=null===t,r=t==t,o=Ji(t),i=void 0!==e,s=null===e,c=e==e,l=Ji(e);if(!s&&!l&&!o&&t>e||o&&i&&c&&!s&&!l||a&&i&&c||!n&&c||!r)return 1;if(!a&&!o&&!l&&t<e||l&&n&&r&&!a&&!o||s&&n&&r||!i&&r||!c)return-1}return 0}function fr(t,e,n,r){for(var o=-1,i=t.length,s=n.length,c=-1,l=e.length,d=rn(i-s,0),u=a(l+d),g=!r;++c<l;)u[c]=e[c];for(;++o<s;)(g||o<i)&&(u[n[o]]=t[o]);for(;d--;)u[c++]=t[o++];return u}function pr(t,e,n,r){for(var o=-1,i=t.length,s=-1,c=n.length,l=-1,d=e.length,u=rn(i-c,0),g=a(u+d),f=!r;++o<u;)g[o]=t[o];for(var p=o;++l<d;)g[p+l]=e[l];for(;++s<c;)(f||o<i)&&(g[p+n[s]]=t[o++]);return g}function mr(t,e){var n=-1,r=t.length;for(e||(e=a(r));++n<r;)e[n]=t[n];return e}function hr(t,e,n,a){var r=!n;n||(n={});for(var o=-1,i=e.length;++o<i;){var s=e[o],c=a?a(n[s],t[s],s,n,t):void 0;void 0===c&&(c=t[s]),r?Un(n,s,c):Bn(n,s,c)}return n}function br(t,e){return function(n,a){var r=Ai(n)?ae:Yn,o=e?e():{};return r(n,t,Kr(a,2),o)}}function yr(t){return La((function(e,n){var a=-1,r=n.length,o=r>1?n[r-1]:void 0,i=r>2?n[2]:void 0;for(o=t.length>3&&"function"==typeof o?(r--,o):void 0,i&&oo(n[0],n[1],i)&&(o=r<3?void 0:o,r=1),e=mt(e);++a<r;){var s=n[a];s&&t(e,s,a,o)}return e}))}function _r(t,e){return function(n,a){if(null==n)return n;if(!Di(n))return t(n,a);for(var r=n.length,o=e?r:-1,i=mt(n);(e?o--:++o<r)&&!1!==a(i[o],o,i););return n}}function Or(t){return function(e,n,a){for(var r=-1,o=mt(e),i=a(e),s=i.length;s--;){var c=i[t?s:++r];if(!1===n(o[c],c,o))break}return e}}function vr(t){return function(e){var n=Le(e=ss(e))?Ve(e):void 0,a=n?n[0]:e.charAt(0),r=n?sr(n,1).join(""):e.slice(1);return a[t]()+r}}function Cr(t){return function(e){return ge(zs(Rs(e).replace(kt,"")),t,"")}}function Pr(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=Sn(t.prototype),a=t.apply(n,e);return Vi(a)?a:n}}function Mr(t){return function(e,n,a){var r=mt(e);if(!Di(e)){var o=Kr(n,3);e=Os(e),n=function(t){return o(r[t],t,r)}}var i=t(e,n,a);return i>-1?r[o?e[i]:i]:void 0}}function xr(t){return Br((function(e){var n=e.length,a=n,o=In.prototype.thru;for(t&&e.reverse();a--;){var i=e[a];if("function"!=typeof i)throw new yt(r);if(o&&!s&&"wrapper"==Ur(i))var s=new In([],!0)}for(a=s?a:n;++a<n;){var c=Ur(i=e[a]),l="wrapper"==c?Hr(i):void 0;s=l&&so(l[0])&&424==l[1]&&!l[4].length&&1==l[9]?s[Ur(l[0])].apply(s,l[3]):1==i.length&&so(i)?s[c]():s.thru(i)}return function(){var t=arguments,a=t[0];if(s&&1==t.length&&Ai(a))return s.plant(a).value();for(var r=0,o=n?e[r].apply(this,t):a;++r<n;)o=e[r].call(this,o);return o}}))}function wr(t,e,n,r,o,i,s,c,l,d){var u=128&e,g=1&e,f=2&e,p=24&e,m=512&e,h=f?void 0:Pr(t);return function b(){for(var y=arguments.length,_=a(y),O=y;O--;)_[O]=arguments[O];if(p)var v=Wr(b),C=Re(_,v);if(r&&(_=fr(_,r,o,p)),i&&(_=pr(_,i,s,p)),y-=C,p&&y<d){var P=Fe(_,v);return Ar(t,e,wr,b.placeholder,n,_,P,c,l,d-y)}var M=g?n:this,x=f?M[t]:t;return y=_.length,c?_=mo(_,c):m&&y>1&&_.reverse(),u&&l<y&&(_.length=l),this&&this!==Yt&&this instanceof b&&(x=h||Pr(x)),x.apply(M,_)}}function Tr(t,e){return function(n,a){return function(t,e,n,a){return sa(t,(function(t,r,o){e(a,n(t),r,o)})),a}(n,t,e(a),{})}}function Sr(t,e){return function(n,a){var r;if(void 0===n&&void 0===a)return e;if(void 0!==n&&(r=n),void 0!==a){if(void 0===r)return a;"string"==typeof n||"string"==typeof a?(n=$a(n),a=$a(a)):(n=Ka(n),a=Ka(a)),r=t(n,a)}return r}}function kr(t){return Br((function(e){return e=de(e,Te(Kr())),La((function(n){var a=this;return t(e,(function(t){return ne(t,a,n)}))}))}))}function Ir(t,e){var n=(e=void 0===e?" ":$a(e)).length;if(n<2)return n?Da(e,t):e;var a=Da(e,Je(t/Be(e)));return Le(e)?sr(Ve(a),0,t).join(""):a.slice(0,t)}function Nr(t){return function(e,n,r){return r&&"number"!=typeof r&&oo(e,n,r)&&(n=r=void 0),e=ns(e),void 0===n?(n=e,e=0):n=ns(n),function(t,e,n,r){for(var o=-1,i=rn(Je((e-t)/(n||1)),0),s=a(i);i--;)s[r?i:++o]=t,t+=n;return s}(e,n,r=void 0===r?e<n?1:-1:ns(r),t)}}function Rr(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=os(e),n=os(n)),t(e,n)}}function Ar(t,e,n,a,r,o,i,s,c,l){var d=8&e;e|=d?32:64,4&(e&=~(d?64:32))||(e&=-4);var u=[t,e,r,d?o:void 0,d?i:void 0,d?void 0:o,d?void 0:i,s,c,l],g=n.apply(void 0,u);return so(t)&&bo(g,u),g.placeholder=a,Oo(g,t,e)}function Er(t){var e=pt[t];return function(t,n){if(t=os(t),(n=null==n?0:on(as(n),292))&&en(t)){var a=(ss(t)+"e").split("e");return+((a=(ss(e(a[0]+"e"+(+a[1]+n)))+"e").split("e"))[0]+"e"+(+a[1]-n))}return e(t)}}var Dr=pn&&1/ze(new pn([,-0]))[1]==1/0?function(t){return new pn(t)}:Js;function Lr(t){return function(e){var n=to(e);return n==p?qe(e):n==y?Ge(e):function(t,e){return de(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function qr(t,e,n,i,s,c,l,d){var u=2&e;if(!u&&"function"!=typeof t)throw new yt(r);var g=i?i.length:0;if(g||(e&=-97,i=s=void 0),l=void 0===l?l:rn(as(l),0),d=void 0===d?d:as(d),g-=s?s.length:0,64&e){var f=i,p=s;i=s=void 0}var m=u?void 0:Hr(t),h=[t,e,n,i,s,f,p,c,l,d];if(m&&function(t,e){var n=t[1],a=e[1],r=n|a;if(!(r<131||128==a&&8==n||128==a&&256==n&&t[7].length<=e[8]||384==a&&e[7].length<=e[8]&&8==n))return t;1&a&&(t[2]=e[2],r|=1&n?0:4);var i=e[3];if(i){var s=t[3];t[3]=s?fr(s,i,e[4]):i,t[4]=s?Fe(t[3],o):e[4]}(i=e[5])&&(t[5]=(s=t[5])?pr(s,i,e[6]):i,t[6]=s?Fe(t[5],o):e[6]),(i=e[7])&&(t[7]=i),128&a&&(t[8]=null==t[8]?e[8]:on(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=r}(h,m),t=h[0],e=h[1],n=h[2],i=h[3],s=h[4],!(d=h[9]=void 0===h[9]?u?0:t.length:rn(h[9]-g,0))&&24&e&&(e&=-25),e&&1!=e)b=8==e||16==e?function(t,e,n){var r=Pr(t);return function o(){for(var i=arguments.length,s=a(i),c=i,l=Wr(o);c--;)s[c]=arguments[c];var d=i<3&&s[0]!==l&&s[i-1]!==l?[]:Fe(s,l);if((i-=d.length)<n)return Ar(t,e,wr,o.placeholder,void 0,s,d,void 0,void 0,n-i);var u=this&&this!==Yt&&this instanceof o?r:t;return ne(u,this,s)}}(t,e,d):32!=e&&33!=e||s.length?wr.apply(void 0,h):function(t,e,n,r){var o=1&e,i=Pr(t);return function e(){for(var s=-1,c=arguments.length,l=-1,d=r.length,u=a(d+c),g=this&&this!==Yt&&this instanceof e?i:t;++l<d;)u[l]=r[l];for(;c--;)u[l++]=arguments[++s];return ne(g,o?n:this,u)}}(t,e,n,i);else var b=function(t,e,n){var a=1&e,r=Pr(t);return function e(){var o=this&&this!==Yt&&this instanceof e?r:t;return o.apply(a?n:this,arguments)}}(t,e,n);return Oo((m?za:bo)(b,h),t,e)}function jr(t,e,n,a){return void 0===t||ki(t,Ot[n])&&!Pt.call(a,n)?e:t}function Fr(t,e,n,a,r,o){return Vi(t)&&Vi(e)&&(o.set(e,t),Sa(t,e,void 0,Fr,o),o.delete(e)),t}function zr(t){return Wi(t)?void 0:t}function Gr(t,e,n,a,r,o){var i=1&n,s=t.length,c=e.length;if(s!=c&&!(i&&c>s))return!1;var l=o.get(t);if(l&&o.get(e))return l==e;var d=-1,u=!0,g=2&n?new Dn:void 0;for(o.set(t,e),o.set(e,t);++d<s;){var f=t[d],p=e[d];if(a)var m=i?a(p,f,d,e,t,o):a(f,p,d,t,e,o);if(void 0!==m){if(m)continue;u=!1;break}if(g){if(!pe(e,(function(t,e){if(!ke(g,e)&&(f===t||r(f,t,n,a,o)))return g.push(e)}))){u=!1;break}}else if(f!==p&&!r(f,p,n,a,o)){u=!1;break}}return o.delete(t),o.delete(e),u}function Br(t){return _o(fo(t,void 0,Eo),t+"")}function Vr(t){return ua(t,Os,Xr)}function Yr(t){return ua(t,vs,Qr)}var Hr=bn?function(t){return bn.get(t)}:Js;function Ur(t){for(var e=t.name+"",n=yn[e],a=Pt.call(yn,e)?n.length:0;a--;){var r=n[a],o=r.func;if(null==o||o==t)return r.name}return e}function Wr(t){return(Pt.call(Tn,"placeholder")?Tn:t).placeholder}function Kr(){var t=Tn.iteratee||Ws;return t=t===Ws?Ca:t,arguments.length?t(arguments[0],arguments[1]):t}function $r(t,e){var n,a,r=t.__data__;return("string"==(a=typeof(n=e))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof e?"string":"hash"]:r.map}function Zr(t){for(var e=Os(t),n=e.length;n--;){var a=e[n],r=t[a];e[n]=[a,r,uo(r)]}return e}function Jr(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return va(n)?n:void 0}var Xr=Qe?function(t){return null==t?[]:(t=mt(t),se(Qe(t),(function(e){return Kt.call(t,e)})))}:rc,Qr=Qe?function(t){for(var e=[];t;)ue(e,Xr(t)),t=Ht(t);return e}:rc,to=ga;function eo(t,e,n){for(var a=-1,r=(e=or(e,t)).length,o=!1;++a<r;){var i=wo(e[a]);if(!(o=null!=t&&n(t,i)))break;t=t[i]}return o||++a!=r?o:!!(r=null==t?0:t.length)&&Bi(r)&&ro(i,r)&&(Ai(t)||Ri(t))}function no(t){return"function"!=typeof t.constructor||lo(t)?{}:Sn(Ht(t))}function ao(t){return Ai(t)||Ri(t)||!!(me&&t&&t[me])}function ro(t,e){var n=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==n||"symbol"!=n&&st.test(t))&&t>-1&&t%1==0&&t<e}function oo(t,e,n){if(!Vi(n))return!1;var a=typeof e;return!!("number"==a?Di(n)&&ro(e,n.length):"string"==a&&e in n)&&ki(n[e],t)}function io(t,e){if(Ai(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!Ji(t))||V.test(t)||!B.test(t)||null!=e&&t in mt(e)}function so(t){var e=Ur(t),n=Tn[e];if("function"!=typeof n||!(e in Nn.prototype))return!1;if(t===n)return!0;var a=Hr(n);return!!a&&t===a[0]}(un&&to(new un(new ArrayBuffer(1)))!=P||gn&&to(new gn)!=p||fn&&"[object Promise]"!=to(fn.resolve())||pn&&to(new pn)!=y||mn&&to(new mn)!=v)&&(to=function(t){var e=ga(t),n=e==h?t.constructor:void 0,a=n?To(n):"";if(a)switch(a){case _n:return P;case On:return p;case vn:return"[object Promise]";case Cn:return y;case Pn:return v}return e});var co=vt?zi:oc;function lo(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function uo(t){return t==t&&!Vi(t)}function go(t,e){return function(n){return null!=n&&n[t]===e&&(void 0!==e||t in mt(n))}}function fo(t,e,n){return e=rn(void 0===e?t.length-1:e,0),function(){for(var r=arguments,o=-1,i=rn(r.length-e,0),s=a(i);++o<i;)s[o]=r[e+o];o=-1;for(var c=a(e+1);++o<e;)c[o]=r[o];return c[e]=n(s),ne(t,this,c)}}function po(t,e){return e.length<2?t:da(t,Va(e,0,-1))}function mo(t,e){for(var n=t.length,a=on(e.length,n),r=mr(t);a--;){var o=e[a];t[a]=ro(o,n)?r[o]:void 0}return t}function ho(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var bo=vo(za),yo=Ze||function(t,e){return Yt.setTimeout(t,e)},_o=vo(Ga);function Oo(t,e,n){var a=e+"";return _o(t,function(t,e){var n=e.length;if(!n)return t;var a=n-1;return e[a]=(n>1?"& ":"")+e[a],e=e.join(n>2?", ":" "),t.replace(Z,"{\n/* [wrapped with "+e+"] */\n")}(a,function(t,e){return re(i,(function(n){var a="_."+n[0];e&n[1]&&!ce(t,a)&&t.push(a)})),t.sort()}(function(t){var e=t.match(J);return e?e[1].split(X):[]}(a),n)))}function vo(t){var e=0,n=0;return function(){var a=sn(),r=16-(a-n);if(n=a,r>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Co(t,e){var n=-1,a=t.length,r=a-1;for(e=void 0===e?a:e;++n<e;){var o=Ea(n,r),i=t[o];t[o]=t[n],t[n]=i}return t.length=e,t}var Po,Mo,xo=(Po=Pi((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(Y,(function(t,n,a,r){e.push(a?r.replace(tt,"$1"):n||t)})),e}),(function(t){return 500===Mo.size&&Mo.clear(),t})),Mo=Po.cache,Po);function wo(t){if("string"==typeof t||Ji(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function To(t){if(null!=t){try{return Ct.call(t)}catch(e){}try{return t+""}catch(e){}}return""}function So(t){if(t instanceof Nn)return t.clone();var e=new In(t.__wrapped__,t.__chain__);return e.__actions__=mr(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var ko=La((function(t,e){return Li(t)?Xn(t,ra(e,1,Li,!0)):[]})),Io=La((function(t,e){var n=Fo(e);return Li(n)&&(n=void 0),Li(t)?Xn(t,ra(e,1,Li,!0),Kr(n,2)):[]})),No=La((function(t,e){var n=Fo(e);return Li(n)&&(n=void 0),Li(t)?Xn(t,ra(e,1,Li,!0),void 0,n):[]}));function Ro(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:as(n);return r<0&&(r=rn(a+r,0)),be(t,Kr(e,3),r)}function Ao(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=a-1;return void 0!==n&&(r=as(n),r=n<0?rn(a+r,0):on(r,a-1)),be(t,Kr(e,3),r,!0)}function Eo(t){return null!=t&&t.length?ra(t,1):[]}function Do(t){return t&&t.length?t[0]:void 0}var Lo=La((function(t){var e=de(t,ar);return e.length&&e[0]===t[0]?ha(e):[]})),qo=La((function(t){var e=Fo(t),n=de(t,ar);return e===Fo(n)?e=void 0:n.pop(),n.length&&n[0]===t[0]?ha(n,Kr(e,2)):[]})),jo=La((function(t){var e=Fo(t),n=de(t,ar);return(e="function"==typeof e?e:void 0)&&n.pop(),n.length&&n[0]===t[0]?ha(n,void 0,e):[]}));function Fo(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}var zo=La(Go);function Go(t,e){return t&&t.length&&e&&e.length?Ra(t,e):t}var Bo=Br((function(t,e){var n=null==t?0:t.length,a=Wn(t,e);return Aa(t,de(e,(function(t){return ro(t,n)?+t:t})).sort(gr)),a}));function Vo(t){return null==t?t:dn.call(t)}var Yo=La((function(t){return Za(ra(t,1,Li,!0))})),Ho=La((function(t){var e=Fo(t);return Li(e)&&(e=void 0),Za(ra(t,1,Li,!0),Kr(e,2))})),Uo=La((function(t){var e=Fo(t);return e="function"==typeof e?e:void 0,Za(ra(t,1,Li,!0),void 0,e)}));function Wo(t){if(!t||!t.length)return[];var e=0;return t=se(t,(function(t){if(Li(t))return e=rn(t.length,e),!0})),we(e,(function(e){return de(t,Ce(e))}))}function Ko(t,e){if(!t||!t.length)return[];var n=Wo(t);return null==e?n:de(n,(function(t){return ne(e,void 0,t)}))}var $o=La((function(t,e){return Li(t)?Xn(t,e):[]})),Zo=La((function(t){return er(se(t,Li))})),Jo=La((function(t){var e=Fo(t);return Li(e)&&(e=void 0),er(se(t,Li),Kr(e,2))})),Xo=La((function(t){var e=Fo(t);return e="function"==typeof e?e:void 0,er(se(t,Li),void 0,e)})),Qo=La(Wo),ti=La((function(t){var e=t.length,n=e>1?t[e-1]:void 0;return n="function"==typeof n?(t.pop(),n):void 0,Ko(t,n)}));function ei(t){var e=Tn(t);return e.__chain__=!0,e}function ni(t,e){return e(t)}var ai=Br((function(t){var e=t.length,n=e?t[0]:0,a=this.__wrapped__,r=function(e){return Wn(e,t)};return!(e>1||this.__actions__.length)&&a instanceof Nn&&ro(n)?((a=a.slice(n,+n+(e?1:0))).__actions__.push({func:ni,args:[r],thisArg:void 0}),new In(a,this.__chain__).thru((function(t){return e&&!t.length&&t.push(void 0),t}))):this.thru(r)})),ri=br((function(t,e,n){Pt.call(t,n)?++t[n]:Un(t,n,1)})),oi=Mr(Ro),ii=Mr(Ao);function si(t,e){return(Ai(t)?re:Qn)(t,Kr(e,3))}function ci(t,e){return(Ai(t)?oe:ta)(t,Kr(e,3))}var li=br((function(t,e,n){Pt.call(t,n)?t[n].push(e):Un(t,n,[e])})),di=La((function(t,e,n){var r=-1,o="function"==typeof e,i=Di(t)?a(t.length):[];return Qn(t,(function(t){i[++r]=o?ne(e,t,n):ba(t,e,n)})),i})),ui=br((function(t,e,n){Un(t,n,e)}));function gi(t,e){return(Ai(t)?de:xa)(t,Kr(e,3))}var fi=br((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),pi=La((function(t,e){if(null==t)return[];var n=e.length;return n>1&&oo(t,e[0],e[1])?e=[]:n>2&&oo(e[0],e[1],e[2])&&(e=[e[0]]),Ia(t,ra(e,1),[])})),mi=$e||function(){return Yt.Date.now()};function hi(t,e,n){return e=n?void 0:e,qr(t,128,void 0,void 0,void 0,void 0,e=t&&null==e?t.length:e)}function bi(t,e){var n;if("function"!=typeof e)throw new yt(r);return t=as(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=void 0),n}}var yi=La((function(t,e,n){var a=1;if(n.length){var r=Fe(n,Wr(yi));a|=32}return qr(t,a,e,n,r)})),_i=La((function(t,e,n){var a=3;if(n.length){var r=Fe(n,Wr(_i));a|=32}return qr(e,a,t,n,r)}));function Oi(t,e,n){var a,o,i,s,c,l,d=0,u=!1,g=!1,f=!0;if("function"!=typeof t)throw new yt(r);function p(e){var n=a,r=o;return a=o=void 0,d=e,s=t.apply(r,n)}function m(t){return d=t,c=yo(b,e),u?p(t):s}function h(t){var n=t-l;return void 0===l||n>=e||n<0||g&&t-d>=i}function b(){var t=mi();if(h(t))return y(t);c=yo(b,function(t){var n=e-(t-l);return g?on(n,i-(t-d)):n}(t))}function y(t){return c=void 0,f&&a?p(t):(a=o=void 0,s)}function _(){var t=mi(),n=h(t);if(a=arguments,o=this,l=t,n){if(void 0===c)return m(l);if(g)return cr(c),c=yo(b,e),p(l)}return void 0===c&&(c=yo(b,e)),s}return e=os(e)||0,Vi(n)&&(u=!!n.leading,i=(g="maxWait"in n)?rn(os(n.maxWait)||0,e):i,f="trailing"in n?!!n.trailing:f),_.cancel=function(){void 0!==c&&cr(c),d=0,a=l=o=c=void 0},_.flush=function(){return void 0===c?s:y(mi())},_}var vi=La((function(t,e){return Jn(t,1,e)})),Ci=La((function(t,e,n){return Jn(t,os(e)||0,n)}));function Pi(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new yt(r);var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=t.apply(this,a);return n.cache=o.set(r,i)||o,i};return n.cache=new(Pi.Cache||En),n}function Mi(t){if("function"!=typeof t)throw new yt(r);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Pi.Cache=En;var xi=ir((function(t,e){var n=(e=1==e.length&&Ai(e[0])?de(e[0],Te(Kr())):de(ra(e,1),Te(Kr()))).length;return La((function(a){for(var r=-1,o=on(a.length,n);++r<o;)a[r]=e[r].call(this,a[r]);return ne(t,this,a)}))})),wi=La((function(t,e){return qr(t,32,void 0,e,Fe(e,Wr(wi)))})),Ti=La((function(t,e){return qr(t,64,void 0,e,Fe(e,Wr(Ti)))})),Si=Br((function(t,e){return qr(t,256,void 0,void 0,void 0,e)}));function ki(t,e){return t===e||t!=t&&e!=e}var Ii=Rr(fa),Ni=Rr((function(t,e){return t>=e})),Ri=ya(function(){return arguments}())?ya:function(t){return Yi(t)&&Pt.call(t,"callee")&&!Kt.call(t,"callee")},Ai=a.isArray,Ei=Zt?Te(Zt):function(t){return Yi(t)&&ga(t)==C};function Di(t){return null!=t&&Bi(t.length)&&!zi(t)}function Li(t){return Yi(t)&&Di(t)}var qi=tn||oc,ji=Jt?Te(Jt):function(t){return Yi(t)&&ga(t)==d};function Fi(t){if(!Yi(t))return!1;var e=ga(t);return e==u||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!Wi(t)}function zi(t){if(!Vi(t))return!1;var e=ga(t);return e==g||e==f||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Gi(t){return"number"==typeof t&&t==as(t)}function Bi(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}function Vi(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function Yi(t){return null!=t&&"object"==typeof t}var Hi=Xt?Te(Xt):function(t){return Yi(t)&&to(t)==p};function Ui(t){return"number"==typeof t||Yi(t)&&ga(t)==m}function Wi(t){if(!Yi(t)||ga(t)!=h)return!1;var e=Ht(t);if(null===e)return!0;var n=Pt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Ct.call(n)==Tt}var Ki=Qt?Te(Qt):function(t){return Yi(t)&&ga(t)==b},$i=te?Te(te):function(t){return Yi(t)&&to(t)==y};function Zi(t){return"string"==typeof t||!Ai(t)&&Yi(t)&&ga(t)==_}function Ji(t){return"symbol"==typeof t||Yi(t)&&ga(t)==O}var Xi=ee?Te(ee):function(t){return Yi(t)&&Bi(t.length)&&!!qt[ga(t)]},Qi=Rr(Ma),ts=Rr((function(t,e){return t<=e}));function es(t){if(!t)return[];if(Di(t))return Zi(t)?Ve(t):mr(t);if(Pe&&t[Pe])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Pe]());var e=to(t);return(e==p?qe:e==y?ze:ks)(t)}function ns(t){return t?(t=os(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function as(t){var e=ns(t),n=e%1;return e==e?n?e-n:e:0}function rs(t){return t?Kn(as(t),0,4294967295):0}function os(t){if("number"==typeof t)return t;if(Ji(t))return NaN;if(Vi(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Vi(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(W,"");var n=rt.test(t);return n||it.test(t)?Gt(t.slice(2),n?2:8):at.test(t)?NaN:+t}function is(t){return hr(t,vs(t))}function ss(t){return null==t?"":$a(t)}var cs=yr((function(t,e){if(lo(e)||Di(e))hr(e,Os(e),t);else for(var n in e)Pt.call(e,n)&&Bn(t,n,e[n])})),ls=yr((function(t,e){hr(e,vs(e),t)})),ds=yr((function(t,e,n,a){hr(e,vs(e),t,a)})),us=yr((function(t,e,n,a){hr(e,Os(e),t,a)})),gs=Br(Wn),fs=La((function(t,e){t=mt(t);var n=-1,a=e.length,r=a>2?e[2]:void 0;for(r&&oo(e[0],e[1],r)&&(a=1);++n<a;)for(var o=e[n],i=vs(o),s=-1,c=i.length;++s<c;){var l=i[s],d=t[l];(void 0===d||ki(d,Ot[l])&&!Pt.call(t,l))&&(t[l]=o[l])}return t})),ps=La((function(t){return t.push(void 0,Fr),ne(Ps,void 0,t)}));function ms(t,e,n){var a=null==t?void 0:da(t,e);return void 0===a?n:a}function hs(t,e){return null!=t&&eo(t,e,ma)}var bs=Tr((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=wt.call(e)),t[e]=n}),Vs(Us)),ys=Tr((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=wt.call(e)),Pt.call(t,e)?t[e].push(n):t[e]=[n]}),Kr),_s=La(ba);function Os(t){return Di(t)?qn(t):Pa(t)}function vs(t){return Di(t)?qn(t,!0):function(t){if(!Vi(t))return function(t){var e=[];if(null!=t)for(var n in mt(t))e.push(n);return e}(t);var e=lo(t),n=[];for(var a in t)("constructor"!=a||!e&&Pt.call(t,a))&&n.push(a);return n}(t)}var Cs=yr((function(t,e,n){Sa(t,e,n)})),Ps=yr((function(t,e,n,a){Sa(t,e,n,a)})),Ms=Br((function(t,e){var n={};if(null==t)return n;var a=!1;e=de(e,(function(e){return e=or(e,t),a||(a=e.length>1),e})),hr(t,Yr(t),n),a&&(n=$n(n,7,zr));for(var r=e.length;r--;)Ja(n,e[r]);return n})),xs=Br((function(t,e){return null==t?{}:function(t,e){return Na(t,e,(function(e,n){return hs(t,n)}))}(t,e)}));function ws(t,e){if(null==t)return{};var n=de(Yr(t),(function(t){return[t]}));return e=Kr(e),Na(t,n,(function(t,n){return e(t,n[0])}))}var Ts=Lr(Os),Ss=Lr(vs);function ks(t){return null==t?[]:Se(t,Os(t))}var Is=Cr((function(t,e,n){return e=e.toLowerCase(),t+(n?Ns(e):e)}));function Ns(t){return Fs(ss(t).toLowerCase())}function Rs(t){return(t=ss(t))&&t.replace(ct,Ae).replace(It,"")}var As=Cr((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),Es=Cr((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ds=vr("toLowerCase"),Ls=Cr((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),qs=Cr((function(t,e,n){return t+(n?" ":"")+Fs(e)})),js=Cr((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Fs=vr("toUpperCase");function zs(t,e,n){return t=ss(t),void 0===(e=n?void 0:e)?function(t){return Et.test(t)}(t)?function(t){return t.match(Rt)||[]}(t):function(t){return t.match(Q)||[]}(t):t.match(e)||[]}var Gs=La((function(t,e){try{return ne(t,void 0,e)}catch(n){return Fi(n)?n:new gt(n)}})),Bs=Br((function(t,e){return re(e,(function(e){e=wo(e),Un(t,e,yi(t[e],t))})),t}));function Vs(t){return function(){return t}}var Ys=xr(),Hs=xr(!0);function Us(t){return t}function Ws(t){return Ca("function"==typeof t?t:$n(t,1))}var Ks=La((function(t,e){return function(n){return ba(n,t,e)}})),$s=La((function(t,e){return function(n){return ba(t,n,e)}}));function Zs(t,e,n){var a=Os(e),r=la(e,a);null!=n||Vi(e)&&(r.length||!a.length)||(n=e,e=t,t=this,r=la(e,Os(e)));var o=!(Vi(n)&&"chain"in n&&!n.chain),i=zi(t);return re(r,(function(n){var a=e[n];t[n]=a,i&&(t.prototype[n]=function(){var e=this.__chain__;if(o||e){var n=t(this.__wrapped__),r=n.__actions__=mr(this.__actions__);return r.push({func:a,args:arguments,thisArg:t}),n.__chain__=e,n}return a.apply(t,ue([this.value()],arguments))})})),t}function Js(){}var Xs=kr(de),Qs=kr(ie),tc=kr(pe);function ec(t){return io(t)?Ce(wo(t)):function(t){return function(e){return da(e,t)}}(t)}var nc=Nr(),ac=Nr(!0);function rc(){return[]}function oc(){return!1}var ic,sc=Sr((function(t,e){return t+e}),0),cc=Er("ceil"),lc=Sr((function(t,e){return t/e}),1),dc=Er("floor"),uc=Sr((function(t,e){return t*e}),1),gc=Er("round"),fc=Sr((function(t,e){return t-e}),0);return Tn.after=function(t,e){if("function"!=typeof e)throw new yt(r);return t=as(t),function(){if(--t<1)return e.apply(this,arguments)}},Tn.ary=hi,Tn.assign=cs,Tn.assignIn=ls,Tn.assignInWith=ds,Tn.assignWith=us,Tn.at=gs,Tn.before=bi,Tn.bind=yi,Tn.bindAll=Bs,Tn.bindKey=_i,Tn.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Ai(t)?t:[t]},Tn.chain=ei,Tn.chunk=function(t,e,n){e=(n?oo(t,e,n):void 0===e)?1:rn(as(e),0);var r=null==t?0:t.length;if(!r||e<1)return[];for(var o=0,i=0,s=a(Je(r/e));o<r;)s[i++]=Va(t,o,o+=e);return s},Tn.compact=function(t){for(var e=-1,n=null==t?0:t.length,a=0,r=[];++e<n;){var o=t[e];o&&(r[a++]=o)}return r},Tn.concat=function(){var t=arguments.length;if(!t)return[];for(var e=a(t-1),n=arguments[0],r=t;r--;)e[r-1]=arguments[r];return ue(Ai(n)?mr(n):[n],ra(e,1))},Tn.cond=function(t){var e=null==t?0:t.length,n=Kr();return t=e?de(t,(function(t){if("function"!=typeof t[1])throw new yt(r);return[n(t[0]),t[1]]})):[],La((function(n){for(var a=-1;++a<e;){var r=t[a];if(ne(r[0],this,n))return ne(r[1],this,n)}}))},Tn.conforms=function(t){return function(t){var e=Os(t);return function(n){return Zn(n,t,e)}}($n(t,1))},Tn.constant=Vs,Tn.countBy=ri,Tn.create=function(t,e){var n=Sn(t);return null==e?n:Hn(n,e)},Tn.curry=function t(e,n,a){var r=qr(e,8,void 0,void 0,void 0,void 0,void 0,n=a?void 0:n);return r.placeholder=t.placeholder,r},Tn.curryRight=function t(e,n,a){var r=qr(e,16,void 0,void 0,void 0,void 0,void 0,n=a?void 0:n);return r.placeholder=t.placeholder,r},Tn.debounce=Oi,Tn.defaults=fs,Tn.defaultsDeep=ps,Tn.defer=vi,Tn.delay=Ci,Tn.difference=ko,Tn.differenceBy=Io,Tn.differenceWith=No,Tn.drop=function(t,e,n){var a=null==t?0:t.length;return a?Va(t,(e=n||void 0===e?1:as(e))<0?0:e,a):[]},Tn.dropRight=function(t,e,n){var a=null==t?0:t.length;return a?Va(t,0,(e=a-(e=n||void 0===e?1:as(e)))<0?0:e):[]},Tn.dropRightWhile=function(t,e){return t&&t.length?Qa(t,Kr(e,3),!0,!0):[]},Tn.dropWhile=function(t,e){return t&&t.length?Qa(t,Kr(e,3),!0):[]},Tn.fill=function(t,e,n,a){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&oo(t,e,n)&&(n=0,a=r),function(t,e,n,a){var r=t.length;for((n=as(n))<0&&(n=-n>r?0:r+n),(a=void 0===a||a>r?r:as(a))<0&&(a+=r),a=n>a?0:rs(a);n<a;)t[n++]=e;return t}(t,e,n,a)):[]},Tn.filter=function(t,e){return(Ai(t)?se:aa)(t,Kr(e,3))},Tn.flatMap=function(t,e){return ra(gi(t,e),1)},Tn.flatMapDeep=function(t,e){return ra(gi(t,e),1/0)},Tn.flatMapDepth=function(t,e,n){return n=void 0===n?1:as(n),ra(gi(t,e),n)},Tn.flatten=Eo,Tn.flattenDeep=function(t){return null!=t&&t.length?ra(t,1/0):[]},Tn.flattenDepth=function(t,e){return null!=t&&t.length?ra(t,e=void 0===e?1:as(e)):[]},Tn.flip=function(t){return qr(t,512)},Tn.flow=Ys,Tn.flowRight=Hs,Tn.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,a={};++e<n;){var r=t[e];a[r[0]]=r[1]}return a},Tn.functions=function(t){return null==t?[]:la(t,Os(t))},Tn.functionsIn=function(t){return null==t?[]:la(t,vs(t))},Tn.groupBy=li,Tn.initial=function(t){return null!=t&&t.length?Va(t,0,-1):[]},Tn.intersection=Lo,Tn.intersectionBy=qo,Tn.intersectionWith=jo,Tn.invert=bs,Tn.invertBy=ys,Tn.invokeMap=di,Tn.iteratee=Ws,Tn.keyBy=ui,Tn.keys=Os,Tn.keysIn=vs,Tn.map=gi,Tn.mapKeys=function(t,e){var n={};return e=Kr(e,3),sa(t,(function(t,a,r){Un(n,e(t,a,r),t)})),n},Tn.mapValues=function(t,e){var n={};return e=Kr(e,3),sa(t,(function(t,a,r){Un(n,a,e(t,a,r))})),n},Tn.matches=function(t){return wa($n(t,1))},Tn.matchesProperty=function(t,e){return Ta(t,$n(e,1))},Tn.memoize=Pi,Tn.merge=Cs,Tn.mergeWith=Ps,Tn.method=Ks,Tn.methodOf=$s,Tn.mixin=Zs,Tn.negate=Mi,Tn.nthArg=function(t){return t=as(t),La((function(e){return ka(e,t)}))},Tn.omit=Ms,Tn.omitBy=function(t,e){return ws(t,Mi(Kr(e)))},Tn.once=function(t){return bi(2,t)},Tn.orderBy=function(t,e,n,a){return null==t?[]:(Ai(e)||(e=null==e?[]:[e]),Ai(n=a?void 0:n)||(n=null==n?[]:[n]),Ia(t,e,n))},Tn.over=Xs,Tn.overArgs=xi,Tn.overEvery=Qs,Tn.overSome=tc,Tn.partial=wi,Tn.partialRight=Ti,Tn.partition=fi,Tn.pick=xs,Tn.pickBy=ws,Tn.property=ec,Tn.propertyOf=function(t){return function(e){return null==t?void 0:da(t,e)}},Tn.pull=zo,Tn.pullAll=Go,Tn.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Ra(t,e,Kr(n,2)):t},Tn.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?Ra(t,e,void 0,n):t},Tn.pullAt=Bo,Tn.range=nc,Tn.rangeRight=ac,Tn.rearg=Si,Tn.reject=function(t,e){return(Ai(t)?se:aa)(t,Mi(Kr(e,3)))},Tn.remove=function(t,e){var n=[];if(!t||!t.length)return n;var a=-1,r=[],o=t.length;for(e=Kr(e,3);++a<o;){var i=t[a];e(i,a,t)&&(n.push(i),r.push(a))}return Aa(t,r),n},Tn.rest=function(t,e){if("function"!=typeof t)throw new yt(r);return La(t,e=void 0===e?e:as(e))},Tn.reverse=Vo,Tn.sampleSize=function(t,e,n){return e=(n?oo(t,e,n):void 0===e)?1:as(e),(Ai(t)?Fn:ja)(t,e)},Tn.set=function(t,e,n){return null==t?t:Fa(t,e,n)},Tn.setWith=function(t,e,n,a){return a="function"==typeof a?a:void 0,null==t?t:Fa(t,e,n,a)},Tn.shuffle=function(t){return(Ai(t)?zn:Ba)(t)},Tn.slice=function(t,e,n){var a=null==t?0:t.length;return a?(n&&"number"!=typeof n&&oo(t,e,n)?(e=0,n=a):(e=null==e?0:as(e),n=void 0===n?a:as(n)),Va(t,e,n)):[]},Tn.sortBy=pi,Tn.sortedUniq=function(t){return t&&t.length?Wa(t):[]},Tn.sortedUniqBy=function(t,e){return t&&t.length?Wa(t,Kr(e,2)):[]},Tn.split=function(t,e,n){return n&&"number"!=typeof n&&oo(t,e,n)&&(e=n=void 0),(n=void 0===n?4294967295:n>>>0)?(t=ss(t))&&("string"==typeof e||null!=e&&!Ki(e))&&!(e=$a(e))&&Le(t)?sr(Ve(t),0,n):t.split(e,n):[]},Tn.spread=function(t,e){if("function"!=typeof t)throw new yt(r);return e=null==e?0:rn(as(e),0),La((function(n){var a=n[e],r=sr(n,0,e);return a&&ue(r,a),ne(t,this,r)}))},Tn.tail=function(t){var e=null==t?0:t.length;return e?Va(t,1,e):[]},Tn.take=function(t,e,n){return t&&t.length?Va(t,0,(e=n||void 0===e?1:as(e))<0?0:e):[]},Tn.takeRight=function(t,e,n){var a=null==t?0:t.length;return a?Va(t,(e=a-(e=n||void 0===e?1:as(e)))<0?0:e,a):[]},Tn.takeRightWhile=function(t,e){return t&&t.length?Qa(t,Kr(e,3),!1,!0):[]},Tn.takeWhile=function(t,e){return t&&t.length?Qa(t,Kr(e,3)):[]},Tn.tap=function(t,e){return e(t),t},Tn.throttle=function(t,e,n){var a=!0,o=!0;if("function"!=typeof t)throw new yt(r);return Vi(n)&&(a="leading"in n?!!n.leading:a,o="trailing"in n?!!n.trailing:o),Oi(t,e,{leading:a,maxWait:e,trailing:o})},Tn.thru=ni,Tn.toArray=es,Tn.toPairs=Ts,Tn.toPairsIn=Ss,Tn.toPath=function(t){return Ai(t)?de(t,wo):Ji(t)?[t]:mr(xo(ss(t)))},Tn.toPlainObject=is,Tn.transform=function(t,e,n){var a=Ai(t),r=a||qi(t)||Xi(t);if(e=Kr(e,4),null==n){var o=t&&t.constructor;n=r?a?new o:[]:Vi(t)&&zi(o)?Sn(Ht(t)):{}}return(r?re:sa)(t,(function(t,a,r){return e(n,t,a,r)})),n},Tn.unary=function(t){return hi(t,1)},Tn.union=Yo,Tn.unionBy=Ho,Tn.unionWith=Uo,Tn.uniq=function(t){return t&&t.length?Za(t):[]},Tn.uniqBy=function(t,e){return t&&t.length?Za(t,Kr(e,2)):[]},Tn.uniqWith=function(t,e){return e="function"==typeof e?e:void 0,t&&t.length?Za(t,void 0,e):[]},Tn.unset=function(t,e){return null==t||Ja(t,e)},Tn.unzip=Wo,Tn.unzipWith=Ko,Tn.update=function(t,e,n){return null==t?t:Xa(t,e,rr(n))},Tn.updateWith=function(t,e,n,a){return a="function"==typeof a?a:void 0,null==t?t:Xa(t,e,rr(n),a)},Tn.values=ks,Tn.valuesIn=function(t){return null==t?[]:Se(t,vs(t))},Tn.without=$o,Tn.words=zs,Tn.wrap=function(t,e){return wi(rr(e),t)},Tn.xor=Zo,Tn.xorBy=Jo,Tn.xorWith=Xo,Tn.zip=Qo,Tn.zipObject=function(t,e){return nr(t||[],e||[],Bn)},Tn.zipObjectDeep=function(t,e){return nr(t||[],e||[],Fa)},Tn.zipWith=ti,Tn.entries=Ts,Tn.entriesIn=Ss,Tn.extend=ls,Tn.extendWith=ds,Zs(Tn,Tn),Tn.add=sc,Tn.attempt=Gs,Tn.camelCase=Is,Tn.capitalize=Ns,Tn.ceil=cc,Tn.clamp=function(t,e,n){return void 0===n&&(n=e,e=void 0),void 0!==n&&(n=(n=os(n))==n?n:0),void 0!==e&&(e=(e=os(e))==e?e:0),Kn(os(t),e,n)},Tn.clone=function(t){return $n(t,4)},Tn.cloneDeep=function(t){return $n(t,5)},Tn.cloneDeepWith=function(t,e){return $n(t,5,e="function"==typeof e?e:void 0)},Tn.cloneWith=function(t,e){return $n(t,4,e="function"==typeof e?e:void 0)},Tn.conformsTo=function(t,e){return null==e||Zn(t,e,Os(e))},Tn.deburr=Rs,Tn.defaultTo=function(t,e){return null==t||t!=t?e:t},Tn.divide=lc,Tn.endsWith=function(t,e,n){t=ss(t),e=$a(e);var a=t.length,r=n=void 0===n?a:Kn(as(n),0,a);return(n-=e.length)>=0&&t.slice(n,r)==e},Tn.eq=ki,Tn.escape=function(t){return(t=ss(t))&&j.test(t)?t.replace(L,Ee):t},Tn.escapeRegExp=function(t){return(t=ss(t))&&U.test(t)?t.replace(H,"\\$&"):t},Tn.every=function(t,e,n){var a=Ai(t)?ie:ea;return n&&oo(t,e,n)&&(e=void 0),a(t,Kr(e,3))},Tn.find=oi,Tn.findIndex=Ro,Tn.findKey=function(t,e){return he(t,Kr(e,3),sa)},Tn.findLast=ii,Tn.findLastIndex=Ao,Tn.findLastKey=function(t,e){return he(t,Kr(e,3),ca)},Tn.floor=dc,Tn.forEach=si,Tn.forEachRight=ci,Tn.forIn=function(t,e){return null==t?t:oa(t,Kr(e,3),vs)},Tn.forInRight=function(t,e){return null==t?t:ia(t,Kr(e,3),vs)},Tn.forOwn=function(t,e){return t&&sa(t,Kr(e,3))},Tn.forOwnRight=function(t,e){return t&&ca(t,Kr(e,3))},Tn.get=ms,Tn.gt=Ii,Tn.gte=Ni,Tn.has=function(t,e){return null!=t&&eo(t,e,pa)},Tn.hasIn=hs,Tn.head=Do,Tn.identity=Us,Tn.includes=function(t,e,n,a){t=Di(t)?t:ks(t),n=n&&!a?as(n):0;var r=t.length;return n<0&&(n=rn(r+n,0)),Zi(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&ye(t,e,n)>-1},Tn.indexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=null==n?0:as(n);return r<0&&(r=rn(a+r,0)),ye(t,e,r)},Tn.inRange=function(t,e,n){return e=ns(e),void 0===n?(n=e,e=0):n=ns(n),function(t,e,n){return t>=on(e,n)&&t<rn(e,n)}(t=os(t),e,n)},Tn.invoke=_s,Tn.isArguments=Ri,Tn.isArray=Ai,Tn.isArrayBuffer=Ei,Tn.isArrayLike=Di,Tn.isArrayLikeObject=Li,Tn.isBoolean=function(t){return!0===t||!1===t||Yi(t)&&ga(t)==l},Tn.isBuffer=qi,Tn.isDate=ji,Tn.isElement=function(t){return Yi(t)&&1===t.nodeType&&!Wi(t)},Tn.isEmpty=function(t){if(null==t)return!0;if(Di(t)&&(Ai(t)||"string"==typeof t||"function"==typeof t.splice||qi(t)||Xi(t)||Ri(t)))return!t.length;var e=to(t);if(e==p||e==y)return!t.size;if(lo(t))return!Pa(t).length;for(var n in t)if(Pt.call(t,n))return!1;return!0},Tn.isEqual=function(t,e){return _a(t,e)},Tn.isEqualWith=function(t,e,n){var a=(n="function"==typeof n?n:void 0)?n(t,e):void 0;return void 0===a?_a(t,e,void 0,n):!!a},Tn.isError=Fi,Tn.isFinite=function(t){return"number"==typeof t&&en(t)},Tn.isFunction=zi,Tn.isInteger=Gi,Tn.isLength=Bi,Tn.isMap=Hi,Tn.isMatch=function(t,e){return t===e||Oa(t,e,Zr(e))},Tn.isMatchWith=function(t,e,n){return n="function"==typeof n?n:void 0,Oa(t,e,Zr(e),n)},Tn.isNaN=function(t){return Ui(t)&&t!=+t},Tn.isNative=function(t){if(co(t))throw new gt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return va(t)},Tn.isNil=function(t){return null==t},Tn.isNull=function(t){return null===t},Tn.isNumber=Ui,Tn.isObject=Vi,Tn.isObjectLike=Yi,Tn.isPlainObject=Wi,Tn.isRegExp=Ki,Tn.isSafeInteger=function(t){return Gi(t)&&t>=-9007199254740991&&t<=9007199254740991},Tn.isSet=$i,Tn.isString=Zi,Tn.isSymbol=Ji,Tn.isTypedArray=Xi,Tn.isUndefined=function(t){return void 0===t},Tn.isWeakMap=function(t){return Yi(t)&&to(t)==v},Tn.isWeakSet=function(t){return Yi(t)&&"[object WeakSet]"==ga(t)},Tn.join=function(t,e){return null==t?"":nn.call(t,e)},Tn.kebabCase=As,Tn.last=Fo,Tn.lastIndexOf=function(t,e,n){var a=null==t?0:t.length;if(!a)return-1;var r=a;return void 0!==n&&(r=(r=as(n))<0?rn(a+r,0):on(r,a-1)),e==e?function(t,e,n){for(var a=n+1;a--;)if(t[a]===e)return a;return a}(t,e,r):be(t,Oe,r,!0)},Tn.lowerCase=Es,Tn.lowerFirst=Ds,Tn.lt=Qi,Tn.lte=ts,Tn.max=function(t){return t&&t.length?na(t,Us,fa):void 0},Tn.maxBy=function(t,e){return t&&t.length?na(t,Kr(e,2),fa):void 0},Tn.mean=function(t){return ve(t,Us)},Tn.meanBy=function(t,e){return ve(t,Kr(e,2))},Tn.min=function(t){return t&&t.length?na(t,Us,Ma):void 0},Tn.minBy=function(t,e){return t&&t.length?na(t,Kr(e,2),Ma):void 0},Tn.stubArray=rc,Tn.stubFalse=oc,Tn.stubObject=function(){return{}},Tn.stubString=function(){return""},Tn.stubTrue=function(){return!0},Tn.multiply=uc,Tn.nth=function(t,e){return t&&t.length?ka(t,as(e)):void 0},Tn.noConflict=function(){return Yt._===this&&(Yt._=St),this},Tn.noop=Js,Tn.now=mi,Tn.pad=function(t,e,n){t=ss(t);var a=(e=as(e))?Be(t):0;if(!e||a>=e)return t;var r=(e-a)/2;return Ir(Xe(r),n)+t+Ir(Je(r),n)},Tn.padEnd=function(t,e,n){t=ss(t);var a=(e=as(e))?Be(t):0;return e&&a<e?t+Ir(e-a,n):t},Tn.padStart=function(t,e,n){t=ss(t);var a=(e=as(e))?Be(t):0;return e&&a<e?Ir(e-a,n)+t:t},Tn.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),cn(ss(t).replace(K,""),e||0)},Tn.random=function(t,e,n){if(n&&"boolean"!=typeof n&&oo(t,e,n)&&(e=n=void 0),void 0===n&&("boolean"==typeof e?(n=e,e=void 0):"boolean"==typeof t&&(n=t,t=void 0)),void 0===t&&void 0===e?(t=0,e=1):(t=ns(t),void 0===e?(e=t,t=0):e=ns(e)),t>e){var a=t;t=e,e=a}if(n||t%1||e%1){var r=ln();return on(t+r*(e-t+zt("1e-"+((r+"").length-1))),e)}return Ea(t,e)},Tn.reduce=function(t,e,n){var a=Ai(t)?ge:Me,r=arguments.length<3;return a(t,Kr(e,4),n,r,Qn)},Tn.reduceRight=function(t,e,n){var a=Ai(t)?fe:Me,r=arguments.length<3;return a(t,Kr(e,4),n,r,ta)},Tn.repeat=function(t,e,n){return e=(n?oo(t,e,n):void 0===e)?1:as(e),Da(ss(t),e)},Tn.replace=function(){var t=arguments,e=ss(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Tn.result=function(t,e,n){var a=-1,r=(e=or(e,t)).length;for(r||(r=1,t=void 0);++a<r;){var o=null==t?void 0:t[wo(e[a])];void 0===o&&(a=r,o=n),t=zi(o)?o.call(t):o}return t},Tn.round=gc,Tn.runInContext=t,Tn.sample=function(t){return(Ai(t)?jn:qa)(t)},Tn.size=function(t){if(null==t)return 0;if(Di(t))return Zi(t)?Be(t):t.length;var e=to(t);return e==p||e==y?t.size:Pa(t).length},Tn.snakeCase=Ls,Tn.some=function(t,e,n){var a=Ai(t)?pe:Ya;return n&&oo(t,e,n)&&(e=void 0),a(t,Kr(e,3))},Tn.sortedIndex=function(t,e){return Ha(t,e)},Tn.sortedIndexBy=function(t,e,n){return Ua(t,e,Kr(n,2))},Tn.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var a=Ha(t,e);if(a<n&&ki(t[a],e))return a}return-1},Tn.sortedLastIndex=function(t,e){return Ha(t,e,!0)},Tn.sortedLastIndexBy=function(t,e,n){return Ua(t,e,Kr(n,2),!0)},Tn.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=Ha(t,e,!0)-1;if(ki(t[n],e))return n}return-1},Tn.startCase=qs,Tn.startsWith=function(t,e,n){return t=ss(t),n=null==n?0:Kn(as(n),0,t.length),e=$a(e),t.slice(n,n+e.length)==e},Tn.subtract=fc,Tn.sum=function(t){return t&&t.length?xe(t,Us):0},Tn.sumBy=function(t,e){return t&&t.length?xe(t,Kr(e,2)):0},Tn.template=function(t,e,n){var a=Tn.templateSettings;n&&oo(t,e,n)&&(e=void 0),t=ss(t),e=ds({},e,a,jr);var r,o,i=ds({},e.imports,a.imports,jr),s=Os(i),c=Se(i,s),l=0,d=e.interpolate||lt,u="__p += '",g=ht((e.escape||lt).source+"|"+d.source+"|"+(d===G?et:lt).source+"|"+(e.evaluate||lt).source+"|$","g"),f="//# sourceURL="+(Pt.call(e,"sourceURL")?(e.sourceURL+"").replace(/[\r\n]/g," "):"lodash.templateSources["+ ++Lt+"]")+"\n";t.replace(g,(function(e,n,a,i,s,c){return a||(a=i),u+=t.slice(l,c).replace(dt,De),n&&(r=!0,u+="' +\n__e("+n+") +\n'"),s&&(o=!0,u+="';\n"+s+";\n__p += '"),a&&(u+="' +\n((__t = ("+a+")) == null ? '' : __t) +\n'"),l=c+e.length,e})),u+="';\n";var p=Pt.call(e,"variable")&&e.variable;p||(u="with (obj) {\n"+u+"\n}\n"),u=(o?u.replace(R,""):u).replace(A,"$1").replace(E,"$1;"),u="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+u+"return __p\n}";var m=Gs((function(){return ft(s,f+"return "+u).apply(void 0,c)}));if(m.source=u,Fi(m))throw m;return m},Tn.times=function(t,e){if((t=as(t))<1||t>9007199254740991)return[];var n=4294967295,a=on(t,4294967295);t-=4294967295;for(var r=we(a,e=Kr(e));++n<t;)e(n);return r},Tn.toFinite=ns,Tn.toInteger=as,Tn.toLength=rs,Tn.toLower=function(t){return ss(t).toLowerCase()},Tn.toNumber=os,Tn.toSafeInteger=function(t){return t?Kn(as(t),-9007199254740991,9007199254740991):0===t?t:0},Tn.toString=ss,Tn.toUpper=function(t){return ss(t).toUpperCase()},Tn.trim=function(t,e,n){if((t=ss(t))&&(n||void 0===e))return t.replace(W,"");if(!t||!(e=$a(e)))return t;var a=Ve(t),r=Ve(e);return sr(a,Ie(a,r),Ne(a,r)+1).join("")},Tn.trimEnd=function(t,e,n){if((t=ss(t))&&(n||void 0===e))return t.replace($,"");if(!t||!(e=$a(e)))return t;var a=Ve(t);return sr(a,0,Ne(a,Ve(e))+1).join("")},Tn.trimStart=function(t,e,n){if((t=ss(t))&&(n||void 0===e))return t.replace(K,"");if(!t||!(e=$a(e)))return t;var a=Ve(t);return sr(a,Ie(a,Ve(e))).join("")},Tn.truncate=function(t,e){var n=30,a="...";if(Vi(e)){var r="separator"in e?e.separator:r;n="length"in e?as(e.length):n,a="omission"in e?$a(e.omission):a}var o=(t=ss(t)).length;if(Le(t)){var i=Ve(t);o=i.length}if(n>=o)return t;var s=n-Be(a);if(s<1)return a;var c=i?sr(i,0,s).join(""):t.slice(0,s);if(void 0===r)return c+a;if(i&&(s+=c.length-s),Ki(r)){if(t.slice(s).search(r)){var l,d=c;for(r.global||(r=ht(r.source,ss(nt.exec(r))+"g")),r.lastIndex=0;l=r.exec(d);)var u=l.index;c=c.slice(0,void 0===u?s:u)}}else if(t.indexOf($a(r),s)!=s){var g=c.lastIndexOf(r);g>-1&&(c=c.slice(0,g))}return c+a},Tn.unescape=function(t){return(t=ss(t))&&q.test(t)?t.replace(D,Ye):t},Tn.uniqueId=function(t){var e=++Mt;return ss(t)+e},Tn.upperCase=js,Tn.upperFirst=Fs,Tn.each=si,Tn.eachRight=ci,Tn.first=Do,Zs(Tn,(ic={},sa(Tn,(function(t,e){Pt.call(Tn.prototype,e)||(ic[e]=t)})),ic),{chain:!1}),Tn.VERSION="4.17.15",re(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Tn[t].placeholder=Tn})),re(["drop","take"],(function(t,e){Nn.prototype[t]=function(n){n=void 0===n?1:rn(as(n),0);var a=this.__filtered__&&!e?new Nn(this):this.clone();return a.__filtered__?a.__takeCount__=on(n,a.__takeCount__):a.__views__.push({size:on(n,4294967295),type:t+(a.__dir__<0?"Right":"")}),a},Nn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),re(["filter","map","takeWhile"],(function(t,e){var n=e+1,a=1==n||3==n;Nn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:Kr(t,3),type:n}),e.__filtered__=e.__filtered__||a,e}})),re(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Nn.prototype[t]=function(){return this[n](1).value()[0]}})),re(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Nn.prototype[t]=function(){return this.__filtered__?new Nn(this):this[n](1)}})),Nn.prototype.compact=function(){return this.filter(Us)},Nn.prototype.find=function(t){return this.filter(t).head()},Nn.prototype.findLast=function(t){return this.reverse().find(t)},Nn.prototype.invokeMap=La((function(t,e){return"function"==typeof t?new Nn(this):this.map((function(n){return ba(n,t,e)}))})),Nn.prototype.reject=function(t){return this.filter(Mi(Kr(t)))},Nn.prototype.slice=function(t,e){t=as(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Nn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),void 0!==e&&(n=(e=as(e))<0?n.dropRight(-e):n.take(e-t)),n)},Nn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Nn.prototype.toArray=function(){return this.take(4294967295)},sa(Nn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),a=/^(?:head|last)$/.test(e),r=Tn[a?"take"+("last"==e?"Right":""):e],o=a||/^find/.test(e);r&&(Tn.prototype[e]=function(){var e=this.__wrapped__,i=a?[1]:arguments,s=e instanceof Nn,c=i[0],l=s||Ai(e),d=function(t){var e=r.apply(Tn,ue([t],i));return a&&u?e[0]:e};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var u=this.__chain__,g=!!this.__actions__.length,f=o&&!u,p=s&&!g;if(!o&&l){e=p?e:new Nn(this);var m=t.apply(e,i);return m.__actions__.push({func:ni,args:[d],thisArg:void 0}),new In(m,u)}return f&&p?t.apply(this,i):(m=this.thru(d),f?a?m.value()[0]:m.value():m)})})),re(["pop","push","shift","sort","splice","unshift"],(function(t){var e=_t[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",a=/^(?:pop|shift)$/.test(t);Tn.prototype[t]=function(){var t=arguments;if(a&&!this.__chain__){var r=this.value();return e.apply(Ai(r)?r:[],t)}return this[n]((function(n){return e.apply(Ai(n)?n:[],t)}))}})),sa(Nn.prototype,(function(t,e){var n=Tn[e];if(n){var a=n.name+"";Pt.call(yn,a)||(yn[a]=[]),yn[a].push({name:e,func:n})}})),yn[wr(void 0,2).name]=[{name:"wrapper",func:void 0}],Nn.prototype.clone=function(){var t=new Nn(this.__wrapped__);return t.__actions__=mr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=mr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=mr(this.__views__),t},Nn.prototype.reverse=function(){if(this.__filtered__){var t=new Nn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Nn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Ai(t),a=e<0,r=n?t.length:0,o=function(t,e,n){for(var a=-1,r=n.length;++a<r;){var o=n[a],i=o.size;switch(o.type){case"drop":t+=i;break;case"dropRight":e-=i;break;case"take":e=on(e,t+i);break;case"takeRight":t=rn(t,e-i)}}return{start:t,end:e}}(0,r,this.__views__),i=o.start,s=o.end,c=s-i,l=a?s:i-1,d=this.__iteratees__,u=d.length,g=0,f=on(c,this.__takeCount__);if(!n||!a&&r==c&&f==c)return tr(t,this.__actions__);var p=[];t:for(;c--&&g<f;){for(var m=-1,h=t[l+=e];++m<u;){var b=d[m],y=b.type,_=(0,b.iteratee)(h);if(2==y)h=_;else if(!_){if(1==y)continue t;break t}}p[g++]=h}return p},Tn.prototype.at=ai,Tn.prototype.chain=function(){return ei(this)},Tn.prototype.commit=function(){return new In(this.value(),this.__chain__)},Tn.prototype.next=function(){void 0===this.__values__&&(this.__values__=es(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?void 0:this.__values__[this.__index__++]}},Tn.prototype.plant=function(t){for(var e,n=this;n instanceof kn;){var a=So(n);a.__index__=0,a.__values__=void 0,e?r.__wrapped__=a:e=a;var r=a;n=n.__wrapped__}return r.__wrapped__=t,e},Tn.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Nn){var e=t;return this.__actions__.length&&(e=new Nn(this)),(e=e.reverse()).__actions__.push({func:ni,args:[Vo],thisArg:void 0}),new In(e,this.__chain__)}return this.thru(Vo)},Tn.prototype.toJSON=Tn.prototype.valueOf=Tn.prototype.value=function(){return tr(this.__wrapped__,this.__actions__)},Tn.prototype.first=Tn.prototype.head,Pe&&(Tn.prototype[Pe]=function(){return this}),Tn}();Yt._=He,void 0===(a=(function(){return He}).call(e,n,e,t))||(t.exports=a)}).call(this)}).call(this,n("YuTi")(t))},Lwhh:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DataTableColumnHeaderDirective=function(){return a([r.Directive({selector:"[ngx-datatable-header-template]"})],(function(t){this.template=t}))}()},M9eX:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("qCKp"),s=(n("czA5"),n("kU1M"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new o.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var o=i.fromEvent(document,"mouseup");this.subscription=o.subscribe((function(t){return e.onMouseup()}));var c=i.fromEvent(document,"mousemove").pipe(s.takeUntil(o)).subscribe((function(t){return e.move(t,a,r)}));this.subscription.add(c)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"resize",void 0),a([o.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([o.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}})],t)}()},MJIl:function(t,e,n){var a=n("QoRX"),r=n("ut/Y"),o=n("Nh2a"),i=n("Z0cm"),s=n("mv/X");t.exports=function(t,e,n){var c=i(t)?a:o;return n&&s(t,e,n)&&(e=void 0),c(t,r(e,3))}},MMmD:function(t,e,n){var a=n("lSCD"),r=n("shjB");t.exports=function(t){return null!=t&&r(t.length)&&!a(t)}},"MO+k":function(t,e,n){t.exports=function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var e={rgb2hsl:n,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:i,rgb2keyword:s,rgb2xyz:c,rgb2lab:l,rgb2lch:function(t){return _(l(t))},hsl2rgb:d,hsl2hsv:function(t){var e=t[1]/100,n=t[2]/100;return 0===n?[0,0,0]:[t[0],2*(e*=(n*=2)<=1?n:2-n)/(n+e)*100,(n+e)/2*100]},hsl2hwb:function(t){return o(d(t))},hsl2cmyk:function(t){return i(d(t))},hsl2keyword:function(t){return s(d(t))},hsv2rgb:u,hsv2hsl:function(t){var e,n,a=t[1]/100,r=t[2]/100;return e=a*r,[t[0],100*(e=(e/=(n=(2-a)*r)<=1?n:2-n)||0),100*(n/=2)]},hsv2hwb:function(t){return o(u(t))},hsv2cmyk:function(t){return i(u(t))},hsv2keyword:function(t){return s(u(t))},hwb2rgb:f,hwb2hsl:function(t){return n(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return i(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return n(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:C,keyword2hsl:function(t){return n(C(t))},keyword2hsv:function(t){return a(C(t))},keyword2hwb:function(t){return o(C(t))},keyword2cmyk:function(t){return i(C(t))},keyword2lab:function(t){return l(C(t))},keyword2xyz:function(t){return c(C(t))},xyz2rgb:m,xyz2lab:h,xyz2lch:function(t){return _(h(t))},lab2xyz:y,lab2rgb:O,lab2lch:_,lch2lab:v,lch2xyz:function(t){return y(v(t))},lch2rgb:function(t){return O(v(t))}};function n(t){var e,n,a=t[0]/255,r=t[1]/255,o=t[2]/255,i=Math.min(a,r,o),s=Math.max(a,r,o),c=s-i;return s==i?e=0:a==s?e=(r-o)/c:r==s?e=2+(o-a)/c:o==s&&(e=4+(a-r)/c),(e=Math.min(60*e,360))<0&&(e+=360),n=(i+s)/2,[e,100*(s==i?0:n<=.5?c/(s+i):c/(2-s-i)),100*n]}function a(t){var e,n,a=t[0],r=t[1],o=t[2],i=Math.min(a,r,o),s=Math.max(a,r,o),c=s-i;return n=0==s?0:c/s*1e3/10,s==i?e=0:a==s?e=(r-o)/c:r==s?e=2+(o-a)/c:o==s&&(e=4+(a-r)/c),(e=Math.min(60*e,360))<0&&(e+=360),[e,n,s/255*1e3/10]}function o(t){var e=t[0],a=t[1],r=t[2];return[n(t)[0],1/255*Math.min(e,Math.min(a,r))*100,100*(r=1-1/255*Math.max(e,Math.max(a,r)))]}function i(t){var e,n=t[0]/255,a=t[1]/255,r=t[2]/255;return[100*((1-n-(e=Math.min(1-n,1-a,1-r)))/(1-e)||0),100*((1-a-e)/(1-e)||0),100*((1-r-e)/(1-e)||0),100*e]}function s(t){return M[JSON.stringify(t)]}function c(t){var e=t[0]/255,n=t[1]/255,a=t[2]/255;return[100*(.4124*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)),100*(.2126*e+.7152*n+.0722*a),100*(.0193*e+.1192*n+.9505*a)]}function l(t){var e=c(t),n=e[0],a=e[1],r=e[2];return a/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(n-a),200*(a-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]}function d(t){var e,n,a,r,o,i=t[0]/360,s=t[1]/100,c=t[2]/100;if(0==s)return[o=255*c,o,o];e=2*c-(n=c<.5?c*(1+s):c+s-c*s),r=[0,0,0];for(var l=0;l<3;l++)(a=i+1/3*-(l-1))<0&&a++,a>1&&a--,r[l]=255*(o=6*a<1?e+6*(n-e)*a:2*a<1?n:3*a<2?e+(n-e)*(2/3-a)*6:e);return r}function u(t){var e=t[0]/60,n=t[1]/100,a=t[2]/100,r=Math.floor(e)%6,o=e-Math.floor(e),i=255*a*(1-n),s=255*a*(1-n*o),c=255*a*(1-n*(1-o));switch(a*=255,r){case 0:return[a,c,i];case 1:return[s,a,i];case 2:return[i,a,c];case 3:return[i,s,a];case 4:return[c,i,a];case 5:return[a,i,s]}}function f(t){var e,n,a,o,i=t[0]/360,s=t[1]/100,c=t[2]/100,l=s+c;switch(l>1&&(s/=l,c/=l),a=6*i-(e=Math.floor(6*i)),0!=(1&e)&&(a=1-a),o=s+a*((n=1-c)-s),e){default:case 6:case 0:r=n,g=o,b=s;break;case 1:r=o,g=n,b=s;break;case 2:r=s,g=n,b=o;break;case 3:r=s,g=o,b=n;break;case 4:r=o,g=s,b=n;break;case 5:r=n,g=s,b=o}return[255*r,255*g,255*b]}function p(t){var e=t[1]/100,n=t[2]/100,a=t[3]/100;return[255*(1-Math.min(1,t[0]/100*(1-a)+a)),255*(1-Math.min(1,e*(1-a)+a)),255*(1-Math.min(1,n*(1-a)+a))]}function m(t){var e,n,a,r=t[0]/100,o=t[1]/100,i=t[2]/100;return n=-.9689*r+1.8758*o+.0415*i,a=.0557*r+-.204*o+1.057*i,e=(e=3.2406*r+-1.5372*o+-.4986*i)>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*=12.92,[255*(e=Math.min(Math.max(0,e),1)),255*(n=Math.min(Math.max(0,n),1)),255*(a=Math.min(Math.max(0,a),1))]}function h(t){var e=t[0],n=t[1],a=t[2];return n/=100,a/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(e-n),200*(n-(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116))]}function y(t){var e,n,a,r,o=t[0],i=t[1],s=t[2];return o<=8?r=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),r=Math.pow(n/100,1/3)),[e=e/95.047<=.008856?e=95.047*(i/500+r-16/116)/7.787:95.047*Math.pow(i/500+r,3),n,a=a/108.883<=.008859?a=108.883*(r-s/200-16/116)/7.787:108.883*Math.pow(r-s/200,3)]}function _(t){var e,n=t[0],a=t[1],r=t[2];return(e=360*Math.atan2(r,a)/2/Math.PI)<0&&(e+=360),[n,Math.sqrt(a*a+r*r),e]}function O(t){return m(y(t))}function v(t){var e,n=t[1];return e=t[2]/360*2*Math.PI,[t[0],n*Math.cos(e),n*Math.sin(e)]}function C(t){return P[t]}var P={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]},M={};for(var x in P)M[JSON.stringify(P[x])]=x;var w=function(){return new N};for(var T in e){w[T+"Raw"]=function(t){return function(n){return"number"==typeof n&&(n=Array.prototype.slice.call(arguments)),e[t](n)}}(T);var S=/(\w+)2(\w+)/.exec(T),k=S[1],I=S[2];(w[k]=w[k]||{})[I]=w[T]=function(t){return function(n){"number"==typeof n&&(n=Array.prototype.slice.call(arguments));var a=e[t](n);if("string"==typeof a||void 0===a)return a;for(var r=0;r<a.length;r++)a[r]=Math.round(a[r]);return a}}(T)}var N=function(){this.convs={}};N.prototype.routeSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n))},N.prototype.setValues=function(t,e){return this.space=t,this.convs={},this.convs[t]=e,this},N.prototype.getValues=function(t){var e=this.convs[t];if(!e){var n=this.space;e=w[n][t](this.convs[n]),this.convs[t]=e}return e},["rgb","hsl","hsv","cmyk","keyword"].forEach((function(t){N.prototype[t]=function(e){return this.routeSpace(t,arguments)}}));var R=w,A={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]},E={getRgba:D,getHsla:L,getRgb:function(t){var e=D(t);return e&&e.slice(0,3)},getHsl:function(t){var e=L(t);return e&&e.slice(0,3)},getHwb:q,getAlpha:function(t){var e=D(t);return e?e[3]:(e=L(t))?e[3]:(e=q(t))?e[3]:void 0},hexString:function(t,e){return e=void 0!==e&&3===t.length?e:t[3],"#"+B(t[0])+B(t[1])+B(t[2])+(e>=0&&e<1?B(Math.round(255*e)):"")},rgbString:function(t,e){return e<1||t[3]&&t[3]<1?j(t,e):"rgb("+t[0]+", "+t[1]+", "+t[2]+")"},rgbaString:j,percentString:function(t,e){return e<1||t[3]&&t[3]<1?F(t,e):"rgb("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%)"},percentaString:F,hslString:function(t,e){return e<1||t[3]&&t[3]<1?z(t,e):"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)"},hslaString:z,hwbString:function(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+(void 0!==e&&1!==e?", "+e:"")+")"},keyword:function(t){return V[t.slice(0,3)]}};function D(t){if(t){var e=[0,0,0],n=1,a=t.match(/^#([a-fA-F0-9]{3,4})$/i),r="";if(a){r=(a=a[1])[3];for(var o=0;o<e.length;o++)e[o]=parseInt(a[o]+a[o],16);r&&(n=Math.round(parseInt(r+r,16)/255*100)/100)}else if(a=t.match(/^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i)){for(r=a[2],a=a[1],o=0;o<e.length;o++)e[o]=parseInt(a.slice(2*o,2*o+2),16);r&&(n=Math.round(parseInt(r,16)/255*100)/100)}else if(a=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=parseInt(a[o+1]);n=parseFloat(a[4])}else if(a=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/i)){for(o=0;o<e.length;o++)e[o]=Math.round(2.55*parseFloat(a[o+1]));n=parseFloat(a[4])}else if(a=t.match(/(\w+)/)){if("transparent"==a[1])return[0,0,0,0];if(!(e=A[a[1]]))return}for(o=0;o<e.length;o++)e[o]=G(e[o],0,255);return n=n||0==n?G(n,0,1):1,e[3]=n,e}}function L(t){if(t){var e=t.match(/^hsla?\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[G(parseInt(e[1]),0,360),G(parseFloat(e[2]),0,100),G(parseFloat(e[3]),0,100),G(isNaN(n)?1:n,0,1)]}}}function q(t){if(t){var e=t.match(/^hwb\(\s*([+-]?\d+)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)/);if(e){var n=parseFloat(e[4]);return[G(parseInt(e[1]),0,360),G(parseFloat(e[2]),0,100),G(parseFloat(e[3]),0,100),G(isNaN(n)?1:n,0,1)]}}}function j(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+e+")"}function F(t,e){return"rgba("+Math.round(t[0]/255*100)+"%, "+Math.round(t[1]/255*100)+"%, "+Math.round(t[2]/255*100)+"%, "+(e||t[3]||1)+")"}function z(t,e){return void 0===e&&(e=void 0!==t[3]?t[3]:1),"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+e+")"}function G(t,e,n){return Math.min(Math.max(e,t),n)}function B(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}var V={};for(var Y in A)V[A[Y]]=Y;var H=function(t){return t instanceof H?t:this instanceof H?(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 t?(e=E.getRgba(t))?this.setValues("rgb",e):(e=E.getHsla(t))?this.setValues("hsl",e):(e=E.getHwb(t))&&this.setValues("hwb",e):"object"==typeof t&&(void 0!==(e=t).r||void 0!==e.red?this.setValues("rgb",e):void 0!==e.l||void 0!==e.lightness?this.setValues("hsl",e):void 0!==e.v||void 0!==e.value?this.setValues("hsv",e):void 0!==e.w||void 0!==e.whiteness?this.setValues("hwb",e):void 0===e.c&&void 0===e.cyan||this.setValues("cmyk",e)))):new H(t);var e};H.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 t=this.values;return 1!==t.alpha?t.hwb.concat([t.alpha]):t.hwb},cmykArray:function(){return this.values.cmyk},rgbaArray:function(){var t=this.values;return t.rgb.concat([t.alpha])},hslaArray:function(){var t=this.values;return t.hsl.concat([t.alpha])},alpha:function(t){return void 0===t?this.values.alpha:(this.setValues("alpha",t),this)},red:function(t){return this.setChannel("rgb",0,t)},green:function(t){return this.setChannel("rgb",1,t)},blue:function(t){return this.setChannel("rgb",2,t)},hue:function(t){return t&&(t=(t%=360)<0?360+t:t),this.setChannel("hsl",0,t)},saturation:function(t){return this.setChannel("hsl",1,t)},lightness:function(t){return this.setChannel("hsl",2,t)},saturationv:function(t){return this.setChannel("hsv",1,t)},whiteness:function(t){return this.setChannel("hwb",1,t)},blackness:function(t){return this.setChannel("hwb",2,t)},value:function(t){return this.setChannel("hsv",2,t)},cyan:function(t){return this.setChannel("cmyk",0,t)},magenta:function(t){return this.setChannel("cmyk",1,t)},yellow:function(t){return this.setChannel("cmyk",2,t)},black:function(t){return this.setChannel("cmyk",3,t)},hexString:function(){return E.hexString(this.values.rgb)},rgbString:function(){return E.rgbString(this.values.rgb,this.values.alpha)},rgbaString:function(){return E.rgbaString(this.values.rgb,this.values.alpha)},percentString:function(){return E.percentString(this.values.rgb,this.values.alpha)},hslString:function(){return E.hslString(this.values.hsl,this.values.alpha)},hslaString:function(){return E.hslaString(this.values.hsl,this.values.alpha)},hwbString:function(){return E.hwbString(this.values.hwb,this.values.alpha)},keyword:function(){return E.keyword(this.values.rgb,this.values.alpha)},rgbNumber:function(){var t=this.values.rgb;return t[0]<<16|t[1]<<8|t[2]},luminosity:function(){for(var t=this.values.rgb,e=[],n=0;n<t.length;n++){var a=t[n]/255;e[n]=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}return.2126*e[0]+.7152*e[1]+.0722*e[2]},contrast:function(t){var e=this.luminosity(),n=t.luminosity();return e>n?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=t,a=void 0===e?.5:e,r=2*a-1,o=this.alpha()-n.alpha(),i=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,s=1-i;return this.rgb(i*this.red()+s*n.red(),i*this.green()+s*n.green(),i*this.blue()+s*n.blue()).alpha(this.alpha()*a+n.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new H,a=this.values,r=n.values;for(var o in a)a.hasOwnProperty(o)&&("[object Array]"===(e={}.toString.call(t=a[o]))?r[o]=t.slice(0):"[object Number]"===e?r[o]=t:console.error("unexpected color value:",t));return n}},H.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},H.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},H.prototype.getValues=function(t){for(var e=this.values,n={},a=0;a<t.length;a++)n[t.charAt(a)]=e[t][a];return 1!==e.alpha&&(n.a=e.alpha),n},H.prototype.setValues=function(t,e){var n,a,r=this.values,o=this.spaces,i=this.maxes,s=1;if(this.valid=!0,"alpha"===t)s=e;else if(e.length)r[t]=e.slice(0,t.length),s=e[t.length];else if(void 0!==e[t.charAt(0)]){for(n=0;n<t.length;n++)r[t][n]=e[t.charAt(n)];s=e.a}else if(void 0!==e[o[t][0]]){var c=o[t];for(n=0;n<t.length;n++)r[t][n]=e[c[n]];s=e.alpha}if(r.alpha=Math.max(0,Math.min(1,void 0===s?r.alpha:s)),"alpha"===t)return!1;for(n=0;n<t.length;n++)a=Math.max(0,Math.min(i[t][n],r[t][n])),r[t][n]=Math.round(a);for(var l in o)l!==t&&(r[l]=R[t][l](r[t]));return!0},H.prototype.setSpace=function(t,e){var n=e[0];return void 0===n?this.getValues(t):("number"==typeof n&&(n=Array.prototype.slice.call(e)),this.setValues(t,n),this)},H.prototype.setChannel=function(t,e,n){var a=this.values[t];return void 0===n?a[e]:n===a[e]?this:(a[e]=n,this.setValues(t,a),this)},"undefined"!=typeof window&&(window.Color=H);var U,W=H,K={noop:function(){},uid:(U=0,function(){return U++}),isNullOrUndef:function(t){return null==t},isArray:function(t){if(Array.isArray&&Array.isArray(t))return!0;var e=Object.prototype.toString.call(t);return"[object"===e.substr(0,7)&&"Array]"===e.substr(-6)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},isFinite:function(t){return("number"==typeof t||t instanceof Number)&&isFinite(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return K.valueOrDefault(K.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var r,o,i;if(K.isArray(t))if(o=t.length,a)for(r=o-1;r>=0;r--)e.call(n,t[r],r);else for(r=0;r<o;r++)e.call(n,t[r],r);else if(K.isObject(t))for(o=(i=Object.keys(t)).length,r=0;r<o;r++)e.call(n,t[i[r]],i[r])},arrayEquals:function(t,e){var n,a,r,o;if(!t||!e||t.length!==e.length)return!1;for(n=0,a=t.length;n<a;++n)if(o=e[n],(r=t[n])instanceof Array&&o instanceof Array){if(!K.arrayEquals(r,o))return!1}else if(r!==o)return!1;return!0},clone:function(t){if(K.isArray(t))return t.map(K.clone);if(K.isObject(t)){for(var e={},n=Object.keys(t),a=n.length,r=0;r<a;++r)e[n[r]]=K.clone(t[n[r]]);return e}return t},_merger:function(t,e,n,a){var r=e[t],o=n[t];K.isObject(r)&&K.isObject(o)?K.merge(r,o,a):e[t]=K.clone(o)},_mergerIf:function(t,e,n){var a=e[t],r=n[t];K.isObject(a)&&K.isObject(r)?K.mergeIf(a,r):e.hasOwnProperty(t)||(e[t]=K.clone(r))},merge:function(t,e,n){var a,r,o,i,s,c=K.isArray(e)?e:[e],l=c.length;if(!K.isObject(t))return t;for(a=(n=n||{}).merger||K._merger,r=0;r<l;++r)if(K.isObject(e=c[r]))for(s=0,i=(o=Object.keys(e)).length;s<i;++s)a(o[s],t,e,n);return t},mergeIf:function(t,e){return K.merge(t,e,{merger:K._mergerIf})},extend:function(t){for(var e=function(e,n){t[n]=e},n=1,a=arguments.length;n<a;++n)K.each(arguments[n],e);return t},inherits:function(t){var e=this,n=t&&t.hasOwnProperty("constructor")?t.constructor:function(){return e.apply(this,arguments)},a=function(){this.constructor=n};return a.prototype=e.prototype,n.prototype=new a,n.extend=K.inherits,t&&K.extend(n.prototype,t),n.__super__=e.prototype,n}},$=K;K.callCallback=K.callback,K.indexOf=function(t,e,n){return Array.prototype.indexOf.call(t,e,n)},K.getValueOrDefault=K.valueOrDefault,K.getValueAtIndexOrDefault=K.valueAtIndexOrDefault;var Z={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return-t*(t-2)},easeInOutQuad:function(t){return(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1)},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return(t-=1)*t*t+1},easeInOutCubic:function(t){return(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return-((t-=1)*t*t*t-1)},easeInOutQuart:function(t){return(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return(t-=1)*t*t*t*t+1},easeInOutQuint:function(t){return(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},easeInSine:function(t){return 1-Math.cos(t*(Math.PI/2))},easeOutSine:function(t){return Math.sin(t*(Math.PI/2))},easeInOutSine:function(t){return-.5*(Math.cos(Math.PI*t)-1)},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:(t/=.5)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*--t))},easeInCirc:function(t){return t>=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),-a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:1===t?1:(n||(n=.3),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),a*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,a=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),a<1?(a=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/a),t<1?a*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:a*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-Z.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*Z.easeInBounce(2*t):.5*Z.easeOutBounce(2*t-1)+.5}},J={effects:Z};$.easingEffects=Z;var X=Math.PI,Q=X/180,tt=2*X,et=X/2,nt=X/4,at=2*X/3,rt={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,a,r,o){if(o){var i=Math.min(o,r/2,a/2),s=e+i,c=n+i,l=e+a-i,d=n+r-i;t.moveTo(e,c),s<l&&c<d?(t.arc(s,c,i,-X,-et),t.arc(l,c,i,-et,0),t.arc(l,d,i,0,et),t.arc(s,d,i,et,X)):s<l?(t.moveTo(s,n),t.arc(l,c,i,-et,et),t.arc(s,c,i,et,X+et)):c<d?(t.arc(s,c,i,-X,0),t.arc(s,d,i,0,X)):t.arc(s,c,i,-X,X),t.closePath(),t.moveTo(e,n)}else t.rect(e,n,a,r)},drawPoint:function(t,e,n,a,r,o){var i,s,c,l,d,u=(o||0)*Q;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(i=e.toString())&&"[object HTMLCanvasElement]"!==i){if(!(isNaN(n)||n<=0)){switch(t.beginPath(),e){default:t.arc(a,r,n,0,tt),t.closePath();break;case"triangle":t.moveTo(a+Math.sin(u)*n,r-Math.cos(u)*n),u+=at,t.lineTo(a+Math.sin(u)*n,r-Math.cos(u)*n),u+=at,t.lineTo(a+Math.sin(u)*n,r-Math.cos(u)*n),t.closePath();break;case"rectRounded":l=n-(d=.516*n),s=Math.cos(u+nt)*l,c=Math.sin(u+nt)*l,t.arc(a-s,r-c,d,u-X,u-et),t.arc(a+c,r-s,d,u-et,u),t.arc(a+s,r+c,d,u,u+et),t.arc(a-c,r+s,d,u+et,u+X),t.closePath();break;case"rect":if(!o){l=Math.SQRT1_2*n,t.rect(a-l,r-l,2*l,2*l);break}u+=nt;case"rectRot":s=Math.cos(u)*n,c=Math.sin(u)*n,t.moveTo(a-s,r-c),t.lineTo(a+c,r-s),t.lineTo(a+s,r+c),t.lineTo(a-c,r+s),t.closePath();break;case"crossRot":u+=nt;case"cross":s=Math.cos(u)*n,c=Math.sin(u)*n,t.moveTo(a-s,r-c),t.lineTo(a+s,r+c),t.moveTo(a+c,r-s),t.lineTo(a-c,r+s);break;case"star":s=Math.cos(u)*n,c=Math.sin(u)*n,t.moveTo(a-s,r-c),t.lineTo(a+s,r+c),t.moveTo(a+c,r-s),t.lineTo(a-c,r+s),u+=nt,s=Math.cos(u)*n,c=Math.sin(u)*n,t.moveTo(a-s,r-c),t.lineTo(a+s,r+c),t.moveTo(a+c,r-s),t.lineTo(a-c,r+s);break;case"line":s=Math.cos(u)*n,c=Math.sin(u)*n,t.moveTo(a-s,r-c),t.lineTo(a+s,r+c);break;case"dash":t.moveTo(a,r),t.lineTo(a+Math.cos(u)*n,r+Math.sin(u)*n)}t.fill(),t.stroke()}}else t.drawImage(e,a-e.width/2,r-e.height/2,e.width,e.height)},_isPointInArea:function(t,e){return t.x>e.left-1e-6&&t.x<e.right+1e-6&&t.y>e.top-1e-6&&t.y<e.bottom+1e-6},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,a){var r=n.steppedLine;if(r){if("middle"===r){var o=(e.x+n.x)/2;t.lineTo(o,a?n.y:e.y),t.lineTo(o,a?e.y:n.y)}else"after"===r&&!a||"after"!==r&&a?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y);t.lineTo(n.x,n.y)}else n.tension?t.bezierCurveTo(a?e.controlPointPreviousX:e.controlPointNextX,a?e.controlPointPreviousY:e.controlPointNextY,a?n.controlPointNextX:n.controlPointPreviousX,a?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}},ot=rt;$.clear=rt.clear,$.drawRoundedRectangle=function(t){t.beginPath(),rt.roundedRect.apply(rt,arguments)};var it={_set:function(t,e){return $.merge(this[t]||(this[t]={}),e)}};it._set("global",{defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",defaultLineHeight:1.2,showLines:!0});var st=it,ct=$.valueOrDefault,lt={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,r;return $.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,r=+t.left||0):e=n=a=r=+t||0,{top:e,right:n,bottom:a,left:r,height:e+a,width:r+n}},_parseFont:function(t){var e=st.global,n=ct(t.fontSize,e.defaultFontSize),a={family:ct(t.fontFamily,e.defaultFontFamily),lineHeight:$.options.toLineHeight(ct(t.lineHeight,e.defaultLineHeight),n),size:n,style:ct(t.fontStyle,e.defaultFontStyle),weight:null,string:""};return a.string=function(t){return!t||$.isNullOrUndef(t.size)||$.isNullOrUndef(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}(a),a},resolve:function(t,e,n){var a,r,o;for(a=0,r=t.length;a<r;++a)if(void 0!==(o=t[a])&&(void 0!==e&&"function"==typeof o&&(o=o(e)),void 0!==n&&$.isArray(o)&&(o=o[n]),void 0!==o))return o}},dt=$,ut=ot,gt=lt;dt.easing=J,dt.canvas=ut,dt.options=gt;var ft=function(t){dt.extend(this,t),this.initialize.apply(this,arguments)};dt.extend(ft.prototype,{initialize:function(){this.hidden=!1},pivot:function(){var t=this;return t._view||(t._view=dt.clone(t._model)),t._start={},t},transition:function(t){var e=this,n=e._model,a=e._start,r=e._view;return n&&1!==t?(r||(r=e._view={}),a||(a=e._start={}),function(t,e,n,a){var r,o,i,s,c,l,d,u,g,f=Object.keys(n);for(r=0,o=f.length;r<o;++r)if(l=n[i=f[r]],e.hasOwnProperty(i)||(e[i]=l),(s=e[i])!==l&&"_"!==i[0]){if(t.hasOwnProperty(i)||(t[i]=s),(d=typeof l)==typeof(c=t[i]))if("string"===d){if((u=W(c)).valid&&(g=W(l)).valid){e[i]=g.mix(u,a).rgbString();continue}}else if(dt.isFinite(c)&&dt.isFinite(l)){e[i]=c+(l-c)*a;continue}e[i]=l}}(a,r,n,t),e):(e._view=n,e._start=null,e)},tooltipPosition:function(){return{x:this._model.x,y:this._model.y}},hasValue:function(){return dt.isNumber(this._model.x)&&dt.isNumber(this._model.y)}}),ft.extend=dt.inherits;var pt=ft,mt=pt.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),ht=mt;Object.defineProperty(mt.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(mt.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}}),st._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:dt.noop,onComplete:dt.noop}});var bt={animations:[],request:null,addAnimation:function(t,e,n,a){var r,o,i=this.animations;for(e.chart=t,e.startTime=Date.now(),e.duration=n,a||(t.animating=!0),r=0,o=i.length;r<o;++r)if(i[r].chart===t)return void(i[r]=e);i.push(e),1===i.length&&this.requestAnimationFrame()},cancelAnimation:function(t){var e=dt.findIndex(this.animations,(function(e){return e.chart===t}));-1!==e&&(this.animations.splice(e,1),t.animating=!1)},requestAnimationFrame:function(){var t=this;null===t.request&&(t.request=dt.requestAnimFrame.call(window,(function(){t.request=null,t.startDigest()})))},startDigest:function(){this.advance(),this.animations.length>0&&this.requestAnimationFrame()},advance:function(){for(var t,e,n,a,r=this.animations,o=0;o<r.length;)e=(t=r[o]).chart,n=t.numSteps,a=Math.floor((Date.now()-t.startTime)/t.duration*n)+1,t.currentStep=Math.min(a,n),dt.callback(t.render,[e,t],e),dt.callback(t.onAnimationProgress,[t],e),t.currentStep>=n?(dt.callback(t.onAnimationComplete,[t],e),e.animating=!1,r.splice(o,1)):++o}},yt=dt.options.resolve,_t=["push","pop","shift","splice","unshift"];function Ot(t,e){var n=t._chartjs;if(n){var a=n.listeners,r=a.indexOf(e);-1!==r&&a.splice(r,1),a.length>0||(_t.forEach((function(e){delete t[e]})),delete t._chartjs)}}var vt=function(t,e){this.initialize(t,e)};dt.extend(vt.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){this.chart=t,this.index=e,this.linkScales(),this.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null!==e.xAxisID&&e.xAxisID in t.chart.scales||(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null!==e.yAxisID&&e.yAxisID in t.chart.scales||(e.yAxisID=n.yAxisID||t.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(t){return this.chart.scales[t]},_getValueScaleId:function(){return this.getMeta().yAxisID},_getIndexScaleId:function(){return this.getMeta().xAxisID},_getValueScale:function(){return this.getScaleForId(this._getValueScaleId())},_getIndexScale:function(){return this.getScaleForId(this._getIndexScaleId())},reset:function(){this.update(!0)},destroy:function(){this._data&&Ot(this._data,this)},createMetaDataset:function(){var t=this.datasetElementType;return t&&new t({_chart:this.chart,_datasetIndex:this.index})},createMetaData:function(t){var e=this.dataElementType;return e&&new e({_chart:this.chart,_datasetIndex:this.index,_index:t})},addElements:function(){var t,e,n=this.getMeta(),a=this.getDataset().data||[],r=n.data;for(t=0,e=a.length;t<e;++t)r[t]=r[t]||this.createMetaData(t);n.dataset=n.dataset||this.createMetaDataset()},addElementAndReset:function(t){var e=this.createMetaData(t);this.getMeta().data.splice(t,0,e),this.updateElement(e,t,!0)},buildOrUpdateElements:function(){var t,e,n=this,a=n.getDataset(),r=a.data||(a.data=[]);n._data!==r&&(n._data&&Ot(n._data,n),r&&Object.isExtensible(r)&&(e=n,(t=r)._chartjs?t._chartjs.listeners.push(e):(Object.defineProperty(t,"_chartjs",{configurable:!0,enumerable:!1,value:{listeners:[e]}}),_t.forEach((function(e){var n="onData"+e.charAt(0).toUpperCase()+e.slice(1),a=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:function(){var e=Array.prototype.slice.call(arguments),r=a.apply(this,e);return dt.each(t._chartjs.listeners,(function(t){"function"==typeof t[n]&&t[n].apply(t,e)})),r}})})))),n._data=r),n.resyncElements()},update:dt.noop,transition:function(t){for(var e=this.getMeta(),n=e.data||[],a=n.length,r=0;r<a;++r)n[r].transition(t);e.dataset&&e.dataset.transition(t)},draw:function(){var t=this.getMeta(),e=t.data||[],n=e.length,a=0;for(t.dataset&&t.dataset.draw();a<n;++a)e[a].draw()},removeHoverStyle:function(t){dt.merge(t._model,t.$previousStyle||{}),delete t.$previousStyle},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t._index,a=t.custom||{},r=t._model,o=dt.getHoverColor;t.$previousStyle={backgroundColor:r.backgroundColor,borderColor:r.borderColor,borderWidth:r.borderWidth},r.backgroundColor=yt([a.hoverBackgroundColor,e.hoverBackgroundColor,o(r.backgroundColor)],void 0,n),r.borderColor=yt([a.hoverBorderColor,e.hoverBorderColor,o(r.borderColor)],void 0,n),r.borderWidth=yt([a.hoverBorderWidth,e.hoverBorderWidth,r.borderWidth],void 0,n)},resyncElements:function(){var t=this.getMeta(),e=this.getDataset().data,n=t.data.length,a=e.length;a<n?t.data.splice(a,n-a):a>n&&this.insertElements(n,a-n)},insertElements:function(t,e){for(var n=0;n<e;++n)this.addElementAndReset(t+n)},onDataPush:function(){var t=arguments.length;this.insertElements(this.getDataset().data.length-t,t)},onDataPop:function(){this.getMeta().data.pop()},onDataShift:function(){this.getMeta().data.shift()},onDataSplice:function(t,e){this.getMeta().data.splice(t,e),this.insertElements(t,arguments.length-2)},onDataUnshift:function(){this.insertElements(0,arguments.length)}}),vt.extend=dt.inherits;var Ct=vt;st._set("global",{elements:{arc:{backgroundColor:st.global.defaultColor,borderColor:"#fff",borderWidth:2,borderAlign:"center"}}});var Pt=pt.extend({inLabelRange:function(t){var e=this._view;return!!e&&Math.pow(t-e.x,2)<Math.pow(e.radius+e.hoverRadius,2)},inRange:function(t,e){var n=this._view;if(n){for(var a=dt.getAngleFromPoint(n,{x:t,y:e}),r=a.angle,o=a.distance,i=n.startAngle,s=n.endAngle;s<i;)s+=2*Math.PI;for(;r>s;)r-=2*Math.PI;for(;r<i;)r+=2*Math.PI;return r>=i&&r<=s&&o>=n.innerRadius&&o<=n.outerRadius}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t,e=this._chart.ctx,n=this._view,a=n.startAngle,r=n.endAngle,o="inner"===n.borderAlign?.33:0;e.save(),e.beginPath(),e.arc(n.x,n.y,Math.max(n.outerRadius-o,0),a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.fillStyle=n.backgroundColor,e.fill(),n.borderWidth&&("inner"===n.borderAlign?(e.beginPath(),e.arc(n.x,n.y,n.outerRadius,a-(t=o/n.outerRadius),r+t),n.innerRadius>o?e.arc(n.x,n.y,n.innerRadius-o,r+(t=o/n.innerRadius),a-t,!0):e.arc(n.x,n.y,o,r+Math.PI/2,a-Math.PI/2),e.closePath(),e.clip(),e.beginPath(),e.arc(n.x,n.y,n.outerRadius,a,r),e.arc(n.x,n.y,n.innerRadius,r,a,!0),e.closePath(),e.lineWidth=2*n.borderWidth,e.lineJoin="round"):(e.lineWidth=n.borderWidth,e.lineJoin="bevel"),e.strokeStyle=n.borderColor,e.stroke()),e.restore()}}),Mt=dt.valueOrDefault,xt=st.global.defaultColor;st._set("global",{elements:{line:{tension:.4,backgroundColor:xt,borderWidth:3,borderColor:xt,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}});var wt=pt.extend({draw:function(){var t,e,n,a,r=this._view,o=this._chart.ctx,i=r.spanGaps,s=this._children.slice(),c=st.global,l=c.elements.line,d=-1;for(this._loop&&s.length&&s.push(s[0]),o.save(),o.lineCap=r.borderCapStyle||l.borderCapStyle,o.setLineDash&&o.setLineDash(r.borderDash||l.borderDash),o.lineDashOffset=Mt(r.borderDashOffset,l.borderDashOffset),o.lineJoin=r.borderJoinStyle||l.borderJoinStyle,o.lineWidth=Mt(r.borderWidth,l.borderWidth),o.strokeStyle=r.borderColor||c.defaultColor,o.beginPath(),d=-1,t=0;t<s.length;++t)e=s[t],n=dt.previousItem(s,t),a=e._view,0===t?a.skip||(o.moveTo(a.x,a.y),d=t):(n=-1===d?n:s[d],a.skip||(d!==t-1&&!i||-1===d?o.moveTo(a.x,a.y):dt.canvas.lineTo(o,n._view,e._view),d=t));o.stroke(),o.restore()}}),Tt=dt.valueOrDefault,St=st.global.defaultColor;function kt(t){var e=this._view;return!!e&&Math.abs(t-e.x)<e.radius+e.hitRadius}st._set("global",{elements:{point:{radius:3,pointStyle:"circle",backgroundColor:St,borderColor:St,borderWidth:1,hitRadius:1,hoverRadius:4,hoverBorderWidth:1}}});var It=pt.extend({inRange:function(t,e){var n=this._view;return!!n&&Math.pow(t-n.x,2)+Math.pow(e-n.y,2)<Math.pow(n.hitRadius+n.radius,2)},inLabelRange:kt,inXRange:kt,inYRange:function(t){var e=this._view;return!!e&&Math.abs(t-e.y)<e.radius+e.hitRadius},getCenterPoint:function(){var t=this._view;return{x:t.x,y:t.y}},getArea:function(){return Math.PI*Math.pow(this._view.radius,2)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y,padding:t.radius+t.borderWidth}},draw:function(t){var e=this._view,n=this._chart.ctx,a=e.pointStyle,r=e.rotation,o=e.radius,i=e.x,s=e.y,c=st.global,l=c.defaultColor;e.skip||(void 0===t||dt.canvas._isPointInArea(e,t))&&(n.strokeStyle=e.borderColor||l,n.lineWidth=Tt(e.borderWidth,c.elements.point.borderWidth),n.fillStyle=e.backgroundColor||l,dt.canvas.drawPoint(n,a,o,i,s,r))}}),Nt=st.global.defaultColor;function Rt(t){return t&&void 0!==t.width}function At(t){var e,n,a,r,o;return Rt(t)?(e=t.x-(o=t.width/2),n=t.x+o,a=Math.min(t.y,t.base),r=Math.max(t.y,t.base)):(o=t.height/2,e=Math.min(t.x,t.base),n=Math.max(t.x,t.base),a=t.y-o,r=t.y+o),{left:e,top:a,right:n,bottom:r}}function Et(t,e,n){return t===e?n:t===n?e:t}function Dt(t,e,n){var a=null===e,r=null===n,o=!(!t||a&&r)&&At(t);return o&&(a||e>=o.left&&e<=o.right)&&(r||n>=o.top&&n<=o.bottom)}st._set("global",{elements:{rectangle:{backgroundColor:Nt,borderColor:Nt,borderSkipped:"bottom",borderWidth:0}}});var Lt=pt.extend({draw:function(){var t=this._chart.ctx,e=this._view,n=function(t){var e=At(t),n=e.right-e.left,a=e.bottom-e.top,r=function(t,e,n){var a,r,o,i,s=t.borderWidth,c=function(t){var e=t.borderSkipped,n={};return e?(t.horizontal?t.base>t.x&&(e=Et(e,"left","right")):t.base<t.y&&(e=Et(e,"bottom","top")),n[e]=!0,n):n}(t);return dt.isObject(s)?(a=+s.top||0,r=+s.right||0,o=+s.bottom||0,i=+s.left||0):a=r=o=i=+s||0,{t:c.top||a<0?0:a>n?n:a,r:c.right||r<0?0:r>e?e:r,b:c.bottom||o<0?0:o>n?n:o,l:c.left||i<0?0:i>e?e:i}}(t,n/2,a/2);return{outer:{x:e.left,y:e.top,w:n,h:a},inner:{x:e.left+r.l,y:e.top+r.t,w:n-r.l-r.r,h:a-r.t-r.b}}}(e),a=n.outer,r=n.inner;t.fillStyle=e.backgroundColor,t.fillRect(a.x,a.y,a.w,a.h),a.w===r.w&&a.h===r.h||(t.save(),t.beginPath(),t.rect(a.x,a.y,a.w,a.h),t.clip(),t.fillStyle=e.borderColor,t.rect(r.x,r.y,r.w,r.h),t.fill("evenodd"),t.restore())},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){return Dt(this._view,t,e)},inLabelRange:function(t,e){var n=this._view;return Rt(n)?Dt(n,t,null):Dt(n,null,e)},inXRange:function(t){return Dt(this._view,t,null)},inYRange:function(t){return Dt(this._view,null,t)},getCenterPoint:function(){var t,e,n=this._view;return Rt(n)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return Rt(t)?t.width*Math.abs(t.y-t.base):t.height*Math.abs(t.x-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}}),qt={},jt=wt,Ft=It,zt=Lt;qt.Arc=Pt,qt.Line=jt,qt.Point=Ft,qt.Rectangle=zt;var Gt=dt.options.resolve;st._set("bar",{hover:{mode:"label"},scales:{xAxes:[{type:"category",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}],yAxes:[{type:"linear"}]}});var Bt=Ct.extend({dataElementType:qt.Rectangle,initialize:function(){var t,e=this;Ct.prototype.initialize.apply(e,arguments),(t=e.getMeta()).stack=e.getDataset().stack,t.bar=!0},update:function(t){var e,n,a=this.getMeta().data;for(this._ruler=this.getRuler(),e=0,n=a.length;e<n;++e)this.updateElement(a[e],e,t)},updateElement:function(t,e,n){var a=this,r=a.getMeta(),o=a.getDataset(),i=a._resolveElementOptions(t,e);t._xScale=a.getScaleForId(r.xAxisID),t._yScale=a.getScaleForId(r.yAxisID),t._datasetIndex=a.index,t._index=e,t._model={backgroundColor:i.backgroundColor,borderColor:i.borderColor,borderSkipped:i.borderSkipped,borderWidth:i.borderWidth,datasetLabel:o.label,label:a.chart.data.labels[e]},a._updateElementGeometry(t,e,n),t.pivot()},_updateElementGeometry:function(t,e,n){var a=this,r=t._model,o=a._getValueScale(),i=o.getBasePixel(),s=o.isHorizontal(),c=a._ruler||a.getRuler(),l=a.calculateBarValuePixels(a.index,e),d=a.calculateBarIndexPixels(a.index,e,c);r.horizontal=s,r.base=n?i:l.base,r.x=s?n?i:l.head:d.center,r.y=s?d.center:n?i:l.head,r.height=s?d.size:void 0,r.width=s?void 0:d.size},_getStacks:function(t){var e,n,a=this.chart,r=this._getIndexScale().options.stacked,o=void 0===t?a.data.datasets.length:t+1,i=[];for(e=0;e<o;++e)(n=a.getDatasetMeta(e)).bar&&a.isDatasetVisible(e)&&(!1===r||!0===r&&-1===i.indexOf(n.stack)||void 0===r&&(void 0===n.stack||-1===i.indexOf(n.stack)))&&i.push(n.stack);return i},getStackCount:function(){return this._getStacks().length},getStackIndex:function(t,e){var n=this._getStacks(t),a=void 0!==e?n.indexOf(e):-1;return-1===a?n.length-1:a},getRuler:function(){var t,e,n=this._getIndexScale(),a=this.getStackCount(),r=this.index,o=n.isHorizontal(),i=o?n.left:n.top,s=i+(o?n.width:n.height),c=[];for(t=0,e=this.getMeta().data.length;t<e;++t)c.push(n.getPixelForValue(null,t,r));return{min:dt.isNullOrUndef(n.options.barThickness)?function(t,e){var n,a,r,o,i=t.isHorizontal()?t.width:t.height,s=t.getTicks();for(r=1,o=e.length;r<o;++r)i=Math.min(i,Math.abs(e[r]-e[r-1]));for(r=0,o=s.length;r<o;++r)a=t.getPixelForTick(r),i=r>0?Math.min(i,a-n):i,n=a;return i}(n,c):-1,pixels:c,start:i,end:s,stackCount:a,scale:n}},calculateBarValuePixels:function(t,e){var n,a,r,o,i,s,c=this.chart,l=this.getMeta(),d=this._getValueScale(),u=d.isHorizontal(),g=c.data.datasets,f=+d.getRightValue(g[t].data[e]),p=d.options.minBarLength,m=d.options.stacked,h=l.stack,b=0;if(m||void 0===m&&void 0!==h)for(n=0;n<t;++n)(a=c.getDatasetMeta(n)).bar&&a.stack===h&&a.controller._getValueScaleId()===d.id&&c.isDatasetVisible(n)&&(r=+d.getRightValue(g[n].data[e]),(f<0&&r<0||f>=0&&r>0)&&(b+=r));return o=d.getPixelForValue(b),s=(i=d.getPixelForValue(b+f))-o,void 0!==p&&Math.abs(s)<p&&(s=p,i=f>=0&&!u||f<0&&u?o-p:o+p),{size:s,base:o,head:i,center:i+s/2}},calculateBarIndexPixels:function(t,e,n){var a=n.scale.options,r="flex"===a.barThickness?function(t,e,n){var a,r=e.pixels,o=r[t],i=t>0?r[t-1]:null,s=t<r.length-1?r[t+1]:null,c=n.categoryPercentage;return null===i&&(i=o-(null===s?e.end-e.start:s-o)),null===s&&(s=o+o-i),a=o-(o-Math.min(i,s))/2*c,{chunk:Math.abs(s-i)/2*c/e.stackCount,ratio:n.barPercentage,start:a}}(e,n,a):function(t,e,n){var a,r,o=n.barThickness,i=e.stackCount,s=e.pixels[t];return dt.isNullOrUndef(o)?(a=e.min*n.categoryPercentage,r=n.barPercentage):(a=o*i,r=1),{chunk:a/i,ratio:r,start:s-a/2}}(e,n,a),o=this.getStackIndex(t,this.getMeta().stack),i=r.start+r.chunk*o+r.chunk/2,s=Math.min(dt.valueOrDefault(a.maxBarThickness,1/0),r.chunk*r.ratio);return{base:i-s/2,head:i+s/2,center:i,size:s}},draw:function(){var t=this.chart,e=this._getValueScale(),n=this.getMeta().data,a=this.getDataset(),r=n.length,o=0;for(dt.canvas.clipArea(t.ctx,t.chartArea);o<r;++o)isNaN(e.getRightValue(a.data[o]))||n[o].draw();dt.canvas.unclipArea(t.ctx)},_resolveElementOptions:function(t,e){var n,a,r,o=this.chart,i=o.data.datasets[this.index],s=t.custom||{},c=o.options.elements.rectangle,l={},d={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},u=["backgroundColor","borderColor","borderSkipped","borderWidth"];for(n=0,a=u.length;n<a;++n)l[r=u[n]]=Gt([s[r],i[r],c[r]],d,e);return l}}),Vt=dt.valueOrDefault,Yt=dt.options.resolve;st._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(t,e){return(e.datasets[t.datasetIndex].label||"")+": ("+t.xLabel+", "+t.yLabel+", "+e.datasets[t.datasetIndex].data[t.index].r+")"}}}});var Ht=Ct.extend({dataElementType:qt.Point,update:function(t){var e=this,n=e.getMeta();dt.each(n.data,(function(n,a){e.updateElement(n,a,t)}))},updateElement:function(t,e,n){var a=this,r=a.getMeta(),o=t.custom||{},i=a.getScaleForId(r.xAxisID),s=a.getScaleForId(r.yAxisID),c=a._resolveElementOptions(t,e),l=a.getDataset().data[e],d=a.index,u=n?i.getPixelForDecimal(.5):i.getPixelForValue("object"==typeof l?l:NaN,e,d),g=n?s.getBasePixel():s.getPixelForValue(l,e,d);t._xScale=i,t._yScale=s,t._options=c,t._datasetIndex=d,t._index=e,t._model={backgroundColor:c.backgroundColor,borderColor:c.borderColor,borderWidth:c.borderWidth,hitRadius:c.hitRadius,pointStyle:c.pointStyle,rotation:c.rotation,radius:n?0:c.radius,skip:o.skip||isNaN(u)||isNaN(g),x:u,y:g},t.pivot()},setHoverStyle:function(t){var e=t._model,n=t._options,a=dt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Vt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Vt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Vt(n.hoverBorderWidth,n.borderWidth),e.radius=n.radius+n.hoverRadius},_resolveElementOptions:function(t,e){var n,a,r,o=this.chart,i=o.data.datasets[this.index],s=t.custom||{},c=o.options.elements.point,l=i.data[e],d={},u={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},g=["backgroundColor","borderColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","hoverRadius","hitRadius","pointStyle","rotation"];for(n=0,a=g.length;n<a;++n)d[r=g[n]]=Yt([s[r],i[r],c[r]],u,e);return d.radius=Yt([s.radius,l?l.r:void 0,i.radius,c.radius],u,e),d}}),Ut=dt.options.resolve,Wt=dt.valueOrDefault;st._set("doughnut",{animation:{animateRotate:!0,animateScale:!1},hover:{mode:"single"},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var o=0;o<a[0].data.length;++o)e.push('<li><span style="background-color:'+a[0].backgroundColor[o]+'"></span>'),r[o]&&e.push(r[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map((function(n,a){var r=t.getDatasetMeta(0),o=e.datasets[0],i=r.data[a],s=i&&i.custom||{},c=t.options.elements.arc;return{text:n,fillStyle:Ut([s.backgroundColor,o.backgroundColor,c.backgroundColor],void 0,a),strokeStyle:Ut([s.borderColor,o.borderColor,c.borderColor],void 0,a),lineWidth:Ut([s.borderWidth,o.borderWidth,c.borderWidth],void 0,a),hidden:isNaN(o.data[a])||r.data[a].hidden,index:a}})):[]}},onClick:function(t,e){var n,a,r,o=e.index,i=this.chart;for(n=0,a=(i.data.datasets||[]).length;n<a;++n)(r=i.getDatasetMeta(n)).data[o]&&(r.data[o].hidden=!r.data[o].hidden);i.update()}},cutoutPercentage:50,rotation:-.5*Math.PI,circumference:2*Math.PI,tooltips:{callbacks:{title:function(){return""},label:function(t,e){var n=e.labels[t.index],a=": "+e.datasets[t.datasetIndex].data[t.index];return dt.isArray(n)?(n=n.slice())[0]+=a:n+=a,n}}}});var Kt=Ct.extend({dataElementType:qt.Arc,linkScales:dt.noop,getRingIndex:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&++e;return e},update:function(t){var e,n,a=this,r=a.chart,o=r.chartArea,i=r.options,s=o.right-o.left,c=o.bottom-o.top,l=Math.min(s,c),d={x:0,y:0},u=a.getMeta(),g=u.data,f=i.cutoutPercentage,p=i.circumference,m=a._getRingWeight(a.index);if(p<2*Math.PI){var h=i.rotation%(2*Math.PI),b=(h+=2*Math.PI*(h>=Math.PI?-1:h<-Math.PI?1:0))+p,y={x:Math.cos(h),y:Math.sin(h)},_={x:Math.cos(b),y:Math.sin(b)},O=h<=0&&b>=0||h<=2*Math.PI&&2*Math.PI<=b,v=h<=.5*Math.PI&&.5*Math.PI<=b||h<=2.5*Math.PI&&2.5*Math.PI<=b,C=h<=-Math.PI&&-Math.PI<=b||h<=Math.PI&&Math.PI<=b,P=h<=.5*-Math.PI&&.5*-Math.PI<=b||h<=1.5*Math.PI&&1.5*Math.PI<=b,M=f/100,x={x:C?-1:Math.min(y.x*(y.x<0?1:M),_.x*(_.x<0?1:M)),y:P?-1:Math.min(y.y*(y.y<0?1:M),_.y*(_.y<0?1:M))},w={x:O?1:Math.max(y.x*(y.x>0?1:M),_.x*(_.x>0?1:M)),y:v?1:Math.max(y.y*(y.y>0?1:M),_.y*(_.y>0?1:M))},T={width:.5*(w.x-x.x),height:.5*(w.y-x.y)};l=Math.min(s/T.width,c/T.height),d={x:-.5*(w.x+x.x),y:-.5*(w.y+x.y)}}for(e=0,n=g.length;e<n;++e)g[e]._options=a._resolveElementOptions(g[e],e);for(r.borderWidth=a.getMaxBorderWidth(),r.outerRadius=Math.max((l-r.borderWidth)/2,0),r.innerRadius=Math.max(f?r.outerRadius/100*f:0,0),r.radiusLength=(r.outerRadius-r.innerRadius)/(a._getVisibleDatasetWeightTotal()||1),r.offsetX=d.x*r.outerRadius,r.offsetY=d.y*r.outerRadius,u.total=a.calculateTotal(),a.outerRadius=r.outerRadius-r.radiusLength*a._getRingWeightOffset(a.index),a.innerRadius=Math.max(a.outerRadius-r.radiusLength*m,0),e=0,n=g.length;e<n;++e)a.updateElement(g[e],e,t)},updateElement:function(t,e,n){var a=this,r=a.chart,o=r.chartArea,i=r.options,s=i.animation,c=(o.left+o.right)/2,l=(o.top+o.bottom)/2,d=i.rotation,u=i.rotation,g=a.getDataset(),f=n&&s.animateRotate?0:t.hidden?0:a.calculateCircumference(g.data[e])*(i.circumference/(2*Math.PI)),p=t._options||{};dt.extend(t,{_datasetIndex:a.index,_index:e,_model:{backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,borderAlign:p.borderAlign,x:c+r.offsetX,y:l+r.offsetY,startAngle:d,endAngle:u,circumference:f,outerRadius:n&&s.animateScale?0:a.outerRadius,innerRadius:n&&s.animateScale?0:a.innerRadius,label:dt.valueAtIndexOrDefault(g.label,e,r.data.labels[e])}});var m=t._model;n&&s.animateRotate||(m.startAngle=0===e?i.rotation:a.getMeta().data[e-1]._model.endAngle,m.endAngle=m.startAngle+m.circumference),t.pivot()},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),a=0;return dt.each(n.data,(function(n,r){t=e.data[r],isNaN(t)||n.hidden||(a+=Math.abs(t))})),a},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(Math.abs(t)/e):0},getMaxBorderWidth:function(t){var e,n,a,r,o,i,s,c,l=0,d=this.chart;if(!t)for(e=0,n=d.data.datasets.length;e<n;++e)if(d.isDatasetVisible(e)){t=(a=d.getDatasetMeta(e)).data,e!==this.index&&(o=a.controller);break}if(!t)return 0;for(e=0,n=t.length;e<n;++e)r=t[e],"inner"!==(i=o?o._resolveElementOptions(r,e):r._options).borderAlign&&(l=(c=i.hoverBorderWidth)>(l=(s=i.borderWidth)>l?s:l)?c:l);return l},setHoverStyle:function(t){var e=t._model,n=t._options,a=dt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=Wt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Wt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Wt(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,a,r,o=this.chart,i=this.getDataset(),s=t.custom||{},c=o.options.elements.arc,l={},d={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},u=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,a=u.length;n<a;++n)l[r=u[n]]=Ut([s[r],i[r],c[r]],d,e);return l},_getRingWeightOffset:function(t){for(var e=0,n=0;n<t;++n)this.chart.isDatasetVisible(n)&&(e+=this._getRingWeight(n));return e},_getRingWeight:function(t){return Math.max(Wt(this.chart.data.datasets[t].weight,1),0)},_getVisibleDatasetWeightTotal:function(){return this._getRingWeightOffset(this.chart.data.datasets.length)}});st._set("horizontalBar",{hover:{mode:"index",axis:"y"},scales:{xAxes:[{type:"linear",position:"bottom"}],yAxes:[{type:"category",position:"left",categoryPercentage:.8,barPercentage:.9,offset:!0,gridLines:{offsetGridLines:!0}}]},elements:{rectangle:{borderSkipped:"left"}},tooltips:{mode:"index",axis:"y"}});var $t=Bt.extend({_getValueScaleId:function(){return this.getMeta().xAxisID},_getIndexScaleId:function(){return this.getMeta().yAxisID}}),Zt=dt.valueOrDefault,Jt=dt.options.resolve,Xt=dt.canvas._isPointInArea;function Qt(t,e){return Zt(t.showLine,e.showLines)}st._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}});var te=Ct.extend({datasetElementType:qt.Line,dataElementType:qt.Point,update:function(t){var e,n,a=this,r=a.getMeta(),o=r.dataset,i=r.data||[],s=a.getScaleForId(r.yAxisID),c=a.getDataset(),l=Qt(c,a.chart.options);for(l&&(void 0!==c.tension&&void 0===c.lineTension&&(c.lineTension=c.tension),o._scale=s,o._datasetIndex=a.index,o._children=i,o._model=a._resolveLineOptions(o),o.pivot()),e=0,n=i.length;e<n;++e)a.updateElement(i[e],e,t);for(l&&0!==o._model.tension&&a.updateBezierControlPoints(),e=0,n=i.length;e<n;++e)i[e].pivot()},updateElement:function(t,e,n){var a,r,o=this,i=o.getMeta(),s=t.custom||{},c=o.getDataset(),l=o.index,d=c.data[e],u=o.getScaleForId(i.yAxisID),g=o.getScaleForId(i.xAxisID),f=i.dataset._model,p=o._resolvePointOptions(t,e);a=g.getPixelForValue("object"==typeof d?d:NaN,e,l),r=n?u.getBasePixel():o.calculatePointY(d,e,l),t._xScale=g,t._yScale=u,t._options=p,t._datasetIndex=l,t._index=e,t._model={x:a,y:r,skip:s.skip||isNaN(a)||isNaN(r),radius:p.radius,pointStyle:p.pointStyle,rotation:p.rotation,backgroundColor:p.backgroundColor,borderColor:p.borderColor,borderWidth:p.borderWidth,tension:Zt(s.tension,f?f.tension:0),steppedLine:!!f&&f.steppedLine,hitRadius:p.hitRadius}},_resolvePointOptions:function(t,e){var n,a,r,o=this.chart,i=o.data.datasets[this.index],s=t.custom||{},c=o.options.elements.point,l={},d={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},u={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},g=Object.keys(u);for(n=0,a=g.length;n<a;++n)l[r=g[n]]=Jt([s[r],i[u[r]],i[r],c[r]],d,e);return l},_resolveLineOptions:function(t){var e,n,a,r=this.chart,o=r.data.datasets[this.index],i=t.custom||{},s=r.options,c=s.elements.line,l={},d=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill","cubicInterpolationMode"];for(e=0,n=d.length;e<n;++e)l[a=d[e]]=Jt([i[a],o[a],c[a]]);return l.spanGaps=Zt(o.spanGaps,s.spanGaps),l.tension=Zt(o.lineTension,c.tension),l.steppedLine=Jt([i.steppedLine,o.steppedLine,c.stepped]),l},calculatePointY:function(t,e,n){var a,r,o,i=this.chart,s=this.getMeta(),c=this.getScaleForId(s.yAxisID),l=0,d=0;if(c.options.stacked){for(a=0;a<n;a++)if(r=i.data.datasets[a],"line"===(o=i.getDatasetMeta(a)).type&&o.yAxisID===c.id&&i.isDatasetVisible(a)){var u=Number(c.getRightValue(r.data[e]));u<0?d+=u||0:l+=u||0}var g=Number(c.getRightValue(t));return c.getPixelForValue(g<0?d+g:l+g)}return c.getPixelForValue(t)},updateBezierControlPoints:function(){var t,e,n,a,r=this.chart,o=this.getMeta(),i=o.dataset._model,s=r.chartArea,c=o.data||[];function l(t,e,n){return Math.max(Math.min(t,n),e)}if(i.spanGaps&&(c=c.filter((function(t){return!t._model.skip}))),"monotone"===i.cubicInterpolationMode)dt.splineCurveMonotone(c);else for(t=0,e=c.length;t<e;++t)n=c[t]._model,a=dt.splineCurve(dt.previousItem(c,t)._model,n,dt.nextItem(c,t)._model,i.tension),n.controlPointPreviousX=a.previous.x,n.controlPointPreviousY=a.previous.y,n.controlPointNextX=a.next.x,n.controlPointNextY=a.next.y;if(r.options.elements.line.capBezierPoints)for(t=0,e=c.length;t<e;++t)Xt(n=c[t]._model,s)&&(t>0&&Xt(c[t-1]._model,s)&&(n.controlPointPreviousX=l(n.controlPointPreviousX,s.left,s.right),n.controlPointPreviousY=l(n.controlPointPreviousY,s.top,s.bottom)),t<c.length-1&&Xt(c[t+1]._model,s)&&(n.controlPointNextX=l(n.controlPointNextX,s.left,s.right),n.controlPointNextY=l(n.controlPointNextY,s.top,s.bottom)))},draw:function(){var t,e=this.chart,n=this.getMeta(),a=n.data||[],r=e.chartArea,o=a.length,i=0;for(Qt(this.getDataset(),e.options)&&(dt.canvas.clipArea(e.ctx,{left:r.left,right:r.right,top:r.top-(t=(n.dataset._model.borderWidth||0)/2),bottom:r.bottom+t}),n.dataset.draw(),dt.canvas.unclipArea(e.ctx));i<o;++i)a[i].draw(r)},setHoverStyle:function(t){var e=t._model,n=t._options,a=dt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=Zt(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=Zt(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=Zt(n.hoverBorderWidth,n.borderWidth),e.radius=Zt(n.hoverRadius,n.radius)}}),ee=dt.options.resolve;st._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(t){var e=[];e.push('<ul class="'+t.id+'-legend">');var n=t.data,a=n.datasets,r=n.labels;if(a.length)for(var o=0;o<a[0].data.length;++o)e.push('<li><span style="background-color:'+a[0].backgroundColor[o]+'"></span>'),r[o]&&e.push(r[o]),e.push("</li>");return e.push("</ul>"),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map((function(n,a){var r=t.getDatasetMeta(0),o=e.datasets[0],i=r.data[a].custom||{},s=t.options.elements.arc;return{text:n,fillStyle:ee([i.backgroundColor,o.backgroundColor,s.backgroundColor],void 0,a),strokeStyle:ee([i.borderColor,o.borderColor,s.borderColor],void 0,a),lineWidth:ee([i.borderWidth,o.borderWidth,s.borderWidth],void 0,a),hidden:isNaN(o.data[a])||r.data[a].hidden,index:a}})):[]}},onClick:function(t,e){var n,a,r,o=e.index,i=this.chart;for(n=0,a=(i.data.datasets||[]).length;n<a;++n)(r=i.getDatasetMeta(n)).data[o].hidden=!r.data[o].hidden;i.update()}},tooltips:{callbacks:{title:function(){return""},label:function(t,e){return e.labels[t.index]+": "+t.yLabel}}}});var ne=Ct.extend({dataElementType:qt.Arc,linkScales:dt.noop,update:function(t){var e,n,a,r=this,o=r.getDataset(),i=r.getMeta(),s=r.chart.options.startAngle||0,c=r._starts=[],l=r._angles=[],d=i.data;for(r._updateRadius(),i.count=r.countVisibleElements(),e=0,n=o.data.length;e<n;e++)c[e]=s,a=r._computeAngle(e),l[e]=a,s+=a;for(e=0,n=d.length;e<n;++e)d[e]._options=r._resolveElementOptions(d[e],e),r.updateElement(d[e],e,t)},_updateRadius:function(){var t=this,e=t.chart,n=e.chartArea,a=e.options,r=Math.min(n.right-n.left,n.bottom-n.top);e.outerRadius=Math.max(r/2,0),e.innerRadius=Math.max(a.cutoutPercentage?e.outerRadius/100*a.cutoutPercentage:1,0),e.radiusLength=(e.outerRadius-e.innerRadius)/e.getVisibleDatasetCount(),t.outerRadius=e.outerRadius-e.radiusLength*t.index,t.innerRadius=t.outerRadius-e.radiusLength},updateElement:function(t,e,n){var a=this,r=a.chart,o=a.getDataset(),i=r.options,s=i.animation,c=r.scale,l=r.data.labels,d=c.xCenter,u=c.yCenter,g=i.startAngle,f=t.hidden?0:c.getDistanceFromCenterForValue(o.data[e]),p=a._starts[e],m=p+(t.hidden?0:a._angles[e]),h=s.animateScale?0:c.getDistanceFromCenterForValue(o.data[e]),b=t._options||{};dt.extend(t,{_datasetIndex:a.index,_index:e,_scale:c,_model:{backgroundColor:b.backgroundColor,borderColor:b.borderColor,borderWidth:b.borderWidth,borderAlign:b.borderAlign,x:d,y:u,innerRadius:0,outerRadius:n?h:f,startAngle:n&&s.animateRotate?g:p,endAngle:n&&s.animateRotate?g:m,label:dt.valueAtIndexOrDefault(l,e,l[e])}}),t.pivot()},countVisibleElements:function(){var t=this.getDataset(),e=this.getMeta(),n=0;return dt.each(e.data,(function(e,a){isNaN(t.data[a])||e.hidden||n++})),n},setHoverStyle:function(t){var e=t._model,n=t._options,a=dt.getHoverColor,r=dt.valueOrDefault;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth},e.backgroundColor=r(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=r(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=r(n.hoverBorderWidth,n.borderWidth)},_resolveElementOptions:function(t,e){var n,a,r,o=this.chart,i=this.getDataset(),s=t.custom||{},c=o.options.elements.arc,l={},d={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},u=["backgroundColor","borderColor","borderWidth","borderAlign","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth"];for(n=0,a=u.length;n<a;++n)l[r=u[n]]=ee([s[r],i[r],c[r]],d,e);return l},_computeAngle:function(t){var e=this,n=this.getMeta().count,a=e.getDataset(),r=e.getMeta();return isNaN(a.data[t])||r.data[t].hidden?0:ee([e.chart.options.elements.arc.angle,2*Math.PI/n],{chart:e.chart,dataIndex:t,dataset:a,datasetIndex:e.index},t)}});st._set("pie",dt.clone(st.doughnut)),st._set("pie",{cutoutPercentage:0});var ae=Kt,re=dt.valueOrDefault,oe=dt.options.resolve;st._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}});var ie=Ct.extend({datasetElementType:qt.Line,dataElementType:qt.Point,linkScales:dt.noop,update:function(t){var e,n,a=this,r=a.getMeta(),o=r.dataset,i=r.data||[],s=a.chart.scale,c=a.getDataset();for(void 0!==c.tension&&void 0===c.lineTension&&(c.lineTension=c.tension),o._scale=s,o._datasetIndex=a.index,o._children=i,o._loop=!0,o._model=a._resolveLineOptions(o),o.pivot(),e=0,n=i.length;e<n;++e)a.updateElement(i[e],e,t);for(a.updateBezierControlPoints(),e=0,n=i.length;e<n;++e)i[e].pivot()},updateElement:function(t,e,n){var a=this,r=t.custom||{},o=a.getDataset(),i=a.chart.scale,s=i.getPointPositionForValue(e,o.data[e]),c=a._resolvePointOptions(t,e),l=a.getMeta().dataset._model,d=n?i.xCenter:s.x,u=n?i.yCenter:s.y;t._scale=i,t._options=c,t._datasetIndex=a.index,t._index=e,t._model={x:d,y:u,skip:r.skip||isNaN(d)||isNaN(u),radius:c.radius,pointStyle:c.pointStyle,rotation:c.rotation,backgroundColor:c.backgroundColor,borderColor:c.borderColor,borderWidth:c.borderWidth,tension:re(r.tension,l?l.tension:0),hitRadius:c.hitRadius}},_resolvePointOptions:function(t,e){var n,a,r,o=this.chart,i=o.data.datasets[this.index],s=t.custom||{},c=o.options.elements.point,l={},d={chart:o,dataIndex:e,dataset:i,datasetIndex:this.index},u={backgroundColor:"pointBackgroundColor",borderColor:"pointBorderColor",borderWidth:"pointBorderWidth",hitRadius:"pointHitRadius",hoverBackgroundColor:"pointHoverBackgroundColor",hoverBorderColor:"pointHoverBorderColor",hoverBorderWidth:"pointHoverBorderWidth",hoverRadius:"pointHoverRadius",pointStyle:"pointStyle",radius:"pointRadius",rotation:"pointRotation"},g=Object.keys(u);for(n=0,a=g.length;n<a;++n)l[r=g[n]]=oe([s[r],i[u[r]],i[r],c[r]],d,e);return l},_resolveLineOptions:function(t){var e,n,a,r=this.chart,o=r.data.datasets[this.index],i=t.custom||{},s=r.options.elements.line,c={},l=["backgroundColor","borderWidth","borderColor","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","fill"];for(e=0,n=l.length;e<n;++e)c[a=l[e]]=oe([i[a],o[a],s[a]]);return c.tension=re(o.lineTension,s.tension),c},updateBezierControlPoints:function(){var t,e,n,a,r=this.getMeta(),o=this.chart.chartArea,i=r.data||[];function s(t,e,n){return Math.max(Math.min(t,n),e)}for(t=0,e=i.length;t<e;++t)n=i[t]._model,a=dt.splineCurve(dt.previousItem(i,t,!0)._model,n,dt.nextItem(i,t,!0)._model,n.tension),n.controlPointPreviousX=s(a.previous.x,o.left,o.right),n.controlPointPreviousY=s(a.previous.y,o.top,o.bottom),n.controlPointNextX=s(a.next.x,o.left,o.right),n.controlPointNextY=s(a.next.y,o.top,o.bottom)},setHoverStyle:function(t){var e=t._model,n=t._options,a=dt.getHoverColor;t.$previousStyle={backgroundColor:e.backgroundColor,borderColor:e.borderColor,borderWidth:e.borderWidth,radius:e.radius},e.backgroundColor=re(n.hoverBackgroundColor,a(n.backgroundColor)),e.borderColor=re(n.hoverBorderColor,a(n.borderColor)),e.borderWidth=re(n.hoverBorderWidth,n.borderWidth),e.radius=re(n.hoverRadius,n.radius)}});st._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(t){return"("+t.xLabel+", "+t.yLabel+")"}}}});var se={bar:Bt,bubble:Ht,doughnut:Kt,horizontalBar:$t,line:te,polarArea:ne,pie:ae,radar:ie,scatter:te};function ce(t,e){return t.native?{x:t.x,y:t.y}:dt.getRelativePosition(t,e)}function le(t,e){var n,a,r,o,i;for(a=0,o=t.data.datasets.length;a<o;++a)if(t.isDatasetVisible(a))for(r=0,i=(n=t.getDatasetMeta(a)).data.length;r<i;++r){var s=n.data[r];s._view.skip||e(s)}}function de(t,e){var n=[];return le(t,(function(t){t.inRange(e.x,e.y)&&n.push(t)})),n}function ue(t,e,n,a){var r=Number.POSITIVE_INFINITY,o=[];return le(t,(function(t){if(!n||t.inRange(e.x,e.y)){var i=t.getCenterPoint(),s=a(e,i);s<r?(o=[t],r=s):s===r&&o.push(t)}})),o}function ge(t){var e=-1!==t.indexOf("x"),n=-1!==t.indexOf("y");return function(t,a){var r=e?Math.abs(t.x-a.x):0,o=n?Math.abs(t.y-a.y):0;return Math.sqrt(Math.pow(r,2)+Math.pow(o,2))}}function fe(t,e,n){var a=ce(e,t);n.axis=n.axis||"x";var r=ge(n.axis),o=n.intersect?de(t,a):ue(t,a,!1,r),i=[];return o.length?(t.data.datasets.forEach((function(e,n){if(t.isDatasetVisible(n)){var a=t.getDatasetMeta(n).data[o[0]._index];a&&!a._view.skip&&i.push(a)}})),i):[]}var pe={modes:{single:function(t,e){var n=ce(e,t),a=[];return le(t,(function(t){if(t.inRange(n.x,n.y))return a.push(t),a})),a.slice(0,1)},label:fe,index:fe,dataset:function(t,e,n){var a=ce(e,t);n.axis=n.axis||"xy";var r=ge(n.axis),o=n.intersect?de(t,a):ue(t,a,!1,r);return o.length>0&&(o=t.getDatasetMeta(o[0]._datasetIndex).data),o},"x-axis":function(t,e){return fe(t,e,{intersect:!1})},point:function(t,e){return de(t,ce(e,t))},nearest:function(t,e,n){var a=ce(e,t);n.axis=n.axis||"xy";var r=ge(n.axis);return ue(t,a,n.intersect,r)},x:function(t,e,n){var a=ce(e,t),r=[],o=!1;return le(t,(function(t){t.inXRange(a.x)&&r.push(t),t.inRange(a.x,a.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r},y:function(t,e,n){var a=ce(e,t),r=[],o=!1;return le(t,(function(t){t.inYRange(a.y)&&r.push(t),t.inRange(a.x,a.y)&&(o=!0)})),n.intersect&&!o&&(r=[]),r}}};function me(t,e){return dt.where(t,(function(t){return t.position===e}))}function he(t,e){t.forEach((function(t,e){return t._tmpIndex_=e,t})),t.sort((function(t,n){var a=e?n:t,r=e?t:n;return a.weight===r.weight?a._tmpIndex_-r._tmpIndex_:a.weight-r.weight})),t.forEach((function(t){delete t._tmpIndex_}))}function be(t,e){dt.each(t,(function(t){e[t.position]+=t.isHorizontal()?t.height:t.width}))}st._set("global",{layout:{padding:{top:0,right:0,bottom:0,left:0}}});var ye,_e={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var a,r=["fullWidth","position","weight"],o=r.length,i=0;i<o;++i)n.hasOwnProperty(a=r[i])&&(e[a]=n[a])},update:function(t,e,n){if(t){var a=dt.options.toPadding((t.options.layout||{}).padding),r=a.left,o=a.right,i=a.top,s=a.bottom,c=me(t.boxes,"left"),l=me(t.boxes,"right"),d=me(t.boxes,"top"),u=me(t.boxes,"bottom"),g=me(t.boxes,"chartArea");he(c,!0),he(l,!1),he(d,!0),he(u,!1);var f,p=c.concat(l),m=d.concat(u),h=p.concat(m),b=e-r-o,y=n-i-s,_=(e-b/2)/p.length,O=b,v=y,C={top:i,left:r,bottom:s,right:o},P=[];dt.each(h,(function(t){var e,n=t.isHorizontal();n?(e=t.update(t.fullWidth?b:O,y/2),v-=e.height):(e=t.update(_,v),O-=e.width),P.push({horizontal:n,width:e.width,box:t})})),f=function(t){var e=0,n=0,a=0,r=0;return dt.each(t,(function(t){if(t.getPadding){var o=t.getPadding();e=Math.max(e,o.top),n=Math.max(n,o.left),a=Math.max(a,o.bottom),r=Math.max(r,o.right)}})),{top:e,left:n,bottom:a,right:r}}(h),dt.each(p,I),be(p,C),dt.each(m,I),be(m,C),dt.each(p,(function(t){var e=dt.findNextWhere(P,(function(e){return e.box===t}));e&&t.update(e.width,v,{left:0,right:0,top:C.top,bottom:C.bottom})})),be(h,C={top:i,left:r,bottom:s,right:o});var M=Math.max(f.left-C.left,0);C.left+=M,C.right+=Math.max(f.right-C.right,0);var x=Math.max(f.top-C.top,0);C.top+=x,C.bottom+=Math.max(f.bottom-C.bottom,0);var w=n-C.top-C.bottom,T=e-C.left-C.right;T===O&&w===v||(dt.each(p,(function(t){t.height=w})),dt.each(m,(function(t){t.fullWidth||(t.width=T)})),v=w,O=T);var S=r+M,k=i+x;dt.each(c.concat(d),N),S+=O,k+=v,dt.each(l,N),dt.each(u,N),t.chartArea={left:C.left,top:C.top,right:C.left+O,bottom:C.top+v},dt.each(g,(function(e){e.left=t.chartArea.left,e.top=t.chartArea.top,e.right=t.chartArea.right,e.bottom=t.chartArea.bottom,e.update(O,v)}))}function I(t){var e=dt.findNextWhere(P,(function(e){return e.box===t}));if(e)if(e.horizontal){var n={left:Math.max(C.left,f.left),right:Math.max(C.right,f.right),top:0,bottom:0};t.update(t.fullWidth?b:O,y/2,n)}else t.update(e.width,v)}function N(t){t.isHorizontal()?(t.left=t.fullWidth?r:C.left,t.right=t.fullWidth?e-o:C.left+O,t.top=k,t.bottom=k+t.height,k=t.bottom):(t.left=S,t.right=S+t.width,t.top=C.top,t.bottom=C.top+v,S=t.right)}}},Oe=(ye=Object.freeze({default:"/*\n * DOM element rendering detection\n * https://davidwalsh.name/detect-node-insertion\n */\n@keyframes chartjs-render-animation {\n\tfrom { opacity: 0.99; }\n\tto { opacity: 1; }\n}\n\n.chartjs-render-monitor {\n\tanimation: chartjs-render-animation 0.001s;\n}\n\n/*\n * DOM element resizing detection\n * https://github.com/marcj/css-element-queries\n */\n.chartjs-size-monitor,\n.chartjs-size-monitor-expand,\n.chartjs-size-monitor-shrink {\n\tposition: absolute;\n\tdirection: ltr;\n\tleft: 0;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n\tvisibility: hidden;\n\tz-index: -1;\n}\n\n.chartjs-size-monitor-expand > div {\n\tposition: absolute;\n\twidth: 1000000px;\n\theight: 1000000px;\n\tleft: 0;\n\ttop: 0;\n}\n\n.chartjs-size-monitor-shrink > div {\n\tposition: absolute;\n\twidth: 200%;\n\theight: 200%;\n\tleft: 0;\n\ttop: 0;\n}\n"}))&&ye.default||ye,ve=["animationstart","webkitAnimationStart"],Ce={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"};function Pe(t,e){var n=dt.getStyle(t,e),a=n&&n.match(/^(\d+)(\.\d+)?px$/);return a?Number(a[1]):void 0}var Me=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(n){}return t}()&&{passive:!0};function xe(t,e,n){t.addEventListener(e,n,Me)}function we(t,e,n){t.removeEventListener(e,n,Me)}function Te(t,e,n,a,r){return{type:t,chart:e,native:r||null,x:void 0!==n?n:null,y:void 0!==a?a:null}}function Se(t){var e=document.createElement("div");return e.className=t||"",e}var ke={disableCSSInjection:!1,_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,_ensureLoaded:function(){this._loaded||(this._loaded=!0,this.disableCSSInjection||function(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}(this,Oe))},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return this._ensureLoaded(),n&&n.canvas===t?(function(t,e){var n=t.style,a=t.getAttribute("height"),r=t.getAttribute("width");if(t.$chartjs={initial:{height:a,width:r,style:{display:n.display,height:n.height,width:n.width}}},n.display=n.display||"block",null===r||""===r){var o=Pe(t,"width");void 0!==o&&(t.width=o)}if(null===a||""===a)if(""===t.style.height)t.height=t.width/(e.options.aspectRatio||2);else{var i=Pe(t,"height");void 0!==o&&(t.height=i)}}(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e.$chartjs){var n=e.$chartjs.initial;["height","width"].forEach((function(t){var a=n[t];dt.isNullOrUndef(a)?e.removeAttribute(t):e.setAttribute(t,a)})),dt.each(n.style||{},(function(t,n){e.style[n]=t})),e.width=e.width,delete e.$chartjs}},addEventListener:function(t,e,n){var a=t.canvas;if("resize"!==e){var r=n.$chartjs||(n.$chartjs={});xe(a,e,(r.proxies||(r.proxies={}))[t.id+"_"+e]=function(e){n(function(t,e){var n=Ce[t.type]||t.type,a=dt.getRelativePosition(t,e);return Te(n,e,a.x,a.y,t)}(e,t))})}else!function(t,e,n){var a,r,o,i,s=t.$chartjs||(t.$chartjs={}),c=s.resizer=function(t){var e=Se("chartjs-size-monitor"),n=Se("chartjs-size-monitor-expand"),a=Se("chartjs-size-monitor-shrink");n.appendChild(Se()),a.appendChild(Se()),e.appendChild(n),e.appendChild(a),e._reset=function(){n.scrollLeft=1e6,n.scrollTop=1e6,a.scrollLeft=1e6,a.scrollTop=1e6};var r=function(){e._reset(),t()};return xe(n,"scroll",r.bind(n,"expand")),xe(a,"scroll",r.bind(a,"shrink")),e}((a=function(){if(s.resizer){var a=n.options.maintainAspectRatio&&t.parentNode,r=a?a.clientWidth:0;e(Te("resize",n)),a&&a.clientWidth<r&&n.canvas&&e(Te("resize",n))}},o=!1,i=[],function(){i=Array.prototype.slice.call(arguments),r=r||this,o||(o=!0,dt.requestAnimFrame.call(window,(function(){o=!1,a.apply(r,i)})))}));!function(t,e){var n=t.$chartjs||(t.$chartjs={}),a=n.renderProxy=function(t){"chartjs-render-animation"===t.animationName&&e()};dt.each(ve,(function(e){xe(t,e,a)})),n.reflow=!!t.offsetParent,t.classList.add("chartjs-render-monitor")}(t,(function(){if(s.resizer){var e=t.parentNode;e&&e!==c.parentNode&&e.insertBefore(c,e.firstChild),c._reset()}}))}(a,n,t)},removeEventListener:function(t,e,n){var a,r,o,i=t.canvas;if("resize"!==e){var s=((n.$chartjs||{}).proxies||{})[t.id+"_"+e];s&&we(i,e,s)}else o=(r=(a=i).$chartjs||{}).resizer,delete r.resizer,function(t){var e=t.$chartjs||{},n=e.renderProxy;n&&(dt.each(ve,(function(e){we(t,e,n)})),delete e.renderProxy),t.classList.remove("chartjs-render-monitor")}(a),o&&o.parentNode&&o.parentNode.removeChild(o)}};dt.addEvent=xe,dt.removeEvent=we;var Ie=dt.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},ke._enabled?ke:{acquireContext:function(t){return t&&t.canvas&&(t=t.canvas),t&&t.getContext("2d")||null}});st._set("global",{plugins:{}});var Ne={_plugins:[],_cacheId:0,register:function(t){var e=this._plugins;[].concat(t).forEach((function(t){-1===e.indexOf(t)&&e.push(t)})),this._cacheId++},unregister:function(t){var e=this._plugins;[].concat(t).forEach((function(t){var n=e.indexOf(t);-1!==n&&e.splice(n,1)})),this._cacheId++},clear:function(){this._plugins=[],this._cacheId++},count:function(){return this._plugins.length},getAll:function(){return this._plugins},notify:function(t,e,n){var a,r,o,i,s,c=this.descriptors(t),l=c.length;for(a=0;a<l;++a)if("function"==typeof(s=(o=(r=c[a]).plugin)[e])&&((i=[t].concat(n||[])).push(r.options),!1===s.apply(o,i)))return!1;return!0},descriptors:function(t){var e=t.$plugins||(t.$plugins={});if(e.id===this._cacheId)return e.descriptors;var n=[],a=[],r=t&&t.config||{},o=r.options&&r.options.plugins||{};return this._plugins.concat(r.plugins||[]).forEach((function(t){if(-1===n.indexOf(t)){var e=t.id,r=o[e];!1!==r&&(!0===r&&(r=dt.clone(st.global.plugins[e])),n.push(t),a.push({plugin:t,options:r||{}}))}})),e.descriptors=a,e.id=this._cacheId,a},_invalidate:function(t){delete t.$plugins}},Re={constructors:{},defaults:{},registerScaleType:function(t,e,n){this.constructors[t]=e,this.defaults[t]=dt.clone(n)},getScaleConstructor:function(t){return this.constructors.hasOwnProperty(t)?this.constructors[t]:void 0},getScaleDefaults:function(t){return this.defaults.hasOwnProperty(t)?dt.merge({},[st.scale,this.defaults[t]]):{}},updateScaleDefaults:function(t,e){this.defaults.hasOwnProperty(t)&&(this.defaults[t]=dt.extend(this.defaults[t],e))},addScalesToLayout:function(t){dt.each(t.scales,(function(e){e.fullWidth=e.options.fullWidth,e.position=e.options.position,e.weight=e.options.weight,_e.addBox(t,e)}))}},Ae=dt.valueOrDefault;st._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:dt.noop,title:function(t,e){var n="",a=e.labels,r=a?a.length:0;if(t.length>0){var o=t[0];o.label?n=o.label:o.xLabel?n=o.xLabel:r>0&&o.index<r&&(n=a[o.index])}return n},afterTitle:dt.noop,beforeBody:dt.noop,beforeLabel:dt.noop,label:function(t,e){var n=e.datasets[t.datasetIndex].label||"";return n&&(n+=": "),dt.isNullOrUndef(t.value)?n+=t.yLabel:n+=t.value,n},labelColor:function(t,e){var n=e.getDatasetMeta(t.datasetIndex).data[t.index]._view;return{borderColor:n.borderColor,backgroundColor:n.backgroundColor}},labelTextColor:function(){return this._options.bodyFontColor},afterLabel:dt.noop,afterBody:dt.noop,beforeFooter:dt.noop,footer:dt.noop,afterFooter:dt.noop}}});var Ee={average:function(t){if(!t.length)return!1;var e,n,a=0,r=0,o=0;for(e=0,n=t.length;e<n;++e){var i=t[e];if(i&&i.hasValue()){var s=i.tooltipPosition();a+=s.x,r+=s.y,++o}}return{x:a/o,y:r/o}},nearest:function(t,e){var n,a,r,o=e.x,i=e.y,s=Number.POSITIVE_INFINITY;for(n=0,a=t.length;n<a;++n){var c=t[n];if(c&&c.hasValue()){var l=c.getCenterPoint(),d=dt.distanceBetweenPoints(e,l);d<s&&(s=d,r=c)}}if(r){var u=r.tooltipPosition();o=u.x,i=u.y}return{x:o,y:i}}};function De(t,e){return e&&(dt.isArray(e)?Array.prototype.push.apply(t,e):t.push(e)),t}function Le(t){return("string"==typeof t||t instanceof String)&&t.indexOf("\n")>-1?t.split("\n"):t}function qe(t){var e=st.global;return{xPadding:t.xPadding,yPadding:t.yPadding,xAlign:t.xAlign,yAlign:t.yAlign,bodyFontColor:t.bodyFontColor,_bodyFontFamily:Ae(t.bodyFontFamily,e.defaultFontFamily),_bodyFontStyle:Ae(t.bodyFontStyle,e.defaultFontStyle),_bodyAlign:t.bodyAlign,bodyFontSize:Ae(t.bodyFontSize,e.defaultFontSize),bodySpacing:t.bodySpacing,titleFontColor:t.titleFontColor,_titleFontFamily:Ae(t.titleFontFamily,e.defaultFontFamily),_titleFontStyle:Ae(t.titleFontStyle,e.defaultFontStyle),titleFontSize:Ae(t.titleFontSize,e.defaultFontSize),_titleAlign:t.titleAlign,titleSpacing:t.titleSpacing,titleMarginBottom:t.titleMarginBottom,footerFontColor:t.footerFontColor,_footerFontFamily:Ae(t.footerFontFamily,e.defaultFontFamily),_footerFontStyle:Ae(t.footerFontStyle,e.defaultFontStyle),footerFontSize:Ae(t.footerFontSize,e.defaultFontSize),_footerAlign:t.footerAlign,footerSpacing:t.footerSpacing,footerMarginTop:t.footerMarginTop,caretSize:t.caretSize,cornerRadius:t.cornerRadius,backgroundColor:t.backgroundColor,opacity:0,legendColorBackground:t.multiKeyBackground,displayColors:t.displayColors,borderColor:t.borderColor,borderWidth:t.borderWidth}}function je(t,e){return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-t.xPadding:t.x+t.xPadding}function Fe(t){return De([],Le(t))}var ze=pt.extend({initialize:function(){this._model=qe(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options,n=e.callbacks,a=n.beforeTitle.apply(t,arguments),r=n.title.apply(t,arguments),o=n.afterTitle.apply(t,arguments),i=[];return i=De(i,Le(a)),i=De(i,Le(r)),De(i,Le(o))},getBeforeBody:function(){return Fe(this._options.callbacks.beforeBody.apply(this,arguments))},getBody:function(t,e){var n=this,a=n._options.callbacks,r=[];return dt.each(t,(function(t){var o={before:[],lines:[],after:[]};De(o.before,Le(a.beforeLabel.call(n,t,e))),De(o.lines,a.label.call(n,t,e)),De(o.after,Le(a.afterLabel.call(n,t,e))),r.push(o)})),r},getAfterBody:function(){return Fe(this._options.callbacks.afterBody.apply(this,arguments))},getFooter:function(){var t=this,e=t._options.callbacks,n=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),r=e.afterFooter.apply(t,arguments),o=[];return o=De(o,Le(n)),o=De(o,Le(a)),De(o,Le(r))},update:function(t){var e,n,a,r,o,i,s,c,l,d,u=this,g=u._options,f=u._model,p=u._model=qe(g),m=u._active,h=u._data,b={xAlign:f.xAlign,yAlign:f.yAlign},y={x:f.x,y:f.y},_={width:f.width,height:f.height},O={x:f.caretX,y:f.caretY};if(m.length){p.opacity=1;var v=[],C=[];O=Ee[g.position].call(u,m,u._eventPosition);var P=[];for(e=0,n=m.length;e<n;++e)P.push((r=void 0,o=void 0,c=void 0,l=void 0,d=void 0,r=(a=m[e])._xScale,o=a._yScale||a._scale,i=a._index,l=(c=a._chart.getDatasetMeta(s=a._datasetIndex).controller)._getIndexScale(),d=c._getValueScale(),{xLabel:r?r.getLabelForIndex(i,s):"",yLabel:o?o.getLabelForIndex(i,s):"",label:l?""+l.getLabelForIndex(i,s):"",value:d?""+d.getLabelForIndex(i,s):"",index:i,datasetIndex:s,x:a._model.x,y:a._model.y}));g.filter&&(P=P.filter((function(t){return g.filter(t,h)}))),g.itemSort&&(P=P.sort((function(t,e){return g.itemSort(t,e,h)}))),dt.each(P,(function(t){v.push(g.callbacks.labelColor.call(u,t,u._chart)),C.push(g.callbacks.labelTextColor.call(u,t,u._chart))})),p.title=u.getTitle(P,h),p.beforeBody=u.getBeforeBody(P,h),p.body=u.getBody(P,h),p.afterBody=u.getAfterBody(P,h),p.footer=u.getFooter(P,h),p.x=O.x,p.y=O.y,p.caretPadding=g.caretPadding,p.labelColors=v,p.labelTextColors=C,p.dataPoints=P,_=function(t,e){var n=t._chart.ctx,a=2*e.yPadding,r=0,o=e.body,i=o.reduce((function(t,e){return t+e.before.length+e.lines.length+e.after.length}),0),s=e.title.length,c=e.footer.length,l=e.titleFontSize,d=e.bodyFontSize,u=e.footerFontSize;a+=s*l,a+=s?(s-1)*e.titleSpacing:0,a+=s?e.titleMarginBottom:0,a+=(i+=e.beforeBody.length+e.afterBody.length)*d,a+=i?(i-1)*e.bodySpacing:0,a+=c?e.footerMarginTop:0,a+=c*u,a+=c?(c-1)*e.footerSpacing:0;var g=0,f=function(t){r=Math.max(r,n.measureText(t).width+g)};return n.font=dt.fontString(l,e._titleFontStyle,e._titleFontFamily),dt.each(e.title,f),n.font=dt.fontString(d,e._bodyFontStyle,e._bodyFontFamily),dt.each(e.beforeBody.concat(e.afterBody),f),g=e.displayColors?d+2:0,dt.each(o,(function(t){dt.each(t.before,f),dt.each(t.lines,f),dt.each(t.after,f)})),g=0,n.font=dt.fontString(u,e._footerFontStyle,e._footerFontFamily),dt.each(e.footer,f),{width:r+=2*e.xPadding,height:a}}(this,p),y=function(t,e,n,a){var r=t.x,o=t.y,i=t.caretPadding,s=n.xAlign,c=n.yAlign,l=t.caretSize+i,d=t.cornerRadius+i;return"right"===s?r-=e.width:"center"===s&&((r-=e.width/2)+e.width>a.width&&(r=a.width-e.width),r<0&&(r=0)),"top"===c?o+=l:o-="bottom"===c?e.height+l:e.height/2,"center"===c?"left"===s?r+=l:"right"===s&&(r-=l):"left"===s?r-=d:"right"===s&&(r+=d),{x:r,y:o}}(p,_,b=function(t,e){var n,a,r,o,i,s=t._model,c=t._chart,l=t._chart.chartArea,d="center",u="center";s.y<e.height?u="top":s.y>c.height-e.height&&(u="bottom");var g=(l.left+l.right)/2,f=(l.top+l.bottom)/2;"center"===u?(n=function(t){return t<=g},a=function(t){return t>g}):(n=function(t){return t<=e.width/2},a=function(t){return t>=c.width-e.width/2}),r=function(t){return t+e.width+s.caretSize+s.caretPadding>c.width},o=function(t){return t-e.width-s.caretSize-s.caretPadding<0},i=function(t){return t<=f?"top":"bottom"},n(s.x)?(d="left",r(s.x)&&(d="center",u=i(s.y))):a(s.x)&&(d="right",o(s.x)&&(d="center",u=i(s.y)));var p=t._options;return{xAlign:p.xAlign?p.xAlign:d,yAlign:p.yAlign?p.yAlign:u}}(this,_),u._chart)}else p.opacity=0;return p.xAlign=b.xAlign,p.yAlign=b.yAlign,p.x=y.x,p.y=y.y,p.width=_.width,p.height=_.height,p.caretX=O.x,p.caretY=O.y,u._model=p,t&&g.custom&&g.custom.call(u,p),u},drawCaret:function(t,e){var n=this._chart.ctx,a=this.getCaretPosition(t,e,this._view);n.lineTo(a.x1,a.y1),n.lineTo(a.x2,a.y2),n.lineTo(a.x3,a.y3)},getCaretPosition:function(t,e,n){var a,r,o,i,s,c,l=n.caretSize,d=n.cornerRadius,u=n.xAlign,g=n.yAlign,f=t.x,p=t.y,m=e.width,h=e.height;if("center"===g)s=p+h/2,"left"===u?(r=(a=f)-l,o=a,i=s+l,c=s-l):(r=(a=f+m)+l,o=a,i=s-l,c=s+l);else if("left"===u?(a=(r=f+d+l)-l,o=r+l):"right"===u?(a=(r=f+m-d-l)-l,o=r+l):(a=(r=n.caretX)-l,o=r+l),"top"===g)s=(i=p)-l,c=i;else{s=(i=p+h)+l,c=i;var b=o;o=a,a=b}return{x1:a,x2:r,x3:o,y1:i,y2:s,y3:c}},drawTitle:function(t,e,n){var a=e.title;if(a.length){t.x=je(e,e._titleAlign),n.textAlign=e._titleAlign,n.textBaseline="top";var r,o,i=e.titleFontSize,s=e.titleSpacing;for(n.fillStyle=e.titleFontColor,n.font=dt.fontString(i,e._titleFontStyle,e._titleFontFamily),r=0,o=a.length;r<o;++r)n.fillText(a[r],t.x,t.y),t.y+=i+s,r+1===a.length&&(t.y+=e.titleMarginBottom-s)}},drawBody:function(t,e,n){var a,r=e.bodyFontSize,o=e.bodySpacing,i=e._bodyAlign,s=e.body,c=e.displayColors,l=e.labelColors,d=0,u=c?je(e,"left"):0;n.textAlign=i,n.textBaseline="top",n.font=dt.fontString(r,e._bodyFontStyle,e._bodyFontFamily),t.x=je(e,i);var g=function(e){n.fillText(e,t.x+d,t.y),t.y+=r+o};n.fillStyle=e.bodyFontColor,dt.each(e.beforeBody,g),d=c&&"right"!==i?"center"===i?r/2+1:r+2:0,dt.each(s,(function(o,i){n.fillStyle=a=e.labelTextColors[i],dt.each(o.before,g),dt.each(o.lines,(function(o){c&&(n.fillStyle=e.legendColorBackground,n.fillRect(u,t.y,r,r),n.lineWidth=1,n.strokeStyle=l[i].borderColor,n.strokeRect(u,t.y,r,r),n.fillStyle=l[i].backgroundColor,n.fillRect(u+1,t.y+1,r-2,r-2),n.fillStyle=a),g(o)})),dt.each(o.after,g)})),d=0,dt.each(e.afterBody,g),t.y-=o},drawFooter:function(t,e,n){var a=e.footer;a.length&&(t.x=je(e,e._footerAlign),t.y+=e.footerMarginTop,n.textAlign=e._footerAlign,n.textBaseline="top",n.fillStyle=e.footerFontColor,n.font=dt.fontString(e.footerFontSize,e._footerFontStyle,e._footerFontFamily),dt.each(a,(function(a){n.fillText(a,t.x,t.y),t.y+=e.footerFontSize+e.footerSpacing})))},drawBackground:function(t,e,n,a){n.fillStyle=e.backgroundColor,n.strokeStyle=e.borderColor,n.lineWidth=e.borderWidth;var r=e.xAlign,o=e.yAlign,i=t.x,s=t.y,c=a.width,l=a.height,d=e.cornerRadius;n.beginPath(),n.moveTo(i+d,s),"top"===o&&this.drawCaret(t,a),n.lineTo(i+c-d,s),n.quadraticCurveTo(i+c,s,i+c,s+d),"center"===o&&"right"===r&&this.drawCaret(t,a),n.lineTo(i+c,s+l-d),n.quadraticCurveTo(i+c,s+l,i+c-d,s+l),"bottom"===o&&this.drawCaret(t,a),n.lineTo(i+d,s+l),n.quadraticCurveTo(i,s+l,i,s+l-d),"center"===o&&"left"===r&&this.drawCaret(t,a),n.lineTo(i,s+d),n.quadraticCurveTo(i,s,i+d,s),n.closePath(),n.fill(),e.borderWidth>0&&n.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},a={x:e.x,y:e.y},r=Math.abs(e.opacity<.001)?0:e.opacity;this._options.enabled&&(e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length)&&(t.save(),t.globalAlpha=r,this.drawBackground(a,e,t,n),a.y+=e.yPadding,this.drawTitle(a,e,t),this.drawBody(a,e,t),this.drawFooter(a,e,t),t.restore())}},handleEvent:function(t){var e,n=this,a=n._options;return n._lastActive=n._lastActive||[],n._active="mouseout"===t.type?[]:n._chart.getElementsAtEventForMode(t,a.mode,a),(e=!dt.arrayEquals(n._active,n._lastActive))&&(n._lastActive=n._active,(a.enabled||a.custom)&&(n._eventPosition={x:t.x,y:t.y},n.update(!0),n.pivot())),e}});ze.positioners=Ee;var Ge=dt.valueOrDefault;function Be(){return dt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){if("xAxes"===t||"yAxes"===t){var r,o,i,s=n[t].length;for(e[t]||(e[t]=[]),r=0;r<s;++r)o=Ge((i=n[t][r]).type,"xAxes"===t?"category":"linear"),r>=e[t].length&&e[t].push({}),dt.merge(e[t][r],!e[t][r].type||i.type&&i.type!==e[t][r].type?[Re.getScaleDefaults(o),i]:i)}else dt._merger(t,e,n,a)}})}function Ve(){return dt.merge({},[].slice.call(arguments),{merger:function(t,e,n,a){var r=e[t]||{},o=n[t];"scales"===t?e[t]=Be(r,o):"scale"===t?e[t]=dt.merge(r,[Re.getScaleDefaults(o.type),o]):dt._merger(t,e,n,a)}})}function Ye(t){var e=t.options;dt.each(t.scales,(function(e){_e.removeBox(t,e)})),e=Ve(st.global,st[t.config.type],e),t.options=t.config.options=e,t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.tooltip._options=e.tooltips,t.tooltip.initialize()}function He(t){return"top"===t||"bottom"===t}st._set("global",{elements:{},events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,maintainAspectRatio:!0,responsive:!0,responsiveAnimationDuration:0});var Ue=function(t,e){return this.construct(t,e),this};dt.extend(Ue.prototype,{construct:function(t,e){var n=this;e=function(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=Ve(st.global,st[t.type],t.options||{}),t}(e);var a=Ie.acquireContext(t,e),r=a&&a.canvas,o=r&&r.height,i=r&&r.width;n.id=dt.uid(),n.ctx=a,n.canvas=r,n.config=e,n.width=i,n.height=o,n.aspectRatio=o?i/o:null,n.options=e.options,n._bufferedRender=!1,n.chart=n,n.controller=n,Ue.instances[n.id]=n,Object.defineProperty(n,"data",{get:function(){return n.config.data},set:function(t){n.config.data=t}}),a&&r?(n.initialize(),n.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return Ne.notify(t,"beforeInit"),dt.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildOrUpdateScales(),t.initToolTip(),Ne.notify(t,"afterInit"),t},clear:function(){return dt.canvas.clear(this),this},stop:function(){return bt.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,a=e.canvas,r=n.maintainAspectRatio&&e.aspectRatio||null,o=Math.max(0,Math.floor(dt.getMaximumWidth(a))),i=Math.max(0,Math.floor(r?o/r:dt.getMaximumHeight(a)));if((e.width!==o||e.height!==i)&&(a.width=e.width=o,a.height=e.height=i,a.style.width=o+"px",a.style.height=i+"px",dt.retinaScale(e,n.devicePixelRatio),!t)){var s={width:o,height:i};Ne.notify(e,"resize",[s]),n.onResize&&n.onResize(e,s),e.stop(),e.update({duration:n.responsiveAnimationDuration})}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;dt.each(e.xAxes,(function(t,e){t.id=t.id||"x-axis-"+e})),dt.each(e.yAxes,(function(t,e){t.id=t.id||"y-axis-"+e})),n&&(n.id=n.id||"scale")},buildOrUpdateScales:function(){var t=this,e=t.options,n=t.scales||{},a=[],r=Object.keys(n).reduce((function(t,e){return t[e]=!1,t}),{});e.scales&&(a=a.concat((e.scales.xAxes||[]).map((function(t){return{options:t,dtype:"category",dposition:"bottom"}})),(e.scales.yAxes||[]).map((function(t){return{options:t,dtype:"linear",dposition:"left"}})))),e.scale&&a.push({options:e.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),dt.each(a,(function(e){var a=e.options,o=a.id,i=Ge(a.type,e.dtype);He(a.position)!==He(e.dposition)&&(a.position=e.dposition),r[o]=!0;var s=null;if(o in n&&n[o].type===i)(s=n[o]).options=a,s.ctx=t.ctx,s.chart=t;else{var c=Re.getScaleConstructor(i);if(!c)return;s=new c({id:o,type:i,options:a,ctx:t.ctx,chart:t}),n[s.id]=s}s.mergeTicksOptions(),e.isDefault&&(t.scale=s)})),dt.each(r,(function(t,e){t||delete n[e]})),t.scales=n,Re.addScalesToLayout(this)},buildOrUpdateControllers:function(){var t=this,e=[];return dt.each(t.data.datasets,(function(n,a){var r=t.getDatasetMeta(a),o=n.type||t.config.type;if(r.type&&r.type!==o&&(t.destroyDatasetMeta(a),r=t.getDatasetMeta(a)),r.type=o,r.controller)r.controller.updateIndex(a),r.controller.linkScales();else{var i=se[r.type];if(void 0===i)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new i(t,a),e.push(r.controller)}}),t),e},resetElements:function(){var t=this;dt.each(t.data.datasets,(function(e,n){t.getDatasetMeta(n).controller.reset()}),t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),Ye(e),Ne._invalidate(e),!1!==Ne.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var n=e.buildOrUpdateControllers();dt.each(e.data.datasets,(function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()}),e),e.updateLayout(),e.options.animation&&e.options.animation.duration&&dt.each(n,(function(t){t.reset()})),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],Ne.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){!1!==Ne.notify(this,"beforeLayout")&&(_e.update(this,this.width,this.height),Ne.notify(this,"afterScaleUpdate"),Ne.notify(this,"afterLayout"))},updateDatasets:function(){if(!1!==Ne.notify(this,"beforeDatasetsUpdate")){for(var t=0,e=this.data.datasets.length;t<e;++t)this.updateDataset(t);Ne.notify(this,"afterDatasetsUpdate")}},updateDataset:function(t){var e=this.getDatasetMeta(t),n={meta:e,index:t};!1!==Ne.notify(this,"beforeDatasetUpdate",[n])&&(e.controller.update(),Ne.notify(this,"afterDatasetUpdate",[n]))},render:function(t){var e=this;t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]});var n=e.options.animation,a=Ge(t.duration,n&&n.duration),r=t.lazy;if(!1!==Ne.notify(e,"beforeRender")){var o=function(t){Ne.notify(e,"afterRender"),dt.callback(n&&n.onComplete,[t],e)};if(n&&a){var i=new ht({numSteps:a/16.66,easing:t.easing||n.easing,render:function(t,e){var n=e.currentStep,a=n/e.numSteps;t.draw((0,dt.easing.effects[e.easing])(a),a,n)},onAnimationProgress:n.onProgress,onAnimationComplete:o});bt.addAnimation(e,i,a,r)}else e.draw(),o(new ht({numSteps:0,chart:e}));return e}},draw:function(t){var e=this;e.clear(),dt.isNullOrUndef(t)&&(t=1),e.transition(t),e.width<=0||e.height<=0||!1!==Ne.notify(e,"beforeDraw",[t])&&(dt.each(e.boxes,(function(t){t.draw(e.chartArea)}),e),e.drawDatasets(t),e._drawTooltip(t),Ne.notify(e,"afterDraw",[t]))},transition:function(t){for(var e=0,n=(this.data.datasets||[]).length;e<n;++e)this.isDatasetVisible(e)&&this.getDatasetMeta(e).controller.transition(t);this.tooltip.transition(t)},drawDatasets:function(t){var e=this;if(!1!==Ne.notify(e,"beforeDatasetsDraw",[t])){for(var n=(e.data.datasets||[]).length-1;n>=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);Ne.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this.getDatasetMeta(t),a={meta:n,index:t,easingValue:e};!1!==Ne.notify(this,"beforeDatasetDraw",[a])&&(n.controller.draw(e),Ne.notify(this,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this.tooltip,n={tooltip:e,easingValue:t};!1!==Ne.notify(this,"beforeTooltipDraw",[n])&&(e.draw(),Ne.notify(this,"afterTooltipDraw",[n]))},getElementAtEvent:function(t){return pe.modes.single(this,t)},getElementsAtEvent:function(t){return pe.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return pe.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var a=pe.modes[e];return"function"==typeof a?a(this,t,n):[]},getDatasetAtEvent:function(t){return pe.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this.data.datasets[t];e._meta||(e._meta={});var n=e._meta[this.id];return n||(n=e._meta[this.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),n},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e<n;++e)this.isDatasetVisible(e)&&t++;return t},isDatasetVisible:function(t){var e=this.getDatasetMeta(t);return"boolean"==typeof e.hidden?!e.hidden:!this.data.datasets[t].hidden},generateLegend:function(){return this.options.legendCallback(this)},destroyDatasetMeta:function(t){var e=this.id,n=this.data.datasets[t],a=n._meta&&n._meta[e];a&&(a.controller.destroy(),delete n._meta[e])},destroy:function(){var t,e,n=this,a=n.canvas;for(n.stop(),t=0,e=n.data.datasets.length;t<e;++t)n.destroyDatasetMeta(t);a&&(n.unbindEvents(),dt.canvas.clear(n),Ie.releaseContext(n.ctx),n.canvas=null,n.ctx=null),Ne.notify(n,"destroy"),delete Ue.instances[n.id]},toBase64Image:function(){return this.canvas.toDataURL.apply(this.canvas,arguments)},initToolTip:function(){var t=this;t.tooltip=new ze({_chart:t,_chartInstance:t,_data:t.data,_options:t.options.tooltips},t)},bindEvents:function(){var t=this,e=t._listeners={},n=function(){t.eventHandler.apply(t,arguments)};dt.each(t.options.events,(function(a){Ie.addEventListener(t,a,n),e[a]=n})),t.options.responsive&&(n=function(){t.resize()},Ie.addEventListener(t,"resize",n),e.resize=n)},unbindEvents:function(){var t=this,e=t._listeners;e&&(delete t._listeners,dt.each(e,(function(e,n){Ie.removeEventListener(t,n,e)})))},updateHoverStyle:function(t,e,n){var a,r,o,i=n?"setHoverStyle":"removeHoverStyle";for(r=0,o=t.length;r<o;++r)(a=t[r])&&this.getDatasetMeta(a._datasetIndex).controller[i](a)},eventHandler:function(t){var e=this,n=e.tooltip;if(!1!==Ne.notify(e,"beforeEvent",[t])){e._bufferedRender=!0,e._bufferedRequest=null;var a=e.handleEvent(t);n&&(a=n._start?n.handleEvent(t):a|n.handleEvent(t)),Ne.notify(e,"afterEvent",[t]);var r=e._bufferedRequest;return r?e.render(r):a&&!e.animating&&(e.stop(),e.render({duration:e.options.hover.animationDuration,lazy:!0})),e._bufferedRender=!1,e._bufferedRequest=null,e}},handleEvent:function(t){var e,n=this,a=n.options||{},r=a.hover;return n.lastActive=n.lastActive||[],n.active="mouseout"===t.type?[]:n.getElementsAtEventForMode(t,r.mode,r),dt.callback(a.onHover||a.hover.onHover,[t.native,n.active],n),"mouseup"!==t.type&&"click"!==t.type||a.onClick&&a.onClick.call(n,t.native,n.active),n.lastActive.length&&n.updateHoverStyle(n.lastActive,r.mode,!1),n.active.length&&r.mode&&n.updateHoverStyle(n.active,r.mode,!0),e=!dt.arrayEquals(n.active,n.lastActive),n.lastActive=n.active,e}}),Ue.instances={};var We=Ue;function Ke(){throw new Error("This method is not implemented: either no adapter can be found or an incomplete integration was provided.")}function $e(t){this.options=t||{}}Ue.Controller=Ue,Ue.types={},dt.configMerge=Ve,dt.scaleMerge=Be,dt.extend($e.prototype,{formats:Ke,parse:Ke,format:Ke,add:Ke,diff:Ke,startOf:Ke,endOf:Ke,_create:function(t){return t}}),$e.override=function(t){dt.extend($e.prototype,t)};var Ze={_date:$e},Je={formatters:{values:function(t){return dt.isArray(t)?t:""+t},linear:function(t,e,n){var a=n.length>3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var r=dt.log10(Math.abs(a)),o="";if(0!==t)if(Math.max(Math.abs(n[0]),Math.abs(n[n.length-1]))<1e-4){var i=dt.log10(Math.abs(t));o=t.toExponential(Math.floor(i)-Math.floor(r))}else{var s=-1*Math.floor(r);s=Math.max(Math.min(s,20),0),o=t.toFixed(s)}else o="0";return o},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(dt.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}},Xe=dt.valueOrDefault,Qe=dt.valueAtIndexOrDefault;function tn(t){var e,n,a=[];for(e=0,n=t.length;e<n;++e)a.push(t[e].label);return a}function en(t,e,n){return dt.isArray(e)?dt.longestText(t,n,e):t.measureText(e).width}st._set("scale",{display:!0,position:"left",offset:!1,gridLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,drawBorder:!0,drawOnChartArea:!0,drawTicks:!0,tickMarkLength:10,zeroLineWidth:1,zeroLineColor:"rgba(0,0,0,0.25)",zeroLineBorderDash:[],zeroLineBorderDashOffset:0,offsetGridLines:!1,borderDash:[],borderDashOffset:0},scaleLabel:{display:!1,labelString:"",padding:{top:4,bottom:4}},ticks:{beginAtZero:!1,minRotation:0,maxRotation:50,mirror:!1,padding:0,reverse:!1,display:!0,autoSkip:!0,autoSkipPadding:0,labelOffset:0,callback:Je.formatters.values,minor:{},major:{}}});var nn=pt.extend({getPadding:function(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}},getTicks:function(){return this._ticks},mergeTicksOptions:function(){var t=this.options.ticks;for(var e in!1===t.minor&&(t.minor={display:!1}),!1===t.major&&(t.major={display:!1}),t)"major"!==e&&"minor"!==e&&(void 0===t.minor[e]&&(t.minor[e]=t[e]),void 0===t.major[e]&&(t.major[e]=t[e]))},beforeUpdate:function(){dt.callback(this.options.beforeUpdate,[this])},update:function(t,e,n){var a,r,o,i,s,c,l=this;for(l.beforeUpdate(),l.maxWidth=t,l.maxHeight=e,l.margins=dt.extend({left:0,right:0,top:0,bottom:0},n),l._maxLabelLines=0,l.longestLabelWidth=0,l.longestTextCache=l.longestTextCache||{},l.beforeSetDimensions(),l.setDimensions(),l.afterSetDimensions(),l.beforeDataLimits(),l.determineDataLimits(),l.afterDataLimits(),l.beforeBuildTicks(),s=l.buildTicks()||[],s=l.afterBuildTicks(s)||s,l.beforeTickToLabelConversion(),o=l.convertTicksToLabels(s)||l.ticks,l.afterTickToLabelConversion(),l.ticks=o,a=0,r=o.length;a<r;++a)i=o[a],(c=s[a])?c.label=i:s.push(c={label:i,major:!1});return l._ticks=s,l.beforeCalculateTickRotation(),l.calculateTickRotation(),l.afterCalculateTickRotation(),l.beforeFit(),l.fit(),l.afterFit(),l.afterUpdate(),l.minSize},afterUpdate:function(){dt.callback(this.options.afterUpdate,[this])},beforeSetDimensions:function(){dt.callback(this.options.beforeSetDimensions,[this])},setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0},afterSetDimensions:function(){dt.callback(this.options.afterSetDimensions,[this])},beforeDataLimits:function(){dt.callback(this.options.beforeDataLimits,[this])},determineDataLimits:dt.noop,afterDataLimits:function(){dt.callback(this.options.afterDataLimits,[this])},beforeBuildTicks:function(){dt.callback(this.options.beforeBuildTicks,[this])},buildTicks:dt.noop,afterBuildTicks:function(t){var e=this;return dt.isArray(t)&&t.length?dt.callback(e.options.afterBuildTicks,[e,t]):(e.ticks=dt.callback(e.options.afterBuildTicks,[e,e.ticks])||e.ticks,t)},beforeTickToLabelConversion:function(){dt.callback(this.options.beforeTickToLabelConversion,[this])},convertTicksToLabels:function(){var t=this.options.ticks;this.ticks=this.ticks.map(t.userCallback||t.callback,this)},afterTickToLabelConversion:function(){dt.callback(this.options.afterTickToLabelConversion,[this])},beforeCalculateTickRotation:function(){dt.callback(this.options.beforeCalculateTickRotation,[this])},calculateTickRotation:function(){var t=this,e=t.ctx,n=t.options.ticks,a=tn(t._ticks),r=dt.options._parseFont(n);e.font=r.string;var o=n.minRotation||0;if(a.length&&t.options.display&&t.isHorizontal())for(var i,s=dt.longestText(e,r.string,a,t.longestTextCache),c=s,l=t.getPixelForTick(1)-t.getPixelForTick(0)-6;c>l&&o<n.maxRotation;){var d=dt.toRadians(o);if(i=Math.cos(d),Math.sin(d)*s>t.maxHeight){o--;break}o++,c=i*s}t.labelRotation=o},afterCalculateTickRotation:function(){dt.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){dt.callback(this.options.beforeFit,[this])},fit:function(){var t=this,e=t.minSize={width:0,height:0},n=tn(t._ticks),a=t.options,r=a.ticks,o=a.scaleLabel,i=a.gridLines,s=t._isVisible(),c=a.position,l=t.isHorizontal(),d=dt.options._parseFont,u=d(r),g=a.gridLines.tickMarkLength;if(e.width=l?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:s&&i.drawTicks?g:0,e.height=l?s&&i.drawTicks?g:0:t.maxHeight,o.display&&s){var f=d(o),p=dt.options.toPadding(o.padding),m=f.lineHeight+p.height;l?e.height+=m:e.width+=m}if(r.display&&s){var h=dt.longestText(t.ctx,u.string,n,t.longestTextCache),b=dt.numberOfLabelLines(n),y=.5*u.size,_=t.options.ticks.padding;if(t._maxLabelLines=b,t.longestLabelWidth=h,l){var O=dt.toRadians(t.labelRotation),v=Math.cos(O),C=Math.sin(O);e.height=Math.min(t.maxHeight,e.height+(C*h+u.lineHeight*b+y)+_),t.ctx.font=u.string;var P,M,x=en(t.ctx,n[0],u.string),w=en(t.ctx,n[n.length-1],u.string),T=t.getPixelForTick(0)-t.left,S=t.right-t.getPixelForTick(n.length-1);0!==t.labelRotation?(P="bottom"===c?v*x:v*y,M="bottom"===c?v*y:v*w):(P=x/2,M=w/2),t.paddingLeft=Math.max(P-T,0)+3,t.paddingRight=Math.max(M-S,0)+3}else r.mirror?h=0:h+=_+y,e.width=Math.min(t.maxWidth,e.width+h),t.paddingTop=u.size/2,t.paddingBottom=u.size/2}t.handleMargins(),t.width=e.width,t.height=e.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){dt.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(dt.isNullOrUndef(t))return NaN;if(("number"==typeof t||t instanceof Number)&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:dt.noop,getPixelForValue:dt.noop,getValueForPixel:dt.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var a=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),r=a*t+e.paddingLeft;return n&&(r+=a/2),e.left+r+(e.isFullWidth()?e.margins.left:0)}return e.top+t*((e.height-(e.paddingTop+e.paddingBottom))/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;return e.isHorizontal()?e.left+((e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft)+(e.isFullWidth()?e.margins.left:0):e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this.min,e=this.max;return this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0},_autoSkip:function(t){var e,n,a=this,r=a.isHorizontal(),o=t.length,i=!1,s=a.options.ticks.minor.maxTicksLimit,c=a._tickSize()*(o-1),l=r?a.width-(a.paddingLeft+a.paddingRight):a.height-(a.paddingTop+a.PaddingBottom),d=[];for(c>l&&(i=1+Math.floor(c/l)),o>s&&(i=Math.max(i,1+Math.floor(o/s))),e=0;e<o;e++)n=t[e],i>1&&e%i>0&&delete n.label,d.push(n);return d},_tickSize:function(){var t=this,e=t.isHorizontal(),n=t.options.ticks.minor,a=dt.toRadians(t.labelRotation),r=Math.abs(Math.cos(a)),o=Math.abs(Math.sin(a)),i=n.autoSkipPadding||0,s=t.longestLabelWidth+i||0,c=dt.options._parseFont(n),l=t._maxLabelLines*c.lineHeight+i||0;return e?l*r>s*o?s/r:l/o:l*o<s*r?l/r:s/o},_isVisible:function(){var t,e,n,a=this.chart,r=this.options.display;if("auto"!==r)return!!r;for(t=0,e=a.data.datasets.length;t<e;++t)if(a.isDatasetVisible(t)&&((n=a.getDatasetMeta(t)).xAxisID===this.id||n.yAxisID===this.id))return!0;return!1},draw:function(t){var e=this,n=e.options;if(e._isVisible()){var a,r,o,i=e.chart,s=e.ctx,c=st.global.defaultFontColor,l=n.ticks.minor,d=n.ticks.major||l,u=n.gridLines,g=n.scaleLabel,f=n.position,p=0!==e.labelRotation,m=l.mirror,h=e.isHorizontal(),b=dt.options._parseFont,y=l.display&&l.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),_=Xe(l.fontColor,c),O=b(l),v=O.lineHeight,C=Xe(d.fontColor,c),P=b(d),M=l.padding,x=l.labelOffset,w=u.drawTicks?u.tickMarkLength:0,T=Xe(g.fontColor,c),S=b(g),k=dt.options.toPadding(g.padding),I=dt.toRadians(e.labelRotation),N=[],R=u.drawBorder?Qe(u.lineWidth,0,0):0,A=dt._alignPixel;if("top"===f?(a=A(i,e.bottom,R),r=e.bottom-w,o=a-R/2):"bottom"===f?(a=A(i,e.top,R),r=a+R/2,o=e.top+w):"left"===f?(a=A(i,e.right,R),r=e.right-w,o=a-R/2):(a=A(i,e.left,R),r=a+R/2,o=e.left+w),dt.each(y,(function(a,s){if(!dt.isNullOrUndef(a.label)){var c,l,d,g,b,y,_,O,C,P,T,S,k,E,D,L,q=a.label;s===e.zeroLineIndex&&n.offset===u.offsetGridLines?(c=u.zeroLineWidth,l=u.zeroLineColor,d=u.zeroLineBorderDash||[],g=u.zeroLineBorderDashOffset||0):(c=Qe(u.lineWidth,s),l=Qe(u.color,s),d=u.borderDash||[],g=u.borderDashOffset||0);var j=dt.isArray(q)?q.length:1,F=function(t,e,n){var a=t.getPixelForTick(e);return n&&(1===t.getTicks().length?a-=t.isHorizontal()?Math.max(a-t.left,t.right-a):Math.max(a-t.top,t.bottom-a):a-=0===e?(t.getPixelForTick(1)-a)/2:(a-t.getPixelForTick(e-1))/2),a}(e,s,u.offsetGridLines);if(h){var z=w+M;F<e.left-1e-7&&(l="rgba(0,0,0,0)"),b=_=C=T=A(i,F,c),y=r,O=o,k=e.getPixelForTick(s)+x,"top"===f?(P=A(i,t.top,R)+R/2,S=t.bottom,D=((p?1:.5)-j)*v,L=p?"left":"center",E=e.bottom-z):(P=t.top,S=A(i,t.bottom,R)-R/2,D=(p?0:.5)*v,L=p?"right":"center",E=e.top+z)}else{var G=(m?0:w)+M;F<e.top-1e-7&&(l="rgba(0,0,0,0)"),b=r,_=o,y=O=P=S=A(i,F,c),E=e.getPixelForTick(s)+x,D=(1-j)*v/2,"left"===f?(C=A(i,t.left,R)+R/2,T=t.right,L=m?"left":"right",k=e.right-G):(C=t.left,T=A(i,t.right,R)-R/2,L=m?"right":"left",k=e.left+G)}N.push({tx1:b,ty1:y,tx2:_,ty2:O,x1:C,y1:P,x2:T,y2:S,labelX:k,labelY:E,glWidth:c,glColor:l,glBorderDash:d,glBorderDashOffset:g,rotation:-1*I,label:q,major:a.major,textOffset:D,textAlign:L})}})),dt.each(N,(function(t){var e=t.glWidth,n=t.glColor;if(u.display&&e&&n&&(s.save(),s.lineWidth=e,s.strokeStyle=n,s.setLineDash&&(s.setLineDash(t.glBorderDash),s.lineDashOffset=t.glBorderDashOffset),s.beginPath(),u.drawTicks&&(s.moveTo(t.tx1,t.ty1),s.lineTo(t.tx2,t.ty2)),u.drawOnChartArea&&(s.moveTo(t.x1,t.y1),s.lineTo(t.x2,t.y2)),s.stroke(),s.restore()),l.display){s.save(),s.translate(t.labelX,t.labelY),s.rotate(t.rotation),s.font=t.major?P.string:O.string,s.fillStyle=t.major?C:_,s.textBaseline="middle",s.textAlign=t.textAlign;var a=t.label,r=t.textOffset;if(dt.isArray(a))for(var o=0;o<a.length;++o)s.fillText(""+a[o],0,r),r+=v;else s.fillText(a,0,r);s.restore()}})),g.display){var E,D,L=0,q=S.lineHeight/2;if(h)E=e.left+(e.right-e.left)/2,D="bottom"===f?e.bottom-q-k.bottom:e.top+q+k.top;else{var j="left"===f;E=j?e.left+q+k.top:e.right-q-k.top,D=e.top+(e.bottom-e.top)/2,L=j?-.5*Math.PI:.5*Math.PI}s.save(),s.translate(E,D),s.rotate(L),s.textAlign="center",s.textBaseline="middle",s.fillStyle=T,s.font=S.string,s.fillText(g.labelString,0,0),s.restore()}if(R){var F,z,G,B,V=R,Y=Qe(u.lineWidth,y.length-1,0);h?(F=A(i,e.left,V)-V/2,z=A(i,e.right,Y)+Y/2,G=B=a):(G=A(i,e.top,V)-V/2,B=A(i,e.bottom,Y)+Y/2,F=z=a),s.lineWidth=R,s.strokeStyle=Qe(u.color,0),s.beginPath(),s.moveTo(F,G),s.lineTo(z,B),s.stroke()}}}}),an=nn.extend({getLabels:function(){var t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels},determineDataLimits:function(){var t,e=this,n=e.getLabels();e.minIndex=0,e.maxIndex=n.length-1,void 0!==e.options.ticks.min&&(t=n.indexOf(e.options.ticks.min),e.minIndex=-1!==t?t:e.minIndex),void 0!==e.options.ticks.max&&(t=n.indexOf(e.options.ticks.max),e.maxIndex=-1!==t?t:e.maxIndex),e.min=n[e.minIndex],e.max=n[e.maxIndex]},buildTicks:function(){var t=this,e=t.getLabels();t.ticks=0===t.minIndex&&t.maxIndex===e.length-1?e:e.slice(t.minIndex,t.maxIndex+1)},getLabelForIndex:function(t,e){var n=this,a=n.chart;return a.getDatasetMeta(e).controller._getValueScaleId()===n.id?n.getRightValue(a.data.datasets[e].data[t]):n.ticks[t-n.minIndex]},getPixelForValue:function(t,e){var n,a=this,r=a.options.offset,o=Math.max(a.maxIndex+1-a.minIndex-(r?0:1),1);if(null!=t&&(n=a.isHorizontal()?t.x:t.y),void 0!==n||void 0!==t&&isNaN(e)){var i=a.getLabels().indexOf(t=n||t);e=-1!==i?i:e}if(a.isHorizontal()){var s=a.width/o,c=s*(e-a.minIndex);return r&&(c+=s/2),a.left+c}var l=a.height/o,d=l*(e-a.minIndex);return r&&(d+=l/2),a.top+d},getPixelForTick:function(t){return this.getPixelForValue(this.ticks[t],t+this.minIndex,null)},getValueForPixel:function(t){var e=this,n=e.options.offset,a=Math.max(e._ticks.length-(n?0:1),1),r=e.isHorizontal(),o=(r?e.width:e.height)/a;return t-=r?e.left:e.top,n&&(t-=o/2),(t<=0?0:Math.round(t/o))+e.minIndex},getBasePixel:function(){return this.bottom}});an._defaults={position:"bottom"};var rn=dt.isNullOrUndef,on=nn.extend({getRightValue:function(t){return"string"==typeof t?+t:nn.prototype.getRightValue.call(this,t)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=dt.sign(t.min),a=dt.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var r=void 0!==e.min||void 0!==e.suggestedMin,o=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(t.min=null===t.min?e.suggestedMin:Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(t.max=null===t.max?e.suggestedMax:Math.max(t.max,e.suggestedMax)),r!==o&&t.min>=t.max&&(r?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:function(){var t,e=this.options.ticks,n=e.stepSize,a=e.maxTicksLimit;return n?t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1:(t=this._computeTickLimit(),a=a||11),a&&(t=Math.min(a,t)),t},_computeTickLimit:function(){return Number.POSITIVE_INFINITY},handleDirectionalChanges:dt.noop,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),a={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,precision:e.precision,stepSize:dt.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=function(t,e){var n,a,r,o,i=[],s=t.stepSize,c=s||1,l=t.maxTicks-1,d=t.min,u=t.max,g=t.precision,f=e.min,p=e.max,m=dt.niceNum((p-f)/l/c)*c;if(m<1e-14&&rn(d)&&rn(u))return[f,p];(o=Math.ceil(p/m)-Math.floor(f/m))>l&&(m=dt.niceNum(o*m/l/c)*c),s||rn(g)?n=Math.pow(10,dt._decimalPlaces(m)):(n=Math.pow(10,g),m=Math.ceil(m*n)/n),a=Math.floor(f/m)*m,r=Math.ceil(p/m)*m,s&&(!rn(d)&&dt.almostWhole(d/m,m/1e3)&&(a=d),!rn(u)&&dt.almostWhole(u/m,m/1e3)&&(r=u)),o=dt.almostEquals(o=(r-a)/m,Math.round(o),m/1e3)?Math.round(o):Math.ceil(o),a=Math.round(a*n)/n,r=Math.round(r*n)/n,i.push(rn(d)?a:d);for(var h=1;h<o;++h)i.push(Math.round((a+h*m)*n)/n);return i.push(rn(u)?r:u),i}(a,t);t.handleDirectionalChanges(),t.max=dt.max(r),t.min=dt.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var t=this;t.ticksAsNumbers=t.ticks.slice(),t.zeroLineIndex=t.ticks.indexOf(0),nn.prototype.convertTicksToLabels.call(t)}}),sn={position:"left",ticks:{callback:Je.formatters.linear}},cn=on.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,r=t.isHorizontal();function o(e){return r?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null;var i=e.stacked;if(void 0===i&&dt.each(a,(function(t,e){if(!i){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(a)&&void 0!==a.stack&&(i=!0)}})),e.stacked||i){var s={};dt.each(a,(function(a,r){var i=n.getDatasetMeta(r),c=[i.type,void 0===e.stacked&&void 0===i.stack?r:"",i.stack].join(".");void 0===s[c]&&(s[c]={positiveValues:[],negativeValues:[]});var l=s[c].positiveValues,d=s[c].negativeValues;n.isDatasetVisible(r)&&o(i)&&dt.each(a.data,(function(n,a){var r=+t.getRightValue(n);isNaN(r)||i.data[a].hidden||(l[a]=l[a]||0,d[a]=d[a]||0,e.relativePoints?l[a]=100:r<0?d[a]+=r:l[a]+=r)}))})),dt.each(s,(function(e){var n=e.positiveValues.concat(e.negativeValues),a=dt.min(n),r=dt.max(n);t.min=null===t.min?a:Math.min(t.min,a),t.max=null===t.max?r:Math.max(t.max,r)}))}else dt.each(a,(function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&o(r)&&dt.each(e.data,(function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||(null===t.min?t.min=a:a<t.min&&(t.min=a),null===t.max?t.max=a:a>t.max&&(t.max=a))}))}));t.min=isFinite(t.min)&&!isNaN(t.min)?t.min:0,t.max=isFinite(t.max)&&!isNaN(t.max)?t.max:1,this.handleTickRangeOptions()},_computeTickLimit:function(){var t;return this.isHorizontal()?Math.ceil(this.width/40):(t=dt.options._parseFont(this.options.ticks),Math.ceil(this.height/t.lineHeight))},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e=this,n=e.start,a=+e.getRightValue(t),r=e.end-n;return e.isHorizontal()?e.left+e.width/r*(a-n):e.bottom-e.height/r*(a-n)},getValueForPixel:function(t){var e=this,n=e.isHorizontal();return e.start+(n?t-e.left:e.bottom-t)/(n?e.width:e.height)*(e.end-e.start)},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});cn._defaults=sn;var ln=dt.valueOrDefault,dn={position:"left",ticks:{callback:Je.formatters.logarithmic}};function un(t,e){return dt.isFinite(t)&&t>=0?t:e}var gn=nn.extend({determineDataLimits:function(){var t=this,e=t.options,n=t.chart,a=n.data.datasets,r=t.isHorizontal();function o(e){return r?e.xAxisID===t.id:e.yAxisID===t.id}t.min=null,t.max=null,t.minNotZero=null;var i=e.stacked;if(void 0===i&&dt.each(a,(function(t,e){if(!i){var a=n.getDatasetMeta(e);n.isDatasetVisible(e)&&o(a)&&void 0!==a.stack&&(i=!0)}})),e.stacked||i){var s={};dt.each(a,(function(a,r){var i=n.getDatasetMeta(r),c=[i.type,void 0===e.stacked&&void 0===i.stack?r:"",i.stack].join(".");n.isDatasetVisible(r)&&o(i)&&(void 0===s[c]&&(s[c]=[]),dt.each(a.data,(function(e,n){var a=s[c],r=+t.getRightValue(e);isNaN(r)||i.data[n].hidden||r<0||(a[n]=a[n]||0,a[n]+=r)})))})),dt.each(s,(function(e){if(e.length>0){var n=dt.min(e),a=dt.max(e);t.min=null===t.min?n:Math.min(t.min,n),t.max=null===t.max?a:Math.max(t.max,a)}}))}else dt.each(a,(function(e,a){var r=n.getDatasetMeta(a);n.isDatasetVisible(a)&&o(r)&&dt.each(e.data,(function(e,n){var a=+t.getRightValue(e);isNaN(a)||r.data[n].hidden||a<0||(null===t.min?t.min=a:a<t.min&&(t.min=a),null===t.max?t.max=a:a>t.max&&(t.max=a),0!==a&&(null===t.minNotZero||a<t.minNotZero)&&(t.minNotZero=a))}))}));this.handleTickRangeOptions()},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;t.min=un(e.min,t.min),t.max=un(e.max,t.max),t.min===t.max&&(0!==t.min&&null!==t.min?(t.min=Math.pow(10,Math.floor(dt.log10(t.min))-1),t.max=Math.pow(10,Math.floor(dt.log10(t.max))+1)):(t.min=1,t.max=10)),null===t.min&&(t.min=Math.pow(10,Math.floor(dt.log10(t.max))-1)),null===t.max&&(t.max=0!==t.min?Math.pow(10,Math.floor(dt.log10(t.min))+1):10),null===t.minNotZero&&(t.minNotZero=t.min>0?t.min:t.max<1?Math.pow(10,Math.floor(dt.log10(t.max))):1)},buildTicks:function(){var t=this,e=t.options.ticks,n=!t.isHorizontal(),a={min:un(e.min),max:un(e.max)},r=t.ticks=function(t,e){var n,a,r=[],o=ln(t.min,Math.pow(10,Math.floor(dt.log10(e.min)))),i=Math.floor(dt.log10(e.max)),s=Math.ceil(e.max/Math.pow(10,i));0===o?(n=Math.floor(dt.log10(e.minNotZero)),a=Math.floor(e.minNotZero/Math.pow(10,n)),r.push(o),o=a*Math.pow(10,n)):(n=Math.floor(dt.log10(o)),a=Math.floor(o/Math.pow(10,n)));var c=n<0?Math.pow(10,Math.abs(n)):1;do{r.push(o),10==++a&&(a=1,c=++n>=0?1:c),o=Math.round(a*Math.pow(10,n)*c)/c}while(n<i||n===i&&a<s);var l=ln(t.max,o);return r.push(l),r}(a,t);t.max=dt.max(r),t.min=dt.min(r),e.reverse?(n=!n,t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max),n&&r.reverse()},convertTicksToLabels:function(){this.tickValues=this.ticks.slice(),nn.prototype.convertTicksToLabels.call(this)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForTick:function(t){return this.getPixelForValue(this.tickValues[t])},_getFirstTickValue:function(t){var e=Math.floor(dt.log10(t));return Math.floor(t/Math.pow(10,e))*Math.pow(10,e)},getPixelForValue:function(t){var e,n,a,r,o,i=this,s=i.options.ticks,c=s.reverse,l=dt.log10,d=i._getFirstTickValue(i.minNotZero),u=0;return t=+i.getRightValue(t),c?(a=i.end,r=i.start,o=-1):(a=i.start,r=i.end,o=1),i.isHorizontal()?(e=i.width,n=c?i.right:i.left):(e=i.height,o*=-1,n=c?i.top:i.bottom),t!==a&&(0===a&&(e-=u=ln(s.fontSize,st.global.defaultFontSize),a=d),0!==t&&(u+=e/(l(r)-l(a))*(l(t)-l(a))),n+=o*u),n},getValueForPixel:function(t){var e,n,a,r,o=this,i=o.options.ticks,s=i.reverse,c=dt.log10,l=o._getFirstTickValue(o.minNotZero);if(s?(n=o.end,a=o.start):(n=o.start,a=o.end),o.isHorizontal()?(e=o.width,r=s?o.right-t:t-o.left):(e=o.height,r=s?t-o.top:o.bottom-t),r!==n){if(0===n){var d=ln(i.fontSize,st.global.defaultFontSize);r-=d,e-=d,n=l}r*=c(a)-c(n),r/=e,r=Math.pow(10,c(n)+r)}return r}});gn._defaults=dn;var fn=dt.valueOrDefault,pn=dt.valueAtIndexOrDefault,mn=dt.options.resolve,hn={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,color:"rgba(0, 0, 0, 0.1)",lineWidth:1,borderDash:[],borderDashOffset:0},gridLines:{circular:!1},ticks:{showLabelBackdrop:!0,backdropColor:"rgba(255,255,255,0.75)",backdropPaddingY:2,backdropPaddingX:2,callback:Je.formatters.linear},pointLabels:{display:!0,fontSize:10,callback:function(t){return t}}};function bn(t){var e=t.options;return e.angleLines.display||e.pointLabels.display?t.chart.data.labels.length:0}function yn(t){var e=t.ticks;return e.display&&t.display?fn(e.fontSize,st.global.defaultFontSize)+2*e.backdropPaddingY:0}function _n(t,e,n,a,r){return t===a||t===r?{start:e-n/2,end:e+n/2}:t<a||t>r?{start:e-n,end:e}:{start:e,end:e+n}}function On(t){return 0===t||180===t?"center":t<180?"left":"right"}function vn(t,e,n,a){var r,o,i=n.y+a/2;if(dt.isArray(e))for(r=0,o=e.length;r<o;++r)t.fillText(e[r],n.x,i),i+=a;else t.fillText(e,n.x,i)}function Cn(t,e,n){90===t||270===t?n.y-=e.h/2:(t>270||t<90)&&(n.y-=e.h)}function Pn(t){return dt.isNumber(t)?t:0}var Mn=on.extend({setDimensions:function(){var t=this;t.width=t.maxWidth,t.height=t.maxHeight,t.paddingTop=yn(t.options)/2,t.xCenter=Math.floor(t.width/2),t.yCenter=Math.floor((t.height-t.paddingTop)/2),t.drawingArea=Math.min(t.height-t.paddingTop,t.width)/2},determineDataLimits:function(){var t=this,e=t.chart,n=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;dt.each(e.data.datasets,(function(r,o){if(e.isDatasetVisible(o)){var i=e.getDatasetMeta(o);dt.each(r.data,(function(e,r){var o=+t.getRightValue(e);isNaN(o)||i.data[r].hidden||(n=Math.min(o,n),a=Math.max(o,a))}))}})),t.min=n===Number.POSITIVE_INFINITY?0:n,t.max=a===Number.NEGATIVE_INFINITY?0:a,t.handleTickRangeOptions()},_computeTickLimit:function(){return Math.ceil(this.drawingArea/yn(this.options))},convertTicksToLabels:function(){var t=this;on.prototype.convertTicksToLabels.call(t),t.pointLabels=t.chart.data.labels.map(t.options.pointLabels.callback,t)},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},fit:function(){var t=this.options;t.display&&t.pointLabels.display?function(t){var e,n,a,r=dt.options._parseFont(t.options.pointLabels),o={l:0,r:t.width,t:0,b:t.height-t.paddingTop},i={};t.ctx.font=r.string,t._pointLabelSizes=[];var s,c,l,d=bn(t);for(e=0;e<d;e++){a=t.getPointPosition(e,t.drawingArea+5),s=t.ctx,c=r.lineHeight,n=dt.isArray(l=t.pointLabels[e]||"")?{w:dt.longestText(s,s.font,l),h:l.length*c}:{w:s.measureText(l).width,h:c},t._pointLabelSizes[e]=n;var u=t.getIndexAngle(e),g=dt.toDegrees(u)%360,f=_n(g,a.x,n.w,0,180),p=_n(g,a.y,n.h,90,270);f.start<o.l&&(o.l=f.start,i.l=u),f.end>o.r&&(o.r=f.end,i.r=u),p.start<o.t&&(o.t=p.start,i.t=u),p.end>o.b&&(o.b=p.end,i.b=u)}t.setReductions(t.drawingArea,o,i)}(this):this.setCenterPoint(0,0,0,0)},setReductions:function(t,e,n){var a=this,r=e.l/Math.sin(n.l),o=Math.max(e.r-a.width,0)/Math.sin(n.r),i=-e.t/Math.cos(n.t),s=-Math.max(e.b-(a.height-a.paddingTop),0)/Math.cos(n.b);r=Pn(r),o=Pn(o),i=Pn(i),s=Pn(s),a.drawingArea=Math.min(Math.floor(t-(r+o)/2),Math.floor(t-(i+s)/2)),a.setCenterPoint(r,o,i,s)},setCenterPoint:function(t,e,n,a){var r=this,o=n+r.drawingArea,i=r.height-r.paddingTop-a-r.drawingArea;r.xCenter=Math.floor((t+r.drawingArea+(r.width-e-r.drawingArea))/2+r.left),r.yCenter=Math.floor((o+i)/2+r.top+r.paddingTop)},getIndexAngle:function(t){return t*(2*Math.PI/bn(this))+(this.chart.options&&this.chart.options.startAngle?this.chart.options.startAngle:0)*Math.PI*2/360},getDistanceFromCenterForValue:function(t){var e=this;if(null===t)return 0;var n=e.drawingArea/(e.max-e.min);return e.options.ticks.reverse?(e.max-t)*n:(t-e.min)*n},getPointPosition:function(t,e){var n=this.getIndexAngle(t)-Math.PI/2;return{x:Math.cos(n)*e+this.xCenter,y:Math.sin(n)*e+this.yCenter}},getPointPositionForValue:function(t,e){return this.getPointPosition(t,this.getDistanceFromCenterForValue(e))},getBasePosition:function(){var t=this.min,e=this.max;return this.getPointPositionForValue(0,this.beginAtZero?0:t<0&&e<0?e:t>0&&e>0?t:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,a=e.ticks;if(e.display){var r=t.ctx,o=this.getIndexAngle(0),i=dt.options._parseFont(a);(e.angleLines.display||e.pointLabels.display)&&function(t){var e=t.ctx,n=t.options,a=n.angleLines,r=n.gridLines,o=n.pointLabels,i=fn(a.lineWidth,r.lineWidth),s=fn(a.color,r.color),c=yn(n);e.save(),e.lineWidth=i,e.strokeStyle=s,e.setLineDash&&(e.setLineDash(mn([a.borderDash,r.borderDash,[]])),e.lineDashOffset=mn([a.borderDashOffset,r.borderDashOffset,0]));var l=t.getDistanceFromCenterForValue(n.ticks.reverse?t.min:t.max),d=dt.options._parseFont(o);e.font=d.string,e.textBaseline="middle";for(var u=bn(t)-1;u>=0;u--){if(a.display&&i&&s){var g=t.getPointPosition(u,l);e.beginPath(),e.moveTo(t.xCenter,t.yCenter),e.lineTo(g.x,g.y),e.stroke()}if(o.display){var f=t.getPointPosition(u,l+(0===u?c/2:0)+5),p=pn(o.fontColor,u,st.global.defaultFontColor);e.fillStyle=p;var m=t.getIndexAngle(u),h=dt.toDegrees(m);e.textAlign=On(h),Cn(h,t._pointLabelSizes[u],f),vn(e,t.pointLabels[u]||"",f,d.lineHeight)}}e.restore()}(t),dt.each(t.ticks,(function(e,s){if(s>0||a.reverse){var c=t.getDistanceFromCenterForValue(t.ticksAsNumbers[s]);if(n.display&&0!==s&&function(t,e,n,a){var r,o=t.ctx,i=e.circular,s=bn(t),c=pn(e.color,a-1),l=pn(e.lineWidth,a-1);if((i||s)&&c&&l){if(o.save(),o.strokeStyle=c,o.lineWidth=l,o.setLineDash&&(o.setLineDash(e.borderDash||[]),o.lineDashOffset=e.borderDashOffset||0),o.beginPath(),i)o.arc(t.xCenter,t.yCenter,n,0,2*Math.PI);else{r=t.getPointPosition(0,n),o.moveTo(r.x,r.y);for(var d=1;d<s;d++)r=t.getPointPosition(d,n),o.lineTo(r.x,r.y)}o.closePath(),o.stroke(),o.restore()}}(t,n,c,s),a.display){var l=fn(a.fontColor,st.global.defaultFontColor);if(r.font=i.string,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(o),a.showLabelBackdrop){var d=r.measureText(e).width;r.fillStyle=a.backdropColor,r.fillRect(-d/2-a.backdropPaddingX,-c-i.size/2-a.backdropPaddingY,d+2*a.backdropPaddingX,i.size+2*a.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=l,r.fillText(e,0,-c),r.restore()}}}))}}});Mn._defaults=hn;var xn=dt.valueOrDefault,wn=Number.MIN_SAFE_INTEGER||-9007199254740991,Tn=Number.MAX_SAFE_INTEGER||9007199254740991,Sn={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,15,30]},minute:{common:!0,size:6e4,steps:[1,2,5,10,15,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}},kn=Object.keys(Sn);function In(t,e){return t-e}function Nn(t){var e,n,a,r={},o=[];for(e=0,n=t.length;e<n;++e)r[a=t[e]]||(r[a]=!0,o.push(a));return o}function Rn(t,e,n,a){var r=function(t,e,n){for(var a,r,o,i=0,s=t.length-1;i>=0&&i<=s;){if(o=t[a=i+s>>1],!(r=t[a-1]||null))return{lo:null,hi:o};if(o[e]<n)i=a+1;else{if(!(r[e]>n))return{lo:r,hi:o};s=a-1}}return{lo:o,hi:null}}(t,e,n),o=r.lo?r.hi?r.lo:t[t.length-2]:t[0],i=r.lo?r.hi?r.hi:t[t.length-1]:t[1],s=i[e]-o[e];return o[a]+(i[a]-o[a])*(s?(n-o[e])/s:0)}function An(t,e){var n=t._adapter,a=t.options.time,r=a.parser,o=r||a.format,i=e;return"function"==typeof r&&(i=r(i)),dt.isFinite(i)||(i="string"==typeof o?n.parse(i,o):n.parse(i)),null!==i?+i:(r||"function"!=typeof o||(i=o(e),dt.isFinite(i)||(i=n.parse(i))),i)}function En(t,e){if(dt.isNullOrUndef(e))return null;var n=t.options.time,a=An(t,t.getRightValue(e));return null===a?a:(n.round&&(a=+t._adapter.startOf(a,n.round)),a)}function Dn(t){for(var e=kn.indexOf(t)+1,n=kn.length;e<n;++e)if(Sn[kn[e]].common)return kn[e]}var Ln=nn.extend({initialize:function(){this.mergeTicksOptions(),nn.prototype.initialize.call(this)},update:function(){var t=this,e=t.options,n=e.time||(e.time={}),a=t._adapter=new Ze._date(e.adapters.date);return n.format&&console.warn("options.time.format is deprecated and replaced by options.time.parser."),dt.mergeIf(n.displayFormats,a.formats()),nn.prototype.update.apply(t,arguments)},getRightValue:function(t){return t&&void 0!==t.t&&(t=t.t),nn.prototype.getRightValue.call(this,t)},determineDataLimits:function(){var t,e,n,a,r,o,i=this,s=i.chart,c=i._adapter,l=i.options.time,d=l.unit||"day",u=Tn,g=wn,f=[],p=[],m=[],h=s.data.labels||[];for(t=0,n=h.length;t<n;++t)m.push(En(i,h[t]));for(t=0,n=(s.data.datasets||[]).length;t<n;++t)if(s.isDatasetVisible(t))if(dt.isObject((r=s.data.datasets[t].data)[0]))for(p[t]=[],e=0,a=r.length;e<a;++e)o=En(i,r[e]),f.push(o),p[t][e]=o;else{for(e=0,a=m.length;e<a;++e)f.push(m[e]);p[t]=m.slice(0)}else p[t]=[];m.length&&(m=Nn(m).sort(In),u=Math.min(u,m[0]),g=Math.max(g,m[m.length-1])),f.length&&(f=Nn(f).sort(In),u=Math.min(u,f[0]),g=Math.max(g,f[f.length-1])),u=En(i,l.min)||u,g=En(i,l.max)||g,u=u===Tn?+c.startOf(Date.now(),d):u,g=g===wn?+c.endOf(Date.now(),d)+1:g,i.min=Math.min(u,g),i.max=Math.max(u+1,g),i._horizontal=i.isHorizontal(),i._table=[],i._timestamps={data:f,datasets:p,labels:m}},buildTicks:function(){var t,e,n,a=this,r=a.min,o=a.max,i=a.options,s=i.time,c=[],l=[];switch(i.ticks.source){case"data":c=a._timestamps.data;break;case"labels":c=a._timestamps.labels;break;case"auto":default:c=function(t,e,n,a){var r,o=t._adapter,i=t.options,s=i.time,c=s.unit||function(t,e,n,a){var r,o,i=kn.length;for(r=kn.indexOf(t);r<i-1;++r)if((o=Sn[kn[r]]).common&&Math.ceil((n-e)/((o.steps?o.steps[o.steps.length-1]:Tn)*o.size))<=a)return kn[r];return kn[i-1]}(s.minUnit,e,n,a),l=Dn(c),d=xn(s.stepSize,s.unitStepSize),u="week"===c&&s.isoWeekday,g=i.ticks.major.enabled,f=Sn[c],p=e,m=n,h=[];for(d||(d=function(t,e,n,a){var r,o,i,s=e-t,c=Sn[n],l=c.size,d=c.steps;if(!d)return Math.ceil(s/(a*l));for(r=0,o=d.length;r<o&&(i=d[r],!(Math.ceil(s/(l*i))<=a));++r);return i}(e,n,c,a)),u&&(p=+o.startOf(p,"isoWeek",u),m=+o.startOf(m,"isoWeek",u)),p=+o.startOf(p,u?"day":c),(m=+o.startOf(m,u?"day":c))<n&&(m=+o.add(m,1,c)),r=p,g&&l&&!u&&!s.round&&(r=+o.startOf(r,l),r=+o.add(r,~~((p-r)/(f.size*d))*d,c));r<m;r=+o.add(r,d,c))h.push(+r);return h.push(+r),h}(a,r,o,a.getLabelCapacity(r))}for("ticks"===i.bounds&&c.length&&(r=c[0],o=c[c.length-1]),r=En(a,s.min)||r,o=En(a,s.max)||o,t=0,e=c.length;t<e;++t)(n=c[t])>=r&&n<=o&&l.push(n);return a.min=r,a.max=o,a._unit=s.unit||function(t,e,n,a,r){var o,i;for(o=kn.length-1;o>=kn.indexOf(n);o--)if(Sn[i=kn[o]].common&&t._adapter.diff(r,a,i)>=e.length)return i;return kn[n?kn.indexOf(n):0]}(a,l,s.minUnit,a.min,a.max),a._majorUnit=Dn(a._unit),a._table=function(t,e,n,a){if("linear"===a||!t.length)return[{time:e,pos:0},{time:n,pos:1}];var r,o,i,s,c,l=[],d=[e];for(r=0,o=t.length;r<o;++r)(s=t[r])>e&&s<n&&d.push(s);for(d.push(n),r=0,o=d.length;r<o;++r)c=d[r+1],s=d[r],void 0!==(i=d[r-1])&&void 0!==c&&Math.round((c+i)/2)===s||l.push({time:s,pos:r/(o-1)});return l}(a._timestamps.data,r,o,i.distribution),a._offsets=function(t,e,n,a,r){var o,i,s=0,c=0;return r.offset&&e.length&&(r.time.min||(o=Rn(t,"time",e[0],"pos"),s=1===e.length?1-o:(Rn(t,"time",e[1],"pos")-o)/2),r.time.max||(i=Rn(t,"time",e[e.length-1],"pos"),c=1===e.length?i:(i-Rn(t,"time",e[e.length-2],"pos"))/2)),{start:s,end:c}}(a._table,l,0,0,i),i.ticks.reverse&&l.reverse(),function(t,e,n){var a,r,o,i,s=[];for(a=0,r=e.length;a<r;++a)o=e[a],i=!!n&&o===+t._adapter.startOf(o,n),s.push({value:o,major:i});return s}(a,l,a._majorUnit)},getLabelForIndex:function(t,e){var n=this,a=n._adapter,r=n.chart.data,o=n.options.time,i=r.labels&&t<r.labels.length?r.labels[t]:"",s=r.datasets[e].data[t];return dt.isObject(s)&&(i=n.getRightValue(s)),o.tooltipFormat?a.format(An(n,i),o.tooltipFormat):"string"==typeof i?i:a.format(An(n,i),o.displayFormats.datetime)},tickFormatFunction:function(t,e,n,a){var r=this._adapter,o=this.options,i=o.time.displayFormats,s=i[this._unit],c=this._majorUnit,l=i[c],d=+r.startOf(t,c),u=o.ticks.major,g=u.enabled&&c&&l&&t===d,f=r.format(t,a||(g?l:s)),p=g?u:o.ticks.minor,m=xn(p.callback,p.userCallback);return m?m(f,e,n):f},convertTicksToLabels:function(t){var e,n,a=[];for(e=0,n=t.length;e<n;++e)a.push(this.tickFormatFunction(t[e].value,e,t));return a},getPixelForOffset:function(t){var e=this,n=e.options.ticks.reverse,a=e._horizontal?e.width:e.height,r=e._horizontal?n?e.right:e.left:n?e.bottom:e.top,o=Rn(e._table,"time",t,"pos"),i=a*(e._offsets.start+o)/(e._offsets.start+1+e._offsets.end);return n?r-i:r+i},getPixelForValue:function(t,e,n){var a=null;if(void 0!==e&&void 0!==n&&(a=this._timestamps.datasets[n][e]),null===a&&(a=En(this,t)),null!==a)return this.getPixelForOffset(a)},getPixelForTick:function(t){var e=this.getTicks();return t>=0&&t<e.length?this.getPixelForOffset(e[t].value):null},getValueForPixel:function(t){var e=this,n=e._horizontal?e.width:e.height,a=Rn(e._table,"pos",(n?(t-(e._horizontal?e.left:e.top))/n:0)*(e._offsets.start+1+e._offsets.start)-e._offsets.end,"time");return e._adapter._create(a)},getLabelWidth:function(t){var e=this.options.ticks,n=this.ctx.measureText(t).width,a=dt.toRadians(e.maxRotation),r=Math.cos(a),o=Math.sin(a);return n*r+xn(e.fontSize,st.global.defaultFontSize)*o},getLabelCapacity:function(t){var e=this,n=e.tickFormatFunction(t,0,[],e.options.time.displayFormats.millisecond),a=e.getLabelWidth(n),r=e.isHorizontal()?e.width:e.height,o=Math.floor(r/a);return o>0?o:1}});Ln._defaults={position:"bottom",distribution:"linear",bounds:"data",adapters:{},time:{parser:!1,format:!1,unit:!1,round:!1,displayFormat:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{autoSkip:!1,source:"auto",major:{enabled:!1}}};var qn={category:an,linear:cn,logarithmic:gn,radialLinear:Mn,time:Ln},jn={datetime:"MMM D, YYYY, h:mm:ss a",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"};Ze._date.override("function"==typeof t?{_id:"moment",formats:function(){return jn},parse:function(e,n){return"string"==typeof e&&"string"==typeof n?e=t(e,n):e instanceof t||(e=t(e)),e.isValid()?e.valueOf():null},format:function(e,n){return t(e).format(n)},add:function(e,n,a){return t(e).add(n,a).valueOf()},diff:function(e,n,a){return t.duration(t(e).diff(t(n))).as(a)},startOf:function(e,n,a){return e=t(e),"isoWeek"===n?e.isoWeekday(a).valueOf():e.startOf(n).valueOf()},endOf:function(e,n){return t(e).endOf(n).valueOf()},_create:function(e){return t(e)}}:{}),st._set("global",{plugins:{filler:{propagate:!0}}});var Fn={dataset:function(t){var e=t.fill,n=t.chart,a=n.getDatasetMeta(e),r=a&&n.isDatasetVisible(e)&&a.dataset._children||[],o=r.length||0;return o?function(t,e){return e<o&&r[e]._view||null}:null},boundary:function(t){var e=t.boundary,n=e?e.x:null,a=e?e.y:null;return function(t){return{x:null===n?t.x:n,y:null===a?t.y:a}}}};function zn(t,e,n){var a,r=t._model||{},o=r.fill;if(void 0===o&&(o=!!r.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(a=parseFloat(o,10),isFinite(a)&&Math.floor(a)===a)return"-"!==o[0]&&"+"!==o[0]||(a=e+a),!(a===e||a<0||a>=n)&&a;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function Gn(t){var e,n=t.el._model||{},a=t.el._scale||{},r=t.fill,o=null;if(isFinite(r))return null;if("start"===r?o=void 0===n.scaleBottom?a.bottom:n.scaleBottom:"end"===r?o=void 0===n.scaleTop?a.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:a.getBasePosition?o=a.getBasePosition():a.getBasePixel&&(o=a.getBasePixel()),null!=o){if(void 0!==o.x&&void 0!==o.y)return o;if(dt.isFinite(o))return{x:(e=a.isHorizontal())?o:null,y:e?null:o}}return null}function Bn(t,e,n){var a,r=t[e].fill,o=[e];if(!n)return r;for(;!1!==r&&-1===o.indexOf(r);){if(!isFinite(r))return r;if(!(a=t[r]))return!1;if(a.visible)return r;o.push(r),r=a.fill}return!1}function Vn(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),Fn[n](t))}function Yn(t){return t&&!t.skip}function Hn(t,e,n,a,r){var o;if(a&&r){for(t.moveTo(e[0].x,e[0].y),o=1;o<a;++o)dt.canvas.lineTo(t,e[o-1],e[o]);for(t.lineTo(n[r-1].x,n[r-1].y),o=r-1;o>0;--o)dt.canvas.lineTo(t,n[o],n[o-1],!0)}}var Un={id:"filler",afterDatasetsUpdate:function(t,e){var n,a,r,o,i=(t.data.datasets||[]).length,s=e.propagate,c=[];for(a=0;a<i;++a)o=null,(r=(n=t.getDatasetMeta(a)).dataset)&&r._model&&r instanceof qt.Line&&(o={visible:t.isDatasetVisible(a),fill:zn(r,a,i),chart:t,el:r}),n.$filler=o,c.push(o);for(a=0;a<i;++a)(o=c[a])&&(o.fill=Bn(c,a,s),o.boundary=Gn(o),o.mapper=Vn(o))},beforeDatasetDraw:function(t,e){var n=e.meta.$filler;if(n){var a=t.ctx,r=n.el,o=r._view,i=r._children||[],s=n.mapper,c=o.backgroundColor||st.global.defaultColor;s&&c&&i.length&&(dt.canvas.clipArea(a,t.chartArea),function(t,e,n,a,r,o){var i,s,c,l,d,u,g,f=e.length,p=a.spanGaps,m=[],h=[],b=0,y=0;for(t.beginPath(),i=0,s=f+!!o;i<s;++i)d=n(l=e[c=i%f]._view,c,a),u=Yn(l),g=Yn(d),u&&g?(b=m.push(l),y=h.push(d)):b&&y&&(p?(u&&m.push(l),g&&h.push(d)):(Hn(t,m,h,b,y),b=y=0,m=[],h=[]));Hn(t,m,h,b,y),t.closePath(),t.fillStyle=r,t.fill()}(a,i,s,o,c,r._loop),dt.canvas.unclipArea(a))}}},Wn=dt.noop,Kn=dt.valueOrDefault;function $n(t,e){return t.usePointStyle&&t.boxWidth>e?e:t.boxWidth}st._set("global",{legend:{display:!0,position:"top",fullWidth:!0,reverse:!1,weight:1e3,onClick:function(t,e){var n=e.datasetIndex,a=this.chart,r=a.getDatasetMeta(n);r.hidden=null===r.hidden?!a.data.datasets[n].hidden:null,a.update()},onHover:null,onLeave:null,labels:{boxWidth:40,padding:10,generateLabels:function(t){var e=t.data;return dt.isArray(e.datasets)?e.datasets.map((function(e,n){return{text:e.label,fillStyle:dt.isArray(e.backgroundColor)?e.backgroundColor[0]:e.backgroundColor,hidden:!t.isDatasetVisible(n),lineCap:e.borderCapStyle,lineDash:e.borderDash,lineDashOffset:e.borderDashOffset,lineJoin:e.borderJoinStyle,lineWidth:e.borderWidth,strokeStyle:e.borderColor,pointStyle:e.pointStyle,datasetIndex:n}}),this):[]}}},legendCallback:function(t){var e=[];e.push('<ul class="'+t.id+'-legend">');for(var n=0;n<t.data.datasets.length;n++)e.push('<li><span style="background-color:'+t.data.datasets[n].backgroundColor+'"></span>'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("</li>");return e.push("</ul>"),e.join("")}});var Zn=pt.extend({initialize:function(t){dt.extend(this,t),this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1},beforeUpdate:Wn,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Wn,beforeSetDimensions:Wn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Wn,beforeBuildLabels:Wn,buildLabels:function(){var t=this,e=t.options.labels||{},n=dt.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter((function(n){return e.filter(n,t.chart.data)}))),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:Wn,beforeFit:Wn,fit:function(){var t=this,e=t.options,n=e.labels,a=e.display,r=t.ctx,o=dt.options._parseFont(n),i=o.size,s=t.legendHitBoxes=[],c=t.minSize,l=t.isHorizontal();if(l?(c.width=t.maxWidth,c.height=a?10:0):(c.width=a?10:0,c.height=t.maxHeight),a)if(r.font=o.string,l){var d=t.lineWidths=[0],u=0;r.textAlign="left",r.textBaseline="top",dt.each(t.legendItems,(function(t,e){var a=$n(n,i)+i/2+r.measureText(t.text).width;(0===e||d[d.length-1]+a+n.padding>c.width)&&(u+=i+n.padding,d[d.length-(e>0?0:1)]=n.padding),s[e]={left:0,top:0,width:a,height:i},d[d.length-1]+=a+n.padding})),c.height+=u}else{var g=n.padding,f=t.columnWidths=[],p=n.padding,m=0,h=0,b=i+g;dt.each(t.legendItems,(function(t,e){var a=$n(n,i)+i/2+r.measureText(t.text).width;e>0&&h+b>c.height-g&&(p+=m+n.padding,f.push(m),m=0,h=0),m=Math.max(m,a),h+=b,s[e]={left:0,top:0,width:a,height:i}})),p+=m,f.push(m),c.width+=p}t.width=c.width,t.height=c.height},afterFit:Wn,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,e=t.options,n=e.labels,a=st.global,r=a.defaultColor,o=a.elements.line,i=t.width,s=t.lineWidths;if(e.display){var c,l=t.ctx,d=Kn(n.fontColor,a.defaultFontColor),u=dt.options._parseFont(n),g=u.size;l.textAlign="left",l.textBaseline="middle",l.lineWidth=.5,l.strokeStyle=d,l.fillStyle=d,l.font=u.string;var f=$n(n,g),p=t.legendHitBoxes,m=t.isHorizontal();c=m?{x:t.left+(i-s[0])/2+n.padding,y:t.top+n.padding,line:0}:{x:t.left+n.padding,y:t.top+n.padding,line:0};var h=g+n.padding;dt.each(t.legendItems,(function(a,d){var u=l.measureText(a.text).width,b=f+g/2+u,y=c.x,_=c.y;m?d>0&&y+b+n.padding>t.left+t.minSize.width&&(_=c.y+=h,c.line++,y=c.x=t.left+(i-s[c.line])/2+n.padding):d>0&&_+h>t.top+t.minSize.height&&(y=c.x=y+t.columnWidths[c.line]+n.padding,_=c.y=t.top+n.padding,c.line++),function(t,n,a){if(!(isNaN(f)||f<=0)){l.save();var i=Kn(a.lineWidth,o.borderWidth);if(l.fillStyle=Kn(a.fillStyle,r),l.lineCap=Kn(a.lineCap,o.borderCapStyle),l.lineDashOffset=Kn(a.lineDashOffset,o.borderDashOffset),l.lineJoin=Kn(a.lineJoin,o.borderJoinStyle),l.lineWidth=i,l.strokeStyle=Kn(a.strokeStyle,r),l.setLineDash&&l.setLineDash(Kn(a.lineDash,o.borderDash)),e.labels&&e.labels.usePointStyle){var s=f*Math.SQRT2/2;dt.canvas.drawPoint(l,a.pointStyle,s,t+f/2,n+g/2)}else 0!==i&&l.strokeRect(t,n,f,g),l.fillRect(t,n,f,g);l.restore()}}(y,_,a),p[d].left=y,p[d].top=_,function(t,e,n,a){var r=g/2,o=f+r+t,i=e+r;l.fillText(n.text,o,i),n.hidden&&(l.beginPath(),l.lineWidth=2,l.moveTo(o,i),l.lineTo(o+a,i),l.stroke())}(y,_,a,u),m?c.x+=b+n.padding:c.y+=h}))}},_getLegendItemAt:function(t,e){var n,a,r,o=this;if(t>=o.left&&t<=o.right&&e>=o.top&&e<=o.bottom)for(r=o.legendHitBoxes,n=0;n<r.length;++n)if(t>=(a=r[n]).left&&t<=a.left+a.width&&e>=a.top&&e<=a.top+a.height)return o.legendItems[n];return null},handleEvent:function(t){var e,n=this,a=n.options,r="mouseup"===t.type?"click":t.type;if("mousemove"===r){if(!a.onHover&&!a.onLeave)return}else{if("click"!==r)return;if(!a.onClick)return}e=n._getLegendItemAt(t.x,t.y),"click"===r?e&&a.onClick&&a.onClick.call(n,t.native,e):(a.onLeave&&e!==n._hoveredItem&&(n._hoveredItem&&a.onLeave.call(n,t.native,n._hoveredItem),n._hoveredItem=e),a.onHover&&e&&a.onHover.call(n,t.native,e))}});function Jn(t,e){var n=new Zn({ctx:t.ctx,options:e,chart:t});_e.configure(t,n,e),_e.addBox(t,n),t.legend=n}var Xn={id:"legend",_element:Zn,beforeInit:function(t){var e=t.options.legend;e&&Jn(t,e)},beforeUpdate:function(t){var e=t.options.legend,n=t.legend;e?(dt.mergeIf(e,st.global.legend),n?(_e.configure(t,n,e),n.options=e):Jn(t,e)):n&&(_e.removeBox(t,n),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}},Qn=dt.noop;st._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,padding:10,position:"top",text:"",weight:2e3}});var ta=pt.extend({initialize:function(t){dt.extend(this,t),this.legendHitBoxes=[]},beforeUpdate:Qn,update:function(t,e,n){var a=this;return a.beforeUpdate(),a.maxWidth=t,a.maxHeight=e,a.margins=n,a.beforeSetDimensions(),a.setDimensions(),a.afterSetDimensions(),a.beforeBuildLabels(),a.buildLabels(),a.afterBuildLabels(),a.beforeFit(),a.fit(),a.afterFit(),a.afterUpdate(),a.minSize},afterUpdate:Qn,beforeSetDimensions:Qn,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:Qn,beforeBuildLabels:Qn,buildLabels:Qn,afterBuildLabels:Qn,beforeFit:Qn,fit:function(){var t=this,e=t.options,n=e.display,a=t.minSize,r=dt.isArray(e.text)?e.text.length:1,o=dt.options._parseFont(e),i=n?r*o.lineHeight+2*e.padding:0;t.isHorizontal()?(a.width=t.maxWidth,a.height=i):(a.width=i,a.height=t.maxHeight),t.width=a.width,t.height=a.height},afterFit:Qn,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=t.options;if(n.display){var a,r,o,i=dt.options._parseFont(n),s=i.lineHeight,c=s/2+n.padding,l=0,d=t.top,u=t.left,g=t.bottom,f=t.right;e.fillStyle=dt.valueOrDefault(n.fontColor,st.global.defaultFontColor),e.font=i.string,t.isHorizontal()?(r=u+(f-u)/2,o=d+c,a=f-u):(r="left"===n.position?u+c:f-c,o=d+(g-d)/2,a=g-d,l=Math.PI*("left"===n.position?-.5:.5)),e.save(),e.translate(r,o),e.rotate(l),e.textAlign="center",e.textBaseline="middle";var p=n.text;if(dt.isArray(p))for(var m=0,h=0;h<p.length;++h)e.fillText(p[h],0,m,a),m+=s;else e.fillText(p,0,0,a);e.restore()}}});function ea(t,e){var n=new ta({ctx:t.ctx,options:e,chart:t});_e.configure(t,n,e),_e.addBox(t,n),t.titleBlock=n}var na={},aa=Un,ra=Xn,oa={id:"title",_element:ta,beforeInit:function(t){var e=t.options.title;e&&ea(t,e)},beforeUpdate:function(t){var e=t.options.title,n=t.titleBlock;e?(dt.mergeIf(e,st.global.title),n?(_e.configure(t,n,e),n.options=e):ea(t,e)):n&&(_e.removeBox(t,n),delete t.titleBlock)}};for(var ia in na.filler=aa,na.legend=ra,na.title=oa,We.helpers=dt,function(){function t(t,e,n){var a;return"string"==typeof t?(a=parseInt(t,10),-1!==t.indexOf("%")&&(a=a/100*e.parentNode[n])):a=t,a}function e(t){return null!=t&&"none"!==t}function n(n,a,r){var o=document.defaultView,i=dt._getParentNode(n),s=o.getComputedStyle(n)[a],c=o.getComputedStyle(i)[a],l=e(s),d=e(c),u=Number.POSITIVE_INFINITY;return l||d?Math.min(l?t(s,n,r):u,d?t(c,i,r):u):"none"}dt.where=function(t,e){if(dt.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return dt.each(t,(function(t){e(t)&&n.push(t)})),n},dt.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var a=0,r=t.length;a<r;++a)if(e.call(n,t[a],a,t))return a;return-1},dt.findNextWhere=function(t,e,n){dt.isNullOrUndef(n)&&(n=-1);for(var a=n+1;a<t.length;a++){var r=t[a];if(e(r))return r}},dt.findPreviousWhere=function(t,e,n){dt.isNullOrUndef(n)&&(n=t.length);for(var a=n-1;a>=0;a--){var r=t[a];if(e(r))return r}},dt.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},dt.almostEquals=function(t,e,n){return Math.abs(t-e)<n},dt.almostWhole=function(t,e){var n=Math.round(t);return n-e<t&&n+e>t},dt.max=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.max(t,e)}),Number.NEGATIVE_INFINITY)},dt.min=function(t){return t.reduce((function(t,e){return isNaN(e)?t:Math.min(t,e)}),Number.POSITIVE_INFINITY)},dt.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},dt.log10=Math.log10?function(t){return Math.log10(t)}:function(t){var e=Math.log(t)*Math.LOG10E,n=Math.round(e);return t===Math.pow(10,n)?n:e},dt.toRadians=function(t){return t*(Math.PI/180)},dt.toDegrees=function(t){return t*(180/Math.PI)},dt._decimalPlaces=function(t){if(dt.isFinite(t)){for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}},dt.getAngleFromPoint=function(t,e){var n=e.x-t.x,a=e.y-t.y,r=Math.sqrt(n*n+a*a),o=Math.atan2(a,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:r}},dt.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},dt.aliasPixel=function(t){return t%2==0?0:.5},dt._alignPixel=function(t,e,n){var a=t.currentDevicePixelRatio,r=n/2;return Math.round((e-r)*a)/a+r},dt.splineCurve=function(t,e,n,a){var r=t.skip?e:t,o=e,i=n.skip?e:n,s=Math.sqrt(Math.pow(o.x-r.x,2)+Math.pow(o.y-r.y,2)),c=Math.sqrt(Math.pow(i.x-o.x,2)+Math.pow(i.y-o.y,2)),l=s/(s+c),d=c/(s+c),u=a*(l=isNaN(l)?0:l),g=a*(d=isNaN(d)?0:d);return{previous:{x:o.x-u*(i.x-r.x),y:o.y-u*(i.y-r.y)},next:{x:o.x+g*(i.x-r.x),y:o.y+g*(i.y-r.y)}}},dt.EPSILON=Number.EPSILON||1e-14,dt.splineCurveMonotone=function(t){var e,n,a,r,o,i,s,c,l,d=(t||[]).map((function(t){return{model:t._model,deltaK:0,mK:0}})),u=d.length;for(e=0;e<u;++e)if(!(a=d[e]).model.skip){if(n=e>0?d[e-1]:null,(r=e<u-1?d[e+1]:null)&&!r.model.skip){var g=r.model.x-a.model.x;a.deltaK=0!==g?(r.model.y-a.model.y)/g:0}a.mK=!n||n.model.skip?a.deltaK:!r||r.model.skip?n.deltaK:this.sign(n.deltaK)!==this.sign(a.deltaK)?0:(n.deltaK+a.deltaK)/2}for(e=0;e<u-1;++e)r=d[e+1],(a=d[e]).model.skip||r.model.skip||(dt.almostEquals(a.deltaK,0,this.EPSILON)?a.mK=r.mK=0:(o=a.mK/a.deltaK,i=r.mK/a.deltaK,(c=Math.pow(o,2)+Math.pow(i,2))<=9||(s=3/Math.sqrt(c),a.mK=o*s*a.deltaK,r.mK=i*s*a.deltaK)));for(e=0;e<u;++e)(a=d[e]).model.skip||(r=e<u-1?d[e+1]:null,(n=e>0?d[e-1]:null)&&!n.model.skip&&(a.model.controlPointPreviousX=a.model.x-(l=(a.model.x-n.model.x)/3),a.model.controlPointPreviousY=a.model.y-l*a.mK),r&&!r.model.skip&&(a.model.controlPointNextX=a.model.x+(l=(r.model.x-a.model.x)/3),a.model.controlPointNextY=a.model.y+l*a.mK))},dt.nextItem=function(t,e,n){return n?e>=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},dt.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},dt.niceNum=function(t,e){var n=Math.floor(dt.log10(t)),a=t/Math.pow(10,n);return(e?a<1.5?1:a<3?2:a<7?5:10:a<=1?1:a<=2?2:a<=5?5:10)*Math.pow(10,n)},dt.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},dt.getRelativePosition=function(t,e){var n,a,r=t.originalEvent||t,o=t.target||t.srcElement,i=o.getBoundingClientRect(),s=r.touches;s&&s.length>0?(n=s[0].clientX,a=s[0].clientY):(n=r.clientX,a=r.clientY);var c=parseFloat(dt.getStyle(o,"padding-left")),l=parseFloat(dt.getStyle(o,"padding-top")),d=parseFloat(dt.getStyle(o,"padding-right")),u=parseFloat(dt.getStyle(o,"padding-bottom")),g=i.bottom-i.top-l-u;return{x:n=Math.round((n-i.left-c)/(i.right-i.left-c-d)*o.width/e.currentDevicePixelRatio),y:a=Math.round((a-i.top-l)/g*o.height/e.currentDevicePixelRatio)}},dt.getConstraintWidth=function(t){return n(t,"max-width","clientWidth")},dt.getConstraintHeight=function(t){return n(t,"max-height","clientHeight")},dt._calculatePadding=function(t,e,n){return(e=dt.getStyle(t,e)).indexOf("%")>-1?n*parseInt(e,10)/100:parseInt(e,10)},dt._getParentNode=function(t){var e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e},dt.getMaximumWidth=function(t){var e=dt._getParentNode(t);if(!e)return t.clientWidth;var n=e.clientWidth,a=n-dt._calculatePadding(e,"padding-left",n)-dt._calculatePadding(e,"padding-right",n),r=dt.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},dt.getMaximumHeight=function(t){var e=dt._getParentNode(t);if(!e)return t.clientHeight;var n=e.clientHeight,a=n-dt._calculatePadding(e,"padding-top",n)-dt._calculatePadding(e,"padding-bottom",n),r=dt.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},dt.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},dt.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||"undefined"!=typeof window&&window.devicePixelRatio||1;if(1!==n){var a=t.canvas,r=t.height,o=t.width;a.height=r*n,a.width=o*n,t.ctx.scale(n,n),a.style.height||a.style.width||(a.style.height=r+"px",a.style.width=o+"px")}},dt.fontString=function(t,e,n){return e+" "+t+"px "+n},dt.longestText=function(t,e,n,a){var r=(a=a||{}).data=a.data||{},o=a.garbageCollect=a.garbageCollect||[];a.font!==e&&(r=a.data={},o=a.garbageCollect=[],a.font=e),t.font=e;var i=0;dt.each(n,(function(e){null!=e&&!0!==dt.isArray(e)?i=dt.measureText(t,r,o,i,e):dt.isArray(e)&&dt.each(e,(function(e){null==e||dt.isArray(e)||(i=dt.measureText(t,r,o,i,e))}))}));var s=o.length/2;if(s>n.length){for(var c=0;c<s;c++)delete r[o[c]];o.splice(0,s)}return i},dt.measureText=function(t,e,n,a,r){var o=e[r];return o||(o=e[r]=t.measureText(r).width,n.push(r)),o>a&&(a=o),a},dt.numberOfLabelLines=function(t){var e=1;return dt.each(t,(function(t){dt.isArray(t)&&t.length>e&&(e=t.length)})),e},dt.color=W?function(t){return t instanceof CanvasGradient&&(t=st.global.defaultColor),W(t)}:function(t){return console.error("Color.js not found!"),t},dt.getHoverColor=function(t){return t instanceof CanvasPattern||t instanceof CanvasGradient?t:dt.color(t).saturate(.5).darken(.1).rgbString()}}(),We._adapters=Ze,We.Animation=ht,We.animationService=bt,We.controllers=se,We.DatasetController=Ct,We.defaults=st,We.Element=pt,We.elements=qt,We.Interaction=pe,We.layouts=_e,We.platform=Ie,We.plugins=Ne,We.Scale=nn,We.scaleService=Re,We.Ticks=Je,We.Tooltip=ze,We.helpers.each(qn,(function(t,e){We.scaleService.registerScaleType(e,t,t._defaults)})),na)na.hasOwnProperty(ia)&&We.plugins.register(na[ia]);We.platform.initialize();var sa=We;return"undefined"!=typeof window&&(window.Chart=We),We.Chart=We,We.Legend=na.legend._element,We.Title=na.title._element,We.pluginService=We.plugins,We.PluginBase=We.Element.extend({}),We.canvasHelpers=We.helpers.canvas,We.layoutService=We.layouts,We.LinearScaleBase=on,We.helpers.each(["Bar","Bubble","Doughnut","Line","PolarArea","Radar","Scatter"],(function(t){We[t]=function(e,n){return new We(e,We.helpers.merge(n||{},{type:t.charAt(0).toLowerCase()+t.slice(1)}))}})),sa}(function(){try{return n("wd/R")}catch(t){}}())},MP8s:function(t,e,n){"use strict";n.d(e,"a",(function(){return C}));var a=n("8Y7J"),r=n("2vnA"),o=n("f95s"),i=n("mfoh"),s=n("X+05"),c=n("afOK"),l=n.n(c),d=n("RBan"),u=n.n(d),g=n("wig9"),f=n.n(g),p=n("J2m7"),m=n.n(p),h=n("4qC0"),b=n.n(h),y=n("lSCD"),_=n.n(y),O=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},v=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},C=function(){function t(){this.options=new i.b,this.eventNames=Object.keys(s.a),this.expandedNodeIds={},this.selectedLeafNodeIds={},this.activeNodeIds={},this.hiddenNodeIds={},this.focusedNodeId=null,this.firstUpdate=!0,this.subscriptions=[]}var e;return e=t,t.prototype.fireEvent=function(t){t.treeModel=this,this.events[t.eventName].emit(t),this.events.event.emit(t)},t.prototype.subscribe=function(t,e){var n=this.events[t].subscribe(e);this.subscriptions.push(n)},t.prototype.getFocusedNode=function(){return this.focusedNode},t.prototype.getActiveNode=function(){return this.activeNodes[0]},t.prototype.getActiveNodes=function(){return this.activeNodes},t.prototype.getVisibleRoots=function(){return this.virtualRoot.visibleChildren},t.prototype.getFirstRoot=function(t){return void 0===t&&(t=!1),l()(t?this.getVisibleRoots():this.roots)},t.prototype.getLastRoot=function(t){return void 0===t&&(t=!1),u()(t?this.getVisibleRoots():this.roots)},Object.defineProperty(t.prototype,"isFocused",{get:function(){return e.focusedTree===this},enumerable:!0,configurable:!0}),t.prototype.isNodeFocused=function(t){return this.focusedNode===t},t.prototype.isEmptyTree=function(){return this.roots&&0===this.roots.length},Object.defineProperty(t.prototype,"focusedNode",{get:function(){return this.focusedNodeId?this.getNodeById(this.focusedNodeId):null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expandedNodes",{get:function(){var t=this,e=Object.keys(this.expandedNodeIds).filter((function(e){return t.expandedNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return f()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"activeNodes",{get:function(){var t=this,e=Object.keys(this.activeNodeIds).filter((function(e){return t.activeNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return f()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hiddenNodes",{get:function(){var t=this,e=Object.keys(this.hiddenNodeIds).filter((function(e){return t.hiddenNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return f()(e)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectedLeafNodes",{get:function(){var t=this,e=Object.keys(this.selectedLeafNodeIds).filter((function(e){return t.selectedLeafNodeIds[e]})).map((function(e){return t.getNodeById(e)}));return f()(e)},enumerable:!0,configurable:!0}),t.prototype.getNodeByPath=function(t,e){if(void 0===e&&(e=null),!t)return null;if(e=e||this.virtualRoot,0===t.length)return e;if(!e.children)return null;var n=t.shift(),a=m()(e.children,{id:n});return a?this.getNodeByPath(t,a):null},t.prototype.getNodeById=function(t){var e=t.toString();return this.getNodeBy((function(t){return t.id.toString()===e}))},t.prototype.getNodeBy=function(t,e){if(void 0===e&&(e=null),!(e=e||this.virtualRoot).children)return null;var n=m()(e.children,t);if(n)return n;for(var a=0,r=e.children;a<r.length;a++){var o=this.getNodeBy(t,r[a]);if(o)return o}},t.prototype.isExpanded=function(t){return this.expandedNodeIds[t.id]},t.prototype.isHidden=function(t){return this.hiddenNodeIds[t.id]},t.prototype.isActive=function(t){return this.activeNodeIds[t.id]},t.prototype.isSelected=function(t){return this.selectedLeafNodeIds[t.id]},t.prototype.ngOnDestroy=function(){this.dispose(),this.unsubscribeAll()},t.prototype.dispose=function(){this.virtualRoot&&this.virtualRoot.dispose()},t.prototype.unsubscribeAll=function(){this.subscriptions.forEach((function(t){return t.unsubscribe()})),this.subscriptions=[]},t.prototype.setData=function(t){var e=t.nodes,n=t.options,a=void 0===n?null:n,r=t.events,o=void 0===r?null:r;a&&(this.options=new i.b(a)),o&&(this.events=o),e&&(this.nodes=e),this.update()},t.prototype.update=function(){var t,e=((t={id:this.options.rootId,virtual:!0})[this.options.childrenField]=this.nodes,t);this.dispose(),this.virtualRoot=new o.a(e,null,this,0),this.roots=this.virtualRoot.children,this.firstUpdate?this.roots&&(this.firstUpdate=!1,this._calculateExpandedNodes()):this.fireEvent({eventName:s.a.updateData})},t.prototype.setFocusedNode=function(t){this.focusedNodeId=t?t.id:null},t.prototype.setFocus=function(t){e.focusedTree=t?this:null},t.prototype.doForAll=function(t){this.roots.forEach((function(e){return e.doForAll(t)}))},t.prototype.focusNextNode=function(){var t=this.getFocusedNode(),e=t?t.findNextNode(!0,!0):this.getFirstRoot(!0);e&&e.focus()},t.prototype.focusPreviousNode=function(){var t=this.getFocusedNode(),e=t?t.findPreviousNode(!0):this.getLastRoot(!0);e&&e.focus()},t.prototype.focusDrillDown=function(){var t=this.getFocusedNode();if(t&&t.isCollapsed&&t.hasChildren)t.toggleExpanded();else{var e=t?t.getFirstChild(!0):this.getFirstRoot(!0);e&&e.focus()}},t.prototype.focusDrillUp=function(){var t=this.getFocusedNode();if(t)if(t.isExpanded)t.toggleExpanded();else{var e=t.realParent;e&&e.focus()}},t.prototype.setActiveNode=function(t,e,n){void 0===n&&(n=!1),n?this._setActiveNodeMulti(t,e):this._setActiveNodeSingle(t,e),e?(t.focus(this.options.scrollOnActivate),this.fireEvent({eventName:s.a.activate,node:t}),this.fireEvent({eventName:s.a.nodeActivate,node:t})):(this.fireEvent({eventName:s.a.deactivate,node:t}),this.fireEvent({eventName:s.a.nodeDeactivate,node:t}))},t.prototype.setSelectedNode=function(t,e){var n;this.selectedLeafNodeIds=Object.assign({},this.selectedLeafNodeIds,((n={})[t.id]=e,n)),e?(t.focus(),this.fireEvent({eventName:s.a.select,node:t})):this.fireEvent({eventName:s.a.deselect,node:t})},t.prototype.setExpandedNode=function(t,e){var n;this.expandedNodeIds=Object.assign({},this.expandedNodeIds,((n={})[t.id]=e,n)),this.fireEvent({eventName:s.a.toggleExpanded,node:t,isExpanded:e})},t.prototype.expandAll=function(){this.roots.forEach((function(t){return t.expandAll()}))},t.prototype.collapseAll=function(){this.roots.forEach((function(t){return t.collapseAll()}))},t.prototype.setIsHidden=function(t,e){var n;this.hiddenNodeIds=Object.assign({},this.hiddenNodeIds,((n={})[t.id]=e,n))},t.prototype.setHiddenNodeIds=function(t){this.hiddenNodeIds=t.reduce((function(t,e){var n;return Object.assign(t,((n={})[e]=!0,n))}),{})},t.prototype.performKeyAction=function(t,e){var n=this.options.actionMapping.keys[e.keyCode];return!!n&&(e.preventDefault(),n(this,t,e),!0)},t.prototype.filterNodes=function(t,e){var n,a=this;if(void 0===e&&(e=!0),!t)return this.clearFilter();if(b()(t))n=function(e){return-1!==e.displayField.toLowerCase().indexOf(t.toLowerCase())};else{if(!_()(t))return console.error("Don't know what to do with filter",t),void console.error("Should be either a string or function");n=t}var r={};this.roots.forEach((function(t){return a._filterNode(r,t,n,e)})),this.hiddenNodeIds=r,this.fireEvent({eventName:s.a.changeFilter})},t.prototype.clearFilter=function(){this.hiddenNodeIds={},this.fireEvent({eventName:s.a.changeFilter})},t.prototype.moveNode=function(t,e){var n=t.getIndexInParent(),a=t.parent;if(this.canMoveNode(t,e,n)){var r=a.getField("children");e.parent.getField("children")||e.parent.setField("children",[]);var o=e.parent.getField("children"),i=r.splice(n,1)[0],c=a===e.parent&&e.index>n?e.index-1:e.index;o.splice(c,0,i),a.treeModel.update(),e.parent.treeModel!==a.treeModel&&e.parent.treeModel.update(),this.fireEvent({eventName:s.a.moveNode,node:i,to:{parent:e.parent.data,index:c},from:{parent:a.data,index:n}})}},t.prototype.copyNode=function(t,e){var n=t.getIndexInParent();if(this.canMoveNode(t,e,n)){e.parent.getField("children")||e.parent.setField("children",[]);var a=e.parent.getField("children"),r=this.options.getNodeClone(t);a.splice(e.index,0,r),t.treeModel.update(),e.parent.treeModel!==t.treeModel&&e.parent.treeModel.update(),this.fireEvent({eventName:s.a.copyNode,node:r,to:{parent:e.parent.data,index:e.index}})}},t.prototype.getState=function(){return{expandedNodeIds:this.expandedNodeIds,selectedLeafNodeIds:this.selectedLeafNodeIds,activeNodeIds:this.activeNodeIds,hiddenNodeIds:this.hiddenNodeIds,focusedNodeId:this.focusedNodeId}},t.prototype.setState=function(t){t&&Object.assign(this,{expandedNodeIds:t.expandedNodeIds||{},selectedLeafNodeIds:t.selectedLeafNodeIds||{},activeNodeIds:t.activeNodeIds||{},hiddenNodeIds:t.hiddenNodeIds||{},focusedNodeId:t.focusedNodeId})},t.prototype.subscribeToState=function(t){var e=this;Object(r.b)((function(){return t(e.getState())}))},t.prototype.canMoveNode=function(t,e,n){return void 0===n&&(n=void 0),n||t.getIndexInParent(),(t.parent!==e.parent||n!==e.index)&&!e.parent.isDescendantOf(t)},t.prototype.calculateExpandedNodes=function(){this._calculateExpandedNodes()},t.prototype._filterNode=function(t,e,n,a){var r=this,o=n(e);return e.children&&e.children.forEach((function(e){r._filterNode(t,e,n,a)&&(o=!0)})),o||(t[e.id]=!0),a&&o&&e.ensureVisible(),o},t.prototype._calculateExpandedNodes=function(t){var e,n=this;void 0===t&&(t=null),(t=t||this.virtualRoot).data[this.options.isExpandedField]&&(this.expandedNodeIds=Object.assign({},this.expandedNodeIds,((e={})[t.id]=!0,e))),t.children&&t.children.forEach((function(t){return n._calculateExpandedNodes(t)}))},t.prototype._setActiveNodeSingle=function(t,e){var n,a=this;this.activeNodes.filter((function(e){return e!==t})).forEach((function(t){a.fireEvent({eventName:s.a.deactivate,node:t}),a.fireEvent({eventName:s.a.nodeDeactivate,node:t})})),this.activeNodeIds=e?((n={})[t.id]=!0,n):{}},t.prototype._setActiveNodeMulti=function(t,e){var n;this.activeNodeIds=Object.assign({},this.activeNodeIds,((n={})[t.id]=e,n))},t.focusedTree=null,O([r.d,v("design:type",Array)],t.prototype,"roots",void 0),O([r.d,v("design:type",Object)],t.prototype,"expandedNodeIds",void 0),O([r.d,v("design:type",Object)],t.prototype,"selectedLeafNodeIds",void 0),O([r.d,v("design:type",Object)],t.prototype,"activeNodeIds",void 0),O([r.d,v("design:type",Object)],t.prototype,"hiddenNodeIds",void 0),O([r.d,v("design:type",Object)],t.prototype,"focusedNodeId",void 0),O([r.d,v("design:type",o.a)],t.prototype,"virtualRoot",void 0),O([r.c,v("design:type",Object),v("design:paramtypes",[])],t.prototype,"focusedNode",null),O([r.c,v("design:type",Object),v("design:paramtypes",[])],t.prototype,"expandedNodes",null),O([r.c,v("design:type",Object),v("design:paramtypes",[])],t.prototype,"activeNodes",null),O([r.c,v("design:type",Object),v("design:paramtypes",[])],t.prototype,"hiddenNodes",null),O([r.c,v("design:type",Object),v("design:paramtypes",[])],t.prototype,"selectedLeafNodes",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"setData",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"update",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"setFocusedNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"setFocus",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"doForAll",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"focusNextNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"focusPreviousNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"focusDrillDown",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"focusDrillUp",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object,Object]),v("design:returntype",void 0)],t.prototype,"setActiveNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"setSelectedNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"setExpandedNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"expandAll",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"collapseAll",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"setIsHidden",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"setHiddenNodeIds",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"filterNodes",null),O([r.a,v("design:type",Function),v("design:paramtypes",[]),v("design:returntype",void 0)],t.prototype,"clearFilter",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"moveNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object,Object]),v("design:returntype",void 0)],t.prototype,"copyNode",null),O([r.a,v("design:type",Function),v("design:paramtypes",[Object]),v("design:returntype",void 0)],t.prototype,"setState",null),e=O([Object(a.Injectable)()],t)}()},MdoF:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"c",(function(){return l})),n.d(e,"a",(function(){return u}));var a=n("8Y7J"),r=n("CNMR"),o=n("SVse"),i=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"button",[["aria-label","Close"],["class","close"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.close()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["×"])),(t()(),a["ɵeld"](3,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Close"]))],null,null)}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"div",[["role","alert"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,s)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"alert alert-"+n.type,n.classes),t(e,4,0,n.dismissible)}),null)}function l(t){return a["ɵvid"](2,[(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.isOpen)}),null)}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"alert",[],null,null,null,l,i)),a["ɵdid"](1,114688,null,0,r.a,[r.b,a.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}var u=a["ɵccf"]("alert,bs-alert",r.a,d,{type:"type",dismissible:"dismissible",dismissOnTimeout:"dismissOnTimeout",isOpen:"isOpen"},{onClose:"onClose",onClosed:"onClosed"},["*"])},Mfce:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J");n("czA5"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new o.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([o.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([o.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([o.Component({selector:"datatable-row-wrapper",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n    <div \n      *ngIf="groupHeader && groupHeader.template"\n      class="datatable-group-header"\n      [ngStyle]="getGroupHeaderStyle()">\n      <ng-template\n        *ngIf="groupHeader && groupHeader.template"\n        [ngTemplateOutlet]="groupHeader.template"\n        [ngTemplateOutletContext]="groupContext">\n      </ng-template>\n    </div>\n    <ng-content \n      *ngIf="(groupHeader && groupHeader.template && expanded) || \n             (!groupHeader || !groupHeader.template)">\n    </ng-content>\n    <div\n      *ngIf="rowDetail && rowDetail.template && expanded"\n      [style.height.px]="detailRowHeight"\n      class="datatable-row-detail">\n      <ng-template\n        *ngIf="rowDetail && rowDetail.template"\n        [ngTemplateOutlet]="rowDetail.template"\n        [ngTemplateOutletContext]="rowContext">\n      </ng-template>\n    </div>\n  ',host:{class:"datatable-row-wrapper"}})],t)}()},MgB7:function(t,e,n){"use strict";function a(t,e,n){var a,r,o;n=n||{};var i=null,s=0;function c(){s=!1===n.leading?0:+new Date,i=null,o=t.apply(a,r)}return function(){var l=+new Date;s||!1!==n.leading||(s=l);var d=e-(l-s);return a=this,r=arguments,d<=0?(clearTimeout(i),i=null,s=l,o=t.apply(a,r)):i||!1===n.trailing||(i=setTimeout(c,d)),o}}Object.defineProperty(e,"__esModule",{value:!0}),e.throttle=a,e.throttleable=function(t,e){return function(n,r,o){return{configurable:!0,enumerable:o.enumerable,get:function(){return Object.defineProperty(this,r,{configurable:!0,enumerable:o.enumerable,value:a(o.value,t,e)}),this[r]}}}}},MrPd:function(t,e,n){var a=n("hypo"),r=n("ljhN"),o=Object.prototype.hasOwnProperty;t.exports=function(t,e,n){var i=t[e];o.call(t,e)&&r(i,n)&&(void 0!==n||e in t)||a(t,e,n)}},MuvH:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=n("IheW"),o=n("pL04");let i=(()=>{class t{constructor(t){this.http=t}findValue(t,e){if(t.value)return t.value.find(t=>t.section===e)}getValue(t,e){let n=this.findValue(t,e);if(!n){const a=e.indexOf(".");-1!==a&&(n=this.findValue(t,e.substring(0,a)))}return n||(n=this.findValue(t,"global")),n?n.value:t.default}getConfigData(){return this.http.get("api/cluster_conf/")}get(t){return this.http.get(`api/cluster_conf/${t}`)}filter(t){return this.http.get(`api/cluster_conf/filter?names=${t.join(",")}`)}create(t){return this.http.post("api/cluster_conf/",t)}delete(t,e){return this.http.delete(`api/cluster_conf/${t}?section=${e}`)}bulkCreate(t){return this.http.put("api/cluster_conf/",t)}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.c))},token:t,providedIn:o.a}),t})()},MvSz:function(t,e,n){var a=n("LXxW"),r=n("0ycA"),o=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols;t.exports=i?function(t){return null==t?[]:(t=Object(t),a(i(t),(function(e){return o.call(t,e)})))}:r},Mxhz:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("IheW"),r=n("8Y7J"),o=n("pL04");let i=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("api/user")}delete(t){return this.http.delete(`api/user/${t}`)}get(t){return this.http.get(`api/user/${t}`)}create(t){return this.http.post("api/user",t)}update(t){return this.http.put(`api/user/${t.username}`,t)}changePassword(t,e,n){return this.http.post(`api/user/${t}/change_password`,{old_password:e,new_password:n})}validatePassword(t,e=null,n=null){let r=new a.h;return r=r.append("password",t),e&&(r=r.append("username",e)),n&&(r=r.append("old_password",n)),this.http.post("api/user/validate_password",null,{params:r})}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t(r["ɵɵinject"](a.c))},token:t,providedIn:o.a}),t})()},"N+g0":function(t,e,n){var a=n("g6v/"),r=n("m/L8"),o=n("glrk"),i=n("33Wh");t.exports=a?Object.defineProperties:function(t,e){o(t);for(var n,a=i(e),s=a.length,c=0;s>c;)r.f(t,n=a[c++],e[n]);return t}},"NC/Y":function(t,e,n){var a=n("0GbY");t.exports=a("navigator","userAgent")||""},NEZu:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n,a){this.customColors={backgroundColor:void 0,borderColor:void 0},this.checkOffset=!1,this.chartEl=t.nativeElement,this.getStyleLeft=n,this.getStyleTop=a,this.tooltipEl=e.nativeElement}customTooltips(t){if(0===t.opacity)return void(this.tooltipEl.style.opacity=0);if(this.tooltipEl.classList.remove("above","below","no-transform"),this.tooltipEl.classList.add(t.yAlign?t.yAlign:"no-transform"),t.body){const e=t.title||[],n=t.body.map(t=>t.lines);let a="<thead>";e.forEach(t=>{a+="<tr><th>"+this.getTitle(t)+"</th></tr>"}),a+="</thead><tbody>",n.forEach((e,n)=>{const r=t.labelColors[n];let o="background:"+(this.customColors.backgroundColor||r.backgroundColor);o+="; border-color:"+(this.customColors.borderColor||r.borderColor),o+="; border-width: 2px",a+='<tr><td nowrap><span class="chartjs-tooltip-key" style="'+o+'"></span>'+this.getBody(e)+"</td></tr>"}),a+="</tbody>",this.tooltipEl.querySelector("table").innerHTML=a}const e=this.chartEl.offsetTop,n=this.chartEl.offsetLeft;if(this.checkOffset){const e=t.width/2;this.tooltipEl.classList.remove("transform-left"),this.tooltipEl.classList.remove("transform-right"),t.caretX-e<0?this.tooltipEl.classList.add("transform-left"):t.caretX+e>this.chartEl.width&&this.tooltipEl.classList.add("transform-right")}this.tooltipEl.style.left=this.getStyleLeft(t,n),this.tooltipEl.style.top=this.getStyleTop(t,e),this.tooltipEl.style.opacity=1,this.tooltipEl.style.fontFamily=t._fontFamily,this.tooltipEl.style.fontSize=t.fontSize,this.tooltipEl.style.fontStyle=t._fontStyle,this.tooltipEl.style.padding=t.yPadding+"px "+t.xPadding+"px"}getBody(t){return t}getTitle(t){return t}}},"NHP+":function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("XNiG"),r=n("quSY");class o extends a.a{constructor(){super(...arguments),this.value=null,this.hasNext=!1,this.hasCompleted=!1}_subscribe(t){return this.hasError?(t.error(this.thrownError),r.a.EMPTY):this.hasCompleted&&this.hasNext?(t.next(this.value),t.complete(),r.a.EMPTY):super._subscribe(t)}next(t){this.hasCompleted||(this.value=t,this.hasNext=!0)}error(t){this.hasCompleted||super.error(t)}complete(){this.hasCompleted=!0,this.hasNext&&super.next(this.value),super.complete()}}},NJ4a:function(t,e,n){"use strict";function a(t){setTimeout(()=>{throw t},0)}n.d(e,"a",(function(){return a}))},NJ9Y:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("sVev"),r=n("pLZG"),o=n("BFxc"),i=n("XDbj"),s=n("xbPD"),c=n("SpAZ");function l(t,e){const n=arguments.length>=2;return l=>l.pipe(t?Object(r.a)((e,n)=>t(e,n,l)):c.a,Object(o.a)(1),n?Object(s.a)(e):Object(i.a)(()=>new a.a))}},NKxu:function(t,e,n){var a=n("lSCD"),r=n("E2jh"),o=n("GoyQ"),i=n("3Fdi"),s=/^\[object .+?Constructor\]$/,c=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(t){return!(!o(t)||r(t))&&(a(t)?c:s).test(i(t))}},NUGo:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("iInd"),i=n("FE24"),s=n("z/SZ");n("S7zO"),n.d(e,"a",(function(){return c})),n.d(e,"b",(function(){return m}));var c=a["ɵcrt"]({encapsulation:0,styles:[["html[_ngcontent-%COMP%]{box-sizing:border-box;-ms-overflow-style:scrollbar}*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{box-sizing:inherit}.container[_ngcontent-%COMP%]{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container[_ngcontent-%COMP%]{max-width:540px}}@media (min-width:768px){.container[_ngcontent-%COMP%]{max-width:720px}}@media (min-width:992px){.container[_ngcontent-%COMP%]{max-width:960px}}@media (min-width:1200px){.container[_ngcontent-%COMP%]{max-width:1140px}}.container-fluid[_ngcontent-%COMP%]{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.no-gutters[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .no-gutters[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:0;padding-left:0}.col[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-auto[_ngcontent-%COMP%], .col-lg[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-lg-auto[_ngcontent-%COMP%], .col-md[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-md-auto[_ngcontent-%COMP%], .col-sm[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], .col-sm-auto[_ngcontent-%COMP%], .col-xl[_ngcontent-%COMP%], .col-xl-1[_ngcontent-%COMP%], .col-xl-10[_ngcontent-%COMP%], .col-xl-11[_ngcontent-%COMP%], .col-xl-12[_ngcontent-%COMP%], .col-xl-2[_ngcontent-%COMP%], .col-xl-3[_ngcontent-%COMP%], .col-xl-4[_ngcontent-%COMP%], .col-xl-5[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%], .col-xl-7[_ngcontent-%COMP%], .col-xl-8[_ngcontent-%COMP%], .col-xl-9[_ngcontent-%COMP%], .col-xl-auto[_ngcontent-%COMP%]{position:relative;width:100%;padding-right:15px;padding-left:15px}.col[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-first[_ngcontent-%COMP%]{order:-1}.order-last[_ngcontent-%COMP%]{order:13}.order-0[_ngcontent-%COMP%]{order:0}.order-1[_ngcontent-%COMP%]{order:1}.order-2[_ngcontent-%COMP%]{order:2}.order-3[_ngcontent-%COMP%]{order:3}.order-4[_ngcontent-%COMP%]{order:4}.order-5[_ngcontent-%COMP%]{order:5}.order-6[_ngcontent-%COMP%]{order:6}.order-7[_ngcontent-%COMP%]{order:7}.order-8[_ngcontent-%COMP%]{order:8}.order-9[_ngcontent-%COMP%]{order:9}.order-10[_ngcontent-%COMP%]{order:10}.order-11[_ngcontent-%COMP%]{order:11}.order-12[_ngcontent-%COMP%]{order:12}.offset-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-3[_ngcontent-%COMP%]{margin-left:25%}.offset-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-6[_ngcontent-%COMP%]{margin-left:50%}.offset-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-9[_ngcontent-%COMP%]{margin-left:75%}.offset-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}.d-none[_ngcontent-%COMP%]{display:none!important}.d-inline[_ngcontent-%COMP%]{display:inline!important}.d-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-block[_ngcontent-%COMP%]{display:block!important}.d-table[_ngcontent-%COMP%]{display:table!important}.d-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.d-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}@media (min-width:576px){.col-sm[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-sm-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-sm-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-sm-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-sm-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-sm-first[_ngcontent-%COMP%]{order:-1}.order-sm-last[_ngcontent-%COMP%]{order:13}.order-sm-0[_ngcontent-%COMP%]{order:0}.order-sm-1[_ngcontent-%COMP%]{order:1}.order-sm-2[_ngcontent-%COMP%]{order:2}.order-sm-3[_ngcontent-%COMP%]{order:3}.order-sm-4[_ngcontent-%COMP%]{order:4}.order-sm-5[_ngcontent-%COMP%]{order:5}.order-sm-6[_ngcontent-%COMP%]{order:6}.order-sm-7[_ngcontent-%COMP%]{order:7}.order-sm-8[_ngcontent-%COMP%]{order:8}.order-sm-9[_ngcontent-%COMP%]{order:9}.order-sm-10[_ngcontent-%COMP%]{order:10}.order-sm-11[_ngcontent-%COMP%]{order:11}.order-sm-12[_ngcontent-%COMP%]{order:12}.offset-sm-0[_ngcontent-%COMP%]{margin-left:0}.offset-sm-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-sm-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-sm-3[_ngcontent-%COMP%]{margin-left:25%}.offset-sm-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-sm-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-sm-6[_ngcontent-%COMP%]{margin-left:50%}.offset-sm-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-sm-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-sm-9[_ngcontent-%COMP%]{margin-left:75%}.offset-sm-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-sm-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}.d-sm-none[_ngcontent-%COMP%]{display:none!important}.d-sm-inline[_ngcontent-%COMP%]{display:inline!important}.d-sm-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-sm-block[_ngcontent-%COMP%]{display:block!important}.d-sm-table[_ngcontent-%COMP%]{display:table!important}.d-sm-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-sm-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-sm-flex[_ngcontent-%COMP%]{display:flex!important}.d-sm-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:768px){.col-md[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-md-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-md-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-md-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-md-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-md-first[_ngcontent-%COMP%]{order:-1}.order-md-last[_ngcontent-%COMP%]{order:13}.order-md-0[_ngcontent-%COMP%]{order:0}.order-md-1[_ngcontent-%COMP%]{order:1}.order-md-2[_ngcontent-%COMP%]{order:2}.order-md-3[_ngcontent-%COMP%]{order:3}.order-md-4[_ngcontent-%COMP%]{order:4}.order-md-5[_ngcontent-%COMP%]{order:5}.order-md-6[_ngcontent-%COMP%]{order:6}.order-md-7[_ngcontent-%COMP%]{order:7}.order-md-8[_ngcontent-%COMP%]{order:8}.order-md-9[_ngcontent-%COMP%]{order:9}.order-md-10[_ngcontent-%COMP%]{order:10}.order-md-11[_ngcontent-%COMP%]{order:11}.order-md-12[_ngcontent-%COMP%]{order:12}.offset-md-0[_ngcontent-%COMP%]{margin-left:0}.offset-md-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-md-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-md-3[_ngcontent-%COMP%]{margin-left:25%}.offset-md-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-md-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-md-6[_ngcontent-%COMP%]{margin-left:50%}.offset-md-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-md-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-md-9[_ngcontent-%COMP%]{margin-left:75%}.offset-md-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-md-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}.d-md-none[_ngcontent-%COMP%]{display:none!important}.d-md-inline[_ngcontent-%COMP%]{display:inline!important}.d-md-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-table[_ngcontent-%COMP%]{display:table!important}.d-md-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-md-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-md-flex[_ngcontent-%COMP%]{display:flex!important}.d-md-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:992px){.col-lg[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-lg-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-lg-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-lg-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-lg-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-lg-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-lg-first[_ngcontent-%COMP%]{order:-1}.order-lg-last[_ngcontent-%COMP%]{order:13}.order-lg-0[_ngcontent-%COMP%]{order:0}.order-lg-1[_ngcontent-%COMP%]{order:1}.order-lg-2[_ngcontent-%COMP%]{order:2}.order-lg-3[_ngcontent-%COMP%]{order:3}.order-lg-4[_ngcontent-%COMP%]{order:4}.order-lg-5[_ngcontent-%COMP%]{order:5}.order-lg-6[_ngcontent-%COMP%]{order:6}.order-lg-7[_ngcontent-%COMP%]{order:7}.order-lg-8[_ngcontent-%COMP%]{order:8}.order-lg-9[_ngcontent-%COMP%]{order:9}.order-lg-10[_ngcontent-%COMP%]{order:10}.order-lg-11[_ngcontent-%COMP%]{order:11}.order-lg-12[_ngcontent-%COMP%]{order:12}.offset-lg-0[_ngcontent-%COMP%]{margin-left:0}.offset-lg-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-lg-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-lg-3[_ngcontent-%COMP%]{margin-left:25%}.offset-lg-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-lg-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-lg-6[_ngcontent-%COMP%]{margin-left:50%}.offset-lg-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-lg-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-lg-9[_ngcontent-%COMP%]{margin-left:75%}.offset-lg-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-lg-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}.d-lg-none[_ngcontent-%COMP%]{display:none!important}.d-lg-inline[_ngcontent-%COMP%]{display:inline!important}.d-lg-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-lg-block[_ngcontent-%COMP%]{display:block!important}.d-lg-table[_ngcontent-%COMP%]{display:table!important}.d-lg-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-lg-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-lg-flex[_ngcontent-%COMP%]{display:flex!important}.d-lg-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:1200px){.col-xl[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-xl-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-xl-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-xl-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-xl-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-xl-first[_ngcontent-%COMP%]{order:-1}.order-xl-last[_ngcontent-%COMP%]{order:13}.order-xl-0[_ngcontent-%COMP%]{order:0}.order-xl-1[_ngcontent-%COMP%]{order:1}.order-xl-2[_ngcontent-%COMP%]{order:2}.order-xl-3[_ngcontent-%COMP%]{order:3}.order-xl-4[_ngcontent-%COMP%]{order:4}.order-xl-5[_ngcontent-%COMP%]{order:5}.order-xl-6[_ngcontent-%COMP%]{order:6}.order-xl-7[_ngcontent-%COMP%]{order:7}.order-xl-8[_ngcontent-%COMP%]{order:8}.order-xl-9[_ngcontent-%COMP%]{order:9}.order-xl-10[_ngcontent-%COMP%]{order:10}.order-xl-11[_ngcontent-%COMP%]{order:11}.order-xl-12[_ngcontent-%COMP%]{order:12}.offset-xl-0[_ngcontent-%COMP%]{margin-left:0}.offset-xl-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-xl-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-xl-3[_ngcontent-%COMP%]{margin-left:25%}.offset-xl-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-xl-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-xl-6[_ngcontent-%COMP%]{margin-left:50%}.offset-xl-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-xl-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-xl-9[_ngcontent-%COMP%]{margin-left:75%}.offset-xl-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-xl-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}.d-xl-none[_ngcontent-%COMP%]{display:none!important}.d-xl-inline[_ngcontent-%COMP%]{display:inline!important}.d-xl-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-xl-block[_ngcontent-%COMP%]{display:block!important}.d-xl-table[_ngcontent-%COMP%]{display:table!important}.d-xl-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-xl-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-xl-flex[_ngcontent-%COMP%]{display:flex!important}.d-xl-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media print{.d-print-none[_ngcontent-%COMP%]{display:none!important}.d-print-inline[_ngcontent-%COMP%]{display:inline!important}.d-print-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-print-block[_ngcontent-%COMP%]{display:block!important}.d-print-table[_ngcontent-%COMP%]{display:table!important}.d-print-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-print-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-print-flex[_ngcontent-%COMP%]{display:flex!important}.d-print-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}.flex-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.m-0[_ngcontent-%COMP%]{margin:0!important}.mt-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-left:0!important}.m-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%],   .btn-toolbar .btn-group{margin-right:.25rem!important}.mb-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-0[_ngcontent-%COMP%]{padding:0!important}.pt-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-left:0!important}.p-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-left:auto!important}@media (min-width:576px){.flex-sm-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-sm-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-sm-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-sm-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-sm-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-sm-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-sm-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-sm-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-sm-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-sm-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-sm-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-sm-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-sm-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-sm-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-sm-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-sm-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-sm-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-sm-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-sm-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-sm-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-sm-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-sm-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-sm-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-sm-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-sm-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-sm-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-sm-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-sm-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-sm-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-sm-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-sm-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-sm-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-sm-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-sm-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.m-sm-0[_ngcontent-%COMP%]{margin:0!important}.mt-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-left:0!important}.m-sm-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-sm-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-sm-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-sm-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-sm-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-sm-0[_ngcontent-%COMP%]{padding:0!important}.pt-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-left:0!important}.p-sm-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-sm-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-sm-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-sm-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-sm-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-sm-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-sm-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-sm-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-sm-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-sm-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-sm-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-left:auto!important}}@media (min-width:768px){.flex-md-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-md-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-md-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-md-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-md-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-md-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-md-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-md-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-md-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-md-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-md-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-md-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-md-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-md-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-md-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-md-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-md-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-md-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-md-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-md-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-md-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-md-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-md-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-md-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-md-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-md-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-md-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-md-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-md-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-md-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-md-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-md-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-md-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-md-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.m-md-0[_ngcontent-%COMP%]{margin:0!important}.mt-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-left:0!important}.m-md-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-md-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-md-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-md-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-md-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-md-0[_ngcontent-%COMP%]{padding:0!important}.pt-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-left:0!important}.p-md-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-md-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-md-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-md-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-md-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-md-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-md-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-md-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-md-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-md-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-md-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-left:auto!important}}@media (min-width:992px){.flex-lg-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-lg-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-lg-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-lg-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-lg-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-lg-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-lg-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-lg-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-lg-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-lg-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-lg-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-lg-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-lg-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-lg-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-lg-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-lg-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-lg-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-lg-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-lg-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-lg-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-lg-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-lg-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-lg-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-lg-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-lg-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-lg-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-lg-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-lg-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-lg-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-lg-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-lg-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-lg-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-lg-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-lg-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.m-lg-0[_ngcontent-%COMP%]{margin:0!important}.mt-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-left:0!important}.m-lg-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-lg-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-lg-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-lg-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-lg-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-lg-0[_ngcontent-%COMP%]{padding:0!important}.pt-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-left:0!important}.p-lg-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-lg-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-lg-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-lg-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-lg-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-lg-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-lg-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-lg-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-lg-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-lg-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-lg-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-left:auto!important}}@media (min-width:1200px){.flex-xl-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-xl-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-xl-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-xl-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-xl-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-xl-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-xl-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-xl-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-xl-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-xl-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-xl-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-xl-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-xl-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-xl-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-xl-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-xl-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-xl-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-xl-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-xl-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-xl-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-xl-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-xl-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-xl-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-xl-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-xl-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-xl-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-xl-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-xl-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-xl-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-xl-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-xl-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-xl-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-xl-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-xl-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.m-xl-0[_ngcontent-%COMP%]{margin:0!important}.mt-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-left:0!important}.m-xl-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-xl-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-xl-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-xl-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-xl-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-xl-0[_ngcontent-%COMP%]{padding:0!important}.pt-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-left:0!important}.p-xl-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-xl-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-xl-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-xl-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-xl-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-xl-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-xl-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-xl-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-xl-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-xl-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-xl-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-left:auto!important}}.dropdown-menu[_ngcontent-%COMP%] > .disabled[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{pointer-events:auto;cursor:default!important}"]],data:{}});function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,10,"button",[["type","button"]],null,[[null,"click"]],(function(t,e,n){var r=!0,o=t.component;return"click"===e&&(r=!1!==a["ɵnov"](t,5).onClick()&&r),"click"===e&&(r=!1!==o.useClickAction(t.context.ngIf)&&r),r}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](4,{disabled:0}),a["ɵdid"](5,16384,null,0,o.n,[o.m,o.a,[8,null],a.Renderer2,a.ElementRef],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](8,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](9,1),(t()(),a["ɵeld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](11,null,["",""]))],(function(t,e){var n=e.component,r=a["ɵinlineInterpolate"](1,"btn btn-",n.btnColor,""),o=t(e,4,0,n.disableSelectionAction(e.context.ngIf));t(e,3,0,r,o),t(e,5,0,e.context.ngIf.preserveFragment?"":null,n.useRouterLink(e.context.ngIf));var i=t(e,9,0,e.context.ngIf.icon);t(e,8,0,i)}),(function(t,e){t(e,11,0,e.context.ngIf.name)}))}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](1,null,[""," "]))],null,(function(t,e){t(e,1,0,e.component.dropDownOnly)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"span",[["class","sr-only"]],null,null,null,null,null))],null,null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"button",[["dropdownToggle",""],["type","button"]],[[8,"className",0],[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick()&&r),r}),null,null)),a["ɵdid"](1,147456,null,0,i.g,[a.ChangeDetectorRef,i.c,a.ElementRef,a.Renderer2,i.f],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](3,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.dropDownOnly),t(e,5,0,!n.dropDownOnly)}),(function(t,e){t(e,0,0,a["ɵinlineInterpolate"](1,"btn btn-",e.component.btnColor," dropdown-toggle dropdown-toggle-split"),!0,a["ɵnov"](e,1).isDisabled,a["ɵnov"](e,1).isOpen)}))}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,12,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,11,"li",[["data-toggle","tooltip"],["role","menuitem"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,10,"a",[["class","dropdown-item"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var r=!0,o=t.component;return"click"===e&&(r=!1!==a["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&r),"click"===e&&(r=!1!==o.useClickAction(t.context.$implicit)&&r),r}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](5,{disabled:0}),a["ɵdid"](6,671744,null,0,o.p,[o.m,o.a,r.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),a["ɵeld"](7,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](9,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](10,1),(t()(),a["ɵeld"](11,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](12,null,["",""]))],(function(t,e){var n=e.component,a=t(e,5,0,n.disableSelectionAction(e.context.$implicit));t(e,4,0,"dropdown-item",a),t(e,6,0,e.context.$implicit.preserveFragment?"":null,n.useRouterLink(e.context.$implicit));var r=t(e,10,0,e.context.$implicit.icon);t(e,9,0,r)}),(function(t,e){var n=e.component;t(e,1,0,a["ɵinlineInterpolate"](1,"",n.toClassName(e.context.$implicit.name),""),a["ɵinlineInterpolate"](1,"",n.useDisableDesc(e.context.$implicit),"")),t(e,2,0,a["ɵnov"](e,6).target,a["ɵnov"](e,6).href),t(e,12,0,e.context.$implicit.name)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu"],["role","menu"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](2,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.dropDownActions)}),null)}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,8,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),a["ɵprd"](512,null,i.f,i.f,[]),a["ɵdid"](2,212992,null,0,i.c,[a.ElementRef,a.Renderer2,a.ViewContainerRef,s.a,i.a,i.f],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](8,16384,null,0,i.d,[i.f,a.ViewContainerRef,a.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.getCurrentButton()),t(e,6,0,n.showDropDownActions())}),(function(t,e){t(e,0,0,a["ɵnov"](e,2).dropup,a["ɵnov"](e,2).isOpen,a["ɵnov"](e,2).isOpen&&a["ɵnov"](e,2).isBs4)}))}},NXyV:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("HDdC"),r=n("Cfvw"),o=n("EY2u");function i(t){return new a.a(e=>{let n;try{n=t()}catch(a){return void e.error(a)}return(n?Object(r.a)(n):Object(o.b)()).subscribe(e)})}},NaFW:function(t,e,n){var a=n("9d/t"),r=n("P4y1"),o=n("tiKp")("iterator");t.exports=function(t){if(null!=t)return t[o]||t["@@iterator"]||r[a(t)]}},Nehr:function(t,e,n){"use strict";t.exports={isString:function(t){return"string"==typeof t},isObject:function(t){return"object"==typeof t&&null!==t},isNull:function(t){return null===t},isNullOrUndefined:function(t){return null==t}}},Nh2a:function(t,e,n){var a=n("SKAX");t.exports=function(t,e){var n;return a(t,(function(t,a,r){return!(n=e(t,a,r))})),!!n}},Nia1:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3/HP")),a(n("FLvf")),a(n("2V7f")),a(n("fktO")),a(n("QHrR")),a(n("i3PA"))},Npjl:function(t,e){t.exports=function(t,e){return null==t?void 0:t[e]}},Nv8m:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("DH7j"),r=n("yCtX"),o=n("l7GE"),i=n("ZUHj");function s(...t){if(1===t.length){if(!Object(a.a)(t[0]))return t[0];t=t[0]}return Object(r.a)(t,void 0).lift(new c)}class c{call(t,e){return e.subscribe(new l(t))}}class l extends o.a{constructor(t){super(t),this.hasFirst=!1,this.observables=[],this.subscriptions=[]}_next(t){this.observables.push(t)}_complete(){const t=this.observables,e=t.length;if(0===e)this.destination.complete();else{for(let n=0;n<e&&!this.hasFirst;n++){let e=t[n],a=Object(i.a)(this,e,e,n);this.subscriptions&&this.subscriptions.push(a),this.add(a)}this.observables=null}}notifyNext(t,e,n,a,r){if(!this.hasFirst){this.hasFirst=!0;for(let t=0;t<this.subscriptions.length;t++)if(t!==n){let e=this.subscriptions[t];e.unsubscribe(),this.remove(e)}this.subscriptions=null}this.destination.next(e)}}},NykK:function(t,e,n){var a=n("nmnc"),r=n("AP2z"),o=n("KfNM"),i=a?a.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":i&&i in Object(t)?r(t):o(t)}},O0oS:function(t,e,n){var a=n("Cwc5"),r=function(){try{var t=a(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();t.exports=r},O741:function(t,e,n){var a=n("hh1v");t.exports=function(t){if(!a(t)&&null!==t)throw TypeError("Can't set "+String(t)+" as a prototype");return t}},O7RO:function(t,e,n){var a=n("CMye"),r=n("7GkX");t.exports=function(t){for(var e=r(t),n=e.length;n--;){var o=e[n],i=t[o];e[n]=[o,i,a(i)]}return e}},O9Tv:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("YzqF");e.Mutex=a.default},OBhP:function(t,e,n){var a=n("fmRc"),r=n("gFfm"),o=n("MrPd"),i=n("WwFo"),s=n("Dw+G"),c=n("5Tg0"),l=n("Q1l4"),d=n("VOtZ"),u=n("EEGq"),g=n("qZTm"),f=n("G6z8"),p=n("QqLw"),m=n("yHx3"),h=n("wrZu"),b=n("+iFO"),y=n("Z0cm"),_=n("DSRE"),O=n("zEVN"),v=n("GoyQ"),C=n("1+5i"),P=n("7GkX"),M={};M["[object Arguments]"]=M["[object Array]"]=M["[object ArrayBuffer]"]=M["[object DataView]"]=M["[object Boolean]"]=M["[object Date]"]=M["[object Float32Array]"]=M["[object Float64Array]"]=M["[object Int8Array]"]=M["[object Int16Array]"]=M["[object Int32Array]"]=M["[object Map]"]=M["[object Number]"]=M["[object Object]"]=M["[object RegExp]"]=M["[object Set]"]=M["[object String]"]=M["[object Symbol]"]=M["[object Uint8Array]"]=M["[object Uint8ClampedArray]"]=M["[object Uint16Array]"]=M["[object Uint32Array]"]=!0,M["[object Error]"]=M["[object Function]"]=M["[object WeakMap]"]=!1,t.exports=function t(e,n,x,w,T,S){var k,I=1&n,N=2&n,R=4&n;if(x&&(k=T?x(e,w,T,S):x(e)),void 0!==k)return k;if(!v(e))return e;var A=y(e);if(A){if(k=m(e),!I)return l(e,k)}else{var E=p(e),D="[object Function]"==E||"[object GeneratorFunction]"==E;if(_(e))return c(e,I);if("[object Object]"==E||"[object Arguments]"==E||D&&!T){if(k=N||D?{}:b(e),!I)return N?u(e,s(k,e)):d(e,i(k,e))}else{if(!M[E])return T?e:{};k=h(e,E,I)}}S||(S=new a);var L=S.get(e);if(L)return L;S.set(e,k),C(e)?e.forEach((function(a){k.add(t(a,n,x,a,e,S))})):O(e)&&e.forEach((function(a,r){k.set(r,t(a,n,x,r,e,S))}));var q=R?N?f:g:N?keysIn:P,j=A?void 0:q(e);return r(j||e,(function(a,r){j&&(a=e[r=a]),o(k,r,t(a,n,x,r,e,S))})),k}},OIDT:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Input)(),i("design:type",Number)],t.prototype,"index",void 0),o([Object(a.Input)(),i("design:type",Object)],t.prototype,"templates",void 0),o([Object(a.Component)({selector:"tree-node-wrapper",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n      <div *ngIf="!templates.treeNodeWrapperTemplate" class="node-wrapper" [style.padding-left]="node.getNodePadding()">\n          <tree-node-checkbox *ngIf="node.options.useCheckbox" [node]="node"></tree-node-checkbox>\n          <tree-node-expander [node]="node"></tree-node-expander>\n          <div class="node-content-wrapper"\n               [class.node-content-wrapper-active]="node.isActive"\n               [class.node-content-wrapper-focused]="node.isFocused"\n               (click)="node.mouseAction(\'click\', $event)"\n               (dblclick)="node.mouseAction(\'dblClick\', $event)"\n               (mouseover)="node.mouseAction(\'mouseOver\', $event)"\n               (mouseout)="node.mouseAction(\'mouseOut\', $event)"\n               (contextmenu)="node.mouseAction(\'contextMenu\', $event)"\n               (treeDrop)="node.onDrop($event)"\n               (treeDropDragOver)="node.mouseAction(\'dragOver\', $event)"\n               (treeDropDragLeave)="node.mouseAction(\'dragLeave\', $event)"\n               (treeDropDragEnter)="node.mouseAction(\'dragEnter\', $event)"\n               [treeAllowDrop]="node.allowDrop"\n               [allowDragoverStyling]="node.allowDragoverStyling()"\n               [treeDrag]="node"\n               [treeDragEnabled]="node.allowDrag()">\n\n              <tree-node-content [node]="node" [index]="index" [template]="templates.treeNodeTemplate">\n              </tree-node-content>\n          </div>\n      </div>\n      <ng-container\n              [ngTemplateOutlet]="templates.treeNodeWrapperTemplate"\n              [ngTemplateOutletContext]="{ $implicit: node, node: node, index: index, templates: templates }">\n      </ng-container>\n  '}),i("design:paramtypes",[])],t)}()},OIYi:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(n("wd/R"))},OLbh:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("s7LF");class r{constructor(t,e){this.modalRef=t,this.modalService=e,this.boundCancel=this.cancel.bind(this),this.canceled=!1,this.confirmationForm=new a.k({}),this.onHide=this.modalService.onHide.subscribe(t=>{this.onCancel&&(t||this.canceled)&&this.onCancel()})}ngOnInit(){if(this.bodyContext=this.bodyContext||{},this.bodyContext.$implicit=this.bodyData,!this.onSubmit)throw new Error("No submit action defined");if(!this.buttonText)throw new Error("No action name defined");if(!this.titleText)throw new Error("No title defined");if(!this.bodyTpl&&!this.description)throw new Error("No description defined")}ngOnDestroy(){this.onHide.unsubscribe()}cancel(){this.canceled=!0,this.modalRef.hide()}stopLoadingSpinner(){this.confirmationForm.setErrors({cdSubmitButton:!0})}}},OQgR:function(t,e,n){"use strict";n.d(e,"b",(function(){return s})),n.d(e,"a",(function(){return u}));var a=n("7o/Q"),r=n("quSY"),o=n("HDdC"),i=n("XNiG");function s(t,e,n,a){return r=>r.lift(new c(t,e,n,a))}class c{constructor(t,e,n,a){this.keySelector=t,this.elementSelector=e,this.durationSelector=n,this.subjectSelector=a}call(t,e){return e.subscribe(new l(t,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))}}class l extends a.a{constructor(t,e,n,a,r){super(t),this.keySelector=e,this.elementSelector=n,this.durationSelector=a,this.subjectSelector=r,this.groups=null,this.attemptedToUnsubscribe=!1,this.count=0}_next(t){let e;try{e=this.keySelector(t)}catch(n){return void this.error(n)}this._group(t,e)}_group(t,e){let n=this.groups;n||(n=this.groups=new Map);let a,r=n.get(e);if(this.elementSelector)try{a=this.elementSelector(t)}catch(o){this.error(o)}else a=t;if(!r){r=this.subjectSelector?this.subjectSelector():new i.a,n.set(e,r);const t=new u(e,r,this);if(this.destination.next(t),this.durationSelector){let t;try{t=this.durationSelector(new u(e,r))}catch(o){return void this.error(o)}this.add(t.subscribe(new d(e,r,this)))}}r.closed||r.next(a)}_error(t){const e=this.groups;e&&(e.forEach((e,n)=>{e.error(t)}),e.clear()),this.destination.error(t)}_complete(){const t=this.groups;t&&(t.forEach((t,e)=>{t.complete()}),t.clear()),this.destination.complete()}removeGroup(t){this.groups.delete(t)}unsubscribe(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&super.unsubscribe())}}class d extends a.a{constructor(t,e,n){super(e),this.key=t,this.group=e,this.parent=n}_next(t){this.complete()}_unsubscribe(){const{parent:t,key:e}=this;this.key=this.parent=null,t&&t.removeGroup(e)}}class u extends o.a{constructor(t,e,n){super(),this.key=t,this.groupSubject=e,this.refCountSubscription=n}_subscribe(t){const e=new r.a,{refCountSubscription:n,groupSubject:a}=this;return n&&!n.closed&&e.add(new g(n)),e.add(a.subscribe(t)),e}}class g extends r.a{constructor(t){super(),this.parent=t,t.count++}unsubscribe(){const t=this.parent;t.closed||this.closed||(super.unsubscribe(),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())}}},Oaa7:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},Ob0Z:function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function a(t,e,n,a){var r="";if(e)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,t)}t.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".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:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात्री"===e?t<4?t:t+12:"सकाळी"===e?t:"दुपारी"===e?t>=10?t:t+12:"सायंकाळी"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात्री":t<10?"सकाळी":t<17?"दुपारी":t<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n("wd/R"))},"Of+w":function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"WeakMap");t.exports=a},OjkT:function(t,e,n){!function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};t.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,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 बजे"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(t,e){return 12===t&&(t=0),"राति"===e?t<4?t:t+12:"बिहान"===e?t:"दिउँसो"===e?t>=10?t:t+12:"साँझ"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"राति":t<12?"बिहान":t<16?"दिउँसो":t<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n("wd/R"))},Oxv6:function(t,e,n){!function(t){"use strict";var e={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};t.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".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:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(t,e){return 12===t&&(t=0),"шаб"===e?t<4?t:t+12:"субҳ"===e?t:"рӯз"===e?t>=11?t:t+12:"бегоҳ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"шаб":t<11?"субҳ":t<16?"рӯз":t<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},"P/G1":function(t,e,n){var a=n("JmpY"),r=n("7GkX");t.exports=function(t){return null==t?[]:a(t,r(t))}},P4Tr:function(t,e,n){var a=n("heNW"),r=n("EA7m"),o=n("4DFU"),i=n("JBE3"),s=r((function(t){return t.push(void 0,o),a(i,void 0,t)}));t.exports=s},P4y1:function(t,e){t.exports={}},P8lu:function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var a=n("mrSG"),r=n("IheW"),o=n("LvDl"),i=n("cp0P"),s=n("LRne"),c=n("5+tZ"),l=n("xTzq"),d=n("8Y7J"),u=n("pL04");let g=(()=>{let t=class{constructor(t){this.http=t,this.url="api/rgw/user"}list(){return this.enumerate().pipe(Object(c.a)(t=>t.length>0?Object(i.a)(t.map(t=>this.get(t))):Object(s.a)([])))}enumerate(){return this.http.get(this.url)}enumerateEmail(){return this.http.get(`${this.url}/get_emails`)}get(t){return this.http.get(`${this.url}/${t}`)}getQuota(t){return this.http.get(`${this.url}/${t}/quota`)}create(t){let e=new r.h;return o.keys(t).forEach(n=>{e=e.append(n,t[n])}),this.http.post(this.url,null,{params:e})}update(t,e){let n=new r.h;return o.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.put(`${this.url}/${t}`,null,{params:n})}updateQuota(t,e){let n=new r.h;return o.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.put(`${this.url}/${t}/quota`,null,{params:n})}delete(t){return this.http.delete(`${this.url}/${t}`)}createSubuser(t,e){let n=new r.h;return o.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.post(`${this.url}/${t}/subuser`,null,{params:n})}deleteSubuser(t,e){return this.http.delete(`${this.url}/${t}/subuser/${e}`)}addCapability(t,e,n){let a=new r.h;return a=a.append("type",e),a=a.append("perm",n),this.http.post(`${this.url}/${t}/capability`,null,{params:a})}deleteCapability(t,e,n){let a=new r.h;return a=a.append("type",e),a=a.append("perm",n),this.http.delete(`${this.url}/${t}/capability`,{params:a})}addS3Key(t,e){let n=new r.h;return n=n.append("key_type","s3"),o.keys(e).forEach(t=>{n=n.append(t,e[t])}),this.http.post(`${this.url}/${t}/key`,null,{params:n})}deleteS3Key(t,e){let n=new r.h;return n=n.append("key_type","s3"),n=n.append("access_key",e),this.http.delete(`${this.url}/${t}/key`,{params:n})}exists(t){return this.enumerate().pipe(Object(c.a)(e=>{const n=o.indexOf(e,t);return Object(s.a)(-1!==n)}))}emailExists(t){return t=decodeURIComponent(t),this.enumerateEmail().pipe(Object(c.a)(e=>{const n=o.indexOf(e,t);return Object(s.a)(-1!==n)}))}};return t.ngInjectableDef=d["ɵɵdefineInjectable"]({factory:function(){return new t(d["ɵɵinject"](r.c))},token:t,providedIn:u.a}),t=a.__decorate([l.a,a.__metadata("design:paramtypes",[r.c])],t),t})()},PA2r:function(t,e,n){!function(t){"use strict";var e="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),a=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],r=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function o(t){return t>1&&t<5&&1!=~~(t/10)}function i(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"pár sekund":"pár sekundami";case"ss":return e||a?r+(o(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(o(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(o(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(o(t)?"dny":"dní"):r+"dny";case"M":return e||a?"měsíc":"měsícem";case"MM":return e||a?r+(o(t)?"měsíce":"měsíců"):r+"měsíci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(o(t)?"roky":"let"):r+"lety"}}t.defineLocale("cs",{months:e,monthsShort:n,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_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ítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},PCNd:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},"PEr+":function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("EEJc"),i=n("ajRT"),s=n("s7LF"),c=n("+gVj"),l=n("mXUL"),d=n("IZUe"),u=n("gp3X"),g=n("sb0X"),f=n("KVJa"),p=n("Z21x"),m=n("sne2"),h=n("0+/T"),b=n("LqlI");n.d(e,"a",(function(){return I}));var y=a["ɵcrt"]({encapsulation:0,styles:[[".modal-body[_ngcontent-%COMP%]   .question[_ngcontent-%COMP%]{margin-top:1em}.modal-body[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-weight:700}.modal-body[_ngcontent-%COMP%]   .question[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{padding-top:7px}"]],data:{}});function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," "])),a["ɵppd"](2,1),(t()(),a["ɵeld"](3,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](4,null,["",""])),(t()(),a["ɵted"](-1,null,["?"]))],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r),t(e,4,0,n.itemNames[0])}))}function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," the selected items?"])),a["ɵppd"](2,1),(t()(),a["ɵeld"](3,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](5,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,5,0,e.component.itemNames)}),(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent.parent,0),n.actionDescription));t(e,1,0,r)}))}function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,v)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["manyNames",2]],null,0,null,P))],(function(t,e){t(e,2,0,1===e.component.itemNames.length,a["ɵnov"](e,3))}),null)}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["Are you sure that you want to "," the selected ","?"])),a["ɵppd"](2,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,1,0,t(e,2,0,a["ɵnov"](e.parent,0),n.actionDescription));t(e,1,0,r,n.itemDescription)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function T(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," ","\n"])),a["ɵppd"](1,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,0,0,t(e,1,0,a["ɵnov"](e.parent,1),n.actionDescription));t(e,0,0,r,n.itemDescription)}))}function S(t){return a["ɵvid"](0,[a["ɵpid"](0,r.LowerCasePipe,[]),a["ɵpid"](0,r.TitleCasePipe,[]),a["ɵqud"](402653184,1,{submitButton:0}),(t()(),a["ɵeld"](3,0,null,null,40,"cd-modal",[],null,null,null,o.c,o.b)),a["ɵdid"](4,49152,[["modal",4]],0,i.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["ɵeld"](5,0,null,0,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,_)),a["ɵdid"](7,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](8,0,null,1,35,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,34,"form",[["name","deletionForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,11).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,11).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,14).onSubmit()&&r),r}),null,null)),a["ɵdid"](10,16384,null,0,s.G,[],null,null),a["ɵdid"](11,540672,[["formDir",4]],0,s.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,s.d,null,[s.l]),a["ɵdid"](13,16384,null,0,s.s,[[4,s.d]],null,null),a["ɵdid"](14,16384,null,0,c.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](15,0,null,null,21,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,O)),a["ɵdid"](17,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](18,0,null,null,18,"div",[["class","question"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,M)),a["ɵdid"](20,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["noNames",2]],null,0,null,x)),(t()(),a["ɵeld"](22,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,l.b,l.a)),a["ɵdid"](23,1163264,null,2,c.c,[a.ElementRef,c.g],null,null),a["ɵqud"](603979776,2,{FormControlNames:1}),a["ɵqud"](603979776,3,{messagesBlock:0}),(t()(),a["ɵeld"](26,0,null,0,10,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),a["ɵeld"](27,0,null,null,7,"input",[["autofocus",""],["class","custom-control-input"],["formControlName","confirmation"],["id","confirmation"],["name","confirmation"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t,28).onChange(n.target.checked)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,28).onTouched()&&r),r}),null,null)),a["ɵdid"](28,16384,null,0,s.c,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,s.p,(function(t){return[t]}),[s.c]),a["ɵdid"](30,671744,[[2,4]],0,s.j,[[3,s.d],[8,null],[8,null],[6,s.p],[2,s.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,s.q,null,[s.j]),a["ɵdid"](32,16384,null,0,s.r,[[4,s.q]],null,null),a["ɵdid"](33,4210688,null,0,d.a,[a.ElementRef],{autofocus:[0,"autofocus"]},null),a["ɵdid"](34,16384,null,0,c.h,[[3,s.d],c.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵeld"](35,0,null,null,1,"label",[["class","custom-control-label"],["for","confirmation"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Yes, I am sure."])),(t()(),a["ɵeld"](37,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](38,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.callSubmitAction()&&a),a}),u.b,u.a)),a["ɵdid"](39,114688,[[1,4],["submitButton",4]],0,g.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵand"](16777216,null,0,1,null,w)),a["ɵdid"](41,540672,null,0,r.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),a["ɵeld"](42,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,f.b,f.a)),a["ɵdid"](43,49152,null,0,p.a,[r.Location,m.b],{name:[0,"name"],back:[1,"back"]},null),(t()(),a["ɵand"](0,[["deletionHeading",2]],null,0,null,T))],(function(t,e){var n=e.component;t(e,4,0,n.modalRef),t(e,7,0,a["ɵnov"](e,44)),t(e,11,0,n.deletionForm),t(e,14,0,n.deletionForm),t(e,17,0,n.bodyContext,n.bodyTemplate),t(e,20,0,n.itemNames,a["ɵnov"](e,21)),t(e,23,0),t(e,30,0,"confirmation"),t(e,33,0,""),t(e,34,0,"confirmation"),t(e,39,0,n.deletionForm),t(e,41,0,a["ɵnov"](e,44)),t(e,43,0,"Cancel",n.modalRef.hide)}),(function(t,e){t(e,9,0,a["ɵnov"](e,13).ngClassUntouched,a["ɵnov"](e,13).ngClassTouched,a["ɵnov"](e,13).ngClassPristine,a["ɵnov"](e,13).ngClassDirty,a["ɵnov"](e,13).ngClassValid,a["ɵnov"](e,13).ngClassInvalid,a["ɵnov"](e,13).ngClassPending),t(e,22,0,a["ɵnov"](e,23).hasErrors,a["ɵnov"](e,23).hasSuccess),t(e,27,0,a["ɵnov"](e,32).ngClassUntouched,a["ɵnov"](e,32).ngClassTouched,a["ɵnov"](e,32).ngClassPristine,a["ɵnov"](e,32).ngClassDirty,a["ɵnov"](e,32).ngClassValid,a["ɵnov"](e,32).ngClassInvalid,a["ɵnov"](e,32).ngClassPending,a["ɵnov"](e,34).validClass,a["ɵnov"](e,34).invalidClass)}))}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-deletion-modal",[],null,null,null,S,y)),a["ɵdid"](1,114688,null,0,h.a,[b.a],null,null)],(function(t,e){t(e,1,0)}),null)}var I=a["ɵccf"]("cd-deletion-modal",h.a,k,{},{},[])},PKPk:function(t,e,n){"use strict";var a=n("ZUd8").charAt,r=n("afO8"),o=n("fdAy"),i=r.set,s=r.getterFor("String Iterator");o(String,"String",(function(t){i(this,{type:"String Iterator",string:String(t),index:0})}),(function(){var t,e=s(this),n=e.string,r=e.index;return r>=n.length?{value:void 0,done:!0}:(t=a(n,r),e.index+=t.length,{value:t,done:!1})}))},PNOi:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n    <div class="progress-linear" role="progressbar">\n      <div class="container">\n        <div class="bar"></div>\n      </div>\n    </div>\n  ',changeDetection:r.ChangeDetectionStrategy.OnPush})],(function(){}))}()},PeUW:function(t,e,n){!function(t){"use strict";var e={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};t.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".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:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(t){return t+"வது"},preparse:function(t){return t.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(t,e,n){return t<2?" யாமம்":t<6?" வைகறை":t<10?" காலை":t<14?" நண்பகல்":t<18?" எற்பாடு":t<22?" மாலை":" யாமம்"},meridiemHour:function(t,e){return 12===t&&(t=0),"யாமம்"===e?t<2?t:t+12:"வைகறை"===e||"காலை"===e?t:"நண்பகல்"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})}(n("wd/R"))},PpIw:function(t,e,n){!function(t){"use strict";var e={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};t.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".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:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(t){return t.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ರಾತ್ರಿ"===e?t<4?t:t+12:"ಬೆಳಿಗ್ಗೆ"===e?t:"ಮಧ್ಯಾಹ್ನ"===e?t>=10?t:t+12:"ಸಂಜೆ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ರಾತ್ರಿ":t<10?"ಬೆಳಿಗ್ಗೆ":t<17?"ಮಧ್ಯಾಹ್ನ":t<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(t){return t+"ನೇ"},week:{dow:0,doy:6}})}(n("wd/R"))},PqYM:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("HDdC"),r=n("D0XW"),o=n("Y7HM"),i=n("z+Ro");function s(t=0,e,n){let s=-1;return Object(o.a)(e)?s=Number(e)<1?1:Number(e):Object(i.a)(e)&&(n=e),Object(i.a)(n)||(n=r.a),new a.a(e=>{const a=Object(o.a)(t)?t:+t-n.now();return n.schedule(c,a,{index:0,period:s,subscriber:e})})}function c(t){const{index:e,period:n,subscriber:a}=t;if(a.next(e),!a.closed){if(-1===n)return a.complete();t.index=e+1,this.schedule(t,n)}}},Puqe:function(t,e,n){var a=n("eUgh"),r=n("OBhP"),o=n("S7Xf"),i=n("4uTw"),s=n("juv8"),c=n("4Oe1"),l=n("xs/l"),d=n("G6z8"),u=l((function(t,e){var n={};if(null==t)return n;var l=!1;e=a(e,(function(e){return e=i(e,t),l||(l=e.length>1),e})),s(t,d(t),n),l&&(n=r(n,7,c));for(var u=e.length;u--;)o(n,e[u]);return n}));t.exports=u},Q1l4:function(t,e){t.exports=function(t,e){var n=-1,a=t.length;for(e||(e=Array(a));++n<a;)e[n]=t[n];return e}},QC43:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("MdoF"),o=n("CNMR"),i=n("SVse");n("XFyV"),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return c}));var s=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"alert",[["type","info"]],null,null,null,r.c,r.b)),a["ɵdid"](1,114688,null,0,o.a,[o.b,a.ChangeDetectorRef],{type:[0,"type"]},null),(t()(),a["ɵeld"](2,0,null,0,4,"strong",[],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,i["ɵNgClassImpl"],i["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](5,278528,null,0,i.NgClass,[i["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](6,2),a["ɵncd"](0,0)],(function(t,e){var n=e.component;t(e,1,0,"info");var a=t(e,6,0,n.icons.spinner,n.icons.spin);t(e,5,0,a)}),null)}},QFaf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("s7LF");class r extends a.k{constructor(t,e,n){super(t,e,n),this.controls=t}get(t){const e=this._get(t);if(!e)throw new Error(`Control '${t}' could not be found!`);return e}_get(t){return super.get(t)||Object.values(this.controls).filter(t=>t.get).map(e=>e instanceof r?e._get(t):e.get(t)).find(t=>Boolean(t))}getValue(t){return this.get(t).value}silentSet(t,e){this.get(t).setValue(e,{emitEvent:!1})}showError(t,e,n){const a=this.get(t);return(e.submitted||a.dirty)&&(n?a.hasError(n):a.invalid)}}},QHrR:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Y0Co")),a(n("Lwhh")),a(n("8iEZ")),a(n("L5sC"))},QIyF:function(t,e,n){var a=n("Kz5y");t.exports=function(){return a.Date.now()}},QTAa:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("t/zF");class r extends a.a{}},QWBl:function(t,e,n){"use strict";var a=n("I+eb"),r=n("F8JR");a({target:"Array",proto:!0,forced:[].forEach!=r},{forEach:r})},QcOe:function(t,e,n){var a=n("GoyQ"),r=n("6sVZ"),o=n("7Ix3"),i=Object.prototype.hasOwnProperty;t.exports=function(t){if(!a(t))return o(t);var e=r(t),n=[];for(var s in t)("constructor"!=s||!e&&i.call(t,s))&&n.push(s);return n}},Qj4J:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n("wd/R"))},QkVE:function(t,e,n){var a=n("EpBk");t.exports=function(t,e){var n=t.__data__;return a(e)?n["string"==typeof e?"string":"hash"]:n.map}},Qo9l:function(t,e,n){var a=n("2oRo");t.exports=a},QoRX:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(e(t[n],n,t))return!0;return!1}},QqLw:function(t,e,n){var a=n("tadb"),r=n("ebwN"),o=n("HOxn"),i=n("yGk4"),s=n("Of+w"),c=n("NykK"),l=n("3Fdi"),d=l(a),u=l(r),g=l(o),f=l(i),p=l(s),m=c;(a&&"[object DataView]"!=m(new a(new ArrayBuffer(1)))||r&&"[object Map]"!=m(new r)||o&&"[object Promise]"!=m(o.resolve())||i&&"[object Set]"!=m(new i)||s&&"[object WeakMap]"!=m(new s))&&(m=function(t){var e=c(t),n="[object Object]"==e?t.constructor:void 0,a=n?l(n):"";if(a)switch(a){case d:return"[object DataView]";case u:return"[object Map]";case g:return"[object Promise]";case f:return"[object Set]";case p:return"[object WeakMap]"}return e}),t.exports=m},"R/W3":function(t,e,n){var a=n("KwMD"),r=n("2ajD"),o=n("CZoQ");t.exports=function(t,e,n){return e==e?o(t,e,n):a(t,r,n)}},RAwQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={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 e?r[n][0]:r[n][1]}function n(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10;return n(0===e?t/10:e)}if(t<1e4){for(;t>=10;)t/=10;return n(t)}return n(t/=1e3)}t.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_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éindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_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ëschter 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(t){return n(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t},past:function(t){return n(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t},s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},RBan:function(t,e){t.exports=function(t){var e=null==t?0:t.length;return e?t[e-1]:void 0}},RK3t:function(t,e,n){var a=n("0Dky"),r=n("xrYK"),o="".split;t.exports=a((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==r(t)?o.call(t,""):Object(t)}:Object},RNIs:function(t,e,n){var a=n("tiKp"),r=n("fHMY"),o=n("m/L8"),i=a("unscopables"),s=Array.prototype;null==s[i]&&o.f(s,i,{configurable:!0,value:r(null)}),t.exports=function(t){s[i][t]=!0}},Rf2I:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("s7LF"),r=n("LvDl");n("2EZI"),n("Fgil"),n("aXbf");class o{constructor(t,e,n,a,r){this.bsModalRef=t,this.formBuilder=e,this.formatter=n,this.dimlessBinaryPipe=a,this.i18n=r}ngOnInit(){this.createForm()}createForm(){const t={};this.fields.forEach(e=>{t[e.name]=this.createFormControl(e)}),this.formGroup=this.formBuilder.group(t)}createFormControl(t){let e=[];return r.isBoolean(t.required)&&t.required&&e.push(a.B.required),t.validators&&(e=e.concat(t.validators)),new a.i(r.defaultTo("binary"===t.type?this.dimlessBinaryPipe.transform(t.value):t.value,null),{validators:e})}getError(t){const e=this.formGroup.get(t.name).errors;return Object.keys(e).map(n=>this.getErrorMessage(n,e[n],t.errors)).join("<br>")}getErrorMessage(t,e,n){if(n){const e=n[t];if(e)return e}return["binaryMin","binaryMax"].includes(t)?e(this.i18n):this.i18n("required"===t?"This field is required.":"An error occurred.")}onSubmitForm(t){this.fields.filter(t=>"binary"===t.type).map(t=>t.name).forEach(e=>{const n=t[e];n&&(t[e]=this.formatter.toBytes(n))}),this.bsModalRef.hide(),r.isFunction(this.onSubmit)&&this.onSubmit(t)}}},Rm1S:function(t,e,n){"use strict";var a=n("14Sl"),r=n("glrk"),o=n("UMSQ"),i=n("HYAF"),s=n("iqWW"),c=n("FMNM");a("match",1,(function(t,e,n){return[function(e){var n=i(this),a=null==e?void 0:e[t];return void 0!==a?a.call(e,n):new RegExp(e)[t](String(n))},function(t){var a=n(e,t,this);if(a.done)return a.value;var i=r(t),l=String(this);if(!i.global)return c(i,l);var d=i.unicode;i.lastIndex=0;for(var u,g=[],f=0;null!==(u=c(i,l));){var p=String(u[0]);g[f]=p,""===p&&(i.lastIndex=s(l,o(i.lastIndex),d)),f++}return 0===f?null:g}]}))},RnPR:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Keys=function(t){return t[t.up=38]="up",t[t.down=40]="down",t[t.return=13]="return",t[t.escape=27]="escape",t[t.left=37]="left",t[t.right=39]="right",t}(e.Keys||{})},RnhZ:function(t,e,n){var a={"./af":"K/tc","./af.js":"K/tc","./ar":"jnO4","./ar-dz":"o1bE","./ar-dz.js":"o1bE","./ar-kw":"Qj4J","./ar-kw.js":"Qj4J","./ar-ly":"HP3h","./ar-ly.js":"HP3h","./ar-ma":"CoRJ","./ar-ma.js":"CoRJ","./ar-sa":"gjCT","./ar-sa.js":"gjCT","./ar-tn":"bYM6","./ar-tn.js":"bYM6","./ar.js":"jnO4","./az":"SFxW","./az.js":"SFxW","./be":"H8ED","./be.js":"H8ED","./bg":"hKrs","./bg.js":"hKrs","./bm":"p/rL","./bm.js":"p/rL","./bn":"kEOa","./bn.js":"kEOa","./bo":"0mo+","./bo.js":"0mo+","./br":"aIdf","./br.js":"aIdf","./bs":"JVSJ","./bs.js":"JVSJ","./ca":"1xZ4","./ca.js":"1xZ4","./cs":"PA2r","./cs.js":"PA2r","./cv":"A+xa","./cv.js":"A+xa","./cy":"l5ep","./cy.js":"l5ep","./da":"DxQv","./da.js":"DxQv","./de":"tGlX","./de-at":"s+uk","./de-at.js":"s+uk","./de-ch":"u3GI","./de-ch.js":"u3GI","./de.js":"tGlX","./dv":"WYrj","./dv.js":"WYrj","./el":"jUeY","./el.js":"jUeY","./en-SG":"zavE","./en-SG.js":"zavE","./en-au":"Dmvi","./en-au.js":"Dmvi","./en-ca":"OIYi","./en-ca.js":"OIYi","./en-gb":"Oaa7","./en-gb.js":"Oaa7","./en-ie":"4dOw","./en-ie.js":"4dOw","./en-il":"czMo","./en-il.js":"czMo","./en-nz":"b1Dy","./en-nz.js":"b1Dy","./eo":"Zduo","./eo.js":"Zduo","./es":"iYuL","./es-do":"CjzT","./es-do.js":"CjzT","./es-us":"Vclq","./es-us.js":"Vclq","./es.js":"iYuL","./et":"7BjC","./et.js":"7BjC","./eu":"D/JM","./eu.js":"D/JM","./fa":"jfSC","./fa.js":"jfSC","./fi":"gekB","./fi.js":"gekB","./fo":"ByF4","./fo.js":"ByF4","./fr":"nyYc","./fr-ca":"2fjn","./fr-ca.js":"2fjn","./fr-ch":"Dkky","./fr-ch.js":"Dkky","./fr.js":"nyYc","./fy":"cRix","./fy.js":"cRix","./ga":"USCx","./ga.js":"USCx","./gd":"9rRi","./gd.js":"9rRi","./gl":"iEDd","./gl.js":"iEDd","./gom-latn":"DKr+","./gom-latn.js":"DKr+","./gu":"4MV3","./gu.js":"4MV3","./he":"x6pH","./he.js":"x6pH","./hi":"3E1r","./hi.js":"3E1r","./hr":"S6ln","./hr.js":"S6ln","./hu":"WxRl","./hu.js":"WxRl","./hy-am":"1rYy","./hy-am.js":"1rYy","./id":"UDhR","./id.js":"UDhR","./is":"BVg3","./is.js":"BVg3","./it":"bpih","./it-ch":"bxKX","./it-ch.js":"bxKX","./it.js":"bpih","./ja":"B55N","./ja.js":"B55N","./jv":"tUCv","./jv.js":"tUCv","./ka":"IBtZ","./ka.js":"IBtZ","./kk":"bXm7","./kk.js":"bXm7","./km":"6B0Y","./km.js":"6B0Y","./kn":"PpIw","./kn.js":"PpIw","./ko":"Ivi+","./ko.js":"Ivi+","./ku":"JCF/","./ku.js":"JCF/","./ky":"lgnt","./ky.js":"lgnt","./lb":"RAwQ","./lb.js":"RAwQ","./lo":"sp3z","./lo.js":"sp3z","./lt":"JvlW","./lt.js":"JvlW","./lv":"uXwI","./lv.js":"uXwI","./me":"KTz0","./me.js":"KTz0","./mi":"aIsn","./mi.js":"aIsn","./mk":"aQkU","./mk.js":"aQkU","./ml":"AvvY","./ml.js":"AvvY","./mn":"lYtQ","./mn.js":"lYtQ","./mr":"Ob0Z","./mr.js":"Ob0Z","./ms":"6+QB","./ms-my":"ZAMP","./ms-my.js":"ZAMP","./ms.js":"6+QB","./mt":"G0Uy","./mt.js":"G0Uy","./my":"honF","./my.js":"honF","./nb":"bOMt","./nb.js":"bOMt","./ne":"OjkT","./ne.js":"OjkT","./nl":"+s0g","./nl-be":"2ykv","./nl-be.js":"2ykv","./nl.js":"+s0g","./nn":"uEye","./nn.js":"uEye","./pa-in":"8/+R","./pa-in.js":"8/+R","./pl":"jVdC","./pl.js":"jVdC","./pt":"8mBD","./pt-br":"0tRk","./pt-br.js":"0tRk","./pt.js":"8mBD","./ro":"lyxo","./ro.js":"lyxo","./ru":"lXzo","./ru.js":"lXzo","./sd":"Z4QM","./sd.js":"Z4QM","./se":"//9w","./se.js":"//9w","./si":"7aV9","./si.js":"7aV9","./sk":"e+ae","./sk.js":"e+ae","./sl":"gVVK","./sl.js":"gVVK","./sq":"yPMs","./sq.js":"yPMs","./sr":"zx6S","./sr-cyrl":"E+lV","./sr-cyrl.js":"E+lV","./sr.js":"zx6S","./ss":"Ur1D","./ss.js":"Ur1D","./sv":"X709","./sv.js":"X709","./sw":"dNwA","./sw.js":"dNwA","./ta":"PeUW","./ta.js":"PeUW","./te":"XLvN","./te.js":"XLvN","./tet":"V2x9","./tet.js":"V2x9","./tg":"Oxv6","./tg.js":"Oxv6","./th":"EOgW","./th.js":"EOgW","./tl-ph":"Dzi0","./tl-ph.js":"Dzi0","./tlh":"z3Vd","./tlh.js":"z3Vd","./tr":"DoHr","./tr.js":"DoHr","./tzl":"z1FC","./tzl.js":"z1FC","./tzm":"wQk9","./tzm-latn":"tT3J","./tzm-latn.js":"tT3J","./tzm.js":"wQk9","./ug-cn":"YRex","./ug-cn.js":"YRex","./uk":"raLr","./uk.js":"raLr","./ur":"UpQW","./ur.js":"UpQW","./uz":"Loxo","./uz-latn":"AQ68","./uz-latn.js":"AQ68","./uz.js":"Loxo","./vi":"KSF8","./vi.js":"KSF8","./x-pseudo":"/X5v","./x-pseudo.js":"/X5v","./yo":"fzPg","./yo.js":"fzPg","./zh-cn":"XDpg","./zh-cn.js":"XDpg","./zh-hk":"SatO","./zh-hk.js":"SatO","./zh-tw":"kOpN","./zh-tw.js":"kOpN"};function r(t){var e=o(t);return n(e)}function o(t){if(!n.o(a,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return a[t]}r.keys=function(){return Object.keys(a)},r.resolve=o,t.exports=r,r.id="RnhZ"},S6ln:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=t+" ";switch(n){case"ss":return a+(1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi");case"m":return e?"jedna minuta":"jedne minute";case"mm":return a+(1===t?"minuta":2===t||3===t||4===t?"minute":"minuta");case"h":return e?"jedan sat":"jednog sata";case"hh":return a+(1===t?"sat":2===t||3===t||4===t?"sata":"sati");case"dd":return a+(1===t?"dan":"dana");case"MM":return a+(1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci");case"yy":return a+(1===t?"godina":2===t||3===t||4===t?"godine":"godina")}}t.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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čer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},S7Xf:function(t,e,n){var a=n("4uTw"),r=n("RBan"),o=n("gpbi"),i=n("9Nap");t.exports=function(t,e){return e=a(e,t),null==(t=o(t,e))||delete t[i(r(e))]}},S7zO:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("LvDl"),r=n("oxzT");n("vCyI"),n("jKX/");class o{constructor(){this.btnColor="secondary",this.dropDownActions=[],this.icons=r.a}ngOnInit(){this.removeActionsWithNoPermissions(),this.updateDropDownActions()}toClassName(t){return t.replace(/ /g,"-").replace(/[^a-z-]/gi,"").toLowerCase()}removeActionsWithNoPermissions(){if(!this.permission)return void(this.tableActions=[]);const t=Object.keys(this.permission).filter(t=>this.permission[t]);this.tableActions=this.tableActions.filter(e=>t.includes(e.permission))}updateDropDownActions(){this.dropDownActions=this.tableActions.filter(t=>t.visible?t.visible(this.selection):t)}getCurrentButton(){if(this.dropDownOnly)return;let t=this.dropDownActions.find(t=>this.showableAction(t));return!t&&this.dropDownActions.length>0&&(t=this.dropDownActions[0]),t}showableAction(t){const e=t.canBePrimary,n=this.selection.hasSingleSelection,a="create"===t.permission?!n:n;return e&&e(this.selection)||!e&&a}useRouterLink(t){if(t.routerLink&&!this.disableSelectionAction(t))return a.isString(t.routerLink)?t.routerLink:t.routerLink()}disableSelectionAction(t){const e=t.disable;if(e)return Boolean(e(this.selection));const n=t.permission,a=this.selection.hasSingleSelection&&this.selection.first();return Boolean(["update","delete"].includes(n)&&(!a||a.cdExecuting))}showDropDownActions(){return this.updateDropDownActions(),this.dropDownActions.length>1}useClickAction(t){return!this.disableSelectionAction(t)&&t.click&&t.click()}useDisableDesc(t){return t.disableDesc&&t.disableDesc()}}},"SB+Q":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return encodeURIComponent(t)}}},SFxW:function(t,e,n){!function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};t.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əsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".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ün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(t){return/^(gündüz|axşam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gecə":t<12?"səhər":t<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(t){if(0===t)return t+"-ıncı";var n=t%10;return t+(e[n]||e[t%100-n]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},SKAX:function(t,e,n){var a=n("JC6p"),r=n("lQqw")(a);t.exports=r},SPu7:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="pl-PL">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Rozwiń</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Pulpit</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klaster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosty</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitory</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Usługi</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD-ki</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfiguracja</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH mapa</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Zarządca modułów</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Logi</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pule</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Dostęp blokowy</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Obrazy</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Kopia lustrzana</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>Sieciowy system plików NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Systemy plików</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Dostęp obiektowy</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Demony</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Wiadra</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Wybierz język</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Trwa ładowanie danych...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Wybór czasu Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Zresetuj ustawienia</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Wstecz</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Błąd wczytywania danych.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>Wybrane</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>Znaleziono</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>Razem</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nazwa</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Opis</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Długi opis</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Domyślna</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Domyślny demon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Wartości</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Zapisz</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>widok CRUSH mapy</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Ładowanie...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nazwa hosta</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Pole jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Tak, jestem pewny.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Anuluj</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Zamknij</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista hostów</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Całkowita wydajność</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nie znaleziono wejść</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Logi z klastra </target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Audyt logów</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Ładowanie konfiguracji.</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Nie można załadować konfiguracji</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Edytuj moduł zarządzania</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Wpisana wartość nie jest poprawnym UUID, np. 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Wpisana wartość musi być poprawnym adresem IP</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Podana wartość musi być liczbą</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Podana wartość musi być liczbą albo dziesiętną.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Zaktualizuj</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Klaster ID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Zmodyfikowana monmapa</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>epoka monmap</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kworum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kworum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>wymagany con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>Wymagane mon </target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>W kworum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Nie w kworum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Dodaj</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funkcje</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flagi OSD w całym klastrze</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Zatwierdź</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Zaawansowane...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorytet odzyskiwania OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorytet</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Dostosuj wartości priorytetowe</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>To pole jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Wartość powinna być pomiędzy 0 a 1. </target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ponowne ważenie</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, wybierz, 1 {Głębokość} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, wybierz, 1 {głębokość} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista OSD-ków </target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Wartość</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Edytuj</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Usuń</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Zdrowie</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statystyki</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klienci</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Każdy klient ma dostęp</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresy</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Obowiązkowe pole</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Musi zawierać jedną albo więcej ,rozdzielonych przecinkiem, wartości </target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Na przykład: </target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Typ dostępu</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Dodaj klientów </target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Brak dostępnego klastra -- </target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Wybierz klaster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Dodaj demona</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Pamięć Podręczna</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Brak danych puli -- </target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Wybierz pamięć podręczną -- </target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Użytkownik dostępu obiektowego</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Brak dostępnych użytkowników -- </target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Wybierz użytkownika dostępu obiektowego -- </target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFS Użytkownik ID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Brak dostępnych klientów -- </target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Wybierz klienta cephx -- </target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nazwa CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etykieta bezpieczeństwa</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Uruchom etykietę bezpieczeństwa</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Ścieżka CephFS </target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Ścieżka powinna zaczynać się z \'/\' i następne może być słowo</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Nowy katalog będzie stworzony. </target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Ścieżka</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Ścieżką może być tylko \'/\' albo słowo</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Nowe wiadro będzie stworzone </target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protokół NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klient może nie montować podkatalogów ( np. jeśli Tag = foo, klient może nie montować foo/baz) </target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Używając różnych opcji Tagu, ta sama Ścieżka może być wyeksportowana kilka razy.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Używając różnych opcji Pseudo, ta sama Ścieżka może być wyeksportowana kilka razy.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Brak dostępnych typów dostępu --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Wybierz typ dostępu --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>- Brak squasha -</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Wybierz, jakiego rodzaju identyfikacja użytkownika ma być przeprowadzana --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protokół Transportu </target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Witamy w Cephie! </target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nazwa użytkownika jest wymagana</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Hasło jest wymagane.</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Zaloguj</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Przepraszam, użytkownik nie istnieje w  Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Zakazany</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Przepraszam, nie masz dostępu do tego czego szukasz. </target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Konfiguracja RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Usuń wartość konfiguracji lokalnej. Wartość konfiguracji rodzica będzie odziedziczona i zostanie użyta zamiast tej.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Minimalna wartość wynosi 0.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista puli</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Nazwa może składać się z alfanumerycznych znaków, kresek i podkreśleń.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Wybrana nazwa profilu kodu kasowania jest już używana.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Wtyczka</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Ramka danych (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Musi być większa bądź równa 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Kodowanie kawałka (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Musi być większa bądź równa 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estymator trwałości (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Lokalność  (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domena niepowodzenia Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalność Crusha</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Nic</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technika</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Rozmiar pakietu</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>korzeń Crusha</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>urządzenie klasy Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>którykolwiek</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Katalog</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nazwa...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Wybrana nazwa Ceph pula jest już użyta.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Typ pula</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Wybierz typ pula --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupa umieszczenia</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Przynajmniej jedna grupa umieszczenia jest wymagana</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Twój klaster nie obsługuje tylu PG. Skalkuluj proszę potrzebną ilość PG.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Pomoc obliczeniowa</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Replikowany rozmiar</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flagi</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC Nadpisuje</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Zastosowania</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Skasuj profil kodu.</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Brak profilu kasowania --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Wybierz profil kodu wymazywania --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>zbiór zasad Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Wybierz zasadę Crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>zasada Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Kroki Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Kompresja</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Tryb</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorytm</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Brak algorytmu kompresji wymazywania --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>np. 128 KB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Wartość powinna być większa niż 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Maksymalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>np. 512 KB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Wartość powinna być większa niż minimalny rozmiar blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Stosunek</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Skompresowany stosunek</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Wartość powinna być pomiędzy 0.0, a 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>np. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Szczegóły</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Szczegóły wydajności</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Szczegóły poziomów pamięci podręcznej</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Przenieś obraz do kosza</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Zabezpieczenie wygasa w </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NIEZABEZPIECZONY </target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Zły format daty. Proszę używać "RRRR-MM-DD GG:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Ochrona już wygasła. Proszę wybrać przyszłą datę lub zostawić pustą.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Przenieś obraz</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Przegląd</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Obiekty docelowe</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Uwierzytelnianie wykrywania</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Użytkownik</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nazwy użytkowników muszą mieć długość od 8 do 64 znaków i \nmogą zawierać jedynie litery, \'.\', \'@\', \'-\', \'_\' lub \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Hasło</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Wspólny użytkownik </target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Wspólne hasło</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Dostępne informacje: </target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>obiekty docelowe iSCSI niedostępne </target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pul</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Dane pula</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Utworzony</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Rozmiar</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Obiekty</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Rozmiar obiektu</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Zaopatrzony</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>Niedostępny</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Całkowite rezerwy</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Jednostka maskowana</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Licznik maskowania</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Rodzic</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefiks nazwy bloku</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Zamówienie</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Migawki</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Obraz</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>To ustawienie zastępuję wartość globalną.</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globalne</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>To jest globalna wartość. Dla tego obrazu nie ustawiono żadnej wartości dla tej opcji.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' and \'@\' nie są dozwolone.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Brak dostępnych rbd puli --  </target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Wybierz pul --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Użyj dedykowanych danych pul </target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Dane pul</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Dedykowany pul, który przechowuje dane obiektowe z RBD</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Musisz zwiększyć rozmiar.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Zaawansowane</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Maskowanie</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Jednostka pasków</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Wybierz jednostkę pasków -- </target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Pole jest wymagane, ponieważ licznik pasków jest zdefiniowany. </target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Jednostka pasków jest większa niż rozmiar obiektu.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Licznik pasków </target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Pole jest wymagane, ponieważ jednostka pasków jest zdefiniowana! </target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Licznik pasków musi być większy od 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Zaraz się wycofasz. </target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Usuń Śmieci</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Wszystkie</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pul:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nazwa pula</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Przywróć obraz</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Przywróć</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>Wpisz nazwe nowego obrazu i kliknij. </target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nowa Nazwa</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Wygasły w</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Zabezpieczony do</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologia iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Zmiana tych parametrów z domyślnych wartości przeważnie nie jest potrzebna.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Ustawienia</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Tylny koniec przechowywania</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Potwierdź</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Ustawienia zaawansowane</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Nazwa IQN obiektu docelowego iSCSI</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Błędna składnia nazwy IQN.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Na przykład: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Więcej informacji</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Ten obiekt docelowy  zmodyfikował zaawansowane ustawienia.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portale</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Dodaj portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Ten obraz zmodyfikował ustawienia. </target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Dodaj obraz.</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Uwierzytelnianie ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Inicjatory iSCSI</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Inicjator iSCSI</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Klient IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Inicjator IQN powinien być unikalny.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nazwy użytkowników muszą mieć długość od 8 do 64 znaków i mogą zawierać jedynie litery,  \'.\', \'@\', \'-\', \'_\' lub  \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Inicjator iSCSI należą do grupy. Obrazy będą skonfigurowane w grupie. </target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Brak dodanych pozycji.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Dodaj inicjator iSCSI</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupy</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupa</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Dodaj grupę</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Kosz</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Zagadnienia</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronizacja</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Gotowy</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Tryb edycji lustrzanego pula</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Sparowany klaster musi być usunięty  przed wyłączeniem lustra. </target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, wybierz, edytuj{Edytuj} inaczej {Dodaj} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nazwa Klastra</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Nazwa klastra jest niepoprawna </target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>ID CephX nie jest poprawne.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adres monitora </target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Adresy rozdzielane przecinkami... </target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Adres monitora nie jest poprawny.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Klucz CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Klucz zakodowany w Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Klucz CephX musi być zakodowany w Base64/</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Liczniki wydajności nie są dostępne</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista demonów</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Liczniki wydajności</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Ładowanie wiadra danych</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Number ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Wartość nie jest poprawna.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Wybrana nazwa już jest użyta.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Właściciel</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Wybierz użytkownika -- </target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Uaktywniony</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Typ indeksu</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Zasada umieszczania</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Znacznik</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Maksymalny znacznik</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Wersja</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Główna wersja</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Czas modyfikacji</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Strefa </target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>kontyngent wiadra</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Maksymalny rozmiar</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Nielimitowany</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Maksimum obiektów</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nazwa użytkownika</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Wybierz nazwę użytkownika -- </target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Auto-generowany klucz</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Klucz dostępu</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Tajny klucz </target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Pełne imię </target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Adres email</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Zawieszony</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>System</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Maksimum wiader</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>pod-użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Zdolności</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Limit użytkownika</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Pokaż</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Klucze</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- wybierz typ --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Pozwolenie </target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Wybierz pozwolenie --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>pod-użytkownik</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Wybrane ID pod-użytkownika jest już użyte.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>odczyt, zapis</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>pełny</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Szybki klucz</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Auto-generowany sekret</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Ładowanie danych użytkownika...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Nie można załadować danych użytkownika.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Wybrane ID użytkownika jest już użyte.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ten adres email nie jest poprawny.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Wybrany adres email jest już użyty.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Max. wiader </target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Wyłączony</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Zwyczaj</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>klucz S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Nie ma pod-użytkowników.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3 (prosty serwis przechowywania) </target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Nie ma kluczy.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Szybki</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Nie ma zdolności. </target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Nielimitowany rozmiar</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Max. rozmiar</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Nielimitowane obiekty</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Max. obiektów</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Podana wartość musi być &gt;= 0</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Opis...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Pozwolenia</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Role</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Potwierdź hasło</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Potwierdzające hasło nie pokrywa się z hasłem.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Email</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Niepoprawny email.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Zamierzasz usunąć uprawnienia „odczytu / aktualizacji użytkownika” od własnego użytkownika.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Jeśli kontynuujesz, nie będziesz mógł dodawać albo usuwać role od użytkowników.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Jesteś pewny, że chcesz kontynuować? </target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Pomoc</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentacja</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>Interfejs API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>O</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Ustawienia Pulpitu</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Zarządzanie użytkownikami</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Zalogowany użytkownik</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Wyloguj</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atrybuty (mapa OSD-ków)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Niedostępne metadane</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadane</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Licznik wydajności</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Pisze</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Czyta</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Obecne wartości </target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Źródło </target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Poziom</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Może być aktualizowany w czasie wykonywania (edytowalny)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tagi</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Wartości enumerowane </target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Zobacz także </target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status klastra</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Zarządzanie demonami</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Obiekty bram </target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Serwery metadanych</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Bramy iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>Klient IOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Przepustowość klienta</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Odczyt/Zapis klienta</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Przepustowość odzyskiwania</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Szoruj</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Wydajność</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Pojemność rzędu</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PG-y na OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Pojemność</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Szeregi</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Obecny</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Zaktualizowane uwierzytelnianie wykrywania</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Brak dostępnych portali.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Nie ma dostępnych obrazów. </target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Nie ma dostępnych obrazów. Proszę się upewnić, że dodajesz obraz do obiektu docelowego. </target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Nie ma dostępnych inicjatorów iSCSI. Proszę upewnić się, że dodajesz inicjator iSCSI do obiektu docelowego.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>obiekt docelowy iSCSI</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stan</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Odczyt bajtów </target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Zapis bajtów</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Odczyt Ops</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Zapis Ops</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Od</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instancja</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Zagadnienie </target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Progres</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Tryb Edycji</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Dodaj parowanie </target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Edytuj parowanie</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Usuń parowanie</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Lider</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Lokalny</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Zdalny</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>lustrzane parowanie</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Klucz</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Głębokie spłaszczenie</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Warstwowanie </target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Wyłączna blokada</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa obiektów (wymaga wyłącznej blokady)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Kronikowanie  (wymaga wyłącznej blokady)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NIEZABEZPIECZONY </target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Wycofywanie migawek RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Wycofanie</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>migawka RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Usunięty o </target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stan</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>wersja</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>administrator</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Czuwanie demona </target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Ranga</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Demon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktywność</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>centrale</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>i-węzły</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Użycie</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Zaktualizowany</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Wartość może być zaktualizowana w czasie wykonywania . </target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Demony/klienci nie pobierają tej wartości z\nbazy danych skonfigurowanego monitora. Nie zezwalamy na ustawienie tej opcji przez \'konfiguracje ceph\nustaw.. \'. Ta opcja powinna być skonfigurowana przez ceph.conf albo przez\nterminal.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Opcja działa tylko podczas startu demona.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Opcja dotyczy tylko tworzenia klastra.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Opcja tylko wpływa na tworzenie demona.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Usługa</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Obecna wartość</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Edytowalny</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Włączyć</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Wyłączyć</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Ponowne łączenie, proszę czekać</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Adres publiczny</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Otwarte sesje</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Nie w </target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD-ki, które zostały oznaczone jako poza, nie będą oznaczone ponownie jako w gdy zostaną uruchomion</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Nie poza</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD-ki nie będą automatycznie oznaczone jako poza po konfiguracji interwału</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Nie powstały </target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD-ki nie mogą startować</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Nie upadły</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Raport z niepowodzenia OSD jest ignorowany, także monitory nie oznaczą OSD jako upadłego. </target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pauza </target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pauzuje czytanie i zapisywanie</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nie szoruj</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Szorowanie jest wyłączone</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nie ma głębokiego szorowania</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Głębokie szorowanie jest wyłączone</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Brak zasypywania</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Zasypywanie PG jest zawieszone</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Nie przywrócono</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Przywrócenie PGy jest zawieszone </target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Sortuj bitowo</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Użyj sortowania bitowego</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Usuń snap katalogi</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD-ki zmieniły snapsety</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Odzyskaj usunięte</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Podczas zdrowienia zastosowano usunięcie zamiast parowania</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Twardy limit logów PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Ustawia twardy limit na długość logów PG</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Zaktualizowane flagi OSD-ków</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD-ik</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>poza</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>w</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>upadły</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Zaznacz</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>Stracony OSD</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>Zaznaczony jako stracony</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Czyść</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>Oczyszczony</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>Zniszcz</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>Zniszczony</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>Usuń</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG-y</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Czytanie bajtów</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Zapis bajtów </target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Czytanie ops</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Zapis ops</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max zasypywanie</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Max aktywność wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Max pojedynczy start wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Uśpienie wyzdrowienia</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Praca</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>surowość</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Wystartowany</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Użyty</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dostępny</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Czyść</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Działający</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Ostrzeżenie </target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Nieznany</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>Podniesiony</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>brak systemów plików</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktywny</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>Rezerwa</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>niedostępny</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktywny demon</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kworum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Usługa NFS Ganesha nie jest skonfigurowana</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Użytkownik CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>system plików CephFS </target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(Odziedziczyło z globalnej konfiguracji)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>Odziedziczyło z globalnej konfiguracji</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Wybierz, jakiego rodzaju identyfikacja użytkownika ma być przeprowadzana -- </target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Brak dostępnym demonów</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Tryb pamięci podręcznej</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min wiek eksmisji</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min wiek wyrównania </target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Max bajtów obiektu docelowego </target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Max obiektów docelowych</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nie dodano żadnego zastosowania</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Osiągnięto limit zastosowań </target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Pul może mieć maksymalnie 4 definicje aplikacji. </target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Dozwolone znaki \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Maksymalna długość wynosi 128 znaków</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtruj lub dodaj zastosowanie</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Dodaj zastosowanie</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>skasuj profil kodu</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Rozmiar repliki</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Ostatnia zmiana</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Skasuj profil zakodowany</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Zbiór zasad Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>wiadro</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>Wiadra</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>użytkownik</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>użytkownicy</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Zakres</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Czytaj</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Stwórz</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>System roli </target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Zaktualizuj użytkownika</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Kontynuuj </target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Zostałeś automatycznie wylogowany, ponieważ zostały zmienione twoje role.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Każdy obiekt jest podzielony na części fragmentów danych, każdy jest przechowywany na innym OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Oblicz porcje kodu dla każdego obiektu i przechowuj je na różnych OSD.\n Liczba fragmentów kodujących to również liczba OSD, które mogą zostać wyłączone bez utraty danych.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Wtyczka jerasure jest najbardziej uniwersalną i elastyczną wtyczką,\n jest to również domyślne ustawienie dla pui kodowanych przez Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Bardziej elastyczną techniką jest reed_sol_van: wystarczy ustawić k\n oraz m. Technika cauchy_good może być szybsza, ale musisz wybrać rozmiar pakietu\n ostrożnie. Wszystkie reed_sol_r6_op, liberation, blaum_roth, liber8tion są odpowiednikami RAID6\n w tym sensie, że mogą być skonfigurowane tylko z m = 2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Kodowanie będzie wykonywane na pakietach o rozmiarze bajtów naraz.\n Wybór odpowiedniego rozmiaru pakietu jest trudny.\n Dokumentacja jerasure zawiera obszerne informacje na ten temat.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Z wtyczką jerasure, gdy obiekt zakodowany przy użyciu skasowania jest przechowywany na \n wielu OSD-kach, odzyskiwanie po utracie jednego OSD wymaga odczytu ze wszystkich pozostałych.\n Na przykład, jeśli konfiguracja skryptu ma wartość k = 8 ,m = 4 i l=4, utrata jednego OSD wymaga odczytu\n od jedenastu innych do naprawy.\n\n Wtyczka kodu wymazywania lrc tworzy fragmenty o parzystości lokalnej, aby móc je odzyskać\n mniej OSD. Na przykład, jeśli lrc jest skonfigurowane z k = 8, m = 4 i l = 4, zostanie utworzony\n dodatkowy fragment parzystości na każde cztery OSD. Gdy jeden OSD zostanie utracone, może to być\n odzyskane tylko z czterema OSD zamiast jedenastu.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Grupuj fragmenty kodu i danych w zestawy lokalizacji wielkości. Na przykład,\n dla k = 4 i m = 2, gdy lokalność = 3 tworzone są dwie grupy po trzy. Każdy zestaw może\n odzyskać bez czytania kawałków z innego zestawu.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Typ wiadra CRUSH, w którym zdefiniowano każdy zestaw porcji\n przez l zostaną zapisane. Na przykład, jeśli jest ustawiony na rack, każda grupa l porcji będzie\n umieszczona w innym raku. Służy do utworzenia kroku reguły CRUSH, takiego jak krok wyboru\n racka. Jeśli nie jest ustawiony, nie ma takiego grupowania.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Wtyczka isa zawiera bibliotekę ISA. Działa tylko na procesorach Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Wtyczka ISA jest dostępna w dwóch formach Reed Solomon.\n Jeśli ustawiono reed_sol_van, jest to Vandermonde, jeśli ustawiono cauchy, to jest to Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Wtyczka shec zawiera wiele bibliotek SHEC.\n Pozwala ceph odzyskać dane bardziej efektywnie niż kody Reeda Solomona.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Liczba kawałków parzystości, z których każdy zawiera każdą porcję danych w swoim zakresie obliczeń. Liczba jest używana jako estymator trwałości. Na przykład, jeśli c = 2,\n 2 OSD można wyłączyć bez utraty danych.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nazwa wiadra crush jest użyte do pierwszego kroku reguły CRUSH.\nNa przykład krok jest domyślny.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Upewnij się, że żadne dwie porcje nie znajdują się w wiadrze z tą samą awarią\n domeny. Na przykład, jeśli domena awarii jest hostem, nie zostaną na niej zapisane dwie porcje\n hosta. Służy do utworzenia kroku reguły CRUSH, takiego jak krok wyboru hosta.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Ogranicz umieszczanie do urządzeń określonej klasy\n (np. ssd lub hdd), używając nazw klas urządzeń zgniatających na mapie CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Ustaw nazwę katalogu, z którego ładowana jest wtyczka kodu kasowania.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Dozwolone są wszystkie operacje</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Dozwolone są operacje, które nie modyfikują serweru</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Operacje odczytu i zapisu są zakazane, wszystkie inne dozwolone</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Operacje odczytu i zapisu, oraz wszystkie operacje modyfikujące atrybuty albo katalogi są zakazane </target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Brak dostępu w ogóle</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- wybierz priorytet -- </target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Niski</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Wysoki</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informacja</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Ostatnie 5 minut</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Ostatnie 15 minut</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Ostatnie 30 minut</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Ostatnia 1 godzina (domyślnie)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Ostatnie 3 godziny</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Ostatnie 6 godzin</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Ostatnie 12 godzin</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Ostatnie 24 godziny</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Wczoraj</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Dzisiaj</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Do tej pory dzisiaj</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Przedwczoraj</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Ostatnie 2 dni</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Tego dnia tydzień temu</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Poprzedni tydzień</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Ten tydzień </target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Do tej pory w tym tygodniu</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Ostatnie 7 dni</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Poprzedniego miesiąca</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>ten miesiąc</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Do tej pory w tym miesiącu</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Ostatnie 30 dni</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Ostatnie 90 dni</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Ostatnie 6 miesięcy</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Ostatni 1 rok</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Poprzedniego roku</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Bieżącego roku</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Do tej pory bieżącego roku</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Ostatnie 2 lata</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Ostatnie 5 lat</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nie wybrano żadnej pozycji</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Odznacz pozycję, żeby wybrać ponownie</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Osiągnięto limit wyboru. </target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtr tagów.</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Dodaj odznakę</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Brak dostępnych pozycji.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Sklonuj</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopia</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Szoruj głęboko</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Zniszcz</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Spłaszcz</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>zaznacz jako upadły</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Zaznacz jako w </target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Zaznacz jako stracony</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Zaznacz jako poza</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Zabezpiecz</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Zmień nazwę</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Przywróć</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Przenieś do kosza</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Odbezpiecz </target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Usunięty</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Sklonowano</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Skopiowano </target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Spłaszczony</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Oczyszczony</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Przywrócony</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Wycofaj</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Tak</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Nie</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Jakość serwisu</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Pożądany limit IO bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Pożądany limit operacji IO na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>limit odczytu BPS</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Pożądany limit odczytu bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>limit  odczytu IOPS</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Pożądany limit operacji odczytu na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit zapisu BPS</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Pożądany limit zapisu bajtów na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit zapisu IOPS</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Pożądany limit operacji zapisu na sekundę.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Wiązka BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Żądana granica serii IO bajtów.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Wiązka IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Żądana granica serii operacji IO.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Odczyt wiązki BPS</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Żądana granica serii odczytanych bajtów.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Odczyt wiązki IOPS</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target> Żądana granica serii operacji odczytu.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Zapis wiązki BPS</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Żądana granica serii bajtów zapisu.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Zapis wiązki IOPS</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Żądana granica serii operacji zapisu.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Wykonywanie </target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>Wykonaj</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Wykonany</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>Nieznane zadanie</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Tworzenie</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>Utwórz</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aktualizowanie </target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>Zaktualizuj</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Usuwanie</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Klonowanie</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>Sklonuj </target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Kopiowanie </target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>Kopiuj</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Spłaszczanie</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>Spłaszcz</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Wycofywanie </target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>Wycofanie</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Przenoszenie</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>Przenieś</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Przeniesiono</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Nie znaleziono obrazu.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Przywracanie</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>Przywróć </target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>oczyszczać</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>oczyść</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>Wszystkie pule</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Nie można wyłączyć lustrzenia ponieważ zawiera parowanie.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},STAE:function(t,e,n){var a=n("0Dky");t.exports=!!Object.getOwnPropertySymbols&&!a((function(){return!String(Symbol())}))},SVse:function(t,e,n){"use strict";n.r(e),n.d(e,"ɵangular_packages_common_common_c",(function(){return ae})),n.d(e,"ɵangular_packages_common_common_h",(function(){return It})),n.d(e,"ɵangular_packages_common_common_g",(function(){return St})),n.d(e,"ɵangular_packages_common_common_f",(function(){return Tt})),n.d(e,"ɵangular_packages_common_common_k",(function(){return Xt})),n.d(e,"ɵangular_packages_common_common_j",(function(){return Zt})),n.d(e,"ɵangular_packages_common_common_i",(function(){return $t})),n.d(e,"ɵangular_packages_common_common_a",(function(){return gt})),n.d(e,"ɵangular_packages_common_common_b",(function(){return ht})),n.d(e,"ɵangular_packages_common_common_e",(function(){return xe})),n.d(e,"ɵangular_packages_common_common_d",(function(){return Ke})),n.d(e,"ɵregisterLocaleData",(function(){return bt})),n.d(e,"registerLocaleData",(function(){return bt})),n.d(e,"formatDate",(function(){return K})),n.d(e,"formatCurrency",(function(){return st})),n.d(e,"formatNumber",(function(){return lt})),n.d(e,"formatPercent",(function(){return ct})),n.d(e,"NgLocaleLocalization",(function(){return mt})),n.d(e,"NgLocalization",(function(){return ft})),n.d(e,"Plural",(function(){return p})),n.d(e,"NumberFormatStyle",(function(){return f})),n.d(e,"FormStyle",(function(){return m})),n.d(e,"TranslationWidth",(function(){return h})),n.d(e,"FormatWidth",(function(){return b})),n.d(e,"NumberSymbol",(function(){return y})),n.d(e,"WeekDay",(function(){return _})),n.d(e,"getNumberOfCurrencyDigits",(function(){return G})),n.d(e,"getCurrencySymbol",(function(){return z})),n.d(e,"getLocaleDayPeriods",(function(){return v})),n.d(e,"getLocaleDayNames",(function(){return C})),n.d(e,"getLocaleMonthNames",(function(){return P})),n.d(e,"getLocaleId",(function(){return O})),n.d(e,"getLocaleEraNames",(function(){return M})),n.d(e,"getLocaleWeekEndRange",(function(){return w})),n.d(e,"getLocaleFirstDayOfWeek",(function(){return x})),n.d(e,"getLocaleDateFormat",(function(){return T})),n.d(e,"getLocaleDateTimeFormat",(function(){return k})),n.d(e,"getLocaleExtraDayPeriodRules",(function(){return L})),n.d(e,"getLocaleExtraDayPeriods",(function(){return q})),n.d(e,"getLocalePluralCase",(function(){return E})),n.d(e,"getLocaleTimeFormat",(function(){return S})),n.d(e,"getLocaleNumberSymbol",(function(){return I})),n.d(e,"getLocaleNumberFormat",(function(){return N})),n.d(e,"getLocaleCurrencyName",(function(){return A})),n.d(e,"getLocaleCurrencySymbol",(function(){return R})),n.d(e,"ɵparseCookieValue",(function(){return yt})),n.d(e,"CommonModule",(function(){return $e})),n.d(e,"DeprecatedI18NPipesModule",(function(){return Ze})),n.d(e,"NgClass",(function(){return At})),n.d(e,"NgClassBase",(function(){return Rt})),n.d(e,"NgForOf",(function(){return Lt})),n.d(e,"NgForOfContext",(function(){return Dt})),n.d(e,"NgIf",(function(){return jt})),n.d(e,"NgIfContext",(function(){return Ft})),n.d(e,"NgPlural",(function(){return Ht})),n.d(e,"NgPluralCase",(function(){return Ut})),n.d(e,"NgStyle",(function(){return ee})),n.d(e,"NgStyleBase",(function(){return te})),n.d(e,"NgSwitch",(function(){return Bt})),n.d(e,"NgSwitchCase",(function(){return Vt})),n.d(e,"NgSwitchDefault",(function(){return Yt})),n.d(e,"NgTemplateOutlet",(function(){return ne})),n.d(e,"NgComponentOutlet",(function(){return Et})),n.d(e,"DOCUMENT",(function(){return Je})),n.d(e,"AsyncPipe",(function(){return Ie})),n.d(e,"DatePipe",(function(){return De})),n.d(e,"I18nPluralPipe",(function(){return qe})),n.d(e,"I18nSelectPipe",(function(){return je})),n.d(e,"JsonPipe",(function(){return Fe})),n.d(e,"LowerCasePipe",(function(){return Ne})),n.d(e,"CurrencyPipe",(function(){return Ye})),n.d(e,"DecimalPipe",(function(){return Be})),n.d(e,"PercentPipe",(function(){return Ve})),n.d(e,"SlicePipe",(function(){return We})),n.d(e,"UpperCasePipe",(function(){return Ee})),n.d(e,"TitleCasePipe",(function(){return Ae})),n.d(e,"KeyValuePipe",(function(){return ze})),n.d(e,"DeprecatedDatePipe",(function(){return _e})),n.d(e,"DeprecatedCurrencyPipe",(function(){return Me})),n.d(e,"DeprecatedDecimalPipe",(function(){return Ce})),n.d(e,"DeprecatedPercentPipe",(function(){return Pe})),n.d(e,"ɵPLATFORM_BROWSER_ID",(function(){return Xe})),n.d(e,"ɵPLATFORM_SERVER_ID",(function(){return Qe})),n.d(e,"ɵPLATFORM_WORKER_APP_ID",(function(){return tn})),n.d(e,"ɵPLATFORM_WORKER_UI_ID",(function(){return en})),n.d(e,"isPlatformBrowser",(function(){return nn})),n.d(e,"isPlatformServer",(function(){return an})),n.d(e,"isPlatformWorkerApp",(function(){return rn})),n.d(e,"isPlatformWorkerUi",(function(){return on})),n.d(e,"VERSION",(function(){return sn})),n.d(e,"ViewportScroller",(function(){return cn})),n.d(e,"ɵNullViewportScroller",(function(){return dn})),n.d(e,"ɵNgClassImplProvider__POST_R3__",(function(){return kt})),n.d(e,"ɵNgClassR2Impl",(function(){return wt})),n.d(e,"ɵNgClassImpl",(function(){return xt})),n.d(e,"ɵNgStyleImplProvider__POST_R3__",(function(){return Jt})),n.d(e,"ɵNgStyleR2Impl",(function(){return Kt})),n.d(e,"ɵNgStyleImpl",(function(){return Wt})),n.d(e,"ɵngStyleDirectiveDef__POST_R3__",(function(){return Qt})),n.d(e,"ɵngClassDirectiveDef__POST_R3__",(function(){return Nt})),n.d(e,"PlatformLocation",(function(){return r})),n.d(e,"LOCATION_INITIALIZED",(function(){return o})),n.d(e,"LocationStrategy",(function(){return i})),n.d(e,"APP_BASE_HREF",(function(){return s})),n.d(e,"HashLocationStrategy",(function(){return d})),n.d(e,"PathLocationStrategy",(function(){return u})),n.d(e,"Location",(function(){return c}));var a=n("8Y7J");class r{}const o=new a.InjectionToken("Location Initialized");class i{}const s=new a.InjectionToken("appBaseHref");class c{constructor(t,e){this._subject=new a.EventEmitter,this._urlChangeListeners=[],this._platformStrategy=t;const n=this._platformStrategy.getBaseHref();this._platformLocation=e,this._baseHref=c.stripTrailingSlash(l(n)),this._platformStrategy.onPopState(t=>{this._subject.emit({url:this.path(!0),pop:!0,state:t.state,type:t.type})})}path(t=!1){return this.normalize(this._platformStrategy.path(t))}getState(){return this._platformLocation.getState()}isCurrentPathEqualTo(t,e=""){return this.path()==this.normalize(t+c.normalizeQueryParams(e))}normalize(t){return c.stripTrailingSlash(function(t,e){return t&&e.startsWith(t)?e.substring(t.length):e}(this._baseHref,l(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._platformStrategy.prepareExternalUrl(t)}go(t,e="",n=null){this._platformStrategy.pushState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+c.normalizeQueryParams(e)),n)}replaceState(t,e="",n=null){this._platformStrategy.replaceState(n,"",t,e),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+c.normalizeQueryParams(e)),n)}forward(){this._platformStrategy.forward()}back(){this._platformStrategy.back()}onUrlChange(t){this._urlChangeListeners.push(t),this.subscribe(t=>{this._notifyUrlChangeListeners(t.url,t.state)})}_notifyUrlChangeListeners(t="",e){this._urlChangeListeners.forEach(n=>n(t,e))}subscribe(t,e,n){return this._subject.subscribe({next:t,error:e,complete:n})}static normalizeQueryParams(t){return t&&"?"!==t[0]?"?"+t:t}static joinWithSlash(t,e){if(0==t.length)return e;if(0==e.length)return t;let n=0;return t.endsWith("/")&&n++,e.startsWith("/")&&n++,2==n?t+e.substring(1):1==n?t+e:t+"/"+e}static stripTrailingSlash(t){const e=t.match(/#|\?|$/),n=e&&e.index||t.length;return t.slice(0,n-("/"===t[n-1]?1:0))+t.slice(n)}}function l(t){return t.replace(/\/index.html$/,"")}class d extends i{constructor(t,e){super(),this._platformLocation=t,this._baseHref="",null!=e&&(this._baseHref=e)}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}path(t=!1){let e=this._platformLocation.hash;return null==e&&(e="#"),e.length>0?e.substring(1):e}prepareExternalUrl(t){const e=c.joinWithSlash(this._baseHref,t);return e.length>0?"#"+e:e}pushState(t,e,n,a){let r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.pushState(t,e,r)}replaceState(t,e,n,a){let r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));0==r.length&&(r=this._platformLocation.pathname),this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}class u extends i{constructor(t,e){if(super(),this._platformLocation=t,null==e&&(e=this._platformLocation.getBaseHrefFromDOM()),null==e)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=e}onPopState(t){this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t)}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return c.joinWithSlash(this._baseHref,t)}path(t=!1){const e=this._platformLocation.pathname+c.normalizeQueryParams(this._platformLocation.search),n=this._platformLocation.hash;return n&&t?`${e}${n}`:e}pushState(t,e,n,a){const r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.pushState(t,e,r)}replaceState(t,e,n,a){const r=this.prepareExternalUrl(n+c.normalizeQueryParams(a));this._platformLocation.replaceState(t,e,r)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}}const g={ADP:[void 0,void 0,0],AFN:[void 0,void 0,0],ALL:[void 0,void 0,0],AMD:[void 0,void 0,0],AOA:[void 0,"Kz"],ARS:[void 0,"$"],AUD:["A$","$"],BAM:[void 0,"KM"],BBD:[void 0,"$"],BDT:[void 0,"৳"],BHD:[void 0,void 0,3],BIF:[void 0,void 0,0],BMD:[void 0,"$"],BND:[void 0,"$"],BOB:[void 0,"Bs"],BRL:["R$"],BSD:[void 0,"$"],BWP:[void 0,"P"],BYN:[void 0,"р.",2],BYR:[void 0,void 0,0],BZD:[void 0,"$"],CAD:["CA$","$",2],CHF:[void 0,void 0,2],CLF:[void 0,void 0,4],CLP:[void 0,"$",0],CNY:["CN¥","¥"],COP:[void 0,"$",0],CRC:[void 0,"₡",2],CUC:[void 0,"$"],CUP:[void 0,"$"],CZK:[void 0,"Kč",2],DJF:[void 0,void 0,0],DKK:[void 0,"kr",2],DOP:[void 0,"$"],EGP:[void 0,"E£"],ESP:[void 0,"₧",0],EUR:["€"],FJD:[void 0,"$"],FKP:[void 0,"£"],GBP:["£"],GEL:[void 0,"₾"],GIP:[void 0,"£"],GNF:[void 0,"FG",0],GTQ:[void 0,"Q"],GYD:[void 0,"$",0],HKD:["HK$","$"],HNL:[void 0,"L"],HRK:[void 0,"kn"],HUF:[void 0,"Ft",2],IDR:[void 0,"Rp",0],ILS:["₪"],INR:["₹"],IQD:[void 0,void 0,0],IRR:[void 0,void 0,0],ISK:[void 0,"kr",0],ITL:[void 0,void 0,0],JMD:[void 0,"$"],JOD:[void 0,void 0,3],JPY:["¥",void 0,0],KHR:[void 0,"៛"],KMF:[void 0,"CF",0],KPW:[void 0,"₩",0],KRW:["₩",void 0,0],KWD:[void 0,void 0,3],KYD:[void 0,"$"],KZT:[void 0,"₸"],LAK:[void 0,"₭",0],LBP:[void 0,"L£",0],LKR:[void 0,"Rs"],LRD:[void 0,"$"],LTL:[void 0,"Lt"],LUF:[void 0,void 0,0],LVL:[void 0,"Ls"],LYD:[void 0,void 0,3],MGA:[void 0,"Ar",0],MGF:[void 0,void 0,0],MMK:[void 0,"K",0],MNT:[void 0,"₮",0],MRO:[void 0,void 0,0],MUR:[void 0,"Rs",0],MXN:["MX$","$"],MYR:[void 0,"RM"],NAD:[void 0,"$"],NGN:[void 0,"₦"],NIO:[void 0,"C$"],NOK:[void 0,"kr",2],NPR:[void 0,"Rs"],NZD:["NZ$","$"],OMR:[void 0,void 0,3],PHP:[void 0,"₱"],PKR:[void 0,"Rs",0],PLN:[void 0,"zł"],PYG:[void 0,"₲",0],RON:[void 0,"lei"],RSD:[void 0,void 0,0],RUB:[void 0,"₽"],RUR:[void 0,"р."],RWF:[void 0,"RF",0],SBD:[void 0,"$"],SEK:[void 0,"kr",2],SGD:[void 0,"$"],SHP:[void 0,"£"],SLL:[void 0,void 0,0],SOS:[void 0,void 0,0],SRD:[void 0,"$"],SSP:[void 0,"£"],STD:[void 0,void 0,0],STN:[void 0,"Db"],SYP:[void 0,"£",0],THB:[void 0,"฿"],TMM:[void 0,void 0,0],TND:[void 0,void 0,3],TOP:[void 0,"T$"],TRL:[void 0,void 0,0],TRY:[void 0,"₺"],TTD:[void 0,"$"],TWD:["NT$","$",2],TZS:[void 0,void 0,0],UAH:[void 0,"₴"],UGX:[void 0,void 0,0],USD:["$"],UYI:[void 0,void 0,0],UYU:[void 0,"$"],UZS:[void 0,void 0,0],VEF:[void 0,"Bs"],VND:["₫",void 0,0],VUV:[void 0,void 0,0],XAF:["FCFA",void 0,0],XCD:["EC$","$"],XOF:["CFA",void 0,0],XPF:["CFPF",void 0,0],YER:[void 0,void 0,0],ZAR:[void 0,"R"],ZMK:[void 0,void 0,0],ZMW:[void 0,"ZK"],ZWD:[void 0,void 0,0]},f=function(){var t={Decimal:0,Percent:1,Currency:2,Scientific:3};return t[t.Decimal]="Decimal",t[t.Percent]="Percent",t[t.Currency]="Currency",t[t.Scientific]="Scientific",t}(),p=function(){var t={Zero:0,One:1,Two:2,Few:3,Many:4,Other:5};return t[t.Zero]="Zero",t[t.One]="One",t[t.Two]="Two",t[t.Few]="Few",t[t.Many]="Many",t[t.Other]="Other",t}(),m=function(){var t={Format:0,Standalone:1};return t[t.Format]="Format",t[t.Standalone]="Standalone",t}(),h=function(){var t={Narrow:0,Abbreviated:1,Wide:2,Short:3};return t[t.Narrow]="Narrow",t[t.Abbreviated]="Abbreviated",t[t.Wide]="Wide",t[t.Short]="Short",t}(),b=function(){var t={Short:0,Medium:1,Long:2,Full:3};return t[t.Short]="Short",t[t.Medium]="Medium",t[t.Long]="Long",t[t.Full]="Full",t}(),y=function(){var t={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};return t[t.Decimal]="Decimal",t[t.Group]="Group",t[t.List]="List",t[t.PercentSign]="PercentSign",t[t.PlusSign]="PlusSign",t[t.MinusSign]="MinusSign",t[t.Exponential]="Exponential",t[t.SuperscriptingExponent]="SuperscriptingExponent",t[t.PerMille]="PerMille",t[t.Infinity]="Infinity",t[t.NaN]="NaN",t[t.TimeSeparator]="TimeSeparator",t[t.CurrencyDecimal]="CurrencyDecimal",t[t.CurrencyGroup]="CurrencyGroup",t}(),_=function(){var t={Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6};return t[t.Sunday]="Sunday",t[t.Monday]="Monday",t[t.Tuesday]="Tuesday",t[t.Wednesday]="Wednesday",t[t.Thursday]="Thursday",t[t.Friday]="Friday",t[t.Saturday]="Saturday",t}();function O(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].LocaleId]}function v(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),o=j([r[a["ɵLocaleDataIndex"].DayPeriodsFormat],r[a["ɵLocaleDataIndex"].DayPeriodsStandalone]],e);return j(o,n)}function C(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),o=j([r[a["ɵLocaleDataIndex"].DaysFormat],r[a["ɵLocaleDataIndex"].DaysStandalone]],e);return j(o,n)}function P(t,e,n){const r=Object(a["ɵfindLocaleData"])(t),o=j([r[a["ɵLocaleDataIndex"].MonthsFormat],r[a["ɵLocaleDataIndex"].MonthsStandalone]],e);return j(o,n)}function M(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].Eras],e)}function x(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].FirstDayOfWeek]}function w(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].WeekendRange]}function T(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].DateFormat],e)}function S(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].TimeFormat],e)}function k(t,e){return j(Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].DateTimeFormat],e)}function I(t,e){const n=Object(a["ɵfindLocaleData"])(t),r=n[a["ɵLocaleDataIndex"].NumberSymbols][e];if(void 0===r){if(e===y.CurrencyDecimal)return n[a["ɵLocaleDataIndex"].NumberSymbols][y.Decimal];if(e===y.CurrencyGroup)return n[a["ɵLocaleDataIndex"].NumberSymbols][y.Group]}return r}function N(t,e){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].NumberFormats][e]}function R(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].CurrencySymbol]||null}function A(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].CurrencyName]||null}const E=a["ɵgetLocalePluralCase"];function D(t){if(!t[a["ɵLocaleDataIndex"].ExtraData])throw new Error(`Missing extra locale data for the locale "${t[a["ɵLocaleDataIndex"].LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function L(t){const e=Object(a["ɵfindLocaleData"])(t);return D(e),(e[a["ɵLocaleDataIndex"].ExtraData][2]||[]).map(t=>"string"==typeof t?F(t):[F(t[0]),F(t[1])])}function q(t,e,n){const r=Object(a["ɵfindLocaleData"])(t);D(r);const o=j([r[a["ɵLocaleDataIndex"].ExtraData][0],r[a["ɵLocaleDataIndex"].ExtraData][1]],e)||[];return j(o,n)||[]}function j(t,e){for(let n=e;n>-1;n--)if(void 0!==t[n])return t[n];throw new Error("Locale data API: locale data undefined")}function F(t){const[e,n]=t.split(":");return{hours:+e,minutes:+n}}function z(t,e,n="en"){const r=function(t){return Object(a["ɵfindLocaleData"])(t)[a["ɵLocaleDataIndex"].Currencies]}(n)[t]||g[t]||[],o=r[1];return"narrow"===e&&"string"==typeof o?o:r[0]||t}function G(t){let e;const n=g[t];return n&&(e=n[2]),"number"==typeof e?e:2}const B=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,V={},Y=/((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{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]*)/,H=function(){var t={Short:0,ShortGMT:1,Long:2,Extended:3};return t[t.Short]="Short",t[t.ShortGMT]="ShortGMT",t[t.Long]="Long",t[t.Extended]="Extended",t}(),U=function(){var t={FullYear:0,Month:1,Date:2,Hours:3,Minutes:4,Seconds:5,FractionalSeconds:6,Day:7};return t[t.FullYear]="FullYear",t[t.Month]="Month",t[t.Date]="Date",t[t.Hours]="Hours",t[t.Minutes]="Minutes",t[t.Seconds]="Seconds",t[t.FractionalSeconds]="FractionalSeconds",t[t.Day]="Day",t}(),W=function(){var t={DayPeriods:0,Days:1,Months:2,Eras:3};return t[t.DayPeriods]="DayPeriods",t[t.Days]="Days",t[t.Months]="Months",t[t.Eras]="Eras",t}();function K(t,e,n,a){let r=function(t){if(rt(t))return t;if("number"==typeof t&&!isNaN(t))return new Date(t);if("string"==typeof t){t=t.trim();const e=parseFloat(t);if(!isNaN(t-e))return new Date(e);if(/^(\d{4}-\d{1,2}-\d{1,2})$/.test(t)){const[e,n,a]=t.split("-").map(t=>+t);return new Date(e,n-1,a)}let n;if(n=t.match(B))return at(n)}const e=new Date(t);if(!rt(e))throw new Error(`Unable to convert "${t}" into a date`);return e}(t);e=function t(e,n){const a=O(e);if(V[a]=V[a]||{},V[a][n])return V[a][n];let r="";switch(n){case"shortDate":r=T(e,b.Short);break;case"mediumDate":r=T(e,b.Medium);break;case"longDate":r=T(e,b.Long);break;case"fullDate":r=T(e,b.Full);break;case"shortTime":r=S(e,b.Short);break;case"mediumTime":r=S(e,b.Medium);break;case"longTime":r=S(e,b.Long);break;case"fullTime":r=S(e,b.Full);break;case"short":const n=t(e,"shortTime"),a=t(e,"shortDate");r=$(k(e,b.Short),[n,a]);break;case"medium":const o=t(e,"mediumTime"),i=t(e,"mediumDate");r=$(k(e,b.Medium),[o,i]);break;case"long":const s=t(e,"longTime"),c=t(e,"longDate");r=$(k(e,b.Long),[s,c]);break;case"full":const l=t(e,"fullTime"),d=t(e,"fullDate");r=$(k(e,b.Full),[l,d])}return r&&(V[a][n]=r),r}(n,e)||e;let o,i=[];for(;e;){if(o=Y.exec(e),!o){i.push(e);break}{i=i.concat(o.slice(1));const t=i.pop();if(!t)break;e=t}}let s=r.getTimezoneOffset();a&&(s=nt(a,s),r=function(t,e,n){const a=t.getTimezoneOffset();return function(t,e){return(t=new Date(t.getTime())).setMinutes(t.getMinutes()+e),t}(t,-1*(nt(e,a)-a))}(r,a));let c="";return i.forEach(t=>{const e=function(t){if(et[t])return et[t];let e;switch(t){case"G":case"GG":case"GGG":e=X(W.Eras,h.Abbreviated);break;case"GGGG":e=X(W.Eras,h.Wide);break;case"GGGGG":e=X(W.Eras,h.Narrow);break;case"y":e=J(U.FullYear,1,0,!1,!0);break;case"yy":e=J(U.FullYear,2,0,!0,!0);break;case"yyy":e=J(U.FullYear,3,0,!1,!0);break;case"yyyy":e=J(U.FullYear,4,0,!1,!0);break;case"M":case"L":e=J(U.Month,1,1);break;case"MM":case"LL":e=J(U.Month,2,1);break;case"MMM":e=X(W.Months,h.Abbreviated);break;case"MMMM":e=X(W.Months,h.Wide);break;case"MMMMM":e=X(W.Months,h.Narrow);break;case"LLL":e=X(W.Months,h.Abbreviated,m.Standalone);break;case"LLLL":e=X(W.Months,h.Wide,m.Standalone);break;case"LLLLL":e=X(W.Months,h.Narrow,m.Standalone);break;case"w":e=tt(1);break;case"ww":e=tt(2);break;case"W":e=tt(1,!0);break;case"d":e=J(U.Date,1);break;case"dd":e=J(U.Date,2);break;case"E":case"EE":case"EEE":e=X(W.Days,h.Abbreviated);break;case"EEEE":e=X(W.Days,h.Wide);break;case"EEEEE":e=X(W.Days,h.Narrow);break;case"EEEEEE":e=X(W.Days,h.Short);break;case"a":case"aa":case"aaa":e=X(W.DayPeriods,h.Abbreviated);break;case"aaaa":e=X(W.DayPeriods,h.Wide);break;case"aaaaa":e=X(W.DayPeriods,h.Narrow);break;case"b":case"bb":case"bbb":e=X(W.DayPeriods,h.Abbreviated,m.Standalone,!0);break;case"bbbb":e=X(W.DayPeriods,h.Wide,m.Standalone,!0);break;case"bbbbb":e=X(W.DayPeriods,h.Narrow,m.Standalone,!0);break;case"B":case"BB":case"BBB":e=X(W.DayPeriods,h.Abbreviated,m.Format,!0);break;case"BBBB":e=X(W.DayPeriods,h.Wide,m.Format,!0);break;case"BBBBB":e=X(W.DayPeriods,h.Narrow,m.Format,!0);break;case"h":e=J(U.Hours,1,-12);break;case"hh":e=J(U.Hours,2,-12);break;case"H":e=J(U.Hours,1);break;case"HH":e=J(U.Hours,2);break;case"m":e=J(U.Minutes,1);break;case"mm":e=J(U.Minutes,2);break;case"s":e=J(U.Seconds,1);break;case"ss":e=J(U.Seconds,2);break;case"S":e=J(U.FractionalSeconds,1);break;case"SS":e=J(U.FractionalSeconds,2);break;case"SSS":e=J(U.FractionalSeconds,3);break;case"Z":case"ZZ":case"ZZZ":e=Q(H.Short);break;case"ZZZZZ":e=Q(H.Extended);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":e=Q(H.ShortGMT);break;case"OOOO":case"ZZZZ":case"zzzz":e=Q(H.Long);break;default:return null}return et[t]=e,e}(t);c+=e?e(r,n,s):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),c}function $(t,e){return e&&(t=t.replace(/\{([^}]+)}/g,(function(t,n){return null!=e&&n in e?e[n]:t}))),t}function Z(t,e,n="-",a,r){let o="";(t<0||r&&t<=0)&&(r?t=1-t:(t=-t,o=n));let i=String(t);for(;i.length<e;)i="0"+i;return a&&(i=i.substr(i.length-e)),o+i}function J(t,e,n=0,a=!1,r=!1){return function(o,i){let s=function(t,e){switch(t){case U.FullYear:return e.getFullYear();case U.Month:return e.getMonth();case U.Date:return e.getDate();case U.Hours:return e.getHours();case U.Minutes:return e.getMinutes();case U.Seconds:return e.getSeconds();case U.FractionalSeconds:return e.getMilliseconds();case U.Day:return e.getDay();default:throw new Error(`Unknown DateType value "${t}".`)}}(t,o);if((n>0||s>-n)&&(s+=n),t===U.Hours)0===s&&-12===n&&(s=12);else if(t===U.FractionalSeconds)return c=e,Z(s,3).substr(0,c);var c;const l=I(i,y.MinusSign);return Z(s,e,l,a,r)}}function X(t,e,n=m.Format,a=!1){return function(r,o){return function(t,e,n,a,r,o){switch(n){case W.Months:return P(e,r,a)[t.getMonth()];case W.Days:return C(e,r,a)[t.getDay()];case W.DayPeriods:const i=t.getHours(),s=t.getMinutes();if(o){const t=L(e),n=q(e,r,a);let o;if(t.forEach((t,e)=>{if(Array.isArray(t)){const{hours:a,minutes:r}=t[0],{hours:c,minutes:l}=t[1];i>=a&&s>=r&&(i<c||i===c&&s<l)&&(o=n[e])}else{const{hours:a,minutes:r}=t;a===i&&r===s&&(o=n[e])}}),o)return o}return v(e,r,a)[i<12?0:1];case W.Eras:return M(e,a)[t.getFullYear()<=0?0:1];default:throw new Error(`unexpected translation type ${n}`)}}(r,o,t,e,n,a)}}function Q(t){return function(e,n,a){const r=-1*a,o=I(n,y.MinusSign),i=r>0?Math.floor(r/60):Math.ceil(r/60);switch(t){case H.Short:return(r>=0?"+":"")+Z(i,2,o)+Z(Math.abs(r%60),2,o);case H.ShortGMT:return"GMT"+(r>=0?"+":"")+Z(i,1,o);case H.Long:return"GMT"+(r>=0?"+":"")+Z(i,2,o)+":"+Z(Math.abs(r%60),2,o);case H.Extended:return 0===a?"Z":(r>=0?"+":"")+Z(i,2,o)+":"+Z(Math.abs(r%60),2,o);default:throw new Error(`Unknown zone width "${t}"`)}}}function tt(t,e=!1){return function(n,a){let r;if(e){const t=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,e=n.getDate();r=1+Math.floor((e+t)/7)}else{const t=function(t){const e=new Date(t,0,1).getDay();return new Date(t,0,1+(e<=4?4:11)-e)}(n.getFullYear()),e=(o=n,new Date(o.getFullYear(),o.getMonth(),o.getDate()+(4-o.getDay()))).getTime()-t.getTime();r=1+Math.round(e/6048e5)}var o;return Z(r,t,I(a,y.MinusSign))}}const et={};function nt(t,e){t=t.replace(/:/g,"");const n=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(n)?e:n}function at(t){const e=new Date(0);let n=0,a=0;const r=t[8]?e.setUTCFullYear:e.setFullYear,o=t[8]?e.setUTCHours:e.setHours;t[9]&&(n=Number(t[9]+t[10]),a=Number(t[9]+t[11])),r.call(e,Number(t[1]),Number(t[2])-1,Number(t[3]));const i=Number(t[4]||0)-n,s=Number(t[5]||0)-a,c=Number(t[6]||0),l=Math.round(1e3*parseFloat("0."+(t[7]||0)));return o.call(e,i,s,c,l),e}function rt(t){return t instanceof Date&&!isNaN(t.valueOf())}const ot=/^(\d+)?\.((\d+)(-(\d+))?)?$/;function it(t,e,n,a,r,o,i=!1){let s="",c=!1;if(isFinite(t)){let l=function(t){let e,n,a,r,o,i=Math.abs(t)+"",s=0;for((n=i.indexOf("."))>-1&&(i=i.replace(".","")),(a=i.search(/e/i))>0?(n<0&&(n=a),n+=+i.slice(a+1),i=i.substring(0,a)):n<0&&(n=i.length),a=0;"0"===i.charAt(a);a++);if(a===(o=i.length))e=[0],n=1;else{for(o--;"0"===i.charAt(o);)o--;for(n-=a,e=[],r=0;a<=o;a++,r++)e[r]=Number(i.charAt(a))}return n>22&&(e=e.splice(0,21),s=n-1,n=1),{digits:e,exponent:s,integerLen:n}}(t);i&&(l=function(t){if(0===t.digits[0])return t;const e=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(0===e?t.digits.push(0,0):1===e&&t.digits.push(0),t.integerLen+=2),t}(l));let d=e.minInt,u=e.minFrac,g=e.maxFrac;if(o){const t=o.match(ot);if(null===t)throw new Error(`${o} is not a valid digit info`);const e=t[1],n=t[3],a=t[5];null!=e&&(d=ut(e)),null!=n&&(u=ut(n)),null!=a?g=ut(a):null!=n&&u>g&&(g=u)}!function(t,e,n){if(e>n)throw new Error(`The minimum number of digits after fraction (${e}) is higher than the maximum (${n}).`);let a=t.digits,r=a.length-t.integerLen;const o=Math.min(Math.max(e,r),n);let i=o+t.integerLen,s=a[i];if(i>0){a.splice(Math.max(t.integerLen,i));for(let t=i;t<a.length;t++)a[t]=0}else{r=Math.max(0,r),t.integerLen=1,a.length=Math.max(1,i=o+1),a[0]=0;for(let t=1;t<i;t++)a[t]=0}if(s>=5)if(i-1<0){for(let e=0;e>i;e--)a.unshift(0),t.integerLen++;a.unshift(1),t.integerLen++}else a[i-1]++;for(;r<Math.max(0,o);r++)a.push(0);let c=0!==o;const l=e+t.integerLen,d=a.reduceRight((function(t,e,n,a){return a[n]=(e+=t)<10?e:e-10,c&&(0===a[n]&&n>=l?a.pop():c=!1),e>=10?1:0}),0);d&&(a.unshift(d),t.integerLen++)}(l,u,g);let f=l.digits,p=l.integerLen;const m=l.exponent;let h=[];for(c=f.every(t=>!t);p<d;p++)f.unshift(0);for(;p<0;p++)f.unshift(0);p>0?h=f.splice(p,f.length):(h=f,f=[0]);const b=[];for(f.length>=e.lgSize&&b.unshift(f.splice(-e.lgSize,f.length).join(""));f.length>e.gSize;)b.unshift(f.splice(-e.gSize,f.length).join(""));f.length&&b.unshift(f.join("")),s=b.join(I(n,a)),h.length&&(s+=I(n,r)+h.join("")),m&&(s+=I(n,y.Exponential)+"+"+m)}else s=I(n,y.Infinity);return s=t<0&&!c?e.negPre+s+e.negSuf:e.posPre+s+e.posSuf,s}function st(t,e,n,a,r){const o=dt(N(e,f.Currency),I(e,y.MinusSign));return o.minFrac=G(a),o.maxFrac=o.minFrac,it(t,o,e,y.CurrencyGroup,y.CurrencyDecimal,r).replace("¤",n).replace("¤","")}function ct(t,e,n){return it(t,dt(N(e,f.Percent),I(e,y.MinusSign)),e,y.Group,y.Decimal,n,!0).replace(new RegExp("%","g"),I(e,y.PercentSign))}function lt(t,e,n){return it(t,dt(N(e,f.Decimal),I(e,y.MinusSign)),e,y.Group,y.Decimal,n)}function dt(t,e="-"){const n={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},a=t.split(";"),r=a[0],o=a[1],i=-1!==r.indexOf(".")?r.split("."):[r.substring(0,r.lastIndexOf("0")+1),r.substring(r.lastIndexOf("0")+1)],s=i[0],c=i[1]||"";n.posPre=s.substr(0,s.indexOf("#"));for(let d=0;d<c.length;d++){const t=c.charAt(d);"0"===t?n.minFrac=n.maxFrac=d+1:"#"===t?n.maxFrac=d+1:n.posSuf+=t}const l=s.split(",");if(n.gSize=l[1]?l[1].length:0,n.lgSize=l[2]||l[1]?(l[2]||l[1]).length:0,o){const t=r.length-n.posPre.length-n.posSuf.length,e=o.indexOf("#");n.negPre=o.substr(0,e).replace(/'/g,""),n.negSuf=o.substr(e+t).replace(/'/g,"")}else n.negPre=e+n.posPre,n.negSuf=n.posSuf;return n}function ut(t){const e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}const gt=new a.InjectionToken("UseV4Plurals");class ft{}function pt(t,e,n,a){let r=`=${t}`;if(e.indexOf(r)>-1)return r;if(r=n.getPluralCategory(t,a),e.indexOf(r)>-1)return r;if(e.indexOf("other")>-1)return"other";throw new Error(`No plural message found for value "${t}"`)}class mt extends ft{constructor(t,e){super(),this.locale=t,this.deprecatedPluralFn=e}getPluralCategory(t,e){switch(this.deprecatedPluralFn?this.deprecatedPluralFn(e||this.locale,t):E(e||this.locale)(t)){case p.Zero:return"zero";case p.One:return"one";case p.Two:return"two";case p.Few:return"few";case p.Many:return"many";default:return"other"}}}function ht(t,e){"string"==typeof e&&(e=parseInt(e,10));const n=e,a=n.toString().replace(/^[^.]*\.?/,""),r=Math.floor(Math.abs(n)),o=a.length,i=parseInt(a,10),s=parseInt(n.toString().replace(/^[^.]*\.?|0+$/g,""),10)||0;switch(t.split("-")[0].toLowerCase()){case"af":case"asa":case"az":case"bem":case"bez":case"bg":case"brx":case"ce":case"cgg":case"chr":case"ckb":case"ee":case"el":case"eo":case"es":case"eu":case"fo":case"fur":case"gsw":case"ha":case"haw":case"hu":case"jgo":case"jmc":case"ka":case"kk":case"kkj":case"kl":case"ks":case"ksb":case"ky":case"lb":case"lg":case"mas":case"mgo":case"ml":case"mn":case"nb":case"nd":case"ne":case"nn":case"nnh":case"nyn":case"om":case"or":case"os":case"ps":case"rm":case"rof":case"rwk":case"saq":case"seh":case"sn":case"so":case"sq":case"ta":case"te":case"teo":case"tk":case"tr":case"ug":case"uz":case"vo":case"vun":case"wae":case"xog":return 1===n?p.One:p.Other;case"ak":case"ln":case"mg":case"pa":case"ti":return n===Math.floor(n)&&n>=0&&n<=1?p.One:p.Other;case"am":case"as":case"bn":case"fa":case"gu":case"hi":case"kn":case"mr":case"zu":return 0===r||1===n?p.One:p.Other;case"ar":return 0===n?p.Zero:1===n?p.One:2===n?p.Two:n%100===Math.floor(n%100)&&n%100>=3&&n%100<=10?p.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=99?p.Many:p.Other;case"ast":case"ca":case"de":case"en":case"et":case"fi":case"fy":case"gl":case"it":case"nl":case"sv":case"sw":case"ur":case"yi":return 1===r&&0===o?p.One:p.Other;case"be":return n%10==1&&n%100!=11?p.One:n%10===Math.floor(n%10)&&n%10>=2&&n%10<=4&&!(n%100>=12&&n%100<=14)?p.Few:n%10==0||n%10===Math.floor(n%10)&&n%10>=5&&n%10<=9||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=14?p.Many:p.Other;case"br":return n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?p.One:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?p.Two:n%10===Math.floor(n%10)&&(n%10>=3&&n%10<=4||n%10==9)&&!(n%100>=10&&n%100<=19||n%100>=70&&n%100<=79||n%100>=90&&n%100<=99)?p.Few:0!==n&&n%1e6==0?p.Many:p.Other;case"bs":case"hr":case"sr":return 0===o&&r%10==1&&r%100!=11||i%10==1&&i%100!=11?p.One:0===o&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)||i%10===Math.floor(i%10)&&i%10>=2&&i%10<=4&&!(i%100>=12&&i%100<=14)?p.Few:p.Other;case"cs":case"sk":return 1===r&&0===o?p.One:r===Math.floor(r)&&r>=2&&r<=4&&0===o?p.Few:0!==o?p.Many:p.Other;case"cy":return 0===n?p.Zero:1===n?p.One:2===n?p.Two:3===n?p.Few:6===n?p.Many:p.Other;case"da":return 1===n||0!==s&&(0===r||1===r)?p.One:p.Other;case"dsb":case"hsb":return 0===o&&r%100==1||i%100==1?p.One:0===o&&r%100==2||i%100==2?p.Two:0===o&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||i%100===Math.floor(i%100)&&i%100>=3&&i%100<=4?p.Few:p.Other;case"ff":case"fr":case"hy":case"kab":return 0===r||1===r?p.One:p.Other;case"fil":return 0===o&&(1===r||2===r||3===r)||0===o&&r%10!=4&&r%10!=6&&r%10!=9||0!==o&&i%10!=4&&i%10!=6&&i%10!=9?p.One:p.Other;case"ga":return 1===n?p.One:2===n?p.Two:n===Math.floor(n)&&n>=3&&n<=6?p.Few:n===Math.floor(n)&&n>=7&&n<=10?p.Many:p.Other;case"gd":return 1===n||11===n?p.One:2===n||12===n?p.Two:n===Math.floor(n)&&(n>=3&&n<=10||n>=13&&n<=19)?p.Few:p.Other;case"gv":return 0===o&&r%10==1?p.One:0===o&&r%10==2?p.Two:0!==o||r%100!=0&&r%100!=20&&r%100!=40&&r%100!=60&&r%100!=80?0!==o?p.Many:p.Other:p.Few;case"he":return 1===r&&0===o?p.One:2===r&&0===o?p.Two:0!==o||n>=0&&n<=10||n%10!=0?p.Other:p.Many;case"is":return 0===s&&r%10==1&&r%100!=11||0!==s?p.One:p.Other;case"ksh":return 0===n?p.Zero:1===n?p.One:p.Other;case"kw":case"naq":case"se":case"smn":return 1===n?p.One:2===n?p.Two:p.Other;case"lag":return 0===n?p.Zero:0!==r&&1!==r||0===n?p.Other:p.One;case"lt":return n%10!=1||n%100>=11&&n%100<=19?n%10===Math.floor(n%10)&&n%10>=2&&n%10<=9&&!(n%100>=11&&n%100<=19)?p.Few:0!==i?p.Many:p.Other:p.One;case"lv":case"prg":return n%10==0||n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19||2===o&&i%100===Math.floor(i%100)&&i%100>=11&&i%100<=19?p.Zero:n%10==1&&n%100!=11||2===o&&i%10==1&&i%100!=11||2!==o&&i%10==1?p.One:p.Other;case"mk":return 0===o&&r%10==1||i%10==1?p.One:p.Other;case"mt":return 1===n?p.One:0===n||n%100===Math.floor(n%100)&&n%100>=2&&n%100<=10?p.Few:n%100===Math.floor(n%100)&&n%100>=11&&n%100<=19?p.Many:p.Other;case"pl":return 1===r&&0===o?p.One:0===o&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?p.Few:0===o&&1!==r&&r%10===Math.floor(r%10)&&r%10>=0&&r%10<=1||0===o&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===o&&r%100===Math.floor(r%100)&&r%100>=12&&r%100<=14?p.Many:p.Other;case"pt":return n===Math.floor(n)&&n>=0&&n<=2&&2!==n?p.One:p.Other;case"ro":return 1===r&&0===o?p.One:0!==o||0===n||1!==n&&n%100===Math.floor(n%100)&&n%100>=1&&n%100<=19?p.Few:p.Other;case"ru":case"uk":return 0===o&&r%10==1&&r%100!=11?p.One:0===o&&r%10===Math.floor(r%10)&&r%10>=2&&r%10<=4&&!(r%100>=12&&r%100<=14)?p.Few:0===o&&r%10==0||0===o&&r%10===Math.floor(r%10)&&r%10>=5&&r%10<=9||0===o&&r%100===Math.floor(r%100)&&r%100>=11&&r%100<=14?p.Many:p.Other;case"shi":return 0===r||1===n?p.One:n===Math.floor(n)&&n>=2&&n<=10?p.Few:p.Other;case"si":return 0===n||1===n||0===r&&1===i?p.One:p.Other;case"sl":return 0===o&&r%100==1?p.One:0===o&&r%100==2?p.Two:0===o&&r%100===Math.floor(r%100)&&r%100>=3&&r%100<=4||0!==o?p.Few:p.Other;case"tzm":return n===Math.floor(n)&&n>=0&&n<=1||n===Math.floor(n)&&n>=11&&n<=99?p.One:p.Other;default:return p.Other}}function bt(t,e,n){"string"!=typeof e&&(n=e,e=t[a["ɵLocaleDataIndex"].LocaleId]),e=e.toLowerCase().replace(/_/g,"-"),a["ɵLOCALE_DATA"][e]=t,n&&(a["ɵLOCALE_DATA"][e][a["ɵLocaleDataIndex"].ExtraData]=n)}function yt(t,e){e=encodeURIComponent(e);for(const n of t.split(";")){const t=n.indexOf("="),[a,r]=-1==t?[n,""]:[n.slice(0,t),n.slice(t+1)];if(a.trim()===e)return decodeURIComponent(r)}return null}class _t{constructor(t,e){this._name=t,this._options=e,this.value=null,this._lastSetValue=null,this._lastSetValueType=0,this._lastSetValueIdentityChange=!1}setValue(t){if(Array.isArray(t))this._lastSetValueType=4;else if(t instanceof Set)this._lastSetValueType=8;else if(t&&"string"==typeof t){if(!(4&this._options))throw new Error(this._name+" string values are not allowed");this._lastSetValueType=1}else this._lastSetValueType=t?2:0;this._lastSetValueIdentityChange=!0,this._lastSetValue=t||null}hasValueChanged(){let t=this._lastSetValueIdentityChange;if(!(t||14&this._lastSetValueType))return!1;let e=null;const n=!!(1&this._options),a=!!(8&this._options),r=!!(2&this._options);switch(this._lastSetValueType){case 1:const o=this._lastSetValue.split(/\s+/g);16&this._options?(e={},o.forEach((t,n)=>e[t]=!0)):e=o.reduce((t,e,n)=>t+(n?" ":"")+e);break;case 2:const i=this._lastSetValue,s=Object.keys(i);t||(t=!this.value||function(t,e,n){const a=t;if(!Mt(Object.keys(e),a))return!0;for(let r=0;r<a.length;r++){const t=a[r];if(e[t]!==n[t])return!0}return!1}(s,this.value,i)),t&&(e=Ot(this._name,n,a,r,i,s));break;case 4:case 8:const c=Array.from(this._lastSetValue);t||(t=!Mt(Object.keys(this.value),c)),t&&(e=Ot(this._name,n,a,r,c));break;default:e=null}return t&&(this.value=e),t}}function Ot(t,e,n,a,r,o){const i={};if(o)for(let s=0;s<o.length;s++){let t=o[s];t=e?t.trim():t,Ct(i,t,r[t],n,a)}else for(let s=0;s<r.length;s++){let n=r[s];vt(t,n),n=e?n.trim():n,Ct(i,n,!0,!1,a)}return i}function vt(t,e){if("string"!=typeof e)throw new Error(`${t} can only toggle CSS classes expressed as strings, got ${e}`)}function Ct(t,e,n,a,r){if(r&&e.indexOf(" ")>0){const r=e.split(/\s+/g);for(let e=0;e<r.length;e++)Pt(t,r[e],n,a)}else Pt(t,e,n,a)}function Pt(t,e,n,a){if(a){const t=function(t,e){const n=t.indexOf(".");if(n>0){const a=t.substr(n+1);t=t.substring(0,n),null!=e&&(e+=a)}return{key:t,value:e}}(e,n);n=t.value,e=t.key}t[e]=n}function Mt(t,e){if(t&&e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(-1===e.indexOf(t[n]))return!1;return!0}return!1}class xt{}class wt{constructor(t,e,n,a){this._iterableDiffers=t,this._keyValueDiffers=e,this._ngEl=n,this._renderer=a,this._initialClasses=[]}getValue(){return null}setClass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}setNgClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(Object(a["ɵisListLikeIterable"])(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}applyChanges(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachChangedItem(t=>this._toggleClass(t.key,t.currentValue)),t.forEachRemovedItem(t=>{t.previousValue&&this._toggleClass(t.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(t=>{if("string"!=typeof t.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${Object(a["ɵstringify"])(t.item)}`);this._toggleClass(t.item,!0)}),t.forEachRemovedItem(t=>this._toggleClass(t.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!0)):Object.keys(t).forEach(e=>this._toggleClass(e,!!t[e])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(t=>this._toggleClass(t,!1)):Object.keys(t).forEach(t=>this._toggleClass(t,!1)))}_toggleClass(t,e){(t=t.trim())&&t.split(/\s+/g).forEach(t=>{e?this._renderer.addClass(this._ngEl.nativeElement,t):this._renderer.removeClass(this._ngEl.nativeElement,t)})}}class Tt{constructor(){this._value=null,this._ngClassDiffer=new _t("NgClass",23),this._classStringDiffer=null}getValue(){return this._value}setClass(t){(t||this._classStringDiffer)&&(this._classStringDiffer=this._classStringDiffer||new _t("class",20),this._classStringDiffer.setValue(t))}setNgClass(t){this._ngClassDiffer.setValue(t)}applyChanges(){const t=!!this._classStringDiffer&&this._classStringDiffer.hasValueChanged(),e=this._ngClassDiffer.hasValueChanged();if(t||e){let t=this._ngClassDiffer.value;if(this._classStringDiffer){let e=this._classStringDiffer.value;e&&(t=t?Object.assign({},e,t):e)}this._value=t}}}const St={provide:xt,useClass:wt},kt={provide:xt,useClass:Tt},It=St,Nt=Object(a["ɵɵdefineDirective"])({type:function(){},selectors:null,factory:()=>{},hostBindings:function(t,e,n){1&t&&(Object(a["ɵɵallocHostVars"])(1),Object(a["ɵɵstyling"])()),2&t&&(Object(a["ɵɵclassMap"])(e.getValue()),Object(a["ɵɵstylingApply"])())}});let Rt=(()=>{class t{constructor(t){this._delegate=t}getValue(){return this._delegate.getValue()}}return t.ngDirectiveDef=void 0,t})();class At extends Rt{constructor(t){super(t)}set klass(t){this._delegate.setClass(t)}set ngClass(t){this._delegate.setNgClass(t)}ngDoCheck(){this._delegate.applyChanges()}}class Et{constructor(t){this._viewContainerRef=t,this._componentRef=null,this._moduleRef=null}ngOnChanges(t){if(this._viewContainerRef.clear(),this._componentRef=null,this.ngComponentOutlet){const e=this.ngComponentOutletInjector||this._viewContainerRef.parentInjector;if(t.ngComponentOutletNgModuleFactory)if(this._moduleRef&&this._moduleRef.destroy(),this.ngComponentOutletNgModuleFactory){const t=e.get(a.NgModuleRef);this._moduleRef=this.ngComponentOutletNgModuleFactory.create(t.injector)}else this._moduleRef=null;const n=(this._moduleRef?this._moduleRef.componentFactoryResolver:e.get(a.ComponentFactoryResolver)).resolveComponentFactory(this.ngComponentOutlet);this._componentRef=this._viewContainerRef.createComponent(n,this._viewContainerRef.length,e,this.ngComponentOutletContent)}}ngOnDestroy(){this._moduleRef&&this._moduleRef.destroy()}}class Dt{constructor(t,e,n,a){this.$implicit=t,this.ngForOf=e,this.index=n,this.count=a}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}}class Lt{constructor(t,e,n){this._viewContainer=t,this._template=e,this._differs=n,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){Object(a.isDevMode)()&&null!=t&&"function"!=typeof t&&console&&console.warn&&console.warn(`trackBy must be a function, but received ${JSON.stringify(t)}. `+"See https://angular.io/docs/ts/latest/api/common/index/NgFor-directive.html#!#change-propagation for more information."),this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;if(!this._differ&&n)try{this._differ=this._differs.find(n).create(this.ngForTrackBy)}catch(e){throw new Error(`Cannot find a differ supporting object '${n}' of type '${t=n,t.name||typeof t}'. NgFor only supports binding to Iterables such as Arrays.`)}}var t;if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const e=[];t.forEachOperation((t,n,a)=>{if(null==t.previousIndex){const n=this._viewContainer.createEmbeddedView(this._template,new Dt(null,this._ngForOf,-1,-1),null===a?void 0:a),r=new qt(t,n);e.push(r)}else if(null==a)this._viewContainer.remove(null===n?void 0:n);else if(null!==n){const r=this._viewContainer.get(n);this._viewContainer.move(r,a);const o=new qt(t,r);e.push(o)}});for(let n=0;n<e.length;n++)this._perViewChange(e[n].view,e[n].record);for(let n=0,a=this._viewContainer.length;n<a;n++){const t=this._viewContainer.get(n);t.context.index=n,t.context.count=a,t.context.ngForOf=this._ngForOf}t.forEachIdentityChange(t=>{this._viewContainer.get(t.currentIndex).context.$implicit=t.item})}_perViewChange(t,e){t.context.$implicit=e.item}static ngTemplateContextGuard(t,e){return!0}}class qt{constructor(t,e){this.record=t,this.view=e}}class jt{constructor(t,e){this._viewContainer=t,this._context=new Ft,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=e}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){zt("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){zt("ngIfElse",t),this._elseTemplateRef=t,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)))}}class Ft{constructor(){this.$implicit=null,this.ngIf=null}}function zt(t,e){if(e&&!e.createEmbeddedView)throw new Error(`${t} must be a TemplateRef, but received '${Object(a["ɵstringify"])(e)}'.`)}class Gt{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()}}class Bt{constructor(){this._defaultUsed=!1,this._caseCount=0,this._lastCaseCheckIndex=0,this._lastCasesMatched=!1}set ngSwitch(t){this._ngSwitch=t,0===this._caseCount&&this._updateDefaultCases(!0)}_addCase(){return this._caseCount++}_addDefault(t){this._defaultViews||(this._defaultViews=[]),this._defaultViews.push(t)}_matchCase(t){const e=t==this._ngSwitch;return this._lastCasesMatched=this._lastCasesMatched||e,this._lastCaseCheckIndex++,this._lastCaseCheckIndex===this._caseCount&&(this._updateDefaultCases(!this._lastCasesMatched),this._lastCaseCheckIndex=0,this._lastCasesMatched=!1),e}_updateDefaultCases(t){if(this._defaultViews&&t!==this._defaultUsed){this._defaultUsed=t;for(let e=0;e<this._defaultViews.length;e++)this._defaultViews[e].enforceState(t)}}}class Vt{constructor(t,e,n){this.ngSwitch=n,n._addCase(),this._view=new Gt(t,e)}ngDoCheck(){this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase))}}class Yt{constructor(t,e,n){n._addDefault(new Gt(t,e))}}class Ht{constructor(t){this._localization=t,this._caseViews={}}set ngPlural(t){this._switchValue=t,this._updateView()}addCase(t,e){this._caseViews[t]=e}_updateView(){this._clearViews();const t=Object.keys(this._caseViews),e=pt(this._switchValue,t,this._localization);this._activateView(this._caseViews[e])}_clearViews(){this._activeView&&this._activeView.destroy()}_activateView(t){t&&(this._activeView=t,this._activeView.create())}}class Ut{constructor(t,e,n,a){this.value=t;const r=!isNaN(Number(t));a.addCase(r?`=${t}`:t,new Gt(n,e))}}class Wt{}class Kt{constructor(t,e,n){this._ngEl=t,this._differs=e,this._renderer=n}getValue(){return null}setNgStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}applyChanges(){if(this._differ){const t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_applyChanges(t){t.forEachRemovedItem(t=>this._setStyle(t.key,null)),t.forEachAddedItem(t=>this._setStyle(t.key,t.currentValue)),t.forEachChangedItem(t=>this._setStyle(t.key,t.currentValue))}_setStyle(t,e){const[n,a]=t.split(".");null!=(e=null!=e&&a?`${e}${a}`:e)?this._renderer.setStyle(this._ngEl.nativeElement,n,e):this._renderer.removeStyle(this._ngEl.nativeElement,n)}}class $t{constructor(){this._differ=new _t("NgStyle",8),this._value=null}getValue(){return this._value}setNgStyle(t){this._differ.setValue(t)}applyChanges(){this._differ.hasValueChanged()&&(this._value=this._differ.value)}}const Zt={provide:Wt,useClass:Kt},Jt={provide:Wt,useClass:$t},Xt=Zt,Qt=Object(a["ɵɵdefineDirective"])({type:function(){},selectors:null,factory:()=>{},hostBindings:function(t,e,n){1&t&&Object(a["ɵɵstyling"])(),2&t&&(Object(a["ɵɵstyleMap"])(e.getValue()),Object(a["ɵɵstylingApply"])())}});let te=(()=>{class t{constructor(t){this._delegate=t}getValue(){return this._delegate.getValue()}}return t.ngDirectiveDef=void 0,t})();class ee extends te{constructor(t){super(t)}set ngStyle(t){this._delegate.setNgStyle(t)}ngDoCheck(){this._delegate.applyChanges()}}class ne{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null}ngOnChanges(t){this._shouldRecreateView(t)?(this._viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._viewRef)),this.ngTemplateOutlet&&(this._viewRef=this._viewContainerRef.createEmbeddedView(this.ngTemplateOutlet,this.ngTemplateOutletContext))):this._viewRef&&this.ngTemplateOutletContext&&this._updateExistingContext(this.ngTemplateOutletContext)}_shouldRecreateView(t){const e=t.ngTemplateOutletContext;return!!t.ngTemplateOutlet||e&&this._hasContextShapeChanged(e)}_hasContextShapeChanged(t){const e=Object.keys(t.previousValue||{}),n=Object.keys(t.currentValue||{});if(e.length===n.length){for(let t of n)if(-1===e.indexOf(t))return!0;return!1}return!0}_updateExistingContext(t){for(let e of Object.keys(t))this._viewRef.context[e]=this.ngTemplateOutletContext[e]}}const ae=[At,Et,Lt,jt,ne,ee,Bt,Vt,Yt,Ht,Ut];function re(t,e){return Error(`InvalidPipeArgument: '${e}' for pipe '${Object(a["ɵstringify"])(t)}'`)}const oe=/((?:[^yMLdHhmsazZEwGjJ']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|J+|j+|m+|s+|a|z|Z|G+|w+))(.*)/,ie={yMMMdjms:be(he([pe("year",1),me("month",3),pe("day",1),pe("hour",1),pe("minute",1),pe("second",1)])),yMdjm:be(he([pe("year",1),pe("month",1),pe("day",1),pe("hour",1),pe("minute",1)])),yMMMMEEEEd:be(he([pe("year",1),me("month",4),me("weekday",4),pe("day",1)])),yMMMMd:be(he([pe("year",1),me("month",4),pe("day",1)])),yMMMd:be(he([pe("year",1),me("month",3),pe("day",1)])),yMd:be(he([pe("year",1),pe("month",1),pe("day",1)])),jms:be(he([pe("hour",1),pe("second",1),pe("minute",1)])),jm:be(he([pe("hour",1),pe("minute",1)]))},se={yyyy:be(pe("year",4)),yy:be(pe("year",2)),y:be(pe("year",1)),MMMM:be(me("month",4)),MMM:be(me("month",3)),MM:be(pe("month",2)),M:be(pe("month",1)),LLLL:be(me("month",4)),L:be(me("month",1)),dd:be(pe("day",2)),d:be(pe("day",1)),HH:ce(de(be(fe(pe("hour",2),!1)))),H:de(be(fe(pe("hour",1),!1))),hh:ce(de(be(fe(pe("hour",2),!0)))),h:de(be(fe(pe("hour",1),!0))),jj:be(pe("hour",2)),j:be(pe("hour",1)),mm:ce(be(pe("minute",2))),m:be(pe("minute",1)),ss:ce(be(pe("second",2))),s:be(pe("second",1)),sss:be(pe("second",3)),EEEE:be(me("weekday",4)),EEE:be(me("weekday",3)),EE:be(me("weekday",2)),E:be(me("weekday",1)),a:le(be(fe(pe("hour",1),!0))),Z:ge("short"),z:ge("long"),ww:be({}),w:be({}),G:be(me("era",1)),GG:be(me("era",2)),GGG:be(me("era",3)),GGGG:be(me("era",4))};function ce(t){return function(e,n){const a=t(e,n);return 1==a.length?"0"+a:a}}function le(t){return function(e,n){return t(e,n).split(" ")[1]}}function de(t){return function(e,n){return t(e,n).split(" ")[0]}}function ue(t,e,n){return new Intl.DateTimeFormat(e,n).format(t).replace(/[\u200e\u200f]/g,"")}function ge(t){const e={hour:"2-digit",hour12:!1,timeZoneName:t};return function(t,n){const a=ue(t,n,e);return a?a.substring(3):""}}function fe(t,e){return t.hour12=e,t}function pe(t,e){const n={};return n[t]=2===e?"2-digit":"numeric",n}function me(t,e){const n={};return n[t]=e<4?e>1?"short":"narrow":"long",n}function he(t){return t.reduce((t,e)=>Object.assign({},t,e),{})}function be(t){return(e,n)=>ue(e,n,t)}const ye=new Map;let _e=(()=>{class t{constructor(t){this._locale=t}transform(e,n="mediumDate"){if(null==e||""===e||e!=e)return null;let a;if("string"==typeof e&&(e=e.trim()),Oe(e))a=e;else if(isNaN(e-parseFloat(e)))if("string"==typeof e&&/^(\d{4}-\d{1,2}-\d{1,2})$/.test(e)){const[t,n,r]=e.split("-").map(t=>parseInt(t,10));a=new Date(t,n-1,r)}else a=new Date(e);else a=new Date(parseFloat(e));if(!Oe(a)){let n;if("string"!=typeof e||!(n=e.match(B)))throw re(t,e);a=at(n)}return class{static format(t,e,n){return function(t,e,n){const a=ie[t];if(a)return a(e,n);const r=t;let o=ye.get(r);if(!o){let e;o=[],oe.exec(t);let n=t;for(;n;)e=oe.exec(n),e?(o=o.concat(e.slice(1)),n=o.pop()):(o.push(n),n=null);ye.set(r,o)}return o.reduce((t,a)=>{const r=se[a];return t+(r?r(e,n):function(t){return"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}(a))},"")}(n,t,e)}}.format(a,this._locale,t._ALIASES[n]||n)}}return t._ALIASES={medium:"yMMMdjms",short:"yMdjm",fullDate:"yMMMMEEEEd",longDate:"yMMMMd",mediumDate:"yMMMd",shortDate:"yMd",mediumTime:"jms",shortTime:"jm"},t})();function Oe(t){return t instanceof Date&&!isNaN(t.valueOf())}function ve(t,e,n,a,r,o=null,i=!1){if(null==n)return null;if("number"!=typeof(n="string"!=typeof n||isNaN(+n-parseFloat(n))?n:+n))throw re(t,n);let s,c,l;if(a!==f.Currency&&(s=1,c=0,l=3),r){const t=r.match(ot);if(null===t)throw new Error(`${r} is not a valid digit info for number pipes`);null!=t[1]&&(s=ut(t[1])),null!=t[3]&&(c=ut(t[3])),null!=t[5]&&(l=ut(t[5]))}return class{static format(t,e,n,a={}){const{minimumIntegerDigits:r,minimumFractionDigits:o,maximumFractionDigits:i,currency:s,currencyAsSymbol:c=!1}=a,l={minimumIntegerDigits:r,minimumFractionDigits:o,maximumFractionDigits:i,style:f[n].toLowerCase()};return n==f.Currency&&(l.currency="string"==typeof s?s:void 0,l.currencyDisplay=c?"symbol":"code"),new Intl.NumberFormat(e,l).format(t)}}.format(n,e,a,{minimumIntegerDigits:s,minimumFractionDigits:c,maximumFractionDigits:l,currency:o,currencyAsSymbol:i})}class Ce{constructor(t){this._locale=t}transform(t,e){return ve(Ce,this._locale,t,f.Decimal,e)}}class Pe{constructor(t){this._locale=t}transform(t,e){return ve(Pe,this._locale,t,f.Percent,e)}}class Me{constructor(t){this._locale=t}transform(t,e="USD",n=!1,a){return ve(Me,this._locale,t,f.Currency,a,e,n)}}const xe=[Ce,Pe,Me,_e];class we{createSubscription(t,e){return t.subscribe({next:e,error:t=>{throw t}})}dispose(t){t.unsubscribe()}onDestroy(t){t.unsubscribe()}}class Te{createSubscription(t,e){return t.then(e,t=>{throw t})}dispose(t){}onDestroy(t){}}const Se=new Te,ke=new we;class Ie{constructor(t){this._ref=t,this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null,this._strategy=null}ngOnDestroy(){this._subscription&&this._dispose()}transform(t){return this._obj?t!==this._obj?(this._dispose(),this.transform(t)):Object(a["ɵlooseIdentical"])(this._latestValue,this._latestReturnedValue)?this._latestReturnedValue:(this._latestReturnedValue=this._latestValue,a.WrappedValue.wrap(this._latestValue)):(t&&this._subscribe(t),this._latestReturnedValue=this._latestValue,this._latestValue)}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,e=>this._updateLatestValue(t,e))}_selectStrategy(t){if(Object(a["ɵisPromise"])(t))return Se;if(Object(a["ɵisObservable"])(t))return ke;throw re(Ie,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._latestReturnedValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,e){t===this._obj&&(this._latestValue=e,this._ref.markForCheck())}}class Ne{transform(t){if(!t)return t;if("string"!=typeof t)throw re(Ne,t);return t.toLowerCase()}}const Re=/(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])\S*/g;class Ae{transform(t){if(!t)return t;if("string"!=typeof t)throw re(Ae,t);return t.replace(Re,t=>t[0].toUpperCase()+t.substr(1).toLowerCase())}}class Ee{transform(t){if(!t)return t;if("string"!=typeof t)throw re(Ee,t);return t.toUpperCase()}}class De{constructor(t){this.locale=t}transform(t,e="mediumDate",n,a){if(null==t||""===t||t!=t)return null;try{return K(t,e,a||this.locale,n)}catch(r){throw re(De,r.message)}}}const Le=/#/g;class qe{constructor(t){this._localization=t}transform(t,e,n){if(null==t)return"";if("object"!=typeof e||null===e)throw re(qe,e);return e[pt(t,Object.keys(e),this._localization,n)].replace(Le,t.toString())}}class je{transform(t,e){if(null==t)return"";if("object"!=typeof e||"string"!=typeof t)throw re(je,e);return e.hasOwnProperty(t)?e[t]:e.hasOwnProperty("other")?e.other:""}}class Fe{transform(t){return JSON.stringify(t,null,2)}}class ze{constructor(t){this.differs=t,this.keyValues=[]}transform(t,e=Ge){if(!t||!(t instanceof Map)&&"object"!=typeof t)return null;this.differ||(this.differ=this.differs.find(t).create());const n=this.differ.diff(t);return n&&(this.keyValues=[],n.forEachItem(t=>{this.keyValues.push({key:t.key,value:t.currentValue})}),this.keyValues.sort(e)),this.keyValues}}function Ge(t,e){const n=t.key,a=e.key;if(n===a)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(null===n)return 1;if(null===a)return-1;if("string"==typeof n&&"string"==typeof a)return n<a?-1:1;if("number"==typeof n&&"number"==typeof a)return n-a;if("boolean"==typeof n&&"boolean"==typeof a)return n<a?-1:1;const r=String(n),o=String(a);return r==o?0:r<o?-1:1}class Be{constructor(t){this._locale=t}transform(t,e,n){if(He(t))return null;n=n||this._locale;try{return lt(Ue(t),n,e)}catch(a){throw re(Be,a.message)}}}class Ve{constructor(t){this._locale=t}transform(t,e,n){if(He(t))return null;n=n||this._locale;try{return ct(Ue(t),n,e)}catch(a){throw re(Ve,a.message)}}}class Ye{constructor(t){this._locale=t}transform(t,e,n="symbol",a,r){if(He(t))return null;r=r||this._locale,"boolean"==typeof n&&(console&&console.warn&&console.warn('Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are "code", "symbol" or "symbol-narrow".'),n=n?"symbol":"code");let o=e||"USD";"code"!==n&&(o="symbol"===n||"symbol-narrow"===n?z(o,"symbol"===n?"wide":"narrow",r):n);try{return st(Ue(t),r,o,e,a)}catch(i){throw re(Ye,i.message)}}}function He(t){return null==t||""===t||t!=t}function Ue(t){if("string"==typeof t&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if("number"!=typeof t)throw new Error(`${t} is not a number`);return t}class We{transform(t,e,n){if(null==t)return t;if(!this.supports(t))throw re(We,t);return t.slice(e,n)}supports(t){return"string"==typeof t||Array.isArray(t)}}const Ke=[Ie,Ee,Ne,Fe,We,Be,Ve,Ae,Ye,De,qe,je,ze];class $e{}class Ze{}const Je=new a.InjectionToken("DocumentToken"),Xe="browser",Qe="server",tn="browserWorkerApp",en="browserWorkerUi";function nn(t){return t===Xe}function an(t){return t===Qe}function rn(t){return t===tn}function on(t){return t===en}const sn=new a.Version("8.2.14");let cn=(()=>{class t{}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({token:t,providedIn:"root",factory:()=>new ln(Object(a["ɵɵinject"])(Je),window,Object(a["ɵɵinject"])(a.ErrorHandler))}),t})();class ln{constructor(t,e,n){this.document=t,this.window=e,this.errorHandler=n,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportScrollRestoration()?[this.window.scrollX,this.window.scrollY]:[0,0]}scrollToPosition(t){this.supportScrollRestoration()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(this.supportScrollRestoration()){t=this.window.CSS&&this.window.CSS.escape?this.window.CSS.escape(t):t.replace(/(\"|\'\ |:|\.|\[|\]|,|=)/g,"\\$1");try{const e=this.document.querySelector(`#${t}`);if(e)return void this.scrollToElement(e);const n=this.document.querySelector(`[name='${t}']`);if(n)return void this.scrollToElement(n)}catch(e){this.errorHandler.handleError(e)}}}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const e=this.window.history;e&&e.scrollRestoration&&(e.scrollRestoration=t)}}scrollToElement(t){const e=t.getBoundingClientRect(),n=e.left+this.window.pageXOffset,a=e.top+this.window.pageYOffset,r=this.offset();this.window.scrollTo(n-r[0],a-r[1])}supportScrollRestoration(){try{return!!this.window&&!!this.window.scrollTo}catch(t){return!1}}}class dn{setOffset(t){}getScrollPosition(){return[0,0]}scrollToPosition(t){}scrollToAnchor(t){}setHistoryScrollRestoration(t){}}},SatO:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n("wd/R"))},SeVD:function(t,e,n){"use strict";var a=n("ngJS"),r=n("NJ4a"),o=n("Lhse"),i=n("kJWO"),s=n("I55L"),c=n("c2HN"),l=n("XoHu");n.d(e,"a",(function(){return d}));const d=t=>{if(t&&"function"==typeof t[i.a])return d=t,t=>{const e=d[i.a]();if("function"!=typeof e.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return e.subscribe(t)};if(Object(s.a)(t))return Object(a.a)(t);if(Object(c.a)(t))return n=t,t=>(n.then(e=>{t.closed||(t.next(e),t.complete())},e=>t.error(e)).then(null,r.a),t);if(t&&"function"==typeof t[o.a])return e=t,t=>{const n=e[o.a]();for(;;){const e=n.next();if(e.done){t.complete();break}if(t.next(e.value),t.closed)break}return"function"==typeof n.return&&t.add(()=>{n.return&&n.return()}),t};{const e=Object(l.a)(t)?"an invalid object":`'${t}'`;throw new TypeError(`You provided ${e} where a stream was expected.`+" You can provide an Observable, Promise, Array, or Iterable.")}var e,n,d}},SfHT:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new o.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame((function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()}))},t.prototype.updateOffset=function(){var t;this.scrollYPos<this.prevScrollYPos?t="down":this.scrollYPos>this.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([o.HostBinding("style.height.px"),o.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([o.HostBinding("style.width.px"),o.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),a([o.Component({selector:"datatable-scroller",template:"\n    <ng-content></ng-content>\n  ",host:{class:"datatable-scroll"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},SfRM:function(t,e,n){var a=n("YESw");t.exports=function(){this.__data__=a?a(null):{},this.size=0}},SgmB:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("IheW"),r=n("LRne"),o=n("5+tZ"),i=n("8Y7J"),s=n("pL04");let c=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("api/role")}delete(t){return this.http.delete(`api/role/${t}`)}get(t){return this.http.get(`api/role/${t}`)}create(t){return this.http.post("api/role",t)}clone(t,e){let n=new a.h;return n=n.append("new_name",e),this.http.post(`api/role/${t}/clone`,null,{params:n})}update(t){return this.http.put(`api/role/${t.name}`,t)}exists(t){return this.list().pipe(Object(o.a)(e=>{const n=e.some(e=>e.name===t);return Object(r.a)(n)}))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](a.c))},token:t,providedIn:s.a}),t})()},SjWX:function(t,e,n){"use strict";var a=this&&this.__spreadArrays||function(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var a=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],i=0,s=o.length;i<s;i++,r++)a[r]=o[i];return a};Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,n){this.name=t,this.version=e,this.os=n};e.BrowserInfo=r;var o=function(t){this.version=t,this.name="node",this.os=process.platform};e.NodeInfo=o;var i=function(){this.bot=!0,this.name="bot",this.version=null,this.os=null};e.BotInfo=i;var s=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["vivaldi",/Vivaldi\/([0-9\.]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/Edg\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FBAV\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["searchbot",/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/]],c=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/],["Search Bot",/(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves\/Teoma)|(ia_archiver)/]];function l(t){var e=""!==t&&s.reduce((function(e,n){var a=n[0];if(e)return e;var r=n[1].exec(t);return!!r&&[a,r]}),!1);if(!e)return null;var n=e[0],o=e[1];if("searchbot"===n)return new i;var c=o[1]&&o[1].split(/[._]/).slice(0,3);return c?c.length<3&&(c=a(c,function(t){for(var e=[],n=0;n<t;n++)e.push("0");return e}(3-c.length))):c=[],new r(n,c.join("."),d(t))}function d(t){for(var e=0,n=c.length;e<n;e++){var a=c[e],r=a[0];if(a[1].test(t))return r}return null}function u(){return"undefined"!=typeof process&&process.version?new o(process.version.slice(1)):null}e.detect=function(t){return t?l(t):"undefined"!=typeof navigator?l(navigator.userAgent):u()},e.parseUserAgent=l,e.detectOS=d,e.getNodeVersion=u},SpAZ:function(t,e,n){"use strict";function a(t){return t}n.d(e,"a",(function(){return a}))},SxV6:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("sVev"),r=n("pLZG"),o=n("IzEk"),i=n("xbPD"),s=n("XDbj"),c=n("SpAZ");function l(t,e){const n=arguments.length>=2;return l=>l.pipe(t?Object(r.a)((e,n)=>t(e,n,l)):c.a,Object(o.a)(1),n?Object(i.a)(e):Object(s.a)(()=>new a.a))}},Sxd8:function(t,e,n){var a=n("ZCgT");t.exports=function(t){var e=a(t),n=e%1;return e==e?n?e-n:e:0}},T1AV:function(t,e,n){var a=n("t2Dn"),r=n("5Tg0"),o=n("yP5f"),i=n("Q1l4"),s=n("+iFO"),c=n("03A+"),l=n("Z0cm"),d=n("3L66"),u=n("DSRE"),g=n("lSCD"),f=n("GoyQ"),p=n("YO3V"),m=n("c6wG"),h=n("itsj"),b=n("jeLo");t.exports=function(t,e,n,y,_,O,v){var C=h(t,n),P=h(e,n),M=v.get(P);if(M)a(t,n,M);else{var x=O?O(C,P,n+"",t,e,v):void 0,w=void 0===x;if(w){var T=l(P),S=!T&&u(P),k=!T&&!S&&m(P);x=P,T||S||k?l(C)?x=C:d(C)?x=i(C):S?(w=!1,x=r(P,!0)):k?(w=!1,x=o(P,!0)):x=[]:p(P)||c(P)?(x=C,c(C)?x=b(C):f(C)&&!g(C)||(x=s(P))):w=!1}w&&(v.set(P,x),_(x,P,y,O,v),v.delete(P)),a(t,n,x)}}},TJUb:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e){return a.isPlainObject(e)?a.get(e,t,t):t}}},TNUL:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Input)(),i("design:type",Number)],t.prototype,"index",void 0),o([Object(a.Input)(),i("design:type",Object)],t.prototype,"templates",void 0),o([Object(a.Component)({selector:"TreeNode, tree-node",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div\n        *ngIf="!templates.treeNodeFullTemplate"\n        [class]="node.getClass()"\n        [class.tree-node]="true"\n        [class.tree-node-expanded]="node.isExpanded && node.hasChildren"\n        [class.tree-node-collapsed]="node.isCollapsed && node.hasChildren"\n        [class.tree-node-leaf]="node.isLeaf"\n        [class.tree-node-active]="node.isActive"\n        [class.tree-node-focused]="node.isFocused"\n      >\n        <tree-node-drop-slot\n          *ngIf="index === 0"\n          [dropIndex]="node.index"\n          [node]="node.parent"\n        ></tree-node-drop-slot>\n\n        <tree-node-wrapper\n          [node]="node"\n          [index]="index"\n          [templates]="templates"\n        ></tree-node-wrapper>\n\n        <tree-node-children\n          [node]="node"\n          [templates]="templates"\n        ></tree-node-children>\n        <tree-node-drop-slot\n          [dropIndex]="node.index + 1"\n          [node]="node.parent"\n        ></tree-node-drop-slot>\n      </div>\n      <ng-container\n        [ngTemplateOutlet]="templates.treeNodeFullTemplate"\n        [ngTemplateOutletContext]="{\n          $implicit: node,\n          node: node,\n          index: index,\n          templates: templates\n        }"\n      >\n      </ng-container>\n    </ng-container>\n  '})],t)}()},TWQb:function(t,e,n){var a=n("/GqU"),r=n("UMSQ"),o=n("I8vh"),i=function(t){return function(e,n,i){var s,c=a(e),l=r(c.length),d=o(i,l);if(t&&n!=n){for(;l>d;)if((s=c[d++])!=s)return!0}else for(;l>d;d++)if((t||d in c)&&c[d]===n)return t||d||0;return!t&&-1}};t.exports={includes:i(!0),indexOf:i(!1)}},TYy9:function(t,e,n){var a=n("XGnz");t.exports=function(t){return null!=t&&t.length?a(t,1):[]}},TYzs:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){const e=parseInt(t,10);return isNaN(e)?t:t+(1===Math.floor(e/10)?"th":e%10==1?"st":e%10==2?"nd":e%10==3?"rd":"th")}}},TeQF:function(t,e,n){"use strict";var a=n("I+eb"),r=n("tycR").filter,o=n("Hd5f"),i=n("rkAj"),s=o("filter"),c=i("filter");a({target:"Array",proto:!0,forced:!s||!c},{filter:function(t){return r(this,t,arguments.length>1?arguments[1]:void 0)}})},UB5X:function(t,e,n){var a=n("NykK"),r=n("ExA7");t.exports=function(t){return"number"==typeof t||r(t)&&"[object Number]"==a(t)}},UDhR:function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<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("wd/R"))},UMSQ:function(t,e,n){var a=n("ppGB"),r=Math.min;t.exports=function(t){return t>0?r(a(t),9007199254740991):0}},"UNi/":function(t,e){t.exports=function(t,e){for(var n=-1,a=Array(t);++n<t;)a[n]=e(n);return a}},UReH:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DatatableRowDetailTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-row-detail-template]"})],(function(t){this.template=t}))}()},USCx:function(t,e,n){!function(t){"use strict";t.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],monthsShort:["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],weekdaysShort:["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],weekdaysMin:["Do","Lu","Má","Ce","Dé","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:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n("wd/R"))},UTVS:function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},UXun:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("jtHE");function r(t,e,n){let r;return r=t&&"object"==typeof t?t:{bufferSize:t,windowTime:e,refCount:!1,scheduler:n},t=>t.lift(function({bufferSize:t=Number.POSITIVE_INFINITY,windowTime:e=Number.POSITIVE_INFINITY,refCount:n,scheduler:r}){let o,i,s=0,c=!1,l=!1;return function(d){s++,o&&!c||(c=!1,o=new a.a(t,e,r),i=d.subscribe({next(t){o.next(t)},error(t){c=!0,o.error(t)},complete(){l=!0,i=void 0,o.complete()}}));const u=o.subscribe(this);this.add(()=>{s--,u.unsubscribe(),i&&!l&&n&&0===s&&(i.unsubscribe(),i=void 0,o=void 0)})}}(r))}},UfWW:function(t,e,n){var a=n("KwMD"),r=n("ut/Y"),o=n("Sxd8"),i=Math.max;t.exports=function(t,e,n){var s=null==t?0:t.length;if(!s)return-1;var c=null==n?0:o(n);return c<0&&(c=i(s+c,0)),a(t,r(e,3),c)}},UpQW:function(t,e,n){!function(t){"use strict";var e=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];t.defineLocale("ur",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,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:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n("wd/R"))},Ur1D:function(t,e,n){!function(t){"use strict";t.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(t,e,n){return t<11?"ekuseni":t<15?"emini":t<19?"entsambama":"ebusuku"},meridiemHour:function(t,e){return 12===t&&(t=0),"ekuseni"===e?t:"emini"===e?t>=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n("wd/R"))},UxlC:function(t,e,n){"use strict";var a=n("14Sl"),r=n("glrk"),o=n("ewvW"),i=n("UMSQ"),s=n("ppGB"),c=n("HYAF"),l=n("iqWW"),d=n("FMNM"),u=Math.max,g=Math.min,f=Math.floor,p=/\$([$&'`]|\d\d?|<[^>]*>)/g,m=/\$([$&'`]|\d\d?)/g;a("replace",2,(function(t,e,n,a){var h=a.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,b=a.REPLACE_KEEPS_$0,y=h?"$":"$0";return[function(n,a){var r=c(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r,a):e.call(String(r),n,a)},function(t,a){if(!h&&b||"string"==typeof a&&-1===a.indexOf(y)){var o=n(e,t,this,a);if(o.done)return o.value}var c=r(t),f=String(this),p="function"==typeof a;p||(a=String(a));var m=c.global;if(m){var O=c.unicode;c.lastIndex=0}for(var v=[];;){var C=d(c,f);if(null===C)break;if(v.push(C),!m)break;""===String(C[0])&&(c.lastIndex=l(f,i(c.lastIndex),O))}for(var P,M="",x=0,w=0;w<v.length;w++){C=v[w];for(var T=String(C[0]),S=u(g(s(C.index),f.length),0),k=[],I=1;I<C.length;I++)k.push(void 0===(P=C[I])?P:String(P));var N=C.groups;if(p){var R=[T].concat(k,S,f);void 0!==N&&R.push(N);var A=String(a.apply(void 0,R))}else A=_(T,f,S,k,N,a);S>=x&&(M+=f.slice(x,S)+A,x=S+T.length)}return M+f.slice(x)}];function _(t,n,a,r,i,s){var c=a+t.length,l=r.length,d=m;return void 0!==i&&(i=o(i),d=p),e.call(s,d,(function(e,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,a);case"'":return n.slice(c);case"<":s=i[o.slice(1,-1)];break;default:var d=+o;if(0===d)return e;if(d>l){var u=f(d/10);return 0===u?e:u<=l?void 0===r[u-1]?o.charAt(1):r[u-1]+o.charAt(1):e}s=r[d-1]}return void 0===s?"":s}))}}))},"V/fk":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},V2x9:function(t,e,n){!function(t){"use strict";t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},V3my:function(t,e,n){"use strict";var a=n("s7LF"),r=n("LvDl"),o=n("cp0P"),i=(n("DSvg"),n("SgmB"),n("20UP"),n("Mxhz"),n("OLbh")),s=n("DNAf"),c=(n("sne2"),n("oxzT")),l=n("mtw6"),d=(n("2EZI"),n("1Ni5")),u=n("oMSZ"),g=(n("aexS"),n("9nlD"),n("1nQr"),function(t){return t.editing="editing",t}({}));class f{}n.d(e,"a",(function(){return p}));class p{constructor(t,e,n,a,r,o,i,l,d,u,f,p,m){this.authService=t,this.authStorageService=e,this.route=n,this.router=a,this.modalService=r,this.roleService=o,this.userService=i,this.notificationService=l,this.i18n=d,this.actionLabels=u,this.passwordPolicyService=f,this.formBuilder=p,this.settingsService=m,this.userFormMode=g,this.messages=new s.a({empty:this.i18n("There are no roles.")},this.i18n),this.passwordPolicyHelpText="",this.icons=c.a,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.resource=this.i18n("user"),this.createForm(),this.messages=new s.a({empty:this.i18n("There are no roles.")},this.i18n)}createForm(){this.passwordPolicyService.getHelpText().subscribe(t=>{this.passwordPolicyHelpText=t}),this.userForm=this.formBuilder.group({username:["",[a.B.required]],name:[""],password:["",[],[d.a.passwordPolicy(this.userService,()=>this.userForm.getValue("username"),(t,e,n)=>{this.passwordStrengthLevelClass=this.passwordPolicyService.mapCreditsToCssClass(e),this.passwordValuation=r.defaultTo(n,"")})]],confirmpassword:[""],pwdExpirationDate:[""],email:["",[d.a.email]],roles:[[]],enabled:[!0,[a.B.required]],pwdUpdateRequired:[!0]},{validators:[d.a.match("password","confirmpassword")]})}ngOnInit(){this.router.url.startsWith("/user-management/users/edit")?(this.mode=this.userFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.minDate=new Date;const t=[this.roleService.list(),this.settingsService.getStandardSettings()];Object(o.a)(t).subscribe(t=>{if(this.allRoles=r.map(t[0],t=>(t.enabled=!0,t)),this.pwdExpirationSettings=new u.a(t[1]),this.mode===this.userFormMode.editing)this.initEdit();else if(this.pwdExpirationSettings.pwdExpirationSpan>0){const t=this.userForm.get("pwdExpirationDate"),e=new Date;e.setDate(this.minDate.getDate()+this.pwdExpirationSettings.pwdExpirationSpan),t.setValue(e),t.setValidators([a.B.required])}})}initEdit(){this.disableForEdit(),this.route.params.subscribe(t=>{this.userService.get(t.username).subscribe(t=>{this.response=r.cloneDeep(t),this.setResponse(t)})})}disableForEdit(){this.userForm.get("username").disable()}setResponse(t){["username","name","email","roles","enabled","pwdUpdateRequired"].forEach(e=>this.userForm.get(e).setValue(t[e]));const e=t.pwdExpirationDate;e&&this.userForm.get("pwdExpirationDate").setValue(new Date(1e3*e))}getRequest(){const t=new f;["username","password","name","email","roles","enabled","pwdUpdateRequired"].forEach(e=>t[e]=this.userForm.get(e).value);const e=this.userForm.get("pwdExpirationDate").value;return e&&(this.mode===this.userFormMode.editing&&this.response.pwdExpirationDate===Number(e)/1e3||e.setHours(23,59,59),t.pwdExpirationDate=Number(e)/1e3),t}createAction(){const t=this.getRequest();this.userService.create(t).subscribe(()=>{this.notificationService.show(l.a.success,this.i18n('Created user "{{username}}"',{username:t.username})),this.router.navigate(["/user-management/users"])},()=>{this.userForm.setErrors({cdSubmitButton:!0})})}editAction(){if(this.isUserRemovingNeededRolePermissions()){const t={titleText:this.i18n("Update user"),buttonText:this.i18n("Continue"),bodyTpl:this.removeSelfUserReadUpdatePermissionTpl,onSubmit:()=>{this.modalRef.hide(),this.doEditAction()},onCancel:()=>{this.userForm.setErrors({cdSubmitButton:!0}),this.userForm.get("roles").reset(this.userForm.get("roles").value)}};this.modalRef=this.modalService.show(i.a,{initialState:t})}else this.doEditAction()}isCurrentUser(){return this.authStorageService.getUsername()===this.userForm.getValue("username")}isUserChangingRoles(){return this.isCurrentUser()&&this.response&&!r.isEqual(this.response.roles,this.userForm.getValue("roles"))}isUserRemovingNeededRolePermissions(){return this.isCurrentUser()&&!this.hasUserReadUpdatePermissions(this.userForm.getValue("roles"))}hasUserReadUpdatePermissions(t=[]){for(const e of this.allRoles)if(-1!==t.indexOf(e.name)&&e.scopes_permissions.user){const t=e.scopes_permissions.user;return["read","update"].every(e=>-1!==t.indexOf(e))}return!1}doEditAction(){const t=this.getRequest();this.userService.update(t).subscribe(()=>{this.isUserChangingRoles()?this.authService.logout(()=>{this.notificationService.show(l.a.info,this.i18n("You were automatically logged out because your roles have been changed."))}):(this.notificationService.show(l.a.success,this.i18n('Updated user "{{username}}"',{username:t.username})),this.router.navigate(["/user-management/users"]))},()=>{this.userForm.setErrors({cdSubmitButton:!0})})}clearExpirationDate(){this.userForm.get("pwdExpirationDate").setValue(void 0)}submit(){this.mode===this.userFormMode.editing?this.editAction():this.createAction()}}},V5SL:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="fr-FR">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Activer/Désactiver la navigation</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Tableau de bord</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Grappe</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Serveurs</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Moniteurs</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Services</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuration</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Carte CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Modules Manager</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Journaux</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Réserves</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloc</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Images</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Mise en miroir</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Systèmes de fichiers</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Compartiments</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Sélectionner une langue</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Chargement des données du panneau...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Sélecteur d\'heure Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Réinitialiser les paramètres</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Retour</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Échec du chargement des données.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>sélectionné(e)(s)</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>trouvé(e)(s)</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nom</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Description</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Description longue</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Valeur par défaut</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Valeur par défaut du daemon</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valeurs</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Sauvegarder</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visionneuse de carte CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Chargement...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nom d\'hôte</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Ce champs est requis.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Oui.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Annuler</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Fermer</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Liste d\'hôtes</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Performance globale</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Aucune entrée trouvée</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Journaux de grappes</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Journaux d\'audit</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Chargement de la configuration...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>La configuration n\'a pas pu être chargée.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Modifier le module Manager</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>La valeur entrée n\'est pas un UUID valide, par exemple : 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>La valeur entrée doit être une adresse IP valide.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>La valeur entrée doit être un nombre.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>La valeur entrée doit être un nombre ou une valeur décimale.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Mise à jour</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Statut</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID de grappe</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap modifié</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>required con</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>required mon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Dans le quorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Hors quorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Ajouter</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Fonctionnalités</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Drapeaux OSD à l\'échelle de la grappe</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Soumettre</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avancé...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorité de récupération des OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorité</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personnaliser les valeurs de priorité</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Ce champ est obligatoire !</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>La valeur doit être comprise entre 0 et 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Réévaluer</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profondeur } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profondeur } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Liste des OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valeur</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Modifier</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Supprimer</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Santé</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiques</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clients</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Accès possible par tous les clients</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresses</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Champ obligatoire</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Doit contenir une ou plusieurs valeurs séparées par une virgule</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Par exemple :</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Type d\'accès</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Ajouter des clients</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Aucune grappe disponible --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Sélectionner la grappe --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Ajouter un daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend de stockage</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Aucune réserve de données disponible --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Sélectionner le backend de stockage --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Utilisateur Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Aucun utilisateur disponible --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Sélectionner l\'utilisateur Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID utilisateur CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Aucun client disponible --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Sélectionner le client cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nom CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Libellé de sécurité</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Activer le libellé de sécurité</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Chemin CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Le chemin doit commencer par \'/\' et peut être suivi d\'un mot</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Un nouveau répertoire sera créé</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Chemin</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Le chemin peut être constitué d\'un seul \'/\' ou d\'un seul mot</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Un compartiment sera créé</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocole NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Balise NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Les clients ne peuvent pas monter de sous-répertoires (si la balise = foo, le client ne peut pas monter foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>En utilisant différentes options de balise, il est possible d\'exporter plusieurs fois le même chemin.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>En utilisant différentes options de pseudo, il est possible d\'exporter exporter plusieurs fois le même chemin.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Aucun type d\'accès disponible --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Sélectionner le type d\'accès --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Aucun squash disponible --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Sélectionnez le type de squash d\'ID utilisateur qui est effectué --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocole de transport</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Bienvenue dans Ceph !</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nom d\'utilisateur requis</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Mot de passe requis</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Connexion</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Désolé, l\'utilisateur n\'existe pas dans Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Interdit</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Désolé, vous n\'êtes pas autorisé à voir ce que vous cherchez.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuration RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Supprimez la valeur de configuration locale. La valeur de configuration parent sera héritée et utilisée à la place.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>La valeur minimale est 0.</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Liste des réserves</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Le nom doit être exclusivement composé de caractères alphanumériques, de tirets et de traits de soulignement.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Le nom de profil du code d\'effacement sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plug-in</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Blocs de données (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Doit être égal ou supérieur à 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Blocs de codage (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Doit être égal ou supérieur à 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimateur de durabilité (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localité (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domaine de défaillance Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localité Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Aucun</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technique</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Taille de paquet</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Racine Crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Classe de périphérique Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>tout</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Répertoire</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nom...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Le nom de réserve Ceph sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Type de réserve</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Sélectionner un type de réserve --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Au moins un groupe de placements est nécessaire.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Votre grappe ne peut pas gérer autant de groupes de placements. Veuillez recalculer le nombre de groupes de placements nécessaires.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Aide au calcul</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Taille de réplication</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Drapeaux</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Écrasements EC</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Applications</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Aucun profil de code d\'effacement n\'est disponible --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Sélectionner un profil de code d\'effacement --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Jeu de règles Crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Sélectionner une règle crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Règle Crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Étapes Crush</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compression</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Mode</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algorithme</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Aucun algorithme de compression d\'effacement n\'est disponible --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Taille de blob minimale</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>par ex. 128 Kio</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>La valeur doit être supérieure à 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Taille de blob maximale</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>par ex., 512 Kio</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>La valeur doit être supérieure à la taille de blob minimale.</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rapport</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rapport de compression</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>La valeur doit se situer entre 0.0 et 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>par exemple, 10 Gio</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Détails</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Détails des performances</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Détails des niveaux de mise en cache</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Déplacer une image vers la corbeille.</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protection expire le </target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NON PROTÉGÉ</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Format de date incorrect. Veuillez utiliser "AAAA-MM-JJ HH:mm:ss"</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protection a déjà expiré. Veuillez sélectionner une date ultérieure ou laisser le champ vide.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Déplacer une image</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Présentation</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Cibles</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Authentification de la découverte</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Utilisateur</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Les noms d\'utilisateur doivent comporter entre 8 et 64 caractères et\n                        ne peuvent contenir que des lettres et les caractères \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Mot de passe</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Utilisateur commun</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Mot de passe commun</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informations disponibles :</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Cibles iSCSI non disponibles</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Réserve</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Réserve de données</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Créé</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Taille</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objets</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Taille de l\'objet</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Provisionné</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Provisionnement total</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unité de segmentation</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Nombre de segmentations</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Parent</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Préfixe du nom de bloc</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Tri</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantanés</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Ce paramètre remplace la valeur globale</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Il s\'agit de la valeur globale. Aucune valeur de cette option n\'a été définie pour cette image.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>Les caractères \'/\' et \'@\' ne sont pas autorisés.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Aucune réserve RBD disponible --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Sélectionner une réserve --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Utiliser une réserve de données dédiée</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Réserve de données</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Réserve dédiée qui stocke les données objet du RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Vous devez augmenter la taille.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avancé</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Segmentation</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unité de segmentation</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Sélectionner une unité de segmentation --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Ce champ est obligatoire, car le nombre de segments est défini.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>L\'unité de segmentation est supérieure à la taille de l\'objet.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Nombre de segments</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Ce champ est obligatoire, car l\'unité de segmentation est définie.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Le nombre de segments doit être supérieur à 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Vous êtes sur le point de revenir à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vider la corbeille</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Tout</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Réserve :</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nom de la réserve...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurer l\'image</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Pour restaurer</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>saisissez le nouveau nom de l\'image, puis cliquez sur</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nouveau nom</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Expiration le </target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protection jusqu\'au</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologie iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Il n\'est généralement pas nécessaire de modifier ces paramètres par défaut.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Paramètres</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmer</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Paramètres avancés</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN cible</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Modèle IQN incorrect.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Par exemple : iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Plus d\'informations</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Des paramètres avancés de cette cible ont été modifiés.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portails</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Ajouter un portail</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Des paramètres avancés de cette image ont été modifiés.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Ajouter une image</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Authentification ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Initiateurs</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Initiateur</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN client</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>L\'IQN de l\'initiateur doit être unique.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Les noms d\'utilisateur doivent comporter entre 8 et 64 caractères et\n                        ne peuvent contenir que des lettres et les caractères \'.\', \'@\', \'-\', \'_\' ou \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>L\'initiateur appartient à un groupe dans lequel les images seront configurées.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Aucun élément ajouté.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Ajouter un initiateur</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Groupes</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Groupe</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Ajouter un groupe</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Corbeille</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problèmes</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronisation en cours</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Prêt</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Modifier le mode de mise en miroir de la réserve</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Les grappes d\'homologues doivent être supprimées avant de désactiver la mise en miroir.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Modifier} other {Ajouter} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nom de grappe</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Le nom de grappe n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID CephX</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>L\'ID CephX n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adresses du moniteur</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Adresses séparées par une virgule...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>L\'adresse du moniteur n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Clef CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Clef Base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La clef CephX doit être codée en base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Compteurs de performance non disponibles</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Liste de daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Compteurs de performance</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Chargement des données de compartiment...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>La valeur n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Le nom sélectionné est déjà en cours d\'utilisation.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Propriétaire</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Sélectionner un utilisateur --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Activé</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Type d\'index</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Règle de placement</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marqueur</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marqueur maximum</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Version</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Version principale</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Date de modification</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Groupe de zones</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Quota de compartiments</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Taille maximale</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Illimité</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Nombre maximal d\'objets</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nom d\'utilisateur</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Sélectionner un nom d\'utilisateur --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Générer automatiquement la clef</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Clef d\'accès</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Clef secrète</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nom complet</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Adresse électronique</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspendu</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Système</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Nombre maximal de compartiments</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Utilisateurs secondaires</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Fonctionnalités</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Quota utilisateur</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Afficher</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Clefs</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Type</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Sélectionner un type --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Autorisation</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Sélectionner une autorisation --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Utilisateur secondaire</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>L\'ID d\'utilisateur secondaire sélectionné est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lire, écrire</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>complet</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Clé Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Générer automatiquement le secret</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Chargement des donnés utilisateur…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Les donnés utilisateur n\'ont pas pu être chargées.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>L\'ID utilisateur spécifié est déjà utilisé.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ceci n\'est pas une adresse électronique valide.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>L\'adresse électronique spécifiée est déjà utilisée.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Nombre max. de compartiments</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Désactivé</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personnalisé</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Clef S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Il n\'y a aucun utilisateur secondaire.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Il n\'y a pas de clefs.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Il n\'y a aucune fonctionnalité.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Taille illimitée</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Taille max.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objets illimités</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Nombre max. d\'objets</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>La valeur saisie doit être &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Description...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Autorisations</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Rôles</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmer le mot de passe</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Le mot de passe de confirmation ne correspond pas au mot de passe.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Adresse électronique</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>L\'adresse électronique n\'est pas valide.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Vous êtes sur le point de supprimer les autorisations "lecture/mise à jour utilisateur" de votre propre utilisateur.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Si vous continuez, vous ne serez plus en mesure d\'ajouter ni de supprimer des rôles pour n\'importe quel utilisateur.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Voulez-vous vraiment continuer ?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Aide</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentation</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>À propos de</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Paramètres du tableau de bord</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestion des utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Utilisateur connecté</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Se déconnecter</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Attributs (carte OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Métadonnées non disponibles</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Métadonnées</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Compteur de performance</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Écritures</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lectures</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogramme</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valeurs actuelles</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Minimum</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Maximum</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Source</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Niveau</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Mise à jour possible lors de l\'exécution (modifiable)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Balises</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valeurs d\'énuménation</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Voir aussi</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Statut de la grappe</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons du gestionnaire</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Passerelles d\'objet</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Serveurs de métadonnées</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Passerelles iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS client</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Débit client</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lectures/Écritures client</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Débit de récupération</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Nettoyer</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Performance</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacité brute</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Groupes de placements par OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Statut du groupe de placements</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacité</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Rangs</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Actuel</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Authentification de la découverte mise à jour</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Il n\'y a aucun portail disponible.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Il n\'y a aucune image disponible.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Il n\'y a aucune image disponible. Veillez à ajouter une image à la cible.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Il n\'y a aucun initiateur disponible. Veillez à ajouter un initiateur à la cible.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Cible</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>État</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Octets de lecture</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Octets d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Opérations d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O depuis</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problème</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Avancement</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Mode d\'édition</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Ajouter un homologue</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Modifier un homologue</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Supprimer un homologue</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Leader</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>nb en local</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>nb à distance</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>mettre en miroir l\'homologue</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Clef</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Aplatissement en profondeur</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Superposition</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Verrou exclusif</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Assignation d\'objet (nécessite exclusive-lock)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Journalisation (nécessite exclusive-lock)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NON PROTÉGÉ</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Retour à l\'état initial de l\'instantané RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Revenir à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Intantané RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Supprimé le</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>type</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>état</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>version</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Hôte</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>racine</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons en veille</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Rang</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Activité</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodes</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Utilisation</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Mis à jour</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>La valeur peut être mise à jour au moment de l\'exécution.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Les daemons/clients ne tirent pas cette valeur de\n  la base de données de configuration de Monitor. Nous n\'autorisons pas le réglage de cette option via \'ceph config\n  set ...\'. Cette option doit être configurée via ceph.conf ou via\n  la ligne de commande.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>L\'option ne prend effet qu\'au démarrage du daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>L\'option n\'affecte que la création des grappes.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>L\'option n\'affecte que la création des daemons.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Service</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valeur actuelle</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Modifiable</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Activer</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Désactiver</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Reconnexion en cours… Veuillez patienter.</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Adresse publique</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sessions ouvertes</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Pas rentrés</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Les OSD qui ont été marqués comme sortis ne seront pas marqués comme rentrés à leur démarrage.</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Pas sortis</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Les OSD ne seront pas marqués automatiquement comme sortis après l\'intervalle configuré.</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Pas démarrés</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>Les OSD ne sont pas autorisés à démarrer.</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Pas arrêtés</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Les rapports de défaillance des OSD sont ignorés, de sorte que les moniteurs ne marquent pas les OSD comme étant arrêtés.</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pause</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Met en pause les lectures et écritures</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Pas de nettoyage</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Nettoyage désactivé</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Pas de nettoyage en profondeur</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Le nettoyage en profondeur est désactivé</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Pas de renvoi</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Le renvoi des groupes de placements est suspendu</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Pas de récupération</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>La récupération des groupes de placements est suspendue</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Tri au niveau du bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Utiliser le tri au niveau du bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Variables snapdir purgées</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Les OSD ont converti les variables snapset</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Suppressions des récupérations</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Suppressions effectuées pendant la restauration et non l\'homologation</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Limite stricte de journalisation des groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Impose une limite stricte à la longueur du journal des groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Drapeaux OSD mis à jour</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>sorti</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>rentré</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>arrêté</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marquer</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdu</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marqué comme perdu</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Purger</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>purgé</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>détruire</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>détruit</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>supprimer</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Groupes de placements</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Octets de lecture</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Octets d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Opérations d\'écriture</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Nbre max. de renvois</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Nombre maximum de récupérations actives</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Nombre maximum de démarrages uniques de récupérations</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Mise en veille de la récupération</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Travail</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravité</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Démarré</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Utilisé</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispo.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Nettoyé</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>En cours</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Avertissement</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Inconnu</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>opérationnel</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>aucun système de fichiers</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>actif</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>veille</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon actif</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Le service NFS Ganesha n\'est pas configuré.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Utilisateur CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Système de fichiers CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(hérité de la configuration globale)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>hérité de la configuration globale</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Sélectionner le type de squashing d\'ID utilisateur effectué --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Aucun daemon n\'est disponible.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Mode cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Âge évict min.</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Âge vidage min.</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Nombre max d\'octets cibles</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Nombre max. d\'objets cibles</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Aucune application ajoutée</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Limite d\'applications atteinte</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Une réserve peut avoir quatre définitions d\'application maximum.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caractère autorisés \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La longueur maximale est de 128 caractères.</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrer ou ajouter des applications</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Ajouter une application</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Taille de la réplique</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Dernier changement</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profil de code d\'effacement</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Jeu de règles Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>compartiment</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>compartiments</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>utilisateur</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>utilisateurs</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Périmètre</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lecture</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Créer</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Rôle système</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Mettre à jour l\'utilisateur</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuer</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Vous avez été automatiquement déconnecté, car vos rôles ont changé.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Chaque objet est divisé en parties de blocs de données, chacune étant stockée sur un OSD différent.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calculez des blocs de codage pour chaque objet et stockez-les sur différents OSD.\n Le nombre de blocs de codage correspond également au nombre d\'OSD qui peuvent être arrêtés sans perdre de données.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Le plugin jerasure est le plugin le plus générique et le plus flexible,\n  c\'est aussi la valeur par défaut des réserves codées à effacement Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La technique la plus flexible est reed_sol_van_van : il suffit de définir k\n et m. La technique cauchy_good peut être plus rapide, mais vous devez choisir la taille du paquet\n avec précaution. reed_sol_r6_op, liberation, blaum_roth et liber8tion sont des équivalents RAID6\n en ce sens qu\'ils ne peuvent être configurés qu\'avec m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>L\'encodage se fera sur des paquets de taille d\'octets.\n  Choisir la bonne taille de paquet est difficile.\n  La documentation de jerasure contient de nombreuses informations à ce sujet.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Avec le plugin jerasure, lorsqu\'un objet codé à effacement est stocké sur\n plusieurs OSD, la récupération à la suite de la perte d\'un OSD nécessite la lecture de tous les autres.\n Par exemple, si jerasure est configuré avec k=8 et m=4, la perte d\'un OSD nécessite de lire\n les onze autres pour pouvoir effectuer une réparation.\n\n Le plugin de code d\'effacement lrc crée des blocs de parité locale pour permettre la récupération avec\n moins d\'OSD. Par exemple, si lrc est configuré avec k=8, m=4 et l=4,\n un bloc de parité supplémentaire est créé pour chaque groupe de quatre OSD. Lorsqu\'un seul OSD est perdu, il peut être\n récupéré avec seulement quatre OSD au lieu de onze.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Regroupez les blocs de données et de codage en ensembles de localité de taille. Par exemple,\n pour k=4 et m=2, lorsque locality=3, deux groupes de trois sont créés. Chaque ensemble peut\n être récupéré sans lire les blocs d\'un autre jeu.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Type de compartiment Crush dans lequel chaque ensemble de blocs défini\n par I sera stocké. Par exemple, s\'il est réglé sur rack, chaque groupe de blocs I sera\n placé dans un rack différent. Il est utilisé pour créer une étape de la règle CRUSH telle que l\'étape de choix\n d\'un rack. S\'il n\'est pas défini, aucun regroupement de ce type n\'est effectué.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Le plug-in isa encapsule la bibliothèque ISA. Il ne fonctionne qu\'avec des processeurs Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Le plugin ISA se présente sous deux formes Reed Solomon.\n Si reed_sol_van est défini, il équivaut à Vandermonde. Si cauchy est configuré, il équivaut à Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Le plug-in shec encapsule la bibliothèque SHEC multiple.\n Il permet à Ceph de récupérer les données plus efficacement qu\'avec les codes Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Nombre de blocs de parité, chacun incluant chaque bloc de données dans sa\n plage de calcul. Ce nombre est utilisé comme estimateur de durabilité. Par exemple, si c=2,\n 2 OSD peuvent être arrêtés sans perte de données.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nom du compartiment crush utilisé pour la première étape de la règle CRUSH.\n Par exemple, l\'étape de définition des valeurs par défaut.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Vérifiez qu\'il n\'existe pas deux blocs dans un compartiment avec le même domaine de\n défaillance. Par exemple, si le domaine de défaillance est un hôte, deux blocs ne seront pas stockés sur le même\n hôte. Cette option est utilisée pour créer une étape de la règle CRUSH telle que chooseleaf host.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restreindre le placement aux périphériques d\'une classe spécifique\n (par exemple, ssd ou hdd), en utilisant les noms des classes de périphériques crush dans la carte CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Définissez le nom du répertoire à partir duquel le plug-in de code d\'effacement est chargé.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Autoriser toutes les opérations</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Autorise uniquement les opérations qui ne modifient pas le serveur</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>N\'autorise pas les opérations de lecture ou d\'écriture, mais toutes les autres.</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>N\'autorise pas la lecture, l\'écriture ni aucune autre opération modifiant les attributs d\'un fichier ou le contenu d\'un répertoire.</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>N\'autorise aucun accès</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Sélectionner la priorité --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Faible</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Élevée</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informations</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Les 5 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Les 15 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Les 30 dernières minutes</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>La dernière heure (par défaut)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Les 3 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Les 6 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Les 12 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Les 24 dernières heures</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Hier</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Aujourd\'hui</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Depuis le début de la journée</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Avant-hier</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Les 2 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Il y a huit jours</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>La semaine dernière</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Cette semaine</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Depuis le début de la semaine</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Les 7 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Le mois dernier</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Ce mois</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Depuis le début du mois</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Les 30 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Les 90 derniers jours</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Les 6 derniers mois</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>L\'année écoulée</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>L\'année dernière</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Cette année</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Depuis le début de l\'année</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Les 2 dernières années</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Les 5 dernières années</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Aucun élément sélectionné.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Désélectionnez l\'élément pour le sélectionner à nouveau.</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Limite de sélection atteinte</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Balises de filtre</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Ajouter un badge</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Aucun élément disponible.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Cloner</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copier</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Nettoyage en profondeur</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Détruire</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Aplatir</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marquer comme arrêté</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marquer comme rentré</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marquer comme perdu</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marquer comme sorti</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Protéger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renommer</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurer</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Déplacer vers la corbeille</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Annuler la protection</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Supprimé</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Cloné</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copié</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Applati</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Purgé</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restauré</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Rétabli à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Oui</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Non</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Qualité de service</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limite de bits/s</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Limite souhaitée d\'octets E/S par seconde.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limite E/S par seconde</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Limite souhaitée d\'opérations E/S par seconde.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limite de bits/s en lecture</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Limite souhaitée de lecture d\'octets par seconde.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limite E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Limite souhaitée d\'opérations de lecture par seconde.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limite de bits/s en écriture</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Limite souhaitée d\'écriture d\'octets par seconde.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limite E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Limite souhaitée d\'opérations d\'écriture par seconde.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Rafale de bits/s</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Limite de rafale d\'octets en E/S souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Rafale E/S par seconde</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Limite de rafale d\'opérations E/S souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Rafale E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Limite de rafale d\'octets lus par seconde.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Rafale E/S par seconde en lecture</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Limite de rafale d\'opérations de lecture</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Rafale E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Limite de rafale de lectures d\'octets souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Rafale d\'E/S par seconde en écriture</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Limite de rafale d\'opérations d\'écriture souhaitée.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>En cours d\'exécution</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>exécuter</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Exécuté</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tâche inconnue</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>En cours de création</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>créer</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>En cours de mise à jour</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>mettre à jour</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>En cours de suppression</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonage en cours</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>cloner</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>En cours de copie</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copie</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Aplatissement</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>aplatir</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Retour à l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>rétablir l\'état initial</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>En cours de déplacement</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>déplacer</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Déplacé</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Impossible de trouver l\'image.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>En cours de restauration.</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurer</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>En cours de purge</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>purger</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>toutes les réserves</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Impossible de désactiver la mise en miroir, car l\'élément contient un homologue.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},V6Ve:function(t,e,n){var a=n("kekF")(Object.keys,Object);t.exports=a},VHo1:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n("rLYq"))},VOtZ:function(t,e,n){var a=n("juv8"),r=n("MvSz");t.exports=function(t,e){return a(t,r(t),e)}},VRyK:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("HDdC"),r=n("z+Ro"),o=n("bHdf"),i=n("yCtX");function s(...t){let e=Number.POSITIVE_INFINITY,n=null,s=t[t.length-1];return Object(r.a)(s)?(n=t.pop(),t.length>1&&"number"==typeof t[t.length-1]&&(e=t.pop())):"number"==typeof s&&(e=t.pop()),null===n&&1===t.length&&t[0]instanceof a.a?t[0]:Object(o.a)(e)(Object(i.a)(t,n))}},VTlA:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("mSOc"),n("ufoC");class a{constructor(t,e){this.taskMessageService=t,this.summaryService=e}init(t,e,n,a,r,o,i){this.getUpdate=t,this.preProcessing=e,this.setList=n,this.onFetchError=a,this.taskFilter=r,this.itemFilter=o,this.builders=i||{},this.summaryDataSubscription=this.summaryService.subscribe(t=>{t&&this.getUpdate().subscribe(e=>{this.updateData(e,t.executing_tasks.filter(this.taskFilter))},this.onFetchError)},this.onFetchError)}updateData(t,e){const n=this.preProcessing?this.preProcessing(t):t;this.addMissing(n,e),n.forEach(t=>{const n=e.filter(e=>this.itemFilter(t,e));t.cdExecuting=this.getTaskAction(n)}),this.setList(n)}addMissing(t,e){const n=this.builders.default;e.forEach(e=>{const a=t.find(t=>this.itemFilter(t,e)),r=this.builders[e.name];a||!r&&!n||t.push(r?r(e.metadata):n(e.metadata))})}getTaskAction(t){if(0!==t.length)return t.map(t=>{const e=t.progress?` ${t.progress}%`:"";return this.taskMessageService.getRunningText(t)+"..."+e}).join(", ")}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}}},VXsX:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("LvDl"),r=n("8Y7J");class o{constructor(t,e,n){this.name=t,this.metadata=e,this.onTaskFinished=n}}let i=(()=>{class t{constructor(){this.subscriptions=[]}init(t){return t.subscribe(t=>{if(!t)return;const e=t.executing_tasks,n=t.finished_tasks,a=[];for(const r of this.subscriptions){const t=this._getTask(r,n),o=this._getTask(r,e);null!==t&&null===o&&r.onTaskFinished(t),null!==o&&a.push(r),this.subscriptions=a}})}subscribe(t,e,n){this.subscriptions.push(new o(t,e,n))}_getTask(t,e){for(const n of e)if(n.name===t.name&&a.isEqual(n.metadata,t.metadata))return n;return null}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},"VYA+":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CVuo"),r=n("HV4d"),o=n("h+PQ");function i(t){return null==t}e.setColumnDefaults=function(t){if(t)for(var e=!1,n=0,s=t;n<s.length;n++){var c=s[n];c.$$id||(c.$$id=r.id()),i(c.prop)&&c.name&&(c.prop=a.camelCase(c.name)),c.$$valueGetter||(c.$$valueGetter=o.getterForProp(c.prop)),!i(c.prop)&&i(c.name)&&(c.name=a.deCamelCase(String(c.prop))),i(c.prop)&&i(c.name)&&(c.name=""),c.hasOwnProperty("resizeable")||(c.resizeable=!0),c.hasOwnProperty("sortable")||(c.sortable=!0),c.hasOwnProperty("draggable")||(c.draggable=!0),c.hasOwnProperty("canAutoResize")||(c.canAutoResize=!0),c.hasOwnProperty("width")||(c.width=150),c.hasOwnProperty("isTreeColumn")&&c.isTreeColumn&&!e?e=!0:c.isTreeColumn=!1}},e.isNullOrUndefined=i,e.translateTemplates=function(t){for(var e=[],n=0,a=t;n<a.length;n++){for(var r=a[n],o={},i=0,s=Object.getOwnPropertyNames(r);i<s.length;i++){var c=s[i];o[c]=r[c]}r.headerTemplate&&(o.headerTemplate=r.headerTemplate),r.cellTemplate&&(o.cellTemplate=r.cellTemplate),r.summaryFunc&&(o.summaryFunc=r.summaryFunc),r.summaryTemplate&&(o.summaryTemplate=r.summaryTemplate),e.push(o)}return e}},VaNO:function(t,e){t.exports=function(t){return this.__data__.has(t)}},Vclq:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n("wd/R"))},Vhfg:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("lJxs"),r=n("ej+x"),o=n("8Y7J"),i=n("iInd");let s=(()=>{class t{constructor(t,e){this.router=t,this.featureToggles=e}canActivate(t){return this.featureToggles.get().pipe(Object(a.a)(e=>!1!==e[t.routeConfig.path]||(this.router.navigate(["404"]),!1)))}canActivateChild(t){return this.canActivate(t.parent)}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t(o["ɵɵinject"](i.m),o["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})()},ViD7:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="cs">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Zobraz./skrýt navigaci</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Přehled</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klastr</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Stroje</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitory</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Služby</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Nastavení</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSH mapa</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Moduly správy</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Záznamy událostí</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Fondy</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blok</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Obrazy</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Zrcadlení</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Souborové systémy</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Objektová brána</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Procesy služeb</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Uživatelé</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Nádoby</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Získávají se data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> pro\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Čekejte…\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Zobrazují se data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>z mezipaměti\n  pro \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Nedaří se načíst dat \n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> pro\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Zkontrolujte zdraví klastru.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Vyčistit oznámení</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Odebrat oznámení</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Trvání:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>Nejsou zde žádná oznámení.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Úlohy a oznámení</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Vyberte jazyk</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Načítání údajů panelu…</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Nahlédněte do\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>, kde naleznete jak\n  nastavit a zapnout funkci monitorování.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana přehled neexistuje. Podívejte se do\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> jak\n  přidat přehledy do Grafany.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Volič čas Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Resetovat nastavení</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Načíst znovu</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Odebrat uživatelsky určenou hodnotu nastavení. Namísto toho bude převzato a použito výchozí nastavení.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Nemůže být vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Nemůže být nižší než 1.</target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Zpět</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Data se nepodařilo načíst</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>vybráno</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>nalezeno</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>celkem</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Název</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Popis</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Podrobnější popis</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Výchozí</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Výchozí pro proces služby</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Hodnoty</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Nemůže být vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Nemůže být nižší než \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Uložit</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>prohlížeč CRUSH mapy</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Načítání…</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Název stroje</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Tuto kolonku je třeba vyplnit.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>Zvolený název stroje už je používán.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Opravdu chcete \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Opravdu chcete označené položky \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> ?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Opravdu chcete \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> označené \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ano, opravdu to chci.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Storno</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Zavřít</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Seznam strojů</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Celková výkonnost</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Zařízení</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Nenalezeny žádné položky</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Záznamy událostí v klastra</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Auditní záznamy událostí</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priorita:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Klíčové slovo:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Datum:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Volba data</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Časový rozsah:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Načítání nastavení…</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Toto nastavení se nepodařilo načíst.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Upravit modul správy</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Zadaná hodnota není platné UUID, např.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Je třeba, aby zadaná hodnota byla platnou IP adresou.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká! Je třeba, aby byla nižší nebo rovná \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Je třeba, aby byla vyšší než nebo rovná \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Je třeba, aby zadaná hodnota byla číslo.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Je třeba, aby zadaná hodnota byla číslo nebo desítkové.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Aktualizovat</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Stav</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>Identif. kastru</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>mapa monitorů změněna</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epocha</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kvórum spojení</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kvórum monitor</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>vyžadováno spojení</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>vyžadováno monitorů</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>V kvóru</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Není v kvóru</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Přidat</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Funkce</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Příznaky OSD pro celý klastr</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Odeslat</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Pokročilé…</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Pokročilé volby nastavení</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Priorita obnovení OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Priorita</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Přizpůsobit hodnoty priority</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Tuto kolonku je třeba vyplnit!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš vysoká, je třeba, aby nebyla vyšší než \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>Zadaná hodnota je příliš nízká! Je třeba, aby byla nižší než \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Je třeba, aby hodnota byla mezi 0 a 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Znovu vyvážit</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSD \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>kontrola\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, vybrat, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, vybrat, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Seznam OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Ticha</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Vyberte atribut vůči kterému hledat shodu --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Hodnota</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Použít regulární výraz</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Upravit</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Smazat</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Úprava ticha skončí platnost původního ticha a znovu ho vytvoří jako nové ticho</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Tvůrce</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Komentář</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Čas začátku</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>Pokud čas začátku leží v minulosti, bude namísto něj použit okamžik vytvoření</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Trvání</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>Čas konce</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Zdraví</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistiky</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Ohledně nastavení a zapnutí funkce správy NFS Ganesha nahlédněte do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klienti</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Přistupovat může libovolný klient</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Adresy</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Vyžadovaná kolonka</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Je třeba, aby obsahovalo jednu nebo více čárkou oddělovaných hodnot</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Například:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Typ přístupu</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Přidat klienty</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Žádný klastr k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Vyberte klastr --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Přidat proces služby</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Podpůrná vrstva úložiště</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Žádné fondy k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Vyberte podpůrnou vrstvu úložiště --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Uživatel objektové brány</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Žádní uživatelé k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Vyberte uživatele brány objektů --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>Identif. uživatele CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Žádní klienti k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Vyberte cephx klienta --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Název CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- Žádný souborový systém CephFS k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Vyberte CephFS souborový systém --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Štítek zabezpečení</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Zapnout štítek zabezpečení</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Popis umístění CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Je třeba, aby popis umístění začínal na „/“, za kterým následuje slovo</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Bude vytvořena nová složka</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Popis umístění</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Popis umístění může být pouze jediné „/“ nebo slovo</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Bude vytvořena nová nádoba</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFS protokol</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFS štítek</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternativní přístup pro \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> připojení (nemůže začínat na /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klienti nemohou připojovat podsložky (tj. pokud Tag = neco, klient nemůže připojit neco/podslozka).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Použitím různých voleb Štítku, může to stejné umístění být exportováno vícekrát.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>Pozice kterou tento \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export zabírá\n                v \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (je třeba, aby se neopakovalo).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>By using different Pseudo options, the same Path may be exported multiple times.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Je třeba, aby Pseudo začínalo na „/“ a a nemůže obsahovat nic z následujícího: &gt;, &lt;, |, &amp;, ( nebo ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Žádný typ přístupu k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Vyberte typ přístupu --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Žádné squash k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Vyberte jaký druh squashování identifikátor uživatele je prováděn --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Transportní protokol</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Původní heslo</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>Je třeba, aby původní a nové heslo nebyly stejné</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>Nové heslo</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Zopakování zadání nového hesla</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Kontrolní zadání nového hesla se neshoduje.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Vítejte v Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Je třeba vyplnit uživatelské jméno</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Je třeba vyplnit heslo</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Přihlásit</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Je nám líto, uživatel v Ceph neexistuje.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Vrátit se na \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Přihlašovací stránku\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. Budete odhlášeni od poskytovatele identity když se pokusíte znovu přihlásit.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Odepřeno</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Omlouváme se, ale nemáte oprávnění zobrazit to, po čem se  poohlížíte.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>Data obdržena v JSON formátu verze 2.x, což je v tuto chvíli nekompatibilní s přehledem.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>výsledek SMART testu samoposouzení celkového stavu</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Informace o zařízení</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Nastavení RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Odebrat hodnotu místnímu nastavení. Namísto ní bude použita hodnota nadřazeného nastavení.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Minimální hodnota je 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Seznam fondů</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Název může být tvořen pouze písmeny a číslicemi, dále ještě spojovníky a podtržítky.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Zvolený název pro profil mazacího kódu je už používán.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Zásuvný modul</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Shluky dat (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Je třeba, aby bylo 2 a více.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Shluky kódování (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Je třeba, aby bylo 1 a více.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Odhadování odolnosti (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Umístění (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Doména selhání crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalita crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Žádné</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Technika</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Velikostpaketu</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Kořen crush</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Třída crush zařízení</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>libovolné</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Složka</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Název…</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Zvolený název pro Ceph fond je už používán.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>Není možné vytvořit RBD fond s názvem „/“ v názvu.\n              Změňte název nebo \'rbd\' odeberte ze seznamu aplikací.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Typ fondul</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Vybrat typ fondu --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Je třeba alespoň jedné skupiny umístění!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Váš klastr nemůže obsloužit tolik skupin umístění. Přepočítejte potřebné množství skupin umístění.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Nápověda k výpočtu</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Replikovaná velikost</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Nejméně: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Nejvíce: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>Zadaná velikost je mimo rozsah. Platná hodnota je\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> až \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> .\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Příznaky</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC přebití</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplikace</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil mazacího kódu</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Žádný profil mazacího kódu --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Vyberte profil mazacího kódu --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Sada pravidel crush</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Vybrat crush pravidlo --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crush pravidlo</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush kroky</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Komprese</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Režim</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmus</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Žádný algoritmus komprese mazání --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Minimální velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>např. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Hodnota by měla být vyšší než nula</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Hodnota by měla být nižší než maximální velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Nejvyšší velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>např. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Hodnota by měla být vyšší než nejnižší velikost blobu</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Poměr</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Kompresní poměr</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Hodnota by měla být z rozmezí 0.0 až 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Kvóty</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Nejvýše bajtů</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Pro vypnutí této kvóty nevyplňujte nebo zadejte 0 (nulu).</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>Platná kvóta by měla být vyšší než 0 (nula).</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>např. 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>Hodnota by měla být vyšší nebo rovna 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Podrobnosti</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Podrobnosti o výkonnosti</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Podrobnosti o stupních mezipaměti</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Přesunout obraz do koše</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Platnost ochrany skončí v</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>NECHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Chybný formát data. Použijte „RRRR-MM-DD HH:mm:ss“.</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Platnost ochrany už skončila. Zvolte budoucí datum nebo nevyplňujte.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Přesunout obraz</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Brány</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Je třeba, aby bylo vyšší nebo rovno \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Je třeba, aby bylo nižší nebo rovno \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Přehled</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Cíle</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Uživatele</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména byla 8 až 64 znaků dlouhá a\n              mohu obsahovat pouze písmena a znaky „.“, „@“, „-“, „_“ a „:“.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Heslo</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla byla 12 až 16 znaků dlouhá\n              a mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Uživatel pro vzájemné ověření</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Heslo pro vzájemné ověření</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby heslo byla 12 až 16 znaků dlouhá a\n              mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Podívejte se do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  jak nastavit a zapnout funkci správy iSCSI cílů.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informace k dispozici:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI cíl není k dispozici</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>K dispozici pouze pro RBD obrazy se zapnutým \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Fond</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Datový fond</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Vytvořeno</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Velikost</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objekty</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Velikost objektu</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Poskytováno</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>neaplikovatelné</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Celkem poskytováno</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Proužkovací jednotka</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Počet proužkování</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Nadřazené</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Předpona názvu bloku</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Pořadí</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Zachycené stavy</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Obraz</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Toto nastavení přebije globální hodnotu</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Globální</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Toto je globální hodnota. Pro tento obraz nebyla u této volby nastavena žádná hodnota.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> od\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>„/“ a „@“ nejsou dovoleny.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Žádné rbd fondy k dispozici --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Vybrat fond --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Použít vyhrazený datový fond</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Datový fond</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Vyhrazený fond který uchovává objektová data RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Je třeba zvětšit.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Pokročilé</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Proužkování</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Jednotka proužku</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Vybrat jednotku proužku --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Tuto kolonku je třeba vyplnit, protože je definován počet proužků!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Jednotka proužku je vyšší než velikost objektu.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Počet proužků</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Tuto kolonku je třeba vyplnit, protože je definována jednotka proužku!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Je třeba, aby počet proužků byl větší než nula.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Chystáte se vrátit zpět</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vysypat koš</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Vše</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Fond:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Název fondu…</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Obnovit obraz</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Pro obnovení</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>zadejte nový název pro obraz a klikněte na</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nový název</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Platnost skončila v</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Chráněno do</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>Tento obraz je chráněn do\n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologie iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Měnit tyto parametry z jejich výchozích hodnot obvykle není potřeba.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Nastavení</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Potvrdit</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Pokročilá nastavení</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN cíle</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQN nemá správný formát.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>IQN má následující formu zápisu\n                \'iqn.$rok-$mesic.$adresaObracene:$definovanyNazev\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Například: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Další informace</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Tento cíl má změněná pokročilá nastavení.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portály</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Přidat portál</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>Je třeba alespoň \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> bran.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Tento obraz má změněná nastavení.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Přidat obraz</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL ověřování</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména měla délku 8 až 64 znaků a\n                obsahovala pouze písmena a případně ještě znaky „.“, „@“, „-“, „_“ nebo „:“.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 až 16 znaků\n                a obsahovala písmena a znaky „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciátory</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciátor</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN klienta</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Je třeba, aby se IQN iniciátoru neopakovalo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Je třeba, aby uživatelská jména měla délku 8 až 64 znaků a\n                        mohou obsahovat pouze písmena a znaky „.“, „@“, „-“, „_“ nebo „:“.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 až 16 znaků\n                        a mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Je třeba, aby hesla měla délku 12 znaků 16 a\n                        mohou obsahovat pouze písmena, „@“, „-“, „_“ nebo „/“.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Iniciátor spadá do skupiny. Obrazy budou nastaveny ve skupině.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Nepřidány žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Přidat iniciátor</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Skupiny</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Skupina</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Přidat skupinu</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Koš</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>problémy</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Synchronizuje se</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Připraveno</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Upravit režim zrcadlení fondu</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Pro úpravu režimu zrcadlení pro fond \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, vyberte ze seznamu nový režim a klikněte na \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Aktualizovat\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Před vypnutím zrcadlení je třeba odebrat klastry-protějšky.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  protějšek zrcadlení fondu\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Název klastru</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Název klastru není platný</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX identif.</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX identif. …</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX identif. není platný.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Adresy monitorů</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Čárkou oddělované adresy…</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Adresa monitoru není platná.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX klíč</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Klíč v base64 kódování…</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Je třeba, aby CephX klíč byl v kódování base64.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Výkonnostní čítače nejsou k dispozici</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Podívejte se do \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>dokumentace\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  jak nastavit a zapnout funkci správy brány objektů.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Seznam procesů služeb</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Výkonnostní čítače</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Načítání dat nádoby…</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Identif.</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Hodnota není platná.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Zvolený název už je používán.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Vlastník</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Vybrat uživatele --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Cíl umístění</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Vybrat cíl umístění --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Verzování</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Zapnuto</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>Identif.</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Typ rejstříku</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Pravidlo umístění</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Označovač</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Nejvyšší označovač</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Verze</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Hlavní verze</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Okamžik úpravy</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Skupinazóny</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Kvóta nádoby</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Nejvyšší velikost</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Neomezeno</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Uživatelské jméno</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Vybrat uživatelské jméno --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Automaticky vytvořit klíč</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Přístupový klíč</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Tajný klíč</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Celé jméno</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>E-mailová adresa</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Systém</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Nejvýše nádob</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Dílčí uživatelé</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Schopnosti</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Kvóta uživatele</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Zobrazit</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Klíče</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Typ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Vybrat typ --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Oprávnění</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Vybrat oprávnění --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Dílčí uživatel</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>Zvolený identifikátor dílčího uživatele už je používán.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>číst, zapisovat</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>plné</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Swift klíč</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Automaticky vytvořit tajemství</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Načítání údajů uživatele…</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Údaje uživatele se nepodařilo načíst.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>Zvolený identif. uživatele už je používán.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Toto není platná e-mailová adresa.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Zvolená e-mailová adresa už je používána.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Nejvýše nádob</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Vypnuto</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Uživatelsky určené</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3 klíč</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Nejsou zde žádní dílčí uživatelé.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Nejsou zde žádné klíče.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Nejsou zde žádné schopnosti.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Neomezená velikost</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Nejvyšší velikost</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Neomezené objekty</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Nejvýše objektů</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Je třeba, aby zadaná hodnota byla 0 a vyšší.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Popis…</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Oprávnění</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Role</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Potvrzení zadání hesla</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Zadání hesla se neshodují.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>E-mail</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Neplatný e-mail.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Chystáte se odebrat oprávnění „uživatel číst/aktualizovat“ svému vlastnímu účtu.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Pokud budete pokračovat, nebudete nadále schopní přidávat nebo nebo odebírat role žádnému z uživatelů.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Opravdu chcete pokračovat?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Nápověda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentace</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>Aplikační program. rozhraní</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>O aplikaci</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Nastavení přehledu</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Správa uživatelů</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Přihlášený uživatel</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Přihlášeni jako\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Změnit heslo</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Odhlásit</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributy (OSD mapa)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadata nejsou k dispozici</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadata</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Stav zařízení</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Výkonnostní čítač</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram není k dispozici: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Zápisy</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Čtení</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Stávající hodnoty</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Max</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Zdroj</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Úroveň</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Je možné aktualizovat za provozu (upravitelné)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Štítky</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Vyčíslit hodnoty</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Viz také</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Stav klastru</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Procesy služby správy</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Objektové brány</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Metadata servery</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSI brány</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>vst/výst. klienta</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Propustnost klienta</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Čtení/zápis klienta</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Propustnost zotavení</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Kontrola</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Výkonnost</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Holá kapacita</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Skupin umístění na OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Stav skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapacita</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>Další podrobnosti \n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> naleznete v \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>záznamech událostí\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Hodnocení</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>čítače výkonnosti MDS</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Složky</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Klienti (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Stávající</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Aktualizováno ověřování pro objevování</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Nejsou k dispozici žádné portály.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Nejsou k dispozici žádné obrazy.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Nejsou k dispozici žádné obrazy. Ověřte, že jste cíli přidali obraz.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Nejsou k dispozici žádné iniciátory. Ověřte, že jste cíli přidali iniciátor.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>cíl</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Cíl</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target>Počet relací</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Cíl má aktivní relace</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI cíl</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Stav</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target>Počet cílů</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bajtů čtení</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bajtů zápis</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operací/s čtení</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operací/s zápis</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O od</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problém</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Ukazatel postupu</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Upravit režim</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Přidat protějšek</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Upravit protějšek</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Smazat protějšek</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Vedoucí</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>Počet místních</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>Počet vzdálených</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>zrcadlit protějšek</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Klíč</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Hluboké zploštění</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Vrstvení</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Výhradní zámek</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa objektů (vyžaduje výhradní zámek)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Žurnálování (vyžaduje výhradní zámek)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Je třeba, aby nadřazený obraz podporoval vrstvy</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>CHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>NECHRÁNĚNO</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Vrácení zachyceného stavu RBD zpět</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Vrácení zpět</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Zachycený stav RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Smazáno v</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>identif.</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>typ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>stav</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>verze</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Stroj</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>kořen</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Procesy služeb v pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Hodnocení</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Proces služby</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivita</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Struktury složek</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>I-uzlů</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Využití</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Původ</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Aktualizováno</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Hodnotu je možné aktualizovat za chodu.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Procesy služeb / klienti nezískávají tuto hodnotu\n      z databáze nastavení monitoru. Není umožněno nastavit tuto volbu\n      prostřednictvím „ceph config set …\'. Tato volba by měla být nastavena\n      z příkazového řádku.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Volba se uplatní pouze při spouštění procesu služby.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Volba ovlivní pouze vytváření klastru.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Volba ovlivní pouze vytvoření procesu služby.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Aktualizována volba nastavení \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Služba</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Stávající hodnota</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Upravitelné</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>stroj</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Popis umístění zařízení</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>K dispozici</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Aktualizována volba pro modul „\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Zapnout</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Vypnout</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>Modul Zpráva je vždy zapnutý.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Opětovné připojování, čekejte…</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Veřejná adresa</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Otevřené relace</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Počet do</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD které byly dříve odznačeny nebudou označeny nazpět když spustí</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Počet ven</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD nebudou automaticky odznačeny po nastaveném intervalu</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Počet aktivních</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD není dovoleno spuštění</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Počet neaktivních</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Hlášení o selhání OSD jsou ignorovány, jako například že monitory OSD neoznačí jako nedostupné</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pozastavit</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pozastavit čtení a zápisy</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Žádná kontrola</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Kontrola je vypnutá</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Žádná hloubková kontrola</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Hloubková kontrola je vypnutá</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Žádné zasypávání</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Zasypávání skupin umístění je pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Žádné obnovení</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Obnovování skupin umístění je pozastaveno</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Bitové třídění</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Třídit podle bitů</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Vyčištěné složky zachycených stavů</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD mají převedené sady zachycených stavů</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Smazáno při zotavování</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Mazání provedená při obnovování namísto peeringu</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Nepřekročitelný limit záznamu událostí PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Zapne nepřekročitelný limit na délku záznamu událostí v pg</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Aktualizovány OSD příznaky</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>ven</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>dovnitř</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>nedostupné</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Značka</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD ztraceno</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>označeno jako ztracené</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Vyčistit</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>vyčištěno</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>zlikvidovat</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>zlikvidováno</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>smazat</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Priorita zotavování</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>skupiny umístění</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Přečteno bajtů</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Zapsáno bajtů</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operací/s čtení</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operací/s zápis</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Označit OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Označit \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Max Backfills</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Recovery Max Active</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Recovery Max Single Start</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Uspání zotavení</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Aktualizována rychlost zotavení OSD „\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Úloha</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Závažnost</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Zahájeno</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL adresa</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>ticho</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Název atributu</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regulární výraz</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Přidejte hostitele s Prometheus do nastavení přehledu a znovu načtete stránku</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Vytvořil(a)</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Končí</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Ticho</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Popis stavu</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Použito</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>K dispozici</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Čisté</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Pracující</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Varování</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Neznámé</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Zdravé</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Chybně umístěno</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degradováno</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Odnalezeno</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>repliky</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>aktivní</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>žádné souborové systémy</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktivní</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>v pohotovosti</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>neaplikovatelné</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>aktivní proces služby</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kvórum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Služba NFS Ganesha není nastavena.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFS uživatel</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Souborový systém CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(převzato z globálního nastavení)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>převzato z globálního nastavení</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Vyberte jaký druh squashování identifikátor uživatele je prováděn --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Nejsou k dispozici žádné procesy služeb.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC profil</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Režim mezipaměti</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min Evict Age</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min Flush Age</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Nejvýše bajtů cíle</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Nejvýše objektů cíle</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Nebyla přidána žádná aplikace</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Dosažen limit aplikací</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Fond může mít nejvýše čtyři definice aplikací.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Použitelné znaky „_a-zA-Z0-9“</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Nejvyšší délka je 128 znaků</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrovat nebo přidat aplikace</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Přidat aplikaci</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>fond</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil mazacího kódu</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Velikost repliky</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Nejnovější změna</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Mazáním kódovaný profil</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Sada crush pravidel</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Smazání fondu je vypnuto nastavením mon_allow_pool_delete configuration.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>nádoba</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Vytvořena nádoba objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>nádoby</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>schopnost</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>uživatel</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>dílčí uživatel</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 klíč</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Aktualizován uživatel objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Vytvořen uživatel objektové brány „\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>uživatelé</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift klíč</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>Vyskytla se chyba s kódem \n          <x id="INTERPOLATION" equiv-text="{{code}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Nezpracované</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Práh</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>Když se nezdařilo</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Nejhorší</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Rozsah</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Čtení</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Vytvořit</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Vytvořena role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Aktualizována role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Systémová role</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Smazána role „\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>Nejsou zde žádné role.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Vytvořen uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Aktualizovat uživatele</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Pokračovat</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Byli jste automaticky odhlášeni protože vaše role byly změněny.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Aktualizován uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Smazán uživatel „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Nepodařilo se smazat uživatele „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>Nyní jste přihlášení jako „\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>“.\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>heslo</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Aktualizované heslo uživatele"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Každý objekt je rozdělen v částech shluků dat, každé uložené na jiném OSD.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Počítat kódovací shluky pro každý objekt a ukládat je na různých OSD.\n      Počet kódovacích shluků je také počet OSD, které mohou vypadnou, aniž dojde ke ztrátě dat.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Zásuvný modul jerasure je nejobecnější a nejpřizpůsobivější,\n je také výchozí pro Ceph fondy kódované mazáním.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Přizpůsobivější technikou je reed_sol_van: postačí nastvit k\n          a m. Technika cauchy_good technique může být rychlejší, ale je třeba pečlivě nastavit velikost\n          paketu. Všechny z reed_sol_r6_op, liberation, blaum_roth, liber8tion jsou ekvivalenty RAID6\n          v tom smyslu, že je možné je nastavit pouze s m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Zásuvný modul isa obaluje knihovnu ISA. Funguje pouze na procesorech Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Zásuvný modul ISA přichází ve dvou Reed Solomon podobách.\n          Pokud je nastaveno reed_sol_van, je to Vandermonde, pokud je nastaveno Cauchy, je Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Počet paritních shluků, ze kterých každý obsahuje každý shluk dat ve svém\n          výpočetním rozsahu. Číslo je použito pro odhad odolnosti. Například, pokud c=2,\n          2 OSD mohou vypadnou aniž by byla ztracena data.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Název crush nádoby sloužící jako první krok CRUSH pravidla.\n Například krok vzít výchozí.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Zajistit, aby žádné dva shluky nebyly v nádobě nacházejícící se ve stejné\n      doméně selhání. Například, pokud doména selhání je hostitel, žádné dva shluky nebudou uloženy na stejném hostiteli\n      Je použito pro vytvoření kroku CRUSH pravidla jako krok chooseleaf hostitele.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Omezit umístění na zařízení určité třídy\n      (např., ssd nebo hdd), pomocí názvu crush třídy zařízení v  CRUSH mapě.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Nastavit složku ze které načítat zásuvný modul mazacího kódu.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Umožnit všechny operace</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Umožnit pouze operace které neupraví server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Neumožňuje operace čtení či zápisu, ale umožňuje ostatní</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Neumožňuje čtení, zápis nebo jinou operaci která upravuje atributy        souboru nebo obsah složky</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Neumožnit vůbec žádný přístup</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Vyberte prioritu --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Nízká</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Vysoká</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Chyba</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informace</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Úspěch</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Uplynulých 5 minut</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Uplynulých 15 minut</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Uplynulých 30 minut</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Uplynulá 1 hodina (výchozí)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Uplynulé 3 hodiny</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Uplynulých 6 hodin</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Uplynulých 12 hodin</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Uplynulých 24 hodin</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Včera</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Dnes</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Dnes doposud</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Včerejšek</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Uplynulé 2 dny</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Tento den minulý týden</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Předchozí týden</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Tento týden</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Tento týden doposud</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Uplynulých 7 dnů</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Předchozí měsíc</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Tento měsíc</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Tento měsíc doposud</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Uplynulých 30 dnů</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Uplynulých 90 dnů</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Uplynulých 6 měsíců</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>Uplynulý 1 rok</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Předchozí rok</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Tento rok</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Tento rok doposud</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Uplynulé 2 roky</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Uplynulých 5 let</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Nevybrány žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Aby položku bylo možné znovu vybrat, je třeba nejprve zrušit její výběr</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Dosažen limit výběru</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtrovat štítky</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Přidat odznak</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Nejsou k dispozici žádné položky.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Odebrat</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klonovat</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Kopírovat</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Hloubková kontrola</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Zlikvidovat</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Zploštit</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Označit</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Označit</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Označit ztracené</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Odznačit</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Ochránit</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Přejmenovat</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Obnovit</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Přesunout do koše</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Zrušit ochranu</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Změnit</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Znovuvytvořit</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Ukončit platnost</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Smazáno</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Přidáno</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Odebráno</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Upraveno</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Zrušeno</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Naklonováno</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Zkopírováno</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Zlikvidováno</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Zploštěno</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Označeno jako ztracené</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Chráněno</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Vyčištěno</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Přejmenováno</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Obnoveno</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Vzato zpět</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Zobrazeno</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Přesunout do koše</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Ochrana zrušena</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Znovu vytvořeno</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Platnost skončila</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ano</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Ne</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>žádné aktivní výstrahy</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>Jedna aktivní výstraha</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> aktivních výstrah\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Odpovídá jednomu pravidlu</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Odpovídá \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> pravidlům\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> s \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Kvalita služby</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Požadovaný limit vst./výstup. bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit vst/výstup. operací / s</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Požadovaný limit vst./výstup. operací za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limit BPS čtení</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Požadovaný limit čtení bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limit IOPS čtení</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Požadovaný limit operací čtení za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit BPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Požadovaný limit zápisu bajtů za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit IOPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Požadovaný limit operací čtení za sekundu.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPS dávka</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Požadovaný limit dávky bajtů vstup/výstupu.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPS dávka</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Požadovaný limit dávky vst./výstup. operací.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Dávka BPS čtení</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Požadovaný limit dávky bajtů čtení.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Dávka IOPS čtení</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Požadovaný limit dávky čtení bajtů.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Dávka BPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Požadovaný limit bajtů dávky zápisu.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Dávka IOPS zápisu</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Požadovaný limit dávky operace zápisu.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Nepodařilo se \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Vykonává se</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>vykonat</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Vykonáno</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>neznámý úkol</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Vytváří se</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>vytvořit</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Aktualizuje se</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>aktualizovat</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Maže se</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Přidávání</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>přidat</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Odebírání</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>odebrat</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD zachycený stav „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>režim zrcadlení pro fond „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>protějšek zrcadlení pro fond „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>všechny přehledy</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Název už je používán \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> obsahuje zachycené stavy.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Klonuje se</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klonovat</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Je třeba, aby zachycený stav \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> byl chráněný.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Kopíruje se</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>zkopírovat</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Zploštění</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>zploštit</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Název už je používán pro \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Není možné zrušit ochranu \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>, protože obsahuje podřízené obrazy.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> není možné smazat, protože je chráněné.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Bere se zpět</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>vzít zpět</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Přesouvá se</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>přesunout</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Přesunuto</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ do koše\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Obraz se nedaří najít.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Obnovuje se</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>obnovit</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ do „\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Název „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“ už je používán pro jiný obraz.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>obraz „\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Čistí se</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>vyčistit</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>všechny fondy</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>obrazy z \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Zrcadlení nelze vypnout protože obsahuje protějšek.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>stroj „\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>fond „\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>profil mazacího kódu „\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>cíl „\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>“\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},VpIT:function(t,e,n){var a=n("xDBR"),r=n("xs3f");(t.exports=function(t,e){return r[t]||(r[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.6.4",mode:a?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},Vu81:function(t,e,n){var a=n("0GbY"),r=n("JBy8"),o=n("dBg+"),i=n("glrk");t.exports=a("Reflect","ownKeys")||function(t){var e=r.f(i(t)),n=o.f;return n?e.concat(n(t)):e}},WF9J:function(t,e,n){"use strict";n("TeQF"),n("QWBl"),n("4mDm"),n("zKZe"),n("07d7"),n("4l63"),n("PKPk"),n("ENF9"),n("3bBZ");var a=n("hKI/"),r=n.n(a),o=n("9/5/"),i=n.n(o),s=n("uyHG"),c=n.n(s),l=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some((function(t,a){return t[0]===e&&(n=a,!0)})),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),a=this.__entries__[n];return a&&a[1]},e.prototype.set=function(e,n){var a=t(this.__entries__,e);~a?this.__entries__[a][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,a=t(n,e);~a&&n.splice(a,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,a=this.__entries__;n<a.length;n++){var r=a[n];t.call(e,r[1],r[0])}},e}()}(),d="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,u="undefined"!=typeof global&&global.Math===Math?global:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),g="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(u):function(t){return setTimeout((function(){return t(Date.now())}),1e3/60)},f=["top","right","bottom","left","width","height","size","weight"],p="undefined"!=typeof MutationObserver,m=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(t,e){var n=!1,a=!1,r=0;function o(){n&&(n=!1,t()),a&&s()}function i(){g(o)}function s(){var t=Date.now();if(n){if(t-r<2)return;a=!0}else n=!0,a=!1,setTimeout(i,20);r=t}return s}(this.refresh.bind(this))}return t.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},t.prototype.removeObserver=function(t){var e=this.observers_,n=e.indexOf(t);~n&&e.splice(n,1),!e.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},t.prototype.updateObservers_=function(){var t=this.observers_.filter((function(t){return t.gatherActive(),t.hasActive()}));return t.forEach((function(t){return t.broadcastActive()})),t.length>0},t.prototype.connect_=function(){d&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),p?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){d&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;f.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),h=function(t,e){for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];Object.defineProperty(t,r,{value:e[r],enumerable:!1,writable:!1,configurable:!0})}return t},b=function(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView||u},y=C(0,0,0,0);function _(t){return parseFloat(t)||0}function O(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce((function(e,n){return e+_(t["border-"+n+"-width"])}),0)}var v="undefined"!=typeof SVGGraphicsElement?function(t){return t instanceof b(t).SVGGraphicsElement}:function(t){return t instanceof b(t).SVGElement&&"function"==typeof t.getBBox};function C(t,e,n,a){return{x:t,y:e,width:n,height:a}}var P=function(){function t(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=C(0,0,0,0),this.target=t}return t.prototype.isActive=function(){var t,e=(t=this.target,d?v(t)?function(t){var e=t.getBBox();return C(0,0,e.width,e.height)}(t):function(t){var e=t.clientWidth,n=t.clientHeight;if(!e&&!n)return y;var a=b(t).getComputedStyle(t),r=function(t){for(var e={},n=0,a=["top","right","bottom","left"];n<a.length;n++){var r=a[n];e[r]=_(t["padding-"+r])}return e}(a),o=r.left+r.right,i=r.top+r.bottom,s=_(a.width),c=_(a.height);if("border-box"===a.boxSizing&&(Math.round(s+o)!==e&&(s-=O(a,"left","right")+o),Math.round(c+i)!==n&&(c-=O(a,"top","bottom")+i)),!function(t){return t===b(t).document.documentElement}(t)){var l=Math.round(s+o)-e,d=Math.round(c+i)-n;1!==Math.abs(l)&&(s-=l),1!==Math.abs(d)&&(c-=d)}return C(r.left,r.top,s,c)}(t):y);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},t}(),M=function(t,e){var n,a,r,o,i,s,c,l=(a=(n=e).x,r=n.y,o=n.width,i=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,c=Object.create(s.prototype),h(c,{x:a,y:r,width:o,height:i,top:r,right:a+o,bottom:i+r,left:a}),c);h(this,{target:t,contentRect:l})},x=function(){function t(t,e,n){if(this.activeObservations_=[],this.observations_=new l,"function"!=typeof t)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=e,this.callbackCtx_=n}return t.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof b(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new P(t)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof b(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)&&(e.delete(t),e.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach((function(e){e.isActive()&&t.activeObservations_.push(e)}))},t.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map((function(t){return new M(t.target,t.broadcastRect())}));this.callback_.call(t,e,t),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),w="undefined"!=typeof WeakMap?new WeakMap:new l,T=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=m.getInstance(),a=new x(e,n,this);w.set(this,a)};["observe","unobserve","disconnect"].forEach((function(t){T.prototype[t]=function(){var e;return(e=w.get(this))[t].apply(e,arguments)}}));var S=void 0!==u.ResizeObserver?u.ResizeObserver:T,k=n("AxL3"),I=n.n(k),N=(n("E9XD"),n("sMBO"),n("rB9j"),n("Rm1S"),n("UxlC"),null),R=null;function A(){if(null===N){if("undefined"==typeof document)return N=0;var t=document.body,e=document.createElement("div");e.classList.add("simplebar-hide-scrollbar"),t.appendChild(e);var n=e.getBoundingClientRect().right;t.removeChild(e),N=n}return N}function E(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView?t.ownerDocument.defaultView:window}function D(t){return t&&t.ownerDocument?t.ownerDocument:document}I.a&&window.addEventListener("resize",(function(){R!==window.devicePixelRatio&&(R=window.devicePixelRatio,N=null)}));var L=function(){function t(e,n){var a=this;this.onScroll=function(){var t=E(a.el);a.scrollXTicking||(t.requestAnimationFrame(a.scrollX),a.scrollXTicking=!0),a.scrollYTicking||(t.requestAnimationFrame(a.scrollY),a.scrollYTicking=!0)},this.scrollX=function(){a.axis.x.isOverflowing&&(a.showScrollbar("x"),a.positionScrollbar("x")),a.scrollXTicking=!1},this.scrollY=function(){a.axis.y.isOverflowing&&(a.showScrollbar("y"),a.positionScrollbar("y")),a.scrollYTicking=!1},this.onMouseEnter=function(){a.showScrollbar("x"),a.showScrollbar("y")},this.onMouseMove=function(t){a.mouseX=t.clientX,a.mouseY=t.clientY,(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseMoveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseMoveForAxis("y")},this.onMouseLeave=function(){a.onMouseMove.cancel(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&a.onMouseLeaveForAxis("x"),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&a.onMouseLeaveForAxis("y"),a.mouseX=-1,a.mouseY=-1},this.onWindowResize=function(){a.scrollbarWidth=a.getScrollbarWidth(),a.hideNativeScrollbar()},this.hideScrollbars=function(){a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.track.rect)||(a.axis.y.scrollbar.el.classList.remove(a.classNames.visible),a.axis.y.isVisible=!1),a.isWithinBounds(a.axis.x.track.rect)||(a.axis.x.scrollbar.el.classList.remove(a.classNames.visible),a.axis.x.isVisible=!1)},this.onPointerEvent=function(t){var e,n;a.axis.x.track.rect=a.axis.x.track.el.getBoundingClientRect(),a.axis.y.track.rect=a.axis.y.track.el.getBoundingClientRect(),(a.axis.x.isOverflowing||a.axis.x.forceVisible)&&(e=a.isWithinBounds(a.axis.x.track.rect)),(a.axis.y.isOverflowing||a.axis.y.forceVisible)&&(n=a.isWithinBounds(a.axis.y.track.rect)),(e||n)&&(t.preventDefault(),t.stopPropagation(),"mousedown"===t.type&&(e&&(a.axis.x.scrollbar.rect=a.axis.x.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.x.scrollbar.rect)?a.onDragStart(t,"x"):a.onTrackClick(t,"x")),n&&(a.axis.y.scrollbar.rect=a.axis.y.scrollbar.el.getBoundingClientRect(),a.isWithinBounds(a.axis.y.scrollbar.rect)?a.onDragStart(t,"y"):a.onTrackClick(t,"y"))))},this.drag=function(e){var n=a.axis[a.draggedAxis].track,r=n.rect[a.axis[a.draggedAxis].sizeAttr],o=a.axis[a.draggedAxis].scrollbar,i=a.contentWrapperEl[a.axis[a.draggedAxis].scrollSizeAttr],s=parseInt(a.elStyles[a.axis[a.draggedAxis].sizeAttr],10);e.preventDefault(),e.stopPropagation();var c=(("y"===a.draggedAxis?e.pageY:e.pageX)-n.rect[a.axis[a.draggedAxis].offsetAttr]-a.axis[a.draggedAxis].dragOffset)/(r-o.size)*(i-s);"x"===a.draggedAxis&&(c=a.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?c-(r+o.size):c,c=a.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-c:c),a.contentWrapperEl[a.axis[a.draggedAxis].scrollOffsetAttr]=c},this.onEndDrag=function(t){var e=D(a.el),n=E(a.el);t.preventDefault(),t.stopPropagation(),a.el.classList.remove(a.classNames.dragging),e.removeEventListener("mousemove",a.drag,!0),e.removeEventListener("mouseup",a.onEndDrag,!0),a.removePreventClickId=n.setTimeout((function(){e.removeEventListener("click",a.preventClick,!0),e.removeEventListener("dblclick",a.preventClick,!0),a.removePreventClickId=null}))},this.preventClick=function(t){t.preventDefault(),t.stopPropagation()},this.el=e,this.minScrollbarWidth=20,this.options=Object.assign({},t.defaultOptions,{},n),this.classNames=Object.assign({},t.defaultOptions.classNames,{},this.options.classNames),this.axis={x:{scrollOffsetAttr:"scrollLeft",sizeAttr:"width",scrollSizeAttr:"scrollWidth",offsetSizeAttr:"offsetWidth",offsetAttr:"left",overflowAttr:"overflowX",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}},y:{scrollOffsetAttr:"scrollTop",sizeAttr:"height",scrollSizeAttr:"scrollHeight",offsetSizeAttr:"offsetHeight",offsetAttr:"top",overflowAttr:"overflowY",dragOffset:0,isOverflowing:!0,isVisible:!1,forceVisible:!1,track:{},scrollbar:{}}},this.removePreventClickId=null,t.instances.has(this.el)||(this.recalculate=r()(this.recalculate.bind(this),64),this.onMouseMove=r()(this.onMouseMove.bind(this),64),this.hideScrollbars=i()(this.hideScrollbars.bind(this),this.options.timeout),this.onWindowResize=i()(this.onWindowResize.bind(this),64,{leading:!0}),t.getRtlHelpers=c()(t.getRtlHelpers),this.init())}t.getRtlHelpers=function(){var e=document.createElement("div");e.innerHTML='<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';var n=e.firstElementChild;document.body.appendChild(n);var a=n.firstElementChild;n.scrollLeft=0;var r=t.getOffset(n),o=t.getOffset(a);n.scrollLeft=999;var i=t.getOffset(a);return{isRtlScrollingInverted:r.left!==o.left&&o.left-i.left!=0,isRtlScrollbarInverted:r.left!==o.left}},t.getOffset=function(t){var e=t.getBoundingClientRect(),n=D(t),a=E(t);return{top:e.top+(a.pageYOffset||n.documentElement.scrollTop),left:e.left+(a.pageXOffset||n.documentElement.scrollLeft)}};var e=t.prototype;return e.init=function(){t.instances.set(this.el,this),I.a&&(this.initDOM(),this.scrollbarWidth=this.getScrollbarWidth(),this.recalculate(),this.initListeners())},e.initDOM=function(){var t=this;if(D(this.el),Array.prototype.filter.call(this.el.children,(function(e){return e.classList.contains(t.classNames.wrapper)})).length)this.wrapperEl=this.el.querySelector("."+this.classNames.wrapper),this.contentWrapperEl=this.options.scrollableNode||this.el.querySelector("."+this.classNames.contentWrapper),this.contentEl=this.options.contentNode||this.el.querySelector("."+this.classNames.contentEl),this.offsetEl=this.el.querySelector("."+this.classNames.offset),this.maskEl=this.el.querySelector("."+this.classNames.mask),this.placeholderEl=this.findChild(this.wrapperEl,"."+this.classNames.placeholder),this.heightAutoObserverWrapperEl=this.el.querySelector("."+this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl=this.el.querySelector("."+this.classNames.heightAutoObserverEl),this.axis.x.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.horizontal),this.axis.y.track.el=this.findChild(this.el,"."+this.classNames.track+"."+this.classNames.vertical);else{for(this.wrapperEl=document.createElement("div"),this.contentWrapperEl=document.createElement("div"),this.offsetEl=document.createElement("div"),this.maskEl=document.createElement("div"),this.contentEl=document.createElement("div"),this.placeholderEl=document.createElement("div"),this.heightAutoObserverWrapperEl=document.createElement("div"),this.heightAutoObserverEl=document.createElement("div"),this.wrapperEl.classList.add(this.classNames.wrapper),this.contentWrapperEl.classList.add(this.classNames.contentWrapper),this.offsetEl.classList.add(this.classNames.offset),this.maskEl.classList.add(this.classNames.mask),this.contentEl.classList.add(this.classNames.contentEl),this.placeholderEl.classList.add(this.classNames.placeholder),this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl),this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);this.el.firstChild;)this.contentEl.appendChild(this.el.firstChild);this.contentWrapperEl.appendChild(this.contentEl),this.offsetEl.appendChild(this.contentWrapperEl),this.maskEl.appendChild(this.offsetEl),this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl),this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl),this.wrapperEl.appendChild(this.maskEl),this.wrapperEl.appendChild(this.placeholderEl),this.el.appendChild(this.wrapperEl)}if(!this.axis.x.track.el||!this.axis.y.track.el){var e=document.createElement("div"),n=document.createElement("div");e.classList.add(this.classNames.track),n.classList.add(this.classNames.scrollbar),e.appendChild(n),this.axis.x.track.el=e.cloneNode(!0),this.axis.x.track.el.classList.add(this.classNames.horizontal),this.axis.y.track.el=e.cloneNode(!0),this.axis.y.track.el.classList.add(this.classNames.vertical),this.el.appendChild(this.axis.x.track.el),this.el.appendChild(this.axis.y.track.el)}this.axis.x.scrollbar.el=this.axis.x.track.el.querySelector("."+this.classNames.scrollbar),this.axis.y.scrollbar.el=this.axis.y.track.el.querySelector("."+this.classNames.scrollbar),this.options.autoHide||(this.axis.x.scrollbar.el.classList.add(this.classNames.visible),this.axis.y.scrollbar.el.classList.add(this.classNames.visible)),this.el.setAttribute("data-simplebar","init")},e.initListeners=function(){var t=this,e=E(this.el);this.options.autoHide&&this.el.addEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.addEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.addEventListener("mousemove",this.onMouseMove),this.el.addEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.addEventListener("scroll",this.onScroll),e.addEventListener("resize",this.onWindowResize);var n=!1;this.resizeObserver=new(e.ResizeObserver||S)((function(){n&&t.recalculate()})),this.resizeObserver.observe(this.el),this.resizeObserver.observe(this.contentEl),e.requestAnimationFrame((function(){n=!0})),this.mutationObserver=new e.MutationObserver(this.recalculate),this.mutationObserver.observe(this.contentEl,{childList:!0,subtree:!0,characterData:!0})},e.recalculate=function(){var t=E(this.el);this.elStyles=t.getComputedStyle(this.el),this.isRtl="rtl"===this.elStyles.direction;var e=this.heightAutoObserverEl.offsetHeight<=1,n=this.heightAutoObserverEl.offsetWidth<=1,a=this.contentEl.offsetWidth,r=this.contentWrapperEl.offsetWidth,o=this.elStyles.overflowX,i=this.elStyles.overflowY;this.contentEl.style.padding=this.elStyles.paddingTop+" "+this.elStyles.paddingRight+" "+this.elStyles.paddingBottom+" "+this.elStyles.paddingLeft,this.wrapperEl.style.margin="-"+this.elStyles.paddingTop+" -"+this.elStyles.paddingRight+" -"+this.elStyles.paddingBottom+" -"+this.elStyles.paddingLeft;var s=this.contentEl.scrollHeight,c=this.contentEl.scrollWidth;this.contentWrapperEl.style.height=e?"auto":"100%",this.placeholderEl.style.width=n?a+"px":"auto",this.placeholderEl.style.height=s+"px";var l=this.contentWrapperEl.offsetHeight;this.axis.x.isOverflowing=c>a,this.axis.y.isOverflowing=s>l,this.axis.x.isOverflowing="hidden"!==o&&this.axis.x.isOverflowing,this.axis.y.isOverflowing="hidden"!==i&&this.axis.y.isOverflowing,this.axis.x.forceVisible="x"===this.options.forceVisible||!0===this.options.forceVisible,this.axis.y.forceVisible="y"===this.options.forceVisible||!0===this.options.forceVisible,this.hideNativeScrollbar();var d=this.axis.x.isOverflowing?this.scrollbarWidth:0;this.axis.x.isOverflowing=this.axis.x.isOverflowing&&c>r-(this.axis.y.isOverflowing?this.scrollbarWidth:0),this.axis.y.isOverflowing=this.axis.y.isOverflowing&&s>l-d,this.axis.x.scrollbar.size=this.getScrollbarSize("x"),this.axis.y.scrollbar.size=this.getScrollbarSize("y"),this.axis.x.scrollbar.el.style.width=this.axis.x.scrollbar.size+"px",this.axis.y.scrollbar.el.style.height=this.axis.y.scrollbar.size+"px",this.positionScrollbar("x"),this.positionScrollbar("y"),this.toggleTrackVisibility("x"),this.toggleTrackVisibility("y")},e.getScrollbarSize=function(t){if(void 0===t&&(t="y"),!this.axis[t].isOverflowing)return 0;var e,n=this.axis[t].track.el[this.axis[t].offsetSizeAttr];return e=Math.max(~~(n/this.contentEl[this.axis[t].scrollSizeAttr]*n),this.options.scrollbarMinSize),this.options.scrollbarMaxSize&&(e=Math.min(e,this.options.scrollbarMaxSize)),e},e.positionScrollbar=function(e){if(void 0===e&&(e="y"),this.axis[e].isOverflowing){var n=this.contentWrapperEl[this.axis[e].scrollSizeAttr],a=this.axis[e].track.el[this.axis[e].offsetSizeAttr],r=parseInt(this.elStyles[this.axis[e].sizeAttr],10),o=this.axis[e].scrollbar,i=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],s=~~((i="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollingInverted?-i:i)/(n-r)*(a-o.size));s="x"===e&&this.isRtl&&t.getRtlHelpers().isRtlScrollbarInverted?s+(a-o.size):s,o.el.style.transform="x"===e?"translate3d("+s+"px, 0, 0)":"translate3d(0, "+s+"px, 0)"}},e.toggleTrackVisibility=function(t){void 0===t&&(t="y");var e=this.axis[t].track.el,n=this.axis[t].scrollbar.el;this.axis[t].isOverflowing||this.axis[t].forceVisible?(e.style.visibility="visible",this.contentWrapperEl.style[this.axis[t].overflowAttr]="scroll"):(e.style.visibility="hidden",this.contentWrapperEl.style[this.axis[t].overflowAttr]="hidden"),n.style.display=this.axis[t].isOverflowing?"block":"none"},e.hideNativeScrollbar=function(){this.offsetEl.style[this.isRtl?"left":"right"]=this.axis.y.isOverflowing||this.axis.y.forceVisible?"-"+this.scrollbarWidth+"px":0,this.offsetEl.style.bottom=this.axis.x.isOverflowing||this.axis.x.forceVisible?"-"+this.scrollbarWidth+"px":0},e.onMouseMoveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.rect=this.axis[t].track.el.getBoundingClientRect(),this.axis[t].scrollbar.rect=this.axis[t].scrollbar.el.getBoundingClientRect(),this.isWithinBounds(this.axis[t].scrollbar.rect)?this.axis[t].scrollbar.el.classList.add(this.classNames.hover):this.axis[t].scrollbar.el.classList.remove(this.classNames.hover),this.isWithinBounds(this.axis[t].track.rect)?(this.showScrollbar(t),this.axis[t].track.el.classList.add(this.classNames.hover)):this.axis[t].track.el.classList.remove(this.classNames.hover)},e.onMouseLeaveForAxis=function(t){void 0===t&&(t="y"),this.axis[t].track.el.classList.remove(this.classNames.hover),this.axis[t].scrollbar.el.classList.remove(this.classNames.hover)},e.showScrollbar=function(t){void 0===t&&(t="y"),this.axis[t].isVisible||(this.axis[t].scrollbar.el.classList.add(this.classNames.visible),this.axis[t].isVisible=!0),this.options.autoHide&&this.hideScrollbars()},e.onDragStart=function(t,e){void 0===e&&(e="y");var n=D(this.el),a=E(this.el);this.axis[e].dragOffset=("y"===e?t.pageY:t.pageX)-this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],this.draggedAxis=e,this.el.classList.add(this.classNames.dragging),n.addEventListener("mousemove",this.drag,!0),n.addEventListener("mouseup",this.onEndDrag,!0),null===this.removePreventClickId?(n.addEventListener("click",this.preventClick,!0),n.addEventListener("dblclick",this.preventClick,!0)):(a.clearTimeout(this.removePreventClickId),this.removePreventClickId=null)},e.onTrackClick=function(t,e){var n=this;if(void 0===e&&(e="y"),this.options.clickOnTrack){var a=E(this.el);this.axis[e].scrollbar.rect=this.axis[e].scrollbar.el.getBoundingClientRect();var r=this.axis[e].scrollbar.rect[this.axis[e].offsetAttr],o=parseInt(this.elStyles[this.axis[e].sizeAttr],10),i=this.contentWrapperEl[this.axis[e].scrollOffsetAttr],s=("y"===e?this.mouseY-r:this.mouseX-r)<0?-1:1,c=-1===s?i-o:i+o;!function t(){var r,o;-1===s?i>c&&(n.contentWrapperEl.scrollTo(((r={})[n.axis[e].offsetAttr]=i-=40,r)),a.requestAnimationFrame(t)):i<c&&(n.contentWrapperEl.scrollTo(((o={})[n.axis[e].offsetAttr]=i+=40,o)),a.requestAnimationFrame(t))}()}},e.getContentElement=function(){return this.contentEl},e.getScrollElement=function(){return this.contentWrapperEl},e.getScrollbarWidth=function(){try{return"none"===getComputedStyle(this.contentWrapperEl,"::-webkit-scrollbar").display||"scrollbarWidth"in document.documentElement.style||"-ms-overflow-style"in document.documentElement.style?0:A()}catch(t){return A()}},e.removeListeners=function(){var t=this,e=E(this.el);this.options.autoHide&&this.el.removeEventListener("mouseenter",this.onMouseEnter),["mousedown","click","dblclick"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,!0)})),["touchstart","touchend","touchmove"].forEach((function(e){t.el.removeEventListener(e,t.onPointerEvent,{capture:!0,passive:!0})})),this.el.removeEventListener("mousemove",this.onMouseMove),this.el.removeEventListener("mouseleave",this.onMouseLeave),this.contentWrapperEl.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onWindowResize),this.mutationObserver.disconnect(),this.resizeObserver.disconnect(),this.recalculate.cancel(),this.onMouseMove.cancel(),this.hideScrollbars.cancel(),this.onWindowResize.cancel()},e.unMount=function(){this.removeListeners(),t.instances.delete(this.el)},e.isWithinBounds=function(t){return this.mouseX>=t.left&&this.mouseX<=t.left+t.width&&this.mouseY>=t.top&&this.mouseY<=t.top+t.height},e.findChild=function(t,e){var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector;return Array.prototype.filter.call(t.children,(function(t){return n.call(t,e)}))[0]},t}();L.defaultOptions={autoHide:!0,forceVisible:!1,clickOnTrack:!0,classNames:{contentEl:"simplebar-content",contentWrapper:"simplebar-content-wrapper",offset:"simplebar-offset",mask:"simplebar-mask",wrapper:"simplebar-wrapper",placeholder:"simplebar-placeholder",scrollbar:"simplebar-scrollbar",track:"simplebar-track",heightAutoObserverWrapperEl:"simplebar-height-auto-observer-wrapper",heightAutoObserverEl:"simplebar-height-auto-observer",visible:"simplebar-visible",horizontal:"simplebar-horizontal",vertical:"simplebar-vertical",hover:"simplebar-hover",dragging:"simplebar-dragging"},scrollbarMinSize:25,scrollbarMaxSize:0,timeout:1e3},L.instances=new WeakMap;var q=L;n.d(e,"a",(function(){return j})),n.d(e,"b",(function(){return F}));class j{constructor(t){this.elRef=t}ngOnInit(){}ngAfterViewInit(){this.SimpleBar=new q(this.elRef.nativeElement,this.options||{})}ngOnDestroy(){this.SimpleBar.unMount(),this.SimpleBar=null}}class F{}},WFqU:function(t,e){var n="object"==typeof global&&global&&global.Object===Object&&global;t.exports=n},WJkJ:function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},WKiH:function(t,e,n){var a=n("HYAF"),r="["+n("WJkJ")+"]",o=RegExp("^"+r+r+"*"),i=RegExp(r+r+"*$"),s=function(t){return function(e){var n=String(a(e));return 1&t&&(n=n.replace(o,"")),2&t&&(n=n.replace(i,"")),n}};t.exports={start:s(1),end:s(2),trim:s(3)}},WMd4:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"a",(function(){return s}));var a=n("EY2u"),r=n("LRne"),o=n("z6cu"),i=function(t){return t.NEXT="N",t.ERROR="E",t.COMPLETE="C",t}({});let s=(()=>{class t{constructor(t,e,n){this.kind=t,this.value=e,this.error=n,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,n){switch(this.kind){case"N":return t&&t(this.value);case"E":return e&&e(this.error);case"C":return n&&n()}}accept(t,e,n){return t&&"function"==typeof t.next?this.observe(t):this.do(t,e,n)}toObservable(){switch(this.kind){case"N":return Object(r.a)(this.value);case"E":return Object(o.a)(this.error);case"C":return Object(a.b)()}throw new Error("unexpected notification kind value")}static createNext(e){return void 0!==e?new t("N",e):t.undefinedValueNotification}static createError(e){return new t("E",void 0,e)}static createComplete(){return t.completeNotification}}return t.completeNotification=new t("C"),t.undefinedValueNotification=new t("N",void 0),t})()},WOoz:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SortDirection=function(t){return t.asc="asc",t.desc="desc",t}(e.SortDirection||{})},WYrj:function(t,e,n){!function(t){"use strict";var e=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];t.defineLocale("dv",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".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:/މކ|މފ/,isPM:function(t){return"މފ"===t},meridiem:function(t,e,n){return t<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n("wd/R"))},WaXT:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("2vnA"),o=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.a.apply(void 0,t)}),r.a),i=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.c.apply(void 0,t)}),r.c),s=Object.assign((function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return r.d.apply(void 0,t)}),r.d),c=n("MP8s");n.d(e,"a",(function(){return u}));var l=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},d=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},u=function(){function t(){this._dispose=[]}return Object.defineProperty(t.prototype,"nodes",{get:function(){return this._nodes},set:function(t){this.setNodes(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"marginTop",{get:function(){var t=this.viewportNodes&&this.viewportNodes.length&&this.viewportNodes[0];return(t&&t.parent?t.position-t.parent.position-t.parent.getSelfHeight():0)+"px"},enumerable:!0,configurable:!0}),t.prototype.setNodes=function(t){this._nodes=t},t.prototype.ngOnInit=function(){var t=this;this.virtualScroll=this.treeModel.virtualScroll,this._dispose=[Object(r.e)((function(){return t.virtualScroll.getViewportNodes(t.nodes).map((function(t){return t.index}))}),(function(e){t.viewportNodes=e.map((function(e){return t.nodes[e]}))}),{compareStructural:!0,fireImmediately:!0}),Object(r.e)((function(){return t.nodes}),(function(e){t.viewportNodes=t.virtualScroll.getViewportNodes(e)}))]},t.prototype.ngOnDestroy=function(){this._dispose.forEach((function(t){return t()}))},t.prototype.trackNode=function(t,e){return e.id},l([Object(a.Input)(),d("design:type",Object),d("design:paramtypes",[Object])],t.prototype,"nodes",null),l([Object(a.Input)(),d("design:type",c.a)],t.prototype,"treeModel",void 0),l([s,d("design:type",Object)],t.prototype,"_nodes",void 0),l([Object(a.Input)(),d("design:type",Object)],t.prototype,"templates",void 0),l([s,d("design:type",Array)],t.prototype,"viewportNodes",void 0),l([i,d("design:type",String),d("design:paramtypes",[])],t.prototype,"marginTop",null),l([o,d("design:type",Function),d("design:paramtypes",[Object]),d("design:returntype",void 0)],t.prototype,"setNodes",null),l([Object(a.Component)({selector:"tree-node-collection",encapsulation:a.ViewEncapsulation.None,template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div [style.margin-top]="marginTop">\n        <tree-node\n          *ngFor="let node of viewportNodes; let i = index; trackBy: trackNode"\n          [node]="node"\n          [index]="i"\n          [templates]="templates"\n        >\n        </tree-node>\n      </div>\n    </ng-container>\n  '})],t)}()},WiuZ:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("978R"),i=n("z/SZ"),s=n("2uy1"),c=n("s7LF"),l=n("+gVj"),d=n("KOzp");n("wnGv"),n("GiVz"),n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return M}));var u=a["ɵcrt"]({encapsulation:0,styles:[[".select-menu-item[_ngcontent-%COMP%]{display:block;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.09);font-size:12px}.select-menu-item[_ngcontent-%COMP%]:hover{background-color:#f5f5f5}.select-menu-item-icon[_ngcontent-%COMP%]{float:left;padding:.5em;width:3em}.select-menu-item-content[_ngcontent-%COMP%]{padding:.5em}"]],data:{}});function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback text-center"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.messages.customValidations[e.parent.context.$implicit])}))}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.form.showError("filter",a["ɵnov"](e.parent,2))&&n.filter.hasError(e.context.$implicit))}),null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,1)],(function(t,e){var n=t(e,3,0,e.component.icons.check);t(e,2,0,n)}),null)}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"small",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),a["ɵted"](3,null,[" ","  "]))],null,(function(t,e){t(e,3,0,e.parent.context.$implicit.description)}))}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,11,"div",[["class","select-menu-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.triggerSelection(t.context.$implicit)&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵpod"](3,{"help-block disabled":0}),(t()(),a["ɵeld"](4,0,null,null,3,"div",[["class","select-menu-item-icon"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,["   "])),(t()(),a["ɵeld"](8,0,null,null,3,"div",[["class","select-menu-item-content"]],null,null,null,null,null)),(t()(),a["ɵted"](9,null,[" "," "])),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](11,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=t(e,3,0,!(n.data.length!==n.selectionLimit&&e.context.$implicit.enabled||e.context.$implicit.selected));t(e,2,0,"select-menu-item",a),t(e,6,0,e.context.$implicit.selected),t(e,11,0,e.context.$implicit.description)}),(function(t,e){t(e,9,0,e.context.$implicit.name)}))}function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,8,"div",[["class","select-menu-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addCustomOption()&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","select-menu-item-icon"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](4,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](5,1),(t()(),a["ɵted"](-1,null,["   "])),(t()(),a["ɵeld"](7,0,null,null,1,"div",[["class","select-menu-item-content"]],null,null,null,null,null)),(t()(),a["ɵted"](8,null,[" "," '","' "]))],(function(t,e){var n=t(e,5,0,e.component.icons.tag);t(e,4,0,n)}),(function(t,e){var n=e.component;t(e,8,0,n.messages.add,n.filter.value)}))}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,2,"span",[["class","form-text text-muted text-center text-warning"]],[[1,"aria-describedby",0]],null,null,null,null)),a["ɵdid"](1,212992,null,0,o.c,[a.ViewContainerRef,i.a,o.a,a.ElementRef,a.Renderer2,s.a],{tooltip:[0,"tooltip"]},null),(t()(),a["ɵted"](2,null,[" "," "])),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.messages.selectionLimit.tooltip)}),(function(t,e){var n=e.component;t(e,0,0,a["ɵnov"](e,1).ariaDescribedby),t(e,2,0,n.messages.selectionLimit.text)}))}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","is-invalid"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.data.length===n.selectionLimit)}),null)}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,2).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,2).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,5).onSubmit()&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,c.G,[],null,null),a["ɵdid"](2,540672,[["formDir",4]],0,c.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,c.d,null,[c.l]),a["ɵdid"](4,16384,null,0,c.s,[[4,c.d]],null,null),a["ɵdid"](5,16384,null,0,l.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](6,0,null,null,9,"div",[],null,null,null,null,null)),(t()(),a["ɵeld"](7,0,null,null,6,"input",[["class","form-control text-center"],["formControlName","filter"],["type","text"]],[[8,"placeholder",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0,o=t.component;return"input"===e&&(r=!1!==a["ɵnov"](t,8)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,8).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,8)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,8)._compositionEnd(n.target.value)&&r),"keyup"===e&&(r=!1!==(13==n.keyCode?o.selectOption():o.updateFilter())&&r),r}),null,null)),a["ɵdid"](8,16384,null,0,c.e,[a.Renderer2,a.ElementRef,[2,c.b]],null,null),a["ɵprd"](1024,null,c.p,(function(t){return[t]}),[c.e]),a["ɵdid"](10,671744,null,0,c.j,[[3,c.d],[8,null],[8,null],[6,c.p],[2,c.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,c.q,null,[c.j]),a["ɵdid"](12,16384,null,0,c.r,[[4,c.q]],null,null),a["ɵdid"](13,16384,null,0,l.h,[[3,c.d],l.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](15,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](17,278528,null,0,r.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,b)),a["ɵdid"](19,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,_)),a["ɵdid"](21,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.form),t(e,5,0,n.form),t(e,10,0,"filter"),t(e,13,0,"filter"),t(e,15,0,n.Object.keys(n.messages.customValidations)),t(e,17,0,n.filteredOptions),t(e,19,0,n.isCreatable()),t(e,21,0,n.data.length===n.selectionLimit)}),(function(t,e){var n=e.component;t(e,0,0,a["ɵnov"](e,4).ngClassUntouched,a["ɵnov"](e,4).ngClassTouched,a["ɵnov"](e,4).ngClassPristine,a["ɵnov"](e,4).ngClassDirty,a["ɵnov"](e,4).ngClassValid,a["ɵnov"](e,4).ngClassInvalid,a["ɵnov"](e,4).ngClassPending),t(e,7,0,n.messages.filter,a["ɵnov"](e,12).ngClassUntouched,a["ɵnov"](e,12).ngClassTouched,a["ɵnov"](e,12).ngClassPristine,a["ɵnov"](e,12).ngClassDirty,a["ɵnov"](e,12).ngClassValid,a["ɵnov"](e,12).ngClassInvalid,a["ɵnov"](e,12).ngClassPending,a["ɵnov"](e,13).validClass,a["ɵnov"](e,13).invalidClass)}))}function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,4,"a",[["class","select-menu-edit float-left"],["container","body"],["outsideClick","true"],["placement","bottom"]],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵdid"](3,212992,null,0,d.c,[d.a,a.ElementRef,a.Renderer2,a.ViewContainerRef,i.a,s.a],{popover:[0,"popover"],placement:[1,"placement"],outsideClick:[2,"outsideClick"],container:[3,"container"]},null),a["ɵncd"](null,0),(t()(),a["ɵand"](0,null,null,0))],(function(t,e){t(e,2,0,"select-menu-edit float-left",e.component.elemClass),t(e,3,0,a["ɵnov"](e.parent,0),"bottom","true","body")}),null)}function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted float-left"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" ","\n"]))],null,(function(t,e){t(e,1,0,e.component.messages.empty)}))}function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted  float-left"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" ","\n"]))],null,(function(t,e){t(e,1,0,e.component.messages.noOptions)}))}function M(t){return a["ɵvid"](0,[(t()(),a["ɵand"](0,[["popTemplate",2]],null,0,null,O)),(t()(),a["ɵand"](16777216,null,null,1,null,v)),a["ɵdid"](2,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](4,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,P)),a["ɵdid"](6,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.options.length>0),t(e,4,0,0===n.data.length&&n.options.length>0),t(e,6,0,0===n.options.length)}),null)}},WwFo:function(t,e,n){var a=n("juv8"),r=n("7GkX");t.exports=function(t,e){return t&&a(e,r(e),t)}},WxRl:function(t,e,n){!function(t){"use strict";var e="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(t,e,n,a){var r=t;switch(n){case"s":return a||e?"néhány másodperc":"néhány másodperce";case"ss":return r+(a||e)?" másodperc":" másodperce";case"m":return"egy"+(a||e?" perc":" perce");case"mm":return r+(a||e?" perc":" perce");case"h":return"egy"+(a||e?" óra":" órája");case"hh":return r+(a||e?" óra":" órája");case"d":return"egy"+(a||e?" nap":" napja");case"dd":return r+(a||e?" nap":" napja");case"M":return"egy"+(a||e?" hónap":" hónapja");case"MM":return r+(a||e?" hónap":" hónapja");case"y":return"egy"+(a||e?" év":" éve");case"yy":return r+(a||e?" év":" éve")}return""}function a(t){return(t?"":"[múlt] ")+"["+e[this.day()]+"] LT[-kor]"}t.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_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(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return a.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return a.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},"X+05":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a={toggleExpanded:"toggleExpanded",activate:"activate",deactivate:"deactivate",nodeActivate:"nodeActivate",nodeDeactivate:"nodeDeactivate",select:"select",deselect:"deselect",focus:"focus",blur:"blur",initialized:"initialized",updateData:"updateData",moveNode:"moveNode",copyNode:"copyNode",event:"event",loadNodeChildren:"loadNodeChildren",changeFilter:"changeFilter",stateChange:"stateChange"}},X709:function(t,e,n){!function(t){"use strict";t.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öndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".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år] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några 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ånad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e")},week:{dow:1,doy:4}})}(n("wd/R"))},XDbj:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("sVev"),r=n("7o/Q");function o(t=c){return e=>e.lift(new i(t))}class i{constructor(t){this.errorFactory=t}call(t,e){return e.subscribe(new s(t,this.errorFactory))}}class s extends r.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 e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}}function c(){return new a.a}},XDpg:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"周";default:return t}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n("wd/R"))},XFyV:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");class r{constructor(){this.icons=a.a}}},XGnz:function(t,e,n){var a=n("CH3K"),r=n("BiGR");t.exports=function t(e,n,o,i,s){var c=-1,l=e.length;for(o||(o=r),s||(s=[]);++c<l;){var d=e[c];n>0&&o(d)?n>1?t(d,n-1,o,i,s):a(s,d):i||(s[s.length]=d)}return s}},XGwC:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},XKAG:function(t,e,n){var a=n("ut/Y"),r=n("MMmD"),o=n("7GkX");t.exports=function(t){return function(e,n,i){var s=Object(e);if(!r(e)){var c=a(n,3);e=o(e),n=function(t){return c(s[t],t,s)}}var l=t(e,n,i);return l>-1?s[c?e[l]:l]:void 0}}},XLvN:function(t,e,n){!function(t){"use strict";t.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".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:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(t,e){return 12===t&&(t=0),"రాత్రి"===e?t<4?t:t+12:"ఉదయం"===e?t:"మధ్యాహ్నం"===e?t>=10?t:t+12:"సాయంత్రం"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"రాత్రి":t<10?"ఉదయం":t<17?"మధ్యాహ్నం":t<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n("wd/R"))},XNiG:function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var a=n("HDdC"),r=n("7o/Q"),o=n("quSY"),i=n("9ppp"),s=n("Ylt2"),c=n("2QA8");class l extends r.a{constructor(t){super(t),this.destination=t}}let d=(()=>{class t extends a.a{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[c.a](){return new l(this)}lift(t){const e=new u(this,this);return e.operator=t,e}next(t){if(this.closed)throw new i.a;if(!this.isStopped){const{observers:e}=this,n=e.length,a=e.slice();for(let r=0;r<n;r++)a[r].next(t)}}error(t){if(this.closed)throw new i.a;this.hasError=!0,this.thrownError=t,this.isStopped=!0;const{observers:e}=this,n=e.length,a=e.slice();for(let r=0;r<n;r++)a[r].error(t);this.observers.length=0}complete(){if(this.closed)throw new i.a;this.isStopped=!0;const{observers:t}=this,e=t.length,n=t.slice();for(let a=0;a<e;a++)n[a].complete();this.observers.length=0}unsubscribe(){this.isStopped=!0,this.closed=!0,this.observers=null}_trySubscribe(t){if(this.closed)throw new i.a;return super._trySubscribe(t)}_subscribe(t){if(this.closed)throw new i.a;return this.hasError?(t.error(this.thrownError),o.a.EMPTY):this.isStopped?(t.complete(),o.a.EMPTY):(this.observers.push(t),new s.a(this,t))}asObservable(){const t=new a.a;return t.source=this,t}}return t.create=(t,e)=>new u(t,e),t})();class u extends d{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):o.a.EMPTY}}},XYm9:function(t,e,n){var a=n("+K+b");t.exports=function(t,e){var n=e?a(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}},Xg1U:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("8Y7J"),r=n("978R"),o=(n("SVse"),a["ɵcrt"]({encapsulation:0,styles:[".tooltip[_nghost-%COMP%] {\n      display: block;\n      pointer-events: none;\n    }\n    .bs3.tooltip.top[_nghost-%COMP%] > .arrow[_ngcontent-%COMP%] {\n      margin-left: -2px;\n    }\n    .bs3.tooltip.bottom[_nghost-%COMP%] {\n      margin-top: 0px;\n    }\n    .bs3.bs-tooltip-left[_nghost-%COMP%], .bs3.bs-tooltip-right[_nghost-%COMP%]{\n      margin: 0px;\n    }\n    .bs3.bs-tooltip-right[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%], .bs3.bs-tooltip-left[_nghost-%COMP%]   .arrow[_ngcontent-%COMP%] {\n      margin: .3rem 0;\n    }"],data:{}}));function i(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,0,"div",[["class","tooltip-arrow arrow"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","tooltip-inner"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,null)}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-tooltip-container",[["role","tooltip"]],[[8,"className",0],[2,"show",null],[2,"bs3",null],[1,"id",0]],null,null,i,o)),a["ɵdid"](1,4243456,null,0,r.b,[r.a],null,null)],null,(function(t,e){t(e,0,0,"tooltip in tooltip-"+a["ɵnov"](e,1).placement+" bs-tooltip-"+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).placement+" "+a["ɵnov"](e,1).containerClass,!a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).isBs3,a["ɵnov"](e,1).id)}))}var c=a["ɵccf"]("bs-tooltip-container",r.b,s,{},{},["*"])},Xi7e:function(t,e,n){var a=n("KMkd"),r=n("adU4"),o=n("tMB7"),i=n("+6XX"),s=n("Z8oC");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}c.prototype.clear=a,c.prototype.delete=r,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,t.exports=c},XoHu:function(t,e,n){"use strict";function a(t){return null!==t&&"object"==typeof t}n.d(e,"a",(function(){return a}))},"Y/cZ":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));let a=(()=>{class t{constructor(e,n=t.now){this.SchedulerAction=e,this.now=n}schedule(t,e=0,n){return new this.SchedulerAction(this,t).schedule(n,e)}}return t.now=()=>Date.now(),t})()},Y0Co:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("Lwhh"),s=n("8iEZ"),c=n("L5sC");n("BARL"),e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([o.Input(),r("design:type",String)],t.prototype,"name",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([o.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([o.Input(),r("design:type",o.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([o.Input(),o.ContentChild(s.DataTableColumnCellDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"cellTemplate",void 0),a([o.Input(),o.ContentChild(i.DataTableColumnHeaderDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"headerTemplate",void 0),a([o.Input(),o.ContentChild(c.DataTableColumnCellTreeToggle,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([o.Directive({selector:"ngx-datatable-column"})],t)}()},Y6u4:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="Timeout has occurred",this.name="TimeoutError",this}return t.prototype=Object.create(Error.prototype),t})()},Y7HM:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("DH7j");function r(t){return!Object(a.a)(t)&&t-parseFloat(t)+1>=0}},YESw:function(t,e,n){var a=n("Cwc5")(Object,"create");t.exports=a},YNrV:function(t,e,n){"use strict";var a=n("g6v/"),r=n("0Dky"),o=n("33Wh"),i=n("dBg+"),s=n("0eef"),c=n("ewvW"),l=n("RK3t"),d=Object.assign,u=Object.defineProperty;t.exports=!d||r((function(){if(a&&1!==d({b:1},d(u({},"a",{enumerable:!0,get:function(){u(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var t={},e={},n=Symbol();return t[n]=7,"abcdefghijklmnopqrst".split("").forEach((function(t){e[t]=t})),7!=d({},t)[n]||"abcdefghijklmnopqrst"!=o(d({},e)).join("")}))?function(t,e){for(var n=c(t),r=arguments.length,d=1,u=i.f,g=s.f;r>d;)for(var f,p=l(arguments[d++]),m=u?o(p).concat(u(p)):o(p),h=m.length,b=0;h>b;)f=m[b++],a&&!g.call(p,f)||(n[f]=p[f]);return n}:d},YO3V:function(t,e,n){var a=n("NykK"),r=n("LcsW"),o=n("ExA7"),i=Function.prototype.toString,s=Object.prototype.hasOwnProperty,c=i.call(Object);t.exports=function(t){if(!o(t)||"[object Object]"!=a(t))return!1;var e=r(t);if(null===e)return!0;var n=s.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&i.call(n)==c}},YRex:function(t,e,n){!function(t){"use strict";t.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(t,e){return 12===t&&(t=0),"يېرىم كېچە"===e||"سەھەر"===e||"چۈشتىن بۇرۇن"===e?t:"چۈشتىن كېيىن"===e||"كەچ"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var a=100*t+e;return a<600?"يېرىم كېچە":a<900?"سەھەر":a<1130?"چۈشتىن بۇرۇن":a<1230?"چۈش":a<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-كۈنى";case"w":case"W":return t+"-ھەپتە";default:return t}},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n("wd/R"))},YVFZ:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("5tze"),s=n("qwkt");n("czA5"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new o.EventEmitter,this.treeAction=new o.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}return this.sortDir||(t+=" sort-active"),this.isFocused&&(t+=" active"),this.sortDir===s.SortDirection.asc&&(t+=" sort-asc"),this.sortDir===s.SortDirection.desc&&(t+=" sort-desc"),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){var t=this.rowHeight;return isNaN(t)?t:t+"px"},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.checkValueUpdates()},t.prototype.ngOnDestroy=function(){this.cellTemplate&&this.cellTemplate.clear()},t.prototype.checkValueUpdates=function(){var t="";if(this.row&&this.column){var e=this.column.$$valueGetter(this.row,this.column.prop),n=this.column.pipe;n?t=n.transform(e):void 0!==t&&(t=e)}else t="";this.value!==t&&(this.value=t,this.cellContext.value=t,this.sanitizedValue=null!=t?this.stripHtml(t):t,this.cd.markForCheck())},t.prototype.onFocus=function(){this.isFocused=!0},t.prototype.onBlur=function(){this.isFocused=!1},t.prototype.onClick=function(t){this.activate.emit({type:"click",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})},t.prototype.onDblClick=function(t){this.activate.emit({type:"dblclick",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})},t.prototype.onKeyDown=function(t){var e=t.keyCode;(e===i.Keys.return||e===i.Keys.down||e===i.Keys.up||e===i.Keys.left||e===i.Keys.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element}))},t.prototype.onCheckboxChange=function(t){this.activate.emit({type:"checkbox",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element,treeStatus:"collapsed"})},t.prototype.calcSortDir=function(t){var e=this;if(t){var n=t.find((function(t){return t.prop===e.column.prop}));return n?n.dir:void 0}},t.prototype.stripHtml=function(t){return t.replace?t.replace(/<\/?[^>]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([o.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([o.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.ViewChild("cellTemplate",{read:o.ViewContainerRef,static:!0}),r("design:type",o.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([o.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([o.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([o.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([o.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([o.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([o.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([o.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([o.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([o.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([o.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([o.Component({selector:"datatable-body-cell",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n    <div\n      class="datatable-body-cell-label"\n      [style.margin-left.px]="calcLeftMargin(column, row)"\n    >\n      <label\n        *ngIf="\n          column.checkboxable &&\n          (!displayCheck || displayCheck(row, column, value))\n        "\n        class="datatable-checkbox"\n      >\n        <input\n          type="checkbox"\n          [checked]="isSelected"\n          (click)="onCheckboxChange($event)"\n        />\n      </label>\n      <ng-container *ngIf="column.isTreeColumn">\n        <button\n          *ngIf="!column.treeToggleTemplate"\n          class="datatable-tree-button"\n          [disabled]="treeStatus === \'disabled\'"\n          (click)="onTreeAction()"\n        >\n          <span>\n            <i\n              *ngIf="treeStatus === \'loading\'"\n              class="icon datatable-icon-collapse"\n            ></i>\n            <i\n              *ngIf="treeStatus === \'collapsed\'"\n              class="icon datatable-icon-up"\n            ></i>\n            <i\n              *ngIf="treeStatus === \'expanded\' || treeStatus === \'disabled\'"\n              class="icon datatable-icon-down"\n            ></i>\n          </span>\n        </button>\n        <ng-template\n          *ngIf="column.treeToggleTemplate"\n          [ngTemplateOutlet]="column.treeToggleTemplate"\n          [ngTemplateOutletContext]="{ cellContext: cellContext }"\n        >\n        </ng-template>\n      </ng-container>\n\n      <span\n        *ngIf="!column.cellTemplate"\n        [title]="sanitizedValue"\n        [innerHTML]="value"\n      >\n      </span>\n      <ng-template\n        #cellTemplate\n        *ngIf="column.cellTemplate"\n        [ngTemplateOutlet]="column.cellTemplate"\n        [ngTemplateOutletContext]="cellContext"\n      >\n      </ng-template>\n    </div>\n  '})],t)}()},YcCt:function(t,e,n){"use strict";function a(t,e){return Object.prototype.hasOwnProperty.call(t,e)}t.exports=function(t,e,n,r){n=n||"=";var o={};if("string"!=typeof t||0===t.length)return o;var i=/\+/g;t=t.split(e=e||"&");var s=1e3;r&&"number"==typeof r.maxKeys&&(s=r.maxKeys);var c=t.length;s>0&&c>s&&(c=s);for(var l=0;l<c;++l){var d,u,g,f,p=t[l].replace(i,"%20"),m=p.indexOf(n);m>=0?(d=p.substr(0,m),u=p.substr(m+1)):(d=p,u=""),g=decodeURIComponent(d),f=decodeURIComponent(u),a(o,g)?Array.isArray(o[g])?o[g].push(f):o[g]=[o[g],f]:o[g]=f}return o}},Ylt2:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("quSY");class r extends a.a{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 n=e.indexOf(this.subscriber);-1!==n&&e.splice(n,1)}}},YuTi:function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},YzqF:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(){this._queue=[],this._pending=!1}return t.prototype.isLocked=function(){return this._pending},t.prototype.acquire=function(){var t=this,e=new Promise((function(e){return t._queue.push(e)}));return this._pending||this._dispatchNext(),e},t.prototype.runExclusive=function(t){return this.acquire().then((function(e){var n;try{n=t()}catch(a){throw e(),a}return Promise.resolve(n).then((function(t){return e(),t}),(function(t){throw e(),t}))}))},t.prototype._dispatchNext=function(){this._queue.length>0?(this._pending=!0,this._queue.shift()(this._dispatchNext.bind(this))):this._pending=!1},t}();e.default=a},Z0cm:function(t,e){t.exports=Array.isArray},Z21x:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("sne2");class a{constructor(t,e){this.location=t,this.actionLabels=e,this.name=this.actionLabels.CANCEL,this.back=()=>this.location.back()}}},Z4QM:function(t,e,n){!function(t){"use strict";var e=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];t.defineLocale("sd",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,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:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n("wd/R"))},Z8oC:function(t,e,n){var a=n("y1pI");t.exports=function(t,e){var n=this.__data__,r=a(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}},ZAMP:function(t,e,n){!function(t){"use strict";t.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(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<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("wd/R"))},ZCgT:function(t,e,n){var a=n("tLB3");t.exports=function(t){return t?(t=a(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},ZCpW:function(t,e,n){var a=n("lm/5"),r=n("O7RO"),o=n("IOzZ");t.exports=function(t){var e=r(t);return 1==e.length&&e[0][2]?o(e[0][0],e[0][1]):function(n){return n===t||a(n,t,e)}}},ZDA6:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("8Y7J"),r=n("IheW"),o=n("pL04");let i=(()=>{class t{constructor(t){this.http=t}list(){return this.http.get("ui-api/scope")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.c))},token:t,providedIn:o.a}),t})()},ZEkX:function(t,e,n){"use strict";n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return c})),n("Mxhz");var a=n("0+/T"),r=(n("sne2"),n("x38r")),o=n("oxzT"),i=n("mtw6"),s=n("vCyI");n("a0VL"),n("nSDx"),n("aexS"),n("9nlD");const c=new(n("EgGo").a)("user-management/users");class l{constructor(t,e,n,a,r,i,c,l,d){this.userService=t,this.emptyPipe=e,this.modalService=n,this.notificationService=a,this.authStorageService=r,this.i18n=i,this.urlBuilder=c,this.cdDatePipe=l,this.actionLabels=d,this.selection=new s.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:o.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"update",icon:o.a.edit,routerLink:()=>this.selection.first()&&this.urlBuilder.getEdit(this.selection.first().username),name:this.actionLabels.EDIT},{permission:"delete",icon:o.a.destroy,click:()=>this.deleteUserModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Username"),prop:"username",flexGrow:1},{name:this.i18n("Name"),prop:"name",flexGrow:1,pipe:this.emptyPipe},{name:this.i18n("Email"),prop:"email",flexGrow:1,pipe:this.emptyPipe},{name:this.i18n("Roles"),prop:"roles",flexGrow:1,cellTemplate:this.userRolesTpl},{name:this.i18n("Enabled"),prop:"enabled",flexGrow:1,cellTransformation:r.a.checkIcon},{name:this.i18n("Password expiration date"),prop:"pwdExpirationDate",flexGrow:1,pipe:this.cdDatePipe}]}getUsers(){this.userService.list().subscribe(t=>{t.forEach(t=>{t.pwdExpirationDate&&t.pwdExpirationDate>0&&(t.pwdExpirationDate=1e3*t.pwdExpirationDate)}),this.users=t})}updateSelection(t){this.selection=t}deleteUser(t){this.userService.delete(t).subscribe(()=>{this.getUsers(),this.modalRef.hide(),this.notificationService.show(i.a.success,this.i18n('Deleted user "{{username}}"',{username:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}deleteUserModal(){const t=this.authStorageService.getUsername(),e=this.selection.first().username;t!==e?this.modalRef=this.modalService.show(a.a,{initialState:{itemDescription:"User",itemNames:[e],submitAction:()=>this.deleteUser(e)}}):this.notificationService.show(i.a.error,this.i18n('Failed to delete user "{{username}}"',{username:e}),this.i18n('You are currently logged in as "{{username}}".',{username:e}))}}},ZUHj:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("51Dv"),r=n("SeVD"),o=n("HDdC");function i(t,e,n,i,s=new a.a(t,n,i)){if(!s.closed)return e instanceof o.a?e.subscribe(s):Object(r.a)(e)(s)}},ZUd8:function(t,e,n){var a=n("ppGB"),r=n("HYAF"),o=function(t){return function(e,n){var o,i,s=String(r(e)),c=a(n),l=s.length;return c<0||c>=l?t?"":void 0:(o=s.charCodeAt(c))<55296||o>56319||c+1===l||(i=s.charCodeAt(c+1))<56320||i>57343?t?s.charAt(c):o:t?s.slice(c,c+2):i-56320+(o-55296<<10)+65536}};t.exports={codeAt:o(!1),charAt:o(!0)}},ZWtO:function(t,e,n){var a=n("4uTw"),r=n("9Nap");t.exports=function(t,e){for(var n=0,o=(e=a(e,t)).length;null!=t&&n<o;)t=t[r(e[n++])];return n&&n==o?t:void 0}},Zduo:function(t,e,n){!function(t){"use strict";t.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_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(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %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("wd/R"))},ZfDv:function(t,e,n){var a=n("hh1v"),r=n("6LWA"),o=n("tiKp")("species");t.exports=function(t,e){var n;return r(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!r(n.prototype)?a(n)&&null===(n=n[o])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===e?0:e)}},ZhuC:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",a.TemplateRef)],t.prototype,"template",void 0),o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Component)({encapsulation:a.ViewEncapsulation.None,selector:"tree-loading-component",template:'\n    <span *ngIf="!template">loading...</span>\n    <ng-container\n      [ngTemplateOutlet]="template"\n      [ngTemplateOutletContext]="{ $implicit: node }">\n    </ng-container>\n  '})],t)}()},ZirO:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a;)if(!e(t[n],n,t))return!1;return!0}},a0VL:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.datePipe=t}transform(t){return null===t||""===t?"":this.datePipe.transform(t,"shortDate")+" "+this.datePipe.transform(t,"mediumTime")}}},a278:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("QC43"),o=n("XFyV"),i=n("DqMs"),s=n("/NlG"),c=n("GiVz"),l=n("s7LF"),d=n("SVse");n("insk"),n("mSOc"),n("cUpR"),n("20UP"),n("+0ag"),n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return b}));var u=a["ɵcrt"]({encapsulation:0,styles:[[".grafana[_ngcontent-%COMP%]{width:100%;height:600px;z-index:0}.grafana_one[_ngcontent-%COMP%]{height:400px}.grafana_two[_ngcontent-%COMP%]{height:750px}.grafana_three[_ngcontent-%COMP%]{height:900px}.timepicker[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{font-weight:700}.dropdown-menu[_ngcontent-%COMP%]{top:20px;right:20px;left:auto}"]],data:{}});function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,r.b,r.a)),a["ɵdid"](1,49152,null,0,o.a,[],null,null),(t()(),a["ɵted"](-1,0,["Loading panel data..."]))],null,null)}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,i.b,i.a)),a["ɵdid"](1,114688,null,0,s.a,[c.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Please consult the "])),(t()(),a["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["ɵted"](-1,null,["documentation"])),(t()(),a["ɵted"](-1,0,[" on how to configure and enable the monitoring functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,a["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,i.b,i.a)),a["ɵdid"](1,114688,null,0,s.a,[c.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Grafana Dashboard doesn't exist. Please refer to "])),(t()(),a["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),a["ɵted"](-1,null,["documentation"])),(t()(),a["ɵted"](-1,0,[" on how to add dashboards to Grafana."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,a["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,l.v,[a.ElementRef,a.Renderer2,[2,l.A]],{ngValue:[0,"ngValue"]},null),a["ɵdid"](2,147456,null,0,l.F,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["ɵted"](3,null,[""," "]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,24,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,17,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,16,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),a["ɵeld"](3,0,null,null,15,"div",[["class","form-inline timepicker"]],null,null,null,null,null)),(t()(),a["ɵeld"](4,0,null,null,1,"label",[["class","ml-1 my-1 col-form-label"],["for","timepicker"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Grafana Time Picker"])),(t()(),a["ɵeld"](6,0,null,null,7,"select",[["class","custom-select my-1 mx-3"],["id","timepicker"],["name","timepicker"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0,o=t.component;return"change"===e&&(r=!1!==a["ɵnov"](t,7).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,7).onTouched()&&r),"ngModelChange"===e&&(r=!1!==(o.time=n)&&r),"ngModelChange"===e&&(r=!1!==o.onTimepickerChange(n)&&r),r}),null,null)),a["ɵdid"](7,16384,null,0,l.A,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,l.p,(function(t){return[t]}),[l.A]),a["ɵdid"](9,671744,null,0,l.u,[[8,null],[8,null],[8,null],[6,l.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),a["ɵprd"](2048,null,l.q,null,[l.u]),a["ɵdid"](11,16384,null,0,l.r,[[4,l.q]],null,null),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](13,278528,null,0,d.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](14,0,null,null,4,"button",[["class","btn btn-light my-1"],["title","Reset Settings"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.reset()&&a),a}),null,null)),(t()(),a["ɵeld"](15,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,d["ɵNgClassImpl"],d["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](17,278528,null,0,d.NgClass,[d["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](18,1),(t()(),a["ɵeld"](19,0,null,null,5,"div",[["class","row"]],null,null,null,null,null)),(t()(),a["ɵeld"](20,0,null,null,4,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),a["ɵeld"](21,0,null,null,3,"div",[["class","grafana-container"]],null,null,null,null,null)),(t()(),a["ɵeld"](22,0,[["iframe",1]],null,2,"iframe",[["class","grafana"],["frameborder","0"],["id","iframe"],["scrolling","no"]],[[8,"src",5]],null,null,null,null)),a["ɵprd"](512,null,d["ɵNgClassImpl"],d["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](24,278528,null,0,d.NgClass,[d["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null)],(function(t,e){var n=e.component;t(e,9,0,"timepicker",n.time),t(e,13,0,n.grafanaTimes);var a=t(e,18,0,n.icons.undo);t(e,17,0,a),t(e,24,0,"grafana",n.panelStyle)}),(function(t,e){var n=e.component;t(e,6,0,a["ɵnov"](e,11).ngClassUntouched,a["ɵnov"](e,11).ngClassTouched,a["ɵnov"](e,11).ngClassPristine,a["ɵnov"](e,11).ngClassDirty,a["ɵnov"](e,11).ngClassValid,a["ɵnov"](e,11).ngClassInvalid,a["ɵnov"](e,11).ngClassPending),t(e,22,0,n.grafanaSrc)}))}function b(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,g)),a["ɵdid"](1,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](3,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](5,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,h)),a["ɵdid"](7,16384,null,0,d.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.loading&&n.grafanaExist),t(e,3,0,!n.grafanaExist),t(e,5,0,!n.dashboardExist),t(e,7,0,n.grafanaExist&&n.dashboardExist)}),null)}},a40w:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("EEJc"),o=n("ajRT"),i=n("s7LF"),s=n("+gVj"),c=n("SVse"),l=n("gp3X"),d=n("sb0X"),u=n("KVJa"),g=n("Z21x"),f=n("sne2"),p=n("OLbh"),m=n("LqlI");n.d(e,"a",(function(){return v}));var h=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function b(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.description)}))}function _(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,22,"cd-modal",[],null,[[null,"hide"]],(function(t,e,n){var a=!0;return"hide"===e&&(a=!1!==t.component.cancel()&&a),a}),r.c,r.b)),a["ɵdid"](1,49152,null,0,o.a,[],null,{hide:"hide"}),(t()(),a["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](3,null,["",""])),(t()(),a["ɵeld"](4,0,null,1,18,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,17,"form",[["name","confirmationForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,7).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,10).onSubmit()&&r),r}),null,null)),a["ɵdid"](6,16384,null,0,i.G,[],null,null),a["ɵdid"](7,540672,[["formDir",4]],0,i.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,i.d,null,[i.l]),a["ɵdid"](9,16384,null,0,i.s,[[4,i.d]],null,null),a["ɵdid"](10,16384,null,0,s.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](11,0,null,null,4,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,b)),a["ɵdid"](13,540672,null,0,c.NgTemplateOutlet,[a.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,y)),a["ɵdid"](15,16384,null,0,c.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmit(r.confirmationForm.value)&&a),a}),l.b,l.a)),a["ɵdid"](19,114688,null,0,d.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵted"](20,0,[" "," "])),(t()(),a["ɵeld"](21,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,u.b,u.a)),a["ɵdid"](22,49152,null,0,g.a,[c.Location,f.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,7,0,n.confirmationForm),t(e,10,0,n.confirmationForm),t(e,13,0,n.bodyContext,n.bodyTpl),t(e,15,0,n.description),t(e,19,0,n.confirmationForm),t(e,22,0,"Cancel",n.boundCancel)}),(function(t,e){var n=e.component;t(e,3,0,n.titleText),t(e,5,0,a["ɵnov"](e,9).ngClassUntouched,a["ɵnov"](e,9).ngClassTouched,a["ɵnov"](e,9).ngClassPristine,a["ɵnov"](e,9).ngClassDirty,a["ɵnov"](e,9).ngClassValid,a["ɵnov"](e,9).ngClassInvalid,a["ɵnov"](e,9).ngClassPending),t(e,20,0,n.buttonText)}))}function O(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-confirmation-modal",[],null,null,null,_,h)),a["ɵdid"](1,245760,null,0,p.a,[m.a,m.b],null,null)],(function(t,e){t(e,1,0)}),null)}var v=a["ɵccf"]("cd-confirmation-modal",p.a,O,{},{},[])},a96k:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n,a=!0){this.selected=t,this.name=e,this.description=n,this.enabled=a}}},aGrj:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("eIep");function r(t,e){return e?Object(a.a)(()=>t,e):Object(a.a)(()=>t)}},aHM3:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("8Y7J"),n("s7LF");class a{static forRoot(){return{ngModule:a,providers:[]}}}},aIdf:function(t,e,n){!function(t){"use strict";function e(t,e,n){return t+" "+function(t,e){return 2===e?function(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}(t):t}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}t.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ù",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:function(t){switch(function t(e){return e>9?t(e%10):e}(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(t){return t+(1===t?"añ":"vet")},week:{dow:1,doy:4}})}(n("wd/R"))},aIsn:function(t,e,n){!function(t){"use strict";t.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_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ātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".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ēkona ruarua",ss:"%d hēkona",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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},aQkU:function(t,e,n){!function(t){"use strict";t.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".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:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n("wd/R"))},aTeT:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SortType=function(t){return t.single="single",t.multi="multi",t}(e.SortType||{})},aXbf:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("LvDl"),r=n("8Y7J");let o=(()=>{class t{constructor(){}format_number(t,e,n,r=1){if(a.isString(t)&&(t=Number(t)),!a.isNumber(t))return"-";let o=t<1?0:Math.floor(Math.log(t)/Math.log(e));o=o>=n.length?n.length-1:o;let i=a.round(t/Math.pow(e,o),r).toString();return""===i?"-":(""!==n[o]&&(i=`${i} ${n[o]}`),i)}toBytes(t,e=null){const n=["b","k","m","g","t","p","e","z","y"],r=RegExp("^(\\d+(.\\d+)?) ?(["+n.join("")+"]?(b|ib|B/s)?)?$","i").exec(t);if(null===r)return e;let o=parseFloat(r[1]);return a.isString(r[3])&&(o*=Math.pow(1024,n.indexOf(r[3].toLowerCase()[0]))),Math.round(o)}toMilliseconds(t){const e=/^\s*(\d+)\s*(ms)?\s*$/i.exec(t);return null!==e?+e[1]:0}toIops(t){const e=/^\s*(\d+)\s*(IOPS)?\s*$/i.exec(t);return null!==e?+e[1]:0}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},adU4:function(t,e,n){var a=n("y1pI"),r=Array.prototype.splice;t.exports=function(t){var e=this.__data__,n=a(e,t);return!(n<0||(n==e.length-1?e.pop():r.call(e,n,1),--this.size,0))}},ae7Z:function(t,e,n){"use strict";function a(t){var e={left:[],center:[],right:[]};if(t)for(var n=0,a=t;n<a.length;n++){var r=a[n];r.frozenLeft?e.left.push(r):r.frozenRight?e.right.push(r):e.center.push(r)}return e}function r(t,e){var n=0;if(t)for(var a=0,r=t;a<r.length;a++){var o=r[a];n+=parseFloat(e&&o[e]?o[e]:o.width)}return n}Object.defineProperty(e,"__esModule",{value:!0}),e.columnsByPin=a,e.columnGroupWidths=function(t,e){return{left:r(t.left),center:r(t.center),right:r(t.right),total:Math.floor(r(e))}},e.columnTotalWidth=r,e.columnsTotalWidth=function(t,e){for(var n=0,a=0,r=t;a<r.length;a++){var o=r[a];n+=e&&o[e]?o[e]:o.width}return n},e.columnsByPinArr=function(t){var e=[],n=a(t);return e.push({type:"left",columns:n.left}),e.push({type:"center",columns:n.center}),e.push({type:"right",columns:n.right}),e}},aexS:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("2Vo4"),r=n("jKX/"),o=n("8Y7J");let i=(()=>{class t{constructor(){this.isPwdDisplayedSource=new a.a(!1),this.isPwdDisplayed$=this.isPwdDisplayedSource.asObservable()}set(t,e,n={},a=!1,o=null,i=!1){localStorage.setItem("dashboard_username",t),localStorage.setItem("access_token",e),localStorage.setItem("dashboard_permissions",JSON.stringify(new r.a(n))),localStorage.setItem("user_pwd_expiration_date",String(o)),localStorage.setItem("user_pwd_update_required",String(i)),localStorage.setItem("sso",String(a))}remove(){localStorage.removeItem("access_token"),localStorage.removeItem("dashboard_username"),localStorage.removeItem("user_pwd_expiration_data"),localStorage.removeItem("user_pwd_update_required")}getToken(){return localStorage.getItem("access_token")}isLoggedIn(){return null!==localStorage.getItem("dashboard_username")}getUsername(){return localStorage.getItem("dashboard_username")}getPermissions(){return JSON.parse(localStorage.getItem("dashboard_permissions")||JSON.stringify(new r.a({})))}getPwdExpirationDate(){return Number(localStorage.getItem("user_pwd_expiration_date"))}getPwdUpdateRequired(){return"true"===localStorage.getItem("user_pwd_update_required")}isSSO(){return"true"===localStorage.getItem("sso")}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})()},afO8:function(t,e,n){var a,r,o,i=n("f5p1"),s=n("2oRo"),c=n("hh1v"),l=n("kRJp"),d=n("UTVS"),u=n("93I0"),g=n("0BK2");if(i){var f=new(0,s.WeakMap),p=f.get,m=f.has,h=f.set;a=function(t,e){return h.call(f,t,e),e},r=function(t){return p.call(f,t)||{}},o=function(t){return m.call(f,t)}}else{var b=u("state");g[b]=!0,a=function(t,e){return l(t,b,e),e},r=function(t){return d(t,b)?t[b]:{}},o=function(t){return d(t,b)}}t.exports={set:a,get:r,has:o,enforce:function(t){return o(t)?r(t):a(t,{})},getterFor:function(t){return function(e){var n;if(!c(e)||(n=r(e)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return n}}}},afOK:function(t,e,n){t.exports=n("pZt1")},ajRT:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("8Y7J");class r{constructor(){this.hide=new a.EventEmitter}close(){this.modalRef&&this.modalRef.hide(),this.hide.emit()}}},atuK:function(t,e,n){"use strict";n.d(e,"a",(function(){return _})),n.d(e,"b",(function(){return R})),n.d(e,"c",(function(){return H}));var a=n("8Y7J"),r=n("ienR"),o=n("SVse"),i=(n("s7LF"),n("2uy1")),s=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),ut,ot)),a["ɵdid"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,c)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),mt,gt)),a["ɵdid"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,d)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function g(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),_t,ht)),a["ɵdid"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function f(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,g)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,Pt,Ot)),a["ɵdid"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function h(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,l)),a["ɵdid"](8,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,u)),a["ɵdid"](10,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,f)),a["ɵdid"](12,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](14,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,m)),a["ɵdid"](16,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function b(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,h)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-datepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"]],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),b,s)),a["ɵprd"](512,null,r.r,r.r,[]),a["ɵprd"](512,null,r.s,r.s,[r.t,r.j]),a["ɵdid"](3,245760,null,0,r.b,[a.Renderer2,r.a,r.r,a.ElementRef,r.t,r.s,i.a],null,null)],(function(t,e){t(e,3,0)}),null)}var _=a["ɵccf"]("bs-datepicker-container",r.b,y,{},{},[]),O=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function v(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),ut,ot)),a["ɵdid"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function C(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,v)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),mt,gt)),a["ɵdid"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,P)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),_t,ht)),a["ɵdid"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,x)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,Pt,Ot)),a["ɵdid"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,C)),a["ɵdid"](8,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,M)),a["ɵdid"](10,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,w)),a["ɵdid"](12,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](14,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,S)),a["ɵdid"](16,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,k)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function N(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-datepicker-inline-container",[],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),I,O)),a["ɵprd"](512,null,r.r,r.r,[]),a["ɵprd"](512,null,r.s,r.s,[r.t,r.j]),a["ɵdid"](3,245760,null,0,r.e,[a.Renderer2,r.a,r.r,a.ElementRef,r.t,r.s,i.a],null,null)],(function(t,e){t(e,3,0)}),null)}var R=a["ɵccf"]("bs-datepicker-inline-container",r.e,N,{},{},[]),A=a["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"datepickerAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function E(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-days-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onHoverWeek"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.dayHoverHandler(n)&&a),"onHoverWeek"===e&&(a=!1!==r.weekHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.daySelectHandler(n)&&a),a}),ut,ot)),a["ɵdid"](1,49152,null,0,r.z,[r.a],{calendar:[0,"calendar"],options:[1,"options"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover",onHoverWeek:"onHoverWeek"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,e.context.$implicit,a["ɵunv"](e,1,1,a["ɵnov"](e,2).transform(n.options)))}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,3).transform(r.daysCalendar)))?null:n.length)>1)}))}function D(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,E)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.daysCalendar)))}),null)}function L(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-month-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.monthHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.monthSelectHandler(n)&&a),a}),mt,gt)),a["ɵdid"](1,49152,null,0,r.A,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function q(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,L)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.monthsCalendar)))}),null)}function j(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"bs-years-calendar-view",[],[[2,"bs-datepicker-multiple",null]],[[null,"onNavigate"],[null,"onViewMode"],[null,"onHover"],[null,"onSelect"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.setViewMode(n)&&a),"onHover"===e&&(a=!1!==r.yearHoverHandler(n)&&a),"onSelect"===e&&(a=!1!==r.yearSelectHandler(n)&&a),a}),_t,ht)),a["ɵdid"](1,49152,null,0,r.B,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode",onSelect:"onSelect",onHover:"onHover"}),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){t(e,1,0,e.context.$implicit)}),(function(t,e){var n,r=e.component;t(e,0,0,(null==(n=a["ɵunv"](e,0,0,a["ɵnov"](e,2).transform(r.daysCalendar)))?null:n.length)>1)}))}function F(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"div",[["class","bs-media-container"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,2,null,j)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,2,0,a["ɵunv"](e,2,0,a["ɵnov"](e,3).transform(n.yearsCalendar)))}),null)}function z(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-buttons"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-success"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Apply"])),(t()(),a["ɵeld"](3,0,null,null,1,"button",[["class","btn btn-default"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Cancel"]))],null,null)}function G(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","bs-datepicker-custom-range"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"bs-custom-date-view",[],null,null,null,Pt,Ot)),a["ɵdid"](2,49152,null,0,r.C,[],{ranges:[0,"ranges"]},null)],(function(t,e){t(e,2,0,e.component._customRangesFish)}),null)}function B(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,16,"div",[["class","bs-datepicker"]],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵeld"](3,0,null,null,11,"div",[["class","bs-datepicker-container"]],[[24,"@datepickerAnimation",0]],[[null,"@datepickerAnimation.done"]],(function(t,e,n){var a=!0;return"@datepickerAnimation.done"===e&&(a=!1!==t.component.positionServiceEnable()&&a),a}),null,null)),(t()(),a["ɵeld"](4,0,null,null,8,"div",[["class","bs-calendar-container"],["role","application"]],null,null,null,null,null)),a["ɵdid"](5,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef]),(t()(),a["ɵand"](16777216,null,null,1,null,D)),a["ɵdid"](8,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,q)),a["ɵdid"](10,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,F)),a["ɵdid"](12,278528,null,0,o.NgSwitchCase,[a.ViewContainerRef,a.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,z)),a["ɵdid"](14,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,G)),a["ɵdid"](16,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"bs-datepicker",n.containerClass),t(e,5,0,a["ɵunv"](e,5,0,a["ɵnov"](e,6).transform(n.viewMode))),t(e,8,0,"day"),t(e,10,0,"month"),t(e,12,0,"year"),t(e,14,0,!1),t(e,16,0,!1)}),(function(t,e){t(e,3,0,e.component.animationState)}))}function V(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,2,null,B)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpid"](131072,o.AsyncPipe,[a.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,1,0,a["ɵunv"](e,1,0,a["ɵnov"](e,2).transform(n.viewMode)))}),null)}function Y(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"bs-daterangepicker-container",[["aria-label","calendar"],["class","bottom"],["role","dialog"],["style","position: absolute; display: block;"]],null,[[null,"click"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,3)._stopPropagation(n)&&r),r}),V,A)),a["ɵprd"](512,null,r.s,r.s,[r.t,r.j]),a["ɵprd"](512,null,r.r,r.r,[]),a["ɵdid"](3,245760,null,0,r.i,[r.s,r.t,r.a,r.r,a.ElementRef,i.a],null,null)],(function(t,e){t(e,3,0)}),null)}var H=a["ɵccf"]("bs-daterangepicker-container",r.i,Y,{},{},[]),U=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function W(t){return a["ɵvid"](2,[(t()(),a["ɵted"](0,null,["",""]))],null,(function(t,e){t(e,0,0,e.component.day.label)}))}var K=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function $(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["class","current-timedate"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.component.title)}))}var Z=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function J(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("month")&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.component.calendar.monthTitle)}))}function X(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,2,"button",[["class","previous"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!0)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["‹"])),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵand"](16777216,null,null,1,null,J)),a["ɵdid"](5,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵeld"](7,0,null,null,2,"button",[["class","current"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.view("year")&&a),a}),null,null)),(t()(),a["ɵeld"](8,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](9,null,["",""])),(t()(),a["ɵted"](-1,null,[" ​ "])),(t()(),a["ɵeld"](11,0,null,null,2,"button",[["class","next"]],[[8,"disabled",0],[4,"visibility",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.navTo(!1)&&a),a}),null,null)),(t()(),a["ɵeld"](12,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["›"]))],(function(t,e){t(e,5,0,e.component.calendar.monthTitle)}),(function(t,e){var n=e.component;t(e,0,0,n.calendar.disableLeftArrow,n.calendar.hideLeftArrow?"hidden":"visible"),t(e,9,0,n.calendar.yearTitle),t(e,11,0,n.calendar.disableRightArrow,n.calendar.hideRightArrow?"hidden":"visible")}))}var Q=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function tt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,15,"div",[["class","bs-timepicker-container"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["-"])),(t()(),a["ɵeld"](4,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["+"])),(t()(),a["ɵeld"](7,0,null,null,5,"div",[["class","bs-timepicker-controls"]],null,null,null,null,null)),(t()(),a["ɵeld"](8,0,null,null,1,"button",[["class","bs-decrease"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["-"])),(t()(),a["ɵeld"](10,0,null,null,0,"input",[["placeholder","00"],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),a["ɵeld"](11,0,null,null,1,"button",[["class","bs-increase"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["+"])),(t()(),a["ɵeld"](13,0,null,null,2,"button",[["class","switch-time-format"]],null,null,null,null,null)),(t()(),a["ɵted"](14,null,[""," "])),(t()(),a["ɵeld"](15,0,null,null,0,"img",[["alt",""],["src","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAAKCAYAAABi8KSDAAABSElEQVQYV3XQPUvDUBQG4HNuagtVqc6KgouCv6GIuIntYBLB9hcIQpLStCAIV7DYmpTcRWcXqZio3Vwc/UCc/QEqfgyKGbr0I7nS1EiHeqYzPO/h5SD0jaxUZjmSLCB+OFb+UFINFwASAEAdpu9gaGXVyAHHFQBkHpKHc6a9dzECvADyY9sqlAMsK9W0jzxDXqeytr3mhQckxSji27TJJ5/rPmIpwJJq3HrtduriYOurv1a4i1p5HnhkG9OFymi0ReoO05cGwb+ayv4dysVygjeFmsP05f8wpZQ8fsdvfmuY9zjWSNqUtgYFVnOVReILYoBFzdQI5/GGFzNHhGbeZnopDGU29sZbscgldmC99w35VOATTycIMMcBXIfpSVGzZhA6C8hh00conln6VQ9TGgV32OEAKQC4DrBq7CJwd0ggR7Vq/rPrfgB+C3sGypY5DAAAAABJRU5ErkJggg=="]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,4,0,n.hours),t(e,10,0,n.minutes),t(e,14,0,n.ampm)}))}var et=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function nt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-current-date",[["title","hey there"]],null,null,null,$,K)),a["ɵdid"](1,49152,null,0,r.v,[],{title:[0,"title"]},null)],(function(t,e){t(e,1,0,"hey there")}),null)}function at(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-timepicker",[],null,null,null,tt,Q)),a["ɵdid"](1,49152,null,0,r.x,[],null,null)],null,null)}function rt(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,nt)),a["ɵdid"](1,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](2,0,null,null,1,"div",[["class","bs-datepicker-head"]],null,null,null,null,null)),a["ɵncd"](null,0),(t()(),a["ɵeld"](4,0,null,null,1,"div",[["class","bs-datepicker-body"]],null,null,null,null,null)),a["ɵncd"](null,1),(t()(),a["ɵand"](16777216,null,null,1,null,at)),a["ɵdid"](7,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,!1),t(e,7,0,!1)}),null)}var ot=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function it(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,0,"th",[],null,null,null,null,null))],null,null)}function st(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"th",[["aria-label","weekday"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[""," "]))],null,(function(t,e){t(e,1,0,e.component.calendar.weekdays[e.context.index])}))}function ct(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["class","week"]],[[2,"active-week",null]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectWeek(t.parent.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.weekHoverHandler(t.parent.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){var n=e.component;t(e,0,0,n.isWeekHovered),t(e,2,0,n.calendar.weekNumbers[e.parent.context.index])}))}function lt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"td",[["role","gridcell"]],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,2,"span",[["bsDatepickerDayDecorator",""]],[[2,"disabled",null],[2,"is-highlighted",null],[2,"is-other-month",null],[2,"is-active-other-month",null],[2,"in-range",null],[2,"select-start",null],[2,"select-end",null],[2,"selected",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.selectDay(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverDay(t.context.$implicit,!1)&&a),a}),W,U)),a["ɵdid"](2,114688,null,0,r.u,[r.a,a.ElementRef,a.Renderer2],{day:[0,"day"]},null),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,1,0,a["ɵnov"](e,2).day.isDisabled,a["ɵnov"](e,2).day.isHovered,a["ɵnov"](e,2).day.isOtherMonth,a["ɵnov"](e,2).day.isOtherMonthHovered,a["ɵnov"](e,2).day.isInRange,a["ɵnov"](e,2).day.isSelectionStart,a["ɵnov"](e,2).day.isSelectionEnd,a["ɵnov"](e,2).day.isSelected),t(e,3,0,e.context.$implicit.label)}))}function dt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ct)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,lt)),a["ɵdid"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.options.showWeekNumbers),t(e,4,0,e.context.$implicit.days)}),null)}function ut(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,13,"bs-calendar-layout",[],null,null,null,rt,et)),a["ɵdid"](1,49152,null,0,r.y,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),X,Z)),a["ɵdid"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,9,"table",[["class","days weeks"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,5,"thead",[],null,null,null,null,null)),(t()(),a["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,it)),a["ɵdid"](8,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,st)),a["ɵdid"](10,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](11,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,dt)),a["ɵdid"](13,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,8,0,n.options.showWeekNumbers),t(e,10,0,n.calendar.weekdays),t(e,13,0,n.calendar.weeks)}),null)}var gt=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function ft(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewMonth(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverMonth(t.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)}))}function pt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,ft)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function mt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["ɵdid"](1,49152,null,0,r.y,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),X,Z)),a["ɵdid"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,3,"table",[["class","months"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,pt)),a["ɵdid"](7,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.months)}),null)}var ht=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function bt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"td",[["role","gridcell"]],[[2,"disabled",null],[2,"is-highlighted",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.viewYear(t.context.$implicit)&&a),"mouseenter"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!0)&&a),"mouseleave"===e&&(a=!1!==r.hoverYear(t.context.$implicit,!1)&&a),a}),null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,0,0,e.context.$implicit.isDisabled,e.context.$implicit.isHovered),t(e,2,0,e.context.$implicit.label)}))}function yt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,bt)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function _t(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"bs-calendar-layout",[],null,null,null,rt,et)),a["ɵdid"](1,49152,null,0,r.y,[],null,null),(t()(),a["ɵeld"](2,0,null,0,1,"bs-datepicker-navigation-view",[],null,[[null,"onNavigate"],[null,"onViewMode"]],(function(t,e,n){var a=!0,r=t.component;return"onNavigate"===e&&(a=!1!==r.navigateTo(n)&&a),"onViewMode"===e&&(a=!1!==r.changeViewMode(n)&&a),a}),X,Z)),a["ɵdid"](3,49152,null,0,r.w,[],{calendar:[0,"calendar"]},{onNavigate:"onNavigate",onViewMode:"onViewMode"}),(t()(),a["ɵeld"](4,0,null,1,3,"table",[["class","years"],["role","grid"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"tbody",[],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,yt)),a["ɵdid"](7,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.calendar),t(e,7,0,n.calendar.years)}),null)}var Ot=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function vt(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.$implicit.label)}))}function Ct(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"button",[],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Custom Range"]))],null,null)}function Pt(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,4,"div",[["class","bs-datepicker-predefined-btns"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,vt)),a["ɵdid"](2,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,Ct)),a["ɵdid"](4,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.ranges),t(e,4,0,n.isCustomRangeShown)}),null)}},b1Dy:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},b2z7:function(t,e){var n=/\w*$/;t.exports=function(t){var e=new t.constructor(t.source,n.exec(t));return e.lastIndex=t.lastIndex,e}},b5OY:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("pxLl");class a{constructor(t,e){this.performanceCounterService=t,this.i18n=e,this.columns=[],this.counters=[]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Description"),prop:"description",flexGrow:1},{name:this.i18n("Value"),prop:"value",cellTemplate:this.valueTpl,flexGrow:1}]}getCounters(t){this.performanceCounterService.get(this.serviceType,this.serviceId).subscribe(t=>{this.counters=t},e=>{404===e.status?(e.preventDefault(),this.counters=null):t.error()})}}},b80T:function(t,e,n){var a=n("UNi/"),r=n("03A+"),o=n("Z0cm"),i=n("DSRE"),s=n("wJg7"),c=n("c6wG"),l=Object.prototype.hasOwnProperty;t.exports=function(t,e){var n=o(t),d=!n&&r(t),u=!n&&!d&&i(t),g=!n&&!d&&!u&&c(t),f=n||d||u||g,p=f?a(t.length,String):[],m=p.length;for(var h in t)!e&&!l.call(t,h)||f&&("length"==h||u&&("offset"==h||"parent"==h)||g&&("buffer"==h||"byteLength"==h||"byteOffset"==h)||s(h,m))||p.push(h);return p}},bHdf:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("5+tZ"),r=n("SpAZ");function o(t=Number.POSITIVE_INFINITY){return Object(a.a)(r.a,t)}},bN42:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="ja-JP">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>ナビゲーションの切り替え</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>ダッシュボード</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>クラスタ</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>ホスト</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>モニター</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>サービス</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>CRUSHマップ</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>マネージャモジュール</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>ログ</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>プール</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>ブロック</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>イメージ</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>ミラーリング</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>ファイルシステム</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>オブジェクトゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>デーモン</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>バケット</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>言語の選択</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>パネルデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Grafana Time Picker</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>設定のリセット</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>戻る</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>データを読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>選択済み</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>検出済み</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>合計</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>名前</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>説明</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>長い説明</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>デフォルト</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>デーモンのデフォルト</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>値</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>保存</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>CRUSHマップビューア</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>ホスト名</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>はい。</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>キャンセル</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>閉じる</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>ホストリスト</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>全体的なパフォーマンス</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>エントリが見つかりません</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>クラスタログ</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>監査ログ</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>設定を読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>設定を読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>マネージャモジュールの編集</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>入力された値は有効なUUIDではありません(有効なUUIDの例: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8)。</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>有効なIPアドレスを入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>数字を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>数字または小数を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>ステータス</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>クラスタID</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmapが変更されました</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmapエポック</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>定数con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>定数mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>必須のcon</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>必須のmon</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>定数内</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>非定数内</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>追加</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>機能</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>クラスタ全体のOSDフラグ</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>送信</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>詳細...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>OSD回復優先度</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>優先度</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>優先度値のカスタマイズ</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>値は0と1の間である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>再重みづけ</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Deep } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {deep } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>OSDリスト</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>値</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>編集</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>削除</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>ヘルス</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>統計情報</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>クライアント</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>任意のクライアントからアクセスできます</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>アドレス</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>必須フィールド</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>1つ以上のカンマ区切り値を含んでいる必要があります</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>例:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>アクセスタイプ</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>スカッシュ</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>クライアントの追加</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- 使用可能なクラスタがありません --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- クラスタを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>デーモンの追加</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>ストレージバックエンド</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- 使用可能なデータプールがありません --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- ストレージバックエンドを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>オブジェクトゲートウェイユーザ</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- 使用可能なユーザがありません --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- オブジェクトゲートウェイユーザを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>CephFSユーザID</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- 使用可能なクライアントがありません --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- cephxクライアントを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>CephFS名</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>セキュリティラベル</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>セキュリティラベルの有効化</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFSパス</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>パスは「/」で始まる必要があり、その後ろに1つの単語を配置できます</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>新しいディレクトリが作成されます</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>パス</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>パスは単一の「/」または1つの単語である必要があります</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>新しいバケットが作成されます</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>NFSプロトコル</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>NFSタグ</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>クライアントはサブディレクトリをマウントできません(たとえば、[タグ] = fooの場合は、クライアントはfoo/bazをマウントできません)。</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>異なる[タグ]オプションを使用することで、同じパスを複数回エクスポートできます。</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>疑似</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>異なる[疑似]オプションを使用することで、同じパスを複数回エクスポートできます。</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- 使用可能なアクセスタイプがありません --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- アクセスタイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- 使用可能なスカッシュがありません --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- 実行されるユーザIDスカッシュ操作の種類を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>トランスポートプロトコル</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Cephにようこそ!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>ユーザ名は必須です</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>パスワードは必須です</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>ログイン</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>このユーザはCephに存在しません。</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>禁止</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>検索していた内容を表示することは許可されていません。</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>RBD設定</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>ローカル設定値を削除します。親設定値が継承されて代わりに使用されます。</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>最小値は0です</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>プールリスト</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>名前は英数字、ダッシュ、および下線のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>選択されたイレイジャコードプロファイル名はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>プラグイン</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>データチャンク(k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>2以上である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>コーディングチャンク(m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>1以上である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>耐久性推定子(c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>地域(l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Crush障害ドメイン</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Crush地域</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>技法</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>パケットサイズ</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crushルート</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Crushデバイスクラス</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>任意</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>ディレクトリ</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>名前...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>選択されたCephプール名はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>プールタイプ</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- プールタイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>配置グループ</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>少なくとも1つの配置グループが必要です。</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>ご使用のクラスタはこれだけ多数の配置グループを処理できません。必要な配置グループの数を再計算してください。</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>計算のヘルプ</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>複製されたサイズ</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>フラグ</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>ECの上書き</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>アプリケーション</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>イレイジャコードプロファイル</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- 使用可能なイレイジャコードプロファイルがありません --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- イレイジャコードプロファイルを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Crushルールセット</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Crushルールを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Crushルール</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crushステップ</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>圧縮</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>モード</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>アルゴリズム</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- 使用可能なイレイジャ圧縮アルゴリズムがありません --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>最小blobサイズ</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>例: 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>値は0より大きい必要があります</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>最大blobサイズ</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>例: 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>値は最小blobサイズより大きい必要があります</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>率</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>圧縮率</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>値は0.0~1.0の間である必要があります</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>例: 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>詳細</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>パフォーマンスの詳細</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>キャッシュ層の詳細</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>イメージをごみ箱に移動する</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>保護の失効日</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>保護されていません</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>日付の形式が正しくありません。「YYYY-MM-DD HH:mm:ss」という形式を使用してください。</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>保護はすでに失効しています。将来の日付を選択するか、日付を空白のままにしてください。</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>イメージの移動</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>概要</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>ターゲット</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>検出認証</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>ユーザ名は8~64文字の長さである必要があり、\n英字、「.」、「@」、「-」、「_」、または「:」のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>パスワード</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>相互ユーザ</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>相互パスワード</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>取得可能な情報:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>使用可能なiSCSIターゲットがありません</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>プール</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>データプール</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>作成済み</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>サイズ</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>オブジェクトサイズ</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>プロビジョニング済み</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>プロビジョニング済み合計</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>ストライピング単位</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>ストライピング数</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>親</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>ブロック名のプレフィックス</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>順番</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>スナップショット</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>イメージ</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>この設定はグローバル値よりも優先されます</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>グローバル</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>これはグローバル値です。このイメージについて、このオプションの値は設定されていません。</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>「/」と「@」は使用できません。</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- 使用可能なrbdプールがありません --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- プールを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>専用のデータプールを使用してください</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>データプール</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>RBDのオブジェクトデータを保管するための専用プール</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>サイズを大きくする必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>詳細</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>ストライピング</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>ストライプ単位</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- ストライプ単位を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>ストライプ数が定義されているため、このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>ストライプ単位がオブジェクトサイズより大きいです。</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>ストライプ数</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>ストライプ単位が定義されているため、このフィールドは必須です。</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>ストライプ数は0より大きい必要があります。</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>ロールバックしようとしています</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>ごみ箱を空にする</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>すべて</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>プール:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>プール名...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>イメージの復元</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>復元するには</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>イメージの新しい名前を入力してクリックします</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>新しい名前</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>失効日</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>保護の終了日</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>iSCSIトポロジ</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>通常はこれらのパラメータをデフォルト値から変更する必要はありません。</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>設定</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>バックストア</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>確認</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>詳細設定</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>ターゲットIQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>IQNのパターンが正しくありません。</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>例: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>詳細情報</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>このターゲットの詳細設定は変更されています。</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>ポータル</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>ポータルの追加</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>このイメージの設定は変更されています。</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>イメージの追加</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>ACL認証</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>イニシエータ</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>イニシエータ</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>クライアントIQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>イニシエータIQNは一意である必要があります。</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>ユーザ名は8~64文字の長さである必要があり、\n英字、「.」、「@」、「-」、「_」、または「:」のみで構成される必要があります。</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>イニシエータはいずれかのグループに属します。イメージはそのグループ内で設定されます。</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>アイテムが追加されていません。</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>イニシエータの追加</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>グループ</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>グループ</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>グループの追加</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>ごみ箱</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>同期中</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>準備完了</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>プールのミラーモードの編集</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>ミラーを無効にする前に、ピアクラスタを削除する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>クラスタ名</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>このクラスタ名は無効です。</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>このCephX IDは無効です。</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>モニターアドレス</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>カンマ区切りアドレス...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>この警告アドレスは無効です。</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephXキー</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64エンコード化済みキー...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>CephXキーはbase64でエンコードされている必要があります。</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>パフォーマンスカウンタを使用できません</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>デーモンリスト</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>パフォーマンスカウンタ</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>バケットデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Id</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>この値は無効です。</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>選択された名前はすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>所有者</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- ユーザを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>有効化済み</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>インデックスタイプ</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>配置ルール</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>マーカー</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>最大マーカー</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>バージョン</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>マスタバージョン</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>変更時間</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>ゾーングループ</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>バケットクォータ</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>最大サイズ</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>無制限</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>ユーザ名</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- ユーザ名を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>キーの自動生成</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>アクセスキー</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>秘密キー</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>氏名</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>電子メールアドレス</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>中断済み</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>システム</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>最大バケット数</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>サブユーザ</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>機能</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>ユーザクォータ</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>表示</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>キー</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>タイプ</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- タイプを選択してください --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>許可</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- 許可を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>サブユーザ</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>選択されたサブユーザIDはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>読み取り、書き込み</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>フル</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>スウィフトキー</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>秘密の自動生成</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>ユーザデータを読み込んでいます...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>ユーザデータを読み込めませんでした。</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>選択されたユーザIDはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>これは有効な電子メールアドレスではありません。</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>選択された電子メールアドレスはすでに使用されています。</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>最大バケット数</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>無効化済み</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>カスタム</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>S3キー</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>サブユーザがいません。</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>キーがありません。</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>スウィフト</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>機能がありません。</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>無制限のサイズ</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>最大サイズ</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>無制限のオブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>0以上の値を入力する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>説明...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>許可</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>役割</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>パスワードの確認入力</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>確認入力されたパスワードがパスワードと一致しません。</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>電子メール</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>無効な電子メールです。</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>自身のユーザから「user read / update」という許可を削除しようとしています。</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>続行した場合は、どのユーザの役割も追加および削除できなくなります。</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>続行してもよろしいですか?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>ヘルプ</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>ドキュメント</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>バージョン情報</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>ダッシュボード設定</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>ユーザ管理</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>ログイン済みユーザ</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>サインアウト</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>属性(OSDマップ)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>メタデータを使用できません</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>メタデータ</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>パフォーマンスカウンタ</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>書き込み回数</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>読み取り回数</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>ヒストグラム</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>現行値</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>最小</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>最大</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>ソース</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>レベル</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>実行時に更新できます(編集可能)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>タグ</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>列挙値</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>関連項目</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>クラスタのステータス</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>マネージャデーモン</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>オブジェクトゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>メタデータサーバ</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>iSCSIゲートウェイ</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>クライアントのIOPS</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>クライアントのスループット</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>クライアントの読み取り/書き込み</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>回復スループット</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>スクラブ</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>パフォーマンス</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>未フォーマット時の容量</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>OSDあたりの配置グループ数</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>配置グループのステータス</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>容量</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>ランク</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>現在</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>検出認証を更新しました</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>使用可能なポータルはありません。</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>使用可能なイメージはありません。</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>使用可能なイメージはありません。ターゲットにイメージを追加したことを確認してください。</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>使用可能なイニシエータはありません。ターゲットにイニシエータを追加したことを確認してください。</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>ターゲット</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>状態</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>読み取りバイト数</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>書き込みバイト数</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>読み取り操作数</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>書き込み操作数</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>次の日付以降のA/O</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>インスタンス</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>問題</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>進捗</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>モードの編集</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>ピアの追加</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>ピアの編集</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>ピアの削除</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>リーダー</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>#ローカル</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>#リモート</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>ミラーピア</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>キー</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>ディープフラット化</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>階層化</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>排他ロック</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>オブジェクトマップ(排他ロックが必要)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>ジャーナリング(排他ロックが必要)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>未保護</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>RBDスナップショットのロールバック</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>ロールバック</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>RBDスナップショット</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>削除日時</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>タイプ</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>状態</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>バージョン</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>ホスト</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>ルート</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>スタンバイデーモン</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>ランク</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>デーモン</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>アクティビティ</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>dエントリ</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>iノード</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>使用量</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>更新済み</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>この値は実行時に更新できます。</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>デーモン/クライアントはこの値をモニター設定データベースから取得しません。\nこのオプションを「ceph config set ...」を通じて設定することは禁止されています。\nこのオプションは、ceph.confまたはコマンドラインを通じて\n設定する必要があります。</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>オプションはデーモン始動時のみに有効になります。</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>オプションはクラスタの作成のみに適用されます。</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>オプションはデーモンの作成のみに適用されます。</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>サービス</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>現行値</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>編集可能</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>有効化</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>無効化</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>再接続していますので、しばらくお待ちください...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>パブリックアドレス</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>セッションの開始</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>インなし</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>以前にアウトとしてマークされたOSDは、それらの始動時にインとしてマークされることはありません</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>アウトなし</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSDは、設定済みの間隔が経過した後に自動的にアウトとしてマークされます</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>アップなし</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSDを始動することは許可されていません</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>ダウンなし</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>OSDの障害レポートは無視されているため、OSDはモニターによってダウンとしてマークされません</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>一時停止</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>読み取りと書き込みを一時停止します</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>スクラブなし</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>スクラブ処理は無効化されています</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>ディープスクラブなし</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>ディープスクラブ処理は無効化されています</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>バックフィルなし</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>配置グループのバックフィルは中断されています</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>回復なし</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>配置グループの回復は中断されています</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>ビット単位のソート</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>ビット単位のソートを使用する</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>消去されたスナップディレクトリ</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSDによってスナップセットが変換されました</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>回復の削除</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>ピアリングの代わりに回復時に削除が実行されました</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>配置グループログのハード制限</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>配置グループログ長のハード制限を適用します</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>OSDフラグを更新しました</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>アウト</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>イン</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>ダウン</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>マーク</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>喪失したOSD</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>喪失としてマーク済み</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>消去</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>消去済み</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>破棄</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>破棄済み</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>削除</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>配置グループ数</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>読み取りバイト数</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>書き込みバイト数</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>読み取り操作数</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>書き込み操作数</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>最大バックフィル数</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>回復最大アクティブ</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>回復最大単一始動</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>回復スリープ</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>ジョブ</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>重大度</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>始動済み</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>使用済み</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>使用可能</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>クリーン</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>動作中</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>警告</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>不明</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>アップ</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>ファイルシステムがありません</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>アクティブ</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>スタンバイ</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>なし</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>アクティブデーモン</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>定数</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>NFS Ganeshaサービスが設定されていません。</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>トランスポート</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>CephFSユーザ</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>CephFSファイルシステム</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(グローバル設定から継承)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>グローバル設定から継承されました</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- 実行されるユーザIDスカッシュ操作を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>使用可能なデーモンがありません。</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>キャッシュモード</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>退去までの最小経過時間</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>消去までの最小経過時間</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>ターゲットの最大バイト数</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>ターゲットの最大オブジェクト数</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>アプリケーションは追加されていません</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>アプリケーション数の上限に達しました</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>1つのプールは最大で4つのアプリケーション定義しか保有できません。</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>使用可能な文字「_a-zA-Z0-9」</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>最大長は128文字です</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>アプリケーションのフィルタリングまたは追加</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>アプリケーションの追加</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>イレイジャコードプロファイル</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>レプリカサイズ</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>最後の変更</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>イレイジャコード化済みプロファイル</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Crushルールセット</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>バケット</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>バケット数</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>ユーザ</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>ユーザ数</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>範囲</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>読み取り</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>作成</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>システム役割</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>ユーザの更新</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>続行</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>このユーザの役割が変更されたため、このユーザは自動的にログアウトされました。</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>各オブジェクトは複数のデータチャンクパートに分割されており、それぞれのパートは異なるOSDに保管されています。</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>各オブジェクトのコーディングチャンクを計算して、これらのチャンクを別々のOSDに保管します。\nコーディングチャンクの数は、データを失うことなくダウン状態になることができるOSDの数でもあります。</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>jerasureプラグインは最も汎用的で柔軟性の高いプラグインです。\nこのプラグインは、Cephイレイジャコード化済みプール用のデフォルトでもあります。</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>さらに柔軟性の高い技法はreed_sol_vanです。kとmを\n設定するだけで十分です。\ncauchy_good技法はより高速となり得ますが、パケットサイズを慎重に選択する必要があります。\nreed_sol_r6_op、liberation、blaum_roth、liber8tionはすべて、\nm=2を使用した設定のみが可能という意味でRAID6と同等です。</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>エンコードはバイトサイズのパケット群に対して同時に実行されます。\n適切なパケットサイズを選択することは困難です。\njerasureのドキュメントにはこのトピックに関する詳細な情報が記載されています。</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>jerasureプラグインを使用すると、イレイジャコード化済みオブジェクトが複数のOSDに保管されている場合は、\n1つのOSDの喪失から回復するには、他のすべてのOSDからの読み取りが必要になります。\nたとえば、k=8およびm=4を使用してjerasureが設定されている場合は、1つのOSDが失われた場合、\n修復のためには他の11個のOSDからの読み取りが必要になります。\n\nlrcイレイジャコードプラグインは、これより少ないOSDを使用した回復を可能にするために、\nローカルパリティチャンクを作成します。たとえば、lrcがk=8、m=4、およびl=4を使用して設定されている場合は、\nlrcは、4つのOSDごとに1つの追加パリティチャンクを作成します。1つのOSDが失われた場合は、\n11個の代わりに4つのOSDのみを使用してそのOSDを回復できます。</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>コーディングチャンクとデータチャンクをサイズ地域の複数セットにグループ分けします。\nたとえば、k=4およびm=2の場合に、[地域]=3の場合は、3つのチャンクからなるグループが2つ作成されます。\n各セットは、別のセットからチャンクを読み取ることなく回復できます。</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>1によって定義されたチャンクの各セットが保管されるCrushバケットのタイプ。\nたとえば、このバケットタイプがラックに設定されている場合は、1のチャンクの各グループは異なるラックに配置されます。\nこのバケットタイプを使用して、「ラックの選択」ステップなどのCRUSHルールステップが作成されます。\nこのバケットタイプが設定されていない場合は、このようなグループ分けは行われません。</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>isaプラグインはISAライブラリをカプセル化します。このプラグインはIntelプロセッサ上のみで動作します。</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>ISAプラグインは2つのリードソロモン形式で提供されています。reed_sol_vanが設定されている場合は、Vandermondeであり、cauchyが設定されている場合は、Cauchyです。</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>shecプラグインは複数のSHECライブラリをカプセル化します。\nこのプラグインを使用すると、cephはリードソロモンコードより効率的にデータを回復できます。</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>それぞれが各データチャンクを各自の計算範囲内に含んでいるパリティチャンクの数。\nこの数は、耐久性推定子として使用されます。\nたとえば、c=2の場合は、データを失うことなく2つのOSDがダウン状態になることができます。</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>CRUSHルールの最初のステップ(「デフォルトの使用」ステップなど)用に\n使用されるCrushバケットの名前。</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>同じ障害ドメインの単一バケット内に2つのチャンクが配置されることを防止します。\nたとえば、障害ドメインがホストである場合は、2つのチャンクが同じホストに保管されることはありません。\nこれを使用して、「リーフホストの選択」ステップなどのCRUSHルールステップが作成されます。</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>CRUSHマップ内でCrushデバイスクラス名を使用して、配置先を特定クラス(ssdやhddなど)のデバイスのみに制限します。</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>イレイジャコードプラグインの読み込み元となるディレクトリ名を設定します。</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>すべての操作を許可します</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>サーバに変更を加えない操作のみを許可します</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>読み取り/書き込み操作を許可しませんが、他のすべての操作を許可します</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>読み取り/書き込み操作、およびファイル属性やディレクトリ内容を変更するどの操作も許可しません</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>アクセスを一切許可しません</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- 優先度を選択してください --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>低</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>高</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>情報</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>直前の5分間</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>直前の15分間</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>直前の30分間</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>直前の1時間(デフォルト)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>直前の3時間</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>直前の6時間</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>直前の12時間</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>直前の24時間</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>昨日</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>本日</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>本日の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>一昨日</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>過去2日間</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>先週の同じ曜日</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>前週</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>今週</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>今週の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>過去7日間</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>前月</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>今月</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>今月の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>過去30日間</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>過去90日間</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>過去6カ月</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>過去1年間</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>前年</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>今年</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>今年の現時点まで</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>過去2年間</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>過去5年間</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>アイテムが選択されていません。</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>アイテムを選択解除して再選択してください</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>選択の上限に達しました</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>タグのフィルタリング</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>バッジの追加</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>使用可能なアイテムはありません。</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>コピー</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>ディープスクラブ</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>破棄</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>フラット化</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>ダウンとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>インとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>喪失としてマーク</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>アウトとしてマーク</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>保護</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>名前の変更</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>復元</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>ごみ箱に移動する</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>保護解除</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>削除済み</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>複製済み</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>コピー済み</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>フラット化済み</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>消去済み</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>復元済み</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>ロールバック済み</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>はい</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>いいえ</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>サービス品質</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>BPS制限</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>希望する秒あたり入出力バイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>IOPS制限</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>希望する秒あたり入出力操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>読み取りBPS制限</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>希望する秒あたり読み取りバイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>読み取りIOPS制限</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>希望する秒あたり読み取り操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>書き込みBPS制限</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>希望する秒あたり書き込みバイト数の上限。</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>書き込みIOPS制限</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>希望する秒あたり書き込み操作数の上限。</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>BPSバースト</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>希望する入出力バイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>IOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>希望する入出力操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>読み取りBPSバースト</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>希望する読み取りバイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>読み取りIOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>希望する読み取り操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>書き込みBPSバースト</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>希望する書き込みバイト数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>書き込みIOPSバースト</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>希望する書き込み操作数のバースト上限。</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>実行中</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>実行</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>実行済み</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>不明なタスク</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>作成中</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>作成</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>更新中</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>更新</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>削除中</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>複製中</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>複製</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>コピー中</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>コピー</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>フラット化中</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>フラット化</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>ロールバック中</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>ロールバック</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>移動中</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>移動</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>移動済み</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>イメージが見つかりませんでした。</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>復元中</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>復元</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>消去中</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>消去</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>すべてのプール</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>ピアを含んでいるためミラーリングを無効化できません。</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},bOMt:function(t,e,n){!function(t){"use strict";t.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øndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".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år 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åned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},bOdf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("5+tZ");function r(t,e){return Object(a.a)(t,e,1)}},bWFh:function(t,e,n){"use strict";var a=n("I+eb"),r=n("2oRo"),o=n("lMq5"),i=n("busE"),s=n("8YOa"),c=n("ImZN"),l=n("GarU"),d=n("hh1v"),u=n("0Dky"),g=n("HH4o"),f=n("1E5z"),p=n("cVYH");t.exports=function(t,e,n){var m=-1!==t.indexOf("Map"),h=-1!==t.indexOf("Weak"),b=m?"set":"add",y=r[t],_=y&&y.prototype,O=y,v={},C=function(t){var e=_[t];i(_,t,"add"==t?function(t){return e.call(this,0===t?0:t),this}:"delete"==t?function(t){return!(h&&!d(t))&&e.call(this,0===t?0:t)}:"get"==t?function(t){return h&&!d(t)?void 0:e.call(this,0===t?0:t)}:"has"==t?function(t){return!(h&&!d(t))&&e.call(this,0===t?0:t)}:function(t,n){return e.call(this,0===t?0:t,n),this})};if(o(t,"function"!=typeof y||!(h||_.forEach&&!u((function(){(new y).entries().next()})))))O=n.getConstructor(e,t,m,b),s.REQUIRED=!0;else if(o(t,!0)){var P=new O,M=P[b](h?{}:-0,1)!=P,x=u((function(){P.has(1)})),w=g((function(t){new y(t)})),T=!h&&u((function(){for(var t=new y,e=5;e--;)t[b](e,e);return!t.has(-0)}));w||((O=e((function(e,n){l(e,O,t);var a=p(new y,e,O);return null!=n&&c(n,a[b],a,m),a}))).prototype=_,_.constructor=O),(x||T)&&(C("delete"),C("has"),m&&C("get")),(T||M)&&C(b),h&&_.clear&&delete _.clear}return v[t]=O,a({global:!0,forced:O!=y},v),f(O,t),h||n.setStrong(O,t,m),O}},bXm7:function(t,e,n){!function(t){"use strict";var e={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};t.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".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:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},bYM6:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n("wd/R"))},bpWZ:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("FO+L")),a(n("nhM1")),a(n("BARL"))},bpih:function(t,e,n){!function(t){"use strict";t.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ì_martedì_mercoledì_giovedì_venerdì_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(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},busE:function(t,e,n){var a=n("2oRo"),r=n("kRJp"),o=n("UTVS"),i=n("zk60"),s=n("iSVu"),c=n("afO8"),l=c.get,d=c.enforce,u=String(String).split("String");(t.exports=function(t,e,n,s){var c=!!s&&!!s.unsafe,l=!!s&&!!s.enumerable,g=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof e||o(n,"name")||r(n,"name",e),d(n).source=u.join("string"==typeof e?e:"")),t!==a?(c?!g&&t[e]&&(l=!0):delete t[e],l?t[e]=n:r(t,e,n)):l?t[e]=n:i(e,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||s(this)}))},bxKX:function(t,e,n){!function(t){"use strict";t.defineLocale("it-ch",{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ì_martedì_mercoledì_giovedì_venerdì_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(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},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}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},bxSN:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J"),o=n("moLw");e.ClickOutsideModule=function(){return a([r.NgModule({declarations:[o.ClickOutsideDirective],exports:[o.ClickOutsideDirective]})],(function(){}))}()},c2HN:function(t,e,n){"use strict";function a(t){return!!t&&"function"!=typeof t.subscribe&&"function"==typeof t.then}n.d(e,"a",(function(){return a}))},c6wG:function(t,e,n){var a=n("dD9F"),r=n("sEf8"),o=n("mdPL"),i=o&&o.isTypedArray,s=i?r(i):a;t.exports=s},cRix:function(t,e,n){!function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},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:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",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(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})}(n("wd/R"))},cUpR:function(t,e,n){"use strict";n.d(e,"p",(function(){return v})),n.d(e,"a",(function(){return dt})),n.d(e,"h",(function(){return lt})),n.d(e,"c",(function(){return C})),n.d(e,"d",(function(){return P})),n.d(e,"e",(function(){return W})),n.d(e,"f",(function(){return K})),n.d(e,"g",(function(){return $})),n.d(e,"b",(function(){return tt})),n.d(e,"q",(function(){return i})),n.d(e,"j",(function(){return N})),n.d(e,"i",(function(){return H})),n.d(e,"m",(function(){return Z})),n.d(e,"n",(function(){return Q})),n.d(e,"l",(function(){return w})),n.d(e,"o",(function(){return x})),n.d(e,"k",(function(){return et}));var a=n("SVse"),r=n("8Y7J");let o=null;function i(){return o}const s={class:"className",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"},c={"\b":"Backspace","\t":"Tab","\7f":"Delete","\e":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},l={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\90":"NumLock"},d=(()=>{if(r["ɵglobal"].Node)return r["ɵglobal"].Node.prototype.contains||function(t){return!!(16&this.compareDocumentPosition(t))}})();class u extends class extends class{constructor(){this.resourceLoaderType=null}get attrToPropMap(){return this._attrToPropMap}set attrToPropMap(t){this._attrToPropMap=t}}{constructor(){super(),this._animationPrefix=null,this._transitionEnd=null;try{const t=this.createElement("div",document);if(null!=this.getStyle(t,"animationName"))this._animationPrefix="";else{const e=["Webkit","Moz","O","ms"];for(let n=0;n<e.length;n++)if(null!=this.getStyle(t,e[n]+"AnimationName")){this._animationPrefix="-"+e[n].toLowerCase()+"-";break}}const e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};Object.keys(e).forEach(n=>{null!=this.getStyle(t,n)&&(this._transitionEnd=e[n])})}catch(t){this._animationPrefix=null,this._transitionEnd=null}}getDistributedNodes(t){return t.getDistributedNodes()}resolveAndSetHref(t,e,n){t.href=null==n?e:e+"/../"+n}supportsDOMEvents(){return!0}supportsNativeShadowDOM(){return"function"==typeof document.body.createShadowRoot}getAnimationPrefix(){return this._animationPrefix?this._animationPrefix:""}getTransitionEnd(){return this._transitionEnd?this._transitionEnd:""}supportsAnimation(){return null!=this._animationPrefix&&null!=this._transitionEnd}}{parse(t){throw new Error("parse not implemented")}static makeCurrent(){var t;t=new u,o||(o=t)}hasProperty(t,e){return e in t}setProperty(t,e,n){t[e]=n}getProperty(t,e){return t[e]}invoke(t,e,n){t[e](...n)}logError(t){window.console&&(console.error?console.error(t):console.log(t))}log(t){window.console&&window.console.log&&window.console.log(t)}logGroup(t){window.console&&window.console.group&&window.console.group(t)}logGroupEnd(){window.console&&window.console.groupEnd&&window.console.groupEnd()}get attrToPropMap(){return s}contains(t,e){return d.call(t,e)}querySelector(t,e){return t.querySelector(e)}querySelectorAll(t,e){return t.querySelectorAll(e)}on(t,e,n){t.addEventListener(e,n,!1)}onAndCancel(t,e,n){return t.addEventListener(e,n,!1),()=>{t.removeEventListener(e,n,!1)}}dispatchEvent(t,e){t.dispatchEvent(e)}createMouseEvent(t){const e=this.getDefaultDocument().createEvent("MouseEvent");return e.initEvent(t,!0,!0),e}createEvent(t){const e=this.getDefaultDocument().createEvent("Event");return e.initEvent(t,!0,!0),e}preventDefault(t){t.preventDefault(),t.returnValue=!1}isPrevented(t){return t.defaultPrevented||null!=t.returnValue&&!t.returnValue}getInnerHTML(t){return t.innerHTML}getTemplateContent(t){return"content"in t&&this.isTemplateElement(t)?t.content:null}getOuterHTML(t){return t.outerHTML}nodeName(t){return t.nodeName}nodeValue(t){return t.nodeValue}type(t){return t.type}content(t){return this.hasProperty(t,"content")?t.content:t}firstChild(t){return t.firstChild}nextSibling(t){return t.nextSibling}parentElement(t){return t.parentNode}childNodes(t){return t.childNodes}childNodesAsList(t){const e=t.childNodes,n=new Array(e.length);for(let a=0;a<e.length;a++)n[a]=e[a];return n}clearNodes(t){for(;t.firstChild;)t.removeChild(t.firstChild)}appendChild(t,e){t.appendChild(e)}removeChild(t,e){t.removeChild(e)}replaceChild(t,e,n){t.replaceChild(e,n)}remove(t){return t.parentNode&&t.parentNode.removeChild(t),t}insertBefore(t,e,n){t.insertBefore(n,e)}insertAllBefore(t,e,n){n.forEach(n=>t.insertBefore(n,e))}insertAfter(t,e,n){t.insertBefore(n,e.nextSibling)}setInnerHTML(t,e){t.innerHTML=e}getText(t){return t.textContent}setText(t,e){t.textContent=e}getValue(t){return t.value}setValue(t,e){t.value=e}getChecked(t){return t.checked}setChecked(t,e){t.checked=e}createComment(t){return this.getDefaultDocument().createComment(t)}createTemplate(t){const e=this.getDefaultDocument().createElement("template");return e.innerHTML=t,e}createElement(t,e){return(e=e||this.getDefaultDocument()).createElement(t)}createElementNS(t,e,n){return(n=n||this.getDefaultDocument()).createElementNS(t,e)}createTextNode(t,e){return(e=e||this.getDefaultDocument()).createTextNode(t)}createScriptTag(t,e,n){const a=(n=n||this.getDefaultDocument()).createElement("SCRIPT");return a.setAttribute(t,e),a}createStyleElement(t,e){const n=(e=e||this.getDefaultDocument()).createElement("style");return this.appendChild(n,this.createTextNode(t,e)),n}createShadowRoot(t){return t.createShadowRoot()}getShadowRoot(t){return t.shadowRoot}getHost(t){return t.host}clone(t){return t.cloneNode(!0)}getElementsByClassName(t,e){return t.getElementsByClassName(e)}getElementsByTagName(t,e){return t.getElementsByTagName(e)}classList(t){return Array.prototype.slice.call(t.classList,0)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}hasClass(t,e){return t.classList.contains(e)}setStyle(t,e,n){t.style[e]=n}removeStyle(t,e){t.style[e]=""}getStyle(t,e){return t.style[e]}hasStyle(t,e,n){const a=this.getStyle(t,e)||"";return n?a==n:a.length>0}tagName(t){return t.tagName}attributeMap(t){const e=new Map,n=t.attributes;for(let a=0;a<n.length;a++){const t=n.item(a);e.set(t.name,t.value)}return e}hasAttribute(t,e){return t.hasAttribute(e)}hasAttributeNS(t,e,n){return t.hasAttributeNS(e,n)}getAttribute(t,e){return t.getAttribute(e)}getAttributeNS(t,e,n){return t.getAttributeNS(e,n)}setAttribute(t,e,n){t.setAttribute(e,n)}setAttributeNS(t,e,n,a){t.setAttributeNS(e,n,a)}removeAttribute(t,e){t.removeAttribute(e)}removeAttributeNS(t,e,n){t.removeAttributeNS(e,n)}templateAwareRoot(t){return this.isTemplateElement(t)?this.content(t):t}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}getBoundingClientRect(t){try{return t.getBoundingClientRect()}catch(e){return{top:0,bottom:0,left:0,right:0,width:0,height:0}}}getTitle(t){return t.title}setTitle(t,e){t.title=e||""}elementMatches(t,e){return!!this.isElementNode(t)&&(t.matches&&t.matches(e)||t.msMatchesSelector&&t.msMatchesSelector(e)||t.webkitMatchesSelector&&t.webkitMatchesSelector(e))}isTemplateElement(t){return this.isElementNode(t)&&"TEMPLATE"===t.nodeName}isTextNode(t){return t.nodeType===Node.TEXT_NODE}isCommentNode(t){return t.nodeType===Node.COMMENT_NODE}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}hasShadowRoot(t){return null!=t.shadowRoot&&t instanceof HTMLElement}isShadowRoot(t){return t instanceof DocumentFragment}importIntoDoc(t){return document.importNode(this.templateAwareRoot(t),!0)}adoptNode(t){return document.adoptNode(t)}getHref(t){return t.getAttribute("href")}getEventKey(t){let e=t.key;if(null==e){if(e=t.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===t.location&&l.hasOwnProperty(e)&&(e=l[e]))}return c[e]||e}getGlobalEventTarget(t,e){return"window"===e?window:"document"===e?t:"body"===e?t.body:null}getHistory(){return window.history}getLocation(){return window.location}getBaseHref(t){const e=f||(f=document.querySelector("base"),f)?f.getAttribute("href"):null;return null==e?null:(n=e,g||(g=document.createElement("a")),g.setAttribute("href",n),"/"===g.pathname.charAt(0)?g.pathname:"/"+g.pathname);var n}resetBaseElement(){f=null}getUserAgent(){return window.navigator.userAgent}setData(t,e,n){this.setAttribute(t,"data-"+e,n)}getData(t,e){return this.getAttribute(t,"data-"+e)}getComputedStyle(t){return getComputedStyle(t)}supportsWebAnimation(){return"function"==typeof Element.prototype.animate}performanceNow(){return window.performance&&window.performance.now?window.performance.now():(new Date).getTime()}supportsCookies(){return!0}getCookie(t){return Object(a["ɵparseCookieValue"])(document.cookie,t)}setCookie(t,e){document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(e)}}let g,f=null;function p(){return!!window.history.pushState}const m=new r.InjectionToken("TRANSITION_ID"),h=[{provide:r.APP_INITIALIZER,useFactory:function(t,e,n){return()=>{n.get(r.ApplicationInitStatus).donePromise.then(()=>{const n=i();Array.prototype.slice.apply(n.querySelectorAll(e,"style[ng-transition]")).filter(e=>n.getAttribute(e,"ng-transition")===t).forEach(t=>n.remove(t))})}},deps:[m,a.DOCUMENT,r.Injector],multi:!0}];class b{static init(){Object(r.setTestabilityGetter)(new b)}addToWindow(t){r["ɵglobal"].getAngularTestability=(e,n=!0)=>{const a=t.findTestabilityInTree(e,n);if(null==a)throw new Error("Could not find testability for element.");return a},r["ɵglobal"].getAllAngularTestabilities=()=>t.getAllTestabilities(),r["ɵglobal"].getAllAngularRootElements=()=>t.getAllRootElements(),r["ɵglobal"].frameworkStabilizers||(r["ɵglobal"].frameworkStabilizers=[]),r["ɵglobal"].frameworkStabilizers.push(t=>{const e=r["ɵglobal"].getAllAngularTestabilities();let n=e.length,a=!1;const o=function(e){a=a||e,n--,0==n&&t(a)};e.forEach((function(t){t.whenStable(o)}))})}findTestabilityInTree(t,e,n){if(null==e)return null;const a=t.getTestability(e);return null!=a?a:n?i().isShadowRoot(e)?this.findTestabilityInTree(t,i().getHost(e),!0):this.findTestabilityInTree(t,i().parentElement(e),!0):null}}function y(t,e){"undefined"!=typeof COMPILED&&COMPILED||((r["ɵglobal"].ng=r["ɵglobal"].ng||{})[t]=e)}const _=(()=>({ApplicationRef:r.ApplicationRef,NgZone:r.NgZone}))();function O(t){return Object(r.getDebugNode)(t)}function v(t){return y("probe",O),y("coreTokens",Object.assign({},_,(t||[]).reduce((t,e)=>(t[e.name]=e.token,t),{}))),()=>O}const C=new r.InjectionToken("EventManagerPlugins");class P{constructor(t,e){this._zone=e,this._eventNameToPlugin=new Map,t.forEach(t=>t.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,e,n){return this._findPluginFor(e).addEventListener(t,e,n)}addGlobalEventListener(t,e,n){return this._findPluginFor(e).addGlobalEventListener(t,e,n)}getZone(){return this._zone}_findPluginFor(t){const e=this._eventNameToPlugin.get(t);if(e)return e;const n=this._plugins;for(let a=0;a<n.length;a++){const e=n[a];if(e.supports(t))return this._eventNameToPlugin.set(t,e),e}throw new Error(`No event manager plugin found for event ${t}`)}}class M{constructor(t){this._doc=t}addGlobalEventListener(t,e,n){const a=i().getGlobalEventTarget(this._doc,t);if(!a)throw new Error(`Unsupported event target ${a} for event ${e}`);return this.addEventListener(a,e,n)}}class x{constructor(){this._stylesSet=new Set}addStyles(t){const e=new Set;t.forEach(t=>{this._stylesSet.has(t)||(this._stylesSet.add(t),e.add(t))}),this.onStylesAdded(e)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}class w extends x{constructor(t){super(),this._doc=t,this._hostNodes=new Set,this._styleNodes=new Set,this._hostNodes.add(t.head)}_addStylesToHost(t,e){t.forEach(t=>{const n=this._doc.createElement("style");n.textContent=t,this._styleNodes.add(e.appendChild(n))})}addHost(t){this._addStylesToHost(this._stylesSet,t),this._hostNodes.add(t)}removeHost(t){this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach(e=>this._addStylesToHost(t,e))}ngOnDestroy(){this._styleNodes.forEach(t=>i().remove(t))}}const T={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/"},S=/%COMP%/g;function k(t,e,n){for(let a=0;a<e.length;a++){let r=e[a];Array.isArray(r)?k(t,r,n):(r=r.replace(S,t),n.push(r))}return n}function I(t){return e=>{!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}class N{constructor(t,e,n){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.rendererByCompId=new Map,this.defaultRenderer=new R(t)}createRenderer(t,e){if(!t||!e)return this.defaultRenderer;switch(e.encapsulation){case r.ViewEncapsulation.Emulated:{let n=this.rendererByCompId.get(e.id);return n||(n=new D(this.eventManager,this.sharedStylesHost,e,this.appId),this.rendererByCompId.set(e.id,n)),n.applyToHost(t),n}case r.ViewEncapsulation.Native:case r.ViewEncapsulation.ShadowDom:return new L(this.eventManager,this.sharedStylesHost,t,e);default:if(!this.rendererByCompId.has(e.id)){const t=k(e.id,e.styles,[]);this.sharedStylesHost.addStyles(t),this.rendererByCompId.set(e.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}class R{constructor(t){this.eventManager=t,this.data=Object.create(null)}destroy(){}createElement(t,e){return e?document.createElementNS(T[e]||e,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,e){t.appendChild(e)}insertBefore(t,e,n){t&&t.insertBefore(e,n)}removeChild(t,e){t&&t.removeChild(e)}selectRootElement(t,e){let n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error(`The selector "${t}" did not match any elements`);return e||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,e,n,a){if(a){e=a+":"+e;const r=T[a];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)}removeAttribute(t,e,n){if(n){const a=T[n];a?t.removeAttributeNS(a,e):t.removeAttribute(`${n}:${e}`)}else t.removeAttribute(e)}addClass(t,e){t.classList.add(e)}removeClass(t,e){t.classList.remove(e)}setStyle(t,e,n,a){a&r.RendererStyleFlags2.DashCase?t.style.setProperty(e,n,a&r.RendererStyleFlags2.Important?"important":""):t.style[e]=n}removeStyle(t,e,n){n&r.RendererStyleFlags2.DashCase?t.style.removeProperty(e):t.style[e]=""}setProperty(t,e,n){E(e,"property"),t[e]=n}setValue(t,e){t.nodeValue=e}listen(t,e,n){return E(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,I(n)):this.eventManager.addEventListener(t,e,I(n))}}const A=(()=>"@".charCodeAt(0))();function E(t,e){if(t.charCodeAt(0)===A)throw new Error(`Found the synthetic ${e} ${t}. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.`)}class D extends R{constructor(t,e,n,a){super(t),this.component=n;const r=k(a+"-"+n.id,n.styles,[]);e.addStyles(r),this.contentAttr="_ngcontent-%COMP%".replace(S,a+"-"+n.id),this.hostAttr=function(t){return"_nghost-%COMP%".replace(S,t)}(a+"-"+n.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,e){const n=super.createElement(t,e);return super.setAttribute(n,this.contentAttr,""),n}}class L extends R{constructor(t,e,n,a){super(t),this.sharedStylesHost=e,this.hostEl=n,this.component=a,this.shadowRoot=a.encapsulation===r.ViewEncapsulation.ShadowDom?n.attachShadow({mode:"open"}):n.createShadowRoot(),this.sharedStylesHost.addHost(this.shadowRoot);const o=k(a.id,a.styles,[]);for(let r=0;r<o.length;r++){const t=document.createElement("style");t.textContent=o[r],this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}appendChild(t,e){return super.appendChild(this.nodeOrShadowRoot(t),e)}insertBefore(t,e,n){return super.insertBefore(this.nodeOrShadowRoot(t),e,n)}removeChild(t,e){return super.removeChild(this.nodeOrShadowRoot(t),e)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}}const q=(()=>"undefined"!=typeof Zone&&Zone.__symbol__||function(t){return"__zone_symbol__"+t})(),j=q("addEventListener"),F=q("removeEventListener"),z={},G="__zone_symbol__propagationStopped",B=(()=>{const t="undefined"!=typeof Zone&&Zone[q("BLACK_LISTED_EVENTS")];if(t){const e={};return t.forEach(t=>{e[t]=t}),e}})(),V=function(t){return!!B&&B.hasOwnProperty(t)},Y=function(t){const e=z[t.type];if(!e)return;const n=this[e];if(!n)return;const a=[t];if(1===n.length){const t=n[0];return t.zone!==Zone.current?t.zone.run(t.handler,this,a):t.handler.apply(this,a)}{const e=n.slice();for(let n=0;n<e.length&&!0!==t[G];n++){const t=e[n];t.zone!==Zone.current?t.zone.run(t.handler,this,a):t.handler.apply(this,a)}}};class H extends M{constructor(t,e,n){super(t),this.ngZone=e,n&&Object(a.isPlatformServer)(n)||this.patchEvent()}patchEvent(){if("undefined"==typeof Event||!Event||!Event.prototype)return;if(Event.prototype.__zone_symbol__stopImmediatePropagation)return;const t=Event.prototype.__zone_symbol__stopImmediatePropagation=Event.prototype.stopImmediatePropagation;Event.prototype.stopImmediatePropagation=function(){this&&(this[G]=!0),t&&t.apply(this,arguments)}}supports(t){return!0}addEventListener(t,e,n){let a=n;if(!t[j]||r.NgZone.isInAngularZone()&&!V(e))t.addEventListener(e,a,!1);else{let n=z[e];n||(n=z[e]=q("ANGULAR"+e+"FALSE"));let r=t[n];const o=r&&r.length>0;r||(r=t[n]=[]);const i=V(e)?Zone.root:Zone.current;if(0===r.length)r.push({zone:i,handler:a});else{let t=!1;for(let e=0;e<r.length;e++)if(r[e].handler===a){t=!0;break}t||r.push({zone:i,handler:a})}o||t[j](e,Y,!1)}return()=>this.removeEventListener(t,e,a)}removeEventListener(t,e,n){let a=t[F];if(!a)return t.removeEventListener.apply(t,[e,n,!1]);let r=z[e],o=r&&t[r];if(!o)return t.removeEventListener.apply(t,[e,n,!1]);let i=!1;for(let s=0;s<o.length;s++)if(o[s].handler===n){i=!0,o.splice(s,1);break}i?0===o.length&&a.apply(t,[e,Y,!1]):t.removeEventListener.apply(t,[e,n,!1])}}const U={pan:!0,panstart:!0,panmove:!0,panend:!0,pancancel:!0,panleft:!0,panright:!0,panup:!0,pandown:!0,pinch:!0,pinchstart:!0,pinchmove:!0,pinchend:!0,pinchcancel:!0,pinchin:!0,pinchout:!0,press:!0,pressup:!0,rotate:!0,rotatestart:!0,rotatemove:!0,rotateend:!0,rotatecancel:!0,swipe:!0,swipeleft:!0,swiperight:!0,swipeup:!0,swipedown:!0,tap:!0},W=new r.InjectionToken("HammerGestureConfig"),K=new r.InjectionToken("HammerLoader");class ${constructor(){this.events=[],this.overrides={}}buildHammer(t){const e=new Hammer(t,this.options);e.get("pinch").set({enable:!0}),e.get("rotate").set({enable:!0});for(const n in this.overrides)e.get(n).set(this.overrides[n]);return e}}class Z extends M{constructor(t,e,n,a){super(t),this._config=e,this.console=n,this.loader=a}supports(t){return!(!U.hasOwnProperty(t.toLowerCase())&&!this.isCustomEvent(t)||!window.Hammer&&!this.loader&&(this.console.warn(`The "${t}" event cannot be bound because Hammer.JS is not `+"loaded and no custom loader has been specified."),1))}addEventListener(t,e,n){const a=this.manager.getZone();if(e=e.toLowerCase(),!window.Hammer&&this.loader){let a=!1,r=()=>{a=!0};return this.loader().then(()=>{if(!window.Hammer)return this.console.warn("The custom HAMMER_LOADER completed, but Hammer.JS is not present."),void(r=()=>{});a||(r=this.addEventListener(t,e,n))}).catch(()=>{this.console.warn(`The "${e}" event cannot be bound because the custom `+"Hammer.JS loader failed."),r=()=>{}}),()=>{r()}}return a.runOutsideAngular(()=>{const r=this._config.buildHammer(t),o=function(t){a.runGuarded((function(){n(t)}))};return r.on(e,o),()=>{r.off(e,o),"function"==typeof r.destroy&&r.destroy()}})}isCustomEvent(t){return this._config.events.indexOf(t)>-1}}const J=["alt","control","meta","shift"],X={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey};class Q extends M{constructor(t){super(t)}supports(t){return null!=Q.parseEventName(t)}addEventListener(t,e,n){const a=Q.parseEventName(e),r=Q.eventCallback(a.fullKey,n,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>i().onAndCancel(t,a.domEventName,r))}static parseEventName(t){const e=t.toLowerCase().split("."),n=e.shift();if(0===e.length||"keydown"!==n&&"keyup"!==n)return null;const a=Q._normalizeKey(e.pop());let r="";if(J.forEach(t=>{const n=e.indexOf(t);n>-1&&(e.splice(n,1),r+=t+".")}),r+=a,0!=e.length||0===a.length)return null;const o={};return o.domEventName=n,o.fullKey=r,o}static getEventFullKey(t){let e="",n=i().getEventKey(t);return n=n.toLowerCase()," "===n?n="space":"."===n&&(n="dot"),J.forEach(a=>{a!=n&&(0,X[a])(t)&&(e+=a+".")}),e+=n,e}static eventCallback(t,e,n){return a=>{Q.getEventFullKey(a)===t&&n.runGuarded(()=>e(a))}}static _normalizeKey(t){switch(t){case"esc":return"escape";default:return t}}}class tt{}class et extends tt{constructor(t){super(),this._doc=t}sanitize(t,e){if(null==e)return null;switch(t){case r.SecurityContext.NONE:return e;case r.SecurityContext.HTML:return e instanceof at?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"HTML"),Object(r["ɵ_sanitizeHtml"])(this._doc,String(e)));case r.SecurityContext.STYLE:return e instanceof rt?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"Style"),Object(r["ɵ_sanitizeStyle"])(e));case r.SecurityContext.SCRIPT:if(e instanceof ot)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"Script"),new Error("unsafe value used in a script context");case r.SecurityContext.URL:return e instanceof st||e instanceof it?e.changingThisBreaksApplicationSecurity:(this.checkNotSafeValue(e,"URL"),Object(r["ɵ_sanitizeUrl"])(String(e)));case r.SecurityContext.RESOURCE_URL:if(e instanceof st)return e.changingThisBreaksApplicationSecurity;throw this.checkNotSafeValue(e,"ResourceURL"),new Error("unsafe value used in a resource URL context (see http://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see http://g.co/ng/security#xss)`)}}checkNotSafeValue(t,e){if(t instanceof nt)throw new Error(`Required a safe ${e}, got a ${t.getTypeName()} `+"(see http://g.co/ng/security#xss)")}bypassSecurityTrustHtml(t){return new at(t)}bypassSecurityTrustStyle(t){return new rt(t)}bypassSecurityTrustScript(t){return new ot(t)}bypassSecurityTrustUrl(t){return new it(t)}bypassSecurityTrustResourceUrl(t){return new st(t)}}class nt{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}`+" (see http://g.co/ng/security#xss)"}}class at extends nt{getTypeName(){return"HTML"}}class rt extends nt{getTypeName(){return"Style"}}class ot extends nt{getTypeName(){return"Script"}}class it extends nt{getTypeName(){return"URL"}}class st extends nt{getTypeName(){return"ResourceURL"}}const ct=[{provide:r.PLATFORM_ID,useValue:a["ɵPLATFORM_BROWSER_ID"]},{provide:r.PLATFORM_INITIALIZER,useValue:function(){u.makeCurrent(),b.init()},multi:!0},{provide:a.PlatformLocation,useClass:class extends a.PlatformLocation{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=i().getLocation(),this._history=i().getHistory()}getBaseHrefFromDOM(){return i().getBaseHref(this._doc)}onPopState(t){i().getGlobalEventTarget(this._doc,"window").addEventListener("popstate",t,!1)}onHashChange(t){i().getGlobalEventTarget(this._doc,"window").addEventListener("hashchange",t,!1)}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(t){this.location.pathname=t}pushState(t,e,n){p()?this._history.pushState(t,e,n):this.location.hash=n}replaceState(t,e,n){p()?this._history.replaceState(t,e,n):this.location.hash=n}forward(){this._history.forward()}back(){this._history.back()}getState(){return this._history.state}},deps:[a.DOCUMENT]},{provide:a.DOCUMENT,useFactory:function(){return document},deps:[]}],lt=Object(r.createPlatformFactory)(r.platformCore,"browser",ct);class dt{constructor(t){if(t)throw new Error("BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.")}static withServerTransition(t){return{ngModule:dt,providers:[{provide:r.APP_ID,useValue:t.appId},{provide:m,useExisting:r.APP_ID},h]}}}"undefined"!=typeof window&&window},cVYH:function(t,e,n){var a=n("hh1v"),r=n("0rvr");t.exports=function(t,e,n){var o,i;return r&&"function"==typeof(o=e.constructor)&&o!==n&&a(i=o.prototype)&&i!==n.prototype&&r(t,i),t}},cp0P:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("HDdC"),r=n("DH7j"),o=n("lJxs"),i=n("XoHu"),s=n("Cfvw");function c(...t){if(1===t.length){const e=t[0];if(Object(r.a)(e))return l(e,null);if(Object(i.a)(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return l(t.map(t=>e[t]),t)}}if("function"==typeof t[t.length-1]){const e=t.pop();return l(t=1===t.length&&Object(r.a)(t[0])?t[0]:t,null).pipe(Object(o.a)(t=>e(...t)))}return l(t,null)}function l(t,e){return new a.a(n=>{const a=t.length;if(0===a)return void n.complete();const r=new Array(a);let o=0,i=0;for(let c=0;c<a;c++){const l=Object(s.a)(t[c]);let d=!1;n.add(l.subscribe({next:t=>{d||(d=!0,i++),r[c]=t},error:t=>n.error(t),complete:()=>{o++,o!==a&&d||(i===a&&n.next(e?e.reduce((t,e,n)=>(t[e]=r[n],t),{}):r),n.complete())}}))}})}},"cq/+":function(t,e,n){var a=n("mc0g")();t.exports=a},crnd:function(t,e){function n(t){return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}))}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id="crnd"},cvCv:function(t,e){t.exports=function(t){return function(){return t}}},czA5:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||global).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||global).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||global).Event},czMo:function(t,e,n){!function(t){"use strict";t.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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})}(n("wd/R"))},"d+Og":function(t,e,n){"use strict";var a=n("LvDl");let r=(()=>{class t{constructor(t){if(this.type=t,!this.isValidType())throw new Error("Wrong placement group category type");this.setTypeStates()}isValidType(){return t.VALID_CATEGORIES.includes(this.type)}setTypeStates(){switch(this.type){case t.CATEGORY_CLEAN:this.states=["active","clean"];break;case t.CATEGORY_WORKING:this.states=["activating","backfill_wait","backfilling","creating","deep","degraded","forced_backfill","forced_recovery","peering","peered","recovering","recovery_wait","repair","scrubbing","snaptrim","snaptrim_wait"];break;case t.CATEGORY_WARNING:this.states=["backfill_toofull","backfill_unfound","down","incomplete","inconsistent","recovery_toofull","recovery_unfound","remapped","snaptrim_error","stale","undersized"];break;default:this.states=[]}}}return t.CATEGORY_CLEAN="clean",t.CATEGORY_WORKING="working",t.CATEGORY_WARNING="warning",t.CATEGORY_UNKNOWN="unknown",t.VALID_CATEGORIES=[t.CATEGORY_CLEAN,t.CATEGORY_WORKING,t.CATEGORY_WARNING,t.CATEGORY_UNKNOWN],t})();var o=n("8Y7J"),i=n("kJI8");n.d(e,"a",(function(){return s}));let s=(()=>{class t{constructor(){this.categories=this.createCategories()}getAllTypes(){return r.VALID_CATEGORIES}getTypeByStates(t){const e=this.getPgStatesFromText(t);if(0===e.length)return r.CATEGORY_UNKNOWN;const n=a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(t=>a.intersection(this.categories[t].states,e).length));if(n[r.CATEGORY_WARNING]>0)return r.CATEGORY_WARNING;const o=n[r.CATEGORY_WORKING];return e.length>n[r.CATEGORY_CLEAN]+o?r.CATEGORY_UNKNOWN:o?r.CATEGORY_WORKING:r.CATEGORY_CLEAN}createCategories(){return a.zipObject(r.VALID_CATEGORIES,r.VALID_CATEGORIES.map(t=>new r(t)))}getPgStatesFromText(t){const e=t.replace(/[^a-z]+/g," ").trim().split(" ");return a.uniq(e)}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:i.a}),t})()},dApe:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("8Y7J"),r=n("2vnA"),o=n("MP8s"),i=n("X+05"),s=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},c=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},l=function(){function t(t){var e=this;this.treeModel=t,this.yBlocks=0,this.x=0,this.viewportHeight=null,this.viewport=null,t.virtualScroll=this,this._dispose=[Object(r.b)((function(){return e.fixScroll()}))]}return Object.defineProperty(t.prototype,"y",{get:function(){return 150*this.yBlocks},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalHeight",{get:function(){return this.treeModel.virtualRoot?this.treeModel.virtualRoot.height:0},enumerable:!0,configurable:!0}),t.prototype.fireEvent=function(t){this.treeModel.fireEvent(t)},t.prototype.init=function(){var t=this,e=this.recalcPositions.bind(this);e(),this._dispose=this._dispose.concat([Object(r.e)((function(){return t.treeModel.roots}),e),Object(r.e)((function(){return t.treeModel.expandedNodeIds}),e),Object(r.e)((function(){return t.treeModel.hiddenNodeIds}),e)]),this.treeModel.subscribe(i.a.loadNodeChildren,e)},t.prototype.isEnabled=function(){return this.treeModel.options.useVirtualScroll},t.prototype._setYBlocks=function(t){this.yBlocks=t},t.prototype.recalcPositions=function(){this.treeModel.virtualRoot.height=this._getPositionAfter(this.treeModel.getVisibleRoots(),0)},t.prototype._getPositionAfter=function(t,e){var n=this,a=e;return t.forEach((function(t){t.position=a,a=n._getPositionAfterNode(t,a)})),a},t.prototype._getPositionAfterNode=function(t,e){var n=t.getSelfHeight()+e;return t.children&&t.isExpanded&&(n=this._getPositionAfter(t.visibleChildren,n)),t.height=n-e,n},t.prototype.clear=function(){this._dispose.forEach((function(t){return t()}))},t.prototype.setViewport=function(t){Object.assign(this,{viewport:t,x:t.scrollLeft,yBlocks:Math.round(t.scrollTop/150),viewportHeight:t.getBoundingClientRect?t.getBoundingClientRect().height:0})},t.prototype.scrollIntoView=function(t,e,n){if(void 0===n&&(n=!0),t.options.scrollContainer){var a=t.options.scrollContainer,r=a.getBoundingClientRect().height,o=a.getBoundingClientRect().top,i=this.viewport.getBoundingClientRect().top+t.position-o;(e||i<a.scrollTop||i+t.getSelfHeight()>a.scrollTop+r)&&(a.scrollTop=n?i-r/2:i)}else(e||t.position<this.y||t.position+t.getSelfHeight()>this.y+this.viewportHeight)&&this.viewport&&(this.viewport.scrollTop=n?t.position-this.viewportHeight/2:t.position,this._setYBlocks(Math.floor(this.viewport.scrollTop/150)))},t.prototype.getViewportNodes=function(t){var e=this;if(!t)return[];var n=t.filter((function(t){return!t.isHidden}));if(!this.isEnabled())return n;if(!this.viewportHeight||!n.length)return[];var a=d(n,(function(t){return t.position+500>e.y||t.position+t.height>e.y})),r=d(n,(function(t){return t.position-500>e.y+e.viewportHeight}),a),o=[];if(r-a>(1e3+this.viewportHeight)/n[0].treeModel.options.options.nodeHeight)return[];for(var i=a;i<=r;i++)o.push(n[i]);return o},t.prototype.fixScroll=function(){var t=Math.max(0,this.totalHeight-this.viewportHeight);this.y<0&&this._setYBlocks(0),this.y>t&&this._setYBlocks(t/150)},s([r.d,c("design:type",Object)],t.prototype,"yBlocks",void 0),s([r.d,c("design:type",Object)],t.prototype,"x",void 0),s([r.d,c("design:type",Object)],t.prototype,"viewportHeight",void 0),s([r.c,c("design:type",Object),c("design:paramtypes",[])],t.prototype,"y",null),s([r.c,c("design:type",Object),c("design:paramtypes",[])],t.prototype,"totalHeight",null),s([r.a,c("design:type",Function),c("design:paramtypes",[Object]),c("design:returntype",void 0)],t.prototype,"_setYBlocks",null),s([r.a,c("design:type",Function),c("design:paramtypes",[]),c("design:returntype",void 0)],t.prototype,"recalcPositions",null),s([r.a,c("design:type",Function),c("design:paramtypes",[Object]),c("design:returntype",void 0)],t.prototype,"setViewport",null),s([r.a,c("design:type",Function),c("design:paramtypes",[Object,Object,Object]),c("design:returntype",void 0)],t.prototype,"scrollIntoView",null),s([Object(a.Injectable)(),c("design:paramtypes",[o.a])],t)}();function d(t,e,n){void 0===n&&(n=0);for(var a=n,r=t.length-1;a!==r;){var o=Math.floor((a+r)/2);e(t[o])?r=o:a=a===o?r:o}return a}},"dBg+":function(t,e){e.f=Object.getOwnPropertySymbols},dD9F:function(t,e,n){var a=n("NykK"),r=n("shjB"),o=n("ExA7"),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,t.exports=function(t){return o(t)&&r(t.length)&&!!i[a(t)]}},dEH0:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{transform(t){return`${t} ms`}}},dNwA:function(t,e,n){!function(t){"use strict";t.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("wd/R"))},dTAl:function(t,e,n){var a=n("GoyQ"),r=Object.create,o=function(){function t(){}return function(e){if(!a(e))return{};if(r)return r(e);t.prototype=e;var n=new t;return t.prototype=void 0,n}}();t.exports=o},dgut:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("NEZu");n("Fgil");class r{constructor(t){this.dimlessBinaryPipe=t,this.style={height:"30px",width:"100px"},this.colors=[{backgroundColor:"rgba(40,140,234,0.2)",borderColor:"rgba(40,140,234,1)",pointBackgroundColor:"rgba(40,140,234,1)",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"rgba(40,140,234,0.8)"}],this.options={animation:{duration:0},responsive:!0,maintainAspectRatio:!1,legend:{display:!1},elements:{line:{borderWidth:1}},tooltips:{enabled:!1,mode:"index",intersect:!1,custom:void 0,callbacks:{label:t=>this.isBinary?this.dimlessBinaryPipe.transform(t.yLabel):t.yLabel,title:()=>""}},scales:{yAxes:[{display:!1}],xAxes:[{display:!1}]}},this.datasets=[{data:[]}],this.labels=[]}ngOnInit(){const t=new a.a(this.chartCanvasRef,this.chartTooltipRef,(t,e)=>e+t.caretX+"px",t=>t.caretY-t.height-t.yPadding-5+"px");t.customColors={backgroundColor:this.colors[0].pointBackgroundColor,borderColor:this.colors[0].pointBorderColor},this.options.tooltips.custom=e=>{t.customTooltips(e)}}ngOnChanges(t){this.datasets[0].data=t.data.currentValue,this.labels=[...Array(t.data.currentValue.length)]}}},dt0z:function(t,e,n){var a=n("zoYe");t.exports=function(t){return null==t?"":a(t)}},"e+ae":function(t,e,n){!function(t){"use strict";var e="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function a(t){return t>1&&t<5}function r(t,e,n,r){var o=t+" ";switch(n){case"s":return e||r?"pár sekúnd":"pár sekundami";case"ss":return e||r?o+(a(t)?"sekundy":"sekúnd"):o+"sekundami";case"m":return e?"minúta":r?"minútu":"minútou";case"mm":return e||r?o+(a(t)?"minúty":"minút"):o+"minútami";case"h":return e?"hodina":r?"hodinu":"hodinou";case"hh":return e||r?o+(a(t)?"hodiny":"hodín"):o+"hodinami";case"d":return e||r?"deň":"dňom";case"dd":return e||r?o+(a(t)?"dni":"dní"):o+"dňami";case"M":return e||r?"mesiac":"mesiacom";case"MM":return e||r?o+(a(t)?"mesiace":"mesiacov"):o+"mesiacmi";case"y":return e||r?"rok":"rokom";case"yy":return e||r?o+(a(t)?"roky":"rokov"):o+"rokmi"}}t.defineLocale("sk",{months:e,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_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ľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},e4Nc:function(t,e,n){var a=n("fGT3"),r=n("k+1r"),o=n("JHgL"),i=n("pSRY"),s=n("H8j4");function c(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}c.prototype.clear=a,c.prototype.delete=r,c.prototype.get=o,c.prototype.has=i,c.prototype.set=s,t.exports=c},e5cp:function(t,e,n){var a=n("fmRc"),r=n("or5M"),o=n("HDyB"),i=n("seXi"),s=n("QqLw"),c=n("Z0cm"),l=n("DSRE"),d=n("c6wG"),u="[object Object]",g=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,f,p,m){var h=c(t),b=c(e),y=h?"[object Array]":s(t),_=b?"[object Array]":s(e),O=(y="[object Arguments]"==y?u:y)==u,v=(_="[object Arguments]"==_?u:_)==u,C=y==_;if(C&&l(t)){if(!l(e))return!1;h=!0,O=!1}if(C&&!O)return m||(m=new a),h||d(t)?r(t,e,n,f,p,m):o(t,e,y,n,f,p,m);if(!(1&n)){var P=O&&g.call(t,"__wrapped__"),M=v&&g.call(e,"__wrapped__");if(P||M){var x=P?t.value():t,w=M?e.value():e;return m||(m=new a),p(x,w,n,f,m)}}return!!C&&(m||(m=new a),i(t,e,n,f,p,m))}},"eDl+":function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},eIep:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("l7GE"),r=n("51Dv"),o=n("ZUHj"),i=n("lJxs"),s=n("Cfvw");function c(t,e){return"function"==typeof e?n=>n.pipe(c((n,a)=>Object(s.a)(t(n,a)).pipe(Object(i.a)((t,r)=>e(n,t,a,r))))):e=>e.lift(new l(t))}class l{constructor(t){this.project=t}call(t,e){return e.subscribe(new d(t,this.project))}}class d extends a.a{constructor(t,e){super(t),this.project=e,this.index=0}_next(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this._innerSub(e,t,n)}_innerSub(t,e,n){const a=this.innerSubscription;a&&a.unsubscribe();const i=new r.a(this,e,n),s=this.destination;s.add(i),this.innerSubscription=Object(o.a)(this,t,void 0,void 0,i),this.innerSubscription!==i&&s.add(this.innerSubscription)}_complete(){const{innerSubscription:t}=this;t&&!t.closed||super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=null}notifyComplete(t){this.destination.remove(t),this.innerSubscription=null,this.isStopped&&super._complete()}notifyNext(t,e,n,a,r){this.destination.next(e)}}},eNwd:function(t,e,n){"use strict";var a=n("3N8a");class r extends a.a{constructor(t,e){super(t,e),this.scheduler=t,this.work=e}requestAsyncId(t,e,n=0){return null!==n&&n>0?super.requestAsyncId(t,e,n):(t.actions.push(this),t.scheduled||(t.scheduled=requestAnimationFrame(()=>t.flush(null))))}recycleAsyncId(t,e,n=0){if(null!==n&&n>0||null===n&&this.delay>0)return super.recycleAsyncId(t,e,n);0===t.actions.length&&(cancelAnimationFrame(e),t.scheduled=void 0)}}var o=n("IjjT");class i extends o.a{flush(t){this.active=!0,this.scheduled=void 0;const{actions:e}=this;let n,a=-1,r=e.length;t=t||e.shift();do{if(n=t.execute(t.state,t.delay))break}while(++a<r&&(t=e.shift()));if(this.active=!1,n){for(;++a<r&&(t=e.shift());)t.unsubscribe();throw n}}}n.d(e,"a",(function(){return s}));const s=new i(r)},eTJe:function(t,e,n){"use strict";var a=n("s7LF"),r=n("LvDl"),o=n("cp0P"),i=(n("SgmB"),n("ZDA6"),n("sne2"),n("mtw6")),s=n("QFaf"),c=n("1Ni5"),l=(n("9nlD"),function(t){return t.editing="editing",t}({}));class d{}n.d(e,"a",(function(){return u}));class u{constructor(t,e,n,a,r,o,i){this.route=t,this.router=e,this.roleService=n,this.scopeService=a,this.notificationService=r,this.i18n=o,this.actionLabels=i,this.scopes=[],this.scopes_permissions=[],this.roleFormMode=l,this.resource=this.i18n("role"),this.createForm(),this.listenToChanges()}createForm(){this.roleForm=new s.a({name:new a.i("",{validators:[a.B.required],asyncValidators:[c.a.unique(this.roleService.exists,this.roleService)]}),description:new a.i(""),scopes_permissions:new a.i({})})}ngOnInit(){this.columns=[{prop:"scope",name:this.i18n("All"),flexGrow:2,cellTemplate:this.cellScopeCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"read",name:this.i18n("Read"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"create",name:this.i18n("Create"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"update",name:this.i18n("Update"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl},{prop:"delete",name:this.i18n("Delete"),flexGrow:1,cellClass:"text-center",cellTemplate:this.cellPermissionCheckboxTpl,headerTemplate:this.headerPermissionCheckboxTpl}],this.router.url.startsWith("/user-management/roles/edit")?(this.mode=this.roleFormMode.editing,this.action=this.actionLabels.EDIT):this.action=this.actionLabels.CREATE,this.mode===this.roleFormMode.editing?this.initEdit():this.initCreate()}initCreate(){this.scopeService.list().subscribe(t=>{this.scopes=t,this.roleForm.get("scopes_permissions").setValue({})})}initEdit(){this.roleForm.get("name").disable(),this.route.params.subscribe(t=>{const e=[];e.push(this.scopeService.list()),e.push(this.roleService.get(t.name)),Object(o.a)(e).subscribe(t=>{this.scopes=t[0],["name","description","scopes_permissions"].forEach(e=>this.roleForm.get(e).setValue(t[1][e]))})})}listenToChanges(){this.roleForm.get("scopes_permissions").valueChanges.subscribe(t=>{const e=[];r.each(this.scopes,n=>{const a={read:!1,create:!1,update:!1,delete:!1};a.scope=n,n in t&&r.each(t[n],t=>{a[t]=!0}),e.push(a)}),this.scopes_permissions=e})}isRowChecked(t){const e=r.find(this.scopes_permissions,e=>e.scope===t);return!r.isUndefined(e)&&e.read&&e.create&&e.update&&e.delete}isHeaderChecked(t){let e=[t];return"scope"===t&&(e=["read","create","update","delete"]),e.every(t=>this.scopes_permissions.every(e=>e[t]))}onClickCellCheckbox(t,e,n=null){const a=r.cloneDeep(this.roleForm.getValue("scopes_permissions"));let o=[e];"scope"===e&&(o=["read","create","update","delete"]),t in a||(a[t]=[]),n&&n.target.checked||!r.isEqual(o.sort(),r.intersection(a[t],o).sort())?a[t]=r.union(a[t],o):(a[t]=r.difference(a[t],o),r.isEmpty(a[t])&&r.unset(a,t)),this.roleForm.get("scopes_permissions").setValue(a)}onClickHeaderCheckbox(t,e){const n=r.cloneDeep(this.roleForm.getValue("scopes_permissions"));let a=[t];"scope"===t&&(a=["read","create","update","delete"]),r.each(a,t=>{r.each(this.scopes,a=>{e.target.checked?n[a]=r.union(n[a],[t]):(n[a]=r.difference(n[a],[t]),r.isEmpty(n[a])&&r.unset(n,a))})}),this.roleForm.get("scopes_permissions").setValue(n)}getRequest(){const t=new d;return["name","description","scopes_permissions"].forEach(e=>t[e]=this.roleForm.get(e).value),t}createAction(){const t=this.getRequest();this.roleService.create(t).subscribe(()=>{this.notificationService.show(i.a.success,this.i18n("Created role '{{role_name}}'",{role_name:t.name})),this.router.navigate(["/user-management/roles"])},()=>{this.roleForm.setErrors({cdSubmitButton:!0})})}editAction(){const t=this.getRequest();this.roleService.update(t).subscribe(()=>{this.notificationService.show(i.a.success,this.i18n("Updated role '{{role_name}}'",{role_name:t.name})),this.router.navigate(["/user-management/roles"])},()=>{this.roleForm.setErrors({cdSubmitButton:!0})})}submit(){this.mode===this.roleFormMode.editing?this.editAction():this.createAction()}}},eUgh:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length,r=Array(a);++n<a;)r[n]=e(t[n],n,t);return r}},ebwN:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Map");t.exports=a},efK2:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e,n){return a.isString(t)?(n=a.defaultTo(n,""),a.truncate(t,{length:e,omission:n})):t}}},"ej+x":function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("lOp/"),r=n("8Y7J"),o=n("IheW");let i=(()=>{class t{constructor(t,e){this.http=t,this.timerService=e,this.API_URL="api/feature_toggles",this.REFRESH_INTERVAL=3e4,this.featureToggleMap$=this.timerService.get(()=>this.http.get(this.API_URL),this.REFRESH_INTERVAL)}get(){return this.featureToggleMap$}}return t.ngInjectableDef=r["ɵɵdefineInjectable"]({factory:function(){return new t(r["ɵɵinject"](o.c),r["ɵɵinject"](a.a))},token:t,providedIn:"root"}),t})()},ejVf:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ColumnMode=function(t){return t.standard="standard",t.flex="flex",t.force="force",t}(e.ColumnMode||{})},ekgI:function(t,e,n){var a=n("YESw"),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;return a?void 0!==e[t]:r.call(e,t)}},ewvW:function(t,e,n){var a=n("HYAF");t.exports=function(t){return Object(a(t))}},f29J:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("GyhO");function r(...t){return e=>e.lift.call(Object(a.a)(e,...t))}},f5p1:function(t,e,n){var a=n("2oRo"),r=n("iSVu"),o=a.WeakMap;t.exports="function"==typeof o&&/native code/.test(r(o))},f95s:function(t,e,n){"use strict";n.d(e,"a",(function(){return m}));var a=n("2vnA"),r=n("X+05"),o=n("afOK"),i=n.n(o),s=n("RBan"),c=n.n(s),l=n("MJIl"),d=n.n(l),u=n("Jlc5"),g=n.n(u),f=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},p=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},m=function(){function t(t,e,n,a){var r=this;this.data=t,this.parent=e,this.treeModel=n,this.position=0,this.allowDrop=function(t,e){return r.options.allowDrop(t,{parent:r,index:0},e)},this.allowDragoverStyling=function(){return r.options.allowDragoverStyling},null==this.id&&(this.id=Math.floor(1e13*Math.random())),this.index=a,this.getField("children")&&this._initChildren(),this.autoLoadChildren()}return Object.defineProperty(t.prototype,"isHidden",{get:function(){return this.treeModel.isHidden(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isExpanded",{get:function(){return this.treeModel.isExpanded(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isActive",{get:function(){return this.treeModel.isActive(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFocused",{get:function(){return this.treeModel.isNodeFocused(this)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this.isSelectable()?this.treeModel.isSelected(this):d()(this.children,(function(t){return t.isSelected}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isAllSelected",{get:function(){return this.isSelectable()?this.treeModel.isSelected(this):g()(this.children,(function(t){return t.isAllSelected}))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isPartiallySelected",{get:function(){return this.isSelected&&!this.isAllSelected},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"level",{get:function(){return this.parent?this.parent.level+1:0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"path",{get:function(){return this.parent?this.parent.path.concat([this.id]):[]},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"elementRef",{get:function(){throw"Element Ref is no longer supported since introducing virtual scroll\n\n      You may use a template to obtain a reference to the element"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"originalNode",{get:function(){return this._originalNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"hasChildren",{get:function(){return!!(this.getField("hasChildren")||this.children&&this.children.length>0)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCollapsed",{get:function(){return!this.isExpanded},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLeaf",{get:function(){return!this.hasChildren},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isRoot",{get:function(){return this.parent.data.virtual},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"realParent",{get:function(){return this.isRoot?null:this.parent},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{get:function(){return this.treeModel.options},enumerable:!0,configurable:!0}),t.prototype.fireEvent=function(t){this.treeModel.fireEvent(t)},Object.defineProperty(t.prototype,"displayField",{get:function(){return this.getField("display")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"id",{get:function(){return this.getField("id")},set:function(t){this.setField("id",t)},enumerable:!0,configurable:!0}),t.prototype.getField=function(t){return this.data[this.options[t+"Field"]]},t.prototype.setField=function(t,e){this.data[this.options[t+"Field"]]=e},t.prototype._findAdjacentSibling=function(t,e){void 0===e&&(e=!1);var n=this._getParentsChildren(e),a=n.indexOf(this);return n.length>a+t?n[a+t]:null},t.prototype.findNextSibling=function(t){return void 0===t&&(t=!1),this._findAdjacentSibling(1,t)},t.prototype.findPreviousSibling=function(t){return void 0===t&&(t=!1),this._findAdjacentSibling(-1,t)},t.prototype.getVisibleChildren=function(){return this.visibleChildren},Object.defineProperty(t.prototype,"visibleChildren",{get:function(){return(this.children||[]).filter((function(t){return!t.isHidden}))},enumerable:!0,configurable:!0}),t.prototype.getFirstChild=function(t){void 0===t&&(t=!1);var e=t?this.visibleChildren:this.children;return i()(e||[])},t.prototype.getLastChild=function(t){void 0===t&&(t=!1);var e=t?this.visibleChildren:this.children;return c()(e||[])},t.prototype.findNextNode=function(t,e){return void 0===t&&(t=!0),void 0===e&&(e=!1),t&&this.isExpanded&&this.getFirstChild(e)||this.findNextSibling(e)||this.parent&&this.parent.findNextNode(!1,e)},t.prototype.findPreviousNode=function(t){void 0===t&&(t=!1);var e=this.findPreviousSibling(t);return e?e._getLastOpenDescendant(t):this.realParent},t.prototype._getLastOpenDescendant=function(t){void 0===t&&(t=!1);var e=this.getLastChild(t);return this.isCollapsed||!e?this:e._getLastOpenDescendant(t)},t.prototype._getParentsChildren=function(t){return void 0===t&&(t=!1),this.parent&&(t?this.parent.getVisibleChildren():this.parent.children)||[]},t.prototype.getIndexInParent=function(t){return void 0===t&&(t=!1),this._getParentsChildren(t).indexOf(this)},t.prototype.isDescendantOf=function(t){return this===t||this.parent&&this.parent.isDescendantOf(t)},t.prototype.getNodePadding=function(){return this.options.levelPadding*(this.level-1)+"px"},t.prototype.getClass=function(){return[this.options.nodeClass(this),"tree-node-level-"+this.level].join(" ")},t.prototype.onDrop=function(t){this.mouseAction("drop",t.event,{from:t.element,to:{parent:this,index:0,dropOnNode:!0}})},t.prototype.allowDrag=function(){return this.options.allowDrag(this)},t.prototype.loadNodeChildren=function(){var t=this;return this.options.getChildren?Promise.resolve(this.options.getChildren(this)).then((function(e){e&&(t.setField("children",e),t._initChildren(),t.options.useTriState&&t.treeModel.isSelected(t)&&t.setIsSelected(!0),t.children.forEach((function(t){t.getField("isExpanded")&&t.hasChildren&&t.expand()})))})).then((function(){t.fireEvent({eventName:r.a.loadNodeChildren,node:t})})):Promise.resolve()},t.prototype.expand=function(){return this.isExpanded||this.toggleExpanded(),this},t.prototype.collapse=function(){return this.isExpanded&&this.toggleExpanded(),this},t.prototype.doForAll=function(t){var e=this;Promise.resolve(t(this)).then((function(){e.children&&e.children.forEach((function(e){return e.doForAll(t)}))}))},t.prototype.expandAll=function(){this.doForAll((function(t){return t.expand()}))},t.prototype.collapseAll=function(){this.doForAll((function(t){return t.collapse()}))},t.prototype.ensureVisible=function(){return this.realParent&&(this.realParent.expand(),this.realParent.ensureVisible()),this},t.prototype.toggleExpanded=function(){return this.setIsExpanded(!this.isExpanded),this},t.prototype.setIsExpanded=function(t){return this.hasChildren&&this.treeModel.setExpandedNode(this,t),this},t.prototype.autoLoadChildren=function(){var t=this;this.handler=Object(a.e)((function(){return t.isExpanded}),(function(e){!t.children&&t.hasChildren&&e&&t.loadNodeChildren()}),{fireImmediately:!0})},t.prototype.dispose=function(){this.children&&this.children.forEach((function(t){return t.dispose()})),this.handler&&this.handler(),this.parent=null,this.children=null},t.prototype.setIsActive=function(t,e){return void 0===e&&(e=!1),this.treeModel.setActiveNode(this,t,e),t&&this.focus(this.options.scrollOnActivate),this},t.prototype.isSelectable=function(){return this.isLeaf||!this.children||!this.options.useTriState},t.prototype.setIsSelected=function(t){return this.isSelectable()?this.treeModel.setSelectedNode(this,t):this.visibleChildren.forEach((function(e){return e.setIsSelected(t)})),this},t.prototype.toggleSelected=function(){return this.setIsSelected(!this.isSelected),this},t.prototype.toggleActivated=function(t){return void 0===t&&(t=!1),this.setIsActive(!this.isActive,t),this},t.prototype.setActiveAndVisible=function(t){return void 0===t&&(t=!1),this.setIsActive(!0,t).ensureVisible(),setTimeout(this.scrollIntoView.bind(this)),this},t.prototype.scrollIntoView=function(t){void 0===t&&(t=!1),this.treeModel.virtualScroll.scrollIntoView(this,t)},t.prototype.focus=function(t){void 0===t&&(t=!0);var e=this.treeModel.getFocusedNode();return this.treeModel.setFocusedNode(this),t&&this.scrollIntoView(),e&&this.fireEvent({eventName:r.a.blur,node:e}),this.fireEvent({eventName:r.a.focus,node:this}),this},t.prototype.blur=function(){var t=this.treeModel.getFocusedNode();return this.treeModel.setFocusedNode(null),t&&this.fireEvent({eventName:r.a.blur,node:this}),this},t.prototype.setIsHidden=function(t){this.treeModel.setIsHidden(this,t)},t.prototype.hide=function(){this.setIsHidden(!0)},t.prototype.show=function(){this.setIsHidden(!1)},t.prototype.mouseAction=function(t,e,n){void 0===n&&(n=null),this.treeModel.setFocus(!0);var a=this.options.actionMapping.mouse[t];a&&a(this.treeModel,this,e,n)},t.prototype.getSelfHeight=function(){return this.options.nodeHeight(this)},t.prototype._initChildren=function(){var e=this;this.children=this.getField("children").map((function(n,a){return new t(n,e,e.treeModel,a)}))},f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isHidden",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isExpanded",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isActive",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isFocused",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isSelected",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isAllSelected",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"isPartiallySelected",null),f([a.d,p("design:type",Array)],t.prototype,"children",void 0),f([a.d,p("design:type",Number)],t.prototype,"index",void 0),f([a.d,p("design:type",Object)],t.prototype,"position",void 0),f([a.d,p("design:type",Number)],t.prototype,"height",void 0),f([a.c,p("design:type",Number),p("design:paramtypes",[])],t.prototype,"level",null),f([a.c,p("design:type",Array),p("design:paramtypes",[])],t.prototype,"path",null),f([a.c,p("design:type",Object),p("design:paramtypes",[])],t.prototype,"visibleChildren",null),f([a.a,p("design:type",Function),p("design:paramtypes",[Object]),p("design:returntype",void 0)],t.prototype,"setIsSelected",null),f([a.a,p("design:type",Function),p("design:paramtypes",[]),p("design:returntype",void 0)],t.prototype,"_initChildren",null),t}()},fGT3:function(t,e,n){var a=n("4kuk"),r=n("Xi7e"),o=n("ebwN");t.exports=function(){this.size=0,this.__data__={hash:new a,map:new(o||r),string:new a}}},fHMY:function(t,e,n){var a,r=n("glrk"),o=n("N+g0"),i=n("eDl+"),s=n("0BK2"),c=n("G+Rx"),l=n("zBJ4"),d=n("93I0")("IE_PROTO"),u=function(){},g=function(t){return"<script>"+t+"<\/script>"},f=function(){try{a=document.domain&&new ActiveXObject("htmlfile")}catch(r){}var t,e;f=a?function(t){t.write(g("")),t.close();var e=t.parentWindow.Object;return t=null,e}(a):((e=l("iframe")).style.display="none",c.appendChild(e),e.src=String("javascript:"),(t=e.contentWindow.document).open(),t.write(g("document.F=Object")),t.close(),t.F);for(var n=i.length;n--;)delete f.prototype[i[n]];return f()};s[d]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(u.prototype=r(t),n=new u,u.prototype=null,n[d]=t):n=f(),void 0===e?n:o(n,e)}},"fR/l":function(t,e,n){var a=n("CH3K"),r=n("Z0cm");t.exports=function(t,e,n){var o=e(t);return r(t)?o:a(o,n(t))}},fdAy:function(t,e,n){"use strict";var a=n("I+eb"),r=n("ntOU"),o=n("4WOD"),i=n("0rvr"),s=n("1E5z"),c=n("kRJp"),l=n("busE"),d=n("tiKp"),u=n("xDBR"),g=n("P4y1"),f=n("rpNk"),p=f.IteratorPrototype,m=f.BUGGY_SAFARI_ITERATORS,h=d("iterator"),b=function(){return this};t.exports=function(t,e,n,d,f,y,_){r(n,e,d);var O,v,C,P=function(t){if(t===f&&S)return S;if(!m&&t in w)return w[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},M=e+" Iterator",x=!1,w=t.prototype,T=w[h]||w["@@iterator"]||f&&w[f],S=!m&&T||P(f),k="Array"==e&&w.entries||T;if(k&&(O=o(k.call(new t)),p!==Object.prototype&&O.next&&(u||o(O)===p||(i?i(O,p):"function"!=typeof O[h]&&c(O,h,b)),s(O,M,!0,!0),u&&(g[M]=b))),"values"==f&&T&&"values"!==T.name&&(x=!0,S=function(){return T.call(this)}),u&&!_||w[h]===S||c(w,h,S),g[e]=S,f)if(v={values:P("values"),keys:y?S:P("keys"),entries:P("entries")},_)for(C in v)!m&&!x&&C in w||l(w,C,v[C]);else a({target:e,proto:!0,forced:m||x},v);return v}},fhFe:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J");e.DataTablePagerComponent=function(){function t(){this.change=new o.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"page",{get:function(){return this._page},set:function(t){this._page=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalPages",{get:function(){var t=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(t||0,1)},enumerable:!0,configurable:!0}),t.prototype.canPrevious=function(){return this.page>1},t.prototype.canNext=function(){return this.page<this.totalPages},t.prototype.prevPage=function(){this.selectPage(this.page-1)},t.prototype.nextPage=function(){this.selectPage(this.page+1)},t.prototype.selectPage=function(t){t>0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5<this.totalPages&&(n=t-Math.floor(2.5),a=t+Math.floor(2.5),n<1?(n=1,a=Math.min(n+5-1,this.totalPages)):a>this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"change",void 0),a([o.Component({selector:"datatable-pager",template:'\n    <ul class="pager">\n      <li [class.disabled]="!canPrevious()">\n        <a\n          role="button"\n          aria-label="go to first page"\n          href="javascript:void(0)"\n          (click)="selectPage(1)">\n          <i class="{{pagerPreviousIcon}}"></i>\n        </a>\n      </li>\n      <li [class.disabled]="!canPrevious()">\n        <a\n          role="button"\n          aria-label="go to previous page"\n          href="javascript:void(0)"\n          (click)="prevPage()">\n          <i class="{{pagerLeftArrowIcon}}"></i>\n        </a>\n      </li>\n      <li\n        role="button"\n        [attr.aria-label]="\'page \' + pg.number"\n        class="pages"\n        *ngFor="let pg of pages"\n        [class.active]="pg.number === page">\n        <a\n          href="javascript:void(0)"\n          (click)="selectPage(pg.number)">\n          {{pg.text}}\n        </a>\n      </li>\n      <li [class.disabled]="!canNext()">\n        <a\n          role="button"\n          aria-label="go to next page"\n          href="javascript:void(0)"\n          (click)="nextPage()">\n          <i class="{{pagerRightArrowIcon}}"></i>\n        </a>\n      </li>\n      <li [class.disabled]="!canNext()">\n        <a\n          role="button"\n          aria-label="go to last page"\n          href="javascript:void(0)"\n          (click)="selectPage(totalPages)">\n          <i class="{{pagerNextIcon}}"></i>\n        </a>\n      </li>\n    </ul>\n  ',host:{class:"datatable-pager"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},fktO:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("Ahxa")),a(n("fhFe")),a(n("lUjN")),a(n("vxfy"))},fmRc:function(t,e,n){var a=n("Xi7e"),r=n("77Zs"),o=n("L8xA"),i=n("gCq4"),s=n("VaNO"),c=n("0Cz8");function l(t){var e=this.__data__=new a(t);this.size=e.size}l.prototype.clear=r,l.prototype.delete=o,l.prototype.get=i,l.prototype.has=s,l.prototype.set=c,t.exports=l},ftKO:function(t,e){t.exports=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this}},fxL3:function(t,e,n){"use strict";n.d(e,"a",(function(){return p}));var a=n("8Y7J"),r=n("MP8s"),o=n("gk6K"),i=n("mfoh"),s=n("HIU9"),c=n("ijCd"),l=n.n(c),d=n("JZM8"),u=n.n(d),g=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},f=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},p=function(){function t(t,e){var n=this;this.treeModel=t,this.treeDraggedElement=e,t.eventNames.forEach((function(t){return n[t]=new a.EventEmitter})),t.subscribeToState((function(t){return n.stateChange.emit(t)}))}return Object.defineProperty(t.prototype,"nodes",{set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"options",{set:function(t){},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"focused",{set:function(t){this.treeModel.setFocus(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{set:function(t){this.treeModel.setState(t)},enumerable:!0,configurable:!0}),t.prototype.onKeydown=function(t){if(this.treeModel.isFocused&&!l()(["input","textarea"],document.activeElement.tagName.toLowerCase())){var e=this.treeModel.getFocusedNode();this.treeModel.performKeyAction(e,t)}},t.prototype.onMousedown=function(t){(function t(e,n){return!e||e.localName!==n&&t(e.parentElement,n)})(t.target,"tree-root")&&this.treeModel.setFocus(!1)},t.prototype.ngOnChanges=function(t){(t.options||t.nodes)&&this.treeModel.setData({options:t.options&&t.options.currentValue,nodes:t.nodes&&t.nodes.currentValue,events:u()(this,this.treeModel.eventNames)})},t.prototype.sizeChanged=function(){this.viewportComponent.setViewport()},g([Object(a.ContentChild)("loadingTemplate",{static:!1}),f("design:type",a.TemplateRef)],t.prototype,"loadingTemplate",void 0),g([Object(a.ContentChild)("treeNodeTemplate",{static:!1}),f("design:type",a.TemplateRef)],t.prototype,"treeNodeTemplate",void 0),g([Object(a.ContentChild)("treeNodeWrapperTemplate",{static:!1}),f("design:type",a.TemplateRef)],t.prototype,"treeNodeWrapperTemplate",void 0),g([Object(a.ContentChild)("treeNodeFullTemplate",{static:!1}),f("design:type",a.TemplateRef)],t.prototype,"treeNodeFullTemplate",void 0),g([Object(a.ViewChild)("viewport",{static:!1}),f("design:type",s.a)],t.prototype,"viewportComponent",void 0),g([Object(a.Input)(),f("design:type",Array),f("design:paramtypes",[Array])],t.prototype,"nodes",null),g([Object(a.Input)(),f("design:type",i.b),f("design:paramtypes",[i.b])],t.prototype,"options",null),g([Object(a.Input)(),f("design:type",Boolean),f("design:paramtypes",[Boolean])],t.prototype,"focused",null),g([Object(a.Input)(),f("design:type",Object),f("design:paramtypes",[Object])],t.prototype,"state",null),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"toggleExpanded",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"activate",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"deactivate",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"nodeActivate",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"nodeDeactivate",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"select",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"deselect",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"focus",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"blur",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"updateData",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"initialized",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"moveNode",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"copyNode",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"loadNodeChildren",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"changeFilter",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"event",void 0),g([Object(a.Output)(),f("design:type",Object)],t.prototype,"stateChange",void 0),g([Object(a.HostListener)("body: keydown",["$event"]),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",void 0)],t.prototype,"onKeydown",null),g([Object(a.HostListener)("body: mousedown",["$event"]),f("design:type",Function),f("design:paramtypes",[Object]),f("design:returntype",void 0)],t.prototype,"onMousedown",null),g([Object(a.Component)({selector:"Tree, tree-root",providers:[r.a],styles:[],template:'\n      <tree-viewport #viewport>\n          <div\n                  class="angular-tree-component"\n                  [class.node-dragging]="treeDraggedElement.isDragging()"\n                  [class.angular-tree-component-rtl]="treeModel.options.rtl">\n              <tree-node-collection\n                      *ngIf="treeModel.roots"\n                      [nodes]="treeModel.roots"\n                      [treeModel]="treeModel"\n                      [templates]="{\n            loadingTemplate: loadingTemplate,\n            treeNodeTemplate: treeNodeTemplate,\n            treeNodeWrapperTemplate: treeNodeWrapperTemplate,\n            treeNodeFullTemplate: treeNodeFullTemplate\n          }">\n              </tree-node-collection>\n              <tree-node-drop-slot\n                      class="empty-tree-drop-slot"\n                      *ngIf="treeModel.isEmptyTree()"\n                      [dropIndex]="0"\n                      [node]="treeModel.virtualRoot">\n              </tree-node-drop-slot>\n          </div>\n      </tree-viewport>\n  '}),f("design:paramtypes",[r.a,o.a])],t)}()},fzPg:function(t,e,n){!function(t){"use strict";t.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".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:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n("wd/R"))},"g6v/":function(t,e,n){var a=n("0Dky");t.exports=!a((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},gCq4:function(t,e){t.exports=function(t){return this.__data__.get(t)}},gFfm:function(t,e){t.exports=function(t,e){for(var n=-1,a=null==t?0:t.length;++n<a&&!1!==e(t[n],n,t););return t}},gRHU:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("2fFW"),r=n("NJ4a");const o={closed:!0,next(t){},error(t){if(a.a.useDeprecatedSynchronousErrorHandling)throw t;Object(r.a)(t)},complete(){}}},gVVK:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r=t+" ";switch(n){case"s":return e||a?"nekaj sekund":"nekaj sekundami";case"ss":return r+(1===t?e?"sekundo":"sekundi":2===t?e||a?"sekundi":"sekundah":t<5?e||a?"sekunde":"sekundah":"sekund");case"m":return e?"ena minuta":"eno minuto";case"mm":return r+(1===t?e?"minuta":"minuto":2===t?e||a?"minuti":"minutama":t<5?e||a?"minute":"minutami":e||a?"minut":"minutami");case"h":return e?"ena ura":"eno uro";case"hh":return r+(1===t?e?"ura":"uro":2===t?e||a?"uri":"urama":t<5?e||a?"ure":"urami":e||a?"ur":"urami");case"d":return e||a?"en dan":"enim dnem";case"dd":return r+(1===t?e||a?"dan":"dnem":2===t?e||a?"dni":"dnevoma":e||a?"dni":"dnevi");case"M":return e||a?"en mesec":"enim mesecem";case"MM":return r+(1===t?e||a?"mesec":"mesecem":2===t?e||a?"meseca":"mesecema":t<5?e||a?"mesece":"meseci":e||a?"mesecev":"meseci");case"y":return e||a?"eno leto":"enim letom";case"yy":return r+(1===t?e||a?"leto":"letom":2===t?e||a?"leti":"letoma":t<5?e||a?"leta":"leti":e||a?"let":"leti")}}t.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_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_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čeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))},gekB:function(t,e,n){!function(t){"use strict";var e="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",e[7],e[8],e[9]];function a(t,a,r,o){var i="";switch(r){case"s":return o?"muutaman sekunnin":"muutama sekunti";case"ss":return o?"sekunnin":"sekuntia";case"m":return o?"minuutin":"minuutti";case"mm":i=o?"minuutin":"minuuttia";break;case"h":return o?"tunnin":"tunti";case"hh":i=o?"tunnin":"tuntia";break;case"d":return o?"päivän":"päivä";case"dd":i=o?"päivän":"päivää";break;case"M":return o?"kuukauden":"kuukausi";case"MM":i=o?"kuukauden":"kuukautta";break;case"y":return o?"vuoden":"vuosi";case"yy":i=o?"vuoden":"vuotta"}return function(t,a){return t<10?a?n[t]:e[t]:t}(t,o)+" "+i}t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_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änään] [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äästä",past:"%s sitten",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},gjCT:function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};t.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n("wd/R"))},gk6K:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("8Y7J"),r=function(){function t(){this._draggedElement=null}return t.prototype.set=function(t){this._draggedElement=t},t.prototype.get=function(){return this._draggedElement},t.prototype.isDragging=function(){return!!this.get()},function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i}([Object(a.Injectable)()],t)}()},glrk:function(t,e,n){var a=n("hh1v");t.exports=function(t){if(!a(t))throw TypeError(String(t)+" is not an object");return t}},gp3X:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse");n("sb0X"),n.d(e,"a",(function(){return o})),n.d(e,"b",(function(){return s}));var o=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function i(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,3,"i",[],null,null,null,null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](3,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](4,2)],(function(t,e){var n=e.component,a=t(e,4,0,n.icons.spinner,n.icons.spin);t(e,3,0,a)}),null)}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,5,"button",[["class","btn btn-secondary tc_submitButton"]],[[8,"type",0],[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.submit(n)&&a),a}),null,null)),a["ɵprd"](512,null,r["ɵNgClassImpl"],r["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,r.NgClass,[r["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),a["ɵncd"](null,0),(t()(),a["ɵand"](16777216,null,null,1,null,i)),a["ɵdid"](5,16384,null,0,r.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,"btn btn-secondary tc_submitButton",n.btnClass),t(e,5,0,n.loading)}),(function(t,e){var n=e.component;t(e,0,0,n.type,n.loading||n.disabled)}))}},gpbi:function(t,e,n){var a=n("ZWtO"),r=n("KxBF");t.exports=function(t,e){return e.length<2?t:a(t,r(e,0,-1))}},"h+PQ":function(t,e,n){"use strict";function a(){return""}function r(t,e){if(null==t)return"";if(!t||null==e)return t;var n=t[e];return null==n?"":n}function o(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];return null==n?"":n}function i(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];if(void 0!==n)return n;n=t;var a=e.split(".");if(a.length)for(var r=0;r<a.length;r++)if(null==(n=n[a[r]]))return"";return n}Object.defineProperty(e,"__esModule",{value:!0}),e.emptyStringGetter=a,e.getterForProp=function(t){return null==t?a:"number"==typeof t?r:-1!==t.indexOf(".")?i:o},e.numericIndexGetter=r,e.shallowValueGetter=o,e.deepValueGetter=i},h6KF:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("qwkt"),r=n("h+PQ");function o(t,e){if(null==t&&(t=0),null==e&&(e=0),t instanceof Date&&e instanceof Date){if(t<e)return-1;if(t>e)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()<e.toLowerCase())return-1;if(t.toLowerCase()>e.toLowerCase())return 1}else{if(parseFloat(t)<parseFloat(e))return-1;if(parseFloat(t)>parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=o,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var i=new Map;t.forEach((function(t,e){return i.set(t,e)}));var s=t.slice(),c=e.reduce((function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t}),{}),l=n.map((function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:c[e]||o}}));return s.sort((function(t,e){for(var n=0,r=l;n<r.length;n++){var o=r[n],s=o.prop,c=o.valueGetter,d=c(t,s),u=c(e,s),g=o.dir!==a.SortDirection.desc?o.compareFn(d,u,t,e,o.dir):-o.compareFn(d,u,t,e,o.dir);if(0!==g)return g}return i.has(t)&&i.has(e)?i.get(t)<i.get(e)?-1:1:0}))}},"hKI/":function(t,e){var n=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,s="object"==typeof global&&global&&global.Object===Object&&global,c="object"==typeof self&&self&&self.Object===Object&&self,l=s||c||Function("return this")(),d=Object.prototype.toString,u=Math.max,g=Math.min,f=function(){return l.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function m(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==d.call(t)}(t))return NaN;if(p(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=p(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var s=r.test(t);return s||o.test(t)?i(t.slice(2),s?2:8):a.test(t)?NaN:+t}t.exports=function(t,e,n){var a=!0,r=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return p(n)&&(a="leading"in n?!!n.leading:a,r="trailing"in n?!!n.trailing:r),function(t,e,n){var a,r,o,i,s,c,l=0,d=!1,h=!1,b=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=a,o=r;return a=r=void 0,l=e,i=t.apply(o,n)}function _(t){return l=t,s=setTimeout(v,e),d?y(t):i}function O(t){var n=t-c;return void 0===c||n>=e||n<0||h&&t-l>=o}function v(){var t=f();if(O(t))return C(t);s=setTimeout(v,function(t){var n=e-(t-c);return h?g(n,o-(t-l)):n}(t))}function C(t){return s=void 0,b&&a?y(t):(a=r=void 0,i)}function P(){var t=f(),n=O(t);if(a=arguments,r=this,c=t,n){if(void 0===s)return _(c);if(h)return s=setTimeout(v,e),y(c)}return void 0===s&&(s=setTimeout(v,e)),i}return e=m(e)||0,p(n)&&(d=!!n.leading,o=(h="maxWait"in n)?u(m(n.maxWait)||0,e):o,b="trailing"in n?!!n.trailing:b),P.cancel=function(){void 0!==s&&clearTimeout(s),l=0,a=c=r=s=void 0},P.flush=function(){return void 0===s?i:C(f())},P}(t,e,{leading:a,maxWait:e,trailing:r})}},hKrs:function(t,e,n){!function(t){"use strict";t.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".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:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})}(n("wd/R"))},heNW:function(t,e){t.exports=function(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}},hfeG:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("s7LF"),o=n("+gVj"),i=n("EmSq"),s=n("Fgil"),c=n("aXbf"),l=n("SVse"),d=n("mXUL"),u=n("EEJc"),g=n("ajRT"),f=n("gp3X"),p=n("sb0X"),m=n("KVJa"),h=n("Z21x"),b=n("sne2"),y=n("Rf2I"),_=n("LqlI"),O=n("2EZI"),v=n("GiVz");n.d(e,"a",(function(){return D}));var C=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function P(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.titleText)}))}function M(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"p",[],null,null,null,null,null)),(t()(),a["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.component.message)}))}function x(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,0,0,e.parent.context.$implicit.name),t(e,1,0,e.parent.context.$implicit.label)}))}function w(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0;return"input"===e&&(r=!1!==a["ɵnov"](t,1)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,1)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,1)._compositionEnd(n.target.value)&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.e,[a.Renderer2,a.ElementRef,[2,r.b]],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.e]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,16384,null,0,o.h,[[3,r.d],o.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,1,[e.parent.context.$implicit.type,e.parent.context.$implicit.name,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,6).validClass,a["ɵnov"](e,6).invalidClass])}))}function T(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,7,"input",[["cdDimlessBinary",""],["class","form-control"],["type","text"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var r=!0;return"input"===e&&(r=!1!==a["ɵnov"](t,1)._handleInput(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),"compositionstart"===e&&(r=!1!==a["ɵnov"](t,1)._compositionStart()&&r),"compositionend"===e&&(r=!1!==a["ɵnov"](t,1)._compositionEnd(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,6).onBlur(n.target.value)&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.e,[a.Renderer2,a.ElementRef,[2,r.b]],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.e]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,81920,null,0,i.a,[a.ElementRef,r.q,s.a,c.a],null,null),a["ɵdid"](7,16384,null,0,o.h,[[3,r.d],o.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0),t(e,7,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,1,[e.parent.context.$implicit.name,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,7).validClass,a["ɵnov"](e,7).invalidClass])}))}function S(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,r.v,[a.ElementRef,a.Renderer2,[2,r.A]],{ngValue:[0,"ngValue"]},null),a["ɵdid"](2,147456,null,0,r.F,[a.ElementRef,a.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,null),t(e,2,0,null)}),(function(t,e){t(e,3,0,e.parent.parent.context.$implicit.placeholder)}))}function k(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),a["ɵdid"](1,147456,null,0,r.v,[a.ElementRef,a.Renderer2,[2,r.A]],{value:[0,"value"]},null),a["ɵdid"](2,147456,null,0,r.F,[a.ElementRef,a.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),a["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.text)}))}function I(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,10,"select",[["class","form-control custom-select"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var r=!0;return"change"===e&&(r=!1!==a["ɵnov"](t,1).onChange(n.target.value)&&r),"blur"===e&&(r=!1!==a["ɵnov"](t,1).onTouched()&&r),r}),null,null)),a["ɵdid"](1,16384,null,0,r.A,[a.Renderer2,a.ElementRef],null,null),a["ɵprd"](1024,null,r.p,(function(t){return[t]}),[r.A]),a["ɵdid"](3,671744,null,0,r.j,[[3,r.d],[8,null],[8,null],[6,r.p],[2,r.E]],{name:[0,"name"]},null),a["ɵprd"](2048,null,r.q,null,[r.j]),a["ɵdid"](5,16384,null,0,r.r,[[4,r.q]],null,null),a["ɵdid"](6,16384,null,0,o.h,[[3,r.d],o.a],{formControlName:[0,"formControlName"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,S)),a["ɵdid"](8,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,k)),a["ɵdid"](10,278528,null,0,l.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,3,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.name),t(e,8,0,e.parent.context.$implicit.placeholder),t(e,10,0,e.parent.context.$implicit.options)}),(function(t,e){t(e,0,0,e.parent.context.$implicit.name,a["ɵnov"](e,5).ngClassUntouched,a["ɵnov"](e,5).ngClassTouched,a["ɵnov"](e,5).ngClassPristine,a["ɵnov"](e,5).ngClassDirty,a["ɵnov"](e,5).ngClassValid,a["ɵnov"](e,5).ngClassInvalid,a["ɵnov"](e,5).ngClassPending,a["ɵnov"](e,6).validClass,a["ɵnov"](e,6).invalidClass)}))}function N(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),a["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.getError(e.parent.context.$implicit))}))}function R(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,19,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,18,"div",[],[[8,"className",0],[2,"has-error",null],[2,"has-success",null]],null,null,d.b,d.a)),a["ɵdid"](2,1163264,null,2,o.c,[a.ElementRef,o.g],null,null),a["ɵqud"](603979776,1,{FormControlNames:1}),a["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),a["ɵand"](16777216,null,0,1,null,x)),a["ɵdid"](6,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](7,0,null,0,12,"div",[],null,null,null,null,null)),a["ɵprd"](512,null,l["ɵNgClassImpl"],l["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](9,278528,null,0,l.NgClass,[l["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpod"](10,{"cd-col-form-input":0,"col-sm-12":1}),(t()(),a["ɵand"](16777216,null,null,2,null,w)),a["ɵdid"](12,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),a["ɵpad"](13,2),(t()(),a["ɵand"](16777216,null,null,1,null,T)),a["ɵdid"](15,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,I)),a["ɵdid"](17,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,N)),a["ɵdid"](19,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0),t(e,6,0,e.context.$implicit.label);var r=t(e,10,0,e.context.$implicit.label,!e.context.$implicit.label);t(e,9,0,r);var o=t(e,13,0,"text","number").includes(e.context.$implicit.type);t(e,12,0,o),t(e,15,0,"binary"===e.context.$implicit.type),t(e,17,0,"select"===e.context.$implicit.type),t(e,19,0,n.formGroup.showError(e.context.$implicit.name,a["ɵnov"](e.parent,7)))}),(function(t,e){t(e,1,0,a["ɵinlineInterpolate"](1,"form-group row cd-",e.context.$implicit.name,"-form-group"),a["ɵnov"](e,2).hasErrors,a["ɵnov"](e,2).hasSuccess)}))}function A(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,22,"cd-modal",[],null,null,null,u.c,u.b)),a["ɵdid"](1,49152,null,0,g.a,[],{modalRef:[0,"modalRef"]},null),(t()(),a["ɵand"](16777216,null,0,1,null,P)),a["ɵdid"](3,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵeld"](4,0,null,1,18,null,null,null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,17,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var r=!0;return"submit"===e&&(r=!1!==a["ɵnov"](t,7).onSubmit(n)&&r),"reset"===e&&(r=!1!==a["ɵnov"](t,7).onReset()&&r),"submit"===e&&(r=!1!==a["ɵnov"](t,10).onSubmit()&&r),r}),null,null)),a["ɵdid"](6,16384,null,0,r.G,[],null,null),a["ɵdid"](7,540672,[["formDir",4]],0,r.l,[[8,null],[8,null]],{form:[0,"form"]},null),a["ɵprd"](2048,null,r.d,null,[r.l]),a["ɵdid"](9,16384,null,0,r.s,[[4,r.d]],null,null),a["ɵdid"](10,16384,null,0,o.d,[],{formGroup:[0,"formGroup"]},null),(t()(),a["ɵeld"](11,0,null,null,4,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),a["ɵand"](16777216,null,null,1,null,M)),a["ɵdid"](13,16384,null,0,l.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,R)),a["ɵdid"](15,278528,null,0,l.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](16,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),a["ɵeld"](17,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](18,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0,r=t.component;return"submitAction"===e&&(a=!1!==r.onSubmitForm(r.formGroup.value)&&a),a}),f.b,f.a)),a["ɵdid"](19,114688,null,0,p.a,[a.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),a["ɵted"](20,0,[" "," "])),(t()(),a["ɵeld"](21,0,null,null,1,"cd-back-button",[],null,null,null,m.b,m.a)),a["ɵdid"](22,49152,null,0,h.a,[l.Location,b.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,3,0,n.titleText),t(e,7,0,n.formGroup),t(e,10,0,n.formGroup),t(e,13,0,n.message),t(e,15,0,n.fields),t(e,19,0,n.formGroup),t(e,22,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,5,0,a["ɵnov"](e,9).ngClassUntouched,a["ɵnov"](e,9).ngClassTouched,a["ɵnov"](e,9).ngClassPristine,a["ɵnov"](e,9).ngClassDirty,a["ɵnov"](e,9).ngClassValid,a["ɵnov"](e,9).ngClassInvalid,a["ɵnov"](e,9).ngClassPending),t(e,20,0,n.submitButtonText)}))}function E(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"cd-form-modal",[],null,null,null,A,C)),a["ɵdid"](1,114688,null,0,y.a,[_.a,O.a,c.a,s.a,v.a],null,null)],(function(t,e){t(e,1,0)}),null)}var D=a["ɵccf"]("cd-form-modal",y.a,E,{},{},[])},hgQt:function(t,e,n){var a=n("Juji"),r=n("4sDh");t.exports=function(t,e){return null!=t&&r(t,e,a)}},hh1v:function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},honF:function(t,e,n){!function(t){"use strict";var e={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};t.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".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:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(t){return t.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},week:{dow:1,doy:4}})}(n("wd/R"))},hpHm:function(t,e,n){"use strict";n.d(e,"a",(function(){return p})),n.d(e,"b",(function(){return m})),n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return f})),n.d(e,"e",(function(){return s})),n.d(e,"f",(function(){return i})),n.d(e,"g",(function(){return l})),n.d(e,"h",(function(){return c})),n.d(e,"i",(function(){return y})),n.d(e,"j",(function(){return d}));var a=n("8Y7J");class r{constructor(t,e){this.open=t,this.close=e||t}isManual(){return"manual"===this.open||"manual"===this.close}}const o={hover:["mouseover","mouseout"],focus:["focusin","focusout"]};function i(t,e=o){const n=(t||"").trim();if(0===n.length)return[];const a=n.split(/\s+/).map(t=>t.split(":")).map(t=>{const n=e[t[0]]||t;return new r(n[0],n[1])}),i=a.filter(t=>t.isManual());if(i.length>1)throw new Error("Triggers parse error: only one manual trigger is allowed");if(1===i.length&&a.length>1)throw new Error("Triggers parse error: manual trigger can't be mixed with other triggers");return a}function s(t,e){const n=i(e.triggers),a=e.target;if(1===n.length&&n[0].isManual())return Function.prototype;const r=[],o=[],s=()=>{o.forEach(t=>r.push(t())),o.length=0};return n.forEach(n=>{const i=n.open===n.close,c=i?e.toggle:e.show;i||o.push(()=>t.listen(a,n.close,e.hide)),r.push(t.listen(a,n.open,()=>c(s)))}),()=>{r.forEach(t=>t())}}function c(t,e){return e.outsideClick?t.listen("document","click",t=>{e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(e=>e.contains(t.target))||e.hide()}):Function.prototype}function l(t,e){return e.outsideEsc?t.listen("document","keyup.esc",t=>{e.target&&e.target.contains(t.target)||e.targets&&e.targets.some(e=>e.contains(t.target))||e.hide()}):Function.prototype}const d="undefined"!=typeof window&&window||{},u=d.document;let g;function f(){return void 0===d||(void 0===d.__theme?g?"bs3"===g:(g=function(){if("undefined"==typeof document)return null;const t=document.createElement("span");t.innerText="test bs version",document.body.appendChild(t),t.classList.add("d-none");const e=t.getBoundingClientRect();return document.body.removeChild(t),e&&0===e.top?"bs4":"bs3"}(),"bs3"===g):"bs4"!==d.__theme)}function p(t){return function(t,e){const n=` __${e}Value`;Object.defineProperty(t,e,{get(){return this[n]},set(t){const a=this[n];this[n]=t,a!==t&&this[e+"Change"]&&this[e+"Change"].emit(t)}})}}class m{static reflow(t){}static getStyles(t){let e=t.ownerDocument.defaultView;return e&&e.opener||(e=d),e.getComputedStyle(t)}}const h={},b="undefined"==typeof console||!("warn"in console);function y(t){!Object(a.isDevMode)()||b||t in h||(h[t]=!0,console.warn(t))}},hrfs:function(t,e,n){"use strict";n.d(e,"a",(function(){return h})),n.d(e,"b",(function(){return b})),n.d(e,"c",(function(){return p}));var a=n("8Y7J"),r=n("MO+k"),o=n("2Vo4"),i=n("LvDl");const s=[[255,99,132],[54,162,235],[255,206,86],[231,233,237],[75,192,192],[151,187,205],[220,220,220],[247,70,74],[70,191,189],[253,180,92],[148,159,177],[77,83,96]];function c(t,e){return"rgba("+t.concat(e).join(",")+")"}function l(t,e){return Math.floor(Math.random()*(e-t+1))+t}function d(t){return{backgroundColor:t.map(t=>c(t,.6)),borderColor:t.map(()=>"#fff"),pointBackgroundColor:t.map(t=>c(t,1)),pointBorderColor:t.map(()=>"#fff"),pointHoverBackgroundColor:t.map(t=>c(t,1)),pointHoverBorderColor:t.map(t=>c(t,1))}}function u(){return[l(0,255),l(0,255),l(0,255)]}function g(t){return s[t]||u()}function f(t){const e=new Array(t);for(let n=0;n<t;n++)e[n]=s[n]||u();return e}let p=(()=>{class t{constructor(){this.pColorschemesOptions={},this.colorschemesOptions=new o.a({})}setColorschemesOptions(t){this.pColorschemesOptions=t,this.colorschemesOptions.next(t)}getColorschemesOptions(){return this.pColorschemesOptions}}return t.ngInjectableDef=Object(a["ɵɵdefineInjectable"])({factory:function(){return new t},token:t,providedIn:"root"}),t})();const m=function(){var t={Default:0,Update:1,Refresh:2};return t[t.Default]="Default",t[t.Update]="Update",t[t.Refresh]="Refresh",t}();class h{constructor(t,e){this.element=t,this.themeService=e,this.options={},this.chartClick=new a.EventEmitter,this.chartHover=new a.EventEmitter,this.old={dataExists:!1,dataLength:0,datasetsExists:!1,datasetsLength:0,datasetsDataObjects:[],datasetsDataLengths:[],colorsExists:!1,colors:[],labelsExist:!1,labels:[],legendExists:!1,legend:{}},this.subs=[]}static registerPlugin(t){r.Chart.plugins.register(t)}static unregisterPlugin(t){r.Chart.plugins.unregister(t)}ngOnInit(){this.ctx=this.element.nativeElement.getContext("2d"),this.refresh(),this.subs.push(this.themeService.colorschemesOptions.subscribe(t=>this.themeChanged(t)))}themeChanged(t){this.refresh()}ngDoCheck(){if(!this.chart)return;let t=m.Default;const e=e=>{t=e>t?e:t};switch(!!this.data!==this.old.dataExists&&(this.propagateDataToDatasets(this.data),this.old.dataExists=!!this.data,e(m.Update)),this.data&&this.data.length!==this.old.dataLength&&(this.old.dataLength=this.data&&this.data.length||0,e(m.Update)),!!this.datasets!==this.old.datasetsExists&&(this.old.datasetsExists=!!this.datasets,e(m.Update)),this.datasets&&this.datasets.length!==this.old.datasetsLength&&(this.old.datasetsLength=this.datasets&&this.datasets.length||0,e(m.Update)),this.datasets&&this.datasets.filter((t,e)=>t.data!==this.old.datasetsDataObjects[e]).length&&(this.old.datasetsDataObjects=this.datasets.map(t=>t.data),e(m.Update)),this.datasets&&this.datasets.filter((t,e)=>t.data.length!==this.old.datasetsDataLengths[e]).length&&(this.old.datasetsDataLengths=this.datasets.map(t=>t.data.length),e(m.Update)),!!this.colors!==this.old.colorsExists&&(this.old.colorsExists=!!this.colors,this.updateColors(),e(m.Update)),this.colors&&this.colors.filter((t,e)=>!this.colorsEqual(t,this.old.colors[e])).length&&(this.old.colors=this.colors.map(t=>this.copyColor(t)),this.updateColors(),e(m.Update)),!!this.labels!==this.old.labelsExist&&(this.old.labelsExist=!!this.labels,e(m.Update)),this.labels&&this.labels.filter((t,e)=>!this.labelsEqual(t,this.old.labels[e])).length&&(this.old.labels=this.labels.map(t=>this.copyLabel(t)),e(m.Update)),!!this.options.legend!==this.old.legendExists&&(this.old.legendExists=!!this.options.legend,e(m.Refresh)),this.options.legend&&this.options.legend.position!==this.old.legend.position&&(this.old.legend.position=this.options.legend.position,e(m.Refresh)),t){case m.Default:break;case m.Update:this.update();break;case m.Refresh:this.refresh()}}copyLabel(t){return Array.isArray(t)?[...t]:t}labelsEqual(t,e){return Array.isArray(t)===Array.isArray(e)&&(Array.isArray(t)||t===e)&&(!Array.isArray(t)||t.length===e.length)&&(!Array.isArray(t)||0===t.filter((t,n)=>t!==e[n]).length)}copyColor(t){return{backgroundColor:t.backgroundColor,borderWidth:t.borderWidth,borderColor:t.borderColor,borderCapStyle:t.borderCapStyle,borderDash:t.borderDash,borderDashOffset:t.borderDashOffset,borderJoinStyle:t.borderJoinStyle,pointBorderColor:t.pointBorderColor,pointBackgroundColor:t.pointBackgroundColor,pointBorderWidth:t.pointBorderWidth,pointRadius:t.pointRadius,pointHoverRadius:t.pointHoverRadius,pointHitRadius:t.pointHitRadius,pointHoverBackgroundColor:t.pointHoverBackgroundColor,pointHoverBorderColor:t.pointHoverBorderColor,pointHoverBorderWidth:t.pointHoverBorderWidth,pointStyle:t.pointStyle,hoverBackgroundColor:t.hoverBackgroundColor,hoverBorderColor:t.hoverBorderColor,hoverBorderWidth:t.hoverBorderWidth}}colorsEqual(t,e){return!t==!e&&(!t||t.backgroundColor===e.backgroundColor&&t.borderWidth===e.borderWidth&&t.borderColor===e.borderColor&&t.borderCapStyle===e.borderCapStyle&&t.borderDash===e.borderDash&&t.borderDashOffset===e.borderDashOffset&&t.borderJoinStyle===e.borderJoinStyle&&t.pointBorderColor===e.pointBorderColor&&t.pointBackgroundColor===e.pointBackgroundColor&&t.pointBorderWidth===e.pointBorderWidth&&t.pointRadius===e.pointRadius&&t.pointHoverRadius===e.pointHoverRadius&&t.pointHitRadius===e.pointHitRadius&&t.pointHoverBackgroundColor===e.pointHoverBackgroundColor&&t.pointHoverBorderColor===e.pointHoverBorderColor&&t.pointHoverBorderWidth===e.pointHoverBorderWidth&&t.pointStyle===e.pointStyle&&t.hoverBackgroundColor===e.hoverBackgroundColor&&t.hoverBorderColor===e.hoverBorderColor&&t.hoverBorderWidth===e.hoverBorderWidth)}updateColors(){this.datasets.forEach((t,e)=>{this.colors&&this.colors[e]?Object.assign(t,this.colors[e]):Object.assign(t,function(t,e,n){if("pie"===t||"doughnut"===t)return d(f(n));if("polarArea"===t)return{backgroundColor:(a=f(n)).map(t=>c(t,.6)),borderColor:a.map(t=>c(t,1)),hoverBackgroundColor:a.map(t=>c(t,.8)),hoverBorderColor:a.map(t=>c(t,1))};var a;if("line"===t||"radar"===t)return function(t){return{backgroundColor:c(t,.4),borderColor:c(t,1),pointBackgroundColor:c(t,1),pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:c(t,.8)}}(g(e));if("bar"===t||"horizontalBar"===t)return function(t){return{backgroundColor:c(t,.6),borderColor:c(t,1),hoverBackgroundColor:c(t,.8),hoverBorderColor:c(t,1)}}(g(e));if("bubble"===t)return d(f(n));if("scatter"===t)return d(f(n));throw new Error(`getColors - Unsupported chart type ${t}`)}(this.chartType,e,t.data.length),Object.assign({},t))})}ngOnChanges(t){let e=m.Default;const n=t=>{e=t>e?t:e};switch(t.hasOwnProperty("data")&&t.data.currentValue&&(this.propagateDataToDatasets(t.data.currentValue),n(m.Update)),t.hasOwnProperty("datasets")&&t.datasets.currentValue&&(this.propagateDatasetsToData(t.datasets.currentValue),n(m.Update)),t.hasOwnProperty("labels")&&(this.chart&&(this.chart.data.labels=t.labels.currentValue),n(m.Update)),t.hasOwnProperty("legend")&&(this.chart&&(this.chart.config.options.legend.display=t.legend.currentValue,this.chart.generateLegend()),n(m.Update)),t.hasOwnProperty("options")&&n(m.Refresh),e){case m.Update:this.update();break;case m.Refresh:case m.Default:this.refresh()}}ngOnDestroy(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.subs.forEach(t=>t.unsubscribe())}update(t,e){if(this.chart)return this.chart.update(t,e)}hideDataset(t,e){this.chart.getDatasetMeta(t).hidden=e,this.chart.update()}isDatasetHidden(t){return this.chart.getDatasetMeta(t).hidden}toBase64Image(){return this.chart.toBase64Image()}getChartConfiguration(){const t=this.getDatasets(),e=Object.assign({},this.options);!1===this.legend&&(e.legend={display:!1}),e.hover=e.hover||{},e.hover.onHover||(e.hover.onHover=(t,e)=>{e&&!e.length||this.chartHover.emit({event:t,active:e})}),e.onClick||(e.onClick=(t,e)=>{this.chartClick.emit({event:t,active:e})});const n=this.smartMerge(e,this.themeService.getColorschemesOptions());return{type:this.chartType,data:{labels:this.labels||[],datasets:t},plugins:this.plugins,options:n}}getChartBuilder(t){const e=this.getChartConfiguration();return new r.Chart(t,e)}smartMerge(t,e,n=0){if(0===n&&(t=Object(i.cloneDeep)(t)),Object.keys(e).forEach(a=>{if(Array.isArray(e[a])){const r=t[a];r&&r.forEach(t=>{this.smartMerge(t,e[a][0],n+1)})}else"object"==typeof e[a]?(a in t||(t[a]={}),this.smartMerge(t[a],e[a],n+1)):t[a]=e[a]}),0===n)return t}isMultiLineLabel(t){return Array.isArray(t)}joinLabel(t){return t?this.isMultiLineLabel(t)?t.join(" "):t:null}propagateDatasetsToData(t){this.data=this.datasets.map(t=>t.data),this.chart&&(this.chart.data.datasets=t),this.updateColors()}propagateDataToDatasets(t){this.isMultiDataSet(t)?this.datasets&&t.length===this.datasets.length?this.datasets.forEach((e,n)=>{e.data=t[n]}):(this.datasets=t.map((t,e)=>({data:t,label:this.joinLabel(this.labels[e])||`Label ${e}`})),this.chart&&(this.chart.data.datasets=this.datasets)):this.datasets?(this.datasets[0].data=t,this.datasets.splice(1)):(this.datasets=[{data:t}],this.chart&&(this.chart.data.datasets=this.datasets)),this.updateColors()}isMultiDataSet(t){return Array.isArray(t[0])}getDatasets(){if(!this.datasets&&!this.data)throw new Error(`ng-charts configuration error, data or datasets field are required to render chart ${this.chartType}`);return this.datasets?(this.propagateDatasetsToData(this.datasets),this.datasets):this.data?(this.propagateDataToDatasets(this.data),this.datasets):void 0}refresh(){this.chart&&(this.chart.destroy(),this.chart=void 0),this.ctx&&(this.chart=this.getChartBuilder(this.ctx))}}class b{}},hypo:function(t,e,n){var a=n("O0oS");t.exports=function(t,e,n){"__proto__"==e&&a?a(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}},i3PA:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("jvuA")),a(n("UReH"))},iEDd:function(t,e,n){!function(t){"use strict";t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".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()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},iExv:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.i18n=t}transform(t,e=this.i18n("Yes"),n=this.i18n("No")){return Boolean(t)?e:n}}},iInd:function(t,e,n){"use strict";n.d(e,"F",(function(){return $})),n.d(e,"v",(function(){return dn})),n.d(e,"C",(function(){return On})),n.d(e,"x",(function(){return pn})),n.d(e,"D",(function(){return vn})),n.d(e,"E",(function(){return Cn})),n.d(e,"z",(function(){return hn})),n.d(e,"y",(function(){return mn})),n.d(e,"B",(function(){return _n})),n.d(e,"w",(function(){return gn})),n.d(e,"A",(function(){return yn})),n.d(e,"G",(function(){return cn})),n.d(e,"n",(function(){return $e})),n.d(e,"p",(function(){return Ze})),n.d(e,"o",(function(){return Xe})),n.d(e,"r",(function(){return en})),n.d(e,"d",(function(){return E})),n.d(e,"e",(function(){return A})),n.d(e,"l",(function(){return Fe})),n.d(e,"m",(function(){return Ke})),n.d(e,"k",(function(){return Ge})),n.d(e,"i",(function(){return ln})),n.d(e,"j",(function(){return Pn})),n.d(e,"q",(function(){return fn})),n.d(e,"b",(function(){return tn})),n.d(e,"f",(function(){return on})),n.d(e,"g",(function(){return rn})),n.d(e,"h",(function(){return an})),n.d(e,"s",(function(){return sn})),n.d(e,"a",(function(){return jt})),n.d(e,"t",(function(){return Ve})),n.d(e,"c",(function(){return bt})),n.d(e,"u",(function(){return ht}));var a=n("SVse"),r=n("8Y7J"),o=n("LRne"),i=n("Cfvw"),s=n("2Vo4"),c=n("HDdC"),l=n("sVev"),d=n("itXk"),u=n("NXyV"),g=n("XNiG"),f=n("EY2u"),p=n("lJxs"),m=n("0EUg"),h=n("NJ9Y"),b=n("JIr8"),y=n("SxV6"),_=n("5+tZ"),O=n("Gi4w"),v=n("eIep"),C=n("IzEk"),P=n("JX91"),M=n("Kqap"),x=n("pLZG"),w=n("bOdf"),T=n("128B"),S=n("vkgz"),k=n("nYR2"),I=n("bHdf"),N=n("cUpR");class R{constructor(t,e){this.id=t,this.url=e}}class A extends R{constructor(t,e,n="imperative",a=null){super(t,e),this.navigationTrigger=n,this.restoredState=a}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class E extends R{constructor(t,e,n){super(t,e),this.urlAfterRedirects=n}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class D extends R{constructor(t,e,n){super(t,e),this.reason=n}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class L extends R{constructor(t,e,n){super(t,e),this.error=n}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class q extends R{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class j extends R{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class F extends R{constructor(t,e,n,a,r){super(t,e),this.urlAfterRedirects=n,this.state=a,this.shouldActivate=r}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class z extends R{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class G extends R{constructor(t,e,n,a){super(t,e),this.urlAfterRedirects=n,this.state=a}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class B{constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class V{constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class Y{constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class H{constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class U{constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class W{constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class K{constructor(t,e,n){this.routerEvent=t,this.position=e,this.anchor=n}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class ${}class Z{constructor(t){this.params=t||{}}has(t){return this.params.hasOwnProperty(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 J(t){return new Z(t)}function X(t){const e=Error("NavigationCancelingError: "+t);return e.ngNavigationCancelingError=!0,e}function Q(t,e,n){const a=n.path.split("/");if(a.length>t.length)return null;if("full"===n.pathMatch&&(e.hasChildren()||a.length<t.length))return null;const r={};for(let o=0;o<a.length;o++){const e=a[o],n=t[o];if(e.startsWith(":"))r[e.substring(1)]=n;else if(e!==n.path)return null}return{consumed:t.slice(0,a.length),posParams:r}}class tt{constructor(t,e){this.routes=t,this.module=e}}function et(t,e=""){for(let n=0;n<t.length;n++){const a=t[n];nt(a,at(e,a))}}function nt(t,e){if(!t)throw new Error(`\n      Invalid configuration of route '${e}': Encountered undefined route.\n      The reason might be an extra comma.\n\n      Example:\n      const routes: Routes = [\n        { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n        { path: 'dashboard',  component: DashboardComponent },, << two commas\n        { path: 'detail/:id', component: HeroDetailComponent }\n      ];\n    `);if(Array.isArray(t))throw new Error(`Invalid configuration of route '${e}': Array cannot be specified`);if(!t.component&&!t.children&&!t.loadChildren&&t.outlet&&"primary"!==t.outlet)throw new Error(`Invalid configuration of route '${e}': a componentless route without children or loadChildren cannot have a named outlet set`);if(t.redirectTo&&t.children)throw new Error(`Invalid configuration of route '${e}': redirectTo and children cannot be used together`);if(t.redirectTo&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': redirectTo and loadChildren cannot be used together`);if(t.children&&t.loadChildren)throw new Error(`Invalid configuration of route '${e}': children and loadChildren cannot be used together`);if(t.redirectTo&&t.component)throw new Error(`Invalid configuration of route '${e}': redirectTo and component cannot be used together`);if(t.path&&t.matcher)throw new Error(`Invalid configuration of route '${e}': path and matcher cannot be used together`);if(void 0===t.redirectTo&&!t.component&&!t.children&&!t.loadChildren)throw new Error(`Invalid configuration of route '${e}'. One of the following must be provided: component, redirectTo, children or loadChildren`);if(void 0===t.path&&void 0===t.matcher)throw new Error(`Invalid configuration of route '${e}': routes must have either a path or a matcher specified`);if("string"==typeof t.path&&"/"===t.path.charAt(0))throw new Error(`Invalid configuration of route '${e}': path cannot start with a slash`);if(""===t.path&&void 0!==t.redirectTo&&void 0===t.pathMatch)throw new Error(`Invalid configuration of route '{path: "${e}", redirectTo: "${t.redirectTo}"}': please provide 'pathMatch'. The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`);if(void 0!==t.pathMatch&&"full"!==t.pathMatch&&"prefix"!==t.pathMatch)throw new Error(`Invalid configuration of route '${e}': pathMatch can only be set to 'prefix' or 'full'`);t.children&&et(t.children,e)}function at(t,e){return e?t||e.path?t&&!e.path?`${t}/`:!t&&e.path?e.path:`${t}/${e.path}`:"":t}function rt(t){const e=t.children&&t.children.map(rt),n=e?Object.assign({},t,{children:e}):Object.assign({},t);return!n.component&&(e||n.loadChildren)&&n.outlet&&"primary"!==n.outlet&&(n.component=$),n}function ot(t,e){const n=Object.keys(t),a=Object.keys(e);if(!n||!a||n.length!=a.length)return!1;let r;for(let o=0;o<n.length;o++)if(r=n[o],t[r]!==e[r])return!1;return!0}function it(t){return Array.prototype.concat.apply([],t)}function st(t){return t.length>0?t[t.length-1]:null}function ct(t,e){for(const n in t)t.hasOwnProperty(n)&&e(t[n],n)}function lt(t){return Object(r["ɵisObservable"])(t)?t:Object(r["ɵisPromise"])(t)?Object(i.a)(Promise.resolve(t)):Object(o.a)(t)}function dt(t,e,n){return n?function(t,e){return ot(t,e)}(t.queryParams,e.queryParams)&&function t(e,n){if(!pt(e.segments,n.segments))return!1;if(e.numberOfChildren!==n.numberOfChildren)return!1;for(const a in n.children){if(!e.children[a])return!1;if(!t(e.children[a],n.children[a]))return!1}return!0}(t.root,e.root):function(t,e){return Object.keys(e).length<=Object.keys(t).length&&Object.keys(e).every(n=>e[n]===t[n])}(t.queryParams,e.queryParams)&&function t(e,n){return function e(n,a,r){if(n.segments.length>r.length)return!!pt(n.segments.slice(0,r.length),r)&&!a.hasChildren();if(n.segments.length===r.length){if(!pt(n.segments,r))return!1;for(const e in a.children){if(!n.children[e])return!1;if(!t(n.children[e],a.children[e]))return!1}return!0}{const t=r.slice(0,n.segments.length),o=r.slice(n.segments.length);return!!pt(n.segments,t)&&!!n.children.primary&&e(n.children.primary,a,o)}}(e,n,n.segments)}(t.root,e.root)}class ut{constructor(t,e,n){this.root=t,this.queryParams=e,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=J(this.queryParams)),this._queryParamMap}toString(){return yt.serialize(this)}}class gt{constructor(t,e){this.segments=t,this.children=e,this.parent=null,ct(e,(t,e)=>t.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return _t(this)}}class ft{constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap||(this._parameterMap=J(this.parameters)),this._parameterMap}toString(){return xt(this)}}function pt(t,e){return t.length===e.length&&t.every((t,n)=>t.path===e[n].path)}function mt(t,e){let n=[];return ct(t.children,(t,a)=>{"primary"===a&&(n=n.concat(e(t,a)))}),ct(t.children,(t,a)=>{"primary"!==a&&(n=n.concat(e(t,a)))}),n}class ht{}class bt{parse(t){const e=new It(t);return new ut(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){var e;return`${`/${function t(e,n){if(!e.hasChildren())return _t(e);if(n){const n=e.children.primary?t(e.children.primary,!1):"",a=[];return ct(e.children,(e,n)=>{"primary"!==n&&a.push(`${n}:${t(e,!1)}`)}),a.length>0?`${n}(${a.join("//")})`:n}{const n=mt(e,(n,a)=>"primary"===a?[t(e.children.primary,!1)]:[`${a}:${t(n,!1)}`]);return`${_t(e)}/(${n.join("//")})`}}(t.root,!0)}`}${function(t){const e=Object.keys(t).map(e=>{const n=t[e];return Array.isArray(n)?n.map(t=>`${vt(e)}=${vt(t)}`).join("&"):`${vt(e)}=${vt(n)}`});return e.length?`?${e.join("&")}`:""}(t.queryParams)}${"string"==typeof t.fragment?`#${e=t.fragment,encodeURI(e)}`:""}`}}const yt=new bt;function _t(t){return t.segments.map(t=>xt(t)).join("/")}function Ot(t){return encodeURIComponent(t).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function vt(t){return Ot(t).replace(/%3B/gi,";")}function Ct(t){return Ot(t).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Pt(t){return decodeURIComponent(t)}function Mt(t){return Pt(t.replace(/\+/g,"%20"))}function xt(t){return`${Ct(t.path)}${e=t.parameters,Object.keys(e).map(t=>`;${Ct(t)}=${Ct(e[t])}`).join("")}`;var e}const wt=/^[^\/()?;=#]+/;function Tt(t){const e=t.match(wt);return e?e[0]:""}const St=/^[^=?&#]+/,kt=/^[^?&#]+/;class It{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new gt([],{}):new gt([],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 n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(n.primary=new gt(t,e)),n}parseSegment(){const t=Tt(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new Error(`Empty path url segment cannot have parameters: '${this.remaining}'.`);return this.capture(t),new ft(Pt(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const e=Tt(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){const t=Tt(this.remaining);t&&(n=t,this.capture(n))}t[Pt(e)]=Pt(n)}parseQueryParam(t){const e=function(t){const e=t.match(St);return e?e[0]:""}(this.remaining);if(!e)return;this.capture(e);let n="";if(this.consumeOptional("=")){const t=function(t){const e=t.match(kt);return e?e[0]:""}(this.remaining);t&&(n=t,this.capture(n))}const a=Mt(e),r=Mt(n);if(t.hasOwnProperty(a)){let e=t[a];Array.isArray(e)||(e=[e],t[a]=e),e.push(r)}else t[a]=r}parseParens(t){const e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const n=Tt(this.remaining),a=this.remaining[n.length];if("/"!==a&&")"!==a&&";"!==a)throw new Error(`Cannot parse url '${this.url}'`);let r=void 0;n.indexOf(":")>-1?(r=n.substr(0,n.indexOf(":")),this.capture(r),this.capture(":")):t&&(r="primary");const o=this.parseChildren();e[r]=1===Object.keys(o).length?o.primary:new gt([],o),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 Error(`Expected "${t}".`)}}class Nt{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=Rt(t,this._root);return e?e.children.map(t=>t.value):[]}firstChild(t){const e=Rt(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){const e=At(t,this._root);return e.length<2?[]:e[e.length-2].children.map(t=>t.value).filter(e=>e!==t)}pathFromRoot(t){return At(t,this._root).map(t=>t.value)}}function Rt(t,e){if(t===e.value)return e;for(const n of e.children){const e=Rt(t,n);if(e)return e}return null}function At(t,e){if(t===e.value)return[e];for(const n of e.children){const a=At(t,n);if(a.length)return a.unshift(e),a}return[]}class Et{constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}}function Dt(t){const e={};return t&&t.children.forEach(t=>e[t.value.outlet]=t),e}class Lt extends Nt{constructor(t,e){super(t),this.snapshot=e,Bt(this,t)}toString(){return this.snapshot.toString()}}function qt(t,e){const n=function(t,e){const n=new zt([],{},{},"",{},"primary",e,null,t.root,-1,{});return new Gt("",new Et(n,[]))}(t,e),a=new s.a([new ft("",{})]),r=new s.a({}),o=new s.a({}),i=new s.a({}),c=new s.a(""),l=new jt(a,r,i,c,o,"primary",e,n.root);return l.snapshot=n.root,new Lt(new Et(l,[]),n)}class jt{constructor(t,e,n,a,r,o,i,s){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=o,this.component=i,this._futureSnapshot=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(Object(p.a)(t=>J(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Object(p.a)(t=>J(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Ft(t,e="emptyOnly"){const n=t.pathFromRoot;let a=0;if("always"!==e)for(a=n.length-1;a>=1;){const t=n[a],e=n[a-1];if(t.routeConfig&&""===t.routeConfig.path)a--;else{if(e.component)break;a--}}return function(t){return t.reduce((t,e)=>({params:Object.assign({},t.params,e.params),data:Object.assign({},t.data,e.data),resolve:Object.assign({},t.resolve,e._resolvedData)}),{params:{},data:{},resolve:{}})}(n.slice(a))}class zt{constructor(t,e,n,a,r,o,i,s,c,l,d){this.url=t,this.params=e,this.queryParams=n,this.fragment=a,this.data=r,this.outlet=o,this.component=i,this.routeConfig=s,this._urlSegment=c,this._lastPathIndex=l,this._resolve=d}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=J(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=J(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(t=>t.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Gt extends Nt{constructor(t,e){super(e),this.url=t,Bt(this,e)}toString(){return Vt(this._root)}}function Bt(t,e){e.value._routerState=t,e.children.forEach(e=>Bt(t,e))}function Vt(t){const e=t.children.length>0?` { ${t.children.map(Vt).join(", ")} } `:"";return`${t.value}${e}`}function Yt(t){if(t.snapshot){const e=t.snapshot,n=t._futureSnapshot;t.snapshot=n,ot(e.queryParams,n.queryParams)||t.queryParams.next(n.queryParams),e.fragment!==n.fragment&&t.fragment.next(n.fragment),ot(e.params,n.params)||t.params.next(n.params),function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;++n)if(!ot(t[n],e[n]))return!1;return!0}(e.url,n.url)||t.url.next(n.url),ot(e.data,n.data)||t.data.next(n.data)}else t.snapshot=t._futureSnapshot,t.data.next(t._futureSnapshot.data)}function Ht(t,e){var n,a;return ot(t.params,e.params)&&pt(n=t.url,a=e.url)&&n.every((t,e)=>ot(t.parameters,a[e].parameters))&&!(!t.parent!=!e.parent)&&(!t.parent||Ht(t.parent,e.parent))}function Ut(t){return"object"==typeof t&&null!=t&&!t.outlets&&!t.segmentPath}function Wt(t,e,n,a,r){let o={};return a&&ct(a,(t,e)=>{o[e]=Array.isArray(t)?t.map(t=>`${t}`):`${t}`}),new ut(n.root===t?e:function t(e,n,a){const r={};return ct(e.children,(e,o)=>{r[o]=e===n?a:t(e,n,a)}),new gt(e.segments,r)}(n.root,t,e),o,r)}class Kt{constructor(t,e,n){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=n,t&&n.length>0&&Ut(n[0]))throw new Error("Root segment cannot have matrix parameters");const a=n.find(t=>"object"==typeof t&&null!=t&&t.outlets);if(a&&a!==st(n))throw new Error("{outlets:{}} has to be the last command")}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class $t{constructor(t,e,n){this.segmentGroup=t,this.processChildren=e,this.index=n}}function Zt(t){return"object"==typeof t&&null!=t&&t.outlets?t.outlets.primary:`${t}`}function Jt(t,e,n){if(t||(t=new gt([],{})),0===t.segments.length&&t.hasChildren())return Xt(t,e,n);const a=function(t,e,n){let a=0,r=e;const o={match:!1,pathIndex:0,commandIndex:0};for(;r<t.segments.length;){if(a>=n.length)return o;const e=t.segments[r],i=Zt(n[a]),s=a<n.length-1?n[a+1]:null;if(r>0&&void 0===i)break;if(i&&s&&"object"==typeof s&&void 0===s.outlets){if(!ne(i,s,e))return o;a+=2}else{if(!ne(i,{},e))return o;a++}r++}return{match:!0,pathIndex:r,commandIndex:a}}(t,e,n),r=n.slice(a.commandIndex);if(a.match&&a.pathIndex<t.segments.length){const e=new gt(t.segments.slice(0,a.pathIndex),{});return e.children.primary=new gt(t.segments.slice(a.pathIndex),t.children),Xt(e,0,r)}return a.match&&0===r.length?new gt(t.segments,{}):a.match&&!t.hasChildren()?Qt(t,e,n):a.match?Xt(t,0,r):Qt(t,e,n)}function Xt(t,e,n){if(0===n.length)return new gt(t.segments,{});{const a=function(t){return"object"!=typeof t[0]?{primary:t}:void 0===t[0].outlets?{primary:t}:t[0].outlets}(n),r={};return ct(a,(n,a)=>{null!==n&&(r[a]=Jt(t.children[a],e,n))}),ct(t.children,(t,e)=>{void 0===a[e]&&(r[e]=t)}),new gt(t.segments,r)}}function Qt(t,e,n){const a=t.segments.slice(0,e);let r=0;for(;r<n.length;){if("object"==typeof n[r]&&void 0!==n[r].outlets){const t=te(n[r].outlets);return new gt(a,t)}if(0===r&&Ut(n[0])){a.push(new ft(t.segments[e].path,n[0])),r++;continue}const o=Zt(n[r]),i=r<n.length-1?n[r+1]:null;o&&i&&Ut(i)?(a.push(new ft(o,ee(i))),r+=2):(a.push(new ft(o,{})),r++)}return new gt(a,{})}function te(t){const e={};return ct(t,(t,n)=>{null!==t&&(e[n]=Qt(new gt([],{}),0,t))}),e}function ee(t){const e={};return ct(t,(t,n)=>e[n]=`${t}`),e}function ne(t,e,n){return t==n.path&&ot(e,n.parameters)}class ae{constructor(t,e,n,a){this.routeReuseStrategy=t,this.futureState=e,this.currState=n,this.forwardEvent=a}activate(t){const e=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,n,t),Yt(this.futureState.root),this.activateChildRoutes(e,n,t)}deactivateChildRoutes(t,e,n){const a=Dt(e);t.children.forEach(t=>{const e=t.value.outlet;this.deactivateRoutes(t,a[e],n),delete a[e]}),ct(a,(t,e)=>{this.deactivateRouteAndItsChildren(t,n)})}deactivateRoutes(t,e,n){const a=t.value,r=e?e.value:null;if(a===r)if(a.component){const r=n.getContext(a.outlet);r&&this.deactivateChildRoutes(t,e,r.children)}else this.deactivateChildRoutes(t,e,n);else r&&this.deactivateRouteAndItsChildren(e,n)}deactivateRouteAndItsChildren(t,e){this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){const n=e.getContext(t.value.outlet);if(n&&n.outlet){const e=n.outlet.detach(),a=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:e,route:t,contexts:a})}}deactivateRouteAndOutlet(t,e){const n=e.getContext(t.value.outlet);if(n){const a=Dt(t),r=t.value.component?n.children:e;ct(a,(t,e)=>this.deactivateRouteAndItsChildren(t,r)),n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated())}}activateChildRoutes(t,e,n){const a=Dt(e);t.children.forEach(t=>{this.activateRoutes(t,a[t.value.outlet],n),this.forwardEvent(new W(t.value.snapshot))}),t.children.length&&this.forwardEvent(new H(t.value.snapshot))}activateRoutes(t,e,n){const a=t.value,r=e?e.value:null;if(Yt(a),a===r)if(a.component){const r=n.getOrCreateContext(a.outlet);this.activateChildRoutes(t,e,r.children)}else this.activateChildRoutes(t,e,n);else if(a.component){const e=n.getOrCreateContext(a.outlet);if(this.routeReuseStrategy.shouldAttach(a.snapshot)){const t=this.routeReuseStrategy.retrieve(a.snapshot);this.routeReuseStrategy.store(a.snapshot,null),e.children.onOutletReAttached(t.contexts),e.attachRef=t.componentRef,e.route=t.route.value,e.outlet&&e.outlet.attach(t.componentRef,t.route.value),re(t.route)}else{const n=function(t){for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig;if(t&&t.component)return null}return null}(a.snapshot),r=n?n.module.componentFactoryResolver:null;e.attachRef=null,e.route=a,e.resolver=r,e.outlet&&e.outlet.activateWith(a,r),this.activateChildRoutes(t,null,e.children)}}else this.activateChildRoutes(t,null,n)}}function re(t){Yt(t.value),t.children.forEach(re)}function oe(t){return"function"==typeof t}function ie(t){return t instanceof ut}class se{constructor(t){this.segmentGroup=t||null}}class ce{constructor(t){this.urlTree=t}}function le(t){return new c.a(e=>e.error(new se(t)))}function de(t){return new c.a(e=>e.error(new ce(t)))}function ue(t){return new c.a(e=>e.error(new Error(`Only absolute redirects can have named outlets. redirectTo: '${t}'`)))}class ge{constructor(t,e,n,a,o){this.configLoader=e,this.urlSerializer=n,this.urlTree=a,this.config=o,this.allowRedirects=!0,this.ngModule=t.get(r.NgModuleRef)}apply(){return this.expandSegmentGroup(this.ngModule,this.config,this.urlTree.root,"primary").pipe(Object(p.a)(t=>this.createUrlTree(t,this.urlTree.queryParams,this.urlTree.fragment))).pipe(Object(b.a)(t=>{if(t instanceof ce)return this.allowRedirects=!1,this.match(t.urlTree);if(t instanceof se)throw this.noMatchError(t);throw t}))}match(t){return this.expandSegmentGroup(this.ngModule,this.config,t.root,"primary").pipe(Object(p.a)(e=>this.createUrlTree(e,t.queryParams,t.fragment))).pipe(Object(b.a)(t=>{if(t instanceof se)throw this.noMatchError(t);throw t}))}noMatchError(t){return new Error(`Cannot match any routes. URL Segment: '${t.segmentGroup}'`)}createUrlTree(t,e,n){const a=t.segments.length>0?new gt([],{primary:t}):t;return new ut(a,e,n)}expandSegmentGroup(t,e,n,a){return 0===n.segments.length&&n.hasChildren()?this.expandChildren(t,e,n).pipe(Object(p.a)(t=>new gt([],t))):this.expandSegment(t,n,e,n.segments,a,!0)}expandChildren(t,e,n){return function(t,e){if(0===Object.keys(t).length)return Object(o.a)({});const n=[],a=[],r={};return ct(t,(t,o)=>{const i=e(o,t).pipe(Object(p.a)(t=>r[o]=t));"primary"===o?n.push(i):a.push(i)}),o.a.apply(null,n.concat(a)).pipe(Object(m.a)(),Object(h.a)(),Object(p.a)(()=>r))}(n.children,(n,a)=>this.expandSegmentGroup(t,e,a,n))}expandSegment(t,e,n,a,r,i){return Object(o.a)(...n).pipe(Object(p.a)(s=>this.expandSegmentAgainstRoute(t,e,n,s,a,r,i).pipe(Object(b.a)(t=>{if(t instanceof se)return Object(o.a)(null);throw t}))),Object(m.a)(),Object(y.a)(t=>!!t),Object(b.a)((t,n)=>{if(t instanceof l.a||"EmptyError"===t.name){if(this.noLeftoversInUrl(e,a,r))return Object(o.a)(new gt([],{}));throw new se(e)}throw t}))}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}expandSegmentAgainstRoute(t,e,n,a,r,o,i){return he(a)!==o?le(e):void 0===a.redirectTo?this.matchSegmentAgainstRoute(t,e,a,r):i&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,o):le(e)}expandSegmentAgainstRouteUsingRedirect(t,e,n,a,r,o){return"**"===a.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,a,o):this.expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,o)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,e,n,a){const r=this.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?de(r):this.lineralizeSegments(n,r).pipe(Object(_.a)(n=>{const r=new gt(n,{});return this.expandSegment(t,r,e,n,a,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,e,n,a,r,o){const{matched:i,consumedSegments:s,lastChild:c,positionalParamSegments:l}=fe(e,a,r);if(!i)return le(e);const d=this.applyRedirectCommands(s,a.redirectTo,l);return a.redirectTo.startsWith("/")?de(d):this.lineralizeSegments(a,d).pipe(Object(_.a)(a=>this.expandSegment(t,e,n,a.concat(r.slice(c)),o,!1)))}matchSegmentAgainstRoute(t,e,n,a){if("**"===n.path)return n.loadChildren?this.configLoader.load(t.injector,n).pipe(Object(p.a)(t=>(n._loadedConfig=t,new gt(a,{})))):Object(o.a)(new gt(a,{}));const{matched:r,consumedSegments:i,lastChild:s}=fe(e,n,a);if(!r)return le(e);const c=a.slice(s);return this.getChildConfig(t,n,a).pipe(Object(_.a)(t=>{const n=t.module,a=t.routes,{segmentGroup:r,slicedSegments:s}=function(t,e,n,a){return n.length>0&&function(t,e,n){return n.some(n=>me(t,e,n)&&"primary"!==he(n))}(t,n,a)?{segmentGroup:pe(new gt(e,function(t,e){const n={};n.primary=e;for(const a of t)""===a.path&&"primary"!==he(a)&&(n[he(a)]=new gt([],{}));return n}(a,new gt(n,t.children)))),slicedSegments:[]}:0===n.length&&function(t,e,n){return n.some(n=>me(t,e,n))}(t,n,a)?{segmentGroup:pe(new gt(t.segments,function(t,e,n,a){const r={};for(const o of n)me(t,e,o)&&!a[he(o)]&&(r[he(o)]=new gt([],{}));return Object.assign({},a,r)}(t,n,a,t.children))),slicedSegments:n}:{segmentGroup:t,slicedSegments:n}}(e,i,c,a);return 0===s.length&&r.hasChildren()?this.expandChildren(n,a,r).pipe(Object(p.a)(t=>new gt(i,t))):0===a.length&&0===s.length?Object(o.a)(new gt(i,{})):this.expandSegment(n,r,a,s,"primary",!0).pipe(Object(p.a)(t=>new gt(i.concat(t.segments),t.children)))}))}getChildConfig(t,e,n){return e.children?Object(o.a)(new tt(e.children,t)):e.loadChildren?void 0!==e._loadedConfig?Object(o.a)(e._loadedConfig):function(t,e,n){const a=e.canLoad;return a&&0!==a.length?Object(i.a)(a).pipe(Object(p.a)(a=>{const r=t.get(a);let o;if(function(t){return t&&oe(t.canLoad)}(r))o=r.canLoad(e,n);else{if(!oe(r))throw new Error("Invalid CanLoad guard");o=r(e,n)}return lt(o)})).pipe(Object(m.a)(),Object(O.a)(t=>!0===t)):Object(o.a)(!0)}(t.injector,e,n).pipe(Object(_.a)(n=>n?this.configLoader.load(t.injector,e).pipe(Object(p.a)(t=>(e._loadedConfig=t,t))):function(t){return new c.a(e=>e.error(X(`Cannot load children because the guard of the route "path: '${t.path}'" returned false`)))}(e))):Object(o.a)(new tt([],t))}lineralizeSegments(t,e){let n=[],a=e.root;for(;;){if(n=n.concat(a.segments),0===a.numberOfChildren)return Object(o.a)(n);if(a.numberOfChildren>1||!a.children.primary)return ue(t.redirectTo);a=a.children.primary}}applyRedirectCommands(t,e,n){return this.applyRedirectCreatreUrlTree(e,this.urlSerializer.parse(e),t,n)}applyRedirectCreatreUrlTree(t,e,n,a){const r=this.createSegmentGroup(t,e.root,n,a);return new ut(r,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){const n={};return ct(t,(t,a)=>{if("string"==typeof t&&t.startsWith(":")){const r=t.substring(1);n[a]=e[r]}else n[a]=t}),n}createSegmentGroup(t,e,n,a){const r=this.createSegments(t,e.segments,n,a);let o={};return ct(e.children,(e,r)=>{o[r]=this.createSegmentGroup(t,e,n,a)}),new gt(r,o)}createSegments(t,e,n,a){return e.map(e=>e.path.startsWith(":")?this.findPosParam(t,e,a):this.findOrReturn(e,n))}findPosParam(t,e,n){const a=n[e.path.substring(1)];if(!a)throw new Error(`Cannot redirect to '${t}'. Cannot find '${e.path}'.`);return a}findOrReturn(t,e){let n=0;for(const a of e){if(a.path===t.path)return e.splice(n),a;n++}return t}}function fe(t,e,n){if(""===e.path)return"full"===e.pathMatch&&(t.hasChildren()||n.length>0)?{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}:{matched:!0,consumedSegments:[],lastChild:0,positionalParamSegments:{}};const a=(e.matcher||Q)(n,t,e);return a?{matched:!0,consumedSegments:a.consumed,lastChild:a.consumed.length,positionalParamSegments:a.posParams}:{matched:!1,consumedSegments:[],lastChild:0,positionalParamSegments:{}}}function pe(t){if(1===t.numberOfChildren&&t.children.primary){const e=t.children.primary;return new gt(t.segments.concat(e.segments),e.children)}return t}function me(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0!==n.redirectTo}function he(t){return t.outlet||"primary"}class be{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class ye{constructor(t,e){this.component=t,this.route=e}}function _e(t,e,n){const a=t._root;return function t(e,n,a,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Dt(n);return e.children.forEach(e=>{!function(e,n,a,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=n?n.value:null,c=a?a.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function(t,e,n){if("function"==typeof n)return n(t,e);switch(n){case"pathParamsChange":return!pt(t.url,e.url);case"pathParamsOrQueryParamsChange":return!pt(t.url,e.url)||!ot(t.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Ht(t,e)||!ot(t.queryParams,e.queryParams);case"paramsChange":default:return!Ht(t,e)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new be(r)):(i.data=s.data,i._resolvedData=s._resolvedData),t(e,n,i.component?c?c.children:null:a,r,o),l&&o.canDeactivateChecks.push(new ye(c&&c.outlet&&c.outlet.component||null,s))}else s&&ve(n,c,o),o.canActivateChecks.push(new be(r)),t(e,null,i.component?c?c.children:null:a,r,o)}(e,i[e.value.outlet],a,r.concat([e.value]),o),delete i[e.value.outlet]}),ct(i,(t,e)=>ve(t,a.getContext(e),o)),o}(a,e?e._root:null,n,[a.value])}function Oe(t,e,n){const a=function(t){if(!t)return null;for(let e=t.parent;e;e=e.parent){const t=e.routeConfig;if(t&&t._loadedConfig)return t._loadedConfig}return null}(e);return(a?a.module.injector:n).get(t)}function ve(t,e,n){const a=Dt(t),r=t.value;ct(a,(t,a)=>{ve(t,r.component?e?e.children.getContext(a):null:e,n)}),n.canDeactivateChecks.push(new ye(r.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,r))}const Ce=Symbol("INITIAL_VALUE");function Pe(){return Object(v.a)(t=>Object(d.b)(...t.map(t=>t.pipe(Object(C.a)(1),Object(P.a)(Ce)))).pipe(Object(M.a)((t,e)=>{let n=!1;return e.reduce((t,a,r)=>{if(t!==Ce)return t;if(a===Ce&&(n=!0),!n){if(!1===a)return a;if(r===e.length-1||ie(a))return a}return t},t)},Ce),Object(x.a)(t=>t!==Ce),Object(p.a)(t=>ie(t)?t:!0===t),Object(C.a)(1)))}function Me(t,e){return null!==t&&e&&e(new U(t)),Object(o.a)(!0)}function xe(t,e){return null!==t&&e&&e(new Y(t)),Object(o.a)(!0)}function we(t,e,n){const a=e.routeConfig?e.routeConfig.canActivate:null;if(!a||0===a.length)return Object(o.a)(!0);const r=a.map(a=>Object(u.a)(()=>{const r=Oe(a,e,n);let o;if(function(t){return t&&oe(t.canActivate)}(r))o=lt(r.canActivate(e,t));else{if(!oe(r))throw new Error("Invalid CanActivate guard");o=lt(r(e,t))}return o.pipe(Object(y.a)())}));return Object(o.a)(r).pipe(Pe())}function Te(t,e,n){const a=e[e.length-1],r=e.slice(0,e.length-1).reverse().map(t=>function(t){const e=t.routeConfig?t.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:t,guards:e}:null}(t)).filter(t=>null!==t).map(e=>Object(u.a)(()=>{const r=e.guards.map(r=>{const o=Oe(r,e.node,n);let i;if(function(t){return t&&oe(t.canActivateChild)}(o))i=lt(o.canActivateChild(a,t));else{if(!oe(o))throw new Error("Invalid CanActivateChild guard");i=lt(o(a,t))}return i.pipe(Object(y.a)())});return Object(o.a)(r).pipe(Pe())}));return Object(o.a)(r).pipe(Pe())}class Se{}class ke{constructor(t,e,n,a,r,o){this.rootComponentType=t,this.config=e,this.urlTree=n,this.url=a,this.paramsInheritanceStrategy=r,this.relativeLinkResolution=o}recognize(){try{const t=Re(this.urlTree.root,[],[],this.config,this.relativeLinkResolution).segmentGroup,e=this.processSegmentGroup(this.config,t,"primary"),n=new zt([],Object.freeze({}),Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,{},"primary",this.rootComponentType,null,this.urlTree.root,-1,{}),a=new Et(n,e),r=new Gt(this.url,a);return this.inheritParamsAndData(r._root),Object(o.a)(r)}catch(t){return new c.a(e=>e.error(t))}}inheritParamsAndData(t){const e=t.value,n=Ft(e,this.paramsInheritanceStrategy);e.params=Object.freeze(n.params),e.data=Object.freeze(n.data),t.children.forEach(t=>this.inheritParamsAndData(t))}processSegmentGroup(t,e,n){return 0===e.segments.length&&e.hasChildren()?this.processChildren(t,e):this.processSegment(t,e,e.segments,n)}processChildren(t,e){const n=mt(e,(e,n)=>this.processSegmentGroup(t,e,n));return function(t){const e={};t.forEach(t=>{const n=e[t.value.outlet];if(n){const e=n.url.map(t=>t.toString()).join("/"),a=t.value.url.map(t=>t.toString()).join("/");throw new Error(`Two segments cannot have the same outlet name: '${e}' and '${a}'.`)}e[t.value.outlet]=t.value})}(n),n.sort((t,e)=>"primary"===t.value.outlet?-1:"primary"===e.value.outlet?1:t.value.outlet.localeCompare(e.value.outlet)),n}processSegment(t,e,n,a){for(const o of t)try{return this.processSegmentAgainstRoute(o,e,n,a)}catch(r){if(!(r instanceof Se))throw r}if(this.noLeftoversInUrl(e,n,a))return[];throw new Se}noLeftoversInUrl(t,e,n){return 0===e.length&&!t.children[n]}processSegmentAgainstRoute(t,e,n,a){if(t.redirectTo)throw new Se;if((t.outlet||"primary")!==a)throw new Se;let r,o=[],i=[];if("**"===t.path){const o=n.length>0?st(n).parameters:{};r=new zt(n,o,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,De(t),a,t.component,t,Ie(e),Ne(e)+n.length,Le(t))}else{const s=function(t,e,n){if(""===e.path){if("full"===e.pathMatch&&(t.hasChildren()||n.length>0))throw new Se;return{consumedSegments:[],lastChild:0,parameters:{}}}const a=(e.matcher||Q)(n,t,e);if(!a)throw new Se;const r={};ct(a.posParams,(t,e)=>{r[e]=t.path});const o=a.consumed.length>0?Object.assign({},r,a.consumed[a.consumed.length-1].parameters):r;return{consumedSegments:a.consumed,lastChild:a.consumed.length,parameters:o}}(e,t,n);o=s.consumedSegments,i=n.slice(s.lastChild),r=new zt(o,s.parameters,Object.freeze(Object.assign({},this.urlTree.queryParams)),this.urlTree.fragment,De(t),a,t.component,t,Ie(e),Ne(e)+o.length,Le(t))}const s=function(t){return t.children?t.children:t.loadChildren?t._loadedConfig.routes:[]}(t),{segmentGroup:c,slicedSegments:l}=Re(e,o,i,s,this.relativeLinkResolution);if(0===l.length&&c.hasChildren()){const t=this.processChildren(s,c);return[new Et(r,t)]}if(0===s.length&&0===l.length)return[new Et(r,[])];const d=this.processSegment(s,c,l,"primary");return[new Et(r,d)]}}function Ie(t){let e=t;for(;e._sourceSegment;)e=e._sourceSegment;return e}function Ne(t){let e=t,n=e._segmentIndexShift?e._segmentIndexShift:0;for(;e._sourceSegment;)e=e._sourceSegment,n+=e._segmentIndexShift?e._segmentIndexShift:0;return n-1}function Re(t,e,n,a,r){if(n.length>0&&function(t,e,n){return n.some(n=>Ae(t,e,n)&&"primary"!==Ee(n))}(t,n,a)){const r=new gt(e,function(t,e,n,a){const r={};r.primary=a,a._sourceSegment=t,a._segmentIndexShift=e.length;for(const o of n)if(""===o.path&&"primary"!==Ee(o)){const n=new gt([],{});n._sourceSegment=t,n._segmentIndexShift=e.length,r[Ee(o)]=n}return r}(t,e,a,new gt(n,t.children)));return r._sourceSegment=t,r._segmentIndexShift=e.length,{segmentGroup:r,slicedSegments:[]}}if(0===n.length&&function(t,e,n){return n.some(n=>Ae(t,e,n))}(t,n,a)){const o=new gt(t.segments,function(t,e,n,a,r,o){const i={};for(const s of a)if(Ae(t,n,s)&&!r[Ee(s)]){const n=new gt([],{});n._sourceSegment=t,n._segmentIndexShift="legacy"===o?t.segments.length:e.length,i[Ee(s)]=n}return Object.assign({},r,i)}(t,e,n,a,t.children,r));return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:n}}const o=new gt(t.segments,t.children);return o._sourceSegment=t,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:n}}function Ae(t,e,n){return(!(t.hasChildren()||e.length>0)||"full"!==n.pathMatch)&&""===n.path&&void 0===n.redirectTo}function Ee(t){return t.outlet||"primary"}function De(t){return t.data||{}}function Le(t){return t.resolve||{}}function qe(t,e,n,a){const r=Oe(t,e,a);return lt(r.resolve?r.resolve(e,n):r(e,n))}function je(t){return function(e){return e.pipe(Object(v.a)(e=>{const n=t(e);return n?Object(i.a)(n).pipe(Object(p.a)(()=>e)):Object(i.a)([e])}))}}class Fe{}class ze{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}}const Ge=new r.InjectionToken("ROUTES");class Be{constructor(t,e,n,a){this.loader=t,this.compiler=e,this.onLoadStartListener=n,this.onLoadEndListener=a}load(t,e){return this.onLoadStartListener&&this.onLoadStartListener(e),this.loadModuleFactory(e.loadChildren).pipe(Object(p.a)(n=>{this.onLoadEndListener&&this.onLoadEndListener(e);const a=n.create(t);return new tt(it(a.injector.get(Ge)).map(rt),a)}))}loadModuleFactory(t){return"string"==typeof t?Object(i.a)(this.loader.load(t)):lt(t()).pipe(Object(_.a)(t=>t instanceof r.NgModuleFactory?Object(o.a)(t):Object(i.a)(this.compiler.compileModuleAsync(t))))}}class Ve{}class Ye{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,e){return t}}function He(t){throw t}function Ue(t,e,n){return e.parse("/")}function We(t,e){return Object(o.a)(null)}class Ke{constructor(t,e,n,a,o,i,c,l){this.rootComponentType=t,this.urlSerializer=e,this.rootContexts=n,this.location=a,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.navigationId=0,this.isNgZoneEnabled=!1,this.events=new g.a,this.errorHandler=He,this.malformedUriErrorHandler=Ue,this.navigated=!1,this.lastSuccessfulId=-1,this.hooks={beforePreactivation:We,afterPreactivation:We},this.urlHandlingStrategy=new Ye,this.routeReuseStrategy=new ze,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="legacy",this.ngModule=o.get(r.NgModuleRef),this.console=o.get(r["ɵConsole"]);const d=o.get(r.NgZone);this.isNgZoneEnabled=d instanceof r.NgZone,this.resetConfig(l),this.currentUrlTree=new ut(new gt([],{}),{},null),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.configLoader=new Be(i,c,t=>this.triggerEvent(new B(t)),t=>this.triggerEvent(new V(t))),this.routerState=qt(this.currentUrlTree,this.rootComponentType),this.transitions=new s.a({id:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}setupNavigations(t){const e=this.events;return t.pipe(Object(x.a)(t=>0!==t.id),Object(p.a)(t=>Object.assign({},t,{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl)})),Object(v.a)(t=>{let n=!1,a=!1;return Object(o.a)(t).pipe(Object(S.a)(t=>{this.currentNavigation={id:t.id,initialUrl:t.currentRawUrl,extractedUrl:t.extractedUrl,trigger:t.source,extras:t.extras,previousNavigation:this.lastSuccessfulNavigation?Object.assign({},this.lastSuccessfulNavigation,{previousNavigation:null}):null}}),Object(v.a)(t=>{const n=!this.navigated||t.extractedUrl.toString()!==this.browserUrlTree.toString();if(("reload"===this.onSameUrlNavigation||n)&&this.urlHandlingStrategy.shouldProcessUrl(t.rawUrl))return Object(o.a)(t).pipe(Object(v.a)(t=>{const n=this.transitions.getValue();return e.next(new A(t.id,this.serializeUrl(t.extractedUrl),t.source,t.restoredState)),n!==this.transitions.getValue()?f.a:[t]}),Object(v.a)(t=>Promise.resolve(t)),(a=this.ngModule.injector,r=this.configLoader,i=this.urlSerializer,s=this.config,function(t){return t.pipe(Object(v.a)(t=>function(t,e,n,a,r){return new ge(t,e,n,a,r).apply()}(a,r,i,t.extractedUrl,s).pipe(Object(p.a)(e=>Object.assign({},t,{urlAfterRedirects:e})))))}),Object(S.a)(t=>{this.currentNavigation=Object.assign({},this.currentNavigation,{finalUrl:t.urlAfterRedirects})}),function(t,e,n,a,r){return function(o){return o.pipe(Object(_.a)(o=>function(t,e,n,a,r="emptyOnly",o="legacy"){return new ke(t,e,n,a,r,o).recognize()}(t,e,o.urlAfterRedirects,n(o.urlAfterRedirects),a,r).pipe(Object(p.a)(t=>Object.assign({},o,{targetSnapshot:t})))))}}(this.rootComponentType,this.config,t=>this.serializeUrl(t),this.paramsInheritanceStrategy,this.relativeLinkResolution),Object(S.a)(t=>{"eager"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(t.urlAfterRedirects,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),Object(S.a)(t=>{const n=new q(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);e.next(n)}));var a,r,i,s;if(n&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:n,extractedUrl:a,source:r,restoredState:i,extras:s}=t,c=new A(n,this.serializeUrl(a),r,i);e.next(c);const l=qt(a,this.rootComponentType).snapshot;return Object(o.a)(Object.assign({},t,{targetSnapshot:l,urlAfterRedirects:a,extras:Object.assign({},s,{skipLocationChange:!1,replaceUrl:!1})}))}return this.rawUrlTree=t.rawUrl,this.browserUrlTree=t.urlAfterRedirects,t.resolve(null),f.a}),je(t=>{const{targetSnapshot:e,id:n,extractedUrl:a,rawUrl:r,extras:{skipLocationChange:o,replaceUrl:i}}=t;return this.hooks.beforePreactivation(e,{navigationId:n,appliedUrlTree:a,rawUrlTree:r,skipLocationChange:!!o,replaceUrl:!!i})}),Object(S.a)(t=>{const e=new j(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),Object(p.a)(t=>Object.assign({},t,{guards:_e(t.targetSnapshot,t.currentSnapshot,this.rootContexts)})),function(t,e){return function(n){return n.pipe(Object(_.a)(n=>{const{targetSnapshot:a,currentSnapshot:r,guards:{canActivateChecks:s,canDeactivateChecks:c}}=n;return 0===c.length&&0===s.length?Object(o.a)(Object.assign({},n,{guardsResult:!0})):function(t,e,n,a){return Object(i.a)(t).pipe(Object(_.a)(t=>function(t,e,n,a,r){const i=e&&e.routeConfig?e.routeConfig.canDeactivate:null;if(!i||0===i.length)return Object(o.a)(!0);const s=i.map(o=>{const i=Oe(o,e,r);let s;if(function(t){return t&&oe(t.canDeactivate)}(i))s=lt(i.canDeactivate(t,e,n,a));else{if(!oe(i))throw new Error("Invalid CanDeactivate guard");s=lt(i(t,e,n,a))}return s.pipe(Object(y.a)())});return Object(o.a)(s).pipe(Pe())}(t.component,t.route,n,e,a)),Object(y.a)(t=>!0!==t,!0))}(c,a,r,t).pipe(Object(_.a)(n=>n&&"boolean"==typeof n?function(t,e,n,a){return Object(i.a)(e).pipe(Object(w.a)(e=>Object(i.a)([xe(e.route.parent,a),Me(e.route,a),Te(t,e.path,n),we(t,e.route,n)]).pipe(Object(m.a)(),Object(y.a)(t=>!0!==t,!0))),Object(y.a)(t=>!0!==t,!0))}(a,s,t,e):Object(o.a)(n)),Object(p.a)(t=>Object.assign({},n,{guardsResult:t})))}))}}(this.ngModule.injector,t=>this.triggerEvent(t)),Object(S.a)(t=>{if(ie(t.guardsResult)){const e=X(`Redirecting to "${this.serializeUrl(t.guardsResult)}"`);throw e.url=t.guardsResult,e}}),Object(S.a)(t=>{const e=new F(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot,!!t.guardsResult);this.triggerEvent(e)}),Object(x.a)(t=>{if(!t.guardsResult){this.resetUrlToCurrentUrlTree();const n=new D(t.id,this.serializeUrl(t.extractedUrl),"");return e.next(n),t.resolve(!1),!1}return!0}),je(t=>{if(t.guards.canActivateChecks.length)return Object(o.a)(t).pipe(Object(S.a)(t=>{const e=new z(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}),(e=this.paramsInheritanceStrategy,n=this.ngModule.injector,function(t){return t.pipe(Object(_.a)(t=>{const{targetSnapshot:a,guards:{canActivateChecks:r}}=t;return r.length?Object(i.a)(r).pipe(Object(w.a)(t=>function(t,e,n,a){return function(t,e,n,a){const r=Object.keys(t);if(0===r.length)return Object(o.a)({});if(1===r.length){const o=r[0];return qe(t[o],e,n,a).pipe(Object(p.a)(t=>({[o]:t})))}const s={};return Object(i.a)(r).pipe(Object(_.a)(r=>qe(t[r],e,n,a).pipe(Object(p.a)(t=>(s[r]=t,t))))).pipe(Object(h.a)(),Object(p.a)(()=>s))}(t._resolve,t,e,a).pipe(Object(p.a)(e=>(t._resolvedData=e,t.data=Object.assign({},t.data,Ft(t,n).resolve),null)))}(t.route,a,e,n)),Object(T.a)((t,e)=>t),Object(p.a)(e=>t)):Object(o.a)(t)}))}),Object(S.a)(t=>{const e=new G(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(t.urlAfterRedirects),t.targetSnapshot);this.triggerEvent(e)}));var e,n}),je(t=>{const{targetSnapshot:e,id:n,extractedUrl:a,rawUrl:r,extras:{skipLocationChange:o,replaceUrl:i}}=t;return this.hooks.afterPreactivation(e,{navigationId:n,appliedUrlTree:a,rawUrlTree:r,skipLocationChange:!!o,replaceUrl:!!i})}),Object(p.a)(t=>{const e=function(t,e,n){const a=function t(e,n,a){if(a&&e.shouldReuseRoute(n.value,a.value.snapshot)){const r=a.value;r._futureSnapshot=n.value;const o=function(e,n,a){return n.children.map(n=>{for(const r of a.children)if(e.shouldReuseRoute(r.value.snapshot,n.value))return t(e,n,r);return t(e,n)})}(e,n,a);return new Et(r,o)}{const a=e.retrieve(n.value);if(a){const t=a.route;return function t(e,n){if(e.value.routeConfig!==n.value.routeConfig)throw new Error("Cannot reattach ActivatedRouteSnapshot created from a different route");if(e.children.length!==n.children.length)throw new Error("Cannot reattach ActivatedRouteSnapshot with a different number of children");n.value._futureSnapshot=e.value;for(let a=0;a<e.children.length;++a)t(e.children[a],n.children[a])}(n,t),t}{const a=new jt(new s.a((r=n.value).url),new s.a(r.params),new s.a(r.queryParams),new s.a(r.fragment),new s.a(r.data),r.outlet,r.component,r),o=n.children.map(n=>t(e,n));return new Et(a,o)}}var r}(t,e._root,n?n._root:void 0);return new Lt(a,e)}(this.routeReuseStrategy,t.targetSnapshot,t.currentRouterState);return Object.assign({},t,{targetRouterState:e})}),Object(S.a)(t=>{this.currentUrlTree=t.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl),this.routerState=t.targetRouterState,"deferred"===this.urlUpdateStrategy&&(t.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,!!t.extras.replaceUrl,t.id,t.extras.state),this.browserUrlTree=t.urlAfterRedirects)}),(r=this.rootContexts,c=this.routeReuseStrategy,l=t=>this.triggerEvent(t),Object(p.a)(t=>(new ae(c,t.targetRouterState,t.currentRouterState,l).activate(r),t))),Object(S.a)({next(){n=!0},complete(){n=!0}}),Object(k.a)(()=>{if(!n&&!a){this.resetUrlToCurrentUrlTree();const n=new D(t.id,this.serializeUrl(t.extractedUrl),`Navigation ID ${t.id} is not equal to the current navigation id ${this.navigationId}`);e.next(n),t.resolve(!1)}this.currentNavigation=null}),Object(b.a)(n=>{if(a=!0,(r=n)&&r.ngNavigationCancelingError){const a=ie(n.url);a||(this.navigated=!0,this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl));const r=new D(t.id,this.serializeUrl(t.extractedUrl),n.message);e.next(r),t.resolve(!1),a&&this.navigateByUrl(n.url)}else{this.resetStateAndUrl(t.currentRouterState,t.currentUrlTree,t.rawUrl);const a=new L(t.id,this.serializeUrl(t.extractedUrl),n);e.next(a);try{t.resolve(this.errorHandler(n))}catch(o){t.reject(o)}}var r;return f.a}));var r,c,l}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}getTransition(){const t=this.transitions.value;return t.urlAfterRedirects=this.browserUrlTree,t}setTransition(t){this.transitions.next(Object.assign({},this.getTransition(),t))}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{let e=this.parseUrl(t.url);const n="popstate"===t.type?"popstate":"hashchange",a=t.state&&t.state.navigationId?t.state:null;setTimeout(()=>{this.scheduleNavigation(e,n,a,{replaceUrl:!0})},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){et(t),this.config=t.map(rt),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=null)}createUrlTree(t,e={}){const{relativeTo:n,queryParams:a,fragment:o,preserveQueryParams:i,queryParamsHandling:s,preserveFragment:c}=e;Object(r.isDevMode)()&&i&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead.");const l=n||this.routerState.root,d=c?this.currentUrlTree.fragment:o;let u=null;if(s)switch(s){case"merge":u=Object.assign({},this.currentUrlTree.queryParams,a);break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=a||null}else u=i?this.currentUrlTree.queryParams:a||null;return null!==u&&(u=this.removeEmptyProps(u)),function(t,e,n,a,r){if(0===n.length)return Wt(e.root,e.root,e,a,r);const o=function(t){if("string"==typeof t[0]&&1===t.length&&"/"===t[0])return new Kt(!0,0,t);let e=0,n=!1;const a=t.reduce((t,a,r)=>{if("object"==typeof a&&null!=a){if(a.outlets){const e={};return ct(a.outlets,(t,n)=>{e[n]="string"==typeof t?t.split("/"):t}),[...t,{outlets:e}]}if(a.segmentPath)return[...t,a.segmentPath]}return"string"!=typeof a?[...t,a]:0===r?(a.split("/").forEach((a,r)=>{0==r&&"."===a||(0==r&&""===a?n=!0:".."===a?e++:""!=a&&t.push(a))}),t):[...t,a]},[]);return new Kt(n,e,a)}(n);if(o.toRoot())return Wt(e.root,new gt([],{}),e,a,r);const i=function(t,e,n){if(t.isAbsolute)return new $t(e.root,!0,0);if(-1===n.snapshot._lastPathIndex)return new $t(n.snapshot._urlSegment,!0,0);const a=Ut(t.commands[0])?0:1;return function(t,e,n){let a=t,r=e,o=n;for(;o>r;){if(o-=r,a=a.parent,!a)throw new Error("Invalid number of '../'");r=a.segments.length}return new $t(a,!1,r-o)}(n.snapshot._urlSegment,n.snapshot._lastPathIndex+a,t.numberOfDoubleDots)}(o,e,t),s=i.processChildren?Xt(i.segmentGroup,i.index,o.commands):Jt(i.segmentGroup,i.index,o.commands);return Wt(i.segmentGroup,s,e,a,r)}(l,this.currentUrlTree,t,u,d)}navigateByUrl(t,e={skipLocationChange:!1}){Object(r.isDevMode)()&&this.isNgZoneEnabled&&!r.NgZone.isInAngularZone()&&this.console.warn("Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?");const n=ie(t)?t:this.parseUrl(t),a=this.urlHandlingStrategy.merge(n,this.rawUrlTree);return this.scheduleNavigation(a,"imperative",null,e)}navigate(t,e={skipLocationChange:!1}){return function(t){for(let e=0;e<t.length;e++){const n=t[e];if(null==n)throw new Error(`The requested path contains ${n} segment at index ${e}`)}}(t),this.navigateByUrl(this.createUrlTree(t,e),e)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){let e;try{e=this.urlSerializer.parse(t)}catch(n){e=this.malformedUriErrorHandler(n,this.urlSerializer,t)}return e}isActive(t,e){if(ie(t))return dt(this.currentUrlTree,t,e);const n=this.parseUrl(t);return dt(this.currentUrlTree,n,e)}removeEmptyProps(t){return Object.keys(t).reduce((e,n)=>{const a=t[n];return null!=a&&(e[n]=a),e},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.events.next(new E(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.currentNavigation=null,t.resolve(!0)},t=>{this.console.warn("Unhandled Navigation Error: ")})}scheduleNavigation(t,e,n,a){const r=this.getTransition();if(r&&"imperative"!==e&&"imperative"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(r&&"hashchange"==e&&"popstate"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);if(r&&"popstate"==e&&"hashchange"===r.source&&r.rawUrl.toString()===t.toString())return Promise.resolve(!0);let o=null,i=null;const s=new Promise((t,e)=>{o=t,i=e}),c=++this.navigationId;return this.setTransition({id:c,source:e,restoredState:n,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:a,resolve:o,reject:i,promise:s,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),s.catch(t=>Promise.reject(t))}setBrowserUrl(t,e,n,a){const r=this.urlSerializer.serialize(t);a=a||{},this.location.isCurrentPathEqualTo(r)||e?this.location.replaceState(r,"",Object.assign({},a,{navigationId:n})):this.location.go(r,"",Object.assign({},a,{navigationId:n}))}resetStateAndUrl(t,e,n){this.routerState=t,this.currentUrlTree=e,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n),this.resetUrlToCurrentUrlTree()}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",{navigationId:this.lastSuccessfulId})}}class $e{constructor(t,e,n,a,r){this.router=t,this.route=e,this.commands=[],null==n&&a.setAttribute(r.nativeElement,"tabindex","0")}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(r.isDevMode)()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated!, use queryParamsHandling instead."),this.preserve=t}onClick(){const t={skipLocationChange:Je(this.skipLocationChange),replaceUrl:Je(this.replaceUrl)};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:Je(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:Je(this.preserveFragment)})}}class Ze{constructor(t,e,n){this.router=t,this.route=e,this.locationStrategy=n,this.commands=[],this.subscription=t.events.subscribe(t=>{t instanceof E&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:[]}set preserveQueryParams(t){Object(r.isDevMode)()&&console&&console.warn&&console.warn("preserveQueryParams is deprecated, use queryParamsHandling instead."),this.preserve=t}ngOnChanges(t){this.updateTargetUrlAndHref()}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,e,n,a){if(0!==t||e||n||a)return!0;if("string"==typeof this.target&&"_self"!=this.target)return!0;const r={skipLocationChange:Je(this.skipLocationChange),replaceUrl:Je(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,r),!1}updateTargetUrlAndHref(){this.href=this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree))}get urlTree(){return this.router.createUrlTree(this.commands,{relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,preserveQueryParams:Je(this.preserve),queryParamsHandling:this.queryParamsHandling,preserveFragment:Je(this.preserveFragment)})}}function Je(t){return""===t||!!t}class Xe{constructor(t,e,n,a,r){this.router=t,this.element=e,this.renderer=n,this.link=a,this.linkWithHref=r,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.subscription=t.events.subscribe(t=>{t instanceof E&&this.update()})}ngAfterContentInit(){this.links.changes.subscribe(t=>this.update()),this.linksWithHrefs.changes.subscribe(t=>this.update()),this.update()}set routerLinkActive(t){const e=Array.isArray(t)?t:t.split(" ");this.classes=e.filter(t=>!!t)}ngOnChanges(t){this.update()}ngOnDestroy(){this.subscription.unsubscribe()}update(){this.links&&this.linksWithHrefs&&this.router.navigated&&Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.classes.forEach(e=>{t?this.renderer.addClass(this.element.nativeElement,e):this.renderer.removeClass(this.element.nativeElement,e)}))})}isLinkActive(t){return e=>t.isActive(e.urlTree,this.routerLinkActiveOptions.exact)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}class Qe{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.children=new tn,this.attachRef=null}}class tn{constructor(){this.contexts=new Map}onChildOutletCreated(t,e){const n=this.getOrCreateContext(t);n.outlet=e,this.contexts.set(t,n)}onChildOutletDestroyed(t){const e=this.getContext(t);e&&(e.outlet=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let e=this.getContext(t);return e||(e=new Qe,this.contexts.set(t,e)),e}getContext(t){return this.contexts.get(t)||null}}class en{constructor(t,e,n,a,o){this.parentContexts=t,this.location=e,this.resolver=n,this.changeDetector=o,this.activated=null,this._activatedRoute=null,this.activateEvents=new r.EventEmitter,this.deactivateEvents=new r.EventEmitter,this.name=a||"primary",t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.resolver||null))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new Error("Outlet is not activated");return this.activated.instance}get activatedRoute(){if(!this.activated)throw new Error("Outlet is not activated");return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new Error("Outlet is not activated");this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,t}attach(t,e){this.activated=t,this._activatedRoute=e,this.location.insert(t.hostView)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,e){if(this.isActivated)throw new Error("Cannot activate an already activated outlet");this._activatedRoute=t;const n=(e=e||this.resolver).resolveComponentFactory(t._futureSnapshot.routeConfig.component),a=this.parentContexts.getOrCreateContext(this.name).children,r=new nn(t,a,this.location.injector);this.activated=this.location.createComponent(n,this.location.length,r),this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}class nn{constructor(t,e,n){this.route=t,this.childContexts=e,this.parent=n}get(t,e){return t===jt?this.route:t===tn?this.childContexts:this.parent.get(t,e)}}class an{}class rn{preload(t,e){return e().pipe(Object(b.a)(()=>Object(o.a)(null)))}}class on{preload(t,e){return Object(o.a)(null)}}class sn{constructor(t,e,n,a,r){this.router=t,this.injector=a,this.preloadingStrategy=r,this.loader=new Be(e,n,e=>t.triggerEvent(new B(e)),e=>t.triggerEvent(new V(e)))}setUpPreloading(){this.subscription=this.router.events.pipe(Object(x.a)(t=>t instanceof E),Object(w.a)(()=>this.preload())).subscribe(()=>{})}preload(){const t=this.injector.get(r.NgModuleRef);return this.processRoutes(t,this.router.config)}ngOnDestroy(){this.subscription.unsubscribe()}processRoutes(t,e){const n=[];for(const a of e)if(a.loadChildren&&!a.canLoad&&a._loadedConfig){const t=a._loadedConfig;n.push(this.processRoutes(t.module,t.routes))}else a.loadChildren&&!a.canLoad?n.push(this.preloadConfig(t,a)):a.children&&n.push(this.processRoutes(t,a.children));return Object(i.a)(n).pipe(Object(I.a)(),Object(p.a)(t=>{}))}preloadConfig(t,e){return this.preloadingStrategy.preload(e,()=>this.loader.load(t.injector,e).pipe(Object(_.a)(t=>(e._loadedConfig=t,this.processRoutes(t.module,t.routes)))))}}class cn{constructor(t,e,n={}){this.router=t,this.viewportScroller=e,this.options=n,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},n.scrollPositionRestoration=n.scrollPositionRestoration||"disabled",n.anchorScrolling=n.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof A?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof E&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof K&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,e){this.router.triggerEvent(new K(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,e))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}const ln=new r.InjectionToken("ROUTER_CONFIGURATION"),dn=new r.InjectionToken("ROUTER_FORROOT_GUARD"),un=[a.Location,{provide:ht,useClass:bt},{provide:Ke,useFactory:yn,deps:[r.ApplicationRef,ht,tn,a.Location,r.Injector,r.NgModuleFactoryLoader,r.Compiler,Ge,ln,[Ve,new r.Optional],[Fe,new r.Optional]]},tn,{provide:jt,useFactory:_n,deps:[Ke]},{provide:r.NgModuleFactoryLoader,useClass:r.SystemJsNgModuleLoader},sn,on,rn,{provide:ln,useValue:{enableTracing:!1}}];function gn(){return new r.NgProbeToken("Router",Ke)}class fn{constructor(t,e){}static forRoot(t,e){return{ngModule:fn,providers:[un,bn(t),{provide:dn,useFactory:hn,deps:[[Ke,new r.Optional,new r.SkipSelf]]},{provide:ln,useValue:e||{}},{provide:a.LocationStrategy,useFactory:mn,deps:[a.PlatformLocation,[new r.Inject(a.APP_BASE_HREF),new r.Optional],ln]},{provide:cn,useFactory:pn,deps:[Ke,a.ViewportScroller,ln]},{provide:an,useExisting:e&&e.preloadingStrategy?e.preloadingStrategy:on},{provide:r.NgProbeToken,multi:!0,useFactory:gn},[On,{provide:r.APP_INITIALIZER,multi:!0,useFactory:vn,deps:[On]},{provide:Pn,useFactory:Cn,deps:[On]},{provide:r.APP_BOOTSTRAP_LISTENER,multi:!0,useExisting:Pn}]]}}static forChild(t){return{ngModule:fn,providers:[bn(t)]}}}function pn(t,e,n){return n.scrollOffset&&e.setOffset(n.scrollOffset),new cn(t,e,n)}function mn(t,e,n={}){return n.useHash?new a.HashLocationStrategy(t,e):new a.PathLocationStrategy(t,e)}function hn(t){if(t)throw new Error("RouterModule.forRoot() called twice. Lazy loaded modules should use RouterModule.forChild() instead.");return"guarded"}function bn(t){return[{provide:r.ANALYZE_FOR_ENTRY_COMPONENTS,multi:!0,useValue:t},{provide:Ge,multi:!0,useValue:t}]}function yn(t,e,n,a,r,o,i,s,c={},l,d){const u=new Ke(null,e,n,a,r,o,i,it(s));if(l&&(u.urlHandlingStrategy=l),d&&(u.routeReuseStrategy=d),c.errorHandler&&(u.errorHandler=c.errorHandler),c.malformedUriErrorHandler&&(u.malformedUriErrorHandler=c.malformedUriErrorHandler),c.enableTracing){const t=Object(N.q)();u.events.subscribe(e=>{t.logGroup(`Router Event: ${e.constructor.name}`),t.log(e.toString()),t.log(e),t.logGroupEnd()})}return c.onSameUrlNavigation&&(u.onSameUrlNavigation=c.onSameUrlNavigation),c.paramsInheritanceStrategy&&(u.paramsInheritanceStrategy=c.paramsInheritanceStrategy),c.urlUpdateStrategy&&(u.urlUpdateStrategy=c.urlUpdateStrategy),c.relativeLinkResolution&&(u.relativeLinkResolution=c.relativeLinkResolution),u}function _n(t){return t.routerState.root}class On{constructor(t){this.injector=t,this.initNavigation=!1,this.resultOfPreactivationDone=new g.a}appInitializer(){return this.injector.get(a.LOCATION_INITIALIZED,Promise.resolve(null)).then(()=>{let t=null;const e=new Promise(e=>t=e),n=this.injector.get(Ke),a=this.injector.get(ln);if(this.isLegacyDisabled(a)||this.isLegacyEnabled(a))t(!0);else if("disabled"===a.initialNavigation)n.setUpLocationChangeListener(),t(!0);else{if("enabled"!==a.initialNavigation)throw new Error(`Invalid initialNavigation options: '${a.initialNavigation}'`);n.hooks.afterPreactivation=()=>this.initNavigation?Object(o.a)(null):(this.initNavigation=!0,t(!0),this.resultOfPreactivationDone),n.initialNavigation()}return e})}bootstrapListener(t){const e=this.injector.get(ln),n=this.injector.get(sn),a=this.injector.get(cn),o=this.injector.get(Ke),i=this.injector.get(r.ApplicationRef);t===i.components[0]&&(this.isLegacyEnabled(e)?o.initialNavigation():this.isLegacyDisabled(e)&&o.setUpLocationChangeListener(),n.setUpPreloading(),a.init(),o.resetRootComponentType(i.componentTypes[0]),this.resultOfPreactivationDone.next(null),this.resultOfPreactivationDone.complete())}isLegacyEnabled(t){return"legacy_enabled"===t.initialNavigation||!0===t.initialNavigation||void 0===t.initialNavigation}isLegacyDisabled(t){return"legacy_disabled"===t.initialNavigation||!1===t.initialNavigation}}function vn(t){return t.appInitializer.bind(t)}function Cn(t){return t.bootstrapListener.bind(t)}const Pn=new r.InjectionToken("Router Initializer")},iSVu:function(t,e,n){var a=n("xs3f"),r=Function.toString;"function"!=typeof a.inspectSource&&(a.inspectSource=function(t){return r.call(t)}),t.exports=a.inspectSource},iYuL:function(t,e,n){!function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),a=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(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;t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,a){return t?/-MMM-/.test(a)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,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:a,longMonthsParse:a,shortMonthsParse:a,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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ñana 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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n("wd/R"))},idmN:function(t,e,n){var a=n("ZWtO"),r=n("FZoo"),o=n("4uTw");t.exports=function(t,e,n){for(var i=-1,s=e.length,c={};++i<s;){var l=e[i],d=a(t,l);n(d,l)&&r(c,o(l,t),d)}return c}},ienR:function(t,e,n){"use strict";n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return D})),n.d(e,"c",(function(){return L})),n.d(e,"d",(function(){return q})),n.d(e,"e",(function(){return j})),n.d(e,"f",(function(){return F})),n.d(e,"g",(function(){return X})),n.d(e,"h",(function(){return z})),n.d(e,"i",(function(){return G})),n.d(e,"j",(function(){return h})),n.d(e,"k",(function(){return nt})),n.d(e,"l",(function(){return tt})),n.d(e,"m",(function(){return et})),n.d(e,"n",(function(){return it})),n.d(e,"o",(function(){return at})),n.d(e,"p",(function(){return rt})),n.d(e,"q",(function(){return ot})),n.d(e,"r",(function(){return E})),n.d(e,"s",(function(){return b})),n.d(e,"t",(function(){return m})),n.d(e,"u",(function(){return H})),n.d(e,"v",(function(){return V})),n.d(e,"w",(function(){return W})),n.d(e,"x",(function(){return Z})),n.d(e,"y",(function(){return B})),n.d(e,"z",(function(){return K})),n.d(e,"A",(function(){return $})),n.d(e,"B",(function(){return J})),n.d(e,"C",(function(){return Y}));var a=n("8Y7J"),r=n("pLZG"),o=n("lJxs"),i=n("IzEk"),s=n("xj/R"),c=n("2Vo4"),l=n("AfCQ"),d=n("2uy1"),u=(n("GS7A"),n("z/SZ")),g=(n("s7LF"),n("hpHm"));class f{constructor(){this.adaptivePosition=!1,this.isAnimated=!1,this.containerClass="theme-green",this.displayMonths=1,this.showWeekNumbers=!0,this.dateInputFormat="L",this.rangeSeparator=" - ",this.rangeInputFormat="L",this.monthTitle="MMMM",this.yearTitle="YYYY",this.dayLabel="D",this.monthLabel="MMMM",this.yearLabel="YYYY",this.weekNumbers="w"}}class p{constructor(){this._customRangesFish=[]}set minDate(t){this._effects.setMinDate(t)}set maxDate(t){this._effects.setMaxDate(t)}set daysDisabled(t){this._effects.setDaysDisabled(t)}set datesDisabled(t){this._effects.setDatesDisabled(t)}set isDisabled(t){this._effects.setDisabled(t)}set dateCustomClasses(t){this._effects.setDateCustomClasses(t)}setViewMode(t){}navigateTo(t){}dayHoverHandler(t){}weekHoverHandler(t){}monthHoverHandler(t){}yearHoverHandler(t){}daySelectHandler(t){}monthSelectHandler(t){}yearSelectHandler(t){}_stopPropagation(t){t.stopPropagation()}}let m=(()=>{class t{calculate(){return{type:t.CALCULATE}}format(){return{type:t.FORMAT}}flag(){return{type:t.FLAG}}select(e){return{type:t.SELECT,payload:e}}changeViewMode(e){return{type:t.CHANGE_VIEWMODE,payload:e}}navigateTo(e){return{type:t.NAVIGATE_TO,payload:e}}navigateStep(e){return{type:t.NAVIGATE_OFFSET,payload:e}}setOptions(e){return{type:t.SET_OPTIONS,payload:e}}selectRange(e){return{type:t.SELECT_RANGE,payload:e}}hoverDay(e){return{type:t.HOVER,payload:e.isHovered?e.cell.date:null}}minDate(e){return{type:t.SET_MIN_DATE,payload:e}}maxDate(e){return{type:t.SET_MAX_DATE,payload:e}}daysDisabled(e){return{type:t.SET_DAYSDISABLED,payload:e}}datesDisabled(e){return{type:t.SET_DATESDISABLED,payload:e}}isDisabled(e){return{type:t.SET_IS_DISABLED,payload:e}}setDateCustomClasses(e){return{type:t.SET_DATE_CUSTOM_CLASSES,payload:e}}setLocale(e){return{type:t.SET_LOCALE,payload:e}}}return t.CALCULATE="[datepicker] calculate dates matrix",t.FORMAT="[datepicker] format datepicker values",t.FLAG="[datepicker] set flags",t.SELECT="[datepicker] select date",t.NAVIGATE_OFFSET="[datepicker] shift view date",t.NAVIGATE_TO="[datepicker] change view date",t.SET_OPTIONS="[datepicker] update render options",t.HOVER="[datepicker] hover date",t.CHANGE_VIEWMODE="[datepicker] switch view mode",t.SET_MIN_DATE="[datepicker] set min date",t.SET_MAX_DATE="[datepicker] set max date",t.SET_DAYSDISABLED="[datepicker] set days disabled",t.SET_DATESDISABLED="[datepicker] set dates disabled",t.SET_IS_DISABLED="[datepicker] set is disabled",t.SET_DATE_CUSTOM_CLASSES="[datepicker] set date custom classes",t.SET_LOCALE="[datepicker] set datepicker locale",t.SELECT_RANGE="[daterangepicker] select dates range",t})();class h{constructor(){this._defaultLocale="en",this._locale=new c.a(this._defaultLocale),this._localeChange=this._locale.asObservable()}get locale(){return this._locale}get localeChange(){return this._localeChange}get currentLocale(){return this._locale.getValue()}use(t){t!==this.currentLocale&&this._locale.next(t)}}class b{constructor(t,e){this._actions=t,this._localeService=e,this._subs=[]}init(t){return this._store=t,this}setValue(t){this._store.dispatch(this._actions.select(t))}setRangeValue(t){this._store.dispatch(this._actions.selectRange(t))}setMinDate(t){return this._store.dispatch(this._actions.minDate(t)),this}setMaxDate(t){return this._store.dispatch(this._actions.maxDate(t)),this}setDaysDisabled(t){return this._store.dispatch(this._actions.daysDisabled(t)),this}setDatesDisabled(t){return this._store.dispatch(this._actions.datesDisabled(t)),this}setDisabled(t){return this._store.dispatch(this._actions.isDisabled(t)),this}setDateCustomClasses(t){return this._store.dispatch(this._actions.setDateCustomClasses(t)),this}setOptions(t){const e=Object.assign({locale:this._localeService.currentLocale},t);return this._store.dispatch(this._actions.setOptions(e)),this}setBindings(t){return t.daysCalendar=this._store.select(t=>t.flaggedMonths).pipe(Object(r.a)(t=>!!t)),t.monthsCalendar=this._store.select(t=>t.flaggedMonthsCalendar).pipe(Object(r.a)(t=>!!t)),t.yearsCalendar=this._store.select(t=>t.yearsCalendarFlagged).pipe(Object(r.a)(t=>!!t)),t.viewMode=this._store.select(t=>t.view.mode),t.options=this._store.select(t=>t.showWeekNumbers).pipe(Object(o.a)(t=>({showWeekNumbers:t}))),this}setEventHandlers(t){return t.setViewMode=t=>{this._store.dispatch(this._actions.changeViewMode(t))},t.navigateTo=t=>{this._store.dispatch(this._actions.navigateStep(t.step))},t.dayHoverHandler=t=>{const e=t.cell;e.isOtherMonth||e.isDisabled||(this._store.dispatch(this._actions.hoverDay(t)),e.isHovered=t.isHovered)},t.monthHoverHandler=t=>{t.cell.isHovered=t.isHovered},t.yearHoverHandler=t=>{t.cell.isHovered=t.isHovered},t.monthSelectHandler=t=>{t.isDisabled||this._store.dispatch(this._actions.navigateTo({unit:{month:Object(s.l)(t.date),year:Object(s.j)(t.date)},viewMode:"day"}))},t.yearSelectHandler=t=>{t.isDisabled||this._store.dispatch(this._actions.navigateTo({unit:{year:Object(s.j)(t.date)},viewMode:"month"}))},this}registerDatepickerSideEffects(){return this._subs.push(this._store.select(t=>t.view).subscribe(t=>{this._store.dispatch(this._actions.calculate())})),this._subs.push(this._store.select(t=>t.monthsModel).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.format()))),this._subs.push(this._store.select(t=>t.formattedMonths).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.selectedDate).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.selectedRange).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.monthsCalendar).subscribe(()=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.yearsCalendarModel).pipe(Object(r.a)(t=>!!t)).subscribe(()=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.hoveredDate).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._store.select(t=>t.dateCustomClasses).pipe(Object(r.a)(t=>!!t)).subscribe(t=>this._store.dispatch(this._actions.flag()))),this._subs.push(this._localeService.localeChange.subscribe(t=>this._store.dispatch(this._actions.setLocale(t)))),this}destroy(){for(const t of this._subs)t.unsubscribe()}}const y={date:new Date,mode:"day"},_=Object.assign(new f,{locale:"en",view:y,selectedRange:[],monthViewOptions:{width:7,height:6}});function O(t,e,n){const a=e&&Object(s.p)(Object(s.d)(t,"month"),e,"day"),r=n&&Object(s.n)(Object(s.G)(t,"month"),n,"day");return a||r}function v(t,e,n){const a=e&&Object(s.p)(Object(s.d)(t,"year"),e,"day"),r=n&&Object(s.n)(Object(s.G)(t,"year"),n,"day");return a||r}function C(t,e){let n=t.initialDate;const a=new Array(t.height);for(let r=0;r<t.height;r++){a[r]=new Array(t.width);for(let o=0;o<t.width;o++)a[r][o]=e(n),n=Object(s.F)(n,t.shift)}return a}function P(t,e){const n=Object(s.i)(t),a=function(t,e){if(Object(s.t)(t,e.firstDayOfWeek))return t;const n=function(t,e){if(0===e)return t;const n=t-e%7;return n<0?n+7:n}(Object(s.h)(t),e.firstDayOfWeek);return Object(s.F)(t,{day:-n})}(n,e);return{daysMatrix:C({width:e.width,height:e.height,initialDate:a,shift:{day:1}},t=>t),month:n}}function M(t){const e=Object(s.k)(t),n=e.weekdaysShort(),a=e.firstDayOfWeek();return[...n.slice(a),...n.slice(0,a)]}function x(t,e){return!e||t>=e}const w={month:1};function T(t,e){return{months:C({width:3,height:4,initialDate:Object(s.G)(t,"year"),shift:w},t=>({date:t,label:Object(s.f)(t,e.monthLabel,e.locale)})),monthTitle:"",yearTitle:Object(s.f)(t,e.yearTitle,e.locale)}}const S=-1*(Math.floor(8)-1),k={year:1};function I(t,e){const n=C({width:4,height:4,initialDate:Object(s.F)(t,{year:S}),shift:k},t=>({date:t,label:Object(s.f)(t,e.yearLabel,e.locale)}));return{years:n,monthTitle:"",yearTitle:function(t,e){return`${Object(s.f)(t[0][0].date,e.yearTitle,e.locale)} - ${Object(s.f)(t[3][3].date,e.yearTitle,e.locale)}`}(n,e)}}function N(t=_,e){switch(e.type){case m.CALCULATE:return function(t){const e=t.displayMonths;let n=t.view.date;if("day"===t.view.mode){t.monthViewOptions.firstDayOfWeek=Object(s.k)(t.locale).firstDayOfWeek();const a=new Array(e);for(let r=0;r<e;r++)a[r]=P(n,t.monthViewOptions),n=Object(s.F)(n,{month:1});return Object.assign({},t,{monthsModel:a})}if("month"===t.view.mode){const a=new Array(e);for(let r=0;r<e;r++)a[r]=T(n,R(t)),n=Object(s.F)(n,{year:1});return Object.assign({},t,{monthsCalendar:a})}if("year"===t.view.mode){const a=new Array(e);for(let r=0;r<e;r++)a[r]=I(n,R(t)),n=Object(s.F)(n,{year:16});return Object.assign({},t,{yearsCalendarModel:a})}return t}(t);case m.FORMAT:return function(t,e){if("day"===t.view.mode){const e=t.monthsModel.map((e,n)=>function(t,e,n){return{month:t.month,monthTitle:Object(s.f)(t.month,e.monthTitle,e.locale),yearTitle:Object(s.f)(t.month,e.yearTitle,e.locale),weekNumbers:(a=t.daysMatrix,r=e.weekNumbers,o=e.locale,a.map(t=>t[0]?Object(s.f)(t[0],r,o):"")),weekdays:M(e.locale),weeks:t.daysMatrix.map((t,a)=>({days:t.map((t,r)=>({date:t,label:Object(s.f)(t,e.dayLabel,e.locale),monthIndex:n,weekIndex:a,dayIndex:r}))}))};var a,r,o}(e,R(t),n));return Object.assign({},t,{formattedMonths:e})}const n=t.displayMonths;let a=t.view.date;if("month"===t.view.mode){const e=new Array(n);for(let r=0;r<n;r++)e[r]=T(a,R(t)),a=Object(s.F)(a,{year:1});return Object.assign({},t,{monthsCalendar:e})}if("year"===t.view.mode){const e=new Array(n);for(let r=0;r<n;r++)e[r]=I(a,R(t)),a=Object(s.F)(a,{year:16});return Object.assign({},t,{yearsCalendarModel:e})}return t}(t);case m.FLAG:return function(t,e){if("day"===t.view.mode){const e=t.formattedMonths.map((e,n)=>function(t,e){return t.weeks.forEach(n=>{n.days.forEach((a,r)=>{const o=!Object(s.w)(a.date,t.month),i=!o&&Object(s.v)(a.date,e.hoveredDate),c=!o&&e.selectedRange&&Object(s.v)(a.date,e.selectedRange[0]),l=!o&&e.selectedRange&&Object(s.v)(a.date,e.selectedRange[1]),d=!o&&Object(s.v)(a.date,e.selectedDate)||c||l,u=!o&&e.selectedRange&&function(t,e,n){return!(!t||!e[0])&&(e[1]?t>e[0]&&t<=e[1]:!!n&&t>e[0]&&t<=n)}(a.date,e.selectedRange,e.hoveredDate),g=e.isDisabled||Object(s.p)(a.date,e.minDate,"day")||Object(s.n)(a.date,e.maxDate,"day")||Object(s.s)(a.date,e.daysDisabled)||(f=a.date,!(void 0===(p=e.datesDisabled)||!p||!p.length)&&p.some(t=>Object(s.u)(f,t,"date")));var f,p;const m=new Date,h=!o&&Object(s.v)(a.date,m),b=e.dateCustomClasses&&e.dateCustomClasses.map(t=>Object(s.v)(a.date,t.date)?t.classes:[]).reduce((t,e)=>t.concat(e),[]).join(" ")||"",y=Object.assign({},a,{isOtherMonth:o,isHovered:i,isSelected:d,isSelectionStart:c,isSelectionEnd:l,isInRange:u,isDisabled:g,isToday:h,customClasses:b});a.isOtherMonth===y.isOtherMonth&&a.isHovered===y.isHovered&&a.isSelected===y.isSelected&&a.isSelectionStart===y.isSelectionStart&&a.isSelectionEnd===y.isSelectionEnd&&a.isDisabled===y.isDisabled&&a.isInRange===y.isInRange&&a.customClasses===y.customClasses||(n.days[r]=y)})}),t.hideLeftArrow=e.isDisabled||e.monthIndex>0&&e.monthIndex!==e.displayMonths,t.hideRightArrow=e.isDisabled||e.monthIndex<e.displayMonths&&e.monthIndex+1!==e.displayMonths,t.disableLeftArrow=O(Object(s.F)(t.month,{month:-1}),e.minDate,e.maxDate),t.disableRightArrow=O(Object(s.F)(t.month,{month:1}),e.minDate,e.maxDate),t}(e,{isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,daysDisabled:t.daysDisabled,datesDisabled:t.datesDisabled,hoveredDate:t.hoveredDate,selectedDate:t.selectedDate,selectedRange:t.selectedRange,displayMonths:t.displayMonths,dateCustomClasses:t.dateCustomClasses,monthIndex:n}));return Object.assign({},t,{flaggedMonths:e})}if("month"===t.view.mode){const e=t.monthsCalendar.map((e,n)=>{return r={isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,hoveredMonth:t.hoveredMonth,displayMonths:t.displayMonths,monthIndex:n},(a=e).months.forEach((t,e)=>{t.forEach((t,n)=>{const o=Object(s.w)(t.date,r.hoveredMonth),i=r.isDisabled||O(t.date,r.minDate,r.maxDate),c=Object.assign(t,{isHovered:o,isDisabled:i});t.isHovered===c.isHovered&&t.isDisabled===c.isDisabled||(a.months[e][n]=c)})}),a.hideLeftArrow=r.monthIndex>0&&r.monthIndex!==r.displayMonths,a.hideRightArrow=r.monthIndex<r.displayMonths&&r.monthIndex+1!==r.displayMonths,a.disableLeftArrow=v(Object(s.F)(a.months[0][0].date,{year:-1}),r.minDate,r.maxDate),a.disableRightArrow=v(Object(s.F)(a.months[0][0].date,{year:1}),r.minDate,r.maxDate),a;var a,r});return Object.assign({},t,{flaggedMonthsCalendar:e})}if("year"===t.view.mode){const e=t.yearsCalendarModel.map((e,n)=>function(t,e){t.years.forEach((n,a)=>{n.forEach((n,r)=>{const o=Object(s.x)(n.date,e.hoveredYear),i=e.isDisabled||v(n.date,e.minDate,e.maxDate),c=Object.assign(n,{isHovered:o,isDisabled:i});n.isHovered===c.isHovered&&n.isDisabled===c.isDisabled||(t.years[a][r]=c)})}),t.hideLeftArrow=e.yearIndex>0&&e.yearIndex!==e.displayMonths,t.hideRightArrow=e.yearIndex<e.displayMonths&&e.yearIndex+1!==e.displayMonths,t.disableLeftArrow=v(Object(s.F)(t.years[0][0].date,{year:-1}),e.minDate,e.maxDate);const n=t.years.length-1,a=t.years[n].length-1;return t.disableRightArrow=v(Object(s.F)(t.years[n][a].date,{year:1}),e.minDate,e.maxDate),t}(e,{isDisabled:t.isDisabled,minDate:t.minDate,maxDate:t.maxDate,hoveredYear:t.hoveredYear,displayMonths:t.displayMonths,yearIndex:n}));return Object.assign({},t,{yearsCalendarFlagged:e})}return t}(t);case m.NAVIGATE_OFFSET:{const n=Object(s.F)(Object(s.G)(t.view.date,"month"),e.payload);return Object.assign({},t,{view:{mode:t.view.mode,date:n}})}case m.NAVIGATE_TO:{const n=e.payload,a=Object(s.E)(t.view.date,n.unit);let r,o;return x(n.viewMode,t.minMode)?(o=n.viewMode,r={view:{date:a,mode:o}}):(o=t.view.mode,r={selectedDate:a,view:{date:a,mode:o}}),Object.assign({},t,r)}case m.CHANGE_VIEWMODE:return x(e.payload,t.minMode)?Object.assign({},t,{view:{date:t.view.date,mode:e.payload}}):t;case m.HOVER:return Object.assign({},t,{hoveredDate:e.payload});case m.SELECT:{const n={selectedDate:e.payload,view:t.view},a=t.view.mode,r=A(e.payload||t.view.date,t.minDate,t.maxDate);return n.view={mode:a,date:r},Object.assign({},t,n)}case m.SET_OPTIONS:{const n=e.payload,a=n.minMode?n.minMode:t.view.mode,r=A(Object(s.r)(n.value)&&n.value||Object(s.o)(n.value)&&Object(s.r)(n.value[0])&&n.value[0]||t.view.date,n.minDate,n.maxDate);return n.view={mode:a,date:r},n.value&&(Object(s.o)(n.value)&&(n.selectedRange=n.value),n.value instanceof Date&&(n.selectedDate=n.value)),Object.assign({},t,n)}case m.SELECT_RANGE:{const n={selectedRange:e.payload,view:t.view},a=t.view.mode,r=A(e.payload&&e.payload[0]||t.view.date,t.minDate,t.maxDate);return n.view={mode:a,date:r},Object.assign({},t,n)}case m.SET_MIN_DATE:return Object.assign({},t,{minDate:e.payload});case m.SET_MAX_DATE:return Object.assign({},t,{maxDate:e.payload});case m.SET_IS_DISABLED:return Object.assign({},t,{isDisabled:e.payload});case m.SET_DATE_CUSTOM_CLASSES:return Object.assign({},t,{dateCustomClasses:e.payload});default:return t}}function R(t){return{locale:t.locale,monthTitle:t.monthTitle,yearTitle:t.yearTitle,dayLabel:t.dayLabel,monthLabel:t.monthLabel,yearLabel:t.yearLabel,weekNumbers:t.weekNumbers}}function A(t,e,n){const a=Array.isArray(t)?t[0]:t;return e&&Object(s.n)(e,a,"day")?e:n&&Object(s.p)(n,a,"day")?n:a}class E extends l.b{constructor(){const t=new c.a({type:"[datepicker] dispatcher init"});super(t,N,new l.a(_,t,N))}}class D extends p{constructor(t,e,n,r,o,i,s){super(),this._config=e,this._store=n,this._element=r,this._actions=o,this._positionService=s,this.valueChange=new a.EventEmitter,this.animationState="void",this._subs=[],this._effects=i,t.setStyle(r.nativeElement,"display","block"),t.setStyle(r.nativeElement,"position","absolute")}set value(t){this._effects.setValue(t)}ngOnInit(){this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}},allowedPositions:["top","bottom"]}),this._positionService.event$.pipe(Object(i.a)(1)).subscribe(()=>{this._positionService.disable(),this.animationState=this._config.isAnimated?this.isTopPosition?"animated-up":"animated-down":"unanimated"}),this.isOtherMonthsActive=this._config.selectFromOtherMonth,this.containerClass=this._config.containerClass,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(t=>t.selectedDate).subscribe(t=>this.valueChange.emit(t)))}get isTopPosition(){return this._element.nativeElement.classList.contains("top")}positionServiceEnable(){this._positionService.enable()}daySelectHandler(t){(this.isOtherMonthsActive?t.isDisabled:t.isOtherMonth||t.isDisabled)||this._store.dispatch(this._actions.select(t.date))}ngOnDestroy(){for(const t of this._subs)t.unsubscribe();this._effects.destroy()}}class L{constructor(t,e,n,r,o){this._config=t,this.placement="bottom",this.triggers="click",this.outsideClick=!0,this.container="body",this.outsideEsc=!0,this.bsValueChange=new a.EventEmitter,this._subs=[],Object.assign(this,this._config),this._datepicker=o.createLoader(e,r,n),this.onShown=this._datepicker.onShown,this.onHidden=this._datepicker.onHidden}get isOpen(){return this._datepicker.isShown}set isOpen(t){t?this.show():this.hide()}set bsValue(t){this._bsValue!==t&&(this._bsValue=t,this.bsValueChange.emit(t))}ngOnInit(){this._datepicker.listen({outsideClick:this.outsideClick,outsideEsc:this.outsideEsc,triggers:this.triggers,show:()=>this.show()}),this.setConfig()}ngOnChanges(t){this._datepickerRef&&this._datepickerRef.instance&&(t.minDate&&(this._datepickerRef.instance.minDate=this.minDate),t.maxDate&&(this._datepickerRef.instance.maxDate=this.maxDate),t.daysDisabled&&(this._datepickerRef.instance.daysDisabled=this.daysDisabled),t.datesDisabled&&(this._datepickerRef.instance.datesDisabled=this.datesDisabled),t.isDisabled&&(this._datepickerRef.instance.isDisabled=this.isDisabled),t.dateCustomClasses&&(this._datepickerRef.instance.dateCustomClasses=this.dateCustomClasses))}show(){this._datepicker.isShown||(this.setConfig(),this._datepickerRef=this._datepicker.provide({provide:f,useValue:this._config}).attach(D).to(this.container).position({attachment:this.placement}).show({placement:this.placement}),this._subs.push(this.bsValueChange.subscribe(t=>{this._datepickerRef.instance.value=t})),this._subs.push(this._datepickerRef.instance.valueChange.subscribe(t=>{this.bsValue=t,this.hide()})))}hide(){this.isOpen&&this._datepicker.hide();for(const t of this._subs)t.unsubscribe()}toggle(){if(this.isOpen)return this.hide();this.show()}setConfig(){this._config=Object.assign({},this._config,this.bsConfig,{value:this._bsValue,isDisabled:this.isDisabled,minDate:this.minDate||this.bsConfig&&this.bsConfig.minDate,maxDate:this.maxDate||this.bsConfig&&this.bsConfig.maxDate,daysDisabled:this.daysDisabled||this.bsConfig&&this.bsConfig.daysDisabled,dateCustomClasses:this.dateCustomClasses||this.bsConfig&&this.bsConfig.dateCustomClasses,datesDisabled:this.datesDisabled||this.bsConfig&&this.bsConfig.datesDisabled,minMode:this.minMode||this.bsConfig&&this.bsConfig.minMode})}ngOnDestroy(){this._datepicker.dispose()}}class q extends f{}class j extends D{constructor(t,e,n,a,r,o,i){super(t,e,n,a,r,o,i),t.setStyle(a.nativeElement,"display","inline-block"),t.setStyle(a.nativeElement,"position","static")}}class F{constructor(t,e,n,a,r){this._picker=t,this._localeService=e,this._renderer=n,this._elRef=a,this.changeDetection=r,this._onChange=Function.prototype,this._onTouched=Function.prototype,this._validatorChange=Function.prototype,this._picker.bsValueChange.subscribe(t=>{this._setInputValue(t),this._value!==t&&(this._value=t,this._onChange(t),this._onTouched()),this.changeDetection.markForCheck()}),this._localeService.localeChange.subscribe(()=>{this._setInputValue(this._value)})}_setInputValue(t){const e=t?Object(s.f)(t,this._picker._config.dateInputFormat,this._localeService.currentLocale):"";this._renderer.setProperty(this._elRef.nativeElement,"value",e)}onChange(t){this.writeValue(t.target.value),this._onChange(this._value),this._onTouched()}validate(t){const e=t.value;if(null==e||""===e)return null;if(Object(s.q)(e)){if(!Object(s.r)(e))return{bsDate:{invalid:e}};if(this._picker&&this._picker.minDate&&Object(s.p)(e,this._picker.minDate,"date"))return{bsDate:{minDate:this._picker.minDate}};if(this._picker&&this._picker.maxDate&&Object(s.n)(e,this._picker.maxDate,"date"))return{bsDate:{maxDate:this._picker.maxDate}}}}registerOnValidatorChange(t){this._validatorChange=t}writeValue(t){if(t){const e=this._localeService.currentLocale;if(!Object(s.k)(e))throw new Error(`Locale "${e}" is not defined, please add it with "defineLocale(...)"`);this._value=Object(s.B)(t,this._picker._config.dateInputFormat,this._localeService.currentLocale)}else this._value=null;this._picker.bsValue=this._value}setDisabledState(t){this._picker.isDisabled=t,t?this._renderer.setAttribute(this._elRef.nativeElement,"disabled","disabled"):this._renderer.removeAttribute(this._elRef.nativeElement,"disabled")}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}onBlur(){this._onTouched()}hide(){this._picker.hide(),this._renderer.selectRootElement(this._elRef.nativeElement).blur()}}class z extends f{constructor(){super(...arguments),this.displayMonths=2,this.isAnimated=!1}}class G extends p{constructor(t,e,n,r,o,i){super(),this._actions=e,this._config=n,this._store=r,this._element=o,this._positionService=i,this.valueChange=new a.EventEmitter,this.animationState="void",this._rangeStack=[],this._subs=[],this._effects=t}set value(t){this._effects.setRangeValue(t)}ngOnInit(){this._positionService.setOptions({modifiers:{flip:{enabled:this._config.adaptivePosition}},allowedPositions:["top","bottom"]}),this._positionService.event$.pipe(Object(i.a)(1)).subscribe(()=>{this._positionService.disable(),this.animationState=this._config.isAnimated?this.isTopPosition?"animated-up":"animated-down":"unanimated"}),this.containerClass=this._config.containerClass,this.isOtherMonthsActive=this._config.selectFromOtherMonth,this._effects.init(this._store).setOptions(this._config).setBindings(this).setEventHandlers(this).registerDatepickerSideEffects(),this._subs.push(this._store.select(t=>t.selectedRange).subscribe(t=>this.valueChange.emit(t)))}get isTopPosition(){return this._element.nativeElement.classList.contains("top")}positionServiceEnable(){this._positionService.enable()}daySelectHandler(t){(this.isOtherMonthsActive?t.isDisabled:t.isOtherMonth||t.isDisabled)||(1===this._rangeStack.length&&(this._rangeStack=t.date>=this._rangeStack[0]?[this._rangeStack[0],t.date]:[t.date]),0===this._rangeStack.length&&(this._rangeStack=[t.date]),this._store.dispatch(this._actions.selectRange(this._rangeStack)),2===this._rangeStack.length&&(this._rangeStack=[]))}ngOnDestroy(){for(const t of this._subs)t.unsubscribe();this._effects.destroy()}}class B{}class V{}class Y{}class H{constructor(t,e,n){this._config=t,this._elRef=e,this._renderer=n}ngOnInit(){this.day.isToday&&this._config&&this._config.customTodayClass&&this._renderer.addClass(this._elRef.nativeElement,this._config.customTodayClass),"string"==typeof this.day.customClasses&&this.day.customClasses.split(" ").filter(t=>t).forEach(t=>{this._renderer.addClass(this._elRef.nativeElement,t)})}}const U=function(){var t={UP:0,DOWN:1};return t[t.UP]="UP",t[t.DOWN]="DOWN",t}();class W{constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter}navTo(t){this.onNavigate.emit(t?U.DOWN:U.UP)}view(t){this.onViewMode.emit(t)}}class K{constructor(t){this._config=t,this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter,this.onHoverWeek=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{month:U.DOWN===t?-1:1}})}changeViewMode(t){this.onViewMode.emit(t)}selectDay(t){this.onSelect.emit(t)}selectWeek(t){if(!this._config.selectWeek)return;if(t.days&&t.days[0]&&!t.days[0].isDisabled&&this._config.selectFromOtherMonth)return void this.onSelect.emit(t.days[0]);if(0===t.days.length)return;const e=t.days.find(t=>this._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled);this.onSelect.emit(e)}weekHoverHandler(t,e){this._config.selectWeek&&t.days.find(t=>this._config.selectFromOtherMonth?!t.isDisabled:!t.isOtherMonth&&!t.isDisabled)&&(t.isHovered=e,this.isWeekHovered=e,this.onHoverWeek.emit(t))}hoverDay(t,e){this._config.selectFromOtherMonth&&t.isOtherMonth&&(t.isOtherMonthHovered=e),this.onHover.emit({cell:t,isHovered:e})}}class ${constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{year:U.DOWN===t?-1:1}})}viewMonth(t){this.onSelect.emit(t)}hoverMonth(t,e){this.onHover.emit({cell:t,isHovered:e})}changeViewMode(t){this.onViewMode.emit(t)}}class Z{constructor(){this.ampm="ok",this.hours=0,this.minutes=0}}class J{constructor(){this.onNavigate=new a.EventEmitter,this.onViewMode=new a.EventEmitter,this.onSelect=new a.EventEmitter,this.onHover=new a.EventEmitter}navigateTo(t){this.onNavigate.emit({step:{year:16*(U.DOWN===t?-1:1)}})}viewYear(t){this.onSelect.emit(t)}hoverYear(t,e){this.onHover.emit({cell:t,isHovered:e})}changeViewMode(t){this.onViewMode.emit(t)}}class X{static forRoot(){return{ngModule:X,providers:[u.a,d.a,E,m,f,z,q,b,h]}}}class Q{format(t,e,n){return Object(s.f)(t,e,n)}}class tt{constructor(){this.selectionDone=new a.EventEmitter(void 0),this.update=new a.EventEmitter(!1),this.activeDateChange=new a.EventEmitter(void 0),this.stepDay={},this.stepMonth={},this.stepYear={},this.modes=["day","month","year"],this.dateFormatter=new Q}get activeDate(){return this._activeDate}set activeDate(t){this._activeDate=t}ngOnInit(){this.uniqueId=`datepicker--${Math.floor(1e4*Math.random())}`,this.initDate?(this.activeDate=this.initDate,this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate)):void 0===this.activeDate&&(this.activeDate=new Date)}ngOnChanges(t){this.refreshView(),this.checkIfActiveDateGotUpdated(t.activeDate)}checkIfActiveDateGotUpdated(t){if(t&&!t.firstChange){const e=t.previousValue;e&&e instanceof Date&&e.getTime()!==t.currentValue.getTime()&&this.activeDateChange.emit(this.activeDate)}}setCompareHandler(t,e){"day"===e&&(this.compareHandlerDay=t),"month"===e&&(this.compareHandlerMonth=t),"year"===e&&(this.compareHandlerYear=t)}compare(t,e){if(void 0!==t&&void 0!==e)return"day"===this.datepickerMode&&this.compareHandlerDay?this.compareHandlerDay(t,e):"month"===this.datepickerMode&&this.compareHandlerMonth?this.compareHandlerMonth(t,e):"year"===this.datepickerMode&&this.compareHandlerYear?this.compareHandlerYear(t,e):void 0}setRefreshViewHandler(t,e){"day"===e&&(this.refreshViewHandlerDay=t),"month"===e&&(this.refreshViewHandlerMonth=t),"year"===e&&(this.refreshViewHandlerYear=t)}refreshView(){"day"===this.datepickerMode&&this.refreshViewHandlerDay&&this.refreshViewHandlerDay(),"month"===this.datepickerMode&&this.refreshViewHandlerMonth&&this.refreshViewHandlerMonth(),"year"===this.datepickerMode&&this.refreshViewHandlerYear&&this.refreshViewHandlerYear()}dateFilter(t,e){return this.dateFormatter.format(t,e,this.locale)}isActive(t){return 0===this.compare(t.date,this.activeDate)&&(this.activeDateId=t.uid,!0)}createDateObject(t,e){const n={};return n.date=new Date(t.getFullYear(),t.getMonth(),t.getDate()),n.date=this.fixTimeZone(n.date),n.label=this.dateFilter(t,e),n.selected=0===this.compare(t,this.selectedDate),n.disabled=this.isDisabled(t),n.current=0===this.compare(t,new Date),n.customClass=this.getCustomClassForDate(n.date),n}split(t,e){const n=[];for(;t.length>0;)n.push(t.splice(0,e));return n}fixTimeZone(t){const e=t.getHours();return new Date(t.getFullYear(),t.getMonth(),t.getDate(),23===e?e+2:0)}select(t,e=!0){this.datepickerMode===this.minMode?(this.activeDate||(this.activeDate=new Date(0,0,0,0,0,0,0)),this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&this.selectionDone.emit(this.activeDate)):(this.activeDate=new Date(t.getFullYear(),t.getMonth(),t.getDate()),this.activeDate=this.fixTimeZone(this.activeDate),e&&(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)-1])),this.selectedDate=new Date(this.activeDate.valueOf()),this.update.emit(this.activeDate),this.refreshView()}move(t){let e;if("day"===this.datepickerMode&&(e=this.stepDay),"month"===this.datepickerMode&&(e=this.stepMonth),"year"===this.datepickerMode&&(e=this.stepYear),e){const n=this.activeDate.getFullYear()+t*(e.years||0),a=this.activeDate.getMonth()+t*(e.months||0);this.activeDate=new Date(n,a,1),this.refreshView(),this.activeDateChange.emit(this.activeDate)}}toggleMode(t){const e=t||1;this.datepickerMode===this.maxMode&&1===e||this.datepickerMode===this.minMode&&-1===e||(this.datepickerMode=this.modes[this.modes.indexOf(this.datepickerMode)+e],this.refreshView())}getCustomClassForDate(t){if(!this.customClass)return"";const e=this.customClass.find(e=>e.date.valueOf()===t.valueOf()&&e.mode===this.datepickerMode,this);return void 0===e?"":e.clazz}compareDateDisabled(t,e){if(void 0!==t&&void 0!==e)return"day"===t.mode&&this.compareHandlerDay?this.compareHandlerDay(t.date,e):"month"===t.mode&&this.compareHandlerMonth?this.compareHandlerMonth(t.date,e):"year"===t.mode&&this.compareHandlerYear?this.compareHandlerYear(t.date,e):void 0}isDisabled(t){let e=!1;return this.dateDisabled&&this.dateDisabled.forEach(n=>{0===this.compareDateDisabled(n,t)&&(e=!0)}),this.dayDisabled&&(e=e||this.dayDisabled.indexOf(t.getDay())>-1),e||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0}}class et{constructor(){this.locale="en",this.datepickerMode="day",this.startingDay=0,this.yearRange=20,this.minMode="day",this.maxMode="year",this.showWeeks=!0,this.formatDay="DD",this.formatMonth="MMMM",this.formatYear="YYYY",this.formatDayHeader="dd",this.formatDayTitle="MMMM YYYY",this.formatMonthTitle="YYYY",this.onlyCurrentMonth=!1,this.monthColLimit=3,this.yearColLimit=5,this.shortcutPropagation=!1}}class nt{constructor(t){this.datepickerMode="day",this.showWeeks=!0,this.selectionDone=new a.EventEmitter(void 0),this.activeDateChange=new a.EventEmitter(void 0),this.onChange=Function.prototype,this.onTouched=Function.prototype,this._now=new Date,this.config=t,this.configureOptions()}get activeDate(){return this._activeDate||this._now}set activeDate(t){this._activeDate=t}configureOptions(){Object.assign(this,this.config)}onUpdate(t){this.activeDate=t,this.onChange(t)}onSelectionDone(t){this.selectionDone.emit(t)}onActiveDateChange(t){this.activeDateChange.emit(t)}writeValue(t){if(0!==this._datePicker.compare(t,this._activeDate))return t&&t instanceof Date?(this.activeDate=t,void this._datePicker.select(t,!1)):void(this.activeDate=t?new Date(t):void 0)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}}class at{constructor(t){this.labels=[],this.rows=[],this.weekNumbers=[],this.datePicker=t}get isBs4(){return!Object(g.d)()}ngOnInit(){const t=this;this.datePicker.stepDay={months:1},this.datePicker.setRefreshViewHandler((function(){const e=this.activeDate.getFullYear(),n=this.activeDate.getMonth(),a=new Date(e,n,1),r=this.startingDay-a.getDay(),o=r>0?7-r:-r,i=new Date(a.getTime());o>0&&i.setDate(1-o);const s=t.getDates(i,42),c=[];for(let t=0;t<42;t++){const e=this.createDateObject(s[t],this.formatDay);e.secondary=s[t].getMonth()!==n,e.uid=this.uniqueId+"-"+t,c[t]=e}t.labels=[];for(let l=0;l<7;l++)t.labels[l]={},t.labels[l].abbr=this.dateFilter(c[l].date,this.formatDayHeader),t.labels[l].full=this.dateFilter(c[l].date,"EEEE");if(t.title=this.dateFilter(this.activeDate,this.formatDayTitle),t.rows=this.split(c,7),this.showWeeks){t.weekNumbers=[];const e=(11-this.startingDay)%7,n=t.rows.length;for(let a=0;a<n;a++)t.weekNumbers.push(t.getISO8601WeekNumber(t.rows[a][e].date))}}),"day"),this.datePicker.setCompareHandler((function(t,e){const n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),a=new Date(e.getFullYear(),e.getMonth(),e.getDate());return n.getTime()-a.getTime()}),"day"),this.datePicker.refreshView()}getDates(t,e){const n=new Array(e);let a,r=new Date(t.getTime()),o=0;for(;o<e;)a=new Date(r.getTime()),a=this.datePicker.fixTimeZone(a),n[o++]=a,r=new Date(a.getFullYear(),a.getMonth(),a.getDate()+1);return n}getISO8601WeekNumber(t){const e=new Date(t.getTime());e.setDate(e.getDate()+4-(e.getDay()||7));const n=e.getTime();return e.setMonth(0),e.setDate(1),Math.floor(Math.round((n-e.getTime())/864e5)/7)+1}}class rt{constructor(t){this.rows=[],this.datePicker=t}get isBs4(){return!Object(g.d)()}ngOnInit(){const t=this;this.datePicker.stepMonth={years:1},this.datePicker.setRefreshViewHandler((function(){const e=new Array(12),n=this.activeDate.getFullYear();let a;for(let t=0;t<12;t++)a=new Date(n,t,1),a=this.fixTimeZone(a),e[t]=this.createDateObject(a,this.formatMonth),e[t].uid=this.uniqueId+"-"+t;t.title=this.dateFilter(this.activeDate,this.formatMonthTitle),t.rows=this.split(e,t.datePicker.monthColLimit)}),"month"),this.datePicker.setCompareHandler((function(t,e){const n=new Date(t.getFullYear(),t.getMonth()),a=new Date(e.getFullYear(),e.getMonth());return n.getTime()-a.getTime()}),"month"),this.datePicker.refreshView()}}class ot{constructor(t){this.rows=[],this.datePicker=t}get isBs4(){return!Object(g.d)()}ngOnInit(){const t=this;this.datePicker.stepYear={years:this.datePicker.yearRange},this.datePicker.setRefreshViewHandler((function(){const e=new Array(this.yearRange);let n;const a=t.getStartingYear(this.activeDate.getFullYear());for(let t=0;t<this.yearRange;t++)n=new Date(a+t,0,1),n=this.fixTimeZone(n),e[t]=this.createDateObject(n,this.formatYear),e[t].uid=this.uniqueId+"-"+t;t.title=[e[0].label,e[this.yearRange-1].label].join(" - "),t.rows=this.split(e,t.datePicker.yearColLimit)}),"year"),this.datePicker.setCompareHandler((function(t,e){return t.getFullYear()-e.getFullYear()}),"year"),this.datePicker.refreshView()}getStartingYear(t){return(t-1)/this.datePicker.yearRange*this.datePicker.yearRange+1}}class it{static forRoot(){return{ngModule:it,providers:[et]}}}},ijCd:function(t,e,n){var a=n("R/W3"),r=n("MMmD"),o=n("4qC0"),i=n("Sxd8"),s=n("P/G1"),c=Math.max;t.exports=function(t,e,n,l){t=r(t)?t:s(t),n=n&&!l?i(n):0;var d=t.length;return n<0&&(n=c(d+n,0)),o(t)?n<=d&&t.indexOf(e,n)>-1:!!d&&a(t,e,n)>-1}},insk:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");n("+0ag"),n("mSOc"),n("20UP");class r{constructor(t,e,n,r,o){this.summaryService=t,this.sanitizer=e,this.settingsService=n,this.cephReleaseNamePipe=r,this.i18n=o,this.grafanaExist=!1,this.mode="&kiosk",this.loading=!0,this.styles={},this.dashboardExist=!0,this.icons=a.a,this.DEFAULT_TIME="from=now-1h&to=now",this.grafanaTimes=[{name:this.i18n("Last 5 minutes"),value:"from=now-5m&to=now"},{name:this.i18n("Last 15 minutes"),value:"from=now-15m&to=now"},{name:this.i18n("Last 30 minutes"),value:"from=now-30m&to=now"},{name:this.i18n("Last 1 hour (Default)"),value:"from=now-1h&to=now"},{name:this.i18n("Last 3 hours"),value:"from=now-3h&to=now"},{name:this.i18n("Last 6 hours"),value:"from=now-6h&to=now"},{name:this.i18n("Last 12 hours"),value:"from=now-12h&to=now"},{name:this.i18n("Last 24 hours"),value:"from=now-24h&to=now"},{name:this.i18n("Yesterday"),value:"from=now-1d%2Fd&to=now-1d%2Fd"},{name:this.i18n("Today"),value:"from=now%2Fd&to=now%2Fd"},{name:this.i18n("Today so far"),value:"from=now%2Fd&to=now"},{name:this.i18n("Day before yesterday"),value:"from=now-2d%2Fd&to=now-2d%2Fd"},{name:this.i18n("Last 2 days"),value:"from=now-2d&to=now"},{name:this.i18n("This day last week"),value:"from=now-7d%2Fd&to=now-7d%2Fd"},{name:this.i18n("Previous week"),value:"from=now-1w%2Fw&to=now-1w%2Fw"},{name:this.i18n("This week"),value:"from=now%2Fw&to=now%2Fw"},{name:this.i18n("This week so far"),value:"from=now%2Fw&to=now"},{name:this.i18n("Last 7 days"),value:"from=now-7d&to=now"},{name:this.i18n("Previous month"),value:"from=now-1M%2FM&to=now-1M%2FM"},{name:this.i18n("This month"),value:"from=now%2FM&to=now%2FM"},{name:this.i18n("This month so far"),value:"from=now%2FM&to=now"},{name:this.i18n("Last 30 days"),value:"from=now-30d&to=now"},{name:this.i18n("Last 90 days"),value:"from=now-90d&to=now"},{name:this.i18n("Last 6 months"),value:"from=now-6M&to=now"},{name:this.i18n("Last 1 year"),value:"from=now-1y&to=now"},{name:this.i18n("Previous year"),value:"from=now-1y%2Fy&to=now-1y%2Fy"},{name:this.i18n("This year"),value:"from=now%2Fy&to=now%2Fy"},{name:this.i18n("This year so far"),value:"from=now%2Fy&to=now"},{name:this.i18n("Last 2 years"),value:"from=now-2y&to=now"},{name:this.i18n("Last 5 years"),value:"from=now-5y&to=now"}]}ngOnInit(){this.time=this.DEFAULT_TIME,this.styles={one:"grafana_one",two:"grafana_two",three:"grafana_three"};const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`+"#enabling-the-embedding-of-grafana-dashboards",setTimeout(()=>{t.unsubscribe()},0)});this.settingsService.ifSettingConfigured("api/grafana/url",t=>{this.grafanaExist=!0,this.loading=!1,this.baseUrl=t+"/d/",this.getFrame()}),this.panelStyle=this.styles[this.grafanaStyle]}getFrame(){this.settingsService.validateGrafanaDashboardUrl(this.uid).subscribe(t=>this.dashboardExist=200===t),this.url=this.baseUrl+this.uid+"/"+this.grafanaPath+"&refresh=2s"+this.mode+"&"+this.time,this.grafanaSrc=this.sanitizer.bypassSecurityTrustResourceUrl(this.url)}onTimepickerChange(){this.grafanaExist&&this.getFrame()}reset(){this.time=this.DEFAULT_TIME,this.grafanaExist&&this.getFrame()}ngOnChanges(){this.grafanaExist&&this.getFrame()}}},iqWW:function(t,e,n){"use strict";var a=n("ZUd8").charAt;t.exports=function(t,e,n){return e+(n?a(t,e).length:1)}},itXk:function(t,e,n){"use strict";n.d(e,"b",(function(){return l})),n.d(e,"a",(function(){return d}));var a=n("z+Ro"),r=n("DH7j"),o=n("l7GE"),i=n("ZUHj"),s=n("yCtX");const c={};function l(...t){let e=null,n=null;return Object(a.a)(t[t.length-1])&&(n=t.pop()),"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Object(r.a)(t[0])&&(t=t[0]),Object(s.a)(t,n).lift(new d(e))}class d{constructor(t){this.resultSelector=t}call(t,e){return e.subscribe(new u(t,this.resultSelector))}}class u extends o.a{constructor(t,e){super(t),this.resultSelector=e,this.active=0,this.values=[],this.observables=[]}_next(t){this.values.push(c),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 n=0;n<e;n++){const e=t[n];this.add(Object(i.a)(this,e,e,n))}}}notifyComplete(t){0==(this.active-=1)&&this.destination.complete()}notifyNext(t,e,n,a,r){const o=this.values,i=this.toRespond?o[n]===c?--this.toRespond:this.toRespond:0;o[n]=e,0===i&&(this.resultSelector?this._tryResultSelector(o):this.destination.next(o.slice()))}_tryResultSelector(t){let e;try{e=this.resultSelector.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}},itsj:function(t,e){t.exports=function(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}},iutN:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("8Y7J"),r=n("FE24"),o=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function i(t){return a["ɵvid"](2,[(t()(),a["ɵeld"](0,0,null,null,1,"div",[],[[2,"dropup",null],[2,"dropdown",null],[2,"show",null],[2,"open",null]],null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){var n=e.component;t(e,0,0,"up"===n.direction,"down"===n.direction,n.isOpen,n.isOpen)}))}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-dropdown-container",[["style","display:block;position: absolute;"]],null,null,null,i,o)),a["ɵdid"](1,180224,null,0,r.b,[r.f,a.ChangeDetectorRef,a.Renderer2,a.ElementRef],null,null)],null,null)}var c=a["ɵccf"]("bs-dropdown-container",r.b,s,{},{},["*"])},j8L6:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("25BL"),o=n("uIqm"),i=n("DqMs"),s=n("/NlG"),c=n("GiVz"),l=n("o4+5"),d=n("aXbf"),u=n("SVse");n("b5OY"),n("pxLl"),n.d(e,"a",(function(){return g})),n.d(e,"b",(function(){return h}));var g=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function f(t){return a["ɵvid"](0,[(t()(),a["ɵted"](0,null,[" "," "," "])),a["ɵppd"](1,1)],null,(function(t,e){var n=a["ɵunv"](e,0,0,t(e,1,0,a["ɵnov"](e.parent.parent,0),e.context.row.value));t(e,0,0,n,e.context.row.unit)}))}function p(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getCounters(n)&&a),a}),r.b,r.a)),a["ɵdid"](1,2867200,null,0,o.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoSave:[3,"autoSave"]},{fetchData:"fetchData"}),(t()(),a["ɵand"](0,[[1,2],["valueTpl",2]],null,0,null,f))],(function(t,e){var n=e.component;t(e,1,0,n.counters,n.columns,"flex",!1)}),null)}function m(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,i.b,i.a)),a["ɵdid"](1,114688,null,0,s.a,[c.a],{type:[0,"type"]},null),(t()(),a["ɵted"](-1,0,["Performance counters not available"]))],(function(t,e){t(e,1,0,"warning")}),null)}function h(t){return a["ɵvid"](0,[a["ɵpid"](0,l.a,[d.a]),a["ɵqud"](671088640,1,{valueTpl:0}),(t()(),a["ɵand"](16777216,null,null,1,null,p)),a["ɵdid"](3,16384,null,0,u.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),a["ɵand"](0,[["warning",2]],null,0,null,m))],(function(t,e){t(e,3,0,e.component.counters,a["ɵnov"](e,4))}),null)}},"jKX/":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));class a{constructor(t=[]){["read","create","update","delete"].forEach(e=>this[e]=t.includes(e))}}class r{constructor(t){this.hosts=new a(t.hosts),this.configOpt=new a(t["config-opt"]),this.pool=new a(t.pool),this.osd=new a(t.osd),this.monitor=new a(t.monitor),this.rbdImage=new a(t["rbd-image"]),this.iscsi=new a(t.iscsi),this.rbdMirroring=new a(t["rbd-mirroring"]),this.rgw=new a(t.rgw),this.cephfs=new a(t.cephfs),this.manager=new a(t.manager),this.log=new a(t.log),this.user=new a(t.user),this.grafana=new a(t.grafana),this.prometheus=new a(t.prometheus),this.nfs=new a(t["nfs-ganesha"])}}},jUeY:function(t,e,n){!function(t){"use strict";t.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(t,e,n){return t>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(t){return"μ"===(t+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/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:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,e){var n,a=this._calendarEl[t],r=e&&e.hours();return((n=a)instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(a=a.apply(e)),a.replace("{}",r%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n("wd/R"))},jV1L:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Component)({selector:"tree-node-expander",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <span\n        *ngIf="node.hasChildren"\n        [class.toggle-children-wrapper-expanded]="node.isExpanded"\n        [class.toggle-children-wrapper-collapsed]="node.isCollapsed"\n        class="toggle-children-wrapper"\n        (click)="node.mouseAction(\'expanderClick\', $event)"\n      >\n        <span class="toggle-children"></span>\n      </span>\n      <span *ngIf="!node.hasChildren" class="toggle-children-placeholder">\n      </span>\n    </ng-container>\n  '})],t)}()},jVDg:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e,n){this.poolName=t,this.namespace=e,this.imageName=n}static fromString(t){const e=t.split("/");return new this(e[0],e.length>=3?e[1]:null,e.length>=3?e[2]:e[1])}getNameSpace(){return this.namespace?`${this.namespace}/`:""}toString(){return`${this.poolName}/${this.getNameSpace()}${this.imageName}`}toStringEncoded(){return encodeURIComponent(`${this.poolName}/${this.getNameSpace()}${this.imageName}`)}}},jVdC:function(t,e,n){!function(t){"use strict";var e="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function a(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function r(t,e,n){var r=t+" ";switch(n){case"ss":return r+(a(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return r+(a(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return r+(a(t)?"godziny":"godzin");case"MM":return r+(a(t)?"miesiące":"miesięcy");case"yy":return r+(a(t)?"lata":"lat")}}t.defineLocale("pl",{months:function(t,a){return t?""===a?"("+n[t.month()]+"|"+e[t.month()]+")":/D MMMM/.test(a)?n[t.month()]:e[t.month()]:e},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_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ś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:r,m:r,mm:r,h:r,hh:r,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:r,y:"rok",yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},jZKg:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("HDdC"),r=n("quSY");function o(t,e){return new a.a(n=>{const a=new r.a;let o=0;return a.add(e.schedule((function(){o!==t.length?(n.next(t[o++]),n.closed||a.add(this.schedule())):n.complete()}))),a})}},jeLo:function(t,e,n){var a=n("juv8"),r=n("mTTR");t.exports=function(t){return a(t,r(t))}},jfSC:function(t,e,n){!function(t){"use strict";var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};t.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".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:/قبل از ظهر|بعد از ظهر/,isPM:function(t){return/بعد از ظهر/.test(t)},meridiem:function(t,e,n){return t<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(t){return t.replace(/[۰-۹]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n("wd/R"))},jnO4:function(t,e,n){!function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},a=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},o=function(t){return function(e,n,o,i){var s=a(e),c=r[t][a(e)];return 2===s&&(c=c[n?0:1]),c.replace(/%d/i,e)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];t.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,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:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:o("s"),ss:o("s"),m:o("m"),mm:o("m"),h:o("h"),hh:o("h"),d:o("d"),dd:o("d"),M:o("M"),MM:o("M"),y:o("y"),yy:o("y")},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(t){return n[t]})).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n("wd/R"))},jqst:function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="id-ID">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Pengalih navigasi</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Dasbor</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Klaster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hos</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitor</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Layanan</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Konfigurasi</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>peta CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Modul Ceph Manajer</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Log</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Blok</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Pencerminan</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemfile</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Pengguna</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Buket</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Pilih bahasa</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Memuat data panel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Pemilih Waktu Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Reset Pengaturan</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Kembali</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Gagal memuat data.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>dipilih</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>ditemukan</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nama</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Deskripsi</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Deskripsi lengkap</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Bawaan</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon bawaan</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Nilai</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Simpan</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Penampil peta CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Memuat...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nama hos</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Isian ini tidak boleh kosong.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Ya, saya yakin.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Batal</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Tutup</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Daftar Hos</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Performa Keseluruhan</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>Entri tidak ditemukan</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Log Klaster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Log Audit</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Memuat konfigurasi...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>Konfigurasi tidak dapat dimuat.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Edit modul Ceph Manajer</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>Nilai yang dimasukkan bukan UUID yang valid, cth: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>Nilai yang dimasukkan harus alamat IP yang valid.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>Nilai yang dimasukkan harus berupa angka.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>Nilai yang dimasukkan harus berupa angka atau desimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Perbarui</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Status</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID Klaster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>monmap diubah</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>monmap epoch</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>kuorum con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>kuorum mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con yang dibutuhkan</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon yang dibutuhkan</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Memenuhi Kuorum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Tidak dalam Kuorum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Tambah</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Fitur</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Flag OSD Klaster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Kirim</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Tingkat lanjut...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioritas pemulihan OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioritas</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Ubah nilai prioritas</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Isian ini harus diisi!</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>Nilai harus antara 0 dan 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Ubah bobot</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Dalam } }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {dalam } }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Daftar OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Nilai</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Edit</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Hapus</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Kesehatan</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Statistik </target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Klien</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Semua klien dapat mengakses</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Alamat</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Wajib diisi</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Harus mengandung satu atau lebih nilai yang dipisahkan koma</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Contoh:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipe Akses</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Squash</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Tambah klien</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- Klaster tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Pilih klaster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Tambah daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Backend Penyimpanan</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- Tidak ada pool data tersedia --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Pilih backend penyimpanan --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Pengguna Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- Pengguna tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Pilih pengguna gerbang objek --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID Pengguna CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- Klien tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Pilih klien cephx --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nama CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Label Keamanan</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Aktifkan label keamanan</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>CephFS Path</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>Lintasan atau path harus dimulai dengan \'/\' dan diikuti dengan kata</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Direktori baru akan dibuat</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Path</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>Path hanya boleh berupa \'/\' atau kata</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Buket baru akan dibuat</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protokol NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Tag NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Klien mungkin tidak dapat mount subdirektori (cth. jika Tag = foo, klien mungkin tidak bisa mount foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Dengan menggunakan opsi Tag yang berbeda, Path yang sama akan diekspor beberapa kali.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Dengan menggunakan opsi Pseudo yang berbeda, Path yang sama akan diekspor beberapa kali.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- Tipe akses tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Pilih tipe akses --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- Squash tidak tersedia --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Pilih jenis squashing id pengguna yang akan dilakukan --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protokol Transport</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>Selamat datang di Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>Nama pengguna harus diisi</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>Kata sandi harus diisi</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Masuk</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Maaf, pengguna tidak terdaftar di Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Terlarang</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Maaf, Anda tidak dizinkan melihat hal yang Anda inginkan.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Konfigurasi RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Menghapus nilai konfigurasi lokal. Nilai konfigurasi induk akan diturun dan digunakan.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>Nilai minimum adalah 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Daftar pool</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>Nama hanya boleh terdiri dari alfanumerik, tanda hubung, dan garis bawah.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>Nama profil erasure code sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Plugin</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Pecahan data (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Harus sama dengan atau lebih dari 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Pecahan Coding (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Harus sama dengan atau lebih dari 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Penduga daya tahan (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Lokalitas (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Domain kegagalan Crush</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Lokalitas Crush</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Tidak ada</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Teknik</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Ukuran paket</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Crush root</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Kelas perangkat Crush</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>apa saja</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Direktori</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nama...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>Nama pool Ceph yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Jenis pool</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Pilih jenis pool --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grup penempatan</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Dibutuhkan setidaknya satu grup penempatan!</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>Klaster Anda tidak dapat menangani PG sebanyak ini. Mohon hitung ulang jumlah PG yang dibutuhkan.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Bantuan penghitungan</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Jumlah replikasi</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Flag</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>EC Overwrites</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplikasi</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Profil erasure code</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- Tidak ada profil erasure code --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Pilih profil erasure code --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Aturan CRUSH</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Pilih aturan crush --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Aturan crush</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Crush steps</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Kompresi</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Mode</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritma</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- Tidak ada algoritma pengompresian erasure --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Ukuran blob minimum</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>cth. 128KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>Nilai harus lebih besar dari 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Ukuran maksimum blob</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>cth. 512KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>Nilai harus lebih besar dari ukuran minimum blob</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Rasio</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Rasio kompresi</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>Nilai harus antara 0.0 dan 1.0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>cth. 10GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detail</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detail Performa</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detil Cache Bertingkat</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Pindahkan image ke tempat sampah</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>Proteksi berakhir pada</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>TIDAK DIPROTEKSI</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Format tanggal salah. Mohon gunakan "TTTT-BB-HH JJ:mm:dd".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>Proteksi telah kedaluarsa. Mohon pilih tanggal masa mendatang atau kosongkan.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Pindahkan Image</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Ikhtisar</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Target</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Otentikasi Discovery</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Pengguna</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nama pengguna harus terdiri dari 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Kata sandi</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Pengguna Bersama</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Kata sandi bersama</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Informasi tersedia:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>iSCSI Target tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Pool</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Pool Data</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Dibuat</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Ukuran</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objek</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Ukuran objek</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Disiapkan</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/A</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total disiapkan</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unit setrip</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Jumlah setrip</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Induk</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Awalan nama blok</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Urutan</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Snapshot</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Image</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Pengaturan ini akan membatalkan nilai global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Ini adalah nilai global. Tidak ada nilai yang diset untuk image ini.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>\'/\' dan \'@\' tidak diperbolehkan.</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- Tidak ada pool rbd tersedia --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Pilih pool --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Gunakan pool data terdedikasi</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Pool data</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Pool terdedikasi yang menyimpan data-objek dari RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Anda harus menaikkan ukuran.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Tingkat lanjut</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Setrip</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unit setrip</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Pilih ukuran setrip --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Isian ini harus diisi karena jumlah setrip telah ditentukan!</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>Unit setrip lebih besar dari ukuran objek.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Jumlah setrip</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Isian wajib diisi karena unit setrip didefinisikan!</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>Jumlah setrip harus lebih besar dari 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Anda akan mengembalikan semula</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Kosongkan Tempah Sampah</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Semua</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Pool:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nama Pool...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Pulihkan Image</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Untuk memulihkan</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>ketik nama baru image dan pilih</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nama Baru</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Kedaluwarsa pada</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Diproteksi hingga</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topologi iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Mengganti parameter ini dari nilai bawaan biasanya tidak diperlukan.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Pengaturan</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Backstore</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Konfirmasi</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Pengaturan Lanjut</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>Target IQN</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>Pola IQN salah.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Contoh: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Informasi lainnya</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Pengaturan lanjutan target ini telah dimodifikasi.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portal</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Tambahkan portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Pengaturan Image ini telah dimodifikasi.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Tambahkan image</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Otentikasi ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Inisiator</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Inisiator</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>Klien IQN</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>Inisiator IQN harus unik.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Nama pengguna harus terdiri atas 8 hingga 64 karakter dan\nhanya boleh mengandung huruf, \'.\', \'@\', \'-\', \'_\' atau \':\'.</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>Inisiator termasuk ke dalam grup. Image akan dikonfigurasi di dalam grup.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>Tidak ada yang ditambahkan.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Tambahkan inisiator</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grup</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grup</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Tambahkan grup</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Tempat sampah</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Masalah</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Menyinkronkan</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Siap</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Edit mode pencerminan pool</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Klaster mitra harus dihapus sebelum menonaktfikan pencerminan.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Edit} other {Tambah} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nama Klaster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>Nama klaster tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>CephX ID</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>CephX ID...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>CephX ID tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Alamat Monitor</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Alamat dengan pemisah-koma...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>Alamat monitor tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>CephX Key</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Base64-encoded key...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>Kunci CephX harus base64 encoded.</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Penghitung kinerja tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Daftar Daemon</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Penghitung Performa</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Memuat data buket...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>Id</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>Nilai tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>Nama yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Pemilik</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Pilih pengguna --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Diaktifkan</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Jenis indeks</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Aturan penempatan</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Penanda</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Penanda maksimum</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versi</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versi Master</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Modifikasi waktu</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Zona grup</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Kuota Buket</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Ukuran maksimum</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Objek maksimum</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nama pengguna</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Pilih nama pengguna --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Kunci otomatis-dibuat</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Kunci akses</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Kunci rahasia</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nama lengkap</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Alamat email</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Dihentikan</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistem</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Buket maksimum</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subpengguna</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Kemampuan</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Kuota pengguna</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Tampilkan</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Kunci</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipe</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Pilih tipe --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Izin</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Pilih izin --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subpengguna</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>ID subpengguna sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>baca, tulis</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>penuh</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Kunci Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Sandi otomatis-dibuat</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Memuat data pengguna...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>Data pengguna tidak dapat dimuat.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>ID pengguna yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Ini bukan alamat email yang valid.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>Alamat email yang dipilih sudah digunakan.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Maks. buket</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Dimatikan</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Ubahsuai</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Kunci S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>Tidak ada sub-pengguna.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>Kunci tidak ditemukan.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>Kemampuan tidak ada.</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Ukuran tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Ukuran maks.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objek tak terbatas</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Objek maks.</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>Nilai yang dimasukkan harus &gt;= 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Deskripsi...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Izin</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Peran</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Konfirmasi kata sandi</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Konfirmasi kata sandi tidak sesuai dengan kata sandi.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Email</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Email tidak valid.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Anda akan menghapus izin "pengguna baca / perbarui" dari diri Anda sendiri.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Jika melanjutkan, Anda tidak akan lagi dapat menambahkan atau menghapus peran dari pengguna manapun.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>Anda yakin ingin melanjutkan?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Bantuan</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Dokumentasi </target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Tentang</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Pengaturan Dasbor</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Manajemen Pengguna</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Pengguna masuk</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Keluar</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atribut (peta OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Metadata tidak tersedia</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadata</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Penghitung kinerja</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Tulis</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Baca</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histogram</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Nilai saat ini</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Min</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Maks</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Sumber</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Level</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Boleh diperbarui saat dijalankan (bisa diedit)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Tag</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Nilai Enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Lihat juga</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Status Klaster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Manajer Daemon</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Gerbang Objek</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Server Metadata</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Gateway iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS klien</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Throughput Pengguna</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Baca/Tulis Klien</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Throughput Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Scrub</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Kinerja</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Kapasitas mentah</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>PG per OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Status PG</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Kapasitas</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Peringkat</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Terkini</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Otentikasi penemuan telah diperbarui</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>Tidak ada portal yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>Tidak ada image yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>Tidak ada image yang tersedia. Mohon pastikan Anda telah menambahkan image ke target.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>Tidak ada inisiator tersedia. Mohon pastikan Anda telah menambahkan inisiator ke target.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Target</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Keadaan</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Baca Bytes</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Tulis Bytes</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Ops Baca</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Ops Tulis</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O Sejak</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instance</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Isu</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Kemajuan</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Mode Edit</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Tambahkan Mitra</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Edit Mitra</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Hapus Mitra</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Pemimpin</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target># Lokal</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target># Jauh</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>mitra pencerminan</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Kunci</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Perataan mendalam</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>Lapisan</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Kunci eksklusif</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Peta objek (butuh kunci-eksklusif)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>Penjurnalan (membutuhkan kunci-eksklusif)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>TIDAK DIPROTEKSI</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Kembalikan snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Kembalikan</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Snapshot RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Dihapus pada</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>id</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipe</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>keadaan</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versi</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Hos</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>induk</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemon siaga</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Peringkat</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Aktivitas</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inode</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Penggunaan</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Diperbarui</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>Nilai dapat diperbarui saat runtime.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Daemon/klien tidak dapat mengambil nilai dari\nbasis data konfigurasi monitor. Kami tidak mengizinkan mengubah ini dari \'ceph config\nset ...\'. Pilihan ini harus dikonfigurasi melalui ceph.conf atau CLI.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>Pilihan hanya dapat bekerja selama daemon dimulai.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>Pilihan hanya berpengaruh pada pembuatan klaster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>Pilihan hanya berpengaruh pada pembuatan daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Layanan</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Nilai saat ini</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Dapat diedit</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Aktifkan</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Nonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Menghubungkan kembali, mohon tunggu...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Alamat Publik</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Buka Sesi</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>Tidak boleh Masuk</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>OSD yang telah ditandai keluar tidak akan ditandai masuk saat mereka menyala</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>Tidak boleh Keluar</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>OSD tidak akan otomatis ditandai keluar setelah interval dikonfigurasi</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>Tidak Nyala</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>OSD tidak diizinkan menyala</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>Tidak Mati</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Laporan kegagalan OSD sedang diabaikan sehingga monitor tidak akan menandai OSD mati</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Jeda</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Jeda baca dan tulis</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>Nonaktifkan Scrub</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>Scrubbing dinonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>Nonaktifkan Deep Scrub</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>Deep Scrubing dinonaktifkan</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>Tidak ada Penambalan</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>Penambalan PG dihentikan</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>Tidak ada Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>Pemulihan PG dihentikan</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Urutan Bitwise</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Gunakan urutan bitwise</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Buang Snapdirs</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>OSD memiliki snapset yang dikonversi</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Pulihkan yang telah dihapus</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Penghapusan dilakukan saat pemulihan bukan saat bermitra</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Batas Maks Log PG</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Taruh batas maks pada panjang log pg</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Flag OSD diperbarui</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>keluar</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>masuk</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>gugur</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Tandai</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD hilang</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>ditandai hilang</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Buang</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>dibuang</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>hancurkan</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>dihancurkan</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>hapus</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>PG</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bita baca</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bita tulis</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Ops baca</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Ops tulis</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Maks Penambalan</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Maks Pemulihan Aktif</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Maks Menjalankan Pemulihan Tunggal</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Jeda Pemulihan</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Tugas</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Keparahan</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Dimulai</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Terpakai</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Tersedia</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Bersih</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>Bekerja</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Peringatan</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Tidak diketahui</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>nyala</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>tidak ada filesistem</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>aktif</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>siaga</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/a</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon aktif</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>kuorum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>Layanan NFS Ganesha belum dikonfigurasi.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transport</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Pengguna CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Filesistem CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(diturunkan dari konfig global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>diturunkan dari konfig global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Pilih jenis squashing id pengguna yang akan dilakukan --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>Tidak ada daemon tersedia.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Mode Cache</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Min Waktu Usir</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Min Waktu Buang</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Target Maks Bita</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Target Maks Objek</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>Tidak ada aplikasi ditambahkan</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Batas aplikasi tercapai</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Sebuah pool hanya dapat memiliki empat definisi aplikasi.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Karakter diperbolehkan \'_a-zA-Z0-9\'</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>Panjang maksimum 128 karakter</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Saring atau tambah aplikasi</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Tambah aplikasi</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>profil erasure code</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Ukuran Replikasi</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Perubahan Terakhir</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Profil Erasure Code</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Aturan Crush</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>buket</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>buket</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>pengguna</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>pengguna</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Cakupan</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Baca</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Buat</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Peran Sistem</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Perbarui pengguna</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Lanjutkan</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>Anda dikeluarkan otomatis karena peran Anda telah berubah.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Tiap objek dipecah dalam pecahan-data, masing-masing disimpan pada OSD yang berbeda.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Hitung pecahan coding untuk tiap objek dan simpan pada OSD yang berbeda.\nJumlah pecahan data juga menjadi jumlah OSD yang diperbolehkan mati tanpa kehilangan data.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>Plugin jerasure merupakan plugin paling umum dan fleksibel,\nserta merupakan plugin bawaan Ceph untuk pool erasure code.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>Teknik yang lebih fleksibel yaitu reed_sol_van : cukup mengeset k\ndan m. Teknik cauchy_good bisa lebih cepat, namun Anda harus memilih ukuran paket\ndengan seksama. Semua reed_sol_r6_op, liberation, blaum_roth, liber8tion setara dengan RAID6\ndalam hal mereka hanya bisa diatur dengan m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>Penyandian dilakukan setiap saat pada ukuran bita paket.\nSulit untuk menentukan ukuran paket yang tepat.\nSilakan cek dokumentasi jerasure untuk informasi lebih mendalam.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Pada plugin jerasure, saat objek dengan erasure code disimpan pada\nbanyak OSD, pemulihan dari OSD yang hilang membutuhkan akses dari OSD lainnya.\nContoh, saat jerasure dikonfigurasi dengan k=8 dan m=4, saat satu OSD mati, maka pemulihan akan membutuhkan pembacaan dari tujuh OSD lainnya.\n\nPlugin lrc erasure code membuat pecahan paritas lokal agar dapat memulihkan \ndengan OSD yang lebih sedikit. Contoh, jika lrc dikonfigurasi dengan k=8, m=4, dan l=4, maka lrc akan\nmembuat pecahan paritas tambahan tiap empat OSD. Saat satu OSD mati, maka pemulihan dapat dilakukan hanya dengan 4 OSD, alih-alih 7 OSD.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Kelompokkan pecahan data dan coding ke dalam ukuran lokalitas. Controh\nuntuk k=4 dan m=2, saat lokalitas=3 dua grup dari tiga akan dibuat. Setiap set akan\ndipulihkan tanpa membaca pecahan dari set lainnya.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>Tipe buket crush setiap set pecahan yang didefinisikan oleh l  \nakan disimpan. Contoh, jika diset pada rak, tiap grup pecahan l akan \nditempatkan pada rak berbeda. Ini akan digunakan pada aturan step CRUSH yaitu \nmemilih tiap rak. Jika tidak diset, tidak akan ada pengelompokkan.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>Plugin isa menghimpun perpustakaan ISA. Hanya dapat berjalan pada prosesor Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>Plugin ISA memiliki dua jenis Reed Solomon.\nJika reed_sol_van diset, maka menjadi Vandermonde, jika cauchy diset, maka menjadi Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>Plugin shec mengenkapsulasi banyak pustaka SHEC.\nHal ini agar ceph dapat dipulihkan dengan lebih efisien dari kode Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>Jumlah potongan paritas yang masing-masing mencakup setiap potongan data \ndalam rentang perhitungannya. Nilai ini digunakan untuk perkiraan daya tahan. Contoh, jika c=2, \n2 OSD dapat mati tanpa kehilangan data.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>Nama buket crush digunakan sebagai langkah pertama dari aturan CRUSH.\nContoh diambil langkah bawaan.</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Memastikan tidak ada pecahan data berada pada buket dengan domain kegagalan\nyang sama. Contoh, saat domain gagal adalah hos, maka tidak ada pecahan data yang akan disimpan \npada hos yang sama. Aturan CRUSH seperti step chooseleaf hos akan digunakan untuk hal tersebut.</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Batasi penempatan ke perangkat dengan kelas tertentu\n(cth. ssd atau hdd), menggunakan nama kelas perangkat crush pada peta CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Set nama direktori empat plugin erasure code akan dimuat.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Izinkan semua operasi</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Izinkan hanya untuk operasi yang tidak mengubah server</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>Tidak diizinkan untuk operasi baca dan tulis, namun izinkan operasi lainnya</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>Tidak diizinkan untuk baca, tulis, atau operasi lainnya yang mengubah atribut berkas atau konten direktori</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>Tidak diizinkan untuk semua hal</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Pilih prioritas --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Rendah</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Tinggi</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Informasi</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>5 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>15 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>30 menit terakhir</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>1 Jam Terakhir (Bawaan)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>3 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>6 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>12 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>24 jam terakhir</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Kemarin</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hari ini</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Sejauh hari ini</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Kemarin dulu</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>2 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Hari ini minggu lalu</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>Minggu lalu</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Minggu ini</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Sejauh minggu ini</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>7 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>Bulan lalu</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Bulan ini</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Sejauh bulan ini</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>30 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>90 hari terakhir</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>6 bulan terakhir</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>1 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>Tahun lalu</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Tahun ini</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Sejauh tahun ini</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>2 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>5 tahun terakhir</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>Tidak ada yang dipilih.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Batalkan memilih untuk memilih ulang</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Batas pemilihan tercapai</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Tanda penyaringan</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Tambahkan lencana</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>Tidak ada yang tersedia.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Klon</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Salin</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Deep Scrub</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Hancurkan</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Ratakan</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Tandai Gugur</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Tandai Masuk</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Tandai Hilang</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Tandai Keluar</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteksi</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Ubah nama</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Pulihkan</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Pindahkan ke Tempat Sampah</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Tidak diproteksi</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Dihapus</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Diklon</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Disalin</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Diratakan</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Dibuang</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Dipulihkan</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Dikembalikan</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Ya</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>Tidak</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Kualitas Layanan atau QoS</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Limit BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>Limit IO bytes per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Limit IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>Limit operasi IO per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Limit Baca BPS </target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>Limit byte baca per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Limit IOPS Baca</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>Limit operasi baca per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Limit Tulis BPS</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>Limit tulis byte per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Limit IOPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>Limit operasi tulis per detik yang diinginkan.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Letupan BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari IO byte.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Letupan IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst operasi IO.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Letupan Baca BPS</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari baca byte.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Letupan IOPS Baca</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst operasi baca.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Letupan BPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari tulis byte.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Letupan IOPS Tulis</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>Limit yang diinginkan untuk letupan atau burst dari operasi baca.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Mengeksekusi</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>eksekusi</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Dieksekusi</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tugas tak diketahui</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Membuat</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>buat</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Memperbarui</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>perbarui</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Menghapus</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Pengklonan</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>klon</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Menyalin</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>salin</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Meratakan</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>ratakan</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Mengembalikan</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>kembalikan</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Memindahkan</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>pindah</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>dipindahkan</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>Tidak dapat menemukan image.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Memulihkan</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>pulihkan</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Membuang</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>buang</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>semua pool</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>Gagal menonaktifkan pencerminan karena sedang bermitra.</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},jtHE:function(t,e,n){"use strict";n.d(e,"a",(function(){return l}));var a=n("XNiG"),r=n("qgXg"),o=n("quSY"),i=n("pxpQ"),s=n("9ppp"),c=n("Ylt2");class l extends a.a{constructor(t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,n){super(),this.scheduler=n,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){const e=this._events;e.push(t),e.length>this._bufferSize&&e.shift(),super.next(t)}nextTimeWindow(t){this._events.push(new d(this._getNow(),t)),this._trimBufferThenGetEvents(),super.next(t)}_subscribe(t){const e=this._infiniteTimeWindow,n=e?this._events:this._trimBufferThenGetEvents(),a=this.scheduler,r=n.length;let l;if(this.closed)throw new s.a;if(this.isStopped||this.hasError?l=o.a.EMPTY:(this.observers.push(t),l=new c.a(this,t)),a&&t.add(t=new i.a(t,a)),e)for(let o=0;o<r&&!t.closed;o++)t.next(n[o]);else for(let o=0;o<r&&!t.closed;o++)t.next(n[o].value);return this.hasError?t.error(this.thrownError):this.isStopped&&t.complete(),l}_getNow(){return(this.scheduler||r.a).now()}_trimBufferThenGetEvents(){const t=this._getNow(),e=this._bufferSize,n=this._windowTime,a=this._events,r=a.length;let o=0;for(;o<r&&!(t-a[o].time<n);)o++;return r>e&&(o=Math.max(o,r-e)),o>0&&a.splice(0,o),a}}class d{constructor(t,e){this.time=t,this.value=e}}},juv8:function(t,e,n){var a=n("MrPd"),r=n("hypo");t.exports=function(t,e,n,o){var i=!n;n||(n={});for(var s=-1,c=e.length;++s<c;){var l=e[s],d=o?o(n[l],t[l],l,n,t):void 0;void 0===d&&(d=t[l]),i?r(n,l,d):a(n,l,d)}return n}},jvuA:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("UReH");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new o.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),o.ContentChild(i.DatatableRowDetailTemplateDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"toggle",void 0),a([o.Directive({selector:"ngx-datatable-row-detail"})],t)}()},"k+1r":function(t,e,n){var a=n("QkVE");t.exports=function(t){var e=a(this,t).delete(t);return this.size-=e?1:0,e}},kEOa:function(t,e,n){!function(t){"use strict";var e={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};t.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".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:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(t){return t.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(t){return n[t]}))},postformat:function(t){return t.replace(/\d/g,(function(t){return e[t]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(t,e){return 12===t&&(t=0),"রাত"===e&&t>=4||"দুপুর"===e&&t<5||"বিকাল"===e?t+12:t},meridiem:function(t,e,n){return t<4?"রাত":t<10?"সকাল":t<17?"দুপুর":t<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n("wd/R"))},kJI8:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},kJWO:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")()},kOOl:function(t,e){var n=0,a=Math.random();t.exports=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++n+a).toString(36)}},kOpN:function(t,e,n){!function(t){"use strict";t.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n("wd/R"))},kRJp:function(t,e,n){var a=n("g6v/"),r=n("m/L8"),o=n("XGwC");t.exports=a?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},kU1M:function(t,e,n){"use strict";n.r(e);var a=n("l7GE"),r=n("ZUHj");function o(t){return function(e){return e.lift(new i(t))}}class i{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new s(t,this.durationSelector))}}class s extends a.a{constructor(t,e){super(t),this.durationSelector=e,this.hasValue=!1}_next(t){if(this.value=t,this.hasValue=!0,!this.throttled){let n;try{const{durationSelector:e}=this;n=e(t)}catch(e){return this.destination.error(e)}const a=Object(r.a)(this,n);!a||a.closed?this.clearThrottle():this.add(this.throttled=a)}}clearThrottle(){const{value:t,hasValue:e,throttled:n}=this;n&&(this.remove(n),this.throttled=null,n.unsubscribe()),e&&(this.value=null,this.hasValue=!1,this.destination.next(t))}notifyNext(t,e,n,a){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}var c=n("D0XW"),l=n("PqYM");function d(t,e=c.a){return o(()=>Object(l.a)(t,e))}function u(t){return function(e){return e.lift(new g(t))}}class g{constructor(t){this.closingNotifier=t}call(t,e){return e.subscribe(new f(t,this.closingNotifier))}}class f extends a.a{constructor(t,e){super(t),this.buffer=[],this.add(Object(r.a)(this,e))}_next(t){this.buffer.push(t)}notifyNext(t,e,n,a,r){const o=this.buffer;this.buffer=[],this.destination.next(o)}}var p=n("7o/Q");function m(t,e=null){return function(n){return n.lift(new h(t,e))}}class h{constructor(t,e){this.bufferSize=t,this.startBufferEvery=e,this.subscriberClass=e&&t!==e?y:b}call(t,e){return e.subscribe(new this.subscriberClass(t,this.bufferSize,this.startBufferEvery))}}class b extends p.a{constructor(t,e){super(t),this.bufferSize=e,this.buffer=[]}_next(t){const e=this.buffer;e.push(t),e.length==this.bufferSize&&(this.destination.next(e),this.buffer=[])}_complete(){const t=this.buffer;t.length>0&&this.destination.next(t),super._complete()}}class y extends p.a{constructor(t,e,n){super(t),this.bufferSize=e,this.startBufferEvery=n,this.buffers=[],this.count=0}_next(t){const{bufferSize:e,startBufferEvery:n,buffers:a,count:r}=this;this.count++,r%n==0&&a.push([]);for(let o=a.length;o--;){const n=a[o];n.push(t),n.length===e&&(a.splice(o,1),this.destination.next(n))}}_complete(){const{buffers:t,destination:e}=this;for(;t.length>0;){let n=t.shift();n.length>0&&e.next(n)}super._complete()}}var _=n("z+Ro");function O(t){let e=arguments.length,n=c.a;Object(_.a)(arguments[arguments.length-1])&&(n=arguments[arguments.length-1],e--);let a=null;e>=2&&(a=arguments[1]);let r=Number.POSITIVE_INFINITY;return e>=3&&(r=arguments[2]),function(e){return e.lift(new v(t,a,r,n))}}class v{constructor(t,e,n,a){this.bufferTimeSpan=t,this.bufferCreationInterval=e,this.maxBufferSize=n,this.scheduler=a}call(t,e){return e.subscribe(new P(t,this.bufferTimeSpan,this.bufferCreationInterval,this.maxBufferSize,this.scheduler))}}class C{constructor(){this.buffer=[]}}class P extends p.a{constructor(t,e,n,a,r){super(t),this.bufferTimeSpan=e,this.bufferCreationInterval=n,this.maxBufferSize=a,this.scheduler=r,this.contexts=[];const o=this.openContext();if(this.timespanOnly=null==n||n<0,this.timespanOnly)this.add(o.closeAction=r.schedule(M,e,{subscriber:this,context:o,bufferTimeSpan:e}));else{const t={bufferTimeSpan:e,bufferCreationInterval:n,subscriber:this,scheduler:r};this.add(o.closeAction=r.schedule(w,e,{subscriber:this,context:o})),this.add(r.schedule(x,n,t))}}_next(t){const e=this.contexts,n=e.length;let a;for(let r=0;r<n;r++){const n=e[r],o=n.buffer;o.push(t),o.length==this.maxBufferSize&&(a=n)}a&&this.onBufferFull(a)}_error(t){this.contexts.length=0,super._error(t)}_complete(){const{contexts:t,destination:e}=this;for(;t.length>0;){const n=t.shift();e.next(n.buffer)}super._complete()}_unsubscribe(){this.contexts=null}onBufferFull(t){this.closeContext(t);const e=t.closeAction;if(e.unsubscribe(),this.remove(e),!this.closed&&this.timespanOnly){t=this.openContext();const e=this.bufferTimeSpan;this.add(t.closeAction=this.scheduler.schedule(M,e,{subscriber:this,context:t,bufferTimeSpan:e}))}}openContext(){const t=new C;return this.contexts.push(t),t}closeContext(t){this.destination.next(t.buffer);const e=this.contexts;(e?e.indexOf(t):-1)>=0&&e.splice(e.indexOf(t),1)}}function M(t){const e=t.subscriber,n=t.context;n&&e.closeContext(n),e.closed||(t.context=e.openContext(),t.context.closeAction=this.schedule(t,t.bufferTimeSpan))}function x(t){const{bufferCreationInterval:e,bufferTimeSpan:n,subscriber:a,scheduler:r}=t,o=a.openContext();a.closed||(a.add(o.closeAction=r.schedule(w,n,{subscriber:a,context:o})),this.schedule(t,e))}function w(t){const{subscriber:e,context:n}=t;e.closeContext(n)}var T=n("quSY");function S(t,e){return function(n){return n.lift(new k(t,e))}}class k{constructor(t,e){this.openings=t,this.closingSelector=e}call(t,e){return e.subscribe(new I(t,this.openings,this.closingSelector))}}class I extends a.a{constructor(t,e,n){super(t),this.openings=e,this.closingSelector=n,this.contexts=[],this.add(Object(r.a)(this,e))}_next(t){const e=this.contexts,n=e.length;for(let a=0;a<n;a++)e[a].buffer.push(t)}_error(t){const e=this.contexts;for(;e.length>0;){const t=e.shift();t.subscription.unsubscribe(),t.buffer=null,t.subscription=null}this.contexts=null,super._error(t)}_complete(){const t=this.contexts;for(;t.length>0;){const e=t.shift();this.destination.next(e.buffer),e.subscription.unsubscribe(),e.buffer=null,e.subscription=null}this.contexts=null,super._complete()}notifyNext(t,e,n,a,r){t?this.closeBuffer(t):this.openBuffer(e)}notifyComplete(t){this.closeBuffer(t.context)}openBuffer(t){try{const e=this.closingSelector.call(this,t);e&&this.trySubscribe(e)}catch(e){this._error(e)}}closeBuffer(t){const e=this.contexts;if(e&&t){const{buffer:n,subscription:a}=t;this.destination.next(n),e.splice(e.indexOf(t),1),this.remove(a),a.unsubscribe()}}trySubscribe(t){const e=this.contexts,n=new T.a,a={buffer:[],subscription:n};e.push(a);const o=Object(r.a)(this,t,a);!o||o.closed?this.closeBuffer(a):(o.context=a,this.add(o),n.add(o))}}function N(t){return function(e){return e.lift(new R(t))}}class R{constructor(t){this.closingSelector=t}call(t,e){return e.subscribe(new A(t,this.closingSelector))}}class A extends a.a{constructor(t,e){super(t),this.closingSelector=e,this.subscribing=!1,this.openBuffer()}_next(t){this.buffer.push(t)}_complete(){const t=this.buffer;t&&this.destination.next(t),super._complete()}_unsubscribe(){this.buffer=null,this.subscribing=!1}notifyNext(t,e,n,a,r){this.openBuffer()}notifyComplete(){this.subscribing?this.complete():this.openBuffer()}openBuffer(){let t,{closingSubscription:e}=this;e&&(this.remove(e),e.unsubscribe()),this.buffer&&this.destination.next(this.buffer),this.buffer=[];try{const{closingSelector:e}=this;t=e()}catch(n){return this.error(n)}e=new T.a,this.closingSubscription=e,this.add(e),this.subscribing=!0,e.add(Object(r.a)(this,t)),this.subscribing=!1}}var E=n("JIr8"),D=n("itXk");function L(t){return e=>e.lift(new D.a(t))}var q=n("DH7j"),j=n("Cfvw");function F(...t){let e=null;return"function"==typeof t[t.length-1]&&(e=t.pop()),1===t.length&&Object(q.a)(t[0])&&(t=t[0].slice()),n=>n.lift.call(Object(j.a)([n,...t]),new D.a(e))}var z=n("f29J"),G=n("0EUg"),B=n("bOdf");function V(t,e){return Object(B.a)(()=>t,e)}function Y(t){return e=>e.lift(new H(t,e))}class H{constructor(t,e){this.predicate=t,this.source=e}call(t,e){return e.subscribe(new U(t,this.predicate,this.source))}}class U extends p.a{constructor(t,e,n){super(t),this.predicate=e,this.source=n,this.count=0,this.index=0}_next(t){this.predicate?this._tryPredicate(t):this.count++}_tryPredicate(t){let e;try{e=this.predicate(t,this.index++,this.source)}catch(n){return void this.destination.error(n)}e&&this.count++}_complete(){this.destination.next(this.count),this.destination.complete()}}function W(t){return e=>e.lift(new K(t))}class K{constructor(t){this.durationSelector=t}call(t,e){return e.subscribe(new $(t,this.durationSelector))}}class $ extends a.a{constructor(t,e){super(t),this.durationSelector=e,this.hasValue=!1,this.durationSubscription=null}_next(t){try{const e=this.durationSelector.call(this,t);e&&this._tryNext(t,e)}catch(e){this.destination.error(e)}}_complete(){this.emitValue(),this.destination.complete()}_tryNext(t,e){let n=this.durationSubscription;this.value=t,this.hasValue=!0,n&&(n.unsubscribe(),this.remove(n)),n=Object(r.a)(this,e),n&&!n.closed&&this.add(this.durationSubscription=n)}notifyNext(t,e,n,a,r){this.emitValue()}notifyComplete(){this.emitValue()}emitValue(){if(this.hasValue){const t=this.value,e=this.durationSubscription;e&&(this.durationSubscription=null,e.unsubscribe(),this.remove(e)),this.value=null,this.hasValue=!1,super._next(t)}}}var Z=n("Kj3r"),J=n("xbPD");function X(t){return t instanceof Date&&!isNaN(+t)}var Q=n("WMd4");function tt(t,e=c.a){const n=X(t)?+t-e.now():Math.abs(t);return t=>t.lift(new et(n,e))}class et{constructor(t,e){this.delay=t,this.scheduler=e}call(t,e){return e.subscribe(new nt(t,this.delay,this.scheduler))}}class nt extends p.a{constructor(t,e,n){super(t),this.delay=e,this.scheduler=n,this.queue=[],this.active=!1,this.errored=!1}static dispatch(t){const e=t.source,n=e.queue,a=t.scheduler,r=t.destination;for(;n.length>0&&n[0].time-a.now()<=0;)n.shift().notification.observe(r);if(n.length>0){const e=Math.max(0,n[0].time-a.now());this.schedule(t,e)}else this.unsubscribe(),e.active=!1}_schedule(t){this.active=!0,this.destination.add(t.schedule(nt.dispatch,this.delay,{source:this,destination:this.destination,scheduler:t}))}scheduleNotification(t){if(!0===this.errored)return;const e=this.scheduler,n=new at(e.now()+this.delay,t);this.queue.push(n),!1===this.active&&this._schedule(e)}_next(t){this.scheduleNotification(Q.a.createNext(t))}_error(t){this.errored=!0,this.queue=[],this.destination.error(t),this.unsubscribe()}_complete(){this.scheduleNotification(Q.a.createComplete()),this.unsubscribe()}}class at{constructor(t,e){this.time=t,this.notification=e}}var rt=n("HDdC");function ot(t,e){return e?n=>new ct(n,e).lift(new it(t)):e=>e.lift(new it(t))}class it{constructor(t){this.delayDurationSelector=t}call(t,e){return e.subscribe(new st(t,this.delayDurationSelector))}}class st extends a.a{constructor(t,e){super(t),this.delayDurationSelector=e,this.completed=!1,this.delayNotifierSubscriptions=[],this.index=0}notifyNext(t,e,n,a,r){this.destination.next(t),this.removeSubscription(r),this.tryComplete()}notifyError(t,e){this._error(t)}notifyComplete(t){const e=this.removeSubscription(t);e&&this.destination.next(e),this.tryComplete()}_next(t){const e=this.index++;try{const n=this.delayDurationSelector(t,e);n&&this.tryDelay(n,t)}catch(n){this.destination.error(n)}}_complete(){this.completed=!0,this.tryComplete(),this.unsubscribe()}removeSubscription(t){t.unsubscribe();const e=this.delayNotifierSubscriptions.indexOf(t);return-1!==e&&this.delayNotifierSubscriptions.splice(e,1),t.outerValue}tryDelay(t,e){const n=Object(r.a)(this,t,e);n&&!n.closed&&(this.destination.add(n),this.delayNotifierSubscriptions.push(n))}tryComplete(){this.completed&&0===this.delayNotifierSubscriptions.length&&this.destination.complete()}}class ct extends rt.a{constructor(t,e){super(),this.source=t,this.subscriptionDelay=e}_subscribe(t){this.subscriptionDelay.subscribe(new lt(t,this.source))}}class lt extends p.a{constructor(t,e){super(),this.parent=t,this.source=e,this.sourceSubscribed=!1}_next(t){this.subscribeToSource()}_error(t){this.unsubscribe(),this.parent.error(t)}_complete(){this.unsubscribe(),this.subscribeToSource()}subscribeToSource(){this.sourceSubscribed||(this.sourceSubscribed=!0,this.unsubscribe(),this.source.subscribe(this.parent))}}function dt(){return function(t){return t.lift(new ut)}}class ut{call(t,e){return e.subscribe(new gt(t))}}class gt extends p.a{constructor(t){super(t)}_next(t){t.observe(this.destination)}}var ft=n("02Lk"),pt=n("/uUt");function mt(t,e){return Object(pt.a)((n,a)=>e?e(n[t],a[t]):n[t]===a[t])}var ht=n("4I5i"),bt=n("pLZG"),yt=n("XDbj"),_t=n("IzEk");function Ot(t,e){if(t<0)throw new ht.a;const n=arguments.length>=2;return a=>a.pipe(Object(bt.a)((e,n)=>n===t),Object(_t.a)(1),n?Object(J.a)(e):Object(yt.a)(()=>new ht.a))}var vt=n("GyhO"),Ct=n("LRne");function Pt(...t){return e=>Object(vt.a)(e,Object(Ct.a)(...t))}var Mt=n("Gi4w");function xt(){return t=>t.lift(new wt)}class wt{call(t,e){return e.subscribe(new Tt(t))}}class Tt extends a.a{constructor(t){super(t),this.hasCompleted=!1,this.hasSubscription=!1}_next(t){this.hasSubscription||(this.hasSubscription=!0,this.add(Object(r.a)(this,t)))}_complete(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete()}notifyComplete(t){this.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()}}var St=n("51Dv"),kt=n("lJxs");function It(t,e){return e?n=>n.pipe(It((n,a)=>Object(j.a)(t(n,a)).pipe(Object(kt.a)((t,r)=>e(n,t,a,r))))):e=>e.lift(new Nt(t))}class Nt{constructor(t){this.project=t}call(t,e){return e.subscribe(new Rt(t,this.project))}}class Rt extends a.a{constructor(t,e){super(t),this.project=e,this.hasSubscription=!1,this.hasCompleted=!1,this.index=0}_next(t){this.hasSubscription||this.tryNext(t)}tryNext(t){let e;const n=this.index++;try{e=this.project(t,n)}catch(a){return void this.destination.error(a)}this.hasSubscription=!0,this._innerSub(e,t,n)}_innerSub(t,e,n){const a=new St.a(this,e,n),o=this.destination;o.add(a);const i=Object(r.a)(this,t,void 0,void 0,a);i!==a&&o.add(i)}_complete(){this.hasCompleted=!0,this.hasSubscription||this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,a,r){this.destination.next(e)}notifyError(t){this.destination.error(t)}notifyComplete(t){this.destination.remove(t),this.hasSubscription=!1,this.hasCompleted&&this.destination.complete()}}function At(t,e=Number.POSITIVE_INFINITY,n){return e=(e||0)<1?Number.POSITIVE_INFINITY:e,a=>a.lift(new Et(t,e,n))}class Et{constructor(t,e,n){this.project=t,this.concurrent=e,this.scheduler=n}call(t,e){return e.subscribe(new Dt(t,this.project,this.concurrent,this.scheduler))}}class Dt extends a.a{constructor(t,e,n,a){super(t),this.project=e,this.concurrent=n,this.scheduler=a,this.index=0,this.active=0,this.hasCompleted=!1,n<Number.POSITIVE_INFINITY&&(this.buffer=[])}static dispatch(t){const{subscriber:e,result:n,value:a,index:r}=t;e.subscribeToProjection(n,a,r)}_next(t){const e=this.destination;if(e.closed)return void this._complete();const n=this.index++;if(this.active<this.concurrent){e.next(t);try{const{project:e}=this,a=e(t,n);this.scheduler?this.destination.add(this.scheduler.schedule(Dt.dispatch,0,{subscriber:this,result:a,value:t,index:n})):this.subscribeToProjection(a,t,n)}catch(a){e.error(a)}}else this.buffer.push(t)}subscribeToProjection(t,e,n){this.active++,this.destination.add(Object(r.a)(this,t,e,n))}_complete(){this.hasCompleted=!0,this.hasCompleted&&0===this.active&&this.destination.complete(),this.unsubscribe()}notifyNext(t,e,n,a,r){this._next(e)}notifyComplete(t){const e=this.buffer;this.destination.remove(t),this.active--,e&&e.length>0&&this._next(e.shift()),this.hasCompleted&&0===this.active&&this.destination.complete()}}var Lt=n("nYR2");function qt(t,e){if("function"!=typeof t)throw new TypeError("predicate is not a function");return n=>n.lift(new jt(t,n,!1,e))}class jt{constructor(t,e,n,a){this.predicate=t,this.source=e,this.yieldIndex=n,this.thisArg=a}call(t,e){return e.subscribe(new Ft(t,this.predicate,this.source,this.yieldIndex,this.thisArg))}}class Ft extends p.a{constructor(t,e,n,a,r){super(t),this.predicate=e,this.source=n,this.yieldIndex=a,this.thisArg=r,this.index=0}notifyComplete(t){const e=this.destination;e.next(t),e.complete(),this.unsubscribe()}_next(t){const{predicate:e,thisArg:n}=this,a=this.index++;try{e.call(n||this,t,a,this.source)&&this.notifyComplete(this.yieldIndex?a:t)}catch(r){this.destination.error(r)}}_complete(){this.notifyComplete(this.yieldIndex?-1:void 0)}}function zt(t,e){return n=>n.lift(new jt(t,n,!0,e))}var Gt=n("SxV6"),Bt=n("OQgR");function Vt(){return function(t){return t.lift(new Yt)}}class Yt{call(t,e){return e.subscribe(new Ht(t))}}class Ht extends p.a{_next(t){}}function Ut(){return t=>t.lift(new Wt)}class Wt{call(t,e){return e.subscribe(new Kt(t))}}class Kt extends p.a{constructor(t){super(t)}notifyComplete(t){const e=this.destination;e.next(t),e.complete()}_next(t){this.notifyComplete(!1)}_complete(){this.notifyComplete(!0)}}var $t=n("NJ9Y");function Zt(t){return e=>e.lift(new Jt(t))}class Jt{constructor(t){this.value=t}call(t,e){return e.subscribe(new Xt(t,this.value))}}class Xt extends p.a{constructor(t,e){super(t),this.value=e}_next(t){this.destination.next(this.value)}}function Qt(){return function(t){return t.lift(new te)}}class te{call(t,e){return e.subscribe(new ee(t))}}class ee extends p.a{constructor(t){super(t)}_next(t){this.destination.next(Q.a.createNext(t))}_error(t){const e=this.destination;e.next(Q.a.createError(t)),e.complete()}_complete(){const t=this.destination;t.next(Q.a.createComplete()),t.complete()}}var ne=n("128B");function ae(t){const e="function"==typeof t?(e,n)=>t(e,n)>0?e:n:(t,e)=>t>e?t:e;return Object(ne.a)(e)}var re=n("VRyK");function oe(...t){return e=>e.lift.call(Object(re.a)(e,...t))}var ie=n("bHdf"),se=n("5+tZ");function ce(t,e,n=Number.POSITIVE_INFINITY){return"function"==typeof e?Object(se.a)(()=>t,e,n):("number"==typeof e&&(n=e),Object(se.a)(()=>t,n))}function le(t,e,n=Number.POSITIVE_INFINITY){return a=>a.lift(new de(t,e,n))}class de{constructor(t,e,n){this.accumulator=t,this.seed=e,this.concurrent=n}call(t,e){return e.subscribe(new ue(t,this.accumulator,this.seed,this.concurrent))}}class ue extends a.a{constructor(t,e,n,a){super(t),this.accumulator=e,this.acc=n,this.concurrent=a,this.hasValue=!1,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(t){if(this.active<this.concurrent){const n=this.index++,a=this.destination;let r;try{const{accumulator:e}=this;r=e(this.acc,t,n)}catch(e){return a.error(e)}this.active++,this._innerSub(r,t,n)}else this.buffer.push(t)}_innerSub(t,e,n){const a=new St.a(this,e,n),o=this.destination;o.add(a);const i=Object(r.a)(this,t,void 0,void 0,a);i!==a&&o.add(i)}_complete(){this.hasCompleted=!0,0===this.active&&0===this.buffer.length&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete()),this.unsubscribe()}notifyNext(t,e,n,a,r){const{destination:o}=this;this.acc=e,this.hasValue=!0,o.next(e)}notifyComplete(t){const e=this.buffer;this.destination.remove(t),this.active--,e.length>0?this._next(e.shift()):0===this.active&&this.hasCompleted&&(!1===this.hasValue&&this.destination.next(this.acc),this.destination.complete())}}function ge(t){const e="function"==typeof t?(e,n)=>t(e,n)<0?e:n:(t,e)=>t<e?t:e;return Object(ne.a)(e)}var fe=n("oB13"),pe=n("pxpQ");function me(...t){return 1===t.length&&Object(q.a)(t[0])&&(t=t[0]),e=>e.lift(new he(t))}class he{constructor(t){this.nextSources=t}call(t,e){return e.subscribe(new be(t,this.nextSources))}}class be extends a.a{constructor(t,e){super(t),this.destination=t,this.nextSources=e}notifyError(t,e){this.subscribeToNextSource()}notifyComplete(t){this.subscribeToNextSource()}_error(t){this.subscribeToNextSource(),this.unsubscribe()}_complete(){this.subscribeToNextSource(),this.unsubscribe()}subscribeToNextSource(){const t=this.nextSources.shift();if(t){const e=new St.a(this,void 0,void 0),n=this.destination;n.add(e);const a=Object(r.a)(this,t,void 0,void 0,e);a!==e&&n.add(a)}else this.destination.complete()}}function ye(){return t=>t.lift(new _e)}class _e{call(t,e){return e.subscribe(new Oe(t))}}class Oe extends p.a{constructor(t){super(t),this.hasPrev=!1}_next(t){let e;this.hasPrev?e=[this.prev,t]:this.hasPrev=!0,this.prev=t,e&&this.destination.next(e)}}var ve=n("F97/");function Ce(t,e){return n=>[Object(bt.a)(t,e)(n),Object(bt.a)(Object(ve.a)(t,e))(n)]}function Pe(...t){const e=t.length;if(0===e)throw new Error("list of properties cannot be empty.");return n=>Object(kt.a)(function(t,e){return n=>{let a=n;for(let r=0;r<e;r++){const e=a[t[r]];if(void 0===e)return;a=e}return a}}(t,e))(n)}var Me=n("XNiG");function xe(t){return t?Object(fe.a)(()=>new Me.a,t):Object(fe.a)(new Me.a)}var we=n("2Vo4");function Te(t){return e=>Object(fe.a)(new we.a(t))(e)}var Se=n("NHP+");function ke(){return t=>Object(fe.a)(new Se.a)(t)}var Ie=n("jtHE");function Ne(t,e,n,a){n&&"function"!=typeof n&&(a=n);const r="function"==typeof n?n:void 0,o=new Ie.a(t,e,a);return t=>Object(fe.a)(()=>o,r)(t)}var Re=n("Nv8m");function Ae(...t){return function(e){return 1===t.length&&Object(q.a)(t[0])&&(t=t[0]),e.lift.call(Object(Re.a)(e,...t))}}var Ee=n("EY2u");function De(t=-1){return e=>0===t?Object(Ee.b)():e.lift(new Le(t<0?-1:t-1,e))}class Le{constructor(t,e){this.count=t,this.source=e}call(t,e){return e.subscribe(new qe(t,this.count,this.source))}}class qe extends p.a{constructor(t,e,n){super(t),this.count=e,this.source=n}complete(){if(!this.isStopped){const{source:t,count:e}=this;if(0===e)return super.complete();e>-1&&(this.count=e-1),t.subscribe(this._unsubscribeAndRecycle())}}}function je(t){return e=>e.lift(new Fe(t))}class Fe{constructor(t){this.notifier=t}call(t,e){return e.subscribe(new ze(t,this.notifier,e))}}class ze extends a.a{constructor(t,e,n){super(t),this.notifier=e,this.source=n,this.sourceIsBeingSubscribedTo=!0}notifyNext(t,e,n,a,r){this.sourceIsBeingSubscribedTo=!0,this.source.subscribe(this)}notifyComplete(t){if(!1===this.sourceIsBeingSubscribedTo)return super.complete()}complete(){if(this.sourceIsBeingSubscribedTo=!1,!this.isStopped){if(this.retries||this.subscribeToRetries(),!this.retriesSubscription||this.retriesSubscription.closed)return super.complete();this._unsubscribeAndRecycle(),this.notifications.next()}}_unsubscribe(){const{notifications:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.notifications=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null}_unsubscribeAndRecycle(){const{_unsubscribe:t}=this;return this._unsubscribe=null,super._unsubscribeAndRecycle(),this._unsubscribe=t,this}subscribeToRetries(){let t;this.notifications=new Me.a;try{const{notifier:e}=this;t=e(this.notifications)}catch(e){return super.complete()}this.retries=t,this.retriesSubscription=Object(r.a)(this,t)}}function Ge(t=-1){return e=>e.lift(new Be(t,e))}class Be{constructor(t,e){this.count=t,this.source=e}call(t,e){return e.subscribe(new Ve(t,this.count,this.source))}}class Ve extends p.a{constructor(t,e,n){super(t),this.count=e,this.source=n}error(t){if(!this.isStopped){const{source:e,count:n}=this;if(0===n)return super.error(t);n>-1&&(this.count=n-1),e.subscribe(this._unsubscribeAndRecycle())}}}function Ye(t){return e=>e.lift(new He(t,e))}class He{constructor(t,e){this.notifier=t,this.source=e}call(t,e){return e.subscribe(new Ue(t,this.notifier,this.source))}}class Ue extends a.a{constructor(t,e,n){super(t),this.notifier=e,this.source=n}error(t){if(!this.isStopped){let n=this.errors,a=this.retries,o=this.retriesSubscription;if(a)this.errors=null,this.retriesSubscription=null;else{n=new Me.a;try{const{notifier:t}=this;a=t(n)}catch(e){return super.error(e)}o=Object(r.a)(this,a)}this._unsubscribeAndRecycle(),this.errors=n,this.retries=a,this.retriesSubscription=o,n.next(t)}}_unsubscribe(){const{errors:t,retriesSubscription:e}=this;t&&(t.unsubscribe(),this.errors=null),e&&(e.unsubscribe(),this.retriesSubscription=null),this.retries=null}notifyNext(t,e,n,a,r){const{_unsubscribe:o}=this;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)}}var We=n("x+ZX");function Ke(t){return e=>e.lift(new $e(t))}class $e{constructor(t){this.notifier=t}call(t,e){const n=new Ze(t),a=e.subscribe(n);return a.add(Object(r.a)(n,this.notifier)),a}}class Ze extends a.a{constructor(){super(...arguments),this.hasValue=!1}_next(t){this.value=t,this.hasValue=!0}notifyNext(t,e,n,a,r){this.emitValue()}notifyComplete(){this.emitValue()}emitValue(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.value))}}function Je(t,e=c.a){return n=>n.lift(new Xe(t,e))}class Xe{constructor(t,e){this.period=t,this.scheduler=e}call(t,e){return e.subscribe(new Qe(t,this.period,this.scheduler))}}class Qe extends p.a{constructor(t,e,n){super(t),this.period=e,this.scheduler=n,this.hasValue=!1,this.add(n.schedule(tn,e,{subscriber:this,period:e}))}_next(t){this.lastValue=t,this.hasValue=!0}notifyNext(){this.hasValue&&(this.hasValue=!1,this.destination.next(this.lastValue))}}function tn(t){let{subscriber:e,period:n}=t;e.notifyNext(),this.schedule(t,n)}var en=n("Kqap");function nn(t,e){return n=>n.lift(new an(t,e))}class an{constructor(t,e){this.compareTo=t,this.comparator=e}call(t,e){return e.subscribe(new rn(t,this.compareTo,this.comparator))}}class rn extends p.a{constructor(t,e,n){super(t),this.compareTo=e,this.comparator=n,this._a=[],this._b=[],this._oneComplete=!1,this.destination.add(e.subscribe(new on(t,this)))}_next(t){this._oneComplete&&0===this._b.length?this.emit(!1):(this._a.push(t),this.checkValues())}_complete(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0,this.unsubscribe()}checkValues(){const{_a:t,_b:e,comparator:n}=this;for(;t.length>0&&e.length>0;){let r=t.shift(),o=e.shift(),i=!1;try{i=n?n(r,o):r===o}catch(a){this.destination.error(a)}i||this.emit(!1)}}emit(t){const{destination:e}=this;e.next(t),e.complete()}nextB(t){this._oneComplete&&0===this._a.length?this.emit(!1):(this._b.push(t),this.checkValues())}completeB(){this._oneComplete?this.emit(0===this._a.length&&0===this._b.length):this._oneComplete=!0}}class on extends p.a{constructor(t,e){super(t),this.parent=e}_next(t){this.parent.nextB(t)}_error(t){this.parent.error(t),this.unsubscribe()}_complete(){this.parent.completeB(),this.unsubscribe()}}var sn=n("w1tV"),cn=n("UXun"),ln=n("sVev");function dn(t){return e=>e.lift(new un(t,e))}class un{constructor(t,e){this.predicate=t,this.source=e}call(t,e){return e.subscribe(new gn(t,this.predicate,this.source))}}class gn extends p.a{constructor(t,e,n){super(t),this.predicate=e,this.source=n,this.seenValue=!1,this.index=0}applySingleValue(t){this.seenValue?this.destination.error("Sequence contains more than one element"):(this.seenValue=!0,this.singleValue=t)}_next(t){const e=this.index++;this.predicate?this.tryNext(t,e):this.applySingleValue(t)}tryNext(t,e){try{this.predicate(t,e,this.source)&&this.applySingleValue(t)}catch(n){this.destination.error(n)}}_complete(){const t=this.destination;this.index>0?(t.next(this.seenValue?this.singleValue:void 0),t.complete()):t.error(new ln.a)}}function fn(t){return e=>e.lift(new pn(t))}class pn{constructor(t){this.total=t}call(t,e){return e.subscribe(new mn(t,this.total))}}class mn extends p.a{constructor(t,e){super(t),this.total=e,this.count=0}_next(t){++this.count>this.total&&this.destination.next(t)}}function hn(t){return e=>e.lift(new bn(t))}class bn{constructor(t){if(this._skipCount=t,this._skipCount<0)throw new ht.a}call(t,e){return e.subscribe(0===this._skipCount?new p.a(t):new yn(t,this._skipCount))}}class yn extends p.a{constructor(t,e){super(t),this._skipCount=e,this._count=0,this._ring=new Array(e)}_next(t){const e=this._skipCount,n=this._count++;if(n<e)this._ring[n]=t;else{const a=n%e,r=this._ring,o=r[a];r[a]=t,this.destination.next(o)}}}function _n(t){return e=>e.lift(new On(t))}class On{constructor(t){this.notifier=t}call(t,e){return e.subscribe(new vn(t,this.notifier))}}class vn extends a.a{constructor(t,e){super(t),this.hasValue=!1;const n=new St.a(this,void 0,void 0);this.add(n),this.innerSubscription=n;const a=Object(r.a)(this,e,void 0,void 0,n);a!==n&&(this.add(a),this.innerSubscription=a)}_next(t){this.hasValue&&super._next(t)}notifyNext(t,e,n,a,r){this.hasValue=!0,this.innerSubscription&&this.innerSubscription.unsubscribe()}notifyComplete(){}}function Cn(t){return e=>e.lift(new Pn(t))}class Pn{constructor(t){this.predicate=t}call(t,e){return e.subscribe(new Mn(t,this.predicate))}}class Mn extends p.a{constructor(t,e){super(t),this.predicate=e,this.skipping=!0,this.index=0}_next(t){const e=this.destination;this.skipping&&this.tryCallPredicate(t),this.skipping||e.next(t)}tryCallPredicate(t){try{const e=this.predicate(t,this.index++);this.skipping=Boolean(e)}catch(e){this.destination.error(e)}}}var xn=n("JX91"),wn=n("7Hc7"),Tn=n("Y7HM");class Sn extends rt.a{constructor(t,e=0,n=wn.a){super(),this.source=t,this.delayTime=e,this.scheduler=n,(!Object(Tn.a)(e)||e<0)&&(this.delayTime=0),n&&"function"==typeof n.schedule||(this.scheduler=wn.a)}static create(t,e=0,n=wn.a){return new Sn(t,e,n)}static dispatch(t){const{source:e,subscriber:n}=t;return this.add(e.subscribe(n))}_subscribe(t){return this.scheduler.schedule(Sn.dispatch,this.delayTime,{source:this.source,subscriber:t})}}function kn(t,e=0){return function(n){return n.lift(new In(t,e))}}class In{constructor(t,e){this.scheduler=t,this.delay=e}call(t,e){return new Sn(e,this.delay,this.scheduler).subscribe(t)}}var Nn=n("eIep"),Rn=n("SpAZ");function An(){return Object(Nn.a)(Rn.a)}var En=n("aGrj"),Dn=n("BFxc");function Ln(t){return e=>e.lift(new qn(t))}class qn{constructor(t){this.notifier=t}call(t,e){const n=new jn(t),a=Object(r.a)(n,this.notifier);return a&&!n.seenValue?(n.add(a),e.subscribe(n)):n}}class jn extends a.a{constructor(t){super(t),this.seenValue=!1}notifyNext(t,e,n,a,r){this.seenValue=!0,this.complete()}notifyComplete(){}}function Fn(t,e=!1){return n=>n.lift(new zn(t,e))}class zn{constructor(t,e){this.predicate=t,this.inclusive=e}call(t,e){return e.subscribe(new Gn(t,this.predicate,this.inclusive))}}class Gn extends p.a{constructor(t,e,n){super(t),this.predicate=e,this.inclusive=n,this.index=0}_next(t){const e=this.destination;let n;try{n=this.predicate(t,this.index++)}catch(a){return void e.error(a)}this.nextOrComplete(t,n)}nextOrComplete(t,e){const n=this.destination;Boolean(e)?n.next(t):(this.inclusive&&n.next(t),n.complete())}}var Bn=n("vkgz");const Vn={leading:!0,trailing:!1};function Yn(t,e=Vn){return n=>n.lift(new Hn(t,e.leading,e.trailing))}class Hn{constructor(t,e,n){this.durationSelector=t,this.leading=e,this.trailing=n}call(t,e){return e.subscribe(new Un(t,this.durationSelector,this.leading,this.trailing))}}class Un extends a.a{constructor(t,e,n,a){super(t),this.destination=t,this.durationSelector=e,this._leading=n,this._trailing=a,this._hasValue=!1}_next(t){this._hasValue=!0,this._sendValue=t,this._throttled||(this._leading?this.send():this.throttle(t))}send(){const{_hasValue:t,_sendValue:e}=this;t&&(this.destination.next(e),this.throttle(e)),this._hasValue=!1,this._sendValue=null}throttle(t){const e=this.tryDurationSelector(t);e&&this.add(this._throttled=Object(r.a)(this,e))}tryDurationSelector(t){try{return this.durationSelector(t)}catch(e){return this.destination.error(e),null}}throttlingDone(){const{_throttled:t,_trailing:e}=this;t&&t.unsubscribe(),this._throttled=null,e&&this.send()}notifyNext(t,e,n,a,r){this.throttlingDone()}notifyComplete(){this.throttlingDone()}}function Wn(t,e=c.a,n=Vn){return a=>a.lift(new Kn(t,e,n.leading,n.trailing))}class Kn{constructor(t,e,n,a){this.duration=t,this.scheduler=e,this.leading=n,this.trailing=a}call(t,e){return e.subscribe(new $n(t,this.duration,this.scheduler,this.leading,this.trailing))}}class $n extends p.a{constructor(t,e,n,a,r){super(t),this.duration=e,this.scheduler=n,this.leading=a,this.trailing=r,this._hasTrailingValue=!1,this._trailingValue=null}_next(t){this.throttled?this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(Zn,this.duration,{subscriber:this})),this.leading?this.destination.next(t):this.trailing&&(this._trailingValue=t,this._hasTrailingValue=!0))}_complete(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()}clearThrottle(){const t=this.throttled;t&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),t.unsubscribe(),this.remove(t),this.throttled=null)}}function Zn(t){const{subscriber:e}=t;e.clearThrottle()}var Jn=n("NXyV");function Xn(t=c.a){return e=>Object(Jn.a)(()=>e.pipe(Object(en.a)(({current:e},n)=>({value:n,current:t.now(),last:e}),{current:t.now(),value:void 0,last:void 0}),Object(kt.a)(({current:t,last:e,value:n})=>new Qn(n,t-e))))}class Qn{constructor(t,e){this.value=t,this.interval=e}}var ta=n("Y6u4");function ea(t,e,n=c.a){return a=>{let r=X(t),o=r?+t-n.now():Math.abs(t);return a.lift(new na(o,r,e,n))}}class na{constructor(t,e,n,a){this.waitFor=t,this.absoluteTimeout=e,this.withObservable=n,this.scheduler=a}call(t,e){return e.subscribe(new aa(t,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))}}class aa extends a.a{constructor(t,e,n,a,r){super(t),this.absoluteTimeout=e,this.waitFor=n,this.withObservable=a,this.scheduler=r,this.action=null,this.scheduleTimeout()}static dispatchTimeout(t){const{withObservable:e}=t;t._unsubscribeAndRecycle(),t.add(Object(r.a)(t,e))}scheduleTimeout(){const{action:t}=this;t?this.action=t.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(aa.dispatchTimeout,this.waitFor,this))}_next(t){this.absoluteTimeout||this.scheduleTimeout(),super._next(t)}_unsubscribe(){this.action=null,this.scheduler=null,this.withObservable=null}}var ra=n("z6cu");function oa(t,e=c.a){return ea(t,Object(ra.a)(new ta.a),e)}function ia(t=c.a){return Object(kt.a)(e=>new sa(e,t.now()))}class sa{constructor(t,e){this.value=t,this.timestamp=e}}var ca=n("IAdc");function la(t){return function(e){return e.lift(new da(t))}}class da{constructor(t){this.windowBoundaries=t}call(t,e){const n=new ua(t),a=e.subscribe(n);return a.closed||n.add(Object(r.a)(n,this.windowBoundaries)),a}}class ua extends a.a{constructor(t){super(t),this.window=new Me.a,t.next(this.window)}notifyNext(t,e,n,a,r){this.openWindow()}notifyError(t,e){this._error(t)}notifyComplete(t){this._complete()}_next(t){this.window.next(t)}_error(t){this.window.error(t),this.destination.error(t)}_complete(){this.window.complete(),this.destination.complete()}_unsubscribe(){this.window=null}openWindow(){const t=this.window;t&&t.complete();const e=this.destination,n=this.window=new Me.a;e.next(n)}}function ga(t,e=0){return function(n){return n.lift(new fa(t,e))}}class fa{constructor(t,e){this.windowSize=t,this.startWindowEvery=e}call(t,e){return e.subscribe(new pa(t,this.windowSize,this.startWindowEvery))}}class pa extends p.a{constructor(t,e,n){super(t),this.destination=t,this.windowSize=e,this.startWindowEvery=n,this.windows=[new Me.a],this.count=0,t.next(this.windows[0])}_next(t){const e=this.startWindowEvery>0?this.startWindowEvery:this.windowSize,n=this.destination,a=this.windowSize,r=this.windows,o=r.length;for(let s=0;s<o&&!this.closed;s++)r[s].next(t);const i=this.count-a+1;if(i>=0&&i%e==0&&!this.closed&&r.shift().complete(),++this.count%e==0&&!this.closed){const t=new Me.a;r.push(t),n.next(t)}}_error(t){const e=this.windows;if(e)for(;e.length>0&&!this.closed;)e.shift().error(t);this.destination.error(t)}_complete(){const t=this.windows;if(t)for(;t.length>0&&!this.closed;)t.shift().complete();this.destination.complete()}_unsubscribe(){this.count=0,this.windows=null}}function ma(t){let e=c.a,n=null,a=Number.POSITIVE_INFINITY;return Object(_.a)(arguments[3])&&(e=arguments[3]),Object(_.a)(arguments[2])?e=arguments[2]:Object(Tn.a)(arguments[2])&&(a=arguments[2]),Object(_.a)(arguments[1])?e=arguments[1]:Object(Tn.a)(arguments[1])&&(n=arguments[1]),function(r){return r.lift(new ha(t,n,a,e))}}class ha{constructor(t,e,n,a){this.windowTimeSpan=t,this.windowCreationInterval=e,this.maxWindowSize=n,this.scheduler=a}call(t,e){return e.subscribe(new ya(t,this.windowTimeSpan,this.windowCreationInterval,this.maxWindowSize,this.scheduler))}}class ba extends Me.a{constructor(){super(...arguments),this._numberOfNextedValues=0}next(t){this._numberOfNextedValues++,super.next(t)}get numberOfNextedValues(){return this._numberOfNextedValues}}class ya extends p.a{constructor(t,e,n,a,r){super(t),this.destination=t,this.windowTimeSpan=e,this.windowCreationInterval=n,this.maxWindowSize=a,this.scheduler=r,this.windows=[];const o=this.openWindow();if(null!==n&&n>=0){const t={windowTimeSpan:e,windowCreationInterval:n,subscriber:this,scheduler:r};this.add(r.schedule(va,e,{subscriber:this,window:o,context:null})),this.add(r.schedule(Oa,n,t))}else this.add(r.schedule(_a,e,{subscriber:this,window:o,windowTimeSpan:e}))}_next(t){const e=this.windows,n=e.length;for(let a=0;a<n;a++){const n=e[a];n.closed||(n.next(t),n.numberOfNextedValues>=this.maxWindowSize&&this.closeWindow(n))}}_error(t){const e=this.windows;for(;e.length>0;)e.shift().error(t);this.destination.error(t)}_complete(){const t=this.windows;for(;t.length>0;){const e=t.shift();e.closed||e.complete()}this.destination.complete()}openWindow(){const t=new ba;return this.windows.push(t),this.destination.next(t),t}closeWindow(t){t.complete();const e=this.windows;e.splice(e.indexOf(t),1)}}function _a(t){const{subscriber:e,windowTimeSpan:n,window:a}=t;a&&e.closeWindow(a),t.window=e.openWindow(),this.schedule(t,n)}function Oa(t){const{windowTimeSpan:e,subscriber:n,scheduler:a,windowCreationInterval:r}=t,o=n.openWindow();let i={action:this,subscription:null};i.subscription=a.schedule(va,e,{subscriber:n,window:o,context:i}),this.add(i.subscription),this.schedule(t,r)}function va(t){const{subscriber:e,window:n,context:a}=t;a&&a.action&&a.subscription&&a.action.remove(a.subscription),e.closeWindow(n)}function Ca(t,e){return n=>n.lift(new Pa(t,e))}class Pa{constructor(t,e){this.openings=t,this.closingSelector=e}call(t,e){return e.subscribe(new Ma(t,this.openings,this.closingSelector))}}class Ma extends a.a{constructor(t,e,n){super(t),this.openings=e,this.closingSelector=n,this.contexts=[],this.add(this.openSubscription=Object(r.a)(this,e,e))}_next(t){const{contexts:e}=this;if(e){const n=e.length;for(let a=0;a<n;a++)e[a].window.next(t)}}_error(t){const{contexts:e}=this;if(this.contexts=null,e){const n=e.length;let a=-1;for(;++a<n;){const n=e[a];n.window.error(t),n.subscription.unsubscribe()}}super._error(t)}_complete(){const{contexts:t}=this;if(this.contexts=null,t){const e=t.length;let n=-1;for(;++n<e;){const e=t[n];e.window.complete(),e.subscription.unsubscribe()}}super._complete()}_unsubscribe(){const{contexts:t}=this;if(this.contexts=null,t){const e=t.length;let n=-1;for(;++n<e;){const e=t[n];e.window.unsubscribe(),e.subscription.unsubscribe()}}}notifyNext(t,e,n,a,o){if(t===this.openings){let t;try{const{closingSelector:n}=this;t=n(e)}catch(i){return this.error(i)}const n=new Me.a,a=new T.a,o={window:n,subscription:a};this.contexts.push(o);const s=Object(r.a)(this,t,o);s.closed?this.closeWindow(this.contexts.length-1):(s.context=o,a.add(s)),this.destination.next(n)}else this.closeWindow(this.contexts.indexOf(t))}notifyError(t){this.error(t)}notifyComplete(t){t!==this.openSubscription&&this.closeWindow(this.contexts.indexOf(t.context))}closeWindow(t){if(-1===t)return;const{contexts:e}=this,n=e[t],{window:a,subscription:r}=n;e.splice(t,1),a.complete(),r.unsubscribe()}}function xa(t){return function(e){return e.lift(new wa(t))}}class wa{constructor(t){this.closingSelector=t}call(t,e){return e.subscribe(new Ta(t,this.closingSelector))}}class Ta extends a.a{constructor(t,e){super(t),this.destination=t,this.closingSelector=e,this.openWindow()}notifyNext(t,e,n,a,r){this.openWindow(r)}notifyError(t,e){this._error(t)}notifyComplete(t){this.openWindow(t)}_next(t){this.window.next(t)}_error(t){this.window.error(t),this.destination.error(t),this.unsubscribeClosingNotification()}_complete(){this.window.complete(),this.destination.complete(),this.unsubscribeClosingNotification()}unsubscribeClosingNotification(){this.closingNotification&&this.closingNotification.unsubscribe()}openWindow(t=null){t&&(this.remove(t),t.unsubscribe());const e=this.window;e&&e.complete();const n=this.window=new Me.a;let a;this.destination.next(n);try{const{closingSelector:t}=this;a=t()}catch(o){return this.destination.error(o),void this.window.error(o)}this.add(this.closingNotification=Object(r.a)(this,a))}}function Sa(...t){return e=>{let n;return"function"==typeof t[t.length-1]&&(n=t.pop()),e.lift(new ka(t,n))}}class ka{constructor(t,e){this.observables=t,this.project=e}call(t,e){return e.subscribe(new Ia(t,this.observables,this.project))}}class Ia extends a.a{constructor(t,e,n){super(t),this.observables=e,this.project=n,this.toRespond=[];const a=e.length;this.values=new Array(a);for(let r=0;r<a;r++)this.toRespond.push(r);for(let o=0;o<a;o++){let t=e[o];this.add(Object(r.a)(this,t,t,o))}}notifyNext(t,e,n,a,r){this.values[n]=e;const o=this.toRespond;if(o.length>0){const t=o.indexOf(n);-1!==t&&o.splice(t,1)}}notifyComplete(){}_next(t){if(0===this.toRespond.length){const e=[t,...this.values];this.project?this._tryProject(e):this.destination.next(e)}}_tryProject(t){let e;try{e=this.project.apply(this,t)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}var Na=n("1uah");function Ra(...t){return function(e){return e.lift.call(Object(Na.b)(e,...t))}}function Aa(t){return e=>e.lift(new Na.a(t))}n.d(e,"audit",(function(){return o})),n.d(e,"auditTime",(function(){return d})),n.d(e,"buffer",(function(){return u})),n.d(e,"bufferCount",(function(){return m})),n.d(e,"bufferTime",(function(){return O})),n.d(e,"bufferToggle",(function(){return S})),n.d(e,"bufferWhen",(function(){return N})),n.d(e,"catchError",(function(){return E.a})),n.d(e,"combineAll",(function(){return L})),n.d(e,"combineLatest",(function(){return F})),n.d(e,"concat",(function(){return z.a})),n.d(e,"concatAll",(function(){return G.a})),n.d(e,"concatMap",(function(){return B.a})),n.d(e,"concatMapTo",(function(){return V})),n.d(e,"count",(function(){return Y})),n.d(e,"debounce",(function(){return W})),n.d(e,"debounceTime",(function(){return Z.a})),n.d(e,"defaultIfEmpty",(function(){return J.a})),n.d(e,"delay",(function(){return tt})),n.d(e,"delayWhen",(function(){return ot})),n.d(e,"dematerialize",(function(){return dt})),n.d(e,"distinct",(function(){return ft.a})),n.d(e,"distinctUntilChanged",(function(){return pt.a})),n.d(e,"distinctUntilKeyChanged",(function(){return mt})),n.d(e,"elementAt",(function(){return Ot})),n.d(e,"endWith",(function(){return Pt})),n.d(e,"every",(function(){return Mt.a})),n.d(e,"exhaust",(function(){return xt})),n.d(e,"exhaustMap",(function(){return It})),n.d(e,"expand",(function(){return At})),n.d(e,"filter",(function(){return bt.a})),n.d(e,"finalize",(function(){return Lt.a})),n.d(e,"find",(function(){return qt})),n.d(e,"findIndex",(function(){return zt})),n.d(e,"first",(function(){return Gt.a})),n.d(e,"groupBy",(function(){return Bt.b})),n.d(e,"ignoreElements",(function(){return Vt})),n.d(e,"isEmpty",(function(){return Ut})),n.d(e,"last",(function(){return $t.a})),n.d(e,"map",(function(){return kt.a})),n.d(e,"mapTo",(function(){return Zt})),n.d(e,"materialize",(function(){return Qt})),n.d(e,"max",(function(){return ae})),n.d(e,"merge",(function(){return oe})),n.d(e,"mergeAll",(function(){return ie.a})),n.d(e,"mergeMap",(function(){return se.a})),n.d(e,"flatMap",(function(){return se.a})),n.d(e,"mergeMapTo",(function(){return ce})),n.d(e,"mergeScan",(function(){return le})),n.d(e,"min",(function(){return ge})),n.d(e,"multicast",(function(){return fe.a})),n.d(e,"observeOn",(function(){return pe.b})),n.d(e,"onErrorResumeNext",(function(){return me})),n.d(e,"pairwise",(function(){return ye})),n.d(e,"partition",(function(){return Ce})),n.d(e,"pluck",(function(){return Pe})),n.d(e,"publish",(function(){return xe})),n.d(e,"publishBehavior",(function(){return Te})),n.d(e,"publishLast",(function(){return ke})),n.d(e,"publishReplay",(function(){return Ne})),n.d(e,"race",(function(){return Ae})),n.d(e,"reduce",(function(){return ne.a})),n.d(e,"repeat",(function(){return De})),n.d(e,"repeatWhen",(function(){return je})),n.d(e,"retry",(function(){return Ge})),n.d(e,"retryWhen",(function(){return Ye})),n.d(e,"refCount",(function(){return We.a})),n.d(e,"sample",(function(){return Ke})),n.d(e,"sampleTime",(function(){return Je})),n.d(e,"scan",(function(){return en.a})),n.d(e,"sequenceEqual",(function(){return nn})),n.d(e,"share",(function(){return sn.a})),n.d(e,"shareReplay",(function(){return cn.a})),n.d(e,"single",(function(){return dn})),n.d(e,"skip",(function(){return fn})),n.d(e,"skipLast",(function(){return hn})),n.d(e,"skipUntil",(function(){return _n})),n.d(e,"skipWhile",(function(){return Cn})),n.d(e,"startWith",(function(){return xn.a})),n.d(e,"subscribeOn",(function(){return kn})),n.d(e,"switchAll",(function(){return An})),n.d(e,"switchMap",(function(){return Nn.a})),n.d(e,"switchMapTo",(function(){return En.a})),n.d(e,"take",(function(){return _t.a})),n.d(e,"takeLast",(function(){return Dn.a})),n.d(e,"takeUntil",(function(){return Ln})),n.d(e,"takeWhile",(function(){return Fn})),n.d(e,"tap",(function(){return Bn.a})),n.d(e,"throttle",(function(){return Yn})),n.d(e,"throttleTime",(function(){return Wn})),n.d(e,"throwIfEmpty",(function(){return yt.a})),n.d(e,"timeInterval",(function(){return Xn})),n.d(e,"timeout",(function(){return oa})),n.d(e,"timeoutWith",(function(){return ea})),n.d(e,"timestamp",(function(){return ia})),n.d(e,"toArray",(function(){return ca.a})),n.d(e,"window",(function(){return la})),n.d(e,"windowCount",(function(){return ga})),n.d(e,"windowTime",(function(){return ma})),n.d(e,"windowToggle",(function(){return Ca})),n.d(e,"windowWhen",(function(){return xa})),n.d(e,"withLatestFrom",(function(){return Sa})),n.d(e,"zip",(function(){return Ra})),n.d(e,"zipAll",(function(){return Aa}))},kekF:function(t,e){t.exports=function(t,e){return function(n){return t(e(n))}}},kmMV:function(t,e,n){"use strict";var a,r,o=n("rW0t"),i=n("n3/R"),s=RegExp.prototype.exec,c=String.prototype.replace,l=s,d=(r=/b*/g,s.call(a=/a/,"a"),s.call(r,"a"),0!==a.lastIndex||0!==r.lastIndex),u=i.UNSUPPORTED_Y||i.BROKEN_CARET,g=void 0!==/()??/.exec("")[1];(d||g||u)&&(l=function(t){var e,n,a,r,i=this,l=u&&i.sticky,f=o.call(i),p=i.source,m=0,h=t;return l&&(-1===(f=f.replace("y","")).indexOf("g")&&(f+="g"),h=String(t).slice(i.lastIndex),i.lastIndex>0&&(!i.multiline||i.multiline&&"\n"!==t[i.lastIndex-1])&&(p="(?: "+p+")",h=" "+h,m++),n=new RegExp("^(?:"+p+")",f)),g&&(n=new RegExp("^"+p+"$(?!\\s)",f)),d&&(e=i.lastIndex),a=s.call(l?n:i,h),l?a?(a.input=a.input.slice(m),a[0]=a[0].slice(m),a.index=i.lastIndex,i.lastIndex+=a[0].length):i.lastIndex=0:d&&a&&(i.lastIndex=i.global?a.index+a[0].length:e),g&&a&&a.length>1&&c.call(a[0],n,(function(){for(r=1;r<arguments.length-2;r++)void 0===arguments[r]&&(a[r]=void 0)})),a}),t.exports=l},"kn/O":function(t,e,n){"use strict";n.d(e,"a",(function(){return g}));var a=n("HDdC"),r=n("mtw6"),o=n("G1I9"),i=n("QTAa"),s=n("9nlD"),c=n("mSOc"),l=n("VXsX"),d=n("ufoC"),u=n("8Y7J");let g=(()=>{class t{constructor(t,e,n,a){this.notificationService=t,this.summaryService=e,this.taskMessageService=n,this.taskManagerService=a}wrapTaskAroundCall({task:t,call:e}){return new a.a(n=>{e.subscribe(e=>{202===e.status?this._handleExecutingTasks(t):(this.summaryService.refresh(),t.success=!0,this.notificationService.notifyTask(t))},e=>{t.success=!1,t.exception=e.error,n.error(e)},()=>{n.complete()})})}_handleExecutingTasks(t){const e=new o.b(r.a.info,this.taskMessageService.getRunningTitle(t));e.isFinishedTask=!0,this.notificationService.show(e);const n=new i.a(t.name,t.metadata);this.summaryService.addRunningTask(n),this.taskManagerService.subscribe(n.name,n.metadata,t=>{this.notificationService.notifyTask(t)})}}return t.ngInjectableDef=u["ɵɵdefineInjectable"]({factory:function(){return new t(u["ɵɵinject"](s.a),u["ɵɵinject"](c.a),u["ɵɵinject"](d.a),u["ɵɵinject"](l.a))},token:t,providedIn:"root"}),t})()},kvvV:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("t/zF");class r extends a.a{}},l5ep:function(t,e,n){!function(t){"use strict";t.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 ôl",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(t){var e="";return t>20?e=40===t||50===t||60===t||80===t||100===t?"fed":"ain":t>0&&(e=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][t]),t+e},week:{dow:1,doy:4}})}(n("wd/R"))},l5mm:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("HDdC"),r=n("D0XW"),o=n("Y7HM");function i(t=0,e=r.a){return(!Object(o.a)(t)||t<0)&&(t=0),e&&"function"==typeof e.schedule||(e=r.a),new a.a(n=>(n.add(e.schedule(s,t,{subscriber:n,counter:0,period:t})),n))}function s(t){const{subscriber:e,counter:n,period:a}=t;e.next(n),this.schedule({subscriber:e,counter:n+1,period:a},a)}},l7GE:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");class r extends a.a{notifyNext(t,e,n,a,r){this.destination.next(e)}notifyError(t,e){this.destination.error(t)}notifyComplete(t){this.destination.complete()}}},lJxs:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return function(n){if("function"!=typeof t)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return n.lift(new o(t,e))}}class o{constructor(t,e){this.project=t,this.thisArg=e}call(t,e){return e.subscribe(new i(t,this.project,this.thisArg))}}class i extends a.a{constructor(t,e,n){super(t),this.project=e,this.count=0,this.thisArg=n||this}_next(t){let e;try{e=this.project.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}this.destination.next(e)}}},lMq5:function(t,e,n){var a=n("0Dky"),r=/#|\.prototype\./,o=function(t,e){var n=s[i(t)];return n==l||n!=c&&("function"==typeof e?a(e):!!e)},i=o.normalize=function(t){return String(t).replace(r,".").toLowerCase()},s=o.data={},c=o.NATIVE="N",l=o.POLYFILL="P";t.exports=o},"lOp/":function(t,e,n){"use strict";var a=n("PqYM"),r=n("pxpQ"),o=n("eIep"),i=n("UXun"),s=n("D0XW"),c=n("8Y7J");class l{constructor(t){this.zone=t,this.scheduler=s.a}now(){return this.scheduler.now()}}let d=(()=>{class t extends l{constructor(t){super(t)}schedule(...t){return this.zone.runOutsideAngular(()=>this.scheduler.schedule.apply(this.scheduler,t))}}return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](c.NgZone))},token:t,providedIn:"root"}),t})(),u=(()=>{class t extends l{constructor(t){super(t)}schedule(...t){return this.zone.run(()=>this.scheduler.schedule.apply(this.scheduler,t))}}return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](c.NgZone))},token:t,providedIn:"root"}),t})(),g=(()=>{class t{constructor(t,e){this.leave=t,this.enter=e}}return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](d),c["ɵɵinject"](u))},token:t,providedIn:"root"}),t})();n.d(e,"a",(function(){return f}));let f=(()=>{class t{constructor(t){this.ngZone=t,this.DEFAULT_REFRESH_INTERVAL=5e3,this.DEFAULT_DUE_TIME=0}get(t,e=this.DEFAULT_REFRESH_INTERVAL,n=this.DEFAULT_DUE_TIME){return Object(a.a)(n,e,this.ngZone.leave).pipe(Object(r.b)(this.ngZone.enter),Object(o.a)(t),Object(i.a)({refCount:!0,bufferSize:1}))}}return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](g))},token:t,providedIn:"root"}),t})()},lQqw:function(t,e,n){var a=n("MMmD");t.exports=function(t,e){return function(n,r){if(null==n)return n;if(!a(n))return t(n,r);for(var o=n.length,i=e?o:-1,s=Object(n);(e?i--:++i<o)&&!1!==r(s[i],i,s););return n}}},lSCD:function(t,e,n){var a=n("NykK"),r=n("GoyQ");t.exports=function(t){if(!r(t))return!1;var e=a(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},lUjN:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("vxfy");e.DatatableFooterDirective=function(){function t(){}return a([o.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([o.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),o.ContentChild(i.DataTableFooterTemplateDirective,{read:o.TemplateRef,static:!1}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Directive({selector:"ngx-datatable-footer"})],t)}()},lXzo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"минута":"минуту":t+" "+(a=+t,r={ss:e?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:e?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];t.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,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:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:e,m:e,mm:e,h:"час",hh:e,d:"день",dd:e,M:"месяц",MM:e,y:"год",yy:e},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(t){return/^(дня|вечера)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночи":t<12?"утра":t<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-й";case"D":return t+"-го";case"w":case"W":return t+"-я";default:return t}},week:{dow:1,doy:4}})}(n("wd/R"))},lYtQ:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){switch(n){case"s":return e?"хэдхэн секунд":"хэдхэн секундын";case"ss":return t+(e?" секунд":" секундын");case"m":case"mm":return t+(e?" минут":" минутын");case"h":case"hh":return t+(e?" цаг":" цагийн");case"d":case"dd":return t+(e?" өдөр":" өдрийн");case"M":case"MM":return t+(e?" сар":" сарын");case"y":case"yy":return t+(e?" жил":" жилийн");default:return t}}t.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(t){return"ҮХ"===t},meridiem:function(t,e,n){return t<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" өдөр";default:return t}}})}(n("wd/R"))},lgnt:function(t,e,n){!function(t){"use strict";var e={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};t.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".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:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(t){return t+(e[t]||e[t%10]||e[t>=100?100:null])},week:{dow:1,doy:7}})}(n("wd/R"))},ljhN:function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"lm/5":function(t,e,n){var a=n("fmRc"),r=n("wF/u");t.exports=function(t,e,n,o){var i=n.length,s=i,c=!o;if(null==t)return!s;for(t=Object(t);i--;){var l=n[i];if(c&&l[2]?l[1]!==t[l[0]]:!(l[0]in t))return!1}for(;++i<s;){var d=(l=n[i])[0],u=t[d],g=l[1];if(c&&l[2]){if(void 0===u&&!(d in t))return!1}else{var f=new a;if(o)var p=o(u,g,d,t,e,f);if(!(void 0===p?r(g,u,3,o,f):p))return!1}}return!0}},lmqd:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SelectionType=function(t){return t.single="single",t.multi="multi",t.multiClick="multiClick",t.cell="cell",t.checkbox="checkbox",t}(e.SelectionType||{})},lyxo:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a=" ";return(t%100>=20||t>=100&&t%100==0)&&(a=" de "),t+a+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"}[n]}t.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ă_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".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âine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:e,m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})}(n("wd/R"))},"m/L8":function(t,e,n){var a=n("g6v/"),r=n("DPsx"),o=n("glrk"),i=n("wE6v"),s=Object.defineProperty;e.f=a?s:function(t,e,n){if(o(t),e=i(e,!0),o(n),r)try{return s(t,e,n)}catch(a){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},m92n:function(t,e,n){var a=n("glrk");t.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t.return;throw void 0!==o&&a(o.call(t)),i}}},mCNh:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}));var a=n("KqfI");function r(...t){return o(t)}function o(t){return t?1===t.length?t[0]:function(e){return t.reduce((t,e)=>e(t),e)}:a.a}},mSOc:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("LvDl"),r=n("2Vo4"),o=n("lOp/"),i=n("8Y7J"),s=n("IheW");let c=(()=>{class t{constructor(t,e){this.http=t,this.timerService=e,this.REFRESH_INTERVAL=5e3,this.summaryDataSource=new r.a(null),this.summaryData$=this.summaryDataSource.asObservable()}startPolling(){return this.timerService.get(()=>this.retrieveSummaryObservable(),this.REFRESH_INTERVAL).subscribe(this.retrieveSummaryObserver())}refresh(){return this.retrieveSummaryObservable().subscribe(this.retrieveSummaryObserver())}retrieveSummaryObservable(){return this.http.get("api/summary")}retrieveSummaryObserver(){return t=>{this.summaryDataSource.next(t)}}getCurrentSummary(){return this.summaryDataSource.getValue()}subscribe(t,e){return this.summaryData$.subscribe(t,e)}addRunningTask(t){const e=this.summaryDataSource.getValue();e&&(a.isArray(e.executing_tasks)?e.executing_tasks.find(e=>e.name===t.name&&a.isEqual(e.metadata,t.metadata))||e.executing_tasks.push(t):e.executing_tasks=[t],this.summaryDataSource.next(e))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](s.c),i["ɵɵinject"](o.a))},token:t,providedIn:"root"}),t})()},mTTR:function(t,e,n){var a=n("b80T"),r=n("QcOe"),o=n("MMmD");t.exports=function(t){return o(t)?a(t,!0):r(t)}},mXUL:function(t,e,n){"use strict";n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return u}));var a=n("8Y7J"),r=n("+gVj"),o=n("SVse"),i=a["ɵcrt"]({encapsulation:0,styles:[".invalid-feedback[_ngcontent-%COMP%], .valid-feedback[_ngcontent-%COMP%] {\n        display: block;\n      }"],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),a["ɵted"](3,null,["",""]))],(function(t,e){t(e,2,0,e.component.className)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function c(t){return a["ɵvid"](0,[(t()(),a["ɵand"](16777216,null,null,1,null,s)),a["ɵdid"](1,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,e.component.messages())}),null)}var l=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bfv-messages",[],null,null,null,c,i)),a["ɵdid"](1,49152,null,0,r.e,[r.a],{messages:[0,"messages"]},null)],(function(t,e){t(e,1,0,e.component.messages)}),null)}function u(t){return a["ɵvid"](0,[a["ɵncd"](null,0),(t()(),a["ɵand"](16777216,null,null,1,null,d)),a["ɵdid"](2,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,!e.component.messagesBlock)}),null)}},mc0g:function(t,e){t.exports=function(t){return function(e,n,a){for(var r=-1,o=Object(e),i=a(e),s=i.length;s--;){var c=i[t?s:++r];if(!1===n(o[c],c,o))break}return e}}},mdPL:function(t,e,n){(function(t){var a=n("WFqU"),r=e&&!e.nodeType&&e,o=r&&"object"==typeof t&&t&&!t.nodeType&&t,i=o&&o.exports===r&&a.process,s=function(){try{return o&&o.require&&o.require("util").types||i&&i.binding&&i.binding("util")}catch(t){}}();t.exports=s}).call(this,n("YuTi")(t))},mfoh:function(t,e,n){"use strict";n.d(e,"a",(function(){return f})),n.d(e,"b",(function(){return m}));var a,r=n("CFvb"),o=n("P4Tr"),i=n.n(o),s=n("mwIZ"),c=n.n(s),l=n("Puqe"),d=n.n(l),u=n("UB5X"),g=n.n(u),f={TOGGLE_ACTIVE:function(t,e,n){return e&&e.toggleActivated()},TOGGLE_ACTIVE_MULTI:function(t,e,n){return e&&e.toggleActivated(!0)},TOGGLE_SELECTED:function(t,e,n){return e&&e.toggleSelected()},ACTIVATE:function(t,e,n){return e.setIsActive(!0)},DEACTIVATE:function(t,e,n){return e.setIsActive(!1)},SELECT:function(t,e,n){return e.setIsSelected(!0)},DESELECT:function(t,e,n){return e.setIsSelected(!1)},FOCUS:function(t,e,n){return e.focus()},TOGGLE_EXPANDED:function(t,e,n){return e.hasChildren&&e.toggleExpanded()},EXPAND:function(t,e,n){return e.expand()},COLLAPSE:function(t,e,n){return e.collapse()},DRILL_DOWN:function(t,e,n){return t.focusDrillDown()},DRILL_UP:function(t,e,n){return t.focusDrillUp()},NEXT_NODE:function(t,e,n){return t.focusNextNode()},PREVIOUS_NODE:function(t,e,n){return t.focusPreviousNode()},MOVE_NODE:function(t,e,n,a){var r=a.from,o=a.to;n.ctrlKey?t.copyNode(r,o):t.moveNode(r,o)}},p={mouse:{click:f.TOGGLE_ACTIVE,dblClick:null,contextMenu:null,expanderClick:f.TOGGLE_EXPANDED,checkboxClick:f.TOGGLE_SELECTED,drop:f.MOVE_NODE},keys:(a={},a[r.a.RIGHT]=f.DRILL_DOWN,a[r.a.LEFT]=f.DRILL_UP,a[r.a.DOWN]=f.NEXT_NODE,a[r.a.UP]=f.PREVIOUS_NODE,a[r.a.SPACE]=f.TOGGLE_ACTIVE,a[r.a.ENTER]=f.TOGGLE_ACTIVE,a)},m=function(){function t(t){void 0===t&&(t={}),this.options=t,this.actionMapping=i()({},this.options.actionMapping,p),t.rtl&&(this.actionMapping.keys[r.a.RIGHT]=c()(t,["actionMapping","keys",r.a.RIGHT])||f.DRILL_UP,this.actionMapping.keys[r.a.LEFT]=c()(t,["actionMapping","keys",r.a.LEFT])||f.DRILL_DOWN)}return Object.defineProperty(t.prototype,"hasChildrenField",{get:function(){return this.options.hasChildrenField||"hasChildren"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"childrenField",{get:function(){return this.options.childrenField||"children"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"displayField",{get:function(){return this.options.displayField||"name"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"idField",{get:function(){return this.options.idField||"id"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isExpandedField",{get:function(){return this.options.isExpandedField||"isExpanded"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"getChildren",{get:function(){return this.options.getChildren},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"levelPadding",{get:function(){return this.options.levelPadding||0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useVirtualScroll",{get:function(){return this.options.useVirtualScroll},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateExpand",{get:function(){return this.options.animateExpand},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateSpeed",{get:function(){return this.options.animateSpeed||1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"animateAcceleration",{get:function(){return this.options.animateAcceleration||1.2},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollOnActivate",{get:function(){return void 0===this.options.scrollOnActivate||this.options.scrollOnActivate},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rtl",{get:function(){return!!this.options.rtl},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rootId",{get:function(){return this.options.rootId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useCheckbox",{get:function(){return this.options.useCheckbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"useTriState",{get:function(){return void 0===this.options.useTriState||this.options.useTriState},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollContainer",{get:function(){return this.options.scrollContainer},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allowDragoverStyling",{get:function(){return void 0===this.options.allowDragoverStyling||this.options.allowDragoverStyling},enumerable:!0,configurable:!0}),t.prototype.getNodeClone=function(t){return this.options.getNodeClone?this.options.getNodeClone(t):d()(Object.assign({},t.data),["id"])},t.prototype.allowDrop=function(t,e,n){return this.options.allowDrop instanceof Function?this.options.allowDrop(t,e,n):void 0===this.options.allowDrop||this.options.allowDrop},t.prototype.allowDrag=function(t){return this.options.allowDrag instanceof Function?this.options.allowDrag(t):this.options.allowDrag},t.prototype.nodeClass=function(t){return this.options.nodeClass?this.options.nodeClass(t):""},t.prototype.nodeHeight=function(t){if(t.data.virtual)return 0;var e=this.options.nodeHeight||22;return"function"==typeof e&&(e=e(t)),e+(0===t.index?2:1)*this.dropSlotHeight},Object.defineProperty(t.prototype,"dropSlotHeight",{get:function(){return g()(this.options.dropSlotHeight)?this.options.dropSlotHeight:2},enumerable:!0,configurable:!0}),t}()},mn2k:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("3MdB")),a(n("Cc8h")),a(n("ylLw")),a(n("M9eX")),a(n("uKs4"))},moLw:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("SVse");e.ClickOutsideDirective=function(){function t(t,e,n){this._el=t,this._ngZone=e,this.platformId=n,this.clickOutsideEnabled=!0,this.attachOutsideOnClick=!1,this.delayClickOutsideInit=!1,this.emitOnBlur=!1,this.exclude="",this.excludeBeforeClick=!1,this.clickOutsideEvents="",this.clickOutside=new o.EventEmitter,this._nodesExcluded=[],this._events=["click"],this._initOnClickBody=this._initOnClickBody.bind(this),this._onClickBody=this._onClickBody.bind(this),this._onWindowBlur=this._onWindowBlur.bind(this)}return t.prototype.ngOnInit=function(){i.isPlatformBrowser(this.platformId)&&this._init()},t.prototype.ngOnDestroy=function(){i.isPlatformBrowser(this.platformId)&&(this._removeClickOutsideListener(),this._removeAttachOutsideOnClickListener(),this._removeWindowBlurListener())},t.prototype.ngOnChanges=function(t){i.isPlatformBrowser(this.platformId)&&(t.attachOutsideOnClick||t.exclude||t.emitOnBlur)&&this._init()},t.prototype._init=function(){""!==this.clickOutsideEvents&&(this._events=this.clickOutsideEvents.split(",").map((function(t){return t.trim()}))),this._excludeCheck(),this.attachOutsideOnClick?this._initAttachOutsideOnClickListener():this._initOnClickBody(),this.emitOnBlur&&this._initWindowBlurListener()},t.prototype._initOnClickBody=function(){this.delayClickOutsideInit?setTimeout(this._initClickOutsideListener.bind(this)):this._initClickOutsideListener()},t.prototype._excludeCheck=function(){if(this.exclude)try{var t=Array.from(document.querySelectorAll(this.exclude));t&&(this._nodesExcluded=t)}catch(e){console.error("[ng-click-outside] Check your exclude selector syntax.",e)}},t.prototype._onClickBody=function(t){this.clickOutsideEnabled&&(this.excludeBeforeClick&&this._excludeCheck(),this._el.nativeElement.contains(t.target)||this._shouldExclude(t.target)||(this._emit(t),this.attachOutsideOnClick&&this._removeClickOutsideListener()))},t.prototype._onWindowBlur=function(t){var e=this;setTimeout((function(){document.hidden||e._emit(t)}))},t.prototype._emit=function(t){var e=this;this.clickOutsideEnabled&&this._ngZone.run((function(){return e.clickOutside.emit(t)}))},t.prototype._shouldExclude=function(t){for(var e=0,n=this._nodesExcluded;e<n.length;e++)if(n[e].contains(t))return!0;return!1},t.prototype._initClickOutsideListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return document.addEventListener(e,t._onClickBody)}))}))},t.prototype._removeClickOutsideListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return document.removeEventListener(e,t._onClickBody)}))}))},t.prototype._initAttachOutsideOnClickListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return t._el.nativeElement.addEventListener(e,t._initOnClickBody)}))}))},t.prototype._removeAttachOutsideOnClickListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){t._events.forEach((function(e){return t._el.nativeElement.removeEventListener(e,t._initOnClickBody)}))}))},t.prototype._initWindowBlurListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){window.addEventListener("blur",t._onWindowBlur)}))},t.prototype._removeWindowBlurListener=function(){var t=this;this._ngZone.runOutsideAngular((function(){window.removeEventListener("blur",t._onWindowBlur)}))},a([o.Input(),r("design:type",Boolean)],t.prototype,"clickOutsideEnabled",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"attachOutsideOnClick",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"delayClickOutsideInit",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"emitOnBlur",void 0),a([o.Input(),r("design:type",String)],t.prototype,"exclude",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"excludeBeforeClick",void 0),a([o.Input(),r("design:type",String)],t.prototype,"clickOutsideEvents",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"clickOutside",void 0),a([o.Injectable(),o.Directive({selector:"[clickOutside]"})],t)}()},mrSG:function(t,e,n){"use strict";n.r(e),n.d(e,"__extends",(function(){return r})),n.d(e,"__assign",(function(){return o})),n.d(e,"__rest",(function(){return i})),n.d(e,"__decorate",(function(){return s})),n.d(e,"__param",(function(){return c})),n.d(e,"__metadata",(function(){return l})),n.d(e,"__awaiter",(function(){return d})),n.d(e,"__generator",(function(){return u})),n.d(e,"__exportStar",(function(){return g})),n.d(e,"__values",(function(){return f})),n.d(e,"__read",(function(){return p})),n.d(e,"__spread",(function(){return m})),n.d(e,"__spreadArrays",(function(){return h})),n.d(e,"__await",(function(){return b})),n.d(e,"__asyncGenerator",(function(){return y})),n.d(e,"__asyncDelegator",(function(){return _})),n.d(e,"__asyncValues",(function(){return O})),n.d(e,"__makeTemplateObject",(function(){return v})),n.d(e,"__importStar",(function(){return C})),n.d(e,"__importDefault",(function(){return P}));var a=function(t,e){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function r(t,e){function n(){this.constructor=t}a(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){return(o=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function i(t,e){var n={};for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&e.indexOf(a)<0&&(n[a]=t[a]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(a=Object.getOwnPropertySymbols(t);r<a.length;r++)e.indexOf(a[r])<0&&Object.prototype.propertyIsEnumerable.call(t,a[r])&&(n[a[r]]=t[a[r]])}return n}function s(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i}function c(t,e){return function(n,a){e(n,a,t)}}function l(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function d(t,e,n,a){return new(n||(n=Promise))((function(r,o){function i(t){try{c(a.next(t))}catch(e){o(e)}}function s(t){try{c(a.throw(t))}catch(e){o(e)}}function c(t){t.done?r(t.value):new n((function(e){e(t.value)})).then(i,s)}c((a=a.apply(t,e||[])).next())}))}function u(t,e){var n,a,r,o,i={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,a&&(r=2&o[0]?a.return:o[0]?a.throw||((r=a.return)&&r.call(a),0):a.next)&&!(r=r.call(a,o[1])).done)return r;switch(a=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return i.label++,{value:o[1],done:!1};case 5:i.label++,a=o[1],o=[0];continue;case 7:o=i.ops.pop(),i.trys.pop();continue;default:if(!(r=(r=i.trys).length>0&&r[r.length-1])&&(6===o[0]||2===o[0])){i=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){i.label=o[1];break}if(6===o[0]&&i.label<r[1]){i.label=r[1],r=o;break}if(r&&i.label<r[2]){i.label=r[2],i.ops.push(o);break}r[2]&&i.ops.pop(),i.trys.pop();continue}o=e.call(t,i)}catch(s){o=[6,s],a=0}finally{n=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}}function g(t,e){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}function f(t){var e="function"==typeof Symbol&&t[Symbol.iterator],n=0;return e?e.call(t):{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}}}function p(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var a,r,o=n.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(a=o.next()).done;)i.push(a.value)}catch(s){r={error:s}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}return i}function m(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(p(arguments[e]));return t}function h(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var a=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],i=0,s=o.length;i<s;i++,r++)a[r]=o[i];return a}function b(t){return this instanceof b?(this.v=t,this):new b(t)}function y(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a,r=n.apply(t,e||[]),o=[];return a={},i("next"),i("throw"),i("return"),a[Symbol.asyncIterator]=function(){return this},a;function i(t){r[t]&&(a[t]=function(e){return new Promise((function(n,a){o.push([t,e,n,a])>1||s(t,e)}))})}function s(t,e){try{!function(t){t.value instanceof b?Promise.resolve(t.value.v).then(c,l):d(o[0][2],t)}(r[t](e))}catch(n){d(o[0][3],n)}}function c(t){s("next",t)}function l(t){s("throw",t)}function d(t,e){t(e),o.shift(),o.length&&s(o[0][0],o[0][1])}}function _(t){var e,n;return e={},a("next"),a("throw",(function(t){throw t})),a("return"),e[Symbol.iterator]=function(){return this},e;function a(a,r){e[a]=t[a]?function(e){return(n=!n)?{value:b(t[a](e)),done:"return"===a}:r?r(e):e}:r}}function O(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=f(t),e={},a("next"),a("throw"),a("return"),e[Symbol.asyncIterator]=function(){return this},e);function a(n){e[n]=t[n]&&function(e){return new Promise((function(a,r){!function(t,e,n,a){Promise.resolve(a).then((function(e){t({value:e,done:n})}),e)}(a,r,(e=t[n](e)).done,e.value)}))}}}function v(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function C(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function P(t){return t&&t.__esModule?t:{default:t}}},mtw6:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t[t.error=0]="error",t[t.info=1]="info",t[t.success=2]="success",t}({})},"mv/X":function(t,e,n){var a=n("ljhN"),r=n("MMmD"),o=n("wJg7"),i=n("GoyQ");t.exports=function(t,e,n){if(!i(n))return!1;var s=typeof e;return!!("number"==s?r(n)&&o(e,n.length):"string"==s&&e in n)&&a(n[e],t)}},mwIZ:function(t,e,n){var a=n("ZWtO");t.exports=function(t,e,n){var r=null==t?void 0:a(t,e);return void 0===r?n:r}},"n/D3":function(t,e,n){"use strict";n.d(e,"a",(function(){return u})),n.d(e,"b",(function(){return d}));var a=n("cp0P"),r=(n("SgmB"),n("ZDA6"),n("0+/T")),o=n("Rf2I"),i=(n("sne2"),n("x38r")),s=n("oxzT"),c=n("mtw6"),l=n("vCyI");n("nSDx"),n("aexS"),n("9nlD");const d=new(n("EgGo").a)("user-management/roles");class u{constructor(t,e,n,a,r,o,i,c,d){this.roleService=t,this.scopeService=e,this.emptyPipe=n,this.authStorageService=a,this.modalService=r,this.notificationService=o,this.i18n=i,this.urlBuilder=c,this.actionLabels=d,this.selection=new l.a,this.permission=this.authStorageService.getPermissions().user,this.tableActions=[{permission:"create",icon:s.a.add,routerLink:()=>this.urlBuilder.getCreate(),name:this.actionLabels.CREATE},{permission:"create",icon:s.a.clone,name:this.actionLabels.CLONE,disable:()=>!this.selection.hasSingleSelection,click:()=>this.cloneRole()},{permission:"update",icon:s.a.edit,disable:()=>!this.selection.hasSingleSelection||this.selection.first().system,routerLink:()=>this.selection.first()&&this.urlBuilder.getEdit(this.selection.first().name),name:this.actionLabels.EDIT},{permission:"delete",icon:s.a.destroy,disable:()=>!this.selection.hasSingleSelection||this.selection.first().system,click:()=>this.deleteRoleModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:3},{name:this.i18n("Description"),prop:"description",flexGrow:5,pipe:this.emptyPipe},{name:this.i18n("System Role"),prop:"system",cellClass:"text-center",flexGrow:1,cellTransformation:i.a.checkIcon}]}getRoles(){Object(a.a)([this.roleService.list(),this.scopeService.list()]).subscribe(t=>{this.roles=t[0],this.scopes=t[1]})}updateSelection(t){this.selection=t}deleteRole(t){this.roleService.delete(t).subscribe(()=>{this.getRoles(),this.modalRef.hide(),this.notificationService.show(c.a.success,this.i18n("Deleted role '{{role_name}}'",{role_name:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}deleteRoleModal(){const t=this.selection.first().name;this.modalRef=this.modalService.show(r.a,{initialState:{itemDescription:"Role",itemNames:[t],submitAction:()=>this.deleteRole(t)}})}cloneRole(){const t=this.selection.first().name;this.modalRef=this.modalService.show(o.a,{initialState:{fields:[{type:"text",name:"newName",value:`${t}_clone`,label:this.i18n("New name"),required:!0}],titleText:this.i18n("Clone Role"),submitButtonText:this.i18n("Clone Role"),onSubmit:e=>{this.roleService.clone(t,e.newName).subscribe(()=>{this.getRoles(),this.notificationService.show(c.a.success,this.i18n("Cloned role '{{dst_name}}' from '{{src_name}}'",{src_name:t,dst_name:e.newName}))})}}})}}},n1nk:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ContextmenuType=function(t){return t.header="header",t.body="body",t}(e.ContextmenuType||{})},"n3/R":function(t,e,n){"use strict";var a=n("0Dky");function r(t,e){return RegExp(t,e)}e.UNSUPPORTED_Y=a((function(){var t=r("a","y");return t.lastIndex=2,null!=t.exec("abcd")})),e.BROKEN_CARET=a((function(){var t=r("^r","gy");return t.lastIndex=2,null!=t.exec("str")}))},n6bG:function(t,e,n){"use strict";function a(t){return"function"==typeof t}n.d(e,"a",(function(){return a}))},nSDx:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t){return a.isUndefined(t)||a.isNull(t)?"-":t}}},nYR2:function(t,e,n){"use strict";n.d(e,"a",(function(){return o}));var a=n("7o/Q"),r=n("quSY");function o(t){return e=>e.lift(new i(t))}class i{constructor(t){this.callback=t}call(t,e){return e.subscribe(new s(t,this.callback))}}class s extends a.a{constructor(t,e){super(t),this.add(new r.a(e))}}},nYho:function(t,e,n){(function(t){var a;!function(r){"object"==typeof global&&global;var o,i=2147483647,s=/^xn--/,c=/[^\x20-\x7E]/,l=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},u=Math.floor,g=String.fromCharCode;function f(t){throw RangeError(d[t])}function p(t,e){for(var n=t.length,a=[];n--;)a[n]=e(t[n]);return a}function m(t,e){var n=t.split("@"),a="";return n.length>1&&(a=n[0]+"@",t=n[1]),a+p((t=t.replace(l,".")).split("."),e).join(".")}function h(t){for(var e,n,a=[],r=0,o=t.length;r<o;)(e=t.charCodeAt(r++))>=55296&&e<=56319&&r<o?56320==(64512&(n=t.charCodeAt(r++)))?a.push(((1023&e)<<10)+(1023&n)+65536):(a.push(e),r--):a.push(e);return a}function b(t){return p(t,(function(t){var e="";return t>65535&&(e+=g((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+g(t)})).join("")}function y(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function _(t,e,n){var a=0;for(t=n?u(t/700):t>>1,t+=u(t/e);t>455;a+=36)t=u(t/35);return u(a+36*t/(t+38))}function O(t){var e,n,a,r,o,s,c,l,d,g,p,m=[],h=t.length,y=0,O=128,v=72;for((n=t.lastIndexOf("-"))<0&&(n=0),a=0;a<n;++a)t.charCodeAt(a)>=128&&f("not-basic"),m.push(t.charCodeAt(a));for(r=n>0?n+1:0;r<h;){for(o=y,s=1,c=36;r>=h&&f("invalid-input"),((l=(p=t.charCodeAt(r++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||l>u((i-y)/s))&&f("overflow"),y+=l*s,!(l<(d=c<=v?1:c>=v+26?26:c-v));c+=36)s>u(i/(g=36-d))&&f("overflow"),s*=g;v=_(y-o,e=m.length+1,0==o),u(y/e)>i-O&&f("overflow"),O+=u(y/e),y%=e,m.splice(y++,0,O)}return b(m)}function v(t){var e,n,a,r,o,s,c,l,d,p,m,b,O,v,C,P=[];for(b=(t=h(t)).length,e=128,n=0,o=72,s=0;s<b;++s)(m=t[s])<128&&P.push(g(m));for(a=r=P.length,r&&P.push("-");a<b;){for(c=i,s=0;s<b;++s)(m=t[s])>=e&&m<c&&(c=m);for(c-e>u((i-n)/(O=a+1))&&f("overflow"),n+=(c-e)*O,e=c,s=0;s<b;++s)if((m=t[s])<e&&++n>i&&f("overflow"),m==e){for(l=n,d=36;!(l<(p=d<=o?1:d>=o+26?26:d-o));d+=36)P.push(g(y(p+(C=l-p)%(v=36-p),0))),l=u(C/v);P.push(g(y(l,0))),o=_(n,O,a==r),n=0,++a}++n,++e}return P.join("")}o={version:"1.3.2",ucs2:{decode:h,encode:b},decode:O,encode:v,toASCII:function(t){return m(t,(function(t){return c.test(t)?"xn--"+v(t):t}))},toUnicode:function(t){return m(t,(function(t){return s.test(t)?O(t.slice(4).toLowerCase()):t}))}},void 0===(a=(function(){return o}).call(e,n,e,t))||(t.exports=a)}()}).call(this,n("YuTi")(t))},ngJS:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=t=>e=>{for(let n=0,a=t.length;n<a&&!e.closed;n++)e.next(t[n]);e.complete()}},nhM1:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},nmnc:function(t,e,n){var a=n("Kz5y");t.exports=a.Symbol},ntOU:function(t,e,n){"use strict";var a=n("rpNk").IteratorPrototype,r=n("fHMY"),o=n("XGwC"),i=n("1E5z"),s=n("P4y1"),c=function(){return this};t.exports=function(t,e,n){var l=e+" Iterator";return t.prototype=r(a,{next:o(1,n)}),i(t,l,!1,!0),s[l]=c,t}},nyYc:function(t,e,n){!function(t){"use strict";t.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})}(n("wd/R"))},o1bE:function(t,e,n){!function(t){"use strict";t.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".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:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})}(n("wd/R"))},"o4+5":function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n("aXbf");class a{constructor(t){this.formatter=t}transform(t){return this.formatter.format_number(t,1e3,["","k","M","G","T","P","E","Z","Y"])}}},oB13:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("EQ5u");function r(t,e){return function(n){let r;if(r="function"==typeof t?t:function(){return t},"function"==typeof e)return n.lift(new o(r,e));const i=Object.create(n,a.b);return i.source=n,i.subjectFactory=r,i}}class o{constructor(t,e){this.subjectFactory=t,this.selector=e}call(t,e){const{selector:n}=this,a=this.subjectFactory(),r=n(a).subscribe(t);return r.add(e.subscribe(a)),r}}},"oCl/":function(t,e,n){var a=n("CH3K"),r=n("LcsW"),o=n("MvSz"),i=n("0ycA");t.exports=Object.getOwnPropertySymbols?function(t){for(var e=[];t;)a(e,o(t)),t=r(t);return e}:i},oMSZ:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this.pwdExpirationSpan=0,this.pwdExpirationSpan=t.user_pwd_expiration_span,this.pwdExpirationWarning1=t.user_pwd_expiration_warning_1,this.pwdExpirationWarning2=t.user_pwd_expiration_warning_2}}},ohIB:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("ae7Z");function r(t){for(var e=0,n=0,a=t;n<a.length;n++)e+=a[n].flexGrow||0;return e}function o(t,e){for(var n=0,a=e;n<a.length;n++){var r=t.indexOf(a[n]);t.splice(r,1)}}function i(t,e){void 0===e&&(e=300);for(var n=0,a=0,r=t;a<r.length;a++)n+=r[a].width||e;return n}e.getTotalFlexGrow=r,e.adjustColumnWidths=function(t,e){var n=a.columnsTotalWidth(t),o=r(t),i=a.columnsByPin(t);n!==e&&function(t,e,n){for(var a in t)for(var r=0,o=t[a];r<o.length;r++)(u=o[r]).canAutoResize?u.width=0:(e-=u.width,n-=u.flexGrow?u.flexGrow:0);var i={},s=e;do{var c=s/n;for(var a in s=0,t)for(var l=0,d=t[a];l<d.length;l++){var u;if((u=d[l]).canAutoResize&&!i[u.prop]){var g=u.width+u.flexGrow*c;void 0!==u.minWidth&&g<u.minWidth?(s+=g-u.minWidth,u.width=u.minWidth,i[u.prop]=!0):u.width=g}}}while(0!==s)}(i,e,o)},e.forceFillColumnWidths=function(t,e,n,a,r){void 0===r&&(r=300);for(var s=t.slice(n+1,t.length).filter((function(t){return!1!==t.canAutoResize})),c=0,l=s;c<l.length;c++)(b=l[c]).$$oldWidth||(b.$$oldWidth=b.width);var d=0,u=!1,g=i(t,r),f=e-g,p=[];do{d=f/s.length,u=g>=e;for(var m=0,h=s;m<h.length;m++){var b=h[m];if(u&&a)b.width=b.$$oldWidth||b.width||r;else{var y=(b.width||r)+d;b.minWidth&&y<b.minWidth?(b.width=b.minWidth,p.push(b)):b.maxWidth&&y>b.maxWidth?(b.width=b.maxWidth,p.push(b)):b.width=y}b.width=Math.max(0,b.width)}f=e-(g=i(t)),o(s,p)}while(f>0&&0!==s.length)}},or5M:function(t,e,n){var a=n("1hJj"),r=n("QoRX"),o=n("xYSL");t.exports=function(t,e,n,i,s,c){var l=1&n,d=t.length,u=e.length;if(d!=u&&!(l&&u>d))return!1;var g=c.get(t);if(g&&c.get(e))return g==e;var f=-1,p=!0,m=2&n?new a:void 0;for(c.set(t,e),c.set(e,t);++f<d;){var h=t[f],b=e[f];if(i)var y=l?i(b,h,f,e,t,c):i(h,b,f,t,e,c);if(void 0!==y){if(y)continue;p=!1;break}if(m){if(!r(e,(function(t,e){if(!o(m,e)&&(h===t||s(h,t,n,i,c)))return m.push(e)}))){p=!1;break}}else if(h!==b&&!s(h,b,n,i,c)){p=!1;break}}return c.delete(t),c.delete(e),p}},"otv/":function(t,e,n){var a=n("nmnc"),r=a?a.prototype:void 0,o=r?r.valueOf:void 0;t.exports=function(t){return o?Object(o.call(t)):{}}},oxzT:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t.add="fa fa-plus",t.addCircle="fa fa-plus-circle",t.minusCircle="fa fa-minus-circle",t.edit="fa fa-pencil",t.destroy="fa fa-times",t.destroyCircle="fa fa-times-circle",t.exchange="fa fa-exchange",t.copy="fa fa-copy",t.clipboard="fa fa-clipboard",t.flatten="fa fa-chain-broken",t.trash="fa fa-trash-o",t.lock="fa fa-lock",t.unlock="fa fa-unlock",t.clone="fa fa-clone",t.undo="fa fa-undo",t.search="fa fa-search",t.start="fa fa-play",t.stop="fa fa-stop",t.analyse="fa fa-stethoscope",t.deepCheck="fa fa-cog",t.reweight="fa fa-balance-scale",t.left="fa fa-arrow-left",t.right="fa fa-arrow-right",t.down="fa fa-arrow-down",t.erase="fa fa-eraser",t.user="fa fa-user",t.users="fa fa-users",t.share="fa fa-share-alt",t.key="fa fa-key-modern",t.warning="fa fa-exclamation-triangle",t.info="fa fa-info",t.infoCircle="fa fa-info-circle",t.questionCircle="fa fa-question-circle-o",t.check="fa fa-check",t.show="fa fa-eye",t.paragraph="fa fa-paragraph",t.terminal="fa fa-terminal",t.magic="fa fa-magic",t.hourglass="fa fa-hourglass-o",t.filledHourglass="fa fa-hourglass",t.table="fa fa-table",t.spinner="fa fa-spinner",t.refresh="fa fa-refresh",t.bullseye="fa fa-bullseye",t.disk="fa fa-hdd-o",t.server="fa fa-server",t.filter="fa fa-filter",t.lineChart="fa fa-line-chart",t.signOut="fa fa-sign-out",t.health="fa fa-heartbeat",t.circle="fa fa-circle",t.bell="fa fa-bell",t.tag="fa fa-tag",t.leftArrow="fa fa-angle-left",t.rightArrow="fa fa-angle-right",t.leftArrowDouble="fa fa-angle-double-left",t.rightArrowDouble="fa fa-angle-double-right",t.flag="fa fa-flag",t.clearFilters="fa fa-window-close",t.download="fa fa-download",t.upload="fa fa-upload",t.large="fa fa-lg",t.large2x="fa fa-2x",t.large3x="fa fa-3x",t.stack="fa fa-stack",t.stack1x="fa fa-stack-1x",t.stack2x="fa fa-stack-2x",t.pulse="fa fa-pulse",t.spin="fa fa-spin",t.inverse="fa fa-inverse",t}({})},"p/rL":function(t,e,n){!function(t){"use strict";t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_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ɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %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("wd/R"))},p4Cf:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("oxzT");class r{constructor(){this.icons=a.a}}},pFRH:function(t,e,n){var a=n("cvCv"),r=n("O0oS"),o=n("zZ0H");t.exports=r?function(t,e){return r(t,"toString",{configurable:!0,enumerable:!1,value:a(e),writable:!0})}:o},pKUh:function(t,e,n){"use strict";n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return l}));var a=n("8Y7J"),r=n("2ZVE"),o=n("SVse"),i=a["ɵcrt"]({encapsulation:0,styles:["[_nghost-%COMP%]   .nav-tabs[_ngcontent-%COMP%]   .nav-item.disabled[_ngcontent-%COMP%]   a.disabled[_ngcontent-%COMP%]{cursor:default}"],data:{}});function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"span",[["class","bs-remove-tab"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(n.preventDefault(),a=!1!==r.removeTab(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),a["ɵted"](-1,null,[" ❌"]))],null,null)}function c(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,9,"li",[],[[2,"active",null],[2,"disabled",null]],[[null,"keydown"]],(function(t,e,n){var a=!0;return"keydown"===e&&(a=!1!==t.component.keyNavActions(n,t.context.index)&&a),a}),null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),a["ɵpad"](3,2),(t()(),a["ɵeld"](4,0,null,null,5,"a",[["class","nav-link"],["href","javascript:void(0);"]],[[1,"id",0],[2,"active",null],[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.context.$implicit.active=!0)&&a),a}),null,null)),(t()(),a["ɵeld"](5,16777216,null,null,2,"span",[],null,null,null,null,null)),a["ɵdid"](6,16384,null,0,r.a,[a.ViewContainerRef],{ngTransclude:[0,"ngTransclude"]},null),(t()(),a["ɵted"](7,null,["",""])),(t()(),a["ɵand"](16777216,null,null,1,null,s)),a["ɵdid"](9,16384,null,0,o.NgIf,[a.ViewContainerRef,a.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=t(e,3,0,"nav-item",e.context.$implicit.customClass||"");t(e,2,0,n),t(e,6,0,e.context.$implicit.headingRef),t(e,9,0,e.context.$implicit.removable)}),(function(t,e){t(e,0,0,e.context.$implicit.active,e.context.$implicit.disabled),t(e,4,0,e.context.$implicit.id?e.context.$implicit.id+"-link":"",e.context.$implicit.active,e.context.$implicit.disabled),t(e,7,0,e.context.$implicit.heading)}))}function l(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,4,"ul",[["class","nav"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==n.preventDefault()&&a),a}),null,null)),a["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[a.IterableDiffers,a.KeyValueDiffers,a.ElementRef,a.Renderer2]),a["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),a["ɵand"](16777216,null,null,1,null,c)),a["ɵdid"](4,278528,null,0,o.NgForOf,[a.ViewContainerRef,a.TemplateRef,a.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),a["ɵeld"](5,0,null,null,1,"div",[["class","tab-content"]],null,null,null,null,null)),a["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"nav",n.classMap),t(e,4,0,n.tabs)}),null)}},pL04:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},pLZG:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t,e){return function(n){return n.lift(new o(t,e))}}class o{constructor(t,e){this.predicate=t,this.thisArg=e}call(t,e){return e.subscribe(new i(t,this.predicate,this.thisArg))}}class i extends a.a{constructor(t,e,n){super(t),this.predicate=e,this.thisArg=n,this.count=0}_next(t){let e;try{e=this.predicate.call(this.thisArg,t,this.count++)}catch(n){return void this.destination.error(n)}e&&this.destination.next(t)}}},pMnS:function(t,e,n){"use strict";n.d(e,"a",(function(){return c}));var a=n("8Y7J"),r=n("iInd"),o=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function i(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),a["ɵdid"](1,212992,null,0,r.r,[r.b,a.ViewContainerRef,a.ComponentFactoryResolver,[8,null],a.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"ng-component",[],null,null,null,i,o)),a["ɵdid"](1,49152,null,0,r.F,[],null,null)],null,null)}var c=a["ɵccf"]("ng-component",r.F,s,{},{},[])},pSRY:function(t,e,n){var a=n("QkVE");t.exports=function(t){return a(this,t).has(t)}},pZt1:function(t,e){t.exports=function(t){return t&&t.length?t[0]:void 0}},pcHL:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Input)(),i("design:type",Object)],t.prototype,"templates",void 0),o([Object(a.Component)({selector:"tree-node-children",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <div\n        [class.tree-children]="true"\n        [class.tree-children-no-padding]="node.options.levelPadding"\n        *treeAnimateOpen="\n          node.isExpanded;\n          speed: node.options.animateSpeed;\n          acceleration: node.options.animateAcceleration;\n          enabled: node.options.animateExpand\n        "\n      >\n        <tree-node-collection\n          *ngIf="node.children"\n          [nodes]="node.children"\n          [templates]="templates"\n          [treeModel]="node.treeModel"\n        >\n        </tree-node-collection>\n        <tree-loading-component\n          [style.padding-left]="node.getNodePadding()"\n          class="tree-node-loading"\n          *ngIf="!node.children"\n          [template]="templates.loadingTemplate"\n          [node]="node"\n        ></tree-loading-component>\n      </div>\n    </ng-container>\n  '})],t)}()},pjAE:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(t){return Error.call(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((t,e)=>`${e+1}) ${t.toString()}`).join("\n  ")}`:"",this.name="UnsubscriptionError",this.errors=t,this}return t.prototype=Object.create(Error.prototype),t})()},pkCn:function(t,e,n){"use strict";var a=n("0Dky");t.exports=function(t,e){var n=[][t];return!!n&&a((function(){n.call(null,e||function(){throw 1},1)}))}},ppGB:function(t,e){var n=Math.ceil,a=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?a:n)(t)}},pxLl:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("mrSG"),r=n("IheW"),o=n("LRne"),i=n("5+tZ"),s=n("xTzq"),c=n("8Y7J"),l=n("pL04");let d=(()=>{let t=class{constructor(t){this.http=t,this.url="api/perf_counters"}list(){return this.http.get(this.url)}get(t,e){return this.http.get(`${this.url}/${t}/${e}`).pipe(Object(i.a)(t=>Object(o.a)(t.counters)))}};return t.ngInjectableDef=c["ɵɵdefineInjectable"]({factory:function(){return new t(c["ɵɵinject"](r.c))},token:t,providedIn:l.a}),t=a.__decorate([s.a,a.__metadata("design:paramtypes",[r.c])],t),t})()},pxpQ:function(t,e,n){"use strict";n.d(e,"b",(function(){return o})),n.d(e,"a",(function(){return s}));var a=n("7o/Q"),r=n("WMd4");function o(t,e=0){return function(n){return n.lift(new i(t,e))}}class i{constructor(t,e=0){this.scheduler=t,this.delay=e}call(t,e){return e.subscribe(new s(t,this.scheduler,this.delay))}}class s extends a.a{constructor(t,e,n=0){super(t),this.scheduler=e,this.delay=n}static dispatch(t){const{notification:e,destination:n}=t;e.observe(n),this.unsubscribe()}scheduleMessage(t){this.destination.add(this.scheduler.schedule(s.dispatch,this.delay,new c(t,this.destination)))}_next(t){this.scheduleMessage(r.a.createNext(t))}_error(t){this.scheduleMessage(r.a.createError(t)),this.unsubscribe()}_complete(){this.scheduleMessage(r.a.createComplete()),this.unsubscribe()}}class c{constructor(t,e){this.notification=t,this.destination=e}}},qCKp:function(t,e,n){"use strict";n.r(e);var a=n("HDdC"),r=n("EQ5u"),o=n("OQgR"),i=n("kJWO"),s=n("XNiG"),c=n("2Vo4"),l=n("jtHE"),d=n("NHP+"),u=n("7Hc7"),g=n("D0XW"),f=n("qgXg"),p=n("eNwd"),m=n("3N8a"),h=n("IjjT");let b=(()=>{class t extends h.a{constructor(t=y,e=Number.POSITIVE_INFINITY){super(t,()=>this.frame),this.maxFrames=e,this.frame=0,this.index=-1}flush(){const{actions:t,maxFrames:e}=this;let n,a;for(;(a=t[0])&&a.delay<=e&&(t.shift(),this.frame=a.delay,!(n=a.execute(a.state,a.delay))););if(n){for(;a=t.shift();)a.unsubscribe();throw n}}}return t.frameTimeFactor=10,t})();class y extends m.a{constructor(t,e,n=(t.index+=1)){super(t,e),this.scheduler=t,this.work=e,this.index=n,this.active=!0,this.index=t.index=n}schedule(t,e=0){if(!this.id)return super.schedule(t,e);this.active=!1;const n=new y(this.scheduler,this.work);return this.add(n),n.schedule(t,e)}requestAsyncId(t,e,n=0){this.delay=t.frame+n;const{actions:a}=t;return a.push(this),a.sort(y.sortActions),!0}recycleAsyncId(t,e,n=0){}_execute(t,e){if(!0===this.active)return super._execute(t,e)}static sortActions(t,e){return t.delay===e.delay?t.index===e.index?0:t.index>e.index?1:-1:t.delay>e.delay?1:-1}}var _=n("Y/cZ"),O=n("quSY"),v=n("7o/Q"),C=n("WMd4"),P=n("mCNh"),M=n("KqfI"),x=n("SpAZ"),w=n("7+OI"),T=n("4I5i"),S=n("sVev"),k=n("9ppp"),I=n("pjAE"),N=n("Y6u4"),R=n("lJxs"),A=n("8Qeq"),E=n("DH7j"),D=n("z+Ro");function L(t,e,n){if(e){if(!Object(D.a)(e))return(...a)=>L(t,n)(...a).pipe(Object(R.a)(t=>Object(E.a)(t)?e(...t):e(t)));n=e}return function(...e){const r=this;let o;const i={context:r,subject:o,callbackFunc:t,scheduler:n};return new a.a(a=>{if(n)return n.schedule(q,0,{args:e,subscriber:a,params:i});if(!o){o=new d.a;const n=(...t)=>{o.next(t.length<=1?t[0]:t),o.complete()};try{t.apply(r,[...e,n])}catch(s){Object(A.a)(o)?o.error(s):console.warn(s)}}return o.subscribe(a)})}}function q(t){const{args:e,subscriber:n,params:a}=t,{callbackFunc:r,context:o,scheduler:i}=a;let{subject:s}=a;if(!s){s=a.subject=new d.a;const t=(...t)=>{this.add(i.schedule(j,0,{value:t.length<=1?t[0]:t,subject:s}))};try{r.apply(o,[...e,t])}catch(c){s.error(c)}}this.add(s.subscribe(n))}function j(t){const{value:e,subject:n}=t;n.next(e),n.complete()}function F(t,e,n){if(e){if(!Object(D.a)(e))return(...a)=>F(t,n)(...a).pipe(Object(R.a)(t=>Object(E.a)(t)?e(...t):e(t)));n=e}return function(...e){const r={subject:void 0,args:e,callbackFunc:t,scheduler:n,context:this};return new a.a(a=>{const{context:o}=r;let{subject:i}=r;if(n)return n.schedule(z,0,{params:r,subscriber:a,context:o});if(!i){i=r.subject=new d.a;const n=(...t)=>{const e=t.shift();e?i.error(e):(i.next(t.length<=1?t[0]:t),i.complete())};try{t.apply(o,[...e,n])}catch(s){Object(A.a)(i)?i.error(s):console.warn(s)}}return i.subscribe(a)})}}function z(t){const{params:e,subscriber:n,context:a}=t,{callbackFunc:r,args:o,scheduler:i}=e;let s=e.subject;if(!s){s=e.subject=new d.a;const t=(...t)=>{const e=t.shift();this.add(e?i.schedule(B,0,{err:e,subject:s}):i.schedule(G,0,{value:t.length<=1?t[0]:t,subject:s}))};try{r.apply(a,[...o,t])}catch(c){this.add(i.schedule(B,0,{err:c,subject:s}))}}this.add(s.subscribe(n))}function G(t){const{value:e,subject:n}=t;n.next(e),n.complete()}function B(t){const{err:e,subject:n}=t;n.error(e)}var V=n("itXk"),Y=n("GyhO"),H=n("NXyV"),U=n("EY2u"),W=n("cp0P"),K=n("Cfvw"),$=n("xgIS"),Z=n("n6bG");function J(t,e,n){return n?J(t,e).pipe(Object(R.a)(t=>Object(E.a)(t)?n(...t):n(t))):new a.a(n=>{const a=(...t)=>n.next(1===t.length?t[0]:t);let r;try{r=t(a)}catch(o){return void n.error(o)}if(Object(Z.a)(e))return()=>e(a,r)})}function X(t,e,n,r,o){let i,s;return 1==arguments.length?(s=t.initialState,e=t.condition,n=t.iterate,i=t.resultSelector||x.a,o=t.scheduler):void 0===r||Object(D.a)(r)?(s=t,i=x.a,o=r):(s=t,i=r),new a.a(t=>{let a=s;if(o)return o.schedule(Q,0,{subscriber:t,iterate:n,condition:e,resultSelector:i,state:a});for(;;){if(e){let n;try{n=e(a)}catch(r){return void t.error(r)}if(!n){t.complete();break}}let o;try{o=i(a)}catch(r){return void t.error(r)}if(t.next(o),t.closed)break;try{a=n(a)}catch(r){return void t.error(r)}}})}function Q(t){const{subscriber:e,condition:n}=t;if(e.closed)return;if(t.needIterate)try{t.state=t.iterate(t.state)}catch(r){return void e.error(r)}else t.needIterate=!0;if(n){let a;try{a=n(t.state)}catch(r){return void e.error(r)}if(!a)return void e.complete();if(e.closed)return}let a;try{a=t.resultSelector(t.state)}catch(r){return void e.error(r)}return e.closed||(e.next(a),e.closed)?void 0:this.schedule(t)}function tt(t,e=U.a,n=U.a){return Object(H.a)(()=>t()?e:n)}var et=n("l5mm"),nt=n("VRyK");const at=new a.a(M.a);function rt(){return at}var ot=n("LRne");function it(...t){if(0===t.length)return U.a;const[e,...n]=t;return 1===t.length&&Object(E.a)(e)?it(...e):new a.a(t=>{const a=()=>t.add(it(...n).subscribe(t));return Object(K.a)(e).subscribe({next(e){t.next(e)},error:a,complete:a})})}function st(t,e){return new a.a(e?n=>{const a=Object.keys(t),r=new O.a;return r.add(e.schedule(ct,0,{keys:a,index:0,subscriber:n,subscription:r,obj:t})),r}:e=>{const n=Object.keys(t);for(let a=0;a<n.length&&!e.closed;a++){const r=n[a];t.hasOwnProperty(r)&&e.next([r,t[r]])}e.complete()})}function ct(t){const{keys:e,index:n,subscriber:a,subscription:r,obj:o}=t;if(!a.closed)if(n<e.length){const t=e[n];a.next([t,o[t]]),r.add(this.schedule({keys:e,index:n+1,subscriber:a,subscription:r,obj:o}))}else a.complete()}var lt=n("F97/"),dt=n("SeVD"),ut=n("pLZG");function gt(t,e,n){return[Object(ut.a)(e,n)(new a.a(Object(dt.a)(t))),Object(ut.a)(Object(lt.a)(e,n))(new a.a(Object(dt.a)(t)))]}var ft=n("Nv8m");function pt(t=0,e,n){return new a.a(a=>{void 0===e&&(e=t,t=0);let r=0,o=t;if(n)return n.schedule(mt,0,{index:r,count:e,start:t,subscriber:a});for(;;){if(r++>=e){a.complete();break}if(a.next(o++),a.closed)break}})}function mt(t){const{start:e,index:n,count:a,subscriber:r}=t;n>=a?r.complete():(r.next(e),r.closed||(t.index=n+1,t.start=e+1,this.schedule(t)))}var ht=n("z6cu"),bt=n("PqYM");function yt(t,e){return new a.a(n=>{let a,r;try{a=t()}catch(i){return void n.error(i)}try{r=e(a)}catch(i){return void n.error(i)}const o=(r?Object(K.a)(r):U.a).subscribe(n);return()=>{o.unsubscribe(),a&&a.unsubscribe()}})}var _t=n("1uah"),Ot=n("7HRe"),vt=n("2fFW");n.d(e,"Observable",(function(){return a.a})),n.d(e,"ConnectableObservable",(function(){return r.a})),n.d(e,"GroupedObservable",(function(){return o.a})),n.d(e,"observable",(function(){return i.a})),n.d(e,"Subject",(function(){return s.a})),n.d(e,"BehaviorSubject",(function(){return c.a})),n.d(e,"ReplaySubject",(function(){return l.a})),n.d(e,"AsyncSubject",(function(){return d.a})),n.d(e,"asapScheduler",(function(){return u.a})),n.d(e,"asyncScheduler",(function(){return g.a})),n.d(e,"queueScheduler",(function(){return f.a})),n.d(e,"animationFrameScheduler",(function(){return p.a})),n.d(e,"VirtualTimeScheduler",(function(){return b})),n.d(e,"VirtualAction",(function(){return y})),n.d(e,"Scheduler",(function(){return _.a})),n.d(e,"Subscription",(function(){return O.a})),n.d(e,"Subscriber",(function(){return v.a})),n.d(e,"Notification",(function(){return C.a})),n.d(e,"NotificationKind",(function(){return C.b})),n.d(e,"pipe",(function(){return P.a})),n.d(e,"noop",(function(){return M.a})),n.d(e,"identity",(function(){return x.a})),n.d(e,"isObservable",(function(){return w.a})),n.d(e,"ArgumentOutOfRangeError",(function(){return T.a})),n.d(e,"EmptyError",(function(){return S.a})),n.d(e,"ObjectUnsubscribedError",(function(){return k.a})),n.d(e,"UnsubscriptionError",(function(){return I.a})),n.d(e,"TimeoutError",(function(){return N.a})),n.d(e,"bindCallback",(function(){return L})),n.d(e,"bindNodeCallback",(function(){return F})),n.d(e,"combineLatest",(function(){return V.b})),n.d(e,"concat",(function(){return Y.a})),n.d(e,"defer",(function(){return H.a})),n.d(e,"empty",(function(){return U.b})),n.d(e,"forkJoin",(function(){return W.a})),n.d(e,"from",(function(){return K.a})),n.d(e,"fromEvent",(function(){return $.a})),n.d(e,"fromEventPattern",(function(){return J})),n.d(e,"generate",(function(){return X})),n.d(e,"iif",(function(){return tt})),n.d(e,"interval",(function(){return et.a})),n.d(e,"merge",(function(){return nt.a})),n.d(e,"never",(function(){return rt})),n.d(e,"of",(function(){return ot.a})),n.d(e,"onErrorResumeNext",(function(){return it})),n.d(e,"pairs",(function(){return st})),n.d(e,"partition",(function(){return gt})),n.d(e,"race",(function(){return ft.a})),n.d(e,"range",(function(){return pt})),n.d(e,"throwError",(function(){return ht.a})),n.d(e,"timer",(function(){return bt.a})),n.d(e,"using",(function(){return yt})),n.d(e,"zip",(function(){return _t.b})),n.d(e,"scheduled",(function(){return Ot.a})),n.d(e,"EMPTY",(function(){return U.a})),n.d(e,"NEVER",(function(){return at})),n.d(e,"config",(function(){return vt.a}))},qZTm:function(t,e,n){var a=n("fR/l"),r=n("MvSz"),o=n("7GkX");t.exports=function(t){return a(t,o,r)}},qgXg:function(t,e,n){"use strict";var a=n("3N8a");class r extends a.a{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,n=0){return null!==n&&n>0||null===n&&this.delay>0?super.requestAsyncId(t,e,n):t.flush(this)}}var o=n("IjjT");class i extends o.a{}n.d(e,"a",(function(){return s}));const s=new i(r)},quSY:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("DH7j"),r=n("XoHu"),o=n("n6bG"),i=n("pjAE");let s=(()=>{class t{constructor(t){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,t&&(this._unsubscribe=t)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:n,_unsubscribe:s,_subscriptions:l}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,n instanceof t)n.remove(this);else if(null!==n)for(let t=0;t<n.length;++t)n[t].remove(this);if(Object(o.a)(s))try{s.call(this)}catch(d){e=d instanceof i.a?c(d.errors):[d]}if(Object(a.a)(l)){let t=-1,n=l.length;for(;++t<n;){const n=l[t];if(Object(r.a)(n))try{n.unsubscribe()}catch(d){e=e||[],d instanceof i.a?e=e.concat(c(d.errors)):e.push(d)}}}if(e)throw new i.a(e)}add(e){let n=e;if(!e)return t.EMPTY;switch(typeof e){case"function":n=new t(e);case"object":if(n===this||n.closed||"function"!=typeof n.unsubscribe)return n;if(this.closed)return n.unsubscribe(),n;if(!(n instanceof t)){const e=n;n=new t,n._subscriptions=[e]}break;default:throw new Error("unrecognized teardown "+e+" added to Subscription.")}let{_parentOrParents:a}=n;if(null===a)n._parentOrParents=this;else if(a instanceof t){if(a===this)return n;n._parentOrParents=[a,this]}else{if(-1!==a.indexOf(this))return n;a.push(this)}const r=this._subscriptions;return null===r?this._subscriptions=[n]:r.push(n),n}remove(t){const e=this._subscriptions;if(e){const n=e.indexOf(t);-1!==n&&e.splice(n,1)}}}var e;return t.EMPTY=((e=new t).closed=!0,e),t})();function c(t){return t.reduce((t,e)=>t.concat(e instanceof i.a?e.errors:e),[])}},qwkt:function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("ejVf")),a(n("aTeT")),a(n("WOoz")),a(n("lmqd")),a(n("ILDN")),a(n("n1nk"))},r8II:function(t,e,n){"use strict";e.decode=e.parse=n("YcCt"),e.encode=e.stringify=n("6MUB")},rB9j:function(t,e,n){"use strict";var a=n("I+eb"),r=n("kmMV");a({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},rEGp:function(t,e){t.exports=function(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}},rKzb:function(t,e,n){"use strict";var a=n("4syw"),r=n("8YOa").getWeakData,o=n("glrk"),i=n("hh1v"),s=n("GarU"),c=n("ImZN"),l=n("tycR"),d=n("UTVS"),u=n("afO8"),g=u.set,f=u.getterFor,p=l.find,m=l.findIndex,h=0,b=function(t){return t.frozen||(t.frozen=new y)},y=function(){this.entries=[]},_=function(t,e){return p(t.entries,(function(t){return t[0]===e}))};y.prototype={get:function(t){var e=_(this,t);if(e)return e[1]},has:function(t){return!!_(this,t)},set:function(t,e){var n=_(this,t);n?n[1]=e:this.entries.push([t,e])},delete:function(t){var e=m(this.entries,(function(e){return e[0]===t}));return~e&&this.entries.splice(e,1),!!~e}},t.exports={getConstructor:function(t,e,n,l){var u=t((function(t,a){s(t,u,e),g(t,{type:e,id:h++,frozen:void 0}),null!=a&&c(a,t[l],t,n)})),p=f(e),m=function(t,e,n){var a=p(t),i=r(o(e),!0);return!0===i?b(a).set(e,n):i[a.id]=n,t};return a(u.prototype,{delete:function(t){var e=p(this);if(!i(t))return!1;var n=r(t);return!0===n?b(e).delete(t):n&&d(n,e.id)&&delete n[e.id]},has:function(t){var e=p(this);if(!i(t))return!1;var n=r(t);return!0===n?b(e).has(t):n&&d(n,e.id)}}),a(u.prototype,n?{get:function(t){var e=p(this);if(i(t)){var n=r(t);return!0===n?b(e).get(t):n?n[e.id]:void 0}},set:function(t,e){return m(this,t,e)}}:{add:function(t){return m(this,t,!0)}}),u}}},rLYq:function(t,e,n){var a=n("mrSG").__assign,r=n("mrSG").__decorate,o=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("8Y7J");function s(t){var e=t.filter((function(t){return!!t}));return e.length?e.some((function(t){return"number"!=typeof t}))?null:e.reduce((function(t,e){return t+e})):null}function c(t){return null}e.DataTableSummaryRowComponent=function(){function t(){this.summaryRow={}}return t.prototype.ngOnChanges=function(){this.columns&&this.rows&&(this.updateInternalColumns(),this.updateValues())},t.prototype.updateInternalColumns=function(){this._internalColumns=this.columns.map((function(t){return a({},t,{cellTemplate:t.summaryTemplate})}))},t.prototype.updateValues=function(){var t=this;this.summaryRow={},this.columns.filter((function(t){return!t.summaryTemplate})).forEach((function(e){var n=t.rows.map((function(t){return t[e.prop]})),a=t.getSummaryFunction(e);t.summaryRow[e.prop]=e.pipe?e.pipe.transform(a(n)):a(n)}))},t.prototype.getSummaryFunction=function(t){return void 0===t.summaryFunc?s:null===t.summaryFunc?c:t.summaryFunc},r([i.Input(),o("design:type",Array)],t.prototype,"rows",void 0),r([i.Input(),o("design:type",Array)],t.prototype,"columns",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"rowHeight",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"offsetX",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"innerWidth",void 0),r([i.Component({selector:"datatable-summary-row",template:'\n  <datatable-body-row\n    *ngIf="summaryRow && _internalColumns"\n    tabindex="-1"\n    [innerWidth]="innerWidth"\n    [offsetX]="offsetX"\n    [columns]="_internalColumns"\n    [rowHeight]="rowHeight"\n    [row]="summaryRow"\n    [rowIndex]="-1">\n  </datatable-body-row>\n  ',host:{class:"datatable-summary-row"}})],t)}()},rW0t:function(t,e,n){"use strict";var a=n("glrk");t.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},rZud:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Input)(),i("design:type",Number)],t.prototype,"index",void 0),o([Object(a.Input)(),i("design:type",a.TemplateRef)],t.prototype,"template",void 0),o([Object(a.Component)({selector:"tree-node-content",encapsulation:a.ViewEncapsulation.None,template:'\n  <span *ngIf="!template">{{ node.displayField }}</span>\n  <ng-container\n    [ngTemplateOutlet]="template"\n    [ngTemplateOutletContext]="{ $implicit: node, node: node, index: index }">\n  </ng-container>'})],t)}()},raLr:function(t,e,n){!function(t){"use strict";function e(t,e,n){var a,r;return"m"===n?e?"хвилина":"хвилину":"h"===n?e?"година":"годину":t+" "+(a=+t,r={ss:e?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:e?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:e?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),a%10==1&&a%100!=11?r[0]:a%10>=2&&a%10<=4&&(a%100<10||a%100>=20)?r[1]:r[2])}function n(t){return function(){return t+"о"+(11===this.hours()?"б":"")+"] LT"}}t.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(t,e){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===t?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):t?n[/(\[[ВвУу]\]) ?dddd/.test(e)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".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:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:e,m:e,mm:e,h:"годину",hh:e,d:"день",dd:e,M:"місяць",MM:e,y:"рік",yy:e},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(t){return/^(дня|вечора)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночі":t<12?"ранку":t<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-й";case"D":return t+"-го";default:return t}},week:{dow:1,doy:7}})}(n("wd/R"))},rdkg:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("CVuo"),r={},o="undefined"!=typeof document?document.createElement("div").style:void 0,i=function(){var t="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0,e=void 0!==t?Array.prototype.slice.call(t).join("").match(/-(moz|webkit|ms)-/):null,n=null!==e?e[1]:void 0,a=void 0!==n?"WebKit|Moz|MS|O".match(new RegExp("("+n+")","i"))[1]:void 0;return a?{dom:a,lowercase:n,css:"-"+n+"-",js:n[0].toUpperCase()+n.substr(1)}:void 0};e.ɵ0=i;var s=i();e.getVendorPrefixedName=function(t){var e=a.camelCase(t);return r[e]||(void 0!==s&&void 0!==o[s.css+t]?r[e]=s.css+t:void 0!==o[t]&&(r[e]=t)),r[e]}},rkAj:function(t,e,n){var a=n("g6v/"),r=n("0Dky"),o=n("UTVS"),i=Object.defineProperty,s={},c=function(t){throw t};t.exports=function(t,e){if(o(s,t))return s[t];e||(e={});var n=[][t],l=!!o(e,"ACCESSORS")&&e.ACCESSORS,d=o(e,0)?e[0]:c,u=o(e,1)?e[1]:void 0;return s[t]=!!n&&!r((function(){if(l&&!a)return!0;var t={length:-1};l?i(t,1,{enumerable:!0,get:c}):t[1]=1,n.call(t,d,u)}))}},rpNk:function(t,e,n){"use strict";var a,r,o,i=n("4WOD"),s=n("kRJp"),c=n("UTVS"),l=n("tiKp"),d=n("xDBR"),u=l("iterator"),g=!1;[].keys&&("next"in(o=[].keys())?(r=i(i(o)))!==Object.prototype&&(a=r):g=!0),null==a&&(a={}),d||c(a,u)||s(a,u,(function(){return this})),t.exports={IteratorPrototype:a,BUGGY_SAFARI_ITERATORS:g}},"s+uk":function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},s7LF:function(t,e,n){"use strict";n.d(e,"C",(function(){return Ct})),n.d(e,"G",(function(){return pt})),n.d(e,"D",(function(){return k})),n.d(e,"E",(function(){return mt})),n.d(e,"F",(function(){return F})),n.d(e,"c",(function(){return l})),n.d(e,"d",(function(){return f})),n.d(e,"p",(function(){return c})),n.d(e,"b",(function(){return d})),n.d(e,"e",(function(){return u})),n.d(e,"q",(function(){return m})),n.d(e,"r",(function(){return b})),n.d(e,"s",(function(){return y})),n.d(e,"t",(function(){return st})),n.d(e,"u",(function(){return ft})),n.d(e,"w",(function(){return S})),n.d(e,"x",(function(){return I})),n.d(e,"j",(function(){return Ot})),n.d(e,"l",(function(){return ht})),n.d(e,"g",(function(){return yt})),n.d(e,"m",(function(){return bt})),n.d(e,"v",(function(){return q})),n.d(e,"A",(function(){return L})),n.d(e,"z",(function(){return vt})),n.d(e,"h",(function(){return Pt})),n.d(e,"a",(function(){return nt})),n.d(e,"f",(function(){return ot})),n.d(e,"i",(function(){return at})),n.d(e,"k",(function(){return rt})),n.d(e,"o",(function(){return O})),n.d(e,"B",(function(){return C})),n.d(e,"n",(function(){return Mt})),n.d(e,"y",(function(){return xt}));var a=n("8Y7J"),r=n("cUpR"),o=n("cp0P"),i=n("Cfvw"),s=n("lJxs");const c=new a.InjectionToken("NgValueAccessor");class l{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"checked",t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}const d=new a.InjectionToken("CompositionEventMode");class u{constructor(t,e,n){this._renderer=t,this._elementRef=e,this._compositionMode=n,this.onChange=t=>{},this.onTouched=()=>{},this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function(){const t=Object(r.q)()?Object(r.q)().getUserAgent():"";return/android (\d+)/.test(t.toLowerCase())}())}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}class g{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}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 f extends g{get formDirective(){return null}get path(){return null}}function p(){throw new Error("unimplemented")}class m extends g{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null,this._rawValidators=[],this._rawAsyncValidators=[]}get validator(){return p()}get asyncValidator(){return p()}}class h{constructor(t){this._cd=t}get ngClassUntouched(){return!!this._cd.control&&this._cd.control.untouched}get ngClassTouched(){return!!this._cd.control&&this._cd.control.touched}get ngClassPristine(){return!!this._cd.control&&this._cd.control.pristine}get ngClassDirty(){return!!this._cd.control&&this._cd.control.dirty}get ngClassValid(){return!!this._cd.control&&this._cd.control.valid}get ngClassInvalid(){return!!this._cd.control&&this._cd.control.invalid}get ngClassPending(){return!!this._cd.control&&this._cd.control.pending}}class b extends h{constructor(t){super(t)}}class y extends h{constructor(t){super(t)}}function _(t){return null==t||0===t.length}const O=new a.InjectionToken("NgValidators"),v=/^(?=.{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 C{static min(t){return e=>{if(_(e.value)||_(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n<t?{min:{min:t,actual:e.value}}:null}}static max(t){return e=>{if(_(e.value)||_(t))return null;const n=parseFloat(e.value);return!isNaN(n)&&n>t?{max:{max:t,actual:e.value}}:null}}static required(t){return _(t.value)?{required:!0}:null}static requiredTrue(t){return!0===t.value?null:{required:!0}}static email(t){return _(t.value)?null:v.test(t.value)?null:{email:!0}}static minLength(t){return e=>{if(_(e.value))return null;const n=e.value?e.value.length:0;return n<t?{minlength:{requiredLength:t,actualLength:n}}:null}}static maxLength(t){return e=>{const n=e.value?e.value.length:0;return n>t?{maxlength:{requiredLength:t,actualLength:n}}:null}}static pattern(t){if(!t)return C.nullValidator;let e,n;return"string"==typeof t?(n="","^"!==t.charAt(0)&&(n+="^"),n+=t,"$"!==t.charAt(t.length-1)&&(n+="$"),e=new RegExp(n)):(n=t.toString(),e=t),t=>{if(_(t.value))return null;const a=t.value;return e.test(a)?null:{pattern:{requiredPattern:n,actualValue:a}}}}static nullValidator(t){return null}static compose(t){if(!t)return null;const e=t.filter(P);return 0==e.length?null:function(t){return x(function(t,e){return e.map(e=>e(t))}(t,e))}}static composeAsync(t){if(!t)return null;const e=t.filter(P);return 0==e.length?null:function(t){const n=function(t,e){return e.map(e=>e(t))}(t,e).map(M);return Object(o.a)(n).pipe(Object(s.a)(x))}}}function P(t){return null!=t}function M(t){const e=Object(a["ɵisPromise"])(t)?Object(i.a)(t):t;if(!Object(a["ɵisObservable"])(e))throw new Error("Expected validator to return Promise or Observable.");return e}function x(t){const e=t.reduce((t,e)=>null!=e?Object.assign({},t,e):t,{});return 0===Object.keys(e).length?null:e}function w(t){return t.validate?e=>t.validate(e):t}function T(t){return t.validate?e=>t.validate(e):t}class S{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",null==t?"":t)}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}}class k{constructor(){this._accessors=[]}add(t,e){this._accessors.push([t,e])}remove(t){for(let e=this._accessors.length-1;e>=0;--e)if(this._accessors[e][1]===t)return void this._accessors.splice(e,1)}select(t){this._accessors.forEach(e=>{this._isSameGroup(e,t)&&e[1]!==t&&e[1].fireUncheck(t.value)})}_isSameGroup(t,e){return!!t[0].control&&t[0]._parent===e._control._parent&&t[1].name===e.name}}class I{constructor(t,e,n,a){this._renderer=t,this._elementRef=e,this._registry=n,this._injector=a,this.onChange=()=>{},this.onTouched=()=>{}}ngOnInit(){this._control=this._injector.get(m),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this._renderer.setProperty(this._elementRef.nativeElement,"checked",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}fireUncheck(t){this.writeValue(t)}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_checkName(){this.name&&this.formControlName&&this.name!==this.formControlName&&this._throwNameError(),!this.name&&this.formControlName&&(this.name=this.formControlName)}_throwNameError(){throw new Error('\n      If you define both a name and a formControlName attribute on your radio button, their values\n      must match. Ex: <input type="radio" formControlName="food" name="food">\n    ')}}const N='\n    <div [formGroup]="myGroup">\n      <input formControlName="firstName">\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       firstName: new FormControl()\n    });',R='\n    <div [formGroup]="myGroup">\n       <div formGroupName="person">\n          <input formControlName="firstName">\n       </div>\n    </div>\n\n    In your class:\n\n    this.myGroup = new FormGroup({\n       person: new FormGroup({ firstName: new FormControl() })\n    });',A='\n    <form>\n       <div ngModelGroup="person">\n          <input [(ngModel)]="person.name" name="firstName">\n       </div>\n    </form>';class E{static controlParentException(){throw new Error(`formControlName must be used with a parent formGroup directive.  You'll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${N}`)}static ngModelGroupException(){throw new Error(`formControlName cannot be used with an ngModelGroup parent. It is only compatible with parents\n       that also have a "form" prefix: formGroupName, formArrayName, or formGroup.\n\n       Option 1:  Update the parent to be formGroupName (reactive form strategy)\n\n        ${R}\n\n        Option 2: Use ngModel instead of formControlName (template-driven strategy)\n\n        ${A}`)}static missingFormException(){throw new Error(`formGroup expects a FormGroup instance. Please pass one in.\n\n       Example:\n\n       ${N}`)}static groupParentException(){throw new Error(`formGroupName must be used with a parent formGroup directive.  You'll want to add a formGroup\n      directive and pass it an existing FormGroup instance (you can create one in your class).\n\n      Example:\n\n      ${R}`)}static arrayParentException(){throw new Error('formArrayName must be used with a parent formGroup directive.  You\'ll want to add a formGroup\n       directive and pass it an existing FormGroup instance (you can create one in your class).\n\n        Example:\n\n        \n    <div [formGroup]="myGroup">\n      <div formArrayName="cities">\n        <div *ngFor="let city of cityArray.controls; index as i">\n          <input [formControlName]="i">\n        </div>\n      </div>\n    </div>\n\n    In your class:\n\n    this.cityArray = new FormArray([new FormControl(\'SF\')]);\n    this.myGroup = new FormGroup({\n      cities: this.cityArray\n    });')}static disabledAttrWarning(){console.warn("\n      It looks like you're using the disabled attribute with a reactive form directive. If you set disabled to true\n      when you set up this control in your component class, the disabled attribute will actually be set in the DOM for\n      you. We recommend using this approach to avoid 'changed after checked' errors.\n       \n      Example: \n      form = new FormGroup({\n        first: new FormControl({value: 'Nancy', disabled: true}, Validators.required),\n        last: new FormControl('Drew', Validators.required)\n      });\n    ")}static ngModelWarning(t){console.warn(`\n    It looks like you're using ngModel on the same form field as ${t}. \n    Support for using the ngModel input property and ngModelChange event with \n    reactive form directives has been deprecated in Angular v6 and will be removed \n    in Angular v7.\n    \n    For more information on this, see our API docs here:\n    https://angular.io/api/forms/${"formControl"===t?"FormControlDirective":"FormControlName"}#use-with-ngmodel\n    `)}}function D(t,e){return null==t?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class L{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=a["ɵlooseIdentical"]}set compareWith(t){if("function"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){this.value=t;const e=this._getOptionId(t);null==e&&this._renderer.setProperty(this._elementRef.nativeElement,"selectedIndex",-1);const n=D(e,t);this._renderer.setProperty(this._elementRef.nativeElement,"value",n)}registerOnChange(t){this.onChange=e=>{this.value=this._getOptionValue(e),t(this.value)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e),t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e):t}}class q{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(D(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}function j(t,e){return null==t?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${t}: ${e}`.slice(0,50))}class F{constructor(t,e,n){this._element=t,this._renderer=e,this._select=n,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(j(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(j(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}function z(t,e){return[...e.path,t]}function G(t,e){t||H(e,"Cannot find control with"),e.valueAccessor||H(e,"No value accessor for form control with"),t.validator=C.compose([t.validator,e.validator]),t.asyncValidator=C.composeAsync([t.asyncValidator,e.asyncValidator]),e.valueAccessor.writeValue(t.value),function(t,e){e.valueAccessor.registerOnChange(n=>{t._pendingValue=n,t._pendingChange=!0,t._pendingDirty=!0,"change"===t.updateOn&&B(t,e)})}(t,e),function(t,e){t.registerOnChange((t,n)=>{e.valueAccessor.writeValue(t),n&&e.viewToModelUpdate(t)})}(t,e),function(t,e){e.valueAccessor.registerOnTouched(()=>{t._pendingTouched=!0,"blur"===t.updateOn&&t._pendingChange&&B(t,e),"submit"!==t.updateOn&&t.markAsTouched()})}(t,e),e.valueAccessor.setDisabledState&&t.registerOnDisabledChange(t=>{e.valueAccessor.setDisabledState(t)}),e._rawValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())}),e._rawAsyncValidators.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(()=>t.updateValueAndValidity())})}function B(t,e){t._pendingDirty&&t.markAsDirty(),t.setValue(t._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(t._pendingValue),t._pendingChange=!1}function V(t,e){null==t&&H(e,"Cannot find control with"),t.validator=C.compose([t.validator,e.validator]),t.asyncValidator=C.composeAsync([t.asyncValidator,e.asyncValidator])}function Y(t){return H(t,"There is no FormControl instance attached to form control element with")}function H(t,e){let n;throw n=t.path.length>1?`path: '${t.path.join(" -> ")}'`:t.path[0]?`name: '${t.path}'`:"unspecified name attribute",new Error(`${e} ${n}`)}function U(t){return null!=t?C.compose(t.map(w)):null}function W(t){return null!=t?C.composeAsync(t.map(T)):null}function K(t,e){if(!t.hasOwnProperty("model"))return!1;const n=t.model;return!!n.isFirstChange()||!Object(a["ɵlooseIdentical"])(e,n.currentValue)}const $=[l,class{constructor(t,e){this._renderer=t,this._elementRef=e,this.onChange=t=>{},this.onTouched=()=>{}}writeValue(t){this._renderer.setProperty(this._elementRef.nativeElement,"value",parseFloat(t))}registerOnChange(t){this.onChange=e=>{t(""==e?null:parseFloat(e))}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}},S,L,class{constructor(t,e){this._renderer=t,this._elementRef=e,this._optionMap=new Map,this._idCounter=0,this.onChange=t=>{},this.onTouched=()=>{},this._compareWith=a["ɵlooseIdentical"]}set compareWith(t){if("function"!=typeof t)throw new Error(`compareWith must be a function, but received ${JSON.stringify(t)}`);this._compareWith=t}writeValue(t){let e;if(this.value=t,Array.isArray(t)){const n=t.map(t=>this._getOptionId(t));e=(t,e)=>{t._setSelected(n.indexOf(e.toString())>-1)}}else e=(t,e)=>{t._setSelected(!1)};this._optionMap.forEach(e)}registerOnChange(t){this.onChange=e=>{const n=[];if(e.hasOwnProperty("selectedOptions")){const t=e.selectedOptions;for(let e=0;e<t.length;e++){const a=t.item(e),r=this._getOptionValue(a.value);n.push(r)}}else{const t=e.options;for(let e=0;e<t.length;e++){const a=t.item(e);if(a.selected){const t=this._getOptionValue(a.value);n.push(t)}}}this.value=n,t(n)}}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this._renderer.setProperty(this._elementRef.nativeElement,"disabled",t)}_registerOption(t){const e=(this._idCounter++).toString();return this._optionMap.set(e,t),e}_getOptionId(t){for(const e of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(e)._value,t))return e;return null}_getOptionValue(t){const e=function(t){return t.split(":")[0]}(t);return this._optionMap.has(e)?this._optionMap.get(e)._value:t}},I];function Z(t,e){t._syncPendingControls(),e.forEach(t=>{const e=t.control;"submit"===e.updateOn&&e._pendingChange&&(t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1)})}function J(t,e){if(!e)return null;Array.isArray(e)||H(t,"Value accessor was not provided as an array for form control with");let n=void 0,a=void 0,r=void 0;return e.forEach(e=>{var o;e.constructor===u?n=e:(o=e,$.some(t=>o.constructor===t)?(a&&H(t,"More than one built-in value accessor matches form control with"),a=e):(r&&H(t,"More than one custom value accessor matches form control with"),r=e))}),r||a||n||(H(t,"No valid value accessor for form control with"),null)}function X(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}function Q(t){const e=et(t)?t.validators:t;return Array.isArray(e)?U(e):e||null}function tt(t,e){const n=et(e)?e.asyncValidators:t;return Array.isArray(n)?W(n):n||null}function et(t){return null!=t&&!Array.isArray(t)&&"object"==typeof t}class nt{constructor(t,e){this.validator=t,this.asyncValidator=e,this._onCollectionChange=()=>{},this.pristine=!0,this.touched=!1,this._onDisabledChange=[]}get parent(){return this._parent}get valid(){return"VALID"===this.status}get invalid(){return"INVALID"===this.status}get pending(){return"PENDING"==this.status}get disabled(){return"DISABLED"===this.status}get enabled(){return"DISABLED"!==this.status}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.validator=Q(t)}setAsyncValidators(t){this.asyncValidator=tt(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(t=>{t.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(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status="PENDING",!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="DISABLED",this.errors=null,this._forEachChild(e=>{e.disable(Object.assign({},t,{onlySelf:!0}))}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Object.assign({},t,{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!0))}enable(t={}){const e=this._parentMarkedDirty(t.onlySelf);this.status="VALID",this._forEachChild(e=>{e.enable(Object.assign({},t,{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(Object.assign({},t,{skipPristineCheck:e})),this._onDisabledChange.forEach(t=>t(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),"VALID"!==this.status&&"PENDING"!==this.status||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()?"DISABLED":"VALID"}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status="PENDING";const e=M(this.asyncValidator(this));this._asyncValidationSubscription=e.subscribe(e=>this.setErrors(e,{emitEvent:t}))}}_cancelExistingSubscription(){this._asyncValidationSubscription&&this._asyncValidationSubscription.unsubscribe()}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(!1!==e.emitEvent)}get(t){return function(t,e,n){return null==e?null:(e instanceof Array||(e=e.split(".")),e instanceof Array&&0===e.length?null:e.reduce((t,e)=>t instanceof rt?t.controls.hasOwnProperty(e)?t.controls[e]:null:t instanceof ot&&t.at(e)||null,t))}(this,t)}getError(t,e){const n=e?this.get(e):this;return n&&n.errors?n.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 a.EventEmitter,this.statusChanges=new a.EventEmitter}_calculateStatus(){return this._allControlsDisabled()?"DISABLED":this.errors?"INVALID":this._anyControlsHaveStatus("PENDING")?"PENDING":this._anyControlsHaveStatus("INVALID")?"INVALID":"VALID"}_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)}_isBoxedValue(t){return"object"==typeof t&&null!==t&&2===Object.keys(t).length&&"value"in t&&"disabled"in t}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){et(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&this._parent&&this._parent.dirty&&!this._parent._anyControlsDirty()}}class at extends nt{constructor(t=null,e,n){super(Q(e),tt(n,e)),this._onChange=[],this._applyFormState(t),this._setUpdateStrategy(e),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1}),this._initObservables()}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==e.emitModelToViewChange&&this._onChange.forEach(t=>t(this.value,!1!==e.emitViewToModelChange)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=null,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)}_clearChangeFns(){this._onChange=[],this._onDisabledChange=[],this._onCollectionChange=()=>{}}registerOnDisabledChange(t){this._onDisabledChange.push(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){this._isBoxedValue(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}}class rt extends nt{constructor(t,e,n){super(Q(e),tt(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}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){this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}removeControl(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity(),this._onCollectionChange()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity(),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){this._checkAllValuesPresent(t),Object.keys(t).forEach(n=>{this._throwIfControlMissing(n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){Object.keys(t).forEach(n=>{this.controls[n]&&this.controls[n].patchValue(t[n],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t={},e={}){this._forEachChild((n,a)=>{n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,n)=>(t[n]=e instanceof at?e.value:e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(t,e)=>!!e._syncPendingControls()||t);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!Object.keys(this.controls).length)throw new Error("\n        There are no form controls registered with this group yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.controls[t])throw new Error(`Cannot find form control with name: ${t}.`)}_forEachChild(t){Object.keys(this.controls).forEach(e=>t(this.controls[e],e))}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){let e=!1;return this._forEachChild((n,a)=>{e=e||this.contains(a)&&t(n)}),e}_reduceValue(){return this._reduceChildren({},(t,e,n)=>((e.enabled||this.disabled)&&(t[n]=e.value),t))}_reduceChildren(t,e){let n=t;return this._forEachChild((t,a)=>{n=e(n,t,a)}),n}_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}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control with name: '${n}'.`)})}}class ot extends nt{constructor(t,e,n){super(Q(e),tt(n,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!1})}at(t){return this.controls[t]}push(t){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity(),this._onCollectionChange()}insert(t,e){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity()}removeAt(t){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),this.updateValueAndValidity()}setControl(t,e){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),this.controls.splice(t,1),e&&(this.controls.splice(t,0,e),this._registerControl(e)),this.updateValueAndValidity(),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){this._checkAllValuesPresent(t),t.forEach((t,n)=>{this._throwIfControlMissing(n),this.at(n).setValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t.forEach((t,n)=>{this.at(n)&&this.at(n).patchValue(t,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}reset(t=[],e={}){this._forEachChild((n,a)=>{n.reset(t[a],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e),this._updateTouched(e),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t instanceof at?t.value:t.getRawValue())}clear(){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity())}_syncPendingControls(){let t=this.controls.reduce((t,e)=>!!e._syncPendingControls()||t,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_throwIfControlMissing(t){if(!this.controls.length)throw new Error("\n        There are no form controls registered with this array yet.  If you're using ngModel,\n        you may want to check next tick (e.g. use setTimeout).\n      ");if(!this.at(t))throw new Error(`Cannot find form control at index ${t}`)}_forEachChild(t){this.controls.forEach((e,n)=>{t(e,n)})}_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))}_checkAllValuesPresent(t){this._forEachChild((e,n)=>{if(void 0===t[n])throw new Error(`Must supply a value for form control at index: ${n}.`)})}_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)}}const it=(()=>Promise.resolve(null))();class st extends f{constructor(t,e){super(),this.submitted=!1,this._directives=[],this.ngSubmit=new a.EventEmitter,this.form=new rt({},U(t),W(e))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){it.then(()=>{const e=this._findContainer(t.path);t.control=e.registerControl(t.name,t.control),G(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.push(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){it.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name),X(this._directives,t)})}addFormGroup(t){it.then(()=>{const e=this._findContainer(t.path),n=new rt({});V(n,t),e.registerControl(t.name,n),n.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){it.then(()=>{const e=this._findContainer(t.path);e&&e.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,e){it.then(()=>{this.form.get(t.path).setValue(e)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,Z(this.form,this._directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}class ct{static modelParentException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroup directive.  Try using\n      formGroup's partner directive "formControlName" instead.  Example:\n\n      ${N}\n\n      Or, if you'd like to avoid registering this form control, indicate that it's standalone in ngModelOptions:\n\n      Example:\n\n      \n    <div [formGroup]="myGroup">\n       <input formControlName="firstName">\n       <input [(ngModel)]="showMoreControls" [ngModelOptions]="{standalone: true}">\n    </div>\n  `)}static formGroupNameException(){throw new Error(`\n      ngModel cannot be used to register form controls with a parent formGroupName or formArrayName directive.\n\n      Option 1: Use formControlName instead of ngModel (reactive strategy):\n\n      ${R}\n\n      Option 2:  Update ngModel's parent be ngModelGroup (template-driven strategy):\n\n      ${A}`)}static missingNameException(){throw new Error('If ngModel is used within a form tag, either the name attribute must be set or the form\n      control must be defined as \'standalone\' in ngModelOptions.\n\n      Example 1: <input [(ngModel)]="person.firstName" name="first">\n      Example 2: <input [(ngModel)]="person.firstName" [ngModelOptions]="{standalone: true}">')}static modelGroupParentException(){throw new Error(`\n      ngModelGroup cannot be used with a parent formGroup directive.\n\n      Option 1: Use formGroupName instead of ngModelGroup (reactive strategy):\n\n      ${R}\n\n      Option 2:  Use a regular form tag instead of the formGroup directive (template-driven strategy):\n\n      ${A}`)}static ngFormWarning(){console.warn("\n    It looks like you're using 'ngForm'.\n\n    Support for using the 'ngForm' element selector has been deprecated in Angular v6 and will be removed\n    in Angular v9.\n\n    Use 'ng-form' instead.\n\n    Before:\n    <ngForm #myForm=\"ngForm\">\n\n    After:\n    <ng-form #myForm=\"ngForm\">\n    ")}}const lt=new a.InjectionToken("NgFormSelectorWarning");class dt extends f{ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return z(this.name,this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._validators)}get asyncValidator(){return W(this._asyncValidators)}_checkParentType(){}}class ut extends dt{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}_checkParentType(){this._parent instanceof ut||this._parent instanceof st||ct.modelGroupParentException()}}const gt=(()=>Promise.resolve(null))();class ft extends m{constructor(t,e,n,r){super(),this.control=new at,this._registered=!1,this.update=new a.EventEmitter,this._parent=t,this._rawValidators=e||[],this._rawAsyncValidators=n||[],this.valueAccessor=J(this,r)}ngOnChanges(t){this._checkForErrors(),this._registered||this._setUpControl(),"isDisabled"in t&&this._updateDisabled(t),K(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._parent?z(this.name,this._parent):[this.name]}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._rawValidators)}get asyncValidator(){return W(this._rawAsyncValidators)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){G(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){!(this._parent instanceof ut)&&this._parent instanceof dt?ct.formGroupNameException():this._parent instanceof ut||this._parent instanceof st||ct.modelParentException()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()||this.name||ct.missingNameException()}_updateValue(t){gt.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1})})}_updateDisabled(t){const e=t.isDisabled.currentValue,n=""===e||e&&"false"!==e;gt.then(()=>{n&&!this.control.disabled?this.control.disable():!n&&this.control.disabled&&this.control.enable()})}}class pt{}const mt=new a.InjectionToken("NgModelWithFormControlWarning");class ht extends f{constructor(t,e){super(),this._validators=t,this._asyncValidators=e,this.submitted=!1,this.directives=[],this.form=null,this.ngSubmit=new a.EventEmitter}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations())}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const e=this.form.get(t.path);return G(e,t),e.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),e}getControl(t){return this.form.get(t.path)}removeControl(t){X(this.directives,t)}addFormGroup(t){const e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})}removeFormGroup(t){}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){const e=this.form.get(t.path);V(e,t),e.updateValueAndValidity({emitEvent:!1})}removeFormArray(t){}getFormArray(t){return this.form.get(t.path)}updateModel(t,e){this.form.get(t.path).setValue(e)}onSubmit(t){return this.submitted=!0,Z(this.form,this.directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach(t=>{const e=this.form.get(t.path);t.control!==e&&(function(t,e){e.valueAccessor.registerOnChange(()=>Y(e)),e.valueAccessor.registerOnTouched(()=>Y(e)),e._rawValidators.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),e._rawAsyncValidators.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(null)}),t&&t._clearChangeFns()}(t.control,t),e&&G(e,t),t.control=e)}),this.form._updateTreeValidity({emitEvent:!1})}_updateRegistrations(){this.form._registerOnCollectionChange(()=>this._updateDomValue()),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{}),this._oldForm=this.form}_updateValidators(){const t=U(this._validators);this.form.validator=C.compose([this.form.validator,t]);const e=W(this._asyncValidators);this.form.asyncValidator=C.composeAsync([this.form.asyncValidator,e])}_checkFormPresent(){this.form||E.missingFormException()}}class bt extends dt{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}_checkParentType(){_t(this._parent)&&E.groupParentException()}}class yt extends f{constructor(t,e,n){super(),this._parent=t,this._validators=e,this._asyncValidators=n}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 z(this.name,this._parent)}get validator(){return U(this._validators)}get asyncValidator(){return W(this._asyncValidators)}_checkParentType(){_t(this._parent)&&E.arrayParentException()}}function _t(t){return!(t instanceof bt||t instanceof ht||t instanceof yt)}let Ot=(()=>{class t extends m{constructor(t,e,n,r,o){super(),this._ngModelWarningConfig=o,this._added=!1,this.update=new a.EventEmitter,this._ngModelWarningSent=!1,this._parent=t,this._rawValidators=e||[],this._rawAsyncValidators=n||[],this.valueAccessor=J(this,r)}set isDisabled(t){E.disabledAttrWarning()}ngOnChanges(e){var n,r;this._added||this._setUpControl(),K(e,this.viewModel)&&("formControlName",n=t,this,r=this._ngModelWarningConfig,Object(a.isDevMode)()&&"never"!==r&&((null!==r&&"once"!==r||n._ngModelWarningSentOnce)&&("always"!==r||this._ngModelWarningSent)||(E.ngModelWarning("formControlName"),n._ngModelWarningSentOnce=!0,this._ngModelWarningSent=!0)),this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return z(this.name,this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}get validator(){return U(this._rawValidators)}get asyncValidator(){return W(this._rawAsyncValidators)}_checkParentType(){!(this._parent instanceof bt)&&this._parent instanceof dt?E.ngModelGroupException():this._parent instanceof bt||this._parent instanceof ht||this._parent instanceof yt||E.controlParentException()}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this.control.disabled&&this.valueAccessor.setDisabledState&&this.valueAccessor.setDisabledState(!0),this._added=!0}}return t._ngModelWarningSentOnce=!1,t})();class vt{get required(){return this._required}set required(t){this._required=null!=t&&!1!==t&&"false"!==`${t}`,this._onChange&&this._onChange()}validate(t){return this.required?C.required(t):null}registerOnValidatorChange(t){this._onChange=t}}class Ct{}class Pt{group(t,e=null){const n=this._reduceControls(t);let a=null,r=null,o=void 0;return null!=e&&(function(t){return void 0!==t.asyncValidators||void 0!==t.validators||void 0!==t.updateOn}(e)?(a=null!=e.validators?e.validators:null,r=null!=e.asyncValidators?e.asyncValidators:null,o=null!=e.updateOn?e.updateOn:void 0):(a=null!=e.validator?e.validator:null,r=null!=e.asyncValidator?e.asyncValidator:null)),new rt(n,{asyncValidators:r,updateOn:o,validators:a})}control(t,e,n){return new at(t,e,n)}array(t,e,n){const a=t.map(t=>this._createControl(t));return new ot(a,e,n)}_reduceControls(t){const e={};return Object.keys(t).forEach(n=>{e[n]=this._createControl(t[n])}),e}_createControl(t){return t instanceof at||t instanceof rt||t instanceof ot?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}}class Mt{static withConfig(t){return{ngModule:Mt,providers:[{provide:lt,useValue:t.warnOnDeprecatedNgFormSelector}]}}}class xt{static withConfig(t){return{ngModule:xt,providers:[{provide:mt,useValue:t.warnOnNgModelWithFormControl}]}}}},sEFX:function(t,e,n){"use strict";var a=n("AO7/"),r=n("9d/t");t.exports=a?{}.toString:function(){return"[object "+r(this)+"]"}},sEf8:function(t,e){t.exports=function(t){return function(e){return t(e)}}},sEfC:function(t,e,n){var a=n("GoyQ"),r=n("QIyF"),o=n("tLB3"),i=Math.max,s=Math.min;t.exports=function(t,e,n){var c,l,d,u,g,f,p=0,m=!1,h=!1,b=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=c,a=l;return c=l=void 0,p=e,u=t.apply(a,n)}function _(t){return p=t,g=setTimeout(v,e),m?y(t):u}function O(t){var n=t-f;return void 0===f||n>=e||n<0||h&&t-p>=d}function v(){var t=r();if(O(t))return C(t);g=setTimeout(v,function(t){var n=e-(t-f);return h?s(n,d-(t-p)):n}(t))}function C(t){return g=void 0,b&&c?y(t):(c=l=void 0,u)}function P(){var t=r(),n=O(t);if(c=arguments,l=this,f=t,n){if(void 0===g)return _(f);if(h)return clearTimeout(g),g=setTimeout(v,e),y(f)}return void 0===g&&(g=setTimeout(v,e)),u}return e=o(e)||0,a(n)&&(m=!!n.leading,d=(h="maxWait"in n)?i(o(n.maxWait)||0,e):d,b="trailing"in n?!!n.trailing:b),P.cancel=function(){void 0!==g&&clearTimeout(g),p=0,c=f=l=g=void 0},P.flush=function(){return void 0===g?u:C(r())},P}},sLuX:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("25BL"),o=n("uIqm");n("FSuO"),n("a0VL"),n.d(e,"a",(function(){return i})),n.d(e,"b",(function(){return s}));var i=a["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function s(t){return a["ɵvid"](0,[a["ɵqud"](402653184,1,{table:0}),(t()(),a["ɵeld"](1,0,null,null,1,"cd-table",[["columnMode","flex"]],null,null,null,r.b,r.a)),a["ɵdid"](2,2867200,[[1,4],["table",4]],0,o.a,[a.NgZone,a.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],toolHeader:[3,"toolHeader"],header:[4,"header"],footer:[5,"footer"],limit:[6,"limit"],autoReload:[7,"autoReload"],autoSave:[8,"autoSave"],customCss:[9,"customCss"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.tableData,n.columns,"flex",!1,!1,!1,0,n.autoReload,!1,n.customCss)}),null)}},sMBO:function(t,e,n){var a=n("g6v/"),r=n("m/L8").f,o=Function.prototype,i=o.toString,s=/^\s*function ([^ (]*)/;!a||"name"in o||r(o,"name",{configurable:!0,get:function(){try{return i.call(this).match(s)[1]}catch(t){return""}}})},sVev:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));const a=(()=>{function t(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return t.prototype=Object.create(Error.prototype),t})()},sb0X:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("s7LF"),o=n("oxzT"),i=n("LvDl");class s{constructor(t){this.elRef=t,this.type="submit",this.disabled=!1,this.submitAction=new a.EventEmitter,this.loading=!1,this.icons=o.a}ngOnInit(){this.form.statusChanges.subscribe(()=>{i.has(this.form.errors,"cdSubmitButton")&&(this.loading=!1,i.unset(this.form.errors,"cdSubmitButton"),this.form instanceof r.a&&this.form.updateValueAndValidity())})}submit(t){this.focusButton(),this.form instanceof r.l&&this.form.onSubmit(t),this.form.invalid?this.focusInvalid():(this.loading=!0,this.submitAction.emit())}focusButton(){this.elRef.nativeElement.offsetParent.querySelector(`button[type="${this.type}"]`).focus()}focusInvalid(){const t=this.elRef.nativeElement.offsetParent.querySelector("input.ng-invalid, select.ng-invalid");t&&t.focus()}}},seXi:function(t,e,n){var a=n("qZTm"),r=Object.prototype.hasOwnProperty;t.exports=function(t,e,n,o,i,s){var c=1&n,l=a(t),d=l.length;if(d!=a(e).length&&!c)return!1;for(var u=d;u--;){var g=l[u];if(!(c?g in e:r.call(e,g)))return!1}var f=s.get(t);if(f&&s.get(e))return f==e;var p=!0;s.set(t,e),s.set(e,t);for(var m=c;++u<d;){var h=t[g=l[u]],b=e[g];if(o)var y=c?o(b,h,g,e,t,s):o(h,b,g,t,e,s);if(!(void 0===y?h===b||i(h,b,n,o,s):y)){p=!1;break}m||(m="constructor"==g)}if(p&&!m){var _=t.constructor,O=e.constructor;_!=O&&"constructor"in t&&"constructor"in e&&!("function"==typeof _&&_ instanceof _&&"function"==typeof O&&O instanceof O)&&(p=!1)}return s.delete(t),s.delete(e),p}},shjB:function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},sne2:function(t,e,n){"use strict";n.d(e,"c",(function(){return o})),n.d(e,"e",(function(){return i})),n.d(e,"a",(function(){return s})),n.d(e,"b",(function(){return c})),n.d(e,"d",(function(){return l}));var a=n("8Y7J"),r=n("GiVz");let o=(()=>{class t{}return t.organization="ceph",t.projectName="Ceph Dashboard",t.license="Free software (LGPL 2.1).",t})();var i=function(t){return t.CREATE="create",t.EDIT="edit",t.UPDATE="update",t.REMOVE="remove",t.DELETE="delete",t.ADD="add",t.COPY="copy",t.CLONE="clone",t.RECREATE="recreate",t.EXPIRE="expire",t}({}),s=function(t){return t.CREATE="Create",t.DELETE="Delete",t.ADD="Add",t.REMOVE="Remove",t.EDIT="Edit",t.CANCEL="Cancel",t.COPY="Copy",t.CLONE="Clone",t.UPDATE="Update",t.EVICT="Evict",t.SHOW="Show",t.RECREATE="Recreate",t.EXPIRE="Expire",t}({});let c=(()=>{class t{constructor(t){this.i18n=t,this.CREATE=this.i18n("Create"),this.DELETE=this.i18n("Delete"),this.ADD=this.i18n("Add"),this.SET=this.i18n("Set"),this.REMOVE=this.i18n("Remove"),this.UNSET=this.i18n("Unset"),this.EDIT=this.i18n("Edit"),this.UPDATE=this.i18n("Update"),this.CANCEL=this.i18n("Cancel"),this.CLONE=this.i18n("Clone"),this.COPY=this.i18n("Copy"),this.DEEP_SCRUB=this.i18n("Deep Scrub"),this.DESTROY=this.i18n("Destroy"),this.EVICT=this.i18n("Evict"),this.FLATTEN=this.i18n("Flatten"),this.MARK_DOWN=this.i18n("Mark Down"),this.MARK_IN=this.i18n("Mark In"),this.MARK_LOST=this.i18n("Mark Lost"),this.MARK_OUT=this.i18n("Mark Out"),this.PROTECT=this.i18n("Protect"),this.PURGE=this.i18n("Purge"),this.RENAME=this.i18n("Rename"),this.RESTORE=this.i18n("Restore"),this.REWEIGHT=this.i18n("Reweight"),this.ROLLBACK=this.i18n("Rollback"),this.SCRUB=this.i18n("Scrub"),this.SHOW=this.i18n("Show"),this.TRASH=this.i18n("Move to Trash"),this.UNPROTECT=this.i18n("Unprotect"),this.CHANGE=this.i18n("Change"),this.RECREATE=this.i18n("Recreate"),this.EXPIRE=this.i18n("Expire")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})(),l=(()=>{class t{constructor(t){this.i18n=t,this.CREATED=this.i18n("Created"),this.DELETED=this.i18n("Deleted"),this.ADDED=this.i18n("Added"),this.REMOVED=this.i18n("Removed"),this.EDITED=this.i18n("Edited"),this.CANCELED=this.i18n("Canceled"),this.CLONED=this.i18n("Cloned"),this.COPIED=this.i18n("Copied"),this.DEEP_SCRUBBED=this.i18n("Deep Scrubbed"),this.DESTROYED=this.i18n("Destroyed"),this.FLATTENED=this.i18n("Flattened"),this.MARKED_DOWN=this.i18n("Marked Down"),this.MARKED_IN=this.i18n("Marked In"),this.MARKED_LOST=this.i18n("Marked Lost"),this.MARKED_OUT=this.i18n("Marked Out"),this.PROTECTED=this.i18n("Protected"),this.PURGED=this.i18n("Purged"),this.RENAMED=this.i18n("Renamed"),this.RESTORED=this.i18n("Restored"),this.REWEIGHTED=this.i18n("Reweighted"),this.ROLLED_BACK=this.i18n("Rolled back"),this.SCRUBBED=this.i18n("Scrubbed"),this.SHOWED=this.i18n("Showed"),this.TRASHED=this.i18n("Moved to Trash"),this.UNPROTECTED=this.i18n("Unprotected"),this.CHANGE=this.i18n("Change"),this.RECREATED=this.i18n("Recreated"),this.EXPIRED=this.i18n("Expired")}}return t.ngInjectableDef=a["ɵɵdefineInjectable"]({factory:function(){return new t(a["ɵɵinject"](r.a))},token:t,providedIn:"root"}),t})()},sp3z:function(t,e,n){!function(t){"use strict";t.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".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:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(t){return"ຕອນແລງ"===t},meridiem:function(t,e,n){return t<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(t){return"ທີ່"+t}})}(n("wd/R"))},syrc:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("5tze");n("bpWZ"),n("czA5"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new o.EventEmitter,this.treeAction=new o.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=i.columnsByPin(this._columns);this._columnGroupWidths=i.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnsTotalWidths",{get:function(){return this._columnGroupWidths.total},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this._rowDiffer.diff(this.row)&&this.cd.markForCheck()},t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.buildStylesByGroup=function(){this._groupStyles.left=this.calcStylesByGroup("left"),this._groupStyles.center=this.calcStylesByGroup("center"),this._groupStyles.right=this.calcStylesByGroup("right"),this.cd.markForCheck()},t.prototype.calcStylesByGroup=function(t){var e=this._columnGroupWidths,n=this.offsetX,a={width:e[t]+"px"};if("left"===t)i.translateXY(a,n,0);else if("right"===t){var r=parseInt(this.innerWidth+"",0);i.translateXY(a,-1*(e.total-r-n+this.scrollbarHelper.width),0)}return a},t.prototype.onActivate=function(t,e){t.cellIndex=e,t.rowElement=this._element,this.activate.emit(t)},t.prototype.onKeyDown=function(t){var e=t.keyCode;(e===i.Keys.return||e===i.Keys.down||e===i.Keys.up||e===i.Keys.left||e===i.Keys.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,rowElement:this._element}))},t.prototype.onMouseenter=function(t){this.activate.emit({type:"mouseenter",event:t,row:this.row,rowElement:this._element})},t.prototype.recalculateColumns=function(t){void 0===t&&(t=this.columns),this._columns=t;var e=i.columnsByPin(this._columns);this._columnsByPin=i.columnsByPinArr(this._columns),this._columnGroupWidths=i.columnGroupWidths(e,this._columns)},t.prototype.onTreeAction=function(){this.treeAction.emit()},a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"innerWidth",null),a([o.Input(),r("design:type",Boolean)],t.prototype,"expanded",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"group",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"isSelected",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"rowIndex",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",String)],t.prototype,"treeStatus",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offsetX",null),a([o.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"cssClass",null),a([o.HostBinding("style.height.px"),o.Input(),r("design:type",Number)],t.prototype,"rowHeight",void 0),a([o.HostBinding("style.width.px"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"columnsTotalWidths",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([o.HostListener("mouseenter",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseenter",null),a([o.Component({selector:"datatable-body-row",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n    <div\n      *ngFor="let colGroup of _columnsByPin; let i = index; trackBy: trackByGroups"\n      class="datatable-row-{{colGroup.type}} datatable-row-group"\n      [ngStyle]="_groupStyles[colGroup.type]">\n      <datatable-body-cell\n        *ngFor="let column of colGroup.columns; let ii = index; trackBy: columnTrackingFn"\n        tabindex="-1"\n        [row]="row"\n        [group]="group"\n        [expanded]="expanded"\n        [isSelected]="isSelected"\n        [rowIndex]="rowIndex"\n        [column]="column"\n        [rowHeight]="rowHeight"\n        [displayCheck]="displayCheck"\n        [treeStatus]="treeStatus"\n        (activate)="onActivate($event, ii)"\n        (treeAction)="onTreeAction()">\n      </datatable-body-cell>\n    </div>\n  '})],t)}()},"t/zF":function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t,e){this.name=t,this.metadata=e}}},t2Dn:function(t,e,n){var a=n("hypo"),r=n("ljhN");t.exports=function(t,e,n){(void 0===n||r(t[e],n))&&(void 0!==n||e in t)||a(t,e,n)}},tAZD:function(t,e,n){var a,r,o;!function(i){if("object"==typeof t.exports){var s=i(0,e);void 0!==s&&(t.exports=s)}else r=[n,e],void 0===(o="function"==typeof(a=i)?a.apply(e,r):a)||(t.exports=o)}((function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=void 0;e.default=["en",[["a","p"],["AM","PM"],n],[["AM","PM"],n,n],[["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"]],n,[["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"]],n,[["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}",n,"{1} 'at' {0}",n],[".",",",";","%","+","-","E","×","‰","∞","NaN",":"],["#,##0.###","#,##0%","¤#,##0.00","#E0"],"$","US Dollar",{},function(t){var e=Math.floor(Math.abs(t)),n=t.toString().replace(/^[^.]*\.?/,"").length;return 1===e&&0===n?1:5}]}))},tFKq:function(t,e,n){var a=n("mrSG").__assign,r=n("mrSG").__decorate,o=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var i=n("8Y7J"),s=n("qwkt"),c=n("5tze");e.DataTableHeaderComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.reorder=new i.EventEmitter,this.resize=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this._styleByGroup={left:{},center:{},right:{}}}return Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._innerWidth=t,this._columns){var e=c.columnsByPin(this._columns);this._columnGroupWidths=c.columnGroupWidths(e,this._columns),this.setStylesByGroup()}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(t){this._headerHeight="auto"!==t?t+"px":t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=c.columnsByPin(t);this._columnsByPin=c.columnsByPinArr(t),this._columnGroupWidths=c.columnGroupWidths(e,t),this.setStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.setStylesByGroup()},enumerable:!0,configurable:!0}),t.prototype.onLongPressStart=function(t){var e=t.event;t.model.dragging=!0,this.dragEventTarget=e},t.prototype.onLongPressEnd=function(t){var e=this,n=t.model;this.dragEventTarget=t.event,setTimeout((function(){var t=e._columns.find((function(t){return t.$$id===n.$$id}));t&&(t.dragging=!1)}),5)},Object.defineProperty(t.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.onColumnResized=function(t,e){t<=e.minWidth?t=e.minWidth:t>=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var o=this.getColumn(n);o.isTarget=!0,a!==n&&(o.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t<e)return this._columnsByPin[0].columns[t];var n=this._columnsByPin[1].columns.length;return t<e+n?this._columnsByPin[1].columns[t-e]:this._columnsByPin[2].columns[t-e-n]},t.prototype.onSort=function(t){var e=t.column,n=t.prevValue,a=t.newValue;if(!e.dragging){var r=this.calcNewSorts(e,n,a);this.sort.emit({sorts:r,column:e,prevValue:n,newValue:a})}},t.prototype.calcNewSorts=function(t,e,n){var r=0;this.sorts||(this.sorts=[]);var o=this.sorts.map((function(e,n){return(e=a({},e)).prop===t.prop&&(r=n),e}));return void 0===n?o.splice(r,1):e?o[r].dir=n:(this.sortType===s.SortType.single&&o.splice(0,this.sorts.length),o.push({dir:n,prop:t.prop})),o},t.prototype.setStylesByGroup=function(){this._styleByGroup.left=this.calcStylesByGroup("left"),this._styleByGroup.center=this.calcStylesByGroup("center"),this._styleByGroup.right=this.calcStylesByGroup("right"),this.cd.detectChanges()},t.prototype.calcStylesByGroup=function(t){var e=this._columnGroupWidths,n={width:e[t]+"px"};return"center"===t?c.translateXY(n,-1*this.offsetX,0):"right"===t&&c.translateXY(n,-1*(e.total-this.innerWidth),0),n},r([i.Input(),o("design:type",Object)],t.prototype,"sortAscendingIcon",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"sortDescendingIcon",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"dealsWithGroup",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"innerWidth",null),r([i.Input(),o("design:type",Array)],t.prototype,"sorts",void 0),r([i.Input(),o("design:type",String)],t.prototype,"sortType",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"allRowsSelected",void 0),r([i.Input(),o("design:type",String)],t.prototype,"selectionType",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"reorderable",void 0),r([i.HostBinding("style.height"),i.Input(),o("design:type",Object),o("design:paramtypes",[Object])],t.prototype,"headerHeight",null),r([i.Input(),o("design:type",Array),o("design:paramtypes",[Array])],t.prototype,"columns",null),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"offsetX",null),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"sort",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"reorder",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"resize",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"select",void 0),r([i.Output(),o("design:type",Object)],t.prototype,"columnContextmenu",void 0),r([i.HostBinding("style.width"),o("design:type",String),o("design:paramtypes",[])],t.prototype,"headerWidth",null),r([i.Component({selector:"datatable-header",template:'\n    <div\n      orderable\n      (reorder)="onColumnReordered($event)"\n      (targetChanged)="onTargetChanged($event)"\n      [style.width.px]="_columnGroupWidths.total"\n      class="datatable-header-inner">\n      <div\n        *ngFor="let colGroup of _columnsByPin; trackBy: trackByGroups"\n        [class]="\'datatable-row-\' + colGroup.type"\n        [ngStyle]="_styleByGroup[colGroup.type]">\n        <datatable-header-cell\n          *ngFor="let column of colGroup.columns; trackBy: columnTrackingFn"\n          resizeable\n          [resizeEnabled]="column.resizeable"\n          (resize)="onColumnResized($event, column)"\n          long-press\n          [pressModel]="column"\n          [pressEnabled]="reorderable && column.draggable"\n          (longPressStart)="onLongPressStart($event)"\n          (longPressEnd)="onLongPressEnd($event)"\n          draggable\n          [dragX]="reorderable && column.draggable && column.dragging"\n          [dragY]="false"\n          [dragModel]="column"\n          [dragEventTarget]="dragEventTarget"\n          [headerHeight]="headerHeight"\n          [isTarget]="column.isTarget"\n          [targetMarkerTemplate]="targetMarkerTemplate"\n          [targetMarkerContext]="column.targetMarkerContext"\n          [column]="column"\n          [sortType]="sortType"\n          [sorts]="sorts"\n          [selectionType]="selectionType"\n          [sortAscendingIcon]="sortAscendingIcon"\n          [sortDescendingIcon]="sortDescendingIcon"\n          [allRowsSelected]="allRowsSelected"\n          (sort)="onSort($event)"\n          (select)="select.emit($event)"\n          (columnContextmenu)="columnContextmenu.emit($event)">\n        </datatable-header-cell>\n      </div>\n    </div>\n  ',host:{class:"datatable-header"},changeDetection:i.ChangeDetectionStrategy.OnPush})],t)}()},tGlX:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},tLB3:function(t,e,n){var a=n("GoyQ"),r=n("/9aa"),o=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(r(t))return NaN;if(a(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=a(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(o,"");var n=s.test(t);return n||c.test(t)?l(t.slice(2),n?2:8):i.test(t)?NaN:+t}},tMB7:function(t,e,n){var a=n("y1pI");t.exports=function(t){var e=this.__data__,n=a(e,t);return n<0?void 0:e[n][1]}},tT3J:function(t,e,n){!function(t){"use strict";t.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".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ḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n("wd/R"))},tUCv:function(t,e,n){!function(t){"use strict";t.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".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:/enjing|siyang|sonten|ndalu/,meridiemHour:function(t,e){return 12===t&&(t=0),"enjing"===e?t:"siyang"===e?t>=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<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("wd/R"))},tadb:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"DataView");t.exports=a},tiKp:function(t,e,n){var a=n("2oRo"),r=n("VpIT"),o=n("UTVS"),i=n("kOOl"),s=n("STAE"),c=n("/b8u"),l=r("wks"),d=a.Symbol,u=c?d:d&&d.withoutSetter||i;t.exports=function(t){return o(l,t)||(l[t]=s&&o(d,t)?d[t]:u("Symbol."+t)),l[t]}},tycR:function(t,e,n){var a=n("A2ZE"),r=n("RK3t"),o=n("ewvW"),i=n("UMSQ"),s=n("ZfDv"),c=[].push,l=function(t){var e=1==t,n=2==t,l=3==t,d=4==t,u=6==t,g=5==t||u;return function(f,p,m,h){for(var b,y,_=o(f),O=r(_),v=a(p,m,3),C=i(O.length),P=0,M=h||s,x=e?M(f,C):n?M(f,0):void 0;C>P;P++)if((g||P in O)&&(y=v(b=O[P],P,_),t))if(e)x[P]=y;else if(y)switch(t){case 3:return!0;case 5:return b;case 6:return P;case 2:c.call(x,b)}else if(d)return!1;return u?-1:l||d?d:x}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6)}},u3GI:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}t.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},u8Dt:function(t,e,n){var a=n("YESw"),r=Object.prototype.hasOwnProperty;t.exports=function(t){var e=this.__data__;if(a){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return r.call(e,t)?e[t]:void 0}},uEye:function(t,e,n){!function(t){"use strict";t.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åndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".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år klokka] LT",lastWeek:"[Føregåande] 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ånad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uIqm:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("y9jh"),o=n("5tze"),i=n("LvDl"),s=n("PqYM"),c=n("HDdC"),l=n("oxzT"),d=n("x38r");class u{constructor(t){this.errorConfig={resetData:!0,displayError:!0},this.error=t}}var g=n("vCyI");n.d(e,"a",(function(){return f}));class f{constructor(t,e){this.ngZone=t,this.cdRef=e,this.columnMode="flex",this.onlyActionHeader=!1,this.toolHeader=!0,this.searchField=!0,this.header=!0,this.footer=!0,this.limit=10,this.autoReload=5e3,this.identifier="id",this.forceIdentifier=!1,this.selectionType=void 0,this.updateSelectionOnRefresh="onChange",this.autoSave=!0,this.searchableObjects=!1,this.extraFilterableColumns=[],this.fetchData=new a.EventEmitter,this.updateSelection=new a.EventEmitter,this.columnFiltersChanged=new a.EventEmitter,this.selection=new g.a,this.icons=l.a,this.cellTemplates={},this.search="",this.rows=[],this.loadingIndicator=!0,this.loadingError=!1,this.paginationClasses={pagerLeftArrow:l.a.leftArrowDouble,pagerRightArrow:l.a.rightArrowDouble,pagerPrevious:l.a.leftArrow,pagerNext:l.a.rightArrow},this.userConfig={},this.localStorage=window.localStorage,this.updating=!1,this.columnFilters=[]}get columnFiltered(){return i.some(this.columnFilters,t=>void 0!==t.value)}static prepareSearch(t){return(t=t.toLowerCase().replace(/,/g,"")).match(/['"][^'"]+['"]/)&&(t=t.replace(/['"][^'"]+['"]/g,t=>t.replace(/(['"])([^'"]+)(['"])/g,"$2").replace(/ /g,"+"))),t.split(" ").filter(t=>t)}ngOnInit(){if(this.table.element.addEventListener("mouseenter",t=>t.stopPropagation(),!0),this._addTemplates(),!this.sorts){const t=-1!==i.findIndex(this.columns,["prop",this.identifier]);this.sorts=this.createSortingDefinition(t?this.identifier:this.columns[0].prop+""),t||this.forceIdentifier||(this.identifier=this.columns[0].prop+"")}this.initUserConfig(),this.columns.forEach(t=>{t.cellTransformation&&(t.cellTemplate=this.cellTemplates[t.cellTransformation]),t.flexGrow||(t.flexGrow=t.prop+""===this.identifier?1:2),t.resizeable||(t.resizeable=!1)}),this.initCheckboxColumn(),this.filterHiddenColumns(),this.initColumnFilters(),this.updateColumnFilterOptions(),this.fetchData.observers.length>0&&(this.loadingIndicator=!0),i.isInteger(this.autoReload)&&this.autoReload>0?this.ngZone.runOutsideAngular(()=>{this.reloadSubscriber=Object(s.a)(0,this.autoReload).subscribe(()=>{this.ngZone.run(()=>this.reloadData())})}):this.reloadData()}initUserConfig(){this.autoSave&&(this.tableName=this._calculateUniqueTableName(this.columns),this._loadUserConfig(),this._initUserConfigAutoSave()),this.userConfig.limit||(this.userConfig.limit=this.limit),this.userConfig.sorts||(this.userConfig.sorts=this.sorts),this.userConfig.columns?this.columns.forEach((t,e)=>{t.isHidden=this.userConfig.columns[e].isHidden}):this.updateUserColumns()}_calculateUniqueTableName(t){const e=t=>{if(!i.isString(t))return 0;let e=0;for(let n=0;n<t.length;n++)e+=t.charCodeAt(n)*n;return e};return t.reduce((t,n,a)=>(e(n.prop)+e(n.name))*(a+1)+t,0).toString()}_loadUserConfig(){const t=this.localStorage.getItem(this.tableName);t&&(this.userConfig=JSON.parse(t))}_initUserConfigAutoSave(){const t=c.a.create(this._initUserConfigProxy.bind(this));this.saveSubscriber=t.subscribe(this._saveUserConfig.bind(this))}_initUserConfigProxy(t){this.userConfig=new Proxy(this.userConfig,{set:(e,n,a)=>(e[n]=a,t.next(e),!0)})}_saveUserConfig(t){this.localStorage.setItem(this.tableName,JSON.stringify(t))}updateUserColumns(){this.userConfig.columns=this.columns.map(t=>({prop:t.prop,name:t.name,isHidden:!!t.isHidden}))}initCheckboxColumn(){"multiClick"===this.selectionType&&this.columns.unshift({prop:void 0,resizeable:!1,sortable:!1,draggable:!1,checkboxable:!0,canAutoResize:!1,cellClass:"cd-datatable-checkbox",width:30})}filterHiddenColumns(){this.tableColumns=this.columns.filter(t=>!t.isHidden)}initColumnFilters(){let t=i.filter(this.columns,{filterable:!0});t=[...t,...this.extraFilterableColumns],this.columnFilters=t.map(t=>({column:t,options:[],value:t.filterInitValue?this.createColumnFilterOption(t.filterInitValue,t.pipe):void 0})),this.selectedFilter=i.first(this.columnFilters)}createColumnFilterOption(t,e){return{raw:i.toString(t),formatted:e?e.transform(t):i.toString(t)}}updateColumnFilterOptions(){this.columnFilters.forEach(t=>{let e=[];if(i.isUndefined(t.column.filterOptions)){const n=i.filter(i.map(this.data,t.column.prop),t=>i.isString(t)&&""!==t||i.isBoolean(t)||i.isFinite(t)||i.isDate(t));e=i.sortedUniq(n.sort())}else e=t.column.filterOptions;const n=e.map(e=>this.createColumnFilterOption(e,t.column.pipe));t.value&&i.isUndefined(i.find(n,{raw:t.value.raw}))&&(t.value=void 0),t.options=n})}onSelectFilter(t){this.selectedFilter=t}onChangeFilter(t,e){t.value=i.isEqual(t.value,e)?void 0:e,this.updateFilter()}doColumnFiltering(){const t=[];let e=[...this.data],n=[];return this.columnFilters.forEach(a=>{if(void 0===a.value)return;t.push({name:a.column.name,prop:a.column.prop,value:a.value});const r=i.partition(e,t=>{const e=Object(o.getterForProp)(a.column.prop)(t,a.column.prop);return i.isUndefined(a.column.filterPredicate)?`${e}`===a.value.raw:a.column.filterPredicate(t,a.value.raw)});e=r[0],n=[...n,...r[1]]}),this.columnFiltersChanged.emit({filters:t,data:e,dataOut:n}),i.forEach(this.selection.selected,t=>{void 0===i.find(e,{[this.identifier]:t[this.identifier]})&&(this.selection=new g.a,this.onSelect(this.selection))}),e}ngOnDestroy(){this.reloadSubscriber&&this.reloadSubscriber.unsubscribe(),this.saveSubscriber&&this.saveSubscriber.unsubscribe()}ngAfterContentChecked(){this.table&&this.table.element.clientWidth!==this.currentWidth&&(this.currentWidth=this.table.element.clientWidth,this.table.recalculate(),i.get(this.table,"cd").markForCheck())}_addTemplates(){this.cellTemplates.bold=this.tableCellBoldTpl,this.cellTemplates.checkIcon=this.checkIconTpl,this.cellTemplates.sparkline=this.sparklineTpl,this.cellTemplates.routerLink=this.routerLinkTpl,this.cellTemplates.perSecond=this.perSecondTpl,this.cellTemplates.executing=this.executingTpl,this.cellTemplates.classAdding=this.classAddingTpl,this.cellTemplates.badge=this.badgeTpl,this.cellTemplates.map=this.mapTpl,this.cellTemplates.truncate=this.truncateTpl}useCustomClass(t){if(!this.customCss)throw new Error("Custom classes are not set!");const e=Object.keys(this.customCss),n=Object.values(this.customCss).map((n,a)=>(i.isFunction(n)&&n(t)||n===t)&&e[a]).filter(t=>t).join(" ");return i.isEmpty(n)?void 0:n}ngOnChanges(){this.useData()}setLimit(t){const e=parseInt(t.target.value,10);e>0&&(this.userConfig.limit=e)}reloadData(){if(!this.updating){this.loadingError=!1;const t=new u(()=>{this.loadingError=t.errorConfig.displayError,t.errorConfig.resetData&&(this.data=[]),this.useData()});this.fetchData.emit(t),this.updating=!0}}refreshBtn(){this.loadingIndicator=!0,this.reloadData()}rowIdentity(){return t=>{const e=t[this.identifier];if(i.isUndefined(e))throw new Error(`Wrong identifier "${this.identifier}" -> "${e}"`);return e}}useData(){this.data&&(this.updateColumnFilterOptions(),this.updateFilter(),this.reset(),this.updateSelected())}reset(){this.loadingIndicator=!1,this.updating=!1}updateSelected(){if("never"===this.updateSelectionOnRefresh)return;const t=[];this.selection.selected.forEach(e=>{for(const n of this.data)e[this.identifier]===n[this.identifier]&&t.push(n)}),"onChange"===this.updateSelectionOnRefresh&&i.isEqual(this.selection.selected,t)||(this.selection.selected=t,this.onSelect(this.selection))}onSelect(t){this.selection.selected=t.selected,this.updateSelection.emit(i.clone(this.selection))}toggleColumn(t){const e=t.target.name,n=!t.target.checked;n&&1===this.tableColumns.length?t.target.checked=!0:(i.find(this.columns,t=>t.prop===e).isHidden=n,this.updateColumns())}updateColumns(){this.updateUserColumns(),this.filterHiddenColumns();const t=this.userConfig.sorts[0].prop;i.find(this.tableColumns,e=>e.prop===t)||(this.userConfig.sorts=this.createSortingDefinition(this.tableColumns[0].prop)),this.table.recalculate(),this.cdRef.detectChanges()}createSortingDefinition(t){return[{prop:t,dir:r.SortDirection.asc}]}changeSorting({sorts:t}){this.userConfig.sorts=t}onClearSearch(){this.search="",this.updateFilter()}onClearFilters(){this.columnFilters.forEach(t=>{t.value=void 0}),this.selectedFilter=i.first(this.columnFilters),this.updateFilter()}updateFilter(){let t=0!==this.columnFilters.length?this.doColumnFiltering():this.data;if(this.search.length>0){const e=this.columns.filter(t=>t.cellTransformation!==d.a.sparkline);t=this.subSearch(t,f.prepareSearch(this.search),e),this.table.offset=0}this.rows=t}subSearch(t,e,n){if(0===e.length||0===t.length)return t;const a=e.pop().replace(/\+/g," ").split(":"),r=[...n];return 2===a.length&&(n=r.filter(t=>-1!==t.name.toLowerCase().indexOf(a[0]))),t=this.basicDataSearch(i.last(a),t,n),this.subSearch(t,e,r)}basicDataSearch(t,e,n){return 0===t.length?e:e.filter(e=>n.filter(n=>{let a=i.get(e,n.prop);if(i.isUndefined(n.pipe)||(a=n.pipe.transform(a)),i.isUndefined(a)||i.isNull(a))return!1;if(i.isArray(a)?a=a.join(" "):(i.isNumber(a)||i.isBoolean(a))&&(a=a.toString()),i.isObjectLike(a)){if(!this.searchableObjects)return!1;a=JSON.stringify(a)}return-1!==a.toLowerCase().indexOf(t)}).length>0)}getRowClass(){return()=>({clickable:!i.isUndefined(this.selectionType)})}}},uKs4:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new o.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run((function(){t.isVisible=!0,t.visible.emit(!0)}))},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular((function(){t.timeout=setTimeout((function(){return e()}),50)})))};this.timeout=setTimeout((function(){return e()}))},a([o.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"visible",void 0),a([o.Directive({selector:"[visibilityObserver]"})],t)}()},uNpg:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Component)({selector:"tree-node-checkbox",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <ng-container *treeMobxAutorun="{ dontDetach: true }">\n      <input\n        class="tree-node-checkbox"\n        type="checkbox"\n        (click)="node.mouseAction(\'checkboxClick\', $event)"\n        [checked]="node.isSelected"\n        [indeterminate]="node.isPartiallySelected"\n      />\n    </ng-container>\n  '})],t)}()},uXwI:function(t,e,n){!function(t){"use strict";var e={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function a(t,a,r){return t+" "+n(e[r],t,a)}function r(t,a,r){return n(e[r],t,a)}t.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_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:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(t,e){return e?"dažas sekundes":"dažām sekundēm"},ss:a,m:r,mm:a,h:r,hh:a,d:r,dd:a,M:r,MM:a,y:r,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},uYzU:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(){}transform(t){switch(t){case"user:rbd":return"user:rbd (tcmu-runner)";default:return t}}}},ufoC:function(t,e,n){"use strict";var a=function(t){return t.auth="Login",t.cephfs="CephFS",t.rbd="RBD",t.pool="Pool",t.osd="OSD",t.role="Role",t.user="User",t}({}),r=n("jVDg"),o=n("8Y7J"),i=n("GiVz");n.d(e,"a",(function(){return l}));class s{constructor(t,e,n){this.running=t,this.failure=e,this.success=n}}class c{failure(t){return this.i18n("Failed to {{failure}} {{metadata}}",{failure:this.operation.failure,metadata:this.involves(t)})}running(t){return`${this.operation.running} ${this.involves(t)}`}success(t){return`${this.operation.success} ${this.involves(t)}`}constructor(t,e,n,a){this.i18n=t,this.operation=e,this.involves=n,this.errors=a||(()=>({}))}}let l=(()=>{class t{constructor(t){this.i18n=t,this.defaultMessage=this.newTaskMessage(new s(this.i18n("Executing"),this.i18n("execute"),this.i18n("Executed")),t=>t&&(a[t.component]||t.component)||this.i18n("unknown task"),()=>({})),this.commonOperations={create:new s(this.i18n("Creating"),this.i18n("create"),this.i18n("Created")),update:new s(this.i18n("Updating"),this.i18n("update"),this.i18n("Updated")),delete:new s(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),add:new s(this.i18n("Adding"),this.i18n("add"),this.i18n("Added")),remove:new s(this.i18n("Removing"),this.i18n("remove"),this.i18n("Removed")),import:new s(this.i18n("Importing"),this.i18n("import"),this.i18n("Imported"))},this.rbd={default:t=>this.i18n("RBD '{{id}}'",{id:`${t.image_spec}`}),create:t=>{const e=new r.a(t.pool_name,t.namespace,t.image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},child:t=>{const e=new r.a(t.child_pool_name,t.child_namespace,t.child_image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},destination:t=>{const e=new r.a(t.dest_pool_name,t.dest_namespace,t.dest_image_name).toString();return this.i18n("RBD '{{id}}'",{id:e})},snapshot:t=>this.i18n("RBD snapshot '{{id}}'",{id:`${t.image_spec}@${t.snapshot_name}`})},this.rbd_mirroring={site_name:()=>this.i18n("mirroring site name"),bootstrap:()=>this.i18n("bootstrap token"),pool:t=>this.i18n("mirror mode for pool '{{id}}'",{id:`${t.pool_name}`}),pool_peer:t=>this.i18n("mirror peer for pool '{{id}}'",{id:`${t.pool_name}`})},this.grafana={update_dashboards:()=>this.i18n("all dashboards")},this.messages={"host/create":this.newTaskMessage(this.commonOperations.create,t=>this.host(t)),"host/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.host(t)),"osd/create":this.newTaskMessage(this.commonOperations.create,t=>this.i18n("OSDs (DriveGroups: {{tracking_id}})",{tracking_id:t.tracking_id})),"osd/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.osd(t)),"pool/create":this.newTaskMessage(this.commonOperations.create,t=>this.pool(t),t=>({17:this.i18n("Name is already used by {{pool_name}}.",{pool_name:this.pool(t)})})),"pool/edit":this.newTaskMessage(this.commonOperations.update,t=>this.pool(t),t=>({17:this.i18n("Name is already used by {{pool_name}}.",{pool_name:this.pool(t)})})),"pool/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.pool(t)),"ecp/create":this.newTaskMessage(this.commonOperations.create,t=>this.ecp(t),t=>({17:this.i18n("Name is already used by {{name}}.",{name:this.ecp(t)})})),"ecp/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.ecp(t)),"crushRule/create":this.newTaskMessage(this.commonOperations.create,t=>this.crushRule(t),t=>({17:this.i18n("Name is already used by {{name}}.",{name:this.crushRule(t)})})),"crushRule/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.crushRule(t)),"rbd/create":this.newTaskMessage(this.commonOperations.create,this.rbd.create,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.create(t)})})),"rbd/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.default,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.default(t)})})),"rbd/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.default,t=>({16:this.i18n("{{rbd_name}} is busy.",{rbd_name:this.rbd.default(t)}),39:this.i18n("{{rbd_name}} contains snapshots.",{rbd_name:this.rbd.default(t)})})),"rbd/clone":this.newTaskMessage(new s(this.i18n("Cloning"),this.i18n("clone"),this.i18n("Cloned")),this.rbd.child,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.child(t)}),22:this.i18n("Snapshot of {{rbd_name}} must be protected.",{rbd_name:this.rbd.child(t)})})),"rbd/copy":this.newTaskMessage(new s(this.i18n("Copying"),this.i18n("copy"),this.i18n("Copied")),this.rbd.destination,t=>({17:this.i18n("Name is already used by {{rbd_name}}.",{rbd_name:this.rbd.destination(t)})})),"rbd/flatten":this.newTaskMessage(new s(this.i18n("Flattening"),this.i18n("flatten"),this.i18n("Flattened")),this.rbd.default),"rbd/snap/create":this.newTaskMessage(this.commonOperations.create,this.rbd.snapshot,t=>({17:this.i18n("Name is already used by {{snap_name}}.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/edit":this.newTaskMessage(this.commonOperations.update,this.rbd.snapshot,t=>({16:this.i18n("Cannot unprotect {{snap_name}} because it contains child images.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd.snapshot,t=>({16:this.i18n("Cannot delete {{snap_name}} because it's protected.",{snap_name:this.rbd.snapshot(t)})})),"rbd/snap/rollback":this.newTaskMessage(new s(this.i18n("Rolling back"),this.i18n("rollback"),this.i18n("Rolled back")),this.rbd.snapshot),"rbd/trash/move":this.newTaskMessage(new s(this.i18n("Moving"),this.i18n("move"),this.i18n("Moved")),t=>this.i18n("image '{{id}}' to trash",{id:t.image_spec}),()=>({2:this.i18n("Could not find image.")})),"rbd/trash/restore":this.newTaskMessage(new s(this.i18n("Restoring"),this.i18n("restore"),this.i18n("Restored")),t=>this.i18n("image '{{id}}' into '{{new_id}}'",{id:t.image_id_spec,new_id:t.new_image_name}),t=>({17:this.i18n("Image name '{{id}}' is already in use.",{id:t.new_image_name})})),"rbd/trash/remove":this.newTaskMessage(new s(this.i18n("Deleting"),this.i18n("delete"),this.i18n("Deleted")),t=>this.i18n("image '{{id}}'",{id:`${t.image_id_spec}`})),"rbd/trash/purge":this.newTaskMessage(new s(this.i18n("Purging"),this.i18n("purge"),this.i18n("Purged")),t=>{let e=this.i18n("all pools");return t.pool_name&&(e=`'${t.pool_name}'`),this.i18n("images from {{message}}",{message:e})}),"rbd/mirroring/site_name/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.site_name,()=>({})),"rbd/mirroring/bootstrap/create":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.bootstrap,()=>({})),"rbd/mirroring/bootstrap/import":this.newTaskMessage(this.commonOperations.import,this.rbd_mirroring.bootstrap,()=>({})),"rbd/mirroring/pool/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool,()=>({16:this.i18n("Cannot disable mirroring because it contains a peer.")})),"rbd/mirroring/peer/add":this.newTaskMessage(this.commonOperations.create,this.rbd_mirroring.pool_peer,()=>({})),"rbd/mirroring/peer/edit":this.newTaskMessage(this.commonOperations.update,this.rbd_mirroring.pool_peer,()=>({})),"rbd/mirroring/peer/delete":this.newTaskMessage(this.commonOperations.delete,this.rbd_mirroring.pool_peer,()=>({})),"iscsi/target/create":this.newTaskMessage(this.commonOperations.create,t=>this.iscsiTarget(t)),"iscsi/target/edit":this.newTaskMessage(this.commonOperations.update,t=>this.iscsiTarget(t)),"iscsi/target/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.iscsiTarget(t)),"nfs/create":this.newTaskMessage(this.commonOperations.create,t=>this.nfs(t)),"nfs/edit":this.newTaskMessage(this.commonOperations.update,t=>this.nfs(t)),"nfs/delete":this.newTaskMessage(this.commonOperations.delete,t=>this.nfs(t)),"grafana/dashboards/update":this.newTaskMessage(this.commonOperations.update,this.grafana.update_dashboards,()=>({})),"orchestrator/identify_device":this.newTaskMessage(new s(this.i18n("Identifying"),this.i18n("identify"),this.i18n("Identified")),t=>this.i18n("device '{{device}}' on host '{{hostname}}'",t))}}newTaskMessage(t,e,n){return new c(this.i18n,t,e,n)}host(t){return this.i18n("host '{{hostname}}'",{hostname:t.hostname})}osd(t){return this.i18n("OSD '{{svc_id}}'",{svc_id:t.svc_id})}pool(t){return this.i18n("pool '{{pool_name}}'",{pool_name:t.pool_name})}ecp(t){return this.i18n("erasure code profile '{{name}}'",{name:t.name})}crushRule(t){return this.i18n("crush rule '{{name}}'",{name:t.name})}iscsiTarget(t){return this.i18n("target '{{target_iqn}}'",{target_iqn:t.target_iqn})}nfs(t){return this.i18n("NFS {{nfs_id}}",{nfs_id:`'${t.cluster_id}:${t.export_id?t.export_id:t.path}'`})}_getTaskTitle(t){return t.name&&t.name.startsWith("progress/")?this.newTaskMessage(new s(t.name.replace("progress/",""),"",t.name.replace("progress/","")),t=>""):this.messages[t.name]||this.defaultMessage}getSuccessTitle(t){return this._getTaskTitle(t).success(t.metadata)}getErrorMessage(t){return this._getTaskTitle(t).errors(t.metadata)[t.exception.code]||t.exception.detail}getErrorTitle(t){return this._getTaskTitle(t).failure(t.metadata)}getRunningTitle(t){return this._getTaskTitle(t).running(t.metadata)}getRunningText(t){return this._getTaskTitle(t).operation.running}}return t.ngInjectableDef=o["ɵɵdefineInjectable"]({factory:function(){return new t(o["ɵɵinject"](i.a))},token:t,providedIn:"root"}),t})()},"ut/Y":function(t,e,n){var a=n("ZCpW"),r=n("GDhZ"),o=n("zZ0H"),i=n("Z0cm"),s=n("+c4W");t.exports=function(t){return"function"==typeof t?t:null==t?o:"object"==typeof t?i(t)?r(t[0],t[1]):a(t):s(t)}},uy83:function(t,e,n){var a=n("0Dky");t.exports=!a((function(){return Object.isExtensible(Object.preventExtensions({}))}))},uyHG:function(t,e){var n,a=/^\[object .+?Constructor\]$/,r="object"==typeof global&&global&&global.Object===Object&&global,o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")(),s=Array.prototype,c=Function.prototype,l=Object.prototype,d=i["__core-js_shared__"],u=(n=/[^.]+$/.exec(d&&d.keys&&d.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",g=c.toString,f=l.hasOwnProperty,p=l.toString,m=RegExp("^"+g.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),h=s.splice,b=M(i,"Map"),y=M(Object,"create");function _(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function O(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function v(t){var e=-1,n=t?t.length:0;for(this.clear();++e<n;){var a=t[e];this.set(a[0],a[1])}}function C(t,e){for(var n,a,r=t.length;r--;)if((n=t[r][0])===(a=e)||n!=n&&a!=a)return r;return-1}function P(t,e){var n,a,r=t.__data__;return("string"==(a=typeof(n=e))||"number"==a||"symbol"==a||"boolean"==a?"__proto__"!==n:null===n)?r["string"==typeof e?"string":"hash"]:r.map}function M(t,e){var n=function(t,e){return null==t?void 0:t[e]}(t,e);return function(t){return!(!w(t)||(e=t,u&&u in e))&&(function(t){var e=w(t)?p.call(t):"";return"[object Function]"==e||"[object GeneratorFunction]"==e}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(n){}return e}(t)?m:a).test(function(t){if(null!=t){try{return g.call(t)}catch(e){}try{return t+""}catch(e){}}return""}(t));var e}(n)?n:void 0}function x(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var n=function(){var a=arguments,r=e?e.apply(this,a):a[0],o=n.cache;if(o.has(r))return o.get(r);var i=t.apply(this,a);return n.cache=o.set(r,i),i};return n.cache=new(x.Cache||v),n}function w(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}_.prototype.clear=function(){this.__data__=y?y(null):{}},_.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},_.prototype.get=function(t){var e=this.__data__;if(y){var n=e[t];return"__lodash_hash_undefined__"===n?void 0:n}return f.call(e,t)?e[t]:void 0},_.prototype.has=function(t){var e=this.__data__;return y?void 0!==e[t]:f.call(e,t)},_.prototype.set=function(t,e){return this.__data__[t]=y&&void 0===e?"__lodash_hash_undefined__":e,this},O.prototype.clear=function(){this.__data__=[]},O.prototype.delete=function(t){var e=this.__data__,n=C(e,t);return!(n<0||(n==e.length-1?e.pop():h.call(e,n,1),0))},O.prototype.get=function(t){var e=this.__data__,n=C(e,t);return n<0?void 0:e[n][1]},O.prototype.has=function(t){return C(this.__data__,t)>-1},O.prototype.set=function(t,e){var n=this.__data__,a=C(n,t);return a<0?n.push([t,e]):n[a][1]=e,this},v.prototype.clear=function(){this.__data__={hash:new _,map:new(b||O),string:new _}},v.prototype.delete=function(t){return P(this,t).delete(t)},v.prototype.get=function(t){return P(this,t).get(t)},v.prototype.has=function(t){return P(this,t).has(t)},v.prototype.set=function(t,e){return P(this,t).set(t,e),this},x.Cache=v,t.exports=x},vCyI:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{constructor(t){this._selected=[],t&&(this._selected=t),this.update()}update(){this.hasSelection=this._selected.length>0,this.hasSingleSelection=1===this._selected.length,this.hasMultiSelection=this._selected.length>1}set selected(t){this._selected=t,this.update()}get selected(){return this._selected}add(t){this._selected.push(t),this.update()}first(){return this.hasSelection?this._selected[0]:null}}},vkgz:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("7o/Q"),r=n("KqfI"),o=n("n6bG");function i(t,e,n){return function(a){return a.lift(new s(t,e,n))}}class s{constructor(t,e,n){this.nextOrObserver=t,this.error=e,this.complete=n}call(t,e){return e.subscribe(new c(t,this.nextOrObserver,this.error,this.complete))}}class c extends a.a{constructor(t,e,n,a){super(t),this._tapNext=r.a,this._tapError=r.a,this._tapComplete=r.a,this._tapError=n||r.a,this._tapComplete=a||r.a,Object(o.a)(e)?(this._context=this,this._tapNext=e):e&&(this._context=e,this._tapNext=e.next||r.a,this._tapError=e.error||r.a,this._tapComplete=e.complete||r.a)}_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(t){return void this.destination.error(t)}this.destination.error(t)}_complete(){try{this._tapComplete.call(this._context)}catch(t){return void this.destination.error(t)}return this.destination.complete()}}},vxfy:function(t,e,n){var a=n("mrSG").__decorate;Object.defineProperty(e,"__esModule",{value:!0});var r=n("8Y7J");e.DataTableFooterTemplateDirective=function(){return a([r.Directive({selector:"[ngx-datatable-footer-template]"})],(function(t){this.template=t}))}()},"w/wX":function(t,e,n){var a=n("QqLw"),r=n("ExA7");t.exports=function(t){return r(t)&&"[object Set]"==a(t)}},w1tV:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("oB13"),r=n("x+ZX"),o=n("XNiG");function i(){return new o.a}function s(){return t=>Object(r.a)()(Object(a.a)(i)(t))}},wE6v:function(t,e,n){var a=n("hh1v");t.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},"wF/u":function(t,e,n){var a=n("e5cp"),r=n("ExA7");t.exports=function t(e,n,o,i,s){return e===n||(null==e||null==n||!r(e)&&!r(n)?e!=e&&n!=n:a(e,n,o,i,t,s))}},wJg7:function(t,e){var n=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var a=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==a||"symbol"!=a&&n.test(t))&&t>-1&&t%1==0&&t<e}},wQk9:function(t,e,n){!function(t){"use strict";t.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".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:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n("wd/R"))},wclG:function(t,e,n){var a=n("pFRH"),r=n("88Gu")(a);t.exports=r},"wd/R":function(t,e,n){(function(t){t.exports=function(){"use strict";var e,a;function r(){return e.apply(null,arguments)}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function i(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){return void 0===t}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var n,a=[];for(n=0;n<t.length;++n)a.push(e(t[n],n));return a}function u(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function g(t,e){for(var n in e)u(e,n)&&(t[n]=e[n]);return u(e,"toString")&&(t.toString=e.toString),u(e,"valueOf")&&(t.valueOf=e.valueOf),t}function f(t,e,n,a){return Pe(t,e,n,a,!0).utc()}function p(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function m(t){if(null==t._isValid){var e=p(t),n=a.call(e.parsedDateParts,(function(t){return null!=t})),r=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(r=r&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return r;t._isValid=r}return t._isValid}function h(t){var e=f(NaN);return null!=t?g(p(e),t):p(e).userInvalidated=!0,e}a=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,a=0;a<n;a++)if(a in e&&t.call(this,e[a],a,e))return!0;return!1};var b=r.momentProperties=[];function y(t,e){var n,a,r;if(s(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),s(e._i)||(t._i=e._i),s(e._f)||(t._f=e._f),s(e._l)||(t._l=e._l),s(e._strict)||(t._strict=e._strict),s(e._tzm)||(t._tzm=e._tzm),s(e._isUTC)||(t._isUTC=e._isUTC),s(e._offset)||(t._offset=e._offset),s(e._pf)||(t._pf=p(e)),s(e._locale)||(t._locale=e._locale),b.length>0)for(n=0;n<b.length;n++)s(r=e[a=b[n]])||(t[a]=r);return t}var _=!1;function O(t){y(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===_&&(_=!0,r.updateOffset(this),_=!1)}function v(t){return t instanceof O||null!=t&&null!=t._isAMomentObject}function C(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function P(t){var e=+t,n=0;return 0!==e&&isFinite(e)&&(n=C(e)),n}function M(t,e,n){var a,r=Math.min(t.length,e.length),o=Math.abs(t.length-e.length),i=0;for(a=0;a<r;a++)(n&&t[a]!==e[a]||!n&&P(t[a])!==P(e[a]))&&i++;return i+o}function x(t){!1===r.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function w(t,e){var n=!0;return g((function(){if(null!=r.deprecationHandler&&r.deprecationHandler(null,t),n){for(var a,o=[],i=0;i<arguments.length;i++){if(a="","object"==typeof arguments[i]){for(var s in a+="\n["+i+"] ",arguments[0])a+=s+": "+arguments[0][s]+", ";a=a.slice(0,-2)}else a=arguments[i];o.push(a)}x(t+"\nArguments: "+Array.prototype.slice.call(o).join("")+"\n"+(new Error).stack),n=!1}return e.apply(this,arguments)}),e)}var T,S={};function k(t,e){null!=r.deprecationHandler&&r.deprecationHandler(t,e),S[t]||(x(e),S[t]=!0)}function I(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function N(t,e){var n,a=g({},t);for(n in e)u(e,n)&&(i(t[n])&&i(e[n])?(a[n]={},g(a[n],t[n]),g(a[n],e[n])):null!=e[n]?a[n]=e[n]:delete a[n]);for(n in t)u(t,n)&&!u(e,n)&&i(t[n])&&(a[n]=g({},a[n]));return a}function R(t){null!=t&&this.set(t)}r.suppressDeprecationWarnings=!1,r.deprecationHandler=null,T=Object.keys?Object.keys:function(t){var e,n=[];for(e in t)u(t,e)&&n.push(e);return n};var A={};function E(t,e){var n=t.toLowerCase();A[n]=A[n+"s"]=A[e]=t}function D(t){return"string"==typeof t?A[t]||A[t.toLowerCase()]:void 0}function L(t){var e,n,a={};for(n in t)u(t,n)&&(e=D(n))&&(a[e]=t[n]);return a}var q={};function j(t,e){q[t]=e}function F(t,e,n){var a=""+Math.abs(t);return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}var z=/(\[[^\[]*\])|(\\)?([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,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,B={},V={};function Y(t,e,n,a){var r=a;"string"==typeof a&&(r=function(){return this[a]()}),t&&(V[t]=r),e&&(V[e[0]]=function(){return F(r.apply(this,arguments),e[1],e[2])}),n&&(V[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function H(t,e){return t.isValid()?(e=U(e,t.localeData()),B[e]=B[e]||function(t){var e,n,a,r=t.match(z);for(e=0,n=r.length;e<n;e++)r[e]=V[r[e]]?V[r[e]]:(a=r[e]).match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"");return function(e){var a,o="";for(a=0;a<n;a++)o+=I(r[a])?r[a].call(e,t):r[a];return o}}(e),B[e](t)):t.localeData().invalidDate()}function U(t,e){var n=5;function a(t){return e.longDateFormat(t)||t}for(G.lastIndex=0;n>=0&&G.test(t);)t=t.replace(G,a),G.lastIndex=0,n-=1;return t}var W=/\d/,K=/\d\d/,$=/\d{3}/,Z=/\d{4}/,J=/[+-]?\d{6}/,X=/\d\d?/,Q=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,nt=/\d{1,4}/,at=/[+-]?\d{1,6}/,rt=/\d+/,ot=/[+-]?\d+/,it=/Z|[+-]\d\d:?\d\d/gi,st=/Z|[+-]\d\d(?::?\d\d)?/gi,ct=/[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,lt={};function dt(t,e,n){lt[t]=I(e)?e:function(t,a){return t&&n?n:e}}function ut(t,e){return u(lt,t)?lt[t](e._strict,e._locale):new RegExp(gt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,n,a,r){return e||n||a||r}))))}function gt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ft={};function pt(t,e){var n,a=e;for("string"==typeof t&&(t=[t]),c(e)&&(a=function(t,n){n[e]=P(t)}),n=0;n<t.length;n++)ft[t[n]]=a}function mt(t,e){pt(t,(function(t,n,a,r){a._w=a._w||{},e(t,a._w,a,r)}))}function ht(t,e,n){null!=e&&u(ft,t)&&ft[t](e,n._a,n,t)}function bt(t){return yt(t)?366:365}function yt(t){return t%4==0&&t%100!=0||t%400==0}Y("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),Y(0,["YY",2],0,(function(){return this.year()%100})),Y(0,["YYYY",4],0,"year"),Y(0,["YYYYY",5],0,"year"),Y(0,["YYYYYY",6,!0],0,"year"),E("year","y"),j("year",1),dt("Y",ot),dt("YY",X,K),dt("YYYY",nt,Z),dt("YYYYY",at,J),dt("YYYYYY",at,J),pt(["YYYYY","YYYYYY"],0),pt("YYYY",(function(t,e){e[0]=2===t.length?r.parseTwoDigitYear(t):P(t)})),pt("YY",(function(t,e){e[0]=r.parseTwoDigitYear(t)})),pt("Y",(function(t,e){e[0]=parseInt(t,10)})),r.parseTwoDigitYear=function(t){return P(t)+(P(t)>68?1900:2e3)};var _t,Ot=vt("FullYear",!0);function vt(t,e){return function(n){return null!=n?(Pt(this,t,n),r.updateOffset(this,e),this):Ct(this,t)}}function Ct(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function Pt(t,e,n){t.isValid()&&!isNaN(n)&&("FullYear"===e&&yt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](n,t.month(),Mt(n,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](n))}function Mt(t,e){if(isNaN(t)||isNaN(e))return NaN;var n=(e%12+12)%12;return t+=(e-n)/12,1===n?yt(t)?29:28:31-n%7%2}_t=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},Y("M",["MM",2],"Mo",(function(){return this.month()+1})),Y("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),Y("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),E("month","M"),j("month",8),dt("M",X),dt("MM",X,K),dt("MMM",(function(t,e){return e.monthsShortRegex(t)})),dt("MMMM",(function(t,e){return e.monthsRegex(t)})),pt(["M","MM"],(function(t,e){e[1]=P(t)-1})),pt(["MMM","MMMM"],(function(t,e,n,a){var r=n._locale.monthsParse(t,a,n._strict);null!=r?e[1]=r:p(n).invalidMonth=t}));var xt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,wt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Tt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function St(t,e,n){var a,r,o,i=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],a=0;a<12;++a)o=f([2e3,a]),this._shortMonthsParse[a]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[a]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===e?-1!==(r=_t.call(this._shortMonthsParse,i))?r:null:-1!==(r=_t.call(this._longMonthsParse,i))?r:null:"MMM"===e?-1!==(r=_t.call(this._shortMonthsParse,i))?r:-1!==(r=_t.call(this._longMonthsParse,i))?r:null:-1!==(r=_t.call(this._longMonthsParse,i))?r:-1!==(r=_t.call(this._shortMonthsParse,i))?r:null}function kt(t,e){var n;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=P(e);else if(!c(e=t.localeData().monthsParse(e)))return t;return n=Math.min(t.date(),Mt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,n),t}function It(t){return null!=t?(kt(this,t),r.updateOffset(this,!0),this):Ct(this,"Month")}var Nt=ct,Rt=ct;function At(){function t(t,e){return e.length-t.length}var e,n,a=[],r=[],o=[];for(e=0;e<12;e++)n=f([2e3,e]),a.push(this.monthsShort(n,"")),r.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(a.sort(t),r.sort(t),o.sort(t),e=0;e<12;e++)a[e]=gt(a[e]),r[e]=gt(r[e]);for(e=0;e<24;e++)o[e]=gt(o[e]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Et(t,e,n,a,r,o,i){var s;return t<100&&t>=0?(s=new Date(t+400,e,n,a,r,o,i),isFinite(s.getFullYear())&&s.setFullYear(t)):s=new Date(t,e,n,a,r,o,i),s}function Dt(t){var e;if(t<100&&t>=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Lt(t,e,n){var a=7+e-n;return-(7+Dt(t,0,a).getUTCDay()-e)%7+a-1}function qt(t,e,n,a,r){var o,i,s=1+7*(e-1)+(7+n-a)%7+Lt(t,a,r);return s<=0?i=bt(o=t-1)+s:s>bt(t)?(o=t+1,i=s-bt(t)):(o=t,i=s),{year:o,dayOfYear:i}}function jt(t,e,n){var a,r,o=Lt(t.year(),e,n),i=Math.floor((t.dayOfYear()-o-1)/7)+1;return i<1?a=i+Ft(r=t.year()-1,e,n):i>Ft(t.year(),e,n)?(a=i-Ft(t.year(),e,n),r=t.year()+1):(r=t.year(),a=i),{week:a,year:r}}function Ft(t,e,n){var a=Lt(t,e,n),r=Lt(t+1,e,n);return(bt(t)-a+r)/7}function zt(t,e){return t.slice(e,7).concat(t.slice(0,e))}Y("w",["ww",2],"wo","week"),Y("W",["WW",2],"Wo","isoWeek"),E("week","w"),E("isoWeek","W"),j("week",5),j("isoWeek",5),dt("w",X),dt("ww",X,K),dt("W",X),dt("WW",X,K),mt(["w","ww","W","WW"],(function(t,e,n,a){e[a.substr(0,1)]=P(t)})),Y("d",0,"do","day"),Y("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),Y("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),Y("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),Y("e",0,0,"weekday"),Y("E",0,0,"isoWeekday"),E("day","d"),E("weekday","e"),E("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),dt("d",X),dt("e",X),dt("E",X),dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),mt(["dd","ddd","dddd"],(function(t,e,n,a){var r=n._locale.weekdaysParse(t,a,n._strict);null!=r?e.d=r:p(n).invalidWeekday=t})),mt(["d","e","E"],(function(t,e,n,a){e[a]=P(t)}));var Gt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Bt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Yt(t,e,n){var a,r,o,i=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],a=0;a<7;++a)o=f([2e3,1]).day(a),this._minWeekdaysParse[a]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[a]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[a]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?-1!==(r=_t.call(this._weekdaysParse,i))?r:null:"ddd"===e?-1!==(r=_t.call(this._shortWeekdaysParse,i))?r:null:-1!==(r=_t.call(this._minWeekdaysParse,i))?r:null:"dddd"===e?-1!==(r=_t.call(this._weekdaysParse,i))?r:-1!==(r=_t.call(this._shortWeekdaysParse,i))?r:-1!==(r=_t.call(this._minWeekdaysParse,i))?r:null:"ddd"===e?-1!==(r=_t.call(this._shortWeekdaysParse,i))?r:-1!==(r=_t.call(this._weekdaysParse,i))?r:-1!==(r=_t.call(this._minWeekdaysParse,i))?r:null:-1!==(r=_t.call(this._minWeekdaysParse,i))?r:-1!==(r=_t.call(this._weekdaysParse,i))?r:-1!==(r=_t.call(this._shortWeekdaysParse,i))?r:null}var Ht=ct,Ut=ct,Wt=ct;function Kt(){function t(t,e){return e.length-t.length}var e,n,a,r,o,i=[],s=[],c=[],l=[];for(e=0;e<7;e++)n=f([2e3,1]).day(e),a=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),i.push(a),s.push(r),c.push(o),l.push(a),l.push(r),l.push(o);for(i.sort(t),s.sort(t),c.sort(t),l.sort(t),e=0;e<7;e++)s[e]=gt(s[e]),c[e]=gt(c[e]),l[e]=gt(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function $t(){return this.hours()%12||12}function Zt(t,e){Y(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}Y("H",["HH",2],0,"hour"),Y("h",["hh",2],0,$t),Y("k",["kk",2],0,(function(){return this.hours()||24})),Y("hmm",0,0,(function(){return""+$t.apply(this)+F(this.minutes(),2)})),Y("hmmss",0,0,(function(){return""+$t.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),Y("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),Y("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),Zt("a",!0),Zt("A",!1),E("hour","h"),j("hour",13),dt("a",Jt),dt("A",Jt),dt("H",X),dt("h",X),dt("k",X),dt("HH",X,K),dt("hh",X,K),dt("kk",X,K),dt("hmm",Q),dt("hmmss",tt),dt("Hmm",Q),dt("Hmmss",tt),pt(["H","HH"],3),pt(["k","kk"],(function(t,e,n){var a=P(t);e[3]=24===a?0:a})),pt(["a","A"],(function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t})),pt(["h","hh"],(function(t,e,n){e[3]=P(t),p(n).bigHour=!0})),pt("hmm",(function(t,e,n){var a=t.length-2;e[3]=P(t.substr(0,a)),e[4]=P(t.substr(a)),p(n).bigHour=!0})),pt("hmmss",(function(t,e,n){var a=t.length-4,r=t.length-2;e[3]=P(t.substr(0,a)),e[4]=P(t.substr(a,2)),e[5]=P(t.substr(r)),p(n).bigHour=!0})),pt("Hmm",(function(t,e,n){var a=t.length-2;e[3]=P(t.substr(0,a)),e[4]=P(t.substr(a))})),pt("Hmmss",(function(t,e,n){var a=t.length-4,r=t.length-2;e[3]=P(t.substr(0,a)),e[4]=P(t.substr(a,2)),e[5]=P(t.substr(r))}));var Xt,Qt=vt("Hours",!0),te={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:wt,monthsShort:Tt,week:{dow:0,doy:6},weekdays:Gt,weekdaysMin:Vt,weekdaysShort:Bt,meridiemParse:/[ap]\.?m?\.?/i},ee={},ne={};function ae(t){return t?t.toLowerCase().replace("_","-"):t}function re(e){var a=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{a=Xt._abbr,n("RnhZ")("./"+e),oe(a)}catch(r){}return ee[e]}function oe(t,e){var n;return t&&((n=s(e)?se(t):ie(t,e))?Xt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Xt._abbr}function ie(t,e){if(null!==e){var n,a=te;if(e.abbr=t,null!=ee[t])k("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."),a=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])a=ee[e.parentLocale]._config;else{if(null==(n=re(e.parentLocale)))return ne[e.parentLocale]||(ne[e.parentLocale]=[]),ne[e.parentLocale].push({name:t,config:e}),null;a=n._config}return ee[t]=new R(N(a,e)),ne[t]&&ne[t].forEach((function(t){ie(t.name,t.config)})),oe(t),ee[t]}return delete ee[t],null}function se(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Xt;if(!o(t)){if(e=re(t))return e;t=[t]}return function(t){for(var e,n,a,r,o=0;o<t.length;){for(e=(r=ae(t[o]).split("-")).length,n=(n=ae(t[o+1]))?n.split("-"):null;e>0;){if(a=re(r.slice(0,e).join("-")))return a;if(n&&n.length>=e&&M(r,n,!0)>=e-1)break;e--}o++}return Xt}(t)}function ce(t){var e,n=t._a;return n&&-2===p(t).overflow&&(e=n[1]<0||n[1]>11?1:n[2]<1||n[2]>Mt(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),p(t)._overflowWeeks&&-1===e&&(e=7),p(t)._overflowWeekday&&-1===e&&(e=8),p(t).overflow=e),t}function le(t,e,n){return null!=t?t:null!=e?e:n}function de(t){var e,n,a,o,i,s=[];if(!t._d){for(a=function(t){var e=new Date(r.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,n,a,r,o,i,s,c;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)o=1,i=4,n=le(e.GG,t._a[0],jt(Me(),1,4).year),a=le(e.W,1),((r=le(e.E,1))<1||r>7)&&(c=!0);else{o=t._locale._week.dow,i=t._locale._week.doy;var l=jt(Me(),o,i);n=le(e.gg,t._a[0],l.year),a=le(e.w,l.week),null!=e.d?((r=e.d)<0||r>6)&&(c=!0):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(c=!0)):r=o}a<1||a>Ft(n,o,i)?p(t)._overflowWeeks=!0:null!=c?p(t)._overflowWeekday=!0:(s=qt(n,a,r,o,i),t._a[0]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(i=le(t._a[0],a[0]),(t._dayOfYear>bt(i)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=Dt(i,0,t._dayOfYear),t._a[1]=n.getUTCMonth(),t._a[2]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=a[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Dt:Et).apply(null,s),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==o&&(p(t).weekdayMismatch=!0)}}var ue=/^\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)?)?$/,ge=/^\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)?)?$/,fe=/Z|[+-]\d\d(?::?\d\d)?/,pe=[["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}/]],me=[["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/]],he=/^\/?Date\((\-?\d+)/i;function be(t){var e,n,a,r,o,i,s=t._i,c=ue.exec(s)||ge.exec(s);if(c){for(p(t).iso=!0,e=0,n=pe.length;e<n;e++)if(pe[e][1].exec(c[1])){r=pe[e][0],a=!1!==pe[e][2];break}if(null==r)return void(t._isValid=!1);if(c[3]){for(e=0,n=me.length;e<n;e++)if(me[e][1].exec(c[3])){o=(c[2]||" ")+me[e][0];break}if(null==o)return void(t._isValid=!1)}if(!a&&null!=o)return void(t._isValid=!1);if(c[4]){if(!fe.exec(c[4]))return void(t._isValid=!1);i="Z"}t._f=r+(o||"")+(i||""),ve(t)}else t._isValid=!1}var ye=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,_e={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Oe(t){var e,n,a,r,o,i,s,c,l=ye.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var d=(e=l[3],n=l[2],a=l[5],r=l[6],o=l[7],i=[(s=l[4],c=parseInt(s,10),c<=49?2e3+c:c<=999?1900+c:c),Tt.indexOf(e),parseInt(n,10),parseInt(a,10),parseInt(r,10)],o&&i.push(parseInt(o,10)),i);if(!function(t,e,n){return!t||Bt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(p(n).weekdayMismatch=!0,n._isValid=!1,!1)}(l[1],d,t))return;t._a=d,t._tzm=function(t,e,n){if(t)return _e[t];if(e)return 0;var a=parseInt(n,10),r=a%100;return(a-r)/100*60+r}(l[8],l[9],l[10]),t._d=Dt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),p(t).rfc2822=!0}else t._isValid=!1}function ve(t){if(t._f!==r.ISO_8601)if(t._f!==r.RFC_2822){t._a=[],p(t).empty=!0;var e,n,a,o,i,s=""+t._i,c=s.length,l=0;for(a=U(t._f,t._locale).match(z)||[],e=0;e<a.length;e++)(n=(s.match(ut(o=a[e],t))||[])[0])&&((i=s.substr(0,s.indexOf(n))).length>0&&p(t).unusedInput.push(i),s=s.slice(s.indexOf(n)+n.length),l+=n.length),V[o]?(n?p(t).empty=!1:p(t).unusedTokens.push(o),ht(o,n,t)):t._strict&&!n&&p(t).unusedTokens.push(o);p(t).charsLeftOver=c-l,s.length>0&&p(t).unusedInput.push(s),t._a[3]<=12&&!0===p(t).bigHour&&t._a[3]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[3]=function(t,e,n){var a;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?((a=t.isPM(n))&&e<12&&(e+=12),a||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),de(t),ce(t)}else Oe(t);else be(t)}function Ce(t){var e=t._i,n=t._f;return t._locale=t._locale||se(t._l),null===e||void 0===n&&""===e?h({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),v(e)?new O(ce(e)):(l(e)?t._d=e:o(n)?function(t){var e,n,a,r,o;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;r<t._f.length;r++)o=0,e=y({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[r],ve(e),m(e)&&(o+=p(e).charsLeftOver,o+=10*p(e).unusedTokens.length,p(e).score=o,(null==a||o<a)&&(a=o,n=e));g(t,n||e)}(t):n?ve(t):function(t){var e=t._i;s(e)?t._d=new Date(r.now()):l(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=he.exec(t._i);null===e?(be(t),!1===t._isValid&&(delete t._isValid,Oe(t),!1===t._isValid&&(delete t._isValid,r.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):o(e)?(t._a=d(e.slice(0),(function(t){return parseInt(t,10)})),de(t)):i(e)?function(t){if(!t._d){var e=L(t._i);t._a=d([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),de(t)}}(t):c(e)?t._d=new Date(e):r.createFromInputFallback(t)}(t),m(t)||(t._d=null),t))}function Pe(t,e,n,a,r){var s,c={};return!0!==n&&!1!==n||(a=n,n=void 0),(i(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||o(t)&&0===t.length)&&(t=void 0),c._isAMomentObject=!0,c._useUTC=c._isUTC=r,c._l=n,c._i=t,c._f=e,c._strict=a,(s=new O(ce(Ce(c))))._nextDay&&(s.add(1,"d"),s._nextDay=void 0),s}function Me(t,e,n,a){return Pe(t,e,n,a,!1)}r.createFromInputFallback=w("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),r.ISO_8601=function(){},r.RFC_2822=function(){};var xe=w("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Me.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:h()})),we=w("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Me.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:h()}));function Te(t,e){var n,a;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Me();for(n=e[0],a=1;a<e.length;++a)e[a].isValid()&&!e[a][t](n)||(n=e[a]);return n}var Se=["year","quarter","month","week","day","hour","minute","second","millisecond"];function ke(t){var e=L(t),n=e.year||0,a=e.quarter||0,r=e.month||0,o=e.week||e.isoWeek||0,i=e.day||0,s=e.hour||0,c=e.minute||0,l=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===_t.call(Se,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var n=!1,a=0;a<Se.length;++a)if(t[Se[a]]){if(n)return!1;parseFloat(t[Se[a]])!==P(t[Se[a]])&&(n=!0)}return!0}(e),this._milliseconds=+d+1e3*l+6e4*c+1e3*s*60*60,this._days=+i+7*o,this._months=+r+3*a+12*n,this._data={},this._locale=se(),this._bubble()}function Ie(t){return t instanceof ke}function Ne(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Re(t,e){Y(t,0,0,(function(){var t=this.utcOffset(),n="+";return t<0&&(t=-t,n="-"),n+F(~~(t/60),2)+e+F(~~t%60,2)}))}Re("Z",":"),Re("ZZ",""),dt("Z",st),dt("ZZ",st),pt(["Z","ZZ"],(function(t,e,n){n._useUTC=!0,n._tzm=Ee(st,t)}));var Ae=/([\+\-]|\d\d)/gi;function Ee(t,e){var n=(e||"").match(t);if(null===n)return null;var a=((n[n.length-1]||[])+"").match(Ae)||["-",0,0],r=60*a[1]+P(a[2]);return 0===r?0:"+"===a[0]?r:-r}function De(t,e){var n,a;return e._isUTC?(n=e.clone(),a=(v(t)||l(t)?t.valueOf():Me(t).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+a),r.updateOffset(n,!1),n):Me(t).local()}function Le(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function qe(){return!!this.isValid()&&this._isUTC&&0===this._offset}r.updateOffset=function(){};var je=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Fe=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function ze(t,e){var n,a,r,o,i,s,l=t,d=null;return Ie(t)?l={ms:t._milliseconds,d:t._days,M:t._months}:c(t)?(l={},e?l[e]=t:l.milliseconds=t):(d=je.exec(t))?(n="-"===d[1]?-1:1,l={y:0,d:P(d[2])*n,h:P(d[3])*n,m:P(d[4])*n,s:P(d[5])*n,ms:P(Ne(1e3*d[6]))*n}):(d=Fe.exec(t))?l={y:Ge(d[2],n="-"===d[1]?-1:1),M:Ge(d[3],n),w:Ge(d[4],n),d:Ge(d[5],n),h:Ge(d[6],n),m:Ge(d[7],n),s:Ge(d[8],n)}:null==l?l={}:"object"==typeof l&&("from"in l||"to"in l)&&(o=Me(l.from),i=Me(l.to),r=o.isValid()&&i.isValid()?(i=De(i,o),o.isBefore(i)?s=Be(o,i):((s=Be(i,o)).milliseconds=-s.milliseconds,s.months=-s.months),s):{milliseconds:0,months:0},(l={}).ms=r.milliseconds,l.M=r.months),a=new ke(l),Ie(t)&&u(t,"_locale")&&(a._locale=t._locale),a}function Ge(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Be(t,e){var n={};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ve(t,e){return function(n,a){var r;return null===a||isNaN(+a)||(k(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),r=n,n=a,a=r),Ye(this,ze(n="string"==typeof n?+n:n,a),t),this}}function Ye(t,e,n,a){var o=e._milliseconds,i=Ne(e._days),s=Ne(e._months);t.isValid()&&(a=null==a||a,s&&kt(t,Ct(t,"Month")+s*n),i&&Pt(t,"Date",Ct(t,"Date")+i*n),o&&t._d.setTime(t._d.valueOf()+o*n),a&&r.updateOffset(t,i||s))}ze.fn=ke.prototype,ze.invalid=function(){return ze(NaN)};var He=Ve(1,"add"),Ue=Ve(-1,"subtract");function We(t,e){var n=12*(e.year()-t.year())+(e.month()-t.month()),a=t.clone().add(n,"months");return-(n+(e-a<0?(e-a)/(a-t.clone().add(n-1,"months")):(e-a)/(t.clone().add(n+1,"months")-a)))||0}function Ke(t){var e;return void 0===t?this._locale._abbr:(null!=(e=se(t))&&(this._locale=e),this)}r.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",r.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var $e=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Ze(){return this._locale}function Je(t,e){return(t%e+e)%e}function Xe(t,e,n){return t<100&&t>=0?new Date(t+400,e,n)-126227808e5:new Date(t,e,n).valueOf()}function Qe(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-126227808e5:Date.UTC(t,e,n)}function tn(t,e){Y(0,[t,t.length],0,e)}function en(t,e,n,a,r){var o;return null==t?jt(this,a,r).year:(e>(o=Ft(t,a,r))&&(e=o),nn.call(this,t,e,n,a,r))}function nn(t,e,n,a,r){var o=qt(t,e,n,a,r),i=Dt(o.year,0,o.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}Y(0,["gg",2],0,(function(){return this.weekYear()%100})),Y(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),E("weekYear","gg"),E("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),dt("G",ot),dt("g",ot),dt("GG",X,K),dt("gg",X,K),dt("GGGG",nt,Z),dt("gggg",nt,Z),dt("GGGGG",at,J),dt("ggggg",at,J),mt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,a){e[a.substr(0,2)]=P(t)})),mt(["gg","GG"],(function(t,e,n,a){e[a]=r.parseTwoDigitYear(t)})),Y("Q",0,"Qo","quarter"),E("quarter","Q"),j("quarter",7),dt("Q",W),pt("Q",(function(t,e){e[1]=3*(P(t)-1)})),Y("D",["DD",2],"Do","date"),E("date","D"),j("date",9),dt("D",X),dt("DD",X,K),dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),pt(["D","DD"],2),pt("Do",(function(t,e){e[2]=P(t.match(X)[0])}));var an=vt("Date",!0);Y("DDD",["DDDD",3],"DDDo","dayOfYear"),E("dayOfYear","DDD"),j("dayOfYear",4),dt("DDD",et),dt("DDDD",$),pt(["DDD","DDDD"],(function(t,e,n){n._dayOfYear=P(t)})),Y("m",["mm",2],0,"minute"),E("minute","m"),j("minute",14),dt("m",X),dt("mm",X,K),pt(["m","mm"],4);var rn=vt("Minutes",!1);Y("s",["ss",2],0,"second"),E("second","s"),j("second",15),dt("s",X),dt("ss",X,K),pt(["s","ss"],5);var on,sn=vt("Seconds",!1);for(Y("S",0,0,(function(){return~~(this.millisecond()/100)})),Y(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),Y(0,["SSS",3],0,"millisecond"),Y(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),Y(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),Y(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),Y(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),Y(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),Y(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),E("millisecond","ms"),j("millisecond",16),dt("S",et,W),dt("SS",et,K),dt("SSS",et,$),on="SSSS";on.length<=9;on+="S")dt(on,rt);function cn(t,e){e[6]=P(1e3*("0."+t))}for(on="S";on.length<=9;on+="S")pt(on,cn);var ln=vt("Milliseconds",!1);Y("z",0,0,"zoneAbbr"),Y("zz",0,0,"zoneName");var dn=O.prototype;function un(t){return t}dn.add=He,dn.calendar=function(t,e){var n=t||Me(),a=De(n,this).startOf("day"),o=r.calendarFormat(this,a)||"sameElse",i=e&&(I(e[o])?e[o].call(this,n):e[o]);return this.format(i||this.localeData().calendar(o,this,Me(n)))},dn.clone=function(){return new O(this)},dn.diff=function(t,e,n){var a,r,o;if(!this.isValid())return NaN;if(!(a=De(t,this)).isValid())return NaN;switch(r=6e4*(a.utcOffset()-this.utcOffset()),e=D(e)){case"year":o=We(this,a)/12;break;case"month":o=We(this,a);break;case"quarter":o=We(this,a)/3;break;case"second":o=(this-a)/1e3;break;case"minute":o=(this-a)/6e4;break;case"hour":o=(this-a)/36e5;break;case"day":o=(this-a-r)/864e5;break;case"week":o=(this-a-r)/6048e5;break;default:o=this-a}return n?o:C(o)},dn.endOf=function(t){var e;if(void 0===(t=D(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?Qe:Xe;switch(t){case"year":e=n(this.year()+1,0,1)-1;break;case"quarter":e=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=n(this.year(),this.month()+1,1)-1;break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Je(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Je(e,1e3)-1}return this._d.setTime(e),r.updateOffset(this,!0),this},dn.format=function(t){t||(t=this.isUtc()?r.defaultFormatUtc:r.defaultFormat);var e=H(this,t);return this.localeData().postformat(e)},dn.from=function(t,e){return this.isValid()&&(v(t)&&t.isValid()||Me(t).isValid())?ze({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},dn.fromNow=function(t){return this.from(Me(),t)},dn.to=function(t,e){return this.isValid()&&(v(t)&&t.isValid()||Me(t).isValid())?ze({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},dn.toNow=function(t){return this.to(Me(),t)},dn.get=function(t){return I(this[t=D(t)])?this[t]():this},dn.invalidAt=function(){return p(this).overflow},dn.isAfter=function(t,e){var n=v(t)?t:Me(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=D(e)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(e).valueOf())},dn.isBefore=function(t,e){var n=v(t)?t:Me(t);return!(!this.isValid()||!n.isValid())&&("millisecond"===(e=D(e)||"millisecond")?this.valueOf()<n.valueOf():this.clone().endOf(e).valueOf()<n.valueOf())},dn.isBetween=function(t,e,n,a){var r=v(t)?t:Me(t),o=v(e)?e:Me(e);return!!(this.isValid()&&r.isValid()&&o.isValid())&&("("===(a=a||"()")[0]?this.isAfter(r,n):!this.isBefore(r,n))&&(")"===a[1]?this.isBefore(o,n):!this.isAfter(o,n))},dn.isSame=function(t,e){var n,a=v(t)?t:Me(t);return!(!this.isValid()||!a.isValid())&&("millisecond"===(e=D(e)||"millisecond")?this.valueOf()===a.valueOf():(n=a.valueOf(),this.clone().startOf(e).valueOf()<=n&&n<=this.clone().endOf(e).valueOf()))},dn.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},dn.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},dn.isValid=function(){return m(this)},dn.lang=$e,dn.locale=Ke,dn.localeData=Ze,dn.max=we,dn.min=xe,dn.parsingFlags=function(){return g({},p(this))},dn.set=function(t,e){if("object"==typeof t)for(var n=function(t){var e=[];for(var n in t)e.push({unit:n,priority:q[n]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=L(t)),a=0;a<n.length;a++)this[n[a].unit](t[n[a].unit]);else if(I(this[t=D(t)]))return this[t](e);return this},dn.startOf=function(t){var e;if(void 0===(t=D(t))||"millisecond"===t||!this.isValid())return this;var n=this._isUTC?Qe:Xe;switch(t){case"year":e=n(this.year(),0,1);break;case"quarter":e=n(this.year(),this.month()-this.month()%3,1);break;case"month":e=n(this.year(),this.month(),1);break;case"week":e=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=n(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Je(e,6e4);break;case"second":e=this._d.valueOf(),e-=Je(e,1e3)}return this._d.setTime(e),r.updateOffset(this,!0),this},dn.subtract=Ue,dn.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},dn.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},dn.toDate=function(){return new Date(this.valueOf())},dn.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,n=e?this.clone().utc():this;return n.year()<0||n.year()>9999?H(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):I(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",H(n,"Z")):H(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',a=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY";return this.format(n+a+"-MM-DD[T]HH:mm:ss.SSS"+e+'[")]')},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=Ot,dn.isLeapYear=function(){return yt(this.year())},dn.weekYear=function(t){return en.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(t){return en.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},dn.month=It,dn.daysInMonth=function(){return Mt(this.year(),this.month())},dn.week=dn.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},dn.isoWeek=dn.isoWeeks=function(t){var e=jt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},dn.weeksInYear=function(){var t=this.localeData()._week;return Ft(this.year(),t.dow,t.doy)},dn.isoWeeksInYear=function(){return Ft(this.year(),1,4)},dn.date=an,dn.day=dn.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},dn.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},dn.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},dn.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},dn.hour=dn.hours=Qt,dn.minute=dn.minutes=rn,dn.second=dn.seconds=sn,dn.millisecond=dn.milliseconds=ln,dn.utcOffset=function(t,e,n){var a,o=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ee(st,t)))return this}else Math.abs(t)<16&&!n&&(t*=60);return!this._isUTC&&e&&(a=Le(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),o!==t&&(!e||this._changeInProgress?Ye(this,ze(t-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,r.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?o:Le(this)},dn.utc=function(t){return this.utcOffset(0,t)},dn.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Le(this),"m")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ee(it,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Me(t).utcOffset():0,(this.utcOffset()-t)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=qe,dn.isUTC=qe,dn.zoneAbbr=function(){return this._isUTC?"UTC":""},dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},dn.dates=w("dates accessor is deprecated. Use date instead.",an),dn.months=w("months accessor is deprecated. Use month instead",It),dn.years=w("years accessor is deprecated. Use year instead",Ot),dn.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),dn.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),(t=Ce(t))._a){var e=t._isUTC?f(t._a):Me(t._a);this._isDSTShifted=this.isValid()&&M(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var gn=R.prototype;function fn(t,e,n,a){var r=se(),o=f().set(a,e);return r[n](o,t)}function pn(t,e,n){if(c(t)&&(e=t,t=void 0),t=t||"",null!=e)return fn(t,e,n,"month");var a,r=[];for(a=0;a<12;a++)r[a]=fn(t,a,n,"month");return r}function mn(t,e,n,a){"boolean"==typeof t?(c(e)&&(n=e,e=void 0),e=e||""):(n=e=t,t=!1,c(e)&&(n=e,e=void 0),e=e||"");var r,o=se(),i=t?o._week.dow:0;if(null!=n)return fn(e,(n+i)%7,a,"day");var s=[];for(r=0;r<7;r++)s[r]=fn(e,(r+i)%7,a,"day");return s}gn.calendar=function(t,e,n){var a=this._calendar[t]||this._calendar.sameElse;return I(a)?a.call(e,n):a},gn.longDateFormat=function(t){var e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},gn.invalidDate=function(){return this._invalidDate},gn.ordinal=function(t){return this._ordinal.replace("%d",t)},gn.preparse=un,gn.postformat=un,gn.relativeTime=function(t,e,n,a){var r=this._relativeTime[n];return I(r)?r(t,e,n,a):r.replace(/%d/i,t)},gn.pastFuture=function(t,e){var n=this._relativeTime[t>0?"future":"past"];return I(n)?n(e):n.replace(/%s/i,e)},gn.set=function(t){var e,n;for(n in t)I(e=t[n])?this[n]=e:this["_"+n]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},gn.months=function(t,e){return t?o(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||xt).test(e)?"format":"standalone"][t.month()]:o(this._months)?this._months:this._months.standalone},gn.monthsShort=function(t,e){return t?o(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[xt.test(e)?"format":"standalone"][t.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},gn.monthsParse=function(t,e,n){var a,r,o;if(this._monthsParseExact)return St.call(this,t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),a=0;a<12;a++){if(r=f([2e3,a]),n&&!this._longMonthsParse[a]&&(this._longMonthsParse[a]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[a]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[a]||(o="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[a]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[a].test(t))return a;if(n&&"MMM"===e&&this._shortMonthsParse[a].test(t))return a;if(!n&&this._monthsParse[a].test(t))return a}},gn.monthsRegex=function(t){return this._monthsParseExact?(u(this,"_monthsRegex")||At.call(this),t?this._monthsStrictRegex:this._monthsRegex):(u(this,"_monthsRegex")||(this._monthsRegex=Rt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},gn.monthsShortRegex=function(t){return this._monthsParseExact?(u(this,"_monthsRegex")||At.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,"_monthsShortRegex")||(this._monthsShortRegex=Nt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},gn.week=function(t){return jt(t,this._week.dow,this._week.doy).week},gn.firstDayOfYear=function(){return this._week.doy},gn.firstDayOfWeek=function(){return this._week.dow},gn.weekdays=function(t,e){var n=o(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?zt(n,this._week.dow):t?n[t.day()]:n},gn.weekdaysMin=function(t){return!0===t?zt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},gn.weekdaysShort=function(t){return!0===t?zt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},gn.weekdaysParse=function(t,e,n){var a,r,o;if(this._weekdaysParseExact)return Yt.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){if(r=f([2e3,1]).day(a),n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[a]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[a]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[a]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[a]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}},gn.weekdaysRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=Ht),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},gn.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ut),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},gn.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||Kt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Wt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},gn.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},gn.meridiem=function(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"},oe("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===P(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),r.lang=w("moment.lang is deprecated. Use moment.locale instead.",oe),r.langData=w("moment.langData is deprecated. Use moment.localeData instead.",se);var hn=Math.abs;function bn(t,e,n,a){var r=ze(e,n);return t._milliseconds+=a*r._milliseconds,t._days+=a*r._days,t._months+=a*r._months,t._bubble()}function yn(t){return t<0?Math.floor(t):Math.ceil(t)}function _n(t){return 4800*t/146097}function On(t){return 146097*t/4800}function vn(t){return function(){return this.as(t)}}var Cn=vn("ms"),Pn=vn("s"),Mn=vn("m"),xn=vn("h"),wn=vn("d"),Tn=vn("w"),Sn=vn("M"),kn=vn("Q"),In=vn("y");function Nn(t){return function(){return this.isValid()?this._data[t]:NaN}}var Rn=Nn("milliseconds"),An=Nn("seconds"),En=Nn("minutes"),Dn=Nn("hours"),Ln=Nn("days"),qn=Nn("months"),jn=Nn("years"),Fn=Math.round,zn={ss:44,s:45,m:45,h:22,d:26,M:11};function Gn(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}var Bn=Math.abs;function Vn(t){return(t>0)-(t<0)||+t}function Yn(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n=Bn(this._milliseconds)/1e3,a=Bn(this._days),r=Bn(this._months);t=C(n/60),e=C(t/60),n%=60,t%=60;var o=C(r/12),i=r%=12,s=a,c=e,l=t,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",u=this.asSeconds();if(!u)return"P0D";var g=u<0?"-":"",f=Vn(this._months)!==Vn(u)?"-":"",p=Vn(this._days)!==Vn(u)?"-":"",m=Vn(this._milliseconds)!==Vn(u)?"-":"";return g+"P"+(o?f+o+"Y":"")+(i?f+i+"M":"")+(s?p+s+"D":"")+(c||l||d?"T":"")+(c?m+c+"H":"")+(l?m+l+"M":"")+(d?m+d+"S":"")}var Hn=ke.prototype;return Hn.isValid=function(){return this._isValid},Hn.abs=function(){var t=this._data;return this._milliseconds=hn(this._milliseconds),this._days=hn(this._days),this._months=hn(this._months),t.milliseconds=hn(t.milliseconds),t.seconds=hn(t.seconds),t.minutes=hn(t.minutes),t.hours=hn(t.hours),t.months=hn(t.months),t.years=hn(t.years),this},Hn.add=function(t,e){return bn(this,t,e,1)},Hn.subtract=function(t,e){return bn(this,t,e,-1)},Hn.as=function(t){if(!this.isValid())return NaN;var e,n,a=this._milliseconds;if("month"===(t=D(t))||"quarter"===t||"year"===t)switch(n=this._months+_n(e=this._days+a/864e5),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(On(this._months)),t){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hour":return 24*e+a/36e5;case"minute":return 1440*e+a/6e4;case"second":return 86400*e+a/1e3;case"millisecond":return Math.floor(864e5*e)+a;default:throw new Error("Unknown unit "+t)}},Hn.asMilliseconds=Cn,Hn.asSeconds=Pn,Hn.asMinutes=Mn,Hn.asHours=xn,Hn.asDays=wn,Hn.asWeeks=Tn,Hn.asMonths=Sn,Hn.asQuarters=kn,Hn.asYears=In,Hn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*P(this._months/12):NaN},Hn._bubble=function(){var t,e,n,a,r,o=this._milliseconds,i=this._days,s=this._months,c=this._data;return o>=0&&i>=0&&s>=0||o<=0&&i<=0&&s<=0||(o+=864e5*yn(On(s)+i),i=0,s=0),c.milliseconds=o%1e3,t=C(o/1e3),c.seconds=t%60,e=C(t/60),c.minutes=e%60,n=C(e/60),c.hours=n%24,i+=C(n/24),s+=r=C(_n(i)),i-=yn(On(r)),a=C(s/12),s%=12,c.days=i,c.months=s,c.years=a,this},Hn.clone=function(){return ze(this)},Hn.get=function(t){return t=D(t),this.isValid()?this[t+"s"]():NaN},Hn.milliseconds=Rn,Hn.seconds=An,Hn.minutes=En,Hn.hours=Dn,Hn.days=Ln,Hn.weeks=function(){return C(this.days()/7)},Hn.months=qn,Hn.years=jn,Hn.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=function(t,e,n){var a=ze(t).abs(),r=Fn(a.as("s")),o=Fn(a.as("m")),i=Fn(a.as("h")),s=Fn(a.as("d")),c=Fn(a.as("M")),l=Fn(a.as("y")),d=r<=zn.ss&&["s",r]||r<zn.s&&["ss",r]||o<=1&&["m"]||o<zn.m&&["mm",o]||i<=1&&["h"]||i<zn.h&&["hh",i]||s<=1&&["d"]||s<zn.d&&["dd",s]||c<=1&&["M"]||c<zn.M&&["MM",c]||l<=1&&["y"]||["yy",l];return d[2]=e,d[3]=+t>0,d[4]=n,Gn.apply(null,d)}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)},Hn.toISOString=Yn,Hn.toString=Yn,Hn.toJSON=Yn,Hn.locale=Ke,Hn.localeData=Ze,Hn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Yn),Hn.lang=$e,Y("X",0,0,"unix"),Y("x",0,0,"valueOf"),dt("x",ot),dt("X",/[+-]?\d+(\.\d{1,3})?/),pt("X",(function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))})),pt("x",(function(t,e,n){n._d=new Date(P(t))})),r.version="2.24.0",e=Me,r.fn=dn,r.min=function(){var t=[].slice.call(arguments,0);return Te("isBefore",t)},r.max=function(){var t=[].slice.call(arguments,0);return Te("isAfter",t)},r.now=function(){return Date.now?Date.now():+new Date},r.utc=f,r.unix=function(t){return Me(1e3*t)},r.months=function(t,e){return pn(t,e,"months")},r.isDate=l,r.locale=oe,r.invalid=h,r.duration=ze,r.isMoment=v,r.weekdays=function(t,e,n){return mn(t,e,n,"weekdays")},r.parseZone=function(){return Me.apply(null,arguments).parseZone()},r.localeData=se,r.isDuration=Ie,r.monthsShort=function(t,e){return pn(t,e,"monthsShort")},r.weekdaysMin=function(t,e,n){return mn(t,e,n,"weekdaysMin")},r.defineLocale=ie,r.updateLocale=function(t,e){if(null!=e){var n,a,r=te;null!=(a=re(t))&&(r=a._config),(n=new R(e=N(r,e))).parentLocale=ee[t],ee[t]=n,oe(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},r.locales=function(){return T(ee)},r.weekdaysShort=function(t,e,n){return mn(t,e,n,"weekdaysShort")},r.normalizeUnits=D,r.relativeTimeRounding=function(t){return void 0===t?Fn:"function"==typeof t&&(Fn=t,!0)},r.relativeTimeThreshold=function(t,e){return void 0!==zn[t]&&(void 0===e?zn[t]:(zn[t]=e,"s"===t&&(zn.ss=e-1),!0))},r.calendarFormat=function(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},r.prototype=dn,r.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:"GGGG-[W]WW",MONTH:"YYYY-MM"},r}()}).call(this,n("YuTi")(t))},wg0c:function(t,e,n){var a=n("2oRo"),r=n("WKiH").trim,o=n("WJkJ"),i=a.parseInt,s=/^[+-]?0[Xx]/,c=8!==i(o+"08")||22!==i(o+"0x16");t.exports=c?function(t,e){var n=r(String(t));return i(n,e>>>0||(s.test(n)?16:10))}:i},wig9:function(t,e){t.exports=function(t){for(var e=-1,n=null==t?0:t.length,a=0,r=[];++e<n;){var o=t[e];o&&(r[a++]=o)}return r}},wnGv:function(t,e,n){"use strict";n.d(e,"a",(function(){return d}));var a=n("8Y7J"),r=n("s7LF"),o=n("LvDl"),i=n("oxzT"),s=n("QFaf"),c=n("DNAf"),l=n("a96k");class d{constructor(t){this.i18n=t,this.data=[],this.options=[],this.messages=new c.a({},this.i18n),this.customBadges=!1,this.customBadgeValidators=[],this.selection=new a.EventEmitter,this.Object=Object,this.filteredOptions=[],this.icons=i.a}ngOnInit(){this.initFilter(),this.data.length>0&&this.initMissingOptions(),this.options=o.sortBy(this.options,["name"]),this.updateOptions()}initFilter(){this.filter=new r.i("",{validators:this.customBadgeValidators}),this.form=new s.a({filter:this.filter}),this.filteredOptions=[...this.options||[]]}initMissingOptions(){const t=this.options.map(t=>t.name);this.data.filter(e=>-1===t.indexOf(e)).forEach(t=>this.addOption(t)),this.forceOptionsToReflectData()}addOption(t){this.options.push(new l.a(!1,t,"")),this.options=o.sortBy(this.options,["name"]),this.triggerSelection(this.options.find(e=>e.name===t))}triggerSelection(t){!t||this.selectionLimit&&!t.selected&&this.data.length>=this.selectionLimit||(t.selected=!t.selected,this.updateOptions(),this.selection.emit({option:t}))}updateOptions(){this.data.splice(0,this.data.length),this.options.forEach(t=>{t.selected&&this.data.push(t.name)}),this.updateFilter()}updateFilter(){this.filteredOptions=this.options.filter(t=>t.name.includes(this.filter.value))}forceOptionsToReflectData(){this.options.forEach(t=>{-1!==this.data.indexOf(t.name)&&(t.selected=!0)})}ngOnChanges(){this.filter&&this.updateFilter(),this.options&&this.data&&0!==this.data.length&&this.forceOptionsToReflectData()}selectOption(){0===this.filteredOptions.length?this.addCustomOption():(this.triggerSelection(this.filteredOptions[0]),this.resetFilter())}addCustomOption(){this.isCreatable()&&(this.addOption(this.filter.value),this.resetFilter())}isCreatable(){return this.customBadges&&this.filter.valid&&this.filter.value.length>0&&this.filteredOptions.every(t=>t.name!==this.filter.value)}resetFilter(){this.filter.setValue(""),this.updateFilter()}removeItem(t){this.triggerSelection(this.options.find(e=>e.name===t&&e.selected))}}},woSy:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("f95s"),o=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},i=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},s=function(){function t(){}return t.prototype.onDrop=function(t){this.node.mouseAction("drop",t.event,{from:t.element,to:{parent:this.node,index:this.dropIndex}})},t.prototype.allowDrop=function(t,e){return this.node.options.allowDrop(t,{parent:this.node,index:this.dropIndex},e)},o([Object(a.Input)(),i("design:type",r.a)],t.prototype,"node",void 0),o([Object(a.Input)(),i("design:type",Number)],t.prototype,"dropIndex",void 0),o([Object(a.Component)({selector:"TreeNodeDropSlot, tree-node-drop-slot",encapsulation:a.ViewEncapsulation.None,styles:[],template:'\n    <div\n      class="node-drop-slot"\n      (treeDrop)="onDrop($event)"\n      [treeAllowDrop]="allowDrop.bind(this)"\n      [allowDragoverStyling]="true">\n    </div>\n  '})],t)}()},wrZu:function(t,e,n){var a=n("+K+b"),r=n("XYm9"),o=n("b2z7"),i=n("otv/"),s=n("yP5f");t.exports=function(t,e,n){var c=t.constructor;switch(e){case"[object ArrayBuffer]":return a(t);case"[object Boolean]":case"[object Date]":return new c(+t);case"[object DataView]":return r(t,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return s(t,n);case"[object Map]":return new c;case"[object Number]":case"[object String]":return new c(t);case"[object RegExp]":return o(t);case"[object Set]":return new c;case"[object Symbol]":return i(t)}}},"x+ZX":function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(){return function(t){return t.lift(new o(t))}}class o{constructor(t){this.connectable=t}call(t,e){const{connectable:n}=this;n._refCount++;const a=new i(t,n),r=e.subscribe(a);return a.closed||(a.connection=n.connect()),r}}class i extends a.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:n}=this,a=t._connection;this.connection=null,!a||n&&a!==n||a.unsubscribe()}}},x38r:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t.bold="bold",t.sparkline="sparkline",t.perSecond="perSecond",t.checkIcon="checkIcon",t.routerLink="routerLink",t.executing="executing",t.classAdding="classAdding",t.badge="badge",t.map="map",t.truncate="truncate",t}({})},x6pH:function(t,e,n){!function(t){"use strict";t.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".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",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(t){return 2===t?"שעתיים":t+" שעות"},d:"יום",dd:function(t){return 2===t?"יומיים":t+" ימים"},M:"חודש",MM:function(t){return 2===t?"חודשיים":t+" חודשים"},y:"שנה",yy:function(t){return 2===t?"שנתיים":t%10==0&&10!==t?t+" שנה":t+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(t){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(t)},meridiem:function(t,e,n){return t<5?"לפנות בוקר":t<10?"בבוקר":t<12?n?'לפנה"צ':"לפני הצהריים":t<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n("wd/R"))},xDBR:function(t,e){t.exports=!1},xSw7:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("Fgil"),o=n("aXbf"),i=n("978R"),s=n("z/SZ"),c=n("2uy1");n("GgAd"),n.d(e,"a",(function(){return l})),n.d(e,"b",(function(){return u}));var l=a["ɵcrt"]({encapsulation:0,styles:[[".bg-info[_ngcontent-%COMP%]{background-color:#2b99a8!important}.bg-freespace[_ngcontent-%COMP%]{background-color:#d1d1d1!important}.progress[_ngcontent-%COMP%]{height:20px;position:relative;margin-bottom:0}.progress[_ngcontent-%COMP%]   div.progress-bar[_ngcontent-%COMP%]{position:static}.progress[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{position:absolute;display:block;width:100%;color:#000;font-weight:400}"]],data:{}});function d(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,14,"table",[],null,null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](2,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Used: "])),(t()(),a["ɵeld"](4,0,null,null,3,"td",[["class","text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,[" ",""])),a["ɵppd"](7,1),(t()(),a["ɵeld"](8,0,null,null,6,"tr",[],null,null,null,null,null)),(t()(),a["ɵeld"](9,0,null,null,1,"td",[["class","text-left"]],null,null,null,null,null)),(t()(),a["ɵted"](-1,null,["Free: "])),(t()(),a["ɵeld"](11,0,null,null,3,"td",[["class","'text-right"]],null,null,null,null,null)),(t()(),a["ɵeld"](12,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),a["ɵted"](13,null,["",""])),a["ɵppd"](14,1)],null,(function(t,e){var n=e.component,r=a["ɵunv"](e,6,0,t(e,7,0,a["ɵnov"](e.parent,0),n.usedBytes));t(e,6,0,r);var o=a["ɵunv"](e,13,0,t(e,14,0,a["ɵnov"](e.parent,0),n.freeBytes));t(e,13,0,o)}))}function u(t){return a["ɵvid"](0,[a["ɵpid"](0,r.a,[o.a]),(t()(),a["ɵand"](0,[["usageTooltipTpl",2]],null,0,null,d)),(t()(),a["ɵeld"](2,16777216,null,null,5,"div",[["class","progress"],["data-placement","left"]],[[1,"aria-describedby",0]],null,null,null,null)),a["ɵdid"](3,212992,null,0,i.c,[a.ViewContainerRef,s.a,i.a,a.ElementRef,a.Renderer2,c.a],{tooltip:[0,"tooltip"],placement:[1,"placement"]},null),(t()(),a["ɵeld"](4,0,null,null,2,"div",[["class","progress-bar bg-info"],["role","progressbar"]],[[4,"width",null]],null,null,null,null)),(t()(),a["ɵeld"](5,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),a["ɵted"](6,null,["","%"])),(t()(),a["ɵeld"](7,0,null,null,0,"div",[["class","progress-bar bg-freespace"],["role","progressbar"]],[[4,"width",null]],null,null,null,null))],(function(t,e){t(e,3,0,a["ɵnov"](e,1),"left")}),(function(t,e){var n=e.component;t(e,2,0,a["ɵnov"](e,3).ariaDescribedby),t(e,4,0,n.usedPercentage+"%"),t(e,6,0,n.usedPercentage),t(e,7,0,n.freePercentage+"%")}))}},xTzq:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o}));var a=n("LvDl");function r(...t){switch(t.length){case 1:return i.apply(void 0,t);case 3:return s.apply(void 0,t);default:throw new Error}}function o(t,e,n){const a=`__ignore_${e}`;Array.isArray(t[a])?t[a].push(n):t[a]=[n]}function i(t){for(const e of Object.getOwnPropertyNames(t.prototype)){const n=Object.getOwnPropertyDescriptor(t.prototype,e),a="constructor"===e;n.value instanceof Function&&!a&&(s(t.prototype,e,n),Object.defineProperty(t.prototype,e,n))}}function s(t,e,n){void 0===n&&(n=Object.getOwnPropertyDescriptor(t,e));const r=n.value;n.value=function(){const n=`__ignore_${e}`,o=t[n]||[],i=[];for(let t=0;t<arguments.length;t++)i[t]=a.isString(arguments[t])&&-1===o.indexOf(t)?encodeURIComponent(arguments[t]):arguments[t];const s=r.apply(this,i);return s}}},xYSL:function(t,e){t.exports=function(t,e){return t.has(e)}},xbPD:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("7o/Q");function r(t=null){return e=>e.lift(new o(t))}class o{constructor(t){this.defaultValue=t}call(t,e){return e.subscribe(new i(t,this.defaultValue))}}class i extends a.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()}}},xgIS:function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("HDdC"),r=n("DH7j"),o=n("n6bG"),i=n("lJxs");function s(t,e,n,c){return Object(o.a)(n)&&(c=n,n=void 0),c?s(t,e,n).pipe(Object(i.a)(t=>Object(r.a)(t)?c(...t):c(t))):new a.a(a=>{!function t(e,n,a,r,o){let i;if(function(t){return t&&"function"==typeof t.addEventListener&&"function"==typeof t.removeEventListener}(e)){const t=e;e.addEventListener(n,a,o),i=()=>t.removeEventListener(n,a,o)}else if(function(t){return t&&"function"==typeof t.on&&"function"==typeof t.off}(e)){const t=e;e.on(n,a),i=()=>t.off(n,a)}else if(function(t){return t&&"function"==typeof t.addListener&&"function"==typeof t.removeListener}(e)){const t=e;e.addListener(n,a),i=()=>t.removeListener(n,a)}else{if(!e||!e.length)throw new TypeError("Invalid event target");for(let i=0,s=e.length;i<s;i++)t(e[i],n,a,r,o)}r.add(i)}(t,e,(function(t){a.next(arguments.length>1?Array.prototype.slice.call(arguments):t)}),a,n)})}},"xj/R":function(t,e,n){"use strict";function a(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function r(t){return"string"==typeof t}function o(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function i(t){return t&&t.getTime&&!isNaN(t.getTime())}function s(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function c(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function u(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function g(t){return void 0===t}function f(t){const e=+t;let n=0;return 0!==e&&isFinite(e)&&(n=a(e)),n}n.d(e,"a",(function(){return Ke})),n.d(e,"b",(function(){return Ze})),n.d(e,"c",(function(){return Jt})),n.d(e,"d",(function(){return Ct})),n.d(e,"e",(function(){return en})),n.d(e,"f",(function(){return Oe})),n.d(e,"g",(function(){return nn})),n.d(e,"h",(function(){return k})),n.d(e,"i",(function(){return A})),n.d(e,"j",(function(){return R})),n.d(e,"k",(function(){return Xt})),n.d(e,"l",(function(){return N})),n.d(e,"m",(function(){return an})),n.d(e,"n",(function(){return Se})),n.d(e,"o",(function(){return l})),n.d(e,"p",(function(){return ke})),n.d(e,"q",(function(){return o})),n.d(e,"r",(function(){return i})),n.d(e,"s",(function(){return Ie})),n.d(e,"t",(function(){return E})),n.d(e,"u",(function(){return Ne})),n.d(e,"v",(function(){return q})),n.d(e,"w",(function(){return D})),n.d(e,"x",(function(){return L})),n.d(e,"y",(function(){return rn})),n.d(e,"z",(function(){return on})),n.d(e,"A",(function(){return sn})),n.d(e,"B",(function(){return we})),n.d(e,"C",(function(){return gn})),n.d(e,"D",(function(){return fn})),n.d(e,"E",(function(){return ht})),n.d(e,"F",(function(){return mt})),n.d(e,"G",(function(){return vt})),n.d(e,"H",(function(){return pn}));const p={},m={date:"day",hour:"hours",minute:"minutes",second:"seconds",millisecond:"milliseconds"};function h(t,e){const n=t.toLowerCase();let a=t;n in m&&(a=m[n]),p[n]=p[`${n}s`]=p[e]=a}function b(t){return r(t)?p[t]||p[t.toLowerCase()]:void 0}function y(t,e,n){const a=`${Math.abs(t)}`;return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,e-a.length)).toString().substr(1)+a}let _={},O={};const v=/(\[[^\[]*\])|(\\)?([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;function C(t,e,n,a){t&&(O[t]=a),e&&(O[e[0]]=function(){return y(a.apply(null,arguments),e[1],e[2])}),n&&(O[n]=function(e,n){return n.locale.ordinal(a.apply(null,arguments),t)})}function P(t,e,n){const a=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(a.getUTCFullYear())&&a.setUTCFullYear(t),a}function M(t,e=0,n=1,a=0,r=0,o=0,i=0){const s=new Date(t,e,n,a,r,o,i);return t<100&&t>=0&&isFinite(s.getFullYear())&&s.setFullYear(t),s}function x(t,e=!1){return e?t.getUTCHours():t.getHours()}function w(t,e=!1){return e?t.getUTCMinutes():t.getMinutes()}function T(t,e=!1){return e?t.getUTCSeconds():t.getSeconds()}function S(t,e=!1){return e?t.getUTCMilliseconds():t.getMilliseconds()}function k(t,e=!1){return e?t.getUTCDay():t.getDay()}function I(t,e=!1){return e?t.getUTCDate():t.getDate()}function N(t,e=!1){return e?t.getUTCMonth():t.getMonth()}function R(t,e=!1){return e?t.getUTCFullYear():t.getFullYear()}function A(t){return M(t.getFullYear(),t.getMonth(),1,t.getHours(),t.getMinutes(),t.getSeconds())}function E(t,e){return t.getDay()===e}function D(t,e){return!(!t||!e)&&L(t,e)&&N(t)===N(e)}function L(t,e){return!(!t||!e)&&R(t)===R(e)}function q(t,e){return!(!t||!e)&&L(t,e)&&D(t,e)&&I(t)===I(e)}const j=/\d/,F=/\d\d/,z=/\d{3}/,G=/\d{4}/,B=/[+-]?\d{6}/,V=/\d\d?/,Y=/\d\d\d\d?/,H=/\d\d\d\d\d\d?/,U=/\d{1,3}/,W=/\d{1,4}/,K=/[+-]?\d{1,6}/,$=/\d+/,Z=/[+-]?\d+/,J=/Z|[+-]\d\d(?::?\d\d)?/gi,X=/[+-]?\d+(\.\d{1,3})?/,Q=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,tt={};function et(t,e,n){tt[t]=s(e)?e:function(t,a){return t&&n?n:e}}function nt(t,e){return d(tt,t)?tt[t](!1,e):new RegExp(at(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(t,e,n,a,r)=>e||n||a||r)))}function at(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}const rt={};function ot(t,e){const n=r(t)?[t]:t;let a=e;if(c(e)&&(a=function(t,n,a){return n[e]=f(t),a}),l(n)&&s(a)){let t;for(t=0;t<n.length;t++)rt[n[t]]=a}}function it(t,e){ot(t,(function(t,n,a,r){return a._w=a._w||{},e(t,a._w,a,r)}))}function st(t,e,n){return null!=e&&d(rt,t)&&rt[t](e,n._a,n,t),n}function ct(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function lt(t,e){return R(t,e.isUTC).toString()}function dt(t){return f(t)+(f(t)>68?1900:2e3)}function ut(t){return gt(t)?366:365}function gt(t){return t%4==0&&t%100!=0||t%400==0}function ft(t,e){if(isNaN(t)||isNaN(e))return NaN;const n=(e%12+12)%12;return 1===n?gt(t+(e-n)/12)?29:28:31-n%7%2}const pt={year:0,month:0,day:0,hour:0,minute:0,seconds:0};function mt(t,e){const n=Object.assign({},pt,e),a=t.getFullYear()+(n.year||0),r=t.getMonth()+(n.month||0);let o=t.getDate()+(n.day||0);return n.month&&!n.day&&(o=Math.min(o,ft(a,r))),M(a,r,o,t.getHours()+(n.hour||0),t.getMinutes()+(n.minute||0),t.getSeconds()+(n.seconds||0))}function ht(t,e){return M(bt(t.getFullYear(),e.year),bt(t.getMonth(),e.month),bt(t.getDate(),e.day),bt(t.getHours(),e.hour),bt(t.getMinutes(),e.minute),bt(t.getSeconds(),e.seconds),bt(t.getMilliseconds(),e.milliseconds))}function bt(t,e){return c(e)?e:t}function yt(t,e,n){const a=Math.min(I(t),ft(R(t),e));return n?t.setUTCMonth(e,a):t.setMonth(e,a),t}function _t(t,e,n){return n?t.setUTCDate(e):t.setDate(e),t}function Ot(t){return new Date(t.getTime())}function vt(t,e,n){const a=Ot(t);switch(e){case"year":yt(a,0,n);case"quarter":case"month":_t(a,1,n);case"week":case"isoWeek":case"day":case"date":!function(t,e,n){n?t.setUTCHours(0):t.setHours(0)}(a,0,n);case"hours":!function(t,e,n){n?t.setUTCMinutes(0):t.setMinutes(0)}(a,0,n);case"minutes":!function(t,e,n){n?t.setUTCSeconds(0):t.setSeconds(0)}(a,0,n);case"seconds":!function(t,e,n){n?t.setUTCMilliseconds(0):t.setMilliseconds(0)}(a,0,n)}return"week"===e&&function(t,e,n={}){qe(t,0-Ge(t,n.locale,n.isUTC),"day")}(a,0,{isUTC:n}),"isoWeek"===e&&function(t,e,n={}){const a=function(t,e=Xt()){return r(t)?e.weekdaysParse(t)%7||7:c(t)&&isNaN(t)?null:t}(1,n.locale);Fe(t,ze(t)%7?a:a-7)}(a),"quarter"===e&&yt(a,3*Math.floor(N(a,n)/3),n),a}function Ct(t,e,n){let a=e;return"date"===a&&(a="day"),function(t,e,n,a){return je(t,Ee(1,"milliseconds"),-1,a)}(qe(vt(t,a,n),1,"isoWeek"===a?"week":a,n),0,0,n)}function Pt(t,e){const n=+vt(t,"day",e),a=+vt(t,"year",e);return Math.round((n-a)/864e5)+1}function Mt(t,e,n){const a=e-n+7;return-(P(t,0,a).getUTCDay()-e+7)%7+a-1}function xt(t,e,n,a){const r=Mt(R(t,a),e,n),o=Math.floor((Pt(t,a)-r-1)/7)+1;let i,s;return o<1?(s=R(t,a)-1,i=o+wt(s,e,n)):o>wt(R(t,a),e,n)?(i=o-wt(R(t,a),e,n),s=R(t,a)+1):(s=R(t,a),i=o),{week:i,year:s}}function wt(t,e,n){const a=Mt(t,e,n),r=Mt(t+1,e,n);return(ut(t)-a+r)/7}const Tt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,St="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),kt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),It="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Nt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Rt={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"},At=Q,Et=Q;class Dt{constructor(t){t&&this.set(t)}set(t){let e;for(e in t){if(!t.hasOwnProperty(e))continue;const n=t[e];this[s(n)?e:`_${e}`]=n}this._config=t}calendar(t,e,n){const a=this._calendar[t]||this._calendar.sameElse;return s(a)?a.call(null,e,n):a}longDateFormat(t){const e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])}get invalidDate(){return this._invalidDate}set invalidDate(t){this._invalidDate=t}ordinal(t,e){return this._ordinal.replace("%d",t.toString(10))}preparse(t){return t}postformat(t){return t}relativeTime(t,e,n,a){const r=this._relativeTime[n];return s(r)?r(t,e,n,a):r.replace(/%d/i,t.toString(10))}pastFuture(t,e){const n=this._relativeTime[t>0?"future":"past"];return s(n)?n(e):n.replace(/%s/i,e)}months(t,e,n=!1){if(!t)return l(this._months)?this._months:this._months.standalone;if(l(this._months))return this._months[N(t,n)];const a=(this._months.isFormat||Tt).test(e)?"format":"standalone";return this._months[a][N(t,n)]}monthsShort(t,e,n=!1){if(!t)return l(this._monthsShort)?this._monthsShort:this._monthsShort.standalone;if(l(this._monthsShort))return this._monthsShort[N(t,n)];const a=Tt.test(e)?"format":"standalone";return this._monthsShort[a][N(t,n)]}monthsParse(t,e,n){let a,r,o;if(this._monthsParseExact)return this.handleMonthStrictParse(t,e,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;o<12;o++){if(a=new Date(Date.UTC(2e3,o)),n&&!this._longMonthsParse[o]){const t=this.months(a,"",!0).replace(".",""),e=this.monthsShort(a,"",!0).replace(".","");this._longMonthsParse[o]=new RegExp(`^${t}$`,"i"),this._shortMonthsParse[o]=new RegExp(`^${e}$`,"i")}if(n||this._monthsParse[o]||(r=`^${this.months(a,"",!0)}|^${this.monthsShort(a,"",!0)}`,this._monthsParse[o]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(n&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!n&&this._monthsParse[o].test(t))return o}}monthsRegex(t){return this._monthsParseExact?(d(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Et),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)}monthsShortRegex(t){return this._monthsParseExact?(d(this,"_monthsRegex")||this.computeMonthsParse(),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=At),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)}week(t,e){return xt(t,this._week.dow,this._week.doy,e).week}firstDayOfWeek(){return this._week.dow}firstDayOfYear(){return this._week.doy}weekdays(t,e,n){if(!t)return l(this._weekdays)?this._weekdays:this._weekdays.standalone;if(l(this._weekdays))return this._weekdays[k(t,n)];const a=this._weekdays.isFormat.test(e)?"format":"standalone";return this._weekdays[a][k(t,n)]}weekdaysMin(t,e,n){return t?this._weekdaysMin[k(t,n)]:this._weekdaysMin}weekdaysShort(t,e,n){return t?this._weekdaysShort[k(t,n)]:this._weekdaysShort}weekdaysParse(t,e,n){let a,r;if(this._weekdaysParseExact)return this.handleWeekStrictParse(t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),a=0;a<7;a++){const o=Fe(new Date(Date.UTC(2e3,1)),a,null,!0);if(n&&!this._fullWeekdaysParse[a]&&(this._fullWeekdaysParse[a]=new RegExp(`^${this.weekdays(o,"",!0).replace(".",".?")}$`,"i"),this._shortWeekdaysParse[a]=new RegExp(`^${this.weekdaysShort(o,"",!0).replace(".",".?")}$`,"i"),this._minWeekdaysParse[a]=new RegExp(`^${this.weekdaysMin(o,"",!0).replace(".",".?")}$`,"i")),this._weekdaysParse[a]||(r=`^${this.weekdays(o,"",!0)}|^${this.weekdaysShort(o,"",!0)}|^${this.weekdaysMin(o,"",!0)}`,this._weekdaysParse[a]=new RegExp(r.replace(".",""),"i")),!(l(this._fullWeekdaysParse)&&l(this._shortWeekdaysParse)&&l(this._minWeekdaysParse)&&l(this._weekdaysParse)))return;if(n&&"dddd"===e&&this._fullWeekdaysParse[a].test(t))return a;if(n&&"ddd"===e&&this._shortWeekdaysParse[a].test(t))return a;if(n&&"dd"===e&&this._minWeekdaysParse[a].test(t))return a;if(!n&&this._weekdaysParse[a].test(t))return a}}weekdaysRegex(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Q),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}weekdaysShortRegex(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Q),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}weekdaysMinRegex(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||this.computeWeekdaysParse(),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Q),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}isPM(t){return"p"===t.toLowerCase().charAt(0)}meridiem(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}formatLongDate(t){this._longDateFormat=this._longDateFormat?this._longDateFormat:Rt;const e=this._longDateFormat[t],n=this._longDateFormat[t.toUpperCase()];return e||!n?e:(this._longDateFormat[t]=n.replace(/MMMM|MM|DD|dddd/g,t=>t.slice(1)),this._longDateFormat[t])}handleMonthStrictParse(t,e,n){const a=t.toLocaleLowerCase();let r,o,i;if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;r<12;++r)i=new Date(2e3,r),this._shortMonthsParse[r]=this.monthsShort(i,"").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(i,"").toLocaleLowerCase();return n?"MMM"===e?(o=this._shortMonthsParse.indexOf(a),-1!==o?o:null):(o=this._longMonthsParse.indexOf(a),-1!==o?o:null):"MMM"===e?(o=this._shortMonthsParse.indexOf(a),-1!==o?o:(o=this._longMonthsParse.indexOf(a),-1!==o?o:null)):(o=this._longMonthsParse.indexOf(a),-1!==o?o:(o=this._shortMonthsParse.indexOf(a),-1!==o?o:null))}handleWeekStrictParse(t,e,n){let a;const r=t.toLocaleLowerCase();if(!this._weekdaysParse){let t;for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],t=0;t<7;++t){const e=Fe(new Date(Date.UTC(2e3,1)),t,null,!0);this._minWeekdaysParse[t]=this.weekdaysMin(e).toLocaleLowerCase(),this._shortWeekdaysParse[t]=this.weekdaysShort(e).toLocaleLowerCase(),this._weekdaysParse[t]=this.weekdays(e,"").toLocaleLowerCase()}}if(l(this._weekdaysParse)&&l(this._shortWeekdaysParse)&&l(this._minWeekdaysParse))return n?"dddd"===e?(a=this._weekdaysParse.indexOf(r),-1!==a?a:null):"ddd"===e?(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:null):(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null):"dddd"===e?(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null))):"ddd"===e?(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:null))):(a=this._minWeekdaysParse.indexOf(r),-1!==a?a:(a=this._weekdaysParse.indexOf(r),-1!==a?a:(a=this._shortWeekdaysParse.indexOf(r),-1!==a?a:null)))}computeMonthsParse(){const t=[],e=[],n=[];let a,r;for(r=0;r<12;r++)a=new Date(2e3,r),t.push(this.monthsShort(a,"")),e.push(this.months(a,"")),n.push(this.months(a,"")),n.push(this.monthsShort(a,""));for(t.sort(Lt),e.sort(Lt),n.sort(Lt),r=0;r<12;r++)t[r]=at(t[r]),e[r]=at(e[r]);for(r=0;r<24;r++)n[r]=at(n[r]);this._monthsRegex=new RegExp(`^(${n.join("|")})`,"i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(`^(${e.join("|")})`,"i"),this._monthsShortStrictRegex=new RegExp(`^(${t.join("|")})`,"i")}computeWeekdaysParse(){const t=[],e=[],n=[],a=[];let r;for(r=0;r<7;r++){const o=Fe(new Date(Date.UTC(2e3,1)),r,null,!0),i=this.weekdaysMin(o),s=this.weekdaysShort(o),c=this.weekdays(o);t.push(i),e.push(s),n.push(c),a.push(i),a.push(s),a.push(c)}for(t.sort(Lt),e.sort(Lt),n.sort(Lt),a.sort(Lt),r=0;r<7;r++)e[r]=at(e[r]),n[r]=at(n[r]),a[r]=at(a[r]);this._weekdaysRegex=new RegExp(`^(${a.join("|")})`,"i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(`^(${n.join("|")})`,"i"),this._weekdaysShortStrictRegex=new RegExp(`^(${e.join("|")})`,"i"),this._weekdaysMinStrictRegex=new RegExp(`^(${t.join("|")})`,"i")}}function Lt(t,e){return e.length-t.length}const qt={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:Rt,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:St,monthsShort:kt,week:{dow:0,doy:6},weekdays:It,weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysShort:Nt,meridiemParse:/[ap]\.?m?\.?/i};function jt(t,e,n){const a=Math.min(t.length,e.length),r=Math.abs(t.length-e.length);let o,i=0;for(o=0;o<a;o++)(n&&t[o]!==e[o]||!n&&f(t[o])!==f(e[o]))&&i++;return i+r}function Ft(t,e){C(null,[t,t.length,!1],null,e)}function zt(t,e){return Bt(t,e.locale).toString()}function Gt(t){return Vt(t).toString()}function Bt(t,e=Xt(),n){return xt(t,e.firstDayOfWeek(),e.firstDayOfYear(),n).year}function Vt(t,e){return xt(t,1,4,e).year}function Yt(t,e){C(t,null,null,(function(t,n){let a=function(t,e={}){return e._isUTC?e._offset||0:function(t){return 15*-Math.round(t.getTimezoneOffset()/15)}(t)}(t,{_isUTC:n.isUTC,_offset:n.offset}),r="+";return a<0&&(a=-a,r="-"),r+y(~~(a/60),2)+e+y(~~a%60,2)}))}const Ht=/([\+\-]|\d\d)/gi,Ut={},Wt={};let Kt;function $t(t){return t?t.toLowerCase().replace("_","-"):t}function Zt(t,e){let n;return t&&(g(e)?n=Xt(t):r(t)&&(n=Jt(t,e)),n&&(Kt=n)),Kt&&Kt._abbr}function Jt(t,e){if(null===e)return delete Ut[t],Kt=Xt("en"),null;if(!e)return;let n=qt;if(e.abbr=t,null!=e.parentLocale){if(null==Ut[e.parentLocale])return Wt[e.parentLocale]||(Wt[e.parentLocale]=[]),Wt[e.parentLocale].push({name:t,config:e}),null;n=Ut[e.parentLocale]._config}return Ut[t]=new Dt(function(t,e){const n=Object.assign({},t);for(const a in e)d(e,a)&&(u(t[a])&&u(e[a])?(n[a]={},Object.assign(n[a],t[a]),Object.assign(n[a],e[a])):null!=e[a]?n[a]=e[a]:delete n[a]);for(const a in t)d(t,a)&&!d(e,a)&&u(t[a])&&(n[a]=Object.assign({},n[a]));return n}(n,e)),Wt[t]&&Wt[t].forEach((function(t){Jt(t.name,t.config)})),Zt(t),Ut[t]}function Xt(t){return Ut.en||(Zt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal(t){const e=t%10;return t+(1===f(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),C("w",["ww",2,!1],"wo",(function(t,e){return function(t,e=Xt(),n){return e.week(t,void 0)}(t,e.locale).toString(10)})),C("W",["WW",2,!1],"Wo",(function(t){return function(t,e){return xt(t,1,4,void 0).week}(t).toString(10)})),h("week","w"),h("isoWeek","W"),et("w",V),et("ww",V,F),et("W",V),et("WW",V,F),it(["w","ww","W","WW"],(function(t,e,n,a){return e[a.substr(0,1)]=f(t),n})),C(null,["gg",2,!1],null,(function(t,e){return(Bt(t,e.locale)%100).toString()})),C(null,["GG",2,!1],null,(function(t){return(Vt(t)%100).toString()})),Ft("gggg",zt),Ft("ggggg",zt),Ft("GGGG",Gt),Ft("GGGGG",Gt),h("weekYear","gg"),h("isoWeekYear","GG"),et("G",Z),et("g",Z),et("GG",V,F),et("gg",V,F),et("GGGG",W,G),et("gggg",W,G),et("GGGGG",K,B),et("ggggg",K,B),it(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,n,a){return e[a.substr(0,2)]=f(t),n})),it(["gg","GG"],(function(t,e,n,a){return e[a]=dt(t),n})),C("Y",null,null,(function(t,e){const n=R(t,e.isUTC);return n<=9999?n.toString(10):`+${n}`})),C(null,["YY",2,!1],null,(function(t,e){return(R(t,e.isUTC)%100).toString(10)})),C(null,["YYYY",4,!1],null,lt),C(null,["YYYYY",5,!1],null,lt),C(null,["YYYYYY",6,!0],null,lt),h("year","y"),et("Y",Z),et("YY",V,F),et("YYYY",W,G),et("YYYYY",K,B),et("YYYYYY",K,B),ot(["YYYYY","YYYYYY"],0),ot("YYYY",(function(t,e,n){return e[0]=2===t.length?dt(t):f(t),n})),ot("YY",(function(t,e,n){return e[0]=dt(t),n})),ot("Y",(function(t,e,n){return e[0]=parseInt(t,10),n})),C("z",null,null,(function(t,e){return e.isUTC?"UTC":""})),C("zz",null,null,(function(t,e){return e.isUTC?"Coordinated Universal Time":""})),C("X",null,null,(function(t){return function(t){return Math.floor(t.valueOf()/1e3)}(t).toString(10)})),C("x",null,null,(function(t){return t.valueOf().toString(10)})),et("x",Z),et("X",X),ot("X",(function(t,e,n){return n._d=new Date(1e3*parseFloat(t)),n})),ot("x",(function(t,e,n){return n._d=new Date(f(t)),n})),C("s",["ss",2,!1],null,(function(t,e){return T(t,e.isUTC).toString(10)})),h("second","s"),et("s",V),et("ss",V,F),ot(["s","ss"],5),C("Q",null,"Qo",(function(t,e){return function(t,e=!1){return Math.ceil((N(t,e)+1)/3)}(t,e.isUTC).toString(10)})),h("quarter","Q"),et("Q",j),ot("Q",(function(t,e,n){return e[1]=3*(f(t)-1),n})),Yt("Z",":"),Yt("ZZ",""),et("Z",J),et("ZZ",J),ot(["Z","ZZ"],(function(t,e,n){return n._useUTC=!0,n._tzm=function(t,e){const n=(e||"").match(t);if(null===n)return null;const a=n[n.length-1].match(Ht)||["-","0","0"],r=60*parseInt(a[1],10)+f(a[2]);return 0===r?0:"+"===a[0]?r:-r}(J,t),n})),C("M",["MM",2,!1],"Mo",(function(t,e){return(N(t,e.isUTC)+1).toString(10)})),C("MMM",null,null,(function(t,e){return e.locale.monthsShort(t,e.format,e.isUTC)})),C("MMMM",null,null,(function(t,e){return e.locale.months(t,e.format,e.isUTC)})),h("month","M"),et("M",V),et("MM",V,F),et("MMM",(function(t,e){return e.monthsShortRegex(t)})),et("MMMM",(function(t,e){return e.monthsRegex(t)})),ot(["M","MM"],(function(t,e,n){return e[1]=f(t)-1,n})),ot(["MMM","MMMM"],(function(t,e,n,a){const r=n._locale.monthsParse(t,a,n._strict);return null!=r?e[1]=r:ct(n).invalidMonth=!!t,n})),C("m",["mm",2,!1],null,(function(t,e){return w(t,e.isUTC).toString(10)})),h("minute","m"),et("m",V),et("mm",V,F),ot(["m","mm"],4),function(){let t;for(C("S",null,null,(function(t,e){return(~~(S(t,e.isUTC)/100)).toString(10)})),C(null,["SS",2,!1],null,(function(t,e){return(~~(S(t,e.isUTC)/10)).toString(10)})),C(null,["SSS",3,!1],null,(function(t,e){return S(t,e.isUTC).toString(10)})),C(null,["SSSS",4,!1],null,(function(t,e){return(10*S(t,e.isUTC)).toString(10)})),C(null,["SSSSS",5,!1],null,(function(t,e){return(100*S(t,e.isUTC)).toString(10)})),C(null,["SSSSSS",6,!1],null,(function(t,e){return(1e3*S(t,e.isUTC)).toString(10)})),C(null,["SSSSSSS",7,!1],null,(function(t,e){return(1e4*S(t,e.isUTC)).toString(10)})),C(null,["SSSSSSSS",8,!1],null,(function(t,e){return(1e5*S(t,e.isUTC)).toString(10)})),C(null,["SSSSSSSSS",9,!1],null,(function(t,e){return(1e6*S(t,e.isUTC)).toString(10)})),h("millisecond","ms"),et("S",U,j),et("SS",U,F),et("SSS",U,z),t="SSSS";t.length<=9;t+="S")et(t,$);function e(t,e,n){return e[6]=f(1e3*parseFloat(`0.${t}`)),n}for(t="S";t.length<=9;t+="S")ot(t,e)}(),function(){function t(t,e){return x(t,e)%12||12}function e(t,e){C(t,null,null,(function(t,n){return n.locale.meridiem(x(t,n.isUTC),w(t,n.isUTC),e)}))}function n(t,e){return e._meridiemParse}C("H",["HH",2,!1],null,(function(t,e){return x(t,e.isUTC).toString(10)})),C("h",["hh",2,!1],null,(function(e,n){return t(e,n.isUTC).toString(10)})),C("k",["kk",2,!1],null,(function(t,e){return function(t,e){return x(t,e)||24}(t,e.isUTC).toString(10)})),C("hmm",null,null,(function(e,n){return`${t(e,n.isUTC)}${y(w(e,n.isUTC),2)}`})),C("hmmss",null,null,(function(e,n){return`${t(e,n.isUTC)}${y(w(e,n.isUTC),2)}${y(T(e,n.isUTC),2)}`})),C("Hmm",null,null,(function(t,e){return`${x(t,e.isUTC)}${y(w(t,e.isUTC),2)}`})),C("Hmmss",null,null,(function(t,e){return`${x(t,e.isUTC)}${y(w(t,e.isUTC),2)}${y(T(t,e.isUTC),2)}`})),e("a",!0),e("A",!1),h("hour","h"),et("a",n),et("A",n),et("H",V),et("h",V),et("k",V),et("HH",V,F),et("hh",V,F),et("kk",V,F),et("hmm",Y),et("hmmss",H),et("Hmm",Y),et("Hmmss",H),ot(["H","HH"],3),ot(["k","kk"],(function(t,e,n){const a=f(t);return e[3]=24===a?0:a,n})),ot(["a","A"],(function(t,e,n){return n._isPm=n._locale.isPM(t),n._meridiem=t,n})),ot(["h","hh"],(function(t,e,n){return e[3]=f(t),ct(n).bigHour=!0,n})),ot("hmm",(function(t,e,n){const a=t.length-2;return e[3]=f(t.substr(0,a)),e[4]=f(t.substr(a)),ct(n).bigHour=!0,n})),ot("hmmss",(function(t,e,n){const a=t.length-4,r=t.length-2;return e[3]=f(t.substr(0,a)),e[4]=f(t.substr(a,2)),e[5]=f(t.substr(r)),ct(n).bigHour=!0,n})),ot("Hmm",(function(t,e,n){const a=t.length-2;return e[3]=f(t.substr(0,a)),e[4]=f(t.substr(a)),n})),ot("Hmmss",(function(t,e,n){const a=t.length-4,r=t.length-2;return e[3]=f(t.substr(0,a)),e[4]=f(t.substr(a,2)),e[5]=f(t.substr(r)),n}))}(),C("DDD",["DDDD",3,!1],"DDDo",(function(t){return Pt(t).toString(10)})),h("dayOfYear","DDD"),et("DDD",U),et("DDDD",z),ot(["DDD","DDDD"],(function(t,e,n){return n._dayOfYear=f(t),n})),C("d",null,"do",(function(t,e){return k(t,e.isUTC).toString(10)})),C("dd",null,null,(function(t,e){return e.locale.weekdaysMin(t,e.format,e.isUTC)})),C("ddd",null,null,(function(t,e){return e.locale.weekdaysShort(t,e.format,e.isUTC)})),C("dddd",null,null,(function(t,e){return e.locale.weekdays(t,e.format,e.isUTC)})),C("e",null,null,(function(t,e){return Ge(t,e.locale,e.isUTC).toString(10)})),C("E",null,null,(function(t,e){return function(t,e){return k(t,e)||7}(t,e.isUTC).toString(10)})),h("day","d"),h("weekday","e"),h("isoWeekday","E"),et("d",V),et("e",V),et("E",V),et("dd",(function(t,e){return e.weekdaysMinRegex(t)})),et("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),et("dddd",(function(t,e){return e.weekdaysRegex(t)})),it(["dd","ddd","dddd"],(function(t,e,n,a){const r=n._locale.weekdaysParse(t,a,n._strict);return null!=r?e.d=r:ct(n).invalidWeekday=!!t,n})),it(["d","e","E"],(function(t,e,n,a){return e[a]=f(t),n})),C("D",["DD",2,!1],"Do",(function(t,e){return I(t,e.isUTC).toString(10)})),h("date","D"),et("D",V),et("DD",V,F),et("Do",(function(t,e){return e._dayOfMonthOrdinalParse||e._ordinalParse})),ot(["D","DD"],2),ot("Do",(function(t,e,n){return e[2]=f(t.match(V)[0]),n}))),t?function(t){let e,n,a=0;for(;a<t.length;){const o=$t(t[a]).split("-");let i=o.length;for(e=$t(t[a+1]),e=e?e.split("-"):null;i>0;){if(r=o.slice(0,i).join("-"),Ut[r]||console.error(`Khronos locale error: please load locale "${r}" before using it`),n=Ut[r],n)return n;if(e&&e.length>=i&&jt(o,e,!0)>=i-1)break;i--}a++}var r;return null}(l(t)?t:[t]):Kt}const Qt=["year","quarter","month","week","day","hours","minutes","seconds","milliseconds"],te=Qt.reduce((t,e)=>(t[e]=!0,t),{});function ee(t){return t<0?Math.floor(t):Math.ceil(t)}function ne(t){return 4800*t/146097}function ae(t){return 146097*t/4800}let re=Math.round;function oe(t,e,n,a,r){return r.relativeTime(e||1,!!n,t,a)}class ie{constructor(t,e={}){this._data={},this._locale=Xt(),this._locale=e&&e._locale||Xt();const n=t.year||0,r=t.quarter||0,o=t.month||0,i=t.week||0,s=t.day||0,c=t.hours||0,l=t.minutes||0,d=t.seconds||0,u=t.milliseconds||0;return this._isValid=function(t){if(Object.keys(t).some(e=>e in te&&null===t[e]||isNaN(t[e])))return!1;let e=!1;for(let n=0;n<Qt.length;++n)if(t[Qt[n]]){if(e)return!1;t[Qt[n]]!==f(t[Qt[n]])&&(e=!0)}return!0}(t),this._milliseconds=+u+1e3*d+60*l*1e3+1e3*c*60*60,this._days=+s+7*i,this._months=+o+3*r+12*n,function(t){let e=t._milliseconds,n=t._days,r=t._months;const o=t._data;e>=0&&n>=0&&r>=0||e<=0&&n<=0&&r<=0||(e+=864e5*ee(ae(r)+n),n=0,r=0),o.milliseconds=e%1e3;const i=a(e/1e3);o.seconds=i%60;const s=a(i/60);o.minutes=s%60;const c=a(s/60);o.hours=c%24,n+=a(c/24);const l=a(ne(n));r+=l,n-=ee(ae(l));const d=a(r/12);return r%=12,o.day=n,o.month=r,o.year=d,t}(this)}isValid(){return this._isValid}humanize(t){if(!this.isValid())return this.localeData().invalidDate;const e=this.localeData();let n=function(t,e,n){const a=Ee(t).abs(),r=re(a.as("s")),o=re(a.as("m")),i=re(a.as("h")),s=re(a.as("d")),c=re(a.as("M")),l=re(a.as("y")),d=r<=44&&["s",r]||r<45&&["ss",r]||o<=1&&["m"]||o<45&&["mm",o]||i<=1&&["h"]||i<22&&["hh",i]||s<=1&&["d"]||s<26&&["dd",s]||c<=1&&["M"]||c<11&&["MM",c]||l<=1&&["y"]||["yy",l];return oe.apply(null,[d[0],d[1],e,+t>0,n])}(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}localeData(){return this._locale}locale(t){return t?(this._locale=Xt(t)||this._locale,this):this._locale._abbr}abs(){const t=Math.abs,e=this._data;return this._milliseconds=t(this._milliseconds),this._days=t(this._days),this._months=t(this._months),e.milliseconds=t(e.milliseconds),e.seconds=t(e.seconds),e.minutes=t(e.minutes),e.hours=t(e.hours),e.month=t(e.month),e.year=t(e.year),this}as(t){if(!this.isValid())return NaN;let e,n;const a=this._milliseconds,r=b(t);if("month"===r||"year"===r)return e=this._days+a/864e5,n=this._months+ne(e),"month"===r?n:n/12;switch(e=this._days+Math.round(ae(this._months)),r){case"week":return e/7+a/6048e5;case"day":return e+a/864e5;case"hours":return 24*e+a/36e5;case"minutes":return 1440*e+a/6e4;case"seconds":return 86400*e+a/1e3;case"milliseconds":return Math.floor(864e5*e)+a;default:throw new Error(`Unknown unit ${r}`)}}valueOf(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*f(this._months/12):NaN}}function se(t){if(null==t._isValid){const e=ct(t),n=Array.prototype.some.call(e.parsedDateParts,(function(t){return null!=t}));let a=!isNaN(t._d&&t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&n);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function ce(t,e){return t._d=new Date(NaN),Object.assign(ct(t),e||{userInvalidated:!0}),t}const le=/^\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)?)?$/,de=/^\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)?)?$/,ue=/Z|[+-]\d\d(?::?\d\d)?/,ge=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/,!0],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/,!0],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/,!0],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/,!0],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/,!0],["YYYYMMDD",/\d{8}/,!0],["GGGG[W]WWE",/\d{4}W\d{3}/,!0],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/,!0]],fe=[["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/]],pe=/^\/?Date\((\-?\d+)/i,me={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},he=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function be(t){if(!r(t._i))return t;const e=t._i,n=le.exec(e)||de.exec(e);let a,o,i,s,c,l;if(!n)return t._isValid=!1,t;for(c=0,l=ge.length;c<l;c++)if(ge[c][1].exec(n[1])){o=ge[c][0],a=!1!==ge[c][2];break}if(null==o)return t._isValid=!1,t;if(n[3]){for(c=0,l=fe.length;c<l;c++)if(fe[c][1].exec(n[3])){i=(n[2]||" ")+fe[c][0];break}if(null==i)return t._isValid=!1,t}if(!a&&null!=i)return t._isValid=!1,t;if(n[4]){if(!ue.exec(n[4]))return t._isValid=!1,t;s="Z"}return t._f=o+(i||"")+(s||""),xe(t)}function ye(t){const e=parseInt(t,10);return e<=49?e+2e3:e}function _e(t){if(!r(t._i))return t;const e=he.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(!e)return function(t){return t._isValid=!1,t}(t);const n=function(t,e,n,a,r,o){const i=[ye(t),kt.indexOf(e),parseInt(n,10),parseInt(a,10),parseInt(r,10)];return o&&i.push(parseInt(o,10)),i}(e[4],e[3],e[2],e[5],e[6],e[7]);return function(t,e,n){return!t||Nt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(ct(n).weekdayMismatch=!0,n._isValid=!1,!1)}(e[1],n,t)?(t._a=n,t._tzm=function(t,e,n){if(t)return me[t];if(e)return 0;{const t=parseInt(n,10),e=t%100;return(t-e)/100*60+e}}(e[8],e[9],e[10]),t._d=P.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),ct(t).rfc2822=!0,t):t}function Oe(t,e,n,a,r=0){const o=Xt(n||"en");if(!o)throw new Error(`Locale "${n}" is not defined, please add it with "defineLocale(...)"`);const c=function(t,e,n,a,r=0){if(!i(t))return n.invalidDate;const o=ve(e,n);return _[o]=_[o]||function(t){const e=t.match(v),n=e.length,a=new Array(n);for(let o=0;o<n;o++)a[o]=O[e[o]]?O[e[o]]:(r=e[o]).match(/\[[\s\S]/)?r.replace(/^\[|\]$/g,""):r.replace(/\\/g,"");var r;return function(e,r,o,i=0){let c="";for(let l=0;l<n;l++)c+=s(a[l])?a[l].call(null,e,{format:t,locale:r,isUTC:o,offset:i}):a[l];return c}}(o),_[o](t,n,a,r)}(t,e||(a?"YYYY-MM-DDTHH:mm:ss[Z]":"YYYY-MM-DDTHH:mm:ssZ"),o,a,r);return c?o.postformat(c):c}function ve(t,e){let n=t,a=5;const r=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,o=t=>e.formatLongDate(t)||t;for(r.lastIndex=0;a>=0&&r.test(n);)n=n.replace(r,o),r.lastIndex=0,a-=1;return n}function Ce(t,e,n){return null!=t?t:null!=e?e:n}function Pe(t){const e=[];let n,a,r,o,i;if(t._d)return t;for(r=function(t){const e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){let e,n,a,r,o,i,s,c;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)o=1,i=4,n=Ce(e.GG,t._a[0],xt(new Date,1,4).year),a=Ce(e.W,1),r=Ce(e.E,1),(r<1||r>7)&&(c=!0);else{o=t._locale._week.dow,i=t._locale._week.doy;const s=xt(new Date,o,i);n=Ce(e.gg,t._a[0],s.year),a=Ce(e.w,s.week),null!=e.d?(r=e.d,(r<0||r>6)&&(c=!0)):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(c=!0)):r=o}a<1||a>wt(n,o,i)?ct(t)._overflowWeeks=!0:null!=c?ct(t)._overflowWeekday=!0:(s=function(t,e,n,a,r){const o=1+7*(e-1)+(7+n-a)%7+Mt(t,a,r);let i,s;return o<=0?(i=t-1,s=ut(i)+o):o>ut(t)?(i=t+1,s=o-ut(t)):(i=t,s=o),{year:i,dayOfYear:s}}(n,a,r,o,i),t._a[0]=s.year,t._dayOfYear=s.dayOfYear)}(t),null!=t._dayOfYear&&(i=Ce(t._a[0],r[0]),(t._dayOfYear>ut(i)||0===t._dayOfYear)&&(ct(t)._overflowDayOfYear=!0),a=new Date(Date.UTC(i,0,t._dayOfYear)),t._a[1]=a.getUTCMonth(),t._a[2]=a.getUTCDate()),n=0;n<3&&null==t._a[n];++n)t._a[n]=e[n]=r[n];for(;n<7;n++)t._a[n]=e[n]=null==t._a[n]?2===n?1:0:t._a[n];return 24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?P:M).apply(null,e),o=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==o&&(ct(t).weekdayMismatch=!0),t}function Me(t){let e;const n=t._a;return n&&-2===ct(t).overflow&&(e=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ft(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,ct(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),ct(t)._overflowWeeks&&-1===e&&(e=7),ct(t)._overflowWeekday&&-1===e&&(e=8),ct(t).overflow=e),t}function xe(t){if("ISO_8601"===t._f)return be(t);if("RFC_2822"===t._f)return _e(t);if(t._a=[],ct(t).empty=!0,l(t._f)||!t._i&&0!==t._i)return t;let e=t._i.toString(),n=0;const a=e.length,r=ve(t._f,t._locale).match(v)||[];let o,i,s,c;for(o=0;o<r.length;o++)i=r[o],s=(e.match(nt(i,t._locale))||[])[0],s&&(c=e.substr(0,e.indexOf(s)),c.length>0&&ct(t).unusedInput.push(c),e=e.slice(e.indexOf(s)+s.length),n+=s.length),O[i]?(s?ct(t).empty=!1:ct(t).unusedTokens.push(i),st(i,s,t)):t._strict&&!s&&ct(t).unusedTokens.push(i);return ct(t).charsLeftOver=a-n,e.length>0&&ct(t).unusedInput.push(e),t._a[3]<=12&&!0===ct(t).bigHour&&t._a[3]>0&&(ct(t).bigHour=void 0),ct(t).parsedDateParts=t._a.slice(0),ct(t).meridiem=t._meridiem,t._a[3]=function(t,e,n){let a=e;if(null==n)return a;if(null!=t.meridiemHour)return t.meridiemHour(a,n);if(null==t.isPM)return a;const r=t.isPM(n);return r&&a<12&&(a+=12),r||12!==a||(a=0),a}(t._locale,t._a[3],t._meridiem),Pe(t),Me(t)}function we(t,e,n,a,i){return o(t)?t:function(t,e,n,a,i){const s={};let f=t;return(u(f)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;let e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(f)||l(f)&&0===f.length)&&(f=void 0),s._useUTC=s._isUTC=i,s._l=n,s._i=f,s._f=e,s._strict=a,function(t){const e=Me(function(t){let e=t._i;const n=t._f;return t._locale=t._locale||Xt(t._l),null===e||void 0===n&&""===e?ce(t,{nullInput:!0}):(r(e)&&(t._i=e=t._locale.preparse(e)),o(e)?(t._d=Ot(e),t):(l(n)?function(t){let e,n,a,r,o;if(!t._f||0===t._f.length)return ct(t).invalidFormat=!0,ce(t);for(o=0;o<t._f.length;o++)r=0,e=Object.assign({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[o],xe(e),se(e)&&(r+=ct(e).charsLeftOver,r+=10*ct(e).unusedTokens.length,ct(e).score=r,(null==a||r<a)&&(a=r,n=e));Object.assign(t,n||e)}(t):n?xe(t):function(t){const e=t._i;if(g(e))t._d=new Date;else if(o(e))t._d=Ot(e);else if(r(e))!function(t){if(!r(t._i))return t;const e=pe.exec(t._i);null!==e?t._d=new Date(+e[1]):(be(t),!1!==t._isValid||(delete t._isValid,_e(t),!1!==t._isValid||(delete t._isValid,ce(t))))}(t);else if(l(e)&&e.length){const n=e.slice(0);t._a=n.map(t=>r(t)?parseInt(t,10):t),Pe(t)}else if(u(e))!function(t){if(t._d)return t;const e=t._i;if(u(e)){const n=function(t){const e={};let n,a;for(a in t)d(t,a)&&(n=b(a),n&&(e[n]=t[a]));return e}(e);t._a=[n.year,n.month,n.day,n.hours,n.minutes,n.seconds,n.milliseconds].map(t=>r(t)?parseInt(t,10):t)}Pe(t)}(t);else{if(!c(e))return ce(t);t._d=new Date(e)}}(t),se(t)||(t._d=null),t))}(t));return e._d=new Date(null!=e._d?e._d.getTime():NaN),se(Object.assign({},e,{_isValid:null}))||(e._d=new Date(NaN)),e}(s)}(t,e,n,a,i)._d}function Te(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Se(t,e,n="milliseconds"){return!(!t||!e)&&("milliseconds"===n?t.valueOf()>e.valueOf():e.valueOf()<vt(t,n).valueOf())}function ke(t,e,n="milliseconds"){return!(!t||!e)&&("milliseconds"===n?t.valueOf()<e.valueOf():Ct(t,n).valueOf()<e.valueOf())}function Ie(t,e){return!(void 0===e||!e||!e.length)&&e.some(e=>e===t.getDay())}function Ne(t,e,n="milliseconds"){if(!t||!e)return!1;if("milliseconds"===n)return t.valueOf()===e.valueOf();const a=e.valueOf();return vt(t,n).valueOf()<=a&&a<=Ct(t,n).valueOf()}const Re=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ae=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ee(t,e,n={}){const a=function(t,e){if(null==t)return{};if(t instanceof ie)return{milliseconds:t._milliseconds,day:t._days,month:t._months};if(c(t))return e?{[e]:t}:{milliseconds:t};if(r(t)){let e=Re.exec(t);if(e){const t="-"===e[1]?-1:1;return{year:0,day:f(e[2])*t,hours:f(e[3])*t,minutes:f(e[4])*t,seconds:f(e[5])*t,milliseconds:f(Te(1e3*f(e[6])))*t}}if(e=Ae.exec(t),e){const t="-"===e[1]?-1:1;return{year:De(e[2],t),month:De(e[3],t),week:De(e[4],t),day:De(e[5],t),hours:De(e[6],t),minutes:De(e[7],t),seconds:De(e[8],t)}}}if(u(t)&&("from"in t||"to"in t)){const e=function(t,e){if(!i(t)||!i(e))return{milliseconds:0,months:0};let n;const a=function(t,e,n={}){if(!n._isUTC)return t;const a=Ot(e),r=6e4*(n._offset||0),o=t.valueOf()-a.valueOf()+r;return a.setTime(a.valueOf()+o),a}(e,t,{_offset:t.getTimezoneOffset()});return ke(t,a)?n=Le(t,a):(n=Le(a,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n}(we(t.from),we(t.to));return{milliseconds:e.milliseconds,month:e.months}}return t}(t,e);return new ie(a,n)}function De(t,e){const n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Le(t,e){const n={milliseconds:0,months:0};return n.months=N(e)-N(t)+12*(R(e)-R(t)),Se(qe(Ot(t),n.months,"month"),e)&&--n.months,n.milliseconds=+e-+qe(Ot(t),n.months,"month"),n}function qe(t,e,n,a){return je(t,Ee(e,n),1,a)}function je(t,e,n,a){const r=e._milliseconds,o=Te(e._days),i=Te(e._months);return i&&yt(t,N(t,a)+i*n,a),o&&_t(t,I(t,a)+o*n,a),r&&function(t,e){t.setTime(e)}(t,function(t){return t.getTime()}(t)+r*n),Ot(t)}function Fe(t,e,n=Xt(),a){const o=k(t,a);return qe(t,function(t,e){if(!r(t))return t;const n=parseInt(t,10);if(!isNaN(n))return n;const a=e.weekdaysParse(t);return c(a)?a:null}(e,n)-o,"day")}function ze(t,e){return k(t,e)}function Ge(t,e=Xt(),n){return(k(t,n)+7-e.firstDayOfWeek())%7}const Be="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),Ve="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");function Ye(t){return t>1&&t<5&&1!=~~(t/10)}function He(t,e,n,a){const r=t+" ";switch(n){case"s":return e||a?"pár sekund":"pár sekundami";case"ss":return e||a?r+(Ye(t)?"sekundy":"sekund"):r+"sekundami";case"m":return e?"minuta":a?"minutu":"minutou";case"mm":return e||a?r+(Ye(t)?"minuty":"minut"):r+"minutami";case"h":return e?"hodina":a?"hodinu":"hodinou";case"hh":return e||a?r+(Ye(t)?"hodiny":"hodin"):r+"hodinami";case"d":return e||a?"den":"dnem";case"dd":return e||a?r+(Ye(t)?"dny":"dní"):r+"dny";case"M":return e||a?"měsíc":"měsícem";case"MM":return e||a?r+(Ye(t)?"měsíce":"měsíců"):r+"měsíci";case"y":return e||a?"rok":"rokem";case"yy":return e||a?r+(Ye(t)?"roky":"let"):r+"lety"}}const Ue=function(t){let e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},We=function(t){let e,n=[];for(e=0;e<12;e++)n[e]=new RegExp("^"+t[e]+"$","i");return n},Ke={abbr:"cs",months:Be,monthsShort:Ve,monthsParse:function(t,e){let n,a=[];for(n=0;n<12;n++)a[n]=new RegExp("^"+t[n]+"$|^"+e[n]+"$","i");return a}(Be,Ve),shortMonthsParse:Ue(Ve),longMonthsParse:We(Be),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_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ítra v] LT",nextWeek(t){switch(ze(t)){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek(t){switch(ze(t)){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:He,ss:He,m:He,mm:He,h:He,hh:He,d:He,dd:He,M:He,MM:He,y:He,yy:He},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};function $e(t,e,n,a){const r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}const Ze={abbr:"de",months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_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:$e,mm:"%d Minuten",h:$e,hh:"%d Stunden",d:$e,dd:$e,M:$e,MM:$e,y:$e,yy:$e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}};let Je="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),Xe="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),Qe=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],tn=/^(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;const en={abbr:"es",months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:(t,e,n)=>t?/-MMM-/.test(e)?Xe[N(t,n)]:Je[N(t,n)]:Je,monthsRegex:tn,monthsShortRegex:tn,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:Qe,longMonthsParse:Qe,shortMonthsParse:Qe,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".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:t=>"[hoy a la"+(1!==x(t)?"s":"")+"] LT",nextDay:t=>"[mañana a la"+(1!==x(t)?"s":"")+"] LT",nextWeek:t=>"dddd [a la"+(1!==x(t)?"s":"")+"] LT",lastDay:t=>"[ayer a la"+(1!==x(t)?"s":"")+"] LT",lastWeek:t=>"[el] dddd [pasado a la"+(1!==x(t)?"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ía",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}},nn={abbr:"fr",months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".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’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] 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(t,e){const n=Number(t);switch(e){case"D":return n+(1===n?"er":"");default:case"M":case"Q":case"DDD":case"d":return n+(1===n?"er":"e");case"w":case"W":return n+(1===n?"re":"e")}},week:{dow:1,doy:4}},an={abbr:"id",months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_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:(t,e)=>(12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0),meridiem:(t,e,n)=>t<11?"pagi":t<15?"siang":t<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}},rn={abbr:"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ì_martedì_mercoledì_giovedì_venerdì_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(t){switch(ze(t)){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:t=>(/^[0-9].+$/.test(t.toString(10))?"tra":"in")+" "+t,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}º/,ordinal:"%dº",week:{dow:1,doy:4}},on={abbr:"ja",months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 HH:mm dddd",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日 HH:mm dddd"},meridiemParse:/午前|午後/i,isPM:t=>"午後"===t,meridiem:(t,e,n)=>t<12?"午前":"午後",calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";default:return t.toString(10)}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}},sn={abbr:"ko",months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),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일 dddd A h:mm",l:"YYYY.MM.DD",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t.toString(10)}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}};let cn="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),ln="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");function dn(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function un(t,e,n){let a=t+" ";switch(n){case"ss":return a+(dn(t)?"sekundy":"sekund");case"m":return e?"minuta":"minutę";case"mm":return a+(dn(t)?"minuty":"minut");case"h":return e?"godzina":"godzinę";case"hh":return a+(dn(t)?"godziny":"godzin");case"MM":return a+(dn(t)?"miesiące":"miesięcy");case"yy":return a+(dn(t)?"lata":"lat")}}const gn={abbr:"pl",months:(t,e,n)=>t?""===e?"("+ln[N(t,n)]+"|"+cn[N(t,n)]+")":/D MMMM/.test(e)?ln[N(t,n)]:cn[N(t,n)]:cn,monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_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ś o] LT",nextDay:"[Jutro o] LT",nextWeek(t){switch(ze(t)){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 5:return"[W piątek o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek(t){switch(ze(t)){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 4:return"[W zeszłą czwartek o] LT";case 5:return"[W zeszłą piątek o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:un,m:un,mm:un,h:un,hh:un,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:un,y:"rok",yy:un},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}},fn={abbr:"pt-br",months:"Janeiro_Fevereiro_Março_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ça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".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 [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:t=>0===ze(t)||6===ze(t)?"[Último] dddd [às] LT":"[Última] dddd [às] LT",sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrá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ês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"},pn={abbr:"zh-cn",months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:(t,e)=>(12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12),meridiem(t,e,n){let a=100*t+e;return a<600?"凌晨":a<900?"早上":a<1130?"上午":a<1230?"中午":a<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal(t,e){const n=Number(t);switch(e){case"d":case"D":case"DDD":return n+"日";case"M":return n+"月";case"w":case"W":return n+"周";default:return n.toString()}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}}},xrYK:function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},"xs/l":function(t,e,n){var a=n("TYy9"),r=n("Ioao"),o=n("wclG");t.exports=function(t){return o(r(t,void 0,a),t+"")}},xs3f:function(t,e,n){var a=n("2oRo"),r=n("zk60"),o=a["__core-js_shared__"]||r("__core-js_shared__",{});t.exports=o},y1pI:function(t,e,n){var a=n("ljhN");t.exports=function(t,e){for(var n=t.length;n--;)if(a(t[n][0],e))return n;return-1}},y9Z7:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.selectRows=function(t,e,n){var a=n(e,t);return a>-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var o=n<a,i=0;i<e.length;i++){var s;s=o?{start:n,end:a}:{start:a,end:n+1},(o&&i<=a&&i>=n||!o&&i>=a&&i<=n)&&i>=s.start&&i<=s.end&&t.push(e[i])}return t}},y9jh:function(t,e,n){var a;"undefined"!=typeof self&&self,a=function(t,e,n,a){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var r=e[a]={i:a,l:!1,exports:{}};return t[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:a})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s="./src/index.ts")}({"./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss":function(t,e,n){(t.exports=n("./node_modules/css-loader/lib/css-base.js")(!1)).push([t.i,".ngx-datatable {\n  display: block;\n  overflow: hidden;\n  -webkit-box-pack: center;\n      -ms-flex-pack: center;\n          justify-content: center;\n  position: relative;\n  -webkit-transform: translate3d(0, 0, 0);\n  /**\n   * Vertical Scrolling Adjustments\n   */\n  /**\n   * Horizontal Scrolling Adjustments\n   */\n  /**\n   * Fixed Header Height Adjustments\n   */\n  /**\n   * Fixed row height adjustments\n   */\n  /**\n   * Shared Styles\n   */\n  /**\n   * Header Styles\n   */\n  /**\n   * Body Styles\n   */\n  /**\n   * Footer Styles\n   */ }\n  .ngx-datatable [hidden] {\n    display: none !important; }\n  .ngx-datatable *, .ngx-datatable *:before, .ngx-datatable *:after {\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box; }\n  .ngx-datatable.scroll-vertical .datatable-body {\n    overflow-y: auto; }\n  .ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper {\n    position: absolute; }\n  .ngx-datatable.scroll-horz .datatable-body {\n    overflow-x: auto;\n    -webkit-overflow-scrolling: touch; }\n  .ngx-datatable.fixed-header .datatable-header .datatable-header-inner {\n    white-space: nowrap; }\n    .ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell {\n      white-space: nowrap;\n      overflow: hidden;\n      text-overflow: ellipsis; }\n  .ngx-datatable.fixed-row .datatable-scroll {\n    white-space: nowrap; }\n    .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row {\n      white-space: nowrap; }\n      .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell {\n        overflow: hidden;\n        white-space: nowrap;\n        text-overflow: ellipsis; }\n      .ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell {\n        overflow: hidden;\n        white-space: nowrap;\n        text-overflow: ellipsis; }\n  .ngx-datatable .datatable-body-row,\n  .ngx-datatable .datatable-row-center,\n  .ngx-datatable .datatable-header-inner {\n    display: -webkit-box;\n    display: -ms-flexbox;\n    display: flex;\n    -webkit-box-orient: horizontal;\n    -webkit-box-direction: normal;\n        -ms-flex-direction: row;\n            flex-direction: row;\n    -ms-flex-flow: row;\n    -o-flex-flow: row;\n    flex-flow: row; }\n  .ngx-datatable .datatable-body-cell,\n  .ngx-datatable .datatable-header-cell {\n    overflow-x: hidden;\n    vertical-align: top;\n    display: inline-block;\n    line-height: 1.625; }\n    .ngx-datatable .datatable-body-cell:focus,\n    .ngx-datatable .datatable-header-cell:focus {\n      outline: none; }\n  .ngx-datatable .datatable-row-left,\n  .ngx-datatable .datatable-row-right {\n    z-index: 9; }\n  .ngx-datatable .datatable-row-left,\n  .ngx-datatable .datatable-row-center,\n  .ngx-datatable .datatable-row-group,\n  .ngx-datatable .datatable-row-right {\n    position: relative; }\n  .ngx-datatable .datatable-header {\n    display: block;\n    overflow: hidden; }\n    .ngx-datatable .datatable-header .datatable-header-inner {\n      -webkit-box-align: stretch;\n          -ms-flex-align: stretch;\n              align-items: stretch;\n      -webkit-align-items: stretch; }\n    .ngx-datatable .datatable-header .datatable-header-cell {\n      position: relative;\n      display: inline-block; }\n      .ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper {\n        cursor: pointer; }\n      .ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper {\n        cursor: move; }\n      .ngx-datatable .datatable-header .datatable-header-cell .sort-btn {\n        line-height: 100%;\n        vertical-align: middle;\n        display: inline-block;\n        cursor: pointer; }\n      .ngx-datatable .datatable-header .datatable-header-cell .resize-handle, .ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable {\n        display: inline-block;\n        position: absolute;\n        right: 0;\n        top: 0;\n        bottom: 0;\n        width: 5px;\n        padding: 0 4px;\n        visibility: hidden; }\n      .ngx-datatable .datatable-header .datatable-header-cell .resize-handle {\n        cursor: ew-resize; }\n      .ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle {\n        visibility: visible; }\n      .ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable {\n        visibility: visible; }\n      .ngx-datatable .datatable-header .datatable-header-cell .targetMarker {\n        position: absolute;\n        top: 0;\n        bottom: 0; }\n        .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft {\n          right: 0; }\n        .ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight {\n          left: 0; }\n      .ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap {\n        height: inherit; }\n  .ngx-datatable .datatable-body {\n    position: relative;\n    z-index: 10;\n    display: block; }\n    .ngx-datatable .datatable-body .datatable-scroll {\n      display: inline-block; }\n    .ngx-datatable .datatable-body .datatable-row-detail {\n      overflow-y: hidden; }\n    .ngx-datatable .datatable-body .datatable-row-wrapper {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      -webkit-box-orient: vertical;\n      -webkit-box-direction: normal;\n      -ms-flex-direction: column;\n      flex-direction: column; }\n    .ngx-datatable .datatable-body .datatable-body-row {\n      outline: none; }\n      .ngx-datatable .datatable-body .datatable-body-row > div {\n        display: -webkit-box;\n        display: -ms-flexbox;\n        display: flex; }\n  .ngx-datatable .datatable-footer {\n    display: block;\n    width: 100%; }\n    .ngx-datatable .datatable-footer .datatable-footer-inner {\n      display: -webkit-box;\n      display: -ms-flexbox;\n      display: flex;\n      -webkit-box-align: center;\n          -ms-flex-align: center;\n              align-items: center;\n      width: 100%; }\n    .ngx-datatable .datatable-footer .selected-count .page-count {\n      -webkit-box-flex: 1;\n          -ms-flex: 1 1 40%;\n              flex: 1 1 40%; }\n    .ngx-datatable .datatable-footer .selected-count .datatable-pager {\n      -webkit-box-flex: 1;\n          -ms-flex: 1 1 60%;\n              flex: 1 1 60%; }\n    .ngx-datatable .datatable-footer .page-count {\n      -webkit-box-flex: 1;\n          -ms-flex: 1 1 20%;\n              flex: 1 1 20%; }\n    .ngx-datatable .datatable-footer .datatable-pager {\n      -webkit-box-flex: 1;\n          -ms-flex: 1 1 80%;\n              flex: 1 1 80%;\n      text-align: right; }\n      .ngx-datatable .datatable-footer .datatable-pager .pager,\n      .ngx-datatable .datatable-footer .datatable-pager .pager li {\n        padding: 0;\n        margin: 0;\n        display: inline-block;\n        list-style: none; }\n      .ngx-datatable .datatable-footer .datatable-pager .pager li, .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n        outline: none; }\n      .ngx-datatable .datatable-footer .datatable-pager .pager li a {\n        cursor: pointer;\n        display: inline-block; }\n      .ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a {\n        cursor: not-allowed; }\n",""])},"./node_modules/css-loader/lib/css-base.js":function(t,e){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n=t[1]||"",a=t[3];if(!a)return n;if(e&&"function"==typeof btoa){var r="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */",o=a.sources.map((function(t){return"/*# sourceURL="+a.sourceRoot+t+" */"}));return[n].concat(o).concat([r]).join("\n")}return[n].join("\n")}(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n})).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var a={},r=0;r<this.length;r++){var o=this[r][0];"number"==typeof o&&(a[o]=!0)}for(r=0;r<t.length;r++){var i=t[r];"number"==typeof i[0]&&a[i[0]]||(n&&!i[2]?i[2]=n:n&&(i[2]="("+i[2]+") and ("+n+")"),e.push(i))}},e}},"./node_modules/webpack/buildin/global.js":function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(a){"object"==typeof window&&(n=window)}t.exports=n},"./src/components/body/body-cell.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/utils/index.ts"),s=n("./src/types/index.ts");n("./src/events.ts"),e.DataTableBodyCellComponent=function(){function t(t,e){this.cd=e,this.activate=new o.EventEmitter,this.treeAction=new o.EventEmitter,this.isFocused=!1,this.onCheckboxChangeFn=this.onCheckboxChange.bind(this),this.activateFn=this.activate.emit.bind(this.activate),this.cellContext={onCheckboxChangeFn:this.onCheckboxChangeFn,activateFn:this.activateFn,row:this.row,group:this.group,value:this.value,column:this.column,rowHeight:this.rowHeight,isSelected:this.isSelected,rowIndex:this.rowIndex,treeStatus:this.treeStatus,onTreeAction:this.onTreeAction.bind(this)},this._element=t.nativeElement}return Object.defineProperty(t.prototype,"group",{get:function(){return this._group},set:function(t){this._group=t,this.cellContext.group=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowHeight",{get:function(){return this._rowHeight},set:function(t){this._rowHeight=t,this.cellContext.rowHeight=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelected",{get:function(){return this._isSelected},set:function(t){this._isSelected=t,this.cellContext.isSelected=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.cellContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.cellContext.rowIndex=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"row",{get:function(){return this._row},set:function(t){this._row=t,this.cellContext.row=t,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.calcSortDir=this.calcSortDir(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"treeStatus",{get:function(){return this._treeStatus},set:function(t){this._treeStatus="collapsed"!==t&&"expanded"!==t&&"loading"!==t&&"disabled"!==t?"collapsed":t,this.cellContext.treeStatus=this._treeStatus,this.checkValueUpdates(),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-body-cell";if(this.column.cellClass)if("string"==typeof this.column.cellClass)t+=" "+this.column.cellClass;else if("function"==typeof this.column.cellClass){var e=this.column.cellClass({row:this.row,group:this.group,column:this.column,value:this.value,rowHeight:this.rowHeight});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}return this.sortDir||(t+=" sort-active"),this.isFocused&&(t+=" active"),this.sortDir===s.SortDirection.asc&&(t+=" sort-asc"),this.sortDir===s.SortDirection.desc&&(t+=" sort-desc"),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"height",{get:function(){var t=this.rowHeight;return isNaN(t)?t:t+"px"},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.checkValueUpdates()},t.prototype.ngOnDestroy=function(){this.cellTemplate&&this.cellTemplate.clear()},t.prototype.checkValueUpdates=function(){var t="";if(this.row&&this.column){var e=this.column.$$valueGetter(this.row,this.column.prop),n=this.column.pipe;n?t=n.transform(e):void 0!==t&&(t=e)}else t="";this.value!==t&&(this.value=t,this.cellContext.value=t,this.sanitizedValue=null!=t?this.stripHtml(t):t,this.cd.markForCheck())},t.prototype.onFocus=function(){this.isFocused=!0},t.prototype.onBlur=function(){this.isFocused=!1},t.prototype.onClick=function(t){this.activate.emit({type:"click",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})},t.prototype.onDblClick=function(t){this.activate.emit({type:"dblclick",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element})},t.prototype.onKeyDown=function(t){var e=t.keyCode;(e===i.Keys.return||e===i.Keys.down||e===i.Keys.up||e===i.Keys.left||e===i.Keys.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element}))},t.prototype.onCheckboxChange=function(t){this.activate.emit({type:"checkbox",event:t,row:this.row,group:this.group,rowHeight:this.rowHeight,column:this.column,value:this.value,cellElement:this._element,treeStatus:"collapsed"})},t.prototype.calcSortDir=function(t){var e=this;if(t){var n=t.find((function(t){return t.prop===e.column.prop}));return n?n.dir:void 0}},t.prototype.stripHtml=function(t){return t.replace?t.replace(/<\/?[^>]+(>|$)/g,""):t},t.prototype.onTreeAction=function(){this.treeAction.emit(this.row)},t.prototype.calcLeftMargin=function(t,e){return t.isTreeColumn?e.level*(null!=t.treeLevelIndent?t.treeLevelIndent:50):0},a([o.Input(),r("design:type",Function)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"group",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowHeight",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"isSelected",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"row",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([o.Input(),r("design:type",String),r("design:paramtypes",[String])],t.prototype,"treeStatus",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.ViewChild("cellTemplate",{read:o.ViewContainerRef,static:!0}),r("design:type",o.ViewContainerRef)],t.prototype,"cellTemplate",void 0),a([o.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([o.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([o.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([o.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([o.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"height",null),a([o.HostListener("focus"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onFocus",null),a([o.HostListener("blur"),r("design:type",Function),r("design:paramtypes",[]),r("design:returntype",void 0)],t.prototype,"onBlur",null),a([o.HostListener("click",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onClick",null),a([o.HostListener("dblclick",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onDblClick",null),a([o.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([o.Component({selector:"datatable-body-cell",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n    <div\n      class="datatable-body-cell-label"\n      [style.margin-left.px]="calcLeftMargin(column, row)"\n    >\n      <label\n        *ngIf="\n          column.checkboxable &&\n          (!displayCheck || displayCheck(row, column, value))\n        "\n        class="datatable-checkbox"\n      >\n        <input\n          type="checkbox"\n          [checked]="isSelected"\n          (click)="onCheckboxChange($event)"\n        />\n      </label>\n      <ng-container *ngIf="column.isTreeColumn">\n        <button\n          *ngIf="!column.treeToggleTemplate"\n          class="datatable-tree-button"\n          [disabled]="treeStatus === \'disabled\'"\n          (click)="onTreeAction()"\n        >\n          <span>\n            <i\n              *ngIf="treeStatus === \'loading\'"\n              class="icon datatable-icon-collapse"\n            ></i>\n            <i\n              *ngIf="treeStatus === \'collapsed\'"\n              class="icon datatable-icon-up"\n            ></i>\n            <i\n              *ngIf="treeStatus === \'expanded\' || treeStatus === \'disabled\'"\n              class="icon datatable-icon-down"\n            ></i>\n          </span>\n        </button>\n        <ng-template\n          *ngIf="column.treeToggleTemplate"\n          [ngTemplateOutlet]="column.treeToggleTemplate"\n          [ngTemplateOutletContext]="{ cellContext: cellContext }"\n        >\n        </ng-template>\n      </ng-container>\n\n      <span\n        *ngIf="!column.cellTemplate"\n        [title]="sanitizedValue"\n        [innerHTML]="value"\n      >\n      </span>\n      <ng-template\n        #cellTemplate\n        *ngIf="column.cellTemplate"\n        [ngTemplateOutlet]="column.cellTemplate"\n        [ngTemplateOutletContext]="cellContext"\n      >\n      </ng-template>\n    </div>\n  '}),r("design:paramtypes",[o.ElementRef,o.ChangeDetectorRef])],t)}()},"./src/components/body/body-group-header-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DatatableGroupHeaderTemplateDirective=function(){return a([o.Directive({selector:"[ngx-datatable-group-header-template]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/body/body-group-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/components/body/body-group-header-template.directive.ts");e.DatatableGroupHeaderDirective=function(){function t(){this.rowHeight=0,this.toggle=new o.EventEmitter}return t.prototype.toggleExpandGroup=function(t){this.toggle.emit({type:"group",value:t})},t.prototype.expandAllGroups=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllGroups=function(){this.toggle.emit({type:"all",value:!1})},a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),o.ContentChild(i.DatatableGroupHeaderTemplateDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"toggle",void 0),a([o.Directive({selector:"ngx-datatable-group-header"})],t)}()},"./src/components/body/body-row-wrapper.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");n("./src/events.ts"),e.DataTableRowWrapperComponent=function(){function t(t,e){this.cd=t,this.differs=e,this.rowContextmenu=new o.EventEmitter(!1),this.groupContext={group:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this.rowContext={row:this.row,expanded:this.expanded,rowIndex:this.rowIndex},this._expanded=!1,this.rowDiffer=e.find({}).create()}return Object.defineProperty(t.prototype,"rowIndex",{get:function(){return this._rowIndex},set:function(t){this._rowIndex=t,this.rowContext.rowIndex=t,this.groupContext.rowIndex=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"expanded",{get:function(){return this._expanded},set:function(t){this._expanded=t,this.groupContext.expanded=t,this.rowContext.expanded=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.row)&&(this.rowContext.row=this.row,this.groupContext.group=this.row,this.cd.markForCheck())},t.prototype.onContextmenu=function(t){this.rowContextmenu.emit({event:t,row:this.row})},t.prototype.getGroupHeaderStyle=function(){var t={};return t.transform="translate3d("+this.offsetX+"px, 0px, 0px)",t["backface-visibility"]="hidden",t.width=this.innerWidth,t},a([o.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"detailRowHeight",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowIndex",null),a([o.Input(),r("design:type",Boolean),r("design:paramtypes",[Boolean])],t.prototype,"expanded",null),a([o.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([o.Component({selector:"datatable-row-wrapper",changeDetection:o.ChangeDetectionStrategy.OnPush,template:'\n    <div \n      *ngIf="groupHeader && groupHeader.template"\n      class="datatable-group-header"\n      [ngStyle]="getGroupHeaderStyle()">\n      <ng-template\n        *ngIf="groupHeader && groupHeader.template"\n        [ngTemplateOutlet]="groupHeader.template"\n        [ngTemplateOutletContext]="groupContext">\n      </ng-template>\n    </div>\n    <ng-content \n      *ngIf="(groupHeader && groupHeader.template && expanded) || \n             (!groupHeader || !groupHeader.template)">\n    </ng-content>\n    <div\n      *ngIf="rowDetail && rowDetail.template && expanded"\n      [style.height.px]="detailRowHeight"\n      class="datatable-row-detail">\n      <ng-template\n        *ngIf="rowDetail && rowDetail.template"\n        [ngTemplateOutlet]="rowDetail.template"\n        [ngTemplateOutletContext]="rowContext">\n      </ng-template>\n    </div>\n  ',host:{class:"datatable-row-wrapper"}}),r("design:paramtypes",[o.ChangeDetectorRef,o.KeyValueDiffers])],t)}()},"./src/components/body/body-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/utils/index.ts"),c=n("./src/services/index.ts");n("./src/events.ts"),e.DataTableBodyRowComponent=function(){function t(t,e,n,a){this.differs=t,this.scrollbarHelper=e,this.cd=n,this.treeStatus="collapsed",this.activate=new i.EventEmitter,this.treeAction=new i.EventEmitter,this._groupStyles={left:{},center:{},right:{}},this._element=a.nativeElement,this._rowDiffer=t.find({}).create()}return Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t,this.recalculateColumns(t),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._columns){var e=s.columnsByPin(this._columns);this._columnGroupWidths=s.columnGroupWidths(e,e)}this._innerWidth=t,this.recalculateColumns(),this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.buildStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"cssClass",{get:function(){var t="datatable-body-row";if(this.isSelected&&(t+=" active"),this.rowIndex%2!=0&&(t+=" datatable-row-odd"),this.rowIndex%2==0&&(t+=" datatable-row-even"),this.rowClass){var e=this.rowClass(this.row);if("string"==typeof e)t+=" "+e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}return t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnsTotalWidths",{get:function(){return this._columnGroupWidths.total},enumerable:!0,configurable:!0}),t.prototype.ngDoCheck=function(){this._rowDiffer.diff(this.row)&&this.cd.markForCheck()},t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.buildStylesByGroup=function(){this._groupStyles.left=this.calcStylesByGroup("left"),this._groupStyles.center=this.calcStylesByGroup("center"),this._groupStyles.right=this.calcStylesByGroup("right"),this.cd.markForCheck()},t.prototype.calcStylesByGroup=function(t){var e=this._columnGroupWidths,n=this.offsetX,a={width:e[t]+"px"};if("left"===t)s.translateXY(a,n,0);else if("right"===t){var r=parseInt(this.innerWidth+"",0);s.translateXY(a,-1*(e.total-r-n+this.scrollbarHelper.width),0)}return a},t.prototype.onActivate=function(t,e){t.cellIndex=e,t.rowElement=this._element,this.activate.emit(t)},t.prototype.onKeyDown=function(t){var e=t.keyCode;(e===s.Keys.return||e===s.Keys.down||e===s.Keys.up||e===s.Keys.left||e===s.Keys.right)&&t.target===this._element&&(t.preventDefault(),t.stopPropagation(),this.activate.emit({type:"keydown",event:t,row:this.row,rowElement:this._element}))},t.prototype.onMouseenter=function(t){this.activate.emit({type:"mouseenter",event:t,row:this.row,rowElement:this._element})},t.prototype.recalculateColumns=function(t){void 0===t&&(t=this.columns),this._columns=t;var e=s.columnsByPin(this._columns);this._columnsByPin=s.columnsByPinArr(this._columns),this._columnGroupWidths=s.columnGroupWidths(e,this._columns)},t.prototype.onTreeAction=function(){this.treeAction.emit()},a([i.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"innerWidth",null),a([i.Input(),r("design:type",Boolean)],t.prototype,"expanded",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"row",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"group",void 0),a([i.Input(),r("design:type",Boolean)],t.prototype,"isSelected",void 0),a([i.Input(),r("design:type",Number)],t.prototype,"rowIndex",void 0),a([i.Input(),r("design:type",Object)],t.prototype,"displayCheck",void 0),a([i.Input(),r("design:type",String)],t.prototype,"treeStatus",void 0),a([i.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offsetX",null),a([i.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"cssClass",null),a([i.HostBinding("style.height.px"),i.Input(),r("design:type",Number)],t.prototype,"rowHeight",void 0),a([i.HostBinding("style.width.px"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"columnsTotalWidths",null),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"activate",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"treeAction",void 0),a([i.HostListener("keydown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onKeyDown",null),a([i.HostListener("mouseenter",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseenter",null),a([i.Component({selector:"datatable-body-row",changeDetection:i.ChangeDetectionStrategy.OnPush,template:'\n    <div\n      *ngFor="let colGroup of _columnsByPin; let i = index; trackBy: trackByGroups"\n      class="datatable-row-{{colGroup.type}} datatable-row-group"\n      [ngStyle]="_groupStyles[colGroup.type]">\n      <datatable-body-cell\n        *ngFor="let column of colGroup.columns; let ii = index; trackBy: columnTrackingFn"\n        tabindex="-1"\n        [row]="row"\n        [group]="group"\n        [expanded]="expanded"\n        [isSelected]="isSelected"\n        [rowIndex]="rowIndex"\n        [column]="column"\n        [rowHeight]="rowHeight"\n        [displayCheck]="displayCheck"\n        [treeStatus]="treeStatus"\n        (activate)="onActivate($event, ii)"\n        (treeAction)="onTreeAction()">\n      </datatable-body-cell>\n    </div>\n  '}),o(1,i.SkipSelf()),r("design:paramtypes",[i.KeyValueDiffers,c.ScrollbarHelper,i.ChangeDetectorRef,i.ElementRef])],t)}()},"./src/components/body/body.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/utils/index.ts"),s=(n("./src/types/index.ts"),n("./src/components/body/scroller.component.ts"));e.DataTableBodyComponent=function(){function t(t){var e=this;this.cd=t,this.selected=[],this.scroll=new o.EventEmitter,this.page=new o.EventEmitter,this.activate=new o.EventEmitter,this.select=new o.EventEmitter,this.detailToggle=new o.EventEmitter,this.rowContextmenu=new o.EventEmitter(!1),this.treeAction=new o.EventEmitter,this.rowHeightsCache=new i.RowHeightCache,this.temp=[],this.offsetY=0,this.indexes={},this.rowIndexes=new Map,this.rowExpansions=new Map,this.getDetailRowHeight=function(t,n){if(!e.rowDetail)return 0;var a=e.rowDetail.rowHeight;return"function"==typeof a?a(t,n):a},this.rowTrackingFn=function(t,n){var a=e.getRowIndex(n);return e.trackByProp?n[e.trackByProp]:a}}return Object.defineProperty(t.prototype,"pageSize",{get:function(){return this._pageSize},set:function(t){this._pageSize=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,this.rowExpansions.clear(),this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=i.columnsByPin(t);this.columnGroupWidths=i.columnGroupWidths(e,t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return this._offset},set:function(t){this._offset=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"rowCount",{get:function(){return this._rowCount},set:function(t){this._rowCount=t,this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"bodyHeight",{get:function(){return this._bodyHeight},set:function(t){this._bodyHeight=this.scrollbarV?t+"px":"auto",this.recalcLayout()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"selectEnabled",{get:function(){return!!this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"scrollHeight",{get:function(){if(this.scrollbarV&&this.virtualization&&this.rowCount)return this.rowHeightsCache.query(this.rowCount-1)},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){var t=this;this.rowDetail&&(this.listener=this.rowDetail.toggle.subscribe((function(e){var n=e.type,a=e.value;"row"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()}))),this.groupHeader&&(this.listener=this.groupHeader.toggle.subscribe((function(e){var n=e.type,a=e.value;"group"===n&&t.toggleRowExpansion(a),"all"===n&&t.toggleAllRows(a),t.updateIndexes(),t.updateRows(),t.cd.markForCheck()})))},t.prototype.ngOnDestroy=function(){this.rowDetail&&this.listener.unsubscribe(),this.groupHeader&&this.listener.unsubscribe()},t.prototype.updateOffsetY=function(t){this.scroller&&(this.scrollbarV&&this.virtualization&&t?t=this.rowHeightsCache.query(this.pageSize*t-1):this.scrollbarV&&!this.virtualization&&(t=0),this.scroller.setOffset(t||0))},t.prototype.onBodyScroll=function(t){var e=t.scrollYPos,n=t.scrollXPos;this.offsetY===e&&this.offsetX===n||this.scroll.emit({offsetY:e,offsetX:n}),this.offsetY=e,this.offsetX=n,this.updateIndexes(),this.updatePage(t.direction),this.updateRows()},t.prototype.updatePage=function(t){var e=this.indexes.first/this.pageSize;"up"===t?e=Math.ceil(e):"down"===t&&(e=Math.floor(e)),void 0===t||isNaN(e)||this.page.emit({offset:e})},t.prototype.updateRows=function(){var t=this.indexes,e=t.last,n=t.first,a=0,r=[];if(this.rowIndexes.clear(),this.groupedRows)for(;n<e&&n<this.groupedRows.length;)r[a]=this.groupedRows[n],a++,n++;else for(;n<e&&n<this.rowCount;){var o=this.rows[n];o&&(this.rowIndexes.set(o,n),r[a]=o),a++,n++}this.temp=r},t.prototype.getRowHeight=function(t){return"function"==typeof this.rowHeight?this.rowHeight(t):this.rowHeight},t.prototype.getGroupHeight=function(t){var e=0;if(t.value)for(var n=0;n<t.value.length;n++)e+=this.getRowAndDetailHeight(t.value[n]);return e},t.prototype.getRowAndDetailHeight=function(t){var e=this.getRowHeight(t);return 1===this.rowExpansions.get(t)&&(e+=this.getDetailRowHeight(t)),e},t.prototype.getRowsStyles=function(t){var e={};if(this.groupedRows&&(e.width=this.columnGroupWidths.total),this.scrollbarV&&this.virtualization){var n=0;if(this.groupedRows){var a=t[t.length-1];n=a?this.getRowIndex(a):0}else n=this.getRowIndex(t);var r=this.rowHeightsCache.query(n-1);i.translateXY(e,0,r)}return e},t.prototype.getBottomSummaryRowStyles=function(){if(!this.scrollbarV||!this.rows||!this.rows.length)return null;var t={position:"absolute"},e=this.rowHeightsCache.query(this.rows.length-1);return i.translateXY(t,0,e),t},t.prototype.hideIndicator=function(){var t=this;setTimeout((function(){return t.loadingIndicator=!1}),500)},t.prototype.updateIndexes=function(){var t=0,e=0;if(this.scrollbarV)if(this.virtualization){var n=parseInt(this.bodyHeight,0);t=this.rowHeightsCache.getRowIndex(this.offsetY),e=this.rowHeightsCache.getRowIndex(n+this.offsetY)+1}else t=0,e=this.rowCount;else this.externalPaging||(t=Math.max(this.offset*this.pageSize,0)),e=Math.min(t+this.pageSize,this.rowCount);this.indexes={first:t,last:e}},t.prototype.refreshRowHeightCache=function(){!this.scrollbarV||this.scrollbarV&&!this.virtualization||(this.rowHeightsCache.clearCache(),this.rows&&this.rows.length&&this.rowHeightsCache.initCache({rows:this.rows,rowHeight:this.rowHeight,detailRowHeight:this.getDetailRowHeight,externalVirtual:this.scrollbarV&&this.externalPaging,rowCount:this.rowCount,rowIndexes:this.rowIndexes,rowExpansions:this.rowExpansions}))},t.prototype.getAdjustedViewPortIndex=function(){var t=this.indexes.first;return this.scrollbarV&&this.virtualization&&this.rowHeightsCache.query(t-1)<=this.offsetY?t-1:t},t.prototype.toggleRowExpansion=function(t){var e=this.getAdjustedViewPortIndex(),n=this.rowExpansions.get(t);if(this.scrollbarV&&this.virtualization){var a=this.getDetailRowHeight(t)*(n?-1:1),r=this.getRowIndex(t);this.rowHeightsCache.update(r,a)}n=n^=1,this.rowExpansions.set(t,n),this.detailToggle.emit({rows:[t],currentIndex:e})},t.prototype.toggleAllRows=function(t){this.rowExpansions.clear();for(var e=t?1:0,n=this.getAdjustedViewPortIndex(),a=0,r=this.rows;a<r.length;a++)this.rowExpansions.set(r[a],e);this.scrollbarV&&this.recalcLayout(),this.detailToggle.emit({rows:this.rows,currentIndex:n})},t.prototype.recalcLayout=function(){this.refreshRowHeightCache(),this.updateIndexes(),this.updateRows()},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.stylesByGroup=function(t){var e=this.columnGroupWidths,n=this.offsetX,a={width:e[t]+"px"};if("left"===t)i.translateXY(a,n,0);else if("right"===t){var r=parseInt(this.innerWidth+"",0);i.translateXY(a,-1*(e.total-r-n),0)}return a},t.prototype.getRowExpanded=function(t){if(0===this.rowExpansions.size&&this.groupExpansionDefault)for(var e=0,n=this.groupedRows;e<n.length;e++)this.rowExpansions.set(n[e],1);return 1===this.rowExpansions.get(t)},t.prototype.getRowIndex=function(t){return this.rowIndexes.get(t)||0},t.prototype.onTreeAction=function(t){this.treeAction.emit({row:t})},a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"externalPaging",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offsetX",void 0),a([o.Input(),r("design:type",String)],t.prototype,"emptyMessage",void 0),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowDetail",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupHeader",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"displayCheck",void 0),a([o.Input(),r("design:type",String)],t.prototype,"trackByProp",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"groupedRows",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"innerWidth",void 0),a([o.Input(),r("design:type",String)],t.prototype,"groupRowsBy",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"virtualization",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"summaryRow",void 0),a([o.Input(),r("design:type",String)],t.prototype,"summaryPosition",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"summaryHeight",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"pageSize",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"rows",null),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"columns",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"offset",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"rowCount",null),a([o.HostBinding("style.width"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"bodyWidth",null),a([o.Input(),o.HostBinding("style.height"),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"bodyHeight",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"page",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"detailToggle",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"rowContextmenu",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"treeAction",void 0),a([o.ViewChild(s.ScrollerComponent,{static:!1}),r("design:type",s.ScrollerComponent)],t.prototype,"scroller",void 0),a([o.Component({selector:"datatable-body",template:'\n    <datatable-selection\n      #selector\n      [selected]="selected"\n      [rows]="rows"\n      [selectCheck]="selectCheck"\n      [selectEnabled]="selectEnabled"\n      [selectionType]="selectionType"\n      [rowIdentity]="rowIdentity"\n      (select)="select.emit($event)"\n      (activate)="activate.emit($event)"\n    >\n      <datatable-progress *ngIf="loadingIndicator"> </datatable-progress>\n      <datatable-scroller\n        *ngIf="rows?.length"\n        [scrollbarV]="scrollbarV"\n        [scrollbarH]="scrollbarH"\n        [scrollHeight]="scrollHeight"\n        [scrollWidth]="columnGroupWidths?.total"\n        (scroll)="onBodyScroll($event)"\n      >\n        <datatable-summary-row\n          *ngIf="summaryRow && summaryPosition === \'top\'"\n          [rowHeight]="summaryHeight"\n          [offsetX]="offsetX"\n          [innerWidth]="innerWidth"\n          [rows]="rows"\n          [columns]="columns"\n        >\n        </datatable-summary-row>\n        <datatable-row-wrapper\n          [groupedRows]="groupedRows"\n          *ngFor="let group of temp; let i = index; trackBy: rowTrackingFn"\n          [innerWidth]="innerWidth"\n          [ngStyle]="getRowsStyles(group)"\n          [rowDetail]="rowDetail"\n          [groupHeader]="groupHeader"\n          [offsetX]="offsetX"\n          [detailRowHeight]="getDetailRowHeight(group[i], i)"\n          [row]="group"\n          [expanded]="getRowExpanded(group)"\n          [rowIndex]="getRowIndex(group[i])"\n          (rowContextmenu)="rowContextmenu.emit($event)"\n        >\n          <datatable-body-row\n            *ngIf="!groupedRows; else groupedRowsTemplate"\n            tabindex="-1"\n            [isSelected]="selector.getRowSelected(group)"\n            [innerWidth]="innerWidth"\n            [offsetX]="offsetX"\n            [columns]="columns"\n            [rowHeight]="getRowHeight(group)"\n            [row]="group"\n            [rowIndex]="getRowIndex(group)"\n            [expanded]="getRowExpanded(group)"\n            [rowClass]="rowClass"\n            [displayCheck]="displayCheck"\n            [treeStatus]="group.treeStatus"\n            (treeAction)="onTreeAction(group)"\n            (activate)="selector.onActivate($event, indexes.first + i)"\n          >\n          </datatable-body-row>\n          <ng-template #groupedRowsTemplate>\n            <datatable-body-row\n              *ngFor="\n                let row of group.value;\n                let i = index;\n                trackBy: rowTrackingFn\n              "\n              tabindex="-1"\n              [isSelected]="selector.getRowSelected(row)"\n              [innerWidth]="innerWidth"\n              [offsetX]="offsetX"\n              [columns]="columns"\n              [rowHeight]="getRowHeight(row)"\n              [row]="row"\n              [group]="group.value"\n              [rowIndex]="getRowIndex(row)"\n              [expanded]="getRowExpanded(row)"\n              [rowClass]="rowClass"\n              (activate)="selector.onActivate($event, i)"\n            >\n            </datatable-body-row>\n          </ng-template>\n        </datatable-row-wrapper>\n        <datatable-summary-row\n          *ngIf="summaryRow && summaryPosition === \'bottom\'"\n          [ngStyle]="getBottomSummaryRowStyles()"\n          [rowHeight]="summaryHeight"\n          [offsetX]="offsetX"\n          [innerWidth]="innerWidth"\n          [rows]="rows"\n          [columns]="columns"\n        >\n        </datatable-summary-row>\n      </datatable-scroller>\n      <div\n        class="empty-row"\n        *ngIf="!rows?.length && !loadingIndicator"\n        [innerHTML]="emptyMessage"\n      ></div>\n    </datatable-selection>\n  ',changeDetection:o.ChangeDetectionStrategy.OnPush,host:{class:"datatable-body"}}),r("design:paramtypes",[o.ChangeDetectorRef])],t)}()},"./src/components/body/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/body/body.component.ts")),a(n("./src/components/body/body-cell.component.ts")),a(n("./src/components/body/body-row.component.ts")),a(n("./src/components/body/progress-bar.component.ts")),a(n("./src/components/body/scroller.component.ts")),a(n("./src/components/body/body-row-wrapper.component.ts")),a(n("./src/components/body/selection.component.ts")),a(n("./src/components/body/body-group-header.directive.ts")),a(n("./src/components/body/body-group-header-template.directive.ts")),a(n("./src/components/body/summary/index.ts"))},"./src/components/body/progress-bar.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.ProgressBarComponent=function(){return a([r.Component({selector:"datatable-progress",template:'\n    <div class="progress-linear" role="progressbar">\n      <div class="container">\n        <div class="bar"></div>\n      </div>\n    </div>\n  ',changeDetection:r.ChangeDetectionStrategy.OnPush})],(function(){}))}()},"./src/components/body/scroller.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.ScrollerComponent=function(){function t(t,e,n){this.ngZone=t,this.renderer=n,this.scrollbarV=!1,this.scrollbarH=!1,this.scroll=new o.EventEmitter,this.scrollYPos=0,this.scrollXPos=0,this.prevScrollYPos=0,this.prevScrollXPos=0,this.element=e.nativeElement}return t.prototype.ngOnInit=function(){if(this.scrollbarV||this.scrollbarH){var t=this.renderer;this.parentElement=t.parentNode(t.parentNode(this.element)),this.parentElement.addEventListener("scroll",this.onScrolled.bind(this))}},t.prototype.ngOnDestroy=function(){(this.scrollbarV||this.scrollbarH)&&this.parentElement.removeEventListener("scroll",this.onScrolled.bind(this))},t.prototype.setOffset=function(t){this.parentElement&&(this.parentElement.scrollTop=t)},t.prototype.onScrolled=function(t){var e=this,n=t.currentTarget;requestAnimationFrame((function(){e.scrollYPos=n.scrollTop,e.scrollXPos=n.scrollLeft,e.updateOffset()}))},t.prototype.updateOffset=function(){var t;this.scrollYPos<this.prevScrollYPos?t="down":this.scrollYPos>this.prevScrollYPos&&(t="up"),this.scroll.emit({direction:t,scrollYPos:this.scrollYPos,scrollXPos:this.scrollXPos}),this.prevScrollYPos=this.scrollYPos,this.prevScrollXPos=this.scrollXPos},a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarV",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"scrollbarH",void 0),a([o.HostBinding("style.height.px"),o.Input(),r("design:type",Number)],t.prototype,"scrollHeight",void 0),a([o.HostBinding("style.width.px"),o.Input(),r("design:type",Number)],t.prototype,"scrollWidth",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"scroll",void 0),a([o.Component({selector:"datatable-scroller",template:"\n    <ng-content></ng-content>\n  ",host:{class:"datatable-scroll"},changeDetection:o.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[o.NgZone,o.ElementRef,o.Renderer2])],t)}()},"./src/components/body/selection.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/utils/index.ts"),s=n("./src/types/index.ts");e.DataTableSelectionComponent=function(){function t(){this.activate=new o.EventEmitter,this.select=new o.EventEmitter}return t.prototype.selectRow=function(t,e,n){var a;if(this.selectEnabled){var r=this.selectionType===s.SelectionType.checkbox,o=this.selectionType===s.SelectionType.multiClick,c=[];c=this.selectionType===s.SelectionType.multi||r||o?t.shiftKey?i.selectRowsBetween([],this.rows,e,this.prevIndex,this.getRowSelectedIdx.bind(this)):i.selectRows(t.ctrlKey||t.metaKey||o||r?this.selected.slice():[],n,this.getRowSelectedIdx.bind(this)):i.selectRows([],n,this.getRowSelectedIdx.bind(this)),"function"==typeof this.selectCheck&&(c=c.filter(this.selectCheck.bind(this))),this.selected.splice(0,this.selected.length),(a=this.selected).push.apply(a,c),this.prevIndex=e,this.select.emit({selected:c})}},t.prototype.onActivate=function(t,e){var n=t.type,a=t.event,r=t.row,o=this.selectionType===s.SelectionType.checkbox;!o&&("click"===n||"dblclick"===n)||o&&"checkbox"===n?this.selectRow(a,e,r):"keydown"===n&&(a.keyCode===i.Keys.return?this.selectRow(a,e,r):this.onKeyboardFocus(t)),this.activate.emit(t)},t.prototype.onKeyboardFocus=function(t){var e=t.event.keyCode;if(e===i.Keys.up||e===i.Keys.down||e===i.Keys.right||e===i.Keys.left){var n=this.selectionType===s.SelectionType.cell;t.cellElement&&n?n&&this.focusCell(t.cellElement,t.rowElement,e,t.cellIndex):this.focusRow(t.rowElement,e)}},t.prototype.focusRow=function(t,e){var n=this.getPrevNextRow(t,e);n&&n.focus()},t.prototype.getPrevNextRow=function(t,e){var n=t.parentElement;if(n){var a=void 0;if(e===i.Keys.up?a=n.previousElementSibling:e===i.Keys.down&&(a=n.nextElementSibling),a&&a.children.length)return a.children[0]}},t.prototype.focusCell=function(t,e,n,a){var r;if(n===i.Keys.left)r=t.previousElementSibling;else if(n===i.Keys.right)r=t.nextElementSibling;else if(n===i.Keys.up||n===i.Keys.down){var o=this.getPrevNextRow(e,n);if(o){var s=o.getElementsByClassName("datatable-body-cell");s.length&&(r=s[a])}}r&&r.focus()},t.prototype.getRowSelected=function(t){return this.getRowSelectedIdx(t,this.selected)>-1},t.prototype.getRowSelectedIdx=function(t,e){var n=this;if(!e||!e.length)return-1;var a=this.rowIdentity(t);return e.findIndex((function(t){return n.rowIdentity(t)===a}))},a([o.Input(),r("design:type",Array)],t.prototype,"rows",void 0),a([o.Input(),r("design:type",Array)],t.prototype,"selected",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"selectEnabled",void 0),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"rowIdentity",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectCheck",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"activate",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Component({selector:"datatable-selection",template:"\n    <ng-content></ng-content>\n  ",changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/body/summary/index.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),function(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}(n("./src/components/body/summary/summary-row.component.ts"))},"./src/components/body/summary/summary-row.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core");function s(t){var e=t.filter((function(t){return!!t}));return e.length?e.some((function(t){return"number"!=typeof t}))?null:e.reduce((function(t,e){return t+e})):null}function c(t){return null}e.DataTableSummaryRowComponent=function(){function t(){this.summaryRow={}}return t.prototype.ngOnChanges=function(){this.columns&&this.rows&&(this.updateInternalColumns(),this.updateValues())},t.prototype.updateInternalColumns=function(){this._internalColumns=this.columns.map((function(t){return a({},t,{cellTemplate:t.summaryTemplate})}))},t.prototype.updateValues=function(){var t=this;this.summaryRow={},this.columns.filter((function(t){return!t.summaryTemplate})).forEach((function(e){var n=t.rows.map((function(t){return t[e.prop]})),a=t.getSummaryFunction(e);t.summaryRow[e.prop]=e.pipe?e.pipe.transform(a(n)):a(n)}))},t.prototype.getSummaryFunction=function(t){return void 0===t.summaryFunc?s:null===t.summaryFunc?c:t.summaryFunc},r([i.Input(),o("design:type",Array)],t.prototype,"rows",void 0),r([i.Input(),o("design:type",Array)],t.prototype,"columns",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"rowHeight",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"offsetX",void 0),r([i.Input(),o("design:type",Number)],t.prototype,"innerWidth",void 0),r([i.Component({selector:"datatable-summary-row",template:'\n  <datatable-body-row\n    *ngIf="summaryRow && _internalColumns"\n    tabindex="-1"\n    [innerWidth]="innerWidth"\n    [offsetX]="offsetX"\n    [columns]="_internalColumns"\n    [rowHeight]="rowHeight"\n    [row]="summaryRow"\n    [rowIndex]="-1">\n  </datatable-body-row>\n  ',host:{class:"datatable-summary-row"}})],t)}()},"./src/components/columns/column-cell.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DataTableColumnCellDirective=function(){return a([o.Directive({selector:"[ngx-datatable-cell-template]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/columns/column-header.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DataTableColumnHeaderDirective=function(){return a([o.Directive({selector:"[ngx-datatable-header-template]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/columns/column.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/components/columns/column-header.directive.ts"),s=n("./src/components/columns/column-cell.directive.ts"),c=n("./src/components/columns/tree.directive.ts"),l=n("./src/services/column-changes.service.ts");e.DataTableColumnDirective=function(){function t(t){this.columnChangesService=t,this.isFirstChange=!0}return t.prototype.ngOnChanges=function(){this.isFirstChange?this.isFirstChange=!1:this.columnChangesService.onInputChange()},a([o.Input(),r("design:type",String)],t.prototype,"name",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"prop",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"frozenLeft",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"frozenRight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"flexGrow",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"resizeable",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"comparator",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"pipe",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"sortable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"draggable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"canAutoResize",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"width",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"checkboxable",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"headerCheckboxable",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"headerClass",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"cellClass",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"isTreeColumn",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"treeLevelIndent",void 0),a([o.Input(),r("design:type",Function)],t.prototype,"summaryFunc",void 0),a([o.Input(),r("design:type",o.TemplateRef)],t.prototype,"summaryTemplate",void 0),a([o.Input(),o.ContentChild(s.DataTableColumnCellDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"cellTemplate",void 0),a([o.Input(),o.ContentChild(i.DataTableColumnHeaderDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"headerTemplate",void 0),a([o.Input(),o.ContentChild(c.DataTableColumnCellTreeToggle,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"treeToggleTemplate",void 0),a([o.Directive({selector:"ngx-datatable-column"}),r("design:paramtypes",[l.ColumnChangesService])],t)}()},"./src/components/columns/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/columns/column.directive.ts")),a(n("./src/components/columns/column-header.directive.ts")),a(n("./src/components/columns/column-cell.directive.ts")),a(n("./src/components/columns/tree.directive.ts"))},"./src/components/columns/tree.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DataTableColumnCellTreeToggle=function(){return a([o.Directive({selector:"[ngx-datatable-tree-toggle]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/datatable.component.scss":function(t,e,n){var a=n("./node_modules/css-loader/index.js!./node_modules/postcss-loader/index.js!./node_modules/sass-loader/lib/loader.js??ref--3-4!./src/components/datatable.component.scss");t.exports="string"==typeof a?a:a.toString()},"./src/components/datatable.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},i=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var s=n("@angular/core"),c=n("./src/utils/index.ts"),l=n("./src/services/index.ts"),d=n("./src/types/index.ts"),u=n("./src/components/body/index.ts"),g=n("./src/components/body/body-group-header.directive.ts"),f=n("./src/components/columns/index.ts"),p=n("./src/components/row-detail/index.ts"),m=n("./src/components/footer/index.ts"),h=n("./src/components/header/index.ts"),b=n("rxjs");e.DatatableComponent=function(){function t(t,e,n,a,r,o){this.scrollbarHelper=t,this.dimensionsHelper=e,this.cd=n,this.columnChangesService=o,this.selected=[],this.scrollbarV=!1,this.scrollbarH=!1,this.rowHeight=30,this.columnMode=d.ColumnMode.standard,this.headerHeight=30,this.footerHeight=0,this.externalPaging=!1,this.externalSorting=!1,this.loadingIndicator=!1,this.reorderable=!0,this.swapColumns=!0,this.sortType=d.SortType.single,this.sorts=[],this.cssClasses={sortAscending:"datatable-icon-up",sortDescending:"datatable-icon-down",pagerLeftArrow:"datatable-icon-left",pagerRightArrow:"datatable-icon-right",pagerPrevious:"datatable-icon-prev",pagerNext:"datatable-icon-skip"},this.messages={emptyMessage:"No data to display",totalMessage:"total",selectedMessage:"selected"},this.rowIdentity=function(t){return t},this.groupExpansionDefault=!1,this.selectAllRowsOnPage=!1,this.virtualization=!0,this.summaryRow=!1,this.summaryHeight=30,this.summaryPosition="top",this.scroll=new s.EventEmitter,this.activate=new s.EventEmitter,this.select=new s.EventEmitter,this.sort=new s.EventEmitter,this.page=new s.EventEmitter,this.reorder=new s.EventEmitter,this.resize=new s.EventEmitter,this.tableContextmenu=new s.EventEmitter(!1),this.treeAction=new s.EventEmitter,this.rowCount=0,this._offsetX=new b.BehaviorSubject(0),this._count=0,this._offset=0,this._subscriptions=[],this.element=a.nativeElement,this.rowDiffer=r.find({}).create()}return Object.defineProperty(t.prototype,"rows",{get:function(){return this._rows},set:function(t){this._rows=t,t&&(this._internalRows=t.slice()),this.externalSorting||this.sortInternalRows(),this._internalRows=c.groupRowsByParents(this._internalRows,c.optionalGetterForProp(this.treeFromRelation),c.optionalGetterForProp(this.treeToRelation)),this.recalculate(),this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"groupRowsBy",{get:function(){return this._groupRowsBy},set:function(t){t&&(this._groupRowsBy=t,this._rows&&this._groupRowsBy&&(this.groupedRows=this.groupArrayBy(this._rows,this._groupRowsBy)))},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){t&&(this._internalColumns=t.slice(),c.setColumnDefaults(this._internalColumns),this.recalculateColumns()),this._columns=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"limit",{get:function(){return this._limit},set:function(t){this._limit=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.recalculate()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offset",{get:function(){return Math.max(Math.min(this._offset,Math.ceil(this.rowCount/this.pageSize)-1),0)},set:function(t){this._offset=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedHeader",{get:function(){var t=this.headerHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isFixedRow",{get:function(){var t=this.rowHeight;return"string"!=typeof t||"auto"!==t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVertScroll",{get:function(){return this.scrollbarV},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isVirtualized",{get:function(){return this.virtualization},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isHorScroll",{get:function(){return this.scrollbarH},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSelectable",{get:function(){return void 0!==this.selectionType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxSelection",{get:function(){return this.selectionType===d.SelectionType.checkbox},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCellSelection",{get:function(){return this.selectionType===d.SelectionType.cell},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isSingleSelection",{get:function(){return this.selectionType===d.SelectionType.single},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiSelection",{get:function(){return this.selectionType===d.SelectionType.multi},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isMultiClickSelection",{get:function(){return this.selectionType===d.SelectionType.multiClick},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnTemplates",{get:function(){return this._columnTemplates},set:function(t){this._columnTemplates=t,this.translateColumns(t)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){var t=this.rows&&this.selected&&this.selected.length===this.rows.length;if(this.selectAllRowsOnPage){var e=this.bodyComponent.indexes;t=this.selected.length===e.last-e.first}return this.selected&&this.rows&&0!==this.rows.length&&t},enumerable:!0,configurable:!0}),t.prototype.ngOnInit=function(){this.recalculate()},t.prototype.ngAfterViewInit=function(){var t=this;this.externalSorting||this.sortInternalRows(),"undefined"!=typeof requestAnimationFrame&&requestAnimationFrame((function(){t.recalculate(),t.externalPaging&&t.scrollbarV&&t.page.emit({count:t.count,pageSize:t.pageSize,limit:t.limit,offset:0})}))},t.prototype.ngAfterContentInit=function(){var t=this;this.columnTemplates.changes.subscribe((function(e){return t.translateColumns(e)})),this.listenForColumnInputChanges()},t.prototype.translateColumns=function(t){if(t){var e=t.toArray();e.length&&(this._internalColumns=c.translateTemplates(e),c.setColumnDefaults(this._internalColumns),this.recalculateColumns(),this.sortInternalRows(),this.cd.markForCheck())}},t.prototype.groupArrayBy=function(t,e){var n=new Map;return t.forEach((function(t){var a=t[e];n.has(a)?n.get(a).push(t):n.set(a,[t])})),Array.from(n,(function(t){return{key:t[0],value:t[1]}}))},t.prototype.ngDoCheck=function(){this.rowDiffer.diff(this.rows)&&(this.externalSorting?this._internalRows=this.rows.slice():this.sortInternalRows(),this._internalRows=c.groupRowsByParents(this._internalRows,c.optionalGetterForProp(this.treeFromRelation),c.optionalGetterForProp(this.treeToRelation)),this.recalculatePages(),this.cd.markForCheck())},t.prototype.recalculate=function(){this.recalculateDims(),this.recalculateColumns()},t.prototype.onWindowResize=function(){this.recalculate()},t.prototype.recalculateColumns=function(t,e,n){if(void 0===t&&(t=this._internalColumns),void 0===e&&(e=-1),void 0===n&&(n=this.scrollbarH),t){var a=this._innerWidth;return this.scrollbarV&&(a-=this.scrollbarHelper.width),this.columnMode===d.ColumnMode.force?c.forceFillColumnWidths(t,a,e,n):this.columnMode===d.ColumnMode.flex&&c.adjustColumnWidths(t,a),t}},t.prototype.recalculateDims=function(){var t=this.dimensionsHelper.getDimensions(this.element);if(this._innerWidth=Math.floor(t.width),this.scrollbarV){var e=t.height;this.headerHeight&&(e-=this.headerHeight),this.footerHeight&&(e-=this.footerHeight),this.bodyHeight=e}this.recalculatePages()},t.prototype.recalculatePages=function(){this.pageSize=this.calcPageSize(),this.rowCount=this.calcRowCount()},t.prototype.onBodyPage=function(t){this.externalPaging&&!this.virtualization||(this.offset=t.offset,this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}))},t.prototype.onBodyScroll=function(t){this._offsetX.next(t.offsetX),this.scroll.emit(t),this.cd.detectChanges()},t.prototype.onFooterPage=function(t){this.offset=t.page-1,this.bodyComponent.updateOffsetY(this.offset),this.page.emit({count:this.count,pageSize:this.pageSize,limit:this.limit,offset:this.offset}),this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected}))},t.prototype.calcPageSize=function(t){if(void 0===t&&(t=this.rows),this.scrollbarV&&this.virtualization){var e=Math.ceil(this.bodyHeight/this.rowHeight);return Math.max(e,0)}return void 0!==this.limit?this.limit:t?t.length:0},t.prototype.calcRowCount=function(t){return void 0===t&&(t=this.rows),this.externalPaging?this.count:t?this.groupedRows?this.groupedRows.length:null!=this.treeFromRelation&&null!=this.treeToRelation?this._internalRows.length:t.length:0},t.prototype.onColumnContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:d.ContextmenuType.header,content:t.column})},t.prototype.onRowContextmenu=function(t){this.tableContextmenu.emit({event:t.event,type:d.ContextmenuType.body,content:t.row})},t.prototype.onColumnResize=function(t){var e=t.column,n=t.newValue;if(void 0!==e){var r,o=this._internalColumns.map((function(t,o){return(t=a({},t)).$$id===e.$$id&&(r=o,t.width=n,t.$$oldWidth=n),t}));this.recalculateColumns(o,r),this._internalColumns=o,this.resize.emit({column:e,newValue:n})}},t.prototype.onColumnReorder=function(t){var e=t.column,n=t.newValue,r=t.prevValue,o=this._internalColumns.map((function(t){return a({},t)}));if(this.swapColumns){var i=o[n];o[n]=e,o[r]=i}else if(n>r){for(var s=o[r],c=r;c<n;c++)o[c]=o[c+1];o[n]=s}else{for(s=o[r],c=r;c>n;c--)o[c]=o[c-1];o[n]=s}this._internalColumns=o,this.reorder.emit({column:e,newValue:n,prevValue:r})},t.prototype.onColumnSort=function(t){this.selectAllRowsOnPage&&(this.selected=[],this.select.emit({selected:this.selected})),this.sorts=t.sorts,!1===this.externalSorting&&this.sortInternalRows(),this._internalRows=c.groupRowsByParents(this._internalRows,c.optionalGetterForProp(this.treeFromRelation),c.optionalGetterForProp(this.treeToRelation)),this.offset=0,this.bodyComponent.updateOffsetY(this.offset),this.sort.emit(t)},t.prototype.onHeaderSelect=function(t){var e,n;if(this.selectAllRowsOnPage){var a=this.bodyComponent.indexes.first,r=this.bodyComponent.indexes.last,o=this.selected.length===r-a;this.selected=[],o||(e=this.selected).push.apply(e,this._internalRows.slice(a,r))}else o=this.selected.length===this.rows.length,this.selected=[],o||(n=this.selected).push.apply(n,this.rows);this.select.emit({selected:this.selected})},t.prototype.onBodySelect=function(t){this.select.emit(t)},t.prototype.onTreeAction=function(t){var e=this,n=t.row,a=this._rows.findIndex((function(n){return n[e.treeToRelation]===t.row[e.treeToRelation]}));this.treeAction.emit({row:n,rowIndex:a})},t.prototype.ngOnDestroy=function(){this._subscriptions.forEach((function(t){return t.unsubscribe()}))},t.prototype.listenForColumnInputChanges=function(){var t=this;this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe((function(){t.columnTemplates&&t.columnTemplates.notifyOnChanges()})))},t.prototype.sortInternalRows=function(){this._internalRows=c.sortRows(this._internalRows,this._internalColumns,this.sorts)},r([s.Input(),o("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([s.Input(),o("design:type",Object),o("design:paramtypes",[Object])],t.prototype,"rows",null),r([s.Input(),o("design:type",String),o("design:paramtypes",[String])],t.prototype,"groupRowsBy",null),r([s.Input(),o("design:type",Array)],t.prototype,"groupedRows",void 0),r([s.Input(),o("design:type",Array),o("design:paramtypes",[Array])],t.prototype,"columns",null),r([s.Input(),o("design:type",Array)],t.prototype,"selected",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"scrollbarV",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([s.Input(),o("design:type",Number)],t.prototype,"rowHeight",void 0),r([s.Input(),o("design:type",String)],t.prototype,"columnMode",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"headerHeight",void 0),r([s.Input(),o("design:type",Number)],t.prototype,"footerHeight",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"externalPaging",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"externalSorting",void 0),r([s.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"limit",null),r([s.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"count",null),r([s.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"offset",null),r([s.Input(),o("design:type",Boolean)],t.prototype,"loadingIndicator",void 0),r([s.Input(),o("design:type",String)],t.prototype,"selectionType",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"reorderable",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"swapColumns",void 0),r([s.Input(),o("design:type",String)],t.prototype,"sortType",void 0),r([s.Input(),o("design:type",Array)],t.prototype,"sorts",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"cssClasses",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"messages",void 0),r([s.Input(),o("design:type",Function)],t.prototype,"rowIdentity",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"rowClass",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"selectCheck",void 0),r([s.Input(),o("design:type",Function)],t.prototype,"displayCheck",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"groupExpansionDefault",void 0),r([s.Input(),o("design:type",String)],t.prototype,"trackByProp",void 0),r([s.Input(),o("design:type",Object)],t.prototype,"selectAllRowsOnPage",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"virtualization",void 0),r([s.Input(),o("design:type",String)],t.prototype,"treeFromRelation",void 0),r([s.Input(),o("design:type",String)],t.prototype,"treeToRelation",void 0),r([s.Input(),o("design:type",Boolean)],t.prototype,"summaryRow",void 0),r([s.Input(),o("design:type",Number)],t.prototype,"summaryHeight",void 0),r([s.Input(),o("design:type",String)],t.prototype,"summaryPosition",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"scroll",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"activate",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"select",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"sort",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"page",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"reorder",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"resize",void 0),r([s.Output(),o("design:type",Object)],t.prototype,"tableContextmenu",void 0),r([s.Output(),o("design:type",s.EventEmitter)],t.prototype,"treeAction",void 0),r([s.HostBinding("class.fixed-header"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isFixedHeader",null),r([s.HostBinding("class.fixed-row"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isFixedRow",null),r([s.HostBinding("class.scroll-vertical"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isVertScroll",null),r([s.HostBinding("class.virtualized"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isVirtualized",null),r([s.HostBinding("class.scroll-horz"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isHorScroll",null),r([s.HostBinding("class.selectable"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isSelectable",null),r([s.HostBinding("class.checkbox-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isCheckboxSelection",null),r([s.HostBinding("class.cell-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isCellSelection",null),r([s.HostBinding("class.single-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isSingleSelection",null),r([s.HostBinding("class.multi-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isMultiSelection",null),r([s.HostBinding("class.multi-click-selection"),o("design:type",Boolean),o("design:paramtypes",[])],t.prototype,"isMultiClickSelection",null),r([s.ContentChildren(f.DataTableColumnDirective),o("design:type",s.QueryList),o("design:paramtypes",[s.QueryList])],t.prototype,"columnTemplates",null),r([s.ContentChild(p.DatatableRowDetailDirective,{static:!1}),o("design:type",p.DatatableRowDetailDirective)],t.prototype,"rowDetail",void 0),r([s.ContentChild(g.DatatableGroupHeaderDirective,{static:!1}),o("design:type",g.DatatableGroupHeaderDirective)],t.prototype,"groupHeader",void 0),r([s.ContentChild(m.DatatableFooterDirective,{static:!1}),o("design:type",m.DatatableFooterDirective)],t.prototype,"footer",void 0),r([s.ViewChild(u.DataTableBodyComponent,{static:!1}),o("design:type",u.DataTableBodyComponent)],t.prototype,"bodyComponent",void 0),r([s.ViewChild(h.DataTableHeaderComponent,{static:!1}),o("design:type",h.DataTableHeaderComponent)],t.prototype,"headerComponent",void 0),r([s.HostListener("window:resize"),c.throttleable(5),o("design:type",Function),o("design:paramtypes",[]),o("design:returntype",void 0)],t.prototype,"onWindowResize",null),r([s.Component({selector:"ngx-datatable",template:'\n    <div\n      visibilityObserver\n      (visible)="recalculate()">\n      <datatable-header\n        *ngIf="headerHeight"\n        [sorts]="sorts"\n        [sortType]="sortType"\n        [scrollbarH]="scrollbarH"\n        [innerWidth]="_innerWidth"\n        [offsetX]="_offsetX | async"\n        [dealsWithGroup]="groupedRows"\n        [columns]="_internalColumns"\n        [headerHeight]="headerHeight"\n        [reorderable]="reorderable"\n        [targetMarkerTemplate]="targetMarkerTemplate"\n        [sortAscendingIcon]="cssClasses.sortAscending"\n        [sortDescendingIcon]="cssClasses.sortDescending"\n        [allRowsSelected]="allRowsSelected"\n        [selectionType]="selectionType"\n        (sort)="onColumnSort($event)"\n        (resize)="onColumnResize($event)"\n        (reorder)="onColumnReorder($event)"\n        (select)="onHeaderSelect($event)"\n        (columnContextmenu)="onColumnContextmenu($event)">\n      </datatable-header>\n      <datatable-body\n        [groupRowsBy]="groupRowsBy"\n        [groupedRows]="groupedRows"\n        [rows]="_internalRows"\n        [groupExpansionDefault]="groupExpansionDefault"\n        [scrollbarV]="scrollbarV"\n        [scrollbarH]="scrollbarH"\n        [virtualization]="virtualization"\n        [loadingIndicator]="loadingIndicator"\n        [externalPaging]="externalPaging"\n        [rowHeight]="rowHeight"\n        [rowCount]="rowCount"\n        [offset]="offset"\n        [trackByProp]="trackByProp"\n        [columns]="_internalColumns"\n        [pageSize]="pageSize"\n        [offsetX]="_offsetX | async"\n        [rowDetail]="rowDetail"\n        [groupHeader]="groupHeader"\n        [selected]="selected"\n        [innerWidth]="_innerWidth"\n        [bodyHeight]="bodyHeight"\n        [selectionType]="selectionType"\n        [emptyMessage]="messages.emptyMessage"\n        [rowIdentity]="rowIdentity"\n        [rowClass]="rowClass"\n        [selectCheck]="selectCheck"\n        [displayCheck]="displayCheck"\n        [summaryRow]="summaryRow"\n        [summaryHeight]="summaryHeight"\n        [summaryPosition]="summaryPosition"\n        (page)="onBodyPage($event)"\n        (activate)="activate.emit($event)"\n        (rowContextmenu)="onRowContextmenu($event)"\n        (select)="onBodySelect($event)"\n        (scroll)="onBodyScroll($event)"\n        (treeAction)="onTreeAction($event)">\n      </datatable-body>\n      <datatable-footer\n        *ngIf="footerHeight"\n        [rowCount]="rowCount"\n        [pageSize]="pageSize"\n        [offset]="offset"\n        [footerHeight]="footerHeight"\n        [footerTemplate]="footer"\n        [totalMessage]="messages.totalMessage"\n        [pagerLeftArrowIcon]="cssClasses.pagerLeftArrow"\n        [pagerRightArrowIcon]="cssClasses.pagerRightArrow"\n        [pagerPreviousIcon]="cssClasses.pagerPrevious"\n        [selectedCount]="selected.length"\n        [selectedMessage]="!!selectionType && messages.selectedMessage"\n        [pagerNextIcon]="cssClasses.pagerNext"\n        (page)="onFooterPage($event)">\n      </datatable-footer>\n    </div>\n  ',changeDetection:s.ChangeDetectionStrategy.OnPush,encapsulation:s.ViewEncapsulation.None,styles:[n("./src/components/datatable.component.scss")],host:{class:"ngx-datatable"}}),i(0,s.SkipSelf()),i(1,s.SkipSelf()),o("design:paramtypes",[l.ScrollbarHelper,l.DimensionsHelper,s.ChangeDetectorRef,s.ElementRef,s.KeyValueDiffers,l.ColumnChangesService])],t)}()},"./src/components/footer/footer-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DataTableFooterTemplateDirective=function(){return a([o.Directive({selector:"[ngx-datatable-footer-template]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/footer/footer.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/components/footer/footer.directive.ts");e.DataTableFooterComponent=function(){function t(){this.selectedCount=0,this.page=new o.EventEmitter}return Object.defineProperty(t.prototype,"isVisible",{get:function(){return this.rowCount/this.pageSize>1},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"curPage",{get:function(){return this.offset+1},enumerable:!0,configurable:!0}),a([o.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"rowCount",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"pageSize",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"offset",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([o.Input(),r("design:type",i.DatatableFooterDirective)],t.prototype,"footerTemplate",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"selectedCount",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"page",void 0),a([o.Component({selector:"datatable-footer",template:'\n    <div\n      class="datatable-footer-inner"\n      [ngClass]="{\'selected-count\': selectedMessage}"\n      [style.height.px]="footerHeight">\n      <ng-template\n        *ngIf="footerTemplate"\n        [ngTemplateOutlet]="footerTemplate.template"\n        [ngTemplateOutletContext]="{ \n          rowCount: rowCount, \n          pageSize: pageSize, \n          selectedCount: selectedCount,\n          curPage: curPage,\n          offset: offset\n        }">\n      </ng-template>\n      <div class="page-count" *ngIf="!footerTemplate">\n        <span *ngIf="selectedMessage">\n          {{selectedCount?.toLocaleString()}} {{selectedMessage}} / \n        </span>\n        {{rowCount?.toLocaleString()}} {{totalMessage}}\n      </div>\n      <datatable-pager *ngIf="!footerTemplate"\n        [pagerLeftArrowIcon]="pagerLeftArrowIcon"\n        [pagerRightArrowIcon]="pagerRightArrowIcon"\n        [pagerPreviousIcon]="pagerPreviousIcon"\n        [pagerNextIcon]="pagerNextIcon"\n        [page]="curPage"\n        [size]="pageSize"\n        [count]="rowCount"\n        [hidden]="!isVisible"\n        (change)="page.emit($event)">\n      </datatable-pager>\n    </div>\n  ',host:{class:"datatable-footer"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/footer/footer.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/components/footer/footer-template.directive.ts");e.DatatableFooterDirective=function(){function t(){}return a([o.Input(),r("design:type",Number)],t.prototype,"footerHeight",void 0),a([o.Input(),r("design:type",String)],t.prototype,"totalMessage",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"selectedMessage",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),o.ContentChild(i.DataTableFooterTemplateDirective,{read:o.TemplateRef,static:!1}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Directive({selector:"ngx-datatable-footer"})],t)}()},"./src/components/footer/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/footer/footer.component.ts")),a(n("./src/components/footer/pager.component.ts")),a(n("./src/components/footer/footer.directive.ts")),a(n("./src/components/footer/footer-template.directive.ts"))},"./src/components/footer/pager.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DataTablePagerComponent=function(){function t(){this.change=new o.EventEmitter,this._count=0,this._page=1,this._size=0}return Object.defineProperty(t.prototype,"size",{get:function(){return this._size},set:function(t){this._size=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"count",{get:function(){return this._count},set:function(t){this._count=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"page",{get:function(){return this._page},set:function(t){this._page=t,this.pages=this.calcPages()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"totalPages",{get:function(){var t=this.size<1?1:Math.ceil(this.count/this.size);return Math.max(t||0,1)},enumerable:!0,configurable:!0}),t.prototype.canPrevious=function(){return this.page>1},t.prototype.canNext=function(){return this.page<this.totalPages},t.prototype.prevPage=function(){this.selectPage(this.page-1)},t.prototype.nextPage=function(){this.selectPage(this.page+1)},t.prototype.selectPage=function(t){t>0&&t<=this.totalPages&&t!==this.page&&(this.page=t,this.change.emit({page:t}))},t.prototype.calcPages=function(t){var e=[],n=1,a=this.totalPages;t=t||this.page,5<this.totalPages&&(n=t-Math.floor(2.5),a=t+Math.floor(2.5),n<1?(n=1,a=Math.min(n+5-1,this.totalPages)):a>this.totalPages&&(n=Math.max(this.totalPages-5+1,1),a=this.totalPages));for(var r=n;r<=a;r++)e.push({number:r,text:r});return e},a([o.Input(),r("design:type",String)],t.prototype,"pagerLeftArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerRightArrowIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerPreviousIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"pagerNextIcon",void 0),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"size",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"count",null),a([o.Input(),r("design:type",Number),r("design:paramtypes",[Number])],t.prototype,"page",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"change",void 0),a([o.Component({selector:"datatable-pager",template:'\n    <ul class="pager">\n      <li [class.disabled]="!canPrevious()">\n        <a\n          role="button"\n          aria-label="go to first page"\n          href="javascript:void(0)"\n          (click)="selectPage(1)">\n          <i class="{{pagerPreviousIcon}}"></i>\n        </a>\n      </li>\n      <li [class.disabled]="!canPrevious()">\n        <a\n          role="button"\n          aria-label="go to previous page"\n          href="javascript:void(0)"\n          (click)="prevPage()">\n          <i class="{{pagerLeftArrowIcon}}"></i>\n        </a>\n      </li>\n      <li\n        role="button"\n        [attr.aria-label]="\'page \' + pg.number"\n        class="pages"\n        *ngFor="let pg of pages"\n        [class.active]="pg.number === page">\n        <a\n          href="javascript:void(0)"\n          (click)="selectPage(pg.number)">\n          {{pg.text}}\n        </a>\n      </li>\n      <li [class.disabled]="!canNext()">\n        <a\n          role="button"\n          aria-label="go to next page"\n          href="javascript:void(0)"\n          (click)="nextPage()">\n          <i class="{{pagerRightArrowIcon}}"></i>\n        </a>\n      </li>\n      <li [class.disabled]="!canNext()">\n        <a\n          role="button"\n          aria-label="go to last page"\n          href="javascript:void(0)"\n          (click)="selectPage(totalPages)">\n          <i class="{{pagerNextIcon}}"></i>\n        </a>\n      </li>\n    </ul>\n  ',host:{class:"datatable-pager"},changeDetection:o.ChangeDetectionStrategy.OnPush})],t)}()},"./src/components/header/header-cell.component.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/types/index.ts"),s=n("./src/utils/index.ts");n("./src/events.ts"),e.DataTableHeaderCellComponent=function(){function t(t){this.cd=t,this.sort=new o.EventEmitter,this.select=new o.EventEmitter,this.columnContextmenu=new o.EventEmitter(!1),this.sortFn=this.onSort.bind(this),this.selectFn=this.select.emit.bind(this.select),this.cellContext={column:this.column,sortDir:this.sortDir,sortFn:this.sortFn,allRowsSelected:this.allRowsSelected,selectFn:this.selectFn}}return Object.defineProperty(t.prototype,"allRowsSelected",{get:function(){return this._allRowsSelected},set:function(t){this._allRowsSelected=t,this.cellContext.allRowsSelected=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"column",{get:function(){return this._column},set:function(t){this._column=t,this.cellContext.column=t,this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"sorts",{get:function(){return this._sorts},set:function(t){this._sorts=t,this.sortDir=this.calcSortDir(t),this.cellContext.sortDir=this.sortDir,this.sortClass=this.calcSortClass(this.sortDir),this.cd.markForCheck()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columnCssClasses",{get:function(){var t="datatable-header-cell";if(this.column.sortable&&(t+=" sortable"),this.column.resizeable&&(t+=" resizeable"),this.column.headerClass)if("string"==typeof this.column.headerClass)t+=" "+this.column.headerClass;else if("function"==typeof this.column.headerClass){var e=this.column.headerClass({column:this.column});if("string"==typeof e)t+=e;else if("object"==typeof e)for(var n=0,a=Object.keys(e);n<a.length;n++){var r=a[n];!0===e[r]&&(t+=" "+r)}}var o=this.sortDir;return o&&(t+=" sort-active sort-"+o),t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"name",{get:function(){return void 0===this.column.headerTemplate?this.column.name:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"minWidth",{get:function(){return this.column.minWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"maxWidth",{get:function(){return this.column.maxWidth},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"width",{get:function(){return this.column.width},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isCheckboxable",{get:function(){return this.column.checkboxable&&this.column.headerCheckboxable&&this.selectionType===i.SelectionType.checkbox},enumerable:!0,configurable:!0}),t.prototype.onContextmenu=function(t){this.columnContextmenu.emit({event:t,column:this.column})},t.prototype.calcSortDir=function(t){var e=this;if(t&&this.column){var n=t.find((function(t){return t.prop===e.column.prop}));if(n)return n.dir}},t.prototype.onSort=function(){if(this.column.sortable){var t=s.nextSortDir(this.sortType,this.sortDir);this.sort.emit({column:this.column,prevValue:this.sortDir,newValue:t})}},t.prototype.calcSortClass=function(t){return t===i.SortDirection.asc?"sort-btn sort-asc "+this.sortAscendingIcon:t===i.SortDirection.desc?"sort-btn sort-desc "+this.sortDescendingIcon:"sort-btn"},a([o.Input(),r("design:type",String)],t.prototype,"sortType",void 0),a([o.Input(),r("design:type",String)],t.prototype,"sortAscendingIcon",void 0),a([o.Input(),r("design:type",String)],t.prototype,"sortDescendingIcon",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"isTarget",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"targetMarkerContext",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"allRowsSelected",null),a([o.Input(),r("design:type",String)],t.prototype,"selectionType",void 0),a([o.Input(),r("design:type",Object),r("design:paramtypes",[Object])],t.prototype,"column",null),a([o.HostBinding("style.height.px"),o.Input(),r("design:type",Number)],t.prototype,"headerHeight",void 0),a([o.Input(),r("design:type",Array),r("design:paramtypes",[Array])],t.prototype,"sorts",null),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"sort",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"select",void 0),a([o.Output(),r("design:type",Object)],t.prototype,"columnContextmenu",void 0),a([o.HostBinding("class"),r("design:type",Object),r("design:paramtypes",[])],t.prototype,"columnCssClasses",null),a([o.HostBinding("attr.title"),r("design:type",String),r("design:paramtypes",[])],t.prototype,"name",null),a([o.HostBinding("style.minWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"minWidth",null),a([o.HostBinding("style.maxWidth.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"maxWidth",null),a([o.HostBinding("style.width.px"),r("design:type",Number),r("design:paramtypes",[])],t.prototype,"width",null),a([o.HostListener("contextmenu",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onContextmenu",null),a([o.Component({selector:"datatable-header-cell",template:'\n    <div class="datatable-header-cell-template-wrap">\n      <ng-template\n        *ngIf="isTarget"\n        [ngTemplateOutlet]="targetMarkerTemplate"\n        [ngTemplateOutletContext]="targetMarkerContext">\n      </ng-template>\n      <label\n        *ngIf="isCheckboxable"\n        class="datatable-checkbox">\n        <input\n          type="checkbox"\n          [checked]="allRowsSelected"\n          (change)="select.emit(!allRowsSelected)"\n        />\n      </label>\n      <span\n        *ngIf="!column.headerTemplate"\n        class="datatable-header-cell-wrapper">\n        <span\n          class="datatable-header-cell-label draggable"\n          (click)="onSort()"\n          [innerHTML]="name">\n        </span>\n      </span>\n      <ng-template\n        *ngIf="column.headerTemplate"\n        [ngTemplateOutlet]="column.headerTemplate"\n        [ngTemplateOutletContext]="cellContext">\n      </ng-template>\n      <span\n        (click)="onSort()"\n        [class]="sortClass">\n      </span>\n    </div>\n  ',host:{class:"datatable-header-cell"},changeDetection:o.ChangeDetectionStrategy.OnPush}),r("design:paramtypes",[o.ChangeDetectorRef])],t)}()},"./src/components/header/header.component.ts":function(t,e,n){"use strict";var a=this&&this.__assign||function(){return(a=Object.assign||function(t){for(var e,n=1,a=arguments.length;n<a;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)},r=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},o=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/types/index.ts"),c=n("./src/utils/index.ts");e.DataTableHeaderComponent=function(){function t(t){this.cd=t,this.sort=new i.EventEmitter,this.reorder=new i.EventEmitter,this.resize=new i.EventEmitter,this.select=new i.EventEmitter,this.columnContextmenu=new i.EventEmitter(!1),this._styleByGroup={left:{},center:{},right:{}}}return Object.defineProperty(t.prototype,"innerWidth",{get:function(){return this._innerWidth},set:function(t){if(this._innerWidth=t,this._columns){var e=c.columnsByPin(this._columns);this._columnGroupWidths=c.columnGroupWidths(e,this._columns),this.setStylesByGroup()}},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"headerHeight",{get:function(){return this._headerHeight},set:function(t){this._headerHeight="auto"!==t?t+"px":t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"columns",{get:function(){return this._columns},set:function(t){this._columns=t;var e=c.columnsByPin(t);this._columnsByPin=c.columnsByPinArr(t),this._columnGroupWidths=c.columnGroupWidths(e,t),this.setStylesByGroup()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"offsetX",{get:function(){return this._offsetX},set:function(t){this._offsetX=t,this.setStylesByGroup()},enumerable:!0,configurable:!0}),t.prototype.onLongPressStart=function(t){var e=t.event;t.model.dragging=!0,this.dragEventTarget=e},t.prototype.onLongPressEnd=function(t){var e=this,n=t.model;this.dragEventTarget=t.event,setTimeout((function(){var t=e._columns.find((function(t){return t.$$id===n.$$id}));t&&(t.dragging=!1)}),5)},Object.defineProperty(t.prototype,"headerWidth",{get:function(){return this.scrollbarH?this.innerWidth+"px":"100%"},enumerable:!0,configurable:!0}),t.prototype.trackByGroups=function(t,e){return e.type},t.prototype.columnTrackingFn=function(t,e){return e.$$id},t.prototype.onColumnResized=function(t,e){t<=e.minWidth?t=e.minWidth:t>=e.maxWidth&&(t=e.maxWidth),this.resize.emit({column:e,prevValue:e.width,newValue:t})},t.prototype.onColumnReordered=function(t){var e=t.prevIndex,n=t.newIndex,a=t.model,r=this.getColumn(n);r.isTarget=!1,r.targetMarkerContext=void 0,this.reorder.emit({column:a,prevValue:e,newValue:n})},t.prototype.onTargetChanged=function(t){var e=t.prevIndex,n=t.newIndex,a=t.initialIndex;if(e||0===e){var r=this.getColumn(e);r.isTarget=!1,r.targetMarkerContext=void 0}if(n||0===n){var o=this.getColumn(n);o.isTarget=!0,a!==n&&(o.targetMarkerContext={class:"targetMarker ".concat(a>n?"dragFromRight":"dragFromLeft")})}},t.prototype.getColumn=function(t){var e=this._columnsByPin[0].columns.length;if(t<e)return this._columnsByPin[0].columns[t];var n=this._columnsByPin[1].columns.length;return t<e+n?this._columnsByPin[1].columns[t-e]:this._columnsByPin[2].columns[t-e-n]},t.prototype.onSort=function(t){var e=t.column,n=t.prevValue,a=t.newValue;if(!e.dragging){var r=this.calcNewSorts(e,n,a);this.sort.emit({sorts:r,column:e,prevValue:n,newValue:a})}},t.prototype.calcNewSorts=function(t,e,n){var r=0;this.sorts||(this.sorts=[]);var o=this.sorts.map((function(e,n){return(e=a({},e)).prop===t.prop&&(r=n),e}));return void 0===n?o.splice(r,1):e?o[r].dir=n:(this.sortType===s.SortType.single&&o.splice(0,this.sorts.length),o.push({dir:n,prop:t.prop})),o},t.prototype.setStylesByGroup=function(){this._styleByGroup.left=this.calcStylesByGroup("left"),this._styleByGroup.center=this.calcStylesByGroup("center"),this._styleByGroup.right=this.calcStylesByGroup("right"),this.cd.detectChanges()},t.prototype.calcStylesByGroup=function(t){var e=this._columnGroupWidths,n={width:e[t]+"px"};return"center"===t?c.translateXY(n,-1*this.offsetX,0):"right"===t&&c.translateXY(n,-1*(e.total-this.innerWidth),0),n},r([i.Input(),o("design:type",Object)],t.prototype,"sortAscendingIcon",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"sortDescendingIcon",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"scrollbarH",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"dealsWithGroup",void 0),r([i.Input(),o("design:type",Object)],t.prototype,"targetMarkerTemplate",void 0),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"innerWidth",null),r([i.Input(),o("design:type",Array)],t.prototype,"sorts",void 0),r([i.Input(),o("design:type",String)],t.prototype,"sortType",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"allRowsSelected",void 0),r([i.Input(),o("design:type",String)],t.prototype,"selectionType",void 0),r([i.Input(),o("design:type",Boolean)],t.prototype,"reorderable",void 0),r([i.HostBinding("style.height"),i.Input(),o("design:type",Object),o("design:paramtypes",[Object])],t.prototype,"headerHeight",null),r([i.Input(),o("design:type",Array),o("design:paramtypes",[Array])],t.prototype,"columns",null),r([i.Input(),o("design:type",Number),o("design:paramtypes",[Number])],t.prototype,"offsetX",null),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"sort",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"reorder",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"resize",void 0),r([i.Output(),o("design:type",i.EventEmitter)],t.prototype,"select",void 0),r([i.Output(),o("design:type",Object)],t.prototype,"columnContextmenu",void 0),r([i.HostBinding("style.width"),o("design:type",String),o("design:paramtypes",[])],t.prototype,"headerWidth",null),r([i.Component({selector:"datatable-header",template:'\n    <div\n      orderable\n      (reorder)="onColumnReordered($event)"\n      (targetChanged)="onTargetChanged($event)"\n      [style.width.px]="_columnGroupWidths.total"\n      class="datatable-header-inner">\n      <div\n        *ngFor="let colGroup of _columnsByPin; trackBy: trackByGroups"\n        [class]="\'datatable-row-\' + colGroup.type"\n        [ngStyle]="_styleByGroup[colGroup.type]">\n        <datatable-header-cell\n          *ngFor="let column of colGroup.columns; trackBy: columnTrackingFn"\n          resizeable\n          [resizeEnabled]="column.resizeable"\n          (resize)="onColumnResized($event, column)"\n          long-press\n          [pressModel]="column"\n          [pressEnabled]="reorderable && column.draggable"\n          (longPressStart)="onLongPressStart($event)"\n          (longPressEnd)="onLongPressEnd($event)"\n          draggable\n          [dragX]="reorderable && column.draggable && column.dragging"\n          [dragY]="false"\n          [dragModel]="column"\n          [dragEventTarget]="dragEventTarget"\n          [headerHeight]="headerHeight"\n          [isTarget]="column.isTarget"\n          [targetMarkerTemplate]="targetMarkerTemplate"\n          [targetMarkerContext]="column.targetMarkerContext"\n          [column]="column"\n          [sortType]="sortType"\n          [sorts]="sorts"\n          [selectionType]="selectionType"\n          [sortAscendingIcon]="sortAscendingIcon"\n          [sortDescendingIcon]="sortDescendingIcon"\n          [allRowsSelected]="allRowsSelected"\n          (sort)="onSort($event)"\n          (select)="select.emit($event)"\n          (columnContextmenu)="columnContextmenu.emit($event)">\n        </datatable-header-cell>\n      </div>\n    </div>\n  ',host:{class:"datatable-header"},changeDetection:i.ChangeDetectionStrategy.OnPush}),o("design:paramtypes",[i.ChangeDetectorRef])],t)}()},"./src/components/header/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/header/header.component.ts")),a(n("./src/components/header/header-cell.component.ts"))},"./src/components/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/datatable.component.ts")),a(n("./src/components/header/index.ts")),a(n("./src/components/body/index.ts")),a(n("./src/components/footer/index.ts")),a(n("./src/components/columns/index.ts")),a(n("./src/components/row-detail/index.ts"))},"./src/components/row-detail/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/components/row-detail/row-detail.directive.ts")),a(n("./src/components/row-detail/row-detail-template.directive.ts"))},"./src/components/row-detail/row-detail-template.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.DatatableRowDetailTemplateDirective=function(){return a([o.Directive({selector:"[ngx-datatable-row-detail-template]"}),r("design:paramtypes",[o.TemplateRef])],(function(t){this.template=t}))}()},"./src/components/row-detail/row-detail.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("./src/components/row-detail/row-detail-template.directive.ts");e.DatatableRowDetailDirective=function(){function t(){this.rowHeight=0,this.toggle=new o.EventEmitter}return t.prototype.toggleExpandRow=function(t){this.toggle.emit({type:"row",value:t})},t.prototype.expandAllRows=function(){this.toggle.emit({type:"all",value:!0})},t.prototype.collapseAllRows=function(){this.toggle.emit({type:"all",value:!1})},a([o.Input(),r("design:type",Object)],t.prototype,"rowHeight",void 0),a([o.Input(),o.ContentChild(i.DatatableRowDetailTemplateDirective,{read:o.TemplateRef,static:!0}),r("design:type",o.TemplateRef)],t.prototype,"template",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"toggle",void 0),a([o.Directive({selector:"ngx-datatable-row-detail"})],t)}()},"./src/datatable.module.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),o=n("@angular/common"),i=n("./src/components/index.ts"),s=n("./src/directives/index.ts"),c=n("./src/services/index.ts");e.NgxDatatableModule=function(){return a([r.NgModule({imports:[o.CommonModule],providers:[c.ScrollbarHelper,c.DimensionsHelper,c.ColumnChangesService],declarations:[i.DataTableFooterTemplateDirective,s.VisibilityDirective,s.DraggableDirective,s.ResizeableDirective,s.OrderableDirective,s.LongPressDirective,i.ScrollerComponent,i.DatatableComponent,i.DataTableColumnDirective,i.DataTableHeaderComponent,i.DataTableHeaderCellComponent,i.DataTableBodyComponent,i.DataTableFooterComponent,i.DataTablePagerComponent,i.ProgressBarComponent,i.DataTableBodyRowComponent,i.DataTableRowWrapperComponent,i.DatatableRowDetailDirective,i.DatatableGroupHeaderDirective,i.DatatableRowDetailTemplateDirective,i.DataTableBodyCellComponent,i.DataTableSelectionComponent,i.DataTableColumnHeaderDirective,i.DataTableColumnCellDirective,i.DataTableColumnCellTreeToggle,i.DatatableFooterDirective,i.DatatableGroupHeaderTemplateDirective,i.DataTableSummaryRowComponent],exports:[i.DatatableComponent,i.DatatableRowDetailDirective,i.DatatableGroupHeaderDirective,i.DatatableRowDetailTemplateDirective,i.DataTableColumnDirective,i.DataTableColumnHeaderDirective,i.DataTableColumnCellDirective,i.DataTableColumnCellTreeToggle,i.DataTableFooterTemplateDirective,i.DatatableFooterDirective,i.DataTablePagerComponent,i.DatatableGroupHeaderTemplateDirective]})],(function(){}))}()},"./src/directives/draggable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("rxjs"),s=n("rxjs/operators");e.DraggableDirective=function(){function t(t){this.dragX=!0,this.dragY=!0,this.dragStart=new o.EventEmitter,this.dragging=new o.EventEmitter,this.dragEnd=new o.EventEmitter,this.isDragging=!1,this.element=t.nativeElement}return t.prototype.ngOnChanges=function(t){t.dragEventTarget&&t.dragEventTarget.currentValue&&this.dragModel.dragging&&this.onMousedown(t.dragEventTarget.currentValue)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(t){this.isDragging&&(this.isDragging=!1,this.element.classList.remove("dragging"),this.subscription&&(this._destroySubscription(),this.dragEnd.emit({event:t,element:this.element,model:this.dragModel})))},t.prototype.onMousedown=function(t){var e=this;if(t.target.classList.contains("draggable")&&(this.dragX||this.dragY)){t.preventDefault(),this.isDragging=!0;var n={x:t.clientX,y:t.clientY},a=i.fromEvent(document,"mouseup");this.subscription=a.subscribe((function(t){return e.onMouseup(t)}));var r=i.fromEvent(document,"mousemove").pipe(s.takeUntil(a)).subscribe((function(t){return e.move(t,n)}));this.subscription.add(r),this.dragStart.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype.move=function(t,e){if(this.isDragging){var n=t.clientY-e.y;this.dragX&&(this.element.style.left=t.clientX-e.x+"px"),this.dragY&&(this.element.style.top=n+"px"),this.element.classList.add("dragging"),this.dragging.emit({event:t,element:this.element,model:this.dragModel})}},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Object)],t.prototype,"dragEventTarget",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"dragModel",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"dragX",void 0),a([o.Input(),r("design:type",Boolean)],t.prototype,"dragY",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragStart",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragging",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"dragEnd",void 0),a([o.Directive({selector:"[draggable]"}),r("design:paramtypes",[o.ElementRef])],t)}()},"./src/directives/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/directives/draggable.directive.ts")),a(n("./src/directives/long-press.directive.ts")),a(n("./src/directives/orderable.directive.ts")),a(n("./src/directives/resizeable.directive.ts")),a(n("./src/directives/visibility.directive.ts"))},"./src/directives/long-press.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("rxjs"),s=n("rxjs/operators");n("./src/events.ts"),e.LongPressDirective=function(){function t(){this.pressEnabled=!0,this.duration=500,this.longPressStart=new o.EventEmitter,this.longPressing=new o.EventEmitter,this.longPressEnd=new o.EventEmitter,this.mouseX=0,this.mouseY=0}return Object.defineProperty(t.prototype,"press",{get:function(){return this.pressing},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"isLongPress",{get:function(){return this.isLongPressing},enumerable:!0,configurable:!0}),t.prototype.onMouseDown=function(t){var e=this;if(1===t.which&&this.pressEnabled&&!t.target.classList.contains("resize-handle")){this.mouseX=t.clientX,this.mouseY=t.clientY,this.pressing=!0,this.isLongPressing=!1;var n=i.fromEvent(document,"mouseup");this.subscription=n.subscribe((function(t){return e.onMouseup()})),this.timeout=setTimeout((function(){e.isLongPressing=!0,e.longPressStart.emit({event:t,model:e.pressModel}),e.subscription.add(i.fromEvent(document,"mousemove").pipe(s.takeUntil(n)).subscribe((function(t){return e.onMouseMove(t)}))),e.loop(t)}),this.duration),this.loop(t)}},t.prototype.onMouseMove=function(t){if(this.pressing&&!this.isLongPressing){var e=Math.abs(t.clientX-this.mouseX)>10,n=Math.abs(t.clientY-this.mouseY)>10;(e||n)&&this.endPress()}},t.prototype.loop=function(t){var e=this;this.isLongPressing&&(this.timeout=setTimeout((function(){e.longPressing.emit({event:t,model:e.pressModel}),e.loop(t)}),50))},t.prototype.endPress=function(){clearTimeout(this.timeout),this.isLongPressing=!1,this.pressing=!1,this._destroySubscription(),this.longPressEnd.emit({model:this.pressModel})},t.prototype.onMouseup=function(){this.endPress()},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Boolean)],t.prototype,"pressEnabled",void 0),a([o.Input(),r("design:type",Object)],t.prototype,"pressModel",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"duration",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressStart",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressing",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"longPressEnd",void 0),a([o.HostBinding("class.press"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"press",null),a([o.HostBinding("class.longpress"),r("design:type",Boolean),r("design:paramtypes",[])],t.prototype,"isLongPress",null),a([o.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMouseDown",null),a([o.Directive({selector:"[long-press]"})],t)}()},"./src/directives/orderable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("./src/directives/draggable.directive.ts"),c=n("@angular/common");e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new i.EventEmitter,this.targetChanged=new i.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach((function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()}))},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e<n.length;e++){var a=n[e],r=a.element,o=parseInt(r.offsetLeft.toString(),0);this.positions[a.dragModel.prop]={left:o,right:o+parseInt(r.offsetWidth.toString(),0),index:t++,element:r}}},t.prototype.onDragging=function(t){var e=t.model,n=this.positions[e.prop],a=this.isTarget(e,t.event);a?this.lastDraggingIndex!==a.i&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,newIndex:a.i,initialIndex:n.index}),this.lastDraggingIndex=a.i):this.lastDraggingIndex!==n.index&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,initialIndex:n.index}),this.lastDraggingIndex=n.index)},t.prototype.onDragEnd=function(t){var e=t.element,n=t.model,a=this.positions[n.prop],r=this.isTarget(n,t.event);r&&this.reorder.emit({prevIndex:a.index,newIndex:r.i,model:n}),this.lastDraggingIndex=void 0,e.style.left="auto"},t.prototype.isTarget=function(t,e){var n=0,a=this.document.elementsFromPoint(e.x||e.clientX,e.y||e.clientY),r=function(e){var r=o.positions[e];if(t.prop!==e&&a.find((function(t){return t===r.element})))return{value:{pos:r,i:n}};n++},o=this;for(var i in this.positions){var s=r(i);if("object"==typeof s)return s.value}},t.prototype.createMapDiffs=function(){return this.draggables.toArray().reduce((function(t,e){return t[e.dragModel.$$id]=e,t}),{})},a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"reorder",void 0),a([i.Output(),r("design:type",i.EventEmitter)],t.prototype,"targetChanged",void 0),a([i.ContentChildren(s.DraggableDirective,{descendants:!0}),r("design:type",i.QueryList)],t.prototype,"draggables",void 0),a([i.Directive({selector:"[orderable]"}),o(1,i.Inject(c.DOCUMENT)),r("design:paramtypes",[i.KeyValueDiffers,Object])],t)}()},"./src/directives/resizeable.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core"),i=n("rxjs"),s=(n("./src/events.ts"),n("rxjs/operators"));e.ResizeableDirective=function(){function t(t,e){this.renderer=e,this.resizeEnabled=!0,this.resize=new o.EventEmitter,this.resizing=!1,this.element=t.nativeElement}return t.prototype.ngAfterViewInit=function(){var t=this.renderer,e=t.createElement("span");t.addClass(e,this.resizeEnabled?"resize-handle":"resize-handle--not-resizable"),t.appendChild(this.element,e)},t.prototype.ngOnDestroy=function(){this._destroySubscription()},t.prototype.onMouseup=function(){this.resizing=!1,this.subscription&&!this.subscription.closed&&(this._destroySubscription(),this.resize.emit(this.element.clientWidth))},t.prototype.onMousedown=function(t){var e=this,n=t.target.classList.contains("resize-handle"),a=this.element.clientWidth,r=t.screenX;if(n){t.stopPropagation(),this.resizing=!0;var o=i.fromEvent(document,"mouseup");this.subscription=o.subscribe((function(t){return e.onMouseup()}));var c=i.fromEvent(document,"mousemove").pipe(s.takeUntil(o)).subscribe((function(t){return e.move(t,a,r)}));this.subscription.add(c)}},t.prototype.move=function(t,e,n){var a=e+(t.screenX-n);(!this.minWidth||a>=this.minWidth)&&(!this.maxWidth||a<=this.maxWidth)&&(this.element.style.width=a+"px")},t.prototype._destroySubscription=function(){this.subscription&&(this.subscription.unsubscribe(),this.subscription=void 0)},a([o.Input(),r("design:type",Boolean)],t.prototype,"resizeEnabled",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"minWidth",void 0),a([o.Input(),r("design:type",Number)],t.prototype,"maxWidth",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"resize",void 0),a([o.HostListener("mousedown",["$event"]),r("design:type",Function),r("design:paramtypes",[Object]),r("design:returntype",void 0)],t.prototype,"onMousedown",null),a([o.Directive({selector:"[resizeable]",host:{"[class.resizeable]":"resizeEnabled"}}),r("design:paramtypes",[o.ElementRef,o.Renderer2])],t)}()},"./src/directives/visibility.directive.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};Object.defineProperty(e,"__esModule",{value:!0});var o=n("@angular/core");e.VisibilityDirective=function(){function t(t,e){this.element=t,this.zone=e,this.isVisible=!1,this.visible=new o.EventEmitter}return t.prototype.ngOnInit=function(){this.runCheck()},t.prototype.ngOnDestroy=function(){clearTimeout(this.timeout)},t.prototype.onVisibilityChange=function(){var t=this;this.zone.run((function(){t.isVisible=!0,t.visible.emit(!0)}))},t.prototype.runCheck=function(){var t=this,e=function(){var n=t.element.nativeElement;n.offsetHeight&&n.offsetWidth?(clearTimeout(t.timeout),t.onVisibilityChange()):(clearTimeout(t.timeout),t.zone.runOutsideAngular((function(){t.timeout=setTimeout((function(){return e()}),50)})))};this.timeout=setTimeout((function(){return e()}))},a([o.HostBinding("class.visible"),r("design:type",Boolean)],t.prototype,"isVisible",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"visible",void 0),a([o.Directive({selector:"[visibilityObserver]"}),r("design:paramtypes",[o.ElementRef,o.NgZone])],t)}()},"./src/events.ts":function(t,e,n){"use strict";(function(t){Object.defineProperty(e,"__esModule",{value:!0}),e.MouseEvent=("undefined"!=typeof window&&window||t).MouseEvent,e.KeyboardEvent=("undefined"!=typeof window&&window||t).KeyboardEvent,e.Event=("undefined"!=typeof window&&window||t).Event}).call(e,n("./node_modules/webpack/buildin/global.js"))},"./src/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/datatable.module.ts")),a(n("./src/types/index.ts")),a(n("./src/components/index.ts")),a(n("./src/services/index.ts"))},"./src/services/column-changes.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core"),o=n("rxjs");e.ColumnChangesService=function(){function t(){this.columnInputChanges=new o.Subject}return Object.defineProperty(t.prototype,"columnInputChanges$",{get:function(){return this.columnInputChanges.asObservable()},enumerable:!0,configurable:!0}),t.prototype.onInputChange=function(){this.columnInputChanges.next()},a([r.Injectable()],t)}()},"./src/services/dimensions-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i};Object.defineProperty(e,"__esModule",{value:!0});var r=n("@angular/core");e.DimensionsHelper=function(){function t(){}return t.prototype.getDimensions=function(t){return t.getBoundingClientRect()},a([r.Injectable()],t)}()},"./src/services/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/services/scrollbar-helper.service.ts")),a(n("./src/services/dimensions-helper.service.ts")),a(n("./src/services/column-changes.service.ts"))},"./src/services/scrollbar-helper.service.ts":function(t,e,n){"use strict";var a=this&&this.__decorate||function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i},r=this&&this.__metadata||function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},o=this&&this.__param||function(t,e){return function(n,a){e(n,a,t)}};Object.defineProperty(e,"__esModule",{value:!0});var i=n("@angular/core"),s=n("@angular/common");e.ScrollbarHelper=function(){function t(t){this.document=t,this.width=this.getWidth()}return t.prototype.getWidth=function(){var t=this.document.createElement("div");t.style.visibility="hidden",t.style.width="100px",t.style.msOverflowStyle="scrollbar",this.document.body.appendChild(t);var e=t.offsetWidth;t.style.overflow="scroll";var n=this.document.createElement("div");n.style.width="100%",t.appendChild(n);var a=n.offsetWidth;return t.parentNode.removeChild(t),e-a},a([i.Injectable(),o(0,i.Inject(s.DOCUMENT)),r("design:paramtypes",[Object])],t)}()},"./src/types/click.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.ClickType||(e.ClickType={})).single="single",a.double="double"},"./src/types/column-mode.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.ColumnMode||(e.ColumnMode={})).standard="standard",a.flex="flex",a.force="force"},"./src/types/contextmenu.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.ContextmenuType||(e.ContextmenuType={})).header="header",a.body="body"},"./src/types/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/types/column-mode.type.ts")),a(n("./src/types/sort.type.ts")),a(n("./src/types/sort-direction.type.ts")),a(n("./src/types/selection.type.ts")),a(n("./src/types/click.type.ts")),a(n("./src/types/contextmenu.type.ts"))},"./src/types/selection.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.SelectionType||(e.SelectionType={})).single="single",a.multi="multi",a.multiClick="multiClick",a.cell="cell",a.checkbox="checkbox"},"./src/types/sort-direction.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.SortDirection||(e.SortDirection={})).asc="asc",a.desc="desc"},"./src/types/sort.type.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.SortType||(e.SortType={})).single="single",a.multi="multi"},"./src/utils/camel-case.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.camelCase=function(t){return(t=(t=(t=t.replace(/[^a-zA-Z0-9 ]/g," ")).replace(/([a-z](?=[A-Z]))/g,"$1 ")).replace(/([^a-zA-Z0-9 ])|^[0-9]+/g,"").trim().toLowerCase()).replace(/([ 0-9]+)([a-zA-Z])/g,(function(t,e,n){return e.trim()+n.toUpperCase()}))},e.deCamelCase=function(t){return t.replace(/([A-Z])/g,(function(t){return" "+t})).replace(/^./,(function(t){return t.toUpperCase()}))}},"./src/utils/column-helper.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/camel-case.ts"),r=n("./src/utils/id.ts"),o=n("./src/utils/column-prop-getters.ts");function i(t){return null==t}e.setColumnDefaults=function(t){if(t)for(var e=!1,n=0,s=t;n<s.length;n++){var c=s[n];c.$$id||(c.$$id=r.id()),i(c.prop)&&c.name&&(c.prop=a.camelCase(c.name)),c.$$valueGetter||(c.$$valueGetter=o.getterForProp(c.prop)),!i(c.prop)&&i(c.name)&&(c.name=a.deCamelCase(String(c.prop))),i(c.prop)&&i(c.name)&&(c.name=""),c.hasOwnProperty("resizeable")||(c.resizeable=!0),c.hasOwnProperty("sortable")||(c.sortable=!0),c.hasOwnProperty("draggable")||(c.draggable=!0),c.hasOwnProperty("canAutoResize")||(c.canAutoResize=!0),c.hasOwnProperty("width")||(c.width=150),c.hasOwnProperty("isTreeColumn")&&c.isTreeColumn&&!e?e=!0:c.isTreeColumn=!1}},e.isNullOrUndefined=i,e.translateTemplates=function(t){for(var e=[],n=0,a=t;n<a.length;n++){for(var r=a[n],o={},i=0,s=Object.getOwnPropertyNames(r);i<s.length;i++){var c=s[i];o[c]=r[c]}r.headerTemplate&&(o.headerTemplate=r.headerTemplate),r.cellTemplate&&(o.cellTemplate=r.cellTemplate),r.summaryFunc&&(o.summaryFunc=r.summaryFunc),r.summaryTemplate&&(o.summaryTemplate=r.summaryTemplate),e.push(o)}return e}},"./src/utils/column-prop-getters.ts":function(t,e,n){"use strict";function a(){return""}function r(t,e){if(null==t)return"";if(!t||null==e)return t;var n=t[e];return null==n?"":n}function o(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];return null==n?"":n}function i(t,e){if(null==t)return"";if(!t||!e)return t;var n=t[e];if(void 0!==n)return n;n=t;var a=e.split(".");if(a.length)for(var r=0;r<a.length;r++)if(null==(n=n[a[r]]))return"";return n}Object.defineProperty(e,"__esModule",{value:!0}),e.emptyStringGetter=a,e.getterForProp=function(t){return null==t?a:"number"==typeof t?r:-1!==t.indexOf(".")?i:o},e.numericIndexGetter=r,e.shallowValueGetter=o,e.deepValueGetter=i},"./src/utils/column.ts":function(t,e,n){"use strict";function a(t){var e={left:[],center:[],right:[]};if(t)for(var n=0,a=t;n<a.length;n++){var r=a[n];r.frozenLeft?e.left.push(r):r.frozenRight?e.right.push(r):e.center.push(r)}return e}function r(t,e){var n=0;if(t)for(var a=0,r=t;a<r.length;a++){var o=r[a];n+=parseFloat(e&&o[e]?o[e]:o.width)}return n}Object.defineProperty(e,"__esModule",{value:!0}),e.columnsByPin=a,e.columnGroupWidths=function(t,e){return{left:r(t.left),center:r(t.center),right:r(t.right),total:Math.floor(r(e))}},e.columnTotalWidth=r,e.columnsTotalWidth=function(t,e){for(var n=0,a=0,r=t;a<r.length;a++){var o=r[a];n+=e&&o[e]?o[e]:o.width}return n},e.columnsByPinArr=function(t){var e=[],n=a(t);return e.push({type:"left",columns:n.left}),e.push({type:"center",columns:n.center}),e.push({type:"right",columns:n.right}),e}},"./src/utils/elm-from-point.ts":function(t,e,n){"use strict";function a(t,e){for(var n,a,r,o=[],i=[];(n=document.elementFromPoint(t,e))&&-1===o.indexOf(n)&&null!=n;)o.push(n),i.push({value:n.style.getPropertyValue("pointer-events"),priority:n.style.getPropertyPriority("pointer-events")}),n.style.setProperty("pointer-events","none","important");for(a=i.length;r=i[--a];)o[a].style.setProperty("pointer-events",r.value?r.value:"",r.priority);return o}Object.defineProperty(e,"__esModule",{value:!0}),"undefined"==typeof document||document.elementsFromPoint||(document.elementsFromPoint=a),e.elementsFromPoint=a},"./src/utils/id.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.id=function(){return("0000"+(Math.random()*Math.pow(36,4)<<0).toString(36)).slice(-4)}},"./src/utils/index.ts":function(t,e,n){"use strict";function a(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),a(n("./src/utils/id.ts")),a(n("./src/utils/column.ts")),a(n("./src/utils/column-prop-getters.ts")),a(n("./src/utils/camel-case.ts")),a(n("./src/utils/keys.ts")),a(n("./src/utils/math.ts")),a(n("./src/utils/prefixes.ts")),a(n("./src/utils/selection.ts")),a(n("./src/utils/translate.ts")),a(n("./src/utils/throttle.ts")),a(n("./src/utils/sort.ts")),a(n("./src/utils/row-height-cache.ts")),a(n("./src/utils/column-helper.ts")),a(n("./src/utils/elm-from-point.ts")),a(n("./src/utils/tree.ts"))},"./src/utils/keys.ts":function(t,e,n){"use strict";var a;Object.defineProperty(e,"__esModule",{value:!0}),(a=e.Keys||(e.Keys={}))[a.up=38]="up",a[a.down=40]="down",a[a.return=13]="return",a[a.escape=27]="escape",a[a.left=37]="left",a[a.right=39]="right"},"./src/utils/math.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/column.ts");function r(t){for(var e=0,n=0,a=t;n<a.length;n++)e+=a[n].flexGrow||0;return e}function o(t,e){for(var n=0,a=e;n<a.length;n++){var r=t.indexOf(a[n]);t.splice(r,1)}}function i(t,e){void 0===e&&(e=300);for(var n=0,a=0,r=t;a<r.length;a++)n+=r[a].width||e;return n}e.getTotalFlexGrow=r,e.adjustColumnWidths=function(t,e){var n=a.columnsTotalWidth(t),o=r(t),i=a.columnsByPin(t);n!==e&&function(t,e,n){for(var a in t)for(var r=0,o=t[a];r<o.length;r++)(u=o[r]).canAutoResize?u.width=0:(e-=u.width,n-=u.flexGrow?u.flexGrow:0);var i={},s=e;do{var c=s/n;for(var a in s=0,t)for(var l=0,d=t[a];l<d.length;l++){var u;if((u=d[l]).canAutoResize&&!i[u.prop]){var g=u.width+u.flexGrow*c;void 0!==u.minWidth&&g<u.minWidth?(s+=g-u.minWidth,u.width=u.minWidth,i[u.prop]=!0):u.width=g}}}while(0!==s)}(i,e,o)},e.forceFillColumnWidths=function(t,e,n,a,r){void 0===r&&(r=300);for(var s=t.slice(n+1,t.length).filter((function(t){return!1!==t.canAutoResize})),c=0,l=s;c<l.length;c++)(b=l[c]).$$oldWidth||(b.$$oldWidth=b.width);var d=0,u=!1,g=i(t,r),f=e-g,p=[];do{d=f/s.length,u=g>=e;for(var m=0,h=s;m<h.length;m++){var b=h[m];if(u&&a)b.width=b.$$oldWidth||b.width||r;else{var y=(b.width||r)+d;b.minWidth&&y<b.minWidth?(b.width=b.minWidth,p.push(b)):b.maxWidth&&y>b.maxWidth?(b.width=b.maxWidth,p.push(b)):b.width=y}b.width=Math.max(0,b.width)}f=e-(g=i(t)),o(s,p)}while(f>0&&0!==s.length)}},"./src/utils/prefixes.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a,r,o,i,s=n("./src/utils/camel-case.ts"),c={},l="undefined"!=typeof document?document.createElement("div").style:void 0,d=(i=void 0!==(o=null!==(r=void 0!==(a="undefined"!=typeof window?window.getComputedStyle(document.documentElement,""):void 0)?Array.prototype.slice.call(a).join("").match(/-(moz|webkit|ms)-/):null)?r[1]:void 0)?"WebKit|Moz|MS|O".match(new RegExp("("+o+")","i"))[1]:void 0)?{dom:i,lowercase:o,css:"-"+o+"-",js:o[0].toUpperCase()+o.substr(1)}:void 0;e.getVendorPrefixedName=function(t){var e=s.camelCase(t);return c[e]||(void 0!==d&&void 0!==l[d.css+t]?c[e]=d.css+t:void 0!==l[t]&&(c[e]=t)),c[e]}},"./src/utils/row-height-cache.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.RowHeightCache=function(){function t(){this.treeArray=[]}return t.prototype.clearCache=function(){this.treeArray=[]},t.prototype.initCache=function(t){var e=t.rows,n=t.rowHeight,a=t.detailRowHeight,r=t.externalVirtual,o=t.rowCount,i=t.rowIndexes,s=t.rowExpansions,c="function"==typeof n,l="function"==typeof a;if(!c&&isNaN(n))throw new Error("Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n        valid number or function value: ("+n+") when 'scrollbarV' is enabled.");if(!l&&isNaN(a))throw new Error("Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n        valid number or function value: ("+a+") when 'scrollbarV' is enabled.");var d=r?o:e.length;this.treeArray=new Array(d);for(var u=0;u<d;++u)this.treeArray[u]=0;for(u=0;u<d;++u){var g=e[u],f=n;c&&(f=n(g));var p=s.get(g);g&&1===p&&(f+=l?a(g,i.get(g)):a),this.update(u,f)}},t.prototype.getRowIndex=function(t){return 0===t?0:this.calcRowIndex(t)},t.prototype.update=function(t,e){if(!this.treeArray.length)throw new Error("Update at index "+t+" with value "+e+" failed:\n        Row Height cache not initialized.");var n=this.treeArray.length;for(t|=0;t<n;)this.treeArray[t]+=e,t|=t+1},t.prototype.query=function(t){if(!this.treeArray.length)throw new Error("query at index "+t+" failed: Fenwick tree array not initialized.");var e=0;for(t|=0;t>=0;)e+=this.treeArray[t],t=(t&t+1)-1;return e},t.prototype.queryBetween=function(t,e){return this.query(e)-this.query(t-1)},t.prototype.calcRowIndex=function(t){if(!this.treeArray.length)return 0;for(var e=-1,n=this.treeArray.length,a=Math.pow(2,n.toString(2).length-1);0!==a;a>>=1){var r=e+a;r<n&&t>=this.treeArray[r]&&(t-=this.treeArray[r],e=r)}return e+1},t}()},"./src/utils/selection.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.selectRows=function(t,e,n){var a=n(e,t);return a>-1?t.splice(a,1):t.push(e),t},e.selectRowsBetween=function(t,e,n,a,r){for(var o=n<a,i=0;i<e.length;i++){var s;s=o?{start:n,end:a}:{start:a,end:n+1},(o&&i<=a&&i>=n||!o&&i>=a&&i<=n)&&i>=s.start&&i<=s.end&&t.push(e[i])}return t}},"./src/utils/sort.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/types/index.ts"),r=n("./src/utils/column-prop-getters.ts");function o(t,e){if(null==t&&(t=0),null==e&&(e=0),t instanceof Date&&e instanceof Date){if(t<e)return-1;if(t>e)return 1}else if(isNaN(parseFloat(t))||!isFinite(t)||isNaN(parseFloat(e))||!isFinite(e)){if(t=String(t),e=String(e),t.toLowerCase()<e.toLowerCase())return-1;if(t.toLowerCase()>e.toLowerCase())return 1}else{if(parseFloat(t)<parseFloat(e))return-1;if(parseFloat(t)>parseFloat(e))return 1}return 0}e.nextSortDir=function(t,e){return t===a.SortType.single?e===a.SortDirection.asc?a.SortDirection.desc:a.SortDirection.asc:e?e===a.SortDirection.asc?a.SortDirection.desc:void 0:a.SortDirection.asc},e.orderByComparator=o,e.sortRows=function(t,e,n){if(!t)return[];if(!n||!n.length||!e)return t.slice();var i=new Map;t.forEach((function(t,e){return i.set(t,e)}));var s=t.slice(),c=e.reduce((function(t,e){return e.comparator&&"function"==typeof e.comparator&&(t[e.prop]=e.comparator),t}),{}),l=n.map((function(t){var e=t.prop;return{prop:e,dir:t.dir,valueGetter:r.getterForProp(e),compareFn:c[e]||o}}));return s.sort((function(t,e){for(var n=0,r=l;n<r.length;n++){var o=r[n],s=o.prop,c=o.valueGetter,d=c(t,s),u=c(e,s),g=o.dir!==a.SortDirection.desc?o.compareFn(d,u,t,e,o.dir):-o.compareFn(d,u,t,e,o.dir);if(0!==g)return g}return i.has(t)&&i.has(e)?i.get(t)<i.get(e)?-1:1:0}))}},"./src/utils/throttle.ts":function(t,e,n){"use strict";function a(t,e,n){var a,r,o;n=n||{};var i=null,s=0;function c(){s=!1===n.leading?0:+new Date,i=null,o=t.apply(a,r)}return function(){var l=+new Date;s||!1!==n.leading||(s=l);var d=e-(l-s);return a=this,r=arguments,d<=0?(clearTimeout(i),i=null,s=l,o=t.apply(a,r)):i||!1===n.trailing||(i=setTimeout(c,d)),o}}Object.defineProperty(e,"__esModule",{value:!0}),e.throttle=a,e.throttleable=function(t,e){return function(n,r,o){return{configurable:!0,enumerable:o.enumerable,get:function(){return Object.defineProperty(this,r,{configurable:!0,enumerable:o.enumerable,value:a(o.value,t,e)}),this[r]}}}}},"./src/utils/translate.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/prefixes.ts"),r=n("./src/utils/camel-case.ts"),o="undefined"!=typeof window?a.getVendorPrefixedName("transform"):void 0,i="undefined"!=typeof window?a.getVendorPrefixedName("backfaceVisibility"):void 0,s="undefined"!=typeof window?!!a.getVendorPrefixedName("transform"):void 0,c="undefined"!=typeof window?!!a.getVendorPrefixedName("perspective"):void 0,l="undefined"!=typeof window?window.navigator.userAgent:"Chrome",d=/Safari\//.test(l)&&!/Chrome\//.test(l);e.translateXY=function(t,e,n){void 0!==o&&s?!d&&c?(t[o]="translate3d("+e+"px, "+n+"px, 0)",t[i]="hidden"):t[r.camelCase(o)]="translate("+e+"px, "+n+"px)":(t.top=n+"px",t.left=e+"px")}},"./src/utils/tree.ts":function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var a=n("./src/utils/column-prop-getters.ts");e.optionalGetterForProp=function(t){return t&&function(e){return a.getterForProp(t)(e,t)}},e.groupRowsByParents=function(t,e,n){if(e&&n){var a={},o=t.length,i=null;a[0]=new r;for(var s=t.reduce((function(t,e){var a=n(e);return-1===t.indexOf(a)&&t.push(a),t}),[]),c=0;c<o;c++)a[n(t[c])]=new r(t[c]);for(c=0;c<o;c++){var l=0,d=e((i=a[n(t[c])]).row);d&&s.indexOf(d)>-1&&(l=d),i.parent=a[l],i.row.level=i.parent.row.level+1,i.parent.children.push(i)}var u=[];return a[0].flatten((function(){u=u.concat([this.row])}),!0),u}return t};var r=function(){function t(t){void 0===t&&(t=null),t||(t={level:-1,treeStatus:"expanded"}),this.row=t,this.parent=null,this.children=[]}return t.prototype.flatten=function(t,e){if("expanded"===this.row.treeStatus)for(var n=0,a=this.children.length;n<a;n++){var r=this.children[n];t.apply(r,Array.prototype.slice.call(arguments,2)),e&&r.flatten.apply(r,arguments)}},t}()},"@angular/common":function(e,n){e.exports=t},"@angular/core":function(t,n){t.exports=e},rxjs:function(t,e){t.exports=n},"rxjs/operators":function(t,e){t.exports=a}})},t.exports=a(n("SVse"),n("8Y7J"),n("qCKp"),n("kU1M"))},yCtX:function(t,e,n){"use strict";n.d(e,"a",(function(){return i}));var a=n("HDdC"),r=n("ngJS"),o=n("jZKg");function i(t,e){return e?Object(o.a)(t,e):new a.a(Object(r.a)(t))}},yGOH:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));class a{}},yGk4:function(t,e,n){var a=n("Cwc5")(n("Kz5y"),"Set");t.exports=a},yHx3:function(t,e){var n=Object.prototype.hasOwnProperty;t.exports=function(t){var e=t.length,a=new t.constructor(e);return e&&"string"==typeof t[0]&&n.call(t,"index")&&(a.index=t.index,a.input=t.input),a}},yJti:function(t,e,n){"use strict";n.d(e,"a",(function(){return a}));var a=function(t){return t[t.ValueOk=0]="ValueOk",t[t.ValueStale=1]="ValueStale",t[t.ValueNone=2]="ValueNone",t[t.ValueException=3]="ValueException",t}({})},yP5f:function(t,e,n){var a=n("+K+b");t.exports=function(t,e){var n=e?a(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}},yPMs:function(t,e,n){!function(t){"use strict";t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<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ë] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},yT6U:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("LvDl");class r{transform(t,e=!1){let n=t;return(!a.isArray(t)||a.isArray(t)&&e)&&(n=[t]),n}}},yYhs:function(t,e,n){"use strict";var a=n("8Y7J"),r=n("SVse"),o=n("CoVI"),i=n("mfoh"),s=(n("CFvb"),n("MP8s"),n("f95s"),n("gk6K")),c=(n("dApe"),n("ZhuC")),l=n("fxL3"),d=n("TNUL"),u=n("rZud"),g=n("woSy"),f=n("jV1L"),p=n("pcHL"),m=n("WaXT"),h=n("OIDT"),b=n("HIU9"),y=n("uNpg"),_=n("Fwy9"),O=n("C523"),v=n("4Dmd");n("14R3"),n.d(e,"b",(function(){return C})),n.d(e,"a",(function(){return i.a}));var C=function(){function t(){}var e;return e=t,t.forRoot=function(){return{ngModule:e,providers:[s.a]}},e=function(t,e,n,a){var r,o=arguments.length,i=o<3?e:null===a?a=Object.getOwnPropertyDescriptor(e,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,a);else for(var s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o<3?r(i):o>3?r(e,n,i):r(e,n))||i);return o>3&&i&&Object.defineProperty(e,n,i),i}([Object(a.NgModule)({declarations:[l.a,d.a,u.a,c.a,_.a,O.a,f.a,p.a,g.a,m.a,b.a,h.a,y.a,v.a,o.a],exports:[l.a,d.a,u.a,c.a,_.a,O.a,f.a,p.a,g.a,m.a,b.a,h.a,y.a,v.a,o.a],imports:[r.CommonModule],providers:[]})],t)}()},ylLw:function(t,e,n){var a=n("mrSG").__decorate,r=n("mrSG").__metadata;Object.defineProperty(e,"__esModule",{value:!0});var o=n("8Y7J"),i=n("3MdB");n("SVse"),e.OrderableDirective=function(){function t(t,e){this.document=e,this.reorder=new o.EventEmitter,this.targetChanged=new o.EventEmitter,this.differ=t.find({}).create()}return t.prototype.ngAfterContentInit=function(){this.updateSubscriptions(),this.draggables.changes.subscribe(this.updateSubscriptions.bind(this))},t.prototype.ngOnDestroy=function(){this.draggables.forEach((function(t){t.dragStart.unsubscribe(),t.dragging.unsubscribe(),t.dragEnd.unsubscribe()}))},t.prototype.updateSubscriptions=function(){var t=this,e=this.differ.diff(this.createMapDiffs());if(e){var n=function(t){var e=t.previousValue;e&&(e.dragStart.unsubscribe(),e.dragging.unsubscribe(),e.dragEnd.unsubscribe())};e.forEachAddedItem((function(e){var a=e.currentValue;n({previousValue:e.previousValue}),a&&(a.dragStart.subscribe(t.onDragStart.bind(t)),a.dragging.subscribe(t.onDragging.bind(t)),a.dragEnd.subscribe(t.onDragEnd.bind(t)))}).bind(this)),e.forEachRemovedItem(n.bind(this))}},t.prototype.onDragStart=function(){this.positions={};for(var t=0,e=0,n=this.draggables.toArray();e<n.length;e++){var a=n[e],r=a.element,o=parseInt(r.offsetLeft.toString(),0);this.positions[a.dragModel.prop]={left:o,right:o+parseInt(r.offsetWidth.toString(),0),index:t++,element:r}}},t.prototype.onDragging=function(t){var e=t.model,n=this.positions[e.prop],a=this.isTarget(e,t.event);a?this.lastDraggingIndex!==a.i&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,newIndex:a.i,initialIndex:n.index}),this.lastDraggingIndex=a.i):this.lastDraggingIndex!==n.index&&(this.targetChanged.emit({prevIndex:this.lastDraggingIndex,initialIndex:n.index}),this.lastDraggingIndex=n.index)},t.prototype.onDragEnd=function(t){var e=t.element,n=t.model,a=this.positions[n.prop],r=this.isTarget(n,t.event);r&&this.reorder.emit({prevIndex:a.index,newIndex:r.i,model:n}),this.lastDraggingIndex=void 0,e.style.left="auto"},t.prototype.isTarget=function(t,e){var n=0,a=this.document.elementsFromPoint(e.x||e.clientX,e.y||e.clientY),r=function(e){var r=o.positions[e];if(t.prop!==e&&a.find((function(t){return t===r.element})))return{value:{pos:r,i:n}};n++},o=this;for(var i in this.positions){var s=r(i);if("object"==typeof s)return s.value}},t.prototype.createMapDiffs=function(){return this.draggables.toArray().reduce((function(t,e){return t[e.dragModel.$$id]=e,t}),{})},a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"reorder",void 0),a([o.Output(),r("design:type",o.EventEmitter)],t.prototype,"targetChanged",void 0),a([o.ContentChildren(i.DraggableDirective,{descendants:!0}),r("design:type",o.QueryList)],t.prototype,"draggables",void 0),a([o.Directive({selector:"[orderable]"})],t)}()},yoRg:function(t,e,n){var a=n("UTVS"),r=n("/GqU"),o=n("TWQb").indexOf,i=n("0BK2");t.exports=function(t,e){var n,s=r(t),c=0,l=[];for(n in s)!a(i,n)&&a(s,n)&&l.push(n);for(;e.length>c;)a(s,n=e[c++])&&(~o(l,n)||l.push(n));return l}},"yt+r":function(t,e,n){"use strict";n.r(e),e.default='<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">\n  <file original="ng2.template" datatype="plaintext" source-language="en-US" target-language="es-ES">\n    <body>\n      <trans-unit id="319e0745bcbc132451569294fa2fa21bf10f555a" datatype="html">\n        <source>Toggle navigation</source>\n        <target>Alternar navegación</target>\n      </trans-unit>\n      <trans-unit id="f65253954b66e929a8b4d5ecaf61f9129f8cec64" datatype="html">\n        <source>Dashboard</source>\n        <target>Consola</target>\n      </trans-unit>\n      <trans-unit id="f4d1dd59b039ad818d9da7e29a773e10e41d9821" datatype="html">\n        <source>Cluster</source>\n        <target>Clúster</target>\n      </trans-unit>\n      <trans-unit id="099b441d49333b3c6d30b36dc0a4763e64c78920" datatype="html">\n        <source>Hosts</source>\n        <target>Hosts</target>\n      </trans-unit>\n      <trans-unit id="2cc3ecb16e348fcf2f2fbfd2f997d4d22f37475b" datatype="html">\n        <source>Inventory</source>\n        <target>Inventory</target>\n      </trans-unit>\n      <trans-unit id="624f596cc3320f5e0a0d7c7346c364e5af9bdd8c" datatype="html">\n        <source>Monitors</source>\n        <target>Monitores</target>\n      </trans-unit>\n      <trans-unit id="419d940613972cc3fae9c8ea0a4306dbf80616e5" datatype="html">\n        <source>Services</source>\n        <target>Servicios</target>\n      </trans-unit>\n      <trans-unit id="1a9183778f2c6473d7ccb080f651caa01faaf70c" datatype="html">\n        <source>OSDs</source>\n        <target>OSDs</target>\n      </trans-unit>\n      <trans-unit id="4a41f824a35ba01d5bd7be61aa06b3e8145209d0" datatype="html">\n        <source>Configuration</source>\n        <target>Configuración</target>\n      </trans-unit>\n      <trans-unit id="8c95898abff46bfac3ed6eb2afef74597e60b15c" datatype="html">\n        <source>CRUSH map</source>\n        <target>Mapa de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="33da4dbeb076159510801ea764a218fd341269d2" datatype="html">\n        <source>Manager modules</source>\n        <target>Módulos de gestor</target>\n      </trans-unit>\n      <trans-unit id="eb3d5aefff38a814b76da74371cbf02c0789a1ef" datatype="html">\n        <source>Logs</source>\n        <target>Registros</target>\n      </trans-unit>\n      <trans-unit id="17fc3efe5f9fa4e0289c900cb6202265215a1a27" datatype="html">\n        <source>Monitoring</source>\n        <target>Monitoring</target>\n      </trans-unit>\n      <trans-unit id="92899fa68e8ca108912163ff58edc8540e453787" datatype="html">\n        <source>Pools</source>\n        <target>Repositorios</target>\n      </trans-unit>\n      <trans-unit id="7f5d0c10614e8a34f0e2dad33a0568277c50cf69" datatype="html">\n        <source>Block</source>\n        <target>Bloque</target>\n      </trans-unit>\n      <trans-unit id="b73f7f5060fb22a1e9ec462b1bb02493fa3ab866" datatype="html">\n        <source>Images</source>\n        <target>Imágenes</target>\n      </trans-unit>\n      <trans-unit id="3c2562ba992127203dcfd014010b03cb7b8113c6" datatype="html">\n        <source>Mirroring</source>\n        <target>Duplicación</target>\n      </trans-unit>\n      <trans-unit id="811c241d56601b91ef26735b770e64428089b950" datatype="html">\n        <source>iSCSI</source>\n        <target>iSCSI</target>\n      </trans-unit>\n      <trans-unit id="a24eabd99ea5af20f5f94c4484649cd30370042b" datatype="html">\n        <source>NFS</source>\n        <target>NFS</target>\n      </trans-unit>\n      <trans-unit id="a4eff72d97b7ced051398d581f10968218057ddc" datatype="html">\n        <source>Filesystems</source>\n        <target>Sistemas de archivos</target>\n      </trans-unit>\n      <trans-unit id="2190548d236ca5f7bc7ab2bca334b860c5ff2ad4" datatype="html">\n        <source>Object Gateway</source>\n        <target>Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="9e24f9e2d42104ffc01599db4d566d1cc518f9e6" datatype="html">\n        <source>Daemons</source>\n        <target>Daemons</target>\n      </trans-unit>\n      <trans-unit id="4d13a9cd5ed3dcee0eab22cb25198d43886942be" datatype="html">\n        <source>Users</source>\n        <target>Usuarios</target>\n      </trans-unit>\n      <trans-unit id="9515520496da83179d8b08132f00f575512a1f40" datatype="html">\n        <source>Buckets</source>\n        <target>Papeleras</target>\n      </trans-unit>\n      <trans-unit id="797f8214e8148f4bf0d244baaa7341706b419549" datatype="html">\n        <source>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </source>\n        <target>Retrieving data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>. Please wait...\n        </target>\n      </trans-unit>\n      <trans-unit id="5a870dc77b9f6f33ee671ea2d856021276933339" datatype="html">\n        <source>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </source>\n        <target>Displaying previously cached data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/>\n  for \n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ae580202919844531361ba2308287226ff74a584" datatype="html">\n        <source>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </source>\n        <target>Could not load data\n          <x id="START_TAG_SPAN_1" ctype="x-span" equiv-text="<span>"/> for\n          <x id="START_TAG_SPAN" ctype="x-span" equiv-text="<span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>\n          <x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="</span>"/>.\n  Please check the cluster health.\n        </target>\n      </trans-unit>\n      <trans-unit id="7e52e9143145e1db5146258de81eae018a407b31" datatype="html">\n        <source>Clear notifications</source>\n        <target>Clear notifications</target>\n      </trans-unit>\n      <trans-unit id="b0b07bb6b7ff21ede439dd04eaf8872d1ecb84d8" datatype="html">\n        <source>Remove notification</source>\n        <target>Remove notification</target>\n      </trans-unit>\n      <trans-unit id="e17a1d75189da843f541f7764f188f2b19a97df2" datatype="html">\n        <source>Duration:</source>\n        <target>Duration:</target>\n      </trans-unit>\n      <trans-unit id="0d4b37c6675c5b436a54c43d6716eec835e1aa7f" datatype="html">\n        <source>There are no notifications.</source>\n        <target>There are no notifications.</target>\n      </trans-unit>\n      <trans-unit id="0a23e992f6c6e169a38b2b7338b4e5e803b52e0d" datatype="html">\n        <source>Tasks and Notifications</source>\n        <target>Tasks and Notifications</target>\n      </trans-unit>\n      <trans-unit id="3fb5709e10166cbc85970cbff103db227dbeb813" datatype="html">\n        <source>Select a Language</source>\n        <target>Seleccione un idioma</target>\n      </trans-unit>\n      <trans-unit id="c5109325fb160b543f71a51e7511c00575057431" datatype="html">\n        <source>Loading panel data...</source>\n        <target>Cargando datos del panel...</target>\n      </trans-unit>\n      <trans-unit id="8ca12411f890ab8b0a9216418e2b8f5ea7d2441a" datatype="html">\n        <source>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </source>\n        <target>Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the monitoring functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="160a9e80dc089792df42e2400b1e81b9e7025aa7" datatype="html">\n        <source>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </source>\n        <target>Grafana Dashboard doesn\'t exist. Please refer to\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  add dashboards to Grafana.\n        </target>\n      </trans-unit>\n      <trans-unit id="4e11830040bd64804a0555de76f291d5832772d4" datatype="html">\n        <source>Grafana Time Picker</source>\n        <target>Selector de hora de Grafana</target>\n      </trans-unit>\n      <trans-unit id="238c1ba845dd7330e8088165275919a1debf1ca3" datatype="html">\n        <source>Reset Settings</source>\n        <target>Restablecer ajustes</target>\n      </trans-unit>\n      <trans-unit id="c8d1785038d461ec66b5799db21864182b35900a" datatype="html">\n        <source>Refresh</source>\n        <target>Refresh</target>\n      </trans-unit>\n      <trans-unit id="6c947210e2d162b6225083d18820ab602f58cd2d" datatype="html">\n        <source>Remove the custom configuration value. The default configuration will be inherited and used instead.</source>\n        <target>Remove the custom configuration value. The default configuration will be inherited and used instead.</target>\n      </trans-unit>\n      <trans-unit id="454ee9cb60b00446a8fb147fd2cc5eb836320586" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ option.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="7fc8a22825131e028336f60ef909ccbd96059703" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ option.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="cda31dbd724cf5f4fa7a4274d9120651490c8a8c" datatype="html">\n        <source>Back</source>\n        <target>Atrás</target>\n      </trans-unit>\n      <trans-unit id="9ce641535be1ffa106c87724ba0637facaef5f61" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>less than 1\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day. Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="c2f34088c155e40ffb23770a465a65868ce772b2" datatype="html">\n        <source>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </source>\n        <target>Your password will expire in \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ expirationDays }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> day(s). Click\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>here\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> to change it now.\n        </target>\n      </trans-unit>\n      <trans-unit id="9b516f972c744779257310b73f6e97438b726707" datatype="html">\n        <source>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </source>\n        <target>Orchestrator is not available. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> on how to\n  configure and enable the functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="012741ee52b3c050e4a977c37cc2334f7974f141" datatype="html">\n        <source>Failed to load data.</source>\n        <target>Error al cargar los datos.</target>\n      </trans-unit>\n      <trans-unit id="1e5e23363e949f7dcbaf034bdb141a561132a10e" datatype="html">\n        <source>Clear filters</source>\n        <target>Clear filters</target>\n      </trans-unit>\n      <trans-unit id="80cc9a12d4bf6fe454ed94b379eeaf915f920bb7" datatype="html">\n        <source>selected</source>\n        <target>seleccionados</target>\n        <note>X selected</note>\n      </trans-unit>\n      <trans-unit id="0cb77511a9a148e05b9adf36cc07269956fbb29d" datatype="html">\n        <source>found</source>\n        <target>encontrados</target>\n        <note>X found</note>\n      </trans-unit>\n      <trans-unit id="79347388740c50b7ac97e144c2494bb62912f312" datatype="html">\n        <source>total</source>\n        <target>total</target>\n        <note>X total</note>\n      </trans-unit>\n      <trans-unit id="cff1428d10d59d14e45edec3c735a27b5482db59" datatype="html">\n        <source>Name</source>\n        <target>Nombre</target>\n      </trans-unit>\n      <trans-unit id="eec715de352a6b114713b30b640d319fa78207a0" datatype="html">\n        <source>Description</source>\n        <target>Descripción</target>\n      </trans-unit>\n      <trans-unit id="4ad112ce9bcd55dfd137792a86afe1b5a5b13cf8" datatype="html">\n        <source>Long description</source>\n        <target>Descripción larga</target>\n      </trans-unit>\n      <trans-unit id="ff7cee38a2259526c519f878e71b964f41db4348" datatype="html">\n        <source>Default</source>\n        <target>Opción por defecto</target>\n      </trans-unit>\n      <trans-unit id="33e1c1d9fc05ca3f62fcc8a1170fc31ebae4229c" datatype="html">\n        <source>Daemon default</source>\n        <target>Daemon por defecto</target>\n      </trans-unit>\n      <trans-unit id="809b0c848932a41318f77a2aace904ef429c13f4" datatype="html">\n        <source>Values</source>\n        <target>Valores</target>\n      </trans-unit>\n      <trans-unit id="5894f7158499fdb89527af50c9f1cf7d4c95cad6" datatype="html">\n        <source>-- Default --</source>\n        <target>-- Default --</target>\n      </trans-unit>\n      <trans-unit id="514f6e12d035a6d9b00de6b3e55c18b73488da07" datatype="html">\n        <source>true</source>\n        <target>true</target>\n      </trans-unit>\n      <trans-unit id="774f5e6a183dea08393789b6f72e86afad729419" datatype="html">\n        <source>false</source>\n        <target>false</target>\n      </trans-unit>\n      <trans-unit id="82029b6db704c56a2aa3e82ac555b8655356b077" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8ed8b3967a7326b81b191c9f490006e6a6777a9a" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="52c9a103b812f258bcddc3d90a6e3f46871d25fe" datatype="html">\n        <source>Save</source>\n        <target>Guardar</target>\n      </trans-unit>\n      <trans-unit id="738de688b22fba5d0dc7a5e549996838dddad0ee" datatype="html">\n        <source>CRUSH map viewer</source>\n        <target>Visor del mapa de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="94516fa213706c67ce5a5b5765681d7fb032033a" datatype="html">\n        <source>Loading...</source>\n        <target>Cargando...</target>\n      </trans-unit>\n      <trans-unit id="formTitle" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form title</note>\n      </trans-unit>\n      <trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">\n        <source>Hostname</source>\n        <target>Nombre de host</target>\n      </trans-unit>\n      <trans-unit id="7cbdabcece469fab89cfa687ab152bca18b97498" datatype="html">\n        <source>This field is required.</source>\n        <target>Este campo es obligatorio.</target>\n      </trans-unit>\n      <trans-unit id="1b3f5e5291541678f7afa49d28fad5ca848a8061" datatype="html">\n        <source>The chosen hostname is already in use.</source>\n        <target>The chosen hostname is already in use.</target>\n      </trans-unit>\n      <trans-unit id="formActionButton" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ resource | upperFirst }}"/>\n        </target>\n        <note>form action button</note>\n      </trans-unit>\n      <trans-unit id="6110699a3562eeb15371063c0cf7f6bfd88a0209" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemNames[0] }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="549859e511ba5af0ea03fcaa620c472f08038969" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected items?\n        </target>\n      </trans-unit>\n      <trans-unit id="54839ebc827b73c9dc4e1df731c6d36a85036af7" datatype="html">\n        <source>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </source>\n        <target>Are you sure that you want to \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription | lowercase }}"/> the selected \n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>?\n        </target>\n      </trans-unit>\n      <trans-unit id="2be8b7f04f0104d3fad90d079d8202b74f758b9a" datatype="html">\n        <source>Yes, I am sure.</source>\n        <target>Sí, seguro.</target>\n      </trans-unit>\n      <trans-unit id="d7b35c384aecd25a516200d6921836374613dfe7" datatype="html">\n        <source>Cancel</source>\n        <target>Cancelar</target>\n      </trans-unit>\n      <trans-unit id="55a2f26b2e87886d9b8015a887e38e51ab2a866a" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ itemDescription }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8" datatype="html">\n        <source>Close</source>\n        <target>Cerrar</target>\n      </trans-unit>\n      <trans-unit id="40661476cb24c89d8b06614998e31d5fbe84eeb6" datatype="html">\n        <source>Hosts List</source>\n        <target>Lista de hosts</target>\n      </trans-unit>\n      <trans-unit id="5e7f4b1ca49e8d217bd0e12c6f7d6b6a2ade2c18" datatype="html">\n        <source>Overall Performance</source>\n        <target>Rendimiento general</target>\n      </trans-unit>\n      <trans-unit id="3e24569eca61d598c8b01defbbbb1fa8bd5222bc" datatype="html">\n        <source>Devices</source>\n        <target>Devices</target>\n      </trans-unit>\n      <trans-unit id="e6d57f36aa2bad303c8a8ee944b9bd7fae3c8c26" datatype="html">\n        <source>No entries found</source>\n        <target>No se encuentra ninguna entrada</target>\n      </trans-unit>\n      <trans-unit id="d556ab48a65722b400e497f61737f553ee0f89e2" datatype="html">\n        <source>Cluster Logs</source>\n        <target>Registros del clúster</target>\n      </trans-unit>\n      <trans-unit id="5f966baffd188be0e8adc2d7067b86e55fc9b9de" datatype="html">\n        <source>Audit Logs</source>\n        <target>Registros de auditoría</target>\n      </trans-unit>\n      <trans-unit id="4193c9eb868aeec119b78a14795241e0aa5e8b60" datatype="html">\n        <source>Priority:</source>\n        <target>Priority:</target>\n      </trans-unit>\n      <trans-unit id="1d78ca51eab260ce3fd917d39190d64df5229b6e" datatype="html">\n        <source>Keyword:</source>\n        <target>Keyword:</target>\n      </trans-unit>\n      <trans-unit id="05fa0bded36de6e73a1fa44838b627349dace044" datatype="html">\n        <source>Date:</source>\n        <target>Date:</target>\n      </trans-unit>\n      <trans-unit id="31dadb362bf7f7c2afa10e5f96474ccd3977f91f" datatype="html">\n        <source>Datepicker</source>\n        <target>Datepicker</target>\n      </trans-unit>\n      <trans-unit id="85a400388de1899b1917138cf7e5286376f72847" datatype="html">\n        <source>Time range:</source>\n        <target>Time range:</target>\n      </trans-unit>\n      <trans-unit id="2447796ddbda942f4e2c46619cb84d69f066e568" datatype="html">\n        <source>Loading configuration...</source>\n        <target>Cargando configuración...</target>\n      </trans-unit>\n      <trans-unit id="b42c0b347a841bed8859ee83de05080ee28c803b" datatype="html">\n        <source>The configuration could not be loaded.</source>\n        <target>No es posible cargar la configuración.</target>\n      </trans-unit>\n      <trans-unit id="31a9c2870a934b594d1390146c489f76440859ea" datatype="html">\n        <source>Edit Manager module</source>\n        <target>Módulo del gestor de edición</target>\n      </trans-unit>\n      <trans-unit id="46e09b8290d3d0afdb6baa2021395b0570606a31" datatype="html">\n        <source>The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</source>\n        <target>El valor introducido no es un UUID válido, por ejemplo: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8</target>\n      </trans-unit>\n      <trans-unit id="7aacd038b39cfd347107d01d1dc27f5cb3e0951c" datatype="html">\n        <source>The entered value needs to be a valid IP address.</source>\n        <target>El valor introducido debe ser una dirección IP válida.</target>\n      </trans-unit>\n      <trans-unit id="f19106149f4b07a0d721f9d317afed393cb7bd93" datatype="html">\n        <source>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </source>\n        <target>The entered value is too high! It must be lower or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.max }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="6d33c40ef9a6c3bf0888df831b25e41e65f9d15b" datatype="html">\n        <source>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </source>\n        <target>The entered value is too low! It must be greater or equal to \n          <x id="INTERPOLATION" equiv-text="{{ moduleOption.value.min }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="eae7086660cf1e38c7194a2c49ff52cc656f90f5" datatype="html">\n        <source>The entered value needs to be a number.</source>\n        <target>El valor introducido debe ser un número.</target>\n      </trans-unit>\n      <trans-unit id="a73376e04b4fb3a20734c8c39743fba32e6676ce" datatype="html">\n        <source>The entered value needs to be a number or decimal.</source>\n        <target>El valor introducido debe ser un número o un decimal.</target>\n      </trans-unit>\n      <trans-unit id="047f50bc5b5d17b5bec0196355953e1a5c590ddb" datatype="html">\n        <source>Update</source>\n        <target>Actualizar</target>\n      </trans-unit>\n      <trans-unit id="81b97b8ea996ad1e4f9fca8415021850214884b1" datatype="html">\n        <source>Status</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="57ec6032f5618d4a9f16eb950ad23d2ce7c24b54" datatype="html">\n        <source>Cluster ID</source>\n        <target>ID de clúster</target>\n      </trans-unit>\n      <trans-unit id="67d7facc3fec5f8a49ab9ba0a245872184264ce5" datatype="html">\n        <source>monmap modified</source>\n        <target>Mapa de supervisión modificado</target>\n      </trans-unit>\n      <trans-unit id="d4906731aaf2b94b4f547646c9bfe58bb77951b6" datatype="html">\n        <source>monmap epoch</source>\n        <target>Época de mapa de supervisión</target>\n      </trans-unit>\n      <trans-unit id="bd4ee06ffdc46d9dfbd0c0c4f81399021c680056" datatype="html">\n        <source>quorum con</source>\n        <target>quórum de con</target>\n      </trans-unit>\n      <trans-unit id="1176c7db8a8276ccb44cc3d42e2c28d9fa6c6596" datatype="html">\n        <source>quorum mon</source>\n        <target>quórum de mon</target>\n      </trans-unit>\n      <trans-unit id="530ef677a09d681b3ab68cb0760494b3ae72a77c" datatype="html">\n        <source>required con</source>\n        <target>con requerido</target>\n      </trans-unit>\n      <trans-unit id="a91558e0d506c32021c31843f8f168899fc65cbf" datatype="html">\n        <source>required mon</source>\n        <target>mon requerido</target>\n      </trans-unit>\n      <trans-unit id="b3abe9eac5bcd94a54c8da93b312e085ec512e74" datatype="html">\n        <source>In Quorum</source>\n        <target>Con quórum</target>\n      </trans-unit>\n      <trans-unit id="ba4b748a676e1f217ce1e736fb7ec1215e677bae" datatype="html">\n        <source>Not In Quorum</source>\n        <target>Sin quórum</target>\n      </trans-unit>\n      <trans-unit id="4383e9662ea19839c7499b2128d43a195e564317" datatype="html">\n        <source>OSD creation preview</source>\n        <target>OSD creation preview</target>\n      </trans-unit>\n      <trans-unit id="366225c51e0b00bcb1c55795a0dc5e81c455f84e" datatype="html">\n        <source>DriveGroups</source>\n        <target>DriveGroups</target>\n      </trans-unit>\n      <trans-unit id="8edc89137d0d8c5667a2f03230beafae45e58429" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ deviceType }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="eba28e1805b18f7c8ae2e4bc15dcf063b10b3822" datatype="html">\n        <source>At least one of these filters must be applied in order to proceed:</source>\n        <target>At least one of these filters must be applied in order to proceed:</target>\n      </trans-unit>\n      <trans-unit id="93389aa2fe2bea50bf89554ee51b28f87ee2fb50" datatype="html">\n        <source>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </source>\n        <target>Number of devices: \n          <x id="INTERPOLATION" equiv-text="{{ filteredDevices.length }}"/>. Raw capacity:\n          <x id="INTERPOLATION_1" equiv-text="{{ capacity | dimlessBinary }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="ccb4f84edc0b4e76415bb3f9b73d725b06683af3" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ name }}"/> devices\n        </target>\n      </trans-unit>\n      <trans-unit id="60cb3d01e5ddf266ecb4271007a1c3d0f3efdc22" datatype="html">\n        <source>The primary storage devices. These devices contain all OSD data.</source>\n        <target>The primary storage devices. These devices contain all OSD data.</target>\n      </trans-unit>\n      <trans-unit id="b432e04886d0d1fd84f740477383051f85addcf2" datatype="html">\n        <source>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</source>\n        <target>Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device.</target>\n      </trans-unit>\n      <trans-unit id="b87e181ab9e8393aa5ed759dd3d53836e32c8ffe" datatype="html">\n        <source>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</source>\n        <target>DB devices can be used for storing BlueStore’s internal metadata.  It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</target>\n      </trans-unit>\n      <trans-unit id="f6755cff4957d5c3c89bafce5651f1b6fa2b1fd9" datatype="html">\n        <source>Add</source>\n        <target>Añadir</target>\n      </trans-unit>\n      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">\n        <source>Clear</source>\n        <target>Clear</target>\n      </trans-unit>\n      <trans-unit id="7e0fd3c7af0630f93befa6234a693a32a61084e0" datatype="html">\n        <source>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </source>\n        <target>Raw capacity: \n          <x id="INTERPOLATION" equiv-text="{{ capacity | dimlessBinary }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="43ecf6bee2aebc07b0aad6dc1fe13e38d14687fa" datatype="html">\n        <source>Shared devices</source>\n        <target>Shared devices</target>\n      </trans-unit>\n      <trans-unit id="7a1c376f6f1b37de4c318ff2106255ba6c0f5b0b" datatype="html">\n        <source>WAL slots</source>\n        <target>WAL slots</target>\n      </trans-unit>\n      <trans-unit id="73811a6f37b63e6b0e491e221bfa21e9dea8a87a" datatype="html">\n        <source>How many OSDs per WAL device.</source>\n        <target>How many OSDs per WAL device.</target>\n      </trans-unit>\n      <trans-unit id="0c67a7ac4762ef1cc855056c6b4daab93e53a0a5" datatype="html">\n        <source>Specify 0 to let Orchestrator backend decide it.</source>\n        <target>Specify 0 to let Orchestrator backend decide it.</target>\n      </trans-unit>\n      <trans-unit id="7bda9362e06e6c67341b4a8425b0d29d6b84464b" datatype="html">\n        <source>Value should be greater than or equal to 0</source>\n        <target>Value should be greater than or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="324c2b10152b9dd908222bb0b71f61beb60a30c5" datatype="html">\n        <source>DB slots</source>\n        <target>DB slots</target>\n      </trans-unit>\n      <trans-unit id="c23cf12ef9c76f37fc7a4b7ae3e00fb0f68b6e26" datatype="html">\n        <source>How many OSDs per DB device.</source>\n        <target>How many OSDs per DB device.</target>\n      </trans-unit>\n      <trans-unit id="6cdb1fea93d77c07950c0c76c6e0ad79ebbef084" datatype="html">\n        <source>Features</source>\n        <target>Características</target>\n      </trans-unit>\n      <trans-unit id="3e2a583f531f7dd9f089f68a6968e444c372c3e8" datatype="html">\n        <source>Preview</source>\n        <target>Preview</target>\n      </trans-unit>\n      <trans-unit id="5ef50ba2514414f799d4c8fc36067a251904ba81" datatype="html">\n        <source>Cluster-wide OSD Flags</source>\n        <target>Indicadores OSD de todo el clúster</target>\n      </trans-unit>\n      <trans-unit id="71c77bb8cecdf11ec3eead24dd1ba506573fa9cd" datatype="html">\n        <source>Submit</source>\n        <target>Enviar</target>\n      </trans-unit>\n      <trans-unit id="1cfe07dac5b4ee1c464eb24225ddeb4f1d24076a" datatype="html">\n        <source>Advanced...</source>\n        <target>Avanzado...</target>\n      </trans-unit>\n      <trans-unit id="b1ef1c12ddcee305353623919ef02778569f5454" datatype="html">\n        <source>Advanced configuration options</source>\n        <target>Advanced configuration options</target>\n      </trans-unit>\n      <trans-unit id="c35f9c5f268a514b970cc55e9a5dc4bed0988e7f" datatype="html">\n        <source>OSD Recovery Priority</source>\n        <target>Prioridad de recuperación de OSD</target>\n      </trans-unit>\n      <trans-unit id="b74af38005e8a8914e45af2ec412e11ceafef8b6" datatype="html">\n        <source>Priority</source>\n        <target>Prioridad</target>\n      </trans-unit>\n      <trans-unit id="c2f48f04b379bfba133825747adfd238d511412e" datatype="html">\n        <source>Customize priority values</source>\n        <target>Personalizar valores de prioridad</target>\n      </trans-unit>\n      <trans-unit id="4aa19de2a2b54cbda39e9c62917b23044c087776" datatype="html">\n        <source>This field is required!</source>\n        <target>Este campo es obligatorio.</target>\n      </trans-unit>\n      <trans-unit id="b699e94bf376491bd50b70a98531071c737eaf40" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="98fe13e7ad6c2b80375d204b47858ded83f80e15" datatype="html">\n        <source>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </source>\n        <target>The entered value is too high! It must not be greater than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.maxValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5423a3c111be47fc5a1bfe46ceb58c81c84db691" datatype="html">\n        <source>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </source>\n        <target>The entered value is too low! It must not be lower than \n          <x id="INTERPOLATION" equiv-text="{{ attr.value.minValue }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="5251a4355cece3075db43f15d69a24a0f8485707" datatype="html">\n        <source>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </source>\n        <target>Reweight OSD: \n          <x id="INTERPOLATION" equiv-text="{{ osdId }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67650b2998db48201b2c6176cbfef51e7211ccaa" datatype="html">\n        <source>The value needs to be between 0 and 1.</source>\n        <target>El valor debe estar entre 0 y 1.</target>\n      </trans-unit>\n      <trans-unit id="bc11f92113d678a90e334fdf3d7b3fddbe34c579" datatype="html">\n        <source>Reweight</source>\n        <target>Reequilibrar peso</target>\n      </trans-unit>\n      <trans-unit id="d5ca5daf742023fc4f0919fb3c1c6a51991cda4f" datatype="html">\n        <source>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </source>\n        <target>OSDs \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>Scrub\n        </target>\n      </trans-unit>\n      <trans-unit id="4c17d67c7c5799eb920030e9a399961e90f55dd8" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Deep } }</source>\n        <target>{VAR_SELECT, select, 1 {Profundo} }</target>\n      </trans-unit>\n      <trans-unit id="fd0a4b6eed32e3488eccdc9c13f9841f08cc275e" datatype="html">\n        <source>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </source>\n        <target>You are about to apply a \n          <x id="ICU" equiv-text="{deep, select, 1 {...}}"/>scrub to\n          the OSD(s): \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ selected | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="dc6705f342a036b332c3fd3443201c3613e5524d" datatype="html">\n        <source>{VAR_SELECT, select, 1 {deep } }</source>\n        <target>{VAR_SELECT, select, 1 {profundo} }</target>\n      </trans-unit>\n      <trans-unit id="b49d7877d24112d4bdfce9256edf61a007fae888" datatype="html">\n        <source>OSDs List</source>\n        <target>Lista de OSD</target>\n      </trans-unit>\n      <trans-unit id="d5707a32ba9c1138e6423498fb0b24e970ebd19f" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD(s) \n          <x id="INTERPOLATION" equiv-text="{{  getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be marked\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ markActionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="d08c1e4f17dffc0ed1ac2e2e2875cb8b569eeb35" datatype="html">\n        <source>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </source>\n        <target>The \n          <x id="ICU" equiv-text="{selection.hasSingleSelection, select, 0 {...} 1 {...}}"/> not safe to be \n          <x id="INTERPOLATION" equiv-text="{{ actionDescription }}"/>! \n          <x id="INTERPOLATION_1" equiv-text="{{ message }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="e776996dac651ef3819bfa767ccf2a0613759f47" datatype="html">\n        <source>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</source>\n        <target>{VAR_SELECT, select, 0 {OSDs are} 1 {OSD is} }</target>\n      </trans-unit>\n      <trans-unit id="5cd6a031937412c42e5efa1e6959cb72ac08c720" datatype="html">\n        <source>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </source>\n        <target>\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>OSD \n          <x id="INTERPOLATION" equiv-text="{{ getSelectedOsdIds() | join }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> will be\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ actionDescription }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> if you proceed.\n        </target>\n      </trans-unit>\n      <trans-unit id="3eda19b44809820fffd5d3753bafb7243116f4b0" datatype="html">\n        <source>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To see all active Prometheus alerts, please\n      provide the URL to the API of Prometheus\' Alertmanager as described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="880ad4df5a2051a437321443d69c9a866699e5ad" datatype="html">\n        <source>Active Alerts</source>\n        <target>Active Alerts</target>\n      </trans-unit>\n      <trans-unit id="8e5e0e09a11990d343926ed693574213d703c38d" datatype="html">\n        <source>All Alerts</source>\n        <target>All Alerts</target>\n      </trans-unit>\n      <trans-unit id="526938c2b7945cb0d68328c24bd77730230cd455" datatype="html">\n        <source>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </source>\n        <target>To enable Silences, please provide the URL to the API of the Prometheus\' Alertmanager as\n      described in the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="aa0c44aa1e5727061baa91e954f77e2f5f9a37c9" datatype="html">\n        <source>Silences</source>\n        <target>Silences</target>\n      </trans-unit>\n      <trans-unit id="8501055865d7031b5521a0c5467532648009a61d" datatype="html">\n        <source>Matcher</source>\n        <target>Matcher</target>\n      </trans-unit>\n      <trans-unit id="9c25e04f554875dc2625a78ba0fc56c6010cd0d3" datatype="html">\n        <source>-- Select an attribute to match against --</source>\n        <target>-- Select an attribute to match against --</target>\n      </trans-unit>\n      <trans-unit id="5049e204c14c648691ac775a64fb504467aeb549" datatype="html">\n        <source>Value</source>\n        <target>Valor</target>\n      </trans-unit>\n      <trans-unit id="77fc5c63497fc031ddc97645484e3d94ad27766c" datatype="html">\n        <source>Use regular expression</source>\n        <target>Use regular expression</target>\n      </trans-unit>\n      <trans-unit id="7bbec1a797283712c0adf9e71d77fb5a8cd720db" datatype="html">\n        <source>{VAR_SELECT, select, 1 {Update} other {Add} }</source>\n        <target>{VAR_SELECT, select, 1 {Update} other {Add} }</target>\n      </trans-unit>\n      <trans-unit id="28f86ffd419b869711aa13f5e5ff54be6d70731c" datatype="html">\n        <source>Edit</source>\n        <target>Editar</target>\n      </trans-unit>\n      <trans-unit id="826b25211922a1b46436589233cb6f1a163d89b7" datatype="html">\n        <source>Delete</source>\n        <target>Suprimir</target>\n      </trans-unit>\n      <trans-unit id="a3ba06aba047605af8ea1718ec1ba153b7db12a2" datatype="html">\n        <source>Editing a silence will expire the old silence and recreate it as a new silence</source>\n        <target>Editing a silence will expire the old silence and recreate it as a new silence</target>\n      </trans-unit>\n      <trans-unit id="a20424156b8816671f61879f0574a4f27d7b16b9" datatype="html">\n        <source>Creator</source>\n        <target>Creator</target>\n      </trans-unit>\n      <trans-unit id="5a5d7ee2acbfa9c91ab7f41d26bda9ff0cafe42f" datatype="html">\n        <source>Comment</source>\n        <target>Comment</target>\n      </trans-unit>\n      <trans-unit id="4c11aad490b2d53fdae30b3807beabf79306752c" datatype="html">\n        <source>Start time</source>\n        <target>Start time</target>\n      </trans-unit>\n      <trans-unit id="32856b1e8e339b747b21e313e2fe65a51fd450bb" datatype="html">\n        <source>If the start time lies in the past the creation time will be used</source>\n        <target>If the start time lies in the past the creation time will be used</target>\n      </trans-unit>\n      <trans-unit id="a02ea1d4e7424ca989929da5e598f379940fdbf2" datatype="html">\n        <source>Duration</source>\n        <target>Duration</target>\n      </trans-unit>\n      <trans-unit id="2f4e35e36f4d3c62e2c17df41730b6dee4afc4b9" datatype="html">\n        <source>End time</source>\n        <target>End time</target>\n      </trans-unit>\n      <trans-unit id="992123459137d45c15df5548bc9682aad835c04b" datatype="html">\n        <source>Matchers</source>\n        <target>Matchers</target>\n      </trans-unit>\n      <trans-unit id="3e023166c55833d5a13f4143e3dbe372befe1b4e" datatype="html">\n        <source>A silence requires at least one matcher</source>\n        <target>A silence requires at least one matcher</target>\n      </trans-unit>\n      <trans-unit id="ef765bd80c4806c51c891908c07a24bc76f019eb" datatype="html">\n        <source>Add matcher</source>\n        <target>Add matcher</target>\n      </trans-unit>\n      <trans-unit id="d2bcd3296d2850de762fb943060b7e086a893181" datatype="html">\n        <source>Health</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">\n        <source>Statistics</source>\n        <target>Estadísticas</target>\n      </trans-unit>\n      <trans-unit id="f8f74e5f683012b9c0702b1446011c6b9158bc67" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the NFS Ganesha management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="7ffe39df9d88c972792bd8688b215392deb8313d" datatype="html">\n        <source>Clients</source>\n        <target>Clientes</target>\n      </trans-unit>\n      <trans-unit id="f2dae0bda66f6a349444951c0379c28cda47d6d1" datatype="html">\n        <source>Any client can access</source>\n        <target>Cualquier cliente puede acceder</target>\n      </trans-unit>\n      <trans-unit id="7882f2edb1d4139800b276b6b0bbf5ae0b2234ef" datatype="html">\n        <source>Addresses</source>\n        <target>Destinatarios</target>\n      </trans-unit>\n      <trans-unit id="9bd96fcf50863e685c74d0490392f46689ffbdb6" datatype="html">\n        <source>Required field</source>\n        <target>Campo requerido</target>\n      </trans-unit>\n      <trans-unit id="a5f3f74c0f6925826cb2188576391c0da01a23f0" datatype="html">\n        <source>Must contain one or more comma-separated values</source>\n        <target>Debe contener uno o varios valores separados por comas</target>\n      </trans-unit>\n      <trans-unit id="8bb5b2073697f3f4378c44a49b7524934c9268f4" datatype="html">\n        <source>For example:</source>\n        <target>Por ejemplo:</target>\n      </trans-unit>\n      <trans-unit id="8f969c655b3fbe4fba7e277caf4cd2c459f9fca5" datatype="html">\n        <source>Access Type</source>\n        <target>Tipo de acceso</target>\n      </trans-unit>\n      <trans-unit id="28952831a284cfe2b4fc39ca610e80b52598905a" datatype="html">\n        <source>Squash</source>\n        <target>Reducir privilegios</target>\n      </trans-unit>\n      <trans-unit id="0660ae339068979854ade34a96546980723dede3" datatype="html">\n        <source>Add clients</source>\n        <target>Añadir clientes</target>\n      </trans-unit>\n      <trans-unit id="135b91a2d908d5814b782695470a6a786c99d9d2" datatype="html">\n        <source>-- No cluster available --</source>\n        <target>-- No hay ningún clúster disponible --</target>\n      </trans-unit>\n      <trans-unit id="c501dba379f566885919240ea277b5bc10c14d18" datatype="html">\n        <source>-- Select the cluster --</source>\n        <target>-- Seleccione el clúster --</target>\n      </trans-unit>\n      <trans-unit id="cf85b1ee58326aa9da63da41b2629c9db7c9a5b9" datatype="html">\n        <source>Add daemon</source>\n        <target>Añadir daemon</target>\n      </trans-unit>\n      <trans-unit id="b3f6ba7fe84d6508705cdfe234f0fcc8ff85c9cf" datatype="html">\n        <source>Storage Backend</source>\n        <target>Motor de almacenamiento</target>\n      </trans-unit>\n      <trans-unit id="151c80ea931037cd92e854442927f8a0f6ae7795" datatype="html">\n        <source>-- No data pools available --</source>\n        <target>-- No hay ningún repositorio de datos disponible --</target>\n      </trans-unit>\n      <trans-unit id="b6fee356d1db954255a56d8169405a89595246b9" datatype="html">\n        <source>-- Select the storage backend --</source>\n        <target>-- Seleccione el motor de almacenamiento --</target>\n      </trans-unit>\n      <trans-unit id="76d67035c3ab3d8e56f725859f820f03fda41cfc" datatype="html">\n        <source>Object Gateway User</source>\n        <target>Usuario de Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="fade7788bace74337f306ae209f10fc187ef4671" datatype="html">\n        <source>-- No users available --</source>\n        <target>-- No hay ningún usuario disponible --</target>\n      </trans-unit>\n      <trans-unit id="6d30b7b36cf8f6364167321bdb4ba35d4cefce7b" datatype="html">\n        <source>-- Select the object gateway user --</source>\n        <target>-- Seleccione el usuario de Object Gateway --</target>\n      </trans-unit>\n      <trans-unit id="589ce20d3ba3e3ac44f75decfaadc4ea8f0aec2d" datatype="html">\n        <source>CephFS User ID</source>\n        <target>ID de usuario de CephFS</target>\n      </trans-unit>\n      <trans-unit id="c4b88a53ac3b0ece46ba9b3ad72355a3c190cce7" datatype="html">\n        <source>-- No clients available --</source>\n        <target>-- No hay ningún cliente disponible --</target>\n      </trans-unit>\n      <trans-unit id="da52835b80497a0002d24414b057dc46ae44ce38" datatype="html">\n        <source>-- Select the cephx client --</source>\n        <target>-- Seleccione el cliente de CephX --</target>\n      </trans-unit>\n      <trans-unit id="fd3419e8957d928d7f7ba19c93356a0dbff02871" datatype="html">\n        <source>CephFS Name</source>\n        <target>Nombre de CephFS</target>\n      </trans-unit>\n      <trans-unit id="ee3ba0ab5f0ccd597b3e44021c71e9aaad14df0a" datatype="html">\n        <source>-- No CephFS filesystem available --</source>\n        <target>-- No CephFS filesystem available --</target>\n      </trans-unit>\n      <trans-unit id="764c57812558b1ae66c5eec95d7efd2b1bf761e3" datatype="html">\n        <source>-- Select the CephFS filesystem --</source>\n        <target>-- Select the CephFS filesystem --</target>\n      </trans-unit>\n      <trans-unit id="957512d0321f73e9f115bce1bd823fa635170c41" datatype="html">\n        <source>Security Label</source>\n        <target>Etiqueta de seguridad</target>\n      </trans-unit>\n      <trans-unit id="65ce0fa4da1ed55e658aeb31d1644a29f06bb342" datatype="html">\n        <source>Enable security label</source>\n        <target>Habilitar etiqueta de seguridad</target>\n      </trans-unit>\n      <trans-unit id="7e808f804130c7b6ff719509cbc06ebb27393a48" datatype="html">\n        <source>CephFS Path</source>\n        <target>Ruta de CephFS</target>\n      </trans-unit>\n      <trans-unit id="5ecc0107badb6625466aaa3f975b5c05276f432f" datatype="html">\n        <source>Path need to start with a \'/\' and can be followed by a word</source>\n        <target>La ruta debe empezar por "/" y puede ir seguida de una palabra</target>\n      </trans-unit>\n      <trans-unit id="2d02916f44fc63e13ab16d1cbe72aa6cb51feab3" datatype="html">\n        <source>New directory will be created</source>\n        <target>Se creará un directorio nuevo</target>\n      </trans-unit>\n      <trans-unit id="766c66ad5cc981c531aaf3fe3a2a7a346ddc8d83" datatype="html">\n        <source>Path</source>\n        <target>Ruta</target>\n      </trans-unit>\n      <trans-unit id="7ec35c722a50b976620f22612f7be619c12ceb90" datatype="html">\n        <source>Path can only be a single \'/\' or a word</source>\n        <target>La ruta solo puede ser una "/" o una palabra</target>\n      </trans-unit>\n      <trans-unit id="aebb6a5090c24511de4530195694bb3f3dcf0342" datatype="html">\n        <source>New bucket will be created</source>\n        <target>Se creará una papelera nueva</target>\n      </trans-unit>\n      <trans-unit id="bee6900143996c0e908a10564532eba3da0b30fb" datatype="html">\n        <source>NFS Protocol</source>\n        <target>Protocolo NFS</target>\n      </trans-unit>\n      <trans-unit id="2f534178c01ebf1307da2eaeef04bc6801ebc729" datatype="html">\n        <source>NFSv3</source>\n        <target>NFSv3</target>\n      </trans-unit>\n      <trans-unit id="f5043c0921e709935ab026bb3253ffe1f159fca1" datatype="html">\n        <source>NFSv4</source>\n        <target>NFSv4</target>\n      </trans-unit>\n      <trans-unit id="92488963d23095985a47c0d6e62304e11d333f19" datatype="html">\n        <source>NFS Tag</source>\n        <target>Etiqueta NFS</target>\n      </trans-unit>\n      <trans-unit id="aae93362720aea94623682996dd3fcd0f906f056" datatype="html">\n        <source>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </source>\n        <target>Alternative access for \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v3\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> mounts (it must not have a leading /).\n        </target>\n      </trans-unit>\n      <trans-unit id="45d6db77dcf1a3eeb921033abc7882e517a541cc" datatype="html">\n        <source>Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz).</source>\n        <target>Puede que los clientes no monten subdirectorios (es decir, si Etiqueta = foo, el cliente puede que no monte foo/baz).</target>\n      </trans-unit>\n      <trans-unit id="a1c7a8676b55e882a97c6a6fb205204f9c761afa" datatype="html">\n        <source>By using different Tag options, the same Path may be exported multiple times.</source>\n        <target>Al usar distintas opciones de Etiqueta, la misma Ruta se puede exportar varias veces.</target>\n      </trans-unit>\n      <trans-unit id="6d2c39708a32910f89701dd7e1cfb9ec1c195768" datatype="html">\n        <source>Pseudo</source>\n        <target>Pseudo</target>\n      </trans-unit>\n      <trans-unit id="1f8be2ae25947bec0b84c2338201580ea053f34e" datatype="html">\n        <source>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </source>\n        <target>The position that this \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>NFS v4\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> export occupies\n                in the \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>Pseudo FS\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> (it must be unique).\n        </target>\n      </trans-unit>\n      <trans-unit id="f3af55f7fd5b1d9e5a53e030c80116dc635bfb9f" datatype="html">\n        <source>By using different Pseudo options, the same Path may be exported multiple times.</source>\n        <target>Al usar distintas opciones de Pseudo, la misma Ruta se puede exportar varias veces.</target>\n      </trans-unit>\n      <trans-unit id="ddf98fcdeeb17643db020d54f42b5e56b5f9a52a" datatype="html">\n        <source>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</source>\n        <target>Pseudo needs to start with a \'/\' and can\'t contain any of the following: &gt;, &lt;, |, &amp;, ( or ).</target>\n      </trans-unit>\n      <trans-unit id="27eb35c4b4ac08781a7253a2ab40f8f7d957ba51" datatype="html">\n        <source>-- No access type available --</source>\n        <target>-- No hay ningún tipo de acceso disponible --</target>\n      </trans-unit>\n      <trans-unit id="509ce016c9110a54028dafd741f15ceacbe74b5a" datatype="html">\n        <source>-- Select the access type --</source>\n        <target>-- Seleccione el tipo de acceso --</target>\n      </trans-unit>\n      <trans-unit id="49850390a653cd05dc5843d74ef073a9122b54c9" datatype="html">\n        <source>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </source>\n        <target>The Object Gateway NFS backend has a number of\n              limitations which will seriously affect applications writing to\n              the share. Please consult the\n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/> documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for details before enabling write access.\n        </target>\n      </trans-unit>\n      <trans-unit id="4deda03573eaaff77e63f6a238a1f0ca7816950a" datatype="html">\n        <source>-- No squash available --</source>\n        <target>-- No hay ninguna reducción de privilegios disponible --</target>\n      </trans-unit>\n      <trans-unit id="a0e82a4da88e7fdf270444f838d45849676e9d4b" datatype="html">\n        <source>--Select what kind of user id squashing is performed --</source>\n        <target>-- Seleccione el tipo de reducción de privilegios de ID de usuario que se va a realizar --</target>\n      </trans-unit>\n      <trans-unit id="d01b7c3f7f06712c53d054cfbe4f53d446b038e8" datatype="html">\n        <source>Transport Protocol</source>\n        <target>Protocolo de transporte</target>\n      </trans-unit>\n      <trans-unit id="d2a6ad6e8bc315f07911722c05767ac79c136d99" datatype="html">\n        <source>UDP</source>\n        <target>UDP</target>\n      </trans-unit>\n      <trans-unit id="9c030f11e0aae9b24d2c048c57f29f590be621df" datatype="html">\n        <source>TCP</source>\n        <target>TCP</target>\n      </trans-unit>\n      <trans-unit id="734c9905951a774870497c5aaae8e3ee833b6196" datatype="html">\n        <source>CephFS</source>\n        <target>CephFS</target>\n      </trans-unit>\n      <trans-unit id="0eb15f32b2b92d7f3103ef3ff032621888a8dc32" datatype="html">\n        <source>Old password</source>\n        <target>Old password</target>\n      </trans-unit>\n      <trans-unit id="1cf42e491adc166a337a960eb84d03c0c3f677c8" datatype="html">\n        <source>The old and new passwords must be different.</source>\n        <target>The old and new passwords must be different.</target>\n      </trans-unit>\n      <trans-unit id="e70e209561583f360b1e9cefd2cbb1fe434b6229" datatype="html">\n        <source>New password</source>\n        <target>New password</target>\n      </trans-unit>\n      <trans-unit id="ede41f01c781b168a783cfcefc6fb67d48780d9b" datatype="html">\n        <source>Confirm new password</source>\n        <target>Confirm new password</target>\n      </trans-unit>\n      <trans-unit id="90163a3d3746819aef42e829f4446331232f3b66" datatype="html">\n        <source>Password confirmation doesn\'t match the new password.</source>\n        <target>Password confirmation doesn\'t match the new password.</target>\n      </trans-unit>\n      <trans-unit id="d06ae77f9ec46a4cdd49e7e76c73a411aaf2ee38" datatype="html">\n        <source>Please set a new password.</source>\n        <target>Please set a new password.</target>\n      </trans-unit>\n      <trans-unit id="8b5b3566e88438f51bd5f6caf6c090ed565ba5ed" datatype="html">\n        <source>You will be redirected to the login page afterwards.</source>\n        <target>You will be redirected to the login page afterwards.</target>\n      </trans-unit>\n      <trans-unit id="449dca3d3a93ead418b0541ea81b0dda7e6483c2" datatype="html">\n        <source>Welcome to Ceph!</source>\n        <target>¡Bienvenidos a Ceph!</target>\n        <note>The welcome message on the login page</note>\n      </trans-unit>\n      <trans-unit id="0070e83d11da39d6f4bb95065c2675db1610b419" datatype="html">\n        <source>Username is required</source>\n        <target>El nombre de usuario es obligatorio</target>\n      </trans-unit>\n      <trans-unit id="1e20f8b8a4706526c9024cc2f39d568345d100dc" datatype="html">\n        <source>Password is required</source>\n        <target>La contraseña es obligatoria</target>\n      </trans-unit>\n      <trans-unit id="6765b4c916060f6bc42d9bb69e80377dbcb5e4e9" datatype="html">\n        <source>Login</source>\n        <target>Entrada</target>\n      </trans-unit>\n      <trans-unit id="58fc1b5c79a75370eb52644fd83fb2e7096b6649" datatype="html">\n        <source>Sorry, the user does not exist in Ceph.</source>\n        <target>Lo sentimos. El usuario no existe en Ceph.</target>\n      </trans-unit>\n      <trans-unit id="d9deb94f78e7c41b35c6622b874f06657d7604c1" datatype="html">\n        <source>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </source>\n        <target>Return to \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Login Page\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>. You\'ll be logged out from the Identity Provider when you retry logging in.\n        </target>\n      </trans-unit>\n      <trans-unit id="471e78026c258073ba687478dc54c35d9041ea42" datatype="html">\n        <source>Forbidden</source>\n        <target>Prohibido</target>\n      </trans-unit>\n      <trans-unit id="02ea8ad57677e3c63f3d7814ca5e6c7b74e360b4" datatype="html">\n        <source>Sorry, you are not allowed to see what you were looking for.</source>\n        <target>Lo sentimos. No tiene permiso para ver lo que busca.</target>\n      </trans-unit>\n      <trans-unit id="2240b985f17293d84cc8532fe86994aa5f63667c" datatype="html">\n        <source>Sorry, we could not find what you were looking for.</source>\n        <target>Sorry, we could not find what you were looking for.</target>\n      </trans-unit>\n      <trans-unit id="ac54c18c1b520e948095c83a3a1025f02ce6dcc6" datatype="html">\n        <source>Neither hostname nor OSD ID given</source>\n        <target>Neither hostname nor OSD ID given</target>\n      </trans-unit>\n      <trans-unit id="4f635b3cb0600409a2ad44a5bd1863c699e6a01c" datatype="html">\n        <source>Failed to retrieve SMART data.</source>\n        <target>Failed to retrieve SMART data.</target>\n      </trans-unit>\n      <trans-unit id="d82a9af5b05e7cd17640f196f163771685ff8df6" datatype="html">\n        <source>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</source>\n        <target>The data received has the JSON format version 2.x and is currently incompatible with the dashboard.</target>\n      </trans-unit>\n      <trans-unit id="04f8a3c7e8ac610e6581960162cc15f55a16696a" datatype="html">\n        <source>No SMART data available.</source>\n        <target>No SMART data available.</target>\n      </trans-unit>\n      <trans-unit id="3a03d3c2e459f8f8fa7202c0fce465d6165f9e2b" datatype="html">\n        <source>passed</source>\n        <target>passed</target>\n      </trans-unit>\n      <trans-unit id="a185c9b97513b3882604ea9bab60edbfac945c15" datatype="html">\n        <source>SMART overall-health self-assessment test result</source>\n        <target>SMART overall-health self-assessment test result</target>\n      </trans-unit>\n      <trans-unit id="41435d5a5692c8e412c74deaee95d99dbd3617e1" datatype="html">\n        <source>failed</source>\n        <target>failed</target>\n      </trans-unit>\n      <trans-unit id="ddd5dd6d930030096ea617f62c82b648a0dd9484" datatype="html">\n        <source>Device Information</source>\n        <target>Device Information</target>\n      </trans-unit>\n      <trans-unit id="380295f37caea93701d071485a38ef0bdba57133" datatype="html">\n        <source>No SMART data available for this device.</source>\n        <target>No SMART data available for this device.</target>\n      </trans-unit>\n      <trans-unit id="20cb12827cbe559a7b1da6fdae96041b3b5c3c55" datatype="html">\n        <source>SMART</source>\n        <target>SMART</target>\n      </trans-unit>\n      <trans-unit id="5758c3f16f8749f0f4e2a787f02e8b4da246102f" datatype="html">\n        <source>SMART data is loading.</source>\n        <target>SMART data is loading.</target>\n      </trans-unit>\n      <trans-unit id="a949d7e577902d0e5dc5d0971bb0170a21be7728" datatype="html">\n        <source>[object Object]</source>\n        <target>[object Object]</target>\n      </trans-unit>\n      <trans-unit id="ff92fbdec9fdd5054493eeda0d7ee8b450f83e72" datatype="html">\n        <source>RBD Configuration</source>\n        <target>Configuración de RBD</target>\n      </trans-unit>\n      <trans-unit id="b62d9efc8eb3b589904f6cb96a0406bbda55673a" datatype="html">\n        <source>Remove the local configuration value. The parent configuration value will be inherited and used instead.</source>\n        <target>Elimina el valor de configuración local. Se heredará y usará en su lugar el valor de configuración padre.</target>\n      </trans-unit>\n      <trans-unit id="963488a1010d46067b238c4ae917fab3907c0a3a" datatype="html">\n        <source>The mininum value is 0</source>\n        <target>El valor mínimo es 0</target>\n      </trans-unit>\n      <trans-unit id="1d8a7c8aea58294a3c57c23af0468ddf0ba0c9c7" datatype="html">\n        <source>Pools List</source>\n        <target>Lista de repositorios</target>\n      </trans-unit>\n      <trans-unit id="490e15ecc922965b6d8194754c87c5583aa071f3" datatype="html">\n        <source>The name can only consist of alphanumeric characters, dashes and underscores.</source>\n        <target>El nombre solo puede tener caracteres alfanuméricos, guiones y guiones bajos.</target>\n      </trans-unit>\n      <trans-unit id="9edc2b494e660618af3e5225f68d40b7ca67629c" datatype="html">\n        <source>The chosen erasure code profile name is already in use.</source>\n        <target>El nombre del perfil de código de borrado que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="35a4206db3105ed03e0dd799e1642b75b78123e8" datatype="html">\n        <source>Root</source>\n        <target>Root</target>\n      </trans-unit>\n      <trans-unit id="cf425784c7073c7e7f7c1bb90c2c19db7e751db2" datatype="html">\n        <source>Failure domain type</source>\n        <target>Failure domain type</target>\n      </trans-unit>\n      <trans-unit id="72396a9565cf644d1fe1b21b790c4243ee270986" datatype="html">\n        <source>Device class</source>\n        <target>Device class</target>\n      </trans-unit>\n      <trans-unit id="72d80e0c07bfea1b693a33ef2245007de92a6780" datatype="html">\n        <source>Let Ceph decide</source>\n        <target>Let Ceph decide</target>\n      </trans-unit>\n      <trans-unit id="ef9ff0e6227947b48dfab4ac39ade04af758913b" datatype="html">\n        <source>Plugin</source>\n        <target>Complemento</target>\n      </trans-unit>\n      <trans-unit id="dd69b31bce8f630eac1d4762b0bbcf72ce19d193" datatype="html">\n        <source>Data chunks (k)</source>\n        <target>Porciones de datos (k)</target>\n      </trans-unit>\n      <trans-unit id="b0d26a6172d32cb81218fe2103c54a818cbc1189" datatype="html">\n        <source>Must be equal to or greater than 2.</source>\n        <target>Debe ser igual o mayor que 2.</target>\n      </trans-unit>\n      <trans-unit id="dab3a299ead121169b8e08ed618c3b6a2f66691b" datatype="html">\n        <source>Coding chunks (m)</source>\n        <target>Porciones de código (m)</target>\n      </trans-unit>\n      <trans-unit id="1e2773e5bd4948193f18f2361d663ecc3988c656" datatype="html">\n        <source>Must be equal to or greater than 1.</source>\n        <target>Debe ser igual o mayor que 1.</target>\n      </trans-unit>\n      <trans-unit id="6cde4c945a49a260c0a47bcc7cd956846930a5f7" datatype="html">\n        <source>Durability estimator (c)</source>\n        <target>Estimador de durabilidad (c)</target>\n      </trans-unit>\n      <trans-unit id="af668c2a095a979ea2b4e43cd82c2120ab56c21c" datatype="html">\n        <source>Locality (l)</source>\n        <target>Localización (l)</target>\n      </trans-unit>\n      <trans-unit id="d455a110bf6d2235e314e295ce1dfeee93d3dff2" datatype="html">\n        <source>Crush failure domain</source>\n        <target>Dominio de error de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="b74a495f041f7dd102eee5c0bbc9e03083b538ae" datatype="html">\n        <source>Crush Locality</source>\n        <target>Localización de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="a2f14a73f7a6e94479f67423cc51102da8d6f524" datatype="html">\n        <source>None</source>\n        <target>Ninguna</target>\n      </trans-unit>\n      <trans-unit id="2981733b912b693a9dd9d915d6d34f4692cc874a" datatype="html">\n        <source>Technique</source>\n        <target>Técnica</target>\n      </trans-unit>\n      <trans-unit id="e0098b6e47b04ec817361f384ce81d454ba5c0bb" datatype="html">\n        <source>Packetsize</source>\n        <target>Tamaño del paquete</target>\n      </trans-unit>\n      <trans-unit id="c0252cd81ca54d0a2f69ec9ccf4248e73df5aa4a" datatype="html">\n        <source>Crush root</source>\n        <target>Raíz de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="1548d5c76f0406ddd1ba3c557e1e6db22e95b340" datatype="html">\n        <source>Crush device class</source>\n        <target>Clase de dispositivo de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="5e85feb6f9f0334366e46ee09ca6b8df52397432" datatype="html">\n        <source>any</source>\n        <target>cualquiera</target>\n      </trans-unit>\n      <trans-unit id="03d84645f6e019c5a43909bbf2ea1696ee88332c" datatype="html">\n        <source>Directory</source>\n        <target>Directorio</target>\n      </trans-unit>\n      <trans-unit id="2fecea01ce1d44114ee45144eff6d47a5016a74f" datatype="html">\n        <source>Name...</source>\n        <target>Nombre...</target>\n      </trans-unit>\n      <trans-unit id="16e113230b6b0d3165e076300880542bac7c8138" datatype="html">\n        <source>The chosen Ceph pool name is already in use.</source>\n        <target>El nombre del repositorio de Ceph que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="c75b132bef7b29fa5171768303c4b96e34ccaf68" datatype="html">\n        <source>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</source>\n        <target>It\'s not possible to create an RBD pool with \'/\' in the name.\n              Please change the name or remove \'rbd\' from the applications list.</target>\n      </trans-unit>\n      <trans-unit id="171dc6d5c6bc4615d99778b0088cae80fd00bd10" datatype="html">\n        <source>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</source>\n        <target>Pool name can only contain letters, numbers, \'.\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="b85c657469e5ec8231c3de99b22f437bc01ffde5" datatype="html">\n        <source>Pool type</source>\n        <target>Tipo de repositorio</target>\n      </trans-unit>\n      <trans-unit id="526c5443254c3b126eedb264840ffe827727bfd3" datatype="html">\n        <source>-- Select a pool type --</source>\n        <target>-- Seleccione un tipo de repositorio --</target>\n      </trans-unit>\n      <trans-unit id="6abfbe47b630929d93c7343dc154599c2e59330a" datatype="html">\n        <source>PG Autoscale</source>\n        <target>PG Autoscale</target>\n      </trans-unit>\n      <trans-unit id="0aa21053410a94aa61d16985a4e95fd65523430d" datatype="html">\n        <source>Placement groups</source>\n        <target>Grupos de colocación</target>\n      </trans-unit>\n      <trans-unit id="6301f1391d726f8f450bb358058534db19541ca9" datatype="html">\n        <source>At least one placement group is needed!</source>\n        <target>Se necesita al menos un grupo de colocación.</target>\n      </trans-unit>\n      <trans-unit id="ba9469a1ce6ed36e039c1f67247c8c81a5c71449" datatype="html">\n        <source>Your cluster can\'t handle this many PGs. Please recalculate the PG amount needed.</source>\n        <target>El clúster no puede gestionar tantos grupos de colocación. Vuelva a calcular la cantidad que necesita.</target>\n      </trans-unit>\n      <trans-unit id="80ac68cd883369dac20688bc32b4cb33291b5e50" datatype="html">\n        <source>Calculation help</source>\n        <target>Ayuda para el cálculo</target>\n      </trans-unit>\n      <trans-unit id="fccbd60493df26705d957ed6c02a3c447894678f" datatype="html">\n        <source>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</source>\n        <target>The current PGs settings were calculated for you, you\n                should make sure the values suit your needs before submit.</target>\n      </trans-unit>\n      <trans-unit id="a43b2695131b48b76cebba676aba98a2bee17515" datatype="html">\n        <source>Replicated size</source>\n        <target>Tamaño replicado</target>\n      </trans-unit>\n      <trans-unit id="7bff144a4c4dc63b0e18fff2617d61a7ebdf2b6c" datatype="html">\n        <source>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </source>\n        <target>Minimum: \n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="1a9c54b41f6d58a74e5d0aa3429ed0c87a482551" datatype="html">\n        <source>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </source>\n        <target>Maximum: \n          <x id="INTERPOLATION" equiv-text="{{ getMaxSize() }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ab647b95bd2347ae6f4605576de5e0269fb893a" datatype="html">\n        <source>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </source>\n        <target>The size specified is out of range. A value from\n          <x id="INTERPOLATION" equiv-text="{{ getMinSize() }}"/> to \n          <x id="INTERPOLATION_1" equiv-text="{{ getMaxSize() }}"/> is valid.\n        </target>\n      </trans-unit>\n      <trans-unit id="920617c6a1a4805e53bcb5af6a9c76f8387e89c6" datatype="html">\n        <source>Flags</source>\n        <target>Indicadores</target>\n      </trans-unit>\n      <trans-unit id="1c870fb00256b8a5b9cb9cd1a124e6390b9bc639" datatype="html">\n        <source>EC Overwrites</source>\n        <target>Sustituciones de códigos de borrado</target>\n      </trans-unit>\n      <trans-unit id="f1abafaeb40ce52355ddcc24686e3cd17b64e08a" datatype="html">\n        <source>Applications</source>\n        <target>Aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="fb9308b82fc183f710df60909f49cfc73aa5e076" datatype="html">\n        <source>CRUSH</source>\n        <target>CRUSH</target>\n      </trans-unit>\n      <trans-unit id="9de7dde00e2139cc4bd03b1837afbe72ad15a1ff" datatype="html">\n        <source>Erasure code profile</source>\n        <target>Perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="39b4620e6bd444e0a57a0a5c03fa8c96d7fe5235" datatype="html">\n        <source>-- No erasure code profile available --</source>\n        <target>-- No hay ningún perfil de código de borrado disponible --</target>\n      </trans-unit>\n      <trans-unit id="498561757390d5528b263ce450d5f38efb00266d" datatype="html">\n        <source>-- Select an erasure code profile --</source>\n        <target>-- Seleccione un perfil de código de borrado --</target>\n      </trans-unit>\n      <trans-unit id="33150f22ce5348aa6c499bd092c3f4f3695d62cc" datatype="html">\n        <source>Crush ruleset</source>\n        <target>Conjunto de reglas de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="c69b0bcd4698aa845d32c4c4ad488492552cb469" datatype="html">\n        <source>A new crush ruleset will be implicitly created.</source>\n        <target>A new crush ruleset will be implicitly created.</target>\n      </trans-unit>\n      <trans-unit id="896e9987db5e9bb279e6deed5d2dff28c242ef66" datatype="html">\n        <source>There are no rules.</source>\n        <target>There are no rules.</target>\n      </trans-unit>\n      <trans-unit id="73a6b31116b3cc322af951daa0bafdc169e6c42e" datatype="html">\n        <source>-- Select a crush rule --</source>\n        <target>-- Seleccione una regla de CRUSH --</target>\n      </trans-unit>\n      <trans-unit id="ea91d648f92002bc9f96d9b26b735c83ca0b53c6" datatype="html">\n        <source>This rule can\'t be deleted as it is in use.</source>\n        <target>This rule can\'t be deleted as it is in use.</target>\n      </trans-unit>\n      <trans-unit id="92da80699921e89fb19372e25b8d0f3b9fa427fc" datatype="html">\n        <source>Crush rule</source>\n        <target>Regla de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="5489e9f96835f469f6f728a00d8efa88ea5bc940" datatype="html">\n        <source>Crush steps</source>\n        <target>Pasos de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="fc5f5496a9e50fe69e1a09784f28d94944108294" datatype="html">\n        <source>Rule is not in use.</source>\n        <target>Rule is not in use.</target>\n      </trans-unit>\n      <trans-unit id="023d6f718770d2ea4ab8cabe26b0ec27ef967ec2" datatype="html">\n        <source>Used by pools</source>\n        <target>Used by pools</target>\n      </trans-unit>\n      <trans-unit id="104a0e6900d1d1b0c8cf9e5947e36edb352583fc" datatype="html">\n        <source>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</source>\n        <target>The rule can\'t be used in the current cluster as it has\n                  too few OSDs to meet the minimum required OSD by this rule.</target>\n      </trans-unit>\n      <trans-unit id="2208d63d5940ce656006a220102b1eb2b5e553da" datatype="html">\n        <source>Compression</source>\n        <target>Compresión</target>\n      </trans-unit>\n      <trans-unit id="37e10df2d9c0c25ef04ac112c9c9a7723e8efae0" datatype="html">\n        <source>Mode</source>\n        <target>Modo</target>\n      </trans-unit>\n      <trans-unit id="6c6f25c47da62ec597c6057a36ddfc3209811ec5" datatype="html">\n        <source>Algorithm</source>\n        <target>Algoritmo</target>\n      </trans-unit>\n      <trans-unit id="4903231d42089325a28892c0fde1aed46b733ae6" datatype="html">\n        <source>-- No erasure compression algorithm available --</source>\n        <target>-- No hay ningún algoritmo de compresión de borrado disponible --</target>\n      </trans-unit>\n      <trans-unit id="5d68ddb254275f8f44221e9ad6d8ceeb59ca46a6" datatype="html">\n        <source>Minimum blob size</source>\n        <target>Tamaño de Blob mínimo</target>\n      </trans-unit>\n      <trans-unit id="fb2f176df80647137cbb02bbeb29e5dec707a400" datatype="html">\n        <source>e.g., 128KiB</source>\n        <target>p. ej. 128 KiB</target>\n      </trans-unit>\n      <trans-unit id="1b7f6e53a4521c6eb3ced4c007fdd4cf80bb7707" datatype="html">\n        <source>Value should be greater than 0</source>\n        <target>El valor debe ser mayor que 0</target>\n      </trans-unit>\n      <trans-unit id="8db98ab14b4e207ec763dfdefbc2dae367aab1cc" datatype="html">\n        <source>Value should be less than the maximum blob size</source>\n        <target>Value should be less than the maximum blob size</target>\n      </trans-unit>\n      <trans-unit id="151efb127a9a4dd25259a0b2055442318a141f5b" datatype="html">\n        <source>Maximum blob size</source>\n        <target>Tamaño de Blob máximo</target>\n      </trans-unit>\n      <trans-unit id="0c656f0e346bbadf46eb1a5d20d0307a3bd20ba8" datatype="html">\n        <source>e.g., 512KiB</source>\n        <target>p. ej. 512 KiB</target>\n      </trans-unit>\n      <trans-unit id="0a65a24eee8a026f3b1113fe9e157e9a0dd69486" datatype="html">\n        <source>Value should be greater than the minimum blob size</source>\n        <target>El valor debe ser mayor que el tamaño de Blob mínimo</target>\n      </trans-unit>\n      <trans-unit id="261ba09c4a59de83f48f52a23fd328da37e61ff4" datatype="html">\n        <source>Ratio</source>\n        <target>Relación</target>\n      </trans-unit>\n      <trans-unit id="c1430457a9c3c66366e51d76bf10396014c576be" datatype="html">\n        <source>Compression ratio</source>\n        <target>Relación de compresión</target>\n      </trans-unit>\n      <trans-unit id="ae5ce6de352cde949998fb10754459c3a4eb183b" datatype="html">\n        <source>Value should be between 0.0 and 1.0</source>\n        <target>El valor debe estar entre 0,0 y 1,0</target>\n      </trans-unit>\n      <trans-unit id="8bb8293aa8161433778762ae025ffd5e7c85795e" datatype="html">\n        <source>Quotas</source>\n        <target>Quotas</target>\n      </trans-unit>\n      <trans-unit id="d99b34162c9c34f10d0ccd8dbae83d8569c2db77" datatype="html">\n        <source>Max bytes</source>\n        <target>Max bytes</target>\n      </trans-unit>\n      <trans-unit id="a1d14a18879c62f3f4ed705318b7164a1160e249" datatype="html">\n        <source>Leave it blank or specify 0 to disable this quota.</source>\n        <target>Leave it blank or specify 0 to disable this quota.</target>\n      </trans-unit>\n      <trans-unit id="7565b131562ff6c5f769fdbd239a772154abdd97" datatype="html">\n        <source>A valid quota should be greater than 0.</source>\n        <target>A valid quota should be greater than 0.</target>\n      </trans-unit>\n      <trans-unit id="f0016bd458baa88284a658ce9eeda42d8ad88d2c" datatype="html">\n        <source>e.g., 10GiB</source>\n        <target>ej.: 10 GiB</target>\n      </trans-unit>\n      <trans-unit id="b8bf35b66f09a301eef92ffc3cb2fd259df67ce9" datatype="html">\n        <source>Max objects</source>\n        <target>Max objects</target>\n      </trans-unit>\n      <trans-unit id="95f348167622d832c5ae532b6944635c8e2ae5cb" datatype="html">\n        <source>The value should be greater or equal to 0</source>\n        <target>The value should be greater or equal to 0</target>\n      </trans-unit>\n      <trans-unit id="4f8b2bb476981727ab34ed40fde1218361f92c45" datatype="html">\n        <source>Details</source>\n        <target>Detalles</target>\n      </trans-unit>\n      <trans-unit id="fbbaf5cb02ed419e79a27072478f716a4666a99d" datatype="html">\n        <source>Performance Details</source>\n        <target>Detalles de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="3938a411d76796f8ae73b72ea4c77661207453bd" datatype="html">\n        <source>Cache Tiers Details</source>\n        <target>Detalles de niveles de caché</target>\n      </trans-unit>\n      <trans-unit id="ecbc084370a732fc3cde1966a60af78d71424ab4" datatype="html">\n        <source>Create Bootstrap Token</source>\n        <target>Create Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="603e9cc3ef2aab57f2b0a00e465b23b9cabefd9c" datatype="html">\n        <source>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To create a bootstrap token which can be imported\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Generate\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="660f97cd3188f8a04bd03b79e703fec72c6df04c" datatype="html">\n        <source>Site Name</source>\n        <target>Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c2a1dc72cffaf7ab3dc5599bf77b0a7fcad2b20" datatype="html">\n        <source>At least one pool is required.</source>\n        <target>At least one pool is required.</target>\n      </trans-unit>\n      <trans-unit id="1b258b258b4cc475ceb2871305b61756b0134f4a" datatype="html">\n        <source>Generate</source>\n        <target>Generate</target>\n      </trans-unit>\n      <trans-unit id="1edc1fc6cfbbb22353050ad6788508b3ed584f53" datatype="html">\n        <source>Token</source>\n        <target>Token</target>\n      </trans-unit>\n      <trans-unit id="ff785f5596aef34a93b9b4d1023e95c62eef5740" datatype="html">\n        <source>Generated token...</source>\n        <target>Generated token...</target>\n      </trans-unit>\n      <trans-unit id="5467a6bb0e7fade6def7499400d5e2a7d8d3da20" datatype="html">\n        <source>Import Bootstrap Token</source>\n        <target>Import Bootstrap Token</target>\n      </trans-unit>\n      <trans-unit id="9bb7aee0dec5164f45c0aa2f35f2fb2149d2c1d2" datatype="html">\n        <source>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To import a bootstrap token which was created\n          by a peer site cluster, provide the local site\'s name, select\n          which pools will have mirroring enabled, provide the generated\n          token, and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Import\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="9200e09686136a1d42adfb89c12fbfef2deea125" datatype="html">\n        <source>Direction</source>\n        <target>Direction</target>\n      </trans-unit>\n      <trans-unit id="9761484679958da8d12841a4efa5964d33fae575" datatype="html">\n        <source>The token is invalid.</source>\n        <target>The token is invalid.</target>\n      </trans-unit>\n      <trans-unit id="a059709f71aa4c0ac219e160e78a738682ca6a36" datatype="html">\n        <source>Import</source>\n        <target>Import</target>\n      </trans-unit>\n      <trans-unit id="b87bd96249f8afc23f5301cddb57b1464a98e71a" datatype="html">\n        <source>Edit site name</source>\n        <target>Edit site name</target>\n      </trans-unit>\n      <trans-unit id="cfff72c667274c12eb1ff71eadc25871c10c42dc" datatype="html">\n        <source>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>Edit the site name and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="40b7acea5b43f45e0bbd1efeba5200af4687981d" datatype="html">\n        <source>Site Name:</source>\n        <target>Site Name:</target>\n      </trans-unit>\n      <trans-unit id="f0b5d789d42c0e69348e5fe0037fcbf5b5fbbdcc" datatype="html">\n        <source>Move an image to trash</source>\n        <target>Mover una imagen a la papelera</target>\n      </trans-unit>\n      <trans-unit id="7ad22c1d4aab3b8946603cea62de266d5129ca10" datatype="html">\n        <source>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</source>\n        <target>This image contains snapshot(s), which will prevent it\n            from being removed after moved to trash.</target>\n      </trans-unit>\n      <trans-unit id="b4b3ced4f8aad4c446f348b14c3d94be2e2c350c" datatype="html">\n        <source>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </source>\n        <target>To move \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ imageSpecStr }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> to trash,\n          click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Move Image\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>. Optionally, you can pick an expiration date.\n        </target>\n      </trans-unit>\n      <trans-unit id="88f27d390844aad53b4240360e928156c5f0d326" datatype="html">\n        <source>Protection expires at</source>\n        <target>La protección caduca a las</target>\n      </trans-unit>\n      <trans-unit id="da166e9a0d27322f6ba8916d71ecc0f9905bb4b1" datatype="html">\n        <source>NOT PROTECTED</source>\n        <target>SIN PROTECCIÓN</target>\n      </trans-unit>\n      <trans-unit id="a1506e5f2ca22cad14502ec7a20fb6113ace145d" datatype="html">\n        <source>Wrong date format. Please use "YYYY-MM-DD HH:mm:ss".</source>\n        <target>Formato de fecha erróneo. Use el formato "AAAA-MM-DD HH:mm:ss".</target>\n      </trans-unit>\n      <trans-unit id="aa7ea0bb7495281e0b3258467ac7d90a1e44a1a1" datatype="html">\n        <source>Protection has already expired. Please pick a future date or leave it empty.</source>\n        <target>La protección ya ha caducado. Seleccione una fecha del futuro o deje el campo vacío.</target>\n      </trans-unit>\n      <trans-unit id="536b3205c0c0d4d21685ec06feccfcf2fe14deb1" datatype="html">\n        <source>Move Image</source>\n        <target>Mover imagen</target>\n      </trans-unit>\n      <trans-unit id="c9f1026c1235f4d76ace47449e806efd181ab332" datatype="html">\n        <source>Deleting this image will also delete all its snapshots.</source>\n        <target>Deleting this image will also delete all its snapshots.</target>\n      </trans-unit>\n      <trans-unit id="55f864597e84d9bf88769e1fbfda1d64452430c9" datatype="html">\n        <source>The following snapshots are currently protected and will be removed:</source>\n        <target>The following snapshots are currently protected and will be removed:</target>\n      </trans-unit>\n      <trans-unit id="8a9910cd114c1deb9af74f6f99b4173403965bf2" datatype="html">\n        <source>Gateways</source>\n        <target>Gateways</target>\n      </trans-unit>\n      <trans-unit id="8835b9e49a3348b0a2f2162c21118af1f4bee45a" datatype="html">\n        <source>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </source>\n        <target>Must be greater than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'min\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="bbddac59563c8c126e3fe28691e4e247614fcbd1" datatype="html">\n        <source>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </source>\n        <target>Must be less than or equal to \n          <x id="INTERPOLATION" equiv-text="{{ limits[\'max\'] }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="e95ae009d0bdb45fcc656e8b65248cf7396080d5" datatype="html">\n        <source>Overview</source>\n        <target>Resumen</target>\n      </trans-unit>\n      <trans-unit id="bbd2045d5c37e4bb39a3c0fb62ea1ddf70a12838" datatype="html">\n        <source>Targets</source>\n        <target>Destinos</target>\n      </trans-unit>\n      <trans-unit id="6803e31b7395d94934e091a49a9524026b59b018" datatype="html">\n        <source>Discovery Authentication</source>\n        <target>Autenticación de descubrimiento</target>\n      </trans-unit>\n      <trans-unit id="e08a77594f3d89311cdf6da5090044270909c194" datatype="html">\n        <source>User</source>\n        <target>Usuario</target>\n      </trans-unit>\n      <trans-unit id="0214f773f8e394f50f953f39962e352d7863e959" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n              can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Los nombres de usuario deben tener entre 8 y 64 caracteres y\n                        solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".</target>\n      </trans-unit>\n      <trans-unit id="c32ef07f8803a223a83ed17024b38e8d82292407" datatype="html">\n        <source>Password</source>\n        <target>Contraseña</target>\n      </trans-unit>\n      <trans-unit id="6682d1c00263bee204583a5d589b308b6be88b0f" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n              and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="ff40391de7a1944ea95091e4045cc34c4979b736" datatype="html">\n        <source>Mutual User</source>\n        <target>Usuario mutuo</target>\n      </trans-unit>\n      <trans-unit id="0cf73dbebe99b737c4d288788182fc356e3c93d3" datatype="html">\n        <source>Mutual Password</source>\n        <target>Contraseña mutua</target>\n      </trans-unit>\n      <trans-unit id="8800276925157c666b103c36ff7fe8ffe11980b4" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n              can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="53a583cd5f15059cc958b7d547f72cc78f68e123" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n    on how to configure and enable the iSCSI Targets management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="3b301d0044f62c92af0da53d7aaca52a436a547d" datatype="html">\n        <source>Available information:</source>\n        <target>Información disponible:</target>\n      </trans-unit>\n      <trans-unit id="332227f088a4877b3c11f5fb3ae8bc812c470fae" datatype="html">\n        <source>iSCSI Targets not available</source>\n        <target>Destinos iSCSI no disponibles</target>\n      </trans-unit>\n      <trans-unit id="8414a5cb9d71cc1b21b10e4a9d1f2dad558f3361" datatype="html">\n        <source>Discovery authentication</source>\n        <target>Discovery authentication</target>\n      </trans-unit>\n      <trans-unit id="0f6e8f6094b180eaf1f11bc0ffe383f1cdcd059e" datatype="html">\n        <source>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </source>\n        <target>Only available for RBD images with \n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>fast-diff\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/> enabled\n        </target>\n      </trans-unit>\n      <trans-unit id="e70fcca5a99575cffef3ff8cbd5e69f06ffd0f1c" datatype="html">\n        <source>Pool</source>\n        <target>Repositorio</target>\n      </trans-unit>\n      <trans-unit id="03cc5b14b0a20d075e9009ff021f4f1660ba348a" datatype="html">\n        <source>Data Pool</source>\n        <target>Repositorio de datos</target>\n      </trans-unit>\n      <trans-unit id="1b051734b0ee9021991c91b3ed4e81c244322462" datatype="html">\n        <source>Created</source>\n        <target>Creados</target>\n      </trans-unit>\n      <trans-unit id="7faaaa08f56427999f3be41df1093ce4089bbd75" datatype="html">\n        <source>Size</source>\n        <target>Tamaño</target>\n      </trans-unit>\n      <trans-unit id="afdb601c16162f2c798b16a2920955f1cc6a20aa" datatype="html">\n        <source>Objects</source>\n        <target>Objetos</target>\n      </trans-unit>\n      <trans-unit id="ceac8e132384322ec778ba760875a6c6897d3e42" datatype="html">\n        <source>Object size</source>\n        <target>Tamaño del objeto</target>\n      </trans-unit>\n      <trans-unit id="0a65771c9a73b9aa609d592fc96a64801a8f40bd" datatype="html">\n        <source>Provisioned</source>\n        <target>Aprovisionados</target>\n      </trans-unit>\n      <trans-unit id="84a36cb75660b736773fe36ffa3d54f0f0fe363e" datatype="html">\n        <source>N/A</source>\n        <target>N/D</target>\n      </trans-unit>\n      <trans-unit id="e5c009342a4e8381f64341d0bb61c2e4685f5a4b" datatype="html">\n        <source>Total provisioned</source>\n        <target>Total aprovisionado</target>\n      </trans-unit>\n      <trans-unit id="7f6bf8a43ae415f527ac961ea62471b983aaa97b" datatype="html">\n        <source>Striping unit</source>\n        <target>Unidad de repartición</target>\n      </trans-unit>\n      <trans-unit id="db710e8a8f011923f2d15d713fbae49c38b02b26" datatype="html">\n        <source>Striping count</source>\n        <target>Recuento de repartición</target>\n      </trans-unit>\n      <trans-unit id="3a4c2a9e76634ff14a60d52a718296f722d47c67" datatype="html">\n        <source>Parent</source>\n        <target>Padre</target>\n      </trans-unit>\n      <trans-unit id="6a209e68d78ffc2cc9c53d2e76158624efab71ad" datatype="html">\n        <source>Block name prefix</source>\n        <target>Prefijo de nombre de bloque</target>\n      </trans-unit>\n      <trans-unit id="5704ec2049d007c5f5fb495a5d8b607e68d58081" datatype="html">\n        <source>Order</source>\n        <target>Orden</target>\n      </trans-unit>\n      <trans-unit id="f21b1d17b6c5042bb5805516eee37fde33739dd8" datatype="html">\n        <source>Snapshots</source>\n        <target>Instantáneas</target>\n      </trans-unit>\n      <trans-unit id="a5f9ba9bb9faa8284bcadb1cdbc6aaf969e9c4bb" datatype="html">\n        <source>Image</source>\n        <target>Imagen</target>\n      </trans-unit>\n      <trans-unit id="58e58f1a8786da9031a05e6770c5dafce82badf5" datatype="html">\n        <source>This setting overrides the global value</source>\n        <target>Este ajuste sustituye al valor global</target>\n      </trans-unit>\n      <trans-unit id="5decb3917d46a9ac6e5813699801becb7c3c1455" datatype="html">\n        <source>Global</source>\n        <target>Global</target>\n      </trans-unit>\n      <trans-unit id="36b46714164964c6258b08ed0a25f57d8a950f92" datatype="html">\n        <source>This is the global value. No value for this option has been set for this image.</source>\n        <target>Este es el valor global. No se ha definido ningún valor para esta opción para esta imagen.</target>\n      </trans-unit>\n      <trans-unit id="6547c9c4d5f62942ac4b1fe459cf9a03d4dbf5a0" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ action | titlecase }}"/> from\n        </target>\n      </trans-unit>\n      <trans-unit id="0e9ecf29a4fa5b057bd8052e0d801b3fde6a30bf" datatype="html">\n        <source>\'/\' and \'@\' are not allowed.</source>\n        <target>No se permiten los caracteres "/" ni "@".</target>\n      </trans-unit>\n      <trans-unit id="b99417c4dd46286ffd37c8d2e987c8b512ec7052" datatype="html">\n        <source>-- No rbd pools available --</source>\n        <target>-- No hay ningún repositorio RBD disponible --</target>\n      </trans-unit>\n      <trans-unit id="ef83ec9c304a89d45650e580dcdc2978c37b3a83" datatype="html">\n        <source>-- Select a pool --</source>\n        <target>-- Seleccione un repositorio --</target>\n      </trans-unit>\n      <trans-unit id="d649904466254d13df1fbf2d255f0bbc6553d213" datatype="html">\n        <source>-- No namespaces available --</source>\n        <target>-- No namespaces available --</target>\n      </trans-unit>\n      <trans-unit id="e22d7bb4d2d561e0832ee0b9a3da2468a080c4f0" datatype="html">\n        <source>-- Select a namespace --</source>\n        <target>-- Select a namespace --</target>\n      </trans-unit>\n      <trans-unit id="49449943d8cbf59d8c401c8bd2e76f92e207cc5f" datatype="html">\n        <source>Use a dedicated data pool</source>\n        <target>Usar un repositorio dedicado para datos</target>\n      </trans-unit>\n      <trans-unit id="870aee0dd31a9643bf62007beb8f1ae1deb34d42" datatype="html">\n        <source>Data pool</source>\n        <target>Repositorio de datos</target>\n      </trans-unit>\n      <trans-unit id="3792ca829d9b9f687e1f5d7733d30e9bb0bfec47" datatype="html">\n        <source>Dedicated pool that stores the object-data of the RBD.</source>\n        <target>Repositorio dedicado para almacenar los datos de objeto de RBD.</target>\n      </trans-unit>\n      <trans-unit id="0a88bbee20570aaf9615332fb27020627044874d" datatype="html">\n        <source>You have to increase the size.</source>\n        <target>Debe aumentar el tamaño.</target>\n      </trans-unit>\n      <trans-unit id="bc2e854e111ecf2bd7db170da5e3c2ed08181d88" datatype="html">\n        <source>Advanced</source>\n        <target>Avanzado</target>\n      </trans-unit>\n      <trans-unit id="3562a3778695a5f9c0445660e35301f0a39aaf73" datatype="html">\n        <source>Striping</source>\n        <target>Repartición</target>\n      </trans-unit>\n      <trans-unit id="ef3c3f3b5f562a5cdbe0ee2874287db1534b5958" datatype="html">\n        <source>Stripe unit</source>\n        <target>Unidad de repartición</target>\n      </trans-unit>\n      <trans-unit id="84471be1049006edecbcaef1a32ae0893c229c50" datatype="html">\n        <source>-- Select stripe unit --</source>\n        <target>-- Seleccione la unidad de repartición --</target>\n      </trans-unit>\n      <trans-unit id="8d32c5c54c8581c774a7f467fbd4e329b15a74fa" datatype="html">\n        <source>This field is required because stripe count is defined!</source>\n        <target>Este campo es obligatorio porque se ha definido el recuento de repartición.</target>\n      </trans-unit>\n      <trans-unit id="6bbf9040be7c5491d4a03f2185708f43a6582a3b" datatype="html">\n        <source>Stripe unit is greater than object size.</source>\n        <target>La unidad de repartición es mayor que el tamaño del objeto.</target>\n      </trans-unit>\n      <trans-unit id="a682f49f9b761591661276d7c6f550e641a130a4" datatype="html">\n        <source>Stripe count</source>\n        <target>Recuento de repartición</target>\n      </trans-unit>\n      <trans-unit id="baa74031990c5370008ba622d0a250f0929097f4" datatype="html">\n        <source>This field is required because stripe unit is defined!</source>\n        <target>Este campo es obligatorio porque se ha definido la unidad de repartición.</target>\n      </trans-unit>\n      <trans-unit id="cd2ada6d5ecbd5cbf89eae0a1f5326efedac0dbc" datatype="html">\n        <source>Stripe count must be greater than 0.</source>\n        <target>El recuento de repartición debe ser mayor que 0.</target>\n      </trans-unit>\n      <trans-unit id="2c07d24bb422aa8e5e568df1c5709083f0a9c8f1" datatype="html">\n        <source>Create Namespace</source>\n        <target>Create Namespace</target>\n      </trans-unit>\n      <trans-unit id="0cca6c0485f96d3a9610d0339cb1275a5f2c3f46" datatype="html">\n        <source>Namespace already exists.</source>\n        <target>Namespace already exists.</target>\n      </trans-unit>\n      <trans-unit id="5c5331983af566d4ac6a1024d15a3511786a4aa6" datatype="html">\n        <source>You are about to rollback</source>\n        <target>Se dispone a revertir</target>\n      </trans-unit>\n      <trans-unit id="49c0408946a6d67185947f455f15cc201d0d78e6" datatype="html">\n        <source>Purge Trash</source>\n        <target>Vaciar papelera</target>\n      </trans-unit>\n      <trans-unit id="681501eecd7f44d4b7a2f619605b36676e04c5b6" datatype="html">\n        <source>To purge, select one or</source>\n        <target>To purge, select one or</target>\n      </trans-unit>\n      <trans-unit id="dfc3c34e182ea73c5d784ff7c8135f087992dac1" datatype="html">\n        <source>All</source>\n        <target>Todas</target>\n      </trans-unit>\n      <trans-unit id="ea5d338dcef50ff5c24439fd784f6a67b594c33f" datatype="html">\n        <source>pools and click</source>\n        <target>pools and click</target>\n      </trans-unit>\n      <trans-unit id="55a4f598a4894b7fd5cb88f0ffd3c37ad009dd70" datatype="html">\n        <source>Pool:</source>\n        <target>Repositorio:</target>\n      </trans-unit>\n      <trans-unit id="d43dd2b9f7797e4cf3a604695bb33e4479108516" datatype="html">\n        <source>Pool name...</source>\n        <target>Nombre del repositorio...</target>\n      </trans-unit>\n      <trans-unit id="b0e7c7ed1d51a0c205c815048bc9f79e24ee6db2" datatype="html">\n        <source>Restore Image</source>\n        <target>Restaurar imágenes</target>\n      </trans-unit>\n      <trans-unit id="7369384817e0ad61ce871c9afdfbb538df2f97c1" datatype="html">\n        <source>To restore</source>\n        <target>Para restaurar</target>\n      </trans-unit>\n      <trans-unit id="e7f0abefc608f7fb452c2dc9b1cdc3dec432160e" datatype="html">\n        <source>type the image\'s new name and click</source>\n        <target>escriba el nombre nuevo de la imagen y haga clic en</target>\n      </trans-unit>\n      <trans-unit id="41307dd56fea669eed72e12a6c23af275f6bfd82" datatype="html">\n        <source>New Name</source>\n        <target>Nombre nuevo</target>\n      </trans-unit>\n      <trans-unit id="5c96a761dc55a21882c132c929583a424c9b8cf4" datatype="html">\n        <source>Expired at</source>\n        <target>Caducó a las</target>\n      </trans-unit>\n      <trans-unit id="661041e3fcff4d3e75c561e038ca2504cf2cc643" datatype="html">\n        <source>Protected until</source>\n        <target>Protección hasta</target>\n      </trans-unit>\n      <trans-unit id="0ee3b2322a1d3277f7e3fdb8a5141ac42bcf350b" datatype="html">\n        <source>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </source>\n        <target>This image is protected until \n          <x id="INTERPOLATION" equiv-text="{{ expiresAt | cdDate }}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a674ab267d1934bf395f87ca1503fd474296893f" datatype="html">\n        <source>iSCSI Topology</source>\n        <target>Topología iSCSI</target>\n      </trans-unit>\n      <trans-unit id="051dcc342cfa5c1eaf187a2001aaa162379a160c" datatype="html">\n        <source>Configure</source>\n        <target>Configure</target>\n      </trans-unit>\n      <trans-unit id="9e515f954730279c31d5301f02479666d6264e8b" datatype="html">\n        <source>Changing these parameters from their default values is usually not necessary.</source>\n        <target>Normalmente no es necesario cambiar los valores por defecto de estos parámetros.</target>\n      </trans-unit>\n      <trans-unit id="4e2591df099ddac796cda401c5f282da779d45f2" datatype="html">\n        <source>Identifier</source>\n        <target>Identifier</target>\n      </trans-unit>\n      <trans-unit id="62480a4859976427cf18fc8ef41d3a438eda0412" datatype="html">\n        <source>lun</source>\n        <target>lun</target>\n      </trans-unit>\n      <trans-unit id="8afc9eb4405e0aa554b2ba14140ef790cdecc040" datatype="html">\n        <source>wwn</source>\n        <target>wwn</target>\n      </trans-unit>\n      <trans-unit id="121cc5391cd2a5115bc2b3160379ee5b36cd7716" datatype="html">\n        <source>Settings</source>\n        <target>Ajustes</target>\n      </trans-unit>\n      <trans-unit id="69a47cbabcc51ca942606e1d8da0ec11f98a2690" datatype="html">\n        <source>Backstore</source>\n        <target>Almacén</target>\n      </trans-unit>\n      <trans-unit id="68e710782ccb5398b3acb8844caf0b199da2c3da" datatype="html">\n        <source>Confirm</source>\n        <target>Confirmar</target>\n      </trans-unit>\n      <trans-unit id="339878da255ab55447c43afef8d9b2f9753bf5f6" datatype="html">\n        <source>Advanced Settings</source>\n        <target>Ajustes avanzados</target>\n      </trans-unit>\n      <trans-unit id="1406c2fb12a20c1528b19bcc5e24a6a2386167f3" datatype="html">\n        <source>Target IQN</source>\n        <target>IQN de destino</target>\n      </trans-unit>\n      <trans-unit id="5fe42339be910372fa689f559155631862d218e8" datatype="html">\n        <source>IQN has wrong pattern.</source>\n        <target>El IQN tiene un patrón erróneo.</target>\n      </trans-unit>\n      <trans-unit id="050a7ff057d1e895357540406b6be5652b4d1c71" datatype="html">\n        <source>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</source>\n        <target>An IQN has the following notation\n                \'iqn.$year-$month.$reversedAddress:$definedName\'</target>\n      </trans-unit>\n      <trans-unit id="c8ada4b53396d8366db00a435acc61d53d857047" datatype="html">\n        <source>For example: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</source>\n        <target>Por ejemplo: iqn.2016-06.org.dashboard:storage:disk.sn-a8675309</target>\n      </trans-unit>\n      <trans-unit id="e60c11e1b1dfbbeda577364b8de39ded2d796c5e" datatype="html">\n        <source>More information</source>\n        <target>Más información</target>\n      </trans-unit>\n      <trans-unit id="9b1aa85dfc6849196e64060db02c5410de69b7a1" datatype="html">\n        <source>This target has modified advanced settings.</source>\n        <target>Este destino tiene ajustes avanzados modificados.</target>\n      </trans-unit>\n      <trans-unit id="6990ad8d6182662e864495ac31c3758cda1c7a28" datatype="html">\n        <source>Portals</source>\n        <target>Portales</target>\n      </trans-unit>\n      <trans-unit id="6a3ac2b4137d723fd9878cd357c2012ff6c07973" datatype="html">\n        <source>Add portal</source>\n        <target>Añadir portal</target>\n      </trans-unit>\n      <trans-unit id="c3638c01b6c34066438909713ec96087c813fc7e" datatype="html">\n        <source>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </source>\n        <target>At least \n          <x id="INTERPOLATION" equiv-text="{{ minimum_gateways }}"/> gateways are required.\n        </target>\n      </trans-unit>\n      <trans-unit id="9aff25be088f0efe3eaaf62edf2bff41cc41a617" datatype="html">\n        <source>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </source>\n        <target>Backstore: \n          <x id="INTERPOLATION" equiv-text="{{ imagesSettings[image].backstore | iscsiBackstore }}"/>. \n        </target>\n      </trans-unit>\n      <trans-unit id="e3484cae8b118c576ca2815bf9c9406c2eb2cae3" datatype="html">\n        <source>This image has modified settings.</source>\n        <target>Esta imagen tiene ajustes modificados.</target>\n      </trans-unit>\n      <trans-unit id="1dff11e0820b6722ab240169f1232d70a54beaaa" datatype="html">\n        <source>Duplicated LUN numbers.</source>\n        <target>Duplicated LUN numbers.</target>\n      </trans-unit>\n      <trans-unit id="bf2dccf92ccff6e3b091792bf4205595406e1bfb" datatype="html">\n        <source>Duplicated WWN.</source>\n        <target>Duplicated WWN.</target>\n      </trans-unit>\n      <trans-unit id="808038f912fdc7f0e03f82d4afd3bf9178527fc8" datatype="html">\n        <source>Add image</source>\n        <target>Añadir imagen</target>\n      </trans-unit>\n      <trans-unit id="66c5fb27f52e75b70ca4b670b9b15a2a51cf9543" datatype="html">\n        <source>ACL authentication</source>\n        <target>Autenticación de ACL</target>\n      </trans-unit>\n      <trans-unit id="419c8b402609dcf49ae4932a5a4647dc8d79bbaf" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Usernames must have a length of 8 to 64 characters and\n                can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</target>\n      </trans-unit>\n      <trans-unit id="938050960d6653fddfcfd42425e18fb35a308262" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="f494bd31f095f6dcc656ce87ec2dcf07a2e9b30c" datatype="html">\n        <source>Initiators</source>\n        <target>Iniciadores</target>\n      </trans-unit>\n      <trans-unit id="e98239d8a6be1100119ff4b5630c822b82786740" datatype="html">\n        <source>Initiator</source>\n        <target>Iniciador</target>\n      </trans-unit>\n      <trans-unit id="f2c5059d8cda15d8d03e2cce30f2d139623d9a91" datatype="html">\n        <source>Client IQN</source>\n        <target>IQN del cliente</target>\n      </trans-unit>\n      <trans-unit id="107d5aabce23d900f0a80e6ddc1c10e29aa0bed8" datatype="html">\n        <source>Initiator IQN needs to be unique.</source>\n        <target>El IQN del iniciador debe ser exclusivo.</target>\n      </trans-unit>\n      <trans-unit id="bbf0b34a3fcc80800fcb44b9e1e86931a530dfe3" datatype="html">\n        <source>Usernames must have a length of 8 to 64 characters and\n                        can only contain letters, \'.\', \'@\', \'-\', \'_\' or \':\'.</source>\n        <target>Los nombres de usuario deben tener entre 8 y 64 caracteres y\n                        solo pueden incluir letras y estos caracteres: ".", "@", "-", "_" o ":".</target>\n      </trans-unit>\n      <trans-unit id="fdfee5d7a27e1bdd97a176097277bee078de6aaf" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters\n                        and can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="8406eb7415ee40e54d9ecb209abb056f06e3d666" datatype="html">\n        <source>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</source>\n        <target>Passwords must have a length of 12 to 16 characters and\n                        can only contain letters, \'@\', \'-\', \'_\' or \'/\'.</target>\n      </trans-unit>\n      <trans-unit id="5d1878d5fc761cbe9614bfd87047a740c82a6951" datatype="html">\n        <source>Initiator belongs to a group. Images will be configure in the group.</source>\n        <target>El iniciador pertenece a un grupo. Las imágenes se configurarán en el grupo.</target>\n      </trans-unit>\n      <trans-unit id="c0de67b9d97fafbf200f9451e8388ee8128a56ac" datatype="html">\n        <source>No items added.</source>\n        <target>No se ha añadido ningún elemento.</target>\n      </trans-unit>\n      <trans-unit id="d565e47726158e428ecdc952fc9233b9b7d7f049" datatype="html">\n        <source>Add initiator</source>\n        <target>Añadir iniciador</target>\n      </trans-unit>\n      <trans-unit id="c22ba03540aa3217da059f45e7eab138b51a96e2" datatype="html">\n        <source>Groups</source>\n        <target>Grupos</target>\n      </trans-unit>\n      <trans-unit id="4c90059afafb7e160384d9f512797c95bb95c6dc" datatype="html">\n        <source>Group</source>\n        <target>Grupo</target>\n      </trans-unit>\n      <trans-unit id="3084948274cff4f56d0f431af47240e9cf02fcc7" datatype="html">\n        <source>Add group</source>\n        <target>Añadir grupo</target>\n      </trans-unit>\n      <trans-unit id="c3a7e364a88ea4673199dfa98bc73e6dbe09dfac" datatype="html">\n        <source>Namespaces</source>\n        <target>Namespaces</target>\n      </trans-unit>\n      <trans-unit id="aba82bfd8e177d35b76cad7cd43941f8e5e5acac" datatype="html">\n        <source>Trash</source>\n        <target>Papelera</target>\n      </trans-unit>\n      <trans-unit id="66db799d67958d4b0765181d072df62e2d1c16f5" datatype="html">\n        <source>Issues</source>\n        <target>Problemas</target>\n      </trans-unit>\n      <trans-unit id="ef06d69259e587e28d52372455f44c7153cda7e7" datatype="html">\n        <source>Syncing</source>\n        <target>Sincronizando</target>\n      </trans-unit>\n      <trans-unit id="0b0901877d837d3fda16ba161eb74368d1c75b7a" datatype="html">\n        <source>Ready</source>\n        <target>Listo</target>\n      </trans-unit>\n      <trans-unit id="4057c56d63a7e9b140b1d01871a9229a5f30eb27" datatype="html">\n        <source>Edit pool mirror mode</source>\n        <target>Editar modo de duplicación de repositorio</target>\n      </trans-unit>\n      <trans-unit id="e1f367f5feaab38f6637dd1f967c848b447dea2d" datatype="html">\n        <source>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>To edit the mirror mode for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>, select a new mode from the list and click \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Update\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="32ca348ef926b0a6a7a780b8b64c3a8239895cec" datatype="html">\n        <source>Peer clusters must be removed prior to disabling mirror.</source>\n        <target>Los clústeres de par deben eliminarse antes de inhabilitar la duplicación.</target>\n      </trans-unit>\n      <trans-unit id="fa61522d482349707fd7dd03b90dc5781611b17f" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/>\n  pool mirror peer\n        </target>\n      </trans-unit>\n      <trans-unit id="4ddcb416c1c0aa1f54acf5beef1de81813e76fa6" datatype="html">\n        <source>{VAR_SELECT, select, edit {Edit} other {Add} }</source>\n        <target>{VAR_SELECT, select, edit {Editar} other {Añadir} }</target>\n      </trans-unit>\n      <trans-unit id="59ca65ece457429d90104ede4674965f62edbabe" datatype="html">\n        <source>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </source>\n        <target>\n          <x id="ICU" equiv-text="{mode, select, edit {...} other {...}}"/> the pool\n          mirror peer attributes for pool \n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>\n          <x id="INTERPOLATION" equiv-text="{{ poolName }}"/>\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/> and click\n          <x id="START_TAG_KBD" ctype="x-kbd" equiv-text="<kbd>"/>Submit\n          <x id="CLOSE_TAG_KBD" ctype="x-kbd" equiv-text="</kbd>"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="d3cc964811f852a168f4a2d5daa59068abc5cf53" datatype="html">\n        <source>Cluster Name</source>\n        <target>Nombre del clúster</target>\n      </trans-unit>\n      <trans-unit id="b631721fc56cb7fb1cbd07b802a487c5753f6a2d" datatype="html">\n        <source>The cluster name is not valid.</source>\n        <target>El nombre del clúster no es válido.</target>\n      </trans-unit>\n      <trans-unit id="ca6deafa31bf421f85094807982aee4bcb20a3ae" datatype="html">\n        <source>CephX ID</source>\n        <target>ID de CephX</target>\n      </trans-unit>\n      <trans-unit id="7539188a568c3d553cbde1bacaf32310c4264e24" datatype="html">\n        <source>CephX ID...</source>\n        <target>ID de CephX...</target>\n      </trans-unit>\n      <trans-unit id="a1c45b594b0fba22fc64e80c793a7ffe005fdb0e" datatype="html">\n        <source>The CephX ID is not valid.</source>\n        <target>El ID de CephX no es válido.</target>\n      </trans-unit>\n      <trans-unit id="20861576fcfce773c918c782cd4f5adf32382921" datatype="html">\n        <source>Monitor Addresses</source>\n        <target>Direcciones de monitores</target>\n      </trans-unit>\n      <trans-unit id="fa28eeed2b4bd4ccbe6e9349a1c2b3cb1c5de70a" datatype="html">\n        <source>Comma-delimited addresses...</source>\n        <target>Direcciones delimitadas por comas...</target>\n      </trans-unit>\n      <trans-unit id="dc016c82fd85848d5c1b2fd0e8469ee2027d9c16" datatype="html">\n        <source>The monitory address is not valid.</source>\n        <target>La dirección del monitor no es válida.</target>\n      </trans-unit>\n      <trans-unit id="e0ac55b83dc6739e62bc655cfe375b67c93e7f4a" datatype="html">\n        <source>CephX Key</source>\n        <target>Clave de CephX</target>\n      </trans-unit>\n      <trans-unit id="f53434bcb95bd86f1df9c8e22966f757614fc4ad" datatype="html">\n        <source>Base64-encoded key...</source>\n        <target>Clave con cifrado base64...</target>\n      </trans-unit>\n      <trans-unit id="4cd83164cd4f66b4abc2863f9ce6f599d789e4ca" datatype="html">\n        <source>CephX key must be base64 encoded.</source>\n        <target>La clave de CephX debe tener cifrado base64</target>\n      </trans-unit>\n      <trans-unit id="ca53d681a9892d6fdbb57ee9676582186515e961" datatype="html">\n        <source>Performance counters not available</source>\n        <target>Los contadores de rendimiento no están disponibles</target>\n      </trans-unit>\n      <trans-unit id="9424badb7e0c6ac792d020d7830645b529a80aad" datatype="html">\n        <source>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </source>\n        <target>Please consult the \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>documentation\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/>\n  on how to configure and enable the Object Gateway management functionality.\n        </target>\n      </trans-unit>\n      <trans-unit id="479488ab6e91ecb375484edc78bee3d13467f33f" datatype="html">\n        <source>Daemons List</source>\n        <target>Lista de daemons</target>\n      </trans-unit>\n      <trans-unit id="eeba399c4dae8d4890c27b7a2cd2dc28fcf8b5f9" datatype="html">\n        <source>Performance Counters</source>\n        <target>Contadores de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="5f67f2247b9c6bbaf24a0f2d37f4ac0537c6fa53" datatype="html">\n        <source>Loading bucket data...</source>\n        <target>Cargando datos de la papelera...</target>\n      </trans-unit>\n      <trans-unit id="2798cc1e152b1ec07fd8daf94a2a073d1ba1ebcc" datatype="html">\n        <source>Id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="db4e1a734518691b128ef40b939cc673f01d03a6" datatype="html">\n        <source>The value is not valid.</source>\n        <target>El valor no es válido.</target>\n      </trans-unit>\n      <trans-unit id="eabb4db920d9f9b2480cf438468b86e1bea02a9b" datatype="html">\n        <source>The chosen name is already in use.</source>\n        <target>El nombre que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="0ee5132a8da30e0b7f9f5c70dbc91928d17dd909" datatype="html">\n        <source>Owner</source>\n        <target>Propietario</target>\n      </trans-unit>\n      <trans-unit id="8e4c918357c7445fbf19a203e5f0f0ece1960b3b" datatype="html">\n        <source>-- Select a user --</source>\n        <target>-- Seleccione un usuario --</target>\n      </trans-unit>\n      <trans-unit id="a4aab1f837bc8ec222e4f25922465d1c5929a1fc" datatype="html">\n        <source>Placement target</source>\n        <target>Placement target</target>\n      </trans-unit>\n      <trans-unit id="6bae0a7fc2c9c1fde7d937a8a1a3c7e6825cf7d1" datatype="html">\n        <source>-- Select a placement target --</source>\n        <target>-- Select a placement target --</target>\n      </trans-unit>\n      <trans-unit id="efeade5060b3add63863c24871f0830fb16b7e6d" datatype="html">\n        <source>Versioning</source>\n        <target>Versioning</target>\n      </trans-unit>\n      <trans-unit id="f50a33d3c339f8f4a465141f8caa5d2d8c005251" datatype="html">\n        <source>Enabled</source>\n        <target>Habilitado</target>\n      </trans-unit>\n      <trans-unit id="016d24e069e7d505a090fb8243e5cd43b35dc39b" datatype="html">\n        <source>Enables versioning for the objects in the bucket.</source>\n        <target>Enables versioning for the objects in the bucket.</target>\n      </trans-unit>\n      <trans-unit id="9e6775ffd06878aa145c07359f28557f01ede04f" datatype="html">\n        <source>Multi-Factor Authentication</source>\n        <target>Multi-Factor Authentication</target>\n      </trans-unit>\n      <trans-unit id="29e8a5d4fb767d4ad0c762c81c6264cec4c0ba97" datatype="html">\n        <source>Delete enabled</source>\n        <target>Delete enabled</target>\n      </trans-unit>\n      <trans-unit id="40fbc3ac8c1ea4ecfe62247e91f1f999ad5baf76" datatype="html">\n        <source>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</source>\n        <target>Enables MFA (multi-factor authentication) Delete, which requires additional authentication for changing the bucket versioning state.</target>\n      </trans-unit>\n      <trans-unit id="d24c93a8c13db46defa06ed7b5e026a3edb52b91" datatype="html">\n        <source>Token Serial Number</source>\n        <target>Token Serial Number</target>\n      </trans-unit>\n      <trans-unit id="e6d9536c2af2e5e9a228c3e3e1809dc1fefe0149" datatype="html">\n        <source>Token PIN</source>\n        <target>Token PIN</target>\n      </trans-unit>\n      <trans-unit id="7b84370895ab9eb44672f57146fa05c5947f1c0c" datatype="html">\n        <source>Locking</source>\n        <target>Locking</target>\n      </trans-unit>\n      <trans-unit id="f038d51ab1645f15b0cd58f195c72a7eeebd4729" datatype="html">\n        <source>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</source>\n        <target>Enables locking for the objects in the bucket. Locking can only be enabled while creating a bucket.</target>\n      </trans-unit>\n      <trans-unit id="9af1b4baa2dd8ed2bfc3cc756b12a2271c2dd793" datatype="html">\n        <source>Compliance</source>\n        <target>Compliance</target>\n      </trans-unit>\n      <trans-unit id="edd600fa489d1b4a4448dce694ed932e52ce8fda" datatype="html">\n        <source>Governance</source>\n        <target>Governance</target>\n      </trans-unit>\n      <trans-unit id="a5c3d9d2296f7886e8289b9f623323803deacfc6" datatype="html">\n        <source>Days</source>\n        <target>Days</target>\n      </trans-unit>\n      <trans-unit id="218c7d6d318c51e7105309aaeb0baec9d19e4efb" datatype="html">\n        <source>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of days that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="289b101ec12427b3ca819df9e43cc3b14fae2cc4" datatype="html">\n        <source>The entered value must be a positive integer.</source>\n        <target>The entered value must be a positive integer.</target>\n      </trans-unit>\n      <trans-unit id="def9fc628134d3a044b7c0ad2a83c846bdad56f1" datatype="html">\n        <source>Retention period requires either Days or Years.</source>\n        <target>Retention period requires either Days or Years.</target>\n      </trans-unit>\n      <trans-unit id="003c94fc143882ac8af6251a1595fe62978fe3e6" datatype="html">\n        <source>Years</source>\n        <target>Years</target>\n      </trans-unit>\n      <trans-unit id="14c6189ead0951f13049c7bf9af7642d0c41957a" datatype="html">\n        <source>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</source>\n        <target>The number of years that you want to specify for the default retention period that will be applied to new objects placed in this bucket.</target>\n      </trans-unit>\n      <trans-unit id="45cc8ca94b5a50842a9a8ef804a5ab089a38ae5c" datatype="html">\n        <source>ID</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="e5c51963a9c553b29427ef783bbb69fa6634fa8c" datatype="html">\n        <source>Index type</source>\n        <target>Tipo de índice</target>\n      </trans-unit>\n      <trans-unit id="8e6f950a32eaea32ec7e192f9ca3d3dfe469d4ba" datatype="html">\n        <source>Placement rule</source>\n        <target>Regla de colocación</target>\n      </trans-unit>\n      <trans-unit id="6972d213e31c4ea4f887e60db99d9881bc8fcd3e" datatype="html">\n        <source>Marker</source>\n        <target>Marcador</target>\n      </trans-unit>\n      <trans-unit id="47b02acd2d3254d1ace1926f840523f154ebef71" datatype="html">\n        <source>Maximum marker</source>\n        <target>Marcador máximo</target>\n      </trans-unit>\n      <trans-unit id="8fe73a4787b8068b2ba61f54ab7e0f9af2ea1fc9" datatype="html">\n        <source>Version</source>\n        <target>Versión</target>\n      </trans-unit>\n      <trans-unit id="092fa3a7df9168b14d3f83a77a4035e92b92ce15" datatype="html">\n        <source>Master version</source>\n        <target>Versión maestra</target>\n      </trans-unit>\n      <trans-unit id="97434cc5001d407f90c7447a12d9e8e6848a2aa3" datatype="html">\n        <source>Modification time</source>\n        <target>Hora de modificación</target>\n      </trans-unit>\n      <trans-unit id="90fe2e41e7fde38453ce4e619efeea9bc6adea9c" datatype="html">\n        <source>Zonegroup</source>\n        <target>Grupo de zona</target>\n      </trans-unit>\n      <trans-unit id="62a923f047ca49e7a4782629e91fea1ba32db68f" datatype="html">\n        <source>MFA Delete</source>\n        <target>MFA Delete</target>\n      </trans-unit>\n      <trans-unit id="649a410bd0ace333d067d8fa22f12bdbdb43533b" datatype="html">\n        <source>Bucket quota</source>\n        <target>Cuota de papelera</target>\n      </trans-unit>\n      <trans-unit id="cef1595d040e77cbb4466e60382028d4c2040cac" datatype="html">\n        <source>Maximum size</source>\n        <target>Tamaño máximo</target>\n      </trans-unit>\n      <trans-unit id="aa6fb95c355f172bda303de1ce2f38c251a149cf" datatype="html">\n        <source>Unlimited</source>\n        <target>Sin límite</target>\n      </trans-unit>\n      <trans-unit id="ee862a800364b4d11f9b8cb9955a28a60f840a45" datatype="html">\n        <source>Maximum objects</source>\n        <target>Número máximo de objetos</target>\n      </trans-unit>\n      <trans-unit id="08c74dc9762957593b91f6eb5d65efdfc975bf48" datatype="html">\n        <source>Username</source>\n        <target>Nombre de usuario</target>\n      </trans-unit>\n      <trans-unit id="49c614babd1950adb2be75df4e2c9747286d6adc" datatype="html">\n        <source>-- Select a username --</source>\n        <target>-- Seleccione un nombre de usuario --</target>\n      </trans-unit>\n      <trans-unit id="c217ee914725a37e9dd2336c721c8e63e9666bdc" datatype="html">\n        <source>Auto-generate key</source>\n        <target>Autogenerar clave</target>\n      </trans-unit>\n      <trans-unit id="2f1c1c0f2bce4c9f92d1a2061e8161cb0006c31a" datatype="html">\n        <source>Access key</source>\n        <target>Clave de acceso</target>\n      </trans-unit>\n      <trans-unit id="b864acb67296a9819c1db0069c4c47d8b5ce8f44" datatype="html">\n        <source>Secret key</source>\n        <target>Clave secreta</target>\n      </trans-unit>\n      <trans-unit id="b760f123248930122fc7e7b6b6bf94e376e959c8" datatype="html">\n        <source>Full name</source>\n        <target>Nombre completo</target>\n      </trans-unit>\n      <trans-unit id="69b6ac577a19acc39fc0c22342092f327fff2529" datatype="html">\n        <source>Email address</source>\n        <target>Dirección de correo electrónico</target>\n      </trans-unit>\n      <trans-unit id="92f3f203270a29b3001871153f02c063484a1574" datatype="html">\n        <source>Suspended</source>\n        <target>Suspendido</target>\n      </trans-unit>\n      <trans-unit id="8011e20c5bbe51602d459a860fbf29b599b55edd" datatype="html">\n        <source>System</source>\n        <target>Sistema</target>\n      </trans-unit>\n      <trans-unit id="db18a2772988415466a7f75dc42663ce78c9c1d3" datatype="html">\n        <source>Maximum buckets</source>\n        <target>Número máximo de papeleras</target>\n      </trans-unit>\n      <trans-unit id="2c4c62e8ba24601be5cfe7dc5d32c24bbbd4b53c" datatype="html">\n        <source>Subusers</source>\n        <target>Subusuarios</target>\n      </trans-unit>\n      <trans-unit id="17bb3082e6fe5003203ef992a3714172334631a1" datatype="html">\n        <source>Capabilities</source>\n        <target>Capacidades</target>\n      </trans-unit>\n      <trans-unit id="36ad38f9c1a1485e09b67778a28af84553290ffb" datatype="html">\n        <source>User quota</source>\n        <target>Cuota de usuario</target>\n      </trans-unit>\n      <trans-unit id="2aba1e87039819aca3b70faa9aa848c12bf139ca" datatype="html">\n        <source>Show</source>\n        <target>Mostrar</target>\n      </trans-unit>\n      <trans-unit id="0bcd5ef19af0f1b814141ca8c57df623d8270088" datatype="html">\n        <source>Keys</source>\n        <target>Claves</target>\n      </trans-unit>\n      <trans-unit id="f61c6867295f3b53d23557021f2f4e0aa1d0b8fc" datatype="html">\n        <source>Type</source>\n        <target>Tipo</target>\n      </trans-unit>\n      <trans-unit id="1221ca97d19eaa9a7bc0c5243d5fc5befe1d2314" datatype="html">\n        <source>-- Select a type --</source>\n        <target>-- Seleccione un tipo --</target>\n      </trans-unit>\n      <trans-unit id="d1b8990332af18f1c5159a6061ca889bcbb28432" datatype="html">\n        <source>Permission</source>\n        <target>Permiso</target>\n      </trans-unit>\n      <trans-unit id="a08c589f82f69d892307288da14190ae1dd583d5" datatype="html">\n        <source>-- Select a permission --</source>\n        <target>-- Seleccione un permiso --</target>\n      </trans-unit>\n      <trans-unit id="b2841767821d6b66238c34d07e413b0af67aee92" datatype="html">\n        <source>Subuser</source>\n        <target>Subusuario</target>\n      </trans-unit>\n      <trans-unit id="bd59fc25a7bd98cff3e75117c09697c8a007a514" datatype="html">\n        <source>The chosen subuser ID is already in use.</source>\n        <target>El ID de subusuario que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="3d386c357ebcbc04ed05c4babd5a03626f9b1674" datatype="html">\n        <source>read, write</source>\n        <target>lectura, escritura</target>\n      </trans-unit>\n      <trans-unit id="84e3e3f9a4f31a039b648c97debf95fcb20f4c4a" datatype="html">\n        <source>full</source>\n        <target>todos</target>\n      </trans-unit>\n      <trans-unit id="b6bf81d032a2316464f9df2f0d2f3d753f89f0d3" datatype="html">\n        <source>Swift key</source>\n        <target>Clave Swift</target>\n      </trans-unit>\n      <trans-unit id="1e0c12685d50d47448ceed9423977ef39775c037" datatype="html">\n        <source>Auto-generate secret</source>\n        <target>Autogenerar secreto</target>\n      </trans-unit>\n      <trans-unit id="3d1c7a6004bd5d86a7fa096ae24209e8aa7a53e3" datatype="html">\n        <source>Loading user data...</source>\n        <target>Cargando datos del usuario...</target>\n      </trans-unit>\n      <trans-unit id="faa5d834ab28571423d794d32b57998920efb65f" datatype="html">\n        <source>The user data could not be loaded.</source>\n        <target>No es posible cargar los datos del usuario.</target>\n      </trans-unit>\n      <trans-unit id="6aaf5d2a304167272ac73e3b1d1c162e16c77858" datatype="html">\n        <source>The chosen user ID is already in use.</source>\n        <target>El ID de usuario que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="df441e80db2157f9d272b75de724ba4a82b96b57" datatype="html">\n        <source>This is not a valid email address.</source>\n        <target>Esta dirección no es válida.</target>\n      </trans-unit>\n      <trans-unit id="ca271adf154956b8fcb28f4f50a37acb3057ff7c" datatype="html">\n        <source>The chosen email address is already in use.</source>\n        <target>La dirección de correo electrónico que ha elegido ya está en uso.</target>\n      </trans-unit>\n      <trans-unit id="030197cebe938edf35422e92fe14183d06eb670b" datatype="html">\n        <source>Max. buckets</source>\n        <target>Máx. papeleras</target>\n      </trans-unit>\n      <trans-unit id="f39256070bfc0714020dfee08895421fc1527014" datatype="html">\n        <source>Disabled</source>\n        <target>Inhabilitado</target>\n      </trans-unit>\n      <trans-unit id="a5c05002b0ac2040f1aede5e727e0ffd06eda819" datatype="html">\n        <source>Custom</source>\n        <target>Personalizar</target>\n      </trans-unit>\n      <trans-unit id="28872515cb81d197a3a1733fa546d3e0f0dd6c67" datatype="html">\n        <source>The entered value must be &gt;= 1.</source>\n        <target>The entered value must be &gt;= 1.</target>\n      </trans-unit>\n      <trans-unit id="583a219c524155c2314eb06ee29162bb315272a3" datatype="html">\n        <source>S3 key</source>\n        <target>Clave S3</target>\n      </trans-unit>\n      <trans-unit id="128d6efb51d9ddc7c0cc695a2deeca5b9523f6e4" datatype="html">\n        <source>There are no subusers.</source>\n        <target>No hay ningún subusuario.</target>\n      </trans-unit>\n      <trans-unit id="7fd6dfb8ecb982dbc3affb2c2d5414c4f5b6abd2" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ subuserLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="67c746c1ba9dab4351fedc4c7cba4e6d6b0dbc47" datatype="html">\n        <source>S3</source>\n        <target>S3</target>\n      </trans-unit>\n      <trans-unit id="d6819038d608623503918fb2553f53d68231ec3a" datatype="html">\n        <source>There are no keys.</source>\n        <target>No hay ninguna clave.</target>\n      </trans-unit>\n      <trans-unit id="fc1c1a7140ff6b815a95b65ee2780fdbe1b2b7a1" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.CREATE | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ s3keyLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="6ddb5e991a3ecd2659fb520bc5acc81b67e08ddd" datatype="html">\n        <source>Swift</source>\n        <target>Swift</target>\n      </trans-unit>\n      <trans-unit id="1d01eccdda47fc907c5be35bcb16d2dcd02b0270" datatype="html">\n        <source>There are no capabilities.</source>\n        <target>No hay ninguna capacidad</target>\n      </trans-unit>\n      <trans-unit id="043e2ec0036ceadd926fd5e3f93cd6f3565f3648" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{ actionLabels.ADD | titlecase }}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{ capabilityLabel | upperFirst }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f5a451c4ea65a4046f0b49d489a7013abf0b5861" datatype="html">\n        <source>All capabilities are already added.</source>\n        <target>All capabilities are already added.</target>\n      </trans-unit>\n      <trans-unit id="6146e13ceca5fa5cc17b771b282fe5955f3d19fa" datatype="html">\n        <source>Unlimited size</source>\n        <target>Tamaño ilimitado</target>\n      </trans-unit>\n      <trans-unit id="f6db8aa7c99fdce18edb33dde57729acede2b308" datatype="html">\n        <source>Max. size</source>\n        <target>Tamaño máx.</target>\n      </trans-unit>\n      <trans-unit id="fc630b2093e880fffa19df99d5cd8b87605037f8" datatype="html">\n        <source>Unlimited objects</source>\n        <target>Objetos ilimitados</target>\n      </trans-unit>\n      <trans-unit id="6cda5a993d06f0bb10048be9d3aba6555aa9f356" datatype="html">\n        <source>Max. objects</source>\n        <target>Objetos máx.</target>\n      </trans-unit>\n      <trans-unit id="623ac50f37a26caec6fd7cd519b653e3315cba25" datatype="html">\n        <source>The entered value must be &gt;= 0.</source>\n        <target>El valor introducido debe ser mayor o igual que 0.</target>\n      </trans-unit>\n      <trans-unit id="1ea5c4d8942c00752dcc72e72949c5d9832f6399" datatype="html">\n        <source>Description...</source>\n        <target>Descripción...</target>\n      </trans-unit>\n      <trans-unit id="70f45880fce6ac5d8e468e25e82aefbba8098cfe" datatype="html">\n        <source>Permissions</source>\n        <target>Permisos</target>\n      </trans-unit>\n      <trans-unit id="9610487cbeb5796d34d8601b5ac0c0a65f9e1d19" datatype="html">\n        <source>Roles</source>\n        <target>Funciones</target>\n      </trans-unit>\n      <trans-unit id="7f3bdcce4b2e8c37cd7f0f6c92ef8cff34b039b8" datatype="html">\n        <source>Confirm password</source>\n        <target>Confirmar contraseña</target>\n      </trans-unit>\n      <trans-unit id="cbb979e63ba50e0ca3adfa09cbdcaefd0853fca1" datatype="html">\n        <source>Password confirmation doesn\'t match the password.</source>\n        <target>Las contraseñas no coinciden.</target>\n      </trans-unit>\n      <trans-unit id="96621f9ed2e4ae5204564e583d2c816bedead571" datatype="html">\n        <source>Password expiration date</source>\n        <target>Password expiration date</target>\n      </trans-unit>\n      <trans-unit id="48932db3801fe9d5d72a60a3e656bffd17c1c5d9" datatype="html">\n        <source>Password expiration date...</source>\n        <target>Password expiration date...</target>\n      </trans-unit>\n      <trans-unit id="244aae9346da82b0922506c2d2581373a15641cc" datatype="html">\n        <source>Email</source>\n        <target>Correo electrónico</target>\n      </trans-unit>\n      <trans-unit id="d0ec081dd61eb4f43aea269077bbe38eae87b7f9" datatype="html">\n        <source>Invalid email.</source>\n        <target>Correo electrónico no válido.</target>\n      </trans-unit>\n      <trans-unit id="8913c216dd506e20e412e144381d8d2a65a84359" datatype="html">\n        <source>User must change password at next logon</source>\n        <target>User must change password at next logon</target>\n      </trans-unit>\n      <trans-unit id="0051a3479d3ba79135c16dc8cc017950a2cce821" datatype="html">\n        <source>You are about to remove "user read / update" permissions from your own user.</source>\n        <target>Se dispone a eliminar los permisos "lectura/actualización de usuario" de su propio usuario.</target>\n      </trans-unit>\n      <trans-unit id="af4bf9fcb256853f14cf947eb1deb8d7f176d3f9" datatype="html">\n        <source>If you continue, you will no longer be able to add or remove roles from any user.</source>\n        <target>Si continúa, no podrá añadir ni eliminar funciones en ningún usuario.</target>\n      </trans-unit>\n      <trans-unit id="7d1dcf2a9146caac0581329acf94806ec69a89a5" datatype="html">\n        <source>Are you sure you want to continue?</source>\n        <target>¿Seguro que desea continuar?</target>\n      </trans-unit>\n      <trans-unit id="85b79c9064aed1ead31ace985f31aa1363f6bdaf" datatype="html">\n        <source>Help</source>\n        <target>Ayuda</target>\n      </trans-unit>\n      <trans-unit id="fcfd4675b4c90f08d18d3abede9a9a4dff4cfdc7" datatype="html">\n        <source>Documentation</source>\n        <target>Documentación</target>\n      </trans-unit>\n      <trans-unit id="e351b40b3869a5c7d19c3d4918cb1ac7aaab95c4" datatype="html">\n        <source>API</source>\n        <target>API</target>\n      </trans-unit>\n      <trans-unit id="004b222ff9ef9dd4771b777950ca1d0e4cd4348a" datatype="html">\n        <source>About</source>\n        <target>Acerca de</target>\n      </trans-unit>\n      <trans-unit id="1481ecd21e760ac919a24e26cf790acd82e40199" datatype="html">\n        <source>Dashboard Settings</source>\n        <target>Ajustes de la consola</target>\n      </trans-unit>\n      <trans-unit id="a79aab4ef674bf3f6532292107c0054302236e0f" datatype="html">\n        <source>User management</source>\n        <target>Gestión del usuario</target>\n      </trans-unit>\n      <trans-unit id="049dfd9fe6c78914ad58cf89ac6a631fca28ec74" datatype="html">\n        <source>Logged in user</source>\n        <target>Usuario que ha entrado</target>\n      </trans-unit>\n      <trans-unit id="cd38a58e73f306d838e621959d47d5e7a2f06d1f" datatype="html">\n        <source>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </source>\n        <target>Signed in as\n          <x id="START_TAG_STRONG" ctype="x-strong" equiv-text="<strong>"/>\n          <x id="INTERPOLATION" equiv-text="{{ username }}"/>\n          <x id="CLOSE_TAG_STRONG" ctype="x-strong" equiv-text="</strong>"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="739516c2ca75843d5aec9cf0e6b3e4335c4227b9" datatype="html">\n        <source>Change password</source>\n        <target>Change password</target>\n      </trans-unit>\n      <trans-unit id="5d22c795daf43877a5f708dca2bccd549eb0471d" datatype="html">\n        <source>Sign out</source>\n        <target>Salir</target>\n      </trans-unit>\n      <trans-unit id="91853167141c37b58868f3b0421383dd72fa8a01" datatype="html">\n        <source>Attributes (OSD map)</source>\n        <target>Atributos (mapa de OSD)</target>\n      </trans-unit>\n      <trans-unit id="97842f379e1d4157ac3ab0661b90c352e7cb72d5" datatype="html">\n        <source>Metadata not available</source>\n        <target>Los metadatos no están disponibles</target>\n      </trans-unit>\n      <trans-unit id="f721a500a68c357e8f2a01e60510f6a01e4ba529" datatype="html">\n        <source>Metadata</source>\n        <target>Metadatos</target>\n      </trans-unit>\n      <trans-unit id="deba10b7279a589d01e919ea11f43c79ca1773e3" datatype="html">\n        <source>Device health</source>\n        <target>Device health</target>\n      </trans-unit>\n      <trans-unit id="d24e28e19c5703d7c6be44f4eb595a6a43b618ed" datatype="html">\n        <source>Performance counter</source>\n        <target>Contandor de rendimiento</target>\n      </trans-unit>\n      <trans-unit id="d1f7c81ed9c5034af4abcdf119b1c1e86cd019dd" datatype="html">\n        <source>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </source>\n        <target>Histogram not available: \n          <x id="INTERPOLATION" equiv-text="{{ osd.histogram_failed }}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="868abfff914873d1c65df798d8432ed04b8ae2a9" datatype="html">\n        <source>Writes</source>\n        <target>Escrituras</target>\n      </trans-unit>\n      <trans-unit id="996ebb9a653b5067f97bf3891ea9d2108e969492" datatype="html">\n        <source>Reads</source>\n        <target>Lecturas</target>\n      </trans-unit>\n      <trans-unit id="65ac79790aa477a97b1cc579e18a115a8df8918f" datatype="html">\n        <source>Histogram</source>\n        <target>Histograma</target>\n      </trans-unit>\n      <trans-unit id="3d87fc20ea8e5f0f0500ba5d5061b345be78ec5e" datatype="html">\n        <source>No hostname found.</source>\n        <target>No hostname found.</target>\n      </trans-unit>\n      <trans-unit id="26fb5f81b3581f06b9210defb0e71dc69a67e819" datatype="html">\n        <source>Current values</source>\n        <target>Valores actuales</target>\n      </trans-unit>\n      <trans-unit id="9abcd7c82643d60c22733470463f74e4a54bc069" datatype="html">\n        <source>Min</source>\n        <target>Mín.</target>\n      </trans-unit>\n      <trans-unit id="c3ced4d162a0a55ee233a187ce7208ba5e922418" datatype="html">\n        <source>Max</source>\n        <target>Máx.</target>\n      </trans-unit>\n      <trans-unit id="6834fa6b43d1ecbdf147c48dd9c4d72f1484571d" datatype="html">\n        <source>Source</source>\n        <target>Origen</target>\n      </trans-unit>\n      <trans-unit id="a446fb0eb11fbffcac805ece5a2d306d24e733d8" datatype="html">\n        <source>Level</source>\n        <target>Nivel</target>\n      </trans-unit>\n      <trans-unit id="39f2fb094e9b2eda13163fa3f3a31594cf9c1307" datatype="html">\n        <source>Can be updated at runtime (editable)</source>\n        <target>Se puede actualizar en el tiempo de ejecución (editable)</target>\n      </trans-unit>\n      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">\n        <source>Tags</source>\n        <target>Etiquetas</target>\n      </trans-unit>\n      <trans-unit id="ab0089ef47af61ca1d137bc908b96c290dfd9287" datatype="html">\n        <source>Enum values</source>\n        <target>Valores Enum</target>\n      </trans-unit>\n      <trans-unit id="819476f1264f1659f38e86f6abb542141b184832" datatype="html">\n        <source>See also</source>\n        <target>Véase también</target>\n      </trans-unit>\n      <trans-unit id="73caac4265ea7314ff061e5a1d78a6361a6dd3b8" datatype="html">\n        <source>Cluster Status</source>\n        <target>Estado del clúster</target>\n      </trans-unit>\n      <trans-unit id="1d4bc612bbf19aa9553853266b9e92c9d75f4464" datatype="html">\n        <source>Manager Daemons</source>\n        <target>Daemons de gestor</target>\n      </trans-unit>\n      <trans-unit id="946ac5dea9921dc09d7b0a63b89535371f283b19" datatype="html">\n        <source>Object Gateways</source>\n        <target>Instancias de Object Gateway</target>\n      </trans-unit>\n      <trans-unit id="ff03fa5bcf37c4da46ad736c1f7d03f959e8ba9a" datatype="html">\n        <source>Metadata Servers</source>\n        <target>Servidores de metadatos</target>\n      </trans-unit>\n      <trans-unit id="d817609ba4993eba859409ab71e566168f4d5f5a" datatype="html">\n        <source>iSCSI Gateways</source>\n        <target>Puertas de enlace iSCSI</target>\n      </trans-unit>\n      <trans-unit id="42c13e50391250ea9379bdf55d5d6c0228c0c8bc" datatype="html">\n        <source>Client IOPS</source>\n        <target>IOPS de cliente</target>\n      </trans-unit>\n      <trans-unit id="52213660b2454d139ada3079a42ec6caf3c3c01e" datatype="html">\n        <source>Client Throughput</source>\n        <target>Rendimiento del cliente</target>\n      </trans-unit>\n      <trans-unit id="32efd1c3f70e3c5244239de97a2cc95d98534a14" datatype="html">\n        <source>Client Read/Write</source>\n        <target>Lectura/escritura de cliente</target>\n      </trans-unit>\n      <trans-unit id="275485415092cbae3a9f3cbb786ebe283cacfdd5" datatype="html">\n        <source>Recovery Throughput</source>\n        <target>Rendimiento de recuperación</target>\n      </trans-unit>\n      <trans-unit id="6d9a9f55046891733ef71170e7652063765eb542" datatype="html">\n        <source>Scrub</source>\n        <target>Depuración</target>\n      </trans-unit>\n      <trans-unit id="3cc9c2ae277393b3946b38c088dabff671b1ee1b" datatype="html">\n        <source>Performance</source>\n        <target>Rendimiento</target>\n      </trans-unit>\n      <trans-unit id="88f383269db2d32cccee9e936fe549dccb9fdbf4" datatype="html">\n        <source>Raw Capacity</source>\n        <target>Capacidad en bruto</target>\n      </trans-unit>\n      <trans-unit id="c5f8a813f91a11af99132e4beafc136cfc13d73b" datatype="html">\n        <source>PGs per OSD</source>\n        <target>Grupos de colocación por OSD</target>\n      </trans-unit>\n      <trans-unit id="498a109c6e9e94f1966de01aa0326f7f0ac6fb52" datatype="html">\n        <source>PG Status</source>\n        <target>Estado del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="ce9dfdc6dccb28dc75a78c704e09dc18fb02dcfa" datatype="html">\n        <source>Capacity</source>\n        <target>Capacidad</target>\n      </trans-unit>\n      <trans-unit id="44ecac93d67c6a671198091c2270354f80322327" datatype="html">\n        <source>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </source>\n        <target>\n          <x id="START_ITALIC_TEXT" ctype="x-i" equiv-text="<i>"/>\n          <x id="CLOSE_ITALIC_TEXT" ctype="x-i" equiv-text="</i>"/> See \n          <x id="START_LINK" ctype="x-a" equiv-text="<a>"/>Logs\n          <x id="CLOSE_LINK" ctype="x-a" equiv-text="</a>"/> for more details.\n        </target>\n      </trans-unit>\n      <trans-unit id="0c1e17956453ad772dbe82d6946f62748c692f3e" datatype="html">\n        <source>Ranks</source>\n        <target>Clasificaciones</target>\n      </trans-unit>\n      <trans-unit id="2b24e0b0b1629d2e8a51b9da7c75d6e6379f4bc4" datatype="html">\n        <source>Standbys</source>\n        <target>Standbys</target>\n      </trans-unit>\n      <trans-unit id="50df62325726db950523a5be1c78b8905fcc25d4" datatype="html">\n        <source>MDS performance counters</source>\n        <target>MDS performance counters</target>\n      </trans-unit>\n      <trans-unit id="6e213942c6354b9cbe7a650f0f1499bfc1000fb6" datatype="html">\n        <source>Directories</source>\n        <target>Directories</target>\n      </trans-unit>\n      <trans-unit id="47116253e36f4e38a97ba41b2d3122c6c15ab904" datatype="html">\n        <source>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </source>\n        <target>Clients (\n          <x id="INTERPOLATION" equiv-text="{{ clients.length }}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="bd5a3b1c5a3c185c7bbb0e09a061d4cdc88ce5ad" datatype="html">\n        <source>Current</source>\n        <target>Actual</target>\n      </trans-unit>\n      <trans-unit id="e5e7d62e942083a59b0b31f54e17cd7958186052" datatype="html">\n        <source>Updated discovery authentication</source>\n        <target>Autenticación de descubrimiento actualizada</target>\n      </trans-unit>\n      <trans-unit id="dd4ab758afd5fd5a6c6a25b2b30ff99d0c00e9ad" datatype="html">\n        <source>There are no portals available.</source>\n        <target>No hay ningún portal disponible.</target>\n      </trans-unit>\n      <trans-unit id="83021e45778a4a230a14ca0c6d6ccdf05500ad93" datatype="html">\n        <source>There are no images available.</source>\n        <target>No hay ninguna imagen disponible.</target>\n      </trans-unit>\n      <trans-unit id="86684eb21f8a768e1dbc659e3d5da6861db544a0" datatype="html">\n        <source>There are no images available. Please make sure you add an image to the target.</source>\n        <target>No hay ninguna imagen disponible. Asegúrese de añadir una imagen al destino.</target>\n      </trans-unit>\n      <trans-unit id="fffda6e440078f57eba93944ce051c593cc6ed7f" datatype="html">\n        <source>There are no initiators available. Please make sure you add an initiator to the target.</source>\n        <target>No hay ningún iniciador disponible. Asegúrese de añadir un iniciador al destino.</target>\n      </trans-unit>\n      <trans-unit id="cea3c6fe490385eef1584cbc4983fda7ece24bb6" datatype="html">\n        <source>target</source>\n        <target>target</target>\n      </trans-unit>\n      <trans-unit id="38baeb215c17af9d9e295e371a57f4a48ab4c191" datatype="html">\n        <source>Target</source>\n        <target>Destino</target>\n      </trans-unit>\n      <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">\n        <source># Sessions</source>\n        <target># Sessions</target>\n      </trans-unit>\n      <trans-unit id="2ea10b3668e04e057ba96ddcaf4c9b77089008ae" datatype="html">\n        <source>Unavailable gateway(s)</source>\n        <target>Unavailable gateway(s)</target>\n      </trans-unit>\n      <trans-unit id="c49e0dd71d551bd4928d967d78f0721dbf9f95e3" datatype="html">\n        <source>Target has active sessions</source>\n        <target>Target has active sessions</target>\n      </trans-unit>\n      <trans-unit id="a87acd72dfb68b45175270695209550a85adf50c" datatype="html">\n        <source>iSCSI target</source>\n        <target>iSCSI target</target>\n      </trans-unit>\n      <trans-unit id="873b72903b1858a9cd6c8967521030b4d7d1435b" datatype="html">\n        <source>State</source>\n        <target>Estado</target>\n      </trans-unit>\n      <trans-unit id="02b75464c0dc0cf49ea0208211b6fbcad3bf728a" datatype="html">\n        <source># Targets</source>\n        <target># Targets</target>\n      </trans-unit>\n      <trans-unit id="13415637c325ceefee29111b31cb48701490adf7" datatype="html">\n        <source>Read Bytes</source>\n        <target>Bytes de lectura</target>\n      </trans-unit>\n      <trans-unit id="e2ed82b7bbf4a006e60e6208c597b05d5b5556e9" datatype="html">\n        <source>Write Bytes</source>\n        <target>Bytes de escritura</target>\n      </trans-unit>\n      <trans-unit id="6a32a5f58845ca840185ea9564682094e77a1d80" datatype="html">\n        <source>Read Ops</source>\n        <target>Operaciones de lectura</target>\n      </trans-unit>\n      <trans-unit id="7c36cb8032af123d3550ffab2e1fa1e957c87fae" datatype="html">\n        <source>Write Ops</source>\n        <target>Operaciones de escritura</target>\n      </trans-unit>\n      <trans-unit id="458c33846a8c7e2feb9404bcf06723784e756cdc" datatype="html">\n        <source>A/O Since</source>\n        <target>A/O desde</target>\n      </trans-unit>\n      <trans-unit id="ff78f059449d44322f627d0f66df07abe476962b" datatype="html">\n        <source>Instance</source>\n        <target>Instancia</target>\n      </trans-unit>\n      <trans-unit id="36fad7995cadfb3a6f0d43ef2db280146b3ca022" datatype="html">\n        <source>Issue</source>\n        <target>Problema</target>\n      </trans-unit>\n      <trans-unit id="15793f4cbc261bedbc60f7105533dde536a3f42b" datatype="html">\n        <source>Progress</source>\n        <target>Progreso</target>\n      </trans-unit>\n      <trans-unit id="25b725dba712a7a020fd34a72297befae975a492" datatype="html">\n        <source>Edit Site Name</source>\n        <target>Edit Site Name</target>\n      </trans-unit>\n      <trans-unit id="8c375764db42f5d736fb56d01b8052c006ccc8e2" datatype="html">\n        <source>Edit Mode</source>\n        <target>Editar modo</target>\n      </trans-unit>\n      <trans-unit id="45932f2a0ea524b3425f4320ee46a6d1c68977bc" datatype="html">\n        <source>Add Peer</source>\n        <target>Añadir par</target>\n      </trans-unit>\n      <trans-unit id="d3dc34662e3cda0dad646221651cebd26f731485" datatype="html">\n        <source>Edit Peer</source>\n        <target>Editar par</target>\n      </trans-unit>\n      <trans-unit id="e8a0ec0b6ee72db0f27c186e09640d1ed41964bd" datatype="html">\n        <source>Delete Peer</source>\n        <target>Suprimir par</target>\n      </trans-unit>\n      <trans-unit id="314de06d6f64d39149e78e6d796585c0246fec0b" datatype="html">\n        <source>Leader</source>\n        <target>Líder</target>\n      </trans-unit>\n      <trans-unit id="7acaab450312114059ced9e3737798ee9aa738b1" datatype="html">\n        <source># Local</source>\n        <target>N.º locales</target>\n      </trans-unit>\n      <trans-unit id="7a3ffd88868135c44be3994263bb8e49d8358884" datatype="html">\n        <source># Remote</source>\n        <target>N.º remotos</target>\n      </trans-unit>\n      <trans-unit id="85ca0fd6a6ddd211023c70a25753122c5b978787" datatype="html">\n        <source>mirror peer</source>\n        <target>duplicar par</target>\n      </trans-unit>\n      <trans-unit id="a6493c6ca346cd052da40423eda9c132de2b2002" datatype="html">\n        <source>Key</source>\n        <target>Clave</target>\n      </trans-unit>\n      <trans-unit id="e9cac80fb5d9de66f0006d0bec530fd1fc69a674" datatype="html">\n        <source>RBD</source>\n        <target>RBD</target>\n      </trans-unit>\n      <trans-unit id="4130b1a836f2000cfe9a11fb62493dc42d444de7" datatype="html">\n        <source>Deep flatten</source>\n        <target>Aplanamiento profundo</target>\n      </trans-unit>\n      <trans-unit id="7b17694d7cb8ecb7c8440bc999dac21b44455b33" datatype="html">\n        <source>Layering</source>\n        <target>En capas</target>\n      </trans-unit>\n      <trans-unit id="6a072ce577c2079d0e0c31071a16824f6d22b84d" datatype="html">\n        <source>Exclusive lock</source>\n        <target>Bloqueo exclusivo</target>\n      </trans-unit>\n      <trans-unit id="7354f01320bf936a7f85577c9f71402635c3a362" datatype="html">\n        <source>Object map (requires exclusive-lock)</source>\n        <target>Mapa de objetos (requiere bloqueo exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="fb7e625c1152f1c102cd16460955d124edff1770" datatype="html">\n        <source>Journaling (requires exclusive-lock)</source>\n        <target>En diario (requiere bloqueo exclusivo)</target>\n      </trans-unit>\n      <trans-unit id="df4044632bfc211dd96544fc8f007dabbeeb506c" datatype="html">\n        <source>Fast diff (interlocked with object-map)</source>\n        <target>Fast diff (interlocked with object-map)</target>\n      </trans-unit>\n      <trans-unit id="130fd872c78271a8f86b1ab16a76e823969c47d9" datatype="html">\n        <source>Namespace</source>\n        <target>Namespace</target>\n      </trans-unit>\n      <trans-unit id="14abc99daed542774633046c53b6ce8251331141" datatype="html">\n        <source>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</source>\n        <target>This RBD has cloned snapshots. Please delete related RBDs before deleting this RBD.</target>\n      </trans-unit>\n      <trans-unit id="51699f716cf34e6622ff7bfd84641480c045271a" datatype="html">\n        <source>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Created namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bf44b7d6379ce0198ed3d95a27642a224181bf1d" datatype="html">\n        <source>Total images</source>\n        <target>Total images</target>\n      </trans-unit>\n      <trans-unit id="371ce3ffe62548d15e391a248bc554d903bb03fc" datatype="html">\n        <source>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </source>\n        <target>Deleted namespace \'\n          <x id="INTERPOLATION" equiv-text="{{pool}}"/>/\n          <x id="INTERPOLATION_1" equiv-text="{{namespace}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="9d704fd00ca929f90c3119cefc581821ae58a73e" datatype="html">\n        <source>Namespace contains images</source>\n        <target>Namespace contains images</target>\n      </trans-unit>\n      <trans-unit id="c2017dc94b4f57a347ccb126e546e88942f4d7a6" datatype="html">\n        <source>RBD Snapshot</source>\n        <target>RBD Snapshot</target>\n      </trans-unit>\n      <trans-unit id="631fc50ec7c9bd81dc797a3c7e09eda1178ad999" datatype="html">\n        <source>Parent image must support Layering</source>\n        <target>Parent image must support Layering</target>\n      </trans-unit>\n      <trans-unit id="cb60c1cd3655234756b5b92d4d597d92d520ee30" datatype="html">\n        <source>PROTECTED</source>\n        <target>PROTECTED</target>\n      </trans-unit>\n      <trans-unit id="deffb86b8fb0541254ad5a43862d82bff6b6a6c4" datatype="html">\n        <source>UNPROTECTED</source>\n        <target>SIN PROTECCIÓN</target>\n      </trans-unit>\n      <trans-unit id="7eb984588f4835f6d0187b33769b4b0f62821640" datatype="html">\n        <source>RBD snapshot rollback</source>\n        <target>Reversión de instantánea RBD</target>\n      </trans-unit>\n      <trans-unit id="4be22bf20ef82614ed53bcd3b912a85590aa71c9" datatype="html">\n        <source>Rollback</source>\n        <target>Revertir</target>\n      </trans-unit>\n      <trans-unit id="2a04c483708d261751d62082d6f03a50d4577b1e" datatype="html">\n        <source>RBD snapshot</source>\n        <target>Instantánea RBD</target>\n      </trans-unit>\n      <trans-unit id="fa96769d1ea86741297cb9b9769b0dcfde58c8b4" datatype="html">\n        <source>Deleted At</source>\n        <target>Suprimido a las</target>\n      </trans-unit>\n      <trans-unit id="e928864038ca70ee7d67bbf1fd71a01c3938a127" datatype="html">\n        <source>id</source>\n        <target>ID</target>\n      </trans-unit>\n      <trans-unit id="240c9c1e96dc38814922a83ad041dc815b084f32" datatype="html">\n        <source>type</source>\n        <target>tipo</target>\n      </trans-unit>\n      <trans-unit id="c9d7ec7ee5b4e282f2228fa996651ec4ef5195a9" datatype="html">\n        <source>state</source>\n        <target>estado</target>\n      </trans-unit>\n      <trans-unit id="5780e5c3b4fc2ae07836bb5221cec4f8d597630d" datatype="html">\n        <source>version</source>\n        <target>versión</target>\n      </trans-unit>\n      <trans-unit id="fe22ca53e651df951dac25b67c17894b0980f767" datatype="html">\n        <source>Host</source>\n        <target>Host</target>\n      </trans-unit>\n      <trans-unit id="fb69299354312c8954ecf324997ccafcd9f6b14b" datatype="html">\n        <source>root</source>\n        <target>raíz</target>\n      </trans-unit>\n      <trans-unit id="d34feb369d308075b423d5c5fc431f9766bf7a11" datatype="html">\n        <source>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </source>\n        <target>Evicted client "\n          <x id="INTERPOLATION" equiv-text="{{clientId}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7db875ff4cc626d394f37fba95c075b2e4bfeb00" datatype="html">\n        <source>Standby daemons</source>\n        <target>Daemons de reserva</target>\n      </trans-unit>\n      <trans-unit id="3c3a423d91e36ac6624e909fcd2669a25685f847" datatype="html">\n        <source>Rank</source>\n        <target>Clasificación</target>\n      </trans-unit>\n      <trans-unit id="9596ecae8956e96921acef47aec787f6bdc37454" datatype="html">\n        <source>Daemon</source>\n        <target>Daemon</target>\n      </trans-unit>\n      <trans-unit id="f2005fa461c06dc2e04d8918bbabedf23604b5b7" datatype="html">\n        <source>Activity</source>\n        <target>Actividad</target>\n      </trans-unit>\n      <trans-unit id="e3a986984ae0c3b43af648c3fa638649d1c00348" datatype="html">\n        <source>Dentries</source>\n        <target>Dentries</target>\n      </trans-unit>\n      <trans-unit id="7c692ab865066967d73c6d64ec0691cc6ce91b93" datatype="html">\n        <source>Inodes</source>\n        <target>Inodos</target>\n      </trans-unit>\n      <trans-unit id="45f210b96a2a6e91f52f153a4f8dc30662629f8e" datatype="html">\n        <source>Usage</source>\n        <target>Uso</target>\n      </trans-unit>\n      <trans-unit id="950b5f04a2efd3f11c0f76418d5a4212381e792e" datatype="html">\n        <source>Origin</source>\n        <target>Origin</target>\n      </trans-unit>\n      <trans-unit id="2ea2ec95d93fd55d0db6e9d2b95b25e153d4cec2" datatype="html">\n        <source>Max size</source>\n        <target>Max size</target>\n      </trans-unit>\n      <trans-unit id="665dced3a61bca44924a0bde4be47390225a4898" datatype="html">\n        <source>Max files</source>\n        <target>Max files</target>\n      </trans-unit>\n      <trans-unit id="0ccf776baac60794b142526986f3af85848c7059" datatype="html">\n        <source>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </source>\n        <target>The inherited \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/> is the maximum value to be used.\n        </target>\n      </trans-unit>\n      <trans-unit id="b0e2ef28384f2de6674cac300c779f900929a89b" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/> CephFS \n          <x id="INTERPOLATION_1" equiv-text="{{quotaName}}"/> quota for \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="542ef638499635dec7641bdc2e499258094187cc" datatype="html">\n        <source>size</source>\n        <target>size</target>\n      </trans-unit>\n      <trans-unit id="ce90ff00c341d8eef96b0e7956bb85b8faba3839" datatype="html">\n        <source>files</source>\n        <target>files</target>\n      </trans-unit>\n      <trans-unit id="fbe8b9340c08c24aef62ffe81c83e2b46a4f1495" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{quotaName}}"/> quota \n          <x id="INTERPOLATION_1" equiv-text="{{value}}"/> from \'\n          <x id="INTERPOLATION_2" equiv-text="{{path}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="37c2c0a4a356465eef2edfb09ffffc6db5259975" datatype="html">\n        <source>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </source>\n        <target>Value has to be at least \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or more\n        </target>\n      </trans-unit>\n      <trans-unit id="73f8e64703a707e2cf98b9a10653cd3bbdd8cab1" datatype="html">\n        <source>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </source>\n        <target>Value has to be at most \n          <x id="INTERPOLATION" equiv-text="{{value}}"/> or less\n        </target>\n      </trans-unit>\n      <trans-unit id="9da0107a35751e722c8b4bca7636fc7645dbdbdc" datatype="html">\n        <source>Updated</source>\n        <target>Actualizado</target>\n      </trans-unit>\n      <trans-unit id="b6a4cf4f302c7fcbec199ce0df42b8282d682b04" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{action}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{quotaValue}}"/>\n          <x id="INTERPOLATION_2" equiv-text="{{conclusion}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a40024afb071f68fec949094a71f832d5611bca5" datatype="html">\n        <source>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>in order to inherit \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c108ff588291e9c040adea2adf35e7236cf29925" datatype="html">\n        <source>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </source>\n        <target>which isn\'t used because of the inheritance of \n          <x id="INTERPOLATION" equiv-text="{{quotaValue}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d3785a64d1c72b03b2212855ce695b45ed0342d2" datatype="html">\n        <source>in order to have no quota on the directory</source>\n        <target>in order to have no quota on the directory</target>\n      </trans-unit>\n      <trans-unit id="c4d3a3446a7f36825291c5e76c4a6b7919f9bd2f" datatype="html">\n        <source>Create Snapshot</source>\n        <target>Create Snapshot</target>\n      </trans-unit>\n      <trans-unit id="e9af734e231b837d64df21008e2eb1fdff566a61" datatype="html">\n        <source>Please enter the name of the snapshot.</source>\n        <target>Please enter the name of the snapshot.</target>\n      </trans-unit>\n      <trans-unit id="8c4d3039e6a953b0d6f1b1313ffa60c5d2b35dc7" datatype="html">\n        <source>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Created snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="126ad894f74ee9a999825f3f4ac5a31fdfc093bf" datatype="html">\n        <source>CephFs Snapshot</source>\n        <target>CephFs Snapshot</target>\n      </trans-unit>\n      <trans-unit id="1e4d1c0865adc485260740c42ac5af68ce8feb13" datatype="html">\n        <source>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </source>\n        <target>Deleted snapshot "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>" for "\n          <x id="INTERPOLATION_1" equiv-text="{{path}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="22e4e574b7f8abf58254f328792445b42e2a924a" datatype="html">\n        <source>The value can be updated at runtime.</source>\n        <target>El valor se puede actualizar en el tiempo de ejecución.</target>\n      </trans-unit>\n      <trans-unit id="d7770de7b2343c9deeaa7ebf37ba3e35ca5c5988" datatype="html">\n        <source>Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via \'ceph config\n      set ...\'. This option should be configured via ceph.conf or via the\n      command line.</source>\n        <target>Los daemons/clientes no extraen este valor de la\n      base de datos de configuración del monitor. No se recomienda definir esta opción con "ceph config\n      set ...". Esta opción se debe configurar mediante ceph.conf o a través\n      de la línea de comandos.</target>\n      </trans-unit>\n      <trans-unit id="83f11fd1dc503c37931ea6c1c5c1e8c2b4b597b6" datatype="html">\n        <source>Option takes effect only during daemon startup.</source>\n        <target>La opción solo surte efecto durante el inicio del daemon.</target>\n      </trans-unit>\n      <trans-unit id="837a07cd6a971038b8b1aa190c43440c9fdb5d8b" datatype="html">\n        <source>Option only affects cluster creation.</source>\n        <target>La opción solo afecta a la creación del clúster.</target>\n      </trans-unit>\n      <trans-unit id="2566a88eb247c918b71cfe5b354c31de0d4b01e5" datatype="html">\n        <source>Option only affects daemon creation.</source>\n        <target>La opción solo afecta a la creación del daemon.</target>\n      </trans-unit>\n      <trans-unit id="1cdc60cfc09c257625768f3d2082816cdef27279" datatype="html">\n        <source>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </source>\n        <target>Updated config option \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="d473e0f684a60db45d6f31e993f693f74290e056" datatype="html">\n        <source>Service</source>\n        <target>Servicio</target>\n      </trans-unit>\n      <trans-unit id="6986e0df8092d822ac2c076520d83994c78834fc" datatype="html">\n        <source>Modified</source>\n        <target>Modified</target>\n      </trans-unit>\n      <trans-unit id="9951bb3983c7dba6fde013e05c922e4fe1a44367" datatype="html">\n        <source>Current value</source>\n        <target>Valor actual</target>\n      </trans-unit>\n      <trans-unit id="4a01c175f90dd92b432f4a4a199d2c7bb9d997ff" datatype="html">\n        <source>Editable</source>\n        <target>Editable</target>\n      </trans-unit>\n      <trans-unit id="261c0af854e8684abc15f89dce6efb3e72344b18" datatype="html">\n        <source>host</source>\n        <target>host</target>\n      </trans-unit>\n      <trans-unit id="b1b381321d4cef04605d3e6e8847ea2b72a03799" datatype="html">\n        <source>Identify</source>\n        <target>Identify</target>\n      </trans-unit>\n      <trans-unit id="a5d5e407f8c4e1b152509c966c90f37edf68472e" datatype="html">\n        <source>Device path</source>\n        <target>Device path</target>\n      </trans-unit>\n      <trans-unit id="b7da3e3505cc80f9bf3cffc8444c53e8a9ec70a5" datatype="html">\n        <source>Available</source>\n        <target>Available</target>\n      </trans-unit>\n      <trans-unit id="396974120fc614fc930a27c8d15a094d82a3a9e4" datatype="html">\n        <source>Vendor</source>\n        <target>Vendor</target>\n      </trans-unit>\n      <trans-unit id="6ec98fa3d6504ba1fd03465194b53706c8263c99" datatype="html">\n        <source>Model</source>\n        <target>Model</target>\n      </trans-unit>\n      <trans-unit id="f2d785f5658c96c6a2f505cdd625108bcece84c3" datatype="html">\n        <source>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </source>\n        <target>Identify device \n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="c97ab45ca09248f8f1ba60328175741657fe39ce" datatype="html">\n        <source>Please enter the duration how long to blink the LED.</source>\n        <target>Please enter the duration how long to blink the LED.</target>\n      </trans-unit>\n      <trans-unit id="87e56ee5057023d7e8b59420b838bad112b043bc" datatype="html">\n        <source>1 minute</source>\n        <target>1 minute</target>\n      </trans-unit>\n      <trans-unit id="affa3b3bf1f36531e5ae65291f8a7cd1b06860ee" datatype="html">\n        <source>2 minutes</source>\n        <target>2 minutes</target>\n      </trans-unit>\n      <trans-unit id="878c6645b7fc26d85c7aee17a9d8c282a938dcf3" datatype="html">\n        <source>5 minutes</source>\n        <target>5 minutes</target>\n      </trans-unit>\n      <trans-unit id="aa0a76140961594b7176ade241e5025a7dbb5dce" datatype="html">\n        <source>10 minutes</source>\n        <target>10 minutes</target>\n      </trans-unit>\n      <trans-unit id="0a7f83a1f27750ef634a1f1f97263fac36113b1f" datatype="html">\n        <source>15 minutes</source>\n        <target>15 minutes</target>\n      </trans-unit>\n      <trans-unit id="699b690d686dbb8e00a1e95b89ba2fffb548da6e" datatype="html">\n        <source>Execute</source>\n        <target>Execute</target>\n      </trans-unit>\n      <trans-unit id="aa975a86dd49979a3ae90b9f3fc5b2c97311d422" datatype="html">\n        <source>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>Identifying \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' started on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="1a6e6ad05508130b7a99ce5b15daf3227c2a930c" datatype="html">\n        <source>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </source>\n        <target>Updated options for module "\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="6bd47ff8707aa2e6a94a4a6e2566b86dc7956d5f" datatype="html">\n        <source>Always-On</source>\n        <target>Always-On</target>\n      </trans-unit>\n      <trans-unit id="ac6c9212896d39b23811ed2dadab7d07336ec559" datatype="html">\n        <source>Enable</source>\n        <target>Habilitar</target>\n      </trans-unit>\n      <trans-unit id="6766a926d80bb7763785621098dae459d6226429" datatype="html">\n        <source>Disable</source>\n        <target>Inhabilitar</target>\n      </trans-unit>\n      <trans-unit id="340f2f312c2eb353e5cd69aee6bee7f5a73c34ac" datatype="html">\n        <source>This Manager module is always on.</source>\n        <target>This Manager module is always on.</target>\n      </trans-unit>\n      <trans-unit id="6a0b3657745dd7a2f2162f1cc790bf9004d0845d" datatype="html">\n        <source>Reconnecting, please wait ...</source>\n        <target>Conectando de nuevo. Espere...</target>\n      </trans-unit>\n      <trans-unit id="7099a8878af7a0a26fe5663c4f46cfe87142b75d" datatype="html">\n        <source>Public Address</source>\n        <target>Dirección pública</target>\n      </trans-unit>\n      <trans-unit id="cbdd1cdc0c7a87f55dd177bc44212f0fc4b80852" datatype="html">\n        <source>Open Sessions</source>\n        <target>Sesiones abiertas</target>\n      </trans-unit>\n      <trans-unit id="34c6f45591d420b1101dcee53999d1de91c0e400" datatype="html">\n        <source>No available devices</source>\n        <target>No available devices</target>\n      </trans-unit>\n      <trans-unit id="dcfe8807a2a1d0d7074a02afe9b80645bd03b9ab" datatype="html">\n        <source>Please add primary devices first</source>\n        <target>Please add primary devices first</target>\n      </trans-unit>\n      <trans-unit id="05d024719e53f85f7f294b7e21dfd805709a0b06" datatype="html">\n        <source>Add devices by using filters</source>\n        <target>Add devices by using filters</target>\n      </trans-unit>\n      <trans-unit id="37e58d1cbdf8212b380efa51422e42821d4f08e6" datatype="html">\n        <source>No In</source>\n        <target>No incluir</target>\n      </trans-unit>\n      <trans-unit id="12706eb5af17ff5ad77b3de21af368d24678e00b" datatype="html">\n        <source>OSDs that were previously marked out will not be marked back in when they start</source>\n        <target>Los OSD que se excluyeron anteriormente no se volverán a incluir cuando se inicien</target>\n      </trans-unit>\n      <trans-unit id="96114d7624d11dc90ca46cfa96145fe22118df76" datatype="html">\n        <source>No Out</source>\n        <target>No excluir</target>\n      </trans-unit>\n      <trans-unit id="a2ef636fe1ddd56b63e4aaf3d292f33dbf735ef3" datatype="html">\n        <source>OSDs will not automatically be marked out after the configured interval</source>\n        <target>Los OSD no se excluirán automáticamente después del intervalo configurado</target>\n      </trans-unit>\n      <trans-unit id="ee50aefa9b8bde1e5429b48709a23abfe08358e0" datatype="html">\n        <source>No Up</source>\n        <target>No activar</target>\n      </trans-unit>\n      <trans-unit id="608929b939307e397586a98cea52ae38997c7273" datatype="html">\n        <source>OSDs are not allowed to start</source>\n        <target>No se permite que los OSD se inicien</target>\n      </trans-unit>\n      <trans-unit id="1751ab69c1e7f62927afedbf7116e0116316c551" datatype="html">\n        <source>No Down</source>\n        <target>No desactivar</target>\n      </trans-unit>\n      <trans-unit id="41fac86dfb65c1db690f3e87f6497cb73b281084" datatype="html">\n        <source>OSD failure reports are being ignored, such that the monitors will not mark OSDs down</source>\n        <target>Se ignoran los informes de error de OSD, de forma que los monitores no desactivarán los OSD</target>\n      </trans-unit>\n      <trans-unit id="b2838c6165a9672a17db188f4dd9676574353dd8" datatype="html">\n        <source>Pause</source>\n        <target>Pausa</target>\n      </trans-unit>\n      <trans-unit id="191d71dadcc8790573d46706a0b48211de4b8334" datatype="html">\n        <source>Pauses reads and writes</source>\n        <target>Pone en pausa las lecturas y escrituras</target>\n      </trans-unit>\n      <trans-unit id="471d5ba75836f38c19992cf83d8822632d99e473" datatype="html">\n        <source>No Scrub</source>\n        <target>No depurar</target>\n      </trans-unit>\n      <trans-unit id="5b8caa61814121bc36dac0c34a9e9de3cae74990" datatype="html">\n        <source>Scrubbing is disabled</source>\n        <target>La depuración está inhabilitada</target>\n      </trans-unit>\n      <trans-unit id="7f29a0ac1c797bdc0347dd5d0734ba83e96e7ce6" datatype="html">\n        <source>No Deep Scrub</source>\n        <target>No depuración profunda</target>\n      </trans-unit>\n      <trans-unit id="01da61ab216541a8d31259cebd16b10c7e5fc124" datatype="html">\n        <source>Deep Scrubbing is disabled</source>\n        <target>La depuración profunda está inhabilitada</target>\n      </trans-unit>\n      <trans-unit id="0b86c7f18ac725de62c7e192dcfccd02c0dc40ab" datatype="html">\n        <source>No Backfill</source>\n        <target>No reponer</target>\n      </trans-unit>\n      <trans-unit id="bd33a2bdc8fbed3b7469f3717c16d9aaa2851fdd" datatype="html">\n        <source>Backfilling of PGs is suspended</source>\n        <target>La reposición de grupos de colocación se suspende</target>\n      </trans-unit>\n      <trans-unit id="df526de2b93c4099a30c200ef551608e39ee5256" datatype="html">\n        <source>No Rebalance</source>\n        <target>No Rebalance</target>\n      </trans-unit>\n      <trans-unit id="c5b70346245f8d52b58e5e7fe222ce82f12429ce" datatype="html">\n        <source>OSD will choose not to backfill unless PG is also degraded</source>\n        <target>OSD will choose not to backfill unless PG is also degraded</target>\n      </trans-unit>\n      <trans-unit id="7fbbd036394cfa623add40299757bc87df8eaa7e" datatype="html">\n        <source>No Recover</source>\n        <target>No recuperar</target>\n      </trans-unit>\n      <trans-unit id="f3ee9b451a64dca47299c9b4ae1091c2008068ad" datatype="html">\n        <source>Recovery of PGs is suspended</source>\n        <target>La recuperación de los grupos de colocación se suspende</target>\n      </trans-unit>\n      <trans-unit id="de904148fe7e8d812218f50333ffe247900617c5" datatype="html">\n        <source>Bitwise Sort</source>\n        <target>Orden bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2613c9fde29785bcd75f0abeccb653d14d7527b3" datatype="html">\n        <source>Use bitwise sort</source>\n        <target>Usar orden bit a bit</target>\n      </trans-unit>\n      <trans-unit id="2fe10d84250aeee365db244251d40934c70ff1e9" datatype="html">\n        <source>Purged Snapdirs</source>\n        <target>Snapdir limpiados</target>\n      </trans-unit>\n      <trans-unit id="6b22a5b780eda3c5d500cdac9c6d4f96978c38f1" datatype="html">\n        <source>OSDs have converted snapsets</source>\n        <target>Los OSD tienen snapset convertidos</target>\n      </trans-unit>\n      <trans-unit id="c42f0ba60564dc5b977a8c7f3fdcde9efbb39c60" datatype="html">\n        <source>Recovery Deletes</source>\n        <target>Supresiones de recuperación</target>\n      </trans-unit>\n      <trans-unit id="72fe39979198ea2ed6db6274b5029025cb316d90" datatype="html">\n        <source>Deletes performed during recovery instead of peering</source>\n        <target>Supresiones realizadas durante la recuperación, en lugar de emparejamientos</target>\n      </trans-unit>\n      <trans-unit id="1bb4a1f9127cefe624c173557a716d0ebb6d647c" datatype="html">\n        <source>PG Log Hard Limit</source>\n        <target>Límite estricto de registro del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="e03c0321397fdf7a9c22e8d6b5015424943c0a57" datatype="html">\n        <source>Puts a hard limit on pg log length</source>\n        <target>Establece un límite estricto para la longitud del registro del grupo de colocación</target>\n      </trans-unit>\n      <trans-unit id="3c384e2e80c6b5eb24861fbf4225b69486cff4a3" datatype="html">\n        <source>Updated OSD Flags</source>\n        <target>Indicadores de OSD actualizados</target>\n      </trans-unit>\n      <trans-unit id="948758e1412bb2ecdb98e3a4f1cbb6d7458456f2" datatype="html">\n        <source>Encryption</source>\n        <target>Encryption</target>\n      </trans-unit>\n      <trans-unit id="c8b1475105463088593de1022ff6dceb523eae0e" datatype="html">\n        <source>OSD</source>\n        <target>OSD</target>\n      </trans-unit>\n      <trans-unit id="688578fcc739d6f0c5fb6c366dbb19d21c6d9e36" datatype="html">\n        <source>out</source>\n        <target>excluir</target>\n      </trans-unit>\n      <trans-unit id="cb0f69bdd4dea41d7d45c74b6e07f98de8a2ab26" datatype="html">\n        <source>in</source>\n        <target>Incluir</target>\n      </trans-unit>\n      <trans-unit id="b5fbc7c7f007dd53b2318525bb7ff8b0376c9e37" datatype="html">\n        <source>down</source>\n        <target>desactivar</target>\n      </trans-unit>\n      <trans-unit id="b58719bcb9184e1a7884d00d22d10899d59bf295" datatype="html">\n        <source>Mark</source>\n        <target>Marcar</target>\n      </trans-unit>\n      <trans-unit id="31a1c1aa03f1e5084750bedb4e3fdc04ce2cb6ca" datatype="html">\n        <source>OSD lost</source>\n        <target>OSD perdido</target>\n      </trans-unit>\n      <trans-unit id="f3fc4c85c5b8f1dedea0496b72d0af9da7b9e0d9" datatype="html">\n        <source>marked lost</source>\n        <target>marcado como perdido</target>\n      </trans-unit>\n      <trans-unit id="40fedc157ad899a18ec40573f770d18b040959d2" datatype="html">\n        <source>Purge</source>\n        <target>Limpiar</target>\n      </trans-unit>\n      <trans-unit id="4f3cff08c7033b63bbccfe66006b1bcaea48ddd8" datatype="html">\n        <source>purged</source>\n        <target>limpiado</target>\n      </trans-unit>\n      <trans-unit id="8e5d1b01eca6dce26a4751f0b19bda7a6ab8db5b" datatype="html">\n        <source>destroy</source>\n        <target>destruir</target>\n      </trans-unit>\n      <trans-unit id="495a06b78bf165a7b545fa002137f0846b094a3d" datatype="html">\n        <source>destroyed</source>\n        <target>destruido</target>\n      </trans-unit>\n      <trans-unit id="70ef158c584bafe788e319a0bffa11b02ee9abf1" datatype="html">\n        <source>delete</source>\n        <target>suprimir</target>\n      </trans-unit>\n      <trans-unit id="a5b387f5a15b95e339df10fc23526c659a2b6c6f" datatype="html">\n        <source>deleted</source>\n        <target>deleted</target>\n      </trans-unit>\n      <trans-unit id="107614b994f2b01abdc1ca179bf780b0cd933ec4" datatype="html">\n        <source>Recovery Priority</source>\n        <target>Recovery Priority</target>\n      </trans-unit>\n      <trans-unit id="359dad5a3a912ef9dece3194035020856805aa96" datatype="html">\n        <source>PG scrub</source>\n        <target>PG scrub</target>\n      </trans-unit>\n      <trans-unit id="953144c420c2e5abd02e6a687433eac60fa852bd" datatype="html">\n        <source>PGs</source>\n        <target>Grupos de colocación</target>\n      </trans-unit>\n      <trans-unit id="7d3523ea9d35c274cef84043de8a2fdde540a9a1" datatype="html">\n        <source>Read bytes</source>\n        <target>Bytes de lectura</target>\n      </trans-unit>\n      <trans-unit id="f15bf7f588f09ca79795b17bc244e8d336f28171" datatype="html">\n        <source>Write bytes</source>\n        <target>Bytes de escritura</target>\n      </trans-unit>\n      <trans-unit id="f3c33322823c846b13f59ba2c8f234405bba99e1" datatype="html">\n        <source>Read ops</source>\n        <target>Operaciones de lectura</target>\n      </trans-unit>\n      <trans-unit id="7e0b24a17546cbfab48b03dc874461d1ca68bc9a" datatype="html">\n        <source>Write ops</source>\n        <target>Operaciones de escritura</target>\n      </trans-unit>\n      <trans-unit id="b27d1dd31789610130b7cdbf88c4da552cffe936" datatype="html">\n        <source>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </source>\n        <target>Edit OSD: \n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="986f1379580078e77666d10f8ddf4f839c6ca71d" datatype="html">\n        <source>Edit OSD</source>\n        <target>Edit OSD</target>\n      </trans-unit>\n      <trans-unit id="a4b09e2fa39c3e4f1a387f191fbae4eea3ce7bf5" datatype="html">\n        <source>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </source>\n        <target>Updated OSD "\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="d45455406092f58e6b089cb440b5b7934b801a01" datatype="html">\n        <source>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark OSD \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="de0b7806e451b3b3dbd564decba59981fe781c18" datatype="html">\n        <source>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </source>\n        <target>Mark \n          <x id="INTERPOLATION" equiv-text="{{markAction}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="bba1d3bb4f8a47aa2b3068e242562196eadb1e83" datatype="html">\n        <source>PG scrub options</source>\n        <target>PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="b0b7748ebc9b7a6942a8cac4a89d4b215b365878" datatype="html">\n        <source>Updated PG scrub options</source>\n        <target>Updated PG scrub options</target>\n      </trans-unit>\n      <trans-unit id="4edc2162af0bd6cd941eaf730d20a7e3b5a83ba7" datatype="html">\n        <source>Max Backfills</source>\n        <target>Número máximo de reposiciones</target>\n      </trans-unit>\n      <trans-unit id="eb5e6c24a48a1dfe23e0a772b762be5e949c0c8a" datatype="html">\n        <source>Recovery Max Active</source>\n        <target>Máximo de recuperaciones activas</target>\n      </trans-unit>\n      <trans-unit id="4a23c6d3859e03184118620d2baeb736ac765fbf" datatype="html">\n        <source>Recovery Max Single Start</source>\n        <target>Máximo de recuperaciones de inicio único</target>\n      </trans-unit>\n      <trans-unit id="97049169ef5228fd1724de2fcdad1fec2858eaf8" datatype="html">\n        <source>Recovery Sleep</source>\n        <target>Reposo de recuperación</target>\n      </trans-unit>\n      <trans-unit id="89553524f4e7db5c437b07dcfdc7b831d56ded1a" datatype="html">\n        <source>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </source>\n        <target>Updated OSD recovery speed priority "\n          <x id="INTERPOLATION" equiv-text="{{value}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ccf5f30798c03d2d8efd0e6eb508320c018b722d" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{operation}}"/> was initialized in the following OSD(s): \n          <x id="INTERPOLATION_1" equiv-text="{{id}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="3bc2d18913479965cb046ec75e2ac3f7b7a77ce5" datatype="html">\n        <source>Create Silence</source>\n        <target>Create Silence</target>\n      </trans-unit>\n      <trans-unit id="78917e8031aaf913ac3fa63295325ce8879703ce" datatype="html">\n        <source>Job</source>\n        <target>Trabajo</target>\n      </trans-unit>\n      <trans-unit id="94287619205068b591c18493c64781424864c259" datatype="html">\n        <source>Severity</source>\n        <target>Gravedad</target>\n      </trans-unit>\n      <trans-unit id="e6cfbe0c5e0302ba2cec22315f6a28f8ac46b651" datatype="html">\n        <source>Started</source>\n        <target>Iniciado</target>\n      </trans-unit>\n      <trans-unit id="801b98c6f02fe3b32f6afa3ee854c99ed83474e6" datatype="html">\n        <source>URL</source>\n        <target>URL</target>\n      </trans-unit>\n      <trans-unit id="d9f726c70aeba7fa6d3d68bff718abe78b1e50ac" datatype="html">\n        <source>Query</source>\n        <target>Query</target>\n      </trans-unit>\n      <trans-unit id="a5cd682a8a33bdc72e093d059429e3cc3a50ec1d" datatype="html">\n        <source>silence</source>\n        <target>silence</target>\n      </trans-unit>\n      <trans-unit id="f557e117e059e7036c6eecacd325a6ae35d866e0" datatype="html">\n        <source>Attribute name</source>\n        <target>Attribute name</target>\n      </trans-unit>\n      <trans-unit id="50f7f517ad8158667f7d4e2bd6f3256e05156e75" datatype="html">\n        <source>Regular expression</source>\n        <target>Regular expression</target>\n      </trans-unit>\n      <trans-unit id="81b1eab399c47110d50f45e3ccb4c009de7cb581" datatype="html">\n        <source>Please add your Prometheus host to the dashboard configuration and refresh the page</source>\n        <target>Please add your Prometheus host to the dashboard configuration and refresh the page</target>\n      </trans-unit>\n      <trans-unit id="29b4ae3296e239446fa0dea88a5112de15cffa54" datatype="html">\n        <source>Created by</source>\n        <target>Created by</target>\n      </trans-unit>\n      <trans-unit id="8d833cceee0ba4c5161b130365e02bc1e129b57e" datatype="html">\n        <source>Ends</source>\n        <target>Ends</target>\n      </trans-unit>\n      <trans-unit id="46a11ff4289e8c88b1b7a935f8d8ee704055f11a" datatype="html">\n        <source>Silence</source>\n        <target>Silence</target>\n      </trans-unit>\n      <trans-unit id="f2ea47d702c7f5e3e5fa751bf9959e21030b72e6" datatype="html">\n        <source>Daemon type</source>\n        <target>Daemon type</target>\n      </trans-unit>\n      <trans-unit id="6c131968e6ab730d86443e6fc11c5cc2a76d7bac" datatype="html">\n        <source>Daemon ID</source>\n        <target>Daemon ID</target>\n      </trans-unit>\n      <trans-unit id="5738f0ca7ddd9594058ce051b1d5d576e2782825" datatype="html">\n        <source>Container ID</source>\n        <target>Container ID</target>\n      </trans-unit>\n      <trans-unit id="78ebcf850cd440c5efc15e6a3a522ae75aeff669" datatype="html">\n        <source>Container Image name</source>\n        <target>Container Image name</target>\n      </trans-unit>\n      <trans-unit id="ea0c7ab9a7bdf646d494abf8c85fbf67d934d079" datatype="html">\n        <source>Container Image ID</source>\n        <target>Container Image ID</target>\n      </trans-unit>\n      <trans-unit id="bf2468fd965b8a59c135ad549b3a612aa9873abc" datatype="html">\n        <source>Status Description</source>\n        <target>Status Description</target>\n      </trans-unit>\n      <trans-unit id="19867330bdc84096f5a93ab087a1766476c8a074" datatype="html">\n        <source>Last Refreshed</source>\n        <target>Last Refreshed</target>\n      </trans-unit>\n      <trans-unit id="2349ee2027ab6ceb3e4b8834928562075b7e1ac7" datatype="html">\n        <source>Container image name</source>\n        <target>Container image name</target>\n      </trans-unit>\n      <trans-unit id="3c475503fb93338811af6b3d9ccacca1d7334609" datatype="html">\n        <source>Container image ID</source>\n        <target>Container image ID</target>\n      </trans-unit>\n      <trans-unit id="8dd15f6c73c05a8b0bd7b6d416487ab6570b88c8" datatype="html">\n        <source>Running</source>\n        <target>Running</target>\n      </trans-unit>\n      <trans-unit id="fb2e1bed329dc5b84197808c778abb9edcbdb335" datatype="html">\n        <source>Used</source>\n        <target>Usado</target>\n      </trans-unit>\n      <trans-unit id="4f1ab04d9100fb0df0e62b921ec46ae052ae29fc" datatype="html">\n        <source>Avail.</source>\n        <target>Dispon.</target>\n      </trans-unit>\n      <trans-unit id="a1c9b3d4fa67450fe9afd1d726f8a1bd91d990ea" datatype="html">\n        <source>Clean</source>\n        <target>Limpio</target>\n      </trans-unit>\n      <trans-unit id="0054f5460090d6dde385e8f099d598df5d28cf54" datatype="html">\n        <source>Working</source>\n        <target>En curso</target>\n      </trans-unit>\n      <trans-unit id="a8059e31694578c1b0344a76a345357dd60e8f01" datatype="html">\n        <source>Warning</source>\n        <target>Advertencia</target>\n      </trans-unit>\n      <trans-unit id="e5d8bb389c702588877f039d72178f219453a72d" datatype="html">\n        <source>Unknown</source>\n        <target>Desconocido</target>\n      </trans-unit>\n      <trans-unit id="88155be1b9b9c6140d6e8f93bac4a775cfdc6671" datatype="html">\n        <source>Healthy</source>\n        <target>Healthy</target>\n      </trans-unit>\n      <trans-unit id="8a3aec4dc1a6e2d4c612ae85e0537acbb20a0f85" datatype="html">\n        <source>Misplaced</source>\n        <target>Misplaced</target>\n      </trans-unit>\n      <trans-unit id="ee81f9bf7ceac69712e0b83e8adc268739f9673e" datatype="html">\n        <source>Degraded</source>\n        <target>Degraded</target>\n      </trans-unit>\n      <trans-unit id="14625bc4025daef1969777a67a3cca27e0cd9167" datatype="html">\n        <source>Unfound</source>\n        <target>Unfound</target>\n      </trans-unit>\n      <trans-unit id="8f23ea509d081c2f747d083d44608dbf125b2ea2" datatype="html">\n        <source>replicas</source>\n        <target>replicas</target>\n      </trans-unit>\n      <trans-unit id="129a2224e1f9d19eb5e11e2a07fe10a785556484" datatype="html">\n        <source>up</source>\n        <target>activo</target>\n      </trans-unit>\n      <trans-unit id="d5f29cf0af691726483262d647eb6622be002512" datatype="html">\n        <source>no filesystems</source>\n        <target>sin sistemas de archivos</target>\n      </trans-unit>\n      <trans-unit id="b1c4387ffab06f3fa9fdb4411aea955595538d44" datatype="html">\n        <source>active</source>\n        <target>activo</target>\n      </trans-unit>\n      <trans-unit id="1aaf7054d826f2cb05ec3e88a5a4b8116861e1f5" datatype="html">\n        <source>standby</source>\n        <target>reserva</target>\n      </trans-unit>\n      <trans-unit id="c9a1080024dca344a48acdb77fa2d54e059f7254" datatype="html">\n        <source>n/a</source>\n        <target>n/d</target>\n      </trans-unit>\n      <trans-unit id="84a1787b6df375847c70f782861d7e7f8f43bff4" datatype="html">\n        <source>active daemon</source>\n        <target>daemon activo</target>\n      </trans-unit>\n      <trans-unit id="24407dc2ebfafaf6b131ee978683b893c3f1d763" datatype="html">\n        <source>quorum</source>\n        <target>quórum</target>\n      </trans-unit>\n      <trans-unit id="2fa50bc07995c6ea660412294298ded39fcb08d9" datatype="html">\n        <source>The NFS Ganesha service is not configured.</source>\n        <target>El servicio NFS Ganesha no está configurado.</target>\n      </trans-unit>\n      <trans-unit id="af1396bdc49f45ea6c4a1e414769f5e2a382c834" datatype="html">\n        <source>Transport</source>\n        <target>Transportar</target>\n      </trans-unit>\n      <trans-unit id="b6a0e176d96c4feed2e975a039c044fcf822e152" datatype="html">\n        <source>CephFS User</source>\n        <target>Usuario de CephFS</target>\n      </trans-unit>\n      <trans-unit id="44dc610cf201a163e8c38da810acec9596930bb3" datatype="html">\n        <source>CephFS Filesystem</source>\n        <target>Sistemas de archivos CephFS</target>\n      </trans-unit>\n      <trans-unit id="db6dc7124be83c7055cb0f2719e31f2f9d46fd3d" datatype="html">\n        <source>(inherited from global config)</source>\n        <target>(se hereda de la configuración global)</target>\n      </trans-unit>\n      <trans-unit id="e1f97bb86f991553ec7b535cb39e7eaa99dfcfe2" datatype="html">\n        <source>inherited from global config</source>\n        <target>se hereda de la configuración global</target>\n      </trans-unit>\n      <trans-unit id="e751800766277e7c2edd652cec7a7a1a68a37852" datatype="html">\n        <source>-- Select what kind of user id squashing is performed --</source>\n        <target>-- Seleccione el tipo de reducción de privilegios de ID de usuario que se va a realizar --</target>\n      </trans-unit>\n      <trans-unit id="4b58387f911e8a7b135a0c4d76c70335c65bbb32" datatype="html">\n        <source>There are no daemons available.</source>\n        <target>No hay ningún daemon disponible.</target>\n      </trans-unit>\n      <trans-unit id="18ae8dc1264f06df7ea251175ada2ac1b8401018" datatype="html">\n        <source>NFS export</source>\n        <target>NFS export</target>\n      </trans-unit>\n      <trans-unit id="c56d51748965db5f3966cd1d06a1c9f4b5244931" datatype="html">\n        <source>Crush Rule</source>\n        <target>Crush Rule</target>\n      </trans-unit>\n      <trans-unit id="ae128527ec18892f812a62a1fd15dc50a38060c0" datatype="html">\n        <source>EC Profile</source>\n        <target>EC Profile</target>\n      </trans-unit>\n      <trans-unit id="60fb10c145f9c7ede2b9ddf9b2b0b0f6191d0ebd" datatype="html">\n        <source>Cache Mode</source>\n        <target>Modo de caché</target>\n      </trans-unit>\n      <trans-unit id="fa5bfad31d4139f6871443bb74324ffda5cad3e6" datatype="html">\n        <source>Min Evict Age</source>\n        <target>Antigüedad mínima de expulsión</target>\n      </trans-unit>\n      <trans-unit id="fd0eb851666df45c34c76fabcda79b0d77bc910b" datatype="html">\n        <source>Min Flush Age</source>\n        <target>Antigüedad mínima de vaciado</target>\n      </trans-unit>\n      <trans-unit id="cb54d2c420a534cee0c308ea5589f8c394ef8d67" datatype="html">\n        <source>Target Max Bytes</source>\n        <target>Número máximo de bytes de destino</target>\n      </trans-unit>\n      <trans-unit id="07f4ebe6615dca466818ffdae2a69ee217d265fb" datatype="html">\n        <source>Target Max Objects</source>\n        <target>Número máximo de objetos de destino</target>\n      </trans-unit>\n      <trans-unit id="eaa8f4df53cf7fa78d078e20a701d10f3dccd77d" datatype="html">\n        <source>No applications added</source>\n        <target>No se ha añadido ninguna aplicación</target>\n      </trans-unit>\n      <trans-unit id="321c2a7640f11177ea49b0857b94c4b70830c0e6" datatype="html">\n        <source>Applications limit reached</source>\n        <target>Se ha alcanzado el límite de aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="519d27742b74fadc8336777452f78891e98aa1dc" datatype="html">\n        <source>A pool can only have up to four applications definitions.</source>\n        <target>Un repositorio solo puede tener hasta cuatro definiciones de aplicaciones.</target>\n      </trans-unit>\n      <trans-unit id="b5bec3813f0d45daa7eb9471272969e1bc3e734e" datatype="html">\n        <source>Allowed characters \'_a-zA-Z0-9\'</source>\n        <target>Caracteres permitidos: _, a-z, A-Z y 0-9</target>\n      </trans-unit>\n      <trans-unit id="807472d29602a0085bce62e534bd66208982c2e2" datatype="html">\n        <source>Maximum length is 128 characters</source>\n        <target>La longitud máxima es 128 caracteres</target>\n      </trans-unit>\n      <trans-unit id="37785748b9ac9ad1d3e4b111ac502c3284afe84b" datatype="html">\n        <source>Filter or add applications</source>\n        <target>Filtrar o añadir aplicaciones</target>\n      </trans-unit>\n      <trans-unit id="38c7b8610ca87835e13eeee6a09ba1c414cd5cb9" datatype="html">\n        <source>Add application</source>\n        <target>Añadir aplicación</target>\n      </trans-unit>\n      <trans-unit id="db8c42f077700d8a94619fad9f4c94b7361d5f1d" datatype="html">\n        <source>pool</source>\n        <target>pool</target>\n      </trans-unit>\n      <trans-unit id="65bb2be83261bc4798853bbccdedc110c43feea7" datatype="html">\n        <source>erasure code profile</source>\n        <target>perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="ae48e19a9a2acaca4b5ea594451bc9b0b01ec8d2" datatype="html">\n        <source>crush rule</source>\n        <target>crush rule</target>\n      </trans-unit>\n      <trans-unit id="112d356ad6846959ca4aa5ec9a1f0d9d473b24ec" datatype="html">\n        <source>Replica Size</source>\n        <target>Tamaño de réplica</target>\n      </trans-unit>\n      <trans-unit id="ec50492db341fa752b023d8c924601286b6c9c0c" datatype="html">\n        <source>Last Change</source>\n        <target>Último cambio</target>\n      </trans-unit>\n      <trans-unit id="563a8c136a9d423bc7ae1269a404d6da5fd83dad" datatype="html">\n        <source>Erasure Coded Profile</source>\n        <target>Perfil de código de borrado</target>\n      </trans-unit>\n      <trans-unit id="0ad7f0662956cff61ac1208f92b1a0305b1b2e58" datatype="html">\n        <source>Crush Ruleset</source>\n        <target>Conjunto de reglas de CRUSH</target>\n      </trans-unit>\n      <trans-unit id="bcc365a084b6145b941b371bd4c2b6c3d2c79234" datatype="html">\n        <source>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</source>\n        <target>Pool deletion is disabled by the mon_allow_pool_delete configuration setting.</target>\n      </trans-unit>\n      <trans-unit id="44939fd05cedfd077db886528b755e77d5fa3885" datatype="html">\n        <source>bucket</source>\n        <target>papelera</target>\n      </trans-unit>\n      <trans-unit id="84fee774286ec4191311f1277075455c3ea5e2e2" datatype="html">\n        <source>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </source>\n        <target>Updated Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="2d7a43674f0bbc131c9e555ec16ac37fa0445d76" datatype="html">\n        <source>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </source>\n        <target>Created Object Gateway bucket "\n          <x id="INTERPOLATION" equiv-text="{{bid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="ec40d74ecfb1d6d60455af6805c9a714a3f5750a" datatype="html">\n        <source>buckets</source>\n        <target>papeleras</target>\n      </trans-unit>\n      <trans-unit id="764585d5595bac113582ee14a6fd07006770ceb1" datatype="html">\n        <source>capability</source>\n        <target>capability</target>\n      </trans-unit>\n      <trans-unit id="0914cbe18bae204217e1851be6d2d24d86e74605" datatype="html">\n        <source>user</source>\n        <target>usuario</target>\n      </trans-unit>\n      <trans-unit id="d8c86dc5e48a63590d9c94e19f90b5f8325cbd49" datatype="html">\n        <source>subuser</source>\n        <target>subuser</target>\n      </trans-unit>\n      <trans-unit id="f45a3de8a8b40d161cc36a55d77548a27107ca04" datatype="html">\n        <source>S3 Key</source>\n        <target>S3 Key</target>\n      </trans-unit>\n      <trans-unit id="854a763265e92f91ba3ccee1a0e8d823be584f7c" datatype="html">\n        <source>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Updated Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="84ab3fd641e65e39cffee0ec722a059ed284229e" datatype="html">\n        <source>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </source>\n        <target>Created Object Gateway user "\n          <x id="INTERPOLATION" equiv-text="{{uid}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="7c7f4be7b726e61c577e63842a58d9e435f7c597" datatype="html">\n        <source>users</source>\n        <target>usuarios</target>\n      </trans-unit>\n      <trans-unit id="9f7760223efd77806f1bbaf963e6993bb4bc6a0a" datatype="html">\n        <source>Swift Key</source>\n        <target>Swift Key</target>\n      </trans-unit>\n      <trans-unit id="6462d8f12b427c29363f00b12f20f566be24937c" datatype="html">\n        <source>Device ID</source>\n        <target>Device ID</target>\n      </trans-unit>\n      <trans-unit id="82f12bf23db4bb82db89877bebe93954bc1c8fb0" datatype="html">\n        <source>State of Health</source>\n        <target>State of Health</target>\n      </trans-unit>\n      <trans-unit id="7bd34bd120146afef0e0d8fa168d9bdabd594b6a" datatype="html">\n        <source>Good</source>\n        <target>Good</target>\n      </trans-unit>\n      <trans-unit id="31c59dce114ec0a9d02552ef7b81920b3de36793" datatype="html">\n        <source>Bad</source>\n        <target>Bad</target>\n      </trans-unit>\n      <trans-unit id="2862af5284f66d4b06bdcf77a5519141723b6989" datatype="html">\n        <source>Stale</source>\n        <target>Stale</target>\n      </trans-unit>\n      <trans-unit id="8d8e819b52984a4fbdec75a99eb28d1ae4323bbc" datatype="html">\n        <source>Life Expectancy</source>\n        <target>Life Expectancy</target>\n      </trans-unit>\n      <trans-unit id="72d9b15be18ea063e78c4e855b9e8c0af95593ef" datatype="html">\n        <source>Prediction Creation Date</source>\n        <target>Prediction Creation Date</target>\n      </trans-unit>\n      <trans-unit id="a6b4ef85e5ff8bd192751c7bbebc54c46118d6d4" datatype="html">\n        <source>Device Name</source>\n        <target>Device Name</target>\n      </trans-unit>\n      <trans-unit id="d5fd840374ca1a6f394bcd81f390a6dca27f8224" datatype="html">\n        <source>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </source>\n        <target>An error with error code \n          <x id="INTERPOLATION" equiv-text="{{code}}"/> occurred.\n        </target>\n      </trans-unit>\n      <trans-unit id="a0b59d7139692bb8d8ed786b6eb6e9e70ce743f3" datatype="html">\n        <source>Raw</source>\n        <target>Raw</target>\n      </trans-unit>\n      <trans-unit id="2f3beddc8234b30fb26a7f63ba2f1ea74f2ed6f7" datatype="html">\n        <source>Threshold</source>\n        <target>Threshold</target>\n      </trans-unit>\n      <trans-unit id="4654b5a68af3c8bad29aa14ca85ccea1f3143c6b" datatype="html">\n        <source>When Failed</source>\n        <target>When Failed</target>\n      </trans-unit>\n      <trans-unit id="5b7f56d5be49fb8e8d8f40209d6746f8f72e9177" datatype="html">\n        <source>Worst</source>\n        <target>Worst</target>\n      </trans-unit>\n      <trans-unit id="1481b8488e10dbc437accce89d2ae35a0106e8ba" datatype="html">\n        <source>Scope</source>\n        <target>Ámbito</target>\n      </trans-unit>\n      <trans-unit id="9b1d5e95f6bdcfb4b737413f5fa157e0dcb103d5" datatype="html">\n        <source>Read</source>\n        <target>Lectura</target>\n      </trans-unit>\n      <trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">\n        <source>Create</source>\n        <target>Crear</target>\n      </trans-unit>\n      <trans-unit id="dc4fba275819619ee78e8eae14d357ea69ba7477" datatype="html">\n        <source>role</source>\n        <target>role</target>\n      </trans-unit>\n      <trans-unit id="fe6ee93173884201ec62d62ba173c3de85ae177e" datatype="html">\n        <source>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Created role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="41c032df0732f4318f8213fabd0719ac347d4b6c" datatype="html">\n        <source>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Updated role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="50e22b5289f79f1417369403345c9fa9911a4557" datatype="html">\n        <source>System Role</source>\n        <target>Función del sistema</target>\n      </trans-unit>\n      <trans-unit id="7f132668e2dbfcf616381d2daf59d1a6f2698102" datatype="html">\n        <source>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </source>\n        <target>Deleted role \'\n          <x id="INTERPOLATION" equiv-text="{{role_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="bd15b8d5c0fa160161728eefbbb585710414d471" datatype="html">\n        <source>New name</source>\n        <target>New name</target>\n      </trans-unit>\n      <trans-unit id="6f126277f3dc22a3ab3609c4c198386c8744e11a" datatype="html">\n        <source>Clone Role</source>\n        <target>Clone Role</target>\n      </trans-unit>\n      <trans-unit id="d19d8320479854bc52877cdf0dc5ecfe34a36ec7" datatype="html">\n        <source>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </source>\n        <target>Cloned role \'\n          <x id="INTERPOLATION" equiv-text="{{dst_name}}"/>\' from \'\n          <x id="INTERPOLATION_1" equiv-text="{{src_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2e35d60a14ce0b470e8b54602864a867f7fcef40" datatype="html">\n        <source>There are no roles.</source>\n        <target>There are no roles.</target>\n      </trans-unit>\n      <trans-unit id="d2362a49d2434ce137bf19dab004251b7fd9c7b3" datatype="html">\n        <source>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Created user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="9910122dfedd2eaa544a990f1430e5b82a76d99f" datatype="html">\n        <source>Update user</source>\n        <target>Actualizar usuario</target>\n      </trans-unit>\n      <trans-unit id="ac10a3d9b59575640797c1a8e6aea642cf5d5e77" datatype="html">\n        <source>Continue</source>\n        <target>Continuar</target>\n      </trans-unit>\n      <trans-unit id="cf4bcf4ce3d551e6099ccdc3546ae418fe5f8038" datatype="html">\n        <source>You were automatically logged out because your roles have been changed.</source>\n        <target>La sesión se ha cerrado automáticamente porque sus funciones han cambiado.</target>\n      </trans-unit>\n      <trans-unit id="0f6003fb0c1cc73b89d225801cc1b870945cd259" datatype="html">\n        <source>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Updated user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="fe516c6d820018fdc971113935e22ec1e852965f" datatype="html">\n        <source>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Deleted user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="01a7e11502ff80421ef3615e533ea14ef57e1d5c" datatype="html">\n        <source>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </source>\n        <target>Failed to delete user "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>"\n        </target>\n      </trans-unit>\n      <trans-unit id="63316a3861dbcb035147efc1b9fb6bc708242e94" datatype="html">\n        <source>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </source>\n        <target>You are currently logged in as "\n          <x id="INTERPOLATION" equiv-text="{{username}}"/>".\n        </target>\n      </trans-unit>\n      <trans-unit id="d8b81951d25439864e92f750f7c99d7426d6517c" datatype="html">\n        <source>password</source>\n        <target>password</target>\n      </trans-unit>\n      <trans-unit id="d361a9b5e1f7985a12c0433388f31626525a02b8" datatype="html">\n        <source>Updated user password"</source>\n        <target>Updated user password"</target>\n      </trans-unit>\n      <trans-unit id="c4e596a44ffc4718c1602600d6e4f029190eb031" datatype="html">\n        <source>The name of the node under which data should be placed.</source>\n        <target>The name of the node under which data should be placed.</target>\n      </trans-unit>\n      <trans-unit id="f24772ba1091155f8d7025332ca8456a204d1e28" datatype="html">\n        <source>The type of CRUSH nodes across which we should separate replicas.</source>\n        <target>The type of CRUSH nodes across which we should separate replicas.</target>\n      </trans-unit>\n      <trans-unit id="a3896042af461a80091c3f7a5fe3fff5ac40a3a0" datatype="html">\n        <source>The device class data should be placed on.</source>\n        <target>The device class data should be placed on.</target>\n      </trans-unit>\n      <trans-unit id="1d7fbcc3d5efc946ffbcf86fed04c4e20dda20fb" datatype="html">\n        <source>Each object is split in data-chunks parts, each stored on a different OSD.</source>\n        <target>Cada objeto se divide en porciones de datos, cada una almacenada en un OSD distinto.</target>\n      </trans-unit>\n      <trans-unit id="b1f8ed4e216585f1f9134740002ef3c8501debd8" datatype="html">\n        <source>Compute coding chunks for each object and store them on different OSDs.\n      The number of coding chunks is also the number of OSDs that can be down without losing data.</source>\n        <target>Calcula las porciones de código para cada objeto y las almacena en distintos OSD.\n      El número de porciones de código es también el número de OSD que pueden estar inactivos sin que se pierdan datos.</target>\n      </trans-unit>\n      <trans-unit id="c437ee74a9a8e781e1380153f742a685e3b8cc5e" datatype="html">\n        <source>The jerasure plugin is the most generic and flexible plugin,\n          it is also the default for Ceph erasure coded pools.</source>\n        <target>El complemento jerasure es el más genérico y flexible,\n          y también el complemento por defecto para los repositorios de código de borrado de Ceph.</target>\n      </trans-unit>\n      <trans-unit id="8c7e19322851402afa67e41f4f1d4e531caf1bf5" datatype="html">\n        <source>The more flexible technique is reed_sol_van : it is enough to set k\n          and m. The cauchy_good technique can be faster but you need to chose the packetsize\n          carefully. All of reed_sol_r6_op, liberation, blaum_roth, liber8tion are RAID6 equivalents\n          in the sense that they can only be configured with m=2.</source>\n        <target>La técnica más flexible es reed_sol_van: basta con definir k y m.\n          La técnica cauchy_good puede ser más rápida, pero hay que elegir con cuidado el tamaño\n          del paquete. reed_sol_r6_op, liberation, blaum_roth y liber8tion son todas equivalentes a RAID6\n          en el sentido de que solo se pueden configurar con m=2.</target>\n      </trans-unit>\n      <trans-unit id="b1b11f49281b4e79219b4eecfbcb033cb15bd880" datatype="html">\n        <source>The encoding will be done on packets of bytes size at a time.\n          Chosing the right packet size is difficult.\n          The jerasure documentation contains extensive information on this topic.</source>\n        <target>La codificación se realizará según el tamaño de los paquetes de bytes de uno en uno.\n          Elegir el tamaño correcto es difícil.\n          La documentación de jerasure incluye información completa sobre el tema.</target>\n      </trans-unit>\n      <trans-unit id="d9cb3bc07a25b26fbea457e0a7b543340bc13c49" datatype="html">\n        <source>With the jerasure plugin, when an erasure coded object is stored on\n          multiple OSDs, recovering from the loss of one OSD requires reading from all the others.\n          For instance if jerasure is configured with k=8 and m=4, losing one OSD requires reading\n          from the eleven others to repair.\n\n          The lrc erasure code plugin creates local parity chunks to be able to recover using\n          less OSDs. For instance if lrc is configured with k=8, m=4 and l=4, it will create\n          an additional parity chunk for every four OSDs. When a single OSD is lost, it can be\n          recovered with only four OSDs instead of eleven.</source>\n        <target>Con el complemento jerasure, cuando un objeto de código de borrado se almacena\n          en varios OSD, para recuperarse de la pérdida de un OSD es necesario leer de todos los demás.\n          Por ejemplo, si jerasure está configurado con k=8 y m=4, cuando se pierde un OSD es necesario leer\n          de los otros once para repararlo.\n\n          El complemento de código de borrado lrc crea porciones de paridad local para poder realizar la recuperación con\n          menos OSDs. Por ejemplo, is lrc está configurado con k=8, m=4 y l=4, creará\n          una porción de paridad adicional para cada cuatro OSDs. Si se pierde un solo OSD, se puede recuperar\n          solo con cuatro OSD, en lugar de con once.</target>\n      </trans-unit>\n      <trans-unit id="813959d46e63a29bbd266b3af2ff9414c2ef553c" datatype="html">\n        <source>Group the coding and data chunks into sets of size locality. For instance,\n          for k=4 and m=2, when locality=3 two groups of three are created. Each set can\n          be recovered without reading chunks from another set.</source>\n        <target>Agrupa las porciones de código y de datos en localizaciones de conjuntos de tamaño. Por ejemplo,\n          para k=4 y m=2, si locality=3, se crean dos grupos de tres. Cada conjunto\n          se puede recuperar sin leer porciones de otro conjunto.</target>\n      </trans-unit>\n      <trans-unit id="f0ff63d92e0a1b4d4b51e31b9133802d160a5f4c" datatype="html">\n        <source>The type of the crush bucket in which each set of chunks defined\n          by l will be stored. For instance, if it is set to rack, each group of l chunks will be\n          placed in a different rack. It is used to create a CRUSH rule step such as step choose\n          rack. If it is not set, no such grouping is done.</source>\n        <target>El tipo de papelera de CRUSH en el que se almacenará cada\n          conjunto de porciones definido por l. Por ejemplo, si se define como bastidor, cada grupo de l porciones\n          se colocará en un bastidor distinto. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step choose\n          rack". Si no se define, no se realiza este tipo de agrupamiento.</target>\n      </trans-unit>\n      <trans-unit id="3ece48df9d1e9a98f98bf3c5cc66e8b637020a4d" datatype="html">\n        <source>The isa plugin encapsulates the ISA library. It only runs on Intel processors.</source>\n        <target>El complemento isa encapsula la biblioteca ISA. Solo funciona en procesadores Intel.</target>\n      </trans-unit>\n      <trans-unit id="4472c9e31bfc7d96a83dc4afce0a6e885c99e839" datatype="html">\n        <source>The ISA plugin comes in two Reed Solomon forms.\n          If reed_sol_van is set, it is Vandermonde, if cauchy is set, it is Cauchy.</source>\n        <target>El complemento ISA viene en dos formatos de Reed Solomon.\n          Si se define reed_sol_van, se trata de Vandermonde; si se define cauchy, se trata de Cauchy.</target>\n      </trans-unit>\n      <trans-unit id="fa385f5ecf63083ec848dca8dc5e52bdc72ac6f6" datatype="html">\n        <source>The shec plugin encapsulates the multiple SHEC library.\n          It allows ceph to recover data more efficiently than Reed Solomon codes.</source>\n        <target>El complemento shec encapsula las distintas bibliotecas SHEC.\n          Permite a Ceph recuperar datos de forma más eficiente que los códigos de Reed Solomon.</target>\n      </trans-unit>\n      <trans-unit id="687b3cd94b3475c24ff4481d64d4739f902a377c" datatype="html">\n        <source>The number of parity chunks each of which includes each data chunk in its\n          calculation range. The number is used as a durability estimator. For instance, if c=2,\n          2 OSDs can be down without losing data.</source>\n        <target>El número de porciones de paridad. Cada uno de ellas incluye cada porción de datos\n           en su intervalo de cálculo. El número se usa como estimador de durabilidad. Por ejemplo, si c=2,\n          2 OSD pueden estar inactivos sin que se pierdan datos.</target>\n      </trans-unit>\n      <trans-unit id="f3c4af6df91bdaabdb715f8f0b61a24faf73a3bc" datatype="html">\n        <source>The name of the crush bucket used for the first step of the CRUSH rule.\n      For instance step take default.</source>\n        <target>El nombre de la papelera de CRUSH usado para el primer paso de la regla de CRUSH.\n      Por ejemplo, "step take default".</target>\n      </trans-unit>\n      <trans-unit id="e1059955a5ce65cdabf0c0a8207377e1f9bae57e" datatype="html">\n        <source>Ensure that no two chunks are in a bucket with the same failure\n      domain. For instance, if the failure domain is host no two chunks will be stored on the same\n      host. It is used to create a CRUSH rule step such as step chooseleaf host.</source>\n        <target>Asegúrese de que no hay dos porciones en una papelera con el mismo\n      dominio de error. Por ejemplo, si el dominio de error es host, no debe haber dos porciones almacenadas en el mismo\n      host. Se usa para crear un paso de regla de CRUSH, por ejemplo, "step chooseleaf host".</target>\n      </trans-unit>\n      <trans-unit id="ac392ac9c6da5fde6da80fc57b9c09402fb6e73d" datatype="html">\n        <source>Restrict placement to devices of a specific class\n      (e.g., ssd or hdd), using the crush device class names in the CRUSH map.</source>\n        <target>Restringe la colocación a dispositivos de una clase concreta\n      (p.ej., ssd o hdd) usando los nombre de clase de dispositivo CRUSH en el mapa de CRUSH.</target>\n      </trans-unit>\n      <trans-unit id="62bcb9ae5583a088649b1adf5787a86ca3334f89" datatype="html">\n        <source>Set the directory name from which the erasure code plugin is loaded.</source>\n        <target>Define el nombre de directorio del que se cargará el complemento de código de borrado.</target>\n      </trans-unit>\n      <trans-unit id="c8f10184a8433d132ede0a2c0c1aa96f291cacfa" datatype="html">\n        <source>Allows all operations</source>\n        <target>Permite todas las operaciones</target>\n      </trans-unit>\n      <trans-unit id="82077ee97c11ee76efc3adf253b7b26654544317" datatype="html">\n        <source>Allows only operations that do not modify the server</source>\n        <target>Permite solo las operaciones que no modifican el servidor</target>\n      </trans-unit>\n      <trans-unit id="22b5212ec10449dbf0a0af0ad34122eac51b5f2a" datatype="html">\n        <source>Does not allow read or write operations, but allows any other operation</source>\n        <target>No permite operaciones de lectura o escritura, pero sí cualquier otra</target>\n      </trans-unit>\n      <trans-unit id="9799d0f8c4b7727ae239fedfe3c0ce127feb7a50" datatype="html">\n        <source>Does not allow read, write, or any operation that modifies file        attributes or directory content</source>\n        <target>No permite operaciones de lectura o escritura, ni ninguna otra que modifique los atributos del archivo o el contenido del directorio</target>\n      </trans-unit>\n      <trans-unit id="aeddefe0af87025d8f00699aa94bed8216a99a58" datatype="html">\n        <source>Allows no access at all</source>\n        <target>No permite ningún tipo de acceso</target>\n      </trans-unit>\n      <trans-unit id="a436c6a4025a749198e93cac239de8deede72211" datatype="html">\n        <source>-- Select the priority --</source>\n        <target>-- Seleccione la prioridad --</target>\n      </trans-unit>\n      <trans-unit id="9556266f0a2b1762a44b686f2bb21dbfefb01c12" datatype="html">\n        <source>Low</source>\n        <target>Baja</target>\n      </trans-unit>\n      <trans-unit id="72279141a67cc042d9864102b703216cc8a428a3" datatype="html">\n        <source>High</source>\n        <target>Alta</target>\n      </trans-unit>\n      <trans-unit id="6080b77234e92ad41bb52653b239c4c4f851317d" datatype="html">\n        <source>Error</source>\n        <target>Error</target>\n      </trans-unit>\n      <trans-unit id="c43dc1967a603fefb886149ac35863a06d5b4ce5" datatype="html">\n        <source>Information</source>\n        <target>Información</target>\n      </trans-unit>\n      <trans-unit id="1e035e6ccfab771cad4226b2ad230cb0d4a88cba" datatype="html">\n        <source>Success</source>\n        <target>Success</target>\n      </trans-unit>\n      <trans-unit id="61fd1cffcb763cbfd5829071723cf9b647174bd9" datatype="html">\n        <source>An error occurred.</source>\n        <target>An error occurred.</target>\n      </trans-unit>\n      <trans-unit id="e6ca3c0efaf51e6d45a7f92f58bac37140c3fda4" datatype="html">\n        <source>Last 5 minutes</source>\n        <target>Últimos 5 minutos</target>\n      </trans-unit>\n      <trans-unit id="b0ecb2bbc548cc9bd95050fd8f0c84586d083fe2" datatype="html">\n        <source>Last 15 minutes</source>\n        <target>Últimos 15 minutos</target>\n      </trans-unit>\n      <trans-unit id="857ae67deb51353120b203b0f2a06b0c48ef49fa" datatype="html">\n        <source>Last 30 minutes</source>\n        <target>Últimos 30 minutos</target>\n      </trans-unit>\n      <trans-unit id="7b1738fad314e936dc14b94db8f43da736942308" datatype="html">\n        <source>Last 1 hour (Default)</source>\n        <target>Última hora (opción por defecto)</target>\n      </trans-unit>\n      <trans-unit id="a428288224389726cef9d9bd8d1d7808cccd7ffd" datatype="html">\n        <source>Last 3 hours</source>\n        <target>Últimas 3 horas</target>\n      </trans-unit>\n      <trans-unit id="7cbabecc8d80cf183ac199cfaeb7619d56e5d43f" datatype="html">\n        <source>Last 6 hours</source>\n        <target>Últimas 6 horas</target>\n      </trans-unit>\n      <trans-unit id="1a389cdf64187d34cf99eec30a290e3fa7d4744f" datatype="html">\n        <source>Last 12 hours</source>\n        <target>Últimas 12 horas</target>\n      </trans-unit>\n      <trans-unit id="9e0ba5f591380a94d594a76288f0c41aa97eb9c2" datatype="html">\n        <source>Last 24 hours</source>\n        <target>Últimas 24 horas</target>\n      </trans-unit>\n      <trans-unit id="e430eda9c785cd43465b7cbb400ee914f1057247" datatype="html">\n        <source>Yesterday</source>\n        <target>Ayer</target>\n      </trans-unit>\n      <trans-unit id="7fb1099e29660162f9154d5b2feee7743a423df6" datatype="html">\n        <source>Today</source>\n        <target>Hoy</target>\n      </trans-unit>\n      <trans-unit id="33904058a97a64bd189bed84038b1ffe719769c7" datatype="html">\n        <source>Today so far</source>\n        <target>Hoy hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="3b0b849be007510021d3d383df75bec95ef9c97b" datatype="html">\n        <source>Day before yesterday</source>\n        <target>Anteayer</target>\n      </trans-unit>\n      <trans-unit id="6b430c2c394c4d32ebd7d46c8c46ab60e1b29ccb" datatype="html">\n        <source>Last 2 days</source>\n        <target>Los últimos 2 días</target>\n      </trans-unit>\n      <trans-unit id="d5e812a87a5d57a94200a2013027cab76a7c4863" datatype="html">\n        <source>This day last week</source>\n        <target>Este día la semana pasada</target>\n      </trans-unit>\n      <trans-unit id="d00edc936eeab6b5577401f115ca86ca2c87dc9a" datatype="html">\n        <source>Previous week</source>\n        <target>La semana pasada</target>\n      </trans-unit>\n      <trans-unit id="b036e40577baa6b918b2267d319d4b3aeaa88a5a" datatype="html">\n        <source>This week</source>\n        <target>Esta semana</target>\n      </trans-unit>\n      <trans-unit id="99ad5a6096b3fcb3f021f3779bae710cdfeb8934" datatype="html">\n        <source>This week so far</source>\n        <target>Esta semana hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="02e0243b60007368f87dc01e083f232dd025096d" datatype="html">\n        <source>Last 7 days</source>\n        <target>Los últimos 7 días</target>\n      </trans-unit>\n      <trans-unit id="c3b08b07b5ab98e7cdcf18df39355690ab7d3884" datatype="html">\n        <source>Previous month</source>\n        <target>El mes pasado</target>\n      </trans-unit>\n      <trans-unit id="1b2562c6d5aa90644e7dc91feee82e2005fceb33" datatype="html">\n        <source>This month</source>\n        <target>Este mes</target>\n      </trans-unit>\n      <trans-unit id="26b4b18c5917934abb169ba9aa490e57f7bf10b8" datatype="html">\n        <source>This month so far</source>\n        <target>Este mes hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="7668986b9f753fcd72ad4a00b1a0c4861d1f7fb8" datatype="html">\n        <source>Last 30 days</source>\n        <target>Los últimos 30 días</target>\n      </trans-unit>\n      <trans-unit id="ba1e822408d90c6fbd2989100fa648bfd5e8ee84" datatype="html">\n        <source>Last 90 days</source>\n        <target>Los últimos 90 días</target>\n      </trans-unit>\n      <trans-unit id="c3df03f899a914c4181adcdc8a3f077424f7b6e8" datatype="html">\n        <source>Last 6 months</source>\n        <target>Los últimos 6 meses</target>\n      </trans-unit>\n      <trans-unit id="7f9a92757580c9f31c309c0a3812ea429274eadf" datatype="html">\n        <source>Last 1 year</source>\n        <target>El último año</target>\n      </trans-unit>\n      <trans-unit id="5a9fede30ff65cb4b4426f6b1ed31afb67ecd7b0" datatype="html">\n        <source>Previous year</source>\n        <target>El año pasado</target>\n      </trans-unit>\n      <trans-unit id="65cefcc53d1f6445df7568e8a40c49165f1090ee" datatype="html">\n        <source>This year</source>\n        <target>Este año</target>\n      </trans-unit>\n      <trans-unit id="1f68b766944dc3865bddab765fe952b0c1c43f92" datatype="html">\n        <source>This year so far</source>\n        <target>Este año hasta ahora</target>\n      </trans-unit>\n      <trans-unit id="4d4b77e614f8043fdadef5d6d235655bb48eb311" datatype="html">\n        <source>Last 2 years</source>\n        <target>Los últimos 2 años</target>\n      </trans-unit>\n      <trans-unit id="138afa339ea6e75d25a474affe1edbcb90e00ec0" datatype="html">\n        <source>Last 5 years</source>\n        <target>Los últimos 5 años</target>\n      </trans-unit>\n      <trans-unit id="37391297bb077a6f84484930261b01a3ce38327b" datatype="html">\n        <source>No items selected.</source>\n        <target>No se ha seleccionado ningún elemento.</target>\n      </trans-unit>\n      <trans-unit id="2c1e52ee832661b4a0f570877d24661736b16af1" datatype="html">\n        <source>Deselect item to select again</source>\n        <target>Deseleccione el elemento para volver a seleccionarlo</target>\n      </trans-unit>\n      <trans-unit id="c8c9c6e5918659336824bbdda3501c66eaa79a4c" datatype="html">\n        <source>Selection limit reached</source>\n        <target>Se ha alcanzado el límite de selección</target>\n      </trans-unit>\n      <trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">\n        <source>Filter tags</source>\n        <target>Filtrar etiquetas</target>\n      </trans-unit>\n      <trans-unit id="aa00748e49c269956837d6f3acdd8d218796a8d8" datatype="html">\n        <source>Add badge</source>\n        <target>Añadir insignia</target>\n      </trans-unit>\n      <trans-unit id="4078a92d8121abdce7d8f346a88914923ec835fc" datatype="html">\n        <source>There are no items available.</source>\n        <target>No hay ningún elemento disponible.</target>\n      </trans-unit>\n      <trans-unit id="55dd9f44e64851bca3b7bfc9283a5ff36f030228" datatype="html">\n        <source>Set</source>\n        <target>Set</target>\n      </trans-unit>\n      <trans-unit id="019d4bd6a5690f0cfa0ecf346a4e6bf7f0d8debb" datatype="html">\n        <source>Remove</source>\n        <target>Remove</target>\n      </trans-unit>\n      <trans-unit id="e168fe6c468b3ad632731395ef89860274242844" datatype="html">\n        <source>Unset</source>\n        <target>Unset</target>\n      </trans-unit>\n      <trans-unit id="54a4a3132b693575728a45a5f3154ad4c9af404b" datatype="html">\n        <source>Clone</source>\n        <target>Clonar</target>\n      </trans-unit>\n      <trans-unit id="1979da7460819153e11d2078244645d94291b69c" datatype="html">\n        <source>Copy</source>\n        <target>Copiar</target>\n      </trans-unit>\n      <trans-unit id="2e5e77dbaadd6588d8bbf737139fd9806294ae28" datatype="html">\n        <source>Deep Scrub</source>\n        <target>Depuración profunda</target>\n      </trans-unit>\n      <trans-unit id="bf463b189696c19769ea263227e6c22aefafb918" datatype="html">\n        <source>Destroy</source>\n        <target>Destruir</target>\n      </trans-unit>\n      <trans-unit id="b4e94d529ff10db4d86f3f48900fa67ede3411fd" datatype="html">\n        <source>Evict</source>\n        <target>Evict</target>\n      </trans-unit>\n      <trans-unit id="3747fff7faf52b436ecff5fb8555091736d92c70" datatype="html">\n        <source>Flatten</source>\n        <target>Aplanar</target>\n      </trans-unit>\n      <trans-unit id="66fdbf32e5449cc54a3d1e19c7b8f4ea238facfb" datatype="html">\n        <source>Mark Down</source>\n        <target>Marcar para desactivar</target>\n      </trans-unit>\n      <trans-unit id="0cda3e824fb2f9c731e5a60b859dedc1fe03127e" datatype="html">\n        <source>Mark In</source>\n        <target>Marcar para incluir</target>\n      </trans-unit>\n      <trans-unit id="f833354f43cb38c5716faa8759a9bbdd1ab8f199" datatype="html">\n        <source>Mark Lost</source>\n        <target>Marcar como perdido</target>\n      </trans-unit>\n      <trans-unit id="75fb9f970ba365398c45e57bbb1019c009f6b832" datatype="html">\n        <source>Mark Out</source>\n        <target>Marcar para excluir</target>\n      </trans-unit>\n      <trans-unit id="45480c03b0a3a37ff8f6a5600a6a034b40fbaea4" datatype="html">\n        <source>Protect</source>\n        <target>Proteger</target>\n      </trans-unit>\n      <trans-unit id="e26f9cf3666aace4e524b1505c9795d76d87738d" datatype="html">\n        <source>Rename</source>\n        <target>Renombrar</target>\n      </trans-unit>\n      <trans-unit id="d5cec7468241d72cafd86ad1af6d55b09a6e3ae5" datatype="html">\n        <source>Restore</source>\n        <target>Restaurar</target>\n      </trans-unit>\n      <trans-unit id="ba073985cfd2528c77a746ed596b2f2052b973c5" datatype="html">\n        <source>Move to Trash</source>\n        <target>Mover a la papelera</target>\n      </trans-unit>\n      <trans-unit id="3ea9b96a21a499d296a7f25407da0f3df6c2d5ed" datatype="html">\n        <source>Unprotect</source>\n        <target>Desproteger</target>\n      </trans-unit>\n      <trans-unit id="024cdb2814b0cb3f4ced148f1a0b9854447cb214" datatype="html">\n        <source>Change</source>\n        <target>Change</target>\n      </trans-unit>\n      <trans-unit id="011f3e2bfc1fd8407eb5f599352665bfeb145664" datatype="html">\n        <source>Recreate</source>\n        <target>Recreate</target>\n      </trans-unit>\n      <trans-unit id="6df2dfa48bef5510c82fb43f4e71a7f9557f3d71" datatype="html">\n        <source>Expire</source>\n        <target>Expire</target>\n      </trans-unit>\n      <trans-unit id="28df1b02fd88d2deb0212bc5d7ff34cf9492fa54" datatype="html">\n        <source>Deleted</source>\n        <target>Suprimido</target>\n      </trans-unit>\n      <trans-unit id="80e3b490720757978c99a7b5af3885faf202b955" datatype="html">\n        <source>Added</source>\n        <target>Added</target>\n      </trans-unit>\n      <trans-unit id="1aa4883bc4f1352f7a0bdd94810a9bf6dc22bd02" datatype="html">\n        <source>Removed</source>\n        <target>Removed</target>\n      </trans-unit>\n      <trans-unit id="402f3ee47f98fbbc68530239b1ddcbb9e96a460c" datatype="html">\n        <source>Edited</source>\n        <target>Edited</target>\n      </trans-unit>\n      <trans-unit id="96d56ec71c6e78cb4d6204c4a9359a3d38fcdb59" datatype="html">\n        <source>Canceled</source>\n        <target>Canceled</target>\n      </trans-unit>\n      <trans-unit id="a3318a2ee2bd0064b6b9ff72a4018b679ec63125" datatype="html">\n        <source>Cloned</source>\n        <target>Clonado</target>\n      </trans-unit>\n      <trans-unit id="ef90545bc832876c0d7f9a10363c75137472bbb5" datatype="html">\n        <source>Copied</source>\n        <target>Copiado</target>\n      </trans-unit>\n      <trans-unit id="5a13d3834133e09544ec93885662f181372dcf46" datatype="html">\n        <source>Deep Scrubbed</source>\n        <target>Deep Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="7c9efb91434a5c15e9579c0b31c8e184b8c8240d" datatype="html">\n        <source>Destroyed</source>\n        <target>Destroyed</target>\n      </trans-unit>\n      <trans-unit id="647059bf3ea098fffedf92ddfad792bb3daa3c95" datatype="html">\n        <source>Flattened</source>\n        <target>Aplanado</target>\n      </trans-unit>\n      <trans-unit id="8df71e952319eafa71c8e6ef6144b780af8813ff" datatype="html">\n        <source>Marked Down</source>\n        <target>Marked Down</target>\n      </trans-unit>\n      <trans-unit id="25658f5a080a1cab3b91e17b756b1d1dc46bb9b3" datatype="html">\n        <source>Marked In</source>\n        <target>Marked In</target>\n      </trans-unit>\n      <trans-unit id="ebcf306036a6c5579df9448f77eca98d491db245" datatype="html">\n        <source>Marked Lost</source>\n        <target>Marked Lost</target>\n      </trans-unit>\n      <trans-unit id="3a8803369ac18be3ad762384b9fda095fe2a6dcc" datatype="html">\n        <source>Marked Out</source>\n        <target>Marked Out</target>\n      </trans-unit>\n      <trans-unit id="0fe2a62ea7c609fa8326ee6d38060bc5ba8bf34f" datatype="html">\n        <source>Protected</source>\n        <target>Protected</target>\n      </trans-unit>\n      <trans-unit id="69b0446c6c2411c4fe01e411b8ceec72d4044fb4" datatype="html">\n        <source>Purged</source>\n        <target>Limpiado</target>\n      </trans-unit>\n      <trans-unit id="d53de1a61bd51c815dc374c7f97e4ee69230e412" datatype="html">\n        <source>Renamed</source>\n        <target>Renamed</target>\n      </trans-unit>\n      <trans-unit id="86fc6cae82c095f14105eb8a61d7b3fa948304b7" datatype="html">\n        <source>Restored</source>\n        <target>Restaurado</target>\n      </trans-unit>\n      <trans-unit id="e87dd0fd35460cb743046db918dfce2137b5977a" datatype="html">\n        <source>Reweighted</source>\n        <target>Reweighted</target>\n      </trans-unit>\n      <trans-unit id="dc21fd6547f2325c67f6deff925f29eb07a2db3e" datatype="html">\n        <source>Rolled back</source>\n        <target>Revertido</target>\n      </trans-unit>\n      <trans-unit id="15dec4c2d73a516c10aef90aeeea3364fa794615" datatype="html">\n        <source>Scrubbed</source>\n        <target>Scrubbed</target>\n      </trans-unit>\n      <trans-unit id="8dc560ded67482f109a98e0638851ad1d37188b3" datatype="html">\n        <source>Showed</source>\n        <target>Showed</target>\n      </trans-unit>\n      <trans-unit id="197259b7ea76f15c6d0a64b075a673fd4112ada7" datatype="html">\n        <source>Moved to Trash</source>\n        <target>Moved to Trash</target>\n      </trans-unit>\n      <trans-unit id="8fb15cb102cd75b562680290b7e04c44d80018f2" datatype="html">\n        <source>Unprotected</source>\n        <target>Unprotected</target>\n      </trans-unit>\n      <trans-unit id="8588eafa498262a1cbb5043ad68cf0ff669c4f10" datatype="html">\n        <source>Recreated</source>\n        <target>Recreated</target>\n      </trans-unit>\n      <trans-unit id="ffde7468d7b5cad6990095ed68ddee3d67cd02f8" datatype="html">\n        <source>Expired</source>\n        <target>Expired</target>\n      </trans-unit>\n      <trans-unit id="4f20f2d5a6882190892e58b85f6ccbedfa737952" datatype="html">\n        <source>Yes</source>\n        <target>Sí</target>\n      </trans-unit>\n      <trans-unit id="3d3ae7deebc5949b0c1c78b9847886a94321d9fd" datatype="html">\n        <source>No</source>\n        <target>No</target>\n      </trans-unit>\n      <trans-unit id="baf918eed9d4050cdad2acebc0f27b6eaf8e3fcd" datatype="html">\n        <source>Required rules for passwords:</source>\n        <target>Required rules for passwords:</target>\n      </trans-unit>\n      <trans-unit id="40f61909e1f017c4652e64b055089beef19cf871" datatype="html">\n        <source>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </source>\n        <target>Must contain at least \n          <x id="INTERPOLATION" equiv-text="{{length}}"/> characters\n        </target>\n      </trans-unit>\n      <trans-unit id="f4f5dbb3a05b5f38dab47ef38dad88a4574a765a" datatype="html">\n        <source>Must not be the same as the previous one</source>\n        <target>Must not be the same as the previous one</target>\n      </trans-unit>\n      <trans-unit id="607370e07b50087c196a5fcea9184e3d693226b2" datatype="html">\n        <source>Cannot contain the username</source>\n        <target>Cannot contain the username</target>\n      </trans-unit>\n      <trans-unit id="e6e355eab2596251aaa42623b41e6026d5c03e3b" datatype="html">\n        <source>Cannot contain any configured keyword</source>\n        <target>Cannot contain any configured keyword</target>\n      </trans-unit>\n      <trans-unit id="394bcd6d5e4da75b720c4d28f94f2aef7bb38355" datatype="html">\n        <source>Cannot contain any repetitive characters e.g. "aaa"</source>\n        <target>Cannot contain any repetitive characters e.g. "aaa"</target>\n      </trans-unit>\n      <trans-unit id="030e61e0bcf2536fb047645db6182d43e9fca9e9" datatype="html">\n        <source>Cannot contain any sequential characters e.g. "abc"</source>\n        <target>Cannot contain any sequential characters e.g. "abc"</target>\n      </trans-unit>\n      <trans-unit id="99fa0b67376d40142bd4d3ace3344abf4f98b6a5" datatype="html">\n        <source>Your matcher seems to match no currently defined rule or active alert.</source>\n        <target>Your matcher seems to match no currently defined rule or active alert.</target>\n      </trans-unit>\n      <trans-unit id="7e284852732c303eb1f47de9aca2569e41aeffed" datatype="html">\n        <source>no active alerts</source>\n        <target>no active alerts</target>\n      </trans-unit>\n      <trans-unit id="b8042829e4fbe7b09fd9bac9fa0ecf5cc1802fee" datatype="html">\n        <source>1 active alert</source>\n        <target>1 active alert</target>\n      </trans-unit>\n      <trans-unit id="e24adce97669cb0fc74cc13fdc14179b6f78ea5e" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{n}}"/> active alerts\n        </target>\n      </trans-unit>\n      <trans-unit id="d8fb058ff5883731d38a132da4ca45cfe8d719a3" datatype="html">\n        <source>Matches 1 rule</source>\n        <target>Matches 1 rule</target>\n      </trans-unit>\n      <trans-unit id="90aaef24d192e67c3fbc2ec6f8bfaff211cea128" datatype="html">\n        <source>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </source>\n        <target>Matches \n          <x id="INTERPOLATION" equiv-text="{{n}}"/> rules\n        </target>\n      </trans-unit>\n      <trans-unit id="f4685dc581e18244cd410f1057a8c56a9dbfe8df" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rules}}"/> with \n          <x id="INTERPOLATION_1" equiv-text="{{alerts}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fd98fb2a0f24ba72cde0787dd3f02cfc17de469" datatype="html">\n        <source>Quality of Service</source>\n        <target>Calidad del servicio</target>\n      </trans-unit>\n      <trans-unit id="2c53f3ce2c6fff9025a7b41cc334521725da6e7b" datatype="html">\n        <source>BPS Limit</source>\n        <target>Límite de BPS</target>\n      </trans-unit>\n      <trans-unit id="e897624a392419386b035bcd8529337e262fc41d" datatype="html">\n        <source>The desired limit of IO bytes per second.</source>\n        <target>El límite deseado de bytes de E/S por segundo.</target>\n      </trans-unit>\n      <trans-unit id="dc56f77e4507da7e86a3accd0a2a7099a838d539" datatype="html">\n        <source>IOPS Limit</source>\n        <target>Límite de IOPS</target>\n      </trans-unit>\n      <trans-unit id="141c3f6eadbb35b0e17b2f847e4cac23240a6ea9" datatype="html">\n        <source>The desired limit of IO operations per second.</source>\n        <target>El límite deseado de operaciones de E/S por segundo.</target>\n      </trans-unit>\n      <trans-unit id="3b3b101f16c38806e984b157e0cf22cd21451122" datatype="html">\n        <source>Read BPS Limit</source>\n        <target>Límite de BPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="87835fabb6a645873f3829a450ca1d58f97754f2" datatype="html">\n        <source>The desired limit of read bytes per second.</source>\n        <target>El límite deseado de bytes de lectura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="28b485e700df46d70b96666099f714e3ae9e5c2e" datatype="html">\n        <source>Read IOPS Limit</source>\n        <target>Límite de IOPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="5907bd1a5cf3e20e740bca676cb1538372e1f9ff" datatype="html">\n        <source>The desired limit of read operations per second.</source>\n        <target>El límite deseado de operaciones de lectura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="07317121f0b194987d4dee8b322f521ac17bf124" datatype="html">\n        <source>Write BPS Limit</source>\n        <target>Límite de BPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="4022c78bd9132ca2ec67927f8484c437d1d9b6fd" datatype="html">\n        <source>The desired limit of write bytes per second.</source>\n        <target>El límite deseado de bytes de escritura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="52c22c19f98ff3a09bd811292954a889b93d28b7" datatype="html">\n        <source>Write IOPS Limit</source>\n        <target>Límite de IOPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="0ed62e3fd8654b3191fc7fa959ad3f10f1ea773a" datatype="html">\n        <source>The desired limit of write operations per second.</source>\n        <target>El límite deseado de operaciones de escritura por segundo.</target>\n      </trans-unit>\n      <trans-unit id="d90c99d77864f21f932ee1369019f400c4ad0e2d" datatype="html">\n        <source>BPS Burst</source>\n        <target>Ráfaga de BPS</target>\n      </trans-unit>\n      <trans-unit id="29c32192f4d185139aaaf6d3a766a3411dfeabbe" datatype="html">\n        <source>The desired burst limit of IO bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de E/S.</target>\n      </trans-unit>\n      <trans-unit id="b988b90489e899941e196c3dd0ecc22e37540224" datatype="html">\n        <source>IOPS Burst</source>\n        <target>Ráfaga de IOPS</target>\n      </trans-unit>\n      <trans-unit id="02c5de8ff11870f1b3896f2b45637ce0dba1ed4b" datatype="html">\n        <source>The desired burst limit of IO operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de E/S.</target>\n      </trans-unit>\n      <trans-unit id="7a160538129b37cf595f1651f28b5fac62fbc0f8" datatype="html">\n        <source>Read BPS Burst</source>\n        <target>Ráfaga de BPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="b573a5df16a53b9947288461bc24e6a0eb4341d6" datatype="html">\n        <source>The desired burst limit of read bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de lectura.</target>\n      </trans-unit>\n      <trans-unit id="1d5b8c2a0c653651cc4ca4b8fed9456f449220d1" datatype="html">\n        <source>Read IOPS Burst</source>\n        <target>Ráfaga de IOPS de lectura</target>\n      </trans-unit>\n      <trans-unit id="20b199f9d4a8d08ffefec66040e27639ec221512" datatype="html">\n        <source>The desired burst limit of read operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de lectura.</target>\n      </trans-unit>\n      <trans-unit id="824525ae57992aee629ddffcd500a8b77087ddec" datatype="html">\n        <source>Write BPS Burst</source>\n        <target>Ráfaga de BPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="a90aac4050a5d79765da5e1186909f6d4d7f981d" datatype="html">\n        <source>The desired burst limit of write bytes.</source>\n        <target>El límite deseado de ráfaga de bytes de escritura.</target>\n      </trans-unit>\n      <trans-unit id="35a8c6e6c249c7d16e26aa7c4ef97c06db405070" datatype="html">\n        <source>Write IOPS Burst</source>\n        <target>Ráfaga de IOPS de escritura</target>\n      </trans-unit>\n      <trans-unit id="b356abd41d7e9eea4d20c03d2e6892b6d435ecbd" datatype="html">\n        <source>The desired burst limit of write operations.</source>\n        <target>El límite deseado de ráfaga de operaciones de escritura.</target>\n      </trans-unit>\n      <trans-unit id="24c4d50fe8567de381a20a1745f1b6d37eacaa90" datatype="html">\n        <source>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </source>\n        <target>Failed to \n          <x id="INTERPOLATION" equiv-text="{{failure}}"/>\n          <x id="INTERPOLATION_1" equiv-text="{{metadata}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="f54b6f09b390d5ade0e354f6c7d4743c10a315cc" datatype="html">\n        <source>Executing</source>\n        <target>Ejecutando</target>\n      </trans-unit>\n      <trans-unit id="5cdfe3e3330ea42bfd29c540dbd268bee97d364d" datatype="html">\n        <source>execute</source>\n        <target>ejecutar</target>\n      </trans-unit>\n      <trans-unit id="6e98e243518daa88be30330fcdbd2d10f8eae4d7" datatype="html">\n        <source>Executed</source>\n        <target>Ejecutado</target>\n      </trans-unit>\n      <trans-unit id="24b09aa5bd909273a023d2d788a2673325c77e31" datatype="html">\n        <source>unknown task</source>\n        <target>tarea desconocida</target>\n      </trans-unit>\n      <trans-unit id="114b5f92b9192b229ffc9a450319a97ccca2aa5c" datatype="html">\n        <source>Creating</source>\n        <target>Creando</target>\n      </trans-unit>\n      <trans-unit id="56695b69d27437ada580a187958407e7c856d46e" datatype="html">\n        <source>create</source>\n        <target>crear</target>\n      </trans-unit>\n      <trans-unit id="9db60170ef3b3b41a863e7d5ee7cec10919b9141" datatype="html">\n        <source>Updating</source>\n        <target>Actualizando</target>\n      </trans-unit>\n      <trans-unit id="64412640835b7d25247cb254d4f911366c0e6862" datatype="html">\n        <source>update</source>\n        <target>actualizar</target>\n      </trans-unit>\n      <trans-unit id="416193bb373d59477458b00e5922d755e2e2cacd" datatype="html">\n        <source>Deleting</source>\n        <target>Suprimiendo</target>\n      </trans-unit>\n      <trans-unit id="d07a282afc7fbdb39cea6e1c9b544882a7260a86" datatype="html">\n        <source>Adding</source>\n        <target>Adding</target>\n      </trans-unit>\n      <trans-unit id="a11ec4e640f241329943237d2a3cceaa4823658e" datatype="html">\n        <source>add</source>\n        <target>add</target>\n      </trans-unit>\n      <trans-unit id="ea1c70b874904216cc5af24bd7cb3dab2d074d42" datatype="html">\n        <source>Removing</source>\n        <target>Removing</target>\n      </trans-unit>\n      <trans-unit id="4da487aec5a29ce4372e7b512227cd665b01fe6f" datatype="html">\n        <source>remove</source>\n        <target>remove</target>\n      </trans-unit>\n      <trans-unit id="0e21237afdc84ec360c374fa678d9b1cfaa334f9" datatype="html">\n        <source>Importing</source>\n        <target>Importing</target>\n      </trans-unit>\n      <trans-unit id="c6b4128c006f4cc0564137e1a1482b5c432aa347" datatype="html">\n        <source>import</source>\n        <target>import</target>\n      </trans-unit>\n      <trans-unit id="3b9f4138abbca0fd66db1f7332f4b54e2a6d916d" datatype="html">\n        <source>Imported</source>\n        <target>Imported</target>\n      </trans-unit>\n      <trans-unit id="3f757cfc3749ebb5d4462017cb60138ca082f15f" datatype="html">\n        <source>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="a6c681e6130fe440ae40de99a405fcf5c7eefee1" datatype="html">\n        <source>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>RBD snapshot \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="2bf18ddf3785f7afb4f01dcf63d3d8c40f4bfba5" datatype="html">\n        <source>mirroring site name</source>\n        <target>mirroring site name</target>\n      </trans-unit>\n      <trans-unit id="167b73bb24b4695614ce0fc567b7a45080457a44" datatype="html">\n        <source>bootstrap token</source>\n        <target>bootstrap token</target>\n      </trans-unit>\n      <trans-unit id="4fb54a0291f49583c317d4a3690239141b5a8f68" datatype="html">\n        <source>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror mode for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="6621ab6e122a149326a1e48e9051a41e7f203cf6" datatype="html">\n        <source>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>mirror peer for pool \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="db15adc778317d551232fe712eb03a2c1eac4a43" datatype="html">\n        <source>all dashboards</source>\n        <target>all dashboards</target>\n      </trans-unit>\n      <trans-unit id="6c19652df9249c60827044ed6274933cab180c63" datatype="html">\n        <source>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </source>\n        <target>OSDs (DriveGroups: \n          <x id="INTERPOLATION" equiv-text="{{tracking_id}}"/>)\n        </target>\n      </trans-unit>\n      <trans-unit id="1b559dbd9cc9664fd788c2da9a10d3abafe066cb" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="8fc28e1103d9f2ef47b9fff9a4f74e8365c7cf19" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="1cdc7ea44fcb85d0cfcf6e7379d625d8674a8fbe" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="460f07780389d24c6a540c007c7367a56afad585" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> is busy.\n        </target>\n      </trans-unit>\n      <trans-unit id="1ff7676ad1e991102224540a32dd44ad1ab88aa8" datatype="html">\n        <source>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </source>\n        <target>\n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> contains snapshots.\n        </target>\n      </trans-unit>\n      <trans-unit id="c3a1dcca2b2ba20fbe39e2441e7bb1cf9c20cdf3" datatype="html">\n        <source>Cloning</source>\n        <target>Clonando</target>\n      </trans-unit>\n      <trans-unit id="b5fa4e0a3a279dee5b6bf7b823e54387f7c79994" datatype="html">\n        <source>clone</source>\n        <target>clonar</target>\n      </trans-unit>\n      <trans-unit id="29b7452e8367af9aa8fa828f16ff94c3530e7a1a" datatype="html">\n        <source>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </source>\n        <target>Snapshot of \n          <x id="INTERPOLATION" equiv-text="{{rbd_name}}"/> must be protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="369f93b9a07a9465f7a261e9f0021b6cfa7180c5" datatype="html">\n        <source>Copying</source>\n        <target>Copiando</target>\n      </trans-unit>\n      <trans-unit id="37584f889855d153a106f5dffe23d21f9453c8ff" datatype="html">\n        <source>copy</source>\n        <target>copiar</target>\n      </trans-unit>\n      <trans-unit id="6ea9e313a04ef59222feaadfe84e97b4c69d7e9e" datatype="html">\n        <source>Flattening</source>\n        <target>Aplanando</target>\n      </trans-unit>\n      <trans-unit id="1f57593581b64d2d4c70eab1736bd9bccc66a7dc" datatype="html">\n        <source>flatten</source>\n        <target>aplanar</target>\n      </trans-unit>\n      <trans-unit id="d990ef9680cd23bbe652c37eb46bf038cfee80ad" datatype="html">\n        <source>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </source>\n        <target>Name is already used by \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/>.\n        </target>\n      </trans-unit>\n      <trans-unit id="a101745d080ef65c09bd5fafc796f94ddb9f9d60" datatype="html">\n        <source>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </source>\n        <target>Cannot unprotect \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it contains child images.\n        </target>\n      </trans-unit>\n      <trans-unit id="647968f4cde7786cd53ec8e6aa9802ac6824a262" datatype="html">\n        <source>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </source>\n        <target>Cannot delete \n          <x id="INTERPOLATION" equiv-text="{{snap_name}}"/> because it\'s protected.\n        </target>\n      </trans-unit>\n      <trans-unit id="57ddd3e15cf0ce974356b757451f50116a27272b" datatype="html">\n        <source>Rolling back</source>\n        <target>Revirtiendo</target>\n      </trans-unit>\n      <trans-unit id="a8913a3a5ee61f2598b5f0432cb9b20cdd60548e" datatype="html">\n        <source>rollback</source>\n        <target>revertir</target>\n      </trans-unit>\n      <trans-unit id="de8676f0017c9db6c49388cd7d63cd0a83a0c1dc" datatype="html">\n        <source>Moving</source>\n        <target>Moviendo</target>\n      </trans-unit>\n      <trans-unit id="2d810712308ae63cb795d809687a3254ef7a2f05" datatype="html">\n        <source>move</source>\n        <target>mover</target>\n      </trans-unit>\n      <trans-unit id="f3ba995236e5c1cc77686108980c099a90aec754" datatype="html">\n        <source>Moved</source>\n        <target>Movido</target>\n      </trans-unit>\n      <trans-unit id="d0422169252d132624a20f267b5c29f28cb53ebe" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' to trash\n        </target>\n      </trans-unit>\n      <trans-unit id="b603e2dfed9808222fbcb5a7c5f4da2cc6ae2aae" datatype="html">\n        <source>Could not find image.</source>\n        <target>No se encuentra la imagen.</target>\n      </trans-unit>\n      <trans-unit id="398debe73006b1fe5177ed81d2e7b0cc852f61ec" datatype="html">\n        <source>Restoring</source>\n        <target>Restaurando</target>\n      </trans-unit>\n      <trans-unit id="c252806fb400e79bac194696632c9362742b1538" datatype="html">\n        <source>restore</source>\n        <target>restaurar</target>\n      </trans-unit>\n      <trans-unit id="30b8bcf69b3f1754b7abba173fd806cfcea4cb04" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' into \'\n          <x id="INTERPOLATION_1" equiv-text="{{new_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="13b7b241cef989fe0932ddd180e757658e1817e7" datatype="html">\n        <source>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </source>\n        <target>Image name \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\' is already in use.\n        </target>\n      </trans-unit>\n      <trans-unit id="cc1cee12c833e8fbbef28a2a7c449dc530da912d" datatype="html">\n        <source>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </source>\n        <target>image \'\n          <x id="INTERPOLATION" equiv-text="{{id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="38e5f47f8bef505652f3e87f46efb00ead1350a3" datatype="html">\n        <source>Purging</source>\n        <target>Limpiando</target>\n      </trans-unit>\n      <trans-unit id="e4e57747f123f0fe6fe3a0ecf608f8bc287dec0c" datatype="html">\n        <source>purge</source>\n        <target>limpiar</target>\n      </trans-unit>\n      <trans-unit id="1560d58fdf39663929653250d45f5b1dfe078fea" datatype="html">\n        <source>all pools</source>\n        <target>todos los repositorios</target>\n      </trans-unit>\n      <trans-unit id="1ac3dc50c2c3d86e98bc0967ee1e696810a2d3aa" datatype="html">\n        <source>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </source>\n        <target>images from \n          <x id="INTERPOLATION" equiv-text="{{message}}"/>\n        </target>\n      </trans-unit>\n      <trans-unit id="02278abbb044ece04ab6bd80bd2060198d31d83b" datatype="html">\n        <source>Cannot disable mirroring because it contains a peer.</source>\n        <target>No es posible inhabilitar la duplicación porque contiene un par</target>\n      </trans-unit>\n      <trans-unit id="5c4525a1b76ca54d1aadeaecfdb83aedc2eec6e0" datatype="html">\n        <source>Identifying</source>\n        <target>Identifying</target>\n      </trans-unit>\n      <trans-unit id="ffd067e54a061d1f27cb35f0cf67ef7f29e19111" datatype="html">\n        <source>identify</source>\n        <target>identify</target>\n      </trans-unit>\n      <trans-unit id="7c921f339274688c22ba1acac7af6b097ad3599d" datatype="html">\n        <source>Identified</source>\n        <target>Identified</target>\n      </trans-unit>\n      <trans-unit id="3307492c27c2150cd26c514030444e11fd61089f" datatype="html">\n        <source>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>device \'\n          <x id="INTERPOLATION" equiv-text="{{device}}"/>\' on host \'\n          <x id="INTERPOLATION_1" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="f123ae1fc3b000e5d08e766dd78bff162afe709d" datatype="html">\n        <source>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </source>\n        <target>host \'\n          <x id="INTERPOLATION" equiv-text="{{hostname}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="c1af76189dcefd094da2bc1a4a63968f3bab5789" datatype="html">\n        <source>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </source>\n        <target>OSD \'\n          <x id="INTERPOLATION" equiv-text="{{svc_id}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="dfe70001dc590a9e12512cbb206aa29fb36fd00b" datatype="html">\n        <source>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </source>\n        <target>pool \'\n          <x id="INTERPOLATION" equiv-text="{{pool_name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="59630daf2f4786690fae0cdad55da8887236eabe" datatype="html">\n        <source>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>erasure code profile \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="79052d6c47258dc19ada12dbb2563761102b6f1d" datatype="html">\n        <source>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </source>\n        <target>crush rule \'\n          <x id="INTERPOLATION" equiv-text="{{name}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="369462e5e018360e0600bb570866201ad5c3c8a8" datatype="html">\n        <source>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </source>\n        <target>target \'\n          <x id="INTERPOLATION" equiv-text="{{target_iqn}}"/>\'\n        </target>\n      </trans-unit>\n      <trans-unit id="cf41310917cb19b335e5a950972bbff2346f7a47" datatype="html">\n        <source>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </source>\n        <target>NFS \n          <x id="INTERPOLATION" equiv-text="{{nfs_id}}"/>\n        </target>\n      </trans-unit>\n    </body>\n  </file>\n</xliff>'},"z+Ro":function(t,e,n){"use strict";function a(t){return t&&"function"==typeof t.schedule}n.d(e,"a",(function(){return a}))},"z/SZ":function(t,e,n){"use strict";n.d(e,"a",(function(){return s}));var a=n("8Y7J"),r=n("hpHm");class o{constructor(t,e,n){this.nodes=t,this.viewRef=e,this.componentRef=n}}class i{constructor(t,e,n,r,o,i,s,c){this._viewContainerRef=t,this._renderer=e,this._elementRef=n,this._injector=r,this._componentFactoryResolver=o,this._ngZone=i,this._applicationRef=s,this._posService=c,this.onBeforeShow=new a.EventEmitter,this.onShown=new a.EventEmitter,this.onBeforeHide=new a.EventEmitter,this.onHidden=new a.EventEmitter,this._providers=[],this._isHiding=!1,this.containerDefaultSelector="body",this._listenOpts={},this._globalListener=Function.prototype}get isShown(){return!this._isHiding&&!!this._componentRef}attach(t){return this._componentFactory=this._componentFactoryResolver.resolveComponentFactory(t),this}to(t){return this.container=t||this.container,this}position(t){return this.attachment=t.attachment||this.attachment,this._elementRef=t.target||this._elementRef,this}provide(t){return this._providers.push(t),this}show(t={}){if(this._subscribePositioning(),this._innerComponent=null,!this._componentRef){this.onBeforeShow.emit(),this._contentRef=this._getContentRef(t.content,t.context,t.initialState);const e=a.Injector.create({providers:this._providers,parent:this._injector});this._componentRef=this._componentFactory.create(e,this._contentRef.nodes),this._applicationRef.attachView(this._componentRef.hostView),this.instance=this._componentRef.instance,Object.assign(this._componentRef.instance,t),this.container instanceof a.ElementRef&&this.container.nativeElement.appendChild(this._componentRef.location.nativeElement),"string"==typeof this.container&&"undefined"!=typeof document&&(document.querySelector(this.container)||document.querySelector(this.containerDefaultSelector)).appendChild(this._componentRef.location.nativeElement),!this.container&&this._elementRef&&this._elementRef.nativeElement.parentElement&&this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement),this._contentRef.componentRef&&(this._innerComponent=this._contentRef.componentRef.instance,this._contentRef.componentRef.changeDetectorRef.markForCheck(),this._contentRef.componentRef.changeDetectorRef.detectChanges()),this._componentRef.changeDetectorRef.markForCheck(),this._componentRef.changeDetectorRef.detectChanges(),this.onShown.emit(this._componentRef.instance)}return this._registerOutsideClick(),this._componentRef}hide(){if(!this._componentRef)return this;this._posService.deletePositionElement(this._componentRef.location),this.onBeforeHide.emit(this._componentRef.instance);const t=this._componentRef.location.nativeElement;return t.parentNode.removeChild(t),this._contentRef.componentRef&&this._contentRef.componentRef.destroy(),this._componentRef.destroy(),this._viewContainerRef&&this._contentRef.viewRef&&this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef)),this._contentRef.viewRef&&this._contentRef.viewRef.destroy(),this._contentRef=null,this._componentRef=null,this._removeGlobalListener(),this.onHidden.emit(),this}toggle(){this.isShown?this.hide():this.show()}dispose(){this.isShown&&this.hide(),this._unsubscribePositioning(),this._unregisterListenersFn&&this._unregisterListenersFn()}listen(t){this.triggers=t.triggers||this.triggers,this._listenOpts.outsideClick=t.outsideClick,this._listenOpts.outsideEsc=t.outsideEsc,t.target=t.target||this._elementRef.nativeElement;const e=this._listenOpts.hide=()=>t.hide?t.hide():void this.hide(),n=this._listenOpts.show=e=>{t.show?t.show(e):this.show(e),e()};return this._unregisterListenersFn=Object(r.e)(this._renderer,{target:t.target,triggers:t.triggers,show:n,hide:e,toggle:t=>{this.isShown?e():n(t)}}),this}_removeGlobalListener(){this._globalListener&&(this._globalListener(),this._globalListener=null)}attachInline(t,e){return this._inlineViewRef=t.createEmbeddedView(e),this}_registerOutsideClick(){if(this._componentRef&&this._componentRef.location){if(this._listenOpts.outsideClick){const t=this._componentRef.location.nativeElement;setTimeout(()=>{this._globalListener=Object(r.h)(this._renderer,{targets:[t,this._elementRef.nativeElement],outsideClick:this._listenOpts.outsideClick,hide:()=>this._listenOpts.hide()})})}if(this._listenOpts.outsideEsc){const t=this._componentRef.location.nativeElement;this._globalListener=Object(r.g)(this._renderer,{targets:[t,this._elementRef.nativeElement],outsideEsc:this._listenOpts.outsideEsc,hide:()=>this._listenOpts.hide()})}}}getInnerComponent(){return this._innerComponent}_subscribePositioning(){!this._zoneSubscription&&this.attachment&&(this.onShown.subscribe(()=>{this._posService.position({element:this._componentRef.location,target:this._elementRef,attachment:this.attachment,appendToBody:"body"===this.container})}),this._zoneSubscription=this._ngZone.onStable.subscribe(()=>{this._componentRef&&this._posService.calcPosition()}))}_unsubscribePositioning(){this._zoneSubscription&&(this._zoneSubscription.unsubscribe(),this._zoneSubscription=null)}_getContentRef(t,e,n){if(!t)return new o([]);if(t instanceof a.TemplateRef){if(this._viewContainerRef){const n=this._viewContainerRef.createEmbeddedView(t,e);return n.markForCheck(),new o([n.rootNodes],n)}const n=t.createEmbeddedView({});return this._applicationRef.attachView(n),new o([n.rootNodes],n)}if("function"==typeof t){const e=this._componentFactoryResolver.resolveComponentFactory(t),r=a.Injector.create({providers:this._providers,parent:this._injector}),i=e.create(r);return Object.assign(i.instance,n),this._applicationRef.attachView(i.hostView),new o([[i.location.nativeElement]],i.hostView,i)}return new o([[this._renderer.createText(`${t}`)]])}}class s{constructor(t,e,n,a,r){this._componentFactoryResolver=t,this._ngZone=e,this._injector=n,this._posService=a,this._applicationRef=r}createLoader(t,e,n){return new i(e,n,t,this._injector,this._componentFactoryResolver,this._ngZone,this._applicationRef,this._posService)}}},z1FC:function(t,e,n){!function(t){"use strict";function e(t,e,n,a){var r={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n míut","'iens míut"],mm:[t+" míuts",t+" míuts"],h:["'n þora","'iensa þora"],hh:[t+" þoras",t+" þoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return a?r[n][0]:e?r[n][0]:r[n][1]}t.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".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(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,n){return t>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z3Vd:function(t,e,n){!function(t){"use strict";var e="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(t,n,a,r){var o=function(t){var n=Math.floor(t%1e3/100),a=Math.floor(t%100/10),r=t%10,o="";return n>0&&(o+=e[n]+"vatlh"),a>0&&(o+=(""!==o?" ":"")+e[a]+"maH"),r>0&&(o+=(""!==o?" ":"")+e[r]),""===o?"pagh":o}(t);switch(a){case"ss":return o+" lup";case"mm":return o+" tup";case"hh":return o+" rep";case"dd":return o+" jaj";case"MM":return o+" jar";case"yy":return o+" DIS"}}t.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".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’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"},past:function(t){var e=t;return-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu’":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n("wd/R"))},z5nN:function(t,e,n){"use strict";n.d(e,"b",(function(){return c})),n.d(e,"a",(function(){return g}));var a=n("8Y7J"),r=n("LqlI"),o=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function i(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,2,"div",[["role","document"]],[[8,"className",0]],null,null,null,null)),(t()(),a["ɵeld"](1,0,null,null,1,"div",[["class","modal-content"]],null,null,null,null,null)),a["ɵncd"](null,0)],null,(function(t,e){var n=e.component;t(e,0,0,"modal-dialog"+(n.config.class?" "+n.config.class:""))}))}function s(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"modal-container",[["class","modal"],["role","dialog"],["tabindex","-1"]],[[1,"aria-modal",0]],[[null,"click"],["window","keydown.esc"]],(function(t,e,n){var r=!0;return"click"===e&&(r=!1!==a["ɵnov"](t,1).onClick(n)&&r),"window:keydown.esc"===e&&(r=!1!==a["ɵnov"](t,1).onEsc(n)&&r),r}),i,o)),a["ɵdid"](1,245760,null,0,r.d,[r.f,a.ElementRef,a.Renderer2],null,null)],(function(t,e){t(e,1,0)}),(function(t,e){t(e,0,0,!0)}))}var c=a["ɵccf"]("modal-container",r.d,s,{},{},["*"]),l=a["ɵcrt"]({encapsulation:2,styles:[],data:{}});function d(t){return a["ɵvid"](0,[],null,null)}function u(t){return a["ɵvid"](0,[(t()(),a["ɵeld"](0,0,null,null,1,"bs-modal-backdrop",[["class","modal-backdrop"]],null,null,null,d,l)),a["ɵdid"](1,114688,null,0,r.c,[a.ElementRef,a.Renderer2],null,null)],(function(t,e){t(e,1,0)}),null)}var g=a["ɵccf"]("bs-modal-backdrop",r.c,u,{},{},[])},z6cu:function(t,e,n){"use strict";n.d(e,"a",(function(){return r}));var a=n("HDdC");function r(t,e){return new a.a(e?n=>e.schedule(o,0,{error:t,subscriber:n}):e=>e.error(t))}function o({error:t,subscriber:e}){e.error(t)}},zBJ4:function(t,e,n){var a=n("2oRo"),r=n("hh1v"),o=a.document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},zEVN:function(t,e,n){var a=n("Gi0A"),r=n("sEf8"),o=n("mdPL"),i=o&&o.isMap,s=i?r(i):a;t.exports=s},zKZe:function(t,e,n){var a=n("I+eb"),r=n("YNrV");a({target:"Object",stat:!0,forced:Object.assign!==r},{assign:r})},zUnb:function(t,e,n){"use strict";n.r(e);var a=n("tAZD"),r=n.n(a),o=n("SVse"),i=n("8Y7J");function s(){return localStorage.getItem("access_token")}const c=t=>{t=t||"en-US";try{return n("F+uO")(`./messages.${t}.xlf`).default}catch(e){return[]}};class l{}class d{constructor(){}}var u=n("EApP"),g=i["ɵcrt"]({encapsulation:2,styles:[],data:{animation:[{type:7,name:"flyInOut",definitions:[{type:0,name:"inactive",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:0,name:"active",styles:{type:6,styles:{opacity:1},offset:null},options:void 0},{type:0,name:"removed",styles:{type:6,styles:{opacity:0},offset:null},options:void 0},{type:1,expr:"inactive => active",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null},{type:1,expr:"active => removed",animation:{type:4,styles:null,timings:"{{ easeTime }}ms {{ easing }}"},options:null}],options:{}}]}});function f(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"button",[["aria-label","Close"],["class","toast-close-button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.remove()&&a),a}),null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["×"]))],null,null)}function p(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](1,null,["[","]"]))],null,(function(t,e){t(e,1,0,e.component.duplicatesCount+1)}))}function m(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"div",[],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,p)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,3,0,e.component.duplicatesCount)}),(function(t,e){var n=e.component;t(e,0,0,n.options.titleClass,n.title),t(e,1,0,n.title)}))}function h(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message)}))}function b(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[["aria-live","polite"],["role","alertdialog"]],[[8,"className",0],[1,"aria-label",0]],null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,n.options.messageClass,n.message),t(e,1,0,n.message)}))}function y(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,0,"div",[["class","toast-progress"]],[[4,"width",null]],null,null,null,null))],null,(function(t,e){t(e,1,0,e.component.width+"%")}))}function _(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,f)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,m)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,h)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,b)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,y)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.options.closeButton),t(e,3,0,n.title),t(e,5,0,n.message&&n.options.enableHtml),t(e,7,0,n.message&&!n.options.enableHtml),t(e,9,0,n.options.progressBar)}),null)}function O(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[["toast-component",""]],[[8,"className",0],[40,"@flyInOut",0],[4,"display",null]],[[null,"click"],[null,"mouseenter"],[null,"mouseleave"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,1).tapToast()&&a),"mouseenter"===e&&(a=!1!==i["ɵnov"](t,1).stickAround()&&a),"mouseleave"===e&&(a=!1!==i["ɵnov"](t,1).delayedHideToast()&&a),a}),_,g)),i["ɵdid"](1,180224,null,0,u.c,[u.j,u.g,i.NgZone],null,null)],null,(function(t,e){t(e,0,0,i["ɵnov"](e,1).toastClasses,i["ɵnov"](e,1).state,i["ɵnov"](e,1).displayStyle)}))}var v=i["ɵccf"]("[toast-component]",u.c,O,{},{},[]),C=n("pMnS"),P=n("jtHE");let M=(()=>{class t{}return t.START="start",t.STOP="stop",t.UPDATE="update",t.RESET="reset",t.UNSUBSCRIBE="unsubscribe",t})();class x{constructor(){this.blockUISettings={},this.blockUIInstances={},this.blockUISubject=new P.a,this.blockUIObservable=this.blockUISubject.asObservable(),this.blockUIObservable.subscribe(this.blockUIMiddleware.bind(this))}getSettings(){return this.blockUISettings}updateSettings(t={}){this.blockUISettings=Object.assign({},this.blockUISettings,t)}decorate(t="block-ui-main"){const e={name:t,isActive:!1,blockCount:0,start:this.dispatch(this.blockUISubject,M.START,t),update:this.dispatch(this.blockUISubject,M.UPDATE,t),stop:this.dispatch(this.blockUISubject,M.STOP,t),reset:this.dispatch(this.blockUISubject,M.RESET,t),unsubscribe:this.dispatch(this.blockUISubject,M.UNSUBSCRIBE,t)};return this.blockUIInstances[t]=this.blockUIInstances[t]||e,e}observe(){return this.blockUIObservable}blockUIMiddleware({action:t,name:e}){let n=null;switch(t){case M.START:n=!0;break;case M.STOP:case M.RESET:n=!1}null!==n&&(this.blockUIInstances[e].isActive=n)}dispatch(t,e,n="block-ui-main"){return a=>{t.next({name:n,action:e,message:a})}}}class w{constructor(t){this.blockUI=t}ngOnInit(){this.name=this.name||"block-ui-main",this.template=this.template||this.blockUI.blockUISettings.template}}class T{constructor(t,e,n){this.blockUI=t,this.resolver=e,this.changeDetectionRef=n,this.name="block-ui-main",this.delayStart=0,this.delayStop=0,this.state={startTimeout:null,stopTimeout:null,blockCount:0},this.active=!1}ngOnInit(){this.settings=this.blockUI.getSettings(),this.blockUISubscription=this.subscribeToBlockUI(this.blockUI.observe())}ngAfterViewInit(){try{if(!this.templateCmp)return!1;if(this.templateCmp instanceof i.TemplateRef)this.templateOutlet.createEmbeddedView(this.templateCmp);else{const t=this.resolver.resolveComponentFactory(this.templateCmp);this.templateCompRef=this.templateOutlet.createComponent(t),this.updateBlockTemplate(this.message)}}catch(t){console.error("ng-block-ui:",t)}}ngAfterViewChecked(){this.detectChanges()}subscribeToBlockUI(t){return t.subscribe(t=>this.onDispatchedEvent(t))}onDispatchedEvent(t){switch(t.action){case M.START:this.onStart(t);break;case M.STOP:this.onStop(t);break;case M.UPDATE:this.onUpdate(t);break;case M.RESET:this.onReset();break;case M.UNSUBSCRIBE:this.onStop(t),this.onUnsubscribe(t.name)}}onStart({name:t,message:e}){if(t===this.name){const t=this.delayStart||this.settings.delayStart||0;null===this.state.startTimeout&&(this.state.startTimeout=setTimeout(()=>{this.showBlock(e)},t)),this.state.blockCount++,this.updateInstanceBlockCount()}}onStop({name:t}){if(t===this.name){const t=this.delayStop||this.settings.delayStop||0;this.state.blockCount>1?this.state.blockCount--:this.active?null===this.state.stopTimeout&&(this.state.stopTimeout=setTimeout(()=>{this.hideBlock()},t)):this.clearState(),this.updateInstanceBlockCount()}}onReset(){this.hideBlock()}onUpdate({name:t,message:e}){t===this.name&&setTimeout(()=>{this.message=e||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.detectChanges()},this.delayStart||this.settings.delayStart||0)}showBlock(t){this.active=!0,this.message=t||this.defaultMessage||this.settings.message,this.updateBlockTemplate(this.message),this.detectChanges()}hideBlock(){this.clearState(),this.active=!1,this.detectChanges()}clearState(){null!=this.state.startTimeout&&clearTimeout(this.state.startTimeout),null!=this.state.stopTimeout&&clearTimeout(this.state.stopTimeout),this.state.blockCount=0,this.state.startTimeout=null,this.state.stopTimeout=null,this.updateInstanceBlockCount()}updateBlockTemplate(t){this.templateCompRef&&this.templateCompRef instanceof i.ComponentRef&&(this.templateCompRef.instance.message=t)}onUnsubscribe(t){this.blockUISubscription&&t===this.name&&this.blockUISubscription.unsubscribe()}updateInstanceBlockCount(){this.blockUI.blockUIInstances[this.name]&&(this.blockUI.blockUIInstances[this.name].blockCount=this.state.blockCount)}detectChanges(){this.changeDetectionRef.destroyed||this.changeDetectionRef.detectChanges()}ngOnDestroy(){this.onUnsubscribe(this.name)}}class S{constructor(t){this.blockUIInstance=t}start(t,e){this.dispatch(t,M.START,e)}stop(t){this.dispatch(t,M.STOP)}reset(t){this.dispatch(t,M.RESET)}unsubscribe(t){this.dispatch(t,M.UNSUBSCRIBE)}isActive(t=null){const e=t?this.toArray(t):null,n=this.blockUIInstance.blockUIInstances;return Object.keys(n).some(t=>e?e.indexOf(n[t].name)>=0&&n[t].isActive:n[t].isActive)}dispatch(t=[],e,n){this.toArray(t).forEach(t=>this.blockUIInstance.decorate(t)[e](n))}toArray(t=[]){return"string"==typeof t?[t]:t}}const k=new x,I=new i.InjectionToken("BlockUIModuleSettings");function N(t){return k.updateSettings(t),k}class R{static forRoot(t={}){return{ngModule:R,providers:[{provide:I,useValue:t},{provide:x,useFactory:N,deps:[I]},S]}}}var A=i["ɵcrt"]({encapsulation:2,styles:[],data:{}});function E(t){return i["ɵvid"](0,[i["ɵncd"](null,0),(t()(),i["ɵeld"](1,0,null,null,1,"block-ui-content",[],null,null,null,B,q)),i["ɵdid"](2,12828672,null,0,T,[x,i.ComponentFactoryResolver,i.ChangeDetectorRef],{name:[0,"name"],delayStart:[1,"delayStart"],delayStop:[2,"delayStop"],defaultMessage:[3,"defaultMessage"],templateCmp:[4,"templateCmp"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.name,n.delayStart,n.delayStop,n.message,n.template)}),null)}function D(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"block-ui",[],null,null,null,E,A)),i["ɵdid"](1,114688,null,0,w,[x],null,null)],(function(t,e){t(e,1,0)}),null)}var L=i["ɵccf"]("block-ui",w,D,{name:"name",message:"message",delayStart:"delayStart",delayStop:"delayStop",template:"template"},{},["*"]),q=i["ɵcrt"]({encapsulation:2,styles:["\n.block-ui-wrapper {\n  display: none;\n  position: fixed;\n  height: 100%;\n  width: 100%;\n  top: 0;\n  left: 0;\n  background: rgba(0, 0, 0, 0.70);\n  z-index: 30000;\n  cursor: wait;\n}\n\n.block-ui-wrapper.block-ui-wrapper--element {\n  position: absolute;\n}\n\n.block-ui-wrapper.active {\n  display: block;\n}\n\n.block-ui-wrapper.block-ui-main {\n  position: fixed;\n}\n\n.block-ui-spinner,\n.block-ui-template {\n  position: absolute;\n  top: 40%;\n  margin: 0 auto;\n  left: 0;\n  right: 0;\n  transform: translateY(-50%);\n}\n\n.block-ui-spinner > .message {\n  font-size: 1.3em;\n  text-align: center;\n  color: #fff;\n}\n\n.block-ui__element {\n  position: relative;\n}\n\n.loader,\n.loader:after {\n  border-radius: 50%;\n  width: 10em;\n  height: 10em;\n}\n.loader {\n  margin: 7px auto;\n  font-size: 5px;\n  position: relative;\n  text-indent: -9999em;\n  border-top: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-right: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);\n  border-left: 1.1em solid #ffffff;\n  -webkit-transform: translateZ(0);\n  -ms-transform: translateZ(0);\n  transform: translateZ(0);\n  -webkit-animation: load8 1.1s infinite linear;\n  animation: load8 1.1s infinite linear;\n}\n\n@-webkit-keyframes load8 {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n\n@keyframes load8 {\n  0% {\n    -webkit-transform: rotate(0deg);\n    transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n    transform: rotate(360deg);\n  }\n}\n"],data:{}});function j(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[["class","message"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,1,0,n.message||n.defaultMessage)}))}function F(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"div",[["class","block-ui-spinner"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,0,"div",[["class","loader"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,j)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.message||n.defaultMessage)}),null)}function z(t){return i["ɵvid"](0,[(t()(),i["ɵand"](0,null,null,0))],null,null)}function G(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,[[1,3],["templateOutlet",2]],null,0,null,z)),(t()(),i["ɵand"](0,null,null,0))],null,null)}function B(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{templateOutlet:0}),(t()(),i["ɵeld"](1,0,null,null,7,"div",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](3,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](4,{active:0}),(t()(),i["ɵand"](16777216,null,null,1,null,F)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,G)),i["ɵdid"](8,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component,a=i["ɵinlineInterpolate"](2,"block-ui-wrapper ",n.name," ",n.className,""),r=t(e,4,0,n.active);t(e,3,0,a,r),t(e,6,0,!n.templateCmp),t(e,8,0,n.templateCmp)}),null)}function V(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"block-ui-content",[],null,null,null,B,q)),i["ɵdid"](1,12828672,null,0,T,[x,i.ComponentFactoryResolver,i.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}var Y=i["ɵccf"]("block-ui-content",T,V,{name:"name",delayStart:"delayStart",delayStop:"delayStop",defaultMessage:"message",templateCmp:"template"},{},[]),H=n("FE24"),U=n("z/SZ"),W=n("s7LF"),K=n("+gVj"),$=n("LvDl"),Z=n("xj/R"),J=n("IheW");let X=(()=>{class t{constructor(t,e){this.http=t,this.localeId=e}getLocale(){return this.localeId||"en-US"}setLocale(t){document.cookie=`cd-lang=${t}`}getLanguages(){return this.http.get("ui-api/langs")}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"](i.LOCALE_ID))},token:t,providedIn:"root"}),t})();var Q=function(t){return t.cs="Čeština",t["de-DE"]="Deutsch",t["en-US"]="English",t["es-ES"]="Español",t["fr-FR"]="Français",t["id-ID"]="Bahasa Indonesia",t["it-IT"]="Italiano",t["ja-JP"]="日本語",t["ko-KR"]="한국어",t["pl-PL"]="Polski",t["pt-BR"]="Português (brasileiro)",t["zh-CN"]="中文 (简体)",t["zh-TW"]="中文 (繁體)",t}({});let tt={cs:Z.a,de:Z.b,es:Z.e,fr:Z.g,id:Z.m,it:Z.y,ja:Z.z,ko:Z.A,pl:Z.C,pt:Z.D,zh:Z.H};class et{constructor(t,e){this.localeService=t,this.languageService=e,this.isDropdown=!0,this.supportedLanguages=Q}ngOnInit(){this.selectedLanguage=this.languageService.getLocale(),this.defineUsedLanguage(),this.languageService.getLanguages().subscribe(t=>{this.supportedLanguages=$.pick(this.supportedLanguages,t)})}defineUsedLanguage(){const t=this.selectedLanguage.slice(0,2);t in tt&&(Object(Z.c)(t,tt[t]),this.localeService.use(t))}reloadWindow(){window.location.reload()}changeLanguage(t){this.languageService.setLocale(t),this.reloadWindow()}}var nt=n("ienR"),at=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function rt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.changeLanguage(t.context.$implicit.key)&&a),a}),null,null)),(t()(),i["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.value)}))}function ot(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"ul",[["class","dropdown-menu dropdown-menu-right"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,rt)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,2,0,i["ɵunv"](e,2,0,i["ɵnov"](e,3).transform(n.supportedLanguages)))}),null)}function it(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,16777216,null,null,7,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),i["ɵprd"](512,null,H.f,H.f,[]),i["ɵdid"](2,212992,null,0,H.c,[i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,H.a,H.f],null,null),(t()(),i["ɵeld"](3,0,null,null,2,"a",[["class","dropdown-toggle"],["data-toggle","dropdown"],["dropdownToggle",""],["title","Select a Language"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,4).onClick()&&a),a}),null,null)),i["ɵdid"](4,147456,null,0,H.g,[i.ChangeDetectorRef,H.c,i.ElementRef,i.Renderer2,H.f],null,null),(t()(),i["ɵted"](5,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,ot)),i["ɵdid"](7,16384,null,0,H.d,[H.f,i.ViewContainerRef,i.TemplateRef],null,null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,2,0)}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,2).dropup,i["ɵnov"](e,2).isOpen,i["ɵnov"](e,2).isOpen&&i["ɵnov"](e,2).isBs4),t(e,3,0,!0,i["ɵnov"](e,4).isDisabled,i["ɵnov"](e,4).isOpen),t(e,5,0,n.supportedLanguages[n.selectedLanguage])}))}function st(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.key),t(e,2,0,e.context.$implicit.key)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function ct(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"select",[["class","form-control custom-select"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,1).onTouched()&&a),"change"===e&&(a=!1!==r.changeLanguage(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedLanguage=n)&&a),a}),null,null)),i["ɵdid"](1,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](3,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](5,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](6,16384,null,0,K.h,[[8,null],K.a],null,null),(t()(),i["ɵand"](16777216,null,null,2,null,st)),i["ɵdid"](8,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,3,0,n.selectedLanguage),t(e,8,0,i["ɵunv"](e,8,0,i["ɵnov"](e,9).transform(n.supportedLanguages)))}),(function(t,e){t(e,0,0,i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending,i["ɵnov"](e,6).validClass,i["ɵnov"](e,6).invalidClass)}))}function lt(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,it)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ct)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.isDropdown),t(e,3,0,!n.isDropdown)}),null)}var dt=n("quSY"),ut=n("oxzT"),gt=n("9nlD"),ft=n("mSOc");class pt{constructor(t,e){this.notificationService=t,this.summaryService=e,this.icons=ut.a,this.hasRunningTasks=!1,this.subs=new dt.a}ngOnInit(){this.subs.add(this.summaryService.subscribe(t=>{t&&(this.hasRunningTasks=t.executing_tasks.length>0)}))}ngOnDestroy(){this.subs.unsubscribe()}toggleSidebar(){this.notificationService.toggleSidebar()}}var mt=i["ɵcrt"]({encapsulation:0,styles:[[".running[_ngcontent-%COMP%]   i[_ngcontent-%COMP%]{color:#2b99a8}.running[_ngcontent-%COMP%]:hover   i[_ngcontent-%COMP%]{color:#fff}"]],data:{}});function ht(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"a",[["title","Tasks and Notifications"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSidebar()&&a),a}),null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](3,{running:0}),(t()(),i["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](7,1),(t()(),i["ɵeld"](8,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Tasks and Notifications"]))],(function(t,e){var n=e.component,a=t(e,3,0,n.hasRunningTasks);t(e,2,0,a);var r=t(e,7,0,n.icons.bell);t(e,6,0,r)}),null)}var bt=n("+0ag"),yt=n("aexS"),_t=n("SjWX"),Ot=n("Mxhz"),vt=n("sne2");class Ct{constructor(t,e,n,a){this.modalRef=t,this.summaryService=e,this.userService=n,this.authStorageService=a,this.userPermission=this.authStorageService.getPermissions().user}ngOnInit(){this.copyright="Copyright(c) 2020 Ceph contributors.",this.projectConstants=vt.c,this.hostAddr=window.location.hostname,this.modalVariables=this.setVariables(),this.subs=this.summaryService.subscribe(t=>{if(!t)return;const e=t.version.replace("ceph version ","").split(" ");this.hostAddr=t.mgr_host.replace(/(^\w+:|^)\/\//,"").replace(/\/$/,""),this.versionNumber=e[0],this.versionHash=e[1],this.versionName=e.slice(2,e.length).join(" ")})}ngOnDestroy(){this.subs.unsubscribe()}setVariables(){const t={};t.user=localStorage.getItem("dashboard_username"),t.role="user",this.userPermission.read&&this.userService.get(t.user).subscribe(e=>{t.role=e.roles});const e=Object(_t.detect)();return t.browserName=e&&e.name?e.name:"Not detected",t.browserVersion=e&&e.version?e.version:"Not detected",t.browserOS=e&&e.os?e.os:"Not detected",t}}class Pt{constructor(t,e,n,a){this.summaryService=t,this.cephReleaseNamePipe=e,this.modalService=n,this.authStorageService=a,this.icons=ut.a}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`,setTimeout(()=>{t.unsubscribe()},0)})}openAboutModal(){this.modalRef=this.modalService.show(Ct),this.modalRef.setClass("modal-lg")}goToApiDocs(){this.docsFormElement.nativeElement.children[0].value=this.authStorageService.getToken(),this.docsFormElement.nativeElement.submit()}}var Mt=n("LqlI"),xt=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function wt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,12,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,5,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,4,"a",[["class","dropdown-item"],["target","_blank"]],[[8,"href",4]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](5,{disabled:0}),(t()(),i["ɵted"](-1,null,["Documentation"])),(t()(),i["ɵeld"](7,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.goToApiDocs()&&a),a}),null,null)),(t()(),i["ɵted"](-1,null,["API"])),(t()(),i["ɵeld"](10,0,null,null,2,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,1,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.openAboutModal()&&a),a}),null,null)),(t()(),i["ɵted"](-1,null,["About"]))],(function(t,e){var n=t(e,5,0,!e.component.docsUrl);t(e,4,0,"dropdown-item",n)}),(function(t,e){t(e,2,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Tt(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{docsFormElement:0}),(t()(),i["ɵeld"](1,0,[[1,0],["docsForm",1]],null,1,"form",[["action","/docs"],["method","post"],["target","_blank"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"input",[["name","token"],["type","hidden"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),i["ɵprd"](512,null,H.f,H.f,[]),i["ɵdid"](5,212992,null,0,H.c,[i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,H.a,H.f],null,null),(t()(),i["ɵeld"](6,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Help"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,7).onClick()&&a),a}),null,null)),i["ɵdid"](7,147456,null,0,H.g,[i.ChangeDetectorRef,H.c,i.ElementRef,i.Renderer2,H.f],null,null),(t()(),i["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](10,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](11,1),(t()(),i["ɵeld"](12,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Help"])),(t()(),i["ɵand"](16777216,null,null,1,null,wt)),i["ɵdid"](15,16384,null,0,H.d,[H.f,i.ViewContainerRef,i.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,5,0);var a=t(e,11,0,n.icons.questionCircle);t(e,10,0,a)}),(function(t,e){t(e,3,0,i["ɵnov"](e,5).dropup,i["ɵnov"](e,5).isOpen,i["ɵnov"](e,5).isOpen&&i["ɵnov"](e,5).isBs4),t(e,6,0,!0,i["ɵnov"](e,7).isDisabled,i["ɵnov"](e,7).isOpen)}))}var St=n("iInd");class kt{constructor(t){this.authStorageService=t,this.icons=ut.a,this.userPermission=this.authStorageService.getPermissions().user}ngOnInit(){}}var It=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Nt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"a",[["class","dropdown-item"],["routerLink","/user-management"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](2,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["User management"]))],(function(t,e){t(e,2,0,"/user-management")}),(function(t,e){t(e,1,0,i["ɵnov"](e,2).target,i["ɵnov"](e,2).href)}))}function Rt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Nt)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.component.userPermission.read)}),null)}function At(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),i["ɵprd"](512,null,H.f,H.f,[]),i["ɵdid"](2,212992,null,0,H.c,[i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,H.a,H.f],null,null),(t()(),i["ɵeld"](3,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Dashboard Settings"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,4).onClick()&&a),a}),null,null)),i["ɵdid"](4,147456,null,0,H.g,[i.ChangeDetectorRef,H.c,i.ElementRef,i.Renderer2,H.f],null,null),(t()(),i["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](7,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](8,1),(t()(),i["ɵeld"](9,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Dashboard Settings"])),(t()(),i["ɵand"](16777216,null,null,1,null,Rt)),i["ɵdid"](12,16384,null,0,H.d,[H.f,i.ViewContainerRef,i.TemplateRef],null,null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0);var a=t(e,8,0,n.icons.deepCheck);t(e,7,0,a)}),(function(t,e){t(e,0,0,i["ɵnov"](e,2).dropup,i["ɵnov"](e,2).isOpen,i["ɵnov"](e,2).isOpen&&i["ɵnov"](e,2).isBs4),t(e,3,0,!0,i["ɵnov"](e,4).isDisabled,i["ɵnov"](e,4).isOpen)}))}function Et(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,At)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.userPermission.read)}),null)}var Dt=n("DSvg");class Lt{constructor(t,e){this.authStorageService=t,this.authService=e,this.icons=ut.a}ngOnInit(){this.username=this.authStorageService.getUsername(),this.sso=this.authStorageService.isSSO()}logout(){this.authService.logout()}}var qt=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function jt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,7,"a",[["class","dropdown-item"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,2).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](2,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵeld"](3,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](5,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](6,1),(t()(),i["ɵeld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Change password"]))],(function(t,e){var n=e.component;t(e,2,0,"/user-profile/edit");var a=t(e,6,0,n.icons.lock);t(e,5,0,a)}),(function(t,e){t(e,1,0,i["ɵnov"](e,2).target,i["ɵnov"](e,2).href)}))}function Ft(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,16,"ul",[["class","dropdown-menu dropdown-menu-right"],["role","menu"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"li",[["class","disabled"],["role","menuitem"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,3,"a",[["class","dropdown-item disabled"],["href","#"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Signed in as "])),(t()(),i["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](5,null,["",""])),(t()(),i["ɵeld"](6,0,null,null,0,"li",[["class","dropdown-divider"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,jt)),i["ɵdid"](8,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](9,0,null,null,7,"li",[["role","menuitem"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,6,"a",[["class","dropdown-item"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.logout()&&a),a}),null,null)),(t()(),i["ɵeld"](11,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](13,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](14,1),(t()(),i["ɵeld"](15,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Sign out"]))],(function(t,e){var n=e.component;t(e,8,0,!n.sso);var a=t(e,14,0,n.icons.signOut);t(e,13,0,a)}),(function(t,e){t(e,5,0,e.component.username)}))}function zt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,16777216,null,null,12,"div",[["class","btn-group"],["dropdown",""]],[[2,"dropup",null],[2,"open",null],[2,"show",null]],null,null,null,null)),i["ɵprd"](512,null,H.f,H.f,[]),i["ɵdid"](2,212992,null,0,H.c,[i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,H.a,H.f],null,null),(t()(),i["ɵeld"](3,0,null,null,7,"a",[["class","dropdown-toggle"],["dropdownToggle",""],["title","Logged in user"]],[[1,"aria-haspopup",0],[1,"disabled",0],[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,4).onClick()&&a),a}),null,null)),i["ɵdid"](4,147456,null,0,H.g,[i.ChangeDetectorRef,H.c,i.ElementRef,i.Renderer2,H.f],null,null),(t()(),i["ɵeld"](5,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](7,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](8,1),(t()(),i["ɵeld"](9,0,null,null,1,"span",[["class","d-md-none"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Logged in user"])),(t()(),i["ɵand"](16777216,null,null,1,null,Ft)),i["ɵdid"](12,16384,null,0,H.d,[H.f,i.ViewContainerRef,i.TemplateRef],null,null)],(function(t,e){var n=e.component;t(e,2,0);var a=t(e,8,0,n.icons.user);t(e,7,0,a)}),(function(t,e){t(e,0,0,i["ɵnov"](e,2).dropup,i["ɵnov"](e,2).isOpen,i["ɵnov"](e,2).isOpen&&i["ɵnov"](e,2).isBs4),t(e,3,0,!0,i["ɵnov"](e,4).isDisabled,i["ɵnov"](e,4).isOpen)}))}var Gt=n("GS7A");const Bt=[Object(Gt.h)({height:0,visibility:"hidden"}),Object(Gt.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Gt.h)({height:"*",visibility:"visible"}))],Vt=[Object(Gt.h)({height:"*",visibility:"visible"}),Object(Gt.e)("400ms cubic-bezier(0.4,0.0,0.2,1)",Object(Gt.h)({height:0,visibility:"hidden"}))];class Yt{constructor(t,e,n){this._el=t,this._renderer=e,this.collapsed=new i.EventEmitter,this.collapses=new i.EventEmitter,this.expanded=new i.EventEmitter,this.expands=new i.EventEmitter,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapse=!0,this.isCollapsing=!1,this.isAnimated=!1,this._display="block",this._stylesLoaded=!1,this._COLLAPSE_ACTION_NAME="collapse",this._EXPAND_ACTION_NAME="expand",this._factoryCollapseAnimation=n.build(Vt),this._factoryExpandAnimation=n.build(Bt)}set display(t){this.isAnimated?(this._display=t,"none"!==t?this.show():this.hide()):this._renderer.setStyle(this._el.nativeElement,"display",t)}set collapse(t){this._player&&!this._isAnimationDone||(this.isExpanded=t,this.toggle())}get collapse(){return this.isExpanded}ngAfterViewChecked(){this._stylesLoaded=!0,this._player&&this._isAnimationDone&&(this._player.reset(),this._renderer.setStyle(this._el.nativeElement,"height","*"))}toggle(){this.isExpanded?this.hide():this.show()}hide(){this.isCollapsing=!0,this.isExpanded=!1,this.isCollapsed=!0,this.isCollapsing=!1,this.collapses.emit(this),this._isAnimationDone=!1,this.animationRun(this.isAnimated,this._COLLAPSE_ACTION_NAME)(()=>{this._isAnimationDone=!0,this.collapsed.emit(this),this._renderer.setStyle(this._el.nativeElement,"display","none")})}show(){this._renderer.setStyle(this._el.nativeElement,"display",this._display),this.isCollapsing=!0,this.isExpanded=!0,this.isCollapsed=!1,this.isCollapsing=!1,this.expands.emit(this),this._isAnimationDone=!1,this.animationRun(this.isAnimated,this._EXPAND_ACTION_NAME)(()=>{this._isAnimationDone=!0,this.expanded.emit(this)})}animationRun(t,e){if(!t||!this._stylesLoaded)return t=>t();this._renderer.setStyle(this._el.nativeElement,"overflow","hidden"),this._renderer.addClass(this._el.nativeElement,"collapse");const n=e===this._EXPAND_ACTION_NAME?this._factoryExpandAnimation:this._factoryCollapseAnimation;return this._player&&this._player.destroy(),this._player=n.create(this._el.nativeElement),this._player.play(),t=>this._player.onDone(t)}}class Ht{static forRoot(){return{ngModule:Ht,providers:[]}}}class Ut{transform(t){return"HEALTH_OK"===t?{color:"#00bb00"}:"HEALTH_WARN"===t?{color:"#ffa500"}:"HEALTH_ERR"===t?{color:"#ff0000"}:null}}var Wt=n("MdoF"),Kt=n("CNMR"),$t=n("20UP"),Zt=n("oMSZ");class Jt{constructor(t,e){this.settingsService=t,this.authStorageService=e}ngOnInit(){this.settingsService.getStandardSettings().subscribe(t=>{this.pwdExpirationSettings=new Zt.a(t);const e=this.authStorageService.getPwdExpirationDate();e&&(this.expirationDays=this.getExpirationDays(e),this.alertType=this.expirationDays<=this.pwdExpirationSettings.pwdExpirationWarning2?"danger":"warning",this.authStorageService.isPwdDisplayedSource.next(!0))})}getExpirationDays(t){const e=new Date,n=new Date(1e3*t);return Math.floor((n.valueOf()-e.valueOf())/864e5)}close(){this.authStorageService.isPwdDisplayedSource.next(!1)}}var Xt=i["ɵcrt"]({encapsulation:0,styles:[[".no-margin-bottom .alert{margin-bottom:0}"]],data:{}});function Qt(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Your password will expire in "])),(t()(),i["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["less than 1"])),(t()(),i["ɵted"](-1,null,[" day. Click "])),(t()(),i["ɵeld"](5,0,null,null,2,"a",[["class","alert-link"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](6,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["here"])),(t()(),i["ɵted"](-1,null,[" to change it now."]))],(function(t,e){t(e,6,0,"/user-profile/edit")}),(function(t,e){t(e,5,0,i["ɵnov"](e,6).target,i["ɵnov"](e,6).href)}))}function te(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"div",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Your password will expire in "])),(t()(),i["ɵeld"](2,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](3,null,["",""])),(t()(),i["ɵted"](-1,null,[" day(s). Click "])),(t()(),i["ɵeld"](5,0,null,null,2,"a",[["class","alert-link"],["routerLink","/user-profile/edit"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](6,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["here"])),(t()(),i["ɵted"](-1,null,[" to change it now."]))],(function(t,e){t(e,6,0,"/user-profile/edit")}),(function(t,e){t(e,3,0,e.component.expirationDays),t(e,5,0,i["ɵnov"](e,6).target,i["ɵnov"](e,6).href)}))}function ee(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"alert",[["class","no-margin-bottom"]],null,[[null,"onClose"]],(function(t,e,n){var a=!0;return"onClose"===e&&(a=!1!==t.component.close(n)&&a),a}),Wt.c,Wt.b)),i["ɵdid"](1,114688,null,0,Kt.a,[Kt.b,i.ChangeDetectorRef],{type:[0,"type"],dismissible:[1,"dismissible"]},{onClose:"onClose"}),(t()(),i["ɵand"](16777216,null,0,1,null,Qt)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,te)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,i["ɵinlineInterpolate"](1,"",n.alertType,""),!0),t(e,3,0,0===n.expirationDays),t(e,5,0,n.expirationDays>0)}),null)}function ne(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,ee)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,null!=n.expirationDays&&n.expirationDays<=n.pwdExpirationSettings.pwdExpirationWarning1)}),null)}var ae=n("7qid"),re=n("38Bd"),oe=n("wd/R");class ie{transform(t,e=!1){return e?oe(t).fromNow():this._forHumans(t)}_forHumans(t){const e=[[`${Math.floor(t/31536e3)}`,"years"],[`${Math.floor(t%31536e3/86400)}`,"days"],[`${Math.floor(t%86400/3600)}`,"hours"],[`${Math.floor(t%3600/60)}`,"minutes"],[`${Math.floor(t%60)}`,"seconds"]];let n="";for(let a=0,r=e.length;a<r;a++)"0"!==e[a][0]&&(n+=" "+e[a][0]+" "+("1"===e[a][0]?e[a][1].substr(0,e[a][1].length-1):e[a][1]));return n.trim()||"1 second"}}var se=n("a0VL"),ce=n("moLw"),le=n("WF9J"),de=i["ɵcrt"]({encapsulation:2,styles:["[data-simplebar]{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;flex-wrap:wrap;-webkit-box-pack:start;justify-content:flex-start;align-content:flex-start;-webkit-box-align:start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;visibility:visible;max-width:100%;max-height:100%;scrollbar-width:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none}.simplebar-content:after,.simplebar-content:before{content:' ';display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;-webkit-box-flex:inherit;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;right:2px;width:7px;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:'';background:#000;border-radius:7px;left:0;right:0;opacity:0;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;-webkit-transition:opacity linear;transition:opacity linear}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-track.simplebar-vertical .simplebar-scrollbar:before{top:2px;bottom:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before{height:100%;left:2px;right:2px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:2px;height:7px;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.hs-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none}","ngx-simplebar{display:block}"],data:{}});function ue(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"div",[["class","simplebar-wrapper"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"div",[["class","simplebar-height-auto-observer-wrapper"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"div",[["class","simplebar-height-auto-observer"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,4,"div",[["class","simplebar-mask"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,3,"div",[["class","simplebar-offset"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,2,"div",[["class","simplebar-content-wrapper"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,1,"div",[["class","simplebar-content"]],null,null,null,null,null)),i["ɵncd"](null,0),(t()(),i["ɵeld"](8,0,null,null,0,"div",[["class","simplebar-placeholder"]],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,1,"div",[["class","simplebar-track simplebar-horizontal"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,0,"div",[["class","simplebar-scrollbar"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,1,"div",[["class","simplebar-track simplebar-vertical"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,0,"div",[["class","simplebar-scrollbar"]],null,null,null,null,null))],null,null)}var ge=n("O9Tv"),fe=n("G1I9"),pe=n("lJxs"),me=n("pL04");let he=(()=>{class t{constructor(t,e){this.http=t,this.settingsService=e,this.baseURL="api/prometheus",this.settingsKey={alertmanager:"api/settings/alertmanager-api-host",prometheus:"api/settings/prometheus-api-host"}}ifAlertmanagerConfigured(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.alertmanager,t,e)}disableAlertmanagerConfig(){this.settingsService.disableSetting(this.settingsKey.alertmanager)}ifPrometheusConfigured(t,e){this.settingsService.ifSettingConfigured(this.settingsKey.prometheus,t,e)}disablePrometheusConfig(){this.settingsService.disableSetting(this.settingsKey.prometheus)}getAlerts(t={}){return this.http.get(this.baseURL,{params:t})}getSilences(t={}){return this.http.get(`${this.baseURL}/silences`,{params:t})}getRules(t="all"){return this.http.get(`${this.baseURL}/rules`).pipe(Object(pe.a)(e=>(["alerting","rewrites"].includes(t)&&e.groups.map(e=>{e.rules=e.rules.filter(e=>e.type===t)}),e)))}setSilence(t){return this.http.post(`${this.baseURL}/silence`,t,{observe:"response"})}expireSilence(t){return this.http.delete(`${this.baseURL}/silence/${t}`,{observe:"response"})}getNotifications(t){return this.http.get(`${this.baseURL}/notifications?from=${t&&t.id?t.id:"last"}`)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"]($t.a))},token:t,providedIn:me.a}),t})();var be=n("mtw6");let ye=(()=>{class t{constructor(t){this.notificationService=t}sendNotifications(t){t.forEach(t=>this.notificationService.show(t))}convertToCustomAlerts(t){return $.uniqWith(t.map(t=>({status:$.isObject(t.status)?t.status.state:this.getPrometheusNotificationStatus(t),name:t.labels.alertname,url:t.generatorURL,summary:t.annotations.summary,fingerprint:$.isObject(t.status)&&t.fingerprint})),$.isEqual)}getPrometheusNotificationStatus(t){const e=t.status;return"firing"===e?"active":e}convertAlertToNotification(t){return new fe.b(this.formatType(t.status),`${t.name} (${t.status})`,this.appendSourceLink(t,t.summary),void 0,"Prometheus")}formatType(t){return be.a[$.findKey({error:["firing","active"],info:["suppressed","unprocessed"],success:["resolved"]},e=>e.includes(t))]}appendSourceLink(t,e){return`${e} <a href="${t.url}" target="_blank"><i class="${ut.a.lineChart}"></i></a>`}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](gt.a))},token:t,providedIn:"root"}),t})(),_e=(()=>{class t{constructor(t,e){this.alertFormatter=t,this.prometheusService=e,this.canAlertsBeNotified=!1,this.alerts=[],this.rules=[]}getAlerts(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.prometheusService.getAlerts().subscribe(t=>this.handleAlerts(t),t=>{[404,504].includes(t.status)&&this.prometheusService.disableAlertmanagerConfig()})})}getRules(){this.prometheusService.ifPrometheusConfigured(()=>{this.prometheusService.getRules("alerting").subscribe(t=>{this.rules=t.groups.reduce((t,e)=>t.concat(e.rules.map(t=>(t.group=e.name,t))),[])})})}refresh(){this.getAlerts(),this.getRules()}handleAlerts(t){this.canAlertsBeNotified&&this.notifyOnAlertChanges(t,this.alerts),this.alerts=t,this.canAlertsBeNotified=!0}notifyOnAlertChanges(t,e){const n=this.getChangedAlerts(this.alertFormatter.convertToCustomAlerts(t),this.alertFormatter.convertToCustomAlerts(e)).map(t=>this.alertFormatter.convertAlertToNotification(t));this.alertFormatter.sendNotifications(n)}getChangedAlerts(t,e){return $.differenceWith(t,e,$.isEqual).concat(this.getVanishedAlerts(t,e))}getVanishedAlerts(t,e){return $.differenceWith(e,t,(t,e)=>t.fingerprint===e.fingerprint).map(t=>(t.status="resolved",t))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](ye),i["ɵɵinject"](he))},token:t,providedIn:"root"}),t})(),Oe=(()=>{class t{constructor(t,e){this.alertFormatter=t,this.prometheusService=e,this.backendFailure=!1,this.notifications=[]}refresh(){this.backendFailure||this.prometheusService.getNotifications($.last(this.notifications)).subscribe(t=>this.handleNotifications(t),()=>this.backendFailure=!0)}handleNotifications(t){0!==t.length&&(this.notifications.length>0&&this.alertFormatter.sendNotifications($.flatten(t.map(t=>this.formatNotification(t)))),this.notifications=this.notifications.concat(t))}formatNotification(t){return this.alertFormatter.convertToCustomAlerts(t.alerts).map(t=>this.alertFormatter.convertAlertToNotification(t))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](ye),i["ɵɵinject"](he))},token:t,providedIn:"root"}),t})();var ve=n("ufoC");class Ce{constructor(t,e,n,a,r,o,i,s){this.notificationService=t,this.summaryService=e,this.taskMessageService=n,this.prometheusNotificationService=a,this.authStorageService=r,this.prometheusAlertService=o,this.ngZone=i,this.cdRef=s,this.isSidebarOpened=!1,this.executingTasks=[],this.subs=new dt.a,this.icons=ut.a,this.last_task="",this.mutex=new ge.Mutex,this.simplebar={autoHide:!1},this.notifications=[]}ngOnDestroy(){window.clearInterval(this.interval),window.clearTimeout(this.timeout),this.subs.unsubscribe()}ngOnInit(){this.last_task=window.localStorage.getItem("last_task");const t=this.authStorageService.getPermissions();t.prometheus.read&&t.configOpt.read&&(this.triggerPrometheusAlerts(),this.ngZone.runOutsideAngular(()=>{this.interval=window.setInterval(()=>{this.ngZone.run(()=>{this.triggerPrometheusAlerts()})},5e3)})),this.subs.add(this.notificationService.data$.subscribe(t=>{this.notifications=$.orderBy(t,["timestamp"],["desc"]),this.cdRef.detectChanges()})),this.subs.add(this.notificationService.sidebarSubject.subscribe(t=>{this.isSidebarOpened=!t&&!this.isSidebarOpened,window.clearTimeout(this.timeout),this.timeout=window.setTimeout(()=>{this.cdRef.detectChanges()},0)})),this.subs.add(this.summaryService.subscribe(t=>{t&&(this._handleTasks(t.executing_tasks),this.mutex.acquire().then(e=>{$.filter(t.finished_tasks,t=>!this.last_task||oe(t.end_time).isAfter(this.last_task)).forEach(t=>{const e=this.notificationService.finishedTaskToNotification(t,t.success),n=new fe.a(e);n.timestamp=t.end_time,n.duration=t.duration,this.last_task&&!oe(t.end_time).isAfter(this.last_task)||(this.last_task=t.end_time,window.localStorage.setItem("last_task",this.last_task)),this.notificationService.save(n)}),this.cdRef.detectChanges(),e()}))}))}_handleTasks(t){for(const e of t)e.description=this.taskMessageService.getRunningTitle(e);this.executingTasks=t}triggerPrometheusAlerts(){this.prometheusAlertService.refresh(),this.prometheusNotificationService.refresh()}removeAll(){this.notificationService.removeAll()}remove(t){this.notificationService.remove(t)}closeSidebar(){this.isSidebarOpened=!1}trackByFn(t){return t}}var Pe=i["ɵcrt"]({encapsulation:0,styles:[["[_nghost-%COMP%]{position:fixed;top:53px;bottom:10px;right:-350px;width:350px;max-width:90vw;z-index:9;transition:all .6s}.active[_nghost-%COMP%]{right:20px}.card[_ngcontent-%COMP%]{height:100%}ngx-simplebar[_ngcontent-%COMP%]{height:calc(100% - 42.2px)}.separator[_ngcontent-%COMP%]{padding:5px 12px;color:#90949c;background-color:#eee;font-size:12px}.btn-link[_ngcontent-%COMP%]   .fa-trash-o[_ngcontent-%COMP%]{color:#000}table[_ngcontent-%COMP%]{width:100%}.row[_ngcontent-%COMP%]{margin-left:0;margin-right:0}"]],data:{}});function Me(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,29,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,27,"div",[["class","card tc_task border-0 mb-3"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,26,"div",[["class","row no-gutters"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,12,"div",[["class","col-md-3 text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,11,"span",[["class","text-info"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpad"](7,2),(t()(),i["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](10,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](11,2),(t()(),i["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](14,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](15,4),(t()(),i["ɵeld"](16,0,null,null,12,"div",[["class","col-md-9"]],null,null,null,null,null)),(t()(),i["ɵeld"](17,0,null,null,11,"div",[["class","card-body p-0"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,1,"h6",[["class","card-title bold"]],null,null,null,null,null)),(t()(),i["ɵted"](19,null,["",""])),(t()(),i["ɵeld"](20,0,null,null,2,"div",[["class","progress mb-1"]],null,null,null,null,null)),(t()(),i["ɵeld"](21,0,null,null,1,"progressbar",[["class","progress-striped active"],["max","100"]],[[1,"max",0],[2,"progress",null]],null,null,ae.b,ae.a)),i["ɵdid"](22,49152,null,0,re.b,[re.c],{animate:[0,"animate"],striped:[1,"striped"],value:[2,"value"],max:[3,"max"]},null),(t()(),i["ɵeld"](23,0,null,null,5,"p",[["class","card-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵeld"](24,0,null,null,2,"small",[["class","date float-left"]],null,null,null,null,null)),(t()(),i["ɵted"](25,null,[" "," "])),i["ɵppd"](26,1),(t()(),i["ɵeld"](27,0,null,null,1,"span",[["class","float-right"]],null,null,null,null,null)),(t()(),i["ɵted"](28,null,[" "," % "])),(t()(),i["ɵeld"](29,0,null,null,0,"hr",[],null,null,null,null,null))],(function(t,e){var n=e.component,a=t(e,7,0,n.icons.stack,n.icons.large2x);t(e,6,0,"text-info",a);var r=t(e,11,0,n.icons.stack2x,n.icons.circle);t(e,10,0,r);var o=t(e,15,0,n.icons.stack1x,n.icons.spinner,n.icons.spin,n.icons.inverse);t(e,14,0,o),t(e,22,0,!0,!0,e.context.$implicit.progress,"100")}),(function(t,e){t(e,19,0,e.context.$implicit.description),t(e,21,0,i["ɵnov"](e,22).max,i["ɵnov"](e,22).addClass);var n=i["ɵunv"](e,25,0,t(e,26,0,i["ɵnov"](e.parent.parent,0),e.context.$implicit.begin_time));t(e,25,0,n),t(e,28,0,e.context.$implicit.progress||0)}))}function xe(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Me)),i["ɵdid"](1,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,n.executingTasks,n.trackByFn)}),null)}function we(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"small",[],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Duration:"])),(t()(),i["ɵted"](4,null,[" "," "])),i["ɵpid"](0,ie,[]),(t()(),i["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,4,0,i["ɵunv"](e,4,0,i["ɵnov"](e,5).transform(e.parent.context.$implicit.duration)))}))}function Te(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,37,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,35,"div",[["class","card tc_notification border-0 mb-3"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,34,"div",[["class","row no-gutters"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,12,"div",[["class","col-md-3 text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,11,"span",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](7,3),(t()(),i["ɵeld"](8,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](10,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](11,2),(t()(),i["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](14,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](15,3),(t()(),i["ɵeld"](16,0,null,null,20,"div",[["class","col-md-9"]],null,null,null,null,null)),(t()(),i["ɵeld"](17,0,null,null,19,"div",[["class","card-body p-0"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,4,"button",[["class","btn btn-link float-right mt-0 pt-0"],["title","Remove notification"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.remove(t.context.index),a=!1!==n.stopPropagation()&&a),a}),null,null)),(t()(),i["ɵeld"](19,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](21,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](22,1),(t()(),i["ɵeld"](23,0,null,null,1,"h6",[["class","card-title bold"]],null,null,null,null,null)),(t()(),i["ɵted"](24,null,["",""])),(t()(),i["ɵeld"](25,0,null,null,0,"p",[["class","card-text"]],[[8,"innerHTML",1]],null,null,null,null)),(t()(),i["ɵeld"](26,0,null,null,10,"p",[["class","card-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,we)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](29,0,null,null,3,"small",[["class","date"]],[[8,"title",0]],null,null,null,null)),i["ɵppd"](30,1),(t()(),i["ɵted"](31,null,["",""])),i["ɵpid"](0,ie,[]),(t()(),i["ɵeld"](33,0,null,null,3,"i",[["class","float-right custom-icon"]],[[8,"title",0]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](35,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpad"](36,1),(t()(),i["ɵeld"](37,0,null,null,0,"hr",[],null,null,null,null,null))],(function(t,e){var n=e.component,a=t(e,7,0,n.icons.stack,n.icons.large2x,e.context.$implicit.textClass);t(e,6,0,a);var r=t(e,11,0,n.icons.circle,n.icons.stack2x);t(e,10,0,r);var o=t(e,15,0,n.icons.stack1x,n.icons.inverse,e.context.$implicit.iconClass);t(e,14,0,o);var i=t(e,22,0,n.icons.trash);t(e,21,0,i),t(e,28,0,e.context.$implicit.duration);var s=t(e,36,0,e.context.$implicit.applicationClass);t(e,35,0,"float-right custom-icon",s)}),(function(t,e){t(e,24,0,e.context.$implicit.title),t(e,25,0,e.context.$implicit.message);var n=i["ɵunv"](e,29,0,t(e,30,0,i["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.timestamp));t(e,29,0,n),t(e,31,0,i["ɵunv"](e,31,0,i["ɵnov"](e,32).transform(e.context.$implicit.timestamp,!0))),t(e,33,0,e.context.$implicit.application)}))}function Se(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,7,"button",[["class","btn btn-light btn-block"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.removeAll(),a=!1!==n.stopPropagation()&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](5,1),(t()(),i["ɵted"](-1,null,["   "])),(t()(),i["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Clear notifications"])),(t()(),i["ɵeld"](9,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Te)),i["ɵdid"](11,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=t(e,5,0,n.icons.trash);t(e,4,0,a),t(e,11,0,n.notifications)}),null)}function ke(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Se)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.notifications.length>0)}),null)}function Ie(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"div",[["class","message text-center"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["There are no notifications."]))],null,null)}function Ne(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Ie)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,0===n.notifications.length&&0===n.executingTasks.length)}),null)}function Re(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ae(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ee(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function De(t){return i["ɵvid"](2,[i["ɵpid"](0,se.a,[o.DatePipe]),(t()(),i["ɵand"](0,[["tasksTpl",2]],null,0,null,xe)),(t()(),i["ɵand"](0,[["notificationsTpl",2]],null,0,null,ke)),(t()(),i["ɵand"](0,[["emptyTpl",2]],null,0,null,Ne)),(t()(),i["ɵeld"](4,0,null,null,16,"div",[["class","card"]],null,[[null,"clickOutside"]],(function(t,e,n){var a=!0;return"clickOutside"===e&&(a=!1!==t.component.closeSidebar()&&a),a}),null,null)),i["ɵdid"](5,737280,null,0,ce.ClickOutsideDirective,[i.ElementRef,i.NgZone,i.PLATFORM_ID],{clickOutsideEnabled:[0,"clickOutsideEnabled"]},{clickOutside:"clickOutside"}),(t()(),i["ɵeld"](6,0,null,null,5,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Tasks and Notifications"])),(t()(),i["ɵeld"](9,0,null,null,2,"button",[["class","close float-right"],["tabindex","-1"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.closeSidebar()&&a),a}),null,null)),(t()(),i["ɵeld"](10,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["×"])),(t()(),i["ɵeld"](12,0,null,null,8,"ngx-simplebar",[["data-simplebar","init"]],null,null,null,ue,de)),i["ɵdid"](13,4440064,null,0,le.a,[i.ElementRef],{options:[0,"options"]},null),(t()(),i["ɵeld"](14,0,null,0,6,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Re)),i["ɵdid"](16,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ae)),i["ɵdid"](18,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ee)),i["ɵdid"](20,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.isSidebarOpened),t(e,13,0,n.simplebar),t(e,16,0,i["ɵnov"](e,1)),t(e,18,0,i["ɵnov"](e,2)),t(e,20,0,i["ɵnov"](e,3))}),null)}var Le=n("ej+x");class qe{constructor(t,e,n){this.authStorageService=t,this.summaryService=e,this.featureToggles=n,this.isPwdDisplayed=!1,this.icons=ut.a,this.isCollapsed=!0,this.showMenuSidebar=!0,this.displayedSubMenu="",this.simplebar={autoHide:!1},this.subs=new dt.a,this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}ngOnInit(){this.subs.add(this.summaryService.subscribe(t=>{t&&(this.summaryData=t)})),this.subs.add(this.authStorageService.isPwdDisplayed$.subscribe(t=>{this.isPwdDisplayed=t}))}ngOnDestroy(){this.subs.unsubscribe()}blockHealthColor(){if(this.summaryData&&this.summaryData.rbd_mirroring){if(this.summaryData.rbd_mirroring.errors>0)return{color:"#d9534f"};if(this.summaryData.rbd_mirroring.warnings>0)return{color:"#f0ad4e"}}}toggleSubMenu(t){this.displayedSubMenu=this.displayedSubMenu===t?"":t}}var je=i["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";  .cd-navbar-top .cd-navbar-brand{background:#374249;border-top:4px solid #2b99a8}  .cd-navbar-top .cd-navbar-brand.isPwdDisplayed{top:37.6px}  .cd-navbar-top .cd-navbar-brand .navbar-brand,   .cd-navbar-top .cd-navbar-brand .navbar-brand:hover{color:#eee;height:auto;padding:0}  .cd-navbar-top .cd-navbar-brand .navbar-brand>img{height:25px}  .cd-navbar-top .cd-navbar-brand .navbar-toggler{border:0}  .cd-navbar-top .cd-navbar-brand .navbar-toggler:focus,   .cd-navbar-top .cd-navbar-brand .navbar-toggler:hover{outline:0}  .cd-navbar-top .cd-navbar-brand .navbar-toggler .fa-navicon{color:#eee}  .cd-navbar-top .cd-navbar-brand .navbar-collapse{padding:0}  .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>.active>a{color:#eee;background-color:#2b99a8}  .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a,   .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a:focus,   .cd-navbar-top .cd-navbar-brand .cd-navbar-utility>li>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}  .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown]>a,   .cd-navbar-top .navbar-nav>li>.cd-navbar>a,   .cd-navbar-top .navbar-nav>li>a{color:#eee;line-height:1;padding:13.5px 18px!important;position:relative;display:block;text-decoration:none}  .cd-navbar-top .navbar-nav .nav-link,   .cd-navbar-top .navbar-nav .nav-link:hover{color:#eee}  .cd-navbar-top .navbar-nav>li:hover,   .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown].open>a,   .cd-navbar-top .navbar-nav>li>.cd-navbar>[dropdown]>a:hover,   .cd-navbar-top .navbar-nav>li>.cd-navbar>a:hover,   .cd-navbar-top .navbar-nav>li>a:hover{background-color:#2b99a8}  .cd-navbar-top .navbar-nav>.open>.cd-navbar>[dropdown]>a,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>[dropdown]>a:hover,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a:focus,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>a:hover,   .cd-navbar-top .navbar-nav>.open>.cd-navbar>li>a:focus,   .cd-navbar-top .navbar-nav>.open>a,   .cd-navbar-top .navbar-nav>.open>a:focus,   .cd-navbar-top .navbar-nav>.open>a:hover{color:#eee;border-color:transparent;background-color:transparent}@media (min-width:768px){  .cd-navbar-top .cd-navbar-utility{border-bottom:0;position:absolute;right:0;top:0;font-size:1.1rem}}@media (max-width:calc(768px - 1px)){  .cd-navbar-top .navbar-nav{margin:0}  .cd-navbar-top .navbar-nav .fa{margin-right:.5em}  .cd-navbar-top .navbar-nav .open .dropdown-menu{border:0;padding-top:0;padding-bottom:0;background-color:#2b99a8}  .cd-navbar-top .navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 35px;color:#eee}  .cd-navbar-top .navbar-nav .open .dropdown-menu>.active>a{background-color:#2b99a8}  .cd-navbar-top .navbar-nav>li>a:hover{background-color:#2b99a8}}.cd-navbar-primary[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .cd-navbar-primary[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .cd-navbar-primary[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{color:#eee!important;background-color:#2b99a8!important;border:0!important}.wrapper[_ngcontent-%COMP%]{display:flex;width:100%}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]{width:200px;top:43px;background:#374249;overflow-y:auto;position:fixed;bottom:0;left:0;z-index:999;color:#fff;transition:all .3s}.wrapper[_ngcontent-%COMP%]   #sidebar.active[_ngcontent-%COMP%]{margin-left:-200px}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul.component[_ngcontent-%COMP%]{padding:20px 0;margin:0}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#fff;padding:10px}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{padding:10px;font-size:1.1em;display:block;color:#fff;text-decoration:none}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff;background:#2b99a8}.wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li.active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .wrapper[_ngcontent-%COMP%]   #sidebar[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]   a[aria-expanded=true][_ngcontent-%COMP%]{color:#fff}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[_ngcontent-%COMP%]{position:relative}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[_ngcontent-%COMP%]::after{position:absolute;right:20px;content:"";font-family:ForkAwesome;border:0;font-size:1rem;transition:transform .3s ease-in-out}.wrapper[_ngcontent-%COMP%]   a.dropdown-toggle[aria-expanded=true][_ngcontent-%COMP%]::after{transform:rotate(90deg)}.wrapper[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{font-size:.9em!important;padding-left:30px!important;background:#4d5c66}.wrapper[_ngcontent-%COMP%]   .cd-navbar-primary[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus{outline:0}.wrapper[_ngcontent-%COMP%]   ngx-simplebar[_ngcontent-%COMP%]{height:100%}#content[_ngcontent-%COMP%]{width:calc(100% - 200px);transition:all .3s;position:absolute;top:43px;bottom:0;right:0}#content.active[_ngcontent-%COMP%]{width:100vw}.isPwdDisplayed[_nghost-%COMP%]   .cd-navbar-top[_ngcontent-%COMP%]   .cd-navbar-brand[_ngcontent-%COMP%]{top:37.6px}.isPwdDisplayed[_nghost-%COMP%]   #sidebar[_ngcontent-%COMP%]{top:80.6px}.isPwdDisplayed[_nghost-%COMP%]   #content[_ngcontent-%COMP%]{top:80.6px}.isPwdDisplayed[_nghost-%COMP%]   cd-notifications-sidebar[_ngcontent-%COMP%]{top:90.6px}']],data:{}});function Fe(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function ze(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ge(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"cd-language-selector",[["class","cd-navbar"]],null,null,null,lt,at)),i["ɵdid"](2,114688,null,0,et,[nt.j,X],null,null),(t()(),i["ɵeld"](3,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,1,"cd-notifications",[["class","cd-navbar"]],null,null,null,ht,mt)),i["ɵdid"](5,245760,null,0,pt,[gt.a,ft.a],null,null),(t()(),i["ɵeld"](6,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"cd-dashboard-help",[["class","cd-navbar"]],null,null,null,Tt,xt)),i["ɵdid"](8,114688,null,0,Pt,[ft.a,bt.a,Mt.b,yt.a],null,null),(t()(),i["ɵeld"](9,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,1,"cd-administration",[["class","cd-navbar"]],null,null,null,Et,It)),i["ɵdid"](11,114688,null,0,kt,[yt.a],null,null),(t()(),i["ɵeld"](12,0,null,null,2,"li",[["class","nav-item "]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,1,"cd-identity",[["class","cd-navbar"]],null,null,null,zt,qt)),i["ɵdid"](14,114688,null,0,Lt,[yt.a,Dt.a],null,null)],(function(t,e){t(e,2,0),t(e,5,0),t(e,8,0),t(e,11,0),t(e,14,0)}),null)}function Be(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_hosts"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,5,{links:1}),i["ɵqud"](603979776,6,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/hosts"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[6,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Hosts"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/hosts")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Ve(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_inventory"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,7,{links:1}),i["ɵqud"](603979776,8,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/inventory"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[8,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Inventory"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/inventory")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Ye(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_monitor"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,9,{links:1}),i["ɵqud"](603979776,10,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/monitor/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[10,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Monitors"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/monitor/")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function He(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_cluster_services"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,11,{links:1}),i["ɵqud"](603979776,12,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/services/"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[12,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Services"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/services/")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Ue(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_osds"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,13,{links:1}),i["ɵqud"](603979776,14,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/osd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[14,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["OSDs"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/osd")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function We(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_configuration"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,15,{links:1}),i["ɵqud"](603979776,16,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/configuration"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[16,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Configuration"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/configuration")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Ke(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_crush"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,17,{links:1}),i["ɵqud"](603979776,18,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/crush-map"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[18,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["CRUSH map"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/crush-map")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function $e(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_modules"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,19,{links:1}),i["ɵqud"](603979776,20,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/mgr-modules"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[20,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Manager modules"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/mgr-modules")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Ze(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_log"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,21,{links:1}),i["ɵqud"](603979776,22,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[22,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Logs"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/logs")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Je(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_monitoring"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,23,{links:1}),i["ɵqud"](603979776,24,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/monitoring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[24,4],[4,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Monitoring"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/monitoring")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function Xe(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,28,"li",[["class","nav-item tc_menuitem_cluster"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,3,{links:1}),i["ɵqud"](603979776,4,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("cluster")&&a),a}),null,null)),(t()(),i["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Cluster"])),(t()(),i["ɵeld"](7,0,null,null,21,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),i["ɵdid"](8,8404992,null,0,Yt,[i.ElementRef,i.Renderer2,Gt.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Be)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ve)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ye)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,He)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ue)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,We)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ke)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,$e)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ze)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Je)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,8,0,!0,"cluster"!==n.displayedSubMenu),t(e,10,0,n.permissions.hosts.read),t(e,12,0,n.permissions.hosts.read),t(e,14,0,n.permissions.monitor.read),t(e,16,0,n.permissions.hosts.read),t(e,18,0,n.permissions.osd.read),t(e,20,0,n.permissions.configOpt.read),t(e,22,0,n.permissions.osd.read),t(e,24,0,n.permissions.configOpt.read),t(e,26,0,n.permissions.log.read),t(e,28,0,n.permissions.prometheus.read)}),(function(t,e){t(e,4,0,"cluster"==e.component.displayedSubMenu),t(e,7,0,i["ɵnov"](e,8).isCollapse,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isCollapsed,i["ɵnov"](e,8).isCollapsing)}))}function Qe(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_pool"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,25,{links:1}),i["ɵqud"](603979776,26,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/pool"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[26,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Pools"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/pool")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function tn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_block_images"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,29,{links:1}),i["ɵqud"](603979776,30,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/block/rbd"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[30,4],[28,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Images"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/rbd")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function en(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"small",[["class","badge badge-warning"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)}))}function nn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"small",[["class","badge badge-danger"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){var n=e.component;t(e,1,0,null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors)}))}function an(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,"li",[["class","tc_submenuitem tc_submenuitem_block_mirroring"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,31,{links:1}),i["ɵqud"](603979776,32,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,7,"a",[["routerLink","/block/mirroring"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[32,4],[28,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Mirroring"])),(t()(),i["ɵand"](16777216,null,null,1,null,en)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,nn)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,5,0,"/block/mirroring"),t(e,9,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.warnings)),t(e,11,0,0!==(null==n.summaryData?null:null==n.summaryData.rbd_mirroring?null:n.summaryData.rbd_mirroring.errors))}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function rn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_block_iscsi"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,33,{links:1}),i["ɵqud"](603979776,34,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["routerLink","/block/iscsi"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[34,4],[28,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["iSCSI"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/block/iscsi")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function on(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,16,"li",[["class","nav-item tc_menuitem_block"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,27,{links:1}),i["ɵqud"](603979776,28,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,4,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("block")&&a),a}),null,null)),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),(t()(),i["ɵeld"](7,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Block"])),(t()(),i["ɵeld"](9,0,null,null,7,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),i["ɵdid"](10,8404992,null,0,Yt,[i.ElementRef,i.Renderer2,Gt.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,tn)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,an)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,rn)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,6,0,n.blockHealthColor()),t(e,10,0,!0,"block"!==n.displayedSubMenu),t(e,12,0,n.permissions.rbdImage.read&&e.parent.context.ngIf.rbd),t(e,14,0,n.permissions.rbdMirroring.read&&e.parent.context.ngIf.mirroring),t(e,16,0,n.permissions.iscsi.read&&e.parent.context.ngIf.iscsi)}),(function(t,e){t(e,4,0,"block"==e.component.displayedSubMenu),t(e,9,0,i["ɵnov"](e,10).isCollapse,i["ɵnov"](e,10).isExpanded,i["ɵnov"](e,10).isExpanded,i["ɵnov"](e,10).isExpanded,i["ɵnov"](e,10).isCollapsed,i["ɵnov"](e,10).isCollapsing)}))}function sn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_nfs"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,35,{links:1}),i["ɵqud"](603979776,36,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/nfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[36,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["NFS"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/nfs")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function cn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[["class","nav-item tc_menuitem_cephfs"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,37,{links:1}),i["ɵqud"](603979776,38,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["class","nav-link"],["routerLink","/cephfs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](5,671744,[[38,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Filesystems"]))],(function(t,e){t(e,1,0,"active"),t(e,5,0,"/cephfs")}),(function(t,e){t(e,4,0,i["ɵnov"](e,5).target,i["ɵnov"](e,5).href)}))}function ln(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,29,"li",[["class","nav-item tc_menuitem_rgw"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](1,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,39,{links:1}),i["ɵqud"](603979776,40,{linksWithHrefs:1}),(t()(),i["ɵeld"](4,0,null,null,2,"a",[["aria-controls","collapseBasic"],["class","nav-link dropdown-toggle"]],[[1,"aria-expanded",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleSubMenu("rgw")&&a),a}),null,null)),(t()(),i["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Object Gateway"])),(t()(),i["ɵeld"](7,0,null,null,22,"ul",[["class","list-unstyled"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),i["ɵdid"](8,8404992,null,0,Yt,[i.ElementRef,i.Renderer2,Gt.b],{isAnimated:[0,"isAnimated"],collapse:[1,"collapse"]},null),(t()(),i["ɵeld"](9,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_daemons"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](10,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,41,{links:1}),i["ɵqud"](603979776,42,{linksWithHrefs:1}),(t()(),i["ɵeld"](13,0,null,null,2,"a",[["routerLink","/rgw/daemon"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,14).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](14,671744,[[42,4],[40,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Daemons"])),(t()(),i["ɵeld"](16,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_users"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](17,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,43,{links:1}),i["ɵqud"](603979776,44,{linksWithHrefs:1}),(t()(),i["ɵeld"](20,0,null,null,2,"a",[["routerLink","/rgw/user"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,21).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](21,671744,[[44,4],[40,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Users"])),(t()(),i["ɵeld"](23,0,null,null,6,"li",[["class","tc_submenuitem tc_submenuitem_rgw_buckets"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](24,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,45,{links:1}),i["ɵqud"](603979776,46,{linksWithHrefs:1}),(t()(),i["ɵeld"](27,0,null,null,2,"a",[["routerLink","/rgw/bucket"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,28).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](28,671744,[[46,4],[40,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Buckets"]))],(function(t,e){var n=e.component;t(e,1,0,"active"),t(e,8,0,!0,"rgw"!==n.displayedSubMenu),t(e,10,0,"active"),t(e,14,0,"/rgw/daemon"),t(e,17,0,"active"),t(e,21,0,"/rgw/user"),t(e,24,0,"active"),t(e,28,0,"/rgw/bucket")}),(function(t,e){t(e,4,0,"rgw"==e.component.displayedSubMenu),t(e,7,0,i["ɵnov"](e,8).isCollapse,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isExpanded,i["ɵnov"](e,8).isCollapsed,i["ɵnov"](e,8).isCollapsing),t(e,13,0,i["ɵnov"](e,14).target,i["ɵnov"](e,14).href),t(e,20,0,i["ɵnov"](e,21).target,i["ɵnov"](e,21).href),t(e,27,0,i["ɵnov"](e,28).target,i["ɵnov"](e,28).href)}))}function dn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,28,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,15,"li",[["class","nav-item tc_menuitem_dashboard"],["routerLinkActive","active"]],null,null,null,null,null)),i["ɵdid"](2,1720320,null,2,St.o,[St.m,i.ElementRef,i.Renderer2,[2,St.n],[2,St.p]],{routerLinkActive:[0,"routerLinkActive"]},null),i["ɵqud"](603979776,1,{links:1}),i["ɵqud"](603979776,2,{linksWithHrefs:1}),(t()(),i["ɵeld"](5,0,null,null,11,"a",[["class","nav-link"],["routerLink","/dashboard"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,6).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](6,671744,[[2,4]],0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵeld"](7,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Dashboard"])),(t()(),i["ɵted"](-1,null,["  "])),(t()(),i["ɵeld"](10,0,null,null,6,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](12,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](13,1),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](15,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),i["ɵppd"](16,1),(t()(),i["ɵand"](16777216,null,null,1,null,Xe)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Qe)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,on)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,sn)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,cn)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ln)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,"active"),t(e,6,0,"/dashboard");var a=t(e,13,0,n.icons.health);t(e,12,0,a);var r=i["ɵunv"](e,15,0,t(e,16,0,i["ɵnov"](e.parent.parent,0),null==n.summaryData?null:n.summaryData.health_status));t(e,15,0,r),t(e,18,0,n.permissions.hosts.read||n.permissions.monitor.read||n.permissions.osd.read||n.permissions.configOpt.read||n.permissions.log.read||n.permissions.prometheus.read),t(e,20,0,n.permissions.pool.read),t(e,22,0,(n.permissions.rbdImage.read||n.permissions.rbdMirroring.read||n.permissions.iscsi.read)&&(e.context.ngIf.rbd||e.context.ngIf.mirroring||e.context.ngIf.iscsi)),t(e,24,0,n.permissions.nfs.read&&e.context.ngIf.nfs),t(e,26,0,n.permissions.cephfs.read&&e.context.ngIf.cephfs),t(e,28,0,n.permissions.rgw.read&&e.context.ngIf.rgw)}),(function(t,e){t(e,5,0,i["ɵnov"](e,6).target,i["ɵnov"](e,6).href)}))}function un(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,2,null,dn)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵpid"](131072,o.AsyncPipe,[i.ChangeDetectorRef]),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,1,0,i["ɵunv"](e,1,0,i["ɵnov"](e,2).transform(n.enabledFeature$)))}),null)}function gn(t){return i["ɵvid"](0,[i["ɵpid"](0,Ut,[]),(t()(),i["ɵeld"](1,0,null,null,1,"cd-pwd-expiration-notification",[],null,null,null,ne,Xt)),i["ɵdid"](2,114688,null,0,Jt,[$t.a,yt.a],null,null),(t()(),i["ɵeld"](3,0,null,null,1,"cd-notifications-sidebar",[],[[2,"active",null]],null,null,De,Pe)),i["ɵdid"](4,245760,null,0,Ce,[gt.a,ft.a,ve.a,Oe,yt.a,_e,i.NgZone,i.ChangeDetectorRef],null,null),(t()(),i["ɵeld"](5,0,null,null,15,"div",[["class","cd-navbar-top"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,14,"nav",[["class","navbar fixed-top navbar-expand-md navbar-dark cd-navbar-brand"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"button",[["class","btn btn-link py-0"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.showMenuSidebar=!r.showMenuSidebar)&&a),a}),null,null)),(t()(),i["ɵeld"](8,0,null,null,0,"i",[["aria-hidden","true"],["class","fa fa-bars fa-2x"]],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,1,"a",[["class","navbar-brand ml-2"],["href","#"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,0,"img",[["alt","Ceph"],["src","assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,4,"button",[["class","navbar-toggler"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=0!=(r.isCollapsed=!r.isCollapsed)&&a),a}),null,null)),(t()(),i["ɵeld"](12,0,null,null,1,"span",[["class","sr-only"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Toggle navigation"])),(t()(),i["ɵeld"](14,0,null,null,1,"span",[["class",""]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,0,"i",[["class","fa fa-navicon fa-lg"]],null,null,null,null,null)),(t()(),i["ɵeld"](16,0,null,null,4,"div",[["class","collapse navbar-collapse"]],[[2,"collapse",null],[2,"in",null],[2,"show",null],[1,"aria-expanded",0],[1,"aria-hidden",0],[2,"collapsing",null]],null,null,null,null)),i["ɵdid"](17,8404992,null,0,Yt,[i.ElementRef,i.Renderer2,Gt.b],{collapse:[0,"collapse"]},null),(t()(),i["ɵeld"](18,0,null,null,2,"ul",[["class","nav navbar-nav cd-navbar-utility my-2 my-md-0"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Fe)),i["ɵdid"](20,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵeld"](21,0,null,null,14,"div",[["class","wrapper"]],null,null,null,null,null)),(t()(),i["ɵeld"](22,0,null,null,8,"nav",[["id","sidebar"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](24,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](25,{active:0}),(t()(),i["ɵeld"](26,0,null,null,4,"ngx-simplebar",[["data-simplebar","init"]],null,null,null,ue,de)),i["ɵdid"](27,4440064,null,0,le.a,[i.ElementRef],{options:[0,"options"]},null),(t()(),i["ɵeld"](28,0,null,0,2,"ul",[["class","list-unstyled components cd-navbar-primary"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,ze)),i["ɵdid"](30,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵeld"](31,0,null,null,4,"div",[["id","content"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](33,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](34,{active:0}),i["ɵncd"](null,0),(t()(),i["ɵand"](0,[["cd_utilities",2]],null,0,null,Ge)),(t()(),i["ɵand"](0,[["cd_menu",2]],null,0,null,un))],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0),t(e,17,0,n.isCollapsed),t(e,20,0,i["ɵnov"](e,36));var a=t(e,25,0,!n.showMenuSidebar);t(e,24,0,a),t(e,27,0,n.simplebar),t(e,30,0,i["ɵnov"](e,37));var r=t(e,34,0,!n.showMenuSidebar);t(e,33,0,r)}),(function(t,e){t(e,3,0,i["ɵnov"](e,4).isSidebarOpened),t(e,16,0,i["ɵnov"](e,17).isCollapse,i["ɵnov"](e,17).isExpanded,i["ɵnov"](e,17).isExpanded,i["ɵnov"](e,17).isExpanded,i["ɵnov"](e,17).isCollapsed,i["ɵnov"](e,17).isCollapsing)}))}var fn=n("LRne"),pn=n("HDdC"),mn=n("Cfvw"),hn=n("pLZG"),bn=n("5+tZ"),yn=n("02Lk"),_n=n("IAdc"),On=n("SxV6"),vn=n("f29J");class Cn{resolve(t){const e=t.routeConfig.data,n=null===e.path?null:this.getFullPath(t),a=[{text:"string"==typeof e.breadcrumbs?e.breadcrumbs:e.breadcrumbs.text||e.text||n,path:n}];return Object(fn.a)(a)}getFullPath(t){return t.pathFromRoot.reduce((t,e)=>t+e.url.reduce((t,e)=>t+"/"+e.path,""),"")}}class Pn{constructor(t,e){this.router=t,this.injector=e,this.crumbs=[],this.finished=!1,this.defaultResolver=new Cn,this.subscription=this.router.events.pipe(Object(hn.a)(t=>t instanceof St.e)).subscribe(()=>{this.finished=!1}),this.subscription=this.router.events.pipe(Object(hn.a)(t=>t instanceof St.d)).subscribe(()=>{this._resolveCrumbs(t.routerState.snapshot.root).pipe(Object(bn.a)(t=>t),Object(yn.a)(t=>t.text),Object(_n.a)(),Object(bn.a)(t=>{const e=this.postProcess(t);return this.wrapIntoObservable(e).pipe(Object(On.a)())})).subscribe(t=>{this.finished=!0,this.crumbs=t})})}ngOnDestroy(){this.subscription.unsubscribe()}_resolveCrumbs(t){let e;const n=t.routeConfig&&t.routeConfig.data;if(n&&n.breadcrumbs){let a;a=n.breadcrumbs.prototype instanceof Cn?this.injector.get(n.breadcrumbs):this.defaultResolver;const r=a.resolve(t);e=this.wrapIntoObservable(r).pipe(Object(On.a)())}else e=Object(fn.a)([]);return t.firstChild&&(e=e.pipe(Object(vn.a)(this._resolveCrumbs(t.firstChild)))),e}postProcess(t){const e=[];return t.forEach(t=>{const n=t.text.split("/");if(n.length>1){t.text=n[n.length-1];for(let t=0;t<n.length-1;t++)e.push({text:n[t],path:null})}e.push(t)}),e}isPromise(t){return t&&"function"==typeof t.then}wrapIntoObservable(t){return t instanceof pn.a?t:this.isPromise(t)?Object(mn.a)(Promise.resolve(t)):Object(fn.a)(t)}}var Mn=i["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.breadcrumb[_ngcontent-%COMP%]{padding:8px 0;background-color:transparent;border-radius:0;margin-top:8px}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] + li[_ngcontent-%COMP%]:before{padding:0 5px 0 7px;color:#474544;font-family:ForkAwesome;content:""}.breadcrumb[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:#474544}']],data:{}});function xn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"a",[["preserveFragment",""]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](1,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{preserveFragment:[0,"preserveFragment"],routerLink:[1,"routerLink"]},null),(t()(),i["ɵted"](2,null,["",""]))],(function(t,e){t(e,1,0,"",e.parent.context.$implicit.path)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).target,i["ɵnov"](e,1).href),t(e,2,0,e.parent.context.$implicit.text)}))}function wn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.text)}))}function Tn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,"li",[["class","breadcrumb-item"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](3,{active:0}),(t()(),i["ɵand"](16777216,null,null,1,null,xn)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,wn)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=t(e,3,0,e.context.last&&e.component.finished);t(e,2,0,"breadcrumb-item",n),t(e,5,0,!e.context.last&&null!==e.context.$implicit.path),t(e,7,0,e.context.last||null===e.context.$implicit.path)}),null)}function Sn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"ol",[["class","breadcrumb"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Tn)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.crumbs)}),null)}function kn(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Sn)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.crumbs.length)}),null)}var In=n("978R"),Nn=n("VXsX");const Rn=()=>Object.assign(new In.a,{container:"body"});class An{constructor(t,e,n){this.router=t,this.summaryService=e,this.taskManagerService=n,this.subs=new dt.a}ngOnInit(){this.subs.add(this.summaryService.startPolling()),this.subs.add(this.taskManagerService.init(this.summaryService))}ngOnDestroy(){this.subs.unsubscribe()}isDashboardPage(){return"/dashboard"===this.router.url}}var En=i["ɵcrt"]({encapsulation:0,styles:[[".dashboard[_ngcontent-%COMP%]{background-color:#f5f5f5;margin:0;padding:0}.container-fluid[_ngcontent-%COMP%]{overflow:auto}  #toast-container{margin-top:2vw}@media (max-width:1600px){  #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){  #toast-container{margin-top:9vw}}@media (max-width:900px){  #toast-container{margin-top:10vw}}@media (max-width:319px){  #toast-container{margin-top:11vw}}@media (max-width:260px){  #toast-container{margin-top:14vw}}"]],data:{}});function Dn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,"block-ui",[],null,null,null,E,A)),i["ɵdid"](1,114688,null,0,w,[x],null,null),(t()(),i["ɵeld"](2,0,null,0,9,"cd-navigation",[],[[2,"isPwdDisplayed",null]],null,null,gn,je)),i["ɵdid"](3,245760,null,0,qe,[yt.a,ft.a,Le.a],null,null),(t()(),i["ɵeld"](4,0,null,0,7,"div",[["class","container-fluid h-100"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](7,{dashboard:0}),(t()(),i["ɵeld"](8,0,null,null,1,"cd-breadcrumbs",[],null,null,null,kn,Mn)),i["ɵdid"](9,180224,null,0,Pn,[St.m,i.Injector],null,null),(t()(),i["ɵeld"](10,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),i["ɵdid"](11,212992,null,0,St.r,[St.b,i.ViewContainerRef,i.ComponentFactoryResolver,[8,null],i.ChangeDetectorRef],null,null)],(function(t,e){var n=e.component;t(e,1,0),t(e,3,0);var a=t(e,7,0,n.isDashboardPage());t(e,6,0,"container-fluid h-100",a),t(e,11,0)}),(function(t,e){t(e,2,0,i["ɵnov"](e,3).isPwdDisplayed)}))}function Ln(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-workbench-layout",[],null,null,null,Dn,En)),i["ɵprd"](5120,null,In.a,Rn,[]),i["ɵdid"](2,245760,null,0,An,[St.m,ft.a,Nn.a],null,null)],(function(t,e){t(e,2,0)}),null)}var qn=i["ɵccf"]("cd-workbench-layout",An,Ln,{},{},[]),jn=n("pKUh"),Fn=n("2ZVE"),zn=n("KOzp"),Gn=n("2uy1");class Bn{constructor(){this.cardClass=""}}var Vn=i["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.tree-children.tree-children-no-padding[_ngcontent-%COMP%]{padding-left:0}.node-drop-slot[_ngcontent-%COMP%]{display:block;height:2px}.node-drop-slot.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(90deg)}.toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(0)}.toggle-children-wrapper[_ngcontent-%COMP%]{padding:2px 3px 5px 1px}.toggle-children[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder[_ngcontent-%COMP%]{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper[_ngcontent-%COMP%]{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-active.node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper.node-content-wrapper-active[_ngcontent-%COMP%]:hover{background:#beebff}.node-content-wrapper-focused[_ngcontent-%COMP%]{background:#e7f4f9}.node-content-wrapper[_ngcontent-%COMP%]:hover{background:#f7fbff}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper[_ngcontent-%COMP%]:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled[_ngcontent-%COMP%]{opacity:.5}tree-viewport[_ngcontent-%COMP%]{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children[_ngcontent-%COMP%]{overflow:hidden;padding-left:20px}.empty-tree-drop-slot[_ngcontent-%COMP%]   .node-drop-slot[_ngcontent-%COMP%]{height:20px;min-width:100px}.angular-tree-component[_ngcontent-%COMP%]{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]{direction:rtl}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(180deg)!important}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .tree-children[_ngcontent-%COMP%]{padding-right:20px;padding-left:0}tree-node-checkbox[_ngcontent-%COMP%]{padding:1px}[_ngcontent-%COMP%]:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{box-sizing:border-box}html[_ngcontent-%COMP%]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article[_ngcontent-%COMP%], aside[_ngcontent-%COMP%], figcaption[_ngcontent-%COMP%], figure[_ngcontent-%COMP%], footer[_ngcontent-%COMP%], header[_ngcontent-%COMP%], hgroup[_ngcontent-%COMP%], main[_ngcontent-%COMP%], nav[_ngcontent-%COMP%], section[_ngcontent-%COMP%]{display:block}body[_ngcontent-%COMP%]{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"][_ngcontent-%COMP%]:focus{outline:0!important}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-top:0}dl[_ngcontent-%COMP%], ol[_ngcontent-%COMP%], p[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem}abbr[data-original-title][_ngcontent-%COMP%], abbr[title][_ngcontent-%COMP%]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address[_ngcontent-%COMP%]{margin-bottom:1rem;font-style:normal;line-height:inherit}ol[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ol[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{margin-bottom:0}dt[_ngcontent-%COMP%]{font-weight:700}dd[_ngcontent-%COMP%]{margin-bottom:.5rem;margin-left:0}blockquote[_ngcontent-%COMP%], figure[_ngcontent-%COMP%]{margin:0 0 1rem}b[_ngcontent-%COMP%], strong[_ngcontent-%COMP%]{font-weight:bolder}sub[_ngcontent-%COMP%], sup[_ngcontent-%COMP%]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[_ngcontent-%COMP%]{bottom:-.25em}sup[_ngcontent-%COMP%]{top:-.5em}a[_ngcontent-%COMP%]{color:#2b99a8;text-decoration:none;background-color:transparent}a[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}a[_ngcontent-%COMP%]:not([href]):not([tabindex]), a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus, a[_ngcontent-%COMP%]:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus{outline:0}code[_ngcontent-%COMP%], kbd[_ngcontent-%COMP%], pre[_ngcontent-%COMP%], samp[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem;overflow:auto;display:block;color:#212529}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}svg[_ngcontent-%COMP%]{overflow:hidden;vertical-align:middle}table[_ngcontent-%COMP%]{border-collapse:collapse}caption[_ngcontent-%COMP%]{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th[_ngcontent-%COMP%]{text-align:inherit}label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:.5rem}button[_ngcontent-%COMP%]{border-radius:0}button[_ngcontent-%COMP%]:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%], optgroup[_ngcontent-%COMP%], select[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%]{overflow:visible}button[_ngcontent-%COMP%], select[_ngcontent-%COMP%]{text-transform:none}select[_ngcontent-%COMP%]{word-wrap:normal}[type=button][_ngcontent-%COMP%], [type=reset][_ngcontent-%COMP%], [type=submit][_ngcontent-%COMP%], button[_ngcontent-%COMP%]{-webkit-appearance:button}[type=button][_ngcontent-%COMP%]:not(:disabled), [type=reset][_ngcontent-%COMP%]:not(:disabled), [type=submit][_ngcontent-%COMP%]:not(:disabled), button[_ngcontent-%COMP%]:not(:disabled){cursor:pointer}[type=button][_ngcontent-%COMP%]::-moz-focus-inner, [type=reset][_ngcontent-%COMP%]::-moz-focus-inner, [type=submit][_ngcontent-%COMP%]::-moz-focus-inner, button[_ngcontent-%COMP%]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][_ngcontent-%COMP%], input[type=radio][_ngcontent-%COMP%]{box-sizing:border-box;padding:0}input[type=date][_ngcontent-%COMP%], input[type=datetime-local][_ngcontent-%COMP%], input[type=month][_ngcontent-%COMP%], input[type=time][_ngcontent-%COMP%]{-webkit-appearance:listbox}textarea[_ngcontent-%COMP%]{overflow:auto;resize:vertical}fieldset[_ngcontent-%COMP%]{min-width:0;padding:0;margin:0;border:0}legend[_ngcontent-%COMP%]{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress[_ngcontent-%COMP%]{vertical-align:baseline}[type=number][_ngcontent-%COMP%]::-webkit-inner-spin-button, [type=number][_ngcontent-%COMP%]::-webkit-outer-spin-button{height:auto}[type=search][_ngcontent-%COMP%]{outline-offset:-2px;-webkit-appearance:none}[type=search][_ngcontent-%COMP%]::-webkit-search-decoration{-webkit-appearance:none}[_ngcontent-%COMP%]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[_ngcontent-%COMP%]{display:inline-block}summary[_ngcontent-%COMP%]{display:list-item;cursor:pointer}template[_ngcontent-%COMP%]{display:none}[hidden][_ngcontent-%COMP%]{display:none!important}.h1[_ngcontent-%COMP%], .h2[_ngcontent-%COMP%], .h3[_ngcontent-%COMP%], .h4[_ngcontent-%COMP%], .h5[_ngcontent-%COMP%], .h6[_ngcontent-%COMP%], h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1[_ngcontent-%COMP%], h1[_ngcontent-%COMP%]{font-size:2.5rem}.h2[_ngcontent-%COMP%], h2[_ngcontent-%COMP%]{font-size:2rem}.h3[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{font-size:1.75rem}.h4[_ngcontent-%COMP%], h4[_ngcontent-%COMP%]{font-size:1.5rem}.h5[_ngcontent-%COMP%], h5[_ngcontent-%COMP%]{font-size:1.25rem}.h6[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-size:1rem}.lead[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:300}.display-1[_ngcontent-%COMP%]{font-size:6rem;font-weight:300;line-height:1.2}.display-2[_ngcontent-%COMP%]{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3[_ngcontent-%COMP%]{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4[_ngcontent-%COMP%]{font-size:3.5rem;font-weight:300;line-height:1.2}hr[_ngcontent-%COMP%]{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:80%;font-weight:400}.mark[_ngcontent-%COMP%], mark[_ngcontent-%COMP%]{padding:.2em;background-color:#fcf8e3}.list-inline[_ngcontent-%COMP%], .list-unstyled[_ngcontent-%COMP%]{padding-left:0;list-style:none}.list-inline-item[_ngcontent-%COMP%]{display:inline-block}.list-inline-item[_ngcontent-%COMP%]:not(:last-child){margin-right:.5rem}.initialism[_ngcontent-%COMP%]{font-size:90%;text-transform:uppercase}.blockquote[_ngcontent-%COMP%]{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer[_ngcontent-%COMP%]{display:block;font-size:80%;color:#6c757d}.blockquote-footer[_ngcontent-%COMP%]::before{content:"— "}.img-fluid[_ngcontent-%COMP%]{max-width:100%;height:auto}.img-thumbnail[_ngcontent-%COMP%]{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure[_ngcontent-%COMP%]{display:inline-block}.figure-img[_ngcontent-%COMP%]{margin-bottom:.5rem;line-height:1}.figure-caption[_ngcontent-%COMP%]{font-size:90%;color:#6c757d}code[_ngcontent-%COMP%]{font-size:87.5%;color:#e83e8c;word-break:break-word}a[_ngcontent-%COMP%] > code[_ngcontent-%COMP%]{color:inherit}kbd[_ngcontent-%COMP%]{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd[_ngcontent-%COMP%]   kbd[_ngcontent-%COMP%]{padding:0;font-size:100%;font-weight:700}pre[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable[_ngcontent-%COMP%]{max-height:340px;overflow-y:scroll}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container[_ngcontent-%COMP%]{max-width:540px}}@media (min-width:768px){.container[_ngcontent-%COMP%]{max-width:720px}}@media (min-width:992px){.container[_ngcontent-%COMP%]{max-width:960px}}@media (min-width:1200px){.container[_ngcontent-%COMP%]{max-width:1140px}}.container-fluid[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.no-gutters[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.no-gutters[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .no-gutters[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:0;padding-left:0}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-auto[_ngcontent-%COMP%], .col-lg[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-lg-auto[_ngcontent-%COMP%], .col-md[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-md-auto[_ngcontent-%COMP%], .col-sm[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], .col-sm-auto[_ngcontent-%COMP%], .col-xl[_ngcontent-%COMP%], .col-xl-1[_ngcontent-%COMP%], .col-xl-10[_ngcontent-%COMP%], .col-xl-11[_ngcontent-%COMP%], .col-xl-12[_ngcontent-%COMP%], .col-xl-2[_ngcontent-%COMP%], .col-xl-3[_ngcontent-%COMP%], .col-xl-4[_ngcontent-%COMP%], .col-xl-5[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%], .col-xl-7[_ngcontent-%COMP%], .col-xl-8[_ngcontent-%COMP%], .col-xl-9[_ngcontent-%COMP%], .col-xl-auto[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{position:relative;width:100%;padding-right:15px;padding-left:15px}.col[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-first[_ngcontent-%COMP%]{order:-1}.order-last[_ngcontent-%COMP%]{order:13}.order-0[_ngcontent-%COMP%]{order:0}.order-1[_ngcontent-%COMP%]{order:1}.order-2[_ngcontent-%COMP%]{order:2}.order-3[_ngcontent-%COMP%]{order:3}.order-4[_ngcontent-%COMP%]{order:4}.order-5[_ngcontent-%COMP%]{order:5}.order-6[_ngcontent-%COMP%]{order:6}.order-7[_ngcontent-%COMP%]{order:7}.order-8[_ngcontent-%COMP%]{order:8}.order-9[_ngcontent-%COMP%]{order:9}.order-10[_ngcontent-%COMP%]{order:10}.order-11[_ngcontent-%COMP%]{order:11}.order-12[_ngcontent-%COMP%]{order:12}.offset-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-3[_ngcontent-%COMP%]{margin-left:25%}.offset-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-6[_ngcontent-%COMP%]{margin-left:50%}.offset-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-9[_ngcontent-%COMP%]{margin-left:75%}.offset-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}@media (min-width:576px){.col-sm[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-sm-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-sm-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-sm-first[_ngcontent-%COMP%]{order:-1}.order-sm-last[_ngcontent-%COMP%]{order:13}.order-sm-0[_ngcontent-%COMP%]{order:0}.order-sm-1[_ngcontent-%COMP%]{order:1}.order-sm-2[_ngcontent-%COMP%]{order:2}.order-sm-3[_ngcontent-%COMP%]{order:3}.order-sm-4[_ngcontent-%COMP%]{order:4}.order-sm-5[_ngcontent-%COMP%]{order:5}.order-sm-6[_ngcontent-%COMP%]{order:6}.order-sm-7[_ngcontent-%COMP%]{order:7}.order-sm-8[_ngcontent-%COMP%]{order:8}.order-sm-9[_ngcontent-%COMP%]{order:9}.order-sm-10[_ngcontent-%COMP%]{order:10}.order-sm-11[_ngcontent-%COMP%]{order:11}.order-sm-12[_ngcontent-%COMP%]{order:12}.offset-sm-0[_ngcontent-%COMP%]{margin-left:0}.offset-sm-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-sm-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-sm-3[_ngcontent-%COMP%]{margin-left:25%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-sm-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-sm-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-sm-6[_ngcontent-%COMP%]{margin-left:50%}.offset-sm-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-sm-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-sm-9[_ngcontent-%COMP%]{margin-left:75%}.offset-sm-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-sm-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:768px){.col-md[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-md-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-md-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-md-first[_ngcontent-%COMP%]{order:-1}.order-md-last[_ngcontent-%COMP%]{order:13}.order-md-0[_ngcontent-%COMP%]{order:0}.order-md-1[_ngcontent-%COMP%]{order:1}.order-md-2[_ngcontent-%COMP%]{order:2}.order-md-3[_ngcontent-%COMP%]{order:3}.order-md-4[_ngcontent-%COMP%]{order:4}.order-md-5[_ngcontent-%COMP%]{order:5}.order-md-6[_ngcontent-%COMP%]{order:6}.order-md-7[_ngcontent-%COMP%]{order:7}.order-md-8[_ngcontent-%COMP%]{order:8}.order-md-9[_ngcontent-%COMP%]{order:9}.order-md-10[_ngcontent-%COMP%]{order:10}.order-md-11[_ngcontent-%COMP%]{order:11}.order-md-12[_ngcontent-%COMP%]{order:12}.offset-md-0[_ngcontent-%COMP%]{margin-left:0}.offset-md-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-md-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-md-3[_ngcontent-%COMP%]{margin-left:25%}.offset-md-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-md-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-md-6[_ngcontent-%COMP%]{margin-left:50%}.offset-md-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-md-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-md-9[_ngcontent-%COMP%]{margin-left:75%}.offset-md-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-md-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-lg-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-lg-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-lg-first[_ngcontent-%COMP%]{order:-1}.order-lg-last[_ngcontent-%COMP%]{order:13}.order-lg-0[_ngcontent-%COMP%]{order:0}.order-lg-1[_ngcontent-%COMP%]{order:1}.order-lg-2[_ngcontent-%COMP%]{order:2}.order-lg-3[_ngcontent-%COMP%]{order:3}.order-lg-4[_ngcontent-%COMP%]{order:4}.order-lg-5[_ngcontent-%COMP%]{order:5}.order-lg-6[_ngcontent-%COMP%]{order:6}.order-lg-7[_ngcontent-%COMP%]{order:7}.order-lg-8[_ngcontent-%COMP%]{order:8}.order-lg-9[_ngcontent-%COMP%]{order:9}.order-lg-10[_ngcontent-%COMP%]{order:10}.order-lg-11[_ngcontent-%COMP%]{order:11}.order-lg-12[_ngcontent-%COMP%]{order:12}.offset-lg-0[_ngcontent-%COMP%]{margin-left:0}.offset-lg-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-lg-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-lg-3[_ngcontent-%COMP%]{margin-left:25%}.offset-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-lg-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-lg-6[_ngcontent-%COMP%]{margin-left:50%}.offset-lg-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-lg-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-lg-9[_ngcontent-%COMP%]{margin-left:75%}.offset-lg-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-lg-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-xl-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-xl-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-xl-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-xl-first[_ngcontent-%COMP%]{order:-1}.order-xl-last[_ngcontent-%COMP%]{order:13}.order-xl-0[_ngcontent-%COMP%]{order:0}.order-xl-1[_ngcontent-%COMP%]{order:1}.order-xl-2[_ngcontent-%COMP%]{order:2}.order-xl-3[_ngcontent-%COMP%]{order:3}.order-xl-4[_ngcontent-%COMP%]{order:4}.order-xl-5[_ngcontent-%COMP%]{order:5}.order-xl-6[_ngcontent-%COMP%]{order:6}.order-xl-7[_ngcontent-%COMP%]{order:7}.order-xl-8[_ngcontent-%COMP%]{order:8}.order-xl-9[_ngcontent-%COMP%]{order:9}.order-xl-10[_ngcontent-%COMP%]{order:10}.order-xl-11[_ngcontent-%COMP%]{order:11}.order-xl-12[_ngcontent-%COMP%]{order:12}.offset-xl-0[_ngcontent-%COMP%]{margin-left:0}.offset-xl-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-xl-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-xl-3[_ngcontent-%COMP%]{margin-left:25%}.offset-xl-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-xl-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-xl-6[_ngcontent-%COMP%]{margin-left:50%}.offset-xl-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-xl-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-xl-9[_ngcontent-%COMP%]{margin-left:75%}.offset-xl-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-xl-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}.table[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem;color:#212529}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%]{border-top:2px solid #dee2e6}.table-sm[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-sm[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.3rem}.table-bordered[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6}.table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-bottom-width:2px}.table-borderless[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:0}.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c4e2e7}.table-primary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#91cad2}.table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b2d9e0}.table-secondary[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fbd1cf}.table-secondary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#f7aaa7}.table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f9bab7}.table-success[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c3e6cb}.table-success[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#8fd19e}.table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b1dfbb}.table-info[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#bee5eb}.table-info[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#86cfda}.table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#abdde5}.table-warning[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#ffeeba}.table-warning[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ffdf7e}.table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ffe8a1}.table-danger[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#f5c6cb}.table-danger[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ed969e}.table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f1b0b7}.table-light[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fdfdfe}.table-light[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#fbfcfc}.table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ececf6}.table-dark[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#d9d9d9}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#b8b8b8}.table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ccc}.table-active[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > th[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.075)}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#fff;background-color:#343a40;border-color:#454d55}.table[_ngcontent-%COMP%]   .thead-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark[_ngcontent-%COMP%]{color:#fff;background-color:#343a40}.table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#454d55}.table-dark.table-bordered[_ngcontent-%COMP%]{border:0}.table-dark.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:767.98px){.table-responsive-md[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:991.98px){.table-responsive-lg[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:1199.98px){.table-responsive-xl[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}.table-responsive[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{transition:none}}.cd-form-control[_ngcontent-%COMP%]::-ms-expand, .form-control[_ngcontent-%COMP%]::-ms-expand{background-color:transparent;border:0}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control[_ngcontent-%COMP%]::placeholder, .form-control[_ngcontent-%COMP%]::placeholder{color:#6c757d;opacity:1}.cd-form-control[_ngcontent-%COMP%]:disabled, .form-control[_ngcontent-%COMP%]:disabled, .form-control[readonly][_ngcontent-%COMP%], [readonly].cd-form-control[_ngcontent-%COMP%]{background-color:#e9ecef;opacity:1}select.cd-form-control[_ngcontent-%COMP%]:focus::-ms-value, select.form-control[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file[_ngcontent-%COMP%], .form-control-range[_ngcontent-%COMP%]{display:block;width:100%}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg[_ngcontent-%COMP%]{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm[_ngcontent-%COMP%]{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext[_ngcontent-%COMP%]{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg[_ngcontent-%COMP%], .form-control-plaintext.form-control-sm[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.form-control-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple][_ngcontent-%COMP%], select.form-control[size][_ngcontent-%COMP%], select[multiple].cd-form-control[_ngcontent-%COMP%], select[size].cd-form-control[_ngcontent-%COMP%], textarea.cd-form-control[_ngcontent-%COMP%], textarea.form-control[_ngcontent-%COMP%]{height:auto}.form-group[_ngcontent-%COMP%]{margin-bottom:1rem}.form-text[_ngcontent-%COMP%]{display:block;margin-top:.25rem}.form-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .form-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:5px;padding-left:5px}.form-check[_ngcontent-%COMP%]{position:relative;display:block;padding-left:1.25rem}.form-check-input[_ngcontent-%COMP%]{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[_ngcontent-%COMP%]:disabled ~ .form-check-label[_ngcontent-%COMP%]{color:#6c757d}.form-check-label[_ngcontent-%COMP%]{margin-bottom:0}.form-check-inline[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid[_ngcontent-%COMP%]:focus, .is-valid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:valid, textarea.form-control.is-valid[_ngcontent-%COMP%], textarea.is-valid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .form-check-label[_ngcontent-%COMP%]{color:#28a745}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid[_ngcontent-%COMP%]:focus, .is-invalid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:invalid, textarea.form-control.is-invalid[_ngcontent-%COMP%], textarea.is-invalid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .form-check-label[_ngcontent-%COMP%]{color:#dc3545}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]{color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline[_ngcontent-%COMP%]{display:flex;flex-flow:row wrap;align-items:center}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{width:100%}@media (min-width:576px){.form-inline[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{display:inline-block;width:auto;vertical-align:middle}.form-inline[_ngcontent-%COMP%]   .form-control-plaintext[_ngcontent-%COMP%]{display:inline-block}.form-inline[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline[_ngcontent-%COMP%]   .custom-control[_ngcontent-%COMP%]{align-items:center;justify-content:center}.form-inline[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]{margin-bottom:0}}.btn[_ngcontent-%COMP%]{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn[_ngcontent-%COMP%]{transition:none}}.btn[_ngcontent-%COMP%]:hover{color:#212529;text-decoration:none}.btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:disabled{opacity:.65}a.btn.disabled[_ngcontent-%COMP%], fieldset[_ngcontent-%COMP%]:disabled   a.btn[_ngcontent-%COMP%]{pointer-events:none}.btn-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light[_ngcontent-%COMP%]{color:#212529}.btn-light[_ngcontent-%COMP%]:hover{color:#212529}.btn-light.focus[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary[_ngcontent-%COMP%]{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary[_ngcontent-%COMP%]{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success[_ngcontent-%COMP%]{color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:disabled{color:#28a745;background-color:transparent}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info[_ngcontent-%COMP%]{color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning[_ngcontent-%COMP%]{color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger[_ngcontent-%COMP%]{color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light[_ngcontent-%COMP%]{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark[_ngcontent-%COMP%]{color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:disabled{color:#777;background-color:transparent}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link[_ngcontent-%COMP%]{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}.btn-link.focus[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block[_ngcontent-%COMP%]{display:block;width:100%}.btn-block[_ngcontent-%COMP%] + .btn-block[_ngcontent-%COMP%]{margin-top:.5rem}input[type=button].btn-block[_ngcontent-%COMP%], input[type=reset].btn-block[_ngcontent-%COMP%], input[type=submit].btn-block[_ngcontent-%COMP%]{width:100%}.fade[_ngcontent-%COMP%]{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade[_ngcontent-%COMP%]{transition:none}}.fade[_ngcontent-%COMP%]:not(.show){opacity:0}.collapse[_ngcontent-%COMP%]:not(.show){display:none}.collapsing[_ngcontent-%COMP%]{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown[_ngcontent-%COMP%], .dropleft[_ngcontent-%COMP%], .dropright[_ngcontent-%COMP%], .dropup[_ngcontent-%COMP%]{position:relative}.dropdown-toggle[_ngcontent-%COMP%]{white-space:nowrap}.dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-right[_ngcontent-%COMP%]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-sm-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-md-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-lg-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-xl-right[_ngcontent-%COMP%]{right:0;left:auto}}.dropup[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropright[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom][_ngcontent-%COMP%], .dropdown-menu[x-placement^=left][_ngcontent-%COMP%], .dropdown-menu[x-placement^=right][_ngcontent-%COMP%], .dropdown-menu[x-placement^=top][_ngcontent-%COMP%]{right:auto;bottom:auto}.dropdown-divider[_ngcontent-%COMP%]{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item[_ngcontent-%COMP%]{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item[_ngcontent-%COMP%]:focus, .dropdown-item[_ngcontent-%COMP%]:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show[_ngcontent-%COMP%]{display:block}.dropdown-header[_ngcontent-%COMP%]{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text[_ngcontent-%COMP%]{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%]{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{position:relative;flex:1 1 auto}.btn-group-vertical[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover, .btn-group[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover{z-index:1}.btn-toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-left:-1px}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropright[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropup[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::before{margin-right:0}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.375rem;padding-left:.375rem}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]{width:100%}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-top:-1px}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{margin-bottom:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%]{margin-left:-1px}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:focus{z-index:3}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus{z-index:4}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]{display:flex;align-items:center}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%]::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:first-child)   .custom-file-label[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]{display:flex}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{position:relative;z-index:2}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus, .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus{z-index:3}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%]{margin-left:-1px}.input-group-prepend[_ngcontent-%COMP%]{margin-right:-1px}.input-group-append[_ngcontent-%COMP%]{margin-left:-1px}.input-group-text[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .input-group-text[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{margin-top:0}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]{padding-right:1.75rem}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .input-group-text[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .btn[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .input-group-text[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .input-group-text[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control[_ngcontent-%COMP%]{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline[_ngcontent-%COMP%]{display:inline-flex;margin-right:1rem}.custom-control-input[_ngcontent-%COMP%]{position:absolute;z-index:-1;opacity:0}.custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}.custom-control-input[_ngcontent-%COMP%]:not(:disabled):active ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]{color:#6c757d}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:#e9ecef}.custom-control-label[_ngcontent-%COMP%]{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label[_ngcontent-%COMP%]::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label[_ngcontent-%COMP%]::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:.25rem}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-radio[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:50%}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e")}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-switch[_ngcontent-%COMP%]{padding-left:2.25rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-select[_ngcontent-%COMP%]{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select[_ngcontent-%COMP%]:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple][_ngcontent-%COMP%], .custom-select[size][_ngcontent-%COMP%]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select[_ngcontent-%COMP%]:disabled{color:#6c757d;background-color:#e9ecef}.custom-select[_ngcontent-%COMP%]::-ms-expand{display:none}.custom-select-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file[_ngcontent-%COMP%]{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input[_ngcontent-%COMP%]{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input[_ngcontent-%COMP%]:disabled ~ .custom-file-label[_ngcontent-%COMP%]{background-color:#e9ecef}.custom-file-input[_ngcontent-%COMP%]:lang(en) ~ .custom-file-label[_ngcontent-%COMP%]::after{content:"Browse"}.custom-file-input[_ngcontent-%COMP%] ~ .custom-file-label[data-browse][_ngcontent-%COMP%]::after{content:attr(data-browse)}.custom-file-label[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range[_ngcontent-%COMP%]{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range[_ngcontent-%COMP%]:focus{outline:0}.custom-range[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]::-moz-focus-outer{border:0}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing[_ngcontent-%COMP%], .custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{transition:none}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-ms-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-ms-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:none}}.nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link[_ngcontent-%COMP%]{display:block;padding:.5rem 1rem}.nav-link[_ngcontent-%COMP%]:focus, .nav-link[_ngcontent-%COMP%]:hover{text-decoration:none}.nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{margin-bottom:-1px}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs[_ngcontent-%COMP%]   .nav-item.show[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%], .nav-tabs[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%]{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border-radius:.25rem}.nav-pills[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .nav-pills[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}.nav-fill[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex:1 1 auto;text-align:center}.nav-justified[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;text-align:center}.tab-content[_ngcontent-%COMP%] > .tab-pane[_ngcontent-%COMP%]{display:none}.tab-content[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%]{display:block}.navbar[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand[_ngcontent-%COMP%]{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand[_ngcontent-%COMP%]:focus, .navbar-brand[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:static;float:none}.navbar-text[_ngcontent-%COMP%]{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse[_ngcontent-%COMP%]{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler[_ngcontent-%COMP%]{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler[_ngcontent-%COMP%]:focus, .navbar-toggler[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-toggler-icon[_ngcontent-%COMP%]{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:767.98px){.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:991.98px){.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:1199.98px){.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}.navbar-expand[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}.navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.7)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(0,0,0,.3)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(0, 0, 0, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(255,255,255,.75)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(255,255,255,.25)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff}.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box}.card[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%], pre[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body[_ngcontent-%COMP%]{flex:1 1 auto;padding:1.25rem}.card-title[_ngcontent-%COMP%]{margin-bottom:.75rem}.card-subtitle[_ngcontent-%COMP%]{margin-top:-.375rem;margin-bottom:0}.card-text[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card-link[_ngcontent-%COMP%]:hover{text-decoration:none}.card-link[_ngcontent-%COMP%] + .card-link[_ngcontent-%COMP%]{margin-left:1.25rem}.card-header[_ngcontent-%COMP%]{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header[_ngcontent-%COMP%]:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header[_ngcontent-%COMP%] + .list-group[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.card-footer[_ngcontent-%COMP%]{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer[_ngcontent-%COMP%]:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs[_ngcontent-%COMP%]{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills[_ngcontent-%COMP%]{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img[_ngcontent-%COMP%]{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top[_ngcontent-%COMP%]{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom[_ngcontent-%COMP%]{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-deck[_ngcontent-%COMP%]{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-group[_ngcontent-%COMP%]{flex-flow:row wrap}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{flex:1 0 0%;margin-bottom:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%]{margin-left:0;border-left:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%]{border-top-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%]{border-top-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-left-radius:0}.card-columns[_ngcontent-%COMP%]{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:inline-block;width:100%}}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:.75rem}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{overflow:hidden}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child{border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:first-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:last-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%]{margin-bottom:-1px}.breadcrumb[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]{padding-left:.5rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]:hover::before{text-decoration:none}.breadcrumb-item.active[_ngcontent-%COMP%]{color:#6c757d}.pagination[_ngcontent-%COMP%]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link[_ngcontent-%COMP%]{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link[_ngcontent-%COMP%]:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link[_ngcontent-%COMP%]:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{z-index:1;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge[_ngcontent-%COMP%]{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge[_ngcontent-%COMP%]{transition:none}}a.badge[_ngcontent-%COMP%]:focus, a.badge[_ngcontent-%COMP%]:hover{text-decoration:none}.badge[_ngcontent-%COMP%]:empty{display:none}.btn[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{position:relative;top:-1px}.badge-pill[_ngcontent-%COMP%]{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}a.badge-primary[_ngcontent-%COMP%]:focus, a.badge-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#21747f}a.badge-primary.focus[_ngcontent-%COMP%], a.badge-primary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55}a.badge-secondary[_ngcontent-%COMP%]:focus, a.badge-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus[_ngcontent-%COMP%], a.badge-secondary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745}a.badge-success[_ngcontent-%COMP%]:focus, a.badge-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus[_ngcontent-%COMP%], a.badge-success[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8}a.badge-info[_ngcontent-%COMP%]:focus, a.badge-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#117a8b}a.badge-info.focus[_ngcontent-%COMP%], a.badge-info[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107}a.badge-warning[_ngcontent-%COMP%]:focus, a.badge-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus[_ngcontent-%COMP%], a.badge-warning[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545}a.badge-danger[_ngcontent-%COMP%]:focus, a.badge-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus[_ngcontent-%COMP%], a.badge-danger[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa}a.badge-light[_ngcontent-%COMP%]:focus, a.badge-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus[_ngcontent-%COMP%], a.badge-light[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777}a.badge-dark[_ngcontent-%COMP%]:focus, a.badge-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus[_ngcontent-%COMP%], a.badge-dark[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron[_ngcontent-%COMP%]{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron[_ngcontent-%COMP%]{padding:4rem 2rem}}.jumbotron-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;border-radius:0}.alert[_ngcontent-%COMP%]{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading[_ngcontent-%COMP%]{color:inherit}.alert-link[_ngcontent-%COMP%]{font-weight:700}.alert-dismissible[_ngcontent-%COMP%]{padding-right:4rem}.alert-dismissible[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary[_ngcontent-%COMP%]{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b2d9e0}.alert-primary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0c2b2e}.alert-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f9bab7}.alert-secondary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#56211f}.alert-success[_ngcontent-%COMP%]{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b1dfbb}.alert-success[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0b2e13}.alert-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#abdde5}.alert-info[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#062c33}.alert-warning[_ngcontent-%COMP%]{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ffe8a1}.alert-warning[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#533f03}.alert-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f1b0b7}.alert-danger[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#491217}.alert-light[_ngcontent-%COMP%]{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ececf6}.alert-light[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#686868}.alert-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ccc}.alert-dark[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress[_ngcontent-%COMP%]{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped[_ngcontent-%COMP%]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated[_ngcontent-%COMP%]{animation:1s linear infinite progress-bar-stripes}.media[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.media-body[_ngcontent-%COMP%]{flex:1}.list-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action[_ngcontent-%COMP%]{width:100%;color:#495057;text-align:inherit}.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-action[_ngcontent-%COMP%]:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action[_ngcontent-%COMP%]:active{color:#212529;background-color:#e9ecef}.list-group-item[_ngcontent-%COMP%]{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled[_ngcontent-%COMP%], .list-group-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active[_ngcontent-%COMP%]{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-horizontal[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{border-right:0;border-left:0;border-radius:0}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:-1px}.list-group-flush[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.list-group-flush[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary[_ngcontent-%COMP%]{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success[_ngcontent-%COMP%]{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning[_ngcontent-%COMP%]{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light[_ngcontent-%COMP%]{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close[_ngcontent-%COMP%]{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close[_ngcontent-%COMP%]:hover{color:#000;text-decoration:none}.close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):focus, .close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):hover{opacity:.75}button.close[_ngcontent-%COMP%]{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled[_ngcontent-%COMP%]{pointer-events:none}.toast[_ngcontent-%COMP%]{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast[_ngcontent-%COMP%]:not(:last-child){margin-bottom:.75rem}.toast.showing[_ngcontent-%COMP%]{opacity:1}.toast.show[_ngcontent-%COMP%]{display:block;opacity:1}.toast.hide[_ngcontent-%COMP%]{display:none}.toast-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body[_ngcontent-%COMP%]{padding:.75rem}.modal-open[_ngcontent-%COMP%]{overflow:hidden}.modal-open[_ngcontent-%COMP%]   .modal[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto}.modal[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog[_ngcontent-%COMP%]{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar[_ngcontent-%COMP%]{transition:none}.progress-bar-animated[_ngcontent-%COMP%]{animation:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:none}}.modal.show[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transform:none}.modal-dialog-scrollable[_ngcontent-%COMP%]{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-footer[_ngcontent-%COMP%], .modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-header[_ngcontent-%COMP%]{flex-shrink:0}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-body[_ngcontent-%COMP%]{overflow-y:auto}.modal-dialog-centered[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:none}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]::before{content:none}.modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade[_ngcontent-%COMP%]{opacity:0}.modal-backdrop.show[_ngcontent-%COMP%]{opacity:.5}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title[_ngcontent-%COMP%]{margin-bottom:0;line-height:1.5}.modal-body[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;padding:1rem}.modal-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:first-child){margin-left:.25rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure[_ngcontent-%COMP%]{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog[_ngcontent-%COMP%]{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable[_ngcontent-%COMP%]{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]{min-height:calc(100% - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{height:calc(100vh - 3.5rem)}.modal-sm[_ngcontent-%COMP%]{max-width:300px}}@media (min-width:992px){.modal-lg[_ngcontent-%COMP%], .modal-xl[_ngcontent-%COMP%]{max-width:800px}}@media (min-width:1200px){.modal-xl[_ngcontent-%COMP%]{max-width:1140px}}.tooltip[_ngcontent-%COMP%]{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show[_ngcontent-%COMP%]{opacity:.9}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{bottom:0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{top:0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner[_ngcontent-%COMP%]{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::after, .popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%]{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%]{margin-left:.5rem}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%]{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%]{margin-right:.5rem}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header[_ngcontent-%COMP%]{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header[_ngcontent-%COMP%]:empty{display:none}.popover-body[_ngcontent-%COMP%]{padding:.5rem .75rem;color:#212529}.carousel[_ngcontent-%COMP%]{position:relative}.carousel.pointer-event[_ngcontent-%COMP%]{touch-action:pan-y}.carousel-inner[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden}.carousel-inner[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.carousel-item[_ngcontent-%COMP%]{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%], .carousel-item.active[_ngcontent-%COMP%]{display:block}.active.carousel-item-right[_ngcontent-%COMP%], .carousel-item-next[_ngcontent-%COMP%]:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%]:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade[_ngcontent-%COMP%]   .carousel-item[_ngcontent-%COMP%]{opacity:0;transition-property:opacity;transform:none}.carousel-fade[_ngcontent-%COMP%]   .carousel-item-next.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item-prev.carousel-item-right[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item.active[_ngcontent-%COMP%]{z-index:1;opacity:1}.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%]{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%], .carousel-item[_ngcontent-%COMP%]{transition:none}}.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next[_ngcontent-%COMP%]:focus, .carousel-control-next[_ngcontent-%COMP%]:hover, .carousel-control-prev[_ngcontent-%COMP%]:focus, .carousel-control-prev[_ngcontent-%COMP%]:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev[_ngcontent-%COMP%]{left:0}.carousel-control-next[_ngcontent-%COMP%]{right:0}.carousel-control-next-icon[_ngcontent-%COMP%], .carousel-control-prev-icon[_ngcontent-%COMP%]{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3e%3c/svg%3e")}.carousel-control-next-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3e%3c/svg%3e")}.carousel-indicators[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%], .carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{transition:none}}.carousel-indicators[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%]{opacity:1}.carousel-caption[_ngcontent-%COMP%]{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.align-baseline[_ngcontent-%COMP%]{vertical-align:baseline!important}.align-top[_ngcontent-%COMP%]{vertical-align:top!important}.align-middle[_ngcontent-%COMP%]{vertical-align:middle!important}.align-bottom[_ngcontent-%COMP%]{vertical-align:bottom!important}.align-text-bottom[_ngcontent-%COMP%]{vertical-align:text-bottom!important}.align-text-top[_ngcontent-%COMP%]{vertical-align:text-top!important}.bg-primary[_ngcontent-%COMP%]{background-color:#2b99a8!important}a.bg-primary[_ngcontent-%COMP%]:focus, a.bg-primary[_ngcontent-%COMP%]:hover, button.bg-primary[_ngcontent-%COMP%]:focus, button.bg-primary[_ngcontent-%COMP%]:hover{background-color:#21747f!important}.bg-secondary[_ngcontent-%COMP%]{background-color:#ef5c55!important}a.bg-secondary[_ngcontent-%COMP%]:focus, a.bg-secondary[_ngcontent-%COMP%]:hover, button.bg-secondary[_ngcontent-%COMP%]:focus, button.bg-secondary[_ngcontent-%COMP%]:hover{background-color:#eb2f26!important}.bg-success[_ngcontent-%COMP%]{background-color:#28a745!important}a.bg-success[_ngcontent-%COMP%]:focus, a.bg-success[_ngcontent-%COMP%]:hover, button.bg-success[_ngcontent-%COMP%]:focus, button.bg-success[_ngcontent-%COMP%]:hover{background-color:#1e7e34!important}.bg-info[_ngcontent-%COMP%]{background-color:#17a2b8!important}a.bg-info[_ngcontent-%COMP%]:focus, a.bg-info[_ngcontent-%COMP%]:hover, button.bg-info[_ngcontent-%COMP%]:focus, button.bg-info[_ngcontent-%COMP%]:hover{background-color:#117a8b!important}.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important}a.bg-warning[_ngcontent-%COMP%]:focus, a.bg-warning[_ngcontent-%COMP%]:hover, button.bg-warning[_ngcontent-%COMP%]:focus, button.bg-warning[_ngcontent-%COMP%]:hover{background-color:#d39e00!important}.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}a.bg-danger[_ngcontent-%COMP%]:focus, a.bg-danger[_ngcontent-%COMP%]:hover, button.bg-danger[_ngcontent-%COMP%]:focus, button.bg-danger[_ngcontent-%COMP%]:hover{background-color:#bd2130!important}.bg-light[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{background-color:#f8f9fa!important}a.bg-light[_ngcontent-%COMP%]:focus, a.bg-light[_ngcontent-%COMP%]:hover, button.bg-light[_ngcontent-%COMP%]:focus, button.bg-light[_ngcontent-%COMP%]:hover{background-color:#dae0e5!important}.bg-dark[_ngcontent-%COMP%]{background-color:#777!important}a.bg-dark[_ngcontent-%COMP%]:focus, a.bg-dark[_ngcontent-%COMP%]:hover, button.bg-dark[_ngcontent-%COMP%]:focus, button.bg-dark[_ngcontent-%COMP%]:hover{background-color:#5e5e5e!important}.bg-white[_ngcontent-%COMP%]{background-color:#fff!important}.bg-transparent[_ngcontent-%COMP%]{background-color:transparent!important}.border[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.border-top[_ngcontent-%COMP%]{border-top:1px solid #dee2e6!important}.border-right[_ngcontent-%COMP%]{border-right:1px solid #dee2e6!important}.border-bottom[_ngcontent-%COMP%], .cd-header[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6!important}.border-left[_ngcontent-%COMP%]{border-left:1px solid #dee2e6!important}.border-0[_ngcontent-%COMP%]{border:0!important}.border-top-0[_ngcontent-%COMP%]{border-top:0!important}.border-right-0[_ngcontent-%COMP%]{border-right:0!important}.border-bottom-0[_ngcontent-%COMP%]{border-bottom:0!important}.border-left-0[_ngcontent-%COMP%]{border-left:0!important}.border-primary[_ngcontent-%COMP%]{border-color:#2b99a8!important}.border-secondary[_ngcontent-%COMP%]{border-color:#ef5c55!important}.border-success[_ngcontent-%COMP%]{border-color:#28a745!important}.border-info[_ngcontent-%COMP%]{border-color:#17a2b8!important}.border-warning[_ngcontent-%COMP%]{border-color:#ffc107!important}.border-danger[_ngcontent-%COMP%]{border-color:#dc3545!important}.border-light[_ngcontent-%COMP%]{border-color:#f8f9fa!important}.border-dark[_ngcontent-%COMP%]{border-color:#777!important}.border-white[_ngcontent-%COMP%]{border-color:#fff!important}.rounded-sm[_ngcontent-%COMP%]{border-radius:.2rem!important}.rounded[_ngcontent-%COMP%]{border-radius:.25rem!important}.rounded-top[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right[_ngcontent-%COMP%]{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg[_ngcontent-%COMP%]{border-radius:.3rem!important}.rounded-circle[_ngcontent-%COMP%]{border-radius:50%!important}.rounded-pill[_ngcontent-%COMP%]{border-radius:50rem!important}.rounded-0[_ngcontent-%COMP%]{border-radius:0!important}.clearfix[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.d-none[_ngcontent-%COMP%]{display:none!important}.d-inline[_ngcontent-%COMP%]{display:inline!important}.d-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-block[_ngcontent-%COMP%]{display:block!important}.d-table[_ngcontent-%COMP%]{display:table!important}.d-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.d-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}@media (min-width:576px){.d-sm-none[_ngcontent-%COMP%]{display:none!important}.d-sm-inline[_ngcontent-%COMP%]{display:inline!important}.d-sm-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-sm-block[_ngcontent-%COMP%]{display:block!important}.d-sm-table[_ngcontent-%COMP%]{display:table!important}.d-sm-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-sm-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-sm-flex[_ngcontent-%COMP%]{display:flex!important}.d-sm-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:768px){.d-md-none[_ngcontent-%COMP%]{display:none!important}.d-md-inline[_ngcontent-%COMP%]{display:inline!important}.d-md-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-table[_ngcontent-%COMP%]{display:table!important}.d-md-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-md-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-md-flex[_ngcontent-%COMP%]{display:flex!important}.d-md-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:992px){.d-lg-none[_ngcontent-%COMP%]{display:none!important}.d-lg-inline[_ngcontent-%COMP%]{display:inline!important}.d-lg-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-lg-block[_ngcontent-%COMP%]{display:block!important}.d-lg-table[_ngcontent-%COMP%]{display:table!important}.d-lg-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-lg-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-lg-flex[_ngcontent-%COMP%]{display:flex!important}.d-lg-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none[_ngcontent-%COMP%]{display:none!important}.d-xl-inline[_ngcontent-%COMP%]{display:inline!important}.d-xl-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-xl-block[_ngcontent-%COMP%]{display:block!important}.d-xl-table[_ngcontent-%COMP%]{display:table!important}.d-xl-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-xl-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-xl-flex[_ngcontent-%COMP%]{display:flex!important}.d-xl-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media print{.d-print-none[_ngcontent-%COMP%]{display:none!important}.d-print-inline[_ngcontent-%COMP%]{display:inline!important}.d-print-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-print-block[_ngcontent-%COMP%]{display:block!important}.d-print-table[_ngcontent-%COMP%]{display:table!important}.d-print-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-print-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-print-flex[_ngcontent-%COMP%]{display:flex!important}.d-print-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}.embed-responsive[_ngcontent-%COMP%]{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive[_ngcontent-%COMP%]::before{display:block;content:""}.embed-responsive[_ngcontent-%COMP%]   .embed-responsive-item[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   embed[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   iframe[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   object[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   video[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9[_ngcontent-%COMP%]::before{padding-top:42.8571428571%}.embed-responsive-16by9[_ngcontent-%COMP%]::before{padding-top:56.25%}.embed-responsive-4by3[_ngcontent-%COMP%]::before{padding-top:75%}.embed-responsive-1by1[_ngcontent-%COMP%]::before{padding-top:100%}.flex-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-stretch[_ngcontent-%COMP%]{align-self:stretch!important}@media (min-width:576px){.flex-sm-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-sm-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-sm-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-sm-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-sm-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-sm-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-sm-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-sm-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-sm-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-sm-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-sm-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-sm-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-sm-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-sm-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-sm-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-sm-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-sm-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-sm-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-sm-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-sm-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-sm-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-sm-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-sm-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-sm-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-sm-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-sm-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-sm-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-sm-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-sm-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-sm-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-sm-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-sm-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-sm-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-sm-stretch[_ngcontent-%COMP%]{align-self:stretch!important}}.float-left[_ngcontent-%COMP%]{float:left!important}.float-right[_ngcontent-%COMP%]{float:right!important}.float-none[_ngcontent-%COMP%]{float:none!important}@media (min-width:576px){.float-sm-left[_ngcontent-%COMP%]{float:left!important}.float-sm-right[_ngcontent-%COMP%]{float:right!important}.float-sm-none[_ngcontent-%COMP%]{float:none!important}}.overflow-auto[_ngcontent-%COMP%]{overflow:auto!important}.overflow-hidden[_ngcontent-%COMP%]{overflow:hidden!important}.position-static[_ngcontent-%COMP%]{position:static!important}.position-relative[_ngcontent-%COMP%]{position:relative!important}.position-absolute[_ngcontent-%COMP%]{position:absolute!important}.position-fixed[_ngcontent-%COMP%]{position:fixed!important}.position-sticky[_ngcontent-%COMP%]{position:sticky!important}.fixed-top[_ngcontent-%COMP%]{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom[_ngcontent-%COMP%]{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1020}}.sr-only[_ngcontent-%COMP%]{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm[_ngcontent-%COMP%]{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow[_ngcontent-%COMP%]{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg[_ngcontent-%COMP%]{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none[_ngcontent-%COMP%]{box-shadow:none!important}.w-25[_ngcontent-%COMP%]{width:25%!important}.w-50[_ngcontent-%COMP%]{width:50%!important}.w-75[_ngcontent-%COMP%]{width:75%!important}.w-100[_ngcontent-%COMP%]{width:100%!important}.w-auto[_ngcontent-%COMP%]{width:auto!important}.h-25[_ngcontent-%COMP%]{height:25%!important}.h-50[_ngcontent-%COMP%]{height:50%!important}.h-75[_ngcontent-%COMP%]{height:75%!important}.h-100[_ngcontent-%COMP%]{height:100%!important}.h-auto[_ngcontent-%COMP%]{height:auto!important}.mw-100[_ngcontent-%COMP%]{max-width:100%!important}.mh-100[_ngcontent-%COMP%]{max-height:100%!important}.min-vw-100[_ngcontent-%COMP%]{min-width:100vw!important}.min-vh-100[_ngcontent-%COMP%]{min-height:100vh!important}.vw-100[_ngcontent-%COMP%]{width:100vw!important}.vh-100[_ngcontent-%COMP%]{height:100vh!important}.stretched-link[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0[_ngcontent-%COMP%]{margin:0!important}.mt-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-left:0!important}.m-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-4[_ngcontent-%COMP%]{margin:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mt-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mb-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-0[_ngcontent-%COMP%]{padding:0!important}.pt-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-left:0!important}.p-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.cd-header[_ngcontent-%COMP%], .pb-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-2[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{padding:.5rem!important}.card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]   .card-text[_ngcontent-%COMP%], .pt-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]   .card-text[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.card[_ngcontent-%COMP%], .pb-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-left:auto!important}@media (min-width:576px){.m-sm-0[_ngcontent-%COMP%]{margin:0!important}.mt-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-left:0!important}.m-sm-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-sm-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-sm-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-sm-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-sm-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-sm-0[_ngcontent-%COMP%]{padding:0!important}.pt-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-left:0!important}.p-sm-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-sm-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-sm-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-sm-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-sm-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-sm-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-sm-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-sm-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-sm-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-sm-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-sm-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-left:auto!important}}.text-monospace[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify[_ngcontent-%COMP%]{text-align:justify!important}.text-wrap[_ngcontent-%COMP%]{white-space:normal!important}.text-nowrap[_ngcontent-%COMP%]{white-space:nowrap!important}.text-truncate[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left[_ngcontent-%COMP%]{text-align:left!important}.text-right[_ngcontent-%COMP%]{text-align:right!important}.text-center[_ngcontent-%COMP%]{text-align:center!important}@media (min-width:576px){.text-sm-left[_ngcontent-%COMP%]{text-align:left!important}.text-sm-right[_ngcontent-%COMP%]{text-align:right!important}.text-sm-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:768px){.flex-md-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-md-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-md-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-md-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-md-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-md-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-md-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-md-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-md-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-md-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-md-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-md-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-md-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-md-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-md-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-md-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-md-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-md-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-md-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-md-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-md-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-md-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-md-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-md-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-md-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-md-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-md-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-md-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-md-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-md-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-md-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-md-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-md-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-md-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-md-left[_ngcontent-%COMP%]{float:left!important}.float-md-right[_ngcontent-%COMP%]{float:right!important}.float-md-none[_ngcontent-%COMP%]{float:none!important}.m-md-0[_ngcontent-%COMP%]{margin:0!important}.mt-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-left:0!important}.m-md-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-md-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-md-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-md-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-md-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-md-0[_ngcontent-%COMP%]{padding:0!important}.pt-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-left:0!important}.p-md-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-md-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-md-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-md-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-md-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-md-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-md-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-md-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-md-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-md-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-md-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-md-left[_ngcontent-%COMP%]{text-align:left!important}.text-md-right[_ngcontent-%COMP%]{text-align:right!important}.text-md-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:992px){.flex-lg-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-lg-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-lg-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-lg-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-lg-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-lg-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-lg-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-lg-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-lg-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-lg-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-lg-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-lg-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-lg-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-lg-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-lg-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-lg-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-lg-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-lg-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-lg-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-lg-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-lg-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-lg-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-lg-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-lg-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-lg-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-lg-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-lg-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-lg-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-lg-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-lg-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-lg-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-lg-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-lg-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-lg-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-lg-left[_ngcontent-%COMP%]{float:left!important}.float-lg-right[_ngcontent-%COMP%]{float:right!important}.float-lg-none[_ngcontent-%COMP%]{float:none!important}.m-lg-0[_ngcontent-%COMP%]{margin:0!important}.mt-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-left:0!important}.m-lg-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-lg-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-lg-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-lg-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-lg-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-lg-0[_ngcontent-%COMP%]{padding:0!important}.pt-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-left:0!important}.p-lg-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-lg-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-lg-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-lg-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-lg-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-lg-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-lg-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-lg-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-lg-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-lg-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-lg-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-lg-left[_ngcontent-%COMP%]{text-align:left!important}.text-lg-right[_ngcontent-%COMP%]{text-align:right!important}.text-lg-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:1200px){.flex-xl-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-xl-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-xl-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-xl-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-xl-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-xl-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-xl-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-xl-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-xl-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-xl-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-xl-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-xl-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-xl-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-xl-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-xl-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-xl-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-xl-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-xl-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-xl-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-xl-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-xl-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-xl-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-xl-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-xl-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-xl-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-xl-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-xl-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-xl-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-xl-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-xl-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-xl-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-xl-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-xl-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-xl-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-xl-left[_ngcontent-%COMP%]{float:left!important}.float-xl-right[_ngcontent-%COMP%]{float:right!important}.float-xl-none[_ngcontent-%COMP%]{float:none!important}.m-xl-0[_ngcontent-%COMP%]{margin:0!important}.mt-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-left:0!important}.m-xl-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-xl-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-xl-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-xl-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-xl-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-xl-0[_ngcontent-%COMP%]{padding:0!important}.pt-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-left:0!important}.p-xl-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-xl-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-xl-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-xl-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-xl-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-xl-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-xl-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-xl-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-xl-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-xl-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-xl-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-xl-left[_ngcontent-%COMP%]{text-align:left!important}.text-xl-right[_ngcontent-%COMP%]{text-align:right!important}.text-xl-center[_ngcontent-%COMP%]{text-align:center!important}}.text-lowercase[_ngcontent-%COMP%]{text-transform:lowercase!important}.text-uppercase[_ngcontent-%COMP%]{text-transform:uppercase!important}.text-capitalize[_ngcontent-%COMP%]{text-transform:capitalize!important}.font-weight-light[_ngcontent-%COMP%]{font-weight:300!important}.font-weight-lighter[_ngcontent-%COMP%]{font-weight:lighter!important}.font-weight-normal[_ngcontent-%COMP%]{font-weight:400!important}.font-weight-bold[_ngcontent-%COMP%]{font-weight:700!important}.font-weight-bolder[_ngcontent-%COMP%]{font-weight:bolder!important}.font-italic[_ngcontent-%COMP%]{font-style:italic!important}.text-white[_ngcontent-%COMP%]{color:#fff!important}.text-primary[_ngcontent-%COMP%]{color:#2b99a8!important}a.text-primary[_ngcontent-%COMP%]:focus, a.text-primary[_ngcontent-%COMP%]:hover{color:#1b626b!important}.text-secondary[_ngcontent-%COMP%]{color:#ef5c55!important}a.text-secondary[_ngcontent-%COMP%]:focus, a.text-secondary[_ngcontent-%COMP%]:hover{color:#e21f15!important}.text-success[_ngcontent-%COMP%]{color:#28a745!important}a.text-success[_ngcontent-%COMP%]:focus, a.text-success[_ngcontent-%COMP%]:hover{color:#19692c!important}.text-info[_ngcontent-%COMP%]{color:#17a2b8!important}a.text-info[_ngcontent-%COMP%]:focus, a.text-info[_ngcontent-%COMP%]:hover{color:#0f6674!important}.text-warning[_ngcontent-%COMP%]{color:#ffc107!important}a.text-warning[_ngcontent-%COMP%]:focus, a.text-warning[_ngcontent-%COMP%]:hover{color:#ba8b00!important}.text-danger[_ngcontent-%COMP%]{color:#dc3545!important}a.text-danger[_ngcontent-%COMP%]:focus, a.text-danger[_ngcontent-%COMP%]:hover{color:#a71d2a!important}.text-light[_ngcontent-%COMP%]{color:#f8f9fa!important}a.text-light[_ngcontent-%COMP%]:focus, a.text-light[_ngcontent-%COMP%]:hover{color:#cbd3da!important}.text-dark[_ngcontent-%COMP%]{color:#777!important}a.text-dark[_ngcontent-%COMP%]:focus, a.text-dark[_ngcontent-%COMP%]:hover{color:#515151!important}.text-body[_ngcontent-%COMP%]{color:#212529!important}.text-muted[_ngcontent-%COMP%]{color:#6c757d!important}.text-black-50[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)!important}.text-white-50[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)!important}.text-hide[_ngcontent-%COMP%]{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none[_ngcontent-%COMP%]{text-decoration:none!important}.text-break[_ngcontent-%COMP%]{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset[_ngcontent-%COMP%]{color:inherit!important}.visible[_ngcontent-%COMP%]{visibility:visible!important}.invisible[_ngcontent-%COMP%]{visibility:hidden!important}@media print{*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{text-shadow:none!important;box-shadow:none!important}a[_ngcontent-%COMP%]:not(.btn){text-decoration:underline}abbr[title][_ngcontent-%COMP%]::after{content:" (" attr(title) ")"}pre[_ngcontent-%COMP%]{white-space:pre-wrap!important}blockquote[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{border:1px solid #adb5bd;page-break-inside:avoid}thead[_ngcontent-%COMP%]{display:table-header-group}img[_ngcontent-%COMP%], tr[_ngcontent-%COMP%]{page-break-inside:avoid}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{orphans:3;widows:3}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{page-break-after:avoid}@page{size:a3}.container[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{min-width:992px!important}.navbar[_ngcontent-%COMP%]{display:none}.badge[_ngcontent-%COMP%]{border:1px solid #000}.table[_ngcontent-%COMP%]{border-collapse:collapse!important}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#fff!important}.table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.table-dark[_ngcontent-%COMP%]{color:inherit}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#dee2e6}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:inherit;border-color:#dee2e6}}@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa[_ngcontent-%COMP%]{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg[_ngcontent-%COMP%]{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x[_ngcontent-%COMP%]{font-size:2em}.fa-3x[_ngcontent-%COMP%]{font-size:3em}.fa-4x[_ngcontent-%COMP%]{font-size:4em}.fa-5x[_ngcontent-%COMP%]{font-size:5em}.fa[_ngcontent-%COMP%], .fa-fw[_ngcontent-%COMP%]{width:1.2857142857em;text-align:center}.fa-ul[_ngcontent-%COMP%]{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{position:relative}.fa-li[_ngcontent-%COMP%]{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg[_ngcontent-%COMP%]{left:-1.8571428571em}.fa-border[_ngcontent-%COMP%]{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left[_ngcontent-%COMP%]{float:left}.fa-pull-right[_ngcontent-%COMP%]{float:right}.fa.fa-pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.fa-pull-right[_ngcontent-%COMP%]{margin-left:.3em}.pull-right[_ngcontent-%COMP%]{float:right}.pull-left[_ngcontent-%COMP%]{float:left}.fa.pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.pull-right[_ngcontent-%COMP%]{margin-left:.3em}.fa-spin[_ngcontent-%COMP%]{animation:2s linear infinite fa-spin}.fa-pulse[_ngcontent-%COMP%]{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}[_ngcontent-%COMP%]:root   .fa-flip-horizontal[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-flip-vertical[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-180[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-270[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-90[_ngcontent-%COMP%]{filter:none}.fa-stack[_ngcontent-%COMP%]{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x[_ngcontent-%COMP%], .fa-stack-2x[_ngcontent-%COMP%]{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x[_ngcontent-%COMP%]{line-height:inherit}.fa-stack-2x[_ngcontent-%COMP%]{font-size:2em}.fa-inverse[_ngcontent-%COMP%]{color:#fff}.fa-glass[_ngcontent-%COMP%]:before{content:""}.fa-music[_ngcontent-%COMP%]:before{content:""}.fa-search[_ngcontent-%COMP%]:before{content:""}.fa-envelope-o[_ngcontent-%COMP%]:before{content:""}.fa-heart[_ngcontent-%COMP%]:before{content:""}.fa-star[_ngcontent-%COMP%]:before{content:""}.fa-star-o[_ngcontent-%COMP%]:before{content:""}.fa-user[_ngcontent-%COMP%]:before{content:""}.fa-film[_ngcontent-%COMP%]:before{content:""}.fa-th-large[_ngcontent-%COMP%]:before{content:""}.fa-th[_ngcontent-%COMP%]:before{content:""}.fa-th-list[_ngcontent-%COMP%]:before{content:""}.fa-check[_ngcontent-%COMP%]:before{content:""}.fa-close[_ngcontent-%COMP%]:before, .fa-remove[_ngcontent-%COMP%]:before, .fa-times[_ngcontent-%COMP%]:before{content:""}.fa-search-plus[_ngcontent-%COMP%]:before{content:""}.fa-search-minus[_ngcontent-%COMP%]:before{content:""}.fa-power-off[_ngcontent-%COMP%]:before{content:""}.fa-signal[_ngcontent-%COMP%]:before{content:""}.fa-cog[_ngcontent-%COMP%]:before, .fa-gear[_ngcontent-%COMP%]:before{content:""}.fa-trash-o[_ngcontent-%COMP%]:before{content:""}.fa-home[_ngcontent-%COMP%]:before{content:""}.fa-file-o[_ngcontent-%COMP%]:before{content:""}.fa-clock-o[_ngcontent-%COMP%]:before{content:""}.fa-road[_ngcontent-%COMP%]:before{content:""}.fa-download[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-up[_ngcontent-%COMP%]:before{content:""}.fa-inbox[_ngcontent-%COMP%]:before{content:""}.fa-play-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-repeat[_ngcontent-%COMP%]:before, .fa-rotate-right[_ngcontent-%COMP%]:before{content:""}.fa-refresh[_ngcontent-%COMP%]:before, .fa-sync[_ngcontent-%COMP%]:before{content:""}.fa-list-alt[_ngcontent-%COMP%]:before{content:""}.fa-lock[_ngcontent-%COMP%]:before{content:""}.fa-flag[_ngcontent-%COMP%]:before{content:""}.fa-headphones[_ngcontent-%COMP%]:before{content:""}.fa-volume-off[_ngcontent-%COMP%]:before{content:""}.fa-volume-down[_ngcontent-%COMP%]:before{content:""}.fa-volume-up[_ngcontent-%COMP%]:before{content:""}.fa-qrcode[_ngcontent-%COMP%]:before{content:""}.fa-barcode[_ngcontent-%COMP%]:before{content:""}.fa-tag[_ngcontent-%COMP%]:before{content:""}.fa-tags[_ngcontent-%COMP%]:before{content:""}.fa-book[_ngcontent-%COMP%]:before{content:""}.fa-bookmark[_ngcontent-%COMP%]:before{content:""}.fa-print[_ngcontent-%COMP%]:before{content:""}.fa-camera[_ngcontent-%COMP%]:before{content:""}.fa-font[_ngcontent-%COMP%]:before{content:""}.fa-bold[_ngcontent-%COMP%]:before{content:""}.fa-italic[_ngcontent-%COMP%]:before{content:""}.fa-text-height[_ngcontent-%COMP%]:before{content:""}.fa-text-width[_ngcontent-%COMP%]:before{content:""}.fa-align-left[_ngcontent-%COMP%]:before{content:""}.fa-align-center[_ngcontent-%COMP%]:before{content:""}.fa-align-right[_ngcontent-%COMP%]:before{content:""}.fa-align-justify[_ngcontent-%COMP%]:before{content:""}.fa-list[_ngcontent-%COMP%]:before{content:""}.fa-dedent[_ngcontent-%COMP%]:before, .fa-outdent[_ngcontent-%COMP%]:before{content:""}.fa-indent[_ngcontent-%COMP%]:before{content:""}.fa-video-camera[_ngcontent-%COMP%]:before, .fa-video[_ngcontent-%COMP%]:before{content:""}.fa-image[_ngcontent-%COMP%]:before, .fa-photo[_ngcontent-%COMP%]:before, .fa-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-pencil[_ngcontent-%COMP%]:before{content:""}.fa-map-marker[_ngcontent-%COMP%]:before{content:""}.fa-adjust[_ngcontent-%COMP%]:before{content:""}.fa-tint[_ngcontent-%COMP%]:before{content:""}.fa-edit[_ngcontent-%COMP%]:before, .fa-pencil-square-o[_ngcontent-%COMP%]:before{content:""}.fa-share-square-o[_ngcontent-%COMP%]:before{content:""}.fa-check-square-o[_ngcontent-%COMP%]:before{content:""}.fa-arrows[_ngcontent-%COMP%]:before{content:""}.fa-step-backward[_ngcontent-%COMP%]:before{content:""}.fa-fast-backward[_ngcontent-%COMP%]:before{content:""}.fa-backward[_ngcontent-%COMP%]:before{content:""}.fa-play[_ngcontent-%COMP%]:before{content:""}.fa-pause[_ngcontent-%COMP%]:before{content:""}.fa-stop[_ngcontent-%COMP%]:before{content:""}.fa-forward[_ngcontent-%COMP%]:before{content:""}.fa-fast-forward[_ngcontent-%COMP%]:before{content:""}.fa-step-forward[_ngcontent-%COMP%]:before{content:""}.fa-eject[_ngcontent-%COMP%]:before{content:""}.fa-chevron-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-right[_ngcontent-%COMP%]:before{content:""}.fa-plus-circle[_ngcontent-%COMP%]:before{content:""}.fa-minus-circle[_ngcontent-%COMP%]:before{content:""}.fa-times-circle[_ngcontent-%COMP%]:before{content:""}.fa-check-circle[_ngcontent-%COMP%]:before{content:""}.fa-question-circle[_ngcontent-%COMP%]:before{content:""}.fa-info-circle[_ngcontent-%COMP%]:before{content:""}.fa-crosshairs[_ngcontent-%COMP%]:before{content:""}.fa-times-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-check-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-ban[_ngcontent-%COMP%]:before{content:""}.fa-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-mail-forward[_ngcontent-%COMP%]:before, .fa-share[_ngcontent-%COMP%]:before{content:""}.fa-expand[_ngcontent-%COMP%]:before{content:""}.fa-compress[_ngcontent-%COMP%]:before{content:""}.fa-plus[_ngcontent-%COMP%]:before{content:""}.fa-minus[_ngcontent-%COMP%]:before{content:""}.fa-asterisk[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-circle[_ngcontent-%COMP%]:before{content:""}.fa-gift[_ngcontent-%COMP%]:before{content:""}.fa-leaf[_ngcontent-%COMP%]:before{content:""}.fa-fire[_ngcontent-%COMP%]:before{content:""}.fa-eye[_ngcontent-%COMP%]:before{content:""}.fa-eye-slash[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-triangle[_ngcontent-%COMP%]:before, .fa-warning[_ngcontent-%COMP%]:before{content:""}.fa-plane[_ngcontent-%COMP%]:before{content:""}.fa-calendar[_ngcontent-%COMP%]:before{content:""}.fa-random[_ngcontent-%COMP%]:before{content:""}.fa-comment[_ngcontent-%COMP%]:before{content:""}.fa-magnet[_ngcontent-%COMP%]:before{content:""}.fa-chevron-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-down[_ngcontent-%COMP%]:before{content:""}.fa-retweet[_ngcontent-%COMP%]:before{content:""}.fa-shopping-cart[_ngcontent-%COMP%]:before{content:""}.fa-folder[_ngcontent-%COMP%]:before{content:""}.fa-folder-open[_ngcontent-%COMP%]:before{content:""}.fa-arrows-v[_ngcontent-%COMP%]:before{content:""}.fa-arrows-h[_ngcontent-%COMP%]:before{content:""}.fa-bar-chart-o[_ngcontent-%COMP%]:before, .fa-bar-chart[_ngcontent-%COMP%]:before{content:""}.fa-twitter-square[_ngcontent-%COMP%]:before{content:""}.fa-facebook-square[_ngcontent-%COMP%]:before{content:""}.fa-camera-retro[_ngcontent-%COMP%]:before{content:""}.fa-key[_ngcontent-%COMP%]:before{content:""}.fa-cogs[_ngcontent-%COMP%]:before, .fa-gears[_ngcontent-%COMP%]:before{content:""}.fa-comments[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-down[_ngcontent-%COMP%]:before{content:""}.fa-star-half[_ngcontent-%COMP%]:before{content:""}.fa-heart-o[_ngcontent-%COMP%]:before{content:""}.fa-sign-out[_ngcontent-%COMP%]:before{content:""}.fa-linkedin-square[_ngcontent-%COMP%]:before{content:""}.fa-thumb-tack[_ngcontent-%COMP%]:before{content:""}.fa-external-link[_ngcontent-%COMP%]:before{content:""}.fa-sign-in[_ngcontent-%COMP%]:before{content:""}.fa-trophy[_ngcontent-%COMP%]:before{content:""}.fa-github-square[_ngcontent-%COMP%]:before{content:""}.fa-upload[_ngcontent-%COMP%]:before{content:""}.fa-lemon-o[_ngcontent-%COMP%]:before{content:""}.fa-phone[_ngcontent-%COMP%]:before{content:""}.fa-square-o[_ngcontent-%COMP%]:before{content:""}.fa-bookmark-o[_ngcontent-%COMP%]:before{content:""}.fa-phone-square[_ngcontent-%COMP%]:before{content:""}.fa-twitter[_ngcontent-%COMP%]:before{content:""}.fa-facebook-f[_ngcontent-%COMP%]:before, .fa-facebook[_ngcontent-%COMP%]:before{content:""}.fa-github[_ngcontent-%COMP%]:before{content:""}.fa-unlock[_ngcontent-%COMP%]:before{content:""}.fa-credit-card[_ngcontent-%COMP%]:before{content:""}.fa-feed[_ngcontent-%COMP%]:before, .fa-rss[_ngcontent-%COMP%]:before{content:""}.fa-hdd-o[_ngcontent-%COMP%]:before{content:""}.fa-bullhorn[_ngcontent-%COMP%]:before{content:""}.fa-bell-o[_ngcontent-%COMP%]:before{content:""}.fa-certificate[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-right[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-left[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-up[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-globe[_ngcontent-%COMP%]:before{content:""}.fa-globe-e[_ngcontent-%COMP%]:before{content:""}.fa-globe-w[_ngcontent-%COMP%]:before{content:""}.fa-wrench[_ngcontent-%COMP%]:before{content:""}.fa-tasks[_ngcontent-%COMP%]:before{content:""}.fa-filter[_ngcontent-%COMP%]:before{content:""}.fa-briefcase[_ngcontent-%COMP%]:before{content:""}.fa-arrows-alt[_ngcontent-%COMP%]:before{content:""}.fa-community[_ngcontent-%COMP%]:before, .fa-group[_ngcontent-%COMP%]:before, .fa-users[_ngcontent-%COMP%]:before{content:""}.fa-chain[_ngcontent-%COMP%]:before, .fa-link[_ngcontent-%COMP%]:before{content:""}.fa-cloud[_ngcontent-%COMP%]:before{content:""}.fa-flask[_ngcontent-%COMP%]:before{content:""}.fa-cut[_ngcontent-%COMP%]:before, .fa-scissors[_ngcontent-%COMP%]:before{content:""}.fa-copy[_ngcontent-%COMP%]:before, .fa-files-o[_ngcontent-%COMP%]:before{content:""}.fa-paperclip[_ngcontent-%COMP%]:before{content:""}.fa-floppy-o[_ngcontent-%COMP%]:before, .fa-save[_ngcontent-%COMP%]:before{content:""}.fa-square[_ngcontent-%COMP%]:before{content:""}.fa-bars[_ngcontent-%COMP%]:before, .fa-navicon[_ngcontent-%COMP%]:before, .fa-reorder[_ngcontent-%COMP%]:before{content:""}.fa-list-ul[_ngcontent-%COMP%]:before{content:""}.fa-list-ol[_ngcontent-%COMP%]:before{content:""}.fa-strikethrough[_ngcontent-%COMP%]:before{content:""}.fa-underline[_ngcontent-%COMP%]:before{content:""}.fa-table[_ngcontent-%COMP%]:before{content:""}.fa-magic[_ngcontent-%COMP%]:before{content:""}.fa-truck[_ngcontent-%COMP%]:before{content:""}.fa-pinterest[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-g[_ngcontent-%COMP%]:before, .fa-google-plus[_ngcontent-%COMP%]:before{content:""}.fa-money[_ngcontent-%COMP%]:before{content:""}.fa-caret-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-right[_ngcontent-%COMP%]:before{content:""}.fa-columns[_ngcontent-%COMP%]:before{content:""}.fa-sort[_ngcontent-%COMP%]:before, .fa-unsorted[_ngcontent-%COMP%]:before{content:""}.fa-sort-desc[_ngcontent-%COMP%]:before, .fa-sort-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-asc[_ngcontent-%COMP%]:before, .fa-sort-up[_ngcontent-%COMP%]:before{content:""}.fa-envelope[_ngcontent-%COMP%]:before{content:""}.fa-linkedin[_ngcontent-%COMP%]:before{content:""}.fa-rotate-left[_ngcontent-%COMP%]:before, .fa-undo[_ngcontent-%COMP%]:before{content:""}.fa-gavel[_ngcontent-%COMP%]:before, .fa-legal[_ngcontent-%COMP%]:before{content:""}.fa-dashboard[_ngcontent-%COMP%]:before, .fa-tachometer[_ngcontent-%COMP%]:before{content:""}.fa-comment-o[_ngcontent-%COMP%]:before{content:""}.fa-comments-o[_ngcontent-%COMP%]:before{content:""}.fa-bolt[_ngcontent-%COMP%]:before, .fa-flash[_ngcontent-%COMP%]:before{content:""}.fa-sitemap[_ngcontent-%COMP%]:before{content:""}.fa-umbrella[_ngcontent-%COMP%]:before{content:""}.fa-clipboard[_ngcontent-%COMP%]:before, .fa-paste[_ngcontent-%COMP%]:before{content:""}.fa-lightbulb-o[_ngcontent-%COMP%]:before{content:""}.fa-exchange[_ngcontent-%COMP%]:before{content:""}.fa-cloud-download[_ngcontent-%COMP%]:before{content:""}.fa-cloud-upload[_ngcontent-%COMP%]:before{content:""}.fa-user-md[_ngcontent-%COMP%]:before{content:""}.fa-stethoscope[_ngcontent-%COMP%]:before{content:""}.fa-suitcase[_ngcontent-%COMP%]:before{content:""}.fa-bell[_ngcontent-%COMP%]:before{content:""}.fa-coffee[_ngcontent-%COMP%]:before{content:""}.fa-cutlery[_ngcontent-%COMP%]:before, .fa-utensils[_ngcontent-%COMP%]:before{content:""}.fa-file-text-o[_ngcontent-%COMP%]:before{content:""}.fa-building-o[_ngcontent-%COMP%]:before{content:""}.fa-hospital-o[_ngcontent-%COMP%]:before{content:""}.fa-ambulance[_ngcontent-%COMP%]:before{content:""}.fa-medkit[_ngcontent-%COMP%]:before{content:""}.fa-fighter-jet[_ngcontent-%COMP%]:before{content:""}.fa-beer[_ngcontent-%COMP%]:before{content:""}.fa-h-square[_ngcontent-%COMP%]:before{content:""}.fa-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-down[_ngcontent-%COMP%]:before{content:""}.fa-angle-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-down[_ngcontent-%COMP%]:before{content:""}.fa-desktop[_ngcontent-%COMP%]:before{content:""}.fa-laptop[_ngcontent-%COMP%]:before{content:""}.fa-tablet[_ngcontent-%COMP%]:before{content:""}.fa-mobile-phone[_ngcontent-%COMP%]:before, .fa-mobile[_ngcontent-%COMP%]:before{content:""}.fa-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-quote-left[_ngcontent-%COMP%]:before{content:""}.fa-quote-right[_ngcontent-%COMP%]:before{content:""}.fa-spinner[_ngcontent-%COMP%]:before{content:""}.fa-circle[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply[_ngcontent-%COMP%]:before, .fa-reply[_ngcontent-%COMP%]:before{content:""}.fa-github-alt[_ngcontent-%COMP%]:before{content:""}.fa-folder-o[_ngcontent-%COMP%]:before{content:""}.fa-folder-open-o[_ngcontent-%COMP%]:before{content:""}.fa-smile-o[_ngcontent-%COMP%]:before{content:""}.fa-frown-o[_ngcontent-%COMP%]:before{content:""}.fa-meh-o[_ngcontent-%COMP%]:before{content:""}.fa-gamepad[_ngcontent-%COMP%]:before{content:""}.fa-keyboard-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-checkered[_ngcontent-%COMP%]:before{content:""}.fa-terminal[_ngcontent-%COMP%]:before{content:""}.fa-code[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply-all[_ngcontent-%COMP%]:before, .fa-reply-all[_ngcontent-%COMP%]:before{content:""}.fa-star-half-empty[_ngcontent-%COMP%]:before, .fa-star-half-full[_ngcontent-%COMP%]:before, .fa-star-half-o[_ngcontent-%COMP%]:before{content:""}.fa-location-arrow[_ngcontent-%COMP%]:before{content:""}.fa-crop[_ngcontent-%COMP%]:before{content:""}.fa-code-fork[_ngcontent-%COMP%]:before{content:""}.fa-chain-broken[_ngcontent-%COMP%]:before, .fa-unlink[_ngcontent-%COMP%]:before{content:""}.fa-question[_ngcontent-%COMP%]:before{content:""}.fa-info[_ngcontent-%COMP%]:before{content:""}.fa-exclamation[_ngcontent-%COMP%]:before{content:""}.fa-superscript[_ngcontent-%COMP%]:before{content:""}.fa-subscript[_ngcontent-%COMP%]:before{content:""}.fa-eraser[_ngcontent-%COMP%]:before{content:""}.fa-puzzle-piece[_ngcontent-%COMP%]:before{content:""}.fa-microphone[_ngcontent-%COMP%]:before{content:""}.fa-microphone-slash[_ngcontent-%COMP%]:before{content:""}.fa-shield[_ngcontent-%COMP%]:before{content:""}.fa-calendar-o[_ngcontent-%COMP%]:before{content:""}.fa-fire-extinguisher[_ngcontent-%COMP%]:before{content:""}.fa-rocket[_ngcontent-%COMP%]:before{content:""}.fa-maxcdn[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-html5[_ngcontent-%COMP%]:before{content:""}.fa-css3[_ngcontent-%COMP%]:before{content:""}.fa-anchor[_ngcontent-%COMP%]:before{content:""}.fa-unlock-alt[_ngcontent-%COMP%]:before{content:""}.fa-bullseye[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-h[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-v[_ngcontent-%COMP%]:before{content:""}.fa-rss-square[_ngcontent-%COMP%]:before{content:""}.fa-play-circle[_ngcontent-%COMP%]:before{content:""}.fa-ticket[_ngcontent-%COMP%]:before{content:""}.fa-minus-square[_ngcontent-%COMP%]:before{content:""}.fa-minus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-level-up[_ngcontent-%COMP%]:before{content:""}.fa-level-down[_ngcontent-%COMP%]:before{content:""}.fa-check-square[_ngcontent-%COMP%]:before{content:""}.fa-pencil-square[_ngcontent-%COMP%]:before{content:""}.fa-external-link-square[_ngcontent-%COMP%]:before{content:""}.fa-share-square[_ngcontent-%COMP%]:before{content:""}.fa-compass[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-down[_ngcontent-%COMP%]:before, .fa-toggle-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-up[_ngcontent-%COMP%]:before, .fa-toggle-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-right[_ngcontent-%COMP%]:before, .fa-toggle-right[_ngcontent-%COMP%]:before{content:""}.fa-eur[_ngcontent-%COMP%]:before, .fa-euro[_ngcontent-%COMP%]:before{content:""}.fa-gbp[_ngcontent-%COMP%]:before, .fa-pound[_ngcontent-%COMP%]:before{content:""}.fa-dollar[_ngcontent-%COMP%]:before, .fa-usd[_ngcontent-%COMP%]:before{content:""}.fa-inr[_ngcontent-%COMP%]:before, .fa-rupee[_ngcontent-%COMP%]:before{content:""}.fa-cny[_ngcontent-%COMP%]:before, .fa-jpy[_ngcontent-%COMP%]:before, .fa-rmb[_ngcontent-%COMP%]:before, .fa-yen[_ngcontent-%COMP%]:before{content:""}.fa-rouble[_ngcontent-%COMP%]:before, .fa-rub[_ngcontent-%COMP%]:before, .fa-ruble[_ngcontent-%COMP%]:before{content:""}.fa-krw[_ngcontent-%COMP%]:before, .fa-won[_ngcontent-%COMP%]:before{content:""}.fa-bitcoin[_ngcontent-%COMP%]:before, .fa-btc[_ngcontent-%COMP%]:before{content:""}.fa-file[_ngcontent-%COMP%]:before{content:""}.fa-file-text[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-asc[_ngcontent-%COMP%]:before, .fa-sort-alpha-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-desc[_ngcontent-%COMP%]:before, .fa-sort-alpha-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-asc[_ngcontent-%COMP%]:before, .fa-sort-amount-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-desc[_ngcontent-%COMP%]:before, .fa-sort-amount-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-asc[_ngcontent-%COMP%]:before, .fa-sort-numeric-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-desc[_ngcontent-%COMP%]:before, .fa-sort-numeric-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-down[_ngcontent-%COMP%]:before{content:""}.fa-youtube-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube[_ngcontent-%COMP%]:before{content:""}.fa-xing[_ngcontent-%COMP%]:before{content:""}.fa-xing-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube-play[_ngcontent-%COMP%]:before{content:""}.fa-dropbox[_ngcontent-%COMP%]:before{content:""}.fa-stack-overflow[_ngcontent-%COMP%]:before{content:""}.fa-instagram[_ngcontent-%COMP%]:before{content:""}.fa-flickr[_ngcontent-%COMP%]:before{content:""}.fa-adn[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket-square[_ngcontent-%COMP%]:before{content:""}.fa-tumblr[_ngcontent-%COMP%]:before{content:""}.fa-tumblr-square[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-apple[_ngcontent-%COMP%]:before{content:""}.fa-windows[_ngcontent-%COMP%]:before{content:""}.fa-android[_ngcontent-%COMP%]:before{content:""}.fa-linux[_ngcontent-%COMP%]:before{content:""}.fa-dribbble[_ngcontent-%COMP%]:before{content:""}.fa-skype[_ngcontent-%COMP%]:before{content:""}.fa-foursquare[_ngcontent-%COMP%]:before{content:""}.fa-trello[_ngcontent-%COMP%]:before{content:""}.fa-female[_ngcontent-%COMP%]:before{content:""}.fa-male[_ngcontent-%COMP%]:before{content:""}.fa-gittip[_ngcontent-%COMP%]:before, .fa-gratipay[_ngcontent-%COMP%]:before{content:""}.fa-sun-o[_ngcontent-%COMP%]:before{content:""}.fa-moon-o[_ngcontent-%COMP%]:before{content:""}.fa-archive[_ngcontent-%COMP%]:before{content:""}.fa-bug[_ngcontent-%COMP%]:before{content:""}.fa-vk[_ngcontent-%COMP%]:before{content:""}.fa-weibo[_ngcontent-%COMP%]:before{content:""}.fa-renren[_ngcontent-%COMP%]:before{content:""}.fa-pagelines[_ngcontent-%COMP%]:before{content:""}.fa-stack-exchange[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-left[_ngcontent-%COMP%]:before, .fa-toggle-left[_ngcontent-%COMP%]:before{content:""}.fa-dot-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-square[_ngcontent-%COMP%]:before{content:""}.fa-try[_ngcontent-%COMP%]:before, .fa-turkish-lira[_ngcontent-%COMP%]:before{content:""}.fa-plus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-space-shuttle[_ngcontent-%COMP%]:before{content:""}.fa-slack[_ngcontent-%COMP%]:before{content:""}.fa-envelope-square[_ngcontent-%COMP%]:before{content:""}.fa-wordpress[_ngcontent-%COMP%]:before{content:""}.fa-openid[_ngcontent-%COMP%]:before{content:""}.fa-bank[_ngcontent-%COMP%]:before, .fa-institution[_ngcontent-%COMP%]:before, .fa-university[_ngcontent-%COMP%]:before{content:""}.fa-graduation-cap[_ngcontent-%COMP%]:before, .fa-mortar-board[_ngcontent-%COMP%]:before{content:""}.fa-yahoo[_ngcontent-%COMP%]:before{content:""}.fa-google[_ngcontent-%COMP%]:before{content:""}.fa-reddit[_ngcontent-%COMP%]:before{content:""}.fa-reddit-square[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon-circle[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon[_ngcontent-%COMP%]:before{content:""}.fa-delicious[_ngcontent-%COMP%]:before{content:""}.fa-digg[_ngcontent-%COMP%]:before{content:""}.fa-drupal[_ngcontent-%COMP%]:before{content:""}.fa-joomla[_ngcontent-%COMP%]:before{content:""}.fa-language[_ngcontent-%COMP%]:before{content:""}.fa-fax[_ngcontent-%COMP%]:before{content:""}.fa-building[_ngcontent-%COMP%]:before{content:""}.fa-child[_ngcontent-%COMP%]:before{content:""}.fa-paw[_ngcontent-%COMP%]:before{content:""}.fa-spoon[_ngcontent-%COMP%]:before, .fa-utensil-spoon[_ngcontent-%COMP%]:before{content:""}.fa-cube[_ngcontent-%COMP%]:before{content:""}.fa-cubes[_ngcontent-%COMP%]:before{content:""}.fa-behance[_ngcontent-%COMP%]:before{content:""}.fa-behance-square[_ngcontent-%COMP%]:before{content:""}.fa-steam[_ngcontent-%COMP%]:before{content:""}.fa-steam-square[_ngcontent-%COMP%]:before{content:""}.fa-recycle[_ngcontent-%COMP%]:before{content:""}.fa-automobile[_ngcontent-%COMP%]:before, .fa-car[_ngcontent-%COMP%]:before{content:""}.fa-cab[_ngcontent-%COMP%]:before, .fa-taxi[_ngcontent-%COMP%]:before{content:""}.fa-tree[_ngcontent-%COMP%]:before{content:""}.fa-spotify[_ngcontent-%COMP%]:before{content:""}.fa-deviantart[_ngcontent-%COMP%]:before{content:""}.fa-soundcloud[_ngcontent-%COMP%]:before{content:""}.fa-database[_ngcontent-%COMP%]:before{content:""}.fa-file-pdf-o[_ngcontent-%COMP%]:before{content:""}.fa-file-word-o[_ngcontent-%COMP%]:before{content:""}.fa-file-excel-o[_ngcontent-%COMP%]:before{content:""}.fa-file-powerpoint-o[_ngcontent-%COMP%]:before{content:""}.fa-file-image-o[_ngcontent-%COMP%]:before, .fa-file-photo-o[_ngcontent-%COMP%]:before, .fa-file-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-file-archive-o[_ngcontent-%COMP%]:before, .fa-file-zip-o[_ngcontent-%COMP%]:before{content:""}.fa-file-audio-o[_ngcontent-%COMP%]:before, .fa-file-sound-o[_ngcontent-%COMP%]:before{content:""}.fa-file-movie-o[_ngcontent-%COMP%]:before, .fa-file-video-o[_ngcontent-%COMP%]:before{content:""}.fa-file-code-o[_ngcontent-%COMP%]:before{content:""}.fa-vine[_ngcontent-%COMP%]:before{content:""}.fa-codepen[_ngcontent-%COMP%]:before{content:""}.fa-jsfiddle[_ngcontent-%COMP%]:before{content:""}.fa-life-bouy[_ngcontent-%COMP%]:before, .fa-life-buoy[_ngcontent-%COMP%]:before, .fa-life-ring[_ngcontent-%COMP%]:before, .fa-life-saver[_ngcontent-%COMP%]:before, .fa-support[_ngcontent-%COMP%]:before{content:""}.fa-circle-o-notch[_ngcontent-%COMP%]:before{content:""}.fa-ra[_ngcontent-%COMP%]:before, .fa-rebel[_ngcontent-%COMP%]:before, .fa-resistance[_ngcontent-%COMP%]:before{content:""}.fa-empire[_ngcontent-%COMP%]:before, .fa-ge[_ngcontent-%COMP%]:before{content:""}.fa-git-square[_ngcontent-%COMP%]:before{content:""}.fa-git[_ngcontent-%COMP%]:before{content:""}.fa-hacker-news[_ngcontent-%COMP%]:before, .fa-y-combinator-square[_ngcontent-%COMP%]:before, .fa-yc-square[_ngcontent-%COMP%]:before{content:""}.fa-tencent-weibo[_ngcontent-%COMP%]:before{content:""}.fa-qq[_ngcontent-%COMP%]:before{content:""}.fa-wechat[_ngcontent-%COMP%]:before, .fa-weixin[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane[_ngcontent-%COMP%]:before, .fa-send[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane-o[_ngcontent-%COMP%]:before, .fa-send-o[_ngcontent-%COMP%]:before{content:""}.fa-history[_ngcontent-%COMP%]:before{content:""}.fa-circle-thin[_ngcontent-%COMP%]:before{content:""}.fa-header[_ngcontent-%COMP%]:before, .fa-heading[_ngcontent-%COMP%]:before{content:""}.fa-paragraph[_ngcontent-%COMP%]:before{content:""}.fa-sliders[_ngcontent-%COMP%]:before{content:""}.fa-share-alt[_ngcontent-%COMP%]:before{content:""}.fa-share-alt-square[_ngcontent-%COMP%]:before{content:""}.fa-bomb[_ngcontent-%COMP%]:before{content:""}.fa-futbol-o[_ngcontent-%COMP%]:before, .fa-soccer-ball-o[_ngcontent-%COMP%]:before{content:""}.fa-tty[_ngcontent-%COMP%]:before{content:""}.fa-binoculars[_ngcontent-%COMP%]:before{content:""}.fa-plug[_ngcontent-%COMP%]:before{content:""}.fa-slideshare[_ngcontent-%COMP%]:before{content:""}.fa-twitch[_ngcontent-%COMP%]:before{content:""}.fa-yelp[_ngcontent-%COMP%]:before{content:""}.fa-newspaper-o[_ngcontent-%COMP%]:before{content:""}.fa-wifi[_ngcontent-%COMP%]:before{content:""}.fa-calculator[_ngcontent-%COMP%]:before{content:""}.fa-paypal[_ngcontent-%COMP%]:before{content:""}.fa-google-wallet[_ngcontent-%COMP%]:before{content:""}.fa-cc-visa[_ngcontent-%COMP%]:before{content:""}.fa-cc-mastercard[_ngcontent-%COMP%]:before{content:""}.fa-cc-discover[_ngcontent-%COMP%]:before{content:""}.fa-cc-amex[_ngcontent-%COMP%]:before{content:""}.fa-cc-paypal[_ngcontent-%COMP%]:before{content:""}.fa-cc-stripe[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash-o[_ngcontent-%COMP%]:before{content:""}.fa-trash[_ngcontent-%COMP%]:before{content:""}.fa-copyright[_ngcontent-%COMP%]:before{content:""}.fa-at[_ngcontent-%COMP%]:before{content:""}.fa-eyedropper[_ngcontent-%COMP%]:before{content:""}.fa-paint-brush[_ngcontent-%COMP%]:before{content:""}.fa-birthday-cake[_ngcontent-%COMP%]:before{content:""}.fa-area-chart[_ngcontent-%COMP%]:before{content:""}.fa-pie-chart[_ngcontent-%COMP%]:before{content:""}.fa-line-chart[_ngcontent-%COMP%]:before{content:""}.fa-lastfm[_ngcontent-%COMP%]:before{content:""}.fa-lastfm-square[_ngcontent-%COMP%]:before{content:""}.fa-toggle-off[_ngcontent-%COMP%]:before{content:""}.fa-toggle-on[_ngcontent-%COMP%]:before{content:""}.fa-bicycle[_ngcontent-%COMP%]:before{content:""}.fa-bus[_ngcontent-%COMP%]:before{content:""}.fa-ioxhost[_ngcontent-%COMP%]:before{content:""}.fa-angellist[_ngcontent-%COMP%]:before{content:""}.fa-cc[_ngcontent-%COMP%]:before, .fa-closed-captioning[_ngcontent-%COMP%]:before{content:""}.fa-ils[_ngcontent-%COMP%]:before, .fa-shekel[_ngcontent-%COMP%]:before, .fa-sheqel[_ngcontent-%COMP%]:before{content:""}.fa-meanpath[_ngcontent-%COMP%]:before{content:""}.fa-buysellads[_ngcontent-%COMP%]:before{content:""}.fa-connectdevelop[_ngcontent-%COMP%]:before{content:""}.fa-dashcube[_ngcontent-%COMP%]:before{content:""}.fa-forumbee[_ngcontent-%COMP%]:before{content:""}.fa-leanpub[_ngcontent-%COMP%]:before{content:""}.fa-sellsy[_ngcontent-%COMP%]:before{content:""}.fa-shirtsinbulk[_ngcontent-%COMP%]:before{content:""}.fa-simplybuilt[_ngcontent-%COMP%]:before{content:""}.fa-skyatlas[_ngcontent-%COMP%]:before{content:""}.fa-cart-plus[_ngcontent-%COMP%]:before{content:""}.fa-cart-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-diamond[_ngcontent-%COMP%]:before, .fa-gem[_ngcontent-%COMP%]:before{content:""}.fa-ship[_ngcontent-%COMP%]:before{content:""}.fa-user-secret[_ngcontent-%COMP%]:before{content:""}.fa-motorcycle[_ngcontent-%COMP%]:before{content:""}.fa-street-view[_ngcontent-%COMP%]:before{content:""}.fa-heartbeat[_ngcontent-%COMP%]:before{content:""}.fa-venus[_ngcontent-%COMP%]:before{content:""}.fa-mars[_ngcontent-%COMP%]:before{content:""}.fa-mercury[_ngcontent-%COMP%]:before{content:""}.fa-intersex[_ngcontent-%COMP%]:before, .fa-transgender[_ngcontent-%COMP%]:before{content:""}.fa-transgender-alt[_ngcontent-%COMP%]:before{content:""}.fa-venus-double[_ngcontent-%COMP%]:before{content:""}.fa-mars-double[_ngcontent-%COMP%]:before{content:""}.fa-venus-mars[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-v[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-h[_ngcontent-%COMP%]:before{content:""}.fa-neuter[_ngcontent-%COMP%]:before{content:""}.fa-genderless[_ngcontent-%COMP%]:before{content:""}.fa-facebook-official[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-p[_ngcontent-%COMP%]:before{content:""}.fa-whatsapp[_ngcontent-%COMP%]:before{content:""}.fa-server[_ngcontent-%COMP%]:before{content:""}.fa-user-plus[_ngcontent-%COMP%]:before{content:""}.fa-user-times[_ngcontent-%COMP%]:before{content:""}.fa-bed[_ngcontent-%COMP%]:before, .fa-hotel[_ngcontent-%COMP%]:before{content:""}.fa-viacoin[_ngcontent-%COMP%]:before{content:""}.fa-train[_ngcontent-%COMP%]:before{content:""}.fa-subway[_ngcontent-%COMP%]:before{content:""}.fa-medium[_ngcontent-%COMP%]:before{content:""}.fa-medium-square[_ngcontent-%COMP%]:before{content:""}.fa-y-combinator[_ngcontent-%COMP%]:before, .fa-yc[_ngcontent-%COMP%]:before{content:""}.fa-optin-monster[_ngcontent-%COMP%]:before{content:""}.fa-opencart[_ngcontent-%COMP%]:before{content:""}.fa-expeditedssl[_ngcontent-%COMP%]:before{content:""}.fa-battery-4[_ngcontent-%COMP%]:before, .fa-battery-full[_ngcontent-%COMP%]:before, .fa-battery[_ngcontent-%COMP%]:before{content:""}.fa-battery-3[_ngcontent-%COMP%]:before, .fa-battery-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-battery-2[_ngcontent-%COMP%]:before, .fa-battery-half[_ngcontent-%COMP%]:before{content:""}.fa-battery-1[_ngcontent-%COMP%]:before, .fa-battery-quarter[_ngcontent-%COMP%]:before{content:""}.fa-battery-0[_ngcontent-%COMP%]:before, .fa-battery-empty[_ngcontent-%COMP%]:before{content:""}.fa-mouse-pointer[_ngcontent-%COMP%]:before{content:""}.fa-i-cursor[_ngcontent-%COMP%]:before{content:""}.fa-object-group[_ngcontent-%COMP%]:before{content:""}.fa-object-ungroup[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note-o[_ngcontent-%COMP%]:before{content:""}.fa-cc-jcb[_ngcontent-%COMP%]:before{content:""}.fa-cc-diners-club[_ngcontent-%COMP%]:before{content:""}.fa-clone[_ngcontent-%COMP%]:before{content:""}.fa-balance-scale[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-o[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-1[_ngcontent-%COMP%]:before, .fa-hourglass-start[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-2[_ngcontent-%COMP%]:before, .fa-hourglass-half[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-3[_ngcontent-%COMP%]:before, .fa-hourglass-end[_ngcontent-%COMP%]:before{content:""}.fa-hourglass[_ngcontent-%COMP%]:before{content:""}.fa-hand-grab-o[_ngcontent-%COMP%]:before, .fa-hand-rock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-paper-o[_ngcontent-%COMP%]:before, .fa-hand-stop-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-scissors-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-lizard-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-spock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-pointer-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-peace-o[_ngcontent-%COMP%]:before{content:""}.fa-trademark[_ngcontent-%COMP%]:before{content:""}.fa-registered[_ngcontent-%COMP%]:before{content:""}.fa-creative-commons[_ngcontent-%COMP%]:before{content:""}.fa-gg[_ngcontent-%COMP%]:before{content:""}.fa-gg-circle[_ngcontent-%COMP%]:before{content:""}.fa-tripadvisor[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki-square[_ngcontent-%COMP%]:before{content:""}.fa-get-pocket[_ngcontent-%COMP%]:before{content:""}.fa-wikipedia-w[_ngcontent-%COMP%]:before{content:""}.fa-safari[_ngcontent-%COMP%]:before{content:""}.fa-chrome[_ngcontent-%COMP%]:before{content:""}.fa-firefox[_ngcontent-%COMP%]:before{content:""}.fa-opera[_ngcontent-%COMP%]:before{content:""}.fa-internet-explorer[_ngcontent-%COMP%]:before{content:""}.fa-television[_ngcontent-%COMP%]:before, .fa-tv[_ngcontent-%COMP%]:before{content:""}.fa-contao[_ngcontent-%COMP%]:before{content:""}.fa-500px[_ngcontent-%COMP%]:before{content:""}.fa-amazon[_ngcontent-%COMP%]:before{content:""}.fa-calendar-plus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-minus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-times-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-check-o[_ngcontent-%COMP%]:before{content:""}.fa-industry[_ngcontent-%COMP%]:before{content:""}.fa-map-pin[_ngcontent-%COMP%]:before{content:""}.fa-map-signs[_ngcontent-%COMP%]:before{content:""}.fa-map-o[_ngcontent-%COMP%]:before{content:""}.fa-map[_ngcontent-%COMP%]:before{content:""}.fa-commenting[_ngcontent-%COMP%]:before{content:""}.fa-commenting-o[_ngcontent-%COMP%]:before{content:""}.fa-houzz[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-v[_ngcontent-%COMP%]:before, .fa-vimeo[_ngcontent-%COMP%]:before{content:""}.fa-black-tie[_ngcontent-%COMP%]:before{content:""}.fa-fonticons[_ngcontent-%COMP%]:before{content:""}.fa-reddit-alien[_ngcontent-%COMP%]:before{content:""}.fa-edge[_ngcontent-%COMP%]:before{content:""}.fa-credit-card-alt[_ngcontent-%COMP%]:before{content:""}.fa-codiepie[_ngcontent-%COMP%]:before{content:""}.fa-modx[_ngcontent-%COMP%]:before{content:""}.fa-fort-awesome[_ngcontent-%COMP%]:before{content:""}.fa-usb[_ngcontent-%COMP%]:before{content:""}.fa-product-hunt[_ngcontent-%COMP%]:before{content:""}.fa-mixcloud[_ngcontent-%COMP%]:before{content:""}.fa-scribd[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-shopping-bag[_ngcontent-%COMP%]:before{content:""}.fa-shopping-basket[_ngcontent-%COMP%]:before{content:""}.fa-hashtag[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth-b[_ngcontent-%COMP%]:before{content:""}.fa-percent[_ngcontent-%COMP%]:before{content:""}.fa-gitlab[_ngcontent-%COMP%]:before{content:""}.fa-wpbeginner[_ngcontent-%COMP%]:before{content:""}.fa-wpforms[_ngcontent-%COMP%]:before{content:""}.fa-envira[_ngcontent-%COMP%]:before{content:""}.fa-universal-access[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair-alt[_ngcontent-%COMP%]:before{content:""}.fa-question-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-blind[_ngcontent-%COMP%]:before{content:""}.fa-audio-description[_ngcontent-%COMP%]:before{content:""}.fa-phone-volume[_ngcontent-%COMP%]:before, .fa-volume-control-phone[_ngcontent-%COMP%]:before{content:""}.fa-braille[_ngcontent-%COMP%]:before{content:""}.fa-assistive-listening-systems[_ngcontent-%COMP%]:before{content:""}.fa-american-sign-language-interpreting[_ngcontent-%COMP%]:before, .fa-asl-interpreting[_ngcontent-%COMP%]:before{content:""}.fa-deaf[_ngcontent-%COMP%]:before, .fa-deafness[_ngcontent-%COMP%]:before, .fa-hard-of-hearing[_ngcontent-%COMP%]:before{content:""}.fa-glide[_ngcontent-%COMP%]:before{content:""}.fa-glide-g[_ngcontent-%COMP%]:before{content:""}.fa-sign-language[_ngcontent-%COMP%]:before, .fa-signing[_ngcontent-%COMP%]:before{content:""}.fa-low-vision[_ngcontent-%COMP%]:before{content:""}.fa-viadeo[_ngcontent-%COMP%]:before{content:""}.fa-viadeo-square[_ngcontent-%COMP%]:before{content:""}.fa-snapchat[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-ghost[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-square[_ngcontent-%COMP%]:before{content:""}.fa-first-order[_ngcontent-%COMP%]:before{content:""}.fa-yoast[_ngcontent-%COMP%]:before{content:""}.fa-themeisle[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-circle[_ngcontent-%COMP%]:before, .fa-google-plus-official[_ngcontent-%COMP%]:before{content:""}.fa-fa[_ngcontent-%COMP%]:before, .fa-font-awesome[_ngcontent-%COMP%]:before{content:""}.fa-handshake-o[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open-o[_ngcontent-%COMP%]:before{content:""}.fa-linode[_ngcontent-%COMP%]:before{content:""}.fa-address-book[_ngcontent-%COMP%]:before{content:""}.fa-address-book-o[_ngcontent-%COMP%]:before{content:""}.fa-address-card[_ngcontent-%COMP%]:before, .fa-vcard[_ngcontent-%COMP%]:before{content:""}.fa-address-card-o[_ngcontent-%COMP%]:before, .fa-vcard-o[_ngcontent-%COMP%]:before{content:""}.fa-user-circle[_ngcontent-%COMP%]:before{content:""}.fa-user-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-user-o[_ngcontent-%COMP%]:before{content:""}.fa-id-badge[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license[_ngcontent-%COMP%]:before, .fa-id-card[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license-o[_ngcontent-%COMP%]:before, .fa-id-card-o[_ngcontent-%COMP%]:before{content:""}.fa-quora[_ngcontent-%COMP%]:before{content:""}.fa-free-code-camp[_ngcontent-%COMP%]:before{content:""}.fa-telegram[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-4[_ngcontent-%COMP%]:before, .fa-thermometer-full[_ngcontent-%COMP%]:before, .fa-thermometer[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-3[_ngcontent-%COMP%]:before, .fa-thermometer-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-2[_ngcontent-%COMP%]:before, .fa-thermometer-half[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-1[_ngcontent-%COMP%]:before, .fa-thermometer-quarter[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-0[_ngcontent-%COMP%]:before, .fa-thermometer-empty[_ngcontent-%COMP%]:before{content:""}.fa-shower[_ngcontent-%COMP%]:before{content:""}.fa-bath[_ngcontent-%COMP%]:before, .fa-bathtub[_ngcontent-%COMP%]:before, .fa-s15[_ngcontent-%COMP%]:before{content:""}.fa-podcast[_ngcontent-%COMP%]:before{content:""}.fa-window-maximize[_ngcontent-%COMP%]:before{content:""}.fa-window-minimize[_ngcontent-%COMP%]:before{content:""}.fa-window-restore[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle[_ngcontent-%COMP%]:before, .fa-window-close[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle-o[_ngcontent-%COMP%]:before, .fa-window-close-o[_ngcontent-%COMP%]:before{content:""}.fa-bandcamp[_ngcontent-%COMP%]:before{content:""}.fa-grav[_ngcontent-%COMP%]:before{content:""}.fa-etsy[_ngcontent-%COMP%]:before{content:""}.fa-imdb[_ngcontent-%COMP%]:before{content:""}.fa-ravelry[_ngcontent-%COMP%]:before{content:""}.fa-eercast[_ngcontent-%COMP%]:before{content:""}.fa-microchip[_ngcontent-%COMP%]:before{content:""}.fa-snowflake-o[_ngcontent-%COMP%]:before{content:""}.fa-superpowers[_ngcontent-%COMP%]:before{content:""}.fa-wpexplorer[_ngcontent-%COMP%]:before{content:""}.fa-meetup[_ngcontent-%COMP%]:before{content:""}.fa-mastodon[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-alt[_ngcontent-%COMP%]:before{content:""}.fa-fork-awesome[_ngcontent-%COMP%]:before, .fa-fork-circle[_ngcontent-%COMP%]:before{content:""}.fa-peertube[_ngcontent-%COMP%]:before{content:""}.fa-diaspora[_ngcontent-%COMP%]:before{content:""}.fa-friendica[_ngcontent-%COMP%]:before{content:""}.fa-gnu-social[_ngcontent-%COMP%]:before{content:""}.fa-liberapay-square[_ngcontent-%COMP%]:before{content:""}.fa-liberapay[_ngcontent-%COMP%]:before{content:""}.fa-scuttlebutt[_ngcontent-%COMP%]:before, .fa-ssb[_ngcontent-%COMP%]:before{content:""}.fa-hubzilla[_ngcontent-%COMP%]:before{content:""}.fa-social-home[_ngcontent-%COMP%]:before{content:""}.fa-artstation[_ngcontent-%COMP%]:before{content:""}.fa-discord[_ngcontent-%COMP%]:before{content:""}.fa-discord-alt[_ngcontent-%COMP%]:before{content:""}.fa-patreon[_ngcontent-%COMP%]:before{content:""}.fa-snowdrift[_ngcontent-%COMP%]:before{content:""}.fa-activitypub[_ngcontent-%COMP%]:before{content:""}.fa-ethereum[_ngcontent-%COMP%]:before{content:""}.fa-keybase[_ngcontent-%COMP%]:before{content:""}.fa-shaarli[_ngcontent-%COMP%]:before{content:""}.fa-shaarli-o[_ngcontent-%COMP%]:before{content:""}.fa-cut-key[_ngcontent-%COMP%]:before, .fa-key-modern[_ngcontent-%COMP%]:before{content:""}.fa-xmpp[_ngcontent-%COMP%]:before{content:""}.fa-archive-org[_ngcontent-%COMP%]:before{content:""}.fa-freedombox[_ngcontent-%COMP%]:before{content:""}.fa-facebook-messenger[_ngcontent-%COMP%]:before{content:""}.fa-debian[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-square[_ngcontent-%COMP%]:before{content:""}.fa-tipeee[_ngcontent-%COMP%]:before{content:""}.fa-react[_ngcontent-%COMP%]:before{content:""}.fa-dogmazic[_ngcontent-%COMP%]:before{content:""}.fa-zotero[_ngcontent-%COMP%]:before{content:""}.fa-nodejs[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud-square[_ngcontent-%COMP%]:before{content:""}.fa-hackaday[_ngcontent-%COMP%]:before{content:""}.fa-laravel[_ngcontent-%COMP%]:before{content:""}.fa-signalapp[_ngcontent-%COMP%]:before{content:""}.fa-gnupg[_ngcontent-%COMP%]:before{content:""}.fa-php[_ngcontent-%COMP%]:before{content:""}.fa-ffmpeg[_ngcontent-%COMP%]:before{content:""}.fa-joplin[_ngcontent-%COMP%]:before{content:""}.fa-syncthing[_ngcontent-%COMP%]:before{content:""}.fa-inkscape[_ngcontent-%COMP%]:before{content:""}.fa-matrix-org[_ngcontent-%COMP%]:before{content:""}.fa-pixelfed[_ngcontent-%COMP%]:before{content:""}.fa-bootstrap[_ngcontent-%COMP%]:before{content:""}.fa-dev-to[_ngcontent-%COMP%]:before{content:""}.fa-hashnode[_ngcontent-%COMP%]:before{content:""}.fa-jirafeau[_ngcontent-%COMP%]:before{content:""}.fa-emby[_ngcontent-%COMP%]:before{content:""}.fa-wikidata[_ngcontent-%COMP%]:before{content:""}.fa-gimp[_ngcontent-%COMP%]:before{content:""}.fa-c[_ngcontent-%COMP%]:before{content:""}.fa-digitalocean[_ngcontent-%COMP%]:before{content:""}.fa-att[_ngcontent-%COMP%]:before{content:""}.fa-gitea[_ngcontent-%COMP%]:before{content:""}.fa-file-epub[_ngcontent-%COMP%]:before{content:""}.fa-python[_ngcontent-%COMP%]:before{content:""}.fa-archlinux[_ngcontent-%COMP%]:before{content:""}.fa-pleroma[_ngcontent-%COMP%]:before{content:""}.fa-unsplash[_ngcontent-%COMP%]:before{content:""}.fa-hackster[_ngcontent-%COMP%]:before{content:""}.fa-spell-check[_ngcontent-%COMP%]:before{content:""}.fa-moon[_ngcontent-%COMP%]:before{content:""}.fa-sun[_ngcontent-%COMP%]:before{content:""}.fa-f-droid[_ngcontent-%COMP%]:before{content:""}.fa-biometric[_ngcontent-%COMP%]:before{content:""}.sr-only[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable[_ngcontent-%COMP%]:active, .sr-only-focusable[_ngcontent-%COMP%]:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status[_ngcontent-%COMP%]   .popover-body[_ngcontent-%COMP%]{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:83vw}}.info-card-content-clickable[_ngcontent-%COMP%]{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable[_ngcontent-%COMP%]:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]{color:initial}.custom-control-input.is-valid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#adb5bd}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}html[_ngcontent-%COMP%]{background-color:#fff}body[_ngcontent-%COMP%], html[_ngcontent-%COMP%]{width:100%;height:100%;font-size:12px}h1[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:2em}h2[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:1.833em}h3[_ngcontent-%COMP%]{display:block;font-size:1.583em;font-weight:400}h4[_ngcontent-%COMP%]{font-size:1.5em;line-height:normal}option[_ngcontent-%COMP%]{font-weight:400;font-style:normal}.full-height[_ngcontent-%COMP%]{height:100vh}.full-width[_ngcontent-%COMP%]{width:100vw}.vertical-align[_ngcontent-%COMP%]{display:flex;align-items:center}.horizontal-align[_ngcontent-%COMP%]{display:flex;justify-content:center}.loading[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}.margin-right-md[_ngcontent-%COMP%]{margin-right:15px}.no-border[_ngcontent-%COMP%]{border:0;box-shadow:0 0 0!important}.italic[_ngcontent-%COMP%]{font-style:italic}.bold[_ngcontent-%COMP%]{font-weight:700}.text-pre[_ngcontent-%COMP%]{white-space:pre-wrap}.btn-light[_ngcontent-%COMP%]{background-color:#fff!important;border-color:#ced4da!important}.btn-light[_ngcontent-%COMP%]:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus[_ngcontent-%COMP%], .btn.active[_ngcontent-%COMP%]:focus, .btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:active.focus, .btn[_ngcontent-%COMP%]:active:focus, .btn[_ngcontent-%COMP%]:focus{outline:0}.btn-primary[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{color:#2b99a8;background-color:#eee}.btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%], .cd-datatable-actions[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]   i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%]{min-width:50px;z-index:999999}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#474544;cursor:pointer}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#eee}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background-color:#21747f}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li.dropdown-divider[_ngcontent-%COMP%]{cursor:auto}.container[_ngcontent-%COMP%], .container-fluid[_ngcontent-%COMP%]{padding-left:30px!important;padding-right:30px!important}.row[_ngcontent-%COMP%]{margin-left:-30px;margin-right:-30px}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{padding-left:30px;padding-right:30px}tags-input[_ngcontent-%COMP%]   .tags[_ngcontent-%COMP%]{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], uib-accordion[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{font-size:14px!important}.card-header[_ngcontent-%COMP%]{font-size:1.3em}.card-body[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]:first-child{margin-top:0}.disabled[_ngcontent-%COMP%]{pointer-events:none}.clickable[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{cursor:pointer}[_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%], [_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%]:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript[_ngcontent-%COMP%]{padding-top:5em}.noscript[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#777}.required[_ngcontent-%COMP%]::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer[_ngcontent-%COMP%]{width:100%;display:flex}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{display:table-cell}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]{padding-top:7px}.card-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child), .modal-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child){margin-left:5px}.nav-tabs[_ngcontent-%COMP%]{margin-bottom:15px}.ceph-icon[_ngcontent-%COMP%]{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon[_ngcontent-%COMP%]{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon[_ngcontent-%COMP%]{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message[_ngcontent-%COMP%]   .custom-icon[_ngcontent-%COMP%]{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper[_ngcontent-%COMP%]{background:rgba(0,0,0,.7)!important}.tooltip-wide[_ngcontent-%COMP%]   .tooltip-inner[_ngcontent-%COMP%]{width:400px}.tooltip-inner[_ngcontent-%COMP%]{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%]{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{text-align:right}}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{font-weight:700}cd-submit-button[_ngcontent-%COMP%]{background-color:transparent!important}bfv-messages[_ngcontent-%COMP%]{display:none}.form-group.has-error[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}.password-strength-level[_ngcontent-%COMP%]{flex:100%;margin-top:2px}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{border-radius:.25rem;height:13px}.password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{width:25%;background:red}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%]{width:50%;background:#ffc200}.password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%]{width:75%;background:#0b0}.password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%]{width:100%;background:#245e03}.badge-hdd[_ngcontent-%COMP%]{color:#fff;background-color:#90949c}.badge-ssd[_ngcontent-%COMP%]{color:#fff;background-color:#288cea}.badge-tab[_ngcontent-%COMP%]{color:#555;background-color:#f3f3f3}tree-root[_ngcontent-%COMP%]   tree-viewport[_ngcontent-%COMP%]{min-height:1em}.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{height:100%;border:.5px solid #ddd;border-radius:3px;box-shadow:0 1px 1px rgba(3,3,3,.175);font-size:12px}@media screen and (min-width:320px){.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{font-size:calc(12px + 9 * ((100vw - 320px)/ 1728))}}@media screen and (min-width:2048px){.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{font-size:21px}}.card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]{padding-top:40px!important}.card[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .card-body[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{position:absolute;left:0;top:0}.no-center[_ngcontent-%COMP%]{position:unset;top:unset;left:unset;transform:unset}.content-highlight[_ngcontent-%COMP%]{font-weight:700}']],data:{}});function Yn(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"a",[],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](1,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](2,null,["",""]))],(function(t,e){t(e,1,0,e.component.link)}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,1).target,i["ɵnov"](e,1).href),t(e,2,0,n.cardTitle)}))}function Hn(t){return i["ɵvid"](0,[(t()(),i["ɵted"](0,null,[" "," "]))],null,(function(t,e){t(e,0,0,e.component.cardTitle)}))}function Un(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,"div",[["class","card"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),(t()(),i["ɵeld"](3,0,null,null,8,"div",[["class","card-body d-flex align-items-center justify-content-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,3,"h5",[["class","card-title m-4"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Yn)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["noLinkTitle",2]],null,0,null,Hn)),(t()(),i["ɵeld"](8,0,null,null,3,"div",[["class","card-text text-center"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](10,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵncd"](null,0)],(function(t,e){var n=e.component;t(e,2,0,"card",n.cardClass),t(e,6,0,n.link,i["ɵnov"](e,7)),t(e,10,0,"card-text text-center",n.contentClass)}),null)}class Wn{}var Kn=i["ɵcrt"]({encapsulation:0,styles:[[".info-group-title[_ngcontent-%COMP%]{margin:0 0 .5vw .5vw;font-size:21px}"]],data:{}});function $n(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["class","info-group-title"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""])),(t()(),i["ɵeld"](3,0,null,null,1,"div",[["class","row"]],null,null,null,null,null)),i["ɵncd"](null,0)],null,(function(t,e){t(e,2,0,e.component.groupTitle)}))}var Zn=n("hrfs"),Jn=n("MO+k"),Xn=n("NEZu"),Qn=n("Fgil"),ta=n("o4+5"),ea=function(t){return t.DEFAULT_RED="#ff7592",t.DEFAULT_BLUE="#1d699d",t.DEFAULT_ORANGE="#ffa500",t.DEFAULT_MAGENTA="#564d65",t.DEFAULT_GREEN="#00bb00",t}({});class na{constructor(t,e){this.dimlessBinary=t,this.dimless=e,this.config={},this.isBytesData=!1,this.showLabelAsTooltip=!1,this.prepareFn=new i.EventEmitter,this.chartConfig={chartType:"pie",dataset:[{label:null,borderWidth:0}],options:{legend:{display:!0,position:"right",labels:{usePointStyle:!0},onClick:(t,e)=>{this.onLegendClick(t,e)}},animation:{duration:0},tooltips:{enabled:!1},title:{display:!1}}},this.hiddenSlices=[]}ngOnInit(){Jn.pluginService.register({beforeDraw:function(t){if(!t.options.center_text)return;const e=t.chart.width,n=t.chart.height,a=t.chart.ctx;a.restore();const r=(n/114).toFixed(2);a.font=r+"em sans-serif",a.textBaseline="middle";const o=t.options.center_text,i=Math.round((e-a.measureText(o).width)/2);a.fillText(o,i,n/2),a.save()}});const t=new Xn.a(this.chartCanvasRef,this.chartTooltipRef,(t,e)=>e+t.caretX+"px",(t,e)=>e+t.caretY-t.height-10+"px");t.getBody=t=>this.getChartTooltipBody(t),this.chartConfig.options.tooltips.custom=e=>{t.customTooltips(e)},this.chartConfig.colors=[{backgroundColor:[ea.DEFAULT_RED,ea.DEFAULT_BLUE,ea.DEFAULT_ORANGE,ea.DEFAULT_GREEN,ea.DEFAULT_MAGENTA]}],$.merge(this.chartConfig,this.config),this.prepareFn.emit([this.chartConfig,this.data])}ngOnChanges(){this.prepareFn.emit([this.chartConfig,this.data]),this.hideSlices(),this.setChartSliceBorderWidth()}getChartTooltipBody(t){const e=t[0].split(": ");return this.showLabelAsTooltip?e[0]:(e[1]=this.isBytesData?this.dimlessBinary.transform(e[1]):this.dimless.transform(e[1]),e.join(": "))}setChartSliceBorderWidth(){let t=0;$.forEach(this.chartConfig.dataset[0].data,(function(e){e>0&&(t+=1)})),this.chartConfig.dataset[0].borderWidth=t>1?1:0}onLegendClick(t,e){t.stopPropagation(),this.hiddenSlices[e.index]=!e.hidden,this.ngOnChanges()}hideSlices(){$.forEach(this.chartConfig.dataset[0].data,(t,e)=>{this.hiddenSlices[e]&&(this.chartConfig.dataset[0].data[e]=void 0)})}}var aa=i["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto;cursor:pointer;overflow:visible;position:unset;width:100%;height:100%}.chart-canvas[_ngcontent-%COMP%]{position:unset;width:100%;height:100%;margin-left:auto;margin-right:auto;max-width:100%;max-height:100%}']],data:{}});function ra(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{chartCanvasRef:0}),i["ɵqud"](402653184,2,{chartTooltipRef:0}),(t()(),i["ɵeld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""],["class","chart-canvas"]],null,null,null,null,null)),i["ɵdid"](4,999424,null,0,Zn.a,[i.ElementRef,Zn.c],{datasets:[0,"datasets"],labels:[1,"labels"],options:[2,"options"],chartType:[3,"chartType"],colors:[4,"colors"]},null),(t()(),i["ɵeld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.chartConfig.dataset,n.chartConfig.labels,n.chartConfig.options,n.chartConfig.chartType,n.chartConfig.colors)}),null)}class oa{constructor(t){this.i18n=t}transform(t){return t?`${t.monmap.mons.length.toString()} (${this.i18n("quorum")} ${t.quorum.join(", ")})`:""}}var ia=n("GiVz");class sa{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e=0,n=0;$.each(t.osds,t=>{t.in&&e++,t.up&&n++});const a=[{content:`${t.osds.length} ${this.i18n("total")}`,class:""}];a.push({content:"",class:"card-text-line-break"}),a.push({content:`${n} ${this.i18n("up")}, ${e} ${this.i18n("in")}`,class:""});const r=t.osds.length-n,o=n-e;if(r>0||o>0){a.push({content:"",class:"card-text-line-break"});const t=r>0?`${r} ${this.i18n("down")}`:"",e=r>0&&o>0?", ":"",n=o>0?`${o} ${this.i18n("out")}`:"";a.push({content:`${t}${e}${n}`,class:"card-text-error"})}return a}}class ca{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e=this.i18n("n/a");const n=$.isUndefined(t.active_name)?"":`${this.i18n("active daemon")}: ${t.active_name}`;n.length>0&&(e="1");const a=t.standbys.map(t=>t.name).join(", "),r=a?`${this.i18n("standby daemons")}: ${a}`:"",o=t.standbys.length,i=[{content:`${e} ${this.i18n("active")}`,class:"popover-info",titleText:n}];return i.push({content:"",class:"card-text-line-break",titleText:""}),i.push({content:`${o} ${this.i18n("standby")}`,class:"popover-info",titleText:r}),i}}class la{constructor(t){this.i18n=t}transform(t){if(!t)return"";let e="",n="",a=0,r=0,o=0;$.each(t.standbys,()=>{a+=1}),t.standbys&&!t.filesystems?(e=`${a} ${this.i18n("up")}`,n=this.i18n("no filesystems")):0===t.filesystems.length?e=this.i18n("no filesystems"):($.each(t.filesystems,t=>{$.each(t.mdsmap.info,t=>{"up:standby-replay"===t.state?o+=1:r+=1})}),e=`${r} ${this.i18n("active")}`,n=`${a+o} ${this.i18n("standby")}`);const i=t.standbys.map(t=>t.name).join(", "),s=i?`${this.i18n("standby daemons")}: ${i}`:"",c=t.filesystems?t.filesystems.length:0,l=Object.values(c>0?t.filesystems[0].mdsmap.info:{}).map(t=>t.name).join(", ");let d=l?`${this.i18n("active daemon")}: ${l}`:"";!r&&c>0&&(d=`${o} ${this.i18n("standbyReplay")}`);const u=[{content:e,class:"popover-info",titleText:d}];return n&&(u.push({content:"",class:"card-text-line-break",titleText:""}),u.push({content:n,class:"popover-info",titleText:s})),u}}class da{transform(t,e){return $.round(t,e)}}var ua=n("aXbf");let ga=(()=>{class t{constructor(t){this.http=t}getFullHealth(){return this.http.get("api/health/full")}getMinimalHealth(){return this.http.get("api/health/minimal")}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();var fa=n("2Vo4"),pa=n("l5mm");let ma=(()=>{class t{constructor(t){this.ngZone=t,this.intervalDataSource=new fa.a(null),this.intervalData$=this.intervalDataSource.asObservable();const e=parseInt(sessionStorage.getItem("dashboard_interval"),10)||5e3;this.setRefreshInterval(e)}setRefreshInterval(t){this.intervalTime=t,sessionStorage.setItem("dashboard_interval",t.toString()),this.intervalSubscription&&this.intervalSubscription.unsubscribe(),this.ngZone.runOutsideAngular(()=>{this.intervalSubscription=Object(pa.a)(this.intervalTime).subscribe(()=>this.ngZone.run(()=>{this.intervalDataSource.next(this.intervalTime)}))})}getRefreshInterval(){return this.intervalTime}ngOnDestroy(){this.intervalSubscription&&this.intervalSubscription.unsubscribe()}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](i.NgZone))},token:t,providedIn:"root"}),t})();var ha=n("d+Og");class ba{constructor(t,e,n,a,r,o,i,s){this.healthService=t,this.i18n=e,this.authStorageService=n,this.pgCategoryService=a,this.featureToggles=r,this.refreshIntervalService=o,this.dimlessBinary=i,this.dimless=s,this.interval=new dt.a,this.icons=ut.a,this.rawCapacityChartConfig={options:{title:{display:!0,position:"bottom"}}},this.objectsChartConfig={options:{title:{display:!0,position:"bottom"}},colors:[{backgroundColor:[ea.DEFAULT_GREEN,ea.DEFAULT_MAGENTA,ea.DEFAULT_ORANGE,ea.DEFAULT_RED]}]},this.pgStatusChartConfig={colors:[{backgroundColor:[ea.DEFAULT_GREEN,ea.DEFAULT_BLUE,ea.DEFAULT_ORANGE,ea.DEFAULT_RED]}]},this.permissions=this.authStorageService.getPermissions(),this.enabledFeature$=this.featureToggles.get()}ngOnInit(){this.getHealth(),this.interval=this.refreshIntervalService.intervalData$.subscribe(()=>{this.getHealth()})}ngOnDestroy(){this.interval.unsubscribe()}getHealth(){this.healthService.getMinimalHealth().subscribe(t=>{this.healthData=t})}prepareReadWriteRatio(t){const e=[],n=[],a=this.healthData.client_perf.write_op_per_sec+this.healthData.client_perf.read_op_per_sec;e.push(`${this.i18n("Writes")} (${this.calcPercentage(this.healthData.client_perf.write_op_per_sec,a)}%)`),n.push(this.healthData.client_perf.write_op_per_sec),e.push(`${this.i18n("Reads")} (${this.calcPercentage(this.healthData.client_perf.read_op_per_sec,a)}%)`),n.push(this.healthData.client_perf.read_op_per_sec),t.dataset[0].data=n,t.labels=e}prepareRawUsage(t,e){const n=this.calcPercentage(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes),a=this.calcPercentage(e.df.stats.total_used_raw_bytes,e.df.stats.total_bytes);t.dataset[0].data=[e.df.stats.total_used_raw_bytes,e.df.stats.total_avail_bytes],t.labels=[`${this.dimlessBinary.transform(e.df.stats.total_used_raw_bytes)} ${this.i18n("Used")} (${a}%)`,`${this.dimlessBinary.transform(e.df.stats.total_bytes-e.df.stats.total_used_raw_bytes)} ${this.i18n("Avail.")} (${n}%)`],t.options.title.text=`${this.dimlessBinary.transform(e.df.stats.total_bytes)} ${this.i18n("total")}`}preparePgStatus(t,e){const n={};let a=0;$.forEach(e.pg_info.statuses,(t,e)=>{const r=this.pgCategoryService.getTypeByStates(e);$.isUndefined(n[r])&&(n[r]=0),n[r]+=t,a+=t}),t.dataset[0].data=this.pgCategoryService.getAllTypes().map(t=>n[t]),t.labels=[`${this.i18n("Clean")} (${this.calcPercentage(n.clean,a)}%)`,`${this.i18n("Working")} (${this.calcPercentage(n.working,a)}%)`,`${this.i18n("Warning")} (${this.calcPercentage(n.warning,a)}%)`,`${this.i18n("Unknown")} (${this.calcPercentage(n.unknown,a)}%)`]}prepareObjects(t,e){const n=e.pg_info.object_stats.num_object_copies,a=n-e.pg_info.object_stats.num_objects_misplaced-e.pg_info.object_stats.num_objects_degraded-e.pg_info.object_stats.num_objects_unfound;t.labels=[`${this.i18n("Healthy")} (${this.calcPercentage(a,n)}%)`,`${this.i18n("Misplaced")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_misplaced,n)}%)`,`${this.i18n("Degraded")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_degraded,n)}%)`,`${this.i18n("Unfound")} (${this.calcPercentage(e.pg_info.object_stats.num_objects_unfound,n)}%)`],t.dataset[0].data=[a,e.pg_info.object_stats.num_objects_misplaced,e.pg_info.object_stats.num_objects_degraded,e.pg_info.object_stats.num_objects_unfound],t.options.title.text=`${this.dimless.transform(e.pg_info.object_stats.num_objects)} ${this.i18n("total")} (${this.dimless.transform(n)} ${this.i18n("replicas")})`,t.options.maintainAspectRatio=window.innerWidth>=375}isClientReadWriteChartShowable(){return(this.healthData.client_perf.read_op_per_sec||0)+(this.healthData.client_perf.write_op_per_sec||0)>0}calcPercentage(t,e){return $.isNumber(t)&&$.isNumber(e)&&0!==e?Math.round(t/e*100):0}}var ya=i["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.tree-children.tree-children-no-padding[_ngcontent-%COMP%]{padding-left:0}.node-drop-slot[_ngcontent-%COMP%]{display:block;height:2px}.node-drop-slot.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(90deg)}.toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(0)}.toggle-children-wrapper[_ngcontent-%COMP%]{padding:2px 3px 5px 1px}.toggle-children[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder[_ngcontent-%COMP%]{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper[_ngcontent-%COMP%]{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-active.node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper.node-content-wrapper-active[_ngcontent-%COMP%]:hover{background:#beebff}.node-content-wrapper-focused[_ngcontent-%COMP%]{background:#e7f4f9}.node-content-wrapper[_ngcontent-%COMP%]:hover{background:#f7fbff}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper[_ngcontent-%COMP%]:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled[_ngcontent-%COMP%]{opacity:.5}tree-viewport[_ngcontent-%COMP%]{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children[_ngcontent-%COMP%]{overflow:hidden;padding-left:20px}.empty-tree-drop-slot[_ngcontent-%COMP%]   .node-drop-slot[_ngcontent-%COMP%]{height:20px;min-width:100px}.angular-tree-component[_ngcontent-%COMP%]{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]{direction:rtl}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(180deg)!important}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .tree-children[_ngcontent-%COMP%]{padding-right:20px;padding-left:0}tree-node-checkbox[_ngcontent-%COMP%]{padding:1px}[_ngcontent-%COMP%]:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{box-sizing:border-box}html[_ngcontent-%COMP%]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article[_ngcontent-%COMP%], aside[_ngcontent-%COMP%], figcaption[_ngcontent-%COMP%], figure[_ngcontent-%COMP%], footer[_ngcontent-%COMP%], header[_ngcontent-%COMP%], hgroup[_ngcontent-%COMP%], main[_ngcontent-%COMP%], nav[_ngcontent-%COMP%], section[_ngcontent-%COMP%]{display:block}body[_ngcontent-%COMP%]{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"][_ngcontent-%COMP%]:focus{outline:0!important}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-top:0}dl[_ngcontent-%COMP%], ol[_ngcontent-%COMP%], p[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem}abbr[data-original-title][_ngcontent-%COMP%], abbr[title][_ngcontent-%COMP%]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address[_ngcontent-%COMP%]{margin-bottom:1rem;font-style:normal;line-height:inherit}ol[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ol[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{margin-bottom:0}dt[_ngcontent-%COMP%]{font-weight:700}dd[_ngcontent-%COMP%]{margin-bottom:.5rem;margin-left:0}blockquote[_ngcontent-%COMP%], figure[_ngcontent-%COMP%]{margin:0 0 1rem}b[_ngcontent-%COMP%], strong[_ngcontent-%COMP%]{font-weight:bolder}sub[_ngcontent-%COMP%], sup[_ngcontent-%COMP%]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[_ngcontent-%COMP%]{bottom:-.25em}sup[_ngcontent-%COMP%]{top:-.5em}a[_ngcontent-%COMP%]{color:#2b99a8;text-decoration:none;background-color:transparent}a[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}a[_ngcontent-%COMP%]:not([href]):not([tabindex]), a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus, a[_ngcontent-%COMP%]:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus{outline:0}code[_ngcontent-%COMP%], kbd[_ngcontent-%COMP%], pre[_ngcontent-%COMP%], samp[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem;overflow:auto}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}svg[_ngcontent-%COMP%]{overflow:hidden;vertical-align:middle}table[_ngcontent-%COMP%]{border-collapse:collapse}caption[_ngcontent-%COMP%]{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th[_ngcontent-%COMP%]{text-align:inherit}label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:.5rem}button[_ngcontent-%COMP%]{border-radius:0}button[_ngcontent-%COMP%]:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%], optgroup[_ngcontent-%COMP%], select[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%]{overflow:visible}button[_ngcontent-%COMP%], select[_ngcontent-%COMP%]{text-transform:none}select[_ngcontent-%COMP%]{word-wrap:normal}[type=button][_ngcontent-%COMP%], [type=reset][_ngcontent-%COMP%], [type=submit][_ngcontent-%COMP%], button[_ngcontent-%COMP%]{-webkit-appearance:button}[type=button][_ngcontent-%COMP%]:not(:disabled), [type=reset][_ngcontent-%COMP%]:not(:disabled), [type=submit][_ngcontent-%COMP%]:not(:disabled), button[_ngcontent-%COMP%]:not(:disabled){cursor:pointer}[type=button][_ngcontent-%COMP%]::-moz-focus-inner, [type=reset][_ngcontent-%COMP%]::-moz-focus-inner, [type=submit][_ngcontent-%COMP%]::-moz-focus-inner, button[_ngcontent-%COMP%]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][_ngcontent-%COMP%], input[type=radio][_ngcontent-%COMP%]{box-sizing:border-box;padding:0}input[type=date][_ngcontent-%COMP%], input[type=datetime-local][_ngcontent-%COMP%], input[type=month][_ngcontent-%COMP%], input[type=time][_ngcontent-%COMP%]{-webkit-appearance:listbox}textarea[_ngcontent-%COMP%]{overflow:auto;resize:vertical}fieldset[_ngcontent-%COMP%]{min-width:0;padding:0;margin:0;border:0}legend[_ngcontent-%COMP%]{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress[_ngcontent-%COMP%]{vertical-align:baseline}[type=number][_ngcontent-%COMP%]::-webkit-inner-spin-button, [type=number][_ngcontent-%COMP%]::-webkit-outer-spin-button{height:auto}[type=search][_ngcontent-%COMP%]{outline-offset:-2px;-webkit-appearance:none}[type=search][_ngcontent-%COMP%]::-webkit-search-decoration{-webkit-appearance:none}[_ngcontent-%COMP%]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[_ngcontent-%COMP%]{display:inline-block}summary[_ngcontent-%COMP%]{display:list-item;cursor:pointer}template[_ngcontent-%COMP%]{display:none}[hidden][_ngcontent-%COMP%]{display:none!important}.h1[_ngcontent-%COMP%], .h2[_ngcontent-%COMP%], .h3[_ngcontent-%COMP%], .h4[_ngcontent-%COMP%], .h5[_ngcontent-%COMP%], .h6[_ngcontent-%COMP%], h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1[_ngcontent-%COMP%], h1[_ngcontent-%COMP%]{font-size:2.5rem}.h2[_ngcontent-%COMP%], h2[_ngcontent-%COMP%]{font-size:2rem}.h3[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{font-size:1.75rem}.h4[_ngcontent-%COMP%], h4[_ngcontent-%COMP%]{font-size:1.5rem}.h5[_ngcontent-%COMP%], h5[_ngcontent-%COMP%]{font-size:1.25rem}.h6[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-size:1rem}.lead[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:300}.display-1[_ngcontent-%COMP%]{font-size:6rem;font-weight:300;line-height:1.2}.display-2[_ngcontent-%COMP%]{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3[_ngcontent-%COMP%]{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4[_ngcontent-%COMP%]{font-size:3.5rem;font-weight:300;line-height:1.2}hr[_ngcontent-%COMP%]{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:80%;font-weight:400}.mark[_ngcontent-%COMP%], mark[_ngcontent-%COMP%]{padding:.2em;background-color:#fcf8e3}.list-inline[_ngcontent-%COMP%], .list-unstyled[_ngcontent-%COMP%]{padding-left:0;list-style:none}.list-inline-item[_ngcontent-%COMP%]{display:inline-block}.list-inline-item[_ngcontent-%COMP%]:not(:last-child){margin-right:.5rem}.initialism[_ngcontent-%COMP%]{font-size:90%;text-transform:uppercase}.blockquote[_ngcontent-%COMP%]{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer[_ngcontent-%COMP%]{display:block;font-size:80%;color:#6c757d}.blockquote-footer[_ngcontent-%COMP%]::before{content:"— "}.img-fluid[_ngcontent-%COMP%]{max-width:100%;height:auto}.img-thumbnail[_ngcontent-%COMP%]{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure[_ngcontent-%COMP%]{display:inline-block}.figure-img[_ngcontent-%COMP%]{margin-bottom:.5rem;line-height:1}.figure-caption[_ngcontent-%COMP%]{font-size:90%;color:#6c757d}code[_ngcontent-%COMP%]{font-size:87.5%;color:#e83e8c;word-break:break-word}a[_ngcontent-%COMP%] > code[_ngcontent-%COMP%]{color:inherit}kbd[_ngcontent-%COMP%]{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd[_ngcontent-%COMP%]   kbd[_ngcontent-%COMP%]{padding:0;font-size:100%;font-weight:700}pre[_ngcontent-%COMP%]{display:block;font-size:87.5%;color:#212529}pre[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable[_ngcontent-%COMP%]{max-height:340px;overflow-y:scroll}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container[_ngcontent-%COMP%]{max-width:540px}}@media (min-width:768px){.container[_ngcontent-%COMP%]{max-width:720px}}@media (min-width:992px){.container[_ngcontent-%COMP%]{max-width:960px}}@media (min-width:1200px){.container[_ngcontent-%COMP%]{max-width:1140px}}.container-fluid[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.no-gutters[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.no-gutters[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .no-gutters[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:0;padding-left:0}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-auto[_ngcontent-%COMP%], .col-lg[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-lg-auto[_ngcontent-%COMP%], .col-md[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-md-auto[_ngcontent-%COMP%], .col-sm[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], .col-sm-auto[_ngcontent-%COMP%], .col-xl[_ngcontent-%COMP%], .col-xl-1[_ngcontent-%COMP%], .col-xl-10[_ngcontent-%COMP%], .col-xl-11[_ngcontent-%COMP%], .col-xl-12[_ngcontent-%COMP%], .col-xl-2[_ngcontent-%COMP%], .col-xl-3[_ngcontent-%COMP%], .col-xl-4[_ngcontent-%COMP%], .col-xl-5[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%], .col-xl-7[_ngcontent-%COMP%], .col-xl-8[_ngcontent-%COMP%], .col-xl-9[_ngcontent-%COMP%], .col-xl-auto[_ngcontent-%COMP%],   cd-info-card,   cd-info-card.cd-capacity-card,   cd-info-card.cd-performance-card,   cd-info-card.cd-status-card, cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{position:relative;width:100%;padding-right:15px;padding-left:15px}.col[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%],   cd-info-card{flex:0 0 100%;max-width:100%}.order-first[_ngcontent-%COMP%]{order:-1}.order-last[_ngcontent-%COMP%]{order:13}.order-0[_ngcontent-%COMP%]{order:0}.order-1[_ngcontent-%COMP%]{order:1}.order-2[_ngcontent-%COMP%]{order:2}.order-3[_ngcontent-%COMP%]{order:3}.order-4[_ngcontent-%COMP%]{order:4}.order-5[_ngcontent-%COMP%]{order:5}.order-6[_ngcontent-%COMP%]{order:6}.order-7[_ngcontent-%COMP%]{order:7}.order-8[_ngcontent-%COMP%]{order:8}.order-9[_ngcontent-%COMP%]{order:9}.order-10[_ngcontent-%COMP%]{order:10}.order-11[_ngcontent-%COMP%]{order:11}.order-12[_ngcontent-%COMP%]{order:12}.offset-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-3[_ngcontent-%COMP%]{margin-left:25%}.offset-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-6[_ngcontent-%COMP%]{margin-left:50%}.offset-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-9[_ngcontent-%COMP%]{margin-left:75%}.offset-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}@media (min-width:576px){.col-sm[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-sm-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-sm-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12[_ngcontent-%COMP%],   cd-info-card{flex:0 0 100%;max-width:100%}.order-sm-first[_ngcontent-%COMP%]{order:-1}.order-sm-last[_ngcontent-%COMP%]{order:13}.order-sm-0[_ngcontent-%COMP%]{order:0}.order-sm-1[_ngcontent-%COMP%]{order:1}.order-sm-2[_ngcontent-%COMP%]{order:2}.order-sm-3[_ngcontent-%COMP%]{order:3}.order-sm-4[_ngcontent-%COMP%]{order:4}.order-sm-5[_ngcontent-%COMP%]{order:5}.order-sm-6[_ngcontent-%COMP%]{order:6}.order-sm-7[_ngcontent-%COMP%]{order:7}.order-sm-8[_ngcontent-%COMP%]{order:8}.order-sm-9[_ngcontent-%COMP%]{order:9}.order-sm-10[_ngcontent-%COMP%]{order:10}.order-sm-11[_ngcontent-%COMP%]{order:11}.order-sm-12[_ngcontent-%COMP%]{order:12}.offset-sm-0[_ngcontent-%COMP%]{margin-left:0}.offset-sm-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-sm-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-sm-3[_ngcontent-%COMP%]{margin-left:25%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-sm-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-sm-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-sm-6[_ngcontent-%COMP%]{margin-left:50%}.offset-sm-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-sm-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-sm-9[_ngcontent-%COMP%]{margin-left:75%}.offset-sm-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-sm-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:768px){.col-md[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-md-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6[_ngcontent-%COMP%],   cd-info-card{flex:0 0 50%;max-width:50%}.col-md-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-md-first[_ngcontent-%COMP%]{order:-1}.order-md-last[_ngcontent-%COMP%]{order:13}.order-md-0[_ngcontent-%COMP%]{order:0}.order-md-1[_ngcontent-%COMP%]{order:1}.order-md-2[_ngcontent-%COMP%]{order:2}.order-md-3[_ngcontent-%COMP%]{order:3}.order-md-4[_ngcontent-%COMP%]{order:4}.order-md-5[_ngcontent-%COMP%]{order:5}.order-md-6[_ngcontent-%COMP%]{order:6}.order-md-7[_ngcontent-%COMP%]{order:7}.order-md-8[_ngcontent-%COMP%]{order:8}.order-md-9[_ngcontent-%COMP%]{order:9}.order-md-10[_ngcontent-%COMP%]{order:10}.order-md-11[_ngcontent-%COMP%]{order:11}.order-md-12[_ngcontent-%COMP%]{order:12}.offset-md-0[_ngcontent-%COMP%]{margin-left:0}.offset-md-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-md-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-md-3[_ngcontent-%COMP%]{margin-left:25%}.offset-md-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-md-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-md-6[_ngcontent-%COMP%]{margin-left:50%}.offset-md-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-md-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-md-9[_ngcontent-%COMP%]{margin-left:75%}.offset-md-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-md-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-lg-4[_ngcontent-%COMP%],   cd-info-card, cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-lg-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-lg-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-lg-first[_ngcontent-%COMP%]{order:-1}.order-lg-last[_ngcontent-%COMP%]{order:13}.order-lg-0[_ngcontent-%COMP%]{order:0}.order-lg-1[_ngcontent-%COMP%]{order:1}.order-lg-2[_ngcontent-%COMP%]{order:2}.order-lg-3[_ngcontent-%COMP%]{order:3}.order-lg-4[_ngcontent-%COMP%]{order:4}.order-lg-5[_ngcontent-%COMP%]{order:5}.order-lg-6[_ngcontent-%COMP%]{order:6}.order-lg-7[_ngcontent-%COMP%]{order:7}.order-lg-8[_ngcontent-%COMP%]{order:8}.order-lg-9[_ngcontent-%COMP%]{order:9}.order-lg-10[_ngcontent-%COMP%]{order:10}.order-lg-11[_ngcontent-%COMP%]{order:11}.order-lg-12[_ngcontent-%COMP%]{order:12}.offset-lg-0[_ngcontent-%COMP%]{margin-left:0}.offset-lg-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-lg-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-lg-3[_ngcontent-%COMP%]{margin-left:25%}.offset-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-lg-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-lg-6[_ngcontent-%COMP%]{margin-left:50%}.offset-lg-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-lg-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-lg-9[_ngcontent-%COMP%]{margin-left:75%}.offset-lg-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-lg-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl[_ngcontent-%COMP%],   cd-info-card.cd-capacity-card,   cd-info-card.cd-performance-card{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3[_ngcontent-%COMP%],   cd-info-card.cd-status-card{flex:0 0 25%;max-width:25%}.col-xl-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-xl-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-xl-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-xl-first[_ngcontent-%COMP%]{order:-1}.order-xl-last[_ngcontent-%COMP%]{order:13}.order-xl-0[_ngcontent-%COMP%]{order:0}.order-xl-1[_ngcontent-%COMP%]{order:1}.order-xl-2[_ngcontent-%COMP%]{order:2}.order-xl-3[_ngcontent-%COMP%]{order:3}.order-xl-4[_ngcontent-%COMP%]{order:4}.order-xl-5[_ngcontent-%COMP%]{order:5}.order-xl-6[_ngcontent-%COMP%]{order:6}.order-xl-7[_ngcontent-%COMP%]{order:7}.order-xl-8[_ngcontent-%COMP%]{order:8}.order-xl-9[_ngcontent-%COMP%]{order:9}.order-xl-10[_ngcontent-%COMP%]{order:10}.order-xl-11[_ngcontent-%COMP%]{order:11}.order-xl-12[_ngcontent-%COMP%]{order:12}.offset-xl-0[_ngcontent-%COMP%]{margin-left:0}.offset-xl-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-xl-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-xl-3[_ngcontent-%COMP%]{margin-left:25%}.offset-xl-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-xl-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-xl-6[_ngcontent-%COMP%]{margin-left:50%}.offset-xl-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-xl-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-xl-9[_ngcontent-%COMP%]{margin-left:75%}.offset-xl-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-xl-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}.table[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem;color:#212529}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%]{border-top:2px solid #dee2e6}.table-sm[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-sm[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.3rem}.table-bordered[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6}.table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-bottom-width:2px}.table-borderless[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:0}.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c4e2e7}.table-primary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#91cad2}.table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b2d9e0}.table-secondary[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fbd1cf}.table-secondary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#f7aaa7}.table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f9bab7}.table-success[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c3e6cb}.table-success[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#8fd19e}.table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b1dfbb}.table-info[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#bee5eb}.table-info[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#86cfda}.table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#abdde5}.table-warning[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#ffeeba}.table-warning[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ffdf7e}.table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ffe8a1}.table-danger[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#f5c6cb}.table-danger[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ed969e}.table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f1b0b7}.table-light[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fdfdfe}.table-light[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#fbfcfc}.table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ececf6}.table-dark[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#d9d9d9}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#b8b8b8}.table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ccc}.table-active[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > th[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.075)}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#fff;background-color:#343a40;border-color:#454d55}.table[_ngcontent-%COMP%]   .thead-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark[_ngcontent-%COMP%]{color:#fff;background-color:#343a40}.table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#454d55}.table-dark.table-bordered[_ngcontent-%COMP%]{border:0}.table-dark.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:767.98px){.table-responsive-md[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:991.98px){.table-responsive-lg[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:1199.98px){.table-responsive-xl[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}.table-responsive[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{transition:none}}.cd-form-control[_ngcontent-%COMP%]::-ms-expand, .form-control[_ngcontent-%COMP%]::-ms-expand{background-color:transparent;border:0}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control[_ngcontent-%COMP%]::placeholder, .form-control[_ngcontent-%COMP%]::placeholder{color:#6c757d;opacity:1}.cd-form-control[_ngcontent-%COMP%]:disabled, .form-control[_ngcontent-%COMP%]:disabled, .form-control[readonly][_ngcontent-%COMP%], [readonly].cd-form-control[_ngcontent-%COMP%]{background-color:#e9ecef;opacity:1}select.cd-form-control[_ngcontent-%COMP%]:focus::-ms-value, select.form-control[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file[_ngcontent-%COMP%], .form-control-range[_ngcontent-%COMP%]{display:block;width:100%}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg[_ngcontent-%COMP%]{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm[_ngcontent-%COMP%]{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext[_ngcontent-%COMP%]{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg[_ngcontent-%COMP%], .form-control-plaintext.form-control-sm[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.form-control-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple][_ngcontent-%COMP%], select.form-control[size][_ngcontent-%COMP%], select[multiple].cd-form-control[_ngcontent-%COMP%], select[size].cd-form-control[_ngcontent-%COMP%], textarea.cd-form-control[_ngcontent-%COMP%], textarea.form-control[_ngcontent-%COMP%]{height:auto}.form-group[_ngcontent-%COMP%]{margin-bottom:1rem}.form-text[_ngcontent-%COMP%]{display:block;margin-top:.25rem}.form-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .form-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:5px;padding-left:5px}.form-check[_ngcontent-%COMP%]{position:relative;display:block;padding-left:1.25rem}.form-check-input[_ngcontent-%COMP%]{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[_ngcontent-%COMP%]:disabled ~ .form-check-label[_ngcontent-%COMP%]{color:#6c757d}.form-check-label[_ngcontent-%COMP%]{margin-bottom:0}.form-check-inline[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid[_ngcontent-%COMP%]:focus, .is-valid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:valid, textarea.form-control.is-valid[_ngcontent-%COMP%], textarea.is-valid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .form-check-label[_ngcontent-%COMP%]{color:#28a745}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid[_ngcontent-%COMP%]:focus, .is-invalid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:invalid, textarea.form-control.is-invalid[_ngcontent-%COMP%], textarea.is-invalid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .form-check-label[_ngcontent-%COMP%]{color:#dc3545}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]{color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline[_ngcontent-%COMP%]{display:flex;flex-flow:row wrap;align-items:center}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{width:100%}@media (min-width:576px){.form-inline[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{display:inline-block;width:auto;vertical-align:middle}.form-inline[_ngcontent-%COMP%]   .form-control-plaintext[_ngcontent-%COMP%]{display:inline-block}.form-inline[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline[_ngcontent-%COMP%]   .custom-control[_ngcontent-%COMP%]{align-items:center;justify-content:center}.form-inline[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]{margin-bottom:0}}.btn[_ngcontent-%COMP%]{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn[_ngcontent-%COMP%]{transition:none}}.btn[_ngcontent-%COMP%]:hover{color:#212529;text-decoration:none}.btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:disabled{opacity:.65}a.btn.disabled[_ngcontent-%COMP%], fieldset[_ngcontent-%COMP%]:disabled   a.btn[_ngcontent-%COMP%]{pointer-events:none}.btn-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light[_ngcontent-%COMP%]{color:#212529}.btn-light[_ngcontent-%COMP%]:hover{color:#212529}.btn-light.focus[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary[_ngcontent-%COMP%]{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary[_ngcontent-%COMP%]{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success[_ngcontent-%COMP%]{color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:disabled{color:#28a745;background-color:transparent}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info[_ngcontent-%COMP%]{color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning[_ngcontent-%COMP%]{color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger[_ngcontent-%COMP%]{color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light[_ngcontent-%COMP%]{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark[_ngcontent-%COMP%]{color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:disabled{color:#777;background-color:transparent}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link[_ngcontent-%COMP%]{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}.btn-link.focus[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block[_ngcontent-%COMP%]{display:block;width:100%}.btn-block[_ngcontent-%COMP%] + .btn-block[_ngcontent-%COMP%]{margin-top:.5rem}input[type=button].btn-block[_ngcontent-%COMP%], input[type=reset].btn-block[_ngcontent-%COMP%], input[type=submit].btn-block[_ngcontent-%COMP%]{width:100%}.fade[_ngcontent-%COMP%]{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade[_ngcontent-%COMP%]{transition:none}}.fade[_ngcontent-%COMP%]:not(.show){opacity:0}.collapse[_ngcontent-%COMP%]:not(.show){display:none}.collapsing[_ngcontent-%COMP%]{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown[_ngcontent-%COMP%], .dropleft[_ngcontent-%COMP%], .dropright[_ngcontent-%COMP%], .dropup[_ngcontent-%COMP%]{position:relative}.dropdown-toggle[_ngcontent-%COMP%]{white-space:nowrap}.dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-right[_ngcontent-%COMP%]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-sm-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-md-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-lg-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-xl-right[_ngcontent-%COMP%]{right:0;left:auto}}.dropup[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropright[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom][_ngcontent-%COMP%], .dropdown-menu[x-placement^=left][_ngcontent-%COMP%], .dropdown-menu[x-placement^=right][_ngcontent-%COMP%], .dropdown-menu[x-placement^=top][_ngcontent-%COMP%]{right:auto;bottom:auto}.dropdown-divider[_ngcontent-%COMP%]{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item[_ngcontent-%COMP%]{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item[_ngcontent-%COMP%]:focus, .dropdown-item[_ngcontent-%COMP%]:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show[_ngcontent-%COMP%]{display:block}.dropdown-header[_ngcontent-%COMP%]{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text[_ngcontent-%COMP%]{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%]{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{position:relative;flex:1 1 auto}.btn-group-vertical[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover, .btn-group[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover{z-index:1}.btn-toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-left:-1px}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropright[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropup[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::before{margin-right:0}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.375rem;padding-left:.375rem}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]{width:100%}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-top:-1px}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{margin-bottom:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%]{margin-left:-1px}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:focus{z-index:3}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus{z-index:4}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]{display:flex;align-items:center}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%]::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:first-child)   .custom-file-label[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]{display:flex}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{position:relative;z-index:2}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus, .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus{z-index:3}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%]{margin-left:-1px}.input-group-prepend[_ngcontent-%COMP%]{margin-right:-1px}.input-group-append[_ngcontent-%COMP%]{margin-left:-1px}.input-group-text[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .input-group-text[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{margin-top:0}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]{padding-right:1.75rem}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .input-group-text[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .btn[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .input-group-text[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .input-group-text[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control[_ngcontent-%COMP%]{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline[_ngcontent-%COMP%]{display:inline-flex;margin-right:1rem}.custom-control-input[_ngcontent-%COMP%]{position:absolute;z-index:-1;opacity:0}.custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}.custom-control-input[_ngcontent-%COMP%]:not(:disabled):active ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]{color:#6c757d}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:#e9ecef}.custom-control-label[_ngcontent-%COMP%]{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label[_ngcontent-%COMP%]::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label[_ngcontent-%COMP%]::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:.25rem}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-radio[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:50%}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e")}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-switch[_ngcontent-%COMP%]{padding-left:2.25rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-select[_ngcontent-%COMP%]{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select[_ngcontent-%COMP%]:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple][_ngcontent-%COMP%], .custom-select[size][_ngcontent-%COMP%]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select[_ngcontent-%COMP%]:disabled{color:#6c757d;background-color:#e9ecef}.custom-select[_ngcontent-%COMP%]::-ms-expand{display:none}.custom-select-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file[_ngcontent-%COMP%]{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input[_ngcontent-%COMP%]{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input[_ngcontent-%COMP%]:disabled ~ .custom-file-label[_ngcontent-%COMP%]{background-color:#e9ecef}.custom-file-input[_ngcontent-%COMP%]:lang(en) ~ .custom-file-label[_ngcontent-%COMP%]::after{content:"Browse"}.custom-file-input[_ngcontent-%COMP%] ~ .custom-file-label[data-browse][_ngcontent-%COMP%]::after{content:attr(data-browse)}.custom-file-label[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range[_ngcontent-%COMP%]{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range[_ngcontent-%COMP%]:focus{outline:0}.custom-range[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]::-moz-focus-outer{border:0}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing[_ngcontent-%COMP%], .custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{transition:none}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-ms-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-ms-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:none}}.nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link[_ngcontent-%COMP%]{display:block;padding:.5rem 1rem}.nav-link[_ngcontent-%COMP%]:focus, .nav-link[_ngcontent-%COMP%]:hover{text-decoration:none}.nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{margin-bottom:-1px}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs[_ngcontent-%COMP%]   .nav-item.show[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%], .nav-tabs[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%]{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border-radius:.25rem}.nav-pills[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .nav-pills[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}.nav-fill[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex:1 1 auto;text-align:center}.nav-justified[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;text-align:center}.tab-content[_ngcontent-%COMP%] > .tab-pane[_ngcontent-%COMP%]{display:none}.tab-content[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%]{display:block}.navbar[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand[_ngcontent-%COMP%]{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand[_ngcontent-%COMP%]:focus, .navbar-brand[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:static;float:none}.navbar-text[_ngcontent-%COMP%]{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse[_ngcontent-%COMP%]{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler[_ngcontent-%COMP%]{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler[_ngcontent-%COMP%]:focus, .navbar-toggler[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-toggler-icon[_ngcontent-%COMP%]{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:767.98px){.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:991.98px){.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:1199.98px){.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}.navbar-expand[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}.navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.7)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(0,0,0,.3)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(0, 0, 0, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(255,255,255,.75)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(255,255,255,.25)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff}.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%], pre[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body[_ngcontent-%COMP%]{flex:1 1 auto;padding:1.25rem}.card-title[_ngcontent-%COMP%]{margin-bottom:.75rem}.card-subtitle[_ngcontent-%COMP%]{margin-top:-.375rem;margin-bottom:0}.card-text[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card-link[_ngcontent-%COMP%]:hover{text-decoration:none}.card-link[_ngcontent-%COMP%] + .card-link[_ngcontent-%COMP%]{margin-left:1.25rem}.card-header[_ngcontent-%COMP%]{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header[_ngcontent-%COMP%]:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header[_ngcontent-%COMP%] + .list-group[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.card-footer[_ngcontent-%COMP%]{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer[_ngcontent-%COMP%]:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs[_ngcontent-%COMP%]{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills[_ngcontent-%COMP%]{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img[_ngcontent-%COMP%]{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top[_ngcontent-%COMP%]{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom[_ngcontent-%COMP%]{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-deck[_ngcontent-%COMP%]{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-group[_ngcontent-%COMP%]{flex-flow:row wrap}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{flex:1 0 0%;margin-bottom:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%]{margin-left:0;border-left:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%]{border-top-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%]{border-top-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-left-radius:0}.card-columns[_ngcontent-%COMP%]{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:inline-block;width:100%}}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:.75rem}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{overflow:hidden}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child{border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:first-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:last-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%]{margin-bottom:-1px}.breadcrumb[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]{padding-left:.5rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]:hover::before{text-decoration:none}.breadcrumb-item.active[_ngcontent-%COMP%]{color:#6c757d}.pagination[_ngcontent-%COMP%]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link[_ngcontent-%COMP%]{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link[_ngcontent-%COMP%]:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link[_ngcontent-%COMP%]:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{z-index:1;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge[_ngcontent-%COMP%]{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge[_ngcontent-%COMP%]{transition:none}}a.badge[_ngcontent-%COMP%]:focus, a.badge[_ngcontent-%COMP%]:hover{text-decoration:none}.badge[_ngcontent-%COMP%]:empty{display:none}.btn[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{position:relative;top:-1px}.badge-pill[_ngcontent-%COMP%]{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}a.badge-primary[_ngcontent-%COMP%]:focus, a.badge-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#21747f}a.badge-primary.focus[_ngcontent-%COMP%], a.badge-primary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55}a.badge-secondary[_ngcontent-%COMP%]:focus, a.badge-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus[_ngcontent-%COMP%], a.badge-secondary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745}a.badge-success[_ngcontent-%COMP%]:focus, a.badge-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus[_ngcontent-%COMP%], a.badge-success[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8}a.badge-info[_ngcontent-%COMP%]:focus, a.badge-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#117a8b}a.badge-info.focus[_ngcontent-%COMP%], a.badge-info[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107}a.badge-warning[_ngcontent-%COMP%]:focus, a.badge-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus[_ngcontent-%COMP%], a.badge-warning[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545}a.badge-danger[_ngcontent-%COMP%]:focus, a.badge-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus[_ngcontent-%COMP%], a.badge-danger[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa}a.badge-light[_ngcontent-%COMP%]:focus, a.badge-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus[_ngcontent-%COMP%], a.badge-light[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777}a.badge-dark[_ngcontent-%COMP%]:focus, a.badge-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus[_ngcontent-%COMP%], a.badge-dark[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron[_ngcontent-%COMP%]{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron[_ngcontent-%COMP%]{padding:4rem 2rem}}.jumbotron-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;border-radius:0}.alert[_ngcontent-%COMP%]{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading[_ngcontent-%COMP%]{color:inherit}.alert-link[_ngcontent-%COMP%]{font-weight:700}.alert-dismissible[_ngcontent-%COMP%]{padding-right:4rem}.alert-dismissible[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary[_ngcontent-%COMP%]{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b2d9e0}.alert-primary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0c2b2e}.alert-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f9bab7}.alert-secondary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#56211f}.alert-success[_ngcontent-%COMP%]{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b1dfbb}.alert-success[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0b2e13}.alert-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#abdde5}.alert-info[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#062c33}.alert-warning[_ngcontent-%COMP%]{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ffe8a1}.alert-warning[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#533f03}.alert-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f1b0b7}.alert-danger[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#491217}.alert-light[_ngcontent-%COMP%]{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ececf6}.alert-light[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#686868}.alert-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ccc}.alert-dark[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress[_ngcontent-%COMP%]{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped[_ngcontent-%COMP%]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated[_ngcontent-%COMP%]{animation:1s linear infinite progress-bar-stripes}.media[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.media-body[_ngcontent-%COMP%]{flex:1}.list-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action[_ngcontent-%COMP%]{width:100%;color:#495057;text-align:inherit}.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-action[_ngcontent-%COMP%]:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action[_ngcontent-%COMP%]:active{color:#212529;background-color:#e9ecef}.list-group-item[_ngcontent-%COMP%]{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled[_ngcontent-%COMP%], .list-group-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active[_ngcontent-%COMP%]{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-horizontal[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{border-right:0;border-left:0;border-radius:0}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:-1px}.list-group-flush[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.list-group-flush[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary[_ngcontent-%COMP%]{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success[_ngcontent-%COMP%]{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning[_ngcontent-%COMP%]{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light[_ngcontent-%COMP%]{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close[_ngcontent-%COMP%]{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close[_ngcontent-%COMP%]:hover{color:#000;text-decoration:none}.close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):focus, .close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):hover{opacity:.75}button.close[_ngcontent-%COMP%]{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled[_ngcontent-%COMP%]{pointer-events:none}.toast[_ngcontent-%COMP%]{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast[_ngcontent-%COMP%]:not(:last-child){margin-bottom:.75rem}.toast.showing[_ngcontent-%COMP%]{opacity:1}.toast.show[_ngcontent-%COMP%]{display:block;opacity:1}.toast.hide[_ngcontent-%COMP%]{display:none}.toast-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body[_ngcontent-%COMP%]{padding:.75rem}.modal-open[_ngcontent-%COMP%]{overflow:hidden}.modal-open[_ngcontent-%COMP%]   .modal[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto}.modal[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog[_ngcontent-%COMP%]{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar[_ngcontent-%COMP%]{transition:none}.progress-bar-animated[_ngcontent-%COMP%]{animation:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:none}}.modal.show[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transform:none}.modal-dialog-scrollable[_ngcontent-%COMP%]{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-footer[_ngcontent-%COMP%], .modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-header[_ngcontent-%COMP%]{flex-shrink:0}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-body[_ngcontent-%COMP%]{overflow-y:auto}.modal-dialog-centered[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:none}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]::before{content:none}.modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade[_ngcontent-%COMP%]{opacity:0}.modal-backdrop.show[_ngcontent-%COMP%]{opacity:.5}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title[_ngcontent-%COMP%]{margin-bottom:0;line-height:1.5}.modal-body[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;padding:1rem}.modal-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:first-child){margin-left:.25rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure[_ngcontent-%COMP%]{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog[_ngcontent-%COMP%]{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable[_ngcontent-%COMP%]{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]{min-height:calc(100% - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{height:calc(100vh - 3.5rem)}.modal-sm[_ngcontent-%COMP%]{max-width:300px}}@media (min-width:992px){.modal-lg[_ngcontent-%COMP%], .modal-xl[_ngcontent-%COMP%]{max-width:800px}}@media (min-width:1200px){.modal-xl[_ngcontent-%COMP%]{max-width:1140px}}.tooltip[_ngcontent-%COMP%]{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show[_ngcontent-%COMP%]{opacity:.9}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{bottom:0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{top:0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner[_ngcontent-%COMP%]{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::after, .popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%]{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%]{margin-left:.5rem}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%]{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%]{margin-right:.5rem}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header[_ngcontent-%COMP%]{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header[_ngcontent-%COMP%]:empty{display:none}.popover-body[_ngcontent-%COMP%]{padding:.5rem .75rem;color:#212529}.carousel[_ngcontent-%COMP%]{position:relative}.carousel.pointer-event[_ngcontent-%COMP%]{touch-action:pan-y}.carousel-inner[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden}.carousel-inner[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.carousel-item[_ngcontent-%COMP%]{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%], .carousel-item.active[_ngcontent-%COMP%]{display:block}.active.carousel-item-right[_ngcontent-%COMP%], .carousel-item-next[_ngcontent-%COMP%]:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%]:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade[_ngcontent-%COMP%]   .carousel-item[_ngcontent-%COMP%]{opacity:0;transition-property:opacity;transform:none}.carousel-fade[_ngcontent-%COMP%]   .carousel-item-next.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item-prev.carousel-item-right[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item.active[_ngcontent-%COMP%]{z-index:1;opacity:1}.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%]{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%], .carousel-item[_ngcontent-%COMP%]{transition:none}}.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next[_ngcontent-%COMP%]:focus, .carousel-control-next[_ngcontent-%COMP%]:hover, .carousel-control-prev[_ngcontent-%COMP%]:focus, .carousel-control-prev[_ngcontent-%COMP%]:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev[_ngcontent-%COMP%]{left:0}.carousel-control-next[_ngcontent-%COMP%]{right:0}.carousel-control-next-icon[_ngcontent-%COMP%], .carousel-control-prev-icon[_ngcontent-%COMP%]{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3e%3c/svg%3e")}.carousel-control-next-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3e%3c/svg%3e")}.carousel-indicators[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%], .carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{transition:none}}.carousel-indicators[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%]{opacity:1}.carousel-caption[_ngcontent-%COMP%]{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.align-baseline[_ngcontent-%COMP%]{vertical-align:baseline!important}.align-top[_ngcontent-%COMP%]{vertical-align:top!important}.align-middle[_ngcontent-%COMP%]{vertical-align:middle!important}.align-bottom[_ngcontent-%COMP%]{vertical-align:bottom!important}.align-text-bottom[_ngcontent-%COMP%]{vertical-align:text-bottom!important}.align-text-top[_ngcontent-%COMP%]{vertical-align:text-top!important}.bg-primary[_ngcontent-%COMP%]{background-color:#2b99a8!important}a.bg-primary[_ngcontent-%COMP%]:focus, a.bg-primary[_ngcontent-%COMP%]:hover, button.bg-primary[_ngcontent-%COMP%]:focus, button.bg-primary[_ngcontent-%COMP%]:hover{background-color:#21747f!important}.bg-secondary[_ngcontent-%COMP%]{background-color:#ef5c55!important}a.bg-secondary[_ngcontent-%COMP%]:focus, a.bg-secondary[_ngcontent-%COMP%]:hover, button.bg-secondary[_ngcontent-%COMP%]:focus, button.bg-secondary[_ngcontent-%COMP%]:hover{background-color:#eb2f26!important}.bg-success[_ngcontent-%COMP%]{background-color:#28a745!important}a.bg-success[_ngcontent-%COMP%]:focus, a.bg-success[_ngcontent-%COMP%]:hover, button.bg-success[_ngcontent-%COMP%]:focus, button.bg-success[_ngcontent-%COMP%]:hover{background-color:#1e7e34!important}.bg-info[_ngcontent-%COMP%]{background-color:#17a2b8!important}a.bg-info[_ngcontent-%COMP%]:focus, a.bg-info[_ngcontent-%COMP%]:hover, button.bg-info[_ngcontent-%COMP%]:focus, button.bg-info[_ngcontent-%COMP%]:hover{background-color:#117a8b!important}.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important}a.bg-warning[_ngcontent-%COMP%]:focus, a.bg-warning[_ngcontent-%COMP%]:hover, button.bg-warning[_ngcontent-%COMP%]:focus, button.bg-warning[_ngcontent-%COMP%]:hover{background-color:#d39e00!important}.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}a.bg-danger[_ngcontent-%COMP%]:focus, a.bg-danger[_ngcontent-%COMP%]:hover, button.bg-danger[_ngcontent-%COMP%]:focus, button.bg-danger[_ngcontent-%COMP%]:hover{background-color:#bd2130!important}.bg-light[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{background-color:#f8f9fa!important}a.bg-light[_ngcontent-%COMP%]:focus, a.bg-light[_ngcontent-%COMP%]:hover, button.bg-light[_ngcontent-%COMP%]:focus, button.bg-light[_ngcontent-%COMP%]:hover{background-color:#dae0e5!important}.bg-dark[_ngcontent-%COMP%]{background-color:#777!important}a.bg-dark[_ngcontent-%COMP%]:focus, a.bg-dark[_ngcontent-%COMP%]:hover, button.bg-dark[_ngcontent-%COMP%]:focus, button.bg-dark[_ngcontent-%COMP%]:hover{background-color:#5e5e5e!important}.bg-white[_ngcontent-%COMP%]{background-color:#fff!important}.bg-transparent[_ngcontent-%COMP%]{background-color:transparent!important}.border[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.border-top[_ngcontent-%COMP%]{border-top:1px solid #dee2e6!important}.border-right[_ngcontent-%COMP%]{border-right:1px solid #dee2e6!important}.border-bottom[_ngcontent-%COMP%], .cd-header[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6!important}.border-left[_ngcontent-%COMP%]{border-left:1px solid #dee2e6!important}.border-0[_ngcontent-%COMP%]{border:0!important}.border-top-0[_ngcontent-%COMP%]{border-top:0!important}.border-right-0[_ngcontent-%COMP%]{border-right:0!important}.border-bottom-0[_ngcontent-%COMP%]{border-bottom:0!important}.border-left-0[_ngcontent-%COMP%]{border-left:0!important}.border-primary[_ngcontent-%COMP%]{border-color:#2b99a8!important}.border-secondary[_ngcontent-%COMP%]{border-color:#ef5c55!important}.border-success[_ngcontent-%COMP%]{border-color:#28a745!important}.border-info[_ngcontent-%COMP%]{border-color:#17a2b8!important}.border-warning[_ngcontent-%COMP%]{border-color:#ffc107!important}.border-danger[_ngcontent-%COMP%]{border-color:#dc3545!important}.border-light[_ngcontent-%COMP%]{border-color:#f8f9fa!important}.border-dark[_ngcontent-%COMP%]{border-color:#777!important}.border-white[_ngcontent-%COMP%]{border-color:#fff!important}.rounded-sm[_ngcontent-%COMP%]{border-radius:.2rem!important}.rounded[_ngcontent-%COMP%]{border-radius:.25rem!important}.rounded-top[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right[_ngcontent-%COMP%]{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg[_ngcontent-%COMP%]{border-radius:.3rem!important}.rounded-circle[_ngcontent-%COMP%]{border-radius:50%!important}.rounded-pill[_ngcontent-%COMP%]{border-radius:50rem!important}.rounded-0[_ngcontent-%COMP%]{border-radius:0!important}.clearfix[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.d-none[_ngcontent-%COMP%]{display:none!important}.d-inline[_ngcontent-%COMP%]{display:inline!important}.d-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-block[_ngcontent-%COMP%]{display:block!important}.d-table[_ngcontent-%COMP%]{display:table!important}.d-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-flex[_ngcontent-%COMP%], cd-info-card[_ngcontent-%COMP%]{display:flex!important}.d-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}@media (min-width:576px){.d-sm-none[_ngcontent-%COMP%]{display:none!important}.d-sm-inline[_ngcontent-%COMP%]{display:inline!important}.d-sm-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-sm-block[_ngcontent-%COMP%]{display:block!important}.d-sm-table[_ngcontent-%COMP%]{display:table!important}.d-sm-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-sm-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-sm-flex[_ngcontent-%COMP%]{display:flex!important}.d-sm-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:768px){.d-md-none[_ngcontent-%COMP%]{display:none!important}.d-md-inline[_ngcontent-%COMP%]{display:inline!important}.d-md-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-table[_ngcontent-%COMP%]{display:table!important}.d-md-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-md-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-md-flex[_ngcontent-%COMP%]{display:flex!important}.d-md-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:992px){.d-lg-none[_ngcontent-%COMP%]{display:none!important}.d-lg-inline[_ngcontent-%COMP%]{display:inline!important}.d-lg-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-lg-block[_ngcontent-%COMP%]{display:block!important}.d-lg-table[_ngcontent-%COMP%]{display:table!important}.d-lg-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-lg-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-lg-flex[_ngcontent-%COMP%]{display:flex!important}.d-lg-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none[_ngcontent-%COMP%]{display:none!important}.d-xl-inline[_ngcontent-%COMP%]{display:inline!important}.d-xl-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-xl-block[_ngcontent-%COMP%]{display:block!important}.d-xl-table[_ngcontent-%COMP%]{display:table!important}.d-xl-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-xl-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-xl-flex[_ngcontent-%COMP%]{display:flex!important}.d-xl-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media print{.d-print-none[_ngcontent-%COMP%]{display:none!important}.d-print-inline[_ngcontent-%COMP%]{display:inline!important}.d-print-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-print-block[_ngcontent-%COMP%]{display:block!important}.d-print-table[_ngcontent-%COMP%]{display:table!important}.d-print-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-print-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-print-flex[_ngcontent-%COMP%]{display:flex!important}.d-print-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}.embed-responsive[_ngcontent-%COMP%]{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive[_ngcontent-%COMP%]::before{display:block;content:""}.embed-responsive[_ngcontent-%COMP%]   .embed-responsive-item[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   embed[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   iframe[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   object[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   video[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9[_ngcontent-%COMP%]::before{padding-top:42.8571428571%}.embed-responsive-16by9[_ngcontent-%COMP%]::before{padding-top:56.25%}.embed-responsive-4by3[_ngcontent-%COMP%]::before{padding-top:75%}.embed-responsive-1by1[_ngcontent-%COMP%]::before{padding-top:100%}.flex-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-column[_ngcontent-%COMP%], cd-info-card[_ngcontent-%COMP%]{flex-direction:column!important}.flex-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-stretch[_ngcontent-%COMP%]{align-self:stretch!important}@media (min-width:576px){.flex-sm-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-sm-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-sm-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-sm-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-sm-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-sm-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-sm-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-sm-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-sm-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-sm-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-sm-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-sm-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-sm-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-sm-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-sm-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-sm-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-sm-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-sm-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-sm-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-sm-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-sm-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-sm-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-sm-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-sm-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-sm-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-sm-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-sm-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-sm-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-sm-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-sm-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-sm-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-sm-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-sm-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-sm-stretch[_ngcontent-%COMP%]{align-self:stretch!important}}.float-left[_ngcontent-%COMP%]{float:left!important}.float-right[_ngcontent-%COMP%]{float:right!important}.float-none[_ngcontent-%COMP%]{float:none!important}@media (min-width:576px){.float-sm-left[_ngcontent-%COMP%]{float:left!important}.float-sm-right[_ngcontent-%COMP%]{float:right!important}.float-sm-none[_ngcontent-%COMP%]{float:none!important}}.overflow-auto[_ngcontent-%COMP%]{overflow:auto!important}.overflow-hidden[_ngcontent-%COMP%]{overflow:hidden!important}.position-static[_ngcontent-%COMP%]{position:static!important}.position-relative[_ngcontent-%COMP%]{position:relative!important}.position-absolute[_ngcontent-%COMP%]{position:absolute!important}.position-fixed[_ngcontent-%COMP%]{position:fixed!important}.position-sticky[_ngcontent-%COMP%]{position:sticky!important}.fixed-top[_ngcontent-%COMP%]{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom[_ngcontent-%COMP%]{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1020}}.sr-only[_ngcontent-%COMP%]{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm[_ngcontent-%COMP%]{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow[_ngcontent-%COMP%]{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg[_ngcontent-%COMP%]{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none[_ngcontent-%COMP%]{box-shadow:none!important}.w-25[_ngcontent-%COMP%]{width:25%!important}.w-50[_ngcontent-%COMP%]{width:50%!important}.w-75[_ngcontent-%COMP%]{width:75%!important}.w-100[_ngcontent-%COMP%]{width:100%!important}.w-auto[_ngcontent-%COMP%]{width:auto!important}.h-25[_ngcontent-%COMP%]{height:25%!important}.h-50[_ngcontent-%COMP%]{height:50%!important}.h-75[_ngcontent-%COMP%]{height:75%!important}.h-100[_ngcontent-%COMP%]{height:100%!important}.h-auto[_ngcontent-%COMP%]{height:auto!important}.mw-100[_ngcontent-%COMP%]{max-width:100%!important}.mh-100[_ngcontent-%COMP%]{max-height:100%!important}.min-vw-100[_ngcontent-%COMP%]{min-width:100vw!important}.min-vh-100[_ngcontent-%COMP%]{min-height:100vh!important}.vw-100[_ngcontent-%COMP%]{width:100vw!important}.vh-100[_ngcontent-%COMP%]{height:100vh!important}.stretched-link[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0[_ngcontent-%COMP%]{margin:0!important}.mt-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-left:0!important}.m-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-4[_ngcontent-%COMP%]{margin:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mt-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mb-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], cd-info-card[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-0[_ngcontent-%COMP%]{padding:0!important}.pt-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-left:0!important}.p-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.cd-header[_ngcontent-%COMP%], .pb-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-2[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{padding:.5rem!important}.pt-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-left:auto!important}@media (min-width:576px){.m-sm-0[_ngcontent-%COMP%]{margin:0!important}.mt-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-left:0!important}.m-sm-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-sm-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-sm-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-sm-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-sm-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-sm-0[_ngcontent-%COMP%]{padding:0!important}.pt-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-left:0!important}.p-sm-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-sm-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-sm-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-sm-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-sm-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-sm-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-sm-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-sm-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-sm-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-sm-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-sm-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-left:auto!important}}.text-monospace[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify[_ngcontent-%COMP%]{text-align:justify!important}.text-wrap[_ngcontent-%COMP%]{white-space:normal!important}.text-nowrap[_ngcontent-%COMP%]{white-space:nowrap!important}.text-truncate[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left[_ngcontent-%COMP%]{text-align:left!important}.text-right[_ngcontent-%COMP%]{text-align:right!important}.text-center[_ngcontent-%COMP%]{text-align:center!important}@media (min-width:576px){.text-sm-left[_ngcontent-%COMP%]{text-align:left!important}.text-sm-right[_ngcontent-%COMP%]{text-align:right!important}.text-sm-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:768px){.flex-md-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-md-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-md-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-md-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-md-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-md-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-md-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-md-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-md-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-md-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-md-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-md-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-md-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-md-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-md-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-md-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-md-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-md-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-md-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-md-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-md-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-md-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-md-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-md-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-md-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-md-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-md-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-md-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-md-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-md-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-md-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-md-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-md-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-md-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-md-left[_ngcontent-%COMP%]{float:left!important}.float-md-right[_ngcontent-%COMP%]{float:right!important}.float-md-none[_ngcontent-%COMP%]{float:none!important}.m-md-0[_ngcontent-%COMP%]{margin:0!important}.mt-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-left:0!important}.m-md-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-md-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-md-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-md-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-md-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-md-0[_ngcontent-%COMP%]{padding:0!important}.pt-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-left:0!important}.p-md-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-md-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-md-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-md-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-md-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-md-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-md-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-md-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-md-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-md-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-md-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-md-left[_ngcontent-%COMP%]{text-align:left!important}.text-md-right[_ngcontent-%COMP%]{text-align:right!important}.text-md-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:992px){.flex-lg-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-lg-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-lg-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-lg-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-lg-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-lg-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-lg-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-lg-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-lg-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-lg-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-lg-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-lg-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-lg-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-lg-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-lg-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-lg-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-lg-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-lg-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-lg-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-lg-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-lg-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-lg-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-lg-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-lg-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-lg-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-lg-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-lg-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-lg-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-lg-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-lg-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-lg-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-lg-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-lg-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-lg-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-lg-left[_ngcontent-%COMP%]{float:left!important}.float-lg-right[_ngcontent-%COMP%]{float:right!important}.float-lg-none[_ngcontent-%COMP%]{float:none!important}.m-lg-0[_ngcontent-%COMP%]{margin:0!important}.mt-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-left:0!important}.m-lg-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-lg-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-lg-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-lg-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-lg-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-lg-0[_ngcontent-%COMP%]{padding:0!important}.pt-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-left:0!important}.p-lg-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-lg-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-lg-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-lg-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-lg-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-lg-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-lg-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-lg-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-lg-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-lg-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-lg-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-lg-left[_ngcontent-%COMP%]{text-align:left!important}.text-lg-right[_ngcontent-%COMP%]{text-align:right!important}.text-lg-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:1200px){.flex-xl-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-xl-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-xl-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-xl-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-xl-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-xl-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-xl-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-xl-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-xl-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-xl-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-xl-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-xl-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-xl-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-xl-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-xl-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-xl-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-xl-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-xl-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-xl-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-xl-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-xl-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-xl-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-xl-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-xl-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-xl-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-xl-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-xl-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-xl-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-xl-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-xl-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-xl-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-xl-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-xl-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-xl-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-xl-left[_ngcontent-%COMP%]{float:left!important}.float-xl-right[_ngcontent-%COMP%]{float:right!important}.float-xl-none[_ngcontent-%COMP%]{float:none!important}.m-xl-0[_ngcontent-%COMP%]{margin:0!important}.mt-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-left:0!important}.m-xl-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-xl-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-xl-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-xl-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-xl-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-xl-0[_ngcontent-%COMP%]{padding:0!important}.pt-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-left:0!important}.p-xl-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-xl-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-xl-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-xl-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-xl-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-xl-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-xl-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-xl-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-xl-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-xl-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-xl-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-xl-left[_ngcontent-%COMP%]{text-align:left!important}.text-xl-right[_ngcontent-%COMP%]{text-align:right!important}.text-xl-center[_ngcontent-%COMP%]{text-align:center!important}}.text-lowercase[_ngcontent-%COMP%]{text-transform:lowercase!important}.text-uppercase[_ngcontent-%COMP%]{text-transform:uppercase!important}.text-capitalize[_ngcontent-%COMP%]{text-transform:capitalize!important}.font-weight-light[_ngcontent-%COMP%]{font-weight:300!important}.font-weight-lighter[_ngcontent-%COMP%]{font-weight:lighter!important}.font-weight-normal[_ngcontent-%COMP%]{font-weight:400!important}.font-weight-bold[_ngcontent-%COMP%]{font-weight:700!important}.font-weight-bolder[_ngcontent-%COMP%]{font-weight:bolder!important}.font-italic[_ngcontent-%COMP%]{font-style:italic!important}.text-white[_ngcontent-%COMP%]{color:#fff!important}.text-primary[_ngcontent-%COMP%]{color:#2b99a8!important}a.text-primary[_ngcontent-%COMP%]:focus, a.text-primary[_ngcontent-%COMP%]:hover{color:#1b626b!important}.text-secondary[_ngcontent-%COMP%]{color:#ef5c55!important}a.text-secondary[_ngcontent-%COMP%]:focus, a.text-secondary[_ngcontent-%COMP%]:hover{color:#e21f15!important}.text-success[_ngcontent-%COMP%]{color:#28a745!important}a.text-success[_ngcontent-%COMP%]:focus, a.text-success[_ngcontent-%COMP%]:hover{color:#19692c!important}.text-info[_ngcontent-%COMP%]{color:#17a2b8!important}a.text-info[_ngcontent-%COMP%]:focus, a.text-info[_ngcontent-%COMP%]:hover{color:#0f6674!important}.text-warning[_ngcontent-%COMP%]{color:#ffc107!important}a.text-warning[_ngcontent-%COMP%]:focus, a.text-warning[_ngcontent-%COMP%]:hover{color:#ba8b00!important}.text-danger[_ngcontent-%COMP%]{color:#dc3545!important}a.text-danger[_ngcontent-%COMP%]:focus, a.text-danger[_ngcontent-%COMP%]:hover{color:#a71d2a!important}.text-light[_ngcontent-%COMP%]{color:#f8f9fa!important}a.text-light[_ngcontent-%COMP%]:focus, a.text-light[_ngcontent-%COMP%]:hover{color:#cbd3da!important}.text-dark[_ngcontent-%COMP%]{color:#777!important}a.text-dark[_ngcontent-%COMP%]:focus, a.text-dark[_ngcontent-%COMP%]:hover{color:#515151!important}.text-body[_ngcontent-%COMP%]{color:#212529!important}.text-muted[_ngcontent-%COMP%]{color:#6c757d!important}.text-black-50[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)!important}.text-white-50[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)!important}.text-hide[_ngcontent-%COMP%]{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none[_ngcontent-%COMP%]{text-decoration:none!important}.text-break[_ngcontent-%COMP%]{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset[_ngcontent-%COMP%]{color:inherit!important}.visible[_ngcontent-%COMP%]{visibility:visible!important}.invisible[_ngcontent-%COMP%]{visibility:hidden!important}@media print{*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{text-shadow:none!important;box-shadow:none!important}a[_ngcontent-%COMP%]:not(.btn){text-decoration:underline}abbr[title][_ngcontent-%COMP%]::after{content:" (" attr(title) ")"}pre[_ngcontent-%COMP%]{white-space:pre-wrap!important}blockquote[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{border:1px solid #adb5bd;page-break-inside:avoid}thead[_ngcontent-%COMP%]{display:table-header-group}img[_ngcontent-%COMP%], tr[_ngcontent-%COMP%]{page-break-inside:avoid}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{orphans:3;widows:3}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{page-break-after:avoid}@page{size:a3}.container[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{min-width:992px!important}.navbar[_ngcontent-%COMP%]{display:none}.badge[_ngcontent-%COMP%]{border:1px solid #000}.table[_ngcontent-%COMP%]{border-collapse:collapse!important}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#fff!important}.table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.table-dark[_ngcontent-%COMP%]{color:inherit}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#dee2e6}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:inherit;border-color:#dee2e6}}@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa[_ngcontent-%COMP%]{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg[_ngcontent-%COMP%]{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x[_ngcontent-%COMP%]{font-size:2em}.fa-3x[_ngcontent-%COMP%]{font-size:3em}.fa-4x[_ngcontent-%COMP%]{font-size:4em}.fa-5x[_ngcontent-%COMP%]{font-size:5em}.fa[_ngcontent-%COMP%], .fa-fw[_ngcontent-%COMP%]{width:1.2857142857em;text-align:center}.fa-ul[_ngcontent-%COMP%]{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{position:relative}.fa-li[_ngcontent-%COMP%]{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg[_ngcontent-%COMP%]{left:-1.8571428571em}.fa-border[_ngcontent-%COMP%]{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left[_ngcontent-%COMP%]{float:left}.fa-pull-right[_ngcontent-%COMP%]{float:right}.fa.fa-pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.fa-pull-right[_ngcontent-%COMP%]{margin-left:.3em}.pull-right[_ngcontent-%COMP%]{float:right}.pull-left[_ngcontent-%COMP%]{float:left}.fa.pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.pull-right[_ngcontent-%COMP%]{margin-left:.3em}.fa-spin[_ngcontent-%COMP%]{animation:2s linear infinite fa-spin}.fa-pulse[_ngcontent-%COMP%]{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}[_ngcontent-%COMP%]:root   .fa-flip-horizontal[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-flip-vertical[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-180[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-270[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-90[_ngcontent-%COMP%]{filter:none}.fa-stack[_ngcontent-%COMP%]{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x[_ngcontent-%COMP%], .fa-stack-2x[_ngcontent-%COMP%]{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x[_ngcontent-%COMP%]{line-height:inherit}.fa-stack-2x[_ngcontent-%COMP%]{font-size:2em}.fa-inverse[_ngcontent-%COMP%]{color:#fff}.fa-glass[_ngcontent-%COMP%]:before{content:""}.fa-music[_ngcontent-%COMP%]:before{content:""}.fa-search[_ngcontent-%COMP%]:before{content:""}.fa-envelope-o[_ngcontent-%COMP%]:before{content:""}.fa-heart[_ngcontent-%COMP%]:before{content:""}.fa-star[_ngcontent-%COMP%]:before{content:""}.fa-star-o[_ngcontent-%COMP%]:before{content:""}.fa-user[_ngcontent-%COMP%]:before{content:""}.fa-film[_ngcontent-%COMP%]:before{content:""}.fa-th-large[_ngcontent-%COMP%]:before{content:""}.fa-th[_ngcontent-%COMP%]:before{content:""}.fa-th-list[_ngcontent-%COMP%]:before{content:""}.fa-check[_ngcontent-%COMP%]:before{content:""}.fa-close[_ngcontent-%COMP%]:before, .fa-remove[_ngcontent-%COMP%]:before, .fa-times[_ngcontent-%COMP%]:before{content:""}.fa-search-plus[_ngcontent-%COMP%]:before{content:""}.fa-search-minus[_ngcontent-%COMP%]:before{content:""}.fa-power-off[_ngcontent-%COMP%]:before{content:""}.fa-signal[_ngcontent-%COMP%]:before{content:""}.fa-cog[_ngcontent-%COMP%]:before, .fa-gear[_ngcontent-%COMP%]:before{content:""}.fa-trash-o[_ngcontent-%COMP%]:before{content:""}.fa-home[_ngcontent-%COMP%]:before{content:""}.fa-file-o[_ngcontent-%COMP%]:before{content:""}.fa-clock-o[_ngcontent-%COMP%]:before{content:""}.fa-road[_ngcontent-%COMP%]:before{content:""}.fa-download[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-up[_ngcontent-%COMP%]:before{content:""}.fa-inbox[_ngcontent-%COMP%]:before{content:""}.fa-play-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-repeat[_ngcontent-%COMP%]:before, .fa-rotate-right[_ngcontent-%COMP%]:before{content:""}.fa-refresh[_ngcontent-%COMP%]:before, .fa-sync[_ngcontent-%COMP%]:before{content:""}.fa-list-alt[_ngcontent-%COMP%]:before{content:""}.fa-lock[_ngcontent-%COMP%]:before{content:""}.fa-flag[_ngcontent-%COMP%]:before{content:""}.fa-headphones[_ngcontent-%COMP%]:before{content:""}.fa-volume-off[_ngcontent-%COMP%]:before{content:""}.fa-volume-down[_ngcontent-%COMP%]:before{content:""}.fa-volume-up[_ngcontent-%COMP%]:before{content:""}.fa-qrcode[_ngcontent-%COMP%]:before{content:""}.fa-barcode[_ngcontent-%COMP%]:before{content:""}.fa-tag[_ngcontent-%COMP%]:before{content:""}.fa-tags[_ngcontent-%COMP%]:before{content:""}.fa-book[_ngcontent-%COMP%]:before{content:""}.fa-bookmark[_ngcontent-%COMP%]:before{content:""}.fa-print[_ngcontent-%COMP%]:before{content:""}.fa-camera[_ngcontent-%COMP%]:before{content:""}.fa-font[_ngcontent-%COMP%]:before{content:""}.fa-bold[_ngcontent-%COMP%]:before{content:""}.fa-italic[_ngcontent-%COMP%]:before{content:""}.fa-text-height[_ngcontent-%COMP%]:before{content:""}.fa-text-width[_ngcontent-%COMP%]:before{content:""}.fa-align-left[_ngcontent-%COMP%]:before{content:""}.fa-align-center[_ngcontent-%COMP%]:before{content:""}.fa-align-right[_ngcontent-%COMP%]:before{content:""}.fa-align-justify[_ngcontent-%COMP%]:before{content:""}.fa-list[_ngcontent-%COMP%]:before{content:""}.fa-dedent[_ngcontent-%COMP%]:before, .fa-outdent[_ngcontent-%COMP%]:before{content:""}.fa-indent[_ngcontent-%COMP%]:before{content:""}.fa-video-camera[_ngcontent-%COMP%]:before, .fa-video[_ngcontent-%COMP%]:before{content:""}.fa-image[_ngcontent-%COMP%]:before, .fa-photo[_ngcontent-%COMP%]:before, .fa-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-pencil[_ngcontent-%COMP%]:before{content:""}.fa-map-marker[_ngcontent-%COMP%]:before{content:""}.fa-adjust[_ngcontent-%COMP%]:before{content:""}.fa-tint[_ngcontent-%COMP%]:before{content:""}.fa-edit[_ngcontent-%COMP%]:before, .fa-pencil-square-o[_ngcontent-%COMP%]:before{content:""}.fa-share-square-o[_ngcontent-%COMP%]:before{content:""}.fa-check-square-o[_ngcontent-%COMP%]:before{content:""}.fa-arrows[_ngcontent-%COMP%]:before{content:""}.fa-step-backward[_ngcontent-%COMP%]:before{content:""}.fa-fast-backward[_ngcontent-%COMP%]:before{content:""}.fa-backward[_ngcontent-%COMP%]:before{content:""}.fa-play[_ngcontent-%COMP%]:before{content:""}.fa-pause[_ngcontent-%COMP%]:before{content:""}.fa-stop[_ngcontent-%COMP%]:before{content:""}.fa-forward[_ngcontent-%COMP%]:before{content:""}.fa-fast-forward[_ngcontent-%COMP%]:before{content:""}.fa-step-forward[_ngcontent-%COMP%]:before{content:""}.fa-eject[_ngcontent-%COMP%]:before{content:""}.fa-chevron-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-right[_ngcontent-%COMP%]:before{content:""}.fa-plus-circle[_ngcontent-%COMP%]:before{content:""}.fa-minus-circle[_ngcontent-%COMP%]:before{content:""}.fa-times-circle[_ngcontent-%COMP%]:before{content:""}.fa-check-circle[_ngcontent-%COMP%]:before{content:""}.fa-question-circle[_ngcontent-%COMP%]:before{content:""}.fa-info-circle[_ngcontent-%COMP%]:before{content:""}.fa-crosshairs[_ngcontent-%COMP%]:before{content:""}.fa-times-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-check-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-ban[_ngcontent-%COMP%]:before{content:""}.fa-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-mail-forward[_ngcontent-%COMP%]:before, .fa-share[_ngcontent-%COMP%]:before{content:""}.fa-expand[_ngcontent-%COMP%]:before{content:""}.fa-compress[_ngcontent-%COMP%]:before{content:""}.fa-plus[_ngcontent-%COMP%]:before{content:""}.fa-minus[_ngcontent-%COMP%]:before{content:""}.fa-asterisk[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-circle[_ngcontent-%COMP%]:before{content:""}.fa-gift[_ngcontent-%COMP%]:before{content:""}.fa-leaf[_ngcontent-%COMP%]:before{content:""}.fa-fire[_ngcontent-%COMP%]:before{content:""}.fa-eye[_ngcontent-%COMP%]:before{content:""}.fa-eye-slash[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-triangle[_ngcontent-%COMP%]:before, .fa-warning[_ngcontent-%COMP%]:before{content:""}.fa-plane[_ngcontent-%COMP%]:before{content:""}.fa-calendar[_ngcontent-%COMP%]:before{content:""}.fa-random[_ngcontent-%COMP%]:before{content:""}.fa-comment[_ngcontent-%COMP%]:before{content:""}.fa-magnet[_ngcontent-%COMP%]:before{content:""}.fa-chevron-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-down[_ngcontent-%COMP%]:before{content:""}.fa-retweet[_ngcontent-%COMP%]:before{content:""}.fa-shopping-cart[_ngcontent-%COMP%]:before{content:""}.fa-folder[_ngcontent-%COMP%]:before{content:""}.fa-folder-open[_ngcontent-%COMP%]:before{content:""}.fa-arrows-v[_ngcontent-%COMP%]:before{content:""}.fa-arrows-h[_ngcontent-%COMP%]:before{content:""}.fa-bar-chart-o[_ngcontent-%COMP%]:before, .fa-bar-chart[_ngcontent-%COMP%]:before{content:""}.fa-twitter-square[_ngcontent-%COMP%]:before{content:""}.fa-facebook-square[_ngcontent-%COMP%]:before{content:""}.fa-camera-retro[_ngcontent-%COMP%]:before{content:""}.fa-key[_ngcontent-%COMP%]:before{content:""}.fa-cogs[_ngcontent-%COMP%]:before, .fa-gears[_ngcontent-%COMP%]:before{content:""}.fa-comments[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-down[_ngcontent-%COMP%]:before{content:""}.fa-star-half[_ngcontent-%COMP%]:before{content:""}.fa-heart-o[_ngcontent-%COMP%]:before{content:""}.fa-sign-out[_ngcontent-%COMP%]:before{content:""}.fa-linkedin-square[_ngcontent-%COMP%]:before{content:""}.fa-thumb-tack[_ngcontent-%COMP%]:before{content:""}.fa-external-link[_ngcontent-%COMP%]:before{content:""}.fa-sign-in[_ngcontent-%COMP%]:before{content:""}.fa-trophy[_ngcontent-%COMP%]:before{content:""}.fa-github-square[_ngcontent-%COMP%]:before{content:""}.fa-upload[_ngcontent-%COMP%]:before{content:""}.fa-lemon-o[_ngcontent-%COMP%]:before{content:""}.fa-phone[_ngcontent-%COMP%]:before{content:""}.fa-square-o[_ngcontent-%COMP%]:before{content:""}.fa-bookmark-o[_ngcontent-%COMP%]:before{content:""}.fa-phone-square[_ngcontent-%COMP%]:before{content:""}.fa-twitter[_ngcontent-%COMP%]:before{content:""}.fa-facebook-f[_ngcontent-%COMP%]:before, .fa-facebook[_ngcontent-%COMP%]:before{content:""}.fa-github[_ngcontent-%COMP%]:before{content:""}.fa-unlock[_ngcontent-%COMP%]:before{content:""}.fa-credit-card[_ngcontent-%COMP%]:before{content:""}.fa-feed[_ngcontent-%COMP%]:before, .fa-rss[_ngcontent-%COMP%]:before{content:""}.fa-hdd-o[_ngcontent-%COMP%]:before{content:""}.fa-bullhorn[_ngcontent-%COMP%]:before{content:""}.fa-bell-o[_ngcontent-%COMP%]:before{content:""}.fa-certificate[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-right[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-left[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-up[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-globe[_ngcontent-%COMP%]:before{content:""}.fa-globe-e[_ngcontent-%COMP%]:before{content:""}.fa-globe-w[_ngcontent-%COMP%]:before{content:""}.fa-wrench[_ngcontent-%COMP%]:before{content:""}.fa-tasks[_ngcontent-%COMP%]:before{content:""}.fa-filter[_ngcontent-%COMP%]:before{content:""}.fa-briefcase[_ngcontent-%COMP%]:before{content:""}.fa-arrows-alt[_ngcontent-%COMP%]:before{content:""}.fa-community[_ngcontent-%COMP%]:before, .fa-group[_ngcontent-%COMP%]:before, .fa-users[_ngcontent-%COMP%]:before{content:""}.fa-chain[_ngcontent-%COMP%]:before, .fa-link[_ngcontent-%COMP%]:before{content:""}.fa-cloud[_ngcontent-%COMP%]:before{content:""}.fa-flask[_ngcontent-%COMP%]:before{content:""}.fa-cut[_ngcontent-%COMP%]:before, .fa-scissors[_ngcontent-%COMP%]:before{content:""}.fa-copy[_ngcontent-%COMP%]:before, .fa-files-o[_ngcontent-%COMP%]:before{content:""}.fa-paperclip[_ngcontent-%COMP%]:before{content:""}.fa-floppy-o[_ngcontent-%COMP%]:before, .fa-save[_ngcontent-%COMP%]:before{content:""}.fa-square[_ngcontent-%COMP%]:before{content:""}.fa-bars[_ngcontent-%COMP%]:before, .fa-navicon[_ngcontent-%COMP%]:before, .fa-reorder[_ngcontent-%COMP%]:before{content:""}.fa-list-ul[_ngcontent-%COMP%]:before{content:""}.fa-list-ol[_ngcontent-%COMP%]:before{content:""}.fa-strikethrough[_ngcontent-%COMP%]:before{content:""}.fa-underline[_ngcontent-%COMP%]:before{content:""}.fa-table[_ngcontent-%COMP%]:before{content:""}.fa-magic[_ngcontent-%COMP%]:before{content:""}.fa-truck[_ngcontent-%COMP%]:before{content:""}.fa-pinterest[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-g[_ngcontent-%COMP%]:before, .fa-google-plus[_ngcontent-%COMP%]:before{content:""}.fa-money[_ngcontent-%COMP%]:before{content:""}.fa-caret-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-right[_ngcontent-%COMP%]:before{content:""}.fa-columns[_ngcontent-%COMP%]:before{content:""}.fa-sort[_ngcontent-%COMP%]:before, .fa-unsorted[_ngcontent-%COMP%]:before{content:""}.fa-sort-desc[_ngcontent-%COMP%]:before, .fa-sort-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-asc[_ngcontent-%COMP%]:before, .fa-sort-up[_ngcontent-%COMP%]:before{content:""}.fa-envelope[_ngcontent-%COMP%]:before{content:""}.fa-linkedin[_ngcontent-%COMP%]:before{content:""}.fa-rotate-left[_ngcontent-%COMP%]:before, .fa-undo[_ngcontent-%COMP%]:before{content:""}.fa-gavel[_ngcontent-%COMP%]:before, .fa-legal[_ngcontent-%COMP%]:before{content:""}.fa-dashboard[_ngcontent-%COMP%]:before, .fa-tachometer[_ngcontent-%COMP%]:before{content:""}.fa-comment-o[_ngcontent-%COMP%]:before{content:""}.fa-comments-o[_ngcontent-%COMP%]:before{content:""}.fa-bolt[_ngcontent-%COMP%]:before, .fa-flash[_ngcontent-%COMP%]:before{content:""}.fa-sitemap[_ngcontent-%COMP%]:before{content:""}.fa-umbrella[_ngcontent-%COMP%]:before{content:""}.fa-clipboard[_ngcontent-%COMP%]:before, .fa-paste[_ngcontent-%COMP%]:before{content:""}.fa-lightbulb-o[_ngcontent-%COMP%]:before{content:""}.fa-exchange[_ngcontent-%COMP%]:before{content:""}.fa-cloud-download[_ngcontent-%COMP%]:before{content:""}.fa-cloud-upload[_ngcontent-%COMP%]:before{content:""}.fa-user-md[_ngcontent-%COMP%]:before{content:""}.fa-stethoscope[_ngcontent-%COMP%]:before{content:""}.fa-suitcase[_ngcontent-%COMP%]:before{content:""}.fa-bell[_ngcontent-%COMP%]:before{content:""}.fa-coffee[_ngcontent-%COMP%]:before{content:""}.fa-cutlery[_ngcontent-%COMP%]:before, .fa-utensils[_ngcontent-%COMP%]:before{content:""}.fa-file-text-o[_ngcontent-%COMP%]:before{content:""}.fa-building-o[_ngcontent-%COMP%]:before{content:""}.fa-hospital-o[_ngcontent-%COMP%]:before{content:""}.fa-ambulance[_ngcontent-%COMP%]:before{content:""}.fa-medkit[_ngcontent-%COMP%]:before{content:""}.fa-fighter-jet[_ngcontent-%COMP%]:before{content:""}.fa-beer[_ngcontent-%COMP%]:before{content:""}.fa-h-square[_ngcontent-%COMP%]:before{content:""}.fa-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-down[_ngcontent-%COMP%]:before{content:""}.fa-angle-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-down[_ngcontent-%COMP%]:before{content:""}.fa-desktop[_ngcontent-%COMP%]:before{content:""}.fa-laptop[_ngcontent-%COMP%]:before{content:""}.fa-tablet[_ngcontent-%COMP%]:before{content:""}.fa-mobile-phone[_ngcontent-%COMP%]:before, .fa-mobile[_ngcontent-%COMP%]:before{content:""}.fa-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-quote-left[_ngcontent-%COMP%]:before{content:""}.fa-quote-right[_ngcontent-%COMP%]:before{content:""}.fa-spinner[_ngcontent-%COMP%]:before{content:""}.fa-circle[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply[_ngcontent-%COMP%]:before, .fa-reply[_ngcontent-%COMP%]:before{content:""}.fa-github-alt[_ngcontent-%COMP%]:before{content:""}.fa-folder-o[_ngcontent-%COMP%]:before{content:""}.fa-folder-open-o[_ngcontent-%COMP%]:before{content:""}.fa-smile-o[_ngcontent-%COMP%]:before{content:""}.fa-frown-o[_ngcontent-%COMP%]:before{content:""}.fa-meh-o[_ngcontent-%COMP%]:before{content:""}.fa-gamepad[_ngcontent-%COMP%]:before{content:""}.fa-keyboard-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-checkered[_ngcontent-%COMP%]:before{content:""}.fa-terminal[_ngcontent-%COMP%]:before{content:""}.fa-code[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply-all[_ngcontent-%COMP%]:before, .fa-reply-all[_ngcontent-%COMP%]:before{content:""}.fa-star-half-empty[_ngcontent-%COMP%]:before, .fa-star-half-full[_ngcontent-%COMP%]:before, .fa-star-half-o[_ngcontent-%COMP%]:before{content:""}.fa-location-arrow[_ngcontent-%COMP%]:before{content:""}.fa-crop[_ngcontent-%COMP%]:before{content:""}.fa-code-fork[_ngcontent-%COMP%]:before{content:""}.fa-chain-broken[_ngcontent-%COMP%]:before, .fa-unlink[_ngcontent-%COMP%]:before{content:""}.fa-question[_ngcontent-%COMP%]:before{content:""}.fa-info[_ngcontent-%COMP%]:before{content:""}.fa-exclamation[_ngcontent-%COMP%]:before{content:""}.fa-superscript[_ngcontent-%COMP%]:before{content:""}.fa-subscript[_ngcontent-%COMP%]:before{content:""}.fa-eraser[_ngcontent-%COMP%]:before{content:""}.fa-puzzle-piece[_ngcontent-%COMP%]:before{content:""}.fa-microphone[_ngcontent-%COMP%]:before{content:""}.fa-microphone-slash[_ngcontent-%COMP%]:before{content:""}.fa-shield[_ngcontent-%COMP%]:before{content:""}.fa-calendar-o[_ngcontent-%COMP%]:before{content:""}.fa-fire-extinguisher[_ngcontent-%COMP%]:before{content:""}.fa-rocket[_ngcontent-%COMP%]:before{content:""}.fa-maxcdn[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-html5[_ngcontent-%COMP%]:before{content:""}.fa-css3[_ngcontent-%COMP%]:before{content:""}.fa-anchor[_ngcontent-%COMP%]:before{content:""}.fa-unlock-alt[_ngcontent-%COMP%]:before{content:""}.fa-bullseye[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-h[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-v[_ngcontent-%COMP%]:before{content:""}.fa-rss-square[_ngcontent-%COMP%]:before{content:""}.fa-play-circle[_ngcontent-%COMP%]:before{content:""}.fa-ticket[_ngcontent-%COMP%]:before{content:""}.fa-minus-square[_ngcontent-%COMP%]:before{content:""}.fa-minus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-level-up[_ngcontent-%COMP%]:before{content:""}.fa-level-down[_ngcontent-%COMP%]:before{content:""}.fa-check-square[_ngcontent-%COMP%]:before{content:""}.fa-pencil-square[_ngcontent-%COMP%]:before{content:""}.fa-external-link-square[_ngcontent-%COMP%]:before{content:""}.fa-share-square[_ngcontent-%COMP%]:before{content:""}.fa-compass[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-down[_ngcontent-%COMP%]:before, .fa-toggle-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-up[_ngcontent-%COMP%]:before, .fa-toggle-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-right[_ngcontent-%COMP%]:before, .fa-toggle-right[_ngcontent-%COMP%]:before{content:""}.fa-eur[_ngcontent-%COMP%]:before, .fa-euro[_ngcontent-%COMP%]:before{content:""}.fa-gbp[_ngcontent-%COMP%]:before, .fa-pound[_ngcontent-%COMP%]:before{content:""}.fa-dollar[_ngcontent-%COMP%]:before, .fa-usd[_ngcontent-%COMP%]:before{content:""}.fa-inr[_ngcontent-%COMP%]:before, .fa-rupee[_ngcontent-%COMP%]:before{content:""}.fa-cny[_ngcontent-%COMP%]:before, .fa-jpy[_ngcontent-%COMP%]:before, .fa-rmb[_ngcontent-%COMP%]:before, .fa-yen[_ngcontent-%COMP%]:before{content:""}.fa-rouble[_ngcontent-%COMP%]:before, .fa-rub[_ngcontent-%COMP%]:before, .fa-ruble[_ngcontent-%COMP%]:before{content:""}.fa-krw[_ngcontent-%COMP%]:before, .fa-won[_ngcontent-%COMP%]:before{content:""}.fa-bitcoin[_ngcontent-%COMP%]:before, .fa-btc[_ngcontent-%COMP%]:before{content:""}.fa-file[_ngcontent-%COMP%]:before{content:""}.fa-file-text[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-asc[_ngcontent-%COMP%]:before, .fa-sort-alpha-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-desc[_ngcontent-%COMP%]:before, .fa-sort-alpha-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-asc[_ngcontent-%COMP%]:before, .fa-sort-amount-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-desc[_ngcontent-%COMP%]:before, .fa-sort-amount-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-asc[_ngcontent-%COMP%]:before, .fa-sort-numeric-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-desc[_ngcontent-%COMP%]:before, .fa-sort-numeric-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-down[_ngcontent-%COMP%]:before{content:""}.fa-youtube-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube[_ngcontent-%COMP%]:before{content:""}.fa-xing[_ngcontent-%COMP%]:before{content:""}.fa-xing-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube-play[_ngcontent-%COMP%]:before{content:""}.fa-dropbox[_ngcontent-%COMP%]:before{content:""}.fa-stack-overflow[_ngcontent-%COMP%]:before{content:""}.fa-instagram[_ngcontent-%COMP%]:before{content:""}.fa-flickr[_ngcontent-%COMP%]:before{content:""}.fa-adn[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket-square[_ngcontent-%COMP%]:before{content:""}.fa-tumblr[_ngcontent-%COMP%]:before{content:""}.fa-tumblr-square[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-apple[_ngcontent-%COMP%]:before{content:""}.fa-windows[_ngcontent-%COMP%]:before{content:""}.fa-android[_ngcontent-%COMP%]:before{content:""}.fa-linux[_ngcontent-%COMP%]:before{content:""}.fa-dribbble[_ngcontent-%COMP%]:before{content:""}.fa-skype[_ngcontent-%COMP%]:before{content:""}.fa-foursquare[_ngcontent-%COMP%]:before{content:""}.fa-trello[_ngcontent-%COMP%]:before{content:""}.fa-female[_ngcontent-%COMP%]:before{content:""}.fa-male[_ngcontent-%COMP%]:before{content:""}.fa-gittip[_ngcontent-%COMP%]:before, .fa-gratipay[_ngcontent-%COMP%]:before{content:""}.fa-sun-o[_ngcontent-%COMP%]:before{content:""}.fa-moon-o[_ngcontent-%COMP%]:before{content:""}.fa-archive[_ngcontent-%COMP%]:before{content:""}.fa-bug[_ngcontent-%COMP%]:before{content:""}.fa-vk[_ngcontent-%COMP%]:before{content:""}.fa-weibo[_ngcontent-%COMP%]:before{content:""}.fa-renren[_ngcontent-%COMP%]:before{content:""}.fa-pagelines[_ngcontent-%COMP%]:before{content:""}.fa-stack-exchange[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-left[_ngcontent-%COMP%]:before, .fa-toggle-left[_ngcontent-%COMP%]:before{content:""}.fa-dot-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-square[_ngcontent-%COMP%]:before{content:""}.fa-try[_ngcontent-%COMP%]:before, .fa-turkish-lira[_ngcontent-%COMP%]:before{content:""}.fa-plus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-space-shuttle[_ngcontent-%COMP%]:before{content:""}.fa-slack[_ngcontent-%COMP%]:before{content:""}.fa-envelope-square[_ngcontent-%COMP%]:before{content:""}.fa-wordpress[_ngcontent-%COMP%]:before{content:""}.fa-openid[_ngcontent-%COMP%]:before{content:""}.fa-bank[_ngcontent-%COMP%]:before, .fa-institution[_ngcontent-%COMP%]:before, .fa-university[_ngcontent-%COMP%]:before{content:""}.fa-graduation-cap[_ngcontent-%COMP%]:before, .fa-mortar-board[_ngcontent-%COMP%]:before{content:""}.fa-yahoo[_ngcontent-%COMP%]:before{content:""}.fa-google[_ngcontent-%COMP%]:before{content:""}.fa-reddit[_ngcontent-%COMP%]:before{content:""}.fa-reddit-square[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon-circle[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon[_ngcontent-%COMP%]:before{content:""}.fa-delicious[_ngcontent-%COMP%]:before{content:""}.fa-digg[_ngcontent-%COMP%]:before{content:""}.fa-drupal[_ngcontent-%COMP%]:before{content:""}.fa-joomla[_ngcontent-%COMP%]:before{content:""}.fa-language[_ngcontent-%COMP%]:before{content:""}.fa-fax[_ngcontent-%COMP%]:before{content:""}.fa-building[_ngcontent-%COMP%]:before{content:""}.fa-child[_ngcontent-%COMP%]:before{content:""}.fa-paw[_ngcontent-%COMP%]:before{content:""}.fa-spoon[_ngcontent-%COMP%]:before, .fa-utensil-spoon[_ngcontent-%COMP%]:before{content:""}.fa-cube[_ngcontent-%COMP%]:before{content:""}.fa-cubes[_ngcontent-%COMP%]:before{content:""}.fa-behance[_ngcontent-%COMP%]:before{content:""}.fa-behance-square[_ngcontent-%COMP%]:before{content:""}.fa-steam[_ngcontent-%COMP%]:before{content:""}.fa-steam-square[_ngcontent-%COMP%]:before{content:""}.fa-recycle[_ngcontent-%COMP%]:before{content:""}.fa-automobile[_ngcontent-%COMP%]:before, .fa-car[_ngcontent-%COMP%]:before{content:""}.fa-cab[_ngcontent-%COMP%]:before, .fa-taxi[_ngcontent-%COMP%]:before{content:""}.fa-tree[_ngcontent-%COMP%]:before{content:""}.fa-spotify[_ngcontent-%COMP%]:before{content:""}.fa-deviantart[_ngcontent-%COMP%]:before{content:""}.fa-soundcloud[_ngcontent-%COMP%]:before{content:""}.fa-database[_ngcontent-%COMP%]:before{content:""}.fa-file-pdf-o[_ngcontent-%COMP%]:before{content:""}.fa-file-word-o[_ngcontent-%COMP%]:before{content:""}.fa-file-excel-o[_ngcontent-%COMP%]:before{content:""}.fa-file-powerpoint-o[_ngcontent-%COMP%]:before{content:""}.fa-file-image-o[_ngcontent-%COMP%]:before, .fa-file-photo-o[_ngcontent-%COMP%]:before, .fa-file-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-file-archive-o[_ngcontent-%COMP%]:before, .fa-file-zip-o[_ngcontent-%COMP%]:before{content:""}.fa-file-audio-o[_ngcontent-%COMP%]:before, .fa-file-sound-o[_ngcontent-%COMP%]:before{content:""}.fa-file-movie-o[_ngcontent-%COMP%]:before, .fa-file-video-o[_ngcontent-%COMP%]:before{content:""}.fa-file-code-o[_ngcontent-%COMP%]:before{content:""}.fa-vine[_ngcontent-%COMP%]:before{content:""}.fa-codepen[_ngcontent-%COMP%]:before{content:""}.fa-jsfiddle[_ngcontent-%COMP%]:before{content:""}.fa-life-bouy[_ngcontent-%COMP%]:before, .fa-life-buoy[_ngcontent-%COMP%]:before, .fa-life-ring[_ngcontent-%COMP%]:before, .fa-life-saver[_ngcontent-%COMP%]:before, .fa-support[_ngcontent-%COMP%]:before{content:""}.fa-circle-o-notch[_ngcontent-%COMP%]:before{content:""}.fa-ra[_ngcontent-%COMP%]:before, .fa-rebel[_ngcontent-%COMP%]:before, .fa-resistance[_ngcontent-%COMP%]:before{content:""}.fa-empire[_ngcontent-%COMP%]:before, .fa-ge[_ngcontent-%COMP%]:before{content:""}.fa-git-square[_ngcontent-%COMP%]:before{content:""}.fa-git[_ngcontent-%COMP%]:before{content:""}.fa-hacker-news[_ngcontent-%COMP%]:before, .fa-y-combinator-square[_ngcontent-%COMP%]:before, .fa-yc-square[_ngcontent-%COMP%]:before{content:""}.fa-tencent-weibo[_ngcontent-%COMP%]:before{content:""}.fa-qq[_ngcontent-%COMP%]:before{content:""}.fa-wechat[_ngcontent-%COMP%]:before, .fa-weixin[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane[_ngcontent-%COMP%]:before, .fa-send[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane-o[_ngcontent-%COMP%]:before, .fa-send-o[_ngcontent-%COMP%]:before{content:""}.fa-history[_ngcontent-%COMP%]:before{content:""}.fa-circle-thin[_ngcontent-%COMP%]:before{content:""}.fa-header[_ngcontent-%COMP%]:before, .fa-heading[_ngcontent-%COMP%]:before{content:""}.fa-paragraph[_ngcontent-%COMP%]:before{content:""}.fa-sliders[_ngcontent-%COMP%]:before{content:""}.fa-share-alt[_ngcontent-%COMP%]:before{content:""}.fa-share-alt-square[_ngcontent-%COMP%]:before{content:""}.fa-bomb[_ngcontent-%COMP%]:before{content:""}.fa-futbol-o[_ngcontent-%COMP%]:before, .fa-soccer-ball-o[_ngcontent-%COMP%]:before{content:""}.fa-tty[_ngcontent-%COMP%]:before{content:""}.fa-binoculars[_ngcontent-%COMP%]:before{content:""}.fa-plug[_ngcontent-%COMP%]:before{content:""}.fa-slideshare[_ngcontent-%COMP%]:before{content:""}.fa-twitch[_ngcontent-%COMP%]:before{content:""}.fa-yelp[_ngcontent-%COMP%]:before{content:""}.fa-newspaper-o[_ngcontent-%COMP%]:before{content:""}.fa-wifi[_ngcontent-%COMP%]:before{content:""}.fa-calculator[_ngcontent-%COMP%]:before{content:""}.fa-paypal[_ngcontent-%COMP%]:before{content:""}.fa-google-wallet[_ngcontent-%COMP%]:before{content:""}.fa-cc-visa[_ngcontent-%COMP%]:before{content:""}.fa-cc-mastercard[_ngcontent-%COMP%]:before{content:""}.fa-cc-discover[_ngcontent-%COMP%]:before{content:""}.fa-cc-amex[_ngcontent-%COMP%]:before{content:""}.fa-cc-paypal[_ngcontent-%COMP%]:before{content:""}.fa-cc-stripe[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash-o[_ngcontent-%COMP%]:before{content:""}.fa-trash[_ngcontent-%COMP%]:before{content:""}.fa-copyright[_ngcontent-%COMP%]:before{content:""}.fa-at[_ngcontent-%COMP%]:before{content:""}.fa-eyedropper[_ngcontent-%COMP%]:before{content:""}.fa-paint-brush[_ngcontent-%COMP%]:before{content:""}.fa-birthday-cake[_ngcontent-%COMP%]:before{content:""}.fa-area-chart[_ngcontent-%COMP%]:before{content:""}.fa-pie-chart[_ngcontent-%COMP%]:before{content:""}.fa-line-chart[_ngcontent-%COMP%]:before{content:""}.fa-lastfm[_ngcontent-%COMP%]:before{content:""}.fa-lastfm-square[_ngcontent-%COMP%]:before{content:""}.fa-toggle-off[_ngcontent-%COMP%]:before{content:""}.fa-toggle-on[_ngcontent-%COMP%]:before{content:""}.fa-bicycle[_ngcontent-%COMP%]:before{content:""}.fa-bus[_ngcontent-%COMP%]:before{content:""}.fa-ioxhost[_ngcontent-%COMP%]:before{content:""}.fa-angellist[_ngcontent-%COMP%]:before{content:""}.fa-cc[_ngcontent-%COMP%]:before, .fa-closed-captioning[_ngcontent-%COMP%]:before{content:""}.fa-ils[_ngcontent-%COMP%]:before, .fa-shekel[_ngcontent-%COMP%]:before, .fa-sheqel[_ngcontent-%COMP%]:before{content:""}.fa-meanpath[_ngcontent-%COMP%]:before{content:""}.fa-buysellads[_ngcontent-%COMP%]:before{content:""}.fa-connectdevelop[_ngcontent-%COMP%]:before{content:""}.fa-dashcube[_ngcontent-%COMP%]:before{content:""}.fa-forumbee[_ngcontent-%COMP%]:before{content:""}.fa-leanpub[_ngcontent-%COMP%]:before{content:""}.fa-sellsy[_ngcontent-%COMP%]:before{content:""}.fa-shirtsinbulk[_ngcontent-%COMP%]:before{content:""}.fa-simplybuilt[_ngcontent-%COMP%]:before{content:""}.fa-skyatlas[_ngcontent-%COMP%]:before{content:""}.fa-cart-plus[_ngcontent-%COMP%]:before{content:""}.fa-cart-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-diamond[_ngcontent-%COMP%]:before, .fa-gem[_ngcontent-%COMP%]:before{content:""}.fa-ship[_ngcontent-%COMP%]:before{content:""}.fa-user-secret[_ngcontent-%COMP%]:before{content:""}.fa-motorcycle[_ngcontent-%COMP%]:before{content:""}.fa-street-view[_ngcontent-%COMP%]:before{content:""}.fa-heartbeat[_ngcontent-%COMP%]:before{content:""}.fa-venus[_ngcontent-%COMP%]:before{content:""}.fa-mars[_ngcontent-%COMP%]:before{content:""}.fa-mercury[_ngcontent-%COMP%]:before{content:""}.fa-intersex[_ngcontent-%COMP%]:before, .fa-transgender[_ngcontent-%COMP%]:before{content:""}.fa-transgender-alt[_ngcontent-%COMP%]:before{content:""}.fa-venus-double[_ngcontent-%COMP%]:before{content:""}.fa-mars-double[_ngcontent-%COMP%]:before{content:""}.fa-venus-mars[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-v[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-h[_ngcontent-%COMP%]:before{content:""}.fa-neuter[_ngcontent-%COMP%]:before{content:""}.fa-genderless[_ngcontent-%COMP%]:before{content:""}.fa-facebook-official[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-p[_ngcontent-%COMP%]:before{content:""}.fa-whatsapp[_ngcontent-%COMP%]:before{content:""}.fa-server[_ngcontent-%COMP%]:before{content:""}.fa-user-plus[_ngcontent-%COMP%]:before{content:""}.fa-user-times[_ngcontent-%COMP%]:before{content:""}.fa-bed[_ngcontent-%COMP%]:before, .fa-hotel[_ngcontent-%COMP%]:before{content:""}.fa-viacoin[_ngcontent-%COMP%]:before{content:""}.fa-train[_ngcontent-%COMP%]:before{content:""}.fa-subway[_ngcontent-%COMP%]:before{content:""}.fa-medium[_ngcontent-%COMP%]:before{content:""}.fa-medium-square[_ngcontent-%COMP%]:before{content:""}.fa-y-combinator[_ngcontent-%COMP%]:before, .fa-yc[_ngcontent-%COMP%]:before{content:""}.fa-optin-monster[_ngcontent-%COMP%]:before{content:""}.fa-opencart[_ngcontent-%COMP%]:before{content:""}.fa-expeditedssl[_ngcontent-%COMP%]:before{content:""}.fa-battery-4[_ngcontent-%COMP%]:before, .fa-battery-full[_ngcontent-%COMP%]:before, .fa-battery[_ngcontent-%COMP%]:before{content:""}.fa-battery-3[_ngcontent-%COMP%]:before, .fa-battery-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-battery-2[_ngcontent-%COMP%]:before, .fa-battery-half[_ngcontent-%COMP%]:before{content:""}.fa-battery-1[_ngcontent-%COMP%]:before, .fa-battery-quarter[_ngcontent-%COMP%]:before{content:""}.fa-battery-0[_ngcontent-%COMP%]:before, .fa-battery-empty[_ngcontent-%COMP%]:before{content:""}.fa-mouse-pointer[_ngcontent-%COMP%]:before{content:""}.fa-i-cursor[_ngcontent-%COMP%]:before{content:""}.fa-object-group[_ngcontent-%COMP%]:before{content:""}.fa-object-ungroup[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note-o[_ngcontent-%COMP%]:before{content:""}.fa-cc-jcb[_ngcontent-%COMP%]:before{content:""}.fa-cc-diners-club[_ngcontent-%COMP%]:before{content:""}.fa-clone[_ngcontent-%COMP%]:before{content:""}.fa-balance-scale[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-o[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-1[_ngcontent-%COMP%]:before, .fa-hourglass-start[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-2[_ngcontent-%COMP%]:before, .fa-hourglass-half[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-3[_ngcontent-%COMP%]:before, .fa-hourglass-end[_ngcontent-%COMP%]:before{content:""}.fa-hourglass[_ngcontent-%COMP%]:before{content:""}.fa-hand-grab-o[_ngcontent-%COMP%]:before, .fa-hand-rock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-paper-o[_ngcontent-%COMP%]:before, .fa-hand-stop-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-scissors-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-lizard-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-spock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-pointer-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-peace-o[_ngcontent-%COMP%]:before{content:""}.fa-trademark[_ngcontent-%COMP%]:before{content:""}.fa-registered[_ngcontent-%COMP%]:before{content:""}.fa-creative-commons[_ngcontent-%COMP%]:before{content:""}.fa-gg[_ngcontent-%COMP%]:before{content:""}.fa-gg-circle[_ngcontent-%COMP%]:before{content:""}.fa-tripadvisor[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki-square[_ngcontent-%COMP%]:before{content:""}.fa-get-pocket[_ngcontent-%COMP%]:before{content:""}.fa-wikipedia-w[_ngcontent-%COMP%]:before{content:""}.fa-safari[_ngcontent-%COMP%]:before{content:""}.fa-chrome[_ngcontent-%COMP%]:before{content:""}.fa-firefox[_ngcontent-%COMP%]:before{content:""}.fa-opera[_ngcontent-%COMP%]:before{content:""}.fa-internet-explorer[_ngcontent-%COMP%]:before{content:""}.fa-television[_ngcontent-%COMP%]:before, .fa-tv[_ngcontent-%COMP%]:before{content:""}.fa-contao[_ngcontent-%COMP%]:before{content:""}.fa-500px[_ngcontent-%COMP%]:before{content:""}.fa-amazon[_ngcontent-%COMP%]:before{content:""}.fa-calendar-plus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-minus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-times-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-check-o[_ngcontent-%COMP%]:before{content:""}.fa-industry[_ngcontent-%COMP%]:before{content:""}.fa-map-pin[_ngcontent-%COMP%]:before{content:""}.fa-map-signs[_ngcontent-%COMP%]:before{content:""}.fa-map-o[_ngcontent-%COMP%]:before{content:""}.fa-map[_ngcontent-%COMP%]:before{content:""}.fa-commenting[_ngcontent-%COMP%]:before{content:""}.fa-commenting-o[_ngcontent-%COMP%]:before{content:""}.fa-houzz[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-v[_ngcontent-%COMP%]:before, .fa-vimeo[_ngcontent-%COMP%]:before{content:""}.fa-black-tie[_ngcontent-%COMP%]:before{content:""}.fa-fonticons[_ngcontent-%COMP%]:before{content:""}.fa-reddit-alien[_ngcontent-%COMP%]:before{content:""}.fa-edge[_ngcontent-%COMP%]:before{content:""}.fa-credit-card-alt[_ngcontent-%COMP%]:before{content:""}.fa-codiepie[_ngcontent-%COMP%]:before{content:""}.fa-modx[_ngcontent-%COMP%]:before{content:""}.fa-fort-awesome[_ngcontent-%COMP%]:before{content:""}.fa-usb[_ngcontent-%COMP%]:before{content:""}.fa-product-hunt[_ngcontent-%COMP%]:before{content:""}.fa-mixcloud[_ngcontent-%COMP%]:before{content:""}.fa-scribd[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-shopping-bag[_ngcontent-%COMP%]:before{content:""}.fa-shopping-basket[_ngcontent-%COMP%]:before{content:""}.fa-hashtag[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth-b[_ngcontent-%COMP%]:before{content:""}.fa-percent[_ngcontent-%COMP%]:before{content:""}.fa-gitlab[_ngcontent-%COMP%]:before{content:""}.fa-wpbeginner[_ngcontent-%COMP%]:before{content:""}.fa-wpforms[_ngcontent-%COMP%]:before{content:""}.fa-envira[_ngcontent-%COMP%]:before{content:""}.fa-universal-access[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair-alt[_ngcontent-%COMP%]:before{content:""}.fa-question-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-blind[_ngcontent-%COMP%]:before{content:""}.fa-audio-description[_ngcontent-%COMP%]:before{content:""}.fa-phone-volume[_ngcontent-%COMP%]:before, .fa-volume-control-phone[_ngcontent-%COMP%]:before{content:""}.fa-braille[_ngcontent-%COMP%]:before{content:""}.fa-assistive-listening-systems[_ngcontent-%COMP%]:before{content:""}.fa-american-sign-language-interpreting[_ngcontent-%COMP%]:before, .fa-asl-interpreting[_ngcontent-%COMP%]:before{content:""}.fa-deaf[_ngcontent-%COMP%]:before, .fa-deafness[_ngcontent-%COMP%]:before, .fa-hard-of-hearing[_ngcontent-%COMP%]:before{content:""}.fa-glide[_ngcontent-%COMP%]:before{content:""}.fa-glide-g[_ngcontent-%COMP%]:before{content:""}.fa-sign-language[_ngcontent-%COMP%]:before, .fa-signing[_ngcontent-%COMP%]:before{content:""}.fa-low-vision[_ngcontent-%COMP%]:before{content:""}.fa-viadeo[_ngcontent-%COMP%]:before{content:""}.fa-viadeo-square[_ngcontent-%COMP%]:before{content:""}.fa-snapchat[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-ghost[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-square[_ngcontent-%COMP%]:before{content:""}.fa-first-order[_ngcontent-%COMP%]:before{content:""}.fa-yoast[_ngcontent-%COMP%]:before{content:""}.fa-themeisle[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-circle[_ngcontent-%COMP%]:before, .fa-google-plus-official[_ngcontent-%COMP%]:before{content:""}.fa-fa[_ngcontent-%COMP%]:before, .fa-font-awesome[_ngcontent-%COMP%]:before{content:""}.fa-handshake-o[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open-o[_ngcontent-%COMP%]:before{content:""}.fa-linode[_ngcontent-%COMP%]:before{content:""}.fa-address-book[_ngcontent-%COMP%]:before{content:""}.fa-address-book-o[_ngcontent-%COMP%]:before{content:""}.fa-address-card[_ngcontent-%COMP%]:before, .fa-vcard[_ngcontent-%COMP%]:before{content:""}.fa-address-card-o[_ngcontent-%COMP%]:before, .fa-vcard-o[_ngcontent-%COMP%]:before{content:""}.fa-user-circle[_ngcontent-%COMP%]:before{content:""}.fa-user-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-user-o[_ngcontent-%COMP%]:before{content:""}.fa-id-badge[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license[_ngcontent-%COMP%]:before, .fa-id-card[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license-o[_ngcontent-%COMP%]:before, .fa-id-card-o[_ngcontent-%COMP%]:before{content:""}.fa-quora[_ngcontent-%COMP%]:before{content:""}.fa-free-code-camp[_ngcontent-%COMP%]:before{content:""}.fa-telegram[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-4[_ngcontent-%COMP%]:before, .fa-thermometer-full[_ngcontent-%COMP%]:before, .fa-thermometer[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-3[_ngcontent-%COMP%]:before, .fa-thermometer-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-2[_ngcontent-%COMP%]:before, .fa-thermometer-half[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-1[_ngcontent-%COMP%]:before, .fa-thermometer-quarter[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-0[_ngcontent-%COMP%]:before, .fa-thermometer-empty[_ngcontent-%COMP%]:before{content:""}.fa-shower[_ngcontent-%COMP%]:before{content:""}.fa-bath[_ngcontent-%COMP%]:before, .fa-bathtub[_ngcontent-%COMP%]:before, .fa-s15[_ngcontent-%COMP%]:before{content:""}.fa-podcast[_ngcontent-%COMP%]:before{content:""}.fa-window-maximize[_ngcontent-%COMP%]:before{content:""}.fa-window-minimize[_ngcontent-%COMP%]:before{content:""}.fa-window-restore[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle[_ngcontent-%COMP%]:before, .fa-window-close[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle-o[_ngcontent-%COMP%]:before, .fa-window-close-o[_ngcontent-%COMP%]:before{content:""}.fa-bandcamp[_ngcontent-%COMP%]:before{content:""}.fa-grav[_ngcontent-%COMP%]:before{content:""}.fa-etsy[_ngcontent-%COMP%]:before{content:""}.fa-imdb[_ngcontent-%COMP%]:before{content:""}.fa-ravelry[_ngcontent-%COMP%]:before{content:""}.fa-eercast[_ngcontent-%COMP%]:before{content:""}.fa-microchip[_ngcontent-%COMP%]:before{content:""}.fa-snowflake-o[_ngcontent-%COMP%]:before{content:""}.fa-superpowers[_ngcontent-%COMP%]:before{content:""}.fa-wpexplorer[_ngcontent-%COMP%]:before{content:""}.fa-meetup[_ngcontent-%COMP%]:before{content:""}.fa-mastodon[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-alt[_ngcontent-%COMP%]:before{content:""}.fa-fork-awesome[_ngcontent-%COMP%]:before, .fa-fork-circle[_ngcontent-%COMP%]:before{content:""}.fa-peertube[_ngcontent-%COMP%]:before{content:""}.fa-diaspora[_ngcontent-%COMP%]:before{content:""}.fa-friendica[_ngcontent-%COMP%]:before{content:""}.fa-gnu-social[_ngcontent-%COMP%]:before{content:""}.fa-liberapay-square[_ngcontent-%COMP%]:before{content:""}.fa-liberapay[_ngcontent-%COMP%]:before{content:""}.fa-scuttlebutt[_ngcontent-%COMP%]:before, .fa-ssb[_ngcontent-%COMP%]:before{content:""}.fa-hubzilla[_ngcontent-%COMP%]:before{content:""}.fa-social-home[_ngcontent-%COMP%]:before{content:""}.fa-artstation[_ngcontent-%COMP%]:before{content:""}.fa-discord[_ngcontent-%COMP%]:before{content:""}.fa-discord-alt[_ngcontent-%COMP%]:before{content:""}.fa-patreon[_ngcontent-%COMP%]:before{content:""}.fa-snowdrift[_ngcontent-%COMP%]:before{content:""}.fa-activitypub[_ngcontent-%COMP%]:before{content:""}.fa-ethereum[_ngcontent-%COMP%]:before{content:""}.fa-keybase[_ngcontent-%COMP%]:before{content:""}.fa-shaarli[_ngcontent-%COMP%]:before{content:""}.fa-shaarli-o[_ngcontent-%COMP%]:before{content:""}.fa-cut-key[_ngcontent-%COMP%]:before, .fa-key-modern[_ngcontent-%COMP%]:before{content:""}.fa-xmpp[_ngcontent-%COMP%]:before{content:""}.fa-archive-org[_ngcontent-%COMP%]:before{content:""}.fa-freedombox[_ngcontent-%COMP%]:before{content:""}.fa-facebook-messenger[_ngcontent-%COMP%]:before{content:""}.fa-debian[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-square[_ngcontent-%COMP%]:before{content:""}.fa-tipeee[_ngcontent-%COMP%]:before{content:""}.fa-react[_ngcontent-%COMP%]:before{content:""}.fa-dogmazic[_ngcontent-%COMP%]:before{content:""}.fa-zotero[_ngcontent-%COMP%]:before{content:""}.fa-nodejs[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud-square[_ngcontent-%COMP%]:before{content:""}.fa-hackaday[_ngcontent-%COMP%]:before{content:""}.fa-laravel[_ngcontent-%COMP%]:before{content:""}.fa-signalapp[_ngcontent-%COMP%]:before{content:""}.fa-gnupg[_ngcontent-%COMP%]:before{content:""}.fa-php[_ngcontent-%COMP%]:before{content:""}.fa-ffmpeg[_ngcontent-%COMP%]:before{content:""}.fa-joplin[_ngcontent-%COMP%]:before{content:""}.fa-syncthing[_ngcontent-%COMP%]:before{content:""}.fa-inkscape[_ngcontent-%COMP%]:before{content:""}.fa-matrix-org[_ngcontent-%COMP%]:before{content:""}.fa-pixelfed[_ngcontent-%COMP%]:before{content:""}.fa-bootstrap[_ngcontent-%COMP%]:before{content:""}.fa-dev-to[_ngcontent-%COMP%]:before{content:""}.fa-hashnode[_ngcontent-%COMP%]:before{content:""}.fa-jirafeau[_ngcontent-%COMP%]:before{content:""}.fa-emby[_ngcontent-%COMP%]:before{content:""}.fa-wikidata[_ngcontent-%COMP%]:before{content:""}.fa-gimp[_ngcontent-%COMP%]:before{content:""}.fa-c[_ngcontent-%COMP%]:before{content:""}.fa-digitalocean[_ngcontent-%COMP%]:before{content:""}.fa-att[_ngcontent-%COMP%]:before{content:""}.fa-gitea[_ngcontent-%COMP%]:before{content:""}.fa-file-epub[_ngcontent-%COMP%]:before{content:""}.fa-python[_ngcontent-%COMP%]:before{content:""}.fa-archlinux[_ngcontent-%COMP%]:before{content:""}.fa-pleroma[_ngcontent-%COMP%]:before{content:""}.fa-unsplash[_ngcontent-%COMP%]:before{content:""}.fa-hackster[_ngcontent-%COMP%]:before{content:""}.fa-spell-check[_ngcontent-%COMP%]:before{content:""}.fa-moon[_ngcontent-%COMP%]:before{content:""}.fa-sun[_ngcontent-%COMP%]:before{content:""}.fa-f-droid[_ngcontent-%COMP%]:before{content:""}.fa-biometric[_ngcontent-%COMP%]:before{content:""}.sr-only[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable[_ngcontent-%COMP%]:active, .sr-only-focusable[_ngcontent-%COMP%]:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status[_ngcontent-%COMP%]   .popover-body[_ngcontent-%COMP%]{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:83vw}}.info-card-content-clickable[_ngcontent-%COMP%]{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable[_ngcontent-%COMP%]:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]{color:initial}.custom-control-input.is-valid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#adb5bd}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}html[_ngcontent-%COMP%]{background-color:#fff}body[_ngcontent-%COMP%], html[_ngcontent-%COMP%]{width:100%;height:100%;font-size:12px}h1[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:2em}h2[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:1.833em}h3[_ngcontent-%COMP%]{display:block;font-size:1.583em;font-weight:400}h4[_ngcontent-%COMP%]{font-size:1.5em;line-height:normal}option[_ngcontent-%COMP%]{font-weight:400;font-style:normal}.full-height[_ngcontent-%COMP%]{height:100vh}.full-width[_ngcontent-%COMP%]{width:100vw}.vertical-align[_ngcontent-%COMP%]{display:flex;align-items:center}.horizontal-align[_ngcontent-%COMP%]{display:flex;justify-content:center}.loading[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}.margin-right-md[_ngcontent-%COMP%]{margin-right:15px}.no-border[_ngcontent-%COMP%]{border:0;box-shadow:0 0 0!important}.italic[_ngcontent-%COMP%]{font-style:italic}.bold[_ngcontent-%COMP%]{font-weight:700}.text-pre[_ngcontent-%COMP%]{white-space:pre-wrap}.btn-light[_ngcontent-%COMP%]{background-color:#fff!important;border-color:#ced4da!important}.btn-light[_ngcontent-%COMP%]:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus[_ngcontent-%COMP%], .btn.active[_ngcontent-%COMP%]:focus, .btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:active.focus, .btn[_ngcontent-%COMP%]:active:focus, .btn[_ngcontent-%COMP%]:focus{outline:0}.btn-primary[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{color:#2b99a8;background-color:#eee}.btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%], .cd-datatable-actions[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]   i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%]{min-width:50px;z-index:999999}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#474544;cursor:pointer}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#eee}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background-color:#21747f}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li.dropdown-divider[_ngcontent-%COMP%]{cursor:auto}.container[_ngcontent-%COMP%], .container-fluid[_ngcontent-%COMP%]{padding-left:30px!important;padding-right:30px!important}.row[_ngcontent-%COMP%]{margin-left:-30px;margin-right:-30px}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%],   cd-info-card, cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{padding-left:30px;padding-right:30px}tags-input[_ngcontent-%COMP%]   .tags[_ngcontent-%COMP%]{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], uib-accordion[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{font-size:14px!important}.card-header[_ngcontent-%COMP%]{font-size:1.3em}.card-body[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]:first-child{margin-top:0}.disabled[_ngcontent-%COMP%]{pointer-events:none}.clickable[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{cursor:pointer}[_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%], [_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%]:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript[_ngcontent-%COMP%]{padding-top:5em}.noscript[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#777}.required[_ngcontent-%COMP%]::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer[_ngcontent-%COMP%]{width:100%;display:flex}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{display:table-cell}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]{padding-top:7px}.card-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child), .modal-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child){margin-left:5px}.nav-tabs[_ngcontent-%COMP%]{margin-bottom:15px}.ceph-icon[_ngcontent-%COMP%]{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon[_ngcontent-%COMP%]{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon[_ngcontent-%COMP%]{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message[_ngcontent-%COMP%]   .custom-icon[_ngcontent-%COMP%]{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper[_ngcontent-%COMP%]{background:rgba(0,0,0,.7)!important}.tooltip-wide[_ngcontent-%COMP%]   .tooltip-inner[_ngcontent-%COMP%]{width:400px}.tooltip-inner[_ngcontent-%COMP%]{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%]{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{text-align:right}}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{font-weight:700}cd-submit-button[_ngcontent-%COMP%]{background-color:transparent!important}bfv-messages[_ngcontent-%COMP%]{display:none}.form-group.has-error[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}.password-strength-level[_ngcontent-%COMP%]{flex:100%;margin-top:2px}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{border-radius:.25rem;height:13px}.password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{width:25%;background:red}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%]{width:50%;background:#ffc200}.password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%]{width:75%;background:#0b0}.password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%]{width:100%;background:#245e03}.badge-hdd[_ngcontent-%COMP%]{color:#fff;background-color:#90949c}.badge-ssd[_ngcontent-%COMP%]{color:#fff;background-color:#288cea}.badge-tab[_ngcontent-%COMP%]{color:#555;background-color:#f3f3f3}tree-root[_ngcontent-%COMP%]   tree-viewport[_ngcontent-%COMP%]{min-height:1em}cd-info-card[_ngcontent-%COMP%]{padding:0 .5vw}  .pg-status-popover-wrapper{position:relative}  .pg-status-popover-wrapper .popover{position:absolute;width:116%;max-height:20vh;min-width:unset!important;max-width:unset!important}  .pg-status-popover-wrapper .popover .popover-body{max-width:100%;max-height:19vh;font-size:12px}.logs-link[_ngcontent-%COMP%]{text-align:center}.card-text-error[_ngcontent-%COMP%]{display:inline;color:red}.card-text-line-break[_ngcontent-%COMP%]:after{content:"\\a";white-space:pre}.popover-info[_ngcontent-%COMP%]:hover{cursor:pointer}']],data:{}});function _a(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Oa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"li",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"span",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](3,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),i["ɵppd"](4,1),(t()(),i["ɵted"](5,null,["",""])),(t()(),i["ɵted"](6,null,[": "," "]))],(function(t,e){var n=i["ɵunv"](e,3,0,t(e,4,0,i["ɵnov"](e.parent.parent.parent.parent.parent.parent,0),e.context.$implicit.severity));t(e,3,0,n)}),(function(t,e){t(e,5,0,e.context.$implicit.type),t(e,6,0,e.context.$implicit.summary.message)}))}function va(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,_a)),i["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵeld"](2,0,null,null,2,"ul",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Oa)),i["ɵdid"](4,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e.parent.parent.parent.parent,7)),t(e,4,0,n.healthData.health.checks)}),null)}function Ca(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),i["ɵand"](0,[["healthChecks",2]],null,0,null,va)),(t()(),i["ɵeld"](2,16777216,null,null,5,"div",[["class","info-card-content-clickable"],["container","body"],["containerClass","info-card-popover-cluster-status"],["placement","bottom"],["triggers",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,6).toggle()&&a),a}),null,null)),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),i["ɵppd"](5,1),i["ɵdid"](6,212992,[["healthChecksTarget",4]],0,zn.c,[zn.a,i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,Gn.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"],container:[3,"container"],containerClass:[4,"containerClass"]},null),(t()(),i["ɵted"](7,null,[" "," "])),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component,a=i["ɵunv"](e,4,0,t(e,5,0,i["ɵnov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,4,0,a),t(e,6,0,i["ɵnov"](e,1),"bottom","","body","info-card-popover-cluster-status")}),(function(t,e){t(e,7,0,e.component.healthData.health.status)}))}function Pa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"div",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](3,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null),i["ɵppd"](4,1),(t()(),i["ɵted"](5,null,[" "," "]))],(function(t,e){var n=e.component,a=i["ɵunv"](e,3,0,t(e,4,0,i["ɵnov"](e.parent.parent.parent.parent,0),n.healthData.health.status));t(e,3,0,a)}),(function(t,e){t(e,5,0,e.component.healthData.health.status)}))}function Ma(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Cluster Status"],["class","cd-status-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ca)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Pa)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Cluster Status","content-highlight"),t(e,3,0,(null==n.healthData.health?null:null==n.healthData.health.checks?null:n.healthData.health.checks.length)>0),t(e,5,0,!(null!=n.healthData.health&&null!=n.healthData.health.checks&&n.healthData.health.checks.length))}),null)}function xa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Monitors"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/monitor"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Monitors","/monitor","content-highlight")}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,1),n.healthData.mon_status));t(e,2,0,a)}))}function wa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,3,0,e.context.$implicit.content)}))}function Ta(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","OSDs"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/osd"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,wa)),i["ɵdid"](3,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,"OSDs","/osd","content-highlight"),t(e,3,0,e.context.ngIf)}),null)}function Sa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,3,0,e.context.$implicit.content)}))}function ka(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"cd-info-card",[["cardTitle","Manager Daemons"],["class","cd-status-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵand"](16777216,null,0,2,null,Sa)),i["ɵdid"](3,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵppd"](4,1)],(function(t,e){var n=e.component;t(e,1,0,"Manager Daemons","content-highlight");var a=i["ɵunv"](e,3,0,t(e,4,0,i["ɵnov"](e.parent.parent.parent,3),n.healthData.mgr_map));t(e,3,0,a)}),null)}function Ia(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Hosts"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/hosts"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," total "]))],(function(t,e){t(e,1,0,"Hosts","/hosts","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.hosts)}))}function Na(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Object Gateways"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/rgw/daemon"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," total "]))],(function(t,e){t(e,1,0,"Object Gateways","/rgw/daemon","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.rgw)}))}function Ra(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.class)}),(function(t,e){t(e,0,0,null!=e.context.$implicit.titleText?e.context.$implicit.titleText:""),t(e,3,0,e.context.$implicit.content)}))}function Aa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Metadata Servers"],["class","cd-status-card"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ra)),i["ɵdid"](3,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,1,0,"Metadata Servers",(e.context.ngIf.length>1?"text-area-size-2":"")+" content-highlight"),t(e,3,0,e.context.ngIf)}),null)}function Ea(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"cd-info-card",[["cardTitle","iSCSI Gateways"],["class","cd-status-card"],["contentClass","content-highlight"],["link","/block/iscsi"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," total "])),(t()(),i["ɵeld"](3,0,null,0,0,"span",[["class","card-text-line-break"]],null,null,null,null,null)),(t()(),i["ɵted"](4,0,[" "," up, "])),(t()(),i["ɵeld"](5,0,null,0,4,"span",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](7,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](8,{"card-text-error":0}),(t()(),i["ɵted"](9,null,[""," down"]))],(function(t,e){var n=e.component;t(e,1,0,"iSCSI Gateways","/block/iscsi","content-highlight");var a=t(e,8,0,n.healthData.iscsi_daemons.down>0);t(e,7,0,a)}),(function(t,e){var n=e.component;t(e,2,0,n.healthData.iscsi_daemons.up+n.healthData.iscsi_daemons.down),t(e,4,0,n.healthData.iscsi_daemons.up),t(e,9,0,n.healthData.iscsi_daemons.down)}))}function Da(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,19,"cd-info-group",[["groupTitle","Status"]],null,null,null,$n,Kn)),i["ɵdid"](1,49152,null,0,Wn,[],{groupTitle:[0,"groupTitle"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ma)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,xa)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,2,null,Ta)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵppd"](8,1),(t()(),i["ɵand"](16777216,null,0,1,null,ka)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ia)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Na)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,2,null,Aa)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵppd"](17,1),(t()(),i["ɵand"](16777216,null,0,1,null,Ea)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Status"),t(e,3,0,null==n.healthData.health?null:n.healthData.health.status),t(e,5,0,n.healthData.mon_status);var a=i["ɵunv"](e,7,0,t(e,8,0,i["ɵnov"](e.parent.parent,2),n.healthData.osd_map));t(e,7,0,a),t(e,10,0,n.healthData.mgr_map),t(e,12,0,null!=n.healthData.hosts),t(e,14,0,e.parent.context.ngIf.rgw&&null!=n.healthData.rgw);var r=i["ɵunv"](e,16,0,t(e,17,0,i["ɵnov"](e.parent.parent,4),e.parent.context.ngIf.cephfs&&n.healthData.fs_map));t(e,16,0,r),t(e,19,0,e.parent.context.ngIf.iscsi&&null!=n.healthData.iscsi_daemons)}),null)}function La(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Client IOPS"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,2)],(function(t,e){t(e,1,0,"Client IOPS","content-highlight")}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,5),n.healthData.client_perf.read_op_per_sec+n.healthData.client_perf.write_op_per_sec,1));t(e,2,0,a)}))}function qa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Client Throughput"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Client Throughput","content-highlight")}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,6),n.healthData.client_perf.read_bytes_sec+n.healthData.client_perf.write_bytes_sec))+"/s";t(e,2,0,a)}))}function ja(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareReadWriteRatio(n[0],n[1])&&a),a}),ra,aa)),i["ɵdid"](1,638976,null,0,na,[Qn.a,ta.a],{data:[0,"data"]},{prepareFn:"prepareFn"})],(function(t,e){t(e,1,0,e.component.healthData)}),null)}function Fa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" N/A "]))],null,null)}function za(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-info-card",[["cardTitle","Client Read/Write"],["class","cd-performance-card"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,ja)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Fa)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Client Read/Write",n.isClientReadWriteChartShowable()?"content-chart":"content-highlight"),t(e,3,0,n.isClientReadWriteChartShowable()),t(e,5,0,!n.isClientReadWriteChartShowable())}),null)}function Ga(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Recovery Throughput"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,1)],(function(t,e){t(e,1,0,"Recovery Throughput","content-highlight")}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,6),n.healthData.client_perf.recovering_bytes_per_sec))+"/s";t(e,2,0,a)}))}function Ba(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Scrub"],["class","cd-performance-card"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "]))],(function(t,e){t(e,1,0,"Scrub","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.scrub_status)}))}function Va(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,"cd-info-group",[["groupTitle","Performance"]],null,null,null,$n,Kn)),i["ɵdid"](1,49152,null,0,Wn,[],{groupTitle:[0,"groupTitle"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,La)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,qa)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,za)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ga)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ba)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance"),t(e,3,0,n.healthData.client_perf),t(e,5,0,n.healthData.client_perf),t(e,7,0,n.healthData.client_perf),t(e,9,0,n.healthData.client_perf),t(e,11,0,n.healthData.scrub_status)}),null)}function Ya(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-info-card",[["cardTitle","Pools"],["class","cd-capacity-card order-md-1 order-lg-4 order-xl-1"],["contentClass","content-highlight"],["link","/pool"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],link:[1,"link"],contentClass:[2,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "]))],(function(t,e){t(e,1,0,"Pools","/pool","content-highlight")}),(function(t,e){t(e,2,0,e.component.healthData.pools.length)}))}function Ha(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Raw Capacity"],["class","cd-capacity-card order-md-3 order-lg-1 order-xl-2"],["contentClass","content-chart"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵeld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareRawUsage(n[0],n[1])&&a),a}),ra,aa)),i["ɵdid"](3,638976,null,0,na,[Qn.a,ta.a],{data:[0,"data"],config:[1,"config"],isBytesData:[2,"isBytesData"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"Raw Capacity","content-chart"),t(e,3,0,n.healthData,n.rawCapacityChartConfig,!0)}),null)}function Ua(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","Objects"],["class","cd-capacity-card order-md-4 order-lg-2 order-xl-3"],["contentClass","content-chart"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵeld"](2,0,null,0,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.prepareObjects(n[0],n[1])&&a),a}),ra,aa)),i["ɵdid"](3,638976,null,0,na,[Qn.a,ta.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"Objects","content-chart"),t(e,3,0,n.healthData,n.objectsChartConfig)}),null)}function Wa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-info-card",[["cardTitle","PGs per OSD"],["class","cd-capacity-card order-md-2 order-lg-5 order-xl-4"],["contentClass","content-highlight"]],null,null,null,Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,1)],(function(t,e){t(e,1,0,"PGs per OSD","content-highlight")}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,7),n.healthData.pg_info.pgs_per_osd));t(e,2,0,a)}))}function Ka(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function $a(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"li",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ",": "," "]))],null,(function(t,e){t(e,1,0,e.context.$implicit.key,e.context.$implicit.value)}))}function Za(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Ka)),i["ɵdid"](1,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵeld"](2,0,null,null,3,"ul",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,$a)),i["ɵdid"](4,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers])],(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e.parent.parent.parent,7)),t(e,4,0,i["ɵunv"](e,4,0,i["ɵnov"](e,5).transform(n.healthData.pg_info.statuses)))}),null)}function Ja(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,"cd-info-card",[["cardTitle","PG Status"],["class","cd-capacity-card order-md-5 order-lg-3 order-xl-5"],["contentClass","content-chart"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,5).toggle()&&a),a}),Un,Vn)),i["ɵdid"](1,49152,null,0,Bn,[],{cardTitle:[0,"cardTitle"],contentClass:[1,"contentClass"]},null),(t()(),i["ɵand"](0,[["pgStatus",2]],0,0,null,Za)),(t()(),i["ɵeld"](3,0,null,0,4,"div",[["class","pg-status-popover-wrapper"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,16777216,null,null,3,"div",[["placement","bottom"],["triggers",""]],null,null,null,null,null)),i["ɵdid"](5,212992,[["pgStatusTarget",4]],0,zn.c,[zn.a,i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a,Gn.a],{popover:[0,"popover"],placement:[1,"placement"],triggers:[2,"triggers"]},null),(t()(),i["ɵeld"](6,0,null,null,1,"cd-health-pie",[],null,[[null,"prepareFn"]],(function(t,e,n){var a=!0;return"prepareFn"===e&&(a=!1!==t.component.preparePgStatus(n[0],n[1])&&a),a}),ra,aa)),i["ɵdid"](7,638976,null,0,na,[Qn.a,ta.a],{data:[0,"data"],config:[1,"config"]},{prepareFn:"prepareFn"})],(function(t,e){var n=e.component;t(e,1,0,"PG Status","content-chart"),t(e,5,0,i["ɵnov"](e,2),"bottom",""),t(e,7,0,n.healthData,n.pgStatusChartConfig)}),null)}function Xa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,"cd-info-group",[["groupTitle","Capacity"]],null,null,null,$n,Kn)),i["ɵdid"](1,49152,null,0,Wn,[],{groupTitle:[0,"groupTitle"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ya)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ha)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ua)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Wa)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ja)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Capacity"),t(e,3,0,n.healthData.pools),t(e,5,0,n.healthData.df),t(e,7,0,null!=(null==n.healthData.pg_info?null:null==n.healthData.pg_info.object_stats?null:n.healthData.pg_info.object_stats.num_objects)),t(e,9,0,n.healthData.pg_info),t(e,11,0,n.healthData.pg_info)}),null)}function Qa(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,9,"p",[["class","logs-link"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](5,1),(t()(),i["ɵted"](-1,null,[" See "])),(t()(),i["ɵeld"](7,0,null,null,2,"a",[["routerLink","/logs"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,8).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](8,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Logs"])),(t()(),i["ɵted"](-1,null,[" for more details."]))],(function(t,e){var n=t(e,5,0,e.component.icons.infoCircle);t(e,4,0,n),t(e,8,0,"/logs")}),(function(t,e){t(e,7,0,i["ɵnov"](e,8).target,i["ɵnov"](e,8).href)}))}function tr(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Qa)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.permissions.log.read)}),null)}function er(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,"div",[["class","container-fluid"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Da)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Va)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Xa)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[["logsLink",2]],null,0,null,tr))],(function(t,e){var n=e.component;t(e,2,0,(null==n.healthData.health?null:n.healthData.health.status)||n.healthData.mon_status||n.healthData.osd_map||n.healthData.mgr_map||null!=n.healthData.hosts||null!=n.healthData.rgw||n.healthData.fs_map||null!=n.healthData.iscsi_daemons),t(e,4,0,n.healthData.client_perf||n.healthData.scrub_status),t(e,6,0,n.healthData.pools||n.healthData.df||n.healthData.pg_info)}),null)}function nr(t){return i["ɵvid"](0,[i["ɵpid"](0,Ut,[]),i["ɵpid"](0,oa,[ia.a]),i["ɵpid"](0,sa,[ia.a]),i["ɵpid"](0,ca,[ia.a]),i["ɵpid"](0,la,[ia.a]),i["ɵpid"](0,da,[]),i["ɵpid"](0,Qn.a,[ua.a]),i["ɵpid"](0,ta.a,[ua.a]),(t()(),i["ɵand"](16777216,null,null,2,null,er)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵpid"](131072,o.AsyncPipe,[i.ChangeDetectorRef])],(function(t,e){var n=e.component;t(e,9,0,i["ɵunv"](e,9,0,i["ɵnov"](e,10).transform(n.healthData&&n.enabledFeature$)))}),null)}class ar{constructor(t){this.refreshIntervalService=t,this.intervalList={"5 s":5e3,"10 s":1e4,"15 s":15e3,"30 s":3e4,"1 min":6e4,"3 min":18e4,"5 min":3e5},this.intervalKeys=Object.keys(this.intervalList)}ngOnInit(){this.selectedInterval=this.refreshIntervalService.getRefreshInterval()||5e3}changeRefreshInterval(t){this.refreshIntervalService.setRefreshInterval(t)}}var rr=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function or(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){var n=e.component;t(e,1,0,n.intervalList[e.context.$implicit]),t(e,2,0,n.intervalList[e.context.$implicit])}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function ir(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,12,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,11,"div",[["class","float-right d-inline-flex"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,1,"label",[["class","col-form-label my-0 mx-2"],["for","refreshInterval"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Refresh"])),(t()(),i["ɵeld"](5,0,null,null,8,"select",[["class","form-control custom-select"],["id","refreshInterval"],["name","refreshInterval"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"ngModelChange"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,6).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,6).onTouched()&&a),"change"===e&&(a=!1!==r.changeRefreshInterval(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.selectedInterval=n)&&a),a}),null,null)),i["ɵdid"](6,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](8,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](10,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](11,16384,null,0,K.h,[[8,null],K.a],null,null),(t()(),i["ɵand"](16777216,null,null,1,null,or)),i["ɵdid"](13,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,8,0,"refreshInterval",n.selectedInterval),t(e,13,0,n.intervalKeys)}),(function(t,e){t(e,5,0,i["ɵnov"](e,10).ngClassUntouched,i["ɵnov"](e,10).ngClassTouched,i["ɵnov"](e,10).ngClassPristine,i["ɵnov"](e,10).ngClassDirty,i["ɵnov"](e,10).ngClassValid,i["ɵnov"](e,10).ngClassInvalid,i["ɵnov"](e,10).ngClassPending,i["ɵnov"](e,11).validClass,i["ɵnov"](e,11).invalidClass)}))}class sr{constructor(){this.hasGrafana=!1}ngOnInit(){}}var cr=i["ɵcrt"]({encapsulation:0,styles:[["div[_ngcontent-%COMP%]{padding-top:20px}"]],data:{}});function lr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-health",[],null,null,null,nr,ya)),i["ɵdid"](5,245760,null,0,ba,[ga,ia.a,yt.a,ha.a,Le.a,ma,Qn.a,ta.a],null,null),(t()(),i["ɵeld"](6,0,null,0,1,"tab",[["heading","Statistics"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](7,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null)],(function(t,e){t(e,3,0,"Health"),t(e,5,0),t(e,7,0,"Statistics")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,6,0,i["ɵnov"](e,7).id,i["ɵnov"](e,7).active,i["ɵnov"](e,7).addClass)}))}function dr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-health",[],null,null,null,nr,ya)),i["ɵdid"](1,245760,null,0,ba,[ga,ia.a,yt.a,ha.a,Le.a,ma,Qn.a,ta.a],null,null)],(function(t,e){t(e,1,0)}),null)}function ur(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"cd-refresh-selector",[],null,null,null,ir,rr)),i["ɵdid"](2,114688,null,0,ar,[ma],null,null),(t()(),i["ɵand"](16777216,null,null,1,null,lr)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,dr)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0),t(e,4,0,n.hasGrafana),t(e,6,0,!n.hasGrafana)}),null)}function gr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-dashboard",[],null,null,null,ur,cr)),i["ɵdid"](1,114688,null,0,sr,[],null,null)],(function(t,e){t(e,1,0)}),null)}var fr=i["ɵccf"]("cd-dashboard",sr,gr,{},{},[]),pr=n("a278"),mr=n("insk"),hr=n("cUpR"),br=n("25BL"),yr=n("uIqm"),_r=n("NUGo"),Or=n("S7zO"),vr=n("DqMs"),Cr=n("/NlG");class Pr{constructor(t,e){this.cephReleaseNamePipe=t,this.summaryService=e}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/orchestrator/`,setTimeout(()=>{t.unsubscribe()},0)})}}var Mr=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function xr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["Orchestrator is not available. Please consult the "])),(t()(),i["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["documentation"])),(t()(),i["ɵted"](-1,0,[" on how to configure and enable the functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}let wr=(()=>{class t{constructor(t){this.http=t,this.url="api/orchestrator"}status(){return this.http.get(`${this.url}/status`)}identifyDevice(t,e,n){return this.http.post(`${this.url}/identify_device`,{hostname:t,device:e,duration:n})}inventoryList(t){const e=t?{params:(new J.h).set("hostname",t)}:{};return this.http.get(`${this.url}/inventory`,e)}inventoryDeviceList(t){return this.inventoryList(t).pipe(Object(bn.a)(t=>{const e=$.flatMap(t,t=>t.devices.map(e=>(e.hostname=t.name,e.uid=e.device_id?e.device_id:`${e.hostname}-${e.path}`,e)));return Object(fn.a)(e)}))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();var Tr=n("Rf2I"),Sr=n("x38r"),kr=n("vCyI");class Ir{constructor(t,e,n,a,r,o){this.authStorageService=t,this.dimlessBinary=e,this.i18n=n,this.modalService=a,this.notificationService=r,this.orchService=o,this.devices=[],this.hiddenColumns=[],this.filterColumns=["hostname","human_readable_type","available","sys_api.vendor","sys_api.model","sys_api.size"],this.selectionType=void 0,this.filterChange=new i.EventEmitter,this.fetchInventory=new i.EventEmitter,this.icons=ut.a,this.columns=[],this.selection=new kr.a}ngOnInit(){this.permission=this.authStorageService.getPermissions().osd,this.tableActions=[{permission:"update",icon:ut.a.show,click:()=>this.identifyDevice(),name:this.i18n("Identify"),disable:()=>!this.selection.hasSingleSelection,canBePrimary:t=>!t.hasSingleSelection,visible:()=>$.isString(this.selectionType)}];const t=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Device path"),prop:"path",flexGrow:1},{name:this.i18n("Type"),prop:"human_readable_type",flexGrow:1,cellTransformation:Sr.a.badge,customTemplateConfig:{map:{hdd:{value:"HDD",class:"badge-hdd"},ssd:{value:"SSD",class:"badge-ssd"}}}},{name:this.i18n("Available"),prop:"available",flexGrow:1},{name:this.i18n("Vendor"),prop:"sys_api.vendor",flexGrow:1},{name:this.i18n("Model"),prop:"sys_api.model",flexGrow:1},{name:this.i18n("Size"),prop:"sys_api.size",flexGrow:1,pipe:this.dimlessBinary},{name:this.i18n("OSDs"),prop:"osd_ids",flexGrow:1,cellTransformation:Sr.a.badge,customTemplateConfig:{class:"badge-dark",prefix:"osd."}}];this.columns=t.filter(t=>!this.hiddenColumns.includes(t.prop)),$.forEach(this.filterColumns,t=>{const e=$.find(this.columns,{prop:t});e&&(e.filterable=!0)}),this.fetchInventory.observers.length>0&&(this.fetchInventorySub=this.table.fetchData.subscribe(()=>{this.fetchInventory.emit()}))}ngOnDestroy(){this.fetchInventorySub&&this.fetchInventorySub.unsubscribe()}onColumnFiltersChanged(t){this.filterChange.emit(t)}updateSelection(t){this.selection=t}identifyDevice(){const t=this.selection.first(),e=t.hostname,n=t.path||t.device_id;this.modalService.show(Tr.a,{initialState:{titleText:this.i18n("Identify device {{device}}",{device:n}),message:this.i18n("Please enter the duration how long to blink the LED."),fields:[{type:"select",name:"duration",value:300,required:!0,options:[{text:this.i18n("1 minute"),value:60},{text:this.i18n("2 minutes"),value:120},{text:this.i18n("5 minutes"),value:300},{text:this.i18n("10 minutes"),value:600},{text:this.i18n("15 minutes"),value:900}]}],submitButtonText:this.i18n("Execute"),onSubmit:t=>{this.orchService.identifyDevice(e,n,t.duration).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n("Identifying '{{device}}' started on host '{{hostname}}'",{hostname:e,device:n}))})}}})}}var Nr=i["ɵcrt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px}.fa-stack[_ngcontent-%COMP%]{font-size:.79rem}.fa-stack[_ngcontent-%COMP%]   .fa-stack-1x[_ngcontent-%COMP%]{margin-left:8px;margin-top:5px}"]],data:{}});function Rr(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{table:0}),(t()(),i["ɵeld"](1,0,null,null,3,"cd-table",[["columnMode","flex"],["identifier","uid"]],null,[[null,"updateSelection"],[null,"columnFiltersChanged"]],(function(t,e,n){var a=!0,r=t.component;return"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),"columnFiltersChanged"===e&&(a=!1!==r.onColumnFiltersChanged(n)&&a),a}),br.b,br.a)),i["ɵdid"](2,2867200,[[1,4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],searchField:[3,"searchField"],autoReload:[4,"autoReload"],identifier:[5,"identifier"],forceIdentifier:[6,"forceIdentifier"],selectionType:[7,"selectionType"]},{updateSelection:"updateSelection",columnFiltersChanged:"columnFiltersChanged"}),(t()(),i["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](4,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.devices,n.columns,"flex",!1,!1,"uid",!0,n.selectionType),t(e,4,0,n.permission,n.selection,n.tableActions)}),null)}class Ar{constructor(t){this.orchService=t,this.icons=ut.a,this.hasOrchestrator=!1,this.devices=[]}ngOnInit(){this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available,t.available&&this.getInventory()})}ngOnChanges(){this.hasOrchestrator&&(this.devices=[],this.getInventory())}getInventory(){""!==this.hostname&&this.orchService.inventoryDeviceList(this.hostname).subscribe(t=>{this.devices=t},()=>{this.devices=[]})}refresh(){this.getInventory()}}var Er=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Dr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,xr,Mr)),i["ɵdid"](1,114688,null,0,Pr,[bt.a,ft.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Lr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Devices"])),(t()(),i["ɵeld"](3,0,null,null,4,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,3,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,2,"cd-inventory-devices",[["selectionType","single"]],null,[[null,"fetchInventory"]],(function(t,e,n){var a=!0;return"fetchInventory"===e&&(a=!1!==t.component.refresh()&&a),a}),Rr,Nr)),i["ɵdid"](6,245760,null,0,Ir,[yt.a,Qn.a,ia.a,Mt.b,gt.a,wr],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],selectionType:[2,"selectionType"]},{fetchInventory:"fetchInventory"}),i["ɵpad"](7,1)],(function(t,e){var n=e.component,a=n.devices,r=void 0===n.hostname?i["ɵEMPTY_ARRAY"]:t(e,7,0,"hostname");t(e,6,0,a,r,"single")}),null)}function qr(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Dr)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Lr)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,!n.hasOrchestrator),t(e,3,0,n.hasOrchestrator)}),null)}function jr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-inventory",[],null,null,null,qr,Er)),i["ɵdid"](1,638976,null,0,Ar,[wr],null,null)],(function(t,e){t(e,1,0)}),null)}var Fr=i["ɵccf"]("cd-inventory",Ar,jr,{hostname:"hostname"},{},[]);let zr=(()=>{class t{constructor(t){this.http=t,this.url="api/service"}list(t){const e=t?{params:(new J.h).set("service_name",t)}:{};return this.http.get(this.url,e)}getDaemons(t){return this.http.get(`${this.url}/${t}/daemons`)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})(),Gr=(()=>{class t{constructor(){}calculateAdditionalData(t){if(!t.life_expectancy_min||!t.life_expectancy_max)return t.state="unknown",t;const e=t=>!!Number.parseFloat(t),n=(t,n)=>t&&n&&e(t)&&e(n)?oe.duration(oe(t).diff(oe(n))).asWeeks():null,a=oe.duration(oe(oe.now()).diff(oe(t.life_expectancy_stamp))).asWeeks(),r=n(t.life_expectancy_max,t.life_expectancy_stamp),o=n(t.life_expectancy_min,t.life_expectancy_stamp);return t.state=a>1?"stale":null!==r&&r<=2?"bad":null!==o&&o<=4?"warning":"good",t.life_expectancy_weeks={max:null!==r?Math.round(r):null,min:null!==o?Math.round(o):null},t}readable(t){return t.readableDaemons=t.daemons.join(" "),t}prepareDevice(t){return this.readable(this.calculateAdditionalData(t))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})(),Br=(()=>{class t{constructor(t,e){this.http=t,this.deviceService=e,this.baseURL="api/host"}list(){return this.http.get(this.baseURL)}create(t){return this.http.post(this.baseURL,{hostname:t},{observe:"response"})}delete(t){return this.http.delete(`${this.baseURL}/${t}`,{observe:"response"})}getDevices(t){return this.http.get(`${this.baseURL}/${t}/devices`).pipe(Object(pe.a)(t=>t.map(t=>this.deviceService.prepareDevice(t))))}getSmartData(t){return this.http.get(`${this.baseURL}/${t}/smart`)}getDaemons(t){return this.http.get(`${this.baseURL}/${t}/daemons`)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"](Gr))},token:t,providedIn:me.a}),t})();class Vr{constructor(t,e,n,a){this.i18n=t,this.hostService=e,this.cephServiceService=n,this.orchService=a,this.daemons=[],this.columns=[],this.hasOrchestrator=!1}ngOnInit(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1,filterable:!0},{name:this.i18n("Daemon type"),prop:"daemon_type",flexGrow:1,filterable:!0},{name:this.i18n("Daemon ID"),prop:"daemon_id",flexGrow:1,filterable:!0},{name:this.i18n("Container ID"),prop:"container_id",flexGrow:3,filterable:!0,cellTransformation:Sr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Container Image name"),prop:"container_image_name",flexGrow:3,filterable:!0},{name:this.i18n("Container Image ID"),prop:"container_image_id",flexGrow:3,filterable:!0,cellTransformation:Sr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Version"),prop:"version",flexGrow:1,filterable:!0},{name:this.i18n("Status"),prop:"status",flexGrow:1,filterable:!0},{name:this.i18n("Status Description"),prop:"status_desc",flexGrow:1,filterable:!0},{name:this.i18n("Last Refreshed"),prop:"last_refresh",flexGrow:2}],this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available})}ngOnChanges(){$.isUndefined(this.daemonsTable)||this.daemonsTable.reloadData()}ngAfterViewInit(){this.daemonsTableTplsSub=this.daemonsTableTpls.changes.subscribe(t=>{this.daemonsTable=t.first})}ngOnDestroy(){this.daemonsTableTplsSub&&this.daemonsTableTplsSub.unsubscribe()}getDaemons(t){let e;if(this.hostname)e=this.hostService.getDaemons(this.hostname);else{if(!this.serviceName)return void(this.daemons=[]);e=this.cephServiceService.getDaemons(this.serviceName)}e.subscribe(t=>{this.daemons=t},()=>{this.daemons=[],t.error()})}}var Yr=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Hr(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,xr,Mr)),i["ɵdid"](1,114688,null,0,Pr,[bt.a,ft.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Ur(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table",[["columnMode","flex"]],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.getDaemons(n)&&a),a}),br.b,br.a)),i["ɵdid"](1,2867200,[[1,4],["daemonsTable",4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"]},{fetchData:"fetchData"})],(function(t,e){var n=e.component;t(e,1,0,n.daemons,n.columns,"flex",6e4)}),null)}function Wr(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{daemonsTableTpls:1}),(t()(),i["ɵand"](16777216,null,null,1,null,Hr)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ur)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,!n.hasOrchestrator),t(e,4,0,n.hasOrchestrator)}),null)}var Kr=n("sLuX"),$r=n("FSuO"),Zr=n("QC43"),Jr=n("XFyV");let Xr=(()=>{class t{constructor(t,e,n){this.http=t,this.i18n=e,this.deviceService=n,this.path="api/osd",this.osdRecvSpeedModalPriorities={KNOWN_PRIORITIES:[{name:null,text:this.i18n("-- Select the priority --"),values:{osd_max_backfills:null,osd_recovery_max_active:null,osd_recovery_max_single_start:null,osd_recovery_sleep:null}},{name:"low",text:this.i18n("Low"),values:{osd_max_backfills:1,osd_recovery_max_active:1,osd_recovery_max_single_start:1,osd_recovery_sleep:.5}},{name:"default",text:this.i18n("Default"),values:{osd_max_backfills:1,osd_recovery_max_active:3,osd_recovery_max_single_start:1,osd_recovery_sleep:0}},{name:"high",text:this.i18n("High"),values:{osd_max_backfills:4,osd_recovery_max_active:4,osd_recovery_max_single_start:4,osd_recovery_sleep:0}}]}}create(t){const e={method:"drive_groups",data:t,tracking_id:$.join($.map(t,"service_id"),", ")};return this.http.post(this.path,e,{observe:"response"})}getList(){return this.http.get(`${this.path}`)}getDetails(t){return this.http.get(`${this.path}/${t}`)}getSmartData(t){return this.http.get(`${this.path}/${t}/smart`)}scrub(t,e){return this.http.post(`${this.path}/${t}/scrub?deep=${e}`,null)}getFlags(){return this.http.get(`${this.path}/flags`)}updateFlags(t){return this.http.put(`${this.path}/flags`,{flags:t})}markOut(t){return this.http.post(`${this.path}/${t}/mark_out`,null)}markIn(t){return this.http.post(`${this.path}/${t}/mark_in`,null)}markDown(t){return this.http.post(`${this.path}/${t}/mark_down`,null)}reweight(t,e){return this.http.post(`${this.path}/${t}/reweight`,{weight:e})}update(t,e){return this.http.put(`${this.path}/${t}`,{device_class:e})}markLost(t){return this.http.post(`${this.path}/${t}/mark_lost`,null)}purge(t){return this.http.post(`${this.path}/${t}/purge`,null)}destroy(t){return this.http.post(`${this.path}/${t}/destroy`,null)}delete(t,e){const n=e?{params:(new J.h).set("force","true")}:{};return n.observe="response",this.http.delete(`${this.path}/${t}`,n)}safeToDestroy(t){return this.http.get(`${this.path}/safe_to_destroy?ids=${t}`)}safeToDelete(t){return this.http.get(`${this.path}/safe_to_delete?svc_ids=${t}`)}getDevices(t){return this.http.get(`${this.path}/${t}/devices`).pipe(Object(pe.a)(t=>t.map(t=>this.deviceService.prepareDevice(t))))}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"](ia.a),i["ɵɵinject"](Gr))},token:t,providedIn:me.a}),t})();class Qr{constructor(t,e,n){this.i18n=t,this.osdService=e,this.hostService=n,this.osdId=null,this.hostname=null,this.loading=!1,this.incompatible=!1,this.error=!1,this.data={}}isSmartError(t){return void 0!==$.get(t,"error")}isNvmeSmartData(t){return"nvme"===$.get(t,"device.protocol","").toLowerCase()}isHddSmartData(t){return"ata"===$.get(t,"device.protocol","").toLowerCase()}fetchData(t){const e={};$.each(t,(t,n)=>{if(this.isSmartError(t)){let a="";return a=this.i18n(-22===t.smartctl_error_code?"Smartctl has received an unknown argument (error code {{code}}). You may be using an incompatible version of smartmontools. Version >= 7.0 of smartmontools is required to successfully retrieve data.":"An error with error code {{code}} occurred.",{code:t.smartctl_error_code}),void(e[n]={error:t.error,smartctl_error_code:t.smartctl_error_code,smartctl_output:t.smartctl_output,userMessage:a,device:t.dev,identifier:t.nvme_vendor})}1!==t.json_format_version[0]?this.incompatible=!0:this.isHddSmartData(t)?e[n]=this.extractHddData(t):this.isNvmeSmartData(t)&&(e[n]=this.extractNvmeData(t))}),this.data=e,this.loading=!1}extractNvmeData(t){return{info:$.omitBy(t,(t,e)=>["nvme_smart_health_information_log"].includes(e)),smart:{nvmeData:t.nvme_smart_health_information_log},device:t.device.name,identifier:t.serial_number}}extractHddData(t){const e=$.omitBy(t,(t,e)=>["ata_smart_attributes","ata_smart_selective_self_test_log","ata_smart_data"].includes(e));return{info:e,smart:{attributes:t.ata_smart_attributes,data:t.ata_smart_data},device:e.device.name,identifier:e.serial_number}}updateData(){this.loading=!0,null!==this.osdId?this.osdService.getSmartData(this.osdId).subscribe(this.fetchData.bind(this),t=>{t.preventDefault(),this.error=t,this.loading=!1}):null!==this.hostname&&this.hostService.getSmartData(this.hostname).subscribe(this.fetchData.bind(this),t=>{t.preventDefault(),this.error=t,this.loading=!1})}ngOnInit(){this.smartDataColumns=[{prop:"id",name:this.i18n("ID")},{prop:"name",name:this.i18n("Name")},{prop:"raw.value",name:this.i18n("Raw")},{prop:"thresh",name:this.i18n("Threshold")},{prop:"value",name:this.i18n("Value")},{prop:"when_failed",name:this.i18n("When Failed")},{prop:"worst",name:this.i18n("Worst")}]}ngOnChanges(t){this.data={},t.osdId?this.osdId=t.osdId.currentValue:t.hostname&&(this.hostname=t.hostname.currentValue),this.updateData()}}var to=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function eo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["Failed to retrieve SMART data."]))],(function(t,e){t(e,1,0,"error")}),null)}function no(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["The data received has the JSON format version 2.x and is currently incompatible with the dashboard."]))],(function(t,e){t(e,1,0,"warning")}),null)}function ao(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["No SMART data available."]))],(function(t,e){t(e,1,0,"info")}),null)}function ro(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"cd-alert-panel",[["id","alert-error"],["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](2,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](3,0,["",""]))],(function(t,e){t(e,2,0,"warning")}),(function(t,e){t(e,3,0,e.parent.context.$implicit.value.userMessage)}))}function oo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"cd-alert-panel",[["id","alert-self-test-passed"],["size","slim"],["title","SMART overall-health self-assessment test result"],["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](2,114688,null,0,Cr.a,[ia.a],{title:[0,"title"],type:[1,"type"],size:[2,"size"]},null),(t()(),i["ɵted"](-1,0,["passed"]))],(function(t,e){t(e,2,0,"SMART overall-health self-assessment test result","info","slim")}),null)}function io(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["id","alert-self-test-failed"],["size","slim"],["title","SMART overall-health self-assessment test result"],["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{title:[0,"title"],type:[1,"type"],size:[2,"size"]},null),(t()(),i["ɵted"](-1,0,["failed"]))],(function(t,e){t(e,1,0,"SMART overall-health self-assessment test result","warning","slim")}),null)}function so(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table",[["updateSelectionOnRefresh","never"]],null,null,null,br.b,br.a)),i["ɵdid"](1,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],updateSelectionOnRefresh:[2,"updateSelectionOnRefresh"]},null)],(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.smart.attributes.table,e.component.smartDataColumns,"never")}),null)}function co(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table-key-value",[["updateSelectionOnRefresh","never"]],null,null,null,Kr.b,Kr.a)),i["ɵdid"](1,638976,null,0,$r.a,[se.a],{data:[0,"data"],renderObjects:[1,"renderObjects"]},null)],(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.smart.nvmeData,!0)}),null)}function lo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["No SMART data available for this device."]))],(function(t,e){t(e,1,0,"info")}),null)}function uo(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,oo)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["selfTestFailed",2]],null,0,null,io)),(t()(),i["ɵeld"](3,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](4,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](5,0,null,0,3,"tab",[["heading","Device Information"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](6,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](7,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](8,638976,null,0,$r.a,[se.a],{data:[0,"data"],renderObjects:[1,"renderObjects"]},null),(t()(),i["ɵeld"](9,0,null,0,7,"tab",[["heading","SMART"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](10,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,so)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,co)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,lo)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.parent.context.$implicit.value.info.smart_status.passed,i["ɵnov"](e,2)),t(e,6,0,"Device Information"),t(e,8,0,e.parent.context.$implicit.value.info,!0),t(e,10,0,"SMART"),t(e,12,0,e.parent.context.$implicit.value.smart.attributes),t(e,14,0,e.parent.context.$implicit.value.smart.nvmeData),t(e,16,0,!e.parent.context.$implicit.value.smart.attributes&&!e.parent.context.$implicit.value.smart.nvmeData)}),(function(t,e){t(e,3,0,i["ɵnov"](e,4).clazz),t(e,5,0,i["ɵnov"](e,6).id,i["ɵnov"](e,6).active,i["ɵnov"](e,6).addClass),t(e,9,0,i["ɵnov"](e,10).id,i["ɵnov"](e,10).active,i["ɵnov"](e,10).addClass)}))}function go(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,4,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ro)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["noError",2]],null,0,null,uo))],(function(t,e){t(e,3,0,e.context.$implicit.value.device+" ("+e.context.$implicit.value.identifier+")"),t(e,5,0,e.context.$implicit.value.error,i["ɵnov"](e,6))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function fo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,ao)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers]),(t()(),i["ɵand"](16777216,null,null,2,null,go)),i["ɵdid"](5,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers]),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,!i["ɵunv"](e,2,0,i["ɵnov"](e,3).transform(n.data)).length),t(e,5,0,i["ɵunv"](e,5,0,i["ɵnov"](e,6).transform(n.data)))}),null)}function po(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,eo)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,no)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,fo)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.error),t(e,4,0,n.incompatible),t(e,6,0,!n.error&&!n.incompatible)}),null)}function mo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Zr.b,Zr.a)),i["ɵdid"](1,49152,null,0,Jr.a,[],null,null),(t()(),i["ɵted"](-1,0,["SMART data is loading."]))],null,null)}function ho(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,po)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["isLoading",2]],null,0,null,mo))],(function(t,e){t(e,1,0,!e.component.loading,i["ɵnov"](e,2))}),null)}class bo{constructor(t,e,n,a){this.hostService=t,this.i18n=e,this.datePipe=n,this.osdService=a,this.hostname="",this.osdId=null,this.devices=null,this.columns=[],this.translationMapping={"=1":"# week",other:"# weeks"}}ngOnInit(){const t=t=>this.devices=t;this.hostname?this.hostService.getDevices(this.hostname).subscribe(t):null!==this.osdId&&this.osdService.getDevices(this.osdId).subscribe(t),this.columns=[{prop:"devid",name:this.i18n("Device ID"),minWidth:200},{prop:"state",name:this.i18n("State of Health"),flexGrow:1,cellTransformation:Sr.a.badge,customTemplateConfig:{map:{good:{value:this.i18n("Good"),class:"badge-success"},warning:{value:this.i18n("Warning"),class:"badge-warning"},bad:{value:this.i18n("Bad"),class:"badge-danger"},stale:{value:this.i18n("Stale"),class:"badge-info"},unknown:{value:this.i18n("Unknown"),class:"badge-dark"}}}},{prop:"life_expectancy_weeks",name:this.i18n("Life Expectancy"),cellTemplate:this.lifeExpectancyTemplate},{prop:"life_expectancy_stamp",name:this.i18n("Prediction Creation Date"),cellTemplate:this.lifeExpectancyTimestampTemplate,pipe:this.datePipe,isHidden:!0},{prop:"location",name:this.i18n("Device Name"),cellTemplate:this.locationTemplate},{prop:"readableDaemons",name:this.i18n("Daemons")}]}}var yo=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _o(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table",[],null,null,null,br.b,br.a)),i["ɵdid"](1,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.devices,n.columns)}),null)}function Oo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["Neither hostname nor OSD ID given"]))],(function(t,e){t(e,1,0,"warning")}),null)}function vo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.$implicit.dev)}))}function Co(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,vo)),i["ɵdid"](1,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function Po(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["> ",""])),i["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=i["ɵunv"](e,1,0,t(e,2,0,i["ɵnov"](e.parent.parent,0),e.parent.context.value.min,n.translationMapping));t(e,1,0,a)}))}function Mo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["< ",""])),i["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=i["ɵunv"](e,1,0,t(e,2,0,i["ɵnov"](e.parent.parent,0),e.parent.context.value.max,n.translationMapping));t(e,1,0,a)}))}function xo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[""," to ",""])),i["ɵppd"](2,2)],null,(function(t,e){var n=e.component,a=e.parent.context.value.min,r=i["ɵunv"](e,1,1,t(e,2,0,i["ɵnov"](e.parent.parent,0),e.parent.context.value.max,n.translationMapping));t(e,1,0,a,r)}))}function wo(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Po)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Mo)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,xo)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value.min&&!e.context.value.max),t(e,3,0,e.context.value.max&&!e.context.value.min),t(e,5,0,e.context.value.max&&e.context.value.min)}),null)}function To(t){return i["ɵvid"](0,[(t()(),i["ɵted"](0,null,[" ","\n"]))],null,(function(t,e){t(e,0,0,e.context.value)}))}function So(t){return i["ɵvid"](0,[i["ɵpid"](0,o.I18nPluralPipe,[o.NgLocalization]),i["ɵqud"](402653184,1,{locationTemplate:0}),i["ɵqud"](402653184,2,{lifeExpectancyTemplate:0}),i["ɵqud"](402653184,3,{lifeExpectancyTimestampTemplate:0}),(t()(),i["ɵand"](16777216,null,null,1,null,_o)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Oo)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[[1,2],["deviceLocation",2]],null,0,null,Co)),(t()(),i["ɵand"](0,[[2,2],["lifeExpectancy",2]],null,0,null,wo)),(t()(),i["ɵand"](0,[[3,2],["lifeExpectancyTimestamp",2]],null,0,null,To))],(function(t,e){var n=e.component;t(e,5,0,n.hostname||null!==n.osdId),t(e,7,0,""===n.hostname&&null===n.osdId)}),null)}n("jKX/");class ko{get selectedHostname(){return this.selection.hasSelection?this.selection.first().hostname:null}constructor(){}}var Io=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function No(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Inventory"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-inventory",[],null,null,null,qr,Er)),i["ɵdid"](3,638976,null,0,Ar,[wr],{hostname:[0,"hostname"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Inventory"),t(e,3,0,n.selectedHostname)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function Ro(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Daemons"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-service-daemon-list",[],null,null,null,Wr,Yr)),i["ɵdid"](3,4964352,null,0,Vr,[ia.a,Br,zr,wr],{hostname:[0,"hostname"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Daemons"),t(e,3,0,n.selectedHostname)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function Ao(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","rtOg0AiWz"]],null,null,null,pr.b,pr.a)),i["ɵdid"](3,638976,null,0,mr.a,[ft.a,hr.b,$t.a,bt.a,ia.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"host-details?var-ceph_hosts="+n.selectedHostname,"three","rtOg0AiWz")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function Eo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-smart-list",[],null,null,null,ho,to)),i["ɵdid"](1,638976,null,0,Qr,[ia.a,Xr,Br],{hostname:[0,"hostname"]},null)],(function(t,e){t(e,1,0,e.component.selectedHostname)}),null)}function Do(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,15,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,[[1,4]],0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Devices"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-device-list",[],null,null,null,So,yo)),i["ɵdid"](5,114688,null,0,bo,[Br,ia.a,o.DatePipe,Xr],{hostname:[0,"hostname"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,No)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ro)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Ao)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](12,0,null,0,3,"tab",[["heading","Device health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](13,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Eo)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Devices"),t(e,5,0,n.selection.first().hostname),t(e,7,0,n.permissions.hosts.read),t(e,9,0,n.permissions.hosts.read),t(e,11,0,n.permissions.grafana.read),t(e,13,0,"Device health"),t(e,15,0,n.selectedHostname,i["ɵnov"](e.parent,3))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,12,0,i["ɵnov"](e,13).id,i["ɵnov"](e,13).active,i["ɵnov"](e,13).addClass)}))}function Lo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["No hostname found."]))],(function(t,e){t(e,1,0,"error")}),null)}function qo(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{tabsetChild:0}),(t()(),i["ɵand"](16777216,null,null,1,null,Do)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[["noHostname",2]],null,0,null,Lo))],(function(t,e){t(e,2,0,e.component.selection.hasSingleSelection)}),null)}var jo=n("EgGo"),Fo=n("0+/T"),zo=n("kvvV"),Go=n("85J/");class Bo{constructor(t){this.bsModalRef=t}ngOnInit(){}onSubmit(){this.bsModalRef.hide()}}let Vo=(()=>{class t{constructor(t,e){this.orchService=t,this.modalService=e}checkOrchestratorOrModal(t,e,n){this.orchService.status().subscribe(a=>{a.available?n():this.modalService.show(Bo,{initialState:{actionDescription:t,itemDescription:e}})})}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](wr),i["ɵɵinject"](Mt.b))},token:t,providedIn:"root"}),t})();var Yo=n("kn/O");const Ho=new jo.a("hosts");class Uo{constructor(t,e,n,a,r,o,i,s,c,l){this.authStorageService=t,this.hostService=e,this.cephShortVersionPipe=n,this.i18n=a,this.urlBuilder=r,this.actionLabels=o,this.modalService=i,this.taskWrapper=s,this.router=c,this.depCheckerService=l,this.columns=[],this.hosts=[],this.isLoadingHosts=!1,this.cdParams={fromLink:"/hosts"},this.selection=new kr.a,this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.CREATE,permission:"create",icon:ut.a.add,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.CREATE,this.i18n("Host"),()=>{this.router.navigate([this.urlBuilder.getCreate()])})}},{name:this.actionLabels.DELETE,permission:"delete",icon:ut.a.destroy,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.DELETE,this.i18n("Host"),()=>this.deleteHostModal())},disable:()=>!this.selection.hasSelection}]}ngOnInit(){this.columns=[{name:this.i18n("Hostname"),prop:"hostname",flexGrow:1},{name:this.i18n("Services"),prop:"services",flexGrow:3,cellTemplate:this.servicesTpl},{name:this.i18n("Version"),prop:"ceph_version",flexGrow:1,pipe:this.cephShortVersionPipe}]}updateSelection(t){this.selection=t}deleteHostModal(){const t=this.selection.first().hostname;this.modalRef=this.modalService.show(Fo.a,{initialState:{itemDescription:"Host",itemNames:[t],actionDescription:"delete",submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new zo.a("host/delete",{hostname:t}),call:this.hostService.delete(t)})}})}getHosts(t){if(this.isLoadingHosts)return;const e={mds:"cephfs",mon:"monitor",osd:"osd",rgw:"rgw","rbd-mirror":"rbdMirroring",mgr:"manager","tcmu-runner":"iscsi"};this.isLoadingHosts=!0,this.hostService.list().subscribe(t=>{t.map(t=>(t.services.map(t=>{t.cdLink=`/perf_counters/${t.type}/${encodeURIComponent(t.id)}`;const n=this.permissions[e[t.type]];return t.canRead=!!n&&n.read,t}),t)),this.hosts=t,this.isLoadingHosts=!1},()=>{this.isLoadingHosts=!1,t.error()})}}var Wo=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ko(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"a",[["class","service-link"]],[[1,"target",0],[8,"href",4]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,1).onClick(n.button,n.ctrlKey,n.metaKey,n.shiftKey)&&a),a}),null,null)),i["ɵdid"](1,671744,null,0,St.p,[St.m,St.a,o.LocationStrategy],{queryParams:[0,"queryParams"],routerLink:[1,"routerLink"]},null),i["ɵpad"](2,1),(t()(),i["ɵted"](3,null,["","."," "]))],(function(t,e){var n=e.component.cdParams,a=t(e,2,0,e.parent.context.$implicit.cdLink);t(e,1,0,n,a)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).target,i["ɵnov"](e,1).href),t(e,3,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)}))}function $o(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ","."," "]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.type,e.parent.context.$implicit.id)}))}function Zo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"span",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Ko)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,$o)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵted"](5,null,[" "," "]))],(function(t,e){t(e,2,0,e.context.$implicit.canRead),t(e,4,0,!e.context.$implicit.canRead)}),(function(t,e){t(e,5,0,e.context.last?"":", ")}))}function Jo(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Zo)),i["ɵdid"](1,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function Xo(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","two"],["uid","y0KGL0iZz"]],null,null,null,pr.b,pr.a)),i["ɵdid"](3,638976,null,0,mr.a,[ft.a,hr.b,$t.a,bt.a,ia.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"host-overview?","two","y0KGL0iZz")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function Qo(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{servicesTpl:0}),(t()(),i["ɵeld"](1,0,null,null,13,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](2,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](3,0,null,0,9,"tab",[["heading","Hosts List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](4,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](5,0,null,null,7,"cd-table",[["columnMode","flex"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getHosts(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](6,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],selectionType:[3,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](7,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,1,"cd-table-actions",[["class","btn-group"],["id","host-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](9,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵand"](0,[[1,2],["servicesTpl",2]],null,0,null,Jo)),(t()(),i["ɵeld"](11,0,null,3,1,"cd-host-details",[["cdTableDetail",""]],null,null,null,qo,Io)),i["ɵdid"](12,49152,null,0,ko,[],{permissions:[0,"permissions"],selection:[1,"selection"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Xo)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,"Hosts List"),t(e,6,0,n.hosts,n.columns,"flex","single"),t(e,9,0,n.permissions.hosts,n.selection,n.tableActions),t(e,12,0,n.permissions,n.selection),t(e,14,0,n.permissions.grafana.read)}),(function(t,e){t(e,1,0,i["ɵnov"](e,2).clazz),t(e,3,0,i["ɵnov"](e,4).id,i["ɵnov"](e,4).active,i["ɵnov"](e,4).addClass)}))}function ti(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-hosts",[],null,null,null,Qo,Wo)),i["ɵprd"](256,null,jo.a,Ho,[]),i["ɵdid"](2,114688,null,0,Uo,[yt.a,Br,Go.a,ia.a,jo.a,vt.b,Mt.b,Yo.a,St.m,Vo],null,null)],(function(t,e){t(e,2,0)}),null)}var ei=i["ɵccf"]("cd-hosts",Uo,ti,{},{},[]),ni=n("mXUL"),ai=n("IZUe"),ri=n("gp3X"),oi=n("sb0X"),ii=n("KVJa"),si=n("Z21x"),ci=n("8xTl"),li=n("QFaf"),di=n("1Ni5");class ui{constructor(t,e,n,a,r){this.router=t,this.i18n=e,this.actionLabels=n,this.hostService=a,this.taskWrapper=r,this.loading=!0,this.resource=this.i18n("host"),this.action=this.actionLabels.CREATE,this.createForm()}ngOnInit(){this.hostService.list().subscribe(t=>{this.hostnames=t.map(t=>t.hostname),this.loading=!1})}createForm(){this.hostForm=new li.a({hostname:new W.i("",{validators:[W.B.required,di.a.custom("uniqueName",t=>this.hostnames&&-1!==this.hostnames.indexOf(t))]})})}submit(){const t=this.hostForm.get("hostname").value;this.taskWrapper.wrapTaskAroundCall({task:new zo.a("host/"+vt.e.CREATE,{hostname:t}),call:this.hostService.create(t)}).subscribe(void 0,()=>{this.hostForm.setErrors({cdSubmitButton:!0})},()=>{this.router.navigate(["/hosts"])})}}var gi=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function fi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Zr.b,Zr.a)),i["ɵdid"](1,49152,null,0,Jr.a,[],null,null),(t()(),i["ɵted"](-1,0,["Loading..."]))],null,null)}function pi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function mi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The chosen hostname is already in use."]))],null,null)}function hi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,39,"form",[["name","hostForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,2).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,2).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,5).onSubmit()&&a),a}),null,null)),i["ɵdid"](1,16384,null,0,W.G,[],null,null),i["ɵdid"](2,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](4,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](5,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](6,0,null,null,33,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](8,null,[""," ",""])),i["ɵppd"](9,1),i["ɵppd"](10,1),(t()(),i["ɵeld"](11,0,null,null,19,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](13,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","hostname"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Hostname"])),(t()(),i["ɵeld"](18,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,7,"input",[["autofocus",""],["class","form-control"],["formControlName","hostname"],["id","hostname"],["name","hostname"],["placeholder","mon-123"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](20,4210688,null,0,ai.a,[i.ElementRef],{autofocus:[0,"autofocus"]},null),i["ɵdid"](21,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](23,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](25,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](26,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,pi)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,mi)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](31,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](32,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](33,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ri.b,ri.a)),i["ɵdid"](34,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](35,0,[""," ",""])),i["ɵppd"](36,1),i["ɵppd"](37,1),(t()(),i["ɵeld"](38,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](39,49152,null,0,si.a,[o.Location,vt.b],null,null)],(function(t,e){var n=e.component;t(e,2,0,n.hostForm),t(e,5,0,n.hostForm),t(e,13,0),t(e,20,0,""),t(e,23,0,"hostname"),t(e,26,0,"hostname"),t(e,28,0,n.hostForm.showError("hostname",i["ɵnov"](e,2),"required")),t(e,30,0,n.hostForm.showError("hostname",i["ɵnov"](e,2),"uniqueName")),t(e,34,0,i["ɵnov"](e,2))}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,4).ngClassUntouched,i["ɵnov"](e,4).ngClassTouched,i["ɵnov"](e,4).ngClassPristine,i["ɵnov"](e,4).ngClassDirty,i["ɵnov"](e,4).ngClassValid,i["ɵnov"](e,4).ngClassInvalid,i["ɵnov"](e,4).ngClassPending);var a=i["ɵunv"](e,8,0,t(e,9,0,i["ɵnov"](e.parent,0),n.action)),r=i["ɵunv"](e,8,1,t(e,10,0,i["ɵnov"](e.parent,1),n.resource));t(e,8,0,a,r),t(e,12,0,i["ɵnov"](e,13).hasErrors,i["ɵnov"](e,13).hasSuccess),t(e,19,0,i["ɵnov"](e,25).ngClassUntouched,i["ɵnov"](e,25).ngClassTouched,i["ɵnov"](e,25).ngClassPristine,i["ɵnov"](e,25).ngClassDirty,i["ɵnov"](e,25).ngClassValid,i["ɵnov"](e,25).ngClassInvalid,i["ɵnov"](e,25).ngClassPending,i["ɵnov"](e,26).validClass,i["ɵnov"](e,26).invalidClass);var o=i["ɵunv"](e,35,0,t(e,36,0,i["ɵnov"](e.parent,0),n.action)),s=i["ɵunv"](e,35,1,t(e,37,0,i["ɵnov"](e.parent,1),n.resource));t(e,35,0,o,s)}))}function bi(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),(t()(),i["ɵand"](16777216,null,null,1,null,fi)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](4,0,null,null,2,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,hi)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.loading),t(e,6,0,!n.loading)}),null)}function yi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-host-form",[],null,null,null,bi,gi)),i["ɵdid"](1,114688,null,0,ui,[St.m,ia.a,vt.b,Br,Yo.a],null,null)],(function(t,e){t(e,1,0)}),null)}var _i=i["ɵccf"]("cd-host-form",ui,yi,{},{},[]);let Oi=(()=>{class t{constructor(t){this.http=t}getMonitor(){return this.http.get("api/monitor")}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();class vi{constructor(t,e){this.monitorService=t,this.i18n=e,this.inQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:Sr.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")},{prop:"cdOpenSessions",name:this.i18n("Open Sessions"),cellTransformation:Sr.a.sparkline,comparator:(t,e)=>{const n=$.last(t),a=$.last(e);return n&&a&&n!==a?n>a?1:-1:0}}],data:[]},this.notInQuorum={columns:[{prop:"name",name:this.i18n("Name"),cellTransformation:Sr.a.routerLink},{prop:"rank",name:this.i18n("Rank")},{prop:"public_addr",name:this.i18n("Public Address")}],data:[]}}refresh(){this.monitorService.getMonitor().subscribe(t=>{t.in_quorum.map(t=>(t.cdOpenSessions=t.stats.num_sessions.map(t=>t[1]),t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t)),t.out_quorum.map(t=>(t.cdLink="/perf_counters/mon/"+t.name,t.cdParams={fromLink:"/monitor"},t)),this.inQuorum.data=[...t.in_quorum],this.notInQuorum.data=[...t.out_quorum],this.mon_status=t.mon_status})}}var Ci=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Pi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,35,"table",[["class","table table-striped"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Cluster ID"])),(t()(),i["ɵeld"](4,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](5,null,["",""])),(t()(),i["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["monmap modified"])),(t()(),i["ɵeld"](9,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](10,null,["",""])),(t()(),i["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["monmap epoch"])),(t()(),i["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](15,null,["",""])),(t()(),i["ɵeld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["quorum con"])),(t()(),i["ɵeld"](19,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](20,null,["",""])),(t()(),i["ɵeld"](21,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["quorum mon"])),(t()(),i["ɵeld"](24,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](25,null,["",""])),(t()(),i["ɵeld"](26,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](27,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["required con"])),(t()(),i["ɵeld"](29,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](30,null,["",""])),(t()(),i["ɵeld"](31,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](32,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["required mon"])),(t()(),i["ɵeld"](34,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](35,null,["",""]))],null,(function(t,e){var n=e.component;t(e,5,0,n.mon_status.monmap.fsid),t(e,10,0,n.mon_status.monmap.modified),t(e,15,0,n.mon_status.monmap.epoch),t(e,20,0,n.mon_status.features.quorum_con),t(e,25,0,n.mon_status.features.quorum_mon),t(e,30,0,n.mon_status.features.required_con),t(e,35,0,n.mon_status.features.required_mon)}))}function Mi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,15,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,5,"div",[["class","col-lg-4"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,4,"fieldset",[],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,1,"legend",[["class","cd-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Status"])),(t()(),i["ɵand"](16777216,null,null,1,null,Pi)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](7,0,null,null,8,"div",[["class","col-lg-8"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,1,"legend",[["class","in-quorum cd-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["In Quorum"])),(t()(),i["ɵeld"](10,0,null,null,1,"cd-table",[],null,null,null,br.b,br.a)),i["ɵdid"](11,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},null),(t()(),i["ɵeld"](12,0,null,null,1,"legend",[["class","in-quorum cd-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Not In Quorum"])),(t()(),i["ɵeld"](14,0,null,null,1,"cd-table",[],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a}),br.b,br.a)),i["ɵdid"](15,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"]},{fetchData:"fetchData"})],(function(t,e){var n=e.component;t(e,6,0,n.mon_status),t(e,11,0,n.inQuorum.data,n.inQuorum.columns),t(e,15,0,n.notInQuorum.data,n.notInQuorum.columns)}),null)}function xi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-monitor",[],null,null,null,Mi,Ci)),i["ɵdid"](1,49152,null,0,vi,[Oi,ia.a],null,null)],null,null)}var wi=i["ɵccf"]("cd-monitor",vi,xi,{},{},[]);class Ti{constructor(){}ngOnInit(){}}var Si=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function ki(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,[[1,4]],0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Daemons"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-service-daemon-list",[],null,null,null,Wr,Yr)),i["ɵdid"](5,4964352,null,0,Vr,[ia.a,Br,zr,wr],{serviceName:[0,"serviceName"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Daemons"),t(e,5,0,n.selection.first().service_name)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function Ii(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{tabsetChild:0}),(t()(),i["ɵand"](16777216,null,null,1,null,ki)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,e.component.selection.hasSingleSelection)}),null)}class Ni{constructor(t,e,n,a){this.authStorageService=t,this.i18n=e,this.orchService=n,this.cephServiceService=a,this.hiddenColumns=[],this.checkingOrchestrator=!0,this.hasOrchestrator=!1,this.columns=[],this.services=[],this.isLoadingServices=!1,this.selection=new kr.a,this.permissions=this.authStorageService.getPermissions()}ngOnInit(){const t=[{name:this.i18n("Service"),prop:"service_name",flexGrow:1},{name:this.i18n("Container image name"),prop:"status.container_image_name",flexGrow:3},{name:this.i18n("Container image ID"),prop:"status.container_image_id",flexGrow:3,cellTransformation:Sr.a.truncate,customTemplateConfig:{length:12}},{name:this.i18n("Running"),prop:"status.running",flexGrow:1},{name:this.i18n("Size"),prop:"status.size",flexGrow:1},{name:this.i18n("Last Refreshed"),prop:"status.last_refresh",flexGrow:1}];this.columns=t.filter(t=>!this.hiddenColumns.includes(t.prop)),this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available})}ngOnChanges(){this.hasOrchestrator&&(this.services=[],this.table.reloadData())}updateSelection(t){this.selection=t}getServices(t){this.isLoadingServices||(this.isLoadingServices=!0,this.cephServiceService.list().subscribe(t=>{this.services=t,this.isLoadingServices=!1},()=>{this.isLoadingServices=!1,this.services=[],t.error()}))}}var Ri=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ai(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,xr,Mr)),i["ɵdid"](1,114688,null,0,Pr,[bt.a,ft.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Ei(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","service_name"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getServices(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](2,2867200,[[1,4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],forceIdentifier:[5,"forceIdentifier"],selectionType:[6,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](3,0,null,3,1,"cd-service-details",[["cdTableDetail",""]],null,null,null,Ii,Si)),i["ɵdid"](4,114688,null,0,Ti,[],{permissions:[0,"permissions"],selection:[1,"selection"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.services,n.columns,"flex",6e4,"service_name","true","single"),t(e,4,0,n.permissions,n.selection)}),null)}function Di(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{table:0}),(t()(),i["ɵand"](16777216,null,null,1,null,Ai)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ei)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,!n.hasOrchestrator),t(e,4,0,n.hasOrchestrator)}),null)}function Li(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-services",[],null,null,null,Di,Ri)),i["ɵdid"](1,638976,null,0,Ni,[yt.a,ia.a,wr,zr],null,null)],(function(t,e){t(e,1,0)}),null)}var qi=i["ɵccf"]("cd-services",Ni,Li,{hostname:"hostname",hiddenColumns:"hiddenColumns"},{},[]),ji=n("xSw7"),Fi=n("GgAd"),zi=n("FFMq"),Gi=n("j8L6"),Bi=n("b5OY"),Vi=n("pxLl");class Yi{constructor(){this.last={}}ngOnChanges(){this.render()}hexdigits(t){const e=Math.floor(255*t).toString(16);return 1===e.length?"0"+e:e}hexcolor(t,e,n){return"#"+this.hexdigits(t)+this.hexdigits(e)+this.hexdigits(n)}render(){if(!this.histogram)return;let t=0;$.each(this.histogram.values,(e,n)=>{$.each(e,(e,a)=>{let r;r=this.last&&this.last[n]&&this.last[n][a]?e-this.last[n][a]:e,t=Math.max(t,r)})}),this.valuesStyle=this.histogram.values.map((e,n)=>e.map((e,a)=>{const r=t?(this.last&&this.last[n]&&this.last[n][a]?e-this.last[n][a]:e)/t:0;return{backgroundColor:this.hexcolor(1-r,r,0)}})),this.last=this.histogram.values}}var Hi=i["ɵcrt"]({encapsulation:0,styles:[["table[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]{height:10px}table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{width:10px;height:10px}"]],data:{}});function Ui(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgStyleImpl"],o["ɵNgStyleR2Impl"],[i.ElementRef,i.KeyValueDiffers,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgStyle,[o["ɵNgStyleImpl"]],{ngStyle:[0,"ngStyle"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function Wi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"tr",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Ui)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.context.$implicit)}),null)}function Ki(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"table",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Wi)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.valuesStyle)}),null)}class $i{constructor(t,e){this.osdService=t,this.authStorageService=e,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.osd={loaded:!1},this.selection.hasSelection&&(this.osd=this.selection.first(),this.refresh())}refresh(){this.osdService.getDetails(this.osd.id).subscribe(t=>{this.osd.details=t,this.osd.histogram_failed="",$.isObject(t.histogram)||(this.osd.histogram_failed=t.histogram,this.osd.details.histogram=void 0),this.osd.loaded=!0})}}var Zi=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ji(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-device-list",[],null,null,null,So,yo)),i["ɵdid"](1,114688,null,0,bo,[Br,ia.a,o.DatePipe,Xr],{osdId:[0,"osdId"]},null)],(function(t,e){t(e,1,0,e.component.osd.id)}),null)}function Xi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](1,638976,null,0,$r.a,[se.a],{data:[0,"data"]},null)],(function(t,e){t(e,1,0,e.component.osd.details.osd_map)}),null)}function Qi(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table-key-value",[],null,[[null,"fetchData"]],(function(t,e,n){var a=!0;return"fetchData"===e&&(a=!1!==t.component.refresh()&&a),a}),Kr.b,Kr.a)),i["ɵdid"](1,638976,null,0,$r.a,[se.a],{data:[0,"data"]},{fetchData:"fetchData"})],(function(t,e){t(e,1,0,e.component.osd.details.osd_metadata)}),null)}function ts(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["Metadata not available"]))],(function(t,e){t(e,1,0,"warning")}),null)}function es(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-table-performance-counter",[["serviceType","osd"]],null,null,null,Gi.b,Gi.a)),i["ɵdid"](1,114688,null,0,Bi.a,[Vi.a,ia.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],(function(t,e){t(e,1,0,"osd",e.component.osd.id)}),null)}function ns(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](2,0,["Histogram not available: ",""]))],(function(t,e){t(e,1,0,"warning")}),(function(t,e){t(e,2,0,e.component.osd.histogram_failed)}))}function as(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Writes"])),(t()(),i["ɵeld"](4,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,Ki,Hi)),i["ɵdid"](5,573440,null,0,Yi,[],{histogram:[0,"histogram"]},null),(t()(),i["ɵeld"](6,0,null,null,4,"div",[["class","col-md-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Reads"])),(t()(),i["ɵeld"](9,0,null,null,1,"cd-osd-performance-histogram",[],null,null,null,Ki,Hi)),i["ɵdid"](10,573440,null,0,Yi,[],{histogram:[0,"histogram"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.osd.details.histogram.osd.op_w_latency_in_bytes_histogram),t(e,10,0,n.osd.details.histogram.osd.op_r_latency_out_bytes_histogram)}),null)}function rs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","GrafanaStyles.two"],["uid","CrAHE0iZz"]],null,null,null,pr.b,pr.a)),i["ɵdid"](3,638976,null,0,mr.a,[ft.a,hr.b,$t.a,bt.a,ia.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"osd-device-details?var-osd=osd."+n.osd.id,"GrafanaStyles.two","CrAHE0iZz")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function os(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,30,"tabset",[["id","tabset-osd-details"]],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Devices"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ji)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](6,0,null,0,3,"tab",[["heading","Attributes (OSD map)"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](7,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Xi)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](10,0,null,0,4,"tab",[["heading","Metadata"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](11,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Qi)),i["ɵdid"](13,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["noMetaData",2]],null,0,null,ts)),(t()(),i["ɵeld"](15,0,null,0,3,"tab",[["heading","Device health"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](16,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](17,0,null,null,1,"cd-smart-list",[],null,null,null,ho,to)),i["ɵdid"](18,638976,null,0,Qr,[ia.a,Xr,Br],{osdId:[0,"osdId"]},null),(t()(),i["ɵeld"](19,0,null,0,3,"tab",[["heading","Performance counter"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](20,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,es)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](23,0,null,0,5,"tab",[["heading","Histogram"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](24,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ns)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,as)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,rs)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Devices"),t(e,5,0,n.osd.loaded&&null!==n.osd.id),t(e,7,0,"Attributes (OSD map)"),t(e,9,0,n.osd.loaded),t(e,11,0,"Metadata"),t(e,13,0,n.osd.loaded&&n.osd.details.osd_metadata,i["ɵnov"](e,14)),t(e,16,0,"Device health"),t(e,18,0,n.osd.id),t(e,20,0,"Performance counter"),t(e,22,0,n.osd.loaded),t(e,24,0,"Histogram"),t(e,26,0,n.osd.loaded&&n.osd.histogram_failed),t(e,28,0,n.osd.loaded&&n.osd.details.histogram),t(e,30,0,n.grafanaPermission.read)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,6,0,i["ɵnov"](e,7).id,i["ɵnov"](e,7).active,i["ɵnov"](e,7).addClass),t(e,10,0,i["ɵnov"](e,11).id,i["ɵnov"](e,11).active,i["ɵnov"](e,11).addClass),t(e,15,0,i["ɵnov"](e,16).id,i["ɵnov"](e,16).active,i["ɵnov"](e,16).addClass),t(e,19,0,i["ɵnov"](e,20).id,i["ɵnov"](e,20).active,i["ɵnov"](e,20).addClass),t(e,23,0,i["ɵnov"](e,24).id,i["ɵnov"](e,24).active,i["ɵnov"](e,24).addClass)}))}function is(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,os)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection.hasSingleSelection)}),null)}function ss(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-details",[],null,null,null,is,Zi)),i["ɵdid"](1,573440,null,0,$i,[Xr,yt.a],null,null)],null,null)}var cs=i["ɵccf"]("cd-osd-details",$i,ss,{selection:"selection"},{},[]),ls=n("cp0P"),ds=n("OLbh");class us{constructor(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.osdService=n,this.notificationService=a,this.i18n=r,this.osdFlagsForm=new W.k({}),this.allFlags={noin:{code:"noin",name:this.i18n("No In"),value:!1,description:this.i18n("OSDs that were previously marked out will not be marked back in when they start")},noout:{code:"noout",name:this.i18n("No Out"),value:!1,description:this.i18n("OSDs will not automatically be marked out after the configured interval")},noup:{code:"noup",name:this.i18n("No Up"),value:!1,description:this.i18n("OSDs are not allowed to start")},nodown:{code:"nodown",name:this.i18n("No Down"),value:!1,description:this.i18n("OSD failure reports are being ignored, such that the monitors will not mark OSDs down")},pause:{code:"pause",name:this.i18n("Pause"),value:!1,description:this.i18n("Pauses reads and writes")},noscrub:{code:"noscrub",name:this.i18n("No Scrub"),value:!1,description:this.i18n("Scrubbing is disabled")},"nodeep-scrub":{code:"nodeep-scrub",name:this.i18n("No Deep Scrub"),value:!1,description:this.i18n("Deep Scrubbing is disabled")},nobackfill:{code:"nobackfill",name:this.i18n("No Backfill"),value:!1,description:this.i18n("Backfilling of PGs is suspended")},norebalance:{code:"norebalance",name:this.i18n("No Rebalance"),value:!1,description:this.i18n("OSD will choose not to backfill unless PG is also degraded")},norecover:{code:"norecover",name:this.i18n("No Recover"),value:!1,description:this.i18n("Recovery of PGs is suspended")},sortbitwise:{code:"sortbitwise",name:this.i18n("Bitwise Sort"),value:!1,description:this.i18n("Use bitwise sort"),disabled:!0},purged_snapdirs:{code:"purged_snapdirs",name:this.i18n("Purged Snapdirs"),value:!1,description:this.i18n("OSDs have converted snapsets"),disabled:!0},recovery_deletes:{code:"recovery_deletes",name:this.i18n("Recovery Deletes"),value:!1,description:this.i18n("Deletes performed during recovery instead of peering"),disabled:!0},pglog_hardlimit:{code:"pglog_hardlimit",name:this.i18n("PG Log Hard Limit"),value:!1,description:this.i18n("Puts a hard limit on pg log length"),disabled:!0}},this.unknownFlags=[],this.permissions=this.authStorageService.getPermissions()}ngOnInit(){this.osdService.getFlags().subscribe(t=>{t.forEach(t=>{this.allFlags[t]?this.allFlags[t].value=!0:this.unknownFlags.push(t)}),this.flags=$.toArray(this.allFlags)})}submitAction(){const t=this.flags.filter(t=>t.value).map(t=>t.code).concat(this.unknownFlags);this.osdService.updateFlags(t).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n("Updated OSD Flags")),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}var gs=n("MuvH");let fs=(()=>{class t{static getType(t){const e=$.find(this.knownTypes,e=>e.name===t);if(void 0!==e)return e;throw new Error('Found unknown type "'+t+'" for config option.')}static getTypeValidators(e){const n=t.getType(e.type);if("bool"===n.name||"str"===n.name)return;const a={validators:[],patternHelpText:n.patternHelpText};return n.isNumberType?(e.max&&""!==e.max&&(a.max=e.max,a.validators.push(W.B.max(e.max))),e.min&&""!==e.min?(a.min=e.min,a.validators.push(W.B.min(e.min))):"defaultMin"in n&&(a.min=n.defaultMin,a.validators.push(W.B.min(n.defaultMin))),a.validators.push("float"===e.type?di.a.decimalNumber():di.a.number(n.allowsNegative))):"addr"===e.type?a.validators=[di.a.ip()]:"uuid"===e.type&&(a.validators=[di.a.uuid()]),a}static getTypeStep(t,e){if(["uint","int","size","secs"].includes(t))return 1;if("float"===t){if(null!==e&&-1!==e.toString().indexOf(".")){const t=e.toString().split(".");return Math.pow(10,-t[1].length)}return.1}}}return t.knownTypes=[{name:"uint",inputType:"number",humanReadable:"Unsigned integer value",defaultMin:0,patternHelpText:"The entered value needs to be an unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"int",inputType:"number",humanReadable:"Integer value",patternHelpText:"The entered value needs to be a number.",isNumberType:!0,allowsNegative:!0},{name:"size",inputType:"number",humanReadable:"Unsigned integer value (>=16bit)",defaultMin:0,patternHelpText:"The entered value needs to be a unsigned number.",isNumberType:!0,allowsNegative:!1},{name:"secs",inputType:"number",humanReadable:"Number of seconds",defaultMin:1,patternHelpText:"The entered value needs to be a number >= 1.",isNumberType:!0,allowsNegative:!1},{name:"float",inputType:"number",humanReadable:"Double value",patternHelpText:"The entered value needs to be a number or decimal.",isNumberType:!0,allowsNegative:!0},{name:"str",inputType:"text",humanReadable:"Text",isNumberType:!1},{name:"addr",inputType:"text",humanReadable:"IPv4 or IPv6 address",patternHelpText:"The entered value needs to be a valid IP address.",isNumberType:!1},{name:"uuid",inputType:"text",humanReadable:"UUID",patternHelpText:"The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8",isNumberType:!1},{name:"bool",inputType:"checkbox",humanReadable:"Boolean value",isNumberType:!1}],t})();class ps{constructor(t){this.configService=t,this.optionNames=[],this.optionsForm=new li.a({}),this.optionsFormDir=new W.t([],[]),this.optionsFormGroupName="",this.optionsFormShowReset=!0,this.icons=ut.a,this.options=[],this.optionsFormGroup=new li.a({})}static optionNameToText(t){const e=["mon","mgr","osd","mds","client"];return t.split("_").filter((t,n)=>0!==n||!e.includes(t)).map(t=>t.charAt(0).toUpperCase()+t.substring(1)).join(" ")}ngOnInit(){this.createForm(),this.loadStoredData()}createForm(){this.optionsForm.addControl(this.optionsFormGroupName,this.optionsFormGroup),this.optionNames.forEach(t=>{this.optionsFormGroup.addControl(t,new W.i(null))})}getStep(t,e){return fs.getTypeStep(t,e)}loadStoredData(){this.configService.filter(this.optionNames).subscribe(t=>{this.options=t.map(t=>{const e=this.optionsForm.get(t.name),n=fs.getTypeValidators(t);return t.additionalTypeInfo=fs.getType(t.type),t.text=ps.optionNameToText(t.name),t.value=$.find(t.value,t=>"osd"===t.section),t.value&&e.setValue("bool"===t.additionalTypeInfo.name?"true"===t.value.value:t.value.value),n&&(t.patternHelpText=n.patternHelpText,"max"in n&&""!==n.max&&(t.maxValue=n.max),"min"in n&&""!==n.min&&(t.minValue=n.min),e.setValidators(n.validators)),t})})}saveValues(){const t={};return this.optionNames.forEach(e=>{const n=this.optionsForm.getValue(e);null!==n&&""!==n&&(t[e]={section:"osd",value:n})}),this.configService.bulkCreate({options:t})}resetValue(t){this.configService.delete(t,"osd").subscribe(()=>{this.optionsForm.get(t).reset()})}}let ms=(()=>{class t{}return t.basicOptions=["osd_scrub_during_recovery","osd_scrub_begin_hour","osd_scrub_end_hour","osd_scrub_begin_week_day","osd_scrub_end_week_day","osd_scrub_min_interval","osd_scrub_max_interval","osd_deep_scrub_interval","osd_scrub_auto_repair","osd_max_scrubs","osd_scrub_priority","osd_scrub_sleep"],t.advancedOptions=["osd_scrub_auto_repair_num_errors","osd_debug_deep_scrub_sleep","osd_deep_scrub_keys","osd_deep_scrub_large_omap_object_key_threshold","osd_deep_scrub_large_omap_object_value_sum_threshold","osd_deep_scrub_randomize_ratio","osd_deep_scrub_stride","osd_deep_scrub_update_digest_min_age","osd_requested_scrub_priority","osd_scrub_backoff_ratio","osd_scrub_chunk_max","osd_scrub_chunk_min","osd_scrub_cost","osd_scrub_interval_randomize_ratio","osd_scrub_invalid_stats","osd_scrub_load_threshold","osd_scrub_max_preemptions"],t})();class hs{constructor(t,e,n,a,r){this.bsModalRef=t,this.authStorageService=e,this.notificationService=n,this.i18n=a,this.actionLabels=r,this.basicOptions=ms.basicOptions,this.advancedOptions=ms.advancedOptions,this.advancedEnabled=!1,this.osdPgScrubForm=new li.a({}),this.resource=this.i18n("PG scrub options"),this.action=this.actionLabels.EDIT,this.permissions=this.authStorageService.getPermissions()}submitAction(){const t=[this.basicOptionsValues.saveValues()];this.advancedOptionsValues&&t.push(this.advancedOptionsValues.saveValues()),Object(ls.a)(t).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n("Updated PG scrub options")),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}class bs{constructor(t,e,n,a,r,o){this.bsModalRef=t,this.authStorageService=e,this.configService=n,this.notificationService=a,this.i18n=r,this.osdService=o,this.priorities=[],this.priorityAttrs={},this.permissions=this.authStorageService.getPermissions(),this.priorities=this.osdService.osdRecvSpeedModalPriorities.KNOWN_PRIORITIES,this.osdRecvSpeedForm=new li.a({priority:new W.i(null,{validators:[W.B.required]}),customizePriority:new W.i(!1)}),this.priorityAttrs={osd_max_backfills:{text:this.i18n("Max Backfills"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_active:{text:this.i18n("Recovery Max Active"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_max_single_start:{text:this.i18n("Recovery Max Single Start"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0},osd_recovery_sleep:{text:this.i18n("Recovery Sleep"),desc:"",patternHelpText:"",maxValue:void 0,minValue:void 0}},Object.keys(this.priorityAttrs).forEach(t=>{this.osdRecvSpeedForm.addControl(t,new W.i(null,{validators:[W.B.required]}))})}ngOnInit(){this.configService.filter(Object.keys(this.priorityAttrs)).subscribe(t=>{const e=this.getCurrentValues(t);this.detectPriority(e.values,t=>{this.setPriority(t)}),this.setDescription(e.configOptions),this.setValidators(e.configOptions)})}detectPriority(t,e){const n=$.find(this.priorities,e=>$.isEqual(e.values,t));return this.osdRecvSpeedForm.controls.customizePriority.setValue(!1),n?e(n):4===Object.entries(t).length?(this.osdRecvSpeedForm.controls.customizePriority.setValue(!0),e(Object({name:"custom",text:this.i18n("Custom"),values:t}))):e(this.priorities[0])}getCurrentValues(t){const e={values:{},configOptions:[]};return t.forEach(t=>{e.configOptions.push(t),"value"in t?t.value.forEach(n=>{"osd"===n.section&&(e.values[t.name]=Number(n.value))}):"default"in t&&null!==t.default&&(e.values[t.name]=Number(t.default))}),e}setDescription(t){t.forEach(t=>{""!==t.desc&&(this.priorityAttrs[t.name].desc=t.desc)})}setPriority(t){const e=$.find(this.priorities,t=>"custom"===t.name);"custom"===t.name?e||this.priorities.push(t):e&&this.priorities.splice(this.priorities.indexOf(e),1),this.osdRecvSpeedForm.controls.priority.setValue(t.name),Object.entries(t.values).forEach(([t,e])=>{this.osdRecvSpeedForm.controls[t].setValue(e)})}setValidators(t){t.forEach(t=>{const e=fs.getTypeValidators(t);e?(e.validators.push(W.B.required),"max"in e&&""!==e.max&&(this.priorityAttrs[t.name].maxValue=e.max),"min"in e&&""!==e.min&&(this.priorityAttrs[t.name].minValue=e.min),this.priorityAttrs[t.name].patternHelpText=e.patternHelpText,this.osdRecvSpeedForm.controls[t.name].setValidators(e.validators)):this.osdRecvSpeedForm.controls[t.name].setValidators(W.B.required)})}onCustomizePriorityChange(){const t={};if(Object.keys(this.priorityAttrs).forEach(e=>{t[e]=this.osdRecvSpeedForm.getValue(e)}),this.osdRecvSpeedForm.getValue("customizePriority")){const e={name:"custom",text:this.i18n("Custom"),values:t};this.setPriority(e)}else this.detectPriority(t,t=>{this.setPriority(t)})}onPriorityChange(t){const e=$.find(this.priorities,e=>e.name===t)||this.priorities[0];this.osdRecvSpeedForm.get("customizePriority").setValue(!1),this.setPriority(e)}submitAction(){const t={};Object.keys(this.priorityAttrs).forEach(e=>{t[e]={section:"osd",value:this.osdRecvSpeedForm.getValue(e)}}),this.configService.bulkCreate({options:t}).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n('Updated OSD recovery speed priority "{{value}}"',{value:this.osdRecvSpeedForm.getValue("priority")})),this.bsModalRef.hide()},()=>{this.bsModalRef.hide()})}}var ys=n("2EZI");class _s{constructor(t,e,n){this.bsModalRef=t,this.osdService=e,this.fb=n,this.currentWeight=1}get weight(){return this.reweightForm.get("weight")}ngOnInit(){this.reweightForm=this.fb.group({weight:this.fb.control(this.currentWeight,[W.B.required,W.B.max(1),W.B.min(0)])})}reweight(){this.osdService.reweight(this.osdId,this.reweightForm.value.weight).subscribe(()=>this.bsModalRef.hide())}}class Os{constructor(t,e,n,a,r){this.bsModalRef=t,this.osdService=e,this.notificationService=n,this.i18n=a,this.joinPipe=r,this.selected=[]}ngOnInit(){this.scrubForm=new W.k({})}scrub(){Object(ls.a)(this.selected.map(t=>this.osdService.scrub(t,this.deep))).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n("{{operation}} was initialized in the following OSD(s): {{id}}",{operation:this.deep?"Deep scrub":"Scrub",id:this.joinPipe.transform(this.selected)})),this.bsModalRef.hide()},()=>this.bsModalRef.hide())}}const vs=new jo.a("osd");class Cs{constructor(t,e,n,a,r,o,i,s,c,l,d){this.authStorageService=t,this.osdService=e,this.dimlessBinaryPipe=n,this.modalService=a,this.i18n=r,this.urlBuilder=o,this.router=i,this.depCheckerService=s,this.taskWrapper=c,this.actionLabels=l,this.notificationService=d,this.icons=ut.a,this.selection=new kr.a,this.osds=[],this.permissions=this.authStorageService.getPermissions(),this.tableActions=[{name:this.actionLabels.CREATE,permission:"create",icon:ut.a.add,click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.CREATE,this.i18n("OSD"),()=>{this.router.navigate([this.urlBuilder.getCreate()])})},canBePrimary:t=>!t.hasSelection},{name:this.actionLabels.EDIT,permission:"update",icon:ut.a.edit,click:()=>this.editAction()},{name:this.actionLabels.SCRUB,permission:"update",icon:ut.a.analyse,click:()=>this.scrubAction(!1),disable:()=>!this.hasOsdSelected,canBePrimary:t=>t.hasSelection},{name:this.actionLabels.DEEP_SCRUB,permission:"update",icon:ut.a.deepCheck,click:()=>this.scrubAction(!0),disable:()=>!this.hasOsdSelected},{name:this.actionLabels.REWEIGHT,permission:"update",click:()=>this.reweight(),disable:()=>!this.hasOsdSelected||!this.selection.hasSingleSelection,icon:ut.a.reweight},{name:this.actionLabels.MARK_OUT,permission:"update",click:()=>this.showConfirmationModal(this.i18n("out"),this.osdService.markOut),disable:()=>this.isNotSelectedOrInState("out"),icon:ut.a.left},{name:this.actionLabels.MARK_IN,permission:"update",click:()=>this.showConfirmationModal(this.i18n("in"),this.osdService.markIn),disable:()=>this.isNotSelectedOrInState("in"),icon:ut.a.right},{name:this.actionLabels.MARK_DOWN,permission:"update",click:()=>this.showConfirmationModal(this.i18n("down"),this.osdService.markDown),disable:()=>this.isNotSelectedOrInState("down"),icon:ut.a.down},{name:this.actionLabels.MARK_LOST,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("Mark"),this.i18n("OSD lost"),this.i18n("marked lost"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",this.osdService.markLost),disable:()=>this.isNotSelectedOrInState("up"),icon:ut.a.flatten},{name:this.actionLabels.PURGE,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("Purge"),this.i18n("OSD"),this.i18n("purged"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",t=>(this.selection=new kr.a,this.osdService.purge(t))),disable:()=>this.isNotSelectedOrInState("up"),icon:ut.a.erase},{name:this.actionLabels.DESTROY,permission:"delete",click:()=>this.showCriticalConfirmationModal(this.i18n("destroy"),this.i18n("OSD"),this.i18n("destroyed"),t=>this.osdService.safeToDestroy(JSON.stringify(t)),"is_safe_to_destroy",t=>(this.selection=new kr.a,this.osdService.destroy(t))),disable:()=>this.isNotSelectedOrInState("up"),icon:ut.a.destroyCircle},{name:this.actionLabels.DELETE,permission:"delete",click:()=>{this.depCheckerService.checkOrchestratorOrModal(this.actionLabels.DELETE,this.i18n("OSD"),()=>{this.showCriticalConfirmationModal(this.i18n("delete"),this.i18n("OSD"),this.i18n("deleted"),t=>this.osdService.safeToDelete(JSON.stringify(t)),"is_safe_to_delete",t=>(this.selection=new kr.a,this.taskWrapper.wrapTaskAroundCall({task:new zo.a("osd/"+vt.e.DELETE,{svc_id:t}),call:this.osdService.delete(t,!0)})),!0)})},disable:()=>!this.hasOsdSelected,icon:ut.a.destroy}]}static collectStates(t){const e=[t.in?"in":"out"];return t.up?e.push("up"):t.state.includes("destroyed")?e.push("destroyed"):e.push("down"),e}ngOnInit(){this.clusterWideActions=[{name:this.i18n("Flags"),icon:ut.a.flag,click:()=>this.configureFlagsAction(),permission:"read",visible:()=>this.permissions.osd.read},{name:this.i18n("Recovery Priority"),icon:ut.a.deepCheck,click:()=>this.configureQosParamsAction(),permission:"read",visible:()=>this.permissions.configOpt.read},{name:this.i18n("PG scrub"),icon:ut.a.analyse,click:()=>this.configurePgScrubAction(),permission:"read",visible:()=>this.permissions.configOpt.read}],this.columns=[{prop:"host.name",name:this.i18n("Host")},{prop:"id",name:this.i18n("ID"),flexGrow:1,cellTransformation:Sr.a.bold},{prop:"collectedStates",name:this.i18n("Status"),flexGrow:1,cellTransformation:Sr.a.badge,customTemplateConfig:{map:{in:{class:"badge-success"},up:{class:"badge-success"},down:{class:"badge-danger"},out:{class:"badge-danger"},destroyed:{class:"badge-danger"}}}},{prop:"tree.device_class",name:this.i18n("Device class"),flexGrow:1,cellTransformation:Sr.a.badge,customTemplateConfig:{map:{hdd:{class:"badge-hdd"},ssd:{class:"badge-ssd"}}}},{prop:"stats.numpg",name:this.i18n("PGs"),flexGrow:1},{prop:"stats.stat_bytes",name:this.i18n("Size"),flexGrow:1,pipe:this.dimlessBinaryPipe},{prop:"stats.usage",name:this.i18n("Usage"),cellTemplate:this.osdUsageTpl},{prop:"stats_history.out_bytes",name:this.i18n("Read bytes"),cellTransformation:Sr.a.sparkline},{prop:"stats_history.in_bytes",name:this.i18n("Write bytes"),cellTransformation:Sr.a.sparkline},{prop:"stats.op_r",name:this.i18n("Read ops"),cellTransformation:Sr.a.perSecond},{prop:"stats.op_w",name:this.i18n("Write ops"),cellTransformation:Sr.a.perSecond}]}getSelectedOsdIds(){const t=this.osds.map(t=>t.id);return this.selection.selected.map(t=>t.id).filter(e=>t.includes(e))}getSelectedOsds(){return this.osds.filter(t=>!$.isUndefined(t)&&this.getSelectedOsdIds().includes(t.id))}get hasOsdSelected(){return this.getSelectedOsdIds().length>0}updateSelection(t){this.selection=t}isNotSelectedOrInState(t){const e=this.getSelectedOsds();if(0===e.length)return!0;switch(t){case"in":return e.some(t=>1===t.in);case"out":return e.some(t=>1!==t.in);case"down":return e.some(t=>1!==t.up);case"up":return e.some(t=>1===t.up)}}getOsdList(){this.osdService.getList().subscribe(t=>{this.osds=t.map(t=>(t.collectedStates=Cs.collectStates(t),t.stats_history.out_bytes=t.stats_history.op_out_bytes.map(t=>t[1]),t.stats_history.in_bytes=t.stats_history.op_in_bytes.map(t=>t[1]),t.stats.usage=t.stats.stat_bytes_used/t.stats.stat_bytes,t.cdIsBinary=!0,t))})}editAction(){const t=$.filter(this.osds,["id",this.selection.first().id]).pop();this.modalService.show(Tr.a,{initialState:{titleText:this.i18n("Edit OSD: {{id}}",{id:t.id}),fields:[{type:"text",name:"deviceClass",value:t.tree.device_class,label:this.i18n("Device class"),required:!0}],submitButtonText:this.i18n("Edit OSD"),onSubmit:e=>{this.osdService.update(t.id,e.deviceClass).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n('Updated OSD "{{id}}"',{id:t.id})),this.getOsdList()})}}})}scrubAction(t){if(!this.hasOsdSelected)return;const e={selected:this.getSelectedOsdIds(),deep:t};this.bsModalRef=this.modalService.show(Os,{initialState:e})}configureFlagsAction(){this.bsModalRef=this.modalService.show(us,{})}showConfirmationModal(t,e){this.bsModalRef=this.modalService.show(ds.a,{initialState:{titleText:this.i18n("Mark OSD {{markAction}}",{markAction:t}),buttonText:this.i18n("Mark {{markAction}}",{markAction:t}),bodyTpl:this.markOsdConfirmationTpl,bodyContext:{markActionDescription:t},onSubmit:()=>{Object(ls.a)(this.getSelectedOsdIds().map(t=>e.call(this.osdService,t))).subscribe(()=>this.bsModalRef.hide())}}})}reweight(){const t=this.osds.filter(t=>t.id===this.selection.first().id).pop();this.modalService.show(_s,{initialState:{currentWeight:t.weight,osdId:t.id}})}showCriticalConfirmationModal(t,e,n,a,r,o,i=!1){a(this.getSelectedOsdIds()).subscribe(a=>{const s=this.modalService.show(Fo.a,{initialState:{actionDescription:t,itemDescription:e,bodyTemplate:this.criticalConfirmationTpl,bodyContext:{safeToPerform:a[r],message:a.message,actionDescription:n},submitAction:()=>{const t=Object(ls.a)(this.getSelectedOsdIds().map(t=>o.call(this.osdService,t)));i?t.subscribe(void 0,()=>{this.getOsdList(),s.hide()},()=>s.hide()):t.subscribe(()=>{this.getOsdList(),s.hide()},()=>s.hide())}}})})}configureQosParamsAction(){this.bsModalRef=this.modalService.show(bs,{})}configurePgScrubAction(){this.bsModalRef=this.modalService.show(hs,{class:"modal-lg"})}}var Ps=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ms(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,ji.b,ji.a)),i["ɵdid"](1,573440,null,0,Fi.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(t,e){t(e,1,0,e.context.row.stats.stat_bytes,e.context.row.stats.stat_bytes_used)}),null)}function xs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Overall Performance"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","three"],["uid","lo02I1Aiz"]],null,null,null,pr.b,pr.a)),i["ɵdid"](3,638976,null,0,mr.a,[ft.a,hr.b,$t.a,bt.a,ia.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){t(e,1,0,"Overall Performance"),t(e,3,0,"osd-overview?","three","lo02I1Aiz")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function ws(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["OSD(s) ",""])),i["ɵppd"](3,1),(t()(),i["ɵted"](-1,null,[" will be marked\n"])),(t()(),i["ɵeld"](5,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](6,null,["",""])),(t()(),i["ɵted"](-1,null,[" if you proceed."]))],null,(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent,0),n.getSelectedOsdIds()));t(e,2,0,a),t(e,6,0,e.context.markActionDescription)}))}function Ts(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["OSDs are"]))],null,null)}function Ss(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["OSD is"]))],null,null)}function ks(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,"div",[["class","danger"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,9,"cd-alert-panel",[["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](2,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["The "])),(t()(),i["ɵeld"](4,0,null,0,5,null,null,null,null,null,null,null)),i["ɵdid"](5,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ts)),i["ɵdid"](7,278528,null,0,o.NgSwitchCase,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ss)),i["ɵdid"](9,278528,null,0,o.NgSwitchCase,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),i["ɵted"](10,0,[" not safe to be ","! ",""]))],(function(t,e){var n=e.component;t(e,2,0,"warning"),t(e,5,0,n.selection.hasSingleSelection),t(e,7,0,"0"),t(e,9,0,"1")}),(function(t,e){t(e,10,0,e.parent.context.actionDescription,e.parent.context.message)}))}function Is(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,ks)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](2,0,null,null,7,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](4,null,["OSD ",""])),i["ɵppd"](5,1),(t()(),i["ɵted"](-1,null,[" will be\n"])),(t()(),i["ɵeld"](7,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](8,null,["",""])),(t()(),i["ɵted"](-1,null,[" if you proceed."]))],(function(t,e){t(e,1,0,!e.context.safeToPerform)}),(function(t,e){var n=e.component,a=i["ɵunv"](e,4,0,t(e,5,0,i["ɵnov"](e.parent,0),n.getSelectedOsdIds()));t(e,4,0,a),t(e,8,0,e.context.actionDescription)}))}function Ns(t){return i["ɵvid"](0,[i["ɵpid"](0,zi.a,[]),i["ɵqud"](402653184,1,{osdUsageTpl:0}),i["ɵqud"](402653184,2,{markOsdConfirmationTpl:0}),i["ɵqud"](402653184,3,{criticalConfirmationTpl:0}),i["ɵqud"](402653184,4,{tableComponent:0}),i["ɵqud"](671088640,5,{reweightBodyTpl:0}),i["ɵqud"](671088640,6,{safeToDestroyBodyTpl:0}),(t()(),i["ɵeld"](7,0,null,null,16,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](8,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](9,0,null,0,12,"tab",[["heading","OSDs List"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](10,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](11,0,null,null,9,"cd-table",[["selectionType","multiClick"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getOsdList()&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](12,2867200,[[4,4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"],updateSelectionOnRefresh:[3,"updateSelectionOnRefresh"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](13,0,null,1,5,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),i["ɵeld"](14,0,null,null,1,"cd-table-actions",[["class","btn-group"],["id","osd-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](15,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵeld"](16,0,null,null,2,"cd-table-actions",[["btnColor","light"],["class","btn-group"],["dropDownOnly","Cluster-wide configuration"],["id","cluster-wide-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](17,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"],btnColor:[3,"btnColor"],dropDownOnly:[4,"dropDownOnly"]},null),i["ɵpod"](18,{read:0}),(t()(),i["ɵeld"](19,0,null,3,1,"cd-osd-details",[["cdTableDetail",""]],null,null,null,is,Zi)),i["ɵdid"](20,573440,null,0,$i,[Xr,yt.a],{selection:[0,"selection"]},null),(t()(),i["ɵand"](0,[[1,2],["osdUsageTpl",2]],null,0,null,Ms)),(t()(),i["ɵand"](16777216,null,0,1,null,xs)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[[2,2],["markOsdConfirmationTpl",2]],null,0,null,ws)),(t()(),i["ɵand"](0,[[3,2],["criticalConfirmationTpl",2]],null,0,null,Is))],(function(t,e){var n=e.component;t(e,10,0,"OSDs List"),t(e,12,0,n.osds,n.columns,"multiClick","never"),t(e,15,0,n.permissions.osd,n.selection,n.tableActions);var a=t(e,18,0,!0);t(e,17,0,a,n.selection,n.clusterWideActions,"light","Cluster-wide configuration"),t(e,20,0,n.selection),t(e,23,0,n.permissions.grafana.read)}),(function(t,e){t(e,7,0,i["ɵnov"](e,8).clazz),t(e,9,0,i["ɵnov"](e,10).id,i["ɵnov"](e,10).active,i["ɵnov"](e,10).addClass)}))}function Rs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-osd-list",[],null,null,null,Ns,Ps)),i["ɵprd"](256,null,jo.a,vs,[]),i["ɵdid"](2,114688,null,0,Cs,[yt.a,Xr,Qn.a,Mt.b,ia.a,jo.a,St.m,Vo,Yo.a,vt.b,gt.a],null,null)],(function(t,e){t(e,2,0)}),null)}var As=i["ɵccf"]("cd-osd-list",Cs,Rs,{},{},[]),Es=n("4HWh"),Ds=n("p4Cf");class Ls{constructor(t,e,n){this.formBuilder=t,this.bsModalRef=e,this.actionLabels=n,this.submitAction=new i.EventEmitter,this.icons=ut.a,this.filterColumns=[],this.devices=[],this.filteredDevices=[],this.capacity=0,this.canSubmit=!1,this.requiredFilters=[],this.action=n.ADD,this.createForm()}ngAfterViewInit(){const t=$.filter(this.inventoryDevices.columns,t=>this.filterColumns.includes(t.prop)&&"hostname"!==t.prop);this.requiredFilters=$.map(t,"name")}createForm(){this.formGroup=this.formBuilder.group({})}onFilterChange(t){if(this.capacity=0,this.canSubmit=!1,$.isEmpty(t.filters))this.filteredDevices=[],this.event=void 0;else{const e=t.filters.filter(t=>"hostname"!==t.prop);this.canSubmit=!$.isEmpty(e),this.filteredDevices=t.data,this.capacity=$.sumBy(this.filteredDevices,"sys_api.size"),this.event=t}}onSubmit(){this.submitAction.emit(this.event),this.bsModalRef.hide()}}class qs{constructor(t,e){this.bsModalService=t,this.i18n=e,this.selected=new i.EventEmitter,this.cleared=new i.EventEmitter,this.icons=ut.a,this.devices=[],this.capacity=0,this.appliedFilters=[],this.tooltips={noAvailDevices:this.i18n("No available devices"),addPrimaryFirst:this.i18n("Please add primary devices first"),addByFilters:this.i18n("Add devices by using filters")}}ngOnInit(){this.updateAddButtonTooltip()}ngOnChanges(){this.updateAddButtonTooltip()}showSelectionModal(){let t=["human_readable_type","sys_api.vendor","sys_api.model","sys_api.size"];"data"===this.type&&(t=["hostname",...t]),this.bsModalService.show(Ls,{class:"modal-xl",initialState:{hostname:this.hostname,deviceType:this.name,devices:this.availDevices,filterColumns:t}}).content.submitAction.subscribe(t=>{this.devices=t.data,this.capacity=$.sumBy(this.devices,"sys_api.size"),this.appliedFilters=t.filters;const e=$.assign({type:this.type},t);this.selected.emit(e)})}updateAddButtonTooltip(){this.addButtonTooltip="data"===this.type&&0===this.availDevices.length?this.tooltips.noAvailDevices:this.canSelect?0===this.availDevices.length?this.tooltips.noAvailDevices:this.tooltips.addByFilters:this.tooltips.addPrimaryFirst}clearDevices(){const t={type:this.type,clearedDevices:[...this.devices]};this.devices=[],this.cleared.emit(t)}}var js=i["ɵcrt"]({encapsulation:0,styles:[[".tc_clearSelections[_ngcontent-%COMP%]{text-decoration:none}"]],data:{}});function Fs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The primary storage devices. These devices contain all OSD data."]))],null,null)}function zs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Write-Ahead-Log devices. These devices are used for BlueStore’s internal journal. It is only useful to use a WAL device if the device is faster than the primary device (e.g. NVME devices or SSDs). If there is only a small amount of fast storage available (e.g., less than a gigabyte), we recommend using it as a WAL device."]))],null,null)}function Gs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["DB devices can be used for storing BlueStore’s internal metadata. It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD)."]))],null,null)}function Bs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,6,"button",[["class","btn btn-light"],["data-toggle","tooltip"],["type","button"]],[[8,"title",0],[8,"disabled",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showSelectionModal()&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](5,1),(t()(),i["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Add"]))],(function(t,e){var n=t(e,5,0,e.component.icons.add);t(e,4,0,n)}),(function(t,e){var n=e.component;t(e,1,0,n.addButtonTooltip,0===n.availDevices.length||!n.canSelect)}))}function Vs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",": ",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit.name,e.context.$implicit.value.formatted)}))}function Ys(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"div",[["class","float-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["Raw capacity: ",""])),i["ɵppd"](3,1)],null,(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent,0),n.capacity));t(e,2,0,a)}))}function Hs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"div",[["class","pb-2 my-2 border-bottom"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Vs)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](3,0,null,null,6,"a",[["class","tc_clearSelections"],["href",""]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(t.component.clearDevices(),a=!1),a}),null,null)),(t()(),i["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](7,1),(t()(),i["ɵeld"](8,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Clear"])),(t()(),i["ɵeld"](10,0,null,null,3,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,2,"cd-inventory-devices",[],null,null,null,Rr,Nr)),i["ɵdid"](12,245760,null,0,Ir,[yt.a,Qn.a,ia.a,Mt.b,gt.a,wr],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],filterColumns:[2,"filterColumns"]},null),i["ɵpad"](13,2),(t()(),i["ɵand"](16777216,null,null,1,null,Ys)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,n.appliedFilters);var a=t(e,7,0,n.icons.clearFilters);t(e,6,0,a);var r=n.devices,o=t(e,13,0,"available","osd_ids");t(e,12,0,r,o,i["ɵEMPTY_ARRAY"]),t(e,15,0,"data"===n.type)}),null)}function Us(t){return i["ɵvid"](0,[i["ɵpid"](0,Qn.a,[ua.a]),(t()(),i["ɵeld"](1,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](2,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](5,0,null,0,10,"label",[["class","cd-col-form-label"],["for","createDeleteButton"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](7,null,[""," devices"])),(t()(),i["ɵeld"](8,0,null,null,7,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](9,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵand"](16777216,null,0,1,null,Fs)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,zs)),i["ɵdid"](13,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Gs)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](16,0,null,0,3,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Bs)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"],ngIfElse:[1,"ngIfElse"]},null),(t()(),i["ɵand"](0,[["blockClearDevices",2]],null,0,null,Hs))],(function(t,e){var n=e.component;t(e,2,0),t(e,11,0,"data"===n.type),t(e,13,0,"wal"===n.type),t(e,15,0,"db"===n.type),t(e,18,0,0===n.devices.length,i["ɵnov"](e,19))}),(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e,2).hasErrors,i["ɵnov"](e,2).hasSuccess),t(e,7,0,n.name)}))}class Ws{constructor(t,e,n,a,r){this.bsModalRef=t,this.actionLabels=e,this.formBuilder=n,this.osdService=a,this.taskWrapper=r,this.driveGroups=[],this.submitAction=new i.EventEmitter,this.action=e.CREATE,this.createForm()}ngOnInit(){}createForm(){this.formGroup=this.formBuilder.group({})}onSubmit(){this.taskWrapper.wrapTaskAroundCall({task:new zo.a("osd/"+vt.e.CREATE,{tracking_id:$.join($.map(this.driveGroups,"service_id"),", ")}),call:this.osdService.create(this.driveGroups)}).subscribe(void 0,()=>{this.formGroup.setErrors({cdSubmitButton:!0})},()=>{this.submitAction.emit(),this.bsModalRef.hide()})}}class Ks{constructor(){this.reset(),this.formatterService=new ua.a,this.deviceSelectionAttrs={"sys_api.vendor":{name:"vendor"},"sys_api.model":{name:"model"},device_id:{name:"device_id"},human_readable_type:{name:"rotational",formatter:t=>"hdd"===t.toLowerCase()},"sys_api.size":{name:"size",formatter:t=>this.formatterService.format_number(t,1024,["B","KB","MB","GB","TB","PB"]).replace(" ","")}}}reset(){this.spec={service_type:"osd",service_id:`dashboard-${$.now()}`}}setName(t){this.spec.service_id=t}setHostPattern(t){this.spec.host_pattern=t}setDeviceSelection(t,e){const n=`${t}_devices`;this.spec[n]={},e.forEach(t=>{const e=this.deviceSelectionAttrs[t.prop];e&&(this.spec[n][e.name]=e.formatter?e.formatter(t.value.raw):t.value.raw)})}clearDeviceSelection(t){delete this.spec[`${t}_devices`]}setSlots(t,e){const n=`${t}_slots`;0===e?delete this.spec[n]:this.spec[n]=e}setFeature(t,e){e?this.spec[t]=!0:delete this.spec[t]}}class $s{constructor(t,e,n,a,r,o){this.actionLabels=t,this.authStorageService=e,this.i18n=n,this.orchService=a,this.router=r,this.bsModalService=o,this.icons=ut.a,this.columns=[],this.loading=!1,this.allDevices=[],this.availDevices=[],this.dataDeviceFilters=[],this.dbDeviceFilters=[],this.walDeviceFilters=[],this.hostname="",this.driveGroup=new Ks,this.featureList=[],this.hasOrchestrator=!1,this.resource=this.i18n("OSDs"),this.action=this.actionLabels.CREATE,this.features={encrypted:{key:"encrypted",desc:this.i18n("Encryption")}},this.featureList=$.map(this.features,(t,e)=>Object.assign(t,{key:e})),this.createForm()}ngOnInit(){this.orchService.status().subscribe(t=>{this.hasOrchestrator=t.available,this.hasOrchestrator&&this.getDataDevices()}),this.form.get("walSlots").valueChanges.subscribe(t=>this.setSlots("wal",t)),this.form.get("dbSlots").valueChanges.subscribe(t=>this.setSlots("db",t)),$.each(this.features,t=>{this.form.get("features").get(t.key).valueChanges.subscribe(e=>this.featureFormUpdate(t.key,e))})}createForm(){this.form=new li.a({walSlots:new W.i(0,{updateOn:"blur",validators:[W.B.min(0)]}),dbSlots:new W.i(0,{updateOn:"blur",validators:[W.B.min(0)]}),features:new li.a(this.featureList.reduce((t,e)=>(t[e.key]=new W.i({value:!1,disabled:!0}),t),{}))})}getDataDevices(){this.loading||(this.loading=!0,this.orchService.inventoryDeviceList().subscribe(t=>{this.allDevices=$.filter(t,"available"),this.availDevices=[...this.allDevices],this.loading=!1},()=>{this.allDevices=[],this.availDevices=[],this.loading=!1}))}setSlots(t,e){"number"==typeof e&&e>=0&&this.driveGroup.setSlots(t,e)}featureFormUpdate(t,e){this.driveGroup.setFeature(t,e)}enableFeatures(){this.featureList.forEach(t=>{this.form.get(t.key).enable({emitEvent:!1})})}disableFeatures(){this.featureList.forEach(t=>{const e=this.form.get(t.key);e.disable({emitEvent:!1}),e.setValue(!1,{emitEvent:!1})})}onDevicesSelected(t){if(this.availDevices=t.dataOut,"data"===t.type){const e=$.find(t.filters,{prop:"hostname"});e?(this.hostname=e.value.raw,this.availDevices=t.dataOut.filter(t=>t.hostname===this.hostname),this.driveGroup.setHostPattern(this.hostname)):this.driveGroup.setHostPattern("*"),this.enableFeatures()}this.driveGroup.setDeviceSelection(t.type,t.filters)}onDevicesCleared(t){"data"===t.type?(this.availDevices=[...this.allDevices],this.walDeviceSelectionGroups.devices=[],this.dbDeviceSelectionGroups.devices=[],this.disableFeatures(),this.driveGroup.reset(),this.form.get("walSlots").setValue(0,{emitEvent:!1}),this.form.get("dbSlots").setValue(0,{emitEvent:!1})):(this.availDevices=[...this.availDevices,...t.clearedDevices],this.driveGroup.clearDeviceSelection(t.type),this.form.get(`${t.type}Slots`).setValue(0,{emitEvent:!1}))}submit(){const t=this.authStorageService.getUsername();this.driveGroup.setName(`dashboard-${t}-${$.now()}`),this.bsModalService.show(Ws,{initialState:{driveGroups:[this.driveGroup.spec]}}).content.submitAction.subscribe(()=>{this.router.navigate(["/osd"])}),this.previewButton.loading=!1}}var Zs=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Js(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,xr,Mr)),i["ɵdid"](1,114688,null,0,Pr,[bt.a,ft.a],null,null)],(function(t,e){t(e,1,0)}),null)}function Xs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Value should be greater than or equal to 0"]))],null,null)}function Qs(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,9,"label",[["class","cd-col-form-label"],["for","walSlots"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["WAL slots"])),(t()(),i["ɵeld"](7,0,null,null,6,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](8,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵeld"](9,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["How many OSDs per WAL device."])),(t()(),i["ɵeld"](11,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Specify 0 to let Orchestrator backend decide it."])),(t()(),i["ɵeld"](14,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,7,"input",[["class","form-control"],["formControlName","walSlots"],["id","walSlots"],["min","0"],["name","walSlots"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,16)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,16).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,16)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,16)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,17).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,17).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,17).onTouched()&&a),a}),null,null)),i["ɵdid"](16,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](17,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](19,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](21,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](22,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Xs)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,19,0,"walSlots"),t(e,22,0,"walSlots"),t(e,24,0,n.form.showError("walSlots",i["ɵnov"](e.parent,3),"min"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,15,0,i["ɵnov"](e,21).ngClassUntouched,i["ɵnov"](e,21).ngClassTouched,i["ɵnov"](e,21).ngClassPristine,i["ɵnov"](e,21).ngClassDirty,i["ɵnov"](e,21).ngClassValid,i["ɵnov"](e,21).ngClassInvalid,i["ɵnov"](e,21).ngClassPending,i["ɵnov"](e,22).validClass,i["ɵnov"](e,22).invalidClass)}))}function tc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Value should be greater than or equal to 0"]))],null,null)}function ec(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,7,{FormControlNames:1}),i["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,9,"label",[["class","cd-col-form-label"],["for","dbSlots"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["DB slots"])),(t()(),i["ɵeld"](7,0,null,null,6,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](8,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵeld"](9,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["How many OSDs per DB device."])),(t()(),i["ɵeld"](11,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Specify 0 to let Orchestrator backend decide it."])),(t()(),i["ɵeld"](14,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,7,"input",[["class","form-control"],["formControlName","dbSlots"],["id","dbSlots"],["min","0"],["name","dbSlots"],["type","number"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,16)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,16).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,16)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,16)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,17).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,17).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,17).onTouched()&&a),a}),null,null)),i["ɵdid"](16,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](17,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](19,671744,[[7,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](21,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](22,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,tc)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,19,0,"dbSlots"),t(e,22,0,"dbSlots"),t(e,24,0,n.form.showError("dbSlots",i["ɵnov"](e.parent,3),"min"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,15,0,i["ɵnov"](e,21).ngClassUntouched,i["ɵnov"](e,21).ngClassTouched,i["ɵnov"](e,21).ngClassPristine,i["ɵnov"](e,21).ngClassDirty,i["ɵnov"](e,21).ngClassValid,i["ɵnov"](e,21).ngClassInvalid,i["ɵnov"](e,21).ngClassPending,i["ɵnov"](e,22).validClass,i["ɵnov"](e,22).invalidClass)}))}function nc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[8,"name",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,2).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,2).onTouched()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](4,671744,[[9,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](6,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](7,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](8,0,null,null,1,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵted"](9,null,["",""]))],(function(t,e){t(e,4,0,i["ɵinlineInterpolate"](1,"",e.context.$implicit.key,"")),t(e,7,0,i["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""))}),(function(t,e){t(e,1,1,[i["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""),i["ɵinlineInterpolate"](1,"",e.context.$implicit.key,""),i["ɵnov"](e,6).ngClassUntouched,i["ɵnov"](e,6).ngClassTouched,i["ɵnov"](e,6).ngClassPristine,i["ɵnov"](e,6).ngClassDirty,i["ɵnov"](e,6).ngClassValid,i["ɵnov"](e,6).ngClassInvalid,i["ɵnov"](e,6).ngClassPending,i["ɵnov"](e,7).validClass,i["ɵnov"](e,7).invalidClass]),t(e,8,0,i["ɵinlineInterpolate"](1,"",e.context.$implicit.key,"")),t(e,9,0,e.context.$implicit.desc)}))}function ac(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,48,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,47,"form",[["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.G,[],null,null),i["ɵdid"](3,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](5,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](6,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](7,0,null,null,41,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](9,null,[""," ",""])),i["ɵppd"](10,1),i["ɵppd"](11,1),(t()(),i["ɵeld"](12,0,null,null,29,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,2,"fieldset",[],null,null,null,null,null)),(t()(),i["ɵeld"](14,0,null,null,1,"cd-osd-devices-selection-groups",[["name","Primary"],["type","data"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),Us,js)),i["ɵdid"](15,638976,[[1,4],["dataDeviceSelectionGroups",4]],0,qs,[Mt.b,ia.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),i["ɵeld"](16,0,null,null,10,"fieldset",[],null,null,null,null,null)),(t()(),i["ɵeld"](17,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Shared devices"])),(t()(),i["ɵeld"](19,0,null,null,1,"cd-osd-devices-selection-groups",[["name","WAL"],["type","wal"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),Us,js)),i["ɵdid"](20,638976,[[2,4],["walDeviceSelectionGroups",4]],0,qs,[Mt.b,ia.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),i["ɵand"](16777216,null,null,1,null,Qs)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](23,0,null,null,1,"cd-osd-devices-selection-groups",[["name","DB"],["type","db"]],null,[[null,"selected"],[null,"cleared"]],(function(t,e,n){var a=!0,r=t.component;return"selected"===e&&(a=!1!==r.onDevicesSelected(n)&&a),"cleared"===e&&(a=!1!==r.onDevicesCleared(n)&&a),a}),Us,js)),i["ɵdid"](24,638976,[[3,4],["dbDeviceSelectionGroups",4]],0,qs,[Mt.b,ia.a],{type:[0,"type"],name:[1,"name"],availDevices:[2,"availDevices"],canSelect:[3,"canSelect"]},{selected:"selected",cleared:"cleared"}),(t()(),i["ɵand"](16777216,null,null,1,null,ec)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](27,0,null,null,14,"fieldset",[],null,null,null,null,null)),(t()(),i["ɵeld"](28,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Configuration"])),(t()(),i["ɵeld"](30,0,null,null,11,"div",[["class","form-group row"],["formGroupName","features"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](31,212992,null,0,W.m,[[3,W.d],[8,null],[8,null]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.d,null,[W.m]),i["ɵdid"](33,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](34,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,9,{FormControlNames:1}),i["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),i["ɵeld"](37,0,null,0,1,"label",[["class","cd-col-form-label"],["for","features"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Features"])),(t()(),i["ɵeld"](39,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,nc)),i["ɵdid"](41,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](42,0,null,null,6,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](43,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](44,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ri.b,ri.a)),i["ɵdid"](45,114688,[[4,4],["previewButton",4]],0,oi.a,[i.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](-1,0,["Preview"])),(t()(),i["ɵeld"](47,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](48,49152,null,0,si.a,[o.Location,vt.b],null,null)],(function(t,e){var n=e.component;t(e,3,0,n.form),t(e,6,0,n.form),t(e,15,0,"data","Primary",n.availDevices,0!==n.availDevices.length),t(e,20,0,"wal","WAL",n.availDevices,0!==i["ɵnov"](e,15).devices.length),t(e,22,0,0!==i["ɵnov"](e,20).devices.length),t(e,24,0,"db","DB",n.availDevices,0!==i["ɵnov"](e,15).devices.length),t(e,26,0,0!==i["ɵnov"](e,24).devices.length),t(e,31,0,"features"),t(e,34,0),t(e,41,0,n.featureList),t(e,45,0,i["ɵnov"](e,3),0===i["ɵnov"](e,15).devices.length)}),(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending);var a=i["ɵunv"](e,9,0,t(e,10,0,i["ɵnov"](e.parent,0),n.action)),r=i["ɵunv"](e,9,1,t(e,11,0,i["ɵnov"](e.parent,1),n.resource));t(e,9,0,a,r),t(e,30,0,i["ɵnov"](e,33).ngClassUntouched,i["ɵnov"](e,33).ngClassTouched,i["ɵnov"](e,33).ngClassPristine,i["ɵnov"](e,33).ngClassDirty,i["ɵnov"](e,33).ngClassValid,i["ɵnov"](e,33).ngClassInvalid,i["ɵnov"](e,33).ngClassPending,i["ɵnov"](e,34).hasErrors,i["ɵnov"](e,34).hasSuccess)}))}function rc(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),i["ɵqud"](671088640,1,{dataDeviceSelectionGroups:0}),i["ɵqud"](671088640,2,{walDeviceSelectionGroups:0}),i["ɵqud"](671088640,3,{dbDeviceSelectionGroups:0}),i["ɵqud"](671088640,4,{previewButton:0}),(t()(),i["ɵand"](16777216,null,null,1,null,Js)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ac)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,7,0,!n.hasOrchestrator),t(e,9,0,!n.loading&&n.hasOrchestrator)}),null)}function oc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-form",[],null,null,null,rc,Zs)),i["ɵdid"](1,114688,null,0,$s,[vt.b,yt.a,ia.a,wr,St.m,Mt.b],null,null)],(function(t,e){t(e,1,0)}),null)}var ic=i["ɵccf"]("cd-osd-form",$s,oc,{},{},[]),sc=n("iExv");class cc{constructor(t){this.i18n=t,this.flags={runtime:this.i18n("The value can be updated at runtime."),no_mon_update:this.i18n("Daemons/clients do not pull this value from the\n      monitor config database. We disallow setting this option via 'ceph config\n      set ...'. This option should be configured via ceph.conf or via the\n      command line."),startup:this.i18n("Option takes effect only during daemon startup."),cluster_create:this.i18n("Option only affects cluster creation."),create:this.i18n("Option only affects daemon creation.")}}ngOnChanges(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.selectedItem.services=$.split(this.selectedItem.services,","))}}var lc=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function dc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ",": ","",""])),(t()(),i["ɵeld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")}))}function uc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"span",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,3,"span",[],[[8,"title",0]],null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,2,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),i["ɵted"](3,null,["",""])),i["ɵppd"](4,1)],null,(function(t,e){t(e,1,0,i["ɵinlineInterpolate"](1,"",e.component.flags[e.context.$implicit],""));var n=i["ɵunv"](e,3,0,t(e,4,0,i["ɵnov"](e.parent.parent,0),e.context.$implicit));t(e,3,0,n)}))}function gc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark mr-2"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function fc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,94,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,92,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,90,"table",[["class","table table-striped table-bordered"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,89,"tbody",[],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"td",[["class","bold w-25"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Name"])),(t()(),i["ɵeld"](9,0,null,null,1,"td",[["class","w-75"]],null,null,null,null,null)),(t()(),i["ɵted"](10,null,["",""])),(t()(),i["ɵeld"](11,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Description"])),(t()(),i["ɵeld"](14,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](15,null,["",""])),(t()(),i["ɵeld"](16,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](17,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Long description"])),(t()(),i["ɵeld"](19,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](20,null,["",""])),(t()(),i["ɵeld"](21,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](22,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Current values"])),(t()(),i["ɵeld"](24,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,dc)),i["ɵdid"](26,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](27,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](28,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Default"])),(t()(),i["ɵeld"](30,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](31,null,["",""])),(t()(),i["ɵeld"](32,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](33,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Daemon default"])),(t()(),i["ɵeld"](35,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](36,null,["",""])),(t()(),i["ɵeld"](37,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](38,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Type"])),(t()(),i["ɵeld"](40,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](41,null,["",""])),(t()(),i["ɵeld"](42,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](43,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Min"])),(t()(),i["ɵeld"](45,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](46,null,["",""])),(t()(),i["ɵeld"](47,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](48,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Max"])),(t()(),i["ɵeld"](50,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](51,null,["",""])),(t()(),i["ɵeld"](52,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](53,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Flags"])),(t()(),i["ɵeld"](55,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,uc)),i["ɵdid"](57,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](58,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](59,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Services"])),(t()(),i["ɵeld"](61,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,gc)),i["ɵdid"](63,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](64,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](65,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Source"])),(t()(),i["ɵeld"](67,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](68,null,["",""])),(t()(),i["ɵeld"](69,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](70,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Level"])),(t()(),i["ɵeld"](72,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](73,null,["",""])),(t()(),i["ɵeld"](74,0,null,null,5,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](75,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Can be updated at runtime (editable)"])),(t()(),i["ɵeld"](77,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](78,null,["",""])),i["ɵppd"](79,1),(t()(),i["ɵeld"](80,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](81,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Tags"])),(t()(),i["ɵeld"](83,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](84,null,["",""])),(t()(),i["ɵeld"](85,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](86,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Enum values"])),(t()(),i["ɵeld"](88,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](89,null,["",""])),(t()(),i["ɵeld"](90,0,null,null,4,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](91,0,null,null,1,"td",[["class","bold"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["See also"])),(t()(),i["ɵeld"](93,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](94,null,["",""]))],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,26,0,n.selectedItem.value),t(e,57,0,n.selectedItem.flags),t(e,63,0,n.selectedItem.services)}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,10,0,n.selectedItem.name),t(e,15,0,n.selectedItem.desc),t(e,20,0,n.selectedItem.long_desc),t(e,31,0,n.selectedItem.default),t(e,36,0,n.selectedItem.daemon_default),t(e,41,0,n.selectedItem.type),t(e,46,0,n.selectedItem.min),t(e,51,0,n.selectedItem.max),t(e,68,0,n.selectedItem.source),t(e,73,0,n.selectedItem.level);var a=i["ɵunv"](e,78,0,t(e,79,0,i["ɵnov"](e.parent,1),n.selectedItem.can_update_at_runtime));t(e,78,0,a),t(e,84,0,n.selectedItem.tags),t(e,89,0,n.selectedItem.enum_values),t(e,94,0,n.selectedItem.see_also)}))}function pc(t){return i["ɵvid"](0,[i["ɵpid"](0,o.UpperCasePipe,[]),i["ɵpid"](0,sc.a,[ia.a]),(t()(),i["ɵand"](16777216,null,null,1,null,fc)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,null==n.selection?null:n.selection.hasSingleSelection)}),null)}class mc{constructor(t,e,n,a){this.authStorageService=t,this.configurationService=e,this.i18n=n,this.actionLabels=a,this.data=[],this.icons=ut.a,this.selection=new kr.a,this.filters=[{name:this.i18n("Level"),prop:"level",filterOptions:["basic","advanced","dev"],filterInitValue:"basic",filterPredicate:(t,e)=>{let n;return function(t){t[t.basic=0]="basic",t[t.advanced=1]="advanced",t[t.dev=2]="dev"}(n||(n={})),n[t.level]<=n[e]}},{name:this.i18n("Service"),prop:"services",filterOptions:["mon","mgr","osd","mds","common","mds_client","rgw"],filterPredicate:(t,e)=>t.services.includes(e)},{name:this.i18n("Source"),prop:"source",filterOptions:["mon"],filterPredicate:(t,e)=>!!t.hasOwnProperty("source")&&t.source.includes(e)},{name:this.i18n("Modified"),prop:"modified",filterOptions:["yes","no"],filterPredicate:(t,e)=>!("yes"!==e||!t.hasOwnProperty("value"))||"no"===e&&!t.hasOwnProperty("value")}],this.permission=this.authStorageService.getPermissions().configOpt;const r=()=>this.selection.first()&&`${encodeURIComponent(this.selection.first().name)}`;this.tableActions=[{permission:"update",icon:ut.a.edit,routerLink:()=>`/configuration/edit/${r()}`,name:this.actionLabels.EDIT,disable:()=>!this.isEditable(this.selection)}]}ngOnInit(){this.columns=[{canAutoResize:!0,prop:"name",name:this.i18n("Name")},{prop:"desc",name:this.i18n("Description"),cellClass:"wrap"},{prop:"value",name:this.i18n("Current value"),cellClass:"wrap",cellTemplate:this.confValTpl},{prop:"default",name:this.i18n("Default"),cellClass:"wrap"},{prop:"can_update_at_runtime",name:this.i18n("Editable"),cellTransformation:Sr.a.checkIcon,flexGrow:.4,cellClass:"text-center"}]}updateSelection(t){this.selection=t}getConfigurationList(t){this.configurationService.getConfigData().subscribe(t=>{this.data=t},()=>{t.error()})}isEditable(t){return 1===t.selected.length&&t.selected[0].can_update_at_runtime}}var hc=i["ɵcrt"]({encapsulation:0,styles:[[".filter[_ngcontent-%COMP%]{padding-right:8px}.fa-stack[_ngcontent-%COMP%]{font-size:.79rem}.fa-stack[_ngcontent-%COMP%]   .fa-stack-1x[_ngcontent-%COMP%]{margin-left:8px;margin-top:5px}  datatable-body-cell.wrap{word-break:break-all}"]],data:{}});function bc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ",": ","",""])),(t()(),i["ɵeld"](2,0,null,null,0,"br",[],null,null,null,null,null))],null,(function(t,e){t(e,1,0,e.context.$implicit.section,e.context.$implicit.value,e.context.last?"":",")}))}function yc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,bc)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.parent.context.value)}),null)}function _c(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,yc)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.context.value)}),null)}function Oc(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{confValTpl:0}),i["ɵqud"](671088640,2,{confFlagTpl:0}),(t()(),i["ɵeld"](2,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.getConfigurationList(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](3,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"],extraFilterableColumns:[3,"extraFilterableColumns"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](5,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵeld"](6,0,null,3,1,"cd-configuration-details",[["cdTableDetail",""]],null,null,null,pc,lc)),i["ɵdid"](7,573440,null,0,cc,[ia.a],{selection:[0,"selection"]},null),(t()(),i["ɵand"](0,[[1,2],["confValTpl",2]],null,0,null,_c))],(function(t,e){var n=e.component;t(e,3,0,n.data,n.columns,"single",n.filters),t(e,5,0,n.permission,n.selection,n.tableActions),t(e,7,0,n.selection)}),null)}function vc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-configuration",[],null,null,null,Oc,hc)),i["ɵdid"](1,114688,null,0,mc,[yt.a,gs.a,ia.a,vt.b],null,null)],(function(t,e){t(e,1,0)}),null)}var Cc=i["ɵccf"]("cd-configuration",mc,vc,{},{},[]);class Pc{constructor(){this.value=[]}}class Mc{constructor(t,e,n,a,r){this.route=t,this.router=e,this.configService=n,this.notificationService=a,this.i18n=r,this.availSections=["global","mon","mgr","osd","mds","client"],this.createForm()}createForm(){const t={name:new W.i({value:null}),desc:new W.i({value:null}),long_desc:new W.i({value:null}),values:new W.k({}),default:new W.i({value:null}),daemon_default:new W.i({value:null}),services:new W.i([])};this.availSections.forEach(e=>{t.values.addControl(e,new W.i(null))}),this.configForm=new li.a(t)}ngOnInit(){this.route.params.subscribe(t=>{this.configService.get(t.name).subscribe(t=>{this.setResponse(t)})})}getValidators(t){const e=fs.getTypeValidators(t);if(e)return this.patternHelpText=e.patternHelpText,"max"in e&&""!==e.max&&(this.maxValue=e.max),"min"in e&&""!==e.min&&(this.minValue=e.min),e.validators}getStep(t,e){return fs.getTypeStep(t,e)}setResponse(t){this.response=t;const e=this.getValidators(t);this.configForm.get("name").setValue(t.name),this.configForm.get("desc").setValue(t.desc),this.configForm.get("long_desc").setValue(t.long_desc),this.configForm.get("default").setValue(t.default),this.configForm.get("daemon_default").setValue(t.daemon_default),this.configForm.get("services").setValue(t.services),this.response.value&&this.response.value.forEach(t=>{let e=null;e="true"===t.value||"false"!==t.value&&t.value,this.configForm.get("values").get(t.section).setValue(e)}),this.availSections.forEach(t=>{this.configForm.get("values").get(t).setValidators(e)});const n=fs.getType(t.type);this.type=n.name,this.inputType=n.inputType,this.humanReadableType=n.humanReadable}createRequest(){const t=[];if(this.availSections.forEach(e=>{const n=this.configForm.getValue(e);null!==n&&""!==n&&t.push({section:e,value:n})}),!$.isEqual(this.response.value,t)){const e=new Pc;return e.name=this.configForm.getValue("name"),e.value=t,e}return null}submit(){const t=this.createRequest();t&&this.configService.create(t).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n("Updated config option {{name}}",{name:t.name})),this.router.navigate(["/configuration"])},()=>{this.configForm.setErrors({cdSubmitButton:!0})}),this.router.navigate(["/configuration"])}}var xc=i["ɵcrt"]({encapsulation:0,styles:[[".form-component-badge[_ngcontent-%COMP%]{height:34px;display:block}.form-component-badge[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{margin-top:7px}.resize-vertical[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function wc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Description"])),(t()(),i["ɵeld"](6,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,7,"textarea",[["class","form-control resize-vertical"],["formControlName","desc"],["id","desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵted"](-1,null,["            "]))],(function(t,e){t(e,1,0),t(e,10,0,"desc"),t(e,13,0,"desc")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function Tc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Long description"])),(t()(),i["ɵeld"](6,0,null,0,8,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,7,"textarea",[["class","form-control resize-vertical"],["formControlName","long_desc"],["id","long_desc"],["readonly",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵted"](-1,null,["            "]))],(function(t,e){t(e,1,0),t(e,10,0,"long_desc"),t(e,13,0,"long_desc")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function Sc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,7,{FormControlNames:1}),i["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Default"])),(t()(),i["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","default"],["id","default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[7,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,10,0,"default"),t(e,13,0,"default")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function kc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,9,{FormControlNames:1}),i["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Daemon default"])),(t()(),i["ɵeld"](6,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,6,"input",[["class","form-control"],["formControlName","daemon_default"],["id","daemon_default"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[9,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,10,0,"daemon_default"),t(e,13,0,"daemon_default")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function Ic(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[["class","form-component-badge"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["class","badge badge-dark"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""]))],null,(function(t,e){t(e,2,0,e.context.$implicit)}))}function Nc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,11,{FormControlNames:1}),i["ɵqud"](603979776,12,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Services"])),(t()(),i["ɵeld"](6,0,null,0,2,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Ic)),i["ɵdid"](8,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,8,0,n.configForm.getValue("services"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess)}))}function Rc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,13,{FormControlNames:1}),i["ɵqud"](603979776,14,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵted"](5,null,[""," "])),(t()(),i["ɵeld"](6,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,18,"select",[["class","form-control custom-select"],["id","pool"],["name","pool"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,[[13,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](14,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](15,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{ngValue:[0,"ngValue"]},null),i["ɵdid"](16,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),i["ɵted"](-1,null,["-- Default --"])),(t()(),i["ɵeld"](18,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](19,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{ngValue:[0,"ngValue"]},null),i["ɵdid"](20,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),i["ɵted"](-1,null,["true"])),(t()(),i["ɵeld"](22,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](23,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{ngValue:[0,"ngValue"]},null),i["ɵdid"](24,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),i["ɵted"](-1,null,["false"]))],(function(t,e){t(e,1,0),t(e,10,0,e.parent.context.$implicit),t(e,13,0,e.parent.context.$implicit),t(e,15,0,null),t(e,16,0,null),t(e,19,0,!0),t(e,20,0,!0),t(e,23,0,!1),t(e,24,0,!1)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit),t(e,5,0,e.parent.context.$implicit),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function Ac(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.patternHelpText)}))}function Ec(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.patternHelpText)}))}function Dc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.component.maxValue)}))}function Lc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.component.minValue)}))}function qc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,15,{FormControlNames:1}),i["ɵqud"](603979776,16,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵted"](5,null,[""," "])),(t()(),i["ɵeld"](6,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[15,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ac)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ec)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Dc)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Lc)),i["ɵdid"](21,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,e.parent.context.$implicit),t(e,13,0,e.parent.context.$implicit),t(e,15,0,n.configForm.showError(e.parent.context.$implicit,i["ɵnov"](e.parent.parent,3),"pattern")),t(e,17,0,n.configForm.showError(e.parent.context.$implicit,i["ɵnov"](e.parent.parent,3),"invalidUuid")),t(e,19,0,n.configForm.showError(e.parent.context.$implicit,i["ɵnov"](e.parent.parent,3),"max")),t(e,21,0,n.configForm.showError(e.parent.context.$implicit,i["ɵnov"](e.parent.parent,3),"min"))}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit),t(e,5,0,e.parent.context.$implicit),t(e,7,1,[n.inputType,e.parent.context.$implicit,n.humanReadableType,n.getStep(n.type,n.configForm.getValue(e.parent.context.$implicit)),i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass])}))}function jc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,null,null,null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Rc)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,qc)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.component;t(e,2,0,"bool"===n.type),t(e,4,0,"bool"!==n.type)}),null)}function Fc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,52,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,51,"form",[["name","configForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.G,[],null,null),i["ɵdid"](3,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](5,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](6,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](7,0,null,null,45,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Edit"])),(t()(),i["ɵted"](11,null,[" "," "])),(t()(),i["ɵeld"](12,0,null,null,32,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,13,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](14,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](17,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Name"])),(t()(),i["ɵeld"](19,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](20,0,null,null,6,"input",[["class","form-control"],["formControlName","name"],["id","name"],["readonly",""],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](21,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](23,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](25,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](26,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,wc)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Tc)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Sc)),i["ɵdid"](32,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,kc)),i["ɵdid"](34,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Nc)),i["ɵdid"](36,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](37,0,null,null,7,"div",[["formGroupName","values"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),i["ɵdid"](38,212992,null,0,W.m,[[3,W.d],[8,null],[8,null]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.d,null,[W.m]),i["ɵdid"](40,16384,null,0,W.s,[[4,W.d]],null,null),(t()(),i["ɵeld"](41,0,null,null,1,"h2",[["class","cd-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Values"])),(t()(),i["ɵand"](16777216,null,null,1,null,jc)),i["ɵdid"](44,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](45,0,null,null,7,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](46,0,null,null,6,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](47,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ri.b,ri.a)),i["ɵdid"](48,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵeld"](49,0,null,0,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Save"])),(t()(),i["ɵeld"](51,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](52,49152,null,0,si.a,[o.Location,vt.b],null,null)],(function(t,e){var n=e.component;t(e,3,0,n.configForm),t(e,6,0,n.configForm),t(e,14,0),t(e,23,0,"name"),t(e,26,0,"name"),t(e,28,0,n.configForm.getValue("desc")),t(e,30,0,n.configForm.getValue("long_desc")),t(e,32,0,""!==n.configForm.getValue("default")),t(e,34,0,""!==n.configForm.getValue("daemon_default")),t(e,36,0,n.configForm.getValue("services").length>0),t(e,38,0,"values"),t(e,44,0,n.availSections),t(e,48,0,i["ɵnov"](e,3))}),(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending),t(e,11,0,n.configForm.getValue("name")),t(e,13,0,i["ɵnov"](e,14).hasErrors,i["ɵnov"](e,14).hasSuccess),t(e,20,0,i["ɵnov"](e,25).ngClassUntouched,i["ɵnov"](e,25).ngClassTouched,i["ɵnov"](e,25).ngClassPristine,i["ɵnov"](e,25).ngClassDirty,i["ɵnov"](e,25).ngClassValid,i["ɵnov"](e,25).ngClassInvalid,i["ɵnov"](e,25).ngClassPending,i["ɵnov"](e,26).validClass,i["ɵnov"](e,26).invalidClass),t(e,37,0,i["ɵnov"](e,40).ngClassUntouched,i["ɵnov"](e,40).ngClassTouched,i["ɵnov"](e,40).ngClassPristine,i["ɵnov"](e,40).ngClassDirty,i["ɵnov"](e,40).ngClassValid,i["ɵnov"](e,40).ngClassInvalid,i["ɵnov"](e,40).ngClassPending)}))}function zc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-configuration-form",[],null,null,null,Fc,xc)),i["ɵdid"](1,114688,null,0,Mc,[St.a,St.m,gs.a,gt.a,ia.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Gc=i["ɵccf"]("cd-configuration-form",Mc,zc,{},{},[]),Bc=n("LOMR"),Vc=n("MP8s"),Yc=n("fxL3"),Hc=n("gk6K"),Uc=n("mrSG"),Wc=n("yYhs");class Kc{constructor(t){this.healthService=t,this.icons=ut.a,this.loadingIndicator=!0,this.nodes=[],this.treeOptions={useVirtualScroll:!0,actionMapping:{mouse:{click:this.onNodeSelected.bind(this)}}},this.metadataKeyMap={}}ngOnInit(){this.healthService.getFullHealth().subscribe(t=>{this.loadingIndicator=!1,this.nodes=this.abstractTreeData(t)})}abstractTreeData(t){const e=t.osd_map.tree.nodes||[],n={};if(0===e.length)return[{name:"No nodes!"}];const a=[];return e.reverse().forEach(t=>{"root"===t.type&&a.push(t.id),n[t.id]=this.generateTreeLeaf(t,n)}),a.map(t=>n[t])}generateTreeLeaf(t,e){const n=t.id;this.metadataKeyMap[n]=t;const a=[],r={name:t.name+" ("+t.type+")",status:t.status,cdId:n,type:t.type};return t.children&&(t.children.sort().forEach(t=>{a.push(e[t])}),r.children=a),r}onNodeSelected(t,e){if(Wc.a.ACTIVATE(t,e,!0),void 0!==e.data.cdId){const t=this.metadataKeyMap[e.data.cdId],{name:n,type:a}=t,r=Uc.__rest(t,["name","type","status"]);this.metadata=r,this.metadataTitle=n+" ("+a+")"}else delete this.metadata,delete this.metadataTitle}onUpdateData(){this.tree.treeModel.expandAll()}}var $c=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Zc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](3,3)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.large,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function Jc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"span",[["class","badge"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpad"](3,2),i["ɵpad"](4,3),i["ɵpod"](5,{"badge-success":0,"badge-danger":1}),(t()(),i["ɵted"](6,null,[" "," "]))],(function(t,e){var n=t(e,5,0,t(e,3,0,"in","up").includes(e.parent.context.$implicit.data.status),t(e,4,0,"down","out","destroyed").includes(e.parent.context.$implicit.data.status));t(e,2,0,"badge",n)}),(function(t,e){t(e,6,0,e.parent.context.$implicit.data.status)}))}function Xc(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Jc)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" "])),(t()(),i["ɵeld"](4,0,null,null,3,"span",[["class","node-name"]],[[8,"innerHTML",1]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](7,{"type-osd":0})],(function(t,e){t(e,1,0,e.context.$implicit.data.status);var n=t(e,7,0,"osd"===e.context.$implicit.data.type);t(e,6,0,"node-name",n)}),(function(t,e){t(e,4,0,e.context.$implicit.data.name)}))}function Qc(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"div",[["class","col-sm-6 col-lg-6 metadata"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""])),(t()(),i["ɵeld"](3,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](4,638976,null,0,$r.a,[se.a],{data:[0,"data"]},null)],(function(t,e){t(e,4,0,e.component.metadata)}),(function(t,e){t(e,2,0,e.component.metadataTitle)}))}function tl(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{tree:0}),(t()(),i["ɵeld"](1,0,null,null,19,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,18,"div",[["class","col-sm-12 col-lg-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,17,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CRUSH map viewer"])),(t()(),i["ɵeld"](6,0,null,null,14,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,10,"div",[["class","col-sm-6 col-lg-6"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Zc)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](11,0,null,null,7,"tree-root",[],null,[[null,"updateData"],["body","keydown"],["body","mousedown"]],(function(t,e,n){var a=!0,r=t.component;return"body:keydown"===e&&(a=!1!==i["ɵnov"](t,13).onKeydown(n)&&a),"body:mousedown"===e&&(a=!1!==i["ɵnov"](t,13).onMousedown(n)&&a),"updateData"===e&&(a=!1!==r.onUpdateData()&&a),a}),Bc.b,Bc.a)),i["ɵprd"](131584,null,Vc.a,Vc.a,[]),i["ɵdid"](13,573440,[[1,4],["tree",4]],4,Yc.a,[Vc.a,Hc.a],{nodes:[0,"nodes"],options:[1,"options"]},{updateData:"updateData"}),i["ɵqud"](603979776,2,{loadingTemplate:0}),i["ɵqud"](603979776,3,{treeNodeTemplate:0}),i["ɵqud"](603979776,4,{treeNodeWrapperTemplate:0}),i["ɵqud"](603979776,5,{treeNodeFullTemplate:0}),(t()(),i["ɵand"](0,[[3,2],["treeNodeTemplate",2]],null,0,null,Xc)),(t()(),i["ɵand"](16777216,null,null,1,null,Qc)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,10,0,n.loadingIndicator),t(e,13,0,n.nodes,n.treeOptions),t(e,20,0,n.metadata)}),null)}function el(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-crushmap",[],null,null,null,tl,$c)),i["ɵdid"](1,114688,null,0,Kc,[ga],null,null)],(function(t,e){t(e,1,0)}),null)}var nl=i["ɵccf"]("cd-crushmap",Kc,el,{},{},[]),al=n("AfCQ");let rl=(()=>{class t{writeValue(e){return{type:t.WRITE_VALUE,payload:e}}changeHours(e){return{type:t.CHANGE_HOURS,payload:e}}changeMinutes(e){return{type:t.CHANGE_MINUTES,payload:e}}changeSeconds(e){return{type:t.CHANGE_SECONDS,payload:e}}setTime(e){return{type:t.SET_TIME_UNIT,payload:e}}updateControls(e){return{type:t.UPDATE_CONTROLS,payload:e}}}return t.WRITE_VALUE="[timepicker] write value from ng model",t.CHANGE_HOURS="[timepicker] change hours",t.CHANGE_MINUTES="[timepicker] change minutes",t.CHANGE_SECONDS="[timepicker] change seconds",t.SET_TIME_UNIT="[timepicker] set time unit",t.UPDATE_CONTROLS="[timepicker] update controls",t})();function ol(t){return!!t&&!(t instanceof Date&&isNaN(t.getHours()))&&("string"!=typeof t||ol(new Date(t)))}function il(t,e){return!(t.min&&e<t.min||t.max&&e>t.max)}function sl(t){return"number"==typeof t?t:parseInt(t,10)}function cl(t,e=!1){const n=sl(t);return isNaN(n)||n<0||n>(e?12:24)?NaN:n}function ll(t){const e=sl(t);return isNaN(e)||e<0||e>60?NaN:e}function dl(t){const e=sl(t);return isNaN(e)||e<0||e>60?NaN:e}function ul(t){return"string"==typeof t?new Date(t):t}function gl(t,e){if(!t)return gl(pl(new Date,0,0,0),e);let n=t.getHours(),a=t.getMinutes(),r=t.getSeconds();return e.hour&&(n=(n+sl(e.hour))%24,n<0&&(n+=24)),e.minute&&(a+=sl(e.minute)),e.seconds&&(r+=sl(e.seconds)),pl(t,n,a,r)}function fl(t,e){let n=cl(e.hour);const a=ll(e.minute),r=dl(e.seconds)||0;return e.isPM&&12!==n&&(n+=12),t?isNaN(n)||isNaN(a)?t:pl(t,n,a,r):isNaN(n)||isNaN(a)?t:pl(new Date,n,a,r)}function pl(t,e,n,a){return new Date(t.getFullYear(),t.getMonth(),t.getDate(),e,n,a,t.getMilliseconds())}function ml(t){const e=t.toString();return e.length>1?e:`0${e}`}function hl(t,e){return!isNaN(cl(t,e))}function bl(t){return!isNaN(ll(t))}function yl(t){return!isNaN(dl(t))}function _l(t,e="0",n="0",a){return hl(t,a)&&bl(e)&&yl(n)}function Ol(t,e){if(t.readonlyInput||t.disabled)return!1;if(e){if("wheel"===e.source&&!t.mousewheel)return!1;if("key"===e.source&&!t.arrowkeys)return!1}return!0}function vl(t){const{hourStep:e,minuteStep:n,secondsStep:a,readonlyInput:r,disabled:o,mousewheel:i,arrowkeys:s,showSpinners:c,showMeridian:l,showSeconds:d,meridians:u,min:g,max:f}=t;return{hourStep:e,minuteStep:n,secondsStep:a,readonlyInput:r,disabled:o,mousewheel:i,arrowkeys:s,showSpinners:c,showMeridian:l,showSeconds:d,meridians:u,min:g,max:f}}class Cl{constructor(){this.hourStep=1,this.minuteStep=5,this.secondsStep=10,this.showMeridian=!0,this.meridians=["AM","PM"],this.readonlyInput=!1,this.disabled=!1,this.mousewheel=!0,this.arrowkeys=!0,this.showSpinners=!0,this.showSeconds=!1,this.showMinutes=!0}}const Pl={value:null,config:new Cl,controls:{canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0}};function Ml(t=Pl,e){switch(e.type){case rl.WRITE_VALUE:return Object.assign({},t,{value:e.payload});case rl.CHANGE_HOURS:{if(!Ol(t.config,e.payload)||(a=t.controls,!(n=e.payload).step||n.step>0&&!a.canIncrementHours||n.step<0&&!a.canDecrementHours))return t;const r=gl(t.value,{hour:e.payload.step});return!t.config.max&&!t.config.min||il(t.config,r)?Object.assign({},t,{value:r}):t}case rl.CHANGE_MINUTES:{if(!Ol(t.config,e.payload)||!function(t,e){return!(!t.step||t.step>0&&!e.canIncrementMinutes||t.step<0&&!e.canDecrementMinutes)}(e.payload,t.controls))return t;const n=gl(t.value,{minute:e.payload.step});return!t.config.max&&!t.config.min||il(t.config,n)?Object.assign({},t,{value:n}):t}case rl.CHANGE_SECONDS:{if(!Ol(t.config,e.payload)||!function(t,e){return!(!t.step||t.step>0&&!e.canIncrementSeconds||t.step<0&&!e.canDecrementSeconds)}(e.payload,t.controls))return t;const n=gl(t.value,{seconds:e.payload.step});return!t.config.max&&!t.config.min||il(t.config,n)?Object.assign({},t,{value:n}):t}case rl.SET_TIME_UNIT:{if(!Ol(t.config))return t;const n=fl(t.value,e.payload);return Object.assign({},t,{value:n})}case rl.UPDATE_CONTROLS:{const n=function(t,e){const{min:n,max:a,hourStep:r,minuteStep:o,secondsStep:i,showSeconds:s}=e,c={canIncrementHours:!0,canIncrementMinutes:!0,canIncrementSeconds:!0,canDecrementHours:!0,canDecrementMinutes:!0,canDecrementSeconds:!0,canToggleMeridian:!0};if(!t)return c;if(a){const e=gl(t,{hour:r});if(c.canIncrementHours=a>e,!c.canIncrementHours){const e=gl(t,{minute:o});c.canIncrementMinutes=s?a>e:a>=e}if(!c.canIncrementMinutes){const e=gl(t,{seconds:i});c.canIncrementSeconds=a>=e}t.getHours()<12&&(c.canToggleMeridian=gl(t,{hour:12})<a)}if(n){const e=gl(t,{hour:-r});if(c.canDecrementHours=n<e,!c.canDecrementHours){const e=gl(t,{minute:-o});c.canDecrementMinutes=s?n<e:n<=e}if(!c.canDecrementMinutes){const e=gl(t,{seconds:-i});c.canDecrementSeconds=n<=e}t.getHours()>=12&&(c.canToggleMeridian=gl(t,{hour:-12})>n)}return c}(t.value,e.payload),a={value:t.value,config:e.payload,controls:n};return t.config.showMeridian!==a.config.showMeridian&&t.value&&(a.value=new Date(t.value)),Object.assign({},t,a)}default:return t}var n,a}class xl extends al.b{constructor(){const t=new fa.a({type:"[mini-ngrx] dispatcher init"});super(t,Ml,new al.a(Pl,t,Ml))}}class wl{constructor(t,e,n,a){this._cd=e,this._store=n,this._timepickerActions=a,this.isValid=new i.EventEmitter,this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1,this.onChange=Function.prototype,this.onTouched=Function.prototype,Object.assign(this,t),this.timepickerSub=n.select(t=>t.value).subscribe(t=>{this._renderTime(t),this.onChange(t),this._store.dispatch(this._timepickerActions.updateControls(vl(this)))}),n.select(t=>t.controls).subscribe(t=>{this.isValid.emit(_l(this.hours,this.minutes,this.seconds,this.isPM())),Object.assign(this,t),e.markForCheck()})}get isSpinnersVisible(){return this.showSpinners&&!this.readonlyInput}get isEditable(){return!(this.readonlyInput||this.disabled)}resetValidation(){this.invalidHours=!1,this.invalidMinutes=!1,this.invalidSeconds=!1}isPM(){return this.showMeridian&&this.meridian===this.meridians[1]}prevDef(t){t.preventDefault()}wheelSign(t){return-1*Math.sign(t.deltaY)}ngOnChanges(t){this._store.dispatch(this._timepickerActions.updateControls(vl(this)))}changeHours(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeHours({step:t,source:e}))}changeMinutes(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeMinutes({step:t,source:e}))}changeSeconds(t,e=""){this.resetValidation(),this._store.dispatch(this._timepickerActions.changeSeconds({step:t,source:e}))}updateHours(t){if(this.resetValidation(),this.hours=t,!hl(this.hours,this.isPM())||!this.isValidLimit())return this.invalidHours=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}updateMinutes(t){if(this.resetValidation(),this.minutes=t,!bl(this.minutes)||!this.isValidLimit())return this.invalidMinutes=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}updateSeconds(t){if(this.resetValidation(),this.seconds=t,!yl(this.seconds)||!this.isValidLimit())return this.invalidSeconds=!0,this.isValid.emit(!1),void this.onChange(null);this._updateTime()}isValidLimit(){return function(t,e,n){const a=fl(new Date,t);return!(e&&a>e||n&&a<n)}({hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()},this.max,this.min)}_updateTime(){if(!_l(this.hours,this.showMinutes?this.minutes:void 0,this.showSeconds?this.seconds:void 0,this.isPM()))return this.isValid.emit(!1),void this.onChange(null);this._store.dispatch(this._timepickerActions.setTime({hour:this.hours,minute:this.minutes,seconds:this.seconds,isPM:this.isPM()}))}toggleMeridian(){this.showMeridian&&this.isEditable&&this._store.dispatch(this._timepickerActions.changeHours({step:12,source:""}))}writeValue(t){ol(t)?this._store.dispatch(this._timepickerActions.writeValue(ul(t))):null==t&&this._store.dispatch(this._timepickerActions.writeValue(null))}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.disabled=t,this._cd.markForCheck()}ngOnDestroy(){this.timepickerSub.unsubscribe()}_renderTime(t){if(!ol(t))return this.hours="",this.minutes="",this.seconds="",void(this.meridian=this.meridians[0]);const e=ul(t);let n=e.getHours();this.showMeridian&&(this.meridian=this.meridians[n>=12?1:0],n%=12,0===n&&(n=12)),this.hours=ml(n),this.minutes=ml(e.getMinutes()),this.seconds=ml(e.getUTCSeconds())}}class Tl{static forRoot(){return{ngModule:Tl,providers:[Cl,rl,xl]}}}var Sl=i["ɵcrt"]({encapsulation:2,styles:["\n    .bs-chevron {\n      border-style: solid;\n      display: block;\n      width: 9px;\n      height: 9px;\n      position: relative;\n      border-width: 3px 0px 0 3px;\n    }\n\n    .bs-chevron-up {\n      -webkit-transform: rotate(45deg);\n      transform: rotate(45deg);\n      top: 2px;\n    }\n\n    .bs-chevron-down {\n      -webkit-transform: rotate(-135deg);\n      transform: rotate(-135deg);\n      top: -2px;\n    }\n\n    .bs-timepicker-field {\n      width: 50px;\n    }\n  "],data:{}});function kl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["   "]))],null,null)}function Il(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(r.minuteStep)&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canIncrementMinutes||!n.isEditable)}))}function Nl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" "]))],null,null)}function Rl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(r.secondsStep)&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canIncrementSeconds||!n.isEditable)}))}function Al(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["   "]))],null,null)}function El(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function Dl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" : "]))],null,null)}function Ll(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","MM"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeMinutes(r.minuteStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeMinutes(r.minuteStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep,"key")&&a),"change"===e&&(a=!1!==r.updateMinutes(n.target.value)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.invalidMinutes),t(e,1,0,n.invalidMinutes,n.readonlyInput,n.disabled,n.minutes)}))}function ql(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" : "]))],null,null)}function jl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","SS"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeSeconds(r.secondsStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeSeconds(r.secondsStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep,"key")&&a),"change"===e&&(a=!1!==r.updateSeconds(n.target.value)&&a),a}),null,null))],null,(function(t,e){var n=e.component;t(e,0,0,n.invalidSeconds),t(e,1,0,n.invalidSeconds,n.readonlyInput,n.disabled,n.seconds)}))}function Fl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["   "]))],null,null)}function zl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"button",[["class","btn btn-default text-center"],["type","button"]],[[8,"disabled",0],[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.toggleMeridian()&&a),a}),null,null)),(t()(),i["ɵted"](2,null,[""," "]))],null,(function(t,e){var n=e.component;t(e,1,0,!n.isEditable||!n.canToggleMeridian,!n.isEditable||!n.canToggleMeridian),t(e,2,0,n.meridian)}))}function Gl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["   "]))],null,null)}function Bl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeMinutes(0-r.minuteStep)&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canDecrementMinutes||!n.isEditable)}))}function Vl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" "]))],null,null)}function Yl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeSeconds(0-r.secondsStep)&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null))],null,(function(t,e){var n=e.component;t(e,1,0,!n.canDecrementSeconds||!n.isEditable)}))}function Hl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"td",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["   "]))],null,null)}function Ul(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"td",[],null,null,null,null,null))],null,null)}function Wl(t){return i["ɵvid"](2,[(t()(),i["ɵeld"](0,0,null,null,48,"table",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,47,"tbody",[],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(r.hourStep)&&a),a}),null,null)),(t()(),i["ɵeld"](5,0,null,null,0,"span",[["class","bs-chevron bs-chevron-up"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,kl)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Il)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Nl)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Rl)),i["ɵdid"](13,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Al)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,El)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](18,0,null,null,14,"tr",[],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,1,"td",[["class","form-group"]],[[2,"has-error",null]],null,null,null,null)),(t()(),i["ɵeld"](20,0,null,null,0,"input",[["class","form-control text-center bs-timepicker-field"],["maxlength","2"],["placeholder","HH"],["type","text"]],[[2,"is-invalid",null],[8,"readOnly",0],[8,"disabled",0],[8,"value",0]],[[null,"wheel"],[null,"keydown.ArrowUp"],[null,"keydown.ArrowDown"],[null,"change"]],(function(t,e,n){var a=!0,r=t.component;return"wheel"===e&&(r.prevDef(n),a=!1!==r.changeHours(r.hourStep*r.wheelSign(n),"wheel")&&a),"keydown.ArrowUp"===e&&(a=!1!==r.changeHours(r.hourStep,"key")&&a),"keydown.ArrowDown"===e&&(a=!1!==r.changeHours(0-r.hourStep,"key")&&a),"change"===e&&(a=!1!==r.updateHours(n.target.value)&&a),a}),null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Dl)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ll)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ql)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,jl)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Fl)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,zl)),i["ɵdid"](32,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](33,0,null,null,15,"tr",[["class","text-center"]],[[8,"hidden",0]],null,null,null,null)),(t()(),i["ɵeld"](34,0,null,null,2,"td",[],null,null,null,null,null)),(t()(),i["ɵeld"](35,0,null,null,1,"a",[["class","btn btn-link"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0,r=t.component;return"click"===e&&(a=!1!==r.changeHours(0-r.hourStep)&&a),a}),null,null)),(t()(),i["ɵeld"](36,0,null,null,0,"span",[["class","bs-chevron bs-chevron-down"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Gl)),i["ɵdid"](38,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Bl)),i["ɵdid"](40,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Vl)),i["ɵdid"](42,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Yl)),i["ɵdid"](44,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Hl)),i["ɵdid"](46,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ul)),i["ɵdid"](48,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,7,0,n.showMinutes),t(e,9,0,n.showMinutes),t(e,11,0,n.showSeconds),t(e,13,0,n.showSeconds),t(e,15,0,n.showMeridian),t(e,17,0,n.showMeridian),t(e,22,0,n.showMinutes),t(e,24,0,n.showMinutes),t(e,26,0,n.showSeconds),t(e,28,0,n.showSeconds),t(e,30,0,n.showMeridian),t(e,32,0,n.showMeridian),t(e,38,0,n.showMinutes),t(e,40,0,n.showMinutes),t(e,42,0,n.showSeconds),t(e,44,0,n.showSeconds),t(e,46,0,n.showMeridian),t(e,48,0,n.showMeridian)}),(function(t,e){var n=e.component;t(e,2,0,!n.showSpinners),t(e,4,0,!n.canIncrementHours||!n.isEditable),t(e,19,0,n.invalidHours),t(e,20,0,n.invalidHours,n.readonlyInput,n.disabled,n.hours),t(e,33,0,!n.showSpinners),t(e,35,0,!n.canDecrementHours||!n.isEditable)}))}var Kl=n("E2fk");let $l=(()=>{class t{constructor(t){this.http=t}getLogs(){return this.http.get("api/logs/all")}validateDashboardUrl(t){return this.http.get(`api/grafana/validation/${t}`)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();class Zl{constructor(t,e,n){this.logsService=t,this.datePipe=e,this.ngZone=n,this.icons=ut.a,this.bsConfig={dateInputFormat:"YYYY-MM-DD",containerClass:"theme-default"},this.prioritys=[{name:"Info",value:"[INF]"},{name:"Warning",value:"[WRN]"},{name:"Error",value:"[ERR]"},{name:"All",value:"All"}],this.priority="All",this.search="",this.startTime=new Date,this.endTime=new Date,this.startTime.setHours(0,0),this.endTime.setHours(23,59)}ngOnInit(){this.getInfo(),this.ngZone.runOutsideAngular(()=>{this.interval=window.setInterval(()=>{this.ngZone.run(()=>{this.getInfo()})},5e3)})}ngOnDestroy(){clearInterval(this.interval)}getInfo(){this.logsService.getLogs().subscribe(t=>{this.contentData=t,this.filterLogs()})}abstractfilters(){const t=this.priority,e=this.search.toLowerCase().replace(/,/g,"");let n;if(this.selectedDate){const t=this.selectedDate.getMonth()+1,e=this.selectedDate.getDate();n=`${this.selectedDate.getFullYear().toString()}-${t<=9?`0${t}`:`${t}`}-${e<=9?`0${e}`:`${e}`}`}else n="";return{priority:t,key:e,yearMonthDay:n,sTime:60*(this.startTime?this.startTime.getHours():0)+(this.startTime?this.startTime.getMinutes():0),eTime:60*(this.endTime?this.endTime.getHours():23)+(this.endTime?this.endTime.getMinutes():59)}}filterExecutor(t,e){return t.filter(t=>{const n=this.datePipe.transform(t.stamp,"mediumTime"),a=parseInt(n.split(":")[0],10),r=parseInt(n.split(":")[1],10);let o,i,s;return o="All"===e.priority?t.priority:e.priority,i=e.yearMonthDay?e.yearMonthDay:t.stamp,s=60*a+r,t.priority===o&&-1!==t.message.toLowerCase().indexOf(e.key)&&-1!==t.stamp.indexOf(i)&&s>=e.sTime&&s<=e.eTime})}filterLogs(){const t=this.abstractfilters();this.clog=this.filterExecutor(this.contentData.clog,t),this.audit_log=this.filterExecutor(this.contentData.audit_log,t)}clearSearchKey(){this.search="",this.filterLogs()}clearDate(){this.selectedDate=null,this.filterLogs()}}var Jl=i["ɵcrt"]({encapsulation:0,styles:[['@charset "UTF-8";.tree-children.tree-children-no-padding[_ngcontent-%COMP%]{padding-left:0}.node-drop-slot[_ngcontent-%COMP%]{display:block;height:2px}.node-drop-slot.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(90deg)}.toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(0)}.toggle-children-wrapper[_ngcontent-%COMP%]{padding:2px 3px 5px 1px}.toggle-children[_ngcontent-%COMP%]{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder[_ngcontent-%COMP%]{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper[_ngcontent-%COMP%]{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-active.node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper.node-content-wrapper-active[_ngcontent-%COMP%]:hover{background:#beebff}.node-content-wrapper-focused[_ngcontent-%COMP%]{background:#e7f4f9}.node-content-wrapper[_ngcontent-%COMP%]:hover{background:#f7fbff}.node-content-wrapper-active[_ngcontent-%COMP%], .node-content-wrapper-focused[_ngcontent-%COMP%], .node-content-wrapper[_ngcontent-%COMP%]:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over[_ngcontent-%COMP%]{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled[_ngcontent-%COMP%]{opacity:.5}tree-viewport[_ngcontent-%COMP%]{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children[_ngcontent-%COMP%]{overflow:hidden;padding-left:20px}.empty-tree-drop-slot[_ngcontent-%COMP%]   .node-drop-slot[_ngcontent-%COMP%]{height:20px;min-width:100px}.angular-tree-component[_ngcontent-%COMP%]{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]{direction:rtl}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .toggle-children-wrapper-collapsed[_ngcontent-%COMP%]   .toggle-children[_ngcontent-%COMP%]{transform:rotate(180deg)!important}tree-root[_ngcontent-%COMP%]   .angular-tree-component-rtl[_ngcontent-%COMP%]   .tree-children[_ngcontent-%COMP%]{padding-right:20px;padding-left:0}tree-node-checkbox[_ngcontent-%COMP%]{padding:1px}[_ngcontent-%COMP%]:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{box-sizing:border-box}html[_ngcontent-%COMP%]{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article[_ngcontent-%COMP%], aside[_ngcontent-%COMP%], figcaption[_ngcontent-%COMP%], figure[_ngcontent-%COMP%], footer[_ngcontent-%COMP%], header[_ngcontent-%COMP%], hgroup[_ngcontent-%COMP%], main[_ngcontent-%COMP%], nav[_ngcontent-%COMP%], section[_ngcontent-%COMP%]{display:block}body[_ngcontent-%COMP%]{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"][_ngcontent-%COMP%]:focus{outline:0!important}h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-top:0}dl[_ngcontent-%COMP%], ol[_ngcontent-%COMP%], p[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem}abbr[data-original-title][_ngcontent-%COMP%], abbr[title][_ngcontent-%COMP%]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address[_ngcontent-%COMP%]{margin-bottom:1rem;font-style:normal;line-height:inherit}ol[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ol[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{margin-bottom:0}dt[_ngcontent-%COMP%]{font-weight:700}dd[_ngcontent-%COMP%]{margin-bottom:.5rem;margin-left:0}blockquote[_ngcontent-%COMP%], figure[_ngcontent-%COMP%]{margin:0 0 1rem}b[_ngcontent-%COMP%], strong[_ngcontent-%COMP%]{font-weight:bolder}sub[_ngcontent-%COMP%], sup[_ngcontent-%COMP%]{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub[_ngcontent-%COMP%]{bottom:-.25em}sup[_ngcontent-%COMP%]{top:-.5em}a[_ngcontent-%COMP%]{color:#2b99a8;text-decoration:none;background-color:transparent}a[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}a[_ngcontent-%COMP%]:not([href]):not([tabindex]), a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus, a[_ngcontent-%COMP%]:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a[_ngcontent-%COMP%]:not([href]):not([tabindex]):focus{outline:0}code[_ngcontent-%COMP%], kbd[_ngcontent-%COMP%], pre[_ngcontent-%COMP%], samp[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre[_ngcontent-%COMP%]{margin-top:0;margin-bottom:1rem;overflow:auto}img[_ngcontent-%COMP%]{vertical-align:middle;border-style:none}svg[_ngcontent-%COMP%]{overflow:hidden;vertical-align:middle}table[_ngcontent-%COMP%]{border-collapse:collapse}caption[_ngcontent-%COMP%]{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th[_ngcontent-%COMP%]{text-align:inherit}label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:.5rem}button[_ngcontent-%COMP%]{border-radius:0}button[_ngcontent-%COMP%]:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%], optgroup[_ngcontent-%COMP%], select[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button[_ngcontent-%COMP%], input[_ngcontent-%COMP%]{overflow:visible}button[_ngcontent-%COMP%], select[_ngcontent-%COMP%]{text-transform:none}select[_ngcontent-%COMP%]{word-wrap:normal}[type=button][_ngcontent-%COMP%], [type=reset][_ngcontent-%COMP%], [type=submit][_ngcontent-%COMP%], button[_ngcontent-%COMP%]{-webkit-appearance:button}[type=button][_ngcontent-%COMP%]:not(:disabled), [type=reset][_ngcontent-%COMP%]:not(:disabled), [type=submit][_ngcontent-%COMP%]:not(:disabled), button[_ngcontent-%COMP%]:not(:disabled){cursor:pointer}[type=button][_ngcontent-%COMP%]::-moz-focus-inner, [type=reset][_ngcontent-%COMP%]::-moz-focus-inner, [type=submit][_ngcontent-%COMP%]::-moz-focus-inner, button[_ngcontent-%COMP%]::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox][_ngcontent-%COMP%], input[type=radio][_ngcontent-%COMP%]{box-sizing:border-box;padding:0}input[type=date][_ngcontent-%COMP%], input[type=datetime-local][_ngcontent-%COMP%], input[type=month][_ngcontent-%COMP%], input[type=time][_ngcontent-%COMP%]{-webkit-appearance:listbox}textarea[_ngcontent-%COMP%]{overflow:auto;resize:vertical}fieldset[_ngcontent-%COMP%]{min-width:0;padding:0;margin:0;border:0}legend[_ngcontent-%COMP%]{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress[_ngcontent-%COMP%]{vertical-align:baseline}[type=number][_ngcontent-%COMP%]::-webkit-inner-spin-button, [type=number][_ngcontent-%COMP%]::-webkit-outer-spin-button{height:auto}[type=search][_ngcontent-%COMP%]{outline-offset:-2px;-webkit-appearance:none}[type=search][_ngcontent-%COMP%]::-webkit-search-decoration{-webkit-appearance:none}[_ngcontent-%COMP%]::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output[_ngcontent-%COMP%]{display:inline-block}summary[_ngcontent-%COMP%]{display:list-item;cursor:pointer}template[_ngcontent-%COMP%]{display:none}[hidden][_ngcontent-%COMP%]{display:none!important}.h1[_ngcontent-%COMP%], .h2[_ngcontent-%COMP%], .h3[_ngcontent-%COMP%], .h4[_ngcontent-%COMP%], .h5[_ngcontent-%COMP%], .h6[_ngcontent-%COMP%], h1[_ngcontent-%COMP%], h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1[_ngcontent-%COMP%], h1[_ngcontent-%COMP%]{font-size:2.5rem}.h2[_ngcontent-%COMP%], h2[_ngcontent-%COMP%]{font-size:2rem}.h3[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{font-size:1.75rem}.h4[_ngcontent-%COMP%], h4[_ngcontent-%COMP%]{font-size:1.5rem}.h5[_ngcontent-%COMP%], h5[_ngcontent-%COMP%]{font-size:1.25rem}.h6[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]{font-size:1rem}.lead[_ngcontent-%COMP%]{font-size:1.25rem;font-weight:300}.display-1[_ngcontent-%COMP%]{font-size:6rem;font-weight:300;line-height:1.2}.display-2[_ngcontent-%COMP%]{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3[_ngcontent-%COMP%]{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4[_ngcontent-%COMP%]{font-size:3.5rem;font-weight:300;line-height:1.2}hr[_ngcontent-%COMP%]{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small[_ngcontent-%COMP%], small[_ngcontent-%COMP%]{font-size:80%;font-weight:400}.mark[_ngcontent-%COMP%], mark[_ngcontent-%COMP%]{padding:.2em;background-color:#fcf8e3}.list-inline[_ngcontent-%COMP%], .list-unstyled[_ngcontent-%COMP%]{padding-left:0;list-style:none}.list-inline-item[_ngcontent-%COMP%]{display:inline-block}.list-inline-item[_ngcontent-%COMP%]:not(:last-child){margin-right:.5rem}.initialism[_ngcontent-%COMP%]{font-size:90%;text-transform:uppercase}.blockquote[_ngcontent-%COMP%]{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer[_ngcontent-%COMP%]{display:block;font-size:80%;color:#6c757d}.blockquote-footer[_ngcontent-%COMP%]::before{content:"— "}.img-fluid[_ngcontent-%COMP%]{max-width:100%;height:auto}.img-thumbnail[_ngcontent-%COMP%]{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure[_ngcontent-%COMP%]{display:inline-block}.figure-img[_ngcontent-%COMP%]{margin-bottom:.5rem;line-height:1}.figure-caption[_ngcontent-%COMP%]{font-size:90%;color:#6c757d}code[_ngcontent-%COMP%]{font-size:87.5%;color:#e83e8c;word-break:break-word}a[_ngcontent-%COMP%] > code[_ngcontent-%COMP%]{color:inherit}kbd[_ngcontent-%COMP%]{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd[_ngcontent-%COMP%]   kbd[_ngcontent-%COMP%]{padding:0;font-size:100%;font-weight:700}pre[_ngcontent-%COMP%]{display:block;font-size:87.5%;color:#212529}pre[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable[_ngcontent-%COMP%]{max-height:340px;overflow-y:scroll}.container[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container[_ngcontent-%COMP%]{max-width:540px}}@media (min-width:768px){.container[_ngcontent-%COMP%]{max-width:720px}}@media (min-width:992px){.container[_ngcontent-%COMP%]{max-width:960px}}@media (min-width:1200px){.container[_ngcontent-%COMP%]{max-width:1140px}}.container-fluid[_ngcontent-%COMP%]{width:100%;margin-right:auto;margin-left:auto}.row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.no-gutters[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.no-gutters[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .no-gutters[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:0;padding-left:0}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-auto[_ngcontent-%COMP%], .col-lg[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-lg-auto[_ngcontent-%COMP%], .col-md[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-md-auto[_ngcontent-%COMP%], .col-sm[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], .col-sm-auto[_ngcontent-%COMP%], .col-xl[_ngcontent-%COMP%], .col-xl-1[_ngcontent-%COMP%], .col-xl-10[_ngcontent-%COMP%], .col-xl-11[_ngcontent-%COMP%], .col-xl-12[_ngcontent-%COMP%], .col-xl-2[_ngcontent-%COMP%], .col-xl-3[_ngcontent-%COMP%], .col-xl-4[_ngcontent-%COMP%], .col-xl-5[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%], .col-xl-7[_ngcontent-%COMP%], .col-xl-8[_ngcontent-%COMP%], .col-xl-9[_ngcontent-%COMP%], .col-xl-auto[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{position:relative;width:100%;padding-right:15px;padding-left:15px}.col[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-first[_ngcontent-%COMP%]{order:-1}.order-last[_ngcontent-%COMP%]{order:13}.order-0[_ngcontent-%COMP%]{order:0}.order-1[_ngcontent-%COMP%]{order:1}.order-2[_ngcontent-%COMP%]{order:2}.order-3[_ngcontent-%COMP%]{order:3}.order-4[_ngcontent-%COMP%]{order:4}.order-5[_ngcontent-%COMP%]{order:5}.order-6[_ngcontent-%COMP%]{order:6}.order-7[_ngcontent-%COMP%]{order:7}.order-8[_ngcontent-%COMP%]{order:8}.order-9[_ngcontent-%COMP%]{order:9}.order-10[_ngcontent-%COMP%]{order:10}.order-11[_ngcontent-%COMP%]{order:11}.order-12[_ngcontent-%COMP%]{order:12}.offset-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-3[_ngcontent-%COMP%]{margin-left:25%}.offset-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-6[_ngcontent-%COMP%]{margin-left:50%}.offset-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-9[_ngcontent-%COMP%]{margin-left:75%}.offset-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}@media (min-width:576px){.col-sm[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-sm-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-sm-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-sm-first[_ngcontent-%COMP%]{order:-1}.order-sm-last[_ngcontent-%COMP%]{order:13}.order-sm-0[_ngcontent-%COMP%]{order:0}.order-sm-1[_ngcontent-%COMP%]{order:1}.order-sm-2[_ngcontent-%COMP%]{order:2}.order-sm-3[_ngcontent-%COMP%]{order:3}.order-sm-4[_ngcontent-%COMP%]{order:4}.order-sm-5[_ngcontent-%COMP%]{order:5}.order-sm-6[_ngcontent-%COMP%]{order:6}.order-sm-7[_ngcontent-%COMP%]{order:7}.order-sm-8[_ngcontent-%COMP%]{order:8}.order-sm-9[_ngcontent-%COMP%]{order:9}.order-sm-10[_ngcontent-%COMP%]{order:10}.order-sm-11[_ngcontent-%COMP%]{order:11}.order-sm-12[_ngcontent-%COMP%]{order:12}.offset-sm-0[_ngcontent-%COMP%]{margin-left:0}.offset-sm-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-sm-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-sm-3[_ngcontent-%COMP%]{margin-left:25%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-sm-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-sm-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-sm-6[_ngcontent-%COMP%]{margin-left:50%}.offset-sm-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-sm-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-sm-9[_ngcontent-%COMP%]{margin-left:75%}.offset-sm-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-sm-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:768px){.col-md[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-md-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.cd-col-form-label[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-md-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-md-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-md-first[_ngcontent-%COMP%]{order:-1}.order-md-last[_ngcontent-%COMP%]{order:13}.order-md-0[_ngcontent-%COMP%]{order:0}.order-md-1[_ngcontent-%COMP%]{order:1}.order-md-2[_ngcontent-%COMP%]{order:2}.order-md-3[_ngcontent-%COMP%]{order:3}.order-md-4[_ngcontent-%COMP%]{order:4}.order-md-5[_ngcontent-%COMP%]{order:5}.order-md-6[_ngcontent-%COMP%]{order:6}.order-md-7[_ngcontent-%COMP%]{order:7}.order-md-8[_ngcontent-%COMP%]{order:8}.order-md-9[_ngcontent-%COMP%]{order:9}.order-md-10[_ngcontent-%COMP%]{order:10}.order-md-11[_ngcontent-%COMP%]{order:11}.order-md-12[_ngcontent-%COMP%]{order:12}.offset-md-0[_ngcontent-%COMP%]{margin-left:0}.offset-md-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-md-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-md-3[_ngcontent-%COMP%]{margin-left:25%}.offset-md-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-md-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-md-6[_ngcontent-%COMP%]{margin-left:50%}.offset-md-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-md-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-md-9[_ngcontent-%COMP%]{margin-left:75%}.offset-md-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-md-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-lg-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-lg-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-lg-first[_ngcontent-%COMP%]{order:-1}.order-lg-last[_ngcontent-%COMP%]{order:13}.order-lg-0[_ngcontent-%COMP%]{order:0}.order-lg-1[_ngcontent-%COMP%]{order:1}.order-lg-2[_ngcontent-%COMP%]{order:2}.order-lg-3[_ngcontent-%COMP%]{order:3}.order-lg-4[_ngcontent-%COMP%]{order:4}.order-lg-5[_ngcontent-%COMP%]{order:5}.order-lg-6[_ngcontent-%COMP%]{order:6}.order-lg-7[_ngcontent-%COMP%]{order:7}.order-lg-8[_ngcontent-%COMP%]{order:8}.order-lg-9[_ngcontent-%COMP%]{order:9}.order-lg-10[_ngcontent-%COMP%]{order:10}.order-lg-11[_ngcontent-%COMP%]{order:11}.order-lg-12[_ngcontent-%COMP%]{order:12}.offset-lg-0[_ngcontent-%COMP%]{margin-left:0}.offset-lg-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-lg-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.cd-col-form-offset[_ngcontent-%COMP%], .offset-lg-3[_ngcontent-%COMP%]{margin-left:25%}.offset-lg-4[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-lg-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-lg-6[_ngcontent-%COMP%]{margin-left:50%}.offset-lg-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-lg-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-lg-9[_ngcontent-%COMP%]{margin-left:75%}.offset-lg-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-lg-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto[_ngcontent-%COMP%]{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1[_ngcontent-%COMP%]{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2[_ngcontent-%COMP%]{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3[_ngcontent-%COMP%]{flex:0 0 25%;max-width:25%}.col-xl-4[_ngcontent-%COMP%]{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5[_ngcontent-%COMP%]{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form[_ngcontent-%COMP%], .col-xl-6[_ngcontent-%COMP%]{flex:0 0 50%;max-width:50%}.col-xl-7[_ngcontent-%COMP%]{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8[_ngcontent-%COMP%]{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9[_ngcontent-%COMP%]{flex:0 0 75%;max-width:75%}.col-xl-10[_ngcontent-%COMP%]{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11[_ngcontent-%COMP%]{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12[_ngcontent-%COMP%]{flex:0 0 100%;max-width:100%}.order-xl-first[_ngcontent-%COMP%]{order:-1}.order-xl-last[_ngcontent-%COMP%]{order:13}.order-xl-0[_ngcontent-%COMP%]{order:0}.order-xl-1[_ngcontent-%COMP%]{order:1}.order-xl-2[_ngcontent-%COMP%]{order:2}.order-xl-3[_ngcontent-%COMP%]{order:3}.order-xl-4[_ngcontent-%COMP%]{order:4}.order-xl-5[_ngcontent-%COMP%]{order:5}.order-xl-6[_ngcontent-%COMP%]{order:6}.order-xl-7[_ngcontent-%COMP%]{order:7}.order-xl-8[_ngcontent-%COMP%]{order:8}.order-xl-9[_ngcontent-%COMP%]{order:9}.order-xl-10[_ngcontent-%COMP%]{order:10}.order-xl-11[_ngcontent-%COMP%]{order:11}.order-xl-12[_ngcontent-%COMP%]{order:12}.offset-xl-0[_ngcontent-%COMP%]{margin-left:0}.offset-xl-1[_ngcontent-%COMP%]{margin-left:8.3333333333%}.offset-xl-2[_ngcontent-%COMP%]{margin-left:16.6666666667%}.offset-xl-3[_ngcontent-%COMP%]{margin-left:25%}.offset-xl-4[_ngcontent-%COMP%]{margin-left:33.3333333333%}.offset-xl-5[_ngcontent-%COMP%]{margin-left:41.6666666667%}.offset-xl-6[_ngcontent-%COMP%]{margin-left:50%}.offset-xl-7[_ngcontent-%COMP%]{margin-left:58.3333333333%}.offset-xl-8[_ngcontent-%COMP%]{margin-left:66.6666666667%}.offset-xl-9[_ngcontent-%COMP%]{margin-left:75%}.offset-xl-10[_ngcontent-%COMP%]{margin-left:83.3333333333%}.offset-xl-11[_ngcontent-%COMP%]{margin-left:91.6666666667%}}.table[_ngcontent-%COMP%]{width:100%;margin-bottom:1rem;color:#212529}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%]{border-top:2px solid #dee2e6}.table-sm[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-sm[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{padding:.3rem}.table-bordered[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6}.table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-bottom-width:2px}.table-borderless[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-borderless[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:0}.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c4e2e7}.table-primary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-primary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#91cad2}.table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-primary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b2d9e0}.table-secondary[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fbd1cf}.table-secondary[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-secondary[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#f7aaa7}.table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-secondary[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f9bab7}.table-success[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#c3e6cb}.table-success[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-success[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#8fd19e}.table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-success[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#b1dfbb}.table-info[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#bee5eb}.table-info[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-info[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#86cfda}.table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-info[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#abdde5}.table-warning[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#ffeeba}.table-warning[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-warning[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ffdf7e}.table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-warning[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ffe8a1}.table-danger[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#f5c6cb}.table-danger[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-danger[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#ed969e}.table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-danger[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#f1b0b7}.table-light[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#fdfdfe}.table-light[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-light[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#fbfcfc}.table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-light[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ececf6}.table-dark[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%] > th[_ngcontent-%COMP%]{background-color:#d9d9d9}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#b8b8b8}.table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-dark[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:#ccc}.table-active[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > td[_ngcontent-%COMP%], .table-active[_ngcontent-%COMP%] > th[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover, .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > td[_ngcontent-%COMP%], .table-hover[_ngcontent-%COMP%]   .table-active[_ngcontent-%COMP%]:hover > th[_ngcontent-%COMP%]{background-color:rgba(0,0,0,.075)}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#fff;background-color:#343a40;border-color:#454d55}.table[_ngcontent-%COMP%]   .thead-light[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark[_ngcontent-%COMP%]{color:#fff;background-color:#343a40}.table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#454d55}.table-dark.table-bordered[_ngcontent-%COMP%]{border:0}.table-dark.table-striped[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%]   tr[_ngcontent-%COMP%]:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:767.98px){.table-responsive-md[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:991.98px){.table-responsive-lg[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}@media (max-width:1199.98px){.table-responsive-xl[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}}.table-responsive[_ngcontent-%COMP%]{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive[_ngcontent-%COMP%] > .table-bordered[_ngcontent-%COMP%]{border:0}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{transition:none}}.cd-form-control[_ngcontent-%COMP%]::-ms-expand, .form-control[_ngcontent-%COMP%]::-ms-expand{background-color:transparent;border:0}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control[_ngcontent-%COMP%]::placeholder, .form-control[_ngcontent-%COMP%]::placeholder{color:#6c757d;opacity:1}.cd-form-control[_ngcontent-%COMP%]:disabled, .form-control[_ngcontent-%COMP%]:disabled, .form-control[readonly][_ngcontent-%COMP%], [readonly].cd-form-control[_ngcontent-%COMP%]{background-color:#e9ecef;opacity:1}select.cd-form-control[_ngcontent-%COMP%]:focus::-ms-value, select.form-control[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file[_ngcontent-%COMP%], .form-control-range[_ngcontent-%COMP%]{display:block;width:100%}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg[_ngcontent-%COMP%]{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm[_ngcontent-%COMP%]{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext[_ngcontent-%COMP%]{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg[_ngcontent-%COMP%], .form-control-plaintext.form-control-sm[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.form-control-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple][_ngcontent-%COMP%], select.form-control[size][_ngcontent-%COMP%], select[multiple].cd-form-control[_ngcontent-%COMP%], select[size].cd-form-control[_ngcontent-%COMP%], textarea.cd-form-control[_ngcontent-%COMP%], textarea.form-control[_ngcontent-%COMP%]{height:auto}.form-text[_ngcontent-%COMP%]{display:block;margin-top:.25rem}.form-row[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row[_ngcontent-%COMP%] > .col[_ngcontent-%COMP%], .form-row[_ngcontent-%COMP%] > [class*=col-][_ngcontent-%COMP%]{padding-right:5px;padding-left:5px}.form-check[_ngcontent-%COMP%]{position:relative;display:block;padding-left:1.25rem}.form-check-input[_ngcontent-%COMP%]{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input[_ngcontent-%COMP%]:disabled ~ .form-check-label[_ngcontent-%COMP%]{color:#6c757d}.form-check-label[_ngcontent-%COMP%]{margin-bottom:0}.form-check-inline[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid[_ngcontent-%COMP%]:focus, .is-valid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .is-valid.cd-form-control[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:valid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:valid, textarea.form-control.is-valid[_ngcontent-%COMP%], textarea.is-valid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%2328a745\' d=\'M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z\'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-select.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-control-file.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .form-check-label[_ngcontent-%COMP%]{color:#28a745}.form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .form-check-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-control-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745}.custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-feedback[_ngcontent-%COMP%], .custom-file-input.is-valid[_ngcontent-%COMP%] ~ .valid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid ~ .valid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:valid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback[_ngcontent-%COMP%]{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip[_ngcontent-%COMP%]{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid[_ngcontent-%COMP%]:focus, .is-invalid.cd-form-control[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid:focus, .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .is-invalid.cd-form-control[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.was-validated[_ngcontent-%COMP%]   textarea.cd-form-control[_ngcontent-%COMP%]:invalid, .was-validated[_ngcontent-%COMP%]   textarea.form-control[_ngcontent-%COMP%]:invalid, textarea.form-control.is-invalid[_ngcontent-%COMP%], textarea.is-invalid.cd-form-control[_ngcontent-%COMP%]{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23dc3545\' viewBox=\'-2 -2 7 7\'%3e%3cpath stroke=\'%23dc3545\' d=\'M0 0l3 3m0-3L0 3\'/%3e%3ccircle r=\'.5\'/%3e%3ccircle cx=\'3\' r=\'.5\'/%3e%3ccircle cy=\'3\' r=\'.5\'/%3e%3ccircle cx=\'3\' cy=\'3\' r=\'.5\'/%3e%3c/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid[_ngcontent-%COMP%]:focus, .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-select.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-control-file.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-control-file[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .form-check-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .form-check-label[_ngcontent-%COMP%]{color:#dc3545}.form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .form-check-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]{color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-control-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-control-input.is-invalid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:invalid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545}.custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-feedback[_ngcontent-%COMP%], .custom-file-input.is-invalid[_ngcontent-%COMP%] ~ .invalid-tooltip[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-feedback[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid ~ .invalid-tooltip[_ngcontent-%COMP%]{display:block}.custom-file-input.is-invalid[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:invalid:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline[_ngcontent-%COMP%]{display:flex;flex-flow:row wrap;align-items:center}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{width:100%}@media (min-width:576px){.form-inline[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .form-group[_ngcontent-%COMP%]{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline[_ngcontent-%COMP%]   .cd-form-control[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .form-control[_ngcontent-%COMP%]{display:inline-block;width:auto;vertical-align:middle}.form-inline[_ngcontent-%COMP%]   .form-control-plaintext[_ngcontent-%COMP%]{display:inline-block}.form-inline[_ngcontent-%COMP%]   .custom-select[_ngcontent-%COMP%], .form-inline[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.form-inline[_ngcontent-%COMP%]   .form-check[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline[_ngcontent-%COMP%]   .form-check-input[_ngcontent-%COMP%]{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline[_ngcontent-%COMP%]   .custom-control[_ngcontent-%COMP%]{align-items:center;justify-content:center}.form-inline[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]{margin-bottom:0}}.btn[_ngcontent-%COMP%]{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn[_ngcontent-%COMP%]{transition:none}}.btn[_ngcontent-%COMP%]:hover{color:#212529;text-decoration:none}.btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:disabled{opacity:.65}a.btn.disabled[_ngcontent-%COMP%], fieldset[_ngcontent-%COMP%]:disabled   a.btn[_ngcontent-%COMP%]{pointer-events:none}.btn-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled[_ngcontent-%COMP%], .btn-primary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled[_ngcontent-%COMP%], .btn-secondary[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled[_ngcontent-%COMP%], .btn-success[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled[_ngcontent-%COMP%], .btn-info[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled[_ngcontent-%COMP%], .btn-warning[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled[_ngcontent-%COMP%], .btn-danger[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light[_ngcontent-%COMP%]{color:#212529}.btn-light[_ngcontent-%COMP%]:hover{color:#212529}.btn-light.focus[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled[_ngcontent-%COMP%], .btn-light[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled[_ngcontent-%COMP%], .btn-dark[_ngcontent-%COMP%]:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary[_ngcontent-%COMP%]{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled[_ngcontent-%COMP%], .btn-outline-primary[_ngcontent-%COMP%]:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-primary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-primary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary[_ngcontent-%COMP%]{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled[_ngcontent-%COMP%], .btn-outline-secondary[_ngcontent-%COMP%]:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-secondary[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-secondary.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success[_ngcontent-%COMP%]{color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled[_ngcontent-%COMP%], .btn-outline-success[_ngcontent-%COMP%]:disabled{color:#28a745;background-color:transparent}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-success[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-success.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info[_ngcontent-%COMP%]{color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled[_ngcontent-%COMP%], .btn-outline-info[_ngcontent-%COMP%]:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-info[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-info.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning[_ngcontent-%COMP%]{color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled[_ngcontent-%COMP%], .btn-outline-warning[_ngcontent-%COMP%]:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-warning[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-warning.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger[_ngcontent-%COMP%]{color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled[_ngcontent-%COMP%], .btn-outline-danger[_ngcontent-%COMP%]:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light[_ngcontent-%COMP%]{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled[_ngcontent-%COMP%], .btn-outline-light[_ngcontent-%COMP%]:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-light[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-light.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark[_ngcontent-%COMP%]{color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled[_ngcontent-%COMP%], .btn-outline-dark[_ngcontent-%COMP%]:disabled{color:#777;background-color:transparent}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .btn-outline-dark[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .show[_ngcontent-%COMP%] > .btn-outline-dark.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link[_ngcontent-%COMP%]{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link[_ngcontent-%COMP%]:hover{color:#1b626b;text-decoration:underline}.btn-link.focus[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled[_ngcontent-%COMP%], .btn-link[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block[_ngcontent-%COMP%]{display:block;width:100%}.btn-block[_ngcontent-%COMP%] + .btn-block[_ngcontent-%COMP%]{margin-top:.5rem}input[type=button].btn-block[_ngcontent-%COMP%], input[type=reset].btn-block[_ngcontent-%COMP%], input[type=submit].btn-block[_ngcontent-%COMP%]{width:100%}.fade[_ngcontent-%COMP%]{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade[_ngcontent-%COMP%]{transition:none}}.fade[_ngcontent-%COMP%]:not(.show){opacity:0}.collapse[_ngcontent-%COMP%]:not(.show){display:none}.collapsing[_ngcontent-%COMP%]{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown[_ngcontent-%COMP%], .dropleft[_ngcontent-%COMP%], .dropright[_ngcontent-%COMP%], .dropup[_ngcontent-%COMP%]{position:relative}.dropdown-toggle[_ngcontent-%COMP%]{white-space:nowrap}.dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[_ngcontent-%COMP%]{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-right[_ngcontent-%COMP%]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-sm-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-md-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-lg-right[_ngcontent-%COMP%]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left[_ngcontent-%COMP%]{right:auto;left:0}.dropdown-menu-xl-right[_ngcontent-%COMP%]{right:0;left:auto}}.dropup[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropright[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle[_ngcontent-%COMP%]:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom][_ngcontent-%COMP%], .dropdown-menu[x-placement^=left][_ngcontent-%COMP%], .dropdown-menu[x-placement^=right][_ngcontent-%COMP%], .dropdown-menu[x-placement^=top][_ngcontent-%COMP%]{right:auto;bottom:auto}.dropdown-divider[_ngcontent-%COMP%]{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item[_ngcontent-%COMP%]{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item[_ngcontent-%COMP%]:focus, .dropdown-item[_ngcontent-%COMP%]:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled[_ngcontent-%COMP%], .dropdown-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show[_ngcontent-%COMP%]{display:block}.dropdown-header[_ngcontent-%COMP%]{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text[_ngcontent-%COMP%]{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%]{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{position:relative;flex:1 1 auto}.btn-group-vertical[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover, .btn-group[_ngcontent-%COMP%] > .btn.active[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:active, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:focus, .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:hover{z-index:1}.btn-toolbar[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar[_ngcontent-%COMP%]   .input-group[_ngcontent-%COMP%]{width:auto}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-left:-1px}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropright[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after, .dropup[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::after{margin-left:0}.dropleft[_ngcontent-%COMP%]   .dropdown-toggle-split[_ngcontent-%COMP%]::before{margin-right:0}.btn-group-sm[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-sm[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.375rem;padding-left:.375rem}.btn-group-lg[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%], .btn-lg[_ngcontent-%COMP%] + .dropdown-toggle-split[_ngcontent-%COMP%]{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]{width:100%}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child), .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){margin-top:-1px}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .btn-group-vertical[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]{margin-bottom:0}.btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .btn-group-toggle[_ngcontent-%COMP%] > .btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .cd-form-control[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-file[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .custom-select[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .form-control-plaintext[_ngcontent-%COMP%] + .form-control[_ngcontent-%COMP%]{margin-left:-1px}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:focus, .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:focus{z-index:3}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]   .custom-file-input[_ngcontent-%COMP%]:focus{z-index:4}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]{display:flex;align-items:center}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:last-child)   .custom-file-label[_ngcontent-%COMP%]::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .custom-file[_ngcontent-%COMP%]:not(:first-child)   .custom-file-label[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]{display:flex}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]{position:relative;z-index:2}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus, .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%]:focus{z-index:3}.input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-append[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .btn[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .btn[_ngcontent-%COMP%], .input-group-prepend[_ngcontent-%COMP%]   .input-group-text[_ngcontent-%COMP%] + .input-group-text[_ngcontent-%COMP%]{margin-left:-1px}.input-group-prepend[_ngcontent-%COMP%]{margin-right:-1px}.input-group-append[_ngcontent-%COMP%]{margin-left:-1px}.input-group-text[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text[_ngcontent-%COMP%]   input[type=checkbox][_ngcontent-%COMP%], .input-group-text[_ngcontent-%COMP%]   input[type=radio][_ngcontent-%COMP%]{margin-top:0}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-lg[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%]:not(textarea), .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%]:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm[_ngcontent-%COMP%] > .cd-form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .form-control[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%], .input-group-sm[_ngcontent-%COMP%] > .custom-select[_ngcontent-%COMP%]{padding-right:1.75rem}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .btn[_ngcontent-%COMP%]:not(:last-child):not(.dropdown-toggle), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:last-child > .input-group-text[_ngcontent-%COMP%]:not(:last-child), .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%]:not(:last-child) > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%]{border-top-right-radius:0;border-bottom-right-radius:0}.input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-append[_ngcontent-%COMP%] > .input-group-text[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .btn[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:first-child > .input-group-text[_ngcontent-%COMP%]:not(:first-child), .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .btn[_ngcontent-%COMP%], .input-group[_ngcontent-%COMP%] > .input-group-prepend[_ngcontent-%COMP%]:not(:first-child) > .input-group-text[_ngcontent-%COMP%]{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control[_ngcontent-%COMP%]{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline[_ngcontent-%COMP%]{display:inline-flex;margin-right:1rem}.custom-control-input[_ngcontent-%COMP%]{position:absolute;z-index:-1;opacity:0}.custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}.custom-control-input[_ngcontent-%COMP%]:not(:disabled):active ~ .custom-control-label[_ngcontent-%COMP%]::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]{color:#6c757d}.custom-control-input[_ngcontent-%COMP%]:disabled ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:#e9ecef}.custom-control-label[_ngcontent-%COMP%]{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label[_ngcontent-%COMP%]::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label[_ngcontent-%COMP%]::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:.25rem}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 8 8\'%3e%3cpath fill=\'%23fff\' d=\'M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 4\'%3e%3cpath stroke=\'%23fff\' d=\'M0 2h4\'/%3e%3c/svg%3e")}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:indeterminate ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-radio[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{border-radius:50%}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'-4 -4 8 8\'%3e%3ccircle r=\'3\' fill=\'%23fff\'/%3e%3c/svg%3e")}.custom-radio[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-switch[_ngcontent-%COMP%]{padding-left:2.25rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:disabled:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{background-color:rgba(43,153,168,.5)}.custom-select[_ngcontent-%COMP%]{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 4 5\'%3e%3cpath fill=\'%23343a40\' d=\'M2 0L0 2h4zm0 5L0 3h4z\'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select[_ngcontent-%COMP%]:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select[_ngcontent-%COMP%]:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple][_ngcontent-%COMP%], .custom-select[size][_ngcontent-%COMP%]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select[_ngcontent-%COMP%]:disabled{color:#6c757d;background-color:#e9ecef}.custom-select[_ngcontent-%COMP%]::-ms-expand{display:none}.custom-select-sm[_ngcontent-%COMP%]{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg[_ngcontent-%COMP%]{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file[_ngcontent-%COMP%]{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input[_ngcontent-%COMP%]{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input[_ngcontent-%COMP%]:focus ~ .custom-file-label[_ngcontent-%COMP%]{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input[_ngcontent-%COMP%]:disabled ~ .custom-file-label[_ngcontent-%COMP%]{background-color:#e9ecef}.custom-file-input[_ngcontent-%COMP%]:lang(en) ~ .custom-file-label[_ngcontent-%COMP%]::after{content:"Browse"}.custom-file-input[_ngcontent-%COMP%] ~ .custom-file-label[data-browse][_ngcontent-%COMP%]::after{content:attr(data-browse)}.custom-file-label[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range[_ngcontent-%COMP%]{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range[_ngcontent-%COMP%]:focus{outline:0}.custom-range[_ngcontent-%COMP%]:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range[_ngcontent-%COMP%]::-moz-focus-outer{border:0}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing[_ngcontent-%COMP%], .custom-switch[_ngcontent-%COMP%]   .custom-control-label[_ngcontent-%COMP%]::after{transition:none}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-moz-range-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-moz-range-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range[_ngcontent-%COMP%]::-ms-thumb{transition:none}}.custom-range[_ngcontent-%COMP%]::-ms-thumb:active{background-color:#9fdee6}.custom-range[_ngcontent-%COMP%]::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range[_ngcontent-%COMP%]:disabled::-moz-range-track{cursor:default}.custom-range[_ngcontent-%COMP%]:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label[_ngcontent-%COMP%]::before, .custom-file-label[_ngcontent-%COMP%], .custom-select[_ngcontent-%COMP%]{transition:none}}.nav[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link[_ngcontent-%COMP%]{display:block;padding:.5rem 1rem}.nav-link[_ngcontent-%COMP%]:focus, .nav-link[_ngcontent-%COMP%]:hover{text-decoration:none}.nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{margin-bottom:-1px}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .nav-tabs[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs[_ngcontent-%COMP%]   .nav-item.show[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%], .nav-tabs[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%]{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{border-radius:.25rem}.nav-pills[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .nav-pills[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}.nav-fill[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex:1 1 auto;text-align:center}.nav-justified[_ngcontent-%COMP%]   .nav-item[_ngcontent-%COMP%]{flex-basis:0;flex-grow:1;text-align:center}.tab-content[_ngcontent-%COMP%] > .tab-pane[_ngcontent-%COMP%]{display:none}.tab-content[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%]{display:block}.navbar[_ngcontent-%COMP%]{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand[_ngcontent-%COMP%]{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand[_ngcontent-%COMP%]:focus, .navbar-brand[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-nav[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:0;padding-left:0}.navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:static;float:none}.navbar-text[_ngcontent-%COMP%]{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse[_ngcontent-%COMP%]{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler[_ngcontent-%COMP%]{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler[_ngcontent-%COMP%]:focus, .navbar-toggler[_ngcontent-%COMP%]:hover{text-decoration:none}.navbar-toggler-icon[_ngcontent-%COMP%]{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-sm[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-sm[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:767.98px){.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-md[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-md[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:991.98px){.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-lg[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-lg[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}@media (max-width:1199.98px){.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand-xl[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{flex-wrap:nowrap}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand-xl[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}}.navbar-expand[_ngcontent-%COMP%]{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]{flex-direction:row}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%]{position:absolute}.navbar-expand[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{padding-right:.5rem;padding-left:.5rem}.navbar-expand[_ngcontent-%COMP%] > .container[_ngcontent-%COMP%], .navbar-expand[_ngcontent-%COMP%] > .container-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand[_ngcontent-%COMP%]   .navbar-collapse[_ngcontent-%COMP%]{display:flex!important;flex-basis:auto}.navbar-expand[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{display:none}.navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.7)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(0,0,0,.3)}.navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:rgba(0,0,0,.9)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(0, 0, 0, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)}.navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-light[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:rgba(0,0,0,.9)}.navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-brand[_ngcontent-%COMP%]:hover{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link[_ngcontent-%COMP%]:hover{color:rgba(255,255,255,.75)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.disabled[_ngcontent-%COMP%]{color:rgba(255,255,255,.25)}.navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.active[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .nav-link.show[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-nav[_ngcontent-%COMP%]   .show[_ngcontent-%COMP%] > .nav-link[_ngcontent-%COMP%]{color:#fff}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler[_ngcontent-%COMP%]{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark[_ngcontent-%COMP%]   .navbar-toggler-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg viewBox=\'0 0 30 30\' xmlns=\'http://www.w3.org/2000/svg\'%3e%3cpath stroke=\'rgba(255, 255, 255, 0.5)\' stroke-width=\'2\' stroke-linecap=\'round\' stroke-miterlimit=\'10\' d=\'M4 7h22M4 15h22M4 23h22\'/%3e%3c/svg%3e")}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)}.navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%], .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:focus, .navbar-dark[_ngcontent-%COMP%]   .navbar-text[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff}.card[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%], pre[_ngcontent-%COMP%] > hr[_ngcontent-%COMP%]{margin-right:0;margin-left:0}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child, pre[_ngcontent-%COMP%] > .list-group[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body[_ngcontent-%COMP%]{flex:1 1 auto;padding:1.25rem}.card-title[_ngcontent-%COMP%]{margin-bottom:.75rem}.card-subtitle[_ngcontent-%COMP%]{margin-top:-.375rem;margin-bottom:0}.card-text[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card-link[_ngcontent-%COMP%]:hover{text-decoration:none}.card-link[_ngcontent-%COMP%] + .card-link[_ngcontent-%COMP%]{margin-left:1.25rem}.card-header[_ngcontent-%COMP%]{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header[_ngcontent-%COMP%]:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header[_ngcontent-%COMP%] + .list-group[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.card-footer[_ngcontent-%COMP%]{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer[_ngcontent-%COMP%]:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs[_ngcontent-%COMP%]{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills[_ngcontent-%COMP%]{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img[_ngcontent-%COMP%]{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top[_ngcontent-%COMP%]{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom[_ngcontent-%COMP%]{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-deck[_ngcontent-%COMP%]{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-deck[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{margin-bottom:15px}@media (min-width:576px){.card-group[_ngcontent-%COMP%]{flex-flow:row wrap}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{flex:1 0 0%;margin-bottom:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + .card[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%] + pre[_ngcontent-%COMP%]{margin-left:0;border-left:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-top[_ngcontent-%COMP%]{border-top-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:last-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child), .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-header[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-top[_ngcontent-%COMP%]{border-top-left-radius:0}.card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-footer[_ngcontent-%COMP%], .card-group[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-child)   .card-img-bottom[_ngcontent-%COMP%]{border-bottom-left-radius:0}.card-columns[_ngcontent-%COMP%]{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{display:inline-block;width:100%}}.card-columns[_ngcontent-%COMP%]   .card[_ngcontent-%COMP%], .card-columns[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{margin-bottom:.75rem}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]{overflow:hidden}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type)   .card-header[_ngcontent-%COMP%]:first-child{border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type), .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:first-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]:last-of-type, .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion[_ngcontent-%COMP%] > .card[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%], .accordion[_ngcontent-%COMP%] > pre[_ngcontent-%COMP%]   .card-header[_ngcontent-%COMP%]{margin-bottom:-1px}.breadcrumb[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]{padding-left:.5rem}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item[_ngcontent-%COMP%] + .breadcrumb-item[_ngcontent-%COMP%]:hover::before{text-decoration:none}.breadcrumb-item.active[_ngcontent-%COMP%]{color:#6c757d}.pagination[_ngcontent-%COMP%]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link[_ngcontent-%COMP%]{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link[_ngcontent-%COMP%]:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link[_ngcontent-%COMP%]:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{z-index:1;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm[_ngcontent-%COMP%]   .page-link[_ngcontent-%COMP%]{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:first-child   .page-link[_ngcontent-%COMP%]{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm[_ngcontent-%COMP%]   .page-item[_ngcontent-%COMP%]:last-child   .page-link[_ngcontent-%COMP%]{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge[_ngcontent-%COMP%]{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge[_ngcontent-%COMP%]{transition:none}}a.badge[_ngcontent-%COMP%]:focus, a.badge[_ngcontent-%COMP%]:hover{text-decoration:none}.badge[_ngcontent-%COMP%]:empty{display:none}.btn[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{position:relative;top:-1px}.badge-pill[_ngcontent-%COMP%]{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary[_ngcontent-%COMP%]{color:#fff;background-color:#2b99a8}a.badge-primary[_ngcontent-%COMP%]:focus, a.badge-primary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#21747f}a.badge-primary.focus[_ngcontent-%COMP%], a.badge-primary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary[_ngcontent-%COMP%]{color:#fff;background-color:#ef5c55}a.badge-secondary[_ngcontent-%COMP%]:focus, a.badge-secondary[_ngcontent-%COMP%]:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus[_ngcontent-%COMP%], a.badge-secondary[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success[_ngcontent-%COMP%]{color:#fff;background-color:#28a745}a.badge-success[_ngcontent-%COMP%]:focus, a.badge-success[_ngcontent-%COMP%]:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus[_ngcontent-%COMP%], a.badge-success[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info[_ngcontent-%COMP%]{color:#fff;background-color:#17a2b8}a.badge-info[_ngcontent-%COMP%]:focus, a.badge-info[_ngcontent-%COMP%]:hover{color:#fff;background-color:#117a8b}a.badge-info.focus[_ngcontent-%COMP%], a.badge-info[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning[_ngcontent-%COMP%]{color:#212529;background-color:#ffc107}a.badge-warning[_ngcontent-%COMP%]:focus, a.badge-warning[_ngcontent-%COMP%]:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus[_ngcontent-%COMP%], a.badge-warning[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger[_ngcontent-%COMP%]{color:#fff;background-color:#dc3545}a.badge-danger[_ngcontent-%COMP%]:focus, a.badge-danger[_ngcontent-%COMP%]:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus[_ngcontent-%COMP%], a.badge-danger[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light[_ngcontent-%COMP%]{color:#212529;background-color:#f8f9fa}a.badge-light[_ngcontent-%COMP%]:focus, a.badge-light[_ngcontent-%COMP%]:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus[_ngcontent-%COMP%], a.badge-light[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark[_ngcontent-%COMP%]{color:#fff;background-color:#777}a.badge-dark[_ngcontent-%COMP%]:focus, a.badge-dark[_ngcontent-%COMP%]:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus[_ngcontent-%COMP%], a.badge-dark[_ngcontent-%COMP%]:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron[_ngcontent-%COMP%]{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron[_ngcontent-%COMP%]{padding:4rem 2rem}}.jumbotron-fluid[_ngcontent-%COMP%]{padding-right:0;padding-left:0;border-radius:0}.alert[_ngcontent-%COMP%]{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading[_ngcontent-%COMP%]{color:inherit}.alert-link[_ngcontent-%COMP%]{font-weight:700}.alert-dismissible[_ngcontent-%COMP%]{padding-right:4rem}.alert-dismissible[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary[_ngcontent-%COMP%]{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b2d9e0}.alert-primary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0c2b2e}.alert-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f9bab7}.alert-secondary[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#56211f}.alert-success[_ngcontent-%COMP%]{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#b1dfbb}.alert-success[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#0b2e13}.alert-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#abdde5}.alert-info[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#062c33}.alert-warning[_ngcontent-%COMP%]{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ffe8a1}.alert-warning[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#533f03}.alert-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#f1b0b7}.alert-danger[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#491217}.alert-light[_ngcontent-%COMP%]{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ececf6}.alert-light[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#686868}.alert-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border-top-color:#ccc}.alert-dark[_ngcontent-%COMP%]   .alert-link[_ngcontent-%COMP%]{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress[_ngcontent-%COMP%]{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped[_ngcontent-%COMP%]{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated[_ngcontent-%COMP%]{animation:1s linear infinite progress-bar-stripes}.media[_ngcontent-%COMP%]{display:flex;align-items:flex-start}.media-body[_ngcontent-%COMP%]{flex:1}.list-group[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action[_ngcontent-%COMP%]{width:100%;color:#495057;text-align:inherit}.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-action[_ngcontent-%COMP%]:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action[_ngcontent-%COMP%]:active{color:#212529;background-color:#e9ecef}.list-group-item[_ngcontent-%COMP%]{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled[_ngcontent-%COMP%], .list-group-item[_ngcontent-%COMP%]:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active[_ngcontent-%COMP%]{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-horizontal[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl[_ngcontent-%COMP%]{flex-direction:row}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]{border-right:0;border-left:0;border-radius:0}.list-group-flush[_ngcontent-%COMP%]   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:-1px}.list-group-flush[_ngcontent-%COMP%]:first-child   .list-group-item[_ngcontent-%COMP%]:first-child{border-top:0}.list-group-flush[_ngcontent-%COMP%]:last-child   .list-group-item[_ngcontent-%COMP%]:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary[_ngcontent-%COMP%]{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-primary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary[_ngcontent-%COMP%]{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-secondary.list-group-item-action[_ngcontent-%COMP%]:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success[_ngcontent-%COMP%]{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-success.list-group-item-action[_ngcontent-%COMP%]:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info[_ngcontent-%COMP%]{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-info.list-group-item-action[_ngcontent-%COMP%]:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning[_ngcontent-%COMP%]{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-warning.list-group-item-action[_ngcontent-%COMP%]:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger[_ngcontent-%COMP%]{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-danger.list-group-item-action[_ngcontent-%COMP%]:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light[_ngcontent-%COMP%]{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-light.list-group-item-action[_ngcontent-%COMP%]:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark[_ngcontent-%COMP%]{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:focus, .list-group-item-dark.list-group-item-action[_ngcontent-%COMP%]:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active[_ngcontent-%COMP%]{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close[_ngcontent-%COMP%]{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close[_ngcontent-%COMP%]:hover{color:#000;text-decoration:none}.close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):focus, .close[_ngcontent-%COMP%]:not(:disabled):not(.disabled):hover{opacity:.75}button.close[_ngcontent-%COMP%]{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled[_ngcontent-%COMP%]{pointer-events:none}.toast[_ngcontent-%COMP%]{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast[_ngcontent-%COMP%]:not(:last-child){margin-bottom:.75rem}.toast.showing[_ngcontent-%COMP%]{opacity:1}.toast.show[_ngcontent-%COMP%]{display:block;opacity:1}.toast.hide[_ngcontent-%COMP%]{display:none}.toast-header[_ngcontent-%COMP%]{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body[_ngcontent-%COMP%]{padding:.75rem}.modal-open[_ngcontent-%COMP%]{overflow:hidden}.modal-open[_ngcontent-%COMP%]   .modal[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto}.modal[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog[_ngcontent-%COMP%]{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar[_ngcontent-%COMP%]{transition:none}.progress-bar-animated[_ngcontent-%COMP%]{animation:none}.modal.fade[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transition:none}}.modal.show[_ngcontent-%COMP%]   .modal-dialog[_ngcontent-%COMP%]{transform:none}.modal-dialog-scrollable[_ngcontent-%COMP%]{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-footer[_ngcontent-%COMP%], .modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-header[_ngcontent-%COMP%]{flex-shrink:0}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-body[_ngcontent-%COMP%]{overflow-y:auto}.modal-dialog-centered[_ngcontent-%COMP%]{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:none}.modal-dialog-centered.modal-dialog-scrollable[_ngcontent-%COMP%]::before{content:none}.modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop[_ngcontent-%COMP%]{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade[_ngcontent-%COMP%]{opacity:0}.modal-backdrop.show[_ngcontent-%COMP%]{opacity:.5}.modal-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header[_ngcontent-%COMP%]   .close[_ngcontent-%COMP%]{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title[_ngcontent-%COMP%]{margin-bottom:0;line-height:1.5}.modal-body[_ngcontent-%COMP%]{position:relative;flex:1 1 auto;padding:1rem}.modal-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:first-child){margin-left:.25rem}.modal-footer[_ngcontent-%COMP%] > [_ngcontent-%COMP%]:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure[_ngcontent-%COMP%]{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog[_ngcontent-%COMP%]{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable[_ngcontent-%COMP%]{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable[_ngcontent-%COMP%]   .modal-content[_ngcontent-%COMP%]{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]{min-height:calc(100% - 3.5rem)}.modal-dialog-centered[_ngcontent-%COMP%]::before{height:calc(100vh - 3.5rem)}.modal-sm[_ngcontent-%COMP%]{max-width:300px}}@media (min-width:992px){.modal-lg[_ngcontent-%COMP%], .modal-xl[_ngcontent-%COMP%]{max-width:800px}}@media (min-width:1200px){.modal-xl[_ngcontent-%COMP%]{max-width:1140px}}.tooltip[_ngcontent-%COMP%]{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show[_ngcontent-%COMP%]{opacity:.9}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{bottom:0}.bs-tooltip-auto[x-placement^=top][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-top[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-right[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{top:0}.bs-tooltip-auto[x-placement^=bottom][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-bottom[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%], .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left][_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before, .bs-tooltip-left[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner[_ngcontent-%COMP%]{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::after, .popover[_ngcontent-%COMP%]   .arrow[_ngcontent-%COMP%]::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%]{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-top[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%]{margin-left:.5rem}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-right[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%]{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-bottom[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom][_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before, .bs-popover-bottom[_ngcontent-%COMP%]   .popover-header[_ngcontent-%COMP%]::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%]{margin-right:.5rem}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%], .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left][_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after, .bs-popover-left[_ngcontent-%COMP%] > .arrow[_ngcontent-%COMP%]::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header[_ngcontent-%COMP%]{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header[_ngcontent-%COMP%]:empty{display:none}.popover-body[_ngcontent-%COMP%]{padding:.5rem .75rem;color:#212529}.carousel[_ngcontent-%COMP%]{position:relative}.carousel.pointer-event[_ngcontent-%COMP%]{touch-action:pan-y}.carousel-inner[_ngcontent-%COMP%]{position:relative;width:100%;overflow:hidden}.carousel-inner[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.carousel-item[_ngcontent-%COMP%]{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%], .carousel-item.active[_ngcontent-%COMP%]{display:block}.active.carousel-item-right[_ngcontent-%COMP%], .carousel-item-next[_ngcontent-%COMP%]:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left[_ngcontent-%COMP%], .carousel-item-prev[_ngcontent-%COMP%]:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade[_ngcontent-%COMP%]   .carousel-item[_ngcontent-%COMP%]{opacity:0;transition-property:opacity;transform:none}.carousel-fade[_ngcontent-%COMP%]   .carousel-item-next.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item-prev.carousel-item-right[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .carousel-item.active[_ngcontent-%COMP%]{z-index:1;opacity:1}.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%]{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-left[_ngcontent-%COMP%], .carousel-fade[_ngcontent-%COMP%]   .active.carousel-item-right[_ngcontent-%COMP%], .carousel-item[_ngcontent-%COMP%]{transition:none}}.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next[_ngcontent-%COMP%]:focus, .carousel-control-next[_ngcontent-%COMP%]:hover, .carousel-control-prev[_ngcontent-%COMP%]:focus, .carousel-control-prev[_ngcontent-%COMP%]:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev[_ngcontent-%COMP%]{left:0}.carousel-control-next[_ngcontent-%COMP%]{right:0}.carousel-control-next-icon[_ngcontent-%COMP%], .carousel-control-prev-icon[_ngcontent-%COMP%]{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z\'/%3e%3c/svg%3e")}.carousel-control-next-icon[_ngcontent-%COMP%]{background-image:url("data:image/svg+xml,%3csvg xmlns=\'http://www.w3.org/2000/svg\' fill=\'%23fff\' viewBox=\'0 0 8 8\'%3e%3cpath d=\'M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z\'/%3e%3c/svg%3e")}.carousel-indicators[_ngcontent-%COMP%]{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next[_ngcontent-%COMP%], .carousel-control-prev[_ngcontent-%COMP%], .carousel-indicators[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{transition:none}}.carousel-indicators[_ngcontent-%COMP%]   .active[_ngcontent-%COMP%]{opacity:1}.carousel-caption[_ngcontent-%COMP%]{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm[_ngcontent-%COMP%]{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow[_ngcontent-%COMP%]{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm[_ngcontent-%COMP%]{width:1rem;height:1rem}.align-baseline[_ngcontent-%COMP%]{vertical-align:baseline!important}.align-top[_ngcontent-%COMP%]{vertical-align:top!important}.align-middle[_ngcontent-%COMP%]{vertical-align:middle!important}.align-bottom[_ngcontent-%COMP%]{vertical-align:bottom!important}.align-text-bottom[_ngcontent-%COMP%]{vertical-align:text-bottom!important}.align-text-top[_ngcontent-%COMP%]{vertical-align:text-top!important}.bg-primary[_ngcontent-%COMP%]{background-color:#2b99a8!important}a.bg-primary[_ngcontent-%COMP%]:focus, a.bg-primary[_ngcontent-%COMP%]:hover, button.bg-primary[_ngcontent-%COMP%]:focus, button.bg-primary[_ngcontent-%COMP%]:hover{background-color:#21747f!important}.bg-secondary[_ngcontent-%COMP%]{background-color:#ef5c55!important}a.bg-secondary[_ngcontent-%COMP%]:focus, a.bg-secondary[_ngcontent-%COMP%]:hover, button.bg-secondary[_ngcontent-%COMP%]:focus, button.bg-secondary[_ngcontent-%COMP%]:hover{background-color:#eb2f26!important}.bg-success[_ngcontent-%COMP%]{background-color:#28a745!important}a.bg-success[_ngcontent-%COMP%]:focus, a.bg-success[_ngcontent-%COMP%]:hover, button.bg-success[_ngcontent-%COMP%]:focus, button.bg-success[_ngcontent-%COMP%]:hover{background-color:#1e7e34!important}.bg-info[_ngcontent-%COMP%]{background-color:#17a2b8!important}a.bg-info[_ngcontent-%COMP%]:focus, a.bg-info[_ngcontent-%COMP%]:hover, button.bg-info[_ngcontent-%COMP%]:focus, button.bg-info[_ngcontent-%COMP%]:hover{background-color:#117a8b!important}.bg-warning[_ngcontent-%COMP%]{background-color:#ffc107!important}a.bg-warning[_ngcontent-%COMP%]:focus, a.bg-warning[_ngcontent-%COMP%]:hover, button.bg-warning[_ngcontent-%COMP%]:focus, button.bg-warning[_ngcontent-%COMP%]:hover{background-color:#d39e00!important}.bg-danger[_ngcontent-%COMP%]{background-color:#dc3545!important}a.bg-danger[_ngcontent-%COMP%]:focus, a.bg-danger[_ngcontent-%COMP%]:hover, button.bg-danger[_ngcontent-%COMP%]:focus, button.bg-danger[_ngcontent-%COMP%]:hover{background-color:#bd2130!important}.bg-light[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{background-color:#f8f9fa!important}a.bg-light[_ngcontent-%COMP%]:focus, a.bg-light[_ngcontent-%COMP%]:hover, button.bg-light[_ngcontent-%COMP%]:focus, button.bg-light[_ngcontent-%COMP%]:hover{background-color:#dae0e5!important}.bg-dark[_ngcontent-%COMP%]{background-color:#777!important}a.bg-dark[_ngcontent-%COMP%]:focus, a.bg-dark[_ngcontent-%COMP%]:hover, button.bg-dark[_ngcontent-%COMP%]:focus, button.bg-dark[_ngcontent-%COMP%]:hover{background-color:#5e5e5e!important}.bg-white[_ngcontent-%COMP%]{background-color:#fff!important}.bg-transparent[_ngcontent-%COMP%]{background-color:transparent!important}.border[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.border-top[_ngcontent-%COMP%]{border-top:1px solid #dee2e6!important}.border-right[_ngcontent-%COMP%]{border-right:1px solid #dee2e6!important}.border-bottom[_ngcontent-%COMP%], .cd-header[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{border-bottom:1px solid #dee2e6!important}.border-left[_ngcontent-%COMP%]{border-left:1px solid #dee2e6!important}.border-0[_ngcontent-%COMP%]{border:0!important}.border-top-0[_ngcontent-%COMP%]{border-top:0!important}.border-right-0[_ngcontent-%COMP%]{border-right:0!important}.border-bottom-0[_ngcontent-%COMP%]{border-bottom:0!important}.border-left-0[_ngcontent-%COMP%]{border-left:0!important}.border-primary[_ngcontent-%COMP%]{border-color:#2b99a8!important}.border-secondary[_ngcontent-%COMP%]{border-color:#ef5c55!important}.border-success[_ngcontent-%COMP%]{border-color:#28a745!important}.border-info[_ngcontent-%COMP%]{border-color:#17a2b8!important}.border-warning[_ngcontent-%COMP%]{border-color:#ffc107!important}.border-danger[_ngcontent-%COMP%]{border-color:#dc3545!important}.border-light[_ngcontent-%COMP%]{border-color:#f8f9fa!important}.border-dark[_ngcontent-%COMP%]{border-color:#777!important}.border-white[_ngcontent-%COMP%]{border-color:#fff!important}.rounded-sm[_ngcontent-%COMP%]{border-radius:.2rem!important}.rounded[_ngcontent-%COMP%]{border-radius:.25rem!important}.rounded-top[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right[_ngcontent-%COMP%]{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom[_ngcontent-%COMP%]{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left[_ngcontent-%COMP%]{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg[_ngcontent-%COMP%]{border-radius:.3rem!important}.rounded-circle[_ngcontent-%COMP%]{border-radius:50%!important}.rounded-pill[_ngcontent-%COMP%]{border-radius:50rem!important}.rounded-0[_ngcontent-%COMP%]{border-radius:0!important}.clearfix[_ngcontent-%COMP%]::after{display:block;clear:both;content:""}.d-none[_ngcontent-%COMP%]{display:none!important}.d-inline[_ngcontent-%COMP%]{display:inline!important}.d-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-block[_ngcontent-%COMP%]{display:block!important}.d-table[_ngcontent-%COMP%]{display:table!important}.d-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-flex[_ngcontent-%COMP%]{display:flex!important}.d-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}@media (min-width:576px){.d-sm-none[_ngcontent-%COMP%]{display:none!important}.d-sm-inline[_ngcontent-%COMP%]{display:inline!important}.d-sm-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-sm-block[_ngcontent-%COMP%]{display:block!important}.d-sm-table[_ngcontent-%COMP%]{display:table!important}.d-sm-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-sm-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-sm-flex[_ngcontent-%COMP%]{display:flex!important}.d-sm-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:768px){.d-md-none[_ngcontent-%COMP%]{display:none!important}.d-md-inline[_ngcontent-%COMP%]{display:inline!important}.d-md-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-md-block[_ngcontent-%COMP%]{display:block!important}.d-md-table[_ngcontent-%COMP%]{display:table!important}.d-md-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-md-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-md-flex[_ngcontent-%COMP%]{display:flex!important}.d-md-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:992px){.d-lg-none[_ngcontent-%COMP%]{display:none!important}.d-lg-inline[_ngcontent-%COMP%]{display:inline!important}.d-lg-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-lg-block[_ngcontent-%COMP%]{display:block!important}.d-lg-table[_ngcontent-%COMP%]{display:table!important}.d-lg-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-lg-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-lg-flex[_ngcontent-%COMP%]{display:flex!important}.d-lg-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none[_ngcontent-%COMP%]{display:none!important}.d-xl-inline[_ngcontent-%COMP%]{display:inline!important}.d-xl-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-xl-block[_ngcontent-%COMP%]{display:block!important}.d-xl-table[_ngcontent-%COMP%]{display:table!important}.d-xl-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-xl-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-xl-flex[_ngcontent-%COMP%]{display:flex!important}.d-xl-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}@media print{.d-print-none[_ngcontent-%COMP%]{display:none!important}.d-print-inline[_ngcontent-%COMP%]{display:inline!important}.d-print-inline-block[_ngcontent-%COMP%]{display:inline-block!important}.d-print-block[_ngcontent-%COMP%]{display:block!important}.d-print-table[_ngcontent-%COMP%]{display:table!important}.d-print-table-row[_ngcontent-%COMP%]{display:table-row!important}.d-print-table-cell[_ngcontent-%COMP%]{display:table-cell!important}.d-print-flex[_ngcontent-%COMP%]{display:flex!important}.d-print-inline-flex[_ngcontent-%COMP%]{display:inline-flex!important}}.embed-responsive[_ngcontent-%COMP%]{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive[_ngcontent-%COMP%]::before{display:block;content:""}.embed-responsive[_ngcontent-%COMP%]   .embed-responsive-item[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   embed[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   iframe[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   object[_ngcontent-%COMP%], .embed-responsive[_ngcontent-%COMP%]   video[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9[_ngcontent-%COMP%]::before{padding-top:42.8571428571%}.embed-responsive-16by9[_ngcontent-%COMP%]::before{padding-top:56.25%}.embed-responsive-4by3[_ngcontent-%COMP%]::before{padding-top:75%}.embed-responsive-1by1[_ngcontent-%COMP%]::before{padding-top:100%}.flex-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-stretch[_ngcontent-%COMP%]{align-self:stretch!important}@media (min-width:576px){.flex-sm-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-sm-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-sm-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-sm-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-sm-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-sm-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-sm-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-sm-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-sm-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-sm-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-sm-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-sm-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-sm-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-sm-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-sm-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-sm-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-sm-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-sm-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-sm-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-sm-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-sm-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-sm-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-sm-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-sm-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-sm-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-sm-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-sm-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-sm-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-sm-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-sm-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-sm-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-sm-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-sm-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-sm-stretch[_ngcontent-%COMP%]{align-self:stretch!important}}.float-left[_ngcontent-%COMP%]{float:left!important}.float-right[_ngcontent-%COMP%]{float:right!important}.float-none[_ngcontent-%COMP%]{float:none!important}@media (min-width:576px){.float-sm-left[_ngcontent-%COMP%]{float:left!important}.float-sm-right[_ngcontent-%COMP%]{float:right!important}.float-sm-none[_ngcontent-%COMP%]{float:none!important}}.overflow-auto[_ngcontent-%COMP%]{overflow:auto!important}.overflow-hidden[_ngcontent-%COMP%]{overflow:hidden!important}.position-static[_ngcontent-%COMP%]{position:static!important}.position-relative[_ngcontent-%COMP%]{position:relative!important}.position-absolute[_ngcontent-%COMP%]{position:absolute!important}.position-fixed[_ngcontent-%COMP%]{position:fixed!important}.position-sticky[_ngcontent-%COMP%]{position:sticky!important}.fixed-top[_ngcontent-%COMP%]{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom[_ngcontent-%COMP%]{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1020}}.sr-only[_ngcontent-%COMP%]{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm[_ngcontent-%COMP%]{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow[_ngcontent-%COMP%]{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg[_ngcontent-%COMP%]{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none[_ngcontent-%COMP%]{box-shadow:none!important}.w-25[_ngcontent-%COMP%]{width:25%!important}.w-50[_ngcontent-%COMP%]{width:50%!important}.w-75[_ngcontent-%COMP%]{width:75%!important}.w-100[_ngcontent-%COMP%]{width:100%!important}.w-auto[_ngcontent-%COMP%]{width:auto!important}.h-25[_ngcontent-%COMP%]{height:25%!important}.h-50[_ngcontent-%COMP%]{height:50%!important}.h-75[_ngcontent-%COMP%]{height:75%!important}.h-100[_ngcontent-%COMP%]{height:100%!important}.h-auto[_ngcontent-%COMP%]{height:auto!important}.mw-100[_ngcontent-%COMP%]{max-width:100%!important}.mh-100[_ngcontent-%COMP%]{max-height:100%!important}.min-vw-100[_ngcontent-%COMP%]{min-width:100vw!important}.min-vh-100[_ngcontent-%COMP%]{min-height:100vh!important}.vw-100[_ngcontent-%COMP%]{width:100vw!important}.vh-100[_ngcontent-%COMP%]{height:100vh!important}.stretched-link[_ngcontent-%COMP%]::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0[_ngcontent-%COMP%]{margin:0!important}.mt-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-0[_ngcontent-%COMP%], .my-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-0[_ngcontent-%COMP%], .mx-0[_ngcontent-%COMP%]{margin-left:0!important}.m-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-1[_ngcontent-%COMP%], .my-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-1[_ngcontent-%COMP%], .mx-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%], label[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-2[_ngcontent-%COMP%], .my-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-2[_ngcontent-%COMP%], .mx-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-top:1rem!important}.form-group[_ngcontent-%COMP%], .mr-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-right:1rem!important}.form-group[_ngcontent-%COMP%], .mb-3[_ngcontent-%COMP%], .my-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-3[_ngcontent-%COMP%], .mx-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-4[_ngcontent-%COMP%]{margin:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mt-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.cd-header[_ngcontent-%COMP%], .mb-4[_ngcontent-%COMP%], .my-4[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-4[_ngcontent-%COMP%], .mx-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-5[_ngcontent-%COMP%], .my-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-5[_ngcontent-%COMP%], .mx-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-0[_ngcontent-%COMP%]{padding:0!important}.pt-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-0[_ngcontent-%COMP%], .py-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-0[_ngcontent-%COMP%], .px-0[_ngcontent-%COMP%]{padding-left:0!important}.p-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.cd-header[_ngcontent-%COMP%], .pb-1[_ngcontent-%COMP%], .py-1[_ngcontent-%COMP%], legend[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-1[_ngcontent-%COMP%], .px-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-2[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{padding:.5rem!important}.pt-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-2[_ngcontent-%COMP%], .py-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-2[_ngcontent-%COMP%], .px-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-3[_ngcontent-%COMP%], .py-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-3[_ngcontent-%COMP%], .px-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-4[_ngcontent-%COMP%], .py-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-4[_ngcontent-%COMP%], .px-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-5[_ngcontent-%COMP%], .py-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-5[_ngcontent-%COMP%], .px-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-n1[_ngcontent-%COMP%], .my-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-n1[_ngcontent-%COMP%], .mx-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-n2[_ngcontent-%COMP%], .my-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-n2[_ngcontent-%COMP%], .mx-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-n3[_ngcontent-%COMP%], .my-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-n3[_ngcontent-%COMP%], .mx-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-n4[_ngcontent-%COMP%], .my-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-n4[_ngcontent-%COMP%], .mx-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-n5[_ngcontent-%COMP%], .my-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-n5[_ngcontent-%COMP%], .mx-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-auto[_ngcontent-%COMP%], .my-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-auto[_ngcontent-%COMP%], .mx-auto[_ngcontent-%COMP%]{margin-left:auto!important}@media (min-width:576px){.m-sm-0[_ngcontent-%COMP%]{margin:0!important}.mt-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-sm-0[_ngcontent-%COMP%], .my-sm-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-sm-0[_ngcontent-%COMP%], .mx-sm-0[_ngcontent-%COMP%]{margin-left:0!important}.m-sm-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-sm-1[_ngcontent-%COMP%], .my-sm-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-sm-1[_ngcontent-%COMP%], .mx-sm-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-sm-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-sm-2[_ngcontent-%COMP%], .my-sm-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-sm-2[_ngcontent-%COMP%], .mx-sm-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-sm-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-sm-3[_ngcontent-%COMP%], .my-sm-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-sm-3[_ngcontent-%COMP%], .mx-sm-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-sm-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-sm-4[_ngcontent-%COMP%], .my-sm-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-sm-4[_ngcontent-%COMP%], .mx-sm-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-sm-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-sm-5[_ngcontent-%COMP%], .my-sm-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-sm-5[_ngcontent-%COMP%], .mx-sm-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-sm-0[_ngcontent-%COMP%]{padding:0!important}.pt-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-sm-0[_ngcontent-%COMP%], .py-sm-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-sm-0[_ngcontent-%COMP%], .px-sm-0[_ngcontent-%COMP%]{padding-left:0!important}.p-sm-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-sm-1[_ngcontent-%COMP%], .py-sm-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-sm-1[_ngcontent-%COMP%], .px-sm-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-sm-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-sm-2[_ngcontent-%COMP%], .py-sm-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-sm-2[_ngcontent-%COMP%], .px-sm-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-sm-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-sm-3[_ngcontent-%COMP%], .py-sm-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-sm-3[_ngcontent-%COMP%], .px-sm-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-sm-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-sm-4[_ngcontent-%COMP%], .py-sm-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-sm-4[_ngcontent-%COMP%], .px-sm-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-sm-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-sm-5[_ngcontent-%COMP%], .py-sm-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-sm-5[_ngcontent-%COMP%], .px-sm-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-sm-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-sm-n1[_ngcontent-%COMP%], .my-sm-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-sm-n1[_ngcontent-%COMP%], .mx-sm-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-sm-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-sm-n2[_ngcontent-%COMP%], .my-sm-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-sm-n2[_ngcontent-%COMP%], .mx-sm-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-sm-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-sm-n3[_ngcontent-%COMP%], .my-sm-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-sm-n3[_ngcontent-%COMP%], .mx-sm-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-sm-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-sm-n4[_ngcontent-%COMP%], .my-sm-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-sm-n4[_ngcontent-%COMP%], .mx-sm-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-sm-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-sm-n5[_ngcontent-%COMP%], .my-sm-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-sm-n5[_ngcontent-%COMP%], .mx-sm-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-sm-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-sm-auto[_ngcontent-%COMP%], .my-sm-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-sm-auto[_ngcontent-%COMP%], .mx-sm-auto[_ngcontent-%COMP%]{margin-left:auto!important}}.text-monospace[_ngcontent-%COMP%]{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify[_ngcontent-%COMP%]{text-align:justify!important}.text-wrap[_ngcontent-%COMP%]{white-space:normal!important}.text-nowrap[_ngcontent-%COMP%]{white-space:nowrap!important}.text-truncate[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left[_ngcontent-%COMP%]{text-align:left!important}.text-right[_ngcontent-%COMP%]{text-align:right!important}.text-center[_ngcontent-%COMP%]{text-align:center!important}@media (min-width:576px){.text-sm-left[_ngcontent-%COMP%]{text-align:left!important}.text-sm-right[_ngcontent-%COMP%]{text-align:right!important}.text-sm-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:768px){.flex-md-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-md-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-md-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-md-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-md-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-md-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-md-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-md-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-md-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-md-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-md-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-md-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-md-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-md-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-md-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-md-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-md-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-md-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-md-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-md-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-md-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-md-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-md-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-md-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-md-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-md-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-md-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-md-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-md-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-md-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-md-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-md-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-md-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-md-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-md-left[_ngcontent-%COMP%]{float:left!important}.float-md-right[_ngcontent-%COMP%]{float:right!important}.float-md-none[_ngcontent-%COMP%]{float:none!important}.m-md-0[_ngcontent-%COMP%]{margin:0!important}.mt-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-md-0[_ngcontent-%COMP%], .my-md-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-md-0[_ngcontent-%COMP%], .mx-md-0[_ngcontent-%COMP%]{margin-left:0!important}.m-md-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-md-1[_ngcontent-%COMP%], .my-md-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-md-1[_ngcontent-%COMP%], .mx-md-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-md-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-md-2[_ngcontent-%COMP%], .my-md-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-md-2[_ngcontent-%COMP%], .mx-md-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-md-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-md-3[_ngcontent-%COMP%], .my-md-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-md-3[_ngcontent-%COMP%], .mx-md-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-md-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-md-4[_ngcontent-%COMP%], .my-md-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-md-4[_ngcontent-%COMP%], .mx-md-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-md-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-md-5[_ngcontent-%COMP%], .my-md-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-md-5[_ngcontent-%COMP%], .mx-md-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-md-0[_ngcontent-%COMP%]{padding:0!important}.pt-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-md-0[_ngcontent-%COMP%], .py-md-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-md-0[_ngcontent-%COMP%], .px-md-0[_ngcontent-%COMP%]{padding-left:0!important}.p-md-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-md-1[_ngcontent-%COMP%], .py-md-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-md-1[_ngcontent-%COMP%], .px-md-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-md-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-md-2[_ngcontent-%COMP%], .py-md-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-md-2[_ngcontent-%COMP%], .px-md-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-md-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-md-3[_ngcontent-%COMP%], .py-md-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-md-3[_ngcontent-%COMP%], .px-md-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-md-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-md-4[_ngcontent-%COMP%], .py-md-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-md-4[_ngcontent-%COMP%], .px-md-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-md-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-md-5[_ngcontent-%COMP%], .py-md-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-md-5[_ngcontent-%COMP%], .px-md-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-md-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-md-n1[_ngcontent-%COMP%], .my-md-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-md-n1[_ngcontent-%COMP%], .mx-md-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-md-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-md-n2[_ngcontent-%COMP%], .my-md-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-md-n2[_ngcontent-%COMP%], .mx-md-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-md-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-md-n3[_ngcontent-%COMP%], .my-md-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-md-n3[_ngcontent-%COMP%], .mx-md-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-md-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-md-n4[_ngcontent-%COMP%], .my-md-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-md-n4[_ngcontent-%COMP%], .mx-md-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-md-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-md-n5[_ngcontent-%COMP%], .my-md-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-md-n5[_ngcontent-%COMP%], .mx-md-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-md-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-md-auto[_ngcontent-%COMP%], .my-md-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-md-auto[_ngcontent-%COMP%], .mx-md-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-md-left[_ngcontent-%COMP%]{text-align:left!important}.text-md-right[_ngcontent-%COMP%]{text-align:right!important}.text-md-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:992px){.flex-lg-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-lg-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-lg-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-lg-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-lg-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-lg-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-lg-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-lg-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-lg-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-lg-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-lg-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-lg-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-lg-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-lg-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-lg-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-lg-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-lg-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-lg-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-lg-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-lg-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-lg-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-lg-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-lg-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-lg-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-lg-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-lg-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-lg-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-lg-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-lg-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-lg-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-lg-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-lg-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-lg-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-lg-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-lg-left[_ngcontent-%COMP%]{float:left!important}.float-lg-right[_ngcontent-%COMP%]{float:right!important}.float-lg-none[_ngcontent-%COMP%]{float:none!important}.m-lg-0[_ngcontent-%COMP%]{margin:0!important}.mt-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-lg-0[_ngcontent-%COMP%], .my-lg-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-lg-0[_ngcontent-%COMP%], .mx-lg-0[_ngcontent-%COMP%]{margin-left:0!important}.m-lg-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-lg-1[_ngcontent-%COMP%], .my-lg-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-lg-1[_ngcontent-%COMP%], .mx-lg-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-lg-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-lg-2[_ngcontent-%COMP%], .my-lg-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-lg-2[_ngcontent-%COMP%], .mx-lg-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-lg-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-lg-3[_ngcontent-%COMP%], .my-lg-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-lg-3[_ngcontent-%COMP%], .mx-lg-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-lg-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-lg-4[_ngcontent-%COMP%], .my-lg-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-lg-4[_ngcontent-%COMP%], .mx-lg-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-lg-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-lg-5[_ngcontent-%COMP%], .my-lg-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-lg-5[_ngcontent-%COMP%], .mx-lg-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-lg-0[_ngcontent-%COMP%]{padding:0!important}.pt-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-lg-0[_ngcontent-%COMP%], .py-lg-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-lg-0[_ngcontent-%COMP%], .px-lg-0[_ngcontent-%COMP%]{padding-left:0!important}.p-lg-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-lg-1[_ngcontent-%COMP%], .py-lg-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-lg-1[_ngcontent-%COMP%], .px-lg-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-lg-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-lg-2[_ngcontent-%COMP%], .py-lg-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-lg-2[_ngcontent-%COMP%], .px-lg-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-lg-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-lg-3[_ngcontent-%COMP%], .py-lg-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-lg-3[_ngcontent-%COMP%], .px-lg-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-lg-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-lg-4[_ngcontent-%COMP%], .py-lg-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-lg-4[_ngcontent-%COMP%], .px-lg-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-lg-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-lg-5[_ngcontent-%COMP%], .py-lg-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-lg-5[_ngcontent-%COMP%], .px-lg-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-lg-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-lg-n1[_ngcontent-%COMP%], .my-lg-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-lg-n1[_ngcontent-%COMP%], .mx-lg-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-lg-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-lg-n2[_ngcontent-%COMP%], .my-lg-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-lg-n2[_ngcontent-%COMP%], .mx-lg-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-lg-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-lg-n3[_ngcontent-%COMP%], .my-lg-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-lg-n3[_ngcontent-%COMP%], .mx-lg-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-lg-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-lg-n4[_ngcontent-%COMP%], .my-lg-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-lg-n4[_ngcontent-%COMP%], .mx-lg-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-lg-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-lg-n5[_ngcontent-%COMP%], .my-lg-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-lg-n5[_ngcontent-%COMP%], .mx-lg-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-lg-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-lg-auto[_ngcontent-%COMP%], .my-lg-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-lg-auto[_ngcontent-%COMP%], .mx-lg-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-lg-left[_ngcontent-%COMP%]{text-align:left!important}.text-lg-right[_ngcontent-%COMP%]{text-align:right!important}.text-lg-center[_ngcontent-%COMP%]{text-align:center!important}}@media (min-width:1200px){.flex-xl-row[_ngcontent-%COMP%]{flex-direction:row!important}.flex-xl-column[_ngcontent-%COMP%]{flex-direction:column!important}.flex-xl-row-reverse[_ngcontent-%COMP%]{flex-direction:row-reverse!important}.flex-xl-column-reverse[_ngcontent-%COMP%]{flex-direction:column-reverse!important}.flex-xl-wrap[_ngcontent-%COMP%]{flex-wrap:wrap!important}.flex-xl-nowrap[_ngcontent-%COMP%]{flex-wrap:nowrap!important}.flex-xl-wrap-reverse[_ngcontent-%COMP%]{flex-wrap:wrap-reverse!important}.flex-xl-fill[_ngcontent-%COMP%]{flex:1 1 auto!important}.flex-xl-grow-0[_ngcontent-%COMP%]{flex-grow:0!important}.flex-xl-grow-1[_ngcontent-%COMP%]{flex-grow:1!important}.flex-xl-shrink-0[_ngcontent-%COMP%]{flex-shrink:0!important}.flex-xl-shrink-1[_ngcontent-%COMP%]{flex-shrink:1!important}.justify-content-xl-start[_ngcontent-%COMP%]{justify-content:flex-start!important}.justify-content-xl-end[_ngcontent-%COMP%]{justify-content:flex-end!important}.justify-content-xl-center[_ngcontent-%COMP%]{justify-content:center!important}.justify-content-xl-between[_ngcontent-%COMP%]{justify-content:space-between!important}.justify-content-xl-around[_ngcontent-%COMP%]{justify-content:space-around!important}.align-items-xl-start[_ngcontent-%COMP%]{align-items:flex-start!important}.align-items-xl-end[_ngcontent-%COMP%]{align-items:flex-end!important}.align-items-xl-center[_ngcontent-%COMP%]{align-items:center!important}.align-items-xl-baseline[_ngcontent-%COMP%]{align-items:baseline!important}.align-items-xl-stretch[_ngcontent-%COMP%]{align-items:stretch!important}.align-content-xl-start[_ngcontent-%COMP%]{align-content:flex-start!important}.align-content-xl-end[_ngcontent-%COMP%]{align-content:flex-end!important}.align-content-xl-center[_ngcontent-%COMP%]{align-content:center!important}.align-content-xl-between[_ngcontent-%COMP%]{align-content:space-between!important}.align-content-xl-around[_ngcontent-%COMP%]{align-content:space-around!important}.align-content-xl-stretch[_ngcontent-%COMP%]{align-content:stretch!important}.align-self-xl-auto[_ngcontent-%COMP%]{align-self:auto!important}.align-self-xl-start[_ngcontent-%COMP%]{align-self:flex-start!important}.align-self-xl-end[_ngcontent-%COMP%]{align-self:flex-end!important}.align-self-xl-center[_ngcontent-%COMP%]{align-self:center!important}.align-self-xl-baseline[_ngcontent-%COMP%]{align-self:baseline!important}.align-self-xl-stretch[_ngcontent-%COMP%]{align-self:stretch!important}.float-xl-left[_ngcontent-%COMP%]{float:left!important}.float-xl-right[_ngcontent-%COMP%]{float:right!important}.float-xl-none[_ngcontent-%COMP%]{float:none!important}.m-xl-0[_ngcontent-%COMP%]{margin:0!important}.mt-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-top:0!important}.mr-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-right:0!important}.mb-xl-0[_ngcontent-%COMP%], .my-xl-0[_ngcontent-%COMP%]{margin-bottom:0!important}.ml-xl-0[_ngcontent-%COMP%], .mx-xl-0[_ngcontent-%COMP%]{margin-left:0!important}.m-xl-1[_ngcontent-%COMP%]{margin:.25rem!important}.mt-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-top:.25rem!important}.mr-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-right:.25rem!important}.mb-xl-1[_ngcontent-%COMP%], .my-xl-1[_ngcontent-%COMP%]{margin-bottom:.25rem!important}.ml-xl-1[_ngcontent-%COMP%], .mx-xl-1[_ngcontent-%COMP%]{margin-left:.25rem!important}.m-xl-2[_ngcontent-%COMP%]{margin:.5rem!important}.mt-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-top:.5rem!important}.mr-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-right:.5rem!important}.mb-xl-2[_ngcontent-%COMP%], .my-xl-2[_ngcontent-%COMP%]{margin-bottom:.5rem!important}.ml-xl-2[_ngcontent-%COMP%], .mx-xl-2[_ngcontent-%COMP%]{margin-left:.5rem!important}.m-xl-3[_ngcontent-%COMP%]{margin:1rem!important}.mt-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-top:1rem!important}.mr-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-right:1rem!important}.mb-xl-3[_ngcontent-%COMP%], .my-xl-3[_ngcontent-%COMP%]{margin-bottom:1rem!important}.ml-xl-3[_ngcontent-%COMP%], .mx-xl-3[_ngcontent-%COMP%]{margin-left:1rem!important}.m-xl-4[_ngcontent-%COMP%]{margin:1.5rem!important}.mt-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-top:1.5rem!important}.mr-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-right:1.5rem!important}.mb-xl-4[_ngcontent-%COMP%], .my-xl-4[_ngcontent-%COMP%]{margin-bottom:1.5rem!important}.ml-xl-4[_ngcontent-%COMP%], .mx-xl-4[_ngcontent-%COMP%]{margin-left:1.5rem!important}.m-xl-5[_ngcontent-%COMP%]{margin:3rem!important}.mt-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-top:3rem!important}.mr-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-right:3rem!important}.mb-xl-5[_ngcontent-%COMP%], .my-xl-5[_ngcontent-%COMP%]{margin-bottom:3rem!important}.ml-xl-5[_ngcontent-%COMP%], .mx-xl-5[_ngcontent-%COMP%]{margin-left:3rem!important}.p-xl-0[_ngcontent-%COMP%]{padding:0!important}.pt-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-top:0!important}.pr-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-right:0!important}.pb-xl-0[_ngcontent-%COMP%], .py-xl-0[_ngcontent-%COMP%]{padding-bottom:0!important}.pl-xl-0[_ngcontent-%COMP%], .px-xl-0[_ngcontent-%COMP%]{padding-left:0!important}.p-xl-1[_ngcontent-%COMP%]{padding:.25rem!important}.pt-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-top:.25rem!important}.pr-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-right:.25rem!important}.pb-xl-1[_ngcontent-%COMP%], .py-xl-1[_ngcontent-%COMP%]{padding-bottom:.25rem!important}.pl-xl-1[_ngcontent-%COMP%], .px-xl-1[_ngcontent-%COMP%]{padding-left:.25rem!important}.p-xl-2[_ngcontent-%COMP%]{padding:.5rem!important}.pt-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-top:.5rem!important}.pr-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-right:.5rem!important}.pb-xl-2[_ngcontent-%COMP%], .py-xl-2[_ngcontent-%COMP%]{padding-bottom:.5rem!important}.pl-xl-2[_ngcontent-%COMP%], .px-xl-2[_ngcontent-%COMP%]{padding-left:.5rem!important}.p-xl-3[_ngcontent-%COMP%]{padding:1rem!important}.pt-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-top:1rem!important}.pr-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-right:1rem!important}.pb-xl-3[_ngcontent-%COMP%], .py-xl-3[_ngcontent-%COMP%]{padding-bottom:1rem!important}.pl-xl-3[_ngcontent-%COMP%], .px-xl-3[_ngcontent-%COMP%]{padding-left:1rem!important}.p-xl-4[_ngcontent-%COMP%]{padding:1.5rem!important}.pt-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-top:1.5rem!important}.pr-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-right:1.5rem!important}.pb-xl-4[_ngcontent-%COMP%], .py-xl-4[_ngcontent-%COMP%]{padding-bottom:1.5rem!important}.pl-xl-4[_ngcontent-%COMP%], .px-xl-4[_ngcontent-%COMP%]{padding-left:1.5rem!important}.p-xl-5[_ngcontent-%COMP%]{padding:3rem!important}.pt-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-top:3rem!important}.pr-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-right:3rem!important}.pb-xl-5[_ngcontent-%COMP%], .py-xl-5[_ngcontent-%COMP%]{padding-bottom:3rem!important}.pl-xl-5[_ngcontent-%COMP%], .px-xl-5[_ngcontent-%COMP%]{padding-left:3rem!important}.m-xl-n1[_ngcontent-%COMP%]{margin:-.25rem!important}.mt-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-top:-.25rem!important}.mr-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-right:-.25rem!important}.mb-xl-n1[_ngcontent-%COMP%], .my-xl-n1[_ngcontent-%COMP%]{margin-bottom:-.25rem!important}.ml-xl-n1[_ngcontent-%COMP%], .mx-xl-n1[_ngcontent-%COMP%]{margin-left:-.25rem!important}.m-xl-n2[_ngcontent-%COMP%]{margin:-.5rem!important}.mt-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-top:-.5rem!important}.mr-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-right:-.5rem!important}.mb-xl-n2[_ngcontent-%COMP%], .my-xl-n2[_ngcontent-%COMP%]{margin-bottom:-.5rem!important}.ml-xl-n2[_ngcontent-%COMP%], .mx-xl-n2[_ngcontent-%COMP%]{margin-left:-.5rem!important}.m-xl-n3[_ngcontent-%COMP%]{margin:-1rem!important}.mt-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-top:-1rem!important}.mr-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-right:-1rem!important}.mb-xl-n3[_ngcontent-%COMP%], .my-xl-n3[_ngcontent-%COMP%]{margin-bottom:-1rem!important}.ml-xl-n3[_ngcontent-%COMP%], .mx-xl-n3[_ngcontent-%COMP%]{margin-left:-1rem!important}.m-xl-n4[_ngcontent-%COMP%]{margin:-1.5rem!important}.mt-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-top:-1.5rem!important}.mr-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-right:-1.5rem!important}.mb-xl-n4[_ngcontent-%COMP%], .my-xl-n4[_ngcontent-%COMP%]{margin-bottom:-1.5rem!important}.ml-xl-n4[_ngcontent-%COMP%], .mx-xl-n4[_ngcontent-%COMP%]{margin-left:-1.5rem!important}.m-xl-n5[_ngcontent-%COMP%]{margin:-3rem!important}.mt-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-top:-3rem!important}.mr-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-right:-3rem!important}.mb-xl-n5[_ngcontent-%COMP%], .my-xl-n5[_ngcontent-%COMP%]{margin-bottom:-3rem!important}.ml-xl-n5[_ngcontent-%COMP%], .mx-xl-n5[_ngcontent-%COMP%]{margin-left:-3rem!important}.m-xl-auto[_ngcontent-%COMP%]{margin:auto!important}.mt-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-top:auto!important}.mr-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-right:auto!important}.mb-xl-auto[_ngcontent-%COMP%], .my-xl-auto[_ngcontent-%COMP%]{margin-bottom:auto!important}.ml-xl-auto[_ngcontent-%COMP%], .mx-xl-auto[_ngcontent-%COMP%]{margin-left:auto!important}.text-xl-left[_ngcontent-%COMP%]{text-align:left!important}.text-xl-right[_ngcontent-%COMP%]{text-align:right!important}.text-xl-center[_ngcontent-%COMP%]{text-align:center!important}}.text-lowercase[_ngcontent-%COMP%]{text-transform:lowercase!important}.text-uppercase[_ngcontent-%COMP%]{text-transform:uppercase!important}.text-capitalize[_ngcontent-%COMP%]{text-transform:capitalize!important}.font-weight-light[_ngcontent-%COMP%]{font-weight:300!important}.font-weight-lighter[_ngcontent-%COMP%]{font-weight:lighter!important}.font-weight-normal[_ngcontent-%COMP%]{font-weight:400!important}.font-weight-bold[_ngcontent-%COMP%]{font-weight:700!important}.font-weight-bolder[_ngcontent-%COMP%]{font-weight:bolder!important}.font-italic[_ngcontent-%COMP%]{font-style:italic!important}.text-white[_ngcontent-%COMP%]{color:#fff!important}.text-primary[_ngcontent-%COMP%]{color:#2b99a8!important}a.text-primary[_ngcontent-%COMP%]:focus, a.text-primary[_ngcontent-%COMP%]:hover{color:#1b626b!important}.text-secondary[_ngcontent-%COMP%]{color:#ef5c55!important}a.text-secondary[_ngcontent-%COMP%]:focus, a.text-secondary[_ngcontent-%COMP%]:hover{color:#e21f15!important}.text-success[_ngcontent-%COMP%]{color:#28a745!important}a.text-success[_ngcontent-%COMP%]:focus, a.text-success[_ngcontent-%COMP%]:hover{color:#19692c!important}.text-info[_ngcontent-%COMP%]{color:#17a2b8!important}a.text-info[_ngcontent-%COMP%]:focus, a.text-info[_ngcontent-%COMP%]:hover{color:#0f6674!important}.text-warning[_ngcontent-%COMP%]{color:#ffc107!important}a.text-warning[_ngcontent-%COMP%]:focus, a.text-warning[_ngcontent-%COMP%]:hover{color:#ba8b00!important}.text-danger[_ngcontent-%COMP%]{color:#dc3545!important}a.text-danger[_ngcontent-%COMP%]:focus, a.text-danger[_ngcontent-%COMP%]:hover{color:#a71d2a!important}.text-light[_ngcontent-%COMP%]{color:#f8f9fa!important}a.text-light[_ngcontent-%COMP%]:focus, a.text-light[_ngcontent-%COMP%]:hover{color:#cbd3da!important}.text-dark[_ngcontent-%COMP%]{color:#777!important}a.text-dark[_ngcontent-%COMP%]:focus, a.text-dark[_ngcontent-%COMP%]:hover{color:#515151!important}.text-body[_ngcontent-%COMP%]{color:#212529!important}.text-muted[_ngcontent-%COMP%]{color:#6c757d!important}.text-black-50[_ngcontent-%COMP%]{color:rgba(0,0,0,.5)!important}.text-white-50[_ngcontent-%COMP%]{color:rgba(255,255,255,.5)!important}.text-hide[_ngcontent-%COMP%]{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none[_ngcontent-%COMP%]{text-decoration:none!important}.text-break[_ngcontent-%COMP%]{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset[_ngcontent-%COMP%]{color:inherit!important}.visible[_ngcontent-%COMP%]{visibility:visible!important}.invisible[_ngcontent-%COMP%]{visibility:hidden!important}@media print{*[_ngcontent-%COMP%], [_ngcontent-%COMP%]::after, [_ngcontent-%COMP%]::before{text-shadow:none!important;box-shadow:none!important}a[_ngcontent-%COMP%]:not(.btn){text-decoration:underline}abbr[title][_ngcontent-%COMP%]::after{content:" (" attr(title) ")"}pre[_ngcontent-%COMP%]{white-space:pre-wrap!important}blockquote[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]{border:1px solid #adb5bd;page-break-inside:avoid}thead[_ngcontent-%COMP%]{display:table-header-group}img[_ngcontent-%COMP%], tr[_ngcontent-%COMP%]{page-break-inside:avoid}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], p[_ngcontent-%COMP%]{orphans:3;widows:3}h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%]{page-break-after:avoid}@page{size:a3}.container[_ngcontent-%COMP%], body[_ngcontent-%COMP%]{min-width:992px!important}.navbar[_ngcontent-%COMP%]{display:none}.badge[_ngcontent-%COMP%]{border:1px solid #000}.table[_ngcontent-%COMP%]{border-collapse:collapse!important}.table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background-color:#fff!important}.table-bordered[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-bordered[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border:1px solid #dee2e6!important}.table-dark[_ngcontent-%COMP%]{color:inherit}.table-dark[_ngcontent-%COMP%]   tbody[_ngcontent-%COMP%] + tbody[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   td[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .table-dark[_ngcontent-%COMP%]   thead[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{border-color:#dee2e6}.table[_ngcontent-%COMP%]   .thead-dark[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{color:inherit;border-color:#dee2e6}}@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa[_ngcontent-%COMP%]{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg[_ngcontent-%COMP%]{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x[_ngcontent-%COMP%]{font-size:2em}.fa-3x[_ngcontent-%COMP%]{font-size:3em}.fa-4x[_ngcontent-%COMP%]{font-size:4em}.fa-5x[_ngcontent-%COMP%]{font-size:5em}.fa[_ngcontent-%COMP%], .fa-fw[_ngcontent-%COMP%]{width:1.2857142857em;text-align:center}.fa-ul[_ngcontent-%COMP%]{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{position:relative}.fa-li[_ngcontent-%COMP%]{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg[_ngcontent-%COMP%]{left:-1.8571428571em}.fa-border[_ngcontent-%COMP%]{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left[_ngcontent-%COMP%]{float:left}.fa-pull-right[_ngcontent-%COMP%]{float:right}.fa.fa-pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.fa-pull-right[_ngcontent-%COMP%]{margin-left:.3em}.pull-right[_ngcontent-%COMP%]{float:right}.pull-left[_ngcontent-%COMP%]{float:left}.fa.pull-left[_ngcontent-%COMP%]{margin-right:.3em}.fa.pull-right[_ngcontent-%COMP%]{margin-left:.3em}.fa-spin[_ngcontent-%COMP%]{animation:2s linear infinite fa-spin}.fa-pulse[_ngcontent-%COMP%]{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical[_ngcontent-%COMP%]{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}[_ngcontent-%COMP%]:root   .fa-flip-horizontal[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-flip-vertical[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-180[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-270[_ngcontent-%COMP%], [_ngcontent-%COMP%]:root   .fa-rotate-90[_ngcontent-%COMP%]{filter:none}.fa-stack[_ngcontent-%COMP%]{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x[_ngcontent-%COMP%], .fa-stack-2x[_ngcontent-%COMP%]{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x[_ngcontent-%COMP%]{line-height:inherit}.fa-stack-2x[_ngcontent-%COMP%]{font-size:2em}.fa-inverse[_ngcontent-%COMP%]{color:#fff}.fa-glass[_ngcontent-%COMP%]:before{content:""}.fa-music[_ngcontent-%COMP%]:before{content:""}.fa-search[_ngcontent-%COMP%]:before{content:""}.fa-envelope-o[_ngcontent-%COMP%]:before{content:""}.fa-heart[_ngcontent-%COMP%]:before{content:""}.fa-star[_ngcontent-%COMP%]:before{content:""}.fa-star-o[_ngcontent-%COMP%]:before{content:""}.fa-user[_ngcontent-%COMP%]:before{content:""}.fa-film[_ngcontent-%COMP%]:before{content:""}.fa-th-large[_ngcontent-%COMP%]:before{content:""}.fa-th[_ngcontent-%COMP%]:before{content:""}.fa-th-list[_ngcontent-%COMP%]:before{content:""}.fa-check[_ngcontent-%COMP%]:before{content:""}.fa-close[_ngcontent-%COMP%]:before, .fa-remove[_ngcontent-%COMP%]:before, .fa-times[_ngcontent-%COMP%]:before{content:""}.fa-search-plus[_ngcontent-%COMP%]:before{content:""}.fa-search-minus[_ngcontent-%COMP%]:before{content:""}.fa-power-off[_ngcontent-%COMP%]:before{content:""}.fa-signal[_ngcontent-%COMP%]:before{content:""}.fa-cog[_ngcontent-%COMP%]:before, .fa-gear[_ngcontent-%COMP%]:before{content:""}.fa-trash-o[_ngcontent-%COMP%]:before{content:""}.fa-home[_ngcontent-%COMP%]:before{content:""}.fa-file-o[_ngcontent-%COMP%]:before{content:""}.fa-clock-o[_ngcontent-%COMP%]:before{content:""}.fa-road[_ngcontent-%COMP%]:before{content:""}.fa-download[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-up[_ngcontent-%COMP%]:before{content:""}.fa-inbox[_ngcontent-%COMP%]:before{content:""}.fa-play-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-repeat[_ngcontent-%COMP%]:before, .fa-rotate-right[_ngcontent-%COMP%]:before{content:""}.fa-refresh[_ngcontent-%COMP%]:before, .fa-sync[_ngcontent-%COMP%]:before{content:""}.fa-list-alt[_ngcontent-%COMP%]:before{content:""}.fa-lock[_ngcontent-%COMP%]:before{content:""}.fa-flag[_ngcontent-%COMP%]:before{content:""}.fa-headphones[_ngcontent-%COMP%]:before{content:""}.fa-volume-off[_ngcontent-%COMP%]:before{content:""}.fa-volume-down[_ngcontent-%COMP%]:before{content:""}.fa-volume-up[_ngcontent-%COMP%]:before{content:""}.fa-qrcode[_ngcontent-%COMP%]:before{content:""}.fa-barcode[_ngcontent-%COMP%]:before{content:""}.fa-tag[_ngcontent-%COMP%]:before{content:""}.fa-tags[_ngcontent-%COMP%]:before{content:""}.fa-book[_ngcontent-%COMP%]:before{content:""}.fa-bookmark[_ngcontent-%COMP%]:before{content:""}.fa-print[_ngcontent-%COMP%]:before{content:""}.fa-camera[_ngcontent-%COMP%]:before{content:""}.fa-font[_ngcontent-%COMP%]:before{content:""}.fa-bold[_ngcontent-%COMP%]:before{content:""}.fa-italic[_ngcontent-%COMP%]:before{content:""}.fa-text-height[_ngcontent-%COMP%]:before{content:""}.fa-text-width[_ngcontent-%COMP%]:before{content:""}.fa-align-left[_ngcontent-%COMP%]:before{content:""}.fa-align-center[_ngcontent-%COMP%]:before{content:""}.fa-align-right[_ngcontent-%COMP%]:before{content:""}.fa-align-justify[_ngcontent-%COMP%]:before{content:""}.fa-list[_ngcontent-%COMP%]:before{content:""}.fa-dedent[_ngcontent-%COMP%]:before, .fa-outdent[_ngcontent-%COMP%]:before{content:""}.fa-indent[_ngcontent-%COMP%]:before{content:""}.fa-video-camera[_ngcontent-%COMP%]:before, .fa-video[_ngcontent-%COMP%]:before{content:""}.fa-image[_ngcontent-%COMP%]:before, .fa-photo[_ngcontent-%COMP%]:before, .fa-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-pencil[_ngcontent-%COMP%]:before{content:""}.fa-map-marker[_ngcontent-%COMP%]:before{content:""}.fa-adjust[_ngcontent-%COMP%]:before{content:""}.fa-tint[_ngcontent-%COMP%]:before{content:""}.fa-edit[_ngcontent-%COMP%]:before, .fa-pencil-square-o[_ngcontent-%COMP%]:before{content:""}.fa-share-square-o[_ngcontent-%COMP%]:before{content:""}.fa-check-square-o[_ngcontent-%COMP%]:before{content:""}.fa-arrows[_ngcontent-%COMP%]:before{content:""}.fa-step-backward[_ngcontent-%COMP%]:before{content:""}.fa-fast-backward[_ngcontent-%COMP%]:before{content:""}.fa-backward[_ngcontent-%COMP%]:before{content:""}.fa-play[_ngcontent-%COMP%]:before{content:""}.fa-pause[_ngcontent-%COMP%]:before{content:""}.fa-stop[_ngcontent-%COMP%]:before{content:""}.fa-forward[_ngcontent-%COMP%]:before{content:""}.fa-fast-forward[_ngcontent-%COMP%]:before{content:""}.fa-step-forward[_ngcontent-%COMP%]:before{content:""}.fa-eject[_ngcontent-%COMP%]:before{content:""}.fa-chevron-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-right[_ngcontent-%COMP%]:before{content:""}.fa-plus-circle[_ngcontent-%COMP%]:before{content:""}.fa-minus-circle[_ngcontent-%COMP%]:before{content:""}.fa-times-circle[_ngcontent-%COMP%]:before{content:""}.fa-check-circle[_ngcontent-%COMP%]:before{content:""}.fa-question-circle[_ngcontent-%COMP%]:before{content:""}.fa-info-circle[_ngcontent-%COMP%]:before{content:""}.fa-crosshairs[_ngcontent-%COMP%]:before{content:""}.fa-times-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-check-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-ban[_ngcontent-%COMP%]:before{content:""}.fa-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-mail-forward[_ngcontent-%COMP%]:before, .fa-share[_ngcontent-%COMP%]:before{content:""}.fa-expand[_ngcontent-%COMP%]:before{content:""}.fa-compress[_ngcontent-%COMP%]:before{content:""}.fa-plus[_ngcontent-%COMP%]:before{content:""}.fa-minus[_ngcontent-%COMP%]:before{content:""}.fa-asterisk[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-circle[_ngcontent-%COMP%]:before{content:""}.fa-gift[_ngcontent-%COMP%]:before{content:""}.fa-leaf[_ngcontent-%COMP%]:before{content:""}.fa-fire[_ngcontent-%COMP%]:before{content:""}.fa-eye[_ngcontent-%COMP%]:before{content:""}.fa-eye-slash[_ngcontent-%COMP%]:before{content:""}.fa-exclamation-triangle[_ngcontent-%COMP%]:before, .fa-warning[_ngcontent-%COMP%]:before{content:""}.fa-plane[_ngcontent-%COMP%]:before{content:""}.fa-calendar[_ngcontent-%COMP%]:before{content:""}.fa-random[_ngcontent-%COMP%]:before{content:""}.fa-comment[_ngcontent-%COMP%]:before{content:""}.fa-magnet[_ngcontent-%COMP%]:before{content:""}.fa-chevron-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-down[_ngcontent-%COMP%]:before{content:""}.fa-retweet[_ngcontent-%COMP%]:before{content:""}.fa-shopping-cart[_ngcontent-%COMP%]:before{content:""}.fa-folder[_ngcontent-%COMP%]:before{content:""}.fa-folder-open[_ngcontent-%COMP%]:before{content:""}.fa-arrows-v[_ngcontent-%COMP%]:before{content:""}.fa-arrows-h[_ngcontent-%COMP%]:before{content:""}.fa-bar-chart-o[_ngcontent-%COMP%]:before, .fa-bar-chart[_ngcontent-%COMP%]:before{content:""}.fa-twitter-square[_ngcontent-%COMP%]:before{content:""}.fa-facebook-square[_ngcontent-%COMP%]:before{content:""}.fa-camera-retro[_ngcontent-%COMP%]:before{content:""}.fa-key[_ngcontent-%COMP%]:before{content:""}.fa-cogs[_ngcontent-%COMP%]:before, .fa-gears[_ngcontent-%COMP%]:before{content:""}.fa-comments[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-o-down[_ngcontent-%COMP%]:before{content:""}.fa-star-half[_ngcontent-%COMP%]:before{content:""}.fa-heart-o[_ngcontent-%COMP%]:before{content:""}.fa-sign-out[_ngcontent-%COMP%]:before{content:""}.fa-linkedin-square[_ngcontent-%COMP%]:before{content:""}.fa-thumb-tack[_ngcontent-%COMP%]:before{content:""}.fa-external-link[_ngcontent-%COMP%]:before{content:""}.fa-sign-in[_ngcontent-%COMP%]:before{content:""}.fa-trophy[_ngcontent-%COMP%]:before{content:""}.fa-github-square[_ngcontent-%COMP%]:before{content:""}.fa-upload[_ngcontent-%COMP%]:before{content:""}.fa-lemon-o[_ngcontent-%COMP%]:before{content:""}.fa-phone[_ngcontent-%COMP%]:before{content:""}.fa-square-o[_ngcontent-%COMP%]:before{content:""}.fa-bookmark-o[_ngcontent-%COMP%]:before{content:""}.fa-phone-square[_ngcontent-%COMP%]:before{content:""}.fa-twitter[_ngcontent-%COMP%]:before{content:""}.fa-facebook-f[_ngcontent-%COMP%]:before, .fa-facebook[_ngcontent-%COMP%]:before{content:""}.fa-github[_ngcontent-%COMP%]:before{content:""}.fa-unlock[_ngcontent-%COMP%]:before{content:""}.fa-credit-card[_ngcontent-%COMP%]:before{content:""}.fa-feed[_ngcontent-%COMP%]:before, .fa-rss[_ngcontent-%COMP%]:before{content:""}.fa-hdd-o[_ngcontent-%COMP%]:before{content:""}.fa-bullhorn[_ngcontent-%COMP%]:before{content:""}.fa-bell-o[_ngcontent-%COMP%]:before{content:""}.fa-certificate[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-right[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-left[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-up[_ngcontent-%COMP%]:before{content:""}.fa-hand-o-down[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-globe[_ngcontent-%COMP%]:before{content:""}.fa-globe-e[_ngcontent-%COMP%]:before{content:""}.fa-globe-w[_ngcontent-%COMP%]:before{content:""}.fa-wrench[_ngcontent-%COMP%]:before{content:""}.fa-tasks[_ngcontent-%COMP%]:before{content:""}.fa-filter[_ngcontent-%COMP%]:before{content:""}.fa-briefcase[_ngcontent-%COMP%]:before{content:""}.fa-arrows-alt[_ngcontent-%COMP%]:before{content:""}.fa-community[_ngcontent-%COMP%]:before, .fa-group[_ngcontent-%COMP%]:before, .fa-users[_ngcontent-%COMP%]:before{content:""}.fa-chain[_ngcontent-%COMP%]:before, .fa-link[_ngcontent-%COMP%]:before{content:""}.fa-cloud[_ngcontent-%COMP%]:before{content:""}.fa-flask[_ngcontent-%COMP%]:before{content:""}.fa-cut[_ngcontent-%COMP%]:before, .fa-scissors[_ngcontent-%COMP%]:before{content:""}.fa-copy[_ngcontent-%COMP%]:before, .fa-files-o[_ngcontent-%COMP%]:before{content:""}.fa-paperclip[_ngcontent-%COMP%]:before{content:""}.fa-floppy-o[_ngcontent-%COMP%]:before, .fa-save[_ngcontent-%COMP%]:before{content:""}.fa-square[_ngcontent-%COMP%]:before{content:""}.fa-bars[_ngcontent-%COMP%]:before, .fa-navicon[_ngcontent-%COMP%]:before, .fa-reorder[_ngcontent-%COMP%]:before{content:""}.fa-list-ul[_ngcontent-%COMP%]:before{content:""}.fa-list-ol[_ngcontent-%COMP%]:before{content:""}.fa-strikethrough[_ngcontent-%COMP%]:before{content:""}.fa-underline[_ngcontent-%COMP%]:before{content:""}.fa-table[_ngcontent-%COMP%]:before{content:""}.fa-magic[_ngcontent-%COMP%]:before{content:""}.fa-truck[_ngcontent-%COMP%]:before{content:""}.fa-pinterest[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-g[_ngcontent-%COMP%]:before, .fa-google-plus[_ngcontent-%COMP%]:before{content:""}.fa-money[_ngcontent-%COMP%]:before{content:""}.fa-caret-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-right[_ngcontent-%COMP%]:before{content:""}.fa-columns[_ngcontent-%COMP%]:before{content:""}.fa-sort[_ngcontent-%COMP%]:before, .fa-unsorted[_ngcontent-%COMP%]:before{content:""}.fa-sort-desc[_ngcontent-%COMP%]:before, .fa-sort-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-asc[_ngcontent-%COMP%]:before, .fa-sort-up[_ngcontent-%COMP%]:before{content:""}.fa-envelope[_ngcontent-%COMP%]:before{content:""}.fa-linkedin[_ngcontent-%COMP%]:before{content:""}.fa-rotate-left[_ngcontent-%COMP%]:before, .fa-undo[_ngcontent-%COMP%]:before{content:""}.fa-gavel[_ngcontent-%COMP%]:before, .fa-legal[_ngcontent-%COMP%]:before{content:""}.fa-dashboard[_ngcontent-%COMP%]:before, .fa-tachometer[_ngcontent-%COMP%]:before{content:""}.fa-comment-o[_ngcontent-%COMP%]:before{content:""}.fa-comments-o[_ngcontent-%COMP%]:before{content:""}.fa-bolt[_ngcontent-%COMP%]:before, .fa-flash[_ngcontent-%COMP%]:before{content:""}.fa-sitemap[_ngcontent-%COMP%]:before{content:""}.fa-umbrella[_ngcontent-%COMP%]:before{content:""}.fa-clipboard[_ngcontent-%COMP%]:before, .fa-paste[_ngcontent-%COMP%]:before{content:""}.fa-lightbulb-o[_ngcontent-%COMP%]:before{content:""}.fa-exchange[_ngcontent-%COMP%]:before{content:""}.fa-cloud-download[_ngcontent-%COMP%]:before{content:""}.fa-cloud-upload[_ngcontent-%COMP%]:before{content:""}.fa-user-md[_ngcontent-%COMP%]:before{content:""}.fa-stethoscope[_ngcontent-%COMP%]:before{content:""}.fa-suitcase[_ngcontent-%COMP%]:before{content:""}.fa-bell[_ngcontent-%COMP%]:before{content:""}.fa-coffee[_ngcontent-%COMP%]:before{content:""}.fa-cutlery[_ngcontent-%COMP%]:before, .fa-utensils[_ngcontent-%COMP%]:before{content:""}.fa-file-text-o[_ngcontent-%COMP%]:before{content:""}.fa-building-o[_ngcontent-%COMP%]:before{content:""}.fa-hospital-o[_ngcontent-%COMP%]:before{content:""}.fa-ambulance[_ngcontent-%COMP%]:before{content:""}.fa-medkit[_ngcontent-%COMP%]:before{content:""}.fa-fighter-jet[_ngcontent-%COMP%]:before{content:""}.fa-beer[_ngcontent-%COMP%]:before{content:""}.fa-h-square[_ngcontent-%COMP%]:before{content:""}.fa-plus-square[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-double-down[_ngcontent-%COMP%]:before{content:""}.fa-angle-left[_ngcontent-%COMP%]:before{content:""}.fa-angle-right[_ngcontent-%COMP%]:before{content:""}.fa-angle-up[_ngcontent-%COMP%]:before{content:""}.fa-angle-down[_ngcontent-%COMP%]:before{content:""}.fa-desktop[_ngcontent-%COMP%]:before{content:""}.fa-laptop[_ngcontent-%COMP%]:before{content:""}.fa-tablet[_ngcontent-%COMP%]:before{content:""}.fa-mobile-phone[_ngcontent-%COMP%]:before, .fa-mobile[_ngcontent-%COMP%]:before{content:""}.fa-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-quote-left[_ngcontent-%COMP%]:before{content:""}.fa-quote-right[_ngcontent-%COMP%]:before{content:""}.fa-spinner[_ngcontent-%COMP%]:before{content:""}.fa-circle[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply[_ngcontent-%COMP%]:before, .fa-reply[_ngcontent-%COMP%]:before{content:""}.fa-github-alt[_ngcontent-%COMP%]:before{content:""}.fa-folder-o[_ngcontent-%COMP%]:before{content:""}.fa-folder-open-o[_ngcontent-%COMP%]:before{content:""}.fa-smile-o[_ngcontent-%COMP%]:before{content:""}.fa-frown-o[_ngcontent-%COMP%]:before{content:""}.fa-meh-o[_ngcontent-%COMP%]:before{content:""}.fa-gamepad[_ngcontent-%COMP%]:before{content:""}.fa-keyboard-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-o[_ngcontent-%COMP%]:before{content:""}.fa-flag-checkered[_ngcontent-%COMP%]:before{content:""}.fa-terminal[_ngcontent-%COMP%]:before{content:""}.fa-code[_ngcontent-%COMP%]:before{content:""}.fa-mail-reply-all[_ngcontent-%COMP%]:before, .fa-reply-all[_ngcontent-%COMP%]:before{content:""}.fa-star-half-empty[_ngcontent-%COMP%]:before, .fa-star-half-full[_ngcontent-%COMP%]:before, .fa-star-half-o[_ngcontent-%COMP%]:before{content:""}.fa-location-arrow[_ngcontent-%COMP%]:before{content:""}.fa-crop[_ngcontent-%COMP%]:before{content:""}.fa-code-fork[_ngcontent-%COMP%]:before{content:""}.fa-chain-broken[_ngcontent-%COMP%]:before, .fa-unlink[_ngcontent-%COMP%]:before{content:""}.fa-question[_ngcontent-%COMP%]:before{content:""}.fa-info[_ngcontent-%COMP%]:before{content:""}.fa-exclamation[_ngcontent-%COMP%]:before{content:""}.fa-superscript[_ngcontent-%COMP%]:before{content:""}.fa-subscript[_ngcontent-%COMP%]:before{content:""}.fa-eraser[_ngcontent-%COMP%]:before{content:""}.fa-puzzle-piece[_ngcontent-%COMP%]:before{content:""}.fa-microphone[_ngcontent-%COMP%]:before{content:""}.fa-microphone-slash[_ngcontent-%COMP%]:before{content:""}.fa-shield[_ngcontent-%COMP%]:before{content:""}.fa-calendar-o[_ngcontent-%COMP%]:before{content:""}.fa-fire-extinguisher[_ngcontent-%COMP%]:before{content:""}.fa-rocket[_ngcontent-%COMP%]:before{content:""}.fa-maxcdn[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-left[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-right[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-up[_ngcontent-%COMP%]:before{content:""}.fa-chevron-circle-down[_ngcontent-%COMP%]:before{content:""}.fa-html5[_ngcontent-%COMP%]:before{content:""}.fa-css3[_ngcontent-%COMP%]:before{content:""}.fa-anchor[_ngcontent-%COMP%]:before{content:""}.fa-unlock-alt[_ngcontent-%COMP%]:before{content:""}.fa-bullseye[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-h[_ngcontent-%COMP%]:before{content:""}.fa-ellipsis-v[_ngcontent-%COMP%]:before{content:""}.fa-rss-square[_ngcontent-%COMP%]:before{content:""}.fa-play-circle[_ngcontent-%COMP%]:before{content:""}.fa-ticket[_ngcontent-%COMP%]:before{content:""}.fa-minus-square[_ngcontent-%COMP%]:before{content:""}.fa-minus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-level-up[_ngcontent-%COMP%]:before{content:""}.fa-level-down[_ngcontent-%COMP%]:before{content:""}.fa-check-square[_ngcontent-%COMP%]:before{content:""}.fa-pencil-square[_ngcontent-%COMP%]:before{content:""}.fa-external-link-square[_ngcontent-%COMP%]:before{content:""}.fa-share-square[_ngcontent-%COMP%]:before{content:""}.fa-compass[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-down[_ngcontent-%COMP%]:before, .fa-toggle-down[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-up[_ngcontent-%COMP%]:before, .fa-toggle-up[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-right[_ngcontent-%COMP%]:before, .fa-toggle-right[_ngcontent-%COMP%]:before{content:""}.fa-eur[_ngcontent-%COMP%]:before, .fa-euro[_ngcontent-%COMP%]:before{content:""}.fa-gbp[_ngcontent-%COMP%]:before, .fa-pound[_ngcontent-%COMP%]:before{content:""}.fa-dollar[_ngcontent-%COMP%]:before, .fa-usd[_ngcontent-%COMP%]:before{content:""}.fa-inr[_ngcontent-%COMP%]:before, .fa-rupee[_ngcontent-%COMP%]:before{content:""}.fa-cny[_ngcontent-%COMP%]:before, .fa-jpy[_ngcontent-%COMP%]:before, .fa-rmb[_ngcontent-%COMP%]:before, .fa-yen[_ngcontent-%COMP%]:before{content:""}.fa-rouble[_ngcontent-%COMP%]:before, .fa-rub[_ngcontent-%COMP%]:before, .fa-ruble[_ngcontent-%COMP%]:before{content:""}.fa-krw[_ngcontent-%COMP%]:before, .fa-won[_ngcontent-%COMP%]:before{content:""}.fa-bitcoin[_ngcontent-%COMP%]:before, .fa-btc[_ngcontent-%COMP%]:before{content:""}.fa-file[_ngcontent-%COMP%]:before{content:""}.fa-file-text[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-asc[_ngcontent-%COMP%]:before, .fa-sort-alpha-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-alpha-desc[_ngcontent-%COMP%]:before, .fa-sort-alpha-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-asc[_ngcontent-%COMP%]:before, .fa-sort-amount-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-amount-desc[_ngcontent-%COMP%]:before, .fa-sort-amount-up[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-asc[_ngcontent-%COMP%]:before, .fa-sort-numeric-down[_ngcontent-%COMP%]:before{content:""}.fa-sort-numeric-desc[_ngcontent-%COMP%]:before, .fa-sort-numeric-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-up[_ngcontent-%COMP%]:before{content:""}.fa-thumbs-down[_ngcontent-%COMP%]:before{content:""}.fa-youtube-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube[_ngcontent-%COMP%]:before{content:""}.fa-xing[_ngcontent-%COMP%]:before{content:""}.fa-xing-square[_ngcontent-%COMP%]:before{content:""}.fa-youtube-play[_ngcontent-%COMP%]:before{content:""}.fa-dropbox[_ngcontent-%COMP%]:before{content:""}.fa-stack-overflow[_ngcontent-%COMP%]:before{content:""}.fa-instagram[_ngcontent-%COMP%]:before{content:""}.fa-flickr[_ngcontent-%COMP%]:before{content:""}.fa-adn[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket[_ngcontent-%COMP%]:before{content:""}.fa-bitbucket-square[_ngcontent-%COMP%]:before{content:""}.fa-tumblr[_ngcontent-%COMP%]:before{content:""}.fa-tumblr-square[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-up[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-left[_ngcontent-%COMP%]:before{content:""}.fa-long-arrow-right[_ngcontent-%COMP%]:before{content:""}.fa-apple[_ngcontent-%COMP%]:before{content:""}.fa-windows[_ngcontent-%COMP%]:before{content:""}.fa-android[_ngcontent-%COMP%]:before{content:""}.fa-linux[_ngcontent-%COMP%]:before{content:""}.fa-dribbble[_ngcontent-%COMP%]:before{content:""}.fa-skype[_ngcontent-%COMP%]:before{content:""}.fa-foursquare[_ngcontent-%COMP%]:before{content:""}.fa-trello[_ngcontent-%COMP%]:before{content:""}.fa-female[_ngcontent-%COMP%]:before{content:""}.fa-male[_ngcontent-%COMP%]:before{content:""}.fa-gittip[_ngcontent-%COMP%]:before, .fa-gratipay[_ngcontent-%COMP%]:before{content:""}.fa-sun-o[_ngcontent-%COMP%]:before{content:""}.fa-moon-o[_ngcontent-%COMP%]:before{content:""}.fa-archive[_ngcontent-%COMP%]:before{content:""}.fa-bug[_ngcontent-%COMP%]:before{content:""}.fa-vk[_ngcontent-%COMP%]:before{content:""}.fa-weibo[_ngcontent-%COMP%]:before{content:""}.fa-renren[_ngcontent-%COMP%]:before{content:""}.fa-pagelines[_ngcontent-%COMP%]:before{content:""}.fa-stack-exchange[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-right[_ngcontent-%COMP%]:before{content:""}.fa-arrow-circle-o-left[_ngcontent-%COMP%]:before{content:""}.fa-caret-square-o-left[_ngcontent-%COMP%]:before, .fa-toggle-left[_ngcontent-%COMP%]:before{content:""}.fa-dot-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-square[_ngcontent-%COMP%]:before{content:""}.fa-try[_ngcontent-%COMP%]:before, .fa-turkish-lira[_ngcontent-%COMP%]:before{content:""}.fa-plus-square-o[_ngcontent-%COMP%]:before{content:""}.fa-space-shuttle[_ngcontent-%COMP%]:before{content:""}.fa-slack[_ngcontent-%COMP%]:before{content:""}.fa-envelope-square[_ngcontent-%COMP%]:before{content:""}.fa-wordpress[_ngcontent-%COMP%]:before{content:""}.fa-openid[_ngcontent-%COMP%]:before{content:""}.fa-bank[_ngcontent-%COMP%]:before, .fa-institution[_ngcontent-%COMP%]:before, .fa-university[_ngcontent-%COMP%]:before{content:""}.fa-graduation-cap[_ngcontent-%COMP%]:before, .fa-mortar-board[_ngcontent-%COMP%]:before{content:""}.fa-yahoo[_ngcontent-%COMP%]:before{content:""}.fa-google[_ngcontent-%COMP%]:before{content:""}.fa-reddit[_ngcontent-%COMP%]:before{content:""}.fa-reddit-square[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon-circle[_ngcontent-%COMP%]:before{content:""}.fa-stumbleupon[_ngcontent-%COMP%]:before{content:""}.fa-delicious[_ngcontent-%COMP%]:before{content:""}.fa-digg[_ngcontent-%COMP%]:before{content:""}.fa-drupal[_ngcontent-%COMP%]:before{content:""}.fa-joomla[_ngcontent-%COMP%]:before{content:""}.fa-language[_ngcontent-%COMP%]:before{content:""}.fa-fax[_ngcontent-%COMP%]:before{content:""}.fa-building[_ngcontent-%COMP%]:before{content:""}.fa-child[_ngcontent-%COMP%]:before{content:""}.fa-paw[_ngcontent-%COMP%]:before{content:""}.fa-spoon[_ngcontent-%COMP%]:before, .fa-utensil-spoon[_ngcontent-%COMP%]:before{content:""}.fa-cube[_ngcontent-%COMP%]:before{content:""}.fa-cubes[_ngcontent-%COMP%]:before{content:""}.fa-behance[_ngcontent-%COMP%]:before{content:""}.fa-behance-square[_ngcontent-%COMP%]:before{content:""}.fa-steam[_ngcontent-%COMP%]:before{content:""}.fa-steam-square[_ngcontent-%COMP%]:before{content:""}.fa-recycle[_ngcontent-%COMP%]:before{content:""}.fa-automobile[_ngcontent-%COMP%]:before, .fa-car[_ngcontent-%COMP%]:before{content:""}.fa-cab[_ngcontent-%COMP%]:before, .fa-taxi[_ngcontent-%COMP%]:before{content:""}.fa-tree[_ngcontent-%COMP%]:before{content:""}.fa-spotify[_ngcontent-%COMP%]:before{content:""}.fa-deviantart[_ngcontent-%COMP%]:before{content:""}.fa-soundcloud[_ngcontent-%COMP%]:before{content:""}.fa-database[_ngcontent-%COMP%]:before{content:""}.fa-file-pdf-o[_ngcontent-%COMP%]:before{content:""}.fa-file-word-o[_ngcontent-%COMP%]:before{content:""}.fa-file-excel-o[_ngcontent-%COMP%]:before{content:""}.fa-file-powerpoint-o[_ngcontent-%COMP%]:before{content:""}.fa-file-image-o[_ngcontent-%COMP%]:before, .fa-file-photo-o[_ngcontent-%COMP%]:before, .fa-file-picture-o[_ngcontent-%COMP%]:before{content:""}.fa-file-archive-o[_ngcontent-%COMP%]:before, .fa-file-zip-o[_ngcontent-%COMP%]:before{content:""}.fa-file-audio-o[_ngcontent-%COMP%]:before, .fa-file-sound-o[_ngcontent-%COMP%]:before{content:""}.fa-file-movie-o[_ngcontent-%COMP%]:before, .fa-file-video-o[_ngcontent-%COMP%]:before{content:""}.fa-file-code-o[_ngcontent-%COMP%]:before{content:""}.fa-vine[_ngcontent-%COMP%]:before{content:""}.fa-codepen[_ngcontent-%COMP%]:before{content:""}.fa-jsfiddle[_ngcontent-%COMP%]:before{content:""}.fa-life-bouy[_ngcontent-%COMP%]:before, .fa-life-buoy[_ngcontent-%COMP%]:before, .fa-life-ring[_ngcontent-%COMP%]:before, .fa-life-saver[_ngcontent-%COMP%]:before, .fa-support[_ngcontent-%COMP%]:before{content:""}.fa-circle-o-notch[_ngcontent-%COMP%]:before{content:""}.fa-ra[_ngcontent-%COMP%]:before, .fa-rebel[_ngcontent-%COMP%]:before, .fa-resistance[_ngcontent-%COMP%]:before{content:""}.fa-empire[_ngcontent-%COMP%]:before, .fa-ge[_ngcontent-%COMP%]:before{content:""}.fa-git-square[_ngcontent-%COMP%]:before{content:""}.fa-git[_ngcontent-%COMP%]:before{content:""}.fa-hacker-news[_ngcontent-%COMP%]:before, .fa-y-combinator-square[_ngcontent-%COMP%]:before, .fa-yc-square[_ngcontent-%COMP%]:before{content:""}.fa-tencent-weibo[_ngcontent-%COMP%]:before{content:""}.fa-qq[_ngcontent-%COMP%]:before{content:""}.fa-wechat[_ngcontent-%COMP%]:before, .fa-weixin[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane[_ngcontent-%COMP%]:before, .fa-send[_ngcontent-%COMP%]:before{content:""}.fa-paper-plane-o[_ngcontent-%COMP%]:before, .fa-send-o[_ngcontent-%COMP%]:before{content:""}.fa-history[_ngcontent-%COMP%]:before{content:""}.fa-circle-thin[_ngcontent-%COMP%]:before{content:""}.fa-header[_ngcontent-%COMP%]:before, .fa-heading[_ngcontent-%COMP%]:before{content:""}.fa-paragraph[_ngcontent-%COMP%]:before{content:""}.fa-sliders[_ngcontent-%COMP%]:before{content:""}.fa-share-alt[_ngcontent-%COMP%]:before{content:""}.fa-share-alt-square[_ngcontent-%COMP%]:before{content:""}.fa-bomb[_ngcontent-%COMP%]:before{content:""}.fa-futbol-o[_ngcontent-%COMP%]:before, .fa-soccer-ball-o[_ngcontent-%COMP%]:before{content:""}.fa-tty[_ngcontent-%COMP%]:before{content:""}.fa-binoculars[_ngcontent-%COMP%]:before{content:""}.fa-plug[_ngcontent-%COMP%]:before{content:""}.fa-slideshare[_ngcontent-%COMP%]:before{content:""}.fa-twitch[_ngcontent-%COMP%]:before{content:""}.fa-yelp[_ngcontent-%COMP%]:before{content:""}.fa-newspaper-o[_ngcontent-%COMP%]:before{content:""}.fa-wifi[_ngcontent-%COMP%]:before{content:""}.fa-calculator[_ngcontent-%COMP%]:before{content:""}.fa-paypal[_ngcontent-%COMP%]:before{content:""}.fa-google-wallet[_ngcontent-%COMP%]:before{content:""}.fa-cc-visa[_ngcontent-%COMP%]:before{content:""}.fa-cc-mastercard[_ngcontent-%COMP%]:before{content:""}.fa-cc-discover[_ngcontent-%COMP%]:before{content:""}.fa-cc-amex[_ngcontent-%COMP%]:before{content:""}.fa-cc-paypal[_ngcontent-%COMP%]:before{content:""}.fa-cc-stripe[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash[_ngcontent-%COMP%]:before{content:""}.fa-bell-slash-o[_ngcontent-%COMP%]:before{content:""}.fa-trash[_ngcontent-%COMP%]:before{content:""}.fa-copyright[_ngcontent-%COMP%]:before{content:""}.fa-at[_ngcontent-%COMP%]:before{content:""}.fa-eyedropper[_ngcontent-%COMP%]:before{content:""}.fa-paint-brush[_ngcontent-%COMP%]:before{content:""}.fa-birthday-cake[_ngcontent-%COMP%]:before{content:""}.fa-area-chart[_ngcontent-%COMP%]:before{content:""}.fa-pie-chart[_ngcontent-%COMP%]:before{content:""}.fa-line-chart[_ngcontent-%COMP%]:before{content:""}.fa-lastfm[_ngcontent-%COMP%]:before{content:""}.fa-lastfm-square[_ngcontent-%COMP%]:before{content:""}.fa-toggle-off[_ngcontent-%COMP%]:before{content:""}.fa-toggle-on[_ngcontent-%COMP%]:before{content:""}.fa-bicycle[_ngcontent-%COMP%]:before{content:""}.fa-bus[_ngcontent-%COMP%]:before{content:""}.fa-ioxhost[_ngcontent-%COMP%]:before{content:""}.fa-angellist[_ngcontent-%COMP%]:before{content:""}.fa-cc[_ngcontent-%COMP%]:before, .fa-closed-captioning[_ngcontent-%COMP%]:before{content:""}.fa-ils[_ngcontent-%COMP%]:before, .fa-shekel[_ngcontent-%COMP%]:before, .fa-sheqel[_ngcontent-%COMP%]:before{content:""}.fa-meanpath[_ngcontent-%COMP%]:before{content:""}.fa-buysellads[_ngcontent-%COMP%]:before{content:""}.fa-connectdevelop[_ngcontent-%COMP%]:before{content:""}.fa-dashcube[_ngcontent-%COMP%]:before{content:""}.fa-forumbee[_ngcontent-%COMP%]:before{content:""}.fa-leanpub[_ngcontent-%COMP%]:before{content:""}.fa-sellsy[_ngcontent-%COMP%]:before{content:""}.fa-shirtsinbulk[_ngcontent-%COMP%]:before{content:""}.fa-simplybuilt[_ngcontent-%COMP%]:before{content:""}.fa-skyatlas[_ngcontent-%COMP%]:before{content:""}.fa-cart-plus[_ngcontent-%COMP%]:before{content:""}.fa-cart-arrow-down[_ngcontent-%COMP%]:before{content:""}.fa-diamond[_ngcontent-%COMP%]:before, .fa-gem[_ngcontent-%COMP%]:before{content:""}.fa-ship[_ngcontent-%COMP%]:before{content:""}.fa-user-secret[_ngcontent-%COMP%]:before{content:""}.fa-motorcycle[_ngcontent-%COMP%]:before{content:""}.fa-street-view[_ngcontent-%COMP%]:before{content:""}.fa-heartbeat[_ngcontent-%COMP%]:before{content:""}.fa-venus[_ngcontent-%COMP%]:before{content:""}.fa-mars[_ngcontent-%COMP%]:before{content:""}.fa-mercury[_ngcontent-%COMP%]:before{content:""}.fa-intersex[_ngcontent-%COMP%]:before, .fa-transgender[_ngcontent-%COMP%]:before{content:""}.fa-transgender-alt[_ngcontent-%COMP%]:before{content:""}.fa-venus-double[_ngcontent-%COMP%]:before{content:""}.fa-mars-double[_ngcontent-%COMP%]:before{content:""}.fa-venus-mars[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-v[_ngcontent-%COMP%]:before{content:""}.fa-mars-stroke-h[_ngcontent-%COMP%]:before{content:""}.fa-neuter[_ngcontent-%COMP%]:before{content:""}.fa-genderless[_ngcontent-%COMP%]:before{content:""}.fa-facebook-official[_ngcontent-%COMP%]:before{content:""}.fa-pinterest-p[_ngcontent-%COMP%]:before{content:""}.fa-whatsapp[_ngcontent-%COMP%]:before{content:""}.fa-server[_ngcontent-%COMP%]:before{content:""}.fa-user-plus[_ngcontent-%COMP%]:before{content:""}.fa-user-times[_ngcontent-%COMP%]:before{content:""}.fa-bed[_ngcontent-%COMP%]:before, .fa-hotel[_ngcontent-%COMP%]:before{content:""}.fa-viacoin[_ngcontent-%COMP%]:before{content:""}.fa-train[_ngcontent-%COMP%]:before{content:""}.fa-subway[_ngcontent-%COMP%]:before{content:""}.fa-medium[_ngcontent-%COMP%]:before{content:""}.fa-medium-square[_ngcontent-%COMP%]:before{content:""}.fa-y-combinator[_ngcontent-%COMP%]:before, .fa-yc[_ngcontent-%COMP%]:before{content:""}.fa-optin-monster[_ngcontent-%COMP%]:before{content:""}.fa-opencart[_ngcontent-%COMP%]:before{content:""}.fa-expeditedssl[_ngcontent-%COMP%]:before{content:""}.fa-battery-4[_ngcontent-%COMP%]:before, .fa-battery-full[_ngcontent-%COMP%]:before, .fa-battery[_ngcontent-%COMP%]:before{content:""}.fa-battery-3[_ngcontent-%COMP%]:before, .fa-battery-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-battery-2[_ngcontent-%COMP%]:before, .fa-battery-half[_ngcontent-%COMP%]:before{content:""}.fa-battery-1[_ngcontent-%COMP%]:before, .fa-battery-quarter[_ngcontent-%COMP%]:before{content:""}.fa-battery-0[_ngcontent-%COMP%]:before, .fa-battery-empty[_ngcontent-%COMP%]:before{content:""}.fa-mouse-pointer[_ngcontent-%COMP%]:before{content:""}.fa-i-cursor[_ngcontent-%COMP%]:before{content:""}.fa-object-group[_ngcontent-%COMP%]:before{content:""}.fa-object-ungroup[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note[_ngcontent-%COMP%]:before{content:""}.fa-sticky-note-o[_ngcontent-%COMP%]:before{content:""}.fa-cc-jcb[_ngcontent-%COMP%]:before{content:""}.fa-cc-diners-club[_ngcontent-%COMP%]:before{content:""}.fa-clone[_ngcontent-%COMP%]:before{content:""}.fa-balance-scale[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-o[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-1[_ngcontent-%COMP%]:before, .fa-hourglass-start[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-2[_ngcontent-%COMP%]:before, .fa-hourglass-half[_ngcontent-%COMP%]:before{content:""}.fa-hourglass-3[_ngcontent-%COMP%]:before, .fa-hourglass-end[_ngcontent-%COMP%]:before{content:""}.fa-hourglass[_ngcontent-%COMP%]:before{content:""}.fa-hand-grab-o[_ngcontent-%COMP%]:before, .fa-hand-rock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-paper-o[_ngcontent-%COMP%]:before, .fa-hand-stop-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-scissors-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-lizard-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-spock-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-pointer-o[_ngcontent-%COMP%]:before{content:""}.fa-hand-peace-o[_ngcontent-%COMP%]:before{content:""}.fa-trademark[_ngcontent-%COMP%]:before{content:""}.fa-registered[_ngcontent-%COMP%]:before{content:""}.fa-creative-commons[_ngcontent-%COMP%]:before{content:""}.fa-gg[_ngcontent-%COMP%]:before{content:""}.fa-gg-circle[_ngcontent-%COMP%]:before{content:""}.fa-tripadvisor[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki[_ngcontent-%COMP%]:before{content:""}.fa-odnoklassniki-square[_ngcontent-%COMP%]:before{content:""}.fa-get-pocket[_ngcontent-%COMP%]:before{content:""}.fa-wikipedia-w[_ngcontent-%COMP%]:before{content:""}.fa-safari[_ngcontent-%COMP%]:before{content:""}.fa-chrome[_ngcontent-%COMP%]:before{content:""}.fa-firefox[_ngcontent-%COMP%]:before{content:""}.fa-opera[_ngcontent-%COMP%]:before{content:""}.fa-internet-explorer[_ngcontent-%COMP%]:before{content:""}.fa-television[_ngcontent-%COMP%]:before, .fa-tv[_ngcontent-%COMP%]:before{content:""}.fa-contao[_ngcontent-%COMP%]:before{content:""}.fa-500px[_ngcontent-%COMP%]:before{content:""}.fa-amazon[_ngcontent-%COMP%]:before{content:""}.fa-calendar-plus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-minus-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-times-o[_ngcontent-%COMP%]:before{content:""}.fa-calendar-check-o[_ngcontent-%COMP%]:before{content:""}.fa-industry[_ngcontent-%COMP%]:before{content:""}.fa-map-pin[_ngcontent-%COMP%]:before{content:""}.fa-map-signs[_ngcontent-%COMP%]:before{content:""}.fa-map-o[_ngcontent-%COMP%]:before{content:""}.fa-map[_ngcontent-%COMP%]:before{content:""}.fa-commenting[_ngcontent-%COMP%]:before{content:""}.fa-commenting-o[_ngcontent-%COMP%]:before{content:""}.fa-houzz[_ngcontent-%COMP%]:before{content:""}.fa-vimeo-v[_ngcontent-%COMP%]:before, .fa-vimeo[_ngcontent-%COMP%]:before{content:""}.fa-black-tie[_ngcontent-%COMP%]:before{content:""}.fa-fonticons[_ngcontent-%COMP%]:before{content:""}.fa-reddit-alien[_ngcontent-%COMP%]:before{content:""}.fa-edge[_ngcontent-%COMP%]:before{content:""}.fa-credit-card-alt[_ngcontent-%COMP%]:before{content:""}.fa-codiepie[_ngcontent-%COMP%]:before{content:""}.fa-modx[_ngcontent-%COMP%]:before{content:""}.fa-fort-awesome[_ngcontent-%COMP%]:before{content:""}.fa-usb[_ngcontent-%COMP%]:before{content:""}.fa-product-hunt[_ngcontent-%COMP%]:before{content:""}.fa-mixcloud[_ngcontent-%COMP%]:before{content:""}.fa-scribd[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle[_ngcontent-%COMP%]:before{content:""}.fa-pause-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle[_ngcontent-%COMP%]:before{content:""}.fa-stop-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-shopping-bag[_ngcontent-%COMP%]:before{content:""}.fa-shopping-basket[_ngcontent-%COMP%]:before{content:""}.fa-hashtag[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth[_ngcontent-%COMP%]:before{content:""}.fa-bluetooth-b[_ngcontent-%COMP%]:before{content:""}.fa-percent[_ngcontent-%COMP%]:before{content:""}.fa-gitlab[_ngcontent-%COMP%]:before{content:""}.fa-wpbeginner[_ngcontent-%COMP%]:before{content:""}.fa-wpforms[_ngcontent-%COMP%]:before{content:""}.fa-envira[_ngcontent-%COMP%]:before{content:""}.fa-universal-access[_ngcontent-%COMP%]:before{content:""}.fa-wheelchair-alt[_ngcontent-%COMP%]:before{content:""}.fa-question-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-blind[_ngcontent-%COMP%]:before{content:""}.fa-audio-description[_ngcontent-%COMP%]:before{content:""}.fa-phone-volume[_ngcontent-%COMP%]:before, .fa-volume-control-phone[_ngcontent-%COMP%]:before{content:""}.fa-braille[_ngcontent-%COMP%]:before{content:""}.fa-assistive-listening-systems[_ngcontent-%COMP%]:before{content:""}.fa-american-sign-language-interpreting[_ngcontent-%COMP%]:before, .fa-asl-interpreting[_ngcontent-%COMP%]:before{content:""}.fa-deaf[_ngcontent-%COMP%]:before, .fa-deafness[_ngcontent-%COMP%]:before, .fa-hard-of-hearing[_ngcontent-%COMP%]:before{content:""}.fa-glide[_ngcontent-%COMP%]:before{content:""}.fa-glide-g[_ngcontent-%COMP%]:before{content:""}.fa-sign-language[_ngcontent-%COMP%]:before, .fa-signing[_ngcontent-%COMP%]:before{content:""}.fa-low-vision[_ngcontent-%COMP%]:before{content:""}.fa-viadeo[_ngcontent-%COMP%]:before{content:""}.fa-viadeo-square[_ngcontent-%COMP%]:before{content:""}.fa-snapchat[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-ghost[_ngcontent-%COMP%]:before{content:""}.fa-snapchat-square[_ngcontent-%COMP%]:before{content:""}.fa-first-order[_ngcontent-%COMP%]:before{content:""}.fa-yoast[_ngcontent-%COMP%]:before{content:""}.fa-themeisle[_ngcontent-%COMP%]:before{content:""}.fa-google-plus-circle[_ngcontent-%COMP%]:before, .fa-google-plus-official[_ngcontent-%COMP%]:before{content:""}.fa-fa[_ngcontent-%COMP%]:before, .fa-font-awesome[_ngcontent-%COMP%]:before{content:""}.fa-handshake-o[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open[_ngcontent-%COMP%]:before{content:""}.fa-envelope-open-o[_ngcontent-%COMP%]:before{content:""}.fa-linode[_ngcontent-%COMP%]:before{content:""}.fa-address-book[_ngcontent-%COMP%]:before{content:""}.fa-address-book-o[_ngcontent-%COMP%]:before{content:""}.fa-address-card[_ngcontent-%COMP%]:before, .fa-vcard[_ngcontent-%COMP%]:before{content:""}.fa-address-card-o[_ngcontent-%COMP%]:before, .fa-vcard-o[_ngcontent-%COMP%]:before{content:""}.fa-user-circle[_ngcontent-%COMP%]:before{content:""}.fa-user-circle-o[_ngcontent-%COMP%]:before{content:""}.fa-user-o[_ngcontent-%COMP%]:before{content:""}.fa-id-badge[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license[_ngcontent-%COMP%]:before, .fa-id-card[_ngcontent-%COMP%]:before{content:""}.fa-drivers-license-o[_ngcontent-%COMP%]:before, .fa-id-card-o[_ngcontent-%COMP%]:before{content:""}.fa-quora[_ngcontent-%COMP%]:before{content:""}.fa-free-code-camp[_ngcontent-%COMP%]:before{content:""}.fa-telegram[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-4[_ngcontent-%COMP%]:before, .fa-thermometer-full[_ngcontent-%COMP%]:before, .fa-thermometer[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-3[_ngcontent-%COMP%]:before, .fa-thermometer-three-quarters[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-2[_ngcontent-%COMP%]:before, .fa-thermometer-half[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-1[_ngcontent-%COMP%]:before, .fa-thermometer-quarter[_ngcontent-%COMP%]:before{content:""}.fa-thermometer-0[_ngcontent-%COMP%]:before, .fa-thermometer-empty[_ngcontent-%COMP%]:before{content:""}.fa-shower[_ngcontent-%COMP%]:before{content:""}.fa-bath[_ngcontent-%COMP%]:before, .fa-bathtub[_ngcontent-%COMP%]:before, .fa-s15[_ngcontent-%COMP%]:before{content:""}.fa-podcast[_ngcontent-%COMP%]:before{content:""}.fa-window-maximize[_ngcontent-%COMP%]:before{content:""}.fa-window-minimize[_ngcontent-%COMP%]:before{content:""}.fa-window-restore[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle[_ngcontent-%COMP%]:before, .fa-window-close[_ngcontent-%COMP%]:before{content:""}.fa-times-rectangle-o[_ngcontent-%COMP%]:before, .fa-window-close-o[_ngcontent-%COMP%]:before{content:""}.fa-bandcamp[_ngcontent-%COMP%]:before{content:""}.fa-grav[_ngcontent-%COMP%]:before{content:""}.fa-etsy[_ngcontent-%COMP%]:before{content:""}.fa-imdb[_ngcontent-%COMP%]:before{content:""}.fa-ravelry[_ngcontent-%COMP%]:before{content:""}.fa-eercast[_ngcontent-%COMP%]:before{content:""}.fa-microchip[_ngcontent-%COMP%]:before{content:""}.fa-snowflake-o[_ngcontent-%COMP%]:before{content:""}.fa-superpowers[_ngcontent-%COMP%]:before{content:""}.fa-wpexplorer[_ngcontent-%COMP%]:before{content:""}.fa-meetup[_ngcontent-%COMP%]:before{content:""}.fa-mastodon[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-alt[_ngcontent-%COMP%]:before{content:""}.fa-fork-awesome[_ngcontent-%COMP%]:before, .fa-fork-circle[_ngcontent-%COMP%]:before{content:""}.fa-peertube[_ngcontent-%COMP%]:before{content:""}.fa-diaspora[_ngcontent-%COMP%]:before{content:""}.fa-friendica[_ngcontent-%COMP%]:before{content:""}.fa-gnu-social[_ngcontent-%COMP%]:before{content:""}.fa-liberapay-square[_ngcontent-%COMP%]:before{content:""}.fa-liberapay[_ngcontent-%COMP%]:before{content:""}.fa-scuttlebutt[_ngcontent-%COMP%]:before, .fa-ssb[_ngcontent-%COMP%]:before{content:""}.fa-hubzilla[_ngcontent-%COMP%]:before{content:""}.fa-social-home[_ngcontent-%COMP%]:before{content:""}.fa-artstation[_ngcontent-%COMP%]:before{content:""}.fa-discord[_ngcontent-%COMP%]:before{content:""}.fa-discord-alt[_ngcontent-%COMP%]:before{content:""}.fa-patreon[_ngcontent-%COMP%]:before{content:""}.fa-snowdrift[_ngcontent-%COMP%]:before{content:""}.fa-activitypub[_ngcontent-%COMP%]:before{content:""}.fa-ethereum[_ngcontent-%COMP%]:before{content:""}.fa-keybase[_ngcontent-%COMP%]:before{content:""}.fa-shaarli[_ngcontent-%COMP%]:before{content:""}.fa-shaarli-o[_ngcontent-%COMP%]:before{content:""}.fa-cut-key[_ngcontent-%COMP%]:before, .fa-key-modern[_ngcontent-%COMP%]:before{content:""}.fa-xmpp[_ngcontent-%COMP%]:before{content:""}.fa-archive-org[_ngcontent-%COMP%]:before{content:""}.fa-freedombox[_ngcontent-%COMP%]:before{content:""}.fa-facebook-messenger[_ngcontent-%COMP%]:before{content:""}.fa-debian[_ngcontent-%COMP%]:before{content:""}.fa-mastodon-square[_ngcontent-%COMP%]:before{content:""}.fa-tipeee[_ngcontent-%COMP%]:before{content:""}.fa-react[_ngcontent-%COMP%]:before{content:""}.fa-dogmazic[_ngcontent-%COMP%]:before{content:""}.fa-zotero[_ngcontent-%COMP%]:before{content:""}.fa-nodejs[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud[_ngcontent-%COMP%]:before{content:""}.fa-nextcloud-square[_ngcontent-%COMP%]:before{content:""}.fa-hackaday[_ngcontent-%COMP%]:before{content:""}.fa-laravel[_ngcontent-%COMP%]:before{content:""}.fa-signalapp[_ngcontent-%COMP%]:before{content:""}.fa-gnupg[_ngcontent-%COMP%]:before{content:""}.fa-php[_ngcontent-%COMP%]:before{content:""}.fa-ffmpeg[_ngcontent-%COMP%]:before{content:""}.fa-joplin[_ngcontent-%COMP%]:before{content:""}.fa-syncthing[_ngcontent-%COMP%]:before{content:""}.fa-inkscape[_ngcontent-%COMP%]:before{content:""}.fa-matrix-org[_ngcontent-%COMP%]:before{content:""}.fa-pixelfed[_ngcontent-%COMP%]:before{content:""}.fa-bootstrap[_ngcontent-%COMP%]:before{content:""}.fa-dev-to[_ngcontent-%COMP%]:before{content:""}.fa-hashnode[_ngcontent-%COMP%]:before{content:""}.fa-jirafeau[_ngcontent-%COMP%]:before{content:""}.fa-emby[_ngcontent-%COMP%]:before{content:""}.fa-wikidata[_ngcontent-%COMP%]:before{content:""}.fa-gimp[_ngcontent-%COMP%]:before{content:""}.fa-c[_ngcontent-%COMP%]:before{content:""}.fa-digitalocean[_ngcontent-%COMP%]:before{content:""}.fa-att[_ngcontent-%COMP%]:before{content:""}.fa-gitea[_ngcontent-%COMP%]:before{content:""}.fa-file-epub[_ngcontent-%COMP%]:before{content:""}.fa-python[_ngcontent-%COMP%]:before{content:""}.fa-archlinux[_ngcontent-%COMP%]:before{content:""}.fa-pleroma[_ngcontent-%COMP%]:before{content:""}.fa-unsplash[_ngcontent-%COMP%]:before{content:""}.fa-hackster[_ngcontent-%COMP%]:before{content:""}.fa-spell-check[_ngcontent-%COMP%]:before{content:""}.fa-moon[_ngcontent-%COMP%]:before{content:""}.fa-sun[_ngcontent-%COMP%]:before{content:""}.fa-f-droid[_ngcontent-%COMP%]:before{content:""}.fa-biometric[_ngcontent-%COMP%]:before{content:""}.sr-only[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable[_ngcontent-%COMP%]:active, .sr-only-focusable[_ngcontent-%COMP%]:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status[_ngcontent-%COMP%]   .popover-body[_ngcontent-%COMP%]{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status[_ngcontent-%COMP%]{max-width:83vw}}.info-card-content-clickable[_ngcontent-%COMP%]{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable[_ngcontent-%COMP%]:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%], .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]{color:initial}.custom-control-input.is-valid[_ngcontent-%COMP%]:checked ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:checked ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid[_ngcontent-%COMP%] ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#adb5bd}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus ~ .custom-control-label[_ngcontent-%COMP%]::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid[_ngcontent-%COMP%]:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before, .was-validated[_ngcontent-%COMP%]   .custom-control-input[_ngcontent-%COMP%]:valid:focus:not(:checked) ~ .custom-control-label[_ngcontent-%COMP%]::before{border-color:#76d0dc}html[_ngcontent-%COMP%]{background-color:#fff}body[_ngcontent-%COMP%], html[_ngcontent-%COMP%]{width:100%;height:100%;font-size:12px}h1[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:2em}h2[_ngcontent-%COMP%]{letter-spacing:-1px;font-size:1.833em}h3[_ngcontent-%COMP%]{display:block;font-size:1.583em;font-weight:400}h4[_ngcontent-%COMP%]{font-size:1.5em;line-height:normal}option[_ngcontent-%COMP%]{font-weight:400;font-style:normal}.full-height[_ngcontent-%COMP%]{height:100vh}.full-width[_ngcontent-%COMP%]{width:100vw}.vertical-align[_ngcontent-%COMP%]{display:flex;align-items:center}.horizontal-align[_ngcontent-%COMP%]{display:flex;justify-content:center}.loading[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%}.margin-right-md[_ngcontent-%COMP%]{margin-right:15px}.no-border[_ngcontent-%COMP%]{border:0;box-shadow:0 0 0!important}.italic[_ngcontent-%COMP%]{font-style:italic}.bold[_ngcontent-%COMP%]{font-weight:700}.text-pre[_ngcontent-%COMP%]{white-space:pre-wrap}.btn-light[_ngcontent-%COMP%]{background-color:#fff!important;border-color:#ced4da!important}.btn-light[_ngcontent-%COMP%]:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus[_ngcontent-%COMP%], .btn.active[_ngcontent-%COMP%]:focus, .btn.focus[_ngcontent-%COMP%], .btn[_ngcontent-%COMP%]:active.focus, .btn[_ngcontent-%COMP%]:active:focus, .btn[_ngcontent-%COMP%]:focus{outline:0}.btn-primary[_ngcontent-%COMP%]   .badge[_ngcontent-%COMP%]{color:#2b99a8;background-color:#eee}.btn-group[_ngcontent-%COMP%] > .btn[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%], .cd-datatable-actions[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]   i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%]{min-width:50px;z-index:999999}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#474544;cursor:pointer}.dropdown-menu[_ngcontent-%COMP%] > li[_ngcontent-%COMP%] > a[_ngcontent-%COMP%] > i.fa[_ngcontent-%COMP%]{margin-right:5px}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]{color:#eee}.dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%], .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:focus, .dropdown-menu[_ngcontent-%COMP%] > .active[_ngcontent-%COMP%] > a[_ngcontent-%COMP%]:hover{background-color:#21747f}.dataTables_wrapper[_ngcontent-%COMP%]   .dropdown-menu[_ngcontent-%COMP%] > li.dropdown-divider[_ngcontent-%COMP%]{cursor:auto}.container[_ngcontent-%COMP%], .container-fluid[_ngcontent-%COMP%]{padding-left:30px!important;padding-right:30px!important}.row[_ngcontent-%COMP%]{margin-left:-30px;margin-right:-30px}.cd-col-form[_ngcontent-%COMP%], .cd-col-form-input[_ngcontent-%COMP%], .cd-col-form-label[_ngcontent-%COMP%], .cd-col-form-offset[_ngcontent-%COMP%], .col-1[_ngcontent-%COMP%], .col-10[_ngcontent-%COMP%], .col-11[_ngcontent-%COMP%], .col-12[_ngcontent-%COMP%], .col-2[_ngcontent-%COMP%], .col-3[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%], .col-5[_ngcontent-%COMP%], .col-6[_ngcontent-%COMP%], .col-7[_ngcontent-%COMP%], .col-8[_ngcontent-%COMP%], .col-9[_ngcontent-%COMP%], .col-lg-1[_ngcontent-%COMP%], .col-lg-10[_ngcontent-%COMP%], .col-lg-11[_ngcontent-%COMP%], .col-lg-12[_ngcontent-%COMP%], .col-lg-2[_ngcontent-%COMP%], .col-lg-3[_ngcontent-%COMP%], .col-lg-4[_ngcontent-%COMP%], .col-lg-5[_ngcontent-%COMP%], .col-lg-6[_ngcontent-%COMP%], .col-lg-7[_ngcontent-%COMP%], .col-lg-8[_ngcontent-%COMP%], .col-lg-9[_ngcontent-%COMP%], .col-md-1[_ngcontent-%COMP%], .col-md-10[_ngcontent-%COMP%], .col-md-11[_ngcontent-%COMP%], .col-md-12[_ngcontent-%COMP%], .col-md-2[_ngcontent-%COMP%], .col-md-3[_ngcontent-%COMP%], .col-md-4[_ngcontent-%COMP%], .col-md-5[_ngcontent-%COMP%], .col-md-6[_ngcontent-%COMP%], .col-md-7[_ngcontent-%COMP%], .col-md-8[_ngcontent-%COMP%], .col-md-9[_ngcontent-%COMP%], .col-sm-1[_ngcontent-%COMP%], .col-sm-10[_ngcontent-%COMP%], .col-sm-11[_ngcontent-%COMP%], .col-sm-12[_ngcontent-%COMP%], .col-sm-2[_ngcontent-%COMP%], .col-sm-3[_ngcontent-%COMP%], .col-sm-4[_ngcontent-%COMP%], .col-sm-5[_ngcontent-%COMP%], .col-sm-6[_ngcontent-%COMP%], .col-sm-7[_ngcontent-%COMP%], .col-sm-8[_ngcontent-%COMP%], .col-sm-9[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-input[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-label[_ngcontent-%COMP%], cd-modal[_ngcontent-%COMP%]   .cd-col-form-offset[_ngcontent-%COMP%]{padding-left:30px;padding-right:30px}tags-input[_ngcontent-%COMP%]   .tags[_ngcontent-%COMP%]{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .accordion-title[_ngcontent-%COMP%], uib-accordion[_ngcontent-%COMP%]   .card-title[_ngcontent-%COMP%]{font-size:14px!important}.card-header[_ngcontent-%COMP%]{font-size:1.3em}.card-body[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]:first-child{margin-top:0}.disabled[_ngcontent-%COMP%]{pointer-events:none}.clickable[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{cursor:pointer}[_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%], [_ngcontent-%COMP%]:invalid   .has-error-btn[_ngcontent-%COMP%]:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript[_ngcontent-%COMP%]{padding-top:5em}.noscript[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{color:#777}.required[_ngcontent-%COMP%]::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer[_ngcontent-%COMP%]{width:100%;display:flex}.cd-form-control[_ngcontent-%COMP%], .form-control[_ngcontent-%COMP%]{display:table-cell}.cd-form-control[_ngcontent-%COMP%]:focus, .form-control[_ngcontent-%COMP%]:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox[_ngcontent-%COMP%]{padding-top:7px}.card-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child), .modal-footer[_ngcontent-%COMP%]   button.btn[_ngcontent-%COMP%]:not(:first-child){margin-left:5px}.nav-tabs[_ngcontent-%COMP%]{margin-bottom:15px}.ceph-icon[_ngcontent-%COMP%]{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon[_ngcontent-%COMP%]{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon[_ngcontent-%COMP%]{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message[_ngcontent-%COMP%]   .custom-icon[_ngcontent-%COMP%]{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper[_ngcontent-%COMP%]{background:rgba(0,0,0,.7)!important}.tooltip-wide[_ngcontent-%COMP%]   .tooltip-inner[_ngcontent-%COMP%]{width:400px}.tooltip-inner[_ngcontent-%COMP%]{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message[_ngcontent-%COMP%] > ul[_ngcontent-%COMP%]{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{text-align:right}}.cd-col-form-label[_ngcontent-%COMP%], .col-form-label[_ngcontent-%COMP%]{font-weight:700}cd-submit-button[_ngcontent-%COMP%]{background-color:transparent!important}bfv-messages[_ngcontent-%COMP%]{display:none}.form-group.has-error[_ngcontent-%COMP%]   .invalid-feedback[_ngcontent-%COMP%]{display:block}.password-strength-level[_ngcontent-%COMP%]{flex:100%;margin-top:2px}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%], .password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{border-radius:.25rem;height:13px}.password-strength-level[_ngcontent-%COMP%]   .weak[_ngcontent-%COMP%]{width:25%;background:red}.password-strength-level[_ngcontent-%COMP%]   .ok[_ngcontent-%COMP%]{width:50%;background:#ffc200}.password-strength-level[_ngcontent-%COMP%]   .strong[_ngcontent-%COMP%]{width:75%;background:#0b0}.password-strength-level[_ngcontent-%COMP%]   .very-strong[_ngcontent-%COMP%]{width:100%;background:#245e03}.badge-hdd[_ngcontent-%COMP%]{color:#fff;background-color:#90949c}.badge-ssd[_ngcontent-%COMP%]{color:#fff;background-color:#288cea}.badge-tab[_ngcontent-%COMP%]{color:#555;background-color:#f3f3f3}tree-root[_ngcontent-%COMP%]   tree-viewport[_ngcontent-%COMP%]{min-height:1em}p[_ngcontent-%COMP%]{font-family:monospace}.card[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{display:flex}.card[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]:last-child, pre[_ngcontent-%COMP%]   div[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]:last-child{margin-bottom:0}.card[_ngcontent-%COMP%]   .timestamp[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .timestamp[_ngcontent-%COMP%]{font-weight:700;flex-shrink:0}.card[_ngcontent-%COMP%]   .priority[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .priority[_ngcontent-%COMP%]{margin-left:.5rem}.card[_ngcontent-%COMP%]   .message[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .message[_ngcontent-%COMP%]{margin-left:1rem}.card[_ngcontent-%COMP%]   .err[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .err[_ngcontent-%COMP%]{color:#a94442}.card[_ngcontent-%COMP%]   .warn[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .warn[_ngcontent-%COMP%]{color:#ffc200}.card[_ngcontent-%COMP%]   .info[_ngcontent-%COMP%], pre[_ngcontent-%COMP%]   .info[_ngcontent-%COMP%]{color:#2b99a8}  timepicker table tbody tr td input.bs-timepicker-field{width:3.5rem!important;font-size:1rem;padding:4px 6px}.middle[_ngcontent-%COMP%]{padding-top:7px}']],data:{}});function Xl(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function Ql(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"p",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""])),i["ɵppd"](3,1),(t()(),i["ɵeld"](4,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),i["ɵppd"](5,1),(t()(),i["ɵted"](6,null,["",""])),(t()(),i["ɵeld"](7,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),i["ɵted"](8,null,["",""]))],null,(function(t,e){var n=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.stamp));t(e,2,0,n);var a=i["ɵinlineInterpolate"](1,"priority ",i["ɵunv"](e,4,0,t(e,5,0,i["ɵnov"](e.parent.parent.parent,1),e.context.$implicit.priority)),"");t(e,4,0,a),t(e,6,0,e.context.$implicit.priority),t(e,8,0,e.context.$implicit.message)}))}function td(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["No entries found"]))],null,null)}function ed(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"div",[["class","card bg-light mb-3"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Ql)),i["ɵdid"](3,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,td)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.clog),t(e,5,0,0===n.contentData.clog.length)}),null)}function nd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"p",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"span",[["class","timestamp"]],null,null,null,null,null)),(t()(),i["ɵted"](2,null,["",""])),i["ɵppd"](3,1),(t()(),i["ɵeld"](4,0,null,null,2,"span",[],[[8,"className",0]],null,null,null,null)),i["ɵppd"](5,1),(t()(),i["ɵted"](6,null,["",""])),(t()(),i["ɵeld"](7,0,null,null,1,"span",[["class","message"]],null,null,null,null,null)),(t()(),i["ɵted"](8,null,["",""]))],null,(function(t,e){var n=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,0),e.context.$implicit.stamp));t(e,2,0,n);var a=i["ɵinlineInterpolate"](1,"priority ",i["ɵunv"](e,4,0,t(e,5,0,i["ɵnov"](e.parent.parent.parent,1),e.context.$implicit.priority)),"");t(e,4,0,a),t(e,6,0,e.context.$implicit.priority),t(e,8,0,e.context.$implicit.message)}))}function ad(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["No entries found"]))],null,null)}function rd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"div",[["class","card bg-light mb-3"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,nd)),i["ɵdid"](3,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ad)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.audit_log),t(e,5,0,0===n.contentData.audit_log.length)}),null)}function od(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,12,"div",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Xl)),i["ɵdid"](2,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutlet:[0,"ngTemplateOutlet"]},null),(t()(),i["ɵeld"](3,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](4,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](5,0,null,0,3,"tab",[["heading","Cluster Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](6,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ed)),i["ɵdid"](8,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](9,0,null,0,3,"tab",[["heading","Audit Logs"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](10,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,rd)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,i["ɵnov"](e.parent,4)),t(e,6,0,"Cluster Logs"),t(e,8,0,n.clog),t(e,10,0,"Audit Logs"),t(e,12,0,n.audit_log)}),(function(t,e){t(e,3,0,i["ɵnov"](e,4).clazz),t(e,5,0,i["ɵnov"](e,6).id,i["ɵnov"](e,6).active,i["ɵnov"](e,6).addClass),t(e,9,0,i["ɵnov"](e,10).id,i["ɵnov"](e,10).active,i["ɵnov"](e,10).addClass)}))}function id(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function sd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,81,"div",[["class","form-inline"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,14,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](2,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](5,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Priority:"])),(t()(),i["ɵeld"](7,0,null,0,8,"select",[["class","form-control custom-select"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"ngModelChange"===e&&(a=!1!==(r.priority=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[8,null],K.a],null,null),(t()(),i["ɵand"](16777216,null,null,1,null,id)),i["ɵdid"](15,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](16,0,null,null,22,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](17,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](20,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Keyword:"])),(t()(),i["ɵeld"](22,0,null,0,16,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](23,0,null,null,5,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),i["ɵeld"](24,0,null,null,4,"span",[["class","input-group-text"]],null,null,null,null,null)),(t()(),i["ɵeld"](25,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](27,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](28,1),(t()(),i["ɵeld"](29,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"keyup"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,30)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,30).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,30)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,30)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.search=n)&&a),"keyup"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),i["ɵdid"](30,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](32,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](34,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](35,16384,null,0,K.h,[[8,null],K.a],null,null),(t()(),i["ɵeld"](36,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](37,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearSearchKey()&&a),a}),null,null)),(t()(),i["ɵeld"](38,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵeld"](39,0,null,null,19,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](40,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](43,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Date:"])),(t()(),i["ɵeld"](45,0,null,0,13,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](46,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["placeholder","Datepicker"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,47)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,47).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,47)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,47)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,49).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==i["ɵnov"](t,49).hide()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,49).onBlur()&&a),"ngModelChange"===e&&(a=!1!==(r.selectedDate=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),null,null)),i["ɵdid"](47,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](48,737280,null,0,nt.c,[nt.a,i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a],{bsConfig:[0,"bsConfig"]},null),i["ɵdid"](49,16384,null,0,nt.f,[nt.c,nt.j,i.Renderer2,i.ElementRef,i.ChangeDetectorRef],null,null),i["ɵprd"](1024,null,W.o,(function(t){return[t]}),[nt.f]),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,nt.f]),i["ɵdid"](52,671744,null,0,W.u,[[8,null],[6,W.o],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](54,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](55,16384,null,0,K.h,[[8,null],K.a],null,null),(t()(),i["ɵeld"](56,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](57,0,null,null,1,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.clearDate()&&a),a}),null,null)),(t()(),i["ɵeld"](58,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵeld"](59,0,null,null,22,"div",[["class","form-group"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](60,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,7,{FormControlNames:1}),i["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),i["ɵeld"](63,0,null,0,1,"label",[["class","col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Time range:"])),(t()(),i["ɵeld"](65,0,null,0,16,"div",[["class","d-inline-flex"]],null,null,null,null,null)),(t()(),i["ɵeld"](66,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],(function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.startTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),Wl,Sl)),i["ɵprd"](512,null,xl,xl,[]),i["ɵdid"](68,704512,null,0,wl,[Cl,i.ChangeDetectorRef,xl,rl],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[wl]),i["ɵdid"](70,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](72,16384,null,0,W.r,[[4,W.q]],null,null),(t()(),i["ɵeld"](73,0,null,null,1,"span",[["class","middle"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[" — "])),(t()(),i["ɵeld"](75,0,null,null,6,"timepicker",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngModelChange"]],(function(t,e,n){var a=!0,r=t.component;return"ngModelChange"===e&&(a=!1!==(r.endTime=n)&&a),"ngModelChange"===e&&(a=!1!==r.filterLogs()&&a),a}),Wl,Sl)),i["ɵprd"](512,null,xl,xl,[]),i["ɵdid"](77,704512,null,0,wl,[Cl,i.ChangeDetectorRef,xl,rl],{minuteStep:[0,"minuteStep"],showSpinners:[1,"showSpinners"],showMeridian:[2,"showMeridian"]},null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[wl]),i["ɵdid"](79,671744,null,0,W.u,[[8,null],[8,null],[8,null],[6,W.p]],{model:[0,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](81,16384,null,0,W.r,[[4,W.q]],null,null)],(function(t,e){var n=e.component;t(e,2,0),t(e,10,0,n.priority),t(e,15,0,n.prioritys),t(e,17,0);var a=t(e,28,0,n.icons.search);t(e,27,0,a),t(e,32,0,n.search),t(e,40,0),t(e,48,0,n.bsConfig),t(e,52,0,n.selectedDate),t(e,60,0),t(e,68,0,1,!1,!1),t(e,70,0,n.startTime),t(e,77,0,1,!1,!1),t(e,79,0,n.endTime)}),(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e,2).hasErrors,i["ɵnov"](e,2).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass),t(e,16,0,i["ɵnov"](e,17).hasErrors,i["ɵnov"](e,17).hasSuccess),t(e,29,0,i["ɵnov"](e,34).ngClassUntouched,i["ɵnov"](e,34).ngClassTouched,i["ɵnov"](e,34).ngClassPristine,i["ɵnov"](e,34).ngClassDirty,i["ɵnov"](e,34).ngClassValid,i["ɵnov"](e,34).ngClassInvalid,i["ɵnov"](e,34).ngClassPending,i["ɵnov"](e,35).validClass,i["ɵnov"](e,35).invalidClass),t(e,38,0,i["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,"")),t(e,39,0,i["ɵnov"](e,40).hasErrors,i["ɵnov"](e,40).hasSuccess),t(e,46,0,i["ɵnov"](e,54).ngClassUntouched,i["ɵnov"](e,54).ngClassTouched,i["ɵnov"](e,54).ngClassPristine,i["ɵnov"](e,54).ngClassDirty,i["ɵnov"](e,54).ngClassValid,i["ɵnov"](e,54).ngClassInvalid,i["ɵnov"](e,54).ngClassPending,i["ɵnov"](e,55).validClass,i["ɵnov"](e,55).invalidClass),t(e,58,0,i["ɵinlineInterpolate"](1,"icon-prepend ",n.icons.destroy,"")),t(e,59,0,i["ɵnov"](e,60).hasErrors,i["ɵnov"](e,60).hasSuccess),t(e,66,0,i["ɵnov"](e,72).ngClassUntouched,i["ɵnov"](e,72).ngClassTouched,i["ɵnov"](e,72).ngClassPristine,i["ɵnov"](e,72).ngClassDirty,i["ɵnov"](e,72).ngClassValid,i["ɵnov"](e,72).ngClassInvalid,i["ɵnov"](e,72).ngClassPending),t(e,75,0,i["ɵnov"](e,81).ngClassUntouched,i["ɵnov"](e,81).ngClassTouched,i["ɵnov"](e,81).ngClassPristine,i["ɵnov"](e,81).ngClassDirty,i["ɵnov"](e,81).ngClassValid,i["ɵnov"](e,81).ngClassInvalid,i["ɵnov"](e,81).ngClassPending)}))}function cd(t){return i["ɵvid"](0,[i["ɵpid"](0,se.a,[o.DatePipe]),i["ɵpid"](0,Kl.a,[]),(t()(),i["ɵand"](16777216,null,null,1,null,od)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[["logFiltersTpl",2]],null,0,null,sd))],(function(t,e){t(e,3,0,e.component.contentData)}),null)}function ld(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-logs",[],null,null,null,cd,Jl)),i["ɵdid"](1,245760,null,0,Zl,[$l,o.DatePipe,i.NgZone],null,null)],(function(t,e){t(e,1,0)}),null)}var dd=i["ɵccf"]("cd-logs",Zl,ld,{},{},[]);const ud=new jo.a("silence");class gd{constructor(t,e,n,a,r){this.authStorageService=t,this.prometheusAlertService=e,this.urlBuilder=n,this.i18n=a,this.cdDatePipe=r,this.selection=new kr.a,this.icons=ut.a,this.customCss={"badge badge-danger":"active","badge badge-warning":"unprocessed","badge badge-info":"suppressed"},this.permission=this.authStorageService.getPermissions().prometheus,this.tableActions=[{permission:"create",canBePrimary:t=>t.hasSingleSelection,disable:t=>!t.hasSingleSelection||t.first().cdExecuting,icon:ut.a.add,routerLink:()=>"/monitoring"+this.urlBuilder.getCreateFrom(this.selection.first().fingerprint),name:this.i18n("Create Silence")}]}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"labels.alertname",flexGrow:2},{name:this.i18n("Job"),prop:"labels.job",flexGrow:2},{name:this.i18n("Severity"),prop:"labels.severity"},{name:this.i18n("State"),prop:"status.state",cellTransformation:Sr.a.classAdding},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("URL"),prop:"generatorURL",sortable:!1,cellTemplate:this.externalLinkTpl}]}updateSelection(t){this.selection=t}}var fd=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function pd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](5,638976,null,0,$r.a,[se.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.selection.first(),!1,!0,!1,!0,n.customCss)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function md(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](3,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](4,1),(t()(),i["ɵted"](-1,null,[" Source"]))],(function(t,e){var n=t(e,4,0,e.component.icons.lineChart);t(e,3,0,n)}),(function(t,e){t(e,0,0,e.context.value)}))}function hd(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{externalLinkTpl:0}),(t()(),i["ɵeld"](1,0,null,null,5,"cd-table",[["identifier","fingerprint"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](2,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"],customCss:[5,"customCss"]},{updateSelection:"updateSelection"}),(t()(),i["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](4,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵand"](16777216,null,3,1,null,pd)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[[1,2],["externalLinkTpl",2]],null,0,null,md))],(function(t,e){var n=e.component;t(e,2,0,n.prometheusAlertService.alerts,n.columns,"fingerprint",!0,"single",n.customCss),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.selection.hasSingleSelection)}),null)}class bd{constructor(t){this.i18n=t,this.hideKeys=["alerts","type"]}ngOnInit(){this.columns=[{prop:"name",name:this.i18n("Name")},{prop:"labels.severity",name:this.i18n("Severity")},{prop:"group",name:this.i18n("Group")},{prop:"duration",name:this.i18n("Duration"),pipe:new ie},{prop:"query",name:this.i18n("Query"),isHidden:!0},{prop:"annotations.description",name:this.i18n("Description")}]}selectionUpdated(t){this.selectedRule=t.first()}}var yd=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _d(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](5,638976,null,0,$r.a,[se.a],{data:[0,"data"],renderObjects:[1,"renderObjects"],hideKeys:[2,"hideKeys"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.selectedRule,!0,n.hideKeys)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function Od(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-table",[],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.selectionUpdated(n)&&a),a}),br.b,br.a)),i["ɵdid"](1,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),i["ɵand"](16777216,null,3,1,null,_d)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.data,n.columns,"single"),t(e,3,0,n.selectedRule)}),null)}var vd=n("y9jh");const Cd=new jo.a("monitoring/silence");class Pd{constructor(t,e,n,a,r,o,i,s,c){this.authStorageService=t,this.i18n=e,this.cdDatePipe=n,this.prometheusService=a,this.modalService=r,this.notificationService=o,this.urlBuilder=i,this.actionLabels=s,this.succeededLabels=c,this.silences=[],this.selection=new kr.a,this.customCss={"badge badge-danger":"active","badge badge-warning":"pending","badge badge-default":"expired"},this.sorts=[{prop:"endsAt",dir:vd.SortDirection.desc}],this.permission=this.authStorageService.getPermissions().prometheus;const l=t=>t.first()&&t.first().status&&"expired"===t.first().status.state;this.tableActions=[{permission:"create",icon:ut.a.add,routerLink:()=>this.urlBuilder.getCreate(),preserveFragment:!0,canBePrimary:t=>!t.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"create",canBePrimary:t=>t.hasSingleSelection&&l(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||t.first().cdExecuting&&l(t)||!l(t),icon:ut.a.copy,routerLink:()=>this.urlBuilder.getRecreate(this.selection.first().id),preserveFragment:!0,name:this.actionLabels.RECREATE},{permission:"update",icon:ut.a.edit,canBePrimary:t=>t.hasSingleSelection&&!l(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||t.first().cdExecuting&&!l(t)||l(t),routerLink:()=>this.urlBuilder.getEdit(this.selection.first().id),preserveFragment:!0,name:this.actionLabels.EDIT},{permission:"delete",icon:ut.a.trash,canBePrimary:t=>t.hasSingleSelection&&!l(t),disable:t=>!t.hasSingleSelection||t.first().cdExecuting||l(t),click:()=>this.expireSilence(),name:this.actionLabels.EXPIRE}],this.columns=[{name:this.i18n("ID"),prop:"id",flexGrow:3},{name:this.i18n("Created by"),prop:"createdBy",flexGrow:2},{name:this.i18n("Started"),prop:"startsAt",pipe:this.cdDatePipe},{name:this.i18n("Updated"),prop:"updatedAt",pipe:this.cdDatePipe},{name:this.i18n("Ends"),prop:"endsAt",pipe:this.cdDatePipe},{name:this.i18n("Status"),prop:"status.state",cellTransformation:Sr.a.classAdding}]}refresh(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.prometheusService.getSilences().subscribe(t=>{this.silences=t},()=>{this.prometheusService.disableAlertmanagerConfig()})})}updateSelection(t){this.selection=t}expireSilence(){const t=this.selection.first().id,e=this.i18n("Silence");this.modalRef=this.modalService.show(Fo.a,{initialState:{itemDescription:e,itemNames:[t],actionDescription:this.actionLabels.EXPIRE,submitActionObservable:()=>new pn.a(n=>{this.prometheusService.expireSilence(t).subscribe(()=>{this.notificationService.show(be.a.success,`${this.succeededLabels.EXPIRED} ${e} ${t}`,void 0,void 0,"Prometheus")},t=>{t.application="Prometheus",n.error(t)},()=>{n.complete(),this.refresh()})})}})}}var Md=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function xd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"tabset",[["cdTableDetail",""]],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](5,638976,null,0,$r.a,[se.a],{data:[0,"data"],autoReload:[1,"autoReload"],renderObjects:[2,"renderObjects"],appendParentKey:[3,"appendParentKey"],hideEmpty:[4,"hideEmpty"],customCss:[5,"customCss"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.selection.first(),!1,!0,!1,!0,n.customCss)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function wd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-table",[["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.refresh()&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](1,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],sorts:[2,"sorts"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"],customCss:[5,"customCss"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](2,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](3,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵand"](16777216,null,3,1,null,xd)),i["ɵdid"](5,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.silences,n.columns,n.sorts,!0,"single",n.customCss),t(e,3,0,n.permission,n.selection,n.tableActions),t(e,5,0,n.selection.hasSingleSelection)}),null)}class Td{constructor(t,e,n,a,r,o){this.prometheusAlertService=t,this.prometheusService=e,this.route=n,this.router=a,this.summaryService=r,this.cephReleaseNamePipe=o,this.isPrometheusConfigured=!1,this.isAlertmanagerConfigured=!1,this.docsUrl=""}ngOnInit(){this.prometheusService.ifAlertmanagerConfigured(()=>{this.isAlertmanagerConfigured=!0}),this.prometheusService.ifPrometheusConfigured(()=>{this.isPrometheusConfigured=!0});const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`https://docs.ceph.com/docs/${n}/mgr/dashboard/#enabling-prometheus-alerting`,setTimeout(()=>{t.unsubscribe()},0)});if(this.route.snapshot.fragment){const t=this.tabs.tabs.find(t=>t.elementRef.nativeElement.id===this.route.snapshot.fragment);t&&(t.active=!0),this.router.navigate([],{fragment:this.route.snapshot.fragment})}}setFragment(t){this.router.navigate([],{fragment:t.id})}}var Sd=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function kd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-active-alert-list",[],null,null,null,hd,fd)),i["ɵprd"](256,null,jo.a,ud,[]),i["ɵdid"](2,114688,null,0,gd,[yt.a,_e,jo.a,ia.a,se.a],null,null)],(function(t,e){t(e,2,0)}),null)}function Id(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["To see all active Prometheus alerts, please provide the URL to the API of Prometheus' Alertmanager as described in the "])),(t()(),i["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["documentation"])),(t()(),i["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Nd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-rules-list",[],null,null,null,Od,yd)),i["ɵdid"](1,114688,null,0,bd,[ia.a],{data:[0,"data"]},null)],(function(t,e){t(e,1,0,e.component.prometheusAlertService.rules)}),null)}function Rd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["To see all configured Prometheus alerts, please provide the URL to the API of Prometheus as described in the "])),(t()(),i["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["documentation"])),(t()(),i["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Ad(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-silences-list",[],null,null,null,wd,Md)),i["ɵprd"](256,null,jo.a,Cd,[]),i["ɵdid"](2,49152,null,0,Pd,[yt.a,ia.a,se.a,he,Mt.b,gt.a,jo.a,vt.b,vt.d],null,null)],null,null)}function Ed(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["To enable Silences, please provide the URL to the API of the Prometheus' Alertmanager as described in the "])),(t()(),i["ɵeld"](3,0,null,0,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["documentation"])),(t()(),i["ɵted"](-1,0,["."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Dd(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{tabs:0}),(t()(),i["ɵeld"](1,0,null,null,19,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](2,180224,[[1,4],["tabs",4]],0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](3,0,null,0,5,"tab",[["heading","Active Alerts"],["id","active-alerts"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),i["ɵdid"](4,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),i["ɵand"](16777216,null,null,1,null,kd)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Id)),i["ɵdid"](8,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](9,0,null,0,5,"tab",[["heading","All Alerts"],["id","all-alerts"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),i["ɵdid"](10,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),i["ɵand"](16777216,null,null,1,null,Nd)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Rd)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](15,0,null,0,5,"tab",[["heading","Silences"],["id","silences"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.setFragment(n)&&a),a}),null,null)),i["ɵdid"](16,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"],id:[1,"id"]},{selectTab:"selectTab"}),(t()(),i["ɵand"](16777216,null,null,1,null,Ad)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ed)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,4,0,"Active Alerts","active-alerts"),t(e,6,0,n.isAlertmanagerConfigured),t(e,8,0,!n.isAlertmanagerConfigured),t(e,10,0,"All Alerts","all-alerts"),t(e,12,0,n.isPrometheusConfigured),t(e,14,0,!n.isPrometheusConfigured),t(e,16,0,"Silences","silences"),t(e,18,0,n.isAlertmanagerConfigured),t(e,20,0,!n.isAlertmanagerConfigured)}),(function(t,e){t(e,1,0,i["ɵnov"](e,2).clazz),t(e,3,0,i["ɵnov"](e,4).id,i["ɵnov"](e,4).active,i["ɵnov"](e,4).addClass),t(e,9,0,i["ɵnov"](e,10).id,i["ɵnov"](e,10).active,i["ɵnov"](e,10).addClass),t(e,15,0,i["ɵnov"](e,16).id,i["ɵnov"](e,16).active,i["ɵnov"](e,16).addClass)}))}function Ld(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-monitoring-list",[],null,null,null,Dd,Sd)),i["ɵdid"](1,114688,null,0,Td,[_e,he,St.a,St.m,ft.a,bt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var qd=i["ɵccf"]("cd-monitoring-list",Td,Ld,{},{},[]);let jd=(()=>{class t{constructor(t){this.i18n=t,this.valueAttributePath={alertname:"name",instance:"alerts.0.labels.instance",job:"alerts.0.labels.job",severity:"labels.severity"}}singleMatch(t,e){return this.multiMatch([t],e)}multiMatch(t,e){if(!t.some(t=>t.isRegex))return t.forEach(t=>{e=this.getMatchedRules(t,e)}),this.describeMatch(e)}getMatchedRules(t,e){const n=this.getAttributePath(t.name);return e.filter(e=>$.get(e,n)===t.value)}describeMatch(t){let e=0;return t.forEach(t=>e+=t.alerts.length),{status:this.getMatchText(t.length,e),cssClass:e?"has-success":"has-warning"}}getAttributePath(t){return this.valueAttributePath[t]}getMatchText(t,e){const n={noRule:this.i18n("Your matcher seems to match no currently defined rule or active alert."),noAlerts:this.i18n("no active alerts"),alert:this.i18n("1 active alert"),alerts:this.i18n("{{n}} active alerts",{n:e}),rule:this.i18n("Matches 1 rule"),rules:this.i18n("Matches {{n}} rules",{n:t})};return t?this.i18n("{{rules}} with {{alerts}}.",{rules:t>1?n.rules:n.rule,alerts:e?e>1?n.alerts:n.alert:n.noAlerts}):n.noRule}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](ia.a))},token:t,providedIn:"root"}),t})(),Fd=(()=>{class t{constructor(){}calculateDuration(t,e){const n=+t,a=+e,r=this.getDuration(Math.abs(n-a));return n>a?"-"+r:r}getDuration(t){const e=new Date(t),n=e.getUTCHours(),a=e.getUTCMinutes(),r=(t,e)=>t?t+e:t;return[r(Math.floor(t/864e5),"d"),r(n,"h"),r(a,"m")].filter(t=>t).join(" ")}calculateDate(t,e,n){const a=+t;if($.isNaN(a))return;const r=this.getDurationMs(e)*(n?-1:1);return new Date(a+r)}getDurationMs(t){return 6e4*(60*(24*this.getNumbersFromString(t,"d")+this.getNumbersFromString(t,"h"))+this.getNumbersFromString(t,"m"))}getNumbersFromString(t,e){const n=t.match(new RegExp(`[0-9 ]+${e}`,"i"));return n?parseInt(n[0],10):0}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t},token:t,providedIn:"root"}),t})();class zd{constructor(t,e,n){this.formBuilder=t,this.silenceMatcher=e,this.bsModalRef=n,this.submitAction=new i.EventEmitter,this.editMode=!1,this.nameAttributes=["alertname","instance","job","severity"],this.possibleValues=[],this.matcherMatch=void 0,this.createForm(),this.subscribeToChanges()}createForm(){this.form=this.formBuilder.group({name:[null,[W.B.required]],value:[{value:null,disabled:!0},[W.B.required]],isRegex:new W.i(!1)})}subscribeToChanges(){this.form.get("name").valueChanges.subscribe(t=>{null!==t?(this.setPossibleValues(t),this.form.get("value").enable()):this.form.get("value").disable()}),this.form.get("value").valueChanges.subscribe(t=>{const e=this.form.value;e.value=t,this.matcherMatch=this.silenceMatcher.singleMatch(e,this.rules)})}setPossibleValues(t){this.possibleValues=$.sortedUniq(this.rules.map(e=>$.get(e,this.silenceMatcher.getAttributePath(t))).filter(t=>t))}preFillControls(t){this.form.setValue(t)}onSubmit(){this.submitAction.emit(this.form.value),this.bsModalRef.hide()}}class Gd{constructor(t,e,n,a,r,o,i,s,c,l,d,u){this.i18n=t,this.router=e,this.authStorageService=n,this.formBuilder=a,this.prometheusService=r,this.notificationService=o,this.route=i,this.timeDiff=s,this.bsModalService=c,this.silenceMatcher=l,this.actionLabels=d,this.succeededLabels=u,this.icons=ut.a,this.bsConfig={dateInputFormat:"YYYY-MM-DDT HH:mm"},this.recreate=!1,this.edit=!1,this.resource=this.i18n("silence"),this.matchers=[],this.matcherMatch=void 0,this.matcherConfig=[{tooltip:this.i18n("Attribute name"),icon:this.icons.paragraph,attribute:"name"},{tooltip:this.i18n("Value"),icon:this.icons.terminal,attribute:"value"},{tooltip:this.i18n("Regular expression"),icon:this.icons.magic,attribute:"isRegex"}],this.init()}init(){this.chooseMode(),this.authenticate(),this.createForm(),this.setupDates(),this.getData()}chooseMode(){this.edit=this.router.url.startsWith("/monitoring/silence/edit"),this.recreate=this.router.url.startsWith("/monitoring/silence/recreate"),this.action=this.edit?this.actionLabels.EDIT:this.recreate?this.actionLabels.RECREATE:this.actionLabels.CREATE}authenticate(){this.permission=this.authStorageService.getPermissions().prometheus,this.permission.read&&(this.edit?this.permission.update:this.permission.create)||this.router.navigate(["/404"])}createForm(){this.form=this.formBuilder.group({startsAt:[null,[W.B.required]],duration:["2h",[W.B.min(1)]],endsAt:[null,[W.B.required]],createdBy:[this.authStorageService.getUsername(),[W.B.required]],comment:[null,[W.B.required]]},{validators:di.a.custom("matcherRequired",()=>0===this.matchers.length)})}setupDates(){const t=new Date;t.setSeconds(0,0),this.form.silentSet("startsAt",t),this.updateDate(),this.subscribeDateChanges()}updateDate(t){const e=this.timeDiff.calculateDate(this.form.getValue(t?"endsAt":"startsAt"),this.form.getValue("duration"),t);e&&this.form.silentSet(t?"startsAt":"endsAt",e)}subscribeDateChanges(){this.form.get("startsAt").valueChanges.subscribe(()=>{this.onDateChange()}),this.form.get("duration").valueChanges.subscribe(()=>{this.updateDate()}),this.form.get("endsAt").valueChanges.subscribe(()=>{this.onDateChange(!0)})}onDateChange(t){this.form.getValue("startsAt")<this.form.getValue("endsAt")?this.updateDuration():this.updateDate(t)}updateDuration(){this.form.silentSet("duration",this.timeDiff.calculateDuration(this.form.getValue("startsAt"),this.form.getValue("endsAt")))}getData(){this.getRules(),this.getModeSpecificData()}getRules(){this.prometheusService.ifPrometheusConfigured(()=>this.prometheusService.getRules().subscribe(t=>{this.rules=t.groups.reduce((t,e)=>$.concat(t,e.rules),[])},()=>{this.prometheusService.disablePrometheusConfig(),this.rules=[]}),()=>{this.rules=[],this.notificationService.show(be.a.info,this.i18n("Please add your Prometheus host to the dashboard configuration and refresh the page"),void 0,void 0,"Prometheus")})}getModeSpecificData(){this.route.params.subscribe(t=>{t.id&&(this.edit||this.recreate?this.prometheusService.getSilences(t).subscribe(t=>{this.fillFormWithSilence(t[0])}):this.prometheusService.getAlerts(t).subscribe(t=>{this.fillFormByAlert(t[0])}))})}fillFormWithSilence(t){this.id=t.id,this.edit&&(["startsAt","endsAt"].forEach(e=>this.form.silentSet(e,new Date(t[e]))),this.updateDuration()),["createdBy","comment"].forEach(e=>this.form.silentSet(e,t[e])),this.matchers=t.matchers,this.validateMatchers()}validateMatchers(){this.rules?(this.matcherMatch=this.silenceMatcher.multiMatch(this.matchers,this.rules),this.form.markAsDirty(),this.form.updateValueAndValidity()):window.setTimeout(()=>this.validateMatchers(),100)}fillFormByAlert(t){const e=t.labels;Object.keys(e).forEach(t=>this.setMatcher({name:t,value:e[t],isRegex:!1}))}setMatcher(t,e){$.isNumber(e)?this.matchers[e]=t:this.matchers.push(t),this.validateMatchers()}showMatcherModal(t){const e=this.bsModalService.show(zd),n=e.content;n.rules=this.rules,$.isNumber(t)&&(n.editMode=!0,n.preFillControls(this.matchers[t])),e.content.submitAction.subscribe(e=>{this.setMatcher(e,t)})}deleteMatcher(t){this.matchers.splice(t,1),this.validateMatchers()}submit(){this.form.invalid||this.prometheusService.setSilence(this.getSubmitData()).subscribe(t=>{this.router.navigate(["/monitoring"],{fragment:"silences"}),this.notificationService.show(be.a.success,this.getNotificationTile(t.body.silenceId),void 0,void 0,"Prometheus")},()=>this.form.setErrors({cdSubmitButton:!0}))}getSubmitData(){const t=this.form.value;return delete t.duration,t.startsAt=t.startsAt.toISOString(),t.endsAt=t.endsAt.toISOString(),t.matchers=this.matchers,this.edit&&(t.id=this.id),t}getNotificationTile(t){let e;return e=this.edit?this.succeededLabels.EDITED:this.recreate?this.succeededLabels.RECREATED:this.succeededLabels.CREATED,`${e} ${this.resource} ${t}`}}var Bd=i["ɵcrt"]({encapsulation:0,styles:[["textarea[_ngcontent-%COMP%]{resize:vertical}"]],data:{}});function Vd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"input",[["class","form-control"],["disabled",""],["readonly",""],["type","text"]],[[8,"id",0],[8,"value",0],[2,"is-valid",null],[2,"is-invalid",null]],null,null,null,null)),i["ɵdid"](2,16384,null,0,K.h,[[8,null],K.a],null,null)],null,(function(t,e){t(e,1,0,i["ɵinlineInterpolate"](2,"matcher-",e.parent.context.$implicit.attribute,"-",e.parent.parent.context.index,""),e.parent.parent.context.matcher[e.parent.context.$implicit.attribute],i["ɵnov"](e,2).validClass,i["ɵnov"](e,2).invalidClass)}))}function Yd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"div",[["class","input-group-text"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,0,"input",[["disabled",""],["readonly",""],["type","checkbox"]],[[8,"id",0],[8,"checked",0]],null,null,null,null))],null,(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](2,"matcher-",e.parent.context.$implicit.attribute,"-",e.parent.parent.context.index,""),e.parent.parent.context.matcher[e.parent.context.$implicit.attribute])}))}function Hd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,11,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,6,"div",[["class","input-group-prepend"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,16777216,null,null,5,"span",[["class","input-group-text"]],[[1,"aria-describedby",0]],null,null,null,null)),i["ɵdid"](3,212992,null,0,In.c,[i.ViewContainerRef,U.a,In.a,i.ElementRef,i.Renderer2,Gn.a],{tooltip:[0,"tooltip"]},null),(t()(),i["ɵeld"](4,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](7,1),(t()(),i["ɵand"](16777216,null,null,1,null,Vd)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Yd)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,3,0,e.context.$implicit.tooltip);var n=t(e,7,0,e.context.$implicit.icon);t(e,6,0,n),t(e,9,0,"isRegex"!==e.context.$implicit.attribute),t(e,11,0,"isRegex"===e.context.$implicit.attribute)}),(function(t,e){t(e,2,0,i["ɵnov"](e,3).ariaDescribedby)}))}function Ud(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,15,"div",[["class","input-group my-2"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Hd)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](3,0,null,null,12,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","Edit"],["type","button"]],[[8,"id",0],[1,"aria-describedby",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showMatcherModal(t.context.index)&&a),a}),null,null)),i["ɵdid"](5,212992,null,0,In.c,[i.ViewContainerRef,U.a,In.a,i.ElementRef,i.Renderer2,Gn.a],{tooltip:[0,"tooltip"]},null),(t()(),i["ɵeld"](6,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](8,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](9,1),(t()(),i["ɵeld"](10,16777216,null,null,5,"button",[["class","btn btn-light"],["tooltip","Delete"],["type","button"]],[[8,"id",0],[1,"aria-describedby",0]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.deleteMatcher(t.context.index)&&a),a}),null,null)),i["ɵdid"](11,212992,null,0,In.c,[i.ViewContainerRef,U.a,In.a,i.ElementRef,i.Renderer2,Gn.a],{tooltip:[0,"tooltip"]},null),(t()(),i["ɵeld"](12,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](14,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](15,1),(t()(),i["ɵeld"](16,0,null,null,0,"span",[["class","help-block"]],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,2,0,n.matcherConfig),t(e,5,0,"Edit");var a=t(e,9,0,n.icons.edit);t(e,8,0,a),t(e,11,0,"Delete");var r=t(e,15,0,n.icons.trash);t(e,14,0,r)}),(function(t,e){t(e,4,0,i["ɵinlineInterpolate"](1,"matcher-edit-",e.context.index,""),i["ɵnov"](e,5).ariaDescribedby),t(e,10,0,i["ɵinlineInterpolate"](1,"matcher-delete-",e.context.index,""),i["ɵnov"](e,11).ariaDescribedby)}))}function Wd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](-1,0,["Editing a silence will expire the old silence and recreate it as a new silence"]))],null,null)}function Kd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function $d(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function Zd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function Jd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function Xd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function Qd(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"h5",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](3,{"text-warning":0,"text-danger":1}),(t()(),i["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["A silence requires at least one matcher"]))],(function(t,e){var n=t(e,3,0,!i["ɵnov"](e.parent,6).submitted,i["ɵnov"](e.parent,6).submitted);t(e,2,0,n)}),null)}function tu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,null,null,null,null,null,null,null))],null,null)}function eu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,tu)),i["ɵdid"](2,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),i["ɵpod"](3,{index:0,matcher:1})],(function(t,e){var n=t(e,3,0,e.context.index,e.context.$implicit);t(e,2,0,n,i["ɵnov"](e.parent,2))}),null)}function nu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵted"](2,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,i["ɵinlineInterpolate"](1,"cd-col-form-offset ",n.matcherMatch.cssClass,"")),t(e,1,0,i["ɵinlineInterpolate"](1,"text-muted ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)}))}function au(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),(t()(),i["ɵand"](0,[["matcherTpl",2]],null,0,null,Ud)),(t()(),i["ɵeld"](3,0,null,null,137,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,136,"form",[["class","form"],["name","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,6).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,9).onSubmit()&&a),a}),null,null)),i["ɵdid"](5,16384,null,0,W.G,[],null,null),i["ɵdid"](6,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](8,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](9,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](10,0,null,null,130,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,6,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,3,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](13,null,[" "," "," "])),i["ɵppd"](14,1),i["ɵppd"](15,1),(t()(),i["ɵand"](16777216,null,null,1,null,Wd)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](18,0,null,null,113,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](20,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](23,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","created-by"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Creator"])),(t()(),i["ɵeld"](25,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](26,0,null,null,6,"input",[["class","form-control"],["formControlName","createdBy"],["id","created-by"],["name","created-by"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,27)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,27).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,27)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,27)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](27,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](29,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](31,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](32,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Kd)),i["ɵdid"](34,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](35,0,null,null,16,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](36,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](39,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","comment"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Comment"])),(t()(),i["ɵeld"](41,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](42,0,null,null,7,"textarea",[["class","form-control"],["formControlName","comment"],["id","comment"],["name","comment"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,43)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,43).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,43)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,43)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](43,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](45,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](47,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](48,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵted"](-1,null,["            "])),(t()(),i["ɵand"](16777216,null,null,1,null,$d)),i["ɵdid"](51,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](52,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](53,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](56,0,null,0,5,"label",[["class","cd-col-form-label"],["for","starts-at"]],null,null,null,null,null)),(t()(),i["ɵeld"](57,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Start time"])),(t()(),i["ɵeld"](59,0,null,null,2,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](60,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](-1,0,["If the start time lies in the past the creation time will be used"])),(t()(),i["ɵeld"](62,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](63,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","startsAt"],["id","starts-at"],["name","starts-at"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,64)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,64).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,64)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,64)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,66).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==i["ɵnov"](t,66).hide()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,66).onBlur()&&a),a}),null,null)),i["ɵdid"](64,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](65,737280,null,0,nt.c,[nt.a,i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a],{bsConfig:[0,"bsConfig"]},null),i["ɵdid"](66,16384,null,0,nt.f,[nt.c,nt.j,i.Renderer2,i.ElementRef,i.ChangeDetectorRef],null,null),i["ɵprd"](1024,null,W.o,(function(t){return[t]}),[nt.f]),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,nt.f]),i["ɵdid"](69,671744,[[5,4]],0,W.j,[[3,W.d],[6,W.o],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](71,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](72,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Zd)),i["ɵdid"](74,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](75,0,null,null,15,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](76,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,7,{FormControlNames:1}),i["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),i["ɵeld"](79,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","duration"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Duration"])),(t()(),i["ɵeld"](81,0,null,0,9,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](82,0,null,null,6,"input",[["class","form-control"],["formControlName","duration"],["id","duration"],["name","duration"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,83)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,83).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,83)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,83)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](83,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](85,671744,[[7,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](87,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](88,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Jd)),i["ɵdid"](90,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](91,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](92,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,9,{FormControlNames:1}),i["ɵqud"](603979776,10,{messagesBlock:0}),(t()(),i["ɵeld"](95,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","ends-at"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["End time"])),(t()(),i["ɵeld"](97,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](98,16777216,null,null,9,"input",[["bsDatepicker",""],["class","form-control"],["formControlName","endsAt"],["id","ends-at"],["name","ends-at"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"],[null,"keyup.esc"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,99)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,99).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,99)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,99)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,101).onChange(n)&&a),"keyup.esc"===e&&(a=!1!==i["ɵnov"](t,101).hide()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,101).onBlur()&&a),a}),null,null)),i["ɵdid"](99,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](100,737280,null,0,nt.c,[nt.a,i.ElementRef,i.Renderer2,i.ViewContainerRef,U.a],{bsConfig:[0,"bsConfig"]},null),i["ɵdid"](101,16384,null,0,nt.f,[nt.c,nt.j,i.Renderer2,i.ElementRef,i.ChangeDetectorRef],null,null),i["ɵprd"](1024,null,W.o,(function(t){return[t]}),[nt.f]),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,nt.f]),i["ɵdid"](104,671744,[[9,4]],0,W.j,[[3,W.d],[6,W.o],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](106,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](107,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Xd)),i["ɵdid"](109,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](110,0,null,null,21,"fieldset",[],null,null,null,null,null)),(t()(),i["ɵeld"](111,0,null,null,1,"legend",[["class","required"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Matchers"])),(t()(),i["ɵeld"](113,0,null,null,16,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Qd)),i["ɵdid"](115,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,eu)),i["ɵdid"](117,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](118,0,null,null,11,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](119,0,null,null,10,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](120,0,null,null,9,"button",[["class","btn btn-light float-right my-3"],["id","add-matcher"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.showMatcherModal()&&a),a}),null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](122,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](123,{"btn-warning":0}),(t()(),i["ɵeld"](124,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](126,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](127,1),(t()(),i["ɵeld"](128,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Add matcher"])),(t()(),i["ɵand"](16777216,null,null,1,null,nu)),i["ɵdid"](131,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](132,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](133,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](134,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submit()&&a),a}),ri.b,ri.a)),i["ɵdid"](135,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](136,0,[" "," "," "])),i["ɵppd"](137,1),i["ɵppd"](138,1),(t()(),i["ɵeld"](139,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](140,49152,null,0,si.a,[o.Location,vt.b],null,null)],(function(t,e){var n=e.component;t(e,6,0,n.form),t(e,9,0,n.form),t(e,17,0,n.edit),t(e,20,0),t(e,29,0,"createdBy"),t(e,32,0,"createdBy"),t(e,34,0,n.form.showError("createdBy",i["ɵnov"](e,6),"required")),t(e,36,0),t(e,45,0,"comment"),t(e,48,0,"comment"),t(e,51,0,n.form.showError("comment",i["ɵnov"](e,6),"required")),t(e,53,0),t(e,65,0,n.bsConfig),t(e,69,0,"startsAt"),t(e,72,0,"startsAt"),t(e,74,0,n.form.showError("startsAt",i["ɵnov"](e,6),"required")),t(e,76,0),t(e,85,0,"duration"),t(e,88,0,"duration"),t(e,90,0,n.form.showError("duration",i["ɵnov"](e,6),"required")),t(e,92,0),t(e,100,0,n.bsConfig),t(e,104,0,"endsAt"),t(e,107,0,"endsAt"),t(e,109,0,n.form.showError("endsAt",i["ɵnov"](e,6),"required")),t(e,115,0,0===n.matchers.length),t(e,117,0,n.matchers);var a=t(e,123,0,i["ɵnov"](e,6).submitted&&0===n.matchers.length);t(e,122,0,"btn btn-light float-right my-3",a);var r=t(e,127,0,n.icons.add);t(e,126,0,r),t(e,131,0,n.matchers.length&&n.matcherMatch),t(e,135,0,i["ɵnov"](e,6))}),(function(t,e){var n=e.component;t(e,4,0,i["ɵnov"](e,8).ngClassUntouched,i["ɵnov"](e,8).ngClassTouched,i["ɵnov"](e,8).ngClassPristine,i["ɵnov"](e,8).ngClassDirty,i["ɵnov"](e,8).ngClassValid,i["ɵnov"](e,8).ngClassInvalid,i["ɵnov"](e,8).ngClassPending);var a=i["ɵunv"](e,13,0,t(e,14,0,i["ɵnov"](e,0),n.action)),r=i["ɵunv"](e,13,1,t(e,15,0,i["ɵnov"](e,1),n.resource));t(e,13,0,a,r),t(e,19,0,i["ɵnov"](e,20).hasErrors,i["ɵnov"](e,20).hasSuccess),t(e,26,0,i["ɵnov"](e,31).ngClassUntouched,i["ɵnov"](e,31).ngClassTouched,i["ɵnov"](e,31).ngClassPristine,i["ɵnov"](e,31).ngClassDirty,i["ɵnov"](e,31).ngClassValid,i["ɵnov"](e,31).ngClassInvalid,i["ɵnov"](e,31).ngClassPending,i["ɵnov"](e,32).validClass,i["ɵnov"](e,32).invalidClass),t(e,35,0,i["ɵnov"](e,36).hasErrors,i["ɵnov"](e,36).hasSuccess),t(e,42,0,i["ɵnov"](e,47).ngClassUntouched,i["ɵnov"](e,47).ngClassTouched,i["ɵnov"](e,47).ngClassPristine,i["ɵnov"](e,47).ngClassDirty,i["ɵnov"](e,47).ngClassValid,i["ɵnov"](e,47).ngClassInvalid,i["ɵnov"](e,47).ngClassPending,i["ɵnov"](e,48).validClass,i["ɵnov"](e,48).invalidClass),t(e,52,0,i["ɵnov"](e,53).hasErrors,i["ɵnov"](e,53).hasSuccess),t(e,63,0,i["ɵnov"](e,71).ngClassUntouched,i["ɵnov"](e,71).ngClassTouched,i["ɵnov"](e,71).ngClassPristine,i["ɵnov"](e,71).ngClassDirty,i["ɵnov"](e,71).ngClassValid,i["ɵnov"](e,71).ngClassInvalid,i["ɵnov"](e,71).ngClassPending,i["ɵnov"](e,72).validClass,i["ɵnov"](e,72).invalidClass),t(e,75,0,i["ɵnov"](e,76).hasErrors,i["ɵnov"](e,76).hasSuccess),t(e,82,0,i["ɵnov"](e,87).ngClassUntouched,i["ɵnov"](e,87).ngClassTouched,i["ɵnov"](e,87).ngClassPristine,i["ɵnov"](e,87).ngClassDirty,i["ɵnov"](e,87).ngClassValid,i["ɵnov"](e,87).ngClassInvalid,i["ɵnov"](e,87).ngClassPending,i["ɵnov"](e,88).validClass,i["ɵnov"](e,88).invalidClass),t(e,91,0,i["ɵnov"](e,92).hasErrors,i["ɵnov"](e,92).hasSuccess),t(e,98,0,i["ɵnov"](e,106).ngClassUntouched,i["ɵnov"](e,106).ngClassTouched,i["ɵnov"](e,106).ngClassPristine,i["ɵnov"](e,106).ngClassDirty,i["ɵnov"](e,106).ngClassValid,i["ɵnov"](e,106).ngClassInvalid,i["ɵnov"](e,106).ngClassPending,i["ɵnov"](e,107).validClass,i["ɵnov"](e,107).invalidClass);var o=i["ɵunv"](e,136,0,t(e,137,0,i["ɵnov"](e,0),n.action)),s=i["ɵunv"](e,136,1,t(e,138,0,i["ɵnov"](e,1),n.resource));t(e,136,0,o,s)}))}function ru(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-prometheus-form",[],null,null,null,au,Bd)),i["ɵdid"](1,49152,null,0,Gd,[ia.a,St.m,yt.a,ys.a,he,gt.a,St.a,Fd,Mt.b,jd,vt.b,vt.d],null,null)],null,null)}var ou=i["ɵccf"]("cd-prometheus-form",Gd,ru,{},{},[]);let iu=(()=>{class t{constructor(e){this.route=e,this.route.queryParams.subscribe(e=>{this.fromLink=e.fromLink||t.defaultFromLink}),this.route.params.subscribe(t=>{this.serviceId=decodeURIComponent(t.id),this.serviceType=t.type})}}return t.defaultFromLink="/hosts",t})();var su=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function cu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",".",""])),(t()(),i["ɵeld"](2,0,null,null,1,"cd-table-performance-counter",[],null,null,null,Gi.b,Gi.a)),i["ɵdid"](3,114688,null,0,Bi.a,[Vi.a,ia.a],{serviceType:[0,"serviceType"],serviceId:[1,"serviceId"]},null)],(function(t,e){var n=e.component;t(e,3,0,n.serviceType,n.serviceId)}),(function(t,e){var n=e.component;t(e,1,0,n.serviceType,n.serviceId)}))}function lu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-performance-counter",[],null,null,null,cu,su)),i["ɵdid"](1,49152,null,0,iu,[St.a],null,null)],null,null)}var du=i["ɵccf"]("cd-performance-counter",iu,lu,{},{},[]);let uu=(()=>{class t{constructor(t){this.http=t,this.url="api/mgr/module"}list(){return this.http.get(`${this.url}`)}getConfig(t){return this.http.get(`${this.url}/${t}`)}updateConfig(t,e){return this.http.put(`${this.url}/${t}`,{config:e})}enable(t){return this.http.post(`${this.url}/${t}/enable`,null)}disable(t){return this.http.post(`${this.url}/${t}/disable`,null)}getOptions(t){return this.http.get(`${this.url}/${t}/options`)}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();class gu{constructor(t){this.mgrModuleService=t}ngOnChanges(){if(this.selection.hasSelection){const t=this.selection.first();this.mgrModuleService.getConfig(t.name).subscribe(t=>{this.module_config=t})}}}var fu=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function pu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](5,638976,null,0,$r.a,[se.a],{data:[0,"data"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.module_config)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass)}))}function mu(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,pu)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selection.hasSingleSelection)}),null)}var hu=n("PqYM");let bu=(()=>{class t{constructor(t,e,n,a){this.authStorageService=t,this.mgrModuleService=e,this.notificationService=n,this.i18n=a,this.columns=[],this.modules=[],this.selection=new kr.a,this.permission=this.authStorageService.getPermissions().configOpt,this.columns=[{name:this.i18n("Name"),prop:"name",flexGrow:1},{name:this.i18n("Enabled"),prop:"enabled",flexGrow:1,cellClass:"text-center",cellTransformation:Sr.a.checkIcon},{name:this.i18n("Always-On"),prop:"always_on",isHidden:!0,flexGrow:1,cellClass:"text-center",cellTransformation:Sr.a.checkIcon}];const r=()=>this.selection.first()&&encodeURIComponent(this.selection.first().name);this.tableActions=[{name:this.i18n("Edit"),permission:"update",disable:()=>!this.selection.hasSelection||0===Object.values(this.selection.first().options).length,routerLink:()=>`/mgr-modules/edit/${r()}`,icon:ut.a.edit},{name:this.i18n("Enable"),permission:"update",click:()=>this.updateModuleState(),disable:()=>this.isTableActionDisabled("enabled"),icon:ut.a.start},{name:this.i18n("Disable"),permission:"update",click:()=>this.updateModuleState(),disable:()=>this.isTableActionDisabled("disabled"),disableDesc:()=>this.getTableActionDisabledDesc(),icon:ut.a.stop}]}getModuleList(t){this.mgrModuleService.list().subscribe(t=>{this.modules=t},()=>{t.error()})}updateSelection(t){this.selection=t}isTableActionDisabled(t){if(!this.selection.hasSelection)return!0;const e=this.selection.first();if("dashboard"===e.name)return!0;if(e.always_on)return!0;switch(t){case"enabled":return e.enabled;case"disabled":return!e.enabled}}getTableActionDisabledDesc(){if(this.selection.hasSelection&&this.selection.first().always_on)return this.i18n("This Manager module is always on.")}updateModuleState(){if(!this.selection.hasSelection)return;let t;const e=()=>{Object(hu.a)(2e3).subscribe(()=>{this.mgrModuleService.list().subscribe(()=>{this.notificationService.suspendToasties(!1),this.blockUI.stop(),this.table.refreshBtn()},()=>{e()})})},n=this.selection.first();t=n.enabled?this.mgrModuleService.disable(n.name):this.mgrModuleService.enable(n.name),t.subscribe(()=>{},()=>{this.notificationService.suspendToasties(!0),this.blockUI.start(this.i18n("Reconnecting, please wait ...")),e()})}}return Uc.__decorate([function(t,e,n){t[e]=k.decorate(void 0)},Uc.__metadata("design:type",Object)],t.prototype,"blockUI",void 0),t})();var yu=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _u(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{table:0}),(t()(),i["ɵeld"](1,0,null,null,5,"cd-table",[["columnMode","flex"],["identifier","module"],["selectionType","single"]],null,[[null,"updateSelection"],[null,"fetchData"]],(function(t,e,n){var a=!0,r=t.component;return"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),"fetchData"===e&&(a=!1!==r.getModuleList(n)&&a),a}),br.b,br.a)),i["ɵdid"](2,2867200,[[1,4],["table",4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],autoReload:[3,"autoReload"],identifier:[4,"identifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](3,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](4,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵeld"](5,0,null,3,1,"cd-mgr-module-details",[["cdTableDetail",""]],null,null,null,mu,fu)),i["ɵdid"](6,573440,null,0,gu,[uu],{selection:[0,"selection"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.modules,n.columns,"flex",!1,"module","single"),t(e,4,0,n.permission,n.selection,n.tableActions),t(e,6,0,n.selection)}),null)}function Ou(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-mgr-module-list",[],null,null,null,_u,yu)),i["ɵdid"](1,49152,null,0,bu,[yt.a,uu,gt.a,ia.a],null,null)],null,null)}var vu=i["ɵccf"]("cd-mgr-module-list",bu,Ou,{},{},[]);class Cu{constructor(t,e,n,a,r,o){this.route=t,this.router=e,this.formBuilder=n,this.mgrModuleService=a,this.notificationService=r,this.i18n=o,this.error=!1,this.loading=!1,this.moduleName="",this.moduleOptions=[]}ngOnInit(){this.route.params.subscribe(t=>{this.moduleName=decodeURIComponent(t.name),this.loading=!0;const e=[this.mgrModuleService.getOptions(this.moduleName),this.mgrModuleService.getConfig(this.moduleName)];Object(ls.a)(e).subscribe(t=>{this.loading=!1,this.moduleOptions=t[0],this.createForm(),this.mgrModuleForm.setValue(t[1])},t=>{this.error=!0})})}getValidators(t){const e=[];switch(t.type){case"addr":e.push(di.a.ip());break;case"uint":case"int":case"size":case"secs":e.push(di.a.number()),e.push(W.B.required),$.isNumber(t.min)&&e.push(W.B.min(t.min)),$.isNumber(t.max)&&e.push(W.B.max(t.max));break;case"str":$.isNumber(t.min)&&e.push(W.B.minLength(t.min)),$.isNumber(t.max)&&e.push(W.B.maxLength(t.max));break;case"float":e.push(W.B.required),e.push(di.a.decimalNumber());break;case"uuid":e.push(di.a.uuid())}return e}createForm(){const t={};$.forEach(this.moduleOptions,e=>{t[e.name]=[e.default_value,this.getValidators(e)]}),this.mgrModuleForm=this.formBuilder.group(t)}goToListView(){this.router.navigate(["/mgr-modules"])}onSubmit(){if(this.mgrModuleForm.pristine)return void this.goToListView();const t={};$.forEach(this.moduleOptions,e=>{const n=this.mgrModuleForm.get(e.name);n.dirty&&n.valid&&(t[e.name]=n.value)}),this.mgrModuleService.updateConfig(this.moduleName,t).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n('Updated options for module "{{name}}".',{name:this.moduleName})),this.goToListView()},()=>{this.mgrModuleForm.setErrors({cdSubmitButton:!0})})}}var Pu=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Mu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-loading-panel",[],null,null,null,Zr.b,Zr.a)),i["ɵdid"](1,49152,null,0,Jr.a,[],null,null),(t()(),i["ɵted"](-1,0,["Loading configuration..."]))],null,null)}function xu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-alert-panel",[["type","error"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](-1,0,["The configuration could not be loaded."]))],(function(t,e){t(e,1,0,"error")}),null)}function wu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](2,0,[" "," "])),i["ɵppd"](3,1)],null,(function(t,e){var n=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent.parent.parent,0),e.parent.context.$implicit.value.long_desc||e.parent.context.$implicit.value.desc));t(e,2,0,n)}))}function Tu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,3).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,3).onTouched()&&a),a}),null,null)),i["ɵdid"](3,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](5,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](7,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](8,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](9,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],(function(t,e){t(e,5,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""))}),(function(t,e){t(e,2,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),i["ɵnov"](e,7).ngClassUntouched,i["ɵnov"](e,7).ngClassTouched,i["ɵnov"](e,7).ngClassPristine,i["ɵnov"](e,7).ngClassDirty,i["ɵnov"](e,7).ngClassValid,i["ɵnov"](e,7).ngClassInvalid,i["ɵnov"](e,7).ngClassPending,i["ɵnov"](e,8).validClass,i["ɵnov"](e,8).invalidClass),t(e,9,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""))}))}function Su(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["type","text"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,1)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](1,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](3,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](5,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](6,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,6,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""))}),(function(t,e){t(e,0,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""),i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending,i["ɵnov"](e,6).validClass,i["ɵnov"](e,6).invalidClass)}))}function ku(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{ngValue:[0,"ngValue"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Iu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"select",[["class","form-control custom-select"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,1).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,1).onTouched()&&a),a}),null,null)),i["ɵdid"](1,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](3,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](5,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](6,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ku)),i["ɵdid"](8,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,3,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,6,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,"")),t(e,8,0,e.parent.parent.context.$implicit.value.enum_allowed)}),(function(t,e){t(e,0,0,i["ɵinlineInterpolate"](1,"",e.parent.parent.context.$implicit.value.name,""),i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending,i["ɵnov"](e,6).validClass,i["ɵnov"](e,6).invalidClass)}))}function Nu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The entered value is not a valid UUID, e.g.: 67dcac9f-2c03-4d6c-b7bd-1210b3a259a8"]))],null,null)}function Ru(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The entered value needs to be a valid IP address."]))],null,null)}function Au(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Su)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Iu)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Nu)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ru)),i["ɵdid"](8,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,0===e.parent.context.$implicit.value.enum_allowed.length),t(e,4,0,e.parent.context.$implicit.value.enum_allowed.length>0),t(e,6,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"invalidUuid")),t(e,8,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"pattern"))}),null)}function Eu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function Du(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too high! It must be lower or equal to ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.max)}))}function Lu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too low! It must be greater or equal to ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.value.min)}))}function qu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The entered value needs to be a number."]))],null,null)}function ju(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,16,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"min",0],[8,"max",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,3).onTouched()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](3,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](5,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](7,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](8,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Eu)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Du)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Lu)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,qu)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"max")),t(e,14,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"min")),t(e,16,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"pattern"))}),(function(t,e){t(e,1,1,[i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.min,""),i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.max,""),i["ɵnov"](e,7).ngClassUntouched,i["ɵnov"](e,7).ngClassTouched,i["ɵnov"](e,7).ngClassPristine,i["ɵnov"](e,7).ngClassDirty,i["ɵnov"](e,7).ngClassValid,i["ɵnov"](e,7).ngClassInvalid,i["ɵnov"](e,7).ngClassPending,i["ɵnov"](e,8).validClass,i["ɵnov"](e,8).invalidClass])}))}function Fu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function zu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The entered value needs to be a number or decimal."]))],null,null)}function Gu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,12,"div",[["class","col-sm-7"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,2)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,2).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,2)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,2)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,3).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,3).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,3).onTouched()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](3,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](5,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](7,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](8,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Fu)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,zu)),i["ɵdid"](12,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,5,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,8,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,"")),t(e,10,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"required")),t(e,12,0,n.mgrModuleForm.showError(e.parent.context.$implicit.value.name,i["ɵnov"](e.parent.parent,3),"pattern"))}),(function(t,e){t(e,1,0,i["ɵinlineInterpolate"](1,"",e.parent.context.$implicit.value.name,""),i["ɵnov"](e,7).ngClassUntouched,i["ɵnov"](e,7).ngClassTouched,i["ɵnov"](e,7).ngClassPristine,i["ɵnov"](e,7).ngClassDirty,i["ɵnov"](e,7).ngClassValid,i["ɵnov"](e,7).ngClassInvalid,i["ɵnov"](e,7).ngClassPending,i["ɵnov"](e,8).validClass,i["ɵnov"](e,8).invalidClass)}))}function Bu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,3,"label",[["class","col-form-label col-sm-5"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵted"](5,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,wu)),i["ɵdid"](7,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Tu)),i["ɵdid"](9,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,2,null,Au)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵpad"](12,3),(t()(),i["ɵand"](16777216,null,0,2,null,ju)),i["ɵdid"](14,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),i["ɵpad"](15,4),(t()(),i["ɵand"](16777216,null,0,1,null,Gu)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0),t(e,7,0,e.context.$implicit.value.long_desc||e.context.$implicit.value.desc),t(e,9,0,"bool"===e.context.$implicit.value.type);var n=t(e,12,0,"addr","str","uuid").includes(e.context.$implicit.value.type);t(e,11,0,n);var a=t(e,15,0,"uint","int","size","secs").includes(e.context.$implicit.value.type);t(e,14,0,a),t(e,17,0,"float"===e.context.$implicit.value.type)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,i["ɵinlineInterpolate"](1,"",e.context.$implicit.value.name,"")),t(e,5,0,e.context.$implicit.value.name)}))}function Vu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,22,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,21,"form",[["name","mgrModuleForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,3).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,3).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,6).onSubmit()&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,W.G,[],null,null),i["ɵdid"](3,540672,[["frm",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](5,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](6,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](7,0,null,null,15,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Edit Manager module"])),(t()(),i["ɵeld"](10,0,null,null,3,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,Bu)),i["ɵdid"](12,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers]),(t()(),i["ɵeld"](14,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](16,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](17,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵeld"](18,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Update"])),(t()(),i["ɵeld"](20,0,null,null,2,"button",[["class","btn btn-light"],["routerLink","/mgr-modules"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,21).onClick()&&a),a}),null,null)),i["ɵdid"](21,16384,null,0,St.n,[St.m,St.a,[8,null],i.Renderer2,i.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵted"](-1,null,["Back"]))],(function(t,e){var n=e.component;t(e,3,0,n.mgrModuleForm),t(e,6,0,n.mgrModuleForm),t(e,12,0,i["ɵunv"](e,12,0,i["ɵnov"](e,13).transform(n.moduleOptions))),t(e,17,0,n.mgrModuleForm),t(e,21,0,"/mgr-modules")}),(function(t,e){t(e,1,0,i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending)}))}function Yu(t){return i["ɵvid"](0,[i["ɵpid"](0,ci.a,[]),(t()(),i["ɵand"](16777216,null,null,1,null,Mu)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,xu)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Vu)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.loading&&!n.error),t(e,4,0,n.loading&&n.error),t(e,6,0,!n.loading&&!n.error)}),null)}function Hu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-mgr-module-form",[],null,null,null,Yu,Pu)),i["ɵdid"](1,114688,null,0,Cu,[St.a,St.m,ys.a,uu,gt.a,ia.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Uu=i["ɵccf"]("cd-mgr-module-form",Cu,Hu,{},{},[]),Wu=n("xTzq");let Ku=(()=>{let t=class{constructor(t){this.http=t,this.baseURL="api/cephfs",this.baseUiURL="ui-api/cephfs"}list(){return this.http.get(`${this.baseURL}`)}lsDir(t,e){let n=`${this.baseUiURL}/${t}/ls_dir?depth=2`;return e&&(n+=`&path=${encodeURIComponent(e)}`),this.http.get(n)}getCephfs(t){return this.http.get(`${this.baseURL}/${t}`)}getTabs(t){return this.http.get(`ui-api/cephfs/${t}/tabs`)}getClients(t){return this.http.get(`${this.baseURL}/${t}/clients`)}evictClient(t,e){return this.http.delete(`${this.baseURL}/${t}/client/${e}`)}getMdsCounters(t){return this.http.get(`${this.baseURL}/${t}/mds_counters`)}mkSnapshot(t,e,n){let a=new J.h;return a=a.append("path",e),$.isUndefined(n)||(a=a.append("name",n)),this.http.post(`${this.baseURL}/${t}/mk_snapshot`,null,{params:a})}rmSnapshot(t,e,n){let a=new J.h;return a=a.append("path",e),a=a.append("name",n),this.http.post(`${this.baseURL}/${t}/rm_snapshot`,null,{params:a})}updateQuota(t,e,n){let a=new J.h;return a=a.append("path",e),this.http.post(`${this.baseURL}/${t}/set_quotas`,n,{observe:"response",params:a})}};return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t=Uc.__decorate([Wu.a,Uc.__metadata("design:paramtypes",[J.c])],t),t})();class $u{constructor(t,e,n,a,r,o,i,s){this.authStorageService=t,this.modalService=e,this.cephfsService=n,this.cdDatePipe=a,this.i18n=r,this.actionLabels=o,this.notificationService=i,this.dimlessBinaryPipe=s,this.icons=ut.a,this.loadingIndicator=!1,this.loading={},this.treeOptions={useVirtualScroll:!0,getChildren:t=>this.updateDirectory(t.id),actionMapping:{mouse:{click:this.selectAndShowNode.bind(this),expanderClick:this.selectAndShowNode.bind(this)}}}}selectAndShowNode(t,e,n){Wc.a.TOGGLE_EXPANDED(t,e,n),this.selectNode(e)}selectNode(t){Wc.a.TOGGLE_ACTIVE(void 0,t,void 0),this.selectedDir=this.getDirectory(t),"/"!==t.id&&this.setSettings(t)}ngOnInit(){this.permission=this.authStorageService.getPermissions().cephfs,this.setUpQuotaTable(),this.setUpSnapshotTable()}setUpQuotaTable(){this.quota={columns:[{prop:"row.name",name:this.i18n("Name"),flexGrow:1},{prop:"row.value",name:this.i18n("Value"),sortable:!1,flexGrow:1},{prop:"row.originPath",name:this.i18n("Origin"),sortable:!1,cellTemplate:this.originTmpl,flexGrow:1}],selection:new kr.a,updateSelection:t=>{this.quota.selection=t},tableActions:[{name:this.actionLabels.SET,icon:ut.a.edit,permission:"update",visible:t=>!t.hasSelection||t.first()&&0===t.first().dirValue,click:()=>this.updateQuotaModal()},{name:this.actionLabels.UPDATE,icon:ut.a.edit,permission:"update",visible:t=>t.first()&&t.first().dirValue>0,click:()=>this.updateQuotaModal()},{name:this.actionLabels.UNSET,icon:ut.a.destroy,permission:"update",disable:t=>!t.hasSelection||t.first()&&0===t.first().dirValue,click:()=>this.unsetQuotaModal()}]}}setUpSnapshotTable(){this.snapshot={columns:[{prop:"name",name:this.i18n("Name"),flexGrow:1},{prop:"path",name:this.i18n("Path"),isHidden:!0,flexGrow:2},{prop:"created",name:this.i18n("Created"),flexGrow:1,pipe:this.cdDatePipe}],selection:new kr.a,updateSelection:t=>{this.snapshot.selection=t},tableActions:[{name:this.actionLabels.CREATE,icon:ut.a.add,permission:"create",canBePrimary:t=>!t.hasSelection,click:()=>this.createSnapshot()},{name:this.actionLabels.DELETE,icon:ut.a.destroy,permission:"delete",click:()=>this.deleteSnapshotModal(),canBePrimary:t=>t.hasSelection,disable:t=>!t.hasSelection}]}}ngOnChanges(){this.selectedDir=void 0,this.dirs=[],this.requestedPaths=[],this.nodeIds={},this.id&&(this.setRootNode(),this.firstCall())}setRootNode(){this.nodes=[{name:"/",id:"/",isExpanded:!0}]}firstCall(){setTimeout(()=>{this.getNode("/").loadNodeChildren()},10)}updateDirectory(t){if(this.unsetLoadingIndicator(),this.requestedPaths.includes(t)){if(!0===this.loading[t])return}else this.requestedPaths.push(t);return new Promise(e=>{this.setLoadingIndicator(t,!0),this.cephfsService.lsDir(this.id,t).subscribe(n=>{this.updateTreeStructure(n),this.updateQuotaTable(),this.updateTree(),e(this.getChildren(t)),this.setLoadingIndicator(t,!1)})})}setLoadingIndicator(t,e){this.loading[t]=e,this.unsetLoadingIndicator()}getSubDirectories(t,e=this.dirs){return e.filter(e=>e.parent===t)}getChildren(t){const e=this.getSubTree(t);return $.sortBy(this.getSubDirectories(t),"path").map(t=>this.createNode(t,e))}createNode(t,e){return this.nodeIds[t.path]=t,e||this.getSubTree(t.parent),{name:t.name,id:t.path,hasChildren:this.getSubDirectories(t.path,e).length>0}}getSubTree(t){return this.dirs.filter(e=>e.parent&&e.parent.startsWith(t))}setSettings(t){const e=(t,e)=>t?e?e(t):t:"";this.settings=[this.getQuota(t,"max_files",e),this.getQuota(t,"max_bytes",t=>e(t,t=>this.dimlessBinaryPipe.transform(t)))]}getQuota(t,e,n){const a=t.id;t=this.getOrigin(t,e);const r=this.getDirectory(t),o=r.quotas[e];let i=o,s=r.path;if(t.id===a)if("/"===t.parent.id)i=0;else{const n=this.getDirectory(this.getOrigin(t.parent,e));i=n.quotas[e],s=n.path}return{row:{name:this.i18n("max_bytes"===e?"Max size":"Max files"),value:n(o),originPath:o?r.path:""},quotaKey:e,dirValue:this.nodeIds[a].quotas[e],nextTreeMaximum:{value:i,path:i?s:""}}}getOrigin(t,e){if(t.parent&&"/"!==t.parent.id){const n=this.getQuotaFromTree(t,e),a=this.getOrigin(t.parent,e),r=this.getQuotaFromTree(a,e);return 0===n||0!==r&&r<n?a:t}return t}getQuotaFromTree(t,e){return this.getDirectory(t).quotas[e]}getDirectory(t){return this.nodeIds[t.id]}selectOrigin(t){this.selectNode(this.getNode(t))}getNode(t){return this.treeComponent.treeModel.getNodeById(t)}updateQuotaModal(){const t=this.selectedDir.path,e=this.quota.selection.first(),n=e.nextTreeMaximum,a=e.quotaKey,r=e.dirValue;this.modalService.show(Tr.a,{initialState:{titleText:this.getModalQuotaTitle(0===r?this.actionLabels.SET:this.actionLabels.UPDATE,t),message:n.value?this.i18n("The inherited {{quotaValue}} is the maximum value to be used.",{quotaValue:this.getQuotaValueFromPathMsg(n.value,n.path)}):void 0,fields:[this.getQuotaFormField(e.row.name,a,r,n.value)],submitButtonText:this.i18n("Save"),onSubmit:t=>this.updateQuota(t)}})}getModalQuotaTitle(t,e){return this.i18n("{{action}} CephFS {{quotaName}} quota for '{{path}}'",{action:t,quotaName:this.getQuotaName(),path:e})}getQuotaName(){return this.isBytesQuotaSelected()?this.i18n("size"):this.i18n("files")}isBytesQuotaSelected(){return"max_bytes"===this.quota.selection.first().quotaKey}getQuotaValueFromPathMsg(t,e){return this.i18n("{{quotaName}} quota {{value}} from '{{path}}'",{value:this.isBytesQuotaSelected()?this.dimlessBinaryPipe.transform(t):t,quotaName:this.getQuotaName(),path:e})}getQuotaFormField(t,e,n,a){const r="max_bytes"===e,o=[r?di.a.binaryMin(0):W.B.min(0)];a&&o.push(r?di.a.binaryMax(a):W.B.max(a));const i={type:r?"binary":"number",label:t,name:e,value:n,validators:o,required:!0};return r||(i.errors={min:this.i18n("Value has to be at least {{value}} or more",{value:0}),max:this.i18n("Value has to be at most {{value}} or less",{value:a})}),i}updateQuota(t,e){const n=this.selectedDir.path,a=this.quota.selection.first().quotaKey,r=0===this.selectedDir.quotas[a]?this.actionLabels.SET:0===t[a]?this.actionLabels.UNSET:this.i18n("Updated");this.cephfsService.updateQuota(this.id,n,t).subscribe(()=>{e&&e(),this.notificationService.show(be.a.success,this.getModalQuotaTitle(r,n)),this.forceDirRefresh()})}unsetQuotaModal(){const t=this.selectedDir.path,e=this.quota.selection.first(),n=e.quotaKey,a=e.nextTreeMaximum,r=e.dirValue;this.modalRef=this.modalService.show(ds.a,{initialState:{titleText:this.getModalQuotaTitle(this.actionLabels.UNSET,t),buttonText:this.actionLabels.UNSET,description:this.i18n("{{action}} {{quotaValue}} {{conclusion}}.",{action:this.actionLabels.UNSET,quotaValue:this.getQuotaValueFromPathMsg(r,t),conclusion:a.value>0?this.i18n(a.value>r?"in order to inherit {{quotaValue}}":"which isn't used because of the inheritance of {{quotaValue}}",{quotaValue:this.getQuotaValueFromPathMsg(a.value,a.path)}):this.i18n("in order to have no quota on the directory")}),onSubmit:()=>this.updateQuota({[n]:0},()=>this.modalRef.hide())}})}createSnapshot(){const t=this.selectedDir.path;this.modalService.show(Tr.a,{initialState:{titleText:this.i18n("Create Snapshot"),message:this.i18n("Please enter the name of the snapshot."),fields:[{type:"text",name:"name",value:`${oe().toISOString(!0)}`,required:!0}],submitButtonText:this.i18n("Create Snapshot"),onSubmit:e=>{this.cephfsService.mkSnapshot(this.id,t,e.name).subscribe(e=>{this.notificationService.show(be.a.success,this.i18n('Created snapshot "{{name}}" for "{{path}}"',{name:e,path:t})),this.forceDirRefresh()})}}})}forceDirRefresh(t){if(!t){const e=this.selectedDir;if(!e)throw new Error("This function can only be called without path if an selection was made");t=e.parent?e.parent:e.path}this.getNode(t).loadNodeChildren()}updateTreeStructure(t){const e=(t,e)=>{const n=t.filter(t=>t.parent===e),a=n.map(t=>t.path);return{children:n,paths:a}};$.uniq(t.map(t=>t.parent).sort()).forEach(n=>{const a=e(t,n),r=e(this.dirs,n);r.children.forEach(t=>{a.paths.includes(t.path)||this.removeOldDirectory(t)}),a.children.forEach(t=>{r.paths.includes(t.path)?this.updateExistingDirectory(r.children,t):this.addNewDirectory(t)})})}removeOldDirectory(t){const e=t.path;$.remove(this.dirs,t=>t.path===e),delete this.nodeIds[e],this.updateDirectoriesParentNode(t)}updateDirectoriesParentNode(t){const e=t.parent;if(!e)return;const n=this.getNode(e);if(!n)return;const a=this.getChildren(e);n.data.children=a,n.data.hasChildren=a.length>0,this.treeComponent.treeModel.update()}addNewDirectory(t){this.dirs.push(t),this.nodeIds[t.path]=t,this.updateDirectoriesParentNode(t)}updateExistingDirectory(t,e){const n=t.find(t=>t.path===e.path);Object.assign(n,e)}updateQuotaTable(){const t=this.selectedDir?this.getNode(this.selectedDir.path):void 0;t&&"/"!==t.id&&this.setSettings(t)}updateTree(t=!1){this.loadingIndicator&&!t||(this.treeComponent.treeModel.update(),this.nodes=[...this.nodes],this.treeComponent.sizeChanged())}deleteSnapshotModal(){this.modalRef=this.modalService.show(Fo.a,{initialState:{itemDescription:this.i18n("CephFs Snapshot"),itemNames:this.snapshot.selection.selected.map(t=>t.name),submitAction:()=>this.deleteSnapshot()}})}deleteSnapshot(){const t=this.selectedDir.path;this.snapshot.selection.selected.forEach(e=>{const n=e.name;this.cephfsService.rmSnapshot(this.id,t,n).subscribe(()=>{this.notificationService.show(be.a.success,this.i18n('Deleted snapshot "{{name}}" for "{{path}}"',{name:n,path:t}))})}),this.modalRef.hide(),this.forceDirRefresh()}refreshAllDirectories(){this.loadingIndicator=!0,this.requestedPaths.map(t=>this.forceDirRefresh(t));const t=setInterval(()=>{this.updateTree(!0),this.loadingIndicator||clearInterval(t)},3e3)}unsetLoadingIndicator(){this.loadingIndicator&&(clearTimeout(this.loadingTimeout),this.loadingTimeout=setTimeout(()=>{if(Object.values(this.loading).some(t=>t))return this.unsetLoadingIndicator();this.loadingIndicator=!1,this.updateTree()},3e3))}}var Zu=i["ɵcrt"]({encapsulation:0,styles:[["tree-root .tree-children{overflow:inherit}.quota-origin[_ngcontent-%COMP%]{cursor:pointer;color:#2b99a8}.quota-origin[_ngcontent-%COMP%]:hover{color:#212121}"]],data:{}});function Ju(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](2,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](3,2)],(function(t,e){var n=e.component,a=t(e,3,0,n.icons.spinner,n.icons.spin);t(e,2,0,a)}),null)}function Xu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,7,"tree-root",[],null,[["body","keydown"],["body","mousedown"]],(function(t,e,n){var a=!0;return"body:keydown"===e&&(a=!1!==i["ɵnov"](t,2).onKeydown(n)&&a),"body:mousedown"===e&&(a=!1!==i["ɵnov"](t,2).onMousedown(n)&&a),a}),Bc.b,Bc.a)),i["ɵprd"](131584,null,Vc.a,Vc.a,[]),i["ɵdid"](2,573440,[[1,4]],4,Yc.a,[Vc.a,Hc.a],{nodes:[0,"nodes"],options:[1,"options"]},null),i["ɵqud"](603979776,3,{loadingTemplate:0}),i["ɵqud"](603979776,4,{treeNodeTemplate:0}),i["ɵqud"](603979776,5,{treeNodeWrapperTemplate:0}),i["ɵqud"](603979776,6,{treeNodeFullTemplate:0}),(t()(),i["ɵand"](0,[[3,2],["loadingTemplate",2]],null,0,null,Ju))],(function(t,e){var n=e.component;t(e,2,0,n.nodes,n.treeOptions)}),null)}function Qu(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Quotas"])),(t()(),i["ɵeld"](3,0,null,null,3,"cd-table",[["identifier","quotaKey"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.quota.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](4,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],onlyActionHeader:[2,"onlyActionHeader"],toolHeader:[3,"toolHeader"],footer:[4,"footer"],limit:[5,"limit"],identifier:[6,"identifier"],forceIdentifier:[7,"forceIdentifier"],selectionType:[8,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),i["ɵeld"](5,0,null,0,1,"cd-table-actions",[["class","only-table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](6,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.settings,n.quota.columns,!0,!1,!1,0,"quotaKey",!0,"single"),t(e,6,0,n.permission,n.quota.selection,n.quota.tableActions)}),null)}function tg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,12,"div",[["class","col-sm-8 metadata"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,11,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](3,null,[" "," "])),(t()(),i["ɵeld"](4,0,null,null,8,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Qu)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](7,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Snapshots"])),(t()(),i["ɵeld"](9,0,null,null,3,"cd-table",[["forceIdentifier","true"],["identifier","name"],["selectionType","multiClick"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.snapshot.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](10,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],identifier:[2,"identifier"],forceIdentifier:[3,"forceIdentifier"],selectionType:[4,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),i["ɵeld"](11,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](12,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,6,0,"/"!==n.selectedDir.path),t(e,10,0,n.selectedDir.snapshots,n.snapshot.columns,"name","true","multiClick"),t(e,12,0,n.permission,n.snapshot.selection,n.snapshot.tableActions)}),(function(t,e){t(e,3,0,e.component.selectedDir.path)}))}function eg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","quota-origin"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectOrigin(t.context.value)&&a),a}),null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.context.value)}))}function ng(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{treeComponent:0}),i["ɵqud"](402653184,2,{originTmpl:0}),(t()(),i["ɵeld"](2,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,10,"div",[["class","col-sm-4 pr-0"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,9,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,5,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,4,"button",[["class","btn btn-light pull-right"],["type","button"]],[[2,"disabled",null]],[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.refreshAllDirectories()&&a),a}),null,null)),(t()(),i["ɵeld"](7,0,null,null,3,"i",[],[[2,"fa-spin",null]],null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](9,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](10,2),(t()(),i["ɵeld"](11,0,null,null,2,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Xu)),i["ɵdid"](13,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,tg)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,[[2,2],["origin",2]],null,0,null,eg))],(function(t,e){var n=e.component,a=t(e,10,0,n.icons.large,n.icons.refresh);t(e,9,0,a),t(e,13,0,n.nodes),t(e,15,0,n.selectedDir)}),(function(t,e){var n=e.component;t(e,6,0,n.loadingIndicator),t(e,7,0,n.loadingIndicator)}))}class ag{constructor(){this.lhsCounter="mds_mem.ino",this.rhsCounter="mds_server.handle_client_request",this.chart={datasets:[{label:this.lhsCounter,yAxisID:"LHS",data:[],lineTension:.1},{label:this.rhsCounter,yAxisID:"RHS",data:[],lineTension:.1}],options:{title:{text:"",display:!0},responsive:!0,maintainAspectRatio:!1,legend:{position:"top"},scales:{xAxes:[{position:"top",type:"time",time:{displayFormats:{quarter:"MMM YYYY"}},ticks:{maxRotation:0}}],yAxes:[{id:"LHS",type:"linear",position:"left"},{id:"RHS",type:"linear",position:"right"}]},tooltips:{enabled:!1,mode:"index",intersect:!1,position:"nearest",callbacks:{title:(t,e)=>{let n=0;if(t.length>0){const a=t[0];n=e.datasets[a.datasetIndex].data[a.index].x}return n.toString()}}}},chartType:"line"}}ngOnInit(){$.isUndefined(this.mdsCounter)||(this.setChartTooltip(),this.updateChart())}ngOnChanges(){$.isUndefined(this.mdsCounter)||this.updateChart()}setChartTooltip(){const t=new Xn.a(this.chartCanvas,this.chartTooltip,t=>t.caretX+"px",t=>t.caretY-t.height-23+"px");t.getTitle=t=>oe(t,"x").format("LTS"),t.checkOffset=!0,$.merge(this.chart,{options:{title:{text:this.mdsCounter.name},tooltips:{custom:e=>t.customTooltips(e)}}})}updateChart(){const t=[{data:this.convertTimeSeries(this.mdsCounter[this.lhsCounter])},{data:this.deltaTimeSeries(this.mdsCounter[this.rhsCounter])}];$.merge(this.chart,{datasets:t}),this.chart.datasets=[...this.chart.datasets]}convertTimeSeries(t){const e=[];return $.each(t,t=>{e.push({x:1e3*t[0],y:t[1]})}),e.shift(),e}deltaTimeSeries(t){let e,n=t[0];const a=[];for(e=1;e<t.length;e++){const r=t[e];a.push({x:1e3*r[0],y:r[1]-n[1]}),n=r}return a}}var rg=i["ɵcrt"]({encapsulation:0,styles:[['canvas[_ngcontent-%COMP%]{-moz-user-select:none;user-select:none}.chartjs-tooltip[_ngcontent-%COMP%]{opacity:0;position:absolute;background:rgba(0,0,0,.7);color:#fff;border-radius:3px;transition:all .1s ease;pointer-events:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;transform:translate(-50%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]{transform:translate(-10%,0)}.chartjs-tooltip.transform-left[_ngcontent-%COMP%]::after{left:10%}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]{transform:translate(-90%,0)}.chartjs-tooltip.transform-right[_ngcontent-%COMP%]::after{left:90%}.chartjs-tooltip[_ngcontent-%COMP%]::after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#000 transparent transparent}  .chartjs-tooltip-key{display:inline-block;width:10px;height:10px;margin-right:10px}.chart-container[_ngcontent-%COMP%]{margin:auto auto 20px;cursor:pointer;overflow:visible;position:relative;height:500px;width:100%}']],data:{}});function og(t){return i["ɵvid"](0,[i["ɵqud"](402653184,1,{chartCanvas:0}),i["ɵqud"](402653184,2,{chartTooltip:0}),(t()(),i["ɵeld"](2,0,null,null,4,"div",[["class","chart-container"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,[[1,0],["chartCanvas",1]],null,1,"canvas",[["baseChart",""]],null,null,null,null,null)),i["ɵdid"](4,999424,null,0,Zn.a,[i.ElementRef,Zn.c],{datasets:[0,"datasets"],options:[1,"options"],chartType:[2,"chartType"]},null),(t()(),i["ɵeld"](5,0,[[2,0],["chartTooltip",1]],null,1,"div",[["class","chartjs-tooltip"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,0,"table",[],null,null,null,null,null))],(function(t,e){var n=e.component;t(e,4,0,n.chart.datasets,n.chart.options,n.chart.chartType)}),null)}class ig{constructor(t,e,n){this.dimlessBinary=t,this.dimless=e,this.i18n=n,this.standbys=[],this.objectValues=Object.values}ngOnChanges(){this.setStandbys()}setStandbys(){this.standbys=[{key:this.i18n("Standby daemons"),value:this.data.standbys}]}ngOnInit(){this.columns={ranks:[{prop:"rank",name:this.i18n("Rank")},{prop:"state",name:this.i18n("State")},{prop:"mds",name:this.i18n("Daemon")},{prop:"activity",name:this.i18n("Activity"),cellTemplate:this.activityTmpl},{prop:"dns",name:this.i18n("Dentries"),pipe:this.dimless},{prop:"inos",name:this.i18n("Inodes"),pipe:this.dimless}],pools:[{prop:"pool",name:this.i18n("Pool")},{prop:"type",name:this.i18n("Type")},{prop:"size",name:this.i18n("Size"),pipe:this.dimlessBinary},{name:this.i18n("Usage"),cellTemplate:this.poolUsageTpl,comparator:(t,e,n,a)=>{const r=n.used/n.avail,o=a.used/a.avail;return r===o?0:r>o?1:-1}}]}}trackByFn(t,e){return e.name}}var sg=i["ɵcrt"]({encapsulation:0,styles:[[".progress[_ngcontent-%COMP%]{margin-bottom:0}"]],data:{}});function cg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"cd-cephfs-chart",[],null,null,null,og,rg)),i["ɵdid"](3,638976,null,0,ag,[],{mdsCounter:[0,"mdsCounter"]},null)],(function(t,e){t(e,3,0,e.context.$implicit)}),null)}function lg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-usage-bar",[],null,null,null,ji.b,ji.a)),i["ɵdid"](1,573440,null,0,Fi.a,[],{totalBytes:[0,"totalBytes"],usedBytes:[1,"usedBytes"]},null)],(function(t,e){t(e,1,0,e.context.row.size,e.context.row.used)}),null)}function dg(t){return i["ɵvid"](0,[(t()(),i["ɵted"](0,null,[" ",": "," /s\n"])),i["ɵppd"](1,1)],null,(function(t,e){var n="standby-replay"===e.context.row.state?"Evts":"Reqs",a=i["ɵunv"](e,0,1,t(e,1,0,i["ɵnov"](e.parent,0),e.context.value));t(e,0,0,n,a)}))}function ug(t){return i["ɵvid"](0,[i["ɵpid"](0,ta.a,[ua.a]),i["ɵqud"](402653184,1,{poolUsageTpl:0}),i["ɵqud"](402653184,2,{activityTmpl:0}),(t()(),i["ɵeld"](3,0,null,null,14,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,8,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Ranks"])),(t()(),i["ɵeld"](7,0,null,null,1,"cd-table",[],null,null,null,br.b,br.a)),i["ɵdid"](8,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),i["ɵeld"](9,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Standbys"])),(t()(),i["ɵeld"](11,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](12,638976,null,0,$r.a,[se.a],{data:[0,"data"]},null),(t()(),i["ɵeld"](13,0,null,null,4,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](14,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Pools"])),(t()(),i["ɵeld"](16,0,null,null,1,"cd-table",[],null,null,null,br.b,br.a)),i["ɵdid"](17,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],toolHeader:[2,"toolHeader"]},null),(t()(),i["ɵeld"](18,0,null,null,1,"legend",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["MDS performance counters"])),(t()(),i["ɵand"](16777216,null,null,1,null,cg)),i["ɵdid"](21,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),i["ɵand"](0,[[1,2],["poolUsageTpl",2]],null,0,null,lg)),(t()(),i["ɵand"](0,[[2,2],["activityTmpl",2]],null,0,null,dg))],(function(t,e){var n=e.component;t(e,8,0,n.data.ranks,n.columns.ranks,!1),t(e,12,0,n.standbys),t(e,17,0,n.data.pools,n.columns.pools,!1),t(e,21,0,n.objectValues(n.data.mdsCounters),n.trackByFn)}),null)}var gg=n("C6Ij"),fg=n("AWcq");class pg{constructor(t,e,n,a,r,o){this.cephfsService=t,this.modalService=e,this.notificationService=n,this.authStorageService=a,this.i18n=r,this.actionLabels=o,this.triggerApiUpdate=new i.EventEmitter,this.selection=new kr.a,this.permission=this.authStorageService.getPermissions().cephfs,this.tableActions=[{permission:"update",icon:ut.a.signOut,click:()=>this.evictClientModal(),name:this.actionLabels.EVICT}]}ngOnInit(){this.columns=[{prop:"id",name:this.i18n("id")},{prop:"type",name:this.i18n("type")},{prop:"state",name:this.i18n("state")},{prop:"version",name:this.i18n("version")},{prop:"hostname",name:this.i18n("Host")},{prop:"root",name:this.i18n("root")}]}updateSelection(t){this.selection=t}evictClient(t){this.cephfsService.evictClient(this.id,t).subscribe(()=>{this.triggerApiUpdate.emit(),this.modalRef.hide(),this.notificationService.show(be.a.success,this.i18n('Evicted client "{{clientId}}"',{clientId:t}))},()=>{this.modalRef.content.stopLoadingSpinner()})}evictClientModal(){const t=this.selection.first().id;this.modalRef=this.modalService.show(Fo.a,{initialState:{itemDescription:"client",itemNames:[t],actionDescription:"evict",submitAction:()=>this.evictClient(t)}})}}var mg=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function hg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-view-cache",[],null,null,null,gg.b,gg.a)),i["ɵdid"](1,114688,null,0,fg.a,[],{status:[0,"status"]},null),(t()(),i["ɵeld"](2,0,null,null,3,"cd-table",[["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](3,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],selectionType:[2,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),i["ɵeld"](4,0,null,1,1,"cd-table-actions",[["class","table-actions"]],null,null,null,_r.b,_r.a)),i["ɵdid"](5,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.clients.status),t(e,3,0,n.clients.data,n.columns,"single"),t(e,5,0,n.permission,n.selection,n.tableActions)}),null)}var bg=n("yJti");class yg{constructor(t,e,n){this.ngZone=t,this.authStorageService=e,this.cephfsService=n,this.clients={data:[],status:bg.a.ValueNone},this.details={standbys:"",pools:[],ranks:[],mdsCounters:{},name:""},this.directoriesSelected=!1,this.grafanaPermission=this.authStorageService.getPermissions().grafana}ngOnChanges(){this.selectedItem=this.selection.first(),this.selectedItem?this.selectedItem.id!==this.id&&this.setupSelected(this.selectedItem.id,this.selectedItem.mdsmap.info):this.unsubscribeInterval()}setupSelected(t,e){this.id=t;const n=$.first(Object.values(e));this.grafanaId=n&&n.name,this.details={standbys:"",pools:[],ranks:[],mdsCounters:{},name:""},this.clients={data:[],status:bg.a.ValueNone},this.updateInterval()}updateInterval(){this.unsubscribeInterval(),this.subscribeInterval()}unsubscribeInterval(){this.reloadSubscriber&&this.reloadSubscriber.unsubscribe()}subscribeInterval(){this.ngZone.runOutsideAngular(()=>this.reloadSubscriber=Object(hu.a)(0,5e3).subscribe(()=>this.ngZone.run(()=>this.refresh())))}refresh(){this.cephfsService.getTabs(this.id).subscribe(t=>{this.data=t,this.softRefresh()},()=>{this.clients.status=bg.a.ValueException})}softRefresh(){const t=$.cloneDeep(this.data);this.clients=t.clients,this.details={standbys:t.standbys,pools:t.pools,ranks:t.ranks,mdsCounters:t.mds_counters,name:t.name}}ngOnDestroy(){this.unsubscribeInterval()}}var _g=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Og(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Clients"])),(t()(),i["ɵeld"](2,0,null,null,1,"span",[["class","badge badge-pill badge-tab ml-1"]],null,null,null,null,null)),(t()(),i["ɵted"](3,null,["",""]))],null,(function(t,e){t(e,3,0,e.component.clients.data.length)}))}function vg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-cephfs-directories",[],null,null,null,ng,Zu)),i["ɵdid"](1,638976,null,0,$u,[yt.a,Mt.b,Ku,se.a,ia.a,vt.b,gt.a,Qn.a],{id:[0,"id"]},null)],(function(t,e){t(e,1,0,e.component.id)}),null)}function Cg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"tab",[["heading","Performance Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](1,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](2,0,null,null,1,"cd-grafana",[["grafanaStyle","one"],["uid","tbO9LAiZz"]],null,null,null,pr.b,pr.a)),i["ɵdid"](3,638976,null,0,mr.a,[ft.a,hr.b,$t.a,bt.a,ia.a],{grafanaPath:[0,"grafanaPath"],grafanaStyle:[1,"grafanaStyle"],uid:[2,"uid"]},null)],(function(t,e){var n=e.component;t(e,1,0,"Performance Details"),t(e,3,0,"mds-performance?var-mds_servers=mds."+n.grafanaId,"one","tbO9LAiZz")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).id,i["ɵnov"](e,1).active,i["ɵnov"](e,1).addClass)}))}function Pg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,17,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.softRefresh()&&a),a}),null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab"}),(t()(),i["ɵeld"](4,0,null,null,1,"cd-cephfs-detail",[],null,null,null,ug,sg)),i["ɵdid"](5,638976,null,0,ig,[Qn.a,ta.a,ia.a],{data:[0,"data"]},null),(t()(),i["ɵeld"](6,0,null,0,5,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=!1!==t.component.softRefresh()&&a),a}),null,null)),i["ɵdid"](7,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],null,{selectTab:"selectTab"}),(t()(),i["ɵand"](0,null,null,1,null,Og)),i["ɵdid"](9,16384,null,0,Fn.c,[i.TemplateRef,Fn.b],null,null),(t()(),i["ɵeld"](10,0,null,null,1,"cd-cephfs-clients",[],null,[[null,"triggerApiUpdate"]],(function(t,e,n){var a=!0;return"triggerApiUpdate"===e&&(a=!1!==t.component.refresh()&&a),a}),hg,mg)),i["ɵdid"](11,114688,null,0,pg,[Ku,Mt.b,gt.a,yt.a,ia.a,vt.b],{id:[0,"id"],clients:[1,"clients"]},{triggerApiUpdate:"triggerApiUpdate"}),(t()(),i["ɵeld"](12,0,null,0,3,"tab",[["heading","Directories"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],[[null,"selectTab"]],(function(t,e,n){var a=!0;return"selectTab"===e&&(a=0!=(t.component.directoriesSelected=!0)&&a),a}),null,null)),i["ɵdid"](13,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},{selectTab:"selectTab"}),(t()(),i["ɵand"](16777216,null,null,1,null,vg)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Cg)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.details),t(e,7,0),t(e,11,0,n.id,n.clients),t(e,13,0,"Directories"),t(e,15,0,n.directoriesSelected),t(e,17,0,n.grafanaPermission.read&&n.grafanaId)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,6,0,i["ɵnov"](e,7).id,i["ɵnov"](e,7).active,i["ɵnov"](e,7).addClass),t(e,12,0,i["ɵnov"](e,13).id,i["ɵnov"](e,13).active,i["ɵnov"](e,13).addClass)}))}function Mg(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Pg)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.selectedItem)}),null)}class xg{constructor(t,e,n){this.cephfsService=t,this.cdDatePipe=e,this.i18n=n,this.filesystems=[],this.selection=new kr.a}ngOnInit(){this.columns=[{name:this.i18n("Name"),prop:"mdsmap.fs_name",flexGrow:2},{name:this.i18n("Created"),prop:"mdsmap.created",flexGrow:2,pipe:this.cdDatePipe},{name:this.i18n("Enabled"),prop:"mdsmap.enabled",flexGrow:1,cellTransformation:Sr.a.checkIcon}]}loadFilesystems(t){this.cephfsService.list().subscribe(t=>{this.filesystems=t},()=>{t.error()})}updateSelection(t){this.selection=t}}var wg=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Tg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"fetchData"],[null,"updateSelection"]],(function(t,e,n){var a=!0,r=t.component;return"fetchData"===e&&(a=!1!==r.loadFilesystems(n)&&a),"updateSelection"===e&&(a=!1!==r.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](1,2867200,null,0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{fetchData:"fetchData",updateSelection:"updateSelection"}),(t()(),i["ɵeld"](2,0,null,3,1,"cd-cephfs-tabs",[["cdTableDetail",""]],null,null,null,Mg,_g)),i["ɵdid"](3,704512,null,0,yg,[i.NgZone,yt.a,Ku],{selection:[0,"selection"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.filesystems,n.columns,"flex","id","true","single"),t(e,3,0,n.selection)}),null)}function Sg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-cephfs-list",[],null,null,null,Tg,wg)),i["ɵdid"](1,114688,null,0,xg,[Ku,se.a,ia.a],null,null)],(function(t,e){t(e,1,0)}),null)}var kg=i["ɵccf"]("cd-cephfs-list",xg,Sg,{},{},[]),Ig=n("D4zM"),Ng=n("1nQr");class Rg{constructor(t,e,n,a,r,o,i,s){this.i18n=t,this.actionLabels=e,this.notificationService=n,this.userService=a,this.authStorageService=r,this.formBuilder=o,this.router=i,this.passwordPolicyService=s,this.passwordPolicyHelpText="",this.icons=ut.a,this.action=this.actionLabels.CHANGE,this.resource=this.i18n("password"),this.createForm()}createForm(){this.passwordPolicyService.getHelpText().subscribe(t=>{this.passwordPolicyHelpText=t}),this.userForm=this.formBuilder.group({oldpassword:[null,[W.B.required,di.a.custom("notmatch",()=>this.userForm&&this.userForm.getValue("newpassword")===this.userForm.getValue("oldpassword"))]],newpassword:[null,[W.B.required,di.a.custom("notmatch",()=>this.userForm&&this.userForm.getValue("oldpassword")===this.userForm.getValue("newpassword"))],[di.a.passwordPolicy(this.userService,()=>this.authStorageService.getUsername(),(t,e,n)=>{this.passwordStrengthLevelClass=this.passwordPolicyService.mapCreditsToCssClass(e),this.passwordValuation=$.defaultTo(n,"")})]],confirmnewpassword:[null,[W.B.required]]},{validators:[di.a.match("newpassword","confirmnewpassword")]})}onSubmit(){if(this.userForm.pristine)return;const t=this.authStorageService.getUsername(),e=this.userForm.getValue("oldpassword"),n=this.userForm.getValue("newpassword");this.userService.changePassword(t,e,n).subscribe(()=>this.onPasswordChange(),()=>{this.userForm.setErrors({cdSubmitButton:!0})})}onPasswordChange(){this.notificationService.show(be.a.success,this.i18n('Updated user password"')),this.router.navigate(["/logout"])}}var Ag=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Eg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function Dg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function Lg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-helper",[["class","text-pre"]],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],{class:[0,"class"],html:[1,"html"]},null)],(function(t,e){t(e,1,0,"text-pre",i["ɵinlineInterpolate"](1,"",e.component.passwordPolicyHelpText,""))}),null)}function qg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function jg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function Fg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.passwordValuation)}))}function zg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function Gg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Password confirmation doesn't match the new password."]))],null,null)}function Bg(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),(t()(),i["ɵeld"](2,0,null,null,93,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,92,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,5).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,5).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,8).onSubmit()&&a),a}),null,null)),i["ɵdid"](4,16384,null,0,W.G,[],null,null),i["ɵdid"](5,540672,[["frm",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](7,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](8,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](9,0,null,null,86,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](11,null,[""," ",""])),i["ɵppd"](12,1),i["ɵppd"](13,1),(t()(),i["ɵeld"](14,0,null,null,74,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,22,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](16,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](19,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","oldpassword"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Old password"])),(t()(),i["ɵeld"](21,0,null,0,16,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](22,0,null,null,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](23,0,null,null,7,"input",[["autocomplete","new-password"],["autofocus",""],["class","form-control"],["formControlName","oldpassword"],["id","oldpassword"],["placeholder","Old password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,24)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,24).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,24)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,24)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](24,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](26,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](28,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](29,4210688,null,0,ai.a,[i.ElementRef],{autofocus:[0,"autofocus"]},null),i["ɵdid"](30,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](31,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](32,0,null,null,1,"button",[["cdPasswordButton","oldpassword"],["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,33).onClick()&&a),a}),null,null)),i["ɵdid"](33,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Eg)),i["ɵdid"](35,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Dg)),i["ɵdid"](37,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](38,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](39,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](42,0,null,0,4,"label",[["class","cd-col-form-label"],["for","newpassword"]],null,null,null,null,null)),(t()(),i["ɵeld"](43,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["New password"])),(t()(),i["ɵand"](16777216,null,null,1,null,Lg)),i["ɵdid"](46,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](47,0,null,0,19,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](48,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](49,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","newpassword"],["id","newpassword"],["placeholder","Password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,50)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,50).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,50)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,50)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](50,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](52,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](54,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](55,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](56,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](57,0,null,null,1,"button",[["cdPasswordButton","newpassword"],["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,58).onClick()&&a),a}),null,null)),i["ɵdid"](58,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵeld"](59,0,null,null,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(t()(),i["ɵeld"](60,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,qg)),i["ɵdid"](62,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,jg)),i["ɵdid"](64,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Fg)),i["ɵdid"](66,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](67,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](68,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](71,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","confirmnewpassword"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Confirm new password"])),(t()(),i["ɵeld"](73,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](74,0,null,null,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](75,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","confirmnewpassword"],["id","confirmnewpassword"],["placeholder","Confirm new password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,76)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,76).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,76)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,76)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](76,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](78,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](80,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](81,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](82,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](83,0,null,null,1,"button",[["cdPasswordButton","confirmnewpassword"],["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,84).onClick()&&a),a}),null,null)),i["ɵdid"](84,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,zg)),i["ɵdid"](86,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Gg)),i["ɵdid"](88,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](89,0,null,null,6,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](90,0,null,null,5,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](91,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](92,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](93,0,[" "," "," "])),i["ɵppd"](94,1),i["ɵppd"](95,1)],(function(t,e){var n=e.component;t(e,5,0,n.userForm),t(e,8,0,n.userForm),t(e,16,0),t(e,26,0,"oldpassword"),t(e,29,0,""),t(e,30,0,"oldpassword"),t(e,33,0,"oldpassword"),t(e,35,0,n.userForm.showError("oldpassword",i["ɵnov"](e,5),"required")),t(e,37,0,n.userForm.showError("oldpassword",i["ɵnov"](e,5),"notmatch")),t(e,39,0),t(e,46,0,n.passwordPolicyHelpText.length>0),t(e,52,0,"newpassword"),t(e,55,0,"newpassword"),t(e,58,0,"newpassword"),t(e,62,0,n.userForm.showError("newpassword",i["ɵnov"](e,5),"required")),t(e,64,0,n.userForm.showError("newpassword",i["ɵnov"](e,5),"notmatch")),t(e,66,0,n.userForm.showError("newpassword",i["ɵnov"](e,5),"passwordPolicy")),t(e,68,0),t(e,78,0,"confirmnewpassword"),t(e,81,0,"confirmnewpassword"),t(e,84,0,"confirmnewpassword"),t(e,86,0,n.userForm.showError("confirmnewpassword",i["ɵnov"](e,5),"required")),t(e,88,0,n.userForm.showError("confirmnewpassword",i["ɵnov"](e,5),"match")),t(e,92,0,n.userForm)}),(function(t,e){var n=e.component;t(e,3,0,i["ɵnov"](e,7).ngClassUntouched,i["ɵnov"](e,7).ngClassTouched,i["ɵnov"](e,7).ngClassPristine,i["ɵnov"](e,7).ngClassDirty,i["ɵnov"](e,7).ngClassValid,i["ɵnov"](e,7).ngClassInvalid,i["ɵnov"](e,7).ngClassPending);var a=i["ɵunv"](e,11,0,t(e,12,0,i["ɵnov"](e,0),n.action)),r=i["ɵunv"](e,11,1,t(e,13,0,i["ɵnov"](e,1),n.resource));t(e,11,0,a,r),t(e,15,0,i["ɵnov"](e,16).hasErrors,i["ɵnov"](e,16).hasSuccess),t(e,23,0,i["ɵnov"](e,28).ngClassUntouched,i["ɵnov"](e,28).ngClassTouched,i["ɵnov"](e,28).ngClassPristine,i["ɵnov"](e,28).ngClassDirty,i["ɵnov"](e,28).ngClassValid,i["ɵnov"](e,28).ngClassInvalid,i["ɵnov"](e,28).ngClassPending,i["ɵnov"](e,30).validClass,i["ɵnov"](e,30).invalidClass),t(e,38,0,i["ɵnov"](e,39).hasErrors,i["ɵnov"](e,39).hasSuccess),t(e,49,0,i["ɵnov"](e,54).ngClassUntouched,i["ɵnov"](e,54).ngClassTouched,i["ɵnov"](e,54).ngClassPristine,i["ɵnov"](e,54).ngClassDirty,i["ɵnov"](e,54).ngClassValid,i["ɵnov"](e,54).ngClassInvalid,i["ɵnov"](e,54).ngClassPending,i["ɵnov"](e,55).validClass,i["ɵnov"](e,55).invalidClass),t(e,60,0,i["ɵinlineInterpolate"](1,"",n.passwordStrengthLevelClass,""),i["ɵinlineInterpolate"](1,"",n.passwordValuation,"")),t(e,67,0,i["ɵnov"](e,68).hasErrors,i["ɵnov"](e,68).hasSuccess),t(e,75,0,i["ɵnov"](e,80).ngClassUntouched,i["ɵnov"](e,80).ngClassTouched,i["ɵnov"](e,80).ngClassPristine,i["ɵnov"](e,80).ngClassDirty,i["ɵnov"](e,80).ngClassValid,i["ɵnov"](e,80).ngClassInvalid,i["ɵnov"](e,80).ngClassPending,i["ɵnov"](e,81).validClass,i["ɵnov"](e,81).invalidClass);var o=i["ɵunv"](e,93,0,t(e,94,0,i["ɵnov"](e,0),n.action)),s=i["ɵunv"](e,93,1,t(e,95,0,i["ɵnov"](e,1),n.resource));t(e,93,0,o,s)}))}function Vg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-user-password-form",[],null,null,null,Bg,Ag)),i["ɵdid"](1,49152,null,0,Rg,[ia.a,vt.b,gt.a,Ot.a,yt.a,ys.a,St.m,Ng.a],null,null)],null,null)}var Yg=i["ɵccf"]("cd-user-password-form",Rg,Vg,{},{},[]);class Hg{constructor(t,e,n,a){this.route=t,this.summaryService=e,this.cephReleaseNamePipe=n,this.i18n=a,this.message=this.i18n("The NFS Ganesha service is not configured.")}ngOnInit(){const t=this.summaryService.subscribe(e=>{if(!e)return;const n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/mgr/dashboard/`+"#configuring-nfs-ganesha-in-the-dashboard",setTimeout(()=>{t.unsubscribe()},0)});this.routeParamsSubscribe=this.route.params.subscribe(t=>{this.message=t.message})}ngOnDestroy(){this.routeParamsSubscribe.unsubscribe()}}var Ug=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Wg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,"cd-alert-panel",[["type","info"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"]},null),(t()(),i["ɵted"](2,0,[" ",""])),(t()(),i["ɵeld"](3,0,null,0,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,0,4,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Please consult the "])),(t()(),i["ɵeld"](6,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["documentation"])),(t()(),i["ɵted"](-1,null,[" on how to configure and enable the NFS Ganesha management functionality."]))],(function(t,e){t(e,1,0,"info")}),(function(t,e){var n=e.component;t(e,2,0,n.message),t(e,6,0,i["ɵinlineInterpolate"](1,"",n.docsUrl,""))}))}function Kg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-nfs-501",[],null,null,null,Wg,Ug)),i["ɵdid"](1,245760,null,0,Hg,[St.a,ft.a,bt.a,ia.a],null,null)],(function(t,e){t(e,1,0)}),null)}var $g=i["ɵccf"]("cd-nfs-501",Hg,Kg,{},{},[]);class Zg{constructor(t){this.i18n=t,this.clients=[],this.clientsColumns=[{name:this.i18n("Addresses"),prop:"addresses",flexGrow:2},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:1},{name:this.i18n("Squash"),prop:"squash",flexGrow:1}]}ngOnChanges(){this.selection.hasSelection&&(this.selectedItem=this.selection.first(),this.clients=this.selectedItem.clients,this.data={},this.data[this.i18n("Cluster")]=this.selectedItem.cluster_id,this.data[this.i18n("Daemons")]=this.selectedItem.daemons,this.data[this.i18n("NFS Protocol")]=this.selectedItem.protocols.map(t=>"NFSv"+t),this.data[this.i18n("Pseudo")]=this.selectedItem.pseudo,this.data[this.i18n("Access Type")]=this.selectedItem.access_type,this.data[this.i18n("Squash")]=this.selectedItem.squash,this.data[this.i18n("Transport")]=this.selectedItem.transports,this.data[this.i18n("Path")]=this.selectedItem.path,"CEPH"===this.selectedItem.fsal.name?(this.data[this.i18n("Storage Backend")]=this.i18n("CephFS"),this.data[this.i18n("CephFS User")]=this.selectedItem.fsal.user_id,this.data[this.i18n("CephFS Filesystem")]=this.selectedItem.fsal.fs_name,this.data[this.i18n("Security Label")]=this.selectedItem.fsal.sec_label_xattr):(this.data[this.i18n("Storage Backend")]=this.i18n("Object Gateway"),this.data[this.i18n("Object Gateway User")]=this.selectedItem.fsal.rgw_user_id))}}var Jg=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Xg(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,9,"tabset",[],[[2,"tab-container",null]],null,null,jn.b,jn.a)),i["ɵdid"](1,180224,null,0,Fn.e,[Fn.f,i.Renderer2,i.ElementRef],null,null),(t()(),i["ɵeld"](2,0,null,0,3,"tab",[["heading","Details"]],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](3,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](4,0,null,null,1,"cd-table-key-value",[],null,null,null,Kr.b,Kr.a)),i["ɵdid"](5,638976,null,0,$r.a,[se.a],{data:[0,"data"]},null),(t()(),i["ɵeld"](6,0,null,0,3,"tab",[],[[1,"id",0],[2,"active",null],[2,"tab-pane",null]],null,null,null,null)),i["ɵdid"](7,212992,null,0,Fn.b,[Fn.e,i.ElementRef,i.Renderer2],{heading:[0,"heading"]},null),(t()(),i["ɵeld"](8,0,null,null,1,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","addresses"],["selectionType",""]],null,null,null,br.b,br.a)),i["ɵdid"](9,2867200,[["table",4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},null)],(function(t,e){var n=e.component;t(e,3,0,"Details"),t(e,5,0,n.data),t(e,7,0,i["ɵinlineInterpolate"](1,"Clients (",n.clients.length,")")),t(e,9,0,n.clients,n.clientsColumns,"flex","addresses","true","")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).clazz),t(e,2,0,i["ɵnov"](e,3).id,i["ɵnov"](e,3).active,i["ɵnov"](e,3).addClass),t(e,6,0,i["ɵnov"](e,7).id,i["ɵnov"](e,7).active,i["ɵnov"](e,7).addClass)}))}function Qg(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,Xg)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0,null==n.selection?null:n.selection.hasSingleSelection)}),null)}var tf=n("VTlA");let ef=(()=>{class t{constructor(t,e){this.http=t,this.i18n=e,this.apiPath="api/nfs-ganesha",this.uiApiPath="ui-api/nfs-ganesha",this.nfsAccessType=[{value:"RW",help:this.i18n("Allows all operations")},{value:"RO",help:this.i18n("Allows only operations that do not modify the server")},{value:"MDONLY",help:this.i18n("Does not allow read or write operations, but allows any other operation")},{value:"MDONLY_RO",help:this.i18n("Does not allow read, write, or any operation that modifies file        attributes or directory content")},{value:"NONE",help:this.i18n("Allows no access at all")}],this.nfsFsal=[{value:"CEPH",descr:this.i18n("CephFS")},{value:"RGW",descr:this.i18n("Object Gateway")}],this.nfsSquash=["no_root_squash","root_id_squash","root_squash","all_squash"]}list(){return this.http.get(`${this.apiPath}/export`)}get(t,e){return this.http.get(`${this.apiPath}/export/${t}/${e}`)}create(t){return this.http.post(`${this.apiPath}/export`,t,{observe:"response"})}update(t,e,n){return this.http.put(`${this.apiPath}/export/${t}/${e}`,n,{observe:"response"})}delete(t,e){return this.http.delete(`${this.apiPath}/export/${t}/${e}`,{observe:"response"})}lsDir(t){return this.http.get(`${this.uiApiPath}/lsdir?root_dir=${t}`)}buckets(t){return this.http.get(`${this.uiApiPath}/rgw/buckets?user_id=${t}`)}clients(){return this.http.get(`${this.uiApiPath}/cephx/clients`)}fsals(){return this.http.get(`${this.uiApiPath}/fsals`)}filesystems(){return this.http.get(`${this.uiApiPath}/cephfs/filesystems`)}daemon(){return this.http.get(`${this.apiPath}/daemon`)}start(t){return this.http.put(`${this.apiPath}/service/${t}/start`,null,{observe:"response"})}stop(t){return this.http.put(`${this.apiPath}/service/${t}/stop`,null,{observe:"response"})}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"](ia.a))},token:t,providedIn:me.a}),t})();class nf{constructor(t,e,n,a,r,o,i){this.authStorageService=t,this.i18n=e,this.modalService=n,this.nfsService=a,this.taskListService=r,this.taskWrapper=o,this.actionLabels=i,this.selection=new kr.a,this.isDefaultCluster=!1,this.builders={"nfs/create":t=>({path:t.path,cluster_id:t.cluster_id,fsal:t.fsal})},this.permission=this.authStorageService.getPermissions().nfs;const s=()=>this.selection.first()&&`${encodeURI(this.selection.first().cluster_id)}/${encodeURI(this.selection.first().export_id)}`;this.tableActions=[{permission:"create",icon:ut.a.add,routerLink:()=>"/nfs/create",canBePrimary:t=>!t.hasSingleSelection,name:this.actionLabels.CREATE},{permission:"update",icon:ut.a.edit,routerLink:()=>`/nfs/edit/${s()}`,name:this.actionLabels.EDIT},{permission:"delete",icon:ut.a.destroy,click:()=>this.deleteNfsModal(),name:this.actionLabels.DELETE}]}ngOnInit(){this.columns=[{name:this.i18n("Path"),prop:"path",flexGrow:2,cellTransformation:Sr.a.executing},{name:this.i18n("Pseudo"),prop:"pseudo",flexGrow:2},{name:this.i18n("Cluster"),prop:"cluster_id",flexGrow:2},{name:this.i18n("Daemons"),prop:"daemons",flexGrow:2},{name:this.i18n("Storage Backend"),prop:"fsal",flexGrow:2,cellTemplate:this.nfsFsal},{name:this.i18n("Access Type"),prop:"access_type",flexGrow:2}],this.nfsService.daemon().subscribe(t=>{const e=$(t).map(t=>t.cluster_id).uniq().value();this.isDefaultCluster=1===e.length&&"_default_"===e[0],this.columns[2].isHidden=this.isDefaultCluster,this.table&&this.table.updateColumns(),this.taskListService.init(()=>this.nfsService.list(),t=>this.prepareResponse(t),t=>this.exports=t,()=>this.onFetchError(),this.taskFilter,this.itemFilter,this.builders)},()=>{this.onFetchError()})}ngOnDestroy(){this.summaryDataSubscription&&this.summaryDataSubscription.unsubscribe()}prepareResponse(t){let e=[];return t.forEach(t=>{t.id=`${t.cluster_id}:${t.export_id}`,t.state="LOADING",e=e.concat(t)}),e}onFetchError(){this.table.reset(),this.viewCacheStatus={status:bg.a.ValueException}}itemFilter(t,e){return t.cluster_id===e.metadata.cluster_id&&t.export_id===e.metadata.export_id}taskFilter(t){return["nfs/create","nfs/delete","nfs/edit"].includes(t.name)}updateSelection(t){this.selection=t}deleteNfsModal(){const t=this.selection.first().cluster_id,e=this.selection.first().export_id;this.modalRef=this.modalService.show(Fo.a,{initialState:{itemDescription:this.i18n("NFS export"),itemNames:[`${t}:${e}`],submitActionObservable:()=>this.taskWrapper.wrapTaskAroundCall({task:new zo.a("nfs/delete",{cluster_id:t,export_id:e}),call:this.nfsService.delete(t,e)})}})}}var af=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function rf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CephFS"]))],null,null)}function of(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Object Gateway"]))],null,null)}function sf(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,rf)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,of)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,"CEPH"===e.context.value.name),t(e,3,0,"RGW"===e.context.value.name)}),null)}function cf(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{nfsState:0}),i["ɵqud"](402653184,2,{nfsFsal:0}),i["ɵqud"](402653184,3,{table:0}),(t()(),i["ɵeld"](3,0,null,null,6,"cd-table",[["columnMode","flex"],["forceIdentifier","true"],["identifier","id"],["selectionType","single"]],null,[[null,"updateSelection"]],(function(t,e,n){var a=!0;return"updateSelection"===e&&(a=!1!==t.component.updateSelection(n)&&a),a}),br.b,br.a)),i["ɵdid"](4,2867200,[[3,4],["table",4]],0,yr.a,[i.NgZone,i.ChangeDetectorRef],{data:[0,"data"],columns:[1,"columns"],columnMode:[2,"columnMode"],identifier:[3,"identifier"],forceIdentifier:[4,"forceIdentifier"],selectionType:[5,"selectionType"]},{updateSelection:"updateSelection"}),(t()(),i["ɵeld"](5,0,null,1,2,"div",[["class","table-actions btn-toolbar"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,1,"cd-table-actions",[["class","btn-group"]],null,null,null,_r.b,_r.a)),i["ɵdid"](7,114688,null,0,Or.a,[],{permission:[0,"permission"],selection:[1,"selection"],tableActions:[2,"tableActions"]},null),(t()(),i["ɵeld"](8,0,null,3,1,"cd-nfs-details",[["cdTableDetail",""]],null,null,null,Qg,Jg)),i["ɵdid"](9,573440,null,0,Zg,[ia.a],{selection:[0,"selection"]},null),(t()(),i["ɵand"](0,[[2,2],["nfsFsal",2]],null,0,null,sf))],(function(t,e){var n=e.component;t(e,4,0,n.exports,n.columns,"flex","id","true","single"),t(e,7,0,n.permission,n.selection,n.tableActions),t(e,9,0,n.selection)}),null)}function lf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-nfs-list",[],null,null,null,cf,af)),i["ɵprd"](131584,null,tf.a,tf.a,[ve.a,ft.a]),i["ɵdid"](2,245760,null,0,nf,[yt.a,ia.a,Mt.b,ef,tf.a,Yo.a,vt.b],null,null)],(function(t,e){t(e,2,0)}),null)}var df=i["ɵccf"]("cd-nfs-list",nf,lf,{},{},[]),uf=n("hpHm"),gf=n("IzEk"),ff=n("Kj3r"),pf=n("eIep"),mf=n("7+OI");const hf={"Á":"A","Ă":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ǎ":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Ǟ":"A","Ȧ":"A","Ǡ":"A","Ạ":"A","Ȁ":"A","À":"A","Ả":"A","Ȃ":"A","Ā":"A","Ą":"A","Å":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Ɓ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ć":"C","Č":"C","Ç":"C","Ḉ":"C","Ĉ":"C","Ċ":"C","Ƈ":"C","Ȼ":"C","Ď":"D","Ḑ":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","Ɗ":"D","Ḏ":"D","Dz":"D","Dž":"D","Đ":"D","Ƌ":"D","DZ":"DZ","DŽ":"DZ","É":"E","Ĕ":"E","Ě":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ė":"E","Ẹ":"E","Ȅ":"E","È":"E","Ẻ":"E","Ȇ":"E","Ē":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","Ꝫ":"ET","Ḟ":"F","Ƒ":"F","Ǵ":"G","Ğ":"G","Ǧ":"G","Ģ":"G","Ĝ":"G","Ġ":"G","Ɠ":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Ȟ":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Í":"I","Ĭ":"I","Ǐ":"I","Î":"I","Ï":"I","Ḯ":"I","İ":"I","Ị":"I","Ȉ":"I","Ì":"I","Ỉ":"I","Ȋ":"I","Ī":"I","Į":"I","Ɨ":"I","Ĩ":"I","Ḭ":"I","Ꝺ":"D","Ꝼ":"F","Ᵹ":"G","Ꞃ":"R","Ꞅ":"S","Ꞇ":"T","Ꝭ":"IS","Ĵ":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","Ꝃ":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","Ꝁ":"K","Ꝅ":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ļ":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","Ⱡ":"L","Ꝉ":"L","Ḻ":"L","Ŀ":"L","Ɫ":"L","Lj":"L","Ł":"L","LJ":"LJ","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ń":"N","Ň":"N","Ņ":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Ɲ":"N","Ṉ":"N","Ƞ":"N","Nj":"N","Ñ":"N","NJ":"NJ","Ó":"O","Ŏ":"O","Ǒ":"O","Ô":"O","Ố":"O","Ộ":"O","Ồ":"O","Ổ":"O","Ỗ":"O","Ö":"O","Ȫ":"O","Ȯ":"O","Ȱ":"O","Ọ":"O","Ő":"O","Ȍ":"O","Ò":"O","Ỏ":"O","Ơ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","Ỡ":"O","Ȏ":"O","Ꝋ":"O","Ꝍ":"O","Ō":"O","Ṓ":"O","Ṑ":"O","Ɵ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Ƣ":"OI","Ꝏ":"OO","Ɛ":"E","Ɔ":"O","Ȣ":"OU","Ṕ":"P","Ṗ":"P","Ꝓ":"P","Ƥ":"P","Ꝕ":"P","Ᵽ":"P","Ꝑ":"P","Ꝙ":"Q","Ꝗ":"Q","Ŕ":"R","Ř":"R","Ŗ":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","Ȑ":"R","Ȓ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꜿ":"C","Ǝ":"E","Ś":"S","Ṥ":"S","Š":"S","Ṧ":"S","Ş":"S","Ŝ":"S","Ș":"S","Ṡ":"S","Ṣ":"S","Ṩ":"S","Ť":"T","Ţ":"T","Ṱ":"T","Ț":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","Ṯ":"T","Ʈ":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Ɯ":"M","Ʌ":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ǔ":"U","Û":"U","Ṷ":"U","Ü":"U","Ǘ":"U","Ǚ":"U","Ǜ":"U","Ǖ":"U","Ṳ":"U","Ụ":"U","Ű":"U","Ȕ":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","Ự":"U","Ừ":"U","Ử":"U","Ữ":"U","Ȗ":"U","Ū":"U","Ṻ":"U","Ų":"U","Ů":"U","Ũ":"U","Ṹ":"U","Ṵ":"U","Ꝟ":"V","Ṿ":"V","Ʋ":"V","Ṽ":"V","Ꝡ":"VY","Ẃ":"W","Ŵ":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","Ⱳ":"W","Ẍ":"X","Ẋ":"X","Ý":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","Ỵ":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","Ɏ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","Ẑ":"Z","Ⱬ":"Z","Ż":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Œ":"OE","ᴀ":"A","ᴁ":"AE","ʙ":"B","ᴃ":"B","ᴄ":"C","ᴅ":"D","ᴇ":"E","ꜰ":"F","ɢ":"G","ʛ":"G","ʜ":"H","ɪ":"I","ʁ":"R","ᴊ":"J","ᴋ":"K","ʟ":"L","ᴌ":"L","ᴍ":"M","ɴ":"N","ᴏ":"O","ɶ":"OE","ᴐ":"O","ᴕ":"OU","ᴘ":"P","ʀ":"R","ᴎ":"N","ᴙ":"R","ꜱ":"S","ᴛ":"T","ⱻ":"E","ᴚ":"R","ᴜ":"U","ᴠ":"V","ᴡ":"W","ʏ":"Y","ᴢ":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ǎ":"a","â":"a","ấ":"a","ậ":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ǟ":"a","ȧ":"a","ǡ":"a","ạ":"a","ȁ":"a","à":"a","ả":"a","ȃ":"a","ā":"a","ą":"a","ᶏ":"a","ẚ":"a","å":"a","ǻ":"a","ḁ":"a","ⱥ":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","ɓ":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","ƀ":"b","ƃ":"b","ɵ":"o","ć":"c","č":"c","ç":"c","ḉ":"c","ĉ":"c","ɕ":"c","ċ":"c","ƈ":"c","ȼ":"c","ď":"d","ḑ":"d","ḓ":"d","ȡ":"d","ḋ":"d","ḍ":"d","ɗ":"d","ᶑ":"d","ḏ":"d","ᵭ":"d","ᶁ":"d","đ":"d","ɖ":"d","ƌ":"d","ı":"i","ȷ":"j","ɟ":"j","ʄ":"j","dz":"dz","dž":"dz","é":"e","ĕ":"e","ě":"e","ȩ":"e","ḝ":"e","ê":"e","ế":"e","ệ":"e","ề":"e","ể":"e","ễ":"e","ḙ":"e","ë":"e","ė":"e","ẹ":"e","ȅ":"e","è":"e","ẻ":"e","ȇ":"e","ē":"e","ḗ":"e","ḕ":"e","ⱸ":"e","ę":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ꝫ":"et","ḟ":"f","ƒ":"f","ᵮ":"f","ᶂ":"f","ǵ":"g","ğ":"g","ǧ":"g","ģ":"g","ĝ":"g","ġ":"g","ɠ":"g","ḡ":"g","ᶃ":"g","ǥ":"g","ḫ":"h","ȟ":"h","ḩ":"h","ĥ":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","ƕ":"hv","í":"i","ĭ":"i","ǐ":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","ȋ":"i","ī":"i","į":"i","ᶖ":"i","ɨ":"i","ĩ":"i","ḭ":"i","ꝺ":"d","ꝼ":"f","ᵹ":"g","ꞃ":"r","ꞅ":"s","ꞇ":"t","ꝭ":"is","ǰ":"j","ĵ":"j","ʝ":"j","ɉ":"j","ḱ":"k","ǩ":"k","ķ":"k","ⱪ":"k","ꝃ":"k","ḳ":"k","ƙ":"k","ḵ":"k","ᶄ":"k","ꝁ":"k","ꝅ":"k","ĺ":"l","ƚ":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","ȴ":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ꝉ":"l","ḻ":"l","ŀ":"l","ɫ":"l","ᶅ":"l","ɭ":"l","ł":"l","lj":"lj","ſ":"s","ẜ":"s","ẛ":"s","ẝ":"s","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","ń":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","ṅ":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","ƞ":"n","ᵰ":"n","ᶇ":"n","ɳ":"n","ñ":"n","nj":"nj","ó":"o","ŏ":"o","ǒ":"o","ô":"o","ố":"o","ộ":"o","ồ":"o","ổ":"o","ỗ":"o","ö":"o","ȫ":"o","ȯ":"o","ȱ":"o","ọ":"o","ő":"o","ȍ":"o","ò":"o","ỏ":"o","ơ":"o","ớ":"o","ợ":"o","ờ":"o","ở":"o","ỡ":"o","ȏ":"o","ꝋ":"o","ꝍ":"o","ⱺ":"o","ō":"o","ṓ":"o","ṑ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","õ":"o","ṍ":"o","ṏ":"o","ȭ":"o","ƣ":"oi","ꝏ":"oo","ɛ":"e","ᶓ":"e","ɔ":"o","ᶗ":"o","ȣ":"ou","ṕ":"p","ṗ":"p","ꝓ":"p","ƥ":"p","ᵱ":"p","ᶈ":"p","ꝕ":"p","ᵽ":"p","ꝑ":"p","ꝙ":"q","ʠ":"q","ɋ":"q","ꝗ":"q","ŕ":"r","ř":"r","ŗ":"r","ṙ":"r","ṛ":"r","ṝ":"r","ȑ":"r","ɾ":"r","ᵳ":"r","ȓ":"r","ṟ":"r","ɼ":"r","ᵲ":"r","ᶉ":"r","ɍ":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","ɿ":"r","ś":"s","ṥ":"s","š":"s","ṧ":"s","ş":"s","ŝ":"s","ș":"s","ṡ":"s","ṣ":"s","ṩ":"s","ʂ":"s","ᵴ":"s","ᶊ":"s","ȿ":"s","ɡ":"g","ᴑ":"o","ᴓ":"o","ᴝ":"u","ť":"t","ţ":"t","ṱ":"t","ț":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","ṭ":"t","ƭ":"t","ṯ":"t","ᵵ":"t","ƫ":"t","ʈ":"t","ŧ":"t","ᵺ":"th","ɐ":"a","ᴂ":"ae","ǝ":"e","ᵷ":"g","ɥ":"h","ʮ":"h","ʯ":"h","ᴉ":"i","ʞ":"k","ꞁ":"l","ɯ":"m","ɰ":"m","ᴔ":"oe","ɹ":"r","ɻ":"r","ɺ":"r","ⱹ":"r","ʇ":"t","ʌ":"v","ʍ":"w","ʎ":"y","ꜩ":"tz","ú":"u","ŭ":"u","ǔ":"u","û":"u","ṷ":"u","ü":"u","ǘ":"u","ǚ":"u","ǜ":"u","ǖ":"u","ṳ":"u","ụ":"u","ű":"u","ȕ":"u","ù":"u","ủ":"u","ư":"u","ứ":"u","ự":"u","ừ":"u","ử":"u","ữ":"u","ȗ":"u","ū":"u","ṻ":"u","ų":"u","ᶙ":"u","ů":"u","ũ":"u","ṹ":"u","ṵ":"u","ᵫ":"ue","ꝸ":"um","ⱴ":"v","ꝟ":"v","ṿ":"v","ʋ":"v","ᶌ":"v","ⱱ":"v","ṽ":"v","ꝡ":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","ẁ":"w","ⱳ":"w","ẘ":"w","ẍ":"x","ẋ":"x","ᶍ":"x","ý":"y","ŷ":"y","ÿ":"y","ẏ":"y","ỵ":"y","ỳ":"y","ƴ":"y","ỷ":"y","ỿ":"y","ȳ":"y","ẙ":"y","ɏ":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","ʑ":"z","ⱬ":"z","ż":"z","ẓ":"z","ȥ":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","ʐ":"z","ƶ":"z","ɀ":"z","ff":"ff","ffi":"ffi","ffl":"ffl","fi":"fi","fl":"fl","ij":"ij","œ":"oe","st":"st","ₐ":"a","ₑ":"e","ᵢ":"i","ⱼ":"j","ₒ":"o","ᵣ":"r","ᵤ":"u","ᵥ":"v","ₓ":"x"};class bf{constructor(t,e=t,n=!1){this.item=t,this.value=e,this.header=n}isHeader(){return this.header}toString(){return this.value}}function yf(t){return t?t.replace(/[^A-Za-z0-9\[\] ]/g,(function(t){return hf[t]||t})):""}function _f(t,e=" ",n=""){const a=t.split(new RegExp(`(?:[${n}])([^${n}]+)`+`(?:[${n}])|([^${e}]+)`,"g")),r=[],o=a.length;let i;const s=new RegExp(`[${n}]+`,"g");for(let c=0;c<o;c+=1)i=a[c],i&&i.length&&i!==e&&r.push(i.replace(s,""));return r}function Of(t,e){if(!e||"object"!=typeof t)return t.toString();if(e.endsWith("()"))return t[e.slice(0,e.length-2)]().toString();const n=e.replace(/\[(\w+)\]/g,".$1").replace(/^\./,"").split(".");for(const a of n)a in t&&(t=t[a]);return t?t.toString():""}class vf{constructor(t,e,n){this.positionService=t,this.renderer=e,this.element=n,this.isFocused=!1,this.visibility="hidden",this.height=0,this._matches=[],this.isScrolledIntoView=function(t){const e=this.ulElement.nativeElement.scrollTop,n=e+Number(this.ulElement.nativeElement.offsetHeight),a=t.offsetTop;return a+t.offsetHeight<=n&&a>=e}}get isBs4(){return!Object(uf.d)()}get active(){return this._active}get matches(){return this._matches}set matches(t){if(this.positionService.setOptions({modifiers:{flip:{enabled:this.adaptivePosition}},allowedPositions:["top","bottom"]}),this.positionService.event$.pipe(Object(gf.a)(1)).subscribe(()=>{this.positionService.disable(),this.visibility=this.typeaheadScrollable?"hidden":"visible",this.animationState=this.isAnimated?this.isTopPosition?"animated-up":"animated-down":"unanimated"}),this._matches=t,this.needScrollbar=this.typeaheadScrollable&&this.typeaheadOptionsInScrollableView<this.matches.length,this.typeaheadScrollable&&setTimeout(()=>{this.setScrollableMode()}),this.typeaheadIsFirstItemActive&&this._matches.length>0&&(this._active=this._matches[0],this._active.isHeader()&&this.nextActiveMatch()),this._active&&!this.typeaheadIsFirstItemActive){const t=this._matches.find(t=>t.value===this._active.value);if(t)return void this.selectActive(t);this._active=null}}get isTopPosition(){return this.element.nativeElement.classList.contains("top")}get optionsListTemplate(){return this.parent?this.parent.optionsListTemplate:void 0}get isAnimated(){return!!this.parent&&this.parent.isAnimated}get adaptivePosition(){return!!this.parent&&this.parent.adaptivePosition}get typeaheadScrollable(){return!!this.parent&&this.parent.typeaheadScrollable}get typeaheadOptionsInScrollableView(){return this.parent?this.parent.typeaheadOptionsInScrollableView:5}get typeaheadIsFirstItemActive(){return!this.parent||this.parent.typeaheadIsFirstItemActive}get itemTemplate(){return this.parent?this.parent.typeaheadItemTemplate:void 0}selectActiveMatch(t){this._active&&this.parent.typeaheadSelectFirstItem&&this.selectMatch(this._active),!this.parent.typeaheadSelectFirstItem&&t&&this.selectMatch(this._active)}positionServiceEnable(){this.positionService.enable()}prevActiveMatch(){const t=this.matches.indexOf(this._active);this._active=this.matches[t-1<0?this.matches.length-1:t-1],this._active.isHeader()&&this.prevActiveMatch(),this.typeaheadScrollable&&this.scrollPrevious(t)}nextActiveMatch(){const t=this.matches.indexOf(this._active);this._active=this.matches[t+1>this.matches.length-1?0:t+1],this._active.isHeader()&&this.nextActiveMatch(),this.typeaheadScrollable&&this.scrollNext(t)}selectActive(t){this.isFocused=!0,this._active=t}highlight(t,e){let n,a,r=t.value,o=(this.parent&&this.parent.typeaheadLatinize?yf(r):r).toLowerCase();if("object"==typeof e){const t=e.length;for(let i=0;i<t;i+=1)n=o.indexOf(e[i]),a=e[i].length,n>=0&&a>0&&(r=`${r.substring(0,n)}<strong>${r.substring(n,n+a)}</strong>`+`${r.substring(n+a)}`,o=`${o.substring(0,n)}        ${" ".repeat(a)}         `+`${o.substring(n+a)}`)}else e&&(n=o.indexOf(e),a=e.length,n>=0&&a>0&&(r=`${r.substring(0,n)}<strong>${r.substring(n,n+a)}</strong>`+`${r.substring(n+a)}`));return r}focusLost(){this.isFocused=!1}isActive(t){return this._active===t}selectMatch(t,e){return e&&(e.stopPropagation(),e.preventDefault()),this.parent.changeModel(t),setTimeout(()=>this.parent.typeaheadOnSelect.emit(t),0),!1}setScrollableMode(){if(this.ulElement||(this.ulElement=this.element),this.liElements.first){const t=uf.b.getStyles(this.ulElement.nativeElement),e=uf.b.getStyles(this.liElements.first.nativeElement),n=parseFloat((t["padding-bottom"]?t["padding-bottom"]:"").replace("px","")),a=parseFloat((t["padding-top"]?t["padding-top"]:"0").replace("px","")),r=parseFloat((e.height?e.height:"0").replace("px",""));this.guiHeight=`${this.typeaheadOptionsInScrollableView*r+a+n}px`}this.renderer.setStyle(this.element.nativeElement,"visibility","visible")}scrollPrevious(t){if(0!==t){if(this.liElements){const e=this.liElements.toArray()[t-1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop)}}else this.scrollToBottom()}scrollNext(t){if(t+1>this.matches.length-1)this.scrollToTop();else if(this.liElements){const e=this.liElements.toArray()[t+1];e&&!this.isScrolledIntoView(e.nativeElement)&&(this.ulElement.nativeElement.scrollTop=e.nativeElement.offsetTop-Number(this.ulElement.nativeElement.offsetHeight)+Number(e.nativeElement.offsetHeight))}}scrollToBottom(){this.ulElement.nativeElement.scrollTop=this.ulElement.nativeElement.scrollHeight}scrollToTop(){this.ulElement.nativeElement.scrollTop=0}}class Cf{constructor(){this.adaptivePosition=!1,this.isAnimated=!1,this.hideResultsOnBlur=!0,this.selectFirstItem=!0,this.isFirstItemActive=!0,this.minLength=1}}class Pf{constructor(t,e,n,a,r,o,s){this.changeDetection=n,this.element=a,this.ngControl=r,this.renderer=o,this.typeaheadMinLength=void 0,this.isAnimated=!1,this.typeaheadAsync=void 0,this.typeaheadLatinize=!0,this.typeaheadSingleWords=!0,this.typeaheadWordDelimiters=" ",this.typeaheadPhraseDelimiters="'\"",this.typeaheadScrollable=!1,this.typeaheadOptionsInScrollableView=5,this.typeaheadSelectFirstItem=!0,this.typeaheadIsFirstItemActive=!0,this.typeaheadLoading=new i.EventEmitter,this.typeaheadNoResults=new i.EventEmitter,this.typeaheadOnSelect=new i.EventEmitter,this.typeaheadOnBlur=new i.EventEmitter,this.dropup=!1,this.isActiveItemChanged=!1,this.isTypeaheadOptionsListActive=!1,this.keyUpEventEmitter=new i.EventEmitter,this.placement="bottom-left",this._subscriptions=[],this._typeahead=t.createLoader(a,s,o).provide({provide:Cf,useValue:e}),Object.assign(this,{typeaheadHideResultsOnBlur:e.hideResultsOnBlur,typeaheadSelectFirstItem:e.selectFirstItem,typeaheadIsFirstItemActive:e.isFirstItemActive,typeaheadMinLength:e.minLength,adaptivePosition:e.adaptivePosition,isAnimated:e.isAnimated})}ngOnInit(){this.typeaheadOptionsLimit=this.typeaheadOptionsLimit||20,this.typeaheadMinLength=void 0===this.typeaheadMinLength?1:this.typeaheadMinLength,this.typeaheadWaitMs=this.typeaheadWaitMs||0,void 0!==this.typeaheadAsync||Object(mf.a)(this.typeahead)||(this.typeaheadAsync=!1),Object(mf.a)(this.typeahead)&&(this.typeaheadAsync=!0),this.typeaheadAsync?this.asyncActions():this.syncActions()}onInput(t){const e=void 0!==t.target.value?t.target.value:void 0!==t.target.textContent?t.target.textContent:t.target.innerText;null!=e&&e.trim().length>=this.typeaheadMinLength?(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(t.target.value)):(this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!1),this.hide())}onChange(t){if(this._container){if(27===t.keyCode||"Escape"===t.key)return void this.hide();if(38===t.keyCode||"ArrowUp"===t.key)return this.isActiveItemChanged=!0,void this._container.prevActiveMatch();if(40===t.keyCode||"ArrowDown"===t.key)return this.isActiveItemChanged=!0,void this._container.nextActiveMatch();if(13===t.keyCode||"Enter"===t.key)return void this._container.selectActiveMatch()}}onFocus(){0===this.typeaheadMinLength&&(this.typeaheadLoading.emit(!0),this.keyUpEventEmitter.emit(this.element.nativeElement.value||""))}onBlur(){this._container&&!this._container.isFocused&&this.typeaheadOnBlur.emit(this._container.active)}onKeydown(t){if(this._container&&(9===t.keyCode||"Tab"===t.key||13===t.keyCode||"Enter"===t.key)){if(t.preventDefault(),this.typeaheadSelectFirstItem)return void this._container.selectActiveMatch();this.typeaheadSelectFirstItem||(this._container.selectActiveMatch(this.isActiveItemChanged),this.isActiveItemChanged=!1,this.hide())}}changeModel(t){const e=t.value;this.ngControl.viewToModelUpdate(e),this.ngControl.control.setValue(e),this.changeDetection.markForCheck(),this.hide()}get matches(){return this._matches}show(){this._typeahead.attach(vf).to(this.container).position({attachment:`${this.dropup?"top":"bottom"} start`}).show({typeaheadRef:this,placement:this.placement,animation:!1,dropup:this.dropup}),this._outsideClickListener=this.renderer.listen("document","click",t=>{0===this.typeaheadMinLength&&this.element.nativeElement.contains(t.target)||this.typeaheadHideResultsOnBlur&&!this.element.nativeElement.contains(t.target)&&this.onOutsideClick()}),this._container=this._typeahead.instance,this._container.parent=this;const t=(this.typeaheadLatinize?yf(this.ngControl.control.value):this.ngControl.control.value).toString().toLowerCase();this._container.query=this.typeaheadSingleWords?_f(t,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):t,this._container.matches=this._matches,this.element.nativeElement.focus()}hide(){this._typeahead.isShown&&(this._typeahead.hide(),this._outsideClickListener(),this._container=null)}onOutsideClick(){this._container&&!this._container.isFocused&&this.hide()}ngOnDestroy(){for(const t of this._subscriptions)t.unsubscribe();this._typeahead.dispose()}asyncActions(){this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(ff.a)(this.typeaheadWaitMs),Object(pf.a)(()=>this.typeahead)).subscribe(t=>{this.finalizeAsyncCall(t)}))}syncActions(){this._subscriptions.push(this.keyUpEventEmitter.pipe(Object(ff.a)(this.typeaheadWaitMs),Object(bn.a)(t=>{const e=this.normalizeQuery(t);return Object(mn.a)(this.typeahead).pipe(Object(hn.a)(t=>t&&this.testMatch(this.normalizeOption(t),e)),Object(_n.a)())})).subscribe(t=>{this.finalizeAsyncCall(t)}))}normalizeOption(t){const e=Of(t,this.typeaheadOptionField);return(this.typeaheadLatinize?yf(e):e).toLowerCase()}normalizeQuery(t){let e=(this.typeaheadLatinize?yf(t):t).toString().toLowerCase();return e=this.typeaheadSingleWords?_f(e,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):e,e}testMatch(t,e){let n;if("object"==typeof e){n=e.length;for(let a=0;a<n;a+=1)if(e[a].length>0&&t.indexOf(e[a])<0)return!1;return!0}return t.indexOf(e)>=0}finalizeAsyncCall(t){if(this.prepareMatches(t||[]),this.typeaheadLoading.emit(!1),this.typeaheadNoResults.emit(!this.hasMatches()),this.hasMatches())if(this._container){const t=((this.typeaheadLatinize?yf(this.ngControl.control.value):this.ngControl.control.value)||"").toString().toLowerCase();this._container.query=this.typeaheadSingleWords?_f(t,this.typeaheadWordDelimiters,this.typeaheadPhraseDelimiters):t,this._container.matches=this._matches}else this.show();else this.hide()}prepareMatches(t){const e=t.slice(0,this.typeaheadOptionsLimit);if(this.typeaheadGroupField){let t=[];e.map(t=>Of(t,this.typeaheadGroupField)).filter((t,e,n)=>n.indexOf(t)===e).forEach(n=>{t.push(new bf(n,n,!0)),t=t.concat(e.filter(t=>Of(t,this.typeaheadGroupField)===n).map(t=>new bf(t,Of(t,this.typeaheadOptionField))))}),this._matches=t}else this._matches=e.map(t=>new bf(t,Of(t,this.typeaheadOptionField)))}hasMatches(){return this._matches.length>0}}class Mf{static forRoot(){return{ngModule:Mf,providers:[U.a,Gn.a,Cf]}}}var xf=n("WiuZ"),wf=n("wnGv"),Tf=n("TYzs");class Sf{constructor(t,e){this.nfsService=t,this.i18n=e,this.nfsSquash=this.nfsService.nfsSquash,this.nfsAccessType=this.nfsService.nfsAccessType,this.icons=ut.a}getNoAccessTypeDescr(){return this.form.getValue("access_type")?`${this.form.getValue("access_type")} ${this.i18n("(inherited from global config)")}`:this.i18n("-- Select the access type --")}getAccessTypeHelp(t){const e=this.nfsAccessType.find(e=>this.getValue(t,"access_type")===e.value);return $.isObjectLike(e)?e.help:""}getNoSquashDescr(){return this.form.getValue("squash")?`${this.form.getValue("squash")} (${this.i18n("inherited from global config")})`:this.i18n("-- Select what kind of user id squashing is performed --")}addClient(){const t=this.form.get("clients"),e="(([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).([0-9]{1,3})([/](\\d|[1-2]\\d|3[0-2]))?)",n=new li.a({addresses:new W.i("",{validators:[W.B.required,W.B.pattern(`${e}([ ,]{1,2}${e})*`)]}),access_type:new W.i(""),squash:new W.i("")});return t.push(n),n}removeClient(t){this.form.get("clients").removeAt(t)}showError(t,e,n,a){return this.form.controls.clients.controls[t].showError(e,n,a)}getValue(t,e){return this.form.get("clients").at(t).getValue(e)}resolveModel(t){$.forEach(t,t=>{this.addClient().patchValue(t)})}trackByFn(t){return t}}var kf=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function If(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"span",[["class","no-border text-muted"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Any client can access"]))],null,null)}function Nf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Rf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Must contain one or more comma-separated values"])),(t()(),i["ɵeld"](3,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["For example:"])),(t()(),i["ɵted"](-1,null,[" 192.168.0.10, 192.168.1.0/8 "]))],null,null)}function Af(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function Ef(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.getAccessTypeHelp(e.parent.context.index))}))}function Df(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Lf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,71,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,70,"div",[["class","card"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),i["ɵdid"](2,212992,null,0,W.m,[[3,W.d],[8,null],[8,null]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.d,null,[W.m]),i["ɵdid"](4,16384,null,0,W.s,[[4,W.d]],null,null),(t()(),i["ɵeld"](5,0,null,null,4,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](6,null,[" "," "])),i["ɵppd"](7,1),(t()(),i["ɵeld"](8,0,null,null,1,"span",[["class","float-right clickable"],["tooltip","Remove"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeClient(t.context.index)&&a),a}),null,null)),(t()(),i["ɵted"](-1,null,["×"])),(t()(),i["ɵeld"](10,0,null,null,61,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](12,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](15,0,null,0,1,"label",[["class","cd-col-form-label"],["for","addresses"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Addresses"])),(t()(),i["ɵeld"](17,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,6,"input",[["class","form-control"],["formControlName","addresses"],["id","addresses"],["name","addresses"],["placeholder","192.168.0.10, 192.168.1.0/8"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,19)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](19,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](21,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](23,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](24,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](25,0,null,null,4,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Nf)),i["ɵdid"](27,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Rf)),i["ɵdid"](29,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](30,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](31,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](34,0,null,0,1,"label",[["class","cd-col-form-label"],["for","access_type"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Access Type"])),(t()(),i["ɵeld"](36,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](37,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,38).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,38).onTouched()&&a),a}),null,null)),i["ɵdid"](38,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](40,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](42,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](43,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](44,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](45,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](46,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](47,null,["",""])),(t()(),i["ɵand"](16777216,null,null,1,null,Af)),i["ɵdid"](49,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ef)),i["ɵdid"](51,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](52,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](53,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,7,{FormControlNames:1}),i["ɵqud"](603979776,8,{messagesBlock:0}),(t()(),i["ɵeld"](56,0,null,0,1,"label",[["class","cd-col-form-label"],["for","squash"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Squash"])),(t()(),i["ɵeld"](58,0,null,0,13,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](59,0,null,null,12,"select",[["class","form-control custom-select"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,60).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,60).onTouched()&&a),a}),null,null)),i["ɵdid"](60,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](62,671744,[[7,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](64,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](65,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](66,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](67,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](68,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](69,null,["",""])),(t()(),i["ɵand"](16777216,null,null,1,null,Df)),i["ɵdid"](71,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,2,0,e.context.index),t(e,12,0),t(e,21,0,"addresses"),t(e,24,0,"addresses"),t(e,27,0,n.showError(e.context.index,"addresses",i["ɵnov"](e.parent,8),"required")),t(e,29,0,n.showError(e.context.index,"addresses",i["ɵnov"](e.parent,8),"pattern")),t(e,31,0),t(e,40,0,"access_type"),t(e,43,0,"access_type"),t(e,45,0,""),t(e,46,0,""),t(e,49,0,n.nfsAccessType),t(e,51,0,n.getValue(e.context.index,"access_type")),t(e,53,0),t(e,62,0,"squash"),t(e,65,0,"squash"),t(e,67,0,""),t(e,68,0,""),t(e,71,0,n.nfsSquash)}),(function(t,e){var n=e.component;t(e,1,0,i["ɵnov"](e,4).ngClassUntouched,i["ɵnov"](e,4).ngClassTouched,i["ɵnov"](e,4).ngClassPristine,i["ɵnov"](e,4).ngClassDirty,i["ɵnov"](e,4).ngClassValid,i["ɵnov"](e,4).ngClassInvalid,i["ɵnov"](e,4).ngClassPending);var a=i["ɵunv"](e,6,0,t(e,7,0,i["ɵnov"](e.parent,0),e.context.index+1));t(e,6,0,a),t(e,11,0,i["ɵnov"](e,12).hasErrors,i["ɵnov"](e,12).hasSuccess),t(e,18,0,i["ɵnov"](e,23).ngClassUntouched,i["ɵnov"](e,23).ngClassTouched,i["ɵnov"](e,23).ngClassPristine,i["ɵnov"](e,23).ngClassDirty,i["ɵnov"](e,23).ngClassValid,i["ɵnov"](e,23).ngClassInvalid,i["ɵnov"](e,23).ngClassPending,i["ɵnov"](e,24).validClass,i["ɵnov"](e,24).invalidClass),t(e,30,0,i["ɵnov"](e,31).hasErrors,i["ɵnov"](e,31).hasSuccess),t(e,37,0,i["ɵnov"](e,42).ngClassUntouched,i["ɵnov"](e,42).ngClassTouched,i["ɵnov"](e,42).ngClassPristine,i["ɵnov"](e,42).ngClassDirty,i["ɵnov"](e,42).ngClassValid,i["ɵnov"](e,42).ngClassInvalid,i["ɵnov"](e,42).ngClassPending,i["ɵnov"](e,43).validClass,i["ɵnov"](e,43).invalidClass),t(e,47,0,n.getNoAccessTypeDescr()),t(e,52,0,i["ɵnov"](e,53).hasErrors,i["ɵnov"](e,53).hasSuccess),t(e,59,0,i["ɵnov"](e,64).ngClassUntouched,i["ɵnov"](e,64).ngClassTouched,i["ɵnov"](e,64).ngClassPristine,i["ɵnov"](e,64).ngClassDirty,i["ɵnov"](e,64).ngClassValid,i["ɵnov"](e,64).ngClassInvalid,i["ɵnov"](e,64).ngClassPending,i["ɵnov"](e,65).validClass,i["ɵnov"](e,65).invalidClass),t(e,69,0,n.getNoSquashDescr())}))}function qf(t){return i["ɵvid"](0,[i["ɵpid"](0,Tf.a,[]),(t()(),i["ɵeld"](1,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](2,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](5,0,null,0,1,"label",[["class","cd-col-form-label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Clients"])),(t()(),i["ɵeld"](7,0,null,0,22,"div",[["class","cd-col-form-input"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,8).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,11).onSubmit()&&a),a}),null,null)),i["ɵdid"](8,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](10,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](11,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,If)),i["ɵdid"](13,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](14,0,null,null,5,null,null,null,null,null,null,null)),i["ɵdid"](15,212992,null,0,W.g,[[3,W.d],[8,null],[8,null]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.d,null,[W.g]),i["ɵdid"](17,16384,null,0,W.s,[[4,W.d]],null,null),(t()(),i["ɵand"](16777216,null,null,1,null,Lf)),i["ɵdid"](19,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"],ngForTrackBy:[1,"ngForTrackBy"]},null),(t()(),i["ɵeld"](20,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](21,0,null,null,8,"div",[["class","col-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](22,0,null,null,7,"div",[["class","float-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](23,0,null,null,6,"button",[["class","btn btn-light "]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.addClient()&&a),a}),null,null)),(t()(),i["ɵeld"](24,0,null,null,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](26,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](27,1),(t()(),i["ɵeld"](28,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Add clients"]))],(function(t,e){var n=e.component;t(e,2,0),t(e,8,0,n.form),t(e,11,0,n.form),t(e,13,0,0===n.form.get("clients").value.length),t(e,15,0,"clients"),t(e,19,0,n.form.get("clients").value,n.trackByFn);var a=t(e,27,0,n.icons.add);t(e,26,0,a)}),(function(t,e){t(e,1,0,i["ɵnov"](e,2).hasErrors,i["ɵnov"](e,2).hasSuccess),t(e,7,0,i["ɵnov"](e,10).ngClassUntouched,i["ɵnov"](e,10).ngClassTouched,i["ɵnov"](e,10).ngClassPristine,i["ɵnov"](e,10).ngClassDirty,i["ɵnov"](e,10).ngClassValid,i["ɵnov"](e,10).ngClassInvalid,i["ɵnov"](e,10).ngClassPending)}))}var jf=n("P8lu"),Ff=n("DNAf"),zf=n("a96k");class Gf{constructor(t,e,n,a,r,o,i,s,c,l,d,u){this.authStorageService=t,this.nfsService=e,this.route=n,this.router=a,this.rgwUserService=r,this.formBuilder=o,this.summaryservice=i,this.cephReleaseNamePipe=s,this.taskWrapper=c,this.cdRef=l,this.i18n=d,this.actionLabels=u,this.isEdit=!1,this.cluster_id=null,this.export_id=null,this.isNewDirectory=!1,this.isNewBucket=!1,this.isDefaultCluster=!1,this.allClusters=null,this.allDaemons={},this.icons=ut.a,this.allFsals=[],this.allRgwUsers=[],this.allCephxClients=null,this.allFsNames=null,this.defaultAccessType={RGW:"RO"},this.nfsAccessType=this.nfsService.nfsAccessType,this.nfsSquash=this.nfsService.nfsSquash,this.daemonsSelections=[],this.daemonsMessages=new Ff.a({noOptions:this.i18n("There are no daemons available.")},this.i18n),this.pathDataSource=pn.a.create(t=>{t.next(this.nfsForm.getValue("path"))}).pipe(Object(bn.a)(t=>this.getPathTypeahead(t)),Object(pe.a)(t=>t.paths)),this.bucketDataSource=pn.a.create(t=>{t.next(this.nfsForm.getValue("path"))}).pipe(Object(bn.a)(t=>this.getBucketTypeahead(t))),this.permission=this.authStorageService.getPermissions().pool,this.resource=this.i18n("NFS export"),this.createForm()}ngOnInit(){const t=[this.nfsService.daemon(),this.nfsService.fsals(),this.nfsService.clients(),this.nfsService.filesystems()];this.router.url.startsWith("/nfs/edit")&&(this.isEdit=!0),this.isEdit?(this.action=this.actionLabels.EDIT,this.route.params.subscribe(e=>{this.cluster_id=decodeURIComponent(e.cluster_id),this.export_id=decodeURIComponent(e.export_id),t.push(this.nfsService.get(this.cluster_id,this.export_id)),this.getData(t)})):(this.action=this.actionLabels.CREATE,this.getData(t));const e=this.summaryservice.getCurrentSummary(),n=this.cephReleaseNamePipe.transform(e.version);this.docsUrl=`http://docs.ceph.com/docs/${n}/radosgw/nfs/`}getData(t){Object(ls.a)(t).subscribe(t=>{this.resolveDaemons(t[0]),this.resolvefsals(t[1]),this.resolveClients(t[2]),this.resolveFilesystems(t[3]),t[4]&&this.resolveModel(t[4])})}createForm(){this.nfsForm=new li.a({cluster_id:new W.i("",{validators:[W.B.required]}),daemons:new W.i([]),fsal:new li.a({name:new W.i("",{validators:[W.B.required]}),user_id:new W.i("",{validators:[di.a.requiredIf({name:"CEPH"})]}),fs_name:new W.i("",{validators:[di.a.requiredIf({name:"CEPH"})]}),rgw_user_id:new W.i("",{validators:[di.a.requiredIf({name:"RGW"})]})}),path:new W.i(""),protocolNfsv3:new W.i(!0,{validators:[di.a.requiredIf({protocolNfsv4:!1},t=>!t)]}),protocolNfsv4:new W.i(!0,{validators:[di.a.requiredIf({protocolNfsv3:!1},t=>!t)]}),tag:new W.i(""),pseudo:new W.i("",{validators:[di.a.requiredIf({protocolNfsv4:!0}),W.B.pattern("^/[^><|&()]*$")]}),access_type:new W.i("RW",{validators:[W.B.required]}),squash:new W.i("",{validators:[W.B.required]}),transportUDP:new W.i(!0,{validators:[di.a.requiredIf({transportTCP:!1},t=>!t)]}),transportTCP:new W.i(!0,{validators:[di.a.requiredIf({transportUDP:!1},t=>!t)]}),clients:this.formBuilder.array([]),security_label:new W.i(!1),sec_label_xattr:new W.i("security.selinux",di.a.requiredIf({security_label:!0,"fsal.name":"CEPH"}))})}resolveModel(t){"CEPH"===t.fsal.name&&(t.sec_label_xattr=t.fsal.sec_label_xattr),this.daemonsSelections=$.map(this.allDaemons[t.cluster_id],e=>new zf.a(-1!==t.daemons.indexOf(e),e,"")),this.daemonsSelections=[...this.daemonsSelections],t.protocolNfsv3=-1!==t.protocols.indexOf(3),t.protocolNfsv4=-1!==t.protocols.indexOf(4),delete t.protocols,t.transportTCP=-1!==t.transports.indexOf("TCP"),t.transportUDP=-1!==t.transports.indexOf("UDP"),delete t.transports,t.clients.forEach(t=>{let e="";t.addresses.forEach(t=>{e+=t+", "}),e.length>=2&&(e=e.substring(0,e.length-2)),t.addresses=e}),this.nfsForm.patchValue(t),this.setPathValidation(),this.nfsClients.resolveModel(t.clients)}resolveDaemons(t){t=$.sortBy(t,["daemon_id"]),this.allClusters=$(t).map(t=>t.cluster_id).sortedUniq().value(),$.forEach(this.allClusters,t=>{this.allDaemons[t]=[]}),$.forEach(t,t=>{this.allDaemons[t.cluster_id].push(t.daemon_id)});const e=$.isArray(this.allClusters)&&1===this.allClusters.length;this.isDefaultCluster=e&&"_default_"===this.allClusters[0],e&&(this.nfsForm.patchValue({cluster_id:this.allClusters[0]}),this.onClusterChange())}resolvefsals(t){t.forEach(t=>{const e=this.nfsService.nfsFsal.find(e=>t===e.value);$.isObjectLike(e)&&(this.allFsals.push(e),"RGW"===e.value&&this.rgwUserService.list().subscribe(t=>{t.forEach(t=>{0===t.suspended&&t.keys.length>0&&this.allRgwUsers.push(t.user_id)})}))}),1===this.allFsals.length&&$.isUndefined(this.nfsForm.getValue("fsal"))&&this.nfsForm.patchValue({fsal:this.allFsals[0]})}resolveClients(t){this.allCephxClients=t}resolveFilesystems(t){this.allFsNames=t,1===t.length&&this.nfsForm.patchValue({fsal:{fs_name:t[0].name}})}fsalChangeHandler(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo(),access_type:this._updateAccessType()}),this.setPathValidation(),this.cdRef.detectChanges()}accessTypeChangeHandler(){const t=this.nfsForm.getValue("name"),e=this.nfsForm.getValue("access_type");this.defaultAccessType[t]=e}setPathValidation(){"RGW"===this.nfsForm.getValue("name")?this.nfsForm.get("path").setValidators([W.B.required,W.B.pattern("^(/|[^/><|&()#?]+)$")]):this.nfsForm.get("path").setValidators([W.B.required,W.B.pattern("^/[^><|&()?]*$")])}rgwUserIdChangeHandler(){this.nfsForm.patchValue({pseudo:this._generatePseudo()})}getAccessTypeHelp(t){const e=this.nfsAccessType.find(e=>{if(t===e.value)return e});return $.isObjectLike(e)?e.help:""}getId(){return $.isString(this.nfsForm.getValue("cluster_id"))&&$.isString(this.nfsForm.getValue("path"))?this.nfsForm.getValue("cluster_id")+":"+this.nfsForm.getValue("path"):""}getPathTypeahead(t){return $.isString(t)&&"/"!==t?this.nfsService.lsDir(t):Object(fn.a)([])}pathChangeHandler(){this.nfsForm.patchValue({pseudo:this._generatePseudo()});const t=this.nfsForm.getValue("path");this.getPathTypeahead(t).subscribe(e=>{this.isNewDirectory="/"!==t&&-1===e.paths.indexOf(t)})}bucketChangeHandler(){this.nfsForm.patchValue({tag:this._generateTag(),pseudo:this._generatePseudo()});const t=this.nfsForm.getValue("path");this.getBucketTypeahead(t).subscribe(e=>{this.isNewBucket=""!==t&&-1===e.indexOf(t)})}getBucketTypeahead(t){const e=this.nfsForm.getValue("rgw_user_id");return $.isString(e)&&$.isString(t)&&"/"!==t&&""!==t?this.nfsService.buckets(e):Object(fn.a)([])}_generateTag(){let t=this.nfsForm.getValue("tag");return this.nfsForm.get("tag").dirty||(t=void 0,"RGW"===this.nfsForm.getValue("fsal")&&(t=this.nfsForm.getValue("path"))),t}_generatePseudo(){let t=this.nfsForm.getValue("pseudo");return this.nfsForm.get("pseudo")&&!this.nfsForm.get("pseudo").dirty&&(t=void 0,"CEPH"===this.nfsForm.getValue("fsal")?(t="/cephfs",$.isString(this.nfsForm.getValue("path"))&&(t+=this.nfsForm.getValue("path"))):"RGW"===this.nfsForm.getValue("fsal")&&$.isString(this.nfsForm.getValue("rgw_user_id"))&&(t="/"+this.nfsForm.getValue("rgw_user_id"),$.isString(this.nfsForm.getValue("path"))&&(t+="/"+this.nfsForm.getValue("path")))),t}_updateAccessType(){const t=this.nfsForm.getValue("name");let e=this.defaultAccessType[t];return e||(e="RW"),e}onClusterChange(){const t=this.nfsForm.getValue("cluster_id");this.daemonsSelections=$.map(this.allDaemons[t],t=>new zf.a(!1,t,"")),this.daemonsSelections=[...this.daemonsSelections],this.nfsForm.patchValue({daemons:[]})}removeDaemon(t,e){this.daemonsSelections.forEach(t=>{t.name===e&&(t.selected=!1)});const n=this.nfsForm.get("daemons");return n.value.splice(t,1),n.setValue(n.value),!1}onDaemonSelection(){this.nfsForm.get("daemons").setValue(this.nfsForm.getValue("daemons"))}submitAction(){let t;const e=this._buildRequest();t=this.taskWrapper.wrapTaskAroundCall(this.isEdit?{task:new zo.a("nfs/edit",{cluster_id:this.cluster_id,export_id:this.export_id}),call:this.nfsService.update(this.cluster_id,this.export_id,e)}:{task:new zo.a("nfs/create",{path:e.path,fsal:e.fsal,cluster_id:e.cluster_id}),call:this.nfsService.create(e)}),t.subscribe(void 0,()=>this.nfsForm.setErrors({cdSubmitButton:!0}),()=>this.router.navigate(["/nfs"]))}_buildRequest(){const t=$.cloneDeep(this.nfsForm.value);return($.isUndefined(t.tag)||""===t.tag)&&(t.tag=null),this.isEdit&&(t.export_id=this.export_id),"CEPH"===t.fsal.name?delete t.fsal.rgw_user_id:(delete t.fsal.fs_name,delete t.fsal.user_id),t.protocols=[],t.protocolNfsv3?t.protocols.push(3):t.tag=null,delete t.protocolNfsv3,t.protocolNfsv4?t.protocols.push(4):t.pseudo=null,delete t.protocolNfsv4,t.transports=[],t.transportTCP&&t.transports.push("TCP"),delete t.transportTCP,t.transportUDP&&t.transports.push("UDP"),delete t.transportUDP,t.clients.forEach(e=>{e.addresses=$.isString(e.addresses)?$(e.addresses).split(/[ ,]+/).uniq().filter(t=>""!==t).value():[],e.squash||(e.squash=t.squash),e.access_type||(e.access_type=t.access_type)}),t.fsal.sec_label_xattr=!1===t.security_label||"RGW"===t.fsal.name?null:t.sec_label_xattr,delete t.sec_label_xattr,t}}var Bf=i["ɵcrt"]({encapsulation:0,styles:[[".cd-mb[_ngcontent-%COMP%]{margin-bottom:10px}"]],data:{}});function Vf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Yf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No cluster available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Hf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the cluster --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Uf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Wf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Kf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,2,{FormControlNames:1}),i["ɵqud"](603979776,3,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","cluster_id"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Cluster"])),(t()(),i["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","cluster_id"],["id","cluster_id"],["name","cluster_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.onClusterChange()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,[[2,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Vf)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Yf)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Hf)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Uf)),i["ɵdid"](21,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Wf)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"cluster_id"),t(e,13,0,"cluster_id"),t(e,15,0,null===n.allClusters),t(e,17,0,null!==n.allClusters&&0===n.allClusters.length),t(e,19,0,null!==n.allClusters&&n.allClusters.length>0),t(e,21,0,n.allClusters),t(e,23,0,n.nfsForm.showError("cluster_id",i["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function $f(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,8,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,7,"div",[["class","input-group cd-mb"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,0,"input",[["class","cd-form-control"],["disabled",""],["type","text"]],[[8,"value",0]],null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,5,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,4,"button",[["class","btn btn-light"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.removeDaemon(t.context.index,t.context.$implicit)&&a),a}),null,null)),(t()(),i["ɵeld"](5,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](7,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](8,1)],(function(t,e){var n=t(e,8,0,e.component.icons.destroy);t(e,7,0,n)}),(function(t,e){t(e,2,0,e.context.$implicit)}))}function Zf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Jf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No data pools available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Xf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the storage backend --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Qf(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.descr)}))}function tp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function ep(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function np(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No users available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function ap(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the object gateway user --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function rp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function op(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function ip(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,8,{FormControlNames:1}),i["ɵqud"](603979776,9,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","rgw_user_id"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Object Gateway User"])),(t()(),i["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","rgw_user_id"],["id","rgw_user_id"],["name","rgw_user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,[[8,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ep)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,np)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ap)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,rp)),i["ɵdid"](21,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,op)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"rgw_user_id"),t(e,13,0,"rgw_user_id"),t(e,15,0,null===n.allRgwUsers),t(e,17,0,null!==n.allRgwUsers&&0===n.allRgwUsers.length),t(e,19,0,null!==n.allRgwUsers&&n.allRgwUsers.length>0),t(e,21,0,n.allRgwUsers),t(e,23,0,n.nfsForm.showError("rgw_user_id",i["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function sp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function cp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No clients available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function lp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the cephx client --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function dp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function up(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function gp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,10,{FormControlNames:1}),i["ɵqud"](603979776,11,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","user_id"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CephFS User ID"])),(t()(),i["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","user_id"],["id","user_id"],["name","user_id"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,[[10,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,sp)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,cp)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,lp)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,dp)),i["ɵdid"](21,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,up)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"user_id"),t(e,13,0,"user_id"),t(e,15,0,null===n.allCephxClients),t(e,17,0,null!==n.allCephxClients&&0===n.allCephxClients.length),t(e,19,0,null!==n.allCephxClients&&n.allCephxClients.length>0),t(e,21,0,n.allCephxClients),t(e,23,0,n.nfsForm.showError("user_id",i["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function fp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function pp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No CephFS filesystem available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function mp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the CephFS filesystem --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function hp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)}),(function(t,e){t(e,3,0,e.context.$implicit.name)}))}function bp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function yp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,12,{FormControlNames:1}),i["ɵqud"](603979776,13,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","fs_name"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CephFS Name"])),(t()(),i["ɵeld"](6,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","fs_name"],["id","fs_name"],["name","fs_name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,8).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"change"===e&&(a=!1!==r.rgwUserIdChangeHandler()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](10,671744,[[12,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,fp)),i["ɵdid"](15,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,pp)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,mp)),i["ɵdid"](19,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,hp)),i["ɵdid"](21,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,bp)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"fs_name"),t(e,13,0,"fs_name"),t(e,15,0,null===n.allFsNames),t(e,17,0,null!==n.allFsNames&&0===n.allFsNames.length),t(e,19,0,null!==n.allFsNames&&n.allFsNames.length>0),t(e,21,0,n.allFsNames),t(e,23,0,n.nfsForm.showError("fs_name",i["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,13).validClass,i["ɵnov"](e,13).invalidClass)}))}function _p(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"input",[["class","form-control"],["formControlName","sec_label_xattr"],["id","sec_label_xattr"],["name","sec_label_xattr"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,1)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,1).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,1)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,1)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](1,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](3,671744,[[14,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](5,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](6,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,3,0,"sec_label_xattr"),t(e,6,0,"sec_label_xattr")}),(function(t,e){t(e,0,0,i["ɵnov"](e,5).ngClassUntouched,i["ɵnov"](e,5).ngClassTouched,i["ɵnov"](e,5).ngClassPristine,i["ɵnov"](e,5).ngClassDirty,i["ɵnov"](e,5).ngClassValid,i["ɵnov"](e,5).ngClassInvalid,i["ɵnov"](e,5).ngClassPending,i["ɵnov"](e,6).validClass,i["ɵnov"](e,6).invalidClass)}))}function Op(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function vp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,24,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,14,{FormControlNames:1}),i["ɵqud"](603979776,15,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,4,"label",[["class","cd-col-form-label"],["for","security_label"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](6,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{klass:[0,"klass"],ngClass:[1,"ngClass"]},null),i["ɵpod"](7,{required:0}),(t()(),i["ɵted"](-1,null,["Security Label"])),(t()(),i["ɵeld"](9,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","security_label"],["id","security_label"],["name","security_label"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,12).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,12).onTouched()&&a),a}),null,null)),i["ɵdid"](12,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](14,671744,[[14,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](16,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](17,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](18,0,null,null,1,"label",[["class","custom-control-label"],["for","security_label"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Enable security label"])),(t()(),i["ɵeld"](20,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,_p)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Op)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0);var a=t(e,7,0,n.nfsForm.getValue("security_label"));t(e,6,0,"cd-col-form-label",a),t(e,14,0,"security_label"),t(e,17,0,"security_label"),t(e,22,0,n.nfsForm.getValue("security_label")),t(e,24,0,n.nfsForm.showError("sec_label_xattr",i["ɵnov"](e.parent,6),"required"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,11,0,i["ɵnov"](e,16).ngClassUntouched,i["ɵnov"](e,16).ngClassTouched,i["ɵnov"](e,16).ngClassPristine,i["ɵnov"](e,16).ngClassDirty,i["ɵnov"](e,16).ngClassValid,i["ɵnov"](e,16).ngClassInvalid,i["ɵnov"](e,16).ngClassPending,i["ɵnov"](e,17).validClass,i["ɵnov"](e,17).invalidClass)}))}function Cp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Pp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Path need to start with a '/' and can be followed by a word"]))],null,null)}function Mp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["New directory will be created"]))],null,null)}function xp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,16,{FormControlNames:1}),i["ɵqud"](603979776,17,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","path"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CephFS Path"])),(t()(),i["ɵeld"](6,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,13).onInput(n)&&a),"keyup"===e&&(a=!1!==i["ɵnov"](t,13).onChange(n)&&a),"click"===e&&(a=!1!==i["ɵnov"](t,13).onFocus()&&a),"focus"===e&&(a=!1!==i["ɵnov"](t,13).onFocus()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,13).onBlur()&&a),"keydown"===e&&(a=!1!==i["ɵnov"](t,13).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.pathChangeHandler()&&a),"blur"===e&&(a=!1!==r.pathChangeHandler()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[16,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,212992,null,0,Pf,[U.a,Cf,i.ChangeDetectorRef,i.ElementRef,W.q,i.Renderer2,i.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),i["ɵdid"](14,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Cp)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Pp)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Mp)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"path"),t(e,13,0,n.pathDataSource),t(e,14,0,"path"),t(e,16,0,n.nfsForm.showError("path",i["ɵnov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",i["ɵnov"](e.parent,6),"pattern")),t(e,20,0,n.isNewDirectory&&!n.nfsForm.showError("path",i["ɵnov"](e.parent,6)))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,14).validClass,i["ɵnov"](e,14).invalidClass)}))}function wp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Tp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Path can only be a single '/' or a word"]))],null,null)}function Sp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["New bucket will be created"]))],null,null)}function kp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,20,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,18,{FormControlNames:1}),i["ɵqud"](603979776,19,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","path"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Path"])),(t()(),i["ɵeld"](6,0,null,0,14,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](7,16777216,null,null,7,"input",[["class","form-control"],["formControlName","path"],["id","path"],["name","path"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"typeaheadOnSelect"],[null,"blur"],[null,"input"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,8)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,8).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,8)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,8)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,13).onInput(n)&&a),"keyup"===e&&(a=!1!==i["ɵnov"](t,13).onChange(n)&&a),"click"===e&&(a=!1!==i["ɵnov"](t,13).onFocus()&&a),"focus"===e&&(a=!1!==i["ɵnov"](t,13).onFocus()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,13).onBlur()&&a),"keydown"===e&&(a=!1!==i["ɵnov"](t,13).onKeydown(n)&&a),"typeaheadOnSelect"===e&&(a=!1!==r.bucketChangeHandler()&&a),"blur"===e&&(a=!1!==r.bucketChangeHandler()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](10,671744,[[18,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](12,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](13,212992,null,0,Pf,[U.a,Cf,i.ChangeDetectorRef,i.ElementRef,W.q,i.Renderer2,i.ViewContainerRef],{typeahead:[0,"typeahead"]},{typeaheadOnSelect:"typeaheadOnSelect"}),i["ɵdid"](14,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,wp)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Tp)),i["ɵdid"](18,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Sp)),i["ɵdid"](20,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,"path"),t(e,13,0,n.bucketDataSource),t(e,14,0,"path"),t(e,16,0,n.nfsForm.showError("path",i["ɵnov"](e.parent,6),"required")),t(e,18,0,n.nfsForm.showError("path",i["ɵnov"](e.parent,6),"pattern")),t(e,20,0,n.isNewBucket&&!n.nfsForm.showError("path",i["ɵnov"](e.parent,6)))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,7,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending,i["ɵnov"](e,14).validClass,i["ɵnov"](e,14).invalidClass)}))}function Ip(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Np(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,25,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,22,{FormControlNames:1}),i["ɵqud"](603979776,23,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,13,"label",[["class","cd-col-form-label"],["for","tag"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFS Tag"])),(t()(),i["ɵeld"](7,0,null,null,10,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](8,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵeld"](9,0,null,0,4,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Alternative access for "])),(t()(),i["ɵeld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFS v3"])),(t()(),i["ɵted"](-1,null,[" mounts (it must not have a leading /)."])),(t()(),i["ɵeld"](14,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Clients may not mount subdirectories (i.e. if Tag = foo, the client may not mount foo/baz)."])),(t()(),i["ɵeld"](16,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["By using different Tag options, the same Path may be exported multiple times."])),(t()(),i["ɵeld"](18,0,null,0,7,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,6,"input",[["class","form-control"],["formControlName","tag"],["id","tag"],["name","tag"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,20)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,20).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,20)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,20)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](20,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](22,671744,[[22,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](24,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](25,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null)],(function(t,e){t(e,1,0),t(e,22,0,"tag"),t(e,25,0,"tag")}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,19,0,i["ɵnov"](e,24).ngClassUntouched,i["ɵnov"](e,24).ngClassTouched,i["ɵnov"](e,24).ngClassPristine,i["ɵnov"](e,24).ngClassDirty,i["ɵnov"](e,24).ngClassValid,i["ɵnov"](e,24).ngClassInvalid,i["ɵnov"](e,24).ngClassPending,i["ɵnov"](e,25).validClass,i["ɵnov"](e,25).invalidClass)}))}function Rp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Ap(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Pseudo needs to start with a '/' and can't contain any of the following: >, <, |, &, ( or )."]))],null,null)}function Ep(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,30,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,24,{FormControlNames:1}),i["ɵqud"](603979776,25,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,14,"label",[["class","cd-col-form-label"],["for","pseudo"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,"span",[["class","required"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Pseudo"])),(t()(),i["ɵeld"](7,0,null,null,11,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](8,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵeld"](9,0,null,0,7,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The position that this "])),(t()(),i["ɵeld"](11,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFS v4"])),(t()(),i["ɵted"](-1,null,[" export occupies in the "])),(t()(),i["ɵeld"](14,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Pseudo FS"])),(t()(),i["ɵted"](-1,null,[" (it must be unique)."])),(t()(),i["ɵeld"](17,0,null,0,1,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["By using different Pseudo options, the same Path may be exported multiple times."])),(t()(),i["ɵeld"](19,0,null,0,11,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](20,0,null,null,6,"input",[["class","form-control"],["formControlName","pseudo"],["id","pseudo"],["name","pseudo"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,21)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,21).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,21)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,21)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](21,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](23,671744,[[24,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](25,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](26,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Rp)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ap)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,23,0,"pseudo"),t(e,26,0,"pseudo"),t(e,28,0,n.nfsForm.showError("pseudo",i["ɵnov"](e.parent,6),"required")),t(e,30,0,n.nfsForm.showError("pseudo",i["ɵnov"](e.parent,6),"pattern"))}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,20,0,i["ɵnov"](e,25).ngClassUntouched,i["ɵnov"](e,25).ngClassTouched,i["ɵnov"](e,25).ngClassPristine,i["ɵnov"](e,25).ngClassDirty,i["ɵnov"](e,25).ngClassValid,i["ɵnov"](e,25).ngClassInvalid,i["ɵnov"](e,25).ngClassPending,i["ɵnov"](e,26).validClass,i["ɵnov"](e,26).invalidClass)}))}function Dp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Lp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No access type available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function qp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- Select the access type --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function jp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit.value),t(e,2,0,e.context.$implicit.value)}),(function(t,e){t(e,3,0,e.context.$implicit.value)}))}function Fp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,1,0,n.getAccessTypeHelp(n.nfsForm.getValue("access_type")))}))}function zp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"span",[["class","form-text text-warning"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The Object Gateway NFS backend has a number of limitations which will seriously affect applications writing to the share. Please consult the "])),(t()(),i["ɵeld"](2,0,null,null,1,"a",[["target","_blank"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,[" documentation"])),(t()(),i["ɵted"](-1,null,[" for details before enabling write access."]))],null,(function(t,e){t(e,2,0,i["ɵinlineInterpolate"](1,"",e.component.docsUrl,""))}))}function Gp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Bp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["Loading..."]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Vp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["-- No squash available --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Yp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[["value",""]],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](-1,null,["--Select what kind of user id squashing is performed --"]))],(function(t,e){t(e,1,0,""),t(e,2,0,"")}),null)}function Hp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,["",""]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Up(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Wp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Required field"]))],null,null)}function Kp(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),i["ɵqud"](402653184,1,{nfsClients:0}),(t()(),i["ɵeld"](3,0,null,null,200,"div",[["class","cd-col-form"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,199,"form",[["name","nfsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,6).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,6).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,9).onSubmit()&&a),a}),null,null)),i["ɵdid"](5,16384,null,0,W.G,[],null,null),i["ɵdid"](6,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](8,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](9,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](10,0,null,null,193,"div",[["class","card"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,3,"div",[["class","card-header"]],null,null,null,null,null)),(t()(),i["ɵted"](12,null,[""," ",""])),i["ɵppd"](13,1),i["ɵppd"](14,1),(t()(),i["ɵeld"](15,0,null,null,179,"div",[["class","card-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Kf)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](18,0,null,null,19,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](19,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,4,{FormControlNames:1}),i["ɵqud"](603979776,5,{messagesBlock:0}),(t()(),i["ɵeld"](22,0,null,0,2,"label",[["class","cd-col-form-label"],["for","daemons"]],null,null,null,null,null)),(t()(),i["ɵeld"](23,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Daemons"])),(t()(),i["ɵeld"](25,0,null,0,12,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,$f)),i["ɵdid"](27,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](28,0,null,null,9,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](29,0,null,null,8,"div",[["class","col-md-12"]],null,null,null,null,null)),(t()(),i["ɵeld"](30,0,null,null,7,"cd-select",[["elemClass","btn btn-light float-right"]],null,[[null,"selection"]],(function(t,e,n){var a=!0;return"selection"===e&&(a=!1!==t.component.onDaemonSelection()&&a),a}),xf.b,xf.a)),i["ɵdid"](31,638976,null,0,wf.a,[ia.a],{elemClass:[0,"elemClass"],data:[1,"data"],options:[2,"options"],messages:[3,"messages"]},{selection:"selection"}),(t()(),i["ɵeld"](32,0,null,0,3,"i",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](34,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](35,1),(t()(),i["ɵeld"](36,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Add daemon"])),(t()(),i["ɵeld"](38,0,null,null,33,"div",[["formGroupName","fsal"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],null,null,null,null)),i["ɵdid"](39,212992,null,0,W.m,[[3,W.d],[8,null],[8,null]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.d,null,[W.m]),i["ɵdid"](41,16384,null,0,W.s,[[4,W.d]],null,null),(t()(),i["ɵeld"](42,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](43,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,6,{FormControlNames:1}),i["ɵqud"](603979776,7,{messagesBlock:0}),(t()(),i["ɵeld"](46,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Storage Backend"])),(t()(),i["ɵeld"](48,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](49,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,50).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,50).onTouched()&&a),"change"===e&&(a=!1!==r.fsalChangeHandler()&&a),a}),null,null)),i["ɵdid"](50,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](52,671744,[[6,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](54,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](55,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Zf)),i["ɵdid"](57,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Jf)),i["ɵdid"](59,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Xf)),i["ɵdid"](61,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Qf)),i["ɵdid"](63,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,tp)),i["ɵdid"](65,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ip)),i["ɵdid"](67,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,gp)),i["ɵdid"](69,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,yp)),i["ɵdid"](71,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,vp)),i["ɵdid"](73,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,xp)),i["ɵdid"](75,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,kp)),i["ɵdid"](77,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](78,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](79,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,20,{FormControlNames:1}),i["ɵqud"](603979776,21,{messagesBlock:0}),(t()(),i["ɵeld"](82,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","protocols"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFS Protocol"])),(t()(),i["ɵeld"](84,0,null,0,22,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](85,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](86,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","protocolNfsv3"],["id","protocolNfsv3"],["name","protocolNfsv3"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,87).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,87).onTouched()&&a),a}),null,null)),i["ɵdid"](87,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](89,671744,[[20,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](91,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](92,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](93,0,null,null,1,"label",[["class","custom-control-label"],["for","protocolNfsv3"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFSv3"])),(t()(),i["ɵeld"](95,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](96,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","protocolNfsv4"],["id","protocolNfsv4"],["name","protocolNfsv4"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,97).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,97).onTouched()&&a),a}),null,null)),i["ɵdid"](97,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](99,671744,[[20,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](101,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](102,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](103,0,null,null,1,"label",[["class","custom-control-label"],["for","protocolNfsv4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["NFSv4"])),(t()(),i["ɵand"](16777216,null,null,1,null,Ip)),i["ɵdid"](106,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Np)),i["ɵdid"](108,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ep)),i["ɵdid"](110,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](111,0,null,null,27,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](112,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,26,{FormControlNames:1}),i["ɵqud"](603979776,27,{messagesBlock:0}),(t()(),i["ɵeld"](115,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","access_type"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Access Type"])),(t()(),i["ɵeld"](117,0,null,0,21,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](118,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","access_type"],["id","access_type"],["name","access_type"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,119).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,119).onTouched()&&a),"change"===e&&(a=!1!==r.accessTypeChangeHandler()&&a),a}),null,null)),i["ɵdid"](119,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](121,671744,[[26,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](123,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](124,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Dp)),i["ɵdid"](126,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Lp)),i["ɵdid"](128,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,qp)),i["ɵdid"](130,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,jp)),i["ɵdid"](132,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Fp)),i["ɵdid"](134,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,zp)),i["ɵdid"](136,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Gp)),i["ɵdid"](138,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](139,0,null,null,23,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](140,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,28,{FormControlNames:1}),i["ɵqud"](603979776,29,{messagesBlock:0}),(t()(),i["ɵeld"](143,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","squash"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Squash"])),(t()(),i["ɵeld"](145,0,null,0,17,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](146,0,null,null,14,"select",[["class","form-control custom-select"],["formControlName","squash"],["id","squash"],["name","squash"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,147).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,147).onTouched()&&a),a}),null,null)),i["ɵdid"](147,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](149,671744,[[28,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](151,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](152,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Bp)),i["ɵdid"](154,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Vp)),i["ɵdid"](156,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Yp)),i["ɵdid"](158,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Hp)),i["ɵdid"](160,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Up)),i["ɵdid"](162,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](163,0,null,null,29,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](164,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,30,{FormControlNames:1}),i["ɵqud"](603979776,31,{messagesBlock:0}),(t()(),i["ɵeld"](167,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","transports"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Transport Protocol"])),(t()(),i["ɵeld"](169,0,null,0,23,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](170,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](171,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","transportUDP"],["id","transportUDP"],["name","transportUDP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,172).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,172).onTouched()&&a),a}),null,null)),i["ɵdid"](172,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](174,671744,[[30,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](176,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](177,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](178,0,null,null,1,"label",[["class","custom-control-label"],["for","transportUDP"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["UDP"])),(t()(),i["ɵeld"](180,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](181,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","transportTCP"],["id","transportTCP"],["name","transportTCP"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,182).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,182).onTouched()&&a),a}),null,null)),i["ɵdid"](182,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](184,671744,[[30,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](186,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](187,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](188,0,null,null,1,"label",[["class","custom-control-label"],["for","transportTCP"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["TCP"])),(t()(),i["ɵand"](16777216,null,null,1,null,Wp)),i["ɵdid"](191,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](192,0,null,null,0,"hr",[],null,null,null,null,null)),(t()(),i["ɵeld"](193,0,null,null,1,"cd-nfs-form-client",[],null,null,null,qf,kf)),i["ɵdid"](194,49152,[[1,4],["nfsClients",4]],0,Sf,[ef,ia.a],{form:[0,"form"]},null),(t()(),i["ɵeld"](195,0,null,null,8,"div",[["class","card-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](196,0,null,null,7,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵeld"](197,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ri.b,ri.a)),i["ɵdid"](198,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](199,0,[""," ",""])),i["ɵppd"](200,1),i["ɵppd"](201,1),(t()(),i["ɵeld"](202,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](203,49152,null,0,si.a,[o.Location,vt.b],null,null)],(function(t,e){var n=e.component;t(e,6,0,n.nfsForm),t(e,9,0,n.nfsForm),t(e,17,0,!n.isDefaultCluster),t(e,19,0),t(e,27,0,n.nfsForm.getValue("daemons")),t(e,31,0,"btn btn-light float-right",n.nfsForm.get("daemons").value,n.daemonsSelections,n.daemonsMessages);var a=t(e,35,0,n.icons.add);t(e,34,0,a),t(e,39,0,"fsal"),t(e,43,0),t(e,52,0,"name"),t(e,55,0,"name"),t(e,57,0,null===n.allFsals),t(e,59,0,null!==n.allFsals&&0===n.allFsals.length),t(e,61,0,null!==n.allFsals&&n.allFsals.length>0),t(e,63,0,n.allFsals),t(e,65,0,n.nfsForm.showError("name",i["ɵnov"](e,6),"required")),t(e,67,0,"RGW"===n.nfsForm.getValue("name")),t(e,69,0,"CEPH"===n.nfsForm.getValue("name")),t(e,71,0,"CEPH"===n.nfsForm.getValue("name")),t(e,73,0,"CEPH"===n.nfsForm.getValue("name")),t(e,75,0,"CEPH"===n.nfsForm.getValue("name")),t(e,77,0,"RGW"===n.nfsForm.getValue("name")),t(e,79,0),t(e,89,0,"protocolNfsv3"),t(e,92,0,"protocolNfsv3"),t(e,99,0,"protocolNfsv4"),t(e,102,0,"protocolNfsv4"),t(e,106,0,n.nfsForm.showError("protocolNfsv3",i["ɵnov"](e,6),"required")||n.nfsForm.showError("protocolNfsv4",i["ɵnov"](e,6),"required")),t(e,108,0,n.nfsForm.getValue("protocolNfsv3")),t(e,110,0,n.nfsForm.getValue("protocolNfsv4")),t(e,112,0),t(e,121,0,"access_type"),t(e,124,0,"access_type"),t(e,126,0,null===n.nfsAccessType),t(e,128,0,null!==n.nfsAccessType&&0===n.nfsAccessType.length),t(e,130,0,null!==n.nfsAccessType&&n.nfsAccessType.length>0),t(e,132,0,n.nfsAccessType),t(e,134,0,n.nfsForm.getValue("access_type")),t(e,136,0,"RW"===n.nfsForm.getValue("access_type")&&"RGW"===n.nfsForm.getValue("name")),t(e,138,0,n.nfsForm.showError("access_type",i["ɵnov"](e,6),"required")),t(e,140,0),t(e,149,0,"squash"),t(e,152,0,"squash"),t(e,154,0,null===n.nfsSquash),t(e,156,0,null!==n.nfsSquash&&0===n.nfsSquash.length),t(e,158,0,null!==n.nfsSquash&&n.nfsSquash.length>0),t(e,160,0,n.nfsSquash),t(e,162,0,n.nfsForm.showError("squash",i["ɵnov"](e,6),"required")),t(e,164,0),t(e,174,0,"transportUDP"),t(e,177,0,"transportUDP"),t(e,184,0,"transportTCP"),t(e,187,0,"transportTCP"),t(e,191,0,n.nfsForm.showError("transportUDP",i["ɵnov"](e,6),"required")||n.nfsForm.showError("transportTCP",i["ɵnov"](e,6),"required")),t(e,194,0,n.nfsForm),t(e,198,0,i["ɵnov"](e,6))}),(function(t,e){var n=e.component;t(e,4,0,i["ɵnov"](e,8).ngClassUntouched,i["ɵnov"](e,8).ngClassTouched,i["ɵnov"](e,8).ngClassPristine,i["ɵnov"](e,8).ngClassDirty,i["ɵnov"](e,8).ngClassValid,i["ɵnov"](e,8).ngClassInvalid,i["ɵnov"](e,8).ngClassPending);var a=i["ɵunv"](e,12,0,t(e,13,0,i["ɵnov"](e,0),n.action)),r=i["ɵunv"](e,12,1,t(e,14,0,i["ɵnov"](e,1),n.resource));t(e,12,0,a,r),t(e,18,0,i["ɵnov"](e,19).hasErrors,i["ɵnov"](e,19).hasSuccess),t(e,38,0,i["ɵnov"](e,41).ngClassUntouched,i["ɵnov"](e,41).ngClassTouched,i["ɵnov"](e,41).ngClassPristine,i["ɵnov"](e,41).ngClassDirty,i["ɵnov"](e,41).ngClassValid,i["ɵnov"](e,41).ngClassInvalid,i["ɵnov"](e,41).ngClassPending),t(e,42,0,i["ɵnov"](e,43).hasErrors,i["ɵnov"](e,43).hasSuccess),t(e,49,0,i["ɵnov"](e,54).ngClassUntouched,i["ɵnov"](e,54).ngClassTouched,i["ɵnov"](e,54).ngClassPristine,i["ɵnov"](e,54).ngClassDirty,i["ɵnov"](e,54).ngClassValid,i["ɵnov"](e,54).ngClassInvalid,i["ɵnov"](e,54).ngClassPending,i["ɵnov"](e,55).validClass,i["ɵnov"](e,55).invalidClass),t(e,78,0,i["ɵnov"](e,79).hasErrors,i["ɵnov"](e,79).hasSuccess),t(e,86,0,i["ɵnov"](e,91).ngClassUntouched,i["ɵnov"](e,91).ngClassTouched,i["ɵnov"](e,91).ngClassPristine,i["ɵnov"](e,91).ngClassDirty,i["ɵnov"](e,91).ngClassValid,i["ɵnov"](e,91).ngClassInvalid,i["ɵnov"](e,91).ngClassPending,i["ɵnov"](e,92).validClass,i["ɵnov"](e,92).invalidClass),t(e,96,0,i["ɵnov"](e,101).ngClassUntouched,i["ɵnov"](e,101).ngClassTouched,i["ɵnov"](e,101).ngClassPristine,i["ɵnov"](e,101).ngClassDirty,i["ɵnov"](e,101).ngClassValid,i["ɵnov"](e,101).ngClassInvalid,i["ɵnov"](e,101).ngClassPending,i["ɵnov"](e,102).validClass,i["ɵnov"](e,102).invalidClass),t(e,111,0,i["ɵnov"](e,112).hasErrors,i["ɵnov"](e,112).hasSuccess),t(e,118,0,i["ɵnov"](e,123).ngClassUntouched,i["ɵnov"](e,123).ngClassTouched,i["ɵnov"](e,123).ngClassPristine,i["ɵnov"](e,123).ngClassDirty,i["ɵnov"](e,123).ngClassValid,i["ɵnov"](e,123).ngClassInvalid,i["ɵnov"](e,123).ngClassPending,i["ɵnov"](e,124).validClass,i["ɵnov"](e,124).invalidClass),t(e,139,0,i["ɵnov"](e,140).hasErrors,i["ɵnov"](e,140).hasSuccess),t(e,146,0,i["ɵnov"](e,151).ngClassUntouched,i["ɵnov"](e,151).ngClassTouched,i["ɵnov"](e,151).ngClassPristine,i["ɵnov"](e,151).ngClassDirty,i["ɵnov"](e,151).ngClassValid,i["ɵnov"](e,151).ngClassInvalid,i["ɵnov"](e,151).ngClassPending,i["ɵnov"](e,152).validClass,i["ɵnov"](e,152).invalidClass),t(e,163,0,i["ɵnov"](e,164).hasErrors,i["ɵnov"](e,164).hasSuccess),t(e,171,0,i["ɵnov"](e,176).ngClassUntouched,i["ɵnov"](e,176).ngClassTouched,i["ɵnov"](e,176).ngClassPristine,i["ɵnov"](e,176).ngClassDirty,i["ɵnov"](e,176).ngClassValid,i["ɵnov"](e,176).ngClassInvalid,i["ɵnov"](e,176).ngClassPending,i["ɵnov"](e,177).validClass,i["ɵnov"](e,177).invalidClass),t(e,181,0,i["ɵnov"](e,186).ngClassUntouched,i["ɵnov"](e,186).ngClassTouched,i["ɵnov"](e,186).ngClassPristine,i["ɵnov"](e,186).ngClassDirty,i["ɵnov"](e,186).ngClassValid,i["ɵnov"](e,186).ngClassInvalid,i["ɵnov"](e,186).ngClassPending,i["ɵnov"](e,187).validClass,i["ɵnov"](e,187).invalidClass);var o=i["ɵunv"](e,199,0,t(e,200,0,i["ɵnov"](e,0),n.action)),s=i["ɵunv"](e,199,1,t(e,201,0,i["ɵnov"](e,1),n.resource));t(e,199,0,o,s)}))}function $p(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-nfs-form",[],null,null,null,Kp,Bf)),i["ɵdid"](1,114688,null,0,Gf,[yt.a,ef,St.a,St.m,jf.a,ys.a,ft.a,bt.a,Yo.a,i.ChangeDetectorRef,ia.a,vt.b],null,null)],(function(t,e){t(e,1,0)}),null)}var Zp=i["ɵccf"]("cd-nfs-form",Gf,$p,{},{},[]);class Jp{}var Xp=i["ɵcrt"]({encapsulation:0,styles:[[".login{color:#fff;background-color:#374249}  .login header{position:absolute;width:100vw}  .login header .navbar{padding:1rem 2rem}  .login header .navbar .dropdown-menu{margin-top:.2rem}  .login header .navbar .dropdown-menu li a:hover{background-color:#2b99a8}  .login section{display:inline-flex;width:100vw;min-height:100vh}"]],data:{}});function Qp(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,14,"div",[["class","login full-height"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,5,"header",[],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,4,"nav",[["class","navbar"]],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,0,"a",[["class","navbar-brand"]],null,null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,2,"div",[["class","form-inline"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,"cd-language-selector",[],null,null,null,lt,at)),i["ɵdid"](6,114688,null,0,et,[nt.j,X],null,null),(t()(),i["ɵeld"](7,0,null,null,7,"section",[],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,6,"div",[["class","container"]],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,5,"div",[["class","row full-height vertical-align"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,1,"div",[["class","col-sm-6 d-none d-sm-block"]],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,0,"img",[["alt","Ceph"],["class","float-right img-fluid"],["src","assets/Ceph_Logo_Stacked_RGB_White_120411_fa_256x256.png"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,2,"div",[["class","col-12 col-sm-6 col-xl-5"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),i["ɵdid"](14,212992,null,0,St.r,[St.b,i.ViewContainerRef,i.ComponentFactoryResolver,[8,null],i.ChangeDetectorRef],null,null)],(function(t,e){t(e,6,0),t(e,14,0)}),null)}function tm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-login-layout",[],null,null,null,Qp,Xp)),i["ɵdid"](1,49152,null,0,Jp,[],null,null)],null,null)}var em=i["ɵccf"]("cd-login-layout",Jp,tm,{},{},[]);class nm{}class am{constructor(t,e,n,a){this.authService=t,this.authStorageService=e,this.bsModalService=n,this.router=a,this.model=new nm,this.isLoginActive=!1}ngOnInit(){if(this.authStorageService.isLoggedIn())this.router.navigate([""]);else{const t=this.bsModalService.getModalsCount();for(let n=1;n<=t;n++)this.bsModalService.hide(n);let e=null;if(-1!==window.location.hash.indexOf("access_token=")){e=window.location.hash.split("access_token=")[1];const t=window.location.toString();window.history.replaceState({},document.title,t.split("?")[0])}this.authService.check(e).subscribe(t=>{t.login_url?"#/login"===t.login_url?this.isLoginActive=!0:window.location.replace(t.login_url):(this.authStorageService.set(t.username,e,t.permissions,t.sso,t.pwdExpirationDate),this.router.navigate([""]))})}}login(){this.authService.login(this.model).subscribe(()=>{this.router.navigate([""])})}}var rm=i["ɵcrt"]({encapsulation:0,styles:[["cd-login h1{margin:0 0 30px}  cd-login .btn-password,   cd-login .btn-password:focus,   cd-login .form-control,   cd-login .form-control:focus{color:#fff;background-color:#555}  cd-login .form-control::placeholder{color:#90949c}  cd-login .btn-password:focus{outline-color:#2b99a8}@keyframes autofill{to{color:#fff;background-color:#555}}input[_ngcontent-%COMP%]:-webkit-autofill{animation-name:autofill;animation-fill-mode:both}"]],data:{}});function om(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Username is required"]))],null,null)}function im(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"div",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Password is required"]))],null,null)}function sm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,43,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Welcome to Ceph!"])),(t()(),i["ɵeld"](3,0,null,null,40,"form",[["name","loginForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"ngSubmit"],[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0,r=t.component;return"submit"===e&&(a=!1!==i["ɵnov"](t,5).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,5).onReset()&&a),"ngSubmit"===e&&(a=!1!==r.login()&&a),a}),null,null)),i["ɵdid"](4,16384,null,0,W.G,[],null,null),i["ɵdid"](5,4210688,[["loginForm",4]],0,W.t,[[8,null],[8,null]],null,{ngSubmit:"ngSubmit"}),i["ɵprd"](2048,null,W.d,null,[W.t]),i["ɵdid"](7,16384,null,0,W.s,[[4,W.d]],null,null),(t()(),i["ɵeld"](8,0,null,null,15,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](9,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](12,0,null,0,9,"input",[["autofocus",""],["class","form-control"],["name","username"],["placeholder","Enter your username..."],["required",""],["type","text"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,13)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,13).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,13)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,13)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.username=n)&&a),a}),null,null)),i["ɵdid"](13,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](14,16384,null,0,W.z,[],{required:[0,"required"]},null),i["ɵprd"](1024,null,W.o,(function(t){return[t]}),[W.z]),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](17,671744,[["username",4]],0,W.u,[[2,W.d],[6,W.o],[8,null],[6,W.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](19,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](20,4210688,null,0,ai.a,[i.ElementRef],{autofocus:[0,"autofocus"]},null),i["ɵdid"](21,16384,null,0,K.h,[[3,W.d],K.a],null,null),(t()(),i["ɵand"](16777216,null,0,1,null,om)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](24,0,null,null,18,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](25,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](28,0,null,0,12,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](29,0,null,null,8,"input",[["class","form-control"],["id","password"],["name","password"],["placeholder","Enter your password..."],["required",""],["type","password"]],[[1,"required",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"ngModelChange"],[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0,r=t.component;return"input"===e&&(a=!1!==i["ɵnov"](t,30)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,30).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,30)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,30)._compositionEnd(n.target.value)&&a),"ngModelChange"===e&&(a=!1!==(r.model.password=n)&&a),a}),null,null)),i["ɵdid"](30,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](31,16384,null,0,W.z,[],{required:[0,"required"]},null),i["ɵprd"](1024,null,W.o,(function(t){return[t]}),[W.z]),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](34,671744,[["password",4]],0,W.u,[[2,W.d],[6,W.o],[8,null],[6,W.p]],{name:[0,"name"],model:[1,"model"]},{update:"ngModelChange"}),i["ɵprd"](2048,null,W.q,null,[W.u]),i["ɵdid"](36,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](37,16384,null,0,K.h,[[3,W.d],K.a],null,null),(t()(),i["ɵeld"](38,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](39,0,null,null,1,"button",[["cdPasswordButton","password"],["class","btn btn-outline-light btn-password"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,40).onClick()&&a),a}),null,null)),i["ɵdid"](40,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,im)),i["ɵdid"](42,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](43,0,null,null,0,"input",[["class","btn btn-secondary btn-block"],["type","submit"],["value","Login"]],[[8,"disabled",0]],null,null,null,null))],(function(t,e){var n=e.component;t(e,9,0),t(e,14,0,""),t(e,17,0,"username",n.model.username),t(e,20,0,""),t(e,23,0,(i["ɵnov"](e,5).submitted||i["ɵnov"](e,17).dirty)&&i["ɵnov"](e,17).invalid),t(e,25,0),t(e,31,0,""),t(e,34,0,"password",n.model.password),t(e,40,0,"password"),t(e,42,0,(i["ɵnov"](e,5).submitted||i["ɵnov"](e,34).dirty)&&i["ɵnov"](e,34).invalid)}),(function(t,e){t(e,3,0,i["ɵnov"](e,7).ngClassUntouched,i["ɵnov"](e,7).ngClassTouched,i["ɵnov"](e,7).ngClassPristine,i["ɵnov"](e,7).ngClassDirty,i["ɵnov"](e,7).ngClassValid,i["ɵnov"](e,7).ngClassInvalid,i["ɵnov"](e,7).ngClassPending),t(e,8,0,i["ɵnov"](e,9).hasErrors,i["ɵnov"](e,9).hasSuccess),t(e,12,0,i["ɵnov"](e,14).required?"":null,i["ɵnov"](e,19).ngClassUntouched,i["ɵnov"](e,19).ngClassTouched,i["ɵnov"](e,19).ngClassPristine,i["ɵnov"](e,19).ngClassDirty,i["ɵnov"](e,19).ngClassValid,i["ɵnov"](e,19).ngClassInvalid,i["ɵnov"](e,19).ngClassPending,i["ɵnov"](e,21).validClass,i["ɵnov"](e,21).invalidClass),t(e,24,0,i["ɵnov"](e,25).hasErrors,i["ɵnov"](e,25).hasSuccess),t(e,29,0,i["ɵnov"](e,31).required?"":null,i["ɵnov"](e,36).ngClassUntouched,i["ɵnov"](e,36).ngClassTouched,i["ɵnov"](e,36).ngClassPristine,i["ɵnov"](e,36).ngClassDirty,i["ɵnov"](e,36).ngClassValid,i["ɵnov"](e,36).ngClassInvalid,i["ɵnov"](e,36).ngClassPending,i["ɵnov"](e,37).validClass,i["ɵnov"](e,37).invalidClass),t(e,43,0,i["ɵnov"](e,5).invalid)}))}function cm(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,sm)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,1,0,e.component.isLoginActive)}),null)}function lm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-login",[],null,null,null,cm,rm)),i["ɵdid"](1,114688,null,0,am,[Dt.a,yt.a,Mt.b,St.m],null,null)],(function(t,e){t(e,1,0)}),null)}var dm=i["ɵccf"]("cd-login",am,lm,{},{},[]);class um extends Rg{constructor(t,e,n,a,r,o,i,s,c){super(t,e,n,a,r,o,i,s),this.i18n=t,this.actionLabels=e,this.notificationService=n,this.userService=a,this.authStorageService=r,this.formBuilder=o,this.router=i,this.passwordPolicyService=s,this.authService=c}onPasswordChange(){this.authService.logout()}onCancel(){this.authService.logout()}}var gm=i["ɵcrt"]({encapsulation:0,styles:[["cd-login-password-form h4{margin:0 0 30px}  cd-login-password-form .btn-password,   cd-login-password-form .btn-password:focus,   cd-login-password-form .form-control,   cd-login-password-form .form-control:focus{color:#fff;background-color:#555}  cd-login-password-form .form-control::placeholder{color:#90949c}  cd-login-password-form .btn-password:focus{outline-color:#2b99a8}  cd-login-password-form button.btn:not(:first-child){margin-left:5px}"]],data:{}});function fm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function pm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function mm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function hm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The old and new passwords must be different."]))],null,null)}function bm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.component.passwordValuation)}))}function ym(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function _m(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Password confirmation doesn't match the new password."]))],null,null)}function Om(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),(t()(),i["ɵeld"](2,0,null,null,81,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](3,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Please set a new password."])),(t()(),i["ɵeld"](5,0,null,null,1,"h4",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["You will be redirected to the login page afterwards."])),(t()(),i["ɵeld"](7,0,null,null,67,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,9).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,9).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,12).onSubmit()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,W.G,[],null,null),i["ɵdid"](9,540672,[["frm",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](11,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](12,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](13,0,null,null,19,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](14,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](17,0,null,0,11,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,7,"input",[["autocomplete","new-password"],["autofocus",""],["class","form-control"],["formControlName","oldpassword"],["id","oldpassword"],["placeholder","Old password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,19)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,19).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,19)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,19)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](19,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](21,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](23,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](24,4210688,null,0,ai.a,[i.ElementRef],{autofocus:[0,"autofocus"]},null),i["ɵdid"](25,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](26,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](27,0,null,null,1,"button",[["cdPasswordButton","oldpassword"],["class","btn btn-outline-light btn-password"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,28).onClick()&&a),a}),null,null)),i["ɵdid"](28,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,fm)),i["ɵdid"](30,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,pm)),i["ɵdid"](32,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](33,0,null,null,22,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](34,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](37,0,null,0,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](38,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","newpassword"],["id","newpassword"],["placeholder","New password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,39)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,39).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,39)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,39)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](39,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](41,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](43,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](44,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](45,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](46,0,null,null,1,"button",[["cdPasswordButton","newpassword"],["class","btn btn-outline-light btn-password"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,47).onClick()&&a),a}),null,null)),i["ɵdid"](47,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵeld"](48,0,null,0,1,"div",[["class","password-strength-level"]],null,null,null,null,null)),(t()(),i["ɵeld"](49,0,null,null,0,"div",[["data-toggle","tooltip"]],[[8,"className",0],[8,"title",0]],null,null,null,null)),(t()(),i["ɵand"](16777216,null,0,1,null,mm)),i["ɵdid"](51,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,hm)),i["ɵdid"](53,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,bm)),i["ɵdid"](55,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](56,0,null,null,18,"div",[["class","form-group has-feedback"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](57,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](60,0,null,0,10,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](61,0,null,null,6,"input",[["autocomplete","new-password"],["class","form-control"],["formControlName","confirmnewpassword"],["id","confirmnewpassword"],["placeholder","Confirm new password..."],["type","password"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,62)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,62).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,62)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,62)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](62,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](64,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](66,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](67,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](68,0,null,null,2,"span",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](69,0,null,null,1,"button",[["cdPasswordButton","confirmnewpassword"],["class","btn btn-outline-light btn-password"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,70).onClick()&&a),a}),null,null)),i["ɵdid"](70,81920,null,0,Ig.a,[i.ElementRef,i.Renderer2],{cdPasswordButton:[0,"cdPasswordButton"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,ym)),i["ɵdid"](72,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,_m)),i["ɵdid"](74,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](75,0,null,null,8,"div",[["class","form-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](76,0,null,null,4,"cd-submit-button",[["btnClass","btn-block"],["class","full-width"]],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](77,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"],btnClass:[1,"btnClass"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](78,0,[" "," "," "])),i["ɵppd"](79,1),i["ɵppd"](80,1),(t()(),i["ɵeld"](81,0,null,null,2,"button",[["class","btn btn-light"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.onCancel()&&a),a}),null,null)),(t()(),i["ɵeld"](82,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Cancel"]))],(function(t,e){var n=e.component;t(e,9,0,n.userForm),t(e,12,0,n.userForm),t(e,14,0),t(e,21,0,"oldpassword"),t(e,24,0,""),t(e,25,0,"oldpassword"),t(e,28,0,"oldpassword"),t(e,30,0,n.userForm.showError("oldpassword",i["ɵnov"](e,9),"required")),t(e,32,0,n.userForm.showError("oldpassword",i["ɵnov"](e,9),"notmatch")),t(e,34,0),t(e,41,0,"newpassword"),t(e,44,0,"newpassword"),t(e,47,0,"newpassword"),t(e,51,0,n.userForm.showError("newpassword",i["ɵnov"](e,9),"required")),t(e,53,0,n.userForm.showError("newpassword",i["ɵnov"](e,9),"notmatch")),t(e,55,0,n.userForm.showError("newpassword",i["ɵnov"](e,9),"passwordPolicy")),t(e,57,0),t(e,64,0,"confirmnewpassword"),t(e,67,0,"confirmnewpassword"),t(e,70,0,"confirmnewpassword"),t(e,72,0,n.userForm.showError("confirmnewpassword",i["ɵnov"](e,9),"required")),t(e,74,0,n.userForm.showError("confirmnewpassword",i["ɵnov"](e,9),"match")),t(e,77,0,n.userForm,"btn-block")}),(function(t,e){var n=e.component;t(e,7,0,i["ɵnov"](e,11).ngClassUntouched,i["ɵnov"](e,11).ngClassTouched,i["ɵnov"](e,11).ngClassPristine,i["ɵnov"](e,11).ngClassDirty,i["ɵnov"](e,11).ngClassValid,i["ɵnov"](e,11).ngClassInvalid,i["ɵnov"](e,11).ngClassPending),t(e,13,0,i["ɵnov"](e,14).hasErrors,i["ɵnov"](e,14).hasSuccess),t(e,18,0,i["ɵnov"](e,23).ngClassUntouched,i["ɵnov"](e,23).ngClassTouched,i["ɵnov"](e,23).ngClassPristine,i["ɵnov"](e,23).ngClassDirty,i["ɵnov"](e,23).ngClassValid,i["ɵnov"](e,23).ngClassInvalid,i["ɵnov"](e,23).ngClassPending,i["ɵnov"](e,25).validClass,i["ɵnov"](e,25).invalidClass),t(e,33,0,i["ɵnov"](e,34).hasErrors,i["ɵnov"](e,34).hasSuccess),t(e,38,0,i["ɵnov"](e,43).ngClassUntouched,i["ɵnov"](e,43).ngClassTouched,i["ɵnov"](e,43).ngClassPristine,i["ɵnov"](e,43).ngClassDirty,i["ɵnov"](e,43).ngClassValid,i["ɵnov"](e,43).ngClassInvalid,i["ɵnov"](e,43).ngClassPending,i["ɵnov"](e,44).validClass,i["ɵnov"](e,44).invalidClass),t(e,49,0,i["ɵinlineInterpolate"](1,"",n.passwordStrengthLevelClass,""),i["ɵinlineInterpolate"](1,"",n.passwordValuation,"")),t(e,56,0,i["ɵnov"](e,57).hasErrors,i["ɵnov"](e,57).hasSuccess),t(e,61,0,i["ɵnov"](e,66).ngClassUntouched,i["ɵnov"](e,66).ngClassTouched,i["ɵnov"](e,66).ngClassPristine,i["ɵnov"](e,66).ngClassDirty,i["ɵnov"](e,66).ngClassValid,i["ɵnov"](e,66).ngClassInvalid,i["ɵnov"](e,66).ngClassPending,i["ɵnov"](e,67).validClass,i["ɵnov"](e,67).invalidClass);var a=i["ɵunv"](e,78,0,t(e,79,0,i["ɵnov"](e,0),n.action)),r=i["ɵunv"](e,78,1,t(e,80,0,i["ɵnov"](e,1),n.resource));t(e,78,0,a,r)}))}function vm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-login-password-form",[],null,null,null,Om,gm)),i["ɵdid"](1,49152,null,0,um,[ia.a,vt.b,gt.a,Ot.a,yt.a,ys.a,St.m,Ng.a,Dt.a],null,null)],null,null)}var Cm=i["ɵccf"]("cd-login-password-form",um,vm,{},{},[]);class Pm{constructor(){}}var Mm=i["ɵcrt"]({encapsulation:0,styles:[["#toast-container{margin-top:2vw}@media (max-width:1600px){  #toast-container{margin-top:2.5vw}}@media (max-width:calc(992px - 1px)){  #toast-container{margin-top:9vw}}@media (max-width:900px){  #toast-container{margin-top:10vw}}@media (max-width:319px){  #toast-container{margin-top:11vw}}@media (max-width:260px){  #toast-container{margin-top:14vw}}"]],data:{}});function xm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),i["ɵdid"](1,212992,null,0,St.r,[St.b,i.ViewContainerRef,i.ComponentFactoryResolver,[8,null],i.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function wm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-blank-layout",[],null,null,null,xm,Mm)),i["ɵdid"](1,49152,null,0,Pm,[],null,null)],null,null)}var Tm=i["ɵccf"]("cd-blank-layout",Pm,wm,{},{},[]);class Sm{constructor(){this.logoutUrl=`${window.location.origin}/auth/saml2/slo`}}var km=i["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function Im(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,17,"div",[["class","vertical-align full-height"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,16,"div",[["class","col-md-12 text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Sorry, the user does not exist in Ceph."])),(t()(),i["ɵeld"](4,0,null,null,4,"h4",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Return to "])),(t()(),i["ɵeld"](6,0,null,null,1,"a",[["class","sso-logout"]],[[8,"href",4]],null,null,null,null)),(t()(),i["ɵted"](-1,null,["Login Page"])),(t()(),i["ɵted"](-1,null,[". You'll be logged out from the Identity Provider when you retry logging in."])),(t()(),i["ɵeld"](9,0,null,null,0,"img",[["class","img-fluid mx-auto rounded"],["src","assets/1280px-Nautilus_Octopus.jpg"]],null,null,null,null,null)),(t()(),i["ɵeld"](10,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[' "'])),(t()(),i["ɵeld"](13,0,null,null,1,"a",[["href","https://www.flickr.com/photos/146401137@N06/40335060661"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Nautilus Octopus"])),(t()(),i["ɵted"](-1,null,['" by Jin Kemoole is licensed under '])),(t()(),i["ɵeld"](16,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/2.0/"],["rel","nofollow"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CC BY 2.0"]))],null,(function(t,e){t(e,6,0,e.component.logoutUrl)}))}function Nm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-sso-not-found",[],null,null,null,Im,km)),i["ɵdid"](1,49152,null,0,Sm,[],null,null)],null,null)}var Rm=i["ɵccf"]("cd-sso-not-found",Sm,Nm,{},{},[]);class Am{constructor(){this.icons=ut.a}}var Em=i["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}h2[_ngcontent-%COMP%]{font-size:xx-large;font-family:monospace}i[_ngcontent-%COMP%]{font-size:200px}"]],data:{}});function Dm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,"div",[["class","horizontal-align vertical-align full-height"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,9,"div",[["class","text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Forbidden"])),(t()(),i["ɵeld"](4,0,null,null,0,"i",[],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,"h2",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Sorry, you are not allowed to see what you were looking for."])),(t()(),i["ɵeld"](7,0,null,null,3,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,8).onClick()&&a),a}),null,null)),i["ɵdid"](8,16384,null,0,St.n,[St.m,St.a,[8,null],i.Renderer2,i.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵeld"](9,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,8,0,"/login")}),(function(t,e){t(e,4,0,i["ɵinlineInterpolate"](1,"",e.component.icons.lock," text-danger"))}))}function Lm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-forbidden",[],null,null,null,Dm,Em)),i["ɵdid"](1,49152,null,0,Am,[],null,null)],null,null)}var qm=i["ɵccf"]("cd-forbidden",Am,Lm,{},{},[]);class jm{constructor(){}}var Fm=i["ɵcrt"]({encapsulation:0,styles:[["h1[_ngcontent-%COMP%]{font-size:-webkit-xxx-large;font-family:monospace}*[_ngcontent-%COMP%]{font-family:monospace}img[_ngcontent-%COMP%]{width:50vw}"]],data:{}});function zm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,17,"div",[["class","horizontal-align vertical-align full-height"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,16,"div",[["class","text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"h1",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Sorry, we could not find what you were looking for."])),(t()(),i["ɵeld"](4,0,null,null,0,"img",[["class","img-fluid mx-auto rounded"],["src","assets/1500px-Southern_Keeled_Octopus.jpg"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,6,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,[' "'])),(t()(),i["ɵeld"](8,0,null,null,1,"a",[["href","https://collections.museumvictoria.com.au/species/8696"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Southern Keeled Octopus, Octopus berrima"])),(t()(),i["ɵted"](-1,null,['" by Museums Victoria (Photographer: Julian Finn) is licensed under '])),(t()(),i["ɵeld"](11,0,null,null,1,"a",[["class","external text"],["href","https://creativecommons.org/licenses/by/4.0"],["rel","nofollow"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["CC BY 4.0"])),(t()(),i["ɵeld"](13,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](14,0,null,null,3,"button",[["class","btn btn-primary"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==i["ɵnov"](t,15).onClick()&&a),a}),null,null)),i["ɵdid"](15,16384,null,0,St.n,[St.m,St.a,[8,null],i.Renderer2,i.ElementRef],{routerLink:[0,"routerLink"]},null),(t()(),i["ɵeld"](16,0,null,null,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Back"]))],(function(t,e){t(e,15,0,"/login")}),null)}function Gm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-not-found",[],null,null,null,zm,Fm)),i["ɵdid"](1,49152,null,0,jm,[],null,null)],null,null)}var Bm=i["ɵccf"]("cd-not-found",jm,Gm,{},{},[]),Vm=n("ES0t"),Ym=n("Xg1U"),Hm=n("z5nN"),Um=n("iutN"),Wm=n("EEJc"),Km=n("PEr+"),$m=n("a40w"),Zm=n("hfeG"),Jm=n("atuK"),Xm=i["ɵcrt"]({encapsulation:0,styles:[[".product-versions[_ngcontent-%COMP%]{margin-top:30px}.product-versions[_ngcontent-%COMP%]   strong[_ngcontent-%COMP%]{margin-right:10px}.modal-header[_ngcontent-%COMP%]{border-bottom:none}.modal-body[_ngcontent-%COMP%]{padding-left:80px;padding-right:80px}.modal-footer[_ngcontent-%COMP%]{border-top:none;padding:15px 80px 35px}h2[_ngcontent-%COMP%]{font-size:3em}.ceph-logo[_ngcontent-%COMP%]{width:10%}.list-unstyled[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin-top:5px}.modal-body[_ngcontent-%COMP%]{margin-top:0;padding-top:0}.modal-body[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{margin-top:0}"]],data:{}});function Qm(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"div",[["class","modal-header"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,2,"button",[["aria-label","Close"],["class","close float-right"],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.modalRef.hide()&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,1,"span",[["aria-hidden","true"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["×"])),(t()(),i["ɵeld"](4,0,null,null,45,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,2,"h2",[],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,0,"img",[["class","ceph-logo"],["src","assets/Ceph_Logo_Stacked_RGB_120411_fa_348x348.png"]],[[8,"alt",0]],null,null,null,null)),(t()(),i["ɵted"](7,null,[" "," "])),(t()(),i["ɵeld"](8,0,null,null,2,"h3",[],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](10,null,["",""])),(t()(),i["ɵeld"](11,0,null,null,6,"div",[["class","product-versions"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Version"])),(t()(),i["ɵeld"](14,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵted"](15,null,[" "," "," "])),(t()(),i["ɵeld"](16,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵted"](17,null,[" "," "])),(t()(),i["ɵeld"](18,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,30,"ul",[["class","list-unstyled"]],null,null,null,null,null)),(t()(),i["ɵeld"](20,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](21,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Ceph Manager"])),(t()(),i["ɵeld"](23,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](24,null,["",""])),(t()(),i["ɵeld"](25,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](26,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["User"])),(t()(),i["ɵeld"](28,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](29,null,["",""])),(t()(),i["ɵeld"](30,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](31,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["User Role"])),(t()(),i["ɵeld"](33,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](34,null,["",""])),(t()(),i["ɵeld"](35,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](36,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Browser"])),(t()(),i["ɵeld"](38,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](39,null,["",""])),(t()(),i["ɵeld"](40,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](41,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Browser Version"])),(t()(),i["ɵeld"](43,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](44,null,["",""])),(t()(),i["ɵeld"](45,0,null,null,4,"li",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](46,0,null,null,1,"strong",[["class","col-6 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Browser OS"])),(t()(),i["ɵeld"](48,0,null,null,1,"span",[["class","col-4 col-sm-4"]],null,null,null,null,null)),(t()(),i["ɵted"](49,null,["",""])),(t()(),i["ɵeld"](50,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](51,0,null,null,1,"div",[["class","text-left"]],null,null,null,null,null)),(t()(),i["ɵted"](52,null,[" "," "," "]))],null,(function(t,e){var n=e.component;t(e,6,0,i["ɵinlineInterpolate"](1,"",n.projectConstants.organization,"")),t(e,7,0,n.projectConstants.organization),t(e,10,0,n.projectConstants.projectName),t(e,15,0,n.versionNumber,n.versionHash),t(e,17,0,n.versionName),t(e,24,0,n.hostAddr),t(e,29,0,n.modalVariables.user),t(e,34,0,n.modalVariables.role),t(e,39,0,n.modalVariables.browserName),t(e,44,0,n.modalVariables.browserVersion),t(e,49,0,n.modalVariables.browserOS),t(e,52,0,n.copyright,n.projectConstants.license)}))}function th(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-about",[],null,null,null,Qm,Xm)),i["ɵdid"](1,245760,null,0,Ct,[Mt.a,ft.a,Ot.a,yt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var eh=i["ɵccf"]("cd-about",Ct,th,{},{},[]),nh=i["ɵcrt"]({encapsulation:0,styles:[".dropdown[_nghost-%COMP%] {\n      z-index: 1000;\n    }"],data:{animation:[{type:7,name:"typeaheadAnimation",definitions:[{type:0,name:"animated-down",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-down",animation:[{type:6,styles:{height:0,overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:0,name:"animated-up",styles:{type:6,styles:{height:"*",overflow:"hidden"},offset:null},options:void 0},{type:1,expr:"* => animated-up",animation:[{type:6,styles:{height:"*",overflow:"hidden"},offset:null},{type:4,styles:null,timings:"220ms cubic-bezier(0, 0, 0.2, 1)"}],options:null},{type:1,expr:"* => unanimated",animation:{type:4,styles:null,timings:"0s"},options:null}],options:{}}]}});function ah(t){return i["ɵvid"](0,[(t()(),i["ɵand"](0,null,null,0))],null,null)}function rh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"span",[],[[8,"innerHTML",1]],null,null,null,null))],null,(function(t,e){t(e,0,0,e.component.highlight(e.context.match,e.context.query))}))}function oh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,[[2,0],["liElements",1]],null,1,"li",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit)}))}function ih(t){return i["ɵvid"](0,[(t()(),i["ɵand"](0,null,null,0))],null,null)}function sh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,[[2,0],["liElements",1]],null,4,"li",[],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"mouseenter"]],(function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),i["ɵeld"](1,0,null,null,3,"a",[["href","#"],["tabindex","-1"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.selectMatch(t.parent.context.$implicit,n)&&a),a}),null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,ih)),i["ɵdid"](3,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),i["ɵpod"](4,{item:0,index:1,match:2,query:3})],(function(t,e){var n=e.component,a=t(e,4,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,3,0,a,n.itemTemplate||i["ɵnov"](e.parent.parent.parent,5))}),(function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))}))}function ch(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,oh)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,sh)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)}),null)}function lh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,[[1,0],["ulElement",1]],null,2,"ul",[["class","dropdown-menu"]],[[4,"overflow-y",null],[4,"height",null]],null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,ch)),i["ɵdid"](2,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){t(e,2,0,e.component.matches)}),(function(t,e){var n=e.component;t(e,0,0,n.needScrollbar?"scroll":"auto",n.needScrollbar?n.guiHeight:"auto")}))}function dh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"h6",[["class","dropdown-header"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit)}))}function uh(t){return i["ɵvid"](0,[(t()(),i["ɵand"](0,null,null,0))],null,null)}function gh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,[[2,0],["liElements",1]],null,3,"button",[["class","dropdown-item"]],[[24,"@typeaheadAnimation",0],[2,"active",null]],[[null,"@typeaheadAnimation.done"],[null,"click"],[null,"mouseenter"]],(function(t,e,n){var a=!0,r=t.component;return"@typeaheadAnimation.done"===e&&(a=!1!==r.positionServiceEnable()&&a),"click"===e&&(a=!1!==r.selectMatch(t.parent.context.$implicit,n)&&a),"mouseenter"===e&&(a=!1!==r.selectActive(t.parent.context.$implicit)&&a),a}),null,null)),(t()(),i["ɵand"](16777216,null,null,2,null,uh)),i["ɵdid"](2,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),i["ɵpod"](3,{item:0,index:1,match:2,query:3})],(function(t,e){var n=e.component,a=t(e,3,0,e.parent.context.$implicit.item,e.parent.context.index,e.parent.context.$implicit,n.query);t(e,2,0,a,n.itemTemplate||i["ɵnov"](e.parent.parent.parent,5))}),(function(t,e){var n=e.component;t(e,0,0,n.animationState,n.isActive(e.parent.context.$implicit))}))}function fh(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,dh)),i["ɵdid"](1,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,gh)),i["ɵdid"](3,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){var n=e.context.$implicit.isHeader();t(e,1,0,n);var a=!e.context.$implicit.isHeader();t(e,3,0,a)}),null)}function ph(t){return i["ɵvid"](0,[(t()(),i["ɵand"](16777216,null,null,1,null,fh)),i["ɵdid"](1,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](0,null,null,0))],(function(t,e){t(e,1,0,e.component.matches)}),null)}function mh(t){return i["ɵvid"](0,[i["ɵqud"](671088640,1,{ulElement:0}),i["ɵqud"](671088640,2,{liElements:1}),(t()(),i["ɵand"](16777216,null,null,2,null,ah)),i["ɵdid"](3,540672,null,0,o.NgTemplateOutlet,[i.ViewContainerRef],{ngTemplateOutletContext:[0,"ngTemplateOutletContext"],ngTemplateOutlet:[1,"ngTemplateOutlet"]},null),i["ɵpod"](4,{matches:0,itemTemplate:1,query:2}),(t()(),i["ɵand"](0,[["bsItemTemplate",2]],null,0,null,rh)),(t()(),i["ɵand"](0,[["bs3Template",2]],null,0,null,lh)),(t()(),i["ɵand"](0,[["bs4Template",2]],null,0,null,ph))],(function(t,e){var n=e.component,a=t(e,4,0,n.matches,n.itemTemplate,n.query);t(e,3,0,a,n.optionsListTemplate||i["ɵnov"](e,n.isBs4?7:6))}),null)}function hh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"typeahead-container",[["class","dropdown open bottom"],["style","position: absolute;display: block;"]],[[2,"dropdown-menu",null],[4,"overflow-y",null],[4,"height",null],[4,"visibility",null],[2,"dropup",null]],[[null,"mouseleave"],[null,"blur"]],(function(t,e,n){var a=!0;return"mouseleave"===e&&(a=!1!==i["ɵnov"](t,1).focusLost()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,1).focusLost()&&a),a}),mh,nh)),i["ɵdid"](1,49152,null,0,vf,[Gn.a,i.Renderer2,i.ElementRef],null,null)],null,(function(t,e){t(e,0,0,i["ɵnov"](e,1).isBs4,i["ɵnov"](e,1).isBs4&&i["ɵnov"](e,1).needScrollbar?"scroll":"visible",i["ɵnov"](e,1).isBs4&&i["ɵnov"](e,1).needScrollbar?i["ɵnov"](e,1).guiHeight:"auto",i["ɵnov"](e,1).visibility,i["ɵnov"](e,1).dropup)}))}var bh=i["ɵccf"]("typeahead-container",vf,hh,{},{},[]),yh=n("ajRT"),_h=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Oh(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["Deep "]))],null,null)}function vh(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["deep "]))],null,null)}function Ch(t){return i["ɵvid"](0,[i["ɵpid"](0,zi.a,[]),(t()(),i["ɵeld"](1,0,null,null,33,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](2,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](3,0,null,0,6,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["OSDs "])),(t()(),i["ɵeld"](5,0,null,null,3,null,null,null,null,null,null,null)),i["ɵdid"](6,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Oh)),i["ɵdid"](8,278528,null,0,o.NgSwitchCase,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),i["ɵted"](-1,null,["Scrub"])),(t()(),i["ɵeld"](10,0,null,1,24,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,23,"form",[["name","scrubForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,13).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,13).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,16).onSubmit()&&a),a}),null,null)),i["ɵdid"](12,16384,null,0,W.G,[],null,null),i["ɵdid"](13,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](15,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](16,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](17,0,null,null,11,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,10,"p",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["You are about to apply a "])),(t()(),i["ɵeld"](20,0,null,null,3,null,null,null,null,null,null,null)),i["ɵdid"](21,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,vh)),i["ɵdid"](23,278528,null,0,o.NgSwitchCase,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),i["ɵted"](-1,null,["scrub to the OSD(s): "])),(t()(),i["ɵeld"](25,0,null,null,2,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](26,null,["",""])),i["ɵppd"](27,1),(t()(),i["ɵted"](-1,null,["."])),(t()(),i["ɵeld"](29,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](30,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.scrub()&&a),a}),ri.b,ri.a)),i["ɵdid"](31,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](-1,0,["Submit"])),(t()(),i["ɵeld"](33,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,ii.b,ii.a)),i["ɵdid"](34,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.bsModalRef),t(e,6,0,n.deep),t(e,8,0,"1"),t(e,13,0,n.scrubForm),t(e,16,0,n.scrubForm),t(e,21,0,n.deep),t(e,23,0,"1"),t(e,31,0,n.scrubForm),t(e,34,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,11,0,i["ɵnov"](e,15).ngClassUntouched,i["ɵnov"](e,15).ngClassTouched,i["ɵnov"](e,15).ngClassPristine,i["ɵnov"](e,15).ngClassDirty,i["ɵnov"](e,15).ngClassValid,i["ɵnov"](e,15).ngClassInvalid,i["ɵnov"](e,15).ngClassPending);var a=i["ɵunv"](e,26,0,t(e,27,0,i["ɵnov"](e,0),n.selected));t(e,26,0,a)}))}function Ph(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-scrub-modal",[],null,null,null,Ch,_h)),i["ɵdid"](1,114688,null,0,Os,[Mt.a,Xr,gt.a,ia.a,zi.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Mh=i["ɵccf"]("cd-osd-scrub-modal",Os,Ph,{},{},[]),xh=i["ɵcrt"]({encapsulation:0,styles:[[".osd-modal[_ngcontent-%COMP%]   .oa-hr-small[_ngcontent-%COMP%]{margin:5px}"]],data:{}});function wh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"hr",[["class","oa-hr-small"]],null,null,null,null,null))],null,null)}function Th(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"checked",0],[8,"name",0],[8,"id",0],[8,"disabled",0],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"]],(function(t,e,n){var a=!0;return"change"===e&&(a=0!=(t.context.$implicit.value=!t.context.$implicit.value)&&a),a}),null,null)),i["ɵdid"](2,16384,null,0,K.h,[[3,W.d],K.a],null,null),(t()(),i["ɵeld"](3,0,null,null,5,"label",[["class","custom-control-label"],["ng-class","['tc_' + key]"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵeld"](4,0,null,null,1,"strong",[],null,null,null,null,null)),(t()(),i["ɵted"](5,null,["",""])),(t()(),i["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,1,"span",[["class","form-text text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](8,null,["",""])),(t()(),i["ɵand"](16777216,null,null,1,null,wh)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,10,0,!e.context.last)}),(function(t,e){t(e,1,0,e.context.$implicit.value,e.context.$implicit.code,e.context.$implicit.code,e.context.$implicit.disabled,i["ɵnov"](e,2).validClass,i["ɵnov"](e,2).invalidClass),t(e,3,0,e.context.$implicit.code),t(e,5,0,e.context.$implicit.name),t(e,8,0,e.context.$implicit.description)}))}function Sh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ri.b,ri.a)),i["ɵdid"](1,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](-1,0,["Submit"]))],(function(t,e){t(e,1,0,e.component.osdFlagsForm)}),null)}function kh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,19,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](1,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Cluster-wide OSD Flags"])),(t()(),i["ɵeld"](4,0,null,1,15,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,14,"form",[["name","osdFlagsForm"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),i["ɵdid"](6,16384,null,0,W.G,[],null,null),i["ɵdid"](7,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](9,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](10,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](11,0,null,null,2,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Th)),i["ɵdid"](13,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵeld"](14,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](15,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Sh)),i["ɵdid"](17,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](18,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,ii.b,ii.a)),i["ɵdid"](19,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdFlagsForm),t(e,10,0,n.osdFlagsForm),t(e,13,0,n.flags),t(e,17,0,n.permissions.osd.update),t(e,19,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,i["ɵnov"](e,9).ngClassUntouched,i["ɵnov"](e,9).ngClassTouched,i["ɵnov"](e,9).ngClassPristine,i["ɵnov"](e,9).ngClassDirty,i["ɵnov"](e,9).ngClassValid,i["ɵnov"](e,9).ngClassInvalid,i["ɵnov"](e,9).ngClassPending)}))}function Ih(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-flags-modal",[],null,null,null,kh,xh)),i["ɵdid"](1,114688,null,0,us,[Mt.a,yt.a,Xr,gt.a,ia.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Nh=i["ɵccf"]("cd-osd-flags-modal",us,Ih,{},{},[]),Rh=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Ah(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit.name),t(e,2,0,e.context.$implicit.name)}),(function(t,e){t(e,3,0,e.context.$implicit.text)}))}function Eh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function Dh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](2,0,["",""]))],null,(function(t,e){t(e,2,0,e.parent.context.$implicit.value.desc)}))}function Lh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function qh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["",""]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.patternHelpText)}))}function jh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.maxValue)}))}function Fh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.parent.context.$implicit.value.minValue)}))}function zh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,28,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,7,"label",[["class","col-form-label col-sm-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,4,"span",[],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](7,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpod"](8,{required:0}),(t()(),i["ɵted"](9,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,Dh)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](12,0,null,0,16,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,7,"input",[["class","form-control"],["type","number"]],[[8,"id",0],[8,"readOnly",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,14)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,14).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,14)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,14)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,15).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,15).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,15).onTouched()&&a),a}),null,null)),i["ɵdid"](14,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](15,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](17,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](19,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](20,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Lh)),i["ɵdid"](22,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,qh)),i["ɵdid"](24,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,jh)),i["ɵdid"](26,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Fh)),i["ɵdid"](28,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0);var a=t(e,8,0,n.osdRecvSpeedForm.getValue("customizePriority"));t(e,7,0,a),t(e,11,0,e.context.$implicit.value.desc),t(e,17,0,e.context.$implicit.key),t(e,20,0,e.context.$implicit.key),t(e,22,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,i["ɵnov"](e.parent,7),"required")),t(e,24,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,i["ɵnov"](e.parent,7),"pattern")),t(e,26,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,i["ɵnov"](e.parent,7),"max")),t(e,28,0,n.osdRecvSpeedForm.getValue("customizePriority")&&n.osdRecvSpeedForm.showError(e.context.$implicit.key,i["ɵnov"](e.parent,7),"min"))}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,e.context.$implicit.key),t(e,9,0,e.context.$implicit.value.text),t(e,13,1,[e.context.$implicit.key,!n.osdRecvSpeedForm.getValue("customizePriority"),i["ɵnov"](e,19).ngClassUntouched,i["ɵnov"](e,19).ngClassTouched,i["ɵnov"](e,19).ngClassPristine,i["ɵnov"](e,19).ngClassDirty,i["ɵnov"](e,19).ngClassValid,i["ɵnov"](e,19).ngClassInvalid,i["ɵnov"](e,19).ngClassPending,i["ɵnov"](e,20).validClass,i["ɵnov"](e,20).invalidClass])}))}function Gh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ri.b,ri.a)),i["ɵdid"](1,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](-1,0,["Submit"]))],(function(t,e){t(e,1,0,e.component.osdRecvSpeedForm)}),null)}function Bh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,53,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](1,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["OSD Recovery Priority"])),(t()(),i["ɵeld"](4,0,null,1,49,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,48,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),i["ɵdid"](6,16384,null,0,W.G,[],null,null),i["ɵdid"](7,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](9,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](10,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](11,0,null,null,36,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,17,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](13,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](16,0,null,0,1,"label",[["class","col-form-label col-sm-6 required"],["for","priority"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Priority"])),(t()(),i["ɵeld"](18,0,null,0,11,"div",[["class","col-sm-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,8,"select",[["class","form-control custom-select"],["formControlName","priority"],["id","priority"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,20).onTouched()&&a),"change"===e&&(a=!1!==r.onPriorityChange(n.target.value)&&a),a}),null,null)),i["ɵdid"](20,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](22,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](24,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](25,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ah)),i["ɵdid"](27,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Eh)),i["ɵdid"](29,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](30,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](31,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](34,0,null,0,10,"div",[["class","offset-sm-6 col-sm-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](35,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](36,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","customizePriority"],["id","customizePriority"],["name","customizePriority"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0,r=t.component;return"change"===e&&(a=!1!==i["ɵnov"](t,37).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,37).onTouched()&&a),"change"===e&&(a=!1!==r.onCustomizePriorityChange()&&a),a}),null,null)),i["ɵdid"](37,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](39,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](41,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](42,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](43,0,null,null,1,"label",[["class","custom-control-label"],["for","customizePriority"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Customize priority values"])),(t()(),i["ɵand"](16777216,null,null,2,null,zh)),i["ɵdid"](46,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),i["ɵpid"](0,o.KeyValuePipe,[i.KeyValueDiffers]),(t()(),i["ɵeld"](48,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](49,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Gh)),i["ɵdid"](51,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](52,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,ii.b,ii.a)),i["ɵdid"](53,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.osdRecvSpeedForm),t(e,10,0,n.osdRecvSpeedForm),t(e,13,0),t(e,22,0,"priority"),t(e,25,0,"priority"),t(e,27,0,n.priorities),t(e,29,0,n.osdRecvSpeedForm.showError("priority",i["ɵnov"](e,7),"required")),t(e,31,0),t(e,39,0,"customizePriority"),t(e,42,0,"customizePriority"),t(e,46,0,i["ɵunv"](e,46,0,i["ɵnov"](e,47).transform(n.priorityAttrs))),t(e,51,0,n.permissions.configOpt.update),t(e,53,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,i["ɵnov"](e,9).ngClassUntouched,i["ɵnov"](e,9).ngClassTouched,i["ɵnov"](e,9).ngClassPristine,i["ɵnov"](e,9).ngClassDirty,i["ɵnov"](e,9).ngClassValid,i["ɵnov"](e,9).ngClassInvalid,i["ɵnov"](e,9).ngClassPending),t(e,12,0,i["ɵnov"](e,13).hasErrors,i["ɵnov"](e,13).hasSuccess),t(e,19,0,i["ɵnov"](e,24).ngClassUntouched,i["ɵnov"](e,24).ngClassTouched,i["ɵnov"](e,24).ngClassPristine,i["ɵnov"](e,24).ngClassDirty,i["ɵnov"](e,24).ngClassValid,i["ɵnov"](e,24).ngClassInvalid,i["ɵnov"](e,24).ngClassPending,i["ɵnov"](e,25).validClass,i["ɵnov"](e,25).invalidClass),t(e,30,0,i["ɵnov"](e,31).hasErrors,i["ɵnov"](e,31).hasSuccess),t(e,36,0,i["ɵnov"](e,41).ngClassUntouched,i["ɵnov"](e,41).ngClassTouched,i["ɵnov"](e,41).ngClassPristine,i["ɵnov"](e,41).ngClassDirty,i["ɵnov"](e,41).ngClassValid,i["ɵnov"](e,41).ngClassInvalid,i["ɵnov"](e,41).ngClassPending,i["ɵnov"](e,42).validClass,i["ɵnov"](e,42).invalidClass)}))}function Vh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-recv-speed-modal",[],null,null,null,Bh,Rh)),i["ɵdid"](1,114688,null,0,bs,[Mt.a,yt.a,gs.a,gt.a,ia.a,Xr],null,null)],(function(t,e){t(e,1,0)}),null)}var Yh=i["ɵccf"]("cd-osd-recv-speed-modal",bs,Vh,{},{},[]),Hh=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Uh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required."]))],null,null)}function Wh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["The value needs to be between 0 and 1."]))],null,null)}function Kh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Uh)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Wh)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,2,0,null==n.weight.errors?null:n.weight.errors.required),t(e,4,0,(null==n.weight.errors?null:n.weight.errors.max)||(null==n.weight.errors?null:n.weight.errors.min))}),null)}function $h(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,31,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](1,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](3,null,["Reweight OSD: ",""])),(t()(),i["ɵeld"](4,0,null,1,27,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,26,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),i["ɵdid"](6,16384,null,0,W.G,[],null,null),i["ɵdid"](7,540672,null,0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](9,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](10,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](11,0,null,null,14,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,13,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,1,"label",[["class","col-sm-2 col-form-label"],["for","weight"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Weight"])),(t()(),i["ɵeld"](15,0,null,null,10,"div",[["class","col-sm-10"]],null,null,null,null,null)),(t()(),i["ɵeld"](16,0,null,null,7,"input",[["class","form-control"],["formControlName","weight"],["id","weight"],["max","1"],["min","0"],["step","0.1"],["type","number"]],[[8,"value",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"change"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,17)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,17).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,17)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,17)._compositionEnd(n.target.value)&&a),"change"===e&&(a=!1!==i["ɵnov"](t,18).onChange(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,18).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,18).onTouched()&&a),a}),null,null)),i["ɵdid"](17,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵdid"](18,16384,null,0,W.w,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t,e){return[t,e]}),[W.e,W.w]),i["ɵdid"](20,671744,null,0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](22,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](23,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Kh)),i["ɵdid"](25,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](27,0,null,null,2,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.reweight()&&a),a}),ri.b,ri.a)),i["ɵdid"](28,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](-1,0,["Reweight"])),(t()(),i["ɵeld"](30,0,null,null,1,"cd-back-button",[["name","Cancel"]],null,null,null,ii.b,ii.a)),i["ɵdid"](31,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.reweightForm),t(e,10,0,n.reweightForm),t(e,20,0,"weight"),t(e,23,0,"weight"),t(e,25,0,n.weight.errors),t(e,28,0,n.reweightForm,n.reweightForm.invalid),t(e,31,0,"Cancel",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,3,0,n.osdId),t(e,5,0,i["ɵnov"](e,9).ngClassUntouched,i["ɵnov"](e,9).ngClassTouched,i["ɵnov"](e,9).ngClassPristine,i["ɵnov"](e,9).ngClassDirty,i["ɵnov"](e,9).ngClassValid,i["ɵnov"](e,9).ngClassInvalid,i["ɵnov"](e,9).ngClassPending),t(e,16,0,n.currentWeight,i["ɵnov"](e,22).ngClassUntouched,i["ɵnov"](e,22).ngClassTouched,i["ɵnov"](e,22).ngClassPristine,i["ɵnov"](e,22).ngClassDirty,i["ɵnov"](e,22).ngClassValid,i["ɵnov"](e,22).ngClassInvalid,i["ɵnov"](e,22).ngClassPending,i["ɵnov"](e,23).validClass,i["ɵnov"](e,23).invalidClass)}))}function Zh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-reweight-modal",[],null,null,null,$h,Hh)),i["ɵdid"](1,114688,null,0,_s,[Mt.a,Xr,ys.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Jh=i["ɵccf"]("cd-osd-reweight-modal",_s,Zh,{},{},[]),Xh=i["ɵcrt"]({encapsulation:0,styles:[[".custom-checkbox[_ngcontent-%COMP%]   input[_ngcontent-%COMP%], .custom-checkbox[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{cursor:pointer}.col-form-label[_ngcontent-%COMP%]{text-align:left}"]],data:{}});function Qh(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](2,0,[" ",""]))],null,(function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)}))}function tb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,21,"div",[["class","form-group row pt-2"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,7,"label",[["class","col-form-label col-6"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,1,"b",[],null,null,null,null,null)),(t()(),i["ɵted"](6,null,["",""])),(t()(),i["ɵeld"](7,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](9,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,Qh)),i["ɵdid"](11,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](12,0,null,0,9,"div",[["class","col-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,8,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](14,0,null,null,6,"input",[["class","custom-control-input"],["type","checkbox"]],[[8,"id",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,15).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,15).onTouched()&&a),a}),null,null)),i["ɵdid"](15,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](17,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](19,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](20,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](21,0,null,null,0,"label",[["class","custom-control-label"]],[[8,"htmlFor",0]],null,null,null,null))],(function(t,e){t(e,1,0),t(e,11,0,e.parent.context.$implicit.long_desc),t(e,17,0,e.parent.context.$implicit.name),t(e,20,0,e.parent.context.$implicit.name)}),(function(t,e){t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit.name),t(e,6,0,e.parent.context.$implicit.text),t(e,9,0,e.parent.context.$implicit.desc),t(e,14,0,e.parent.context.$implicit.name,i["ɵnov"](e,19).ngClassUntouched,i["ɵnov"](e,19).ngClassTouched,i["ɵnov"](e,19).ngClassPristine,i["ɵnov"](e,19).ngClassDirty,i["ɵnov"](e,19).ngClassValid,i["ɵnov"](e,19).ngClassInvalid,i["ɵnov"](e,19).ngClassPending,i["ɵnov"](e,20).validClass,i["ɵnov"](e,20).invalidClass),t(e,21,0,e.parent.context.$implicit.name)}))}function eb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"cd-helper",[],null,null,null,Es.b,Es.a)),i["ɵdid"](1,49152,null,0,Ds.a,[],null,null),(t()(),i["ɵted"](2,0,[" ",""]))],null,(function(t,e){t(e,2,0,e.parent.parent.context.$implicit.long_desc)}))}function nb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"div",[["class","input-group-append"]],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,4,"button",[["class","btn btn-light"],["data-toggle","button"],["title","Remove the custom configuration value. The default configuration will be inherited and used instead."],["type","button"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=!1!==t.component.resetValue(t.parent.parent.context.$implicit.name)&&a),a}),null,null)),(t()(),i["ɵeld"](2,0,null,null,3,"i",[["aria-hidden","true"]],null,null,null,null,null)),i["ɵprd"](512,null,o["ɵNgClassImpl"],o["ɵNgClassR2Impl"],[i.IterableDiffers,i.KeyValueDiffers,i.ElementRef,i.Renderer2]),i["ɵdid"](4,278528,null,0,o.NgClass,[o["ɵNgClassImpl"]],{ngClass:[0,"ngClass"]},null),i["ɵpad"](5,1)],(function(t,e){var n=t(e,5,0,e.component.icons.erase);t(e,4,0,n)}),null)}function ab(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ",""]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)}))}function rb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" ",""]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.additionalTypeInfo.patternHelpText)}))}function ob(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too high! It must not be greater than ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.maxValue)}))}function ib(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","invalid-feedback"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,["The entered value is too low! It must not be lower than ","."]))],null,(function(t,e){t(e,1,0,e.parent.parent.context.$implicit.minValue)}))}function sb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,29,"div",[["class","form-group row pt-2"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](1,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](4,0,null,0,6,"label",[["class","col-6 col-form-label"]],[[8,"htmlFor",0]],null,null,null,null)),(t()(),i["ɵted"](5,null,[""," "])),(t()(),i["ɵeld"](6,0,null,null,0,"br",[],null,null,null,null,null)),(t()(),i["ɵeld"](7,0,null,null,3,"span",[["class","text-muted"]],null,null,null,null,null)),(t()(),i["ɵted"](8,null,[" "," "])),(t()(),i["ɵand"](16777216,null,null,1,null,eb)),i["ɵdid"](10,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](11,0,null,0,18,"div",[["class","col-6"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,9,"div",[["class","input-group"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,6,"input",[["class","form-control"]],[[8,"type",0],[8,"id",0],[8,"placeholder",0],[8,"step",0],[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,14)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,14).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,14)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,14)._compositionEnd(n.target.value)&&a),a}),null,null)),i["ɵdid"](14,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](16,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](18,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](19,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,nb)),i["ɵdid"](21,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ab)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,rb)),i["ɵdid"](25,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ob)),i["ɵdid"](27,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,ib)),i["ɵdid"](29,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){var n=e.component;t(e,1,0),t(e,10,0,e.parent.context.$implicit.long_desc),t(e,16,0,e.parent.context.$implicit.name),t(e,19,0,e.parent.context.$implicit.name),t(e,21,0,n.optionsFormShowReset),t(e,23,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"pattern")),t(e,25,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"invalidUuid")),t(e,27,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"max")),t(e,29,0,n.optionsForm.showError(e.parent.context.$implicit.name,n.optionsFormDir,"min"))}),(function(t,e){var n=e.component;t(e,0,0,i["ɵnov"](e,1).hasErrors,i["ɵnov"](e,1).hasSuccess),t(e,4,0,e.parent.context.$implicit.name),t(e,5,0,e.parent.context.$implicit.text),t(e,8,0,e.parent.context.$implicit.desc),t(e,13,1,[e.parent.context.$implicit.additionalTypeInfo.inputType,e.parent.context.$implicit.name,e.parent.context.$implicit.additionalTypeInfo.humanReadable,n.getStep(e.parent.context.$implicit.type,n.optionsForm.getValue(e.parent.context.$implicit.name)),i["ɵnov"](e,18).ngClassUntouched,i["ɵnov"](e,18).ngClassTouched,i["ɵnov"](e,18).ngClassPristine,i["ɵnov"](e,18).ngClassDirty,i["ɵnov"](e,18).ngClassValid,i["ɵnov"](e,18).ngClassInvalid,i["ɵnov"](e,18).ngClassPending,i["ɵnov"](e,19).validClass,i["ɵnov"](e,19).invalidClass])}))}function cb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,0,"hr",[["class","my-2"]],null,null,null,null,null))],null,null)}function lb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"div",[],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,tb)),i["ɵdid"](2,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,sb)),i["ɵdid"](4,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,cb)),i["ɵdid"](6,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null)],(function(t,e){t(e,2,0,"bool"===e.context.$implicit.type),t(e,4,0,"bool"!==e.context.$implicit.type),t(e,6,0,!e.context.last)}),null)}function db(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,6,"div",[],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,1).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,1).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,4).onSubmit()&&a),a}),null,null)),i["ɵdid"](1,540672,null,0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](3,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](4,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,lb)),i["ɵdid"](6,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.optionsFormGroup),t(e,4,0,n.optionsFormGroup),t(e,6,0,n.options)}),(function(t,e){t(e,0,0,i["ɵnov"](e,3).ngClassUntouched,i["ɵnov"](e,3).ngClassTouched,i["ɵnov"](e,3).ngClassPristine,i["ɵnov"](e,3).ngClassDirty,i["ɵnov"](e,3).ngClassValid,i["ɵnov"](e,3).ngClassInvalid,i["ɵnov"](e,3).ngClassPending)}))}var ub=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function gb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"a",[["class","pull-right margin-right-md"]],null,[[null,"click"]],(function(t,e,n){var a=!0;return"click"===e&&(a=0!=(t.component.advancedEnabled=!0)&&a),a}),null,null)),(t()(),i["ɵted"](-1,null,["Advanced..."]))],null,null)}function fb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"h2",[["class","page-header"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Advanced configuration options"])),(t()(),i["ɵeld"](3,0,null,null,1,"cd-config-option",[],null,null,null,db,Xh)),i["ɵdid"](4,114688,[[2,4],["advancedOptionsValues",4]],0,ps,[gs.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.advancedOptions,n.osdPgScrubForm,i["ɵnov"](e.parent,13),"advancedFormGroup")}),null)}function pb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.submitAction()&&a),a}),ri.b,ri.a)),i["ɵdid"](1,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](2,0,[""," ",""])),i["ɵppd"](3,1),i["ɵppd"](4,1)],(function(t,e){t(e,1,0,e.component.osdPgScrubForm)}),(function(t,e){var n=e.component,a=i["ɵunv"](e,2,0,t(e,3,0,i["ɵnov"](e.parent,0),n.action)),r=i["ɵunv"](e,2,1,t(e,4,0,i["ɵnov"](e.parent,1),n.resource));t(e,2,0,a,r)}))}function mb(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵpid"](0,ci.a,[]),i["ɵqud"](402653184,1,{basicOptionsValues:0}),i["ɵqud"](671088640,2,{advancedOptionsValues:0}),(t()(),i["ɵeld"](4,0,null,null,27,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](5,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](6,0,null,0,3,null,null,null,null,null,null,null)),(t()(),i["ɵted"](7,null,[""," ",""])),i["ɵppd"](8,1),i["ɵppd"](9,1),(t()(),i["ɵeld"](10,0,null,1,21,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](11,0,null,null,20,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,13).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,13).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,16).onSubmit()&&a),a}),null,null)),i["ɵdid"](12,16384,null,0,W.G,[],null,null),i["ɵdid"](13,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](15,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](16,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](17,0,null,null,8,"div",[["class","modal-body osd-modal"]],null,null,null,null,null)),(t()(),i["ɵeld"](18,0,null,null,1,"cd-config-option",[],null,null,null,db,Xh)),i["ɵdid"](19,114688,[[1,4],["basicOptionsValues",4]],0,ps,[gs.a],{optionNames:[0,"optionNames"],optionsForm:[1,"optionsForm"],optionsFormDir:[2,"optionsFormDir"],optionsFormGroupName:[3,"optionsFormGroupName"]},null),(t()(),i["ɵeld"](20,0,null,null,3,"div",[["class","row"]],null,null,null,null,null)),(t()(),i["ɵeld"](21,0,null,null,2,"div",[["class","col-sm-12"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,gb)),i["ɵdid"](23,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,fb)),i["ɵdid"](25,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](26,0,null,null,5,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](27,0,null,null,4,"div",[["class","button-group text-right"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,pb)),i["ɵdid"](29,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](30,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](31,49152,null,0,si.a,[o.Location,vt.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,5,0,n.bsModalRef),t(e,13,0,n.osdPgScrubForm),t(e,16,0,n.osdPgScrubForm),t(e,19,0,n.basicOptions,n.osdPgScrubForm,i["ɵnov"](e,13),"basicFormGroup"),t(e,23,0,!n.advancedEnabled),t(e,25,0,n.advancedEnabled),t(e,29,0,n.permissions.configOpt.update),t(e,31,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component,a=i["ɵunv"](e,7,0,t(e,8,0,i["ɵnov"](e,0),n.action)),r=i["ɵunv"](e,7,1,t(e,9,0,i["ɵnov"](e,1),n.resource));t(e,7,0,a,r),t(e,11,0,i["ɵnov"](e,15).ngClassUntouched,i["ɵnov"](e,15).ngClassTouched,i["ɵnov"](e,15).ngClassPristine,i["ɵnov"](e,15).ngClassDirty,i["ɵnov"](e,15).ngClassValid,i["ɵnov"](e,15).ngClassInvalid,i["ɵnov"](e,15).ngClassPending)}))}function hb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-pg-scrub-modal",[],null,null,null,mb,ub)),i["ɵdid"](1,49152,null,0,hs,[Mt.a,yt.a,gt.a,ia.a,vt.b],null,null)],null,null)}var bb=i["ɵccf"]("cd-osd-pg-scrub-modal",hs,hb,{},{},[]),yb=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function _b(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](1,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{value:[0,"value"]},null),i["ɵdid"](2,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{value:[0,"value"]},null),(t()(),i["ɵted"](3,null,[" "," "]))],(function(t,e){t(e,1,0,e.context.$implicit),t(e,2,0,e.context.$implicit)}),(function(t,e){t(e,3,0,e.context.$implicit)}))}function Ob(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function vb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","help-block"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["This field is required!"]))],null,null)}function Cb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,2,"div",[["id","match-state"]],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,1,"span",[],[[8,"className",0]],null,null,null,null)),(t()(),i["ɵted"](2,null,[" "," "]))],null,(function(t,e){var n=e.component;t(e,0,0,i["ɵinlineInterpolate"](1,"cd-col-form-offset ",n.matcherMatch.cssClass,"")),t(e,1,0,i["ɵinlineInterpolate"](1,"text-muted ",n.matcherMatch.cssClass,"")),t(e,2,0,n.matcherMatch.status)}))}function Pb(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["Update"]))],null,null)}function Mb(t){return i["ɵvid"](0,[(t()(),i["ɵted"](-1,null,["Add"]))],null,null)}function xb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,79,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](1,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Matcher"])),(t()(),i["ɵeld"](4,0,null,1,75,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,74,"form",[["class","form"],["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,7).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,7).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,10).onSubmit()&&a),a}),null,null)),i["ɵdid"](6,16384,null,0,W.G,[],null,null),i["ɵdid"](7,540672,[["formDir",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](9,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](10,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](11,0,null,null,56,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](12,0,null,null,21,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](13,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,1,{FormControlNames:1}),i["ɵqud"](603979776,2,{messagesBlock:0}),(t()(),i["ɵeld"](16,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","name"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Name"])),(t()(),i["ɵeld"](18,0,null,0,15,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,12,"select",[["class","form-control"],["formControlName","name"],["id","name"],["name","name"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,20).onChange(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,20).onTouched()&&a),a}),null,null)),i["ɵdid"](20,16384,null,0,W.A,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.A]),i["ɵdid"](22,671744,[[1,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](24,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](25,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](26,0,null,null,3,"option",[],null,null,null,null,null)),i["ɵdid"](27,147456,null,0,W.v,[i.ElementRef,i.Renderer2,[2,W.A]],{ngValue:[0,"ngValue"]},null),i["ɵdid"](28,147456,null,0,W.F,[i.ElementRef,i.Renderer2,[8,null]],{ngValue:[0,"ngValue"]},null),(t()(),i["ɵted"](-1,null,["-- Select an attribute to match against --"])),(t()(),i["ɵand"](16777216,null,null,1,null,_b)),i["ɵdid"](31,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Ob)),i["ɵdid"](33,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](34,0,null,null,18,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](35,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,3,{FormControlNames:1}),i["ɵqud"](603979776,4,{messagesBlock:0}),(t()(),i["ɵeld"](38,0,null,0,1,"label",[["class","cd-col-form-label required"],["for","value"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Value"])),(t()(),i["ɵeld"](40,0,null,0,10,"div",[["class","cd-col-form-input"]],null,null,null,null,null)),(t()(),i["ɵeld"](41,16777216,null,null,7,"input",[["class","form-control"],["formControlName","value"],["id","value"],["type","text"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"input"],[null,"blur"],[null,"compositionstart"],[null,"compositionend"],[null,"keyup"],[null,"click"],[null,"focus"],[null,"keydown"]],(function(t,e,n){var a=!0;return"input"===e&&(a=!1!==i["ɵnov"](t,42)._handleInput(n.target.value)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,42).onTouched()&&a),"compositionstart"===e&&(a=!1!==i["ɵnov"](t,42)._compositionStart()&&a),"compositionend"===e&&(a=!1!==i["ɵnov"](t,42)._compositionEnd(n.target.value)&&a),"input"===e&&(a=!1!==i["ɵnov"](t,47).onInput(n)&&a),"keyup"===e&&(a=!1!==i["ɵnov"](t,47).onChange(n)&&a),"click"===e&&(a=!1!==i["ɵnov"](t,47).onFocus()&&a),"focus"===e&&(a=!1!==i["ɵnov"](t,47).onFocus()&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,47).onBlur()&&a),"keydown"===e&&(a=!1!==i["ɵnov"](t,47).onKeydown(n)&&a),a}),null,null)),i["ɵdid"](42,16384,null,0,W.e,[i.Renderer2,i.ElementRef,[2,W.b]],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.e]),i["ɵdid"](44,671744,[[3,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](46,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](47,212992,null,0,Pf,[U.a,Cf,i.ChangeDetectorRef,i.ElementRef,W.q,i.Renderer2,i.ViewContainerRef],{typeahead:[0,"typeahead"],typeaheadMinLength:[1,"typeaheadMinLength"]},null),i["ɵdid"](48,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,vb)),i["ɵdid"](50,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵand"](16777216,null,0,1,null,Cb)),i["ɵdid"](52,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](53,0,null,null,14,"div",[["class","form-group row"]],[[2,"has-error",null],[2,"has-success",null]],null,null,ni.b,ni.a)),i["ɵdid"](54,1163264,null,2,K.c,[i.ElementRef,K.g],null,null),i["ɵqud"](603979776,5,{FormControlNames:1}),i["ɵqud"](603979776,6,{messagesBlock:0}),(t()(),i["ɵeld"](57,0,null,0,10,"div",[["class","cd-col-form-offset"]],null,null,null,null,null)),(t()(),i["ɵeld"](58,0,null,null,9,"div",[["class","custom-control custom-checkbox"]],null,null,null,null,null)),(t()(),i["ɵeld"](59,0,null,null,6,"input",[["class","custom-control-input"],["formControlName","isRegex"],["id","is-regex"],["name","is-regex"],["type","checkbox"]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null],[2,"is-valid",null],[2,"is-invalid",null]],[[null,"change"],[null,"blur"]],(function(t,e,n){var a=!0;return"change"===e&&(a=!1!==i["ɵnov"](t,60).onChange(n.target.checked)&&a),"blur"===e&&(a=!1!==i["ɵnov"](t,60).onTouched()&&a),a}),null,null)),i["ɵdid"](60,16384,null,0,W.c,[i.Renderer2,i.ElementRef],null,null),i["ɵprd"](1024,null,W.p,(function(t){return[t]}),[W.c]),i["ɵdid"](62,671744,[[5,4]],0,W.j,[[3,W.d],[8,null],[8,null],[6,W.p],[2,W.E]],{name:[0,"name"]},null),i["ɵprd"](2048,null,W.q,null,[W.j]),i["ɵdid"](64,16384,null,0,W.r,[[4,W.q]],null,null),i["ɵdid"](65,16384,null,0,K.h,[[3,W.d],K.a],{formControlName:[0,"formControlName"]},null),(t()(),i["ɵeld"](66,0,null,null,1,"label",[["class","custom-control-label"],["for","is-regex"]],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["Use regular expression"])),(t()(),i["ɵeld"](68,0,null,null,11,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](69,0,null,null,8,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](70,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵeld"](71,0,null,0,6,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](72,0,null,null,5,null,null,null,null,null,null,null)),i["ɵdid"](73,16384,null,0,o.NgSwitch,[],{ngSwitch:[0,"ngSwitch"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Pb)),i["ɵdid"](75,278528,null,0,o.NgSwitchCase,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],{ngSwitchCase:[0,"ngSwitchCase"]},null),(t()(),i["ɵand"](16777216,null,null,1,null,Mb)),i["ɵdid"](77,16384,null,0,o.NgSwitchDefault,[i.ViewContainerRef,i.TemplateRef,o.NgSwitch],null,null),(t()(),i["ɵeld"](78,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,ii.b,ii.a)),i["ɵdid"](79,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0,n.form),t(e,10,0,n.form),t(e,13,0),t(e,22,0,"name"),t(e,25,0,"name"),t(e,27,0,null),t(e,28,0,null),t(e,31,0,n.nameAttributes),t(e,33,0,n.form.showError("name",i["ɵnov"](e,7),"required")),t(e,35,0),t(e,44,0,"value"),t(e,47,0,n.possibleValues,0),t(e,48,0,"value"),t(e,50,0,n.form.showError("value",i["ɵnov"](e,7),"required")),t(e,52,0,n.form.getValue("value")&&!n.form.getValue("isRegex")&&n.matcherMatch),t(e,54,0),t(e,62,0,"isRegex"),t(e,65,0,"isRegex"),t(e,70,0,n.form),t(e,73,0,n.editMode),t(e,75,0,"1"),t(e,79,0,"Close",n.bsModalRef.hide)}),(function(t,e){t(e,5,0,i["ɵnov"](e,9).ngClassUntouched,i["ɵnov"](e,9).ngClassTouched,i["ɵnov"](e,9).ngClassPristine,i["ɵnov"](e,9).ngClassDirty,i["ɵnov"](e,9).ngClassValid,i["ɵnov"](e,9).ngClassInvalid,i["ɵnov"](e,9).ngClassPending),t(e,12,0,i["ɵnov"](e,13).hasErrors,i["ɵnov"](e,13).hasSuccess),t(e,19,0,i["ɵnov"](e,24).ngClassUntouched,i["ɵnov"](e,24).ngClassTouched,i["ɵnov"](e,24).ngClassPristine,i["ɵnov"](e,24).ngClassDirty,i["ɵnov"](e,24).ngClassValid,i["ɵnov"](e,24).ngClassInvalid,i["ɵnov"](e,24).ngClassPending,i["ɵnov"](e,25).validClass,i["ɵnov"](e,25).invalidClass),t(e,34,0,i["ɵnov"](e,35).hasErrors,i["ɵnov"](e,35).hasSuccess),t(e,41,0,i["ɵnov"](e,46).ngClassUntouched,i["ɵnov"](e,46).ngClassTouched,i["ɵnov"](e,46).ngClassPristine,i["ɵnov"](e,46).ngClassDirty,i["ɵnov"](e,46).ngClassValid,i["ɵnov"](e,46).ngClassInvalid,i["ɵnov"](e,46).ngClassPending,i["ɵnov"](e,48).validClass,i["ɵnov"](e,48).invalidClass),t(e,53,0,i["ɵnov"](e,54).hasErrors,i["ɵnov"](e,54).hasSuccess),t(e,59,0,i["ɵnov"](e,64).ngClassUntouched,i["ɵnov"](e,64).ngClassTouched,i["ɵnov"](e,64).ngClassPristine,i["ɵnov"](e,64).ngClassDirty,i["ɵnov"](e,64).ngClassValid,i["ɵnov"](e,64).ngClassInvalid,i["ɵnov"](e,64).ngClassPending,i["ɵnov"](e,65).validClass,i["ɵnov"](e,65).invalidClass)}))}function wb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-silence-matcher-modal",[],null,null,null,xb,yb)),i["ɵdid"](1,49152,null,0,zd,[ys.a,jd,Mt.a],null,null)],null,null)}var Tb=i["ɵccf"]("cd-silence-matcher-modal",zd,wb,{},{submitAction:"submitAction"},[]),Sb=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function kb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"span",[["class","badge badge-dark ml-2"]],null,null,null,null,null)),(t()(),i["ɵted"](1,null,[" "," "]))],null,(function(t,e){t(e,1,0,e.context.$implicit)}))}function Ib(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,5,"cd-alert-panel",[["size","slim"],["type","warning"]],null,null,null,vr.b,vr.a)),i["ɵdid"](1,114688,null,0,Cr.a,[ia.a],{type:[0,"type"],size:[1,"size"],showTitle:[2,"showTitle"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["At least one of these filters must be applied in order to proceed:"])),(t()(),i["ɵand"](16777216,null,0,1,null,kb)),i["ɵdid"](5,278528,null,0,o.NgForOf,[i.ViewContainerRef,i.TemplateRef,i.IterableDiffers],{ngForOf:[0,"ngForOf"]},null)],(function(t,e){var n=e.component;t(e,1,0,"warning","slim",!1),t(e,5,0,n.requiredFilters)}),null)}function Nb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,4,"div",[],null,null,null,null,null)),(t()(),i["ɵeld"](1,0,null,null,3,"p",[["class","text-center"]],null,null,null,null,null)),(t()(),i["ɵeld"](2,0,null,null,2,"span",[],null,null,null,null,null)),(t()(),i["ɵted"](3,null,["Number of devices: ",". Raw capacity: ","."])),i["ɵppd"](4,1)],null,(function(t,e){var n=e.component,a=n.filteredDevices.length,r=i["ɵunv"](e,3,1,t(e,4,0,i["ɵnov"](e.parent,0),n.capacity));t(e,3,0,a,r)}))}function Rb(t){return i["ɵvid"](0,[i["ɵpid"](0,Qn.a,[ua.a]),i["ɵpid"](0,o.TitleCasePipe,[]),i["ɵqud"](671088640,1,{inventoryDevices:0}),(t()(),i["ɵeld"](3,0,null,null,25,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](4,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](5,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](6,null,[""," devices"])),(t()(),i["ɵeld"](7,0,null,1,21,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](8,0,null,null,20,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,10).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,10).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,13).onSubmit()&&a),a}),null,null)),i["ɵdid"](9,16384,null,0,W.G,[],null,null),i["ɵdid"](10,540672,[["frm",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](12,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](13,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](14,0,null,null,7,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵand"](16777216,null,null,1,null,Ib)),i["ɵdid"](16,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](17,0,null,null,2,"cd-inventory-devices",[],null,[[null,"filterChange"]],(function(t,e,n){var a=!0;return"filterChange"===e&&(a=!1!==t.component.onFilterChange(n)&&a),a}),Rr,Nr)),i["ɵdid"](18,245760,[[1,4],["inventoryDevices",4]],0,Ir,[yt.a,Qn.a,ia.a,Mt.b,gt.a,wr],{devices:[0,"devices"],hiddenColumns:[1,"hiddenColumns"],filterColumns:[2,"filterColumns"]},{filterChange:"filterChange"}),i["ɵpad"](19,2),(t()(),i["ɵand"](16777216,null,null,1,null,Nb)),i["ɵdid"](21,16384,null,0,o.NgIf,[i.ViewContainerRef,i.TemplateRef],{ngIf:[0,"ngIf"]},null),(t()(),i["ɵeld"](22,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](23,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](24,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"],disabled:[1,"disabled"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](25,0,["",""])),i["ɵppd"](26,1),(t()(),i["ɵeld"](27,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](28,49152,null,0,si.a,[o.Location,vt.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,4,0,n.bsModalRef),t(e,10,0,n.formGroup),t(e,13,0,n.formGroup),t(e,16,0,!n.canSubmit);var a=n.devices,r=t(e,19,0,"available","osd_ids");t(e,18,0,a,r,n.filterColumns),t(e,21,0,n.canSubmit),t(e,24,0,n.formGroup,!n.canSubmit||0===n.filteredDevices.length),t(e,28,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,6,0,n.deviceType),t(e,8,0,i["ɵnov"](e,12).ngClassUntouched,i["ɵnov"](e,12).ngClassTouched,i["ɵnov"](e,12).ngClassPristine,i["ɵnov"](e,12).ngClassDirty,i["ɵnov"](e,12).ngClassValid,i["ɵnov"](e,12).ngClassInvalid,i["ɵnov"](e,12).ngClassPending);var a=i["ɵunv"](e,25,0,t(e,26,0,i["ɵnov"](e,1),n.action));t(e,25,0,a)}))}function Ab(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-devices-selection-modal",[],null,null,null,Rb,Sb)),i["ɵdid"](1,4243456,null,0,Ls,[ys.a,Mt.a,vt.b],null,null)],null,null)}var Eb=i["ɵccf"]("cd-osd-devices-selection-modal",Ls,Ab,{},{submitAction:"submitAction"},[]),Db=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Lb(t){return i["ɵvid"](0,[i["ɵpid"](0,o.TitleCasePipe,[]),(t()(),i["ɵeld"](1,0,null,null,23,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](2,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](3,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["OSD creation preview"])),(t()(),i["ɵeld"](5,0,null,1,19,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,18,"form",[["novalidate",""]],[[2,"ng-untouched",null],[2,"ng-touched",null],[2,"ng-pristine",null],[2,"ng-dirty",null],[2,"ng-valid",null],[2,"ng-invalid",null],[2,"ng-pending",null]],[[null,"submit"],[null,"reset"]],(function(t,e,n){var a=!0;return"submit"===e&&(a=!1!==i["ɵnov"](t,8).onSubmit(n)&&a),"reset"===e&&(a=!1!==i["ɵnov"](t,8).onReset()&&a),"submit"===e&&(a=!1!==i["ɵnov"](t,11).onSubmit()&&a),a}),null,null)),i["ɵdid"](7,16384,null,0,W.G,[],null,null),i["ɵdid"](8,540672,[["frm",4]],0,W.l,[[8,null],[8,null]],{form:[0,"form"]},null),i["ɵprd"](2048,null,W.d,null,[W.l]),i["ɵdid"](10,16384,null,0,W.s,[[4,W.d]],null,null),i["ɵdid"](11,16384,null,0,K.d,[],{formGroup:[0,"formGroup"]},null),(t()(),i["ɵeld"](12,0,null,null,5,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](13,0,null,null,1,"h3",[],null,null,null,null,null)),(t()(),i["ɵted"](-1,null,["DriveGroups"])),(t()(),i["ɵeld"](15,0,null,null,2,"pre",[],null,null,null,null,null)),(t()(),i["ɵted"](16,null,["",""])),i["ɵpid"](0,o.JsonPipe,[]),(t()(),i["ɵeld"](18,0,null,null,6,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](19,0,null,null,3,"cd-submit-button",[],null,[[null,"submitAction"]],(function(t,e,n){var a=!0;return"submitAction"===e&&(a=!1!==t.component.onSubmit()&&a),a}),ri.b,ri.a)),i["ɵdid"](20,114688,null,0,oi.a,[i.ElementRef],{form:[0,"form"]},{submitAction:"submitAction"}),(t()(),i["ɵted"](21,0,["",""])),i["ɵppd"](22,1),(t()(),i["ɵeld"](23,0,null,null,1,"cd-back-button",[],null,null,null,ii.b,ii.a)),i["ɵdid"](24,49152,null,0,si.a,[o.Location,vt.b],{back:[0,"back"]},null)],(function(t,e){var n=e.component;t(e,2,0,n.bsModalRef),t(e,8,0,n.formGroup),t(e,11,0,n.formGroup),t(e,20,0,n.formGroup),t(e,24,0,n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,6,0,i["ɵnov"](e,10).ngClassUntouched,i["ɵnov"](e,10).ngClassTouched,i["ɵnov"](e,10).ngClassPristine,i["ɵnov"](e,10).ngClassDirty,i["ɵnov"](e,10).ngClassValid,i["ɵnov"](e,10).ngClassInvalid,i["ɵnov"](e,10).ngClassPending),t(e,16,0,i["ɵunv"](e,16,0,i["ɵnov"](e,17).transform(n.driveGroups)));var a=i["ɵunv"](e,21,0,t(e,22,0,i["ɵnov"](e,0),n.action));t(e,21,0,a)}))}function qb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-osd-creation-preview-modal",[],null,null,null,Lb,Db)),i["ɵdid"](1,114688,null,0,Ws,[Mt.a,vt.b,ys.a,Xr,Yo.a],null,null)],(function(t,e){t(e,1,0)}),null)}var jb=i["ɵccf"]("cd-osd-creation-preview-modal",Ws,qb,{driveGroups:"driveGroups"},{submitAction:"submitAction"},[]),Fb=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function zb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,10,"cd-modal",[],null,null,null,Wm.c,Wm.b)),i["ɵdid"](1,49152,null,0,yh.a,[],{modalRef:[0,"modalRef"]},null),(t()(),i["ɵeld"](2,0,null,0,1,null,null,null,null,null,null,null)),(t()(),i["ɵted"](3,null,[""," ",""])),(t()(),i["ɵeld"](4,0,null,1,6,null,null,null,null,null,null,null)),(t()(),i["ɵeld"](5,0,null,null,2,"div",[["class","modal-body"]],null,null,null,null,null)),(t()(),i["ɵeld"](6,0,null,null,1,"cd-orchestrator-doc-panel",[],null,null,null,xr,Mr)),i["ɵdid"](7,114688,null,0,Pr,[bt.a,ft.a],null,null),(t()(),i["ɵeld"](8,0,null,null,2,"div",[["class","modal-footer"]],null,null,null,null,null)),(t()(),i["ɵeld"](9,0,null,null,1,"cd-back-button",[["name","Close"]],null,null,null,ii.b,ii.a)),i["ɵdid"](10,49152,null,0,si.a,[o.Location,vt.b],{name:[0,"name"],back:[1,"back"]},null)],(function(t,e){var n=e.component;t(e,1,0,n.bsModalRef),t(e,7,0),t(e,10,0,"Close",n.bsModalRef.hide)}),(function(t,e){var n=e.component;t(e,3,0,n.actionDescription,n.itemDescription)}))}function Gb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-orchestrator-doc-modal",[],null,null,null,zb,Fb)),i["ɵdid"](1,114688,null,0,Bo,[Mt.a],null,null)],(function(t,e){t(e,1,0)}),null)}var Bb=i["ɵccf"]("cd-orchestrator-doc-modal",Bo,Gb,{},{},[]),Vb=i["ɵcrt"]({encapsulation:0,styles:[[""]],data:{}});function Yb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,16777216,null,null,1,"router-outlet",[],null,null,null,null,null)),i["ɵdid"](1,212992,null,0,St.r,[St.b,i.ViewContainerRef,i.ComponentFactoryResolver,[8,null],i.ChangeDetectorRef],null,null)],(function(t,e){t(e,1,0)}),null)}function Hb(t){return i["ɵvid"](0,[(t()(),i["ɵeld"](0,0,null,null,1,"cd-root",[],null,null,null,Yb,Vb)),i["ɵdid"](1,49152,null,0,d,[],null,null)],null,null)}var Ub=i["ɵccf"]("cd-root",d,Hb,{},{},[]),Wb=new i.InjectionToken("JWT_OPTIONS"),Kb=function(){function t(t){void 0===t&&(t=null),this.tokenGetter=t&&t.tokenGetter||function(){}}return t.prototype.urlBase64Decode=function(t){var e=t.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw"Illegal base64url string!"}return this.b64DecodeUnicode(e)},t.prototype.b64decode=function(t){var e="";if((t=String(t).replace(/=+$/,"")).length%4==1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(var n=0,a=void 0,r=void 0,o=0;r=t.charAt(o++);~r&&(a=n%4?64*a+r:r,n++%4)?e+=String.fromCharCode(255&a>>(-2*n&6)):0)r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r);return e},t.prototype.b64DecodeUnicode=function(t){return decodeURIComponent(Array.prototype.map.call(this.b64decode(t),(function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)})).join(""))},t.prototype.decodeToken=function(t){if(void 0===t&&(t=this.tokenGetter()),null===t)return null;var e=t.split(".");if(3!==e.length)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");var n=this.urlBase64Decode(e[1]);if(!n)throw new Error("Cannot decode the token.");return JSON.parse(n)},t.prototype.getTokenExpirationDate=function(t){var e;if(void 0===t&&(t=this.tokenGetter()),!(e=this.decodeToken(t)).hasOwnProperty("exp"))return null;var n=new Date(0);return n.setUTCSeconds(e.exp),n},t.prototype.isTokenExpired=function(t,e){if(void 0===t&&(t=this.tokenGetter()),null===t||""===t)return!0;var n=this.getTokenExpirationDate(t);return e=e||0,null===n||!(n.valueOf()>(new Date).valueOf()+1e3*e)},t}(),$b=n("CxY0"),Zb=function(){function t(t,e){this.jwtHelper=e,this.tokenGetter=t.tokenGetter,this.headerName=t.headerName||"Authorization",this.authScheme=t.authScheme||""===t.authScheme?t.authScheme:"Bearer ",this.whitelistedDomains=t.whitelistedDomains||[],this.blacklistedRoutes=t.blacklistedRoutes||[],this.throwNoTokenError=t.throwNoTokenError||!1,this.skipWhenExpired=t.skipWhenExpired}return t.prototype.isWhitelistedDomain=function(t){var e=Object($b.parse)(t.url,!1,!0);return null===e.host||this.whitelistedDomains.findIndex((function(t){return"string"==typeof t?t===e.host:t instanceof RegExp&&t.test(e.host)}))>-1},t.prototype.isBlacklistedRoute=function(t){var e=t.url;return this.blacklistedRoutes.findIndex((function(t){return"string"==typeof t?t===e:t instanceof RegExp&&t.test(e)}))>-1},t.prototype.handleInterception=function(t,e,n){var a,r=!1;if(!t&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");return this.skipWhenExpired&&(r=!t||this.jwtHelper.isTokenExpired(t)),t&&r&&this.skipWhenExpired?e=e.clone():t&&(e=e.clone({setHeaders:(a={},a[this.headerName]=""+this.authScheme+t,a)})),n.handle(e)},t.prototype.intercept=function(t,e){var n=this;if(!this.isWhitelistedDomain(t)||this.isBlacklistedRoute(t))return e.handle(t);var a=this.tokenGetter();return a instanceof Promise?Object(mn.a)(a).pipe(Object(bn.a)((function(a){return n.handleInterception(a,t,e)}))):this.handleInterception(a,t,e)},t}(),Jb=n("z6cu"),Xb=n("JIr8");let Qb=(()=>{class t{constructor(t,e,n){this.router=t,this.authStorageService=e,this.notificationService=n}intercept(t,e){return e.handle(t).pipe(Object(Xb.a)(t=>{if(t instanceof J.f){let e;switch(t.status){case 400:const n=new zo.a,a=t.error.task;$.isPlainObject(a)?(a.metadata.component=a.metadata.component||t.error.component,n.name=a.name,n.metadata=a.metadata):n.metadata=t.error,n.success=!1,n.exception=t.error,e=this.notificationService.notifyTask(n);break;case 401:this.authStorageService.remove(),this.router.navigate(["/login"]);break;case 403:this.router.navigate(["/403"]);break;default:e=this.prepareNotification(t)}t.preventDefault=()=>{this.notificationService.cancel(e)},t.ignoreStatusCode=function(t){this.status===t&&this.preventDefault()}}return Object(Jb.a)(t)}))}prepareNotification(t){return this.notificationService.show(()=>{let e="";return $.isPlainObject(t.error)&&$.isString(t.error.detail)?e=t.error.detail:$.isString(t.error)?e=t.error:$.isString(t.message)&&(e=t.message),new fe.b(be.a.error,`${t.status} - ${t.statusText}`,e,void 0,t.application)})}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](St.m),i["ɵɵinject"](yt.a),i["ɵɵinject"](gt.a))},token:t,providedIn:"root"}),t})();function ty(){return"undefined"!=typeof process}function ey(t){switch(t.length){case 0:return new Gt.d;case 1:return t[0];default:return new Gt.k(t)}}function ny(t,e,n,a,r={},o={}){const i=[],s=[];let c=-1,l=null;if(a.forEach(t=>{const n=t.offset,a=n==c,d=a&&l||{};Object.keys(t).forEach(n=>{let a=n,s=t[n];if("offset"!==n)switch(a=e.normalizePropertyName(a,i),s){case Gt.l:s=r[n];break;case Gt.a:s=o[n];break;default:s=e.normalizeStyleValue(n,a,s,i)}d[a]=s}),a||s.push(d),l=d,c=n}),i.length){const t="\n - ";throw new Error(`Unable to animate due to the following errors:${t}${i.join(t)}`)}return s}function ay(t,e,n,a){switch(e){case"start":t.onStart(()=>a(n&&ry(n,"start",t)));break;case"done":t.onDone(()=>a(n&&ry(n,"done",t)));break;case"destroy":t.onDestroy(()=>a(n&&ry(n,"destroy",t)))}}function ry(t,e,n){const a=n.totalTime,r=oy(t.element,t.triggerName,t.fromState,t.toState,e||t.phaseName,null==a?t.totalTime:a,!!n.disabled),o=t._data;return null!=o&&(r._data=o),r}function oy(t,e,n,a,r="",o=0,i){return{element:t,triggerName:e,fromState:n,toState:a,phaseName:r,totalTime:o,disabled:!!i}}function iy(t,e,n){let a;return t instanceof Map?(a=t.get(e),a||t.set(e,a=n)):(a=t[e],a||(a=t[e]=n)),a}function sy(t){const e=t.indexOf(":");return[t.substring(1,e),t.substr(e+1)]}let cy=(t,e)=>!1,ly=(t,e)=>!1,dy=(t,e,n)=>[];const uy=ty();(uy||"undefined"!=typeof Element)&&(cy=(t,e)=>t.contains(e),ly=(()=>{if(uy||Element.prototype.matches)return(t,e)=>t.matches(e);{const t=Element.prototype,e=t.matchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector||t.webkitMatchesSelector;return e?(t,n)=>e.apply(t,[n]):ly}})(),dy=(t,e,n)=>{let a=[];if(n)a.push(...t.querySelectorAll(e));else{const n=t.querySelector(e);n&&a.push(n)}return a});let gy=null,fy=!1;function py(t){gy||(gy=("undefined"!=typeof document?document.body:null)||{},fy=!!gy.style&&"WebkitAppearance"in gy.style);let e=!0;return gy.style&&!function(t){return"ebkit"==t.substring(1,6)}(t)&&(e=t in gy.style,!e&&fy)&&(e="Webkit"+t.charAt(0).toUpperCase()+t.substr(1)in gy.style),e}const my=ly,hy=cy,by=dy;function yy(t){const e={};return Object.keys(t).forEach(n=>{const a=n.replace(/([a-z])([A-Z])/g,"$1-$2");e[a]=t[n]}),e}class _y{validateStyleProperty(t){return py(t)}matchesElement(t,e){return my(t,e)}containsElement(t,e){return hy(t,e)}query(t,e,n){return by(t,e,n)}computeStyle(t,e,n){return n||""}animate(t,e,n,a,r,o=[],i){return new Gt.d(n,a)}}let Oy=(()=>{class t{}return t.NOOP=new _y,t})();function vy(t){if("number"==typeof t)return t;const e=t.match(/^(-?[\.\d]+)(m?s)/);return!e||e.length<2?0:Cy(parseFloat(e[1]),e[2])}function Cy(t,e){switch(e){case"s":return 1e3*t;default:return t}}function Py(t,e,n){return t.hasOwnProperty("duration")?t:function(t,e,n){let a,r=0,o="";if("string"==typeof t){const n=t.match(/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i);if(null===n)return e.push(`The provided timing value "${t}" is invalid.`),{duration:0,delay:0,easing:""};a=Cy(parseFloat(n[1]),n[2]);const i=n[3];null!=i&&(r=Cy(parseFloat(i),n[4]));const s=n[5];s&&(o=s)}else a=t;if(!n){let n=!1,o=e.length;a<0&&(e.push("Duration values below 0 are not allowed for this animation step."),n=!0),r<0&&(e.push("Delay values below 0 are not allowed for this animation step."),n=!0),n&&e.splice(o,0,`The provided timing value "${t}" is invalid.`)}return{duration:a,delay:r,easing:o}}(t,e,n)}function My(t,e={}){return Object.keys(t).forEach(n=>{e[n]=t[n]}),e}function xy(t,e,n={}){if(e)for(let a in t)n[a]=t[a];else My(t,n);return n}function wy(t,e,n){return n?e+":"+n+";":""}function Ty(t){let e="";for(let n=0;n<t.style.length;n++){const a=t.style.item(n);e+=wy(0,a,t.style.getPropertyValue(a))}for(const n in t.style)t.style.hasOwnProperty(n)&&!n.startsWith("_")&&(e+=wy(0,n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),t.style[n]));t.setAttribute("style",e)}function Sy(t,e,n){t.style&&(Object.keys(e).forEach(a=>{const r=Ly(a);n&&!n.hasOwnProperty(a)&&(n[a]=t.style[r]),t.style[r]=e[a]}),ty()&&Ty(t))}function ky(t,e){t.style&&(Object.keys(e).forEach(e=>{const n=Ly(e);t.style[n]=""}),ty()&&Ty(t))}function Iy(t){return Array.isArray(t)?1==t.length?t[0]:Object(Gt.f)(t):t}const Ny=new RegExp("{{\\s*(.+?)\\s*}}","g");function Ry(t){let e=[];if("string"==typeof t){const n=t.toString();let a;for(;a=Ny.exec(n);)e.push(a[1]);Ny.lastIndex=0}return e}function Ay(t,e,n){const a=t.toString(),r=a.replace(Ny,(t,a)=>{let r=e[a];return e.hasOwnProperty(a)||(n.push(`Please provide a value for the animation param ${a}`),r=""),r.toString()});return r==a?t:r}function Ey(t){const e=[];let n=t.next();for(;!n.done;)e.push(n.value),n=t.next();return e}const Dy=/-+([a-z0-9])/g;function Ly(t){return t.replace(Dy,(...t)=>t[1].toUpperCase())}function qy(t,e){return 0===t||0===e}function jy(t,e,n){const a=Object.keys(n);if(a.length&&e.length){let o=e[0],i=[];if(a.forEach(t=>{o.hasOwnProperty(t)||i.push(t),o[t]=n[t]}),i.length)for(var r=1;r<e.length;r++){let n=e[r];i.forEach((function(e){n[e]=zy(t,e)}))}}return e}function Fy(t,e,n){switch(e.type){case 7:return t.visitTrigger(e,n);case 0:return t.visitState(e,n);case 1:return t.visitTransition(e,n);case 2:return t.visitSequence(e,n);case 3:return t.visitGroup(e,n);case 4:return t.visitAnimate(e,n);case 5:return t.visitKeyframes(e,n);case 6:return t.visitStyle(e,n);case 8:return t.visitReference(e,n);case 9:return t.visitAnimateChild(e,n);case 10:return t.visitAnimateRef(e,n);case 11:return t.visitQuery(e,n);case 12:return t.visitStagger(e,n);default:throw new Error(`Unable to resolve animation metadata node #${e.type}`)}}function zy(t,e){return window.getComputedStyle(t)[e]}function Gy(t,e){const n=[];return"string"==typeof t?t.split(/\s*,\s*/).forEach(t=>function(t,e,n){if(":"==t[0]){const a=function(t,e){switch(t){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(t,e)=>parseFloat(e)>parseFloat(t);case":decrement":return(t,e)=>parseFloat(e)<parseFloat(t);default:return e.push(`The transition alias value "${t}" is not supported`),"* => *"}}(t,n);if("function"==typeof a)return void e.push(a);t=a}const a=t.match(/^(\*|[-\w]+)\s*(<?[=-]>)\s*(\*|[-\w]+)$/);if(null==a||a.length<4)return n.push(`The provided transition expression "${t}" is not supported`),e;const r=a[1],o=a[2],i=a[3];e.push(Yy(r,i)),"<"!=o[0]||"*"==r&&"*"==i||e.push(Yy(i,r))}(t,n,e)):n.push(t),n}const By=new Set(["true","1"]),Vy=new Set(["false","0"]);function Yy(t,e){const n=By.has(t)||Vy.has(t),a=By.has(e)||Vy.has(e);return(r,o)=>{let i="*"==t||t==r,s="*"==e||e==o;return!i&&n&&"boolean"==typeof r&&(i=r?By.has(t):Vy.has(t)),!s&&a&&"boolean"==typeof o&&(s=o?By.has(e):Vy.has(e)),i&&s}}const Hy=new RegExp("s*:selfs*,?","g");function Uy(t,e,n){return new Wy(t).build(e,n)}class Wy{constructor(t){this._driver=t}build(t,e){const n=new Ky(e);return this._resetContextStyleTimingState(n),Fy(this,Iy(t),n)}_resetContextStyleTimingState(t){t.currentQuerySelector="",t.collectedStyles={},t.collectedStyles[""]={},t.currentTime=0}visitTrigger(t,e){let n=e.queryCount=0,a=e.depCount=0;const r=[],o=[];return"@"==t.name.charAt(0)&&e.errors.push("animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))"),t.definitions.forEach(t=>{if(this._resetContextStyleTimingState(e),0==t.type){const n=t,a=n.name;a.toString().split(/\s*,\s*/).forEach(t=>{n.name=t,r.push(this.visitState(n,e))}),n.name=a}else if(1==t.type){const r=this.visitTransition(t,e);n+=r.queryCount,a+=r.depCount,o.push(r)}else e.errors.push("only state() and transition() definitions can sit inside of a trigger()")}),{type:7,name:t.name,states:r,transitions:o,queryCount:n,depCount:a,options:null}}visitState(t,e){const n=this.visitStyle(t.styles,e),a=t.options&&t.options.params||null;if(n.containsDynamicStyles){const r=new Set,o=a||{};if(n.styles.forEach(t=>{if($y(t)){const e=t;Object.keys(e).forEach(t=>{Ry(e[t]).forEach(t=>{o.hasOwnProperty(t)||r.add(t)})})}}),r.size){const n=Ey(r.values());e.errors.push(`state("${t.name}", ...) must define default values for all the following style substitutions: ${n.join(", ")}`)}}return{type:0,name:t.name,style:n,options:a?{params:a}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;const n=Fy(this,Iy(t.animation),e);return{type:1,matchers:Gy(t.expr,e.errors),animation:n,queryCount:e.queryCount,depCount:e.depCount,options:Zy(t.options)}}visitSequence(t,e){return{type:2,steps:t.steps.map(t=>Fy(this,t,e)),options:Zy(t.options)}}visitGroup(t,e){const n=e.currentTime;let a=0;const r=t.steps.map(t=>{e.currentTime=n;const r=Fy(this,t,e);return a=Math.max(a,e.currentTime),r});return e.currentTime=a,{type:3,steps:r,options:Zy(t.options)}}visitAnimate(t,e){const n=function(t,e){let n=null;if(t.hasOwnProperty("duration"))n=t;else if("number"==typeof t)return Jy(Py(t,e).duration,0,"");const a=t;if(a.split(/\s+/).some(t=>"{"==t.charAt(0)&&"{"==t.charAt(1))){const t=Jy(0,0,"");return t.dynamic=!0,t.strValue=a,t}return n=n||Py(a,e),Jy(n.duration,n.delay,n.easing)}(t.timings,e.errors);let a;e.currentAnimateTimings=n;let r=t.styles?t.styles:Object(Gt.h)({});if(5==r.type)a=this.visitKeyframes(r,e);else{let r=t.styles,o=!1;if(!r){o=!0;const t={};n.easing&&(t.easing=n.easing),r=Object(Gt.h)(t)}e.currentTime+=n.duration+n.delay;const i=this.visitStyle(r,e);i.isEmptyStep=o,a=i}return e.currentAnimateTimings=null,{type:4,timings:n,style:a,options:null}}visitStyle(t,e){const n=this._makeStyleAst(t,e);return this._validateStyleAst(n,e),n}_makeStyleAst(t,e){const n=[];Array.isArray(t.styles)?t.styles.forEach(t=>{"string"==typeof t?t==Gt.a?n.push(t):e.errors.push(`The provided style string value ${t} is not allowed.`):n.push(t)}):n.push(t.styles);let a=!1,r=null;return n.forEach(t=>{if($y(t)){const e=t,n=e.easing;if(n&&(r=n,delete e.easing),!a)for(let t in e)if(e[t].toString().indexOf("{{")>=0){a=!0;break}}}),{type:6,styles:n,easing:r,offset:t.offset,containsDynamicStyles:a,options:null}}_validateStyleAst(t,e){const n=e.currentAnimateTimings;let a=e.currentTime,r=e.currentTime;n&&r>0&&(r-=n.duration+n.delay),t.styles.forEach(t=>{"string"!=typeof t&&Object.keys(t).forEach(n=>{if(!this._driver.validateStyleProperty(n))return void e.errors.push(`The provided animation property "${n}" is not a supported CSS property for animations`);const o=e.collectedStyles[e.currentQuerySelector],i=o[n];let s=!0;i&&(r!=a&&r>=i.startTime&&a<=i.endTime&&(e.errors.push(`The CSS property "${n}" that exists between the times of "${i.startTime}ms" and "${i.endTime}ms" is also being animated in a parallel animation between the times of "${r}ms" and "${a}ms"`),s=!1),r=i.startTime),s&&(o[n]={startTime:r,endTime:a}),e.options&&function(t,e,n){const a=e.params||{},r=Ry(t);r.length&&r.forEach(t=>{a.hasOwnProperty(t)||n.push(`Unable to resolve the local animation param ${t} in the given list of values`)})}(t[n],e.options,e.errors)})})}visitKeyframes(t,e){const n={type:5,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push("keyframes() must be placed inside of a call to animate()"),n;let a=0;const r=[];let o=!1,i=!1,s=0;const c=t.steps.map(t=>{const n=this._makeStyleAst(t,e);let c=null!=n.offset?n.offset:function(t){if("string"==typeof t)return null;let e=null;if(Array.isArray(t))t.forEach(t=>{if($y(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}});else if($y(t)&&t.hasOwnProperty("offset")){const n=t;e=parseFloat(n.offset),delete n.offset}return e}(n.styles),l=0;return null!=c&&(a++,l=n.offset=c),i=i||l<0||l>1,o=o||l<s,s=l,r.push(l),n});i&&e.errors.push("Please ensure that all keyframe offsets are between 0 and 1"),o&&e.errors.push("Please ensure that all keyframe offsets are in order");const l=t.steps.length;let d=0;a>0&&a<l?e.errors.push("Not all style() steps within the declared keyframes() contain offsets"):0==a&&(d=1/(l-1));const u=l-1,g=e.currentTime,f=e.currentAnimateTimings,p=f.duration;return c.forEach((t,a)=>{const o=d>0?a==u?1:d*a:r[a],i=o*p;e.currentTime=g+f.delay+i,f.duration=i,this._validateStyleAst(t,e),t.offset=o,n.styles.push(t)}),n}visitReference(t,e){return{type:8,animation:Fy(this,Iy(t.animation),e),options:Zy(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:9,options:Zy(t.options)}}visitAnimateRef(t,e){return{type:10,animation:this.visitReference(t.animation,e),options:Zy(t.options)}}visitQuery(t,e){const n=e.currentQuerySelector,a=t.options||{};e.queryCount++,e.currentQuery=t;const[r,o]=function(t){const e=!!t.split(/\s*,\s*/).find(t=>":self"==t);return e&&(t=t.replace(Hy,"")),[t=t.replace(/@\*/g,".ng-trigger").replace(/@\w+/g,t=>".ng-trigger-"+t.substr(1)).replace(/:animating/g,".ng-animating"),e]}(t.selector);e.currentQuerySelector=n.length?n+" "+r:r,iy(e.collectedStyles,e.currentQuerySelector,{});const i=Fy(this,Iy(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=n,{type:11,selector:r,limit:a.limit||0,optional:!!a.optional,includeSelf:o,animation:i,originalSelector:t.selector,options:Zy(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push("stagger() can only be used inside of query()");const n="full"===t.timings?{duration:0,delay:0,easing:"full"}:Py(t.timings,e.errors,!0);return{type:12,animation:Fy(this,Iy(t.animation),e),timings:n,options:null}}}class Ky{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={},this.options=null}}function $y(t){return!Array.isArray(t)&&"object"==typeof t}function Zy(t){var e;return t?(t=My(t)).params&&(t.params=(e=t.params)?My(e):null):t={},t}function Jy(t,e,n){return{duration:t,delay:e,easing:n}}function Xy(t,e,n,a,r,o,i=null,s=!1){return{type:1,element:t,keyframes:e,preStyleProps:n,postStyleProps:a,duration:r,delay:o,totalTime:r+o,easing:i,subTimeline:s}}class Qy{constructor(){this._map=new Map}consume(t){let e=this._map.get(t);return e?this._map.delete(t):e=[],e}append(t,e){let n=this._map.get(t);n||this._map.set(t,n=[]),n.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}}const t_=new RegExp(":enter","g"),e_=new RegExp(":leave","g");function n_(t,e,n,a,r,o={},i={},s,c,l=[]){return(new a_).buildKeyframes(t,e,n,a,r,o,i,s,c,l)}class a_{buildKeyframes(t,e,n,a,r,o,i,s,c,l=[]){c=c||new Qy;const d=new o_(t,e,c,a,r,l,[]);d.options=s,d.currentTimeline.setStyles([o],null,d.errors,s),Fy(this,n,d);const u=d.timelines.filter(t=>t.containsAnimation());if(u.length&&Object.keys(i).length){const t=u[u.length-1];t.allowOnlyTimelineStyles()||t.setStyles([i],null,d.errors,s)}return u.length?u.map(t=>t.buildKeyframes()):[Xy(e,[],[],[],0,0,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){const n=e.subInstructions.consume(e.element);if(n){const a=e.createSubContext(t.options),r=e.currentTimeline.currentTime,o=this._visitSubInstructions(n,a,a.options);r!=o&&e.transformIntoNewTimeline(o)}e.previousNode=t}visitAnimateRef(t,e){const n=e.createSubContext(t.options);n.transformIntoNewTimeline(),this.visitReference(t.animation,n),e.transformIntoNewTimeline(n.currentTimeline.currentTime),e.previousNode=t}_visitSubInstructions(t,e,n){let a=e.currentTimeline.currentTime;const r=null!=n.duration?vy(n.duration):null,o=null!=n.delay?vy(n.delay):null;return 0!==r&&t.forEach(t=>{const n=e.appendInstructionToTimeline(t,r,o);a=Math.max(a,n.duration+n.delay)}),a}visitReference(t,e){e.updateOptions(t.options,!0),Fy(this,t.animation,e),e.previousNode=t}visitSequence(t,e){const n=e.subContextCount;let a=e;const r=t.options;if(r&&(r.params||r.delay)&&(a=e.createSubContext(r),a.transformIntoNewTimeline(),null!=r.delay)){6==a.previousNode.type&&(a.currentTimeline.snapshotCurrentStyles(),a.previousNode=r_);const t=vy(r.delay);a.delayNextStep(t)}t.steps.length&&(t.steps.forEach(t=>Fy(this,t,a)),a.currentTimeline.applyStylesToKeyframe(),a.subContextCount>n&&a.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){const n=[];let a=e.currentTimeline.currentTime;const r=t.options&&t.options.delay?vy(t.options.delay):0;t.steps.forEach(o=>{const i=e.createSubContext(t.options);r&&i.delayNextStep(r),Fy(this,o,i),a=Math.max(a,i.currentTimeline.currentTime),n.push(i.currentTimeline)}),n.forEach(t=>e.currentTimeline.mergeTimelineCollectedStyles(t)),e.transformIntoNewTimeline(a),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){const n=t.strValue;return Py(e.params?Ay(n,e.params,e.errors):n,e.errors)}return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){const n=e.currentAnimateTimings=this._visitTiming(t.timings,e),a=e.currentTimeline;n.delay&&(e.incrementTime(n.delay),a.snapshotCurrentStyles());const r=t.style;5==r.type?this.visitKeyframes(r,e):(e.incrementTime(n.duration),this.visitStyle(r,e),a.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){const n=e.currentTimeline,a=e.currentAnimateTimings;!a&&n.getCurrentStyleProperties().length&&n.forwardFrame();const r=a&&a.easing||t.easing;t.isEmptyStep?n.applyEmptyStep(r):n.setStyles(t.styles,r,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){const n=e.currentAnimateTimings,a=e.currentTimeline.duration,r=n.duration,o=e.createSubContext().currentTimeline;o.easing=n.easing,t.styles.forEach(t=>{o.forwardTime((t.offset||0)*r),o.setStyles(t.styles,t.easing,e.errors,e.options),o.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(o),e.transformIntoNewTimeline(a+r),e.previousNode=t}visitQuery(t,e){const n=e.currentTimeline.currentTime,a=t.options||{},r=a.delay?vy(a.delay):0;r&&(6===e.previousNode.type||0==n&&e.currentTimeline.getCurrentStyleProperties().length)&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=r_);let o=n;const i=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!a.optional,e.errors);e.currentQueryTotal=i.length;let s=null;i.forEach((n,a)=>{e.currentQueryIndex=a;const i=e.createSubContext(t.options,n);r&&i.delayNextStep(r),n===e.element&&(s=i.currentTimeline),Fy(this,t.animation,i),i.currentTimeline.applyStylesToKeyframe(),o=Math.max(o,i.currentTimeline.currentTime)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(o),s&&(e.currentTimeline.mergeTimelineCollectedStyles(s),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){const n=e.parentContext,a=e.currentTimeline,r=t.timings,o=Math.abs(r.duration),i=o*(e.currentQueryTotal-1);let s=o*e.currentQueryIndex;switch(r.duration<0?"reverse":r.easing){case"reverse":s=i-s;break;case"full":s=n.currentStaggerTime}const c=e.currentTimeline;s&&c.delayNextStep(s);const l=c.currentTime;Fy(this,t.animation,e),e.previousNode=t,n.currentStaggerTime=a.currentTime-l+(a.startTime-n.currentTimeline.startTime)}}const r_={};class o_{constructor(t,e,n,a,r,o,i,s){this._driver=t,this.element=e,this.subInstructions=n,this._enterClassName=a,this._leaveClassName=r,this.errors=o,this.timelines=i,this.parentContext=null,this.currentAnimateTimings=null,this.previousNode=r_,this.subContextCount=0,this.options={},this.currentQueryIndex=0,this.currentQueryTotal=0,this.currentStaggerTime=0,this.currentTimeline=s||new i_(this._driver,e,0),i.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;const n=t;let a=this.options;null!=n.duration&&(a.duration=vy(n.duration)),null!=n.delay&&(a.delay=vy(n.delay));const r=n.params;if(r){let t=a.params;t||(t=this.options.params={}),Object.keys(r).forEach(n=>{e&&t.hasOwnProperty(n)||(t[n]=Ay(r[n],t,this.errors))})}}_copyOptions(){const t={};if(this.options){const e=this.options.params;if(e){const n=t.params={};Object.keys(e).forEach(t=>{n[t]=e[t]})}}return t}createSubContext(t=null,e,n){const a=e||this.element,r=new o_(this._driver,a,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(a,n||0));return r.previousNode=this.previousNode,r.currentAnimateTimings=this.currentAnimateTimings,r.options=this._copyOptions(),r.updateOptions(t),r.currentQueryIndex=this.currentQueryIndex,r.currentQueryTotal=this.currentQueryTotal,r.parentContext=this,this.subContextCount++,r}transformIntoNewTimeline(t){return this.previousNode=r_,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,n){const a={duration:null!=e?e:t.duration,delay:this.currentTimeline.currentTime+(null!=n?n:0)+t.delay,easing:""},r=new s_(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,a,t.stretchStartingKeyframe);return this.timelines.push(r),a}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,n,a,r,o){let i=[];if(a&&i.push(this.element),t.length>0){t=(t=t.replace(t_,"."+this._enterClassName)).replace(e_,"."+this._leaveClassName);let e=this._driver.query(this.element,t,1!=n);0!==n&&(e=n<0?e.slice(e.length+n,e.length):e.slice(0,n)),i.push(...e)}return r||0!=i.length||o.push(`\`query("${e}")\` returned zero elements. (Use \`query("${e}", { optional: true })\` if you wish to allow this.)`),i}}class i_{constructor(t,e,n,a){this._driver=t,this.element=e,this.startTime=n,this._elementTimelineStylesLookup=a,this.duration=0,this._previousKeyframe={},this._currentKeyframe={},this._keyframes=new Map,this._styleSummary={},this._pendingStyles={},this._backFill={},this._currentEmptyStepKeyframe=null,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._localTimelineStyles=Object.create(this._backFill,{}),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.getCurrentStyleProperties().length>0;default:return!0}}getCurrentStyleProperties(){return Object.keys(this._currentKeyframe)}get currentTime(){return this.startTime+this.duration}delayNextStep(t){const e=1==this._keyframes.size&&Object.keys(this._pendingStyles).length;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new i_(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=Object.create(this._backFill,{}),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[t]=e,this._globalTimelineStyles[t]=e,this._styleSummary[t]={time:this.currentTime,value:e}}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&(this._previousKeyframe.easing=t),Object.keys(this._globalTimelineStyles).forEach(t=>{this._backFill[t]=this._globalTimelineStyles[t]||Gt.a,this._currentKeyframe[t]=Gt.a}),this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,n,a){e&&(this._previousKeyframe.easing=e);const r=a&&a.params||{},o=function(t,e){const n={};let a;return t.forEach(t=>{"*"===t?(a=a||Object.keys(e),a.forEach(t=>{n[t]=Gt.a})):xy(t,!1,n)}),n}(t,this._globalTimelineStyles);Object.keys(o).forEach(t=>{const e=Ay(o[t],r,n);this._pendingStyles[t]=e,this._localTimelineStyles.hasOwnProperty(t)||(this._backFill[t]=this._globalTimelineStyles.hasOwnProperty(t)?this._globalTimelineStyles[t]:Gt.a),this._updateStyle(t,e)})}applyStylesToKeyframe(){const t=this._pendingStyles,e=Object.keys(t);0!=e.length&&(this._pendingStyles={},e.forEach(e=>{this._currentKeyframe[e]=t[e]}),Object.keys(this._localTimelineStyles).forEach(t=>{this._currentKeyframe.hasOwnProperty(t)||(this._currentKeyframe[t]=this._localTimelineStyles[t])}))}snapshotCurrentStyles(){Object.keys(this._localTimelineStyles).forEach(t=>{const e=this._localTimelineStyles[t];this._pendingStyles[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){Object.keys(t._styleSummary).forEach(e=>{const n=this._styleSummary[e],a=t._styleSummary[e];(!n||a.time>n.time)&&this._updateStyle(e,a.value)})}buildKeyframes(){this.applyStylesToKeyframe();const t=new Set,e=new Set,n=1===this._keyframes.size&&0===this.duration;let a=[];this._keyframes.forEach((r,o)=>{const i=xy(r,!0);Object.keys(i).forEach(n=>{const a=i[n];a==Gt.l?t.add(n):a==Gt.a&&e.add(n)}),n||(i.offset=o/this.duration),a.push(i)});const r=t.size?Ey(t.values()):[],o=e.size?Ey(e.values()):[];if(n){const t=a[0],e=My(t);t.offset=0,e.offset=1,a=[t,e]}return Xy(this.element,a,r,o,this.duration,this.startTime,this.easing,!1)}}class s_ extends i_{constructor(t,e,n,a,r,o,i=!1){super(t,e,o.delay),this.element=e,this.keyframes=n,this.preStyleProps=a,this.postStyleProps=r,this._stretchStartingKeyframe=i,this.timings={duration:o.duration,delay:o.delay,easing:o.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:n,easing:a}=this.timings;if(this._stretchStartingKeyframe&&e){const r=[],o=n+e,i=e/o,s=xy(t[0],!1);s.offset=0,r.push(s);const c=xy(t[0],!1);c.offset=c_(i),r.push(c);const l=t.length-1;for(let a=1;a<=l;a++){let i=xy(t[a],!1);i.offset=c_((e+i.offset*n)/o),r.push(i)}n=o,e=0,a="",t=r}return Xy(this.element,t,this.preStyleProps,this.postStyleProps,n,e,a,!0)}}function c_(t,e=3){const n=Math.pow(10,e-1);return Math.round(t*n)/n}class l_{}class d_ extends l_{normalizePropertyName(t,e){return Ly(t)}normalizeStyleValue(t,e,n,a){let r="";const o=n.toString().trim();if(u_[e]&&0!==n&&"0"!==n)if("number"==typeof n)r="px";else{const e=n.match(/^[+-]?[\d\.]+([a-z]*)$/);e&&0==e[1].length&&a.push(`Please provide a CSS unit value for ${t}:${n}`)}return o+r}}const u_=(()=>function(t){const e={};return t.forEach(t=>e[t]=!0),e}("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".split(",")))();function g_(t,e,n,a,r,o,i,s,c,l,d,u,g){return{type:0,element:t,triggerName:e,isRemovalTransition:r,fromState:n,fromStyles:o,toState:a,toStyles:i,timelines:s,queriedElements:c,preStyleProps:l,postStyleProps:d,totalTime:u,errors:g}}const f_={};class p_{constructor(t,e,n){this._triggerName=t,this.ast=e,this._stateStyles=n}match(t,e,n,a){return function(t,e,n,a,r){return t.some(t=>t(e,n,a,r))}(this.ast.matchers,t,e,n,a)}buildStyles(t,e,n){const a=this._stateStyles["*"],r=this._stateStyles[t],o=a?a.buildStyles(e,n):{};return r?r.buildStyles(e,n):o}build(t,e,n,a,r,o,i,s,c,l){const d=[],u=this.ast.options&&this.ast.options.params||f_,g=this.buildStyles(n,i&&i.params||f_,d),f=s&&s.params||f_,p=this.buildStyles(a,f,d),m=new Set,h=new Map,b=new Map,y="void"===a,_={params:Object.assign({},u,f)},O=l?[]:n_(t,e,this.ast.animation,r,o,g,p,_,c,d);let v=0;if(O.forEach(t=>{v=Math.max(t.duration+t.delay,v)}),d.length)return g_(e,this._triggerName,n,a,y,g,p,[],[],h,b,v,d);O.forEach(t=>{const n=t.element,a=iy(h,n,{});t.preStyleProps.forEach(t=>a[t]=!0);const r=iy(b,n,{});t.postStyleProps.forEach(t=>r[t]=!0),n!==e&&m.add(n)});const C=Ey(m.values());return g_(e,this._triggerName,n,a,y,g,p,O,C,h,b,v)}}class m_{constructor(t,e){this.styles=t,this.defaultParams=e}buildStyles(t,e){const n={},a=My(this.defaultParams);return Object.keys(t).forEach(e=>{const n=t[e];null!=n&&(a[e]=n)}),this.styles.styles.forEach(t=>{if("string"!=typeof t){const r=t;Object.keys(r).forEach(t=>{let o=r[t];o.length>1&&(o=Ay(o,a,e)),n[t]=o})}}),n}}class h_{constructor(t,e){this.name=t,this.ast=e,this.transitionFactories=[],this.states={},e.states.forEach(t=>{this.states[t.name]=new m_(t.style,t.options&&t.options.params||{})}),b_(this.states,"true","1"),b_(this.states,"false","0"),e.transitions.forEach(e=>{this.transitionFactories.push(new p_(t,e,this.states))}),this.fallbackTransition=new p_(t,{type:1,animation:{type:2,steps:[],options:null},matchers:[(t,e)=>!0],options:null,queryCount:0,depCount:0},this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,n,a){return this.transitionFactories.find(r=>r.match(t,e,n,a))||null}matchStyles(t,e,n){return this.fallbackTransition.buildStyles(t,e,n)}}function b_(t,e,n){t.hasOwnProperty(e)?t.hasOwnProperty(n)||(t[n]=t[e]):t.hasOwnProperty(n)&&(t[e]=t[n])}const y_=new Qy;class __{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._normalizer=n,this._animations={},this._playersById={},this.players=[]}register(t,e){const n=[],a=Uy(this._driver,e,n);if(n.length)throw new Error(`Unable to build the animation due to the following errors: ${n.join("\n")}`);this._animations[t]=a}_buildPlayer(t,e,n){const a=t.element,r=ny(0,this._normalizer,0,t.keyframes,e,n);return this._driver.animate(a,r,t.duration,t.delay,t.easing,[],!0)}create(t,e,n={}){const a=[],r=this._animations[t];let o;const i=new Map;if(r?(o=n_(this._driver,e,r,"ng-enter","ng-leave",{},{},n,y_,a),o.forEach(t=>{const e=iy(i,t.element,{});t.postStyleProps.forEach(t=>e[t]=null)})):(a.push("The requested animation doesn't exist or has already been destroyed"),o=[]),a.length)throw new Error(`Unable to create the animation due to the following errors: ${a.join("\n")}`);i.forEach((t,e)=>{Object.keys(t).forEach(n=>{t[n]=this._driver.computeStyle(e,n,Gt.a)})});const s=ey(o.map(t=>{const e=i.get(t.element);return this._buildPlayer(t,{},e)}));return this._playersById[t]=s,s.onDestroy(()=>this.destroy(t)),this.players.push(s),s}destroy(t){const e=this._getPlayer(t);e.destroy(),delete this._playersById[t];const n=this.players.indexOf(e);n>=0&&this.players.splice(n,1)}_getPlayer(t){const e=this._playersById[t];if(!e)throw new Error(`Unable to find the timeline player referenced by ${t}`);return e}listen(t,e,n,a){const r=oy(e,"","","");return ay(this._getPlayer(t),n,r,a),()=>{}}command(t,e,n,a){if("register"==n)return void this.register(t,a[0]);if("create"==n)return void this.create(t,e,a[0]||{});const r=this._getPlayer(t);switch(n){case"play":r.play();break;case"pause":r.pause();break;case"reset":r.reset();break;case"restart":r.restart();break;case"finish":r.finish();break;case"init":r.init();break;case"setPosition":r.setPosition(parseFloat(a[0]));break;case"destroy":this.destroy(t)}}}const O_=[],v_={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},C_={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0};class P_{constructor(t,e=""){this.namespaceId=e;const n=t&&t.hasOwnProperty("value");if(this.value=null!=(a=n?t.value:t)?a:null,n){const e=My(t);delete e.value,this.options=e}else this.options={};var a;this.options.params||(this.options.params={})}get params(){return this.options.params}absorbOptions(t){const e=t.params;if(e){const t=this.options.params;Object.keys(e).forEach(n=>{null==t[n]&&(t[n]=e[n])})}}}const M_=new P_("void");class x_{constructor(t,e,n){this.id=t,this.hostElement=e,this._engine=n,this.players=[],this._triggers={},this._queue=[],this._elementListeners=new Map,this._hostClassName="ng-tns-"+t,R_(e,this._hostClassName)}listen(t,e,n,a){if(!this._triggers.hasOwnProperty(e))throw new Error(`Unable to listen on the animation trigger event "${n}" because the animation trigger "${e}" doesn't exist!`);if(null==n||0==n.length)throw new Error(`Unable to listen on the animation trigger "${e}" because the provided event is undefined!`);if("start"!=(r=n)&&"done"!=r)throw new Error(`The provided animation trigger event "${n}" for the animation trigger "${e}" is not supported!`);var r;const o=iy(this._elementListeners,t,[]),i={name:e,phase:n,callback:a};o.push(i);const s=iy(this._engine.statesByElement,t,{});return s.hasOwnProperty(e)||(R_(t,"ng-trigger"),R_(t,"ng-trigger-"+e),s[e]=M_),()=>{this._engine.afterFlush(()=>{const t=o.indexOf(i);t>=0&&o.splice(t,1),this._triggers[e]||delete s[e]})}}register(t,e){return!this._triggers[t]&&(this._triggers[t]=e,!0)}_getTrigger(t){const e=this._triggers[t];if(!e)throw new Error(`The provided animation trigger "${t}" has not been registered!`);return e}trigger(t,e,n,a=!0){const r=this._getTrigger(e),o=new T_(this.id,e,t);let i=this._engine.statesByElement.get(t);i||(R_(t,"ng-trigger"),R_(t,"ng-trigger-"+e),this._engine.statesByElement.set(t,i={}));let s=i[e];const c=new P_(n,this.id);if(!(n&&n.hasOwnProperty("value"))&&s&&c.absorbOptions(s.options),i[e]=c,s||(s=M_),"void"!==c.value&&s.value===c.value){if(!function(t,e){const n=Object.keys(t),a=Object.keys(e);if(n.length!=a.length)return!1;for(let r=0;r<n.length;r++){const a=n[r];if(!e.hasOwnProperty(a)||t[a]!==e[a])return!1}return!0}(s.params,c.params)){const e=[],n=r.matchStyles(s.value,s.params,e),a=r.matchStyles(c.value,c.params,e);e.length?this._engine.reportError(e):this._engine.afterFlush(()=>{ky(t,n),Sy(t,a)})}return}const l=iy(this._engine.playersByElement,t,[]);l.forEach(t=>{t.namespaceId==this.id&&t.triggerName==e&&t.queued&&t.destroy()});let d=r.matchTransition(s.value,c.value,t,c.params),u=!1;if(!d){if(!a)return;d=r.fallbackTransition,u=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:d,fromState:s,toState:c,player:o,isFallbackTransition:u}),u||(R_(t,"ng-animate-queued"),o.onStart(()=>{A_(t,"ng-animate-queued")})),o.onDone(()=>{let e=this.players.indexOf(o);e>=0&&this.players.splice(e,1);const n=this._engine.playersByElement.get(t);if(n){let t=n.indexOf(o);t>=0&&n.splice(t,1)}}),this.players.push(o),l.push(o),o}deregister(t){delete this._triggers[t],this._engine.statesByElement.forEach((e,n)=>{delete e[t]}),this._elementListeners.forEach((e,n)=>{this._elementListeners.set(n,e.filter(e=>e.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);const e=this._engine.playersByElement.get(t);e&&(e.forEach(t=>t.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e,n=!1){this._engine.driver.query(t,".ng-trigger",!0).forEach(t=>{if(t.__ng_removed)return;const n=this._engine.fetchNamespacesByElement(t);n.size?n.forEach(n=>n.triggerLeaveAnimation(t,e,!1,!0)):this.clearElementCache(t)})}triggerLeaveAnimation(t,e,n,a){const r=this._engine.statesByElement.get(t);if(r){const o=[];if(Object.keys(r).forEach(e=>{if(this._triggers[e]){const n=this.trigger(t,e,"void",a);n&&o.push(n)}}),o.length)return this._engine.markElementAsRemoved(this.id,t,!0,e),n&&ey(o).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){const e=this._elementListeners.get(t);if(e){const n=new Set;e.forEach(e=>{const a=e.name;if(n.has(a))return;n.add(a);const r=this._triggers[a].fallbackTransition,o=this._engine.statesByElement.get(t)[a]||M_,i=new P_("void"),s=new T_(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:r,fromState:o,toState:i,player:s,isFallbackTransition:!0})})}}removeNode(t,e){const n=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e,!0),this.triggerLeaveAnimation(t,e,!0))return;let a=!1;if(n.totalAnimations){const e=n.players.length?n.playersByQueriedElement.get(t):[];if(e&&e.length)a=!0;else{let e=t;for(;e=e.parentNode;)if(n.statesByElement.get(e)){a=!0;break}}}this.prepareLeaveAnimationListeners(t),a?n.markElementAsRemoved(this.id,t,!1,e):(n.afterFlush(()=>this.clearElementCache(t)),n.destroyInnerAnimations(t),n._onRemovalComplete(t,e))}insertNode(t,e){R_(t,this._hostClassName)}drainQueuedTransitions(t){const e=[];return this._queue.forEach(n=>{const a=n.player;if(a.destroyed)return;const r=n.element,o=this._elementListeners.get(r);o&&o.forEach(e=>{if(e.name==n.triggerName){const a=oy(r,n.triggerName,n.fromState.value,n.toState.value);a._data=t,ay(n.player,e.phase,a,e.callback)}}),a.markedForDestroy?this._engine.afterFlush(()=>{a.destroy()}):e.push(n)}),this._queue=[],e.sort((t,e)=>{const n=t.transition.ast.depCount,a=e.transition.ast.depCount;return 0==n||0==a?n-a:this._engine.driver.containsElement(t.element,e.element)?1:-1})}destroy(t){this.players.forEach(t=>t.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}elementContainsData(t){let e=!1;return this._elementListeners.has(t)&&(e=!0),e=!!this._queue.find(e=>e.element===t)||e,e}}class w_{constructor(t,e,n){this.bodyNode=t,this.driver=e,this._normalizer=n,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=(t,e)=>{}}_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}get queuedPlayers(){const t=[];return this._namespaceList.forEach(e=>{e.players.forEach(e=>{e.queued&&t.push(e)})}),t}createNamespace(t,e){const n=new x_(t,e,this);return e.parentNode?this._balanceNamespaceList(n,e):(this.newHostElements.set(e,n),this.collectEnterElement(e)),this._namespaceLookup[t]=n}_balanceNamespaceList(t,e){const n=this._namespaceList.length-1;if(n>=0){let a=!1;for(let r=n;r>=0;r--)if(this.driver.containsElement(this._namespaceList[r].hostElement,e)){this._namespaceList.splice(r+1,0,t),a=!0;break}a||this._namespaceList.splice(0,0,t)}else this._namespaceList.push(t);return this.namespacesByHostElement.set(e,t),t}register(t,e){let n=this._namespaceLookup[t];return n||(n=this.createNamespace(t,e)),n}registerTrigger(t,e,n){let a=this._namespaceLookup[t];a&&a.register(e,n)&&this.totalAnimations++}destroy(t,e){if(!t)return;const n=this._fetchNamespace(t);this.afterFlush(()=>{this.namespacesByHostElement.delete(n.hostElement),delete this._namespaceLookup[t];const e=this._namespaceList.indexOf(n);e>=0&&this._namespaceList.splice(e,1)}),this.afterFlushAnimationsDone(()=>n.destroy(e))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){const e=new Set,n=this.statesByElement.get(t);if(n){const t=Object.keys(n);for(let a=0;a<t.length;a++){const r=n[t[a]].namespaceId;if(r){const t=this._fetchNamespace(r);t&&e.add(t)}}}return e}trigger(t,e,n,a){if(S_(e)){const r=this._fetchNamespace(t);if(r)return r.trigger(e,n,a),!0}return!1}insertNode(t,e,n,a){if(!S_(e))return;const r=e.__ng_removed;if(r&&r.setForRemoval){r.setForRemoval=!1,r.setForMove=!0;const t=this.collectedLeaveElements.indexOf(e);t>=0&&this.collectedLeaveElements.splice(t,1)}if(t){const a=this._fetchNamespace(t);a&&a.insertNode(e,n)}a&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),R_(t,"ng-animate-disabled")):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),A_(t,"ng-animate-disabled"))}removeNode(t,e,n,a){if(S_(e)){const r=t?this._fetchNamespace(t):null;if(r?r.removeNode(e,a):this.markElementAsRemoved(t,e,!1,a),n){const n=this.namespacesByHostElement.get(e);n&&n.id!==t&&n.removeNode(e,a)}}else this._onRemovalComplete(e,a)}markElementAsRemoved(t,e,n,a){this.collectedLeaveElements.push(e),e.__ng_removed={namespaceId:t,setForRemoval:a,hasAnimation:n,removedBeforeQueried:!1}}listen(t,e,n,a,r){return S_(e)?this._fetchNamespace(t).listen(e,n,a,r):()=>{}}_buildInstruction(t,e,n,a,r){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,n,a,t.fromState.options,t.toState.options,e,r)}destroyInnerAnimations(t){let e=this.driver.query(t,".ng-trigger",!0);e.forEach(t=>this.destroyActiveAnimationsForElement(t)),0!=this.playersByQueriedElement.size&&(e=this.driver.query(t,".ng-animating",!0),e.forEach(t=>this.finishActiveQueriedAnimationOnElement(t)))}destroyActiveAnimationsForElement(t){const e=this.playersByElement.get(t);e&&e.forEach(t=>{t.queued?t.markedForDestroy=!0:t.destroy()})}finishActiveQueriedAnimationOnElement(t){const e=this.playersByQueriedElement.get(t);e&&e.forEach(t=>t.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return ey(this.players).onDone(()=>t());t()})}processLeaveNode(t){const e=t.__ng_removed;if(e&&e.setForRemoval){if(t.__ng_removed=v_,e.namespaceId){this.destroyInnerAnimations(t);const n=this._fetchNamespace(e.namespaceId);n&&n.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}this.driver.matchesElement(t,".ng-animate-disabled")&&this.markElementAsDisabled(t,!1),this.driver.query(t,".ng-animate-disabled",!0).forEach(t=>{this.markElementAsDisabled(t,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((t,e)=>this._balanceNamespaceList(t,e)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let n=0;n<this.collectedEnterElements.length;n++)R_(this.collectedEnterElements[n],"ng-star-inserted");if(this._namespaceList.length&&(this.totalQueuedPlayers||this.collectedLeaveElements.length)){const n=[];try{e=this._flushAnimations(n,t)}finally{for(let t=0;t<n.length;t++)n[t]()}}else for(let n=0;n<this.collectedLeaveElements.length;n++)this.processLeaveNode(this.collectedLeaveElements[n]);if(this.totalQueuedPlayers=0,this.collectedEnterElements.length=0,this.collectedLeaveElements.length=0,this._flushFns.forEach(t=>t()),this._flushFns=[],this._whenQuietFns.length){const t=this._whenQuietFns;this._whenQuietFns=[],e.length?ey(e).onDone(()=>{t.forEach(t=>t())}):t.forEach(t=>t())}}reportError(t){throw new Error(`Unable to process animations due to the following failed trigger transitions\n ${t.join("\n")}`)}_flushAnimations(t,e){const n=new Qy,a=[],r=new Map,o=[],i=new Map,s=new Map,c=new Map,l=new Set;this.disabledNodes.forEach(t=>{l.add(t);const e=this.driver.query(t,".ng-animate-queued",!0);for(let n=0;n<e.length;n++)l.add(e[n])});const d=this.bodyNode,u=Array.from(this.statesByElement.keys()),g=N_(u,this.collectedEnterElements),f=new Map;let p=0;g.forEach((t,e)=>{const n="ng-enter"+p++;f.set(e,n),t.forEach(t=>R_(t,n))});const m=[],h=new Set,b=new Set;for(let I=0;I<this.collectedLeaveElements.length;I++){const t=this.collectedLeaveElements[I],e=t.__ng_removed;e&&e.setForRemoval&&(m.push(t),h.add(t),e.hasAnimation?this.driver.query(t,".ng-star-inserted",!0).forEach(t=>h.add(t)):b.add(t))}const y=new Map,_=N_(u,Array.from(h));_.forEach((t,e)=>{const n="ng-leave"+p++;y.set(e,n),t.forEach(t=>R_(t,n))}),t.push(()=>{g.forEach((t,e)=>{const n=f.get(e);t.forEach(t=>A_(t,n))}),_.forEach((t,e)=>{const n=y.get(e);t.forEach(t=>A_(t,n))}),m.forEach(t=>{this.processLeaveNode(t)})});const O=[],v=[];for(let I=this._namespaceList.length-1;I>=0;I--)this._namespaceList[I].drainQueuedTransitions(e).forEach(t=>{const e=t.player,r=t.element;if(O.push(e),this.collectedEnterElements.length){const t=r.__ng_removed;if(t&&t.setForMove)return void e.destroy()}const l=!d||!this.driver.containsElement(d,r),u=y.get(r),g=f.get(r),p=this._buildInstruction(t,n,g,u,l);if(!p.errors||!p.errors.length)return l?(e.onStart(()=>ky(r,p.fromStyles)),e.onDestroy(()=>Sy(r,p.toStyles)),void a.push(e)):t.isFallbackTransition?(e.onStart(()=>ky(r,p.fromStyles)),e.onDestroy(()=>Sy(r,p.toStyles)),void a.push(e)):(p.timelines.forEach(t=>t.stretchStartingKeyframe=!0),n.append(r,p.timelines),o.push({instruction:p,player:e,element:r}),p.queriedElements.forEach(t=>iy(i,t,[]).push(e)),p.preStyleProps.forEach((t,e)=>{const n=Object.keys(t);if(n.length){let t=s.get(e);t||s.set(e,t=new Set),n.forEach(e=>t.add(e))}}),void p.postStyleProps.forEach((t,e)=>{const n=Object.keys(t);let a=c.get(e);a||c.set(e,a=new Set),n.forEach(t=>a.add(t))}));v.push(p)});if(v.length){const t=[];v.forEach(e=>{t.push(`@${e.triggerName} has failed due to:\n`),e.errors.forEach(e=>t.push(`- ${e}\n`))}),O.forEach(t=>t.destroy()),this.reportError(t)}const C=new Map,P=new Map;o.forEach(t=>{const e=t.element;n.has(e)&&(P.set(e,e),this._beforeAnimationBuild(t.player.namespaceId,t.instruction,C))}),a.forEach(t=>{const e=t.element;this._getPreviousPlayers(e,!1,t.namespaceId,t.triggerName,null).forEach(t=>{iy(C,e,[]).push(t),t.destroy()})});const M=m.filter(t=>D_(t,s,c)),x=new Map;I_(x,this.driver,b,c,Gt.a).forEach(t=>{D_(t,s,c)&&M.push(t)});const w=new Map;g.forEach((t,e)=>{I_(w,this.driver,new Set(t),s,Gt.l)}),M.forEach(t=>{const e=x.get(t),n=w.get(t);x.set(t,Object.assign({},e,n))});const T=[],S=[],k={};o.forEach(t=>{const{element:e,player:o,instruction:i}=t;if(n.has(e)){if(l.has(e))return o.onDestroy(()=>Sy(e,i.toStyles)),o.disabled=!0,o.overrideTotalTime(i.totalTime),void a.push(o);let t=k;if(P.size>1){let n=e;const a=[];for(;n=n.parentNode;){const e=P.get(n);if(e){t=e;break}a.push(n)}a.forEach(e=>P.set(e,t))}const n=this._buildAnimation(o.namespaceId,i,C,r,w,x);if(o.setRealPlayer(n),t===k)T.push(o);else{const e=this.playersByElement.get(t);e&&e.length&&(o.parentPlayer=ey(e)),a.push(o)}}else ky(e,i.fromStyles),o.onDestroy(()=>Sy(e,i.toStyles)),S.push(o),l.has(e)&&a.push(o)}),S.forEach(t=>{const e=r.get(t.element);if(e&&e.length){const n=ey(e);t.setRealPlayer(n)}}),a.forEach(t=>{t.parentPlayer?t.syncPlayerEvents(t.parentPlayer):t.destroy()});for(let I=0;I<m.length;I++){const t=m[I],e=t.__ng_removed;if(A_(t,"ng-leave"),e&&e.hasAnimation)continue;let n=[];if(i.size){let e=i.get(t);e&&e.length&&n.push(...e);let a=this.driver.query(t,".ng-animating",!0);for(let t=0;t<a.length;t++){let e=i.get(a[t]);e&&e.length&&n.push(...e)}}const a=n.filter(t=>!t.destroyed);a.length?E_(this,t,a):this.processLeaveNode(t)}return m.length=0,T.forEach(t=>{this.players.push(t),t.onDone(()=>{t.destroy();const e=this.players.indexOf(t);this.players.splice(e,1)}),t.play()}),T}elementContainsData(t,e){let n=!1;const a=e.__ng_removed;return a&&a.setForRemoval&&(n=!0),this.playersByElement.has(e)&&(n=!0),this.playersByQueriedElement.has(e)&&(n=!0),this.statesByElement.has(e)&&(n=!0),this._fetchNamespace(t).elementContainsData(e)||n}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,n,a,r){let o=[];if(e){const e=this.playersByQueriedElement.get(t);e&&(o=e)}else{const e=this.playersByElement.get(t);if(e){const t=!r||"void"==r;e.forEach(e=>{e.queued||(t||e.triggerName==a)&&o.push(e)})}}return(n||a)&&(o=o.filter(t=>!(n&&n!=t.namespaceId||a&&a!=t.triggerName))),o}_beforeAnimationBuild(t,e,n){const a=e.element,r=e.isRemovalTransition?void 0:t,o=e.isRemovalTransition?void 0:e.triggerName;for(const i of e.timelines){const t=i.element,s=t!==a,c=iy(n,t,[]);this._getPreviousPlayers(t,s,r,o,e.toState).forEach(t=>{const e=t.getRealPlayer();e.beforeDestroy&&e.beforeDestroy(),t.destroy(),c.push(t)})}ky(a,e.fromStyles)}_buildAnimation(t,e,n,a,r,o){const i=e.triggerName,s=e.element,c=[],l=new Set,d=new Set,u=e.timelines.map(e=>{const u=e.element;l.add(u);const g=u.__ng_removed;if(g&&g.removedBeforeQueried)return new Gt.d(e.duration,e.delay);const f=u!==s,p=function(t){const e=[];return function t(e,n){for(let a=0;a<e.length;a++){const r=e[a];r instanceof Gt.k?t(r.players,n):n.push(r)}}(t,e),e}((n.get(u)||O_).map(t=>t.getRealPlayer())).filter(t=>!!t.element&&t.element===u),m=r.get(u),h=o.get(u),b=ny(0,this._normalizer,0,e.keyframes,m,h),y=this._buildPlayer(e,b,p);if(e.subTimeline&&a&&d.add(u),f){const e=new T_(t,i,u);e.setRealPlayer(y),c.push(e)}return y});c.forEach(t=>{iy(this.playersByQueriedElement,t.element,[]).push(t),t.onDone(()=>function(t,e,n){let a;if(t instanceof Map){if(a=t.get(e),a){if(a.length){const t=a.indexOf(n);a.splice(t,1)}0==a.length&&t.delete(e)}}else if(a=t[e],a){if(a.length){const t=a.indexOf(n);a.splice(t,1)}0==a.length&&delete t[e]}return a}(this.playersByQueriedElement,t.element,t))}),l.forEach(t=>R_(t,"ng-animating"));const g=ey(u);return g.onDestroy(()=>{l.forEach(t=>A_(t,"ng-animating")),Sy(s,e.toStyles)}),d.forEach(t=>{iy(a,t,[]).push(g)}),g}_buildPlayer(t,e,n){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,n):new Gt.d(t.duration,t.delay)}}class T_{constructor(t,e,n){this.namespaceId=t,this.triggerName=e,this.element=n,this._player=new Gt.d,this._containsRealPlayer=!1,this._queuedCallbacks={},this.destroyed=!1,this.markedForDestroy=!1,this.disabled=!1,this.queued=!0,this.totalTime=0}setRealPlayer(t){this._containsRealPlayer||(this._player=t,Object.keys(this._queuedCallbacks).forEach(e=>{this._queuedCallbacks[e].forEach(n=>ay(t,e,void 0,n))}),this._queuedCallbacks={},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){iy(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 S_(t){return t&&1===t.nodeType}function k_(t,e){const n=t.style.display;return t.style.display=null!=e?e:"none",n}function I_(t,e,n,a,r){const o=[];n.forEach(t=>o.push(k_(t)));const i=[];a.forEach((n,a)=>{const o={};n.forEach(t=>{const n=o[t]=e.computeStyle(a,t,r);n&&0!=n.length||(a.__ng_removed=C_,i.push(a))}),t.set(a,o)});let s=0;return n.forEach(t=>k_(t,o[s++])),i}function N_(t,e){const n=new Map;if(t.forEach(t=>n.set(t,[])),0==e.length)return n;const a=new Set(e),r=new Map;return e.forEach(t=>{const e=function t(e){if(!e)return 1;let o=r.get(e);if(o)return o;const i=e.parentNode;return o=n.has(i)?i:a.has(i)?1:t(i),r.set(e,o),o}(t);1!==e&&n.get(e).push(t)}),n}function R_(t,e){if(t.classList)t.classList.add(e);else{let n=t.$$classes;n||(n=t.$$classes={}),n[e]=!0}}function A_(t,e){if(t.classList)t.classList.remove(e);else{let n=t.$$classes;n&&delete n[e]}}function E_(t,e,n){ey(n).onDone(()=>t.processLeaveNode(e))}function D_(t,e,n){const a=n.get(t);if(!a)return!1;let r=e.get(t);return r?a.forEach(t=>r.add(t)):e.set(t,a),n.delete(t),!0}class L_{constructor(t,e,n){this.bodyNode=t,this._driver=e,this._triggerCache={},this.onRemovalComplete=(t,e)=>{},this._transitionEngine=new w_(t,e,n),this._timelineEngine=new __(t,e,n),this._transitionEngine.onRemovalComplete=(t,e)=>this.onRemovalComplete(t,e)}registerTrigger(t,e,n,a,r){const o=t+"-"+a;let i=this._triggerCache[o];if(!i){const t=[],e=Uy(this._driver,r,t);if(t.length)throw new Error(`The animation trigger "${a}" has failed to build due to the following errors:\n - ${t.join("\n - ")}`);i=function(t,e){return new h_(t,e)}(a,e),this._triggerCache[o]=i}this._transitionEngine.registerTrigger(e,a,i)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,n,a){this._transitionEngine.insertNode(t,e,n,a)}onRemove(t,e,n,a){this._transitionEngine.removeNode(t,e,a||!1,n)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,n,a){if("@"==n.charAt(0)){const[t,r]=sy(n);this._timelineEngine.command(t,e,r,a)}else this._transitionEngine.trigger(t,e,n,a)}listen(t,e,n,a,r){if("@"==n.charAt(0)){const[t,a]=sy(n);return this._timelineEngine.listen(t,e,a,r)}return this._transitionEngine.listen(t,e,n,a,r)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return this._transitionEngine.players.concat(this._timelineEngine.players)}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}}function q_(t,e){let n=null,a=null;return Array.isArray(e)&&e.length?(n=F_(e[0]),e.length>1&&(a=F_(e[e.length-1]))):e&&(n=F_(e)),n||a?new j_(t,n,a):null}let j_=(()=>{class t{constructor(e,n,a){this._element=e,this._startStyles=n,this._endStyles=a,this._state=0;let r=t.initialStylesByElement.get(e);r||t.initialStylesByElement.set(e,r={}),this._initialStyles=r}start(){this._state<1&&(this._startStyles&&Sy(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Sy(this._element,this._initialStyles),this._endStyles&&(Sy(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(t.initialStylesByElement.delete(this._element),this._startStyles&&(ky(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(ky(this._element,this._endStyles),this._endStyles=null),Sy(this._element,this._initialStyles),this._state=3)}}return t.initialStylesByElement=new WeakMap,t})();function F_(t){let e=null;const n=Object.keys(t);for(let a=0;a<n.length;a++){const r=n[a];z_(r)&&(e=e||{},e[r]=t[r])}return e}function z_(t){return"display"===t||"position"===t}class G_{constructor(t,e,n,a,r,o,i){this._element=t,this._name=e,this._duration=n,this._delay=a,this._easing=r,this._fillMode=o,this._onDoneFn=i,this._finished=!1,this._destroyed=!1,this._startTime=0,this._position=0,this._eventFn=t=>this._handleCallback(t)}apply(){!function(t,e){const n=W_(t,"").trim();n.length&&(function(t,e){let n=0;for(let a=0;a<t.length;a++)","===t.charAt(a)&&n++}(n),e=`${n}, ${e}`),U_(t,"",e)}(this._element,`${this._duration}ms ${this._easing} ${this._delay}ms 1 normal ${this._fillMode} ${this._name}`),H_(this._element,this._eventFn,!1),this._startTime=Date.now()}pause(){B_(this._element,this._name,"paused")}resume(){B_(this._element,this._name,"running")}setPosition(t){const e=V_(this._element,this._name);this._position=t*this._duration,U_(this._element,"Delay",`-${this._position}ms`,e)}getPosition(){return this._position}_handleCallback(t){const e=t._ngTestManualTimestamp||Date.now(),n=1e3*parseFloat(t.elapsedTime.toFixed(3));t.animationName==this._name&&Math.max(e-this._startTime,0)>=this._delay&&n>=this._duration&&this.finish()}finish(){this._finished||(this._finished=!0,this._onDoneFn(),H_(this._element,this._eventFn,!0))}destroy(){this._destroyed||(this._destroyed=!0,this.finish(),function(t,e){const n=W_(t,"").split(","),a=Y_(n,e);a>=0&&(n.splice(a,1),U_(t,"",n.join(",")))}(this._element,this._name))}}function B_(t,e,n){U_(t,"PlayState",n,V_(t,e))}function V_(t,e){const n=W_(t,"");return n.indexOf(",")>0?Y_(n.split(","),e):Y_([n],e)}function Y_(t,e){for(let n=0;n<t.length;n++)if(t[n].indexOf(e)>=0)return n;return-1}function H_(t,e,n){n?t.removeEventListener("animationend",e):t.addEventListener("animationend",e)}function U_(t,e,n,a){const r="animation"+e;if(null!=a){const e=t.style[r];if(e.length){const t=e.split(",");t[a]=n,n=t.join(",")}}t.style[r]=n}function W_(t,e){return t.style["animation"+e]}class K_{constructor(t,e,n,a,r,o,i,s){this.element=t,this.keyframes=e,this.animationName=n,this._duration=a,this._delay=r,this._finalStyles=i,this._specialStyles=s,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._started=!1,this.currentSnapshot={},this._state=0,this.easing=o||"linear",this.totalTime=a+r,this._buildStyler()}onStart(t){this._onStartFns.push(t)}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}destroy(){this.init(),this._state>=4||(this._state=4,this._styler.destroy(),this._flushStartFns(),this._flushDoneFns(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}_flushDoneFns(){this._onDoneFns.forEach(t=>t()),this._onDoneFns=[]}_flushStartFns(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}finish(){this.init(),this._state>=3||(this._state=3,this._styler.finish(),this._flushStartFns(),this._specialStyles&&this._specialStyles.finish(),this._flushDoneFns())}setPosition(t){this._styler.setPosition(t)}getPosition(){return this._styler.getPosition()}hasStarted(){return this._state>=2}init(){this._state>=1||(this._state=1,this._styler.apply(),this._delay&&this._styler.pause())}play(){this.init(),this.hasStarted()||(this._flushStartFns(),this._state=2,this._specialStyles&&this._specialStyles.start()),this._styler.resume()}pause(){this.init(),this._styler.pause()}restart(){this.reset(),this.play()}reset(){this._styler.destroy(),this._buildStyler(),this._styler.apply()}_buildStyler(){this._styler=new G_(this.element,this.animationName,this._duration,this._delay,this.easing,"forwards",()=>this.finish())}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}beforeDestroy(){this.init();const t={};if(this.hasStarted()){const e=this._state>=3;Object.keys(this._finalStyles).forEach(n=>{"offset"!=n&&(t[n]=e?this._finalStyles[n]:zy(this.element,n))})}this.currentSnapshot=t}}class $_ extends Gt.d{constructor(t,e){super(),this.element=t,this._startingStyles={},this.__initialized=!1,this._styles=yy(e)}init(){!this.__initialized&&this._startingStyles&&(this.__initialized=!0,Object.keys(this._styles).forEach(t=>{this._startingStyles[t]=this.element.style[t]}),super.init())}play(){this._startingStyles&&(this.init(),Object.keys(this._styles).forEach(t=>this.element.style.setProperty(t,this._styles[t])),super.play())}destroy(){this._startingStyles&&(Object.keys(this._startingStyles).forEach(t=>{const e=this._startingStyles[t];e?this.element.style.setProperty(t,e):this.element.style.removeProperty(t)}),this._startingStyles=null,super.destroy())}}class Z_{constructor(){this._count=0,this._head=document.querySelector("head"),this._warningIssued=!1}validateStyleProperty(t){return py(t)}matchesElement(t,e){return my(t,e)}containsElement(t,e){return hy(t,e)}query(t,e,n){return by(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}buildKeyframeElement(t,e,n){n=n.map(t=>yy(t));let a=`@keyframes ${e} {\n`,r="";n.forEach(t=>{r=" ";const e=parseFloat(t.offset);a+=`${r}${100*e}% {\n`,r+=" ",Object.keys(t).forEach(e=>{const n=t[e];switch(e){case"offset":return;case"easing":return void(n&&(a+=`${r}animation-timing-function: ${n};\n`));default:return void(a+=`${r}${e}: ${n};\n`)}}),a+=`${r}}\n`}),a+="}\n";const o=document.createElement("style");return o.innerHTML=a,o}animate(t,e,n,a,r,o=[],i){i&&this._notifyFaultyScrubber();const s=o.filter(t=>t instanceof K_),c={};qy(n,a)&&s.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>c[t]=e[t])});const l=function(t){let e={};return t&&(Array.isArray(t)?t:[t]).forEach(t=>{Object.keys(t).forEach(n=>{"offset"!=n&&"easing"!=n&&(e[n]=t[n])})}),e}(e=jy(t,e,c));if(0==n)return new $_(t,l);const d=`gen_css_kf_${this._count++}`,u=this.buildKeyframeElement(t,d,e);document.querySelector("head").appendChild(u);const g=q_(t,e),f=new K_(t,e,d,n,a,r,l,g);return f.onDestroy(()=>{var t;(t=u).parentNode.removeChild(t)}),f}_notifyFaultyScrubber(){this._warningIssued||(console.warn("@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\n","  visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill."),this._warningIssued=!0)}}class J_{constructor(t,e,n,a){this.element=t,this.keyframes=e,this.options=n,this._specialStyles=a,this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._initialized=!1,this._finished=!1,this._started=!1,this._destroyed=!1,this.time=0,this.parentPlayer=null,this.currentSnapshot={},this._duration=n.duration,this._delay=n.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]:{},this.domPlayer.addEventListener("finish",()=>this._onFinish())}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_triggerWebAnimation(t,e,n){return t.animate(e,n)}onStart(t){this._onStartFns.push(t)}onDone(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}_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){this.domPlayer.currentTime=t*this.time}getPosition(){return this.domPlayer.currentTime/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){const t={};this.hasStarted()&&Object.keys(this._finalKeyframe).forEach(e=>{"offset"!=e&&(t[e]=this._finished?this._finalKeyframe[e]:zy(this.element,e))}),this.currentSnapshot=t}triggerCallback(t){const e="start"==t?this._onStartFns:this._onDoneFns;e.forEach(t=>t()),e.length=0}}class X_{constructor(){this._isNativeImpl=/\{\s*\[native\s+code\]\s*\}/.test(Q_().toString()),this._cssKeyframesDriver=new Z_}validateStyleProperty(t){return py(t)}matchesElement(t,e){return my(t,e)}containsElement(t,e){return hy(t,e)}query(t,e,n){return by(t,e,n)}computeStyle(t,e,n){return window.getComputedStyle(t)[e]}overrideWebAnimationsSupport(t){this._isNativeImpl=t}animate(t,e,n,a,r,o=[],i){if(!i&&!this._isNativeImpl)return this._cssKeyframesDriver.animate(t,e,n,a,r,o);const s={duration:n,delay:a,fill:0==a?"both":"forwards"};r&&(s.easing=r);const c={},l=o.filter(t=>t instanceof J_);qy(n,a)&&l.forEach(t=>{let e=t.currentSnapshot;Object.keys(e).forEach(t=>c[t]=e[t])});const d=q_(t,e=jy(t,e=e.map(t=>xy(t,!1)),c));return new J_(t,e,s,d)}}function Q_(){return"undefined"!=typeof window&&void 0!==window.document&&Element.prototype.animate||{}}class tO extends Gt.b{constructor(t,e){super(),this._nextAnimationId=0,this._renderer=t.createRenderer(e.body,{id:"0",encapsulation:i.ViewEncapsulation.None,styles:[],data:{animation:[]}})}build(t){const e=this._nextAnimationId.toString();this._nextAnimationId++;const n=Array.isArray(t)?Object(Gt.f)(t):t;return aO(this._renderer,null,e,"register",[n]),new eO(e,this._renderer)}}class eO extends Gt.c{constructor(t,e){super(),this._id=t,this._renderer=e}create(t,e){return new nO(this._id,t,e||{},this._renderer)}}class nO{constructor(t,e,n,a){this.id=t,this.element=e,this._renderer=a,this.parentPlayer=null,this._started=!1,this.totalTime=0,this._command("create",n)}_listen(t,e){return this._renderer.listen(this.element,`@@${this.id}:${t}`,e)}_command(t,...e){return aO(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")}setPosition(t){this._command("setPosition",t)}getPosition(){return 0}}function aO(t,e,n,a,r){return t.setProperty(e,`@@${n}:${a}`,r)}class rO{constructor(t,e,n){this.delegate=t,this.engine=e,this._zone=n,this._currentId=0,this._microtaskId=1,this._animationCallbacksBuffer=[],this._rendererCache=new Map,this._cdRecurDepth=0,this.promise=Promise.resolve(0),e.onRemovalComplete=(t,e)=>{e&&e.parentNode(t)&&e.removeChild(t.parentNode,t)}}createRenderer(t,e){const n=this.delegate.createRenderer(t,e);if(!(t&&e&&e.data&&e.data.animation)){let t=this._rendererCache.get(n);return t||(t=new oO("",n,this.engine),this._rendererCache.set(n,t)),t}const a=e.id,r=e.id+"-"+this._currentId;return this._currentId++,this.engine.register(r,t),e.data.animation.forEach(e=>this.engine.registerTrigger(a,r,t,e.name,e)),new iO(this,r,n,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){this.promise.then(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,n){t>=0&&t<this._microtaskId?this._zone.run(()=>e(n)):(0==this._animationCallbacksBuffer.length&&Promise.resolve(null).then(()=>{this._zone.run(()=>{this._animationCallbacksBuffer.forEach(t=>{const[e,n]=t;e(n)}),this._animationCallbacksBuffer=[]})}),this._animationCallbacksBuffer.push([e,n]))}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()}}class oO{constructor(t,e,n){this.namespaceId=t,this.delegate=e,this.engine=n,this.destroyNode=this.delegate.destroyNode?t=>e.destroyNode(t):null}get data(){return this.delegate.data}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.delegate.destroy()}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,n){this.delegate.insertBefore(t,e,n),this.engine.onInsert(this.namespaceId,e,t,!0)}removeChild(t,e,n){this.engine.onRemove(this.namespaceId,e,this.delegate,n)}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,n,a){this.delegate.setAttribute(t,e,n,a)}removeAttribute(t,e,n){this.delegate.removeAttribute(t,e,n)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,n,a){this.delegate.setStyle(t,e,n,a)}removeStyle(t,e,n){this.delegate.removeStyle(t,e,n)}setProperty(t,e,n){"@"==e.charAt(0)&&"@.disabled"==e?this.disableAnimations(t,!!n):this.delegate.setProperty(t,e,n)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,n){return this.delegate.listen(t,e,n)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}}class iO extends oO{constructor(t,e,n,a){super(e,n,a),this.factory=t,this.namespaceId=e}setProperty(t,e,n){"@"==e.charAt(0)?"."==e.charAt(1)&&"@.disabled"==e?this.disableAnimations(t,n=void 0===n||!!n):this.engine.process(this.namespaceId,t,e.substr(1),n):this.delegate.setProperty(t,e,n)}listen(t,e,n){if("@"==e.charAt(0)){const a=function(t){switch(t){case"body":return document.body;case"document":return document;case"window":return window;default:return t}}(t);let r=e.substr(1),o="";return"@"!=r.charAt(0)&&([r,o]=function(t){const e=t.indexOf(".");return[t.substring(0,e),t.substr(e+1)]}(r)),this.engine.listen(this.namespaceId,a,r,o,t=>{this.factory.scheduleListenerCallback(t._data||-1,n,t)})}return this.delegate.listen(t,e,n)}}class sO extends L_{constructor(t,e,n){super(t.body,e,n)}}function cO(){return"function"==typeof Q_()?new X_:new Z_}function lO(){return new d_}function dO(t,e,n){return new rO(t,e,n)}const uO=new i.InjectionToken("AnimationModuleType");class gO{}var fO=n("Avrn");let pO=(()=>{class t{constructor(t,e){this.router=t,this.authStorageService=e}canActivate(){return!(this.authStorageService.isLoggedIn()&&!this.authStorageService.isSSO()&&this.authStorageService.getPwdUpdateRequired()&&(this.router.navigate(["/login-change-password"]),1))}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](St.m),i["ɵɵinject"](yt.a))},token:t,providedIn:"root"}),t})();var mO=n("Vhfg");let hO=(()=>{class t{constructor(t,e){this.http=t,this.router=e}canActivate(t){return this.doCheck(t)}canActivateChild(t){return this.doCheck(t)}doCheck(e){if(e.url.length>0&&t.WHITELIST.includes(e.url[0].path))return Object(fn.a)(!0);const n=e.data.moduleStatusGuardConfig;return this.http.get(`api/${n.apiPath}/status`).pipe(Object(pe.a)(t=>(t.available||this.router.navigate([n.redirectTo,t.message||""]),t.available)),Object(Xb.a)(()=>(this.router.navigate([n.redirectTo]),Object(fn.a)(!1))))}}return t.WHITELIST=["501"],t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c),i["ɵɵinject"](St.m))},token:t,providedIn:"root"}),t})(),bO=(()=>{class t{constructor(t,e){this.authStorageService=t,this.router=e}canActivate(){return!this.authStorageService.isSSO()||(this.router.navigate(["404"]),!1)}canActivateChild(){return this.canActivate()}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](yt.a),i["ɵɵinject"](St.m))},token:t,providedIn:"root"}),t})();class yO extends Cn{resolve(t){const e=[],n=t.queryParams.fromLink||null;let a="";switch(n){case"/monitor":a="Monitors";break;case"/hosts":a="Hosts"}return e.push({text:"Cluster",path:null}),e.push({text:a,path:n}),e.push({text:"Performance Counters",path:""}),e}}class _O extends Cn{resolve(t){const e=t.params.name;return[{text:$.startCase(e),path:e}]}}const OO={breadcrumbs:"Cluster/Hosts"},vO={breadcrumbs:vt.a.CREATE},CO={breadcrumbs:"Cluster/Monitors"},PO={breadcrumbs:"Cluster/Services"},MO={breadcrumbs:"Cluster/Inventory"},xO={breadcrumbs:"Cluster/OSDs"},wO={breadcrumbs:vt.a.CREATE},TO={breadcrumbs:"Cluster/Configuration"},SO={breadcrumbs:vt.a.EDIT},kO={breadcrumbs:"Cluster/CRUSH map"},IO={breadcrumbs:"Cluster/Logs"},NO={breadcrumbs:"Cluster/Monitoring"},RO={breadcrumbs:`${vt.a.CREATE} Silence`},AO={breadcrumbs:vt.a.CREATE},EO={breadcrumbs:vt.a.EDIT},DO={breadcrumbs:vt.a.RECREATE},LO={breadcrumbs:yO},qO={breadcrumbs:"Cluster/Manager modules"},jO={breadcrumbs:_O},FO={breadcrumbs:"Pools"},zO=()=>Promise.all([n.e(2),n.e(1),n.e(8)]).then(n.bind(null,"nOaW")).then(t=>t.RoutedPoolModuleNgFactory),GO={breadcrumbs:!0,text:"Block",path:null},BO=()=>Promise.all([n.e(2),n.e(7)]).then(n.bind(null,"J6Oi")).then(t=>t.RoutedBlockModuleNgFactory),VO={breadcrumbs:"Filesystems"},YO={moduleStatusGuardConfig:{apiPath:"rgw",redirectTo:"rgw/501"},breadcrumbs:!0,text:"Object Gateway",path:null},HO=()=>n.e(6).then(n.bind(null,"Znkk")).then(t=>t.RoutedRgwModuleNgFactory),UO={breadcrumbs:"User management",path:null},WO=()=>Promise.all([n.e(1),n.e(9)]).then(n.bind(null,"DY6s")).then(t=>t.RoutedAuthModuleNgFactory),KO={breadcrumbs:"User profile",path:null},$O={breadcrumbs:vt.a.EDIT},ZO={breadcrumbs:"NFS"},JO={moduleStatusGuardConfig:{apiPath:"nfs-ganesha",redirectTo:"nfs/501"},breadcrumbs:"NFS"},XO={breadcrumbs:vt.a.CREATE},QO={breadcrumbs:vt.a.EDIT};class tv{}var ev=n("yT6U"),nv=n("4DD9"),av=n("IzCI"),rv=n("Dwqy"),ov=n("uYzU"),iv=n("nSDx"),sv=n("SB+Q"),cv=n("BQkM"),lv=n("dEH0"),dv=n("G1/K"),uv=n("TJUb"),gv=n("efK2"),fv=n("FO+L"),pv=n("nhM1"),mv=n("BARL");class hv{constructor(){this.closeOthers=!1,this.isAnimated=!1}}class bv{static forRoot(){return{ngModule:bv,providers:[hv]}}}let yv=(()=>{class t{constructor(t){this.http=t}jsError(t,e,n){return this.http.post("ui-api/logging/js-error",{url:t,message:e,stack:n})}}return t.ngInjectableDef=i["ɵɵdefineInjectable"]({factory:function(){return new t(i["ɵɵinject"](J.c))},token:t,providedIn:me.a}),t})();class _v{constructor(t){this.injector=t}handleError(t){const e=this.injector.get(yv),n=window.location.href;throw e.jsError(n,t&&t.message,t&&t.stack).subscribe(),t}}var Ov=n("aHM3"),vv=n("9Xeq"),Cv=n("yGOH"),Pv=n("bxSN"),Mv=n("V/fk"),xv=n("F8xH"),wv=n("ChqD"),Tv=n("PCNd"),Sv=n("LceX");class kv{}class Iv{}var Nv=n("G6Q+");class Rv{}var Av=n("kJI8");class Ev{}class Dv{}class Lv{}class qv{}class jv{}var Fv=function(){function t(t){if(t)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}return t.forRoot=function(e){return{ngModule:t,providers:[{provide:J.a,useClass:Zb,multi:!0},e.jwtOptionsProvider||{provide:Wb,useValue:e.config},Kb]}},t}(),zv=i["ɵcmf"](l,[d],(function(t){return i["ɵmod"]([i["ɵmpd"](512,i.ComponentFactoryResolver,i["ɵCodegenComponentFactoryResolver"],[[8,[v,C.a,qn,fr,ei,_i,wi,qi,Fr,As,ic,Cc,Gc,nl,dd,qd,ou,du,vu,Uu,kg,Yg,$g,df,Zp,em,dm,Cm,Tm,Rm,qm,Bm,L,Y,Vm.a,Wt.a,Ym.a,Hm.a,Hm.b,Um.a,Wm.a,Km.a,$m.a,Zm.a,Jm.a,Jm.c,Jm.b,eh,bh,cs,Mh,Nh,Yh,Jh,bb,Tb,Eb,jb,Bb,Ub]],[3,i.ComponentFactoryResolver],i.NgModuleRef]),i["ɵmpd"](4608,J.j,J.p,[o.DOCUMENT,i.PLATFORM_ID,J.n]),i["ɵmpd"](4608,J.q,J.q,[J.j,J.o]),i["ɵmpd"](4608,Kb,Kb,[Wb]),i["ɵmpd"](4608,yt.a,yt.a,[]),i["ɵmpd"](5120,J.a,(function(t,e,n,a,r,o){return[t,new Zb(e,n),new Qb(a,r,o)]}),[J.q,Wb,Kb,St.m,yt.a,gt.a]),i["ɵmpd"](4608,J.m,J.m,[]),i["ɵmpd"](6144,J.k,null,[J.m]),i["ɵmpd"](4608,J.i,J.i,[J.k]),i["ɵmpd"](6144,J.b,null,[J.i]),i["ɵmpd"](4608,J.g,J.l,[J.b,i.Injector]),i["ɵmpd"](4608,J.c,J.c,[J.g]),i["ɵmpd"](4352,i.LOCALE_ID,"en-US",[]),i["ɵmpd"](4608,o.NgLocalization,o.NgLocaleLocalization,[i.LOCALE_ID,[2,o["ɵangular_packages_common_common_a"]]]),i["ɵmpd"](5120,i["ɵangular_packages_core_core_ba"],i["ɵangular_packages_core_core_r"],[i.NgZone]),i["ɵmpd"](5120,i.APP_ID,i["ɵangular_packages_core_core_f"],[]),i["ɵmpd"](5120,i.IterableDiffers,i["ɵangular_packages_core_core_n"],[]),i["ɵmpd"](5120,i.KeyValueDiffers,i["ɵangular_packages_core_core_o"],[]),i["ɵmpd"](4608,hr.b,hr.k,[o.DOCUMENT]),i["ɵmpd"](6144,i.Sanitizer,null,[hr.b]),i["ɵmpd"](4608,hr.e,hr.g,[]),i["ɵmpd"](5120,hr.c,(function(t,e,n,a,r,o,i,s){return[new hr.i(t,e,n),new hr.n(a),new hr.m(r,o,i,s)]}),[o.DOCUMENT,i.NgZone,i.PLATFORM_ID,o.DOCUMENT,o.DOCUMENT,hr.e,i["ɵConsole"],[2,hr.f]]),i["ɵmpd"](4608,hr.d,hr.d,[hr.c,i.NgZone]),i["ɵmpd"](135680,hr.l,hr.l,[o.DOCUMENT]),i["ɵmpd"](4608,hr.j,hr.j,[hr.d,hr.l,i.APP_ID]),i["ɵmpd"](5120,Oy,cO,[]),i["ɵmpd"](5120,l_,lO,[]),i["ɵmpd"](4608,L_,sO,[o.DOCUMENT,Oy,l_]),i["ɵmpd"](5120,i.RendererFactory2,dO,[hr.j,L_,i.NgZone]),i["ɵmpd"](6144,hr.o,null,[hr.l]),i["ɵmpd"](4608,i.Testability,i.Testability,[i.NgZone]),i["ɵmpd"](4608,Gt.b,tO,[i.RendererFactory2,o.DOCUMENT]),i["ɵmpd"](5120,St.a,St.B,[St.m]),i["ɵmpd"](4608,St.g,St.g,[]),i["ɵmpd"](6144,St.h,null,[St.g]),i["ɵmpd"](135680,St.s,St.s,[St.m,i.NgModuleFactoryLoader,i.Compiler,i.Injector,St.h]),i["ɵmpd"](4608,St.f,St.f,[]),i["ɵmpd"](5120,St.G,St.x,[St.m,o.ViewportScroller,St.i]),i["ɵmpd"](5120,St.j,St.E,[St.C]),i["ɵmpd"](5120,i.APP_BOOTSTRAP_LISTENER,(function(t){return[t]}),[St.j]),i["ɵmpd"](4608,_O,_O,[]),i["ɵmpd"](4608,yO,yO,[]),i["ɵmpd"](4608,W.D,W.D,[]),i["ɵmpd"](4608,W.h,W.h,[]),i["ɵmpd"](4608,ev.a,ev.a,[]),i["ɵmpd"](4608,nv.a,nv.a,[]),i["ɵmpd"](5120,i.TRANSLATIONS,c,[i.LOCALE_ID]),i["ɵmpd"](4608,ia.a,ia.a,[i.TRANSLATIONS_FORMAT,i.TRANSLATIONS,i.LOCALE_ID,[2,ia.b]]),i["ɵmpd"](4608,sc.a,sc.a,[ia.a]),i["ɵmpd"](4608,o.DatePipe,o.DatePipe,[i.LOCALE_ID]),i["ɵmpd"](4608,Go.a,Go.a,[]),i["ɵmpd"](4608,bt.a,bt.a,[]),i["ɵmpd"](4608,ua.a,ua.a,[]),i["ɵmpd"](4608,Qn.a,Qn.a,[ua.a]),i["ɵmpd"](4608,av.a,av.a,[ua.a]),i["ɵmpd"](4608,ta.a,ta.a,[ua.a]),i["ɵmpd"](4608,rv.a,rv.a,[]),i["ɵmpd"](4608,ov.a,ov.a,[]),i["ɵmpd"](4608,zi.a,zi.a,[]),i["ɵmpd"](4608,Kl.a,Kl.a,[]),i["ɵmpd"](4608,se.a,se.a,[o.DatePipe]),i["ɵmpd"](4608,iv.a,iv.a,[]),i["ɵmpd"](4608,sv.a,sv.a,[]),i["ɵmpd"](4608,Tf.a,Tf.a,[]),i["ɵmpd"](4608,cv.a,cv.a,[]),i["ɵmpd"](4608,lv.a,lv.a,[]),i["ɵmpd"](4608,dv.a,dv.a,[ia.a]),i["ɵmpd"](4608,ci.a,ci.a,[]),i["ɵmpd"](4608,uv.a,uv.a,[]),i["ɵmpd"](4608,gv.a,gv.a,[]),i["ɵmpd"](4608,Kt.b,Kt.b,[]),i["ɵmpd"](4608,zn.a,zn.a,[]),i["ɵmpd"](4608,Gn.a,Gn.a,[i.RendererFactory2,i.PLATFORM_ID]),i["ɵmpd"](4608,U.a,U.a,[i.ComponentFactoryResolver,i.NgZone,i.Injector,Gn.a,i.ApplicationRef]),i["ɵmpd"](4608,re.c,re.c,[]),i["ɵmpd"](4608,In.a,In.a,[]),i["ɵmpd"](4608,Mt.b,Mt.b,[i.RendererFactory2,U.a]),i["ɵmpd"](4608,fv.ScrollbarHelper,fv.ScrollbarHelper,[o.DOCUMENT]),i["ɵmpd"](4608,pv.DimensionsHelper,pv.DimensionsHelper,[]),i["ɵmpd"](4608,mv.ColumnChangesService,mv.ColumnChangesService,[]),i["ɵmpd"](4608,H.f,H.f,[]),i["ɵmpd"](4608,fO.a,fO.a,[St.m,yt.a]),i["ɵmpd"](4608,Fn.f,Fn.f,[]),i["ɵmpd"](4608,nt.r,nt.r,[]),i["ɵmpd"](4608,nt.t,nt.t,[]),i["ɵmpd"](4608,nt.a,nt.a,[]),i["ɵmpd"](4608,nt.h,nt.h,[]),i["ɵmpd"](4608,nt.d,nt.d,[]),i["ɵmpd"](4608,nt.j,nt.j,[]),i["ɵmpd"](4608,nt.s,nt.s,[nt.t,nt.j]),i["ɵmpd"](5120,x,N,[I]),i["ɵmpd"](4608,S,S,[x]),i["ɵmpd"](4608,Cf,Cf,[]),i["ɵmpd"](4608,Cl,Cl,[]),i["ɵmpd"](4608,rl,rl,[]),i["ɵmpd"](4608,xl,xl,[]),i["ɵmpd"](4608,Hc.a,Hc.a,[]),i["ɵmpd"](4608,hv,hv,[]),i["ɵmpd"](4608,K.g,K.g,[K.b]),i["ɵmpd"](1073742336,J.e,J.e,[]),i["ɵmpd"](1073742336,J.d,J.d,[]),i["ɵmpd"](1073742336,o.CommonModule,o.CommonModule,[]),i["ɵmpd"](512,i.ErrorHandler,_v,[i.Injector]),i["ɵmpd"](1024,i.NgProbeToken,(function(){return[St.w()]}),[]),i["ɵmpd"](512,St.C,St.C,[i.Injector]),i["ɵmpd"](1024,i.APP_INITIALIZER,(function(t,e){return[hr.p(t),St.D(e)]}),[[2,i.NgProbeToken],St.C]),i["ɵmpd"](512,i.ApplicationInitStatus,i.ApplicationInitStatus,[[2,i.APP_INITIALIZER]]),i["ɵmpd"](131584,i.ApplicationRef,i.ApplicationRef,[i.NgZone,i["ɵConsole"],i.Injector,i.ErrorHandler,i.ComponentFactoryResolver,i.ApplicationInitStatus]),i["ɵmpd"](1073742336,i.ApplicationModule,i.ApplicationModule,[i.ApplicationRef]),i["ɵmpd"](1073742336,hr.a,hr.a,[[3,hr.a]]),i["ɵmpd"](1073742336,gO,gO,[]),i["ɵmpd"](1073742336,u.i,u.i,[]),i["ɵmpd"](1024,St.v,St.z,[[3,St.m]]),i["ɵmpd"](512,St.u,St.c,[]),i["ɵmpd"](512,St.b,St.b,[]),i["ɵmpd"](256,St.i,{useHash:!0,preloadingStrategy:St.g},[]),i["ɵmpd"](1024,o.LocationStrategy,St.y,[o.PlatformLocation,[2,o.APP_BASE_HREF],St.i]),i["ɵmpd"](512,o.Location,o.Location,[o.LocationStrategy,o.PlatformLocation]),i["ɵmpd"](512,i.Compiler,i.Compiler,[]),i["ɵmpd"](512,i.NgModuleFactoryLoader,i.SystemJsNgModuleLoader,[i.Compiler,[2,i.SystemJsNgModuleLoaderConfig]]),i["ɵmpd"](1024,St.k,(function(){return[[{path:"",redirectTo:"dashboard",pathMatch:"full"},{path:"",component:An,canActivate:[fO.a,pO],canActivateChild:[fO.a,pO],children:[{path:"dashboard",component:sr},{path:"hosts",data:OO,children:[{path:"",component:Uo},{path:"create",component:ui,data:vO}]},{path:"monitor",component:vi,data:CO},{path:"services",component:Ni,data:PO},{path:"inventory",component:Ar,data:MO},{path:"osd",data:xO,children:[{path:"",component:Cs},{path:"create",component:$s,data:wO}]},{path:"configuration",data:TO,children:[{path:"",component:mc},{path:"edit/:name",component:Mc,data:SO}]},{path:"crush-map",component:Kc,data:kO},{path:"logs",component:Zl,data:IO},{path:"monitoring",data:NO,children:[{path:"",component:Td},{path:"silence/create",component:Gd,data:RO},{path:"silence/create/:id",component:Gd,data:AO},{path:"silence/edit/:id",component:Gd,data:EO},{path:"silence/recreate/:id",component:Gd,data:DO}]},{path:"perf_counters/:type/:id",component:iu,data:LO},{path:"mgr-modules",data:qO,children:[{path:"",component:bu},{path:"edit/:name",component:Cu,data:jO}]},{path:"pool",data:FO,loadChildren:zO},{path:"block",data:GO,loadChildren:BO},{path:"cephfs",component:xg,canActivate:[mO.a],data:VO},{path:"rgw",canActivateChild:[mO.a,hO],data:YO,loadChildren:HO},{path:"user-management",data:UO,loadChildren:WO},{path:"user-profile",data:KO,children:[{path:"edit",component:Rg,canActivate:[bO],data:$O}]},{path:"nfs/501/:message",component:Hg,data:ZO},{path:"nfs",canActivateChild:[mO.a,hO],data:JO,children:[{path:"",component:nf},{path:"create",component:Gf,data:XO},{path:"edit/:cluster_id/:export_id",component:Gf,data:QO}]}]},{path:"",component:Jp,children:[{path:"login",component:am},{path:"login-change-password",component:um,canActivate:[bO]},{path:"logout",children:[]}]},{path:"",component:Pm,children:[{path:"sso/404",component:Sm},{path:"403",component:Am},{path:"404",component:jm},{path:"**",redirectTo:"/404"}]}]]}),[]),i["ɵmpd"](1024,St.m,St.A,[i.ApplicationRef,St.u,St.b,o.Location,i.Injector,i.NgModuleFactoryLoader,i.Compiler,St.k,St.i,[2,St.t],[2,St.l]]),i["ɵmpd"](1073742336,St.q,St.q,[[2,St.v],[2,St.m]]),i["ɵmpd"](1073742336,tv,tv,[]),i["ɵmpd"](1073742336,R,R,[]),i["ɵmpd"](1073742336,Ov.a,Ov.a,[]),i["ɵmpd"](1073742336,W.C,W.C,[]),i["ɵmpd"](1073742336,W.n,W.n,[]),i["ɵmpd"](1073742336,zn.d,zn.d,[]),i["ɵmpd"](1073742336,W.y,W.y,[]),i["ɵmpd"](1073742336,vv.a,vv.a,[]),i["ɵmpd"](1073742336,Kt.c,Kt.c,[]),i["ɵmpd"](1073742336,re.d,re.d,[]),i["ɵmpd"](1073742336,In.d,In.d,[]),i["ɵmpd"](1073742336,Zn.b,Zn.b,[]),i["ɵmpd"](1073742336,Mt.e,Mt.e,[]),i["ɵmpd"](1073742336,Cv.a,Cv.a,[]),i["ɵmpd"](1073742336,H.e,H.e,[]),i["ɵmpd"](1073742336,K.f,K.f,[]),i["ɵmpd"](1073742336,Pv.ClickOutsideModule,Pv.ClickOutsideModule,[]),i["ɵmpd"](1073742336,le.b,le.b,[]),i["ɵmpd"](1073742336,Mv.a,Mv.a,[]),i["ɵmpd"](1073742336,xv.NgxDatatableModule,xv.NgxDatatableModule,[]),i["ɵmpd"](1073742336,wv.a,wv.a,[]),i["ɵmpd"](1073742336,me.a,me.a,[]),i["ɵmpd"](1073742336,Tv.a,Tv.a,[]),i["ɵmpd"](1073742336,Fn.d,Fn.d,[]),i["ɵmpd"](1073742336,nt.g,nt.g,[]),i["ɵmpd"](1073742336,Sv.a,Sv.a,[]),i["ɵmpd"](1073742336,Ht,Ht,[]),i["ɵmpd"](1073742336,kv,kv,[]),i["ɵmpd"](1073742336,Iv,Iv,[]),i["ɵmpd"](1073742336,Nv.a,Nv.a,[]),i["ɵmpd"](1073742336,Rv,Rv,[]),i["ɵmpd"](1073742336,Mf,Mf,[]),i["ɵmpd"](1073742336,Tl,Tl,[]),i["ɵmpd"](1073742336,Wc.b,Wc.b,[]),i["ɵmpd"](1073742336,Av.a,Av.a,[]),i["ɵmpd"](1073742336,Ev,Ev,[]),i["ɵmpd"](1073742336,Dv,Dv,[]),i["ɵmpd"](1073742336,Lv,Lv,[]),i["ɵmpd"](1073742336,qv,qv,[]),i["ɵmpd"](1073742336,jv,jv,[]),i["ɵmpd"](1073742336,bv,bv,[]),i["ɵmpd"](1073742336,Fv,Fv,[[3,Fv]]),i["ɵmpd"](1073742336,l,l,[]),i["ɵmpd"](256,J.n,"XSRF-TOKEN",[]),i["ɵmpd"](256,J.o,"X-XSRF-TOKEN",[]),i["ɵmpd"](256,Wb,{tokenGetter:s},[]),i["ɵmpd"](256,i["ɵAPP_ROOT"],!0,[]),i["ɵmpd"](256,uO,"BrowserAnimations",[]),i["ɵmpd"](256,i.TRANSLATIONS_FORMAT,"xlf",[]),i["ɵmpd"](256,H.a,{autoClose:!0,insideClick:!1},[]),i["ɵmpd"](256,I,{},[]),i["ɵmpd"](256,u.b,{default:u.a,config:{positionClass:"toast-top-right",preventDuplicates:!0,enableHtml:!0}},[]),i["ɵmpd"](1024,K.b,(function(){return[[]]}),[]),i["ɵmpd"](256,K.a,1,[])])}));o.registerLocaleData(r.a),Object(i.enableProdMode)(),hr.h().bootstrapModuleFactory(zv).catch(t=>console.log(t))},zZ0H:function(t,e){t.exports=function(t){return t}},zavE:function(t,e,n){!function(t){"use strict";t.defineLocale("en-SG",{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(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})}(n("wd/R"))},zk60:function(t,e,n){var a=n("2oRo"),r=n("kRJp");t.exports=function(t,e){try{r(a,t,e)}catch(n){a[t]=e}return e}},zoYe:function(t,e,n){var a=n("nmnc"),r=n("eUgh"),o=n("Z0cm"),i=n("/9aa"),s=a?a.prototype:void 0,c=s?s.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(o(e))return r(e,t)+"";if(i(e))return c?c.call(e):"";var n=e+"";return"0"==n&&1/e==-1/0?"-0":n}},zx6S:function(t,e,n){!function(t){"use strict";var e={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(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,a){var r=e.words[a];return 1===a.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};t.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_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_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če u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n("wd/R"))}},[[0,0]]]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.2fd4e31a298ae797b302.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.2fd4e31a298ae797b302.js
deleted file mode 100644 (file)
index 90faca9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-!function(e){function r(r){for(var n,a,i=r[0],f=r[1],c=r[2],p=0,s=[];p<i.length;p++)a=i[p],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in f)Object.prototype.hasOwnProperty.call(f,n)&&(e[n]=f[n]);for(l&&l(r);s.length;)s.shift()();return u.push.apply(u,c||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++)0!==o[t[i]]&&(n=!1);n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={0:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,i=document.createElement("script");i.charset="utf-8",i.timeout=120,a.nc&&i.setAttribute("nonce",a.nc),i.src=function(e){return a.p+""+({1:"common"}[e]||e)+"."+{1:"855fba17cfb445002363",2:"d36650ee0a92dfd05faa",6:"4299ba94dd69b0b04046",7:"cf5f8c70f123c771366b",8:"f45b72794d78f44d11b9",9:"a6e2f7400e0a62470111"}[e]+".js"}(e);var f=new Error;u=function(r){i.onerror=i.onload=null,clearTimeout(c);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;f.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",f.name="ChunkLoadError",f.type=n,f.request=u,t[1](f)}o[e]=void 0}};var c=setTimeout((function(){u({type:"timeout",target:i})}),12e4);i.onerror=i.onload=u,document.head.appendChild(i)}return Promise.all(r)},a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,(function(r){return e[r]}).bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],f=i.push.bind(i);i.push=r,i=i.slice();for(var c=0;c<i.length;c++)r(i[c]);var l=f;t()}([]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.992511a1840a2561365a.js b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/runtime.992511a1840a2561365a.js
new file mode 100644 (file)
index 0000000..f439ff6
--- /dev/null
@@ -0,0 +1 @@
+!function(e){function r(r){for(var n,u,c=r[0],i=r[1],f=r[2],p=0,s=[];p<c.length;p++)u=c[p],Object.prototype.hasOwnProperty.call(o,u)&&o[u]&&s.push(o[u][0]),o[u]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(l&&l(r);s.length;)s.shift()();return a.push.apply(a,f||[]),t()}function t(){for(var e,r=0;r<a.length;r++){for(var t=a[r],n=!0,c=1;c<t.length;c++)0!==o[t[c]]&&(n=!1);n&&(a.splice(r--,1),e=u(u.s=t[0]))}return e}var n={},o={0:0},a=[];function u(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,u),t.l=!0,t.exports}u.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var a,c=document.createElement("script");c.charset="utf-8",c.timeout=120,u.nc&&c.setAttribute("nonce",u.nc),c.src=function(e){return u.p+""+({1:"common"}[e]||e)+"."+{1:"855fba17cfb445002363",2:"5b0a7ba1cfec198ba8ed",6:"c0ad55977c0a220b3203",7:"904941689cb18cba0036",8:"988fe96f3a1b2f8c64cd",9:"d895914fbc785284c5be"}[e]+".js"}(e);var i=new Error;a=function(r){c.onerror=c.onload=null,clearTimeout(f);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;i.message="Loading chunk "+e+" failed.\n("+n+": "+a+")",i.name="ChunkLoadError",i.type=n,i.request=a,t[1](i)}o[e]=void 0}};var f=setTimeout((function(){a({type:"timeout",target:c})}),12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(r)},u.m=e,u.c=n,u.d=function(e,r,t){u.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},u.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.t=function(e,r){if(1&r&&(e=u(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(u.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)u.d(t,n,(function(r){return e[r]}).bind(null,n));return t},u.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return u.d(r,"a",r),r},u.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},u.p="",u.oe=function(e){throw console.error(e),e};var c=window.webpackJsonp=window.webpackJsonp||[],i=c.push.bind(c);c.push=r,c=c.slice();for(var f=0;f<c.length;f++)r(c[f]);var l=i;t()}([]);
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.4f0058c288677d311127.css b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.4f0058c288677d311127.css
new file mode 100644 (file)
index 0000000..5af4cad
--- /dev/null
@@ -0,0 +1,17 @@
+@charset "UTF-8";.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #fff}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E")}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E")}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E")}.toast-container.toast-bottom-center .ngx-toastr,.toast-container.toast-top-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-bottom-full-width .ngx-toastr,.toast-container.toast-top-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width:240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}.bs-datepicker{display:flex;align-items:stretch;flex-flow:row wrap;background:#fff;box-shadow:0 0 10px 0 #aaa;position:relative;z-index:1}.bs-datepicker:after{clear:both;content:'';display:block}.bs-datepicker bs-day-picker{float:left}.bs-datepicker button:active,.bs-datepicker button:focus,.bs-datepicker button:hover,.bs-datepicker input:active,.bs-datepicker input:focus,.bs-datepicker input:hover,.bs-datepicker-btns button:active,.bs-datepicker-btns button:focus,.bs-datepicker-btns button:hover,.bs-datepicker-predefined-btns button:active,.bs-datepicker-predefined-btns button:focus{outline:0}.bs-datepicker-head{min-width:270px;height:50px;padding:10px;border-radius:3px 3px 0 0;text-align:justify}.bs-datepicker-head:after{content:"";display:inline-block;vertical-align:top;width:100%}.bs-datepicker-head button{display:inline-block;vertical-align:top;padding:0;height:30px;line-height:30px;border:0;background:0 0;text-align:center;cursor:pointer;color:#fff;transition:.3s}.bs-datepicker-head button[disabled],.bs-datepicker-head button[disabled]:active,.bs-datepicker-head button[disabled]:hover{background:rgba(221,221,221,.3);color:#f5f5f5;cursor:not-allowed}.bs-datepicker-head button.next,.bs-datepicker-head button.previous{border-radius:50%;width:30px;height:30px}.bs-datepicker-head button.next span,.bs-datepicker-head button.previous span{font-size:28px;line-height:1;display:inline-block;position:relative;height:100%;width:100%;border-radius:50%}.bs-datepicker-head button.current{border-radius:15px;max-width:155px;padding:0 13px}.bs-datepicker-head button:hover{background-color:rgba(0,0,0,.1)}.bs-datepicker-head button:active{background-color:rgba(0,0,0,.2)}.bs-datepicker-body{padding:10px;border-radius:0 0 3px 3px;min-height:232px;min-width:278px;border:1px solid #e9edf0}.bs-datepicker-body .days.weeks{position:relative;z-index:1}.bs-datepicker-body table{width:100%;border-collapse:separate;border-spacing:0}.bs-datepicker-body table th{font-size:13px;color:#9aaec1;font-weight:400;text-align:center}.bs-datepicker-body table td{color:#54708b;text-align:center;position:relative;padding:0}.bs-datepicker-body table td span{display:block;margin:0 auto;font-size:13px;border-radius:50%;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.bs-datepicker-body table td:not(.disabled):not(.week) span:not(.disabled):not(.is-other-month){cursor:pointer}.bs-datepicker-body table td span.is-highlighted:not(.disabled):not(.selected),.bs-datepicker-body table td.is-highlighted:not(.disabled):not(.selected) span{background-color:#e9edf0;transition:0s}.bs-datepicker-body table td span.is-active-other-month:not(.disabled):not(.selected),.bs-datepicker-body table td.is-active-other-month:not(.disabled):not(.selected) span{background-color:#e9edf0;transition:0s;cursor:pointer}.bs-datepicker-body table td span.disabled,.bs-datepicker-body table td.disabled span{color:#9aaec1}.bs-datepicker-body table td span.selected,.bs-datepicker-body table td.selected span{color:#fff}.bs-datepicker-body table td span.is-other-month,.bs-datepicker-body table td.is-other-month span{color:rgba(0,0,0,.25)}.bs-datepicker-body table td.active{position:relative}.bs-datepicker-body table td.active.select-start:before{left:35%}.bs-datepicker-body table td.active.select-end:before{left:-85%}.bs-datepicker-body table td span.active.select-end:after,.bs-datepicker-body table td span.active.select-start:after,.bs-datepicker-body table td.active.select-end span:after,.bs-datepicker-body table td.active.select-start span:after{content:"";display:block;position:absolute;z-index:-1;width:100%;height:100%;transition:.3s;top:0;border-radius:50%}.bs-datepicker-body table td span:before,.bs-datepicker-body table td:before{content:"";display:block;position:absolute;z-index:-1;top:6px;bottom:6px;left:-2px;right:-2px;box-sizing:content-box;background:0 0}.bs-datepicker-body table td.active.select-start+td.active:before{left:-20%}.bs-datepicker-body table td:last-child.active:before{border-radius:0 3px 3px 0;width:125%;left:-25%}.bs-datepicker-body table td span[class*=select-],.bs-datepicker-body table td[class*=select-] span{border-radius:50%;color:#fff}.bs-datepicker-body table.days span.active:not(.select-start):before,.bs-datepicker-body table.days span.in-range:not(.select-start):before,.bs-datepicker-body table.days td.active:not(.select-start):before,.bs-datepicker-body table.days td.in-range:not(.select-start):before{background:#e9edf0}.bs-datepicker-body table.days span{width:32px;height:32px;line-height:32px}.bs-datepicker-body table.days span.select-start{z-index:2}.bs-datepicker-body table.days span.in-range.select-end:before,.bs-datepicker-body table.days span.is-highlighted.in-range:before{background:0 0;right:0;left:0}.bs-datepicker-body table.days td.active+td.is-highlighted:before,.bs-datepicker-body table.days td.active+td.select-end:before,.bs-datepicker-body table.days td.in-range+td.is-highlighted:before,.bs-datepicker-body table.days td.in-range+td.select-end:before,.bs-datepicker-body table.days td.select-start+td.is-highlighted:before,.bs-datepicker-body table.days td.select-start+td.select-end:before{background:#e9edf0;width:100%}.bs-datepicker-body table.weeks tr td:nth-child(2).active:before{border-radius:3px 0 0 3px;left:0;width:100%}.bs-datepicker-body table:not(.weeks) tr td:first-child:before{border-radius:3px 0 0 3px}.bs-datepicker-body table.years td span{width:46px;height:46px;line-height:45px;margin:0 auto}.bs-datepicker-body table.years tr:not(:last-child) td span{margin-bottom:8px}.bs-datepicker-body table.months td{height:52px}.bs-datepicker-body table.months td span{padding:6px;border-radius:15px}.bs-datepicker .current-timedate{color:#54708b;font-size:15px;text-align:center;height:30px;line-height:30px;border-radius:20px;border:1px solid #e9edf0;margin-bottom:10px;cursor:pointer;text-transform:uppercase;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.bs-datepicker .current-timedate span:not(:empty):before{content:"";width:15px;height:16px;display:inline-block;margin-right:4px;vertical-align:text-bottom;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAABMklEQVQoU9VTwW3CQBCcOUgBtEBKSAukAnBKME+wFCAlYIhk8sQlxFABtJAScAsuAPBEewYcxCP8ouxrPDsza61uiVN1o6RNHD4htSCmq49RfO71BvMJqBBkITRf1kmUW49nQRC9h1I5AZlBClaL8aP1fKgOOxCx8aSLs+Q19eZuNO8QmPqJRtDFguy7OAcDbJPs+/BKVPDIPrvD2ZJgWAmVe7O0rI0Vqs1seyWUXpuJoppYCa5L+U++NpNPkr5OE2oMdARsb3gykJT5ydZcL8Z9Ww60nxg2LhjON9li9OwXZzo+xLbp3nC2s9CL2RrueGyVrgwNm8HpsCzZ9EEW6kqXlo1GQe03FzP/7W8Hl0dBtu7Bf7zt6mIwvX1RvzDCm7+q3mAW0Dl/GPdUCeXrZLT9BrDrGkm4qlPvAAAAAElFTkSuQmCC)}.bs-datepicker-multiple{border-radius:4px 0 0 4px}.bs-datepicker-multiple+.bs-datepicker-multiple{margin-left:10px}.bs-datepicker-multiple .bs-datepicker{box-shadow:none;position:relative}.bs-datepicker-multiple .bs-datepicker:not(:last-child){padding-right:10px}.bs-datepicker-multiple .bs-datepicker+.bs-datepicker:after{content:"";display:block;width:14px;height:10px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAKCAYAAABrGwT5AAAA1ElEQVQoU42RsQrCUAxF77VuDu7O4oMWW//BURBBpZvgKk4uIrjoqKOTf+DopIO4uYggtFTfw3+pkQqCW1/G5J7kJiFy4m5MxUlxAzgIPHX+lzMPzupRYlYgxiR7vqsOP8YKzsTx0yxFMCUZ+q7aZzlr+OvgoWcAFyAHgat2jLWu48252DdqAihDJGSSJNUUxYmQjs3+hPQBlAh2rG2LCOPnaw3IiGDX99TRCs7ASJsNhUOA7d/LcuHvRG22FIZvsNXw1MX6VZExCilOQKEfeLXr/10+aC9Ho7arh7oAAAAASUVORK5CYII=);position:absolute;top:25px;left:-8px}.bs-datepicker-multiple .bs-datepicker .left{float:left}.bs-datepicker-multiple .bs-datepicker .right{float:right}.bs-datepicker-container{padding:15px}.bs-datepicker .bs-media-container{display:flex}@media (max-width:768px){.bs-datepicker .bs-media-container{flex-direction:column}}.bs-datepicker-custom-range{padding:15px;background:#eee}.bs-datepicker-predefined-btns button{width:100%;display:block;height:30px;background-color:#9aaec1;border-radius:4px;color:#fff;border:0;margin-bottom:10px;padding:0 18px;text-align:left;transition:.3s}.bs-datepicker-predefined-btns button:active,.bs-datepicker-predefined-btns button:hover{background-color:#54708b}.bs-datepicker-buttons{display:flex;flex-flow:row wrap;justify-content:flex-end;padding-top:10px;border-top:1px solid #e9edf0}.bs-datepicker-buttons .btn-default{margin-left:10px}.bs-timepicker-container{padding:10px 0}.bs-timepicker-label{color:#54708b;margin-bottom:10px}.bs-timepicker-controls{display:inline-block;vertical-align:top;margin-right:10px}.bs-timepicker-controls button{width:20px;height:20px;border-radius:50%;border:0;background-color:#e9edf0;color:#54708b;font-size:16px;font-weight:700;vertical-align:middle;line-height:0;padding:0;transition:.3s}.bs-timepicker-controls button:hover{background-color:#d5dadd}.bs-timepicker-controls input{width:35px;height:25px;border-radius:13px;text-align:center;border:1px solid #e9edf0}.bs-timepicker .switch-time-format{text-transform:uppercase;min-width:54px;height:25px;border-radius:20px;border:1px solid #e9edf0;background:#fff;color:#54708b;font-size:13px}.bs-timepicker .switch-time-format img{vertical-align:initial;margin-left:4px}bs-datepicker-container,bs-daterangepicker-container{z-index:1080}@media (max-width:768px){.bs-datepicker-multiple{display:flex}.bs-datepicker-multiple+.bs-datepicker-multiple{margin-top:10px;margin-left:0}}.theme-default .bs-datepicker-body table td span.selected,.theme-default .bs-datepicker-body table td span[class*=select-]:after,.theme-default .bs-datepicker-body table td.selected span,.theme-default .bs-datepicker-body table td[class*=select-] span:after,.theme-default .bs-datepicker-head{background-color:#777}.theme-default .bs-datepicker-body table td.week span{color:#777}.theme-default .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#777;color:#fff;opacity:.5;transition:0s}.theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td[class*=select-] span:after,.theme-green .bs-datepicker-head{background-color:#5cb85c}.theme-green .bs-datepicker-body table td.week span{color:#5cb85c}.theme-green .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#5cb85c;color:#fff;opacity:.5;transition:0s}.theme-blue .bs-datepicker-body table td span.selected,.theme-blue .bs-datepicker-body table td span[class*=select-]:after,.theme-blue .bs-datepicker-body table td.selected span,.theme-blue .bs-datepicker-body table td[class*=select-] span:after,.theme-blue .bs-datepicker-head{background-color:#5bc0de}.theme-blue .bs-datepicker-body table td.week span{color:#5bc0de}.theme-blue .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#5bc0de;color:#fff;opacity:.5;transition:0s}.theme-dark-blue .bs-datepicker-body table td span.selected,.theme-dark-blue .bs-datepicker-body table td span[class*=select-]:after,.theme-dark-blue .bs-datepicker-body table td.selected span,.theme-dark-blue .bs-datepicker-body table td[class*=select-] span:after,.theme-dark-blue .bs-datepicker-head{background-color:#337ab7}.theme-dark-blue .bs-datepicker-body table td.week span{color:#337ab7}.theme-dark-blue .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#337ab7;color:#fff;opacity:.5;transition:0s}.theme-red .bs-datepicker-body table td span.selected,.theme-red .bs-datepicker-body table td span[class*=select-]:after,.theme-red .bs-datepicker-body table td.selected span,.theme-red .bs-datepicker-body table td[class*=select-] span:after,.theme-red .bs-datepicker-head{background-color:#d9534f}.theme-red .bs-datepicker-body table td.week span{color:#d9534f}.theme-red .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#d9534f;color:#fff;opacity:.5;transition:0s}.theme-orange .bs-datepicker-body table td span.selected,.theme-orange .bs-datepicker-body table td span[class*=select-]:after,.theme-orange .bs-datepicker-body table td.selected span,.theme-orange .bs-datepicker-body table td[class*=select-] span:after,.theme-orange .bs-datepicker-head{background-color:#f0ad4e}.theme-orange .bs-datepicker-body table td.week span{color:#f0ad4e}.theme-orange .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#f0ad4e;color:#fff;opacity:.5;transition:0s}.tree-children.tree-children-no-padding{padding-left:0}.node-drop-slot{display:block;height:2px}.node-drop-slot.is-dragging-over{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded .toggle-children{transform:rotate(90deg)}.toggle-children-wrapper-collapsed .toggle-children{transform:rotate(0)}.toggle-children-wrapper{padding:2px 3px 5px 1px}.toggle-children{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper{display:flex;align-items:flex-start}.node-content-wrapper-active,.node-content-wrapper-active.node-content-wrapper-focused,.node-content-wrapper.node-content-wrapper-active:hover{background:#beebff}.node-content-wrapper-focused{background:#e7f4f9}.node-content-wrapper:hover{background:#f7fbff}.node-content-wrapper-active,.node-content-wrapper-focused,.node-content-wrapper:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled{opacity:.5}tree-viewport{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children{overflow:hidden;padding-left:20px}.empty-tree-drop-slot .node-drop-slot{height:20px;min-width:100px}.angular-tree-component{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root .angular-tree-component-rtl{direction:rtl}tree-root .angular-tree-component-rtl .toggle-children-wrapper-collapsed .toggle-children{transform:rotate(180deg)!important}tree-root .angular-tree-component-rtl .tree-children{padding-right:20px;padding-left:0}tree-node-checkbox{padding:1px}/*!
+ * Bootstrap v4.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0}dl,ol,p,ul{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote,figure{margin:0 0 1rem}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#2b99a8;text-decoration:none;background-color:transparent}a:hover{color:#1b626b;text-decoration:underline}a:not([href]),a:not([href]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row,cd-about dl{display:flex;flex-wrap:wrap}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.cd-col-form,.cd-col-form-input,.cd-col-form-label,.cd-col-form-offset,.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto,cd-about dd,cd-about dt,cd-health cd-info-card,cd-health cd-info-card.cd-capacity-card,cd-health cd-info-card.cd-performance-card,cd-health cd-info-card.cd-status-card,cd-modal .cd-col-form-input,cd-modal .cd-col-form-label,cd-modal .cd-col-form-offset{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-1>*{flex:0 0 100%;max-width:100%}.row-cols-2>*{flex:0 0 50%;max-width:50%}.row-cols-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-4>*{flex:0 0 25%;max-width:25%}.row-cols-5>*{flex:0 0 20%;max-width:20%}.row-cols-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4,cd-about dt{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8,cd-about dd{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form,.col-12,cd-health cd-info-card{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-sm-1>*{flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.cd-col-form-label,.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input,.cd-col-form-offset,.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12,cd-health cd-info-card{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.cd-col-form-offset,.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-md-1>*{flex:0 0 100%;max-width:100%}.row-cols-md-2>*{flex:0 0 50%;max-width:50%}.row-cols-md-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-md-4>*{flex:0 0 25%;max-width:25%}.row-cols-md-5>*{flex:0 0 20%;max-width:20%}.row-cols-md-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.cd-col-form-label,.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6,cd-health cd-info-card{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input,.cd-col-form-offset,.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-lg-1>*{flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label,.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4,cd-health cd-info-card,cd-modal .cd-col-form-label{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form,.col-lg-8,cd-modal .cd-col-form-input,cd-modal .cd-col-form-offset{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input,.cd-col-form-offset,.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.cd-col-form-offset,.offset-lg-3{margin-left:25%}.offset-lg-4,cd-modal .cd-col-form-offset{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl,cd-health cd-info-card.cd-capacity-card,cd-health cd-info-card.cd-performance-card{flex-basis:0;flex-grow:1;max-width:100%}.row-cols-xl-1>*{flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{flex:0 0 33.3333333333%;max-width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3,cd-health cd-info-card.cd-status-card{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form,.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#c4e2e7}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#91cad2}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b2d9e0}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#fbd1cf}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#f7aaa7}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#f9bab7}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#d9d9d9}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#b8b8b8}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#ccc}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.cd-form-control,.form-control{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control,.form-control{transition:none}}.cd-form-control::-ms-expand,.form-control::-ms-expand{background-color:transparent;border:0}.cd-form-control:-moz-focusring,.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.cd-form-control:focus,.form-control:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control::placeholder,.form-control::placeholder{color:#6c757d;opacity:1}.cd-form-control:disabled,.form-control:disabled,.form-control[readonly],[readonly].cd-form-control{background-color:#e9ecef;opacity:1}select.cd-form-control:focus::-ms-value,select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.cd-col-form-label,.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],select[multiple].cd-form-control,select[size].cd-form-control,textarea.cd-form-control,textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.is-valid.cd-form-control,.was-validated .cd-form-control:valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.is-valid.cd-form-control:focus,.was-validated .cd-form-control:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.cd-form-control:valid,.was-validated textarea.form-control:valid,textarea.form-control.is-valid,textarea.is-valid.cd-form-control{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.is-invalid.cd-form-control,.was-validated .cd-form-control:invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.is-invalid.cd-form-control:focus,.was-validated .cd-form-control:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.cd-form-control:invalid,.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid,textarea.is-invalid.cd-form-control{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .cd-form-control,.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;cursor:pointer;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#237d8a;border-color:#21747f;box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#ec3a32;border-color:#eb2f26;box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529}.btn-light:hover{color:#212529}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#777;border-color:#777}.btn-dark:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#646464;border-color:#5e5e5e;box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#777;border-color:#777}.btn-outline-dark:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#777;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link:hover{color:#1b626b;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.cd-form-control,.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 0%;min-width:0;margin-bottom:0}.input-group>.cd-form-control+.cd-form-control,.input-group>.cd-form-control+.custom-file,.input-group>.cd-form-control+.custom-select,.input-group>.cd-form-control+.form-control,.input-group>.custom-file+.cd-form-control,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.cd-form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.cd-form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.cd-form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.cd-form-control:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.cd-form-control:not(:last-child),.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.cd-form-control:not(:first-child),.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.cd-form-control:not(textarea),.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.cd-form-control,.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.cd-form-control:not(textarea),.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.cd-form-control,.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#76d0dc}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing,.custom-switch .custom-control-label::after{transition:none}.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#9fdee6}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#9fdee6}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#2b99a8}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card,pre{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr,pre>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child,pre>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child,pre>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card,.card-deck pre{margin-bottom:15px}@media (min-width:576px){.card-deck{display:flex;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card,.card-deck pre{flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card,.card-group>pre{margin-bottom:15px}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card,.card-group>pre{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card,.card-group>.card+pre,.card-group>pre+.card,.card-group>pre+pre{margin-left:0;border-left:0}.card-group>.card:not(:last-child),.card-group>pre:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top,.card-group>pre:not(:last-child) .card-header,.card-group>pre:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom,.card-group>pre:not(:last-child) .card-footer,.card-group>pre:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child),.card-group>pre:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top,.card-group>pre:not(:first-child) .card-header,.card-group>pre:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom,.card-group>pre:not(:first-child) .card-footer,.card-group>pre:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card,.card-columns pre{display:inline-block;width:100%}}.card-columns .card,.card-columns pre{margin-bottom:.75rem}.accordion>.card,.accordion>pre{overflow:hidden}.accordion>.card:not(:last-of-type),.accordion>pre:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type),.accordion>pre:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header,.accordion>pre>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination,cd-table .cd-datatable .datatable-footer .datatable-pager ul{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul li a{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link:hover,cd-table .cd-datatable .datatable-footer .datatable-pager ul li a:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus,cd-table .cd-datatable .datatable-footer .datatable-pager ul li a:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item:first-child .page-link,.page-item:first-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .page-item:first-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child a{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link,.page-item:last-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .page-item:last-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child a{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link,.page-item.active cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .page-item.active a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li.active .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul li.active a{z-index:3;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled .page-link,.page-item.disabled cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .page-item.disabled a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li.disabled .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul li.disabled a{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link,.pagination-lg cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg a{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link,.pagination-lg .page-item:first-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,.pagination-lg cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link,.pagination-lg cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:first-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:first-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg .page-item:first-child a{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link,.pagination-lg .page-item:last-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,.pagination-lg cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link,.pagination-lg cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:last-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-lg li:last-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-lg .page-item:last-child a{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link,.pagination-sm cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm a{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link,.pagination-sm .page-item:first-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,.pagination-sm cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child .page-link,.pagination-sm cd-table .cd-datatable .datatable-footer .datatable-pager ul li:first-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:first-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:first-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm .page-item:first-child a{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link,.pagination-sm .page-item:last-child cd-table .cd-datatable .datatable-footer .datatable-pager ul li a,.pagination-sm cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child .page-link,.pagination-sm cd-table .cd-datatable .datatable-footer .datatable-pager ul li:last-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:last-child .page-link,cd-table .cd-datatable .datatable-footer .datatable-pager ul .pagination-sm li:last-child a,cd-table .cd-datatable .datatable-footer .datatable-pager ul li .pagination-sm .page-item:last-child a{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#2b99a8}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#21747f}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary{color:#fff;background-color:#ef5c55}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#777}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary hr{border-top-color:#b2d9e0}.alert-primary .alert-link{color:#0c2b2e}.alert-secondary{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary hr{border-top-color:#f9bab7}.alert-secondary .alert-link{color:#56211f}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark hr{border-top-color:#ccc}.alert-dark .alert-link{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal .list-group-item.active{margin-top:0}.list-group-horizontal .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm .list-group-item.active{margin-top:0}.list-group-horizontal-sm .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md .list-group-item.active{margin-top:0}.list-group-horizontal-md .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg .list-group-item.active{margin-top:0}.list-group-horizontal-lg .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl .list-group-item.active{margin-top:0}.list-group-horizontal-xl .list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl .list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush .list-group-item{border-right-width:0;border-left-width:0;border-radius:0}.list-group-flush .list-group-item:first-child{border-top-width:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}.progress-bar-animated{animation:none}.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right,.carousel-item{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev,.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#2b99a8!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#21747f!important}.bg-secondary{background-color:#ef5c55!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#eb2f26!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light,pre{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#777!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#5e5e5e!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom,.cd-header,legend{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#2b99a8!important}.border-secondary{border-color:#ef5c55!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#777!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex,cd-health cd-info-card{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column,cd-health cd-info-card{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.btn-toolbar cd-table-actions.btn-group,.mr-2,.mx-2,cd-logs label{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3,cd-logs .form-inline>.form-group{margin-right:1rem!important}.mb-3,.my-3,cd-logs .form-inline>.form-group{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.cd-header,.mt-4,.my-4,legend{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.cd-header,.mb-4,.my-4,cd-health cd-info-card,legend{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.cd-header,.pb-1,.py-1,legend{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2,cd-table .cd-datatable .datatable-footer,pre{padding:.5rem!important}.pt-2,.py-2,cd-info-card .card .card-body .card-text,cd-info-card pre .card-body .card-text{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2,cd-info-card .card,cd-info-card pre{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold,cd-about dt{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#2b99a8!important}a.text-primary:focus,a.text-primary:hover{color:#1b626b!important}.text-secondary{color:#ef5c55!important}a.text-secondary:focus,a.text-secondary:hover{color:#e21f15!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#777!important}a.text-dark:focus,a.text-dark:hover{color:#515151!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*!
+Fork Awesome 1.1.7
+License - https://forkaweso.me/Fork-Awesome/license
+
+Copyright 2018 Dave Gandy & Fork Awesome
+
+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.
+ */@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa,.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:2s linear infinite fa-spin}.fa-pulse{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before,.fa-sync:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before,.fa-video:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell-o:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-globe-e:before{content:""}.fa-globe-w:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-community:before,.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus-g:before,.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before,.fa-utensils:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before,.fa-pound:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-desc:before,.fa-sort-alpha-up:before{content:""}.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:""}.fa-sort-amount-desc:before,.fa-sort-amount-up:before{content:""}.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-desc:before,.fa-sort-numeric-up:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before,.fa-utensil-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before,.fa-heading:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before,.fa-closed-captioning:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before,.fa-gem:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-medium-square:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo-v:before,.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-phone-volume:before,.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.fa-mastodon:before{content:""}.fa-mastodon-alt:before{content:""}.fa-fork-awesome:before,.fa-fork-circle:before{content:""}.fa-peertube:before{content:""}.fa-diaspora:before{content:""}.fa-friendica:before{content:""}.fa-gnu-social:before{content:""}.fa-liberapay-square:before{content:""}.fa-liberapay:before{content:""}.fa-scuttlebutt:before,.fa-ssb:before{content:""}.fa-hubzilla:before{content:""}.fa-social-home:before{content:""}.fa-artstation:before{content:""}.fa-discord:before{content:""}.fa-discord-alt:before{content:""}.fa-patreon:before{content:""}.fa-snowdrift:before{content:""}.fa-activitypub:before{content:""}.fa-ethereum:before{content:""}.fa-keybase:before{content:""}.fa-shaarli:before{content:""}.fa-shaarli-o:before{content:""}.fa-cut-key:before,.fa-key-modern:before{content:""}.fa-xmpp:before{content:""}.fa-archive-org:before{content:""}.fa-freedombox:before{content:""}.fa-facebook-messenger:before{content:""}.fa-debian:before{content:""}.fa-mastodon-square:before{content:""}.fa-tipeee:before{content:""}.fa-react:before{content:""}.fa-dogmazic:before{content:""}.fa-zotero:before{content:""}.fa-nodejs:before{content:""}.fa-nextcloud:before{content:""}.fa-nextcloud-square:before{content:""}.fa-hackaday:before{content:""}.fa-laravel:before{content:""}.fa-signalapp:before{content:""}.fa-gnupg:before{content:""}.fa-php:before{content:""}.fa-ffmpeg:before{content:""}.fa-joplin:before{content:""}.fa-syncthing:before{content:""}.fa-inkscape:before{content:""}.fa-matrix-org:before{content:""}.fa-pixelfed:before{content:""}.fa-bootstrap:before{content:""}.fa-dev-to:before{content:""}.fa-hashnode:before{content:""}.fa-jirafeau:before{content:""}.fa-emby:before{content:""}.fa-wikidata:before{content:""}.fa-gimp:before{content:""}.fa-c:before{content:""}.fa-digitalocean:before{content:""}.fa-att:before{content:""}.fa-gitea:before{content:""}.fa-file-epub:before{content:""}.fa-python:before{content:""}.fa-archlinux:before{content:""}.fa-pleroma:before{content:""}.fa-unsplash:before{content:""}.fa-hackster:before{content:""}.fa-spell-check:before{content:""}.fa-moon:before{content:""}.fa-sun:before{content:""}.fa-f-droid:before{content:""}.fa-biometric:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status .popover-body{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status{max-width:83vw}}.info-card-content-clickable{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:initial}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#adb5bd}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#76d0dc}html{background-color:#fff}body,html{width:100%;height:100%;font-size:12px}h1{letter-spacing:-1px;font-size:2em}h2{letter-spacing:-1px;font-size:1.833em}h3{display:block;font-size:1.583em;font-weight:400}h4{font-size:1.5em;line-height:normal}option{font-weight:400;font-style:normal}.full-height{height:100vh}.full-width{width:100vw}.vertical-align{display:flex;align-items:center}.horizontal-align{display:flex;justify-content:center}.loading{position:absolute;top:50%;left:50%}.margin-right-md{margin-right:15px}.no-border{border:0;box-shadow:0 0 0!important}.italic{font-style:italic}.bold{font-weight:700}.text-pre{white-space:pre-wrap}.btn-light{background-color:#fff!important;border-color:#ced4da!important}.btn-light:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:0}.btn-primary .badge{color:#2b99a8;background-color:#eee}.btn-group>.btn>i.fa,.cd-datatable-actions button.btn i.fa{margin-right:5px}.dropdown-menu{min-width:50px;z-index:999999}.dropdown-menu>li>a{color:#474544;cursor:pointer}.dropdown-menu>li>a>i.fa{margin-right:5px}.dropdown-menu>.active>a{color:#eee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#21747f}.dataTables_wrapper .dropdown-menu>li.dropdown-divider{cursor:auto}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{padding-left:30px!important;padding-right:30px!important}.row,cd-about dl{margin-left:-30px;margin-right:-30px}.cd-col-form,.cd-col-form-input,.cd-col-form-label,.cd-col-form-offset,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,cd-about dd,cd-about dt,cd-health cd-info-card,cd-modal .cd-col-form-input,cd-modal .cd-col-form-label,cd-modal .cd-col-form-offset{padding-left:30px;padding-right:30px}tags-input .tags{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card .accordion-title,pre .accordion-title,uib-accordion .card-title{font-size:14px!important}.card-header{font-size:1.3em}.card-body h2:first-child{margin-top:0}.disabled{pointer-events:none}.clickable,a{cursor:pointer}:invalid .has-error-btn,:invalid .has-error-btn:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript{padding-top:5em}.noscript p{color:#777}.required::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer{width:100%;display:flex}.cd-form-control,.form-control{display:table-cell}.cd-form-control:focus,.form-control:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox{padding-top:7px}.card-footer button.btn:not(:first-child),.modal-footer button.btn:not(:first-child){margin-left:5px}.nav-tabs{margin-bottom:15px}.ceph-icon{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message .custom-icon{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper{background:rgba(0,0,0,.7)!important}.tooltip-wide .tooltip-inner{width:400px}.tooltip-inner{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message>ul{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label,.col-form-label{text-align:right}}.cd-col-form-label,.col-form-label{font-weight:700}cd-submit-button{background-color:transparent!important}bfv-messages{display:none}.form-group.has-error .invalid-feedback{display:block}.password-strength-level{flex:100%;margin-top:2px}.password-strength-level .ok,.password-strength-level .strong,.password-strength-level .very-strong,.password-strength-level .weak{border-radius:.25rem;height:13px}.password-strength-level .weak{width:25%;background:red}.password-strength-level .ok{width:50%;background:#ffc200}.password-strength-level .strong{width:75%;background:#0b0}.password-strength-level .very-strong{width:100%;background:#245e03}.badge-hdd{color:#fff;background-color:#90949c}.badge-ssd{color:#fff;background-color:#288cea}.badge-tab{color:#555;background-color:#f3f3f3}tree-root tree-viewport{min-height:1em}
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.f15465861b49727cf28a.css b/ceph/src/pybind/mgr/dashboard/frontend/dist/en-US/styles.f15465861b49727cf28a.css
deleted file mode 100644 (file)
index 6ffcfad..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-@charset "UTF-8";.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #fff}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z'/%3E%3C/svg%3E")}.toast-error{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'/%3E%3C/svg%3E")}.toast-success{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512' width='512' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z'/%3E%3C/svg%3E")}.toast-container.toast-bottom-center .ngx-toastr,.toast-container.toast-top-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-bottom-full-width .ngx-toastr,.toast-container.toast-top-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 576 512' width='576' height='512'%3E%3Cpath fill='rgb(255,255,255)' d='M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z'/%3E%3C/svg%3E");background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width:240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px) and (max-width:480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px) and (max-width:768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}.bs-datepicker{display:flex;align-items:stretch;flex-flow:row wrap;background:#fff;box-shadow:0 0 10px 0 #aaa;position:relative;z-index:1}.bs-datepicker:after{clear:both;content:'';display:block}.bs-datepicker bs-day-picker{float:left}.bs-datepicker button:active,.bs-datepicker button:focus,.bs-datepicker button:hover,.bs-datepicker input:active,.bs-datepicker input:focus,.bs-datepicker input:hover,.bs-datepicker-btns button:active,.bs-datepicker-btns button:focus,.bs-datepicker-btns button:hover,.bs-datepicker-predefined-btns button:active,.bs-datepicker-predefined-btns button:focus{outline:0}.bs-datepicker-head{min-width:270px;height:50px;padding:10px;border-radius:3px 3px 0 0;text-align:justify}.bs-datepicker-head:after{content:"";display:inline-block;vertical-align:top;width:100%}.bs-datepicker-head button{display:inline-block;vertical-align:top;padding:0;height:30px;line-height:30px;border:0;background:0 0;text-align:center;cursor:pointer;color:#fff;transition:.3s}.bs-datepicker-head button[disabled],.bs-datepicker-head button[disabled]:active,.bs-datepicker-head button[disabled]:hover{background:rgba(221,221,221,.3);color:#f5f5f5;cursor:not-allowed}.bs-datepicker-head button.next,.bs-datepicker-head button.previous{border-radius:50%;width:30px;height:30px}.bs-datepicker-head button.next span,.bs-datepicker-head button.previous span{font-size:28px;line-height:1;display:inline-block;position:relative;height:100%;width:100%;border-radius:50%}.bs-datepicker-head button.current{border-radius:15px;max-width:155px;padding:0 13px}.bs-datepicker-head button:hover{background-color:rgba(0,0,0,.1)}.bs-datepicker-head button:active{background-color:rgba(0,0,0,.2)}.bs-datepicker-body{padding:10px;border-radius:0 0 3px 3px;min-height:232px;min-width:278px;border:1px solid #e9edf0}.bs-datepicker-body .days.weeks{position:relative;z-index:1}.bs-datepicker-body table{width:100%;border-collapse:separate;border-spacing:0}.bs-datepicker-body table th{font-size:13px;color:#9aaec1;font-weight:400;text-align:center}.bs-datepicker-body table td{color:#54708b;text-align:center;position:relative;padding:0}.bs-datepicker-body table td span{display:block;margin:0 auto;font-size:13px;border-radius:50%;position:relative;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.bs-datepicker-body table td:not(.disabled):not(.week) span:not(.disabled):not(.is-other-month){cursor:pointer}.bs-datepicker-body table td span.is-highlighted:not(.disabled):not(.selected),.bs-datepicker-body table td.is-highlighted:not(.disabled):not(.selected) span{background-color:#e9edf0;transition:0s}.bs-datepicker-body table td span.is-active-other-month:not(.disabled):not(.selected),.bs-datepicker-body table td.is-active-other-month:not(.disabled):not(.selected) span{background-color:#e9edf0;transition:0s;cursor:pointer}.bs-datepicker-body table td span.disabled,.bs-datepicker-body table td.disabled span{color:#9aaec1}.bs-datepicker-body table td span.selected,.bs-datepicker-body table td.selected span{color:#fff}.bs-datepicker-body table td span.is-other-month,.bs-datepicker-body table td.is-other-month span{color:rgba(0,0,0,.25)}.bs-datepicker-body table td.active{position:relative}.bs-datepicker-body table td.active.select-start:before{left:35%}.bs-datepicker-body table td.active.select-end:before{left:-85%}.bs-datepicker-body table td span.active.select-end:after,.bs-datepicker-body table td span.active.select-start:after,.bs-datepicker-body table td.active.select-end span:after,.bs-datepicker-body table td.active.select-start span:after{content:"";display:block;position:absolute;z-index:-1;width:100%;height:100%;transition:.3s;top:0;border-radius:50%}.bs-datepicker-body table td span:before,.bs-datepicker-body table td:before{content:"";display:block;position:absolute;z-index:-1;top:6px;bottom:6px;left:-2px;right:-2px;box-sizing:content-box;background:0 0}.bs-datepicker-body table td.active.select-start+td.active:before{left:-20%}.bs-datepicker-body table td:last-child.active:before{border-radius:0 3px 3px 0;width:125%;left:-25%}.bs-datepicker-body table td span[class*=select-],.bs-datepicker-body table td[class*=select-] span{border-radius:50%;color:#fff}.bs-datepicker-body table.days span.active:not(.select-start):before,.bs-datepicker-body table.days span.in-range:not(.select-start):before,.bs-datepicker-body table.days td.active:not(.select-start):before,.bs-datepicker-body table.days td.in-range:not(.select-start):before{background:#e9edf0}.bs-datepicker-body table.days span{width:32px;height:32px;line-height:32px}.bs-datepicker-body table.days span.select-start{z-index:2}.bs-datepicker-body table.days span.in-range.select-end:before,.bs-datepicker-body table.days span.is-highlighted.in-range:before{background:0 0;right:0;left:0}.bs-datepicker-body table.days td.active+td.is-highlighted:before,.bs-datepicker-body table.days td.active+td.select-end:before,.bs-datepicker-body table.days td.in-range+td.is-highlighted:before,.bs-datepicker-body table.days td.in-range+td.select-end:before,.bs-datepicker-body table.days td.select-start+td.is-highlighted:before,.bs-datepicker-body table.days td.select-start+td.select-end:before{background:#e9edf0;width:100%}.bs-datepicker-body table.weeks tr td:nth-child(2).active:before{border-radius:3px 0 0 3px;left:0;width:100%}.bs-datepicker-body table:not(.weeks) tr td:first-child:before{border-radius:3px 0 0 3px}.bs-datepicker-body table.years td span{width:46px;height:46px;line-height:45px;margin:0 auto}.bs-datepicker-body table.years tr:not(:last-child) td span{margin-bottom:8px}.bs-datepicker-body table.months td{height:52px}.bs-datepicker-body table.months td span{padding:6px;border-radius:15px}.bs-datepicker .current-timedate{color:#54708b;font-size:15px;text-align:center;height:30px;line-height:30px;border-radius:20px;border:1px solid #e9edf0;margin-bottom:10px;cursor:pointer;text-transform:uppercase;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.bs-datepicker .current-timedate span:not(:empty):before{content:"";width:15px;height:16px;display:inline-block;margin-right:4px;vertical-align:text-bottom;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAQCAYAAADJViUEAAABMklEQVQoU9VTwW3CQBCcOUgBtEBKSAukAnBKME+wFCAlYIhk8sQlxFABtJAScAsuAPBEewYcxCP8ouxrPDsza61uiVN1o6RNHD4htSCmq49RfO71BvMJqBBkITRf1kmUW49nQRC9h1I5AZlBClaL8aP1fKgOOxCx8aSLs+Q19eZuNO8QmPqJRtDFguy7OAcDbJPs+/BKVPDIPrvD2ZJgWAmVe7O0rI0Vqs1seyWUXpuJoppYCa5L+U++NpNPkr5OE2oMdARsb3gykJT5ydZcL8Z9Ww60nxg2LhjON9li9OwXZzo+xLbp3nC2s9CL2RrueGyVrgwNm8HpsCzZ9EEW6kqXlo1GQe03FzP/7W8Hl0dBtu7Bf7zt6mIwvX1RvzDCm7+q3mAW0Dl/GPdUCeXrZLT9BrDrGkm4qlPvAAAAAElFTkSuQmCC)}.bs-datepicker-multiple{border-radius:4px 0 0 4px}.bs-datepicker-multiple+.bs-datepicker-multiple{margin-left:10px}.bs-datepicker-multiple .bs-datepicker{box-shadow:none;position:relative}.bs-datepicker-multiple .bs-datepicker:not(:last-child){padding-right:10px}.bs-datepicker-multiple .bs-datepicker+.bs-datepicker:after{content:"";display:block;width:14px;height:10px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAKCAYAAABrGwT5AAAA1ElEQVQoU42RsQrCUAxF77VuDu7O4oMWW//BURBBpZvgKk4uIrjoqKOTf+DopIO4uYggtFTfw3+pkQqCW1/G5J7kJiFy4m5MxUlxAzgIPHX+lzMPzupRYlYgxiR7vqsOP8YKzsTx0yxFMCUZ+q7aZzlr+OvgoWcAFyAHgat2jLWu48252DdqAihDJGSSJNUUxYmQjs3+hPQBlAh2rG2LCOPnaw3IiGDX99TRCs7ASJsNhUOA7d/LcuHvRG22FIZvsNXw1MX6VZExCilOQKEfeLXr/10+aC9Ho7arh7oAAAAASUVORK5CYII=);position:absolute;top:25px;left:-8px}.bs-datepicker-multiple .bs-datepicker .left{float:left}.bs-datepicker-multiple .bs-datepicker .right{float:right}.bs-datepicker-container{padding:15px}.bs-datepicker .bs-media-container{display:flex}@media (max-width:768px){.bs-datepicker .bs-media-container{flex-direction:column}}.bs-datepicker-custom-range{padding:15px;background:#eee}.bs-datepicker-predefined-btns button{width:100%;display:block;height:30px;background-color:#9aaec1;border-radius:4px;color:#fff;border:0;margin-bottom:10px;padding:0 18px;text-align:left;transition:.3s}.bs-datepicker-predefined-btns button:active,.bs-datepicker-predefined-btns button:hover{background-color:#54708b}.bs-datepicker-buttons{display:flex;flex-flow:row wrap;justify-content:flex-end;padding-top:10px;border-top:1px solid #e9edf0}.bs-datepicker-buttons .btn-default{margin-left:10px}.bs-timepicker-container{padding:10px 0}.bs-timepicker-label{color:#54708b;margin-bottom:10px}.bs-timepicker-controls{display:inline-block;vertical-align:top;margin-right:10px}.bs-timepicker-controls button{width:20px;height:20px;border-radius:50%;border:0;background-color:#e9edf0;color:#54708b;font-size:16px;font-weight:700;vertical-align:middle;line-height:0;padding:0;transition:.3s}.bs-timepicker-controls button:hover{background-color:#d5dadd}.bs-timepicker-controls input{width:35px;height:25px;border-radius:13px;text-align:center;border:1px solid #e9edf0}.bs-timepicker .switch-time-format{text-transform:uppercase;min-width:54px;height:25px;border-radius:20px;border:1px solid #e9edf0;background:#fff;color:#54708b;font-size:13px}.bs-timepicker .switch-time-format img{vertical-align:initial;margin-left:4px}bs-datepicker-container,bs-daterangepicker-container{z-index:1080}@media (max-width:768px){.bs-datepicker-multiple{display:flex}.bs-datepicker-multiple+.bs-datepicker-multiple{margin-top:10px;margin-left:0}}.theme-default .bs-datepicker-body table td span.selected,.theme-default .bs-datepicker-body table td span[class*=select-]:after,.theme-default .bs-datepicker-body table td.selected span,.theme-default .bs-datepicker-body table td[class*=select-] span:after,.theme-default .bs-datepicker-head{background-color:#777}.theme-default .bs-datepicker-body table td.week span{color:#777}.theme-default .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#777;color:#fff;opacity:.5;transition:0s}.theme-green .bs-datepicker-body table td span.selected,.theme-green .bs-datepicker-body table td span[class*=select-]:after,.theme-green .bs-datepicker-body table td.selected span,.theme-green .bs-datepicker-body table td[class*=select-] span:after,.theme-green .bs-datepicker-head{background-color:#5cb85c}.theme-green .bs-datepicker-body table td.week span{color:#5cb85c}.theme-green .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#5cb85c;color:#fff;opacity:.5;transition:0s}.theme-blue .bs-datepicker-body table td span.selected,.theme-blue .bs-datepicker-body table td span[class*=select-]:after,.theme-blue .bs-datepicker-body table td.selected span,.theme-blue .bs-datepicker-body table td[class*=select-] span:after,.theme-blue .bs-datepicker-head{background-color:#5bc0de}.theme-blue .bs-datepicker-body table td.week span{color:#5bc0de}.theme-blue .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#5bc0de;color:#fff;opacity:.5;transition:0s}.theme-dark-blue .bs-datepicker-body table td span.selected,.theme-dark-blue .bs-datepicker-body table td span[class*=select-]:after,.theme-dark-blue .bs-datepicker-body table td.selected span,.theme-dark-blue .bs-datepicker-body table td[class*=select-] span:after,.theme-dark-blue .bs-datepicker-head{background-color:#337ab7}.theme-dark-blue .bs-datepicker-body table td.week span{color:#337ab7}.theme-dark-blue .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#337ab7;color:#fff;opacity:.5;transition:0s}.theme-red .bs-datepicker-body table td span.selected,.theme-red .bs-datepicker-body table td span[class*=select-]:after,.theme-red .bs-datepicker-body table td.selected span,.theme-red .bs-datepicker-body table td[class*=select-] span:after,.theme-red .bs-datepicker-head{background-color:#d9534f}.theme-red .bs-datepicker-body table td.week span{color:#d9534f}.theme-red .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#d9534f;color:#fff;opacity:.5;transition:0s}.theme-orange .bs-datepicker-body table td span.selected,.theme-orange .bs-datepicker-body table td span[class*=select-]:after,.theme-orange .bs-datepicker-body table td.selected span,.theme-orange .bs-datepicker-body table td[class*=select-] span:after,.theme-orange .bs-datepicker-head{background-color:#f0ad4e}.theme-orange .bs-datepicker-body table td.week span{color:#f0ad4e}.theme-orange .bs-datepicker-body table td.active-week span:hover{cursor:pointer;background-color:#f0ad4e;color:#fff;opacity:.5;transition:0s}.tree-children.tree-children-no-padding{padding-left:0}.node-drop-slot{display:block;height:2px}.node-drop-slot.is-dragging-over{background:#dfe;height:20px;border:2px dotted #888}.toggle-children-wrapper-expanded .toggle-children{transform:rotate(90deg)}.toggle-children-wrapper-collapsed .toggle-children{transform:rotate(0)}.toggle-children-wrapper{padding:2px 3px 5px 1px}.toggle-children{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABAhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYzRkRFQjcxODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYzRkRFQjcwODUzNTExRTU4RTQwRkQwODFEOUZEMEE3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MTk5NzA1OGEtZDI3OC00NDZkLWE4ODgtNGM4MGQ4YWI1NzNmIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzRkZmQxMGMtY2NlNS0xMTc4LWE5OGQtY2NkZmM5ODk5YWYwIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+Z2x5cGhpY29uczwvcmRmOmxpPiA8L3JkZjpBbHQ+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+5iogFwAAAGhJREFUeNpiYGBgKABigf///zOQg0EARH4A4gZyDIIZ8B/JoAJKDIDhB0CcQIkBRBtEyABkgxwoMQCGD6AbRKoBGAYxQgXIBRuZGKgAKPIC3QLxArnRSHZCIjspk52ZKMrOFBUoAAEGAKnq593MQAZtAAAAAElFTkSuQmCC);height:8px;width:9px;background-size:contain;display:inline-block;position:relative;top:1px;background-repeat:no-repeat;background-position:center}.toggle-children-placeholder{display:inline-block;height:10px;width:10px;position:relative;top:1px;padding-right:3px}.node-content-wrapper{display:inline-block;padding:2px 5px;border-radius:2px;transition:background-color .15s,box-shadow .15s}.node-wrapper{display:flex;align-items:flex-start}.node-content-wrapper-active,.node-content-wrapper-active.node-content-wrapper-focused,.node-content-wrapper.node-content-wrapper-active:hover{background:#beebff}.node-content-wrapper-focused{background:#e7f4f9}.node-content-wrapper:hover{background:#f7fbff}.node-content-wrapper-active,.node-content-wrapper-focused,.node-content-wrapper:hover{box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over{background:#dfe;box-shadow:inset 0 0 1px #999}.node-content-wrapper.is-dragging-over-disabled{opacity:.5}tree-viewport{-webkit-tap-highlight-color:transparent;height:100%;overflow:auto;display:block}.tree-children{overflow:hidden;padding-left:20px}.empty-tree-drop-slot .node-drop-slot{height:20px;min-width:100px}.angular-tree-component{width:100%;position:relative;display:inline-block;cursor:pointer;-webkit-touch-callout:none;-moz-user-select:none;user-select:none}tree-root .angular-tree-component-rtl{direction:rtl}tree-root .angular-tree-component-rtl .toggle-children-wrapper-collapsed .toggle-children{transform:rotate(180deg)!important}tree-root .angular-tree-component-rtl .tree-children{padding-right:20px;padding-left:0}tree-node-checkbox{padding:1px}/*!
- * Bootstrap v4.3.1 (https://getbootstrap.com/)
- * Copyright 2011-2019 The Bootstrap Authors
- * Copyright 2011-2019 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#2b99a8;--secondary:#ef5c55;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#777777;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0}dl,ol,p,ul{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;text-decoration:underline dotted;cursor:help;border-bottom:0;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote,figure{margin:0 0 1rem}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#2b99a8;text-decoration:none;background-color:transparent}a:hover{color:#1b626b;text-decoration:underline}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{box-sizing:content-box;height:0;overflow:visible;margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;margin-right:auto;margin-left:auto}.row{display:flex;flex-wrap:wrap}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.cd-col-form,.cd-col-form-input,.cd-col-form-label,.cd-col-form-offset,.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto,cd-modal .cd-col-form-input,cd-modal .cd-col-form-label,cd-modal .cd-col-form-offset{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}.col-auto{flex:0 0 auto;width:auto;max-width:100%}.col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-3{flex:0 0 25%;max-width:25%}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-6{flex:0 0 50%;max-width:50%}.col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-9{flex:0 0 75%;max-width:75%}.col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.cd-col-form,.col-12{flex:0 0 100%;max-width:100%}.order-first{order:-1}.order-last{order:13}.order-0{order:0}.order-1{order:1}.order-2{order:2}.order-3{order:3}.order-4{order:4}.order-5{order:5}.order-6{order:6}.order-7{order:7}.order-8{order:8}.order-9{order:9}.order-10{order:10}.order-11{order:11}.order-12{order:12}.offset-1{margin-left:8.3333333333%}.offset-2{margin-left:16.6666666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.3333333333%}.offset-5{margin-left:41.6666666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.3333333333%}.offset-8{margin-left:66.6666666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.3333333333%}.offset-11{margin-left:91.6666666667%}@media (min-width:576px){.col-sm{flex-basis:0;flex-grow:1;max-width:100%}.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-sm-3{flex:0 0 25%;max-width:25%}.cd-col-form-label,.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input,.cd-col-form-offset,.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-sm-12{flex:0 0 100%;max-width:100%}.order-sm-first{order:-1}.order-sm-last{order:13}.order-sm-0{order:0}.order-sm-1{order:1}.order-sm-2{order:2}.order-sm-3{order:3}.order-sm-4{order:4}.order-sm-5{order:5}.order-sm-6{order:6}.order-sm-7{order:7}.order-sm-8{order:8}.order-sm-9{order:9}.order-sm-10{order:10}.order-sm-11{order:11}.order-sm-12{order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.3333333333%}.offset-sm-2{margin-left:16.6666666667%}.offset-sm-3{margin-left:25%}.cd-col-form-offset,.offset-sm-4{margin-left:33.3333333333%}.offset-sm-5{margin-left:41.6666666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.3333333333%}.offset-sm-8{margin-left:66.6666666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.3333333333%}.offset-sm-11{margin-left:91.6666666667%}}@media (min-width:768px){.col-md{flex-basis:0;flex-grow:1;max-width:100%}.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-md-3{flex:0 0 25%;max-width:25%}.cd-col-form-label,.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-md-6{flex:0 0 50%;max-width:50%}.col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form-input,.cd-col-form-offset,.col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-md-12{flex:0 0 100%;max-width:100%}.order-md-first{order:-1}.order-md-last{order:13}.order-md-0{order:0}.order-md-1{order:1}.order-md-2{order:2}.order-md-3{order:3}.order-md-4{order:4}.order-md-5{order:5}.order-md-6{order:6}.order-md-7{order:7}.order-md-8{order:8}.order-md-9{order:9}.order-md-10{order:10}.order-md-11{order:11}.order-md-12{order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.3333333333%}.offset-md-2{margin-left:16.6666666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.3333333333%}.offset-md-5{margin-left:41.6666666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.3333333333%}.offset-md-8{margin-left:66.6666666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.3333333333%}.offset-md-11{margin-left:91.6666666667%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.cd-col-form-label,.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4,cd-modal .cd-col-form-label{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.cd-col-form,.col-lg-8,cd-modal .cd-col-form-input,cd-modal .cd-col-form-offset{flex:0 0 66.6666666667%;max-width:66.6666666667%}.cd-col-form-input,.cd-col-form-offset,.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-lg-12{flex:0 0 100%;max-width:100%}.order-lg-first{order:-1}.order-lg-last{order:13}.order-lg-0{order:0}.order-lg-1{order:1}.order-lg-2{order:2}.order-lg-3{order:3}.order-lg-4{order:4}.order-lg-5{order:5}.order-lg-6{order:6}.order-lg-7{order:7}.order-lg-8{order:8}.order-lg-9{order:9}.order-lg-10{order:10}.order-lg-11{order:11}.order-lg-12{order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.3333333333%}.offset-lg-2{margin-left:16.6666666667%}.cd-col-form-offset,.offset-lg-3{margin-left:25%}.offset-lg-4,cd-modal .cd-col-form-offset{margin-left:33.3333333333%}.offset-lg-5{margin-left:41.6666666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.3333333333%}.offset-lg-8{margin-left:66.6666666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.3333333333%}.offset-lg-11{margin-left:91.6666666667%}}@media (min-width:1200px){.col-xl{flex-basis:0;flex-grow:1;max-width:100%}.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.cd-col-form,.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.col-xl-12{flex:0 0 100%;max-width:100%}.order-xl-first{order:-1}.order-xl-last{order:13}.order-xl-0{order:0}.order-xl-1{order:1}.order-xl-2{order:2}.order-xl-3{order:3}.order-xl-4{order:4}.order-xl-5{order:5}.order-xl-6{order:6}.order-xl-7{order:7}.order-xl-8{order:8}.order-xl-9{order:9}.order-xl-10{order:10}.order-xl-11{order:11}.order-xl-12{order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.3333333333%}.offset-xl-2{margin-left:16.6666666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.3333333333%}.offset-xl-5{margin-left:41.6666666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.3333333333%}.offset-xl-8{margin-left:66.6666666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.3333333333%}.offset-xl-11{margin-left:91.6666666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered,.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#c4e2e7}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#91cad2}.table-hover .table-primary:hover,.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b2d9e0}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#fbd1cf}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#f7aaa7}.table-hover .table-secondary:hover,.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#f9bab7}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover,.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover,.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover,.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover,.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover,.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#d9d9d9}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#b8b8b8}.table-hover .table-dark:hover,.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#ccc}.table-active,.table-active>td,.table-active>th,.table-hover .table-active:hover,.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.cd-form-control,.form-control{width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.cd-form-control,.form-control{transition:none}}.cd-form-control::-ms-expand,.form-control::-ms-expand{background-color:transparent;border:0}.cd-form-control:focus,.form-control:focus{color:#495057;background-color:#fff;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.cd-form-control::placeholder,.form-control::placeholder{color:#6c757d;opacity:1}.cd-form-control:disabled,.form-control:disabled,.form-control[readonly],[readonly].cd-form-control{background-color:#e9ecef;opacity:1}select.cd-form-control:focus::-ms-value,select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.cd-col-form-label,.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size],select[multiple].cd-form-control,select[size].cd-form-control,textarea.cd-form-control,textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:flex;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.is-valid.cd-form-control,.was-validated .cd-form-control:valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.is-valid.cd-form-control:focus,.was-validated .cd-form-control:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.is-valid.cd-form-control~.valid-feedback,.is-valid.cd-form-control~.valid-tooltip,.was-validated .cd-form-control:valid~.valid-feedback,.was-validated .cd-form-control:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.cd-form-control:valid,.was-validated textarea.form-control:valid,textarea.form-control.is-valid,textarea.is-valid.cd-form-control{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:100%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.is-invalid.cd-form-control,.was-validated .cd-form-control:invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.is-invalid.cd-form-control:focus,.was-validated .cd-form-control:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.is-invalid.cd-form-control~.invalid-feedback,.is-invalid.cd-form-control~.invalid-tooltip,.was-validated .cd-form-control:invalid~.invalid-feedback,.was-validated .cd-form-control:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.cd-form-control:invalid,.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid,textarea.is-invalid.cd-form-control{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat #fff}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:flex;align-items:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:flex;flex:0 0 auto;flex-flow:row wrap;align-items:center;margin-bottom:0}.form-inline .cd-form-control,.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{align-items:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary:hover{color:#fff;background-color:#237d8a;border-color:#21747f}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#21747f;border-color:#1e6b75}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(75,168,181,.5)}.btn-secondary{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary:hover{color:#fff;background-color:#ec3a32;border-color:#eb2f26}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#eb2f26;border-color:#ea241b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(241,116,111,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529}.btn-light:hover{color:#212529}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#777;border-color:#777}.btn-dark:hover{color:#fff;background-color:#646464;border-color:#5e5e5e}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#777;border-color:#777}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#5e5e5e;border-color:#575757}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(139,139,139,.5)}.btn-outline-primary{color:#2b99a8;border-color:#2b99a8}.btn-outline-primary:hover{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#2b99a8;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#2b99a8;border-color:#2b99a8}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.btn-outline-secondary{color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary:hover{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#ef5c55;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ef5c55;border-color:#ef5c55}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#777;border-color:#777}.btn-outline-dark:hover{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#777;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#777;border-color:#777}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.btn-link{font-weight:400;color:#2b99a8;text-decoration:none}.btn-link:hover{color:#1b626b;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#2b99a8}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.cd-form-control,.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.cd-form-control+.cd-form-control,.input-group>.cd-form-control+.custom-file,.input-group>.cd-form-control+.custom-select,.input-group>.cd-form-control+.form-control,.input-group>.custom-file+.cd-form-control,.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.cd-form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.cd-form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.cd-form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.cd-form-control:focus,.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.cd-form-control:not(:last-child),.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.cd-form-control:not(:first-child),.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:flex;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.cd-form-control:not(textarea),.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.cd-form-control,.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.cd-form-control:not(textarea),.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.cd-form-control,.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#2b99a8;background-color:#2b99a8}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#76d0dc}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#9fdee6;border-color:#9fdee6}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:1px solid #adb5bd}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#2b99a8;background-color:#2b99a8}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(43,153,168,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat #fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#76d0dc;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#76d0dc;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(43,153,168,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.collapsing,.custom-switch .custom-control-label::after{transition:none}.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#9fdee6}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#9fdee6}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#2b99a8;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#9fdee6}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#2b99a8}.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified .nav-item{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:center center/100% 100% no-repeat}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{flex-flow:row nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card,pre{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr,pre>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child,pre>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child,pre>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:flex;flex-direction:column}.card-deck .card,.card-deck pre{margin-bottom:15px}@media (min-width:576px){.card-deck{flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card,.card-deck pre{display:flex;flex:1 0 0%;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:flex;flex-direction:column}.card-group>.card,.card-group>pre{margin-bottom:15px}@media (min-width:576px){.card-group{flex-flow:row wrap}.card-group>.card,.card-group>pre{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card,.card-group>.card+pre,.card-group>pre+.card,.card-group>pre+pre{margin-left:0;border-left:0}.card-group>.card:not(:last-child),.card-group>pre:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top,.card-group>pre:not(:last-child) .card-header,.card-group>pre:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom,.card-group>pre:not(:last-child) .card-footer,.card-group>pre:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child),.card-group>pre:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top,.card-group>pre:not(:first-child) .card-header,.card-group>pre:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom,.card-group>pre:not(:first-child) .card-footer,.card-group>pre:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}.card-columns{column-count:3;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card,.card-columns pre{display:inline-block;width:100%}}.card-columns .card,.card-columns pre{margin-bottom:.75rem}.accordion>.card,.accordion>pre{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child,.accordion>pre:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type),.accordion>pre:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type,.accordion>pre:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type,.accordion>pre:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header,.accordion>pre .card-header{margin-bottom:-1px}.breadcrumb{display:flex;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#2b99a8;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#1b626b;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:1rem;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#2b99a8}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#21747f}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(43,153,168,.5)}.badge-secondary{color:#fff;background-color:#ef5c55}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#eb2f26}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(239,92,85,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#777}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#5e5e5e}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(119,119,119,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#165057;background-color:#d5ebee;border-color:#c4e2e7}.alert-primary hr{border-top-color:#b2d9e0}.alert-primary .alert-link{color:#0c2b2e}.alert-secondary{color:#7c302c;background-color:#fcdedd;border-color:#fbd1cf}.alert-secondary hr{border-top-color:#f9bab7}.alert-secondary .alert-link{color:#56211f}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#3e3e3e;background-color:#e4e4e4;border-color:#d9d9d9}.alert-dark hr{border-top-color:#ccc}.alert-dark .alert-link{color:#252525}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#2b99a8;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}.media{display:flex;align-items:flex-start}.media-body{flex:1}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#2b99a8;border-color:#2b99a8}.list-group-horizontal{flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#165057;background-color:#c4e2e7}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#165057;background-color:#b2d9e0}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#165057;border-color:#165057}.list-group-item-secondary{color:#7c302c;background-color:#fbd1cf}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#7c302c;background-color:#f9bab7}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#7c302c;border-color:#7c302c}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#3e3e3e;background-color:#d9d9d9}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#3e3e3e;background-color:#ccc}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#3e3e3e;border-color:#3e3e3e}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:flex;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}.progress-bar-animated{animation:none}.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;text-align:center;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:350px;font-family:"Helvetica Neue",Helvetica,Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;backface-visibility:hidden;transition:transform .6s ease-in-out}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right,.carousel-item{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:flex;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev,.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#2b99a8!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#21747f!important}.bg-secondary{background-color:#ef5c55!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#eb2f26!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light,pre{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#777!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#5e5e5e!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom,.cd-header,legend{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#2b99a8!important}.border-secondary{border-color:#ef5c55!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#777!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.8571428571%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-fill{flex:1 1 auto!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports (position:sticky){.sticky-top{position:sticky;top:0;z-index:1020}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.cd-header,.mt-4,.my-4,legend{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.cd-header,.mb-4,.my-4,legend{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.cd-header,.pb-1,.py-1,legend{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2,pre{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#2b99a8!important}a.text-primary:focus,a.text-primary:hover{color:#1b626b!important}.text-secondary{color:#ef5c55!important}a.text-secondary:focus,a.text-secondary:hover{color:#e21f15!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#777!important}a.text-dark:focus,a.text-dark:hover{color:#515151!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}.container,body{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}/*!
-Fork Awesome 1.1.7
-License - https://forkaweso.me/Fork-Awesome/license
-
-Copyright 2018 Dave Gandy & Fork Awesome
-
-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.
- */@font-face{font-family:ForkAwesome;src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?v=1.1.7);src:url(forkawesome-webfont.35e77a38ca9d85c4e897.eot?#iefix&v=1.1.7) format("embedded-opentype"),url(forkawesome-webfont.3a9e014c2469ffa65a0e.woff2?v=1.1.7) format("woff2"),url(forkawesome-webfont.44bbdbbfb5a10ba2d1ce.woff?v=1.1.7) format("woff"),url(forkawesome-webfont.fc46f3dae03b2b2e1cee.ttf?v=1.1.7) format("truetype"),url(forkawesome-webfont.78dcc9c4999659b8026a.svg?v=1.1.7#forkawesomeregular) format("svg");font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 ForkAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa,.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{animation:2s linear infinite fa-spin}.fa-pulse{animation:1s steps(8) infinite fa-spin}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before,.fa-sync:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before,.fa-video:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell-o:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-globe-e:before{content:""}.fa-globe-w:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-community:before,.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus-g:before,.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before,.fa-utensils:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before,.fa-pound:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before,.fa-sort-alpha-down:before{content:""}.fa-sort-alpha-desc:before,.fa-sort-alpha-up:before{content:""}.fa-sort-amount-asc:before,.fa-sort-amount-down:before{content:""}.fa-sort-amount-desc:before,.fa-sort-amount-up:before{content:""}.fa-sort-numeric-asc:before,.fa-sort-numeric-down:before{content:""}.fa-sort-numeric-desc:before,.fa-sort-numeric-up:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before,.fa-utensil-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before,.fa-heading:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before,.fa-closed-captioning:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before,.fa-gem:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-medium-square:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo-v:before,.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-phone-volume:before,.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.fa-mastodon:before{content:""}.fa-mastodon-alt:before{content:""}.fa-fork-awesome:before,.fa-fork-circle:before{content:""}.fa-peertube:before{content:""}.fa-diaspora:before{content:""}.fa-friendica:before{content:""}.fa-gnu-social:before{content:""}.fa-liberapay-square:before{content:""}.fa-liberapay:before{content:""}.fa-scuttlebutt:before,.fa-ssb:before{content:""}.fa-hubzilla:before{content:""}.fa-social-home:before{content:""}.fa-artstation:before{content:""}.fa-discord:before{content:""}.fa-discord-alt:before{content:""}.fa-patreon:before{content:""}.fa-snowdrift:before{content:""}.fa-activitypub:before{content:""}.fa-ethereum:before{content:""}.fa-keybase:before{content:""}.fa-shaarli:before{content:""}.fa-shaarli-o:before{content:""}.fa-cut-key:before,.fa-key-modern:before{content:""}.fa-xmpp:before{content:""}.fa-archive-org:before{content:""}.fa-freedombox:before{content:""}.fa-facebook-messenger:before{content:""}.fa-debian:before{content:""}.fa-mastodon-square:before{content:""}.fa-tipeee:before{content:""}.fa-react:before{content:""}.fa-dogmazic:before{content:""}.fa-zotero:before{content:""}.fa-nodejs:before{content:""}.fa-nextcloud:before{content:""}.fa-nextcloud-square:before{content:""}.fa-hackaday:before{content:""}.fa-laravel:before{content:""}.fa-signalapp:before{content:""}.fa-gnupg:before{content:""}.fa-php:before{content:""}.fa-ffmpeg:before{content:""}.fa-joplin:before{content:""}.fa-syncthing:before{content:""}.fa-inkscape:before{content:""}.fa-matrix-org:before{content:""}.fa-pixelfed:before{content:""}.fa-bootstrap:before{content:""}.fa-dev-to:before{content:""}.fa-hashnode:before{content:""}.fa-jirafeau:before{content:""}.fa-emby:before{content:""}.fa-wikidata:before{content:""}.fa-gimp:before{content:""}.fa-c:before{content:""}.fa-digitalocean:before{content:""}.fa-att:before{content:""}.fa-gitea:before{content:""}.fa-file-epub:before{content:""}.fa-python:before{content:""}.fa-archlinux:before{content:""}.fa-pleroma:before{content:""}.fa-unsplash:before{content:""}.fa-hackster:before{content:""}.fa-spell-check:before{content:""}.fa-moon:before{content:""}.fa-sun:before{content:""}.fa-f-droid:before{content:""}.fa-biometric:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;white-space:normal;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.info-card-popover-cluster-status{max-width:23vw;max-height:20vh}.info-card-popover-cluster-status .popover-body{max-width:100%;max-height:19vh;font-size:12px}@media (max-width:calc(1200px - 1px)){.info-card-popover-cluster-status{max-width:31vw}}@media (max-width:calc(992px - 1px)){.info-card-popover-cluster-status{max-width:46vw}}@media (max-width:calc(768px - 1px)){.info-card-popover-cluster-status{max-width:83vw}}.info-card-content-clickable{cursor:pointer;padding:7px;border:1px solid #efefef;border-radius:3px}.info-card-content-clickable:hover{border-color:#d1d1d1;background-color:#f3f3f3}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:initial}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#2b99a8;background-color:#2b99a8}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#adb5bd}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(43,153,168,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#76d0dc}html{background-color:#fff}body,html{width:100%;height:100%;font-size:12px}h1{letter-spacing:-1px;font-size:2em}h2{letter-spacing:-1px;font-size:1.833em}h3{display:block;font-size:1.583em;font-weight:400}h4{font-size:1.5em;line-height:normal}option{font-weight:400;font-style:normal}.full-height{height:100vh}.full-width{width:100vw}.vertical-align{display:flex;align-items:center}.horizontal-align{display:flex;justify-content:center}.loading{position:absolute;top:50%;left:50%}.margin-right-md{margin-right:15px}.no-border{border:0;box-shadow:0 0 0!important}.italic{font-style:italic}.bold{font-weight:700}.text-pre{white-space:pre-wrap}.btn-light{background-color:#fff!important;border-color:#ced4da!important}.btn-light:hover{background-color:#ddd!important;border-color:#adadad!important}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:0}.btn-primary .badge{color:#2b99a8;background-color:#eee}.btn-group>.btn>i.fa,.cd-datatable-actions button.btn i.fa{margin-right:5px}.dropdown-menu{min-width:50px;z-index:999999}.dropdown-menu>li>a{color:#474544;cursor:pointer}.dropdown-menu>li>a>i.fa{margin-right:5px}.dropdown-menu>.active>a{color:#eee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#21747f}.dataTables_wrapper .dropdown-menu>li.dropdown-divider{cursor:auto}.container,.container-fluid{padding-left:30px!important;padding-right:30px!important}.row{margin-left:-30px;margin-right:-30px}.cd-col-form,.cd-col-form-input,.cd-col-form-label,.cd-col-form-offset,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,cd-modal .cd-col-form-input,cd-modal .cd-col-form-label,cd-modal .cd-col-form-offset{padding-left:30px;padding-right:30px}tags-input .tags{border-radius:4px;border:1px solid #d1d1d1;box-shadow:inset 0 1px 1px rgba(0,0,0,.09)}.card .accordion-title,pre .accordion-title,uib-accordion .card-title{font-size:14px!important}.card-header{font-size:1.3em}.card-body h2:first-child{margin-top:0}.disabled{pointer-events:none}.clickable,a{cursor:pointer}:invalid .has-error-btn,:invalid .has-error-btn:disabled:hover{background-color:#f2dede;border-color:#a94442}.noscript{padding-top:5em}.noscript p{color:#777}.required::after{color:#a94442;content:"*";font-size:14px;padding-left:4px}.form-footer{width:100%;display:flex}.cd-form-control,.form-control{display:table-cell}.cd-form-control:focus,.form-control:focus{border-color:rgba(43,153,168,.8);outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px 2px rgba(43,153,168,.5)}.custom-checkbox{padding-top:7px}.card-footer button.btn:not(:first-child),.modal-footer button.btn:not(:first-child){margin-left:5px}.nav-tabs{margin-bottom:15px}.ceph-icon{background:url(Ceph_Logo_Stacked_RGB_120411_fa_228x228.1ed169ccc35367a2dab2.png)}.prometheus-icon{background:url(prometheus_logo.074db273ef932a67d91b.svg)}.custom-icon{padding:10px;margin-right:8px;background-clip:padding-box;background-size:contain;background-repeat:no-repeat}.toast-message .custom-icon{filter:brightness(0) invert(1);-webkit-filter:brightness(0) invert(1);-moz-filter:brightness(0) invert(1);-o-filter:brightness(0) invert(1);-ms-filter:brightness(0) invert(1)}.block-ui-wrapper{background:rgba(0,0,0,.7)!important}.tooltip-wide .tooltip-inner{width:400px}.tooltip-inner{background-color:#fff;border:1px solid grey;color:#333;font-size:1.1em}.toast-message>ul{padding-left:1em;margin:0}@media (min-width:576px){.cd-col-form-label,.col-form-label{text-align:right}}.cd-col-form-label,.col-form-label{font-weight:700}cd-submit-button{background-color:transparent!important}bfv-messages{display:none}.form-group.has-error .invalid-feedback{display:block}.password-strength-level{flex:100%;margin-top:2px}.password-strength-level .ok,.password-strength-level .strong,.password-strength-level .very-strong,.password-strength-level .weak{border-radius:.25rem;height:13px}.password-strength-level .weak{width:25%;background:red}.password-strength-level .ok{width:50%;background:#ffc200}.password-strength-level .strong{width:75%;background:#0b0}.password-strength-level .very-strong{width:100%;background:#245e03}.badge-hdd{color:#fff;background-color:#90949c}.badge-ssd{color:#fff;background-color:#288cea}.badge-tab{color:#555;background-color:#f3f3f3}tree-root tree-viewport{min-height:1em}
\ No newline at end of file
index 0eaa356355e45f3352eb8b76b1f0494b98d5d866..16e565238e4afc245a0bcf0bf03b353fcc4b880c 100644 (file)
@@ -1,9 +1,9 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(function(){try{return require("esprima")}catch(e){}}()):"function"==typeof define&&define.amd?define(["esprima"],t):"object"==typeof exports?exports.SwaggerUIBundle=t(function(){try{return require("esprima")}catch(e){}}()):e.SwaggerUIBundle=t(e.esprima)}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist",n(n.s=481)}([function(e,t,n){"use strict";e.exports=n(100)},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return a(e)?e:J(e)}function r(e){return s(e)?e:Y(e)}function o(e){return u(e)?e:K(e)}function i(e){return a(e)&&!c(e)?e:G(e)}function a(e){return!(!e||!e[p])}function s(e){return!(!e||!e[f])}function u(e){return!(!e||!e[h])}function c(e){return s(e)||u(e)}function l(e){return!(!e||!e[d])}t(r,n),t(o,n),t(i,n),n.isIterable=a,n.isKeyed=s,n.isIndexed=u,n.isAssociative=c,n.isOrdered=l,n.Keyed=r,n.Indexed=o,n.Set=i;var p="@@__IMMUTABLE_ITERABLE__@@",f="@@__IMMUTABLE_KEYED__@@",h="@@__IMMUTABLE_INDEXED__@@",d="@@__IMMUTABLE_ORDERED__@@",m=5,v=1<<m,g=v-1,y={},b={value:!1},_={value:!1};function w(e){return e.value=!1,e}function x(e){e&&(e.value=!0)}function E(){}function S(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),o=0;o<n;o++)r[o]=e[o+t];return r}function C(e){return void 0===e.size&&(e.size=e.__iterate(O)),e.size}function k(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?C(e)+t:t}function O(){return!0}function A(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function T(e,t){return P(e,t,0)}function j(e,t){return P(e,t,t)}function P(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var I=0,M=1,N=2,R="function"==typeof Symbol&&Symbol.iterator,D="@@iterator",L=R||D;function U(e){this.next=e}function q(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function F(){return{value:void 0,done:!0}}function z(e){return!!H(e)}function B(e){return e&&"function"==typeof e.next}function V(e){var t=H(e);return t&&t.call(e)}function H(e){var t=e&&(R&&e[R]||e[D]);if("function"==typeof t)return t}function W(e){return e&&"number"==typeof e.length}function J(e){return null==e?ie():a(e)?e.toSeq():function(e){var t=ue(e)||"object"==typeof e&&new te(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function Y(e){return null==e?ie().toKeyedSeq():a(e)?s(e)?e.toSeq():e.fromEntrySeq():ae(e)}function K(e){return null==e?ie():a(e)?s(e)?e.entrySeq():e.toIndexedSeq():se(e)}function G(e){return(null==e?ie():a(e)?s(e)?e.entrySeq():e:se(e)).toSetSeq()}U.prototype.toString=function(){return"[Iterator]"},U.KEYS=I,U.VALUES=M,U.ENTRIES=N,U.prototype.inspect=U.prototype.toSource=function(){return this.toString()},U.prototype[L]=function(){return this},t(J,n),J.of=function(){return J(arguments)},J.prototype.toSeq=function(){return this},J.prototype.toString=function(){return this.__toString("Seq {","}")},J.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},J.prototype.__iterate=function(e,t){return ce(this,e,t,!0)},J.prototype.__iterator=function(e,t){return le(this,e,t,!0)},t(Y,J),Y.prototype.toKeyedSeq=function(){return this},t(K,J),K.of=function(){return K(arguments)},K.prototype.toIndexedSeq=function(){return this},K.prototype.toString=function(){return this.__toString("Seq [","]")},K.prototype.__iterate=function(e,t){return ce(this,e,t,!1)},K.prototype.__iterator=function(e,t){return le(this,e,t,!1)},t(G,J),G.of=function(){return G(arguments)},G.prototype.toSetSeq=function(){return this},J.isSeq=oe,J.Keyed=Y,J.Set=G,J.Indexed=K;var $,Z,X,Q="@@__IMMUTABLE_SEQ__@@";function ee(e){this._array=e,this.size=e.length}function te(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function ne(e){this._iterable=e,this.size=e.length||e.size}function re(e){this._iterator=e,this._iteratorCache=[]}function oe(e){return!(!e||!e[Q])}function ie(){return $||($=new ee([]))}function ae(e){var t=Array.isArray(e)?new ee(e).fromEntrySeq():B(e)?new re(e).fromEntrySeq():z(e)?new ne(e).fromEntrySeq():"object"==typeof e?new te(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function se(e){var t=ue(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ue(e){return W(e)?new ee(e):B(e)?new re(e):z(e)?new ne(e):void 0}function ce(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;a<=i;a++){var s=o[n?i-a:a];if(!1===t(s[1],r?s[0]:a,e))return a+1}return a}return e.__iterateUncached(t,n)}function le(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new U(function(){var e=o[n?i-a:a];return a++>i?{value:void 0,done:!0}:q(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function pe(e,t){return t?function e(t,n,r,o){return Array.isArray(n)?t.call(o,r,K(n).map(function(r,o){return e(t,r,o,n)})):he(n)?t.call(o,r,Y(n).map(function(r,o){return e(t,r,o,n)})):n}(t,e,"",{"":e}):fe(e)}function fe(e){return Array.isArray(e)?K(e).map(fe).toList():he(e)?Y(e).map(fe).toMap():e}function he(e){return e&&(e.constructor===Object||void 0===e.constructor)}function de(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if(e=e.valueOf(),t=t.valueOf(),e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function me(e,t){if(e===t)return!0;if(!a(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!c(e);if(l(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&de(o[1],e)&&(n||de(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var p=!0,f=t.__iterate(function(t,r){if(n?!e.has(t):o?!de(t,e.get(r,y)):!de(e.get(r,y),t))return p=!1,!1});return p&&e.size===f}function ve(e,t){if(!(this instanceof ve))return new ve(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(Z)return Z;Z=this}}function ge(e,t){if(!e)throw new Error(t)}function ye(e,t,n){if(!(this instanceof ye))return new ye(e,t,n);if(ge(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t<e&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(X)return X;X=this}}function be(){throw TypeError("Abstract")}function _e(){}function we(){}function xe(){}J.prototype[Q]=!0,t(ee,K),ee.prototype.get=function(e,t){return this.has(e)?this._array[k(this,e)]:t},ee.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length-1,o=0;o<=r;o++)if(!1===e(n[t?r-o:o],o,this))return o+1;return o},ee.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new U(function(){return o>r?{value:void 0,done:!0}:q(e,o,n[t?r-o++:o++])})},t(te,Y),te.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},te.prototype.has=function(e){return this._object.hasOwnProperty(e)},te.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;i<=o;i++){var a=r[t?o-i:i];if(!1===e(n[a],a,this))return i+1}return i},te.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new U(function(){var a=r[t?o-i:i];return i++>o?{value:void 0,done:!0}:q(e,a,n[a])})},te.prototype[d]=!0,t(ne,K),ne.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=this._iterable,r=V(n),o=0;if(B(r))for(var i;!(i=r.next()).done&&!1!==e(i.value,o++,this););return o},ne.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterable,r=V(n);if(!B(r))return new U(F);var o=0;return new U(function(){var t=r.next();return t.done?t:q(e,o++,t.value)})},t(re,K),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,i=0;i<o.length;)if(!1===e(o[i],i++,this))return i;for(;!(n=r.next()).done;){var a=n.value;if(o[i]=a,!1===e(a,i++,this))break}return i},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterator,r=this._iteratorCache,o=0;return new U(function(){if(o>=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return q(e,o,r[o++])})},t(ve,K),ve.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ve.prototype.get=function(e,t){return this.has(e)?this._value:t},ve.prototype.includes=function(e){return de(this._value,e)},ve.prototype.slice=function(e,t){var n=this.size;return A(e,t,n)?this:new ve(this._value,j(t,n)-T(e,n))},ve.prototype.reverse=function(){return this},ve.prototype.indexOf=function(e){return de(this._value,e)?0:-1},ve.prototype.lastIndexOf=function(e){return de(this._value,e)?this.size:-1},ve.prototype.__iterate=function(e,t){for(var n=0;n<this.size;n++)if(!1===e(this._value,n,this))return n+1;return n},ve.prototype.__iterator=function(e,t){var n=this,r=0;return new U(function(){return r<n.size?q(e,r++,n._value):{value:void 0,done:!0}})},ve.prototype.equals=function(e){return e instanceof ve?de(this._value,e._value):me(e)},t(ye,K),ye.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},ye.prototype.get=function(e,t){return this.has(e)?this._start+k(this,e)*this._step:t},ye.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t<this.size&&t===Math.floor(t)},ye.prototype.slice=function(e,t){return A(e,t,this.size)?this:(e=T(e,this.size),(t=j(t,this.size))<=e?new ye(0,0):new ye(this.get(e,this._end),this.get(t,this._end),this._step))},ye.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step==0){var n=t/this._step;if(n>=0&&n<this.size)return n}return-1},ye.prototype.lastIndexOf=function(e){return this.indexOf(e)},ye.prototype.__iterate=function(e,t){for(var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;i<=n;i++){if(!1===e(o,i,this))return i+1;o+=t?-r:r}return i},ye.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new U(function(){var a=o;return o+=t?-r:r,i>n?{value:void 0,done:!0}:q(e,i++,a)})},ye.prototype.equals=function(e){return e instanceof ye?this._start===e._start&&this._end===e._end&&this._step===e._step:me(this,e)},t(be,n),t(_e,be),t(we,be),t(xe,be),be.Keyed=_e,be.Indexed=we,be.Set=xe;var Ee="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Se(e){return e>>>1&1073741824|3221225471&e}function Ce(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Se(n)}if("string"===t)return e.length>Me?function(e){var t=De[e];return void 0===t&&(t=ke(e),Re===Ne&&(Re=0,De={}),Re++,De[e]=t),t}(e):ke(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(je&&void 0!==(t=Oe.get(e)))return t;if(void 0!==(t=e[Ie]))return t;if(!Te){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Ie]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++Pe,1073741824&Pe&&(Pe=0),je)Oe.set(e,t);else{if(void 0!==Ae&&!1===Ae(e))throw new Error("Non-extensible objects are not allowed as keys.");if(Te)Object.defineProperty(e,Ie,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Ie]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Ie]=t}}return t}(e);if("function"==typeof e.toString)return ke(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function ke(e){for(var t=0,n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Se(t)}var Oe,Ae=Object.isExtensible,Te=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),je="function"==typeof WeakMap;je&&(Oe=new WeakMap);var Pe=0,Ie="__immutablehash__";"function"==typeof Symbol&&(Ie=Symbol(Ie));var Me=16,Ne=255,Re=0,De={};function Le(e){ge(e!==1/0,"Cannot perform this action with an infinite size.")}function Ue(e){return null==e?Xe():qe(e)&&!l(e)?e:Xe().withMutations(function(t){var n=r(e);Le(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function qe(e){return!(!e||!e[ze])}t(Ue,_e),Ue.of=function(){var t=e.call(arguments,0);return Xe().withMutations(function(e){for(var n=0;n<t.length;n+=2){if(n+1>=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}})},Ue.prototype.toString=function(){return this.__toString("Map {","}")},Ue.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Ue.prototype.set=function(e,t){return Qe(this,e,t)},Ue.prototype.setIn=function(e,t){return this.updateIn(e,y,function(){return t})},Ue.prototype.remove=function(e){return Qe(this,e,y)},Ue.prototype.deleteIn=function(e){return this.updateIn(e,function(){return y})},Ue.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Ue.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=function e(t,n,r,o){var i=t===y,a=n.next();if(a.done){var s=i?r:t,u=o(s);return u===s?t:u}ge(i||t&&t.set,"invalid keyPath");var c=a.value,l=i?y:t.get(c,y),p=e(l,n,r,o);return p===l?t:p===y?t.remove(c):(i?Xe():t).set(c,p)}(this,rn(e),t,n);return r===y?void 0:r},Ue.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Xe()},Ue.prototype.merge=function(){return rt(this,void 0,arguments)},Ue.prototype.mergeWith=function(t){var n=e.call(arguments,1);return rt(this,t,n)},Ue.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Xe(),function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]})},Ue.prototype.mergeDeep=function(){return rt(this,ot,arguments)},Ue.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return rt(this,it(t),n)},Ue.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Xe(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]})},Ue.prototype.sort=function(e){return Tt(Jt(this,e))},Ue.prototype.sortBy=function(e,t){return Tt(Jt(this,t,e))},Ue.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Ue.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new E)},Ue.prototype.asImmutable=function(){return this.__ensureOwner()},Ue.prototype.wasAltered=function(){return this.__altered},Ue.prototype.__iterator=function(e,t){return new Ke(this,e,t)},Ue.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},Ue.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ze(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Ue.isMap=qe;var Fe,ze="@@__IMMUTABLE_MAP__@@",Be=Ue.prototype;function Ve(e,t){this.ownerID=e,this.entries=t}function He(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function We(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Je(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Ye(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function Ke(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&$e(e._root)}function Ge(e,t){return q(e,t[0],t[1])}function $e(e,t){return{node:e,index:0,__prev:t}}function Ze(e,t,n,r){var o=Object.create(Be);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Xe(){return Fe||(Fe=Ze(0))}function Qe(e,t,n){var r,o;if(e._root){var i=w(b),a=w(_);if(r=et(e._root,e.__ownerID,0,void 0,t,n,i,a),!a.value)return e;o=e.size+(i.value?n===y?-1:1:0)}else{if(n===y)return e;o=1,r=new Ve(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?Ze(o,r):Xe()}function et(e,t,n,r,o,i,a,s){return e?e.update(t,n,r,o,i,a,s):i===y?e:(x(s),x(a),new Ye(t,r,[o,i]))}function tt(e){return e.constructor===Ye||e.constructor===Je}function nt(e,t,n,r,o){if(e.keyHash===r)return new Je(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&g,s=(0===n?r:r>>>n)&g,u=a===s?[nt(e,t,n+m,r,o)]:(i=new Ye(t,r,o),a<s?[e,i]:[i,e]);return new He(t,1<<a|1<<s,u)}function rt(e,t,n){for(var o=[],i=0;i<n.length;i++){var s=n[i],u=r(s);a(s)||(u=u.map(function(e){return pe(e)})),o.push(u)}return at(e,t,o)}function ot(e,t,n){return e&&e.mergeDeep&&a(t)?e.mergeDeep(t):de(e,t)?e:t}function it(e){return function(t,n,r){if(t&&t.mergeDeepWith&&a(n))return t.mergeDeepWith(e,n);var o=e(t,n,r);return de(t,o)?t:o}}function at(e,t,n){return 0===(n=n.filter(function(e){return 0!==e.size})).length?e:0!==e.size||e.__ownerID||1!==n.length?e.withMutations(function(e){for(var r=t?function(n,r){e.update(r,y,function(e){return e===y?n:t(e,n,r)})}:function(t,n){e.set(n,t)},o=0;o<n.length;o++)n[o].forEach(r)}):e.constructor(n[0])}function st(e){return e=(e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function ut(e,t,n,r){var o=r?e:S(e);return o[t]=n,o}Be[ze]=!0,Be.delete=Be.remove,Be.removeIn=Be.deleteIn,Ve.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(de(n,o[i][0]))return o[i][1];return r},Ve.prototype.update=function(e,t,n,r,o,i,a){for(var s=o===y,u=this.entries,c=0,l=u.length;c<l&&!de(r,u[c][0]);c++);var p=c<l;if(p?u[c][1]===o:s)return this;if(x(a),(s||!p)&&x(i),!s||1!==u.length){if(!p&&!s&&u.length>=ct)return function(e,t,n,r){e||(e=new E);for(var o=new Ye(e,Ce(n),[n,r]),i=0;i<t.length;i++){var a=t[i];o=o.update(e,0,void 0,a[0],a[1])}return o}(e,u,r,o);var f=e&&e===this.ownerID,h=f?u:S(u);return p?s?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),f?(this.entries=h,this):new Ve(e,h)}},He.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=1<<((0===e?t:t>>>e)&g),i=this.bitmap;return 0==(i&o)?r:this.nodes[st(i&o-1)].get(e+m,t,n,r)},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=(0===t?n:n>>>t)&g,u=1<<s,c=this.bitmap,l=0!=(c&u);if(!l&&o===y)return this;var p=st(c&u-1),f=this.nodes,h=l?f[p]:void 0,d=et(h,e,t+m,n,r,o,i,a);if(d===h)return this;if(!l&&d&&f.length>=lt)return function(e,t,n,r,o){for(var i=0,a=new Array(v),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new We(e,i+1,a)}(e,f,c,s,d);if(l&&!d&&2===f.length&&tt(f[1^p]))return f[1^p];if(l&&d&&1===f.length&&tt(d))return d;var b=e&&e===this.ownerID,_=l?d?c:c^u:c|u,w=l?d?ut(f,p,d,b):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;a<r;a++)a===t&&(i=1),o[a]=e[a+i];return o}(f,p,b):function(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;s<o;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}(f,p,d,b);return b?(this.bitmap=_,this.nodes=w,this):new He(e,_,w)},We.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=(0===e?t:t>>>e)&g,i=this.nodes[o];return i?i.get(e+m,t,n,r):r},We.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=(0===t?n:n>>>t)&g,u=o===y,c=this.nodes,l=c[s];if(u&&!l)return this;var p=et(l,e,t+m,n,r,o,i,a);if(p===l)return this;var f=this.count;if(l){if(!p&&--f<pt)return function(e,t,n,r){for(var o=0,i=0,a=new Array(n),s=0,u=1,c=t.length;s<c;s++,u<<=1){var l=t[s];void 0!==l&&s!==r&&(o|=u,a[i++]=l)}return new He(e,o,a)}(e,c,f,s)}else f++;var h=e&&e===this.ownerID,d=ut(c,s,p,h);return h?(this.count=f,this.nodes=d,this):new We(e,f,d)},Je.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(de(n,o[i][0]))return o[i][1];return r},Je.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=o===y;if(n!==this.keyHash)return s?this:(x(a),x(i),nt(this,e,t,n,[r,o]));for(var u=this.entries,c=0,l=u.length;c<l&&!de(r,u[c][0]);c++);var p=c<l;if(p?u[c][1]===o:s)return this;if(x(a),(s||!p)&&x(i),s&&2===l)return new Ye(e,this.keyHash,u[1^c]);var f=e&&e===this.ownerID,h=f?u:S(u);return p?s?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),f?(this.entries=h,this):new Je(e,this.keyHash,h)},Ye.prototype.get=function(e,t,n,r){return de(n,this.entry[0])?this.entry[1]:r},Ye.prototype.update=function(e,t,n,r,o,i,a){var s=o===y,u=de(r,this.entry[0]);return(u?o===this.entry[1]:s)?this:(x(a),s?void x(i):u?e&&e===this.ownerID?(this.entry[1]=o,this):new Ye(e,this.keyHash,[r,o]):(x(i),nt(this,e,t,Ce(r),[r,o])))},Ve.prototype.iterate=Je.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;r<=o;r++)if(!1===e(n[t?o-r:r]))return!1},He.prototype.iterate=We.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;r<=o;r++){var i=n[t?o-r:r];if(i&&!1===i.iterate(e,t))return!1}},Ye.prototype.iterate=function(e,t){return e(this.entry)},t(Ke,U),Ke.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return Ge(e,r.entry)}else if(r.entries){if(n=r.entries.length-1,o<=n)return Ge(e,r.entries[this._reverse?n-o:o])}else if(n=r.nodes.length-1,o<=n){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return Ge(e,i.entry);t=this._stack=$e(i,t)}continue}t=this._stack=this._stack.__prev}return{value:void 0,done:!0}};var ct=v/4,lt=v/2,pt=v/4;function ft(e){var t=xt();if(null==e)return t;if(ht(e))return e;var n=o(e),r=n.size;return 0===r?t:(Le(r),r>0&&r<v?wt(0,r,m,null,new vt(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function ht(e){return!(!e||!e[dt])}t(ft,we),ft.of=function(){return this(arguments)},ft.prototype.toString=function(){return this.__toString("List [","]")},ft.prototype.get=function(e,t){if((e=k(this,e))>=0&&e<this.size){var n=Ct(this,e+=this._origin);return n&&n.array[e&g]}return t},ft.prototype.set=function(e,t){return function(e,t,n){if((t=k(e,t))!=t)return e;if(t>=e.size||t<0)return e.withMutations(function(e){t<0?kt(e,t).set(0,n):kt(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,o=e._root,i=w(_);return t>=At(e._capacity)?r=Et(r,e.__ownerID,0,t,n,i):o=Et(o,e.__ownerID,e._level,t,n,i),i.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):wt(e._origin,e._capacity,e._level,o,r):e}(this,e,t)},ft.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},ft.prototype.insert=function(e,t){return this.splice(e,0,t)},ft.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=m,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):xt()},ft.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){kt(n,0,t+e.length);for(var r=0;r<e.length;r++)n.set(t+r,e[r])})},ft.prototype.pop=function(){return kt(this,0,-1)},ft.prototype.unshift=function(){var e=arguments;return this.withMutations(function(t){kt(t,-e.length);for(var n=0;n<e.length;n++)t.set(n,e[n])})},ft.prototype.shift=function(){return kt(this,1)},ft.prototype.merge=function(){return Ot(this,void 0,arguments)},ft.prototype.mergeWith=function(t){var n=e.call(arguments,1);return Ot(this,t,n)},ft.prototype.mergeDeep=function(){return Ot(this,ot,arguments)},ft.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return Ot(this,it(t),n)},ft.prototype.setSize=function(e){return kt(this,0,e)},ft.prototype.slice=function(e,t){var n=this.size;return A(e,t,n)?this:kt(this,T(e,n),j(t,n))},ft.prototype.__iterator=function(e,t){var n=0,r=_t(this,t);return new U(function(){var t=r();return t===bt?{value:void 0,done:!0}:q(e,n++,t)})},ft.prototype.__iterate=function(e,t){for(var n,r=0,o=_t(this,t);(n=o())!==bt&&!1!==e(n,r++,this););return r},ft.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?wt(this._origin,this._capacity,this._level,this._root,this._tail,e,this.__hash):(this.__ownerID=e,this)},ft.isList=ht;var dt="@@__IMMUTABLE_LIST__@@",mt=ft.prototype;function vt(e,t){this.array=e,this.ownerID=t}mt[dt]=!0,mt.delete=mt.remove,mt.setIn=Be.setIn,mt.deleteIn=mt.removeIn=Be.removeIn,mt.update=Be.update,mt.updateIn=Be.updateIn,mt.mergeIn=Be.mergeIn,mt.mergeDeepIn=Be.mergeDeepIn,mt.withMutations=Be.withMutations,mt.asMutable=Be.asMutable,mt.asImmutable=Be.asImmutable,mt.wasAltered=Be.wasAltered,vt.prototype.removeBefore=function(e,t,n){if(n===t?1<<t:0===this.array.length)return this;var r=n>>>t&g;if(r>=this.array.length)return new vt([],e);var o,i=0===r;if(t>0){var a=this.array[r];if((o=a&&a.removeBefore(e,t-m,n))===a&&i)return this}if(i&&!o)return this;var s=St(this,e);if(!i)for(var u=0;u<r;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},vt.prototype.removeAfter=function(e,t,n){if(n===(t?1<<t:0)||0===this.array.length)return this;var r,o=n-1>>>t&g;if(o>=this.array.length)return this;if(t>0){var i=this.array[o];if((r=i&&i.removeAfter(e,t-m,n))===i&&o===this.array.length-1)return this}var a=St(this,e);return a.array.splice(o+1),r&&(a.array[o]=r),a};var gt,yt,bt={};function _t(e,t){var n=e._origin,r=e._capacity,o=At(r),i=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===o?i&&i.array:e&&e.array,u=a>n?0:n-a,c=r-a;return c>v&&(c=v),function(){if(u===c)return bt;var e=t?--c:u++;return s&&s[e]}}(e,u):function(e,o,i){var s,u=e&&e.array,c=i>n?0:n-i>>o,l=1+(r-i>>o);return l>v&&(l=v),function(){for(;;){if(s){var e=s();if(e!==bt)return e;s=null}if(c===l)return bt;var n=t?--l:c++;s=a(u&&u[n],o-m,i+(n<<o))}}}(e,s,u)}}function wt(e,t,n,r,o,i,a){var s=Object.create(mt);return s.size=t-e,s._origin=e,s._capacity=t,s._level=n,s._root=r,s._tail=o,s.__ownerID=i,s.__hash=a,s.__altered=!1,s}function xt(){return gt||(gt=wt(0,0,m))}function Et(e,t,n,r,o,i){var a,s=r>>>n&g,u=e&&s<e.array.length;if(!u&&void 0===o)return e;if(n>0){var c=e&&e.array[s],l=Et(c,t,n-m,r,o,i);return l===c?e:((a=St(e,t)).array[s]=l,a)}return u&&e.array[s]===o?e:(x(i),a=St(e,t),void 0===o&&s===a.array.length-1?a.array.pop():a.array[s]=o,a)}function St(e,t){return t&&e&&t===e.ownerID?e:new vt(e?e.array.slice():[],t)}function Ct(e,t){if(t>=At(e._capacity))return e._tail;if(t<1<<e._level+m){for(var n=e._root,r=e._level;n&&r>0;)n=n.array[t>>>r&g],r-=m;return n}}function kt(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new E,o=e._origin,i=e._capacity,a=o+t,s=void 0===n?i:n<0?i+n:o+n;if(a===o&&s===i)return e;if(a>=s)return e.clear();for(var u=e._level,c=e._root,l=0;a+l<0;)c=new vt(c&&c.array.length?[void 0,c]:[],r),l+=1<<(u+=m);l&&(a+=l,o+=l,s+=l,i+=l);for(var p=At(i),f=At(s);f>=1<<u+m;)c=new vt(c&&c.array.length?[c]:[],r),u+=m;var h=e._tail,d=f<p?Ct(e,s-1):f>p?new vt([],r):h;if(h&&f>p&&a<i&&h.array.length){for(var v=c=St(c,r),y=u;y>m;y-=m){var b=p>>>y&g;v=v.array[b]=St(v.array[b],r)}v.array[p>>>m&g]=h}if(s<i&&(d=d&&d.removeAfter(r,0,s)),a>=f)a-=f,s-=f,u=m,c=null,d=d&&d.removeBefore(r,0,a);else if(a>o||f<p){for(l=0;c;){var _=a>>>u&g;if(_!==f>>>u&g)break;_&&(l+=(1<<u)*_),u-=m,c=c.array[_]}c&&a>o&&(c=c.removeBefore(r,u,a-l)),c&&f<p&&(c=c.removeAfter(r,u,f-l)),l&&(a-=l,s-=l)}return e.__ownerID?(e.size=s-a,e._origin=a,e._capacity=s,e._level=u,e._root=c,e._tail=d,e.__hash=void 0,e.__altered=!0,e):wt(a,s,u,c,d)}function Ot(e,t,n){for(var r=[],i=0,s=0;s<n.length;s++){var u=n[s],c=o(u);c.size>i&&(i=c.size),a(u)||(c=c.map(function(e){return pe(e)})),r.push(c)}return i>e.size&&(e=e.setSize(i)),at(e,t,r)}function At(e){return e<v?0:e-1>>>m<<m}function Tt(e){return null==e?It():jt(e)?e:It().withMutations(function(t){var n=r(e);Le(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function jt(e){return qe(e)&&l(e)}function Pt(e,t,n,r){var o=Object.create(Tt.prototype);return o.size=e?e.size:0,o._map=e,o._list=t,o.__ownerID=n,o.__hash=r,o}function It(){return yt||(yt=Pt(Xe(),xt()))}function Mt(e,t,n){var r,o,i=e._map,a=e._list,s=i.get(t),u=void 0!==s;if(n===y){if(!u)return e;a.size>=v&&a.size>=2*i.size?(o=a.filter(function(e,t){return void 0!==e&&s!==t}),r=o.toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):Pt(r,o)}function Nt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Rt(e){this._iter=e,this.size=e.size}function Dt(e){this._iter=e,this.size=e.size}function Lt(e){this._iter=e,this.size=e.size}function Ut(e){var t=en(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=tn,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return!1!==t(n,e,r)},n)},t.__iteratorUncached=function(t,n){if(t===N){var r=e.__iterator(t,n);return new U(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===M?I:M,n)},t}function qt(e,t,n){var r=en(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,y);return i===y?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return!1!==r(t.call(n,e,o,a),o,i)},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(N,o);return new U(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return q(r,s,t.call(n,a[1],s,e),o)})},r}function Ft(e,t){var n=en(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Ut(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=tn,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function zt(e,t,n,r){var o=en(e);return r&&(o.has=function(r){var o=e.get(r,y);return o!==y&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,y);return i!==y&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){if(t.call(n,e,i,u))return s++,o(e,r?i:s-1,a)},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(N,i),s=0;return new U(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return q(o,r?c:s++,l,i)}})},o}function Bt(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=o:n|=0),A(t,n,o))return e;var i=T(t,o),a=j(n,o);if(i!=i||a!=a)return Bt(e.toSeq().cacheResult(),t,n,r);var s,u=a-i;u==u&&(s=u<0?0:u);var c=en(e);return c.size=0===s?s:e.size&&s||void 0,!r&&oe(e)&&s>=0&&(c.get=function(t,n){return(t=k(this,t))>=0&&t<s?e.get(t+i,n):n}),c.__iterateUncached=function(t,n){var o=this;if(0===s)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,u=!0,c=0;return e.__iterate(function(e,n){if(!u||!(u=a++<i))return c++,!1!==t(e,r?n:c-1,o)&&c!==s}),c},c.__iteratorUncached=function(t,n){if(0!==s&&n)return this.cacheResult().__iterator(t,n);var o=0!==s&&e.__iterator(t,n),a=0,u=0;return new U(function(){for(;a++<i;)o.next();if(++u>s)return{value:void 0,done:!0};var e=o.next();return r||t===M?e:q(t,u-1,t===I?void 0:e.value[1],e)})},c}function Vt(e,t,n,r){var o=en(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,c){if(!s||!(s=t.call(n,e,i,c)))return u++,o(e,r?i:u-1,a)}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(N,i),u=!0,c=0;return new U(function(){var e,i,l;do{if((e=s.next()).done)return r||o===M?e:q(o,c++,o===I?void 0:e.value[1],e);var p=e.value;i=p[0],l=p[1],u&&(u=t.call(n,l,i,a))}while(u);return o===N?e:q(o,i,l,e)})},o}function Ht(e,t){var n=s(e),o=[e].concat(t).map(function(e){return a(e)?n&&(e=r(e)):e=n?ae(e):se(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===o.length)return e;if(1===o.length){var i=o[0];if(i===e||n&&s(i)||u(e)&&u(i))return i}var c=new ee(o);return n?c=c.toKeyedSeq():u(e)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=o.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),c}function Wt(e,t,n){var r=en(e);return r.__iterateUncached=function(r,o){var i=0,s=!1;return function e(u,c){var l=this;u.__iterate(function(o,u){return(!t||c<t)&&a(o)?e(o,c+1):!1===r(o,n?u:i++,l)&&(s=!0),!s},o)}(e,0),i},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),s=[],u=0;return new U(function(){for(;i;){var e=i.next();if(!1===e.done){var c=e.value;if(r===N&&(c=c[1]),t&&!(s.length<t)||!a(c))return n?e:q(r,u++,c,e);s.push(i),i=c.__iterator(r,o)}else i=s.pop()}return{value:void 0,done:!0}})},r}function Jt(e,t,n){t||(t=nn);var r=s(e),o=0,i=e.toSeq().map(function(t,r){return[r,t,o++,n?n(t,r,e):t]}).toArray();return i.sort(function(e,n){return t(e[3],n[3])||e[2]-n[2]}).forEach(r?function(e,t){i[t].length=2}:function(e,t){i[t]=e[1]}),r?Y(i):u(e)?K(i):G(i)}function Yt(e,t,n){if(t||(t=nn),n){var r=e.toSeq().map(function(t,r){return[t,n(t,r,e)]}).reduce(function(e,n){return Kt(t,e[1],n[1])?n:e});return r&&r[0]}return e.reduce(function(e,n){return Kt(t,e,n)?n:e})}function Kt(e,t,n){var r=e(n,t);return 0===r&&n!==t&&(null==n||n!=n)||r>0}function Gt(e,t,r){var o=en(e);return o.size=new ee(r).map(function(e){return e.size}).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(M,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var i=r.map(function(e){return e=n(e),V(o?e.reverse():e)}),a=0,s=!1;return new U(function(){var n;return s||(n=i.map(function(e){return e.next()}),s=n.some(function(e){return e.done})),s?{value:void 0,done:!0}:q(e,a++,t.apply(null,n.map(function(e){return e.value})))})},o}function $t(e,t){return oe(e)?t:e.constructor(t)}function Zt(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Xt(e){return Le(e.size),C(e)}function Qt(e){return s(e)?r:u(e)?o:i}function en(e){return Object.create((s(e)?Y:u(e)?K:G).prototype)}function tn(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):J.prototype.cacheResult.call(this)}function nn(e,t){return e>t?1:e<t?-1:0}function rn(e){var t=V(e);if(!t){if(!W(e))throw new TypeError("Expected iterable or array-like: "+e);t=V(n(e))}return t}function on(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);!function(e,t){try{t.forEach(function(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){ge(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}.bind(void 0,e))}catch(e){}}(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=Ue(i)},o=r.prototype=Object.create(an);return o.constructor=r,r}t(Tt,Ue),Tt.of=function(){return this(arguments)},Tt.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Tt.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Tt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):It()},Tt.prototype.set=function(e,t){return Mt(this,e,t)},Tt.prototype.remove=function(e){return Mt(this,e,y)},Tt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Tt.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Tt.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Tt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?Pt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Tt.isOrderedMap=jt,Tt.prototype[d]=!0,Tt.prototype.delete=Tt.prototype.remove,t(Nt,Y),Nt.prototype.get=function(e,t){return this._iter.get(e,t)},Nt.prototype.has=function(e){return this._iter.has(e)},Nt.prototype.valueSeq=function(){return this._iter.valueSeq()},Nt.prototype.reverse=function(){var e=this,t=Ft(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},Nt.prototype.map=function(e,t){var n=this,r=qt(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},Nt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Xt(this):0,function(o){return e(o,t?--n:n++,r)}),t)},Nt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(M,t),r=t?Xt(this):0;return new U(function(){var o=n.next();return o.done?o:q(e,t?--r:r++,o.value,o)})},Nt.prototype[d]=!0,t(Rt,K),Rt.prototype.includes=function(e){return this._iter.includes(e)},Rt.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},Rt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t),r=0;return new U(function(){var t=n.next();return t.done?t:q(e,r++,t.value,t)})},t(Dt,G),Dt.prototype.has=function(e){return this._iter.includes(e)},Dt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},Dt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t);return new U(function(){var t=n.next();return t.done?t:q(e,t.value,t.value,t)})},t(Lt,Y),Lt.prototype.entrySeq=function(){return this._iter.toSeq()},Lt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Zt(t);var r=a(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},Lt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t);return new U(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Zt(r);var o=a(r);return q(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},Rt.prototype.cacheResult=Nt.prototype.cacheResult=Dt.prototype.cacheResult=Lt.prototype.cacheResult=tn,t(on,_e),on.prototype.toString=function(){return this.__toString(un(this)+" {","}")},on.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},on.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},on.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=sn(this,Xe()))},on.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+un(this));if(this._map&&!this._map.has(e)){var n=this._defaultValues[e];if(t===n)return this}var r=this._map&&this._map.set(e,t);return this.__ownerID||r===this._map?this:sn(this,r)},on.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:sn(this,t)},on.prototype.wasAltered=function(){return this._map.wasAltered()},on.prototype.__iterator=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterator(e,t)},on.prototype.__iterate=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterate(e,t)},on.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?sn(this,t,e):(this.__ownerID=e,this._map=t,this)};var an=on.prototype;function sn(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function un(e){return e._name||e.constructor.name||"Record"}function cn(e){return null==e?vn():ln(e)&&!l(e)?e:vn().withMutations(function(t){var n=i(e);Le(n.size),n.forEach(function(e){return t.add(e)})})}function ln(e){return!(!e||!e[fn])}an.delete=an.remove,an.deleteIn=an.removeIn=Be.removeIn,an.merge=Be.merge,an.mergeWith=Be.mergeWith,an.mergeIn=Be.mergeIn,an.mergeDeep=Be.mergeDeep,an.mergeDeepWith=Be.mergeDeepWith,an.mergeDeepIn=Be.mergeDeepIn,an.setIn=Be.setIn,an.update=Be.update,an.updateIn=Be.updateIn,an.withMutations=Be.withMutations,an.asMutable=Be.asMutable,an.asImmutable=Be.asImmutable,t(cn,xe),cn.of=function(){return this(arguments)},cn.fromKeys=function(e){return this(r(e).keySeq())},cn.prototype.toString=function(){return this.__toString("Set {","}")},cn.prototype.has=function(e){return this._map.has(e)},cn.prototype.add=function(e){return dn(this,this._map.set(e,!0))},cn.prototype.remove=function(e){return dn(this,this._map.remove(e))},cn.prototype.clear=function(){return dn(this,this._map.clear())},cn.prototype.union=function(){var t=e.call(arguments,0);return 0===(t=t.filter(function(e){return 0!==e.size})).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n<t.length;n++)i(t[n]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},cn.prototype.intersect=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.every(function(e){return e.includes(n)})||e.remove(n)})})},cn.prototype.subtract=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.some(function(e){return e.includes(n)})&&e.remove(n)})})},cn.prototype.merge=function(){return this.union.apply(this,arguments)},cn.prototype.mergeWith=function(t){var n=e.call(arguments,1);return this.union.apply(this,n)},cn.prototype.sort=function(e){return gn(Jt(this,e))},cn.prototype.sortBy=function(e,t){return gn(Jt(this,t,e))},cn.prototype.wasAltered=function(){return this._map.wasAltered()},cn.prototype.__iterate=function(e,t){var n=this;return this._map.__iterate(function(t,r){return e(r,r,n)},t)},cn.prototype.__iterator=function(e,t){return this._map.map(function(e,t){return t}).__iterator(e,t)},cn.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e);return e?this.__make(t,e):(this.__ownerID=e,this._map=t,this)},cn.isSet=ln;var pn,fn="@@__IMMUTABLE_SET__@@",hn=cn.prototype;function dn(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function mn(e,t){var n=Object.create(hn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function vn(){return pn||(pn=mn(Xe()))}function gn(e){return null==e?xn():yn(e)?e:xn().withMutations(function(t){var n=i(e);Le(n.size),n.forEach(function(e){return t.add(e)})})}function yn(e){return ln(e)&&l(e)}hn[fn]=!0,hn.delete=hn.remove,hn.mergeDeep=hn.merge,hn.mergeDeepWith=hn.mergeWith,hn.withMutations=Be.withMutations,hn.asMutable=Be.asMutable,hn.asImmutable=Be.asImmutable,hn.__empty=vn,hn.__make=mn,t(gn,cn),gn.of=function(){return this(arguments)},gn.fromKeys=function(e){return this(r(e).keySeq())},gn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},gn.isOrderedSet=yn;var bn,_n=gn.prototype;function wn(e,t){var n=Object.create(_n);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function xn(){return bn||(bn=wn(It()))}function En(e){return null==e?Tn():Sn(e)?e:Tn().unshiftAll(e)}function Sn(e){return!(!e||!e[kn])}_n[d]=!0,_n.__empty=xn,_n.__make=wn,t(En,we),En.of=function(){return this(arguments)},En.prototype.toString=function(){return this.__toString("Stack [","]")},En.prototype.get=function(e,t){var n=this._head;for(e=k(this,e);n&&e--;)n=n.next;return n?n.value:t},En.prototype.peek=function(){return this._head&&this._head.value},En.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):An(e,t)},En.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Le(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):An(t,n)},En.prototype.pop=function(){return this.slice(1)},En.prototype.unshift=function(){return this.push.apply(this,arguments)},En.prototype.unshiftAll=function(e){return this.pushAll(e)},En.prototype.shift=function(){return this.pop.apply(this,arguments)},En.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Tn()},En.prototype.slice=function(e,t){if(A(e,t,this.size))return this;var n=T(e,this.size),r=j(t,this.size);if(r!==this.size)return we.prototype.slice.call(this,e,t);for(var o=this.size-n,i=this._head;n--;)i=i.next;return this.__ownerID?(this.size=o,this._head=i,this.__hash=void 0,this.__altered=!0,this):An(o,i)},En.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?An(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},En.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},En.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new U(function(){if(r){var t=r.value;return r=r.next,q(e,n++,t)}return{value:void 0,done:!0}})},En.isStack=Sn;var Cn,kn="@@__IMMUTABLE_STACK__@@",On=En.prototype;function An(e,t,n,r){var o=Object.create(On);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Tn(){return Cn||(Cn=An(0))}function jn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}On[kn]=!0,On.withMutations=Be.withMutations,On.asMutable=Be.asMutable,On.asImmutable=Be.asImmutable,On.wasAltered=Be.wasAltered,n.Iterator=U,jn(n,{toArray:function(){Le(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new Rt(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new Nt(this,!0)},toMap:function(){return Ue(this.toKeyedSeq())},toObject:function(){Le(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Tt(this.toKeyedSeq())},toOrderedSet:function(){return gn(s(this)?this.valueSeq():this)},toSet:function(){return cn(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Dt(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return En(s(this)?this.valueSeq():this)},toList:function(){return ft(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return $t(this,Ht(this,t))},includes:function(e){return this.some(function(t){return de(t,e)})},entries:function(){return this.__iterator(N)},every:function(e,t){Le(this.size);var n=!0;return this.__iterate(function(r,o,i){if(!e.call(t,r,o,i))return n=!1,!1}),n},filter:function(e,t){return $t(this,zt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return Le(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Le(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!=r?r.toString():""}),t},keys:function(){return this.__iterator(I)},map:function(e,t){return $t(this,qt(this,e,t))},reduce:function(e,t,n){var r,o;return Le(this.size),arguments.length<2?o=!0:r=t,this.__iterate(function(t,i,a){o?(o=!1,r=t):r=e.call(n,r,t,i,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return $t(this,Ft(this,!0))},slice:function(e,t){return $t(this,Bt(this,e,t,!0))},some:function(e,t){return!this.every(Rn(e),t)},sort:function(e){return $t(this,Jt(this,e))},values:function(){return this.__iterator(M)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return C(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,n){var r=Ue().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}(this,e,t)},equals:function(e){return me(this,e)},entrySeq:function(){var e=this;if(e._cache)return new ee(e._cache);var t=e.toSeq().map(Nn).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Rn(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate(function(n,o,i){if(e.call(t,n,o,i))return r=[o,n],!1}),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(O)},flatMap:function(e,t){return $t(this,function(e,t,n){var r=Qt(e);return e.toSeq().map(function(o,i){return r(t.call(n,o,i,e))}).flatten(!0)}(this,e,t))},flatten:function(e){return $t(this,Wt(this,e,!0))},fromEntrySeq:function(){return new Lt(this)},get:function(e,t){return this.find(function(t,n){return de(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,o=rn(e);!(n=o.next()).done;){var i=n.value;if((r=r&&r.get?r.get(i,y):y)===y)return t}return r},groupBy:function(e,t){return function(e,t,n){var r=s(e),o=(l(e)?Tt():Ue()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return(e=e||[]).push(r?[a,i]:i),e})});var i=Qt(e);return o.map(function(t){return $t(e,i(t))})}(this,e,t)},has:function(e){return this.get(e,y)!==y},hasIn:function(e){return this.getIn(e,y)!==y},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keyOf:function(e){return this.findKey(function(t){return de(t,e)})},keySeq:function(){return this.toSeq().map(Mn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return Yt(this,e)},maxBy:function(e,t){return Yt(this,t,e)},min:function(e){return Yt(this,e?Dn(e):qn)},minBy:function(e,t){return Yt(this,t?Dn(t):qn,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return $t(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return $t(this,Vt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Rn(e),t)},sortBy:function(e,t){return $t(this,Jt(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return $t(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return $t(this,function(e,t,n){var r=en(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(N,o),s=!0;return new U(function(){if(!s)return{value:void 0,done:!0};var e=a.next();if(e.done)return e;var o=e.value,u=o[0],c=o[1];return t.call(n,c,u,i)?r===N?e:q(r,u,c,e):(s=!1,{value:void 0,done:!0})})},r}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Rn(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=l(e),n=s(e),r=t?1:0;return function(e,t){return t=Ee(t,3432918353),t=Ee(t<<15|t>>>-15,461845907),t=Ee(t<<13|t>>>-13,5),t=Ee((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Se((t=Ee(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+Fn(Ce(e),Ce(t))|0}:function(e,t){r=r+Fn(Ce(e),Ce(t))|0}:t?function(e){r=31*r+Ce(e)|0}:function(e){r=r+Ce(e)|0}),r)}(this))}});var Pn=n.prototype;Pn[p]=!0,Pn[L]=Pn.values,Pn.__toJS=Pn.toArray,Pn.__toStringMapper=Ln,Pn.inspect=Pn.toSource=function(){return this.toString()},Pn.chain=Pn.flatMap,Pn.contains=Pn.includes,jn(r,{flip:function(){return $t(this,Ut(this))},mapEntries:function(e,t){var n=this,r=0;return $t(this,this.toSeq().map(function(o,i){return e.call(t,[i,o],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return $t(this,this.toSeq().flip().map(function(r,o){return e.call(t,r,o,n)}).flip())}});var In=r.prototype;function Mn(e,t){return t}function Nn(e,t){return[t,e]}function Rn(e){return function(){return!e.apply(this,arguments)}}function Dn(e){return function(){return-e.apply(this,arguments)}}function Ln(e){return"string"==typeof e?JSON.stringify(e):String(e)}function Un(){return S(arguments)}function qn(e,t){return e<t?1:e>t?-1:0}function Fn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return In[f]=!0,In[L]=Pn.entries,In.__toJS=Pn.toObject,In.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Ln(e)},jn(o,{toKeyedSeq:function(){return new Nt(this,!1)},filter:function(e,t){return $t(this,zt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return $t(this,Ft(this,!1))},slice:function(e,t){return $t(this,Bt(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=T(e,e<0?this.count():this.size);var r=this.slice(0,e);return $t(this,1===n?r:r.concat(S(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return $t(this,Wt(this,e,!1))},get:function(e,t){return(e=k(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return(e=k(this,e))>=0&&(void 0!==this.size?this.size===1/0||e<this.size:-1!==this.indexOf(e))},interpose:function(e){return $t(this,function(e,t){var n=en(e);return n.size=e.size&&2*e.size-1,n.__iterateUncached=function(n,r){var o=this,i=0;return e.__iterate(function(e,r){return(!i||!1!==n(t,i++,o))&&!1!==n(e,i++,o)},r),i},n.__iteratorUncached=function(n,r){var o,i=e.__iterator(M,r),a=0;return new U(function(){return(!o||a%2)&&(o=i.next()).done?o:a%2?q(n,a++,t):q(n,a++,o.value,o)})},n}(this,e))},interleave:function(){var e=[this].concat(S(arguments)),t=Gt(this.toSeq(),K.of,e),n=t.flatten(!0);return t.size&&(n.size=t.size*e.length),$t(this,n)},keySeq:function(){return ye(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(e,t){return $t(this,Vt(this,e,t,!1))},zip:function(){var e=[this].concat(S(arguments));return $t(this,Gt(this,Un,e))},zipWith:function(e){var t=S(arguments);return t[0]=this,$t(this,Gt(this,e,t))}}),o.prototype[h]=!0,o.prototype[d]=!0,jn(i,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=Pn.includes,i.prototype.contains=i.prototype.includes,jn(Y,r.prototype),jn(K,o.prototype),jn(G,i.prototype),jn(_e,r.prototype),jn(we,o.prototype),jn(xe,i.prototype),{Iterable:n,Seq:J,Collection:be,Map:Ue,OrderedMap:Tt,List:ft,Stack:En,Set:cn,OrderedSet:gn,Record:on,Range:ye,Repeat:ve,is:de,fromJS:pe}}()},function(e,t,n){var r=n(51);e.exports=function(e,t,n){return t in e?r(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";(function(e){n.d(t,"r",function(){return N}),n.d(t,"y",function(){return R}),n.d(t,"h",function(){return D}),n.d(t,"u",function(){return L}),n.d(t,"p",function(){return U}),n.d(t,"s",function(){return q}),n.d(t,"q",function(){return F}),n.d(t,"o",function(){return z}),n.d(t,"t",function(){return B}),n.d(t,"w",function(){return V}),n.d(t,"x",function(){return H}),n.d(t,"H",function(){return W}),n.d(t,"e",function(){return J}),n.d(t,"l",function(){return Y}),n.d(t,"n",function(){return K}),n.d(t,"g",function(){return G}),n.d(t,"C",function(){return $}),n.d(t,"I",function(){return ce}),n.d(t,"m",function(){return le}),n.d(t,"B",function(){return pe}),n.d(t,"a",function(){return fe}),n.d(t,"F",function(){return he}),n.d(t,"b",function(){return de}),n.d(t,"E",function(){return me}),n.d(t,"D",function(){return ve}),n.d(t,"i",function(){return ge}),n.d(t,"c",function(){return ye}),n.d(t,"f",function(){return be}),n.d(t,"k",function(){return _e}),n.d(t,"j",function(){return we}),n.d(t,"d",function(){return xe}),n.d(t,"G",function(){return Ee}),n.d(t,"v",function(){return Se}),n.d(t,"z",function(){return Ce}),n.d(t,"A",function(){return ke});var r=n(28),o=n.n(r),i=(n(13),n(90),n(16)),a=n.n(i),s=n(17),u=n.n(s),c=n(14),l=n.n(c),p=n(26),f=n.n(p),h=n(1),d=n.n(h),m=n(465),v=n(466),g=n.n(v),y=n(262),b=n.n(y),_=n(263),w=n.n(_),x=n(264),E=n.n(x),S=(n(467),n(89)),C=n.n(S),k=n(116),O=n(18),A=n.n(O),T=n(469),j=n.n(T),P=n(118),I="default",M=function(e){return d.a.Iterable.isIterable(e)};function N(e){try{var t=JSON.parse(e);if(t&&"object"===f()(t))return t}catch(e){}return!1}function R(e){return q(e)?M(e)?e.toJS():e:{}}function D(e){return M(e)?e:e instanceof A.a.File?e:q(e)?l()(e)?d.a.Seq(e).map(D).toList():d.a.OrderedMap(e).map(D):e}function L(e){return l()(e)?e:[e]}function U(e){return"function"==typeof e}function q(e){return!!e&&"object"===f()(e)}function F(e){return"function"==typeof e}function z(e){return l()(e)}var B=w.a;function V(e,t){return u()(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}function H(e,t){return u()(e).reduce(function(n,r){var o=t(e[r],r);return o&&"object"===f()(o)&&a()(n,o),n},{})}function W(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function J(e){var t=e.keySeq();return t.contains(I)?I:t.filter(function(e){return"2"===(e+"")[0]}).sort().first()}function Y(e,t){if(!d.a.Iterable.isIterable(e))return d.a.List();var n=e.getIn(l()(t)?t:[t]);return d.a.List.isList(n)?n:d.a.List()}function K(e){var t=document;if(!e)return"";if(e.textContent.length>5e3)return e.textContent;return function(e){for(var n,r,o,i,a,s=e.textContent,u=0,c=s[0],l=1,p=e.innerHTML="",f=0;r=n,n=f<7&&"\\"==n?1:l;){if(l=c,c=s[++u],i=p.length>1,!l||f>8&&"\n"==l||[/\S/.test(l),1,1,!/[$\w]/.test(l),("/"==n||"\n"==n)&&i,'"'==n&&i,"'"==n&&i,s[u-4]+r+n=="--\x3e",r+n=="*/"][f])for(p&&(e.appendChild(a=t.createElement("span")).setAttribute("style",["color: #555; font-weight: bold;","","","color: #555;",""][f?f<3?2:f>6?4:f>3?3:+/^(a(bstract|lias|nd|rguments|rray|s(m|sert)?|uto)|b(ase|egin|ool(ean)?|reak|yte)|c(ase|atch|har|hecked|lass|lone|ompl|onst|ontinue)|de(bugger|cimal|clare|f(ault|er)?|init|l(egate|ete)?)|do|double|e(cho|ls?if|lse(if)?|nd|nsure|num|vent|x(cept|ec|p(licit|ort)|te(nds|nsion|rn)))|f(allthrough|alse|inal(ly)?|ixed|loat|or(each)?|riend|rom|unc(tion)?)|global|goto|guard|i(f|mp(lements|licit|ort)|n(it|clude(_once)?|line|out|stanceof|t(erface|ernal)?)?|s)|l(ambda|et|ock|ong)|m(icrolight|odule|utable)|NaN|n(amespace|ative|ext|ew|il|ot|ull)|o(bject|perator|r|ut|verride)|p(ackage|arams|rivate|rotected|rotocol|ublic)|r(aise|e(adonly|do|f|gister|peat|quire(_once)?|scue|strict|try|turn))|s(byte|ealed|elf|hort|igned|izeof|tatic|tring|truct|ubscript|uper|ynchronized|witch)|t(emplate|hen|his|hrows?|ransient|rue|ry|ype(alias|def|id|name|of))|u(n(checked|def(ined)?|ion|less|signed|til)|se|sing)|v(ar|irtual|oid|olatile)|w(char_t|hen|here|hile|ith)|xor|yield)$/.test(p):0]),a.appendChild(t.createTextNode(p))),o=f&&f<7?f:o,p="",f=11;![1,/[\/{}[(\-+*=<>:;|\\.,?!&@~]/.test(l),/[\])]/.test(l),/[$\w]/.test(l),"/"==l&&o<2&&"<"!=n,'"'==l,"'"==l,l+c+s[u+1]+s[u+2]=="\x3c!--",l+c=="/*",l+c=="//","#"==l][--f];);p+=l}}(e)}function G(e){var t;if([/filename\*=[^']+'\w*'"([^"]+)";?/i,/filename\*=[^']+'\w*'([^;]+);?/i,/filename="([^;]*);?"/i,/filename=([^;]*);?/i].some(function(n){return null!==(t=n.exec(e))}),null!==t&&t.length>1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function $(e){return t=e.replace(/\.[^.\/]*$/,""),b()(g()(t));var t}var Z=function(e,t){if(e>t)return"Value must be less than Maximum"},X=function(e,t){if(e<t)return"Value must be greater than Minimum"},Q=function(e){if(!/^-?\d+(\.?\d+)?$/.test(e))return"Value must be a number"},ee=function(e){if(!/^-?\d+$/.test(e))return"Value must be an integer"},te=function(e){if(e&&!(e instanceof A.a.File))return"Value must be a file"},ne=function(e){if("true"!==e&&"false"!==e&&!0!==e&&!1!==e)return"Value must be a boolean"},re=function(e){if(e&&"string"!=typeof e)return"Value must be a string"},oe=function(e){if(isNaN(Date.parse(e)))return"Value must be a DateTime"},ie=function(e){if(e=e.toString().toLowerCase(),!/^[{(]?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[)}]?$/.test(e))return"Value must be a Guid"},ae=function(e,t){if(e.length>t)return"Value must be less than MaxLength"},se=function(e,t){if(e.length<t)return"Value must be greater than MinLength"},ue=function(e,t){if(!new RegExp(t).test(e))return"Value must follow pattern "+t},ce=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,o=void 0!==r&&r,i=n.bypassRequiredCheck,a=void 0!==i&&i,s=[],u=e.get("required"),c=Object(P.a)(e,{isOAS3:o});if(!c)return s;var p=c.get("maximum"),h=c.get("minimum"),m=c.get("type"),v=c.get("format"),g=c.get("maxLength"),y=c.get("minLength"),b=c.get("pattern");if(m&&(u||t)){var _="string"===m&&t,w="array"===m&&l()(t)&&t.length,x="array"===m&&d.a.List.isList(t)&&t.count(),E="array"===m&&"string"==typeof t&&t,S="file"===m&&t instanceof A.a.File,C="boolean"===m&&(t||!1===t),k="number"===m&&(t||0===t),O="integer"===m&&(t||0===t),T="object"===m&&"object"===f()(t)&&null!==t,j="object"===m&&"string"==typeof t&&t,I=[_,w,x,E,S,C,k,O,T,j],M=I.some(function(e){return!!e});if(u&&!M&&!a)return s.push("Required field is not provided"),s;if(b){var N=ue(t,b);N&&s.push(N)}if(g||0===g){var R=ae(t,g);R&&s.push(R)}if(y){var D=se(t,y);D&&s.push(D)}if(p||0===p){var L=Z(t,p);L&&s.push(L)}if(h||0===h){var U=X(t,h);U&&s.push(U)}if("string"===m){var q;if(!(q="date-time"===v?oe(t):"uuid"===v?ie(t):re(t)))return s;s.push(q)}else if("boolean"===m){var F=ne(t);if(!F)return s;s.push(F)}else if("number"===m){var z=Q(t);if(!z)return s;s.push(z)}else if("integer"===m){var B=ee(t);if(!B)return s;s.push(B)}else if("array"===m){var V;if(!x||!t.count())return s;V=c.getIn(["items","type"]),t.forEach(function(e,t){var n;"number"===V?n=Q(e):"integer"===V?n=ee(e):"string"===V&&(n=re(e)),n&&s.push({index:t,error:n})})}else if("file"===m){var H=te(t);if(!H)return s;s.push(H)}}return s},le=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(/xml/.test(t)){if(!e.xml||!e.xml.name){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'<?xml version="1.0" encoding="UTF-8"?>\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return Object(k.memoizedCreateXMLExample)(e,n)}var i=Object(k.memoizedSampleFromSchema)(e,n);return"object"===f()(i)?o()(i,null,2):i},pe=function(){var e={},t=A.a.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)n.hasOwnProperty(r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},fe=function(t){return(t instanceof e?t:new e(t.toString(),"utf-8")).toString("base64")},he={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},de=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},me=function(e,t,n){return!!E()(n,function(n){return C()(e[n],t[n])})};function ve(e){return"string"!=typeof e||""===e?"":Object(m.sanitizeUrl)(e)}function ge(e){if(!d.a.OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=e.find(function(e,t){return t.startsWith("2")&&u()(e.get("content")||{}).length>0}),n=e.get("default")||d.a.OrderedMap(),r=(n.get("content")||d.a.OrderedMap()).keySeq().toJS().length?n:null;return t||r}var ye=function(e){return"string"==typeof e||e instanceof String?e.trim().replace(/\s/g,"%20"):""},be=function(e){return j()(ye(e).replace(/%20/g,"_"))},_e=function(e){return e.filter(function(e,t){return/^x-/.test(t)})},we=function(e){return e.filter(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)})};function xe(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==f()(e)||l()(e)||null===e||!t)return e;var r=a()({},e);return u()(r).forEach(function(e){e===t&&n(r[e],e)?delete r[e]:r[e]=xe(r[e],t,n)}),r}function Ee(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===f()(e)&&null!==e)try{return o()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function Se(e){return"number"==typeof e?e.toString():e}function Ce(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,o=t.allowHashes,i=void 0===o||o;if(!d.a.Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var a=e.get("name"),s=e.get("in"),u=[];return e&&e.hashCode&&s&&a&&i&&u.push("".concat(s,".").concat(a,".hash-").concat(e.hashCode())),s&&a&&u.push("".concat(s,".").concat(a)),u.push(a),r?u:u[0]||""}function ke(e,t){return Ce(e,{returnAll:!0}).map(function(e){return t[e]}).filter(function(e){return void 0!==e})[0]}}).call(this,n(61).Buffer)},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(51);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),r(e,o.key,o)}}e.exports=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}},function(e,t,n){var r=n(26),o=n(9);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t}},function(e,t,n){var r=n(791),o=n(413);function i(t){return e.exports=i=o?r:function(e){return e.__proto__||r(e)},i(t)}e.exports=i},function(e,t,n){var r=n(414),o=n(799);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=r(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){e.exports=n(957)()},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){return e===t}function i(e){var t=arguments.length<=1||void 0===arguments[1]?o:arguments[1],n=null,r=null;return function(){for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return null!==n&&n.length===i.length&&i.every(function(e,r){return t(e,n[r])})||(r=e.apply(void 0,i)),n=i,r}}function a(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every(function(e){return"function"==typeof e})){var n=t.map(function(e){return typeof e}).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return function(){for(var t=arguments.length,o=Array(t),i=0;i<t;i++)o[i]=arguments[i];var s=0,u=o.pop(),c=a(o),l=e.apply(void 0,[function(){return s++,u.apply(void 0,arguments)}].concat(n)),p=function(e,t){for(var n=arguments.length,o=Array(n>2?n-2:0),i=2;i<n;i++)o[i-2]=arguments[i];var a=c.map(function(n){return n.apply(void 0,[e,t].concat(o))});return l.apply(void 0,r(a))};return p.resultFunc=u,p.recomputations=function(){return s},p.resetRecomputations=function(){return s=0},p}}t.__esModule=!0,t.defaultMemoize=i,t.createSelectorCreator=s,t.createStructuredSelector=function(e){var t=arguments.length<=1||void 0===arguments[1]?u:arguments[1];if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map(function(t){return e[t]}),function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce(function(e,t,r){return e[n[r]]=t,e},{})})};var u=t.createSelector=s(i)},function(e,t,n){var r=n(739),o=n(740),i=n(747);e.exports=function(e){return r(e)||o(e)||i()}},function(e,t,n){var r=n(586),o=n(587),i=n(590);e.exports=function(e,t){return r(e)||o(e,t)||i()}},function(e,t,n){e.exports=n(560)},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,i,a,s,u],p=0;(c=new Error(t.replace(/%s/g,function(){return l[p++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){e.exports=n(564)},function(e,t,n){e.exports=n(542)},function(e,t){e.exports=function(){var e={location:{},history:{},open:function(){},close:function(){},File:function(){}};if("undefined"==typeof window)return e;try{e=window;for(var t=0,n=["File","Blob","FormData"];t<n.length;t++){var r=n[t];r in window&&(e[r]=window[r])}}catch(e){console.error(e)}return e}()},function(e,t,n){"use strict";var r=n(1),o="<<anonymous>>",i={listOf:function(e){return c(e,"List",r.List.isList)},mapOf:function(e,t){return l(e,t,"Map",r.Map.isMap)},orderedMapOf:function(e,t){return l(e,t,"OrderedMap",r.OrderedMap.isOrderedMap)},setOf:function(e){return c(e,"Set",r.Set.isSet)},orderedSetOf:function(e){return c(e,"OrderedSet",r.OrderedSet.isOrderedSet)},stackOf:function(e){return c(e,"Stack",r.Stack.isStack)},iterableOf:function(e){return c(e,"Iterable",r.Iterable.isIterable)},recordOf:function(e){return s(function(t,n,o,i,s){for(var u=arguments.length,c=Array(u>5?u-5:0),l=5;l<u;l++)c[l-5]=arguments[l];var p=t[n];if(!(p instanceof r.Record)){var f=a(p),h=i;return new Error("Invalid "+h+" `"+s+"` of type `"+f+"` supplied to `"+o+"`, expected an Immutable.js Record.")}for(var d in e){var m=e[d];if(m){var v=p.toObject(),g=m.apply(void 0,[v,d,o,i,s+"."+d].concat(c));if(g)return g}}})},shape:f,contains:f,mapContains:function(e){return p(e,"Map",r.Map.isMap)},list:u("List",r.List.isList),map:u("Map",r.Map.isMap),orderedMap:u("OrderedMap",r.OrderedMap.isOrderedMap),set:u("Set",r.Set.isSet),orderedSet:u("OrderedSet",r.OrderedSet.isOrderedSet),stack:u("Stack",r.Stack.isStack),seq:u("Seq",r.Seq.isSeq),record:u("Record",function(e){return e instanceof r.Record}),iterable:u("Iterable",r.Iterable.isIterable)};function a(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":e instanceof r.Iterable?"Immutable."+e.toSource().split(" ")[0]:t}function s(e){function t(t,n,r,i,a,s){for(var u=arguments.length,c=Array(u>6?u-6:0),l=6;l<u;l++)c[l-6]=arguments[l];return s=s||r,i=i||o,null!=n[r]?e.apply(void 0,[n,r,i,a,s].concat(c)):t?new Error("Required "+a+" `"+s+"` was not specified in `"+i+"`."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function u(e,t){return s(function(n,r,o,i,s){var u=n[r];if(!t(u)){var c=a(u);return new Error("Invalid "+i+" `"+s+"` of type `"+c+"` supplied to `"+o+"`, expected `"+e+"`.")}return null})}function c(e,t,n){return s(function(r,o,i,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=r[o];if(!n(f)){var h=s,d=a(f);return new Error("Invalid "+h+" `"+u+"` of type `"+d+"` supplied to `"+i+"`, expected an Immutable.js "+t+".")}if("function"!=typeof e)return new Error("Invalid typeChecker supplied to `"+i+"` for propType `"+u+"`, expected a function.");for(var m=f.toArray(),v=0,g=m.length;v<g;v++){var y=e.apply(void 0,[m,v,i,s,u+"["+v+"]"].concat(l));if(y instanceof Error)return y}})}function l(e,t,n,r){return s(function(){for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return c(e,n,r).apply(void 0,i)||t&&(u=t,s(function(e,t,n,r,o){for(var i=arguments.length,a=Array(i>5?i-5:0),s=5;s<i;s++)a[s-5]=arguments[s];var c=e[t];if("function"!=typeof u)return new Error("Invalid keysTypeChecker (optional second argument) supplied to `"+n+"` for propType `"+o+"`, expected a function.");for(var l=c.keySeq().toArray(),p=0,f=l.length;p<f;p++){var h=u.apply(void 0,[l,p,n,r,o+" -> key("+l[p]+")"].concat(a));if(h instanceof Error)return h}})).apply(void 0,i);var u})}function p(e){var t=void 0===arguments[1]?"Iterable":arguments[1],n=void 0===arguments[2]?r.Iterable.isIterable:arguments[2];return s(function(r,o,i,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=r[o];if(!n(f)){var h=a(f);return new Error("Invalid "+s+" `"+u+"` of type `"+h+"` supplied to `"+i+"`, expected an Immutable.js "+t+".")}var d=f.toObject();for(var m in e){var v=e[m];if(v){var g=v.apply(void 0,[d,m,i,s,u+"."+m].concat(l));if(g)return g}}})}function f(e){return p(e)}e.exports=i},function(e,t,n){var r=n(16);function o(){return e.exports=o=r||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}e.exports=o},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t){var n=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(54);e.exports=r},function(e,t,n){"use strict";n.r(t),n.d(t,"isOAS3",function(){return s}),n.d(t,"isSwagger2",function(){return u}),n.d(t,"OAS3ComponentWrapFactory",function(){return c});var r=n(20),o=n.n(r),i=n(0),a=n.n(i);function s(e){var t=e.get("openapi");return"string"==typeof t&&(t.startsWith("3.0.")&&t.length>4)}function u(e){var t=e.get("swagger");return"string"==typeof t&&t.startsWith("2.0")}function c(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?s(n.specSelectors.specJson())?a.a.createElement(e,o()({},r,n,{Ori:t})):a.a.createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},function(e,t,n){"use strict";
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(function(){try{return require("esprima")}catch(e){}}()):"function"==typeof define&&define.amd?define(["esprima"],t):"object"==typeof exports?exports.SwaggerUIBundle=t(function(){try{return require("esprima")}catch(e){}}()):e.SwaggerUIBundle=t(e.esprima)}(window,function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist",n(n.s=488)}([function(e,t,n){"use strict";e.exports=n(104)},function(e,t,n){e.exports=function(){"use strict";var e=Array.prototype.slice;function t(e,t){t&&(e.prototype=Object.create(t.prototype)),e.prototype.constructor=e}function n(e){return a(e)?e:J(e)}function r(e){return s(e)?e:K(e)}function o(e){return u(e)?e:Y(e)}function i(e){return a(e)&&!c(e)?e:$(e)}function a(e){return!(!e||!e[p])}function s(e){return!(!e||!e[f])}function u(e){return!(!e||!e[h])}function c(e){return s(e)||u(e)}function l(e){return!(!e||!e[d])}t(r,n),t(o,n),t(i,n),n.isIterable=a,n.isKeyed=s,n.isIndexed=u,n.isAssociative=c,n.isOrdered=l,n.Keyed=r,n.Indexed=o,n.Set=i;var p="@@__IMMUTABLE_ITERABLE__@@",f="@@__IMMUTABLE_KEYED__@@",h="@@__IMMUTABLE_INDEXED__@@",d="@@__IMMUTABLE_ORDERED__@@",m=5,v=1<<m,g=v-1,y={},b={value:!1},_={value:!1};function w(e){return e.value=!1,e}function x(e){e&&(e.value=!0)}function E(){}function S(e,t){t=t||0;for(var n=Math.max(0,e.length-t),r=new Array(n),o=0;o<n;o++)r[o]=e[o+t];return r}function C(e){return void 0===e.size&&(e.size=e.__iterate(O)),e.size}function k(e,t){if("number"!=typeof t){var n=t>>>0;if(""+n!==t||4294967295===n)return NaN;t=n}return t<0?C(e)+t:t}function O(){return!0}function A(e,t,n){return(0===e||void 0!==n&&e<=-n)&&(void 0===t||void 0!==n&&t>=n)}function T(e,t){return P(e,t,0)}function j(e,t){return P(e,t,t)}function P(e,t,n){return void 0===e?n:e<0?Math.max(0,t+e):void 0===t?e:Math.min(t,e)}var I=0,M=1,N=2,R="function"==typeof Symbol&&Symbol.iterator,D="@@iterator",L=R||D;function U(e){this.next=e}function q(e,t,n,r){var o=0===e?t:1===e?n:[t,n];return r?r.value=o:r={value:o,done:!1},r}function F(){return{value:void 0,done:!0}}function B(e){return!!H(e)}function z(e){return e&&"function"==typeof e.next}function V(e){var t=H(e);return t&&t.call(e)}function H(e){var t=e&&(R&&e[R]||e[D]);if("function"==typeof t)return t}function W(e){return e&&"number"==typeof e.length}function J(e){return null==e?ie():a(e)?e.toSeq():function(e){var t=ue(e)||"object"==typeof e&&new te(e);if(!t)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+e);return t}(e)}function K(e){return null==e?ie().toKeyedSeq():a(e)?s(e)?e.toSeq():e.fromEntrySeq():ae(e)}function Y(e){return null==e?ie():a(e)?s(e)?e.entrySeq():e.toIndexedSeq():se(e)}function $(e){return(null==e?ie():a(e)?s(e)?e.entrySeq():e:se(e)).toSetSeq()}U.prototype.toString=function(){return"[Iterator]"},U.KEYS=I,U.VALUES=M,U.ENTRIES=N,U.prototype.inspect=U.prototype.toSource=function(){return this.toString()},U.prototype[L]=function(){return this},t(J,n),J.of=function(){return J(arguments)},J.prototype.toSeq=function(){return this},J.prototype.toString=function(){return this.__toString("Seq {","}")},J.prototype.cacheResult=function(){return!this._cache&&this.__iterateUncached&&(this._cache=this.entrySeq().toArray(),this.size=this._cache.length),this},J.prototype.__iterate=function(e,t){return ce(this,e,t,!0)},J.prototype.__iterator=function(e,t){return le(this,e,t,!0)},t(K,J),K.prototype.toKeyedSeq=function(){return this},t(Y,J),Y.of=function(){return Y(arguments)},Y.prototype.toIndexedSeq=function(){return this},Y.prototype.toString=function(){return this.__toString("Seq [","]")},Y.prototype.__iterate=function(e,t){return ce(this,e,t,!1)},Y.prototype.__iterator=function(e,t){return le(this,e,t,!1)},t($,J),$.of=function(){return $(arguments)},$.prototype.toSetSeq=function(){return this},J.isSeq=oe,J.Keyed=K,J.Set=$,J.Indexed=Y;var G,Z,X,Q="@@__IMMUTABLE_SEQ__@@";function ee(e){this._array=e,this.size=e.length}function te(e){var t=Object.keys(e);this._object=e,this._keys=t,this.size=t.length}function ne(e){this._iterable=e,this.size=e.length||e.size}function re(e){this._iterator=e,this._iteratorCache=[]}function oe(e){return!(!e||!e[Q])}function ie(){return G||(G=new ee([]))}function ae(e){var t=Array.isArray(e)?new ee(e).fromEntrySeq():z(e)?new re(e).fromEntrySeq():B(e)?new ne(e).fromEntrySeq():"object"==typeof e?new te(e):void 0;if(!t)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+e);return t}function se(e){var t=ue(e);if(!t)throw new TypeError("Expected Array or iterable object of values: "+e);return t}function ue(e){return W(e)?new ee(e):z(e)?new re(e):B(e)?new ne(e):void 0}function ce(e,t,n,r){var o=e._cache;if(o){for(var i=o.length-1,a=0;a<=i;a++){var s=o[n?i-a:a];if(!1===t(s[1],r?s[0]:a,e))return a+1}return a}return e.__iterateUncached(t,n)}function le(e,t,n,r){var o=e._cache;if(o){var i=o.length-1,a=0;return new U(function(){var e=o[n?i-a:a];return a++>i?{value:void 0,done:!0}:q(t,r?e[0]:a-1,e[1])})}return e.__iteratorUncached(t,n)}function pe(e,t){return t?function e(t,n,r,o){return Array.isArray(n)?t.call(o,r,Y(n).map(function(r,o){return e(t,r,o,n)})):he(n)?t.call(o,r,K(n).map(function(r,o){return e(t,r,o,n)})):n}(t,e,"",{"":e}):fe(e)}function fe(e){return Array.isArray(e)?Y(e).map(fe).toList():he(e)?K(e).map(fe).toMap():e}function he(e){return e&&(e.constructor===Object||void 0===e.constructor)}function de(e,t){if(e===t||e!=e&&t!=t)return!0;if(!e||!t)return!1;if("function"==typeof e.valueOf&&"function"==typeof t.valueOf){if((e=e.valueOf())===(t=t.valueOf())||e!=e&&t!=t)return!0;if(!e||!t)return!1}return!("function"!=typeof e.equals||"function"!=typeof t.equals||!e.equals(t))}function me(e,t){if(e===t)return!0;if(!a(t)||void 0!==e.size&&void 0!==t.size&&e.size!==t.size||void 0!==e.__hash&&void 0!==t.__hash&&e.__hash!==t.__hash||s(e)!==s(t)||u(e)!==u(t)||l(e)!==l(t))return!1;if(0===e.size&&0===t.size)return!0;var n=!c(e);if(l(e)){var r=e.entries();return t.every(function(e,t){var o=r.next().value;return o&&de(o[1],e)&&(n||de(o[0],t))})&&r.next().done}var o=!1;if(void 0===e.size)if(void 0===t.size)"function"==typeof e.cacheResult&&e.cacheResult();else{o=!0;var i=e;e=t,t=i}var p=!0,f=t.__iterate(function(t,r){if(n?!e.has(t):o?!de(t,e.get(r,y)):!de(e.get(r,y),t))return p=!1,!1});return p&&e.size===f}function ve(e,t){if(!(this instanceof ve))return new ve(e,t);if(this._value=e,this.size=void 0===t?1/0:Math.max(0,t),0===this.size){if(Z)return Z;Z=this}}function ge(e,t){if(!e)throw new Error(t)}function ye(e,t,n){if(!(this instanceof ye))return new ye(e,t,n);if(ge(0!==n,"Cannot step a Range by 0"),e=e||0,void 0===t&&(t=1/0),n=void 0===n?1:Math.abs(n),t<e&&(n=-n),this._start=e,this._end=t,this._step=n,this.size=Math.max(0,Math.ceil((t-e)/n-1)+1),0===this.size){if(X)return X;X=this}}function be(){throw TypeError("Abstract")}function _e(){}function we(){}function xe(){}J.prototype[Q]=!0,t(ee,Y),ee.prototype.get=function(e,t){return this.has(e)?this._array[k(this,e)]:t},ee.prototype.__iterate=function(e,t){for(var n=this._array,r=n.length-1,o=0;o<=r;o++)if(!1===e(n[t?r-o:o],o,this))return o+1;return o},ee.prototype.__iterator=function(e,t){var n=this._array,r=n.length-1,o=0;return new U(function(){return o>r?{value:void 0,done:!0}:q(e,o,n[t?r-o++:o++])})},t(te,K),te.prototype.get=function(e,t){return void 0===t||this.has(e)?this._object[e]:t},te.prototype.has=function(e){return this._object.hasOwnProperty(e)},te.prototype.__iterate=function(e,t){for(var n=this._object,r=this._keys,o=r.length-1,i=0;i<=o;i++){var a=r[t?o-i:i];if(!1===e(n[a],a,this))return i+1}return i},te.prototype.__iterator=function(e,t){var n=this._object,r=this._keys,o=r.length-1,i=0;return new U(function(){var a=r[t?o-i:i];return i++>o?{value:void 0,done:!0}:q(e,a,n[a])})},te.prototype[d]=!0,t(ne,Y),ne.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);var n=V(this._iterable),r=0;if(z(n))for(var o;!(o=n.next()).done&&!1!==e(o.value,r++,this););return r},ne.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=V(this._iterable);if(!z(n))return new U(F);var r=0;return new U(function(){var t=n.next();return t.done?t:q(e,r++,t.value)})},t(re,Y),re.prototype.__iterateUncached=function(e,t){if(t)return this.cacheResult().__iterate(e,t);for(var n,r=this._iterator,o=this._iteratorCache,i=0;i<o.length;)if(!1===e(o[i],i++,this))return i;for(;!(n=r.next()).done;){var a=n.value;if(o[i]=a,!1===e(a,i++,this))break}return i},re.prototype.__iteratorUncached=function(e,t){if(t)return this.cacheResult().__iterator(e,t);var n=this._iterator,r=this._iteratorCache,o=0;return new U(function(){if(o>=r.length){var t=n.next();if(t.done)return t;r[o]=t.value}return q(e,o,r[o++])})},t(ve,Y),ve.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},ve.prototype.get=function(e,t){return this.has(e)?this._value:t},ve.prototype.includes=function(e){return de(this._value,e)},ve.prototype.slice=function(e,t){var n=this.size;return A(e,t,n)?this:new ve(this._value,j(t,n)-T(e,n))},ve.prototype.reverse=function(){return this},ve.prototype.indexOf=function(e){return de(this._value,e)?0:-1},ve.prototype.lastIndexOf=function(e){return de(this._value,e)?this.size:-1},ve.prototype.__iterate=function(e,t){for(var n=0;n<this.size;n++)if(!1===e(this._value,n,this))return n+1;return n},ve.prototype.__iterator=function(e,t){var n=this,r=0;return new U(function(){return r<n.size?q(e,r++,n._value):{value:void 0,done:!0}})},ve.prototype.equals=function(e){return e instanceof ve?de(this._value,e._value):me(e)},t(ye,Y),ye.prototype.toString=function(){return 0===this.size?"Range []":"Range [ "+this._start+"..."+this._end+(1!==this._step?" by "+this._step:"")+" ]"},ye.prototype.get=function(e,t){return this.has(e)?this._start+k(this,e)*this._step:t},ye.prototype.includes=function(e){var t=(e-this._start)/this._step;return t>=0&&t<this.size&&t===Math.floor(t)},ye.prototype.slice=function(e,t){return A(e,t,this.size)?this:(e=T(e,this.size),(t=j(t,this.size))<=e?new ye(0,0):new ye(this.get(e,this._end),this.get(t,this._end),this._step))},ye.prototype.indexOf=function(e){var t=e-this._start;if(t%this._step==0){var n=t/this._step;if(n>=0&&n<this.size)return n}return-1},ye.prototype.lastIndexOf=function(e){return this.indexOf(e)},ye.prototype.__iterate=function(e,t){for(var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;i<=n;i++){if(!1===e(o,i,this))return i+1;o+=t?-r:r}return i},ye.prototype.__iterator=function(e,t){var n=this.size-1,r=this._step,o=t?this._start+n*r:this._start,i=0;return new U(function(){var a=o;return o+=t?-r:r,i>n?{value:void 0,done:!0}:q(e,i++,a)})},ye.prototype.equals=function(e){return e instanceof ye?this._start===e._start&&this._end===e._end&&this._step===e._step:me(this,e)},t(be,n),t(_e,be),t(we,be),t(xe,be),be.Keyed=_e,be.Indexed=we,be.Set=xe;var Ee="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(e,t){var n=65535&(e|=0),r=65535&(t|=0);return n*r+((e>>>16)*r+n*(t>>>16)<<16>>>0)|0};function Se(e){return e>>>1&1073741824|3221225471&e}function Ce(e){if(!1===e||null==e)return 0;if("function"==typeof e.valueOf&&(!1===(e=e.valueOf())||null==e))return 0;if(!0===e)return 1;var t=typeof e;if("number"===t){if(e!=e||e===1/0)return 0;var n=0|e;for(n!==e&&(n^=4294967295*e);e>4294967295;)n^=e/=4294967295;return Se(n)}if("string"===t)return e.length>Me?function(e){var t=De[e];return void 0===t&&(t=ke(e),Re===Ne&&(Re=0,De={}),Re++,De[e]=t),t}(e):ke(e);if("function"==typeof e.hashCode)return e.hashCode();if("object"===t)return function(e){var t;if(je&&void 0!==(t=Oe.get(e)))return t;if(void 0!==(t=e[Ie]))return t;if(!Te){if(void 0!==(t=e.propertyIsEnumerable&&e.propertyIsEnumerable[Ie]))return t;if(void 0!==(t=function(e){if(e&&e.nodeType>0)switch(e.nodeType){case 1:return e.uniqueID;case 9:return e.documentElement&&e.documentElement.uniqueID}}(e)))return t}if(t=++Pe,1073741824&Pe&&(Pe=0),je)Oe.set(e,t);else{if(void 0!==Ae&&!1===Ae(e))throw new Error("Non-extensible objects are not allowed as keys.");if(Te)Object.defineProperty(e,Ie,{enumerable:!1,configurable:!1,writable:!1,value:t});else if(void 0!==e.propertyIsEnumerable&&e.propertyIsEnumerable===e.constructor.prototype.propertyIsEnumerable)e.propertyIsEnumerable=function(){return this.constructor.prototype.propertyIsEnumerable.apply(this,arguments)},e.propertyIsEnumerable[Ie]=t;else{if(void 0===e.nodeType)throw new Error("Unable to set a non-enumerable property on object.");e[Ie]=t}}return t}(e);if("function"==typeof e.toString)return ke(e.toString());throw new Error("Value type "+t+" cannot be hashed.")}function ke(e){for(var t=0,n=0;n<e.length;n++)t=31*t+e.charCodeAt(n)|0;return Se(t)}var Oe,Ae=Object.isExtensible,Te=function(){try{return Object.defineProperty({},"@",{}),!0}catch(e){return!1}}(),je="function"==typeof WeakMap;je&&(Oe=new WeakMap);var Pe=0,Ie="__immutablehash__";"function"==typeof Symbol&&(Ie=Symbol(Ie));var Me=16,Ne=255,Re=0,De={};function Le(e){ge(e!==1/0,"Cannot perform this action with an infinite size.")}function Ue(e){return null==e?Xe():qe(e)&&!l(e)?e:Xe().withMutations(function(t){var n=r(e);Le(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function qe(e){return!(!e||!e[Be])}t(Ue,_e),Ue.of=function(){var t=e.call(arguments,0);return Xe().withMutations(function(e){for(var n=0;n<t.length;n+=2){if(n+1>=t.length)throw new Error("Missing value for key: "+t[n]);e.set(t[n],t[n+1])}})},Ue.prototype.toString=function(){return this.__toString("Map {","}")},Ue.prototype.get=function(e,t){return this._root?this._root.get(0,void 0,e,t):t},Ue.prototype.set=function(e,t){return Qe(this,e,t)},Ue.prototype.setIn=function(e,t){return this.updateIn(e,y,function(){return t})},Ue.prototype.remove=function(e){return Qe(this,e,y)},Ue.prototype.deleteIn=function(e){return this.updateIn(e,function(){return y})},Ue.prototype.update=function(e,t,n){return 1===arguments.length?e(this):this.updateIn([e],t,n)},Ue.prototype.updateIn=function(e,t,n){n||(n=t,t=void 0);var r=function e(t,n,r,o){var i=t===y,a=n.next();if(a.done){var s=i?r:t,u=o(s);return u===s?t:u}ge(i||t&&t.set,"invalid keyPath");var c=a.value,l=i?y:t.get(c,y),p=e(l,n,r,o);return p===l?t:p===y?t.remove(c):(i?Xe():t).set(c,p)}(this,rn(e),t,n);return r===y?void 0:r},Ue.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Xe()},Ue.prototype.merge=function(){return rt(this,void 0,arguments)},Ue.prototype.mergeWith=function(t){var n=e.call(arguments,1);return rt(this,t,n)},Ue.prototype.mergeIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Xe(),function(e){return"function"==typeof e.merge?e.merge.apply(e,n):n[n.length-1]})},Ue.prototype.mergeDeep=function(){return rt(this,ot,arguments)},Ue.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return rt(this,it(t),n)},Ue.prototype.mergeDeepIn=function(t){var n=e.call(arguments,1);return this.updateIn(t,Xe(),function(e){return"function"==typeof e.mergeDeep?e.mergeDeep.apply(e,n):n[n.length-1]})},Ue.prototype.sort=function(e){return Tt(Jt(this,e))},Ue.prototype.sortBy=function(e,t){return Tt(Jt(this,t,e))},Ue.prototype.withMutations=function(e){var t=this.asMutable();return e(t),t.wasAltered()?t.__ensureOwner(this.__ownerID):this},Ue.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new E)},Ue.prototype.asImmutable=function(){return this.__ensureOwner()},Ue.prototype.wasAltered=function(){return this.__altered},Ue.prototype.__iterator=function(e,t){return new Ye(this,e,t)},Ue.prototype.__iterate=function(e,t){var n=this,r=0;return this._root&&this._root.iterate(function(t){return r++,e(t[1],t[0],n)},t),r},Ue.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?Ze(this.size,this._root,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},Ue.isMap=qe;var Fe,Be="@@__IMMUTABLE_MAP__@@",ze=Ue.prototype;function Ve(e,t){this.ownerID=e,this.entries=t}function He(e,t,n){this.ownerID=e,this.bitmap=t,this.nodes=n}function We(e,t,n){this.ownerID=e,this.count=t,this.nodes=n}function Je(e,t,n){this.ownerID=e,this.keyHash=t,this.entries=n}function Ke(e,t,n){this.ownerID=e,this.keyHash=t,this.entry=n}function Ye(e,t,n){this._type=t,this._reverse=n,this._stack=e._root&&Ge(e._root)}function $e(e,t){return q(e,t[0],t[1])}function Ge(e,t){return{node:e,index:0,__prev:t}}function Ze(e,t,n,r){var o=Object.create(ze);return o.size=e,o._root=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Xe(){return Fe||(Fe=Ze(0))}function Qe(e,t,n){var r,o;if(e._root){var i=w(b),a=w(_);if(r=et(e._root,e.__ownerID,0,void 0,t,n,i,a),!a.value)return e;o=e.size+(i.value?n===y?-1:1:0)}else{if(n===y)return e;o=1,r=new Ve(e.__ownerID,[[t,n]])}return e.__ownerID?(e.size=o,e._root=r,e.__hash=void 0,e.__altered=!0,e):r?Ze(o,r):Xe()}function et(e,t,n,r,o,i,a,s){return e?e.update(t,n,r,o,i,a,s):i===y?e:(x(s),x(a),new Ke(t,r,[o,i]))}function tt(e){return e.constructor===Ke||e.constructor===Je}function nt(e,t,n,r,o){if(e.keyHash===r)return new Je(t,r,[e.entry,o]);var i,a=(0===n?e.keyHash:e.keyHash>>>n)&g,s=(0===n?r:r>>>n)&g;return new He(t,1<<a|1<<s,a===s?[nt(e,t,n+m,r,o)]:(i=new Ke(t,r,o),a<s?[e,i]:[i,e]))}function rt(e,t,n){for(var o=[],i=0;i<n.length;i++){var s=n[i],u=r(s);a(s)||(u=u.map(function(e){return pe(e)})),o.push(u)}return at(e,t,o)}function ot(e,t,n){return e&&e.mergeDeep&&a(t)?e.mergeDeep(t):de(e,t)?e:t}function it(e){return function(t,n,r){if(t&&t.mergeDeepWith&&a(n))return t.mergeDeepWith(e,n);var o=e(t,n,r);return de(t,o)?t:o}}function at(e,t,n){return 0===(n=n.filter(function(e){return 0!==e.size})).length?e:0!==e.size||e.__ownerID||1!==n.length?e.withMutations(function(e){for(var r=t?function(n,r){e.update(r,y,function(e){return e===y?n:t(e,n,r)})}:function(t,n){e.set(n,t)},o=0;o<n.length;o++)n[o].forEach(r)}):e.constructor(n[0])}function st(e){return e=(e=(858993459&(e-=e>>1&1431655765))+(e>>2&858993459))+(e>>4)&252645135,e+=e>>8,127&(e+=e>>16)}function ut(e,t,n,r){var o=r?e:S(e);return o[t]=n,o}ze[Be]=!0,ze.delete=ze.remove,ze.removeIn=ze.deleteIn,Ve.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(de(n,o[i][0]))return o[i][1];return r},Ve.prototype.update=function(e,t,n,r,o,i,a){for(var s=o===y,u=this.entries,c=0,l=u.length;c<l&&!de(r,u[c][0]);c++);var p=c<l;if(p?u[c][1]===o:s)return this;if(x(a),(s||!p)&&x(i),!s||1!==u.length){if(!p&&!s&&u.length>=ct)return function(e,t,n,r){e||(e=new E);for(var o=new Ke(e,Ce(n),[n,r]),i=0;i<t.length;i++){var a=t[i];o=o.update(e,0,void 0,a[0],a[1])}return o}(e,u,r,o);var f=e&&e===this.ownerID,h=f?u:S(u);return p?s?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),f?(this.entries=h,this):new Ve(e,h)}},He.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=1<<((0===e?t:t>>>e)&g),i=this.bitmap;return 0==(i&o)?r:this.nodes[st(i&o-1)].get(e+m,t,n,r)},He.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=(0===t?n:n>>>t)&g,u=1<<s,c=this.bitmap,l=0!=(c&u);if(!l&&o===y)return this;var p=st(c&u-1),f=this.nodes,h=l?f[p]:void 0,d=et(h,e,t+m,n,r,o,i,a);if(d===h)return this;if(!l&&d&&f.length>=lt)return function(e,t,n,r,o){for(var i=0,a=new Array(v),s=0;0!==n;s++,n>>>=1)a[s]=1&n?t[i++]:void 0;return a[r]=o,new We(e,i+1,a)}(e,f,c,s,d);if(l&&!d&&2===f.length&&tt(f[1^p]))return f[1^p];if(l&&d&&1===f.length&&tt(d))return d;var b=e&&e===this.ownerID,_=l?d?c:c^u:c|u,w=l?d?ut(f,p,d,b):function(e,t,n){var r=e.length-1;if(n&&t===r)return e.pop(),e;for(var o=new Array(r),i=0,a=0;a<r;a++)a===t&&(i=1),o[a]=e[a+i];return o}(f,p,b):function(e,t,n,r){var o=e.length+1;if(r&&t+1===o)return e[t]=n,e;for(var i=new Array(o),a=0,s=0;s<o;s++)s===t?(i[s]=n,a=-1):i[s]=e[s+a];return i}(f,p,d,b);return b?(this.bitmap=_,this.nodes=w,this):new He(e,_,w)},We.prototype.get=function(e,t,n,r){void 0===t&&(t=Ce(n));var o=(0===e?t:t>>>e)&g,i=this.nodes[o];return i?i.get(e+m,t,n,r):r},We.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=(0===t?n:n>>>t)&g,u=o===y,c=this.nodes,l=c[s];if(u&&!l)return this;var p=et(l,e,t+m,n,r,o,i,a);if(p===l)return this;var f=this.count;if(l){if(!p&&--f<pt)return function(e,t,n,r){for(var o=0,i=0,a=new Array(n),s=0,u=1,c=t.length;s<c;s++,u<<=1){var l=t[s];void 0!==l&&s!==r&&(o|=u,a[i++]=l)}return new He(e,o,a)}(e,c,f,s)}else f++;var h=e&&e===this.ownerID,d=ut(c,s,p,h);return h?(this.count=f,this.nodes=d,this):new We(e,f,d)},Je.prototype.get=function(e,t,n,r){for(var o=this.entries,i=0,a=o.length;i<a;i++)if(de(n,o[i][0]))return o[i][1];return r},Je.prototype.update=function(e,t,n,r,o,i,a){void 0===n&&(n=Ce(r));var s=o===y;if(n!==this.keyHash)return s?this:(x(a),x(i),nt(this,e,t,n,[r,o]));for(var u=this.entries,c=0,l=u.length;c<l&&!de(r,u[c][0]);c++);var p=c<l;if(p?u[c][1]===o:s)return this;if(x(a),(s||!p)&&x(i),s&&2===l)return new Ke(e,this.keyHash,u[1^c]);var f=e&&e===this.ownerID,h=f?u:S(u);return p?s?c===l-1?h.pop():h[c]=h.pop():h[c]=[r,o]:h.push([r,o]),f?(this.entries=h,this):new Je(e,this.keyHash,h)},Ke.prototype.get=function(e,t,n,r){return de(n,this.entry[0])?this.entry[1]:r},Ke.prototype.update=function(e,t,n,r,o,i,a){var s=o===y,u=de(r,this.entry[0]);return(u?o===this.entry[1]:s)?this:(x(a),s?void x(i):u?e&&e===this.ownerID?(this.entry[1]=o,this):new Ke(e,this.keyHash,[r,o]):(x(i),nt(this,e,t,Ce(r),[r,o])))},Ve.prototype.iterate=Je.prototype.iterate=function(e,t){for(var n=this.entries,r=0,o=n.length-1;r<=o;r++)if(!1===e(n[t?o-r:r]))return!1},He.prototype.iterate=We.prototype.iterate=function(e,t){for(var n=this.nodes,r=0,o=n.length-1;r<=o;r++){var i=n[t?o-r:r];if(i&&!1===i.iterate(e,t))return!1}},Ke.prototype.iterate=function(e,t){return e(this.entry)},t(Ye,U),Ye.prototype.next=function(){for(var e=this._type,t=this._stack;t;){var n,r=t.node,o=t.index++;if(r.entry){if(0===o)return $e(e,r.entry)}else if(r.entries){if(o<=(n=r.entries.length-1))return $e(e,r.entries[this._reverse?n-o:o])}else if(o<=(n=r.nodes.length-1)){var i=r.nodes[this._reverse?n-o:o];if(i){if(i.entry)return $e(e,i.entry);t=this._stack=Ge(i,t)}continue}t=this._stack=this._stack.__prev}return{value:void 0,done:!0}};var ct=v/4,lt=v/2,pt=v/4;function ft(e){var t=xt();if(null==e)return t;if(ht(e))return e;var n=o(e),r=n.size;return 0===r?t:(Le(r),r>0&&r<v?wt(0,r,m,null,new vt(n.toArray())):t.withMutations(function(e){e.setSize(r),n.forEach(function(t,n){return e.set(n,t)})}))}function ht(e){return!(!e||!e[dt])}t(ft,we),ft.of=function(){return this(arguments)},ft.prototype.toString=function(){return this.__toString("List [","]")},ft.prototype.get=function(e,t){if((e=k(this,e))>=0&&e<this.size){var n=Ct(this,e+=this._origin);return n&&n.array[e&g]}return t},ft.prototype.set=function(e,t){return function(e,t,n){if((t=k(e,t))!=t)return e;if(t>=e.size||t<0)return e.withMutations(function(e){t<0?kt(e,t).set(0,n):kt(e,0,t+1).set(t,n)});t+=e._origin;var r=e._tail,o=e._root,i=w(_);return t>=At(e._capacity)?r=Et(r,e.__ownerID,0,t,n,i):o=Et(o,e.__ownerID,e._level,t,n,i),i.value?e.__ownerID?(e._root=o,e._tail=r,e.__hash=void 0,e.__altered=!0,e):wt(e._origin,e._capacity,e._level,o,r):e}(this,e,t)},ft.prototype.remove=function(e){return this.has(e)?0===e?this.shift():e===this.size-1?this.pop():this.splice(e,1):this},ft.prototype.insert=function(e,t){return this.splice(e,0,t)},ft.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=this._origin=this._capacity=0,this._level=m,this._root=this._tail=null,this.__hash=void 0,this.__altered=!0,this):xt()},ft.prototype.push=function(){var e=arguments,t=this.size;return this.withMutations(function(n){kt(n,0,t+e.length);for(var r=0;r<e.length;r++)n.set(t+r,e[r])})},ft.prototype.pop=function(){return kt(this,0,-1)},ft.prototype.unshift=function(){var e=arguments;return this.withMutations(function(t){kt(t,-e.length);for(var n=0;n<e.length;n++)t.set(n,e[n])})},ft.prototype.shift=function(){return kt(this,1)},ft.prototype.merge=function(){return Ot(this,void 0,arguments)},ft.prototype.mergeWith=function(t){var n=e.call(arguments,1);return Ot(this,t,n)},ft.prototype.mergeDeep=function(){return Ot(this,ot,arguments)},ft.prototype.mergeDeepWith=function(t){var n=e.call(arguments,1);return Ot(this,it(t),n)},ft.prototype.setSize=function(e){return kt(this,0,e)},ft.prototype.slice=function(e,t){var n=this.size;return A(e,t,n)?this:kt(this,T(e,n),j(t,n))},ft.prototype.__iterator=function(e,t){var n=0,r=_t(this,t);return new U(function(){var t=r();return t===bt?{value:void 0,done:!0}:q(e,n++,t)})},ft.prototype.__iterate=function(e,t){for(var n,r=0,o=_t(this,t);(n=o())!==bt&&!1!==e(n,r++,this););return r},ft.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?wt(this._origin,this._capacity,this._level,this._root,this._tail,e,this.__hash):(this.__ownerID=e,this)},ft.isList=ht;var dt="@@__IMMUTABLE_LIST__@@",mt=ft.prototype;function vt(e,t){this.array=e,this.ownerID=t}mt[dt]=!0,mt.delete=mt.remove,mt.setIn=ze.setIn,mt.deleteIn=mt.removeIn=ze.removeIn,mt.update=ze.update,mt.updateIn=ze.updateIn,mt.mergeIn=ze.mergeIn,mt.mergeDeepIn=ze.mergeDeepIn,mt.withMutations=ze.withMutations,mt.asMutable=ze.asMutable,mt.asImmutable=ze.asImmutable,mt.wasAltered=ze.wasAltered,vt.prototype.removeBefore=function(e,t,n){if(n===t?1<<t:0===this.array.length)return this;var r=n>>>t&g;if(r>=this.array.length)return new vt([],e);var o,i=0===r;if(t>0){var a=this.array[r];if((o=a&&a.removeBefore(e,t-m,n))===a&&i)return this}if(i&&!o)return this;var s=St(this,e);if(!i)for(var u=0;u<r;u++)s.array[u]=void 0;return o&&(s.array[r]=o),s},vt.prototype.removeAfter=function(e,t,n){if(n===(t?1<<t:0)||0===this.array.length)return this;var r,o=n-1>>>t&g;if(o>=this.array.length)return this;if(t>0){var i=this.array[o];if((r=i&&i.removeAfter(e,t-m,n))===i&&o===this.array.length-1)return this}var a=St(this,e);return a.array.splice(o+1),r&&(a.array[o]=r),a};var gt,yt,bt={};function _t(e,t){var n=e._origin,r=e._capacity,o=At(r),i=e._tail;return a(e._root,e._level,0);function a(e,s,u){return 0===s?function(e,a){var s=a===o?i&&i.array:e&&e.array,u=a>n?0:n-a,c=r-a;return c>v&&(c=v),function(){if(u===c)return bt;var e=t?--c:u++;return s&&s[e]}}(e,u):function(e,o,i){var s,u=e&&e.array,c=i>n?0:n-i>>o,l=1+(r-i>>o);return l>v&&(l=v),function(){for(;;){if(s){var e=s();if(e!==bt)return e;s=null}if(c===l)return bt;var n=t?--l:c++;s=a(u&&u[n],o-m,i+(n<<o))}}}(e,s,u)}}function wt(e,t,n,r,o,i,a){var s=Object.create(mt);return s.size=t-e,s._origin=e,s._capacity=t,s._level=n,s._root=r,s._tail=o,s.__ownerID=i,s.__hash=a,s.__altered=!1,s}function xt(){return gt||(gt=wt(0,0,m))}function Et(e,t,n,r,o,i){var a,s=r>>>n&g,u=e&&s<e.array.length;if(!u&&void 0===o)return e;if(n>0){var c=e&&e.array[s],l=Et(c,t,n-m,r,o,i);return l===c?e:((a=St(e,t)).array[s]=l,a)}return u&&e.array[s]===o?e:(x(i),a=St(e,t),void 0===o&&s===a.array.length-1?a.array.pop():a.array[s]=o,a)}function St(e,t){return t&&e&&t===e.ownerID?e:new vt(e?e.array.slice():[],t)}function Ct(e,t){if(t>=At(e._capacity))return e._tail;if(t<1<<e._level+m){for(var n=e._root,r=e._level;n&&r>0;)n=n.array[t>>>r&g],r-=m;return n}}function kt(e,t,n){void 0!==t&&(t|=0),void 0!==n&&(n|=0);var r=e.__ownerID||new E,o=e._origin,i=e._capacity,a=o+t,s=void 0===n?i:n<0?i+n:o+n;if(a===o&&s===i)return e;if(a>=s)return e.clear();for(var u=e._level,c=e._root,l=0;a+l<0;)c=new vt(c&&c.array.length?[void 0,c]:[],r),l+=1<<(u+=m);l&&(a+=l,o+=l,s+=l,i+=l);for(var p=At(i),f=At(s);f>=1<<u+m;)c=new vt(c&&c.array.length?[c]:[],r),u+=m;var h=e._tail,d=f<p?Ct(e,s-1):f>p?new vt([],r):h;if(h&&f>p&&a<i&&h.array.length){for(var v=c=St(c,r),y=u;y>m;y-=m){var b=p>>>y&g;v=v.array[b]=St(v.array[b],r)}v.array[p>>>m&g]=h}if(s<i&&(d=d&&d.removeAfter(r,0,s)),a>=f)a-=f,s-=f,u=m,c=null,d=d&&d.removeBefore(r,0,a);else if(a>o||f<p){for(l=0;c;){var _=a>>>u&g;if(_!==f>>>u&g)break;_&&(l+=(1<<u)*_),u-=m,c=c.array[_]}c&&a>o&&(c=c.removeBefore(r,u,a-l)),c&&f<p&&(c=c.removeAfter(r,u,f-l)),l&&(a-=l,s-=l)}return e.__ownerID?(e.size=s-a,e._origin=a,e._capacity=s,e._level=u,e._root=c,e._tail=d,e.__hash=void 0,e.__altered=!0,e):wt(a,s,u,c,d)}function Ot(e,t,n){for(var r=[],i=0,s=0;s<n.length;s++){var u=n[s],c=o(u);c.size>i&&(i=c.size),a(u)||(c=c.map(function(e){return pe(e)})),r.push(c)}return i>e.size&&(e=e.setSize(i)),at(e,t,r)}function At(e){return e<v?0:e-1>>>m<<m}function Tt(e){return null==e?It():jt(e)?e:It().withMutations(function(t){var n=r(e);Le(n.size),n.forEach(function(e,n){return t.set(n,e)})})}function jt(e){return qe(e)&&l(e)}function Pt(e,t,n,r){var o=Object.create(Tt.prototype);return o.size=e?e.size:0,o._map=e,o._list=t,o.__ownerID=n,o.__hash=r,o}function It(){return yt||(yt=Pt(Xe(),xt()))}function Mt(e,t,n){var r,o,i=e._map,a=e._list,s=i.get(t),u=void 0!==s;if(n===y){if(!u)return e;a.size>=v&&a.size>=2*i.size?(r=(o=a.filter(function(e,t){return void 0!==e&&s!==t})).toKeyedSeq().map(function(e){return e[0]}).flip().toMap(),e.__ownerID&&(r.__ownerID=o.__ownerID=e.__ownerID)):(r=i.remove(t),o=s===a.size-1?a.pop():a.set(s,void 0))}else if(u){if(n===a.get(s)[1])return e;r=i,o=a.set(s,[t,n])}else r=i.set(t,a.size),o=a.set(a.size,[t,n]);return e.__ownerID?(e.size=r.size,e._map=r,e._list=o,e.__hash=void 0,e):Pt(r,o)}function Nt(e,t){this._iter=e,this._useKeys=t,this.size=e.size}function Rt(e){this._iter=e,this.size=e.size}function Dt(e){this._iter=e,this.size=e.size}function Lt(e){this._iter=e,this.size=e.size}function Ut(e){var t=en(e);return t._iter=e,t.size=e.size,t.flip=function(){return e},t.reverse=function(){var t=e.reverse.apply(this);return t.flip=function(){return e.reverse()},t},t.has=function(t){return e.includes(t)},t.includes=function(t){return e.has(t)},t.cacheResult=tn,t.__iterateUncached=function(t,n){var r=this;return e.__iterate(function(e,n){return!1!==t(n,e,r)},n)},t.__iteratorUncached=function(t,n){if(t===N){var r=e.__iterator(t,n);return new U(function(){var e=r.next();if(!e.done){var t=e.value[0];e.value[0]=e.value[1],e.value[1]=t}return e})}return e.__iterator(t===M?I:M,n)},t}function qt(e,t,n){var r=en(e);return r.size=e.size,r.has=function(t){return e.has(t)},r.get=function(r,o){var i=e.get(r,y);return i===y?o:t.call(n,i,r,e)},r.__iterateUncached=function(r,o){var i=this;return e.__iterate(function(e,o,a){return!1!==r(t.call(n,e,o,a),o,i)},o)},r.__iteratorUncached=function(r,o){var i=e.__iterator(N,o);return new U(function(){var o=i.next();if(o.done)return o;var a=o.value,s=a[0];return q(r,s,t.call(n,a[1],s,e),o)})},r}function Ft(e,t){var n=en(e);return n._iter=e,n.size=e.size,n.reverse=function(){return e},e.flip&&(n.flip=function(){var t=Ut(e);return t.reverse=function(){return e.flip()},t}),n.get=function(n,r){return e.get(t?n:-1-n,r)},n.has=function(n){return e.has(t?n:-1-n)},n.includes=function(t){return e.includes(t)},n.cacheResult=tn,n.__iterate=function(t,n){var r=this;return e.__iterate(function(e,n){return t(e,n,r)},!n)},n.__iterator=function(t,n){return e.__iterator(t,!n)},n}function Bt(e,t,n,r){var o=en(e);return r&&(o.has=function(r){var o=e.get(r,y);return o!==y&&!!t.call(n,o,r,e)},o.get=function(r,o){var i=e.get(r,y);return i!==y&&t.call(n,i,r,e)?i:o}),o.__iterateUncached=function(o,i){var a=this,s=0;return e.__iterate(function(e,i,u){if(t.call(n,e,i,u))return s++,o(e,r?i:s-1,a)},i),s},o.__iteratorUncached=function(o,i){var a=e.__iterator(N,i),s=0;return new U(function(){for(;;){var i=a.next();if(i.done)return i;var u=i.value,c=u[0],l=u[1];if(t.call(n,l,c,e))return q(o,r?c:s++,l,i)}})},o}function zt(e,t,n,r){var o=e.size;if(void 0!==t&&(t|=0),void 0!==n&&(n===1/0?n=o:n|=0),A(t,n,o))return e;var i=T(t,o),a=j(n,o);if(i!=i||a!=a)return zt(e.toSeq().cacheResult(),t,n,r);var s,u=a-i;u==u&&(s=u<0?0:u);var c=en(e);return c.size=0===s?s:e.size&&s||void 0,!r&&oe(e)&&s>=0&&(c.get=function(t,n){return(t=k(this,t))>=0&&t<s?e.get(t+i,n):n}),c.__iterateUncached=function(t,n){var o=this;if(0===s)return 0;if(n)return this.cacheResult().__iterate(t,n);var a=0,u=!0,c=0;return e.__iterate(function(e,n){if(!u||!(u=a++<i))return c++,!1!==t(e,r?n:c-1,o)&&c!==s}),c},c.__iteratorUncached=function(t,n){if(0!==s&&n)return this.cacheResult().__iterator(t,n);var o=0!==s&&e.__iterator(t,n),a=0,u=0;return new U(function(){for(;a++<i;)o.next();if(++u>s)return{value:void 0,done:!0};var e=o.next();return r||t===M?e:q(t,u-1,t===I?void 0:e.value[1],e)})},c}function Vt(e,t,n,r){var o=en(e);return o.__iterateUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterate(o,i);var s=!0,u=0;return e.__iterate(function(e,i,c){if(!s||!(s=t.call(n,e,i,c)))return u++,o(e,r?i:u-1,a)}),u},o.__iteratorUncached=function(o,i){var a=this;if(i)return this.cacheResult().__iterator(o,i);var s=e.__iterator(N,i),u=!0,c=0;return new U(function(){var e,i,l;do{if((e=s.next()).done)return r||o===M?e:q(o,c++,o===I?void 0:e.value[1],e);var p=e.value;i=p[0],l=p[1],u&&(u=t.call(n,l,i,a))}while(u);return o===N?e:q(o,i,l,e)})},o}function Ht(e,t){var n=s(e),o=[e].concat(t).map(function(e){return a(e)?n&&(e=r(e)):e=n?ae(e):se(Array.isArray(e)?e:[e]),e}).filter(function(e){return 0!==e.size});if(0===o.length)return e;if(1===o.length){var i=o[0];if(i===e||n&&s(i)||u(e)&&u(i))return i}var c=new ee(o);return n?c=c.toKeyedSeq():u(e)||(c=c.toSetSeq()),(c=c.flatten(!0)).size=o.reduce(function(e,t){if(void 0!==e){var n=t.size;if(void 0!==n)return e+n}},0),c}function Wt(e,t,n){var r=en(e);return r.__iterateUncached=function(r,o){var i=0,s=!1;return function e(u,c){var l=this;u.__iterate(function(o,u){return(!t||c<t)&&a(o)?e(o,c+1):!1===r(o,n?u:i++,l)&&(s=!0),!s},o)}(e,0),i},r.__iteratorUncached=function(r,o){var i=e.__iterator(r,o),s=[],u=0;return new U(function(){for(;i;){var e=i.next();if(!1===e.done){var c=e.value;if(r===N&&(c=c[1]),t&&!(s.length<t)||!a(c))return n?e:q(r,u++,c,e);s.push(i),i=c.__iterator(r,o)}else i=s.pop()}return{value:void 0,done:!0}})},r}function Jt(e,t,n){t||(t=nn);var r=s(e),o=0,i=e.toSeq().map(function(t,r){return[r,t,o++,n?n(t,r,e):t]}).toArray();return i.sort(function(e,n){return t(e[3],n[3])||e[2]-n[2]}).forEach(r?function(e,t){i[t].length=2}:function(e,t){i[t]=e[1]}),r?K(i):u(e)?Y(i):$(i)}function Kt(e,t,n){if(t||(t=nn),n){var r=e.toSeq().map(function(t,r){return[t,n(t,r,e)]}).reduce(function(e,n){return Yt(t,e[1],n[1])?n:e});return r&&r[0]}return e.reduce(function(e,n){return Yt(t,e,n)?n:e})}function Yt(e,t,n){var r=e(n,t);return 0===r&&n!==t&&(null==n||n!=n)||r>0}function $t(e,t,r){var o=en(e);return o.size=new ee(r).map(function(e){return e.size}).min(),o.__iterate=function(e,t){for(var n,r=this.__iterator(M,t),o=0;!(n=r.next()).done&&!1!==e(n.value,o++,this););return o},o.__iteratorUncached=function(e,o){var i=r.map(function(e){return e=n(e),V(o?e.reverse():e)}),a=0,s=!1;return new U(function(){var n;return s||(n=i.map(function(e){return e.next()}),s=n.some(function(e){return e.done})),s?{value:void 0,done:!0}:q(e,a++,t.apply(null,n.map(function(e){return e.value})))})},o}function Gt(e,t){return oe(e)?t:e.constructor(t)}function Zt(e){if(e!==Object(e))throw new TypeError("Expected [K, V] tuple: "+e)}function Xt(e){return Le(e.size),C(e)}function Qt(e){return s(e)?r:u(e)?o:i}function en(e){return Object.create((s(e)?K:u(e)?Y:$).prototype)}function tn(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):J.prototype.cacheResult.call(this)}function nn(e,t){return e>t?1:e<t?-1:0}function rn(e){var t=V(e);if(!t){if(!W(e))throw new TypeError("Expected iterable or array-like: "+e);t=V(n(e))}return t}function on(e,t){var n,r=function(i){if(i instanceof r)return i;if(!(this instanceof r))return new r(i);if(!n){n=!0;var a=Object.keys(e);!function(e,t){try{t.forEach(function(e,t){Object.defineProperty(e,t,{get:function(){return this.get(t)},set:function(e){ge(this.__ownerID,"Cannot set on an immutable record."),this.set(t,e)}})}.bind(void 0,e))}catch(e){}}(o,a),o.size=a.length,o._name=t,o._keys=a,o._defaultValues=e}this._map=Ue(i)},o=r.prototype=Object.create(an);return o.constructor=r,r}t(Tt,Ue),Tt.of=function(){return this(arguments)},Tt.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Tt.prototype.get=function(e,t){var n=this._map.get(e);return void 0!==n?this._list.get(n)[1]:t},Tt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):It()},Tt.prototype.set=function(e,t){return Mt(this,e,t)},Tt.prototype.remove=function(e){return Mt(this,e,y)},Tt.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Tt.prototype.__iterate=function(e,t){var n=this;return this._list.__iterate(function(t){return t&&e(t[1],t[0],n)},t)},Tt.prototype.__iterator=function(e,t){return this._list.fromEntrySeq().__iterator(e,t)},Tt.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e),n=this._list.__ensureOwner(e);return e?Pt(t,n,e,this.__hash):(this.__ownerID=e,this._map=t,this._list=n,this)},Tt.isOrderedMap=jt,Tt.prototype[d]=!0,Tt.prototype.delete=Tt.prototype.remove,t(Nt,K),Nt.prototype.get=function(e,t){return this._iter.get(e,t)},Nt.prototype.has=function(e){return this._iter.has(e)},Nt.prototype.valueSeq=function(){return this._iter.valueSeq()},Nt.prototype.reverse=function(){var e=this,t=Ft(this,!0);return this._useKeys||(t.valueSeq=function(){return e._iter.toSeq().reverse()}),t},Nt.prototype.map=function(e,t){var n=this,r=qt(this,e,t);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(e,t)}),r},Nt.prototype.__iterate=function(e,t){var n,r=this;return this._iter.__iterate(this._useKeys?function(t,n){return e(t,n,r)}:(n=t?Xt(this):0,function(o){return e(o,t?--n:n++,r)}),t)},Nt.prototype.__iterator=function(e,t){if(this._useKeys)return this._iter.__iterator(e,t);var n=this._iter.__iterator(M,t),r=t?Xt(this):0;return new U(function(){var o=n.next();return o.done?o:q(e,t?--r:r++,o.value,o)})},Nt.prototype[d]=!0,t(Rt,Y),Rt.prototype.includes=function(e){return this._iter.includes(e)},Rt.prototype.__iterate=function(e,t){var n=this,r=0;return this._iter.__iterate(function(t){return e(t,r++,n)},t)},Rt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t),r=0;return new U(function(){var t=n.next();return t.done?t:q(e,r++,t.value,t)})},t(Dt,$),Dt.prototype.has=function(e){return this._iter.includes(e)},Dt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){return e(t,t,n)},t)},Dt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t);return new U(function(){var t=n.next();return t.done?t:q(e,t.value,t.value,t)})},t(Lt,K),Lt.prototype.entrySeq=function(){return this._iter.toSeq()},Lt.prototype.__iterate=function(e,t){var n=this;return this._iter.__iterate(function(t){if(t){Zt(t);var r=a(t);return e(r?t.get(1):t[1],r?t.get(0):t[0],n)}},t)},Lt.prototype.__iterator=function(e,t){var n=this._iter.__iterator(M,t);return new U(function(){for(;;){var t=n.next();if(t.done)return t;var r=t.value;if(r){Zt(r);var o=a(r);return q(e,o?r.get(0):r[0],o?r.get(1):r[1],t)}}})},Rt.prototype.cacheResult=Nt.prototype.cacheResult=Dt.prototype.cacheResult=Lt.prototype.cacheResult=tn,t(on,_e),on.prototype.toString=function(){return this.__toString(un(this)+" {","}")},on.prototype.has=function(e){return this._defaultValues.hasOwnProperty(e)},on.prototype.get=function(e,t){if(!this.has(e))return t;var n=this._defaultValues[e];return this._map?this._map.get(e,n):n},on.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var e=this.constructor;return e._empty||(e._empty=sn(this,Xe()))},on.prototype.set=function(e,t){if(!this.has(e))throw new Error('Cannot set unknown key "'+e+'" on '+un(this));if(this._map&&!this._map.has(e)&&t===this._defaultValues[e])return this;var n=this._map&&this._map.set(e,t);return this.__ownerID||n===this._map?this:sn(this,n)},on.prototype.remove=function(e){if(!this.has(e))return this;var t=this._map&&this._map.remove(e);return this.__ownerID||t===this._map?this:sn(this,t)},on.prototype.wasAltered=function(){return this._map.wasAltered()},on.prototype.__iterator=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterator(e,t)},on.prototype.__iterate=function(e,t){var n=this;return r(this._defaultValues).map(function(e,t){return n.get(t)}).__iterate(e,t)},on.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map&&this._map.__ensureOwner(e);return e?sn(this,t,e):(this.__ownerID=e,this._map=t,this)};var an=on.prototype;function sn(e,t,n){var r=Object.create(Object.getPrototypeOf(e));return r._map=t,r.__ownerID=n,r}function un(e){return e._name||e.constructor.name||"Record"}function cn(e){return null==e?vn():ln(e)&&!l(e)?e:vn().withMutations(function(t){var n=i(e);Le(n.size),n.forEach(function(e){return t.add(e)})})}function ln(e){return!(!e||!e[fn])}an.delete=an.remove,an.deleteIn=an.removeIn=ze.removeIn,an.merge=ze.merge,an.mergeWith=ze.mergeWith,an.mergeIn=ze.mergeIn,an.mergeDeep=ze.mergeDeep,an.mergeDeepWith=ze.mergeDeepWith,an.mergeDeepIn=ze.mergeDeepIn,an.setIn=ze.setIn,an.update=ze.update,an.updateIn=ze.updateIn,an.withMutations=ze.withMutations,an.asMutable=ze.asMutable,an.asImmutable=ze.asImmutable,t(cn,xe),cn.of=function(){return this(arguments)},cn.fromKeys=function(e){return this(r(e).keySeq())},cn.prototype.toString=function(){return this.__toString("Set {","}")},cn.prototype.has=function(e){return this._map.has(e)},cn.prototype.add=function(e){return dn(this,this._map.set(e,!0))},cn.prototype.remove=function(e){return dn(this,this._map.remove(e))},cn.prototype.clear=function(){return dn(this,this._map.clear())},cn.prototype.union=function(){var t=e.call(arguments,0);return 0===(t=t.filter(function(e){return 0!==e.size})).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n<t.length;n++)i(t[n]).forEach(function(t){return e.add(t)})}):this.constructor(t[0])},cn.prototype.intersect=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.every(function(e){return e.includes(n)})||e.remove(n)})})},cn.prototype.subtract=function(){var t=e.call(arguments,0);if(0===t.length)return this;t=t.map(function(e){return i(e)});var n=this;return this.withMutations(function(e){n.forEach(function(n){t.some(function(e){return e.includes(n)})&&e.remove(n)})})},cn.prototype.merge=function(){return this.union.apply(this,arguments)},cn.prototype.mergeWith=function(t){var n=e.call(arguments,1);return this.union.apply(this,n)},cn.prototype.sort=function(e){return gn(Jt(this,e))},cn.prototype.sortBy=function(e,t){return gn(Jt(this,t,e))},cn.prototype.wasAltered=function(){return this._map.wasAltered()},cn.prototype.__iterate=function(e,t){var n=this;return this._map.__iterate(function(t,r){return e(r,r,n)},t)},cn.prototype.__iterator=function(e,t){return this._map.map(function(e,t){return t}).__iterator(e,t)},cn.prototype.__ensureOwner=function(e){if(e===this.__ownerID)return this;var t=this._map.__ensureOwner(e);return e?this.__make(t,e):(this.__ownerID=e,this._map=t,this)},cn.isSet=ln;var pn,fn="@@__IMMUTABLE_SET__@@",hn=cn.prototype;function dn(e,t){return e.__ownerID?(e.size=t.size,e._map=t,e):t===e._map?e:0===t.size?e.__empty():e.__make(t)}function mn(e,t){var n=Object.create(hn);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function vn(){return pn||(pn=mn(Xe()))}function gn(e){return null==e?xn():yn(e)?e:xn().withMutations(function(t){var n=i(e);Le(n.size),n.forEach(function(e){return t.add(e)})})}function yn(e){return ln(e)&&l(e)}hn[fn]=!0,hn.delete=hn.remove,hn.mergeDeep=hn.merge,hn.mergeDeepWith=hn.mergeWith,hn.withMutations=ze.withMutations,hn.asMutable=ze.asMutable,hn.asImmutable=ze.asImmutable,hn.__empty=vn,hn.__make=mn,t(gn,cn),gn.of=function(){return this(arguments)},gn.fromKeys=function(e){return this(r(e).keySeq())},gn.prototype.toString=function(){return this.__toString("OrderedSet {","}")},gn.isOrderedSet=yn;var bn,_n=gn.prototype;function wn(e,t){var n=Object.create(_n);return n.size=e?e.size:0,n._map=e,n.__ownerID=t,n}function xn(){return bn||(bn=wn(It()))}function En(e){return null==e?Tn():Sn(e)?e:Tn().unshiftAll(e)}function Sn(e){return!(!e||!e[kn])}_n[d]=!0,_n.__empty=xn,_n.__make=wn,t(En,we),En.of=function(){return this(arguments)},En.prototype.toString=function(){return this.__toString("Stack [","]")},En.prototype.get=function(e,t){var n=this._head;for(e=k(this,e);n&&e--;)n=n.next;return n?n.value:t},En.prototype.peek=function(){return this._head&&this._head.value},En.prototype.push=function(){if(0===arguments.length)return this;for(var e=this.size+arguments.length,t=this._head,n=arguments.length-1;n>=0;n--)t={value:arguments[n],next:t};return this.__ownerID?(this.size=e,this._head=t,this.__hash=void 0,this.__altered=!0,this):An(e,t)},En.prototype.pushAll=function(e){if(0===(e=o(e)).size)return this;Le(e.size);var t=this.size,n=this._head;return e.reverse().forEach(function(e){t++,n={value:e,next:n}}),this.__ownerID?(this.size=t,this._head=n,this.__hash=void 0,this.__altered=!0,this):An(t,n)},En.prototype.pop=function(){return this.slice(1)},En.prototype.unshift=function(){return this.push.apply(this,arguments)},En.prototype.unshiftAll=function(e){return this.pushAll(e)},En.prototype.shift=function(){return this.pop.apply(this,arguments)},En.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Tn()},En.prototype.slice=function(e,t){if(A(e,t,this.size))return this;var n=T(e,this.size);if(j(t,this.size)!==this.size)return we.prototype.slice.call(this,e,t);for(var r=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=r,this._head=o,this.__hash=void 0,this.__altered=!0,this):An(r,o)},En.prototype.__ensureOwner=function(e){return e===this.__ownerID?this:e?An(this.size,this._head,e,this.__hash):(this.__ownerID=e,this.__altered=!1,this)},En.prototype.__iterate=function(e,t){if(t)return this.reverse().__iterate(e);for(var n=0,r=this._head;r&&!1!==e(r.value,n++,this);)r=r.next;return n},En.prototype.__iterator=function(e,t){if(t)return this.reverse().__iterator(e);var n=0,r=this._head;return new U(function(){if(r){var t=r.value;return r=r.next,q(e,n++,t)}return{value:void 0,done:!0}})},En.isStack=Sn;var Cn,kn="@@__IMMUTABLE_STACK__@@",On=En.prototype;function An(e,t,n,r){var o=Object.create(On);return o.size=e,o._head=t,o.__ownerID=n,o.__hash=r,o.__altered=!1,o}function Tn(){return Cn||(Cn=An(0))}function jn(e,t){var n=function(n){e.prototype[n]=t[n]};return Object.keys(t).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(t).forEach(n),e}On[kn]=!0,On.withMutations=ze.withMutations,On.asMutable=ze.asMutable,On.asImmutable=ze.asImmutable,On.wasAltered=ze.wasAltered,n.Iterator=U,jn(n,{toArray:function(){Le(this.size);var e=new Array(this.size||0);return this.valueSeq().__iterate(function(t,n){e[n]=t}),e},toIndexedSeq:function(){return new Rt(this)},toJS:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJS?e.toJS():e}).__toJS()},toJSON:function(){return this.toSeq().map(function(e){return e&&"function"==typeof e.toJSON?e.toJSON():e}).__toJS()},toKeyedSeq:function(){return new Nt(this,!0)},toMap:function(){return Ue(this.toKeyedSeq())},toObject:function(){Le(this.size);var e={};return this.__iterate(function(t,n){e[n]=t}),e},toOrderedMap:function(){return Tt(this.toKeyedSeq())},toOrderedSet:function(){return gn(s(this)?this.valueSeq():this)},toSet:function(){return cn(s(this)?this.valueSeq():this)},toSetSeq:function(){return new Dt(this)},toSeq:function(){return u(this)?this.toIndexedSeq():s(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return En(s(this)?this.valueSeq():this)},toList:function(){return ft(s(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(e,t){return 0===this.size?e+t:e+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+t},concat:function(){var t=e.call(arguments,0);return Gt(this,Ht(this,t))},includes:function(e){return this.some(function(t){return de(t,e)})},entries:function(){return this.__iterator(N)},every:function(e,t){Le(this.size);var n=!0;return this.__iterate(function(r,o,i){if(!e.call(t,r,o,i))return n=!1,!1}),n},filter:function(e,t){return Gt(this,Bt(this,e,t,!0))},find:function(e,t,n){var r=this.findEntry(e,t);return r?r[1]:n},forEach:function(e,t){return Le(this.size),this.__iterate(t?e.bind(t):e)},join:function(e){Le(this.size),e=void 0!==e?""+e:",";var t="",n=!0;return this.__iterate(function(r){n?n=!1:t+=e,t+=null!=r?r.toString():""}),t},keys:function(){return this.__iterator(I)},map:function(e,t){return Gt(this,qt(this,e,t))},reduce:function(e,t,n){var r,o;return Le(this.size),arguments.length<2?o=!0:r=t,this.__iterate(function(t,i,a){o?(o=!1,r=t):r=e.call(n,r,t,i,a)}),r},reduceRight:function(e,t,n){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return Gt(this,Ft(this,!0))},slice:function(e,t){return Gt(this,zt(this,e,t,!0))},some:function(e,t){return!this.every(Rn(e),t)},sort:function(e){return Gt(this,Jt(this,e))},values:function(){return this.__iterator(M)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(e,t){return C(e?this.toSeq().filter(e,t):this)},countBy:function(e,t){return function(e,t,n){var r=Ue().asMutable();return e.__iterate(function(o,i){r.update(t.call(n,o,i,e),0,function(e){return e+1})}),r.asImmutable()}(this,e,t)},equals:function(e){return me(this,e)},entrySeq:function(){var e=this;if(e._cache)return new ee(e._cache);var t=e.toSeq().map(Nn).toIndexedSeq();return t.fromEntrySeq=function(){return e.toSeq()},t},filterNot:function(e,t){return this.filter(Rn(e),t)},findEntry:function(e,t,n){var r=n;return this.__iterate(function(n,o,i){if(e.call(t,n,o,i))return r=[o,n],!1}),r},findKey:function(e,t){var n=this.findEntry(e,t);return n&&n[0]},findLast:function(e,t,n){return this.toKeyedSeq().reverse().find(e,t,n)},findLastEntry:function(e,t,n){return this.toKeyedSeq().reverse().findEntry(e,t,n)},findLastKey:function(e,t){return this.toKeyedSeq().reverse().findKey(e,t)},first:function(){return this.find(O)},flatMap:function(e,t){return Gt(this,function(e,t,n){var r=Qt(e);return e.toSeq().map(function(o,i){return r(t.call(n,o,i,e))}).flatten(!0)}(this,e,t))},flatten:function(e){return Gt(this,Wt(this,e,!0))},fromEntrySeq:function(){return new Lt(this)},get:function(e,t){return this.find(function(t,n){return de(n,e)},void 0,t)},getIn:function(e,t){for(var n,r=this,o=rn(e);!(n=o.next()).done;){var i=n.value;if((r=r&&r.get?r.get(i,y):y)===y)return t}return r},groupBy:function(e,t){return function(e,t,n){var r=s(e),o=(l(e)?Tt():Ue()).asMutable();e.__iterate(function(i,a){o.update(t.call(n,i,a,e),function(e){return(e=e||[]).push(r?[a,i]:i),e})});var i=Qt(e);return o.map(function(t){return Gt(e,i(t))})}(this,e,t)},has:function(e){return this.get(e,y)!==y},hasIn:function(e){return this.getIn(e,y)!==y},isSubset:function(e){return e="function"==typeof e.includes?e:n(e),this.every(function(t){return e.includes(t)})},isSuperset:function(e){return(e="function"==typeof e.isSubset?e:n(e)).isSubset(this)},keyOf:function(e){return this.findKey(function(t){return de(t,e)})},keySeq:function(){return this.toSeq().map(Mn).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(e){return this.toKeyedSeq().reverse().keyOf(e)},max:function(e){return Kt(this,e)},maxBy:function(e,t){return Kt(this,t,e)},min:function(e){return Kt(this,e?Dn(e):qn)},minBy:function(e,t){return Kt(this,t?Dn(t):qn,e)},rest:function(){return this.slice(1)},skip:function(e){return this.slice(Math.max(0,e))},skipLast:function(e){return Gt(this,this.toSeq().reverse().skip(e).reverse())},skipWhile:function(e,t){return Gt(this,Vt(this,e,t,!0))},skipUntil:function(e,t){return this.skipWhile(Rn(e),t)},sortBy:function(e,t){return Gt(this,Jt(this,t,e))},take:function(e){return this.slice(0,Math.max(0,e))},takeLast:function(e){return Gt(this,this.toSeq().reverse().take(e).reverse())},takeWhile:function(e,t){return Gt(this,function(e,t,n){var r=en(e);return r.__iterateUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterate(r,o);var a=0;return e.__iterate(function(e,o,s){return t.call(n,e,o,s)&&++a&&r(e,o,i)}),a},r.__iteratorUncached=function(r,o){var i=this;if(o)return this.cacheResult().__iterator(r,o);var a=e.__iterator(N,o),s=!0;return new U(function(){if(!s)return{value:void 0,done:!0};var e=a.next();if(e.done)return e;var o=e.value,u=o[0],c=o[1];return t.call(n,c,u,i)?r===N?e:q(r,u,c,e):(s=!1,{value:void 0,done:!0})})},r}(this,e,t))},takeUntil:function(e,t){return this.takeWhile(Rn(e),t)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=function(e){if(e.size===1/0)return 0;var t=l(e),n=s(e),r=t?1:0;return function(e,t){return t=Ee(t,3432918353),t=Ee(t<<15|t>>>-15,461845907),t=Ee(t<<13|t>>>-13,5),t=Ee((t=(t+3864292196|0)^e)^t>>>16,2246822507),t=Se((t=Ee(t^t>>>13,3266489909))^t>>>16)}(e.__iterate(n?t?function(e,t){r=31*r+Fn(Ce(e),Ce(t))|0}:function(e,t){r=r+Fn(Ce(e),Ce(t))|0}:t?function(e){r=31*r+Ce(e)|0}:function(e){r=r+Ce(e)|0}),r)}(this))}});var Pn=n.prototype;Pn[p]=!0,Pn[L]=Pn.values,Pn.__toJS=Pn.toArray,Pn.__toStringMapper=Ln,Pn.inspect=Pn.toSource=function(){return this.toString()},Pn.chain=Pn.flatMap,Pn.contains=Pn.includes,jn(r,{flip:function(){return Gt(this,Ut(this))},mapEntries:function(e,t){var n=this,r=0;return Gt(this,this.toSeq().map(function(o,i){return e.call(t,[i,o],r++,n)}).fromEntrySeq())},mapKeys:function(e,t){var n=this;return Gt(this,this.toSeq().flip().map(function(r,o){return e.call(t,r,o,n)}).flip())}});var In=r.prototype;function Mn(e,t){return t}function Nn(e,t){return[t,e]}function Rn(e){return function(){return!e.apply(this,arguments)}}function Dn(e){return function(){return-e.apply(this,arguments)}}function Ln(e){return"string"==typeof e?JSON.stringify(e):String(e)}function Un(){return S(arguments)}function qn(e,t){return e<t?1:e>t?-1:0}function Fn(e,t){return e^t+2654435769+(e<<6)+(e>>2)|0}return In[f]=!0,In[L]=Pn.entries,In.__toJS=Pn.toObject,In.__toStringMapper=function(e,t){return JSON.stringify(t)+": "+Ln(e)},jn(o,{toKeyedSeq:function(){return new Nt(this,!1)},filter:function(e,t){return Gt(this,Bt(this,e,t,!1))},findIndex:function(e,t){var n=this.findEntry(e,t);return n?n[0]:-1},indexOf:function(e){var t=this.keyOf(e);return void 0===t?-1:t},lastIndexOf:function(e){var t=this.lastKeyOf(e);return void 0===t?-1:t},reverse:function(){return Gt(this,Ft(this,!1))},slice:function(e,t){return Gt(this,zt(this,e,t,!1))},splice:function(e,t){var n=arguments.length;if(t=Math.max(0|t,0),0===n||2===n&&!t)return this;e=T(e,e<0?this.count():this.size);var r=this.slice(0,e);return Gt(this,1===n?r:r.concat(S(arguments,2),this.slice(e+t)))},findLastIndex:function(e,t){var n=this.findLastEntry(e,t);return n?n[0]:-1},first:function(){return this.get(0)},flatten:function(e){return Gt(this,Wt(this,e,!1))},get:function(e,t){return(e=k(this,e))<0||this.size===1/0||void 0!==this.size&&e>this.size?t:this.find(function(t,n){return n===e},void 0,t)},has:function(e){return(e=k(this,e))>=0&&(void 0!==this.size?this.size===1/0||e<this.size:-1!==this.indexOf(e))},interpose:function(e){return Gt(this,function(e,t){var n=en(e);return n.size=e.size&&2*e.size-1,n.__iterateUncached=function(n,r){var o=this,i=0;return e.__iterate(function(e,r){return(!i||!1!==n(t,i++,o))&&!1!==n(e,i++,o)},r),i},n.__iteratorUncached=function(n,r){var o,i=e.__iterator(M,r),a=0;return new U(function(){return(!o||a%2)&&(o=i.next()).done?o:a%2?q(n,a++,t):q(n,a++,o.value,o)})},n}(this,e))},interleave:function(){var e=[this].concat(S(arguments)),t=$t(this.toSeq(),Y.of,e),n=t.flatten(!0);return t.size&&(n.size=t.size*e.length),Gt(this,n)},keySeq:function(){return ye(0,this.size)},last:function(){return this.get(-1)},skipWhile:function(e,t){return Gt(this,Vt(this,e,t,!1))},zip:function(){var e=[this].concat(S(arguments));return Gt(this,$t(this,Un,e))},zipWith:function(e){var t=S(arguments);return t[0]=this,Gt(this,$t(this,e,t))}}),o.prototype[h]=!0,o.prototype[d]=!0,jn(i,{get:function(e,t){return this.has(e)?e:t},includes:function(e){return this.has(e)},keySeq:function(){return this.valueSeq()}}),i.prototype.has=Pn.includes,i.prototype.contains=i.prototype.includes,jn(K,r.prototype),jn(Y,o.prototype),jn($,i.prototype),jn(_e,r.prototype),jn(we,o.prototype),jn(xe,i.prototype),{Iterable:n,Seq:J,Collection:be,Map:Ue,OrderedMap:Tt,List:ft,Stack:En,Set:cn,OrderedSet:gn,Record:on,Range:ye,Repeat:ve,is:de,fromJS:pe}}()},function(e,t,n){var r=n(54);e.exports=function(e,t,n){return t in e?r(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";(function(e){n.d(t,"t",function(){return U}),n.d(t,"A",function(){return q}),n.d(t,"i",function(){return F}),n.d(t,"w",function(){return B}),n.d(t,"r",function(){return z}),n.d(t,"u",function(){return V}),n.d(t,"s",function(){return H}),n.d(t,"q",function(){return W}),n.d(t,"v",function(){return J}),n.d(t,"y",function(){return K}),n.d(t,"z",function(){return Y}),n.d(t,"J",function(){return $}),n.d(t,"f",function(){return G}),n.d(t,"n",function(){return Z}),n.d(t,"p",function(){return X}),n.d(t,"h",function(){return Q}),n.d(t,"E",function(){return ee}),n.d(t,"K",function(){return he}),n.d(t,"o",function(){return de}),n.d(t,"D",function(){return me}),n.d(t,"a",function(){return ve}),n.d(t,"H",function(){return ge}),n.d(t,"b",function(){return ye}),n.d(t,"G",function(){return be}),n.d(t,"F",function(){return _e}),n.d(t,"k",function(){return we}),n.d(t,"d",function(){return xe}),n.d(t,"g",function(){return Ee}),n.d(t,"m",function(){return Se}),n.d(t,"l",function(){return Ce}),n.d(t,"e",function(){return ke}),n.d(t,"I",function(){return Oe}),n.d(t,"x",function(){return Ae}),n.d(t,"B",function(){return Te}),n.d(t,"C",function(){return je}),n.d(t,"j",function(){return Pe}),n.d(t,"c",function(){return Ie});var r=n(28),o=n.n(r),i=(n(13),n(92),n(16)),a=n.n(i),s=n(17),u=n.n(s),c=n(14),l=n.n(c),p=n(26),f=n.n(p),h=n(1),d=n.n(h),m=n(471),v=n(472),g=n.n(v),y=n(270),b=n.n(y),_=n(271),w=n.n(_),x=n(272),E=n.n(x),S=(n(473),n(91)),C=n.n(S),k=n(120),O=n(18),A=n.n(O),T=n(475),j=n.n(T),P=n(122),I=n(476),M=n.n(I),N=n(477),R=n.n(N),D="default",L=function(e){return d.a.Iterable.isIterable(e)};function U(e){try{var t=JSON.parse(e);if(t&&"object"===f()(t))return t}catch(e){}return!1}function q(e){return V(e)?L(e)?e.toJS():e:{}}function F(e){return L(e)?e:e instanceof A.a.File?e:V(e)?l()(e)?d.a.Seq(e).map(F).toList():d.a.OrderedMap(e).map(F):e}function B(e){return l()(e)?e:[e]}function z(e){return"function"==typeof e}function V(e){return!!e&&"object"===f()(e)}function H(e){return"function"==typeof e}function W(e){return l()(e)}var J=w.a;function K(e,t){return u()(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}function Y(e,t){return u()(e).reduce(function(n,r){var o=t(e[r],r);return o&&"object"===f()(o)&&a()(n,o),n},{})}function $(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function G(e){var t=e.keySeq();return t.contains(D)?D:t.filter(function(e){return"2"===(e+"")[0]}).sort().first()}function Z(e,t){if(!d.a.Iterable.isIterable(e))return d.a.List();var n=e.getIn(l()(t)?t:[t]);return d.a.List.isList(n)?n:d.a.List()}function X(e){var t=document;if(!e)return"";if(e.textContent.length>5e3)return e.textContent;return function(e){for(var n,r,o,i,a,s=e.textContent,u=0,c=s[0],l=1,p=e.innerHTML="",f=0;r=n,n=f<7&&"\\"==n?1:l;){if(l=c,c=s[++u],i=p.length>1,!l||f>8&&"\n"==l||[/\S/.test(l),1,1,!/[$\w]/.test(l),("/"==n||"\n"==n)&&i,'"'==n&&i,"'"==n&&i,s[u-4]+r+n=="--\x3e",r+n=="*/"][f])for(p&&(e.appendChild(a=t.createElement("span")).setAttribute("style",["color: #555; font-weight: bold;","","","color: #555;",""][f?f<3?2:f>6?4:f>3?3:+/^(a(bstract|lias|nd|rguments|rray|s(m|sert)?|uto)|b(ase|egin|ool(ean)?|reak|yte)|c(ase|atch|har|hecked|lass|lone|ompl|onst|ontinue)|de(bugger|cimal|clare|f(ault|er)?|init|l(egate|ete)?)|do|double|e(cho|ls?if|lse(if)?|nd|nsure|num|vent|x(cept|ec|p(licit|ort)|te(nds|nsion|rn)))|f(allthrough|alse|inal(ly)?|ixed|loat|or(each)?|riend|rom|unc(tion)?)|global|goto|guard|i(f|mp(lements|licit|ort)|n(it|clude(_once)?|line|out|stanceof|t(erface|ernal)?)?|s)|l(ambda|et|ock|ong)|m(icrolight|odule|utable)|NaN|n(amespace|ative|ext|ew|il|ot|ull)|o(bject|perator|r|ut|verride)|p(ackage|arams|rivate|rotected|rotocol|ublic)|r(aise|e(adonly|do|f|gister|peat|quire(_once)?|scue|strict|try|turn))|s(byte|ealed|elf|hort|igned|izeof|tatic|tring|truct|ubscript|uper|ynchronized|witch)|t(emplate|hen|his|hrows?|ransient|rue|ry|ype(alias|def|id|name|of))|u(n(checked|def(ined)?|ion|less|signed|til)|se|sing)|v(ar|irtual|oid|olatile)|w(char_t|hen|here|hile|ith)|xor|yield)$/.test(p):0]),a.appendChild(t.createTextNode(p))),o=f&&f<7?f:o,p="",f=11;![1,/[\/{}[(\-+*=<>:;|\\.,?!&@~]/.test(l),/[\])]/.test(l),/[$\w]/.test(l),"/"==l&&o<2&&"<"!=n,'"'==l,"'"==l,l+c+s[u+1]+s[u+2]=="\x3c!--",l+c=="/*",l+c=="//","#"==l][--f];);p+=l}}(e)}function Q(e){var t;if([/filename\*=[^']+'\w*'"([^"]+)";?/i,/filename\*=[^']+'\w*'([^;]+);?/i,/filename="([^;]*);?"/i,/filename=([^;]*);?/i].some(function(n){return null!==(t=n.exec(e))}),null!==t&&t.length>1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function ee(e){return t=e.replace(/\.[^.\/]*$/,""),b()(g()(t));var t}var te=function(e,t){if(e>t)return"Value must be less than Maximum"},ne=function(e,t){if(e<t)return"Value must be greater than Minimum"},re=function(e){if(!/^-?\d+(\.?\d+)?$/.test(e))return"Value must be a number"},oe=function(e){if(!/^-?\d+$/.test(e))return"Value must be an integer"},ie=function(e){if(e&&!(e instanceof A.a.File))return"Value must be a file"},ae=function(e){if("true"!==e&&"false"!==e&&!0!==e&&!1!==e)return"Value must be a boolean"},se=function(e){if(e&&"string"!=typeof e)return"Value must be a string"},ue=function(e){if(isNaN(Date.parse(e)))return"Value must be a DateTime"},ce=function(e){if(e=e.toString().toLowerCase(),!/^[{(]?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}[)}]?$/.test(e))return"Value must be a Guid"},le=function(e,t){if(e.length>t)return"Value must be less than MaxLength"},pe=function(e,t){if(e.length<t)return"Value must be greater than MinLength"},fe=function(e,t){if(!new RegExp(t).test(e))return"Value must follow pattern "+t},he=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,o=void 0!==r&&r,i=n.bypassRequiredCheck,a=void 0!==i&&i,s=[],u=e.get("required"),c=Object(P.a)(e,{isOAS3:o}),p=c.schema,h=c.parameterContentMediaType;if(!p)return s;var m=p.get("required"),v=p.get("maximum"),g=p.get("minimum"),y=p.get("type"),b=p.get("format"),_=p.get("maxLength"),w=p.get("minLength"),x=p.get("pattern");if(y&&(u||m||t)){var E="string"===y&&t,S="array"===y&&l()(t)&&t.length,C="array"===y&&d.a.List.isList(t)&&t.count(),k="array"===y&&"string"==typeof t&&t,O="file"===y&&t instanceof A.a.File,T="boolean"===y&&(t||!1===t),j="number"===y&&(t||0===t),I="integer"===y&&(t||0===t),M="object"===y&&"object"===f()(t)&&null!==t,N="object"===y&&"string"==typeof t&&t,R=[E,S,C,k,O,T,j,I,M,N],D=R.some(function(e){return!!e});if((u||m)&&!D&&!a)return s.push("Required field is not provided"),s;if("object"===y&&"string"==typeof t&&(null===h||"application/json"===h))try{JSON.parse(t)}catch(e){return s.push("Parameter string value must be valid JSON"),s}if(x){var L=fe(t,x);L&&s.push(L)}if(_||0===_){var U=le(t,_);U&&s.push(U)}if(w){var q=pe(t,w);q&&s.push(q)}if(v||0===v){var F=te(t,v);F&&s.push(F)}if(g||0===g){var B=ne(t,g);B&&s.push(B)}if("string"===y){var z;if(!(z="date-time"===b?ue(t):"uuid"===b?ce(t):se(t)))return s;s.push(z)}else if("boolean"===y){var V=ae(t);if(!V)return s;s.push(V)}else if("number"===y){var H=re(t);if(!H)return s;s.push(H)}else if("integer"===y){var W=oe(t);if(!W)return s;s.push(W)}else if("array"===y){var J;if(!C||!t.count())return s;J=p.getIn(["items","type"]),t.forEach(function(e,t){var n;"number"===J?n=re(e):"integer"===J?n=oe(e):"string"===J&&(n=se(e)),n&&s.push({index:t,error:n})})}else if("file"===y){var K=ie(t);if(!K)return s;s.push(K)}}return s},de=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(/xml/.test(t)){if(!e.xml||!e.xml.name){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'<?xml version="1.0" encoding="UTF-8"?>\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return Object(k.memoizedCreateXMLExample)(e,n)}var i=Object(k.memoizedSampleFromSchema)(e,n);return"object"===f()(i)?o()(i,null,2):i},me=function(){var e={},t=A.a.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)n.hasOwnProperty(r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},ve=function(t){return(t instanceof e?t:new e(t.toString(),"utf-8")).toString("base64")},ge={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},ye=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},be=function(e,t,n){return!!E()(n,function(n){return C()(e[n],t[n])})};function _e(e){return"string"!=typeof e||""===e?"":Object(m.sanitizeUrl)(e)}function we(e){if(!d.a.OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=e.find(function(e,t){return t.startsWith("2")&&u()(e.get("content")||{}).length>0}),n=e.get("default")||d.a.OrderedMap(),r=(n.get("content")||d.a.OrderedMap()).keySeq().toJS().length?n:null;return t||r}var xe=function(e){return"string"==typeof e||e instanceof String?e.trim().replace(/\s/g,"%20"):""},Ee=function(e){return j()(xe(e).replace(/%20/g,"_"))},Se=function(e){return e.filter(function(e,t){return/^x-/.test(t)})},Ce=function(e){return e.filter(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)})};function ke(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==f()(e)||l()(e)||null===e||!t)return e;var r=a()({},e);return u()(r).forEach(function(e){e===t&&n(r[e],e)?delete r[e]:r[e]=ke(r[e],t,n)}),r}function Oe(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===f()(e)&&null!==e)try{return o()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function Ae(e){return"number"==typeof e?e.toString():e}function Te(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,o=t.allowHashes,i=void 0===o||o;if(!d.a.Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var a=e.get("name"),s=e.get("in"),u=[];return e&&e.hashCode&&s&&a&&i&&u.push("".concat(s,".").concat(a,".hash-").concat(e.hashCode())),s&&a&&u.push("".concat(s,".").concat(a)),u.push(a),r?u:u[0]||""}function je(e,t){return Te(e,{returnAll:!0}).map(function(e){return t[e]}).filter(function(e){return void 0!==e})[0]}function Pe(){return Me(M()(32).toString("base64"))}function Ie(e){return Me(R()("sha256").update(e).digest("base64"))}function Me(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}).call(this,n(64).Buffer)},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(54);function o(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),r(e,o.key,o)}}e.exports=function(e,t,n){return t&&o(e.prototype,t),n&&o(e,n),e}},function(e,t,n){var r=n(26),o=n(9);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t}},function(e,t,n){var r=n(806),o=n(420);function i(t){return e.exports=i=o?r:function(e){return e.__proto__||r(e)},i(t)}e.exports=i},function(e,t,n){var r=n(421),o=n(814);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=r(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t,n){e.exports=n(892)()},function(e,t,n){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function o(e,t){return e===t}function i(e){var t=arguments.length<=1||void 0===arguments[1]?o:arguments[1],n=null,r=null;return function(){for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return null!==n&&n.length===i.length&&i.every(function(e,r){return t(e,n[r])})||(r=e.apply(void 0,i)),n=i,r}}function a(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every(function(e){return"function"==typeof e})){var n=t.map(function(e){return typeof e}).join(", ");throw new Error("Selector creators expect all input-selectors to be functions, instead received the following types: ["+n+"]")}return t}function s(e){for(var t=arguments.length,n=Array(t>1?t-1:0),o=1;o<t;o++)n[o-1]=arguments[o];return function(){for(var t=arguments.length,o=Array(t),i=0;i<t;i++)o[i]=arguments[i];var s=0,u=o.pop(),c=a(o),l=e.apply(void 0,[function(){return s++,u.apply(void 0,arguments)}].concat(n)),p=function(e,t){for(var n=arguments.length,o=Array(n>2?n-2:0),i=2;i<n;i++)o[i-2]=arguments[i];var a=c.map(function(n){return n.apply(void 0,[e,t].concat(o))});return l.apply(void 0,r(a))};return p.resultFunc=u,p.recomputations=function(){return s},p.resetRecomputations=function(){return s=0},p}}t.__esModule=!0,t.defaultMemoize=i,t.createSelectorCreator=s,t.createStructuredSelector=function(e){var t=arguments.length<=1||void 0===arguments[1]?u:arguments[1];if("object"!=typeof e)throw new Error("createStructuredSelector expects first argument to be an object where each property is a selector, instead received a "+typeof e);var n=Object.keys(e);return t(n.map(function(t){return e[t]}),function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce(function(e,t,r){return e[n[r]]=t,e},{})})};var u=t.createSelector=s(i)},function(e,t,n){var r=n(754),o=n(755),i=n(762);e.exports=function(e){return r(e)||o(e)||i()}},function(e,t,n){var r=n(597),o=n(598),i=n(601);e.exports=function(e,t){return r(e)||o(e,t)||i()}},function(e,t,n){e.exports=n(571)},function(e,t,n){"use strict";var r=function(e){};e.exports=function(e,t,n,o,i,a,s,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,i,a,s,u],p=0;(c=new Error(t.replace(/%s/g,function(){return l[p++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){e.exports=n(575)},function(e,t,n){e.exports=n(553)},function(e,t){e.exports=function(){var e={location:{},history:{},open:function(){},close:function(){},File:function(){}};if("undefined"==typeof window)return e;try{e=window;for(var t=0,n=["File","Blob","FormData"];t<n.length;t++){var r=n[t];r in window&&(e[r]=window[r])}}catch(e){console.error(e)}return e}()},function(e,t,n){"use strict";var r=n(1),o="<<anonymous>>",i={listOf:function(e){return c(e,"List",r.List.isList)},mapOf:function(e,t){return l(e,t,"Map",r.Map.isMap)},orderedMapOf:function(e,t){return l(e,t,"OrderedMap",r.OrderedMap.isOrderedMap)},setOf:function(e){return c(e,"Set",r.Set.isSet)},orderedSetOf:function(e){return c(e,"OrderedSet",r.OrderedSet.isOrderedSet)},stackOf:function(e){return c(e,"Stack",r.Stack.isStack)},iterableOf:function(e){return c(e,"Iterable",r.Iterable.isIterable)},recordOf:function(e){return s(function(t,n,o,i,s){for(var u=arguments.length,c=Array(u>5?u-5:0),l=5;l<u;l++)c[l-5]=arguments[l];var p=t[n];if(!(p instanceof r.Record)){var f=a(p);return new Error("Invalid "+i+" `"+s+"` of type `"+f+"` supplied to `"+o+"`, expected an Immutable.js Record.")}for(var h in e){var d=e[h];if(d){var m=p.toObject(),v=d.apply(void 0,[m,h,o,i,s+"."+h].concat(c));if(v)return v}}})},shape:f,contains:f,mapContains:function(e){return p(e,"Map",r.Map.isMap)},list:u("List",r.List.isList),map:u("Map",r.Map.isMap),orderedMap:u("OrderedMap",r.OrderedMap.isOrderedMap),set:u("Set",r.Set.isSet),orderedSet:u("OrderedSet",r.OrderedSet.isOrderedSet),stack:u("Stack",r.Stack.isStack),seq:u("Seq",r.Seq.isSeq),record:u("Record",function(e){return e instanceof r.Record}),iterable:u("Iterable",r.Iterable.isIterable)};function a(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":e instanceof r.Iterable?"Immutable."+e.toSource().split(" ")[0]:t}function s(e){function t(t,n,r,i,a,s){for(var u=arguments.length,c=Array(u>6?u-6:0),l=6;l<u;l++)c[l-6]=arguments[l];return s=s||r,i=i||o,null!=n[r]?e.apply(void 0,[n,r,i,a,s].concat(c)):t?new Error("Required "+a+" `"+s+"` was not specified in `"+i+"`."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function u(e,t){return s(function(n,r,o,i,s){var u=n[r];if(!t(u)){var c=a(u);return new Error("Invalid "+i+" `"+s+"` of type `"+c+"` supplied to `"+o+"`, expected `"+e+"`.")}return null})}function c(e,t,n){return s(function(r,o,i,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=r[o];if(!n(f)){var h=s,d=a(f);return new Error("Invalid "+h+" `"+u+"` of type `"+d+"` supplied to `"+i+"`, expected an Immutable.js "+t+".")}if("function"!=typeof e)return new Error("Invalid typeChecker supplied to `"+i+"` for propType `"+u+"`, expected a function.");for(var m=f.toArray(),v=0,g=m.length;v<g;v++){var y=e.apply(void 0,[m,v,i,s,u+"["+v+"]"].concat(l));if(y instanceof Error)return y}})}function l(e,t,n,r){return s(function(){for(var o=arguments.length,i=Array(o),a=0;a<o;a++)i[a]=arguments[a];return c(e,n,r).apply(void 0,i)||t&&(u=t,s(function(e,t,n,r,o){for(var i=arguments.length,a=Array(i>5?i-5:0),s=5;s<i;s++)a[s-5]=arguments[s];var c=e[t];if("function"!=typeof u)return new Error("Invalid keysTypeChecker (optional second argument) supplied to `"+n+"` for propType `"+o+"`, expected a function.");for(var l=c.keySeq().toArray(),p=0,f=l.length;p<f;p++){var h=u.apply(void 0,[l,p,n,r,o+" -> key("+l[p]+")"].concat(a));if(h instanceof Error)return h}})).apply(void 0,i);var u})}function p(e){var t=void 0===arguments[1]?"Iterable":arguments[1],n=void 0===arguments[2]?r.Iterable.isIterable:arguments[2];return s(function(r,o,i,s,u){for(var c=arguments.length,l=Array(c>5?c-5:0),p=5;p<c;p++)l[p-5]=arguments[p];var f=r[o];if(!n(f)){var h=a(f);return new Error("Invalid "+s+" `"+u+"` of type `"+h+"` supplied to `"+i+"`, expected an Immutable.js "+t+".")}var d=f.toObject();for(var m in e){var v=e[m];if(v){var g=v.apply(void 0,[d,m,i,s,u+"."+m].concat(l));if(g)return g}}})}function f(e){return p(e)}e.exports=i},function(e,t,n){var r=n(16);function o(){return e.exports=o=r||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}e.exports=o},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t){var n=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(e,t,n){"use strict";var r=n(57);e.exports=r},function(e,t,n){"use strict";n.r(t),n.d(t,"isOAS3",function(){return s}),n.d(t,"isSwagger2",function(){return u}),n.d(t,"OAS3ComponentWrapFactory",function(){return c});var r=n(20),o=n.n(r),i=n(0),a=n.n(i);function s(e){var t=e.get("openapi");return"string"==typeof t&&(t.startsWith("3.0.")&&t.length>4)}function u(e){var t=e.get("swagger");return"string"==typeof t&&t.startsWith("2.0")}function c(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?s(n.specSelectors.specJson())?a.a.createElement(e,o()({},r,n,{Ori:t})):a.a.createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},function(e,t,n){"use strict";
 /*
 object-assign
 (c) Sindre Sorhus
 @license MIT
 /*
 object-assign
 (c) Sindre Sorhus
 @license MIT
-*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=a(e),c=1;c<arguments.length;c++){for(var l in n=Object(arguments[c]))o.call(n,l)&&(u[l]=n[l]);if(r){s=r(n);for(var p=0;p<s.length;p++)i.call(n,s[p])&&(u[s[p]]=n[s[p]])}}return u}},function(e,t,n){var r=n(546),o=n(552);function i(e){return(i="function"==typeof o&&"symbol"==typeof r?function(e){return typeof e}:function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":typeof e})(e)}function a(t){return"function"==typeof o&&"symbol"===i(r)?e.exports=a=function(e){return i(e)}:e.exports=a=function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":i(e)},a(t)}e.exports=a},function(e,t,n){"use strict";var r=n(21),o=n(111),i=n(415),a=(n(15),o.ID_ATTRIBUTE_NAME),s=i,u="__reactInternalInstance$"+Math.random().toString(36).slice(2);function c(e,t){return 1===e.nodeType&&e.getAttribute(a)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function l(e){for(var t;t=e._renderedComponent;)e=t;return e}function p(e,t){var n=l(e);n._hostNode=t,t[u]=n}function f(e,t){if(!(e._flags&s.hasCachedChildNodes)){var n=e._renderedChildren,o=t.firstChild;e:for(var i in n)if(n.hasOwnProperty(i)){var a=n[i],u=l(a)._domID;if(0!==u){for(;null!==o;o=o.nextSibling)if(c(o,u)){p(a,o);continue e}r("32",u)}}e._flags|=s.hasCachedChildNodes}}function h(e){if(e[u])return e[u];for(var t,n,r=[];!e[u];){if(r.push(e),!e.parentNode)return null;e=e.parentNode}for(;e&&(n=e[u]);e=r.pop())t=n,r.length&&f(n,e);return t}var d={getClosestInstanceFromNode:h,getInstanceFromNode:function(e){var t=h(e);return null!=t&&t._hostNode===e?t:null},getNodeFromInstance:function(e){if(void 0===e._hostNode&&r("33"),e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent||r("34"),e=e._hostParent;for(;t.length;e=t.pop())f(e,e._hostNode);return e._hostNode},precacheChildNodes:f,precacheNode:p,uncacheNode:function(e){var t=e._hostNode;t&&(delete t[u],e._hostNode=null)}};e.exports=d},function(e,t,n){e.exports=n(541)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SPEC",function(){return G}),n.d(t,"UPDATE_URL",function(){return $}),n.d(t,"UPDATE_JSON",function(){return Z}),n.d(t,"UPDATE_PARAM",function(){return X}),n.d(t,"UPDATE_EMPTY_PARAM_INCLUSION",function(){return Q}),n.d(t,"VALIDATE_PARAMS",function(){return ee}),n.d(t,"SET_RESPONSE",function(){return te}),n.d(t,"SET_REQUEST",function(){return ne}),n.d(t,"SET_MUTATED_REQUEST",function(){return re}),n.d(t,"LOG_REQUEST",function(){return oe}),n.d(t,"CLEAR_RESPONSE",function(){return ie}),n.d(t,"CLEAR_REQUEST",function(){return ae}),n.d(t,"CLEAR_VALIDATE_PARAMS",function(){return se}),n.d(t,"UPDATE_OPERATION_META_VALUE",function(){return ue}),n.d(t,"UPDATE_RESOLVED",function(){return ce}),n.d(t,"UPDATE_RESOLVED_SUBTREE",function(){return le}),n.d(t,"SET_SCHEME",function(){return pe}),n.d(t,"updateSpec",function(){return he}),n.d(t,"updateResolved",function(){return de}),n.d(t,"updateUrl",function(){return me}),n.d(t,"updateJsonSpec",function(){return ve}),n.d(t,"parseToJson",function(){return ge}),n.d(t,"resolveSpec",function(){return be}),n.d(t,"requestResolvedSubtree",function(){return xe}),n.d(t,"changeParam",function(){return Ee}),n.d(t,"changeParamByIdentity",function(){return Se}),n.d(t,"updateResolvedSubtree",function(){return Ce}),n.d(t,"invalidateResolvedSubtreeCache",function(){return ke}),n.d(t,"validateParams",function(){return Oe}),n.d(t,"updateEmptyParamInclusion",function(){return Ae}),n.d(t,"clearValidateParams",function(){return Te}),n.d(t,"changeConsumesValue",function(){return je}),n.d(t,"changeProducesValue",function(){return Pe}),n.d(t,"setResponse",function(){return Ie}),n.d(t,"setRequest",function(){return Me}),n.d(t,"setMutatedRequest",function(){return Ne}),n.d(t,"logRequest",function(){return Re}),n.d(t,"executeRequest",function(){return De}),n.d(t,"execute",function(){return Le}),n.d(t,"clearResponse",function(){return Ue}),n.d(t,"clearRequest",function(){return qe}),n.d(t,"setScheme",function(){return Fe});var r=n(92),o=n.n(r),i=n(57),a=n.n(i),s=n(58),u=n.n(s),c=n(52),l=n.n(c),p=n(2),f=n.n(p),h=n(38),d=n.n(h),m=n(324),v=n.n(m),g=n(16),y=n.n(g),b=n(17),_=n.n(b),w=n(189),x=n.n(w),E=n(119),S=n.n(E),C=n(190),k=n.n(C),O=n(51),A=n.n(O),T=n(14),j=n.n(T),P=n(26),I=n.n(P),M=n(143),N=n.n(M),R=n(1),D=n(93),L=n.n(D),U=n(115),q=n.n(U),F=n(275),z=n.n(F),B=n(471),V=n.n(B),H=n(325),W=n.n(H),J=n(3);function Y(e,t){var n=_()(e);if(l.a){var r=l()(e);t&&(r=r.filter(function(t){return u()(e,t).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Y(n,!0).forEach(function(t){f()(e,t,n[t])}):a.a?o()(e,a()(n)):Y(n).forEach(function(t){A()(e,t,u()(n,t))})}return e}var G="spec_update_spec",$="spec_update_url",Z="spec_update_json",X="spec_update_param",Q="spec_update_empty_param_inclusion",ee="spec_validate_param",te="spec_set_response",ne="spec_set_request",re="spec_set_mutated_request",oe="spec_log_request",ie="spec_clear_response",ae="spec_clear_request",se="spec_clear_validate_param",ue="spec_update_operation_meta_value",ce="spec_update_resolved",le="spec_update_resolved_subtree",pe="set_scheme",fe=function(e){return z()(e)?e:""};function he(e){var t=fe(e).replace(/\t/g,"  ");if("string"==typeof e)return{type:G,payload:t}}function de(e){return{type:ce,payload:e}}function me(e){return{type:$,payload:e}}function ve(e){return{type:Z,payload:e}}var ge=function(e){return function(t){var n=t.specActions,r=t.specSelectors,o=t.errActions,i=r.specStr,a=null;try{e=e||i(),o.clear({source:"parser"}),a=N.a.safeLoad(e)}catch(e){return console.error(e),o.newSpecErr({source:"parser",level:"error",message:e.reason,line:e.mark&&e.mark.line?e.mark.line+1:void 0})}return a&&"object"===I()(a)?n.updateJsonSpec(a):{}}},ye=!1,be=function(e,t){return function(n){var r=n.specActions,o=n.specSelectors,i=n.errActions,a=n.fn,s=a.fetch,u=a.resolve,c=a.AST,l=void 0===c?{}:c,p=n.getConfigs;ye||(console.warn("specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!"),ye=!0);var f=p(),h=f.modelPropertyMacro,d=f.parameterMacro,m=f.requestInterceptor,v=f.responseInterceptor;void 0===e&&(e=o.specJson()),void 0===t&&(t=o.url());var g=l.getLineNumberForPath?l.getLineNumberForPath:function(){},y=o.specStr();return u({fetch:s,spec:e,baseDoc:t,modelPropertyMacro:h,parameterMacro:d,requestInterceptor:m,responseInterceptor:v}).then(function(e){var t=e.spec,n=e.errors;if(i.clear({type:"thrown"}),j()(n)&&n.length>0){var o=n.map(function(e){return console.error(e),e.line=e.fullPath?g(y,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e});i.newThrownErrBatch(o)}return r.updateResolved(t)})}},_e=[],we=V()(k()(S.a.mark(function e(){var t,n,r,o,i,a,s,u,c,l,p,f,h,d,m,v,g;return S.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=_e.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,o=t.fn,i=o.resolveSubtree,a=o.AST,s=void 0===a?{}:a,u=t.specSelectors,c=t.specActions,i){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return l=s.getLineNumberForPath?s.getLineNumberForPath:function(){},p=u.specStr(),f=t.getConfigs(),h=f.modelPropertyMacro,d=f.parameterMacro,m=f.requestInterceptor,v=f.responseInterceptor,e.prev=11,e.next=14,_e.reduce(function(){var e=k()(S.a.mark(function e(t,o){var a,s,c,f,g,y,b;return S.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return a=e.sent,s=a.resultMap,c=a.specWithCurrentSubtrees,e.next=7,i(c,o,{baseDoc:u.url(),modelPropertyMacro:h,parameterMacro:d,requestInterceptor:m,responseInterceptor:v});case 7:return f=e.sent,g=f.errors,y=f.spec,r.allErrors().size&&n.clearBy(function(e){return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!e.get("fullPath").every(function(e,t){return e===o[t]||void 0===o[t]})}),j()(g)&&g.length>0&&(b=g.map(function(e){return e.line=e.fullPath?l(p,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e}),n.newThrownErrBatch(b)),W()(s,o,y),W()(c,o,y),e.abrupt("return",{resultMap:s,specWithCurrentSubtrees:c});case 15:case"end":return e.stop()}},e)}));return function(t,n){return e.apply(this,arguments)}}(),x.a.resolve({resultMap:(u.specResolvedSubtree([])||Object(R.Map)()).toJS(),specWithCurrentSubtrees:u.specJson().toJS()}));case 14:g=e.sent,delete _e.system,_e=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:c.updateResolvedSubtree([],g.resultMap);case 23:case"end":return e.stop()}},e,null,[[11,19]])})),35),xe=function(e){return function(t){_e.map(function(e){return e.join("@@")}).indexOf(e.join("@@"))>-1||(_e.push(e),_e.system=t,we())}};function Ee(e,t,n,r,o){return{type:X,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:o}}}function Se(e,t,n,r){return{type:X,payload:{path:e,param:t,value:n,isXml:r}}}var Ce=function(e,t){return{type:le,payload:{path:e,value:t}}},ke=function(){return{type:le,payload:{path:[],value:Object(R.Map)()}}},Oe=function(e,t){return{type:ee,payload:{pathMethod:e,isOAS3:t}}},Ae=function(e,t,n,r){return{type:Q,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function Te(e){return{type:se,payload:{pathMethod:e}}}function je(e,t){return{type:ue,payload:{path:e,value:t,key:"consumes_value"}}}function Pe(e,t){return{type:ue,payload:{path:e,value:t,key:"produces_value"}}}var Ie=function(e,t,n){return{payload:{path:e,method:t,res:n},type:te}},Me=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ne}},Ne=function(e,t,n){return{payload:{path:e,method:t,req:n},type:re}},Re=function(e){return{payload:e,type:oe}},De=function(e){return function(t){var n=t.fn,r=t.specActions,o=t.specSelectors,i=t.getConfigs,a=t.oas3Selectors,s=e.pathName,u=e.method,c=e.operation,l=i(),p=l.requestInterceptor,f=l.responseInterceptor,h=c.toJS();if(c&&c.get("parameters")&&c.get("parameters").filter(function(e){return e&&!0===e.get("allowEmptyValue")}).forEach(function(t){if(o.parameterInclusionSettingFor([s,u],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=Object(J.A)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}),e.contextUrl=L()(o.url()).toString(),h&&h.operationId?e.operationId=h.operationId:h&&s&&u&&(e.operationId=n.opId(h,s,u)),o.isOAS3()){var d="".concat(s,":").concat(u);e.server=a.selectedServer(d)||a.selectedServer();var m=a.serverVariables({server:e.server,namespace:d}).toJS(),g=a.serverVariables({server:e.server}).toJS();e.serverVariables=_()(m).length?m:g,e.requestContentType=a.requestContentType(s,u),e.responseContentType=a.responseContentType(s,u)||"*/*";var b=a.requestBodyValue(s,u);Object(J.r)(b)?e.requestBody=JSON.parse(b):b&&b.toJS?e.requestBody=b.toJS():e.requestBody=b}var w=y()({},e);w=n.buildRequest(w),r.setRequest(e.pathName,e.method,w);e.requestInterceptor=function(t){var n=p.apply(this,[t]),o=y()({},n);return r.setMutatedRequest(e.pathName,e.method,o),n},e.responseInterceptor=f;var x=v()();return n.execute(e).then(function(t){t.duration=v()()-x,r.setResponse(e.pathName,e.method,t)}).catch(function(t){console.error(t),r.setResponse(e.pathName,e.method,{error:!0,err:q()(t)})})}},Le=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=d()(e,["path","method"]);return function(e){var o=e.fn.fetch,i=e.specSelectors,a=e.specActions,s=i.specJsonWithResolvedSubtrees().toJS(),u=i.operationScheme(t,n),c=i.contentTypeValues([t,n]).toJS(),l=c.requestContentType,p=c.responseContentType,f=/xml/i.test(l),h=i.parameterValues([t,n],f).toJS();return a.executeRequest(K({},r,{fetch:o,spec:s,pathName:t,method:n,parameters:h,requestContentType:l,scheme:u,responseContentType:p}))}};function Ue(e,t){return{type:ie,payload:{path:e,method:t}}}function qe(e,t){return{type:ae,payload:{path:e,method:t}}}function Fe(e,t,n){return{type:pe,payload:{scheme:e,path:t,method:n}}}},function(e,t,n){var r=n(32),o=n(22),i=n(60),a=n(71),s=n(69),u=function(e,t,n){var c,l,p,f=e&u.F,h=e&u.G,d=e&u.S,m=e&u.P,v=e&u.B,g=e&u.W,y=h?o:o[t]||(o[t]={}),b=y.prototype,_=h?r:d?r[t]:(r[t]||{}).prototype;for(c in h&&(n=t),n)(l=!f&&_&&void 0!==_[c])&&s(y,c)||(p=l?_[c]:n[c],y[c]=h&&"function"!=typeof _[c]?n[c]:v&&l?i(p,r):g&&_[c]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(p):m&&"function"==typeof p?i(Function.call,p):p,m&&((y.virtual||(y.virtual={}))[c]=p,e&u.R&&b&&!b[c]&&a(b,c,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){"use strict";var r=n(135),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];e.exports=function(e,t){var n,a;if(t=t||{},Object.keys(t).forEach(function(t){if(-1===o.indexOf(t))throw new r('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,a={},null!==n&&Object.keys(n).forEach(function(e){n[e].forEach(function(t){a[String(t)]=e})}),a),-1===i.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(328)("wks"),o=n(195),i=n(44).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(206)("wks"),o=n(155),i=n(32).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return!!e&&r.call(e,t)}var i=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;function a(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function s(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var u=/&([a-z#][a-z0-9]{1,31});/gi,c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(457);function p(e,t){var n=0;return o(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&a(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?s(n):e}var f=/[&<>"]/,h=/[&<>"]/g,d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function m(e){return d[e]}t.assign=function(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=o,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")},t.isValidEntityCode=a,t.fromCodePoint=s,t.replaceEntities=function(e){return e.indexOf("&")<0?e:e.replace(u,p)},t.escapeHtml=function(e){return f.test(e)?e.replace(h,m):e}},function(e,t,n){var r=n(52),o=n(756);e.exports=function(e,t){if(null==e)return{};var n,i,a=o(e,t);if(r){var s=r(e);for(i=0;i<s.length;i++)n=s[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t,n){var r=n(44),o=n(78),i=n(76),a=n(95),s=n(150),u=function(e,t,n){var c,l,p,f,h=e&u.F,d=e&u.G,m=e&u.S,v=e&u.P,g=e&u.B,y=d?r:m?r[t]||(r[t]={}):(r[t]||{}).prototype,b=d?o:o[t]||(o[t]={}),_=b.prototype||(b.prototype={});for(c in d&&(n=t),n)p=((l=!h&&y&&void 0!==y[c])?y:n)[c],f=g&&l?s(p,r):v&&"function"==typeof p?s(Function.call,p):p,y&&a(y,c,p,e&u.U),b[c]!=p&&i(b,c,f),v&&_[c]!=p&&(_[c]=p)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){var r=n(39),o=n(123),i=n(68),a=/"/g,s=function(e,t,n,r){var o=String(i(e)),s="<"+t;return""!==n&&(s+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),s+">"+o+"</"+t+">"};e.exports=function(e,t){var n={};n[e]=t(s),r(r.P+r.F*o(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";n.r(t),n.d(t,"NEW_THROWN_ERR",function(){return i}),n.d(t,"NEW_THROWN_ERR_BATCH",function(){return a}),n.d(t,"NEW_SPEC_ERR",function(){return s}),n.d(t,"NEW_SPEC_ERR_BATCH",function(){return u}),n.d(t,"NEW_AUTH_ERR",function(){return c}),n.d(t,"CLEAR",function(){return l}),n.d(t,"CLEAR_BY",function(){return p}),n.d(t,"newThrownErr",function(){return f}),n.d(t,"newThrownErrBatch",function(){return h}),n.d(t,"newSpecErr",function(){return d}),n.d(t,"newSpecErrBatch",function(){return m}),n.d(t,"newAuthErr",function(){return v}),n.d(t,"clear",function(){return g}),n.d(t,"clearBy",function(){return y});var r=n(115),o=n.n(r),i="err_new_thrown_err",a="err_new_thrown_err_batch",s="err_new_spec_err",u="err_new_spec_err_batch",c="err_new_auth_err",l="err_clear",p="err_clear_by";function f(e){return{type:i,payload:o()(e)}}function h(e){return{type:a,payload:e}}function d(e){return{type:s,payload:e}}function m(e){return{type:u,payload:e}}function v(e){return{type:c,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:l,payload:e}}function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:p,payload:e}}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(41);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(80)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(45),o=n(344),i=n(210),a=Object.defineProperty;t.f=n(46)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(361),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";e.exports={debugTool:null}},function(e,t,n){e.exports=n(562)},function(e,t,n){e.exports=n(755)},function(e,t,n){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([function(e,t){e.exports=n(17)},function(e,t){e.exports=n(14)},function(e,t){e.exports=n(26)},function(e,t){e.exports=n(16)},function(e,t){e.exports=n(119)},function(e,t){e.exports=n(57)},function(e,t){e.exports=n(58)},function(e,t){e.exports=n(52)},function(e,t){e.exports=n(2)},function(e,t){e.exports=n(51)},function(e,t){e.exports=n(92)},function(e,t){e.exports=n(28)},function(e,t){e.exports=n(916)},function(e,t){e.exports=n(12)},function(e,t){e.exports=n(189)},function(e,t){e.exports=n(922)},function(e,t){e.exports=n(91)},function(e,t){e.exports=n(190)},function(e,t){e.exports=n(925)},function(e,t){e.exports=n(929)},function(e,t){e.exports=n(930)},function(e,t){e.exports=n(90)},function(e,t){e.exports=n(13)},function(e,t){e.exports=n(143)},function(e,t){e.exports=n(4)},function(e,t){e.exports=n(5)},function(e,t){e.exports=n(932)},function(e,t){e.exports=n(414)},function(e,t){e.exports=n(935)},function(e,t){e.exports=n(49)},function(e,t){e.exports=n(61)},function(e,t){e.exports=n(275)},function(e,t){e.exports=n(264)},function(e,t){e.exports=n(936)},function(e,t){e.exports=n(142)},function(e,t){e.exports=n(937)},function(e,t){e.exports=n(945)},function(e,t){e.exports=n(946)},function(e,t){e.exports=n(947)},function(e,t){e.exports=n(38)},function(e,t){e.exports=n(256)},function(e,t){e.exports=n(35)},function(e,t){e.exports=n(950)},function(e,t){e.exports=n(951)},function(e,t){e.exports=n(952)},function(e,t,n){e.exports=n(50)},function(e,t){e.exports=n(953)},function(e,t){e.exports=n(954)},function(e,t){e.exports=n(955)},function(e,t){e.exports=n(956)},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"path",function(){return dn}),n.d(r,"query",function(){return mn}),n.d(r,"header",function(){return gn}),n.d(r,"cookie",function(){return yn});var o=n(9),i=n.n(o),a=n(10),s=n.n(a),u=n(5),c=n.n(u),l=n(6),p=n.n(l),f=n(7),h=n.n(f),d=n(0),m=n.n(d),v=n(8),g=n.n(v),y=(n(46),n(15)),b=n.n(y),_=n(20),w=n.n(_),x=n(12),E=n.n(x),S=n(4),C=n.n(S),k=n(22),O=n.n(k),A=n(11),T=n.n(A),j=n(2),P=n.n(j),I=n(1),M=n.n(I),N=n(17),R=n.n(N),D=(n(47),n(26)),L=n.n(D),U=n(23),q=n.n(U),F=n(31),z=n.n(F),B={serializeRes:J,mergeInQueryOrForm:Z};function V(e){return H.apply(this,arguments)}function H(){return(H=R()(C.a.mark(function e(t){var n,r,o,i,a,s=arguments;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},"object"===P()(t)&&(t=(n=t).url),n.headers=n.headers||{},B.mergeInQueryOrForm(n),n.headers&&m()(n.headers).forEach(function(e){var t=n.headers[e];"string"==typeof t&&(n.headers[e]=t.replace(/\n+/g," "))}),!n.requestInterceptor){e.next=12;break}return e.next=8,n.requestInterceptor(n);case 8:if(e.t0=e.sent,e.t0){e.next=11;break}e.t0=n;case 11:n=e.t0;case 12:return r=n.headers["content-type"]||n.headers["Content-Type"],/multipart\/form-data/i.test(r)&&(delete n.headers["content-type"],delete n.headers["Content-Type"]),e.prev=14,e.next=17,(n.userFetch||fetch)(n.url,n);case 17:return o=e.sent,e.next=20,B.serializeRes(o,t,n);case 20:if(o=e.sent,!n.responseInterceptor){e.next=28;break}return e.next=24,n.responseInterceptor(o);case 24:if(e.t1=e.sent,e.t1){e.next=27;break}e.t1=o;case 27:o=e.t1;case 28:e.next=38;break;case 30:if(e.prev=30,e.t2=e.catch(14),o){e.next=34;break}throw e.t2;case 34:throw(i=new Error(o.statusText)).statusCode=i.status=o.status,i.responseError=e.t2,i;case 38:if(o.ok){e.next=43;break}throw(a=new Error(o.statusText)).statusCode=a.status=o.status,a.response=o,a;case 43:return e.abrupt("return",o);case 44:case"end":return e.stop()}},e,null,[[14,30]])}))).apply(this,arguments)}var W=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/(json|xml|yaml|text)\b/.test(e)};function J(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).loadSpec,r=void 0!==n&&n,o={ok:e.ok,url:e.url||t,status:e.status,statusText:e.statusText,headers:Y(e.headers)},i=o.headers["content-type"],a=r||W(i);return(a?e.text:e.blob||e.buffer).call(e).then(function(e){if(o.text=e,o.data=e,a)try{var t=function(e,t){return t&&(0===t.indexOf("application/json")||t.indexOf("+json")>0)?JSON.parse(e):q.a.safeLoad(e)}(e,i);o.body=t,o.obj=t}catch(e){o.parseError=e}return o})}function Y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return"function"==typeof e.forEach?(e.forEach(function(e,n){void 0!==t[n]?(t[n]=M()(t[n])?t[n]:[t[n]],t[n].push(e)):t[n]=e}),t):t}function K(e,t){return t||"undefined"==typeof navigator||(t=navigator),t&&"ReactNative"===t.product?!(!e||"object"!==P()(e)||"string"!=typeof e.uri):"undefined"!=typeof File?e instanceof File:null!==e&&"object"===P()(e)&&"function"==typeof e.pipe}function G(e,t){var n=e.collectionFormat,r=e.allowEmptyValue,o="object"===P()(e)?e.value:e;if(void 0===o&&r)return"";if(K(o)||"boolean"==typeof o)return o;var i=encodeURIComponent;return t&&(i=z()(o)?function(e){return e}:function(e){return T()(e)}),"object"!==P()(o)||M()(o)?M()(o)?M()(o)&&!n?o.map(i).join(","):"multi"===n?o.map(i):o.map(i).join({csv:",",ssv:"%20",tsv:"%09",pipes:"|"}[n]):i(o):""}function $(e){var t=m()(e).reduce(function(t,n){var r,o=e[n],i=!!o.skipEncoding,a=i?n:encodeURIComponent(n),s=(r=o)&&"object"===P()(r)&&!M()(o);return t[a]=G(s?o:{value:o},i),t},{});return L.a.stringify(t,{encode:!1,indices:!1})||""}function Z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,r=void 0===t?"":t,o=e.query,i=e.form;if(i){var a=m()(i).some(function(e){return K(i[e].value)}),s=e.headers["content-type"]||e.headers["Content-Type"];if(a||/multipart\/form-data/i.test(s)){var u=n(48);e.body=new u,m()(i).forEach(function(t){e.body.append(t,G(i[t],!0))})}else e.body=$(i);delete e.form}if(o){var c=r.split("?"),l=O()(c,2),p=l[0],f=l[1],h="";if(f){var d=L.a.parse(f);m()(o).forEach(function(e){return delete d[e]}),h=L.a.stringify(d,{encode:!0})}var v=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter(function(e){return e}).join("&");return r?"?".concat(r):""}(h,$(o));e.url=p+v,delete e.query}return e}var X=n(14),Q=n.n(X),ee=n(21),te=n.n(ee),ne=n(27),re=n.n(ne),oe=n(3),ie=n.n(oe),ae=n(24),se=n.n(ae),ue=n(25),ce=n.n(ue),le=n(32),pe=n.n(le),fe=n(13),he=n.n(fe),de=n(18),me=n.n(de),ve=n(33),ge=n.n(ve),ye=n(34),be=n.n(ye),_e={add:function(e,t){return{op:"add",path:e,value:t}},replace:xe,remove:function(e,t){return{op:"remove",path:e}},merge:function(e,t){return{type:"mutation",op:"merge",path:e,value:t}},mergeDeep:function(e,t){return{type:"mutation",op:"mergeDeep",path:e,value:t}},context:function(e,t){return{type:"context",path:e,value:t}},getIn:function(e,t){return t.reduce(function(e,t){return void 0!==t&&e?e[t]:e},e)},applyPatch:function(e,t,n){if(n=n||{},"merge"===(t=ie()({},t,{path:t.path&&we(t.path)})).op){var r=Re(e,t.path);ie()(r,t.value),me.a.applyPatch(e,[xe(t.path,r)])}else if("mergeDeep"===t.op){var o=Re(e,t.path);for(var i in t.value){var a=t.value[i],s=M()(a);if(s){var u=o[i]||[];o[i]=u.concat(a)}else if(Te(a)&&!s){var c=ie()({},o[i]);for(var l in a){if(Object.prototype.hasOwnProperty.call(c,l)){c=ge()(be()({},c),a);break}ie()(c,g()({},l,a[l]))}o[i]=c}else o[i]=a}}else if("add"===t.op&&""===t.path&&Te(t.value)){var p=m()(t.value).reduce(function(e,n){return e.push({op:"add",path:"/".concat(we(n)),value:t.value[n]}),e},[]);me.a.applyPatch(e,p)}else if("replace"===t.op&&""===t.path){var f=t.value;n.allowMetaPatches&&t.meta&&Me(t)&&(M()(t.value)||Te(t.value))&&(f=ie()({},f,t.meta)),e=f}else if(me.a.applyPatch(e,[t]),n.allowMetaPatches&&t.meta&&Me(t)&&(M()(t.value)||Te(t.value))){var h=Re(e,t.path),d=ie()({},h,t.meta);me.a.applyPatch(e,[xe(t.path,d)])}return e},parentPathMatch:function(e,t){if(!M()(t))return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0},flatten:Oe,fullyNormalizeArray:function(e){return Ae(Oe(ke(e)))},normalizeArray:ke,isPromise:function(e){return Te(e)&&je(e.then)},forEachNew:function(e,t){try{return Ee(e,Ce,t)}catch(e){return e}},forEachNewPrimitive:function(e,t){try{return Ee(e,Se,t)}catch(e){return e}},isJsonPatch:Pe,isContextPatch:function(e){return Ne(e)&&"context"===e.type},isPatch:Ne,isMutation:Ie,isAdditiveMutation:Me,isGenerator:function(e){return C.a.isGeneratorFunction(e)},isFunction:je,isObject:Te,isError:function(e){return e instanceof Error}};function we(e){return M()(e)?e.length<1?"":"/"+e.map(function(e){return(e+"").replace(/~/g,"~0").replace(/\//g,"~1")}).join("/"):e}function xe(e,t,n){return{op:"replace",path:e,value:t,meta:n}}function Ee(e,t,n){return Ae(Oe(e.filter(Me).map(function(e){return t(e.value,n,e.path)})||[]))}function Se(e,t,n){return n=n||[],M()(e)?e.map(function(e,r){return Se(e,t,n.concat(r))}):Te(e)?m()(e).map(function(r){return Se(e[r],t,n.concat(r))}):t(e,n[n.length-1],n)}function Ce(e,t,n){var r=[];if((n=n||[]).length>0){var o=t(e,n[n.length-1],n);o&&(r=r.concat(o))}if(M()(e)){var i=e.map(function(e,r){return Ce(e,t,n.concat(r))});i&&(r=r.concat(i))}else if(Te(e)){var a=m()(e).map(function(r){return Ce(e[r],t,n.concat(r))});a&&(r=r.concat(a))}return r=Oe(r)}function ke(e){return M()(e)?e:[e]}function Oe(e){var t;return(t=[]).concat.apply(t,he()(e.map(function(e){return M()(e)?Oe(e):e})))}function Ae(e){return e.filter(function(e){return void 0!==e})}function Te(e){return e&&"object"===P()(e)}function je(e){return e&&"function"==typeof e}function Pe(e){if(Ne(e)){var t=e.op;return"add"===t||"remove"===t||"replace"===t}return!1}function Ie(e){return Pe(e)||Ne(e)&&"mutation"===e.type}function Me(e){return Ie(e)&&("add"===e.op||"replace"===e.op||"merge"===e.op||"mergeDeep"===e.op)}function Ne(e){return e&&"object"===P()(e)}function Re(e,t){try{return me.a.getValueByPointer(e,t)}catch(e){return console.error(e),{}}}var De=n(35),Le=n.n(De),Ue=n(36),qe=n(28),Fe=n.n(qe);function ze(e,t){function n(){Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack;for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];this.message=n[0],t&&t.apply(this,n)}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var Be=n(37),Ve=n.n(Be),He=["properties"],We=["properties"],Je=["definitions","parameters","responses","securityDefinitions","components/schemas","components/responses","components/parameters","components/securitySchemes"],Ye=["schema/example","items/example"];function Ke(e){var t=e[e.length-1],n=e[e.length-2],r=e.join("/");return He.indexOf(t)>-1&&-1===We.indexOf(n)||Je.indexOf(r)>-1||Ye.some(function(e){return r.indexOf(e)>-1})}function Ge(e,t){var n=e.split("#"),r=O()(n,2),o=r[0],i=r[1],a=E.a.resolve(o||"",t||"");return i?"".concat(a,"#").concat(i):a}var $e=new RegExp("^([a-z]+://|//)","i"),Ze=ze("JSONRefError",function(e,t,n){this.originalError=n,ie()(this,t||{})}),Xe={},Qe=new Le.a,et=[function(e){return"paths"===e[0]&&"responses"===e[3]&&"content"===e[5]&&"example"===e[7]},function(e){return"paths"===e[0]&&"requestBody"===e[3]&&"content"===e[4]&&"example"===e[6]}],tt={key:"$ref",plugin:function(e,t,n,r){var o=r.getInstance(),i=n.slice(0,-1);if(!Ke(i)&&(a=i,!et.some(function(e){return e(a)}))){var a,s=r.getContext(n).baseDoc;if("string"!=typeof e)return new Ze("$ref: must be a string (JSON-Ref)",{$ref:e,baseDoc:s,fullPath:n});var u,c,l,p=at(e),f=p[0],h=p[1]||"";try{u=s||f?ot(f,s):null}catch(t){return it(t,{pointer:h,$ref:e,basePath:u,fullPath:n})}if(function(e,t,n,r){var o=Qe.get(r);o||(o={},Qe.set(r,o));var i=function(e){if(0===e.length)return"";return"/".concat(e.map(ft).join("/"))}(n),a="".concat(t||"<specmap-base>","#").concat(e),s=i.replace(/allOf\/\d+\/?/g,""),u=r.contextTree.get([]).baseDoc;if(t==u&&dt(s,e))return!0;var c="";if(n.some(function(e){return c="".concat(c,"/").concat(ft(e)),o[c]&&o[c].some(function(e){return dt(e,a)||dt(a,e)})}))return!0;o[s]=(o[s]||[]).concat(a)}(h,u,i,r)&&!o.useCircularStructures){var d=Ge(e,u);return e===d?null:_e.replace(n,d)}if(null==u?(l=lt(h),void 0===(c=r.get(l))&&(c=new Ze("Could not resolve reference: ".concat(e),{pointer:h,$ref:e,baseDoc:s,fullPath:n}))):c=null!=(c=st(u,h)).__value?c.__value:c.catch(function(t){throw it(t,{pointer:h,$ref:e,baseDoc:s,fullPath:n})}),c instanceof Error)return[_e.remove(n),c];var v=Ge(e,u),g=_e.replace(i,c,{$$ref:v});if(u&&u!==s)return[g,_e.context(i,{baseDoc:u})];try{if(!function(e,t){var n=[e];return t.path.reduce(function(e,t){return n.push(e[t]),e[t]},e),function e(t){return _e.isObject(t)&&(n.indexOf(t)>=0||m()(t).some(function(n){return e(t[n])}))}(t.value)}(r.state,g)||o.useCircularStructures)return g}catch(e){return null}}}},nt=ie()(tt,{docCache:Xe,absoluteify:ot,clearCache:function(e){void 0!==e?delete Xe[e]:m()(Xe).forEach(function(e){delete Xe[e]})},JSONRefError:Ze,wrapError:it,getDoc:ut,split:at,extractFromDoc:st,fetchJSON:function(e){return Object(Ue.fetch)(e,{headers:{Accept:"application/json, application/yaml"},loadSpec:!0}).then(function(e){return e.text()}).then(function(e){return q.a.safeLoad(e)})},extract:ct,jsonPointerToArray:lt,unescapeJsonPointerToken:pt}),rt=nt;function ot(e,t){if(!$e.test(e)){if(!t)throw new Ze("Tried to resolve a relative URL, without having a basePath. path: '".concat(e,"' basePath: '").concat(t,"'"));return E.a.resolve(t,e)}return e}function it(e,t){var n;return n=e&&e.response&&e.response.body?"".concat(e.response.body.code," ").concat(e.response.body.message):e.message,new Ze("Could not resolve reference: ".concat(n),t,e)}function at(e){return(e+"").split("#")}function st(e,t){var n=Xe[e];if(n&&!_e.isPromise(n))try{var r=ct(t,n);return ie()(Q.a.resolve(r),{__value:r})}catch(e){return Q.a.reject(e)}return ut(e).then(function(e){return ct(t,e)})}function ut(e){var t=Xe[e];return t?_e.isPromise(t)?t:Q.a.resolve(t):(Xe[e]=nt.fetchJSON(e).then(function(t){return Xe[e]=t,t}),Xe[e])}function ct(e,t){var n=lt(e);if(n.length<1)return t;var r=_e.getIn(t,n);if(void 0===r)throw new Ze("Could not resolve pointer: ".concat(e," does not exist in document"),{pointer:e});return r}function lt(e){if("string"!=typeof e)throw new TypeError("Expected a string, got a ".concat(P()(e)));return"/"===e[0]&&(e=e.substr(1)),""===e?[]:e.split("/").map(pt)}function pt(e){return"string"!=typeof e?e:Fe.a.unescape(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function ft(e){return Fe.a.escape(e.replace(/~/g,"~0").replace(/\//g,"~1"))}var ht=function(e){return!e||"/"===e||"#"===e};function dt(e,t){if(ht(t))return!0;var n=e.charAt(t.length),r=t.slice(-1);return 0===e.indexOf(t)&&(!n||"/"===n||"#"===n)&&"#"!==r}var mt={key:"allOf",plugin:function(e,t,n,r,o){if(!o.meta||!o.meta.$$ref){var i=n.slice(0,-1);if(!Ke(i)){if(!M()(e)){var a=new TypeError("allOf must be an array");return a.fullPath=n,a}var s=!1,u=o.value;i.forEach(function(e){u&&(u=u[e])}),delete(u=ie()({},u)).allOf;var c=[];return c.push(r.replace(i,{})),e.forEach(function(e,t){if(!r.isObject(e)){if(s)return null;s=!0;var o=new TypeError("Elements in allOf must be objects");return o.fullPath=n,c.push(o)}c.push(r.mergeDeep(i,e));var a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.specmap,o=n.getBaseUrlForNodePath,i=void 0===o?function(e){return r.getContext([].concat(he()(t),he()(e))).baseDoc}:o,a=n.targetKeys,s=void 0===a?["$ref","$$ref"]:a,u=[];return Ve()(e).forEach(function(){if(s.indexOf(this.key)>-1){var e=this.path,n=t.concat(this.path),o=Ge(this.node,i(e));u.push(r.replace(n,o))}}),u}(e,n.slice(0,-1),{getBaseUrlForNodePath:function(e){return r.getContext([].concat(he()(n),[t],he()(e))).baseDoc},specmap:r});c.push.apply(c,he()(a))}),c.push(r.mergeDeep(i,u)),u.$$ref||c.push(r.remove([].concat(i,"$$ref"))),c}}}},vt={key:"parameters",plugin:function(e,t,n,r,o){if(M()(e)&&e.length){var i=ie()([],e),a=n.slice(0,-1),s=ie()({},_e.getIn(r.spec,a));return e.forEach(function(e,t){try{i[t].default=r.parameterMacro(s,e)}catch(e){var o=new Error(e);return o.fullPath=n,o}}),_e.replace(n,i)}return _e.replace(n,e)}},gt={key:"properties",plugin:function(e,t,n,r){var o=ie()({},e);for(var i in e)try{o[i].default=r.modelPropertyMacro(o[i])}catch(e){var a=new Error(e);return a.fullPath=n,a}return _e.replace(n,o)}};function yt(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}var bt=function(){function e(t){se()(this,e),this.root=_t(t||{})}return ce()(e,[{key:"set",value:function(e,t){var n=this.getParent(e,!0);if(n){var r=e[e.length-1],o=n.children;o[r]?wt(o[r],t,n):o[r]=_t(t,n)}else wt(this.root,t,null)}},{key:"get",value:function(e){if((e=e||[]).length<1)return this.root.value;for(var t,n,r=this.root,o=0;o<e.length&&(n=e[o],(t=r.children)[n]);o++)r=t[n];return r&&r.protoValue}},{key:"getParent",value:function(e,t){return!e||e.length<1?null:e.length<2?this.root:e.slice(0,-1).reduce(function(e,n){if(!e)return e;var r=e.children;return!r[n]&&t&&(r[n]=_t(null,e)),r[n]},this.root)}}]),e}();function _t(e,t){return wt({children:{}},e,t)}function wt(e,t,n){return e.value=t||{},e.protoValue=n?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?yt(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):yt(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}({},n.protoValue,{},e.value):e.value,m()(e.children).forEach(function(t){var n=e.children[t];e.children[t]=wt(n,n.value,e)}),e}var xt=function(){function e(t){var n=this;se()(this,e),ie()(this,{spec:"",debugLevel:"info",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new bt,showDebug:!1,allPatches:[],pluginProp:"specMap",libMethods:ie()(re()(this),_e,{getInstance:function(){return n}}),allowMetaPatches:!1},t),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(_e.isFunction),this.patches.push(_e.add([],this.spec)),this.patches.push(_e.context([],this.context)),this.updatePatches(this.patches)}return ce()(e,[{key:"debug",value:function(e){if(this.debugLevel===e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,r)}}},{key:"verbose",value:function(e){if("verbose"===this.debugLevel){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["[".concat(e,"]   ")].concat(r))}}},{key:"wrapPlugin",value:function(e,t){var n,r,o,i=this.pathDiscriminator,a=null;return e[this.pluginProp]?(a=e,n=e[this.pluginProp]):_e.isFunction(e)?n=e:_e.isObject(e)&&(r=e,o=function(e,t){return!M()(e)||e.every(function(e,n){return e===t[n]})},n=C.a.mark(function e(t,n){var a,s,u,c,l,p,f,h,d;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:d=function(e,t,u){var c,l,p,f,h,v,g,y,b,_,w,x,E;return C.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(_e.isObject(e)){a.next=6;break}if(r.key!==t[t.length-1]){a.next=4;break}return a.next=4,r.plugin(e,r.key,t,n);case 4:a.next=30;break;case 6:c=t.length-1,l=t[c],p=t.indexOf("properties"),f="properties"===l&&c===p,h=n.allowMetaPatches&&s[e.$$ref],v=0,g=m()(e);case 12:if(!(v<g.length)){a.next=30;break}if(y=g[v],b=e[y],_=t.concat(y),w=_e.isObject(b),x=e.$$ref,h){a.next=22;break}if(!w){a.next=22;break}return n.allowMetaPatches&&x&&(s[x]=!0),a.delegateYield(d(b,_,u),"t0",22);case 22:if(f||y!==r.key){a.next=27;break}if(E=o(i,t),i&&!E){a.next=27;break}return a.next=27,r.plugin(b,y,_,n,u);case 27:v++,a.next=12;break;case 30:case"end":return a.stop()}},a)},a=C.a.mark(d),s={},u=!0,c=!1,l=void 0,e.prev=6,p=te()(t.filter(_e.isAdditiveMutation));case 8:if(u=(f=p.next()).done){e.next=14;break}return h=f.value,e.delegateYield(d(h.value,h.path,h),"t0",11);case 11:u=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(6),c=!0,l=e.t1;case 20:e.prev=20,e.prev=21,u||null==p.return||p.return();case 23:if(e.prev=23,!c){e.next=26;break}throw l;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[6,16,20,28],[21,,23,27]])})),ie()(n.bind(a),{pluginName:e.name||t,isGenerator:_e.isGenerator(n)})}},{key:"nextPlugin",value:function(){var e=this;return pe()(this.wrappedPlugins,function(t){return e.getMutationsForPlugin(t).length>0})}},{key:"nextPromisedPatch",value:function(){if(this.promisedPatches.length>0)return Q.a.race(this.promisedPatches.map(function(e){return e.value}))}},{key:"getPluginHistory",value:function(e){var t=this.getPluginName(e);return this.pluginHistory[t]||[]}},{key:"getPluginRunCount",value:function(e){return this.getPluginHistory(e).length}},{key:"getPluginHistoryTip",value:function(e){var t=this.getPluginHistory(e);return t&&t[t.length-1]||{}}},{key:"getPluginMutationIndex",value:function(e){var t=this.getPluginHistoryTip(e).mutationIndex;return"number"!=typeof t?-1:t}},{key:"getPluginName",value:function(e){return e.pluginName}},{key:"updatePluginHistory",value:function(e,t){var n=this.getPluginName(e);(this.pluginHistory[n]=this.pluginHistory[n]||[]).push(t)}},{key:"updatePatches",value:function(e,t){var n=this;_e.normalizeArray(e).forEach(function(e){if(e instanceof Error)n.errors.push(e);else try{if(!_e.isObject(e))return void n.debug("updatePatches","Got a non-object patch",e);if(n.showDebug&&n.allPatches.push(e),_e.isPromise(e.value))return n.promisedPatches.push(e),void n.promisedPatchThen(e);if(_e.isContextPatch(e))return void n.setContext(e.path,e.value);if(_e.isMutation(e))return void n.updateMutations(e)}catch(e){console.error(e),n.errors.push(e)}})}},{key:"updateMutations",value:function(e){"object"===P()(e.value)&&!M()(e.value)&&this.allowMetaPatches&&(e.value=ie()({},e.value));var t=_e.applyPatch(this.state,e,{allowMetaPatches:this.allowMetaPatches});t&&(this.mutations.push(e),this.state=t)}},{key:"removePromisedPatch",value:function(e){var t=this.promisedPatches.indexOf(e);t<0?this.debug("Tried to remove a promisedPatch that isn't there!"):this.promisedPatches.splice(t,1)}},{key:"promisedPatchThen",value:function(e){var t=this;return e.value=e.value.then(function(n){var r=ie()({},e,{value:n});t.removePromisedPatch(e),t.updatePatches(r)}).catch(function(n){t.removePromisedPatch(e),t.updatePatches(n)})}},{key:"getMutations",value:function(e,t){return e=e||0,"number"!=typeof t&&(t=this.mutations.length),this.mutations.slice(e,t)}},{key:"getCurrentMutations",value:function(){return this.getMutationsForPlugin(this.getCurrentPlugin())}},{key:"getMutationsForPlugin",value:function(e){var t=this.getPluginMutationIndex(e);return this.getMutations(t+1)}},{key:"getCurrentPlugin",value:function(){return this.currentPlugin}},{key:"getPatchesOfType",value:function(e,t){return e.filter(t)}},{key:"getLib",value:function(){return this.libMethods}},{key:"_get",value:function(e){return _e.getIn(this.state,e)}},{key:"_getContext",value:function(e){return this.contextTree.get(e)}},{key:"setContext",value:function(e,t){return this.contextTree.set(e,t)}},{key:"_hasRun",value:function(e){return this.getPluginRunCount(this.getCurrentPlugin())>(e||0)}},{key:"_clone",value:function(e){return JSON.parse(T()(e))}},{key:"dispatch",value:function(){var e=this,t=this,n=this.nextPlugin();if(!n){var r=this.nextPromisedPatch();if(r)return r.then(function(){return e.dispatch()}).catch(function(){return e.dispatch()});var o={spec:this.state,errors:this.errors};return this.showDebug&&(o.patches=this.allPatches),Q.a.resolve(o)}if(t.pluginCount=t.pluginCount||{},t.pluginCount[n]=(t.pluginCount[n]||0)+1,t.pluginCount[n]>100)return Q.a.resolve({spec:t.state,errors:t.errors.concat(new Error("We've reached a hard limit of ".concat(100," plugin runs")))});if(n!==this.currentPlugin&&this.promisedPatches.length){var i=this.promisedPatches.map(function(e){return e.value});return Q.a.all(i.map(function(e){return e.then(Function,Function)})).then(function(){return e.dispatch()})}return function(){t.currentPlugin=n;var e=t.getCurrentMutations(),r=t.mutations.length-1;try{if(n.isGenerator){var o=!0,i=!1,s=void 0;try{for(var u,c=te()(n(e,t.getLib()));!(o=(u=c.next()).done);o=!0){var l=u.value;a(l)}}catch(e){i=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw s}}}else{var p=n(e,t.getLib());a(p)}}catch(e){console.error(e),a([ie()(re()(e),{plugin:n})])}finally{t.updatePluginHistory(n,{mutationIndex:r})}return t.dispatch()}();function a(e){e&&(e=_e.fullyNormalizeArray(e),t.updatePatches(e,n))}}}]),e}();var Et={refs:rt,allOf:mt,parameters:vt,properties:gt},St=n(29),Ct=n.n(St),kt=function(e){return String.prototype.toLowerCase.call(e)},Ot=function(e){return e.replace(/[^\w]/gi,"_")};function At(e){var t=e.openapi;return!!t&&w()(t,"3")}function Tt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).v2OperationIdCompatibilityMode;return e&&"object"===P()(e)?(e.operationId||"").replace(/\s/g,"").length?Ot(e.operationId):function(e,t){if((arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).v2OperationIdCompatibilityMode){var n="".concat(t.toLowerCase(),"_").concat(e).replace(/[\s!@#$%^&*()_+=[{\]};:<>|.\/?,\\'""-]/g,"_");return(n=n||"".concat(e.substring(1),"_").concat(t)).replace(/((_){2,})/g,"_").replace(/^(_)*/g,"").replace(/([_])*$/g,"")}return"".concat(kt(t)).concat(Ot(e))}(t,n,{v2OperationIdCompatibilityMode:r}):null}function jt(e,t){return"".concat(kt(t),"-").concat(e)}function Pt(e,t){return e&&e.paths?function(e,t){return It(e,t,!0)||null}(e,function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==P()(o))return!1;var i=o.operationId;return[Tt(o,n,r),jt(n,r),i].some(function(e){return e&&e===t})}):null}function It(e,t,n){if(!e||"object"!==P()(e)||!e.paths||"object"!==P()(e.paths))return null;var r=e.paths;for(var o in r)for(var i in r[o])if("PARAMETERS"!==i.toUpperCase()){var a=r[o][i];if(a&&"object"===P()(a)){var s={spec:e,pathName:o,method:i.toUpperCase(),operation:a},u=t(s);if(n&&u)return s}}}function Mt(e){var t=e.spec,n=t.paths,r={};if(!n||t.$$normalized)return e;for(var o in n){var i=n[o];if(Ct()(i)){var a=i.parameters,s=function(e){var n=i[e];if(!Ct()(n))return"continue";var s=Tt(n,o,e);if(s){r[s]?r[s].push(n):r[s]=[n];var u=r[s];if(u.length>1)u.forEach(function(e,t){e.__originalOperationId=e.__originalOperationId||e.operationId,e.operationId="".concat(s).concat(t+1)});else if(void 0!==n.operationId){var c=u[0];c.__originalOperationId=c.__originalOperationId||n.operationId,c.operationId=s}}if("parameters"!==e){var l=[],p={};for(var f in t)"produces"!==f&&"consumes"!==f&&"security"!==f||(p[f]=t[f],l.push(p));if(a&&(p.parameters=a,l.push(p)),l.length)for(var h=0,d=l;h<d.length;h++){var m=d[h];for(var v in m)if(n[v]){if("parameters"===v){var g=!0,y=!1,b=void 0;try{for(var _,w=function(){var e=_.value;n[v].some(function(t){return t.name&&t.name===e.name||t.$ref&&t.$ref===e.$ref||t.$$ref&&t.$$ref===e.$$ref||t===e})||n[v].push(e)},x=te()(m[v]);!(g=(_=x.next()).done);g=!0)w()}catch(e){y=!0,b=e}finally{try{g||null==x.return||x.return()}finally{if(y)throw b}}}}else n[v]=m[v]}}};for(var u in i)s(u)}}return t.$$normalized=!0,e}function Nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.requestInterceptor,r=t.responseInterceptor,o=e.withCredentials?"include":"same-origin";return function(t){return e({url:t,loadSpec:!0,requestInterceptor:n,responseInterceptor:r,headers:{Accept:"application/json"},credentials:o}).then(function(e){return e.body})}}function Rt(e){var t=e.fetch,n=e.spec,r=e.url,o=e.mode,i=e.allowMetaPatches,a=void 0===i||i,s=e.pathDiscriminator,u=e.modelPropertyMacro,c=e.parameterMacro,l=e.requestInterceptor,p=e.responseInterceptor,f=e.skipNormalization,h=e.useCircularStructures,d=e.http,m=e.baseDoc;return m=m||r,d=t||d||V,n?v(n):Nt(d,{requestInterceptor:l,responseInterceptor:p})(m).then(v);function v(e){m&&(Et.refs.docCache[m]=e),Et.refs.fetchJSON=Nt(d,{requestInterceptor:l,responseInterceptor:p});var t,n=[Et.refs];return"function"==typeof c&&n.push(Et.parameters),"function"==typeof u&&n.push(Et.properties),"strict"!==o&&n.push(Et.allOf),(t={spec:e,context:{baseDoc:m},plugins:n,allowMetaPatches:a,pathDiscriminator:s,parameterMacro:c,modelPropertyMacro:u,useCircularStructures:h},new xt(t).dispatch()).then(f?function(){var e=R()(C.a.mark(function e(t){return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t);case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}():Mt)}}var Dt=n(16),Lt=n.n(Dt);function Ut(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function qt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ut(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):Ut(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}function Ft(){return(Ft=R()(C.a.mark(function e(t,n){var r,o,i,a,s,u,c,l,p,f,h,d,m=arguments;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=m.length>2&&void 0!==m[2]?m[2]:{},o=r.returnEntireTree,i=r.baseDoc,a=r.requestInterceptor,s=r.responseInterceptor,u=r.parameterMacro,c=r.modelPropertyMacro,l=r.useCircularStructures,p={pathDiscriminator:n,baseDoc:i,requestInterceptor:a,responseInterceptor:s,parameterMacro:u,modelPropertyMacro:c,useCircularStructures:l},f=Mt({spec:t}),h=f.spec,e.next=6,Rt(qt({},p,{spec:h,allowMetaPatches:!0,skipNormalization:!0}));case 6:return d=e.sent,!o&&M()(n)&&n.length&&(d.spec=Lt()(d.spec,n)||null),e.abrupt("return",d);case 9:case"end":return e.stop()}},e)}))).apply(this,arguments)}var zt=n(38),Bt=n.n(zt);function Vt(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function Ht(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Vt(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):Vt(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}var Wt=function(){return null},Jt=function(e){return M()(e)?e:[e]},Yt={mapTagOperations:function(e){var t=e.spec,n=e.cb,r=void 0===n?Wt:n,o=e.defaultTag,i=void 0===o?"default":o,a=e.v2OperationIdCompatibilityMode,s={},u={};return It(t,function(e){var n=e.pathName,o=e.method,c=e.operation;(c.tags?Jt(c.tags):[i]).forEach(function(e){if("string"==typeof e){var i=u[e]=u[e]||{},l=Tt(c,n,o,{v2OperationIdCompatibilityMode:a}),p=r({spec:t,pathName:n,method:o,operation:c,operationId:l});if(s[l])s[l]++,i["".concat(l).concat(s[l])]=p;else if(void 0!==i[l]){var f=s[l]||1;s[l]=f+1,i["".concat(l).concat(s[l])]=p;var h=i[l];delete i[l],i["".concat(l).concat(f)]=h}else i[l]=p}})}),u},makeExecute:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.pathName,r=t.method,o=t.operationId;return function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.execute(Ht({spec:e.spec},Bt()(e,"requestInterceptor","responseInterceptor","userFetch"),{pathName:n,method:r,parameters:t,operationId:o},i))}}}};var Kt=n(39),Gt=n.n(Kt),$t=n(40),Zt=n.n($t),Xt=n(41),Qt=n.n(Xt),en=n(19),tn=n.n(en),nn=n(42),rn=n.n(nn),on={body:function(e){var t=e.req,n=e.value;t.body=n},header:function(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{},void 0!==r&&(t.headers[n.name]=r)},query:function(e){var t=e.req,n=e.value,r=e.parameter;t.query=t.query||{},!1===n&&"boolean"===r.type&&(n="false");0===n&&["number","integer"].indexOf(r.type)>-1&&(n="0");if(n)t.query[r.name]={collectionFormat:r.collectionFormat,value:n};else if(r.allowEmptyValue&&void 0!==n){var o=r.name;t.query[o]=t.query[o]||{},t.query[o].allowEmptyValue=!0}},path:function(e){var t=e.req,n=e.value,r=e.parameter;t.url=t.url.split("{".concat(r.name,"}")).join(encodeURIComponent(n))},formData:function(e){var t=e.req,n=e.value,r=e.parameter;(n||r.allowEmptyValue)&&(t.form=t.form||{},t.form[r.name]={value:n,allowEmptyValue:r.allowEmptyValue,collectionFormat:r.collectionFormat})}};n(49);var an=n(43),sn=n.n(an),un=n(44),cn=function(e){return":/?#[]@!$&'()*+,;=".indexOf(e)>-1},ln=function(e){return/^[a-z0-9\-._~]+$/i.test(e)};function pn(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).escape,n=arguments.length>2?arguments[2]:void 0;return"number"==typeof e&&(e=e.toString()),"string"==typeof e&&e.length&&t?n?JSON.parse(e):Object(un.stringToCharArray)(e).map(function(e){return ln(e)?e:cn(e)&&"unsafe"===t?e:(sn()(e)||[]).map(function(e){return"0".concat(e.toString(16).toUpperCase()).slice(-2)}).map(function(e){return"%".concat(e)}).join("")}).join(""):e}function fn(e){var t=e.value;return M()(t)?function(e){var t=e.key,n=e.value,r=e.style,o=e.explode,i=e.escape,a=function(e){return pn(e,{escape:i})};if("simple"===r)return n.map(function(e){return a(e)}).join(",");if("label"===r)return".".concat(n.map(function(e){return a(e)}).join("."));if("matrix"===r)return n.map(function(e){return a(e)}).reduce(function(e,n){return!e||o?"".concat(e||"",";").concat(t,"=").concat(n):"".concat(e,",").concat(n)},"");if("form"===r){var s=o?"&".concat(t,"="):",";return n.map(function(e){return a(e)}).join(s)}if("spaceDelimited"===r){var u=o?"".concat(t,"="):"";return n.map(function(e){return a(e)}).join(" ".concat(u))}if("pipeDelimited"===r){var c=o?"".concat(t,"="):"";return n.map(function(e){return a(e)}).join("|".concat(c))}}(e):"object"===P()(t)?function(e){var t=e.key,n=e.value,r=e.style,o=e.explode,i=e.escape,a=function(e){return pn(e,{escape:i})},s=m()(n);if("simple"===r)return s.reduce(function(e,t){var r=a(n[t]),i=o?"=":",",s=e?"".concat(e,","):"";return"".concat(s).concat(t).concat(i).concat(r)},"");if("label"===r)return s.reduce(function(e,t){var r=a(n[t]),i=o?"=":".",s=e?"".concat(e,"."):".";return"".concat(s).concat(t).concat(i).concat(r)},"");if("matrix"===r&&o)return s.reduce(function(e,t){var r=a(n[t]),o=e?"".concat(e,";"):";";return"".concat(o).concat(t,"=").concat(r)},"");if("matrix"===r)return s.reduce(function(e,r){var o=a(n[r]),i=e?"".concat(e,","):";".concat(t,"=");return"".concat(i).concat(r,",").concat(o)},"");if("form"===r)return s.reduce(function(e,t){var r=a(n[t]),i=e?"".concat(e).concat(o?"&":","):"",s=o?"=":",";return"".concat(i).concat(t).concat(s).concat(r)},"")}(e):function(e){var t=e.key,n=e.value,r=e.style,o=e.escape,i=function(e){return pn(e,{escape:o})};if("simple"===r)return i(n);if("label"===r)return".".concat(i(n));if("matrix"===r)return";".concat(t,"=").concat(i(n));if("form"===r)return i(n);if("deepObject"===r)return i(n)}(e)}function hn(e,t){return t.includes("application/json")?"string"==typeof e?e:T()(e):e.toString()}function dn(e){var t=e.req,n=e.value,r=e.parameter,o=r.name,i=r.style,a=r.explode,s=r.content;if(s){var u=m()(s)[0];t.url=t.url.split("{".concat(o,"}")).join(pn(hn(n,u),{escape:!0}))}else{var c=fn({key:r.name,value:n,style:i||"simple",explode:a||!1,escape:!0});t.url=t.url.split("{".concat(o,"}")).join(c)}}function mn(e){var t=e.req,n=e.value,r=e.parameter;if(t.query=t.query||{},r.content){var o=m()(r.content)[0];t.query[r.name]=hn(n,o)}else if(!1===n&&(n="false"),0===n&&(n="0"),n){var i=P()(n);if("deepObject"===r.style)m()(n).forEach(function(e){var o=n[e];t.query["".concat(r.name,"[").concat(e,"]")]={value:fn({key:e,value:o,style:"deepObject",escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0}});else if("object"!==i||M()(n)||"form"!==r.style&&r.style||!r.explode&&void 0!==r.explode)t.query[r.name]={value:fn({key:r.name,value:n,style:r.style||"form",explode:void 0===r.explode||r.explode,escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0};else{m()(n).forEach(function(e){var o=n[e];t.query[e]={value:fn({key:e,value:o,style:r.style||"form",escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0}})}}else if(r.allowEmptyValue&&void 0!==n){var a=r.name;t.query[a]=t.query[a]||{},t.query[a].allowEmptyValue=!0}}var vn=["accept","authorization","content-type"];function gn(e){var t=e.req,n=e.parameter,r=e.value;if(t.headers=t.headers||{},!(vn.indexOf(n.name.toLowerCase())>-1))if(n.content){var o=m()(n.content)[0];t.headers[n.name]=hn(r,o)}else void 0!==r&&(t.headers[n.name]=fn({key:n.name,value:r,style:n.style||"simple",explode:void 0!==n.explode&&n.explode,escape:!1}))}function yn(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{};var o=P()(r);if(n.content){var i=m()(n.content)[0];t.headers.Cookie="".concat(n.name,"=").concat(hn(r,i))}else if("undefined"!==o){var a="object"===o&&!M()(r)&&n.explode?"":"".concat(n.name,"=");t.headers.Cookie=a+fn({key:n.name,value:r,escape:!1,style:n.style||"form",explode:void 0!==n.explode&&n.explode})}}var bn=n(30),_n=function(e,t){var n=e.operation,r=e.requestBody,o=e.securities,i=e.spec,a=e.attachContentTypeForEmptyPayload,s=e.requestContentType;t=function(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,o=e.operation,i=void 0===o?{}:o,a=e.spec,s=b()({},t),u=r.authorized,c=void 0===u?{}:u,l=i.security||a.security||[],p=c&&!!m()(c).length,f=Lt()(a,["components","securitySchemes"])||{};if(s.headers=s.headers||{},s.query=s.query||{},!m()(r).length||!p||!l||M()(i.security)&&!i.security.length)return t;return l.forEach(function(e,t){for(var n in e){var r=c[n],o=f[n];if(r){var i=r.value||r,a=o.type;if(r)if("apiKey"===a)"query"===o.in&&(s.query[o.name]=i),"header"===o.in&&(s.headers[o.name]=i),"cookie"===o.in&&(s.cookies[o.name]=i);else if("http"===a){if("basic"===o.scheme){var u=i.username,l=i.password,p=tn()("".concat(u,":").concat(l));s.headers.Authorization="Basic ".concat(p)}"bearer"===o.scheme&&(s.headers.Authorization="Bearer ".concat(i))}else if("oauth2"===a){var h=r.token||{},d=h.access_token,m=h.token_type;m&&"bearer"!==m.toLowerCase()||(m="Bearer"),s.headers.Authorization="".concat(m," ").concat(d)}}}}),s}({request:t,securities:o,operation:n,spec:i});var u=n.requestBody||{},c=m()(u.content||{}),l=s&&c.indexOf(s)>-1;if(r||a){if(s&&l)t.headers["Content-Type"]=s;else if(!s){var p=c[0];p&&(t.headers["Content-Type"]=p,s=p)}}else s&&l&&(t.headers["Content-Type"]=s);return r&&(s?c.indexOf(s)>-1&&("application/x-www-form-urlencoded"===s||0===s.indexOf("multipart/")?"object"===P()(r)?(t.form={},m()(r).forEach(function(e){var n,o,i=r[e];"undefined"!=typeof File&&(o=i instanceof File),"undefined"!=typeof Blob&&(o=o||i instanceof Blob),void 0!==bn.Buffer&&(o=o||bn.Buffer.isBuffer(i)),n="object"!==P()(i)||o?i:M()(i)?i.toString():T()(i),t.form[e]={value:n}})):t.form=r:t.body=r):t.body=r),t};var wn=function(e,t){var n=e.spec,r=e.operation,o=e.securities,i=e.requestContentType,a=e.attachContentTypeForEmptyPayload;if((t=function(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,o=e.operation,i=void 0===o?{}:o,a=e.spec,s=b()({},t),u=r.authorized,c=void 0===u?{}:u,l=r.specSecurity,p=void 0===l?[]:l,f=i.security||p,h=c&&!!m()(c).length,d=a.securityDefinitions;if(s.headers=s.headers||{},s.query=s.query||{},!m()(r).length||!h||!f||M()(i.security)&&!i.security.length)return t;return f.forEach(function(e,t){for(var n in e){var r=c[n];if(r){var o=r.token,i=r.value||r,a=d[n],u=a.type,l=a["x-tokenName"]||"access_token",p=o&&o[l],f=o&&o.token_type;if(r)if("apiKey"===u){var h="query"===a.in?"query":"headers";s[h]=s[h]||{},s[h][a.name]=i}else"basic"===u?i.header?s.headers.authorization=i.header:(i.base64=tn()("".concat(i.username,":").concat(i.password)),s.headers.authorization="Basic ".concat(i.base64)):"oauth2"===u&&p&&(f=f&&"bearer"!==f.toLowerCase()?f:"Bearer",s.headers.authorization="".concat(f," ").concat(p))}}}),s}({request:t,securities:o,operation:r,spec:n})).body||t.form||a)i?t.headers["Content-Type"]=i:M()(r.consumes)?t.headers["Content-Type"]=r.consumes[0]:M()(n.consumes)?t.headers["Content-Type"]=n.consumes[0]:r.parameters&&r.parameters.filter(function(e){return"file"===e.type}).length?t.headers["Content-Type"]="multipart/form-data":r.parameters&&r.parameters.filter(function(e){return"formData"===e.in}).length&&(t.headers["Content-Type"]="application/x-www-form-urlencoded");else if(i){var s=r.parameters&&r.parameters.filter(function(e){return"body"===e.in}).length>0,u=r.parameters&&r.parameters.filter(function(e){return"formData"===e.in}).length>0;(s||u)&&(t.headers["Content-Type"]=i)}return t};function xn(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function En(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xn(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):xn(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}var Sn=function(e){return M()(e)?e:[]},Cn=ze("OperationNotFoundError",function(e,t,n){this.originalError=n,ie()(this,t||{})}),kn=function(e,t){return t.filter(function(t){return t.name===e})},On=function(e){var t={};e.forEach(function(e){t[e.in]||(t[e.in]={}),t[e.in][e.name]=e});var n=[];return m()(t).forEach(function(e){m()(t[e]).forEach(function(r){n.push(t[e][r])})}),n},An={buildRequest:Tn};function Tn(e){var t=e.spec,n=e.operationId,o=(e.securities,e.requestContentType,e.responseContentType),i=e.scheme,a=e.requestInterceptor,s=e.responseInterceptor,u=e.contextUrl,c=e.userFetch,l=(e.requestBody,e.server),p=e.serverVariables,f=e.http,h=e.parameters,d=e.parameterBuilders,v=At(t);d||(d=v?r:on);var g={url:"",credentials:f&&f.withCredentials?"include":"same-origin",headers:{},cookies:{}};a&&(g.requestInterceptor=a),s&&(g.responseInterceptor=s),c&&(g.userFetch=c);var y=Pt(t,n);if(!y)throw new Cn("Operation ".concat(n," not found"));var b,_=y.operation,w=void 0===_?{}:_,x=y.method,S=y.pathName;if(g.url+=At((b={spec:t,scheme:i,contextUrl:u,server:l,serverVariables:p,pathName:S,method:x}).spec)?function(e){var t=e.spec,n=e.pathName,r=e.method,o=e.server,i=e.contextUrl,a=e.serverVariables,s=void 0===a?{}:a,u=Lt()(t,["paths",n,(r||"").toLowerCase(),"servers"])||Lt()(t,["paths",n,"servers"])||Lt()(t,["servers"]),c="",l=null;if(o&&u&&u.length){var p=u.map(function(e){return e.url});p.indexOf(o)>-1&&(c=o,l=u[p.indexOf(o)])}if(!c&&u&&u.length&&(c=u[0].url,l=u[0]),c.indexOf("{")>-1){var f=function(e){for(var t,n=[],r=/{([^}]+)}/g;t=r.exec(e);)n.push(t[1]);return n}(c);f.forEach(function(e){if(l.variables&&l.variables[e]){var t=l.variables[e],n=s[e]||t.default,r=new RegExp("{".concat(e,"}"),"g");c=c.replace(r,n)}})}return function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=E.a.parse(t),o=E.a.parse(n),i=jn(r.protocol)||jn(o.protocol)||"",a=r.host||o.host,s=r.pathname||"";return"/"===(e=i&&a?"".concat(i,"://").concat(a+s):s)[e.length-1]?e.slice(0,-1):e}(c,i)}(b):function(e){var t,n=e.spec,r=e.scheme,o=e.contextUrl,i=void 0===o?"":o,a=E.a.parse(i),s=M()(n.schemes)?n.schemes[0]:null,u=r||s||jn(a.protocol)||"http",c=n.host||a.host||"",l=n.basePath||"";return"/"===(t=u&&c?"".concat(u,"://").concat(c+l):l)[t.length-1]?t.slice(0,-1):t}(b),!n)return delete g.cookies,g;g.url+=S,g.method="".concat(x).toUpperCase(),h=h||{};var C=t.paths[S]||{};o&&(g.headers.accept=o);var k=On([].concat(Sn(w.parameters)).concat(Sn(C.parameters)));k.forEach(function(e){var n,r=d[e.in];if("body"===e.in&&e.schema&&e.schema.properties&&(n=h),void 0===(n=e&&e.name&&h[e.name])?n=e&&e.name&&h["".concat(e.in,".").concat(e.name)]:kn(e.name,k).length>1&&console.warn("Parameter '".concat(e.name,"' is ambiguous because the defined spec has more than one parameter with the name: '").concat(e.name,"' and the passed-in parameter values did not define an 'in' value.")),null!==n){if(void 0!==e.default&&void 0===n&&(n=e.default),void 0===n&&e.required&&!e.allowEmptyValue)throw new Error("Required parameter ".concat(e.name," is not provided"));if(v&&e.schema&&"object"===e.schema.type&&"string"==typeof n)try{n=JSON.parse(n)}catch(e){throw new Error("Could not parse object parameter value string as JSON")}r&&r({req:g,parameter:e,value:n,operation:w,spec:t})}});var O=En({},e,{operation:w});if((g=v?_n(O,g):wn(O,g)).cookies&&m()(g.cookies).length){var A=m()(g.cookies).reduce(function(e,t){var n=g.cookies[t];return e+(e?"&":"")+rn.a.serialize(t,n)},"");g.headers.Cookie=A}return g.cookies&&delete g.cookies,Z(g),g}var jn=function(e){return e?e.replace(/\W/g,""):null};function Pn(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function In(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e?n.url=e:n=e,!(this instanceof In))return new In(n);b()(this,n);var r=this.resolve().then(function(){return t.disableInterfaces||b()(t,In.makeApisTagOperation(t)),t});return r.client=this,r}In.http=V,In.makeHttp=function(e,t,n){return n=n||function(e){return e},t=t||function(e){return e},function(r){return"string"==typeof r&&(r={url:r}),B.mergeInQueryOrForm(r),r=t(r),n(e(r))}}.bind(null,In.http),In.resolve=Rt,In.resolveSubtree=function(e,t){return Ft.apply(this,arguments)},In.execute=function(e){var t=e.http,n=e.fetch,r=e.spec,o=e.operationId,i=e.pathName,a=e.method,s=e.parameters,u=e.securities,c=Gt()(e,["http","fetch","spec","operationId","pathName","method","parameters","securities"]),l=t||n||V;i&&a&&!o&&(o=jt(i,a));var p=An.buildRequest(En({spec:r,operationId:o,parameters:s,securities:u,http:l},c));return p.body&&(Zt()(p.body)||Qt()(p.body))&&(p.body=T()(p.body)),l(p)},In.serializeRes=J,In.serializeHeaders=Y,In.clearCache=function(){Et.refs.clearCache()},In.makeApisTagOperation=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Yt.makeExecute(e);return{apis:Yt.mapTagOperations({v2OperationIdCompatibilityMode:e.v2OperationIdCompatibilityMode,spec:e.spec,cb:t})}},In.buildRequest=Tn,In.helpers={opId:Tt},In.prototype={http:V,execute:function(e){return this.applyDefaults(),In.execute(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pn(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):Pn(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}({spec:this.spec,http:this.http,securities:{authorized:this.authorizations},contextUrl:"string"==typeof this.url?this.url:void 0},e))},resolve:function(){var e=this;return In.resolve({spec:this.spec,url:this.url,allowMetaPatches:this.allowMetaPatches,useCircularStructures:this.useCircularStructures,requestInterceptor:this.requestInterceptor||null,responseInterceptor:this.responseInterceptor||null}).then(function(t){return e.originalSpec=e.spec,e.spec=t.spec,e.errors=t.errors,e})}},In.prototype.applyDefaults=function(){var e=this.spec,t=this.url;if(t&&w()(t,"http")){var n=E.a.parse(t);e.host||(e.host=n.host),e.schemes||(e.schemes=[n.protocol.replace(":","")]),e.basePath||(e.basePath="/")}};t.default=In}]).default},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(419),a=n(88),s=n(420),u=n(112),c=n(182),l=n(15),p=[],f=0,h=i.getPooled(),d=!1,m=null;function v(){x.ReactReconcileTransaction&&m||r("123")}var g=[{initialize:function(){this.dirtyComponentsLength=p.length},close:function(){this.dirtyComponentsLength!==p.length?(p.splice(0,this.dirtyComponentsLength),w()):p.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function y(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=i.getPooled(),this.reconcileTransaction=x.ReactReconcileTransaction.getPooled(!0)}function b(e,t){return e._mountOrder-t._mountOrder}function _(e){var t=e.dirtyComponentsLength;t!==p.length&&r("124",t,p.length),p.sort(b),f++;for(var n=0;n<t;n++){var o,i=p[n],a=i._pendingCallbacks;if(i._pendingCallbacks=null,s.logTopLevelRenders){var c=i;i._currentElement.type.isReactTopLevelWrapper&&(c=i._renderedComponent),o="React update: "+c.getName(),console.time(o)}if(u.performUpdateIfNecessary(i,e.reconcileTransaction,f),o&&console.timeEnd(o),a)for(var l=0;l<a.length;l++)e.callbackQueue.enqueue(a[l],i.getPublicInstance())}}o(y.prototype,c,{getTransactionWrappers:function(){return g},destructor:function(){this.dirtyComponentsLength=null,i.release(this.callbackQueue),this.callbackQueue=null,x.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return c.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),a.addPoolingTo(y);var w=function(){for(;p.length||d;){if(p.length){var e=y.getPooled();e.perform(_,null,e),y.release(e)}if(d){d=!1;var t=h;h=i.getPooled(),t.notifyAll(),i.release(t)}}};var x={ReactReconcileTransaction:null,batchedUpdates:function(e,t,n,r,o,i){return v(),m.batchedUpdates(e,t,n,r,o,i)},enqueueUpdate:function e(t){v(),m.isBatchingUpdates?(p.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=f+1)):m.batchedUpdates(e,t)},flushBatchedUpdates:w,injection:{injectReconcileTransaction:function(e){e||r("126"),x.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e||r("127"),"function"!=typeof e.batchedUpdates&&r("128"),"boolean"!=typeof e.isBatchingUpdates&&r("129"),m=e}},asap:function(e,t){l(m.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),h.enqueue(e,t),d=!0}};e.exports=x},function(e,t,n){var r;
+*/var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=a(e),c=1;c<arguments.length;c++){for(var l in n=Object(arguments[c]))o.call(n,l)&&(u[l]=n[l]);if(r){s=r(n);for(var p=0;p<s.length;p++)i.call(n,s[p])&&(u[s[p]]=n[s[p]])}}return u}},function(e,t,n){var r=n(557),o=n(563);function i(e){return(i="function"==typeof o&&"symbol"==typeof r?function(e){return typeof e}:function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":typeof e})(e)}function a(t){return"function"==typeof o&&"symbol"===i(r)?e.exports=a=function(e){return i(e)}:e.exports=a=function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":i(e)},a(t)}e.exports=a},function(e,t,n){"use strict";var r=n(21),o=n(115),i=n(422),a=(n(15),o.ID_ATTRIBUTE_NAME),s=i,u="__reactInternalInstance$"+Math.random().toString(36).slice(2);function c(e,t){return 1===e.nodeType&&e.getAttribute(a)===String(t)||8===e.nodeType&&e.nodeValue===" react-text: "+t+" "||8===e.nodeType&&e.nodeValue===" react-empty: "+t+" "}function l(e){for(var t;t=e._renderedComponent;)e=t;return e}function p(e,t){var n=l(e);n._hostNode=t,t[u]=n}function f(e,t){if(!(e._flags&s.hasCachedChildNodes)){var n=e._renderedChildren,o=t.firstChild;e:for(var i in n)if(n.hasOwnProperty(i)){var a=n[i],u=l(a)._domID;if(0!==u){for(;null!==o;o=o.nextSibling)if(c(o,u)){p(a,o);continue e}r("32",u)}}e._flags|=s.hasCachedChildNodes}}function h(e){if(e[u])return e[u];for(var t,n,r=[];!e[u];){if(r.push(e),!e.parentNode)return null;e=e.parentNode}for(;e&&(n=e[u]);e=r.pop())t=n,r.length&&f(n,e);return t}var d={getClosestInstanceFromNode:h,getInstanceFromNode:function(e){var t=h(e);return null!=t&&t._hostNode===e?t:null},getNodeFromInstance:function(e){if(void 0===e._hostNode&&r("33"),e._hostNode)return e._hostNode;for(var t=[];!e._hostNode;)t.push(e),e._hostParent||r("34"),e=e._hostParent;for(;t.length;e=t.pop())f(e,e._hostNode);return e._hostNode},precacheChildNodes:f,precacheNode:p,uncacheNode:function(e){var t=e._hostNode;t&&(delete t[u],e._hostNode=null)}};e.exports=d},function(e,t,n){e.exports=n(552)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SPEC",function(){return $}),n.d(t,"UPDATE_URL",function(){return G}),n.d(t,"UPDATE_JSON",function(){return Z}),n.d(t,"UPDATE_PARAM",function(){return X}),n.d(t,"UPDATE_EMPTY_PARAM_INCLUSION",function(){return Q}),n.d(t,"VALIDATE_PARAMS",function(){return ee}),n.d(t,"SET_RESPONSE",function(){return te}),n.d(t,"SET_REQUEST",function(){return ne}),n.d(t,"SET_MUTATED_REQUEST",function(){return re}),n.d(t,"LOG_REQUEST",function(){return oe}),n.d(t,"CLEAR_RESPONSE",function(){return ie}),n.d(t,"CLEAR_REQUEST",function(){return ae}),n.d(t,"CLEAR_VALIDATE_PARAMS",function(){return se}),n.d(t,"UPDATE_OPERATION_META_VALUE",function(){return ue}),n.d(t,"UPDATE_RESOLVED",function(){return ce}),n.d(t,"UPDATE_RESOLVED_SUBTREE",function(){return le}),n.d(t,"SET_SCHEME",function(){return pe}),n.d(t,"updateSpec",function(){return he}),n.d(t,"updateResolved",function(){return de}),n.d(t,"updateUrl",function(){return me}),n.d(t,"updateJsonSpec",function(){return ve}),n.d(t,"parseToJson",function(){return ge}),n.d(t,"resolveSpec",function(){return be}),n.d(t,"requestResolvedSubtree",function(){return xe}),n.d(t,"changeParam",function(){return Ee}),n.d(t,"changeParamByIdentity",function(){return Se}),n.d(t,"updateResolvedSubtree",function(){return Ce}),n.d(t,"invalidateResolvedSubtreeCache",function(){return ke}),n.d(t,"validateParams",function(){return Oe}),n.d(t,"updateEmptyParamInclusion",function(){return Ae}),n.d(t,"clearValidateParams",function(){return Te}),n.d(t,"changeConsumesValue",function(){return je}),n.d(t,"changeProducesValue",function(){return Pe}),n.d(t,"setResponse",function(){return Ie}),n.d(t,"setRequest",function(){return Me}),n.d(t,"setMutatedRequest",function(){return Ne}),n.d(t,"logRequest",function(){return Re}),n.d(t,"executeRequest",function(){return De}),n.d(t,"execute",function(){return Le}),n.d(t,"clearResponse",function(){return Ue}),n.d(t,"clearRequest",function(){return qe}),n.d(t,"setScheme",function(){return Fe});var r=n(94),o=n.n(r),i=n(60),a=n.n(i),s=n(61),u=n.n(s),c=n(55),l=n.n(c),p=n(2),f=n.n(p),h=n(40),d=n.n(h),m=n(332),v=n.n(m),g=n(16),y=n.n(g),b=n(17),_=n.n(b),w=n(192),x=n.n(w),E=n(123),S=n.n(E),C=n(193),k=n.n(C),O=n(54),A=n.n(O),T=n(14),j=n.n(T),P=n(26),I=n.n(P),M=n(146),N=n.n(M),R=n(1),D=n(95),L=n.n(D),U=n(119),q=n.n(U),F=n(283),B=n.n(F),z=n(479),V=n.n(z),H=n(333),W=n.n(H),J=n(3);function K(e,t){var n=_()(e);if(l.a){var r=l()(e);t&&(r=r.filter(function(t){return u()(e,t).enumerable})),n.push.apply(n,r)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?K(n,!0).forEach(function(t){f()(e,t,n[t])}):a.a?o()(e,a()(n)):K(n).forEach(function(t){A()(e,t,u()(n,t))})}return e}var $="spec_update_spec",G="spec_update_url",Z="spec_update_json",X="spec_update_param",Q="spec_update_empty_param_inclusion",ee="spec_validate_param",te="spec_set_response",ne="spec_set_request",re="spec_set_mutated_request",oe="spec_log_request",ie="spec_clear_response",ae="spec_clear_request",se="spec_clear_validate_param",ue="spec_update_operation_meta_value",ce="spec_update_resolved",le="spec_update_resolved_subtree",pe="set_scheme",fe=function(e){return B()(e)?e:""};function he(e){var t=fe(e).replace(/\t/g,"  ");if("string"==typeof e)return{type:$,payload:t}}function de(e){return{type:ce,payload:e}}function me(e){return{type:G,payload:e}}function ve(e){return{type:Z,payload:e}}var ge=function(e){return function(t){var n=t.specActions,r=t.specSelectors,o=t.errActions,i=r.specStr,a=null;try{e=e||i(),o.clear({source:"parser"}),a=N.a.safeLoad(e)}catch(e){return console.error(e),o.newSpecErr({source:"parser",level:"error",message:e.reason,line:e.mark&&e.mark.line?e.mark.line+1:void 0})}return a&&"object"===I()(a)?n.updateJsonSpec(a):{}}},ye=!1,be=function(e,t){return function(n){var r=n.specActions,o=n.specSelectors,i=n.errActions,a=n.fn,s=a.fetch,u=a.resolve,c=a.AST,l=void 0===c?{}:c,p=n.getConfigs;ye||(console.warn("specActions.resolveSpec is deprecated since v3.10.0 and will be removed in v4.0.0; use requestResolvedSubtree instead!"),ye=!0);var f=p(),h=f.modelPropertyMacro,d=f.parameterMacro,m=f.requestInterceptor,v=f.responseInterceptor;void 0===e&&(e=o.specJson()),void 0===t&&(t=o.url());var g=l.getLineNumberForPath?l.getLineNumberForPath:function(){},y=o.specStr();return u({fetch:s,spec:e,baseDoc:t,modelPropertyMacro:h,parameterMacro:d,requestInterceptor:m,responseInterceptor:v}).then(function(e){var t=e.spec,n=e.errors;if(i.clear({type:"thrown"}),j()(n)&&n.length>0){var o=n.map(function(e){return console.error(e),e.line=e.fullPath?g(y,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e});i.newThrownErrBatch(o)}return r.updateResolved(t)})}},_e=[],we=V()(k()(S.a.mark(function e(){var t,n,r,o,i,a,s,u,c,l,p,f,h,d,m,v,g;return S.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=_e.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,o=t.fn,i=o.resolveSubtree,a=o.AST,s=void 0===a?{}:a,u=t.specSelectors,c=t.specActions,i){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return l=s.getLineNumberForPath?s.getLineNumberForPath:function(){},p=u.specStr(),f=t.getConfigs(),h=f.modelPropertyMacro,d=f.parameterMacro,m=f.requestInterceptor,v=f.responseInterceptor,e.prev=11,e.next=14,_e.reduce(function(){var e=k()(S.a.mark(function e(t,o){var a,s,c,f,g,y,b;return S.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return a=e.sent,s=a.resultMap,c=a.specWithCurrentSubtrees,e.next=7,i(c,o,{baseDoc:u.url(),modelPropertyMacro:h,parameterMacro:d,requestInterceptor:m,responseInterceptor:v});case 7:return f=e.sent,g=f.errors,y=f.spec,r.allErrors().size&&n.clearBy(function(e){return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!e.get("fullPath").every(function(e,t){return e===o[t]||void 0===o[t]})}),j()(g)&&g.length>0&&(b=g.map(function(e){return e.line=e.fullPath?l(p,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e}),n.newThrownErrBatch(b)),W()(s,o,y),W()(c,o,y),e.abrupt("return",{resultMap:s,specWithCurrentSubtrees:c});case 15:case"end":return e.stop()}},e)}));return function(t,n){return e.apply(this,arguments)}}(),x.a.resolve({resultMap:(u.specResolvedSubtree([])||Object(R.Map)()).toJS(),specWithCurrentSubtrees:u.specJson().toJS()}));case 14:g=e.sent,delete _e.system,_e=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:c.updateResolvedSubtree([],g.resultMap);case 23:case"end":return e.stop()}},e,null,[[11,19]])})),35),xe=function(e){return function(t){_e.map(function(e){return e.join("@@")}).indexOf(e.join("@@"))>-1||(_e.push(e),_e.system=t,we())}};function Ee(e,t,n,r,o){return{type:X,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:o}}}function Se(e,t,n,r){return{type:X,payload:{path:e,param:t,value:n,isXml:r}}}var Ce=function(e,t){return{type:le,payload:{path:e,value:t}}},ke=function(){return{type:le,payload:{path:[],value:Object(R.Map)()}}},Oe=function(e,t){return{type:ee,payload:{pathMethod:e,isOAS3:t}}},Ae=function(e,t,n,r){return{type:Q,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function Te(e){return{type:se,payload:{pathMethod:e}}}function je(e,t){return{type:ue,payload:{path:e,value:t,key:"consumes_value"}}}function Pe(e,t){return{type:ue,payload:{path:e,value:t,key:"produces_value"}}}var Ie=function(e,t,n){return{payload:{path:e,method:t,res:n},type:te}},Me=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ne}},Ne=function(e,t,n){return{payload:{path:e,method:t,req:n},type:re}},Re=function(e){return{payload:e,type:oe}},De=function(e){return function(t){var n=t.fn,r=t.specActions,o=t.specSelectors,i=t.getConfigs,a=t.oas3Selectors,s=e.pathName,u=e.method,c=e.operation,l=i(),p=l.requestInterceptor,f=l.responseInterceptor,h=c.toJS();if(c&&c.get("parameters")&&c.get("parameters").filter(function(e){return e&&!0===e.get("allowEmptyValue")}).forEach(function(t){if(o.parameterInclusionSettingFor([s,u],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=Object(J.C)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}),e.contextUrl=L()(o.url()).toString(),h&&h.operationId?e.operationId=h.operationId:h&&s&&u&&(e.operationId=n.opId(h,s,u)),o.isOAS3()){var d="".concat(s,":").concat(u);e.server=a.selectedServer(d)||a.selectedServer();var m=a.serverVariables({server:e.server,namespace:d}).toJS(),g=a.serverVariables({server:e.server}).toJS();e.serverVariables=_()(m).length?m:g,e.requestContentType=a.requestContentType(s,u),e.responseContentType=a.responseContentType(s,u)||"*/*";var b=a.requestBodyValue(s,u);Object(J.t)(b)?e.requestBody=JSON.parse(b):b&&b.toJS?e.requestBody=b.toJS():e.requestBody=b}var w=y()({},e);w=n.buildRequest(w),r.setRequest(e.pathName,e.method,w);e.requestInterceptor=function(t){var n=p.apply(this,[t]),o=y()({},n);return r.setMutatedRequest(e.pathName,e.method,o),n},e.responseInterceptor=f;var x=v()();return n.execute(e).then(function(t){t.duration=v()()-x,r.setResponse(e.pathName,e.method,t)}).catch(function(t){console.error(t),r.setResponse(e.pathName,e.method,{error:!0,err:q()(t)})})}},Le=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=d()(e,["path","method"]);return function(e){var o=e.fn.fetch,i=e.specSelectors,a=e.specActions,s=i.specJsonWithResolvedSubtrees().toJS(),u=i.operationScheme(t,n),c=i.contentTypeValues([t,n]).toJS(),l=c.requestContentType,p=c.responseContentType,f=/xml/i.test(l),h=i.parameterValues([t,n],f).toJS();return a.executeRequest(Y({},r,{fetch:o,spec:s,pathName:t,method:n,parameters:h,requestContentType:l,scheme:u,responseContentType:p}))}};function Ue(e,t){return{type:ie,payload:{path:e,method:t}}}function qe(e,t){return{type:ae,payload:{path:e,method:t}}}function Fe(e,t,n){return{type:pe,payload:{scheme:e,path:t,method:n}}}},function(e,t,n){var r=n(32),o=n(22),i=n(63),a=n(77),s=n(75),u=function(e,t,n){var c,l,p,f=e&u.F,h=e&u.G,d=e&u.S,m=e&u.P,v=e&u.B,g=e&u.W,y=h?o:o[t]||(o[t]={}),b=y.prototype,_=h?r:d?r[t]:(r[t]||{}).prototype;for(c in h&&(n=t),n)(l=!f&&_&&void 0!==_[c])&&s(y,c)||(p=l?_[c]:n[c],y[c]=h&&"function"!=typeof _[c]?n[c]:v&&l?i(p,r):g&&_[c]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(p):m&&"function"==typeof p?i(Function.call,p):p,m&&((y.virtual||(y.virtual={}))[c]=p,e&u.R&&b&&!b[c]&&a(b,c,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t,n){"use strict";var r=n(138),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];e.exports=function(e,t){var n,a;if(t=t||{},Object.keys(t).forEach(function(t){if(-1===o.indexOf(t))throw new r('Unknown option "'+t+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=(n=t.styleAliases||null,a={},null!==n&&Object.keys(n).forEach(function(e){n[e].forEach(function(t){a[String(t)]=e})}),a),-1===i.indexOf(this.kind))throw new r('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(197)("wks"),o=n(199),i=n(41).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(214)("wks"),o=n(159),i=n(32).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(41),o=n(72),i=n(81),a=n(97),s=n(153),u=function(e,t,n){var c,l,p,f,h=e&u.F,d=e&u.G,m=e&u.S,v=e&u.P,g=e&u.B,y=d?r:m?r[t]||(r[t]={}):(r[t]||{}).prototype,b=d?o:o[t]||(o[t]={}),_=b.prototype||(b.prototype={});for(c in d&&(n=t),n)p=((l=!h&&y&&void 0!==y[c])?y:n)[c],f=g&&l?s(p,r):v&&"function"==typeof p?s(Function.call,p):p,y&&a(y,c,p,e&u.U),b[c]!=p&&i(b,c,f),v&&_[c]!=p&&(_[c]=p)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};e.exports=o},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return!!e&&r.call(e,t)}var i=/\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;function a(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function s(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var u=/&([a-z#][a-z0-9]{1,31});/gi,c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,l=n(463);function p(e,t){var n=0;return o(l,t)?l[t]:35===t.charCodeAt(0)&&c.test(t)&&a(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?s(n):e}var f=/[&<>"]/,h=/[&<>"]/g,d={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function m(e){return d[e]}t.assign=function(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n]})}}),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=o,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(i,"$1")},t.isValidEntityCode=a,t.fromCodePoint=s,t.replaceEntities=function(e){return e.indexOf("&")<0?e:e.replace(u,p)},t.escapeHtml=function(e){return f.test(e)?e.replace(h,m):e}},function(e,t,n){var r=n(55),o=n(771);e.exports=function(e,t){if(null==e)return{};var n,i,a=o(e,t);if(r){var s=r(e);for(i=0;i<s.length;i++)n=s[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(35),o=n(99),i=n(73),a=/"/g,s=function(e,t,n,r){var o=String(i(e)),s="<"+t;return""!==n&&(s+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),s+">"+o+"</"+t+">"};e.exports=function(e,t){var n={};n[e]=t(s),r(r.P+r.F*o(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";n.r(t),n.d(t,"NEW_THROWN_ERR",function(){return i}),n.d(t,"NEW_THROWN_ERR_BATCH",function(){return a}),n.d(t,"NEW_SPEC_ERR",function(){return s}),n.d(t,"NEW_SPEC_ERR_BATCH",function(){return u}),n.d(t,"NEW_AUTH_ERR",function(){return c}),n.d(t,"CLEAR",function(){return l}),n.d(t,"CLEAR_BY",function(){return p}),n.d(t,"newThrownErr",function(){return f}),n.d(t,"newThrownErrBatch",function(){return h}),n.d(t,"newSpecErr",function(){return d}),n.d(t,"newSpecErrBatch",function(){return m}),n.d(t,"newAuthErr",function(){return v}),n.d(t,"clear",function(){return g}),n.d(t,"clearBy",function(){return y});var r=n(119),o=n.n(r),i="err_new_thrown_err",a="err_new_thrown_err_batch",s="err_new_spec_err",u="err_new_spec_err_batch",c="err_new_auth_err",l="err_clear",p="err_clear_by";function f(e){return{type:i,payload:o()(e)}}function h(e){return{type:a,payload:e}}function d(e){return{type:s,payload:e}}function m(e){return{type:u,payload:e}}function v(e){return{type:c,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:l,payload:e}}function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:p,payload:e}}},function(e,t,n){var r=n(98);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(43);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r=n(64),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){var r=n(46),o=n(349),i=n(218),a=Object.defineProperty;t.f=n(50)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){e.exports=!n(82)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(366),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){"use strict";e.exports={debugTool:null}},function(e,t,n){e.exports=n(573)},function(e,t,n){e.exports=n(770)},function(e,t,n){e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=45)}([function(e,t){e.exports=n(17)},function(e,t){e.exports=n(14)},function(e,t){e.exports=n(26)},function(e,t){e.exports=n(16)},function(e,t){e.exports=n(123)},function(e,t){e.exports=n(60)},function(e,t){e.exports=n(61)},function(e,t){e.exports=n(55)},function(e,t){e.exports=n(2)},function(e,t){e.exports=n(54)},function(e,t){e.exports=n(94)},function(e,t){e.exports=n(28)},function(e,t){e.exports=n(930)},function(e,t){e.exports=n(12)},function(e,t){e.exports=n(192)},function(e,t){e.exports=n(936)},function(e,t){e.exports=n(93)},function(e,t){e.exports=n(193)},function(e,t){e.exports=n(939)},function(e,t){e.exports=n(943)},function(e,t){e.exports=n(944)},function(e,t){e.exports=n(92)},function(e,t){e.exports=n(13)},function(e,t){e.exports=n(146)},function(e,t){e.exports=n(4)},function(e,t){e.exports=n(5)},function(e,t){e.exports=n(946)},function(e,t){e.exports=n(421)},function(e,t){e.exports=n(949)},function(e,t){e.exports=n(52)},function(e,t){e.exports=n(64)},function(e,t){e.exports=n(283)},function(e,t){e.exports=n(272)},function(e,t){e.exports=n(950)},function(e,t){e.exports=n(145)},function(e,t){e.exports=n(951)},function(e,t){e.exports=n(959)},function(e,t){e.exports=n(960)},function(e,t){e.exports=n(961)},function(e,t){e.exports=n(40)},function(e,t){e.exports=n(264)},function(e,t){e.exports=n(37)},function(e,t){e.exports=n(964)},function(e,t){e.exports=n(965)},function(e,t){e.exports=n(966)},function(e,t,n){e.exports=n(50)},function(e,t){e.exports=n(967)},function(e,t){e.exports=n(968)},function(e,t){e.exports=n(969)},function(e,t){e.exports=n(970)},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"path",function(){return mn}),n.d(r,"query",function(){return vn}),n.d(r,"header",function(){return yn}),n.d(r,"cookie",function(){return bn});var o=n(9),i=n.n(o),a=n(10),s=n.n(a),u=n(5),c=n.n(u),l=n(6),p=n.n(l),f=n(7),h=n.n(f),d=n(0),m=n.n(d),v=n(8),g=n.n(v),y=(n(46),n(15)),b=n.n(y),_=n(20),w=n.n(_),x=n(12),E=n.n(x),S=n(4),C=n.n(S),k=n(22),O=n.n(k),A=n(11),T=n.n(A),j=n(2),P=n.n(j),I=n(1),M=n.n(I),N=n(17),R=n.n(N),D=(n(47),n(26)),L=n.n(D),U=n(23),q=n.n(U),F=n(31),B=n.n(F),z={serializeRes:J,mergeInQueryOrForm:Z};function V(e){return H.apply(this,arguments)}function H(){return(H=R()(C.a.mark(function e(t){var n,r,o,i,a,s=arguments;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=s.length>1&&void 0!==s[1]?s[1]:{},"object"===P()(t)&&(t=(n=t).url),n.headers=n.headers||{},z.mergeInQueryOrForm(n),n.headers&&m()(n.headers).forEach(function(e){var t=n.headers[e];"string"==typeof t&&(n.headers[e]=t.replace(/\n+/g," "))}),!n.requestInterceptor){e.next=12;break}return e.next=8,n.requestInterceptor(n);case 8:if(e.t0=e.sent,e.t0){e.next=11;break}e.t0=n;case 11:n=e.t0;case 12:return r=n.headers["content-type"]||n.headers["Content-Type"],/multipart\/form-data/i.test(r)&&(delete n.headers["content-type"],delete n.headers["Content-Type"]),e.prev=14,e.next=17,(n.userFetch||fetch)(n.url,n);case 17:return o=e.sent,e.next=20,z.serializeRes(o,t,n);case 20:if(o=e.sent,!n.responseInterceptor){e.next=28;break}return e.next=24,n.responseInterceptor(o);case 24:if(e.t1=e.sent,e.t1){e.next=27;break}e.t1=o;case 27:o=e.t1;case 28:e.next=38;break;case 30:if(e.prev=30,e.t2=e.catch(14),o){e.next=34;break}throw e.t2;case 34:throw(i=new Error(o.statusText)).statusCode=i.status=o.status,i.responseError=e.t2,i;case 38:if(o.ok){e.next=43;break}throw(a=new Error(o.statusText)).statusCode=a.status=o.status,a.response=o,a;case 43:return e.abrupt("return",o);case 44:case"end":return e.stop()}},e,null,[[14,30]])}))).apply(this,arguments)}var W=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return/(json|xml|yaml|text)\b/.test(e)};function J(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).loadSpec,r=void 0!==n&&n,o={ok:e.ok,url:e.url||t,status:e.status,statusText:e.statusText,headers:K(e.headers)},i=o.headers["content-type"],a=r||W(i);return(a?e.text:e.blob||e.buffer).call(e).then(function(e){if(o.text=e,o.data=e,a)try{var t=function(e,t){return t&&(0===t.indexOf("application/json")||t.indexOf("+json")>0)?JSON.parse(e):q.a.safeLoad(e)}(e,i);o.body=t,o.obj=t}catch(e){o.parseError=e}return o})}function K(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t={};return"function"==typeof e.forEach?(e.forEach(function(e,n){void 0!==t[n]?(t[n]=M()(t[n])?t[n]:[t[n]],t[n].push(e)):t[n]=e}),t):t}function Y(e,t){return t||"undefined"==typeof navigator||(t=navigator),t&&"ReactNative"===t.product?!(!e||"object"!==P()(e)||"string"!=typeof e.uri):"undefined"!=typeof File?e instanceof File:null!==e&&"object"===P()(e)&&"function"==typeof e.pipe}function $(e,t){var n=e.collectionFormat,r=e.allowEmptyValue,o="object"===P()(e)?e.value:e;if(void 0===o&&r)return"";if(Y(o)||"boolean"==typeof o)return o;var i=encodeURIComponent;return t&&(i=B()(o)?function(e){return e}:function(e){return T()(e)}),"object"!==P()(o)||M()(o)?M()(o)?M()(o)&&!n?o.map(i).join(","):"multi"===n?o.map(i):o.map(i).join({csv:",",ssv:"%20",tsv:"%09",pipes:"|"}[n]):i(o):""}function G(e){var t=m()(e).reduce(function(t,n){var r,o=e[n],i=!!o.skipEncoding,a=i?n:encodeURIComponent(n),s=(r=o)&&"object"===P()(r)&&!M()(o);return t[a]=$(s?o:{value:o},i),t},{});return L.a.stringify(t,{encode:!1,indices:!1})||""}function Z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.url,r=void 0===t?"":t,o=e.query,i=e.form;if(i){var a=m()(i).some(function(e){return Y(i[e].value)}),s=e.headers["content-type"]||e.headers["Content-Type"];if(a||/multipart\/form-data/i.test(s)){var u=n(48);e.body=new u,m()(i).forEach(function(t){e.body.append(t,$(i[t],!0))})}else e.body=G(i);delete e.form}if(o){var c=r.split("?"),l=O()(c,2),p=l[0],f=l[1],h="";if(f){var d=L.a.parse(f);m()(o).forEach(function(e){return delete d[e]}),h=L.a.stringify(d,{encode:!0})}var v=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=t.filter(function(e){return e}).join("&");return r?"?".concat(r):""}(h,G(o));e.url=p+v,delete e.query}return e}var X=n(14),Q=n.n(X),ee=n(21),te=n.n(ee),ne=n(27),re=n.n(ne),oe=n(3),ie=n.n(oe),ae=n(24),se=n.n(ae),ue=n(25),ce=n.n(ue),le=n(32),pe=n.n(le),fe=n(13),he=n.n(fe),de=n(18),me=n.n(de),ve=n(33),ge=n.n(ve),ye=n(34),be=n.n(ye),_e={add:function(e,t){return{op:"add",path:e,value:t}},replace:xe,remove:function(e,t){return{op:"remove",path:e}},merge:function(e,t){return{type:"mutation",op:"merge",path:e,value:t}},mergeDeep:function(e,t){return{type:"mutation",op:"mergeDeep",path:e,value:t}},context:function(e,t){return{type:"context",path:e,value:t}},getIn:function(e,t){return t.reduce(function(e,t){return void 0!==t&&e?e[t]:e},e)},applyPatch:function(e,t,n){if(n=n||{},"merge"===(t=ie()({},t,{path:t.path&&we(t.path)})).op){var r=Re(e,t.path);ie()(r,t.value),me.a.applyPatch(e,[xe(t.path,r)])}else if("mergeDeep"===t.op){var o=Re(e,t.path);for(var i in t.value){var a=t.value[i],s=M()(a);if(s){var u=o[i]||[];o[i]=u.concat(a)}else if(Te(a)&&!s){var c=ie()({},o[i]);for(var l in a){if(Object.prototype.hasOwnProperty.call(c,l)){c=ge()(be()({},c),a);break}ie()(c,g()({},l,a[l]))}o[i]=c}else o[i]=a}}else if("add"===t.op&&""===t.path&&Te(t.value)){var p=m()(t.value).reduce(function(e,n){return e.push({op:"add",path:"/".concat(we(n)),value:t.value[n]}),e},[]);me.a.applyPatch(e,p)}else if("replace"===t.op&&""===t.path){var f=t.value;n.allowMetaPatches&&t.meta&&Me(t)&&(M()(t.value)||Te(t.value))&&(f=ie()({},f,t.meta)),e=f}else if(me.a.applyPatch(e,[t]),n.allowMetaPatches&&t.meta&&Me(t)&&(M()(t.value)||Te(t.value))){var h=Re(e,t.path),d=ie()({},h,t.meta);me.a.applyPatch(e,[xe(t.path,d)])}return e},parentPathMatch:function(e,t){if(!M()(t))return!1;for(var n=0,r=t.length;n<r;n++)if(t[n]!==e[n])return!1;return!0},flatten:Oe,fullyNormalizeArray:function(e){return Ae(Oe(ke(e)))},normalizeArray:ke,isPromise:function(e){return Te(e)&&je(e.then)},forEachNew:function(e,t){try{return Ee(e,Ce,t)}catch(e){return e}},forEachNewPrimitive:function(e,t){try{return Ee(e,Se,t)}catch(e){return e}},isJsonPatch:Pe,isContextPatch:function(e){return Ne(e)&&"context"===e.type},isPatch:Ne,isMutation:Ie,isAdditiveMutation:Me,isGenerator:function(e){return C.a.isGeneratorFunction(e)},isFunction:je,isObject:Te,isError:function(e){return e instanceof Error}};function we(e){return M()(e)?e.length<1?"":"/"+e.map(function(e){return(e+"").replace(/~/g,"~0").replace(/\//g,"~1")}).join("/"):e}function xe(e,t,n){return{op:"replace",path:e,value:t,meta:n}}function Ee(e,t,n){return Ae(Oe(e.filter(Me).map(function(e){return t(e.value,n,e.path)})||[]))}function Se(e,t,n){return n=n||[],M()(e)?e.map(function(e,r){return Se(e,t,n.concat(r))}):Te(e)?m()(e).map(function(r){return Se(e[r],t,n.concat(r))}):t(e,n[n.length-1],n)}function Ce(e,t,n){var r=[];if((n=n||[]).length>0){var o=t(e,n[n.length-1],n);o&&(r=r.concat(o))}if(M()(e)){var i=e.map(function(e,r){return Ce(e,t,n.concat(r))});i&&(r=r.concat(i))}else if(Te(e)){var a=m()(e).map(function(r){return Ce(e[r],t,n.concat(r))});a&&(r=r.concat(a))}return r=Oe(r)}function ke(e){return M()(e)?e:[e]}function Oe(e){var t;return(t=[]).concat.apply(t,he()(e.map(function(e){return M()(e)?Oe(e):e})))}function Ae(e){return e.filter(function(e){return void 0!==e})}function Te(e){return e&&"object"===P()(e)}function je(e){return e&&"function"==typeof e}function Pe(e){if(Ne(e)){var t=e.op;return"add"===t||"remove"===t||"replace"===t}return!1}function Ie(e){return Pe(e)||Ne(e)&&"mutation"===e.type}function Me(e){return Ie(e)&&("add"===e.op||"replace"===e.op||"merge"===e.op||"mergeDeep"===e.op)}function Ne(e){return e&&"object"===P()(e)}function Re(e,t){try{return me.a.getValueByPointer(e,t)}catch(e){return console.error(e),{}}}var De=n(35),Le=n.n(De),Ue=n(36),qe=n(28),Fe=n.n(qe);function Be(e,t){function n(){Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack;for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];this.message=n[0],t&&t.apply(this,n)}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var ze=n(37),Ve=n.n(ze),He=["properties"],We=["properties"],Je=["definitions","parameters","responses","securityDefinitions","components/schemas","components/responses","components/parameters","components/securitySchemes"],Ke=["schema/example","items/example"];function Ye(e){var t=e[e.length-1],n=e[e.length-2],r=e.join("/");return He.indexOf(t)>-1&&-1===We.indexOf(n)||Je.indexOf(r)>-1||Ke.some(function(e){return r.indexOf(e)>-1})}function $e(e,t){var n=e.split("#"),r=O()(n,2),o=r[0],i=r[1],a=E.a.resolve(o||"",t||"");return i?"".concat(a,"#").concat(i):a}var Ge="application/json, application/yaml",Ze=new RegExp("^([a-z]+://|//)","i"),Xe=Be("JSONRefError",function(e,t,n){this.originalError=n,ie()(this,t||{})}),Qe={},et=new Le.a,tt=[function(e){return"paths"===e[0]&&"responses"===e[3]&&"content"===e[5]&&"example"===e[7]},function(e){return"paths"===e[0]&&"requestBody"===e[3]&&"content"===e[4]&&"example"===e[6]}],nt={key:"$ref",plugin:function(e,t,n,r){var o=r.getInstance(),i=n.slice(0,-1);if(!Ye(i)&&(a=i,!tt.some(function(e){return e(a)}))){var a,s=r.getContext(n).baseDoc;if("string"!=typeof e)return new Xe("$ref: must be a string (JSON-Ref)",{$ref:e,baseDoc:s,fullPath:n});var u,c,l,p=st(e),f=p[0],h=p[1]||"";try{u=s||f?it(f,s):null}catch(t){return at(t,{pointer:h,$ref:e,basePath:u,fullPath:n})}if(function(e,t,n,r){var o=et.get(r);o||(o={},et.set(r,o));var i=function(e){if(0===e.length)return"";return"/".concat(e.map(ht).join("/"))}(n),a="".concat(t||"<specmap-base>","#").concat(e),s=i.replace(/allOf\/\d+\/?/g,""),u=r.contextTree.get([]).baseDoc;if(t==u&&mt(s,e))return!0;var c="";if(n.some(function(e){return c="".concat(c,"/").concat(ht(e)),o[c]&&o[c].some(function(e){return mt(e,a)||mt(a,e)})}))return!0;o[s]=(o[s]||[]).concat(a)}(h,u,i,r)&&!o.useCircularStructures){var d=$e(e,u);return e===d?null:_e.replace(n,d)}if(null==u?(l=pt(h),void 0===(c=r.get(l))&&(c=new Xe("Could not resolve reference: ".concat(e),{pointer:h,$ref:e,baseDoc:s,fullPath:n}))):c=null!=(c=ut(u,h)).__value?c.__value:c.catch(function(t){throw at(t,{pointer:h,$ref:e,baseDoc:s,fullPath:n})}),c instanceof Error)return[_e.remove(n),c];var v=$e(e,u),g=_e.replace(i,c,{$$ref:v});if(u&&u!==s)return[g,_e.context(i,{baseDoc:u})];try{if(!function(e,t){var n=[e];return t.path.reduce(function(e,t){return n.push(e[t]),e[t]},e),function e(t){return _e.isObject(t)&&(n.indexOf(t)>=0||m()(t).some(function(n){return e(t[n])}))}(t.value)}(r.state,g)||o.useCircularStructures)return g}catch(e){return null}}}},rt=ie()(nt,{docCache:Qe,absoluteify:it,clearCache:function(e){void 0!==e?delete Qe[e]:m()(Qe).forEach(function(e){delete Qe[e]})},JSONRefError:Xe,wrapError:at,getDoc:ct,split:st,extractFromDoc:ut,fetchJSON:function(e){return Object(Ue.fetch)(e,{headers:{Accept:Ge},loadSpec:!0}).then(function(e){return e.text()}).then(function(e){return q.a.safeLoad(e)})},extract:lt,jsonPointerToArray:pt,unescapeJsonPointerToken:ft}),ot=rt;function it(e,t){if(!Ze.test(e)){if(!t)throw new Xe("Tried to resolve a relative URL, without having a basePath. path: '".concat(e,"' basePath: '").concat(t,"'"));return E.a.resolve(t,e)}return e}function at(e,t){var n;return n=e&&e.response&&e.response.body?"".concat(e.response.body.code," ").concat(e.response.body.message):e.message,new Xe("Could not resolve reference: ".concat(n),t,e)}function st(e){return(e+"").split("#")}function ut(e,t){var n=Qe[e];if(n&&!_e.isPromise(n))try{var r=lt(t,n);return ie()(Q.a.resolve(r),{__value:r})}catch(e){return Q.a.reject(e)}return ct(e).then(function(e){return lt(t,e)})}function ct(e){var t=Qe[e];return t?_e.isPromise(t)?t:Q.a.resolve(t):(Qe[e]=rt.fetchJSON(e).then(function(t){return Qe[e]=t,t}),Qe[e])}function lt(e,t){var n=pt(e);if(n.length<1)return t;var r=_e.getIn(t,n);if(void 0===r)throw new Xe("Could not resolve pointer: ".concat(e," does not exist in document"),{pointer:e});return r}function pt(e){if("string"!=typeof e)throw new TypeError("Expected a string, got a ".concat(P()(e)));return"/"===e[0]&&(e=e.substr(1)),""===e?[]:e.split("/").map(ft)}function ft(e){return"string"!=typeof e?e:Fe.a.unescape(e.replace(/~1/g,"/").replace(/~0/g,"~"))}function ht(e){return Fe.a.escape(e.replace(/~/g,"~0").replace(/\//g,"~1"))}var dt=function(e){return!e||"/"===e||"#"===e};function mt(e,t){if(dt(t))return!0;var n=e.charAt(t.length),r=t.slice(-1);return 0===e.indexOf(t)&&(!n||"/"===n||"#"===n)&&"#"!==r}var vt={key:"allOf",plugin:function(e,t,n,r,o){if(!o.meta||!o.meta.$$ref){var i=n.slice(0,-1);if(!Ye(i)){if(!M()(e)){var a=new TypeError("allOf must be an array");return a.fullPath=n,a}var s=!1,u=o.value;i.forEach(function(e){u&&(u=u[e])}),delete(u=ie()({},u)).allOf;var c=[];return c.push(r.replace(i,{})),e.forEach(function(e,t){if(!r.isObject(e)){if(s)return null;s=!0;var o=new TypeError("Elements in allOf must be objects");return o.fullPath=n,c.push(o)}c.push(r.mergeDeep(i,e));var a=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.specmap,o=n.getBaseUrlForNodePath,i=void 0===o?function(e){return r.getContext([].concat(he()(t),he()(e))).baseDoc}:o,a=n.targetKeys,s=void 0===a?["$ref","$$ref"]:a,u=[];return Ve()(e).forEach(function(){if(s.indexOf(this.key)>-1){var e=this.path,n=t.concat(this.path),o=$e(this.node,i(e));u.push(r.replace(n,o))}}),u}(e,n.slice(0,-1),{getBaseUrlForNodePath:function(e){return r.getContext([].concat(he()(n),[t],he()(e))).baseDoc},specmap:r});c.push.apply(c,he()(a))}),c.push(r.mergeDeep(i,u)),u.$$ref||c.push(r.remove([].concat(i,"$$ref"))),c}}}},gt={key:"parameters",plugin:function(e,t,n,r,o){if(M()(e)&&e.length){var i=ie()([],e),a=n.slice(0,-1),s=ie()({},_e.getIn(r.spec,a));return e.forEach(function(e,t){try{i[t].default=r.parameterMacro(s,e)}catch(e){var o=new Error(e);return o.fullPath=n,o}}),_e.replace(n,i)}return _e.replace(n,e)}},yt={key:"properties",plugin:function(e,t,n,r){var o=ie()({},e);for(var i in e)try{o[i].default=r.modelPropertyMacro(o[i])}catch(e){var a=new Error(e);return a.fullPath=n,a}return _e.replace(n,o)}};function bt(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}var _t=function(){function e(t){se()(this,e),this.root=wt(t||{})}return ce()(e,[{key:"set",value:function(e,t){var n=this.getParent(e,!0);if(n){var r=e[e.length-1],o=n.children;o[r]?xt(o[r],t,n):o[r]=wt(t,n)}else xt(this.root,t,null)}},{key:"get",value:function(e){if((e=e||[]).length<1)return this.root.value;for(var t,n,r=this.root,o=0;o<e.length&&(n=e[o],(t=r.children)[n]);o++)r=t[n];return r&&r.protoValue}},{key:"getParent",value:function(e,t){return!e||e.length<1?null:e.length<2?this.root:e.slice(0,-1).reduce(function(e,n){if(!e)return e;var r=e.children;return!r[n]&&t&&(r[n]=wt(null,e)),r[n]},this.root)}}]),e}();function wt(e,t){return xt({children:{}},e,t)}function xt(e,t,n){return e.value=t||{},e.protoValue=n?function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bt(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):bt(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}({},n.protoValue,{},e.value):e.value,m()(e.children).forEach(function(t){var n=e.children[t];e.children[t]=xt(n,n.value,e)}),e}var Et=function(){function e(t){var n=this;se()(this,e),ie()(this,{spec:"",debugLevel:"info",plugins:[],pluginHistory:{},errors:[],mutations:[],promisedPatches:[],state:{},patches:[],context:{},contextTree:new _t,showDebug:!1,allPatches:[],pluginProp:"specMap",libMethods:ie()(re()(this),_e,{getInstance:function(){return n}}),allowMetaPatches:!1},t),this.get=this._get.bind(this),this.getContext=this._getContext.bind(this),this.hasRun=this._hasRun.bind(this),this.wrappedPlugins=this.plugins.map(this.wrapPlugin.bind(this)).filter(_e.isFunction),this.patches.push(_e.add([],this.spec)),this.patches.push(_e.context([],this.context)),this.updatePatches(this.patches)}return ce()(e,[{key:"debug",value:function(e){if(this.debugLevel===e){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,r)}}},{key:"verbose",value:function(e){if("verbose"===this.debugLevel){for(var t,n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];(t=console).log.apply(t,["[".concat(e,"]   ")].concat(r))}}},{key:"wrapPlugin",value:function(e,t){var n,r,o,i=this.pathDiscriminator,a=null;return e[this.pluginProp]?(a=e,n=e[this.pluginProp]):_e.isFunction(e)?n=e:_e.isObject(e)&&(r=e,o=function(e,t){return!M()(e)||e.every(function(e,n){return e===t[n]})},n=C.a.mark(function e(t,n){var a,s,u,c,l,p,f,h,d;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:d=function(e,t,u){var c,l,p,f,h,v,g,y,b,_,w,x,E;return C.a.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(_e.isObject(e)){a.next=6;break}if(r.key!==t[t.length-1]){a.next=4;break}return a.next=4,r.plugin(e,r.key,t,n);case 4:a.next=30;break;case 6:c=t.length-1,l=t[c],p=t.indexOf("properties"),f="properties"===l&&c===p,h=n.allowMetaPatches&&s[e.$$ref],v=0,g=m()(e);case 12:if(!(v<g.length)){a.next=30;break}if(y=g[v],b=e[y],_=t.concat(y),w=_e.isObject(b),x=e.$$ref,h){a.next=22;break}if(!w){a.next=22;break}return n.allowMetaPatches&&x&&(s[x]=!0),a.delegateYield(d(b,_,u),"t0",22);case 22:if(f||y!==r.key){a.next=27;break}if(E=o(i,t),i&&!E){a.next=27;break}return a.next=27,r.plugin(b,y,_,n,u);case 27:v++,a.next=12;break;case 30:case"end":return a.stop()}},a)},a=C.a.mark(d),s={},u=!0,c=!1,l=void 0,e.prev=6,p=te()(t.filter(_e.isAdditiveMutation));case 8:if(u=(f=p.next()).done){e.next=14;break}return h=f.value,e.delegateYield(d(h.value,h.path,h),"t0",11);case 11:u=!0,e.next=8;break;case 14:e.next=20;break;case 16:e.prev=16,e.t1=e.catch(6),c=!0,l=e.t1;case 20:e.prev=20,e.prev=21,u||null==p.return||p.return();case 23:if(e.prev=23,!c){e.next=26;break}throw l;case 26:return e.finish(23);case 27:return e.finish(20);case 28:case"end":return e.stop()}},e,null,[[6,16,20,28],[21,,23,27]])})),ie()(n.bind(a),{pluginName:e.name||t,isGenerator:_e.isGenerator(n)})}},{key:"nextPlugin",value:function(){var e=this;return pe()(this.wrappedPlugins,function(t){return e.getMutationsForPlugin(t).length>0})}},{key:"nextPromisedPatch",value:function(){if(this.promisedPatches.length>0)return Q.a.race(this.promisedPatches.map(function(e){return e.value}))}},{key:"getPluginHistory",value:function(e){var t=this.getPluginName(e);return this.pluginHistory[t]||[]}},{key:"getPluginRunCount",value:function(e){return this.getPluginHistory(e).length}},{key:"getPluginHistoryTip",value:function(e){var t=this.getPluginHistory(e);return t&&t[t.length-1]||{}}},{key:"getPluginMutationIndex",value:function(e){var t=this.getPluginHistoryTip(e).mutationIndex;return"number"!=typeof t?-1:t}},{key:"getPluginName",value:function(e){return e.pluginName}},{key:"updatePluginHistory",value:function(e,t){var n=this.getPluginName(e);(this.pluginHistory[n]=this.pluginHistory[n]||[]).push(t)}},{key:"updatePatches",value:function(e,t){var n=this;_e.normalizeArray(e).forEach(function(e){if(e instanceof Error)n.errors.push(e);else try{if(!_e.isObject(e))return void n.debug("updatePatches","Got a non-object patch",e);if(n.showDebug&&n.allPatches.push(e),_e.isPromise(e.value))return n.promisedPatches.push(e),void n.promisedPatchThen(e);if(_e.isContextPatch(e))return void n.setContext(e.path,e.value);if(_e.isMutation(e))return void n.updateMutations(e)}catch(e){console.error(e),n.errors.push(e)}})}},{key:"updateMutations",value:function(e){"object"===P()(e.value)&&!M()(e.value)&&this.allowMetaPatches&&(e.value=ie()({},e.value));var t=_e.applyPatch(this.state,e,{allowMetaPatches:this.allowMetaPatches});t&&(this.mutations.push(e),this.state=t)}},{key:"removePromisedPatch",value:function(e){var t=this.promisedPatches.indexOf(e);t<0?this.debug("Tried to remove a promisedPatch that isn't there!"):this.promisedPatches.splice(t,1)}},{key:"promisedPatchThen",value:function(e){var t=this;return e.value=e.value.then(function(n){var r=ie()({},e,{value:n});t.removePromisedPatch(e),t.updatePatches(r)}).catch(function(n){t.removePromisedPatch(e),t.updatePatches(n)})}},{key:"getMutations",value:function(e,t){return e=e||0,"number"!=typeof t&&(t=this.mutations.length),this.mutations.slice(e,t)}},{key:"getCurrentMutations",value:function(){return this.getMutationsForPlugin(this.getCurrentPlugin())}},{key:"getMutationsForPlugin",value:function(e){var t=this.getPluginMutationIndex(e);return this.getMutations(t+1)}},{key:"getCurrentPlugin",value:function(){return this.currentPlugin}},{key:"getPatchesOfType",value:function(e,t){return e.filter(t)}},{key:"getLib",value:function(){return this.libMethods}},{key:"_get",value:function(e){return _e.getIn(this.state,e)}},{key:"_getContext",value:function(e){return this.contextTree.get(e)}},{key:"setContext",value:function(e,t){return this.contextTree.set(e,t)}},{key:"_hasRun",value:function(e){return this.getPluginRunCount(this.getCurrentPlugin())>(e||0)}},{key:"_clone",value:function(e){return JSON.parse(T()(e))}},{key:"dispatch",value:function(){var e=this,t=this,n=this.nextPlugin();if(!n){var r=this.nextPromisedPatch();if(r)return r.then(function(){return e.dispatch()}).catch(function(){return e.dispatch()});var o={spec:this.state,errors:this.errors};return this.showDebug&&(o.patches=this.allPatches),Q.a.resolve(o)}if(t.pluginCount=t.pluginCount||{},t.pluginCount[n]=(t.pluginCount[n]||0)+1,t.pluginCount[n]>100)return Q.a.resolve({spec:t.state,errors:t.errors.concat(new Error("We've reached a hard limit of ".concat(100," plugin runs")))});if(n!==this.currentPlugin&&this.promisedPatches.length){var i=this.promisedPatches.map(function(e){return e.value});return Q.a.all(i.map(function(e){return e.then(Function,Function)})).then(function(){return e.dispatch()})}return function(){t.currentPlugin=n;var e=t.getCurrentMutations(),r=t.mutations.length-1;try{if(n.isGenerator){var o=!0,i=!1,s=void 0;try{for(var u,c=te()(n(e,t.getLib()));!(o=(u=c.next()).done);o=!0){a(u.value)}}catch(e){i=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw s}}}else{a(n(e,t.getLib()))}}catch(e){console.error(e),a([ie()(re()(e),{plugin:n})])}finally{t.updatePluginHistory(n,{mutationIndex:r})}return t.dispatch()}();function a(e){e&&(e=_e.fullyNormalizeArray(e),t.updatePatches(e,n))}}}]),e}();var St={refs:ot,allOf:vt,parameters:gt,properties:yt},Ct=n(29),kt=n.n(Ct),Ot=function(e){return String.prototype.toLowerCase.call(e)},At=function(e){return e.replace(/[^\w]/gi,"_")};function Tt(e){var t=e.openapi;return!!t&&w()(t,"3")}function jt(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=(arguments.length>3&&void 0!==arguments[3]?arguments[3]:{}).v2OperationIdCompatibilityMode;return e&&"object"===P()(e)?(e.operationId||"").replace(/\s/g,"").length?At(e.operationId):function(e,t){if((arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).v2OperationIdCompatibilityMode){var n="".concat(t.toLowerCase(),"_").concat(e).replace(/[\s!@#$%^&*()_+=[{\]};:<>|.\/?,\\'""-]/g,"_");return(n=n||"".concat(e.substring(1),"_").concat(t)).replace(/((_){2,})/g,"_").replace(/^(_)*/g,"").replace(/([_])*$/g,"")}return"".concat(Ot(t)).concat(At(e))}(t,n,{v2OperationIdCompatibilityMode:r}):null}function Pt(e,t){return"".concat(Ot(t),"-").concat(e)}function It(e,t){return e&&e.paths?function(e,t){return Mt(e,t,!0)||null}(e,function(e){var n=e.pathName,r=e.method,o=e.operation;if(!o||"object"!==P()(o))return!1;var i=o.operationId;return[jt(o,n,r),Pt(n,r),i].some(function(e){return e&&e===t})}):null}function Mt(e,t,n){if(!e||"object"!==P()(e)||!e.paths||"object"!==P()(e.paths))return null;var r=e.paths;for(var o in r)for(var i in r[o])if("PARAMETERS"!==i.toUpperCase()){var a=r[o][i];if(a&&"object"===P()(a)){var s={spec:e,pathName:o,method:i.toUpperCase(),operation:a},u=t(s);if(n&&u)return s}}}function Nt(e){var t=e.spec,n=t.paths,r={};if(!n||t.$$normalized)return e;for(var o in n){var i=n[o];if(kt()(i)){var a=i.parameters,s=function(e){var n=i[e];if(!kt()(n))return"continue";var s=jt(n,o,e);if(s){r[s]?r[s].push(n):r[s]=[n];var u=r[s];if(u.length>1)u.forEach(function(e,t){e.__originalOperationId=e.__originalOperationId||e.operationId,e.operationId="".concat(s).concat(t+1)});else if(void 0!==n.operationId){var c=u[0];c.__originalOperationId=c.__originalOperationId||n.operationId,c.operationId=s}}if("parameters"!==e){var l=[],p={};for(var f in t)"produces"!==f&&"consumes"!==f&&"security"!==f||(p[f]=t[f],l.push(p));if(a&&(p.parameters=a,l.push(p)),l.length)for(var h=0,d=l;h<d.length;h++){var m=d[h];for(var v in m)if(n[v]){if("parameters"===v){var g=!0,y=!1,b=void 0;try{for(var _,w=function(){var e=_.value;n[v].some(function(t){return t.name&&t.name===e.name||t.$ref&&t.$ref===e.$ref||t.$$ref&&t.$$ref===e.$$ref||t===e})||n[v].push(e)},x=te()(m[v]);!(g=(_=x.next()).done);g=!0)w()}catch(e){y=!0,b=e}finally{try{g||null==x.return||x.return()}finally{if(y)throw b}}}}else n[v]=m[v]}}};for(var u in i)s(u)}}return t.$$normalized=!0,e}function Rt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.requestInterceptor,r=t.responseInterceptor,o=e.withCredentials?"include":"same-origin";return function(t){return e({url:t,loadSpec:!0,requestInterceptor:n,responseInterceptor:r,headers:{Accept:Ge},credentials:o}).then(function(e){return e.body})}}function Dt(e){var t=e.fetch,n=e.spec,r=e.url,o=e.mode,i=e.allowMetaPatches,a=void 0===i||i,s=e.pathDiscriminator,u=e.modelPropertyMacro,c=e.parameterMacro,l=e.requestInterceptor,p=e.responseInterceptor,f=e.skipNormalization,h=e.useCircularStructures,d=e.http,m=e.baseDoc;return m=m||r,d=t||d||V,n?v(n):Rt(d,{requestInterceptor:l,responseInterceptor:p})(m).then(v);function v(e){m&&(St.refs.docCache[m]=e),St.refs.fetchJSON=Rt(d,{requestInterceptor:l,responseInterceptor:p});var t,n=[St.refs];return"function"==typeof c&&n.push(St.parameters),"function"==typeof u&&n.push(St.properties),"strict"!==o&&n.push(St.allOf),(t={spec:e,context:{baseDoc:m},plugins:n,allowMetaPatches:a,pathDiscriminator:s,parameterMacro:c,modelPropertyMacro:u,useCircularStructures:h},new Et(t).dispatch()).then(f?function(){var e=R()(C.a.mark(function e(t){return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",t);case 1:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}():Nt)}}var Lt=n(16),Ut=n.n(Lt);function qt(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function Ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qt(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):qt(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}function Bt(){return(Bt=R()(C.a.mark(function e(t,n){var r,o,i,a,s,u,c,l,p,f,h,d,m=arguments;return C.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return r=m.length>2&&void 0!==m[2]?m[2]:{},o=r.returnEntireTree,i=r.baseDoc,a=r.requestInterceptor,s=r.responseInterceptor,u=r.parameterMacro,c=r.modelPropertyMacro,l=r.useCircularStructures,p={pathDiscriminator:n,baseDoc:i,requestInterceptor:a,responseInterceptor:s,parameterMacro:u,modelPropertyMacro:c,useCircularStructures:l},f=Nt({spec:t}),h=f.spec,e.next=6,Dt(Ft({},p,{spec:h,allowMetaPatches:!0,skipNormalization:!0}));case 6:return d=e.sent,!o&&M()(n)&&n.length&&(d.spec=Ut()(d.spec,n)||null),e.abrupt("return",d);case 9:case"end":return e.stop()}},e)}))).apply(this,arguments)}var zt=n(38),Vt=n.n(zt);function Ht(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function Wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):Ht(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}var Jt=function(){return null},Kt=function(e){return M()(e)?e:[e]},Yt={mapTagOperations:function(e){var t=e.spec,n=e.cb,r=void 0===n?Jt:n,o=e.defaultTag,i=void 0===o?"default":o,a=e.v2OperationIdCompatibilityMode,s={},u={};return Mt(t,function(e){var n=e.pathName,o=e.method,c=e.operation;(c.tags?Kt(c.tags):[i]).forEach(function(e){if("string"==typeof e){var i=u[e]=u[e]||{},l=jt(c,n,o,{v2OperationIdCompatibilityMode:a}),p=r({spec:t,pathName:n,method:o,operation:c,operationId:l});if(s[l])s[l]++,i["".concat(l).concat(s[l])]=p;else if(void 0!==i[l]){var f=s[l]||1;s[l]=f+1,i["".concat(l).concat(s[l])]=p;var h=i[l];delete i[l],i["".concat(l).concat(f)]=h}else i[l]=p}})}),u},makeExecute:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(t){var n=t.pathName,r=t.method,o=t.operationId;return function(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.execute(Wt({spec:e.spec},Vt()(e,"requestInterceptor","responseInterceptor","userFetch"),{pathName:n,method:r,parameters:t,operationId:o},i))}}}};var $t=n(39),Gt=n.n($t),Zt=n(40),Xt=n.n(Zt),Qt=n(41),en=n.n(Qt),tn=n(19),nn=n.n(tn),rn=n(42),on=n.n(rn),an={body:function(e){var t=e.req,n=e.value;t.body=n},header:function(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{},void 0!==r&&(t.headers[n.name]=r)},query:function(e){var t=e.req,n=e.value,r=e.parameter;t.query=t.query||{},!1===n&&"boolean"===r.type&&(n="false");0===n&&["number","integer"].indexOf(r.type)>-1&&(n="0");if(n)t.query[r.name]={collectionFormat:r.collectionFormat,value:n};else if(r.allowEmptyValue&&void 0!==n){var o=r.name;t.query[o]=t.query[o]||{},t.query[o].allowEmptyValue=!0}},path:function(e){var t=e.req,n=e.value,r=e.parameter;t.url=t.url.split("{".concat(r.name,"}")).join(encodeURIComponent(n))},formData:function(e){var t=e.req,n=e.value,r=e.parameter;(n||r.allowEmptyValue)&&(t.form=t.form||{},t.form[r.name]={value:n,allowEmptyValue:r.allowEmptyValue,collectionFormat:r.collectionFormat})}};n(49);var sn=n(43),un=n.n(sn),cn=n(44),ln=function(e){return":/?#[]@!$&'()*+,;=".indexOf(e)>-1},pn=function(e){return/^[a-z0-9\-._~]+$/i.test(e)};function fn(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).escape,n=arguments.length>2?arguments[2]:void 0;return"number"==typeof e&&(e=e.toString()),"string"==typeof e&&e.length&&t?n?JSON.parse(e):Object(cn.stringToCharArray)(e).map(function(e){return pn(e)?e:ln(e)&&"unsafe"===t?e:(un()(e)||[]).map(function(e){return"0".concat(e.toString(16).toUpperCase()).slice(-2)}).map(function(e){return"%".concat(e)}).join("")}).join(""):e}function hn(e){var t=e.value;return M()(t)?function(e){var t=e.key,n=e.value,r=e.style,o=e.explode,i=e.escape,a=function(e){return fn(e,{escape:i})};if("simple"===r)return n.map(function(e){return a(e)}).join(",");if("label"===r)return".".concat(n.map(function(e){return a(e)}).join("."));if("matrix"===r)return n.map(function(e){return a(e)}).reduce(function(e,n){return!e||o?"".concat(e||"",";").concat(t,"=").concat(n):"".concat(e,",").concat(n)},"");if("form"===r){var s=o?"&".concat(t,"="):",";return n.map(function(e){return a(e)}).join(s)}if("spaceDelimited"===r){var u=o?"".concat(t,"="):"";return n.map(function(e){return a(e)}).join(" ".concat(u))}if("pipeDelimited"===r){var c=o?"".concat(t,"="):"";return n.map(function(e){return a(e)}).join("|".concat(c))}}(e):"object"===P()(t)?function(e){var t=e.key,n=e.value,r=e.style,o=e.explode,i=e.escape,a=function(e){return fn(e,{escape:i})},s=m()(n);if("simple"===r)return s.reduce(function(e,t){var r=a(n[t]),i=o?"=":",",s=e?"".concat(e,","):"";return"".concat(s).concat(t).concat(i).concat(r)},"");if("label"===r)return s.reduce(function(e,t){var r=a(n[t]),i=o?"=":".",s=e?"".concat(e,"."):".";return"".concat(s).concat(t).concat(i).concat(r)},"");if("matrix"===r&&o)return s.reduce(function(e,t){var r=a(n[t]),o=e?"".concat(e,";"):";";return"".concat(o).concat(t,"=").concat(r)},"");if("matrix"===r)return s.reduce(function(e,r){var o=a(n[r]),i=e?"".concat(e,","):";".concat(t,"=");return"".concat(i).concat(r,",").concat(o)},"");if("form"===r)return s.reduce(function(e,t){var r=a(n[t]),i=e?"".concat(e).concat(o?"&":","):"",s=o?"=":",";return"".concat(i).concat(t).concat(s).concat(r)},"")}(e):function(e){var t=e.key,n=e.value,r=e.style,o=e.escape,i=function(e){return fn(e,{escape:o})};if("simple"===r)return i(n);if("label"===r)return".".concat(i(n));if("matrix"===r)return";".concat(t,"=").concat(i(n));if("form"===r)return i(n);if("deepObject"===r)return i(n)}(e)}function dn(e,t){return t.includes("application/json")?"string"==typeof e?e:T()(e):e.toString()}function mn(e){var t=e.req,n=e.value,r=e.parameter,o=r.name,i=r.style,a=r.explode,s=r.content;if(s){var u=m()(s)[0];t.url=t.url.split("{".concat(o,"}")).join(fn(dn(n,u),{escape:!0}))}else{var c=hn({key:r.name,value:n,style:i||"simple",explode:a||!1,escape:!0});t.url=t.url.split("{".concat(o,"}")).join(c)}}function vn(e){var t=e.req,n=e.value,r=e.parameter;if(t.query=t.query||{},r.content){var o=m()(r.content)[0];t.query[r.name]=dn(n,o)}else if(!1===n&&(n="false"),0===n&&(n="0"),n){var i=P()(n);if("deepObject"===r.style)m()(n).forEach(function(e){var o=n[e];t.query["".concat(r.name,"[").concat(e,"]")]={value:hn({key:e,value:o,style:"deepObject",escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0}});else if("object"!==i||M()(n)||"form"!==r.style&&r.style||!r.explode&&void 0!==r.explode){var a=encodeURIComponent(r.name);t.query[a]={value:hn({key:a,value:n,style:r.style||"form",explode:void 0===r.explode||r.explode,escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0}}else{m()(n).forEach(function(e){var o=n[e];t.query[e]={value:hn({key:e,value:o,style:r.style||"form",escape:r.allowReserved?"unsafe":"reserved"}),skipEncoding:!0}})}}else if(r.allowEmptyValue&&void 0!==n){var s=r.name;t.query[s]=t.query[s]||{},t.query[s].allowEmptyValue=!0}}var gn=["accept","authorization","content-type"];function yn(e){var t=e.req,n=e.parameter,r=e.value;if(t.headers=t.headers||{},!(gn.indexOf(n.name.toLowerCase())>-1))if(n.content){var o=m()(n.content)[0];t.headers[n.name]=dn(r,o)}else void 0!==r&&(t.headers[n.name]=hn({key:n.name,value:r,style:n.style||"simple",explode:void 0!==n.explode&&n.explode,escape:!1}))}function bn(e){var t=e.req,n=e.parameter,r=e.value;t.headers=t.headers||{};var o=P()(r);if(n.content){var i=m()(n.content)[0];t.headers.Cookie="".concat(n.name,"=").concat(dn(r,i))}else if("undefined"!==o){var a="object"===o&&!M()(r)&&n.explode?"":"".concat(n.name,"=");t.headers.Cookie=a+hn({key:n.name,value:r,escape:!1,style:n.style||"form",explode:void 0!==n.explode&&n.explode})}}var _n=n(30),wn=function(e,t){var n=e.operation,r=e.requestBody,o=e.securities,i=e.spec,a=e.attachContentTypeForEmptyPayload,s=e.requestContentType;t=function(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,o=e.operation,i=void 0===o?{}:o,a=e.spec,s=b()({},t),u=r.authorized,c=void 0===u?{}:u,l=i.security||a.security||[],p=c&&!!m()(c).length,f=Ut()(a,["components","securitySchemes"])||{};if(s.headers=s.headers||{},s.query=s.query||{},!m()(r).length||!p||!l||M()(i.security)&&!i.security.length)return t;return l.forEach(function(e,t){for(var n in e){var r=c[n],o=f[n];if(r){var i=r.value||r,a=o.type;if(r)if("apiKey"===a)"query"===o.in&&(s.query[o.name]=i),"header"===o.in&&(s.headers[o.name]=i),"cookie"===o.in&&(s.cookies[o.name]=i);else if("http"===a){if("basic"===o.scheme){var u=i.username,l=i.password,p=nn()("".concat(u,":").concat(l));s.headers.Authorization="Basic ".concat(p)}"bearer"===o.scheme&&(s.headers.Authorization="Bearer ".concat(i))}else if("oauth2"===a){var h=r.token||{},d=h[o["x-tokenName"]||"access_token"],m=h.token_type;m&&"bearer"!==m.toLowerCase()||(m="Bearer"),s.headers.Authorization="".concat(m," ").concat(d)}}}}),s}({request:t,securities:o,operation:n,spec:i});var u=n.requestBody||{},c=m()(u.content||{}),l=s&&c.indexOf(s)>-1;if(r||a){if(s&&l)t.headers["Content-Type"]=s;else if(!s){var p=c[0];p&&(t.headers["Content-Type"]=p,s=p)}}else s&&l&&(t.headers["Content-Type"]=s);return r&&(s?c.indexOf(s)>-1&&("application/x-www-form-urlencoded"===s||0===s.indexOf("multipart/")?"object"===P()(r)?(t.form={},m()(r).forEach(function(e){var n,o,i=r[e];"undefined"!=typeof File&&(o=i instanceof File),"undefined"!=typeof Blob&&(o=o||i instanceof Blob),void 0!==_n.Buffer&&(o=o||_n.Buffer.isBuffer(i)),n="object"!==P()(i)||o?i:M()(i)?i.toString():T()(i),t.form[e]={value:n}})):t.form=r:t.body=r):t.body=r),t};var xn=function(e,t){var n=e.spec,r=e.operation,o=e.securities,i=e.requestContentType,a=e.attachContentTypeForEmptyPayload;if((t=function(e){var t=e.request,n=e.securities,r=void 0===n?{}:n,o=e.operation,i=void 0===o?{}:o,a=e.spec,s=b()({},t),u=r.authorized,c=void 0===u?{}:u,l=r.specSecurity,p=void 0===l?[]:l,f=i.security||p,h=c&&!!m()(c).length,d=a.securityDefinitions;if(s.headers=s.headers||{},s.query=s.query||{},!m()(r).length||!h||!f||M()(i.security)&&!i.security.length)return t;return f.forEach(function(e,t){for(var n in e){var r=c[n];if(r){var o=r.token,i=r.value||r,a=d[n],u=a.type,l=a["x-tokenName"]||"access_token",p=o&&o[l],f=o&&o.token_type;if(r)if("apiKey"===u){var h="query"===a.in?"query":"headers";s[h]=s[h]||{},s[h][a.name]=i}else"basic"===u?i.header?s.headers.authorization=i.header:(i.base64=nn()("".concat(i.username,":").concat(i.password)),s.headers.authorization="Basic ".concat(i.base64)):"oauth2"===u&&p&&(f=f&&"bearer"!==f.toLowerCase()?f:"Bearer",s.headers.authorization="".concat(f," ").concat(p))}}}),s}({request:t,securities:o,operation:r,spec:n})).body||t.form||a)i?t.headers["Content-Type"]=i:M()(r.consumes)?t.headers["Content-Type"]=r.consumes[0]:M()(n.consumes)?t.headers["Content-Type"]=n.consumes[0]:r.parameters&&r.parameters.filter(function(e){return"file"===e.type}).length?t.headers["Content-Type"]="multipart/form-data":r.parameters&&r.parameters.filter(function(e){return"formData"===e.in}).length&&(t.headers["Content-Type"]="application/x-www-form-urlencoded");else if(i){var s=r.parameters&&r.parameters.filter(function(e){return"body"===e.in}).length>0,u=r.parameters&&r.parameters.filter(function(e){return"formData"===e.in}).length>0;(s||u)&&(t.headers["Content-Type"]=i)}return t};function En(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function Sn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?En(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):En(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}var Cn=function(e){return M()(e)?e:[]},kn=Be("OperationNotFoundError",function(e,t,n){this.originalError=n,ie()(this,t||{})}),On=function(e,t){return t.filter(function(t){return t.name===e})},An=function(e){var t={};e.forEach(function(e){t[e.in]||(t[e.in]={}),t[e.in][e.name]=e});var n=[];return m()(t).forEach(function(e){m()(t[e]).forEach(function(r){n.push(t[e][r])})}),n},Tn={buildRequest:jn};function jn(e){var t=e.spec,n=e.operationId,o=(e.securities,e.requestContentType,e.responseContentType),i=e.scheme,a=e.requestInterceptor,s=e.responseInterceptor,u=e.contextUrl,c=e.userFetch,l=(e.requestBody,e.server),p=e.serverVariables,f=e.http,h=e.parameters,d=e.parameterBuilders,v=Tt(t);d||(d=v?r:an);var g={url:"",credentials:f&&f.withCredentials?"include":"same-origin",headers:{},cookies:{}};a&&(g.requestInterceptor=a),s&&(g.responseInterceptor=s),c&&(g.userFetch=c);var y=It(t,n);if(!y)throw new kn("Operation ".concat(n," not found"));var b,_=y.operation,w=void 0===_?{}:_,x=y.method,S=y.pathName;if(g.url+=Tt((b={spec:t,scheme:i,contextUrl:u,server:l,serverVariables:p,pathName:S,method:x}).spec)?function(e){var t=e.spec,n=e.pathName,r=e.method,o=e.server,i=e.contextUrl,a=e.serverVariables,s=void 0===a?{}:a,u=Ut()(t,["paths",n,(r||"").toLowerCase(),"servers"])||Ut()(t,["paths",n,"servers"])||Ut()(t,["servers"]),c="",l=null;if(o&&u&&u.length){var p=u.map(function(e){return e.url});p.indexOf(o)>-1&&(c=o,l=u[p.indexOf(o)])}return!c&&u&&u.length&&(c=u[0].url,l=u[0]),c.indexOf("{")>-1&&function(e){for(var t,n=[],r=/{([^}]+)}/g;t=r.exec(e);)n.push(t[1]);return n}(c).forEach(function(e){if(l.variables&&l.variables[e]){var t=l.variables[e],n=s[e]||t.default,r=new RegExp("{".concat(e,"}"),"g");c=c.replace(r,n)}}),function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=E.a.parse(t),o=E.a.parse(n),i=Pn(r.protocol)||Pn(o.protocol)||"",a=r.host||o.host,s=r.pathname||"";return"/"===(e=i&&a?"".concat(i,"://").concat(a+s):s)[e.length-1]?e.slice(0,-1):e}(c,i)}(b):function(e){var t,n=e.spec,r=e.scheme,o=e.contextUrl,i=void 0===o?"":o,a=E.a.parse(i),s=M()(n.schemes)?n.schemes[0]:null,u=r||s||Pn(a.protocol)||"http",c=n.host||a.host||"",l=n.basePath||"";return"/"===(t=u&&c?"".concat(u,"://").concat(c+l):l)[t.length-1]?t.slice(0,-1):t}(b),!n)return delete g.cookies,g;g.url+=S,g.method="".concat(x).toUpperCase(),h=h||{};var C=t.paths[S]||{};o&&(g.headers.accept=o);var k=An([].concat(Cn(w.parameters)).concat(Cn(C.parameters)));k.forEach(function(e){var n,r=d[e.in];if("body"===e.in&&e.schema&&e.schema.properties&&(n=h),void 0===(n=e&&e.name&&h[e.name])?n=e&&e.name&&h["".concat(e.in,".").concat(e.name)]:On(e.name,k).length>1&&console.warn("Parameter '".concat(e.name,"' is ambiguous because the defined spec has more than one parameter with the name: '").concat(e.name,"' and the passed-in parameter values did not define an 'in' value.")),null!==n){if(void 0!==e.default&&void 0===n&&(n=e.default),void 0===n&&e.required&&!e.allowEmptyValue)throw new Error("Required parameter ".concat(e.name," is not provided"));if(v&&e.schema&&"object"===e.schema.type&&"string"==typeof n)try{n=JSON.parse(n)}catch(e){throw new Error("Could not parse object parameter value string as JSON")}r&&r({req:g,parameter:e,value:n,operation:w,spec:t})}});var O=Sn({},e,{operation:w});if((g=v?wn(O,g):xn(O,g)).cookies&&m()(g.cookies).length){var A=m()(g.cookies).reduce(function(e,t){var n=g.cookies[t];return e+(e?"&":"")+on.a.serialize(t,n)},"");g.headers.Cookie=A}return g.cookies&&delete g.cookies,Z(g),g}var Pn=function(e){return e?e.replace(/\W/g,""):null};function In(e,t){var n=m()(e);if(h.a){var r=h()(e);t&&(r=r.filter(function(t){return p()(e,t).enumerable})),n.push.apply(n,r)}return n}function Mn(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e?n.url=e:n=e,!(this instanceof Mn))return new Mn(n);b()(this,n);var r=this.resolve().then(function(){return t.disableInterfaces||b()(t,Mn.makeApisTagOperation(t)),t});return r.client=this,r}Mn.http=V,Mn.makeHttp=function(e,t,n){return n=n||function(e){return e},t=t||function(e){return e},function(r){return"string"==typeof r&&(r={url:r}),z.mergeInQueryOrForm(r),r=t(r),n(e(r))}}.bind(null,Mn.http),Mn.resolve=Dt,Mn.resolveSubtree=function(e,t){return Bt.apply(this,arguments)},Mn.execute=function(e){var t=e.http,n=e.fetch,r=e.spec,o=e.operationId,i=e.pathName,a=e.method,s=e.parameters,u=e.securities,c=Gt()(e,["http","fetch","spec","operationId","pathName","method","parameters","securities"]),l=t||n||V;i&&a&&!o&&(o=Pt(i,a));var p=Tn.buildRequest(Sn({spec:r,operationId:o,parameters:s,securities:u,http:l},c));return p.body&&(Xt()(p.body)||en()(p.body))&&(p.body=T()(p.body)),l(p)},Mn.serializeRes=J,Mn.serializeHeaders=K,Mn.clearCache=function(){St.refs.clearCache()},Mn.makeApisTagOperation=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Yt.makeExecute(e);return{apis:Yt.mapTagOperations({v2OperationIdCompatibilityMode:e.v2OperationIdCompatibilityMode,spec:e.spec,cb:t})}},Mn.buildRequest=jn,Mn.helpers={opId:jt},Mn.prototype={http:V,execute:function(e){return this.applyDefaults(),Mn.execute(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?In(n,!0).forEach(function(t){g()(e,t,n[t])}):c.a?s()(e,c()(n)):In(n).forEach(function(t){i()(e,t,p()(n,t))})}return e}({spec:this.spec,http:this.http,securities:{authorized:this.authorizations},contextUrl:"string"==typeof this.url?this.url:void 0},e))},resolve:function(){var e=this;return Mn.resolve({spec:this.spec,url:this.url,allowMetaPatches:this.allowMetaPatches,useCircularStructures:this.useCircularStructures,requestInterceptor:this.requestInterceptor||null,responseInterceptor:this.responseInterceptor||null}).then(function(t){return e.originalSpec=e.spec,e.spec=t.spec,e.errors=t.errors,e})}},Mn.prototype.applyDefaults=function(){var e=this.spec,t=this.url;if(t&&w()(t,"http")){var n=E.a.parse(t);e.host||(e.host=n.host),e.schemes||(e.schemes=[n.protocol.replace(":","")]),e.basePath||(e.basePath="/")}};t.default=Mn}]).default},function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(426),a=n(90),s=n(427),u=n(116),c=n(185),l=n(15),p=[],f=0,h=i.getPooled(),d=!1,m=null;function v(){x.ReactReconcileTransaction&&m||r("123")}var g=[{initialize:function(){this.dirtyComponentsLength=p.length},close:function(){this.dirtyComponentsLength!==p.length?(p.splice(0,this.dirtyComponentsLength),w()):p.length=0}},{initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}}];function y(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=i.getPooled(),this.reconcileTransaction=x.ReactReconcileTransaction.getPooled(!0)}function b(e,t){return e._mountOrder-t._mountOrder}function _(e){var t=e.dirtyComponentsLength;t!==p.length&&r("124",t,p.length),p.sort(b),f++;for(var n=0;n<t;n++){var o,i=p[n],a=i._pendingCallbacks;if(i._pendingCallbacks=null,s.logTopLevelRenders){var c=i;i._currentElement.type.isReactTopLevelWrapper&&(c=i._renderedComponent),o="React update: "+c.getName(),console.time(o)}if(u.performUpdateIfNecessary(i,e.reconcileTransaction,f),o&&console.timeEnd(o),a)for(var l=0;l<a.length;l++)e.callbackQueue.enqueue(a[l],i.getPublicInstance())}}o(y.prototype,c,{getTransactionWrappers:function(){return g},destructor:function(){this.dirtyComponentsLength=null,i.release(this.callbackQueue),this.callbackQueue=null,x.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return c.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),a.addPoolingTo(y);var w=function(){for(;p.length||d;){if(p.length){var e=y.getPooled();e.perform(_,null,e),y.release(e)}if(d){d=!1;var t=h;h=i.getPooled(),t.notifyAll(),i.release(t)}}};var x={ReactReconcileTransaction:null,batchedUpdates:function(e,t,n,r,o,i){return v(),m.batchedUpdates(e,t,n,r,o,i)},enqueueUpdate:function e(t){v(),m.isBatchingUpdates?(p.push(t),null==t._updateBatchNumber&&(t._updateBatchNumber=f+1)):m.batchedUpdates(e,t)},flushBatchedUpdates:w,injection:{injectReconcileTransaction:function(e){e||r("126"),x.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e||r("127"),"function"!=typeof e.batchedUpdates&&r("128"),"boolean"!=typeof e.isBatchingUpdates&&r("129"),m=e}},asap:function(e,t){l(m.isBatchingUpdates,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."),h.enqueue(e,t),d=!0}};e.exports=x},function(e,t,n){var r;
 /*!
   Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
 /*!
   Copyright (c) 2017 Jed Watson.
   Licensed under the MIT License (MIT), see
@@ -14,14 +14,14 @@ object-assign
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
   Licensed under the MIT License (MIT), see
   http://jedwatson.github.io/classnames
 */
-!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){e.exports=n(750)},function(e,t,n){e.exports=n(753)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SELECTED_SERVER",function(){return r}),n.d(t,"UPDATE_REQUEST_BODY_VALUE",function(){return o}),n.d(t,"UPDATE_ACTIVE_EXAMPLES_MEMBER",function(){return i}),n.d(t,"UPDATE_REQUEST_CONTENT_TYPE",function(){return a}),n.d(t,"UPDATE_RESPONSE_CONTENT_TYPE",function(){return s}),n.d(t,"UPDATE_SERVER_VARIABLE_VALUE",function(){return u}),n.d(t,"setSelectedServer",function(){return c}),n.d(t,"setRequestBodyValue",function(){return l}),n.d(t,"setActiveExamplesMember",function(){return p}),n.d(t,"setRequestContentType",function(){return f}),n.d(t,"setResponseContentType",function(){return h}),n.d(t,"setServerVariableValue",function(){return d});var r="oas3_set_servers",o="oas3_set_request_body_value",i="oas3_set_active_examples_member",a="oas3_set_request_content_type",s="oas3_set_response_content_type",u="oas3_set_server_variable_value";function c(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function l(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}}function p(e){var t=e.name,n=e.pathMethod,r=e.contextType,o=e.contextName;return{type:i,payload:{name:t,pathMethod:n,contextType:r,contextName:o}}}function f(e){var t=e.value,n=e.pathMethod;return{type:a,payload:{value:t,pathMethod:n}}}function h(e){var t=e.value,n=e.path,r=e.method;return{type:s,payload:{value:t,path:n,method:r}}}function d(e){var t=e.server,n=e.namespace,r=e.key,o=e.val;return{type:u,payload:{server:t,namespace:n,key:r,val:o}}}},function(e,t,n){var r=n(129);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";(function(e){
+!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var a=o.apply(null,r);a&&e.push(a)}else if("object"===i)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,n){e.exports=n(765)},function(e,t,n){e.exports=n(768)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SELECTED_SERVER",function(){return r}),n.d(t,"UPDATE_REQUEST_BODY_VALUE",function(){return o}),n.d(t,"UPDATE_ACTIVE_EXAMPLES_MEMBER",function(){return i}),n.d(t,"UPDATE_REQUEST_CONTENT_TYPE",function(){return a}),n.d(t,"UPDATE_RESPONSE_CONTENT_TYPE",function(){return s}),n.d(t,"UPDATE_SERVER_VARIABLE_VALUE",function(){return u}),n.d(t,"setSelectedServer",function(){return c}),n.d(t,"setRequestBodyValue",function(){return l}),n.d(t,"setActiveExamplesMember",function(){return p}),n.d(t,"setRequestContentType",function(){return f}),n.d(t,"setResponseContentType",function(){return h}),n.d(t,"setServerVariableValue",function(){return d});var r="oas3_set_servers",o="oas3_set_request_body_value",i="oas3_set_active_examples_member",a="oas3_set_request_content_type",s="oas3_set_response_content_type",u="oas3_set_server_variable_value";function c(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function l(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}}function p(e){var t=e.name,n=e.pathMethod,r=e.contextType,o=e.contextName;return{type:i,payload:{name:t,pathMethod:n,contextType:r,contextName:o}}}function f(e){var t=e.value,n=e.pathMethod;return{type:a,payload:{value:t,pathMethod:n}}}function h(e){var t=e.value,n=e.path,r=e.method;return{type:s,payload:{value:t,path:n,method:r}}}function d(e){var t=e.server,n=e.namespace,r=e.key,o=e.val;return{type:u,payload:{server:t,namespace:n,key:r,val:o}}}},function(e,t,n){var r=n(132);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";(function(e){
 /*!
  * The buffer module from node.js, for the browser.
  *
  * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
  * @license  MIT
  */
 /*!
  * The buffer module from node.js, for the browser.
  *
  * @author   Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
  * @license  MIT
  */
-var r=n(558),o=n(559),i=n(350);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return p(this,e)}return c(this,e,t,n)}function c(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=f(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(u.isBuffer(t)){var n=0|h(t.length);return 0===(e=s(e,n)).length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):f(e,t);if("Buffer"===t.type&&i(t.data))return f(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function p(e,t){if(l(t),e=s(e,t<0?0:0|h(t)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function f(e,t){var n=t.length<0?0:0|h(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return B(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,o);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,o){var i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(c(e,i)===c(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===u)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+u>s&&(n=s-u),i=n;i>=0;i--){for(var p=!0,f=0;f<u;f++)if(c(e,i+f)!==c(t,f)){p=!1;break}if(p)return i}return-1}function b(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function _(e,t,n,r){return V(z(t,e.length-n),e,n,r)}function w(e,t,n,r){return V(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function x(e,t,n,r){return w(e,t,n,r)}function E(e,t,n,r){return V(B(t),e,n,r)}function S(e,t,n,r){return V(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,u,c=e[o],l=null,p=c>239?4:c>223?3:c>191?2:1;if(o+p<=n)switch(p){case 1:c<128&&(l=c);break;case 2:128==(192&(i=e[o+1]))&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=p}return function(e){var t=e.length;if(t<=O)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=O));return n}(r)}t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,n){return c(null,e,t,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},u.allocUnsafe=function(e){return p(null,e)},u.allocUnsafeSlow=function(e){return p(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=u.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):m.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),c=this.slice(r,o),l=e.slice(t,n),p=0;p<s;++p)if(c[p]!==l[p]){i=c[p],a=l[p];break}return i<a?-1:a<i?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return g(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return g(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return x(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function A(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function j(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=F(e[i]);return o}function P(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function I(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function N(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function R(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function D(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return i||D(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,i){return i||D(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=u.prototype;else{var o=t-e;n=new u(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},u.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},u.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||M(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||M(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},u.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=u.isBuffer(e)?e:z(new u(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var q=/[^+\/0-9A-Za-z-_]/g;function F(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(42))},function(e,t,n){"use strict";e.exports={current:null}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";var r=n(25),o=n(88),i=n(54),a=(n(23),["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),s={type:null,target:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};function u(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){0;var s=o[a];s?this[a]=s(n):"target"===a?this.target=r:this[a]=n[a]}var u=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=u?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse,this}r(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<a.length;n++)this[a[n]]=null}}),u.Interface=s,u.augmentClass=function(e,t){var n=function(){};n.prototype=this.prototype;var i=new n;r(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=r({},this.Interface,t),e.augmentClass=this.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(u,o.fourArgumentPooler),e.exports=u},function(e,t,n){var r=n(360);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"lastError",function(){return d}),n.d(t,"url",function(){return m}),n.d(t,"specStr",function(){return v}),n.d(t,"specSource",function(){return g}),n.d(t,"specJson",function(){return y}),n.d(t,"specResolved",function(){return b}),n.d(t,"specResolvedSubtree",function(){return _}),n.d(t,"specJsonWithResolvedSubtrees",function(){return x}),n.d(t,"spec",function(){return E}),n.d(t,"isOAS3",function(){return S}),n.d(t,"info",function(){return C}),n.d(t,"externalDocs",function(){return k}),n.d(t,"version",function(){return O}),n.d(t,"semver",function(){return A}),n.d(t,"paths",function(){return T}),n.d(t,"operations",function(){return j}),n.d(t,"consumes",function(){return P}),n.d(t,"produces",function(){return I}),n.d(t,"security",function(){return M}),n.d(t,"securityDefinitions",function(){return N}),n.d(t,"findDefinition",function(){return R}),n.d(t,"definitions",function(){return D}),n.d(t,"basePath",function(){return L}),n.d(t,"host",function(){return U}),n.d(t,"schemes",function(){return q}),n.d(t,"operationsWithRootInherited",function(){return F}),n.d(t,"tags",function(){return z}),n.d(t,"tagDetails",function(){return B}),n.d(t,"operationsWithTags",function(){return V}),n.d(t,"taggedOperations",function(){return H}),n.d(t,"responses",function(){return W}),n.d(t,"requests",function(){return J}),n.d(t,"mutatedRequests",function(){return Y}),n.d(t,"responseFor",function(){return K}),n.d(t,"requestFor",function(){return G}),n.d(t,"mutatedRequestFor",function(){return $}),n.d(t,"allowTryItOutFor",function(){return Z}),n.d(t,"parameterWithMetaByIdentity",function(){return X}),n.d(t,"parameterInclusionSettingFor",function(){return Q}),n.d(t,"parameterWithMeta",function(){return ee}),n.d(t,"operationWithMeta",function(){return te}),n.d(t,"getParameter",function(){return ne}),n.d(t,"hasHost",function(){return re}),n.d(t,"parameterValues",function(){return oe}),n.d(t,"parametersIncludeIn",function(){return ie}),n.d(t,"parametersIncludeType",function(){return ae}),n.d(t,"contentTypeValues",function(){return se}),n.d(t,"currentProducesFor",function(){return ue}),n.d(t,"producesOptionsFor",function(){return ce}),n.d(t,"consumesOptionsFor",function(){return le}),n.d(t,"operationScheme",function(){return pe}),n.d(t,"canExecuteScheme",function(){return fe}),n.d(t,"validateBeforeExecute",function(){return he});var r=n(14),o=n.n(r),i=n(13),a=n.n(i),s=n(12),u=n.n(s),c=n(11),l=n(3),p=n(1),f=["get","put","post","delete","options","head","patch","trace"],h=function(e){return e||Object(p.Map)()},d=Object(c.createSelector)(h,function(e){return e.get("lastError")}),m=Object(c.createSelector)(h,function(e){return e.get("url")}),v=Object(c.createSelector)(h,function(e){return e.get("spec")||""}),g=Object(c.createSelector)(h,function(e){return e.get("specSource")||"not-editor"}),y=Object(c.createSelector)(h,function(e){return e.get("json",Object(p.Map)())}),b=Object(c.createSelector)(h,function(e){return e.get("resolved",Object(p.Map)())}),_=function(e,t){return e.getIn(["resolvedSubtrees"].concat(u()(t)),void 0)},w=function e(t,n){return p.Map.isMap(t)&&p.Map.isMap(n)?n.get("$$ref")?n:Object(p.OrderedMap)().mergeWith(e,t,n):n},x=Object(c.createSelector)(h,function(e){return Object(p.OrderedMap)().mergeWith(w,e.get("json"),e.get("resolvedSubtrees"))}),E=function(e){return y(e)},S=Object(c.createSelector)(E,function(){return!1}),C=Object(c.createSelector)(E,function(e){return de(e&&e.get("info"))}),k=Object(c.createSelector)(E,function(e){return de(e&&e.get("externalDocs"))}),O=Object(c.createSelector)(C,function(e){return e&&e.get("version")}),A=Object(c.createSelector)(O,function(e){return/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e).slice(1)}),T=Object(c.createSelector)(x,function(e){return e.get("paths")}),j=Object(c.createSelector)(T,function(e){if(!e||e.size<1)return Object(p.List)();var t=Object(p.List)();return e&&e.forEach?(e.forEach(function(e,n){if(!e||!e.forEach)return{};e.forEach(function(e,r){f.indexOf(r)<0||(t=t.push(Object(p.fromJS)({path:n,method:r,operation:e,id:"".concat(r,"-").concat(n)})))})}),t):Object(p.List)()}),P=Object(c.createSelector)(E,function(e){return Object(p.Set)(e.get("consumes"))}),I=Object(c.createSelector)(E,function(e){return Object(p.Set)(e.get("produces"))}),M=Object(c.createSelector)(E,function(e){return e.get("security",Object(p.List)())}),N=Object(c.createSelector)(E,function(e){return e.get("securityDefinitions")}),R=function(e,t){var n=e.getIn(["resolvedSubtrees","definitions",t],null),r=e.getIn(["json","definitions",t],null);return n||r||null},D=Object(c.createSelector)(E,function(e){var t=e.get("definitions");return p.Map.isMap(t)?t:Object(p.Map)()}),L=Object(c.createSelector)(E,function(e){return e.get("basePath")}),U=Object(c.createSelector)(E,function(e){return e.get("host")}),q=Object(c.createSelector)(E,function(e){return e.get("schemes",Object(p.Map)())}),F=Object(c.createSelector)(j,P,I,function(e,t,n){return e.map(function(e){return e.update("operation",function(e){if(e){if(!p.Map.isMap(e))return;return e.withMutations(function(e){return e.get("consumes")||e.update("consumes",function(e){return Object(p.Set)(e).merge(t)}),e.get("produces")||e.update("produces",function(e){return Object(p.Set)(e).merge(n)}),e})}return Object(p.Map)()})})}),z=Object(c.createSelector)(E,function(e){var t=e.get("tags",Object(p.List)());return p.List.isList(t)?t.filter(function(e){return p.Map.isMap(e)}):Object(p.List)()}),B=function(e,t){return(z(e)||Object(p.List)()).filter(p.Map.isMap).find(function(e){return e.get("name")===t},Object(p.Map)())},V=Object(c.createSelector)(F,z,function(e,t){return e.reduce(function(e,t){var n=Object(p.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update("default",Object(p.List)(),function(e){return e.push(t)}):n.reduce(function(e,n){return e.update(n,Object(p.List)(),function(e){return e.push(t)})},e)},t.reduce(function(e,t){return e.set(t.get("name"),Object(p.List)())},Object(p.OrderedMap)()))}),H=function(e){return function(t){var n=(0,t.getConfigs)(),r=n.tagsSorter,o=n.operationsSorter;return V(e).sortBy(function(e,t){return t},function(e,t){var n="function"==typeof r?r:l.F.tagsSorter[r];return n?n(e,t):null}).map(function(t,n){var r="function"==typeof o?o:l.F.operationsSorter[o],i=r?t.sort(r):t;return Object(p.Map)({tagDetails:B(e,n),operations:i})})}},W=Object(c.createSelector)(h,function(e){return e.get("responses",Object(p.Map)())}),J=Object(c.createSelector)(h,function(e){return e.get("requests",Object(p.Map)())}),Y=Object(c.createSelector)(h,function(e){return e.get("mutatedRequests",Object(p.Map)())}),K=function(e,t,n){return W(e).getIn([t,n],null)},G=function(e,t,n){return J(e).getIn([t,n],null)},$=function(e,t,n){return Y(e).getIn([t,n],null)},Z=function(){return!0},X=function(e,t,n){var r=x(e).getIn(["paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)()),o=e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)());return r.map(function(e){var t=o.get("".concat(n.get("in"),".").concat(n.get("name"))),r=o.get("".concat(n.get("in"),".").concat(n.get("name"),".hash-").concat(n.hashCode()));return Object(p.OrderedMap)().merge(e,t,r)}).find(function(e){return e.get("in")===n.get("in")&&e.get("name")===n.get("name")},Object(p.OrderedMap)())},Q=function(e,t,n,r){var o="".concat(r,".").concat(n);return e.getIn(["meta","paths"].concat(u()(t),["parameter_inclusions",o]),!1)},ee=function(e,t,n,r){var o=x(e).getIn(["paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)()).find(function(e){return e.get("in")===r&&e.get("name")===n},Object(p.OrderedMap)());return X(e,t,o)},te=function(e,t,n){var r=x(e).getIn(["paths",t,n],Object(p.OrderedMap)()),o=e.getIn(["meta","paths",t,n],Object(p.OrderedMap)()),i=r.get("parameters",Object(p.List)()).map(function(r){return X(e,[t,n],r)});return Object(p.OrderedMap)().merge(r,o).set("parameters",i)};function ne(e,t,n,r){return t=t||[],e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.fromJS)([])).find(function(e){return p.Map.isMap(e)&&e.get("name")===n&&e.get("in")===r})||Object(p.Map)()}var re=Object(c.createSelector)(E,function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]});function oe(e,t,n){return t=t||[],te.apply(void 0,[e].concat(u()(t))).get("parameters",Object(p.List)()).reduce(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(Object(l.z)(t,{allowHashes:!1}),r)},Object(p.fromJS)({}))}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("in")===t})}function ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("type")===t})}function se(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(u()(t)),Object(p.fromJS)({})),r=e.getIn(["meta","paths"].concat(u()(t)),Object(p.fromJS)({})),o=ue(e,t),i=n.get("parameters")||new p.List,a=r.get("consumes_value")?r.get("consumes_value"):ae(i,"file")?"multipart/form-data":ae(i,"formData")?"application/x-www-form-urlencoded":void 0;return Object(p.fromJS)({requestContentType:a,responseContentType:o})}function ue(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(u()(t)),null);if(null!==n){var r=e.getIn(["meta","paths"].concat(u()(t),["produces_value"]),null),o=n.getIn(["produces",0],null);return r||o||"application/json"}}function ce(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(u()(t)),null);if(null!==r){var o=t,i=a()(o,1)[0],s=r.get("produces",null),c=n.getIn(["paths",i,"produces"],null),l=n.getIn(["produces"],null);return s||c||l}}function le(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(u()(t)),null);if(null!==r){var o=t,i=a()(o,1)[0],s=r.get("consumes",null),c=n.getIn(["paths",i,"consumes"],null),l=n.getIn(["consumes"],null);return s||c||l}}var pe=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),i=o()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||i||""},fe=function(e,t,n){return["http","https"].indexOf(pe(e,t,n))>-1},he=function(e,t){t=t||[];var n=e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.fromJS)([])),r=!0;return n.forEach(function(e){var t=e.get("errors");t&&t.count()&&(r=!1)}),r};function de(e){return p.Map.isMap(e)?e:new p.Map}},function(e,t,n){"use strict";n.r(t),n.d(t,"SHOW_AUTH_POPUP",function(){return d}),n.d(t,"AUTHORIZE",function(){return m}),n.d(t,"LOGOUT",function(){return v}),n.d(t,"PRE_AUTHORIZE_OAUTH2",function(){return g}),n.d(t,"AUTHORIZE_OAUTH2",function(){return y}),n.d(t,"VALIDATE",function(){return b}),n.d(t,"CONFIGURE_AUTH",function(){return _}),n.d(t,"showDefinitions",function(){return w}),n.d(t,"authorize",function(){return x}),n.d(t,"logout",function(){return E}),n.d(t,"preAuthorizeImplicit",function(){return S}),n.d(t,"authorizeOauth2",function(){return C}),n.d(t,"authorizePassword",function(){return k}),n.d(t,"authorizeApplication",function(){return O}),n.d(t,"authorizeAccessCodeWithFormParams",function(){return A}),n.d(t,"authorizeAccessCodeWithBasicAuthentication",function(){return T}),n.d(t,"authorizeRequest",function(){return j}),n.d(t,"configureAuth",function(){return P});var r=n(26),o=n.n(r),i=n(16),a=n.n(i),s=n(28),u=n.n(s),c=n(93),l=n.n(c),p=n(18),f=n.n(p),h=n(3),d="show_popup",m="authorize",v="logout",g="pre_authorize_oauth2",y="authorize_oauth2",b="validate",_="configure_auth";function w(e){return{type:d,payload:e}}function x(e){return{type:m,payload:e}}function E(e){return{type:v,payload:e}}var S=function(e){return function(t){var n=t.authActions,r=t.errActions,o=e.auth,i=e.token,a=e.isValid,s=o.schema,c=o.name,l=s.get("flow");delete f.a.swaggerUIRedirectOauth2,"accessCode"===l||a||r.newAuthErr({authId:c,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),i.error?r.newAuthErr({authId:c,source:"auth",level:"error",message:u()(i)}):n.authorizeOauth2({auth:o,token:i})}};function C(e){return{type:y,payload:e}}var k=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.name,i=e.username,s=e.password,u=e.passwordType,c=e.clientId,l=e.clientSecret,p={grant_type:"password",scope:e.scopes.join(" "),username:i,password:s},f={};switch(u){case"request-body":!function(e,t,n){t&&a()(e,{client_id:t});n&&a()(e,{client_secret:n})}(p,c,l);break;case"basic":f.Authorization="Basic "+Object(h.a)(c+":"+l);break;default:console.warn("Warning: invalid passwordType ".concat(u," was passed, not including client id and secret"))}return n.authorizeRequest({body:Object(h.b)(p),url:r.get("tokenUrl"),name:o,headers:f,query:{},auth:e})}};var O=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.scopes,i=e.name,a=e.clientId,s=e.clientSecret,u={Authorization:"Basic "+Object(h.a)(a+":"+s)},c={grant_type:"client_credentials",scope:o.join(" ")};return n.authorizeRequest({body:Object(h.b)(c),name:i,url:r.get("tokenUrl"),auth:e,headers:u})}},A=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,i=t.name,a=t.clientId,s=t.clientSecret,u={grant_type:"authorization_code",code:t.code,client_id:a,client_secret:s,redirect_uri:n};return r.authorizeRequest({body:Object(h.b)(u),name:i,url:o.get("tokenUrl"),auth:t})}},T=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,i=t.name,a=t.clientId,s=t.clientSecret,u={Authorization:"Basic "+Object(h.a)(a+":"+s)},c={grant_type:"authorization_code",code:t.code,client_id:a,redirect_uri:n};return r.authorizeRequest({body:Object(h.b)(c),name:i,url:o.get("tokenUrl"),auth:t,headers:u})}},j=function(e){return function(t){var n,r=t.fn,i=t.getConfigs,s=t.authActions,c=t.errActions,p=t.oas3Selectors,f=t.specSelectors,h=t.authSelectors,d=e.body,m=e.query,v=void 0===m?{}:m,g=e.headers,y=void 0===g?{}:g,b=e.name,_=e.url,w=e.auth,x=(h.getConfigs()||{}).additionalQueryStringParams;n=f.isOAS3()?l()(_,p.selectedServer(),!0):l()(_,f.url(),!0),"object"===o()(x)&&(n.query=a()({},n.query,x));var E=n.toString(),S=a()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:E,method:"post",headers:S,query:v,body:d,requestInterceptor:i().requestInterceptor,responseInterceptor:i().responseInterceptor}).then(function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?c.newAuthErr({authId:b,level:"error",source:"auth",message:u()(t)}):s.authorizeOauth2({auth:w,token:t}):c.newAuthErr({authId:b,level:"error",source:"auth",message:e.statusText})}).catch(function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}c.newAuthErr({authId:b,level:"error",source:"auth",message:t})})}};function P(e){return{type:_,payload:e}}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(203),o=n(202);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(47),o=n(130);e.exports=n(46)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,c=[],l=!1,p=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):p=-1,c.length&&h())}function h(){if(!l){var e=s(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++p<t;)u&&u[p].run();p=-1,t=c.length}u=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new d(e,t)),1!==c.length||l||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_LAYOUT",function(){return o}),n.d(t,"UPDATE_FILTER",function(){return i}),n.d(t,"UPDATE_MODE",function(){return a}),n.d(t,"SHOW",function(){return s}),n.d(t,"updateLayout",function(){return u}),n.d(t,"updateFilter",function(){return c}),n.d(t,"show",function(){return l}),n.d(t,"changeMode",function(){return p});var r=n(3),o="layout_update_layout",i="layout_update_filter",a="layout_update_mode",s="layout_show";function u(e){return{type:o,payload:e}}function c(e){return{type:i,payload:e}}function l(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=Object(r.u)(e),{type:s,payload:{thing:e,shown:t}}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=Object(r.u)(e),{type:a,payload:{thing:e,mode:t}}}},function(e,t,n){"use strict";(function(t){
+var r=n(569),o=n(570),i=n(355);function a(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()<t)throw new RangeError("Invalid typed array length");return u.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=u.prototype:(null===e&&(e=new u(t)),e.length=t),e}function u(e,t,n){if(!(u.TYPED_ARRAY_SUPPORT||this instanceof u))return new u(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return p(this,e)}return c(this,e,t,n)}function c(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);u.TYPED_ARRAY_SUPPORT?(e=t).__proto__=u.prototype:e=f(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!u.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|d(t,n),o=(e=s(e,r)).write(t,n);o!==r&&(e=e.slice(0,o));return e}(e,t,n):function(e,t){if(u.isBuffer(t)){var n=0|h(t.length);return 0===(e=s(e,n)).length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):f(e,t);if("Buffer"===t.type&&i(t.data))return f(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function p(e,t){if(l(t),e=s(e,t<0?0:0|h(t)),!u.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function f(e,t){var n=t.length<0?0:0|h(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e){if(e>=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return z(e).length;default:if(r)return B(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return k(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function g(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:y(e,t,n,r,o);if("number"==typeof t)return t&=255,u.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):y(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function y(e,t,n,r,o){var i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;i<s;i++)if(c(e,i)===c(t,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===u)return l*a}else-1!==l&&(i-=i-l),l=-1}else for(n+u>s&&(n=s-u),i=n;i>=0;i--){for(var p=!0,f=0;f<u;f++)if(c(e,i+f)!==c(t,f)){p=!1;break}if(p)return i}return-1}function b(e,t,n,r){n=Number(n)||0;var o=e.length-n;r?(r=Number(r))>o&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a<r;++a){var s=parseInt(t.substr(2*a,2),16);if(isNaN(s))return a;e[n+a]=s}return a}function _(e,t,n,r){return V(B(t,e.length-n),e,n,r)}function w(e,t,n,r){return V(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function x(e,t,n,r){return w(e,t,n,r)}function E(e,t,n,r){return V(z(t),e,n,r)}function S(e,t,n,r){return V(function(e,t){for(var n,r,o,i=[],a=0;a<e.length&&!((t-=2)<0);++a)n=e.charCodeAt(a),r=n>>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function k(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o<n;){var i,a,s,u,c=e[o],l=null,p=c>239?4:c>223?3:c>191?2:1;if(o+p<=n)switch(p){case 1:c<128&&(l=c);break;case 2:128==(192&(i=e[o+1]))&&(u=(31&c)<<6|63&i)>127&&(l=u);break;case 3:i=e[o+1],a=e[o+2],128==(192&i)&&128==(192&a)&&(u=(15&c)<<12|(63&i)<<6|63&a)>2047&&(u<55296||u>57343)&&(l=u);break;case 4:i=e[o+1],a=e[o+2],s=e[o+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(u=(15&c)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&u<1114112&&(l=u)}null===l?(l=65533,p=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=p}return function(e){var t=e.length;if(t<=O)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=O));return n}(r)}t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50,u.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=a(),u.poolSize=8192,u._augment=function(e){return e.__proto__=u.prototype,e},u.from=function(e,t,n){return c(null,e,t,n)},u.TYPED_ARRAY_SUPPORT&&(u.prototype.__proto__=Uint8Array.prototype,u.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&u[Symbol.species]===u&&Object.defineProperty(u,Symbol.species,{value:null,configurable:!0})),u.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},u.allocUnsafe=function(e){return p(null,e)},u.allocUnsafeSlow=function(e){return p(null,e)},u.isBuffer=function(e){return!(null==e||!e._isBuffer)},u.compare=function(e,t){if(!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=u.allocUnsafe(t),o=0;for(n=0;n<e.length;++n){var a=e[n];if(!u.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(r,o),o+=a.length}return r},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},u.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},u.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},u.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?k(this,0,e):m.apply(this,arguments)},u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},u.prototype.compare=function(e,t,n,r,o){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),c=this.slice(r,o),l=e.slice(t,n),p=0;p<s;++p)if(c[p]!==l[p]){i=c[p],a=l[p];break}return i<a?-1:a<i?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return g(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return g(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return b(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":return w(this,e,t,n);case"latin1":case"binary":return x(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var O=4096;function A(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(127&e[o]);return r}function T(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;o<n;++o)r+=String.fromCharCode(e[o]);return r}function j(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var o="",i=t;i<n;++i)o+=F(e[i]);return o}function P(e,t,n){for(var r=e.slice(t,n),o="",i=0;i<r.length;i+=2)o+=String.fromCharCode(r[i]+256*r[i+1]);return o}function I(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function N(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o<i;++o)e[n+o]=(t&255<<8*(r?o:1-o))>>>8*(r?o:1-o)}function R(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o<i;++o)e[n+o]=t>>>8*(r?o:3-o)&255}function D(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return i||D(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,i){return i||D(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),u.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=u.prototype;else{var o=t-e;n=new u(o,void 0);for(var i=0;i<o;++i)n[i]=this[i+e]}return n},u.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r},u.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e+--t],o=1;t>0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},u.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=this[e],o=1,i=0;++i<t&&(o*=256);)r+=this[e+i]*o;return r>=(o*=128)&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||M(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i<n&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||M(this,e,t,n,Math.pow(2,8*n)-1,0);var o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=0,a=1,s=0;for(this[t]=255&e;++i<n&&(a*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);M(this,e,t,n,o-1,-o)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var o,i=r-n;if(this===e&&n<t&&t<r)for(o=i-1;o>=0;--o)e[o+t]=this[o+n];else if(i<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+i),t);return i},u.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{var a=u.isBuffer(e)?e:B(new u(e,r).toString()),s=a.length;for(i=0;i<n-t;++i)this[i+t]=a[i%s]}return this};var q=/[^+\/0-9A-Za-z-_]/g;function F(e){return e<16?"0"+e.toString(16):e.toString(16)}function B(e,t){var n;t=t||1/0;for(var r=e.length,o=null,i=[],a=0;a<r;++a){if((n=e.charCodeAt(a))>55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function z(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var o=0;o<r&&!(o+n>=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(36))},function(e,t,n){"use strict";e.exports={current:null}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,c=[],l=!1,p=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):p=-1,c.length&&h())}function h(){if(!l){var e=s(f);l=!0;for(var t=c.length;t;){for(u=c,c=[];++p<t;)u&&u[p].run();p=-1,t=c.length}u=null,l=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new d(e,t)),1!==c.length||l||s(h)},d.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){"use strict";var r=n(25),o=n(90),i=n(57),a=(n(23),["dispatchConfig","_targetInst","nativeEvent","isDefaultPrevented","isPropagationStopped","_dispatchListeners","_dispatchInstances"]),s={type:null,target:null,currentTarget:i.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};function u(e,t,n,r){this.dispatchConfig=e,this._targetInst=t,this.nativeEvent=n;var o=this.constructor.Interface;for(var a in o)if(o.hasOwnProperty(a)){0;var s=o[a];s?this[a]=s(n):"target"===a?this.target=r:this[a]=n[a]}var u=null!=n.defaultPrevented?n.defaultPrevented:!1===n.returnValue;return this.isDefaultPrevented=u?i.thatReturnsTrue:i.thatReturnsFalse,this.isPropagationStopped=i.thatReturnsFalse,this}r(u.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=i.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=i.thatReturnsTrue)},persist:function(){this.isPersistent=i.thatReturnsTrue},isPersistent:i.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;for(var n=0;n<a.length;n++)this[a[n]]=null}}),u.Interface=s,u.augmentClass=function(e,t){var n=function(){};n.prototype=this.prototype;var i=new n;r(i,e.prototype),e.prototype=i,e.prototype.constructor=e,e.Interface=r({},this.Interface,t),e.augmentClass=this.augmentClass,o.addPoolingTo(e,o.fourArgumentPooler)},o.addPoolingTo(u,o.fourArgumentPooler),e.exports=u},function(e,t,n){var r=n(365);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"lastError",function(){return d}),n.d(t,"url",function(){return m}),n.d(t,"specStr",function(){return v}),n.d(t,"specSource",function(){return g}),n.d(t,"specJson",function(){return y}),n.d(t,"specResolved",function(){return b}),n.d(t,"specResolvedSubtree",function(){return _}),n.d(t,"specJsonWithResolvedSubtrees",function(){return x}),n.d(t,"spec",function(){return E}),n.d(t,"isOAS3",function(){return S}),n.d(t,"info",function(){return C}),n.d(t,"externalDocs",function(){return k}),n.d(t,"version",function(){return O}),n.d(t,"semver",function(){return A}),n.d(t,"paths",function(){return T}),n.d(t,"operations",function(){return j}),n.d(t,"consumes",function(){return P}),n.d(t,"produces",function(){return I}),n.d(t,"security",function(){return M}),n.d(t,"securityDefinitions",function(){return N}),n.d(t,"findDefinition",function(){return R}),n.d(t,"definitions",function(){return D}),n.d(t,"basePath",function(){return L}),n.d(t,"host",function(){return U}),n.d(t,"schemes",function(){return q}),n.d(t,"operationsWithRootInherited",function(){return F}),n.d(t,"tags",function(){return B}),n.d(t,"tagDetails",function(){return z}),n.d(t,"operationsWithTags",function(){return V}),n.d(t,"taggedOperations",function(){return H}),n.d(t,"responses",function(){return W}),n.d(t,"requests",function(){return J}),n.d(t,"mutatedRequests",function(){return K}),n.d(t,"responseFor",function(){return Y}),n.d(t,"requestFor",function(){return $}),n.d(t,"mutatedRequestFor",function(){return G}),n.d(t,"allowTryItOutFor",function(){return Z}),n.d(t,"parameterWithMetaByIdentity",function(){return X}),n.d(t,"parameterInclusionSettingFor",function(){return Q}),n.d(t,"parameterWithMeta",function(){return ee}),n.d(t,"operationWithMeta",function(){return te}),n.d(t,"getParameter",function(){return ne}),n.d(t,"hasHost",function(){return re}),n.d(t,"parameterValues",function(){return oe}),n.d(t,"parametersIncludeIn",function(){return ie}),n.d(t,"parametersIncludeType",function(){return ae}),n.d(t,"contentTypeValues",function(){return se}),n.d(t,"currentProducesFor",function(){return ue}),n.d(t,"producesOptionsFor",function(){return ce}),n.d(t,"consumesOptionsFor",function(){return le}),n.d(t,"operationScheme",function(){return pe}),n.d(t,"canExecuteScheme",function(){return fe}),n.d(t,"validateBeforeExecute",function(){return he});var r=n(14),o=n.n(r),i=n(13),a=n.n(i),s=n(12),u=n.n(s),c=n(11),l=n(3),p=n(1),f=["get","put","post","delete","options","head","patch","trace"],h=function(e){return e||Object(p.Map)()},d=Object(c.createSelector)(h,function(e){return e.get("lastError")}),m=Object(c.createSelector)(h,function(e){return e.get("url")}),v=Object(c.createSelector)(h,function(e){return e.get("spec")||""}),g=Object(c.createSelector)(h,function(e){return e.get("specSource")||"not-editor"}),y=Object(c.createSelector)(h,function(e){return e.get("json",Object(p.Map)())}),b=Object(c.createSelector)(h,function(e){return e.get("resolved",Object(p.Map)())}),_=function(e,t){return e.getIn(["resolvedSubtrees"].concat(u()(t)),void 0)},w=function e(t,n){return p.Map.isMap(t)&&p.Map.isMap(n)?n.get("$$ref")?n:Object(p.OrderedMap)().mergeWith(e,t,n):n},x=Object(c.createSelector)(h,function(e){return Object(p.OrderedMap)().mergeWith(w,e.get("json"),e.get("resolvedSubtrees"))}),E=function(e){return y(e)},S=Object(c.createSelector)(E,function(){return!1}),C=Object(c.createSelector)(E,function(e){return de(e&&e.get("info"))}),k=Object(c.createSelector)(E,function(e){return de(e&&e.get("externalDocs"))}),O=Object(c.createSelector)(C,function(e){return e&&e.get("version")}),A=Object(c.createSelector)(O,function(e){return/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e).slice(1)}),T=Object(c.createSelector)(x,function(e){return e.get("paths")}),j=Object(c.createSelector)(T,function(e){if(!e||e.size<1)return Object(p.List)();var t=Object(p.List)();return e&&e.forEach?(e.forEach(function(e,n){if(!e||!e.forEach)return{};e.forEach(function(e,r){f.indexOf(r)<0||(t=t.push(Object(p.fromJS)({path:n,method:r,operation:e,id:"".concat(r,"-").concat(n)})))})}),t):Object(p.List)()}),P=Object(c.createSelector)(E,function(e){return Object(p.Set)(e.get("consumes"))}),I=Object(c.createSelector)(E,function(e){return Object(p.Set)(e.get("produces"))}),M=Object(c.createSelector)(E,function(e){return e.get("security",Object(p.List)())}),N=Object(c.createSelector)(E,function(e){return e.get("securityDefinitions")}),R=function(e,t){var n=e.getIn(["resolvedSubtrees","definitions",t],null),r=e.getIn(["json","definitions",t],null);return n||r||null},D=Object(c.createSelector)(E,function(e){var t=e.get("definitions");return p.Map.isMap(t)?t:Object(p.Map)()}),L=Object(c.createSelector)(E,function(e){return e.get("basePath")}),U=Object(c.createSelector)(E,function(e){return e.get("host")}),q=Object(c.createSelector)(E,function(e){return e.get("schemes",Object(p.Map)())}),F=Object(c.createSelector)(j,P,I,function(e,t,n){return e.map(function(e){return e.update("operation",function(e){if(e){if(!p.Map.isMap(e))return;return e.withMutations(function(e){return e.get("consumes")||e.update("consumes",function(e){return Object(p.Set)(e).merge(t)}),e.get("produces")||e.update("produces",function(e){return Object(p.Set)(e).merge(n)}),e})}return Object(p.Map)()})})}),B=Object(c.createSelector)(E,function(e){var t=e.get("tags",Object(p.List)());return p.List.isList(t)?t.filter(function(e){return p.Map.isMap(e)}):Object(p.List)()}),z=function(e,t){return(B(e)||Object(p.List)()).filter(p.Map.isMap).find(function(e){return e.get("name")===t},Object(p.Map)())},V=Object(c.createSelector)(F,B,function(e,t){return e.reduce(function(e,t){var n=Object(p.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update("default",Object(p.List)(),function(e){return e.push(t)}):n.reduce(function(e,n){return e.update(n,Object(p.List)(),function(e){return e.push(t)})},e)},t.reduce(function(e,t){return e.set(t.get("name"),Object(p.List)())},Object(p.OrderedMap)()))}),H=function(e){return function(t){var n=(0,t.getConfigs)(),r=n.tagsSorter,o=n.operationsSorter;return V(e).sortBy(function(e,t){return t},function(e,t){var n="function"==typeof r?r:l.H.tagsSorter[r];return n?n(e,t):null}).map(function(t,n){var r="function"==typeof o?o:l.H.operationsSorter[o],i=r?t.sort(r):t;return Object(p.Map)({tagDetails:z(e,n),operations:i})})}},W=Object(c.createSelector)(h,function(e){return e.get("responses",Object(p.Map)())}),J=Object(c.createSelector)(h,function(e){return e.get("requests",Object(p.Map)())}),K=Object(c.createSelector)(h,function(e){return e.get("mutatedRequests",Object(p.Map)())}),Y=function(e,t,n){return W(e).getIn([t,n],null)},$=function(e,t,n){return J(e).getIn([t,n],null)},G=function(e,t,n){return K(e).getIn([t,n],null)},Z=function(){return!0},X=function(e,t,n){var r=x(e).getIn(["paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)()),o=e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)());return r.map(function(e){var t=o.get("".concat(n.get("in"),".").concat(n.get("name"))),r=o.get("".concat(n.get("in"),".").concat(n.get("name"),".hash-").concat(n.hashCode()));return Object(p.OrderedMap)().merge(e,t,r)}).find(function(e){return e.get("in")===n.get("in")&&e.get("name")===n.get("name")},Object(p.OrderedMap)())},Q=function(e,t,n,r){var o="".concat(r,".").concat(n);return e.getIn(["meta","paths"].concat(u()(t),["parameter_inclusions",o]),!1)},ee=function(e,t,n,r){var o=x(e).getIn(["paths"].concat(u()(t),["parameters"]),Object(p.OrderedMap)()).find(function(e){return e.get("in")===r&&e.get("name")===n},Object(p.OrderedMap)());return X(e,t,o)},te=function(e,t,n){var r=x(e).getIn(["paths",t,n],Object(p.OrderedMap)()),o=e.getIn(["meta","paths",t,n],Object(p.OrderedMap)()),i=r.get("parameters",Object(p.List)()).map(function(r){return X(e,[t,n],r)});return Object(p.OrderedMap)().merge(r,o).set("parameters",i)};function ne(e,t,n,r){return t=t||[],e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.fromJS)([])).find(function(e){return p.Map.isMap(e)&&e.get("name")===n&&e.get("in")===r})||Object(p.Map)()}var re=Object(c.createSelector)(E,function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]});function oe(e,t,n){return t=t||[],te.apply(void 0,[e].concat(u()(t))).get("parameters",Object(p.List)()).reduce(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(Object(l.B)(t,{allowHashes:!1}),r)},Object(p.fromJS)({}))}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("in")===t})}function ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("type")===t})}function se(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(u()(t)),Object(p.fromJS)({})),r=e.getIn(["meta","paths"].concat(u()(t)),Object(p.fromJS)({})),o=ue(e,t),i=n.get("parameters")||new p.List,a=r.get("consumes_value")?r.get("consumes_value"):ae(i,"file")?"multipart/form-data":ae(i,"formData")?"application/x-www-form-urlencoded":void 0;return Object(p.fromJS)({requestContentType:a,responseContentType:o})}function ue(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(u()(t)),null);if(null!==n){var r=e.getIn(["meta","paths"].concat(u()(t),["produces_value"]),null),o=n.getIn(["produces",0],null);return r||o||"application/json"}}function ce(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(u()(t)),null);if(null!==r){var o=t,i=a()(o,1)[0],s=r.get("produces",null),c=n.getIn(["paths",i,"produces"],null),l=n.getIn(["produces"],null);return s||c||l}}function le(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(u()(t)),null);if(null!==r){var o=t,i=a()(o,1)[0],s=r.get("consumes",null),c=n.getIn(["paths",i,"consumes"],null),l=n.getIn(["consumes"],null);return s||c||l}}var pe=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),i=o()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||i||""},fe=function(e,t,n){return["http","https"].indexOf(pe(e,t,n))>-1},he=function(e,t){t=t||[];var n=e.getIn(["meta","paths"].concat(u()(t),["parameters"]),Object(p.fromJS)([])),r=!0;return n.forEach(function(e){var t=e.get("errors");t&&t.count()&&(r=!1)}),r};function de(e){return p.Map.isMap(e)?e:new p.Map}},function(e,t,n){"use strict";n.r(t),n.d(t,"SHOW_AUTH_POPUP",function(){return d}),n.d(t,"AUTHORIZE",function(){return m}),n.d(t,"LOGOUT",function(){return v}),n.d(t,"PRE_AUTHORIZE_OAUTH2",function(){return g}),n.d(t,"AUTHORIZE_OAUTH2",function(){return y}),n.d(t,"VALIDATE",function(){return b}),n.d(t,"CONFIGURE_AUTH",function(){return _}),n.d(t,"showDefinitions",function(){return w}),n.d(t,"authorize",function(){return x}),n.d(t,"logout",function(){return E}),n.d(t,"preAuthorizeImplicit",function(){return S}),n.d(t,"authorizeOauth2",function(){return C}),n.d(t,"authorizePassword",function(){return k}),n.d(t,"authorizeApplication",function(){return O}),n.d(t,"authorizeAccessCodeWithFormParams",function(){return A}),n.d(t,"authorizeAccessCodeWithBasicAuthentication",function(){return T}),n.d(t,"authorizeRequest",function(){return j}),n.d(t,"configureAuth",function(){return P});var r=n(26),o=n.n(r),i=n(16),a=n.n(i),s=n(28),u=n.n(s),c=n(95),l=n.n(c),p=n(18),f=n.n(p),h=n(3),d="show_popup",m="authorize",v="logout",g="pre_authorize_oauth2",y="authorize_oauth2",b="validate",_="configure_auth";function w(e){return{type:d,payload:e}}function x(e){return{type:m,payload:e}}function E(e){return{type:v,payload:e}}var S=function(e){return function(t){var n=t.authActions,r=t.errActions,o=e.auth,i=e.token,a=e.isValid,s=o.schema,c=o.name,l=s.get("flow");delete f.a.swaggerUIRedirectOauth2,"accessCode"===l||a||r.newAuthErr({authId:c,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),i.error?r.newAuthErr({authId:c,source:"auth",level:"error",message:u()(i)}):n.authorizeOauth2({auth:o,token:i})}};function C(e){return{type:y,payload:e}}var k=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.name,i=e.username,s=e.password,u=e.passwordType,c=e.clientId,l=e.clientSecret,p={grant_type:"password",scope:e.scopes.join(" "),username:i,password:s},f={};switch(u){case"request-body":!function(e,t,n){t&&a()(e,{client_id:t});n&&a()(e,{client_secret:n})}(p,c,l);break;case"basic":f.Authorization="Basic "+Object(h.a)(c+":"+l);break;default:console.warn("Warning: invalid passwordType ".concat(u," was passed, not including client id and secret"))}return n.authorizeRequest({body:Object(h.b)(p),url:r.get("tokenUrl"),name:o,headers:f,query:{},auth:e})}};var O=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.scopes,i=e.name,a=e.clientId,s=e.clientSecret,u={Authorization:"Basic "+Object(h.a)(a+":"+s)},c={grant_type:"client_credentials",scope:o.join(" ")};return n.authorizeRequest({body:Object(h.b)(c),name:i,url:r.get("tokenUrl"),auth:e,headers:u})}},A=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,i=t.name,a=t.clientId,s=t.clientSecret,u=t.codeVerifier,c={grant_type:"authorization_code",code:t.code,client_id:a,client_secret:s,redirect_uri:n,code_verifier:u};return r.authorizeRequest({body:Object(h.b)(c),name:i,url:o.get("tokenUrl"),auth:t})}},T=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,i=t.name,a=t.clientId,s=t.clientSecret,u={Authorization:"Basic "+Object(h.a)(a+":"+s)},c={grant_type:"authorization_code",code:t.code,client_id:a,redirect_uri:n};return r.authorizeRequest({body:Object(h.b)(c),name:i,url:o.get("tokenUrl"),auth:t,headers:u})}},j=function(e){return function(t){var n,r=t.fn,i=t.getConfigs,s=t.authActions,c=t.errActions,p=t.oas3Selectors,f=t.specSelectors,h=t.authSelectors,d=e.body,m=e.query,v=void 0===m?{}:m,g=e.headers,y=void 0===g?{}:g,b=e.name,_=e.url,w=e.auth,x=(h.getConfigs()||{}).additionalQueryStringParams;n=f.isOAS3()?l()(_,p.selectedServer(),!0):l()(_,f.url(),!0),"object"===o()(x)&&(n.query=a()({},n.query,x));var E=n.toString(),S=a()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:E,method:"post",headers:S,query:v,body:d,requestInterceptor:i().requestInterceptor,responseInterceptor:i().responseInterceptor}).then(function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?c.newAuthErr({authId:b,level:"error",source:"auth",message:u()(t)}):s.authorizeOauth2({auth:w,token:t}):c.newAuthErr({authId:b,level:"error",source:"auth",message:e.statusText})}).catch(function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}c.newAuthErr({authId:b,level:"error",source:"auth",message:t})})}};function P(e){return{type:_,payload:e}}},function(e,t){var n=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t,n){var r=n(127),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(211),o=n(210);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(49),o=n(133);e.exports=n(50)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_LAYOUT",function(){return o}),n.d(t,"UPDATE_FILTER",function(){return i}),n.d(t,"UPDATE_MODE",function(){return a}),n.d(t,"SHOW",function(){return s}),n.d(t,"updateLayout",function(){return u}),n.d(t,"updateFilter",function(){return c}),n.d(t,"show",function(){return l}),n.d(t,"changeMode",function(){return p});var r=n(3),o="layout_update_layout",i="layout_update_filter",a="layout_update_mode",s="layout_show";function u(e){return{type:o,payload:e}}function c(e){return{type:i,payload:e}}function l(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=Object(r.w)(e),{type:s,payload:{thing:e,shown:t}}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=Object(r.w)(e),{type:a,payload:{thing:e,mode:t}}}},function(e,t,n){"use strict";(function(t){
 /*!
  * @description Recursive object extending
  * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
 /*!
  * @description Recursive object extending
  * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
@@ -48,7 +48,7 @@ var r=n(558),o=n(559),i=n(350);function a(){return u.TYPED_ARRAY_SUPPORT?2147483
  * 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.
  */
  * 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.
  */
-function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=t.alloc?t.alloc(e.length):new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function o(e){var t=[];return e.forEach(function(e,i){"object"==typeof e&&null!==e?Array.isArray(e)?t[i]=o(e):n(e)?t[i]=r(e):t[i]=a({},e):t[i]=e}),t}function i(e,t){return"__proto__"===t?void 0:e[t]}var a=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,s=arguments[0],u=Array.prototype.slice.call(arguments,1);return u.forEach(function(u){"object"!=typeof u||null===u||Array.isArray(u)||Object.keys(u).forEach(function(c){return t=i(s,c),(e=i(u,c))===s?void 0:"object"!=typeof e||null===e?void(s[c]=e):Array.isArray(e)?void(s[c]=o(e)):n(e)?void(s[c]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(s[c]=a({},e)):void(s[c]=a(t,e))})}),s}}).call(this,n(61).Buffer)},function(e,t,n){var r=n(147),o=n(329);e.exports=n(122)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(96);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n=e.exports={version:"2.5.5"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(202);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(102),o=n(592),i=n(593),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(610),o=n(613);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(375),o=n(650),i=n(103);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){"use strict";var r=n(174),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=p;var i=n(134);i.inherits=n(106);var a=n(385),s=n(232);i.inherits(p,a);for(var u=o(s.prototype),c=0;c<u.length;c++){var l=u[c];p.prototype[l]||(p.prototype[l]=s.prototype[l])}function p(e){if(!(this instanceof p))return new p(e);a.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),p.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";var r=n(392)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";var r=n(685),o=Math.max;e.exports=function(e){return o(0,r(e))}},function(e,t,n){},function(e,t,n){"use strict";var r=n(21),o=(n(15),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){e.exports=n(588)},function(e,t,n){var r=n(173);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){e.exports=n(748)},function(e,t,n){"use strict";(function(t){var r=n(788),o=n(789),i=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,a=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,s=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function u(e){return(e||"").toString().replace(s,"")}var c=[["#","hash"],["?","query"],function(e){return e.replace("\\","/")},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],l={hash:1,query:1};function p(e){var n,r=("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{}).location||{},o={},a=typeof(e=e||r);if("blob:"===e.protocol)o=new h(unescape(e.pathname),{});else if("string"===a)for(n in o=new h(e,{}),l)delete o[n];else if("object"===a){for(n in e)n in l||(o[n]=e[n]);void 0===o.slashes&&(o.slashes=i.test(e.href))}return o}function f(e){e=u(e);var t=a.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!t[2],rest:t[3]}}function h(e,t,n){if(e=u(e),!(this instanceof h))return new h(e,t,n);var i,a,s,l,d,m,v=c.slice(),g=typeof t,y=this,b=0;for("object"!==g&&"string"!==g&&(n=t,t=null),n&&"function"!=typeof n&&(n=o.parse),t=p(t),i=!(a=f(e||"")).protocol&&!a.slashes,y.slashes=a.slashes||i&&t.slashes,y.protocol=a.protocol||t.protocol||"",e=a.rest,a.slashes||(v[3]=[/(.*)/,"pathname"]);b<v.length;b++)"function"!=typeof(l=v[b])?(s=l[0],m=l[1],s!=s?y[m]=e:"string"==typeof s?~(d=e.indexOf(s))&&("number"==typeof l[2]?(y[m]=e.slice(0,d),e=e.slice(d+l[2])):(y[m]=e.slice(d),e=e.slice(0,d))):(d=s.exec(e))&&(y[m]=d[1],e=e.slice(0,d.index)),y[m]=y[m]||i&&l[3]&&t[m]||"",l[4]&&(y[m]=y[m].toLowerCase())):e=l(e);n&&(y.query=n(y.query)),i&&t.slashes&&"/"!==y.pathname.charAt(0)&&(""!==y.pathname||""!==t.pathname)&&(y.pathname=function(e,t){if(""===e)return t;for(var n=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=n.length,o=n[r-1],i=!1,a=0;r--;)"."===n[r]?n.splice(r,1):".."===n[r]?(n.splice(r,1),a++):a&&(0===r&&(i=!0),n.splice(r,1),a--);return i&&n.unshift(""),"."!==o&&".."!==o||n.push(""),n.join("/")}(y.pathname,t.pathname)),r(y.port,y.protocol)||(y.host=y.hostname,y.port=""),y.username=y.password="",y.auth&&(l=y.auth.split(":"),y.username=l[0]||"",y.password=l[1]||""),y.origin=y.protocol&&y.host&&"file:"!==y.protocol?y.protocol+"//"+y.host:"null",y.href=y.toString()}h.prototype={set:function(e,t,n){var i=this;switch(e){case"query":"string"==typeof t&&t.length&&(t=(n||o.parse)(t)),i[e]=t;break;case"port":i[e]=t,r(t,i.protocol)?t&&(i.host=i.hostname+":"+t):(i.host=i.hostname,i[e]="");break;case"hostname":i[e]=t,i.port&&(t+=":"+i.port),i.host=t;break;case"host":i[e]=t,/:\d+$/.test(t)?(t=t.split(":"),i.port=t.pop(),i.hostname=t.join(":")):(i.hostname=t,i.port="");break;case"protocol":i.protocol=t.toLowerCase(),i.slashes=!n;break;case"pathname":case"hash":if(t){var a="pathname"===e?"/":"#";i[e]=t.charAt(0)!==a?a+t:t}else i[e]=t;break;default:i[e]=t}for(var s=0;s<c.length;s++){var u=c[s];u[4]&&(i[u[1]]=i[u[1]].toLowerCase())}return i.origin=i.protocol&&i.host&&"file:"!==i.protocol?i.protocol+"//"+i.host:"null",i.href=i.toString(),i},toString:function(e){e&&"function"==typeof e||(e=o.stringify);var t,n=this,r=n.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var i=r+(n.slashes?"//":"");return n.username&&(i+=n.username,n.password&&(i+=":"+n.password),i+="@"),i+=n.host+n.pathname,(t="object"==typeof n.query?e(n.query):n.query)&&(i+="?"!==t.charAt(0)?"?"+t:t),n.hash&&(i+=n.hash),i}},h.extractProtocol=f,h.location=p,h.trimLeft=u,h.qs=o,e.exports=h}).call(this,n(42))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(470),o=n.n(r),i=[n(267),n(268)];function a(e,t){var n={jsSpec:t.specSelectors.specJson().toJS()};return o()(i,function(e,t){try{return t.transform(e,n).filter(function(e){return!!e})}catch(t){return console.error("Transformer error:",t),e}},e).filter(function(e){return!!e}).map(function(e){return!e.get("line")&&e.get("path"),e})}},function(e,t,n){var r=n(44),o=n(76),i=n(148),a=n(195)("src"),s=Function.toString,u=(""+s).split("toString");n(78).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var c="function"==typeof n;c&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(c&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){"use strict";var r=n(548)(!0);n(211)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports={}},function(e,t,n){n(550);for(var r=n(32),o=n(71),i=n(98),a=n(34)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var c=s[u],l=r[c],p=l&&l.prototype;p&&!p[a]&&o(p,a,c),i[c]=i.Array}},function(e,t,n){"use strict";var r=n(25),o=n(352),i=n(567),a=n(572),s=n(101),u=n(573),c=n(577),l=n(578),p=n(580),f=s.createElement,h=s.createFactory,d=s.cloneElement,m=r,v={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:f,cloneElement:d,isValidElement:s.isValidElement,PropTypes:u,createClass:l,createFactory:h,createMixin:function(e){return e},DOM:a,version:c,__spread:m};e.exports=v},function(e,t,n){"use strict";var r=n(25),o=n(62),i=(n(23),n(354),Object.prototype.hasOwnProperty),a=n(355),s={key:!0,ref:!0,__self:!0,__source:!0};function u(e){return void 0!==e.ref}function c(e){return void 0!==e.key}var l=function(e,t,n,r,o,i,s){return{$$typeof:a,type:e,key:t,ref:n,props:s,_owner:i}};l.createElement=function(e,t,n){var r,a={},p=null,f=null;if(null!=t)for(r in u(t)&&(f=t.ref),c(t)&&(p=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source,t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);var h=arguments.length-2;if(1===h)a.children=n;else if(h>1){for(var d=Array(h),m=0;m<h;m++)d[m]=arguments[m+2];0,a.children=d}if(e&&e.defaultProps){var v=e.defaultProps;for(r in v)void 0===a[r]&&(a[r]=v[r])}return l(e,p,f,0,0,o.current,a)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){return l(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},l.cloneElement=function(e,t,n){var a,p,f=r({},e.props),h=e.key,d=e.ref,m=(e._self,e._source,e._owner);if(null!=t)for(a in u(t)&&(d=t.ref,m=o.current),c(t)&&(h=""+t.key),e.type&&e.type.defaultProps&&(p=e.type.defaultProps),t)i.call(t,a)&&!s.hasOwnProperty(a)&&(void 0===t[a]&&void 0!==p?f[a]=p[a]:f[a]=t[a]);var v=arguments.length-2;if(1===v)f.children=n;else if(v>1){for(var g=Array(v),y=0;y<v;y++)g[y]=arguments[y+2];f.children=g}return l(e.type,h,d,0,0,m,f)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=l},function(e,t,n){var r=n(48).Symbol;e.exports=r},function(e,t,n){var r=n(366),o=n(225);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(35),o=n(228),i=n(658),a=n(65);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(163),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";var r=n(85);e.exports=function(e){if(!r(e))throw new TypeError("Cannot use null or undefined");return e}},function(e,t,n){var r=n(60),o=n(399),i=n(400),a=n(45),s=n(154),u=n(217),c={},l={};(t=e.exports=function(e,t,n,p,f){var h,d,m,v,g=f?function(){return e}:u(e),y=r(n,p,t?2:1),b=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(i(g)){for(h=s(e.length);h>b;b++)if((v=t?y(a(d=e[b])[0],d[1]):y(e[b]))===c||v===l)return v}else for(m=g.call(e);!(d=m.next()).done;)if((v=o(m,y,d.value,t))===c||v===l)return v}).BREAK=c,t.RETURN=l},function(e,t,n){"use strict";function r(e){return null==e}e.exports.isNothing=r,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:r(e)?[]:[e]},e.exports.repeat=function(e,t){var n,r="";for(n=0;n<t;n+=1)r+=e;return r},e.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},e.exports.extend=function(e,t){var n,r,o,i;if(t)for(n=0,r=(i=Object.keys(t)).length;n<r;n+=1)e[o=i[n]]=t[o];return e}},function(e,t,n){"use strict";var r=n(109),o=n(135),i=n(31);function a(e,t,n){var r=[];return e.include.forEach(function(e){n=a(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&r.push(n)}),n.push(e)}),n.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function r(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(r);return n}(this.compiledImplicit,this.compiledExplicit)}s.DEFAULT=null,s.create=function(){var e,t;switch(arguments.length){case 1:e=s.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new o("Wrong number of arguments for Schema.create function")}if(e=r.toArray(e),t=r.toArray(t),!e.every(function(e){return e instanceof s}))throw new o("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof i}))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new s({include:e,explicit:t})},e.exports=s},function(e,t,n){"use strict";var r=n(21);n(15);function o(e,t){return(e&t)===t}var i={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=i,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},c=e.DOMPropertyNames||{},l=e.DOMMutationMethods||{};for(var p in e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute),n){s.properties.hasOwnProperty(p)&&r("48",p);var f=p.toLowerCase(),h=n[p],d={attributeName:f,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:o(h,t.MUST_USE_PROPERTY),hasBooleanValue:o(h,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(h,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(h,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(h,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(d.hasBooleanValue+d.hasNumericValue+d.hasOverloadedBooleanValue<=1||r("50",p),u.hasOwnProperty(p)){var m=u[p];d.attributeName=m}a.hasOwnProperty(p)&&(d.attributeNamespace=a[p]),c.hasOwnProperty(p)&&(d.propertyName=c[p]),l.hasOwnProperty(p)&&(d.mutationMethod=l[p]),s.properties[p]=d}}},a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){if((0,s._isCustomAttributeFunctions[t])(e))return!0}return!1},injection:i};e.exports=s},function(e,t,n){"use strict";var r=n(808);n(50),n(23);function o(){r.attachRefs(this,this._currentElement)}var i={mountComponent:function(e,t,n,r,i,a){var s=e.mountComponent(t,n,r,i,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(o,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){r.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,i){var a=e._currentElement;if(t!==a||i!==e._context){0;var s=r.shouldUpdateRefs(a,t);s&&r.detachRefs(e,a),e.receiveComponent(t,n,i),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(o,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}};e.exports=i},function(e,t,n){"use strict";var r=n(246),o=n(184),i=n(247),a=n(424),s="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent);function u(e){if(s){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)c(t,n[r],null);else null!=e.html?o(t,e.html):null!=e.text&&a(t,e.text)}}var c=i(function(e,t,n){11===t.node.nodeType||1===t.node.nodeType&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===r.html)?(u(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),u(t))});function l(){return this.node.nodeName}function p(e){return{node:e,children:[],html:null,text:null,toString:l}}p.insertTreeBefore=c,p.replaceChildWithTree=function(e,t){e.parentNode.replaceChild(t.node,e),u(t)},p.queueChild=function(e,t){s?e.children.push(t):e.node.appendChild(t.node)},p.queueHTML=function(e,t){s?e.html=t:o(e.node,t)},p.queueText=function(e,t){s?e.text=t:a(e.node,t)},e.exports=p},function(e,t,n){var r=n(181),o=n(411);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var c=t[s],l=i?i(n[c],e[c],c,n,e):void 0;void 0===l&&(l=e[c]),a?o(n,c,l):r(n,c,l)}return n}},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?function e(t,n){var r;r=Array.isArray(t)?[]:{};n.push(t);Object.keys(t).forEach(function(o){var i=t[o];"function"!=typeof i&&(i&&"object"==typeof i?-1!==n.indexOf(t[o])?r[o]="[Circular]":r[o]=e(t[o],n.slice(0)):r[o]=i)});"string"==typeof t.name&&(r.name=t.name);"string"==typeof t.message&&(r.message=t.message);"string"==typeof t.stack&&(r.stack=t.stack);return r}(e,[]):"function"==typeof e?"[Function: "+(e.name||"anonymous")+"]":e}},function(e,t,n){"use strict";n.r(t),n.d(t,"sampleFromSchema",function(){return d}),n.d(t,"inferSchema",function(){return m}),n.d(t,"sampleXmlFromSchema",function(){return v}),n.d(t,"createXMLExample",function(){return g}),n.d(t,"memoizedCreateXMLExample",function(){return y}),n.d(t,"memoizedSampleFromSchema",function(){return b});var r=n(14),o=n.n(r),i=n(3),a=n(468),s=n.n(a),u=n(323),c=n.n(u),l=n(142),p=n.n(l),f={string:function(){return"string"},string_email:function(){return"user@example.com"},"string_date-time":function(){return(new Date).toISOString()},string_date:function(){return(new Date).toISOString().substring(0,10)},string_uuid:function(){return"3fa85f64-5717-4562-b3fc-2c963f66afa6"},string_hostname:function(){return"example.com"},string_ipv4:function(){return"198.51.100.42"},string_ipv6:function(){return"2001:0db8:5b96:0000:0000:426f:8e17:642a"},number:function(){return 0},number_float:function(){return 0},integer:function(){return 0},boolean:function(e){return"boolean"!=typeof e.default||e.default}},h=function(e){var t=e=Object(i.y)(e),n=t.type,r=t.format,o=f["".concat(n,"_").concat(r)]||f[n];return Object(i.q)(o)?o(e):"Unknown Type: "+e.type},d=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Object(i.y)(t),a=r.type,s=r.example,u=r.properties,c=r.additionalProperties,l=r.items,p=n.includeReadOnly,f=n.includeWriteOnly;if(void 0!==s)return Object(i.d)(s,"$$ref",function(e){return"string"==typeof e&&e.indexOf("#")>-1});if(!a)if(u)a="object";else{if(!l)return;a="array"}if("object"===a){var d=Object(i.y)(u),m={};for(var v in d)d[v]&&d[v].deprecated||d[v]&&d[v].readOnly&&!p||d[v]&&d[v].writeOnly&&!f||(m[v]=e(d[v],n));if(!0===c)m.additionalProp1={};else if(c)for(var g=Object(i.y)(c),y=e(g,n),b=1;b<4;b++)m["additionalProp"+b]=y;return m}return"array"===a?o()(l.anyOf)?l.anyOf.map(function(t){return e(t,n)}):o()(l.oneOf)?l.oneOf.map(function(t){return e(t,n)}):[e(l,n)]:t.enum?t.default?t.default:Object(i.u)(t.enum)[0]:"file"!==a?h(t):void 0},m=function(e){return e.schema&&(e=e.schema),e.properties&&(e.type="object"),e},v=function e(t){var n,r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=p()({},Object(i.y)(t)),u=s.type,c=s.properties,l=s.additionalProperties,f=s.items,d=s.example,m=a.includeReadOnly,v=a.includeWriteOnly,g=s.default,y={},b={},_=t.xml,w=_.name,x=_.prefix,E=_.namespace,S=s.enum;if(!u)if(c||l)u="object";else{if(!f)return;u="array"}if(n=(x?x+":":"")+(w=w||"notagname"),E){var C=x?"xmlns:"+x:"xmlns";b[C]=E}if("array"===u&&f){if(f.xml=f.xml||_||{},f.xml.name=f.xml.name||_.name,_.wrapped)return y[n]=[],o()(d)?d.forEach(function(t){f.example=t,y[n].push(e(f,a))}):o()(g)?g.forEach(function(t){f.default=t,y[n].push(e(f,a))}):y[n]=[e(f,a)],b&&y[n].push({_attr:b}),y;var k=[];return o()(d)?(d.forEach(function(t){f.example=t,k.push(e(f,a))}),k):o()(g)?(g.forEach(function(t){f.default=t,k.push(e(f,a))}),k):e(f,a)}if("object"===u){var O=Object(i.y)(c);for(var A in y[n]=[],d=d||{},O)if(O.hasOwnProperty(A)&&(!O[A].readOnly||m)&&(!O[A].writeOnly||v))if(O[A].xml=O[A].xml||{},O[A].xml.attribute){var T=o()(O[A].enum)&&O[A].enum[0],j=O[A].example,P=O[A].default;b[O[A].xml.name||A]=void 0!==j&&j||void 0!==d[A]&&d[A]||void 0!==P&&P||T||h(O[A])}else{O[A].xml.name=O[A].xml.name||A,void 0===O[A].example&&void 0!==d[A]&&(O[A].example=d[A]);var I=e(O[A]);o()(I)?y[n]=y[n].concat(I):y[n].push(I)}return!0===l?y[n].push({additionalProp:"Anything can be here"}):l&&y[n].push({additionalProp:h(l)}),b&&y[n].push({_attr:b}),y}return r=void 0!==d?d:void 0!==g?g:o()(S)?S[0]:h(t),y[n]=b?[{_attr:b},r]:r,y};function g(e,t){var n=v(e,t);if(n)return s()(n,{declaration:!0,indent:"\t"})}var y=c()(g),b=c()(d)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_CONFIGS",function(){return i}),n.d(t,"TOGGLE_CONFIGS",function(){return a}),n.d(t,"update",function(){return s}),n.d(t,"toggle",function(){return u}),n.d(t,"loaded",function(){return c});var r=n(2),o=n.n(r),i="configs_update",a="configs_toggle";function s(e,t){return{type:i,payload:o()({},e,t)}}function u(e){return{type:a,payload:e}}var c=function(){return function(){}}},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(1),o=n.n(r),i=o.a.Set.of("type","format","items","default","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","enum","multipleOf");function a(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).isOAS3;if(!o.a.Map.isMap(e))return o.a.Map();if(!t)return"body"===e.get("in")?e.get("schema",o.a.Map()):e.filter(function(e,t){return i.includes(t)});if(e.get("content")){var n=e.get("content",o.a.Map({})).keySeq();return e.getIn(["content",n.first(),"schema"],o.a.Map())}return e.get("schema",o.a.Map())}},function(e,t,n){e.exports=n(766)},function(e,t,n){"use strict";n.r(t);var r=n(463),o="object"==typeof self&&self&&self.Object===Object&&self,i=(r.a||o||Function("return this")()).Symbol,a=Object.prototype,s=a.hasOwnProperty,u=a.toString,c=i?i.toStringTag:void 0;var l=function(e){var t=s.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(e){}var o=u.call(e);return r&&(t?e[c]=n:delete e[c]),o},p=Object.prototype.toString;var f=function(e){return p.call(e)},h="[object Null]",d="[object Undefined]",m=i?i.toStringTag:void 0;var v=function(e){return null==e?void 0===e?d:h:m&&m in Object(e)?l(e):f(e)};var g=function(e,t){return function(n){return e(t(n))}}(Object.getPrototypeOf,Object);var y=function(e){return null!=e&&"object"==typeof e},b="[object Object]",_=Function.prototype,w=Object.prototype,x=_.toString,E=w.hasOwnProperty,S=x.call(Object);var C=function(e){if(!y(e)||v(e)!=b)return!1;var t=g(e);if(null===t)return!0;var n=E.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&x.call(n)==S},k=n(322),O={INIT:"@@redux/INIT"};function A(e,t,n){var r;if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(A)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,a=[],s=a,u=!1;function c(){s===a&&(s=a.slice())}function l(){return i}function p(e){if("function"!=typeof e)throw new Error("Expected listener to be a function.");var t=!0;return c(),s.push(e),function(){if(t){t=!1,c();var n=s.indexOf(e);s.splice(n,1)}}}function f(e){if(!C(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,i=o(i,e)}finally{u=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return f({type:O.INIT}),(r={dispatch:f,subscribe:p,getState:l,replaceReducer:function(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");o=e,f({type:O.INIT})}})[k.a]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[k.a]=function(){return this},e},r}function T(e,t){var n=t&&t.type;return"Given action "+(n&&'"'+n.toString()+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function j(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];0,"function"==typeof e[o]&&(n[o]=e[o])}var i=Object.keys(n);var a=void 0;try{!function(e){Object.keys(e).forEach(function(t){var n=e[t];if(void 0===n(void 0,{type:O.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:"@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".")}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+O.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(n)}catch(e){a=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(a)throw a;for(var r=!1,o={},s=0;s<i.length;s++){var u=i[s],c=n[u],l=e[u],p=c(l,t);if(void 0===p){var f=T(u,t);throw new Error(f)}o[u]=p,r=r||p!==l}return r?o:e}}function P(e,t){return function(){return t(e.apply(void 0,arguments))}}function I(e,t){if("function"==typeof e)return P(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');for(var n=Object.keys(e),r={},o=0;o<n.length;o++){var i=n[o],a=e[i];"function"==typeof a&&(r[i]=P(a,t))}return r}function M(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}var N=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function R(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(n,r,o){var i,a=e(n,r,o),s=a.dispatch,u={getState:a.getState,dispatch:function(e){return s(e)}};return i=t.map(function(e){return e(u)}),s=M.apply(void 0,i)(a.dispatch),N({},a,{dispatch:s})}}}n.d(t,"createStore",function(){return A}),n.d(t,"combineReducers",function(){return j}),n.d(t,"bindActionCreators",function(){return I}),n.d(t,"applyMiddleware",function(){return R}),n.d(t,"compose",function(){return M})},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){e.exports=!n(123)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){e.exports={}},function(e,t,n){var r=n(149),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(343),o=n(207);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=!0},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(47).f,o=n(69),i=n(34)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){var r=n(155)("meta"),o=n(41),i=n(69),a=n(47).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(80)(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},p=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return c&&p.NEED&&u(e)&&!i(e,r)&&l(e),e}}},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(61).Buffer)},function(e,t,n){"use strict";function r(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=r},function(e,t,n){"use strict";var r=n(110);e.exports=new r({include:[n(408)],implicit:[n(777),n(778)],explicit:[n(779),n(780),n(781),n(782)]})},function(e,t,n){"use strict";var r=n(138),o=n(240),i=n(416),a=n(417),s=(n(23),r.getListener);function u(e,t,n){var r=function(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return s(e,r)}(e,n,t);r&&(n._dispatchListeners=i(n._dispatchListeners,r),n._dispatchInstances=i(n._dispatchInstances,e))}function c(e){e&&e.dispatchConfig.phasedRegistrationNames&&o.traverseTwoPhase(e._targetInst,u,e)}function l(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?o.getParentInstance(t):null;o.traverseTwoPhase(n,u,e)}}function p(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=s(e,r);o&&(n._dispatchListeners=i(n._dispatchListeners,o),n._dispatchInstances=i(n._dispatchInstances,e))}}function f(e){e&&e.dispatchConfig.registrationName&&p(e._targetInst,0,e)}var h={accumulateTwoPhaseDispatches:function(e){a(e,c)},accumulateTwoPhaseDispatchesSkipTarget:function(e){a(e,l)},accumulateDirectDispatches:function(e){a(e,f)},accumulateEnterLeaveDispatches:function(e,t,n,r){o.traverseEnterLeave(n,r,p,e,t)}};e.exports=h},function(e,t,n){"use strict";var r=n(21),o=n(239),i=n(240),a=n(241),s=n(416),u=n(417),c=(n(15),{}),l=null,p=function(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},f=function(e){return p(e,!0)},h=function(e){return p(e,!1)},d=function(e){return"."+e._rootNodeID};var m={injection:{injectEventPluginOrder:o.injectEventPluginOrder,injectEventPluginsByName:o.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n&&r("94",t,typeof n);var i=d(e);(c[t]||(c[t]={}))[i]=n;var a=o.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=c[t];if(function(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||(r=t,"button"!==r&&"input"!==r&&"select"!==r&&"textarea"!==r));default:return!1}var r}(t,e._currentElement.type,e._currentElement.props))return null;var r=d(e);return n&&n[r]},deleteListener:function(e,t){var n=o.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=c[t];r&&delete r[d(e)]},deleteAllListeners:function(e){var t=d(e);for(var n in c)if(c.hasOwnProperty(n)&&c[n][t]){var r=o.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete c[n][t]}},extractEvents:function(e,t,n,r){for(var i,a=o.plugins,u=0;u<a.length;u++){var c=a[u];if(c){var l=c.extractEvents(e,t,n,r);l&&(i=s(i,l))}}return i},enqueueEvents:function(e){e&&(l=s(l,e))},processEventQueue:function(e){var t=l;l=null,u(t,e?f:h),l&&r("95"),a.rethrowCaughtError()},__purge:function(){c={}},__getListenerBank:function(){return c}};e.exports=m},function(e,t,n){"use strict";var r=n(64),o=n(242),i={view:function(e){if(e.view)return e.view;var t=o(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=r},function(e,t,n){var r=n(41);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(e){return null===e?"null":void 0===e?"undefined":"object"===(void 0===e?"undefined":r(e))?Array.isArray(e)?"array":"object":void 0===e?"undefined":r(e)}function i(e){return"object"===o(e)?s(e):"array"===o(e)?a(e):e}function a(e){return e.map(i)}function s(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=i(e[n]));return t}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n={arrayBehaviour:(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).arrayBehaviour||"replace"},r=t.map(function(e){return e||{}}),i=e||{},c=0;c<r.length;c++)for(var l=r[c],p=Object.keys(l),f=0;f<p.length;f++){var h=p[f],d=l[h],m=o(d),v=o(i[h]);if("object"===m)if("undefined"!==v){var g="object"===v?i[h]:{};i[h]=u({},[g,s(d)],n)}else i[h]=s(d);else if("array"===m)if("array"===v){var y=a(d);i[h]="merge"===n.arrayBehaviour?i[h].concat(y):y}else i[h]=a(d);else i[h]=d}return i}e.exports=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return u(e,n)},e.exports.noMutate=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return u({},t)},e.exports.withOptions=function(e,t,n){return u(e,t,n)}},function(e,t,n){"use strict";var r=n(767);e.exports=r},function(e,t,n){"use strict";n.r(t),n.d(t,"parseYamlConfig",function(){return i});var r=n(143),o=n.n(r),i=function(e,t){try{return o.a.safeLoad(e)}catch(e){return t&&t.errActions.newThrownErr(new Error(e)),{}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"makeMappedContainer",function(){return j}),n.d(t,"render",function(){return P}),n.d(t,"getComponent",function(){return N});var r=n(26),o=n.n(r),i=n(17),a=n.n(i),s=n(16),u=n.n(s),c=n(20),l=n.n(c),p=n(4),f=n.n(p),h=n(5),d=n.n(h),m=n(6),v=n.n(m),g=n(7),y=n.n(g),b=n(8),_=n.n(b),w=n(0),x=n.n(w),E=n(472),S=n.n(E),C=n(326),k=n(473),O=n.n(k),A=function(e,t,n){var r=function(e,t){return function(n){function r(){return f()(this,r),v()(this,y()(r).apply(this,arguments))}return _()(r,n),d()(r,[{key:"render",value:function(){return x.a.createElement(t,l()({},e(),this.props,this.context))}}]),r}(w.Component)}(e,t),o=Object(C.connect)(function(n,r){var o=u()({},r,e());return(t.prototype.mapStateToProps||function(e){return{state:e}})(n,o)})(r);return n?function(e,t){return function(n){function r(){return f()(this,r),v()(this,y()(r).apply(this,arguments))}return _()(r,n),d()(r,[{key:"render",value:function(){return x.a.createElement(C.Provider,{store:e},x.a.createElement(t,l()({},this.props,this.context)))}}]),r}(w.Component)}(n,o):o},T=function(e,t,n,r){for(var o in t){var i=t[o];"function"==typeof i&&i(n[o],r[o],e())}},j=function(e,t,n,r,o,i){return function(t){function r(t,n){var o;return f()(this,r),o=v()(this,y()(r).call(this,t,n)),T(e,i,t,{}),o}return _()(r,t),d()(r,[{key:"componentWillReceiveProps",value:function(t){T(e,i,t,this.props)}},{key:"render",value:function(){var e=O()(this.props,i?a()(i):[]),t=n(o,"root");return x.a.createElement(t,e)}}]),r}(w.Component)},P=function(e,t,n,r,o){var i=n(e,t,r,"App","root");S.a.render(x.a.createElement(i,null),o)},I=function(e){var t=e.name;return x.a.createElement("div",{style:{padding:"1em",color:"#aaa"}},"😱 ",x.a.createElement("i",null,"Could not render ","t"===t?"this component":t,", see the console."))},M=function(e){var t=function(e){return!(e.prototype&&e.prototype.isReactComponent)}(e)?function(e){return function(t){function n(){return f()(this,n),v()(this,y()(n).apply(this,arguments))}return _()(n,t),d()(n,[{key:"render",value:function(){return e(this.props)}}]),n}(w.Component)}(e):e,n=t.prototype.render;return t.prototype.render=function(){try{for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return n.apply(this,r)}catch(e){return console.error(e),x.a.createElement(I,{error:e,name:t.name})}},t},N=function(e,t,n,r,i){if("string"!=typeof r)throw new TypeError("Need a string, to fetch a component. Was given a "+o()(r));var a=n(r);return a?i?"root"===i?A(e,a,t()):A(e,M(a)):M(a):(e().log.warn("Could not find component",r),null)}},function(e,t,n){"use strict";n.r(t),n.d(t,"setHash",function(){return r});var r=function(e){return e?history.pushState(null,null,"#".concat(e)):window.location.hash=""}},function(e,t,n){var r=n(77),o=n(485),i=n(486),a=Object.defineProperty;t.f=n(122)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(151);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(491),o=n(68);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(76),o=n(95),i=n(123),a=n(68),s=n(33);e.exports=function(e,t,n){var u=s(e),c=n(a,u,""[e]),l=c[0],p=c[1];i(function(){var t={};return t[u]=function(){return 7},7!=""[e](t)})&&(o(String.prototype,e,l),r(RegExp.prototype,u,2==t?function(e,t){return p.call(e,this,t)}:function(e){return p.call(e,this)}))}},function(e,t,n){var r=n(204),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(45),o=n(345),i=n(207),a=n(205)("IE_PROTO"),s=function(){},u=function(){var e,t=n(209)("iframe"),r=i.length;for(t.style.display="none",n(346).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(158),o=n(130),i=n(70),a=n(210),s=n(69),u=n(344),c=Object.getOwnPropertyDescriptor;t.f=n(46)?c:function(e,t){if(e=i(e),t=a(t,!0),u)try{return c(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){"use strict";e.exports={}},function(e,t,n){var r=n(127),o=n(34)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var r=n(81),o=n(63),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){var r=n(82)(Object,"create");e.exports=r},function(e,t,n){var r=n(618),o=n(619),i=n(620),a=n(621),s=n(622);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(89);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(624);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(629),o=n(657),i=n(229),a=n(35),s=n(662);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?o(e[0],e[1]):r(e):s(e)}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(652),o=n(219),i=n(653),a=n(654),s=n(655),u=n(81),c=n(367),l=c(r),p=c(o),f=c(i),h=c(a),d=c(s),m=u;(r&&"[object DataView]"!=m(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=m(new o)||i&&"[object Promise]"!=m(i.resolve())||a&&"[object Set]"!=m(new a)||s&&"[object WeakMap]"!=m(new s))&&(m=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case l:return"[object DataView]";case p:return"[object Map]";case f:return"[object Promise]";case h:return"[object Set]";case d:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,n){var r=n(104),o=n(105);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,o)});default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick(function(){e.apply(null,i)})}}}:e.exports=t}).call(this,n(72))},function(e,t,n){var r=n(61),o=r.Buffer;function i(e,t){for(var n in e)t[n]=e[n]}function a(e,t,n){return o(e,t,n)}o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=a),i(o,a),a.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return o(e,t,n)},a.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=o(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},a.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return o(e)},a.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";e.exports=n(690)("forEach")},function(e,t,n){"use strict";var r=n(394),o=n(391),i=n(233),a=n(699);(e.exports=function(e,t){var n,i,s,u,c;return arguments.length<2||"string"!=typeof e?(u=t,t=e,e=null):u=arguments[2],null==e?(n=s=!0,i=!1):(n=a.call(e,"c"),i=a.call(e,"e"),s=a.call(e,"w")),c={value:t,configurable:n,enumerable:i,writable:s},u?r(o(u),c):c}).gs=function(e,t,n){var s,u,c,l;return"string"!=typeof e?(c=n,n=t,t=e,e=null):c=arguments[3],null==t?t=void 0:i(t)?null==n?n=void 0:i(n)||(c=n,n=void 0):(c=t,t=n=void 0),null==e?(s=!0,u=!1):(s=a.call(e,"c"),u=a.call(e,"e")),l={get:t,set:n,configurable:s,enumerable:u},c?r(o(c),l):l}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(71);e.exports=function(e,t,n){for(var o in t)n&&e[o]?e[o]=t[o]:r(e,o,t[o]);return e}},function(e,t,n){"use strict";var r=n(110);e.exports=r.DEFAULT=new r({include:[n(136)],explicit:[n(783),n(784),n(785)]})},function(e,t,n){var r=n(411),o=n(89),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){"use strict";var r=n(21),o=(n(15),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,i,a,s,u){var c,l;this.isInTransaction()&&r("27");try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,n,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()||r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var i,a=t[n],s=this.wrapperInitData[n];try{i=!0,s!==o&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};e.exports=i},function(e,t,n){"use strict";var r=n(139),o=n(423),i={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:n(244),button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r,o=n(36),i=n(246),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(247)(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(u=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=u},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a<n.length;a++){switch(n.charCodeAt(a)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}s!==a&&(i+=n.substring(s,a)),s=a+1,i+=t}return s!==a?i+n.substring(s,a):i}(e)}},function(e,t,n){"use strict";var r,o=n(25),i=n(239),a=n(829),s=n(423),u=n(830),c=n(243),l={},p=!1,f=0,h={topAbort:"abort",topAnimationEnd:u("animationend")||"animationend",topAnimationIteration:u("animationiteration")||"animationiteration",topAnimationStart:u("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:u("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},d="_reactListenersID"+String(Math.random()).slice(2);var m=o({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=function(e){return Object.prototype.hasOwnProperty.call(e,d)||(e[d]=f++,l[e[d]]={}),l[e[d]]}(n),o=i.registrationNameDependencies[e],a=0;a<o.length;a++){var s=o[a];r.hasOwnProperty(s)&&r[s]||("topWheel"===s?c("wheel")?m.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):c("mousewheel")?m.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):m.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===s?c("scroll",!0)?m.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):m.ReactEventListener.trapBubbledEvent("topScroll","scroll",m.ReactEventListener.WINDOW_HANDLE):"topFocus"===s||"topBlur"===s?(c("focus",!0)?(m.ReactEventListener.trapCapturedEvent("topFocus","focus",n),m.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):c("focusin")&&(m.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),m.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),r.topBlur=!0,r.topFocus=!0):h.hasOwnProperty(s)&&m.ReactEventListener.trapBubbledEvent(s,h[s],n),r[s]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===r&&(r=m.supportsEventPageXY()),!r&&!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}}});e.exports=m},function(e,t,n){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=this.__rules__.length,n=-1;t--;)if(this.__rules__[++n].name===e)return n;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))})})},r.prototype.at=function(e,t,n){var r=this.__find__(e),o=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=o.alt||[],this.__cache__=null},r.prototype.before=function(e,t,n,r){var o=this.__find__(e),i=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,n,r){var o=this.__find__(e),i=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},r.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=r},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i=-1,a=e.posMax,s=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,n=1;e.pos<a;){if(91===(o=e.src.charCodeAt(e.pos)))n++;else if(93===o&&0===--n){r=!0;break}e.parser.skipToken(e)}return r?(i=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=n-1,e.pos=s,e.isInLabel=u,i}},function(e,t,n){e.exports=n(759)},function(e,t,n){var r=n(189);function o(e,t,n,o,i,a,s){try{var u=e[a](s),c=u.value}catch(e){return void n(e)}u.done?t(c):r.resolve(c).then(o,i)}e.exports=function(e){return function(){var t=this,n=arguments;return new r(function(r,i){var a=e.apply(t,n);function s(e){o(a,r,i,s,u,"next",e)}function u(e){o(a,r,i,s,u,"throw",e)}s(void 0)})}}},function(e,t,n){"use strict";n.d(t,"a",function(){return O});var r=n(20),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(9),d=n.n(h),m=n(8),v=n.n(m),g=n(2),y=n.n(g),b=n(0),_=n.n(b),w=n(479),x=n.n(w),E=n(19),S=n.n(E),C=n(10),k=n.n(C),O=function(e){function t(){var e,n;a()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=l()(this,(e=f()(t)).call.apply(e,[this].concat(o))),y()(d()(n),"getModelName",function(e){return-1!==e.indexOf("#/definitions/")?e.replace(/^.*#\/definitions\//,""):-1!==e.indexOf("#/components/schemas/")?e.replace(/^.*#\/components\/schemas\//,""):void 0}),y()(d()(n),"getRefSchema",function(e){return n.props.specSelectors.findDefinition(e)}),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,r=e.getConfigs,i=e.specSelectors,a=e.schema,s=e.required,u=e.name,c=e.isRef,l=e.specPath,p=e.displayName,f=t("ObjectModel"),h=t("ArrayModel"),d=t("PrimitiveModel"),m="object",v=a&&a.get("$$ref");if(!u&&v&&(u=this.getModelName(v)),!a&&v&&(a=this.getRefSchema(u)),!a)return _.a.createElement("span",{className:"model model-title"},_.a.createElement("span",{className:"model-title__text"},p||u),_.a.createElement("img",{src:n(456),height:"20px",width:"20px",style:{marginLeft:"1em",position:"relative",bottom:"0px"}}));var g=i.isOAS3()&&a.get("deprecated");switch(c=void 0!==c?c:!!v,m=a&&a.get("type")||m){case"object":return _.a.createElement(f,o()({className:"object"},this.props,{specPath:l,getConfigs:r,schema:a,name:u,deprecated:g,isRef:c}));case"array":return _.a.createElement(h,o()({className:"array"},this.props,{getConfigs:r,schema:a,name:u,deprecated:g,required:s}));case"string":case"number":case"integer":case"boolean":default:return _.a.createElement(d,o()({},this.props,{getComponent:t,getConfigs:r,schema:a,name:u,deprecated:g,required:s}))}}}]),t}(x.a);y()(O,"propTypes",{schema:S.a.orderedMap.isRequired,getComponent:k.a.func.isRequired,getConfigs:k.a.func.isRequired,specSelectors:k.a.object.isRequired,name:k.a.string,displayName:k.a.string,isRef:k.a.bool,required:k.a.bool,expandDepth:k.a.number,depth:k.a.number,specPath:S.a.list.isRequired})},function(e,t,n){"use strict";n.d(t,"b",function(){return p});var r=n(0),o=n.n(r),i=(n(10),n(193)),a=n.n(i),s=n(327),u=n.n(s),c=n(56),l=n.n(c);function p(e){return u.a.sanitize(e,{ADD_ATTR:["target"],FORBID_TAGS:["style"]})}u.a.addHook("beforeSanitizeElements",function(e){return e.href&&e.setAttribute("rel","noopener noreferrer"),e}),t.a=function(e){var t=e.source,n=e.className,r=void 0===n?"":n;if("string"!=typeof t)return null;var i=new a.a({html:!0,typographer:!0,breaks:!0,linkify:!0,linkTarget:"_blank"});i.core.ruler.disable(["replacements","smartquotes"]);var s=i.render(t),u=p(s);return t&&s&&u?o.a.createElement("div",{className:l()(r,"markdown"),dangerouslySetInnerHTML:{__html:u}}):null}},function(e,t,n){"use strict";e.exports=n(967)},function(e,t,n){var r=n(121),o=n(33)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(96),o=n(44).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(328)("keys"),o=n(195);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(147).f,o=n(148),i=n(33)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(151);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){var r=n(342),o=n(68);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(e))}},function(e,t,n){var r=n(33)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t,n){var r=n(127);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(206)("keys"),o=n(155);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(22),o=n(32),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(128)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(30),o=n(22),i=n(80);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(e,t,n){var r=n(41),o=n(32).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(41);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(128),o=n(30),i=n(212),a=n(71),s=n(98),u=n(549),c=n(131),l=n(347),p=n(34)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,d,m,v,g){u(n,t,d);var y,b,_,w=function(e){if(!f&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",E="values"==m,S=!1,C=e.prototype,k=C[p]||C["@@iterator"]||m&&C[m],O=k||w(m),A=m?E?w("entries"):O:void 0,T="Array"==t&&C.entries||k;if(T&&(_=l(T.call(new e)))!==Object.prototype&&_.next&&(c(_,x,!0),r||"function"==typeof _[p]||a(_,p,h)),E&&k&&"values"!==k.name&&(S=!0,O=function(){return k.call(this)}),r&&!g||!f&&!S&&C[p]||a(C,p,O),s[t]=O,s[x]=h,m)if(y={values:E?O:w("values"),keys:v?O:w("keys"),entries:A},g)for(b in y)b in C||i(C,b,y[b]);else o(o.P+o.F*(f||S),t,y);return y}},function(e,t,n){e.exports=n(71)},function(e,t,n){t.f=n(34)},function(e,t,n){var r=n(32),o=n(22),i=n(128),a=n(213),s=n(47).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){var r=n(127);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(343),o=n(207).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(162),o=n(34)("iterator"),i=n(98);e.exports=n(22).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(607),o=n(623),i=n(625),a=n(626),s=n(627);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(82)(n(48),"Map");e.exports=r},function(e,t,n){var r=n(165),o=n(631),i=n(632),a=n(633),s=n(634),u=n(635);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=s,c.prototype.set=u,e.exports=c},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(645),o=n(374),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(647),o=n(63),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){(function(e){var r=n(48),o=n(648),i=t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(169)(e))},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(361),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(169)(e))},function(e,t,n){var r=n(35),o=n(163),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||a.test(e)||!i.test(e)||null!=t&&e in Object(t)}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var u=10;function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var o,i,a,s;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=c(e))>0&&a.length>o&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return e}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,i(this.listener,this.target,e))}.bind(r);return o.listener=n,r.wrapFn=o,o}function f(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):d(o,o.length)}function h(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function d(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");u=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"==typeof u)i(u,this,t);else{var c=u.length,l=d(u,c);for(n=0;n<c;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return l(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return l(this,e,t,!0)},s.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){(t=e.exports=n(385)).Stream=t,t.Readable=t,t.Writable=n(232),t.Duplex=n(84),t.Transform=n(390),t.PassThrough=n(680)},function(e,t,n){"use strict";(function(t,r,o){var i=n(174);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=y;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;y.WritableState=g;var c=n(134);c.inherits=n(106);var l={deprecate:n(679)},p=n(386),f=n(175).Buffer,h=o.Uint8Array||function(){};var d,m=n(387);function v(){}function g(e,t){s=s||n(84),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var p=!1===e.decodeStrings;this.decodeStrings=!p,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),S(e,t))}(e,n,r,t,o);else{var a=x(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?u(_,e,n,a,o):_(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function y(e){if(s=s||n(84),!(d.call(y,this)||this instanceof s))return new y(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),p.call(this)}function b(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function _(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),S(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,u=!0;n;)o[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;o.allBuffers=u,b(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,p=n.callback;if(b(e,t,!1,t.objectMode?1:c.length,c,l,p),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function E(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),S(e,t)})}function S(e,t){var n=x(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(E,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}c.inherits(y,p),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===y&&(e&&e._writableState instanceof g)}})):d=function(e){return e instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,f.isBuffer(r)||r instanceof h);return s&&!f.isBuffer(e)&&(e=function(e){return f.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=v),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=f.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var u=t.length<t.highWaterMark;u||(t.needDrain=!0);if(t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else b(e,t,!1,s,r,o,i);return u}(this,o,s,e,t,n)),a},y.prototype.cork=function(){this._writableState.corked++},y.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},y.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,S(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(72),n(388).setImmediate,n(42))},function(e,t,n){"use strict";e.exports=function(e){return"function"==typeof e}},function(e,t,n){"use strict";e.exports=n(705)()?Array.from:n(706)},function(e,t,n){"use strict";var r=n(719),o=n(86),i=n(107),a=Array.prototype.indexOf,s=Object.prototype.hasOwnProperty,u=Math.abs,c=Math.floor;e.exports=function(e){var t,n,l,p;if(!r(e))return a.apply(this,arguments);for(n=o(i(this).length),l=arguments[1],t=l=isNaN(l)?0:l>=0?c(l):o(this.length)-c(u(l));t<n;++t)if(s.call(this,t)&&(p=this[t],r(p)))return t;return-1}},function(e,t,n){"use strict";(function(t,n){var r,o;r=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},o=function(e){var t,n,o=document.createTextNode(""),i=0;return new e(function(){var e;if(t)n&&(t=n.concat(t));else{if(!n)return;t=n}if(n=t,t=null,"function"==typeof n)return e=n,n=null,void e();for(o.data=i=++i%2;n;)e=n.shift(),n.length||(n=null),e()}).observe(o,{characterData:!0}),function(e){r(e),t?"function"==typeof t?t=[t,e]:t.push(e):(t=e,o.data=i=++i%2)}},e.exports=function(){if("object"==typeof t&&t&&"function"==typeof t.nextTick)return t.nextTick;if("object"==typeof document&&document){if("function"==typeof MutationObserver)return o(MutationObserver);if("function"==typeof WebKitMutationObserver)return o(WebKitMutationObserver)}return"function"==typeof n?function(e){n(r(e))}:"function"==typeof setTimeout||"object"==typeof setTimeout?function(e){setTimeout(r(e),0)}:null}()}).call(this,n(72),n(388).setImmediate)},function(e,t,n){"use strict";var r=n(129);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(110);e.exports=new r({explicit:[n(770),n(771),n(772)]})},function(e,t,n){"use strict";var r=n(21),o=(n(15),null),i={};function a(){if(o)for(var e in i){var t=i[e],n=o.indexOf(e);if(n>-1||r("96",e),!c.plugins[n]){t.extractEvents||r("97",e),c.plugins[n]=t;var a=t.eventTypes;for(var u in a)s(a[u],t,u)||r("98",u,e)}}}function s(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),c.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))u(o[i],t,n)}return!0}return!!e.registrationName&&(u(e.registrationName,t,n),!0)}function u(e,t,n){c.registrationNameModules[e]&&r("100",e),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=c},function(e,t,n){"use strict";var r,o,i=n(21),a=n(241);n(15),n(23);function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var u={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?u.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)s(e,t,n[o],r[o]);else n&&s(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null},executeDispatchesInOrderStopAtTrue:function(e){var t=function(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}(e);return e._dispatchInstances=null,e._dispatchListeners=null,t},hasDispatches:function(e){return!!e._dispatchListeners},getInstanceFromNode:function(e){return r.getInstanceFromNode(e)},getNodeFromInstance:function(e){return r.getNodeFromInstance(e)},isAncestor:function(e,t){return o.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return o.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return o.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return o.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,i){return o.traverseEnterLeave(e,t,n,r,i)},injection:{injectComponentTree:function(e){r=e},injectTreeTraversal:function(e){o=e}}};e.exports=u},function(e,t,n){"use strict";var r=null;function o(e,t,n){try{t(n)}catch(e){null===r&&(r=e)}}var i={invokeGuardedCallback:o,invokeGuardedCallbackWithCatch:o,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};e.exports=i},function(e,t,n){"use strict";e.exports=function(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}},function(e,t,n){"use strict";var r,o=n(36);o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
+function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=t.alloc?t.alloc(e.length):new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function o(e){var t=[];return e.forEach(function(e,i){"object"==typeof e&&null!==e?Array.isArray(e)?t[i]=o(e):n(e)?t[i]=r(e):t[i]=a({},e):t[i]=e}),t}function i(e,t){return"__proto__"===t?void 0:e[t]}var a=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,s=arguments[0],u=Array.prototype.slice.call(arguments,1);return u.forEach(function(u){"object"!=typeof u||null===u||Array.isArray(u)||Object.keys(u).forEach(function(c){return t=i(s,c),(e=i(u,c))===s?void 0:"object"!=typeof e||null===e?void(s[c]=e):Array.isArray(e)?void(s[c]=o(e)):n(e)?void(s[c]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(s[c]=a({},e)):void(s[c]=a(t,e))})}),s}}).call(this,n(64).Buffer)},function(e,t,n){var r=n(151),o=n(336);e.exports=n(126)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(106),o=n(603),i=n(604),a="[object Null]",s="[object Undefined]",u=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?s:a:u&&u in Object(e)?o(e):i(e)}},function(e,t,n){var r=n(621),o=n(624);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(380),o=n(661),i=n(107);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){"use strict";var r=n(178),o=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=p;var i=n(137);i.inherits=n(47);var a=n(390),s=n(240);i.inherits(p,a);for(var u=o(s.prototype),c=0;c<u.length;c++){var l=u[c];p.prototype[l]||(p.prototype[l]=s.prototype[l])}function p(e){if(!(this instanceof p))return new p(e);a.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",f)}function f(){this.allowHalfOpen||this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),p.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";var r=n(397)();e.exports=function(e){return e!==r&&null!==e}},function(e,t,n){"use strict";var r=n(696),o=Math.max;e.exports=function(e){return o(0,r(e))}},function(e,t,n){},function(e,t,n){"use strict";var r=n(21),o=(n(15),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t,n){e.exports=n(599)},function(e,t,n){var r=n(177);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){e.exports=n(763)},function(e,t,n){"use strict";(function(t){var r=n(803),o=n(804),i=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,a=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\S\s]*)/i,s=new RegExp("^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+");function u(e){return(e||"").toString().replace(s,"")}var c=[["#","hash"],["?","query"],function(e){return e.replace("\\","/")},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d+)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],l={hash:1,query:1};function p(e){var n,r=("undefined"!=typeof window?window:void 0!==t?t:"undefined"!=typeof self?self:{}).location||{},o={},a=typeof(e=e||r);if("blob:"===e.protocol)o=new h(unescape(e.pathname),{});else if("string"===a)for(n in o=new h(e,{}),l)delete o[n];else if("object"===a){for(n in e)n in l||(o[n]=e[n]);void 0===o.slashes&&(o.slashes=i.test(e.href))}return o}function f(e){e=u(e);var t=a.exec(e);return{protocol:t[1]?t[1].toLowerCase():"",slashes:!!t[2],rest:t[3]}}function h(e,t,n){if(e=u(e),!(this instanceof h))return new h(e,t,n);var i,a,s,l,d,m,v=c.slice(),g=typeof t,y=this,b=0;for("object"!==g&&"string"!==g&&(n=t,t=null),n&&"function"!=typeof n&&(n=o.parse),t=p(t),i=!(a=f(e||"")).protocol&&!a.slashes,y.slashes=a.slashes||i&&t.slashes,y.protocol=a.protocol||t.protocol||"",e=a.rest,a.slashes||(v[3]=[/(.*)/,"pathname"]);b<v.length;b++)"function"!=typeof(l=v[b])?(s=l[0],m=l[1],s!=s?y[m]=e:"string"==typeof s?~(d=e.indexOf(s))&&("number"==typeof l[2]?(y[m]=e.slice(0,d),e=e.slice(d+l[2])):(y[m]=e.slice(d),e=e.slice(0,d))):(d=s.exec(e))&&(y[m]=d[1],e=e.slice(0,d.index)),y[m]=y[m]||i&&l[3]&&t[m]||"",l[4]&&(y[m]=y[m].toLowerCase())):e=l(e);n&&(y.query=n(y.query)),i&&t.slashes&&"/"!==y.pathname.charAt(0)&&(""!==y.pathname||""!==t.pathname)&&(y.pathname=function(e,t){if(""===e)return t;for(var n=(t||"/").split("/").slice(0,-1).concat(e.split("/")),r=n.length,o=n[r-1],i=!1,a=0;r--;)"."===n[r]?n.splice(r,1):".."===n[r]?(n.splice(r,1),a++):a&&(0===r&&(i=!0),n.splice(r,1),a--);return i&&n.unshift(""),"."!==o&&".."!==o||n.push(""),n.join("/")}(y.pathname,t.pathname)),r(y.port,y.protocol)||(y.host=y.hostname,y.port=""),y.username=y.password="",y.auth&&(l=y.auth.split(":"),y.username=l[0]||"",y.password=l[1]||""),y.origin=y.protocol&&y.host&&"file:"!==y.protocol?y.protocol+"//"+y.host:"null",y.href=y.toString()}h.prototype={set:function(e,t,n){var i=this;switch(e){case"query":"string"==typeof t&&t.length&&(t=(n||o.parse)(t)),i[e]=t;break;case"port":i[e]=t,r(t,i.protocol)?t&&(i.host=i.hostname+":"+t):(i.host=i.hostname,i[e]="");break;case"hostname":i[e]=t,i.port&&(t+=":"+i.port),i.host=t;break;case"host":i[e]=t,/:\d+$/.test(t)?(t=t.split(":"),i.port=t.pop(),i.hostname=t.join(":")):(i.hostname=t,i.port="");break;case"protocol":i.protocol=t.toLowerCase(),i.slashes=!n;break;case"pathname":case"hash":if(t){var a="pathname"===e?"/":"#";i[e]=t.charAt(0)!==a?a+t:t}else i[e]=t;break;default:i[e]=t}for(var s=0;s<c.length;s++){var u=c[s];u[4]&&(i[u[1]]=i[u[1]].toLowerCase())}return i.origin=i.protocol&&i.host&&"file:"!==i.protocol?i.protocol+"//"+i.host:"null",i.href=i.toString(),i},toString:function(e){e&&"function"==typeof e||(e=o.stringify);var t,n=this,r=n.protocol;r&&":"!==r.charAt(r.length-1)&&(r+=":");var i=r+(n.slashes?"//":"");return n.username&&(i+=n.username,n.password&&(i+=":"+n.password),i+="@"),i+=n.host+n.pathname,(t="object"==typeof n.query?e(n.query):n.query)&&(i+="?"!==t.charAt(0)?"?"+t:t),n.hash&&(i+=n.hash),i}},h.extractProtocol=f,h.location=p,h.trimLeft=u,h.qs=o,e.exports=h}).call(this,n(36))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return a});var r=n(478),o=n.n(r),i=[n(275),n(276)];function a(e,t){var n={jsSpec:t.specSelectors.specJson().toJS()};return o()(i,function(e,t){try{return t.transform(e,n).filter(function(e){return!!e})}catch(t){return console.error("Transformer error:",t),e}},e).filter(function(e){return!!e}).map(function(e){return!e.get("line")&&e.get("path"),e})}},function(e,t,n){var r=n(41),o=n(81),i=n(152),a=n(199)("src"),s=n(494),u=(""+s).split("toString");n(72).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var c="function"==typeof n;c&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(c&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(210);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(559)(!0);n(219)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports={}},function(e,t,n){n(561);for(var r=n(32),o=n(77),i=n(102),a=n(34)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var c=s[u],l=r[c],p=l&&l.prototype;p&&!p[a]&&o(p,a,c),i[c]=i.Array}},function(e,t,n){"use strict";var r=n(25),o=n(357),i=n(578),a=n(583),s=n(105),u=n(584),c=n(588),l=n(589),p=n(591),f=s.createElement,h=s.createFactory,d=s.cloneElement,m=r,v={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:f,cloneElement:d,isValidElement:s.isValidElement,PropTypes:u,createClass:l,createFactory:h,createMixin:function(e){return e},DOM:a,version:c,__spread:m};e.exports=v},function(e,t,n){"use strict";var r=n(25),o=n(65),i=(n(23),n(359),Object.prototype.hasOwnProperty),a=n(360),s={key:!0,ref:!0,__self:!0,__source:!0};function u(e){return void 0!==e.ref}function c(e){return void 0!==e.key}var l=function(e,t,n,r,o,i,s){return{$$typeof:a,type:e,key:t,ref:n,props:s,_owner:i}};l.createElement=function(e,t,n){var r,a={},p=null,f=null;if(null!=t)for(r in u(t)&&(f=t.ref),c(t)&&(p=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source,t)i.call(t,r)&&!s.hasOwnProperty(r)&&(a[r]=t[r]);var h=arguments.length-2;if(1===h)a.children=n;else if(h>1){for(var d=Array(h),m=0;m<h;m++)d[m]=arguments[m+2];0,a.children=d}if(e&&e.defaultProps){var v=e.defaultProps;for(r in v)void 0===a[r]&&(a[r]=v[r])}return l(e,p,f,0,0,o.current,a)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){return l(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},l.cloneElement=function(e,t,n){var a,p,f=r({},e.props),h=e.key,d=e.ref,m=(e._self,e._source,e._owner);if(null!=t)for(a in u(t)&&(d=t.ref,m=o.current),c(t)&&(h=""+t.key),e.type&&e.type.defaultProps&&(p=e.type.defaultProps),t)i.call(t,a)&&!s.hasOwnProperty(a)&&(void 0===t[a]&&void 0!==p?f[a]=p[a]:f[a]=t[a]);var v=arguments.length-2;if(1===v)f.children=n;else if(v>1){for(var g=Array(v),y=0;y<v;y++)g[y]=arguments[y+2];f.children=g}return l(e.type,h,d,0,0,m,f)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=l},function(e,t,n){var r=n(51).Symbol;e.exports=r},function(e,t,n){var r=n(371),o=n(233);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){var r=n(37),o=n(236),i=n(669),a=n(69);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:i(a(e))}},function(e,t,n){var r=n(167),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t,n){"use strict";var r=n(87);e.exports=function(e){if(!r(e))throw new TypeError("Cannot use null or undefined");return e}},function(e,t,n){var r=n(48).Buffer;function o(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}o.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,o=this._blockSize,i=e.length,a=this._len,s=0;s<i;){for(var u=a%o,c=Math.min(i-s,o-u),l=0;l<c;l++)n[u+l]=e[s+l];s+=c,(a+=c)%o==0&&this._update(n)}return this._len+=i,this},o.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,o=(n-r)/4294967296;this._block.writeUInt32BE(o,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var i=this._hash();return e?i.toString(e):i},o.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=o},function(e,t,n){var r=n(63),o=n(406),i=n(407),a=n(46),s=n(158),u=n(225),c={},l={};(t=e.exports=function(e,t,n,p,f){var h,d,m,v,g=f?function(){return e}:u(e),y=r(n,p,t?2:1),b=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(i(g)){for(h=s(e.length);h>b;b++)if((v=t?y(a(d=e[b])[0],d[1]):y(e[b]))===c||v===l)return v}else for(m=g.call(e);!(d=m.next()).done;)if((v=o(m,y,d.value,t))===c||v===l)return v}).BREAK=c,t.RETURN=l},function(e,t,n){"use strict";function r(e){return null==e}e.exports.isNothing=r,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:r(e)?[]:[e]},e.exports.repeat=function(e,t){var n,r="";for(n=0;n<t;n+=1)r+=e;return r},e.exports.isNegativeZero=function(e){return 0===e&&Number.NEGATIVE_INFINITY===1/e},e.exports.extend=function(e,t){var n,r,o,i;if(t)for(n=0,r=(i=Object.keys(t)).length;n<r;n+=1)e[o=i[n]]=t[o];return e}},function(e,t,n){"use strict";var r=n(113),o=n(138),i=n(31);function a(e,t,n){var r=[];return e.include.forEach(function(e){n=a(e,t,n)}),e[t].forEach(function(e){n.forEach(function(t,n){t.tag===e.tag&&t.kind===e.kind&&r.push(n)}),n.push(e)}),n.filter(function(e,t){return-1===r.indexOf(t)})}function s(e){this.include=e.include||[],this.implicit=e.implicit||[],this.explicit=e.explicit||[],this.implicit.forEach(function(e){if(e.loadKind&&"scalar"!==e.loadKind)throw new o("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.")}),this.compiledImplicit=a(this,"implicit",[]),this.compiledExplicit=a(this,"explicit",[]),this.compiledTypeMap=function(){var e,t,n={scalar:{},sequence:{},mapping:{},fallback:{}};function r(e){n[e.kind][e.tag]=n.fallback[e.tag]=e}for(e=0,t=arguments.length;e<t;e+=1)arguments[e].forEach(r);return n}(this.compiledImplicit,this.compiledExplicit)}s.DEFAULT=null,s.create=function(){var e,t;switch(arguments.length){case 1:e=s.DEFAULT,t=arguments[0];break;case 2:e=arguments[0],t=arguments[1];break;default:throw new o("Wrong number of arguments for Schema.create function")}if(e=r.toArray(e),t=r.toArray(t),!e.every(function(e){return e instanceof s}))throw new o("Specified list of super schemas (or a single Schema object) contains a non-Schema object.");if(!t.every(function(e){return e instanceof i}))throw new o("Specified list of YAML types (or a single Type object) contains a non-Type object.");return new s({include:e,explicit:t})},e.exports=s},function(e,t,n){"use strict";var r=n(21);n(15);function o(e,t){return(e&t)===t}var i={MUST_USE_PROPERTY:1,HAS_BOOLEAN_VALUE:4,HAS_NUMERIC_VALUE:8,HAS_POSITIVE_NUMERIC_VALUE:24,HAS_OVERLOADED_BOOLEAN_VALUE:32,injectDOMPropertyConfig:function(e){var t=i,n=e.Properties||{},a=e.DOMAttributeNamespaces||{},u=e.DOMAttributeNames||{},c=e.DOMPropertyNames||{},l=e.DOMMutationMethods||{};for(var p in e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute),n){s.properties.hasOwnProperty(p)&&r("48",p);var f=p.toLowerCase(),h=n[p],d={attributeName:f,attributeNamespace:null,propertyName:p,mutationMethod:null,mustUseProperty:o(h,t.MUST_USE_PROPERTY),hasBooleanValue:o(h,t.HAS_BOOLEAN_VALUE),hasNumericValue:o(h,t.HAS_NUMERIC_VALUE),hasPositiveNumericValue:o(h,t.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:o(h,t.HAS_OVERLOADED_BOOLEAN_VALUE)};if(d.hasBooleanValue+d.hasNumericValue+d.hasOverloadedBooleanValue<=1||r("50",p),u.hasOwnProperty(p)){var m=u[p];d.attributeName=m}a.hasOwnProperty(p)&&(d.attributeNamespace=a[p]),c.hasOwnProperty(p)&&(d.propertyName=c[p]),l.hasOwnProperty(p)&&(d.mutationMethod=l[p]),s.properties[p]=d}}},a=":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",s={ID_ATTRIBUTE_NAME:"data-reactid",ROOT_ATTRIBUTE_NAME:"data-reactroot",ATTRIBUTE_NAME_START_CHAR:a,ATTRIBUTE_NAME_CHAR:a+"\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",properties:{},getPossibleStandardName:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){if((0,s._isCustomAttributeFunctions[t])(e))return!0}return!1},injection:i};e.exports=s},function(e,t,n){"use strict";var r=n(823);n(53),n(23);function o(){r.attachRefs(this,this._currentElement)}var i={mountComponent:function(e,t,n,r,i,a){var s=e.mountComponent(t,n,r,i,a);return e._currentElement&&null!=e._currentElement.ref&&t.getReactMountReady().enqueue(o,e),s},getHostNode:function(e){return e.getHostNode()},unmountComponent:function(e,t){r.detachRefs(e,e._currentElement),e.unmountComponent(t)},receiveComponent:function(e,t,n,i){var a=e._currentElement;if(t!==a||i!==e._context){0;var s=r.shouldUpdateRefs(a,t);s&&r.detachRefs(e,a),e.receiveComponent(t,n,i),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(o,e)}},performUpdateIfNecessary:function(e,t,n){e._updateBatchNumber===n&&e.performUpdateIfNecessary(t)}};e.exports=i},function(e,t,n){"use strict";var r=n(254),o=n(187),i=n(255),a=n(431),s="undefined"!=typeof document&&"number"==typeof document.documentMode||"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent&&/\bEdge\/\d/.test(navigator.userAgent);function u(e){if(s){var t=e.node,n=e.children;if(n.length)for(var r=0;r<n.length;r++)c(t,n[r],null);else null!=e.html?o(t,e.html):null!=e.text&&a(t,e.text)}}var c=i(function(e,t,n){11===t.node.nodeType||1===t.node.nodeType&&"object"===t.node.nodeName.toLowerCase()&&(null==t.node.namespaceURI||t.node.namespaceURI===r.html)?(u(t),e.insertBefore(t.node,n)):(e.insertBefore(t.node,n),u(t))});function l(){return this.node.nodeName}function p(e){return{node:e,children:[],html:null,text:null,toString:l}}p.insertTreeBefore=c,p.replaceChildWithTree=function(e,t){e.parentNode.replaceChild(t.node,e),u(t)},p.queueChild=function(e,t){s?e.children.push(t):e.node.appendChild(t.node)},p.queueHTML=function(e,t){s?e.html=t:o(e.node,t)},p.queueText=function(e,t){s?e.text=t:a(e.node,t)},e.exports=p},function(e,t,n){var r=n(184),o=n(418);e.exports=function(e,t,n,i){var a=!n;n||(n={});for(var s=-1,u=t.length;++s<u;){var c=t[s],l=i?i(n[c],e[c],c,n,e):void 0;void 0===l&&(l=e[c]),a?o(n,c,l):r(n,c,l)}return n}},function(e,t,n){"use strict";e.exports=function(e){return"object"==typeof e?function e(t,n){var r;r=Array.isArray(t)?[]:{};n.push(t);Object.keys(t).forEach(function(o){var i=t[o];"function"!=typeof i&&(i&&"object"==typeof i?-1!==n.indexOf(t[o])?r[o]="[Circular]":r[o]=e(t[o],n.slice(0)):r[o]=i)});"string"==typeof t.name&&(r.name=t.name);"string"==typeof t.message&&(r.message=t.message);"string"==typeof t.stack&&(r.stack=t.stack);return r}(e,[]):"function"==typeof e?"[Function: "+(e.name||"anonymous")+"]":e}},function(e,t,n){"use strict";n.r(t),n.d(t,"sampleFromSchema",function(){return d}),n.d(t,"inferSchema",function(){return m}),n.d(t,"sampleXmlFromSchema",function(){return v}),n.d(t,"createXMLExample",function(){return g}),n.d(t,"memoizedCreateXMLExample",function(){return y}),n.d(t,"memoizedSampleFromSchema",function(){return b});var r=n(14),o=n.n(r),i=n(3),a=n(474),s=n.n(a),u=n(331),c=n.n(u),l=n(145),p=n.n(l),f={string:function(){return"string"},string_email:function(){return"user@example.com"},"string_date-time":function(){return(new Date).toISOString()},string_date:function(){return(new Date).toISOString().substring(0,10)},string_uuid:function(){return"3fa85f64-5717-4562-b3fc-2c963f66afa6"},string_hostname:function(){return"example.com"},string_ipv4:function(){return"198.51.100.42"},string_ipv6:function(){return"2001:0db8:5b96:0000:0000:426f:8e17:642a"},number:function(){return 0},number_float:function(){return 0},integer:function(){return 0},boolean:function(e){return"boolean"!=typeof e.default||e.default}},h=function(e){var t=e=Object(i.A)(e),n=t.type,r=t.format,o=f["".concat(n,"_").concat(r)]||f[n];return Object(i.s)(o)?o(e):"Unknown Type: "+e.type},d=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Object(i.A)(t),a=r.type,s=r.example,u=r.properties,c=r.additionalProperties,l=r.items,p=n.includeReadOnly,f=n.includeWriteOnly;if(void 0!==s)return Object(i.e)(s,"$$ref",function(e){return"string"==typeof e&&e.indexOf("#")>-1});if(!a)if(u)a="object";else{if(!l)return;a="array"}if("object"===a){var d=Object(i.A)(u),m={};for(var v in d)d[v]&&d[v].deprecated||d[v]&&d[v].readOnly&&!p||d[v]&&d[v].writeOnly&&!f||(m[v]=e(d[v],n));if(!0===c)m.additionalProp1={};else if(c)for(var g=Object(i.A)(c),y=e(g,n),b=1;b<4;b++)m["additionalProp"+b]=y;return m}return"array"===a?o()(l.anyOf)?l.anyOf.map(function(t){return e(t,n)}):o()(l.oneOf)?l.oneOf.map(function(t){return e(t,n)}):[e(l,n)]:t.enum?t.default?t.default:Object(i.w)(t.enum)[0]:"file"!==a?h(t):void 0},m=function(e){return e.schema&&(e=e.schema),e.properties&&(e.type="object"),e},v=function e(t){var n,r,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=p()({},Object(i.A)(t)),u=s.type,c=s.properties,l=s.additionalProperties,f=s.items,d=s.example,m=a.includeReadOnly,v=a.includeWriteOnly,g=s.default,y={},b={},_=t.xml,w=_.name,x=_.prefix,E=_.namespace,S=s.enum;if(!u)if(c||l)u="object";else{if(!f)return;u="array"}if(n=(x?x+":":"")+(w=w||"notagname"),E){var C=x?"xmlns:"+x:"xmlns";b[C]=E}if("array"===u&&f){if(f.xml=f.xml||_||{},f.xml.name=f.xml.name||_.name,_.wrapped)return y[n]=[],o()(d)?d.forEach(function(t){f.example=t,y[n].push(e(f,a))}):o()(g)?g.forEach(function(t){f.default=t,y[n].push(e(f,a))}):y[n]=[e(f,a)],b&&y[n].push({_attr:b}),y;var k=[];return o()(d)?(d.forEach(function(t){f.example=t,k.push(e(f,a))}),k):o()(g)?(g.forEach(function(t){f.default=t,k.push(e(f,a))}),k):e(f,a)}if("object"===u){var O=Object(i.A)(c);for(var A in y[n]=[],d=d||{},O)if(O.hasOwnProperty(A)&&(!O[A].readOnly||m)&&(!O[A].writeOnly||v))if(O[A].xml=O[A].xml||{},O[A].xml.attribute){var T=o()(O[A].enum)&&O[A].enum[0],j=O[A].example,P=O[A].default;b[O[A].xml.name||A]=void 0!==j&&j||void 0!==d[A]&&d[A]||void 0!==P&&P||T||h(O[A])}else{O[A].xml.name=O[A].xml.name||A,void 0===O[A].example&&void 0!==d[A]&&(O[A].example=d[A]);var I=e(O[A]);o()(I)?y[n]=y[n].concat(I):y[n].push(I)}return!0===l?y[n].push({additionalProp:"Anything can be here"}):l&&y[n].push({additionalProp:h(l)}),b&&y[n].push({_attr:b}),y}return r=void 0!==d?d:void 0!==g?g:o()(S)?S[0]:h(t),y[n]=b?[{_attr:b},r]:r,y};function g(e,t){var n=v(e,t);if(n)return s()(n,{declaration:!0,indent:"\t"})}var y=c()(g),b=c()(d)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_CONFIGS",function(){return i}),n.d(t,"TOGGLE_CONFIGS",function(){return a}),n.d(t,"update",function(){return s}),n.d(t,"toggle",function(){return u}),n.d(t,"loaded",function(){return c});var r=n(2),o=n.n(r),i="configs_update",a="configs_toggle";function s(e,t){return{type:i,payload:o()({},e,t)}}function u(e){return{type:a,payload:e}}var c=function(){return function(){}}},function(e,t,n){"use strict";n.d(t,"a",function(){return a});var r=n(1),o=n.n(r),i=o.a.Set.of("type","format","items","default","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","enum","multipleOf");function a(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).isOAS3;if(!o.a.Map.isMap(e))return{schema:o.a.Map(),parameterContentMediaType:null};if(!t)return"body"===e.get("in")?{schema:e.get("schema",o.a.Map()),parameterContentMediaType:null}:{schema:e.filter(function(e,t){return i.includes(t)}),parameterContentMediaType:null};if(e.get("content")){var n=e.get("content",o.a.Map({})).keySeq().first();return{schema:e.getIn(["content",n,"schema"],o.a.Map()),parameterContentMediaType:n}}return{schema:e.get("schema",o.a.Map()),parameterContentMediaType:null}}},function(e,t,n){e.exports=n(781)},function(e,t,n){"use strict";n.r(t);var r=n(469),o="object"==typeof self&&self&&self.Object===Object&&self,i=(r.a||o||Function("return this")()).Symbol,a=Object.prototype,s=a.hasOwnProperty,u=a.toString,c=i?i.toStringTag:void 0;var l=function(e){var t=s.call(e,c),n=e[c];try{e[c]=void 0;var r=!0}catch(e){}var o=u.call(e);return r&&(t?e[c]=n:delete e[c]),o},p=Object.prototype.toString;var f=function(e){return p.call(e)},h="[object Null]",d="[object Undefined]",m=i?i.toStringTag:void 0;var v=function(e){return null==e?void 0===e?d:h:m&&m in Object(e)?l(e):f(e)};var g=function(e,t){return function(n){return e(t(n))}}(Object.getPrototypeOf,Object);var y=function(e){return null!=e&&"object"==typeof e},b="[object Object]",_=Function.prototype,w=Object.prototype,x=_.toString,E=w.hasOwnProperty,S=x.call(Object);var C=function(e){if(!y(e)||v(e)!=b)return!1;var t=g(e);if(null===t)return!0;var n=E.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&x.call(n)==S},k=n(330),O={INIT:"@@redux/INIT"};function A(e,t,n){var r;if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(A)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var o=e,i=t,a=[],s=a,u=!1;function c(){s===a&&(s=a.slice())}function l(){return i}function p(e){if("function"!=typeof e)throw new Error("Expected listener to be a function.");var t=!0;return c(),s.push(e),function(){if(t){t=!1,c();var n=s.indexOf(e);s.splice(n,1)}}}function f(e){if(!C(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw new Error("Reducers may not dispatch actions.");try{u=!0,i=o(i,e)}finally{u=!1}for(var t=a=s,n=0;n<t.length;n++){(0,t[n])()}return e}return f({type:O.INIT}),(r={dispatch:f,subscribe:p,getState:l,replaceReducer:function(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");o=e,f({type:O.INIT})}})[k.a]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[k.a]=function(){return this},e},r}function T(e,t){var n=t&&t.type;return"Given action "+(n&&'"'+n.toString()+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function j(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];0,"function"==typeof e[o]&&(n[o]=e[o])}var i=Object.keys(n);var a=void 0;try{!function(e){Object.keys(e).forEach(function(t){var n=e[t];if(void 0===n(void 0,{type:O.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:"@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".")}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+O.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')})}(n)}catch(e){a=e}return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];if(a)throw a;for(var r=!1,o={},s=0;s<i.length;s++){var u=i[s],c=n[u],l=e[u],p=c(l,t);if(void 0===p){var f=T(u,t);throw new Error(f)}o[u]=p,r=r||p!==l}return r?o:e}}function P(e,t){return function(){return t(e.apply(void 0,arguments))}}function I(e,t){if("function"==typeof e)return P(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');for(var n=Object.keys(e),r={},o=0;o<n.length;o++){var i=n[o],a=e[i];"function"==typeof a&&(r[i]=P(a,t))}return r}function M(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}var N=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function R(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(n,r,o){var i,a=e(n,r,o),s=a.dispatch,u={getState:a.getState,dispatch:function(e){return s(e)}};return i=t.map(function(e){return e(u)}),s=M.apply(void 0,i)(a.dispatch),N({},a,{dispatch:s})}}}n.d(t,"createStore",function(){return A}),n.d(t,"combineReducers",function(){return j}),n.d(t,"bindActionCreators",function(){return I}),n.d(t,"applyMiddleware",function(){return R}),n.d(t,"compose",function(){return M})},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){e.exports=!n(99)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports={}},function(e,t,n){var r=n(348),o=n(215);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=!0},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(49).f,o=n(75),i=n(34)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){var r=n(159)("meta"),o=n(43),i=n(75),a=n(49).f,s=0,u=Object.isExtensible||function(){return!0},c=!n(82)(function(){return u(Object.preventExtensions({}))}),l=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},p=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!u(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!u(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return c&&p.NEED&&u(e)&&!i(e,r)&&l(e),e}}},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(64).Buffer)},function(e,t,n){"use strict";function r(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=r},function(e,t,n){"use strict";var r=n(114);e.exports=new r({include:[n(415)],implicit:[n(792),n(793)],explicit:[n(794),n(795),n(796),n(797)]})},function(e,t,n){"use strict";var r=n(141),o=n(248),i=n(423),a=n(424),s=(n(23),r.getListener);function u(e,t,n){var r=function(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return s(e,r)}(e,n,t);r&&(n._dispatchListeners=i(n._dispatchListeners,r),n._dispatchInstances=i(n._dispatchInstances,e))}function c(e){e&&e.dispatchConfig.phasedRegistrationNames&&o.traverseTwoPhase(e._targetInst,u,e)}function l(e){if(e&&e.dispatchConfig.phasedRegistrationNames){var t=e._targetInst,n=t?o.getParentInstance(t):null;o.traverseTwoPhase(n,u,e)}}function p(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,o=s(e,r);o&&(n._dispatchListeners=i(n._dispatchListeners,o),n._dispatchInstances=i(n._dispatchInstances,e))}}function f(e){e&&e.dispatchConfig.registrationName&&p(e._targetInst,0,e)}var h={accumulateTwoPhaseDispatches:function(e){a(e,c)},accumulateTwoPhaseDispatchesSkipTarget:function(e){a(e,l)},accumulateDirectDispatches:function(e){a(e,f)},accumulateEnterLeaveDispatches:function(e,t,n,r){o.traverseEnterLeave(n,r,p,e,t)}};e.exports=h},function(e,t,n){"use strict";var r=n(21),o=n(247),i=n(248),a=n(249),s=n(423),u=n(424),c=(n(15),{}),l=null,p=function(e,t){e&&(i.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},f=function(e){return p(e,!0)},h=function(e){return p(e,!1)},d=function(e){return"."+e._rootNodeID};var m={injection:{injectEventPluginOrder:o.injectEventPluginOrder,injectEventPluginsByName:o.injectEventPluginsByName},putListener:function(e,t,n){"function"!=typeof n&&r("94",t,typeof n);var i=d(e);(c[t]||(c[t]={}))[i]=n;var a=o.registrationNameModules[t];a&&a.didPutListener&&a.didPutListener(e,t,n)},getListener:function(e,t){var n=c[t];if(function(e,t,n){switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":return!(!n.disabled||(r=t,"button"!==r&&"input"!==r&&"select"!==r&&"textarea"!==r));default:return!1}var r}(t,e._currentElement.type,e._currentElement.props))return null;var r=d(e);return n&&n[r]},deleteListener:function(e,t){var n=o.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=c[t];r&&delete r[d(e)]},deleteAllListeners:function(e){var t=d(e);for(var n in c)if(c.hasOwnProperty(n)&&c[n][t]){var r=o.registrationNameModules[n];r&&r.willDeleteListener&&r.willDeleteListener(e,n),delete c[n][t]}},extractEvents:function(e,t,n,r){for(var i,a=o.plugins,u=0;u<a.length;u++){var c=a[u];if(c){var l=c.extractEvents(e,t,n,r);l&&(i=s(i,l))}}return i},enqueueEvents:function(e){e&&(l=s(l,e))},processEventQueue:function(e){var t=l;l=null,u(t,e?f:h),l&&r("95"),a.rethrowCaughtError()},__purge:function(){c={}},__getListenerBank:function(){return c}};e.exports=m},function(e,t,n){"use strict";var r=n(68),o=n(250),i={view:function(e){if(e.view)return e.view;var t=o(e);if(t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=r},function(e,t,n){var r=n(43);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function o(e){return null===e?"null":void 0===e?"undefined":"object"===(void 0===e?"undefined":r(e))?Array.isArray(e)?"array":"object":void 0===e?"undefined":r(e)}function i(e){return"object"===o(e)?s(e):"array"===o(e)?a(e):e}function a(e){return e.map(i)}function s(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=i(e[n]));return t}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n={arrayBehaviour:(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).arrayBehaviour||"replace"},r=t.map(function(e){return e||{}}),i=e||{},c=0;c<r.length;c++)for(var l=r[c],p=Object.keys(l),f=0;f<p.length;f++){var h=p[f],d=l[h],m=o(d),v=o(i[h]);if("object"===m)if("undefined"!==v){var g="object"===v?i[h]:{};i[h]=u({},[g,s(d)],n)}else i[h]=s(d);else if("array"===m)if("array"===v){var y=a(d);i[h]="merge"===n.arrayBehaviour?i[h].concat(y):y}else i[h]=a(d);else i[h]=d}return i}e.exports=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return u(e,n)},e.exports.noMutate=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return u({},t)},e.exports.withOptions=function(e,t,n){return u(e,t,n)}},function(e,t,n){"use strict";var r=n(782);e.exports=r},function(e,t,n){"use strict";n.r(t),n.d(t,"parseYamlConfig",function(){return i});var r=n(146),o=n.n(r),i=function(e,t){try{return o.a.safeLoad(e)}catch(e){return t&&t.errActions.newThrownErr(new Error(e)),{}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"makeMappedContainer",function(){return j}),n.d(t,"render",function(){return P}),n.d(t,"getComponent",function(){return N});var r=n(26),o=n.n(r),i=n(17),a=n.n(i),s=n(16),u=n.n(s),c=n(20),l=n.n(c),p=n(4),f=n.n(p),h=n(5),d=n.n(h),m=n(6),v=n.n(m),g=n(7),y=n.n(g),b=n(8),_=n.n(b),w=n(0),x=n.n(w),E=n(480),S=n.n(E),C=n(334),k=n(481),O=n.n(k),A=function(e,t,n){var r=function(e,t){return function(n){function r(){return f()(this,r),v()(this,y()(r).apply(this,arguments))}return _()(r,n),d()(r,[{key:"render",value:function(){return x.a.createElement(t,l()({},e(),this.props,this.context))}}]),r}(w.Component)}(e,t),o=Object(C.connect)(function(n,r){var o=u()({},r,e());return(t.prototype.mapStateToProps||function(e){return{state:e}})(n,o)})(r);return n?function(e,t){return function(n){function r(){return f()(this,r),v()(this,y()(r).apply(this,arguments))}return _()(r,n),d()(r,[{key:"render",value:function(){return x.a.createElement(C.Provider,{store:e},x.a.createElement(t,l()({},this.props,this.context)))}}]),r}(w.Component)}(n,o):o},T=function(e,t,n,r){for(var o in t){var i=t[o];"function"==typeof i&&i(n[o],r[o],e())}},j=function(e,t,n,r,o,i){return function(t){function r(t,n){var o;return f()(this,r),o=v()(this,y()(r).call(this,t,n)),T(e,i,t,{}),o}return _()(r,t),d()(r,[{key:"componentWillReceiveProps",value:function(t){T(e,i,t,this.props)}},{key:"render",value:function(){var e=O()(this.props,i?a()(i):[]),t=n(o,"root");return x.a.createElement(t,e)}}]),r}(w.Component)},P=function(e,t,n,r,o){var i=n(e,t,r,"App","root");S.a.render(x.a.createElement(i,null),o)},I=function(e){var t=e.name;return x.a.createElement("div",{style:{padding:"1em",color:"#aaa"}},"😱 ",x.a.createElement("i",null,"Could not render ","t"===t?"this component":t,", see the console."))},M=function(e){var t=function(e){return!(e.prototype&&e.prototype.isReactComponent)}(e)?function(e){return function(t){function n(){return f()(this,n),v()(this,y()(n).apply(this,arguments))}return _()(n,t),d()(n,[{key:"render",value:function(){return e(this.props)}}]),n}(w.Component)}(e):e,n=t.prototype.render;return t.prototype.render=function(){try{for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];return n.apply(this,r)}catch(e){return console.error(e),x.a.createElement(I,{error:e,name:t.name})}},t},N=function(e,t,n,r,i){if("string"!=typeof r)throw new TypeError("Need a string, to fetch a component. Was given a "+o()(r));var a=n(r);return a?i?"root"===i?A(e,a,t()):A(e,M(a)):M(a):(e().log.warn("Could not find component",r),null)}},function(e,t,n){"use strict";n.r(t),n.d(t,"setHash",function(){return r});var r=function(e){return e?history.pushState(null,null,"#".concat(e)):window.location.hash=""}},function(e,t,n){var r=n(125),o=n(33)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var r=n(45),o=n(492),i=n(493),a=Object.defineProperty;t.f=n(126)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(154);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(499),o=n(73);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(150),o=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var i=n.call(e,t);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},function(e,t,n){"use strict";n(546);var r=n(97),o=n(81),i=n(99),a=n(73),s=n(33),u=n(209),c=s("species"),l=!i(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}),p=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var f=s(e),h=!i(function(){var t={};return t[f]=function(){return 7},7!=""[e](t)}),d=h?!i(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[c]=function(){return n}),n[f](""),!t}):void 0;if(!h||!d||"replace"===e&&!l||"split"===e&&!p){var m=/./[f],v=n(a,f,""[e],function(e,t,n,r,o){return t.exec===u?h&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),g=v[0],y=v[1];r(String.prototype,e,g),o(RegExp.prototype,f,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},function(e,t,n){var r=n(212),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(46),o=n(350),i=n(215),a=n(213)("IE_PROTO"),s=function(){},u=function(){var e,t=n(217)("iframe"),r=i.length;for(t.style.display="none",n(351).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(162),o=n(133),i=n(76),a=n(218),s=n(75),u=n(349),c=Object.getOwnPropertyDescriptor;t.f=n(50)?c:function(e,t){if(e=i(e),t=a(t,!0),u)try{return c(e,t)}catch(e){}if(s(e,t))return o(!r.f.call(e,t),e[t])}},function(e,t){},function(e,t,n){"use strict";e.exports={}},function(e,t,n){var r=n(130),o=n(34)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,n){var r=n(83),o=n(66),i="[object Symbol]";e.exports=function(e){return"symbol"==typeof e||o(e)&&r(e)==i}},function(e,t,n){var r=n(84)(Object,"create");e.exports=r},function(e,t,n){var r=n(629),o=n(630),i=n(631),a=n(632),s=n(633);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(91);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(635);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){var r=n(640),o=n(668),i=n(237),a=n(37),s=n(673);e.exports=function(e){return"function"==typeof e?e:null==e?i:"object"==typeof e?a(e)?o(e[0],e[1]):r(e):s(e)}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var o=typeof e;return!!(t=null==t?n:t)&&("number"==o||"symbol"!=o&&r.test(e))&&e>-1&&e%1==0&&e<t}},function(e,t){var n=Object.prototype;e.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},function(e,t,n){var r=n(663),o=n(227),i=n(664),a=n(665),s=n(666),u=n(83),c=n(372),l=c(r),p=c(o),f=c(i),h=c(a),d=c(s),m=u;(r&&"[object DataView]"!=m(new r(new ArrayBuffer(1)))||o&&"[object Map]"!=m(new o)||i&&"[object Promise]"!=m(i.resolve())||a&&"[object Set]"!=m(new a)||s&&"[object WeakMap]"!=m(new s))&&(m=function(e){var t=u(e),n="[object Object]"==t?e.constructor:void 0,r=n?c(n):"";if(r)switch(r){case l:return"[object DataView]";case p:return"[object Map]";case f:return"[object Promise]";case h:return"[object Set]";case d:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,n){var r=n(108),o=n(109);e.exports=function(e,t){for(var n=0,i=(t=r(t,e)).length;null!=e&&n<i;)e=e[o(t[n++])];return n&&n==i?e:void 0}},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,o){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var i,a,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,o)});default:for(i=new Array(s-1),a=0;a<i.length;)i[a++]=arguments[a];return t.nextTick(function(){e.apply(null,i)})}}}:e.exports=t}).call(this,n(67))},function(e,t,n){"use strict";e.exports=n(701)("forEach")},function(e,t,n){"use strict";var r=n(399),o=n(396),i=n(241),a=n(710);(e.exports=function(e,t){var n,i,s,u,c;return arguments.length<2||"string"!=typeof e?(u=t,t=e,e=null):u=arguments[2],null==e?(n=s=!0,i=!1):(n=a.call(e,"c"),i=a.call(e,"e"),s=a.call(e,"w")),c={value:t,configurable:n,enumerable:i,writable:s},u?r(o(u),c):c}).gs=function(e,t,n){var s,u,c,l;return"string"!=typeof e?(c=n,n=t,t=e,e=null):c=arguments[3],null==t?t=void 0:i(t)?null==n?n=void 0:i(n)||(c=n,n=void 0):(c=t,t=n=void 0),null==e?(s=!0,u=!1):(s=a.call(e,"c"),u=a.call(e,"e")),l={get:t,set:n,configurable:s,enumerable:u},c?r(o(c),l):l}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(77);e.exports=function(e,t,n){for(var o in t)n&&e[o]?e[o]=t[o]:r(e,o,t[o]);return e}},function(e,t,n){"use strict";var r=n(114);e.exports=r.DEFAULT=new r({include:[n(139)],explicit:[n(798),n(799),n(800)]})},function(e,t,n){var r=n(418),o=n(91),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t,n){"use strict";var r=n(21),o=(n(15),{}),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,t,n,o,i,a,s,u){var c,l;this.isInTransaction()&&r("27");try{this._isInTransaction=!0,c=!0,this.initializeAll(0),l=e.call(t,n,o,i,a,s,u),c=!1}finally{try{if(c)try{this.closeAll(0)}catch(e){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return l},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o)try{this.initializeAll(n+1)}catch(e){}}}},closeAll:function(e){this.isInTransaction()||r("28");for(var t=this.transactionWrappers,n=e;n<t.length;n++){var i,a=t[n],s=this.wrapperInitData[n];try{i=!0,s!==o&&a.close&&a.close.call(this,s),i=!1}finally{if(i)try{this.closeAll(n+1)}catch(e){}}}this.wrapperInitData.length=0}};e.exports=i},function(e,t,n){"use strict";var r=n(142),o=n(430),i={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:n(252),button:function(e){var t=e.button;return"which"in e?t:2===t?2:4===t?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r,o=n(38),i=n(254),a=/^[ \r\n\t\f]/,s=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,u=n(255)(function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML="<svg>"+t+"</svg>";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}});if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(u=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=u},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a<n.length;a++){switch(n.charCodeAt(a)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#x27;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}s!==a&&(i+=n.substring(s,a)),s=a+1,i+=t}return s!==a?i+n.substring(s,a):i}(e)}},function(e,t,n){"use strict";var r,o=n(25),i=n(247),a=n(844),s=n(430),u=n(845),c=n(251),l={},p=!1,f=0,h={topAbort:"abort",topAnimationEnd:u("animationend")||"animationend",topAnimationIteration:u("animationiteration")||"animationiteration",topAnimationStart:u("animationstart")||"animationstart",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topTransitionEnd:u("transitionend")||"transitionend",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},d="_reactListenersID"+String(Math.random()).slice(2);var m=o({},a,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(m.handleTopLevel),m.ReactEventListener=e}},setEnabled:function(e){m.ReactEventListener&&m.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!m.ReactEventListener||!m.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,r=function(e){return Object.prototype.hasOwnProperty.call(e,d)||(e[d]=f++,l[e[d]]={}),l[e[d]]}(n),o=i.registrationNameDependencies[e],a=0;a<o.length;a++){var s=o[a];r.hasOwnProperty(s)&&r[s]||("topWheel"===s?c("wheel")?m.ReactEventListener.trapBubbledEvent("topWheel","wheel",n):c("mousewheel")?m.ReactEventListener.trapBubbledEvent("topWheel","mousewheel",n):m.ReactEventListener.trapBubbledEvent("topWheel","DOMMouseScroll",n):"topScroll"===s?c("scroll",!0)?m.ReactEventListener.trapCapturedEvent("topScroll","scroll",n):m.ReactEventListener.trapBubbledEvent("topScroll","scroll",m.ReactEventListener.WINDOW_HANDLE):"topFocus"===s||"topBlur"===s?(c("focus",!0)?(m.ReactEventListener.trapCapturedEvent("topFocus","focus",n),m.ReactEventListener.trapCapturedEvent("topBlur","blur",n)):c("focusin")&&(m.ReactEventListener.trapBubbledEvent("topFocus","focusin",n),m.ReactEventListener.trapBubbledEvent("topBlur","focusout",n)),r.topBlur=!0,r.topFocus=!0):h.hasOwnProperty(s)&&m.ReactEventListener.trapBubbledEvent(s,h[s],n),r[s]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},supportsEventPageXY:function(){if(!document.createEvent)return!1;var e=document.createEvent("MouseEvent");return null!=e&&"pageX"in e},ensureScrollValueMonitoring:function(){if(void 0===r&&(r=m.supportsEventPageXY()),!r&&!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}}});e.exports=m},function(e,t,n){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=this.__rules__.length,n=-1;t--;)if(this.__rules__[++n].name===e)return n;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))})})},r.prototype.at=function(e,t,n){var r=this.__find__(e),o=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=o.alt||[],this.__cache__=null},r.prototype.before=function(e,t,n,r){var o=this.__find__(e),i=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,n,r){var o=this.__find__(e),i=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},r.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error("Rules manager: invalid rule name "+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=r},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i=-1,a=e.posMax,s=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,n=1;e.pos<a;){if(91===(o=e.src.charCodeAt(e.pos)))n++;else if(93===o&&0===--n){r=!0;break}e.parser.skipToken(e)}return r?(i=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=n-1,e.pos=s,e.isInLabel=u,i}},function(e,t,n){e.exports=n(774)},function(e,t,n){var r=n(192);function o(e,t,n,o,i,a,s){try{var u=e[a](s),c=u.value}catch(e){return void n(e)}u.done?t(c):r.resolve(c).then(o,i)}e.exports=function(e){return function(){var t=this,n=arguments;return new r(function(r,i){var a=e.apply(t,n);function s(e){o(a,r,i,s,u,"next",e)}function u(e){o(a,r,i,s,u,"throw",e)}s(void 0)})}}},function(e,t,n){"use strict";n.d(t,"b",function(){return p});var r=n(0),o=n.n(r),i=(n(10),n(195)),a=n.n(i),s=n(335),u=n.n(s),c=n(59),l=n.n(c);function p(e){return u.a.sanitize(e,{ADD_ATTR:["target"],FORBID_TAGS:["style"]})}u.a.addHook("beforeSanitizeElements",function(e){return e.href&&e.setAttribute("rel","noopener noreferrer"),e}),t.a=function(e){var t=e.source,n=e.className,r=void 0===n?"":n;if("string"!=typeof t)return null;var i=new a.a({html:!0,typographer:!0,breaks:!0,linkify:!0,linkTarget:"_blank"});i.core.ruler.disable(["replacements","smartquotes"]);var s=i.render(t),u=p(s);return t&&s&&u?o.a.createElement("div",{className:l()(r,"markdown"),dangerouslySetInnerHTML:{__html:u}}):null}},function(e,t,n){"use strict";e.exports=n(980)},function(e,t,n){"use strict";var r=n(20),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(9),d=n.n(h),m=n(8),v=n.n(m),g=n(2),y=n.n(g),b=n(0),_=n.n(b),w=n(1),x=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},E=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();var S=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,_.a.Component),E(t,[{key:"shouldComponentUpdate",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=this.state||{};return!(this.updateOnProps||Object.keys(x({},e,this.props))).every(function(n){return Object(w.is)(e[n],t.props[n])})||!(this.updateOnStates||Object.keys(x({},n,r))).every(function(e){return Object(w.is)(n[e],r[e])})}}]),t}(),C=n(19),k=n.n(C),O=n(10),A=n.n(O);n.d(t,"a",function(){return T});var T=function(e){function t(){var e,n;a()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=l()(this,(e=f()(t)).call.apply(e,[this].concat(o))),y()(d()(n),"getModelName",function(e){return-1!==e.indexOf("#/definitions/")?e.replace(/^.*#\/definitions\//,""):-1!==e.indexOf("#/components/schemas/")?e.replace(/^.*#\/components\/schemas\//,""):void 0}),y()(d()(n),"getRefSchema",function(e){return n.props.specSelectors.findDefinition(e)}),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,r=e.getConfigs,i=e.specSelectors,a=e.schema,s=e.required,u=e.name,c=e.isRef,l=e.specPath,p=e.displayName,f=t("ObjectModel"),h=t("ArrayModel"),d=t("PrimitiveModel"),m="object",v=a&&a.get("$$ref");if(!u&&v&&(u=this.getModelName(v)),!a&&v&&(a=this.getRefSchema(u)),!a)return _.a.createElement("span",{className:"model model-title"},_.a.createElement("span",{className:"model-title__text"},p||u),_.a.createElement("img",{src:n(462),height:"20px",width:"20px",style:{marginLeft:"1em",position:"relative",bottom:"0px"}}));var g=i.isOAS3()&&a.get("deprecated");switch(c=void 0!==c?c:!!v,m=a&&a.get("type")||m){case"object":return _.a.createElement(f,o()({className:"object"},this.props,{specPath:l,getConfigs:r,schema:a,name:u,deprecated:g,isRef:c}));case"array":return _.a.createElement(h,o()({className:"array"},this.props,{getConfigs:r,schema:a,name:u,deprecated:g,required:s}));case"string":case"number":case"integer":case"boolean":default:return _.a.createElement(d,o()({},this.props,{getComponent:t,getConfigs:r,schema:a,name:u,deprecated:g,required:s}))}}}]),t}(S);y()(T,"propTypes",{schema:k.a.orderedMap.isRequired,getComponent:A.a.func.isRequired,getConfigs:A.a.func.isRequired,specSelectors:A.a.object.isRequired,name:A.a.string,displayName:A.a.string,isRef:A.a.bool,required:A.a.bool,expandDepth:A.a.number,depth:A.a.number,specPath:k.a.list.isRequired})},function(e,t,n){var r=n(72),o=n(41),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(198)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=!1},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(98),o=n(41).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(127),o=n(73);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(i=s.charCodeAt(u))<55296||i>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){var r=n(197)("keys"),o=n(199);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(151).f,o=n(152),i=n(33)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){var r=n(45),o=n(154),i=n(33)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},function(e,t,n){"use strict";var r=n(154);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){var r=n(347),o=n(73);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(e))}},function(e,t,n){var r=n(33)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},function(e,t,n){"use strict";var r=n(201)(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},function(e,t,n){"use strict";var r,o,i=n(547),a=RegExp.prototype.exec,s=String.prototype.replace,u=a,c=(r=/a/,o=/b*/g,a.call(r,"a"),a.call(o,"a"),0!==r.lastIndex||0!==o.lastIndex),l=void 0!==/()??/.exec("")[1];(c||l)&&(u=function(e){var t,n,r,o,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),c&&(t=u.lastIndex),r=a.call(u,e),c&&r&&(u.lastIndex=u.global?r.index+r[0].length:t),l&&r&&r.length>1&&s.call(r[0],n,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(r[o]=void 0)}),r}),e.exports=u},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t,n){var r=n(130);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(214)("keys"),o=n(159);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(22),o=n(32),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(131)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(30),o=n(22),i=n(82);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],a={};a[e]=t(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},function(e,t,n){var r=n(43),o=n(32).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},function(e,t,n){var r=n(43);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(131),o=n(30),i=n(220),a=n(77),s=n(102),u=n(560),c=n(134),l=n(352),p=n(34)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,d,m,v,g){u(n,t,d);var y,b,_,w=function(e){if(!f&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",E="values"==m,S=!1,C=e.prototype,k=C[p]||C["@@iterator"]||m&&C[m],O=k||w(m),A=m?E?w("entries"):O:void 0,T="Array"==t&&C.entries||k;if(T&&(_=l(T.call(new e)))!==Object.prototype&&_.next&&(c(_,x,!0),r||"function"==typeof _[p]||a(_,p,h)),E&&k&&"values"!==k.name&&(S=!0,O=function(){return k.call(this)}),r&&!g||!f&&!S&&C[p]||a(C,p,O),s[t]=O,s[x]=h,m)if(y={values:E?O:w("values"),keys:v?O:w("keys"),entries:A},g)for(b in y)b in C||i(C,b,y[b]);else o(o.P+o.F*(f||S),t,y);return y}},function(e,t,n){e.exports=n(77)},function(e,t,n){t.f=n(34)},function(e,t,n){var r=n(32),o=n(22),i=n(131),a=n(221),s=n(49).f;e.exports=function(e){var t=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,n){var r=n(130);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(348),o=n(215).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},function(e,t,n){var r=n(166),o=n(34)("iterator"),i=n(102);e.exports=n(22).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t,n){var r=n(618),o=n(634),i=n(636),a=n(637),s=n(638);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(84)(n(51),"Map");e.exports=r},function(e,t,n){var r=n(169),o=n(642),i=n(643),a=n(644),s=n(645),u=n(646);function c(e){var t=this.__data__=new r(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=s,c.prototype.set=u,e.exports=c},function(e,t){e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},function(e,t,n){var r=n(656),o=n(379),i=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,s=a?function(e){return null==e?[]:(e=Object(e),r(a(e),function(t){return i.call(e,t)}))}:o;e.exports=s},function(e,t,n){var r=n(658),o=n(66),i=Object.prototype,a=i.hasOwnProperty,s=i.propertyIsEnumerable,u=r(function(){return arguments}())?r:function(e){return o(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t,n){(function(e){var r=n(51),o=n(659),i=t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(173)(e))},function(e,t){var n=9007199254740991;e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},function(e,t){e.exports=function(e){return function(t){return e(t)}}},function(e,t,n){(function(e){var r=n(366),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o&&r.process,s=function(){try{var e=i&&i.require&&i.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(e){}}();e.exports=s}).call(this,n(173)(e))},function(e,t,n){var r=n(37),o=n(167),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(a.test(e)||!i.test(e)||null!=t&&e in Object(t))}},function(e,t){e.exports=function(e){return e}},function(e,t,n){"use strict";var r,o="object"==typeof Reflect?Reflect:null,i=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var u=10;function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var o,i,a,s;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),a=i[t]),void 0===a)a=i[t]=n,++e._eventsCount;else if("function"==typeof a?a=i[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=c(e))>0&&a.length>o&&!a.warned){a.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=a.length,s=u,console&&console.warn&&console.warn(s)}return e}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=function(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,i(this.listener,this.target,e))}.bind(r);return o.listener=n,r.wrapFn=o,o}function f(e,t,n){var r=e._events;if(void 0===r)return[];var o=r[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):d(o,o.length)}function h(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function d(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");u=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,o=this._events;if(void 0!==o)r=r&&void 0===o.error;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var u=o[e];if(void 0===u)return!1;if("function"==typeof u)i(u,this,t);else{var c=u.length,l=d(u,c);for(n=0;n<c;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return l(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return l(this,e,t,!0)},s.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,o,i,a;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,o=i;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,a||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(o=i[r])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return f(this,e,!0)},s.prototype.rawListeners=function(e){return f(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){(t=e.exports=n(390)).Stream=t,t.Readable=t,t.Writable=n(240),t.Duplex=n(86),t.Transform=n(395),t.PassThrough=n(691)},function(e,t,n){"use strict";(function(t,r,o){var i=n(178);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=y;var s,u=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;y.WritableState=g;var c=n(137);c.inherits=n(47);var l={deprecate:n(690)},p=n(391),f=n(48).Buffer,h=o.Uint8Array||function(){};var d,m=n(392);function v(){}function g(e,t){s=s||n(86),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,c=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(c||0===c)?c:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var p=!1===e.decodeStrings;this.decodeStrings=!p,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(S,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),S(e,t))}(e,n,r,t,o);else{var a=x(n);a||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?u(_,e,n,a,o):_(e,n,a,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function y(e){if(s=s||n(86),!(d.call(y,this)||this instanceof s))return new y(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),p.call(this)}function b(e,t,n,r,o,i,a){t.writelen=r,t.writecb=a,t.writing=!0,t.sync=!0,n?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function _(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),S(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=n;for(var s=0,u=!0;n;)o[s]=n,n.isBuf||(u=!1),n=n.next,s+=1;o.allBuffers=u,b(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var c=n.chunk,l=n.encoding,p=n.callback;if(b(e,t,!1,t.objectMode?1:c.length,c,l,p),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function x(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function E(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),S(e,t)})}function S(e,t){var n=x(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(E,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}c.inherits(y,p),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(d=Function.prototype[Symbol.hasInstance],Object.defineProperty(y,Symbol.hasInstance,{value:function(e){return!!d.call(this,e)||this===y&&(e&&e._writableState instanceof g)}})):d=function(e){return e instanceof this},y.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},y.prototype.write=function(e,t,n){var r,o=this._writableState,a=!1,s=!o.objectMode&&(r=e,f.isBuffer(r)||r instanceof h);return s&&!f.isBuffer(e)&&(e=function(e){return f.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=v),o.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var o=!0,a=!1;return null===n?a=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(a=new TypeError("Invalid non-string/buffer chunk")),a&&(e.emit("error",a),i.nextTick(r,a),o=!1),o}(this,o,e,n))&&(o.pendingcb++,a=function(e,t,n,r,o,i){if(!n){var a=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=f.from(t,n));return t}(t,r,o);r!==a&&(n=!0,o="buffer",r=a)}var s=t.objectMode?1:r.length;t.length+=s;var u=t.length<t.highWaterMark;u||(t.needDrain=!0);if(t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:o,isBuf:n,callback:i,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else b(e,t,!1,s,r,o,i);return u}(this,o,s,e,t,n)),a},y.prototype.cork=function(){this._writableState.corked++},y.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},y.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(y.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),y.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},y.prototype._writev=null,y.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,S(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(67),n(393).setImmediate,n(36))},function(e,t,n){"use strict";e.exports=function(e){return"function"==typeof e}},function(e,t,n){"use strict";e.exports=n(716)()?Array.from:n(717)},function(e,t,n){"use strict";var r=n(730),o=n(88),i=n(110),a=Array.prototype.indexOf,s=Object.prototype.hasOwnProperty,u=Math.abs,c=Math.floor;e.exports=function(e){var t,n,l,p;if(!r(e))return a.apply(this,arguments);for(n=o(i(this).length),l=arguments[1],t=l=isNaN(l)?0:l>=0?c(l):o(this.length)-c(u(l));t<n;++t)if(s.call(this,t)&&(p=this[t],r(p)))return t;return-1}},function(e,t,n){"use strict";(function(t,n){var r,o;r=function(e){if("function"!=typeof e)throw new TypeError(e+" is not a function");return e},o=function(e){var t,n,o=document.createTextNode(""),i=0;return new e(function(){var e;if(t)n&&(t=n.concat(t));else{if(!n)return;t=n}if(n=t,t=null,"function"==typeof n)return e=n,n=null,void e();for(o.data=i=++i%2;n;)e=n.shift(),n.length||(n=null),e()}).observe(o,{characterData:!0}),function(e){r(e),t?"function"==typeof t?t=[t,e]:t.push(e):(t=e,o.data=i=++i%2)}},e.exports=function(){if("object"==typeof t&&t&&"function"==typeof t.nextTick)return t.nextTick;if("object"==typeof document&&document){if("function"==typeof MutationObserver)return o(MutationObserver);if("function"==typeof WebKitMutationObserver)return o(WebKitMutationObserver)}return"function"==typeof n?function(e){n(r(e))}:"function"==typeof setTimeout||"object"==typeof setTimeout?function(e){setTimeout(r(e),0)}:null}()}).call(this,n(67),n(393).setImmediate)},function(e,t,n){"use strict";var r=n(132);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(114);e.exports=new r({explicit:[n(785),n(786),n(787)]})},function(e,t,n){"use strict";var r=n(21),o=(n(15),null),i={};function a(){if(o)for(var e in i){var t=i[e],n=o.indexOf(e);if(n>-1||r("96",e),!c.plugins[n]){t.extractEvents||r("97",e),c.plugins[n]=t;var a=t.eventTypes;for(var u in a)s(a[u],t,u)||r("98",u,e)}}}function s(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),c.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))u(o[i],t,n)}return!0}return!!e.registrationName&&(u(e.registrationName,t,n),!0)}function u(e,t,n){c.registrationNameModules[e]&&r("100",e),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=c},function(e,t,n){"use strict";var r,o,i=n(21),a=n(249);n(15),n(23);function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var u={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?u.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o<n.length&&!e.isPropagationStopped();o++)s(e,t,n[o],r[o]);else n&&s(e,t,n,r);e._dispatchListeners=null,e._dispatchInstances=null},executeDispatchesInOrderStopAtTrue:function(e){var t=function(e){var t=e._dispatchListeners,n=e._dispatchInstances;if(Array.isArray(t)){for(var r=0;r<t.length&&!e.isPropagationStopped();r++)if(t[r](e,n[r]))return n[r]}else if(t&&t(e,n))return n;return null}(e);return e._dispatchInstances=null,e._dispatchListeners=null,t},hasDispatches:function(e){return!!e._dispatchListeners},getInstanceFromNode:function(e){return r.getInstanceFromNode(e)},getNodeFromInstance:function(e){return r.getNodeFromInstance(e)},isAncestor:function(e,t){return o.isAncestor(e,t)},getLowestCommonAncestor:function(e,t){return o.getLowestCommonAncestor(e,t)},getParentInstance:function(e){return o.getParentInstance(e)},traverseTwoPhase:function(e,t,n){return o.traverseTwoPhase(e,t,n)},traverseEnterLeave:function(e,t,n,r,i){return o.traverseEnterLeave(e,t,n,r,i)},injection:{injectComponentTree:function(e){r=e},injectTreeTraversal:function(e){o=e}}};e.exports=u},function(e,t,n){"use strict";var r=null;function o(e,t,n){try{t(n)}catch(e){null===r&&(r=e)}}var i={invokeGuardedCallback:o,invokeGuardedCallbackWithCatch:o,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};e.exports=i},function(e,t,n){"use strict";e.exports=function(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),3===t.nodeType?t.parentNode:t}},function(e,t,n){"use strict";var r,o=n(38);o.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&!0!==document.implementation.hasFeature("",""))
 /**
  * Checks if an event is supported in the current execution environment.
  *
 /**
  * Checks if an event is supported in the current execution environment.
  *
@@ -62,13 +62,13 @@ function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}func
  * @return {boolean} True if the event is supported.
  * @internal
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
  * @return {boolean} True if the event is supported.
  * @internal
  * @license Modernizr 3.0.0pre (Custom Build) | MIT
- */,e.exports=function(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}},function(e,t,n){"use strict";var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function o(e){var t=this.nativeEvent;if(t.getModifierState)return t.getModifierState(e);var n=r[e];return!!n&&!!t[n]}e.exports=function(e){return o}},function(e,t,n){"use strict";var r=n(113),o=n(814),i=(n(27),n(50),n(247)),a=n(184),s=n(424);function u(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}var c=i(function(e,t,n){e.insertBefore(t,n)});function l(e,t,n){r.insertTreeBefore(e,t,n)}function p(e,t,n){Array.isArray(t)?function(e,t,n,r){var o=t;for(;;){var i=o.nextSibling;if(c(e,o,r),o===n)break;o=i}}(e,t[0],t[1],n):c(e,t,n)}function f(e,t){if(Array.isArray(t)){var n=t[1];h(e,t=t[0],n),e.removeChild(n)}e.removeChild(t)}function h(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}var d={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,replaceDelimitedText:function(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&c(r,document.createTextNode(n),o):n?(s(o,n),h(r,o,t)):h(r,e,t)},processUpdates:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];switch(r.type){case"INSERT_MARKUP":l(e,r.content,u(e,r.afterNode));break;case"MOVE_EXISTING":p(e,r.fromNode,u(e,r.afterNode));break;case"SET_MARKUP":a(e,r.content);break;case"TEXT_CONTENT":s(e,r.content);break;case"REMOVE_NODE":f(e,r.fromNode)}}}};e.exports=d},function(e,t,n){"use strict";e.exports={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}},function(e,t,n){"use strict";e.exports=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}},function(e,t,n){"use strict";var r=n(21),o=n(832),i=n(356)(n(100).isValidElement),a=(n(15),n(23),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0});function s(e){null!=e.checkedLink&&null!=e.valueLink&&r("87")}function u(e){s(e),(null!=e.value||null!=e.onChange)&&r("88")}function c(e){s(e),(null!=e.checked||null!=e.onChange)&&r("89")}var l={value:function(e,t,n){return!e[t]||a[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:i.func},p={};function f(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var h={checkPropTypes:function(e,t,n){for(var r in l){if(l.hasOwnProperty(r))var i=l[r](t,r,e,"prop",null,o);if(i instanceof Error&&!(i.message in p)){p[i.message]=!0;f(n)}}},getValue:function(e){return e.valueLink?(u(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(c(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(u(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(c(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=h},function(e,t,n){"use strict";var r=n(21),o=(n(15),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o&&r("104"),i.replaceNodeWithMarkup=e.replaceNodeWithMarkup,i.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};e.exports=i},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!r.call(t,n[a])||!o(e[n[a]],t[n[a]]))return!1;return!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(21),o=(n(62),n(140)),i=(n(50),n(55));n(15),n(23);function a(e){i.enqueueUpdate(e)}function s(e,t){var n=o.get(e);return n||null}var u={isMounted:function(e){var t=o.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){u.validateCallback(t,n);var r=s(e);if(!r)return null;r._pendingCallbacks?r._pendingCallbacks.push(t):r._pendingCallbacks=[t],a(r)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],a(e)},enqueueForceUpdate:function(e){var t=s(e);t&&(t._pendingForceUpdate=!0,a(t))},enqueueReplaceState:function(e,t,n){var r=s(e);r&&(r._pendingStateQueue=[t],r._pendingReplaceState=!0,null!=n&&(u.validateCallback(n,"replaceState"),r._pendingCallbacks?r._pendingCallbacks.push(n):r._pendingCallbacks=[n]),a(r))},enqueueSetState:function(e,t){var n=s(e);n&&((n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),a(n))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,a(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&r("122",t,function(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=u},function(e,t,n){"use strict";n(25);var r=n(54),o=(n(23),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){var r=n(81),o=n(257),i=n(63),a="[object Object]",s=Function.prototype,u=Object.prototype,c=s.toString,l=u.hasOwnProperty,p=c.call(Object);e.exports=function(e){if(!i(e)||r(e)!=a)return!1;var t=o(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==p}},function(e,t,n){var r=n(377)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(371);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t){
+ */,e.exports=function(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,i=n in document;if(!i){var a=document.createElement("div");a.setAttribute(n,"return;"),i="function"==typeof a[n]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}},function(e,t,n){"use strict";var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function o(e){var t=this.nativeEvent;if(t.getModifierState)return t.getModifierState(e);var n=r[e];return!!n&&!!t[n]}e.exports=function(e){return o}},function(e,t,n){"use strict";var r=n(117),o=n(829),i=(n(27),n(53),n(255)),a=n(187),s=n(431);function u(e,t){return Array.isArray(t)&&(t=t[1]),t?t.nextSibling:e.firstChild}var c=i(function(e,t,n){e.insertBefore(t,n)});function l(e,t,n){r.insertTreeBefore(e,t,n)}function p(e,t,n){Array.isArray(t)?function(e,t,n,r){var o=t;for(;;){var i=o.nextSibling;if(c(e,o,r),o===n)break;o=i}}(e,t[0],t[1],n):c(e,t,n)}function f(e,t){if(Array.isArray(t)){var n=t[1];h(e,t=t[0],n),e.removeChild(n)}e.removeChild(t)}function h(e,t,n){for(;;){var r=t.nextSibling;if(r===n)break;e.removeChild(r)}}var d={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,replaceDelimitedText:function(e,t,n){var r=e.parentNode,o=e.nextSibling;o===t?n&&c(r,document.createTextNode(n),o):n?(s(o,n),h(r,o,t)):h(r,e,t)},processUpdates:function(e,t){for(var n=0;n<t.length;n++){var r=t[n];switch(r.type){case"INSERT_MARKUP":l(e,r.content,u(e,r.afterNode));break;case"MOVE_EXISTING":p(e,r.fromNode,u(e,r.afterNode));break;case"SET_MARKUP":a(e,r.content);break;case"TEXT_CONTENT":s(e,r.content);break;case"REMOVE_NODE":f(e,r.fromNode)}}}};e.exports=d},function(e,t,n){"use strict";e.exports={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"}},function(e,t,n){"use strict";e.exports=function(e){return"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}},function(e,t,n){"use strict";var r=n(21),o=n(847),i=n(361)(n(104).isValidElement),a=(n(15),n(23),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0});function s(e){null!=e.checkedLink&&null!=e.valueLink&&r("87")}function u(e){s(e),(null!=e.value||null!=e.onChange)&&r("88")}function c(e){s(e),(null!=e.checked||null!=e.onChange)&&r("89")}var l={value:function(e,t,n){return!e[t]||a[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:i.func},p={};function f(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var h={checkPropTypes:function(e,t,n){for(var r in l){if(l.hasOwnProperty(r))var i=l[r](t,r,e,"prop",null,o);if(i instanceof Error&&!(i.message in p)){p[i.message]=!0;f(n)}}},getValue:function(e){return e.valueLink?(u(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(c(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(u(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(c(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=h},function(e,t,n){"use strict";var r=n(21),o=(n(15),!1),i={replaceNodeWithMarkup:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){o&&r("104"),i.replaceNodeWithMarkup=e.replaceNodeWithMarkup,i.processChildrenUpdates=e.processChildrenUpdates,o=!0}}};e.exports=i},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}e.exports=function(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var a=0;a<n.length;a++)if(!r.call(t,n[a])||!o(e[n[a]],t[n[a]]))return!1;return!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n=null===e||!1===e,r=null===t||!1===t;if(n||r)return n===r;var o=typeof e,i=typeof t;return"string"===o||"number"===o?"string"===i||"number"===i:"object"===i&&e.type===t.type&&e.key===t.key}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(21),o=(n(65),n(143)),i=(n(53),n(58));n(15),n(23);function a(e){i.enqueueUpdate(e)}function s(e,t){var n=o.get(e);return n||null}var u={isMounted:function(e){var t=o.get(e);return!!t&&!!t._renderedComponent},enqueueCallback:function(e,t,n){u.validateCallback(t,n);var r=s(e);if(!r)return null;r._pendingCallbacks?r._pendingCallbacks.push(t):r._pendingCallbacks=[t],a(r)},enqueueCallbackInternal:function(e,t){e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],a(e)},enqueueForceUpdate:function(e){var t=s(e);t&&(t._pendingForceUpdate=!0,a(t))},enqueueReplaceState:function(e,t,n){var r=s(e);r&&(r._pendingStateQueue=[t],r._pendingReplaceState=!0,null!=n&&(u.validateCallback(n,"replaceState"),r._pendingCallbacks?r._pendingCallbacks.push(n):r._pendingCallbacks=[n]),a(r))},enqueueSetState:function(e,t){var n=s(e);n&&((n._pendingStateQueue||(n._pendingStateQueue=[])).push(t),a(n))},enqueueElementInternal:function(e,t,n){e._pendingElement=t,e._context=n,a(e)},validateCallback:function(e,t){e&&"function"!=typeof e&&r("122",t,function(e){var t=typeof e;if("object"!==t)return t;var n=e.constructor&&e.constructor.name||t,r=Object.keys(e);return r.length>0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=u},function(e,t,n){"use strict";n(25);var r=n(57),o=(n(23),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){var r=n(83),o=n(265),i=n(66),a="[object Object]",s=Function.prototype,u=Object.prototype,c=s.toString,l=u.hasOwnProperty,p=c.call(Object);e.exports=function(e){if(!i(e)||r(e)!=a)return!1;var t=o(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&c.call(n)==p}},function(e,t,n){var r=n(382)(Object.getPrototypeOf,Object);e.exports=r},function(e,t,n){var r=n(376);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},function(e,t){
 /*!
  * https://github.com/Starcounter-Jack/JSON-Patch
  * (c) 2017 Joachim Wester
  * MIT license
  */
 /*!
  * https://github.com/Starcounter-Jack/JSON-Patch
  * (c) 2017 Joachim Wester
  * MIT license
  */
-var n=this&&this.__extends||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},r=Object.prototype.hasOwnProperty;function o(e,t){return r.call(e,t)}function i(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n<t.length;n++)t[n]=""+n;return t}if(Object.keys)return Object.keys(e);t=[];for(var r in e)o(e,r)&&t.push(r);return t}function a(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function s(e,t){var n;for(var r in e)if(o(e,r)){if(e[r]===t)return a(r)+"/";if("object"==typeof e[r]&&""!=(n=s(e[r],t)))return a(r)+"/"+n}return""}function u(e,t){var n=[e];for(var r in t){var o="object"==typeof t[r]?JSON.stringify(t[r],null,2):t[r];void 0!==o&&n.push(r+": "+o)}return n.join("\n")}t.hasOwnProperty=o,t._objectKeys=i,t._deepClone=function(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}},t.isInteger=function(e){for(var t,n=0,r=e.length;n<r;){if(!((t=e.charCodeAt(n))>=48&&t<=57))return!1;n++}return!0},t.escapePathComponent=a,t.unescapePathComponent=function(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")},t._getPathRecursive=s,t.getPath=function(e,t){if(e===t)return"/";var n=s(e,t);if(""===n)throw new Error("Object not found in root");return"/"+n},t.hasUndefined=function e(t){if(void 0===t)return!0;if(t)if(Array.isArray(t)){for(var n=0,r=t.length;n<r;n++)if(e(t[n]))return!0}else if("object"==typeof t){var o=i(t),a=o.length;for(n=0;n<a;n++)if(e(t[o[n]]))return!0}return!1};var c=function(e){function t(t,n,r,o,i){e.call(this,u(t,{name:n,index:r,operation:o,tree:i})),this.name=n,this.index=r,this.operation=o,this.tree=i,this.message=u(t,{name:n,index:r,operation:o,tree:i})}return n(t,e),t}(Error);t.PatchError=c},function(e,t,n){var r=n(60),o=n(203),i=n(79),a=n(154),s=n(940);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,p=6==e,f=5==e||p,h=t||s;return function(t,s,d){for(var m,v,g=i(t),y=o(g),b=r(s,d,3),_=a(y.length),w=0,x=n?h(t,_):u?h(t,0):void 0;_>w;w++)if((f||w in y)&&(v=b(m=y[w],w,g),e))if(n)x[w]=v;else if(v)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:x.push(m)}else if(l)return!1;return p?-1:c||l?l:x}}},function(e,t,n){"use strict";function r(e,t,n,r,o){this.src=e,this.env=r,this.options=n,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent="",this.labelUnmatchedScopes=0}r.prototype.pushPending=function(){this.tokens.push({type:"text",content:this.pending,level:this.pendingLevel}),this.pending=""},r.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},r.prototype.cacheSet=function(e,t){for(var n=this.cache.length;n<=e;n++)this.cache.push(0);this.cache[e]=t},r.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0},e.exports=r},function(e,t,n){var r=n(594)("toUpperCase");e.exports=r},function(e,t,n){var r=n(218),o="Expected a function";function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},function(e,t,n){var r=n(628)(n(665));e.exports=r},function(e,t,n){"use strict";n.r(t);var r=n(266),o=n(43),i=n(269);t.default=function(e){return{statePlugins:{err:{reducers:Object(r.default)(e),actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r=n(2),o=n.n(r),i=n(16),a=n.n(i),s=n(43),u=n(1),c=n(94),l={line:0,level:"error",message:"Unknown error"};t.default=function(e){var t;return t={},o()(t,s.NEW_THROWN_ERR,function(t,n){var r=n.payload,o=a()(l,r,{type:"thrown"});return t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_THROWN_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return Object(u.fromJS)(a()(l,e,{type:"thrown"}))}),t.update("errors",function(e){return(e||Object(u.List)()).concat(Object(u.fromJS)(r))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_SPEC_ERR,function(t,n){var r=n.payload,o=Object(u.fromJS)(r);return o=o.set("type","spec"),t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o)).sortBy(function(e){return e.get("line")})}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_SPEC_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return Object(u.fromJS)(a()(l,e,{type:"spec"}))}),t.update("errors",function(e){return(e||Object(u.List)()).concat(Object(u.fromJS)(r))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_AUTH_ERR,function(t,n){var r=n.payload,o=Object(u.fromJS)(a()({},r));return o=o.set("type","auth"),t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.CLEAR,function(e,t){var n=t.payload;if(!n||!e.get("errors"))return e;var r=e.get("errors").filter(function(e){return e.keySeq().every(function(t){var r=e.get(t),o=n[t];return!o||r!==o})});return e.merge({errors:r})}),o()(t,s.CLEAR_BY,function(e,t){var n=t.payload;if(!n||"function"!=typeof n)return e;var r=e.get("errors").filter(function(e){return n(e)});return e.merge({errors:r})}),t}},function(e,t,n){"use strict";function r(e){return e.map(function(e){var t=e.get("message").indexOf("is not of a type(s)");if(t>-1){var n=e.get("message").slice(t+"is not of a type(s)".length).split(",");return e.set("message",e.get("message").slice(0,t)+function(e){return e.reduce(function(e,t,n,r){return n===r.length-1&&r.length>1?e+"or "+t:r[n+1]&&r.length>2?e+t+", ":r[n+1]?e+t+" ":e+t},"should be a")}(n))}return e})}n.r(t),n.d(t,"transform",function(){return r})},function(e,t,n){"use strict";n.r(t),n.d(t,"transform",function(){return r});n(91),n(1);function r(e,t){t.jsSpec;return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"allErrors",function(){return i}),n.d(t,"lastError",function(){return a});var r=n(1),o=n(11),i=Object(o.createSelector)(function(e){return e},function(e){return e.get("errors",Object(r.List)())}),a=Object(o.createSelector)(i,function(e){return e.last()})},function(e,t,n){"use strict";n.r(t);var r=n(271),o=n(74),i=n(272);t.default=function(){return{statePlugins:{layout:{reducers:r.default,actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(1),s=n(74);t.default=(r={},i()(r,s.UPDATE_LAYOUT,function(e,t){return e.set("layout",t.payload)}),i()(r,s.UPDATE_FILTER,function(e,t){return e.set("filter",t.payload)}),i()(r,s.SHOW,function(e,t){var n=t.payload.shown,r=Object(a.fromJS)(t.payload.thing);return e.update("shown",Object(a.fromJS)({}),function(e){return e.set(r,n)})}),i()(r,s.UPDATE_MODE,function(e,t){var n=t.payload.thing,r=t.payload.mode;return e.setIn(["modes"].concat(n),(r||"")+"")}),r)},function(e,t,n){"use strict";n.r(t),n.d(t,"current",function(){return u}),n.d(t,"currentFilter",function(){return c}),n.d(t,"isShown",function(){return l}),n.d(t,"whatMode",function(){return p}),n.d(t,"showSummary",function(){return f});var r=n(12),o=n.n(r),i=n(11),a=n(3),s=n(1),u=function(e){return e.get("layout")},c=function(e){return e.get("filter")},l=function(e,t,n){return t=Object(a.u)(t),e.get("shown",Object(s.fromJS)({})).get(Object(s.fromJS)(t),n)},p=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t=Object(a.u)(t),e.getIn(["modes"].concat(o()(t)),n)},f=Object(i.createSelector)(function(e){return e},function(e){return!l(e,"editor")})},function(e,t,n){"use strict";n.r(t);var r=n(274),o=n(29),i=n(66),a=n(276);t.default=function(){return{statePlugins:{spec:{wrapActions:a,reducers:r.default,actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(16),s=n.n(a),u=n(12),c=n.n(u),l=n(1),p=n(3),f=n(18),h=n.n(f),d=n(66),m=n(29);t.default=(r={},i()(r,m.UPDATE_SPEC,function(e,t){return"string"==typeof t.payload?e.set("spec",t.payload):e}),i()(r,m.UPDATE_URL,function(e,t){return e.set("url",t.payload+"")}),i()(r,m.UPDATE_JSON,function(e,t){return e.set("json",Object(p.h)(t.payload))}),i()(r,m.UPDATE_RESOLVED,function(e,t){return e.setIn(["resolved"],Object(p.h)(t.payload))}),i()(r,m.UPDATE_RESOLVED_SUBTREE,function(e,t){var n=t.payload,r=n.value,o=n.path;return e.setIn(["resolvedSubtrees"].concat(c()(o)),Object(p.h)(r))}),i()(r,m.UPDATE_PARAM,function(e,t){var n=t.payload,r=n.path,o=n.paramName,i=n.paramIn,a=n.param,s=n.value,u=n.isXml,l=a?Object(p.z)(a):"".concat(i,".").concat(o),f=u?"value_xml":"value";return e.setIn(["meta","paths"].concat(c()(r),["parameters",l,f]),s)}),i()(r,m.UPDATE_EMPTY_PARAM_INCLUSION,function(e,t){var n=t.payload,r=n.pathMethod,o=n.paramName,i=n.paramIn,a=n.includeEmptyValue;if(!o||!i)return console.warn("Warning: UPDATE_EMPTY_PARAM_INCLUSION could not generate a paramKey."),e;var s="".concat(i,".").concat(o);return e.setIn(["meta","paths"].concat(c()(r),["parameter_inclusions",s]),a)}),i()(r,m.VALIDATE_PARAMS,function(e,t){var n=t.payload,r=n.pathMethod,o=n.isOAS3,i=Object(d.specJsonWithResolvedSubtrees)(e).getIn(["paths"].concat(c()(r))),a=Object(d.parameterValues)(e,r).toJS();return e.updateIn(["meta","paths"].concat(c()(r),["parameters"]),Object(l.fromJS)({}),function(t){return i.get("parameters",Object(l.List)()).reduce(function(t,n){var i=Object(p.A)(n,a),s=Object(d.parameterInclusionSettingFor)(e,r,n.get("name"),n.get("in")),u=Object(p.I)(n,i,{bypassRequiredCheck:s,isOAS3:o});return t.setIn([Object(p.z)(n),"errors"],Object(l.fromJS)(u))},t)})}),i()(r,m.CLEAR_VALIDATE_PARAMS,function(e,t){var n=t.payload.pathMethod;return e.updateIn(["meta","paths"].concat(c()(n),["parameters"]),Object(l.fromJS)([]),function(e){return e.map(function(e){return e.set("errors",Object(l.fromJS)([]))})})}),i()(r,m.SET_RESPONSE,function(e,t){var n,r=t.payload,o=r.res,i=r.path,a=r.method;(n=o.error?s()({error:!0,name:o.err.name,message:o.err.message,statusCode:o.err.statusCode},o.err.response):o).headers=n.headers||{};var u=e.setIn(["responses",i,a],Object(p.h)(n));return h.a.Blob&&o.data instanceof h.a.Blob&&(u=u.setIn(["responses",i,a,"text"],o.data)),u}),i()(r,m.SET_REQUEST,function(e,t){var n=t.payload,r=n.req,o=n.path,i=n.method;return e.setIn(["requests",o,i],Object(p.h)(r))}),i()(r,m.SET_MUTATED_REQUEST,function(e,t){var n=t.payload,r=n.req,o=n.path,i=n.method;return e.setIn(["mutatedRequests",o,i],Object(p.h)(r))}),i()(r,m.UPDATE_OPERATION_META_VALUE,function(e,t){var n=t.payload,r=n.path,o=n.value,i=n.key,a=["paths"].concat(c()(r)),s=["meta","paths"].concat(c()(r));return e.getIn(["json"].concat(c()(a)))||e.getIn(["resolved"].concat(c()(a)))||e.getIn(["resolvedSubtrees"].concat(c()(a)))?e.setIn([].concat(c()(s),[i]),Object(l.fromJS)(o)):e}),i()(r,m.CLEAR_RESPONSE,function(e,t){var n=t.payload,r=n.path,o=n.method;return e.deleteIn(["responses",r,o])}),i()(r,m.CLEAR_REQUEST,function(e,t){var n=t.payload,r=n.path,o=n.method;return e.deleteIn(["requests",r,o])}),i()(r,m.SET_SCHEME,function(e,t){var n=t.payload,r=n.scheme,o=n.path,i=n.method;return o&&i?e.setIn(["scheme",o,i],r):o||i?void 0:e.setIn(["scheme","_defaultScheme"],r)}),r)},function(e,t,n){var r=n(81),o=n(35),i=n(63),a="[object String]";e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&r(e)==a}},function(e,t,n){"use strict";n.r(t),n.d(t,"updateSpec",function(){return s}),n.d(t,"updateJsonSpec",function(){return u}),n.d(t,"executeRequest",function(){return c}),n.d(t,"validateParams",function(){return l});var r=n(17),o=n.n(r),i=n(91),a=n.n(i),s=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.parseToJson.apply(n,arguments)}},u=function(e,t){var n=t.specActions;return function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];e.apply(void 0,r),n.invalidateResolvedSubtreeCache();var s=r[0],u=a()(s,["paths"])||{},c=o()(u);c.forEach(function(e){a()(u,[e]).$ref&&n.requestResolvedSubtree(["paths",e])}),n.requestResolvedSubtree(["components","securitySchemes"])}},c=function(e,t){var n=t.specActions;return function(t){return n.logRequest(t),e(t)}},l=function(e,t){var n=t.specSelectors;return function(t){return e(t,n.isOAS3())}}},function(e,t,n){"use strict";n.r(t);var r=n(145),o=n(3);t.default=function(e){var t=e.getComponents,n=e.getStore,i=e.getSystem,a=r.getComponent,s=r.render,u=r.makeMappedContainer,c=Object(o.t)(a.bind(null,i,n,t));return{rootInjects:{getComponent:c,makeMappedContainer:Object(o.t)(u.bind(null,i,n,c,t)),render:s.bind(null,i,n,a,t)}}}},function(e,t,n){"use strict";n.r(t);var r=n(116);t.default=function(){return{fn:r}}},function(e,t,n){"use strict";n.r(t),t.default=function(e){var t=e.configs,n={debug:0,info:1,log:2,warn:3,error:4},r=function(e){return n[e]||-1},o=t.logLevel,i=r(o);function a(e){for(var t,n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];r(e)>=i&&(t=console)[e].apply(t,o)}return a.warn=a.bind(null,"warn"),a.error=a.bind(null,"error"),a.info=a.bind(null,"info"),a.debug=a.bind(null,"debug"),{rootInjects:{log:a}}}},function(e,t,n){"use strict";n.r(t);var r=n(53),o=n.n(r),i=n(281);t.default=function(e){var t=e.configs,n=e.getConfigs;return{fn:{fetch:o.a.makeHttp(t.preFetch,t.postFetch),buildRequest:o.a.buildRequest,execute:o.a.execute,resolve:o.a.resolve,resolveSubtree:function(e,t,r){if(void 0===r){var i=n();r={modelPropertyMacro:i.modelPropertyMacro,parameterMacro:i.parameterMacro,requestInterceptor:i.requestInterceptor,responseInterceptor:i.responseInterceptor}}for(var a=arguments.length,s=new Array(a>3?a-3:0),u=3;u<a;u++)s[u-3]=arguments[u];return o.a.resolveSubtree.apply(o.a,[e,t,r].concat(s))},serializeRes:o.a.serializeRes,opId:o.a.helpers.opId},statePlugins:{configs:{wrapActions:i}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"loaded",function(){return r});var r=function(e,t){return function(){e.apply(void 0,arguments);var n=t.getConfigs().withCredentials;void 0!==n&&(t.fn.fetch.withCredentials="string"==typeof n?"true"===n:!!n)}}},function(e,t,n){"use strict";n.r(t),n.d(t,"preauthorizeBasic",function(){return c}),n.d(t,"preauthorizeApiKey",function(){return l});var r=n(2),o=n.n(r),i=n(283),a=n(67),s=n(284),u=n(285);function c(e,t,n,r){var i=e.authActions.authorize,a=e.specSelectors,s=a.specJson,u=(0,a.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],c=s().getIn([].concat(u,[t]));return c?i(o()({},t,{value:{username:n,password:r},schema:c.toJS()})):null}function l(e,t,n){var r=e.authActions.authorize,i=e.specSelectors,a=i.specJson,s=(0,i.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],u=a().getIn([].concat(s,[t]));return u?r(o()({},t,{value:n,schema:u.toJS()})):null}t.default=function(){return{afterLoad:function(e){this.rootInjects=this.rootInjects||{},this.rootInjects.initOAuth=e.authActions.configureAuth,this.rootInjects.preauthorizeApiKey=l.bind(null,e),this.rootInjects.preauthorizeBasic=c.bind(null,e)},statePlugins:{auth:{reducers:i.default,actions:a,selectors:s},spec:{wrapActions:u}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(16),s=n.n(a),u=n(13),c=n.n(u),l=n(1),p=n(3),f=n(67);t.default=(r={},i()(r,f.SHOW_AUTH_POPUP,function(e,t){var n=t.payload;return e.set("showDefinitions",n)}),i()(r,f.AUTHORIZE,function(e,t){var n=t.payload,r=Object(l.fromJS)(n),o=e.get("authorized")||Object(l.Map)();return r.entrySeq().forEach(function(e){var t=c()(e,2),n=t[0],r=t[1],i=r.getIn(["schema","type"]);if("apiKey"===i||"http"===i)o=o.set(n,r);else if("basic"===i){var a=r.getIn(["value","username"]),s=r.getIn(["value","password"]);o=(o=o.setIn([n,"value"],{username:a,header:"Basic "+Object(p.a)(a+":"+s)})).setIn([n,"schema"],r.get("schema"))}}),e.set("authorized",o)}),i()(r,f.AUTHORIZE_OAUTH2,function(e,t){var n,r=t.payload,o=r.auth,i=r.token;return o.token=s()({},i),n=Object(l.fromJS)(o),e.setIn(["authorized",n.get("name")],n)}),i()(r,f.LOGOUT,function(e,t){var n=t.payload,r=e.get("authorized").withMutations(function(e){n.forEach(function(t){e.delete(t)})});return e.set("authorized",r)}),i()(r,f.CONFIGURE_AUTH,function(e,t){var n=t.payload;return e.set("configs",n)}),r)},function(e,t,n){"use strict";n.r(t),n.d(t,"shownDefinitions",function(){return l}),n.d(t,"definitionsToAuthorize",function(){return p}),n.d(t,"getDefinitionsByNames",function(){return f}),n.d(t,"definitionsForRequirements",function(){return h}),n.d(t,"authorized",function(){return d}),n.d(t,"isAuthorized",function(){return m}),n.d(t,"getConfigs",function(){return v});var r=n(17),o=n.n(r),i=n(13),a=n.n(i),s=n(11),u=n(1),c=function(e){return e},l=Object(s.createSelector)(c,function(e){return e.get("showDefinitions")}),p=Object(s.createSelector)(c,function(){return function(e){var t=e.specSelectors.securityDefinitions()||Object(u.Map)({}),n=Object(u.List)();return t.entrySeq().forEach(function(e){var t=a()(e,2),r=t[0],o=t[1],i=Object(u.Map)();i=i.set(r,o),n=n.push(i)}),n}}),f=function(e,t){return function(e){var n=e.specSelectors;console.warn("WARNING: getDefinitionsByNames is deprecated and will be removed in the next major version.");var r=n.securityDefinitions(),o=Object(u.List)();return t.valueSeq().forEach(function(e){var t=Object(u.Map)();e.entrySeq().forEach(function(e){var n,o=a()(e,2),i=o[0],s=o[1],u=r.get(i);"oauth2"===u.get("type")&&s.size&&((n=u.get("scopes")).keySeq().forEach(function(e){s.contains(e)||(n=n.delete(e))}),u=u.set("allowedScopes",n)),t=t.set(i,u)}),o=o.push(t)}),o}},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object(u.List)();return function(e){return(e.authSelectors.definitionsToAuthorize()||Object(u.List)()).filter(function(e){return t.some(function(t){return t.get(e.keySeq().first())})})}},d=Object(s.createSelector)(c,function(e){return e.get("authorized")||Object(u.Map)()}),m=function(e,t){return function(e){var n=e.authSelectors.authorized();return u.List.isList(t)?!!t.toJS().filter(function(e){return-1===o()(e).map(function(e){return!!n.get(e)}).indexOf(!1)}).length:null}},v=Object(s.createSelector)(c,function(e){return e.get("configs")})},function(e,t,n){"use strict";n.r(t),n.d(t,"execute",function(){return y});var r=n(51),o=n.n(r),i=n(92),a=n.n(i),s=n(57),u=n.n(s),c=n(58),l=n.n(c),p=n(52),f=n.n(p),h=n(17),d=n.n(h),m=n(2),v=n.n(m);function g(e,t){var n=d()(e);if(f.a){var r=f()(e);t&&(r=r.filter(function(t){return l()(e,t).enumerable})),n.push.apply(n,r)}return n}var y=function(e,t){var n=t.authSelectors,r=t.specSelectors;return function(t){var i=t.path,s=t.method,c=t.operation,p=t.extras,f={authorized:n.authorized()&&n.authorized().toJS(),definitions:r.securityDefinitions()&&r.securityDefinitions().toJS(),specSecurity:r.security()&&r.security().toJS()};return e(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(n,!0).forEach(function(t){v()(e,t,n[t])}):u.a?a()(e,u()(n)):g(n).forEach(function(t){o()(e,t,l()(n,t))})}return e}({path:i,method:s,operation:c,securities:f},p))}}},function(e,t,n){"use strict";n.r(t);var r=n(3);t.default=function(){return{fn:{shallowEqualKeys:r.E}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return p});var r=n(28),o=n.n(r),i=n(16),a=n.n(i),s=n(11),u=n(1),c=n(18),l=n.n(c);function p(e){var t=e.fn;return{statePlugins:{spec:{actions:{download:function(e){return function(n){var r=n.errActions,o=n.specSelectors,i=n.specActions,s=n.getConfigs,u=t.fetch,c=s();function p(t){if(t instanceof Error||t.status>=400)return i.updateLoadingStatus("failed"),r.newThrownErr(a()(new Error((t.message||t.statusText)+" "+e),{source:"fetch"})),void(!t.status&&t instanceof Error&&function(){try{var t;if("URL"in l.a?t=new URL(e):(t=document.createElement("a")).href=e,"https:"!==t.protocol&&"https:"===l.a.location.protocol){var n=a()(new Error("Possible mixed-content issue? The page was loaded over https:// but a ".concat(t.protocol,"// URL was specified. Check that you are not attempting to load mixed content.")),{source:"fetch"});return void r.newThrownErr(n)}if(t.origin!==l.a.location.origin){var o=a()(new Error("Possible cross-origin (CORS) issue? The URL origin (".concat(t.origin,") does not match the page (").concat(l.a.location.origin,"). Check the server returns the correct 'Access-Control-Allow-*' headers.")),{source:"fetch"});r.newThrownErr(o)}}catch(e){return}}());i.updateLoadingStatus("success"),i.updateSpec(t.text),o.url()!==e&&i.updateUrl(e)}e=e||o.url(),i.updateLoadingStatus("loading"),r.clear({source:"fetch"}),u({url:e,loadSpec:!0,requestInterceptor:c.requestInterceptor||function(e){return e},responseInterceptor:c.responseInterceptor||function(e){return e},credentials:"same-origin",headers:{Accept:"application/json,*/*"}}).then(p,p)}},updateLoadingStatus:function(e){var t=[null,"loading","failed","success","failedConfig"];return-1===t.indexOf(e)&&console.error("Error: ".concat(e," is not one of ").concat(o()(t))),{type:"spec_update_loading_status",payload:e}}},reducers:{spec_update_loading_status:function(e,t){return"string"==typeof t.payload?e.set("loadingStatus",t.payload):e}},selectors:{loadingStatus:Object(s.createSelector)(function(e){return e||Object(u.Map)()},function(e){return e.get("loadingStatus")||null})}}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"downloadConfig",function(){return o}),n.d(t,"getConfigByUrl",function(){return i});var r=n(144),o=function(e){return function(t){return(0,t.fn.fetch)(e)}},i=function(e,t){return function(n){var o=n.specActions;if(e)return o.downloadConfig(e).then(i,i);function i(n){n instanceof Error||n.status>=400?(o.updateLoadingStatus("failedConfig"),o.updateLoadingStatus("failedConfig"),o.updateUrl(""),console.error(n.statusText+" "+e.url),t(null)):t(Object(r.parseYamlConfig)(n.text))}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"get",function(){return i});var r=n(14),o=n.n(r),i=function(e,t){return e.getIn(o()(t)?t:[t])}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(1),s=n(117);t.default=(r={},i()(r,s.UPDATE_CONFIGS,function(e,t){return e.merge(Object(a.fromJS)(t.payload))}),i()(r,s.TOGGLE_CONFIGS,function(e,t){var n=t.payload,r=e.get(n);return e.set(n,!r)}),r)},function(e,t,n){"use strict";n.r(t);var r=n(292),o=n(293),i=n(294);t.default=function(){return[r.default,{statePlugins:{configs:{wrapActions:{loaded:function(e,t){return function(){e.apply(void 0,arguments);var n=decodeURIComponent(window.location.hash);t.layoutActions.parseDeepLinkHash(n)}}}}},wrapComponents:{operation:o.default,OperationTag:i.default}}]}},function(e,t,n){"use strict";n.r(t),n.d(t,"show",function(){return v}),n.d(t,"scrollTo",function(){return g}),n.d(t,"parseDeepLinkHash",function(){return y}),n.d(t,"readyToScroll",function(){return b}),n.d(t,"scrollToElement",function(){return _}),n.d(t,"clearScrollTo",function(){return w});var r,o=n(2),i=n.n(o),a=n(13),s=n.n(a),u=n(14),c=n.n(u),l=n(146),p=n(474),f=n.n(p),h=n(3),d=n(1),m=n.n(d),v=function(e,t){var n=t.getConfigs,r=t.layoutSelectors;return function(){for(var t=arguments.length,o=new Array(t),i=0;i<t;i++)o[i]=arguments[i];if(e.apply(void 0,o),n().deepLinking)try{var a=o[0],u=o[1];a=c()(a)?a:[a];var p=r.urlHashArrayFromIsShownKey(a);if(!p.length)return;var f=s()(p,2),d=f[0],m=f[1];if(!u)return Object(l.setHash)("/");2===p.length?Object(l.setHash)(Object(h.c)("/".concat(encodeURIComponent(d),"/").concat(encodeURIComponent(m)))):1===p.length&&Object(l.setHash)(Object(h.c)("/".concat(encodeURIComponent(d))))}catch(e){console.error(e)}}},g=function(e){return{type:"layout_scroll_to",payload:c()(e)?e:[e]}},y=function(e){return function(t){var n=t.layoutActions,r=t.layoutSelectors;if((0,t.getConfigs)().deepLinking&&e){var o=e.slice(1);"!"===o[0]&&(o=o.slice(1)),"/"===o[0]&&(o=o.slice(1));var i=o.split("/").map(function(e){return e||""}),a=r.isShownKeyFromUrlHashArray(i),u=s()(a,3),c=u[0],l=u[1],p=void 0===l?"":l,f=u[2],h=void 0===f?"":f;if("operations"===c){var d=r.isShownKeyFromUrlHashArray([p]);p.indexOf("_")>-1&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(d.map(function(e){return e.replace(/_/g," ")}),!0)),n.show(d,!0)}(p.indexOf("_")>-1||h.indexOf("_")>-1)&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(a.map(function(e){return e.replace(/_/g," ")}),!0)),n.show(a,!0),n.scrollTo(a)}}},b=function(e,t){return function(n){var r=n.layoutSelectors.getScrollToKey();m.a.is(r,Object(d.fromJS)(e))&&(n.layoutActions.scrollToElement(t),n.layoutActions.clearScrollTo())}},_=function(e,t){return function(n){try{t=t||n.fn.getScrollParent(e),f.a.createScroller(t).to(e)}catch(e){console.error(e)}}},w=function(){return{type:"layout_clear_scroll"}};t.default={fn:{getScrollParent:function(e,t){var n=document.documentElement,r=getComputedStyle(e),o="absolute"===r.position,i=t?/(auto|scroll|hidden)/:/(auto|scroll)/;if("fixed"===r.position)return n;for(var a=e;a=a.parentElement;)if(r=getComputedStyle(a),(!o||"static"!==r.position)&&i.test(r.overflow+r.overflowY+r.overflowX))return a;return n}},statePlugins:{layout:{actions:{scrollToElement:_,scrollTo:g,clearScrollTo:w,readyToScroll:b,parseDeepLinkHash:y},selectors:{getScrollToKey:function(e){return e.get("scrollToKey")},isShownKeyFromUrlHashArray:function(e,t){var n=s()(t,2),r=n[0],o=n[1];return o?["operations",r,o]:r?["operations-tag",r]:[]},urlHashArrayFromIsShownKey:function(e,t){var n=s()(t,3),r=n[0],o=n[1],i=n[2];return"operations"==r?[o,i]:"operations-tag"==r?[o]:[]}},reducers:(r={},i()(r,"layout_scroll_to",function(e,t){return e.set("scrollToKey",m.a.fromJS(t.payload))}),i()(r,"layout_clear_scroll",function(e){return e.delete("scrollToKey")}),r),wrapActions:{show:v}}}}},function(e,t,n){"use strict";n.r(t);var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g);n(19);t.default=function(e,t){return function(n){function r(){var e,n;o()(this,r);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return n=u()(this,(e=l()(r)).call.apply(e,[this].concat(a))),v()(f()(n),"onLoad",function(e){var r=n.props.operation.toObject(),o=["operations",r.tag,r.operationId];t.layoutActions.readyToScroll(o,e)}),n}return d()(r,n),a()(r,[{key:"render",value:function(){return y.a.createElement("span",{ref:this.onLoad},y.a.createElement(e,this.props))}}]),r}(y.a.Component)}},function(e,t,n){"use strict";n.r(t);var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g);n(10);t.default=function(e,t){return function(n){function r(){var e,n;o()(this,r);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return n=u()(this,(e=l()(r)).call.apply(e,[this].concat(a))),v()(f()(n),"onLoad",function(e){var r=["operations-tag",n.props.tag];t.layoutActions.readyToScroll(r,e)}),n}return d()(r,n),a()(r,[{key:"render",value:function(){return y.a.createElement("span",{ref:this.onLoad},y.a.createElement(e,this.props))}}]),r}(y.a.Component)}},function(e,t,n){"use strict";n.r(t);var r=n(296);t.default=function(){return{fn:{opsFilter:r.default}}}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){return e.filter(function(e,n){return-1!==n.indexOf(t)})}},function(e,t,n){"use strict";n.r(t);var r=!1;t.default=function(){return{statePlugins:{spec:{wrapActions:{updateSpec:function(e){return function(){return r=!0,e.apply(void 0,arguments)}},updateJsonSpec:function(e,t){return function(){var n=t.getConfigs().onComplete;return r&&"function"==typeof n&&(setTimeout(n,0),r=!1),e.apply(void 0,arguments)}}}}}}}},function(e,t,n){"use strict";n.r(t);var r=n(299),o=n(300),i=n(301),a=n(302),s=n(311),u=n(59),c=n(318),l=n(319);t.default=function(){return{components:a.default,wrapComponents:s.default,statePlugins:{spec:{wrapSelectors:r,selectors:i},auth:{wrapSelectors:o},oas3:{actions:u,reducers:l.default,selectors:c}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"definitions",function(){return h}),n.d(t,"hasHost",function(){return d}),n.d(t,"securityDefinitions",function(){return m}),n.d(t,"host",function(){return v}),n.d(t,"basePath",function(){return g}),n.d(t,"consumes",function(){return y}),n.d(t,"produces",function(){return b}),n.d(t,"schemes",function(){return _}),n.d(t,"servers",function(){return w}),n.d(t,"isOAS3",function(){return x}),n.d(t,"isSwagger2",function(){return E});var r=n(11),o=n(66),i=n(1),a=n(24);function s(e){return function(t,n){return function(){var r=n.getSystem().specSelectors.specJson();return Object(a.isOAS3)(r)?e.apply(void 0,arguments):t.apply(void 0,arguments)}}}var u=function(e){return e||Object(i.Map)()},c=s(Object(r.createSelector)(function(){return null})),l=Object(r.createSelector)(u,function(e){return e.get("json",Object(i.Map)())}),p=Object(r.createSelector)(u,function(e){return e.get("resolved",Object(i.Map)())}),f=function(e){var t=p(e);return t.count()<1&&(t=l(e)),t},h=s(Object(r.createSelector)(f,function(e){var t=e.getIn(["components","schemas"]);return i.Map.isMap(t)?t:Object(i.Map)()})),d=s(function(e){return f(e).hasIn(["servers",0])}),m=s(Object(r.createSelector)(o.specJsonWithResolvedSubtrees,function(e){return e.getIn(["components","securitySchemes"])||null})),v=c,g=c,y=c,b=c,_=c,w=s(Object(r.createSelector)(f,function(e){return e.getIn(["servers"])||Object(i.Map)()})),x=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(a.isOAS3)(i.Map.isMap(e)?e:Object(i.Map)())}},E=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(a.isSwagger2)(i.Map.isMap(e)?e:Object(i.Map)())}}},function(e,t,n){"use strict";n.r(t),n.d(t,"definitionsToAuthorize",function(){return p});var r=n(2),o=n.n(r),i=n(13),a=n.n(i),s=n(11),u=n(1),c=n(24);var l,p=(l=Object(s.createSelector)(function(e){return e},function(e){return e.specSelectors.securityDefinitions()},function(e,t){var n=Object(u.List)();return t?(t.entrySeq().forEach(function(e){var t=a()(e,2),r=t[0],i=t[1],s=i.get("type");"oauth2"===s&&i.get("flows").entrySeq().forEach(function(e){var t=a()(e,2),s=t[0],c=t[1],l=Object(u.fromJS)({flow:s,authorizationUrl:c.get("authorizationUrl"),tokenUrl:c.get("tokenUrl"),scopes:c.get("scopes"),type:i.get("type")});n=n.push(new u.Map(o()({},r,l.filter(function(e){return void 0!==e}))))}),"http"!==s&&"apiKey"!==s||(n=n.push(new u.Map(o()({},r,i))))}),n):n}),function(e,t){return function(n){for(var r=t.getSystem().specSelectors.specJson(),o=arguments.length,i=new Array(o>1?o-1:0),a=1;a<o;a++)i[a-1]=arguments[a];return Object(c.isOAS3)(r)?l.apply(void 0,[t].concat(i)):e.apply(void 0,i)}})},function(e,t,n){"use strict";n.r(t),n.d(t,"servers",function(){return l}),n.d(t,"isSwagger2",function(){return p});var r=n(11),o=n(1),i=n(24);var a,s=function(e){return e||Object(o.Map)()},u=Object(r.createSelector)(s,function(e){return e.get("json",Object(o.Map)())}),c=Object(r.createSelector)(s,function(e){return e.get("resolved",Object(o.Map)())}),l=(a=Object(r.createSelector)(function(e){var t=c(e);return t.count()<1&&(t=u(e)),t},function(e){return e.getIn(["servers"])||Object(o.Map)()}),function(){return function(e){var t=e.getSystem().specSelectors.specJson();if(Object(i.isOAS3)(t)){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return a.apply(void 0,r)}return null}}),p=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(i.isSwagger2)(e)}}},function(e,t,n){"use strict";n.r(t);var r=n(303),o=n(304),i=n(305),a=n(306),s=n(307),u=n(308),c=n(309),l=n(310);t.default={Callbacks:r.default,HttpAuth:c.default,RequestBody:o.default,Servers:a.default,ServersContainer:s.default,RequestBodyEditor:u.default,OperationServers:l.default,operationLink:i.default}},function(e,t,n){"use strict";n.r(t);var r=n(20),o=n.n(r),i=n(0),a=n.n(i),s=(n(10),n(19),n(1));t.default=function(e){var t=e.callbacks,n=e.getComponent,r=e.specPath,i=n("OperationContainer",!0);if(!t)return a.a.createElement("span",null,"No callbacks");var u=t.map(function(t,n){return a.a.createElement("div",{key:n},a.a.createElement("h2",null,n),t.map(function(t,u){return"$$ref"===u?null:a.a.createElement("div",{key:u},t.map(function(t,c){if("$$ref"===c)return null;var l=Object(s.fromJS)({operation:t});return a.a.createElement(i,o()({},e,{op:l,key:c,tag:"",method:c,path:u,specPath:r.push(n,u,c),allowTryItOut:!1}))}))}))});return a.a.createElement("div",null,u)}},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=(n(10),n(19),n(1)),a=n(3);function s(e,t,n){var r=e.getIn(["content",t]),o=r.get("schema").toJS(),i=void 0!==r.get("example")?Object(a.G)(r.get("example")):null,s=r.getIn(["examples",n,"value"]);return r.get("examples")?Object(a.G)(s)||"":Object(a.G)(i||Object(a.m)(o,t,{includeWriteOnly:!0})||"")}t.default=function(e){var t=e.requestBody,n=e.requestBodyValue,r=e.getComponent,u=e.getConfigs,c=e.specSelectors,l=e.fn,p=e.contentType,f=e.isExecute,h=e.specPath,d=e.onChange,m=e.activeExamplesKey,v=e.updateActiveExamplesKey,g=r("Markdown"),y=r("modelExample"),b=r("RequestBodyEditor"),_=r("highlightCode"),w=r("ExamplesSelectValueRetainer"),x=r("Example"),E=u().showCommonExtensions,S=t&&t.get("description")||null,C=t&&t.get("content")||new i.OrderedMap;p=p||C.keySeq().first()||"";var k=C.get(p,Object(i.OrderedMap)()),O=k.get("schema",Object(i.OrderedMap)()),A=k.get("examples",null);if(!k.size)return null;var T="object"===k.getIn(["schema","type"]);if("application/octet-stream"===p||0===p.indexOf("image/")||0===p.indexOf("audio/")||0===p.indexOf("video/")){var j=r("Input");return f?o.a.createElement(j,{type:"file",onChange:function(e){d(e.target.files[0])}}):o.a.createElement("i",null,"Example values are not available for ",o.a.createElement("code",null,"application/octet-stream")," media types.")}if(T&&("application/x-www-form-urlencoded"===p||0===p.indexOf("multipart/"))&&O.get("properties",Object(i.OrderedMap)()).size>0){var P=r("JsonSchemaForm"),I=r("ParameterExt"),M=O.get("properties",Object(i.OrderedMap)());return n=i.Map.isMap(n)?n:Object(i.OrderedMap)(),o.a.createElement("div",{className:"table-container"},S&&o.a.createElement(g,{source:S}),o.a.createElement("table",null,o.a.createElement("tbody",null,M.map(function(e,t){var s=E?Object(a.j)(e):null,u=O.get("required",Object(i.List)()).includes(t),c=e.get("type"),p=e.get("format"),h=e.get("description"),m=n.get(t),v=e.get("default")||e.get("example")||"";""===v&&"object"===c&&(v=Object(a.m)(e,!1,{includeWriteOnly:!0})),"string"!=typeof v&&"object"===c&&(v=Object(a.G)(v));var y="string"===c&&("binary"===p||"base64"===p);return o.a.createElement("tr",{key:t,className:"parameters","data-property-name":t},o.a.createElement("td",{className:"parameters-col_name"},o.a.createElement("div",{className:u?"parameter__name required":"parameter__name"},t,u?o.a.createElement("span",{style:{color:"red"}}," *"):null),o.a.createElement("div",{className:"parameter__type"},c,p&&o.a.createElement("span",{className:"prop-format"},"($",p,")"),E&&s.size?s.map(function(e,t){return o.a.createElement(I,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null),o.a.createElement("div",{className:"parameter__deprecated"},e.get("deprecated")?"deprecated":null)),o.a.createElement("td",{className:"parameters-col_description"},o.a.createElement(g,{source:h}),f?o.a.createElement("div",null,o.a.createElement(P,{fn:l,dispatchInitialValue:!y,schema:e,description:t,getComponent:r,value:void 0===m?v:m,onChange:function(e){d(e,[t])}})):null))}))))}return o.a.createElement("div",null,S&&o.a.createElement(g,{source:S}),A?o.a.createElement(w,{examples:A,currentKey:m,currentUserInputValue:n,onSelect:function(e){v(e)},updateValue:d,defaultToFirstExample:!0,getComponent:r}):null,f?o.a.createElement("div",null,o.a.createElement(b,{value:n,defaultValue:s(t,p,m),onChange:d,getComponent:r})):o.a.createElement(y,{getComponent:r,getConfigs:u,specSelectors:c,expandDepth:1,isExecute:f,schema:k.get("schema"),specPath:h.push("content",p),example:o.a.createElement(_,{className:"body-param__example",value:Object(a.G)(n)||s(t,p,m)})}),A?o.a.createElement(x,{example:A.get(m),getComponent:r}):null)}},function(e,t,n){"use strict";n.r(t);var r=n(28),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(8),d=n.n(h),m=n(0),v=n.n(m),g=(n(10),n(19),function(e){function t(){return a()(this,t),l()(this,f()(t).apply(this,arguments))}return d()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.link,n=e.name,r=(0,e.getComponent)("Markdown"),i=t.get("operationId")||t.get("operationRef"),a=t.get("parameters")&&t.get("parameters").toJS(),s=t.get("description");return v.a.createElement("div",{style:{marginBottom:"1.5em"}},v.a.createElement("div",{style:{marginBottom:".5em"}},v.a.createElement("b",null,v.a.createElement("code",null,n)),s?v.a.createElement(r,{source:s}):null),v.a.createElement("pre",null,"Operation `",i,"`",v.a.createElement("br",null),v.a.createElement("br",null),"Parameters ",function(e,t){if("string"!=typeof t)return"";return t.split("\n").map(function(t,n){return n>0?Array(e+1).join(" ")+t:t}).join("\n")}(0,o()(a,null,2))||"{}",v.a.createElement("br",null)))}}]),t}(m.Component));t.default=g},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return _});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g),b=n(1),_=(n(10),n(19),function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=u()(this,(e=l()(t)).call.apply(e,[this].concat(i))),v()(f()(n),"onServerChange",function(e){n.setServer(e.target.value)}),v()(f()(n),"onServerVariableValueChange",function(e){var t=n.props,r=t.setServerVariableValue,o=t.currentServer,i=e.target.getAttribute("data-variable"),a=e.target.value;"function"==typeof r&&r({server:o,key:i,val:a})}),v()(f()(n),"setServer",function(e){(0,n.props.setSelectedServer)(e)}),n}return d()(t,e),a()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.servers;e.currentServer||this.setServer(t.first().get("url"))}},{key:"componentWillReceiveProps",value:function(e){var t=this.props,n=t.servers,r=t.setServerVariableValue,o=t.getServerVariable;if(this.props.currentServer!==e.currentServer){var i=n.find(function(t){return t.get("url")===e.currentServer});if(!i)return this.setServer(n.first().get("url"));(i.get("variables")||Object(b.OrderedMap)()).map(function(t,n){o(e.currentServer,n)||r({server:e.currentServer,key:n,val:t.get("default")||""})})}}},{key:"render",value:function(){var e=this,t=this.props,n=t.servers,r=t.currentServer,o=t.getServerVariable,i=t.getEffectiveServerValue,a=(n.find(function(e){return e.get("url")===r})||Object(b.OrderedMap)()).get("variables")||Object(b.OrderedMap)(),s=0!==a.size;return y.a.createElement("div",{className:"servers"},y.a.createElement("label",{htmlFor:"servers"},y.a.createElement("select",{onChange:this.onServerChange},n.valueSeq().map(function(e){return y.a.createElement("option",{value:e.get("url"),key:e.get("url")},e.get("url"),e.get("description")&&" - ".concat(e.get("description")))}).toArray())),s?y.a.createElement("div",null,y.a.createElement("div",{className:"computed-url"},"Computed URL:",y.a.createElement("code",null,i(r))),y.a.createElement("h4",null,"Server variables"),y.a.createElement("table",null,y.a.createElement("tbody",null,a.map(function(t,n){return y.a.createElement("tr",{key:n},y.a.createElement("td",null,n),y.a.createElement("td",null,t.get("enum")?y.a.createElement("select",{"data-variable":n,onChange:e.onServerVariableValueChange},t.get("enum").map(function(e){return y.a.createElement("option",{selected:e===o(r,n),key:e,value:e},e)})):y.a.createElement("input",{type:"text",value:o(r,n)||"",onChange:e.onServerVariableValueChange,"data-variable":n})))})))):null)}}]),t}(y.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(8),f=n.n(p),h=n(0),d=n.n(h),m=(n(10),function(e){function t(){return o()(this,t),u()(this,l()(t).apply(this,arguments))}return f()(t,e),a()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.oas3Selectors,r=e.oas3Actions,o=e.getComponent,i=t.servers(),a=o("Servers");return i&&i.size?d.a.createElement("div",null,d.a.createElement("span",{className:"servers-title"},"Servers"),d.a.createElement(a,{servers:i,currentServer:n.selectedServer(),setSelectedServer:r.setSelectedServer,setServerVariableValue:r.setServerVariableValue,getServerVariable:n.serverVariableValue,getEffectiveServerValue:n.serverEffectiveValue})):null}}]),t}(d.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g),b=(n(10),n(3)),_=Function.prototype,w=function(e){function t(e,n){var r;return o()(this,t),r=u()(this,l()(t).call(this,e,n)),v()(f()(r),"applyDefaultValue",function(e){var t=e||r.props,n=t.onChange,o=t.defaultValue;return r.setState({value:o}),n(o)}),v()(f()(r),"onChange",function(e){r.props.onChange(Object(b.G)(e))}),v()(f()(r),"onDomChange",function(e){var t=e.target.value;r.setState({value:t},function(){return r.onChange(t)})}),r.state={value:Object(b.G)(e.value)||e.defaultValue},e.onChange(e.value),r}return d()(t,e),a()(t,[{key:"componentWillReceiveProps",value:function(e){this.props.value!==e.value&&e.value!==this.state.value&&this.setState({value:Object(b.G)(e.value)}),!e.value&&e.defaultValue&&this.state.value&&this.applyDefaultValue(e)}},{key:"render",value:function(){var e=this.props.getComponent,t=this.state.value,n=e("TextArea");return y.a.createElement("div",{className:"body-param"},y.a.createElement(n,{className:"body-param__text",value:t,onChange:this.onDomChange}))}}]),t}(g.PureComponent);v()(w,"defaultProps",{onChange:_})},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});var r=n(16),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(9),d=n.n(h),m=n(8),v=n.n(m),g=n(2),y=n.n(g),b=n(0),_=n.n(b),w=(n(10),function(e){function t(e,n){var r;a()(this,t),r=l()(this,f()(t).call(this,e,n)),y()(d()(r),"onChange",function(e){var t=r.props.onChange,n=e.target,i=n.value,a=n.name,s=o()({},r.state.value);a?s[a]=i:s=i,r.setState({value:s},function(){return t(r.state)})});var i=r.props,s=i.name,u=i.schema,c=r.getValue();return r.state={name:s,schema:u,value:c},r}return v()(t,e),u()(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,o=e.name,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=(t.get("scheme")||"").toLowerCase(),f=this.getValue(),h=r.allErrors().filter(function(e){return e.get("authId")===o});if("basic"===p){var d=f?f.get("username"):null;return _.a.createElement("div",null,_.a.createElement("h4",null,_.a.createElement("code",null,o||t.get("name")),"  (http, Basic)",_.a.createElement(l,{path:["securityDefinitions",o]})),d&&_.a.createElement("h6",null,"Authorized"),_.a.createElement(a,null,_.a.createElement(c,{source:t.get("description")})),_.a.createElement(a,null,_.a.createElement("label",null,"Username:"),d?_.a.createElement("code",null," ",d," "):_.a.createElement(s,null,_.a.createElement(i,{type:"text",required:"required",name:"username",onChange:this.onChange}))),_.a.createElement(a,null,_.a.createElement("label",null,"Password:"),d?_.a.createElement("code",null," ****** "):_.a.createElement(s,null,_.a.createElement(i,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),h.valueSeq().map(function(e,t){return _.a.createElement(u,{error:e,key:t})}))}return"bearer"===p?_.a.createElement("div",null,_.a.createElement("h4",null,_.a.createElement("code",null,o||t.get("name")),"  (http, Bearer)",_.a.createElement(l,{path:["securityDefinitions",o]})),f&&_.a.createElement("h6",null,"Authorized"),_.a.createElement(a,null,_.a.createElement(c,{source:t.get("description")})),_.a.createElement(a,null,_.a.createElement("label",null,"Value:"),f?_.a.createElement("code",null," ****** "):_.a.createElement(s,null,_.a.createElement(i,{type:"text",onChange:this.onChange}))),h.valueSeq().map(function(e,t){return _.a.createElement(u,{error:e,key:t})})):_.a.createElement("div",null,_.a.createElement("em",null,_.a.createElement("b",null,o)," HTTP authentication: unsupported scheme ","'".concat(p,"'")))}}]),t}(_.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return I});var r=n(51),o=n.n(r),i=n(92),a=n.n(i),s=n(57),u=n.n(s),c=n(58),l=n.n(c),p=n(52),f=n.n(p),h=n(17),d=n.n(h),m=n(4),v=n.n(m),g=n(5),y=n.n(g),b=n(6),_=n.n(b),w=n(7),x=n.n(w),E=n(9),S=n.n(E),C=n(8),k=n.n(C),O=n(2),A=n.n(O),T=n(0),j=n.n(T);n(10),n(19);function P(e,t){var n=d()(e);if(f.a){var r=f()(e);t&&(r=r.filter(function(t){return l()(e,t).enumerable})),n.push.apply(n,r)}return n}var I=function(e){function t(){var e,n;v()(this,t);for(var r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];return n=_()(this,(e=x()(t)).call.apply(e,[this].concat(i))),A()(S()(n),"setSelectedServer",function(e){var t=n.props,r=t.path,o=t.method;return n.forceUpdate(),n.props.setSelectedServer(e,"".concat(r,":").concat(o))}),A()(S()(n),"setServerVariableValue",function(e){var t=n.props,r=t.path,i=t.method;return n.forceUpdate(),n.props.setServerVariableValue(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(n,!0).forEach(function(t){A()(e,t,n[t])}):u.a?a()(e,u()(n)):P(n).forEach(function(t){o()(e,t,l()(n,t))})}return e}({},e,{namespace:"".concat(r,":").concat(i)}))}),A()(S()(n),"getSelectedServer",function(){var e=n.props,t=e.path,r=e.method;return n.props.getSelectedServer("".concat(t,":").concat(r))}),A()(S()(n),"getServerVariable",function(e,t){var r=n.props,o=r.path,i=r.method;return n.props.getServerVariable({namespace:"".concat(o,":").concat(i),server:e},t)}),A()(S()(n),"getEffectiveServerValue",function(e){var t=n.props,r=t.path,o=t.method;return n.props.getEffectiveServerValue({server:e,namespace:"".concat(r,":").concat(o)})}),n}return k()(t,e),y()(t,[{key:"render",value:function(){var e=this.props,t=e.operationServers,n=e.pathServers,r=e.getComponent;if(!t&&!n)return null;var o=r("Servers"),i=t||n,a=t?"operation":"path";return j.a.createElement("div",{className:"opblock-section operation-servers"},j.a.createElement("div",{className:"opblock-section-header"},j.a.createElement("div",{className:"tab-header"},j.a.createElement("h4",{className:"opblock-title"},"Servers"))),j.a.createElement("div",{className:"opblock-description-wrapper"},j.a.createElement("h4",{className:"message"},"These ",a,"-level options override the global server options."),j.a.createElement(o,{servers:i,currentServer:this.getSelectedServer(),setSelectedServer:this.setSelectedServer,setServerVariableValue:this.setServerVariableValue,getServerVariable:this.getServerVariable,getEffectiveServerValue:this.getEffectiveServerValue})))}}]),t}(j.a.Component)},function(e,t,n){"use strict";n.r(t);var r=n(312),o=n(313),i=n(314),a=n(315),s=n(316),u=n(317);t.default={Markdown:r.default,AuthItem:o.default,JsonSchema_string:u.default,VersionStamp:i.default,model:s.default,onlineValidatorBadge:a.default}},function(e,t,n){"use strict";n.r(t),n.d(t,"Markdown",function(){return f});var r=n(0),o=n.n(r),i=(n(10),n(56)),a=n.n(i),s=n(193),u=n.n(s),c=n(24),l=n(192),p=new u.a("commonmark");p.block.ruler.enable(["table"]),p.set({linkTarget:"_blank"});var f=function(e){var t=e.source,n=e.className,r=void 0===n?"":n;if("string"!=typeof t)return null;if(t){var i,s=p.render(t),u=Object(l.b)(s);return"string"==typeof u&&(i=u.trim()),o.a.createElement("div",{dangerouslySetInnerHTML:{__html:i},className:a()(r,"renderedMarkdown")})}return null};t.default=Object(c.OAS3ComponentWrapFactory)(f)},function(e,t,n){"use strict";n.r(t);var r=n(38),o=n.n(r),i=n(0),a=n.n(i),s=n(24);t.default=Object(s.OAS3ComponentWrapFactory)(function(e){var t=e.Ori,n=o()(e,["Ori"]),r=n.schema,i=n.getComponent,s=n.errSelectors,u=n.authorized,c=n.onAuthChange,l=n.name,p=i("HttpAuth");return"http"===r.get("type")?a.a.createElement(p,{key:l,schema:r,name:l,errSelectors:s,authorized:u,getComponent:i,onChange:c}):a.a.createElement(t,n)})},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=n(24);t.default=Object(i.OAS3ComponentWrapFactory)(function(e){var t=e.Ori;return o.a.createElement("span",null,o.a.createElement(t,e),o.a.createElement("small",{style:{backgroundColor:"#89bf04"}},o.a.createElement("pre",{className:"version"},"OAS3")))})},function(e,t,n){"use strict";n.r(t);var r=n(24);t.default=Object(r.OAS3ComponentWrapFactory)(function(){return null})},function(e,t,n){"use strict";n.r(t);var r=n(20),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(8),d=n.n(h),m=n(0),v=n.n(m),g=(n(10),n(24)),y=n(191),b=function(e){function t(){return a()(this,t),l()(this,f()(t).apply(this,arguments))}return d()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.getConfigs,n=["model-box"],r=null;return!0===e.schema.get("deprecated")&&(n.push("deprecated"),r=v.a.createElement("span",{className:"model-deprecated-warning"},"Deprecated:")),v.a.createElement("div",{className:n.join(" ")},r,v.a.createElement(y.a,o()({},this.props,{getConfigs:t,depth:1,expandDepth:this.props.expandDepth||0})))}}]),t}(m.Component);t.default=Object(g.OAS3ComponentWrapFactory)(b)},function(e,t,n){"use strict";n.r(t);var r=n(38),o=n.n(r),i=n(0),a=n.n(i),s=n(24);t.default=Object(s.OAS3ComponentWrapFactory)(function(e){var t=e.Ori,n=o()(e,["Ori"]),r=n.schema,i=n.getComponent,s=n.errors,u=n.onChange,c=r.type,l=r.format,p=i("Input");return"string"!==c||"binary"!==l&&"base64"!==l?a.a.createElement(t,n):a.a.createElement(p,{type:"file",className:s.length?"invalid":"",title:s.length?s:"",onChange:function(e){u(e.target.files[0])},disabled:t.isDisabled})})},function(e,t,n){"use strict";n.r(t),n.d(t,"selectedServer",function(){return a}),n.d(t,"requestBodyValue",function(){return s}),n.d(t,"activeExamplesMember",function(){return u}),n.d(t,"requestContentType",function(){return c}),n.d(t,"responseContentType",function(){return l}),n.d(t,"serverVariableValue",function(){return p}),n.d(t,"serverVariables",function(){return f}),n.d(t,"serverEffectiveValue",function(){return h});var r=n(1),o=n(24);function i(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(t){var r=t.getSystem().specSelectors.specJson();return Object(o.isOAS3)(r)?e.apply(void 0,n):null}}}var a=i(function(e,t){var n=t?[t,"selectedServer"]:["selectedServer"];return e.getIn(n)||""}),s=i(function(e,t,n){return e.getIn(["requestData",t,n,"bodyValue"])||null}),u=i(function(e,t,n,r,o){return e.getIn(["examples",t,n,r,o,"activeExample"])||null}),c=i(function(e,t,n){return e.getIn(["requestData",t,n,"requestContentType"])||null}),l=i(function(e,t,n){return e.getIn(["requestData",t,n,"responseContentType"])||null}),p=i(function(e,t,n){var r;if("string"!=typeof t){var o=t.server,i=t.namespace;r=i?[i,"serverVariableValues",o,n]:["serverVariableValues",o,n]}else{r=["serverVariableValues",t,n]}return e.getIn(r)||null}),f=i(function(e,t){var n;if("string"!=typeof t){var o=t.server,i=t.namespace;n=i?[i,"serverVariableValues",o]:["serverVariableValues",o]}else{n=["serverVariableValues",t]}return e.getIn(n)||Object(r.OrderedMap)()}),h=i(function(e,t){var n,o;if("string"!=typeof t){var i=t.server,a=t.namespace;o=i,n=a?e.getIn([a,"serverVariableValues",o]):e.getIn(["serverVariableValues",o])}else o=t,n=e.getIn(["serverVariableValues",o]);n=n||Object(r.OrderedMap)();var s=o;return n.map(function(e,t){s=s.replace(new RegExp("{".concat(t,"}"),"g"),e)}),s})},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(13),s=n.n(a),u=n(59);t.default=(r={},i()(r,u.UPDATE_SELECTED_SERVER,function(e,t){var n=t.payload,r=n.selectedServerUrl,o=n.namespace,i=o?[o,"selectedServer"]:["selectedServer"];return e.setIn(i,r)}),i()(r,u.UPDATE_REQUEST_BODY_VALUE,function(e,t){var n=t.payload,r=n.value,o=n.pathMethod,i=s()(o,2),a=i[0],u=i[1];return e.setIn(["requestData",a,u,"bodyValue"],r)}),i()(r,u.UPDATE_ACTIVE_EXAMPLES_MEMBER,function(e,t){var n=t.payload,r=n.name,o=n.pathMethod,i=n.contextType,a=n.contextName,u=s()(o,2),c=u[0],l=u[1];return e.setIn(["examples",c,l,i,a,"activeExample"],r)}),i()(r,u.UPDATE_REQUEST_CONTENT_TYPE,function(e,t){var n=t.payload,r=n.value,o=n.pathMethod,i=s()(o,2),a=i[0],u=i[1];return e.setIn(["requestData",a,u,"requestContentType"],r)}),i()(r,u.UPDATE_RESPONSE_CONTENT_TYPE,function(e,t){var n=t.payload,r=n.value,o=n.path,i=n.method;return e.setIn(["requestData",o,i,"responseContentType"],r)}),i()(r,u.UPDATE_SERVER_VARIABLE_VALUE,function(e,t){var n=t.payload,r=n.server,o=n.namespace,i=n.key,a=n.val,s=o?[o,"serverVariableValues",r,i]:["serverVariableValues",r,i];return e.setIn(s,a)}),r)},function(e,t,n){"use strict";n.r(t);var r=n(3),o=n(1020),i={};o.keys().forEach(function(e){if("./index.js"!==e){var t=o(e);i[Object(r.C)(e)]=t.default?t.default:t}}),t.default=i},function(e,t,n){"use strict";n.r(t);var r=n(144),o=n(117),i=n(288),a=n(289),s=n(290);n.d(t,"default",function(){return c});var u={getLocalConfig:function(){return Object(r.parseYamlConfig)('---\nurl: "https://petstore.swagger.io/v2/swagger.json"\ndom_id: "#swagger-ui"\nvalidatorUrl: "https://validator.swagger.io/validator"\n')}};function c(){return{statePlugins:{spec:{actions:i,selectors:u},configs:{reducers:s.default,actions:o,selectors:a}}}}},function(e,t,n){"use strict";(function(e,r){var o,i=n(462);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:r;var a=Object(i.a)(o);t.a=a}).call(this,n(42),n(581)(e))},function(e,t,n){"use strict";var r=n(391),o=n(393),i=n(689);e.exports=function(e){var t,a=r(arguments[1]);return a.normalizer||0!==(t=a.length=o(a.length,e.length,a.async))&&(a.primitive?!1===t?a.normalizer=n(716):t>1&&(a.normalizer=n(717)(t)):a.normalizer=!1===t?n(718)():1===t?n(722)():n(723)(t)),a.async&&n(724),a.promise&&n(725),a.dispose&&n(731),a.maxAge&&n(732),a.max&&n(735),a.refCounter&&n(737),i(e,a)}},function(e,t,n){e.exports=n(757)},function(e,t,n){var r=n(410);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},function(e,t,n){"use strict";t.__esModule=!0,t.connect=t.Provider=void 0;var r=i(n(876)),o=i(n(879));function i(e){return e&&e.__esModule?e:{default:e}}t.Provider=r.default,t.connect=o.default},function(e,t,n){e.exports=function(){"use strict";var e=Object.freeze||function(e){return e},t=e(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),n=e(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"]),r=e(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),o=e(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),i=e(["#text"]),a=Object.freeze||function(e){return e},s=a(["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"]),u=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),c=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),l=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),p=Object.hasOwnProperty,f=Object.setPrototypeOf,h=("undefined"!=typeof Reflect&&Reflect).apply;function d(e,t){f&&f(e,null);for(var n=t.length;n--;){var r=t[n];if("string"==typeof r){var o=r.toLowerCase();o!==r&&(Object.isFrozen(t)||(t[n]=o),r=o)}e[r]=!0}return e}function m(e){var t={},n=void 0;for(n in e)h(p,e,[n])&&(t[n]=e[n]);return t}h||(h=function(e,t,n){return e.apply(t,n)});var v=Object.seal||function(e){return e},g=v(/\{\{[\s\S]*|[\s\S]*\}\}/gm),y=v(/<%[\s\S]*|[\s\S]*%>/gm),b=v(/^data-[\-\w.\u00B7-\uFFFF]/),_=v(/^aria-[\-\w]+$/),w=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),x=v(/^(?:\w+script|data):/i),E=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g),S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function C(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var k=("undefined"!=typeof Reflect&&Reflect).apply,O=Array.prototype.slice,A=Object.freeze,T=function(){return"undefined"==typeof window?null:window};k||(k=function(e,t,n){return e.apply(t,n)});var j=function(e,t){if("object"!==(void 0===e?"undefined":S(e))||"function"!=typeof e.createPolicy)return null;var n=null;t.currentScript&&t.currentScript.hasAttribute("data-tt-policy-suffix")&&(n=t.currentScript.getAttribute("data-tt-policy-suffix"));var r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};return function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T(),p=function(t){return e(t)};if(p.version="1.0.11",p.removed=[],!a||!a.document||9!==a.document.nodeType)return p.isSupported=!1,p;var f=a.document,h=!1,v=!1,P=a.document,I=a.DocumentFragment,M=a.HTMLTemplateElement,N=a.Node,R=a.NodeFilter,D=a.NamedNodeMap,L=void 0===D?a.NamedNodeMap||a.MozNamedAttrMap:D,U=a.Text,q=a.Comment,F=a.DOMParser,z=a.TrustedTypes;if("function"==typeof M){var B=P.createElement("template");B.content&&B.content.ownerDocument&&(P=B.content.ownerDocument)}var V=j(z,f),H=V?V.createHTML(""):"",W=P,J=W.implementation,Y=W.createNodeIterator,K=W.getElementsByTagName,G=W.createDocumentFragment,$=f.importNode,Z={};p.isSupported=J&&void 0!==J.createHTMLDocument&&9!==P.documentMode;var X=g,Q=y,ee=b,te=_,ne=x,re=E,oe=w,ie=null,ae=d({},[].concat(C(t),C(n),C(r),C(o),C(i))),se=null,ue=d({},[].concat(C(s),C(u),C(c),C(l))),ce=null,le=null,pe=!0,fe=!0,he=!1,de=!1,me=!1,ve=!1,ge=!1,ye=!1,be=!1,_e=!1,we=!1,xe=!0,Ee=!0,Se=!1,Ce={},ke=d({},["audio","head","math","script","style","template","svg","video"]),Oe=d({},["audio","video","img","source","image"]),Ae=null,Te=d({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),je=null,Pe=P.createElement("form"),Ie=function(e){je&&je===e||(e&&"object"===(void 0===e?"undefined":S(e))||(e={}),ie="ALLOWED_TAGS"in e?d({},e.ALLOWED_TAGS):ae,se="ALLOWED_ATTR"in e?d({},e.ALLOWED_ATTR):ue,Ae="ADD_URI_SAFE_ATTR"in e?d({},e.ADD_URI_SAFE_ATTR):Te,ce="FORBID_TAGS"in e?d({},e.FORBID_TAGS):{},le="FORBID_ATTR"in e?d({},e.FORBID_ATTR):{},Ce="USE_PROFILES"in e&&e.USE_PROFILES,pe=!1!==e.ALLOW_ARIA_ATTR,fe=!1!==e.ALLOW_DATA_ATTR,he=e.ALLOW_UNKNOWN_PROTOCOLS||!1,de=e.SAFE_FOR_JQUERY||!1,me=e.SAFE_FOR_TEMPLATES||!1,ve=e.WHOLE_DOCUMENT||!1,be=e.RETURN_DOM||!1,_e=e.RETURN_DOM_FRAGMENT||!1,we=e.RETURN_DOM_IMPORT||!1,ye=e.FORCE_BODY||!1,xe=!1!==e.SANITIZE_DOM,Ee=!1!==e.KEEP_CONTENT,Se=e.IN_PLACE||!1,oe=e.ALLOWED_URI_REGEXP||oe,me&&(fe=!1),_e&&(be=!0),Ce&&(ie=d({},[].concat(C(i))),se=[],!0===Ce.html&&(d(ie,t),d(se,s)),!0===Ce.svg&&(d(ie,n),d(se,u),d(se,l)),!0===Ce.svgFilters&&(d(ie,r),d(se,u),d(se,l)),!0===Ce.mathMl&&(d(ie,o),d(se,c),d(se,l))),e.ADD_TAGS&&(ie===ae&&(ie=m(ie)),d(ie,e.ADD_TAGS)),e.ADD_ATTR&&(se===ue&&(se=m(se)),d(se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&d(Ae,e.ADD_URI_SAFE_ATTR),Ee&&(ie["#text"]=!0),ve&&d(ie,["html","head","body"]),ie.table&&d(ie,["tbody"]),A&&A(e),je=e)},Me=function(e){p.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=H}},Ne=function(e,t){try{p.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){p.removed.push({attribute:null,from:t})}t.removeAttribute(e)},Re=function(e){var t=void 0,n=void 0;if(ye)e="<remove></remove>"+e;else{var r=e.match(/^[\s]+/);(n=r&&r[0])&&(e=e.slice(n.length))}if(h)try{t=(new F).parseFromString(e,"text/html")}catch(e){}if(v&&d(ce,["title"]),!t||!t.documentElement){var o=t=J.createHTMLDocument(""),i=o.body;i.parentNode.removeChild(i.parentNode.firstElementChild),i.outerHTML=V?V.createHTML(e):e}return n&&t.body.insertBefore(P.createTextNode(n),t.body.childNodes[0]||null),K.call(t,ve?"html":"body")[0]};p.isSupported&&(function(){try{var e=Re('<svg><p><style><img src="</style><img src=x onerror=1//">');e.querySelector("svg img")&&(h=!0)}catch(e){}}(),function(){try{var e=Re("<x/><title>&lt;/title&gt;&lt;img&gt;");e.querySelector("title").innerHTML.match(/<\/title/)&&(v=!0)}catch(e){}}());var De=function(e){return Y.call(e.ownerDocument||e,e,R.SHOW_ELEMENT|R.SHOW_COMMENT|R.SHOW_TEXT,function(){return R.FILTER_ACCEPT},!1)},Le=function(e){return"object"===(void 0===N?"undefined":S(N))?e instanceof N:e&&"object"===(void 0===e?"undefined":S(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Ue=function(e,t,n){Z[e]&&Z[e].forEach(function(e){e.call(p,t,n,je)})},qe=function(e){var t,n=void 0;if(Ue("beforeSanitizeElements",e,null),!((t=e)instanceof U||t instanceof q||"string"==typeof t.nodeName&&"string"==typeof t.textContent&&"function"==typeof t.removeChild&&t.attributes instanceof L&&"function"==typeof t.removeAttribute&&"function"==typeof t.setAttribute))return Me(e),!0;var r=e.nodeName.toLowerCase();if(Ue("uponSanitizeElement",e,{tagName:r,allowedTags:ie}),!ie[r]||ce[r]){if(Ee&&!ke[r]&&"function"==typeof e.insertAdjacentHTML)try{var o=e.innerHTML;e.insertAdjacentHTML("AfterEnd",V?V.createHTML(o):o)}catch(e){}return Me(e),!0}return"noscript"===r&&e.innerHTML.match(/<\/noscript/i)?(Me(e),!0):"noembed"===r&&e.innerHTML.match(/<\/noembed/i)?(Me(e),!0):(!de||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(p.removed.push({element:e.cloneNode()}),e.innerHTML?e.innerHTML=e.innerHTML.replace(/</g,"&lt;"):e.innerHTML=e.textContent.replace(/</g,"&lt;")),me&&3===e.nodeType&&(n=(n=(n=e.textContent).replace(X," ")).replace(Q," "),e.textContent!==n&&(p.removed.push({element:e.cloneNode()}),e.textContent=n)),Ue("afterSanitizeElements",e,null),!1)},Fe=function(e,t,n){if(xe&&("id"===t||"name"===t)&&(n in P||n in Pe))return!1;if(fe&&ee.test(t));else if(pe&&te.test(t));else{if(!se[t]||le[t])return!1;if(Ae[t]);else if(oe.test(n.replace(re,"")));else if("src"!==t&&"xlink:href"!==t||"script"===e||0!==n.indexOf("data:")||!Oe[e])if(he&&!ne.test(n.replace(re,"")));else if(n)return!1}return!0},ze=function(e){var t=void 0,n=void 0,r=void 0,o=void 0,i=void 0;Ue("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:se};for(i=a.length;i--;){var u=t=a[i],c=u.name,l=u.namespaceURI;if(n=t.value.trim(),r=c.toLowerCase(),s.attrName=r,s.attrValue=n,s.keepAttr=!0,Ue("uponSanitizeAttribute",e,s),n=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)o=a.id,a=k(O,a,[]),Ne("id",e),Ne(c,e),a.indexOf(o)>i&&e.setAttribute("id",o.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===n&&s.keepAttr&&(se[r]||!le[r]))continue;"id"===c&&e.setAttribute(c,""),Ne(c,e)}if(s.keepAttr){me&&(n=(n=n.replace(X," ")).replace(Q," "));var f=e.nodeName.toLowerCase();if(Fe(f,r,n))try{l?e.setAttributeNS(l,c,n):e.setAttribute(c,n),p.removed.pop()}catch(e){}}}Ue("afterSanitizeAttributes",e,null)}},Be=function e(t){var n=void 0,r=De(t);for(Ue("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)Ue("uponSanitizeShadowNode",n,null),qe(n)||(n.content instanceof I&&e(n.content),ze(n));Ue("afterSanitizeShadowDOM",t,null)};return p.sanitize=function(e,t){var n=void 0,r=void 0,o=void 0,i=void 0,s=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Le(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!p.isSupported){if("object"===S(a.toStaticHTML)||"function"==typeof a.toStaticHTML){if("string"==typeof e)return a.toStaticHTML(e);if(Le(e))return a.toStaticHTML(e.outerHTML)}return e}if(ge||Ie(t),p.removed=[],Se);else if(e instanceof N)n=Re("\x3c!--\x3e"),1===(r=n.ownerDocument.importNode(e,!0)).nodeType&&"BODY"===r.nodeName?n=r:"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!be&&!me&&!ve&&-1===e.indexOf("<"))return V?V.createHTML(e):e;if(!(n=Re(e)))return be?null:H}n&&ye&&Me(n.firstChild);for(var u=De(Se?e:n);o=u.nextNode();)3===o.nodeType&&o===i||qe(o)||(o.content instanceof I&&Be(o.content),ze(o),i=o);if(i=null,Se)return e;if(be){if(_e)for(s=G.call(n.ownerDocument);n.firstChild;)s.appendChild(n.firstChild);else s=n;return we&&(s=$.call(f,s,!0)),s}var c=ve?n.outerHTML:n.innerHTML;return me&&(c=(c=c.replace(X," ")).replace(Q," ")),V?V.createHTML(c):c},p.setConfig=function(e){Ie(e),ge=!0},p.clearConfig=function(){je=null,ge=!1},p.isValidAttribute=function(e,t,n){je||Ie({});var r=e.toLowerCase(),o=t.toLowerCase();return Fe(r,o,n)},p.addHook=function(e,t){"function"==typeof t&&(Z[e]=Z[e]||[],Z[e].push(t))},p.removeHook=function(e){Z[e]&&Z[e].pop()},p.removeHooks=function(e){Z[e]&&(Z[e]=[])},p.removeAllHooks=function(){Z={}},p}()}()},function(e,t,n){var r=n(44),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return o[e]||(o[e]={})}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(331)(!0);n(332)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){var r=n(149),o=n(68);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(i=s.charCodeAt(u))<55296||i>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(333),o=n(39),i=n(95),a=n(76),s=n(124),u=n(487),c=n(198),l=n(493),p=n(33)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,d,m,v,g){u(n,t,d);var y,b,_,w=function(e){if(!f&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",E="values"==m,S=!1,C=e.prototype,k=C[p]||C["@@iterator"]||m&&C[m],O=k||w(m),A=m?E?w("entries"):O:void 0,T="Array"==t&&C.entries||k;if(T&&(_=l(T.call(new e)))!==Object.prototype&&_.next&&(c(_,x,!0),r||"function"==typeof _[p]||a(_,p,h)),E&&k&&"values"!==k.name&&(S=!0,O=function(){return k.call(this)}),r&&!g||!f&&!S&&C[p]||a(C,p,O),s[t]=O,s[x]=h,m)if(y={values:E?O:w("values"),keys:v?O:w("keys"),entries:A},g)for(b in y)b in C||i(C,b,y[b]);else o(o.P+o.F*(f||S),t,y);return y}},function(e,t){e.exports=!1},function(e,t,n){var r=n(490),o=n(336);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(149),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(44).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(77),o=n(151),i=n(33)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},function(e,t,n){var r,o,i,a=n(150),s=n(505),u=n(337),c=n(196),l=n(44),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=l.Dispatch,v=0,g={},y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},b=function(e){y.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++v]=function(){s("function"==typeof e?e:Function(e),t)},r(v),v},h=function(e){delete g[e]},"process"==n(121)(p)?r=function(e){p.nextTick(a(y,e,1))}:m&&m.now?r=function(e){m.now(a(y,e,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(77),o=n(96),i=n(199);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(96),o=n(121),i=n(33)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},function(e,t,n){var r=n(69),o=n(70),i=n(544)(!1),a=n(205)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){e.exports=!n(46)&&!n(80)(function(){return 7!=Object.defineProperty(n(209)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(47),o=n(45),i=n(126);e.exports=n(46)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){var r=n(32).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(69),o=n(79),i=n(205)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(32),o=n(69),i=n(46),a=n(30),s=n(212),u=n(132).KEY,c=n(80),l=n(206),p=n(131),f=n(155),h=n(34),d=n(213),m=n(214),v=n(554),g=n(215),y=n(45),b=n(41),_=n(79),w=n(70),x=n(210),E=n(130),S=n(156),C=n(555),k=n(159),O=n(157),A=n(47),T=n(126),j=k.f,P=A.f,I=C.f,M=r.Symbol,N=r.JSON,R=N&&N.stringify,D=h("_hidden"),L=h("toPrimitive"),U={}.propertyIsEnumerable,q=l("symbol-registry"),F=l("symbols"),z=l("op-symbols"),B=Object.prototype,V="function"==typeof M&&!!O.f,H=r.QObject,W=!H||!H.prototype||!H.prototype.findChild,J=i&&c(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=j(B,t);r&&delete B[t],P(e,t,n),r&&e!==B&&P(B,t,r)}:P,Y=function(e){var t=F[e]=S(M.prototype);return t._k=e,t},K=V&&"symbol"==typeof M.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof M},G=function(e,t,n){return e===B&&G(z,t,n),y(e),t=x(t,!0),y(n),o(F,t)?(n.enumerable?(o(e,D)&&e[D][t]&&(e[D][t]=!1),n=S(n,{enumerable:E(0,!1)})):(o(e,D)||P(e,D,E(1,{})),e[D][t]=!0),J(e,t,n)):P(e,t,n)},$=function(e,t){y(e);for(var n,r=v(t=w(t)),o=0,i=r.length;i>o;)G(e,n=r[o++],t[n]);return e},Z=function(e){var t=U.call(this,e=x(e,!0));return!(this===B&&o(F,e)&&!o(z,e))&&(!(t||!o(this,e)||!o(F,e)||o(this,D)&&this[D][e])||t)},X=function(e,t){if(e=w(e),t=x(t,!0),e!==B||!o(F,t)||o(z,t)){var n=j(e,t);return!n||!o(F,t)||o(e,D)&&e[D][t]||(n.enumerable=!0),n}},Q=function(e){for(var t,n=I(w(e)),r=[],i=0;n.length>i;)o(F,t=n[i++])||t==D||t==u||r.push(t);return r},ee=function(e){for(var t,n=e===B,r=I(n?z:w(e)),i=[],a=0;r.length>a;)!o(F,t=r[a++])||n&&!o(B,t)||i.push(F[t]);return i};V||(s((M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===B&&t.call(z,n),o(this,D)&&o(this[D],e)&&(this[D][e]=!1),J(this,e,E(1,n))};return i&&W&&J(B,e,{configurable:!0,set:t}),Y(e)}).prototype,"toString",function(){return this._k}),k.f=X,A.f=G,n(216).f=C.f=Q,n(158).f=Z,O.f=ee,i&&!n(128)&&s(B,"propertyIsEnumerable",Z,!0),d.f=function(e){return Y(h(e))}),a(a.G+a.W+a.F*!V,{Symbol:M});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)h(te[ne++]);for(var re=T(h.store),oe=0;re.length>oe;)m(re[oe++]);a(a.S+a.F*!V,"Symbol",{for:function(e){return o(q,e+="")?q[e]:q[e]=M(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in q)if(q[t]===e)return t},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!V,"Object",{create:function(e,t){return void 0===t?S(e):$(S(e),t)},defineProperty:G,defineProperties:$,getOwnPropertyDescriptor:X,getOwnPropertyNames:Q,getOwnPropertySymbols:ee});var ie=c(function(){O.f(1)});a(a.S+a.F*ie,"Object",{getOwnPropertySymbols:function(e){return O.f(_(e))}}),N&&a(a.S+a.F*(!V||c(function(){var e=M();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(b(t)||void 0!==e)&&!K(e))return g(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!K(t))return t}),r[1]=t,R.apply(N,r)}}),M.prototype[L]||n(71)(M.prototype,L,M.prototype.valueOf),p(M,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";var r=n(46),o=n(126),i=n(157),a=n(158),s=n(79),u=n(203),c=Object.assign;e.exports=!c||n(80)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=r})?function(e,t){for(var n=s(e),c=arguments.length,l=1,p=i.f,f=a.f;c>l;)for(var h,d=u(arguments[l++]),m=p?o(d).concat(p(d)):o(d),v=m.length,g=0;v>g;)h=m[g++],r&&!f.call(d,h)||(n[h]=d[h]);return n}:c},function(e,t,n){"use strict";var r=n(133),o=n(25),i=n(353),a=(n(354),n(161));n(15),n(566);function s(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function u(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function c(){}s.prototype.isReactComponent={},s.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},c.prototype=s.prototype,u.prototype=new c,u.prototype.constructor=u,o(u.prototype,s.prototype),u.prototype.isPureReactComponent=!0,e.exports={Component:s,PureComponent:u}},function(e,t,n){"use strict";n(23);var r={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};e.exports=r},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r=n(574);e.exports=function(e){return r(e,!1)}},function(e,t,n){"use strict";e.exports=n(575)},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e&&"@@redux/INIT"===e.type?"initialState argument passed to createStore":"previous state received by the reducer"},e.exports=t.default},function(e,t,n){var r=n(102),o=n(362),i=n(35),a=n(163),s=1/0,u=r?r.prototype:void 0,c=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(42))},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t){e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){e.exports=function(e,t,n,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}},function(e,t,n){var r=n(81),o=n(49),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(636),o=n(63);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(637),o=n(370),i=n(640),a=1,s=2;e.exports=function(e,t,n,u,c,l){var p=n&a,f=e.length,h=t.length;if(f!=h&&!(p&&h>f))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,g=n&s?new r:void 0;for(l.set(e,t),l.set(t,e);++m<f;){var y=e[m],b=t[m];if(u)var _=p?u(b,y,m,t,e,l):u(y,b,m,e,t,l);if(void 0!==_){if(_)continue;v=!1;break}if(g){if(!o(t,function(e,t){if(!i(g,t)&&(y===e||c(y,e,n,u,l)))return g.push(t)})){v=!1;break}}else if(y!==b&&!c(y,b,n,u,l)){v=!1;break}}return l.delete(e),l.delete(t),v}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},function(e,t,n){var r=n(48).Uint8Array;e.exports=r},function(e,t,n){var r=n(373),o=n(222),i=n(83);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(221),o=n(35);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(646),o=n(223),i=n(35),a=n(224),s=n(170),u=n(376),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),l=!n&&o(e),p=!n&&!l&&a(e),f=!n&&!l&&!p&&u(e),h=n||l||p||f,d=h?r(e.length,String):[],m=d.length;for(var v in e)!t&&!c.call(e,v)||h&&("length"==v||p&&("offset"==v||"parent"==v)||f&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,m))||d.push(v);return d}},function(e,t,n){var r=n(649),o=n(226),i=n(227),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(49);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&n[e]===t&&(void 0!==t||e in Object(n))}}},function(e,t,n){var r=n(660),o=n(661);e.exports=function(e,t){return null!=e&&o(e,t,r)}},function(e,t,n){var r=n(667);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){var r=n(49),o=n(163),i=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return i;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):s.test(e)?i:+e}},function(e,t,n){var r=n(669),o=n(672)(r);e.exports=o},function(e,t,n){var r=n(89),o=n(103),i=n(170),a=n(49);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},function(e,t,n){"use strict";(function(t,r){var o=n(174);e.exports=b;var i,a=n(350);b.ReadableState=y;n(230).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=n(386),c=n(175).Buffer,l=t.Uint8Array||function(){};var p=n(134);p.inherits=n(106);var f=n(675),h=void 0;h=f&&f.debuglog?f.debuglog("stream"):function(){};var d,m=n(676),v=n(387);p.inherits(b,u);var g=["error","close","destroy","pause","resume"];function y(e,t){e=e||{};var r=t instanceof(i=i||n(84));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(389).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function b(e){if(i=i||n(84),!(this instanceof b))return new b(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function _(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,S(e)}(e,a)):(o||(i=function(e,t){var n;r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?w(e,a,t,!1):k(e,a)):w(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function w(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&S(e)),k(e,t)}Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),b.prototype.destroy=v.destroy,b.prototype._undestroy=v.undestroy,b.prototype._destroy=function(e,t){this.push(null),t(e)},b.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=c.from(e,t),t=""),n=!0),_(this,e,t,!1,n)},b.prototype.unshift=function(e){return _(this,e,null,!0,!1)},b.prototype.isPaused=function(){return!1===this._readableState.flowing},b.prototype.setEncoding=function(e){return d||(d=n(389).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};var x=8388608;function E(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=x?e=x:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function S(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(C,e):C(e))}function C(e){h("emit readable"),e.emit("readable"),j(e)}function k(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(O,e,t))}function O(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(h("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function A(e){h("readable nexttick read 0"),e.read(0)}function T(e,t){t.reading||(h("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),j(e),t.flowing&&!t.reading&&e.read(0)}function j(e){var t=e._readableState;for(h("flow",t.flowing);t.flowing&&null!==e.read(););}function P(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function I(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(M,t,e))}function M(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function N(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}b.prototype.read=function(e){h("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?I(this):S(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&I(this),null;var r,o=t.needReadable;return h("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&h("length less than watermark",o=!0),t.ended||t.reading?h("reading or ended",o=!1):o&&(h("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=E(n,t))),null===(r=e>0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&I(this)),null!==r&&this.emit("data",r),r},b.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,h("pipe count=%d opts=%j",i.pipesCount,t);var u=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:b;function c(t,r){h("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",g),e.removeListener("finish",y),e.removeListener("drain",p),e.removeListener("error",v),e.removeListener("unpipe",c),n.removeListener("end",l),n.removeListener("end",b),n.removeListener("data",m),f=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||p())}function l(){h("onend"),e.end()}i.endEmitted?o.nextTick(u):n.once("end",u),e.on("unpipe",c);var p=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,j(e))}}(n);e.on("drain",p);var f=!1;var d=!1;function m(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==N(i.pipes,e))&&!f&&(h("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function v(t){h("onerror",t),b(),e.removeListener("error",v),0===s(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",y),b()}function y(){h("onfinish"),e.removeListener("close",g),b()}function b(){h("unpipe"),n.unpipe(e)}return n.on("data",m),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",v),e.once("close",g),e.once("finish",y),e.emit("pipe",n),i.flowing||(h("pipe resume"),n.resume()),e},b.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=N(t.pipes,e);return-1===a?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},b.prototype.on=function(e,t){var n=u.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&S(this):o.nextTick(A,this))}return n},b.prototype.addListener=b.prototype.on,b.prototype.resume=function(){var e=this._readableState;return e.flowing||(h("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(T,e,t))}(this,e)),this},b.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this},b.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",function(){if(h("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(o){(h("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))}),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<g.length;i++)e.on(g[i],this.emit.bind(this,g[i]));return this._read=function(t){h("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(b.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),b._fromList=P}).call(this,n(42),n(72))},function(e,t,n){e.exports=n(230).EventEmitter},function(e,t,n){"use strict";var r=n(174);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(678),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(42))},function(e,t,n){"use strict";var r=n(175).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=p,t=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";e.exports=a;var r=n(84),o=n(134);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush(function(t,n){u(e,t,n)}):u(this,null,null)}function u(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(106),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},function(e,t,n){"use strict";var r=n(85),o=Array.prototype.forEach,i=Object.create,a=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=i(null);return o.call(arguments,function(e){r(e)&&a(Object(e),t)}),t}},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(86);e.exports=function(e,t,n){var o;return isNaN(e)?(o=t)>=0?n&&o?o-1:o:1:!1!==e&&r(e)}},function(e,t,n){"use strict";e.exports=n(693)()?Object.assign:n(694)},function(e,t,n){"use strict";var r,o,i,a,s,u=n(86),c=function(e,t){return t};try{Object.defineProperty(c,"length",{configurable:!0,writable:!1,enumerable:!1,value:1})}catch(e){}1===c.length?(r={configurable:!0,writable:!1,enumerable:!1},o=Object.defineProperty,e.exports=function(e,t){return t=u(t),e.length===t?e:(r.value=t,o(e,"length",r))}):(a=n(396),s=[],i=function(e){var t,n=0;if(s[e])return s[e];for(t=[];e--;)t.push("a"+(++n).toString(36));return new Function("fn","return function ("+t.join(", ")+") { return fn.apply(this, arguments); };")},e.exports=function(e,t){var n;if(t=u(t),e.length===t)return e;n=i(t)(e);try{a(n,e)}catch(e){}return n})},function(e,t,n){"use strict";var r=n(107),o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols;e.exports=function(e,t){var n,u=Object(r(t));if(e=Object(r(e)),a(u).forEach(function(r){try{o(e,r,i(t,r))}catch(e){n=e}}),"function"==typeof s&&s(u).forEach(function(r){try{o(e,r,i(t,r))}catch(e){n=e}}),void 0!==n)throw n;return e}},function(e,t,n){"use strict";var r=n(73),o=n(176),i=Function.prototype.call;e.exports=function(e,t){var n={},a=arguments[2];return r(t),o(e,function(e,r,o,s){n[r]=i.call(t,a,e,r,o,s)}),n}},function(e,t){e.exports=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}},function(e,t,n){var r=n(45);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(98),o=n(34)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){"use strict";var r=n(47),o=n(130);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(34)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){var r=n(45),o=n(129),i=n(34)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},function(e,t,n){var r,o,i,a=n(60),s=n(761),u=n(346),c=n(209),l=n(32),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=l.Dispatch,v=0,g={},y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},b=function(e){y.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++v]=function(){s("function"==typeof e?e:Function(e),t)},r(v),v},h=function(e){delete g[e]},"process"==n(127)(p)?r=function(e){p.nextTick(a(y,e,1))}:m&&m.now?r=function(e){m.now(a(y,e,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(45),o=n(41),i=n(237);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var r=n(32),o=n(22),i=n(47),a=n(46),s=n(34)("species");e.exports=function(e){var t="function"==typeof o[e]?o[e]:r[e];a&&t&&!t[s]&&i.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";var r=n(110);e.exports=new r({include:[n(409)]})},function(e,t,n){"use strict";var r=n(110);e.exports=new r({include:[n(238)],implicit:[n(773),n(774),n(775),n(776)]})},function(e,t,n){var r=n(181),o=n(104),i=n(170),a=n(49),s=n(105);e.exports=function(e,t,n,u){if(!a(e))return e;for(var c=-1,l=(t=o(t,e)).length,p=l-1,f=e;null!=f&&++c<l;){var h=s(t[c]),d=n;if(c!=p){var m=f[h];void 0===(d=u?u(m,h,f):void 0)&&(d=a(m)?m:i(t[c+1])?[]:{})}r(f,h,d),f=f[h]}return e}},function(e,t,n){var r=n(412);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(82),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){e.exports=n(794)},function(e,t,n){e.exports=n(797)},function(e,t,n){"use strict";e.exports={hasCachedChildNodes:1}},function(e,t,n){"use strict";var r=n(21);n(15);e.exports=function(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}},function(e,t,n){"use strict";e.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},function(e,t,n){"use strict";var r=n(36),o=null;e.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},function(e,t,n){"use strict";var r=n(21);var o=n(88),i=(n(15),function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&r("24"),this._callbacks=null,this._contexts=null;for(var o=0;o<e.length;o++)e[o].call(t[o],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());e.exports=o.addPoolingTo(i)},function(e,t,n){"use strict";e.exports={logTopLevelRenders:!1}},function(e,t,n){"use strict";var r=n(27);function o(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function i(e){return e._wrapperState.valueTracker}var a={_getTrackerFromNode:function(e){return i(r.getInstanceFromNode(e))},track:function(e){if(!i(e)){var t=r.getNodeFromInstance(e),n=o(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),s=""+t[n];t.hasOwnProperty(n)||"function"!=typeof a.get||"function"!=typeof a.set||(Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:!0,get:function(){return a.get.call(this)},set:function(e){s=""+e,a.set.call(this,e)}}),function(e,t){e._wrapperState.valueTracker=t}(e,{getValue:function(){return s},setValue:function(e){s=""+e},stopTracking:function(){!function(e){e._wrapperState.valueTracker=null}(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=i(e);if(!t)return a.track(e),!0;var n,s,u=t.getValue(),c=((n=r.getNodeFromInstance(e))&&(s=o(n)?""+n.checked:n.value),s);return c!==u&&(t.setValue(c),!0)},stopTracking:function(e){var t=i(e);t&&t.stopTracking()}};e.exports=a},function(e,t,n){"use strict";var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";var r=n(36),o=n(185),i=n(184),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){3!==e.nodeType?i(e,o(t)):e.nodeValue=t})),e.exports=a},function(e,t,n){"use strict";e.exports=function(e){try{e.focus()}catch(e){}}},function(e,t,n){"use strict";var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};var o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}(t,e)]=r[e]})});var i={isUnitlessNumber:r,shorthandPropertyExpansions:{background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(111),o=(n(27),n(50),n(828)),i=(n(23),new RegExp("^["+r.ATTRIBUTE_NAME_START_CHAR+"]["+r.ATTRIBUTE_NAME_CHAR+"]*$")),a={},s={};function u(e){return!!s.hasOwnProperty(e)||!a.hasOwnProperty(e)&&(i.test(e)?(s[e]=!0,!0):(a[e]=!0,!1))}function c(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&!1===t}var l={createMarkupForID:function(e){return r.ID_ATTRIBUTE_NAME+"="+o(e)},setAttributeForID:function(e,t){e.setAttribute(r.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return r.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(r.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=r.properties.hasOwnProperty(e)?r.properties[e]:null;if(n){if(c(n,t))return"";var i=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===t?i+'=""':i+"="+o(t)}return r.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},createMarkupForCustomAttribute:function(e,t){return u(e)&&null!=t?e+"="+o(t):""},setValueForProperty:function(e,t,n){var o=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(o){var i=o.mutationMethod;if(i)i(e,n);else{if(c(o,n))return void this.deleteValueForProperty(e,t);if(o.mustUseProperty)e[o.propertyName]=n;else{var a=o.attributeName,s=o.attributeNamespace;s?e.setAttributeNS(s,a,""+n):o.hasBooleanValue||o.hasOverloadedBooleanValue&&!0===n?e.setAttribute(a,""):e.setAttribute(a,""+n)}}}else if(r.isCustomAttribute(t))return void l.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){u(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(n){var o=n.mutationMethod;if(o)o(e,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?e[i]=!1:e[i]=""}else e.removeAttribute(n.attributeName)}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};e.exports=l},function(e,t,n){"use strict";var r=n(25),o=n(248),i=n(27),a=n(55),s=(n(23),!1);function u(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=o.getValue(e);null!=t&&c(this,Boolean(e.multiple),t)}}function c(e,t,n){var r,o,a=i.getNodeFromInstance(e).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var s=r.hasOwnProperty(a[o].value);a[o].selected!==s&&(a[o].selected=s)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}var l={getHostProps:function(e,t){return r({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=o.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:p.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||s||(s=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=o.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,c(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?c(e,Boolean(t.multiple),t.defaultValue):c(e,Boolean(t.multiple),t.multiple?[]:""))}};function p(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),a.asap(u,this),n}e.exports=l},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(837),a=n(431),s=n(432),u=(n(838),n(15),n(23),function(e){this.construct(e)});function c(e,t){var n;if(null===e||!1===e)n=a.create(c);else if("object"==typeof e){var o=e,i=o.type;if("function"!=typeof i&&"string"!=typeof i){var l="";0,l+=function(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}(o._owner),r("130",null==i?i:typeof i,l)}"string"==typeof o.type?n=s.createInternalComponent(o):!function(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}(o.type)?n=new u(o):(n=new o.type(o)).getHostNode||(n.getHostNode=n.getNativeNode)}else"string"==typeof e||"number"==typeof e?n=s.createInstanceForText(e):r("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}o(u.prototype,i,{_instantiateReactComponent:c}),e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(100),i=(n(15),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,e.exports=i},function(e,t,n){"use strict";var r=n(21),o=(n(15),null),i=null;var a={createInternalComponent:function(e){return o||r("111",e.type),new o(e)},createInstanceForText:function(e){return new i(e)},isTextComponent:function(e){return e instanceof i},injection:{injectGenericComponentClass:function(e){o=e},injectTextComponentClass:function(e){i=e}}};e.exports=a},function(e,t,n){"use strict";var r=n(21),o=(n(62),n(839)),i=n(840),a=(n(15),n(252)),s=(n(23),"."),u=":";function c(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,l,p){var f,h=typeof t;if("undefined"!==h&&"boolean"!==h||(t=null),null===t||"string"===h||"number"===h||"object"===h&&t.$$typeof===o)return l(p,t,""===n?s+c(t,0):n),1;var d=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)d+=e(f=t[v],m+c(f,v),l,p);else{var g=i(t);if(g){var y,b=g.call(t);if(g!==t.entries)for(var _=0;!(y=b.next()).done;)d+=e(f=y.value,m+c(f,_++),l,p);else for(;!(y=b.next()).done;){var w=y.value;w&&(d+=e(f=w[1],m+a.escape(w[0])+u+c(f,0),l,p))}}else if("object"===h){var x=String(t);r("31","[object Object]"===x?"object with keys {"+Object.keys(t).join(", ")+"}":x,"")}}return d}(e,"",t,n)}},function(e,t,n){"use strict";var r,o,i,a,s,u,c,l=n(133),p=n(62);n(15),n(23);function f(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}if("function"==typeof Array.from&&"function"==typeof Map&&f(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&f(Map.prototype.keys)&&"function"==typeof Set&&f(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&f(Set.prototype.keys)){var h=new Map,d=new Set;r=function(e,t){h.set(e,t)},o=function(e){return h.get(e)},i=function(e){h.delete(e)},a=function(){return Array.from(h.keys())},s=function(e){d.add(e)},u=function(e){d.delete(e)},c=function(){return Array.from(d.keys())}}else{var m={},v={},g=function(e){return"."+e},y=function(e){return parseInt(e.substr(1),10)};r=function(e,t){var n=g(e);m[n]=t},o=function(e){var t=g(e);return m[t]},i=function(e){var t=g(e);delete m[t]},a=function(){return Object.keys(m).map(y)},s=function(e){var t=g(e);v[t]=!0},u=function(e){var t=g(e);delete v[t]},c=function(){return Object.keys(v).map(y)}}var b=[];function _(e){var t=o(e);if(t){var n=t.childIDs;i(e),n.forEach(_)}}function w(e,t,n){return"\n    in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function x(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function E(e){var t,n=S.getDisplayName(e),r=S.getElement(e),o=S.getOwnerID(e);return o&&(t=S.getDisplayName(o)),w(n,r&&r._source,t)}var S={onSetChildren:function(e,t){var n=o(e);n||l("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var i=t[r],a=o(i);a||l("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element&&l("141"),a.isMounted||l("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e&&l("142",i,a.parentID,e)}},onBeforeMountComponent:function(e,t,n){r(e,{element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(e,t){var n=o(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=o(e);t||l("144"),t.isMounted=!0,0===t.parentID&&s(e)},onUpdateComponent:function(e){var t=o(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=o(e);t&&(t.isMounted=!1,0===t.parentID&&u(e));b.push(e)},purgeUnmountedComponents:function(){if(!S._preventPurging){for(var e=0;e<b.length;e++){_(b[e])}b.length=0}},isMounted:function(e){var t=o(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=x(e),r=e._owner;t+=w(n,e._source,r&&r.getName())}var o=p.current,i=o&&o._debugID;return t+=S.getStackAddendumByID(i)},getStackAddendumByID:function(e){for(var t="";e;)t+=E(e),e=S.getParentID(e);return t},getChildIDs:function(e){var t=o(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=S.getElement(e);return t?x(t):null},getElement:function(e){var t=o(e);return t?t.element:null},getOwnerID:function(e){var t=S.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=o(e);return t?t.parentID:null},getSource:function(e){var t=o(e),n=t?t.element:null;return null!=n?n._source:null},getText:function(e){var t=S.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=o(e);return t?t.updateCount:0},getRootIDs:c,getRegisteredIDs:a,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=p.current,o=r&&r._debugID;try{for(e&&n.push({name:o?S.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var i=S.getElement(o),a=S.getParentID(o),s=S.getOwnerID(o),u=s?S.getDisplayName(s):null,c=i&&i._source;n.push({name:u,fileName:c?c.fileName:null,lineNumber:c?c.lineNumber:null}),o=a}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};e.exports=S},function(e,t,n){"use strict";var r=n(54),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";var r=n(852),o=n(854),i=n(425),a=n(437);var s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t,n=a(),r=e.focusedElem,u=e.selectionRange;n!==r&&(t=r,o(document.documentElement,t))&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,u),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if(void 0===o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";var r=n(21),o=n(113),i=n(111),a=n(100),s=n(186),u=(n(62),n(27)),c=n(869),l=n(870),p=n(420),f=n(140),h=(n(50),n(871)),d=n(112),m=n(253),v=n(55),g=n(161),y=n(429),b=(n(15),n(184)),_=n(251),w=(n(23),i.ID_ATTRIBUTE_NAME),x=i.ROOT_ATTRIBUTE_NAME,E=1,S=9,C=11,k={};function O(e){return e?e.nodeType===S?e.documentElement:e.firstChild:null}function A(e,t,n,r,o){var i;if(p.logTopLevelRenders){var a=e._currentElement.props.child.type;i="React mount: "+("string"==typeof a?a:a.displayName||a.name),console.time(i)}var s=d.mountComponent(e,n,null,c(e,t),o,0);i&&console.timeEnd(i),e._renderedComponent._topLevelWrapper=e,D._mountImageIntoNode(s,t,e,r,n)}function T(e,t,n,r){var o=v.ReactReconcileTransaction.getPooled(!n&&l.useCreateElement);o.perform(A,null,e,t,o,n,r),v.ReactReconcileTransaction.release(o)}function j(e,t,n){for(0,d.unmountComponent(e,n),t.nodeType===S&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function P(e){var t=O(e);if(t){var n=u.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function I(e){return!(!e||e.nodeType!==E&&e.nodeType!==S&&e.nodeType!==C)}function M(e){var t=function(e){var t=O(e),n=t&&u.getInstanceFromNode(t);return n&&!n._hostParent?n:null}(e);return t?t._hostContainerInfo._topLevelWrapper:null}var N=1,R=function(){this.rootID=N++};R.prototype.isReactComponent={},R.prototype.render=function(){return this.props.child},R.isReactTopLevelWrapper=!0;var D={TopLevelWrapper:R,_instancesByReactRootID:k,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return D.scrollMonitor(r,function(){m.enqueueElementInternal(e,t,n),o&&m.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,o){I(t)||r("37"),s.ensureScrollValueMonitoring();var i=y(e,!1);v.batchedUpdates(T,i,t,n,o);var a=i._instance.rootID;return k[a]=i,i},renderSubtreeIntoContainer:function(e,t,n,o){return null!=e&&f.has(e)||r("38"),D._renderSubtreeIntoContainer(e,t,n,o)},_renderSubtreeIntoContainer:function(e,t,n,o){m.validateCallback(o,"ReactDOM.render"),a.isValidElement(t)||r("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var i,s=a.createElement(R,{child:t});if(e){var u=f.get(e);i=u._processChildContext(u._context)}else i=g;var c=M(n);if(c){var l=c._currentElement.props.child;if(_(l,t)){var p=c._renderedComponent.getPublicInstance(),h=o&&function(){o.call(p)};return D._updateRootComponent(c,s,i,n,h),p}D.unmountComponentAtNode(n)}var d,v=O(n),y=v&&!(!(d=v).getAttribute||!d.getAttribute(w)),b=P(n),x=y&&!c&&!b,E=D._renderNewRootComponent(s,n,x,i)._renderedComponent.getPublicInstance();return o&&o.call(E),E},render:function(e,t,n){return D._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){I(e)||r("40");var t=M(e);if(!t){P(e),1===e.nodeType&&e.hasAttribute(x);return!1}return delete k[t._instance.rootID],v.batchedUpdates(j,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(I(t)||r("41"),i){var s=O(t);if(h.canReuseMarkup(e,s))return void u.precacheNode(n,s);var c=s.getAttribute(h.CHECKSUM_ATTR_NAME);s.removeAttribute(h.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(h.CHECKSUM_ATTR_NAME,c);var p=e,f=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}(p,l),d=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===S&&r("42",d)}if(t.nodeType===S&&r("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);o.insertTreeBefore(t,e,null)}else b(t,e),u.precacheNode(n,t.firstChild)}};e.exports=D},function(e,t,n){"use strict";var r=n(430);e.exports=function(e){for(var t;(t=e._renderedNodeType)===r.COMPOSITE;)e=e._renderedComponent;return t===r.HOST?e._renderedComponent:t===r.EMPTY?null:void 0}},function(e,t,n){e.exports=n(877)()},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(440),i=(r=o)&&r.__esModule?r:{default:r};t.default=i.default.shape({subscribe:i.default.func.isRequired,dispatch:i.default.func.isRequired,getState:i.default.func.isRequired})},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e);try{throw new Error(e)}catch(e){}}},function(e,t,n){var r=n(220),o=n(884),i=n(181),a=n(885),s=n(886),u=n(889),c=n(890),l=n(891),p=n(892),f=n(372),h=n(446),d=n(172),m=n(893),v=n(894),g=n(899),y=n(35),b=n(224),_=n(901),w=n(49),x=n(903),E=n(83),S=1,C=2,k=4,O="[object Arguments]",A="[object Function]",T="[object GeneratorFunction]",j="[object Object]",P={};P[O]=P["[object Array]"]=P["[object ArrayBuffer]"]=P["[object DataView]"]=P["[object Boolean]"]=P["[object Date]"]=P["[object Float32Array]"]=P["[object Float64Array]"]=P["[object Int8Array]"]=P["[object Int16Array]"]=P["[object Int32Array]"]=P["[object Map]"]=P["[object Number]"]=P[j]=P["[object RegExp]"]=P["[object Set]"]=P["[object String]"]=P["[object Symbol]"]=P["[object Uint8Array]"]=P["[object Uint8ClampedArray]"]=P["[object Uint16Array]"]=P["[object Uint32Array]"]=!0,P["[object Error]"]=P[A]=P["[object WeakMap]"]=!1,e.exports=function e(t,n,I,M,N,R){var D,L=n&S,U=n&C,q=n&k;if(I&&(D=N?I(t,M,N,R):I(t)),void 0!==D)return D;if(!w(t))return t;var F=y(t);if(F){if(D=m(t),!L)return c(t,D)}else{var z=d(t),B=z==A||z==T;if(b(t))return u(t,L);if(z==j||z==O||B&&!N){if(D=U||B?{}:g(t),!L)return U?p(t,s(D,t)):l(t,a(D,t))}else{if(!P[z])return N?t:{};D=v(t,z,L)}}R||(R=new r);var V=R.get(t);if(V)return V;R.set(t,D),x(t)?t.forEach(function(r){D.add(e(r,n,I,r,t,R))}):_(t)&&t.forEach(function(r,o){D.set(o,e(r,n,I,o,t,R))});var H=q?U?h:f:U?keysIn:E,W=F?void 0:H(t);return o(W||t,function(r,o){W&&(r=t[o=r]),i(D,o,e(r,n,I,o,t,R))}),D}},function(e,t,n){var r=n(375),o=n(887),i=n(103);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t,n){var r=n(221),o=n(257),i=n(222),a=n(374),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(373),o=n(445),i=n(444);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(909),o=n(448),i=n(449);e.exports=function(e){return i(o(e,void 0,r),e+"")}},function(e,t,n){var r=n(912),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=i[a];return c[t]=n(u),r(e,this,c)}}},function(e,t,n){var r=n(913),o=n(915)(r);e.exports=o},function(e,t,n){var r={strict:!0},o=n(926),i=function(e,t){return o(e,t,r)},a=n(259);t.JsonPatchError=a.PatchError,t.deepClone=a._deepClone;var s={add:function(e,t,n){return e[t]=this.value,{newDocument:n}},remove:function(e,t,n){var r=e[t];return delete e[t],{newDocument:n,removed:r}},replace:function(e,t,n){var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:function(e,t,n){var r=c(n,this.path);r&&(r=a._deepClone(r));var o=l(n,{op:"remove",path:this.from}).removed;return l(n,{op:"add",path:this.path,value:o}),{newDocument:n,removed:r}},copy:function(e,t,n){var r=c(n,this.from);return l(n,{op:"add",path:this.path,value:a._deepClone(r)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:i(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},u={add:function(e,t,n){return a.isInteger(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:n,index:t}},remove:function(e,t,n){return{newDocument:n,removed:e.splice(t,1)[0]}},replace:function(e,t,n){var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:s.move,copy:s.copy,test:s.test,_get:s._get};function c(e,t){if(""==t)return e;var n={op:"_get",path:t};return l(e,n),n.value}function l(e,n,r,o,l,p){if(void 0===r&&(r=!1),void 0===o&&(o=!0),void 0===l&&(l=!0),void 0===p&&(p=0),r&&("function"==typeof r?r(n,0,e,n.path):f(n,0)),""===n.path){var h={newDocument:e};if("add"===n.op)return h.newDocument=n.value,h;if("replace"===n.op)return h.newDocument=n.value,h.removed=e,h;if("move"===n.op||"copy"===n.op)return h.newDocument=c(e,n.from),"move"===n.op&&(h.removed=e),h;if("test"===n.op){if(h.test=i(e,n.value),!1===h.test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h.newDocument=e,h}if("remove"===n.op)return h.removed=e,h.newDocument=null,h;if("_get"===n.op)return n.value=e,h;if(r)throw new t.JsonPatchError("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",p,n,e);return h}o||(e=a._deepClone(e));var d=(n.path||"").split("/"),m=e,v=1,g=d.length,y=void 0,b=void 0,_=void 0;for(_="function"==typeof r?r:f;;){if(b=d[v],l&&"__proto__"==b)throw new TypeError("JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&void 0===y&&(void 0===m[b]?y=d.slice(0,v).join("/"):v==g-1&&(y=n.path),void 0!==y&&_(n,0,e,y)),v++,Array.isArray(m)){if("-"===b)b=m.length;else{if(r&&!a.isInteger(b))throw new t.JsonPatchError("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",p,n,e);a.isInteger(b)&&(b=~~b)}if(v>=g){if(r&&"add"===n.op&&b>m.length)throw new t.JsonPatchError("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",p,n,e);if(!1===(h=u[n.op].call(n,m,b,e)).test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h}}else if(b&&-1!=b.indexOf("~")&&(b=a.unescapePathComponent(b)),v>=g){if(!1===(h=s[n.op].call(n,m,b,e)).test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h}m=m[b]}}function p(e,n,r,o,i){if(void 0===o&&(o=!0),void 0===i&&(i=!0),r&&!Array.isArray(n))throw new t.JsonPatchError("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");o||(e=a._deepClone(e));for(var s=new Array(n.length),u=0,c=n.length;u<c;u++)s[u]=l(e,n[u],r,!0,i,u),e=s[u].newDocument;return s.newDocument=e,s}function f(e,n,r,o){if("object"!=typeof e||null===e||Array.isArray(e))throw new t.JsonPatchError("Operation is not an object","OPERATION_NOT_AN_OBJECT",n,e,r);if(!s[e.op])throw new t.JsonPatchError("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",n,e,r);if("string"!=typeof e.path)throw new t.JsonPatchError("Operation `path` property is not a string","OPERATION_PATH_INVALID",n,e,r);if(0!==e.path.indexOf("/")&&e.path.length>0)throw new t.JsonPatchError('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,e,r);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new t.JsonPatchError("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&a.hasUndefined(e.value))throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,e,r);if(r)if("add"==e.op){var i=e.path.split("/").length,u=o.split("/").length;if(i!==u+1&&i!==u)throw new t.JsonPatchError("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,e,r)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==o)throw new t.JsonPatchError("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,e,r)}else if("move"===e.op||"copy"===e.op){var c=h([{op:"_get",path:e.from,value:void 0}],r);if(c&&"OPERATION_PATH_UNRESOLVABLE"===c.name)throw new t.JsonPatchError("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,e,r)}}function h(e,n,r){try{if(!Array.isArray(e))throw new t.JsonPatchError("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(n)p(a._deepClone(n),a._deepClone(e),r||!0);else{r=r||f;for(var o=0;o<e.length;o++)r(e[o],o,n,void 0)}}catch(e){if(e instanceof t.JsonPatchError)return e;throw e}}t.getValueByPointer=c,t.applyOperation=l,t.applyPatch=p,t.applyReducer=function(e,n,r){var o=l(e,n);if(!1===o.test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",r,n,e);return o.newDocument},t.validator=f,t.validate=h},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,o=Array.isArray,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)void 0!==e[r]&&(n[r]=e[r]);return n};e.exports={arrayToObject:a,assign:function(e,t){return Object.keys(t).reduce(function(e,n){return e[n]=t[n],e},e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var i=t[r],a=i.obj[i.prop],s=Object.keys(a),u=0;u<s.length;++u){var c=s[u],l=a[c];"object"==typeof l&&null!==l&&-1===n.indexOf(l)&&(t.push({obj:a,prop:c}),n.push(l))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var r=[],i=0;i<n.length;++i)void 0!==n[i]&&r.push(n[i]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(e){return r}},encode:function(e,t,n){if(0===e.length)return e;var r="string"==typeof e?e:String(e);if("iso-8859-1"===n)return escape(r).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var o="",a=0;a<r.length;++a){var s=r.charCodeAt(a);45===s||46===s||95===s||126===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?o+=r.charAt(a):s<128?o+=i[s]:s<2048?o+=i[192|s>>6]+i[128|63&s]:s<55296||s>=57344?o+=i[224|s>>12]+i[128|s>>6&63]+i[128|63&s]:(a+=1,s=65536+((1023&s)<<10|1023&r.charCodeAt(a)),o+=i[240|s>>18]+i[128|s>>12&63]+i[128|s>>6&63]+i[128|63&s])}return o},isBuffer:function(e){return!(!e||"object"!=typeof e||!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e)))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(o(t))t.push(n);else{if(!t||"object"!=typeof t)return[t,n];(i&&(i.plainObjects||i.allowPrototypes)||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(n);var s=t;return o(t)&&!o(n)&&(s=a(t,i)),o(t)&&o(n)?(n.forEach(function(n,o){if(r.call(t,o)){var a=t[o];a&&"object"==typeof a&&n&&"object"==typeof n?t[o]=e(a,n,i):t.push(n)}else t[o]=n}),t):Object.keys(n).reduce(function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t},s)}}},function(e,t,n){"use strict";var r=String.prototype.replace,o=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,o,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";var r=n(32),o=n(30),i=n(132),a=n(80),s=n(71),u=n(179),c=n(108),l=n(178),p=n(41),f=n(131),h=n(47).f,d=n(260)(0),m=n(46);e.exports=function(e,t,n,v,g,y){var b=r[e],_=b,w=g?"set":"add",x=_&&_.prototype,E={};return m&&"function"==typeof _&&(y||x.forEach&&!a(function(){(new _).entries().next()}))?(_=t(function(t,n){l(t,_,e,"_c"),t._c=new b,null!=n&&c(n,g,t[w],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in x&&(!y||"clear"!=e)&&s(_.prototype,e,function(n,r){if(l(this,_,e),!t&&y&&!p(n))return"get"==e&&void 0;var o=this._c[e](0===n?0:n,r);return t?this:o})}),y||h(_.prototype,"size",{get:function(){return this._c.size}})):(_=v.getConstructor(t,e,g,w),u(_.prototype,n),i.NEED=!0),f(_,e),E[e]=_,o(o.G+o.W+o.F,E),y||v.setStrong(_,e,g),_}},function(e,t,n){"use strict";var r=n(30);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){"use strict";var r=n(30),o=n(129),i=n(60),a=n(108);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,s,u=arguments[1];return o(this),(t=void 0!==u)&&o(u),null==e?new this:(n=[],t?(r=0,s=i(u,arguments[2],2),a(e,!1,function(e){n.push(s(e,r++))})):a(e,!1,n.push,n),new this(n))}})}},function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwcHgiICBoZWlnaHQ9IjIwMHB4IiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiIGNsYXNzPSJsZHMtcm9sbGluZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIG5nLWF0dHItc3Ryb2tlPSJ7e2NvbmZpZy5jb2xvcn19IiBuZy1hdHRyLXN0cm9rZS13aWR0aD0ie3tjb25maWcud2lkdGh9fSIgbmctYXR0ci1yPSJ7e2NvbmZpZy5yYWRpdXN9fSIgbmctYXR0ci1zdHJva2UtZGFzaGFycmF5PSJ7e2NvbmZpZy5kYXNoYXJyYXl9fSIgc3Ryb2tlPSIjNTU1NTU1IiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9ImxpbmVhciIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxcyIgYmVnaW49IjBzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvY2lyY2xlPjwvc3ZnPgo="},function(e,t,n){"use strict";e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",GT:">",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t,n){"use strict";var r=n(459),o=n(37).unescapeMd;e.exports=function(e,t){var n,i,a,s=t,u=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<u;){if(10===(n=e.src.charCodeAt(t)))return!1;if(62===n)return a=r(o(e.src.slice(s+1,t))),!!e.parser.validateLink(a)&&(e.pos=t+1,e.linkContent=a,!0);92===n&&t+1<u?t+=2:t++}return!1}for(i=0;t<u&&32!==(n=e.src.charCodeAt(t))&&!(n<32||127===n);)if(92===n&&t+1<u)t+=2;else{if(40===n&&++i>1)break;if(41===n&&--i<0)break;t++}return s!==t&&(a=o(e.src.slice(s,t)),!!e.parser.validateLink(a)&&(e.linkContent=a,e.pos=t,!0))}},function(e,t,n){"use strict";var r=n(37).replaceEntities;e.exports=function(e){var t=r(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}},function(e,t,n){"use strict";var r=n(37).unescapeMd;e.exports=function(e,t){var n,o=t,i=e.posMax,a=e.src.charCodeAt(t);if(34!==a&&39!==a&&40!==a)return!1;for(t++,40===a&&(a=41);t<i;){if((n=e.src.charCodeAt(t))===a)return e.pos=t+1,e.linkContent=r(e.src.slice(o+1,t)),!0;92===n&&t+1<i?t+=2:t++}return!1}},function(e,t,n){"use strict";e.exports=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.a=n}).call(this,n(42))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.combineReducers=void 0;var r,o=n(582),i=(r=o)&&r.__esModule?r:{default:r};t.combineReducers=i.default},function(e,t,n){"use strict";var r=/^(%20|\s)*(javascript|data)/im,o=/[^\x20-\x7E]/gim,i=/^([^:]+):/gm,a=[".","/"];e.exports={sanitizeUrl:function(e){var t,n,s=e.replace(o,"");return function(e){return a.indexOf(e[0])>-1}(s)?s:(n=s.match(i))?(t=n[0],r.test(t)?"about:blank":s):"about:blank"}}},function(e,t,n){var r=n(591),o=n(599)(function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)});e.exports=o},function(e,t,n){var r=n(370),o=n(168),i=n(668),a=n(35),s=n(384);e.exports=function(e,t,n){var u=a(e)?r:i;return n&&s(e,t,n)&&(t=void 0),u(e,o(t,3))}},function(e,t,n){(function(t){var r=n(673),o=n(674).Stream,i="    ";function a(e,t,n){n=n||0;var o,i,s=(o=t,new Array(n||0).join(o||"")),u=e;if("object"==typeof e&&((u=e[i=Object.keys(e)[0]])&&u._elem))return u._elem.name=i,u._elem.icount=n,u._elem.indent=t,u._elem.indents=s,u._elem.interrupt=u,u._elem;var c,l=[],p=[];function f(e){Object.keys(e).forEach(function(t){l.push(function(e,t){return e+'="'+r(t)+'"'}(t,e[t]))})}switch(typeof u){case"object":if(null===u)break;u._attr&&f(u._attr),u._cdata&&p.push(("<![CDATA["+u._cdata).replace(/\]\]>/g,"]]]]><![CDATA[>")+"]]>"),u.forEach&&(c=!1,p.push(""),u.forEach(function(e){"object"==typeof e?"_attr"==Object.keys(e)[0]?f(e._attr):p.push(a(e,t,n+1)):(p.pop(),c=!0,p.push(r(e)))}),c||p.push(""));break;default:p.push(r(u))}return{name:i,interrupt:!1,attributes:l,content:p,icount:n,indents:s,indent:t}}function s(e,t,n){if("object"!=typeof t)return e(!1,t);var r=t.interrupt?1:t.content.length;function o(){for(;t.content.length;){var o=t.content.shift();if(void 0!==o){if(i(o))return;s(e,o)}}e(!1,(r>1?t.indents:"")+(t.name?"</"+t.name+">":"")+(t.indent&&!n?"\n":"")),n&&n()}function i(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=o,t.interrupt=!1,e(!0),!0)}if(e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(r?t.name?">":"":t.name?"/>":"")+(t.indent&&r>1?"\n":"")),!r)return e(!1,t.indent?"\n":"");i(t)||o()}e.exports=function(e,n){"object"!=typeof n&&(n={indent:n});var r,u,c=n.stream?new o:null,l="",p=!1,f=n.indent?!0===n.indent?i:n.indent:"",h=!0;function d(e){h?t.nextTick(e):e()}function m(e,t){if(void 0!==t&&(l+=t),e&&!p&&(c=c||new o,p=!0),e&&p){var n=l;d(function(){c.emit("data",n)}),l=""}}function v(e,t){s(m,a(e,f,f?1:0),t)}function g(){if(c){var e=l;d(function(){c.emit("data",e),c.emit("end"),c.readable=!1,c.emit("close")})}}return d(function(){h=!1}),n.declaration&&(r=n.declaration,u={version:"1.0",encoding:r.encoding||"UTF-8"},r.standalone&&(u.standalone=r.standalone),v({"?xml":{_attr:u}}),l=l.replace("/>","?>")),e&&e.forEach?e.forEach(function(t,n){var r;n+1===e.length&&(r=g),v(t,r)}):v(e,g),c?(c.readable=!0,c):l},e.exports.element=e.exports.Element=function(){var e={_elem:a(Array.prototype.slice.call(arguments)),push:function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,n=this._elem.indent;s(this.append,a(e,n,this._elem.icount+(n?1:0)),function(){t.append(!0)})},close:function(e){void 0!==e&&this.push(e),this.end&&this.end()}};return e}}).call(this,n(72))},function(e,t,n){(function(t){var n;n=void 0!==t?t:this,e.exports=function(e){if(e.CSS&&e.CSS.escape)return e.CSS.escape;var t=function(e){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var t,n=String(e),r=n.length,o=-1,i="",a=n.charCodeAt(0);++o<r;)0!=(t=n.charCodeAt(o))?i+=t>=1&&t<=31||127==t||0==o&&t>=48&&t<=57||1==o&&t>=48&&t<=57&&45==a?"\\"+t.toString(16)+" ":0==o&&1==r&&45==t||!(t>=128||45==t||95==t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122)?"\\"+n.charAt(o):n.charAt(o):i+="�";return i};return e.CSS||(e.CSS={}),e.CSS.escape=t,t}(n)}).call(this,n(42))},function(e,t,n){var r=n(365),o=n(383),i=n(168),a=n(738),s=n(35);e.exports=function(e,t,n){var u=s(e)?r:a,c=arguments.length<3;return u(e,i(t,4),n,c,o)}},function(e,t,n){var r=n(49),o=n(790),i=n(382),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var c,l,p,f,h,d,m=0,v=!1,g=!1,y=!0;if("function"!=typeof e)throw new TypeError(a);function b(t){var n=c,r=l;return c=l=void 0,m=t,f=e.apply(r,n)}function _(e){var n=e-d;return void 0===d||n>=t||n<0||g&&e-m>=p}function w(){var e=o();if(_(e))return x(e);h=setTimeout(w,function(e){var n=t-(e-d);return g?u(n,p-(e-m)):n}(e))}function x(e){return h=void 0,y&&c?b(e):(c=l=void 0,f)}function E(){var e=o(),n=_(e);if(c=arguments,l=this,d=e,n){if(void 0===h)return function(e){return m=e,h=setTimeout(w,t),v?b(e):f}(d);if(g)return clearTimeout(h),h=setTimeout(w,t),b(d)}return void 0===h&&(h=setTimeout(w,t)),f}return t=i(t)||0,r(n)&&(v=!!n.leading,p=(g="maxWait"in n)?s(i(n.maxWait)||0,t):p,y="trailing"in n?!!n.trailing:y),E.cancel=function(){void 0!==h&&clearTimeout(h),m=0,c=d=l=h=void 0},E.flush=function(){return void 0===h?f:x(o())},E}},function(e,t,n){"use strict";e.exports=n(800)},function(e,t,n){var r=n(362),o=n(443),i=n(905),a=n(104),s=n(114),u=n(908),c=n(447),l=n(446),p=c(function(e,t){var n={};if(null==e)return n;var c=!1;t=r(t,function(t){return t=a(t,e),c||(c=t.length>1),t}),s(e,l(e),n),c&&(n=o(n,7,u));for(var p=t.length;p--;)i(n,t[p]);return n});e.exports=p},function(e,t,n){var r,o,i;o=[],r=function(){"use strict";var e=function(e){return e&&"getComputedStyle"in window&&"smooth"===window.getComputedStyle(e)["scroll-behavior"]};if("undefined"==typeof window||!("document"in window))return{};var t=function(t,n,r){var o;n=n||999,r||0===r||(r=9);var i=function(e){o=e},a=function(){clearTimeout(o),i(0)},s=function(e){return Math.max(0,t.getTopOf(e)-r)},u=function(r,o,s){if(a(),0===o||o&&o<0||e(t.body))t.toY(r),s&&s();else{var u=t.getY(),c=Math.max(0,r)-u,l=(new Date).getTime();o=o||Math.min(Math.abs(c),n),function e(){i(setTimeout(function(){var n=Math.min(1,((new Date).getTime()-l)/o),r=Math.max(0,Math.floor(u+c*(n<.5?2*n*n:n*(4-2*n)-1)));t.toY(r),n<1&&t.getHeight()+r<t.body.scrollHeight?e():(setTimeout(a,99),s&&s())},9))}()}},c=function(e,t,n){u(s(e),t,n)};return{setup:function(e,t){return(0===e||e)&&(n=e),(0===t||t)&&(r=t),{defaultDuration:n,edgeOffset:r}},to:c,toY:u,intoView:function(e,n,o){var i=e.getBoundingClientRect().height,a=t.getTopOf(e)+i,l=t.getHeight(),p=t.getY(),f=p+l;s(e)<p||i+r>l?c(e,n,o):a+r>f?u(a-l+r,n,o):o&&o()},center:function(e,n,r,o){u(Math.max(0,t.getTopOf(e)-t.getHeight()/2+(r||e.getBoundingClientRect().height/2)),n,o)},stop:a,moving:function(){return!!o},getY:t.getY,getTopOf:t.getTopOf}},n=document.documentElement,r=function(){return window.scrollY||n.scrollTop},o=t({body:document.scrollingElement||document.body,toY:function(e){window.scrollTo(0,e)},getY:r,getHeight:function(){return window.innerHeight||n.clientHeight},getTopOf:function(e){return e.getBoundingClientRect().top+r()-n.offsetTop}});if(o.createScroller=function(e,r,o){return t({body:e,toY:function(t){e.scrollTop=t},getY:function(){return e.scrollTop},getHeight:function(){return Math.min(e.clientHeight,window.innerHeight||n.clientHeight)},getTopOf:function(e){return e.offsetTop}},r,o)},"addEventListener"in window&&!window.noZensmooth&&!e(document.body)){var i="history"in window&&"pushState"in history,a=i&&"scrollRestoration"in history;a&&(history.scrollRestoration="auto"),window.addEventListener("load",function(){a&&(setTimeout(function(){history.scrollRestoration="manual"},9),window.addEventListener("popstate",function(e){e.state&&"zenscrollY"in e.state&&o.toY(e.state.zenscrollY)},!1)),window.location.hash&&setTimeout(function(){var e=o.setup().edgeOffset;if(e){var t=document.getElementById(window.location.href.split("#")[1]);if(t){var n=Math.max(0,o.getTopOf(t)-e),r=o.getY()-n;0<=r&&r<9&&window.scrollTo(0,n)}}},9)},!1);var s=new RegExp("(^|\\s)noZensmooth(\\s|$)");window.addEventListener("click",function(e){for(var t=e.target;t&&"A"!==t.tagName;)t=t.parentNode;if(!(!t||1!==e.which||e.shiftKey||e.metaKey||e.ctrlKey||e.altKey)){if(a){var n=history.state&&"object"==typeof history.state?history.state:{};n.zenscrollY=o.getY();try{history.replaceState(n,"")}catch(e){}}var r=t.getAttribute("href")||"";if(0===r.indexOf("#")&&!s.test(t.className)){var u=0,c=document.getElementById(r.substring(1));if("#"!==r){if(!c)return;u=o.getTopOf(c)}e.preventDefault();var l=function(){window.location=r},p=o.setup().edgeOffset;p&&(u=Math.max(0,u-p),i&&(l=function(){history.pushState({},"",r)})),o.toY(u,null,l)}}},!1)}return o}(),void 0===(i="function"==typeof r?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){e.exports=n(958)},function(e,t){e.exports=function(e,t,n){var r=new Blob([e],{type:n||"application/octet-stream"});if(void 0!==window.navigator.msSaveBlob)window.navigator.msSaveBlob(r,t);else{var o=window.URL.createObjectURL(r),i=document.createElement("a");i.style.display="none",i.href=o,i.setAttribute("download",t),void 0===i.download&&i.setAttribute("target","_blank"),document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(o)}}},function(e,t,n){"use strict";var r=n(966),o=function(e){return e.split(/(<\/?[^>]+>)/g).filter(function(e){return""!==e.trim()})},i=function(e){return/<\/+[^>]+>/.test(e)},a=function(e){return/<[^>]+\/>/.test(e)},s=function(e){return function(e){return/<[^>!]+>/.test(e)}(e)&&!i(e)&&!a(e)};function u(e){return o(e).map(function(e){return{value:e,type:c(e)}})}function c(e){return i(e)?"ClosingTag":s(e)?"OpeningTag":a(e)?"SelfClosingTag":"Text"}e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.indentor,o=t.textNodesOnSameLine,i=0,a=[];n=n||"    ";var s=u(e).map(function(e,t,s){var u=e.value,c=e.type;"ClosingTag"===c&&i--;var l=r(n,i),p=l+u;if("OpeningTag"===c&&i++,o){var f=s[t-1],h=s[t-2];"ClosingTag"===c&&"Text"===f.type&&"OpeningTag"===h.type&&(p=""+l+h.value+f.value+u,a.push(t-2,t-1))}return p});return a.forEach(function(e){return s[e]=null}),s.filter(function(e){return!!e}).join("\n")}},function(e,t,n){var r=n(65);e.exports=function(e){return r(e).toLowerCase()}},function(e,t,n){!function(e,t,n){"use strict";t=t&&"default"in t?t.default:t;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),o(t,[{key:"shouldComponentUpdate",value:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=this.state||{};return!(this.updateOnProps||Object.keys(r({},e,this.props))).every(function(r){return n.is(e[r],t.props[r])})||!(this.updateOnStates||Object.keys(r({},o,i))).every(function(e){return n.is(o[e],i[e])})}}]),t}(t.Component);e.ImmutablePureComponent=i,e.default=i,Object.defineProperty(e,"__esModule",{value:!0})}(t,n(0),n(1))},function(e,t,n){"use strict";var r=n(1018).DebounceInput;r.DebounceInput=r,e.exports=r},function(e,t,n){n(482),e.exports=n(1021)},function(e,t,n){"use strict";n.r(t);var r=n(18);void 0===n.n(r).a.Promise&&n(483),String.prototype.startsWith||n(512)},function(e,t,n){n(484),n(330),n(495),n(499),n(510),n(511),e.exports=n(78).Promise},function(e,t,n){"use strict";var r=n(194),o={};o[n(33)("toStringTag")]="z",o+""!="[object z]"&&n(95)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){e.exports=!n(122)&&!n(123)(function(){return 7!=Object.defineProperty(n(196)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(96);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=n(488),o=n(329),i=n(198),a={};n(76)(a,n(33)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(77),o=n(489),i=n(336),a=n(197)("IE_PROTO"),s=function(){},u=function(){var e,t=n(196)("iframe"),r=i.length;for(t.style.display="none",n(337).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(147),o=n(77),i=n(334);e.exports=n(122)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){var r=n(148),o=n(152),i=n(492)(!1),a=n(197)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){var r=n(121);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(152),o=n(125),i=n(335);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=o(u.length),l=i(a,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(148),o=n(494),i=n(197)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){var r=n(68);e.exports=function(e){return Object(r(e))}},function(e,t,n){for(var r=n(496),o=n(334),i=n(95),a=n(44),s=n(76),u=n(124),c=n(33),l=c("iterator"),p=c("toStringTag"),f=u.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=o(h),m=0;m<d.length;m++){var v,g=d[m],y=h[g],b=a[g],_=b&&b.prototype;if(_&&(_[l]||s(_,l,f),_[p]||s(_,p,g),u[g]=f,y))for(v in r)_[v]||i(_,v,r[v],!0)}},function(e,t,n){"use strict";var r=n(497),o=n(498),i=n(124),a=n(152);e.exports=n(332)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(33)("unscopables"),o=Array.prototype;null==o[r]&&n(76)(o,r,{}),e.exports=function(e){o[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r,o,i,a,s=n(333),u=n(44),c=n(150),l=n(194),p=n(39),f=n(96),h=n(151),d=n(500),m=n(501),v=n(338),g=n(339).set,y=n(506)(),b=n(199),_=n(340),w=n(341),x=u.TypeError,E=u.process,S=u.Promise,C="process"==l(E),k=function(){},O=o=b.f,A=!!function(){try{var e=S.resolve(1),t=(e.constructor={})[n(33)("species")]=function(e){e(k,k)};return(C||"function"==typeof PromiseRejectionEvent)&&e.then(k)instanceof t}catch(e){}}(),T=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},j=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,o=1==e._s,i=0,a=function(t){var n,i,a,s=o?t.ok:t.fail,u=t.resolve,c=t.reject,l=t.domain;try{s?(o||(2==e._h&&M(e),e._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===t.promise?c(x("Promise-chain cycle")):(i=T(n))?i.call(n,u,c):u(n)):c(r)}catch(e){l&&!a&&l.exit(),c(e)}};n.length>i;)a(n[i++]);e._c=[],e._n=!1,t&&!e._h&&P(e)})}},P=function(e){g.call(u,function(){var t,n,r,o=e._v,i=I(e);if(i&&(t=_(function(){C?E.emit("unhandledRejection",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=C||I(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},I=function(e){return 1!==e._h&&0===(e._a||e._c).length},M=function(e){g.call(u,function(){var t;C?E.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},N=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),j(t,!0))},R=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw x("Promise can't be resolved itself");(t=T(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(R,r,1),c(N,r,1))}catch(e){N.call(r,e)}}):(n._v=e,n._s=1,j(n,!1))}catch(e){N.call({_w:n,_d:!1},e)}}};A||(S=function(e){d(this,S,"Promise","_h"),h(e),r.call(this);try{e(c(R,this,1),c(N,this,1))}catch(e){N.call(this,e)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(507)(S.prototype,{then:function(e,t){var n=O(v(this,S));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=C?E.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&j(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(R,e,1),this.reject=c(N,e,1)},b.f=O=function(e){return e===S||e===a?new i(e):o(e)}),p(p.G+p.W+p.F*!A,{Promise:S}),n(198)(S,"Promise"),n(508)("Promise"),a=n(78).Promise,p(p.S+p.F*!A,"Promise",{reject:function(e){var t=O(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(s||!A),"Promise",{resolve:function(e){return w(s&&this===a?S:this,e)}}),p(p.S+p.F*!(A&&n(509)(function(e){S.all(e).catch(k)})),"Promise",{all:function(e){var t=this,n=O(t),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;m(e,!1,function(e){var s=i++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=O(t),r=n.reject,o=_(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(150),o=n(502),i=n(503),a=n(77),s=n(125),u=n(504),c={},l={};(t=e.exports=function(e,t,n,p,f){var h,d,m,v,g=f?function(){return e}:u(e),y=r(n,p,t?2:1),b=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(i(g)){for(h=s(e.length);h>b;b++)if((v=t?y(a(d=e[b])[0],d[1]):y(e[b]))===c||v===l)return v}else for(m=g.call(e);!(d=m.next()).done;)if((v=o(m,y,d.value,t))===c||v===l)return v}).BREAK=c,t.RETURN=l},function(e,t,n){var r=n(77);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(124),o=n(33)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(194),o=n(33)("iterator"),i=n(124);e.exports=n(78).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(44),o=n(339).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(121)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve();n=function(){l.then(c)}}else n=function(){o.call(r,c)};else{var p=!0,f=document.createTextNode("");new i(c).observe(f,{characterData:!0}),n=function(){f.data=p=!p}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t,n){var r=n(95);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(44),o=n(147),i=n(122),a=n(33)("species");e.exports=function(e){var t=r[e];i&&t&&!t[a]&&o.f(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(33)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){"use strict";var r=n(39),o=n(78),i=n(44),a=n(338),s=n(341);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(39),o=n(199),i=n(340);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){n(513),n(514),n(515),n(330),n(518),n(519),n(520),n(521),n(523),n(524),n(525),n(526),n(527),n(528),n(529),n(530),n(531),n(532),n(533),n(534),n(535),n(536),n(537),n(538),n(539),n(540),e.exports=n(78).String},function(e,t,n){var r=n(39),o=n(335),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,a=0;r>a;){if(t=+arguments[a++],o(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){var r=n(39),o=n(152),i=n(125);r(r.S,"String",{raw:function(e){for(var t=o(e.raw),n=i(t.length),r=arguments.length,a=[],s=0;n>s;)a.push(String(t[s++])),s<r&&a.push(String(arguments[s]));return a.join("")}})},function(e,t,n){"use strict";n(516)("trim",function(e){return function(){return e(this,3)}})},function(e,t,n){var r=n(39),o=n(68),i=n(123),a=n(517),s="["+a+"]",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(e,t,n){var o={},s=i(function(){return!!a[e]()||"​\85"!="​\85"[e]()}),u=o[e]=s?t(p):a[e];n&&(o[n]=u),r(r.P+r.F*s,"String",o)},p=l.trim=function(e,t){return e=String(o(e)),1&t&&(e=e.replace(u,"")),2&t&&(e=e.replace(c,"")),e};e.exports=l},function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(39),o=n(331)(!1);r(r.P,"String",{codePointAt:function(e){return o(this,e)}})},function(e,t,n){"use strict";var r=n(39),o=n(125),i=n(200),a="".endsWith;r(r.P+r.F*n(201)("endsWith"),"String",{endsWith:function(e){var t=i(this,e,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(t.length),s=void 0===n?r:Math.min(o(n),r),u=String(e);return a?a.call(t,u,s):t.slice(s-u.length,s)===u}})},function(e,t,n){"use strict";var r=n(39),o=n(200);r(r.P+r.F*n(201)("includes"),"String",{includes:function(e){return!!~o(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(39);r(r.P,"String",{repeat:n(522)})},function(e,t,n){"use strict";var r=n(149),o=n(68);e.exports=function(e){var t=String(o(this)),n="",i=r(e);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";var r=n(39),o=n(125),i=n(200),a="".startsWith;r(r.P+r.F*n(201)("startsWith"),"String",{startsWith:function(e){var t=i(this,e,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return a?a.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){"use strict";n(40)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},function(e,t,n){"use strict";n(40)("big",function(e){return function(){return e(this,"big","","")}})},function(e,t,n){"use strict";n(40)("blink",function(e){return function(){return e(this,"blink","","")}})},function(e,t,n){"use strict";n(40)("bold",function(e){return function(){return e(this,"b","","")}})},function(e,t,n){"use strict";n(40)("fixed",function(e){return function(){return e(this,"tt","","")}})},function(e,t,n){"use strict";n(40)("fontcolor",function(e){return function(t){return e(this,"font","color",t)}})},function(e,t,n){"use strict";n(40)("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},function(e,t,n){"use strict";n(40)("italics",function(e){return function(){return e(this,"i","","")}})},function(e,t,n){"use strict";n(40)("link",function(e){return function(t){return e(this,"a","href",t)}})},function(e,t,n){"use strict";n(40)("small",function(e){return function(){return e(this,"small","","")}})},function(e,t,n){"use strict";n(40)("strike",function(e){return function(){return e(this,"strike","","")}})},function(e,t,n){"use strict";n(40)("sub",function(e){return function(){return e(this,"sub","","")}})},function(e,t,n){"use strict";n(40)("sup",function(e){return function(){return e(this,"sup","","")}})},function(e,t,n){n(153)("match",1,function(e,t,n){return[function(n){"use strict";var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},n]})},function(e,t,n){n(153)("replace",2,function(e,t,n){return[function(r,o){"use strict";var i=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},n]})},function(e,t,n){n(153)("search",1,function(e,t,n){return[function(n){"use strict";var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},n]})},function(e,t,n){n(153)("split",2,function(e,t,r){"use strict";var o=n(342),i=r,a=[].push;if("c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length){var s=void 0===/()??/.exec("")[1];r=function(e,t){var n=String(this);if(void 0===e&&0===t)return[];if(!o(e))return i.call(n,e,t);var r,u,c,l,p,f=[],h=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),d=0,m=void 0===t?4294967295:t>>>0,v=new RegExp(e.source,h+"g");for(s||(r=new RegExp("^"+v.source+"$(?!\\s)",h));(u=v.exec(n))&&!((c=u.index+u[0].length)>d&&(f.push(n.slice(d,u.index)),!s&&u.length>1&&u[0].replace(r,function(){for(p=1;p<arguments.length-2;p++)void 0===arguments[p]&&(u[p]=void 0)}),u.length>1&&u.index<n.length&&a.apply(f,u.slice(1)),l=u[0].length,d=c,f.length>=m));)v.lastIndex===u.index&&v.lastIndex++;return d===n.length?!l&&v.test("")||f.push(""):f.push(n.slice(d)),f.length>m?f.slice(0,m):f}}else"0".split(void 0,0).length&&(r=function(e,t){return void 0===e&&0===t?[]:i.call(this,e,t)});return[function(n,o){var i=e(this),a=null==n?void 0:n[t];return void 0!==a?a.call(n,i,o):r.call(String(i),n,o)},r]})},function(e,t,n){var r=n(22),o=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return o.stringify.apply(o,arguments)}},function(e,t,n){n(543),e.exports=n(22).Object.keys},function(e,t,n){var r=n(79),o=n(126);n(208)("keys",function(){return function(e){return o(r(e))}})},function(e,t,n){var r=n(70),o=n(154),i=n(545);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=o(u.length),l=i(a,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(204),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t,n){e.exports=n(547)},function(e,t,n){n(97),n(99),e.exports=n(213).f("iterator")},function(e,t,n){var r=n(204),o=n(202);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(i=s.charCodeAt(u))<55296||i>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(156),o=n(130),i=n(131),a={};n(71)(a,n(34)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){"use strict";var r=n(551),o=n(348),i=n(98),a=n(70);e.exports=n(211)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t,n){e.exports=n(553)},function(e,t,n){n(349),n(160),n(556),n(557),e.exports=n(22).Symbol},function(e,t,n){var r=n(126),o=n(157),i=n(158);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,s=n(e),u=i.f,c=0;s.length>c;)u.call(e,a=s[c++])&&t.push(a);return t}},function(e,t,n){var r=n(70),o=n(216).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(e){return a.slice()}}(e):o(r(e))}},function(e,t,n){n(214)("asyncIterator")},function(e,t,n){n(214)("observable")},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=c(e),r=n[0],a=n[1],s=new i(function(e,t,n){return 3*(t+n)/4-n}(0,r,a)),u=0,l=a>0?r-4:r,p=0;p<l;p+=4)t=o[e.charCodeAt(p)]<<18|o[e.charCodeAt(p+1)]<<12|o[e.charCodeAt(p+2)]<<6|o[e.charCodeAt(p+3)],s[u++]=t>>16&255,s[u++]=t>>8&255,s[u++]=255&t;2===a&&(t=o[e.charCodeAt(p)]<<2|o[e.charCodeAt(p+1)]>>4,s[u++]=255&t);1===a&&(t=o[e.charCodeAt(p)]<<10|o[e.charCodeAt(p+1)]<<4|o[e.charCodeAt(p+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s<u;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,u=(1<<s)-1,c=u>>1,l=-7,p=n?o-1:0,f=n?-1:1,h=e[t+p];for(p+=f,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+p],p+=f,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+p],p+=f,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,r),i-=c}return(h?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,u,c=8*i-o-1,l=(1<<c)-1,p=l>>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+p>=1?f/u:f*Math.pow(2,1-p))*u>=2&&(a++,u/=2),a+p>=l?(s=0,a=l):a+p>=1?(s=(t*u-1)*Math.pow(2,o),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),a=0));o>=8;e[n+h]=255&s,h+=d,s/=256,o-=8);for(a=a<<o|s,c+=o;c>0;e[n+h]=255&a,h+=d,a/=256,c-=8);e[n+h-d]|=128*m}},function(e,t,n){n(561),e.exports=n(22).Array.isArray},function(e,t,n){var r=n(30);r(r.S,"Array",{isArray:n(215)})},function(e,t,n){n(563);var r=n(22).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(30);r(r.S+r.F*!n(46),"Object",{defineProperty:n(47).f})},function(e,t,n){n(565),e.exports=n(22).Object.assign},function(e,t,n){var r=n(30);r(r.S+r.F,"Object",{assign:n(351)})},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(568),o=n(101),i=n(54),a=n(569),s=r.twoArgumentPooler,u=r.fourArgumentPooler,c=/\/+/g;function l(e){return(""+e).replace(c,"$&/")}function p(e,t){this.func=e,this.context=t,this.count=0}function f(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function h(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function d(e,t,n){var r=e.result,a=e.keyPrefix,s=e.func,u=e.context,c=s.call(u,t,e.count++);Array.isArray(c)?m(c,r,n,i.thatReturnsArgument):null!=c&&(o.isValidElement(c)&&(c=o.cloneAndReplaceKey(c,a+(!c.key||t&&t.key===c.key?"":l(c.key)+"/")+n)),r.push(c))}function m(e,t,n,r,o){var i="";null!=n&&(i=l(n)+"/");var s=h.getPooled(t,i,r,o);a(e,d,s),h.release(s)}function v(e,t,n){return null}p.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},r.addPoolingTo(p,s),h.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},r.addPoolingTo(h,u);var g={forEach:function(e,t,n){if(null==e)return e;var r=p.getPooled(t,n);a(e,f,r),p.release(r)},map:function(e,t,n){if(null==e)return e;var r=[];return m(e,r,null,t,n),r},mapIntoWithKeyPrefixInternal:m,count:function(e,t){return a(e,v,null)},toArray:function(e){var t=[];return m(e,t,null,i.thatReturnsArgument),t}};e.exports=g},function(e,t,n){"use strict";var r=n(133),o=(n(15),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(133),o=(n(62),n(355)),i=n(570),a=(n(15),n(571)),s=(n(23),"."),u=":";function c(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,l,p){var f,h=typeof t;if("undefined"!==h&&"boolean"!==h||(t=null),null===t||"string"===h||"number"===h||"object"===h&&t.$$typeof===o)return l(p,t,""===n?s+c(t,0):n),1;var d=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)d+=e(f=t[v],m+c(f,v),l,p);else{var g=i(t);if(g){var y,b=g.call(t);if(g!==t.entries)for(var _=0;!(y=b.next()).done;)d+=e(f=y.value,m+c(f,_++),l,p);else for(;!(y=b.next()).done;){var w=y.value;w&&(d+=e(f=w[1],m+a.escape(w[0])+u+c(f,0),l,p))}}else if("object"===h){var x=String(t);r("31","[object Object]"===x?"object with keys {"+Object.keys(t).join(", ")+"}":x,"")}}return d}(e,"",t,n)}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(101).createFactory,o={a:r("a"),abbr:r("abbr"),address:r("address"),area:r("area"),article:r("article"),aside:r("aside"),audio:r("audio"),b:r("b"),base:r("base"),bdi:r("bdi"),bdo:r("bdo"),big:r("big"),blockquote:r("blockquote"),body:r("body"),br:r("br"),button:r("button"),canvas:r("canvas"),caption:r("caption"),cite:r("cite"),code:r("code"),col:r("col"),colgroup:r("colgroup"),data:r("data"),datalist:r("datalist"),dd:r("dd"),del:r("del"),details:r("details"),dfn:r("dfn"),dialog:r("dialog"),div:r("div"),dl:r("dl"),dt:r("dt"),em:r("em"),embed:r("embed"),fieldset:r("fieldset"),figcaption:r("figcaption"),figure:r("figure"),footer:r("footer"),form:r("form"),h1:r("h1"),h2:r("h2"),h3:r("h3"),h4:r("h4"),h5:r("h5"),h6:r("h6"),head:r("head"),header:r("header"),hgroup:r("hgroup"),hr:r("hr"),html:r("html"),i:r("i"),iframe:r("iframe"),img:r("img"),input:r("input"),ins:r("ins"),kbd:r("kbd"),keygen:r("keygen"),label:r("label"),legend:r("legend"),li:r("li"),link:r("link"),main:r("main"),map:r("map"),mark:r("mark"),menu:r("menu"),menuitem:r("menuitem"),meta:r("meta"),meter:r("meter"),nav:r("nav"),noscript:r("noscript"),object:r("object"),ol:r("ol"),optgroup:r("optgroup"),option:r("option"),output:r("output"),p:r("p"),param:r("param"),picture:r("picture"),pre:r("pre"),progress:r("progress"),q:r("q"),rp:r("rp"),rt:r("rt"),ruby:r("ruby"),s:r("s"),samp:r("samp"),script:r("script"),section:r("section"),select:r("select"),small:r("small"),source:r("source"),span:r("span"),strong:r("strong"),style:r("style"),sub:r("sub"),summary:r("summary"),sup:r("sup"),table:r("table"),tbody:r("tbody"),td:r("td"),textarea:r("textarea"),tfoot:r("tfoot"),th:r("th"),thead:r("thead"),time:r("time"),title:r("title"),tr:r("tr"),track:r("track"),u:r("u"),ul:r("ul"),var:r("var"),video:r("video"),wbr:r("wbr"),circle:r("circle"),clipPath:r("clipPath"),defs:r("defs"),ellipse:r("ellipse"),g:r("g"),image:r("image"),line:r("line"),linearGradient:r("linearGradient"),mask:r("mask"),path:r("path"),pattern:r("pattern"),polygon:r("polygon"),polyline:r("polyline"),radialGradient:r("radialGradient"),rect:r("rect"),stop:r("stop"),svg:r("svg"),text:r("text"),tspan:r("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(101).isValidElement,o=n(356);e.exports=o(r)},function(e,t,n){"use strict";var r=n(357),o=n(25),i=n(358),a=n(576),s=Function.call.bind(Object.prototype.hasOwnProperty),u=function(){};function c(){return null}e.exports=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator,l="@@iterator";var p="<<anonymous>>",f={array:v("array"),bool:v("boolean"),func:v("function"),number:v("number"),object:v("object"),string:v("string"),symbol:v("symbol"),any:m(c),arrayOf:function(e){return m(function(t,n,r,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){var u=y(s);return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+r+"`, expected an array.")}for(var c=0;c<s.length;c++){var l=e(s,c,r,o,a+"["+c+"]",i);if(l instanceof Error)return l}return null})},element:m(function(t,n,r,o,i){var a=t[n];if(!e(a)){var s=y(a);return new d("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected a single ReactElement.")}return null}),elementType:m(function(e,t,n,o,i){var a=e[t];if(!r.isValidElementType(a)){var s=y(a);return new d("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+n+"`, expected a single ReactElement type.")}return null}),instanceOf:function(e){return m(function(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||p,s=function(e){if(!e.constructor||!e.constructor.name)return p;return e.constructor.name}(t[n]);return new d("Invalid "+o+" `"+i+"` of type `"+s+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null})},node:m(function(e,t,n,r,o){return g(e[t])?null:new d("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return m(function(t,n,r,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var u=t[n],c=y(u);if("object"!==c)return new d("Invalid "+o+" `"+a+"` of type `"+c+"` supplied to `"+r+"`, expected an object.");for(var l in u)if(s(u,l)){var p=e(u,l,r,o,a+"."+l,i);if(p instanceof Error)return p}return null})},oneOf:function(e){if(!Array.isArray(e))return c;return m(function(t,n,r,o,i){for(var a=t[n],s=0;s<e.length;s++)if(h(a,e[s]))return null;var u=JSON.stringify(e,function(e,t){var n=b(t);return"symbol"===n?String(t):t});return new d("Invalid "+o+" `"+i+"` of value `"+String(a)+"` supplied to `"+r+"`, expected one of "+u+".")})},oneOfType:function(e){if(!Array.isArray(e))return c;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return u("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+_(n)+" at index "+t+"."),c}return m(function(t,n,r,o,a){for(var s=0;s<e.length;s++){var u=e[s];if(null==u(t,n,r,o,a,i))return null}return new d("Invalid "+o+" `"+a+"` supplied to `"+r+"`.")})},shape:function(e){return m(function(t,n,r,o,a){var s=t[n],u=y(s);if("object"!==u)return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(var c in e){var l=e[c];if(l){var p=l(s,c,r,o,a+"."+c,i);if(p)return p}}return null})},exact:function(e){return m(function(t,n,r,a,s){var u=t[n],c=y(u);if("object"!==c)return new d("Invalid "+a+" `"+s+"` of type `"+c+"` supplied to `"+r+"`, expected `object`.");var l=o({},t[n],e);for(var p in l){var f=e[p];if(!f)return new d("Invalid "+a+" `"+s+"` key `"+p+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null,"  "));var h=f(u,p,r,a,s+"."+p,i);if(h)return h}return null})}};function h(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(e){this.message=e,this.stack=""}function m(e){function n(n,r,o,a,s,u,c){if((a=a||p,u=u||o,c!==i)&&t){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}return null==r[o]?n?null===r[o]?new d("The "+s+" `"+u+"` is marked as required in `"+a+"`, but its value is `null`."):new d("The "+s+" `"+u+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,o,a,s,u)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function v(e){return m(function(t,n,r,o,i,a){var s=t[n];return y(s)!==e?new d("Invalid "+o+" `"+i+"` of type `"+b(s)+"` supplied to `"+r+"`, expected `"+e+"`."):null})}function g(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(g);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e[l]);if("function"==typeof t)return t}(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!g(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!g(a[1]))return!1}return!0;default:return!1}}function y(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function b(e){if(null==e)return""+e;var t=y(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function _(e){var t=b(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return d.prototype=Error.prototype,f.checkPropTypes=a,f.resetWarningCache=a.resetWarningCache,f.PropTypes=f,f}},function(e,t,n){"use strict";
+var n=this&&this.__extends||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);function r(){this.constructor=e}e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},r=Object.prototype.hasOwnProperty;function o(e,t){return r.call(e,t)}function i(e){if(Array.isArray(e)){for(var t=new Array(e.length),n=0;n<t.length;n++)t[n]=""+n;return t}if(Object.keys)return Object.keys(e);t=[];for(var r in e)o(e,r)&&t.push(r);return t}function a(e){return-1===e.indexOf("/")&&-1===e.indexOf("~")?e:e.replace(/~/g,"~0").replace(/\//g,"~1")}function s(e,t){var n;for(var r in e)if(o(e,r)){if(e[r]===t)return a(r)+"/";if("object"==typeof e[r]&&""!=(n=s(e[r],t)))return a(r)+"/"+n}return""}function u(e,t){var n=[e];for(var r in t){var o="object"==typeof t[r]?JSON.stringify(t[r],null,2):t[r];void 0!==o&&n.push(r+": "+o)}return n.join("\n")}t.hasOwnProperty=o,t._objectKeys=i,t._deepClone=function(e){switch(typeof e){case"object":return JSON.parse(JSON.stringify(e));case"undefined":return null;default:return e}},t.isInteger=function(e){for(var t,n=0,r=e.length;n<r;){if(!((t=e.charCodeAt(n))>=48&&t<=57))return!1;n++}return!0},t.escapePathComponent=a,t.unescapePathComponent=function(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")},t._getPathRecursive=s,t.getPath=function(e,t){if(e===t)return"/";var n=s(e,t);if(""===n)throw new Error("Object not found in root");return"/"+n},t.hasUndefined=function e(t){if(void 0===t)return!0;if(t)if(Array.isArray(t)){for(var n=0,r=t.length;n<r;n++)if(e(t[n]))return!0}else if("object"==typeof t){var o=i(t),a=o.length;for(n=0;n<a;n++)if(e(t[o[n]]))return!0}return!1};var c=function(e){function t(t,n,r,o,i){e.call(this,u(t,{name:n,index:r,operation:o,tree:i})),this.name=n,this.index=r,this.operation=o,this.tree=i,this.message=u(t,{name:n,index:r,operation:o,tree:i})}return n(t,e),t}(Error);t.PatchError=c},function(e,t,n){var r=n(63),o=n(211),i=n(100),a=n(158),s=n(954);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,l=4==e,p=6==e,f=5==e||p,h=t||s;return function(t,s,d){for(var m,v,g=i(t),y=o(g),b=r(s,d,3),_=a(y.length),w=0,x=n?h(t,_):u?h(t,0):void 0;_>w;w++)if((f||w in y)&&(v=b(m=y[w],w,g),e))if(n)x[w]=v;else if(v)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:x.push(m)}else if(l)return!1;return p?-1:c||l?l:x}}},function(e,t,n){"use strict";function r(e,t,n,r,o){this.src=e,this.env=r,this.options=n,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent="",this.labelUnmatchedScopes=0}r.prototype.pushPending=function(){this.tokens.push({type:"text",content:this.pending,level:this.pendingLevel}),this.pending=""},r.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},r.prototype.cacheSet=function(e,t){for(var n=this.cache.length;n<=e;n++)this.cache.push(0);this.cache[e]=t},r.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0},e.exports=r},function(e,t,n){var r=n(605)("toUpperCase");e.exports=r},function(e,t,n){var r=n(226),o="Expected a function";function i(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(i.Cache||r),n}i.Cache=r,e.exports=i},function(e,t,n){var r=n(639)(n(676));e.exports=r},function(e,t,n){"use strict";n.r(t);var r=n(274),o=n(44),i=n(277);t.default=function(e){return{statePlugins:{err:{reducers:Object(r.default)(e),actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r=n(2),o=n.n(r),i=n(16),a=n.n(i),s=n(44),u=n(1),c=n(96),l={line:0,level:"error",message:"Unknown error"};t.default=function(e){var t;return t={},o()(t,s.NEW_THROWN_ERR,function(t,n){var r=n.payload,o=a()(l,r,{type:"thrown"});return t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_THROWN_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return Object(u.fromJS)(a()(l,e,{type:"thrown"}))}),t.update("errors",function(e){return(e||Object(u.List)()).concat(Object(u.fromJS)(r))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_SPEC_ERR,function(t,n){var r=n.payload,o=Object(u.fromJS)(r);return o=o.set("type","spec"),t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o)).sortBy(function(e){return e.get("line")})}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_SPEC_ERR_BATCH,function(t,n){var r=n.payload;return r=r.map(function(e){return Object(u.fromJS)(a()(l,e,{type:"spec"}))}),t.update("errors",function(e){return(e||Object(u.List)()).concat(Object(u.fromJS)(r))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.NEW_AUTH_ERR,function(t,n){var r=n.payload,o=Object(u.fromJS)(a()({},r));return o=o.set("type","auth"),t.update("errors",function(e){return(e||Object(u.List)()).push(Object(u.fromJS)(o))}).update("errors",function(t){return Object(c.default)(t,e.getSystem())})}),o()(t,s.CLEAR,function(e,t){var n=t.payload;if(!n||!e.get("errors"))return e;var r=e.get("errors").filter(function(e){return e.keySeq().every(function(t){var r=e.get(t),o=n[t];return!o||r!==o})});return e.merge({errors:r})}),o()(t,s.CLEAR_BY,function(e,t){var n=t.payload;if(!n||"function"!=typeof n)return e;var r=e.get("errors").filter(function(e){return n(e)});return e.merge({errors:r})}),t}},function(e,t,n){"use strict";function r(e){return e.map(function(e){var t=e.get("message").indexOf("is not of a type(s)");if(t>-1){var n=e.get("message").slice(t+"is not of a type(s)".length).split(",");return e.set("message",e.get("message").slice(0,t)+function(e){return e.reduce(function(e,t,n,r){return n===r.length-1&&r.length>1?e+"or "+t:r[n+1]&&r.length>2?e+t+", ":r[n+1]?e+t+" ":e+t},"should be a")}(n))}return e})}n.r(t),n.d(t,"transform",function(){return r})},function(e,t,n){"use strict";n.r(t),n.d(t,"transform",function(){return r});n(93),n(1);function r(e,t){t.jsSpec;return e}},function(e,t,n){"use strict";n.r(t),n.d(t,"allErrors",function(){return i}),n.d(t,"lastError",function(){return a});var r=n(1),o=n(11),i=Object(o.createSelector)(function(e){return e},function(e){return e.get("errors",Object(r.List)())}),a=Object(o.createSelector)(i,function(e){return e.last()})},function(e,t,n){"use strict";n.r(t);var r=n(279),o=n(79),i=n(280);t.default=function(){return{statePlugins:{layout:{reducers:r.default,actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(1),s=n(79);t.default=(r={},i()(r,s.UPDATE_LAYOUT,function(e,t){return e.set("layout",t.payload)}),i()(r,s.UPDATE_FILTER,function(e,t){return e.set("filter",t.payload)}),i()(r,s.SHOW,function(e,t){var n=t.payload.shown,r=Object(a.fromJS)(t.payload.thing);return e.update("shown",Object(a.fromJS)({}),function(e){return e.set(r,n)})}),i()(r,s.UPDATE_MODE,function(e,t){var n=t.payload.thing,r=t.payload.mode;return e.setIn(["modes"].concat(n),(r||"")+"")}),r)},function(e,t,n){"use strict";n.r(t),n.d(t,"current",function(){return u}),n.d(t,"currentFilter",function(){return c}),n.d(t,"isShown",function(){return l}),n.d(t,"whatMode",function(){return p}),n.d(t,"showSummary",function(){return f});var r=n(12),o=n.n(r),i=n(11),a=n(3),s=n(1),u=function(e){return e.get("layout")},c=function(e){return e.get("filter")},l=function(e,t,n){return t=Object(a.w)(t),e.get("shown",Object(s.fromJS)({})).get(Object(s.fromJS)(t),n)},p=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return t=Object(a.w)(t),e.getIn(["modes"].concat(o()(t)),n)},f=Object(i.createSelector)(function(e){return e},function(e){return!l(e,"editor")})},function(e,t,n){"use strict";n.r(t);var r=n(282),o=n(29),i=n(70),a=n(284);t.default=function(){return{statePlugins:{spec:{wrapActions:a,reducers:r.default,actions:o,selectors:i}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(16),s=n.n(a),u=n(12),c=n.n(u),l=n(1),p=n(3),f=n(18),h=n.n(f),d=n(70),m=n(29);t.default=(r={},i()(r,m.UPDATE_SPEC,function(e,t){return"string"==typeof t.payload?e.set("spec",t.payload):e}),i()(r,m.UPDATE_URL,function(e,t){return e.set("url",t.payload+"")}),i()(r,m.UPDATE_JSON,function(e,t){return e.set("json",Object(p.i)(t.payload))}),i()(r,m.UPDATE_RESOLVED,function(e,t){return e.setIn(["resolved"],Object(p.i)(t.payload))}),i()(r,m.UPDATE_RESOLVED_SUBTREE,function(e,t){var n=t.payload,r=n.value,o=n.path;return e.setIn(["resolvedSubtrees"].concat(c()(o)),Object(p.i)(r))}),i()(r,m.UPDATE_PARAM,function(e,t){var n=t.payload,r=n.path,o=n.paramName,i=n.paramIn,a=n.param,s=n.value,u=n.isXml,l=a?Object(p.B)(a):"".concat(i,".").concat(o),f=u?"value_xml":"value";return e.setIn(["meta","paths"].concat(c()(r),["parameters",l,f]),s)}),i()(r,m.UPDATE_EMPTY_PARAM_INCLUSION,function(e,t){var n=t.payload,r=n.pathMethod,o=n.paramName,i=n.paramIn,a=n.includeEmptyValue;if(!o||!i)return console.warn("Warning: UPDATE_EMPTY_PARAM_INCLUSION could not generate a paramKey."),e;var s="".concat(i,".").concat(o);return e.setIn(["meta","paths"].concat(c()(r),["parameter_inclusions",s]),a)}),i()(r,m.VALIDATE_PARAMS,function(e,t){var n=t.payload,r=n.pathMethod,o=n.isOAS3,i=Object(d.specJsonWithResolvedSubtrees)(e).getIn(["paths"].concat(c()(r))),a=Object(d.parameterValues)(e,r).toJS();return e.updateIn(["meta","paths"].concat(c()(r),["parameters"]),Object(l.fromJS)({}),function(t){return i.get("parameters",Object(l.List)()).reduce(function(t,n){var i=Object(p.C)(n,a),s=Object(d.parameterInclusionSettingFor)(e,r,n.get("name"),n.get("in")),u=Object(p.K)(n,i,{bypassRequiredCheck:s,isOAS3:o});return t.setIn([Object(p.B)(n),"errors"],Object(l.fromJS)(u))},t)})}),i()(r,m.CLEAR_VALIDATE_PARAMS,function(e,t){var n=t.payload.pathMethod;return e.updateIn(["meta","paths"].concat(c()(n),["parameters"]),Object(l.fromJS)([]),function(e){return e.map(function(e){return e.set("errors",Object(l.fromJS)([]))})})}),i()(r,m.SET_RESPONSE,function(e,t){var n,r=t.payload,o=r.res,i=r.path,a=r.method;(n=o.error?s()({error:!0,name:o.err.name,message:o.err.message,statusCode:o.err.statusCode},o.err.response):o).headers=n.headers||{};var u=e.setIn(["responses",i,a],Object(p.i)(n));return h.a.Blob&&o.data instanceof h.a.Blob&&(u=u.setIn(["responses",i,a,"text"],o.data)),u}),i()(r,m.SET_REQUEST,function(e,t){var n=t.payload,r=n.req,o=n.path,i=n.method;return e.setIn(["requests",o,i],Object(p.i)(r))}),i()(r,m.SET_MUTATED_REQUEST,function(e,t){var n=t.payload,r=n.req,o=n.path,i=n.method;return e.setIn(["mutatedRequests",o,i],Object(p.i)(r))}),i()(r,m.UPDATE_OPERATION_META_VALUE,function(e,t){var n=t.payload,r=n.path,o=n.value,i=n.key,a=["paths"].concat(c()(r)),s=["meta","paths"].concat(c()(r));return e.getIn(["json"].concat(c()(a)))||e.getIn(["resolved"].concat(c()(a)))||e.getIn(["resolvedSubtrees"].concat(c()(a)))?e.setIn([].concat(c()(s),[i]),Object(l.fromJS)(o)):e}),i()(r,m.CLEAR_RESPONSE,function(e,t){var n=t.payload,r=n.path,o=n.method;return e.deleteIn(["responses",r,o])}),i()(r,m.CLEAR_REQUEST,function(e,t){var n=t.payload,r=n.path,o=n.method;return e.deleteIn(["requests",r,o])}),i()(r,m.SET_SCHEME,function(e,t){var n=t.payload,r=n.scheme,o=n.path,i=n.method;return o&&i?e.setIn(["scheme",o,i],r):o||i?void 0:e.setIn(["scheme","_defaultScheme"],r)}),r)},function(e,t,n){var r=n(83),o=n(37),i=n(66),a="[object String]";e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&r(e)==a}},function(e,t,n){"use strict";n.r(t),n.d(t,"updateSpec",function(){return s}),n.d(t,"updateJsonSpec",function(){return u}),n.d(t,"executeRequest",function(){return c}),n.d(t,"validateParams",function(){return l});var r=n(17),o=n.n(r),i=n(93),a=n.n(i),s=function(e,t){var n=t.specActions;return function(){e.apply(void 0,arguments),n.parseToJson.apply(n,arguments)}},u=function(e,t){var n=t.specActions;return function(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];e.apply(void 0,r),n.invalidateResolvedSubtreeCache();var s=r[0],u=a()(s,["paths"])||{},c=o()(u);c.forEach(function(e){a()(u,[e]).$ref&&n.requestResolvedSubtree(["paths",e])}),n.requestResolvedSubtree(["components","securitySchemes"])}},c=function(e,t){var n=t.specActions;return function(t){return n.logRequest(t),e(t)}},l=function(e,t){var n=t.specSelectors;return function(t){return e(t,n.isOAS3())}}},function(e,t,n){"use strict";n.r(t);var r=n(148),o=n(3);t.default=function(e){var t=e.getComponents,n=e.getStore,i=e.getSystem,a=r.getComponent,s=r.render,u=r.makeMappedContainer,c=Object(o.v)(a.bind(null,i,n,t));return{rootInjects:{getComponent:c,makeMappedContainer:Object(o.v)(u.bind(null,i,n,c,t)),render:s.bind(null,i,n,a,t)}}}},function(e,t,n){"use strict";n.r(t);var r=n(120);t.default=function(){return{fn:r}}},function(e,t,n){"use strict";n.r(t),t.default=function(e){var t=e.configs,n={debug:0,info:1,log:2,warn:3,error:4},r=function(e){return n[e]||-1},o=t.logLevel,i=r(o);function a(e){for(var t,n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];r(e)>=i&&(t=console)[e].apply(t,o)}return a.warn=a.bind(null,"warn"),a.error=a.bind(null,"error"),a.info=a.bind(null,"info"),a.debug=a.bind(null,"debug"),{rootInjects:{log:a}}}},function(e,t,n){"use strict";n.r(t);var r=n(56),o=n.n(r),i=n(289);t.default=function(e){var t=e.configs,n=e.getConfigs;return{fn:{fetch:o.a.makeHttp(t.preFetch,t.postFetch),buildRequest:o.a.buildRequest,execute:o.a.execute,resolve:o.a.resolve,resolveSubtree:function(e,t,r){if(void 0===r){var i=n();r={modelPropertyMacro:i.modelPropertyMacro,parameterMacro:i.parameterMacro,requestInterceptor:i.requestInterceptor,responseInterceptor:i.responseInterceptor}}for(var a=arguments.length,s=new Array(a>3?a-3:0),u=3;u<a;u++)s[u-3]=arguments[u];return o.a.resolveSubtree.apply(o.a,[e,t,r].concat(s))},serializeRes:o.a.serializeRes,opId:o.a.helpers.opId},statePlugins:{configs:{wrapActions:i}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"loaded",function(){return r});var r=function(e,t){return function(){e.apply(void 0,arguments);var n=t.getConfigs().withCredentials;void 0!==n&&(t.fn.fetch.withCredentials="string"==typeof n?"true"===n:!!n)}}},function(e,t,n){"use strict";n.r(t),n.d(t,"preauthorizeBasic",function(){return c}),n.d(t,"preauthorizeApiKey",function(){return l});var r=n(2),o=n.n(r),i=n(291),a=n(71),s=n(292),u=n(293);function c(e,t,n,r){var i=e.authActions.authorize,a=e.specSelectors,s=a.specJson,u=(0,a.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],c=s().getIn([].concat(u,[t]));return c?i(o()({},t,{value:{username:n,password:r},schema:c.toJS()})):null}function l(e,t,n){var r=e.authActions.authorize,i=e.specSelectors,a=i.specJson,s=(0,i.isOAS3)()?["components","securitySchemes"]:["securityDefinitions"],u=a().getIn([].concat(s,[t]));return u?r(o()({},t,{value:n,schema:u.toJS()})):null}t.default=function(){return{afterLoad:function(e){this.rootInjects=this.rootInjects||{},this.rootInjects.initOAuth=e.authActions.configureAuth,this.rootInjects.preauthorizeApiKey=l.bind(null,e),this.rootInjects.preauthorizeBasic=c.bind(null,e)},statePlugins:{auth:{reducers:i.default,actions:a,selectors:s},spec:{wrapActions:u}}}}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(16),s=n.n(a),u=n(13),c=n.n(u),l=n(1),p=n(3),f=n(71);t.default=(r={},i()(r,f.SHOW_AUTH_POPUP,function(e,t){var n=t.payload;return e.set("showDefinitions",n)}),i()(r,f.AUTHORIZE,function(e,t){var n=t.payload,r=Object(l.fromJS)(n),o=e.get("authorized")||Object(l.Map)();return r.entrySeq().forEach(function(e){var t=c()(e,2),n=t[0],r=t[1],i=r.getIn(["schema","type"]);if("apiKey"===i||"http"===i)o=o.set(n,r);else if("basic"===i){var a=r.getIn(["value","username"]),s=r.getIn(["value","password"]);o=(o=o.setIn([n,"value"],{username:a,header:"Basic "+Object(p.a)(a+":"+s)})).setIn([n,"schema"],r.get("schema"))}}),e.set("authorized",o)}),i()(r,f.AUTHORIZE_OAUTH2,function(e,t){var n,r=t.payload,o=r.auth,i=r.token;return o.token=s()({},i),n=Object(l.fromJS)(o),e.setIn(["authorized",n.get("name")],n)}),i()(r,f.LOGOUT,function(e,t){var n=t.payload,r=e.get("authorized").withMutations(function(e){n.forEach(function(t){e.delete(t)})});return e.set("authorized",r)}),i()(r,f.CONFIGURE_AUTH,function(e,t){var n=t.payload;return e.set("configs",n)}),r)},function(e,t,n){"use strict";n.r(t),n.d(t,"shownDefinitions",function(){return l}),n.d(t,"definitionsToAuthorize",function(){return p}),n.d(t,"getDefinitionsByNames",function(){return f}),n.d(t,"definitionsForRequirements",function(){return h}),n.d(t,"authorized",function(){return d}),n.d(t,"isAuthorized",function(){return m}),n.d(t,"getConfigs",function(){return v});var r=n(17),o=n.n(r),i=n(13),a=n.n(i),s=n(11),u=n(1),c=function(e){return e},l=Object(s.createSelector)(c,function(e){return e.get("showDefinitions")}),p=Object(s.createSelector)(c,function(){return function(e){var t=e.specSelectors.securityDefinitions()||Object(u.Map)({}),n=Object(u.List)();return t.entrySeq().forEach(function(e){var t=a()(e,2),r=t[0],o=t[1],i=Object(u.Map)();i=i.set(r,o),n=n.push(i)}),n}}),f=function(e,t){return function(e){var n=e.specSelectors;console.warn("WARNING: getDefinitionsByNames is deprecated and will be removed in the next major version.");var r=n.securityDefinitions(),o=Object(u.List)();return t.valueSeq().forEach(function(e){var t=Object(u.Map)();e.entrySeq().forEach(function(e){var n,o=a()(e,2),i=o[0],s=o[1],u=r.get(i);"oauth2"===u.get("type")&&s.size&&((n=u.get("scopes")).keySeq().forEach(function(e){s.contains(e)||(n=n.delete(e))}),u=u.set("allowedScopes",n)),t=t.set(i,u)}),o=o.push(t)}),o}},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Object(u.List)();return function(e){return(e.authSelectors.definitionsToAuthorize()||Object(u.List)()).filter(function(e){return t.some(function(t){return t.get(e.keySeq().first())})})}},d=Object(s.createSelector)(c,function(e){return e.get("authorized")||Object(u.Map)()}),m=function(e,t){return function(e){var n=e.authSelectors.authorized();return u.List.isList(t)?!!t.toJS().filter(function(e){return-1===o()(e).map(function(e){return!!n.get(e)}).indexOf(!1)}).length:null}},v=Object(s.createSelector)(c,function(e){return e.get("configs")})},function(e,t,n){"use strict";n.r(t),n.d(t,"execute",function(){return y});var r=n(54),o=n.n(r),i=n(94),a=n.n(i),s=n(60),u=n.n(s),c=n(61),l=n.n(c),p=n(55),f=n.n(p),h=n(17),d=n.n(h),m=n(2),v=n.n(m);function g(e,t){var n=d()(e);if(f.a){var r=f()(e);t&&(r=r.filter(function(t){return l()(e,t).enumerable})),n.push.apply(n,r)}return n}var y=function(e,t){var n=t.authSelectors,r=t.specSelectors;return function(t){var i=t.path,s=t.method,c=t.operation,p=t.extras,f={authorized:n.authorized()&&n.authorized().toJS(),definitions:r.securityDefinitions()&&r.securityDefinitions().toJS(),specSecurity:r.security()&&r.security().toJS()};return e(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(n,!0).forEach(function(t){v()(e,t,n[t])}):u.a?a()(e,u()(n)):g(n).forEach(function(t){o()(e,t,l()(n,t))})}return e}({path:i,method:s,operation:c,securities:f},p))}}},function(e,t,n){"use strict";n.r(t);var r=n(3);t.default=function(){return{fn:{shallowEqualKeys:r.G}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return p});var r=n(28),o=n.n(r),i=n(16),a=n.n(i),s=n(11),u=n(1),c=n(18),l=n.n(c);function p(e){var t=e.fn;return{statePlugins:{spec:{actions:{download:function(e){return function(n){var r=n.errActions,o=n.specSelectors,i=n.specActions,s=n.getConfigs,u=t.fetch,c=s();function p(t){if(t instanceof Error||t.status>=400)return i.updateLoadingStatus("failed"),r.newThrownErr(a()(new Error((t.message||t.statusText)+" "+e),{source:"fetch"})),void(!t.status&&t instanceof Error&&function(){try{var t;if("URL"in l.a?t=new URL(e):(t=document.createElement("a")).href=e,"https:"!==t.protocol&&"https:"===l.a.location.protocol){var n=a()(new Error("Possible mixed-content issue? The page was loaded over https:// but a ".concat(t.protocol,"// URL was specified. Check that you are not attempting to load mixed content.")),{source:"fetch"});return void r.newThrownErr(n)}if(t.origin!==l.a.location.origin){var o=a()(new Error("Possible cross-origin (CORS) issue? The URL origin (".concat(t.origin,") does not match the page (").concat(l.a.location.origin,"). Check the server returns the correct 'Access-Control-Allow-*' headers.")),{source:"fetch"});r.newThrownErr(o)}}catch(e){return}}());i.updateLoadingStatus("success"),i.updateSpec(t.text),o.url()!==e&&i.updateUrl(e)}e=e||o.url(),i.updateLoadingStatus("loading"),r.clear({source:"fetch"}),u({url:e,loadSpec:!0,requestInterceptor:c.requestInterceptor||function(e){return e},responseInterceptor:c.responseInterceptor||function(e){return e},credentials:"same-origin",headers:{Accept:"application/json,*/*"}}).then(p,p)}},updateLoadingStatus:function(e){var t=[null,"loading","failed","success","failedConfig"];return-1===t.indexOf(e)&&console.error("Error: ".concat(e," is not one of ").concat(o()(t))),{type:"spec_update_loading_status",payload:e}}},reducers:{spec_update_loading_status:function(e,t){return"string"==typeof t.payload?e.set("loadingStatus",t.payload):e}},selectors:{loadingStatus:Object(s.createSelector)(function(e){return e||Object(u.Map)()},function(e){return e.get("loadingStatus")||null})}}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"downloadConfig",function(){return o}),n.d(t,"getConfigByUrl",function(){return i});var r=n(147),o=function(e){return function(t){return(0,t.fn.fetch)(e)}},i=function(e,t){return function(n){var o=n.specActions;if(e)return o.downloadConfig(e).then(i,i);function i(n){n instanceof Error||n.status>=400?(o.updateLoadingStatus("failedConfig"),o.updateLoadingStatus("failedConfig"),o.updateUrl(""),console.error(n.statusText+" "+e.url),t(null)):t(Object(r.parseYamlConfig)(n.text))}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"get",function(){return i});var r=n(14),o=n.n(r),i=function(e,t){return e.getIn(o()(t)?t:[t])}},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(1),s=n(121);t.default=(r={},i()(r,s.UPDATE_CONFIGS,function(e,t){return e.merge(Object(a.fromJS)(t.payload))}),i()(r,s.TOGGLE_CONFIGS,function(e,t){var n=t.payload,r=e.get(n);return e.set(n,!r)}),r)},function(e,t,n){"use strict";n.r(t);var r=n(300),o=n(301),i=n(302);t.default=function(){return[r.default,{statePlugins:{configs:{wrapActions:{loaded:function(e,t){return function(){e.apply(void 0,arguments);var n=decodeURIComponent(window.location.hash);t.layoutActions.parseDeepLinkHash(n)}}}}},wrapComponents:{operation:o.default,OperationTag:i.default}}]}},function(e,t,n){"use strict";n.r(t),n.d(t,"show",function(){return v}),n.d(t,"scrollTo",function(){return g}),n.d(t,"parseDeepLinkHash",function(){return y}),n.d(t,"readyToScroll",function(){return b}),n.d(t,"scrollToElement",function(){return _}),n.d(t,"clearScrollTo",function(){return w});var r,o=n(2),i=n.n(o),a=n(13),s=n.n(a),u=n(14),c=n.n(u),l=n(149),p=n(482),f=n.n(p),h=n(3),d=n(1),m=n.n(d),v=function(e,t){var n=t.getConfigs,r=t.layoutSelectors;return function(){for(var t=arguments.length,o=new Array(t),i=0;i<t;i++)o[i]=arguments[i];if(e.apply(void 0,o),n().deepLinking)try{var a=o[0],u=o[1];a=c()(a)?a:[a];var p=r.urlHashArrayFromIsShownKey(a);if(!p.length)return;var f=s()(p,2),d=f[0],m=f[1];if(!u)return Object(l.setHash)("/");2===p.length?Object(l.setHash)(Object(h.d)("/".concat(encodeURIComponent(d),"/").concat(encodeURIComponent(m)))):1===p.length&&Object(l.setHash)(Object(h.d)("/".concat(encodeURIComponent(d))))}catch(e){console.error(e)}}},g=function(e){return{type:"layout_scroll_to",payload:c()(e)?e:[e]}},y=function(e){return function(t){var n=t.layoutActions,r=t.layoutSelectors;if((0,t.getConfigs)().deepLinking&&e){var o=e.slice(1);"!"===o[0]&&(o=o.slice(1)),"/"===o[0]&&(o=o.slice(1));var i=o.split("/").map(function(e){return e||""}),a=r.isShownKeyFromUrlHashArray(i),u=s()(a,3),c=u[0],l=u[1],p=void 0===l?"":l,f=u[2],h=void 0===f?"":f;if("operations"===c){var d=r.isShownKeyFromUrlHashArray([p]);p.indexOf("_")>-1&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(d.map(function(e){return e.replace(/_/g," ")}),!0)),n.show(d,!0)}(p.indexOf("_")>-1||h.indexOf("_")>-1)&&(console.warn("Warning: escaping deep link whitespace with `_` will be unsupported in v4.0, use `%20` instead."),n.show(a.map(function(e){return e.replace(/_/g," ")}),!0)),n.show(a,!0),n.scrollTo(a)}}},b=function(e,t){return function(n){var r=n.layoutSelectors.getScrollToKey();m.a.is(r,Object(d.fromJS)(e))&&(n.layoutActions.scrollToElement(t),n.layoutActions.clearScrollTo())}},_=function(e,t){return function(n){try{t=t||n.fn.getScrollParent(e),f.a.createScroller(t).to(e)}catch(e){console.error(e)}}},w=function(){return{type:"layout_clear_scroll"}};t.default={fn:{getScrollParent:function(e,t){var n=document.documentElement,r=getComputedStyle(e),o="absolute"===r.position,i=t?/(auto|scroll|hidden)/:/(auto|scroll)/;if("fixed"===r.position)return n;for(var a=e;a=a.parentElement;)if(r=getComputedStyle(a),(!o||"static"!==r.position)&&i.test(r.overflow+r.overflowY+r.overflowX))return a;return n}},statePlugins:{layout:{actions:{scrollToElement:_,scrollTo:g,clearScrollTo:w,readyToScroll:b,parseDeepLinkHash:y},selectors:{getScrollToKey:function(e){return e.get("scrollToKey")},isShownKeyFromUrlHashArray:function(e,t){var n=s()(t,2),r=n[0],o=n[1];return o?["operations",r,o]:r?["operations-tag",r]:[]},urlHashArrayFromIsShownKey:function(e,t){var n=s()(t,3),r=n[0],o=n[1],i=n[2];return"operations"==r?[o,i]:"operations-tag"==r?[o]:[]}},reducers:(r={},i()(r,"layout_scroll_to",function(e,t){return e.set("scrollToKey",m.a.fromJS(t.payload))}),i()(r,"layout_clear_scroll",function(e){return e.delete("scrollToKey")}),r),wrapActions:{show:v}}}}},function(e,t,n){"use strict";n.r(t);var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g);n(19);t.default=function(e,t){return function(n){function r(){var e,n;o()(this,r);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return n=u()(this,(e=l()(r)).call.apply(e,[this].concat(a))),v()(f()(n),"onLoad",function(e){var r=n.props.operation.toObject(),o=["operations",r.tag,r.operationId];t.layoutActions.readyToScroll(o,e)}),n}return d()(r,n),a()(r,[{key:"render",value:function(){return y.a.createElement("span",{ref:this.onLoad},y.a.createElement(e,this.props))}}]),r}(y.a.Component)}},function(e,t,n){"use strict";n.r(t);var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g);n(10);t.default=function(e,t){return function(n){function r(){var e,n;o()(this,r);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return n=u()(this,(e=l()(r)).call.apply(e,[this].concat(a))),v()(f()(n),"onLoad",function(e){var r=["operations-tag",n.props.tag];t.layoutActions.readyToScroll(r,e)}),n}return d()(r,n),a()(r,[{key:"render",value:function(){return y.a.createElement("span",{ref:this.onLoad},y.a.createElement(e,this.props))}}]),r}(y.a.Component)}},function(e,t,n){"use strict";n.r(t);var r=n(304);t.default=function(){return{fn:{opsFilter:r.default}}}},function(e,t,n){"use strict";n.r(t),t.default=function(e,t){return e.filter(function(e,n){return-1!==n.indexOf(t)})}},function(e,t,n){"use strict";n.r(t);var r=!1;t.default=function(){return{statePlugins:{spec:{wrapActions:{updateSpec:function(e){return function(){return r=!0,e.apply(void 0,arguments)}},updateJsonSpec:function(e,t){return function(){var n=t.getConfigs().onComplete;return r&&"function"==typeof n&&(setTimeout(n,0),r=!1),e.apply(void 0,arguments)}}}}}}}},function(e,t,n){"use strict";n.r(t);var r=n(307),o=n(308),i=n(309),a=n(310),s=n(319),u=n(62),c=n(326),l=n(327);t.default=function(){return{components:a.default,wrapComponents:s.default,statePlugins:{spec:{wrapSelectors:r,selectors:i},auth:{wrapSelectors:o},oas3:{actions:u,reducers:l.default,selectors:c}}}}},function(e,t,n){"use strict";n.r(t),n.d(t,"definitions",function(){return h}),n.d(t,"hasHost",function(){return d}),n.d(t,"securityDefinitions",function(){return m}),n.d(t,"host",function(){return v}),n.d(t,"basePath",function(){return g}),n.d(t,"consumes",function(){return y}),n.d(t,"produces",function(){return b}),n.d(t,"schemes",function(){return _}),n.d(t,"servers",function(){return w}),n.d(t,"isOAS3",function(){return x}),n.d(t,"isSwagger2",function(){return E});var r=n(11),o=n(70),i=n(1),a=n(24);function s(e){return function(t,n){return function(){var r=n.getSystem().specSelectors.specJson();return Object(a.isOAS3)(r)?e.apply(void 0,arguments):t.apply(void 0,arguments)}}}var u=function(e){return e||Object(i.Map)()},c=s(Object(r.createSelector)(function(){return null})),l=Object(r.createSelector)(u,function(e){return e.get("json",Object(i.Map)())}),p=Object(r.createSelector)(u,function(e){return e.get("resolved",Object(i.Map)())}),f=function(e){var t=p(e);return t.count()<1&&(t=l(e)),t},h=s(Object(r.createSelector)(f,function(e){var t=e.getIn(["components","schemas"]);return i.Map.isMap(t)?t:Object(i.Map)()})),d=s(function(e){return f(e).hasIn(["servers",0])}),m=s(Object(r.createSelector)(o.specJsonWithResolvedSubtrees,function(e){return e.getIn(["components","securitySchemes"])||null})),v=c,g=c,y=c,b=c,_=c,w=s(Object(r.createSelector)(f,function(e){return e.getIn(["servers"])||Object(i.Map)()})),x=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(a.isOAS3)(i.Map.isMap(e)?e:Object(i.Map)())}},E=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(a.isSwagger2)(i.Map.isMap(e)?e:Object(i.Map)())}}},function(e,t,n){"use strict";n.r(t),n.d(t,"definitionsToAuthorize",function(){return p});var r=n(2),o=n.n(r),i=n(13),a=n.n(i),s=n(11),u=n(1),c=n(24);var l,p=(l=Object(s.createSelector)(function(e){return e},function(e){return e.specSelectors.securityDefinitions()},function(e,t){var n=Object(u.List)();return t?(t.entrySeq().forEach(function(e){var t=a()(e,2),r=t[0],i=t[1],s=i.get("type");"oauth2"===s&&i.get("flows").entrySeq().forEach(function(e){var t=a()(e,2),s=t[0],c=t[1],l=Object(u.fromJS)({flow:s,authorizationUrl:c.get("authorizationUrl"),tokenUrl:c.get("tokenUrl"),scopes:c.get("scopes"),type:i.get("type")});n=n.push(new u.Map(o()({},r,l.filter(function(e){return void 0!==e}))))}),"http"!==s&&"apiKey"!==s||(n=n.push(new u.Map(o()({},r,i))))}),n):n}),function(e,t){return function(n){for(var r=t.getSystem().specSelectors.specJson(),o=arguments.length,i=new Array(o>1?o-1:0),a=1;a<o;a++)i[a-1]=arguments[a];return Object(c.isOAS3)(r)?l.apply(void 0,[t].concat(i)):e.apply(void 0,i)}})},function(e,t,n){"use strict";n.r(t),n.d(t,"servers",function(){return l}),n.d(t,"isSwagger2",function(){return p});var r=n(11),o=n(1),i=n(24);var a,s=function(e){return e||Object(o.Map)()},u=Object(r.createSelector)(s,function(e){return e.get("json",Object(o.Map)())}),c=Object(r.createSelector)(s,function(e){return e.get("resolved",Object(o.Map)())}),l=(a=Object(r.createSelector)(function(e){var t=c(e);return t.count()<1&&(t=u(e)),t},function(e){return e.getIn(["servers"])||Object(o.Map)()}),function(){return function(e){var t=e.getSystem().specSelectors.specJson();if(Object(i.isOAS3)(t)){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return a.apply(void 0,r)}return null}}),p=function(e,t){return function(){var e=t.getSystem().specSelectors.specJson();return Object(i.isSwagger2)(e)}}},function(e,t,n){"use strict";n.r(t);var r=n(311),o=n(312),i=n(313),a=n(314),s=n(315),u=n(316),c=n(317),l=n(318);t.default={Callbacks:r.default,HttpAuth:c.default,RequestBody:o.default,Servers:a.default,ServersContainer:s.default,RequestBodyEditor:u.default,OperationServers:l.default,operationLink:i.default}},function(e,t,n){"use strict";n.r(t);var r=n(20),o=n.n(r),i=n(0),a=n.n(i),s=(n(10),n(19),n(1));t.default=function(e){var t=e.callbacks,n=e.getComponent,r=e.specPath,i=n("OperationContainer",!0);if(!t)return a.a.createElement("span",null,"No callbacks");var u=t.map(function(t,n){return a.a.createElement("div",{key:n},a.a.createElement("h2",null,n),t.map(function(t,u){return"$$ref"===u?null:a.a.createElement("div",{key:u},t.map(function(t,c){if("$$ref"===c)return null;var l=Object(s.fromJS)({operation:t});return a.a.createElement(i,o()({},e,{op:l,key:c,tag:"",method:c,path:u,specPath:r.push(n,u,c),allowTryItOut:!1}))}))}))});return a.a.createElement("div",null,u)}},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=(n(10),n(19),n(1)),a=n(3);function s(e,t,n){var r=e.getIn(["content",t]),o=r.get("schema").toJS(),i=void 0!==r.get("example")?Object(a.I)(r.get("example")):null,s=r.getIn(["examples",n,"value"]);return r.get("examples")?Object(a.I)(s)||"":Object(a.I)(i||Object(a.o)(o,t,{includeWriteOnly:!0})||"")}t.default=function(e){var t=e.requestBody,n=e.requestBodyValue,r=e.getComponent,u=e.getConfigs,c=e.specSelectors,l=e.fn,p=e.contentType,f=e.isExecute,h=e.specPath,d=e.onChange,m=e.activeExamplesKey,v=e.updateActiveExamplesKey,g=r("Markdown"),y=r("modelExample"),b=r("RequestBodyEditor"),_=r("highlightCode"),w=r("ExamplesSelectValueRetainer"),x=r("Example"),E=u().showCommonExtensions,S=t&&t.get("description")||null,C=t&&t.get("content")||new i.OrderedMap;p=p||C.keySeq().first()||"";var k=C.get(p,Object(i.OrderedMap)()),O=k.get("schema",Object(i.OrderedMap)()),A=k.get("examples",null);if(!k.size)return null;var T="object"===k.getIn(["schema","type"]);if("application/octet-stream"===p||0===p.indexOf("image/")||0===p.indexOf("audio/")||0===p.indexOf("video/")){var j=r("Input");return f?o.a.createElement(j,{type:"file",onChange:function(e){d(e.target.files[0])}}):o.a.createElement("i",null,"Example values are not available for ",o.a.createElement("code",null,"application/octet-stream")," media types.")}if(T&&("application/x-www-form-urlencoded"===p||0===p.indexOf("multipart/"))&&O.get("properties",Object(i.OrderedMap)()).size>0){var P=r("JsonSchemaForm"),I=r("ParameterExt"),M=O.get("properties",Object(i.OrderedMap)());return n=i.Map.isMap(n)?n:Object(i.OrderedMap)(),o.a.createElement("div",{className:"table-container"},S&&o.a.createElement(g,{source:S}),o.a.createElement("table",null,o.a.createElement("tbody",null,M.map(function(e,t){var s=E?Object(a.l)(e):null,u=O.get("required",Object(i.List)()).includes(t),c=e.get("type"),p=e.get("format"),h=e.get("description"),m=n.get(t),v=e.get("default")||e.get("example")||"";""===v&&"object"===c&&(v=Object(a.o)(e,!1,{includeWriteOnly:!0})),"string"!=typeof v&&"object"===c&&(v=Object(a.I)(v));var y="string"===c&&("binary"===p||"base64"===p);return o.a.createElement("tr",{key:t,className:"parameters","data-property-name":t},o.a.createElement("td",{className:"parameters-col_name"},o.a.createElement("div",{className:u?"parameter__name required":"parameter__name"},t,u?o.a.createElement("span",{style:{color:"red"}}," *"):null),o.a.createElement("div",{className:"parameter__type"},c,p&&o.a.createElement("span",{className:"prop-format"},"($",p,")"),E&&s.size?s.map(function(e,t){return o.a.createElement(I,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null),o.a.createElement("div",{className:"parameter__deprecated"},e.get("deprecated")?"deprecated":null)),o.a.createElement("td",{className:"parameters-col_description"},o.a.createElement(g,{source:h}),f?o.a.createElement("div",null,o.a.createElement(P,{fn:l,dispatchInitialValue:!y,schema:e,description:t,getComponent:r,value:void 0===m?v:m,onChange:function(e){d(e,[t])}})):null))}))))}return o.a.createElement("div",null,S&&o.a.createElement(g,{source:S}),A?o.a.createElement(w,{examples:A,currentKey:m,currentUserInputValue:n,onSelect:function(e){v(e)},updateValue:d,defaultToFirstExample:!0,getComponent:r}):null,f?o.a.createElement("div",null,o.a.createElement(b,{value:n,defaultValue:s(t,p,m),onChange:d,getComponent:r})):o.a.createElement(y,{getComponent:r,getConfigs:u,specSelectors:c,expandDepth:1,isExecute:f,schema:k.get("schema"),specPath:h.push("content",p),example:o.a.createElement(_,{className:"body-param__example",value:Object(a.I)(n)||s(t,p,m)})}),A?o.a.createElement(x,{example:A.get(m),getComponent:r}):null)}},function(e,t,n){"use strict";n.r(t);var r=n(28),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(8),d=n.n(h),m=n(0),v=n.n(m),g=(n(10),n(19),function(e){function t(){return a()(this,t),l()(this,f()(t).apply(this,arguments))}return d()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.link,n=e.name,r=(0,e.getComponent)("Markdown"),i=t.get("operationId")||t.get("operationRef"),a=t.get("parameters")&&t.get("parameters").toJS(),s=t.get("description");return v.a.createElement("div",{style:{marginBottom:"1.5em"}},v.a.createElement("div",{style:{marginBottom:".5em"}},v.a.createElement("b",null,v.a.createElement("code",null,n)),s?v.a.createElement(r,{source:s}):null),v.a.createElement("pre",null,"Operation `",i,"`",v.a.createElement("br",null),v.a.createElement("br",null),"Parameters ",function(e,t){if("string"!=typeof t)return"";return t.split("\n").map(function(t,n){return n>0?Array(e+1).join(" ")+t:t}).join("\n")}(0,o()(a,null,2))||"{}",v.a.createElement("br",null)))}}]),t}(m.Component));t.default=g},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return _});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g),b=n(1),_=(n(10),n(19),function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=u()(this,(e=l()(t)).call.apply(e,[this].concat(i))),v()(f()(n),"onServerChange",function(e){n.setServer(e.target.value)}),v()(f()(n),"onServerVariableValueChange",function(e){var t=n.props,r=t.setServerVariableValue,o=t.currentServer,i=e.target.getAttribute("data-variable"),a=e.target.value;"function"==typeof r&&r({server:o,key:i,val:a})}),v()(f()(n),"setServer",function(e){(0,n.props.setSelectedServer)(e)}),n}return d()(t,e),a()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.servers;e.currentServer||this.setServer(t.first().get("url"))}},{key:"componentWillReceiveProps",value:function(e){var t=this.props,n=t.servers,r=t.setServerVariableValue,o=t.getServerVariable;if(this.props.currentServer!==e.currentServer){var i=n.find(function(t){return t.get("url")===e.currentServer});if(!i)return this.setServer(n.first().get("url"));(i.get("variables")||Object(b.OrderedMap)()).map(function(t,n){o(e.currentServer,n)||r({server:e.currentServer,key:n,val:t.get("default")||""})})}}},{key:"render",value:function(){var e=this,t=this.props,n=t.servers,r=t.currentServer,o=t.getServerVariable,i=t.getEffectiveServerValue,a=(n.find(function(e){return e.get("url")===r})||Object(b.OrderedMap)()).get("variables")||Object(b.OrderedMap)(),s=0!==a.size;return y.a.createElement("div",{className:"servers"},y.a.createElement("label",{htmlFor:"servers"},y.a.createElement("select",{onChange:this.onServerChange},n.valueSeq().map(function(e){return y.a.createElement("option",{value:e.get("url"),key:e.get("url")},e.get("url"),e.get("description")&&" - ".concat(e.get("description")))}).toArray())),s?y.a.createElement("div",null,y.a.createElement("div",{className:"computed-url"},"Computed URL:",y.a.createElement("code",null,i(r))),y.a.createElement("h4",null,"Server variables"),y.a.createElement("table",null,y.a.createElement("tbody",null,a.map(function(t,n){return y.a.createElement("tr",{key:n},y.a.createElement("td",null,n),y.a.createElement("td",null,t.get("enum")?y.a.createElement("select",{"data-variable":n,onChange:e.onServerVariableValueChange},t.get("enum").map(function(e){return y.a.createElement("option",{selected:e===o(r,n),key:e,value:e},e)})):y.a.createElement("input",{type:"text",value:o(r,n)||"",onChange:e.onServerVariableValueChange,"data-variable":n})))})))):null)}}]),t}(y.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return m});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(8),f=n.n(p),h=n(0),d=n.n(h),m=(n(10),function(e){function t(){return o()(this,t),u()(this,l()(t).apply(this,arguments))}return f()(t,e),a()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.oas3Selectors,r=e.oas3Actions,o=e.getComponent,i=t.servers(),a=o("Servers");return i&&i.size?d.a.createElement("div",null,d.a.createElement("span",{className:"servers-title"},"Servers"),d.a.createElement(a,{servers:i,currentServer:n.selectedServer(),setSelectedServer:r.setSelectedServer,setServerVariableValue:r.setServerVariableValue,getServerVariable:n.serverVariableValue,getEffectiveServerValue:n.serverEffectiveValue})):null}}]),t}(d.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});var r=n(4),o=n.n(r),i=n(5),a=n.n(i),s=n(6),u=n.n(s),c=n(7),l=n.n(c),p=n(9),f=n.n(p),h=n(8),d=n.n(h),m=n(2),v=n.n(m),g=n(0),y=n.n(g),b=(n(10),n(3)),_=Function.prototype,w=function(e){function t(e,n){var r;return o()(this,t),r=u()(this,l()(t).call(this,e,n)),v()(f()(r),"applyDefaultValue",function(e){var t=e||r.props,n=t.onChange,o=t.defaultValue;return r.setState({value:o}),n(o)}),v()(f()(r),"onChange",function(e){r.props.onChange(Object(b.I)(e))}),v()(f()(r),"onDomChange",function(e){var t=e.target.value;r.setState({value:t},function(){return r.onChange(t)})}),r.state={value:Object(b.I)(e.value)||e.defaultValue},e.onChange(e.value),r}return d()(t,e),a()(t,[{key:"componentWillReceiveProps",value:function(e){this.props.value!==e.value&&e.value!==this.state.value&&this.setState({value:Object(b.I)(e.value)}),!e.value&&e.defaultValue&&this.state.value&&this.applyDefaultValue(e)}},{key:"render",value:function(){var e=this.props.getComponent,t=this.state.value,n=e("TextArea");return y.a.createElement("div",{className:"body-param"},y.a.createElement(n,{className:"body-param__text",value:t,onChange:this.onDomChange}))}}]),t}(g.PureComponent);v()(w,"defaultProps",{onChange:_})},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return w});var r=n(16),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(9),d=n.n(h),m=n(8),v=n.n(m),g=n(2),y=n.n(g),b=n(0),_=n.n(b),w=(n(10),function(e){function t(e,n){var r;a()(this,t),r=l()(this,f()(t).call(this,e,n)),y()(d()(r),"onChange",function(e){var t=r.props.onChange,n=e.target,i=n.value,a=n.name,s=o()({},r.state.value);a?s[a]=i:s=i,r.setState({value:s},function(){return t(r.state)})});var i=r.props,s=i.name,u=i.schema,c=r.getValue();return r.state={name:s,schema:u,value:c},r}return v()(t,e),u()(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,o=e.name,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=(t.get("scheme")||"").toLowerCase(),f=this.getValue(),h=r.allErrors().filter(function(e){return e.get("authId")===o});if("basic"===p){var d=f?f.get("username"):null;return _.a.createElement("div",null,_.a.createElement("h4",null,_.a.createElement("code",null,o||t.get("name")),"  (http, Basic)",_.a.createElement(l,{path:["securityDefinitions",o]})),d&&_.a.createElement("h6",null,"Authorized"),_.a.createElement(a,null,_.a.createElement(c,{source:t.get("description")})),_.a.createElement(a,null,_.a.createElement("label",null,"Username:"),d?_.a.createElement("code",null," ",d," "):_.a.createElement(s,null,_.a.createElement(i,{type:"text",required:"required",name:"username",onChange:this.onChange}))),_.a.createElement(a,null,_.a.createElement("label",null,"Password:"),d?_.a.createElement("code",null," ****** "):_.a.createElement(s,null,_.a.createElement(i,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),h.valueSeq().map(function(e,t){return _.a.createElement(u,{error:e,key:t})}))}return"bearer"===p?_.a.createElement("div",null,_.a.createElement("h4",null,_.a.createElement("code",null,o||t.get("name")),"  (http, Bearer)",_.a.createElement(l,{path:["securityDefinitions",o]})),f&&_.a.createElement("h6",null,"Authorized"),_.a.createElement(a,null,_.a.createElement(c,{source:t.get("description")})),_.a.createElement(a,null,_.a.createElement("label",null,"Value:"),f?_.a.createElement("code",null," ****** "):_.a.createElement(s,null,_.a.createElement(i,{type:"text",onChange:this.onChange}))),h.valueSeq().map(function(e,t){return _.a.createElement(u,{error:e,key:t})})):_.a.createElement("div",null,_.a.createElement("em",null,_.a.createElement("b",null,o)," HTTP authentication: unsupported scheme ","'".concat(p,"'")))}}]),t}(_.a.Component))},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return I});var r=n(54),o=n.n(r),i=n(94),a=n.n(i),s=n(60),u=n.n(s),c=n(61),l=n.n(c),p=n(55),f=n.n(p),h=n(17),d=n.n(h),m=n(4),v=n.n(m),g=n(5),y=n.n(g),b=n(6),_=n.n(b),w=n(7),x=n.n(w),E=n(9),S=n.n(E),C=n(8),k=n.n(C),O=n(2),A=n.n(O),T=n(0),j=n.n(T);n(10),n(19);function P(e,t){var n=d()(e);if(f.a){var r=f()(e);t&&(r=r.filter(function(t){return l()(e,t).enumerable})),n.push.apply(n,r)}return n}var I=function(e){function t(){var e,n;v()(this,t);for(var r=arguments.length,i=new Array(r),s=0;s<r;s++)i[s]=arguments[s];return n=_()(this,(e=x()(t)).call.apply(e,[this].concat(i))),A()(S()(n),"setSelectedServer",function(e){var t=n.props,r=t.path,o=t.method;return n.forceUpdate(),n.props.setSelectedServer(e,"".concat(r,":").concat(o))}),A()(S()(n),"setServerVariableValue",function(e){var t=n.props,r=t.path,i=t.method;return n.forceUpdate(),n.props.setServerVariableValue(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(n,!0).forEach(function(t){A()(e,t,n[t])}):u.a?a()(e,u()(n)):P(n).forEach(function(t){o()(e,t,l()(n,t))})}return e}({},e,{namespace:"".concat(r,":").concat(i)}))}),A()(S()(n),"getSelectedServer",function(){var e=n.props,t=e.path,r=e.method;return n.props.getSelectedServer("".concat(t,":").concat(r))}),A()(S()(n),"getServerVariable",function(e,t){var r=n.props,o=r.path,i=r.method;return n.props.getServerVariable({namespace:"".concat(o,":").concat(i),server:e},t)}),A()(S()(n),"getEffectiveServerValue",function(e){var t=n.props,r=t.path,o=t.method;return n.props.getEffectiveServerValue({server:e,namespace:"".concat(r,":").concat(o)})}),n}return k()(t,e),y()(t,[{key:"render",value:function(){var e=this.props,t=e.operationServers,n=e.pathServers,r=e.getComponent;if(!t&&!n)return null;var o=r("Servers"),i=t||n,a=t?"operation":"path";return j.a.createElement("div",{className:"opblock-section operation-servers"},j.a.createElement("div",{className:"opblock-section-header"},j.a.createElement("div",{className:"tab-header"},j.a.createElement("h4",{className:"opblock-title"},"Servers"))),j.a.createElement("div",{className:"opblock-description-wrapper"},j.a.createElement("h4",{className:"message"},"These ",a,"-level options override the global server options."),j.a.createElement(o,{servers:i,currentServer:this.getSelectedServer(),setSelectedServer:this.setSelectedServer,setServerVariableValue:this.setServerVariableValue,getServerVariable:this.getServerVariable,getEffectiveServerValue:this.getEffectiveServerValue})))}}]),t}(j.a.Component)},function(e,t,n){"use strict";n.r(t);var r=n(320),o=n(321),i=n(322),a=n(323),s=n(324),u=n(325);t.default={Markdown:r.default,AuthItem:o.default,JsonSchema_string:u.default,VersionStamp:i.default,model:s.default,onlineValidatorBadge:a.default}},function(e,t,n){"use strict";n.r(t),n.d(t,"Markdown",function(){return f});var r=n(0),o=n.n(r),i=(n(10),n(59)),a=n.n(i),s=n(195),u=n.n(s),c=n(24),l=n(194),p=new u.a("commonmark");p.block.ruler.enable(["table"]),p.set({linkTarget:"_blank"});var f=function(e){var t=e.source,n=e.className,r=void 0===n?"":n;if("string"!=typeof t)return null;if(t){var i,s=p.render(t),u=Object(l.b)(s);return"string"==typeof u&&(i=u.trim()),o.a.createElement("div",{dangerouslySetInnerHTML:{__html:i},className:a()(r,"renderedMarkdown")})}return null};t.default=Object(c.OAS3ComponentWrapFactory)(f)},function(e,t,n){"use strict";n.r(t);var r=n(40),o=n.n(r),i=n(0),a=n.n(i),s=n(24);t.default=Object(s.OAS3ComponentWrapFactory)(function(e){var t=e.Ori,n=o()(e,["Ori"]),r=n.schema,i=n.getComponent,s=n.errSelectors,u=n.authorized,c=n.onAuthChange,l=n.name,p=i("HttpAuth");return"http"===r.get("type")?a.a.createElement(p,{key:l,schema:r,name:l,errSelectors:s,authorized:u,getComponent:i,onChange:c}):a.a.createElement(t,n)})},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=n(24);t.default=Object(i.OAS3ComponentWrapFactory)(function(e){var t=e.Ori;return o.a.createElement("span",null,o.a.createElement(t,e),o.a.createElement("small",{style:{backgroundColor:"#89bf04"}},o.a.createElement("pre",{className:"version"},"OAS3")))})},function(e,t,n){"use strict";n.r(t);var r=n(24);t.default=Object(r.OAS3ComponentWrapFactory)(function(){return null})},function(e,t,n){"use strict";n.r(t);var r=n(20),o=n.n(r),i=n(4),a=n.n(i),s=n(5),u=n.n(s),c=n(6),l=n.n(c),p=n(7),f=n.n(p),h=n(8),d=n.n(h),m=n(0),v=n.n(m),g=(n(10),n(24)),y=n(196),b=function(e){function t(){return a()(this,t),l()(this,f()(t).apply(this,arguments))}return d()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.getConfigs,n=["model-box"],r=null;return!0===e.schema.get("deprecated")&&(n.push("deprecated"),r=v.a.createElement("span",{className:"model-deprecated-warning"},"Deprecated:")),v.a.createElement("div",{className:n.join(" ")},r,v.a.createElement(y.a,o()({},this.props,{getConfigs:t,depth:1,expandDepth:this.props.expandDepth||0})))}}]),t}(m.Component);t.default=Object(g.OAS3ComponentWrapFactory)(b)},function(e,t,n){"use strict";n.r(t);var r=n(40),o=n.n(r),i=n(0),a=n.n(i),s=n(24);t.default=Object(s.OAS3ComponentWrapFactory)(function(e){var t=e.Ori,n=o()(e,["Ori"]),r=n.schema,i=n.getComponent,s=n.errors,u=n.onChange,c=r.type,l=r.format,p=i("Input");return"string"!==c||"binary"!==l&&"base64"!==l?a.a.createElement(t,n):a.a.createElement(p,{type:"file",className:s.length?"invalid":"",title:s.length?s:"",onChange:function(e){u(e.target.files[0])},disabled:t.isDisabled})})},function(e,t,n){"use strict";n.r(t),n.d(t,"selectedServer",function(){return a}),n.d(t,"requestBodyValue",function(){return s}),n.d(t,"activeExamplesMember",function(){return u}),n.d(t,"requestContentType",function(){return c}),n.d(t,"responseContentType",function(){return l}),n.d(t,"serverVariableValue",function(){return p}),n.d(t,"serverVariables",function(){return f}),n.d(t,"serverEffectiveValue",function(){return h});var r=n(1),o=n(24);function i(e){return function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(t){var r=t.getSystem().specSelectors.specJson();return Object(o.isOAS3)(r)?e.apply(void 0,n):null}}}var a=i(function(e,t){var n=t?[t,"selectedServer"]:["selectedServer"];return e.getIn(n)||""}),s=i(function(e,t,n){return e.getIn(["requestData",t,n,"bodyValue"])||null}),u=i(function(e,t,n,r,o){return e.getIn(["examples",t,n,r,o,"activeExample"])||null}),c=i(function(e,t,n){return e.getIn(["requestData",t,n,"requestContentType"])||null}),l=i(function(e,t,n){return e.getIn(["requestData",t,n,"responseContentType"])||null}),p=i(function(e,t,n){var r;if("string"!=typeof t){var o=t.server,i=t.namespace;r=i?[i,"serverVariableValues",o,n]:["serverVariableValues",o,n]}else{r=["serverVariableValues",t,n]}return e.getIn(r)||null}),f=i(function(e,t){var n;if("string"!=typeof t){var o=t.server,i=t.namespace;n=i?[i,"serverVariableValues",o]:["serverVariableValues",o]}else{n=["serverVariableValues",t]}return e.getIn(n)||Object(r.OrderedMap)()}),h=i(function(e,t){var n,o;if("string"!=typeof t){var i=t.server,a=t.namespace;o=i,n=a?e.getIn([a,"serverVariableValues",o]):e.getIn(["serverVariableValues",o])}else o=t,n=e.getIn(["serverVariableValues",o]);n=n||Object(r.OrderedMap)();var s=o;return n.map(function(e,t){s=s.replace(new RegExp("{".concat(t,"}"),"g"),e)}),s})},function(e,t,n){"use strict";n.r(t);var r,o=n(2),i=n.n(o),a=n(13),s=n.n(a),u=n(62);t.default=(r={},i()(r,u.UPDATE_SELECTED_SERVER,function(e,t){var n=t.payload,r=n.selectedServerUrl,o=n.namespace,i=o?[o,"selectedServer"]:["selectedServer"];return e.setIn(i,r)}),i()(r,u.UPDATE_REQUEST_BODY_VALUE,function(e,t){var n=t.payload,r=n.value,o=n.pathMethod,i=s()(o,2),a=i[0],u=i[1];return e.setIn(["requestData",a,u,"bodyValue"],r)}),i()(r,u.UPDATE_ACTIVE_EXAMPLES_MEMBER,function(e,t){var n=t.payload,r=n.name,o=n.pathMethod,i=n.contextType,a=n.contextName,u=s()(o,2),c=u[0],l=u[1];return e.setIn(["examples",c,l,i,a,"activeExample"],r)}),i()(r,u.UPDATE_REQUEST_CONTENT_TYPE,function(e,t){var n=t.payload,r=n.value,o=n.pathMethod,i=s()(o,2),a=i[0],u=i[1];return e.setIn(["requestData",a,u,"requestContentType"],r)}),i()(r,u.UPDATE_RESPONSE_CONTENT_TYPE,function(e,t){var n=t.payload,r=n.value,o=n.path,i=n.method;return e.setIn(["requestData",o,i,"responseContentType"],r)}),i()(r,u.UPDATE_SERVER_VARIABLE_VALUE,function(e,t){var n=t.payload,r=n.server,o=n.namespace,i=n.key,a=n.val,s=o?[o,"serverVariableValues",r,i]:["serverVariableValues",r,i];return e.setIn(s,a)}),r)},function(e,t,n){"use strict";n.r(t);var r=n(3),o=n(1033),i={};o.keys().forEach(function(e){if("./index.js"!==e){var t=o(e);i[Object(r.E)(e)]=t.default?t.default:t}}),t.default=i},function(e,t,n){"use strict";n.r(t);var r=n(147),o=n(121),i=n(296),a=n(297),s=n(298);n.d(t,"default",function(){return c});var u={getLocalConfig:function(){return Object(r.parseYamlConfig)('---\nurl: "https://petstore.swagger.io/v2/swagger.json"\ndom_id: "#swagger-ui"\nvalidatorUrl: "https://validator.swagger.io/validator"\n')}};function c(){return{statePlugins:{spec:{actions:i,selectors:u},configs:{reducers:s.default,actions:o,selectors:a}}}}},function(e,t,n){"use strict";(function(e,r){var o,i=n(468);o="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:r;var a=Object(i.a)(o);t.a=a}).call(this,n(36),n(592)(e))},function(e,t,n){"use strict";var r=n(396),o=n(398),i=n(700);e.exports=function(e){var t,a=r(arguments[1]);return a.normalizer||0!==(t=a.length=o(a.length,e.length,a.async))&&(a.primitive?!1===t?a.normalizer=n(727):t>1&&(a.normalizer=n(728)(t)):a.normalizer=!1===t?n(729)():1===t?n(733)():n(734)(t)),a.async&&n(735),a.promise&&n(736),a.dispose&&n(742),a.maxAge&&n(743),a.max&&n(746),a.refCounter&&n(748),i(e,a)}},function(e,t,n){e.exports=n(772)},function(e,t,n){var r=n(417);e.exports=function(e,t,n){return null==e?e:r(e,t,n)}},function(e,t,n){"use strict";t.__esModule=!0,t.connect=t.Provider=void 0;var r=i(n(891)),o=i(n(893));function i(e){return e&&e.__esModule?e:{default:e}}t.Provider=r.default,t.connect=o.default},function(e,t,n){e.exports=function(){"use strict";var e=Object.freeze||function(e){return e},t=e(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),n=e(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"]),r=e(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),o=e(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"]),i=e(["#text"]),a=Object.freeze||function(e){return e},s=a(["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","minlength","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"]),u=a(["accent-height","accumulate","additive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),c=a(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),l=a(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),p=Object.hasOwnProperty,f=Object.setPrototypeOf,h=("undefined"!=typeof Reflect&&Reflect).apply;function d(e,t){f&&f(e,null);for(var n=t.length;n--;){var r=t[n];if("string"==typeof r){var o=r.toLowerCase();o!==r&&(Object.isFrozen(t)||(t[n]=o),r=o)}e[r]=!0}return e}function m(e){var t={},n=void 0;for(n in e)h(p,e,[n])&&(t[n]=e[n]);return t}h||(h=function(e,t,n){return e.apply(t,n)});var v=Object.seal||function(e){return e},g=v(/\{\{[\s\S]*|[\s\S]*\}\}/gm),y=v(/<%[\s\S]*|[\s\S]*%>/gm),b=v(/^data-[\-\w.\u00B7-\uFFFF]/),_=v(/^aria-[\-\w]+$/),w=v(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),x=v(/^(?:\w+script|data):/i),E=v(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g),S="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function C(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var k=("undefined"!=typeof Reflect&&Reflect).apply,O=Array.prototype.slice,A=Object.freeze,T=function(){return"undefined"==typeof window?null:window};k||(k=function(e,t,n){return e.apply(t,n)});var j=function(e,t){if("object"!==(void 0===e?"undefined":S(e))||"function"!=typeof e.createPolicy)return null;var n=null;t.currentScript&&t.currentScript.hasAttribute("data-tt-policy-suffix")&&(n=t.currentScript.getAttribute("data-tt-policy-suffix"));var r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:function(e){return e}})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}};return function e(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:T(),p=function(t){return e(t)};if(p.version="2.0.7",p.removed=[],!a||!a.document||9!==a.document.nodeType)return p.isSupported=!1,p;var f=a.document,h=!1,v=!1,P=a.document,I=a.DocumentFragment,M=a.HTMLTemplateElement,N=a.Node,R=a.NodeFilter,D=a.NamedNodeMap,L=void 0===D?a.NamedNodeMap||a.MozNamedAttrMap:D,U=a.Text,q=a.Comment,F=a.DOMParser,B=a.TrustedTypes;if("function"==typeof M){var z=P.createElement("template");z.content&&z.content.ownerDocument&&(P=z.content.ownerDocument)}var V=j(B,f),H=V?V.createHTML(""):"",W=P,J=W.implementation,K=W.createNodeIterator,Y=W.getElementsByTagName,$=W.createDocumentFragment,G=f.importNode,Z={};p.isSupported=J&&void 0!==J.createHTMLDocument&&9!==P.documentMode;var X=g,Q=y,ee=b,te=_,ne=x,re=E,oe=w,ie=null,ae=d({},[].concat(C(t),C(n),C(r),C(o),C(i))),se=null,ue=d({},[].concat(C(s),C(u),C(c),C(l))),ce=null,le=null,pe=!0,fe=!0,he=!1,de=!1,me=!1,ve=!1,ge=!1,ye=!1,be=!1,_e=!1,we=!1,xe=!1,Ee=!0,Se=!0,Ce=!1,ke={},Oe=d({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","plaintext","script","style","svg","template","thead","title","video","xmp"]),Ae=d({},["audio","video","img","source","image"]),Te=null,je=d({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Pe=null,Ie=P.createElement("form"),Me=function(e){Pe&&Pe===e||(e&&"object"===(void 0===e?"undefined":S(e))||(e={}),ie="ALLOWED_TAGS"in e?d({},e.ALLOWED_TAGS):ae,se="ALLOWED_ATTR"in e?d({},e.ALLOWED_ATTR):ue,Te="ADD_URI_SAFE_ATTR"in e?d(m(je),e.ADD_URI_SAFE_ATTR):je,ce="FORBID_TAGS"in e?d({},e.FORBID_TAGS):{},le="FORBID_ATTR"in e?d({},e.FORBID_ATTR):{},ke="USE_PROFILES"in e&&e.USE_PROFILES,pe=!1!==e.ALLOW_ARIA_ATTR,fe=!1!==e.ALLOW_DATA_ATTR,he=e.ALLOW_UNKNOWN_PROTOCOLS||!1,de=e.SAFE_FOR_JQUERY||!1,me=e.SAFE_FOR_TEMPLATES||!1,ve=e.WHOLE_DOCUMENT||!1,be=e.RETURN_DOM||!1,_e=e.RETURN_DOM_FRAGMENT||!1,we=e.RETURN_DOM_IMPORT||!1,xe=e.RETURN_TRUSTED_TYPE||!1,ye=e.FORCE_BODY||!1,Ee=!1!==e.SANITIZE_DOM,Se=!1!==e.KEEP_CONTENT,Ce=e.IN_PLACE||!1,oe=e.ALLOWED_URI_REGEXP||oe,me&&(fe=!1),_e&&(be=!0),ke&&(ie=d({},[].concat(C(i))),se=[],!0===ke.html&&(d(ie,t),d(se,s)),!0===ke.svg&&(d(ie,n),d(se,u),d(se,l)),!0===ke.svgFilters&&(d(ie,r),d(se,u),d(se,l)),!0===ke.mathMl&&(d(ie,o),d(se,c),d(se,l))),e.ADD_TAGS&&(ie===ae&&(ie=m(ie)),d(ie,e.ADD_TAGS)),e.ADD_ATTR&&(se===ue&&(se=m(se)),d(se,e.ADD_ATTR)),e.ADD_URI_SAFE_ATTR&&d(Te,e.ADD_URI_SAFE_ATTR),Se&&(ie["#text"]=!0),ve&&d(ie,["html","head","body"]),ie.table&&(d(ie,["tbody"]),delete ce.tbody),A&&A(e),Pe=e)},Ne=function(e){p.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=H}},Re=function(e,t){try{p.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){p.removed.push({attribute:null,from:t})}t.removeAttribute(e)},De=function(e){var t=void 0,n=void 0;if(ye)e="<remove></remove>"+e;else{var r=e.match(/^[\s]+/);(n=r&&r[0])&&(e=e.slice(n.length))}if(h)try{t=(new F).parseFromString(e,"text/html")}catch(e){}if(v&&d(ce,["title"]),!t||!t.documentElement){var o=(t=J.createHTMLDocument("")).body;o.parentNode.removeChild(o.parentNode.firstElementChild),o.outerHTML=V?V.createHTML(e):e}return e&&n&&t.body.insertBefore(P.createTextNode(n),t.body.childNodes[0]||null),Y.call(t,ve?"html":"body")[0]};p.isSupported&&(function(){try{De('<svg><p><textarea><img src="</textarea><img src=x abc=1//">').querySelector("svg img")&&(h=!0)}catch(e){}}(),function(){try{var e=De("<x/><title>&lt;/title&gt;&lt;img&gt;");/<\/title/.test(e.querySelector("title").innerHTML)&&(v=!0)}catch(e){}}());var Le=function(e){return K.call(e.ownerDocument||e,e,R.SHOW_ELEMENT|R.SHOW_COMMENT|R.SHOW_TEXT,function(){return R.FILTER_ACCEPT},!1)},Ue=function(e){return"object"===(void 0===N?"undefined":S(N))?e instanceof N:e&&"object"===(void 0===e?"undefined":S(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},qe=function(e,t,n){Z[e]&&Z[e].forEach(function(e){e.call(p,t,n,Pe)})},Fe=function(e){var t,n=void 0;if(qe("beforeSanitizeElements",e,null),!((t=e)instanceof U||t instanceof q||"string"==typeof t.nodeName&&"string"==typeof t.textContent&&"function"==typeof t.removeChild&&t.attributes instanceof L&&"function"==typeof t.removeAttribute&&"function"==typeof t.setAttribute&&"string"==typeof t.namespaceURI))return Ne(e),!0;var r=e.nodeName.toLowerCase();if(qe("uponSanitizeElement",e,{tagName:r,allowedTags:ie}),("svg"===r||"math"===r)&&0!==e.querySelectorAll("p, br").length)return Ne(e),!0;if(!ie[r]||ce[r]){if(Se&&!Oe[r]&&"function"==typeof e.insertAdjacentHTML)try{var o=e.innerHTML;e.insertAdjacentHTML("AfterEnd",V?V.createHTML(o):o)}catch(e){}return Ne(e),!0}return"noscript"===r&&/<\/noscript/i.test(e.innerHTML)?(Ne(e),!0):"noembed"===r&&/<\/noembed/i.test(e.innerHTML)?(Ne(e),!0):(!de||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(p.removed.push({element:e.cloneNode()}),e.innerHTML?e.innerHTML=e.innerHTML.replace(/</g,"&lt;"):e.innerHTML=e.textContent.replace(/</g,"&lt;")),me&&3===e.nodeType&&(n=(n=(n=e.textContent).replace(X," ")).replace(Q," "),e.textContent!==n&&(p.removed.push({element:e.cloneNode()}),e.textContent=n)),qe("afterSanitizeElements",e,null),!1)},Be=function(e,t,n){if(Ee&&("id"===t||"name"===t)&&(n in P||n in Ie))return!1;if(fe&&ee.test(t));else if(pe&&te.test(t));else{if(!se[t]||le[t])return!1;if(Te[t]);else if(oe.test(n.replace(re,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==n.indexOf("data:")||!Ae[e])if(he&&!ne.test(n.replace(re,"")));else if(n)return!1}return!0},ze=function(e){var t=void 0,n=void 0,r=void 0,o=void 0,i=void 0;qe("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:se};for(i=a.length;i--;){var u=t=a[i],c=u.name,l=u.namespaceURI;if(n=t.value.trim(),r=c.toLowerCase(),s.attrName=r,s.attrValue=n,s.keepAttr=!0,qe("uponSanitizeAttribute",e,s),n=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)o=a.id,a=k(O,a,[]),Re("id",e),Re(c,e),a.indexOf(o)>i&&e.setAttribute("id",o.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===n&&s.keepAttr&&(se[r]||!le[r]))continue;"id"===c&&e.setAttribute(c,""),Re(c,e)}if(s.keepAttr)if(/svg|math/i.test(e.namespaceURI)&&new RegExp("</("+Object.keys(Oe).join("|")+")","i").test(n))Re(c,e);else{me&&(n=(n=n.replace(X," ")).replace(Q," "));var f=e.nodeName.toLowerCase();if(Be(f,r,n))try{l?e.setAttributeNS(l,c,n):e.setAttribute(c,n),p.removed.pop()}catch(e){}}}qe("afterSanitizeAttributes",e,null)}},Ve=function e(t){var n=void 0,r=Le(t);for(qe("beforeSanitizeShadowDOM",t,null);n=r.nextNode();)qe("uponSanitizeShadowNode",n,null),Fe(n)||(n.content instanceof I&&e(n.content),ze(n));qe("afterSanitizeShadowDOM",t,null)};return p.sanitize=function(e,t){var n=void 0,r=void 0,o=void 0,i=void 0,s=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Ue(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!p.isSupported){if("object"===S(a.toStaticHTML)||"function"==typeof a.toStaticHTML){if("string"==typeof e)return a.toStaticHTML(e);if(Ue(e))return a.toStaticHTML(e.outerHTML)}return e}if(ge||Me(t),p.removed=[],Ce);else if(e instanceof N)1===(r=(n=De("\x3c!--\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===r.nodeName?n=r:"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!be&&!me&&!ve&&xe&&-1===e.indexOf("<"))return V?V.createHTML(e):e;if(!(n=De(e)))return be?null:H}n&&ye&&Ne(n.firstChild);for(var u=Le(Ce?e:n);o=u.nextNode();)3===o.nodeType&&o===i||Fe(o)||(o.content instanceof I&&Ve(o.content),ze(o),i=o);if(i=null,Ce)return e;if(be){if(_e)for(s=$.call(n.ownerDocument);n.firstChild;)s.appendChild(n.firstChild);else s=n;return we&&(s=G.call(f,s,!0)),s}var c=ve?n.outerHTML:n.innerHTML;return me&&(c=(c=c.replace(X," ")).replace(Q," ")),V&&xe?V.createHTML(c):c},p.setConfig=function(e){Me(e),ge=!0},p.clearConfig=function(){Pe=null,ge=!1},p.isValidAttribute=function(e,t,n){Pe||Me({});var r=e.toLowerCase(),o=t.toLowerCase();return Be(r,o,n)},p.addHook=function(e,t){"function"==typeof t&&(Z[e]=Z[e]||[],Z[e].push(t))},p.removeHook=function(e){Z[e]&&Z[e].pop()},p.removeHooks=function(e){Z[e]&&(Z[e]=[])},p.removeAllHooks=function(){Z={}},p}()}()},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(201)(!0);n(338)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t,n){"use strict";var r=n(198),o=n(35),i=n(97),a=n(81),s=n(128),u=n(495),c=n(203),l=n(501),p=n(33)("iterator"),f=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,d,m,v,g){u(n,t,d);var y,b,_,w=function(e){if(!f&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",E="values"==m,S=!1,C=e.prototype,k=C[p]||C["@@iterator"]||m&&C[m],O=k||w(m),A=m?E?w("entries"):O:void 0,T="Array"==t&&C.entries||k;if(T&&(_=l(T.call(new e)))!==Object.prototype&&_.next&&(c(_,x,!0),r||"function"==typeof _[p]||a(_,p,h)),E&&k&&"values"!==k.name&&(S=!0,O=function(){return k.call(this)}),r&&!g||!f&&!S&&C[p]||a(C,p,O),s[t]=O,s[x]=h,m)if(y={values:E?O:w("values"),keys:v?O:w("keys"),entries:A},g)for(b in y)b in C||i(C,b,y[b]);else o(o.P+o.F*(f||S),t,y);return y}},function(e,t,n){var r=n(498),o=n(341);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(127),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(41).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(73);e.exports=function(e){return Object(r(e))}},function(e,t,n){var r,o,i,a=n(153),s=n(512),u=n(342),c=n(200),l=n(41),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=l.Dispatch,v=0,g={},y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},b=function(e){y.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++v]=function(){s("function"==typeof e?e:Function(e),t)},r(v),v},h=function(e){delete g[e]},"process"==n(125)(p)?r=function(e){p.nextTick(a(y,e,1))}:m&&m.now?r=function(e){m.now(a(y,e,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(45),o=n(98),i=n(205);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(98),o=n(125),i=n(33)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},function(e,t,n){var r=n(75),o=n(76),i=n(555)(!1),a=n(213)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){e.exports=!n(50)&&!n(82)(function(){return 7!=Object.defineProperty(n(217)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(49),o=n(46),i=n(129);e.exports=n(50)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){var r=n(32).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(75),o=n(100),i=n(213)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(32),o=n(75),i=n(50),a=n(30),s=n(220),u=n(135).KEY,c=n(82),l=n(214),p=n(134),f=n(159),h=n(34),d=n(221),m=n(222),v=n(565),g=n(223),y=n(46),b=n(43),_=n(76),w=n(218),x=n(133),E=n(160),S=n(566),C=n(163),k=n(49),O=n(129),A=C.f,T=k.f,j=S.f,P=r.Symbol,I=r.JSON,M=I&&I.stringify,N=h("_hidden"),R=h("toPrimitive"),D={}.propertyIsEnumerable,L=l("symbol-registry"),U=l("symbols"),q=l("op-symbols"),F=Object.prototype,B="function"==typeof P,z=r.QObject,V=!z||!z.prototype||!z.prototype.findChild,H=i&&c(function(){return 7!=E(T({},"a",{get:function(){return T(this,"a",{value:7}).a}})).a})?function(e,t,n){var r=A(F,t);r&&delete F[t],T(e,t,n),r&&e!==F&&T(F,t,r)}:T,W=function(e){var t=U[e]=E(P.prototype);return t._k=e,t},J=B&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},K=function(e,t,n){return e===F&&K(q,t,n),y(e),t=w(t,!0),y(n),o(U,t)?(n.enumerable?(o(e,N)&&e[N][t]&&(e[N][t]=!1),n=E(n,{enumerable:x(0,!1)})):(o(e,N)||T(e,N,x(1,{})),e[N][t]=!0),H(e,t,n)):T(e,t,n)},Y=function(e,t){y(e);for(var n,r=v(t=_(t)),o=0,i=r.length;i>o;)K(e,n=r[o++],t[n]);return e},$=function(e){var t=D.call(this,e=w(e,!0));return!(this===F&&o(U,e)&&!o(q,e))&&(!(t||!o(this,e)||!o(U,e)||o(this,N)&&this[N][e])||t)},G=function(e,t){if(e=_(e),t=w(t,!0),e!==F||!o(U,t)||o(q,t)){var n=A(e,t);return!n||!o(U,t)||o(e,N)&&e[N][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=j(_(e)),r=[],i=0;n.length>i;)o(U,t=n[i++])||t==N||t==u||r.push(t);return r},X=function(e){for(var t,n=e===F,r=j(n?q:_(e)),i=[],a=0;r.length>a;)!o(U,t=r[a++])||n&&!o(F,t)||i.push(U[t]);return i};B||(s((P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(n){this===F&&t.call(q,n),o(this,N)&&o(this[N],e)&&(this[N][e]=!1),H(this,e,x(1,n))};return i&&V&&H(F,e,{configurable:!0,set:t}),W(e)}).prototype,"toString",function(){return this._k}),C.f=G,k.f=K,n(224).f=S.f=Z,n(162).f=$,n(161).f=X,i&&!n(131)&&s(F,"propertyIsEnumerable",$,!0),d.f=function(e){return W(h(e))}),a(a.G+a.W+a.F*!B,{Symbol:P});for(var Q="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ee=0;Q.length>ee;)h(Q[ee++]);for(var te=O(h.store),ne=0;te.length>ne;)m(te[ne++]);a(a.S+a.F*!B,"Symbol",{for:function(e){return o(L,e+="")?L[e]:L[e]=P(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in L)if(L[t]===e)return t},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!B,"Object",{create:function(e,t){return void 0===t?E(e):Y(E(e),t)},defineProperty:K,defineProperties:Y,getOwnPropertyDescriptor:G,getOwnPropertyNames:Z,getOwnPropertySymbols:X}),I&&a(a.S+a.F*(!B||c(function(){var e=P();return"[null]"!=M([e])||"{}"!=M({a:e})||"{}"!=M(Object(e))})),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(b(t)||void 0!==e)&&!J(e))return g(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,M.apply(I,r)}}),P.prototype[R]||n(77)(P.prototype,R,P.prototype.valueOf),p(P,"Symbol"),p(Math,"Math",!0),p(r.JSON,"JSON",!0)},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";var r=n(129),o=n(161),i=n(162),a=n(100),s=n(211),u=Object.assign;e.exports=!u||n(82)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=a(e),u=arguments.length,c=1,l=o.f,p=i.f;u>c;)for(var f,h=s(arguments[c++]),d=l?r(h).concat(l(h)):r(h),m=d.length,v=0;m>v;)p.call(h,f=d[v++])&&(n[f]=h[f]);return n}:u},function(e,t,n){"use strict";var r=n(136),o=n(25),i=n(358),a=(n(359),n(165));n(15),n(577);function s(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function u(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function c(){}s.prototype.isReactComponent={},s.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},c.prototype=s.prototype,u.prototype=new c,u.prototype.constructor=u,o(u.prototype,s.prototype),u.prototype.isPureReactComponent=!0,e.exports={Component:s,PureComponent:u}},function(e,t,n){"use strict";n(23);var r={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};e.exports=r},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r=n(585);e.exports=function(e){return r(e,!1)}},function(e,t,n){"use strict";e.exports=n(586)},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return e&&"@@redux/INIT"===e.type?"initialState argument passed to createStore":"previous state received by the reducer"},e.exports=t.default},function(e,t,n){var r=n(106),o=n(367),i=n(37),a=n(167),s=1/0,u=r?r.prototype:void 0,c=u?u.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(i(t))return o(t,e)+"";if(a(t))return c?c.call(t):"";var n=t+"";return"0"==n&&1/t==-s?"-0":n}},function(e,t,n){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(this,n(36))},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},function(e,t){e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=e[r+t];return i}},function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t){e.exports=function(e,t,n,r){var o=-1,i=null==e?0:e.length;for(r&&i&&(n=e[++o]);++o<i;)n=t(n,e[o],o,e);return n}},function(e,t,n){var r=n(83),o=n(52),i="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",u="[object Proxy]";e.exports=function(e){if(!o(e))return!1;var t=r(e);return t==a||t==s||t==i||t==u}},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t,n){var r=n(647),o=n(66);e.exports=function e(t,n,i,a,s){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,i,a,e,s))}},function(e,t,n){var r=n(648),o=n(375),i=n(651),a=1,s=2;e.exports=function(e,t,n,u,c,l){var p=n&a,f=e.length,h=t.length;if(f!=h&&!(p&&h>f))return!1;var d=l.get(e);if(d&&l.get(t))return d==t;var m=-1,v=!0,g=n&s?new r:void 0;for(l.set(e,t),l.set(t,e);++m<f;){var y=e[m],b=t[m];if(u)var _=p?u(b,y,m,t,e,l):u(y,b,m,e,t,l);if(void 0!==_){if(_)continue;v=!1;break}if(g){if(!o(t,function(e,t){if(!i(g,t)&&(y===e||c(y,e,n,u,l)))return g.push(t)})){v=!1;break}}else if(y!==b&&!c(y,b,n,u,l)){v=!1;break}}return l.delete(e),l.delete(t),v}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},function(e,t,n){var r=n(51).Uint8Array;e.exports=r},function(e,t,n){var r=n(378),o=n(230),i=n(85);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(229),o=n(37);e.exports=function(e,t,n){var i=t(e);return o(e)?i:r(i,n(e))}},function(e,t){e.exports=function(){return[]}},function(e,t,n){var r=n(657),o=n(231),i=n(37),a=n(232),s=n(174),u=n(381),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=i(e),l=!n&&o(e),p=!n&&!l&&a(e),f=!n&&!l&&!p&&u(e),h=n||l||p||f,d=h?r(e.length,String):[],m=d.length;for(var v in e)!t&&!c.call(e,v)||h&&("length"==v||p&&("offset"==v||"parent"==v)||f&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||s(v,m))||d.push(v);return d}},function(e,t,n){var r=n(660),o=n(234),i=n(235),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){e.exports=function(e,t){return function(n){return e(t(n))}}},function(e,t,n){var r=n(52);e.exports=function(e){return e==e&&!r(e)}},function(e,t){e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},function(e,t,n){var r=n(671),o=n(672);e.exports=function(e,t){return null!=e&&o(e,t,r)}},function(e,t,n){var r=n(678);e.exports=function(e){var t=r(e),n=t%1;return t==t?n?t-n:t:0}},function(e,t,n){var r=n(52),o=n(167),i=NaN,a=/^\s+|\s+$/g,s=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return i;if(r(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=r(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var n=u.test(e);return n||c.test(e)?l(e.slice(2),n?2:8):s.test(e)?i:+e}},function(e,t,n){var r=n(680),o=n(683)(r);e.exports=o},function(e,t,n){var r=n(91),o=n(107),i=n(174),a=n(52);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},function(e,t,n){"use strict";(function(t,r){var o=n(178);e.exports=b;var i,a=n(355);b.ReadableState=y;n(238).EventEmitter;var s=function(e,t){return e.listeners(t).length},u=n(391),c=n(48).Buffer,l=t.Uint8Array||function(){};var p=n(137);p.inherits=n(47);var f=n(686),h=void 0;h=f&&f.debuglog?f.debuglog("stream"):function(){};var d,m=n(687),v=n(392);p.inherits(b,u);var g=["error","close","destroy","pause","resume"];function y(e,t){e=e||{};var r=t instanceof(i=i||n(86));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,a=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(a||0===a)?a:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new m,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(d||(d=n(394).StringDecoder),this.decoder=new d(e.encoding),this.encoding=e.encoding)}function b(e){if(i=i||n(86),!(this instanceof b))return new b(e);this._readableState=new y(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),u.call(this)}function _(e,t,n,r,o){var i,a=e._readableState;null===t?(a.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,S(e)}(e,a)):(o||(i=function(e,t){var n;r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(a,t)),i?e.emit("error",i):a.objectMode||t&&t.length>0?("string"==typeof t||a.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?a.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,a,t,!0):a.ended?e.emit("error",new Error("stream.push() after EOF")):(a.reading=!1,a.decoder&&!n?(t=a.decoder.write(t),a.objectMode||0!==t.length?w(e,a,t,!1):k(e,a)):w(e,a,t,!1))):r||(a.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(a)}function w(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&S(e)),k(e,t)}Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),b.prototype.destroy=v.destroy,b.prototype._undestroy=v.undestroy,b.prototype._destroy=function(e,t){this.push(null),t(e)},b.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=c.from(e,t),t=""),n=!0),_(this,e,t,!1,n)},b.prototype.unshift=function(e){return _(this,e,null,!0,!1)},b.prototype.isPaused=function(){return!1===this._readableState.flowing},b.prototype.setEncoding=function(e){return d||(d=n(394).StringDecoder),this._readableState.decoder=new d(e),this._readableState.encoding=e,this};var x=8388608;function E(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=x?e=x:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function S(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(C,e):C(e))}function C(e){h("emit readable"),e.emit("readable"),j(e)}function k(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(O,e,t))}function O(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(h("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function A(e){h("readable nexttick read 0"),e.read(0)}function T(e,t){t.reading||(h("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),j(e),t.flowing&&!t.reading&&e.read(0)}function j(e){var t=e._readableState;for(h("flow",t.flowing);t.flowing&&null!==e.read(););}function P(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,o=n.data;e-=o.length;for(;n=n.next;){var i=n.data,a=e>i.length?i.length:e;if(a===i.length?o+=i:o+=i.slice(0,e),0===(e-=a)){a===i.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=i.slice(a));break}++r}return t.length-=r,o}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,o=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var i=r.data,a=e>i.length?i.length:e;if(i.copy(n,n.length-e,0,a),0===(e-=a)){a===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(a));break}++o}return t.length-=o,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function I(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(M,t,e))}function M(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function N(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}b.prototype.read=function(e){h("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?I(this):S(this),null;if(0===(e=E(e,t))&&t.ended)return 0===t.length&&I(this),null;var r,o=t.needReadable;return h("need readable",o),(0===t.length||t.length-e<t.highWaterMark)&&h("length less than watermark",o=!0),t.ended||t.reading?h("reading or ended",o=!1):o&&(h("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=E(n,t))),null===(r=e>0?P(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&I(this)),null!==r&&this.emit("data",r),r},b.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,t){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,h("pipe count=%d opts=%j",i.pipesCount,t);var u=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:b;function c(t,r){h("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",g),e.removeListener("finish",y),e.removeListener("drain",p),e.removeListener("error",v),e.removeListener("unpipe",c),n.removeListener("end",l),n.removeListener("end",b),n.removeListener("data",m),f=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||p())}function l(){h("onend"),e.end()}i.endEmitted?o.nextTick(u):n.once("end",u),e.on("unpipe",c);var p=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,j(e))}}(n);e.on("drain",p);var f=!1;var d=!1;function m(t){h("ondata"),d=!1,!1!==e.write(t)||d||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==N(i.pipes,e))&&!f&&(h("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,d=!0),n.pause())}function v(t){h("onerror",t),b(),e.removeListener("error",v),0===s(e,"error")&&e.emit("error",t)}function g(){e.removeListener("finish",y),b()}function y(){h("onfinish"),e.removeListener("close",g),b()}function b(){h("unpipe"),n.unpipe(e)}return n.on("data",m),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",v),e.once("close",g),e.once("finish",y),e.emit("pipe",n),i.flowing||(h("pipe resume"),n.resume()),e},b.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<o;i++)r[i].emit("unpipe",this,n);return this}var a=N(t.pipes,e);return-1===a?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},b.prototype.on=function(e,t){var n=u.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&S(this):o.nextTick(A,this))}return n},b.prototype.addListener=b.prototype.on,b.prototype.resume=function(){var e=this._readableState;return e.flowing||(h("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,o.nextTick(T,e,t))}(this,e)),this},b.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this},b.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var o in e.on("end",function(){if(h("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(o){(h("wrapped data"),n.decoder&&(o=n.decoder.write(o)),n.objectMode&&null==o)||(n.objectMode||o&&o.length)&&(t.push(o)||(r=!0,e.pause()))}),e)void 0===this[o]&&"function"==typeof e[o]&&(this[o]=function(t){return function(){return e[t].apply(e,arguments)}}(o));for(var i=0;i<g.length;i++)e.on(g[i],this.emit.bind(this,g[i]));return this._read=function(t){h("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(b.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),b._fromList=P}).call(this,n(36),n(67))},function(e,t,n){e.exports=n(238).EventEmitter},function(e,t,n){"use strict";var r=n(178);function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,i=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return i||a?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(o,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(r.nextTick(o,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},n(689),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(36))},function(e,t,n){"use strict";var r=n(48).Buffer,o=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function i(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===o||!o(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=u,this.end=c,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=p,t=3;break;default:return this.write=f,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function u(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function c(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function f(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},i.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},i.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var o=a(t[r]);if(o>=0)return o>0&&(e.lastNeed=o-1),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(e.lastNeed=o-2),o;if(--r<n||-2===o)return 0;if((o=a(t[r]))>=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";e.exports=a;var r=n(86),o=n(137);function i(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:i.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush(function(t,n){u(e,t,n)}):u(this,null,null)}function u(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}o.inherits=n(47),o.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var o=this._readableState;(r.needTransform||o.needReadable||o.length<o.highWaterMark)&&this._read(o.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},function(e,t,n){"use strict";var r=n(87),o=Array.prototype.forEach,i=Object.create,a=function(e,t){var n;for(n in e)t[n]=e[n]};e.exports=function(e){var t=i(null);return o.call(arguments,function(e){r(e)&&a(Object(e),t)}),t}},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(88);e.exports=function(e,t,n){var o;return isNaN(e)?(o=t)>=0?n&&o?o-1:o:1:!1!==e&&r(e)}},function(e,t,n){"use strict";e.exports=n(704)()?Object.assign:n(705)},function(e,t,n){"use strict";var r,o,i,a,s,u=n(88),c=function(e,t){return t};try{Object.defineProperty(c,"length",{configurable:!0,writable:!1,enumerable:!1,value:1})}catch(e){}1===c.length?(r={configurable:!0,writable:!1,enumerable:!1},o=Object.defineProperty,e.exports=function(e,t){return t=u(t),e.length===t?e:(r.value=t,o(e,"length",r))}):(a=n(401),s=[],i=function(e){var t,n=0;if(s[e])return s[e];for(t=[];e--;)t.push("a"+(++n).toString(36));return new Function("fn","return function ("+t.join(", ")+") { return fn.apply(this, arguments); };")},e.exports=function(e,t){var n;if(t=u(t),e.length===t)return e;n=i(t)(e);try{a(n,e)}catch(e){}return n})},function(e,t,n){"use strict";var r=n(110),o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols;e.exports=function(e,t){var n,u=Object(r(t));if(e=Object(r(e)),a(u).forEach(function(r){try{o(e,r,i(t,r))}catch(e){n=e}}),"function"==typeof s&&s(u).forEach(function(r){try{o(e,r,i(t,r))}catch(e){n=e}}),void 0!==n)throw n;return e}},function(e,t,n){"use strict";var r=n(78),o=n(179),i=Function.prototype.call;e.exports=function(e,t){var n={},a=arguments[2];return r(t),o(e,function(e,r,o,s){n[r]=i.call(t,a,e,r,o,s)}),n}},function(e,t){e.exports=function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then}},function(e,t,n){var r=n(47),o=n(111),i=n(48).Buffer,a=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function p(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function f(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(u,o),u.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},u.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,d=0|this._f,m=0|this._g,v=0|this._h,g=0;g<16;++g)n[g]=e.readInt32BE(4*g);for(;g<64;++g)n[g]=0|(((t=n[g-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[g-7]+h(n[g-15])+n[g-16];for(var y=0;y<64;++y){var b=v+f(u)+c(u,d,m)+a[y]+n[y]|0,_=p(r)+l(r,o,i)|0;v=m,m=d,d=u,u=s+b|0,s=i,i=o,o=r,r=b+_|0}this._a=r+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0,this._f=d+this._f|0,this._g=m+this._g|0,this._h=v+this._h|0},u.prototype._hash=function(){var e=i.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=u},function(e,t,n){var r=n(47),o=n(111),i=n(48).Buffer,a=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function u(){this.init(),this._w=s,o.call(this,128,112)}function c(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function p(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function f(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function v(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function g(e,t){return e>>>0<t>>>0?1:0}r(u,o),u.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},u.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,o=0|this._ch,i=0|this._dh,s=0|this._eh,u=0|this._fh,y=0|this._gh,b=0|this._hh,_=0|this._al,w=0|this._bl,x=0|this._cl,E=0|this._dl,S=0|this._el,C=0|this._fl,k=0|this._gl,O=0|this._hl,A=0;A<32;A+=2)t[A]=e.readInt32BE(4*A),t[A+1]=e.readInt32BE(4*A+4);for(;A<160;A+=2){var T=t[A-30],j=t[A-30+1],P=h(T,j),I=d(j,T),M=m(T=t[A-4],j=t[A-4+1]),N=v(j,T),R=t[A-14],D=t[A-14+1],L=t[A-32],U=t[A-32+1],q=I+D|0,F=P+R+g(q,I)|0;F=(F=F+M+g(q=q+N|0,N)|0)+L+g(q=q+U|0,U)|0,t[A]=F,t[A+1]=q}for(var B=0;B<160;B+=2){F=t[B],q=t[B+1];var z=l(n,r,o),V=l(_,w,x),H=p(n,_),W=p(_,n),J=f(s,S),K=f(S,s),Y=a[B],$=a[B+1],G=c(s,u,y),Z=c(S,C,k),X=O+K|0,Q=b+J+g(X,O)|0;Q=(Q=(Q=Q+G+g(X=X+Z|0,Z)|0)+Y+g(X=X+$|0,$)|0)+F+g(X=X+q|0,q)|0;var ee=W+V|0,te=H+z+g(ee,W)|0;b=y,O=k,y=u,k=C,u=s,C=S,s=i+Q+g(S=E+X|0,E)|0,i=o,E=x,o=r,x=w,r=n,w=_,n=Q+te+g(_=X+ee|0,X)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+x|0,this._dl=this._dl+E|0,this._el=this._el+S|0,this._fl=this._fl+C|0,this._gl=this._gl+k|0,this._hl=this._hl+O|0,this._ah=this._ah+n+g(this._al,_)|0,this._bh=this._bh+r+g(this._bl,w)|0,this._ch=this._ch+o+g(this._cl,x)|0,this._dh=this._dh+i+g(this._dl,E)|0,this._eh=this._eh+s+g(this._el,S)|0,this._fh=this._fh+u+g(this._fl,C)|0,this._gh=this._gh+y+g(this._gl,k)|0,this._hh=this._hh+b+g(this._hl,O)|0},u.prototype._hash=function(){var e=i.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=u},function(e,t,n){var r=n(46);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(102),o=n(34)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){"use strict";var r=n(49),o=n(133);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},function(e,t,n){var r=n(34)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){var r=n(46),o=n(132),i=n(34)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},function(e,t,n){var r,o,i,a=n(63),s=n(776),u=n(351),c=n(217),l=n(32),p=l.process,f=l.setImmediate,h=l.clearImmediate,d=l.MessageChannel,m=l.Dispatch,v=0,g={},y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},b=function(e){y.call(e.data)};f&&h||(f=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++v]=function(){s("function"==typeof e?e:Function(e),t)},r(v),v},h=function(e){delete g[e]},"process"==n(130)(p)?r=function(e){p.nextTick(a(y,e,1))}:m&&m.now?r=function(e){m.now(a(y,e,1))}:d?(i=(o=new d).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:f,clear:h}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){var r=n(46),o=n(43),i=n(245);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var r=n(32),o=n(22),i=n(49),a=n(50),s=n(34)("species");e.exports=function(e){var t="function"==typeof o[e]?o[e]:r[e];a&&t&&!t[s]&&i.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";var r=n(114);e.exports=new r({include:[n(416)]})},function(e,t,n){"use strict";var r=n(114);e.exports=new r({include:[n(246)],implicit:[n(788),n(789),n(790),n(791)]})},function(e,t,n){var r=n(184),o=n(108),i=n(174),a=n(52),s=n(109);e.exports=function(e,t,n,u){if(!a(e))return e;for(var c=-1,l=(t=o(t,e)).length,p=l-1,f=e;null!=f&&++c<l;){var h=s(t[c]),d=n;if(c!=p){var m=f[h];void 0===(d=u?u(m,h,f):void 0)&&(d=a(m)?m:i(t[c+1])?[]:{})}r(f,h,d),f=f[h]}return e}},function(e,t,n){var r=n(419);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t,n){var r=n(84),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},function(e,t,n){e.exports=n(809)},function(e,t,n){e.exports=n(812)},function(e,t,n){"use strict";e.exports={hasCachedChildNodes:1}},function(e,t,n){"use strict";var r=n(21);n(15);e.exports=function(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}},function(e,t,n){"use strict";e.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},function(e,t,n){"use strict";var r=n(38),o=null;e.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},function(e,t,n){"use strict";var r=n(21);var o=n(90),i=(n(15),function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&r("24"),this._callbacks=null,this._contexts=null;for(var o=0;o<e.length;o++)e[o].call(t[o],n);e.length=0,t.length=0}},e.prototype.checkpoint=function(){return this._callbacks?this._callbacks.length:0},e.prototype.rollback=function(e){this._callbacks&&this._contexts&&(this._callbacks.length=e,this._contexts.length=e)},e.prototype.reset=function(){this._callbacks=null,this._contexts=null},e.prototype.destructor=function(){this.reset()},e}());e.exports=o.addPoolingTo(i)},function(e,t,n){"use strict";e.exports={logTopLevelRenders:!1}},function(e,t,n){"use strict";var r=n(27);function o(e){var t=e.type,n=e.nodeName;return n&&"input"===n.toLowerCase()&&("checkbox"===t||"radio"===t)}function i(e){return e._wrapperState.valueTracker}var a={_getTrackerFromNode:function(e){return i(r.getInstanceFromNode(e))},track:function(e){if(!i(e)){var t=r.getNodeFromInstance(e),n=o(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,n),s=""+t[n];t.hasOwnProperty(n)||"function"!=typeof a.get||"function"!=typeof a.set||(Object.defineProperty(t,n,{enumerable:a.enumerable,configurable:!0,get:function(){return a.get.call(this)},set:function(e){s=""+e,a.set.call(this,e)}}),function(e,t){e._wrapperState.valueTracker=t}(e,{getValue:function(){return s},setValue:function(e){s=""+e},stopTracking:function(){!function(e){e._wrapperState.valueTracker=null}(e),delete t[n]}}))}},updateValueIfChanged:function(e){if(!e)return!1;var t=i(e);if(!t)return a.track(e),!0;var n,s,u=t.getValue(),c=((n=r.getNodeFromInstance(e))&&(s=o(n)?""+n.checked:n.value),s);return c!==u&&(t.setValue(c),!0)},stopTracking:function(e){var t=i(e);t&&t.stopTracking()}};e.exports=a},function(e,t,n){"use strict";var r={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!r[e.type]:"textarea"===t}},function(e,t,n){"use strict";var r={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){r.currentScrollLeft=e.x,r.currentScrollTop=e.y}};e.exports=r},function(e,t,n){"use strict";var r=n(38),o=n(188),i=n(187),a=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){3!==e.nodeType?i(e,o(t)):e.nodeValue=t})),e.exports=a},function(e,t,n){"use strict";e.exports=function(e){try{e.focus()}catch(e){}}},function(e,t,n){"use strict";var r={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};var o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}(t,e)]=r[e]})});var i={isUnitlessNumber:r,shorthandPropertyExpansions:{background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}}};e.exports=i},function(e,t,n){"use strict";var r=n(115),o=(n(27),n(53),n(843)),i=(n(23),new RegExp("^["+r.ATTRIBUTE_NAME_START_CHAR+"]["+r.ATTRIBUTE_NAME_CHAR+"]*$")),a={},s={};function u(e){return!!s.hasOwnProperty(e)||!a.hasOwnProperty(e)&&(i.test(e)?(s[e]=!0,!0):(a[e]=!0,!1))}function c(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&t<1||e.hasOverloadedBooleanValue&&!1===t}var l={createMarkupForID:function(e){return r.ID_ATTRIBUTE_NAME+"="+o(e)},setAttributeForID:function(e,t){e.setAttribute(r.ID_ATTRIBUTE_NAME,t)},createMarkupForRoot:function(){return r.ROOT_ATTRIBUTE_NAME+'=""'},setAttributeForRoot:function(e){e.setAttribute(r.ROOT_ATTRIBUTE_NAME,"")},createMarkupForProperty:function(e,t){var n=r.properties.hasOwnProperty(e)?r.properties[e]:null;if(n){if(c(n,t))return"";var i=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&!0===t?i+'=""':i+"="+o(t)}return r.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},createMarkupForCustomAttribute:function(e,t){return u(e)&&null!=t?e+"="+o(t):""},setValueForProperty:function(e,t,n){var o=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(o){var i=o.mutationMethod;if(i)i(e,n);else{if(c(o,n))return void this.deleteValueForProperty(e,t);if(o.mustUseProperty)e[o.propertyName]=n;else{var a=o.attributeName,s=o.attributeNamespace;s?e.setAttributeNS(s,a,""+n):o.hasBooleanValue||o.hasOverloadedBooleanValue&&!0===n?e.setAttribute(a,""):e.setAttribute(a,""+n)}}}else if(r.isCustomAttribute(t))return void l.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){u(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForAttribute:function(e,t){e.removeAttribute(t)},deleteValueForProperty:function(e,t){var n=r.properties.hasOwnProperty(t)?r.properties[t]:null;if(n){var o=n.mutationMethod;if(o)o(e,void 0);else if(n.mustUseProperty){var i=n.propertyName;n.hasBooleanValue?e[i]=!1:e[i]=""}else e.removeAttribute(n.attributeName)}else r.isCustomAttribute(t)&&e.removeAttribute(t)}};e.exports=l},function(e,t,n){"use strict";var r=n(25),o=n(256),i=n(27),a=n(58),s=(n(23),!1);function u(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=o.getValue(e);null!=t&&c(this,Boolean(e.multiple),t)}}function c(e,t,n){var r,o,a=i.getNodeFromInstance(e).options;if(t){for(r={},o=0;o<n.length;o++)r[""+n[o]]=!0;for(o=0;o<a.length;o++){var s=r.hasOwnProperty(a[o].value);a[o].selected!==s&&(a[o].selected=s)}}else{for(r=""+n,o=0;o<a.length;o++)if(a[o].value===r)return void(a[o].selected=!0);a.length&&(a[0].selected=!0)}}var l={getHostProps:function(e,t){return r({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,t){var n=o.getValue(t);e._wrapperState={pendingUpdate:!1,initialValue:null!=n?n:t.defaultValue,listeners:null,onChange:p.bind(e),wasMultiple:Boolean(t.multiple)},void 0===t.value||void 0===t.defaultValue||s||(s=!0)},getSelectValueContext:function(e){return e._wrapperState.initialValue},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=o.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,c(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?c(e,Boolean(t.multiple),t.defaultValue):c(e,Boolean(t.multiple),t.multiple?[]:""))}};function p(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return this._rootNodeID&&(this._wrapperState.pendingUpdate=!0),a.asap(u,this),n}e.exports=l},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(852),a=n(438),s=n(439),u=(n(853),n(15),n(23),function(e){this.construct(e)});function c(e,t){var n;if(null===e||!1===e)n=a.create(c);else if("object"==typeof e){var o=e,i=o.type;if("function"!=typeof i&&"string"!=typeof i){var l="";0,l+=function(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}(o._owner),r("130",null==i?i:typeof i,l)}"string"==typeof o.type?n=s.createInternalComponent(o):!function(e){return"function"==typeof e&&void 0!==e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}(o.type)?n=new u(o):(n=new o.type(o)).getHostNode||(n.getHostNode=n.getNativeNode)}else"string"==typeof e||"number"==typeof e?n=s.createInstanceForText(e):r("131",typeof e);return n._mountIndex=0,n._mountImage=null,n}o(u.prototype,i,{_instantiateReactComponent:c}),e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(104),i=(n(15),{HOST:0,COMPOSITE:1,EMPTY:2,getType:function(e){return null===e||!1===e?i.EMPTY:o.isValidElement(e)?"function"==typeof e.type?i.COMPOSITE:i.HOST:void r("26",e)}});e.exports=i},function(e,t,n){"use strict";var r,o={injectEmptyComponentFactory:function(e){r=e}},i={create:function(e){return r(e)}};i.injection=o,e.exports=i},function(e,t,n){"use strict";var r=n(21),o=(n(15),null),i=null;var a={createInternalComponent:function(e){return o||r("111",e.type),new o(e)},createInstanceForText:function(e){return new i(e)},isTextComponent:function(e){return e instanceof i},injection:{injectGenericComponentClass:function(e){o=e},injectTextComponentClass:function(e){i=e}}};e.exports=a},function(e,t,n){"use strict";var r=n(21),o=(n(65),n(854)),i=n(855),a=(n(15),n(260)),s=(n(23),"."),u=":";function c(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,l,p){var f,h=typeof t;if("undefined"!==h&&"boolean"!==h||(t=null),null===t||"string"===h||"number"===h||"object"===h&&t.$$typeof===o)return l(p,t,""===n?s+c(t,0):n),1;var d=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)d+=e(f=t[v],m+c(f,v),l,p);else{var g=i(t);if(g){var y,b=g.call(t);if(g!==t.entries)for(var _=0;!(y=b.next()).done;)d+=e(f=y.value,m+c(f,_++),l,p);else for(;!(y=b.next()).done;){var w=y.value;w&&(d+=e(f=w[1],m+a.escape(w[0])+u+c(f,0),l,p))}}else if("object"===h){var x=String(t);r("31","[object Object]"===x?"object with keys {"+Object.keys(t).join(", ")+"}":x,"")}}return d}(e,"",t,n)}},function(e,t,n){"use strict";var r,o,i,a,s,u,c,l=n(136),p=n(65);n(15),n(23);function f(e){var t=Function.prototype.toString,n=Object.prototype.hasOwnProperty,r=RegExp("^"+t.call(n).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");try{var o=t.call(e);return r.test(o)}catch(e){return!1}}if("function"==typeof Array.from&&"function"==typeof Map&&f(Map)&&null!=Map.prototype&&"function"==typeof Map.prototype.keys&&f(Map.prototype.keys)&&"function"==typeof Set&&f(Set)&&null!=Set.prototype&&"function"==typeof Set.prototype.keys&&f(Set.prototype.keys)){var h=new Map,d=new Set;r=function(e,t){h.set(e,t)},o=function(e){return h.get(e)},i=function(e){h.delete(e)},a=function(){return Array.from(h.keys())},s=function(e){d.add(e)},u=function(e){d.delete(e)},c=function(){return Array.from(d.keys())}}else{var m={},v={},g=function(e){return"."+e},y=function(e){return parseInt(e.substr(1),10)};r=function(e,t){var n=g(e);m[n]=t},o=function(e){var t=g(e);return m[t]},i=function(e){var t=g(e);delete m[t]},a=function(){return Object.keys(m).map(y)},s=function(e){var t=g(e);v[t]=!0},u=function(e){var t=g(e);delete v[t]},c=function(){return Object.keys(v).map(y)}}var b=[];function _(e){var t=o(e);if(t){var n=t.childIDs;i(e),n.forEach(_)}}function w(e,t,n){return"\n    in "+(e||"Unknown")+(t?" (at "+t.fileName.replace(/^.*[\\\/]/,"")+":"+t.lineNumber+")":n?" (created by "+n+")":"")}function x(e){return null==e?"#empty":"string"==typeof e||"number"==typeof e?"#text":"string"==typeof e.type?e.type:e.type.displayName||e.type.name||"Unknown"}function E(e){var t,n=S.getDisplayName(e),r=S.getElement(e),o=S.getOwnerID(e);return o&&(t=S.getDisplayName(o)),w(n,r&&r._source,t)}var S={onSetChildren:function(e,t){var n=o(e);n||l("144"),n.childIDs=t;for(var r=0;r<t.length;r++){var i=t[r],a=o(i);a||l("140"),null==a.childIDs&&"object"==typeof a.element&&null!=a.element&&l("141"),a.isMounted||l("71"),null==a.parentID&&(a.parentID=e),a.parentID!==e&&l("142",i,a.parentID,e)}},onBeforeMountComponent:function(e,t,n){r(e,{element:t,parentID:n,text:null,childIDs:[],isMounted:!1,updateCount:0})},onBeforeUpdateComponent:function(e,t){var n=o(e);n&&n.isMounted&&(n.element=t)},onMountComponent:function(e){var t=o(e);t||l("144"),t.isMounted=!0,0===t.parentID&&s(e)},onUpdateComponent:function(e){var t=o(e);t&&t.isMounted&&t.updateCount++},onUnmountComponent:function(e){var t=o(e);t&&(t.isMounted=!1,0===t.parentID&&u(e));b.push(e)},purgeUnmountedComponents:function(){if(!S._preventPurging){for(var e=0;e<b.length;e++){_(b[e])}b.length=0}},isMounted:function(e){var t=o(e);return!!t&&t.isMounted},getCurrentStackAddendum:function(e){var t="";if(e){var n=x(e),r=e._owner;t+=w(n,e._source,r&&r.getName())}var o=p.current,i=o&&o._debugID;return t+=S.getStackAddendumByID(i)},getStackAddendumByID:function(e){for(var t="";e;)t+=E(e),e=S.getParentID(e);return t},getChildIDs:function(e){var t=o(e);return t?t.childIDs:[]},getDisplayName:function(e){var t=S.getElement(e);return t?x(t):null},getElement:function(e){var t=o(e);return t?t.element:null},getOwnerID:function(e){var t=S.getElement(e);return t&&t._owner?t._owner._debugID:null},getParentID:function(e){var t=o(e);return t?t.parentID:null},getSource:function(e){var t=o(e),n=t?t.element:null;return null!=n?n._source:null},getText:function(e){var t=S.getElement(e);return"string"==typeof t?t:"number"==typeof t?""+t:null},getUpdateCount:function(e){var t=o(e);return t?t.updateCount:0},getRootIDs:c,getRegisteredIDs:a,pushNonStandardWarningStack:function(e,t){if("function"==typeof console.reactStack){var n=[],r=p.current,o=r&&r._debugID;try{for(e&&n.push({name:o?S.getDisplayName(o):null,fileName:t?t.fileName:null,lineNumber:t?t.lineNumber:null});o;){var i=S.getElement(o),a=S.getParentID(o),s=S.getOwnerID(o),u=s?S.getDisplayName(s):null,c=i&&i._source;n.push({name:u,fileName:c?c.fileName:null,lineNumber:c?c.lineNumber:null}),o=a}}catch(e){}console.reactStack(n)}},popNonStandardWarningStack:function(){"function"==typeof console.reactStackEnd&&console.reactStackEnd()}};e.exports=S},function(e,t,n){"use strict";var r=n(57),o={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!0),{remove:function(){e.removeEventListener(t,n,!0)}}):{remove:r}},registerDefault:function(){}};e.exports=o},function(e,t,n){"use strict";var r=n(867),o=n(869),i=n(432),a=n(444);var s={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=a();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t,n=a(),r=e.focusedElem,u=e.selectionRange;n!==r&&(t=r,o(document.documentElement,t))&&(s.hasSelectionCapabilities(r)&&s.setSelection(r,u),i(r))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=r.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,o=t.end;if(void 0===o&&(o=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(o,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",o-n),i.select()}else r.setOffsets(e,t)}};e.exports=s},function(e,t,n){"use strict";e.exports=function(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}},function(e,t,n){"use strict";var r=n(21),o=n(117),i=n(115),a=n(104),s=n(189),u=(n(65),n(27)),c=n(884),l=n(885),p=n(427),f=n(143),h=(n(53),n(886)),d=n(116),m=n(261),v=n(58),g=n(165),y=n(436),b=(n(15),n(187)),_=n(259),w=(n(23),i.ID_ATTRIBUTE_NAME),x=i.ROOT_ATTRIBUTE_NAME,E=1,S=9,C=11,k={};function O(e){return e?e.nodeType===S?e.documentElement:e.firstChild:null}function A(e,t,n,r,o){var i;if(p.logTopLevelRenders){var a=e._currentElement.props.child.type;i="React mount: "+("string"==typeof a?a:a.displayName||a.name),console.time(i)}var s=d.mountComponent(e,n,null,c(e,t),o,0);i&&console.timeEnd(i),e._renderedComponent._topLevelWrapper=e,D._mountImageIntoNode(s,t,e,r,n)}function T(e,t,n,r){var o=v.ReactReconcileTransaction.getPooled(!n&&l.useCreateElement);o.perform(A,null,e,t,o,n,r),v.ReactReconcileTransaction.release(o)}function j(e,t,n){for(0,d.unmountComponent(e,n),t.nodeType===S&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function P(e){var t=O(e);if(t){var n=u.getInstanceFromNode(t);return!(!n||!n._hostParent)}}function I(e){return!(!e||e.nodeType!==E&&e.nodeType!==S&&e.nodeType!==C)}function M(e){var t=function(e){var t=O(e),n=t&&u.getInstanceFromNode(t);return n&&!n._hostParent?n:null}(e);return t?t._hostContainerInfo._topLevelWrapper:null}var N=1,R=function(){this.rootID=N++};R.prototype.isReactComponent={},R.prototype.render=function(){return this.props.child},R.isReactTopLevelWrapper=!0;var D={TopLevelWrapper:R,_instancesByReactRootID:k,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r,o){return D.scrollMonitor(r,function(){m.enqueueElementInternal(e,t,n),o&&m.enqueueCallbackInternal(e,o)}),e},_renderNewRootComponent:function(e,t,n,o){I(t)||r("37"),s.ensureScrollValueMonitoring();var i=y(e,!1);v.batchedUpdates(T,i,t,n,o);var a=i._instance.rootID;return k[a]=i,i},renderSubtreeIntoContainer:function(e,t,n,o){return null!=e&&f.has(e)||r("38"),D._renderSubtreeIntoContainer(e,t,n,o)},_renderSubtreeIntoContainer:function(e,t,n,o){m.validateCallback(o,"ReactDOM.render"),a.isValidElement(t)||r("39","string"==typeof t?" Instead of passing a string like 'div', pass React.createElement('div') or <div />.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or <Foo />.":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var i,s=a.createElement(R,{child:t});if(e){var u=f.get(e);i=u._processChildContext(u._context)}else i=g;var c=M(n);if(c){var l=c._currentElement.props.child;if(_(l,t)){var p=c._renderedComponent.getPublicInstance(),h=o&&function(){o.call(p)};return D._updateRootComponent(c,s,i,n,h),p}D.unmountComponentAtNode(n)}var d,v=O(n),y=v&&!(!(d=v).getAttribute||!d.getAttribute(w)),b=P(n),x=y&&!c&&!b,E=D._renderNewRootComponent(s,n,x,i)._renderedComponent.getPublicInstance();return o&&o.call(E),E},render:function(e,t,n){return D._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){I(e)||r("40");var t=M(e);if(!t){P(e),1===e.nodeType&&e.hasAttribute(x);return!1}return delete k[t._instance.rootID],v.batchedUpdates(j,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(I(t)||r("41"),i){var s=O(t);if(h.canReuseMarkup(e,s))return void u.precacheNode(n,s);var c=s.getAttribute(h.CHECKSUM_ATTR_NAME);s.removeAttribute(h.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(h.CHECKSUM_ATTR_NAME,c);var p=e,f=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r<n;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}(p,l),d=" (client) "+p.substring(f-20,f+20)+"\n (server) "+l.substring(f-20,f+20);t.nodeType===S&&r("42",d)}if(t.nodeType===S&&r("43"),a.useCreateElement){for(;t.lastChild;)t.removeChild(t.lastChild);o.insertTreeBefore(t,e,null)}else b(t,e),u.precacheNode(n,t.firstChild)}};e.exports=D},function(e,t,n){"use strict";var r=n(437);e.exports=function(e){for(var t;(t=e._renderedNodeType)===r.COMPOSITE;)e=e._renderedComponent;return t===r.HOST?e._renderedComponent:t===r.EMPTY?null:void 0}},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(10),i=(r=o)&&r.__esModule?r:{default:r};t.default=i.default.shape({subscribe:i.default.func.isRequired,dispatch:i.default.func.isRequired,getState:i.default.func.isRequired})},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(e);try{throw new Error(e)}catch(e){}}},function(e,t,n){var r=n(228),o=n(898),i=n(184),a=n(899),s=n(900),u=n(903),c=n(904),l=n(905),p=n(906),f=n(377),h=n(452),d=n(176),m=n(907),v=n(908),g=n(913),y=n(37),b=n(232),_=n(915),w=n(52),x=n(917),E=n(85),S=1,C=2,k=4,O="[object Arguments]",A="[object Function]",T="[object GeneratorFunction]",j="[object Object]",P={};P[O]=P["[object Array]"]=P["[object ArrayBuffer]"]=P["[object DataView]"]=P["[object Boolean]"]=P["[object Date]"]=P["[object Float32Array]"]=P["[object Float64Array]"]=P["[object Int8Array]"]=P["[object Int16Array]"]=P["[object Int32Array]"]=P["[object Map]"]=P["[object Number]"]=P[j]=P["[object RegExp]"]=P["[object Set]"]=P["[object String]"]=P["[object Symbol]"]=P["[object Uint8Array]"]=P["[object Uint8ClampedArray]"]=P["[object Uint16Array]"]=P["[object Uint32Array]"]=!0,P["[object Error]"]=P[A]=P["[object WeakMap]"]=!1,e.exports=function e(t,n,I,M,N,R){var D,L=n&S,U=n&C,q=n&k;if(I&&(D=N?I(t,M,N,R):I(t)),void 0!==D)return D;if(!w(t))return t;var F=y(t);if(F){if(D=m(t),!L)return c(t,D)}else{var B=d(t),z=B==A||B==T;if(b(t))return u(t,L);if(B==j||B==O||z&&!N){if(D=U||z?{}:g(t),!L)return U?p(t,s(D,t)):l(t,a(D,t))}else{if(!P[B])return N?t:{};D=v(t,B,L)}}R||(R=new r);var V=R.get(t);if(V)return V;R.set(t,D),x(t)?t.forEach(function(r){D.add(e(r,n,I,r,t,R))}):_(t)&&t.forEach(function(r,o){D.set(o,e(r,n,I,o,t,R))});var H=q?U?h:f:U?keysIn:E,W=F?void 0:H(t);return o(W||t,function(r,o){W&&(r=t[o=r]),i(D,o,e(r,n,I,o,t,R))}),D}},function(e,t,n){var r=n(380),o=n(901),i=n(107);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t,n){var r=n(229),o=n(265),i=n(230),a=n(379),s=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,i(e)),e=o(e);return t}:a;e.exports=s},function(e,t,n){var r=n(378),o=n(451),i=n(450);e.exports=function(e){return r(e,i,o)}},function(e,t,n){var r=n(923),o=n(454),i=n(455);e.exports=function(e){return i(o(e,void 0,r),e+"")}},function(e,t,n){var r=n(926),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var i=arguments,a=-1,s=o(i.length-t,0),u=Array(s);++a<s;)u[a]=i[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=i[a];return c[t]=n(u),r(e,this,c)}}},function(e,t,n){var r=n(927),o=n(929)(r);e.exports=o},function(e,t,n){var r={strict:!0},o=n(940),i=function(e,t){return o(e,t,r)},a=n(267);t.JsonPatchError=a.PatchError,t.deepClone=a._deepClone;var s={add:function(e,t,n){return e[t]=this.value,{newDocument:n}},remove:function(e,t,n){var r=e[t];return delete e[t],{newDocument:n,removed:r}},replace:function(e,t,n){var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:function(e,t,n){var r=c(n,this.path);r&&(r=a._deepClone(r));var o=l(n,{op:"remove",path:this.from}).removed;return l(n,{op:"add",path:this.path,value:o}),{newDocument:n,removed:r}},copy:function(e,t,n){var r=c(n,this.from);return l(n,{op:"add",path:this.path,value:a._deepClone(r)}),{newDocument:n}},test:function(e,t,n){return{newDocument:n,test:i(e[t],this.value)}},_get:function(e,t,n){return this.value=e[t],{newDocument:n}}},u={add:function(e,t,n){return a.isInteger(t)?e.splice(t,0,this.value):e[t]=this.value,{newDocument:n,index:t}},remove:function(e,t,n){return{newDocument:n,removed:e.splice(t,1)[0]}},replace:function(e,t,n){var r=e[t];return e[t]=this.value,{newDocument:n,removed:r}},move:s.move,copy:s.copy,test:s.test,_get:s._get};function c(e,t){if(""==t)return e;var n={op:"_get",path:t};return l(e,n),n.value}function l(e,n,r,o,l,p){if(void 0===r&&(r=!1),void 0===o&&(o=!0),void 0===l&&(l=!0),void 0===p&&(p=0),r&&("function"==typeof r?r(n,0,e,n.path):f(n,0)),""===n.path){var h={newDocument:e};if("add"===n.op)return h.newDocument=n.value,h;if("replace"===n.op)return h.newDocument=n.value,h.removed=e,h;if("move"===n.op||"copy"===n.op)return h.newDocument=c(e,n.from),"move"===n.op&&(h.removed=e),h;if("test"===n.op){if(h.test=i(e,n.value),!1===h.test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h.newDocument=e,h}if("remove"===n.op)return h.removed=e,h.newDocument=null,h;if("_get"===n.op)return n.value=e,h;if(r)throw new t.JsonPatchError("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",p,n,e);return h}o||(e=a._deepClone(e));var d=(n.path||"").split("/"),m=e,v=1,g=d.length,y=void 0,b=void 0,_=void 0;for(_="function"==typeof r?r:f;;){if(b=d[v],l&&"__proto__"==b)throw new TypeError("JSON-Patch: modifying `__proto__` prop is banned for security reasons, if this was on purpose, please set `banPrototypeModifications` flag false and pass it to this function. More info in fast-json-patch README");if(r&&void 0===y&&(void 0===m[b]?y=d.slice(0,v).join("/"):v==g-1&&(y=n.path),void 0!==y&&_(n,0,e,y)),v++,Array.isArray(m)){if("-"===b)b=m.length;else{if(r&&!a.isInteger(b))throw new t.JsonPatchError("Expected an unsigned base-10 integer value, making the new referenced value the array element with the zero-based index","OPERATION_PATH_ILLEGAL_ARRAY_INDEX",p,n,e);a.isInteger(b)&&(b=~~b)}if(v>=g){if(r&&"add"===n.op&&b>m.length)throw new t.JsonPatchError("The specified index MUST NOT be greater than the number of elements in the array","OPERATION_VALUE_OUT_OF_BOUNDS",p,n,e);if(!1===(h=u[n.op].call(n,m,b,e)).test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h}}else if(b&&-1!=b.indexOf("~")&&(b=a.unescapePathComponent(b)),v>=g){if(!1===(h=s[n.op].call(n,m,b,e)).test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",p,n,e);return h}m=m[b]}}function p(e,n,r,o,i){if(void 0===o&&(o=!0),void 0===i&&(i=!0),r&&!Array.isArray(n))throw new t.JsonPatchError("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");o||(e=a._deepClone(e));for(var s=new Array(n.length),u=0,c=n.length;u<c;u++)s[u]=l(e,n[u],r,!0,i,u),e=s[u].newDocument;return s.newDocument=e,s}function f(e,n,r,o){if("object"!=typeof e||null===e||Array.isArray(e))throw new t.JsonPatchError("Operation is not an object","OPERATION_NOT_AN_OBJECT",n,e,r);if(!s[e.op])throw new t.JsonPatchError("Operation `op` property is not one of operations defined in RFC-6902","OPERATION_OP_INVALID",n,e,r);if("string"!=typeof e.path)throw new t.JsonPatchError("Operation `path` property is not a string","OPERATION_PATH_INVALID",n,e,r);if(0!==e.path.indexOf("/")&&e.path.length>0)throw new t.JsonPatchError('Operation `path` property must start with "/"',"OPERATION_PATH_INVALID",n,e,r);if(("move"===e.op||"copy"===e.op)&&"string"!=typeof e.from)throw new t.JsonPatchError("Operation `from` property is not present (applicable in `move` and `copy` operations)","OPERATION_FROM_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&void 0===e.value)throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_REQUIRED",n,e,r);if(("add"===e.op||"replace"===e.op||"test"===e.op)&&a.hasUndefined(e.value))throw new t.JsonPatchError("Operation `value` property is not present (applicable in `add`, `replace` and `test` operations)","OPERATION_VALUE_CANNOT_CONTAIN_UNDEFINED",n,e,r);if(r)if("add"==e.op){var i=e.path.split("/").length,u=o.split("/").length;if(i!==u+1&&i!==u)throw new t.JsonPatchError("Cannot perform an `add` operation at the desired path","OPERATION_PATH_CANNOT_ADD",n,e,r)}else if("replace"===e.op||"remove"===e.op||"_get"===e.op){if(e.path!==o)throw new t.JsonPatchError("Cannot perform the operation at a path that does not exist","OPERATION_PATH_UNRESOLVABLE",n,e,r)}else if("move"===e.op||"copy"===e.op){var c=h([{op:"_get",path:e.from,value:void 0}],r);if(c&&"OPERATION_PATH_UNRESOLVABLE"===c.name)throw new t.JsonPatchError("Cannot perform the operation from a path that does not exist","OPERATION_FROM_UNRESOLVABLE",n,e,r)}}function h(e,n,r){try{if(!Array.isArray(e))throw new t.JsonPatchError("Patch sequence must be an array","SEQUENCE_NOT_AN_ARRAY");if(n)p(a._deepClone(n),a._deepClone(e),r||!0);else{r=r||f;for(var o=0;o<e.length;o++)r(e[o],o,n,void 0)}}catch(e){if(e instanceof t.JsonPatchError)return e;throw e}}t.getValueByPointer=c,t.applyOperation=l,t.applyPatch=p,t.applyReducer=function(e,n,r){var o=l(e,n);if(!1===o.test)throw new t.JsonPatchError("Test operation failed","TEST_OPERATION_FAILED",r,n,e);return o.newDocument},t.validator=f,t.validate=h},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty,o=Array.isArray,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var n=t&&t.plainObjects?Object.create(null):{},r=0;r<e.length;++r)void 0!==e[r]&&(n[r]=e[r]);return n};e.exports={arrayToObject:a,assign:function(e,t){return Object.keys(t).reduce(function(e,n){return e[n]=t[n],e},e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],n=[],r=0;r<t.length;++r)for(var i=t[r],a=i.obj[i.prop],s=Object.keys(a),u=0;u<s.length;++u){var c=s[u],l=a[c];"object"==typeof l&&null!==l&&-1===n.indexOf(l)&&(t.push({obj:a,prop:c}),n.push(l))}return function(e){for(;e.length>1;){var t=e.pop(),n=t.obj[t.prop];if(o(n)){for(var r=[],i=0;i<n.length;++i)void 0!==n[i]&&r.push(n[i]);t.obj[t.prop]=r}}}(t),e},decode:function(e,t,n){var r=e.replace(/\+/g," ");if("iso-8859-1"===n)return r.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(r)}catch(e){return r}},encode:function(e,t,n){if(0===e.length)return e;var r="string"==typeof e?e:String(e);if("iso-8859-1"===n)return escape(r).replace(/%u[0-9a-f]{4}/gi,function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"});for(var o="",a=0;a<r.length;++a){var s=r.charCodeAt(a);45===s||46===s||95===s||126===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?o+=r.charAt(a):s<128?o+=i[s]:s<2048?o+=i[192|s>>6]+i[128|63&s]:s<55296||s>=57344?o+=i[224|s>>12]+i[128|s>>6&63]+i[128|63&s]:(a+=1,s=65536+((1023&s)<<10|1023&r.charCodeAt(a)),o+=i[240|s>>18]+i[128|s>>12&63]+i[128|s>>6&63]+i[128|63&s])}return o},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,n,i){if(!n)return t;if("object"!=typeof n){if(o(t))t.push(n);else{if(!t||"object"!=typeof t)return[t,n];(i&&(i.plainObjects||i.allowPrototypes)||!r.call(Object.prototype,n))&&(t[n]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(n);var s=t;return o(t)&&!o(n)&&(s=a(t,i)),o(t)&&o(n)?(n.forEach(function(n,o){if(r.call(t,o)){var a=t[o];a&&"object"==typeof a&&n&&"object"==typeof n?t[o]=e(a,n,i):t.push(n)}else t[o]=n}),t):Object.keys(n).reduce(function(t,o){var a=n[o];return r.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t},s)}}},function(e,t,n){"use strict";var r=String.prototype.replace,o=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return r.call(e,o,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(e,t,n){"use strict";var r=n(32),o=n(30),i=n(135),a=n(82),s=n(77),u=n(182),c=n(112),l=n(181),p=n(43),f=n(134),h=n(49).f,d=n(268)(0),m=n(50);e.exports=function(e,t,n,v,g,y){var b=r[e],_=b,w=g?"set":"add",x=_&&_.prototype,E={};return m&&"function"==typeof _&&(y||x.forEach&&!a(function(){(new _).entries().next()}))?(_=t(function(t,n){l(t,_,e,"_c"),t._c=new b,null!=n&&c(n,g,t[w],t)}),d("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in x&&(!y||"clear"!=e)&&s(_.prototype,e,function(n,r){if(l(this,_,e),!t&&y&&!p(n))return"get"==e&&void 0;var o=this._c[e](0===n?0:n,r);return t?this:o})}),y||h(_.prototype,"size",{get:function(){return this._c.size}})):(_=v.getConstructor(t,e,g,w),u(_.prototype,n),i.NEED=!0),f(_,e),E[e]=_,o(o.G+o.W+o.F,E),y||v.setStrong(_,e,g),_}},function(e,t,n){"use strict";var r=n(30);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){"use strict";var r=n(30),o=n(132),i=n(63),a=n(112);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,s,u=arguments[1];return o(this),(t=void 0!==u)&&o(u),null==e?new this:(n=[],t?(r=0,s=i(u,arguments[2],2),a(e,!1,function(e){n.push(s(e,r++))})):a(e,!1,n.push,n),new this(n))}})}},function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwcHgiICBoZWlnaHQ9IjIwMHB4IiAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiIGNsYXNzPSJsZHMtcm9sbGluZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IG5vbmU7IGJhY2tncm91bmQtcG9zaXRpb246IGluaXRpYWwgaW5pdGlhbDsgYmFja2dyb3VuZC1yZXBlYXQ6IGluaXRpYWwgaW5pdGlhbDsiPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIG5nLWF0dHItc3Ryb2tlPSJ7e2NvbmZpZy5jb2xvcn19IiBuZy1hdHRyLXN0cm9rZS13aWR0aD0ie3tjb25maWcud2lkdGh9fSIgbmctYXR0ci1yPSJ7e2NvbmZpZy5yYWRpdXN9fSIgbmctYXR0ci1zdHJva2UtZGFzaGFycmF5PSJ7e2NvbmZpZy5kYXNoYXJyYXl9fSIgc3Ryb2tlPSIjNTU1NTU1IiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgY2FsY01vZGU9ImxpbmVhciIgdmFsdWVzPSIwIDUwIDUwOzM2MCA1MCA1MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxcyIgYmVnaW49IjBzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSI+PC9hbmltYXRlVHJhbnNmb3JtPjwvY2lyY2xlPjwvc3ZnPgo="},function(e,t,n){"use strict";e.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",AMP:"&",amp:"&",And:"⩓",and:"∧",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",ap:"≈",apacir:"⩯",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",Barwed:"⌆",barwed:"⌅",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",Because:"∵",because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxDL:"╗",boxDl:"╖",boxdL:"╕",boxdl:"┐",boxDR:"╔",boxDr:"╓",boxdR:"╒",boxdr:"┌",boxH:"═",boxh:"─",boxHD:"╦",boxHd:"╤",boxhD:"╥",boxhd:"┬",boxHU:"╩",boxHu:"╧",boxhU:"╨",boxhu:"┴",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxUL:"╝",boxUl:"╜",boxuL:"╛",boxul:"┘",boxUR:"╚",boxUr:"╙",boxuR:"╘",boxur:"└",boxV:"║",boxv:"│",boxVH:"╬",boxVh:"╫",boxvH:"╪",boxvh:"┼",boxVL:"╣",boxVl:"╢",boxvL:"╡",boxvl:"┤",boxVR:"╠",boxVr:"╟",boxvR:"╞",boxvr:"├",bprime:"‵",Breve:"˘",breve:"˘",brvbar:"¦",Bscr:"ℬ",bscr:"𝒷",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",Cap:"⋒",cap:"∩",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",CenterDot:"·",centerdot:"·",Cfr:"ℭ",cfr:"𝔠",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",Colon:"∷",colon:":",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",Conint:"∯",conint:"∮",ContourIntegral:"∮",Copf:"ℂ",copf:"𝕔",coprod:"∐",Coproduct:"∐",COPY:"©",copy:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",Cross:"⨯",cross:"✗",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",Cup:"⋓",cup:"∪",cupbrcap:"⩈",CupCap:"≍",cupcap:"⩆",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",Dagger:"‡",dagger:"†",daleth:"ℸ",Darr:"↡",dArr:"⇓",darr:"↓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",DD:"ⅅ",dd:"ⅆ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",Diamond:"⋄",diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrow:"↓",Downarrow:"⇓",downarrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",ecir:"≖",Ecirc:"Ê",ecirc:"ê",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",eDot:"≑",edot:"ė",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",Escr:"ℰ",escr:"ℯ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",ExponentialE:"ⅇ",exponentiale:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",ForAll:"∀",forall:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",Fscr:"ℱ",fscr:"𝒻",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",gE:"≧",ge:"≥",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",Gg:"⋙",gg:"≫",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gnE:"≩",gne:"⪈",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",GT:">",Gt:"≫",gt:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",hArr:"⇔",harr:"↔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",Hfr:"ℌ",hfr:"𝔥",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",Hopf:"ℍ",hopf:"𝕙",horbar:"―",HorizontalLine:"─",Hscr:"ℋ",hscr:"𝒽",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",Ifr:"ℑ",ifr:"𝔦",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Im:"ℑ",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",Int:"∬",int:"∫",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",Iscr:"ℐ",iscr:"𝒾",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",Lang:"⟪",lang:"⟨",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",Larr:"↞",lArr:"⇐",larr:"←",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",lAtail:"⤛",latail:"⤙",late:"⪭",lates:"⪭︀",lBarr:"⤎",lbarr:"⤌",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",lE:"≦",le:"≤",LeftAngleBracket:"⟨",LeftArrow:"←",Leftarrow:"⇐",leftarrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",Ll:"⋘",ll:"≪",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lnE:"≨",lne:"⪇",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftarrow:"⟵",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longleftrightarrow:"⟷",longmapsto:"⟼",LongRightArrow:"⟶",Longrightarrow:"⟹",longrightarrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",Lscr:"ℒ",lscr:"𝓁",Lsh:"↰",lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",LT:"<",Lt:"≪",lt:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",Mscr:"ℳ",mscr:"𝓂",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",ne:"≠",nearhk:"⤤",neArr:"⇗",nearr:"↗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},function(e,t,n){"use strict";var r=n(465),o=n(39).unescapeMd;e.exports=function(e,t){var n,i,a,s=t,u=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<u;){if(10===(n=e.src.charCodeAt(t)))return!1;if(62===n)return a=r(o(e.src.slice(s+1,t))),!!e.parser.validateLink(a)&&(e.pos=t+1,e.linkContent=a,!0);92===n&&t+1<u?t+=2:t++}return!1}for(i=0;t<u&&32!==(n=e.src.charCodeAt(t))&&!(n<32||127===n);)if(92===n&&t+1<u)t+=2;else{if(40===n&&++i>1)break;if(41===n&&--i<0)break;t++}return s!==t&&(a=o(e.src.slice(s,t)),!!e.parser.validateLink(a)&&(e.linkContent=a,e.pos=t,!0))}},function(e,t,n){"use strict";var r=n(39).replaceEntities;e.exports=function(e){var t=r(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}},function(e,t,n){"use strict";var r=n(39).unescapeMd;e.exports=function(e,t){var n,o=t,i=e.posMax,a=e.src.charCodeAt(t);if(34!==a&&39!==a&&40!==a)return!1;for(t++,40===a&&(a=41);t<i;){if((n=e.src.charCodeAt(t))===a)return e.pos=t+1,e.linkContent=r(e.src.slice(o+1,t)),!0;92===n&&t+1<i?t+=2:t++}return!1}},function(e,t,n){"use strict";e.exports=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.a=n}).call(this,n(36))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.combineReducers=void 0;var r,o=n(593),i=(r=o)&&r.__esModule?r:{default:r};t.combineReducers=i.default},function(e,t,n){"use strict";var r=/^(%20|\s)*(javascript|data)/im,o=/[^\x20-\x7E]/gim,i=/^([^:]+):/gm,a=[".","/"];e.exports={sanitizeUrl:function(e){if(!e)return"about:blank";var t,n,s=e.replace(o,"").trim();return function(e){return a.indexOf(e[0])>-1}(s)?s:(n=s.match(i))?(t=n[0],r.test(t)?"about:blank":s):"about:blank"}}},function(e,t,n){var r=n(602),o=n(610)(function(e,t,n){return t=t.toLowerCase(),e+(n?r(t):t)});e.exports=o},function(e,t,n){var r=n(375),o=n(172),i=n(679),a=n(37),s=n(389);e.exports=function(e,t,n){var u=a(e)?r:i;return n&&s(e,t,n)&&(t=void 0),u(e,o(t,3))}},function(e,t,n){(function(t){var r=n(684),o=n(685).Stream,i="    ";function a(e,t,n){n=n||0;var o,i,s=(o=t,new Array(n||0).join(o||"")),u=e;if("object"==typeof e&&((u=e[i=Object.keys(e)[0]])&&u._elem))return u._elem.name=i,u._elem.icount=n,u._elem.indent=t,u._elem.indents=s,u._elem.interrupt=u,u._elem;var c,l=[],p=[];function f(e){Object.keys(e).forEach(function(t){l.push(function(e,t){return e+'="'+r(t)+'"'}(t,e[t]))})}switch(typeof u){case"object":if(null===u)break;u._attr&&f(u._attr),u._cdata&&p.push(("<![CDATA["+u._cdata).replace(/\]\]>/g,"]]]]><![CDATA[>")+"]]>"),u.forEach&&(c=!1,p.push(""),u.forEach(function(e){"object"==typeof e?"_attr"==Object.keys(e)[0]?f(e._attr):p.push(a(e,t,n+1)):(p.pop(),c=!0,p.push(r(e)))}),c||p.push(""));break;default:p.push(r(u))}return{name:i,interrupt:!1,attributes:l,content:p,icount:n,indents:s,indent:t}}function s(e,t,n){if("object"!=typeof t)return e(!1,t);var r=t.interrupt?1:t.content.length;function o(){for(;t.content.length;){var o=t.content.shift();if(void 0!==o){if(i(o))return;s(e,o)}}e(!1,(r>1?t.indents:"")+(t.name?"</"+t.name+">":"")+(t.indent&&!n?"\n":"")),n&&n()}function i(t){return!!t.interrupt&&(t.interrupt.append=e,t.interrupt.end=o,t.interrupt=!1,e(!0),!0)}if(e(!1,t.indents+(t.name?"<"+t.name:"")+(t.attributes.length?" "+t.attributes.join(" "):"")+(r?t.name?">":"":t.name?"/>":"")+(t.indent&&r>1?"\n":"")),!r)return e(!1,t.indent?"\n":"");i(t)||o()}e.exports=function(e,n){"object"!=typeof n&&(n={indent:n});var r,u,c=n.stream?new o:null,l="",p=!1,f=n.indent?!0===n.indent?i:n.indent:"",h=!0;function d(e){h?t.nextTick(e):e()}function m(e,t){if(void 0!==t&&(l+=t),e&&!p&&(c=c||new o,p=!0),e&&p){var n=l;d(function(){c.emit("data",n)}),l=""}}function v(e,t){s(m,a(e,f,f?1:0),t)}function g(){if(c){var e=l;d(function(){c.emit("data",e),c.emit("end"),c.readable=!1,c.emit("close")})}}return d(function(){h=!1}),n.declaration&&(r=n.declaration,u={version:"1.0",encoding:r.encoding||"UTF-8"},r.standalone&&(u.standalone=r.standalone),v({"?xml":{_attr:u}}),l=l.replace("/>","?>")),e&&e.forEach?e.forEach(function(t,n){var r;n+1===e.length&&(r=g),v(t,r)}):v(e,g),c?(c.readable=!0,c):l},e.exports.element=e.exports.Element=function(){var e={_elem:a(Array.prototype.slice.call(arguments)),push:function(e){if(!this.append)throw new Error("not assigned to a parent!");var t=this,n=this._elem.indent;s(this.append,a(e,n,this._elem.icount+(n?1:0)),function(){t.append(!0)})},close:function(e){void 0!==e&&this.push(e),this.end&&this.end()}};return e}}).call(this,n(67))},function(e,t,n){(function(t){var n;n=void 0!==t?t:this,e.exports=function(e){if(e.CSS&&e.CSS.escape)return e.CSS.escape;var t=function(e){if(0==arguments.length)throw new TypeError("`CSS.escape` requires an argument.");for(var t,n=String(e),r=n.length,o=-1,i="",a=n.charCodeAt(0);++o<r;)0!=(t=n.charCodeAt(o))?i+=t>=1&&t<=31||127==t||0==o&&t>=48&&t<=57||1==o&&t>=48&&t<=57&&45==a?"\\"+t.toString(16)+" ":0==o&&1==r&&45==t||!(t>=128||45==t||95==t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122)?"\\"+n.charAt(o):n.charAt(o):i+="�";return i};return e.CSS||(e.CSS={}),e.CSS.escape=t,t}(n)}).call(this,n(36))},function(e,t,n){"use strict";(function(t,r){var o=65536,i=4294967295;var a=n(48).Buffer,s=t.crypto||t.msCrypto;s&&s.getRandomValues?e.exports=function(e,t){if(e>i)throw new RangeError("requested too many random bytes");var n=a.allocUnsafe(e);if(e>0)if(e>o)for(var u=0;u<e;u+=o)s.getRandomValues(n.slice(u,u+o));else s.getRandomValues(n);if("function"==typeof t)return r.nextTick(function(){t(null,n)});return n}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,n(36),n(67))},function(e,t,n){(t=e.exports=function(e){e=e.toLowerCase();var n=t[e];if(!n)throw new Error(e+" is not supported (we accept pull requests)");return new n}).sha=n(749),t.sha1=n(750),t.sha224=n(751),t.sha256=n(404),t.sha384=n(752),t.sha512=n(405)},function(e,t,n){var r=n(370),o=n(388),i=n(172),a=n(753),s=n(37);e.exports=function(e,t,n){var u=s(e)?r:a,c=arguments.length<3;return u(e,i(t,4),n,c,o)}},function(e,t,n){var r=n(52),o=n(805),i=n(387),a="Expected a function",s=Math.max,u=Math.min;e.exports=function(e,t,n){var c,l,p,f,h,d,m=0,v=!1,g=!1,y=!0;if("function"!=typeof e)throw new TypeError(a);function b(t){var n=c,r=l;return c=l=void 0,m=t,f=e.apply(r,n)}function _(e){var n=e-d;return void 0===d||n>=t||n<0||g&&e-m>=p}function w(){var e=o();if(_(e))return x(e);h=setTimeout(w,function(e){var n=t-(e-d);return g?u(n,p-(e-m)):n}(e))}function x(e){return h=void 0,y&&c?b(e):(c=l=void 0,f)}function E(){var e=o(),n=_(e);if(c=arguments,l=this,d=e,n){if(void 0===h)return function(e){return m=e,h=setTimeout(w,t),v?b(e):f}(d);if(g)return clearTimeout(h),h=setTimeout(w,t),b(d)}return void 0===h&&(h=setTimeout(w,t)),f}return t=i(t)||0,r(n)&&(v=!!n.leading,p=(g="maxWait"in n)?s(i(n.maxWait)||0,t):p,y="trailing"in n?!!n.trailing:y),E.cancel=function(){void 0!==h&&clearTimeout(h),m=0,c=d=l=h=void 0},E.flush=function(){return void 0===h?f:x(o())},E}},function(e,t,n){"use strict";e.exports=n(815)},function(e,t,n){var r=n(367),o=n(449),i=n(919),a=n(108),s=n(118),u=n(922),c=n(453),l=n(452),p=c(function(e,t){var n={};if(null==e)return n;var c=!1;t=r(t,function(t){return t=a(t,e),c||(c=t.length>1),t}),s(e,l(e),n),c&&(n=o(n,7,u));for(var p=t.length;p--;)i(n,t[p]);return n});e.exports=p},function(e,t,n){var r,o,i;o=[],r=function(){"use strict";var e=function(e){return e&&"getComputedStyle"in window&&"smooth"===window.getComputedStyle(e)["scroll-behavior"]};if("undefined"==typeof window||!("document"in window))return{};var t=function(t,n,r){var o;n=n||999,r||0===r||(r=9);var i=function(e){o=e},a=function(){clearTimeout(o),i(0)},s=function(e){return Math.max(0,t.getTopOf(e)-r)},u=function(r,o,s){if(a(),0===o||o&&o<0||e(t.body))t.toY(r),s&&s();else{var u=t.getY(),c=Math.max(0,r)-u,l=(new Date).getTime();o=o||Math.min(Math.abs(c),n),function e(){i(setTimeout(function(){var n=Math.min(1,((new Date).getTime()-l)/o),r=Math.max(0,Math.floor(u+c*(n<.5?2*n*n:n*(4-2*n)-1)));t.toY(r),n<1&&t.getHeight()+r<t.body.scrollHeight?e():(setTimeout(a,99),s&&s())},9))}()}},c=function(e,t,n){u(s(e),t,n)};return{setup:function(e,t){return(0===e||e)&&(n=e),(0===t||t)&&(r=t),{defaultDuration:n,edgeOffset:r}},to:c,toY:u,intoView:function(e,n,o){var i=e.getBoundingClientRect().height,a=t.getTopOf(e)+i,l=t.getHeight(),p=t.getY(),f=p+l;s(e)<p||i+r>l?c(e,n,o):a+r>f?u(a-l+r,n,o):o&&o()},center:function(e,n,r,o){u(Math.max(0,t.getTopOf(e)-t.getHeight()/2+(r||e.getBoundingClientRect().height/2)),n,o)},stop:a,moving:function(){return!!o},getY:t.getY,getTopOf:t.getTopOf}},n=document.documentElement,r=function(){return window.scrollY||n.scrollTop},o=t({body:document.scrollingElement||document.body,toY:function(e){window.scrollTo(0,e)},getY:r,getHeight:function(){return window.innerHeight||n.clientHeight},getTopOf:function(e){return e.getBoundingClientRect().top+r()-n.offsetTop}});if(o.createScroller=function(e,r,o){return t({body:e,toY:function(t){e.scrollTop=t},getY:function(){return e.scrollTop},getHeight:function(){return Math.min(e.clientHeight,window.innerHeight||n.clientHeight)},getTopOf:function(e){return e.offsetTop}},r,o)},"addEventListener"in window&&!window.noZensmooth&&!e(document.body)){var i="history"in window&&"pushState"in history,a=i&&"scrollRestoration"in history;a&&(history.scrollRestoration="auto"),window.addEventListener("load",function(){a&&(setTimeout(function(){history.scrollRestoration="manual"},9),window.addEventListener("popstate",function(e){e.state&&"zenscrollY"in e.state&&o.toY(e.state.zenscrollY)},!1)),window.location.hash&&setTimeout(function(){var e=o.setup().edgeOffset;if(e){var t=document.getElementById(window.location.href.split("#")[1]);if(t){var n=Math.max(0,o.getTopOf(t)-e),r=o.getY()-n;0<=r&&r<9&&window.scrollTo(0,n)}}},9)},!1);var s=new RegExp("(^|\\s)noZensmooth(\\s|$)");window.addEventListener("click",function(e){for(var t=e.target;t&&"A"!==t.tagName;)t=t.parentNode;if(!(!t||1!==e.which||e.shiftKey||e.metaKey||e.ctrlKey||e.altKey)){if(a){var n=history.state&&"object"==typeof history.state?history.state:{};n.zenscrollY=o.getY();try{history.replaceState(n,"")}catch(e){}}var r=t.getAttribute("href")||"";if(0===r.indexOf("#")&&!s.test(t.className)){var u=0,c=document.getElementById(r.substring(1));if("#"!==r){if(!c)return;u=o.getTopOf(c)}e.preventDefault();var l=function(){window.location=r},p=o.setup().edgeOffset;p&&(u=Math.max(0,u-p),i&&(l=function(){history.pushState({},"",r)})),o.toY(u,null,l)}}},!1)}return o}(),void 0===(i="function"==typeof r?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){e.exports=n(971)},function(e,t){e.exports=function(e,t,n){var r=new Blob([e],{type:n||"application/octet-stream"});if(void 0!==window.navigator.msSaveBlob)window.navigator.msSaveBlob(r,t);else{var o=window.URL.createObjectURL(r),i=document.createElement("a");i.style.display="none",i.href=o,i.setAttribute("download",t),void 0===i.download&&i.setAttribute("target","_blank"),document.body.appendChild(i),i.click(),document.body.removeChild(i),window.URL.revokeObjectURL(o)}}},function(e,t,n){"use strict";var r=n(979),o=function(e){return e.split(/(<\/?[^>]+>)/g).filter(function(e){return""!==e.trim()})},i=function(e){return/<\/+[^>]+>/.test(e)},a=function(e){return/<[^>]+\/>/.test(e)},s=function(e){return function(e){return/<[^>!]+>/.test(e)}(e)&&!i(e)&&!a(e)};function u(e){return o(e).map(function(e){return{value:e,type:c(e)}})}function c(e){return i(e)?"ClosingTag":s(e)?"OpeningTag":a(e)?"SelfClosingTag":"Text"}e.exports=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.indentor,o=t.textNodesOnSameLine,i=0,a=[];n=n||"    ";var s=u(e).map(function(e,t,s){var u=e.value,c=e.type;"ClosingTag"===c&&i--;var l=r(n,i),p=l+u;if("OpeningTag"===c&&i++,o){var f=s[t-1],h=s[t-2];"ClosingTag"===c&&"Text"===f.type&&"OpeningTag"===h.type&&(p=""+l+h.value+f.value+u,a.push(t-2,t-1))}return p});return a.forEach(function(e){return s[e]=null}),s.filter(function(e){return!!e}).join("\n")}},function(e,t,n){var r=n(69);e.exports=function(e){return r(e).toLowerCase()}},function(e,t,n){"use strict";var r=n(1031).DebounceInput;r.DebounceInput=r,e.exports=r},function(e,t,n){n(489),e.exports=n(1034)},function(e,t,n){"use strict";n.r(t);var r=n(18);void 0===n.n(r).a.Promise&&n(490),String.prototype.startsWith||n(520)},function(e,t,n){n(491),n(337),n(502),n(506),n(518),n(519),e.exports=n(72).Promise},function(e,t,n){"use strict";var r=n(150),o={};o[n(33)("toStringTag")]="z",o+""!="[object z]"&&n(97)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t,n){e.exports=!n(126)&&!n(99)(function(){return 7!=Object.defineProperty(n(200)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(98);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){e.exports=n(197)("native-function-to-string",Function.toString)},function(e,t,n){"use strict";var r=n(496),o=n(336),i=n(203),a={};n(81)(a,n(33)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(45),o=n(497),i=n(341),a=n(202)("IE_PROTO"),s=function(){},u=function(){var e,t=n(200)("iframe"),r=i.length;for(t.style.display="none",n(342).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;r--;)delete u.prototype[i[r]];return u()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[a]=e):n=u(),void 0===t?n:o(n,t)}},function(e,t,n){var r=n(151),o=n(45),i=n(339);e.exports=n(126)?Object.defineProperties:function(e,t){o(e);for(var n,a=i(t),s=a.length,u=0;s>u;)r.f(e,n=a[u++],t[n]);return e}},function(e,t,n){var r=n(152),o=n(155),i=n(500)(!1),a=n(202)("IE_PROTO");e.exports=function(e,t){var n,s=o(e),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;t.length>u;)r(s,n=t[u++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){var r=n(125);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(155),o=n(74),i=n(340);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=o(u.length),l=i(a,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(152),o=n(343),i=n(202)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=o(e),r(e,i)?e[i]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,n){for(var r=n(503),o=n(339),i=n(97),a=n(41),s=n(81),u=n(128),c=n(33),l=c("iterator"),p=c("toStringTag"),f=u.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=o(h),m=0;m<d.length;m++){var v,g=d[m],y=h[g],b=a[g],_=b&&b.prototype;if(_&&(_[l]||s(_,l,f),_[p]||s(_,p,g),u[g]=f,y))for(v in r)_[v]||i(_,v,r[v],!0)}},function(e,t,n){"use strict";var r=n(504),o=n(505),i=n(128),a=n(155);e.exports=n(338)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(33)("unscopables"),o=Array.prototype;null==o[r]&&n(81)(o,r,{}),e.exports=function(e){o[r][e]=!0}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r,o,i,a,s=n(198),u=n(41),c=n(153),l=n(150),p=n(35),f=n(98),h=n(154),d=n(507),m=n(508),v=n(204),g=n(344).set,y=n(513)(),b=n(205),_=n(345),w=n(514),x=n(346),E=u.TypeError,S=u.process,C=S&&S.versions,k=C&&C.v8||"",O=u.Promise,A="process"==l(S),T=function(){},j=o=b.f,P=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[n(33)("species")]=function(e){e(T,T)};return(A||"function"==typeof PromiseRejectionEvent)&&e.then(T)instanceof t&&0!==k.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(e){}}(),I=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},M=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,o=1==e._s,i=0,a=function(t){var n,i,a,s=o?t.ok:t.fail,u=t.resolve,c=t.reject,l=t.domain;try{s?(o||(2==e._h&&D(e),e._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===t.promise?c(E("Promise-chain cycle")):(i=I(n))?i.call(n,u,c):u(n)):c(r)}catch(e){l&&!a&&l.exit(),c(e)}};n.length>i;)a(n[i++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){g.call(u,function(){var t,n,r,o=e._v,i=R(e);if(i&&(t=_(function(){A?S.emit("unhandledRejection",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=A||R(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},R=function(e){return 1!==e._h&&0===(e._a||e._c).length},D=function(e){g.call(u,function(){var t;A?S.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},L=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},U=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E("Promise can't be resolved itself");(t=I(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(U,r,1),c(L,r,1))}catch(e){L.call(r,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){L.call({_w:n,_d:!1},e)}}};P||(O=function(e){d(this,O,"Promise","_h"),h(e),r.call(this);try{e(c(U,this,1),c(L,this,1))}catch(e){L.call(this,e)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(515)(O.prototype,{then:function(e,t){var n=j(v(this,O));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=A?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&M(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(U,e,1),this.reject=c(L,e,1)},b.f=j=function(e){return e===O||e===a?new i(e):o(e)}),p(p.G+p.W+p.F*!P,{Promise:O}),n(203)(O,"Promise"),n(516)("Promise"),a=n(72).Promise,p(p.S+p.F*!P,"Promise",{reject:function(e){var t=j(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(s||!P),"Promise",{resolve:function(e){return x(s&&this===a?O:this,e)}}),p(p.S+p.F*!(P&&n(517)(function(e){O.all(e).catch(T)})),"Promise",{all:function(e){var t=this,n=j(t),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;m(e,!1,function(e){var s=i++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=j(t),r=n.reject,o=_(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(153),o=n(509),i=n(510),a=n(45),s=n(74),u=n(511),c={},l={};(t=e.exports=function(e,t,n,p,f){var h,d,m,v,g=f?function(){return e}:u(e),y=r(n,p,t?2:1),b=0;if("function"!=typeof g)throw TypeError(e+" is not iterable!");if(i(g)){for(h=s(e.length);h>b;b++)if((v=t?y(a(d=e[b])[0],d[1]):y(e[b]))===c||v===l)return v}else for(m=g.call(e);!(d=m.next()).done;)if((v=o(m,y,d.value,t))===c||v===l)return v}).BREAK=c,t.RETURN=l},function(e,t,n){var r=n(45);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},function(e,t,n){var r=n(128),o=n(33)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(150),o=n(33)("iterator"),i=n(128);e.exports=n(72).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(41),o=n(344).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(125)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve(void 0);n=function(){l.then(c)}}else n=function(){o.call(r,c)};else{var p=!0,f=document.createTextNode("");new i(c).observe(f,{characterData:!0}),n=function(){f.data=p=!p}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t,n){var r=n(41).navigator;e.exports=r&&r.userAgent||""},function(e,t,n){var r=n(97);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(41),o=n(151),i=n(126),a=n(33)("species");e.exports=function(e){var t=r[e];i&&t&&!t[a]&&o.f(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(33)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},function(e,t,n){"use strict";var r=n(35),o=n(72),i=n(41),a=n(204),s=n(346);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(35),o=n(205),i=n(345);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){n(521),n(522),n(523),n(337),n(526),n(527),n(528),n(529),n(531),n(532),n(533),n(534),n(535),n(536),n(537),n(538),n(539),n(540),n(541),n(542),n(543),n(544),n(545),n(548),n(549),n(551),e.exports=n(72).String},function(e,t,n){var r=n(35),o=n(340),i=String.fromCharCode,a=String.fromCodePoint;r(r.S+r.F*(!!a&&1!=a.length),"String",{fromCodePoint:function(e){for(var t,n=[],r=arguments.length,a=0;r>a;){if(t=+arguments[a++],o(t,1114111)!==t)throw RangeError(t+" is not a valid code point");n.push(t<65536?i(t):i(55296+((t-=65536)>>10),t%1024+56320))}return n.join("")}})},function(e,t,n){var r=n(35),o=n(155),i=n(74);r(r.S,"String",{raw:function(e){for(var t=o(e.raw),n=i(t.length),r=arguments.length,a=[],s=0;n>s;)a.push(String(t[s++])),s<r&&a.push(String(arguments[s]));return a.join("")}})},function(e,t,n){"use strict";n(524)("trim",function(e){return function(){return e(this,3)}})},function(e,t,n){var r=n(35),o=n(73),i=n(99),a=n(525),s="["+a+"]",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(e,t,n){var o={},s=i(function(){return!!a[e]()||"​\85"!="​\85"[e]()}),u=o[e]=s?t(p):a[e];n&&(o[n]=u),r(r.P+r.F*s,"String",o)},p=l.trim=function(e,t){return e=String(o(e)),1&t&&(e=e.replace(u,"")),2&t&&(e=e.replace(c,"")),e};e.exports=l},function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(35),o=n(201)(!1);r(r.P,"String",{codePointAt:function(e){return o(this,e)}})},function(e,t,n){"use strict";var r=n(35),o=n(74),i=n(206),a="".endsWith;r(r.P+r.F*n(207)("endsWith"),"String",{endsWith:function(e){var t=i(this,e,"endsWith"),n=arguments.length>1?arguments[1]:void 0,r=o(t.length),s=void 0===n?r:Math.min(o(n),r),u=String(e);return a?a.call(t,u,s):t.slice(s-u.length,s)===u}})},function(e,t,n){"use strict";var r=n(35),o=n(206);r(r.P+r.F*n(207)("includes"),"String",{includes:function(e){return!!~o(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(35);r(r.P,"String",{repeat:n(530)})},function(e,t,n){"use strict";var r=n(127),o=n(73);e.exports=function(e){var t=String(o(this)),n="",i=r(e);if(i<0||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(t+=t))1&i&&(n+=t);return n}},function(e,t,n){"use strict";var r=n(35),o=n(74),i=n(206),a="".startsWith;r(r.P+r.F*n(207)("startsWith"),"String",{startsWith:function(e){var t=i(this,e,"startsWith"),n=o(Math.min(arguments.length>1?arguments[1]:void 0,t.length)),r=String(e);return a?a.call(t,r,n):t.slice(n,n+r.length)===r}})},function(e,t,n){"use strict";n(42)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},function(e,t,n){"use strict";n(42)("big",function(e){return function(){return e(this,"big","","")}})},function(e,t,n){"use strict";n(42)("blink",function(e){return function(){return e(this,"blink","","")}})},function(e,t,n){"use strict";n(42)("bold",function(e){return function(){return e(this,"b","","")}})},function(e,t,n){"use strict";n(42)("fixed",function(e){return function(){return e(this,"tt","","")}})},function(e,t,n){"use strict";n(42)("fontcolor",function(e){return function(t){return e(this,"font","color",t)}})},function(e,t,n){"use strict";n(42)("fontsize",function(e){return function(t){return e(this,"font","size",t)}})},function(e,t,n){"use strict";n(42)("italics",function(e){return function(){return e(this,"i","","")}})},function(e,t,n){"use strict";n(42)("link",function(e){return function(t){return e(this,"a","href",t)}})},function(e,t,n){"use strict";n(42)("small",function(e){return function(){return e(this,"small","","")}})},function(e,t,n){"use strict";n(42)("strike",function(e){return function(){return e(this,"strike","","")}})},function(e,t,n){"use strict";n(42)("sub",function(e){return function(){return e(this,"sub","","")}})},function(e,t,n){"use strict";n(42)("sup",function(e){return function(){return e(this,"sup","","")}})},function(e,t,n){"use strict";var r=n(45),o=n(74),i=n(208),a=n(156);n(157)("match",1,function(e,t,n,s){return[function(n){var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=s(n,e,this);if(t.done)return t.value;var u=r(e),c=String(this);if(!u.global)return a(u,c);var l=u.unicode;u.lastIndex=0;for(var p,f=[],h=0;null!==(p=a(u,c));){var d=String(p[0]);f[h]=d,""===d&&(u.lastIndex=i(c,o(u.lastIndex),l)),h++}return 0===h?null:f}]})},function(e,t,n){"use strict";var r=n(209);n(35)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(e,t,n){"use strict";var r=n(45);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var r=n(45),o=n(343),i=n(74),a=n(127),s=n(208),u=n(156),c=Math.max,l=Math.min,p=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(157)("replace",2,function(e,t,n,d){return[function(r,o){var i=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(e,t){var o=d(n,e,this,t);if(o.done)return o.value;var p=r(e),f=String(this),h="function"==typeof t;h||(t=String(t));var v=p.global;if(v){var g=p.unicode;p.lastIndex=0}for(var y=[];;){var b=u(p,f);if(null===b)break;if(y.push(b),!v)break;""===String(b[0])&&(p.lastIndex=s(f,i(p.lastIndex),g))}for(var _,w="",x=0,E=0;E<y.length;E++){b=y[E];for(var S=String(b[0]),C=c(l(a(b.index),f.length),0),k=[],O=1;O<b.length;O++)k.push(void 0===(_=b[O])?_:String(_));var A=b.groups;if(h){var T=[S].concat(k,C,f);void 0!==A&&T.push(A);var j=String(t.apply(void 0,T))}else j=m(S,f,C,k,A,t);C>=x&&(w+=f.slice(x,C)+j,x=C+S.length)}return w+f.slice(x)}];function m(e,t,r,i,a,s){var u=r+e.length,c=i.length,l=h;return void 0!==a&&(a=o(a),l=f),n.call(s,l,function(n,o){var s;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(u);case"<":s=a[o.slice(1,-1)];break;default:var l=+o;if(0===l)return n;if(l>c){var f=p(l/10);return 0===f?n:f<=c?void 0===i[f-1]?o.charAt(1):i[f-1]+o.charAt(1):n}s=i[l-1]}return void 0===s?"":s})}})},function(e,t,n){"use strict";var r=n(45),o=n(550),i=n(156);n(157)("search",1,function(e,t,n,a){return[function(n){var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=a(n,e,this);if(t.done)return t.value;var s=r(e),u=String(this),c=s.lastIndex;o(c,0)||(s.lastIndex=0);var l=i(s,u);return o(s.lastIndex,c)||(s.lastIndex=c),null===l?-1:l.index}]})},function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var r=n(347),o=n(45),i=n(204),a=n(208),s=n(74),u=n(156),c=n(209),l=n(99),p=Math.min,f=[].push,h=!l(function(){RegExp(4294967295,"y")});n(157)("split",2,function(e,t,n,l){var d;return d="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(e,t){var o=String(this);if(void 0===e&&0===t)return[];if(!r(e))return n.call(o,e,t);for(var i,a,s,u=[],l=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),p=0,h=void 0===t?4294967295:t>>>0,d=new RegExp(e.source,l+"g");(i=c.call(d,o))&&!((a=d.lastIndex)>p&&(u.push(o.slice(p,i.index)),i.length>1&&i.index<o.length&&f.apply(u,i.slice(1)),s=i[0].length,p=a,u.length>=h));)d.lastIndex===i.index&&d.lastIndex++;return p===o.length?!s&&d.test("")||u.push(""):u.push(o.slice(p)),u.length>h?u.slice(0,h):u}:"0".split(void 0,0).length?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function(n,r){var o=e(this),i=null==n?void 0:n[t];return void 0!==i?i.call(n,o,r):d.call(String(o),n,r)},function(e,t){var r=l(d,e,this,t,d!==n);if(r.done)return r.value;var c=o(e),f=String(this),m=i(c,RegExp),v=c.unicode,g=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(h?"y":"g"),y=new m(h?c:"^(?:"+c.source+")",g),b=void 0===t?4294967295:t>>>0;if(0===b)return[];if(0===f.length)return null===u(y,f)?[f]:[];for(var _=0,w=0,x=[];w<f.length;){y.lastIndex=h?w:0;var E,S=u(y,h?f:f.slice(w));if(null===S||(E=p(s(y.lastIndex+(h?0:w)),f.length))===_)w=a(f,w,v);else{if(x.push(f.slice(_,w)),x.length===b)return x;for(var C=1;C<=S.length-1;C++)if(x.push(S[C]),x.length===b)return x;w=_=E}}return x.push(f.slice(_)),x}]})},function(e,t,n){var r=n(22),o=r.JSON||(r.JSON={stringify:JSON.stringify});e.exports=function(e){return o.stringify.apply(o,arguments)}},function(e,t,n){n(554),e.exports=n(22).Object.keys},function(e,t,n){var r=n(100),o=n(129);n(216)("keys",function(){return function(e){return o(r(e))}})},function(e,t,n){var r=n(76),o=n(158),i=n(556);e.exports=function(e){return function(t,n,a){var s,u=r(t),c=o(u.length),l=i(a,c);if(e&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((e||l in u)&&u[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){var r=n(212),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t,n){e.exports=n(558)},function(e,t,n){n(101),n(103),e.exports=n(221).f("iterator")},function(e,t,n){var r=n(212),o=n(210);e.exports=function(e){return function(t,n){var i,a,s=String(o(t)),u=r(n),c=s.length;return u<0||u>=c?e?"":void 0:(i=s.charCodeAt(u))<55296||i>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?e?s.charAt(u):i:e?s.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){"use strict";var r=n(160),o=n(133),i=n(134),a={};n(77)(a,n(34)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){"use strict";var r=n(562),o=n(353),i=n(102),a=n(76);e.exports=n(219)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t,n){e.exports=n(564)},function(e,t,n){n(354),n(164),n(567),n(568),e.exports=n(22).Symbol},function(e,t,n){var r=n(129),o=n(161),i=n(162);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,s=n(e),u=i.f,c=0;s.length>c;)u.call(e,a=s[c++])&&t.push(a);return t}},function(e,t,n){var r=n(76),o=n(224).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return o(e)}catch(e){return a.slice()}}(e):o(r(e))}},function(e,t,n){n(222)("asyncIterator")},function(e,t,n){n(222)("observable")},function(e,t,n){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=c(e),r=n[0],a=n[1],s=new i(function(e,t,n){return 3*(t+n)/4-n}(0,r,a)),u=0,l=a>0?r-4:r,p=0;p<l;p+=4)t=o[e.charCodeAt(p)]<<18|o[e.charCodeAt(p+1)]<<12|o[e.charCodeAt(p+2)]<<6|o[e.charCodeAt(p+3)],s[u++]=t>>16&255,s[u++]=t>>8&255,s[u++]=255&t;2===a&&(t=o[e.charCodeAt(p)]<<2|o[e.charCodeAt(p+1)]>>4,s[u++]=255&t);1===a&&(t=o[e.charCodeAt(p)]<<10|o[e.charCodeAt(p+1)]<<4|o[e.charCodeAt(p+2)]>>2,s[u++]=t>>8&255,s[u++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;a<s;a+=16383)i.push(l(e,a,a+16383>s?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,u=a.length;s<u;++s)r[s]=a[s],o[a.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,n){for(var o,i,a=[],s=t;s<n;s+=3)o=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),a.push(r[(i=o)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,u=(1<<s)-1,c=u>>1,l=-7,p=n?o-1:0,f=n?-1:1,h=e[t+p];for(p+=f,i=h&(1<<-l)-1,h>>=-l,l+=s;l>0;i=256*i+e[t+p],p+=f,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+p],p+=f,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(h?-1:1);a+=Math.pow(2,r),i-=c}return(h?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,u,c=8*i-o-1,l=(1<<c)-1,p=l>>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,d=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+p>=1?f/u:f*Math.pow(2,1-p))*u>=2&&(a++,u/=2),a+p>=l?(s=0,a=l):a+p>=1?(s=(t*u-1)*Math.pow(2,o),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),a=0));o>=8;e[n+h]=255&s,h+=d,s/=256,o-=8);for(a=a<<o|s,c+=o;c>0;e[n+h]=255&a,h+=d,a/=256,c-=8);e[n+h-d]|=128*m}},function(e,t,n){n(572),e.exports=n(22).Array.isArray},function(e,t,n){var r=n(30);r(r.S,"Array",{isArray:n(223)})},function(e,t,n){n(574);var r=n(22).Object;e.exports=function(e,t,n){return r.defineProperty(e,t,n)}},function(e,t,n){var r=n(30);r(r.S+r.F*!n(50),"Object",{defineProperty:n(49).f})},function(e,t,n){n(576),e.exports=n(22).Object.assign},function(e,t,n){var r=n(30);r(r.S+r.F,"Object",{assign:n(356)})},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){"use strict";var r=n(579),o=n(105),i=n(57),a=n(580),s=r.twoArgumentPooler,u=r.fourArgumentPooler,c=/\/+/g;function l(e){return(""+e).replace(c,"$&/")}function p(e,t){this.func=e,this.context=t,this.count=0}function f(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function h(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function d(e,t,n){var r=e.result,a=e.keyPrefix,s=e.func,u=e.context,c=s.call(u,t,e.count++);Array.isArray(c)?m(c,r,n,i.thatReturnsArgument):null!=c&&(o.isValidElement(c)&&(c=o.cloneAndReplaceKey(c,a+(!c.key||t&&t.key===c.key?"":l(c.key)+"/")+n)),r.push(c))}function m(e,t,n,r,o){var i="";null!=n&&(i=l(n)+"/");var s=h.getPooled(t,i,r,o);a(e,d,s),h.release(s)}function v(e,t,n){return null}p.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},r.addPoolingTo(p,s),h.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},r.addPoolingTo(h,u);var g={forEach:function(e,t,n){if(null==e)return e;var r=p.getPooled(t,n);a(e,f,r),p.release(r)},map:function(e,t,n){if(null==e)return e;var r=[];return m(e,r,null,t,n),r},mapIntoWithKeyPrefixInternal:m,count:function(e,t){return a(e,v,null)},toArray:function(e){var t=[];return m(e,t,null,i.thatReturnsArgument),t}};e.exports=g},function(e,t,n){"use strict";var r=n(136),o=(n(15),function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)}),i=function(e){e instanceof this||r("25"),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},a=o,s={addPoolingTo:function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||a,n.poolSize||(n.poolSize=10),n.release=i,n},oneArgumentPooler:o,twoArgumentPooler:function(e,t){if(this.instancePool.length){var n=this.instancePool.pop();return this.call(n,e,t),n}return new this(e,t)},threeArgumentPooler:function(e,t,n){if(this.instancePool.length){var r=this.instancePool.pop();return this.call(r,e,t,n),r}return new this(e,t,n)},fourArgumentPooler:function(e,t,n,r){if(this.instancePool.length){var o=this.instancePool.pop();return this.call(o,e,t,n,r),o}return new this(e,t,n,r)}};e.exports=s},function(e,t,n){"use strict";var r=n(136),o=(n(65),n(360)),i=n(581),a=(n(15),n(582)),s=(n(23),"."),u=":";function c(e,t){return e&&"object"==typeof e&&null!=e.key?a.escape(e.key):t.toString(36)}e.exports=function(e,t,n){return null==e?0:function e(t,n,l,p){var f,h=typeof t;if("undefined"!==h&&"boolean"!==h||(t=null),null===t||"string"===h||"number"===h||"object"===h&&t.$$typeof===o)return l(p,t,""===n?s+c(t,0):n),1;var d=0,m=""===n?s:n+u;if(Array.isArray(t))for(var v=0;v<t.length;v++)d+=e(f=t[v],m+c(f,v),l,p);else{var g=i(t);if(g){var y,b=g.call(t);if(g!==t.entries)for(var _=0;!(y=b.next()).done;)d+=e(f=y.value,m+c(f,_++),l,p);else for(;!(y=b.next()).done;){var w=y.value;w&&(d+=e(f=w[1],m+a.escape(w[0])+u+c(f,0),l,p))}}else if("object"===h){var x=String(t);r("31","[object Object]"===x?"object with keys {"+Object.keys(t).join(", ")+"}":x,"")}}return d}(e,"",t,n)}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";var r={escape:function(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})},unescape:function(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}};e.exports=r},function(e,t,n){"use strict";var r=n(105).createFactory,o={a:r("a"),abbr:r("abbr"),address:r("address"),area:r("area"),article:r("article"),aside:r("aside"),audio:r("audio"),b:r("b"),base:r("base"),bdi:r("bdi"),bdo:r("bdo"),big:r("big"),blockquote:r("blockquote"),body:r("body"),br:r("br"),button:r("button"),canvas:r("canvas"),caption:r("caption"),cite:r("cite"),code:r("code"),col:r("col"),colgroup:r("colgroup"),data:r("data"),datalist:r("datalist"),dd:r("dd"),del:r("del"),details:r("details"),dfn:r("dfn"),dialog:r("dialog"),div:r("div"),dl:r("dl"),dt:r("dt"),em:r("em"),embed:r("embed"),fieldset:r("fieldset"),figcaption:r("figcaption"),figure:r("figure"),footer:r("footer"),form:r("form"),h1:r("h1"),h2:r("h2"),h3:r("h3"),h4:r("h4"),h5:r("h5"),h6:r("h6"),head:r("head"),header:r("header"),hgroup:r("hgroup"),hr:r("hr"),html:r("html"),i:r("i"),iframe:r("iframe"),img:r("img"),input:r("input"),ins:r("ins"),kbd:r("kbd"),keygen:r("keygen"),label:r("label"),legend:r("legend"),li:r("li"),link:r("link"),main:r("main"),map:r("map"),mark:r("mark"),menu:r("menu"),menuitem:r("menuitem"),meta:r("meta"),meter:r("meter"),nav:r("nav"),noscript:r("noscript"),object:r("object"),ol:r("ol"),optgroup:r("optgroup"),option:r("option"),output:r("output"),p:r("p"),param:r("param"),picture:r("picture"),pre:r("pre"),progress:r("progress"),q:r("q"),rp:r("rp"),rt:r("rt"),ruby:r("ruby"),s:r("s"),samp:r("samp"),script:r("script"),section:r("section"),select:r("select"),small:r("small"),source:r("source"),span:r("span"),strong:r("strong"),style:r("style"),sub:r("sub"),summary:r("summary"),sup:r("sup"),table:r("table"),tbody:r("tbody"),td:r("td"),textarea:r("textarea"),tfoot:r("tfoot"),th:r("th"),thead:r("thead"),time:r("time"),title:r("title"),tr:r("tr"),track:r("track"),u:r("u"),ul:r("ul"),var:r("var"),video:r("video"),wbr:r("wbr"),circle:r("circle"),clipPath:r("clipPath"),defs:r("defs"),ellipse:r("ellipse"),g:r("g"),image:r("image"),line:r("line"),linearGradient:r("linearGradient"),mask:r("mask"),path:r("path"),pattern:r("pattern"),polygon:r("polygon"),polyline:r("polyline"),radialGradient:r("radialGradient"),rect:r("rect"),stop:r("stop"),svg:r("svg"),text:r("text"),tspan:r("tspan")};e.exports=o},function(e,t,n){"use strict";var r=n(105).isValidElement,o=n(361);e.exports=o(r)},function(e,t,n){"use strict";var r=n(362),o=n(25),i=n(363),a=n(587),s=Function.call.bind(Object.prototype.hasOwnProperty),u=function(){};function c(){return null}e.exports=function(e,t){var n="function"==typeof Symbol&&Symbol.iterator,l="@@iterator";var p="<<anonymous>>",f={array:v("array"),bool:v("boolean"),func:v("function"),number:v("number"),object:v("object"),string:v("string"),symbol:v("symbol"),any:m(c),arrayOf:function(e){return m(function(t,n,r,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s))return new d("Invalid "+o+" `"+a+"` of type `"+y(s)+"` supplied to `"+r+"`, expected an array.");for(var u=0;u<s.length;u++){var c=e(s,u,r,o,a+"["+u+"]",i);if(c instanceof Error)return c}return null})},element:m(function(t,n,r,o,i){var a=t[n];return e(a)?null:new d("Invalid "+o+" `"+i+"` of type `"+y(a)+"` supplied to `"+r+"`, expected a single ReactElement.")}),elementType:m(function(e,t,n,o,i){var a=e[t];return r.isValidElementType(a)?null:new d("Invalid "+o+" `"+i+"` of type `"+y(a)+"` supplied to `"+n+"`, expected a single ReactElement type.")}),instanceOf:function(e){return m(function(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||p;return new d("Invalid "+o+" `"+i+"` of type `"+function(e){if(!e.constructor||!e.constructor.name)return p;return e.constructor.name}(t[n])+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null})},node:m(function(e,t,n,r,o){return g(e[t])?null:new d("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}),objectOf:function(e){return m(function(t,n,r,o,a){if("function"!=typeof e)return new d("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var u=t[n],c=y(u);if("object"!==c)return new d("Invalid "+o+" `"+a+"` of type `"+c+"` supplied to `"+r+"`, expected an object.");for(var l in u)if(s(u,l)){var p=e(u,l,r,o,a+"."+l,i);if(p instanceof Error)return p}return null})},oneOf:function(e){if(!Array.isArray(e))return c;return m(function(t,n,r,o,i){for(var a=t[n],s=0;s<e.length;s++)if(h(a,e[s]))return null;var u=JSON.stringify(e,function(e,t){return"symbol"===b(t)?String(t):t});return new d("Invalid "+o+" `"+i+"` of value `"+String(a)+"` supplied to `"+r+"`, expected one of "+u+".")})},oneOfType:function(e){if(!Array.isArray(e))return c;for(var t=0;t<e.length;t++){var n=e[t];if("function"!=typeof n)return u("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+_(n)+" at index "+t+"."),c}return m(function(t,n,r,o,a){for(var s=0;s<e.length;s++){if(null==(0,e[s])(t,n,r,o,a,i))return null}return new d("Invalid "+o+" `"+a+"` supplied to `"+r+"`.")})},shape:function(e){return m(function(t,n,r,o,a){var s=t[n],u=y(s);if("object"!==u)return new d("Invalid "+o+" `"+a+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(var c in e){var l=e[c];if(l){var p=l(s,c,r,o,a+"."+c,i);if(p)return p}}return null})},exact:function(e){return m(function(t,n,r,a,s){var u=t[n],c=y(u);if("object"!==c)return new d("Invalid "+a+" `"+s+"` of type `"+c+"` supplied to `"+r+"`, expected `object`.");var l=o({},t[n],e);for(var p in l){var f=e[p];if(!f)return new d("Invalid "+a+" `"+s+"` key `"+p+"` supplied to `"+r+"`.\nBad object: "+JSON.stringify(t[n],null,"  ")+"\nValid keys: "+JSON.stringify(Object.keys(e),null,"  "));var h=f(u,p,r,a,s+"."+p,i);if(h)return h}return null})}};function h(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function d(e){this.message=e,this.stack=""}function m(e){function n(n,r,o,a,s,u,c){if((a=a||p,u=u||o,c!==i)&&t){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}return null==r[o]?n?null===r[o]?new d("The "+s+" `"+u+"` is marked as required in `"+a+"`, but its value is `null`."):new d("The "+s+" `"+u+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,o,a,s,u)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function v(e){return m(function(t,n,r,o,i,a){var s=t[n];return y(s)!==e?new d("Invalid "+o+" `"+i+"` of type `"+b(s)+"` supplied to `"+r+"`, expected `"+e+"`."):null})}function g(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(g);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e[l]);if("function"==typeof t)return t}(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!g(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!g(a[1]))return!1}return!0;default:return!1}}function y(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||!!t&&("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function b(e){if(null==e)return""+e;var t=y(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function _(e){var t=b(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return d.prototype=Error.prototype,f.checkPropTypes=a,f.resetWarningCache=a.resetWarningCache,f.PropTypes=f,f}},function(e,t,n){"use strict";
 /** @license React v16.8.6
  * react-is.production.min.js
  *
 /** @license React v16.8.6
  * react-is.production.min.js
  *
@@ -76,13 +76,13 @@ var n=this&&this.__extends||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
  *
  * This source code is licensed under the MIT license found in the
  * LICENSE file in the root directory of this source tree.
- */Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,u=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,l=r?Symbol.for("react.context"):60110,p=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116;function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case p:case f:case a:case u:case s:case d:return e;default:switch(e=e&&e.$$typeof){case l:case h:case c:return e;default:return t}}case v:case m:case i:return t}}}function y(e){return g(e)===f}t.typeOf=g,t.AsyncMode=p,t.ConcurrentMode=f,t.ContextConsumer=l,t.ContextProvider=c,t.Element=o,t.ForwardRef=h,t.Fragment=a,t.Lazy=v,t.Memo=m,t.Portal=i,t.Profiler=u,t.StrictMode=s,t.Suspense=d,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===f||e===u||e===s||e===d||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===c||e.$$typeof===l||e.$$typeof===h)},t.isAsyncMode=function(e){return y(e)||g(e)===p},t.isConcurrentMode=y,t.isContextConsumer=function(e){return g(e)===l},t.isContextProvider=function(e){return g(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return g(e)===h},t.isFragment=function(e){return g(e)===a},t.isLazy=function(e){return g(e)===v},t.isMemo=function(e){return g(e)===m},t.isPortal=function(e){return g(e)===i},t.isProfiler=function(e){return g(e)===u},t.isStrictMode=function(e){return g(e)===s},t.isSuspense=function(e){return g(e)===d}},function(e,t,n){"use strict";function r(e,t,n,r,o){}r.resetWarningCache=function(){0},e.exports=r},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(352).Component,o=n(101).isValidElement,i=n(353),a=n(579);e.exports=a(r,o,i)},function(e,t,n){"use strict";var r=n(25),o=n(161),i=n(15),a="mixins";e.exports=function(e,t,n){var s=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},c={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)f(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=d(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in l;i(!o,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n);var a=n in e;if(a){var s=c.hasOwnProperty(n)?c[n]:null;return i("DEFINE_MANY_MERGED"===s,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=d(e[n],r))}e[n]=r}}}(e,t)},autobind:function(){}};function p(e,t){var n=u.hasOwnProperty(t)?u[t]:null;b.hasOwnProperty(t)&&i("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&i("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function f(e,n){if(n){i("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),i(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;for(var s in n.hasOwnProperty(a)&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(s)&&s!==a){var c=n[s],f=r.hasOwnProperty(s);if(p(f,s),l.hasOwnProperty(s))l[s](e,c);else{var h=u.hasOwnProperty(s);if("function"!=typeof c||h||f||!1===n.autobind)if(f){var v=u[s];i(h&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,s),"DEFINE_MANY_MERGED"===v?r[s]=d(r[s],c):"DEFINE_MANY"===v&&(r[s]=m(r[s],c))}else r[s]=c;else o.push(s,c),r[s]=c}}}}function h(e,t){for(var n in i(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(i(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function d(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return h(o,n),h(o,r),o}}function m(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function v(e,t){return t.bind(e)}var g={componentDidMount:function(){this.__isMounted=!0}},y={componentWillUnmount:function(){this.__isMounted=!1}},b={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},_=function(){};return r(_.prototype,e.prototype,b),function(e){var t=function(e,r,a){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=v(e,o)}}(this),this.props=e,this.context=r,this.refs=o,this.updater=a||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;i("object"==typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var r in t.prototype=new _,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],s.forEach(f.bind(null,t)),f(t,g),f(t,e),f(t,y),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),i(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";var r=n(133),o=n(101);n(15);e.exports=function(e){return o.isValidElement(e)||r("143"),e}},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(1),i=(r=o)&&r.__esModule?r:{default:r},a=n(583);t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default.Map,n=Object.keys(e);return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t(),o=arguments[1];return r.withMutations(function(t){n.forEach(function(n){var r=(0,e[n])(t.get(n),o);(0,a.validateNextState)(r,n,o),t.set(n,r)})})}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNextState=t.getUnexpectedInvocationParameterMessage=t.getStateName=void 0;var r=a(n(359)),o=a(n(584)),i=a(n(585));function a(e){return e&&e.__esModule?e:{default:e}}t.getStateName=r.default,t.getUnexpectedInvocationParameterMessage=o.default,t.validateNextState=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(1)),o=i(n(359));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t,n){var i=Object.keys(t);if(!i.length)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";var a=(0,o.default)(n);if(!r.default.Iterable.isIterable(e))return"The "+a+' is of unexpected type. Expected argument to be an instance of Immutable.Iterable with the following properties: "'+i.join('", "')+'".';var s=e.keySeq().toArray().filter(function(e){return!t.hasOwnProperty(e)});return s.length>0?"Unexpected "+(1===s.length?"property":"properties")+' "'+s.join('", "')+'" found in '+a+'. Expected to find one of the known reducer property names instead: "'+i.join('", "')+'". Unexpected properties will be ignored.':null},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(void 0===e)throw new Error('Reducer "'+t+'" returned undefined when handling "'+n.type+'" action. To ignore an action, you must explicitly return the previous state.')},e.exports=t.default},function(e,t,n){var r=n(14);e.exports=function(e){if(r(e))return e}},function(e,t,n){var r=n(90);e.exports=function(e,t){var n=[],o=!0,i=!1,a=void 0;try{for(var s,u=r(e);!(o=(s=u.next()).done)&&(n.push(s.value),!t||n.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==u.return||u.return()}finally{if(i)throw a}}return n}},function(e,t,n){n(99),n(97),e.exports=n(589)},function(e,t,n){var r=n(45),o=n(217);e.exports=n(22).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){var r=n(65),o=n(262);e.exports=function(e){return o(r(e).toLowerCase())}},function(e,t,n){var r=n(102),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r=n(595),o=n(364),i=n(596),a=n(65);e.exports=function(e){return function(t){t=a(t);var n=o(t)?i(t):void 0,s=n?n[0]:t.charAt(0),u=n?r(n,1).join(""):t.slice(1);return s[e]()+u}}},function(e,t,n){var r=n(363);e.exports=function(e,t,n){var o=e.length;return n=void 0===n?o:n,!t&&n>=o?e:r(e,t,n)}},function(e,t,n){var r=n(597),o=n(364),i=n(598);e.exports=function(e){return o(e)?i(e):r(e)}},function(e,t){e.exports=function(e){return e.split("")}},function(e,t){var n="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",o="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+r+"|"+o+")"+"?",c="[\\ufe0e\\ufe0f]?"+u+("(?:\\u200d(?:"+[i,a,s].join("|")+")[\\ufe0e\\ufe0f]?"+u+")*"),l="(?:"+[i+r+"?",r,a,s,n].join("|")+")",p=RegExp(o+"(?="+o+")|"+l+c,"g");e.exports=function(e){return e.match(p)||[]}},function(e,t,n){var r=n(365),o=n(600),i=n(603),a=RegExp("['’]","g");e.exports=function(e){return function(t){return r(i(o(t).replace(a,"")),e,"")}}},function(e,t,n){var r=n(601),o=n(65),i=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,a=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=o(e))&&e.replace(i,r).replace(a,"")}},function(e,t,n){var r=n(602)({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"});e.exports=r},function(e,t){e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},function(e,t,n){var r=n(604),o=n(605),i=n(65),a=n(606);e.exports=function(e,t,n){return e=i(e),void 0===(t=n?void 0:t)?o(e)?a(e):r(e):e.match(t)||[]}},function(e,t){var n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(n)||[]}},function(e,t){var n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return n.test(e)}},function(e,t){var n="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+n+"]",o="\\d+",i="[\\u2700-\\u27bf]",a="[a-z\\xdf-\\xf6\\xf8-\\xff]",s="[^\\ud800-\\udfff"+n+o+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",u="(?:\\ud83c[\\udde6-\\uddff]){2}",c="[\\ud800-\\udbff][\\udc00-\\udfff]",l="[A-Z\\xc0-\\xd6\\xd8-\\xde]",p="(?:"+a+"|"+s+")",f="(?:"+l+"|"+s+")",h="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",d="[\\ufe0e\\ufe0f]?"+h+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",u,c].join("|")+")[\\ufe0e\\ufe0f]?"+h+")*"),m="(?:"+[i,u,c].join("|")+")"+d,v=RegExp([l+"?"+a+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,l,"$"].join("|")+")",f+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,l+p,"$"].join("|")+")",l+"?"+p+"+(?:['’](?:d|ll|m|re|s|t|ve))?",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",o,m].join("|"),"g");e.exports=function(e){return e.match(v)||[]}},function(e,t,n){var r=n(608),o=n(165),i=n(219);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(609),o=n(614),i=n(615),a=n(616),s=n(617);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(164);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t,n){var r=n(366),o=n(611),i=n(49),a=n(367),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,l=u.toString,p=c.hasOwnProperty,f=RegExp("^"+l.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?f:s).test(a(e))}},function(e,t,n){var r,o=n(612),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(48)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(164),o="__lodash_hash_undefined__",i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return n===o?void 0:n}return i.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(164),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},function(e,t,n){var r=n(164),o="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?o:t,this}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(166),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0||(n==t.length-1?t.pop():o.call(t,n,1),--this.size,0))}},function(e,t,n){var r=n(166);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(166);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(166);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(167);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(167);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(167);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(167);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},function(e,t,n){var r=n(168),o=n(103),i=n(83);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!o(t)){var u=r(n,3);t=i(t),n=function(e){return u(s[e],e,s)}}var c=e(t,n,a);return c>-1?s[u?t[c]:c]:void 0}}},function(e,t,n){var r=n(630),o=n(656),i=n(379);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},function(e,t,n){var r=n(220),o=n(368),i=1,a=2;e.exports=function(e,t,n,s){var u=n.length,c=u,l=!s;if(null==e)return!c;for(e=Object(e);u--;){var p=n[u];if(l&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<c;){var f=(p=n[u])[0],h=e[f],d=p[1];if(l&&p[2]){if(void 0===h&&!(f in e))return!1}else{var m=new r;if(s)var v=s(h,d,f,e,t,m);if(!(void 0===v?o(d,h,i|a,s,m):v))return!1}}return!0}},function(e,t,n){var r=n(165);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(165),o=n(219),i=n(218),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!o||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(s)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(220),o=n(369),i=n(641),a=n(644),s=n(172),u=n(35),c=n(224),l=n(376),p=1,f="[object Arguments]",h="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,v,g,y){var b=u(e),_=u(t),w=b?h:s(e),x=_?h:s(t),E=(w=w==f?d:w)==d,S=(x=x==f?d:x)==d,C=w==x;if(C&&c(e)){if(!c(t))return!1;b=!0,E=!1}if(C&&!E)return y||(y=new r),b||l(e)?o(e,t,n,v,g,y):i(e,t,w,n,v,g,y);if(!(n&p)){var k=E&&m.call(e,"__wrapped__"),O=S&&m.call(t,"__wrapped__");if(k||O){var A=k?e.value():e,T=O?t.value():t;return y||(y=new r),g(A,T,n,v,y)}}return!!C&&(y||(y=new r),a(e,t,n,v,g,y))}},function(e,t,n){var r=n(218),o=n(638),i=n(639);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},function(e,t){var n="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,n),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t,n){var r=n(102),o=n(371),i=n(89),a=n(369),s=n(642),u=n(643),c=1,l=2,p="[object Boolean]",f="[object Date]",h="[object Error]",d="[object Map]",m="[object Number]",v="[object RegExp]",g="[object Set]",y="[object String]",b="[object Symbol]",_="[object ArrayBuffer]",w="[object DataView]",x=r?r.prototype:void 0,E=x?x.valueOf:void 0;e.exports=function(e,t,n,r,x,S,C){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!S(new o(e),new o(t)));case p:case f:case m:return i(+e,+t);case h:return e.name==t.name&&e.message==t.message;case v:case y:return e==t+"";case d:var k=s;case g:var O=r&c;if(k||(k=u),e.size!=t.size&&!O)return!1;var A=C.get(e);if(A)return A==t;r|=l,C.set(e,t);var T=a(k(e),k(t),r,x,S,C);return C.delete(e),T;case b:if(E)return E.call(e)==E.call(t)}return!1}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}},function(e,t,n){var r=n(372),o=1,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var c=n&o,l=r(e),p=l.length;if(p!=r(t).length&&!c)return!1;for(var f=p;f--;){var h=l[f];if(!(c?h in t:i.call(t,h)))return!1}var d=u.get(e);if(d&&u.get(t))return d==t;var m=!0;u.set(e,t),u.set(t,e);for(var v=c;++f<p;){var g=e[h=l[f]],y=t[h];if(a)var b=c?a(y,g,h,t,e,u):a(g,y,h,e,t,u);if(!(void 0===b?g===y||s(g,y,n,a,u):b)){m=!1;break}v||(v="constructor"==h)}if(m&&!v){var _=e.constructor,w=t.constructor;_!=w&&"constructor"in e&&"constructor"in t&&!("function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w)&&(m=!1)}return u.delete(e),u.delete(t),m}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t,n){var r=n(81),o=n(63),i="[object Arguments]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var r=n(81),o=n(225),i=n(63),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},function(e,t,n){var r=n(171),o=n(651),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var r=n(377)(Object.keys,Object);e.exports=r},function(e,t,n){var r=n(82)(n(48),"DataView");e.exports=r},function(e,t,n){var r=n(82)(n(48),"Promise");e.exports=r},function(e,t,n){var r=n(82)(n(48),"Set");e.exports=r},function(e,t,n){var r=n(82)(n(48),"WeakMap");e.exports=r},function(e,t,n){var r=n(378),o=n(83);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var i=t[n],a=e[i];t[n]=[i,a,r(a)]}return t}},function(e,t,n){var r=n(368),o=n(91),i=n(380),a=n(228),s=n(378),u=n(379),c=n(105),l=1,p=2;e.exports=function(e,t){return a(e)&&s(t)?u(c(e),t):function(n){var a=o(n,e);return void 0===a&&a===t?i(n,e):r(t,a,l|p)}}},function(e,t,n){var r=n(659),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)}),t});e.exports=a},function(e,t,n){var r=n(263),o=500;e.exports=function(e){var t=r(e,function(e){return n.size===o&&n.clear(),e}),n=t.cache;return t}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var r=n(104),o=n(223),i=n(35),a=n(170),s=n(225),u=n(105);e.exports=function(e,t,n){for(var c=-1,l=(t=r(t,e)).length,p=!1;++c<l;){var f=u(t[c]);if(!(p=null!=e&&n(e,f)))break;e=e[f]}return p||++c!=l?p:!!(l=null==e?0:e.length)&&s(l)&&a(f,l)&&(i(e)||o(e))}},function(e,t,n){var r=n(663),o=n(664),i=n(228),a=n(105);e.exports=function(e){return i(e)?r(a(e)):o(e)}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(173);e.exports=function(e){return function(t){return r(t,e)}}},function(e,t,n){var r=n(666),o=n(168),i=n(381),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:i(n);return u<0&&(u=a(s+u,0)),r(e,o(t,3),u)}},function(e,t){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}},function(e,t,n){var r=n(382),o=1/0,i=17976931348623157e292;e.exports=function(e){return e?(e=r(e))===o||e===-o?(e<0?-1:1)*i:e==e?e:0:0===e?e:0}},function(e,t,n){var r=n(383);e.exports=function(e,t){var n;return r(e,function(e,r,o){return!(n=t(e,r,o))}),!!n}},function(e,t,n){var r=n(670),o=n(83);e.exports=function(e,t){return e&&r(e,t,o)}},function(e,t,n){var r=n(671)();e.exports=r},function(e,t){e.exports=function(e){return function(t,n,r){for(var o=-1,i=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++o];if(!1===n(i[u],u,i))break}return t}}},function(e,t,n){var r=n(103);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var i=n.length,a=t?i:-1,s=Object(n);(t?a--:++a<i)&&!1!==o(s[a],a,s););return n}}},function(e,t){var n={"&":"&amp;",'"':"&quot;","'":"&apos;","<":"&lt;",">":"&gt;"};e.exports=function(e){return e&&e.replace?e.replace(/([&"<>'])/g,function(e,t){return n[t]}):e}},function(e,t,n){e.exports=o;var r=n(230).EventEmitter;function o(){r.call(this)}n(106)(o,r),o.Readable=n(231),o.Writable=n(681),o.Duplex=n(682),o.Transform=n(683),o.PassThrough=n(684),o.Stream=o,o.prototype.pipe=function(e,t){var n=this;function o(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",o),e.on("drain",i),e._isStdio||t&&!1===t.end||(n.on("end",s),n.on("close",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(l(),0===r.listenerCount(this,"error"))throw e}function l(){n.removeListener("data",o),e.removeListener("drain",i),n.removeListener("end",s),n.removeListener("close",u),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("error",c),e.on("error",c),n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e}},function(e,t){},function(e,t,n){"use strict";var r=n(175).Buffer,o=n(677);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,u=1,c={},l=!1,p=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick(function(){d(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(o=p.documentElement,r=function(e){var t=p.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return c[u]=o,r(u),u++},f.clearImmediate=h}function h(e){delete c[e]}function d(e){if(l)setTimeout(d,0,e);else{var t=c[e];if(t){l=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{h(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(42),n(72))},function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(this,n(42))},function(e,t,n){"use strict";e.exports=i;var r=n(390),o=n(134);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(106),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){e.exports=n(232)},function(e,t,n){e.exports=n(84)},function(e,t,n){e.exports=n(231).Transform},function(e,t,n){e.exports=n(231).PassThrough},function(e,t,n){"use strict";var r=n(686),o=Math.abs,i=Math.floor;e.exports=function(e){return isNaN(e)?0:0!==(e=Number(e))&&isFinite(e)?r(e)*i(o(e)):e}},function(e,t,n){"use strict";e.exports=n(687)()?Math.sign:n(688)},function(e,t,n){"use strict";e.exports=function(){var e=Math.sign;return"function"==typeof e&&(1===e(10)&&-1===e(-20))}},function(e,t,n){"use strict";e.exports=function(e){return e=Number(e),isNaN(e)||0===e?e:e>0?1:-1}},function(e,t,n){"use strict";var r=n(73),o=n(176),i=n(87),a=n(691),s=n(393);e.exports=function e(t){var n,u,c;if(r(t),(n=Object(arguments[1])).async&&n.promise)throw new Error("Options 'async' and 'promise' cannot be used together");return hasOwnProperty.call(t,"__memoized__")&&!n.force?t:(u=s(n.length,t.length,n.async&&i.async),c=a(t,u,n),o(i,function(e,t){n[t]&&e(n[t],c,n)}),e.__profiler__&&e.__profiler__(c),c.updateEnv(),c.memoized)}},function(e,t,n){"use strict";var r=n(73),o=n(107),i=Function.prototype.bind,a=Function.prototype.call,s=Object.keys,u=Object.prototype.propertyIsEnumerable;e.exports=function(e,t){return function(n,c){var l,p=arguments[2],f=arguments[3];return n=Object(o(n)),r(c),l=s(n),f&&l.sort("function"==typeof f?i.call(f,n):void 0),"function"!=typeof e&&(e=l[e]),a.call(e,l,function(e,r){return u.call(n,e)?a.call(c,p,n[e],e,n,r):t})}}},function(e,t,n){"use strict";var r=n(692),o=n(395),i=n(177),a=n(702).methods,s=n(703),u=n(715),c=Function.prototype.apply,l=Function.prototype.call,p=Object.create,f=Object.defineProperties,h=a.on,d=a.emit;e.exports=function(e,t,n){var a,m,v,g,y,b,_,w,x,E,S,C,k,O,A,T=p(null);return m=!1!==t?t:isNaN(e.length)?1:e.length,n.normalizer&&(E=u(n.normalizer),v=E.get,g=E.set,y=E.delete,b=E.clear),null!=n.resolvers&&(A=s(n.resolvers)),O=v?o(function(t){var n,o,i=arguments;if(A&&(i=A(i)),null!==(n=v(i))&&hasOwnProperty.call(T,n))return S&&a.emit("get",n,i,this),T[n];if(o=1===i.length?l.call(e,this,i[0]):c.call(e,this,i),null===n){if(null!==(n=v(i)))throw r("Circular invocation","CIRCULAR_INVOCATION");n=g(i)}else if(hasOwnProperty.call(T,n))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[n]=o,C&&a.emit("set",n,null,o),o},m):0===t?function(){var t;if(hasOwnProperty.call(T,"data"))return S&&a.emit("get","data",arguments,this),T.data;if(t=arguments.length?c.call(e,this,arguments):l.call(e,this),hasOwnProperty.call(T,"data"))throw r("Circular invocation","CIRCULAR_INVOCATION");return T.data=t,C&&a.emit("set","data",null,t),t}:function(t){var n,o,i=arguments;if(A&&(i=A(arguments)),o=String(i[0]),hasOwnProperty.call(T,o))return S&&a.emit("get",o,i,this),T[o];if(n=1===i.length?l.call(e,this,i[0]):c.call(e,this,i),hasOwnProperty.call(T,o))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[o]=n,C&&a.emit("set",o,null,n),n},a={original:e,memoized:O,profileName:n.profileName,get:function(e){return A&&(e=A(e)),v?v(e):String(e[0])},has:function(e){return hasOwnProperty.call(T,e)},delete:function(e){var t;hasOwnProperty.call(T,e)&&(y&&y(e),t=T[e],delete T[e],k&&a.emit("delete",e,t))},clear:function(){var e=T;b&&b(),T=p(null),a.emit("clear",e)},on:function(e,t){return"get"===e?S=!0:"set"===e?C=!0:"delete"===e&&(k=!0),h.call(this,e,t)},emit:d,updateEnv:function(){e=a.original}},_=v?o(function(e){var t,n=arguments;A&&(n=A(n)),null!==(t=v(n))&&a.delete(t)},m):0===t?function(){return a.delete("data")}:function(e){return A&&(e=A(arguments)[0]),a.delete(e)},w=o(function(){var e,n=arguments;return 0===t?T.data:(A&&(n=A(n)),e=v?v(n):String(n[0]),T[e])}),x=o(function(){var e,n=arguments;return 0===t?a.has("data"):(A&&(n=A(n)),null!==(e=v?v(n):String(n[0]))&&a.has(e))}),f(O,{__memoized__:i(!0),delete:i(_),clear:i(a.clear),_get:i(w),_has:i(x)}),a}},function(e,t,n){"use strict";var r=n(394),o=n(698),i=n(85),a=Error.captureStackTrace;t=e.exports=function(e){var n=new Error(e),s=arguments[1],u=arguments[2];return i(u)||o(s)&&(u=s,s=null),i(u)&&r(n,u),i(s)&&(n.code=s),a&&a(n,t),n}},function(e,t,n){"use strict";e.exports=function(){var e,t=Object.assign;return"function"==typeof t&&(t(e={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")}},function(e,t,n){"use strict";var r=n(695),o=n(107),i=Math.max;e.exports=function(e,t){var n,a,s,u=i(arguments.length,2);for(e=Object(o(e)),s=function(r){try{e[r]=t[r]}catch(e){n||(n=e)}},a=1;a<u;++a)t=arguments[a],r(t).forEach(s);if(void 0!==n)throw n;return e}},function(e,t,n){"use strict";e.exports=n(696)()?Object.keys:n(697)},function(e,t,n){"use strict";e.exports=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}},function(e,t,n){"use strict";var r=n(85),o=Object.keys;e.exports=function(e){return o(r(e)?Object(e):e)}},function(e,t,n){"use strict";var r=n(85),o={function:!0,object:!0};e.exports=function(e){return r(e)&&o[typeof e]||!1}},function(e,t,n){"use strict";e.exports=n(700)()?String.prototype.contains:n(701)},function(e,t,n){"use strict";var r="razdwatrzy";e.exports=function(){return"function"==typeof r.contains&&(!0===r.contains("dwa")&&!1===r.contains("foo"))}},function(e,t,n){"use strict";var r=String.prototype.indexOf;e.exports=function(e){return r.call(this,e,arguments[1])>-1}},function(e,t,n){"use strict";var r,o,i,a,s,u,c,l=n(177),p=n(73),f=Function.prototype.apply,h=Function.prototype.call,d=Object.create,m=Object.defineProperty,v=Object.defineProperties,g=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return p(t),o=this,r.call(this,e,n=function(){i.call(o,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:r=function(e,t){var n;return p(t),g.call(this,"__ee__")?n=this.__ee__:(n=y.value=d(null),m(this,"__ee__",y),y.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:o,off:i=function(e,t){var n,r,o,i;if(p(t),!g.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(r=n[e]))for(i=0;o=r[i];++i)o!==t&&o.__eeOnceListener__!==t||(2===r.length?n[e]=r[i?0:1]:r.splice(i,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},emit:a=function(e){var t,n,r,o,i;if(g.call(this,"__ee__")&&(o=this.__ee__[e]))if("object"==typeof o){for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];for(o=o.slice(),t=0;r=o[t];++t)f.call(r,this,i)}else switch(arguments.length){case 1:h.call(o,this);break;case 2:h.call(o,this,arguments[1]);break;case 3:h.call(o,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];f.call(o,this,i)}}},u={on:l(r),once:l(o),off:l(i),emit:l(a)},c=v({},u),e.exports=t=function(e){return null==e?d(c):v(Object(e),u)},t.methods=s},function(e,t,n){"use strict";var r,o=n(704),i=n(85),a=n(73),s=Array.prototype.slice;r=function(e){return this.map(function(t,n){return t?t(e[n]):e[n]}).concat(s.call(e,this.length))},e.exports=function(e){return(e=o(e)).forEach(function(e){i(e)&&a(e)}),r.bind(e)}},function(e,t,n){"use strict";var r=n(234),o=Array.isArray;e.exports=function(e){return o(e)?e:r(e)}},function(e,t,n){"use strict";e.exports=function(){var e,t,n=Array.from;return"function"==typeof n&&(t=n(e=["raz","dwa"]),Boolean(t&&t!==e&&"dwa"===t[1]))}},function(e,t,n){"use strict";var r=n(707).iterator,o=n(712),i=n(713),a=n(86),s=n(73),u=n(107),c=n(85),l=n(714),p=Array.isArray,f=Function.prototype.call,h={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;e.exports=function(e){var t,n,m,v,g,y,b,_,w,x,E=arguments[1],S=arguments[2];if(e=Object(u(e)),c(E)&&s(E),this&&this!==Array&&i(this))t=this;else{if(!E){if(o(e))return 1!==(g=e.length)?Array.apply(null,e):((v=new Array(1))[0]=e[0],v);if(p(e)){for(v=new Array(g=e.length),n=0;n<g;++n)v[n]=e[n];return v}}v=[]}if(!p(e))if(void 0!==(w=e[r])){for(b=s(w).call(e),t&&(v=new t),_=b.next(),n=0;!_.done;)x=E?f.call(E,S,_.value,n):_.value,t?(h.value=x,d(v,n,h)):v[n]=x,_=b.next(),++n;g=n}else if(l(e)){for(g=e.length,t&&(v=new t),n=0,m=0;n<g;++n)x=e[n],n+1<g&&(y=x.charCodeAt(0))>=55296&&y<=56319&&(x+=e[++n]),x=E?f.call(E,S,x,m):x,t?(h.value=x,d(v,m,h)):v[m]=x,++m;g=m}if(void 0===g)for(g=a(e.length),t&&(v=new t(g)),n=0;n<g;++n)x=E?f.call(E,S,e[n],n):e[n],t?(h.value=x,d(v,n,h)):v[n]=x;return t&&(h.value=null,v.length=g),v}},function(e,t,n){"use strict";e.exports=n(708)()?Symbol:n(709)},function(e,t,n){"use strict";var r={object:!0,symbol:!0};e.exports=function(){var e;if("function"!=typeof Symbol)return!1;e=Symbol("test symbol");try{String(e)}catch(e){return!1}return!!r[typeof Symbol.iterator]&&(!!r[typeof Symbol.toPrimitive]&&!!r[typeof Symbol.toStringTag])}},function(e,t,n){"use strict";var r,o,i,a,s=n(177),u=n(710),c=Object.create,l=Object.defineProperties,p=Object.defineProperty,f=Object.prototype,h=c(null);if("function"==typeof Symbol){r=Symbol;try{String(r()),a=!0}catch(e){}}var d,m=(d=c(null),function(e){for(var t,n,r=0;d[e+(r||"")];)++r;return d[e+=r||""]=!0,p(f,t="@@"+e,s.gs(null,function(e){n||(n=!0,p(this,t,s(e)),n=!1)})),t});i=function(e){if(this instanceof i)throw new TypeError("Symbol is not a constructor");return o(e)},e.exports=o=function e(t){var n;if(this instanceof e)throw new TypeError("Symbol is not a constructor");return a?r(t):(n=c(i.prototype),t=void 0===t?"":String(t),l(n,{__description__:s("",t),__name__:s("",m(t))}))},l(o,{for:s(function(e){return h[e]?h[e]:h[e]=o(String(e))}),keyFor:s(function(e){var t;for(t in u(e),h)if(h[t]===e)return t}),hasInstance:s("",r&&r.hasInstance||o("hasInstance")),isConcatSpreadable:s("",r&&r.isConcatSpreadable||o("isConcatSpreadable")),iterator:s("",r&&r.iterator||o("iterator")),match:s("",r&&r.match||o("match")),replace:s("",r&&r.replace||o("replace")),search:s("",r&&r.search||o("search")),species:s("",r&&r.species||o("species")),split:s("",r&&r.split||o("split")),toPrimitive:s("",r&&r.toPrimitive||o("toPrimitive")),toStringTag:s("",r&&r.toStringTag||o("toStringTag")),unscopables:s("",r&&r.unscopables||o("unscopables"))}),l(i.prototype,{constructor:s(o),toString:s("",function(){return this.__name__})}),l(o.prototype,{toString:s(function(){return"Symbol ("+u(this).__description__+")"}),valueOf:s(function(){return u(this)})}),p(o.prototype,o.toPrimitive,s("",function(){var e=u(this);return"symbol"==typeof e?e:e.toString()})),p(o.prototype,o.toStringTag,s("c","Symbol")),p(i.prototype,o.toStringTag,s("c",o.prototype[o.toStringTag])),p(i.prototype,o.toPrimitive,s("c",o.prototype[o.toPrimitive]))},function(e,t,n){"use strict";var r=n(711);e.exports=function(e){if(!r(e))throw new TypeError(e+" is not a symbol");return e}},function(e,t,n){"use strict";e.exports=function(e){return!!e&&("symbol"==typeof e||!!e.constructor&&("Symbol"===e.constructor.name&&"Symbol"===e[e.constructor.toStringTag]))}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call(function(){return arguments}());e.exports=function(e){return r.call(e)===o}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call(n(392));e.exports=function(e){return"function"==typeof e&&r.call(e)===o}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call("");e.exports=function(e){return"string"==typeof e||e&&"object"==typeof e&&(e instanceof String||r.call(e)===o)||!1}},function(e,t,n){"use strict";var r=n(73);e.exports=function(e){var t;return"function"==typeof e?{set:e,get:e}:(t={get:r(e.get)},void 0!==e.set?(t.set=r(e.set),e.delete&&(t.delete=r(e.delete)),e.clear&&(t.clear=r(e.clear)),t):(t.set=t.get,t))}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r=e.length;if(!r)return"\ 2";for(t=String(e[n=0]);--r;)t+="\ 1"+e[++n];return t}},function(e,t,n){"use strict";e.exports=function(e){return e?function(t){for(var n=String(t[0]),r=0,o=e;--o;)n+="\ 1"+t[++r];return n}:function(){return""}}},function(e,t,n){"use strict";var r=n(235),o=Object.create;e.exports=function(){var e=0,t=[],n=o(null);return{get:function(e){var n,o=0,i=t,a=e.length;if(0===a)return i[a]||null;if(i=i[a]){for(;o<a-1;){if(-1===(n=r.call(i[0],e[o])))return null;i=i[1][n],++o}return-1===(n=r.call(i[0],e[o]))?null:i[1][n]||null}return null},set:function(o){var i,a=0,s=t,u=o.length;if(0===u)s[u]=++e;else{for(s[u]||(s[u]=[[],[]]),s=s[u];a<u-1;)-1===(i=r.call(s[0],o[a]))&&(i=s[0].push(o[a])-1,s[1].push([[],[]])),s=s[1][i],++a;-1===(i=r.call(s[0],o[a]))&&(i=s[0].push(o[a])-1),s[1][i]=++e}return n[e]=o,e},delete:function(e){var o,i=0,a=t,s=n[e],u=s.length,c=[];if(0===u)delete a[u];else if(a=a[u]){for(;i<u-1;){if(-1===(o=r.call(a[0],s[i])))return;c.push(a,o),a=a[1][o],++i}if(-1===(o=r.call(a[0],s[i])))return;for(e=a[1][o],a[0].splice(o,1),a[1].splice(o,1);!a[0].length&&c.length;)o=c.pop(),(a=c.pop())[0].splice(o,1),a[1].splice(o,1)}delete n[e]},clear:function(){t=[],n=o(null)}}}},function(e,t,n){"use strict";e.exports=n(720)()?Number.isNaN:n(721)},function(e,t,n){"use strict";e.exports=function(){var e=Number.isNaN;return"function"==typeof e&&(!e({})&&e(NaN)&&!e(34))}},function(e,t,n){"use strict";e.exports=function(e){return e!=e}},function(e,t,n){"use strict";var r=n(235);e.exports=function(){var e=0,t=[],n=[];return{get:function(e){var o=r.call(t,e[0]);return-1===o?null:n[o]},set:function(r){return t.push(r[0]),n.push(++e),e},delete:function(e){var o=r.call(n,e);-1!==o&&(t.splice(o,1),n.splice(o,1))},clear:function(){t=[],n=[]}}}},function(e,t,n){"use strict";var r=n(235),o=Object.create;e.exports=function(e){var t=0,n=[[],[]],i=o(null);return{get:function(t){for(var o,i=0,a=n;i<e-1;){if(-1===(o=r.call(a[0],t[i])))return null;a=a[1][o],++i}return-1===(o=r.call(a[0],t[i]))?null:a[1][o]||null},set:function(o){for(var a,s=0,u=n;s<e-1;)-1===(a=r.call(u[0],o[s]))&&(a=u[0].push(o[s])-1,u[1].push([[],[]])),u=u[1][a],++s;return-1===(a=r.call(u[0],o[s]))&&(a=u[0].push(o[s])-1),u[1][a]=++t,i[t]=o,t},delete:function(t){for(var o,a=0,s=n,u=[],c=i[t];a<e-1;){if(-1===(o=r.call(s[0],c[a])))return;u.push(s,o),s=s[1][o],++a}if(-1!==(o=r.call(s[0],c[a]))){for(t=s[1][o],s[0].splice(o,1),s[1].splice(o,1);!s[0].length&&u.length;)o=u.pop(),(s=u.pop())[0].splice(o,1),s[1].splice(o,1);delete i[t]}},clear:function(){n=[[],[]],i=o(null)}}}},function(e,t,n){"use strict";var r=n(234),o=n(397),i=n(396),a=n(395),s=n(236),u=Array.prototype.slice,c=Function.prototype.apply,l=Object.create;n(87).async=function(e,t){var n,p,f,h=l(null),d=l(null),m=t.memoized,v=t.original;t.memoized=a(function(e){var t=arguments,r=t[t.length-1];return"function"==typeof r&&(n=r,t=u.call(t,0,-1)),m.apply(p=this,f=t)},m);try{i(t.memoized,m)}catch(e){}t.on("get",function(e){var r,o,i;if(n){if(h[e])return"function"==typeof h[e]?h[e]=[h[e],n]:h[e].push(n),void(n=null);r=n,o=p,i=f,n=p=f=null,s(function(){var a;hasOwnProperty.call(d,e)?(a=d[e],t.emit("getasync",e,i,o),c.call(r,a.context,a.args)):(n=r,p=o,f=i,m.apply(o,i))})}}),t.original=function(){var e,o,i,a;return n?(e=r(arguments),o=function e(n){var o,i,u=e.id;if(null!=u){if(delete e.id,o=h[u],delete h[u],o)return i=r(arguments),t.has(u)&&(n?t.delete(u):(d[u]={context:this,args:i},t.emit("setasync",u,"function"==typeof o?1:o.length))),"function"==typeof o?a=c.call(o,this,i):o.forEach(function(e){a=c.call(e,this,i)},this),a}else s(c.bind(e,this,arguments))},i=n,n=p=f=null,e.push(o),a=c.call(v,this,e),o.cb=i,n=o,a):c.call(v,this,arguments)},t.on("set",function(e){n?(h[e]?"function"==typeof h[e]?h[e]=[h[e],n.cb]:h[e].push(n.cb):h[e]=n.cb,delete n.cb,n.id=e,n=null):t.delete(e)}),t.on("delete",function(e){var n;hasOwnProperty.call(h,e)||d[e]&&(n=d[e],delete d[e],t.emit("deleteasync",e,u.call(n.args,1)))}),t.on("clear",function(){var e=d;d=l(null),t.emit("clearasync",o(e,function(e){return u.call(e.args,1)}))})}},function(e,t,n){"use strict";var r=n(397),o=n(726),i=n(727),a=n(729),s=n(398),u=n(236),c=Object.create,l=o("then","then:finally","done","done:finally");n(87).promise=function(e,t){var n=c(null),o=c(null),p=c(null);if(!0===e)e=null;else if(e=i(e),!l[e])throw new TypeError("'"+a(e)+"' is not valid promise mode");t.on("set",function(r,i,a){var c=!1;if(!s(a))return o[r]=a,void t.emit("setasync",r,1);n[r]=1,p[r]=a;var l=function(e){var i=n[r];if(c)throw new Error("Memoizee error: Detected unordered then|done & finally resolution, which in turn makes proper detection of success/failure impossible (when in 'done:finally' mode)\nConsider to rely on 'then' or 'done' mode instead.");i&&(delete n[r],o[r]=e,t.emit("setasync",r,i))},f=function(){c=!0,n[r]&&(delete n[r],delete p[r],t.delete(r))},h=e;if(h||(h="then"),"then"===h)a.then(function(e){u(l.bind(this,e))},function(){u(f)});else if("done"===h){if("function"!=typeof a.done)throw new Error("Memoizee error: Retrieved promise does not implement 'done' in 'done' mode");a.done(l,f)}else if("done:finally"===h){if("function"!=typeof a.done)throw new Error("Memoizee error: Retrieved promise does not implement 'done' in 'done:finally' mode");if("function"!=typeof a.finally)throw new Error("Memoizee error: Retrieved promise does not implement 'finally' in 'done:finally' mode");a.done(l),a.finally(f)}}),t.on("get",function(e,r,o){var i;if(n[e])++n[e];else{i=p[e];var a=function(){t.emit("getasync",e,r,o)};s(i)?"function"==typeof i.done?i.done(a):i.then(function(){u(a)}):a()}}),t.on("delete",function(e){if(delete p[e],n[e])delete n[e];else if(hasOwnProperty.call(o,e)){var r=o[e];delete o[e],t.emit("deleteasync",e,[r])}}),t.on("clear",function(){var e=o;o=c(null),n=c(null),p=c(null),t.emit("clearasync",r(e,function(e){return[e]}))})}},function(e,t,n){"use strict";var r=Array.prototype.forEach,o=Object.create;e.exports=function(e){var t=o(null);return r.call(arguments,function(e){t[e]=!0}),t}},function(e,t,n){"use strict";var r=n(107),o=n(728);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var r=n(233);e.exports=function(e){try{return e&&r(e.toString)?e.toString():String(e)}catch(e){throw new TypeError("Passed argument cannot be stringifed")}}},function(e,t,n){"use strict";var r=n(730),o=/[\n\r\u2028\u2029]/g;e.exports=function(e){var t=r(e);return t.length>100&&(t=t.slice(0,99)+"…"),t=t.replace(o,function(e){return JSON.stringify(e).slice(1,-1)})}},function(e,t,n){"use strict";var r=n(233);e.exports=function(e){try{return e&&r(e.toString)?e.toString():String(e)}catch(e){return"[Non-coercible (to string) value]"}}},function(e,t,n){"use strict";var r=n(73),o=n(176),i=n(87),a=Function.prototype.apply;i.dispose=function(e,t,n){var s;if(r(e),n.async&&i.async||n.promise&&i.promise)return t.on("deleteasync",s=function(t,n){a.call(e,null,n)}),void t.on("clearasync",function(e){o(e,function(e,t){s(t,e)})});t.on("delete",s=function(t,n){e(n)}),t.on("clear",function(e){o(e,function(e,t){s(t,e)})})}},function(e,t,n){"use strict";var r=n(234),o=n(176),i=n(236),a=n(398),s=n(733),u=n(87),c=Function.prototype,l=Math.max,p=Math.min,f=Object.create;u.maxAge=function(e,t,n){var h,d,m,v;(e=s(e))&&(h=f(null),d=n.async&&u.async||n.promise&&u.promise?"async":"",t.on("set"+d,function(n){h[n]=setTimeout(function(){t.delete(n)},e),"function"==typeof h[n].unref&&h[n].unref(),v&&(v[n]&&"nextTick"!==v[n]&&clearTimeout(v[n]),v[n]=setTimeout(function(){delete v[n]},m),"function"==typeof v[n].unref&&v[n].unref())}),t.on("delete"+d,function(e){clearTimeout(h[e]),delete h[e],v&&("nextTick"!==v[e]&&clearTimeout(v[e]),delete v[e])}),n.preFetch&&(m=!0===n.preFetch||isNaN(n.preFetch)?.333:l(p(Number(n.preFetch),1),0))&&(v={},m=(1-m)*e,t.on("get"+d,function(e,o,s){v[e]||(v[e]="nextTick",i(function(){var i;"nextTick"===v[e]&&(delete v[e],t.delete(e),n.async&&(o=r(o)).push(c),i=t.memoized.apply(s,o),n.promise&&a(i)&&("function"==typeof i.done?i.done(c,c):i.then(c,c)))}))})),t.on("clear"+d,function(){o(h,function(e){clearTimeout(e)}),h={},v&&(o(v,function(e){"nextTick"!==e&&clearTimeout(e)}),v={})}))}},function(e,t,n){"use strict";var r=n(86),o=n(734);e.exports=function(e){if((e=r(e))>o)throw new TypeError(e+" exceeds maximum possible timeout");return e}},function(e,t,n){"use strict";e.exports=2147483647},function(e,t,n){"use strict";var r=n(86),o=n(736),i=n(87);i.max=function(e,t,n){var a,s,u;(e=r(e))&&(s=o(e),a=n.async&&i.async||n.promise&&i.promise?"async":"",t.on("set"+a,u=function(e){void 0!==(e=s.hit(e))&&t.delete(e)}),t.on("get"+a,u),t.on("delete"+a,s.delete),t.on("clear"+a,s.clear))}},function(e,t,n){"use strict";var r=n(86),o=Object.create,i=Object.prototype.hasOwnProperty;e.exports=function(e){var t,n=0,a=1,s=o(null),u=o(null),c=0;return e=r(e),{hit:function(r){var o=u[r],l=++c;if(s[l]=r,u[r]=l,!o){if(++n<=e)return;return r=s[a],t(r),r}if(delete s[o],a===o)for(;!i.call(s,++a);)continue},delete:t=function(e){var t=u[e];if(t&&(delete s[t],delete u[e],--n,a===t)){if(!n)return c=0,void(a=1);for(;!i.call(s,++a);)continue}},clear:function(){n=0,a=1,s=o(null),u=o(null),c=0}}}},function(e,t,n){"use strict";var r=n(177),o=n(87),i=Object.create,a=Object.defineProperties;o.refCounter=function(e,t,n){var s,u;s=i(null),u=n.async&&o.async||n.promise&&o.promise?"async":"",t.on("set"+u,function(e,t){s[e]=t||1}),t.on("get"+u,function(e){++s[e]}),t.on("delete"+u,function(e){delete s[e]}),t.on("clear"+u,function(){s={}}),a(t.memoized,{deleteRef:r(function(){var e=t.get(arguments);return null===e?null:s[e]?!--s[e]&&(t.delete(e),!0):null}),getRefCount:r(function(){var e=t.get(arguments);return null===e?0:s[e]?s[e]:0})})}},function(e,t){e.exports=function(e,t,n,r,o){return o(e,function(e,o,i){n=r?(r=!1,e):t(n,e,o,i)}),n}},function(e,t,n){var r=n(14);e.exports=function(e){if(r(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t,n){var r=n(741),o=n(744);e.exports=function(e){if(o(Object(e))||"[object Arguments]"===Object.prototype.toString.call(e))return r(e)}},function(e,t,n){e.exports=n(742)},function(e,t,n){n(97),n(743),e.exports=n(22).Array.from},function(e,t,n){"use strict";var r=n(60),o=n(30),i=n(79),a=n(399),s=n(400),u=n(154),c=n(401),l=n(217);o(o.S+o.F*!n(402)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,o,p,f=i(e),h="function"==typeof this?this:Array,d=arguments.length,m=d>1?arguments[1]:void 0,v=void 0!==m,g=0,y=l(f);if(v&&(m=r(m,d>2?arguments[2]:void 0,2)),null==y||h==Array&&s(y))for(n=new h(t=u(f.length));t>g;g++)c(n,g,v?m(f[g],g):f[g]);else for(p=y.call(f),n=new h;!(o=p.next()).done;g++)c(n,g,v?a(p,m,[o.value,g],!0):o.value);return n.length=g,n}})},function(e,t,n){e.exports=n(745)},function(e,t,n){n(99),n(97),e.exports=n(746)},function(e,t,n){var r=n(162),o=n(34)("iterator"),i=n(98);e.exports=n(22).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(r(t))}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){n(749);var r=n(22).Object;e.exports=function(e,t){return r.defineProperties(e,t)}},function(e,t,n){var r=n(30);r(r.S+r.F*!n(46),"Object",{defineProperties:n(345)})},function(e,t,n){n(751),e.exports=n(22).Object.getOwnPropertyDescriptors},function(e,t,n){var r=n(30),o=n(752),i=n(70),a=n(159),s=n(401);r(r.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,n,r=i(e),u=a.f,c=o(r),l={},p=0;c.length>p;)void 0!==(n=u(r,t=c[p++]))&&s(l,t,n);return l}})},function(e,t,n){var r=n(216),o=n(157),i=n(45),a=n(32).Reflect;e.exports=a&&a.ownKeys||function(e){var t=r.f(i(e)),n=o.f;return n?t.concat(n(e)):t}},function(e,t,n){n(754);var r=n(22).Object;e.exports=function(e,t){return r.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var r=n(70),o=n(159).f;n(208)("getOwnPropertyDescriptor",function(){return function(e,t){return o(r(e),t)}})},function(e,t,n){n(349),e.exports=n(22).Object.getOwnPropertySymbols},function(e,t,n){var r=n(17);e.exports=function(e,t){if(null==e)return{};var n,o,i={},a=r(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(i[n]=e[n]);return i}},function(e,t,n){n(758),e.exports=n(22).Date.now},function(e,t,n){var r=n(30);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(e,t,n){n(160),n(97),n(99),n(760),n(764),n(765),e.exports=n(22).Promise},function(e,t,n){"use strict";var r,o,i,a,s=n(128),u=n(32),c=n(60),l=n(162),p=n(30),f=n(41),h=n(129),d=n(178),m=n(108),v=n(403),g=n(404).set,y=n(762)(),b=n(237),_=n(405),w=n(763),x=n(406),E=u.TypeError,S=u.process,C=S&&S.versions,k=C&&C.v8||"",O=u.Promise,A="process"==l(S),T=function(){},j=o=b.f,P=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[n(34)("species")]=function(e){e(T,T)};return(A||"function"==typeof PromiseRejectionEvent)&&e.then(T)instanceof t&&0!==k.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(e){}}(),I=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},M=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,o=1==e._s,i=0,a=function(t){var n,i,a,s=o?t.ok:t.fail,u=t.resolve,c=t.reject,l=t.domain;try{s?(o||(2==e._h&&D(e),e._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===t.promise?c(E("Promise-chain cycle")):(i=I(n))?i.call(n,u,c):u(n)):c(r)}catch(e){l&&!a&&l.exit(),c(e)}};n.length>i;)a(n[i++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){g.call(u,function(){var t,n,r,o=e._v,i=R(e);if(i&&(t=_(function(){A?S.emit("unhandledRejection",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=A||R(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},R=function(e){return 1!==e._h&&0===(e._a||e._c).length},D=function(e){g.call(u,function(){var t;A?S.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},L=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},U=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E("Promise can't be resolved itself");(t=I(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(U,r,1),c(L,r,1))}catch(e){L.call(r,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){L.call({_w:n,_d:!1},e)}}};P||(O=function(e){d(this,O,"Promise","_h"),h(e),r.call(this);try{e(c(U,this,1),c(L,this,1))}catch(e){L.call(this,e)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(179)(O.prototype,{then:function(e,t){var n=j(v(this,O));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=A?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&M(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(U,e,1),this.reject=c(L,e,1)},b.f=j=function(e){return e===O||e===a?new i(e):o(e)}),p(p.G+p.W+p.F*!P,{Promise:O}),n(131)(O,"Promise"),n(407)("Promise"),a=n(22).Promise,p(p.S+p.F*!P,"Promise",{reject:function(e){var t=j(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(s||!P),"Promise",{resolve:function(e){return x(s&&this===a?O:this,e)}}),p(p.S+p.F*!(P&&n(402)(function(e){O.all(e).catch(T)})),"Promise",{all:function(e){var t=this,n=j(t),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;m(e,!1,function(e){var s=i++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=j(t),r=n.reject,o=_(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(32),o=n(404).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(127)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve(void 0);n=function(){l.then(c)}}else n=function(){o.call(r,c)};else{var p=!0,f=document.createTextNode("");new i(c).observe(f,{characterData:!0}),n=function(){f.data=p=!p}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t,n){var r=n(32).navigator;e.exports=r&&r.userAgent||""},function(e,t,n){"use strict";var r=n(30),o=n(22),i=n(32),a=n(403),s=n(406);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(30),o=n(237),i=n(405);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){var r=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function u(e,t,n,r){var o=t&&t.prototype instanceof m?t:m,i=Object.create(o.prototype),a=new O(r||[]);return i._invoke=function(e,t,n){var r=l;return function(o,i){if(r===f)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return T()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var u=c(e,t,n);if("normal"===u.type){if(r=n.done?h:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(e,n,a),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var l="suspendedStart",p="suspendedYield",f="executing",h="completed",d={};function m(){}function v(){}function g(){}var y={};y[i]=function(){return this};var b=Object.getPrototypeOf,_=b&&b(b(A([])));_&&_!==n&&r.call(_,i)&&(y=_);var w=g.prototype=m.prototype=Object.create(y);function x(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function E(e){var t;this._invoke=function(n,o){function i(){return new Promise(function(t,i){!function t(n,o,i,a){var s=c(e[n],e,o);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==typeof l&&r.call(l,"__await")?Promise.resolve(l.__await).then(function(e){t("next",e,i,a)},function(e){t("throw",e,i,a)}):Promise.resolve(l).then(function(e){u.value=e,i(u)},function(e){return t("throw",e,i,a)})}a(s.arg)}(n,o,t,i)})}return t=t?t.then(i,i):i()}}function S(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=c(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function A(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:T}}function T(){return{value:t,done:!0}}return v.prototype=w.constructor=g,g.constructor=v,g[s]=v.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,s in e||(e[s]="GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},x(E.prototype),E.prototype[a]=function(){return this},e.AsyncIterator=E,e.async=function(t,n,r,o){var i=new E(u(t,n,r,o));return e.isGeneratorFunction(n)?i:i.next().then(function(e){return e.done?e.value:i.next()})},x(w),w[s]="Generator",w[i]=function(){return this},w.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=A,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(k),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),d}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=n(768),o=n(787);function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=n(31),e.exports.Schema=n(110),e.exports.FAILSAFE_SCHEMA=n(238),e.exports.JSON_SCHEMA=n(409),e.exports.CORE_SCHEMA=n(408),e.exports.DEFAULT_SAFE_SCHEMA=n(136),e.exports.DEFAULT_FULL_SCHEMA=n(180),e.exports.load=r.load,e.exports.loadAll=r.loadAll,e.exports.safeLoad=r.safeLoad,e.exports.safeLoadAll=r.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(135),e.exports.MINIMAL_SCHEMA=n(238),e.exports.SAFE_SCHEMA=n(136),e.exports.DEFAULT_SCHEMA=n(180),e.exports.scan=i("scan"),e.exports.parse=i("parse"),e.exports.compose=i("compose"),e.exports.addConstructor=i("addConstructor")},function(e,t,n){"use strict";var r=n(109),o=n(135),i=n(769),a=n(136),s=n(180),u=Object.prototype.hasOwnProperty,c=1,l=2,p=3,f=4,h=1,d=2,m=3,v=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[\x85\u2028\u2029]/,y=/[,\[\]\{\}]/,b=/^(?:!|!!|![a-z\-]+!)$/i,_=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function w(e){return Object.prototype.toString.call(e)}function x(e){return 10===e||13===e}function E(e){return 9===e||32===e}function S(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function k(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function O(e){return 48===e?"\0":97===e?"\a":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"\e":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"\85":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function A(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var T=new Array(256),j=new Array(256),P=0;P<256;P++)T[P]=O(P)?1:0,j[P]=O(P);function I(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function M(e,t){return new o(t,new i(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function N(e,t){throw M(e,t)}function R(e,t){e.onWarning&&e.onWarning.call(null,M(e,t))}var D={YAML:function(e,t,n){var r,o,i;null!==e.version&&N(e,"duplication of %YAML directive"),1!==n.length&&N(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&N(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),i=parseInt(r[2],10),1!==o&&N(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=i<2,1!==i&&2!==i&&R(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,o;2!==n.length&&N(e,"TAG directive accepts exactly two arguments"),r=n[0],o=n[1],b.test(r)||N(e,"ill-formed tag handle (first argument) of the TAG directive"),u.call(e.tagMap,r)&&N(e,'there is a previously declared suffix for "'+r+'" tag handle'),_.test(o)||N(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=o}};function L(e,t,n,r){var o,i,a,s;if(t<n){if(s=e.input.slice(t,n),r)for(o=0,i=s.length;o<i;o+=1)9===(a=s.charCodeAt(o))||32<=a&&a<=1114111||N(e,"expected valid JSON character");else v.test(s)&&N(e,"the stream contains non-printable characters");e.result+=s}}function U(e,t,n,o){var i,a,s,c;for(r.isObject(n)||N(e,"cannot merge mappings; the provided source object is unacceptable"),s=0,c=(i=Object.keys(n)).length;s<c;s+=1)a=i[s],u.call(t,a)||(t[a]=n[a],o[a]=!0)}function q(e,t,n,r,o,i,a,s){var c,l;if(Array.isArray(o))for(c=0,l=(o=Array.prototype.slice.call(o)).length;c<l;c+=1)Array.isArray(o[c])&&N(e,"nested arrays are not supported inside keys"),"object"==typeof o&&"[object Object]"===w(o[c])&&(o[c]="[object Object]");if("object"==typeof o&&"[object Object]"===w(o)&&(o="[object Object]"),o=String(o),null===t&&(t={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(i))for(c=0,l=i.length;c<l;c+=1)U(e,t,i[c],n);else U(e,t,i,n);else e.json||u.call(n,o)||!u.call(t,o)||(e.line=a||e.line,e.position=s||e.position,N(e,"duplicated mapping key")),t[o]=i,delete n[o];return t}function F(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):N(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function z(e,t,n){for(var r=0,o=e.input.charCodeAt(e.position);0!==o;){for(;E(o);)o=e.input.charCodeAt(++e.position);if(t&&35===o)do{o=e.input.charCodeAt(++e.position)}while(10!==o&&13!==o&&0!==o);if(!x(o))break;for(F(e),o=e.input.charCodeAt(e.position),r++,e.lineIndent=0;32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position)}return-1!==n&&0!==r&&e.lineIndent<n&&R(e,"deficient indentation"),r}function B(e){var t,n=e.position;return!(45!==(t=e.input.charCodeAt(n))&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,0!==(t=e.input.charCodeAt(n))&&!S(t)))}function V(e,t){1===t?e.result+=" ":t>1&&(e.result+=r.repeat("\n",t-1))}function H(e,t){var n,r,o=e.tag,i=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),r=e.input.charCodeAt(e.position);0!==r&&45===r&&S(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,z(e,!0,-1)&&e.lineIndent<=t)a.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,Y(e,t,p,!1,!0),a.push(e.result),z(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)N(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=o,e.anchor=i,e.kind="sequence",e.result=a,!0)}function W(e){var t,n,r,o,i=!1,a=!1;if(33!==(o=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&N(e,"duplication of a tag property"),60===(o=e.input.charCodeAt(++e.position))?(i=!0,o=e.input.charCodeAt(++e.position)):33===o?(a=!0,n="!!",o=e.input.charCodeAt(++e.position)):n="!",t=e.position,i){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&62!==o);e.position<e.length?(r=e.input.slice(t,e.position),o=e.input.charCodeAt(++e.position)):N(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==o&&!S(o);)33===o&&(a?N(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),b.test(n)||N(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),o=e.input.charCodeAt(++e.position);r=e.input.slice(t,e.position),y.test(r)&&N(e,"tag suffix cannot contain flow indicator characters")}return r&&!_.test(r)&&N(e,"tag name cannot contain such characters: "+r),i?e.tag=r:u.call(e.tagMap,n)?e.tag=e.tagMap[n]+r:"!"===n?e.tag="!"+r:"!!"===n?e.tag="tag:yaml.org,2002:"+r:N(e,'undeclared tag handle "'+n+'"'),!0}function J(e){var t,n;if(38!==(n=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&N(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!S(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function Y(e,t,n,o,i){var a,s,v,g,y,b,_,w,O=1,P=!1,I=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=s=v=f===n||p===n,o&&z(e,!0,-1)&&(P=!0,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)),1===O)for(;W(e)||J(e);)z(e,!0,-1)?(P=!0,v=a,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)):v=!1;if(v&&(v=P||i),1!==O&&f!==n||(_=c===n||l===n?t:t+1,w=e.position-e.lineStart,1===O?v&&(H(e,w)||function(e,t,n){var r,o,i,a,s,u=e.tag,c=e.anchor,p={},h={},d=null,m=null,v=null,g=!1,y=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),s=e.input.charCodeAt(e.position);0!==s;){if(r=e.input.charCodeAt(e.position+1),i=e.line,a=e.position,63!==s&&58!==s||!S(r)){if(!Y(e,n,l,!1,!0))break;if(e.line===i){for(s=e.input.charCodeAt(e.position);E(s);)s=e.input.charCodeAt(++e.position);if(58===s)S(s=e.input.charCodeAt(++e.position))||N(e,"a whitespace character is expected after the key-value separator within a block mapping"),g&&(q(e,p,h,d,m,null),d=m=v=null),y=!0,g=!1,o=!1,d=e.tag,m=e.result;else{if(!y)return e.tag=u,e.anchor=c,!0;N(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return e.tag=u,e.anchor=c,!0;N(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(g&&(q(e,p,h,d,m,null),d=m=v=null),y=!0,g=!0,o=!0):g?(g=!1,o=!0):N(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=r;if((e.line===i||e.lineIndent>t)&&(Y(e,t,f,!0,o)&&(g?m=e.result:v=e.result),g||(q(e,p,h,d,m,v,i,a),d=m=v=null),z(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)N(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return g&&q(e,p,h,d,m,null),y&&(e.tag=u,e.anchor=c,e.kind="mapping",e.result=p),y}(e,w,_))||function(e,t){var n,r,o,i,a,s,u,l,p,f,h=!0,d=e.tag,m=e.anchor,v={};if(91===(f=e.input.charCodeAt(e.position)))o=93,s=!1,r=[];else{if(123!==f)return!1;o=125,s=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),f=e.input.charCodeAt(++e.position);0!==f;){if(z(e,!0,t),(f=e.input.charCodeAt(e.position))===o)return e.position++,e.tag=d,e.anchor=m,e.kind=s?"mapping":"sequence",e.result=r,!0;h||N(e,"missed comma between flow collection entries"),p=null,i=a=!1,63===f&&S(e.input.charCodeAt(e.position+1))&&(i=a=!0,e.position++,z(e,!0,t)),n=e.line,Y(e,t,c,!1,!0),l=e.tag,u=e.result,z(e,!0,t),f=e.input.charCodeAt(e.position),!a&&e.line!==n||58!==f||(i=!0,f=e.input.charCodeAt(++e.position),z(e,!0,t),Y(e,t,c,!1,!0),p=e.result),s?q(e,r,v,l,u,p):i?r.push(q(e,null,v,l,u,p)):r.push(u),z(e,!0,t),44===(f=e.input.charCodeAt(e.position))?(h=!0,f=e.input.charCodeAt(++e.position)):h=!1}N(e,"unexpected end of the stream within a flow collection")}(e,_)?I=!0:(s&&function(e,t){var n,o,i,a,s,u=h,c=!1,l=!1,p=t,f=0,v=!1;if(124===(a=e.input.charCodeAt(e.position)))o=!1;else{if(62!==a)return!1;o=!0}for(e.kind="scalar",e.result="";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)h===u?u=43===a?m:d:N(e,"repeat of a chomping mode identifier");else{if(!((i=48<=(s=a)&&s<=57?s-48:-1)>=0))break;0===i?N(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?N(e,"repeat of an indentation width identifier"):(p=t+i-1,l=!0)}if(E(a)){do{a=e.input.charCodeAt(++e.position)}while(E(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!x(a)&&0!==a)}for(;0!==a;){for(F(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!l||e.lineIndent<p)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>p&&(p=e.lineIndent),x(a))f++;else{if(e.lineIndent<p){u===m?e.result+=r.repeat("\n",c?1+f:f):u===h&&c&&(e.result+="\n");break}for(o?E(a)?(v=!0,e.result+=r.repeat("\n",c?1+f:f)):v?(v=!1,e.result+=r.repeat("\n",f+1)):0===f?c&&(e.result+=" "):e.result+=r.repeat("\n",f):e.result+=r.repeat("\n",c?1+f:f),c=!0,l=!0,f=0,n=e.position;!x(a)&&0!==a;)a=e.input.charCodeAt(++e.position);L(e,n,e.position,!1)}}return!0}(e,_)||function(e,t){var n,r,o;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(L(e,r,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;r=e.position,e.position++,o=e.position}else x(n)?(L(e,r,o,!0),V(e,z(e,!1,t)),r=o=e.position):e.position===e.lineStart&&B(e)?N(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);N(e,"unexpected end of the stream within a single quoted scalar")}(e,_)||function(e,t){var n,r,o,i,a,s,u;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return L(e,n,e.position,!0),e.position++,!0;if(92===s){if(L(e,n,e.position,!0),x(s=e.input.charCodeAt(++e.position)))z(e,!1,t);else if(s<256&&T[s])e.result+=j[s],e.position++;else if((a=120===(u=s)?2:117===u?4:85===u?8:0)>0){for(o=a,i=0;o>0;o--)(a=k(s=e.input.charCodeAt(++e.position)))>=0?i=(i<<4)+a:N(e,"expected hexadecimal character");e.result+=A(i),e.position++}else N(e,"unknown escape sequence");n=r=e.position}else x(s)?(L(e,n,r,!0),V(e,z(e,!1,t)),n=r=e.position):e.position===e.lineStart&&B(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}(e,_)?I=!0:!function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!S(r)&&!C(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||N(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],z(e,!0,-1),!0}(e)?function(e,t,n){var r,o,i,a,s,u,c,l,p=e.kind,f=e.result;if(S(l=e.input.charCodeAt(e.position))||C(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(S(r=e.input.charCodeAt(e.position+1))||n&&C(r)))return!1;for(e.kind="scalar",e.result="",o=i=e.position,a=!1;0!==l;){if(58===l){if(S(r=e.input.charCodeAt(e.position+1))||n&&C(r))break}else if(35===l){if(S(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&B(e)||n&&C(l))break;if(x(l)){if(s=e.line,u=e.lineStart,c=e.lineIndent,z(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=i,e.line=s,e.lineStart=u,e.lineIndent=c;break}}a&&(L(e,o,i,!1),V(e,e.line-s),o=i=e.position,a=!1),E(l)||(i=e.position+1),l=e.input.charCodeAt(++e.position)}return L(e,o,i,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,_,c===n)&&(I=!0,null===e.tag&&(e.tag="?")):(I=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===O&&(I=v&&H(e,w))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(g=0,y=e.implicitTypes.length;g<y;g+=1)if((b=e.implicitTypes[g]).resolve(e.result)){e.result=b.construct(e.result),e.tag=b.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else u.call(e.typeMap[e.kind||"fallback"],e.tag)?(b=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&b.kind!==e.kind&&N(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+b.kind+'", not "'+e.kind+'"'),b.resolve(e.result)?(e.result=b.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||I}function K(e){var t,n,r,o,i=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(z(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!S(o);)o=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&N(e,"directive name must not be less than one character in length");0!==o;){for(;E(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!x(o));break}if(x(o))break;for(t=e.position;0!==o&&!S(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==o&&F(e),u.call(D,n)?D[n](e,n,r):R(e,'unknown document directive "'+n+'"')}z(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,z(e,!0,-1)):a&&N(e,"directives end mark is expected"),Y(e,e.lineIndent-1,f,!1,!0),z(e,!0,-1),e.checkLineBreaks&&g.test(e.input.slice(i,e.position))&&R(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&B(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,z(e,!0,-1)):e.position<e.length-1&&N(e,"end of the stream or a document separator is expected")}function G(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new I(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)K(n);return n.documents}function $(e,t,n){var r,o,i=G(e,n);if("function"!=typeof t)return i;for(r=0,o=i.length;r<o;r+=1)t(i[r])}function Z(e,t){var n=G(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new o("expected a single document in the stream, but found more")}}e.exports.loadAll=$,e.exports.load=Z,e.exports.safeLoadAll=function(e,t,n){if("function"!=typeof t)return $(e,r.extend({schema:a},n));$(e,t,r.extend({schema:a},n))},e.exports.safeLoad=function(e,t){return Z(e,r.extend({schema:a},t))}},function(e,t,n){"use strict";var r=n(109);function o(e,t,n,r,o){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=o}o.prototype.getSnippet=function(e,t){var n,o,i,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",o=this.position;o>0&&-1==="\0\r\n\85\u2028\u2029".indexOf(this.buffer.charAt(o-1));)if(o-=1,this.position-o>t/2-1){n=" ... ",o+=5;break}for(i="",a=this.position;a<this.buffer.length&&-1==="\0\r\n\85\u2028\u2029".indexOf(this.buffer.charAt(a));)if((a+=1)-this.position>t/2-1){i=" ... ",a-=5;break}return s=this.buffer.slice(o,a),r.repeat(" ",e)+n+s+i+"\n"+r.repeat(" ",e+this.position-o+n.length)+"^"},o.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},e.exports=o},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(109),o=n(31);function i(e){return 48<=e&&e<=55}function a(e){return 48<=e&&e<=57}e.exports=new o("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=e.length,o=0,s=!1;if(!r)return!1;if("-"!==(t=e[o])&&"+"!==t||(t=e[++o]),"0"===t){if(o+1===r)return!0;if("b"===(t=e[++o])){for(o++;o<r;o++)if("_"!==(t=e[o])){if("0"!==t&&"1"!==t)return!1;s=!0}return s&&"_"!==t}if("x"===t){for(o++;o<r;o++)if("_"!==(t=e[o])){if(!(48<=(n=e.charCodeAt(o))&&n<=57||65<=n&&n<=70||97<=n&&n<=102))return!1;s=!0}return s&&"_"!==t}for(;o<r;o++)if("_"!==(t=e[o])){if(!i(e.charCodeAt(o)))return!1;s=!0}return s&&"_"!==t}if("_"===t)return!1;for(;o<r;o++)if("_"!==(t=e[o])){if(":"===t)break;if(!a(e.charCodeAt(o)))return!1;s=!0}return!(!s||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(o)))},construct:function(e){var t,n,r=e,o=1,i=[];return-1!==r.indexOf("_")&&(r=r.replace(/_/g,"")),"-"!==(t=r[0])&&"+"!==t||("-"===t&&(o=-1),t=(r=r.slice(1))[0]),"0"===r?0:"0"===t?"b"===r[1]?o*parseInt(r.slice(2),2):"x"===r[1]?o*parseInt(r,16):o*parseInt(r,8):-1!==r.indexOf(":")?(r.split(":").forEach(function(e){i.unshift(parseInt(e,10))}),r=0,n=1,i.forEach(function(e){r+=e*n,n*=60}),o*r):o*parseInt(r,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!r.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";var r=n(109),o=n(31),i=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;e.exports=new o("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!i.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,r,o;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){o.unshift(parseFloat(e,10))}),t=0,r=1,o.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||r.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(r.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(31),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new r("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==o.exec(e)||null!==i.exec(e))},construct:function(e){var t,n,r,a,s,u,c,l,p=0,f=null;if(null===(t=o.exec(e))&&(t=i.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(n,r,a));if(s=+t[4],u=+t[5],c=+t[6],t[7]){for(p=t[7].slice(0,3);p.length<3;)p+="0";p=+p}return t[9]&&(f=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(f=-f)),l=new Date(Date.UTC(n,r,a,s,u,c,p)),f&&l.setTime(l.getTime()-f),l},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},function(e,t,n){"use strict";var r;try{r=n(61).Buffer}catch(e){}var o=n(31),i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new o("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=0,o=e.length,a=i;for(n=0;n<o;n++)if(!((t=a.indexOf(e.charAt(n)))>64)){if(t<0)return!1;r+=6}return r%8==0},construct:function(e){var t,n,o=e.replace(/[\r\n=]/g,""),a=o.length,s=i,u=0,c=[];for(t=0;t<a;t++)t%4==0&&t&&(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)),u=u<<6|s.indexOf(o.charAt(t));return 0==(n=a%4*6)?(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)):18===n?(c.push(u>>10&255),c.push(u>>2&255)):12===n&&c.push(u>>4&255),r?r.from?r.from(c):new r(c):c},predicate:function(e){return r&&r.isBuffer(e)},represent:function(e){var t,n,r="",o=0,a=e.length,s=i;for(t=0;t<a;t++)t%3==0&&t&&(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]),o=(o<<8)+e[t];return 0==(n=a%3)?(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]):2===n?(r+=s[o>>10&63],r+=s[o>>4&63],r+=s[o<<2&63],r+=s[64]):1===n&&(r+=s[o>>2&63],r+=s[o<<4&63],r+=s[64],r+=s[64]),r}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.hasOwnProperty,i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,a,s,u=[],c=e;for(t=0,n=c.length;t<n;t+=1){if(r=c[t],s=!1,"[object Object]"!==i.call(r))return!1;for(a in r)if(o.call(r,a)){if(s)return!1;s=!0}if(!s)return!1;if(-1!==u.indexOf(a))return!1;u.push(a)}return!0},construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,i,a,s=e;for(a=new Array(s.length),t=0,n=s.length;t<n;t+=1){if(r=s[t],"[object Object]"!==o.call(r))return!1;if(1!==(i=Object.keys(r)).length)return!1;a[t]=[i[0],r[i[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],o=Object.keys(r),i[t]=[o[0],r[o[0]]];return i}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.hasOwnProperty;e.exports=new r("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,n=e;for(t in n)if(o.call(n,t)&&null!==n[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},function(e,t,n){"use strict";var r;try{r=n(786)}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var o=n(31);e.exports=new o("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=r.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,n="("+e+")",o=r.parse(n,{range:!0}),i=[];if("Program"!==o.type||1!==o.body.length||"ExpressionStatement"!==o.body[0].type||"ArrowFunctionExpression"!==o.body[0].expression.type&&"FunctionExpression"!==o.body[0].expression.type)throw new Error("Failed to resolve function");return o.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=o.body[0].expression.body.range,"BlockStatement"===o.body[0].expression.body.type?new Function(i,n.slice(t[0]+1,t[1]-1)):new Function(i,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(t,n){if(void 0===e){var r=new Error("Cannot find module 'esprima'");throw r.code="MODULE_NOT_FOUND",r}t.exports=e},function(e,t,n){"use strict";var r=n(109),o=n(135),i=n(180),a=n(136),s=Object.prototype.toString,u=Object.prototype.hasOwnProperty,c=9,l=10,p=32,f=33,h=34,d=35,m=37,v=38,g=39,y=42,b=44,_=45,w=58,x=62,E=63,S=64,C=91,k=93,O=96,A=123,T=124,j=125,P={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},I=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function M(e){var t,n,i;if(t=e.toString(16).toUpperCase(),e<=255)n="x",i=2;else if(e<=65535)n="u",i=4;else{if(!(e<=4294967295))throw new o("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+r.repeat("0",i-t.length)+t}function N(e){this.schema=e.schema||i,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=r.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var n,r,o,i,a,s,c;if(null===t)return{};for(n={},o=0,i=(r=Object.keys(t)).length;o<i;o+=1)a=r[o],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&u.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[a]=s;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function R(e,t){for(var n,o=r.repeat(" ",t),i=0,a=-1,s="",u=e.length;i<u;)-1===(a=e.indexOf("\n",i))?(n=e.slice(i),i=u):(n=e.slice(i,a+1),i=a+1),n.length&&"\n"!==n&&(s+=o),s+=n;return s}function D(e,t){return"\n"+r.repeat(" ",e.indent*t)}function L(e){return e===p||e===c}function U(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function q(e){return U(e)&&65279!==e&&e!==b&&e!==C&&e!==k&&e!==A&&e!==j&&e!==w&&e!==d}function F(e){return/^\n* /.test(e)}var z=1,B=2,V=3,H=4,W=5;function J(e,t,n,r,o){var i,a,s,u=!1,c=!1,p=-1!==r,P=-1,I=U(s=e.charCodeAt(0))&&65279!==s&&!L(s)&&s!==_&&s!==E&&s!==w&&s!==b&&s!==C&&s!==k&&s!==A&&s!==j&&s!==d&&s!==v&&s!==y&&s!==f&&s!==T&&s!==x&&s!==g&&s!==h&&s!==m&&s!==S&&s!==O&&!L(e.charCodeAt(e.length-1));if(t)for(i=0;i<e.length;i++){if(!U(a=e.charCodeAt(i)))return W;I=I&&q(a)}else{for(i=0;i<e.length;i++){if((a=e.charCodeAt(i))===l)u=!0,p&&(c=c||i-P-1>r&&" "!==e[P+1],P=i);else if(!U(a))return W;I=I&&q(a)}c=c||p&&i-P-1>r&&" "!==e[P+1]}return u||c?n>9&&F(e)?W:c?H:V:I&&!o(e)?z:B}function Y(e,t,n,r){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==I.indexOf(t))return"'"+t+"'";var i=e.indent*Math.max(1,n),a=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),s=r||e.flowLevel>-1&&n>=e.flowLevel;switch(J(t,s,e.indent,a,function(t){return function(e,t){var n,r;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(e,t)})){case z:return t;case B:return"'"+t.replace(/'/g,"''")+"'";case V:return"|"+K(t,e.indent)+G(R(t,i));case H:return">"+K(t,e.indent)+G(R(function(e,t){var n,r,o=/(\n+)([^\n]*)/g,i=(s=e.indexOf("\n"),s=-1!==s?s:e.length,o.lastIndex=s,$(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;r=o.exec(e);){var u=r[1],c=r[2];n=" "===c[0],i+=u+(a||n||""===c?"":"\n")+$(c,t),a=n}return i}(t,a),i));case W:return'"'+function(e){for(var t,n,r,o="",i=0;i<e.length;i++)(t=e.charCodeAt(i))>=55296&&t<=56319&&(n=e.charCodeAt(i+1))>=56320&&n<=57343?(o+=M(1024*(t-55296)+n-56320+65536),i++):(r=P[t],o+=!r&&U(t)?e[i]:r||M(t));return o}(t)+'"';default:throw new o("impossible error: invalid scalar style")}}()}function K(e,t){var n=F(e)?String(t):"",r="\n"===e[e.length-1];return n+(r&&("\n"===e[e.length-2]||"\n"===e)?"+":r?"":"-")+"\n"}function G(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function $(e,t){if(""===e||" "===e[0])return e;for(var n,r,o=/ [^ ]/g,i=0,a=0,s=0,u="";n=o.exec(e);)(s=n.index)-i>t&&(r=a>i?a:s,u+="\n"+e.slice(i,r),i=r+1),a=s;return u+="\n",e.length-i>t&&a>i?u+=e.slice(i,a)+"\n"+e.slice(a+1):u+=e.slice(i),u.slice(1)}function Z(e,t,n){var r,i,a,c,l,p;for(a=0,c=(i=n?e.explicitTypes:e.implicitTypes).length;a<c;a+=1)if(((l=i[a]).instanceOf||l.predicate)&&(!l.instanceOf||"object"==typeof t&&t instanceof l.instanceOf)&&(!l.predicate||l.predicate(t))){if(e.tag=n?l.tag:"?",l.represent){if(p=e.styleMap[l.tag]||l.defaultStyle,"[object Function]"===s.call(l.represent))r=l.represent(t,p);else{if(!u.call(l.represent,p))throw new o("!<"+l.tag+'> tag resolver accepts not "'+p+'" style');r=l.represent[p](t,p)}e.dump=r}return!0}return!1}function X(e,t,n,r,i,a){e.tag=null,e.dump=n,Z(e,n,!1)||Z(e,n,!0);var u=s.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var c,p,f="[object Object]"===u||"[object Array]"===u;if(f&&(p=-1!==(c=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||p||2!==e.indent&&t>0)&&(i=!1),p&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(f&&p&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===u)r&&0!==Object.keys(e.dump).length?(!function(e,t,n,r){var i,a,s,u,c,p,f="",h=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function");for(i=0,a=d.length;i<a;i+=1)p="",r&&0===i||(p+=D(e,t)),u=n[s=d[i]],X(e,t+1,s,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&l===e.dump.charCodeAt(0)?p+="?":p+="? "),p+=e.dump,c&&(p+=D(e,t)),X(e,t+1,u,!0,c)&&(e.dump&&l===e.dump.charCodeAt(0)?p+=":":p+=": ",f+=p+=e.dump));e.tag=h,e.dump=f||"{}"}(e,t,e.dump,i),p&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,n){var r,o,i,a,s,u="",c=e.tag,l=Object.keys(n);for(r=0,o=l.length;r<o;r+=1)s=e.condenseFlow?'"':"",0!==r&&(s+=", "),a=n[i=l[r]],X(e,t,i,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),X(e,t,a,!1,!1)&&(u+=s+=e.dump));e.tag=c,e.dump="{"+u+"}"}(e,t,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===u){var h=e.noArrayIndent&&t>0?t-1:t;r&&0!==e.dump.length?(!function(e,t,n,r){var o,i,a="",s=e.tag;for(o=0,i=n.length;o<i;o+=1)X(e,t+1,n[o],!0,!0)&&(r&&0===o||(a+=D(e,t)),e.dump&&l===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}(e,h,e.dump,i),p&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,n){var r,o,i="",a=e.tag;for(r=0,o=n.length;r<o;r+=1)X(e,t,n[r],!1,!1)&&(0!==r&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=a,e.dump="["+i+"]"}(e,h,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump))}else{if("[object String]"!==u){if(e.skipInvalid)return!1;throw new o("unacceptable kind of an object to dump "+u)}"?"!==e.tag&&Y(e,e.dump,t,a)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function Q(e,t){var n,r,o=[],i=[];for(function e(t,n,r){var o,i,a;if(null!==t&&"object"==typeof t)if(-1!==(i=n.indexOf(t)))-1===r.indexOf(i)&&r.push(i);else if(n.push(t),Array.isArray(t))for(i=0,a=t.length;i<a;i+=1)e(t[i],n,r);else for(o=Object.keys(t),i=0,a=o.length;i<a;i+=1)e(t[o[i]],n,r)}(e,o,i),n=0,r=i.length;n<r;n+=1)t.duplicates.push(o[i[n]]);t.usedDuplicates=new Array(r)}function ee(e,t){var n=new N(t=t||{});return n.noRefs||Q(e,n),X(n,0,e,!0,!0)?n.dump+"\n":""}e.exports.dump=ee,e.exports.safeDump=function(e,t){return ee(e,r.extend({schema:a},t))}},function(e,t,n){"use strict";e.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},function(e,t,n){"use strict";var r,o=Object.prototype.hasOwnProperty;function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}t.stringify=function(e,t){t=t||"";var n,i,a=[];for(i in"string"!=typeof t&&(t="?"),e)if(o.call(e,i)){if((n=e[i])||null!==n&&n!==r&&!isNaN(n)||(n=""),i=encodeURIComponent(i),n=encodeURIComponent(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?t+a.join("&"):""},t.parse=function(e){for(var t,n=/([^=?&]+)=?([^&]*)/g,r={};t=n.exec(e);){var o=i(t[1]),a=i(t[2]);null===o||null===a||o in r||(r[o]=a)}return r}},function(e,t,n){var r=n(48);e.exports=function(){return r.Date.now()}},function(e,t,n){e.exports=n(792)},function(e,t,n){n(793),e.exports=n(22).Object.getPrototypeOf},function(e,t,n){var r=n(79),o=n(347);n(208)("getPrototypeOf",function(){return function(e){return o(r(e))}})},function(e,t,n){n(795),e.exports=n(22).Object.setPrototypeOf},function(e,t,n){var r=n(30);r(r.S,"Object",{setPrototypeOf:n(796).set})},function(e,t,n){var r=n(41),o=n(45),i=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(60)(Function.call,n(159).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},function(e,t,n){n(798);var r=n(22).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(30);r(r.S,"Object",{create:n(156)})},function(e,t,n){var r=n(413);function o(t,n){return e.exports=o=r||function(e,t){return e.__proto__=t,e},o(t,n)}e.exports=o},function(e,t,n){"use strict";var r=n(27),o=n(801),i=n(438),a=n(112),s=n(55),u=n(873),c=n(874),l=n(439),p=n(875);n(23);o.inject();var f={findDOMNode:c,render:i.render,unmountComponentAtNode:i.unmountComponentAtNode,version:u,unstable_batchedUpdates:s.batchedUpdates,unstable_renderSubtreeIntoContainer:p};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=l(e)),e?r.getNodeFromInstance(e):null}},Mount:i,Reconciler:a}),e.exports=f},function(e,t,n){"use strict";var r=n(802),o=n(803),i=n(807),a=n(810),s=n(811),u=n(812),c=n(813),l=n(819),p=n(27),f=n(844),h=n(845),d=n(846),m=n(847),v=n(848),g=n(850),y=n(851),b=n(857),_=n(858),w=n(859),x=!1;e.exports={inject:function(){x||(x=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(a),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:s,ChangeEventPlugin:i,SelectEventPlugin:_,BeforeInputEventPlugin:o}),g.HostComponent.injectGenericComponentClass(l),g.HostComponent.injectTextComponentClass(d),g.DOMProperty.injectDOMPropertyConfig(r),g.DOMProperty.injectDOMPropertyConfig(u),g.DOMProperty.injectDOMPropertyConfig(b),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new f(e)}),g.Updates.injectReconcileTransaction(y),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(c))}}},function(e,t,n){"use strict";e.exports={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}}},function(e,t,n){"use strict";var r=n(137),o=n(36),i=n(804),a=n(805),s=n(806),u=[9,13,27,32],c=229,l=o.canUseDOM&&"CompositionEvent"in window,p=null;o.canUseDOM&&"documentMode"in document&&(p=document.documentMode);var f,h=o.canUseDOM&&"TextEvent"in window&&!p&&!("object"==typeof(f=window.opera)&&"function"==typeof f.version&&parseInt(f.version(),10)<=12),d=o.canUseDOM&&(!l||p&&p>8&&p<=11);var m=32,v=String.fromCharCode(m),g={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},y=!1;function b(e,t){switch(e){case"topKeyUp":return-1!==u.indexOf(t.keyCode);case"topKeyDown":return t.keyCode!==c;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function _(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}var w=null;function x(e,t,n,o){var s,u;if(l?s=function(e){switch(e){case"topCompositionStart":return g.compositionStart;case"topCompositionEnd":return g.compositionEnd;case"topCompositionUpdate":return g.compositionUpdate}}(e):w?b(e,n)&&(s=g.compositionEnd):function(e,t){return"topKeyDown"===e&&t.keyCode===c}(e,n)&&(s=g.compositionStart),!s)return null;d&&(w||s!==g.compositionStart?s===g.compositionEnd&&w&&(u=w.getData()):w=i.getPooled(o));var p=a.getPooled(s,t,n,o);if(u)p.data=u;else{var f=_(n);null!==f&&(p.data=f)}return r.accumulateTwoPhaseDispatches(p),p}function E(e,t,n,o){var a;if(!(a=h?function(e,t){switch(e){case"topCompositionEnd":return _(t);case"topKeyPress":return t.which!==m?null:(y=!0,v);case"topTextInput":var n=t.data;return n===v&&y?null:n;default:return null}}(e,n):function(e,t){if(w){if("topCompositionEnd"===e||!l&&b(e,t)){var n=w.getData();return i.release(w),w=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return d?null:t.data;default:return null}}(e,n)))return null;var u=s.getPooled(g.beforeInput,t,n,o);return u.data=a,r.accumulateTwoPhaseDispatches(u),u}var S={eventTypes:g,extractEvents:function(e,t,n,r){return[x(e,t,n,r),E(e,t,n,r)]}};e.exports=S},function(e,t,n){"use strict";var r=n(25),o=n(88),i=n(418);function a(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(a.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(a),e.exports=a},function(e,t,n){"use strict";var r=n(64);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(64);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(138),o=n(137),i=n(36),a=n(27),s=n(55),u=n(64),c=n(421),l=n(242),p=n(243),f=n(422),h={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function d(e,t,n){var r=u.getPooled(h.change,e,t,n);return r.type="change",o.accumulateTwoPhaseDispatches(r),r}var m=null,v=null;var g=!1;function y(e){var t=d(v,e,l(e));s.batchedUpdates(b,t)}function b(e){r.enqueueEvents(e),r.processEventQueue(!1)}function _(){m&&(m.detachEvent("onchange",y),m=null,v=null)}function w(e,t){var n=c.updateValueIfChanged(e),r=!0===t.simulated&&P._allowSimulatedPassThrough;if(n||r)return e}function x(e,t){if("topChange"===e)return t}function E(e,t,n){"topFocus"===e?(_(),function(e,t){v=t,(m=e).attachEvent("onchange",y)}(t,n)):"topBlur"===e&&_()}i.canUseDOM&&(g=p("change")&&(!document.documentMode||document.documentMode>8));var S=!1;function C(){m&&(m.detachEvent("onpropertychange",k),m=null,v=null)}function k(e){"value"===e.propertyName&&w(v,e)&&y(e)}function O(e,t,n){"topFocus"===e?(C(),function(e,t){v=t,(m=e).attachEvent("onpropertychange",k)}(t,n)):"topBlur"===e&&C()}function A(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return w(v,n)}function T(e,t,n){if("topClick"===e)return w(t,n)}function j(e,t,n){if("topInput"===e||"topChange"===e)return w(t,n)}i.canUseDOM&&(S=p("input")&&(!document.documentMode||document.documentMode>9));var P={eventTypes:h,_allowSimulatedPassThrough:!0,_isInputEventSupported:S,extractEvents:function(e,t,n,r){var o,i,s,u,c=t?a.getNodeFromInstance(t):window;if("select"===(u=(s=c).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type?g?o=x:i=E:f(c)?S?o=j:(o=A,i=O):function(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}(c)&&(o=T),o){var l=o(e,t,n);if(l)return d(l,n,r)}i&&i(e,c,t),"topBlur"===e&&function(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}(t,c)}};e.exports=P},function(e,t,n){"use strict";var r=n(809),o={};o.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(t.getPublicInstance()):r.addComponentAsRefTo(t,e,n)}(n,e,t._owner)}},o.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},o.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(null):r.removeComponentAsRefFrom(t,e,n)}(n,e,t._owner)}},e.exports=o},function(e,t,n){"use strict";var r=n(21);n(15);function o(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i={addComponentAsRefTo:function(e,t,n){o(n)||r("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o(n)||r("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};e.exports=i},function(e,t,n){"use strict";e.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},function(e,t,n){"use strict";var r=n(137),o=n(27),i=n(183),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u,c,l;if(s.window===s)u=s;else{var p=s.ownerDocument;u=p?p.defaultView||p.parentWindow:window}if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;l=f?o.getClosestInstanceFromNode(f):null}else c=null,l=t;if(c===l)return null;var h=null==c?u:o.getNodeFromInstance(c),d=null==l?u:o.getNodeFromInstance(l),m=i.getPooled(a.mouseLeave,c,n,s);m.type="mouseleave",m.target=h,m.relatedTarget=d;var v=i.getPooled(a.mouseEnter,l,n,s);return v.type="mouseenter",v.target=d,v.relatedTarget=h,r.accumulateEnterLeaveDispatches(m,v,c,l),[m,v]}};e.exports=s},function(e,t,n){"use strict";var r=n(111),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=c},function(e,t,n){"use strict";var r=n(245),o={processChildrenUpdates:n(818).dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(113),i=n(36),a=n(815),s=n(54),u=(n(15),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=n(36),o=n(816),i=n(817),a=n(15),s=r.canUseDOM?document.createElement("div"):null,u=/^\s*<(\w+)/;e.exports=function(e,t){var n=s;s||a(!1);var r=function(e){var t=e.match(u);return t&&t[1].toLowerCase()}(e),c=r&&i(r);if(c){n.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t||a(!1),o(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e){return function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}(e)?Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&r(!1),"number"!=typeof t&&r(!1),0===t||t-1 in e||r(!1),"function"==typeof e.callee&&r(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),o=0;o<t;o++)n[o]=e[o];return n}(e):[e]}},function(e,t,n){"use strict";var r=n(36),o=n(15),i=r.canUseDOM?document.createElement("div"):null,a={},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){p[e]=l,a[e]=!0}),e.exports=function(e){return i||o(!1),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}},function(e,t,n){"use strict";var r=n(245),o=n(27),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(820),a=n(821),s=n(113),u=n(246),c=n(111),l=n(427),p=n(138),f=n(239),h=n(186),d=n(415),m=n(27),v=n(831),g=n(833),y=n(428),b=n(834),_=(n(50),n(835)),w=n(842),x=(n(54),n(185)),E=(n(15),n(243),n(250),n(421)),S=(n(254),n(23),d),C=p.deleteListener,k=m.getNodeFromInstance,O=h.listenTo,A=f.registrationNameModules,T={string:!0,number:!0},j="__html",P={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},I=11;function M(e,t){t&&(W[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&j in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",function(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}(e)))}function N(e,t,n,r){if(!(r instanceof w)){0;var o=e._hostContainerInfo,i=o._node&&o._node.nodeType===I?o._node:o._ownerDocument;O(t,i),r.getReactMountReady().enqueue(R,{inst:e,registrationName:t,listener:n})}}function R(){p.putListener(this.inst,this.registrationName,this.listener)}function D(){v.postMountWrapper(this)}function L(){b.postMountWrapper(this)}function U(){g.postMountWrapper(this)}var q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"};function F(){E.track(this)}function z(){this._rootNodeID||r("63");var e=k(this);switch(e||r("64"),this._tag){case"iframe":case"object":this._wrapperState.listeners=[h.trapBubbledEvent("topLoad","load",e)];break;case"video":case"audio":for(var t in this._wrapperState.listeners=[],q)q.hasOwnProperty(t)&&this._wrapperState.listeners.push(h.trapBubbledEvent(t,q[t],e));break;case"source":this._wrapperState.listeners=[h.trapBubbledEvent("topError","error",e)];break;case"img":this._wrapperState.listeners=[h.trapBubbledEvent("topError","error",e),h.trapBubbledEvent("topLoad","load",e)];break;case"form":this._wrapperState.listeners=[h.trapBubbledEvent("topReset","reset",e),h.trapBubbledEvent("topSubmit","submit",e)];break;case"input":case"select":case"textarea":this._wrapperState.listeners=[h.trapBubbledEvent("topInvalid","invalid",e)]}}function B(){y.postUpdateWrapper(this)}var V={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},H={listing:!0,pre:!0,textarea:!0},W=o({menuitem:!0},V),J=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,Y={},K={}.hasOwnProperty;function G(e,t){return e.indexOf("-")>=0||null!=t.is}var $=1;function Z(e){var t=e.type;!function(e){K.call(Y,e)||(J.test(e)||r("65",e),Y[e]=!0)}(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}Z.displayName="ReactDOMComponent",Z.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=$++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,c,p=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(z,this);break;case"input":v.mountWrapper(this,p,t),p=v.getHostProps(this,p),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(z,this);break;case"option":g.mountWrapper(this,p,t),p=g.getHostProps(this,p);break;case"select":y.mountWrapper(this,p,t),p=y.getHostProps(this,p),e.getReactMountReady().enqueue(z,this);break;case"textarea":b.mountWrapper(this,p,t),p=b.getHostProps(this,p),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(z,this)}if(M(this,p),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===u.svg&&"foreignobject"===a)&&(o=u.html),o===u.html&&("svg"===this._tag?o=u.svg:"math"===this._tag&&(o=u.mathml)),this._namespaceURI=o,e.useCreateElement){var f,h=n._ownerDocument;if(o===u.html)if("script"===this._tag){var d=h.createElement("div"),_=this._currentElement.type;d.innerHTML="<"+_+"></"+_+">",f=d.removeChild(d.firstChild)}else f=p.is?h.createElement(this._currentElement.type,p.is):h.createElement(this._currentElement.type);else f=h.createElementNS(o,this._currentElement.type);m.precacheNode(this,f),this._flags|=S.hasCachedChildNodes,this._hostParent||l.setAttributeForRoot(f),this._updateDOMProperties(null,p,e);var w=s(f);this._createInitialChildren(e,p,r,w),c=w}else{var x=this._createOpenTagMarkupAndPutListeners(e,p),E=this._createContentMarkup(e,p,r);c=!E&&V[this._tag]?x+"/>":x+">"+E+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(D,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(L,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"select":case"button":p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(U,this)}return c},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(A.hasOwnProperty(r))i&&N(this,r,i,e);else{"style"===r&&(i&&(i=this._previousStyleCopy=o({},t.style)),i=a.createMarkupForStyles(i,this));var s=null;null!=this._tag&&G(this._tag,t)?P.hasOwnProperty(r)||(s=l.createMarkupForCustomAttribute(r,i)):s=l.createMarkupForProperty(r,i),s&&(n+=" "+s)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+l.createMarkupForRoot()),n+=" "+l.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=T[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=x(i);else if(null!=a){r=this.mountChildren(a,e,n).join("")}}return H[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&s.queueHTML(r,o.__html);else{var i=T[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&s.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),c=0;c<u.length;c++)s.queueChild(r,u[c])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,i=this._currentElement.props;switch(this._tag){case"input":o=v.getHostProps(this,o),i=v.getHostProps(this,i);break;case"option":o=g.getHostProps(this,o),i=g.getHostProps(this,i);break;case"select":o=y.getHostProps(this,o),i=y.getHostProps(this,i);break;case"textarea":o=b.getHostProps(this,o),i=b.getHostProps(this,i)}switch(M(this,i),this._updateDOMProperties(o,i,e),this._updateDOMChildren(o,i,e,r),this._tag){case"input":v.updateWrapper(this),E.updateValueIfChanged(this);break;case"textarea":b.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(B,this)}},_updateDOMProperties:function(e,t,n){var r,i,s;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if("style"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&((s=s||{})[i]="");this._previousStyleCopy=null}else A.hasOwnProperty(r)?e[r]&&C(this,r):G(this._tag,e)?P.hasOwnProperty(r)||l.deleteValueForAttribute(k(this),r):(c.properties[r]||c.isCustomAttribute(r))&&l.deleteValueForProperty(k(this),r);for(r in t){var p=t[r],f="style"===r?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&p!==f&&(null!=p||null!=f))if("style"===r)if(p?p=this._previousStyleCopy=o({},p):this._previousStyleCopy=null,f){for(i in f)!f.hasOwnProperty(i)||p&&p.hasOwnProperty(i)||((s=s||{})[i]="");for(i in p)p.hasOwnProperty(i)&&f[i]!==p[i]&&((s=s||{})[i]=p[i])}else s=p;else if(A.hasOwnProperty(r))p?N(this,r,p,n):f&&C(this,r);else if(G(this._tag,t))P.hasOwnProperty(r)||l.setValueForAttribute(k(this),r,p);else if(c.properties[r]||c.isCustomAttribute(r)){var h=k(this);null!=p?l.setValueForProperty(h,r,p):l.deleteValueForProperty(h,r)}}s&&a.setValueForStyles(k(this),s,this)},_updateDOMChildren:function(e,t,n,r){var o=T[typeof e.children]?e.children:null,i=T[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,c=null!=i?null:t.children,l=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return k(this)},unmountComponent:function(e){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var t=this._wrapperState.listeners;if(t)for(var n=0;n<t.length;n++)t[n].remove();break;case"input":case"textarea":E.stopTracking(this);break;case"html":case"head":case"body":r("66",this._tag)}this.unmountChildren(e),m.uncacheNode(this),p.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return k(this)}},o(Z.prototype,Z.Mixin,_.Mixin),e.exports=Z},function(e,t,n){"use strict";var r=n(27),o=n(425),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};e.exports=i},function(e,t,n){"use strict";var r=n(426),o=n(36),i=(n(50),n(822),n(824)),a=n(825),s=n(827),u=(n(23),s(function(e){return a(e)})),c=!1,l="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){c=!0}void 0===document.documentElement.style.cssFloat&&(l="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];0,null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--");0;var u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=l),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=c&&r.shorthandPropertyExpansions[a];if(p)for(var f in p)o[f]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";var r=n(823),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t,n){"use strict";var r=/-(.)/g;e.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},function(e,t,n){"use strict";var r=n(426),o=(n(23),r.isUnitlessNumber);e.exports=function(e,t,n,r){if(null==t||"boolean"==typeof t||""===t)return"";var i=isNaN(t);return r||i||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}},function(e,t,n){"use strict";var r=n(826),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r=/([A-Z])/g;e.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},function(e,t,n){"use strict";e.exports=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}},function(e,t,n){"use strict";var r=n(185);e.exports=function(e){return'"'+r(e)+'"'}},function(e,t,n){"use strict";var r=n(138);var o={handleTopLevel:function(e,t,n,o){!function(e){r.enqueueEvents(e),r.processEventQueue(!1)}(r.extractEvents(e,t,n,o))}};e.exports=o},function(e,t,n){"use strict";var r=n(36);function o(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var i={animationend:o("Animation","AnimationEnd"),animationiteration:o("Animation","AnimationIteration"),animationstart:o("Animation","AnimationStart"),transitionend:o("Transition","TransitionEnd")},a={},s={};r.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete i.animationend.animation,delete i.animationiteration.animation,delete i.animationstart.animation),"TransitionEvent"in window||delete i.transitionend.transition),e.exports=function(e){if(a[e])return a[e];if(!i[e])return e;var t=i[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return a[e]=t[n];return""}},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(427),a=n(248),s=n(27),u=n(55);n(15),n(23);function c(){this._rootNodeID&&p.updateWrapper(this)}function l(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}var p={getHostProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t);return o({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null,onChange:f.bind(e),controlled:l(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&i.setValueForProperty(s.getNodeFromInstance(e),"checked",n||!1);var r=s.getNodeFromInstance(e),o=a.getValue(t);if(null!=o)if(0===o&&""===r.value)r.value="0";else if("number"===t.type){var u=parseFloat(r.value,10)||0;(o!=u||o==u&&r.value!=o)&&(r.value=""+o)}else r.value!==""+o&&(r.value=""+o);else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)}};function f(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);u.asap(c,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=s.getNodeFromInstance(this),l=i;l.parentNode;)l=l.parentNode;for(var p=l.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;f<p.length;f++){var h=p[f];if(h!==i&&h.form===i.form){var d=s.getInstanceFromNode(h);d||r("90"),u.asap(c,d)}}}return n}e.exports=p},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=n(25),o=n(100),i=n(27),a=n(428),s=(n(23),!1);function u(e){var t="";return o.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:s||(s=!0))}),t}var c={mountWrapper:function(e,t,n){var r=null;if(null!=n){var o=n;"optgroup"===o._tag&&(o=o._hostParent),null!=o&&"select"===o._tag&&(r=a.getSelectValueContext(o))}var i,s=null;if(null!=r)if(i=null!=t.value?t.value+"":u(t.children),s=!1,Array.isArray(r)){for(var c=0;c<r.length;c++)if(""+r[c]===i){s=!0;break}}else s=""+r===i;e._wrapperState={selected:s}},postMountWrapper:function(e){var t=e._currentElement.props;null!=t.value&&i.getNodeFromInstance(e).setAttribute("value",t.value)},getHostProps:function(e,t){var n=r({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var o=u(t.children);return o&&(n.children=o),n}};e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(248),a=n(27),s=n(55);n(15),n(23);function u(){this._rootNodeID&&c.updateWrapper(this)}var c={getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=i.getValue(t),o=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&r("92"),Array.isArray(s)&&(s.length<=1||r("93"),s=s[0]),a=""+s),null==a&&(a=""),o=a}e._wrapperState={initialValue:""+o,listeners:null,onChange:l.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getNodeFromInstance(e),r=i.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=a.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}};function l(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return s.asap(u,this),n}e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(249),i=(n(140),n(50),n(62),n(112)),a=n(836),s=(n(54),n(841));n(15);function u(e,t){return t&&(e=e||[]).push(t),e}function c(e,t){o.processChildrenUpdates(e,t)}var l={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return a.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var u;return u=s(t,0),a.updateChildren(e,u,n,r,o,this,this._hostContainerInfo,i,0),u},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];0;var c=i.mountComponent(u,t,this,this._hostContainerInfo,n,0);u._mountIndex=a++,o.push(c)}return o},updateTextContent:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");c(this,[(t=e,{type:"TEXT_CONTENT",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateMarkup:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");c(this,[(t=e,{type:"SET_MARKUP",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},a=[],s=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(s||r){var l,p=null,f=0,h=0,d=0,m=null;for(l in s)if(s.hasOwnProperty(l)){var v=r&&r[l],g=s[l];v===g?(p=u(p,this.moveChild(v,m,f,h)),h=Math.max(v._mountIndex,h),v._mountIndex=f):(v&&(h=Math.max(v._mountIndex,h)),p=u(p,this._mountChildAtIndex(g,a[d],m,f,t,n)),d++),f++,m=i.getHostNode(g)}for(l in o)o.hasOwnProperty(l)&&(p=u(p,this._unmountChild(r[l],o[l])));p&&c(this,p),this._renderedChildren=s}},unmountChildren:function(e){var t=this._renderedChildren;a.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return function(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:i.getHostNode(e),toIndex:n,afterNode:t}}(e,t,n)},createChild:function(e,t,n){return function(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}(n,t,e._mountIndex)},removeChild:function(e,t){return function(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}(e,t)},_mountChildAtIndex:function(e,t,n,r,o,i){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}};e.exports=l},function(e,t,n){"use strict";(function(t){var r=n(112),o=n(429),i=(n(252),n(251)),a=n(433);n(23);function s(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}void 0!==t&&t.env;var u={instantiateChildren:function(e,t,n,r){if(null==e)return null;var o={};return a(e,s,o),o},updateChildren:function(e,t,n,a,s,u,c,l,p){if(t||e){var f,h;for(f in t)if(t.hasOwnProperty(f)){var d=(h=e&&e[f])&&h._currentElement,m=t[f];if(null!=h&&i(d,m))r.receiveComponent(h,m,s,l),t[f]=h;else{h&&(a[f]=r.getHostNode(h),r.unmountComponent(h,!1));var v=o(m,!0);t[f]=v;var g=r.mountComponent(v,s,u,c,l,p);n.push(g)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(h=e[f],a[f]=r.getHostNode(h),r.unmountComponent(h,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];r.unmountComponent(o,t)}}};e.exports=u}).call(this,n(72))},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(100),a=n(249),s=n(62),u=n(241),c=n(140),l=(n(50),n(430)),p=n(112),f=n(161),h=(n(15),n(250)),d=n(251),m=(n(23),0),v=1,g=2;function y(e){}function b(e,t){0}y.prototype.render=function(){var e=c.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return b(e,t),t};var _=1,w={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,o){this._context=o,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var a,s=this._currentElement.props,u=this._processContext(o),l=this._currentElement.type,p=e.getUpdateQueue(),h=function(e){return!(!e.prototype||!e.prototype.isReactComponent)}(l),d=this._constructComponent(h,s,u,p);h||null!=d&&null!=d.render?!function(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}(l)?this._compositeType=m:this._compositeType=v:(a=d,b(),null===d||!1===d||i.isValidElement(d)||r("105",l.displayName||l.name||"Component"),d=new y(l),this._compositeType=g),d.props=s,d.context=u,d.refs=f,d.updater=p,this._instance=d,c.set(d,this);var w,x=d.state;return void 0===x&&(d.state=x=null),("object"!=typeof x||Array.isArray(x))&&r("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,w=d.unstable_handleError?this.performInitialMountWithErrorHandling(a,t,n,e,o):this.performInitialMount(a,t,n,e,o),d.componentDidMount&&e.getReactMountReady().enqueue(d.componentDidMount,d),w},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var a=l.getType(e);this._renderedNodeType=a;var s=this._instantiateReactComponent(e,a!==l.EMPTY);return this._renderedComponent=s,p.mountComponent(s,r,t,n,this._processChildContext(o),0)},getHostNode:function(){return p.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";u.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(p.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,c.remove(t)}},_maskContext:function(e){var t=this._currentElement.type.contextTypes;if(!t)return f;var n={};for(var r in t)n[r]=e[r];return n},_processContext:function(e){return this._maskContext(e)},_processChildContext:function(e){var t,n=this._currentElement.type,i=this._instance;if(i.getChildContext&&(t=i.getChildContext()),t){for(var a in"object"!=typeof n.childContextTypes&&r("107",this.getName()||"ReactCompositeComponent"),t)a in n.childContextTypes||r("108",this.getName()||"ReactCompositeComponent",a);return o({},e,t)}return e},_checkContextTypes:function(e,t,n){0},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?p.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,o,i){var a=this._instance;null==a&&r("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===i?s=a.context:(s=this._processContext(i),u=!0);var c=t.props,l=n.props;t!==n&&(u=!0),u&&a.componentWillReceiveProps&&a.componentWillReceiveProps(l,s);var p=this._processPendingState(l,s),f=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?f=a.shouldComponentUpdate(l,p,s):this._compositeType===v&&(f=!h(c,l)||!h(a.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,p,s,e,i)):(this._currentElement=n,this._context=i,a.props=l,a.state=p,a.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var a=o({},i?r[0]:n.state),s=i?1:0;s<r.length;s++){var u=r[s];o(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,i){var a,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=i,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(o,i),l&&o.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(d(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var i=p.getHostNode(n);p.unmountComponent(n,!1);var a=l.getType(o);this._renderedNodeType=a;var s=this._instantiateReactComponent(o,a!==l.EMPTY);this._renderedComponent=s;var u=p.mountComponent(s,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),0);this._replaceNodeWithMarkup(i,u,n)}},_replaceNodeWithMarkup:function(e,t,n){a.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){return this._instance.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==g){s.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{s.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||!1===e||i.isValidElement(e)||r("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n&&r("110");var o=t.getPublicInstance();(n.refs===f?n.refs={}:n.refs)[e]=o},detachRef:function(e){delete this.getPublicInstance().refs[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===g?null:e},_instantiateReactComponent:null};e.exports=w},function(e,t,n){"use strict";var r=1;e.exports=function(){return r++}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";(function(t){n(252);var r=n(433);n(23);function o(e,t,n,r){if(e&&"object"==typeof e){var o=e;0,void 0===o[n]&&null!=t&&(o[n]=t)}}void 0!==t&&t.env,e.exports=function(e,t){if(null==e)return e;var n={};return r(e,o,n),n}}).call(this,n(72))},function(e,t,n){"use strict";var r=n(25),o=n(88),i=n(182),a=(n(50),n(843)),s=[];var u={enqueue:function(){}};function c(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new a(this)}var l={getTransactionWrappers:function(){return s},getReactMountReady:function(){return u},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};r(c.prototype,i,l),o.addPoolingTo(c),e.exports=c},function(e,t,n){"use strict";var r=n(253);n(23);var o=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&r.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()&&r.enqueueForceUpdate(e)},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()&&r.enqueueReplaceState(e,t)},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()&&r.enqueueSetState(e,t)},e}();e.exports=o},function(e,t,n){"use strict";var r=n(25),o=n(113),i=n(27),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument.createComment(s);return i.precacheNode(this,u),o(u)}return e.renderToStaticMarkup?"":"\x3c!--"+s+"--\x3e"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";var r=n(21);n(15);function o(e,t){"_hostNode"in e||r("33"),"_hostNode"in t||r("33");for(var n=0,o=e;o;o=o._hostParent)n++;for(var i=0,a=t;a;a=a._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var s=n;s--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}e.exports={isAncestor:function(e,t){"_hostNode"in e||r("35"),"_hostNode"in t||r("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:o,getParentInstance:function(e){return"_hostNode"in e||r("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r<o.length;r++)t(o[r],"bubbled",n)},traverseEnterLeave:function(e,t,n,r,i){for(var a=e&&t?o(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u,c=[];t&&t!==a;)c.push(t),t=t._hostParent;for(u=0;u<s.length;u++)n(s[u],"bubbled",r);for(u=c.length;u-- >0;)n(c[u],"captured",i)}}},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(245),a=n(113),s=n(27),u=n(185),c=(n(15),n(254),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,l=c.createComment(i),p=c.createComment(" /react-text "),f=a(c.createDocumentFragment());return a.queueChild(f,a(l)),this._stringText&&a.queueChild(f,a(c.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,l),this._closingComment=p,f}var h=u(this._stringText);return e.renderToStaticMarkup?h:"\x3c!--"+i+"--\x3e"+h+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this).nextSibling;;){if(null==t&&r("67",this._domID),8===t.nodeType&&" /react-text "===t.nodeValue){this._closingComment=t;break}t=t.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";var r=n(25),o=n(55),i=n(182),a=n(54),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u=[{initialize:a,close:o.flushBatchedUpdates.bind(o)},s];function c(){this.reinitializeTransaction()}r(c.prototype,i,{getTransactionWrappers:function(){return u}});var l=new c,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):l.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";var r=n(25),o=n(435),i=n(36),a=n(88),s=n(27),u=n(55),c=n(242),l=n(849);function p(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}function f(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function h(e){var t=c(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;do{e.ancestors.push(r),r=r&&p(r)}while(r);for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],d._handleTopLevel(e.topLevelType,n,e.nativeEvent,c(e.nativeEvent))}r(f.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),a.addPoolingTo(f,a.twoArgumentPooler);var d={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:i.canUseDOM?window:null,setHandleTopLevel:function(e){d._handleTopLevel=e},setEnabled:function(e){d._enabled=!!e},isEnabled:function(){return d._enabled},trapBubbledEvent:function(e,t,n){return n?o.listen(n,t,d.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?o.capture(n,t,d.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=function(e){e(l(window))}.bind(null,e);o.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(d._enabled){var n=f.getPooled(e,t);try{u.batchedUpdates(h,n)}finally{f.release(n)}}}};e.exports=d},function(e,t,n){"use strict";e.exports=function(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}},function(e,t,n){"use strict";var r=n(111),o=n(138),i=n(240),a=n(249),s=n(431),u=n(186),c=n(432),l=n(55),p={Component:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:i.injection,EventEmitter:u.injection,HostComponent:c.injection,Updates:l.injection};e.exports=p},function(e,t,n){"use strict";var r=n(25),o=n(419),i=n(88),a=n(186),s=n(436),u=(n(50),n(182)),c=n(253),l=[{initialize:s.getSelectionInformation,close:s.restoreSelection},{initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},{initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}}];function p(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=e}var f={getTransactionWrappers:function(){return l},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return c},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};r(p.prototype,u,f),i.addPoolingTo(p),e.exports=p},function(e,t,n){"use strict";var r=n(36),o=n(853),i=n(418);function a(e,t,n,r){return e===n&&t===r}var s=r.canUseDOM&&"selection"in document&&!("getSelection"in window),u={getOffsets:s?function(e){var t=document.selection.createRange(),n=t.text.length,r=t.duplicate();r.moveToElementText(e),r.setEndPoint("EndToStart",t);var o=r.text.length;return{start:o,end:o+n}}:function(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,r=t.anchorOffset,o=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=a(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)?0:s.toString().length,c=s.cloneRange();c.selectNodeContents(e),c.setEnd(s.startContainer,s.startOffset);var l=a(c.startContainer,c.startOffset,c.endContainer,c.endOffset)?0:c.toString().length,p=l+u,f=document.createRange();f.setStart(n,r),f.setEnd(o,i);var h=f.collapsed;return{start:h?p:l,end:h?l:p}},setOffsets:s?function(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?r=n=t.start:t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}:function(e,t){if(window.getSelection){var n=window.getSelection(),r=e[i()].length,a=Math.min(t.start,r),s=void 0===t.end?a:Math.min(t.end,r);if(!n.extend&&a>s){var u=s;s=a,a=u}var c=o(e,a),l=o(e,s);if(c&&l){var p=document.createRange();p.setStart(c.node,c.offset),n.removeAllRanges(),a>s?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p))}}}};e.exports=u},function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}e.exports=function(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}},function(e,t,n){"use strict";var r=n(855);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=n(856);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",i={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},a={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r,xlinkArcrole:r,xlinkHref:r,xlinkRole:r,xlinkShow:r,xlinkTitle:r,xlinkType:r,xmlBase:o,xmlLang:o,xmlSpace:o},DOMAttributeNames:{}};Object.keys(i).forEach(function(e){a.Properties[e]=0,i[e]&&(a.DOMAttributeNames[e]=i[e])}),e.exports=a},function(e,t,n){"use strict";var r=n(137),o=n(36),i=n(27),a=n(436),s=n(64),u=n(437),c=n(422),l=n(250),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,f={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},h=null,d=null,m=null,v=!1,g=!1;function y(e,t){if(v||null==h||h!==u())return null;var n=function(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}(h);if(!m||!l(m,n)){m=n;var o=s.getPooled(f.select,d,e,t);return o.type="select",o.target=h,r.accumulateTwoPhaseDispatches(o),o}return null}var b={eventTypes:f,extractEvents:function(e,t,n,r){if(!g)return null;var o=t?i.getNodeFromInstance(t):window;switch(e){case"topFocus":(c(o)||"true"===o.contentEditable)&&(h=o,d=t,m=null);break;case"topBlur":h=null,d=null,m=null;break;case"topMouseDown":v=!0;break;case"topContextMenu":case"topMouseUp":return v=!1,y(n,r);case"topSelectionChange":if(p)break;case"topKeyDown":case"topKeyUp":return y(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(g=!0)}};e.exports=b},function(e,t,n){"use strict";var r=n(21),o=n(435),i=n(137),a=n(27),s=n(860),u=n(861),c=n(64),l=n(862),p=n(863),f=n(183),h=n(865),d=n(866),m=n(867),v=n(139),g=n(868),y=n(54),b=n(255),_=(n(15),{}),w={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};_[e]=o,w[r]=o});var x={};function E(e){return"."+e._rootNodeID}function S(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var C={eventTypes:_,extractEvents:function(e,t,n,o){var a,y=w[e];if(!y)return null;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=c;break;case"topKeyPress":if(0===b(n))return null;case"topKeyDown":case"topKeyUp":a=p;break;case"topBlur":case"topFocus":a=l;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=f;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=h;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=d;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=s;break;case"topTransitionEnd":a=m;break;case"topScroll":a=v;break;case"topWheel":a=g;break;case"topCopy":case"topCut":case"topPaste":a=u}a||r("86",e);var _=a.getPooled(y,t,n,o);return i.accumulateTwoPhaseDispatches(_),_},didPutListener:function(e,t,n){if("onClick"===t&&!S(e._tag)){var r=E(e),i=a.getNodeFromInstance(e);x[r]||(x[r]=o.listen(i,"click",y))}},willDeleteListener:function(e,t){if("onClick"===t&&!S(e._tag)){var n=E(e);x[n].remove(),delete x[n]}}};e.exports=C},function(e,t,n){"use strict";var r=n(64);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{animationName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(64),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(139);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{relatedTarget:null}),e.exports=o},function(e,t,n){"use strict";var r=n(139),o=n(255),i={key:n(864),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:n(244),charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r=n(255),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}},function(e,t,n){"use strict";var r=n(183);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{dataTransfer:null}),e.exports=o},function(e,t,n){"use strict";var r=n(139),o={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:n(244)};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(64);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{propertyName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(183);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),e.exports=o},function(e,t,n){"use strict";n(254);var r=9;e.exports=function(e,t){return{_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===r?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}},function(e,t,n){"use strict";e.exports={useCreateElement:!0,useFiber:!1}},function(e,t,n){"use strict";var r=n(872),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";var r=65521;e.exports=function(e){for(var t=1,n=0,o=0,i=e.length,a=-4&i;o<a;){for(var s=Math.min(o+4096,a);o<s;o+=4)n+=(t+=e.charCodeAt(o))+(t+=e.charCodeAt(o+1))+(t+=e.charCodeAt(o+2))+(t+=e.charCodeAt(o+3));t%=r,n%=r}for(;o<i;o++)n+=t+=e.charCodeAt(o);return(t%=r)|(n%=r)<<16}},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(21),o=(n(62),n(27)),i=n(140),a=n(439);n(15),n(23);e.exports=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=i.get(e);if(t)return(t=a(t))?o.getNodeFromInstance(t):null;"function"==typeof e.render?r("44"):r("45",Object.keys(e))}},function(e,t,n){"use strict";var r=n(438);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(0),o=a(n(440)),i=a(n(441));a(n(442));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,r));return o.store=n.store,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getChildContext=function(){return{store:this.store}},t.prototype.render=function(){return r.Children.only(this.props.children)},t}(r.Component);t.default=s,s.propTypes={store:i.default.isRequired,children:o.default.element.isRequired},s.childContextTypes={store:i.default.isRequired}},function(e,t,n){"use strict";var r=n(878);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=function(e,t,n){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},v=Boolean(e),g=e||p,y=void 0;y="function"==typeof t?t:t?(0,s.default)(t):f;var b=n||h,_=l.pure,w=void 0===_||_,x=l.withRef,E=void 0!==x&&x,S=w&&b!==h,C=m++;return function(e){var t="Connect("+function(e){return e.displayName||e.name||"Component"}(e)+")";var n=function(n){function i(e,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,n.call(this,e,r));o.version=C,o.store=e.store||r.store,(0,c.default)(o.store,'Could not find "store" in either the context or props of "'+t+'". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "'+t+'".');var a=o.store.getState();return o.state={storeState:a},o.clearCache(),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,n),i.prototype.shouldComponentUpdate=function(){return!w||this.haveOwnPropsChanged||this.hasStoreStateChanged},i.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var n=e.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,t):this.finalMapStateToProps(n);return r},i.prototype.configureFinalMapState=function(e,t){var n=g(e.getState(),t),r="function"==typeof n;return this.finalMapStateToProps=r?n:g,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(e,t):n},i.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var n=e.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,t):this.finalMapDispatchToProps(n);return r},i.prototype.configureFinalMapDispatch=function(e,t){var n=y(e.dispatch,t),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:y,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(e,t):n},i.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,a.default)(e,this.stateProps))&&(this.stateProps=e,!0)},i.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,a.default)(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},i.prototype.updateMergedPropsIfNeeded=function(){var e=function(e,t,n){0;return b(e,t,n)}(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&S&&(0,a.default)(e,this.mergedProps))&&(this.mergedProps=e,!0)},i.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},i.prototype.trySubscribe=function(){v&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},i.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},i.prototype.componentDidMount=function(){this.trySubscribe()},i.prototype.componentWillReceiveProps=function(e){w&&(0,a.default)(e,this.props)||(this.haveOwnPropsChanged=!0)},i.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},i.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},i.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!w||t!==e){if(w&&!this.doStatePropsDependOnOwnProps){var n=function(e,t){try{return e.apply(t)}catch(e){return d.value=e,d}}(this.updateStatePropsIfNeeded,this);if(!n)return;n===d&&(this.statePropsPrecalculationError=d.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},i.prototype.getWrappedInstance=function(){return(0,c.default)(E,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},i.prototype.render=function(){var t=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,i=this.haveStatePropsBeenPrecalculated,a=this.statePropsPrecalculationError,s=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,a)throw a;var u=!0,c=!0;w&&s&&(u=n||t&&this.doStatePropsDependOnOwnProps,c=t&&this.doDispatchPropsDependOnOwnProps);var l=!1,p=!1;i?l=!0:u&&(l=this.updateStatePropsIfNeeded()),c&&(p=this.updateDispatchPropsIfNeeded());return!(!!(l||p||t)&&this.updateMergedPropsIfNeeded())&&s?s:(this.renderedElement=E?(0,o.createElement)(e,r({},this.mergedProps,{ref:"wrappedInstance"})):(0,o.createElement)(e,this.mergedProps),this.renderedElement)},i}(o.Component);return n.displayName=t,n.WrappedComponent=e,n.contextTypes={store:i.default},n.propTypes={store:i.default},(0,u.default)(n,e)}};var o=n(0),i=l(n(441)),a=l(n(880)),s=l(n(881)),u=(l(n(442)),l(n(256)),l(n(882))),c=l(n(883));function l(e){return e&&e.__esModule?e:{default:e}}var p=function(e){return{}},f=function(e){return{dispatch:e}},h=function(e,t,n){return r({},n,e,t)};var d={value:null};var m=0},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,i=0;i<n.length;i++)if(!o.call(t,n[i])||e[n[i]]!==t[n[i]])return!1;return!0}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){return function(t){return(0,r.bindActionCreators)(e,t)}};var r=n(120)},function(e,t,n){"use strict";var r=n(357),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var c=Object.defineProperty,l=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,d=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(d){var o=h(n);o&&o!==d&&e(t,o,r)}var a=l(n);p&&(a=a.concat(p(n)));for(var s=u(t),m=u(n),v=0;v<a.length;++v){var g=a[v];if(!(i[g]||r&&r[g]||m&&m[g]||s&&s[g])){var y=f(n,g);try{c(t,g,y)}catch(e){}}}return t}return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;(u=new Error(t.replace(/%s/g,function(){return c[l++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},function(e,t,n){var r=n(114),o=n(83);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t,n){var r=n(114),o=n(444);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t,n){var r=n(49),o=n(171),i=n(888),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){(function(e){var r=n(48),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}}).call(this,n(169)(e))},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t,n){var r=n(114),o=n(222);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t,n){var r=n(114),o=n(445);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},function(e,t,n){var r=n(258),o=n(895),i=n(896),a=n(897),s=n(898),u="[object Boolean]",c="[object Date]",l="[object Map]",p="[object Number]",f="[object RegExp]",h="[object Set]",d="[object String]",m="[object Symbol]",v="[object ArrayBuffer]",g="[object DataView]",y="[object Float32Array]",b="[object Float64Array]",_="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",E="[object Uint8Array]",S="[object Uint8ClampedArray]",C="[object Uint16Array]",k="[object Uint32Array]";e.exports=function(e,t,n){var O=e.constructor;switch(t){case v:return r(e);case u:case c:return new O(+e);case g:return o(e,n);case y:case b:case _:case w:case x:case E:case S:case C:case k:return s(e,n);case l:return new O;case p:case d:return new O(e);case f:return i(e);case h:return new O;case m:return a(e)}}},function(e,t,n){var r=n(258);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},function(e,t){var n=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,n){var r=n(102),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},function(e,t,n){var r=n(258);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},function(e,t,n){var r=n(900),o=n(257),i=n(171);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},function(e,t,n){var r=n(49),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},function(e,t,n){var r=n(902),o=n(226),i=n(227),a=i&&i.isMap,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(172),o=n(63),i="[object Map]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(904),o=n(226),i=n(227),a=i&&i.isSet,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(172),o=n(63),i="[object Set]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(104),o=n(906),i=n(907),a=n(105);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,n){var r=n(173),o=n(363);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},function(e,t,n){var r=n(256);e.exports=function(e){return r(e)?void 0:e}},function(e,t,n){var r=n(910);e.exports=function(e){return null!=e&&e.length?r(e,1):[]}},function(e,t,n){var r=n(221),o=n(911);e.exports=function e(t,n,i,a,s){var u=-1,c=t.length;for(i||(i=o),s||(s=[]);++u<c;){var l=t[u];n>0&&i(l)?n>1?e(l,n-1,i,a,s):r(s,l):a||(s[s.length]=l)}return s}},function(e,t,n){var r=n(102),o=n(223),i=n(35),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var r=n(914),o=n(412),i=n(229),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t){var n=800,r=16,o=Date.now;e.exports=function(e){var t=0,i=0;return function(){var a=o(),s=r-(a-i);if(i=a,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){"use strict";var r=n(917),o=n(918);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=b,t.resolve=function(e,t){return b(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?b(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=b(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),p=["%","/","?",";","#"].concat(l),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n(919);function b(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var b=e=c.join(s);if(b=b.trim(),!n&&1===e.split("#").length){var _=u.exec(b);if(_)return this.path=b,this.href=b,this.pathname=_[1],_[2]?(this.search=_[2],this.query=t?y.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=a.exec(b);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,b=b.substr(w.length)}if(n||w||b.match(/^\/\/[^@\/]+@[^@\/]+/)){var E="//"===b.substr(0,2);!E||w&&v[w]||(b=b.substr(2),this.slashes=!0)}if(!v[w]&&(E||w&&!g[w])){for(var S,C,k=-1,O=0;O<f.length;O++){-1!==(A=b.indexOf(f[O]))&&(-1===k||A<k)&&(k=A)}-1!==(C=-1===k?b.lastIndexOf("@"):b.lastIndexOf("@",k))&&(S=b.slice(0,C),b=b.slice(C+1),this.auth=decodeURIComponent(S)),k=-1;for(O=0;O<p.length;O++){var A;-1!==(A=b.indexOf(p[O]))&&(-1===k||A<k)&&(k=A)}-1===k&&(k=b.length),this.host=b.slice(0,k),b=b.slice(k),this.parseHost(),this.hostname=this.hostname||"";var T="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!T)for(var j=this.hostname.split(/\./),P=(O=0,j.length);O<P;O++){var I=j[O];if(I&&!I.match(h)){for(var M="",N=0,R=I.length;N<R;N++)I.charCodeAt(N)>127?M+="x":M+=I[N];if(!M.match(h)){var D=j.slice(0,O),L=j.slice(O+1),U=I.match(d);U&&(D.push(U[1]),L.unshift(U[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),T||(this.hostname=r.toASCII(this.hostname));var q=this.port?":"+this.port:"",F=this.hostname||"";this.host=F+q,this.href+=this.host,T&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[x])for(O=0,P=l.length;O<P;O++){var z=l[O];if(-1!==b.indexOf(z)){var B=encodeURIComponent(z);B===z&&(B=escape(z)),b=b.split(z).join(B)}}var V=b.indexOf("#");-1!==V&&(this.hash=b.substr(V),b=b.slice(0,V));var H=b.indexOf("?");if(-1!==H?(this.search=b.substr(H),this.query=b.substr(H+1),t&&(this.query=y.parse(this.query)),b=b.slice(0,H)):t&&(this.search="",this.query={}),b&&(this.pathname=b),g[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){q=this.pathname||"";var W=this.search||"";this.path=q+W}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,a="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(a=y.stringify(this.query));var s=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+i+(n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(s=s.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(b(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(o.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),a=0;a<r.length;a++){var s=r[a];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var u=Object.keys(e),c=0;c<u.length;c++){var l=u[c];"protocol"!==l&&(n[l]=e[l])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var p=Object.keys(e),f=0;f<p.length;f++){var h=p[f];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),n.pathname=d.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",y=n.search||"";n.path=m+y}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var b=n.pathname&&"/"===n.pathname.charAt(0),_=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=_||b||n.host&&e.pathname,x=w,E=n.pathname&&n.pathname.split("/")||[],S=(d=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===E[0]?E[0]=n.host:E.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),w=w&&(""===d[0]||""===E[0])),_)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,E=d;else if(d.length)E||(E=[]),E.pop(),E=E.concat(d),n.search=e.search,n.query=e.query;else if(!o.isNullOrUndefined(e.search)){if(S)n.hostname=n.host=E.shift(),(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=E.slice(-1)[0],k=(n.host||e.host||E.length>1)&&("."===C||".."===C)||""===C,O=0,A=E.length;A>=0;A--)"."===(C=E[A])?E.splice(A,1):".."===C?(E.splice(A,1),O++):O&&(E.splice(A,1),O--);if(!w&&!x)for(;O--;O)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),k&&"/"!==E.join("/").substr(-1)&&E.push("");var T,j=""===E[0]||E[0]&&"/"===E[0].charAt(0);S&&(n.hostname=n.host=j?"":E.length?E.shift():"",(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift()));return(w=w||n.host&&E.length)&&!j&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){(function(e,r){var o;/*! https://mths.be/punycode v1.3.2 by @mathias */!function(i){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof r&&r;a.global!==a&&a.window!==a&&a.self;var s,u=2147483647,c=36,l=1,p=26,f=38,h=700,d=72,m=128,v="-",g=/^xn--/,y=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,_={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=c-l,x=Math.floor,E=String.fromCharCode;function S(e){throw RangeError(_[e])}function C(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function k(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+C((e=e.replace(b,".")).split("."),t).join(".")}function O(e){for(var t,n,r=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(n=e.charCodeAt(o++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--):r.push(t);return r}function A(e){return C(e,function(e){var t="";return e>65535&&(t+=E((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=E(e)}).join("")}function T(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function P(e,t,n){var r=0;for(e=n?x(e/h):e>>1,e+=x(e/t);e>w*p>>1;r+=c)e=x(e/w);return x(r+(w+1)*e/(e+f))}function I(e){var t,n,r,o,i,a,s,f,h,g,y=[],b=e.length,_=0,w=m,E=d;for((n=e.lastIndexOf(v))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&S("not-basic"),y.push(e.charCodeAt(r));for(o=n>0?n+1:0;o<b;){for(i=_,a=1,s=c;o>=b&&S("invalid-input"),((f=T(e.charCodeAt(o++)))>=c||f>x((u-_)/a))&&S("overflow"),_+=f*a,!(f<(h=s<=E?l:s>=E+p?p:s-E));s+=c)a>x(u/(g=c-h))&&S("overflow"),a*=g;E=P(_-i,t=y.length+1,0==i),x(_/t)>u-w&&S("overflow"),w+=x(_/t),_%=t,y.splice(_++,0,w)}return A(y)}function M(e){var t,n,r,o,i,a,s,f,h,g,y,b,_,w,C,k=[];for(b=(e=O(e)).length,t=m,n=0,i=d,a=0;a<b;++a)(y=e[a])<128&&k.push(E(y));for(r=o=k.length,o&&k.push(v);r<b;){for(s=u,a=0;a<b;++a)(y=e[a])>=t&&y<s&&(s=y);for(s-t>x((u-n)/(_=r+1))&&S("overflow"),n+=(s-t)*_,t=s,a=0;a<b;++a)if((y=e[a])<t&&++n>u&&S("overflow"),y==t){for(f=n,h=c;!(f<(g=h<=i?l:h>=i+p?p:h-i));h+=c)C=f-g,w=c-g,k.push(E(j(g+C%w,0))),f=x(C/w);k.push(E(j(f,0))),i=P(n,_,r==o),n=0,++r}++n,++t}return k.join("")}s={version:"1.3.2",ucs2:{decode:O,encode:A},decode:I,encode:M,toASCII:function(e){return k(e,function(e){return y.test(e)?"xn--"+M(e):e})},toUnicode:function(e){return k(e,function(e){return g.test(e)?I(e.slice(4).toLowerCase()):e})}},void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o)}()}).call(this,n(169)(e),n(42))},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(920),t.encode=t.stringify=n(921)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,i){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var s=/\+/g;e=e.split(t);var u=1e3;i&&"number"==typeof i.maxKeys&&(u=i.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var l=0;l<c;++l){var p,f,h,d,m=e[l].replace(s,"%20"),v=m.indexOf(n);v>=0?(p=m.substr(0,v),f=m.substr(v+1)):(p=m,f=""),h=decodeURIComponent(p),d=decodeURIComponent(f),r(a,h)?o(a[h])?a[h].push(d):a[h]=[a[h],d]:a[h]=d}return a};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?i(a(e),function(a){var s=encodeURIComponent(r(a))+n;return o(e[a])?i(e[a],function(e){return s+encodeURIComponent(r(e))}).join(t):s+encodeURIComponent(r(e[a]))}).join(t):s?encodeURIComponent(r(s))+n+encodeURIComponent(r(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function i(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var a=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){var r=n(181),o=n(114),i=n(923),a=n(103),s=n(171),u=n(83),c=Object.prototype.hasOwnProperty,l=i(function(e,t){if(s(t)||a(t))o(t,u(t),e);else for(var n in t)c.call(t,n)&&r(e,n,t[n])});e.exports=l},function(e,t,n){var r=n(924),o=n(384);e.exports=function(e){return r(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t})}},function(e,t,n){var r=n(229),o=n(448),i=n(449);e.exports=function(e,t){return i(o(e,t,r),e+"")}},function(e,t,n){
+ */Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,i=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,u=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,l=r?Symbol.for("react.context"):60110,p=r?Symbol.for("react.async_mode"):60111,f=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.memo"):60115,v=r?Symbol.for("react.lazy"):60116;function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case p:case f:case a:case u:case s:case d:return e;default:switch(e=e&&e.$$typeof){case l:case h:case c:return e;default:return t}}case v:case m:case i:return t}}}function y(e){return g(e)===f}t.typeOf=g,t.AsyncMode=p,t.ConcurrentMode=f,t.ContextConsumer=l,t.ContextProvider=c,t.Element=o,t.ForwardRef=h,t.Fragment=a,t.Lazy=v,t.Memo=m,t.Portal=i,t.Profiler=u,t.StrictMode=s,t.Suspense=d,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===f||e===u||e===s||e===d||"object"==typeof e&&null!==e&&(e.$$typeof===v||e.$$typeof===m||e.$$typeof===c||e.$$typeof===l||e.$$typeof===h)},t.isAsyncMode=function(e){return y(e)||g(e)===p},t.isConcurrentMode=y,t.isContextConsumer=function(e){return g(e)===l},t.isContextProvider=function(e){return g(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return g(e)===h},t.isFragment=function(e){return g(e)===a},t.isLazy=function(e){return g(e)===v},t.isMemo=function(e){return g(e)===m},t.isPortal=function(e){return g(e)===i},t.isProfiler=function(e){return g(e)===u},t.isStrictMode=function(e){return g(e)===s},t.isSuspense=function(e){return g(e)===d}},function(e,t,n){"use strict";function r(e,t,n,r,o){}r.resetWarningCache=function(){0},e.exports=r},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(357).Component,o=n(105).isValidElement,i=n(358),a=n(590);e.exports=a(r,o,i)},function(e,t,n){"use strict";var r=n(25),o=n(165),i=n(15),a="mixins";e.exports=function(e,t,n){var s=[],u={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},c={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)f(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=d(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(i(!(n in l),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e){var o=c.hasOwnProperty(n)?c[n]:null;return i("DEFINE_MANY_MERGED"===o,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=d(e[n],r))}e[n]=r}}}(e,t)},autobind:function(){}};function p(e,t){var n=u.hasOwnProperty(t)?u[t]:null;b.hasOwnProperty(t)&&i("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&i("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function f(e,n){if(n){i("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),i(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,o=r.__reactAutoBindPairs;for(var s in n.hasOwnProperty(a)&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(s)&&s!==a){var c=n[s],f=r.hasOwnProperty(s);if(p(f,s),l.hasOwnProperty(s))l[s](e,c);else{var h=u.hasOwnProperty(s);if("function"==typeof c&&!h&&!f&&!1!==n.autobind)o.push(s,c),r[s]=c;else if(f){var v=u[s];i(h&&("DEFINE_MANY_MERGED"===v||"DEFINE_MANY"===v),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",v,s),"DEFINE_MANY_MERGED"===v?r[s]=d(r[s],c):"DEFINE_MANY"===v&&(r[s]=m(r[s],c))}else r[s]=c}}}else;}function h(e,t){for(var n in i(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(i(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function d(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return h(o,n),h(o,r),o}}function m(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function v(e,t){return t.bind(e)}var g={componentDidMount:function(){this.__isMounted=!0}},y={componentWillUnmount:function(){this.__isMounted=!1}},b={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},_=function(){};return r(_.prototype,e.prototype,b),function(e){var t=function(e,r,a){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=v(e,o)}}(this),this.props=e,this.context=r,this.refs=o,this.updater=a||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;i("object"==typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var r in t.prototype=new _,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],s.forEach(f.bind(null,t)),f(t,g),f(t,e),f(t,y),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),i(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),u)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";var r=n(136),o=n(105);n(15);e.exports=function(e){return o.isValidElement(e)||r("143"),e}},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=n(1),i=(r=o)&&r.__esModule?r:{default:r},a=n(594);t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.default.Map,n=Object.keys(e);return function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t(),o=arguments[1];return r.withMutations(function(t){n.forEach(function(n){var r=(0,e[n])(t.get(n),o);(0,a.validateNextState)(r,n,o),t.set(n,r)})})}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateNextState=t.getUnexpectedInvocationParameterMessage=t.getStateName=void 0;var r=a(n(364)),o=a(n(595)),i=a(n(596));function a(e){return e&&e.__esModule?e:{default:e}}t.getStateName=r.default,t.getUnexpectedInvocationParameterMessage=o.default,t.validateNextState=i.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=i(n(1)),o=i(n(364));function i(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t,n){var i=Object.keys(t);if(!i.length)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";var a=(0,o.default)(n);if(!r.default.Iterable.isIterable(e))return"The "+a+' is of unexpected type. Expected argument to be an instance of Immutable.Iterable with the following properties: "'+i.join('", "')+'".';var s=e.keySeq().toArray().filter(function(e){return!t.hasOwnProperty(e)});return s.length>0?"Unexpected "+(1===s.length?"property":"properties")+' "'+s.join('", "')+'" found in '+a+'. Expected to find one of the known reducer property names instead: "'+i.join('", "')+'". Unexpected properties will be ignored.':null},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,n){if(void 0===e)throw new Error('Reducer "'+t+'" returned undefined when handling "'+n.type+'" action. To ignore an action, you must explicitly return the previous state.')},e.exports=t.default},function(e,t,n){var r=n(14);e.exports=function(e){if(r(e))return e}},function(e,t,n){var r=n(92);e.exports=function(e,t){var n=[],o=!0,i=!1,a=void 0;try{for(var s,u=r(e);!(o=(s=u.next()).done)&&(n.push(s.value),!t||n.length!==t);o=!0);}catch(e){i=!0,a=e}finally{try{o||null==u.return||u.return()}finally{if(i)throw a}}return n}},function(e,t,n){n(103),n(101),e.exports=n(600)},function(e,t,n){var r=n(46),o=n(225);e.exports=n(22).getIterator=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return r(t.call(e))}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t,n){var r=n(69),o=n(270);e.exports=function(e){return o(r(e).toLowerCase())}},function(e,t,n){var r=n(106),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r=n(606),o=n(369),i=n(607),a=n(69);e.exports=function(e){return function(t){t=a(t);var n=o(t)?i(t):void 0,s=n?n[0]:t.charAt(0),u=n?r(n,1).join(""):t.slice(1);return s[e]()+u}}},function(e,t,n){var r=n(368);e.exports=function(e,t,n){var o=e.length;return n=void 0===n?o:n,!t&&n>=o?e:r(e,t,n)}},function(e,t,n){var r=n(608),o=n(369),i=n(609);e.exports=function(e){return o(e)?i(e):r(e)}},function(e,t){e.exports=function(e){return e.split("")}},function(e,t){var n="[\\ud800-\\udfff]",r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",o="\\ud83c[\\udffb-\\udfff]",i="[^\\ud800-\\udfff]",a="(?:\\ud83c[\\udde6-\\uddff]){2}",s="[\\ud800-\\udbff][\\udc00-\\udfff]",u="(?:"+r+"|"+o+")"+"?",c="[\\ufe0e\\ufe0f]?"+u+("(?:\\u200d(?:"+[i,a,s].join("|")+")[\\ufe0e\\ufe0f]?"+u+")*"),l="(?:"+[i+r+"?",r,a,s,n].join("|")+")",p=RegExp(o+"(?="+o+")|"+l+c,"g");e.exports=function(e){return e.match(p)||[]}},function(e,t,n){var r=n(370),o=n(611),i=n(614),a=RegExp("['’]","g");e.exports=function(e){return function(t){return r(i(o(t).replace(a,"")),e,"")}}},function(e,t,n){var r=n(612),o=n(69),i=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,a=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g");e.exports=function(e){return(e=o(e))&&e.replace(i,r).replace(a,"")}},function(e,t,n){var r=n(613)({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"});e.exports=r},function(e,t){e.exports=function(e){return function(t){return null==e?void 0:e[t]}}},function(e,t,n){var r=n(615),o=n(616),i=n(69),a=n(617);e.exports=function(e,t,n){return e=i(e),void 0===(t=n?void 0:t)?o(e)?a(e):r(e):e.match(t)||[]}},function(e,t){var n=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;e.exports=function(e){return e.match(n)||[]}},function(e,t){var n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;e.exports=function(e){return n.test(e)}},function(e,t){var n="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",r="["+n+"]",o="\\d+",i="[\\u2700-\\u27bf]",a="[a-z\\xdf-\\xf6\\xf8-\\xff]",s="[^\\ud800-\\udfff"+n+o+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",u="(?:\\ud83c[\\udde6-\\uddff]){2}",c="[\\ud800-\\udbff][\\udc00-\\udfff]",l="[A-Z\\xc0-\\xd6\\xd8-\\xde]",p="(?:"+a+"|"+s+")",f="(?:"+l+"|"+s+")",h="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",d="[\\ufe0e\\ufe0f]?"+h+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",u,c].join("|")+")[\\ufe0e\\ufe0f]?"+h+")*"),m="(?:"+[i,u,c].join("|")+")"+d,v=RegExp([l+"?"+a+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[r,l,"$"].join("|")+")",f+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[r,l+p,"$"].join("|")+")",l+"?"+p+"+(?:['’](?:d|ll|m|re|s|t|ve))?",l+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",o,m].join("|"),"g");e.exports=function(e){return e.match(v)||[]}},function(e,t,n){var r=n(619),o=n(169),i=n(227);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(i||o),string:new r}}},function(e,t,n){var r=n(620),o=n(625),i=n(626),a=n(627),s=n(628);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}u.prototype.clear=r,u.prototype.delete=o,u.prototype.get=i,u.prototype.has=a,u.prototype.set=s,e.exports=u},function(e,t,n){var r=n(168);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},function(e,t,n){var r=n(371),o=n(622),i=n(52),a=n(372),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,l=u.toString,p=c.hasOwnProperty,f=RegExp("^"+l.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?f:s).test(a(e))}},function(e,t,n){var r,o=n(623),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(51)["__core-js_shared__"];e.exports=r},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t){e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},function(e,t,n){var r=n(168),o="__lodash_hash_undefined__",i=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return n===o?void 0:n}return i.call(t,e)?t[e]:void 0}},function(e,t,n){var r=n(168),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},function(e,t,n){var r=n(168),o="__lodash_hash_undefined__";e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?o:t,this}},function(e,t){e.exports=function(){this.__data__=[],this.size=0}},function(e,t,n){var r=n(170),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},function(e,t,n){var r=n(170);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},function(e,t,n){var r=n(170);e.exports=function(e){return r(this.__data__,e)>-1}},function(e,t,n){var r=n(170);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(171);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},function(e,t){e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},function(e,t,n){var r=n(171);e.exports=function(e){return r(this,e).get(e)}},function(e,t,n){var r=n(171);e.exports=function(e){return r(this,e).has(e)}},function(e,t,n){var r=n(171);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},function(e,t,n){var r=n(172),o=n(107),i=n(85);e.exports=function(e){return function(t,n,a){var s=Object(t);if(!o(t)){var u=r(n,3);t=i(t),n=function(e){return u(s[e],e,s)}}var c=e(t,n,a);return c>-1?s[u?t[c]:c]:void 0}}},function(e,t,n){var r=n(641),o=n(667),i=n(384);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?i(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},function(e,t,n){var r=n(228),o=n(373),i=1,a=2;e.exports=function(e,t,n,s){var u=n.length,c=u,l=!s;if(null==e)return!c;for(e=Object(e);u--;){var p=n[u];if(l&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<c;){var f=(p=n[u])[0],h=e[f],d=p[1];if(l&&p[2]){if(void 0===h&&!(f in e))return!1}else{var m=new r;if(s)var v=s(h,d,f,e,t,m);if(!(void 0===v?o(d,h,i|a,s,m):v))return!1}}return!0}},function(e,t,n){var r=n(169);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(169),o=n(227),i=n(226),a=200;e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var s=n.__data__;if(!o||s.length<a-1)return s.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(s)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(228),o=n(374),i=n(652),a=n(655),s=n(176),u=n(37),c=n(232),l=n(381),p=1,f="[object Arguments]",h="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,v,g,y){var b=u(e),_=u(t),w=b?h:s(e),x=_?h:s(t),E=(w=w==f?d:w)==d,S=(x=x==f?d:x)==d,C=w==x;if(C&&c(e)){if(!c(t))return!1;b=!0,E=!1}if(C&&!E)return y||(y=new r),b||l(e)?o(e,t,n,v,g,y):i(e,t,w,n,v,g,y);if(!(n&p)){var k=E&&m.call(e,"__wrapped__"),O=S&&m.call(t,"__wrapped__");if(k||O){var A=k?e.value():e,T=O?t.value():t;return y||(y=new r),g(A,T,n,v,y)}}return!!C&&(y||(y=new r),a(e,t,n,v,g,y))}},function(e,t,n){var r=n(226),o=n(649),i=n(650);function a(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}a.prototype.add=a.prototype.push=o,a.prototype.has=i,e.exports=a},function(e,t){var n="__lodash_hash_undefined__";e.exports=function(e){return this.__data__.set(e,n),this}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t){e.exports=function(e,t){return e.has(t)}},function(e,t,n){var r=n(106),o=n(376),i=n(91),a=n(374),s=n(653),u=n(654),c=1,l=2,p="[object Boolean]",f="[object Date]",h="[object Error]",d="[object Map]",m="[object Number]",v="[object RegExp]",g="[object Set]",y="[object String]",b="[object Symbol]",_="[object ArrayBuffer]",w="[object DataView]",x=r?r.prototype:void 0,E=x?x.valueOf:void 0;e.exports=function(e,t,n,r,x,S,C){switch(n){case w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case _:return!(e.byteLength!=t.byteLength||!S(new o(e),new o(t)));case p:case f:case m:return i(+e,+t);case h:return e.name==t.name&&e.message==t.message;case v:case y:return e==t+"";case d:var k=s;case g:var O=r&c;if(k||(k=u),e.size!=t.size&&!O)return!1;var A=C.get(e);if(A)return A==t;r|=l,C.set(e,t);var T=a(k(e),k(t),r,x,S,C);return C.delete(e),T;case b:if(E)return E.call(e)==E.call(t)}return!1}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e,r){n[++t]=[r,e]}),n}},function(e,t){e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}},function(e,t,n){var r=n(377),o=1,i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,s,u){var c=n&o,l=r(e),p=l.length;if(p!=r(t).length&&!c)return!1;for(var f=p;f--;){var h=l[f];if(!(c?h in t:i.call(t,h)))return!1}var d=u.get(e);if(d&&u.get(t))return d==t;var m=!0;u.set(e,t),u.set(t,e);for(var v=c;++f<p;){var g=e[h=l[f]],y=t[h];if(a)var b=c?a(y,g,h,t,e,u):a(g,y,h,e,t,u);if(!(void 0===b?g===y||s(g,y,n,a,u):b)){m=!1;break}v||(v="constructor"==h)}if(m&&!v){var _=e.constructor,w=t.constructor;_!=w&&"constructor"in e&&"constructor"in t&&!("function"==typeof _&&_ instanceof _&&"function"==typeof w&&w instanceof w)&&(m=!1)}return u.delete(e),u.delete(t),m}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,i=[];++n<r;){var a=e[n];t(a,n,e)&&(i[o++]=a)}return i}},function(e,t){e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},function(e,t,n){var r=n(83),o=n(66),i="[object Arguments]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t){e.exports=function(){return!1}},function(e,t,n){var r=n(83),o=n(233),i=n(66),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,e.exports=function(e){return i(e)&&o(e.length)&&!!a[r(e)]}},function(e,t,n){var r=n(175),o=n(662),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))i.call(e,n)&&"constructor"!=n&&t.push(n);return t}},function(e,t,n){var r=n(382)(Object.keys,Object);e.exports=r},function(e,t,n){var r=n(84)(n(51),"DataView");e.exports=r},function(e,t,n){var r=n(84)(n(51),"Promise");e.exports=r},function(e,t,n){var r=n(84)(n(51),"Set");e.exports=r},function(e,t,n){var r=n(84)(n(51),"WeakMap");e.exports=r},function(e,t,n){var r=n(383),o=n(85);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var i=t[n],a=e[i];t[n]=[i,a,r(a)]}return t}},function(e,t,n){var r=n(373),o=n(93),i=n(385),a=n(236),s=n(383),u=n(384),c=n(109),l=1,p=2;e.exports=function(e,t){return a(e)&&s(t)?u(c(e),t):function(n){var a=o(n,e);return void 0===a&&a===t?i(n,e):r(t,a,l|p)}}},function(e,t,n){var r=n(670),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g,a=r(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,function(e,n,r,o){t.push(r?o.replace(i,"$1"):n||e)}),t});e.exports=a},function(e,t,n){var r=n(271),o=500;e.exports=function(e){var t=r(e,function(e){return n.size===o&&n.clear(),e}),n=t.cache;return t}},function(e,t){e.exports=function(e,t){return null!=e&&t in Object(e)}},function(e,t,n){var r=n(108),o=n(231),i=n(37),a=n(174),s=n(233),u=n(109);e.exports=function(e,t,n){for(var c=-1,l=(t=r(t,e)).length,p=!1;++c<l;){var f=u(t[c]);if(!(p=null!=e&&n(e,f)))break;e=e[f]}return p||++c!=l?p:!!(l=null==e?0:e.length)&&s(l)&&a(f,l)&&(i(e)||o(e))}},function(e,t,n){var r=n(674),o=n(675),i=n(236),a=n(109);e.exports=function(e){return i(e)?r(a(e)):o(e)}},function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},function(e,t,n){var r=n(177);e.exports=function(e){return function(t){return r(t,e)}}},function(e,t,n){var r=n(677),o=n(172),i=n(386),a=Math.max;e.exports=function(e,t,n){var s=null==e?0:e.length;if(!s)return-1;var u=null==n?0:i(n);return u<0&&(u=a(s+u,0)),r(e,o(t,3),u)}},function(e,t){e.exports=function(e,t,n,r){for(var o=e.length,i=n+(r?1:-1);r?i--:++i<o;)if(t(e[i],i,e))return i;return-1}},function(e,t,n){var r=n(387),o=1/0,i=17976931348623157e292;e.exports=function(e){return e?(e=r(e))===o||e===-o?(e<0?-1:1)*i:e==e?e:0:0===e?e:0}},function(e,t,n){var r=n(388);e.exports=function(e,t){var n;return r(e,function(e,r,o){return!(n=t(e,r,o))}),!!n}},function(e,t,n){var r=n(681),o=n(85);e.exports=function(e,t){return e&&r(e,t,o)}},function(e,t,n){var r=n(682)();e.exports=r},function(e,t){e.exports=function(e){return function(t,n,r){for(var o=-1,i=Object(t),a=r(t),s=a.length;s--;){var u=a[e?s:++o];if(!1===n(i[u],u,i))break}return t}}},function(e,t,n){var r=n(107);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var i=n.length,a=t?i:-1,s=Object(n);(t?a--:++a<i)&&!1!==o(s[a],a,s););return n}}},function(e,t){var n={"&":"&amp;",'"':"&quot;","'":"&apos;","<":"&lt;",">":"&gt;"};e.exports=function(e){return e&&e.replace?e.replace(/([&"<>'])/g,function(e,t){return n[t]}):e}},function(e,t,n){e.exports=o;var r=n(238).EventEmitter;function o(){r.call(this)}n(47)(o,r),o.Readable=n(239),o.Writable=n(692),o.Duplex=n(693),o.Transform=n(694),o.PassThrough=n(695),o.Stream=o,o.prototype.pipe=function(e,t){var n=this;function o(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function i(){n.readable&&n.resume&&n.resume()}n.on("data",o),e.on("drain",i),e._isStdio||t&&!1===t.end||(n.on("end",s),n.on("close",u));var a=!1;function s(){a||(a=!0,e.end())}function u(){a||(a=!0,"function"==typeof e.destroy&&e.destroy())}function c(e){if(l(),0===r.listenerCount(this,"error"))throw e}function l(){n.removeListener("data",o),e.removeListener("drain",i),n.removeListener("end",s),n.removeListener("close",u),n.removeListener("error",c),e.removeListener("error",c),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("error",c),e.on("error",c),n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e}},function(e,t){},function(e,t,n){"use strict";var r=n(48).Buffer,o=n(688);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,u=1,c={},l=!1,p=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick(function(){d(e)})}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){d(e.data)},r=function(e){i.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(o=p.documentElement,r=function(e){var t=p.createElement("script");t.onreadystatechange=function(){d(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(d,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&d(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var o={callback:e,args:t};return c[u]=o,r(u),u++},f.clearImmediate=h}function h(e){delete c[e]}function d(e){if(l)setTimeout(d,0,e);else{var t=c[e];if(t){l=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{h(e),l=!1}}}}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,n(36),n(67))},function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(this,n(36))},function(e,t,n){"use strict";e.exports=i;var r=n(395),o=n(137);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}o.inherits=n(47),o.inherits(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){e.exports=n(240)},function(e,t,n){e.exports=n(86)},function(e,t,n){e.exports=n(239).Transform},function(e,t,n){e.exports=n(239).PassThrough},function(e,t,n){"use strict";var r=n(697),o=Math.abs,i=Math.floor;e.exports=function(e){return isNaN(e)?0:0!==(e=Number(e))&&isFinite(e)?r(e)*i(o(e)):e}},function(e,t,n){"use strict";e.exports=n(698)()?Math.sign:n(699)},function(e,t,n){"use strict";e.exports=function(){var e=Math.sign;return"function"==typeof e&&(1===e(10)&&-1===e(-20))}},function(e,t,n){"use strict";e.exports=function(e){return e=Number(e),isNaN(e)||0===e?e:e>0?1:-1}},function(e,t,n){"use strict";var r=n(78),o=n(179),i=n(89),a=n(702),s=n(398);e.exports=function e(t){var n,u,c;if(r(t),(n=Object(arguments[1])).async&&n.promise)throw new Error("Options 'async' and 'promise' cannot be used together");return hasOwnProperty.call(t,"__memoized__")&&!n.force?t:(u=s(n.length,t.length,n.async&&i.async),c=a(t,u,n),o(i,function(e,t){n[t]&&e(n[t],c,n)}),e.__profiler__&&e.__profiler__(c),c.updateEnv(),c.memoized)}},function(e,t,n){"use strict";var r=n(78),o=n(110),i=Function.prototype.bind,a=Function.prototype.call,s=Object.keys,u=Object.prototype.propertyIsEnumerable;e.exports=function(e,t){return function(n,c){var l,p=arguments[2],f=arguments[3];return n=Object(o(n)),r(c),l=s(n),f&&l.sort("function"==typeof f?i.call(f,n):void 0),"function"!=typeof e&&(e=l[e]),a.call(e,l,function(e,r){return u.call(n,e)?a.call(c,p,n[e],e,n,r):t})}}},function(e,t,n){"use strict";var r=n(703),o=n(400),i=n(180),a=n(713).methods,s=n(714),u=n(726),c=Function.prototype.apply,l=Function.prototype.call,p=Object.create,f=Object.defineProperties,h=a.on,d=a.emit;e.exports=function(e,t,n){var a,m,v,g,y,b,_,w,x,E,S,C,k,O,A,T=p(null);return m=!1!==t?t:isNaN(e.length)?1:e.length,n.normalizer&&(E=u(n.normalizer),v=E.get,g=E.set,y=E.delete,b=E.clear),null!=n.resolvers&&(A=s(n.resolvers)),O=v?o(function(t){var n,o,i=arguments;if(A&&(i=A(i)),null!==(n=v(i))&&hasOwnProperty.call(T,n))return S&&a.emit("get",n,i,this),T[n];if(o=1===i.length?l.call(e,this,i[0]):c.call(e,this,i),null===n){if(null!==(n=v(i)))throw r("Circular invocation","CIRCULAR_INVOCATION");n=g(i)}else if(hasOwnProperty.call(T,n))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[n]=o,C&&a.emit("set",n,null,o),o},m):0===t?function(){var t;if(hasOwnProperty.call(T,"data"))return S&&a.emit("get","data",arguments,this),T.data;if(t=arguments.length?c.call(e,this,arguments):l.call(e,this),hasOwnProperty.call(T,"data"))throw r("Circular invocation","CIRCULAR_INVOCATION");return T.data=t,C&&a.emit("set","data",null,t),t}:function(t){var n,o,i=arguments;if(A&&(i=A(arguments)),o=String(i[0]),hasOwnProperty.call(T,o))return S&&a.emit("get",o,i,this),T[o];if(n=1===i.length?l.call(e,this,i[0]):c.call(e,this,i),hasOwnProperty.call(T,o))throw r("Circular invocation","CIRCULAR_INVOCATION");return T[o]=n,C&&a.emit("set",o,null,n),n},a={original:e,memoized:O,profileName:n.profileName,get:function(e){return A&&(e=A(e)),v?v(e):String(e[0])},has:function(e){return hasOwnProperty.call(T,e)},delete:function(e){var t;hasOwnProperty.call(T,e)&&(y&&y(e),t=T[e],delete T[e],k&&a.emit("delete",e,t))},clear:function(){var e=T;b&&b(),T=p(null),a.emit("clear",e)},on:function(e,t){return"get"===e?S=!0:"set"===e?C=!0:"delete"===e&&(k=!0),h.call(this,e,t)},emit:d,updateEnv:function(){e=a.original}},_=v?o(function(e){var t,n=arguments;A&&(n=A(n)),null!==(t=v(n))&&a.delete(t)},m):0===t?function(){return a.delete("data")}:function(e){return A&&(e=A(arguments)[0]),a.delete(e)},w=o(function(){var e,n=arguments;return 0===t?T.data:(A&&(n=A(n)),e=v?v(n):String(n[0]),T[e])}),x=o(function(){var e,n=arguments;return 0===t?a.has("data"):(A&&(n=A(n)),null!==(e=v?v(n):String(n[0]))&&a.has(e))}),f(O,{__memoized__:i(!0),delete:i(_),clear:i(a.clear),_get:i(w),_has:i(x)}),a}},function(e,t,n){"use strict";var r=n(399),o=n(709),i=n(87),a=Error.captureStackTrace;t=e.exports=function(e){var n=new Error(e),s=arguments[1],u=arguments[2];return i(u)||o(s)&&(u=s,s=null),i(u)&&r(n,u),i(s)&&(n.code=s),a&&a(n,t),n}},function(e,t,n){"use strict";e.exports=function(){var e,t=Object.assign;return"function"==typeof t&&(t(e={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),e.foo+e.bar+e.trzy==="razdwatrzy")}},function(e,t,n){"use strict";var r=n(706),o=n(110),i=Math.max;e.exports=function(e,t){var n,a,s,u=i(arguments.length,2);for(e=Object(o(e)),s=function(r){try{e[r]=t[r]}catch(e){n||(n=e)}},a=1;a<u;++a)t=arguments[a],r(t).forEach(s);if(void 0!==n)throw n;return e}},function(e,t,n){"use strict";e.exports=n(707)()?Object.keys:n(708)},function(e,t,n){"use strict";e.exports=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}},function(e,t,n){"use strict";var r=n(87),o=Object.keys;e.exports=function(e){return o(r(e)?Object(e):e)}},function(e,t,n){"use strict";var r=n(87),o={function:!0,object:!0};e.exports=function(e){return r(e)&&o[typeof e]||!1}},function(e,t,n){"use strict";e.exports=n(711)()?String.prototype.contains:n(712)},function(e,t,n){"use strict";var r="razdwatrzy";e.exports=function(){return"function"==typeof r.contains&&(!0===r.contains("dwa")&&!1===r.contains("foo"))}},function(e,t,n){"use strict";var r=String.prototype.indexOf;e.exports=function(e){return r.call(this,e,arguments[1])>-1}},function(e,t,n){"use strict";var r,o,i,a,s,u,c,l=n(180),p=n(78),f=Function.prototype.apply,h=Function.prototype.call,d=Object.create,m=Object.defineProperty,v=Object.defineProperties,g=Object.prototype.hasOwnProperty,y={configurable:!0,enumerable:!1,writable:!0};o=function(e,t){var n,o;return p(t),o=this,r.call(this,e,n=function(){i.call(o,e,n),f.call(t,this,arguments)}),n.__eeOnceListener__=t,this},s={on:r=function(e,t){var n;return p(t),g.call(this,"__ee__")?n=this.__ee__:(n=y.value=d(null),m(this,"__ee__",y),y.value=null),n[e]?"object"==typeof n[e]?n[e].push(t):n[e]=[n[e],t]:n[e]=t,this},once:o,off:i=function(e,t){var n,r,o,i;if(p(t),!g.call(this,"__ee__"))return this;if(!(n=this.__ee__)[e])return this;if("object"==typeof(r=n[e]))for(i=0;o=r[i];++i)o!==t&&o.__eeOnceListener__!==t||(2===r.length?n[e]=r[i?0:1]:r.splice(i,1));else r!==t&&r.__eeOnceListener__!==t||delete n[e];return this},emit:a=function(e){var t,n,r,o,i;if(g.call(this,"__ee__")&&(o=this.__ee__[e]))if("object"==typeof o){for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];for(o=o.slice(),t=0;r=o[t];++t)f.call(r,this,i)}else switch(arguments.length){case 1:h.call(o,this);break;case 2:h.call(o,this,arguments[1]);break;case 3:h.call(o,this,arguments[1],arguments[2]);break;default:for(n=arguments.length,i=new Array(n-1),t=1;t<n;++t)i[t-1]=arguments[t];f.call(o,this,i)}}},u={on:l(r),once:l(o),off:l(i),emit:l(a)},c=v({},u),e.exports=t=function(e){return null==e?d(c):v(Object(e),u)},t.methods=s},function(e,t,n){"use strict";var r,o=n(715),i=n(87),a=n(78),s=Array.prototype.slice;r=function(e){return this.map(function(t,n){return t?t(e[n]):e[n]}).concat(s.call(e,this.length))},e.exports=function(e){return(e=o(e)).forEach(function(e){i(e)&&a(e)}),r.bind(e)}},function(e,t,n){"use strict";var r=n(242),o=Array.isArray;e.exports=function(e){return o(e)?e:r(e)}},function(e,t,n){"use strict";e.exports=function(){var e,t,n=Array.from;return"function"==typeof n&&(t=n(e=["raz","dwa"]),Boolean(t&&t!==e&&"dwa"===t[1]))}},function(e,t,n){"use strict";var r=n(718).iterator,o=n(723),i=n(724),a=n(88),s=n(78),u=n(110),c=n(87),l=n(725),p=Array.isArray,f=Function.prototype.call,h={configurable:!0,enumerable:!0,writable:!0,value:null},d=Object.defineProperty;e.exports=function(e){var t,n,m,v,g,y,b,_,w,x,E=arguments[1],S=arguments[2];if(e=Object(u(e)),c(E)&&s(E),this&&this!==Array&&i(this))t=this;else{if(!E){if(o(e))return 1!==(g=e.length)?Array.apply(null,e):((v=new Array(1))[0]=e[0],v);if(p(e)){for(v=new Array(g=e.length),n=0;n<g;++n)v[n]=e[n];return v}}v=[]}if(!p(e))if(void 0!==(w=e[r])){for(b=s(w).call(e),t&&(v=new t),_=b.next(),n=0;!_.done;)x=E?f.call(E,S,_.value,n):_.value,t?(h.value=x,d(v,n,h)):v[n]=x,_=b.next(),++n;g=n}else if(l(e)){for(g=e.length,t&&(v=new t),n=0,m=0;n<g;++n)x=e[n],n+1<g&&(y=x.charCodeAt(0))>=55296&&y<=56319&&(x+=e[++n]),x=E?f.call(E,S,x,m):x,t?(h.value=x,d(v,m,h)):v[m]=x,++m;g=m}if(void 0===g)for(g=a(e.length),t&&(v=new t(g)),n=0;n<g;++n)x=E?f.call(E,S,e[n],n):e[n],t?(h.value=x,d(v,n,h)):v[n]=x;return t&&(h.value=null,v.length=g),v}},function(e,t,n){"use strict";e.exports=n(719)()?Symbol:n(720)},function(e,t,n){"use strict";var r={object:!0,symbol:!0};e.exports=function(){var e;if("function"!=typeof Symbol)return!1;e=Symbol("test symbol");try{String(e)}catch(e){return!1}return!!r[typeof Symbol.iterator]&&(!!r[typeof Symbol.toPrimitive]&&!!r[typeof Symbol.toStringTag])}},function(e,t,n){"use strict";var r,o,i,a,s=n(180),u=n(721),c=Object.create,l=Object.defineProperties,p=Object.defineProperty,f=Object.prototype,h=c(null);if("function"==typeof Symbol){r=Symbol;try{String(r()),a=!0}catch(e){}}var d,m=(d=c(null),function(e){for(var t,n,r=0;d[e+(r||"")];)++r;return d[e+=r||""]=!0,p(f,t="@@"+e,s.gs(null,function(e){n||(n=!0,p(this,t,s(e)),n=!1)})),t});i=function(e){if(this instanceof i)throw new TypeError("Symbol is not a constructor");return o(e)},e.exports=o=function e(t){var n;if(this instanceof e)throw new TypeError("Symbol is not a constructor");return a?r(t):(n=c(i.prototype),t=void 0===t?"":String(t),l(n,{__description__:s("",t),__name__:s("",m(t))}))},l(o,{for:s(function(e){return h[e]?h[e]:h[e]=o(String(e))}),keyFor:s(function(e){var t;for(t in u(e),h)if(h[t]===e)return t}),hasInstance:s("",r&&r.hasInstance||o("hasInstance")),isConcatSpreadable:s("",r&&r.isConcatSpreadable||o("isConcatSpreadable")),iterator:s("",r&&r.iterator||o("iterator")),match:s("",r&&r.match||o("match")),replace:s("",r&&r.replace||o("replace")),search:s("",r&&r.search||o("search")),species:s("",r&&r.species||o("species")),split:s("",r&&r.split||o("split")),toPrimitive:s("",r&&r.toPrimitive||o("toPrimitive")),toStringTag:s("",r&&r.toStringTag||o("toStringTag")),unscopables:s("",r&&r.unscopables||o("unscopables"))}),l(i.prototype,{constructor:s(o),toString:s("",function(){return this.__name__})}),l(o.prototype,{toString:s(function(){return"Symbol ("+u(this).__description__+")"}),valueOf:s(function(){return u(this)})}),p(o.prototype,o.toPrimitive,s("",function(){var e=u(this);return"symbol"==typeof e?e:e.toString()})),p(o.prototype,o.toStringTag,s("c","Symbol")),p(i.prototype,o.toStringTag,s("c",o.prototype[o.toStringTag])),p(i.prototype,o.toPrimitive,s("c",o.prototype[o.toPrimitive]))},function(e,t,n){"use strict";var r=n(722);e.exports=function(e){if(!r(e))throw new TypeError(e+" is not a symbol");return e}},function(e,t,n){"use strict";e.exports=function(e){return!!e&&("symbol"==typeof e||!!e.constructor&&("Symbol"===e.constructor.name&&"Symbol"===e[e.constructor.toStringTag]))}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call(function(){return arguments}());e.exports=function(e){return r.call(e)===o}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call(n(397));e.exports=function(e){return"function"==typeof e&&r.call(e)===o}},function(e,t,n){"use strict";var r=Object.prototype.toString,o=r.call("");e.exports=function(e){return"string"==typeof e||e&&"object"==typeof e&&(e instanceof String||r.call(e)===o)||!1}},function(e,t,n){"use strict";var r=n(78);e.exports=function(e){var t;return"function"==typeof e?{set:e,get:e}:(t={get:r(e.get)},void 0!==e.set?(t.set=r(e.set),e.delete&&(t.delete=r(e.delete)),e.clear&&(t.clear=r(e.clear)),t):(t.set=t.get,t))}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r=e.length;if(!r)return"\ 2";for(t=String(e[n=0]);--r;)t+="\ 1"+e[++n];return t}},function(e,t,n){"use strict";e.exports=function(e){return e?function(t){for(var n=String(t[0]),r=0,o=e;--o;)n+="\ 1"+t[++r];return n}:function(){return""}}},function(e,t,n){"use strict";var r=n(243),o=Object.create;e.exports=function(){var e=0,t=[],n=o(null);return{get:function(e){var n,o=0,i=t,a=e.length;if(0===a)return i[a]||null;if(i=i[a]){for(;o<a-1;){if(-1===(n=r.call(i[0],e[o])))return null;i=i[1][n],++o}return-1===(n=r.call(i[0],e[o]))?null:i[1][n]||null}return null},set:function(o){var i,a=0,s=t,u=o.length;if(0===u)s[u]=++e;else{for(s[u]||(s[u]=[[],[]]),s=s[u];a<u-1;)-1===(i=r.call(s[0],o[a]))&&(i=s[0].push(o[a])-1,s[1].push([[],[]])),s=s[1][i],++a;-1===(i=r.call(s[0],o[a]))&&(i=s[0].push(o[a])-1),s[1][i]=++e}return n[e]=o,e},delete:function(e){var o,i=0,a=t,s=n[e],u=s.length,c=[];if(0===u)delete a[u];else if(a=a[u]){for(;i<u-1;){if(-1===(o=r.call(a[0],s[i])))return;c.push(a,o),a=a[1][o],++i}if(-1===(o=r.call(a[0],s[i])))return;for(e=a[1][o],a[0].splice(o,1),a[1].splice(o,1);!a[0].length&&c.length;)o=c.pop(),(a=c.pop())[0].splice(o,1),a[1].splice(o,1)}delete n[e]},clear:function(){t=[],n=o(null)}}}},function(e,t,n){"use strict";e.exports=n(731)()?Number.isNaN:n(732)},function(e,t,n){"use strict";e.exports=function(){var e=Number.isNaN;return"function"==typeof e&&(!e({})&&e(NaN)&&!e(34))}},function(e,t,n){"use strict";e.exports=function(e){return e!=e}},function(e,t,n){"use strict";var r=n(243);e.exports=function(){var e=0,t=[],n=[];return{get:function(e){var o=r.call(t,e[0]);return-1===o?null:n[o]},set:function(r){return t.push(r[0]),n.push(++e),e},delete:function(e){var o=r.call(n,e);-1!==o&&(t.splice(o,1),n.splice(o,1))},clear:function(){t=[],n=[]}}}},function(e,t,n){"use strict";var r=n(243),o=Object.create;e.exports=function(e){var t=0,n=[[],[]],i=o(null);return{get:function(t){for(var o,i=0,a=n;i<e-1;){if(-1===(o=r.call(a[0],t[i])))return null;a=a[1][o],++i}return-1===(o=r.call(a[0],t[i]))?null:a[1][o]||null},set:function(o){for(var a,s=0,u=n;s<e-1;)-1===(a=r.call(u[0],o[s]))&&(a=u[0].push(o[s])-1,u[1].push([[],[]])),u=u[1][a],++s;return-1===(a=r.call(u[0],o[s]))&&(a=u[0].push(o[s])-1),u[1][a]=++t,i[t]=o,t},delete:function(t){for(var o,a=0,s=n,u=[],c=i[t];a<e-1;){if(-1===(o=r.call(s[0],c[a])))return;u.push(s,o),s=s[1][o],++a}if(-1!==(o=r.call(s[0],c[a]))){for(t=s[1][o],s[0].splice(o,1),s[1].splice(o,1);!s[0].length&&u.length;)o=u.pop(),(s=u.pop())[0].splice(o,1),s[1].splice(o,1);delete i[t]}},clear:function(){n=[[],[]],i=o(null)}}}},function(e,t,n){"use strict";var r=n(242),o=n(402),i=n(401),a=n(400),s=n(244),u=Array.prototype.slice,c=Function.prototype.apply,l=Object.create;n(89).async=function(e,t){var n,p,f,h=l(null),d=l(null),m=t.memoized,v=t.original;t.memoized=a(function(e){var t=arguments,r=t[t.length-1];return"function"==typeof r&&(n=r,t=u.call(t,0,-1)),m.apply(p=this,f=t)},m);try{i(t.memoized,m)}catch(e){}t.on("get",function(e){var r,o,i;if(n){if(h[e])return"function"==typeof h[e]?h[e]=[h[e],n]:h[e].push(n),void(n=null);r=n,o=p,i=f,n=p=f=null,s(function(){var a;hasOwnProperty.call(d,e)?(a=d[e],t.emit("getasync",e,i,o),c.call(r,a.context,a.args)):(n=r,p=o,f=i,m.apply(o,i))})}}),t.original=function(){var e,o,i,a;return n?(e=r(arguments),o=function e(n){var o,i,u=e.id;if(null!=u){if(delete e.id,o=h[u],delete h[u],o)return i=r(arguments),t.has(u)&&(n?t.delete(u):(d[u]={context:this,args:i},t.emit("setasync",u,"function"==typeof o?1:o.length))),"function"==typeof o?a=c.call(o,this,i):o.forEach(function(e){a=c.call(e,this,i)},this),a}else s(c.bind(e,this,arguments))},i=n,n=p=f=null,e.push(o),a=c.call(v,this,e),o.cb=i,n=o,a):c.call(v,this,arguments)},t.on("set",function(e){n?(h[e]?"function"==typeof h[e]?h[e]=[h[e],n.cb]:h[e].push(n.cb):h[e]=n.cb,delete n.cb,n.id=e,n=null):t.delete(e)}),t.on("delete",function(e){var n;hasOwnProperty.call(h,e)||d[e]&&(n=d[e],delete d[e],t.emit("deleteasync",e,u.call(n.args,1)))}),t.on("clear",function(){var e=d;d=l(null),t.emit("clearasync",o(e,function(e){return u.call(e.args,1)}))})}},function(e,t,n){"use strict";var r=n(402),o=n(737),i=n(738),a=n(740),s=n(403),u=n(244),c=Object.create,l=o("then","then:finally","done","done:finally");n(89).promise=function(e,t){var n=c(null),o=c(null),p=c(null);if(!0===e)e=null;else if(e=i(e),!l[e])throw new TypeError("'"+a(e)+"' is not valid promise mode");t.on("set",function(r,i,a){var c=!1;if(!s(a))return o[r]=a,void t.emit("setasync",r,1);n[r]=1,p[r]=a;var l=function(e){var i=n[r];if(c)throw new Error("Memoizee error: Detected unordered then|done & finally resolution, which in turn makes proper detection of success/failure impossible (when in 'done:finally' mode)\nConsider to rely on 'then' or 'done' mode instead.");i&&(delete n[r],o[r]=e,t.emit("setasync",r,i))},f=function(){c=!0,n[r]&&(delete n[r],delete p[r],t.delete(r))},h=e;if(h||(h="then"),"then"===h){var d=function(){u(f)};"function"==typeof(a=a.then(function(e){u(l.bind(this,e))},d)).finally&&a.finally(d)}else if("done"===h){if("function"!=typeof a.done)throw new Error("Memoizee error: Retrieved promise does not implement 'done' in 'done' mode");a.done(l,f)}else if("done:finally"===h){if("function"!=typeof a.done)throw new Error("Memoizee error: Retrieved promise does not implement 'done' in 'done:finally' mode");if("function"!=typeof a.finally)throw new Error("Memoizee error: Retrieved promise does not implement 'finally' in 'done:finally' mode");a.done(l),a.finally(f)}}),t.on("get",function(e,r,o){var i;if(n[e])++n[e];else{i=p[e];var a=function(){t.emit("getasync",e,r,o)};s(i)?"function"==typeof i.done?i.done(a):i.then(function(){u(a)}):a()}}),t.on("delete",function(e){if(delete p[e],n[e])delete n[e];else if(hasOwnProperty.call(o,e)){var r=o[e];delete o[e],t.emit("deleteasync",e,[r])}}),t.on("clear",function(){var e=o;o=c(null),n=c(null),p=c(null),t.emit("clearasync",r(e,function(e){return[e]}))})}},function(e,t,n){"use strict";var r=Array.prototype.forEach,o=Object.create;e.exports=function(e){var t=o(null);return r.call(arguments,function(e){t[e]=!0}),t}},function(e,t,n){"use strict";var r=n(110),o=n(739);e.exports=function(e){return o(r(e))}},function(e,t,n){"use strict";var r=n(241);e.exports=function(e){try{return e&&r(e.toString)?e.toString():String(e)}catch(e){throw new TypeError("Passed argument cannot be stringifed")}}},function(e,t,n){"use strict";var r=n(741),o=/[\n\r\u2028\u2029]/g;e.exports=function(e){var t=r(e);return t.length>100&&(t=t.slice(0,99)+"…"),t=t.replace(o,function(e){return JSON.stringify(e).slice(1,-1)})}},function(e,t,n){"use strict";var r=n(241);e.exports=function(e){try{return e&&r(e.toString)?e.toString():String(e)}catch(e){return"<Non-coercible to string value>"}}},function(e,t,n){"use strict";var r=n(78),o=n(179),i=n(89),a=Function.prototype.apply;i.dispose=function(e,t,n){var s;if(r(e),n.async&&i.async||n.promise&&i.promise)return t.on("deleteasync",s=function(t,n){a.call(e,null,n)}),void t.on("clearasync",function(e){o(e,function(e,t){s(t,e)})});t.on("delete",s=function(t,n){e(n)}),t.on("clear",function(e){o(e,function(e,t){s(t,e)})})}},function(e,t,n){"use strict";var r=n(242),o=n(179),i=n(244),a=n(403),s=n(744),u=n(89),c=Function.prototype,l=Math.max,p=Math.min,f=Object.create;u.maxAge=function(e,t,n){var h,d,m,v;(e=s(e))&&(h=f(null),d=n.async&&u.async||n.promise&&u.promise?"async":"",t.on("set"+d,function(n){h[n]=setTimeout(function(){t.delete(n)},e),"function"==typeof h[n].unref&&h[n].unref(),v&&(v[n]&&"nextTick"!==v[n]&&clearTimeout(v[n]),v[n]=setTimeout(function(){delete v[n]},m),"function"==typeof v[n].unref&&v[n].unref())}),t.on("delete"+d,function(e){clearTimeout(h[e]),delete h[e],v&&("nextTick"!==v[e]&&clearTimeout(v[e]),delete v[e])}),n.preFetch&&(m=!0===n.preFetch||isNaN(n.preFetch)?.333:l(p(Number(n.preFetch),1),0))&&(v={},m=(1-m)*e,t.on("get"+d,function(e,o,s){v[e]||(v[e]="nextTick",i(function(){var i;"nextTick"===v[e]&&(delete v[e],t.delete(e),n.async&&(o=r(o)).push(c),i=t.memoized.apply(s,o),n.promise&&a(i)&&("function"==typeof i.done?i.done(c,c):i.then(c,c)))}))})),t.on("clear"+d,function(){o(h,function(e){clearTimeout(e)}),h={},v&&(o(v,function(e){"nextTick"!==e&&clearTimeout(e)}),v={})}))}},function(e,t,n){"use strict";var r=n(88),o=n(745);e.exports=function(e){if((e=r(e))>o)throw new TypeError(e+" exceeds maximum possible timeout");return e}},function(e,t,n){"use strict";e.exports=2147483647},function(e,t,n){"use strict";var r=n(88),o=n(747),i=n(89);i.max=function(e,t,n){var a,s,u;(e=r(e))&&(s=o(e),a=n.async&&i.async||n.promise&&i.promise?"async":"",t.on("set"+a,u=function(e){void 0!==(e=s.hit(e))&&t.delete(e)}),t.on("get"+a,u),t.on("delete"+a,s.delete),t.on("clear"+a,s.clear))}},function(e,t,n){"use strict";var r=n(88),o=Object.create,i=Object.prototype.hasOwnProperty;e.exports=function(e){var t,n=0,a=1,s=o(null),u=o(null),c=0;return e=r(e),{hit:function(r){var o=u[r],l=++c;if(s[l]=r,u[r]=l,!o){if(++n<=e)return;return r=s[a],t(r),r}if(delete s[o],a===o)for(;!i.call(s,++a);)continue},delete:t=function(e){var t=u[e];if(t&&(delete s[t],delete u[e],--n,a===t)){if(!n)return c=0,void(a=1);for(;!i.call(s,++a);)continue}},clear:function(){n=0,a=1,s=o(null),u=o(null),c=0}}}},function(e,t,n){"use strict";var r=n(180),o=n(89),i=Object.create,a=Object.defineProperties;o.refCounter=function(e,t,n){var s,u;s=i(null),u=n.async&&o.async||n.promise&&o.promise?"async":"",t.on("set"+u,function(e,t){s[e]=t||1}),t.on("get"+u,function(e){++s[e]}),t.on("delete"+u,function(e){delete s[e]}),t.on("clear"+u,function(){s={}}),a(t.memoized,{deleteRef:r(function(){var e=t.get(arguments);return null===e?null:s[e]?!--s[e]&&(t.delete(e),!0):null}),getRefCount:r(function(){var e=t.get(arguments);return null===e?0:s[e]?s[e]:0})})}},function(e,t,n){var r=n(47),o=n(111),i=n(48).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<30|e>>>2}function l(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,p=0;p<16;++p)n[p]=e.readInt32BE(4*p);for(;p<80;++p)n[p]=n[p-3]^n[p-8]^n[p-14]^n[p-16];for(var f=0;f<80;++f){var h=~~(f/20),d=0|((t=r)<<5|t>>>27)+l(h,o,i,s)+u+n[f]+a[h];u=s,s=i,i=c(o),o=r,r=d}this._a=r+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,n){var r=n(47),o=n(111),i=n(48).Buffer,a=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function u(){this.init(),this._w=s,o.call(this,64,56)}function c(e){return e<<5|e>>>27}function l(e){return e<<30|e>>>2}function p(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(u,o),u.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},u.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,o=0|this._b,i=0|this._c,s=0|this._d,u=0|this._e,f=0;f<16;++f)n[f]=e.readInt32BE(4*f);for(;f<80;++f)n[f]=(t=n[f-3]^n[f-8]^n[f-14]^n[f-16])<<1|t>>>31;for(var h=0;h<80;++h){var d=~~(h/20),m=c(r)+p(d,o,i,s)+u+n[h]+a[d]|0;u=s,s=i,i=l(o),o=r,r=m}this._a=r+this._a|0,this._b=o+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=u+this._e|0},u.prototype._hash=function(){var e=i.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=u},function(e,t,n){var r=n(47),o=n(404),i=n(111),a=n(48).Buffer,s=new Array(64);function u(){this.init(),this._w=s,i.call(this,64,56)}r(u,o),u.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=u},function(e,t,n){var r=n(47),o=n(405),i=n(111),a=n(48).Buffer,s=new Array(160);function u(){this.init(),this._w=s,i.call(this,128,112)}r(u,o),u.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},u.prototype._hash=function(){var e=a.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=u},function(e,t){e.exports=function(e,t,n,r,o){return o(e,function(e,o,i){n=r?(r=!1,e):t(n,e,o,i)}),n}},function(e,t,n){var r=n(14);e.exports=function(e){if(r(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t,n){var r=n(756),o=n(759);e.exports=function(e){if(o(Object(e))||"[object Arguments]"===Object.prototype.toString.call(e))return r(e)}},function(e,t,n){e.exports=n(757)},function(e,t,n){n(101),n(758),e.exports=n(22).Array.from},function(e,t,n){"use strict";var r=n(63),o=n(30),i=n(100),a=n(406),s=n(407),u=n(158),c=n(408),l=n(225);o(o.S+o.F*!n(409)(function(e){Array.from(e)}),"Array",{from:function(e){var t,n,o,p,f=i(e),h="function"==typeof this?this:Array,d=arguments.length,m=d>1?arguments[1]:void 0,v=void 0!==m,g=0,y=l(f);if(v&&(m=r(m,d>2?arguments[2]:void 0,2)),null==y||h==Array&&s(y))for(n=new h(t=u(f.length));t>g;g++)c(n,g,v?m(f[g],g):f[g]);else for(p=y.call(f),n=new h;!(o=p.next()).done;g++)c(n,g,v?a(p,m,[o.value,g],!0):o.value);return n.length=g,n}})},function(e,t,n){e.exports=n(760)},function(e,t,n){n(103),n(101),e.exports=n(761)},function(e,t,n){var r=n(166),o=n(34)("iterator"),i=n(102);e.exports=n(22).isIterable=function(e){var t=Object(e);return void 0!==t[o]||"@@iterator"in t||i.hasOwnProperty(r(t))}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){n(764);var r=n(22).Object;e.exports=function(e,t){return r.defineProperties(e,t)}},function(e,t,n){var r=n(30);r(r.S+r.F*!n(50),"Object",{defineProperties:n(350)})},function(e,t,n){n(766),e.exports=n(22).Object.getOwnPropertyDescriptors},function(e,t,n){var r=n(30),o=n(767),i=n(76),a=n(163),s=n(408);r(r.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,n,r=i(e),u=a.f,c=o(r),l={},p=0;c.length>p;)void 0!==(n=u(r,t=c[p++]))&&s(l,t,n);return l}})},function(e,t,n){var r=n(224),o=n(161),i=n(46),a=n(32).Reflect;e.exports=a&&a.ownKeys||function(e){var t=r.f(i(e)),n=o.f;return n?t.concat(n(e)):t}},function(e,t,n){n(769);var r=n(22).Object;e.exports=function(e,t){return r.getOwnPropertyDescriptor(e,t)}},function(e,t,n){var r=n(76),o=n(163).f;n(216)("getOwnPropertyDescriptor",function(){return function(e,t){return o(r(e),t)}})},function(e,t,n){n(354),e.exports=n(22).Object.getOwnPropertySymbols},function(e,t,n){var r=n(17);e.exports=function(e,t){if(null==e)return{};var n,o,i={},a=r(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||(i[n]=e[n]);return i}},function(e,t,n){n(773),e.exports=n(22).Date.now},function(e,t,n){var r=n(30);r(r.S,"Date",{now:function(){return(new Date).getTime()}})},function(e,t,n){n(164),n(101),n(103),n(775),n(779),n(780),e.exports=n(22).Promise},function(e,t,n){"use strict";var r,o,i,a,s=n(131),u=n(32),c=n(63),l=n(166),p=n(30),f=n(43),h=n(132),d=n(181),m=n(112),v=n(410),g=n(411).set,y=n(777)(),b=n(245),_=n(412),w=n(778),x=n(413),E=u.TypeError,S=u.process,C=S&&S.versions,k=C&&C.v8||"",O=u.Promise,A="process"==l(S),T=function(){},j=o=b.f,P=!!function(){try{var e=O.resolve(1),t=(e.constructor={})[n(34)("species")]=function(e){e(T,T)};return(A||"function"==typeof PromiseRejectionEvent)&&e.then(T)instanceof t&&0!==k.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(e){}}(),I=function(e){var t;return!(!f(e)||"function"!=typeof(t=e.then))&&t},M=function(e,t){if(!e._n){e._n=!0;var n=e._c;y(function(){for(var r=e._v,o=1==e._s,i=0,a=function(t){var n,i,a,s=o?t.ok:t.fail,u=t.resolve,c=t.reject,l=t.domain;try{s?(o||(2==e._h&&D(e),e._h=1),!0===s?n=r:(l&&l.enter(),n=s(r),l&&(l.exit(),a=!0)),n===t.promise?c(E("Promise-chain cycle")):(i=I(n))?i.call(n,u,c):u(n)):c(r)}catch(e){l&&!a&&l.exit(),c(e)}};n.length>i;)a(n[i++]);e._c=[],e._n=!1,t&&!e._h&&N(e)})}},N=function(e){g.call(u,function(){var t,n,r,o=e._v,i=R(e);if(i&&(t=_(function(){A?S.emit("unhandledRejection",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=A||R(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},R=function(e){return 1!==e._h&&0===(e._a||e._c).length},D=function(e){g.call(u,function(){var t;A?S.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},L=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),M(t,!0))},U=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw E("Promise can't be resolved itself");(t=I(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(U,r,1),c(L,r,1))}catch(e){L.call(r,e)}}):(n._v=e,n._s=1,M(n,!1))}catch(e){L.call({_w:n,_d:!1},e)}}};P||(O=function(e){d(this,O,"Promise","_h"),h(e),r.call(this);try{e(c(U,this,1),c(L,this,1))}catch(e){L.call(this,e)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(182)(O.prototype,{then:function(e,t){var n=j(v(this,O));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=A?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&M(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(U,e,1),this.reject=c(L,e,1)},b.f=j=function(e){return e===O||e===a?new i(e):o(e)}),p(p.G+p.W+p.F*!P,{Promise:O}),n(134)(O,"Promise"),n(414)("Promise"),a=n(22).Promise,p(p.S+p.F*!P,"Promise",{reject:function(e){var t=j(this);return(0,t.reject)(e),t.promise}}),p(p.S+p.F*(s||!P),"Promise",{resolve:function(e){return x(s&&this===a?O:this,e)}}),p(p.S+p.F*!(P&&n(409)(function(e){O.all(e).catch(T)})),"Promise",{all:function(e){var t=this,n=j(t),r=n.resolve,o=n.reject,i=_(function(){var n=[],i=0,a=1;m(e,!1,function(e){var s=i++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[s]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=j(t),r=n.reject,o=_(function(){m(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(32),o=n(411).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,s=r.Promise,u="process"==n(130)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve(void 0);n=function(){l.then(c)}}else n=function(){o.call(r,c)};else{var p=!0,f=document.createTextNode("");new i(c).observe(f,{characterData:!0}),n=function(){f.data=p=!p}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t,n){var r=n(32).navigator;e.exports=r&&r.userAgent||""},function(e,t,n){"use strict";var r=n(30),o=n(22),i=n(32),a=n(410),s=n(413);r(r.P+r.R,"Promise",{finally:function(e){var t=a(this,o.Promise||i.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then(function(){return n})}:e,n?function(n){return s(t,e()).then(function(){throw n})}:e)}})},function(e,t,n){"use strict";var r=n(30),o=n(245),i=n(412);r(r.S,"Promise",{try:function(e){var t=o.f(this),n=i(e);return(n.e?t.reject:t.resolve)(n.v),t.promise}})},function(e,t,n){var r=function(e){"use strict";var t,n=Object.prototype,r=n.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function u(e,t,n,r){var o=t&&t.prototype instanceof m?t:m,i=Object.create(o.prototype),a=new O(r||[]);return i._invoke=function(e,t,n){var r=l;return function(o,i){if(r===f)throw new Error("Generator is already running");if(r===h){if("throw"===o)throw i;return T()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===d)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===l)throw r=h,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=f;var u=c(e,t,n);if("normal"===u.type){if(r=n.done?h:p,u.arg===d)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=h,n.method="throw",n.arg=u.arg)}}}(e,n,a),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=u;var l="suspendedStart",p="suspendedYield",f="executing",h="completed",d={};function m(){}function v(){}function g(){}var y={};y[i]=function(){return this};var b=Object.getPrototypeOf,_=b&&b(b(A([])));_&&_!==n&&r.call(_,i)&&(y=_);var w=g.prototype=m.prototype=Object.create(y);function x(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function E(e){var t;this._invoke=function(n,o){function i(){return new Promise(function(t,i){!function t(n,o,i,a){var s=c(e[n],e,o);if("throw"!==s.type){var u=s.arg,l=u.value;return l&&"object"==typeof l&&r.call(l,"__await")?Promise.resolve(l.__await).then(function(e){t("next",e,i,a)},function(e){t("throw",e,i,a)}):Promise.resolve(l).then(function(e){u.value=e,i(u)},function(e){return t("throw",e,i,a)})}a(s.arg)}(n,o,t,i)})}return t=t?t.then(i,i):i()}}function S(e,n){var r=e.iterator[n.method];if(r===t){if(n.delegate=null,"throw"===n.method){if(e.iterator.return&&(n.method="return",n.arg=t,S(e,n),"throw"===n.method))return d;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return d}var o=c(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,d;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,d):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,d)}function C(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function O(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(C,this),this.reset(!0)}function A(e){if(e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,a=function n(){for(;++o<e.length;)if(r.call(e,o))return n.value=e[o],n.done=!1,n;return n.value=t,n.done=!0,n};return a.next=a}}return{next:T}}function T(){return{value:t,done:!0}}return v.prototype=w.constructor=g,g.constructor=v,g[s]=v.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===v||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,g):(e.__proto__=g,s in e||(e[s]="GeneratorFunction")),e.prototype=Object.create(w),e},e.awrap=function(e){return{__await:e}},x(E.prototype),E.prototype[a]=function(){return this},e.AsyncIterator=E,e.async=function(t,n,r,o){var i=new E(u(t,n,r,o));return e.isGeneratorFunction(n)?i:i.next().then(function(e){return e.done?e.value:i.next()})},x(w),w[s]="Generator",w[i]=function(){return this},w.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=A,O.prototype={constructor:O,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(k),!e)for(var n in this)"t"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function o(r,o){return s.type="throw",s.arg=e,n.next=r,o&&(n.method="next",n.arg=t),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=e,a.arg=t,i?(this.method="next",this.next=i.finallyLoc,d):this.complete(a)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),d},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),k(n),d}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;k(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:A(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),d}},e}(e.exports);try{regeneratorRuntime=r}catch(e){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){"use strict";var r=n(783),o=n(802);function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=n(31),e.exports.Schema=n(114),e.exports.FAILSAFE_SCHEMA=n(246),e.exports.JSON_SCHEMA=n(416),e.exports.CORE_SCHEMA=n(415),e.exports.DEFAULT_SAFE_SCHEMA=n(139),e.exports.DEFAULT_FULL_SCHEMA=n(183),e.exports.load=r.load,e.exports.loadAll=r.loadAll,e.exports.safeLoad=r.safeLoad,e.exports.safeLoadAll=r.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(138),e.exports.MINIMAL_SCHEMA=n(246),e.exports.SAFE_SCHEMA=n(139),e.exports.DEFAULT_SCHEMA=n(183),e.exports.scan=i("scan"),e.exports.parse=i("parse"),e.exports.compose=i("compose"),e.exports.addConstructor=i("addConstructor")},function(e,t,n){"use strict";var r=n(113),o=n(138),i=n(784),a=n(139),s=n(183),u=Object.prototype.hasOwnProperty,c=1,l=2,p=3,f=4,h=1,d=2,m=3,v=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/[\x85\u2028\u2029]/,y=/[,\[\]\{\}]/,b=/^(?:!|!!|![a-z\-]+!)$/i,_=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function w(e){return Object.prototype.toString.call(e)}function x(e){return 10===e||13===e}function E(e){return 9===e||32===e}function S(e){return 9===e||32===e||10===e||13===e}function C(e){return 44===e||91===e||93===e||123===e||125===e}function k(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function O(e){return 48===e?"\0":97===e?"\a":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"\e":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"\85":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function A(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var T=new Array(256),j=new Array(256),P=0;P<256;P++)T[P]=O(P)?1:0,j[P]=O(P);function I(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function M(e,t){return new o(t,new i(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function N(e,t){throw M(e,t)}function R(e,t){e.onWarning&&e.onWarning.call(null,M(e,t))}var D={YAML:function(e,t,n){var r,o,i;null!==e.version&&N(e,"duplication of %YAML directive"),1!==n.length&&N(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&N(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),i=parseInt(r[2],10),1!==o&&N(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=i<2,1!==i&&2!==i&&R(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,o;2!==n.length&&N(e,"TAG directive accepts exactly two arguments"),r=n[0],o=n[1],b.test(r)||N(e,"ill-formed tag handle (first argument) of the TAG directive"),u.call(e.tagMap,r)&&N(e,'there is a previously declared suffix for "'+r+'" tag handle'),_.test(o)||N(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=o}};function L(e,t,n,r){var o,i,a,s;if(t<n){if(s=e.input.slice(t,n),r)for(o=0,i=s.length;o<i;o+=1)9===(a=s.charCodeAt(o))||32<=a&&a<=1114111||N(e,"expected valid JSON character");else v.test(s)&&N(e,"the stream contains non-printable characters");e.result+=s}}function U(e,t,n,o){var i,a,s,c;for(r.isObject(n)||N(e,"cannot merge mappings; the provided source object is unacceptable"),s=0,c=(i=Object.keys(n)).length;s<c;s+=1)a=i[s],u.call(t,a)||(t[a]=n[a],o[a]=!0)}function q(e,t,n,r,o,i,a,s){var c,l;if(Array.isArray(o))for(c=0,l=(o=Array.prototype.slice.call(o)).length;c<l;c+=1)Array.isArray(o[c])&&N(e,"nested arrays are not supported inside keys"),"object"==typeof o&&"[object Object]"===w(o[c])&&(o[c]="[object Object]");if("object"==typeof o&&"[object Object]"===w(o)&&(o="[object Object]"),o=String(o),null===t&&(t={}),"tag:yaml.org,2002:merge"===r)if(Array.isArray(i))for(c=0,l=i.length;c<l;c+=1)U(e,t,i[c],n);else U(e,t,i,n);else e.json||u.call(n,o)||!u.call(t,o)||(e.line=a||e.line,e.position=s||e.position,N(e,"duplicated mapping key")),t[o]=i,delete n[o];return t}function F(e){var t;10===(t=e.input.charCodeAt(e.position))?e.position++:13===t?(e.position++,10===e.input.charCodeAt(e.position)&&e.position++):N(e,"a line break is expected"),e.line+=1,e.lineStart=e.position}function B(e,t,n){for(var r=0,o=e.input.charCodeAt(e.position);0!==o;){for(;E(o);)o=e.input.charCodeAt(++e.position);if(t&&35===o)do{o=e.input.charCodeAt(++e.position)}while(10!==o&&13!==o&&0!==o);if(!x(o))break;for(F(e),o=e.input.charCodeAt(e.position),r++,e.lineIndent=0;32===o;)e.lineIndent++,o=e.input.charCodeAt(++e.position)}return-1!==n&&0!==r&&e.lineIndent<n&&R(e,"deficient indentation"),r}function z(e){var t,n=e.position;return!(45!==(t=e.input.charCodeAt(n))&&46!==t||t!==e.input.charCodeAt(n+1)||t!==e.input.charCodeAt(n+2)||(n+=3,0!==(t=e.input.charCodeAt(n))&&!S(t)))}function V(e,t){1===t?e.result+=" ":t>1&&(e.result+=r.repeat("\n",t-1))}function H(e,t){var n,r,o=e.tag,i=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),r=e.input.charCodeAt(e.position);0!==r&&45===r&&S(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,B(e,!0,-1)&&e.lineIndent<=t)a.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,K(e,t,p,!1,!0),a.push(e.result),B(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)N(e,"bad indentation of a sequence entry");else if(e.lineIndent<t)break;return!!s&&(e.tag=o,e.anchor=i,e.kind="sequence",e.result=a,!0)}function W(e){var t,n,r,o,i=!1,a=!1;if(33!==(o=e.input.charCodeAt(e.position)))return!1;if(null!==e.tag&&N(e,"duplication of a tag property"),60===(o=e.input.charCodeAt(++e.position))?(i=!0,o=e.input.charCodeAt(++e.position)):33===o?(a=!0,n="!!",o=e.input.charCodeAt(++e.position)):n="!",t=e.position,i){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&62!==o);e.position<e.length?(r=e.input.slice(t,e.position),o=e.input.charCodeAt(++e.position)):N(e,"unexpected end of the stream within a verbatim tag")}else{for(;0!==o&&!S(o);)33===o&&(a?N(e,"tag suffix cannot contain exclamation marks"):(n=e.input.slice(t-1,e.position+1),b.test(n)||N(e,"named tag handle cannot contain such characters"),a=!0,t=e.position+1)),o=e.input.charCodeAt(++e.position);r=e.input.slice(t,e.position),y.test(r)&&N(e,"tag suffix cannot contain flow indicator characters")}return r&&!_.test(r)&&N(e,"tag name cannot contain such characters: "+r),i?e.tag=r:u.call(e.tagMap,n)?e.tag=e.tagMap[n]+r:"!"===n?e.tag="!"+r:"!!"===n?e.tag="tag:yaml.org,2002:"+r:N(e,'undeclared tag handle "'+n+'"'),!0}function J(e){var t,n;if(38!==(n=e.input.charCodeAt(e.position)))return!1;for(null!==e.anchor&&N(e,"duplication of an anchor property"),n=e.input.charCodeAt(++e.position),t=e.position;0!==n&&!S(n)&&!C(n);)n=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an anchor node must contain at least one character"),e.anchor=e.input.slice(t,e.position),!0}function K(e,t,n,o,i){var a,s,v,g,y,b,_,w,O=1,P=!1,I=!1;if(null!==e.listener&&e.listener("open",e),e.tag=null,e.anchor=null,e.kind=null,e.result=null,a=s=v=f===n||p===n,o&&B(e,!0,-1)&&(P=!0,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)),1===O)for(;W(e)||J(e);)B(e,!0,-1)?(P=!0,v=a,e.lineIndent>t?O=1:e.lineIndent===t?O=0:e.lineIndent<t&&(O=-1)):v=!1;if(v&&(v=P||i),1!==O&&f!==n||(_=c===n||l===n?t:t+1,w=e.position-e.lineStart,1===O?v&&(H(e,w)||function(e,t,n){var r,o,i,a,s,u=e.tag,c=e.anchor,p={},h={},d=null,m=null,v=null,g=!1,y=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=p),s=e.input.charCodeAt(e.position);0!==s;){if(r=e.input.charCodeAt(e.position+1),i=e.line,a=e.position,63!==s&&58!==s||!S(r)){if(!K(e,n,l,!1,!0))break;if(e.line===i){for(s=e.input.charCodeAt(e.position);E(s);)s=e.input.charCodeAt(++e.position);if(58===s)S(s=e.input.charCodeAt(++e.position))||N(e,"a whitespace character is expected after the key-value separator within a block mapping"),g&&(q(e,p,h,d,m,null),d=m=v=null),y=!0,g=!1,o=!1,d=e.tag,m=e.result;else{if(!y)return e.tag=u,e.anchor=c,!0;N(e,"can not read an implicit mapping pair; a colon is missed")}}else{if(!y)return e.tag=u,e.anchor=c,!0;N(e,"can not read a block mapping entry; a multiline key may not be an implicit key")}}else 63===s?(g&&(q(e,p,h,d,m,null),d=m=v=null),y=!0,g=!0,o=!0):g?(g=!1,o=!0):N(e,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),e.position+=1,s=r;if((e.line===i||e.lineIndent>t)&&(K(e,t,f,!0,o)&&(g?m=e.result:v=e.result),g||(q(e,p,h,d,m,v,i,a),d=m=v=null),B(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)N(e,"bad indentation of a mapping entry");else if(e.lineIndent<t)break}return g&&q(e,p,h,d,m,null),y&&(e.tag=u,e.anchor=c,e.kind="mapping",e.result=p),y}(e,w,_))||function(e,t){var n,r,o,i,a,s,u,l,p,f,h=!0,d=e.tag,m=e.anchor,v={};if(91===(f=e.input.charCodeAt(e.position)))o=93,s=!1,r=[];else{if(123!==f)return!1;o=125,s=!0,r={}}for(null!==e.anchor&&(e.anchorMap[e.anchor]=r),f=e.input.charCodeAt(++e.position);0!==f;){if(B(e,!0,t),(f=e.input.charCodeAt(e.position))===o)return e.position++,e.tag=d,e.anchor=m,e.kind=s?"mapping":"sequence",e.result=r,!0;h||N(e,"missed comma between flow collection entries"),p=null,i=a=!1,63===f&&S(e.input.charCodeAt(e.position+1))&&(i=a=!0,e.position++,B(e,!0,t)),n=e.line,K(e,t,c,!1,!0),l=e.tag,u=e.result,B(e,!0,t),f=e.input.charCodeAt(e.position),!a&&e.line!==n||58!==f||(i=!0,f=e.input.charCodeAt(++e.position),B(e,!0,t),K(e,t,c,!1,!0),p=e.result),s?q(e,r,v,l,u,p):i?r.push(q(e,null,v,l,u,p)):r.push(u),B(e,!0,t),44===(f=e.input.charCodeAt(e.position))?(h=!0,f=e.input.charCodeAt(++e.position)):h=!1}N(e,"unexpected end of the stream within a flow collection")}(e,_)?I=!0:(s&&function(e,t){var n,o,i,a,s,u=h,c=!1,l=!1,p=t,f=0,v=!1;if(124===(a=e.input.charCodeAt(e.position)))o=!1;else{if(62!==a)return!1;o=!0}for(e.kind="scalar",e.result="";0!==a;)if(43===(a=e.input.charCodeAt(++e.position))||45===a)h===u?u=43===a?m:d:N(e,"repeat of a chomping mode identifier");else{if(!((i=48<=(s=a)&&s<=57?s-48:-1)>=0))break;0===i?N(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?N(e,"repeat of an indentation width identifier"):(p=t+i-1,l=!0)}if(E(a)){do{a=e.input.charCodeAt(++e.position)}while(E(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!x(a)&&0!==a)}for(;0!==a;){for(F(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!l||e.lineIndent<p)&&32===a;)e.lineIndent++,a=e.input.charCodeAt(++e.position);if(!l&&e.lineIndent>p&&(p=e.lineIndent),x(a))f++;else{if(e.lineIndent<p){u===m?e.result+=r.repeat("\n",c?1+f:f):u===h&&c&&(e.result+="\n");break}for(o?E(a)?(v=!0,e.result+=r.repeat("\n",c?1+f:f)):v?(v=!1,e.result+=r.repeat("\n",f+1)):0===f?c&&(e.result+=" "):e.result+=r.repeat("\n",f):e.result+=r.repeat("\n",c?1+f:f),c=!0,l=!0,f=0,n=e.position;!x(a)&&0!==a;)a=e.input.charCodeAt(++e.position);L(e,n,e.position,!1)}}return!0}(e,_)||function(e,t){var n,r,o;if(39!==(n=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,r=o=e.position;0!==(n=e.input.charCodeAt(e.position));)if(39===n){if(L(e,r,e.position,!0),39!==(n=e.input.charCodeAt(++e.position)))return!0;r=e.position,e.position++,o=e.position}else x(n)?(L(e,r,o,!0),V(e,B(e,!1,t)),r=o=e.position):e.position===e.lineStart&&z(e)?N(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);N(e,"unexpected end of the stream within a single quoted scalar")}(e,_)||function(e,t){var n,r,o,i,a,s,u;if(34!==(s=e.input.charCodeAt(e.position)))return!1;for(e.kind="scalar",e.result="",e.position++,n=r=e.position;0!==(s=e.input.charCodeAt(e.position));){if(34===s)return L(e,n,e.position,!0),e.position++,!0;if(92===s){if(L(e,n,e.position,!0),x(s=e.input.charCodeAt(++e.position)))B(e,!1,t);else if(s<256&&T[s])e.result+=j[s],e.position++;else if((a=120===(u=s)?2:117===u?4:85===u?8:0)>0){for(o=a,i=0;o>0;o--)(a=k(s=e.input.charCodeAt(++e.position)))>=0?i=(i<<4)+a:N(e,"expected hexadecimal character");e.result+=A(i),e.position++}else N(e,"unknown escape sequence");n=r=e.position}else x(s)?(L(e,n,r,!0),V(e,B(e,!1,t)),n=r=e.position):e.position===e.lineStart&&z(e)?N(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}N(e,"unexpected end of the stream within a double quoted scalar")}(e,_)?I=!0:!function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!S(r)&&!C(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&N(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||N(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],B(e,!0,-1),!0}(e)?function(e,t,n){var r,o,i,a,s,u,c,l,p=e.kind,f=e.result;if(S(l=e.input.charCodeAt(e.position))||C(l)||35===l||38===l||42===l||33===l||124===l||62===l||39===l||34===l||37===l||64===l||96===l)return!1;if((63===l||45===l)&&(S(r=e.input.charCodeAt(e.position+1))||n&&C(r)))return!1;for(e.kind="scalar",e.result="",o=i=e.position,a=!1;0!==l;){if(58===l){if(S(r=e.input.charCodeAt(e.position+1))||n&&C(r))break}else if(35===l){if(S(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&z(e)||n&&C(l))break;if(x(l)){if(s=e.line,u=e.lineStart,c=e.lineIndent,B(e,!1,-1),e.lineIndent>=t){a=!0,l=e.input.charCodeAt(e.position);continue}e.position=i,e.line=s,e.lineStart=u,e.lineIndent=c;break}}a&&(L(e,o,i,!1),V(e,e.line-s),o=i=e.position,a=!1),E(l)||(i=e.position+1),l=e.input.charCodeAt(++e.position)}return L(e,o,i,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,_,c===n)&&(I=!0,null===e.tag&&(e.tag="?")):(I=!0,null===e.tag&&null===e.anchor||N(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===O&&(I=v&&H(e,w))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(g=0,y=e.implicitTypes.length;g<y;g+=1)if((b=e.implicitTypes[g]).resolve(e.result)){e.result=b.construct(e.result),e.tag=b.tag,null!==e.anchor&&(e.anchorMap[e.anchor]=e.result);break}}else u.call(e.typeMap[e.kind||"fallback"],e.tag)?(b=e.typeMap[e.kind||"fallback"][e.tag],null!==e.result&&b.kind!==e.kind&&N(e,"unacceptable node kind for !<"+e.tag+'> tag; it should be "'+b.kind+'", not "'+e.kind+'"'),b.resolve(e.result)?(e.result=b.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):N(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):N(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||I}function Y(e){var t,n,r,o,i=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(B(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!S(o);)o=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&N(e,"directive name must not be less than one character in length");0!==o;){for(;E(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!x(o));break}if(x(o))break;for(t=e.position;0!==o&&!S(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==o&&F(e),u.call(D,n)?D[n](e,n,r):R(e,'unknown document directive "'+n+'"')}B(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,B(e,!0,-1)):a&&N(e,"directives end mark is expected"),K(e,e.lineIndent-1,f,!1,!0),B(e,!0,-1),e.checkLineBreaks&&g.test(e.input.slice(i,e.position))&&R(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&z(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,B(e,!0,-1)):e.position<e.length-1&&N(e,"end of the stream or a document separator is expected")}function $(e,t){t=t||{},0!==(e=String(e)).length&&(10!==e.charCodeAt(e.length-1)&&13!==e.charCodeAt(e.length-1)&&(e+="\n"),65279===e.charCodeAt(0)&&(e=e.slice(1)));var n=new I(e,t);for(n.input+="\0";32===n.input.charCodeAt(n.position);)n.lineIndent+=1,n.position+=1;for(;n.position<n.length-1;)Y(n);return n.documents}function G(e,t,n){var r,o,i=$(e,n);if("function"!=typeof t)return i;for(r=0,o=i.length;r<o;r+=1)t(i[r])}function Z(e,t){var n=$(e,t);if(0!==n.length){if(1===n.length)return n[0];throw new o("expected a single document in the stream, but found more")}}e.exports.loadAll=G,e.exports.load=Z,e.exports.safeLoadAll=function(e,t,n){if("function"!=typeof t)return G(e,r.extend({schema:a},n));G(e,t,r.extend({schema:a},n))},e.exports.safeLoad=function(e,t){return Z(e,r.extend({schema:a},t))}},function(e,t,n){"use strict";var r=n(113);function o(e,t,n,r,o){this.name=e,this.buffer=t,this.position=n,this.line=r,this.column=o}o.prototype.getSnippet=function(e,t){var n,o,i,a,s;if(!this.buffer)return null;for(e=e||4,t=t||75,n="",o=this.position;o>0&&-1==="\0\r\n\85\u2028\u2029".indexOf(this.buffer.charAt(o-1));)if(o-=1,this.position-o>t/2-1){n=" ... ",o+=5;break}for(i="",a=this.position;a<this.buffer.length&&-1==="\0\r\n\85\u2028\u2029".indexOf(this.buffer.charAt(a));)if((a+=1)-this.position>t/2-1){i=" ... ",a-=5;break}return s=this.buffer.slice(o,a),r.repeat(" ",e)+n+s+i+"\n"+r.repeat(" ",e+this.position-o+n.length)+"^"},o.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},e.exports=o},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(113),o=n(31);function i(e){return 48<=e&&e<=55}function a(e){return 48<=e&&e<=57}e.exports=new o("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=e.length,o=0,s=!1;if(!r)return!1;if("-"!==(t=e[o])&&"+"!==t||(t=e[++o]),"0"===t){if(o+1===r)return!0;if("b"===(t=e[++o])){for(o++;o<r;o++)if("_"!==(t=e[o])){if("0"!==t&&"1"!==t)return!1;s=!0}return s&&"_"!==t}if("x"===t){for(o++;o<r;o++)if("_"!==(t=e[o])){if(!(48<=(n=e.charCodeAt(o))&&n<=57||65<=n&&n<=70||97<=n&&n<=102))return!1;s=!0}return s&&"_"!==t}for(;o<r;o++)if("_"!==(t=e[o])){if(!i(e.charCodeAt(o)))return!1;s=!0}return s&&"_"!==t}if("_"===t)return!1;for(;o<r;o++)if("_"!==(t=e[o])){if(":"===t)break;if(!a(e.charCodeAt(o)))return!1;s=!0}return!(!s||"_"===t)&&(":"!==t||/^(:[0-5]?[0-9])+$/.test(e.slice(o)))},construct:function(e){var t,n,r=e,o=1,i=[];return-1!==r.indexOf("_")&&(r=r.replace(/_/g,"")),"-"!==(t=r[0])&&"+"!==t||("-"===t&&(o=-1),t=(r=r.slice(1))[0]),"0"===r?0:"0"===t?"b"===r[1]?o*parseInt(r.slice(2),2):"x"===r[1]?o*parseInt(r,16):o*parseInt(r,8):-1!==r.indexOf(":")?(r.split(":").forEach(function(e){i.unshift(parseInt(e,10))}),r=0,n=1,i.forEach(function(e){r+=e*n,n*=60}),o*r):o*parseInt(r,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&e%1==0&&!r.isNegativeZero(e)},represent:{binary:function(e){return e>=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";var r=n(113),o=n(31),i=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;e.exports=new o("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!i.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,r,o;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(e){o.unshift(parseFloat(e,10))}),t=0,r=1,o.forEach(function(e){t+=e*r,r*=60}),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||r.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(r.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(31),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new r("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==o.exec(e)||null!==i.exec(e))},construct:function(e){var t,n,r,a,s,u,c,l,p=0,f=null;if(null===(t=o.exec(e))&&(t=i.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(n,r,a));if(s=+t[4],u=+t[5],c=+t[6],t[7]){for(p=t[7].slice(0,3);p.length<3;)p+="0";p=+p}return t[9]&&(f=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(f=-f)),l=new Date(Date.UTC(n,r,a,s,u,c,p)),f&&l.setTime(l.getTime()-f),l},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},function(e,t,n){"use strict";var r;try{r=n(64).Buffer}catch(e){}var o=n(31),i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new o("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=0,o=e.length,a=i;for(n=0;n<o;n++)if(!((t=a.indexOf(e.charAt(n)))>64)){if(t<0)return!1;r+=6}return r%8==0},construct:function(e){var t,n,o=e.replace(/[\r\n=]/g,""),a=o.length,s=i,u=0,c=[];for(t=0;t<a;t++)t%4==0&&t&&(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)),u=u<<6|s.indexOf(o.charAt(t));return 0===(n=a%4*6)?(c.push(u>>16&255),c.push(u>>8&255),c.push(255&u)):18===n?(c.push(u>>10&255),c.push(u>>2&255)):12===n&&c.push(u>>4&255),r?r.from?r.from(c):new r(c):c},predicate:function(e){return r&&r.isBuffer(e)},represent:function(e){var t,n,r="",o=0,a=e.length,s=i;for(t=0;t<a;t++)t%3==0&&t&&(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]),o=(o<<8)+e[t];return 0===(n=a%3)?(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]):2===n?(r+=s[o>>10&63],r+=s[o>>4&63],r+=s[o<<2&63],r+=s[64]):1===n&&(r+=s[o>>2&63],r+=s[o<<4&63],r+=s[64],r+=s[64]),r}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.hasOwnProperty,i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,a,s,u=[],c=e;for(t=0,n=c.length;t<n;t+=1){if(r=c[t],s=!1,"[object Object]"!==i.call(r))return!1;for(a in r)if(o.call(r,a)){if(s)return!1;s=!0}if(!s)return!1;if(-1!==u.indexOf(a))return!1;u.push(a)}return!0},construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,i,a,s=e;for(a=new Array(s.length),t=0,n=s.length;t<n;t+=1){if(r=s[t],"[object Object]"!==o.call(r))return!1;if(1!==(i=Object.keys(r)).length)return!1;a[t]=[i[0],r[i[0]]]}return!0},construct:function(e){if(null===e)return[];var t,n,r,o,i,a=e;for(i=new Array(a.length),t=0,n=a.length;t<n;t+=1)r=a[t],o=Object.keys(r),i[t]=[o[0],r[o[0]]];return i}})},function(e,t,n){"use strict";var r=n(31),o=Object.prototype.hasOwnProperty;e.exports=new r("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t,n=e;for(t in n)if(o.call(n,t)&&null!==n[t])return!1;return!0},construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return void 0===e},represent:function(){return""}})},function(e,t,n){"use strict";var r=n(31);e.exports=new r("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,n=/\/([gim]*)$/.exec(e),r="";if("/"===t[0]){if(n&&(r=n[1]),r.length>3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},function(e,t,n){"use strict";var r;try{r=n(801)}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var o=n(31);e.exports=new o("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=r.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,n="("+e+")",o=r.parse(n,{range:!0}),i=[];if("Program"!==o.type||1!==o.body.length||"ExpressionStatement"!==o.body[0].type||"ArrowFunctionExpression"!==o.body[0].expression.type&&"FunctionExpression"!==o.body[0].expression.type)throw new Error("Failed to resolve function");return o.body[0].expression.params.forEach(function(e){i.push(e.name)}),t=o.body[0].expression.body.range,"BlockStatement"===o.body[0].expression.body.type?new Function(i,n.slice(t[0]+1,t[1]-1)):new Function(i,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(t,n){if(void 0===e){var r=new Error("Cannot find module 'esprima'");throw r.code="MODULE_NOT_FOUND",r}t.exports=e},function(e,t,n){"use strict";var r=n(113),o=n(138),i=n(183),a=n(139),s=Object.prototype.toString,u=Object.prototype.hasOwnProperty,c=9,l=10,p=32,f=33,h=34,d=35,m=37,v=38,g=39,y=42,b=44,_=45,w=58,x=62,E=63,S=64,C=91,k=93,O=96,A=123,T=124,j=125,P={0:"\\0",7:"\\a",8:"\\b",9:"\\t",10:"\\n",11:"\\v",12:"\\f",13:"\\r",27:"\\e",34:'\\"',92:"\\\\",133:"\\N",160:"\\_",8232:"\\L",8233:"\\P"},I=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function M(e){var t,n,i;if(t=e.toString(16).toUpperCase(),e<=255)n="x",i=2;else if(e<=65535)n="u",i=4;else{if(!(e<=4294967295))throw new o("code point within a string may not be greater than 0xFFFFFFFF");n="U",i=8}return"\\"+n+r.repeat("0",i-t.length)+t}function N(e){this.schema=e.schema||i,this.indent=Math.max(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=r.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=function(e,t){var n,r,o,i,a,s,c;if(null===t)return{};for(n={},o=0,i=(r=Object.keys(t)).length;o<i;o+=1)a=r[o],s=String(t[a]),"!!"===a.slice(0,2)&&(a="tag:yaml.org,2002:"+a.slice(2)),(c=e.compiledTypeMap.fallback[a])&&u.call(c.styleAliases,s)&&(s=c.styleAliases[s]),n[a]=s;return n}(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function R(e,t){for(var n,o=r.repeat(" ",t),i=0,a=-1,s="",u=e.length;i<u;)-1===(a=e.indexOf("\n",i))?(n=e.slice(i),i=u):(n=e.slice(i,a+1),i=a+1),n.length&&"\n"!==n&&(s+=o),s+=n;return s}function D(e,t){return"\n"+r.repeat(" ",e.indent*t)}function L(e){return e===p||e===c}function U(e){return 32<=e&&e<=126||161<=e&&e<=55295&&8232!==e&&8233!==e||57344<=e&&e<=65533&&65279!==e||65536<=e&&e<=1114111}function q(e){return U(e)&&65279!==e&&e!==b&&e!==C&&e!==k&&e!==A&&e!==j&&e!==w&&e!==d}function F(e){return/^\n* /.test(e)}var B=1,z=2,V=3,H=4,W=5;function J(e,t,n,r,o){var i,a,s,u=!1,c=!1,p=-1!==r,P=-1,I=U(s=e.charCodeAt(0))&&65279!==s&&!L(s)&&s!==_&&s!==E&&s!==w&&s!==b&&s!==C&&s!==k&&s!==A&&s!==j&&s!==d&&s!==v&&s!==y&&s!==f&&s!==T&&s!==x&&s!==g&&s!==h&&s!==m&&s!==S&&s!==O&&!L(e.charCodeAt(e.length-1));if(t)for(i=0;i<e.length;i++){if(!U(a=e.charCodeAt(i)))return W;I=I&&q(a)}else{for(i=0;i<e.length;i++){if((a=e.charCodeAt(i))===l)u=!0,p&&(c=c||i-P-1>r&&" "!==e[P+1],P=i);else if(!U(a))return W;I=I&&q(a)}c=c||p&&i-P-1>r&&" "!==e[P+1]}return u||c?n>9&&F(e)?W:c?H:V:I&&!o(e)?B:z}function K(e,t,n,r){e.dump=function(){if(0===t.length)return"''";if(!e.noCompatMode&&-1!==I.indexOf(t))return"'"+t+"'";var i=e.indent*Math.max(1,n),a=-1===e.lineWidth?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-i),s=r||e.flowLevel>-1&&n>=e.flowLevel;switch(J(t,s,e.indent,a,function(t){return function(e,t){var n,r;for(n=0,r=e.implicitTypes.length;n<r;n+=1)if(e.implicitTypes[n].resolve(t))return!0;return!1}(e,t)})){case B:return t;case z:return"'"+t.replace(/'/g,"''")+"'";case V:return"|"+Y(t,e.indent)+$(R(t,i));case H:return">"+Y(t,e.indent)+$(R(function(e,t){var n,r,o=/(\n+)([^\n]*)/g,i=(s=e.indexOf("\n"),s=-1!==s?s:e.length,o.lastIndex=s,G(e.slice(0,s),t)),a="\n"===e[0]||" "===e[0];var s;for(;r=o.exec(e);){var u=r[1],c=r[2];n=" "===c[0],i+=u+(a||n||""===c?"":"\n")+G(c,t),a=n}return i}(t,a),i));case W:return'"'+function(e){for(var t,n,r,o="",i=0;i<e.length;i++)(t=e.charCodeAt(i))>=55296&&t<=56319&&(n=e.charCodeAt(i+1))>=56320&&n<=57343?(o+=M(1024*(t-55296)+n-56320+65536),i++):(r=P[t],o+=!r&&U(t)?e[i]:r||M(t));return o}(t)+'"';default:throw new o("impossible error: invalid scalar style")}}()}function Y(e,t){var n=F(e)?String(t):"",r="\n"===e[e.length-1];return n+(r&&("\n"===e[e.length-2]||"\n"===e)?"+":r?"":"-")+"\n"}function $(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function G(e,t){if(""===e||" "===e[0])return e;for(var n,r,o=/ [^ ]/g,i=0,a=0,s=0,u="";n=o.exec(e);)(s=n.index)-i>t&&(r=a>i?a:s,u+="\n"+e.slice(i,r),i=r+1),a=s;return u+="\n",e.length-i>t&&a>i?u+=e.slice(i,a)+"\n"+e.slice(a+1):u+=e.slice(i),u.slice(1)}function Z(e,t,n){var r,i,a,c,l,p;for(a=0,c=(i=n?e.explicitTypes:e.implicitTypes).length;a<c;a+=1)if(((l=i[a]).instanceOf||l.predicate)&&(!l.instanceOf||"object"==typeof t&&t instanceof l.instanceOf)&&(!l.predicate||l.predicate(t))){if(e.tag=n?l.tag:"?",l.represent){if(p=e.styleMap[l.tag]||l.defaultStyle,"[object Function]"===s.call(l.represent))r=l.represent(t,p);else{if(!u.call(l.represent,p))throw new o("!<"+l.tag+'> tag resolver accepts not "'+p+'" style');r=l.represent[p](t,p)}e.dump=r}return!0}return!1}function X(e,t,n,r,i,a){e.tag=null,e.dump=n,Z(e,n,!1)||Z(e,n,!0);var u=s.call(e.dump);r&&(r=e.flowLevel<0||e.flowLevel>t);var c,p,f="[object Object]"===u||"[object Array]"===u;if(f&&(p=-1!==(c=e.duplicates.indexOf(n))),(null!==e.tag&&"?"!==e.tag||p||2!==e.indent&&t>0)&&(i=!1),p&&e.usedDuplicates[c])e.dump="*ref_"+c;else{if(f&&p&&!e.usedDuplicates[c]&&(e.usedDuplicates[c]=!0),"[object Object]"===u)r&&0!==Object.keys(e.dump).length?(!function(e,t,n,r){var i,a,s,u,c,p,f="",h=e.tag,d=Object.keys(n);if(!0===e.sortKeys)d.sort();else if("function"==typeof e.sortKeys)d.sort(e.sortKeys);else if(e.sortKeys)throw new o("sortKeys must be a boolean or a function");for(i=0,a=d.length;i<a;i+=1)p="",r&&0===i||(p+=D(e,t)),u=n[s=d[i]],X(e,t+1,s,!0,!0,!0)&&((c=null!==e.tag&&"?"!==e.tag||e.dump&&e.dump.length>1024)&&(e.dump&&l===e.dump.charCodeAt(0)?p+="?":p+="? "),p+=e.dump,c&&(p+=D(e,t)),X(e,t+1,u,!0,c)&&(e.dump&&l===e.dump.charCodeAt(0)?p+=":":p+=": ",f+=p+=e.dump));e.tag=h,e.dump=f||"{}"}(e,t,e.dump,i),p&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,n){var r,o,i,a,s,u="",c=e.tag,l=Object.keys(n);for(r=0,o=l.length;r<o;r+=1)s=e.condenseFlow?'"':"",0!==r&&(s+=", "),a=n[i=l[r]],X(e,t,i,!1,!1)&&(e.dump.length>1024&&(s+="? "),s+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),X(e,t,a,!1,!1)&&(u+=s+=e.dump));e.tag=c,e.dump="{"+u+"}"}(e,t,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump));else if("[object Array]"===u){var h=e.noArrayIndent&&t>0?t-1:t;r&&0!==e.dump.length?(!function(e,t,n,r){var o,i,a="",s=e.tag;for(o=0,i=n.length;o<i;o+=1)X(e,t+1,n[o],!0,!0)&&(r&&0===o||(a+=D(e,t)),e.dump&&l===e.dump.charCodeAt(0)?a+="-":a+="- ",a+=e.dump);e.tag=s,e.dump=a||"[]"}(e,h,e.dump,i),p&&(e.dump="&ref_"+c+e.dump)):(!function(e,t,n){var r,o,i="",a=e.tag;for(r=0,o=n.length;r<o;r+=1)X(e,t,n[r],!1,!1)&&(0!==r&&(i+=","+(e.condenseFlow?"":" ")),i+=e.dump);e.tag=a,e.dump="["+i+"]"}(e,h,e.dump),p&&(e.dump="&ref_"+c+" "+e.dump))}else{if("[object String]"!==u){if(e.skipInvalid)return!1;throw new o("unacceptable kind of an object to dump "+u)}"?"!==e.tag&&K(e,e.dump,t,a)}null!==e.tag&&"?"!==e.tag&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function Q(e,t){var n,r,o=[],i=[];for(function e(t,n,r){var o,i,a;if(null!==t&&"object"==typeof t)if(-1!==(i=n.indexOf(t)))-1===r.indexOf(i)&&r.push(i);else if(n.push(t),Array.isArray(t))for(i=0,a=t.length;i<a;i+=1)e(t[i],n,r);else for(o=Object.keys(t),i=0,a=o.length;i<a;i+=1)e(t[o[i]],n,r)}(e,o,i),n=0,r=i.length;n<r;n+=1)t.duplicates.push(o[i[n]]);t.usedDuplicates=new Array(r)}function ee(e,t){var n=new N(t=t||{});return n.noRefs||Q(e,n),X(n,0,e,!0,!0)?n.dump+"\n":""}e.exports.dump=ee,e.exports.safeDump=function(e,t){return ee(e,r.extend({schema:a},t))}},function(e,t,n){"use strict";e.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},function(e,t,n){"use strict";var r,o=Object.prototype.hasOwnProperty;function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}t.stringify=function(e,t){t=t||"";var n,i,a=[];for(i in"string"!=typeof t&&(t="?"),e)if(o.call(e,i)){if((n=e[i])||null!==n&&n!==r&&!isNaN(n)||(n=""),i=encodeURIComponent(i),n=encodeURIComponent(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?t+a.join("&"):""},t.parse=function(e){for(var t,n=/([^=?&]+)=?([^&]*)/g,r={};t=n.exec(e);){var o=i(t[1]),a=i(t[2]);null===o||null===a||o in r||(r[o]=a)}return r}},function(e,t,n){var r=n(51);e.exports=function(){return r.Date.now()}},function(e,t,n){e.exports=n(807)},function(e,t,n){n(808),e.exports=n(22).Object.getPrototypeOf},function(e,t,n){var r=n(100),o=n(352);n(216)("getPrototypeOf",function(){return function(e){return o(r(e))}})},function(e,t,n){n(810),e.exports=n(22).Object.setPrototypeOf},function(e,t,n){var r=n(30);r(r.S,"Object",{setPrototypeOf:n(811).set})},function(e,t,n){var r=n(43),o=n(46),i=function(e,t){if(o(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(63)(Function.call,n(163).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return i(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:i}},function(e,t,n){n(813);var r=n(22).Object;e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(30);r(r.S,"Object",{create:n(160)})},function(e,t,n){var r=n(420);function o(t,n){return e.exports=o=r||function(e,t){return e.__proto__=t,e},o(t,n)}e.exports=o},function(e,t,n){"use strict";var r=n(27),o=n(816),i=n(445),a=n(116),s=n(58),u=n(888),c=n(889),l=n(446),p=n(890);n(23);o.inject();var f={findDOMNode:c,render:i.render,unmountComponentAtNode:i.unmountComponentAtNode,version:u,unstable_batchedUpdates:s.batchedUpdates,unstable_renderSubtreeIntoContainer:p};"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ComponentTree:{getClosestInstanceFromNode:r.getClosestInstanceFromNode,getNodeFromInstance:function(e){return e._renderedComponent&&(e=l(e)),e?r.getNodeFromInstance(e):null}},Mount:i,Reconciler:a}),e.exports=f},function(e,t,n){"use strict";var r=n(817),o=n(818),i=n(822),a=n(825),s=n(826),u=n(827),c=n(828),l=n(834),p=n(27),f=n(859),h=n(860),d=n(861),m=n(862),v=n(863),g=n(865),y=n(866),b=n(872),_=n(873),w=n(874),x=!1;e.exports={inject:function(){x||(x=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(a),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:s,ChangeEventPlugin:i,SelectEventPlugin:_,BeforeInputEventPlugin:o}),g.HostComponent.injectGenericComponentClass(l),g.HostComponent.injectTextComponentClass(d),g.DOMProperty.injectDOMPropertyConfig(r),g.DOMProperty.injectDOMPropertyConfig(u),g.DOMProperty.injectDOMPropertyConfig(b),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new f(e)}),g.Updates.injectReconcileTransaction(y),g.Updates.injectBatchingStrategy(m),g.Component.injectEnvironment(c))}}},function(e,t,n){"use strict";e.exports={Properties:{"aria-current":0,"aria-details":0,"aria-disabled":0,"aria-hidden":0,"aria-invalid":0,"aria-keyshortcuts":0,"aria-label":0,"aria-roledescription":0,"aria-autocomplete":0,"aria-checked":0,"aria-expanded":0,"aria-haspopup":0,"aria-level":0,"aria-modal":0,"aria-multiline":0,"aria-multiselectable":0,"aria-orientation":0,"aria-placeholder":0,"aria-pressed":0,"aria-readonly":0,"aria-required":0,"aria-selected":0,"aria-sort":0,"aria-valuemax":0,"aria-valuemin":0,"aria-valuenow":0,"aria-valuetext":0,"aria-atomic":0,"aria-busy":0,"aria-live":0,"aria-relevant":0,"aria-dropeffect":0,"aria-grabbed":0,"aria-activedescendant":0,"aria-colcount":0,"aria-colindex":0,"aria-colspan":0,"aria-controls":0,"aria-describedby":0,"aria-errormessage":0,"aria-flowto":0,"aria-labelledby":0,"aria-owns":0,"aria-posinset":0,"aria-rowcount":0,"aria-rowindex":0,"aria-rowspan":0,"aria-setsize":0},DOMAttributeNames:{},DOMPropertyNames:{}}},function(e,t,n){"use strict";var r=n(140),o=n(38),i=n(819),a=n(820),s=n(821),u=[9,13,27,32],c=229,l=o.canUseDOM&&"CompositionEvent"in window,p=null;o.canUseDOM&&"documentMode"in document&&(p=document.documentMode);var f,h=o.canUseDOM&&"TextEvent"in window&&!p&&!("object"==typeof(f=window.opera)&&"function"==typeof f.version&&parseInt(f.version(),10)<=12),d=o.canUseDOM&&(!l||p&&p>8&&p<=11);var m=32,v=String.fromCharCode(m),g={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},y=!1;function b(e,t){switch(e){case"topKeyUp":return-1!==u.indexOf(t.keyCode);case"topKeyDown":return t.keyCode!==c;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function _(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}var w=null;function x(e,t,n,o){var s,u;if(l?s=function(e){switch(e){case"topCompositionStart":return g.compositionStart;case"topCompositionEnd":return g.compositionEnd;case"topCompositionUpdate":return g.compositionUpdate}}(e):w?b(e,n)&&(s=g.compositionEnd):function(e,t){return"topKeyDown"===e&&t.keyCode===c}(e,n)&&(s=g.compositionStart),!s)return null;d&&(w||s!==g.compositionStart?s===g.compositionEnd&&w&&(u=w.getData()):w=i.getPooled(o));var p=a.getPooled(s,t,n,o);if(u)p.data=u;else{var f=_(n);null!==f&&(p.data=f)}return r.accumulateTwoPhaseDispatches(p),p}function E(e,t,n,o){var a;if(!(a=h?function(e,t){switch(e){case"topCompositionEnd":return _(t);case"topKeyPress":return t.which!==m?null:(y=!0,v);case"topTextInput":var n=t.data;return n===v&&y?null:n;default:return null}}(e,n):function(e,t){if(w){if("topCompositionEnd"===e||!l&&b(e,t)){var n=w.getData();return i.release(w),w=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return d?null:t.data;default:return null}}(e,n)))return null;var u=s.getPooled(g.beforeInput,t,n,o);return u.data=a,r.accumulateTwoPhaseDispatches(u),u}var S={eventTypes:g,extractEvents:function(e,t,n,r){return[x(e,t,n,r),E(e,t,n,r)]}};e.exports=S},function(e,t,n){"use strict";var r=n(25),o=n(90),i=n(425);function a(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(a.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(a),e.exports=a},function(e,t,n){"use strict";var r=n(68);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(68);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(141),o=n(140),i=n(38),a=n(27),s=n(58),u=n(68),c=n(428),l=n(250),p=n(251),f=n(429),h={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function d(e,t,n){var r=u.getPooled(h.change,e,t,n);return r.type="change",o.accumulateTwoPhaseDispatches(r),r}var m=null,v=null;var g=!1;function y(e){var t=d(v,e,l(e));s.batchedUpdates(b,t)}function b(e){r.enqueueEvents(e),r.processEventQueue(!1)}function _(){m&&(m.detachEvent("onchange",y),m=null,v=null)}function w(e,t){var n=c.updateValueIfChanged(e),r=!0===t.simulated&&P._allowSimulatedPassThrough;if(n||r)return e}function x(e,t){if("topChange"===e)return t}function E(e,t,n){"topFocus"===e?(_(),function(e,t){v=t,(m=e).attachEvent("onchange",y)}(t,n)):"topBlur"===e&&_()}i.canUseDOM&&(g=p("change")&&(!document.documentMode||document.documentMode>8));var S=!1;function C(){m&&(m.detachEvent("onpropertychange",k),m=null,v=null)}function k(e){"value"===e.propertyName&&w(v,e)&&y(e)}function O(e,t,n){"topFocus"===e?(C(),function(e,t){v=t,(m=e).attachEvent("onpropertychange",k)}(t,n)):"topBlur"===e&&C()}function A(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return w(v,n)}function T(e,t,n){if("topClick"===e)return w(t,n)}function j(e,t,n){if("topInput"===e||"topChange"===e)return w(t,n)}i.canUseDOM&&(S=p("input")&&(!document.documentMode||document.documentMode>9));var P={eventTypes:h,_allowSimulatedPassThrough:!0,_isInputEventSupported:S,extractEvents:function(e,t,n,r){var o,i,s,u,c=t?a.getNodeFromInstance(t):window;if("select"===(u=(s=c).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type?g?o=x:i=E:f(c)?S?o=j:(o=A,i=O):function(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}(c)&&(o=T),o){var l=o(e,t,n);if(l)return d(l,n,r)}i&&i(e,c,t),"topBlur"===e&&function(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}(t,c)}};e.exports=P},function(e,t,n){"use strict";var r=n(824),o={};o.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(t.getPublicInstance()):r.addComponentAsRefTo(t,e,n)}(n,e,t._owner)}},o.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},o.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(null):r.removeComponentAsRefFrom(t,e,n)}(n,e,t._owner)}},e.exports=o},function(e,t,n){"use strict";var r=n(21);n(15);function o(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i={addComponentAsRefTo:function(e,t,n){o(n)||r("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o(n)||r("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};e.exports=i},function(e,t,n){"use strict";e.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},function(e,t,n){"use strict";var r=n(140),o=n(27),i=n(186),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u,c,l;if(s.window===s)u=s;else{var p=s.ownerDocument;u=p?p.defaultView||p.parentWindow:window}if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;l=f?o.getClosestInstanceFromNode(f):null}else c=null,l=t;if(c===l)return null;var h=null==c?u:o.getNodeFromInstance(c),d=null==l?u:o.getNodeFromInstance(l),m=i.getPooled(a.mouseLeave,c,n,s);m.type="mouseleave",m.target=h,m.relatedTarget=d;var v=i.getPooled(a.mouseEnter,l,n,s);return v.type="mouseenter",v.target=d,v.relatedTarget=h,r.accumulateEnterLeaveDispatches(m,v,c,l),[m,v]}};e.exports=s},function(e,t,n){"use strict";var r=n(115),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=c},function(e,t,n){"use strict";var r=n(253),o={processChildrenUpdates:n(833).dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";var r=n(21),o=n(117),i=n(38),a=n(830),s=n(57),u=(n(15),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=n(38),o=n(831),i=n(832),a=n(15),s=r.canUseDOM?document.createElement("div"):null,u=/^\s*<(\w+)/;e.exports=function(e,t){var n=s;s||a(!1);var r=function(e){var t=e.match(u);return t&&t[1].toLowerCase()}(e),c=r&&i(r);if(c){n.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t||a(!1),o(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}},function(e,t,n){"use strict";var r=n(15);e.exports=function(e){return function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}(e)?Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&r(!1),"number"!=typeof t&&r(!1),0===t||t-1 in e||r(!1),"function"==typeof e.callee&&r(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),o=0;o<t;o++)n[o]=e[o];return n}(e):[e]}},function(e,t,n){"use strict";var r=n(38),o=n(15),i=r.canUseDOM?document.createElement("div"):null,a={},s=[1,'<select multiple="true">',"</select>"],u=[1,"<table>","</table>"],c=[3,"<table><tbody><tr>","</tr></tbody></table>"],l=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],p={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach(function(e){p[e]=l,a[e]=!0}),e.exports=function(e){return i||o(!1),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}},function(e,t,n){"use strict";var r=n(253),o=n(27),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(835),a=n(836),s=n(117),u=n(254),c=n(115),l=n(434),p=n(141),f=n(247),h=n(189),d=n(422),m=n(27),v=n(846),g=n(848),y=n(435),b=n(849),_=(n(53),n(850)),w=n(857),x=(n(57),n(188)),E=(n(15),n(251),n(258),n(428)),S=(n(262),n(23),d),C=p.deleteListener,k=m.getNodeFromInstance,O=h.listenTo,A=f.registrationNameModules,T={string:!0,number:!0},j="__html",P={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},I=11;function M(e,t){t&&(W[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&j in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",function(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}(e)))}function N(e,t,n,r){if(!(r instanceof w)){0;var o=e._hostContainerInfo,i=o._node&&o._node.nodeType===I?o._node:o._ownerDocument;O(t,i),r.getReactMountReady().enqueue(R,{inst:e,registrationName:t,listener:n})}}function R(){p.putListener(this.inst,this.registrationName,this.listener)}function D(){v.postMountWrapper(this)}function L(){b.postMountWrapper(this)}function U(){g.postMountWrapper(this)}var q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"};function F(){E.track(this)}function B(){this._rootNodeID||r("63");var e=k(this);switch(e||r("64"),this._tag){case"iframe":case"object":this._wrapperState.listeners=[h.trapBubbledEvent("topLoad","load",e)];break;case"video":case"audio":for(var t in this._wrapperState.listeners=[],q)q.hasOwnProperty(t)&&this._wrapperState.listeners.push(h.trapBubbledEvent(t,q[t],e));break;case"source":this._wrapperState.listeners=[h.trapBubbledEvent("topError","error",e)];break;case"img":this._wrapperState.listeners=[h.trapBubbledEvent("topError","error",e),h.trapBubbledEvent("topLoad","load",e)];break;case"form":this._wrapperState.listeners=[h.trapBubbledEvent("topReset","reset",e),h.trapBubbledEvent("topSubmit","submit",e)];break;case"input":case"select":case"textarea":this._wrapperState.listeners=[h.trapBubbledEvent("topInvalid","invalid",e)]}}function z(){y.postUpdateWrapper(this)}var V={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},H={listing:!0,pre:!0,textarea:!0},W=o({menuitem:!0},V),J=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,K={},Y={}.hasOwnProperty;function $(e,t){return e.indexOf("-")>=0||null!=t.is}var G=1;function Z(e){var t=e.type;!function(e){Y.call(K,e)||(J.test(e)||r("65",e),K[e]=!0)}(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}Z.displayName="ReactDOMComponent",Z.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=G++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,c,p=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(B,this);break;case"input":v.mountWrapper(this,p,t),p=v.getHostProps(this,p),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(B,this);break;case"option":g.mountWrapper(this,p,t),p=g.getHostProps(this,p);break;case"select":y.mountWrapper(this,p,t),p=y.getHostProps(this,p),e.getReactMountReady().enqueue(B,this);break;case"textarea":b.mountWrapper(this,p,t),p=b.getHostProps(this,p),e.getReactMountReady().enqueue(F,this),e.getReactMountReady().enqueue(B,this)}if(M(this,p),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===u.svg&&"foreignobject"===a)&&(o=u.html),o===u.html&&("svg"===this._tag?o=u.svg:"math"===this._tag&&(o=u.mathml)),this._namespaceURI=o,e.useCreateElement){var f,h=n._ownerDocument;if(o===u.html)if("script"===this._tag){var d=h.createElement("div"),_=this._currentElement.type;d.innerHTML="<"+_+"></"+_+">",f=d.removeChild(d.firstChild)}else f=p.is?h.createElement(this._currentElement.type,p.is):h.createElement(this._currentElement.type);else f=h.createElementNS(o,this._currentElement.type);m.precacheNode(this,f),this._flags|=S.hasCachedChildNodes,this._hostParent||l.setAttributeForRoot(f),this._updateDOMProperties(null,p,e);var w=s(f);this._createInitialChildren(e,p,r,w),c=w}else{var x=this._createOpenTagMarkupAndPutListeners(e,p),E=this._createContentMarkup(e,p,r);c=!E&&V[this._tag]?x+"/>":x+">"+E+"</"+this._currentElement.type+">"}switch(this._tag){case"input":e.getReactMountReady().enqueue(D,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(L,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"select":case"button":p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(U,this)}return c},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(A.hasOwnProperty(r))i&&N(this,r,i,e);else{"style"===r&&(i&&(i=this._previousStyleCopy=o({},t.style)),i=a.createMarkupForStyles(i,this));var s=null;null!=this._tag&&$(this._tag,t)?P.hasOwnProperty(r)||(s=l.createMarkupForCustomAttribute(r,i)):s=l.createMarkupForProperty(r,i),s&&(n+=" "+s)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+l.createMarkupForRoot()),n+=" "+l.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=T[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=x(i);else if(null!=a){r=this.mountChildren(a,e,n).join("")}}return H[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&s.queueHTML(r,o.__html);else{var i=T[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&s.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),c=0;c<u.length;c++)s.queueChild(r,u[c])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,r){var o=t.props,i=this._currentElement.props;switch(this._tag){case"input":o=v.getHostProps(this,o),i=v.getHostProps(this,i);break;case"option":o=g.getHostProps(this,o),i=g.getHostProps(this,i);break;case"select":o=y.getHostProps(this,o),i=y.getHostProps(this,i);break;case"textarea":o=b.getHostProps(this,o),i=b.getHostProps(this,i)}switch(M(this,i),this._updateDOMProperties(o,i,e),this._updateDOMChildren(o,i,e,r),this._tag){case"input":v.updateWrapper(this),E.updateValueIfChanged(this);break;case"textarea":b.updateWrapper(this);break;case"select":e.getReactMountReady().enqueue(z,this)}},_updateDOMProperties:function(e,t,n){var r,i,s;for(r in e)if(!t.hasOwnProperty(r)&&e.hasOwnProperty(r)&&null!=e[r])if("style"===r){var u=this._previousStyleCopy;for(i in u)u.hasOwnProperty(i)&&((s=s||{})[i]="");this._previousStyleCopy=null}else A.hasOwnProperty(r)?e[r]&&C(this,r):$(this._tag,e)?P.hasOwnProperty(r)||l.deleteValueForAttribute(k(this),r):(c.properties[r]||c.isCustomAttribute(r))&&l.deleteValueForProperty(k(this),r);for(r in t){var p=t[r],f="style"===r?this._previousStyleCopy:null!=e?e[r]:void 0;if(t.hasOwnProperty(r)&&p!==f&&(null!=p||null!=f))if("style"===r)if(p?p=this._previousStyleCopy=o({},p):this._previousStyleCopy=null,f){for(i in f)!f.hasOwnProperty(i)||p&&p.hasOwnProperty(i)||((s=s||{})[i]="");for(i in p)p.hasOwnProperty(i)&&f[i]!==p[i]&&((s=s||{})[i]=p[i])}else s=p;else if(A.hasOwnProperty(r))p?N(this,r,p,n):f&&C(this,r);else if($(this._tag,t))P.hasOwnProperty(r)||l.setValueForAttribute(k(this),r,p);else if(c.properties[r]||c.isCustomAttribute(r)){var h=k(this);null!=p?l.setValueForProperty(h,r,p):l.deleteValueForProperty(h,r)}}s&&a.setValueForStyles(k(this),s,this)},_updateDOMChildren:function(e,t,n,r){var o=T[typeof e.children]?e.children:null,i=T[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,c=null!=i?null:t.children,l=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},getHostNode:function(){return k(this)},unmountComponent:function(e){switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":var t=this._wrapperState.listeners;if(t)for(var n=0;n<t.length;n++)t[n].remove();break;case"input":case"textarea":E.stopTracking(this);break;case"html":case"head":case"body":r("66",this._tag)}this.unmountChildren(e),m.uncacheNode(this),p.deleteAllListeners(this),this._rootNodeID=0,this._domID=0,this._wrapperState=null},getPublicInstance:function(){return k(this)}},o(Z.prototype,Z.Mixin,_.Mixin),e.exports=Z},function(e,t,n){"use strict";var r=n(27),o=n(432),i={focusDOMComponent:function(){o(r.getNodeFromInstance(this))}};e.exports=i},function(e,t,n){"use strict";var r=n(433),o=n(38),i=(n(53),n(837),n(839)),a=n(840),s=n(842),u=(n(23),s(function(e){return a(e)})),c=!1,l="cssFloat";if(o.canUseDOM){var p=document.createElement("div").style;try{p.font=""}catch(e){c=!0}void 0===document.documentElement.style.cssFloat&&(l="styleFloat")}var f={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=0===r.indexOf("--"),a=e[r];0,null!=a&&(n+=u(r)+":",n+=i(r,a,t,o)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var s=0===a.indexOf("--");0;var u=i(a,t[a],n,s);if("float"!==a&&"cssFloat"!==a||(a=l),s)o.setProperty(a,u);else if(u)o[a]=u;else{var p=c&&r.shorthandPropertyExpansions[a];if(p)for(var f in p)o[f]="";else o[a]=""}}}};e.exports=f},function(e,t,n){"use strict";var r=n(838),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t,n){"use strict";var r=/-(.)/g;e.exports=function(e){return e.replace(r,function(e,t){return t.toUpperCase()})}},function(e,t,n){"use strict";var r=n(433),o=(n(23),r.isUnitlessNumber);e.exports=function(e,t,n,r){if(null==t||"boolean"==typeof t||""===t)return"";var i=isNaN(t);return r||i||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}},function(e,t,n){"use strict";var r=n(841),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r=/([A-Z])/g;e.exports=function(e){return e.replace(r,"-$1").toLowerCase()}},function(e,t,n){"use strict";e.exports=function(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}},function(e,t,n){"use strict";var r=n(188);e.exports=function(e){return'"'+r(e)+'"'}},function(e,t,n){"use strict";var r=n(141);var o={handleTopLevel:function(e,t,n,o){!function(e){r.enqueueEvents(e),r.processEventQueue(!1)}(r.extractEvents(e,t,n,o))}};e.exports=o},function(e,t,n){"use strict";var r=n(38);function o(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var i={animationend:o("Animation","AnimationEnd"),animationiteration:o("Animation","AnimationIteration"),animationstart:o("Animation","AnimationStart"),transitionend:o("Transition","TransitionEnd")},a={},s={};r.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete i.animationend.animation,delete i.animationiteration.animation,delete i.animationstart.animation),"TransitionEvent"in window||delete i.transitionend.transition),e.exports=function(e){if(a[e])return a[e];if(!i[e])return e;var t=i[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return a[e]=t[n];return""}},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(434),a=n(256),s=n(27),u=n(58);n(15),n(23);function c(){this._rootNodeID&&p.updateWrapper(this)}function l(e){return"checkbox"===e.type||"radio"===e.type?null!=e.checked:null!=e.value}var p={getHostProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t);return o({type:void 0,step:void 0,min:void 0,max:void 0},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=t.defaultValue;e._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:null!=t.value?t.value:n,listeners:null,onChange:f.bind(e),controlled:l(t)}},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&i.setValueForProperty(s.getNodeFromInstance(e),"checked",n||!1);var r=s.getNodeFromInstance(e),o=a.getValue(t);if(null!=o)if(0===o&&""===r.value)r.value="0";else if("number"===t.type){var u=parseFloat(r.value,10)||0;(o!=u||o==u&&r.value!=o)&&(r.value=""+o)}else r.value!==""+o&&(r.value=""+o);else null==t.value&&null!=t.defaultValue&&r.defaultValue!==""+t.defaultValue&&(r.defaultValue=""+t.defaultValue),null==t.checked&&null!=t.defaultChecked&&(r.defaultChecked=!!t.defaultChecked)},postMountWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e);switch(t.type){case"submit":case"reset":break;case"color":case"date":case"datetime":case"datetime-local":case"month":case"time":case"week":n.value="",n.value=n.defaultValue;break;default:n.value=n.value}var r=n.name;""!==r&&(n.name=""),n.defaultChecked=!n.defaultChecked,n.defaultChecked=!n.defaultChecked,""!==r&&(n.name=r)}};function f(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);u.asap(c,this);var o=t.name;if("radio"===t.type&&null!=o){for(var i=s.getNodeFromInstance(this),l=i;l.parentNode;)l=l.parentNode;for(var p=l.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),f=0;f<p.length;f++){var h=p[f];if(h!==i&&h.form===i.form){var d=s.getInstanceFromNode(h);d||r("90"),u.asap(c,d)}}}return n}e.exports=p},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=n(25),o=n(104),i=n(27),a=n(435),s=(n(23),!1);function u(e){var t="";return o.Children.forEach(e,function(e){null!=e&&("string"==typeof e||"number"==typeof e?t+=e:s||(s=!0))}),t}var c={mountWrapper:function(e,t,n){var r=null;if(null!=n){var o=n;"optgroup"===o._tag&&(o=o._hostParent),null!=o&&"select"===o._tag&&(r=a.getSelectValueContext(o))}var i,s=null;if(null!=r)if(i=null!=t.value?t.value+"":u(t.children),s=!1,Array.isArray(r)){for(var c=0;c<r.length;c++)if(""+r[c]===i){s=!0;break}}else s=""+r===i;e._wrapperState={selected:s}},postMountWrapper:function(e){var t=e._currentElement.props;null!=t.value&&i.getNodeFromInstance(e).setAttribute("value",t.value)},getHostProps:function(e,t){var n=r({selected:void 0,children:void 0},t);null!=e._wrapperState.selected&&(n.selected=e._wrapperState.selected);var o=u(t.children);return o&&(n.children=o),n}};e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(256),a=n(27),s=n(58);n(15),n(23);function u(){this._rootNodeID&&c.updateWrapper(this)}var c={getHostProps:function(e,t){return null!=t.dangerouslySetInnerHTML&&r("91"),o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange})},mountWrapper:function(e,t){var n=i.getValue(t),o=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a&&r("92"),Array.isArray(s)&&(s.length<=1||r("93"),s=s[0]),a=""+s),null==a&&(a=""),o=a}e._wrapperState={initialValue:""+o,listeners:null,onChange:l.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getNodeFromInstance(e),r=i.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=a.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}};function l(e){var t=this._currentElement.props,n=i.executeOnChange(t,e);return s.asap(u,this),n}e.exports=c},function(e,t,n){"use strict";var r=n(21),o=n(257),i=(n(143),n(53),n(65),n(116)),a=n(851),s=(n(57),n(856));n(15);function u(e,t){return t&&(e=e||[]).push(t),e}function c(e,t){o.processChildrenUpdates(e,t)}var l={Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return a.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var u;return u=s(t,0),a.updateChildren(e,u,n,r,o,this,this._hostContainerInfo,i,0),u},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],a=0;for(var s in r)if(r.hasOwnProperty(s)){var u=r[s];0;var c=i.mountComponent(u,t,this,this._hostContainerInfo,n,0);u._mountIndex=a++,o.push(c)}return o},updateTextContent:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");c(this,[(t=e,{type:"TEXT_CONTENT",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateMarkup:function(e){var t,n=this._renderedChildren;for(var o in a.unmountChildren(n,!1),n)n.hasOwnProperty(o)&&r("118");c(this,[(t=e,{type:"SET_MARKUP",content:t,fromIndex:null,fromNode:null,toIndex:null,afterNode:null})])},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},a=[],s=this._reconcilerUpdateChildren(r,e,a,o,t,n);if(s||r){var l,p=null,f=0,h=0,d=0,m=null;for(l in s)if(s.hasOwnProperty(l)){var v=r&&r[l],g=s[l];v===g?(p=u(p,this.moveChild(v,m,f,h)),h=Math.max(v._mountIndex,h),v._mountIndex=f):(v&&(h=Math.max(v._mountIndex,h)),p=u(p,this._mountChildAtIndex(g,a[d],m,f,t,n)),d++),f++,m=i.getHostNode(g)}for(l in o)o.hasOwnProperty(l)&&(p=u(p,this._unmountChild(r[l],o[l])));p&&c(this,p),this._renderedChildren=s}},unmountChildren:function(e){var t=this._renderedChildren;a.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex<r)return function(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:i.getHostNode(e),toIndex:n,afterNode:t}}(e,t,n)},createChild:function(e,t,n){return function(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}(n,t,e._mountIndex)},removeChild:function(e,t){return function(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}(e,t)},_mountChildAtIndex:function(e,t,n,r,o,i){return e._mountIndex=r,this.createChild(e,n,t)},_unmountChild:function(e,t){var n=this.removeChild(e,t);return e._mountIndex=null,n}}};e.exports=l},function(e,t,n){"use strict";(function(t){var r=n(116),o=n(436),i=(n(260),n(259)),a=n(440);n(23);function s(e,t,n,r){var i=void 0===e[n];null!=t&&i&&(e[n]=o(t,!0))}void 0!==t&&t.env;var u={instantiateChildren:function(e,t,n,r){if(null==e)return null;var o={};return a(e,s,o),o},updateChildren:function(e,t,n,a,s,u,c,l,p){if(t||e){var f,h;for(f in t)if(t.hasOwnProperty(f)){var d=(h=e&&e[f])&&h._currentElement,m=t[f];if(null!=h&&i(d,m))r.receiveComponent(h,m,s,l),t[f]=h;else{h&&(a[f]=r.getHostNode(h),r.unmountComponent(h,!1));var v=o(m,!0);t[f]=v;var g=r.mountComponent(v,s,u,c,l,p);n.push(g)}}for(f in e)!e.hasOwnProperty(f)||t&&t.hasOwnProperty(f)||(h=e[f],a[f]=r.getHostNode(h),r.unmountComponent(h,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];r.unmountComponent(o,t)}}};e.exports=u}).call(this,n(67))},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(104),a=n(257),s=n(65),u=n(249),c=n(143),l=(n(53),n(437)),p=n(116),f=n(165),h=(n(15),n(258)),d=n(259),m=(n(23),0),v=1,g=2;function y(e){}function b(e,t){0}y.prototype.render=function(){var e=c.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return b(e,t),t};var _=1,w={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,o){this._context=o,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var a,s=this._currentElement.props,u=this._processContext(o),l=this._currentElement.type,p=e.getUpdateQueue(),h=function(e){return!(!e.prototype||!e.prototype.isReactComponent)}(l),d=this._constructComponent(h,s,u,p);h||null!=d&&null!=d.render?!function(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}(l)?this._compositeType=m:this._compositeType=v:(a=d,b(),null===d||!1===d||i.isValidElement(d)||r("105",l.displayName||l.name||"Component"),d=new y(l),this._compositeType=g),d.props=s,d.context=u,d.refs=f,d.updater=p,this._instance=d,c.set(d,this);var w,x=d.state;return void 0===x&&(d.state=x=null),("object"!=typeof x||Array.isArray(x))&&r("106",this.getName()||"ReactCompositeComponent"),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,w=d.unstable_handleError?this.performInitialMountWithErrorHandling(a,t,n,e,o):this.performInitialMount(a,t,n,e,o),d.componentDidMount&&e.getReactMountReady().enqueue(d.componentDidMount,d),w},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(s){r.rollback(a),this._instance.unstable_handleError(s),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var a=l.getType(e);this._renderedNodeType=a;var s=this._instantiateReactComponent(e,a!==l.EMPTY);return this._renderedComponent=s,p.mountComponent(s,r,t,n,this._processChildContext(o),0)},getHostNode:function(){return p.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";u.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(p.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,c.remove(t)}},_maskContext:function(e){var t=this._currentElement.type.contextTypes;if(!t)return f;var n={};for(var r in t)n[r]=e[r];return n},_processContext:function(e){return this._maskContext(e)},_processChildContext:function(e){var t,n=this._currentElement.type,i=this._instance;if(i.getChildContext&&(t=i.getChildContext()),t){for(var a in"object"!=typeof n.childContextTypes&&r("107",this.getName()||"ReactCompositeComponent"),t)a in n.childContextTypes||r("108",this.getName()||"ReactCompositeComponent",a);return o({},e,t)}return e},_checkContextTypes:function(e,t,n){0},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?p.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,o,i){var a=this._instance;null==a&&r("136",this.getName()||"ReactCompositeComponent");var s,u=!1;this._context===i?s=a.context:(s=this._processContext(i),u=!0);var c=t.props,l=n.props;t!==n&&(u=!0),u&&a.componentWillReceiveProps&&a.componentWillReceiveProps(l,s);var p=this._processPendingState(l,s),f=!0;this._pendingForceUpdate||(a.shouldComponentUpdate?f=a.shouldComponentUpdate(l,p,s):this._compositeType===v&&(f=!h(c,l)||!h(a.state,p))),this._updateBatchNumber=null,f?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,p,s,e,i)):(this._currentElement=n,this._context=i,a.props=l,a.state=p,a.context=s)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var a=o({},i?r[0]:n.state),s=i?1:0;s<r.length;s++){var u=r[s];o(a,"function"==typeof u?u.call(n,a,e,t):u)}return a},_performComponentUpdate:function(e,t,n,r,o,i){var a,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=i,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(o,i),l&&o.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,o=this._renderValidatedComponent();if(d(r,o))p.receiveComponent(n,o,e,this._processChildContext(t));else{var i=p.getHostNode(n);p.unmountComponent(n,!1);var a=l.getType(o);this._renderedNodeType=a;var s=this._instantiateReactComponent(o,a!==l.EMPTY);this._renderedComponent=s;var u=p.mountComponent(s,e,this._hostParent,this._hostContainerInfo,this._processChildContext(t),0);this._replaceNodeWithMarkup(i,u,n)}},_replaceNodeWithMarkup:function(e,t,n){a.replaceNodeWithMarkup(e,t,n)},_renderValidatedComponentWithoutOwnerOrContext:function(){return this._instance.render()},_renderValidatedComponent:function(){var e;if(this._compositeType!==g){s.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{s.current=null}}else e=this._renderValidatedComponentWithoutOwnerOrContext();return null===e||!1===e||i.isValidElement(e)||r("109",this.getName()||"ReactCompositeComponent"),e},attachRef:function(e,t){var n=this.getPublicInstance();null==n&&r("110");var o=t.getPublicInstance();(n.refs===f?n.refs={}:n.refs)[e]=o},detachRef:function(e){delete this.getPublicInstance().refs[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return this._compositeType===g?null:e},_instantiateReactComponent:null};e.exports=w},function(e,t,n){"use strict";var r=1;e.exports=function(){return r++}},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=function(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}},function(e,t,n){"use strict";(function(t){n(260);var r=n(440);n(23);function o(e,t,n,r){if(e&&"object"==typeof e){var o=e;0,void 0===o[n]&&null!=t&&(o[n]=t)}}void 0!==t&&t.env,e.exports=function(e,t){if(null==e)return e;var n={};return r(e,o,n),n}}).call(this,n(67))},function(e,t,n){"use strict";var r=n(25),o=n(90),i=n(185),a=(n(53),n(858)),s=[];var u={enqueue:function(){}};function c(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.useCreateElement=!1,this.updateQueue=new a(this)}var l={getTransactionWrappers:function(){return s},getReactMountReady:function(){return u},getUpdateQueue:function(){return this.updateQueue},destructor:function(){},checkpoint:function(){},rollback:function(){}};r(c.prototype,i,l),o.addPoolingTo(c),e.exports=c},function(e,t,n){"use strict";var r=n(261);n(23);var o=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.transaction=t}return e.prototype.isMounted=function(e){return!1},e.prototype.enqueueCallback=function(e,t,n){this.transaction.isInTransaction()&&r.enqueueCallback(e,t,n)},e.prototype.enqueueForceUpdate=function(e){this.transaction.isInTransaction()&&r.enqueueForceUpdate(e)},e.prototype.enqueueReplaceState=function(e,t){this.transaction.isInTransaction()&&r.enqueueReplaceState(e,t)},e.prototype.enqueueSetState=function(e,t){this.transaction.isInTransaction()&&r.enqueueSetState(e,t)},e}();e.exports=o},function(e,t,n){"use strict";var r=n(25),o=n(117),i=n(27),a=function(e){this._currentElement=null,this._hostNode=null,this._hostParent=null,this._hostContainerInfo=null,this._domID=0};r(a.prototype,{mountComponent:function(e,t,n,r){var a=n._idCounter++;this._domID=a,this._hostParent=t,this._hostContainerInfo=n;var s=" react-empty: "+this._domID+" ";if(e.useCreateElement){var u=n._ownerDocument.createComment(s);return i.precacheNode(this,u),o(u)}return e.renderToStaticMarkup?"":"\x3c!--"+s+"--\x3e"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t,n){"use strict";var r=n(21);n(15);function o(e,t){"_hostNode"in e||r("33"),"_hostNode"in t||r("33");for(var n=0,o=e;o;o=o._hostParent)n++;for(var i=0,a=t;a;a=a._hostParent)i++;for(;n-i>0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var s=n;s--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}e.exports={isAncestor:function(e,t){"_hostNode"in e||r("35"),"_hostNode"in t||r("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:o,getParentInstance:function(e){return"_hostNode"in e||r("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r<o.length;r++)t(o[r],"bubbled",n)},traverseEnterLeave:function(e,t,n,r,i){for(var a=e&&t?o(e,t):null,s=[];e&&e!==a;)s.push(e),e=e._hostParent;for(var u,c=[];t&&t!==a;)c.push(t),t=t._hostParent;for(u=0;u<s.length;u++)n(s[u],"bubbled",r);for(u=c.length;u-- >0;)n(c[u],"captured",i)}}},function(e,t,n){"use strict";var r=n(21),o=n(25),i=n(253),a=n(117),s=n(27),u=n(188),c=(n(15),n(262),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,l=c.createComment(i),p=c.createComment(" /react-text "),f=a(c.createDocumentFragment());return a.queueChild(f,a(l)),this._stringText&&a.queueChild(f,a(c.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,l),this._closingComment=p,f}var h=u(this._stringText);return e.renderToStaticMarkup?h:"\x3c!--"+i+"--\x3e"+h+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this).nextSibling;;){if(null==t&&r("67",this._domID),8===t.nodeType&&" /react-text "===t.nodeValue){this._closingComment=t;break}t=t.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";var r=n(25),o=n(58),i=n(185),a=n(57),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u=[{initialize:a,close:o.flushBatchedUpdates.bind(o)},s];function c(){this.reinitializeTransaction()}r(c.prototype,i,{getTransactionWrappers:function(){return u}});var l=new c,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):l.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";var r=n(25),o=n(442),i=n(38),a=n(90),s=n(27),u=n(58),c=n(250),l=n(864);function p(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}function f(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function h(e){var t=c(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;do{e.ancestors.push(r),r=r&&p(r)}while(r);for(var o=0;o<e.ancestors.length;o++)n=e.ancestors[o],d._handleTopLevel(e.topLevelType,n,e.nativeEvent,c(e.nativeEvent))}r(f.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),a.addPoolingTo(f,a.twoArgumentPooler);var d={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:i.canUseDOM?window:null,setHandleTopLevel:function(e){d._handleTopLevel=e},setEnabled:function(e){d._enabled=!!e},isEnabled:function(){return d._enabled},trapBubbledEvent:function(e,t,n){return n?o.listen(n,t,d.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){return n?o.capture(n,t,d.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=function(e){e(l(window))}.bind(null,e);o.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(d._enabled){var n=f.getPooled(e,t);try{u.batchedUpdates(h,n)}finally{f.release(n)}}}};e.exports=d},function(e,t,n){"use strict";e.exports=function(e){return e.Window&&e instanceof e.Window?{x:e.pageXOffset||e.document.documentElement.scrollLeft,y:e.pageYOffset||e.document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}},function(e,t,n){"use strict";var r=n(115),o=n(141),i=n(248),a=n(257),s=n(438),u=n(189),c=n(439),l=n(58),p={Component:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:o.injection,EventPluginUtils:i.injection,EventEmitter:u.injection,HostComponent:c.injection,Updates:l.injection};e.exports=p},function(e,t,n){"use strict";var r=n(25),o=n(426),i=n(90),a=n(189),s=n(443),u=(n(53),n(185)),c=n(261),l=[{initialize:s.getSelectionInformation,close:s.restoreSelection},{initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},{initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}}];function p(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=e}var f={getTransactionWrappers:function(){return l},getReactMountReady:function(){return this.reactMountReady},getUpdateQueue:function(){return c},checkpoint:function(){return this.reactMountReady.checkpoint()},rollback:function(e){this.reactMountReady.rollback(e)},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};r(p.prototype,u,f),i.addPoolingTo(p),e.exports=p},function(e,t,n){"use strict";var r=n(38),o=n(868),i=n(425);function a(e,t,n,r){return e===n&&t===r}var s=r.canUseDOM&&"selection"in document&&!("getSelection"in window),u={getOffsets:s?function(e){var t=document.selection.createRange(),n=t.text.length,r=t.duplicate();r.moveToElementText(e),r.setEndPoint("EndToStart",t);var o=r.text.length;return{start:o,end:o+n}}:function(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,r=t.anchorOffset,o=t.focusNode,i=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(e){return null}var u=a(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)?0:s.toString().length,c=s.cloneRange();c.selectNodeContents(e),c.setEnd(s.startContainer,s.startOffset);var l=a(c.startContainer,c.startOffset,c.endContainer,c.endOffset)?0:c.toString().length,p=l+u,f=document.createRange();f.setStart(n,r),f.setEnd(o,i);var h=f.collapsed;return{start:h?p:l,end:h?l:p}},setOffsets:s?function(e,t){var n,r,o=document.selection.createRange().duplicate();void 0===t.end?r=n=t.start:t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}:function(e,t){if(window.getSelection){var n=window.getSelection(),r=e[i()].length,a=Math.min(t.start,r),s=void 0===t.end?a:Math.min(t.end,r);if(!n.extend&&a>s){var u=s;s=a,a=u}var c=o(e,a),l=o(e,s);if(c&&l){var p=document.createRange();p.setStart(c.node,c.offset),n.removeAllRanges(),a>s?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p))}}}};e.exports=u},function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}e.exports=function(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}},function(e,t,n){"use strict";var r=n(870);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=n(871);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",i={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},a={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r,xlinkArcrole:r,xlinkHref:r,xlinkRole:r,xlinkShow:r,xlinkTitle:r,xlinkType:r,xmlBase:o,xmlLang:o,xmlSpace:o},DOMAttributeNames:{}};Object.keys(i).forEach(function(e){a.Properties[e]=0,i[e]&&(a.DOMAttributeNames[e]=i[e])}),e.exports=a},function(e,t,n){"use strict";var r=n(140),o=n(38),i=n(27),a=n(443),s=n(68),u=n(444),c=n(429),l=n(258),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,f={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},h=null,d=null,m=null,v=!1,g=!1;function y(e,t){if(v||null==h||h!==u())return null;var n=function(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}(h);if(!m||!l(m,n)){m=n;var o=s.getPooled(f.select,d,e,t);return o.type="select",o.target=h,r.accumulateTwoPhaseDispatches(o),o}return null}var b={eventTypes:f,extractEvents:function(e,t,n,r){if(!g)return null;var o=t?i.getNodeFromInstance(t):window;switch(e){case"topFocus":(c(o)||"true"===o.contentEditable)&&(h=o,d=t,m=null);break;case"topBlur":h=null,d=null,m=null;break;case"topMouseDown":v=!0;break;case"topContextMenu":case"topMouseUp":return v=!1,y(n,r);case"topSelectionChange":if(p)break;case"topKeyDown":case"topKeyUp":return y(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(g=!0)}};e.exports=b},function(e,t,n){"use strict";var r=n(21),o=n(442),i=n(140),a=n(27),s=n(875),u=n(876),c=n(68),l=n(877),p=n(878),f=n(186),h=n(880),d=n(881),m=n(882),v=n(142),g=n(883),y=n(57),b=n(263),_=(n(15),{}),w={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach(function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};_[e]=o,w[r]=o});var x={};function E(e){return"."+e._rootNodeID}function S(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var C={eventTypes:_,extractEvents:function(e,t,n,o){var a,y=w[e];if(!y)return null;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=c;break;case"topKeyPress":if(0===b(n))return null;case"topKeyDown":case"topKeyUp":a=p;break;case"topBlur":case"topFocus":a=l;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=f;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=h;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=d;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=s;break;case"topTransitionEnd":a=m;break;case"topScroll":a=v;break;case"topWheel":a=g;break;case"topCopy":case"topCut":case"topPaste":a=u}a||r("86",e);var _=a.getPooled(y,t,n,o);return i.accumulateTwoPhaseDispatches(_),_},didPutListener:function(e,t,n){if("onClick"===t&&!S(e._tag)){var r=E(e),i=a.getNodeFromInstance(e);x[r]||(x[r]=o.listen(i,"click",y))}},willDeleteListener:function(e,t){if("onClick"===t&&!S(e._tag)){var n=E(e);x[n].remove(),delete x[n]}}};e.exports=C},function(e,t,n){"use strict";var r=n(68);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{animationName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(68),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(142);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{relatedTarget:null}),e.exports=o},function(e,t,n){"use strict";var r=n(142),o=n(263),i={key:n(879),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:n(252),charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r=n(263),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}},function(e,t,n){"use strict";var r=n(186);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{dataTransfer:null}),e.exports=o},function(e,t,n){"use strict";var r=n(142),o={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:n(252)};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(68);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{propertyName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(186);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),e.exports=o},function(e,t,n){"use strict";n(262);var r=9;e.exports=function(e,t){return{_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?t.nodeType===r?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}},function(e,t,n){"use strict";e.exports={useCreateElement:!0,useFiber:!1}},function(e,t,n){"use strict";var r=n(887),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";var r=65521;e.exports=function(e){for(var t=1,n=0,o=0,i=e.length,a=-4&i;o<a;){for(var s=Math.min(o+4096,a);o<s;o+=4)n+=(t+=e.charCodeAt(o))+(t+=e.charCodeAt(o+1))+(t+=e.charCodeAt(o+2))+(t+=e.charCodeAt(o+3));t%=r,n%=r}for(;o<i;o++)n+=t+=e.charCodeAt(o);return(t%=r)|(n%=r)<<16}},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(21),o=(n(65),n(27)),i=n(143),a=n(446);n(15),n(23);e.exports=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=i.get(e);if(t)return(t=a(t))?o.getNodeFromInstance(t):null;"function"==typeof e.render?r("44"):r("45",Object.keys(e))}},function(e,t,n){"use strict";var r=n(445);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=n(0),o=a(n(10)),i=a(n(447));a(n(448));function a(e){return e&&e.__esModule?e:{default:e}}var s=function(e){function t(n,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.call(this,n,r));return o.store=n.store,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.getChildContext=function(){return{store:this.store}},t.prototype.render=function(){return r.Children.only(this.props.children)},t}(r.Component);t.default=s,s.propTypes={store:i.default.isRequired,children:o.default.element.isRequired},s.childContextTypes={store:i.default.isRequired}},function(e,t,n){"use strict";var r=n(363);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=function(e,t,n){var l=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},v=Boolean(e),g=e||p,y=void 0;y="function"==typeof t?t:t?(0,s.default)(t):f;var b=n||h,_=l.pure,w=void 0===_||_,x=l.withRef,E=void 0!==x&&x,S=w&&b!==h,C=m++;return function(e){var t="Connect("+function(e){return e.displayName||e.name||"Component"}(e)+")";var n=function(n){function i(e,r){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i);var o=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,n.call(this,e,r));o.version=C,o.store=e.store||r.store,(0,c.default)(o.store,'Could not find "store" in either the context or props of "'+t+'". Either wrap the root component in a <Provider>, or explicitly pass "store" as a prop to "'+t+'".');var a=o.store.getState();return o.state={storeState:a},o.clearCache(),o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(i,n),i.prototype.shouldComponentUpdate=function(){return!w||this.haveOwnPropsChanged||this.hasStoreStateChanged},i.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var n=e.getState();return this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,t):this.finalMapStateToProps(n)},i.prototype.configureFinalMapState=function(e,t){var n=g(e.getState(),t),r="function"==typeof n;return this.finalMapStateToProps=r?n:g,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(e,t):n},i.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var n=e.dispatch;return this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,t):this.finalMapDispatchToProps(n)},i.prototype.configureFinalMapDispatch=function(e,t){var n=y(e.dispatch,t),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:y,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(e,t):n},i.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,a.default)(e,this.stateProps))&&(this.stateProps=e,!0)},i.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,a.default)(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},i.prototype.updateMergedPropsIfNeeded=function(){var e,t,n,r=(e=this.stateProps,t=this.dispatchProps,n=this.props,b(e,t,n));return!(this.mergedProps&&S&&(0,a.default)(r,this.mergedProps))&&(this.mergedProps=r,!0)},i.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},i.prototype.trySubscribe=function(){v&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},i.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},i.prototype.componentDidMount=function(){this.trySubscribe()},i.prototype.componentWillReceiveProps=function(e){w&&(0,a.default)(e,this.props)||(this.haveOwnPropsChanged=!0)},i.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},i.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},i.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!w||t!==e){if(w&&!this.doStatePropsDependOnOwnProps){var n=function(e,t){try{return e.apply(t)}catch(e){return d.value=e,d}}(this.updateStatePropsIfNeeded,this);if(!n)return;n===d&&(this.statePropsPrecalculationError=d.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},i.prototype.getWrappedInstance=function(){return(0,c.default)(E,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},i.prototype.render=function(){var t=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,i=this.haveStatePropsBeenPrecalculated,a=this.statePropsPrecalculationError,s=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,a)throw a;var u=!0,c=!0;w&&s&&(u=n||t&&this.doStatePropsDependOnOwnProps,c=t&&this.doDispatchPropsDependOnOwnProps);var l=!1,p=!1;i?l=!0:u&&(l=this.updateStatePropsIfNeeded()),c&&(p=this.updateDispatchPropsIfNeeded());return!(!!(l||p||t)&&this.updateMergedPropsIfNeeded())&&s?s:(this.renderedElement=E?(0,o.createElement)(e,r({},this.mergedProps,{ref:"wrappedInstance"})):(0,o.createElement)(e,this.mergedProps),this.renderedElement)},i}(o.Component);return n.displayName=t,n.WrappedComponent=e,n.contextTypes={store:i.default},n.propTypes={store:i.default},(0,u.default)(n,e)}};var o=n(0),i=l(n(447)),a=l(n(894)),s=l(n(895)),u=(l(n(448)),l(n(264)),l(n(896))),c=l(n(897));function l(e){return e&&e.__esModule?e:{default:e}}var p=function(e){return{}},f=function(e){return{dispatch:e}},h=function(e,t,n){return r({},n,e,t)};var d={value:null};var m=0},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,i=0;i<n.length;i++)if(!o.call(t,n[i])||e[n[i]]!==t[n[i]])return!1;return!0}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){return function(t){return(0,r.bindActionCreators)(e,t)}};var r=n(124)},function(e,t,n){"use strict";var r=n(362),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function u(e){return r.isMemo(e)?a:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var c=Object.defineProperty,l=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,d=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(d){var o=h(n);o&&o!==d&&e(t,o,r)}var a=l(n);p&&(a=a.concat(p(n)));for(var s=u(t),m=u(n),v=0;v<a.length;++v){var g=a[v];if(!(i[g]||r&&r[g]||m&&m[g]||s&&s[g])){var y=f(n,g);try{c(t,g,y)}catch(e){}}}return t}return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;(u=new Error(t.replace(/%s/g,function(){return c[l++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}}},function(e,t){e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},function(e,t,n){var r=n(118),o=n(85);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t,n){var r=n(118),o=n(450);e.exports=function(e,t){return e&&r(t,o(t),e)}},function(e,t,n){var r=n(52),o=n(175),i=n(902),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return i(e);var t=o(e),n=[];for(var s in e)("constructor"!=s||!t&&a.call(e,s))&&n.push(s);return n}},function(e,t){e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},function(e,t,n){(function(e){var r=n(51),o=t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o?r.Buffer:void 0,s=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=s?s(n):new e.constructor(n);return e.copy(r),r}}).call(this,n(173)(e))},function(e,t){e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},function(e,t,n){var r=n(118),o=n(230);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t,n){var r=n(118),o=n(451);e.exports=function(e,t){return r(e,o(e),t)}},function(e,t){var n=Object.prototype.hasOwnProperty;e.exports=function(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},function(e,t,n){var r=n(266),o=n(909),i=n(910),a=n(911),s=n(912),u="[object Boolean]",c="[object Date]",l="[object Map]",p="[object Number]",f="[object RegExp]",h="[object Set]",d="[object String]",m="[object Symbol]",v="[object ArrayBuffer]",g="[object DataView]",y="[object Float32Array]",b="[object Float64Array]",_="[object Int8Array]",w="[object Int16Array]",x="[object Int32Array]",E="[object Uint8Array]",S="[object Uint8ClampedArray]",C="[object Uint16Array]",k="[object Uint32Array]";e.exports=function(e,t,n){var O=e.constructor;switch(t){case v:return r(e);case u:case c:return new O(+e);case g:return o(e,n);case y:case b:case _:case w:case x:case E:case S:case C:case k:return s(e,n);case l:return new O;case p:case d:return new O(e);case f:return i(e);case h:return new O;case m:return a(e)}}},function(e,t,n){var r=n(266);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},function(e,t){var n=/\w*$/;e.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},function(e,t,n){var r=n(106),o=r?r.prototype:void 0,i=o?o.valueOf:void 0;e.exports=function(e){return i?Object(i.call(e)):{}}},function(e,t,n){var r=n(266);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},function(e,t,n){var r=n(914),o=n(265),i=n(175);e.exports=function(e){return"function"!=typeof e.constructor||i(e)?{}:r(o(e))}},function(e,t,n){var r=n(52),o=Object.create,i=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=i},function(e,t,n){var r=n(916),o=n(234),i=n(235),a=i&&i.isMap,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(176),o=n(66),i="[object Map]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(918),o=n(234),i=n(235),a=i&&i.isSet,s=a?o(a):r;e.exports=s},function(e,t,n){var r=n(176),o=n(66),i="[object Set]";e.exports=function(e){return o(e)&&r(e)==i}},function(e,t,n){var r=n(108),o=n(920),i=n(921),a=n(109);e.exports=function(e,t){return t=r(t,e),null==(e=i(e,t))||delete e[a(o(t))]}},function(e,t){e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},function(e,t,n){var r=n(177),o=n(368);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},function(e,t,n){var r=n(264);e.exports=function(e){return r(e)?void 0:e}},function(e,t,n){var r=n(924);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},function(e,t,n){var r=n(229),o=n(925);e.exports=function e(t,n,i,a,s){var u=-1,c=t.length;for(i||(i=o),s||(s=[]);++u<c;){var l=t[u];n>0&&i(l)?n>1?e(l,n-1,i,a,s):r(s,l):a||(s[s.length]=l)}return s}},function(e,t,n){var r=n(106),o=n(231),i=n(37),a=r?r.isConcatSpreadable:void 0;e.exports=function(e){return i(e)||o(e)||!!(a&&e&&e[a])}},function(e,t){e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},function(e,t,n){var r=n(928),o=n(419),i=n(237),a=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:i;e.exports=a},function(e,t){e.exports=function(e){return function(){return e}}},function(e,t){var n=800,r=16,o=Date.now;e.exports=function(e){var t=0,i=0;return function(){var a=o(),s=r-(a-i);if(i=a,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){"use strict";var r=n(931),o=n(932);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=b,t.resolve=function(e,t){return b(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?b(e,!1,!0).resolveObject(t):t},t.format=function(e){o.isString(e)&&(e=b(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,u=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),p=["%","/","?",";","#"].concat(l),f=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},v={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},y=n(933);function b(e,t,n){if(e&&o.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var b=e=c.join(s);if(b=b.trim(),!n&&1===e.split("#").length){var _=u.exec(b);if(_)return this.path=b,this.href=b,this.pathname=_[1],_[2]?(this.search=_[2],this.query=t?y.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=a.exec(b);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,b=b.substr(w.length)}if(n||w||b.match(/^\/\/[^@\/]+@[^@\/]+/)){var E="//"===b.substr(0,2);!E||w&&v[w]||(b=b.substr(2),this.slashes=!0)}if(!v[w]&&(E||w&&!g[w])){for(var S,C,k=-1,O=0;O<f.length;O++){-1!==(A=b.indexOf(f[O]))&&(-1===k||A<k)&&(k=A)}-1!==(C=-1===k?b.lastIndexOf("@"):b.lastIndexOf("@",k))&&(S=b.slice(0,C),b=b.slice(C+1),this.auth=decodeURIComponent(S)),k=-1;for(O=0;O<p.length;O++){var A;-1!==(A=b.indexOf(p[O]))&&(-1===k||A<k)&&(k=A)}-1===k&&(k=b.length),this.host=b.slice(0,k),b=b.slice(k),this.parseHost(),this.hostname=this.hostname||"";var T="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!T)for(var j=this.hostname.split(/\./),P=(O=0,j.length);O<P;O++){var I=j[O];if(I&&!I.match(h)){for(var M="",N=0,R=I.length;N<R;N++)I.charCodeAt(N)>127?M+="x":M+=I[N];if(!M.match(h)){var D=j.slice(0,O),L=j.slice(O+1),U=I.match(d);U&&(D.push(U[1]),L.unshift(U[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),T||(this.hostname=r.toASCII(this.hostname));var q=this.port?":"+this.port:"",F=this.hostname||"";this.host=F+q,this.href+=this.host,T&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!m[x])for(O=0,P=l.length;O<P;O++){var B=l[O];if(-1!==b.indexOf(B)){var z=encodeURIComponent(B);z===B&&(z=escape(B)),b=b.split(B).join(z)}}var V=b.indexOf("#");-1!==V&&(this.hash=b.substr(V),b=b.slice(0,V));var H=b.indexOf("?");if(-1!==H?(this.search=b.substr(H),this.query=b.substr(H+1),t&&(this.query=y.parse(this.query)),b=b.slice(0,H)):t&&(this.search="",this.query={}),b&&(this.pathname=b),g[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){q=this.pathname||"";var W=this.search||"";this.path=q+W}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,a="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(a=y.stringify(this.query));var s=this.search||a&&"?"+a||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+i+(n=n.replace(/[?#]/g,function(e){return encodeURIComponent(e)}))+(s=s.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(b(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(o.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),a=0;a<r.length;a++){var s=r[a];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var u=Object.keys(e),c=0;c<u.length;c++){var l=u[c];"protocol"!==l&&(n[l]=e[l])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var p=Object.keys(e),f=0;f<p.length;f++){var h=p[f];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||v[e.protocol])n.pathname=e.pathname;else{for(var d=(e.pathname||"").split("/");d.length&&!(e.host=d.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==d[0]&&d.unshift(""),d.length<2&&d.unshift(""),n.pathname=d.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",y=n.search||"";n.path=m+y}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var b=n.pathname&&"/"===n.pathname.charAt(0),_=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=_||b||n.host&&e.pathname,x=w,E=n.pathname&&n.pathname.split("/")||[],S=(d=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(S&&(n.hostname="",n.port=null,n.host&&(""===E[0]?E[0]=n.host:E.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===d[0]?d[0]=e.host:d.unshift(e.host)),e.host=null),w=w&&(""===d[0]||""===E[0])),_)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,E=d;else if(d.length)E||(E=[]),E.pop(),E=E.concat(d),n.search=e.search,n.query=e.query;else if(!o.isNullOrUndefined(e.search)){if(S)n.hostname=n.host=E.shift(),(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift());return n.search=e.search,n.query=e.query,o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var C=E.slice(-1)[0],k=(n.host||e.host||E.length>1)&&("."===C||".."===C)||""===C,O=0,A=E.length;A>=0;A--)"."===(C=E[A])?E.splice(A,1):".."===C?(E.splice(A,1),O++):O&&(E.splice(A,1),O--);if(!w&&!x)for(;O--;O)E.unshift("..");!w||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),k&&"/"!==E.join("/").substr(-1)&&E.push("");var T,j=""===E[0]||E[0]&&"/"===E[0].charAt(0);S&&(n.hostname=n.host=j?"":E.length?E.shift():"",(T=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=T.shift(),n.host=n.hostname=T.shift()));return(w=w||n.host&&E.length)&&!j&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),o.isNull(n.pathname)&&o.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){(function(e,r){var o;/*! https://mths.be/punycode v1.3.2 by @mathias */!function(i){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof r&&r;a.global!==a&&a.window!==a&&a.self;var s,u=2147483647,c=36,l=1,p=26,f=38,h=700,d=72,m=128,v="-",g=/^xn--/,y=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,_={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=c-l,x=Math.floor,E=String.fromCharCode;function S(e){throw RangeError(_[e])}function C(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function k(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+C((e=e.replace(b,".")).split("."),t).join(".")}function O(e){for(var t,n,r=[],o=0,i=e.length;o<i;)(t=e.charCodeAt(o++))>=55296&&t<=56319&&o<i?56320==(64512&(n=e.charCodeAt(o++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),o--):r.push(t);return r}function A(e){return C(e,function(e){var t="";return e>65535&&(t+=E((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=E(e)}).join("")}function T(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:c}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function P(e,t,n){var r=0;for(e=n?x(e/h):e>>1,e+=x(e/t);e>w*p>>1;r+=c)e=x(e/w);return x(r+(w+1)*e/(e+f))}function I(e){var t,n,r,o,i,a,s,f,h,g,y=[],b=e.length,_=0,w=m,E=d;for((n=e.lastIndexOf(v))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&S("not-basic"),y.push(e.charCodeAt(r));for(o=n>0?n+1:0;o<b;){for(i=_,a=1,s=c;o>=b&&S("invalid-input"),((f=T(e.charCodeAt(o++)))>=c||f>x((u-_)/a))&&S("overflow"),_+=f*a,!(f<(h=s<=E?l:s>=E+p?p:s-E));s+=c)a>x(u/(g=c-h))&&S("overflow"),a*=g;E=P(_-i,t=y.length+1,0==i),x(_/t)>u-w&&S("overflow"),w+=x(_/t),_%=t,y.splice(_++,0,w)}return A(y)}function M(e){var t,n,r,o,i,a,s,f,h,g,y,b,_,w,C,k=[];for(b=(e=O(e)).length,t=m,n=0,i=d,a=0;a<b;++a)(y=e[a])<128&&k.push(E(y));for(r=o=k.length,o&&k.push(v);r<b;){for(s=u,a=0;a<b;++a)(y=e[a])>=t&&y<s&&(s=y);for(s-t>x((u-n)/(_=r+1))&&S("overflow"),n+=(s-t)*_,t=s,a=0;a<b;++a)if((y=e[a])<t&&++n>u&&S("overflow"),y==t){for(f=n,h=c;!(f<(g=h<=i?l:h>=i+p?p:h-i));h+=c)C=f-g,w=c-g,k.push(E(j(g+C%w,0))),f=x(C/w);k.push(E(j(f,0))),i=P(n,_,r==o),n=0,++r}++n,++t}return k.join("")}s={version:"1.3.2",ucs2:{decode:O,encode:A},decode:I,encode:M,toASCII:function(e){return k(e,function(e){return y.test(e)?"xn--"+M(e):e})},toUnicode:function(e){return k(e,function(e){return g.test(e)?I(e.slice(4).toLowerCase()):e})}},void 0===(o=function(){return s}.call(t,n,t,e))||(e.exports=o)}()}).call(this,n(173)(e),n(36))},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(934),t.encode=t.stringify=n(935)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,i){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var s=/\+/g;e=e.split(t);var u=1e3;i&&"number"==typeof i.maxKeys&&(u=i.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var l=0;l<c;++l){var p,f,h,d,m=e[l].replace(s,"%20"),v=m.indexOf(n);v>=0?(p=m.substr(0,v),f=m.substr(v+1)):(p=m,f=""),h=decodeURIComponent(p),d=decodeURIComponent(f),r(a,h)?o(a[h])?a[h].push(d):a[h]=[a[h],d]:a[h]=d}return a};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?i(a(e),function(a){var s=encodeURIComponent(r(a))+n;return o(e[a])?i(e[a],function(e){return s+encodeURIComponent(r(e))}).join(t):s+encodeURIComponent(r(e[a]))}).join(t):s?encodeURIComponent(r(s))+n+encodeURIComponent(r(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function i(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var a=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){var r=n(184),o=n(118),i=n(937),a=n(107),s=n(175),u=n(85),c=Object.prototype.hasOwnProperty,l=i(function(e,t){if(s(t)||a(t))o(t,u(t),e);else for(var n in t)c.call(t,n)&&r(e,n,t[n])});e.exports=l},function(e,t,n){var r=n(938),o=n(389);e.exports=function(e){return r(function(t,n){var r=-1,i=n.length,a=i>1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var u=n[r];u&&e(t,u,r,a)}return t})}},function(e,t,n){var r=n(237),o=n(454),i=n(455);e.exports=function(e,t){return i(o(e,t,r),e+"")}},function(e,t,n){
 /*!
  * https://github.com/Starcounter-Jack/JSON-Patch
  * (c) 2017 Joachim Wester
  * MIT license
  */
 /*!
  * https://github.com/Starcounter-Jack/JSON-Patch
  * (c) 2017 Joachim Wester
  * MIT license
  */
-var r=n(259),o=n(450),i=n(450);t.applyOperation=i.applyOperation,t.applyPatch=i.applyPatch,t.applyReducer=i.applyReducer,t.getValueByPointer=i.getValueByPointer,t.validate=i.validate,t.validator=i.validator;var a=n(259);t.JsonPatchError=a.PatchError,t.deepClone=a._deepClone,t.escapePathComponent=a.escapePathComponent,t.unescapePathComponent=a.unescapePathComponent;var s=new WeakMap,u=function(e){this.observers=new Map,this.obj=e},c=function(e,t){this.callback=e,this.observer=t};function l(e){var t=s.get(e.object);p(t.value,e.object,e.patches,""),e.patches.length&&o.applyPatch(t.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function p(e,t,n,o){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var i=r._objectKeys(t),a=r._objectKeys(e),s=!1,u=a.length-1;u>=0;u--){var c=e[f=a[u]];if(!r.hasOwnProperty(t,f)||void 0===t[f]&&void 0!==c&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(n.push({op:"remove",path:o+"/"+r.escapePathComponent(f)}),s=!0):(n.push({op:"replace",path:o,value:t}),!0);else{var l=t[f];"object"==typeof c&&null!=c&&"object"==typeof l&&null!=l?p(c,l,n,o+"/"+r.escapePathComponent(f)):c!==l&&(!0,n.push({op:"replace",path:o+"/"+r.escapePathComponent(f),value:r._deepClone(l)}))}}if(s||i.length!=a.length)for(u=0;u<i.length;u++){var f=i[u];r.hasOwnProperty(e,f)||void 0===t[f]||n.push({op:"add",path:o+"/"+r.escapePathComponent(f),value:r._deepClone(t[f])})}}}t.unobserve=function(e,t){t.unobserve()},t.observe=function(e,t){var n,o=function(e){return s.get(e)}(e);if(o){var i=function(e,t){return e.observers.get(t)}(o,t);n=i&&i.observer}else o=new u(e),s.set(e,o);if(n)return n;if(n={},o.value=r._deepClone(e),t){n.callback=t,n.next=null;var a=function(){l(n)},p=function(){clearTimeout(n.next),n.next=setTimeout(a)};"undefined"!=typeof window&&(window.addEventListener?(window.addEventListener("mouseup",p),window.addEventListener("keyup",p),window.addEventListener("mousedown",p),window.addEventListener("keydown",p),window.addEventListener("change",p)):(document.documentElement.attachEvent("onmouseup",p),document.documentElement.attachEvent("onkeyup",p),document.documentElement.attachEvent("onmousedown",p),document.documentElement.attachEvent("onkeydown",p),document.documentElement.attachEvent("onchange",p)))}return n.patches=[],n.object=e,n.unobserve=function(){l(n),clearTimeout(n.next),function(e,t){e.observers.delete(t.callback)}(o,n),"undefined"!=typeof window&&(window.removeEventListener?(window.removeEventListener("mouseup",p),window.removeEventListener("keyup",p),window.removeEventListener("mousedown",p),window.removeEventListener("keydown",p)):(document.documentElement.detachEvent("onmouseup",p),document.documentElement.detachEvent("onkeyup",p),document.documentElement.detachEvent("onmousedown",p),document.documentElement.detachEvent("onkeydown",p)))},o.observers.set(t,new c(t,n)),n},t.generate=l,t.compare=function(e,t){var n=[];return p(e,t,n,""),n}},function(e,t,n){var r=Array.prototype.slice,o=n(927),i=n(928),a=e.exports=function(e,t,n){return n||(n={}),e===t||(e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:function(e,t,n){var c,l;if(s(e)||s(t))return!1;if(e.prototype!==t.prototype)return!1;if(i(e))return!!i(t)&&(e=r.call(e),t=r.call(t),a(e,t,n));if(u(e)){if(!u(t))return!1;if(e.length!==t.length)return!1;for(c=0;c<e.length;c++)if(e[c]!==t[c])return!1;return!0}try{var p=o(e),f=o(t)}catch(e){return!1}if(p.length!=f.length)return!1;for(p.sort(),f.sort(),c=p.length-1;c>=0;c--)if(p[c]!=f[c])return!1;for(c=p.length-1;c>=0;c--)if(l=p[c],!a(e[l],t[l],n))return!1;return typeof e==typeof t}(e,t,n))};function s(e){return null==e}function u(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){(function(t){!function(){"use strict";e.exports=function(e){return(e instanceof t?e:new t(e.toString(),"binary")).toString("base64")}}()}).call(this,n(61).Buffer)},function(e,t,n){var r=n(931),o=n(360),i=n(381),a=n(65);e.exports=function(e,t,n){return e=a(e),n=null==n?0:r(i(n),0,e.length),t=o(t),e.slice(n,n+t.length)==t}},function(e,t){e.exports=function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}},function(e,t,n){"use strict";var r=n(933),o=n(934),i=n(452);e.exports={formats:i,parse:o,stringify:r}},function(e,t,n){"use strict";var r=n(451),o=n(452),i=Object.prototype.hasOwnProperty,a={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,u=Array.prototype.push,c=function(e,t){u.apply(e,s(t)?t:[t])},l=Date.prototype.toISOString,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,formatter:o.formatters[o.default],indices:!1,serializeDate:function(e){return l.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,n,o,i,a,u,l,f,h,d,m,v,g){var y=t;if("function"==typeof l?y=l(n,y):y instanceof Date?y=d(y):"comma"===o&&s(y)&&(y=y.join(",")),null===y){if(i)return u&&!v?u(n,p.encoder,g):n;y=""}if("string"==typeof y||"number"==typeof y||"boolean"==typeof y||r.isBuffer(y))return u?[m(v?n:u(n,p.encoder,g))+"="+m(u(y,p.encoder,g))]:[m(n)+"="+m(String(y))];var b,_=[];if(void 0===y)return _;if(s(l))b=l;else{var w=Object.keys(y);b=f?w.sort(f):w}for(var x=0;x<b.length;++x){var E=b[x];a&&null===y[E]||(s(y)?c(_,e(y[E],"function"==typeof o?o(n,E):n,o,i,a,u,l,f,h,d,m,v,g)):c(_,e(y[E],n+(h?"."+E:"["+E+"]"),o,i,a,u,l,f,h,d,m,v,g)))}return _};e.exports=function(e,t){var n,r=e,u=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=o.default;if(void 0!==e.format){if(!i.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=o.formatters[n],a=p.filter;return("function"==typeof e.filter||s(e.filter))&&(a=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:a,formatter:r,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof u.filter?r=(0,u.filter)("",r):s(u.filter)&&(n=u.filter);var l,h=[];if("object"!=typeof r||null===r)return"";l=t&&t.arrayFormat in a?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var d=a[l];n||(n=Object.keys(r)),u.sort&&n.sort(u.sort);for(var m=0;m<n.length;++m){var v=n[m];u.skipNulls&&null===r[v]||c(h,f(r[v],v,d,u.strictNullHandling,u.skipNulls,u.encode?u.encoder:null,u.filter,u.sort,u.allowDots,u.serializeDate,u.formatter,u.encodeValuesOnly,u.charset))}var g=h.join(u.delimiter),y=!0===u.addQueryPrefix?"?":"";return u.charsetSentinel&&("iso-8859-1"===u.charset?y+="utf8=%26%2310003%3B&":y+="utf8=%E2%9C%93&"),g.length>0?y+g:""}},function(e,t,n){"use strict";var r=n(451),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},a=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},s=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),s=a?r.slice(0,a.index):r,u=[];if(s){if(!n.plainObjects&&o.call(Object.prototype,s)&&!n.allowPrototypes)return;u.push(s)}for(var c=0;null!==(a=i.exec(r))&&c<n.depth;){if(c+=1,!n.plainObjects&&o.call(Object.prototype,a[1].slice(1,-1))&&!n.allowPrototypes)return;u.push(a[1])}return a&&u.push("["+r.slice(a.index)+"]"),function(e,t,n){for(var r=t,o=e.length-1;o>=0;--o){var i,a=e[o];if("[]"===a&&n.parseArrays)i=[].concat(r);else{i=n.plainObjects?Object.create(null):{};var s="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,u=parseInt(s,10);n.parseArrays||""!==s?!isNaN(u)&&a!==s&&String(u)===s&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(i=[])[u]=r:i[s]=r:i={0:r}}r=i}return r}(u,t,n)}};e.exports=function(e,t){var n=function(e){if(!e)return i;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?i.charset:e.charset;return{allowDots:void 0===e.allowDots?i.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:i.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:i.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:i.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:i.comma,decoder:"function"==typeof e.decoder?e.decoder:i.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:i.delimiter,depth:"number"==typeof e.depth?e.depth:i.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:i.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:i.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:i.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:i.strictNullHandling}}(t);if(""===e||null==e)return n.plainObjects?Object.create(null):{};for(var u="string"==typeof e?function(e,t){var n,s={},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,c=t.parameterLimit===1/0?void 0:t.parameterLimit,l=u.split(t.delimiter,c),p=-1,f=t.charset;if(t.charsetSentinel)for(n=0;n<l.length;++n)0===l[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===l[n]?f="utf-8":"utf8=%26%2310003%3B"===l[n]&&(f="iso-8859-1"),p=n,n=l.length);for(n=0;n<l.length;++n)if(n!==p){var h,d,m=l[n],v=m.indexOf("]="),g=-1===v?m.indexOf("="):v+1;-1===g?(h=t.decoder(m,i.decoder,f),d=t.strictNullHandling?null:""):(h=t.decoder(m.slice(0,g),i.decoder,f),d=t.decoder(m.slice(g+1),i.decoder,f)),d&&t.interpretNumericEntities&&"iso-8859-1"===f&&(d=a(d)),d&&t.comma&&d.indexOf(",")>-1&&(d=d.split(",")),o.call(s,h)?s[h]=r.combine(s[h],d):s[h]=d}return s}(e,n):e,c=n.plainObjects?Object.create(null):{},l=Object.keys(u),p=0;p<l.length;++p){var f=l[p],h=s(f,u[f],n);c=r.merge(c,h,n)}return r.compact(c)}},function(e,t,n){"use strict";var r=t,o=n(61).Buffer;function i(e,t){try{return decodeURIComponent(e)}catch(n){return r.unescapeBuffer(e,t).toString()}}r.unescapeBuffer=function(e,t){for(var n,r,i,a=new o(e.length),s=0,u=0,c=0;u<=e.length;u++){var l=u<e.length?e.charCodeAt(u):NaN;switch(s){case 0:switch(l){case 37:n=0,r=0,s=1;break;case 43:t&&(l=32);default:a[c++]=l}break;case 1:if(i=l,l>=48&&l<=57)n=l-48;else if(l>=65&&l<=70)n=l-65+10;else{if(!(l>=97&&l<=102)){a[c++]=37,a[c++]=l,s=0;break}n=l-97+10}s=2;break;case 2:if(s=0,l>=48&&l<=57)r=l-48;else if(l>=65&&l<=70)r=l-65+10;else{if(!(l>=97&&l<=102)){a[c++]=37,a[c++]=i,a[c++]=l;break}r=l-97+10}a[c++]=16*n+r}}return a.slice(0,c-1)},r.unescape=i;for(var a=new Array(256),s=0;s<256;++s)a[s]="%"+((s<16?"0":"")+s.toString(16)).toUpperCase();r.escape=function(e){"string"!=typeof e&&(e+="");for(var t="",n=0,r=0;r<e.length;++r){var o=e.charCodeAt(r);if(!(33===o||45===o||46===o||95===o||126===o||o>=39&&o<=42||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122))if(r-n>0&&(t+=e.slice(n,r)),o<128)n=r+1,t+=a[o];else if(o<2048)n=r+1,t+=a[192|o>>6]+a[128|63&o];else if(o<55296||o>=57344)n=r+1,t+=a[224|o>>12]+a[128|o>>6&63]+a[128|63&o];else{var i;if(!(++r<e.length))throw new URIError("URI malformed");i=1023&e.charCodeAt(r),n=r+1,t+=a[240|(o=65536+((1023&o)<<10|i))>>18]+a[128|o>>12&63]+a[128|o>>6&63]+a[128|63&o]}}return 0===n?e:n<e.length?t+e.slice(n):t};var u=function(e){return"string"==typeof e?e:"number"==typeof e&&isFinite(e)?""+e:"boolean"==typeof e?e?"true":"false":""};function c(e,t){try{return t(e)}catch(t){return r.unescape(e,!0)}}r.stringify=r.encode=function(e,t,n,o){t=t||"&",n=n||"=";var i=r.escape;if(o&&"function"==typeof o.encodeURIComponent&&(i=o.encodeURIComponent),null!==e&&"object"==typeof e){for(var a=Object.keys(e),s=a.length,c=s-1,l="",p=0;p<s;++p){var f=a[p],h=e[f],d=i(u(f))+n;if(Array.isArray(h)){for(var m=h.length,v=m-1,g=0;g<m;++g)l+=d+i(u(h[g])),g<v&&(l+=t);m&&p<c&&(l+=t)}else l+=d+i(u(h)),p<c&&(l+=t)}return l}return""},r.parse=r.decode=function(e,t,n,o){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;"string"!=typeof t&&(t+="");var s=n.length,u=t.length,l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var p=1/0;l>0&&(p=l);var f=r.unescape;o&&"function"==typeof o.decodeURIComponent&&(f=o.decodeURIComponent);for(var h=f!==i,d=[],m=0,v=0,g=0,y="",b="",_=h,w=h,x=0,E=0;E<e.length;++E){var S=e.charCodeAt(E);if(S!==t.charCodeAt(v)){if(v=0,w||(37===S?x=1:x>0&&(S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102)?3==++x&&(w=!0):x=0),g<s){if(S===n.charCodeAt(g)){if(++g===s)m<(k=E-g+1)&&(y+=e.slice(m,k)),x=0,m=E+1;continue}g=0,_||(37===S?x=1:x>0&&(S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102)?3==++x&&(_=!0):x=0)}43===S&&(g<s?(E-m>0&&(y+=e.slice(m,E)),y+="%20",_=!0):(E-m>0&&(b+=e.slice(m,E)),b+="%20",w=!0),m=E+1)}else if(++v===u){var C,k=E-v+1;if(g<s?m<k&&(y+=e.slice(m,k)):m<k&&(b+=e.slice(m,k)),_&&(y=c(y,f)),w&&(b=c(b,f)),-1===d.indexOf(y))a[y]=b,d[d.length]=y;else(C=a[y])instanceof Array?C[C.length]=b:a[y]=[C,b];if(0==--p)break;_=w=h,x=0,y=b="",m=E+1,v=g=0}}p>0&&(m<e.length||g>0)&&(m<e.length&&(g<s?y+=e.slice(m):v<u&&(b+=e.slice(m))),_&&(y=c(y,f)),w&&(b=c(b,f)),-1===d.indexOf(y)?(a[y]=b,d[d.length]=y):(C=a[y])instanceof Array?C[C.length]=b:a[y]=[C,b]);return a}},function(e,t,n){"use strict";(function(t){
+var r=n(267),o=n(456),i=n(456);t.applyOperation=i.applyOperation,t.applyPatch=i.applyPatch,t.applyReducer=i.applyReducer,t.getValueByPointer=i.getValueByPointer,t.validate=i.validate,t.validator=i.validator;var a=n(267);t.JsonPatchError=a.PatchError,t.deepClone=a._deepClone,t.escapePathComponent=a.escapePathComponent,t.unescapePathComponent=a.unescapePathComponent;var s=new WeakMap,u=function(e){this.observers=new Map,this.obj=e},c=function(e,t){this.callback=e,this.observer=t};function l(e){var t=s.get(e.object);p(t.value,e.object,e.patches,""),e.patches.length&&o.applyPatch(t.value,e.patches);var n=e.patches;return n.length>0&&(e.patches=[],e.callback&&e.callback(n)),n}function p(e,t,n,o){if(t!==e){"function"==typeof t.toJSON&&(t=t.toJSON());for(var i=r._objectKeys(t),a=r._objectKeys(e),s=!1,u=a.length-1;u>=0;u--){var c=e[f=a[u]];if(!r.hasOwnProperty(t,f)||void 0===t[f]&&void 0!==c&&!1===Array.isArray(t))Array.isArray(e)===Array.isArray(t)?(n.push({op:"remove",path:o+"/"+r.escapePathComponent(f)}),s=!0):(n.push({op:"replace",path:o,value:t}),!0);else{var l=t[f];"object"==typeof c&&null!=c&&"object"==typeof l&&null!=l?p(c,l,n,o+"/"+r.escapePathComponent(f)):c!==l&&(!0,n.push({op:"replace",path:o+"/"+r.escapePathComponent(f),value:r._deepClone(l)}))}}if(s||i.length!=a.length)for(u=0;u<i.length;u++){var f=i[u];r.hasOwnProperty(e,f)||void 0===t[f]||n.push({op:"add",path:o+"/"+r.escapePathComponent(f),value:r._deepClone(t[f])})}}}t.unobserve=function(e,t){t.unobserve()},t.observe=function(e,t){var n,o=function(e){return s.get(e)}(e);if(o){var i=function(e,t){return e.observers.get(t)}(o,t);n=i&&i.observer}else o=new u(e),s.set(e,o);if(n)return n;if(n={},o.value=r._deepClone(e),t){n.callback=t,n.next=null;var a=function(){l(n)},p=function(){clearTimeout(n.next),n.next=setTimeout(a)};"undefined"!=typeof window&&(window.addEventListener?(window.addEventListener("mouseup",p),window.addEventListener("keyup",p),window.addEventListener("mousedown",p),window.addEventListener("keydown",p),window.addEventListener("change",p)):(document.documentElement.attachEvent("onmouseup",p),document.documentElement.attachEvent("onkeyup",p),document.documentElement.attachEvent("onmousedown",p),document.documentElement.attachEvent("onkeydown",p),document.documentElement.attachEvent("onchange",p)))}return n.patches=[],n.object=e,n.unobserve=function(){l(n),clearTimeout(n.next),function(e,t){e.observers.delete(t.callback)}(o,n),"undefined"!=typeof window&&(window.removeEventListener?(window.removeEventListener("mouseup",p),window.removeEventListener("keyup",p),window.removeEventListener("mousedown",p),window.removeEventListener("keydown",p)):(document.documentElement.detachEvent("onmouseup",p),document.documentElement.detachEvent("onkeyup",p),document.documentElement.detachEvent("onmousedown",p),document.documentElement.detachEvent("onkeydown",p)))},o.observers.set(t,new c(t,n)),n},t.generate=l,t.compare=function(e,t){var n=[];return p(e,t,n,""),n}},function(e,t,n){var r=Array.prototype.slice,o=n(941),i=n(942),a=e.exports=function(e,t,n){return n||(n={}),e===t||(e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:function(e,t,n){var c,l;if(s(e)||s(t))return!1;if(e.prototype!==t.prototype)return!1;if(i(e))return!!i(t)&&(e=r.call(e),t=r.call(t),a(e,t,n));if(u(e)){if(!u(t))return!1;if(e.length!==t.length)return!1;for(c=0;c<e.length;c++)if(e[c]!==t[c])return!1;return!0}try{var p=o(e),f=o(t)}catch(e){return!1}if(p.length!=f.length)return!1;for(p.sort(),f.sort(),c=p.length-1;c>=0;c--)if(p[c]!=f[c])return!1;for(c=p.length-1;c>=0;c--)if(l=p[c],!a(e[l],t[l],n))return!1;return typeof e==typeof t}(e,t,n))};function s(e){return null==e}function u(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},function(e,t,n){(function(t){!function(){"use strict";e.exports=function(e){return(e instanceof t?e:new t(e.toString(),"binary")).toString("base64")}}()}).call(this,n(64).Buffer)},function(e,t,n){var r=n(945),o=n(365),i=n(386),a=n(69);e.exports=function(e,t,n){return e=a(e),n=null==n?0:r(i(n),0,e.length),t=o(t),e.slice(n,n+t.length)==t}},function(e,t){e.exports=function(e,t,n){return e==e&&(void 0!==n&&(e=e<=n?e:n),void 0!==t&&(e=e>=t?e:t)),e}},function(e,t,n){"use strict";var r=n(947),o=n(948),i=n(458);e.exports={formats:i,parse:o,stringify:r}},function(e,t,n){"use strict";var r=n(457),o=n(458),i=Object.prototype.hasOwnProperty,a={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,u=Array.prototype.push,c=function(e,t){u.apply(e,s(t)?t:[t])},l=Date.prototype.toISOString,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:r.encode,encodeValuesOnly:!1,formatter:o.formatters[o.default],indices:!1,serializeDate:function(e){return l.call(e)},skipNulls:!1,strictNullHandling:!1},f=function e(t,n,o,i,a,u,l,f,h,d,m,v,g){var y=t;if("function"==typeof l?y=l(n,y):y instanceof Date?y=d(y):"comma"===o&&s(y)&&(y=y.join(",")),null===y){if(i)return u&&!v?u(n,p.encoder,g):n;y=""}if("string"==typeof y||"number"==typeof y||"boolean"==typeof y||r.isBuffer(y))return u?[m(v?n:u(n,p.encoder,g))+"="+m(u(y,p.encoder,g))]:[m(n)+"="+m(String(y))];var b,_=[];if(void 0===y)return _;if(s(l))b=l;else{var w=Object.keys(y);b=f?w.sort(f):w}for(var x=0;x<b.length;++x){var E=b[x];a&&null===y[E]||(s(y)?c(_,e(y[E],"function"==typeof o?o(n,E):n,o,i,a,u,l,f,h,d,m,v,g)):c(_,e(y[E],n+(h?"."+E:"["+E+"]"),o,i,a,u,l,f,h,d,m,v,g)))}return _};e.exports=function(e,t){var n,r=e,u=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var n=o.default;if(void 0!==e.format){if(!i.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");n=e.format}var r=o.formatters[n],a=p.filter;return("function"==typeof e.filter||s(e.filter))&&(a=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:a,formatter:r,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof u.filter?r=(0,u.filter)("",r):s(u.filter)&&(n=u.filter);var l,h=[];if("object"!=typeof r||null===r)return"";l=t&&t.arrayFormat in a?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var d=a[l];n||(n=Object.keys(r)),u.sort&&n.sort(u.sort);for(var m=0;m<n.length;++m){var v=n[m];u.skipNulls&&null===r[v]||c(h,f(r[v],v,d,u.strictNullHandling,u.skipNulls,u.encode?u.encoder:null,u.filter,u.sort,u.allowDots,u.serializeDate,u.formatter,u.encodeValuesOnly,u.charset))}var g=h.join(u.delimiter),y=!0===u.addQueryPrefix?"?":"";return u.charsetSentinel&&("iso-8859-1"===u.charset?y+="utf8=%26%2310003%3B&":y+="utf8=%E2%9C%93&"),g.length>0?y+g:""}},function(e,t,n){"use strict";var r=n(457),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:r.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},a=function(e){return e.replace(/&#(\d+);/g,function(e,t){return String.fromCharCode(parseInt(t,10))})},s=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,a=/(\[[^[\]]*])/.exec(r),s=a?r.slice(0,a.index):r,u=[];if(s){if(!n.plainObjects&&o.call(Object.prototype,s)&&!n.allowPrototypes)return;u.push(s)}for(var c=0;null!==(a=i.exec(r))&&c<n.depth;){if(c+=1,!n.plainObjects&&o.call(Object.prototype,a[1].slice(1,-1))&&!n.allowPrototypes)return;u.push(a[1])}return a&&u.push("["+r.slice(a.index)+"]"),function(e,t,n){for(var r=t,o=e.length-1;o>=0;--o){var i,a=e[o];if("[]"===a&&n.parseArrays)i=[].concat(r);else{i=n.plainObjects?Object.create(null):{};var s="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,u=parseInt(s,10);n.parseArrays||""!==s?!isNaN(u)&&a!==s&&String(u)===s&&u>=0&&n.parseArrays&&u<=n.arrayLimit?(i=[])[u]=r:i[s]=r:i={0:r}}r=i}return r}(u,t,n)}};e.exports=function(e,t){var n=function(e){if(!e)return i;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?i.charset:e.charset;return{allowDots:void 0===e.allowDots?i.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:i.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:i.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:i.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:i.comma,decoder:"function"==typeof e.decoder?e.decoder:i.decoder,delimiter:"string"==typeof e.delimiter||r.isRegExp(e.delimiter)?e.delimiter:i.delimiter,depth:"number"==typeof e.depth?e.depth:i.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:i.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:i.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:i.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:i.strictNullHandling}}(t);if(""===e||null==e)return n.plainObjects?Object.create(null):{};for(var u="string"==typeof e?function(e,t){var n,s={},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,c=t.parameterLimit===1/0?void 0:t.parameterLimit,l=u.split(t.delimiter,c),p=-1,f=t.charset;if(t.charsetSentinel)for(n=0;n<l.length;++n)0===l[n].indexOf("utf8=")&&("utf8=%E2%9C%93"===l[n]?f="utf-8":"utf8=%26%2310003%3B"===l[n]&&(f="iso-8859-1"),p=n,n=l.length);for(n=0;n<l.length;++n)if(n!==p){var h,d,m=l[n],v=m.indexOf("]="),g=-1===v?m.indexOf("="):v+1;-1===g?(h=t.decoder(m,i.decoder,f),d=t.strictNullHandling?null:""):(h=t.decoder(m.slice(0,g),i.decoder,f),d=t.decoder(m.slice(g+1),i.decoder,f)),d&&t.interpretNumericEntities&&"iso-8859-1"===f&&(d=a(d)),d&&t.comma&&d.indexOf(",")>-1&&(d=d.split(",")),o.call(s,h)?s[h]=r.combine(s[h],d):s[h]=d}return s}(e,n):e,c=n.plainObjects?Object.create(null):{},l=Object.keys(u),p=0;p<l.length;++p){var f=l[p],h=s(f,u[f],n);c=r.merge(c,h,n)}return r.compact(c)}},function(e,t,n){"use strict";var r=t,o=n(64).Buffer;function i(e,t){try{return decodeURIComponent(e)}catch(n){return r.unescapeBuffer(e,t).toString()}}r.unescapeBuffer=function(e,t){for(var n,r,i,a=new o(e.length),s=0,u=0,c=0;u<=e.length;u++){var l=u<e.length?e.charCodeAt(u):NaN;switch(s){case 0:switch(l){case 37:n=0,r=0,s=1;break;case 43:t&&(l=32);default:a[c++]=l}break;case 1:if(i=l,l>=48&&l<=57)n=l-48;else if(l>=65&&l<=70)n=l-65+10;else{if(!(l>=97&&l<=102)){a[c++]=37,a[c++]=l,s=0;break}n=l-97+10}s=2;break;case 2:if(s=0,l>=48&&l<=57)r=l-48;else if(l>=65&&l<=70)r=l-65+10;else{if(!(l>=97&&l<=102)){a[c++]=37,a[c++]=i,a[c++]=l;break}r=l-97+10}a[c++]=16*n+r}}return a.slice(0,c-1)},r.unescape=i;for(var a=new Array(256),s=0;s<256;++s)a[s]="%"+((s<16?"0":"")+s.toString(16)).toUpperCase();r.escape=function(e){"string"!=typeof e&&(e+="");for(var t="",n=0,r=0;r<e.length;++r){var o=e.charCodeAt(r);if(!(33===o||45===o||46===o||95===o||126===o||o>=39&&o<=42||o>=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122))if(r-n>0&&(t+=e.slice(n,r)),o<128)n=r+1,t+=a[o];else if(o<2048)n=r+1,t+=a[192|o>>6]+a[128|63&o];else if(o<55296||o>=57344)n=r+1,t+=a[224|o>>12]+a[128|o>>6&63]+a[128|63&o];else{var i;if(!(++r<e.length))throw new URIError("URI malformed");i=1023&e.charCodeAt(r),n=r+1,t+=a[240|(o=65536+((1023&o)<<10|i))>>18]+a[128|o>>12&63]+a[128|o>>6&63]+a[128|63&o]}}return 0===n?e:n<e.length?t+e.slice(n):t};var u=function(e){return"string"==typeof e?e:"number"==typeof e&&isFinite(e)?""+e:"boolean"==typeof e?e?"true":"false":""};function c(e,t){try{return t(e)}catch(t){return r.unescape(e,!0)}}r.stringify=r.encode=function(e,t,n,o){t=t||"&",n=n||"=";var i=r.escape;if(o&&"function"==typeof o.encodeURIComponent&&(i=o.encodeURIComponent),null!==e&&"object"==typeof e){for(var a=Object.keys(e),s=a.length,c=s-1,l="",p=0;p<s;++p){var f=a[p],h=e[f],d=i(u(f))+n;if(Array.isArray(h)){for(var m=h.length,v=m-1,g=0;g<m;++g)l+=d+i(u(h[g])),g<v&&(l+=t);m&&p<c&&(l+=t)}else l+=d+i(u(h)),p<c&&(l+=t)}return l}return""},r.parse=r.decode=function(e,t,n,o){t=t||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;"string"!=typeof t&&(t+="");var s=n.length,u=t.length,l=1e3;o&&"number"==typeof o.maxKeys&&(l=o.maxKeys);var p=1/0;l>0&&(p=l);var f=r.unescape;o&&"function"==typeof o.decodeURIComponent&&(f=o.decodeURIComponent);for(var h=f!==i,d=[],m=0,v=0,g=0,y="",b="",_=h,w=h,x=0,E=0;E<e.length;++E){var S=e.charCodeAt(E);if(S!==t.charCodeAt(v)){if(v=0,w||(37===S?x=1:x>0&&(S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102)?3==++x&&(w=!0):x=0),g<s){if(S===n.charCodeAt(g)){if(++g===s)m<(k=E-g+1)&&(y+=e.slice(m,k)),x=0,m=E+1;continue}g=0,_||(37===S?x=1:x>0&&(S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102)?3==++x&&(_=!0):x=0)}43===S&&(g<s?(E-m>0&&(y+=e.slice(m,E)),y+="%20",_=!0):(E-m>0&&(b+=e.slice(m,E)),b+="%20",w=!0),m=E+1)}else if(++v===u){var C,k=E-v+1;if(g<s?m<k&&(y+=e.slice(m,k)):m<k&&(b+=e.slice(m,k)),_&&(y=c(y,f)),w&&(b=c(b,f)),-1===d.indexOf(y))a[y]=b,d[d.length]=y;else(C=a[y])instanceof Array?C[C.length]=b:a[y]=[C,b];if(0==--p)break;_=w=h,x=0,y=b="",m=E+1,v=g=0}}p>0&&(m<e.length||g>0)&&(m<e.length&&(g<s?y+=e.slice(m):v<u&&(b+=e.slice(m))),_&&(y=c(y,f)),w&&(b=c(b,f)),-1===d.indexOf(y)?(a[y]=b,d[d.length]=y):(C=a[y])instanceof Array?C[C.length]=b:a[y]=[C,b]);return a}},function(e,t,n){"use strict";(function(t){
 /*!
  * @description Recursive object extending
  * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
 /*!
  * @description Recursive object extending
  * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
@@ -109,19 +109,19 @@ var r=n(259),o=n(450),i=n(450);t.applyOperation=i.applyOperation,t.applyPatch=i.
  * 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.
  */
  * 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.
  */
-function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=t.alloc?t.alloc(e.length):new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function o(e){var t=[];return e.forEach(function(e,i){"object"==typeof e&&null!==e?Array.isArray(e)?t[i]=o(e):n(e)?t[i]=r(e):t[i]=a({},e):t[i]=e}),t}function i(e,t){return"__proto__"===t?void 0:e[t]}var a=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,s=arguments[0],u=Array.prototype.slice.call(arguments,1);return u.forEach(function(u){"object"!=typeof u||null===u||Array.isArray(u)||Object.keys(u).forEach(function(c){return t=i(s,c),(e=i(u,c))===s?void 0:"object"!=typeof e||null===e?void(s[c]=e):Array.isArray(e)?void(s[c]=o(e)):n(e)?void(s[c]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(s[c]=a({},e)):void(s[c]=a(t,e))})}),s}}).call(this,n(61).Buffer)},function(e,t,n){e.exports=n(938)},function(e,t,n){n(160),n(99),n(939),n(943),n(944),e.exports=n(22).WeakMap},function(e,t,n){"use strict";var r,o=n(32),i=n(260)(0),a=n(212),s=n(132),u=n(351),c=n(942),l=n(41),p=n(141),f=n(141),h=!o.ActiveXObject&&"ActiveXObject"in o,d=s.getWeak,m=Object.isExtensible,v=c.ufstore,g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(l(e)){var t=d(e);return!0===t?v(p(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return c.def(p(this,"WeakMap"),e,t)}},b=e.exports=n(453)("WeakMap",g,y,c,!0,!0);f&&h&&(u((r=c.getConstructor(g,"WeakMap")).prototype,y),s.NEED=!0,i(["delete","has","get","set"],function(e){var t=b.prototype,n=t[e];a(t,e,function(t,o){if(l(t)&&!m(t)){this._f||(this._f=new r);var i=this._f[e](t,o);return"set"==e?this:i}return n.call(this,t,o)})}))},function(e,t,n){var r=n(941);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(41),o=n(215),i=n(34)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){"use strict";var r=n(179),o=n(132).getWeak,i=n(45),a=n(41),s=n(178),u=n(108),c=n(260),l=n(69),p=n(141),f=c(5),h=c(6),d=0,m=function(e){return e._l||(e._l=new v)},v=function(){this.a=[]},g=function(e,t){return f(e.a,function(e){return e[0]===t})};v.prototype={get:function(e){var t=g(this,e);if(t)return t[1]},has:function(e){return!!g(this,e)},set:function(e,t){var n=g(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var c=e(function(e,r){s(e,c,t,"_i"),e._t=t,e._i=d++,e._l=void 0,null!=r&&u(r,n,e[i],e)});return r(c.prototype,{delete:function(e){if(!a(e))return!1;var n=o(e);return!0===n?m(p(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!a(e))return!1;var n=o(e);return!0===n?m(p(this,t)).has(e):n&&l(n,this._i)}}),c},def:function(e,t,n){var r=o(i(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){n(454)("WeakMap")},function(e,t,n){n(455)("WeakMap")},function(e,t){var n={};!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return d.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function s(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function u(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function c(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(d.arrayBuffer&&d.blob&&v(e))this._bodyArrayBuffer=u(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!g(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=u(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},d.blob&&(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?i(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(s)}),this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function l(e,t){var n=(t=t||{}).body;if(e instanceof l){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=function(e){var t=e.toUpperCase();return y.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function f(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function h(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var d={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(d.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(e){return e&&DataView.prototype.isPrototypeOf(e)},g=ArrayBuffer.isView||function(e){return e&&m.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},d.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this,{body:this._bodyInit})},c.call(l.prototype),c.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];h.redirect=function(e,t){if(-1===b.indexOf(t))throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){var o=new l(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:f(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new h(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&d.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}(void 0!==n?n:this),e.exports=n},function(e,t){var n=e.exports=function(e){return new r(e)};function r(e){this.value=e}function o(e,t,n){var r=[],o=[],s=!0;return function e(p){var f=n?i(p):p,h={},d=!0,m={node:f,node_:p,path:[].concat(r),parent:o[o.length-1],parents:o,key:r.slice(-1)[0],isRoot:0===r.length,level:r.length,circular:null,update:function(e,t){m.isRoot||(m.parent.node[m.key]=e),m.node=e,t&&(d=!1)},delete:function(e){delete m.parent.node[m.key],e&&(d=!1)},remove:function(e){u(m.parent.node)?m.parent.node.splice(m.key,1):delete m.parent.node[m.key],e&&(d=!1)},keys:null,before:function(e){h.before=e},after:function(e){h.after=e},pre:function(e){h.pre=e},post:function(e){h.post=e},stop:function(){s=!1},block:function(){d=!1}};if(!s)return m;function v(){if("object"==typeof m.node&&null!==m.node){m.keys&&m.node_===m.node||(m.keys=a(m.node)),m.isLeaf=0==m.keys.length;for(var e=0;e<o.length;e++)if(o[e].node_===p){m.circular=o[e];break}}else m.isLeaf=!0,m.keys=null;m.notLeaf=!m.isLeaf,m.notRoot=!m.isRoot}v();var g=t.call(m,m.node);return void 0!==g&&m.update&&m.update(g),h.before&&h.before.call(m,m.node),d?("object"!=typeof m.node||null===m.node||m.circular||(o.push(m),v(),c(m.keys,function(t,o){r.push(t),h.pre&&h.pre.call(m,m.node[t],t);var i=e(m.node[t]);n&&l.call(m.node,t)&&(m.node[t]=i.node),i.isLast=o==m.keys.length-1,i.isFirst=0==o,h.post&&h.post.call(m,i),r.pop()}),o.pop()),h.after&&h.after.call(m,m.node),m):m}(e).node}function i(e){if("object"==typeof e&&null!==e){var t;if(u(e))t=[];else if("[object Date]"===s(e))t=new Date(e.getTime?e.getTime():e);else if(function(e){return"[object RegExp]"===s(e)}(e))t=new RegExp(e);else if(function(e){return"[object Error]"===s(e)}(e))t={message:e.message};else if(function(e){return"[object Boolean]"===s(e)}(e))t=new Boolean(e);else if(function(e){return"[object Number]"===s(e)}(e))t=new Number(e);else if(function(e){return"[object String]"===s(e)}(e))t=new String(e);else if(Object.create&&Object.getPrototypeOf)t=Object.create(Object.getPrototypeOf(e));else if(e.constructor===Object)t={};else{var n=e.constructor&&e.constructor.prototype||e.__proto__||{},r=function(){};r.prototype=n,t=new r}return c(a(e),function(n){t[n]=e[n]}),t}return e}r.prototype.get=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!l.call(t,r)){t=void 0;break}t=t[r]}return t},r.prototype.has=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!l.call(t,r))return!1;t=t[r]}return!0},r.prototype.set=function(e,t){for(var n=this.value,r=0;r<e.length-1;r++){var o=e[r];l.call(n,o)||(n[o]={}),n=n[o]}return n[e[r]]=t,t},r.prototype.map=function(e){return o(this.value,e,!0)},r.prototype.forEach=function(e){return this.value=o(this.value,e,!1),this.value},r.prototype.reduce=function(e,t){var n=1===arguments.length,r=n?this.value:t;return this.forEach(function(t){this.isRoot&&n||(r=e.call(this,r,t))}),r},r.prototype.paths=function(){var e=[];return this.forEach(function(t){e.push(this.path)}),e},r.prototype.nodes=function(){var e=[];return this.forEach(function(t){e.push(this.node)}),e},r.prototype.clone=function(){var e=[],t=[];return function n(r){for(var o=0;o<e.length;o++)if(e[o]===r)return t[o];if("object"==typeof r&&null!==r){var s=i(r);return e.push(r),t.push(s),c(a(r),function(e){s[e]=n(r[e])}),e.pop(),t.pop(),s}return r}(this.value)};var a=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};function s(e){return Object.prototype.toString.call(e)}var u=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},c=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n<e.length;n++)t(e[n],n,e)};c(a(r.prototype),function(e){n[e]=function(t){var n=[].slice.call(arguments,1),o=new r(t);return o[e].apply(o,n)}});var l=Object.hasOwnProperty||function(e,t){return t in e}},function(e,t,n){var r=n(948),o=n(447)(function(e,t){return null==e?{}:r(e,t)});e.exports=o},function(e,t,n){var r=n(949),o=n(380);e.exports=function(e,t){return r(e,t,function(t,n){return o(e,n)})}},function(e,t,n){var r=n(173),o=n(410),i=n(104);e.exports=function(e,t,n){for(var a=-1,s=t.length,u={};++a<s;){var c=t[a],l=r(e,c);n(l,c)&&o(u,i(c,e),l)}return u}},function(e,t,n){"use strict";
+function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}function r(e){if(e instanceof t){var n=t.alloc?t.alloc(e.length):new t(e.length);return e.copy(n),n}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e);throw new Error("Unexpected situation")}function o(e){var t=[];return e.forEach(function(e,i){"object"==typeof e&&null!==e?Array.isArray(e)?t[i]=o(e):n(e)?t[i]=r(e):t[i]=a({},e):t[i]=e}),t}function i(e,t){return"__proto__"===t?void 0:e[t]}var a=e.exports=function(){if(arguments.length<1||"object"!=typeof arguments[0])return!1;if(arguments.length<2)return arguments[0];var e,t,s=arguments[0],u=Array.prototype.slice.call(arguments,1);return u.forEach(function(u){"object"!=typeof u||null===u||Array.isArray(u)||Object.keys(u).forEach(function(c){return t=i(s,c),(e=i(u,c))===s?void 0:"object"!=typeof e||null===e?void(s[c]=e):Array.isArray(e)?void(s[c]=o(e)):n(e)?void(s[c]=r(e)):"object"!=typeof t||null===t||Array.isArray(t)?void(s[c]=a({},e)):void(s[c]=a(t,e))})}),s}}).call(this,n(64).Buffer)},function(e,t,n){e.exports=n(952)},function(e,t,n){n(164),n(103),n(953),n(957),n(958),e.exports=n(22).WeakMap},function(e,t,n){"use strict";var r,o=n(32),i=n(268)(0),a=n(220),s=n(135),u=n(356),c=n(956),l=n(43),p=n(144),f=n(144),h=!o.ActiveXObject&&"ActiveXObject"in o,d=s.getWeak,m=Object.isExtensible,v=c.ufstore,g=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},y={get:function(e){if(l(e)){var t=d(e);return!0===t?v(p(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return c.def(p(this,"WeakMap"),e,t)}},b=e.exports=n(459)("WeakMap",g,y,c,!0,!0);f&&h&&(u((r=c.getConstructor(g,"WeakMap")).prototype,y),s.NEED=!0,i(["delete","has","get","set"],function(e){var t=b.prototype,n=t[e];a(t,e,function(t,o){if(l(t)&&!m(t)){this._f||(this._f=new r);var i=this._f[e](t,o);return"set"==e?this:i}return n.call(this,t,o)})}))},function(e,t,n){var r=n(955);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(43),o=n(223),i=n(34)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){"use strict";var r=n(182),o=n(135).getWeak,i=n(46),a=n(43),s=n(181),u=n(112),c=n(268),l=n(75),p=n(144),f=c(5),h=c(6),d=0,m=function(e){return e._l||(e._l=new v)},v=function(){this.a=[]},g=function(e,t){return f(e.a,function(e){return e[0]===t})};v.prototype={get:function(e){var t=g(this,e);if(t)return t[1]},has:function(e){return!!g(this,e)},set:function(e,t){var n=g(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var c=e(function(e,r){s(e,c,t,"_i"),e._t=t,e._i=d++,e._l=void 0,null!=r&&u(r,n,e[i],e)});return r(c.prototype,{delete:function(e){if(!a(e))return!1;var n=o(e);return!0===n?m(p(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!a(e))return!1;var n=o(e);return!0===n?m(p(this,t)).has(e):n&&l(n,this._i)}}),c},def:function(e,t,n){var r=o(i(t),!0);return!0===r?m(e).set(t,n):r[e._i]=n,e},ufstore:m}},function(e,t,n){n(460)("WeakMap")},function(e,t,n){n(461)("WeakMap")},function(e,t){var n={};!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return d.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function s(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function u(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function c(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(d.arrayBuffer&&d.blob&&v(e))this._bodyArrayBuffer=u(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!g(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=u(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},d.blob&&(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?i(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(s)}),this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function l(e,t){var n=(t=t||{}).body;if(e instanceof l){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=function(e){var t=e.toUpperCase();return y.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function f(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function h(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var d={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(d.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(e){return e&&DataView.prototype.isPrototypeOf(e)},g=ArrayBuffer.isView||function(e){return e&&m.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},d.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this,{body:this._bodyInit})},c.call(l.prototype),c.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];h.redirect=function(e,t){if(-1===b.indexOf(t))throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){var o=new l(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:f(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new h(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&d.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}(void 0!==n?n:this),e.exports=n},function(e,t){var n=e.exports=function(e){return new r(e)};function r(e){this.value=e}function o(e,t,n){var r=[],o=[],s=!0;return function e(p){var f=n?i(p):p,h={},d=!0,m={node:f,node_:p,path:[].concat(r),parent:o[o.length-1],parents:o,key:r.slice(-1)[0],isRoot:0===r.length,level:r.length,circular:null,update:function(e,t){m.isRoot||(m.parent.node[m.key]=e),m.node=e,t&&(d=!1)},delete:function(e){delete m.parent.node[m.key],e&&(d=!1)},remove:function(e){u(m.parent.node)?m.parent.node.splice(m.key,1):delete m.parent.node[m.key],e&&(d=!1)},keys:null,before:function(e){h.before=e},after:function(e){h.after=e},pre:function(e){h.pre=e},post:function(e){h.post=e},stop:function(){s=!1},block:function(){d=!1}};if(!s)return m;function v(){if("object"==typeof m.node&&null!==m.node){m.keys&&m.node_===m.node||(m.keys=a(m.node)),m.isLeaf=0==m.keys.length;for(var e=0;e<o.length;e++)if(o[e].node_===p){m.circular=o[e];break}}else m.isLeaf=!0,m.keys=null;m.notLeaf=!m.isLeaf,m.notRoot=!m.isRoot}v();var g=t.call(m,m.node);return void 0!==g&&m.update&&m.update(g),h.before&&h.before.call(m,m.node),d?("object"!=typeof m.node||null===m.node||m.circular||(o.push(m),v(),c(m.keys,function(t,o){r.push(t),h.pre&&h.pre.call(m,m.node[t],t);var i=e(m.node[t]);n&&l.call(m.node,t)&&(m.node[t]=i.node),i.isLast=o==m.keys.length-1,i.isFirst=0==o,h.post&&h.post.call(m,i),r.pop()}),o.pop()),h.after&&h.after.call(m,m.node),m):m}(e).node}function i(e){if("object"==typeof e&&null!==e){var t;if(u(e))t=[];else if("[object Date]"===s(e))t=new Date(e.getTime?e.getTime():e);else if(function(e){return"[object RegExp]"===s(e)}(e))t=new RegExp(e);else if(function(e){return"[object Error]"===s(e)}(e))t={message:e.message};else if(function(e){return"[object Boolean]"===s(e)}(e))t=new Boolean(e);else if(function(e){return"[object Number]"===s(e)}(e))t=new Number(e);else if(function(e){return"[object String]"===s(e)}(e))t=new String(e);else if(Object.create&&Object.getPrototypeOf)t=Object.create(Object.getPrototypeOf(e));else if(e.constructor===Object)t={};else{var n=e.constructor&&e.constructor.prototype||e.__proto__||{},r=function(){};r.prototype=n,t=new r}return c(a(e),function(n){t[n]=e[n]}),t}return e}r.prototype.get=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!l.call(t,r)){t=void 0;break}t=t[r]}return t},r.prototype.has=function(e){for(var t=this.value,n=0;n<e.length;n++){var r=e[n];if(!t||!l.call(t,r))return!1;t=t[r]}return!0},r.prototype.set=function(e,t){for(var n=this.value,r=0;r<e.length-1;r++){var o=e[r];l.call(n,o)||(n[o]={}),n=n[o]}return n[e[r]]=t,t},r.prototype.map=function(e){return o(this.value,e,!0)},r.prototype.forEach=function(e){return this.value=o(this.value,e,!1),this.value},r.prototype.reduce=function(e,t){var n=1===arguments.length,r=n?this.value:t;return this.forEach(function(t){this.isRoot&&n||(r=e.call(this,r,t))}),r},r.prototype.paths=function(){var e=[];return this.forEach(function(t){e.push(this.path)}),e},r.prototype.nodes=function(){var e=[];return this.forEach(function(t){e.push(this.node)}),e},r.prototype.clone=function(){var e=[],t=[];return function n(r){for(var o=0;o<e.length;o++)if(e[o]===r)return t[o];if("object"==typeof r&&null!==r){var s=i(r);return e.push(r),t.push(s),c(a(r),function(e){s[e]=n(r[e])}),e.pop(),t.pop(),s}return r}(this.value)};var a=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};function s(e){return Object.prototype.toString.call(e)}var u=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},c=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n<e.length;n++)t(e[n],n,e)};c(a(r.prototype),function(e){n[e]=function(t){var n=[].slice.call(arguments,1),o=new r(t);return o[e].apply(o,n)}});var l=Object.hasOwnProperty||function(e,t){return t in e}},function(e,t,n){var r=n(962),o=n(453)(function(e,t){return null==e?{}:r(e,t)});e.exports=o},function(e,t,n){var r=n(963),o=n(385);e.exports=function(e,t){return r(e,t,function(t,n){return o(e,n)})}},function(e,t,n){var r=n(177),o=n(417),i=n(108);e.exports=function(e,t,n){for(var a=-1,s=t.length,u={};++a<s;){var c=t[a],l=r(e,c);n(l,c)&&o(u,i(c,e),l)}return u}},function(e,t,n){"use strict";
 /*!
  * cookie
  * Copyright(c) 2012-2014 Roman Shtylman
  * Copyright(c) 2015 Douglas Christopher Wilson
  * MIT Licensed
 /*!
  * cookie
  * Copyright(c) 2012-2014 Roman Shtylman
  * Copyright(c) 2015 Douglas Christopher Wilson
  * MIT Licensed
- */t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},o=t||{},a=e.split(i),u=o.decode||r,c=0;c<a.length;c++){var l=a[c],p=l.indexOf("=");if(!(p<0)){var f=l.substr(0,p).trim(),h=l.substr(++p,l.length).trim();'"'==h[0]&&(h=h.slice(1,-1)),null==n[f]&&(n[f]=s(h,u))}}return n},t.serialize=function(e,t,n){var r=n||{},i=r.encode||o;if("function"!=typeof i)throw new TypeError("option encode is invalid");if(!a.test(e))throw new TypeError("argument name is invalid");var s=i(t);if(s&&!a.test(s))throw new TypeError("argument val is invalid");var u=e+"="+s;if(null!=r.maxAge){var c=r.maxAge-0;if(isNaN(c))throw new Error("maxAge should be a Number");u+="; Max-Age="+Math.floor(c)}if(r.domain){if(!a.test(r.domain))throw new TypeError("option domain is invalid");u+="; Domain="+r.domain}if(r.path){if(!a.test(r.path))throw new TypeError("option path is invalid");u+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");u+="; Expires="+r.expires.toUTCString()}r.httpOnly&&(u+="; HttpOnly");r.secure&&(u+="; Secure");if(r.sameSite){var l="string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:u+="; SameSite=Strict";break;case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;default:throw new TypeError("option sameSite is invalid")}}return u};var r=decodeURIComponent,o=encodeURIComponent,i=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function s(e,t){try{return t(e)}catch(t){return e}}},function(e,t){e.exports=function(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r>=55296&&r<=56319&&n+1<e.length){var o=e.charCodeAt(n+1);if(o>=56320&&o<=57343){var i=1024*(r-55296)+o-56320+65536;t.push(240+Math.floor(i/64/64/64),128+Math.floor(i/64/64)%64,128+Math.floor(i/64)%64,128+i%64),n+=1;continue}}r>=2048?t.push(224+Math.floor(r/64/64),128+Math.floor(r/64)%64,128+r%64):r>=128?t.push(192+Math.floor(r/64),128+r%64):t.push(r)}return t}},function(e,t,n){!function(){var e;function n(e,t){function n(e,t,n){if(!r(e))return n;var o=0,i=0;do{var a=t.exec(e);if(null===a)break;if(!(i<n))break;o+=a[0].length,i++}while(null!==a);return o>=e.length?-1:o}function r(e){return a.test(e)}function o(e,n){null==e&&(e=["[^]"]),null==n&&(n="g");var r=[];return t.forEach(function(e){r.push(e.source)}),r.push(i.source),r=r.concat(e),new RegExp(r.join("|"),n)}e.findCharIndex=function(e,t){if(t>=e.length)return-1;if(!r(e))return t;for(var n=o(),i=0;null!==n.exec(e)&&!(n.lastIndex>t);)i++;return i},e.findByteIndex=function(e,t){return t>=this.length(e)?-1:n(e,o(),t)},e.charAt=function(e,t){var n=this.findByteIndex(e,t);if(n<0||n>=e.length)return"";var r=e.slice(n,n+8),o=a.exec(r);return null===o?r[0]:o[0]},e.charCodeAt=function(e,t){var r=function(e,t){return n(e,new RegExp(i.source,"g"),t)}(e,t);if(r<0)return NaN;var o=e.charCodeAt(r);return 55296<=o&&o<=56319?1024*(o-55296)+(e.charCodeAt(r+1)-56320)+65536:o},e.fromCharCode=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)},e.indexOf=function(e,t,n){null==n&&(n=0);var r=this.findByteIndex(e,n),o=e.indexOf(t,r);return o<0?-1:this.findCharIndex(e,o)},e.lastIndexOf=function(e,t,n){var r;if(null==n)r=e.lastIndexOf(t);else{var o=this.findByteIndex(e,n);r=e.lastIndexOf(t,o)}return r<0?-1:this.findCharIndex(e,r)},e.slice=function(e,t,n){var r,o=this.findByteIndex(e,t);return o<0&&(o=e.length),null==n?r=e.length:(r=this.findByteIndex(e,n))<0&&(r=e.length),e.slice(o,r)},e.substr=function(e,t,n){return t<0&&(t=this.length(e)+t),null==n?this.slice(e,t):this.slice(e,t,t+n)},e.substring=e.slice,e.length=function(e){return this.findCharIndex(e,e.length-1)+1},e.stringToCodePoints=function(e){for(var t=[],n=0;n<e.length&&(codePoint=this.charCodeAt(e,n),codePoint);n++)t.push(codePoint);return t},e.codePointsToString=function(e){for(var t=[],n=0;n<e.length;n++)t.push(this.fromCharCode(e[n]));return t.join("")},e.stringToBytes=function(e){for(var t=[],n=0;n<e.length;n++){for(var r=e.charCodeAt(n),o=[];r>0;)o.push(255&r),r>>=8;1==o.length&&o.push(0),t=t.concat(o.reverse())}return t},e.bytesToString=function(e){for(var t=[],n=0;n<e.length;n+=2){var r=e[n]<<8|e[n+1];t.push(String.fromCharCode(r))}return t.join("")},e.stringToCharArray=function(e){var t=[],n=o();do{var r=n.exec(e);if(null===r)break;t.push(r[0])}while(null!==r);return t};var i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,a=o([],"")}null!==t?e=t:"undefined"!=typeof window&&null!==window&&(void 0!==window.UtfString&&null!==window.UtfString||(window.UtfString={}),e=window.UtfString);e.visual={},n(e,[]),n(e.visual,[/\uD83C[\uDDE6-\uDDFF]\uD83C[\uDDE6-\uDDFF]/])}()},function(e,t,n){var r=n(443),o=1,i=4;e.exports=function(e){return r(e,o|i)}},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return d.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function s(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function u(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function c(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(d.arrayBuffer&&d.blob&&v(e))this._bodyArrayBuffer=u(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!g(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=u(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},d.blob&&(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?i(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(s)}),this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function l(e,t){var n=(t=t||{}).body;if(e instanceof l){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=function(e){var t=e.toUpperCase();return y.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function f(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function h(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var d={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(d.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(e){return e&&DataView.prototype.isPrototypeOf(e)},g=ArrayBuffer.isView||function(e){return e&&m.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},d.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this,{body:this._bodyInit})},c.call(l.prototype),c.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];h.redirect=function(e,t){if(-1===b.indexOf(t))throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){var o=new l(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:f(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new h(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&d.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t){e.exports=FormData},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t,n){"use strict";var r=n(358);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},function(e,t,n){n(160),n(97),n(99),n(959),n(961),n(964),n(965),e.exports=n(22).Map},function(e,t,n){"use strict";var r=n(960),o=n(141);e.exports=n(453)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(o(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(o(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(47).f,o=n(156),i=n(179),a=n(60),s=n(178),u=n(108),c=n(211),l=n(348),p=n(407),f=n(46),h=n(132).fastKey,d=n(141),m=f?"_s":"size",v=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){s(e,l,t,"_i"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&u(r,n,e[c],e)});return i(l.prototype,{clear:function(){for(var e=d(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=d(this,t),r=v(n,e);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[m]--}return!!r},forEach:function(e){d(this,t);for(var n,r=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!v(d(this,t),e)}}),f&&r(l.prototype,"size",{get:function(){return d(this,t)[m]}}),l},def:function(e,t,n){var r,o,i=v(e,t);return i?i.v=n:(e._l=i={i:o=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[m]++,"F"!==o&&(e._i[o]=i)),e},getEntry:v,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=d(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),p(t)}}},function(e,t,n){var r=n(30);r(r.P+r.R,"Map",{toJSON:n(962)("Map")})},function(e,t,n){var r=n(162),o=n(963);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return o(this)}}},function(e,t,n){var r=n(108);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){n(454)("Map")},function(e,t,n){n(455)("Map")},function(e,t,n){"use strict";
+ */t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},o=t||{},a=e.split(i),u=o.decode||r,c=0;c<a.length;c++){var l=a[c],p=l.indexOf("=");if(!(p<0)){var f=l.substr(0,p).trim(),h=l.substr(++p,l.length).trim();'"'==h[0]&&(h=h.slice(1,-1)),null==n[f]&&(n[f]=s(h,u))}}return n},t.serialize=function(e,t,n){var r=n||{},i=r.encode||o;if("function"!=typeof i)throw new TypeError("option encode is invalid");if(!a.test(e))throw new TypeError("argument name is invalid");var s=i(t);if(s&&!a.test(s))throw new TypeError("argument val is invalid");var u=e+"="+s;if(null!=r.maxAge){var c=r.maxAge-0;if(isNaN(c))throw new Error("maxAge should be a Number");u+="; Max-Age="+Math.floor(c)}if(r.domain){if(!a.test(r.domain))throw new TypeError("option domain is invalid");u+="; Domain="+r.domain}if(r.path){if(!a.test(r.path))throw new TypeError("option path is invalid");u+="; Path="+r.path}if(r.expires){if("function"!=typeof r.expires.toUTCString)throw new TypeError("option expires is invalid");u+="; Expires="+r.expires.toUTCString()}r.httpOnly&&(u+="; HttpOnly");r.secure&&(u+="; Secure");if(r.sameSite){switch("string"==typeof r.sameSite?r.sameSite.toLowerCase():r.sameSite){case!0:u+="; SameSite=Strict";break;case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;default:throw new TypeError("option sameSite is invalid")}}return u};var r=decodeURIComponent,o=encodeURIComponent,i=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function s(e,t){try{return t(e)}catch(t){return e}}},function(e,t){e.exports=function(e){for(var t=[],n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r>=55296&&r<=56319&&n+1<e.length){var o=e.charCodeAt(n+1);if(o>=56320&&o<=57343){var i=1024*(r-55296)+o-56320+65536;t.push(240+Math.floor(i/64/64/64),128+Math.floor(i/64/64)%64,128+Math.floor(i/64)%64,128+i%64),n+=1;continue}}r>=2048?t.push(224+Math.floor(r/64/64),128+Math.floor(r/64)%64,128+r%64):r>=128?t.push(192+Math.floor(r/64),128+r%64):t.push(r)}return t}},function(e,t,n){!function(){var e;function n(e,t){function n(e,t,n){if(!r(e))return n;for(var o=0,i=0;;){var a,s=t.exec(e);for(a=s?s.index:e.length;i<n;){if(o==a){i<n&&(i++,s?o+=s[0].length:o++);break}o++,i++}if(i==n)break;if(o>=e.length||!s)return-1}return o}function r(e){return a.test(e)}function o(e,n){null==e&&(e=["[^]"]),null==n&&(n="g");var r=[];return t.forEach(function(e){r.push(e.source)}),r.push(i.source),r=r.concat(e),new RegExp(r.join("|"),n)}e.findCharIndex=function(e,t){if(t>=e.length)return-1;if(!r(e))return t;for(var n=o(),i=0;null!==n.exec(e)&&!(n.lastIndex>t);)i++;return i},e.findByteIndex=function(e,t){return t>=this.length(e)?-1:n(e,o(),t)},e.charAt=function(e,t){var n=this.findByteIndex(e,t);if(n<0||n>=e.length)return"";var r=e.slice(n,n+8),o=a.exec(r);return null===o?r[0]:o[0]},e.charCodeAt=function(e,t){var r=function(e,t){return n(e,new RegExp(i.source,"g"),t)}(e,t);if(r<0)return NaN;var o=e.charCodeAt(r);return 55296<=o&&o<=56319?1024*(o-55296)+(e.charCodeAt(r+1)-56320)+65536:o},e.fromCharCode=function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)},e.indexOf=function(e,t,n){null==n&&(n=0);var r=this.findByteIndex(e,n),o=e.indexOf(t,r);return o<0?-1:this.findCharIndex(e,o)},e.lastIndexOf=function(e,t,n){var r;if(null==n)r=e.lastIndexOf(t);else{var o=this.findByteIndex(e,n);r=e.lastIndexOf(t,o)}return r<0?-1:this.findCharIndex(e,r)},e.slice=function(e,t,n){var r,o=this.findByteIndex(e,t);return o<0&&(o=e.length),null==n?r=e.length:(r=this.findByteIndex(e,n))<0&&(r=e.length),e.slice(o,r)},e.substr=function(e,t,n){return t<0&&(t=this.length(e)+t),null==n?this.slice(e,t):this.slice(e,t,t+n)},e.substring=e.slice,e.length=function(e){return this.findCharIndex(e,e.length-1)+1},e.stringToCodePoints=function(e){for(var t=[],n=0;n<e.length&&(codePoint=this.charCodeAt(e,n),codePoint);n++)t.push(codePoint);return t},e.codePointsToString=function(e){for(var t=[],n=0;n<e.length;n++)t.push(this.fromCharCode(e[n]));return t.join("")},e.stringToBytes=function(e){for(var t=[],n=0;n<e.length;n++){for(var r=e.charCodeAt(n),o=[];r>0;)o.push(255&r),r>>=8;1==o.length&&o.push(0),t=t.concat(o.reverse())}return t},e.bytesToString=function(e){for(var t=[],n=0;n<e.length;n+=2){var r=e[n]<<8|e[n+1];t.push(String.fromCharCode(r))}return t.join("")},e.stringToCharArray=function(e){var t=[],n=o();do{var r=n.exec(e);if(null===r)break;t.push(r[0])}while(null!==r);return t};var i=/[\uD800-\uDBFF][\uDC00-\uDFFF]/,a=o([],"")}null!==t?e=t:"undefined"!=typeof window&&null!==window&&(void 0!==window.UtfString&&null!==window.UtfString||(window.UtfString={}),e=window.UtfString);e.visual={},n(e,[]),n(e.visual,[/\uD83C[\uDDE6-\uDDFF]\uD83C[\uDDE6-\uDDFF]/])}()},function(e,t,n){var r=n(449),o=1,i=4;e.exports=function(e){return r(e,o|i)}},function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function n(e){return"string"!=typeof e&&(e=String(e)),e}function r(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return d.iterable&&(t[Symbol.iterator]=function(){return t}),t}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function i(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function a(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function s(e){var t=new FileReader,n=a(t);return t.readAsArrayBuffer(e),n}function u(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function c(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,e)if("string"==typeof e)this._bodyText=e;else if(d.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(d.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e))this._bodyText=e.toString();else if(d.arrayBuffer&&d.blob&&v(e))this._bodyArrayBuffer=u(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer]);else{if(!d.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e)&&!g(e))throw new Error("unsupported BodyInit type");this._bodyArrayBuffer=u(e)}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):d.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},d.blob&&(this.blob=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?i(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(s)}),this.text=function(){var e=i(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,n=a(t);return t.readAsText(e),n}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),n=new Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},d.formData&&(this.formData=function(){return this.text().then(p)}),this.json=function(){return this.text().then(JSON.parse)},this}function l(e,t){var n=(t=t||{}).body;if(e instanceof l){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=function(e){var t=e.toUpperCase();return y.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function p(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function f(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function h(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var d={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(d.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],v=function(e){return e&&DataView.prototype.isPrototypeOf(e)},g=ArrayBuffer.isView||function(e){return e&&m.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},d.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var y=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];l.prototype.clone=function(){return new l(this,{body:this._bodyInit})},c.call(l.prototype),c.call(h.prototype),h.prototype.clone=function(){return new h(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},h.error=function(){var e=new h(null,{status:0,statusText:""});return e.type="error",e};var b=[301,302,303,307,308];h.redirect=function(e,t){if(-1===b.indexOf(t))throw new RangeError("Invalid status code");return new h(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=l,e.Response=h,e.fetch=function(e,t){return new Promise(function(n,r){var o=new l(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:f(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new h(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&d.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},function(e,t){e.exports=FormData},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t,n){n(164),n(101),n(103),n(972),n(974),n(977),n(978),e.exports=n(22).Map},function(e,t,n){"use strict";var r=n(973),o=n(144);e.exports=n(459)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(o(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(o(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(49).f,o=n(160),i=n(182),a=n(63),s=n(181),u=n(112),c=n(219),l=n(353),p=n(414),f=n(50),h=n(135).fastKey,d=n(144),m=f?"_s":"size",v=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,c){var l=e(function(e,r){s(e,l,t,"_i"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&u(r,n,e[c],e)});return i(l.prototype,{clear:function(){for(var e=d(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=d(this,t),r=v(n,e);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[m]--}return!!r},forEach:function(e){d(this,t);for(var n,r=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!v(d(this,t),e)}}),f&&r(l.prototype,"size",{get:function(){return d(this,t)[m]}}),l},def:function(e,t,n){var r,o,i=v(e,t);return i?i.v=n:(e._l=i={i:o=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[m]++,"F"!==o&&(e._i[o]=i)),e},getEntry:v,setStrong:function(e,t,n){c(e,t,function(e,n){this._t=d(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),p(t)}}},function(e,t,n){var r=n(30);r(r.P+r.R,"Map",{toJSON:n(975)("Map")})},function(e,t,n){var r=n(166),o=n(976);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return o(this)}}},function(e,t,n){var r=n(112);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){n(460)("Map")},function(e,t,n){n(461)("Map")},function(e,t,n){"use strict";
 /*!
  * repeat-string <https://github.com/jonschlinkert/repeat-string>
  *
  * Copyright (c) 2014-2015, Jon Schlinkert.
  * Licensed under the MIT License.
 /*!
  * repeat-string <https://github.com/jonschlinkert/repeat-string>
  *
  * Copyright (c) 2014-2015, Jon Schlinkert.
  * Licensed under the MIT License.
- */var r,o="";e.exports=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var n=e.length*t;if(r!==e||void 0===r)r=e,o="";else if(o.length>=n)return o.substr(0,n);for(;n>o.length&&t>1;)1&t&&(o+=e),t>>=1,e+=e;return o=(o+=e).substr(0,n)}},function(e,t,n){"use strict";var r=n(37).assign,o=n(968),i=n(970),a=n(981),s=n(996),u=n(187),c={default:n(1015),full:n(1016),commonmark:n(1017)};function l(e,t,n){this.src=t,this.env=n,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function p(e,t){"string"!=typeof e&&(t=e,e="default"),this.inline=new s,this.block=new a,this.core=new i,this.renderer=new o,this.ruler=new u,this.options={},this.configure(c[e]),this.set(t||{})}p.prototype.set=function(e){r(this.options,e)},p.prototype.configure=function(e){var t=this;if(!e)throw new Error("Wrong `remarkable` preset, check name/content");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enable(e.components[n].rules,!0)})},p.prototype.use=function(e,t){return e(this,t),this},p.prototype.parse=function(e,t){var n=new l(this,e,t);return this.core.process(n),n.tokens},p.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},p.prototype.parseInline=function(e,t){var n=new l(this,e,t);return n.inlineMode=!0,this.core.process(n),n.tokens},p.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=p,e.exports.utils=n(37)},function(e,t,n){"use strict";var r=n(37),o=n(969);function i(){this.rules=r.assign({},o),this.getBreak=o.getBreak}e.exports=i,i.prototype.renderInline=function(e,t,n){for(var r=this.rules,o=e.length,i=0,a="";o--;)a+=r[e[i].type](e,i++,t,n,this);return a},i.prototype.render=function(e,t,n){for(var r=this.rules,o=e.length,i=-1,a="";++i<o;)"inline"===e[i].type?a+=this.renderInline(e[i].children,t,n):a+=r[e[i].type](e,i,t,n,this);return a}},function(e,t,n){"use strict";var r=n(37).has,o=n(37).unescapeMd,i=n(37).replaceEntities,a=n(37).escapeHtml,s={};s.blockquote_open=function(){return"<blockquote>\n"},s.blockquote_close=function(e,t){return"</blockquote>"+u(e,t)},s.code=function(e,t){return e[t].block?"<pre><code>"+a(e[t].content)+"</code></pre>"+u(e,t):"<code>"+a(e[t].content)+"</code>"},s.fence=function(e,t,n,s,c){var l,p,f=e[t],h="",d=n.langPrefix;if(f.params){if(p=(l=f.params.split(/\s+/g)).join(" "),r(c.rules.fence_custom,l[0]))return c.rules.fence_custom[l[0]](e,t,n,s,c);h=' class="'+d+a(i(o(p)))+'"'}return"<pre><code"+h+">"+(n.highlight&&n.highlight.apply(n.highlight,[f.content].concat(l))||a(f.content))+"</code></pre>"+u(e,t)},s.fence_custom={},s.heading_open=function(e,t){return"<h"+e[t].hLevel+">"},s.heading_close=function(e,t){return"</h"+e[t].hLevel+">\n"},s.hr=function(e,t,n){return(n.xhtmlOut?"<hr />":"<hr>")+u(e,t)},s.bullet_list_open=function(){return"<ul>\n"},s.bullet_list_close=function(e,t){return"</ul>"+u(e,t)},s.list_item_open=function(){return"<li>"},s.list_item_close=function(){return"</li>\n"},s.ordered_list_open=function(e,t){var n=e[t];return"<ol"+(n.order>1?' start="'+n.order+'"':"")+">\n"},s.ordered_list_close=function(e,t){return"</ol>"+u(e,t)},s.paragraph_open=function(e,t){return e[t].tight?"":"<p>"},s.paragraph_close=function(e,t){var n=!(e[t].tight&&t&&"inline"===e[t-1].type&&!e[t-1].content);return(e[t].tight?"":"</p>")+(n?u(e,t):"")},s.link_open=function(e,t,n){var r=e[t].title?' title="'+a(i(e[t].title))+'"':"",o=n.linkTarget?' target="'+n.linkTarget+'"':"";return'<a href="'+a(e[t].href)+'"'+r+o+">"},s.link_close=function(){return"</a>"},s.image=function(e,t,n){var r=' src="'+a(e[t].src)+'"',s=e[t].title?' title="'+a(i(e[t].title))+'"':"";return"<img"+r+(' alt="'+(e[t].alt?a(i(o(e[t].alt))):"")+'"')+s+(n.xhtmlOut?" /":"")+">"},s.table_open=function(){return"<table>\n"},s.table_close=function(){return"</table>\n"},s.thead_open=function(){return"<thead>\n"},s.thead_close=function(){return"</thead>\n"},s.tbody_open=function(){return"<tbody>\n"},s.tbody_close=function(){return"</tbody>\n"},s.tr_open=function(){return"<tr>"},s.tr_close=function(){return"</tr>\n"},s.th_open=function(e,t){var n=e[t];return"<th"+(n.align?' style="text-align:'+n.align+'"':"")+">"},s.th_close=function(){return"</th>"},s.td_open=function(e,t){var n=e[t];return"<td"+(n.align?' style="text-align:'+n.align+'"':"")+">"},s.td_close=function(){return"</td>"},s.strong_open=function(){return"<strong>"},s.strong_close=function(){return"</strong>"},s.em_open=function(){return"<em>"},s.em_close=function(){return"</em>"},s.del_open=function(){return"<del>"},s.del_close=function(){return"</del>"},s.ins_open=function(){return"<ins>"},s.ins_close=function(){return"</ins>"},s.mark_open=function(){return"<mark>"},s.mark_close=function(){return"</mark>"},s.sub=function(e,t){return"<sub>"+a(e[t].content)+"</sub>"},s.sup=function(e,t){return"<sup>"+a(e[t].content)+"</sup>"},s.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},s.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},s.text=function(e,t){return a(e[t].content)},s.htmlblock=function(e,t){return e[t].content},s.htmltag=function(e,t){return e[t].content},s.abbr_open=function(e,t){return'<abbr title="'+a(i(e[t].title))+'">'},s.abbr_close=function(){return"</abbr>"},s.footnote_ref=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),'<sup class="footnote-ref"><a href="#fn'+n+'" id="'+r+'">['+n+"]</a></sup>"},s.footnote_block_open=function(e,t,n){return(n.xhtmlOut?'<hr class="footnotes-sep" />\n':'<hr class="footnotes-sep">\n')+'<section class="footnotes">\n<ol class="footnotes-list">\n'},s.footnote_block_close=function(){return"</ol>\n</section>\n"},s.footnote_open=function(e,t){return'<li id="fn'+Number(e[t].id+1).toString()+'"  class="footnote-item">'},s.footnote_close=function(){return"</li>\n"},s.footnote_anchor=function(e,t){var n="fnref"+Number(e[t].id+1).toString();return e[t].subId>0&&(n+=":"+e[t].subId),' <a href="#'+n+'" class="footnote-backref">↩</a>'},s.dl_open=function(){return"<dl>\n"},s.dt_open=function(){return"<dt>"},s.dd_open=function(){return"<dd>"},s.dl_close=function(){return"</dl>\n"},s.dt_close=function(){return"</dt>\n"},s.dd_close=function(){return"</dd>\n"};var u=s.getBreak=function(e,t){return(t=function e(t,n){return++n>=t.length-2?n:"paragraph_open"===t[n].type&&t[n].tight&&"inline"===t[n+1].type&&0===t[n+1].content.length&&"paragraph_close"===t[n+2].type&&t[n+2].tight?e(t,n+2):n}(e,t))<e.length&&"list_item_close"===e[t].type?"":"\n"};e.exports=s},function(e,t,n){"use strict";var r=n(187),o=[["block",n(971)],["abbr",n(972)],["references",n(973)],["inline",n(974)],["footnote_tail",n(975)],["abbr2",n(976)],["replacements",n(977)],["smartquotes",n(978)],["linkify",n(979)]];function i(){this.options={},this.ruler=new r;for(var e=0;e<o.length;e++)this.ruler.push(o[e][0],o[e][1])}i.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},e.exports=i},function(e,t,n){"use strict";e.exports=function(e){e.inlineMode?e.tokens.push({type:"inline",content:e.src.replace(/\n/g," ").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}},function(e,t,n){"use strict";var r=n(261),o=n(188);function i(e,t,n,i){var a,s,u,c,l,p;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf("]:"))return-1;if(a=new r(e,t,n,i,[]),(s=o(a,1))<0||58!==e.charCodeAt(s+1))return-1;for(c=a.posMax,u=s+2;u<c&&10!==a.src.charCodeAt(u);u++);return l=e.slice(2,s),0===(p=e.slice(s+2,u).trim()).length?-1:(i.abbreviations||(i.abbreviations={}),void 0===i.abbreviations[":"+l]&&(i.abbreviations[":"+l]=p),u)}e.exports=function(e){var t,n,r,o,a=e.tokens;if(!e.inlineMode)for(t=1,n=a.length-1;t<n;t++)if("paragraph_open"===a[t-1].type&&"inline"===a[t].type&&"paragraph_close"===a[t+1].type){for(r=a[t].content;r.length&&!((o=i(r,e.inline,e.options,e.env))<0);)r=r.slice(o).trim();a[t].content=r,r.length||(a[t-1].tight=!0,a[t+1].tight=!0)}}},function(e,t,n){"use strict";var r=n(261),o=n(188),i=n(458),a=n(460),s=n(461);function u(e,t,n,u){var c,l,p,f,h,d,m,v,g;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf("]:"))return-1;if(c=new r(e,t,n,u,[]),(l=o(c,0))<0||58!==e.charCodeAt(l+1))return-1;for(f=c.posMax,p=l+2;p<f&&(32===(h=c.src.charCodeAt(p))||10===h);p++);if(!i(c,p))return-1;for(m=c.linkContent,d=p=c.pos,p+=1;p<f&&(32===(h=c.src.charCodeAt(p))||10===h);p++);for(p<f&&d!==p&&a(c,p)?(v=c.linkContent,p=c.pos):(v="",p=d);p<f&&32===c.src.charCodeAt(p);)p++;return p<f&&10!==c.src.charCodeAt(p)?-1:(g=s(e.slice(1,l)),void 0===u.references[g]&&(u.references[g]={title:v,href:m}),p)}e.exports=function(e){var t,n,r,o,i=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,n=i.length-1;t<n;t++)if("inline"===i[t].type&&"paragraph_open"===i[t-1].type&&"paragraph_close"===i[t+1].type){for(r=i[t].content;r.length&&!((o=u(r,e.inline,e.options,e.env))<0);)r=r.slice(o).trim();i[t].content=r,r.length||(i[t-1].tight=!0,i[t+1].tight=!0)}}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,o=e.tokens;for(n=0,r=o.length;n<r;n++)"inline"===(t=o[n]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,o,i,a,s,u,c,l=0,p=!1,f={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(p=!0,u=[],c=e.label,!1):"footnote_reference_close"===e.type?(p=!1,f[":"+c]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(a=e.env.footnotes.list,e.tokens.push({type:"footnote_block_open",level:l++}),t=0,n=a.length;t<n;t++){for(e.tokens.push({type:"footnote_open",id:t,level:l++}),a[t].tokens?((s=[]).push({type:"paragraph_open",tight:!1,level:l++}),s.push({type:"inline",content:"",level:l,children:a[t].tokens}),s.push({type:"paragraph_close",tight:!1,level:--l})):a[t].label&&(s=f[":"+a[t].label]),e.tokens=e.tokens.concat(s),i="paragraph_close"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=a[t].count>0?a[t].count:1,r=0;r<o;r++)e.tokens.push({type:"footnote_anchor",id:t,subId:r,level:l});i&&e.tokens.push(i),e.tokens.push({type:"footnote_close",level:--l})}e.tokens.push({type:"footnote_block_close",level:--l})}}},function(e,t,n){"use strict";function r(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1")}e.exports=function(e){var t,n,o,i,a,s,u,c,l,p,f,h,d=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h="(^|["+" \n()[]'\".,!?-".split("").map(r).join("")+"])("+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(r).join("|")+")($|["+" \n()[]'\".,!?-".split("").map(r).join("")+"])",e.env.abbrRegExp=new RegExp(h,"g")),p=e.env.abbrRegExp,n=0,o=d.length;n<o;n++)if("inline"===d[n].type)for(t=(i=d[n].children).length-1;t>=0;t--)if("text"===(a=i[t]).type){for(c=0,s=a.content,p.lastIndex=0,l=a.level,u=[];f=p.exec(s);)p.lastIndex>c&&u.push({type:"text",content:s.slice(c,f.index+f[1].length),level:l}),u.push({type:"abbr_open",title:e.env.abbreviations[":"+f[2]],level:l++}),u.push({type:"text",content:f[2],level:l}),u.push({type:"abbr_close",level:--l}),c=p.lastIndex-f[3].length;u.length&&(c<s.length&&u.push({type:"text",content:s.slice(c),level:l}),d[n].children=i=[].concat(i.slice(0,t),u,i.slice(t+1)))}}},function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,o=/\((c|tm|r|p)\)/gi,i={c:"©",r:"®",p:"§",tm:"™"};e.exports=function(e){var t,n,a,s,u,c;if(e.options.typographer)for(u=e.tokens.length-1;u>=0;u--)if("inline"===e.tokens[u].type)for(t=(s=e.tokens[u].children).length-1;t>=0;t--)"text"===(n=s[t]).type&&(a=n.content,a=(c=a).indexOf("(")<0?c:c.replace(o,function(e,t){return i[t.toLowerCase()]}),r.test(a)&&(a=a.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),n.content=a)}},function(e,t,n){"use strict";var r=/['"]/,o=/['"]/g,i=/[-\s()\[\]]/;function a(e,t){return!(t<0||t>=e.length)&&!i.test(e[t])}function s(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}e.exports=function(e){var t,n,i,u,c,l,p,f,h,d,m,v,g,y,b,_,w;if(e.options.typographer)for(w=[],b=e.tokens.length-1;b>=0;b--)if("inline"===e.tokens[b].type)for(_=e.tokens[b].children,w.length=0,t=0;t<_.length;t++)if("text"===(n=_[t]).type&&!r.test(n.text)){for(p=_[t].level,g=w.length-1;g>=0&&!(w[g].level<=p);g--);w.length=g+1,c=0,l=(i=n.content).length;e:for(;c<l&&(o.lastIndex=c,u=o.exec(i));)if(f=!a(i,u.index-1),c=u.index+1,y="'"===u[0],(h=!a(i,c))||f){if(m=!h,v=!f)for(g=w.length-1;g>=0&&(d=w[g],!(w[g].level<p));g--)if(d.single===y&&w[g].level===p){d=w[g],y?(_[d.token].content=s(_[d.token].content,d.pos,e.options.quotes[2]),n.content=s(n.content,u.index,e.options.quotes[3])):(_[d.token].content=s(_[d.token].content,d.pos,e.options.quotes[0]),n.content=s(n.content,u.index,e.options.quotes[1])),w.length=g;continue e}m?w.push({token:t,pos:u.index,single:y,level:p}):v&&y&&(n.content=s(n.content,u.index,"’"))}else y&&(n.content=s(n.content,u.index,"’"))}}},function(e,t,n){"use strict";var r=n(980),o=/www|@|\:\/\//;function i(e){return/^<\/a\s*>/i.test(e)}function a(){var e=[],t=new r({stripPrefix:!1,url:!0,email:!0,twitter:!1,replaceFn:function(t,n){switch(n.getType()){case"url":e.push({text:n.matchedText,url:n.getUrl()});break;case"email":e.push({text:n.matchedText,url:"mailto:"+n.getEmail().replace(/^mailto:/i,"")})}return!1}});return{links:e,autolinker:t}}e.exports=function(e){var t,n,r,s,u,c,l,p,f,h,d,m,v,g,y=e.tokens,b=null;if(e.options.linkify)for(n=0,r=y.length;n<r;n++)if("inline"===y[n].type)for(d=0,t=(s=y[n].children).length-1;t>=0;t--)if("link_close"!==(u=s[t]).type){if("htmltag"===u.type&&(g=u.content,/^<a[>\s]/i.test(g)&&d>0&&d--,i(u.content)&&d++),!(d>0)&&"text"===u.type&&o.test(u.content)){if(b||(m=(b=a()).links,v=b.autolinker),c=u.content,m.length=0,v.link(c),!m.length)continue;for(l=[],h=u.level,p=0;p<m.length;p++)e.inline.validateLink(m[p].url)&&((f=c.indexOf(m[p].text))&&(h=h,l.push({type:"text",content:c.slice(0,f),level:h})),l.push({type:"link_open",href:m[p].url,title:"",level:h++}),l.push({type:"text",content:m[p].text,level:h}),l.push({type:"link_close",level:--h}),c=c.slice(f+m[p].text.length));c.length&&l.push({type:"text",content:c,level:h}),y[n].children=s=[].concat(s.slice(0,t),l,s.slice(t+1))}}else for(t--;s[t].level!==u.level&&"link_open"!==s[t].type;)t--}},function(e,t,n){var r,o,i;
+ */var r,o="";e.exports=function(e,t){if("string"!=typeof e)throw new TypeError("expected a string");if(1===t)return e;if(2===t)return e+e;var n=e.length*t;if(r!==e||void 0===r)r=e,o="";else if(o.length>=n)return o.substr(0,n);for(;n>o.length&&t>1;)1&t&&(o+=e),t>>=1,e+=e;return o=(o+=e).substr(0,n)}},function(e,t,n){"use strict";var r=n(39).assign,o=n(981),i=n(983),a=n(994),s=n(1009),u=n(190),c={default:n(1028),full:n(1029),commonmark:n(1030)};function l(e,t,n){this.src=t,this.env=n,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function p(e,t){"string"!=typeof e&&(t=e,e="default"),this.inline=new s,this.block=new a,this.core=new i,this.renderer=new o,this.ruler=new u,this.options={},this.configure(c[e]),this.set(t||{})}p.prototype.set=function(e){r(this.options,e)},p.prototype.configure=function(e){var t=this;if(!e)throw new Error("Wrong `remarkable` preset, check name/content");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enable(e.components[n].rules,!0)})},p.prototype.use=function(e,t){return e(this,t),this},p.prototype.parse=function(e,t){var n=new l(this,e,t);return this.core.process(n),n.tokens},p.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},p.prototype.parseInline=function(e,t){var n=new l(this,e,t);return n.inlineMode=!0,this.core.process(n),n.tokens},p.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=p,e.exports.utils=n(39)},function(e,t,n){"use strict";var r=n(39),o=n(982);function i(){this.rules=r.assign({},o),this.getBreak=o.getBreak}e.exports=i,i.prototype.renderInline=function(e,t,n){for(var r=this.rules,o=e.length,i=0,a="";o--;)a+=r[e[i].type](e,i++,t,n,this);return a},i.prototype.render=function(e,t,n){for(var r=this.rules,o=e.length,i=-1,a="";++i<o;)"inline"===e[i].type?a+=this.renderInline(e[i].children,t,n):a+=r[e[i].type](e,i,t,n,this);return a}},function(e,t,n){"use strict";var r=n(39).has,o=n(39).unescapeMd,i=n(39).replaceEntities,a=n(39).escapeHtml,s={};s.blockquote_open=function(){return"<blockquote>\n"},s.blockquote_close=function(e,t){return"</blockquote>"+u(e,t)},s.code=function(e,t){return e[t].block?"<pre><code>"+a(e[t].content)+"</code></pre>"+u(e,t):"<code>"+a(e[t].content)+"</code>"},s.fence=function(e,t,n,s,c){var l,p,f=e[t],h="",d=n.langPrefix;if(f.params){if(p=(l=f.params.split(/\s+/g)).join(" "),r(c.rules.fence_custom,l[0]))return c.rules.fence_custom[l[0]](e,t,n,s,c);h=' class="'+d+a(i(o(p)))+'"'}return"<pre><code"+h+">"+(n.highlight&&n.highlight.apply(n.highlight,[f.content].concat(l))||a(f.content))+"</code></pre>"+u(e,t)},s.fence_custom={},s.heading_open=function(e,t){return"<h"+e[t].hLevel+">"},s.heading_close=function(e,t){return"</h"+e[t].hLevel+">\n"},s.hr=function(e,t,n){return(n.xhtmlOut?"<hr />":"<hr>")+u(e,t)},s.bullet_list_open=function(){return"<ul>\n"},s.bullet_list_close=function(e,t){return"</ul>"+u(e,t)},s.list_item_open=function(){return"<li>"},s.list_item_close=function(){return"</li>\n"},s.ordered_list_open=function(e,t){var n=e[t];return"<ol"+(n.order>1?' start="'+n.order+'"':"")+">\n"},s.ordered_list_close=function(e,t){return"</ol>"+u(e,t)},s.paragraph_open=function(e,t){return e[t].tight?"":"<p>"},s.paragraph_close=function(e,t){var n=!(e[t].tight&&t&&"inline"===e[t-1].type&&!e[t-1].content);return(e[t].tight?"":"</p>")+(n?u(e,t):"")},s.link_open=function(e,t,n){var r=e[t].title?' title="'+a(i(e[t].title))+'"':"",o=n.linkTarget?' target="'+n.linkTarget+'"':"";return'<a href="'+a(e[t].href)+'"'+r+o+">"},s.link_close=function(){return"</a>"},s.image=function(e,t,n){var r=' src="'+a(e[t].src)+'"',s=e[t].title?' title="'+a(i(e[t].title))+'"':"";return"<img"+r+(' alt="'+(e[t].alt?a(i(o(e[t].alt))):"")+'"')+s+(n.xhtmlOut?" /":"")+">"},s.table_open=function(){return"<table>\n"},s.table_close=function(){return"</table>\n"},s.thead_open=function(){return"<thead>\n"},s.thead_close=function(){return"</thead>\n"},s.tbody_open=function(){return"<tbody>\n"},s.tbody_close=function(){return"</tbody>\n"},s.tr_open=function(){return"<tr>"},s.tr_close=function(){return"</tr>\n"},s.th_open=function(e,t){var n=e[t];return"<th"+(n.align?' style="text-align:'+n.align+'"':"")+">"},s.th_close=function(){return"</th>"},s.td_open=function(e,t){var n=e[t];return"<td"+(n.align?' style="text-align:'+n.align+'"':"")+">"},s.td_close=function(){return"</td>"},s.strong_open=function(){return"<strong>"},s.strong_close=function(){return"</strong>"},s.em_open=function(){return"<em>"},s.em_close=function(){return"</em>"},s.del_open=function(){return"<del>"},s.del_close=function(){return"</del>"},s.ins_open=function(){return"<ins>"},s.ins_close=function(){return"</ins>"},s.mark_open=function(){return"<mark>"},s.mark_close=function(){return"</mark>"},s.sub=function(e,t){return"<sub>"+a(e[t].content)+"</sub>"},s.sup=function(e,t){return"<sup>"+a(e[t].content)+"</sup>"},s.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},s.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},s.text=function(e,t){return a(e[t].content)},s.htmlblock=function(e,t){return e[t].content},s.htmltag=function(e,t){return e[t].content},s.abbr_open=function(e,t){return'<abbr title="'+a(i(e[t].title))+'">'},s.abbr_close=function(){return"</abbr>"},s.footnote_ref=function(e,t){var n=Number(e[t].id+1).toString(),r="fnref"+n;return e[t].subId>0&&(r+=":"+e[t].subId),'<sup class="footnote-ref"><a href="#fn'+n+'" id="'+r+'">['+n+"]</a></sup>"},s.footnote_block_open=function(e,t,n){return(n.xhtmlOut?'<hr class="footnotes-sep" />\n':'<hr class="footnotes-sep">\n')+'<section class="footnotes">\n<ol class="footnotes-list">\n'},s.footnote_block_close=function(){return"</ol>\n</section>\n"},s.footnote_open=function(e,t){return'<li id="fn'+Number(e[t].id+1).toString()+'"  class="footnote-item">'},s.footnote_close=function(){return"</li>\n"},s.footnote_anchor=function(e,t){var n="fnref"+Number(e[t].id+1).toString();return e[t].subId>0&&(n+=":"+e[t].subId),' <a href="#'+n+'" class="footnote-backref">↩</a>'},s.dl_open=function(){return"<dl>\n"},s.dt_open=function(){return"<dt>"},s.dd_open=function(){return"<dd>"},s.dl_close=function(){return"</dl>\n"},s.dt_close=function(){return"</dt>\n"},s.dd_close=function(){return"</dd>\n"};var u=s.getBreak=function(e,t){return(t=function e(t,n){return++n>=t.length-2?n:"paragraph_open"===t[n].type&&t[n].tight&&"inline"===t[n+1].type&&0===t[n+1].content.length&&"paragraph_close"===t[n+2].type&&t[n+2].tight?e(t,n+2):n}(e,t))<e.length&&"list_item_close"===e[t].type?"":"\n"};e.exports=s},function(e,t,n){"use strict";var r=n(190),o=[["block",n(984)],["abbr",n(985)],["references",n(986)],["inline",n(987)],["footnote_tail",n(988)],["abbr2",n(989)],["replacements",n(990)],["smartquotes",n(991)],["linkify",n(992)]];function i(){this.options={},this.ruler=new r;for(var e=0;e<o.length;e++)this.ruler.push(o[e][0],o[e][1])}i.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},e.exports=i},function(e,t,n){"use strict";e.exports=function(e){e.inlineMode?e.tokens.push({type:"inline",content:e.src.replace(/\n/g," ").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}},function(e,t,n){"use strict";var r=n(269),o=n(191);function i(e,t,n,i){var a,s,u,c,l,p;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf("]:"))return-1;if(a=new r(e,t,n,i,[]),(s=o(a,1))<0||58!==e.charCodeAt(s+1))return-1;for(c=a.posMax,u=s+2;u<c&&10!==a.src.charCodeAt(u);u++);return l=e.slice(2,s),0===(p=e.slice(s+2,u).trim()).length?-1:(i.abbreviations||(i.abbreviations={}),void 0===i.abbreviations[":"+l]&&(i.abbreviations[":"+l]=p),u)}e.exports=function(e){var t,n,r,o,a=e.tokens;if(!e.inlineMode)for(t=1,n=a.length-1;t<n;t++)if("paragraph_open"===a[t-1].type&&"inline"===a[t].type&&"paragraph_close"===a[t+1].type){for(r=a[t].content;r.length&&!((o=i(r,e.inline,e.options,e.env))<0);)r=r.slice(o).trim();a[t].content=r,r.length||(a[t-1].tight=!0,a[t+1].tight=!0)}}},function(e,t,n){"use strict";var r=n(269),o=n(191),i=n(464),a=n(466),s=n(467);function u(e,t,n,u){var c,l,p,f,h,d,m,v,g;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf("]:"))return-1;if(c=new r(e,t,n,u,[]),(l=o(c,0))<0||58!==e.charCodeAt(l+1))return-1;for(f=c.posMax,p=l+2;p<f&&(32===(h=c.src.charCodeAt(p))||10===h);p++);if(!i(c,p))return-1;for(m=c.linkContent,d=p=c.pos,p+=1;p<f&&(32===(h=c.src.charCodeAt(p))||10===h);p++);for(p<f&&d!==p&&a(c,p)?(v=c.linkContent,p=c.pos):(v="",p=d);p<f&&32===c.src.charCodeAt(p);)p++;return p<f&&10!==c.src.charCodeAt(p)?-1:(g=s(e.slice(1,l)),void 0===u.references[g]&&(u.references[g]={title:v,href:m}),p)}e.exports=function(e){var t,n,r,o,i=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,n=i.length-1;t<n;t++)if("inline"===i[t].type&&"paragraph_open"===i[t-1].type&&"paragraph_close"===i[t+1].type){for(r=i[t].content;r.length&&!((o=u(r,e.inline,e.options,e.env))<0);)r=r.slice(o).trim();i[t].content=r,r.length||(i[t-1].tight=!0,i[t+1].tight=!0)}}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,o=e.tokens;for(n=0,r=o.length;n<r;n++)"inline"===(t=o[n]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,o,i,a,s,u,c,l=0,p=!1,f={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return"footnote_reference_open"===e.type?(p=!0,u=[],c=e.label,!1):"footnote_reference_close"===e.type?(p=!1,f[":"+c]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(a=e.env.footnotes.list,e.tokens.push({type:"footnote_block_open",level:l++}),t=0,n=a.length;t<n;t++){for(e.tokens.push({type:"footnote_open",id:t,level:l++}),a[t].tokens?((s=[]).push({type:"paragraph_open",tight:!1,level:l++}),s.push({type:"inline",content:"",level:l,children:a[t].tokens}),s.push({type:"paragraph_close",tight:!1,level:--l})):a[t].label&&(s=f[":"+a[t].label]),e.tokens=e.tokens.concat(s),i="paragraph_close"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=a[t].count>0?a[t].count:1,r=0;r<o;r++)e.tokens.push({type:"footnote_anchor",id:t,subId:r,level:l});i&&e.tokens.push(i),e.tokens.push({type:"footnote_close",level:--l})}e.tokens.push({type:"footnote_block_close",level:--l})}}},function(e,t,n){"use strict";function r(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1")}e.exports=function(e){var t,n,o,i,a,s,u,c,l,p,f,h,d=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h="(^|["+" \n()[]'\".,!?-".split("").map(r).join("")+"])("+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(r).join("|")+")($|["+" \n()[]'\".,!?-".split("").map(r).join("")+"])",e.env.abbrRegExp=new RegExp(h,"g")),p=e.env.abbrRegExp,n=0,o=d.length;n<o;n++)if("inline"===d[n].type)for(t=(i=d[n].children).length-1;t>=0;t--)if("text"===(a=i[t]).type){for(c=0,s=a.content,p.lastIndex=0,l=a.level,u=[];f=p.exec(s);)p.lastIndex>c&&u.push({type:"text",content:s.slice(c,f.index+f[1].length),level:l}),u.push({type:"abbr_open",title:e.env.abbreviations[":"+f[2]],level:l++}),u.push({type:"text",content:f[2],level:l}),u.push({type:"abbr_close",level:--l}),c=p.lastIndex-f[3].length;u.length&&(c<s.length&&u.push({type:"text",content:s.slice(c),level:l}),d[n].children=i=[].concat(i.slice(0,t),u,i.slice(t+1)))}}},function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,o=/\((c|tm|r|p)\)/gi,i={c:"©",r:"®",p:"§",tm:"™"};e.exports=function(e){var t,n,a,s,u,c;if(e.options.typographer)for(u=e.tokens.length-1;u>=0;u--)if("inline"===e.tokens[u].type)for(t=(s=e.tokens[u].children).length-1;t>=0;t--)"text"===(n=s[t]).type&&(a=n.content,a=(c=a).indexOf("(")<0?c:c.replace(o,function(e,t){return i[t.toLowerCase()]}),r.test(a)&&(a=a.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),n.content=a)}},function(e,t,n){"use strict";var r=/['"]/,o=/['"]/g,i=/[-\s()\[\]]/;function a(e,t){return!(t<0||t>=e.length)&&!i.test(e[t])}function s(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}e.exports=function(e){var t,n,i,u,c,l,p,f,h,d,m,v,g,y,b,_,w;if(e.options.typographer)for(w=[],b=e.tokens.length-1;b>=0;b--)if("inline"===e.tokens[b].type)for(_=e.tokens[b].children,w.length=0,t=0;t<_.length;t++)if("text"===(n=_[t]).type&&!r.test(n.text)){for(p=_[t].level,g=w.length-1;g>=0&&!(w[g].level<=p);g--);w.length=g+1,c=0,l=(i=n.content).length;e:for(;c<l&&(o.lastIndex=c,u=o.exec(i));)if(f=!a(i,u.index-1),c=u.index+1,y="'"===u[0],(h=!a(i,c))||f){if(m=!h,v=!f)for(g=w.length-1;g>=0&&(d=w[g],!(w[g].level<p));g--)if(d.single===y&&w[g].level===p){d=w[g],y?(_[d.token].content=s(_[d.token].content,d.pos,e.options.quotes[2]),n.content=s(n.content,u.index,e.options.quotes[3])):(_[d.token].content=s(_[d.token].content,d.pos,e.options.quotes[0]),n.content=s(n.content,u.index,e.options.quotes[1])),w.length=g;continue e}m?w.push({token:t,pos:u.index,single:y,level:p}):v&&y&&(n.content=s(n.content,u.index,"’"))}else y&&(n.content=s(n.content,u.index,"’"))}}},function(e,t,n){"use strict";var r=n(993),o=/www|@|\:\/\//;function i(e){return/^<\/a\s*>/i.test(e)}function a(){var e=[],t=new r({stripPrefix:!1,url:!0,email:!0,twitter:!1,replaceFn:function(t,n){switch(n.getType()){case"url":e.push({text:n.matchedText,url:n.getUrl()});break;case"email":e.push({text:n.matchedText,url:"mailto:"+n.getEmail().replace(/^mailto:/i,"")})}return!1}});return{links:e,autolinker:t}}e.exports=function(e){var t,n,r,s,u,c,l,p,f,h,d,m,v,g,y=e.tokens,b=null;if(e.options.linkify)for(n=0,r=y.length;n<r;n++)if("inline"===y[n].type)for(d=0,t=(s=y[n].children).length-1;t>=0;t--)if("link_close"!==(u=s[t]).type){if("htmltag"===u.type&&(g=u.content,/^<a[>\s]/i.test(g)&&d>0&&d--,i(u.content)&&d++),!(d>0)&&"text"===u.type&&o.test(u.content)){if(b||(m=(b=a()).links,v=b.autolinker),c=u.content,m.length=0,v.link(c),!m.length)continue;for(l=[],h=u.level,p=0;p<m.length;p++)e.inline.validateLink(m[p].url)&&((f=c.indexOf(m[p].text))&&(h=h,l.push({type:"text",content:c.slice(0,f),level:h})),l.push({type:"link_open",href:m[p].url,title:"",level:h++}),l.push({type:"text",content:m[p].text,level:h}),l.push({type:"link_close",level:--h}),c=c.slice(f+m[p].text.length));c.length&&l.push({type:"text",content:c,level:h}),y[n].children=s=[].concat(s.slice(0,t),l,s.slice(t+1))}}else for(t--;s[t].level!==u.level&&"link_open"!==s[t].type;)t--}},function(e,t,n){var r,o,i;
 /*!
  * Autolinker.js
  * 0.28.1
 /*!
  * Autolinker.js
  * 0.28.1
@@ -130,5 +130,5 @@ function n(e){return e instanceof t||e instanceof Date||e instanceof RegExp}func
  * MIT License
  *
  * https://github.com/gregjacobs/Autolinker.js
  * MIT License
  *
  * https://github.com/gregjacobs/Autolinker.js
- */o=[],void 0===(i="function"==typeof(r=function(){var e,t,n,r,o,i,a,s=function(e){e=e||{},this.version=s.version,this.urls=this.normalizeUrlsCfg(e.urls),this.email="boolean"!=typeof e.email||e.email,this.twitter="boolean"!=typeof e.twitter||e.twitter,this.phone="boolean"!=typeof e.phone||e.phone,this.hashtag=e.hashtag||!1,this.newWindow="boolean"!=typeof e.newWindow||e.newWindow,this.stripPrefix="boolean"!=typeof e.stripPrefix||e.stripPrefix;var t=this.hashtag;if(!1!==t&&"twitter"!==t&&"facebook"!==t&&"instagram"!==t)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(e.truncate),this.className=e.className||"",this.replaceFn=e.replaceFn||null,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return s.link=function(e,t){return new s(t).link(e)},s.version="0.28.1",s.prototype={constructor:s,normalizeUrlsCfg:function(e){return null==e&&(e=!0),"boolean"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:"boolean"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:"boolean"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:"boolean"!=typeof e.tldMatches||e.tldMatches}},normalizeTruncateCfg:function(e){return"number"==typeof e?{length:e,location:"end"}:s.Util.defaults(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(e){for(var t=this.getHtmlParser().parse(e),n=0,r=[],o=0,i=t.length;o<i;o++){var a=t[o],s=a.getType();if("element"===s&&"a"===a.getTagName())a.isClosing()?n=Math.max(n-1,0):n++;else if("text"===s&&0===n){var u=this.parseText(a.getText(),a.getOffset());r.push.apply(r,u)}}return r=this.compactMatches(r),r=this.removeUnwantedMatches(r)},compactMatches:function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++)for(var n=e[t],r=n.getOffset()+n.getMatchedText().length;t+1<e.length&&e[t+1].getOffset()<=r;)e.splice(t+1,1);return e},removeUnwantedMatches:function(e){var t=s.Util.remove;return this.hashtag||t(e,function(e){return"hashtag"===e.getType()}),this.email||t(e,function(e){return"email"===e.getType()}),this.phone||t(e,function(e){return"phone"===e.getType()}),this.twitter||t(e,function(e){return"twitter"===e.getType()}),this.urls.schemeMatches||t(e,function(e){return"url"===e.getType()&&"scheme"===e.getUrlMatchType()}),this.urls.wwwMatches||t(e,function(e){return"url"===e.getType()&&"www"===e.getUrlMatchType()}),this.urls.tldMatches||t(e,function(e){return"url"===e.getType()&&"tld"===e.getUrlMatchType()}),e},parseText:function(e,t){t=t||0;for(var n=this.getMatchers(),r=[],o=0,i=n.length;o<i;o++){for(var a=n[o].parseMatches(e),s=0,u=a.length;s<u;s++)a[s].setOffset(t+a[s].getOffset());r.push.apply(r,a)}return r},link:function(e){if(!e)return"";for(var t=this.parse(e),n=[],r=0,o=0,i=t.length;o<i;o++){var a=t[o];n.push(e.substring(r,a.getOffset())),n.push(this.createMatchReturnVal(a)),r=a.getOffset()+a.getMatchedText().length}return n.push(e.substring(r)),n.join("")},createMatchReturnVal:function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this,this,e)),"string"==typeof t?t:!1===t?e.getMatchedText():t instanceof s.HtmlTag?t.toAnchorString():e.buildTag().toAnchorString()},getHtmlParser:function(){var e=this.htmlParser;return e||(e=this.htmlParser=new s.htmlParser.HtmlParser),e},getMatchers:function(){if(this.matchers)return this.matchers;var e=s.matcher,t=this.getTagBuilder(),n=[new e.Hashtag({tagBuilder:t,serviceName:this.hashtag}),new e.Email({tagBuilder:t}),new e.Phone({tagBuilder:t}),new e.Twitter({tagBuilder:t}),new e.Url({tagBuilder:t,stripPrefix:this.stripPrefix})];return this.matchers=n},getTagBuilder:function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new s.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e}},s.match={},s.matcher={},s.htmlParser={},s.truncate={},s.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},defaults:function(e,t){for(var n in t)t.hasOwnProperty(n)&&void 0===e[n]&&(e[n]=t[n]);return e},extend:function(e,t){var n,r=e.prototype,o=function(){};o.prototype=r;var i=(n=t.hasOwnProperty("constructor")?t.constructor:function(){r.constructor.apply(this,arguments)}).prototype=new o;return i.constructor=n,i.superclass=r,delete t.constructor,s.Util.assign(i,t),n},ellipsis:function(e,t,n){return e.length>t&&(n=null==n?"..":n,e=e.substring(0,t-n.length)+n),e},indexOf:function(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},remove:function(e,t){for(var n=e.length-1;n>=0;n--)!0===t(e[n])&&e.splice(n,1)},splitAndCapture:function(e,t){if(!t.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var n,r=[],o=0;n=t.exec(e);)r.push(e.substring(o,n.index)),r.push(n[0]),o=n.index+n[0].length;return r.push(e.substring(o)),r},trim:function(e){return e.replace(this.trimRegex,"")}},s.HtmlTag=s.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(e){s.Util.assign(this,e),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(e){return this.tagName=e,this},getTagName:function(){return this.tagName||""},setAttr:function(e,t){return this.getAttrs()[e]=t,this},getAttr:function(e){return this.getAttrs()[e]},setAttrs:function(e){var t=this.getAttrs();return s.Util.assign(t,e),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(e){return this.setAttr("class",e)},addClass:function(e){for(var t,n=this.getClass(),r=this.whitespaceRegex,o=s.Util.indexOf,i=n?n.split(r):[],a=e.split(r);t=a.shift();)-1===o(i,t)&&i.push(t);return this.getAttrs().class=i.join(" "),this},removeClass:function(e){for(var t,n=this.getClass(),r=this.whitespaceRegex,o=s.Util.indexOf,i=n?n.split(r):[],a=e.split(r);i.length&&(t=a.shift());){var u=o(i,t);-1!==u&&i.splice(u,1)}return this.getAttrs().class=i.join(" "),this},getClass:function(){return this.getAttrs().class||""},hasClass:function(e){return-1!==(" "+this.getClass()+" ").indexOf(" "+e+" ")},setInnerHtml:function(e){return this.innerHtml=e,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var e=this.getTagName(),t=this.buildAttrsStr();return["<",e,t=t?" "+t:"",">",this.getInnerHtml(),"</",e,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+'="'+e[n]+'"');return t.join(" ")}}),s.RegexLib={alphaNumericCharsStr:a="A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",domainNameRegex:new RegExp("["+a+".\\-]*["+a+"\\-]"),tldRegex:/(?:travelersinsurance|sandvikcoromant|kerryproperties|cancerresearch|weatherchannel|kerrylogistics|spreadbetting|international|wolterskluwer|lifeinsurance|construction|pamperedchef|scholarships|versicherung|bridgestone|creditunion|kerryhotels|investments|productions|blackfriday|enterprises|lamborghini|photography|motorcycles|williamhill|playstation|contractors|barclaycard|accountants|redumbrella|engineering|management|telefonica|protection|consulting|tatamotors|creditcard|vlaanderen|schaeffler|associates|properties|foundation|republican|bnpparibas|boehringer|eurovision|extraspace|industries|immobilien|university|technology|volkswagen|healthcare|restaurant|cuisinella|vistaprint|apartments|accountant|travelers|homedepot|institute|vacations|furniture|fresenius|insurance|christmas|bloomberg|solutions|barcelona|firestone|financial|kuokgroup|fairwinds|community|passagens|goldpoint|equipment|lifestyle|yodobashi|aquarelle|marketing|analytics|education|amsterdam|statefarm|melbourne|allfinanz|directory|microsoft|stockholm|montblanc|accenture|lancaster|landrover|everbank|istanbul|graphics|grainger|ipiranga|softbank|attorney|pharmacy|saarland|catering|airforce|yokohama|mortgage|frontier|mutuelle|stcgroup|memorial|pictures|football|symantec|cipriani|ventures|telecity|cityeats|verisign|flsmidth|boutique|cleaning|firmdale|clinique|clothing|redstone|infiniti|deloitte|feedback|services|broadway|plumbing|commbank|training|barclays|exchange|computer|brussels|software|delivery|barefoot|builders|business|bargains|engineer|holdings|download|security|helsinki|lighting|movistar|discount|hdfcbank|supplies|marriott|property|diamonds|capetown|partners|democrat|jpmorgan|bradesco|budapest|rexroth|zuerich|shriram|academy|science|support|youtube|singles|surgery|alibaba|statoil|dentist|schwarz|android|cruises|cricket|digital|markets|starhub|systems|courses|coupons|netbank|country|domains|corsica|network|neustar|realtor|lincoln|limited|schmidt|yamaxun|cooking|contact|auction|spiegel|liaison|leclerc|latrobe|lasalle|abogado|compare|lanxess|exposed|express|company|cologne|college|avianca|lacaixa|fashion|recipes|ferrero|komatsu|storage|wanggou|clubmed|sandvik|fishing|fitness|bauhaus|kitchen|flights|florist|flowers|watches|weather|temasek|samsung|bentley|forsale|channel|theater|frogans|theatre|okinawa|website|tickets|jewelry|gallery|tiffany|iselect|shiksha|brother|organic|wedding|genting|toshiba|origins|philips|hyundai|hotmail|hoteles|hosting|rentals|windows|cartier|bugatti|holiday|careers|whoswho|hitachi|panerai|caravan|reviews|guitars|capital|trading|hamburg|hangout|finance|stream|family|abbott|health|review|travel|report|hermes|hiphop|gratis|career|toyota|hockey|dating|repair|google|social|soccer|reisen|global|otsuka|giving|unicom|casino|photos|center|broker|rocher|orange|bostik|garden|insure|ryukyu|bharti|safety|physio|sakura|oracle|online|jaguar|gallup|piaget|tienda|futbol|pictet|joburg|webcam|berlin|office|juegos|kaufen|chanel|chrome|xihuan|church|tennis|circle|kinder|flickr|bayern|claims|clinic|viajes|nowruz|xperia|norton|yachts|studio|coffee|camera|sanofi|nissan|author|expert|events|comsec|lawyer|tattoo|viking|estate|villas|condos|realty|yandex|energy|emerck|virgin|vision|durban|living|school|coupon|london|taobao|natura|taipei|nagoya|luxury|walter|aramco|sydney|madrid|credit|maison|makeup|schule|market|anquan|direct|design|swatch|suzuki|alsace|vuelos|dental|alipay|voyage|shouji|voting|airtel|mutual|degree|supply|agency|museum|mobily|dealer|monash|select|mormon|active|moscow|racing|datsun|quebec|nissay|rodeo|email|gifts|works|photo|chloe|edeka|cheap|earth|vista|tushu|koeln|glass|shoes|globo|tunes|gmail|nokia|space|kyoto|black|ricoh|seven|lamer|sener|epson|cisco|praxi|trust|citic|crown|shell|lease|green|legal|lexus|ninja|tatar|gripe|nikon|group|video|wales|autos|gucci|party|nexus|guide|linde|adult|parts|amica|lixil|boats|azure|loans|locus|cymru|lotte|lotto|stada|click|poker|quest|dabur|lupin|nadex|paris|faith|dance|canon|place|gives|trade|skype|rocks|mango|cloud|boots|smile|final|swiss|homes|honda|media|horse|cards|deals|watch|bosch|house|pizza|miami|osaka|tours|total|xerox|coach|sucks|style|delta|toray|iinet|tools|money|codes|beats|tokyo|salon|archi|movie|baidu|study|actor|yahoo|store|apple|world|forex|today|bible|tmall|tirol|irish|tires|forum|reise|vegas|vodka|sharp|omega|weber|jetzt|audio|promo|build|bingo|chase|gallo|drive|dubai|rehab|press|solar|sale|beer|bbva|bank|band|auto|sapo|sarl|saxo|audi|asia|arte|arpa|army|yoga|ally|zara|scor|scot|sexy|seat|zero|seek|aero|adac|zone|aarp|maif|meet|meme|menu|surf|mini|mobi|mtpc|porn|desi|star|ltda|name|talk|navy|love|loan|live|link|news|limo|like|spot|life|nico|lidl|lgbt|land|taxi|team|tech|kred|kpmg|sony|song|kiwi|kddi|jprs|jobs|sohu|java|itau|tips|info|immo|icbc|hsbc|town|host|page|toys|here|help|pars|haus|guru|guge|tube|goog|golf|gold|sncf|gmbh|gift|ggee|gent|gbiz|game|vana|pics|fund|ford|ping|pink|fish|film|fast|farm|play|fans|fail|plus|skin|pohl|fage|moda|post|erni|dvag|prod|doha|prof|docs|viva|diet|luxe|site|dell|sina|dclk|show|qpon|date|vote|cyou|voto|read|coop|cool|wang|club|city|chat|cern|cash|reit|rent|casa|cars|care|camp|rest|call|cafe|weir|wien|rich|wiki|buzz|wine|book|bond|room|work|rsvp|shia|ruhr|blue|bing|shaw|bike|safe|xbox|best|pwc|mtn|lds|aig|boo|fyi|nra|nrw|ntt|car|gal|obi|zip|aeg|vin|how|one|ong|onl|dad|ooo|bet|esq|org|htc|bar|uol|ibm|ovh|gdn|ice|icu|uno|gea|ifm|bot|top|wtf|lol|day|pet|eus|wtc|ubs|tvs|aco|ing|ltd|ink|tab|abb|afl|cat|int|pid|pin|bid|cba|gle|com|cbn|ads|man|wed|ceb|gmo|sky|ist|gmx|tui|mba|fan|ski|iwc|app|pro|med|ceo|jcb|jcp|goo|dev|men|aaa|meo|pub|jlc|bom|jll|gop|jmp|mil|got|gov|win|jot|mma|joy|trv|red|cfa|cfd|bio|moe|moi|mom|ren|biz|aws|xin|bbc|dnp|buy|kfh|mov|thd|xyz|fit|kia|rio|rip|kim|dog|vet|nyc|bcg|mtr|bcn|bms|bmw|run|bzh|rwe|tel|stc|axa|kpn|fly|krd|cab|bnl|foo|crs|eat|tci|sap|srl|nec|sas|net|cal|sbs|sfr|sca|scb|csc|edu|new|xxx|hiv|fox|wme|ngo|nhk|vip|sex|frl|lat|yun|law|you|tax|soy|sew|om|ac|hu|se|sc|sg|sh|sb|sa|rw|ru|rs|ro|re|qa|py|si|pw|pt|ps|sj|sk|pr|pn|pm|pl|sl|sm|pk|sn|ph|so|pg|pf|pe|pa|zw|nz|nu|nr|np|no|nl|ni|ng|nf|sr|ne|st|nc|na|mz|my|mx|mw|mv|mu|mt|ms|mr|mq|mp|mo|su|mn|mm|ml|mk|mh|mg|me|sv|md|mc|sx|sy|ma|ly|lv|sz|lu|lt|ls|lr|lk|li|lc|lb|la|tc|kz|td|ky|kw|kr|kp|kn|km|ki|kh|tf|tg|th|kg|ke|jp|jo|jm|je|it|is|ir|tj|tk|tl|tm|iq|tn|to|io|in|im|il|ie|ad|sd|ht|hr|hn|hm|tr|hk|gy|gw|gu|gt|gs|gr|gq|tt|gp|gn|gm|gl|tv|gi|tw|tz|ua|gh|ug|uk|gg|gf|ge|gd|us|uy|uz|va|gb|ga|vc|ve|fr|fo|fm|fk|fj|vg|vi|fi|eu|et|es|er|eg|ee|ec|dz|do|dm|dk|vn|dj|de|cz|cy|cx|cw|vu|cv|cu|cr|co|cn|cm|cl|ck|ci|ch|cg|cf|cd|cc|ca|wf|bz|by|bw|bv|bt|bs|br|bo|bn|bm|bj|bi|ws|bh|bg|bf|be|bd|bb|ba|az|ax|aw|au|at|as|ye|ar|aq|ao|am|al|yt|ai|za|ag|af|ae|zm|id)\b/},s.AnchorTagBuilder=s.Util.extend(Object,{constructor:function(e){s.Util.assign(this,e)},build:function(e){return new s.HtmlTag({tagName:"a",attrs:this.createAttrs(e.getType(),e.getAnchorHref()),innerHtml:this.processAnchorText(e.getAnchorText())})},createAttrs:function(e,t){var n={href:t},r=this.createCssClass(e);return r&&(n.class=r),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),n},createCssClass:function(e){var t=this.className;return t?t+" "+t+"-"+e:""},processAnchorText:function(e){return e=this.doTruncate(e)},doTruncate:function(e){var t=this.truncate;if(!t||!t.length)return e;var n=t.length,r=t.location;return"smart"===r?s.truncate.TruncateSmart(e,n,".."):"middle"===r?s.truncate.TruncateMiddle(e,n,".."):s.truncate.TruncateEnd(e,n,"..")}}),s.htmlParser.HtmlParser=s.Util.extend(Object,{htmlRegex:(o=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,i=/[^\s"'>\/=\x00-\x1F\x7F]+/.source+"(?:\\s*=\\s*"+o.source+")?",new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",i,"|",o.source+")",")*",">",")","|","(?:","<(/)?","(?:",/!--([\s\S]+?)--/.source,"|","(?:","("+/[0-9a-zA-Z][0-9a-zA-Z:]*/.source+")","(?:","(?:\\s+|\\b)",i,")*","\\s*/?",")",")",">",")"].join(""),"gi")),htmlCharacterEntitiesRegex:/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,parse:function(e){for(var t,n,r=this.htmlRegex,o=0,i=[];null!==(t=r.exec(e));){var a=t[0],s=t[3],u=t[1]||t[4],c=!!t[2],l=t.index,p=e.substring(o,l);p&&(n=this.parseTextAndEntityNodes(o,p),i.push.apply(i,n)),s?i.push(this.createCommentNode(l,a,s)):i.push(this.createElementNode(l,a,u,c)),o=l+a.length}if(o<e.length){var f=e.substring(o);f&&(n=this.parseTextAndEntityNodes(o,f),i.push.apply(i,n))}return i},parseTextAndEntityNodes:function(e,t){for(var n=[],r=s.Util.splitAndCapture(t,this.htmlCharacterEntitiesRegex),o=0,i=r.length;o<i;o+=2){var a=r[o],u=r[o+1];a&&(n.push(this.createTextNode(e,a)),e+=a.length),u&&(n.push(this.createEntityNode(e,u)),e+=u.length)}return n},createCommentNode:function(e,t,n){return new s.htmlParser.CommentNode({offset:e,text:t,comment:s.Util.trim(n)})},createElementNode:function(e,t,n,r){return new s.htmlParser.ElementNode({offset:e,text:t,tagName:n.toLowerCase(),closing:r})},createEntityNode:function(e,t){return new s.htmlParser.EntityNode({offset:e,text:t})},createTextNode:function(e,t){return new s.htmlParser.TextNode({offset:e,text:t})}}),s.htmlParser.HtmlNode=s.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(e){if(s.Util.assign(this,e),null==this.offset)throw new Error("`offset` cfg required");if(null==this.text)throw new Error("`text` cfg required")},getType:s.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),s.htmlParser.CommentNode=s.Util.extend(s.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),s.htmlParser.ElementNode=s.Util.extend(s.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),s.htmlParser.EntityNode=s.Util.extend(s.htmlParser.HtmlNode,{getType:function(){return"entity"}}),s.htmlParser.TextNode=s.Util.extend(s.htmlParser.HtmlNode,{getType:function(){return"text"}}),s.match.Match=s.Util.extend(Object,{constructor:function(e){if(null==e.tagBuilder)throw new Error("`tagBuilder` cfg required");if(null==e.matchedText)throw new Error("`matchedText` cfg required");if(null==e.offset)throw new Error("`offset` cfg required");this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset},getType:s.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(e){this.offset=e},getOffset:function(){return this.offset},getAnchorHref:s.Util.abstractMethod,getAnchorText:s.Util.abstractMethod,buildTag:function(){return this.tagBuilder.build(this)}}),s.match.Email=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.email)throw new Error("`email` cfg required");this.email=e.email},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),s.match.Hashtag=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.hashtag)throw new Error("`hashtag` cfg required");this.serviceName=e.serviceName,this.hashtag=e.hashtag},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var e=this.serviceName,t=this.hashtag;switch(e){case"twitter":return"https://twitter.com/hashtag/"+t;case"facebook":return"https://www.facebook.com/hashtag/"+t;case"instagram":return"https://instagram.com/explore/tags/"+t;default:throw new Error("Unknown service name to point hashtag to: ",e)}},getAnchorText:function(){return"#"+this.hashtag}}),s.match.Phone=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.number)throw new Error("`number` cfg required");if(null==e.plusSign)throw new Error("`plusSign` cfg required");this.number=e.number,this.plusSign=e.plusSign},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),s.match.Twitter=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.twitterHandle)throw new Error("`twitterHandle` cfg required");this.twitterHandle=e.twitterHandle},getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),s.match.Url=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),"scheme"!==e.urlMatchType&&"www"!==e.urlMatchType&&"tld"!==e.urlMatchType)throw new Error('`urlMatchType` cfg must be one of: "scheme", "www", or "tld"');if(!e.url)throw new Error("`url` cfg required");if(null==e.protocolUrlMatch)throw new Error("`protocolUrlMatch` cfg required");if(null==e.protocolRelativeMatch)throw new Error("`protocolRelativeMatch` cfg required");if(null==e.stripPrefix)throw new Error("`stripPrefix` cfg required");this.urlMatchType=e.urlMatchType,this.url=e.url,this.protocolUrlMatch=e.protocolUrlMatch,this.protocolRelativeMatch=e.protocolRelativeMatch,this.stripPrefix=e.stripPrefix},urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url="http://"+e,this.protocolPrepended=!0),e},getAnchorHref:function(){return this.getUrl().replace(/&amp;/g,"&")},getAnchorText:function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix&&(e=this.stripUrlPrefix(e)),e=this.removeTrailingSlash(e)},stripUrlPrefix:function(e){return e.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(e){return e.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(e){return"/"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e}}),s.matcher.Matcher=s.Util.extend(Object,{constructor:function(e){if(!e.tagBuilder)throw new Error("`tagBuilder` cfg required");this.tagBuilder=e.tagBuilder},parseMatches:s.Util.abstractMethod}),s.matcher.Email=s.Util.extend(s.matcher.Matcher,{matcherRegex:(e=s.RegexLib.alphaNumericCharsStr,t=new RegExp("["+e+"\\-_';:&=+$.,]+@"),n=s.RegexLib.domainNameRegex,r=s.RegexLib.tldRegex,new RegExp([t.source,n.source,"\\.",r.source].join(""),"gi")),parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.tagBuilder,o=[];null!==(t=n.exec(e));){var i=t[0];o.push(new s.match.Email({tagBuilder:r,matchedText:i,offset:t.index,email:i}))}return o}}),s.matcher.Hashtag=s.Util.extend(s.matcher.Matcher,{matcherRegex:new RegExp("#[_"+s.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+s.RegexLib.alphaNumericCharsStr+"]"),constructor:function(e){s.matcher.Matcher.prototype.constructor.call(this,e),this.serviceName=e.serviceName},parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.nonWordCharRegex,o=this.serviceName,i=this.tagBuilder,a=[];null!==(t=n.exec(e));){var u=t.index,c=e.charAt(u-1);if(0===u||r.test(c)){var l=t[0],p=t[0].slice(1);a.push(new s.match.Hashtag({tagBuilder:i,matchedText:l,offset:u,serviceName:o,hashtag:p}))}}return a}}),s.matcher.Phone=s.Util.extend(s.matcher.Matcher,{matcherRegex:/(?:(\+)?\d{1,3}[-\040.])?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]\d{4}/g,parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.tagBuilder,o=[];null!==(t=n.exec(e));){var i=t[0],a=i.replace(/\D/g,""),u=!!t[1];o.push(new s.match.Phone({tagBuilder:r,matchedText:i,offset:t.index,number:a,plusSign:u}))}return o}}),s.matcher.Twitter=s.Util.extend(s.matcher.Matcher,{matcherRegex:new RegExp("@[_"+s.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),nonWordCharRegex:new RegExp("[^"+s.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.nonWordCharRegex,o=this.tagBuilder,i=[];null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||r.test(u)){var c=t[0],l=t[0].slice(1);i.push(new s.match.Twitter({tagBuilder:o,matchedText:c,offset:a,twitterHandle:l}))}}return i}}),s.matcher.Url=s.Util.extend(s.matcher.Matcher,{matcherRegex:function(){var e=s.RegexLib.domainNameRegex,t=s.RegexLib.tldRegex,n=s.RegexLib.alphaNumericCharsStr,r=new RegExp("["+n+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;]*["+n+"\\-+&@#/%=~_()|'$*\\[\\]]");return new RegExp(["(?:","(",/(?:[A-Za-z][-.+A-Za-z0-9]*:(?![A-Za-z][-.+A-Za-z0-9]*:\/\/)(?!\d+\/?)(?:\/\/)?)/.source,e.source,")","|","(","(//)?",/(?:www\.)/.source,e.source,")","|","(","(//)?",e.source+"\\.",t.source,")",")","(?:"+r.source+")?"].join(""),"gi")}(),wordCharRegExp:/\w/,openParensRe:/\(/g,closeParensRe:/\)/g,constructor:function(e){if(s.matcher.Matcher.prototype.constructor.call(this,e),this.stripPrefix=e.stripPrefix,null==this.stripPrefix)throw new Error("`stripPrefix` cfg required")},parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.stripPrefix,o=this.tagBuilder,i=[];null!==(t=n.exec(e));){var a=t[0],u=t[1],c=t[2],l=t[3],p=t[5],f=t.index,h=l||p,d=e.charAt(f-1);if(s.matcher.UrlMatchValidator.isValid(a,u)&&!(f>0&&"@"===d||f>0&&h&&this.wordCharRegExp.test(d))){if(this.matchHasUnbalancedClosingParen(a))a=a.substr(0,a.length-1);else{var m=this.matchHasInvalidCharAfterTld(a,u);m>-1&&(a=a.substr(0,m))}var v=u?"scheme":c?"www":"tld",g=!!u;i.push(new s.match.Url({tagBuilder:o,matchedText:a,offset:f,urlMatchType:v,url:a,protocolUrlMatch:g,protocolRelativeMatch:!!h,stripPrefix:r}))}}return i},matchHasUnbalancedClosingParen:function(e){if(")"===e.charAt(e.length-1)){var t=e.match(this.openParensRe),n=e.match(this.closeParensRe);if((t&&t.length||0)<(n&&n.length||0))return!0}return!1},matchHasInvalidCharAfterTld:function(e,t){if(!e)return-1;var n=0;t&&(n=e.indexOf(":"),e=e.slice(n));var r=/^((.?\/\/)?[A-Za-z0-9\u00C0-\u017F\.\-]*[A-Za-z0-9\u00C0-\u017F\-]\.[A-Za-z]+)/.exec(e);return null===r?-1:(n+=r[1].length,e=e.slice(r[1].length),/^[^.A-Za-z:\/?#]/.test(e)?n:-1)}}),s.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z\u00C0-\u017F]/,ipRegex:/[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/,isValid:function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e))},isValidIpAddress:function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},isValidUriScheme:function(e){var t=e.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==t&&"vbscript:"!==t},urlMatchDoesNotHaveProtocolOrDot:function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(e,t){return!(!e||!t||this.hasWordCharAfterProtocolRegex.test(e))}},s.truncate.TruncateEnd=function(e,t,n){return s.Util.ellipsis(e,t,n)},s.truncate.TruncateMiddle=function(e,t,n){if(e.length<=t)return e;var r=t-n.length,o="";return r>0&&(o=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+o).substr(0,t)},s.truncate.TruncateSmart=function(e,t,n){var r=function(e){var t="";return e.scheme&&e.host&&(t+=e.scheme+"://"),e.host&&(t+=e.host),e.path&&(t+="/"+e.path),e.query&&(t+="?"+e.query),e.fragment&&(t+="#"+e.fragment),t},o=function(e,t){var r=t/2,o=Math.ceil(r),i=-1*Math.floor(r),a="";return i<0&&(a=e.substr(i)),e.substr(0,o)+n+a};if(e.length<=t)return e;var i=t-n.length,a=function(e){var t={},n=e,r=n.match(/^([a-z]+):\/\//i);return r&&(t.scheme=r[1],n=n.substr(r[0].length)),(r=n.match(/^(.*?)(?=(\?|#|\/|$))/i))&&(t.host=r[1],n=n.substr(r[0].length)),(r=n.match(/^\/(.*?)(?=(\?|#|$))/i))&&(t.path=r[1],n=n.substr(r[0].length)),(r=n.match(/^\?(.*?)(?=(#|$))/i))&&(t.query=r[1],n=n.substr(r[0].length)),(r=n.match(/^#(.*?)$/i))&&(t.fragment=r[1]),t}(e);if(a.query){var s=a.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);s&&(a.query=a.query.substr(0,s[1].length),e=r(a))}if(e.length<=t)return e;if(a.host&&(a.host=a.host.replace(/^www\./,""),e=r(a)),e.length<=t)return e;var u="";if(a.host&&(u+=a.host),u.length>=i)return a.host.length==t?(a.host.substr(0,t-n.length)+n).substr(0,t):o(u,i).substr(0,t);var c="";if(a.path&&(c+="/"+a.path),a.query&&(c+="?"+a.query),c){if((u+c).length>=i)return(u+c).length==t?(u+c).substr(0,t):(u+o(c,i-u.length)).substr(0,t);u+=c}if(a.fragment){var l="#"+a.fragment;if((u+l).length>=i)return(u+l).length==t?(u+l).substr(0,t):(u+o(l,i-u.length)).substr(0,t);u+=l}if(a.scheme&&a.host){var p=a.scheme+"://";if((u+p).length<i)return(p+u).substr(0,t)}if(u.length<=t)return u;var f="";return i>0&&(f=u.substr(-1*Math.floor(i/2))),(u.substr(0,Math.ceil(i/2))+n+f).substr(0,t)},s})?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){"use strict";var r=n(187),o=n(982),i=[["code",n(983)],["fences",n(984),["paragraph","blockquote","list"]],["blockquote",n(985),["paragraph","blockquote","list"]],["hr",n(986),["paragraph","blockquote","list"]],["list",n(987),["paragraph","blockquote"]],["footnote",n(988),["paragraph"]],["heading",n(989),["paragraph","blockquote"]],["lheading",n(990)],["htmlblock",n(991),["paragraph","blockquote"]],["table",n(993),["paragraph"]],["deflist",n(994),["paragraph"]],["paragraph",n(995)]];function a(){this.ruler=new r;for(var e=0;e<i.length;e++)this.ruler.push(i[e][0],i[e][1],{alt:(i[e][2]||[]).slice()})}a.prototype.tokenize=function(e,t,n){for(var r,o=this.ruler.getRules(""),i=o.length,a=t,s=!1;a<n&&(e.line=a=e.skipEmptyLines(a),!(a>=n))&&!(e.tShift[a]<e.blkIndent);){for(r=0;r<i&&!o[r](e,a,n,!1);r++);if(e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(a=e.line)<n&&e.isEmpty(a)){if(s=!0,++a<n&&"list"===e.parentType&&e.isEmpty(a))break;e.line=a}}};var s=/[\n\t]/g,u=/\r[\n\u0085]|[\u2424\u2028\u0085]/g,c=/\u00a0/g;a.prototype.parse=function(e,t,n,r){var i,a=0,l=0;if(!e)return[];(e=(e=e.replace(c," ")).replace(u,"\n")).indexOf("\t")>=0&&(e=e.replace(s,function(t,n){var r;return 10===e.charCodeAt(n)?(a=n+1,l=0,t):(r="    ".slice((n-a-l)%4),l=n-a+1,r)})),i=new o(e,this,t,n,r),this.tokenize(i,i.line,i.lineMax)},e.exports=a},function(e,t,n){"use strict";function r(e,t,n,r,o){var i,a,s,u,c,l,p;for(this.src=e,this.parser=t,this.options=n,this.env=r,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType="root",this.ddIndent=-1,this.level=0,this.result="",l=0,p=!1,s=u=l=0,c=(a=this.src).length;u<c;u++){if(i=a.charCodeAt(u),!p){if(32===i){l++;continue}p=!0}10!==i&&u!==c-1||(10!==i&&u++,this.bMarks.push(s),this.eMarks.push(u),this.tShift.push(l),p=!1,l=0,s=u+1)}this.bMarks.push(a.length),this.eMarks.push(a.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}r.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},r.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},r.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},r.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},r.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},r.prototype.getLines=function(e,t,n,r){var o,i,a,s,u,c=e;if(e>=t)return"";if(c+1===t)return i=this.bMarks[c]+Math.min(this.tShift[c],n),a=r?this.eMarks[c]+1:this.eMarks[c],this.src.slice(i,a);for(s=new Array(t-e),o=0;c<t;c++,o++)(u=this.tShift[c])>n&&(u=n),u<0&&(u=0),i=this.bMarks[c]+u,a=c+1<t||r?this.eMarks[c]+1:this.eMarks[c],s[o]=this.src.slice(i,a);return s.join("")},e.exports=r},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.tShift[r]-e.blkIndent>=4))break;o=++r}return e.line=r,e.tokens.push({type:"code",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c=!1,l=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(l+3>p)return!1;if(126!==(o=e.src.charCodeAt(l))&&96!==o)return!1;if(u=l,(i=(l=e.skipChars(l,o))-u)<3)return!1;if((a=e.src.slice(l,p).trim()).indexOf("`")>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((l=u=e.bMarks[s]+e.tShift[s])<(p=e.eMarks[s])&&e.tShift[s]<e.blkIndent);)if(e.src.charCodeAt(l)===o&&!(e.tShift[s]-e.blkIndent>=4||(l=e.skipChars(l,o))-u<i||(l=e.skipSpaces(l))<p)){c=!0;break}return i=e.tShift[t],e.line=s+(c?1:0),e.tokens.push({type:"fence",params:a,content:e.getLines(t+1,s,i,!0),lines:[t,e.line],level:e.level}),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c,l,p,f,h,d,m=e.bMarks[t]+e.tShift[t],v=e.eMarks[t];if(m>v)return!1;if(62!==e.src.charCodeAt(m++))return!1;if(e.level>=e.options.maxNesting)return!1;if(r)return!0;for(32===e.src.charCodeAt(m)&&m++,u=e.blkIndent,e.blkIndent=0,s=[e.bMarks[t]],e.bMarks[t]=m,i=(m=m<v?e.skipSpaces(m):m)>=v,a=[e.tShift[t]],e.tShift[t]=m-e.bMarks[t],p=e.parser.ruler.getRules("blockquote"),o=t+1;o<n&&!((m=e.bMarks[o]+e.tShift[o])>=(v=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(m++)){if(i)break;for(d=!1,f=0,h=p.length;f<h;f++)if(p[f](e,o,n,!0)){d=!0;break}if(d)break;s.push(e.bMarks[o]),a.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(m)&&m++,s.push(e.bMarks[o]),e.bMarks[o]=m,i=(m=m<v?e.skipSpaces(m):m)>=v,a.push(e.tShift[o]),e.tShift[o]=m-e.bMarks[o];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:l=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,l[1]=e.line,f=0;f<a.length;f++)e.bMarks[f+t]=s[f],e.tShift[f+t]=a[f];return e.blkIndent=u,!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s=e.bMarks[t],u=e.eMarks[t];if((s+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(s++))&&45!==o&&95!==o)return!1;for(i=1;s<u;){if((a=e.src.charCodeAt(s++))!==o&&32!==a)return!1;a===o&&i++}return!(i<3)&&(!!r||(e.line=t+1,e.tokens.push({type:"hr",lines:[t,e.line],level:e.level}),!0))}},function(e,t,n){"use strict";function r(e,t){var n,r,o;return(r=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(n=e.src.charCodeAt(r++))&&45!==n&&43!==n?-1:r<o&&32!==e.src.charCodeAt(r)?-1:r}function o(e,t){var n,r=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(r+1>=o)return-1;if((n=e.src.charCodeAt(r++))<48||n>57)return-1;for(;;){if(r>=o)return-1;if(!((n=e.src.charCodeAt(r++))>=48&&n<=57)){if(41===n||46===n)break;return-1}}return r<o&&32!==e.src.charCodeAt(r)?-1:r}e.exports=function(e,t,n,i){var a,s,u,c,l,p,f,h,d,m,v,g,y,b,_,w,x,E,S,C,k,O=!0;if((h=o(e,t))>=0)g=!0;else{if(!((h=r(e,t))>=0))return!1;g=!1}if(e.level>=e.options.maxNesting)return!1;if(v=e.src.charCodeAt(h-1),i)return!0;for(b=e.tokens.length,g?(f=e.bMarks[t]+e.tShift[t],m=Number(e.src.substr(f,h-f-1)),e.tokens.push({type:"ordered_list_open",order:m,lines:w=[t,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:w=[t,0],level:e.level++}),a=t,_=!1,E=e.parser.ruler.getRules("list");!(!(a<n)||((d=(y=e.skipSpaces(h))>=e.eMarks[a]?1:y-h)>4&&(d=1),d<1&&(d=1),s=h-e.bMarks[a]+d,e.tokens.push({type:"list_item_open",lines:x=[t,0],level:e.level++}),c=e.blkIndent,l=e.tight,u=e.tShift[t],p=e.parentType,e.tShift[t]=y-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType="list",e.parser.tokenize(e,t,n,!0),e.tight&&!_||(O=!1),_=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=c,e.tShift[t]=u,e.tight=l,e.parentType=p,e.tokens.push({type:"list_item_close",level:--e.level}),a=t=e.line,x[1]=a,y=e.bMarks[t],a>=n)||e.isEmpty(a)||e.tShift[a]<e.blkIndent);){for(k=!1,S=0,C=E.length;S<C;S++)if(E[S](e,a,n,!0)){k=!0;break}if(k)break;if(g){if((h=o(e,a))<0)break}else if((h=r(e,a))<0)break;if(v!==e.src.charCodeAt(h-1))break}return e.tokens.push({type:g?"ordered_list_close":"bullet_list_close",level:--e.level}),w[1]=a,e.line=a,O&&function(e,t){var n,r,o=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===o&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}(e,b),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c=e.bMarks[t]+e.tShift[t],l=e.eMarks[t];if(c+4>l)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(s=c+2;s<l;s++){if(32===e.src.charCodeAt(s))return!1;if(93===e.src.charCodeAt(s))break}return s!==c+2&&(!(s+1>=l||58!==e.src.charCodeAt(++s))&&(!!r||(s++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(c+2,s-2),e.env.footnotes.refs[":"+u]=-1,e.tokens.push({type:"footnote_reference_open",label:u,level:e.level++}),o=e.bMarks[t],i=e.tShift[t],a=e.parentType,e.tShift[t]=e.skipSpaces(s)-s,e.bMarks[t]=s,e.blkIndent+=4,e.parentType="footnote",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,n,!0),e.parentType=a,e.blkIndent-=4,e.tShift[t]=i,e.bMarks[t]=o,e.tokens.push({type:"footnote_reference_close",level:--e.level}),!0)))}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(s>=u)return!1;if(35!==(o=e.src.charCodeAt(s))||s>=u)return!1;for(i=1,o=e.src.charCodeAt(++s);35===o&&s<u&&i<=6;)i++,o=e.src.charCodeAt(++s);return!(i>6||s<u&&32!==o)&&(!!r||(u=e.skipCharsBack(u,32,s),(a=e.skipCharsBack(u,35,s))>s&&32===e.src.charCodeAt(a-1)&&(u=a),e.line=t+1,e.tokens.push({type:"heading_open",hLevel:i,lines:[t,e.line],level:e.level}),s<u&&e.tokens.push({type:"inline",content:e.src.slice(s,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"heading_close",hLevel:i,level:e.level}),!0))}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,o,i,a=t+1;return!(a>=n)&&(!(e.tShift[a]<e.blkIndent)&&(!(e.tShift[a]-e.blkIndent>3)&&(!((o=e.bMarks[a]+e.tShift[a])>=(i=e.eMarks[a]))&&((45===(r=e.src.charCodeAt(o))||61===r)&&(o=e.skipChars(o,r),!((o=e.skipSpaces(o))<i)&&(o=e.bMarks[t]+e.tShift[t],e.line=a+1,e.tokens.push({type:"heading_open",hLevel:61===r?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:"heading_close",hLevel:61===r?1:2,level:e.level}),!0))))))}},function(e,t,n){"use strict";var r=n(992),o=/^<([a-zA-Z]{1,15})[\s\/>]/,i=/^<\/([a-zA-Z]{1,15})[\s>]/;e.exports=function(e,t,n,a){var s,u,c,l=e.bMarks[t],p=e.eMarks[t],f=e.tShift[t];if(l+=f,!e.options.html)return!1;if(f>3||l+2>=p)return!1;if(60!==e.src.charCodeAt(l))return!1;if(33===(s=e.src.charCodeAt(l+1))||63===s){if(a)return!0}else{if(47!==s&&!function(e){var t=32|e;return t>=97&&t<=122}(s))return!1;if(47===s){if(!(u=e.src.slice(l,p).match(i)))return!1}else if(!(u=e.src.slice(l,p).match(o)))return!1;if(!0!==r[u[1].toLowerCase()])return!1;if(a)return!0}for(c=t+1;c<e.lineMax&&!e.isEmpty(c);)c++;return e.line=c,e.tokens.push({type:"htmlblock",level:e.level,lines:[t,e.line],content:e.getLines(t,c,0,!0)}),!0}},function(e,t,n){"use strict";var r={};["article","aside","button","blockquote","body","canvas","caption","col","colgroup","dd","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","iframe","li","map","object","ol","output","p","pre","progress","script","section","style","table","tbody","td","textarea","tfoot","th","tr","thead","ul","video"].forEach(function(e){r[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}e.exports=function(e,t,n,o){var i,a,s,u,c,l,p,f,h,d,m;if(t+2>n)return!1;if(c=t+1,e.tShift[c]<e.blkIndent)return!1;if((s=e.bMarks[c]+e.tShift[c])>=e.eMarks[c])return!1;if(124!==(i=e.src.charCodeAt(s))&&45!==i&&58!==i)return!1;if(a=r(e,t+1),!/^[-:| ]+$/.test(a))return!1;if((l=a.split("|"))<=2)return!1;for(f=[],u=0;u<l.length;u++){if(!(h=l[u].trim())){if(0===u||u===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?f.push(58===h.charCodeAt(0)?"center":"right"):58===h.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(a=r(e,t).trim()).indexOf("|"))return!1;if(l=a.replace(/^\||\|$/g,"").split("|"),f.length!==l.length)return!1;if(o)return!0;for(e.tokens.push({type:"table_open",lines:d=[t,0],level:e.level++}),e.tokens.push({type:"thead_open",lines:[t,t+1],level:e.level++}),e.tokens.push({type:"tr_open",lines:[t,t+1],level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"th_open",align:f[u],lines:[t,t+1],level:e.level++}),e.tokens.push({type:"inline",content:l[u].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:"th_close",level:--e.level});for(e.tokens.push({type:"tr_close",level:--e.level}),e.tokens.push({type:"thead_close",level:--e.level}),e.tokens.push({type:"tbody_open",lines:m=[t+2,0],level:e.level++}),c=t+2;c<n&&!(e.tShift[c]<e.blkIndent)&&-1!==(a=r(e,c).trim()).indexOf("|");c++){for(l=a.replace(/^\||\|$/g,"").split("|"),e.tokens.push({type:"tr_open",level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"td_open",align:f[u],level:e.level++}),p=l[u].substring(124===l[u].charCodeAt(0)?1:0,124===l[u].charCodeAt(l[u].length-1)?l[u].length-1:l[u].length).trim(),e.tokens.push({type:"inline",content:p,level:e.level,children:[]}),e.tokens.push({type:"td_close",level:--e.level});e.tokens.push({type:"tr_close",level:--e.level})}return e.tokens.push({type:"tbody_close",level:--e.level}),e.tokens.push({type:"table_close",level:--e.level}),d[1]=m[1]=c,e.line=c,!0}},function(e,t,n){"use strict";function r(e,t){var n,r,o=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];return o>=i?-1:126!==(r=e.src.charCodeAt(o++))&&58!==r?-1:o===(n=e.skipSpaces(o))?-1:n>=i?-1:n}e.exports=function(e,t,n,o){var i,a,s,u,c,l,p,f,h,d,m,v,g,y;if(o)return!(e.ddIndent<0)&&r(e,t)>=0;if(p=t+1,e.isEmpty(p)&&++p>n)return!1;if(e.tShift[p]<e.blkIndent)return!1;if((i=r(e,p))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:"dl_open",lines:c=[t,0],level:e.level++}),s=t,a=p;e:for(;;){for(y=!0,g=!1,e.tokens.push({type:"dt_open",lines:[s,s],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(s,s+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[s,s],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:u=[p,0],level:e.level++}),v=e.tight,h=e.ddIndent,f=e.blkIndent,m=e.tShift[a],d=e.parentType,e.blkIndent=e.ddIndent=e.tShift[a]+2,e.tShift[a]=i-e.bMarks[a],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,a,n,!0),e.tight&&!g||(y=!1),g=e.line-a>1&&e.isEmpty(e.line-1),e.tShift[a]=m,e.tight=v,e.parentType=d,e.blkIndent=f,e.ddIndent=h,e.tokens.push({type:"dd_close",level:--e.level}),u[1]=p=e.line,p>=n)break e;if(e.tShift[p]<e.blkIndent)break e;if((i=r(e,p))<0)break;a=p}if(p>=n)break;if(s=p,e.isEmpty(s))break;if(e.tShift[s]<e.blkIndent)break;if((a=s+1)>=n)break;if(e.isEmpty(a)&&a++,a>=n)break;if(e.tShift[a]<e.blkIndent)break;if((i=r(e,a))<0)break}return e.tokens.push({type:"dl_close",level:--e.level}),c[1]=p,e.line=p,y&&function(e,t){var n,r,o=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===o&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}(e,l),!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s,u=t+1;if(u<(n=e.lineMax)&&!e.isEmpty(u))for(s=e.parser.ruler.getRules("paragraph");u<n&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,i=0,a=s.length;i<a;i++)if(s[i](e,u,n,!0)){o=!0;break}if(o)break}return r=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,r.length&&(e.tokens.push({type:"paragraph_open",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:r,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"paragraph_close",tight:!1,level:e.level})),!0}},function(e,t,n){"use strict";var r=n(187),o=n(261),i=n(37),a=[["text",n(997)],["newline",n(998)],["escape",n(999)],["backticks",n(1e3)],["del",n(1001)],["ins",n(1002)],["mark",n(1003)],["emphasis",n(1004)],["sub",n(1005)],["sup",n(1006)],["links",n(1007)],["footnote_inline",n(1008)],["footnote_ref",n(1009)],["autolink",n(1010)],["htmltag",n(1012)],["entity",n(1014)]];function s(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);this.validateLink=u}function u(e){var t=e.trim().toLowerCase();return-1===(t=i.replaceEntities(t)).indexOf(":")||-1===["vbscript","javascript","file","data"].indexOf(t.split(":")[0])}s.prototype.skipToken=function(e){var t,n,r=this.ruler.getRules(""),o=r.length,i=e.pos;if((n=e.cacheGet(i))>0)e.pos=n;else{for(t=0;t<o;t++)if(r[t](e,!0))return void e.cacheSet(i,e.pos);e.pos++,e.cacheSet(i,e.pos)}},s.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),o=r.length,i=e.posMax;e.pos<i;){for(n=0;n<o&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},s.prototype.parse=function(e,t,n,r){var i=new o(e,this,t,n,r);this.tokenize(i)},e.exports=s},function(e,t,n){"use strict";function r(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}e.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(n=e.pending.length-1,r=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(var i=n-2;i>=0;i--)if(32!==e.pending.charCodeAt(i)){e.pending=e.pending.substring(0,i+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(o++;o<r&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}},function(e,t,n){"use strict";for(var r=[],o=0;o<256;o++)r.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){r[e.charCodeAt(0)]=1}),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==r[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push({type:"hardbreak",level:e.level}),o++;o<i&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.pos;if(96!==e.src.charCodeAt(s))return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(o=e.src.slice(n,s),i=a=s;-1!==(i=e.src.indexOf("`",a));){for(a=i+1;a<r&&96===e.src.charCodeAt(a);)a++;if(a-i===o.length)return t||e.push({type:"code",content:e.src.slice(s,i).replace(/[ \n]+/g," ").trim(),block:!1,level:e.level}),e.pos=a,!0}return t||(e.pending+=o),e.pos+=o.length,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),126===i)return!1;if(126===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&126===e.src.charCodeAt(r);)r++;if(r>u+3)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),126!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&126!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"del_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"del_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),43===i)return!1;if(43===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&43===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),43!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&43!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"ins_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"ins_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),61===i)return!1;if(61===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&61===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),61!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&61!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"mark_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"mark_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";function r(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function o(e,t){var n,o,i,a=t,s=!0,u=!0,c=e.posMax,l=e.src.charCodeAt(t);for(n=t>0?e.src.charCodeAt(t-1):-1;a<c&&e.src.charCodeAt(a)===l;)a++;return a>=c&&(s=!1),(i=a-t)>=4?s=u=!1:(32!==(o=a<c?e.src.charCodeAt(a):-1)&&10!==o||(s=!1),32!==n&&10!==n||(u=!1),95===l&&(r(n)&&(s=!1),r(o)&&(u=!1))),{can_open:s,can_close:u,delims:i}}e.exports=function(e,t){var n,r,i,a,s,u,c,l=e.posMax,p=e.pos,f=e.src.charCodeAt(p);if(95!==f&&42!==f)return!1;if(t)return!1;if(n=(c=o(e,p)).delims,!c.can_open)return e.pos+=n,t||(e.pending+=e.src.slice(p,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=p+n,u=[n];e.pos<l;)if(e.src.charCodeAt(e.pos)!==f)e.parser.skipToken(e);else{if(r=(c=o(e,e.pos)).delims,c.can_close){for(a=u.pop(),s=r;a!==s;){if(s<a){u.push(a-s);break}if(s-=a,0===u.length)break;e.pos+=a,a=u.pop()}if(0===u.length){n=a,i=!0;break}e.pos+=r;continue}c.can_open&&u.push(r),e.pos+=r}return i?(e.posMax=e.pos,e.pos=p+n,t||(2!==n&&3!==n||e.push({type:"strong_open",level:e.level++}),1!==n&&3!==n||e.push({type:"em_open",level:e.level++}),e.parser.tokenize(e),1!==n&&3!==n||e.push({type:"em_close",level:--e.level}),2!==n&&3!==n||e.push({type:"strong_close",level:--e.level})),e.pos=e.posMax+n,e.posMax=l,!0):(e.pos=p,!1)}},function(e,t,n){"use strict";var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var n,o,i=e.posMax,a=e.pos;if(126!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=i)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<i;){if(126===e.src.charCodeAt(e.pos)){n=!0;break}e.parser.skipToken(e)}return n&&a+1!==e.pos?(o=e.src.slice(a+1,e.pos)).match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sub",level:e.level,content:o.replace(r,"$1")}),e.pos=e.posMax+1,e.posMax=i,!0):(e.pos=a,!1)}},function(e,t,n){"use strict";var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var n,o,i=e.posMax,a=e.pos;if(94!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=i)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<i;){if(94===e.src.charCodeAt(e.pos)){n=!0;break}e.parser.skipToken(e)}return n&&a+1!==e.pos?(o=e.src.slice(a+1,e.pos)).match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sup",level:e.level,content:o.replace(r,"$1")}),e.pos=e.posMax+1,e.posMax=i,!0):(e.pos=a,!1)}},function(e,t,n){"use strict";var r=n(188),o=n(458),i=n(460),a=n(461);e.exports=function(e,t){var n,s,u,c,l,p,f,h,d=!1,m=e.pos,v=e.posMax,g=e.pos,y=e.src.charCodeAt(g);if(33===y&&(d=!0,y=e.src.charCodeAt(++g)),91!==y)return!1;if(e.level>=e.options.maxNesting)return!1;if(n=g+1,(s=r(e,g))<0)return!1;if((p=s+1)<v&&40===e.src.charCodeAt(p)){for(p++;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p>=v)return!1;for(g=p,o(e,p)?(c=e.linkContent,p=e.pos):c="",g=p;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p<v&&g!==p&&i(e,p))for(l=e.linkContent,p=e.pos;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);else l="";if(p>=v||41!==e.src.charCodeAt(p))return e.pos=m,!1;p++}else{if(e.linkLevel>0)return!1;for(;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p<v&&91===e.src.charCodeAt(p)&&(g=p+1,(p=r(e,p))>=0?u=e.src.slice(g,p++):p=g-1),u||(void 0===u&&(p=s+1),u=e.src.slice(n,s)),!(f=e.env.references[a(u)]))return e.pos=m,!1;c=f.href,l=f.title}return t||(e.pos=n,e.posMax=s,d?e.push({type:"image",src:c,title:l,alt:e.src.substr(n,s-n),level:e.level}):(e.push({type:"link_open",href:c,title:l,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=p,e.posMax=v,!0}},function(e,t,n){"use strict";var r=n(188);e.exports=function(e,t){var n,o,i,a,s=e.posMax,u=e.pos;return!(u+2>=s)&&(94===e.src.charCodeAt(u)&&(91===e.src.charCodeAt(u+1)&&(!(e.level>=e.options.maxNesting)&&(n=u+2,!((o=r(e,u+1))<0)&&(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),i=e.env.footnotes.list.length,e.pos=n,e.posMax=o,e.push({type:"footnote_ref",id:i,level:e.level}),e.linkLevel++,a=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[i]={tokens:e.tokens.splice(a)},e.linkLevel--),e.pos=o+1,e.posMax=s,!0)))))}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a=e.posMax,s=e.pos;if(s+3>a)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(s))return!1;if(94!==e.src.charCodeAt(s+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(r=s+2;r<a;r++){if(32===e.src.charCodeAt(r))return!1;if(10===e.src.charCodeAt(r))return!1;if(93===e.src.charCodeAt(r))break}return r!==s+2&&(!(r>=a)&&(r++,n=e.src.slice(s+2,r-1),void 0!==e.env.footnotes.refs[":"+n]&&(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+n]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:n,count:0},e.env.footnotes.refs[":"+n]=o):o=e.env.footnotes.refs[":"+n],i=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:"footnote_ref",id:o,subId:i,level:e.level})),e.pos=r,e.posMax=a,!0)))}},function(e,t,n){"use strict";var r=n(1011),o=n(459),i=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,s,u,c,l,p=e.pos;return 60===e.src.charCodeAt(p)&&(!((n=e.src.slice(p)).indexOf(">")<0)&&((s=n.match(a))?!(r.indexOf(s[1].toLowerCase())<0)&&(c=s[0].slice(1,-1),l=o(c),!!e.parser.validateLink(c)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=s[0].length,!0)):!!(u=n.match(i))&&(c=u[0].slice(1,-1),l=o("mailto:"+c),!!e.parser.validateLink(l)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=u[0].length,!0))))}},function(e,t,n){"use strict";e.exports=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"]},function(e,t,n){"use strict";var r=n(1013).HTML_TAG_RE;e.exports=function(e,t){var n,o,i,a=e.pos;return!!e.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=i)&&(!(33!==(n=e.src.charCodeAt(a+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(o=e.src.slice(a).match(r))&&(t||e.push({type:"htmltag",content:e.src.slice(a,a+o[0].length),level:e.level}),e.pos+=o[0].length,!0))))}},function(e,t,n){"use strict";function r(e,t){return e=e.source,t=t||"",function n(r,o){return r?(o=o.source||o,e=e.replace(r,o),n):new RegExp(e,t)}}var o=r(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",/[^"'=<>`\x00-\x20]+/)("single_quoted",/'[^']*'/)("double_quoted",/"[^"]*"/)(),i=r(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)("attr_value",o)(),a=r(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",i)(),s=r(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",a)("close_tag",/<\/[A-Za-z][A-Za-z0-9]*\s*>/)("comment",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)("processing",/<[?].*?[?]>/)("declaration",/<![A-Z]+\s+[^>]*>/)("cdata",/<!\[CDATA\[[\s\S]*?\]\]>/)();e.exports.HTML_TAG_RE=s},function(e,t,n){"use strict";var r=n(457),o=n(37).has,i=n(37).isValidEntityCode,a=n(37).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,u=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,l=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(l))return!1;if(l+1<p)if(35===e.src.charCodeAt(l+1)){if(c=e.src.slice(l).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=i(n)?a(n):a(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(l).match(u))&&o(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","replacements","linkify","smartquotes","references","abbr2","footnote_tail"]},block:{rules:["blockquote","code","fences","footnote","heading","hr","htmlblock","lheading","list","paragraph","table"]},inline:{rules:["autolink","backticks","del","emphasis","entity","escape","footnote_ref","htmltag","links","newline","text"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","abbr2"]},block:{rules:["blockquote","code","fences","heading","hr","htmlblock","lheading","list","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","htmltag","links","newline","text"]}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebounceInput=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=s(n(0)),a=s(n(1019));function s(e){return e&&e.__esModule?e:{default:e}}(t.DebounceInput=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.onChange=function(e){e.persist();var t=n.state.value;n.setState({value:e.target.value},function(){var o=n.state.value;o.length>=n.props.minLength?n.notify(e):t.length>o.length&&n.notify(r({},e,{target:r({},e.target,{value:""})}))})},n.onKeyDown=function(e){var t=n.props.onKeyDown;"Enter"===e.key&&n.forceNotify(e),t&&t(e)},n.onBlur=function(e){var t=n.props.onBlur;n.forceNotify(e),t&&t(e)},n.createNotifier=function(e){if(e<0)n.notify=function(){return null};else if(0===e)n.notify=n.doNotify;else{var t=(0,a.default)(function(e){n.isDebouncing=!1,n.doNotify(e)},e);n.notify=function(e){n.isDebouncing=!0,t(e)},n.flush=function(){return t.flush()},n.cancel=function(){n.isDebouncing=!1,t.cancel()}}},n.doNotify=function(){var e=n.props.onChange;e.apply(void 0,arguments)},n.forceNotify=function(e){if(n.isDebouncing){n.cancel&&n.cancel();var t=n.state.value,o=n.props.minLength;t.length>=o?n.doNotify(e):n.doNotify(r({},e,{target:r({},e.target,{value:t})}))}},n.state={value:e.value||""},n.isDebouncing=!1,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default.PureComponent),o(t,[{key:"componentWillMount",value:function(){this.createNotifier(this.props.debounceTimeout)}},{key:"componentWillReceiveProps",value:function(e){var t=e.value,n=e.debounceTimeout;this.isDebouncing||(void 0!==t&&this.state.value!==t&&this.setState({value:t}),n!==this.props.debounceTimeout&&this.createNotifier(n))}},{key:"componentWillUnmount",value:function(){this.flush&&this.flush()}},{key:"render",value:function(){var e=this.props,t=e.element,n=(e.onChange,e.value,e.minLength,e.debounceTimeout,e.forceNotifyByEnter),o=e.forceNotifyOnBlur,a=e.onKeyDown,s=e.onBlur,u=e.inputRef,c=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["element","onChange","value","minLength","debounceTimeout","forceNotifyByEnter","forceNotifyOnBlur","onKeyDown","onBlur","inputRef"]),l=void 0;l=n?{onKeyDown:this.onKeyDown}:a?{onKeyDown:a}:{};var p=void 0;p=o?{onBlur:this.onBlur}:s?{onBlur:s}:{};var f=u?{ref:u}:{};return i.default.createElement(t,r({},c,{onChange:this.onChange,value:this.state.value},l,p,f))}}]),t}()).defaultProps={element:"input",type:"text",onKeyDown:void 0,onBlur:void 0,value:void 0,minLength:0,debounceTimeout:100,forceNotifyByEnter:!0,forceNotifyOnBlur:!0,inputRef:void 0}},function(e,t,n){(function(t){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt,l="object"==typeof t&&t&&t.Object===Object&&t,p="object"==typeof self&&self&&self.Object===Object&&self,f=l||p||Function("return this")(),h=Object.prototype.toString,d=Math.max,m=Math.min,v=function(){return f.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&h.call(e)==o}(e))return r;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var n=s.test(e);return n||u.test(e)?c(e.slice(2),n?2:8):a.test(e)?r:+e}e.exports=function(e,t,r){var o,i,a,s,u,c,l=0,p=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(n);function b(t){var n=o,r=i;return o=i=void 0,l=t,s=e.apply(r,n)}function _(e){var n=e-c;return void 0===c||n>=t||n<0||f&&e-l>=a}function w(){var e=v();if(_(e))return x(e);u=setTimeout(w,function(e){var n=t-(e-c);return f?m(n,a-(e-l)):n}(e))}function x(e){return u=void 0,h&&o?b(e):(o=i=void 0,s)}function E(){var e=v(),n=_(e);if(o=arguments,i=this,c=e,n){if(void 0===u)return function(e){return l=e,u=setTimeout(w,t),p?b(e):s}(c);if(f)return u=setTimeout(w,t),b(c)}return void 0===u&&(u=setTimeout(w,t)),s}return t=y(t)||0,g(r)&&(p=!!r.leading,a=(f="maxWait"in r)?d(y(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),E.cancel=function(){void 0!==u&&clearTimeout(u),l=0,o=c=i=u=void 0},E.flush=function(){return void 0===u?s:x(v())},E}}).call(this,n(42))},function(e,t,n){var r={"./all.js":320,"./auth/actions.js":67,"./auth/index.js":282,"./auth/reducers.js":283,"./auth/selectors.js":284,"./auth/spec-wrap-actions.js":285,"./configs/actions.js":117,"./configs/helpers.js":144,"./configs/index.js":321,"./configs/reducers.js":290,"./configs/selectors.js":289,"./configs/spec-actions.js":288,"./deep-linking/helpers.js":146,"./deep-linking/index.js":291,"./deep-linking/layout.js":292,"./deep-linking/operation-tag-wrapper.jsx":294,"./deep-linking/operation-wrapper.jsx":293,"./download-url.js":287,"./err/actions.js":43,"./err/error-transformers/hook.js":94,"./err/error-transformers/transformers/not-of-type.js":267,"./err/error-transformers/transformers/parameter-oneof.js":268,"./err/index.js":265,"./err/reducers.js":266,"./err/selectors.js":269,"./filter/index.js":295,"./filter/opsFilter.js":296,"./layout/actions.js":74,"./layout/index.js":270,"./layout/reducers.js":271,"./layout/selectors.js":272,"./logs/index.js":279,"./oas3/actions.js":59,"./oas3/auth-extensions/wrap-selectors.js":300,"./oas3/components/callbacks.jsx":303,"./oas3/components/http-auth.jsx":309,"./oas3/components/index.js":302,"./oas3/components/operation-link.jsx":305,"./oas3/components/operation-servers.jsx":310,"./oas3/components/request-body-editor.jsx":308,"./oas3/components/request-body.jsx":304,"./oas3/components/servers-container.jsx":307,"./oas3/components/servers.jsx":306,"./oas3/helpers.jsx":24,"./oas3/index.js":298,"./oas3/reducers.js":319,"./oas3/selectors.js":318,"./oas3/spec-extensions/selectors.js":301,"./oas3/spec-extensions/wrap-selectors.js":299,"./oas3/wrap-components/auth-item.jsx":313,"./oas3/wrap-components/index.js":311,"./oas3/wrap-components/json-schema-string.jsx":317,"./oas3/wrap-components/markdown.jsx":312,"./oas3/wrap-components/model.jsx":316,"./oas3/wrap-components/online-validator-badge.js":315,"./oas3/wrap-components/version-stamp.jsx":314,"./on-complete/index.js":297,"./samples/fn.js":116,"./samples/index.js":278,"./spec/actions.js":29,"./spec/index.js":273,"./spec/reducers.js":274,"./spec/selectors.js":66,"./spec/wrap-actions.js":276,"./swagger-js/configs-wrap-actions.js":281,"./swagger-js/index.js":280,"./util/index.js":286,"./view/index.js":277,"./view/root-injects.jsx":145};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=1020},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"Container",function(){return jt}),n.d(r,"Col",function(){return It}),n.d(r,"Row",function(){return Mt}),n.d(r,"Button",function(){return Nt}),n.d(r,"TextArea",function(){return Rt}),n.d(r,"Input",function(){return Dt}),n.d(r,"Select",function(){return Lt}),n.d(r,"Link",function(){return Ut}),n.d(r,"Collapse",function(){return Ft});var o={};n.r(o),n.d(o,"JsonSchemaForm",function(){return Tn}),n.d(o,"JsonSchema_string",function(){return jn}),n.d(o,"JsonSchema_array",function(){return Pn}),n.d(o,"JsonSchema_boolean",function(){return In}),n.d(o,"JsonSchema_object",function(){return Mn});var i=n(28),a=n.n(i),s=n(17),u=n.n(s),c=n(26),l=n.n(c),p=n(75),f=n.n(p),h=n(14),d=n.n(h),m=n(2),v=n.n(m),g=n(16),y=n.n(g),b=n(4),_=n.n(b),w=n(5),x=n.n(w),E=n(0),S=n.n(E),C=n(120),k=n(1),O=n.n(k),A=n(464),T=n(115),j=n.n(T),P=n(142),I=n.n(P),M=n(43),N=n(18),R=n.n(N),D=n(3),L=function(e){return e};var U=function(){function e(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_()(this,e),f()(this,{state:{},plugins:[],system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},o),this.getSystem=this._getSystem.bind(this),this.store=(t=L,n=Object(k.fromJS)(this.state),r=this.getSystem,function(e,t,n){var r=[Object(D.H)(n)],o=R.a.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||C.compose;return Object(C.createStore)(e,t,o(C.applyMiddleware.apply(void 0,r)))}(t,n,r)),this.buildSystem(!1),this.register(this.plugins)}return x()(e,[{key:"getStore",value:function(){return this.store}},{key:"register",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=q(e,this.getSystem());z(this.system,n),t&&this.buildSystem();var r=F.call(this.system,e,this.getSystem());r&&this.buildSystem()}},{key:"buildSystem",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getStore().dispatch,n=this.getStore().getState;this.boundSystem=y()({},this.getRootInjects(),this.getWrappedAndBoundActions(t),this.getWrappedAndBoundSelectors(n,this.getSystem),this.getStateThunks(n),this.getFn(),this.getConfigs()),e&&this.rebuildReducer()}},{key:"_getSystem",value:function(){return this.boundSystem}},{key:"getRootInjects",value:function(){return y()({getSystem:this.getSystem,getStore:this.getStore.bind(this),getComponents:this.getComponents.bind(this),getState:this.getStore().getState,getConfigs:this._getConfigs.bind(this),Im:O.a,React:S.a},this.system.rootInjects||{})}},{key:"_getConfigs",value:function(){return this.system.configs}},{key:"getConfigs",value:function(){return{configs:this.system.configs}}},{key:"setConfigs",value:function(e){this.system.configs=e}},{key:"rebuildReducer",value:function(){var e,t,n;this.store.replaceReducer((n=this.system.statePlugins,e=Object(D.w)(n,function(e){return e.reducers}),t=u()(e).reduce(function(t,n){var r;return t[n]=(r=e[n],function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new k.Map,t=arguments.length>1?arguments[1]:void 0;if(!r)return e;var n=r[t.type];if(n){var o=B(n)(e,t);return null===o?e:o}return e}),t},{}),u()(t).length?Object(A.combineReducers)(t):L))}},{key:"getType",value:function(e){var t=e[0].toUpperCase()+e.slice(1);return Object(D.x)(this.system.statePlugins,function(n,r){var o=n[e];if(o)return v()({},r+t,o)})}},{key:"getSelectors",value:function(){return this.getType("selectors")}},{key:"getActions",value:function(){var e=this.getType("actions");return Object(D.w)(e,function(e){return Object(D.x)(e,function(e,t){if(Object(D.p)(e))return v()({},t,e)})})}},{key:"getWrappedAndBoundActions",value:function(e){var t=this,n=this.getBoundActions(e);return Object(D.w)(n,function(e,n){var r=t.system.statePlugins[n.slice(0,-7)].wrapActions;return r?Object(D.w)(e,function(e,n){var o=r[n];return o?(d()(o)||(o=[o]),o.reduce(function(e,n){var r=function(){return n(e,t.getSystem()).apply(void 0,arguments)};if(!Object(D.p)(r))throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)");return B(r)},e||Function.prototype)):e}):e})}},{key:"getWrappedAndBoundSelectors",value:function(e,t){var n=this,r=this.getBoundSelectors(e,t);return Object(D.w)(r,function(t,r){var o=[r.slice(0,-9)],i=n.system.statePlugins[o].wrapSelectors;return i?Object(D.w)(t,function(t,r){var a=i[r];return a?(d()(a)||(a=[a]),a.reduce(function(t,r){var i=function(){for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return r(t,n.getSystem()).apply(void 0,[e().getIn(o)].concat(a))};if(!Object(D.p)(i))throw new TypeError("wrapSelector needs to return a function that returns a new function (ie the wrapped action)");return i},t||Function.prototype)):t}):t})}},{key:"getStates",value:function(e){return u()(this.system.statePlugins).reduce(function(t,n){return t[n]=e.get(n),t},{})}},{key:"getStateThunks",value:function(e){return u()(this.system.statePlugins).reduce(function(t,n){return t[n]=function(){return e().get(n)},t},{})}},{key:"getFn",value:function(){return{fn:this.system.fn}}},{key:"getComponents",value:function(e){var t=this,n=this.system.components[e];return d()(n)?n.reduce(function(e,n){return n(e,t.getSystem())}):void 0!==e?this.system.components[e]:this.system.components}},{key:"getBoundSelectors",value:function(e,t){return Object(D.w)(this.getSelectors(),function(n,r){var o=[r.slice(0,-9)],i=function(){return e().getIn(o)};return Object(D.w)(n,function(e){return function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];var a=B(e).apply(null,[i()].concat(r));return"function"==typeof a&&(a=B(a)(t())),a}})})}},{key:"getBoundActions",value:function(e){e=e||this.getStore().dispatch;var t=this.getActions();return Object(D.w)(t,function(t){return Object(C.bindActionCreators)(function e(t){return"function"!=typeof t?Object(D.w)(t,function(t){return e(t)}):function(){var e=null;try{e=t.apply(void 0,arguments)}catch(t){e={type:M.NEW_THROWN_ERR,error:!0,payload:j()(t)}}finally{return e}}}(t),e)})}},{key:"getMapStateToProps",value:function(){var e=this;return function(){return y()({},e.getSystem())}}},{key:"getMapDispatchToProps",value:function(e){var t=this;return function(n){return f()({},t.getWrappedAndBoundActions(n),t.getFn(),e)}}}]),e}();function q(e,t){return Object(D.s)(e)&&!Object(D.o)(e)?I()({},e):Object(D.q)(e)?q(e(t),t):Object(D.o)(e)?e.map(function(e){return q(e,t)}).reduce(z,{}):{}}function F(e,t){var n=this,r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).hasLoaded;return Object(D.s)(e)&&!Object(D.o)(e)&&"function"==typeof e.afterLoad&&(r=!0,B(e.afterLoad).call(this,t)),Object(D.q)(e)?F.call(this,e(t),t,{hasLoaded:r}):Object(D.o)(e)?e.map(function(e){return F.call(n,e,t,{hasLoaded:r})}):r}function z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Object(D.s)(e))return{};if(!Object(D.s)(t))return e;t.wrapComponents&&(Object(D.w)(t.wrapComponents,function(n,r){var o=e.components&&e.components[r];o&&d()(o)?(e.components[r]=o.concat([n]),delete t.wrapComponents[r]):o&&(e.components[r]=[o,n],delete t.wrapComponents[r])}),u()(t.wrapComponents).length||delete t.wrapComponents);var n=e.statePlugins;if(Object(D.s)(n))for(var r in n){var o=n[r];if(Object(D.s)(o)&&Object(D.s)(o.wrapActions)){var i=o.wrapActions;for(var a in i){var s=i[a];d()(s)||(s=[s],i[a]=s),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapActions&&t.statePlugins[r].wrapActions[a]&&(t.statePlugins[r].wrapActions[a]=i[a].concat(t.statePlugins[r].wrapActions[a]))}}}return f()(e,t)}function B(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).logErrors,n=void 0===t||t;return"function"!=typeof e?e:function(){try{for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e.call.apply(e,[this].concat(r))}catch(e){return n&&console.error(e),null}}}var V=n(265),H=n(270),W=n(273),J=n(277),Y=n(278),K=n(279),G=n(280),$=n(282),Z=n(286),X=n(287),Q=n(321),ee=n(291),te=n(295),ne=n(297),re=n(6),oe=n.n(re),ie=n(7),ae=n.n(ie),se=n(9),ue=n.n(se),ce=n(8),le=n.n(ce),pe=(n(10),n(19),n(53).helpers.opId),fe=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"toggleShown",function(){var e=r.props,t=e.layoutActions,n=e.tag,o=e.operationId,i=e.isShown,a=r.getResolvedSubtree();i||void 0!==a||r.requestResolvedSubtree(),t.show(["operations",n,o],!i)}),v()(ue()(r),"onCancelClick",function(){r.setState({tryItOutEnabled:!r.state.tryItOutEnabled})}),v()(ue()(r),"onTryoutClick",function(){var e=r.props,t=e.specActions,n=e.path,o=e.method;r.setState({tryItOutEnabled:!r.state.tryItOutEnabled}),t.clearValidateParams([n,o])}),v()(ue()(r),"onExecute",function(){r.setState({executeInProgress:!0})}),v()(ue()(r),"getResolvedSubtree",function(){var e=r.props,t=e.specSelectors,n=e.path,o=e.method,i=e.specPath;return i?t.specResolvedSubtree(i.toJS()):t.specResolvedSubtree(["paths",n,o])}),v()(ue()(r),"requestResolvedSubtree",function(){var e=r.props,t=e.specActions,n=e.path,o=e.method,i=e.specPath;return i?t.requestResolvedSubtree(i.toJS()):t.requestResolvedSubtree(["paths",n,o])}),r.state={tryItOutEnabled:!1,executeInProgress:!1},r}return le()(t,e),x()(t,[{key:"mapStateToProps",value:function(e,t){var n=t.op,r=t.layoutSelectors,o=(0,t.getConfigs)(),i=o.docExpansion,a=o.deepLinking,s=o.displayOperationId,u=o.displayRequestDuration,c=o.supportedSubmitMethods,l=r.showSummary(),p=n.getIn(["operation","__originalOperationId"])||n.getIn(["operation","operationId"])||pe(n.get("operation"),t.path,t.method)||n.get("id"),f=["operations",t.tag,p],h=a&&"false"!==a,d=c.indexOf(t.method)>=0&&(void 0===t.allowTryItOut?t.specSelectors.allowTryItOutFor(t.path,t.method):t.allowTryItOut),m=n.getIn(["operation","security"])||t.specSelectors.security();return{operationId:p,isDeepLinkingEnabled:h,showSummary:l,displayOperationId:s,displayRequestDuration:u,allowTryItOut:d,security:m,isAuthorized:t.authSelectors.isAuthorized(m),isShown:r.isShown(f,"full"===i),jumpToKey:"paths.".concat(t.path,".").concat(t.method),response:t.specSelectors.responseFor(t.path,t.method),request:t.specSelectors.requestFor(t.path,t.method)}}},{key:"componentDidMount",value:function(){var e=this.props.isShown,t=this.getResolvedSubtree();e&&void 0===t&&this.requestResolvedSubtree()}},{key:"componentWillReceiveProps",value:function(e){var t=e.response,n=e.isShown,r=this.getResolvedSubtree();t!==this.props.response&&this.setState({executeInProgress:!1}),n&&void 0===r&&this.requestResolvedSubtree()}},{key:"render",value:function(){var e=this.props,t=e.op,n=e.tag,r=e.path,o=e.method,i=e.security,a=e.isAuthorized,s=e.operationId,u=e.showSummary,c=e.isShown,l=e.jumpToKey,p=e.allowTryItOut,f=e.response,h=e.request,d=e.displayOperationId,m=e.displayRequestDuration,v=e.isDeepLinkingEnabled,g=e.specPath,y=e.specSelectors,b=e.specActions,_=e.getComponent,w=e.getConfigs,x=e.layoutSelectors,E=e.layoutActions,C=e.authActions,O=e.authSelectors,A=e.oas3Actions,T=e.oas3Selectors,j=e.fn,P=_("operation"),I=this.getResolvedSubtree()||Object(k.Map)(),M=Object(k.fromJS)({op:I,tag:n,path:r,summary:t.getIn(["operation","summary"])||"",deprecated:I.get("deprecated")||t.getIn(["operation","deprecated"])||!1,method:o,security:i,isAuthorized:a,operationId:s,originalOperationId:I.getIn(["operation","__originalOperationId"]),showSummary:u,isShown:c,jumpToKey:l,allowTryItOut:p,request:h,displayOperationId:d,displayRequestDuration:m,isDeepLinkingEnabled:v,executeInProgress:this.state.executeInProgress,tryItOutEnabled:this.state.tryItOutEnabled});return S.a.createElement(P,{operation:M,response:f,request:h,isShown:c,toggleShown:this.toggleShown,onTryoutClick:this.onTryoutClick,onCancelClick:this.onCancelClick,onExecute:this.onExecute,specPath:g,specActions:b,specSelectors:y,oas3Actions:A,oas3Selectors:T,layoutActions:E,layoutSelectors:x,authActions:C,authSelectors:O,getComponent:_,getConfigs:w,fn:j})}}]),t}(E.PureComponent);v()(fe,"defaultProps",{showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1,displayRequestDuration:!1});var he=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"getLayout",value:function(){var e=this.props,t=e.getComponent,n=e.layoutSelectors.current(),r=t(n,!0);return r||function(){return S.a.createElement("h1",null,' No layout defined for "',n,'" ')}}},{key:"render",value:function(){var e=this.getLayout();return S.a.createElement(e,null)}}]),t}(S.a.Component);he.defaultProps={};var de=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"close",function(){n.props.authActions.showDefinitions(!1)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.authSelectors,n=e.authActions,r=e.getComponent,o=e.errSelectors,i=e.specSelectors,a=e.fn.AST,s=void 0===a?{}:a,u=t.shownDefinitions(),c=r("auths");return S.a.createElement("div",{className:"dialog-ux"},S.a.createElement("div",{className:"backdrop-ux"}),S.a.createElement("div",{className:"modal-ux"},S.a.createElement("div",{className:"modal-dialog-ux"},S.a.createElement("div",{className:"modal-ux-inner"},S.a.createElement("div",{className:"modal-ux-header"},S.a.createElement("h3",null,"Available authorizations"),S.a.createElement("button",{type:"button",className:"close-modal",onClick:this.close},S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:"#close",xlinkHref:"#close"})))),S.a.createElement("div",{className:"modal-ux-content"},u.valueSeq().map(function(e,a){return S.a.createElement(c,{key:a,AST:s,definitions:e,getComponent:r,errSelectors:o,authSelectors:t,authActions:n,specSelectors:i})}))))))}}]),t}(S.a.Component),me=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.isAuthorized,n=e.showPopup,r=e.onClick,o=(0,e.getComponent)("authorizationPopup",!0);return S.a.createElement("div",{className:"auth-wrapper"},S.a.createElement("button",{className:t?"btn authorize locked":"btn authorize unlocked",onClick:r},S.a.createElement("span",null,"Authorize"),S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:t?"#locked":"#unlocked",xlinkHref:t?"#locked":"#unlocked"}))),n&&S.a.createElement(o,null))}}]),t}(S.a.Component),ve=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.authActions,n=e.authSelectors,r=e.specSelectors,o=e.getComponent,i=r.securityDefinitions(),a=n.definitionsToAuthorize(),s=o("authorizeBtn");return i?S.a.createElement(s,{onClick:function(){return t.showDefinitions(a)},isAuthorized:!!n.authorized().size,showPopup:!!n.shownDefinitions(),getComponent:o}):null}}]),t}(S.a.Component),ge=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(e){e.stopPropagation();var t=n.props.onClick;t&&t()}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.isAuthorized;return S.a.createElement("button",{className:e?"authorization__btn locked":"authorization__btn unlocked","aria-label":e?"authorization button locked":"authorization button unlocked",onClick:this.onClick},S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:e?"#locked":"#unlocked",xlinkHref:e?"#locked":"#unlocked"})))}}]),t}(S.a.Component),ye=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onAuthChange",function(e){var t=e.name;r.setState(v()({},t,e))}),v()(ue()(r),"submitAuth",function(e){e.preventDefault(),r.props.authActions.authorize(r.state)}),v()(ue()(r),"logoutClick",function(e){e.preventDefault();var t=r.props,n=t.authActions,o=t.definitions.map(function(e,t){return t}).toArray();n.logout(o)}),v()(ue()(r),"close",function(e){e.preventDefault(),r.props.authActions.showDefinitions(!1)}),r.state={},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.definitions,r=t.getComponent,o=t.authSelectors,i=t.errSelectors,a=r("AuthItem"),s=r("oauth2",!0),u=r("Button"),c=o.authorized(),l=n.filter(function(e,t){return!!c.get(t)}),p=n.filter(function(e){return"oauth2"!==e.get("type")}),f=n.filter(function(e){return"oauth2"===e.get("type")});return S.a.createElement("div",{className:"auth-container"},!!p.size&&S.a.createElement("form",{onSubmit:this.submitAuth},p.map(function(t,n){return S.a.createElement(a,{key:n,schema:t,name:n,getComponent:r,onAuthChange:e.onAuthChange,authorized:c,errSelectors:i})}).toArray(),S.a.createElement("div",{className:"auth-btn-wrapper"},p.size===l.size?S.a.createElement(u,{className:"btn modal-btn auth",onClick:this.logoutClick},"Logout"):S.a.createElement(u,{type:"submit",className:"btn modal-btn auth authorize"},"Authorize"),S.a.createElement(u,{className:"btn modal-btn auth btn-done",onClick:this.close},"Close"))),f&&f.size?S.a.createElement("div",null,S.a.createElement("div",{className:"scope-def"},S.a.createElement("p",null,"Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes."),S.a.createElement("p",null,"API requires the following scopes. Select which ones you want to grant to Swagger UI.")),n.filter(function(e){return"oauth2"===e.get("type")}).map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(s,{authorized:c,schema:e,name:t}))}).toArray()):null)}}]),t}(S.a.Component),be=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t=this.props,n=t.schema,r=t.name,o=t.getComponent,i=t.onAuthChange,a=t.authorized,s=t.errSelectors,u=o("apiKeyAuth"),c=o("basicAuth"),l=n.get("type");switch(l){case"apiKey":e=S.a.createElement(u,{key:r,schema:n,name:r,errSelectors:s,authorized:a,getComponent:o,onChange:i});break;case"basic":e=S.a.createElement(c,{key:r,schema:n,name:r,errSelectors:s,authorized:a,getComponent:o,onChange:i});break;default:e=S.a.createElement("div",{key:r},"Unknown security definition type ",l)}return S.a.createElement("div",{key:"".concat(r,"-jump")},e)}}]),t}(S.a.Component),_e=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.error,t=e.get("level"),n=e.get("message"),r=e.get("source");return S.a.createElement("div",{className:"errors",style:{backgroundColor:"#ffeeee",color:"red",margin:"1em"}},S.a.createElement("b",{style:{textTransform:"capitalize",marginRight:"1em"}},r," ",t),S.a.createElement("span",null,n))}}]),t}(S.a.Component),we=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t=r.props.onChange,n=e.target.value,o=y()({},r.state,{value:n});r.setState(o),t(o)});var o=r.props,i=o.name,a=o.schema,s=r.getValue();return r.state={name:i,schema:a,value:s},r}return le()(t,e),x()(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,o=e.name,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=this.getValue(),f=r.allErrors().filter(function(e){return e.get("authId")===o});return S.a.createElement("div",null,S.a.createElement("h4",null,S.a.createElement("code",null,o||t.get("name")),"  (apiKey)",S.a.createElement(l,{path:["securityDefinitions",o]})),p&&S.a.createElement("h6",null,"Authorized"),S.a.createElement(a,null,S.a.createElement(c,{source:t.get("description")})),S.a.createElement(a,null,S.a.createElement("p",null,"Name: ",S.a.createElement("code",null,t.get("name")))),S.a.createElement(a,null,S.a.createElement("p",null,"In: ",S.a.createElement("code",null,t.get("in")))),S.a.createElement(a,null,S.a.createElement("label",null,"Value:"),p?S.a.createElement("code",null," ****** "):S.a.createElement(s,null,S.a.createElement(i,{type:"text",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return S.a.createElement(u,{error:e,key:t})}))}}]),t}(S.a.Component),xe=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t=r.props.onChange,n=e.target,o=n.value,i=n.name,a=r.state.value;a[i]=o,r.setState({value:a}),t(r.state)});var o=r.props,i=o.schema,a=o.name,s=r.getValue().username;return r.state={name:a,schema:i,value:s?{username:s}:{}},r}return le()(t,e),x()(t,[{key:"getValue",value:function(){var e=this.props,t=e.authorized,n=e.name;return t&&t.getIn([n,"value"])||{}}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.name,o=e.errSelectors,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("JumpToPath",!0),l=n("Markdown"),p=this.getValue().username,f=o.allErrors().filter(function(e){return e.get("authId")===r});return S.a.createElement("div",null,S.a.createElement("h4",null,"Basic authorization",S.a.createElement(c,{path:["securityDefinitions",r]})),p&&S.a.createElement("h6",null,"Authorized"),S.a.createElement(a,null,S.a.createElement(l,{source:t.get("description")})),S.a.createElement(a,null,S.a.createElement("label",null,"Username:"),p?S.a.createElement("code",null," ",p," "):S.a.createElement(s,null,S.a.createElement(i,{type:"text",required:"required",name:"username",onChange:this.onChange}))),S.a.createElement(a,null,S.a.createElement("label",null,"Password:"),p?S.a.createElement("code",null," ****** "):S.a.createElement(s,null,S.a.createElement(i,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return S.a.createElement(u,{error:e,key:t})}))}}]),t}(S.a.Component);function Ee(e){var t=e.example,n=e.showValue,r=e.getComponent,o=r("Markdown"),i=r("highlightCode");return t?S.a.createElement("div",{className:"example"},t.get("description")?S.a.createElement("section",{className:"example__section"},S.a.createElement("div",{className:"example__section-header"},"Example Description"),S.a.createElement("p",null,S.a.createElement(o,{source:t.get("description")}))):null,n&&t.has("value")?S.a.createElement("section",{className:"example__section"},S.a.createElement("div",{className:"example__section-header"},"Example Value"),S.a.createElement(i,{value:Object(D.G)(t.get("value"))})):null):null}var Se=n(475),Ce=n.n(Se),ke=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"_onSelect",function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isSyntheticChange,o=void 0!==r&&r;"function"==typeof n.props.onSelect&&n.props.onSelect(e,{isSyntheticChange:o})}),v()(ue()(n),"_onDomSelect",function(e){if("function"==typeof n.props.onSelect){var t=e.target.selectedOptions[0].getAttribute("value");n._onSelect(t,{isSyntheticChange:!1})}}),v()(ue()(n),"getCurrentExample",function(){var e=n.props,t=e.examples,r=e.currentExampleKey,o=t.get(r),i=t.keySeq().first(),a=t.get(i);return o||a||Ce()({})}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.onSelect,n=e.examples;if("function"==typeof t){var r=n.first(),o=n.keyOf(r);this._onSelect(o,{isSyntheticChange:!0})}}},{key:"componentWillReceiveProps",value:function(e){var t=e.currentExampleKey,n=e.examples;if(n!==this.props.examples&&!n.has(t)){var r=n.first(),o=n.keyOf(r);this._onSelect(o,{isSyntheticChange:!0})}}},{key:"render",value:function(){var e=this.props,t=e.examples,n=e.currentExampleKey,r=e.isValueModified,o=e.isModifiedValueAvailable,i=e.showLabels;return S.a.createElement("div",{className:"examples-select"},i?S.a.createElement("span",{className:"examples-select__section-label"},"Examples: "):null,S.a.createElement("select",{onChange:this._onDomSelect,value:o&&r?"__MODIFIED__VALUE__":n||""},o?S.a.createElement("option",{value:"__MODIFIED__VALUE__"},"[Modified value]"):null,t.map(function(e,t){return S.a.createElement("option",{key:t,value:t},e.get("summary")||t)}).valueSeq()))}}]),t}(S.a.PureComponent);v()(ke,"defaultProps",{examples:O.a.Map({}),onSelect:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["DEBUG: ExamplesSelect was not given an onSelect callback"].concat(n))},currentExampleKey:null,showLabels:!0});var Oe=function(e){return k.List.isList(e)?e:Object(D.G)(e)},Ae=function(e){function t(e){var n;_()(this,t),n=oe()(this,ae()(t).call(this,e)),v()(ue()(n),"_getStateForCurrentNamespace",function(){var e=n.props.currentNamespace;return(n.state[e]||Object(k.Map)()).toObject()}),v()(ue()(n),"_setStateForCurrentNamespace",function(e){var t=n.props.currentNamespace;return n._setStateForNamespace(t,e)}),v()(ue()(n),"_setStateForNamespace",function(e,t){var r=(n.state[e]||Object(k.Map)()).mergeDeep(t);return n.setState(v()({},e,r))}),v()(ue()(n),"_isCurrentUserInputSameAsExampleValue",function(){var e=n.props.currentUserInputValue;return n._getCurrentExampleValue()===e}),v()(ue()(n),"_getValueForExample",function(e,t){var r=(t||n.props).examples;return Oe((r||Object(k.Map)({})).getIn([e,"value"]))}),v()(ue()(n),"_getCurrentExampleValue",function(e){var t=(e||n.props).currentKey;return n._getValueForExample(t,e||n.props)}),v()(ue()(n),"_onExamplesSelect",function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isSyntheticChange,o=n.props,i=o.onSelect,a=o.updateValue,s=o.currentUserInputValue,u=n._getStateForCurrentNamespace(),c=u.lastUserEditedValue,l=n._getValueForExample(e);if("__MODIFIED__VALUE__"===e)return a(Oe(c)),n._setStateForCurrentNamespace({isModifiedValueSelected:!0});if("function"==typeof i){for(var p=arguments.length,f=new Array(p>2?p-2:0),h=2;h<p;h++)f[h-2]=arguments[h];i.apply(void 0,[e,{isSyntheticChange:r}].concat(f))}n._setStateForCurrentNamespace({lastDownstreamValue:l,isModifiedValueSelected:r&&!!s&&s!==l}),r||"function"==typeof a&&a(Oe(l))});var r=n._getCurrentExampleValue();return n.state=v()({},e.currentNamespace,Object(k.Map)({lastUserEditedValue:n.props.currentUserInputValue,lastDownstreamValue:r,isModifiedValueSelected:n.props.currentUserInputValue!==r})),n}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t=e.currentUserInputValue,n=e.examples,r=e.onSelect,o=this._getStateForCurrentNamespace(),i=o.lastUserEditedValue,a=o.lastDownstreamValue,s=this._getValueForExample(e.currentKey,e),u=n.find(function(e){return e.get("value")===t||Object(D.G)(e.get("value"))===t});u?r(n.keyOf(u),{isSyntheticChange:!0}):t!==this.props.currentUserInputValue&&t!==i&&t!==a&&this._setStateForNamespace(e.currentNamespace,{lastUserEditedValue:e.currentUserInputValue,isModifiedValueSelected:t!==s})}},{key:"render",value:function(){var e=this.props,t=e.currentUserInputValue,n=e.examples,r=e.currentKey,o=e.getComponent,i=this._getStateForCurrentNamespace(),a=i.lastDownstreamValue,s=i.lastUserEditedValue,u=i.isModifiedValueSelected,c=o("ExamplesSelect");return S.a.createElement(c,{examples:n,currentExampleKey:r,onSelect:this._onExamplesSelect,isModifiedValueAvailable:!!s&&s!==a,isValueModified:void 0!==t&&u&&t!==this._getCurrentExampleValue()})}}]),t}(S.a.PureComponent);v()(Ae,"defaultProps",{examples:Object(k.Map)({}),currentNamespace:"__DEFAULT__NAMESPACE__",onSelect:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["ExamplesSelectValueRetainer: no `onSelect` function was provided"].concat(n))},updateValue:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["ExamplesSelectValueRetainer: no `updateValue` function was provided"].concat(n))}});var Te=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"close",function(e){e.preventDefault(),r.props.authActions.showDefinitions(!1)}),v()(ue()(r),"authorize",function(){var e=r.props,t=e.authActions,n=e.errActions,o=e.getConfigs,i=e.authSelectors,a=o(),s=i.getConfigs();n.clear({authId:name,type:"auth",source:"auth"}),function(e){var t=e.auth,n=e.authActions,r=e.errActions,o=e.configs,i=e.authConfigs,a=void 0===i?{}:i,s=t.schema,u=t.scopes,c=t.name,l=t.clientId,p=s.get("flow"),f=[];switch(p){case"password":return void n.authorizePassword(t);case"application":return void n.authorizeApplication(t);case"accessCode":f.push("response_type=code");break;case"implicit":f.push("response_type=token");break;case"clientCredentials":return void n.authorizeApplication(t);case"authorizationCode":f.push("response_type=code")}"string"==typeof l&&f.push("client_id="+encodeURIComponent(l));var h=o.oauth2RedirectUrl;if(void 0!==h){if(f.push("redirect_uri="+encodeURIComponent(h)),d()(u)&&0<u.length){var m=a.scopeSeparator||" ";f.push("scope="+encodeURIComponent(u.join(m)))}var v=Object(D.a)(new Date);f.push("state="+encodeURIComponent(v)),void 0!==a.realm&&f.push("realm="+encodeURIComponent(a.realm));var g=a.additionalQueryStringParams;for(var y in g)void 0!==g[y]&&f.push([y,g[y]].map(encodeURIComponent).join("="));var b,_=s.get("authorizationUrl"),w=[Object(D.D)(_),f.join("&")].join(-1===_.indexOf("?")?"?":"&");b="implicit"===p?n.preAuthorizeImplicit:a.useBasicAuthenticationWithAccessCodeGrant?n.authorizeAccessCodeWithBasicAuthentication:n.authorizeAccessCodeWithFormParams,R.a.swaggerUIRedirectOauth2={auth:t,state:v,redirectUrl:h,callback:b,errCb:r.newAuthErr},R.a.open(w)}else r.newAuthErr({authId:c,source:"validation",level:"error",message:"oauth2RedirectUrl configuration is not passed. Oauth2 authorization cannot be performed."})}({auth:r.state,authActions:t,errActions:n,configs:a,authConfigs:s})}),v()(ue()(r),"onScopeChange",function(e){var t=e.target,n=t.checked,o=t.dataset.value;if(n&&-1===r.state.scopes.indexOf(o)){var i=r.state.scopes.concat([o]);r.setState({scopes:i})}else!n&&r.state.scopes.indexOf(o)>-1&&r.setState({scopes:r.state.scopes.filter(function(e){return e!==o})})}),v()(ue()(r),"onInputChange",function(e){var t=e.target,n=t.dataset.name,o=t.value,i=v()({},n,o);r.setState(i)}),v()(ue()(r),"logout",function(e){e.preventDefault();var t=r.props,n=t.authActions,o=t.errActions,i=t.name;o.clear({authId:i,type:"auth",source:"auth"}),n.logout([i])});var o=r.props,i=o.name,a=o.schema,s=o.authorized,u=o.authSelectors,c=s&&s.get(i),l=u.getConfigs()||{},p=c&&c.get("username")||"",f=c&&c.get("clientId")||l.clientId||"",h=c&&c.get("clientSecret")||l.clientSecret||"",m=c&&c.get("passwordType")||"basic";return r.state={appName:l.appName,name:i,schema:a,scopes:[],clientId:f,clientSecret:h,username:p,password:"",passwordType:m},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.schema,r=t.getComponent,o=t.authSelectors,i=t.errSelectors,a=t.name,s=t.specSelectors,u=r("Input"),c=r("Row"),l=r("Col"),p=r("Button"),f=r("authError"),h=r("JumpToPath",!0),d=r("Markdown"),m=r("InitializedInput"),v=s.isOAS3,g=v()?"authorizationCode":"accessCode",y=v()?"clientCredentials":"application",b=n.get("flow"),_=n.get("allowedScopes")||n.get("scopes"),w=!!o.authorized().get(a),x=i.allErrors().filter(function(e){return e.get("authId")===a}),E=!x.filter(function(e){return"validation"===e.get("source")}).size,C=n.get("description");return S.a.createElement("div",null,S.a.createElement("h4",null,a," (OAuth2, ",n.get("flow"),") ",S.a.createElement(h,{path:["securityDefinitions",a]})),this.state.appName?S.a.createElement("h5",null,"Application: ",this.state.appName," "):null,C&&S.a.createElement(d,{source:n.get("description")}),w&&S.a.createElement("h6",null,"Authorized"),("implicit"===b||b===g)&&S.a.createElement("p",null,"Authorization URL: ",S.a.createElement("code",null,n.get("authorizationUrl"))),("password"===b||b===g||b===y)&&S.a.createElement("p",null,"Token URL:",S.a.createElement("code",null," ",n.get("tokenUrl"))),S.a.createElement("p",{className:"flow"},"Flow: ",S.a.createElement("code",null,n.get("flow"))),"password"!==b?null:S.a.createElement(c,null,S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"oauth_username"},"username:"),w?S.a.createElement("code",null," ",this.state.username," "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("input",{id:"oauth_username",type:"text","data-name":"username",onChange:this.onInputChange}))),S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"oauth_password"},"password:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("input",{id:"oauth_password",type:"password","data-name":"password",onChange:this.onInputChange}))),S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"password_type"},"Client credentials location:"),w?S.a.createElement("code",null," ",this.state.passwordType," "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("select",{id:"password_type","data-name":"passwordType",onChange:this.onInputChange},S.a.createElement("option",{value:"basic"},"Authorization header"),S.a.createElement("option",{value:"request-body"},"Request body"))))),(b===y||"implicit"===b||b===g||"password"===b)&&(!w||w&&this.state.clientId)&&S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"client_id"},"client_id:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement(m,{id:"client_id",type:"text",required:"password"===b,initialValue:this.state.clientId,"data-name":"clientId",onChange:this.onInputChange}))),(b===y||b===g||"password"===b)&&S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"client_secret"},"client_secret:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement(m,{id:"client_secret",initialValue:this.state.clientSecret,type:"text","data-name":"clientSecret",onChange:this.onInputChange}))),!w&&_&&_.size?S.a.createElement("div",{className:"scopes"},S.a.createElement("h2",null,"Scopes:"),_.map(function(t,n){return S.a.createElement(c,{key:n},S.a.createElement("div",{className:"checkbox"},S.a.createElement(u,{"data-value":n,id:"".concat(n,"-").concat(b,"-checkbox-").concat(e.state.name),disabled:w,type:"checkbox",onChange:e.onScopeChange}),S.a.createElement("label",{htmlFor:"".concat(n,"-").concat(b,"-checkbox-").concat(e.state.name)},S.a.createElement("span",{className:"item"}),S.a.createElement("div",{className:"text"},S.a.createElement("p",{className:"name"},n),S.a.createElement("p",{className:"description"},t)))))}).toArray()):null,x.valueSeq().map(function(e,t){return S.a.createElement(f,{error:e,key:t})}),S.a.createElement("div",{className:"auth-btn-wrapper"},E&&(w?S.a.createElement(p,{className:"btn modal-btn auth authorize",onClick:this.logout},"Logout"):S.a.createElement(p,{className:"btn modal-btn auth authorize",onClick:this.authorize},"Authorize")),S.a.createElement(p,{className:"btn modal-btn auth btn-done",onClick:this.close},"Close")))}}]),t}(S.a.Component),je=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(){var e=n.props,t=e.specActions,r=e.path,o=e.method;t.clearResponse(r,o),t.clearRequest(r,o)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",{className:"btn btn-clear opblock-control__btn",onClick:this.onClick},"Clear")}}]),t}(E.Component),Pe=function(e){var t=e.headers;return S.a.createElement("div",null,S.a.createElement("h5",null,"Response headers"),S.a.createElement("pre",null,t))},Ie=function(e){var t=e.duration;return S.a.createElement("div",null,S.a.createElement("h5",null,"Request duration"),S.a.createElement("pre",null,t," ms"))},Me=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"shouldComponentUpdate",value:function(e){return this.props.response!==e.response||this.props.path!==e.path||this.props.method!==e.method||this.props.displayRequestDuration!==e.displayRequestDuration}},{key:"render",value:function(){var e=this.props,t=e.response,n=e.getComponent,r=e.getConfigs,o=e.displayRequestDuration,i=e.specSelectors,a=e.path,s=e.method,c=r().showMutatedRequest?i.mutatedRequestFor(a,s):i.requestFor(a,s),l=t.get("status"),p=c.get("url"),f=t.get("headers").toJS(),h=t.get("notDocumented"),d=t.get("error"),m=t.get("text"),v=t.get("duration"),g=u()(f),y=f["content-type"]||f["Content-Type"],b=n("curl"),_=n("responseBody"),w=g.map(function(e){return S.a.createElement("span",{className:"headerline",key:e}," ",e,": ",f[e]," ")}),x=0!==w.length;return S.a.createElement("div",null,c&&S.a.createElement(b,{request:c}),p&&S.a.createElement("div",null,S.a.createElement("h4",null,"Request URL"),S.a.createElement("div",{className:"request-url"},S.a.createElement("pre",null,p))),S.a.createElement("h4",null,"Server response"),S.a.createElement("table",{className:"responses-table live-responses-table"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"responses-header"},S.a.createElement("td",{className:"col_header response-col_status"},"Code"),S.a.createElement("td",{className:"col_header response-col_description"},"Details"))),S.a.createElement("tbody",null,S.a.createElement("tr",{className:"response"},S.a.createElement("td",{className:"response-col_status"},l,h?S.a.createElement("div",{className:"response-undocumented"},S.a.createElement("i",null," Undocumented ")):null),S.a.createElement("td",{className:"response-col_description"},d?S.a.createElement("span",null,"".concat(t.get("name"),": ").concat(t.get("message"))):null,m?S.a.createElement(_,{content:m,contentType:y,url:p,headers:f,getComponent:n}):null,x?S.a.createElement(Pe,{headers:w}):null,o&&v?S.a.createElement(Ie,{duration:v}):null)))))}}]),t}(S.a.Component),Ne=n(93),Re=n.n(Ne),De=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"getDefinitionUrl",function(){var e=r.props.specSelectors;return new Re.a(e.url(),R.a.location).toString()});var o=(0,e.getConfigs)().validatorUrl;return r.state={url:r.getDefinitionUrl(),validatorUrl:void 0===o?"https://validator.swagger.io/validator":o},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t=(0,e.getConfigs)().validatorUrl;this.setState({url:this.getDefinitionUrl(),validatorUrl:void 0===t?"https://validator.swagger.io/validator":t})}},{key:"render",value:function(){var e=(0,this.props.getConfigs)().spec,t=Object(D.D)(this.state.validatorUrl);return"object"===l()(e)&&u()(e).length?null:!this.state.url||!this.state.validatorUrl||this.state.url.indexOf("localhost")>=0||this.state.url.indexOf("127.0.0.1")>=0?null:S.a.createElement("span",{style:{float:"right"}},S.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"".concat(t,"/debug?url=").concat(encodeURIComponent(this.state.url))},S.a.createElement(Le,{src:"".concat(t,"?url=").concat(encodeURIComponent(this.state.url)),alt:"Online validator badge"})))}}]),t}(S.a.Component),Le=function(e){function t(e){var n;return _()(this,t),(n=oe()(this,ae()(t).call(this,e))).state={loaded:!1,error:!1},n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this,t=new Image;t.onload=function(){e.setState({loaded:!0})},t.onerror=function(){e.setState({error:!0})},t.src=this.props.src}},{key:"componentWillReceiveProps",value:function(e){var t=this;if(e.src!==this.props.src){var n=new Image;n.onload=function(){t.setState({loaded:!0})},n.onerror=function(){t.setState({error:!0})},n.src=e.src}}},{key:"render",value:function(){return this.state.error?S.a.createElement("img",{alt:"Error"}):this.state.loaded?S.a.createElement("img",{src:this.props.src,alt:this.props.alt}):null}}]),t}(S.a.Component),Ue=["get","put","post","delete","options","head","patch"],qe=Ue.concat(["trace"]),Fe=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.getComponent,r=e.layoutSelectors,o=e.layoutActions,i=e.getConfigs,a=e.fn,s=t.taggedOperations(),u=n("OperationContainer",!0),c=n("OperationTag"),l=i().maxDisplayedTags,p=r.currentFilter();return p&&!0!==p&&(s=a.opsFilter(s,p)),l&&!isNaN(l)&&l>=0&&(s=s.slice(0,l)),S.a.createElement("div",null,s.map(function(e,a){var s=e.get("operations");return S.a.createElement(c,{key:"operation-"+a,tagObj:e,tag:a,layoutSelectors:r,layoutActions:o,getConfigs:i,getComponent:n},s.map(function(e){var n=e.get("path"),r=e.get("method"),o=O.a.List(["paths",n,r]);return-1===(t.isOAS3()?qe:Ue).indexOf(r)?null:S.a.createElement(u,{key:"".concat(n,"-").concat(r),specPath:o,op:e,path:n,method:r,tag:a})}).toArray())}).toArray(),s.size<1?S.a.createElement("h3",null," No operations defined in spec! "):null)}}]),t}(S.a.Component),ze=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.tagObj,n=e.tag,r=e.children,o=e.layoutSelectors,i=e.layoutActions,a=e.getConfigs,s=e.getComponent,u=a(),c=u.docExpansion,l=u.deepLinking,p=l&&"false"!==l,f=s("Collapse"),h=s("Markdown"),d=s("DeepLink"),m=s("Link"),v=t.getIn(["tagDetails","description"],null),g=t.getIn(["tagDetails","externalDocs","description"]),y=t.getIn(["tagDetails","externalDocs","url"]),b=["operations-tag",n],_=o.isShown(b,"full"===c||"list"===c);return S.a.createElement("div",{className:_?"opblock-tag-section is-open":"opblock-tag-section"},S.a.createElement("h4",{onClick:function(){return i.show(b,!_)},className:v?"opblock-tag":"opblock-tag no-desc",id:b.map(function(e){return Object(D.f)(e)}).join("-"),"data-tag":n,"data-is-open":_},S.a.createElement(d,{enabled:p,isShown:_,path:Object(D.c)(n),text:n}),v?S.a.createElement("small",null,S.a.createElement(h,{source:v})):S.a.createElement("small",null),S.a.createElement("div",null,g?S.a.createElement("small",null,g,y?": ":null,y?S.a.createElement(m,{href:Object(D.D)(y),onClick:function(e){return e.stopPropagation()},target:"_blank"},y):null):null),S.a.createElement("button",{className:"expand-operation",title:_?"Collapse operation":"Expand operation",onClick:function(){return i.show(b,!_)}},S.a.createElement("svg",{className:"arrow",width:"20",height:"20"},S.a.createElement("use",{href:_?"#large-arrow-down":"#large-arrow",xlinkHref:_?"#large-arrow-down":"#large-arrow"})))),S.a.createElement(f,{isOpened:_},r))}}]),t}(S.a.Component);v()(ze,"defaultProps",{tagObj:O.a.fromJS({}),tag:""});var Be=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specPath,r=e.response,o=e.request,i=e.toggleShown,a=e.onTryoutClick,s=e.onCancelClick,u=e.onExecute,c=e.fn,l=e.getComponent,p=e.getConfigs,f=e.specActions,h=e.specSelectors,d=e.authActions,m=e.authSelectors,v=e.oas3Actions,g=e.oas3Selectors,y=this.props.operation,b=y.toJS(),_=b.deprecated,w=b.isShown,x=b.path,E=b.method,C=b.op,k=b.tag,O=b.operationId,A=b.allowTryItOut,T=b.displayRequestDuration,j=b.tryItOutEnabled,P=b.executeInProgress,I=C.description,M=C.externalDocs,N=C.schemes,R=y.getIn(["op"]),L=R.get("responses"),U=Object(D.l)(R,["parameters"]),q=h.operationScheme(x,E),F=["operations",k,O],z=Object(D.k)(R),B=l("responses"),V=l("parameters"),H=l("execute"),W=l("clear"),J=l("Collapse"),Y=l("Markdown"),K=l("schemes"),G=l("OperationServers"),$=l("OperationExt"),Z=l("OperationSummary"),X=l("Link"),Q=p().showExtensions;if(L&&r&&r.size>0){var ee=!L.get(String(r.get("status")))&&!L.get("default");r=r.set("notDocumented",ee)}var te=[x,E];return S.a.createElement("div",{className:_?"opblock opblock-deprecated":w?"opblock opblock-".concat(E," is-open"):"opblock opblock-".concat(E),id:Object(D.f)(F.join("-"))},S.a.createElement(Z,{operationProps:y,toggleShown:i,getComponent:l,authActions:d,authSelectors:m,specPath:t}),S.a.createElement(J,{isOpened:w},S.a.createElement("div",{className:"opblock-body"},R&&R.size||null===R?null:S.a.createElement("img",{height:"32px",width:"32px",src:n(456),className:"opblock-loading-animation"}),_&&S.a.createElement("h4",{className:"opblock-title_normal"}," Warning: Deprecated"),I&&S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement("div",{className:"opblock-description"},S.a.createElement(Y,{source:I}))),M&&M.url?S.a.createElement("div",{className:"opblock-external-docs-wrapper"},S.a.createElement("h4",{className:"opblock-title_normal"},"Find more details"),S.a.createElement("div",{className:"opblock-external-docs"},S.a.createElement("span",{className:"opblock-external-docs__description"},S.a.createElement(Y,{source:M.description})),S.a.createElement(X,{target:"_blank",className:"opblock-external-docs__link",href:Object(D.D)(M.url)},M.url))):null,R&&R.size?S.a.createElement(V,{parameters:U,specPath:t.push("parameters"),operation:R,onChangeKey:te,onTryoutClick:a,onCancelClick:s,tryItOutEnabled:j,allowTryItOut:A,fn:c,getComponent:l,specActions:f,specSelectors:h,pathMethod:[x,E],getConfigs:p,oas3Actions:v,oas3Selectors:g}):null,j?S.a.createElement(G,{getComponent:l,path:x,method:E,operationServers:R.get("servers"),pathServers:h.paths().getIn([x,"servers"]),getSelectedServer:g.selectedServer,setSelectedServer:v.setSelectedServer,setServerVariableValue:v.setServerVariableValue,getServerVariable:g.serverVariableValue,getEffectiveServerValue:g.serverEffectiveValue}):null,j&&A&&N&&N.size?S.a.createElement("div",{className:"opblock-schemes"},S.a.createElement(K,{schemes:N,path:x,method:E,specActions:f,currentScheme:q})):null,S.a.createElement("div",{className:j&&r&&A?"btn-group":"execute-wrapper"},j&&A?S.a.createElement(H,{operation:R,specActions:f,specSelectors:h,path:x,method:E,onExecute:u}):null,j&&r&&A?S.a.createElement(W,{specActions:f,path:x,method:E}):null),P?S.a.createElement("div",{className:"loading-container"},S.a.createElement("div",{className:"loading"})):null,L?S.a.createElement(B,{responses:L,request:o,tryItOutResponse:r,getComponent:l,getConfigs:p,specSelectors:h,oas3Actions:v,oas3Selectors:g,specActions:f,produces:h.producesOptionsFor([x,E]),producesValue:h.currentProducesFor([x,E]),specPath:t.push("responses"),path:x,method:E,displayRequestDuration:T,fn:c}):null,Q&&z.size?S.a.createElement($,{extensions:z,getComponent:l}):null)))}}]),t}(E.PureComponent);v()(Be,"defaultProps",{operation:null,response:null,request:null,specPath:Object(k.List)(),summary:""});var Ve=n(65),He=n.n(Ve),We=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.toggleShown,n=e.getComponent,r=e.authActions,o=e.authSelectors,i=e.operationProps,a=e.specPath,s=i.toJS(),u=s.summary,c=s.isAuthorized,l=s.method,p=s.op,f=s.showSummary,h=s.operationId,d=s.originalOperationId,m=s.displayOperationId,v=p.summary,g=i.get("security"),y=n("authorizeOperationBtn"),b=n("OperationSummaryMethod"),_=n("OperationSummaryPath"),w=n("JumpToPath",!0);return S.a.createElement("div",{className:"opblock-summary opblock-summary-".concat(l),onClick:t},S.a.createElement(b,{method:l}),S.a.createElement(_,{getComponent:n,operationProps:i,specPath:a}),f?S.a.createElement("div",{className:"opblock-summary-description"},He()(v||u)):null,m&&(d||h)?S.a.createElement("span",{className:"opblock-summary-operation-id"},d||h):null,g&&g.count()?S.a.createElement(y,{isAuthorized:c,onClick:function(){var e=o.definitionsForRequirements(g);r.showDefinitions(e)}}):null,S.a.createElement(w,{path:a}))}}]),t}(E.PureComponent);v()(We,"defaultProps",{operationProps:null,specPath:Object(k.List)(),summary:""});var Je=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.method;return S.a.createElement("span",{className:"opblock-summary-method"},e.toUpperCase())}}]),t}(E.PureComponent);v()(Je,"defaultProps",{operationProps:null});var Ye=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onCopyCapture",function(e){e.clipboardData.setData("text/plain",n.props.operationProps.get("path")),e.preventDefault()}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.operationProps.toJS(),r=n.deprecated,o=n.isShown,i=n.path,a=n.tag,s=n.operationId,u=n.isDeepLinkingEnabled,c=t("DeepLink");return S.a.createElement("span",{className:r?"opblock-summary-path__deprecated":"opblock-summary-path",onCopyCapture:this.onCopyCapture,"data-path":i},S.a.createElement(c,{enabled:u,isShown:o,path:Object(D.c)("".concat(a,"/").concat(s)),text:i.replace(/\//g,"​/")}))}}]),t}(E.PureComponent),Ke=n(13),Ge=n.n(Ke),$e=function(e){var t=e.extensions,n=(0,e.getComponent)("OperationExtRow");return S.a.createElement("div",{className:"opblock-section"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",null,"Extensions")),S.a.createElement("div",{className:"table-container"},S.a.createElement("table",null,S.a.createElement("thead",null,S.a.createElement("tr",null,S.a.createElement("td",{className:"col_header"},"Field"),S.a.createElement("td",{className:"col_header"},"Value"))),S.a.createElement("tbody",null,t.entrySeq().map(function(e){var t=Ge()(e,2),r=t[0],o=t[1];return S.a.createElement(n,{key:"".concat(r,"-").concat(o),xKey:r,xVal:o})})))))},Ze=function(e){var t=e.xKey,n=e.xVal,r=n?n.toJS?n.toJS():n:null;return S.a.createElement("tr",null,S.a.createElement("td",null,t),S.a.createElement("td",null,a()(r)))},Xe=n(476),Qe=n.n(Xe),et=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"initializeComponent",function(e){n.el=e}),v()(ue()(n),"downloadText",function(){Qe()(n.props.value,n.props.fileName||"response.txt")}),v()(ue()(n),"preventYScrollingBeyondElement",function(e){var t=e.target,n=e.nativeEvent.deltaY,r=t.scrollHeight,o=t.offsetHeight,i=t.scrollTop;r>o&&(0===i&&n<0||o+i>=r&&n>0)&&e.preventDefault()}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){Object(D.n)(this.el)}},{key:"componentDidUpdate",value:function(){Object(D.n)(this.el)}},{key:"render",value:function(){var e=this.props,t=e.value,n=e.className,r=e.downloadable;return n=n||"",S.a.createElement("div",{className:"highlight-code"},r?S.a.createElement("div",{className:"download-contents",onClick:this.downloadText},"Download"):null,S.a.createElement("pre",{ref:this.initializeComponent,onWheel:this.preventYScrollingBeyondElement,className:n+" microlight"},t))}}]),t}(E.Component),tt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChangeProducesWrapper",function(e){return n.props.specActions.changeProducesValue([n.props.path,n.props.method],e)}),v()(ue()(n),"onResponseContentTypeChange",function(e){var t=e.controlsAcceptHeader,r=e.value,o=n.props,i=o.oas3Actions,a=o.path,s=o.method;t&&i.setResponseContentType({value:r,path:a,method:s})}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,n=this.props,r=n.responses,o=n.tryItOutResponse,i=n.getComponent,a=n.getConfigs,s=n.specSelectors,u=n.fn,c=n.producesValue,l=n.displayRequestDuration,p=n.specPath,f=n.path,h=n.method,d=n.oas3Selectors,m=n.oas3Actions,v=Object(D.e)(r),g=i("contentType"),y=i("liveResponse"),b=i("response"),_=this.props.produces&&this.props.produces.size?this.props.produces:t.defaultProps.produces,w=s.isOAS3()?Object(D.i)(r):null;return S.a.createElement("div",{className:"responses-wrapper"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",null,"Responses"),s.isOAS3()?null:S.a.createElement("label",null,S.a.createElement("span",null,"Response content type"),S.a.createElement(g,{value:c,onChange:this.onChangeProducesWrapper,contentTypes:_,className:"execute-content-type"}))),S.a.createElement("div",{className:"responses-inner"},o?S.a.createElement("div",null,S.a.createElement(y,{response:o,getComponent:i,getConfigs:a,specSelectors:s,path:this.props.path,method:this.props.method,displayRequestDuration:l}),S.a.createElement("h4",null,"Responses")):null,S.a.createElement("table",{className:"responses-table"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"responses-header"},S.a.createElement("td",{className:"col_header response-col_status"},"Code"),S.a.createElement("td",{className:"col_header response-col_description"},"Description"),s.isOAS3()?S.a.createElement("td",{className:"col col_header response-col_links"},"Links"):null)),S.a.createElement("tbody",null,r.entrySeq().map(function(t){var n=Ge()(t,2),r=n[0],l=n[1],g=o&&o.get("status")==r?"response_current":"";return S.a.createElement(b,{key:r,path:f,method:h,specPath:p.push(r),isDefault:v===r,fn:u,className:g,code:r,response:l,specSelectors:s,controlsAcceptHeader:l===w,onContentTypeChange:e.onResponseContentTypeChange,contentType:c,getConfigs:a,activeExamplesKey:d.activeExamplesMember(f,h,"responses",r),oas3Actions:m,getComponent:i})}).toArray()))))}}]),t}(S.a.Component);v()(tt,"defaultProps",{tryItOutResponse:null,produces:Object(k.fromJS)(["application/json"]),displayRequestDuration:!1});var nt=n(56),rt=n.n(nt),ot=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"_onContentTypeChange",function(e){var t=r.props,n=t.onContentTypeChange,o=t.controlsAcceptHeader;r.setState({responseContentType:e}),n({value:e,controlsAcceptHeader:o})}),v()(ue()(r),"getTargetExamplesKey",function(){var e=r.props,t=e.response,n=e.contentType,o=e.activeExamplesKey,i=r.state.responseContentType||n,a=t.getIn(["content",i],Object(k.Map)({})).get("examples",null).keySeq().first();return o||a}),r.state={responseContentType:""},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t,n,r=this.props,o=r.path,i=r.method,a=r.code,s=r.response,u=r.className,c=r.specPath,l=r.fn,p=r.getComponent,f=r.getConfigs,h=r.specSelectors,d=r.contentType,m=r.controlsAcceptHeader,v=r.oas3Actions,g=l.inferSchema,y=h.isOAS3(),b=s.get("headers"),_=s.get("links"),w=p("headers"),x=p("highlightCode"),E=p("modelExample"),C=p("Markdown"),O=p("operationLink"),A=p("contentType"),T=p("ExamplesSelect"),j=p("Example"),P=this.state.responseContentType||d,I=s.getIn(["content",P],Object(k.Map)({})),M=I.get("examples",null);if(y){var N=I.get("schema");t=N?g(N.toJS()):null,n=N?Object(k.List)(["content",this.state.responseContentType,"schema"]):c}else t=s.get("schema"),n=s.has("schema")?c.push("schema"):c;if(y){var R=I.get("schema",Object(k.Map)({}));if(M){var L=this.getTargetExamplesKey(),U=M.get(L,Object(k.Map)({}));e=Object(D.G)(U.get("value"))}else e=void 0!==I.get("example")?Object(D.G)(I.get("example")):Object(D.m)(R.toJS(),this.state.responseContentType,{includeReadOnly:!0})}else e=s.getIn(["examples",P])?s.getIn(["examples",P]):t?Object(D.m)(t.toJS(),P,{includeReadOnly:!0,includeWriteOnly:!0}):null;var q=function(e,t){return null!=e?S.a.createElement("div",null,S.a.createElement(t,{className:"example",value:Object(D.G)(e)})):null}(e,x);return S.a.createElement("tr",{className:"response "+(u||""),"data-code":a},S.a.createElement("td",{className:"response-col_status"},a),S.a.createElement("td",{className:"response-col_description"},S.a.createElement("div",{className:"response-col_description__inner"},S.a.createElement(C,{source:s.get("description")})),y&&s.get("content")?S.a.createElement("section",{className:"response-controls"},S.a.createElement("div",{className:rt()("response-control-media-type",{"response-control-media-type--accept-controller":m})},S.a.createElement("small",{className:"response-control-media-type__title"},"Media type"),S.a.createElement(A,{value:this.state.responseContentType,contentTypes:s.get("content")?s.get("content").keySeq():Object(k.Seq)(),onChange:this._onContentTypeChange}),m?S.a.createElement("small",{className:"response-control-media-type__accept-message"},"Controls ",S.a.createElement("code",null,"Accept")," header."):null),M?S.a.createElement("div",{className:"response-control-examples"},S.a.createElement("small",{className:"response-control-examples__title"},"Examples"),S.a.createElement(T,{examples:M,currentExampleKey:this.getTargetExamplesKey(),onSelect:function(e){return v.setActiveExamplesMember({name:e,pathMethod:[o,i],contextType:"responses",contextName:a})},showLabels:!1})):null):null,q||t?S.a.createElement(E,{specPath:n,getComponent:p,getConfigs:f,specSelectors:h,schema:Object(D.h)(t),example:q}):null,y&&M?S.a.createElement(j,{example:M.get(this.getTargetExamplesKey(),Object(k.Map)({})),getComponent:p,omitValue:!0}):null,b?S.a.createElement(w,{headers:b,getComponent:p}):null),y?S.a.createElement("td",{className:"response-col_links"},_?_.toSeq().map(function(e,t){return S.a.createElement(O,{key:t,name:t,link:e,getComponent:p})}):S.a.createElement("i",null,"No links")):null)}}]),t}(S.a.Component);v()(ot,"defaultProps",{response:Object(k.fromJS)({}),onContentTypeChange:function(){}});var it=n(477),at=n.n(it),st=n(478),ut=n.n(st),ct=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"state",{parsedContent:null}),v()(ue()(n),"updateParsedContent",function(e){var t=n.props.content;if(e!==t)if(t&&t instanceof Blob){var r=new FileReader;r.onload=function(){n.setState({parsedContent:r.result})},r.readAsText(t)}else n.setState({parsedContent:t.toString()})}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.updateParsedContent(null)}},{key:"componentDidUpdate",value:function(e){this.updateParsedContent(e.content)}},{key:"render",value:function(){var e,t,n=this.props,r=n.content,o=n.contentType,i=n.url,s=n.headers,u=void 0===s?{}:s,c=n.getComponent,l=this.state.parsedContent,p=c("highlightCode"),f="response_"+(new Date).getTime();if(i=i||"",/^application\/octet-stream/i.test(o)||u["Content-Disposition"]&&/attachment/i.test(u["Content-Disposition"])||u["content-disposition"]&&/attachment/i.test(u["content-disposition"])||u["Content-Description"]&&/File Transfer/i.test(u["Content-Description"])||u["content-description"]&&/File Transfer/i.test(u["content-description"]))if("Blob"in window){var h=o||"text/html",d=r instanceof Blob?r:new Blob([r],{type:h}),m=window.URL.createObjectURL(d),v=[h,i.substr(i.lastIndexOf("/")+1),m].join(":"),g=u["content-disposition"]||u["Content-Disposition"];if(void 0!==g){var y=Object(D.g)(g);null!==y&&(v=y)}t=R.a.navigator&&R.a.navigator.msSaveOrOpenBlob?S.a.createElement("div",null,S.a.createElement("a",{href:m,onClick:function(){return R.a.navigator.msSaveOrOpenBlob(d,v)}},"Download file")):S.a.createElement("div",null,S.a.createElement("a",{href:m,download:v},"Download file"))}else t=S.a.createElement("pre",null,"Download headers detected but your browser does not support downloading binary via XHR (Blob).");else if(/json/i.test(o)){try{e=a()(JSON.parse(r),null,"  ")}catch(t){e="can't parse JSON.  Raw result:\n\n"+r}t=S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".json"),value:e})}else/xml/i.test(o)?(e=at()(r,{textNodesOnSameLine:!0,indentor:"  "}),t=S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".xml"),value:e})):t="text/html"===ut()(o)||/text\/plain/.test(o)?S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".html"),value:r}):/^image\//i.test(o)?o.includes("svg")?S.a.createElement("div",null," ",r," "):S.a.createElement("img",{style:{maxWidth:"100%"},src:window.URL.createObjectURL(r)}):/^audio\//i.test(o)?S.a.createElement("pre",null,S.a.createElement("audio",{controls:!0},S.a.createElement("source",{src:i,type:o}))):"string"==typeof r?S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".txt"),value:r}):r.size>0?l?S.a.createElement("div",null,S.a.createElement("p",{className:"i"},"Unrecognized response type; displaying content as text."),S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".txt"),value:l})):S.a.createElement("p",{className:"i"},"Unrecognized response type; unable to display."):null;return t?S.a.createElement("div",null,S.a.createElement("h5",null,"Response body"),t):null}}]),t}(S.a.PureComponent),lt=n(12),pt=n.n(lt),ft=function(e){function t(e){var n;return _()(this,t),n=oe()(this,ae()(t).call(this,e)),v()(ue()(n),"onChange",function(e,t,r){var o=n.props;(0,o.specActions.changeParamByIdentity)(o.onChangeKey,e,t,r)}),v()(ue()(n),"onChangeConsumesWrapper",function(e){var t=n.props;(0,t.specActions.changeConsumesValue)(t.onChangeKey,e)}),v()(ue()(n),"toggleTab",function(e){return"parameters"===e?n.setState({parametersVisible:!0,callbackVisible:!1}):"callbacks"===e?n.setState({callbackVisible:!0,parametersVisible:!1}):void 0}),n.state={callbackVisible:!1,parametersVisible:!0},n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.onTryoutClick,r=t.onCancelClick,o=t.parameters,i=t.allowTryItOut,a=t.tryItOutEnabled,s=t.specPath,u=t.fn,c=t.getComponent,l=t.getConfigs,p=t.specSelectors,f=t.specActions,h=t.pathMethod,d=t.oas3Actions,m=t.oas3Selectors,v=t.operation,g=c("parameterRow"),y=c("TryItOutButton"),b=c("contentType"),_=c("Callbacks",!0),w=c("RequestBody",!0),x=a&&i,E=p.isOAS3(),C=v.get("requestBody");return S.a.createElement("div",{className:"opblock-section"},S.a.createElement("div",{className:"opblock-section-header"},E?S.a.createElement("div",{className:"tab-header"},S.a.createElement("div",{onClick:function(){return e.toggleTab("parameters")},className:"tab-item ".concat(this.state.parametersVisible&&"active")},S.a.createElement("h4",{className:"opblock-title"},S.a.createElement("span",null,"Parameters"))),v.get("callbacks")?S.a.createElement("div",{onClick:function(){return e.toggleTab("callbacks")},className:"tab-item ".concat(this.state.callbackVisible&&"active")},S.a.createElement("h4",{className:"opblock-title"},S.a.createElement("span",null,"Callbacks"))):null):S.a.createElement("div",{className:"tab-header"},S.a.createElement("h4",{className:"opblock-title"},"Parameters")),i?S.a.createElement(y,{enabled:a,onCancelClick:r,onTryoutClick:n}):null),this.state.parametersVisible?S.a.createElement("div",{className:"parameters-container"},o.count()?S.a.createElement("div",{className:"table-container"},S.a.createElement("table",{className:"parameters"},S.a.createElement("thead",null,S.a.createElement("tr",null,S.a.createElement("th",{className:"col_header parameters-col_name"},"Name"),S.a.createElement("th",{className:"col_header parameters-col_description"},"Description"))),S.a.createElement("tbody",null,function(e,t){return e.valueSeq().filter(O.a.Map.isMap).map(t)}(o,function(t,n){return S.a.createElement(g,{fn:u,specPath:s.push(n.toString()),getComponent:c,getConfigs:l,rawParam:t,param:p.parameterWithMetaByIdentity(h,t),key:"".concat(t.get("in"),".").concat(t.get("name")),onChange:e.onChange,onChangeConsumes:e.onChangeConsumesWrapper,specSelectors:p,specActions:f,oas3Actions:d,oas3Selectors:m,pathMethod:h,isExecute:x})}).toArray()))):S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement("p",null,"No parameters"))):null,this.state.callbackVisible?S.a.createElement("div",{className:"callbacks-container opblock-description-wrapper"},S.a.createElement(_,{callbacks:Object(k.Map)(v.get("callbacks")),specPath:s.slice(0,-1).push("callbacks")})):null,E&&C&&this.state.parametersVisible&&S.a.createElement("div",{className:"opblock-section opblock-section-request-body"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",{className:"opblock-title parameter__name ".concat(C.get("required")&&"required")},"Request body"),S.a.createElement("label",null,S.a.createElement(b,{value:m.requestContentType.apply(m,pt()(h)),contentTypes:C.get("content",Object(k.List)()).keySeq(),onChange:function(e){d.setRequestContentType({value:e,pathMethod:h})},className:"body-param-content-type"}))),S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement(w,{specPath:s.slice(0,-1).push("requestBody"),requestBody:C,requestBodyValue:m.requestBodyValue.apply(m,pt()(h)),isExecute:x,activeExamplesKey:m.activeExamplesMember.apply(m,pt()(h).concat(["requestBody","requestBody"])),updateActiveExamplesKey:function(t){e.props.oas3Actions.setActiveExamplesMember({name:t,pathMethod:e.props.pathMethod,contextType:"requestBody",contextName:"requestBody"})},onChange:function(e,t){if(t){var n=m.requestBodyValue.apply(m,pt()(h)),r=k.Map.isMap(n)?n:Object(k.Map)();return d.setRequestBodyValue({pathMethod:h,value:r.setIn(t,e)})}d.setRequestBodyValue({value:e,pathMethod:h})},contentType:m.requestContentType.apply(m,pt()(h))}))))}}]),t}(E.Component);v()(ft,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,tryItOutEnabled:!1,allowTryItOut:!0,onChangeKey:[],specPath:[]});var ht=function(e){var t=e.xKey,n=e.xVal;return S.a.createElement("div",{className:"parameter__extension"},t,": ",String(n))},dt=function(e){var t=e.param,n=e.isIncluded,r=e.onChange,o=e.isDisabled;return t.get("allowEmptyValue")?S.a.createElement("div",{className:rt()("parameter__empty_value_toggle",{disabled:o})},S.a.createElement("input",{type:"checkbox",disabled:o,checked:!o&&n,onChange:function(e){r(e.target.checked)}}),"Send empty value"):null},mt=n(118),vt=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChangeWrapper",function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=r.props,o=n.onChange,i=n.rawParam;return o(i,""===e||e&&0===e.size?null:e,t)}),v()(ue()(r),"_onExampleSelect",function(e){r.props.oas3Actions.setActiveExamplesMember({name:e,pathMethod:r.props.pathMethod,contextType:"parameters",contextName:r.getParamKey()})}),v()(ue()(r),"onChangeIncludeEmpty",function(e){var t=r.props,n=t.specActions,o=t.param,i=t.pathMethod,a=o.get("name"),s=o.get("in");return n.updateEmptyParamInclusion(i,a,s,e)}),v()(ue()(r),"setDefaultValue",function(){var e=r.props,t=e.specSelectors,n=e.pathMethod,o=e.rawParam,i=e.oas3Selectors,a=t.parameterWithMetaByIdentity(n,o)||Object(k.Map)(),s=Object(mt.a)(a,{isOAS3:t.isOAS3()}),u=a.get("content",Object(k.Map)()).keySeq().first(),c=Object(D.m)(s.toJS(),u,{includeWriteOnly:!0});if(a&&void 0===a.get("value")&&"body"!==a.get("in")){var l;if(t.isSwagger2())l=a.get("x-example")||a.getIn(["schema","example"])||s.getIn(["default"]);else if(t.isOAS3()){var p=i.activeExamplesMember.apply(i,pt()(n).concat(["parameters",r.getParamKey()]));l=a.getIn(["examples",p,"value"])||a.getIn(["content",u,"example"])||a.get("example")||s.get("example")||s.get("default")}void 0===l||k.List.isList(l)||(l=Object(D.G)(l)),void 0!==l?r.onChangeWrapper(l):"object"===s.get("type")&&c&&!a.get("examples")&&r.onChangeWrapper(k.List.isList(c)?c:Object(D.G)(c))}}),r.setDefaultValue(),r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t,n=e.specSelectors,r=e.pathMethod,o=e.rawParam,i=n.isOAS3(),a=n.parameterWithMetaByIdentity(r,o)||new k.Map;(a=a.isEmpty()?o:a,i)?t=Object(mt.a)(a,{isOAS3:i}).get("enum"):t=a?a.get("enum"):void 0;var s,u=a?a.get("value"):void 0;void 0!==u?s=u:o.get("required")&&t&&t.size&&(s=t.first()),void 0!==s&&s!==u&&this.onChangeWrapper(Object(D.v)(s)),this.setDefaultValue()}},{key:"getParamKey",value:function(){var e=this.props.param;return e?"".concat(e.get("name"),"-").concat(e.get("in")):null}},{key:"render",value:function(){var e=this.props,t=e.param,n=e.rawParam,r=e.getComponent,o=e.getConfigs,i=e.isExecute,a=e.fn,s=e.onChangeConsumes,u=e.specSelectors,c=e.pathMethod,l=e.specPath,p=e.oas3Selectors,f=u.isOAS3(),h=o(),d=h.showExtensions,m=h.showCommonExtensions;if(t||(t=n),!n)return null;var v,g,y,b=r("JsonSchemaForm"),_=r("ParamBody"),w=t.get("in"),x="body"!==w?null:S.a.createElement(_,{getComponent:r,fn:a,param:t,consumes:u.consumesOptionsFor(c),consumesValue:u.contentTypeValues(c).get("requestContentType"),onChange:this.onChangeWrapper,onChangeConsumes:s,isExecute:i,specSelectors:u,pathMethod:c}),E=r("modelExample"),C=r("Markdown"),O=r("ParameterExt"),A=r("ParameterIncludeEmpty"),T=r("ExamplesSelectValueRetainer"),j=r("Example"),P=u.parameterWithMetaByIdentity(c,n)||Object(k.Map)(),I=t.get("format"),M=Object(mt.a)(t,{isOAS3:f}),N=M.get("type"),L="formData"===w,U="FormData"in R.a,q=t.get("required"),F=M.getIn(["items","type"]),z=P?P.get("value"):"",B=m?Object(D.j)(t):null,V=d?Object(D.k)(t):null,H=!1;return void 0!==t&&(v=M.get("items")),void 0!==v?(g=v.get("enum"),y=v.get("default")):g=M.get("enum"),void 0!==g&&g.size>0&&(H=!0),void 0!==t&&(y=M.get("default"),void 0===t.get("example")&&t.get("x-example")),S.a.createElement("tr",{"data-param-name":t.get("name"),"data-param-in":t.get("in")},S.a.createElement("td",{className:"parameters-col_name"},S.a.createElement("div",{className:q?"parameter__name required":"parameter__name"},t.get("name"),q?S.a.createElement("span",{style:{color:"red"}}," *"):null),S.a.createElement("div",{className:"parameter__type"},N,F&&"[".concat(F,"]"),I&&S.a.createElement("span",{className:"prop-format"},"($",I,")")),S.a.createElement("div",{className:"parameter__deprecated"},f&&t.get("deprecated")?"deprecated":null),S.a.createElement("div",{className:"parameter__in"},"(",t.get("in"),")"),m&&B.size?B.map(function(e,t){return S.a.createElement(O,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null,d&&V.size?V.map(function(e,t){return S.a.createElement(O,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null),S.a.createElement("td",{className:"parameters-col_description"},t.get("description")?S.a.createElement(C,{source:t.get("description")}):null,!x&&i||!H?null:S.a.createElement(C,{className:"parameter__enum",source:"<i>Available values</i> : "+g.map(function(e){return e}).toArray().join(", ")}),!x&&i||void 0===y?null:S.a.createElement(C,{className:"parameter__default",source:"<i>Default value</i> : "+y}),L&&!U&&S.a.createElement("div",null,"Error: your browser does not support FormData"),f&&t.get("examples")?S.a.createElement("section",{className:"parameter-controls"},S.a.createElement(T,{examples:t.get("examples"),onSelect:this._onExampleSelect,updateValue:this.onChangeWrapper,getComponent:r,defaultToFirstExample:!0,currentKey:p.activeExamplesMember.apply(p,pt()(c).concat(["parameters",this.getParamKey()])),currentUserInputValue:z})):null,x?null:S.a.createElement(b,{fn:a,getComponent:r,value:z,required:q,disabled:!i,description:t.get("description")?"".concat(t.get("name")," - ").concat(t.get("description")):"".concat(t.get("name")),onChange:this.onChangeWrapper,errors:P.get("errors"),schema:M}),x&&M?S.a.createElement(E,{getComponent:r,specPath:l.push("schema"),getConfigs:o,isExecute:i,specSelectors:u,schema:M,example:x}):null,!x&&i?S.a.createElement(A,{onChange:this.onChangeIncludeEmpty,isIncluded:u.parameterInclusionSettingFor(c,t.get("name"),t.get("in")),isDisabled:z&&0!==z.size,param:t}):null,f&&t.get("examples")?S.a.createElement(j,{example:t.getIn(["examples",p.activeExamplesMember.apply(p,pt()(c).concat(["parameters",this.getParamKey()]))]),getComponent:r}):null))}}]),t}(E.Component),gt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(){var e=n.props,t=e.specSelectors,r=e.specActions,o=e.operation,i=e.path,a=e.method;r.validateParams([i,a]),t.validateBeforeExecute([i,a])&&(n.props.onExecute&&n.props.onExecute(),r.execute({operation:o,path:i,method:a}))}),v()(ue()(n),"onChangeProducesWrapper",function(e){return n.props.specActions.changeProducesValue([n.props.path,n.props.method],e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",{className:"btn execute opblock-control__btn",onClick:this.onClick},"Execute")}}]),t}(E.Component),yt={color:"#999",fontStyle:"italic"},bt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.headers,n=e.getComponent,r=n("Property"),o=n("Markdown");return t&&t.size?S.a.createElement("div",{className:"headers-wrapper"},S.a.createElement("h4",{className:"headers__title"},"Headers:"),S.a.createElement("table",{className:"headers"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"header-row"},S.a.createElement("th",{className:"header-col"},"Name"),S.a.createElement("th",{className:"header-col"},"Description"),S.a.createElement("th",{className:"header-col"},"Type"))),S.a.createElement("tbody",null,t.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],i=t[1];if(!O.a.Map.isMap(i))return null;var a=i.get("description"),s=i.getIn(["schema"])?i.getIn(["schema","type"]):i.getIn(["type"]),u=i.getIn(["schema","example"]);return S.a.createElement("tr",{key:n},S.a.createElement("td",{className:"header-col"},n),S.a.createElement("td",{className:"header-col"},a?S.a.createElement(o,{source:a}):null),S.a.createElement("td",{className:"header-col"},s," ",u?S.a.createElement(r,{propKey:"Example",propVal:u,propStyle:yt}):null))}).toArray()))):null}}]),t}(S.a.Component),_t=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.editorActions,n=e.errSelectors,r=e.layoutSelectors,o=e.layoutActions,i=(0,e.getComponent)("Collapse");if(t&&t.jumpToLine)var a=t.jumpToLine;var s=n.allErrors().filter(function(e){return"thrown"===e.get("type")||"error"===e.get("level")});if(!s||s.count()<1)return null;var u=r.isShown(["errorPane"],!0),c=s.sortBy(function(e){return e.get("line")});return S.a.createElement("pre",{className:"errors-wrapper"},S.a.createElement("hgroup",{className:"error"},S.a.createElement("h4",{className:"errors__title"},"Errors"),S.a.createElement("button",{className:"btn errors__clear-btn",onClick:function(){return o.show(["errorPane"],!u)}},u?"Hide":"Show")),S.a.createElement(i,{isOpened:u,animated:!0},S.a.createElement("div",{className:"errors"},c.map(function(e,t){var n=e.get("type");return"thrown"===n||"auth"===n?S.a.createElement(wt,{key:t,error:e.get("error")||e,jumpToLine:a}):"spec"===n?S.a.createElement(xt,{key:t,error:e,jumpToLine:a}):void 0}))))}}]),t}(S.a.Component),wt=function(e){var t=e.error,n=e.jumpToLine;if(!t)return null;var r=t.get("line");return S.a.createElement("div",{className:"error-wrapper"},t?S.a.createElement("div",null,S.a.createElement("h4",null,t.get("source")&&t.get("level")?Et(t.get("source"))+" "+t.get("level"):"",t.get("path")?S.a.createElement("small",null," at ",t.get("path")):null),S.a.createElement("span",{style:{whiteSpace:"pre-line",maxWidth:"100%"}},t.get("message")),S.a.createElement("div",{style:{"text-decoration":"underline",cursor:"pointer"}},r&&n?S.a.createElement("a",{onClick:n.bind(null,r)},"Jump to line ",r):null)):null)},xt=function(e){var t=e.error,n=e.jumpToLine,r=null;return t.get("path")?r=k.List.isList(t.get("path"))?S.a.createElement("small",null,"at ",t.get("path").join(".")):S.a.createElement("small",null,"at ",t.get("path")):t.get("line")&&!n&&(r=S.a.createElement("small",null,"on line ",t.get("line"))),S.a.createElement("div",{className:"error-wrapper"},t?S.a.createElement("div",null,S.a.createElement("h4",null,Et(t.get("source"))+" "+t.get("level")," ",r),S.a.createElement("span",{style:{whiteSpace:"pre-line"}},t.get("message")),S.a.createElement("div",{style:{"text-decoration":"underline",cursor:"pointer"}},n?S.a.createElement("a",{onClick:n.bind(null,t.get("line"))},"Jump to line ",t.get("line")):null)):null)};function Et(e){return(e||"").split(" ").map(function(e){return e[0].toUpperCase()+e.slice(1)}).join(" ")}wt.defaultProps={jumpToLine:null};var St=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChangeWrapper",function(e){return n.props.onChange(e.target.value)}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.props.contentTypes&&this.props.onChange(this.props.contentTypes.first())}},{key:"componentWillReceiveProps",value:function(e){e.contentTypes&&e.contentTypes.size&&(e.contentTypes.includes(e.value)||e.onChange(e.contentTypes.first()))}},{key:"render",value:function(){var e=this.props,t=e.contentTypes,n=e.className,r=e.value;return t&&t.size?S.a.createElement("div",{className:"content-type-wrapper "+(n||"")},S.a.createElement("select",{className:"content-type",value:r||"",onChange:this.onChangeWrapper},t.map(function(e){return S.a.createElement("option",{key:e,value:e},e)}).toArray())):null}}]),t}(S.a.Component);v()(St,"defaultProps",{onChange:function(){},value:null,contentTypes:Object(k.fromJS)(["application/json"])});var Ct=n(20),kt=n.n(Ct),Ot=n(38),At=n.n(Ot);function Tt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return!!e}).join(" ").trim()}var jt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.fullscreen,n=e.full,r=At()(e,["fullscreen","full"]);if(t)return S.a.createElement("section",r);var o="swagger-container"+(n?"-full":"");return S.a.createElement("section",kt()({},r,{className:Tt(r.className,o)}))}}]),t}(S.a.Component),Pt={mobile:"",tablet:"-tablet",desktop:"-desktop",large:"-hd"},It=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.hide,n=e.keepContents,r=(e.mobile,e.tablet,e.desktop,e.large,At()(e,["hide","keepContents","mobile","tablet","desktop","large"]));if(t&&!n)return S.a.createElement("span",null);var o=[];for(var i in Pt)if(Pt.hasOwnProperty(i)){var a=Pt[i];if(i in this.props){var s=this.props[i];if(s<1){o.push("none"+a);continue}o.push("block"+a),o.push("col-"+s+a)}}var u=Tt.apply(void 0,[r.className].concat(o));return S.a.createElement("section",kt()({},r,{style:{display:t?"none":null},className:u}))}}]),t}(S.a.Component),Mt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("div",kt()({},this.props,{className:Tt(this.props.className,"wrapper")}))}}]),t}(S.a.Component),Nt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",kt()({},this.props,{className:Tt(this.props.className,"button")}))}}]),t}(S.a.Component);v()(Nt,"defaultProps",{className:""});var Rt=function(e){return S.a.createElement("textarea",e)},Dt=function(e){return S.a.createElement("input",e)},Lt=function(e){function t(e,n){var r,o;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t,n=r.props,o=n.onChange,i=n.multiple,a=[].slice.call(e.target.options);t=i?a.filter(function(e){return e.selected}).map(function(e){return e.value}):e.target.value,r.setState({value:t}),o&&o(t)}),o=e.value?e.value:e.multiple?[""]:"",r.state={value:o},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.value!==this.props.value&&this.setState({value:e.value})}},{key:"render",value:function(){var e,t,n=this.props,r=n.allowedValues,o=n.multiple,i=n.allowEmptyValue,a=n.disabled,s=(null===(e=this.state.value)||void 0===e?void 0:null===(t=e.toJS)||void 0===t?void 0:t.call(e))||this.state.value;return S.a.createElement("select",{className:this.props.className,multiple:o,value:s,onChange:this.onChange,disabled:a},i?S.a.createElement("option",{value:""},"--"):null,r.map(function(e,t){return S.a.createElement("option",{key:t,value:String(e)},String(e))}))}}]),t}(S.a.Component);v()(Lt,"defaultProps",{multiple:!1,allowEmptyValue:!0});var Ut=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("a",kt()({},this.props,{rel:"noopener noreferrer",className:Tt(this.props.className,"link")}))}}]),t}(S.a.Component),qt=function(e){var t=e.children;return S.a.createElement("div",{style:{height:"auto",border:"none",margin:0,padding:0}}," ",t," ")},Ft=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"renderNotAnimated",value:function(){return this.props.isOpened?S.a.createElement(qt,null,this.props.children):S.a.createElement("noscript",null)}},{key:"render",value:function(){var e=this.props,t=e.animated,n=e.isOpened,r=e.children;return t?(r=n?r:null,S.a.createElement(qt,null,r)):this.renderNotAnimated()}}]),t}(S.a.Component);v()(Ft,"defaultProps",{isOpened:!1,animated:!1});var zt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return(n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o)))).setTagShown=n._setTagShown.bind(ue()(n)),n}return le()(t,e),x()(t,[{key:"_setTagShown",value:function(e,t){this.props.layoutActions.show(e,t)}},{key:"showOp",value:function(e,t){this.props.layoutActions.show(e,t)}},{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.layoutSelectors,r=e.layoutActions,o=e.getComponent,i=t.taggedOperations(),a=o("Collapse");return S.a.createElement("div",null,S.a.createElement("h4",{className:"overview-title"},"Overview"),i.map(function(e,t){var o=e.get("operations"),i=["overview-tags",t],s=n.isShown(i,!0);return S.a.createElement("div",{key:"overview-"+t},S.a.createElement("h4",{onClick:function(){return r.show(i,!s)},className:"link overview-tag"}," ",s?"-":"+",t),S.a.createElement(a,{isOpened:s,animated:!0},o.map(function(e){var t=e.toObject(),o=t.path,i=t.method,a=t.id,s=a,u=n.isShown(["operations",s]);return S.a.createElement(Bt,{key:a,path:o,method:i,id:o+"-"+i,shown:u,showOpId:s,showOpIdPrefix:"operations",href:"#operation-".concat(s),onClick:r.show})}).toArray()))}).toArray(),i.size<1&&S.a.createElement("h3",null," No operations defined in spec! "))}}]),t}(S.a.Component),Bt=function(e){function t(e){var n;return _()(this,t),(n=oe()(this,ae()(t).call(this,e))).onClick=n._onClick.bind(ue()(n)),n}return le()(t,e),x()(t,[{key:"_onClick",value:function(){var e=this.props,t=e.showOpId,n=e.showOpIdPrefix;(0,e.onClick)([n,t],!e.shown)}},{key:"render",value:function(){var e=this.props,t=e.id,n=e.method,r=e.shown,o=e.href;return S.a.createElement(Ut,{href:o,style:{fontWeight:r?"bold":"normal"},onClick:this.onClick,className:"block opblock-link"},S.a.createElement("div",null,S.a.createElement("small",{className:"bold-label-".concat(n)},n.toUpperCase()),S.a.createElement("span",{className:"bold-label"},t)))}}]),t}(S.a.Component),Vt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.props.initialValue&&(this.inputRef.value=this.props.initialValue)}},{key:"render",value:function(){var e=this,t=this.props,n=(t.value,t.defaultValue,At()(t,["value","defaultValue"]));return S.a.createElement("input",kt()({},n,{ref:function(t){return e.inputRef=t}}))}}]),t}(S.a.Component),Ht=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.host,n=e.basePath;return S.a.createElement("pre",{className:"base-url"},"[ Base URL: ",t,n," ]")}}]),t}(S.a.Component),Wt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.data,n=e.getComponent,r=t.get("name")||"the developer",o=t.get("url"),i=t.get("email"),a=n("Link");return S.a.createElement("div",{className:"info__contact"},o&&S.a.createElement("div",null,S.a.createElement(a,{href:Object(D.D)(o),target:"_blank"},r," - Website")),i&&S.a.createElement(a,{href:Object(D.D)("mailto:".concat(i))},o?"Send email to ".concat(r):"Contact ".concat(r)))}}]),t}(S.a.Component),Jt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.license,n=(0,e.getComponent)("Link"),r=t.get("name")||"License",o=t.get("url");return S.a.createElement("div",{className:"info__license"},o?S.a.createElement(n,{target:"_blank",href:Object(D.D)(o)},r):S.a.createElement("span",null,r))}}]),t}(S.a.Component),Yt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.url,n=(0,e.getComponent)("Link");return S.a.createElement(n,{target:"_blank",href:Object(D.D)(t)},S.a.createElement("span",{className:"url"}," ",t," "))}}]),t}(S.a.PureComponent),Kt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.info,n=e.url,r=e.host,o=e.basePath,i=e.getComponent,a=e.externalDocs,s=t.get("version"),u=t.get("description"),c=t.get("title"),l=t.get("termsOfService"),p=t.get("contact"),f=t.get("license"),h=(a||Object(k.fromJS)({})).toJS(),d=h.url,m=h.description,v=i("Markdown"),g=i("Link"),y=i("VersionStamp"),b=i("InfoUrl"),_=i("InfoBasePath");return S.a.createElement("div",{className:"info"},S.a.createElement("hgroup",{className:"main"},S.a.createElement("h2",{className:"title"},c,s&&S.a.createElement(y,{version:s})),r||o?S.a.createElement(_,{host:r,basePath:o}):null,n&&S.a.createElement(b,{getComponent:i,url:n})),S.a.createElement("div",{className:"description"},S.a.createElement(v,{source:u})),l&&S.a.createElement("div",{className:"info__tos"},S.a.createElement(g,{target:"_blank",href:Object(D.D)(l)},"Terms of service")),p&&p.size?S.a.createElement(Wt,{getComponent:i,data:p}):null,f&&f.size?S.a.createElement(Jt,{getComponent:i,license:f}):null,d?S.a.createElement(g,{className:"info__extdocs",target:"_blank",href:Object(D.D)(d)},m||d):null)}}]),t}(S.a.Component),Gt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.getComponent,r=t.info(),o=t.url(),i=t.basePath(),a=t.host(),s=t.externalDocs(),u=n("info");return S.a.createElement("div",null,r&&r.count()?S.a.createElement(u,{info:r,url:o,host:a,basePath:i,externalDocs:s,getComponent:n}):null)}}]),t}(S.a.Component),$t=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return null}}]),t}(S.a.Component),Zt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("div",{className:"footer"})}}]),t}(S.a.Component),Xt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onFilterChange",function(e){var t=e.target.value;n.props.layoutActions.updateFilter(t)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.layoutSelectors,r=(0,e.getComponent)("Col"),o="loading"===t.loadingStatus(),i="failed"===t.loadingStatus(),a=n.currentFilter(),s={};return i&&(s.color="red"),o&&(s.color="#aaa"),S.a.createElement("div",null,null===a||!1===a?null:S.a.createElement("div",{className:"filter-container"},S.a.createElement(r,{className:"filter wrapper",mobile:12},S.a.createElement("input",{className:"operation-filter-input",placeholder:"Filter by tag",type:"text",onChange:this.onFilterChange,value:!0===a||"true"===a?"":a,disabled:o,style:s}))))}}]),t}(S.a.Component),Qt=Function.prototype,en=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"updateValues",function(e){var t=e.param,n=e.isExecute,o=e.consumesValue,i=void 0===o?"":o,a=/xml/i.test(i),s=/json/i.test(i),u=a?t.get("value_xml"):t.get("value");if(void 0!==u){var c=!u&&s?"{}":u;r.setState({value:c}),r.onChange(c,{isXml:a,isEditBox:n})}else a?r.onChange(r.sample("xml"),{isXml:a,isEditBox:n}):r.onChange(r.sample(),{isEditBox:n})}),v()(ue()(r),"sample",function(e){var t=r.props,n=t.param,o=(0,t.fn.inferSchema)(n.toJS());return Object(D.m)(o,e,{includeWriteOnly:!0})}),v()(ue()(r),"onChange",function(e,t){var n=t.isEditBox,o=t.isXml;r.setState({value:e,isEditBox:n}),r._onChange(e,o)}),v()(ue()(r),"_onChange",function(e,t){(r.props.onChange||Qt)(e,t)}),v()(ue()(r),"handleOnChange",function(e){var t=r.props.consumesValue,n=/xml/i.test(t),o=e.target.value;r.onChange(o,{isXml:n})}),v()(ue()(r),"toggleIsEditBox",function(){return r.setState(function(e){return{isEditBox:!e.isEditBox}})}),r.state={isEditBox:!1,value:""},r}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.updateValues.call(this,this.props)}},{key:"componentWillReceiveProps",value:function(e){this.updateValues.call(this,e)}},{key:"render",value:function(){var e=this.props,n=e.onChangeConsumes,r=e.param,o=e.isExecute,i=e.specSelectors,a=e.pathMethod,s=e.getComponent,u=s("Button"),c=s("TextArea"),l=s("highlightCode"),p=s("contentType"),f=(i?i.parameterWithMetaByIdentity(a,r):r).get("errors",Object(k.List)()),h=i.contentTypeValues(a).get("requestContentType"),d=this.props.consumes&&this.props.consumes.size?this.props.consumes:t.defaultProp.consumes,m=this.state,v=m.value,g=m.isEditBox;return S.a.createElement("div",{className:"body-param","data-param-name":r.get("name"),"data-param-in":r.get("in")},g&&o?S.a.createElement(c,{className:"body-param__text"+(f.count()?" invalid":""),value:v,onChange:this.handleOnChange}):v&&S.a.createElement(l,{className:"body-param__example",value:v}),S.a.createElement("div",{className:"body-param-options"},o?S.a.createElement("div",{className:"body-param-edit"},S.a.createElement(u,{className:g?"btn cancel body-param__example-edit":"btn edit body-param__example-edit",onClick:this.toggleIsEditBox},g?"Cancel":"Edit")):null,S.a.createElement("label",{htmlFor:""},S.a.createElement("span",null,"Parameter content type"),S.a.createElement(p,{value:h,contentTypes:d,onChange:n,className:"body-param-content-type"}))))}}]),t}(E.PureComponent);v()(en,"defaultProp",{consumes:Object(k.fromJS)(["application/json"]),param:Object(k.fromJS)({}),onChange:Qt,onChangeConsumes:Qt});var tn=n(90),nn=n.n(tn);var rn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"handleFocus",value:function(e){e.target.select(),document.execCommand("copy")}},{key:"render",value:function(){var e=function(e){var t=[],n="",r=e.get("headers");if(t.push("curl"),t.push("-X",e.get("method")),t.push('"'.concat(e.get("url"),'"')),r&&r.size){var o=!0,i=!1,s=void 0;try{for(var u,c=nn()(e.get("headers").entries());!(o=(u=c.next()).done);o=!0){var l=u.value,p=Ge()(l,2),f=p[0];n=_=p[1],t.push("-H "),t.push('"'.concat(f,": ").concat(_,'"'))}}catch(e){i=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw s}}}if(e.get("body"))if("multipart/form-data"===n&&"POST"===e.get("method")){var h=!0,d=!1,m=void 0;try{for(var v,g=nn()(e.get("body").entrySeq());!(h=(v=g.next()).done);h=!0){var y=Ge()(v.value,2),b=y[0],_=y[1];t.push("-F"),_ instanceof R.a.File?t.push('"'.concat(b,"=@").concat(_.name).concat(_.type?";type=".concat(_.type):"",'"')):t.push('"'.concat(b,"=").concat(_,'"'))}}catch(e){d=!0,m=e}finally{try{h||null==g.return||g.return()}finally{if(d)throw m}}}else t.push("-d"),t.push(a()(e.get("body")).replace(/\\n/g,""));return t.join(" ")}(this.props.request);return S.a.createElement("div",null,S.a.createElement("h4",null,"Curl"),S.a.createElement("div",{className:"copy-paste"},S.a.createElement("textarea",{onFocus:this.handleFocus,readOnly:!0,className:"curl",style:{whiteSpace:"normal"},value:e})))}}]),t}(S.a.Component),on=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChange",function(e){n.setScheme(e.target.value)}),v()(ue()(n),"setScheme",function(e){var t=n.props,r=t.path,o=t.method;t.specActions.setScheme(e,r,o)}),n}return le()(t,e),x()(t,[{key:"componentWillMount",value:function(){var e=this.props.schemes;this.setScheme(e.first())}},{key:"componentWillReceiveProps",value:function(e){this.props.currentScheme&&e.schemes.includes(this.props.currentScheme)||this.setScheme(e.schemes.first())}},{key:"render",value:function(){var e=this.props,t=e.schemes,n=e.currentScheme;return S.a.createElement("label",{htmlFor:"schemes"},S.a.createElement("span",{className:"schemes-title"},"Schemes"),S.a.createElement("select",{onChange:this.onChange,value:n},t.valueSeq().map(function(e){return S.a.createElement("option",{value:e,key:e},e)}).toArray()))}}]),t}(S.a.Component),an=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specActions,n=e.specSelectors,r=e.getComponent,o=n.operationScheme(),i=n.schemes(),a=r("schemes");return i&&i.size?S.a.createElement(a,{currentScheme:o,schemes:i,specActions:t}):null}}]),t}(S.a.Component),sn=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"toggleCollapsed",function(){r.props.onToggle&&r.props.onToggle(r.props.modelName,!r.state.expanded),r.setState({expanded:!r.state.expanded})});var o=r.props,i=o.expanded,a=o.collapsedContent;return r.state={expanded:i,collapsedContent:a||t.defaultProps.collapsedContent},r}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.hideSelfOnExpand,n=e.expanded,r=e.modelName;t&&n&&this.props.onToggle(r,n)}},{key:"componentWillReceiveProps",value:function(e){this.props.expanded!==e.expanded&&this.setState({expanded:e.expanded})}},{key:"render",value:function(){var e=this.props,t=e.title,n=e.classes;return this.state.expanded&&this.props.hideSelfOnExpand?S.a.createElement("span",{className:n||""},this.props.children):S.a.createElement("span",{className:n||""},t&&S.a.createElement("span",{onClick:this.toggleCollapsed,style:{cursor:"pointer"}},t),S.a.createElement("span",{onClick:this.toggleCollapsed,style:{cursor:"pointer"}},S.a.createElement("span",{className:"model-toggle"+(this.state.expanded?"":" collapsed")})),this.state.expanded?this.props.children:this.state.collapsedContent)}}]),t}(E.Component);v()(sn,"defaultProps",{collapsedContent:"{...}",expanded:!1,title:null,onToggle:function(){},hideSelfOnExpand:!1});var un=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"activeTab",function(e){var t=e.target.dataset.name;r.setState({activeTab:t})});var o=r.props,i=o.getConfigs,a=o.isExecute,s=i().defaultModelRendering,u=s;return"example"!==s&&"model"!==s&&(u="example"),a&&(u="example"),r.state={activeTab:u},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.isExecute&&!this.props.isExecute&&this.props.example&&this.setState({activeTab:"example"})}},{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=e.schema,o=e.example,i=e.isExecute,a=e.getConfigs,s=e.specPath,u=a().defaultModelExpandDepth,c=t("ModelWrapper"),l=t("highlightCode"),p=n.isOAS3();return S.a.createElement("div",{className:"model-example"},S.a.createElement("ul",{className:"tab"},S.a.createElement("li",{className:"tabitem"+("example"===this.state.activeTab?" active":"")},S.a.createElement("a",{className:"tablinks","data-name":"example",onClick:this.activeTab},i?"Edit Value":"Example Value")),r?S.a.createElement("li",{className:"tabitem"+("model"===this.state.activeTab?" active":"")},S.a.createElement("a",{className:"tablinks"+(i?" inactive":""),"data-name":"model",onClick:this.activeTab},p?"Schema":"Model")):null),S.a.createElement("div",null,"example"===this.state.activeTab?o||S.a.createElement(l,{value:"(no example available)"}):null,"model"===this.state.activeTab&&S.a.createElement(c,{schema:r,getComponent:t,getConfigs:a,specSelectors:n,expandDepth:u,specPath:s})))}}]),t}(S.a.Component),cn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onToggle",function(e,t){n.props.layoutActions&&n.props.layoutActions.show(["models",e],t)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t=this.props,n=t.getComponent,r=t.getConfigs,o=n("Model");return this.props.layoutSelectors&&(e=this.props.layoutSelectors.isShown(["models",this.props.name])),S.a.createElement("div",{className:"model-box"},S.a.createElement(o,kt()({},this.props,{getConfigs:r,expanded:e,depth:1,onToggle:this.onToggle,expandDepth:this.props.expandDepth||0})))}}]),t}(E.Component),ln=n(191),pn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"getSchemaBasePath",function(){return n.props.specSelectors.isOAS3()?["components","schemas"]:["definitions"]}),v()(ue()(n),"getCollapsedContent",function(){return" "}),v()(ue()(n),"handleToggle",function(e,t){n.props.layoutActions.show(["models",e],t),t&&n.props.specActions.requestResolvedSubtree([].concat(pt()(n.getSchemaBasePath()),[e]))}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.specSelectors,r=t.getComponent,o=t.layoutSelectors,i=t.layoutActions,a=t.getConfigs,s=n.definitions(),u=a(),c=u.docExpansion,l=u.defaultModelsExpandDepth;if(!s.size||l<0)return null;var p=o.isShown("models",l>0&&"none"!==c),f=this.getSchemaBasePath(),h=n.isOAS3(),d=r("ModelWrapper"),m=r("Collapse"),v=r("ModelCollapse"),g=r("JumpToPath");return S.a.createElement("section",{className:p?"models is-open":"models"},S.a.createElement("h4",{onClick:function(){return i.show("models",!p)}},S.a.createElement("span",null,h?"Schemas":"Models"),S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{xlinkHref:p?"#large-arrow-down":"#large-arrow"}))),S.a.createElement(m,{isOpened:p},s.entrySeq().map(function(t){var s=Ge()(t,1)[0],u=[].concat(pt()(f),[s]),c=n.specResolvedSubtree(u),p=n.specJson().getIn(u),h=k.Map.isMap(c)?c:O.a.Map(),m=k.Map.isMap(p)?p:O.a.Map(),y=h.get("title")||m.get("title")||s,b=o.isShown(["models",s],!1);b&&0===h.size&&m.size>0&&e.props.specActions.requestResolvedSubtree([].concat(pt()(e.getSchemaBasePath()),[s]));var _=O.a.List([].concat(pt()(f),[s])),w=S.a.createElement(d,{name:s,expandDepth:l,schema:h||O.a.Map(),displayName:y,specPath:_,getComponent:r,specSelectors:n,getConfigs:a,layoutSelectors:o,layoutActions:i}),x=S.a.createElement("span",{className:"model-box"},S.a.createElement("span",{className:"model model-title"},y));return S.a.createElement("div",{id:"model-".concat(s),className:"model-container",key:"models-section-".concat(s)},S.a.createElement("span",{className:"models-jump-to-path"},S.a.createElement(g,{specPath:_})),S.a.createElement(v,{classes:"model-box",collapsedContent:e.getCollapsedContent(s),onToggle:e.handleToggle,title:x,displayName:y,modelName:s,hideSelfOnExpand:!0,expanded:l>0&&b},w))}).toArray()))}}]),t}(E.Component),fn=function(e){var t=e.value,n=(0,e.getComponent)("ModelCollapse"),r=S.a.createElement("span",null,"Array [ ",t.count()," ]");return S.a.createElement("span",{className:"prop-enum"},"Enum:",S.a.createElement("br",null),S.a.createElement(n,{collapsedContent:r},"[ ",t.join(", ")," ]"))},hn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.name,r=e.displayName,o=e.isRef,i=e.getComponent,s=e.getConfigs,u=e.depth,c=e.onToggle,l=e.expanded,p=e.specPath,f=At()(e,["schema","name","displayName","isRef","getComponent","getConfigs","depth","onToggle","expanded","specPath"]),h=f.specSelectors,d=f.expandDepth,m=h.isOAS3;if(!t)return null;var v=s().showExtensions,g=t.get("description"),y=t.get("properties"),b=t.get("additionalProperties"),_=t.get("title")||r||n,w=t.get("required"),x=i("JumpToPath",!0),E=i("Markdown"),C=i("Model"),O=i("ModelCollapse"),A=function(){return S.a.createElement("span",{className:"model-jump-to-path"},S.a.createElement(x,{specPath:p}))},T=S.a.createElement("span",null,S.a.createElement("span",null,"{"),"...",S.a.createElement("span",null,"}"),o?S.a.createElement(A,null):""),j=h.isOAS3()?t.get("anyOf"):null,P=h.isOAS3()?t.get("oneOf"):null,I=h.isOAS3()?t.get("not"):null,M=_&&S.a.createElement("span",{className:"model-title"},o&&t.get("$$ref")&&S.a.createElement("span",{className:"model-hint"},t.get("$$ref")),S.a.createElement("span",{className:"model-title__text"},_));return S.a.createElement("span",{className:"model"},S.a.createElement(O,{modelName:n,title:M,onToggle:c,expanded:!!l||u<=d,collapsedContent:T},S.a.createElement("span",{className:"brace-open object"},"{"),o?S.a.createElement(A,null):null,S.a.createElement("span",{className:"inner-object"},S.a.createElement("table",{className:"model"},S.a.createElement("tbody",null,g?S.a.createElement("tr",{style:{color:"#666",fontWeight:"normal"}},S.a.createElement("td",{style:{fontWeight:"bold"}},"description:"),S.a.createElement("td",null,S.a.createElement(E,{source:g}))):null,y&&y.size?y.entrySeq().map(function(e){var t=Ge()(e,2),r=t[0],o=t[1],a=m()&&o.get("deprecated"),c=k.List.isList(w)&&w.contains(r),l={verticalAlign:"top",paddingRight:"0.2em"};return c&&(l.fontWeight="bold"),S.a.createElement("tr",{key:r,className:a&&"deprecated"},S.a.createElement("td",{style:l},r,c&&S.a.createElement("span",{style:{color:"red"}},"*")),S.a.createElement("td",{style:{verticalAlign:"top"}},S.a.createElement(C,kt()({key:"object-".concat(n,"-").concat(r,"_").concat(o)},f,{required:c,getComponent:i,specPath:p.push("properties",r),getConfigs:s,schema:o,depth:u+1}))))}).toArray():null,v?S.a.createElement("tr",null," "):null,v?t.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],r=t[1];if("x-"===n.slice(0,2)){var o=r?r.toJS?r.toJS():r:null;return S.a.createElement("tr",{key:n,style:{color:"#777"}},S.a.createElement("td",null,n),S.a.createElement("td",{style:{verticalAlign:"top"}},a()(o)))}}).toArray():null,b&&b.size?S.a.createElement("tr",null,S.a.createElement("td",null,"< * >:"),S.a.createElement("td",null,S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("additionalProperties"),getConfigs:s,schema:b,depth:u+1})))):null,j?S.a.createElement("tr",null,S.a.createElement("td",null,"anyOf ->"),S.a.createElement("td",null,j.map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("anyOf",t),getConfigs:s,schema:e,depth:u+1})))}))):null,P?S.a.createElement("tr",null,S.a.createElement("td",null,"oneOf ->"),S.a.createElement("td",null,P.map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("oneOf",t),getConfigs:s,schema:e,depth:u+1})))}))):null,I?S.a.createElement("tr",null,S.a.createElement("td",null,"not ->"),S.a.createElement("td",null,S.a.createElement("div",null,S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("not"),getConfigs:s,schema:I,depth:u+1}))))):null))),S.a.createElement("span",{className:"brace-close"},"}")))}}]),t}(E.Component),dn={color:"#999",fontStyle:"italic"},mn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.getConfigs,r=e.schema,o=e.depth,i=e.expandDepth,a=e.name,s=e.displayName,u=e.specPath,c=r.get("description"),l=r.get("items"),p=r.get("title")||s||a,f=r.filter(function(e,t){return-1===["type","items","description","$$ref"].indexOf(t)}),h=t("Markdown"),d=t("ModelCollapse"),m=t("Model"),v=t("Property"),g=p&&S.a.createElement("span",{className:"model-title"},S.a.createElement("span",{className:"model-title__text"},p));return S.a.createElement("span",{className:"model"},S.a.createElement(d,{title:g,expanded:o<=i,collapsedContent:"[...]"},"[",f.size?f.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],r=t[1];return S.a.createElement(v,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:dn})}):null,c?S.a.createElement(h,{source:c}):f.size?S.a.createElement("div",{className:"markdown"}):null,S.a.createElement("span",null,S.a.createElement(m,kt()({},this.props,{getConfigs:n,specPath:u.push("items"),name:null,schema:l,required:!1,depth:o+1}))),"]"))}}]),t}(E.Component),vn={color:"#6b6b6b",fontStyle:"italic"},gn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.getConfigs,o=e.name,i=e.displayName,a=e.depth,s=r().showExtensions;if(!t||!t.get)return S.a.createElement("div",null);var u=t.get("type"),c=t.get("format"),l=t.get("xml"),p=t.get("enum"),f=t.get("title")||i||o,h=t.get("description"),d=Object(D.k)(t),m=t.filter(function(e,t){return-1===["enum","type","format","description","$$ref"].indexOf(t)}).filterNot(function(e,t){return d.has(t)}),v=n("Markdown"),g=n("EnumModel"),y=n("Property");return S.a.createElement("span",{className:"model"},S.a.createElement("span",{className:"prop"},o&&S.a.createElement("span",{className:"".concat(1===a&&"model-title"," prop-name")},f),S.a.createElement("span",{className:"prop-type"},u),c&&S.a.createElement("span",{className:"prop-format"},"($",c,")"),m.size?m.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],r=t[1];return S.a.createElement(y,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:vn})}):null,s&&d.size?d.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],r=t[1];return S.a.createElement(y,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:vn})}):null,h?S.a.createElement(v,{source:h}):null,l&&l.size?S.a.createElement("span",null,S.a.createElement("br",null),S.a.createElement("span",{style:vn},"xml:"),l.entrySeq().map(function(e){var t=Ge()(e,2),n=t[0],r=t[1];return S.a.createElement("span",{key:"".concat(n,"-").concat(r),style:vn},S.a.createElement("br",null),"   ",n,": ",String(r))}).toArray()):null,p&&S.a.createElement(g,{value:p,getComponent:n})))}}]),t}(E.Component),yn=function(e){var t=e.propKey,n=e.propVal,r=e.propStyle;return S.a.createElement("span",{style:r},S.a.createElement("br",null),t,": ",String(n))},bn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.onTryoutClick,n=e.onCancelClick,r=e.enabled;return S.a.createElement("div",{className:"try-out"},r?S.a.createElement("button",{className:"btn try-out__btn cancel",onClick:n},"Cancel"):S.a.createElement("button",{className:"btn try-out__btn",onClick:t},"Try it out "))}}]),t}(S.a.Component);v()(bn,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,enabled:!1});var _n=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.bypass,n=e.isSwagger2,r=e.isOAS3,o=e.alsoShow;return t?S.a.createElement("div",null,this.props.children):n&&r?S.a.createElement("div",{className:"version-pragma"},o,S.a.createElement("div",{className:"version-pragma__message version-pragma__message--ambiguous"},S.a.createElement("div",null,S.a.createElement("h3",null,"Unable to render this definition"),S.a.createElement("p",null,S.a.createElement("code",null,"swagger")," and ",S.a.createElement("code",null,"openapi")," fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields."),S.a.createElement("p",null,"Supported version fields are ",S.a.createElement("code",null,"swagger: ",'"2.0"')," and those that match ",S.a.createElement("code",null,"openapi: 3.0.n")," (for example, ",S.a.createElement("code",null,"openapi: 3.0.0"),").")))):n||r?S.a.createElement("div",null,this.props.children):S.a.createElement("div",{className:"version-pragma"},o,S.a.createElement("div",{className:"version-pragma__message version-pragma__message--missing"},S.a.createElement("div",null,S.a.createElement("h3",null,"Unable to render this definition"),S.a.createElement("p",null,"The provided definition does not specify a valid version field."),S.a.createElement("p",null,"Please indicate a valid Swagger or OpenAPI version field. Supported version fields are ",S.a.createElement("code",null,"swagger: ",'"2.0"')," and those that match ",S.a.createElement("code",null,"openapi: 3.0.n")," (for example, ",S.a.createElement("code",null,"openapi: 3.0.0"),")."))))}}]),t}(S.a.PureComponent);v()(_n,"defaultProps",{alsoShow:null,children:null,bypass:!1});var wn=function(e){var t=e.version;return S.a.createElement("small",null,S.a.createElement("pre",{className:"version"}," ",t," "))},xn=function(e){var t=e.enabled,n=e.path,r=e.text;return S.a.createElement("a",{className:"nostyle",onClick:t?function(e){return e.preventDefault()}:null,href:t?"#/".concat(n):null},S.a.createElement("span",null,r))},En=function(){return S.a.createElement("div",null,S.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",style:{position:"absolute",width:0,height:0}},S.a.createElement("defs",null,S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"unlocked"},S.a.createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"locked"},S.a.createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"close"},S.a.createElement("path",{d:"M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow"},S.a.createElement("path",{d:"M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow-down"},S.a.createElement("path",{d:"M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"})),S.a.createElement("symbol",{viewBox:"0 0 24 24",id:"jump-to"},S.a.createElement("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"})),S.a.createElement("symbol",{viewBox:"0 0 24 24",id:"expand"},S.a.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"})))))},Sn=n(192),Cn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.errSelectors,n=e.specSelectors,r=e.getComponent,o=r("SvgAssets"),i=r("InfoContainer",!0),a=r("VersionPragmaFilter"),s=r("operations",!0),u=r("Models",!0),c=r("Row"),l=r("Col"),p=r("errors",!0),f=r("ServersContainer",!0),h=r("SchemesContainer",!0),d=r("AuthorizeBtnContainer",!0),m=r("FilterContainer",!0),v=n.isSwagger2(),g=n.isOAS3(),y=!n.specStr(),b=n.loadingStatus(),_=null;if("loading"===b&&(_=S.a.createElement("div",{className:"info"},S.a.createElement("div",{className:"loading-container"},S.a.createElement("div",{className:"loading"})))),"failed"===b&&(_=S.a.createElement("div",{className:"info"},S.a.createElement("div",{className:"loading-container"},S.a.createElement("h4",{className:"title"},"Failed to load API definition."),S.a.createElement(p,null)))),"failedConfig"===b){var w=t.lastError(),x=w?w.get("message"):"";_=S.a.createElement("div",{className:"info",style:{maxWidth:"880px",marginLeft:"auto",marginRight:"auto",textAlign:"center"}},S.a.createElement("div",{className:"loading-container"},S.a.createElement("h4",{className:"title"},"Failed to load remote configuration."),S.a.createElement("p",null,x)))}if(!_&&y&&(_=S.a.createElement("h4",null,"No API definition provided.")),_)return S.a.createElement("div",{className:"swagger-ui"},S.a.createElement("div",{className:"loading-container"},_));var E=n.servers(),C=n.schemes(),k=E&&E.size,O=C&&C.size,A=!!n.securityDefinitions();return S.a.createElement("div",{className:"swagger-ui"},S.a.createElement(o,null),S.a.createElement(a,{isSwagger2:v,isOAS3:g,alsoShow:S.a.createElement(p,null)},S.a.createElement(p,null),S.a.createElement(c,{className:"information-container"},S.a.createElement(l,{mobile:12},S.a.createElement(i,null))),k||O||A?S.a.createElement("div",{className:"scheme-container"},S.a.createElement(l,{className:"schemes wrapper",mobile:12},k?S.a.createElement(f,null):null,O?S.a.createElement(h,null):null,A?S.a.createElement(d,null):null)):null,S.a.createElement(m,null),S.a.createElement(c,null,S.a.createElement(l,{mobile:12,desktop:12},S.a.createElement(s,null))),S.a.createElement(c,null,S.a.createElement(l,{mobile:12,desktop:12},S.a.createElement(u,null)))))}}]),t}(S.a.Component),kn=n(480),On=n.n(kn),An={value:"",onChange:function(){},schema:{},keyName:"",required:!1,errors:Object(k.List)()},Tn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.dispatchInitialValue,n=e.value,r=e.onChange;t&&r(n)}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.errors,r=e.value,o=e.onChange,i=e.getComponent,a=e.fn,s=e.disabled;t.toJS&&(t=t.toJS());var u=t,c=u.type,l=u.format,p=void 0===l?"":l,f=i(p?"JsonSchema_".concat(c,"_").concat(p):"JsonSchema_".concat(c))||i("JsonSchema_string");return S.a.createElement(f,kt()({},this.props,{errors:n,fn:a,getComponent:i,value:r,onChange:o,schema:t,disabled:s}))}}]),t}(E.Component);v()(Tn,"defaultProps",An);var jn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChange",function(e){var t="file"===n.props.schema.type?e.target.files[0]:e.target.value;n.props.onChange(t,n.props.keyName)}),v()(ue()(n),"onEnumChange",function(e){return n.props.onChange(e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.schema,o=e.errors,i=e.required,a=e.description,s=e.disabled,u=r.enum;if(o=o.toJS?o.toJS():[],u){var c=t("Select");return S.a.createElement(c,{className:o.length?"invalid":"",title:o.length?o:"",allowedValues:u,value:n,allowEmptyValue:!i,disabled:s,onChange:this.onEnumChange})}var l=s||"formData"===r.in&&!("FormData"in window),p=t("Input");return"file"===r.type?S.a.createElement(p,{type:"file",className:o.length?"invalid":"",title:o.length?o:"",onChange:this.onChange,disabled:l}):S.a.createElement(On.a,{type:"password"===r.format?"password":"text",className:o.length?"invalid":"",title:o.length?o:"",value:n,minLength:0,debounceTimeout:350,placeholder:a,onChange:this.onChange,disabled:l})}}]),t}(E.Component);v()(jn,"defaultProps",An);var Pn=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(){return r.props.onChange(r.state.value)}),v()(ue()(r),"onItemChange",function(e,t){r.setState(function(n){return{value:n.value.set(t,e)}},r.onChange)}),v()(ue()(r),"removeItem",function(e){r.setState(function(t){return{value:t.value.remove(e)}},r.onChange)}),v()(ue()(r),"addItem",function(){r.setState(function(e){return e.value=Nn(e.value),{value:e.value.push("")}},r.onChange)}),v()(ue()(r),"onEnumChange",function(e){r.setState(function(){return{value:e}},r.onChange)}),r.state={value:Nn(e.value)},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.value!==this.state.value&&this.setState({value:e.value})}},{key:"render",value:function(){var e=this,t=this.props,n=t.getComponent,r=t.required,o=t.schema,i=t.errors,a=t.fn,s=t.disabled;i=i.toJS?i.toJS():[];var u=a.inferSchema(o.items),c=n("JsonSchemaForm"),l=n("Button"),p=u.enum,f=this.state.value;if(p){var h=n("Select");return S.a.createElement(h,{className:i.length?"invalid":"",title:i.length?i:"",multiple:!0,value:f,disabled:s,allowedValues:p,allowEmptyValue:!r,onChange:this.onEnumChange})}return S.a.createElement("div",{className:"json-schema-array"},!f||!f.count||f.count()<1?null:f.map(function(t,r){var o=y()({},u);if(i.length){var p=i.filter(function(e){return e.index===r});p.length&&(i=[p[0].error+r])}return S.a.createElement("div",{key:r,className:"json-schema-form-item"},S.a.createElement(c,{fn:a,getComponent:n,value:t,onChange:function(t){return e.onItemChange(t,r)},schema:o,disabled:s}),s?null:S.a.createElement(l,{className:"btn btn-sm json-schema-form-item-remove",onClick:function(){return e.removeItem(r)}}," - "))}).toArray(),s?null:S.a.createElement(l,{className:"btn btn-sm json-schema-form-item-add ".concat(i.length?"invalid":null),onClick:this.addItem},"Add item"))}}]),t}(E.PureComponent);v()(Pn,"defaultProps",An);var In=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onEnumChange",function(e){return n.props.onChange(e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.errors,o=e.schema,i=e.required,a=e.disabled;r=r.toJS?r.toJS():[];var s=t("Select");return S.a.createElement(s,{className:r.length?"invalid":"",title:r.length?r:"",value:String(n),disabled:a,allowedValues:Object(k.fromJS)(o.enum||["true","false"]),allowEmptyValue:!o.enum||!i,onChange:this.onEnumChange})}}]),t}(E.Component);v()(In,"defaultProps",An);var Mn=function(e){function t(){var e;return _()(this,t),e=oe()(this,ae()(t).call(this)),v()(ue()(e),"onChange",function(t){e.props.onChange(t)}),v()(ue()(e),"handleOnChange",function(t){var n=t.target.value;e.onChange(n)}),e}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.errors,o=e.disabled,i=t("TextArea");return S.a.createElement("div",null,S.a.createElement(i,{className:rt()({invalid:r.size}),title:r.size?r.join(", "):"",value:Object(D.G)(n),disabled:o,onChange:this.handleOnChange}))}}]),t}(E.PureComponent);function Nn(e){return k.List.isList(e)?e:Object(k.List)()}v()(Mn,"defaultProps",An);var Rn=function(){var e={components:{App:he,authorizationPopup:de,authorizeBtn:me,AuthorizeBtnContainer:ve,authorizeOperationBtn:ge,auths:ye,AuthItem:be,authError:_e,oauth2:Te,apiKeyAuth:we,basicAuth:xe,clear:je,liveResponse:Me,InitializedInput:Vt,info:Kt,InfoContainer:Gt,JumpToPath:$t,onlineValidatorBadge:De,operations:Fe,operation:Be,OperationSummary:We,OperationSummaryMethod:Je,OperationSummaryPath:Ye,highlightCode:et,responses:tt,response:ot,responseBody:ct,parameters:ft,parameterRow:vt,execute:gt,headers:bt,errors:_t,contentType:St,overview:zt,footer:Zt,FilterContainer:Xt,ParamBody:en,curl:rn,schemes:on,SchemesContainer:an,modelExample:un,ModelWrapper:cn,ModelCollapse:sn,Model:ln.a,Models:pn,EnumModel:fn,ObjectModel:hn,ArrayModel:mn,PrimitiveModel:gn,Property:yn,TryItOutButton:bn,Markdown:Sn.a,BaseLayout:Cn,VersionPragmaFilter:_n,VersionStamp:wn,OperationExt:$e,OperationExtRow:Ze,ParameterExt:ht,ParameterIncludeEmpty:dt,OperationTag:ze,OperationContainer:fe,DeepLink:xn,InfoUrl:Yt,InfoBasePath:Ht,SvgAssets:En,Example:Ee,ExamplesSelect:ke,ExamplesSelectValueRetainer:Ae}},t={components:r},n={components:o};return[Q.default,Z.default,K.default,J.default,W.default,V.default,H.default,Y.default,e,t,G.default,n,$.default,X.default,ee.default,te.default,ne.default]},Dn=n(298);function Ln(){return[Rn,Dn.default]}var Un=n(320);n.d(t,"default",function(){return Hn});var qn=!0,Fn="g5f6ec8ce",zn="3.23.11",Bn="jenins-swagger-oss",Vn="Fri, 20 Sep 2019 20:33:46 GMT";function Hn(e){R.a.versions=R.a.versions||{},R.a.versions.swaggerUi={version:zn,gitRevision:Fn,gitDirty:qn,buildTimestamp:Vn,machine:Bn};var t={dom_id:null,domNode:null,spec:{},url:"",urls:null,layout:"BaseLayout",docExpansion:"list",maxDisplayedTags:null,filter:null,validatorUrl:"https://validator.swagger.io/validator",oauth2RedirectUrl:"".concat(window.location.protocol,"//").concat(window.location.host,"/oauth2-redirect.html"),configs:{},custom:{},displayOperationId:!1,displayRequestDuration:!1,deepLinking:!1,requestInterceptor:function(e){return e},responseInterceptor:function(e){return e},showMutatedRequest:!0,defaultModelRendering:"example",defaultModelExpandDepth:1,defaultModelsExpandDepth:1,showExtensions:!1,showCommonExtensions:!1,withCredentials:void 0,supportedSubmitMethods:["get","put","post","delete","options","head","patch","trace"],presets:[Ln],plugins:[],initialState:{},fn:{},components:{}},n=Object(D.B)(),r=e.domNode;delete e.domNode;var o=f()({},t,e,n),i={system:{configs:o.configs},plugins:o.presets,state:f()({layout:{layout:o.layout,filter:o.filter},spec:{spec:"",url:o.url}},o.initialState)};if(o.initialState)for(var s in o.initialState)o.initialState.hasOwnProperty(s)&&void 0===o.initialState[s]&&delete i.state[s];var c=new U(i);c.register([o.plugins,function(){return{fn:o.fn,components:o.components,state:o.state}}]);var p=c.getSystem(),h=function(e){var t=p.specSelectors.getLocalConfig?p.specSelectors.getLocalConfig():{},i=f()({},t,o,e||{},n);if(r&&(i.domNode=r),c.setConfigs(i),p.configsActions.loaded(),null!==e&&(!n.url&&"object"===l()(i.spec)&&u()(i.spec).length?(p.specActions.updateUrl(""),p.specActions.updateLoadingStatus("success"),p.specActions.updateSpec(a()(i.spec))):p.specActions.download&&i.url&&!i.urls&&(p.specActions.updateUrl(i.url),p.specActions.download(i.url))),i.domNode)p.render(i.domNode,"App");else if(i.dom_id){var s=document.querySelector(i.dom_id);p.render(s,"App")}else null===i.dom_id||null===i.domNode||console.error("Skipped rendering: no `dom_id` or `domNode` was specified");return p},d=n.config||o.configUrl;return d&&p.specActions&&p.specActions.getConfigByUrl&&(!p.specActions.getConfigByUrl||p.specActions.getConfigByUrl({url:d,loadRemoteConfig:!0,requestInterceptor:o.requestInterceptor,responseInterceptor:o.responseInterceptor},h))?(p.specActions.getConfigByUrl(d,h),p):h()}Hn.presets={apis:Ln},Hn.plugins=Un.default}]).default});
+ */o=[],void 0===(i="function"==typeof(r=function(){var e,t,n,r,o,i,a,s=function(e){e=e||{},this.version=s.version,this.urls=this.normalizeUrlsCfg(e.urls),this.email="boolean"!=typeof e.email||e.email,this.twitter="boolean"!=typeof e.twitter||e.twitter,this.phone="boolean"!=typeof e.phone||e.phone,this.hashtag=e.hashtag||!1,this.newWindow="boolean"!=typeof e.newWindow||e.newWindow,this.stripPrefix="boolean"!=typeof e.stripPrefix||e.stripPrefix;var t=this.hashtag;if(!1!==t&&"twitter"!==t&&"facebook"!==t&&"instagram"!==t)throw new Error("invalid `hashtag` cfg - see docs");this.truncate=this.normalizeTruncateCfg(e.truncate),this.className=e.className||"",this.replaceFn=e.replaceFn||null,this.htmlParser=null,this.matchers=null,this.tagBuilder=null};return s.link=function(e,t){return new s(t).link(e)},s.version="0.28.1",s.prototype={constructor:s,normalizeUrlsCfg:function(e){return null==e&&(e=!0),"boolean"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:"boolean"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:"boolean"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:"boolean"!=typeof e.tldMatches||e.tldMatches}},normalizeTruncateCfg:function(e){return"number"==typeof e?{length:e,location:"end"}:s.Util.defaults(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})},parse:function(e){for(var t=this.getHtmlParser().parse(e),n=0,r=[],o=0,i=t.length;o<i;o++){var a=t[o],s=a.getType();if("element"===s&&"a"===a.getTagName())a.isClosing()?n=Math.max(n-1,0):n++;else if("text"===s&&0===n){var u=this.parseText(a.getText(),a.getOffset());r.push.apply(r,u)}}return r=this.compactMatches(r),r=this.removeUnwantedMatches(r)},compactMatches:function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++)for(var n=e[t],r=n.getOffset()+n.getMatchedText().length;t+1<e.length&&e[t+1].getOffset()<=r;)e.splice(t+1,1);return e},removeUnwantedMatches:function(e){var t=s.Util.remove;return this.hashtag||t(e,function(e){return"hashtag"===e.getType()}),this.email||t(e,function(e){return"email"===e.getType()}),this.phone||t(e,function(e){return"phone"===e.getType()}),this.twitter||t(e,function(e){return"twitter"===e.getType()}),this.urls.schemeMatches||t(e,function(e){return"url"===e.getType()&&"scheme"===e.getUrlMatchType()}),this.urls.wwwMatches||t(e,function(e){return"url"===e.getType()&&"www"===e.getUrlMatchType()}),this.urls.tldMatches||t(e,function(e){return"url"===e.getType()&&"tld"===e.getUrlMatchType()}),e},parseText:function(e,t){t=t||0;for(var n=this.getMatchers(),r=[],o=0,i=n.length;o<i;o++){for(var a=n[o].parseMatches(e),s=0,u=a.length;s<u;s++)a[s].setOffset(t+a[s].getOffset());r.push.apply(r,a)}return r},link:function(e){if(!e)return"";for(var t=this.parse(e),n=[],r=0,o=0,i=t.length;o<i;o++){var a=t[o];n.push(e.substring(r,a.getOffset())),n.push(this.createMatchReturnVal(a)),r=a.getOffset()+a.getMatchedText().length}return n.push(e.substring(r)),n.join("")},createMatchReturnVal:function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this,this,e)),"string"==typeof t?t:!1===t?e.getMatchedText():t instanceof s.HtmlTag?t.toAnchorString():e.buildTag().toAnchorString()},getHtmlParser:function(){var e=this.htmlParser;return e||(e=this.htmlParser=new s.htmlParser.HtmlParser),e},getMatchers:function(){if(this.matchers)return this.matchers;var e=s.matcher,t=this.getTagBuilder(),n=[new e.Hashtag({tagBuilder:t,serviceName:this.hashtag}),new e.Email({tagBuilder:t}),new e.Phone({tagBuilder:t}),new e.Twitter({tagBuilder:t}),new e.Url({tagBuilder:t,stripPrefix:this.stripPrefix})];return this.matchers=n},getTagBuilder:function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new s.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e}},s.match={},s.matcher={},s.htmlParser={},s.truncate={},s.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},defaults:function(e,t){for(var n in t)t.hasOwnProperty(n)&&void 0===e[n]&&(e[n]=t[n]);return e},extend:function(e,t){var n,r=e.prototype,o=function(){};o.prototype=r;var i=(n=t.hasOwnProperty("constructor")?t.constructor:function(){r.constructor.apply(this,arguments)}).prototype=new o;return i.constructor=n,i.superclass=r,delete t.constructor,s.Util.assign(i,t),n},ellipsis:function(e,t,n){return e.length>t&&(n=null==n?"..":n,e=e.substring(0,t-n.length)+n),e},indexOf:function(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},remove:function(e,t){for(var n=e.length-1;n>=0;n--)!0===t(e[n])&&e.splice(n,1)},splitAndCapture:function(e,t){if(!t.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var n,r=[],o=0;n=t.exec(e);)r.push(e.substring(o,n.index)),r.push(n[0]),o=n.index+n[0].length;return r.push(e.substring(o)),r},trim:function(e){return e.replace(this.trimRegex,"")}},s.HtmlTag=s.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(e){s.Util.assign(this,e),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(e){return this.tagName=e,this},getTagName:function(){return this.tagName||""},setAttr:function(e,t){return this.getAttrs()[e]=t,this},getAttr:function(e){return this.getAttrs()[e]},setAttrs:function(e){var t=this.getAttrs();return s.Util.assign(t,e),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(e){return this.setAttr("class",e)},addClass:function(e){for(var t,n=this.getClass(),r=this.whitespaceRegex,o=s.Util.indexOf,i=n?n.split(r):[],a=e.split(r);t=a.shift();)-1===o(i,t)&&i.push(t);return this.getAttrs().class=i.join(" "),this},removeClass:function(e){for(var t,n=this.getClass(),r=this.whitespaceRegex,o=s.Util.indexOf,i=n?n.split(r):[],a=e.split(r);i.length&&(t=a.shift());){var u=o(i,t);-1!==u&&i.splice(u,1)}return this.getAttrs().class=i.join(" "),this},getClass:function(){return this.getAttrs().class||""},hasClass:function(e){return-1!==(" "+this.getClass()+" ").indexOf(" "+e+" ")},setInnerHtml:function(e){return this.innerHtml=e,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var e=this.getTagName(),t=this.buildAttrsStr();return["<",e,t=t?" "+t:"",">",this.getInnerHtml(),"</",e,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n+'="'+e[n]+'"');return t.join(" ")}}),s.RegexLib={alphaNumericCharsStr:a="A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞭꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",domainNameRegex:new RegExp("["+a+".\\-]*["+a+"\\-]"),tldRegex:/(?:travelersinsurance|sandvikcoromant|kerryproperties|cancerresearch|weatherchannel|kerrylogistics|spreadbetting|international|wolterskluwer|lifeinsurance|construction|pamperedchef|scholarships|versicherung|bridgestone|creditunion|kerryhotels|investments|productions|blackfriday|enterprises|lamborghini|photography|motorcycles|williamhill|playstation|contractors|barclaycard|accountants|redumbrella|engineering|management|telefonica|protection|consulting|tatamotors|creditcard|vlaanderen|schaeffler|associates|properties|foundation|republican|bnpparibas|boehringer|eurovision|extraspace|industries|immobilien|university|technology|volkswagen|healthcare|restaurant|cuisinella|vistaprint|apartments|accountant|travelers|homedepot|institute|vacations|furniture|fresenius|insurance|christmas|bloomberg|solutions|barcelona|firestone|financial|kuokgroup|fairwinds|community|passagens|goldpoint|equipment|lifestyle|yodobashi|aquarelle|marketing|analytics|education|amsterdam|statefarm|melbourne|allfinanz|directory|microsoft|stockholm|montblanc|accenture|lancaster|landrover|everbank|istanbul|graphics|grainger|ipiranga|softbank|attorney|pharmacy|saarland|catering|airforce|yokohama|mortgage|frontier|mutuelle|stcgroup|memorial|pictures|football|symantec|cipriani|ventures|telecity|cityeats|verisign|flsmidth|boutique|cleaning|firmdale|clinique|clothing|redstone|infiniti|deloitte|feedback|services|broadway|plumbing|commbank|training|barclays|exchange|computer|brussels|software|delivery|barefoot|builders|business|bargains|engineer|holdings|download|security|helsinki|lighting|movistar|discount|hdfcbank|supplies|marriott|property|diamonds|capetown|partners|democrat|jpmorgan|bradesco|budapest|rexroth|zuerich|shriram|academy|science|support|youtube|singles|surgery|alibaba|statoil|dentist|schwarz|android|cruises|cricket|digital|markets|starhub|systems|courses|coupons|netbank|country|domains|corsica|network|neustar|realtor|lincoln|limited|schmidt|yamaxun|cooking|contact|auction|spiegel|liaison|leclerc|latrobe|lasalle|abogado|compare|lanxess|exposed|express|company|cologne|college|avianca|lacaixa|fashion|recipes|ferrero|komatsu|storage|wanggou|clubmed|sandvik|fishing|fitness|bauhaus|kitchen|flights|florist|flowers|watches|weather|temasek|samsung|bentley|forsale|channel|theater|frogans|theatre|okinawa|website|tickets|jewelry|gallery|tiffany|iselect|shiksha|brother|organic|wedding|genting|toshiba|origins|philips|hyundai|hotmail|hoteles|hosting|rentals|windows|cartier|bugatti|holiday|careers|whoswho|hitachi|panerai|caravan|reviews|guitars|capital|trading|hamburg|hangout|finance|stream|family|abbott|health|review|travel|report|hermes|hiphop|gratis|career|toyota|hockey|dating|repair|google|social|soccer|reisen|global|otsuka|giving|unicom|casino|photos|center|broker|rocher|orange|bostik|garden|insure|ryukyu|bharti|safety|physio|sakura|oracle|online|jaguar|gallup|piaget|tienda|futbol|pictet|joburg|webcam|berlin|office|juegos|kaufen|chanel|chrome|xihuan|church|tennis|circle|kinder|flickr|bayern|claims|clinic|viajes|nowruz|xperia|norton|yachts|studio|coffee|camera|sanofi|nissan|author|expert|events|comsec|lawyer|tattoo|viking|estate|villas|condos|realty|yandex|energy|emerck|virgin|vision|durban|living|school|coupon|london|taobao|natura|taipei|nagoya|luxury|walter|aramco|sydney|madrid|credit|maison|makeup|schule|market|anquan|direct|design|swatch|suzuki|alsace|vuelos|dental|alipay|voyage|shouji|voting|airtel|mutual|degree|supply|agency|museum|mobily|dealer|monash|select|mormon|active|moscow|racing|datsun|quebec|nissay|rodeo|email|gifts|works|photo|chloe|edeka|cheap|earth|vista|tushu|koeln|glass|shoes|globo|tunes|gmail|nokia|space|kyoto|black|ricoh|seven|lamer|sener|epson|cisco|praxi|trust|citic|crown|shell|lease|green|legal|lexus|ninja|tatar|gripe|nikon|group|video|wales|autos|gucci|party|nexus|guide|linde|adult|parts|amica|lixil|boats|azure|loans|locus|cymru|lotte|lotto|stada|click|poker|quest|dabur|lupin|nadex|paris|faith|dance|canon|place|gives|trade|skype|rocks|mango|cloud|boots|smile|final|swiss|homes|honda|media|horse|cards|deals|watch|bosch|house|pizza|miami|osaka|tours|total|xerox|coach|sucks|style|delta|toray|iinet|tools|money|codes|beats|tokyo|salon|archi|movie|baidu|study|actor|yahoo|store|apple|world|forex|today|bible|tmall|tirol|irish|tires|forum|reise|vegas|vodka|sharp|omega|weber|jetzt|audio|promo|build|bingo|chase|gallo|drive|dubai|rehab|press|solar|sale|beer|bbva|bank|band|auto|sapo|sarl|saxo|audi|asia|arte|arpa|army|yoga|ally|zara|scor|scot|sexy|seat|zero|seek|aero|adac|zone|aarp|maif|meet|meme|menu|surf|mini|mobi|mtpc|porn|desi|star|ltda|name|talk|navy|love|loan|live|link|news|limo|like|spot|life|nico|lidl|lgbt|land|taxi|team|tech|kred|kpmg|sony|song|kiwi|kddi|jprs|jobs|sohu|java|itau|tips|info|immo|icbc|hsbc|town|host|page|toys|here|help|pars|haus|guru|guge|tube|goog|golf|gold|sncf|gmbh|gift|ggee|gent|gbiz|game|vana|pics|fund|ford|ping|pink|fish|film|fast|farm|play|fans|fail|plus|skin|pohl|fage|moda|post|erni|dvag|prod|doha|prof|docs|viva|diet|luxe|site|dell|sina|dclk|show|qpon|date|vote|cyou|voto|read|coop|cool|wang|club|city|chat|cern|cash|reit|rent|casa|cars|care|camp|rest|call|cafe|weir|wien|rich|wiki|buzz|wine|book|bond|room|work|rsvp|shia|ruhr|blue|bing|shaw|bike|safe|xbox|best|pwc|mtn|lds|aig|boo|fyi|nra|nrw|ntt|car|gal|obi|zip|aeg|vin|how|one|ong|onl|dad|ooo|bet|esq|org|htc|bar|uol|ibm|ovh|gdn|ice|icu|uno|gea|ifm|bot|top|wtf|lol|day|pet|eus|wtc|ubs|tvs|aco|ing|ltd|ink|tab|abb|afl|cat|int|pid|pin|bid|cba|gle|com|cbn|ads|man|wed|ceb|gmo|sky|ist|gmx|tui|mba|fan|ski|iwc|app|pro|med|ceo|jcb|jcp|goo|dev|men|aaa|meo|pub|jlc|bom|jll|gop|jmp|mil|got|gov|win|jot|mma|joy|trv|red|cfa|cfd|bio|moe|moi|mom|ren|biz|aws|xin|bbc|dnp|buy|kfh|mov|thd|xyz|fit|kia|rio|rip|kim|dog|vet|nyc|bcg|mtr|bcn|bms|bmw|run|bzh|rwe|tel|stc|axa|kpn|fly|krd|cab|bnl|foo|crs|eat|tci|sap|srl|nec|sas|net|cal|sbs|sfr|sca|scb|csc|edu|new|xxx|hiv|fox|wme|ngo|nhk|vip|sex|frl|lat|yun|law|you|tax|soy|sew|om|ac|hu|se|sc|sg|sh|sb|sa|rw|ru|rs|ro|re|qa|py|si|pw|pt|ps|sj|sk|pr|pn|pm|pl|sl|sm|pk|sn|ph|so|pg|pf|pe|pa|zw|nz|nu|nr|np|no|nl|ni|ng|nf|sr|ne|st|nc|na|mz|my|mx|mw|mv|mu|mt|ms|mr|mq|mp|mo|su|mn|mm|ml|mk|mh|mg|me|sv|md|mc|sx|sy|ma|ly|lv|sz|lu|lt|ls|lr|lk|li|lc|lb|la|tc|kz|td|ky|kw|kr|kp|kn|km|ki|kh|tf|tg|th|kg|ke|jp|jo|jm|je|it|is|ir|tj|tk|tl|tm|iq|tn|to|io|in|im|il|ie|ad|sd|ht|hr|hn|hm|tr|hk|gy|gw|gu|gt|gs|gr|gq|tt|gp|gn|gm|gl|tv|gi|tw|tz|ua|gh|ug|uk|gg|gf|ge|gd|us|uy|uz|va|gb|ga|vc|ve|fr|fo|fm|fk|fj|vg|vi|fi|eu|et|es|er|eg|ee|ec|dz|do|dm|dk|vn|dj|de|cz|cy|cx|cw|vu|cv|cu|cr|co|cn|cm|cl|ck|ci|ch|cg|cf|cd|cc|ca|wf|bz|by|bw|bv|bt|bs|br|bo|bn|bm|bj|bi|ws|bh|bg|bf|be|bd|bb|ba|az|ax|aw|au|at|as|ye|ar|aq|ao|am|al|yt|ai|za|ag|af|ae|zm|id)\b/},s.AnchorTagBuilder=s.Util.extend(Object,{constructor:function(e){s.Util.assign(this,e)},build:function(e){return new s.HtmlTag({tagName:"a",attrs:this.createAttrs(e.getType(),e.getAnchorHref()),innerHtml:this.processAnchorText(e.getAnchorText())})},createAttrs:function(e,t){var n={href:t},r=this.createCssClass(e);return r&&(n.class=r),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),n},createCssClass:function(e){var t=this.className;return t?t+" "+t+"-"+e:""},processAnchorText:function(e){return e=this.doTruncate(e)},doTruncate:function(e){var t=this.truncate;if(!t||!t.length)return e;var n=t.length,r=t.location;return"smart"===r?s.truncate.TruncateSmart(e,n,".."):"middle"===r?s.truncate.TruncateMiddle(e,n,".."):s.truncate.TruncateEnd(e,n,"..")}}),s.htmlParser.HtmlParser=s.Util.extend(Object,{htmlRegex:(o=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,i=/[^\s"'>\/=\x00-\x1F\x7F]+/.source+"(?:\\s*=\\s*"+o.source+")?",new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",i,"|",o.source+")",")*",">",")","|","(?:","<(/)?","(?:",/!--([\s\S]+?)--/.source,"|","(?:","("+/[0-9a-zA-Z][0-9a-zA-Z:]*/.source+")","(?:","(?:\\s+|\\b)",i,")*","\\s*/?",")",")",">",")"].join(""),"gi")),htmlCharacterEntitiesRegex:/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,parse:function(e){for(var t,n,r=this.htmlRegex,o=0,i=[];null!==(t=r.exec(e));){var a=t[0],s=t[3],u=t[1]||t[4],c=!!t[2],l=t.index,p=e.substring(o,l);p&&(n=this.parseTextAndEntityNodes(o,p),i.push.apply(i,n)),s?i.push(this.createCommentNode(l,a,s)):i.push(this.createElementNode(l,a,u,c)),o=l+a.length}if(o<e.length){var f=e.substring(o);f&&(n=this.parseTextAndEntityNodes(o,f),i.push.apply(i,n))}return i},parseTextAndEntityNodes:function(e,t){for(var n=[],r=s.Util.splitAndCapture(t,this.htmlCharacterEntitiesRegex),o=0,i=r.length;o<i;o+=2){var a=r[o],u=r[o+1];a&&(n.push(this.createTextNode(e,a)),e+=a.length),u&&(n.push(this.createEntityNode(e,u)),e+=u.length)}return n},createCommentNode:function(e,t,n){return new s.htmlParser.CommentNode({offset:e,text:t,comment:s.Util.trim(n)})},createElementNode:function(e,t,n,r){return new s.htmlParser.ElementNode({offset:e,text:t,tagName:n.toLowerCase(),closing:r})},createEntityNode:function(e,t){return new s.htmlParser.EntityNode({offset:e,text:t})},createTextNode:function(e,t){return new s.htmlParser.TextNode({offset:e,text:t})}}),s.htmlParser.HtmlNode=s.Util.extend(Object,{offset:void 0,text:void 0,constructor:function(e){if(s.Util.assign(this,e),null==this.offset)throw new Error("`offset` cfg required");if(null==this.text)throw new Error("`text` cfg required")},getType:s.Util.abstractMethod,getOffset:function(){return this.offset},getText:function(){return this.text}}),s.htmlParser.CommentNode=s.Util.extend(s.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),s.htmlParser.ElementNode=s.Util.extend(s.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),s.htmlParser.EntityNode=s.Util.extend(s.htmlParser.HtmlNode,{getType:function(){return"entity"}}),s.htmlParser.TextNode=s.Util.extend(s.htmlParser.HtmlNode,{getType:function(){return"text"}}),s.match.Match=s.Util.extend(Object,{constructor:function(e){if(null==e.tagBuilder)throw new Error("`tagBuilder` cfg required");if(null==e.matchedText)throw new Error("`matchedText` cfg required");if(null==e.offset)throw new Error("`offset` cfg required");this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset},getType:s.Util.abstractMethod,getMatchedText:function(){return this.matchedText},setOffset:function(e){this.offset=e},getOffset:function(){return this.offset},getAnchorHref:s.Util.abstractMethod,getAnchorText:s.Util.abstractMethod,buildTag:function(){return this.tagBuilder.build(this)}}),s.match.Email=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.email)throw new Error("`email` cfg required");this.email=e.email},getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),s.match.Hashtag=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.hashtag)throw new Error("`hashtag` cfg required");this.serviceName=e.serviceName,this.hashtag=e.hashtag},getType:function(){return"hashtag"},getServiceName:function(){return this.serviceName},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var e=this.serviceName,t=this.hashtag;switch(e){case"twitter":return"https://twitter.com/hashtag/"+t;case"facebook":return"https://www.facebook.com/hashtag/"+t;case"instagram":return"https://instagram.com/explore/tags/"+t;default:throw new Error("Unknown service name to point hashtag to: ",e)}},getAnchorText:function(){return"#"+this.hashtag}}),s.match.Phone=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.number)throw new Error("`number` cfg required");if(null==e.plusSign)throw new Error("`plusSign` cfg required");this.number=e.number,this.plusSign=e.plusSign},getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+(this.plusSign?"+":"")+this.number},getAnchorText:function(){return this.matchedText}}),s.match.Twitter=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),!e.twitterHandle)throw new Error("`twitterHandle` cfg required");this.twitterHandle=e.twitterHandle},getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),s.match.Url=s.Util.extend(s.match.Match,{constructor:function(e){if(s.match.Match.prototype.constructor.call(this,e),"scheme"!==e.urlMatchType&&"www"!==e.urlMatchType&&"tld"!==e.urlMatchType)throw new Error('`urlMatchType` cfg must be one of: "scheme", "www", or "tld"');if(!e.url)throw new Error("`url` cfg required");if(null==e.protocolUrlMatch)throw new Error("`protocolUrlMatch` cfg required");if(null==e.protocolRelativeMatch)throw new Error("`protocolRelativeMatch` cfg required");if(null==e.stripPrefix)throw new Error("`stripPrefix` cfg required");this.urlMatchType=e.urlMatchType,this.url=e.url,this.protocolUrlMatch=e.protocolUrlMatch,this.protocolRelativeMatch=e.protocolRelativeMatch,this.stripPrefix=e.stripPrefix},urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrlMatchType:function(){return this.urlMatchType},getUrl:function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url="http://"+e,this.protocolPrepended=!0),e},getAnchorHref:function(){return this.getUrl().replace(/&amp;/g,"&")},getAnchorText:function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix&&(e=this.stripUrlPrefix(e)),e=this.removeTrailingSlash(e)},stripUrlPrefix:function(e){return e.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(e){return e.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(e){return"/"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e}}),s.matcher.Matcher=s.Util.extend(Object,{constructor:function(e){if(!e.tagBuilder)throw new Error("`tagBuilder` cfg required");this.tagBuilder=e.tagBuilder},parseMatches:s.Util.abstractMethod}),s.matcher.Email=s.Util.extend(s.matcher.Matcher,{matcherRegex:(e=s.RegexLib.alphaNumericCharsStr,t=new RegExp("["+e+"\\-_';:&=+$.,]+@"),n=s.RegexLib.domainNameRegex,r=s.RegexLib.tldRegex,new RegExp([t.source,n.source,"\\.",r.source].join(""),"gi")),parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.tagBuilder,o=[];null!==(t=n.exec(e));){var i=t[0];o.push(new s.match.Email({tagBuilder:r,matchedText:i,offset:t.index,email:i}))}return o}}),s.matcher.Hashtag=s.Util.extend(s.matcher.Matcher,{matcherRegex:new RegExp("#[_"+s.RegexLib.alphaNumericCharsStr+"]{1,139}","g"),nonWordCharRegex:new RegExp("[^"+s.RegexLib.alphaNumericCharsStr+"]"),constructor:function(e){s.matcher.Matcher.prototype.constructor.call(this,e),this.serviceName=e.serviceName},parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.nonWordCharRegex,o=this.serviceName,i=this.tagBuilder,a=[];null!==(t=n.exec(e));){var u=t.index,c=e.charAt(u-1);if(0===u||r.test(c)){var l=t[0],p=t[0].slice(1);a.push(new s.match.Hashtag({tagBuilder:i,matchedText:l,offset:u,serviceName:o,hashtag:p}))}}return a}}),s.matcher.Phone=s.Util.extend(s.matcher.Matcher,{matcherRegex:/(?:(\+)?\d{1,3}[-\040.])?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]\d{4}/g,parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.tagBuilder,o=[];null!==(t=n.exec(e));){var i=t[0],a=i.replace(/\D/g,""),u=!!t[1];o.push(new s.match.Phone({tagBuilder:r,matchedText:i,offset:t.index,number:a,plusSign:u}))}return o}}),s.matcher.Twitter=s.Util.extend(s.matcher.Matcher,{matcherRegex:new RegExp("@[_"+s.RegexLib.alphaNumericCharsStr+"]{1,20}","g"),nonWordCharRegex:new RegExp("[^"+s.RegexLib.alphaNumericCharsStr+"]"),parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.nonWordCharRegex,o=this.tagBuilder,i=[];null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||r.test(u)){var c=t[0],l=t[0].slice(1);i.push(new s.match.Twitter({tagBuilder:o,matchedText:c,offset:a,twitterHandle:l}))}}return i}}),s.matcher.Url=s.Util.extend(s.matcher.Matcher,{matcherRegex:function(){var e=s.RegexLib.domainNameRegex,t=s.RegexLib.tldRegex,n=s.RegexLib.alphaNumericCharsStr,r=new RegExp("["+n+"\\-+&@#/%=~_()|'$*\\[\\]?!:,.;]*["+n+"\\-+&@#/%=~_()|'$*\\[\\]]");return new RegExp(["(?:","(",/(?:[A-Za-z][-.+A-Za-z0-9]*:(?![A-Za-z][-.+A-Za-z0-9]*:\/\/)(?!\d+\/?)(?:\/\/)?)/.source,e.source,")","|","(","(//)?",/(?:www\.)/.source,e.source,")","|","(","(//)?",e.source+"\\.",t.source,")",")","(?:"+r.source+")?"].join(""),"gi")}(),wordCharRegExp:/\w/,openParensRe:/\(/g,closeParensRe:/\)/g,constructor:function(e){if(s.matcher.Matcher.prototype.constructor.call(this,e),this.stripPrefix=e.stripPrefix,null==this.stripPrefix)throw new Error("`stripPrefix` cfg required")},parseMatches:function(e){for(var t,n=this.matcherRegex,r=this.stripPrefix,o=this.tagBuilder,i=[];null!==(t=n.exec(e));){var a=t[0],u=t[1],c=t[2],l=t[3],p=t[5],f=t.index,h=l||p,d=e.charAt(f-1);if(s.matcher.UrlMatchValidator.isValid(a,u)&&!(f>0&&"@"===d||f>0&&h&&this.wordCharRegExp.test(d))){if(this.matchHasUnbalancedClosingParen(a))a=a.substr(0,a.length-1);else{var m=this.matchHasInvalidCharAfterTld(a,u);m>-1&&(a=a.substr(0,m))}var v=u?"scheme":c?"www":"tld",g=!!u;i.push(new s.match.Url({tagBuilder:o,matchedText:a,offset:f,urlMatchType:v,url:a,protocolUrlMatch:g,protocolRelativeMatch:!!h,stripPrefix:r}))}}return i},matchHasUnbalancedClosingParen:function(e){if(")"===e.charAt(e.length-1)){var t=e.match(this.openParensRe),n=e.match(this.closeParensRe);if((t&&t.length||0)<(n&&n.length||0))return!0}return!1},matchHasInvalidCharAfterTld:function(e,t){if(!e)return-1;var n=0;t&&(n=e.indexOf(":"),e=e.slice(n));var r=/^((.?\/\/)?[A-Za-z0-9\u00C0-\u017F\.\-]*[A-Za-z0-9\u00C0-\u017F\-]\.[A-Za-z]+)/.exec(e);return null===r?-1:(n+=r[1].length,e=e.slice(r[1].length),/^[^.A-Za-z:\/?#]/.test(e)?n:-1)}}),s.matcher.UrlMatchValidator={hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]*:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]*:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z\u00C0-\u017F]/,ipRegex:/[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/,isValid:function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e))},isValidIpAddress:function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},isValidUriScheme:function(e){var t=e.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==t&&"vbscript:"!==t},urlMatchDoesNotHaveProtocolOrDot:function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(e,t){return!(!e||!t||this.hasWordCharAfterProtocolRegex.test(e))}},s.truncate.TruncateEnd=function(e,t,n){return s.Util.ellipsis(e,t,n)},s.truncate.TruncateMiddle=function(e,t,n){if(e.length<=t)return e;var r=t-n.length,o="";return r>0&&(o=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+o).substr(0,t)},s.truncate.TruncateSmart=function(e,t,n){var r=function(e){var t="";return e.scheme&&e.host&&(t+=e.scheme+"://"),e.host&&(t+=e.host),e.path&&(t+="/"+e.path),e.query&&(t+="?"+e.query),e.fragment&&(t+="#"+e.fragment),t},o=function(e,t){var r=t/2,o=Math.ceil(r),i=-1*Math.floor(r),a="";return i<0&&(a=e.substr(i)),e.substr(0,o)+n+a};if(e.length<=t)return e;var i=t-n.length,a=function(e){var t={},n=e,r=n.match(/^([a-z]+):\/\//i);return r&&(t.scheme=r[1],n=n.substr(r[0].length)),(r=n.match(/^(.*?)(?=(\?|#|\/|$))/i))&&(t.host=r[1],n=n.substr(r[0].length)),(r=n.match(/^\/(.*?)(?=(\?|#|$))/i))&&(t.path=r[1],n=n.substr(r[0].length)),(r=n.match(/^\?(.*?)(?=(#|$))/i))&&(t.query=r[1],n=n.substr(r[0].length)),(r=n.match(/^#(.*?)$/i))&&(t.fragment=r[1]),t}(e);if(a.query){var s=a.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);s&&(a.query=a.query.substr(0,s[1].length),e=r(a))}if(e.length<=t)return e;if(a.host&&(a.host=a.host.replace(/^www\./,""),e=r(a)),e.length<=t)return e;var u="";if(a.host&&(u+=a.host),u.length>=i)return a.host.length==t?(a.host.substr(0,t-n.length)+n).substr(0,t):o(u,i).substr(0,t);var c="";if(a.path&&(c+="/"+a.path),a.query&&(c+="?"+a.query),c){if((u+c).length>=i)return(u+c).length==t?(u+c).substr(0,t):(u+o(c,i-u.length)).substr(0,t);u+=c}if(a.fragment){var l="#"+a.fragment;if((u+l).length>=i)return(u+l).length==t?(u+l).substr(0,t):(u+o(l,i-u.length)).substr(0,t);u+=l}if(a.scheme&&a.host){var p=a.scheme+"://";if((u+p).length<i)return(p+u).substr(0,t)}if(u.length<=t)return u;var f="";return i>0&&(f=u.substr(-1*Math.floor(i/2))),(u.substr(0,Math.ceil(i/2))+n+f).substr(0,t)},s})?r.apply(t,o):r)||(e.exports=i)},function(e,t,n){"use strict";var r=n(190),o=n(995),i=[["code",n(996)],["fences",n(997),["paragraph","blockquote","list"]],["blockquote",n(998),["paragraph","blockquote","list"]],["hr",n(999),["paragraph","blockquote","list"]],["list",n(1e3),["paragraph","blockquote"]],["footnote",n(1001),["paragraph"]],["heading",n(1002),["paragraph","blockquote"]],["lheading",n(1003)],["htmlblock",n(1004),["paragraph","blockquote"]],["table",n(1006),["paragraph"]],["deflist",n(1007),["paragraph"]],["paragraph",n(1008)]];function a(){this.ruler=new r;for(var e=0;e<i.length;e++)this.ruler.push(i[e][0],i[e][1],{alt:(i[e][2]||[]).slice()})}a.prototype.tokenize=function(e,t,n){for(var r,o=this.ruler.getRules(""),i=o.length,a=t,s=!1;a<n&&(e.line=a=e.skipEmptyLines(a),!(a>=n))&&!(e.tShift[a]<e.blkIndent);){for(r=0;r<i&&!o[r](e,a,n,!1);r++);if(e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(a=e.line)<n&&e.isEmpty(a)){if(s=!0,++a<n&&"list"===e.parentType&&e.isEmpty(a))break;e.line=a}}};var s=/[\n\t]/g,u=/\r[\n\u0085]|[\u2424\u2028\u0085]/g,c=/\u00a0/g;a.prototype.parse=function(e,t,n,r){var i,a=0,l=0;if(!e)return[];(e=(e=e.replace(c," ")).replace(u,"\n")).indexOf("\t")>=0&&(e=e.replace(s,function(t,n){var r;return 10===e.charCodeAt(n)?(a=n+1,l=0,t):(r="    ".slice((n-a-l)%4),l=n-a+1,r)})),i=new o(e,this,t,n,r),this.tokenize(i,i.line,i.lineMax)},e.exports=a},function(e,t,n){"use strict";function r(e,t,n,r,o){var i,a,s,u,c,l,p;for(this.src=e,this.parser=t,this.options=n,this.env=r,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType="root",this.ddIndent=-1,this.level=0,this.result="",l=0,p=!1,s=u=l=0,c=(a=this.src).length;u<c;u++){if(i=a.charCodeAt(u),!p){if(32===i){l++;continue}p=!0}10!==i&&u!==c-1||(10!==i&&u++,this.bMarks.push(s),this.eMarks.push(u),this.tShift.push(l),p=!1,l=0,s=u+1)}this.bMarks.push(a.length),this.eMarks.push(a.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}r.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},r.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},r.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},r.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},r.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},r.prototype.getLines=function(e,t,n,r){var o,i,a,s,u,c=e;if(e>=t)return"";if(c+1===t)return i=this.bMarks[c]+Math.min(this.tShift[c],n),a=r?this.eMarks[c]+1:this.eMarks[c],this.src.slice(i,a);for(s=new Array(t-e),o=0;c<t;c++,o++)(u=this.tShift[c])>n&&(u=n),u<0&&(u=0),i=this.bMarks[c]+u,a=c+1<t||r?this.eMarks[c]+1:this.eMarks[c],s[o]=this.src.slice(i,a);return s.join("")},e.exports=r},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.tShift[r]-e.blkIndent>=4))break;o=++r}return e.line=r,e.tokens.push({type:"code",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c=!1,l=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(l+3>p)return!1;if(126!==(o=e.src.charCodeAt(l))&&96!==o)return!1;if(u=l,(i=(l=e.skipChars(l,o))-u)<3)return!1;if((a=e.src.slice(l,p).trim()).indexOf("`")>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((l=u=e.bMarks[s]+e.tShift[s])<(p=e.eMarks[s])&&e.tShift[s]<e.blkIndent);)if(e.src.charCodeAt(l)===o&&!(e.tShift[s]-e.blkIndent>=4||(l=e.skipChars(l,o))-u<i||(l=e.skipSpaces(l))<p)){c=!0;break}return i=e.tShift[t],e.line=s+(c?1:0),e.tokens.push({type:"fence",params:a,content:e.getLines(t+1,s,i,!0),lines:[t,e.line],level:e.level}),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c,l,p,f,h,d,m=e.bMarks[t]+e.tShift[t],v=e.eMarks[t];if(m>v)return!1;if(62!==e.src.charCodeAt(m++))return!1;if(e.level>=e.options.maxNesting)return!1;if(r)return!0;for(32===e.src.charCodeAt(m)&&m++,u=e.blkIndent,e.blkIndent=0,s=[e.bMarks[t]],e.bMarks[t]=m,i=(m=m<v?e.skipSpaces(m):m)>=v,a=[e.tShift[t]],e.tShift[t]=m-e.bMarks[t],p=e.parser.ruler.getRules("blockquote"),o=t+1;o<n&&!((m=e.bMarks[o]+e.tShift[o])>=(v=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(m++)){if(i)break;for(d=!1,f=0,h=p.length;f<h;f++)if(p[f](e,o,n,!0)){d=!0;break}if(d)break;s.push(e.bMarks[o]),a.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(m)&&m++,s.push(e.bMarks[o]),e.bMarks[o]=m,i=(m=m<v?e.skipSpaces(m):m)>=v,a.push(e.tShift[o]),e.tShift[o]=m-e.bMarks[o];for(c=e.parentType,e.parentType="blockquote",e.tokens.push({type:"blockquote_open",lines:l=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:"blockquote_close",level:--e.level}),e.parentType=c,l[1]=e.line,f=0;f<a.length;f++)e.bMarks[f+t]=s[f],e.tShift[f+t]=a[f];return e.blkIndent=u,!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s=e.bMarks[t],u=e.eMarks[t];if((s+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(s++))&&45!==o&&95!==o)return!1;for(i=1;s<u;){if((a=e.src.charCodeAt(s++))!==o&&32!==a)return!1;a===o&&i++}return!(i<3)&&(!!r||(e.line=t+1,e.tokens.push({type:"hr",lines:[t,e.line],level:e.level}),!0))}},function(e,t,n){"use strict";function r(e,t){var n,r,o;return(r=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(n=e.src.charCodeAt(r++))&&45!==n&&43!==n?-1:r<o&&32!==e.src.charCodeAt(r)?-1:r}function o(e,t){var n,r=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(r+1>=o)return-1;if((n=e.src.charCodeAt(r++))<48||n>57)return-1;for(;;){if(r>=o)return-1;if(!((n=e.src.charCodeAt(r++))>=48&&n<=57)){if(41===n||46===n)break;return-1}}return r<o&&32!==e.src.charCodeAt(r)?-1:r}e.exports=function(e,t,n,i){var a,s,u,c,l,p,f,h,d,m,v,g,y,b,_,w,x,E,S,C,k,O=!0;if((h=o(e,t))>=0)g=!0;else{if(!((h=r(e,t))>=0))return!1;g=!1}if(e.level>=e.options.maxNesting)return!1;if(v=e.src.charCodeAt(h-1),i)return!0;for(b=e.tokens.length,g?(f=e.bMarks[t]+e.tShift[t],m=Number(e.src.substr(f,h-f-1)),e.tokens.push({type:"ordered_list_open",order:m,lines:w=[t,0],level:e.level++})):e.tokens.push({type:"bullet_list_open",lines:w=[t,0],level:e.level++}),a=t,_=!1,E=e.parser.ruler.getRules("list");!(!(a<n)||((d=(y=e.skipSpaces(h))>=e.eMarks[a]?1:y-h)>4&&(d=1),d<1&&(d=1),s=h-e.bMarks[a]+d,e.tokens.push({type:"list_item_open",lines:x=[t,0],level:e.level++}),c=e.blkIndent,l=e.tight,u=e.tShift[t],p=e.parentType,e.tShift[t]=y-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType="list",e.parser.tokenize(e,t,n,!0),e.tight&&!_||(O=!1),_=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=c,e.tShift[t]=u,e.tight=l,e.parentType=p,e.tokens.push({type:"list_item_close",level:--e.level}),a=t=e.line,x[1]=a,y=e.bMarks[t],a>=n)||e.isEmpty(a)||e.tShift[a]<e.blkIndent);){for(k=!1,S=0,C=E.length;S<C;S++)if(E[S](e,a,n,!0)){k=!0;break}if(k)break;if(g){if((h=o(e,a))<0)break}else if((h=r(e,a))<0)break;if(v!==e.src.charCodeAt(h-1))break}return e.tokens.push({type:g?"ordered_list_close":"bullet_list_close",level:--e.level}),w[1]=a,e.line=a,O&&function(e,t){var n,r,o=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===o&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}(e,b),!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s,u,c=e.bMarks[t]+e.tShift[t],l=e.eMarks[t];if(c+4>l)return!1;if(91!==e.src.charCodeAt(c))return!1;if(94!==e.src.charCodeAt(c+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(s=c+2;s<l;s++){if(32===e.src.charCodeAt(s))return!1;if(93===e.src.charCodeAt(s))break}return s!==c+2&&(!(s+1>=l||58!==e.src.charCodeAt(++s))&&(!!r||(s++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(c+2,s-2),e.env.footnotes.refs[":"+u]=-1,e.tokens.push({type:"footnote_reference_open",label:u,level:e.level++}),o=e.bMarks[t],i=e.tShift[t],a=e.parentType,e.tShift[t]=e.skipSpaces(s)-s,e.bMarks[t]=s,e.blkIndent+=4,e.parentType="footnote",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,n,!0),e.parentType=a,e.blkIndent-=4,e.tShift[t]=i,e.bMarks[t]=o,e.tokens.push({type:"footnote_reference_close",level:--e.level}),!0)))}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var o,i,a,s=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(s>=u)return!1;if(35!==(o=e.src.charCodeAt(s))||s>=u)return!1;for(i=1,o=e.src.charCodeAt(++s);35===o&&s<u&&i<=6;)i++,o=e.src.charCodeAt(++s);return!(i>6||s<u&&32!==o)&&(!!r||(u=e.skipCharsBack(u,32,s),(a=e.skipCharsBack(u,35,s))>s&&32===e.src.charCodeAt(a-1)&&(u=a),e.line=t+1,e.tokens.push({type:"heading_open",hLevel:i,lines:[t,e.line],level:e.level}),s<u&&e.tokens.push({type:"inline",content:e.src.slice(s,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"heading_close",hLevel:i,level:e.level}),!0))}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,o,i,a=t+1;return!(a>=n)&&(!(e.tShift[a]<e.blkIndent)&&(!(e.tShift[a]-e.blkIndent>3)&&(!((o=e.bMarks[a]+e.tShift[a])>=(i=e.eMarks[a]))&&((45===(r=e.src.charCodeAt(o))||61===r)&&(o=e.skipChars(o,r),!((o=e.skipSpaces(o))<i)&&(o=e.bMarks[t]+e.tShift[t],e.line=a+1,e.tokens.push({type:"heading_open",hLevel:61===r?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:"heading_close",hLevel:61===r?1:2,level:e.level}),!0))))))}},function(e,t,n){"use strict";var r=n(1005),o=/^<([a-zA-Z]{1,15})[\s\/>]/,i=/^<\/([a-zA-Z]{1,15})[\s>]/;e.exports=function(e,t,n,a){var s,u,c,l=e.bMarks[t],p=e.eMarks[t],f=e.tShift[t];if(l+=f,!e.options.html)return!1;if(f>3||l+2>=p)return!1;if(60!==e.src.charCodeAt(l))return!1;if(33===(s=e.src.charCodeAt(l+1))||63===s){if(a)return!0}else{if(47!==s&&!function(e){var t=32|e;return t>=97&&t<=122}(s))return!1;if(47===s){if(!(u=e.src.slice(l,p).match(i)))return!1}else if(!(u=e.src.slice(l,p).match(o)))return!1;if(!0!==r[u[1].toLowerCase()])return!1;if(a)return!0}for(c=t+1;c<e.lineMax&&!e.isEmpty(c);)c++;return e.line=c,e.tokens.push({type:"htmlblock",level:e.level,lines:[t,e.line],content:e.getLines(t,c,0,!0)}),!0}},function(e,t,n){"use strict";var r={};["article","aside","button","blockquote","body","canvas","caption","col","colgroup","dd","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","iframe","li","map","object","ol","output","p","pre","progress","script","section","style","table","tbody","td","textarea","tfoot","th","tr","thead","ul","video"].forEach(function(e){r[e]=!0}),e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}e.exports=function(e,t,n,o){var i,a,s,u,c,l,p,f,h,d,m;if(t+2>n)return!1;if(c=t+1,e.tShift[c]<e.blkIndent)return!1;if((s=e.bMarks[c]+e.tShift[c])>=e.eMarks[c])return!1;if(124!==(i=e.src.charCodeAt(s))&&45!==i&&58!==i)return!1;if(a=r(e,t+1),!/^[-:| ]+$/.test(a))return!1;if((l=a.split("|"))<=2)return!1;for(f=[],u=0;u<l.length;u++){if(!(h=l[u].trim())){if(0===u||u===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?f.push(58===h.charCodeAt(0)?"center":"right"):58===h.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(a=r(e,t).trim()).indexOf("|"))return!1;if(l=a.replace(/^\||\|$/g,"").split("|"),f.length!==l.length)return!1;if(o)return!0;for(e.tokens.push({type:"table_open",lines:d=[t,0],level:e.level++}),e.tokens.push({type:"thead_open",lines:[t,t+1],level:e.level++}),e.tokens.push({type:"tr_open",lines:[t,t+1],level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"th_open",align:f[u],lines:[t,t+1],level:e.level++}),e.tokens.push({type:"inline",content:l[u].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:"th_close",level:--e.level});for(e.tokens.push({type:"tr_close",level:--e.level}),e.tokens.push({type:"thead_close",level:--e.level}),e.tokens.push({type:"tbody_open",lines:m=[t+2,0],level:e.level++}),c=t+2;c<n&&!(e.tShift[c]<e.blkIndent)&&-1!==(a=r(e,c).trim()).indexOf("|");c++){for(l=a.replace(/^\||\|$/g,"").split("|"),e.tokens.push({type:"tr_open",level:e.level++}),u=0;u<l.length;u++)e.tokens.push({type:"td_open",align:f[u],level:e.level++}),p=l[u].substring(124===l[u].charCodeAt(0)?1:0,124===l[u].charCodeAt(l[u].length-1)?l[u].length-1:l[u].length).trim(),e.tokens.push({type:"inline",content:p,level:e.level,children:[]}),e.tokens.push({type:"td_close",level:--e.level});e.tokens.push({type:"tr_close",level:--e.level})}return e.tokens.push({type:"tbody_close",level:--e.level}),e.tokens.push({type:"table_close",level:--e.level}),d[1]=m[1]=c,e.line=c,!0}},function(e,t,n){"use strict";function r(e,t){var n,r,o=e.bMarks[t]+e.tShift[t],i=e.eMarks[t];return o>=i?-1:126!==(r=e.src.charCodeAt(o++))&&58!==r?-1:o===(n=e.skipSpaces(o))?-1:n>=i?-1:n}e.exports=function(e,t,n,o){var i,a,s,u,c,l,p,f,h,d,m,v,g,y;if(o)return!(e.ddIndent<0)&&r(e,t)>=0;if(p=t+1,e.isEmpty(p)&&++p>n)return!1;if(e.tShift[p]<e.blkIndent)return!1;if((i=r(e,p))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:"dl_open",lines:c=[t,0],level:e.level++}),s=t,a=p;e:for(;;){for(y=!0,g=!1,e.tokens.push({type:"dt_open",lines:[s,s],level:e.level++}),e.tokens.push({type:"inline",content:e.getLines(s,s+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[s,s],children:[]}),e.tokens.push({type:"dt_close",level:--e.level});;){if(e.tokens.push({type:"dd_open",lines:u=[p,0],level:e.level++}),v=e.tight,h=e.ddIndent,f=e.blkIndent,m=e.tShift[a],d=e.parentType,e.blkIndent=e.ddIndent=e.tShift[a]+2,e.tShift[a]=i-e.bMarks[a],e.tight=!0,e.parentType="deflist",e.parser.tokenize(e,a,n,!0),e.tight&&!g||(y=!1),g=e.line-a>1&&e.isEmpty(e.line-1),e.tShift[a]=m,e.tight=v,e.parentType=d,e.blkIndent=f,e.ddIndent=h,e.tokens.push({type:"dd_close",level:--e.level}),u[1]=p=e.line,p>=n)break e;if(e.tShift[p]<e.blkIndent)break e;if((i=r(e,p))<0)break;a=p}if(p>=n)break;if(s=p,e.isEmpty(s))break;if(e.tShift[s]<e.blkIndent)break;if((a=s+1)>=n)break;if(e.isEmpty(a)&&a++,a>=n)break;if(e.tShift[a]<e.blkIndent)break;if((i=r(e,a))<0)break}return e.tokens.push({type:"dl_close",level:--e.level}),c[1]=p,e.line=p,y&&function(e,t){var n,r,o=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===o&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].tight=!0,e.tokens[n].tight=!0,n+=2)}(e,l),!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s,u=t+1;if(u<(n=e.lineMax)&&!e.isEmpty(u))for(s=e.parser.ruler.getRules("paragraph");u<n&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,i=0,a=s.length;i<a;i++)if(s[i](e,u,n,!0)){o=!0;break}if(o)break}return r=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,r.length&&(e.tokens.push({type:"paragraph_open",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:"inline",content:r,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:"paragraph_close",tight:!1,level:e.level})),!0}},function(e,t,n){"use strict";var r=n(190),o=n(269),i=n(39),a=[["text",n(1010)],["newline",n(1011)],["escape",n(1012)],["backticks",n(1013)],["del",n(1014)],["ins",n(1015)],["mark",n(1016)],["emphasis",n(1017)],["sub",n(1018)],["sup",n(1019)],["links",n(1020)],["footnote_inline",n(1021)],["footnote_ref",n(1022)],["autolink",n(1023)],["htmltag",n(1025)],["entity",n(1027)]];function s(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);this.validateLink=u}function u(e){var t=e.trim().toLowerCase();return-1===(t=i.replaceEntities(t)).indexOf(":")||-1===["vbscript","javascript","file","data"].indexOf(t.split(":")[0])}s.prototype.skipToken=function(e){var t,n,r=this.ruler.getRules(""),o=r.length,i=e.pos;if((n=e.cacheGet(i))>0)e.pos=n;else{for(t=0;t<o;t++)if(r[t](e,!0))return void e.cacheSet(i,e.pos);e.pos++,e.cacheSet(i,e.pos)}},s.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),o=r.length,i=e.posMax;e.pos<i;){for(n=0;n<o&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},s.prototype.parse=function(e,t,n,r){var i=new o(e,this,t,n,r);this.tokenize(i)},e.exports=s},function(e,t,n){"use strict";function r(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}e.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(n=e.pending.length-1,r=e.posMax,!t)if(n>=0&&32===e.pending.charCodeAt(n))if(n>=1&&32===e.pending.charCodeAt(n-1)){for(var i=n-2;i>=0;i--)if(32!==e.pending.charCodeAt(i)){e.pending=e.pending.substring(0,i+1);break}e.push({type:"hardbreak",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:"softbreak",level:e.level});else e.push({type:"softbreak",level:e.level});for(o++;o<r&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}},function(e,t,n){"use strict";for(var r=[],o=0;o<256;o++)r.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){r[e.charCodeAt(0)]=1}),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==r[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push({type:"hardbreak",level:e.level}),o++;o<i&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.pos;if(96!==e.src.charCodeAt(s))return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(o=e.src.slice(n,s),i=a=s;-1!==(i=e.src.indexOf("`",a));){for(a=i+1;a<r&&96===e.src.charCodeAt(a);)a++;if(a-i===o.length)return t||e.push({type:"code",content:e.src.slice(s,i).replace(/[ \n]+/g," ").trim(),block:!1,level:e.level}),e.pos=a,!0}return t||(e.pending+=o),e.pos+=o.length,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),126===i)return!1;if(126===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&126===e.src.charCodeAt(r);)r++;if(r>u+3)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),126!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&126!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"del_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"del_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),43===i)return!1;if(43===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&43===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),43!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&43!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"ins_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"ins_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a,s=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=s)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(i=u>0?e.src.charCodeAt(u-1):-1,a=e.src.charCodeAt(u+2),61===i)return!1;if(61===a)return!1;if(32===a||10===a)return!1;for(r=u+2;r<s&&61===e.src.charCodeAt(r);)r++;if(r!==u+2)return e.pos+=r-u,t||(e.pending+=e.src.slice(u,r)),!0;for(e.pos=u+2,o=1;e.pos+1<s;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(i=e.src.charCodeAt(e.pos-1),61!==(a=e.pos+2<s?e.src.charCodeAt(e.pos+2):-1)&&61!==i&&(32!==i&&10!==i?o--:32!==a&&10!==a&&o++,o<=0))){n=!0;break}e.parser.skipToken(e)}return n?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:"mark_open",level:e.level++}),e.parser.tokenize(e),e.push({type:"mark_close",level:--e.level})),e.pos=e.posMax+2,e.posMax=s,!0):(e.pos=u,!1)}},function(e,t,n){"use strict";function r(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function o(e,t){var n,o,i,a=t,s=!0,u=!0,c=e.posMax,l=e.src.charCodeAt(t);for(n=t>0?e.src.charCodeAt(t-1):-1;a<c&&e.src.charCodeAt(a)===l;)a++;return a>=c&&(s=!1),(i=a-t)>=4?s=u=!1:(32!==(o=a<c?e.src.charCodeAt(a):-1)&&10!==o||(s=!1),32!==n&&10!==n||(u=!1),95===l&&(r(n)&&(s=!1),r(o)&&(u=!1))),{can_open:s,can_close:u,delims:i}}e.exports=function(e,t){var n,r,i,a,s,u,c,l=e.posMax,p=e.pos,f=e.src.charCodeAt(p);if(95!==f&&42!==f)return!1;if(t)return!1;if(n=(c=o(e,p)).delims,!c.can_open)return e.pos+=n,t||(e.pending+=e.src.slice(p,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=p+n,u=[n];e.pos<l;)if(e.src.charCodeAt(e.pos)!==f)e.parser.skipToken(e);else{if(r=(c=o(e,e.pos)).delims,c.can_close){for(a=u.pop(),s=r;a!==s;){if(s<a){u.push(a-s);break}if(s-=a,0===u.length)break;e.pos+=a,a=u.pop()}if(0===u.length){n=a,i=!0;break}e.pos+=r;continue}c.can_open&&u.push(r),e.pos+=r}return i?(e.posMax=e.pos,e.pos=p+n,t||(2!==n&&3!==n||e.push({type:"strong_open",level:e.level++}),1!==n&&3!==n||e.push({type:"em_open",level:e.level++}),e.parser.tokenize(e),1!==n&&3!==n||e.push({type:"em_close",level:--e.level}),2!==n&&3!==n||e.push({type:"strong_close",level:--e.level})),e.pos=e.posMax+n,e.posMax=l,!0):(e.pos=p,!1)}},function(e,t,n){"use strict";var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var n,o,i=e.posMax,a=e.pos;if(126!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=i)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<i;){if(126===e.src.charCodeAt(e.pos)){n=!0;break}e.parser.skipToken(e)}return n&&a+1!==e.pos?(o=e.src.slice(a+1,e.pos)).match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sub",level:e.level,content:o.replace(r,"$1")}),e.pos=e.posMax+1,e.posMax=i,!0):(e.pos=a,!1)}},function(e,t,n){"use strict";var r=/\\([ \\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;e.exports=function(e,t){var n,o,i=e.posMax,a=e.pos;if(94!==e.src.charCodeAt(a))return!1;if(t)return!1;if(a+2>=i)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=a+1;e.pos<i;){if(94===e.src.charCodeAt(e.pos)){n=!0;break}e.parser.skipToken(e)}return n&&a+1!==e.pos?(o=e.src.slice(a+1,e.pos)).match(/(^|[^\\])(\\\\)*\s/)?(e.pos=a,!1):(e.posMax=e.pos,e.pos=a+1,t||e.push({type:"sup",level:e.level,content:o.replace(r,"$1")}),e.pos=e.posMax+1,e.posMax=i,!0):(e.pos=a,!1)}},function(e,t,n){"use strict";var r=n(191),o=n(464),i=n(466),a=n(467);e.exports=function(e,t){var n,s,u,c,l,p,f,h,d=!1,m=e.pos,v=e.posMax,g=e.pos,y=e.src.charCodeAt(g);if(33===y&&(d=!0,y=e.src.charCodeAt(++g)),91!==y)return!1;if(e.level>=e.options.maxNesting)return!1;if(n=g+1,(s=r(e,g))<0)return!1;if((p=s+1)<v&&40===e.src.charCodeAt(p)){for(p++;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p>=v)return!1;for(g=p,o(e,p)?(c=e.linkContent,p=e.pos):c="",g=p;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p<v&&g!==p&&i(e,p))for(l=e.linkContent,p=e.pos;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);else l="";if(p>=v||41!==e.src.charCodeAt(p))return e.pos=m,!1;p++}else{if(e.linkLevel>0)return!1;for(;p<v&&(32===(h=e.src.charCodeAt(p))||10===h);p++);if(p<v&&91===e.src.charCodeAt(p)&&(g=p+1,(p=r(e,p))>=0?u=e.src.slice(g,p++):p=g-1),u||(void 0===u&&(p=s+1),u=e.src.slice(n,s)),!(f=e.env.references[a(u)]))return e.pos=m,!1;c=f.href,l=f.title}return t||(e.pos=n,e.posMax=s,d?e.push({type:"image",src:c,title:l,alt:e.src.substr(n,s-n),level:e.level}):(e.push({type:"link_open",href:c,title:l,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:"link_close",level:--e.level}))),e.pos=p,e.posMax=v,!0}},function(e,t,n){"use strict";var r=n(191);e.exports=function(e,t){var n,o,i,a,s=e.posMax,u=e.pos;return!(u+2>=s)&&(94===e.src.charCodeAt(u)&&(91===e.src.charCodeAt(u+1)&&(!(e.level>=e.options.maxNesting)&&(n=u+2,!((o=r(e,u+1))<0)&&(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),i=e.env.footnotes.list.length,e.pos=n,e.posMax=o,e.push({type:"footnote_ref",id:i,level:e.level}),e.linkLevel++,a=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[i]={tokens:e.tokens.splice(a)},e.linkLevel--),e.pos=o+1,e.posMax=s,!0)))))}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,o,i,a=e.posMax,s=e.pos;if(s+3>a)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(s))return!1;if(94!==e.src.charCodeAt(s+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(r=s+2;r<a;r++){if(32===e.src.charCodeAt(r))return!1;if(10===e.src.charCodeAt(r))return!1;if(93===e.src.charCodeAt(r))break}return r!==s+2&&(!(r>=a)&&(r++,n=e.src.slice(s+2,r-1),void 0!==e.env.footnotes.refs[":"+n]&&(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[":"+n]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:n,count:0},e.env.footnotes.refs[":"+n]=o):o=e.env.footnotes.refs[":"+n],i=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:"footnote_ref",id:o,subId:i,level:e.level})),e.pos=r,e.posMax=a,!0)))}},function(e,t,n){"use strict";var r=n(1024),o=n(465),i=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z.\-]{1,25}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,s,u,c,l,p=e.pos;return 60===e.src.charCodeAt(p)&&(!((n=e.src.slice(p)).indexOf(">")<0)&&((s=n.match(a))?!(r.indexOf(s[1].toLowerCase())<0)&&(c=s[0].slice(1,-1),l=o(c),!!e.parser.validateLink(c)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=s[0].length,!0)):!!(u=n.match(i))&&(c=u[0].slice(1,-1),l=o("mailto:"+c),!!e.parser.validateLink(l)&&(t||(e.push({type:"link_open",href:l,level:e.level}),e.push({type:"text",content:c,level:e.level+1}),e.push({type:"link_close",level:e.level})),e.pos+=u[0].length,!0))))}},function(e,t,n){"use strict";e.exports=["coap","doi","javascript","aaa","aaas","about","acap","cap","cid","crid","data","dav","dict","dns","file","ftp","geo","go","gopher","h323","http","https","iax","icap","im","imap","info","ipp","iris","iris.beep","iris.xpc","iris.xpcs","iris.lwz","ldap","mailto","mid","msrp","msrps","mtqp","mupdate","news","nfs","ni","nih","nntp","opaquelocktoken","pop","pres","rtsp","service","session","shttp","sieve","sip","sips","sms","snmp","soap.beep","soap.beeps","tag","tel","telnet","tftp","thismessage","tn3270","tip","tv","urn","vemmi","ws","wss","xcon","xcon-userid","xmlrpc.beep","xmlrpc.beeps","xmpp","z39.50r","z39.50s","adiumxtra","afp","afs","aim","apt","attachment","aw","beshare","bitcoin","bolo","callto","chrome","chrome-extension","com-eventbrite-attendee","content","cvs","dlna-playsingle","dlna-playcontainer","dtn","dvb","ed2k","facetime","feed","finger","fish","gg","git","gizmoproject","gtalk","hcp","icon","ipn","irc","irc6","ircs","itms","jar","jms","keyparc","lastfm","ldaps","magnet","maps","market","message","mms","ms-help","msnim","mumble","mvn","notes","oid","palm","paparazzi","platform","proxy","psyc","query","res","resource","rmi","rsync","rtmp","secondlife","sftp","sgn","skype","smb","soldat","spotify","ssh","steam","svn","teamspeak","things","udp","unreal","ut2004","ventrilo","view-source","webcal","wtai","wyciwyg","xfire","xri","ymsgr"]},function(e,t,n){"use strict";var r=n(1026).HTML_TAG_RE;e.exports=function(e,t){var n,o,i,a=e.pos;return!!e.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(a)||a+2>=i)&&(!(33!==(n=e.src.charCodeAt(a+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(o=e.src.slice(a).match(r))&&(t||e.push({type:"htmltag",content:e.src.slice(a,a+o[0].length),level:e.level}),e.pos+=o[0].length,!0))))}},function(e,t,n){"use strict";function r(e,t){return e=e.source,t=t||"",function n(r,o){return r?(o=o.source||o,e=e.replace(r,o),n):new RegExp(e,t)}}var o=r(/(?:unquoted|single_quoted|double_quoted)/)("unquoted",/[^"'=<>`\x00-\x20]+/)("single_quoted",/'[^']*'/)("double_quoted",/"[^"]*"/)(),i=r(/(?:\s+attr_name(?:\s*=\s*attr_value)?)/)("attr_name",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)("attr_value",o)(),a=r(/<[A-Za-z][A-Za-z0-9]*attribute*\s*\/?>/)("attribute",i)(),s=r(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)("open_tag",a)("close_tag",/<\/[A-Za-z][A-Za-z0-9]*\s*>/)("comment",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)("processing",/<[?].*?[?]>/)("declaration",/<![A-Z]+\s+[^>]*>/)("cdata",/<!\[CDATA\[[\s\S]*?\]\]>/)();e.exports.HTML_TAG_RE=s},function(e,t,n){"use strict";var r=n(463),o=n(39).has,i=n(39).isValidEntityCode,a=n(39).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,u=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,l=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(l))return!1;if(l+1<p)if(35===e.src.charCodeAt(l+1)){if(c=e.src.slice(l).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=i(n)?a(n):a(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(l).match(u))&&o(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","replacements","linkify","smartquotes","references","abbr2","footnote_tail"]},block:{rules:["blockquote","code","fences","footnote","heading","hr","htmlblock","lheading","list","paragraph","table"]},inline:{rules:["autolink","backticks","del","emphasis","entity","escape","footnote_ref","htmltag","links","newline","text"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,linkTarget:"",typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["block","inline","references","abbr2"]},block:{rules:["blockquote","code","fences","heading","hr","htmlblock","lheading","list","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","htmltag","links","newline","text"]}}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebounceInput=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=s(n(0)),a=s(n(1032));function s(e){return e&&e.__esModule?e:{default:e}}(t.DebounceInput=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.onChange=function(e){e.persist();var t=n.state.value;n.setState({value:e.target.value},function(){var o=n.state.value;o.length>=n.props.minLength?n.notify(e):t.length>o.length&&n.notify(r({},e,{target:r({},e.target,{value:""})}))})},n.onKeyDown=function(e){var t=n.props.onKeyDown;"Enter"===e.key&&n.forceNotify(e),t&&t(e)},n.onBlur=function(e){var t=n.props.onBlur;n.forceNotify(e),t&&t(e)},n.createNotifier=function(e){if(e<0)n.notify=function(){return null};else if(0===e)n.notify=n.doNotify;else{var t=(0,a.default)(function(e){n.isDebouncing=!1,n.doNotify(e)},e);n.notify=function(e){n.isDebouncing=!0,t(e)},n.flush=function(){return t.flush()},n.cancel=function(){n.isDebouncing=!1,t.cancel()}}},n.doNotify=function(){var e=n.props.onChange;e.apply(void 0,arguments)},n.forceNotify=function(e){if(n.isDebouncing){n.cancel&&n.cancel();var t=n.state.value,o=n.props.minLength;t.length>=o?n.doNotify(e):n.doNotify(r({},e,{target:r({},e.target,{value:t})}))}},n.state={value:e.value||""},n.isDebouncing=!1,n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,i.default.PureComponent),o(t,[{key:"componentWillMount",value:function(){this.createNotifier(this.props.debounceTimeout)}},{key:"componentWillReceiveProps",value:function(e){var t=e.value,n=e.debounceTimeout;this.isDebouncing||(void 0!==t&&this.state.value!==t&&this.setState({value:t}),n!==this.props.debounceTimeout&&this.createNotifier(n))}},{key:"componentWillUnmount",value:function(){this.flush&&this.flush()}},{key:"render",value:function(){var e=this.props,t=e.element,n=(e.onChange,e.value,e.minLength,e.debounceTimeout,e.forceNotifyByEnter),o=e.forceNotifyOnBlur,a=e.onKeyDown,s=e.onBlur,u=e.inputRef,c=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["element","onChange","value","minLength","debounceTimeout","forceNotifyByEnter","forceNotifyOnBlur","onKeyDown","onBlur","inputRef"]),l=void 0;l=n?{onKeyDown:this.onKeyDown}:a?{onKeyDown:a}:{};var p=void 0;p=o?{onBlur:this.onBlur}:s?{onBlur:s}:{};var f=u?{ref:u}:{};return i.default.createElement(t,r({},c,{onChange:this.onChange,value:this.state.value},l,p,f))}}]),t}()).defaultProps={element:"input",type:"text",onKeyDown:void 0,onBlur:void 0,value:void 0,minLength:0,debounceTimeout:100,forceNotifyByEnter:!0,forceNotifyOnBlur:!0,inputRef:void 0}},function(e,t,n){(function(t){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt,l="object"==typeof t&&t&&t.Object===Object&&t,p="object"==typeof self&&self&&self.Object===Object&&self,f=l||p||Function("return this")(),h=Object.prototype.toString,d=Math.max,m=Math.min,v=function(){return f.Date.now()};function g(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function y(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&h.call(e)==o}(e))return r;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(i,"");var n=s.test(e);return n||u.test(e)?c(e.slice(2),n?2:8):a.test(e)?r:+e}e.exports=function(e,t,r){var o,i,a,s,u,c,l=0,p=!1,f=!1,h=!0;if("function"!=typeof e)throw new TypeError(n);function b(t){var n=o,r=i;return o=i=void 0,l=t,s=e.apply(r,n)}function _(e){var n=e-c;return void 0===c||n>=t||n<0||f&&e-l>=a}function w(){var e=v();if(_(e))return x(e);u=setTimeout(w,function(e){var n=t-(e-c);return f?m(n,a-(e-l)):n}(e))}function x(e){return u=void 0,h&&o?b(e):(o=i=void 0,s)}function E(){var e=v(),n=_(e);if(o=arguments,i=this,c=e,n){if(void 0===u)return function(e){return l=e,u=setTimeout(w,t),p?b(e):s}(c);if(f)return u=setTimeout(w,t),b(c)}return void 0===u&&(u=setTimeout(w,t)),s}return t=y(t)||0,g(r)&&(p=!!r.leading,a=(f="maxWait"in r)?d(y(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),E.cancel=function(){void 0!==u&&clearTimeout(u),l=0,o=c=i=u=void 0},E.flush=function(){return void 0===u?s:x(v())},E}}).call(this,n(36))},function(e,t,n){var r={"./all.js":328,"./auth/actions.js":71,"./auth/index.js":290,"./auth/reducers.js":291,"./auth/selectors.js":292,"./auth/spec-wrap-actions.js":293,"./configs/actions.js":121,"./configs/helpers.js":147,"./configs/index.js":329,"./configs/reducers.js":298,"./configs/selectors.js":297,"./configs/spec-actions.js":296,"./deep-linking/helpers.js":149,"./deep-linking/index.js":299,"./deep-linking/layout.js":300,"./deep-linking/operation-tag-wrapper.jsx":302,"./deep-linking/operation-wrapper.jsx":301,"./download-url.js":295,"./err/actions.js":44,"./err/error-transformers/hook.js":96,"./err/error-transformers/transformers/not-of-type.js":275,"./err/error-transformers/transformers/parameter-oneof.js":276,"./err/index.js":273,"./err/reducers.js":274,"./err/selectors.js":277,"./filter/index.js":303,"./filter/opsFilter.js":304,"./layout/actions.js":79,"./layout/index.js":278,"./layout/reducers.js":279,"./layout/selectors.js":280,"./logs/index.js":287,"./oas3/actions.js":62,"./oas3/auth-extensions/wrap-selectors.js":308,"./oas3/components/callbacks.jsx":311,"./oas3/components/http-auth.jsx":317,"./oas3/components/index.js":310,"./oas3/components/operation-link.jsx":313,"./oas3/components/operation-servers.jsx":318,"./oas3/components/request-body-editor.jsx":316,"./oas3/components/request-body.jsx":312,"./oas3/components/servers-container.jsx":315,"./oas3/components/servers.jsx":314,"./oas3/helpers.jsx":24,"./oas3/index.js":306,"./oas3/reducers.js":327,"./oas3/selectors.js":326,"./oas3/spec-extensions/selectors.js":309,"./oas3/spec-extensions/wrap-selectors.js":307,"./oas3/wrap-components/auth-item.jsx":321,"./oas3/wrap-components/index.js":319,"./oas3/wrap-components/json-schema-string.jsx":325,"./oas3/wrap-components/markdown.jsx":320,"./oas3/wrap-components/model.jsx":324,"./oas3/wrap-components/online-validator-badge.js":323,"./oas3/wrap-components/version-stamp.jsx":322,"./on-complete/index.js":305,"./samples/fn.js":120,"./samples/index.js":286,"./spec/actions.js":29,"./spec/index.js":281,"./spec/reducers.js":282,"./spec/selectors.js":70,"./spec/wrap-actions.js":284,"./swagger-js/configs-wrap-actions.js":289,"./swagger-js/index.js":288,"./util/index.js":294,"./view/index.js":285,"./view/root-injects.jsx":148};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=1033},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"Container",function(){return jt}),n.d(r,"Col",function(){return It}),n.d(r,"Row",function(){return Mt}),n.d(r,"Button",function(){return Nt}),n.d(r,"TextArea",function(){return Rt}),n.d(r,"Input",function(){return Dt}),n.d(r,"Select",function(){return Lt}),n.d(r,"Link",function(){return Ut}),n.d(r,"Collapse",function(){return Ft});var o={};n.r(o),n.d(o,"JsonSchemaForm",function(){return Tn}),n.d(o,"JsonSchema_string",function(){return jn}),n.d(o,"JsonSchema_array",function(){return Pn}),n.d(o,"JsonSchema_boolean",function(){return In}),n.d(o,"JsonSchema_object",function(){return Mn});var i=n(28),a=n.n(i),s=n(17),u=n.n(s),c=n(26),l=n.n(c),p=n(80),f=n.n(p),h=n(14),d=n.n(h),m=n(2),v=n.n(m),g=n(16),y=n.n(g),b=n(4),_=n.n(b),w=n(5),x=n.n(w),E=n(0),S=n.n(E),C=n(124),k=n(1),O=n.n(k),A=n(470),T=n(119),j=n.n(T),P=n(145),I=n.n(P),M=n(44),N=n(18),R=n.n(N),D=n(3),L=function(e){return e};var U=function(){function e(){var t,n,r,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_()(this,e),f()(this,{state:{},plugins:[],system:{configs:{},fn:{},components:{},rootInjects:{},statePlugins:{}},boundSystem:{},toolbox:{}},o),this.getSystem=this._getSystem.bind(this),this.store=(t=L,n=Object(k.fromJS)(this.state),r=this.getSystem,function(e,t,n){var r=[Object(D.J)(n)],o=R.a.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__||C.compose;return Object(C.createStore)(e,t,o(C.applyMiddleware.apply(void 0,r)))}(t,n,r)),this.buildSystem(!1),this.register(this.plugins)}return x()(e,[{key:"getStore",value:function(){return this.store}},{key:"register",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=q(e,this.getSystem());B(this.system,n),t&&this.buildSystem();var r=F.call(this.system,e,this.getSystem());r&&this.buildSystem()}},{key:"buildSystem",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.getStore().dispatch,n=this.getStore().getState;this.boundSystem=y()({},this.getRootInjects(),this.getWrappedAndBoundActions(t),this.getWrappedAndBoundSelectors(n,this.getSystem),this.getStateThunks(n),this.getFn(),this.getConfigs()),e&&this.rebuildReducer()}},{key:"_getSystem",value:function(){return this.boundSystem}},{key:"getRootInjects",value:function(){return y()({getSystem:this.getSystem,getStore:this.getStore.bind(this),getComponents:this.getComponents.bind(this),getState:this.getStore().getState,getConfigs:this._getConfigs.bind(this),Im:O.a,React:S.a},this.system.rootInjects||{})}},{key:"_getConfigs",value:function(){return this.system.configs}},{key:"getConfigs",value:function(){return{configs:this.system.configs}}},{key:"setConfigs",value:function(e){this.system.configs=e}},{key:"rebuildReducer",value:function(){var e,t,n;this.store.replaceReducer((n=this.system.statePlugins,e=Object(D.y)(n,function(e){return e.reducers}),t=u()(e).reduce(function(t,n){var r;return t[n]=(r=e[n],function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new k.Map,t=arguments.length>1?arguments[1]:void 0;if(!r)return e;var n=r[t.type];if(n){var o=z(n)(e,t);return null===o?e:o}return e}),t},{}),u()(t).length?Object(A.combineReducers)(t):L))}},{key:"getType",value:function(e){var t=e[0].toUpperCase()+e.slice(1);return Object(D.z)(this.system.statePlugins,function(n,r){var o=n[e];if(o)return v()({},r+t,o)})}},{key:"getSelectors",value:function(){return this.getType("selectors")}},{key:"getActions",value:function(){var e=this.getType("actions");return Object(D.y)(e,function(e){return Object(D.z)(e,function(e,t){if(Object(D.r)(e))return v()({},t,e)})})}},{key:"getWrappedAndBoundActions",value:function(e){var t=this,n=this.getBoundActions(e);return Object(D.y)(n,function(e,n){var r=t.system.statePlugins[n.slice(0,-7)].wrapActions;return r?Object(D.y)(e,function(e,n){var o=r[n];return o?(d()(o)||(o=[o]),o.reduce(function(e,n){var r=function(){return n(e,t.getSystem()).apply(void 0,arguments)};if(!Object(D.r)(r))throw new TypeError("wrapActions needs to return a function that returns a new function (ie the wrapped action)");return z(r)},e||Function.prototype)):e}):e})}},{key:"getWrappedAndBoundSelectors",value:function(e,t){var n=this,r=this.getBoundSelectors(e,t);return Object(D.y)(r,function(t,r){var o=[r.slice(0,-9)],i=n.system.statePlugins[o].wrapSelectors;return i?Object(D.y)(t,function(t,r){var a=i[r];return a?(d()(a)||(a=[a]),a.reduce(function(t,r){var i=function(){for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return r(t,n.getSystem()).apply(void 0,[e().getIn(o)].concat(a))};if(!Object(D.r)(i))throw new TypeError("wrapSelector needs to return a function that returns a new function (ie the wrapped action)");return i},t||Function.prototype)):t}):t})}},{key:"getStates",value:function(e){return u()(this.system.statePlugins).reduce(function(t,n){return t[n]=e.get(n),t},{})}},{key:"getStateThunks",value:function(e){return u()(this.system.statePlugins).reduce(function(t,n){return t[n]=function(){return e().get(n)},t},{})}},{key:"getFn",value:function(){return{fn:this.system.fn}}},{key:"getComponents",value:function(e){var t=this,n=this.system.components[e];return d()(n)?n.reduce(function(e,n){return n(e,t.getSystem())}):void 0!==e?this.system.components[e]:this.system.components}},{key:"getBoundSelectors",value:function(e,t){return Object(D.y)(this.getSelectors(),function(n,r){var o=[r.slice(0,-9)],i=function(){return e().getIn(o)};return Object(D.y)(n,function(e){return function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];var a=z(e).apply(null,[i()].concat(r));return"function"==typeof a&&(a=z(a)(t())),a}})})}},{key:"getBoundActions",value:function(e){e=e||this.getStore().dispatch;var t=this.getActions();return Object(D.y)(t,function(t){return Object(C.bindActionCreators)(function e(t){return"function"!=typeof t?Object(D.y)(t,function(t){return e(t)}):function(){var e=null;try{e=t.apply(void 0,arguments)}catch(t){e={type:M.NEW_THROWN_ERR,error:!0,payload:j()(t)}}finally{return e}}}(t),e)})}},{key:"getMapStateToProps",value:function(){var e=this;return function(){return y()({},e.getSystem())}}},{key:"getMapDispatchToProps",value:function(e){var t=this;return function(n){return f()({},t.getWrappedAndBoundActions(n),t.getFn(),e)}}}]),e}();function q(e,t){return Object(D.u)(e)&&!Object(D.q)(e)?I()({},e):Object(D.s)(e)?q(e(t),t):Object(D.q)(e)?e.map(function(e){return q(e,t)}).reduce(B,{}):{}}function F(e,t){var n=this,r=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).hasLoaded;return Object(D.u)(e)&&!Object(D.q)(e)&&"function"==typeof e.afterLoad&&(r=!0,z(e.afterLoad).call(this,t)),Object(D.s)(e)?F.call(this,e(t),t,{hasLoaded:r}):Object(D.q)(e)?e.map(function(e){return F.call(n,e,t,{hasLoaded:r})}):r}function B(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!Object(D.u)(e))return{};if(!Object(D.u)(t))return e;t.wrapComponents&&(Object(D.y)(t.wrapComponents,function(n,r){var o=e.components&&e.components[r];o&&d()(o)?(e.components[r]=o.concat([n]),delete t.wrapComponents[r]):o&&(e.components[r]=[o,n],delete t.wrapComponents[r])}),u()(t.wrapComponents).length||delete t.wrapComponents);var n=e.statePlugins;if(Object(D.u)(n))for(var r in n){var o=n[r];if(Object(D.u)(o)&&Object(D.u)(o.wrapActions)){var i=o.wrapActions;for(var a in i){var s=i[a];d()(s)||(s=[s],i[a]=s),t&&t.statePlugins&&t.statePlugins[r]&&t.statePlugins[r].wrapActions&&t.statePlugins[r].wrapActions[a]&&(t.statePlugins[r].wrapActions[a]=i[a].concat(t.statePlugins[r].wrapActions[a]))}}}return f()(e,t)}function z(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).logErrors,n=void 0===t||t;return"function"!=typeof e?e:function(){try{for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];return e.call.apply(e,[this].concat(r))}catch(e){return n&&console.error(e),null}}}var V=n(273),H=n(278),W=n(281),J=n(285),K=n(286),Y=n(287),$=n(288),G=n(290),Z=n(294),X=n(295),Q=n(329),ee=n(299),te=n(303),ne=n(305),re=n(6),oe=n.n(re),ie=n(7),ae=n.n(ie),se=n(9),ue=n.n(se),ce=n(8),le=n.n(ce),pe=(n(10),n(19),n(56).helpers.opId),fe=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"toggleShown",function(){var e=r.props,t=e.layoutActions,n=e.tag,o=e.operationId,i=e.isShown,a=r.getResolvedSubtree();i||void 0!==a||r.requestResolvedSubtree(),t.show(["operations",n,o],!i)}),v()(ue()(r),"onCancelClick",function(){r.setState({tryItOutEnabled:!r.state.tryItOutEnabled})}),v()(ue()(r),"onTryoutClick",function(){var e=r.props,t=e.specActions,n=e.path,o=e.method;r.setState({tryItOutEnabled:!r.state.tryItOutEnabled}),t.clearValidateParams([n,o])}),v()(ue()(r),"onExecute",function(){r.setState({executeInProgress:!0})}),v()(ue()(r),"getResolvedSubtree",function(){var e=r.props,t=e.specSelectors,n=e.path,o=e.method,i=e.specPath;return i?t.specResolvedSubtree(i.toJS()):t.specResolvedSubtree(["paths",n,o])}),v()(ue()(r),"requestResolvedSubtree",function(){var e=r.props,t=e.specActions,n=e.path,o=e.method,i=e.specPath;return i?t.requestResolvedSubtree(i.toJS()):t.requestResolvedSubtree(["paths",n,o])}),r.state={tryItOutEnabled:!1,executeInProgress:!1},r}return le()(t,e),x()(t,[{key:"mapStateToProps",value:function(e,t){var n=t.op,r=t.layoutSelectors,o=(0,t.getConfigs)(),i=o.docExpansion,a=o.deepLinking,s=o.displayOperationId,u=o.displayRequestDuration,c=o.supportedSubmitMethods,l=r.showSummary(),p=n.getIn(["operation","__originalOperationId"])||n.getIn(["operation","operationId"])||pe(n.get("operation"),t.path,t.method)||n.get("id"),f=["operations",t.tag,p],h=a&&"false"!==a,d=c.indexOf(t.method)>=0&&(void 0===t.allowTryItOut?t.specSelectors.allowTryItOutFor(t.path,t.method):t.allowTryItOut),m=n.getIn(["operation","security"])||t.specSelectors.security();return{operationId:p,isDeepLinkingEnabled:h,showSummary:l,displayOperationId:s,displayRequestDuration:u,allowTryItOut:d,security:m,isAuthorized:t.authSelectors.isAuthorized(m),isShown:r.isShown(f,"full"===i),jumpToKey:"paths.".concat(t.path,".").concat(t.method),response:t.specSelectors.responseFor(t.path,t.method),request:t.specSelectors.requestFor(t.path,t.method)}}},{key:"componentDidMount",value:function(){var e=this.props.isShown,t=this.getResolvedSubtree();e&&void 0===t&&this.requestResolvedSubtree()}},{key:"componentWillReceiveProps",value:function(e){var t=e.response,n=e.isShown,r=this.getResolvedSubtree();t!==this.props.response&&this.setState({executeInProgress:!1}),n&&void 0===r&&this.requestResolvedSubtree()}},{key:"render",value:function(){var e=this.props,t=e.op,n=e.tag,r=e.path,o=e.method,i=e.security,a=e.isAuthorized,s=e.operationId,u=e.showSummary,c=e.isShown,l=e.jumpToKey,p=e.allowTryItOut,f=e.response,h=e.request,d=e.displayOperationId,m=e.displayRequestDuration,v=e.isDeepLinkingEnabled,g=e.specPath,y=e.specSelectors,b=e.specActions,_=e.getComponent,w=e.getConfigs,x=e.layoutSelectors,E=e.layoutActions,C=e.authActions,O=e.authSelectors,A=e.oas3Actions,T=e.oas3Selectors,j=e.fn,P=_("operation"),I=this.getResolvedSubtree()||Object(k.Map)(),M=Object(k.fromJS)({op:I,tag:n,path:r,summary:t.getIn(["operation","summary"])||"",deprecated:I.get("deprecated")||t.getIn(["operation","deprecated"])||!1,method:o,security:i,isAuthorized:a,operationId:s,originalOperationId:I.getIn(["operation","__originalOperationId"]),showSummary:u,isShown:c,jumpToKey:l,allowTryItOut:p,request:h,displayOperationId:d,displayRequestDuration:m,isDeepLinkingEnabled:v,executeInProgress:this.state.executeInProgress,tryItOutEnabled:this.state.tryItOutEnabled});return S.a.createElement(P,{operation:M,response:f,request:h,isShown:c,toggleShown:this.toggleShown,onTryoutClick:this.onTryoutClick,onCancelClick:this.onCancelClick,onExecute:this.onExecute,specPath:g,specActions:b,specSelectors:y,oas3Actions:A,oas3Selectors:T,layoutActions:E,layoutSelectors:x,authActions:C,authSelectors:O,getComponent:_,getConfigs:w,fn:j})}}]),t}(E.PureComponent);v()(fe,"defaultProps",{showSummary:!0,response:null,allowTryItOut:!0,displayOperationId:!1,displayRequestDuration:!1});var he=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"getLayout",value:function(){var e=this.props,t=e.getComponent,n=e.layoutSelectors.current(),r=t(n,!0);return r||function(){return S.a.createElement("h1",null,' No layout defined for "',n,'" ')}}},{key:"render",value:function(){var e=this.getLayout();return S.a.createElement(e,null)}}]),t}(S.a.Component);he.defaultProps={};var de=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"close",function(){n.props.authActions.showDefinitions(!1)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.authSelectors,n=e.authActions,r=e.getComponent,o=e.errSelectors,i=e.specSelectors,a=e.fn.AST,s=void 0===a?{}:a,u=t.shownDefinitions(),c=r("auths");return S.a.createElement("div",{className:"dialog-ux"},S.a.createElement("div",{className:"backdrop-ux"}),S.a.createElement("div",{className:"modal-ux"},S.a.createElement("div",{className:"modal-dialog-ux"},S.a.createElement("div",{className:"modal-ux-inner"},S.a.createElement("div",{className:"modal-ux-header"},S.a.createElement("h3",null,"Available authorizations"),S.a.createElement("button",{type:"button",className:"close-modal",onClick:this.close},S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:"#close",xlinkHref:"#close"})))),S.a.createElement("div",{className:"modal-ux-content"},u.valueSeq().map(function(e,a){return S.a.createElement(c,{key:a,AST:s,definitions:e,getComponent:r,errSelectors:o,authSelectors:t,authActions:n,specSelectors:i})}))))))}}]),t}(S.a.Component),me=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.isAuthorized,n=e.showPopup,r=e.onClick,o=(0,e.getComponent)("authorizationPopup",!0);return S.a.createElement("div",{className:"auth-wrapper"},S.a.createElement("button",{className:t?"btn authorize locked":"btn authorize unlocked",onClick:r},S.a.createElement("span",null,"Authorize"),S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:t?"#locked":"#unlocked",xlinkHref:t?"#locked":"#unlocked"}))),n&&S.a.createElement(o,null))}}]),t}(S.a.Component),ve=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.authActions,n=e.authSelectors,r=e.specSelectors,o=e.getComponent,i=r.securityDefinitions(),a=n.definitionsToAuthorize(),s=o("authorizeBtn");return i?S.a.createElement(s,{onClick:function(){return t.showDefinitions(a)},isAuthorized:!!n.authorized().size,showPopup:!!n.shownDefinitions(),getComponent:o}):null}}]),t}(S.a.Component),ge=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(e){e.stopPropagation();var t=n.props.onClick;t&&t()}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.isAuthorized;return S.a.createElement("button",{className:e?"authorization__btn locked":"authorization__btn unlocked","aria-label":e?"authorization button locked":"authorization button unlocked",onClick:this.onClick},S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{href:e?"#locked":"#unlocked",xlinkHref:e?"#locked":"#unlocked"})))}}]),t}(S.a.Component),ye=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onAuthChange",function(e){var t=e.name;r.setState(v()({},t,e))}),v()(ue()(r),"submitAuth",function(e){e.preventDefault(),r.props.authActions.authorize(r.state)}),v()(ue()(r),"logoutClick",function(e){e.preventDefault();var t=r.props,n=t.authActions,o=t.definitions.map(function(e,t){return t}).toArray();r.setState(o.reduce(function(e,t){return e[t]="",e},{})),n.logout(o)}),v()(ue()(r),"close",function(e){e.preventDefault(),r.props.authActions.showDefinitions(!1)}),r.state={},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.definitions,r=t.getComponent,o=t.authSelectors,i=t.errSelectors,a=r("AuthItem"),s=r("oauth2",!0),u=r("Button"),c=o.authorized(),l=n.filter(function(e,t){return!!c.get(t)}),p=n.filter(function(e){return"oauth2"!==e.get("type")}),f=n.filter(function(e){return"oauth2"===e.get("type")});return S.a.createElement("div",{className:"auth-container"},!!p.size&&S.a.createElement("form",{onSubmit:this.submitAuth},p.map(function(t,n){return S.a.createElement(a,{key:n,schema:t,name:n,getComponent:r,onAuthChange:e.onAuthChange,authorized:c,errSelectors:i})}).toArray(),S.a.createElement("div",{className:"auth-btn-wrapper"},p.size===l.size?S.a.createElement(u,{className:"btn modal-btn auth",onClick:this.logoutClick},"Logout"):S.a.createElement(u,{type:"submit",className:"btn modal-btn auth authorize"},"Authorize"),S.a.createElement(u,{className:"btn modal-btn auth btn-done",onClick:this.close},"Close"))),f&&f.size?S.a.createElement("div",null,S.a.createElement("div",{className:"scope-def"},S.a.createElement("p",null,"Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes."),S.a.createElement("p",null,"API requires the following scopes. Select which ones you want to grant to Swagger UI.")),n.filter(function(e){return"oauth2"===e.get("type")}).map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(s,{authorized:c,schema:e,name:t}))}).toArray()):null)}}]),t}(S.a.Component),be=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t=this.props,n=t.schema,r=t.name,o=t.getComponent,i=t.onAuthChange,a=t.authorized,s=t.errSelectors,u=o("apiKeyAuth"),c=o("basicAuth"),l=n.get("type");switch(l){case"apiKey":e=S.a.createElement(u,{key:r,schema:n,name:r,errSelectors:s,authorized:a,getComponent:o,onChange:i});break;case"basic":e=S.a.createElement(c,{key:r,schema:n,name:r,errSelectors:s,authorized:a,getComponent:o,onChange:i});break;default:e=S.a.createElement("div",{key:r},"Unknown security definition type ",l)}return S.a.createElement("div",{key:"".concat(r,"-jump")},e)}}]),t}(S.a.Component),_e=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.error,t=e.get("level"),n=e.get("message"),r=e.get("source");return S.a.createElement("div",{className:"errors",style:{backgroundColor:"#ffeeee",color:"red",margin:"1em"}},S.a.createElement("b",{style:{textTransform:"capitalize",marginRight:"1em"}},r," ",t),S.a.createElement("span",null,n))}}]),t}(S.a.Component),we=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t=r.props.onChange,n=e.target.value,o=y()({},r.state,{value:n});r.setState(o),t(o)});var o=r.props,i=o.name,a=o.schema,s=r.getValue();return r.state={name:i,schema:a,value:s},r}return le()(t,e),x()(t,[{key:"getValue",value:function(){var e=this.props,t=e.name,n=e.authorized;return n&&n.getIn([t,"value"])}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.errSelectors,o=e.name,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("Markdown"),l=n("JumpToPath",!0),p=this.getValue(),f=r.allErrors().filter(function(e){return e.get("authId")===o});return S.a.createElement("div",null,S.a.createElement("h4",null,S.a.createElement("code",null,o||t.get("name")),"  (apiKey)",S.a.createElement(l,{path:["securityDefinitions",o]})),p&&S.a.createElement("h6",null,"Authorized"),S.a.createElement(a,null,S.a.createElement(c,{source:t.get("description")})),S.a.createElement(a,null,S.a.createElement("p",null,"Name: ",S.a.createElement("code",null,t.get("name")))),S.a.createElement(a,null,S.a.createElement("p",null,"In: ",S.a.createElement("code",null,t.get("in")))),S.a.createElement(a,null,S.a.createElement("label",null,"Value:"),p?S.a.createElement("code",null," ****** "):S.a.createElement(s,null,S.a.createElement(i,{type:"text",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return S.a.createElement(u,{error:e,key:t})}))}}]),t}(S.a.Component),xe=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t=r.props.onChange,n=e.target,o=n.value,i=n.name,a=r.state.value;a[i]=o,r.setState({value:a}),t(r.state)});var o=r.props,i=o.schema,a=o.name,s=r.getValue().username;return r.state={name:a,schema:i,value:s?{username:s}:{}},r}return le()(t,e),x()(t,[{key:"getValue",value:function(){var e=this.props,t=e.authorized,n=e.name;return t&&t.getIn([n,"value"])||{}}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.name,o=e.errSelectors,i=n("Input"),a=n("Row"),s=n("Col"),u=n("authError"),c=n("JumpToPath",!0),l=n("Markdown"),p=this.getValue().username,f=o.allErrors().filter(function(e){return e.get("authId")===r});return S.a.createElement("div",null,S.a.createElement("h4",null,"Basic authorization",S.a.createElement(c,{path:["securityDefinitions",r]})),p&&S.a.createElement("h6",null,"Authorized"),S.a.createElement(a,null,S.a.createElement(l,{source:t.get("description")})),S.a.createElement(a,null,S.a.createElement("label",null,"Username:"),p?S.a.createElement("code",null," ",p," "):S.a.createElement(s,null,S.a.createElement(i,{type:"text",required:"required",name:"username",onChange:this.onChange}))),S.a.createElement(a,null,S.a.createElement("label",null,"Password:"),p?S.a.createElement("code",null," ****** "):S.a.createElement(s,null,S.a.createElement(i,{required:"required",autoComplete:"new-password",name:"password",type:"password",onChange:this.onChange}))),f.valueSeq().map(function(e,t){return S.a.createElement(u,{error:e,key:t})}))}}]),t}(S.a.Component);function Ee(e){var t=e.example,n=e.showValue,r=e.getComponent,o=r("Markdown"),i=r("highlightCode");return t?S.a.createElement("div",{className:"example"},t.get("description")?S.a.createElement("section",{className:"example__section"},S.a.createElement("div",{className:"example__section-header"},"Example Description"),S.a.createElement("p",null,S.a.createElement(o,{source:t.get("description")}))):null,n&&t.has("value")?S.a.createElement("section",{className:"example__section"},S.a.createElement("div",{className:"example__section-header"},"Example Value"),S.a.createElement(i,{value:Object(D.I)(t.get("value"))})):null):null}var Se=n(483),Ce=n.n(Se),ke=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"_onSelect",function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isSyntheticChange,o=void 0!==r&&r;"function"==typeof n.props.onSelect&&n.props.onSelect(e,{isSyntheticChange:o})}),v()(ue()(n),"_onDomSelect",function(e){if("function"==typeof n.props.onSelect){var t=e.target.selectedOptions[0].getAttribute("value");n._onSelect(t,{isSyntheticChange:!1})}}),v()(ue()(n),"getCurrentExample",function(){var e=n.props,t=e.examples,r=e.currentExampleKey,o=t.get(r),i=t.keySeq().first(),a=t.get(i);return o||a||Ce()({})}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.onSelect,n=e.examples;if("function"==typeof t){var r=n.first(),o=n.keyOf(r);this._onSelect(o,{isSyntheticChange:!0})}}},{key:"componentWillReceiveProps",value:function(e){var t=e.currentExampleKey,n=e.examples;if(n!==this.props.examples&&!n.has(t)){var r=n.first(),o=n.keyOf(r);this._onSelect(o,{isSyntheticChange:!0})}}},{key:"render",value:function(){var e=this.props,t=e.examples,n=e.currentExampleKey,r=e.isValueModified,o=e.isModifiedValueAvailable,i=e.showLabels;return S.a.createElement("div",{className:"examples-select"},i?S.a.createElement("span",{className:"examples-select__section-label"},"Examples: "):null,S.a.createElement("select",{onChange:this._onDomSelect,value:o&&r?"__MODIFIED__VALUE__":n||""},o?S.a.createElement("option",{value:"__MODIFIED__VALUE__"},"[Modified value]"):null,t.map(function(e,t){return S.a.createElement("option",{key:t,value:t},e.get("summary")||t)}).valueSeq()))}}]),t}(S.a.PureComponent);v()(ke,"defaultProps",{examples:O.a.Map({}),onSelect:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["DEBUG: ExamplesSelect was not given an onSelect callback"].concat(n))},currentExampleKey:null,showLabels:!0});var Oe=function(e){return k.List.isList(e)?e:Object(D.I)(e)},Ae=function(e){function t(e){var n;_()(this,t),n=oe()(this,ae()(t).call(this,e)),v()(ue()(n),"_getStateForCurrentNamespace",function(){var e=n.props.currentNamespace;return(n.state[e]||Object(k.Map)()).toObject()}),v()(ue()(n),"_setStateForCurrentNamespace",function(e){var t=n.props.currentNamespace;return n._setStateForNamespace(t,e)}),v()(ue()(n),"_setStateForNamespace",function(e,t){var r=(n.state[e]||Object(k.Map)()).mergeDeep(t);return n.setState(v()({},e,r))}),v()(ue()(n),"_isCurrentUserInputSameAsExampleValue",function(){var e=n.props.currentUserInputValue;return n._getCurrentExampleValue()===e}),v()(ue()(n),"_getValueForExample",function(e,t){var r=(t||n.props).examples;return Oe((r||Object(k.Map)({})).getIn([e,"value"]))}),v()(ue()(n),"_getCurrentExampleValue",function(e){var t=(e||n.props).currentKey;return n._getValueForExample(t,e||n.props)}),v()(ue()(n),"_onExamplesSelect",function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.isSyntheticChange,o=n.props,i=o.onSelect,a=o.updateValue,s=o.currentUserInputValue,u=n._getStateForCurrentNamespace(),c=u.lastUserEditedValue,l=n._getValueForExample(e);if("__MODIFIED__VALUE__"===e)return a(Oe(c)),n._setStateForCurrentNamespace({isModifiedValueSelected:!0});if("function"==typeof i){for(var p=arguments.length,f=new Array(p>2?p-2:0),h=2;h<p;h++)f[h-2]=arguments[h];i.apply(void 0,[e,{isSyntheticChange:r}].concat(f))}n._setStateForCurrentNamespace({lastDownstreamValue:l,isModifiedValueSelected:r&&!!s&&s!==l}),r||"function"==typeof a&&a(Oe(l))});var r=n._getCurrentExampleValue();return n.state=v()({},e.currentNamespace,Object(k.Map)({lastUserEditedValue:n.props.currentUserInputValue,lastDownstreamValue:r,isModifiedValueSelected:n.props.currentUserInputValue!==r})),n}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t=e.currentUserInputValue,n=e.examples,r=e.onSelect,o=this._getStateForCurrentNamespace(),i=o.lastUserEditedValue,a=o.lastDownstreamValue,s=this._getValueForExample(e.currentKey,e),u=n.find(function(e){return e.get("value")===t||Object(D.I)(e.get("value"))===t});u?r(n.keyOf(u),{isSyntheticChange:!0}):t!==this.props.currentUserInputValue&&t!==i&&t!==a&&this._setStateForNamespace(e.currentNamespace,{lastUserEditedValue:e.currentUserInputValue,isModifiedValueSelected:t!==s})}},{key:"render",value:function(){var e=this.props,t=e.currentUserInputValue,n=e.examples,r=e.currentKey,o=e.getComponent,i=this._getStateForCurrentNamespace(),a=i.lastDownstreamValue,s=i.lastUserEditedValue,u=i.isModifiedValueSelected,c=o("ExamplesSelect");return S.a.createElement(c,{examples:n,currentExampleKey:r,onSelect:this._onExamplesSelect,isModifiedValueAvailable:!!s&&s!==a,isValueModified:void 0!==t&&u&&t!==this._getCurrentExampleValue()})}}]),t}(S.a.PureComponent);v()(Ae,"defaultProps",{examples:Object(k.Map)({}),currentNamespace:"__DEFAULT__NAMESPACE__",onSelect:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["ExamplesSelectValueRetainer: no `onSelect` function was provided"].concat(n))},updateValue:function(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return(e=console).log.apply(e,["ExamplesSelectValueRetainer: no `updateValue` function was provided"].concat(n))}});var Te=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"close",function(e){e.preventDefault(),r.props.authActions.showDefinitions(!1)}),v()(ue()(r),"authorize",function(){var e=r.props,t=e.authActions,n=e.errActions,o=e.getConfigs,i=e.authSelectors,a=o(),s=i.getConfigs();n.clear({authId:name,type:"auth",source:"auth"}),function(e){var t=e.auth,n=e.authActions,r=e.errActions,o=e.configs,i=e.authConfigs,a=void 0===i?{}:i,s=t.schema,u=t.scopes,c=t.name,l=t.clientId,p=s.get("flow"),f=[];switch(p){case"password":return void n.authorizePassword(t);case"application":return void n.authorizeApplication(t);case"accessCode":f.push("response_type=code");break;case"implicit":f.push("response_type=token");break;case"clientCredentials":return void n.authorizeApplication(t);case"authorizationCode":f.push("response_type=code")}"string"==typeof l&&f.push("client_id="+encodeURIComponent(l));var h=o.oauth2RedirectUrl;if(void 0!==h){if(f.push("redirect_uri="+encodeURIComponent(h)),d()(u)&&0<u.length){var m=a.scopeSeparator||" ";f.push("scope="+encodeURIComponent(u.join(m)))}var v=Object(D.a)(new Date);if(f.push("state="+encodeURIComponent(v)),void 0!==a.realm&&f.push("realm="+encodeURIComponent(a.realm)),"authorizationCode"===p&&a.usePkceWithAuthorizationCodeGrant){var g=Object(D.j)(),y=Object(D.c)(g);f.push("code_challenge="+y),f.push("code_challenge_method=S256"),t.codeVerifier=g}var b=a.additionalQueryStringParams;for(var _ in b)void 0!==b[_]&&f.push([_,b[_]].map(encodeURIComponent).join("="));var w,x=s.get("authorizationUrl"),E=[Object(D.F)(x),f.join("&")].join(-1===x.indexOf("?")?"?":"&");w="implicit"===p?n.preAuthorizeImplicit:a.useBasicAuthenticationWithAccessCodeGrant?n.authorizeAccessCodeWithBasicAuthentication:n.authorizeAccessCodeWithFormParams,R.a.swaggerUIRedirectOauth2={auth:t,state:v,redirectUrl:h,callback:w,errCb:r.newAuthErr},R.a.open(E)}else r.newAuthErr({authId:c,source:"validation",level:"error",message:"oauth2RedirectUrl configuration is not passed. Oauth2 authorization cannot be performed."})}({auth:r.state,authActions:t,errActions:n,configs:a,authConfigs:s})}),v()(ue()(r),"onScopeChange",function(e){var t=e.target,n=t.checked,o=t.dataset.value;if(n&&-1===r.state.scopes.indexOf(o)){var i=r.state.scopes.concat([o]);r.setState({scopes:i})}else!n&&r.state.scopes.indexOf(o)>-1&&r.setState({scopes:r.state.scopes.filter(function(e){return e!==o})})}),v()(ue()(r),"onInputChange",function(e){var t=e.target,n=t.dataset.name,o=t.value,i=v()({},n,o);r.setState(i)}),v()(ue()(r),"logout",function(e){e.preventDefault();var t=r.props,n=t.authActions,o=t.errActions,i=t.name;o.clear({authId:i,type:"auth",source:"auth"}),n.logout([i])});var o=r.props,i=o.name,a=o.schema,s=o.authorized,u=o.authSelectors,c=s&&s.get(i),l=u.getConfigs()||{},p=c&&c.get("username")||"",f=c&&c.get("clientId")||l.clientId||"",h=c&&c.get("clientSecret")||l.clientSecret||"",m=c&&c.get("passwordType")||"basic";return r.state={appName:l.appName,name:i,schema:a,scopes:[],clientId:f,clientSecret:h,username:p,password:"",passwordType:m},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.schema,r=t.getComponent,o=t.authSelectors,i=t.errSelectors,a=t.name,s=t.specSelectors,u=r("Input"),c=r("Row"),l=r("Col"),p=r("Button"),f=r("authError"),h=r("JumpToPath",!0),d=r("Markdown"),m=r("InitializedInput"),v=s.isOAS3,g=v()?"authorizationCode":"accessCode",y=v()?"clientCredentials":"application",b=n.get("flow"),_=n.get("allowedScopes")||n.get("scopes"),w=!!o.authorized().get(a),x=i.allErrors().filter(function(e){return e.get("authId")===a}),E=!x.filter(function(e){return"validation"===e.get("source")}).size,C=n.get("description");return S.a.createElement("div",null,S.a.createElement("h4",null,a," (OAuth2, ",n.get("flow"),") ",S.a.createElement(h,{path:["securityDefinitions",a]})),this.state.appName?S.a.createElement("h5",null,"Application: ",this.state.appName," "):null,C&&S.a.createElement(d,{source:n.get("description")}),w&&S.a.createElement("h6",null,"Authorized"),("implicit"===b||b===g)&&S.a.createElement("p",null,"Authorization URL: ",S.a.createElement("code",null,n.get("authorizationUrl"))),("password"===b||b===g||b===y)&&S.a.createElement("p",null,"Token URL:",S.a.createElement("code",null," ",n.get("tokenUrl"))),S.a.createElement("p",{className:"flow"},"Flow: ",S.a.createElement("code",null,n.get("flow"))),"password"!==b?null:S.a.createElement(c,null,S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"oauth_username"},"username:"),w?S.a.createElement("code",null," ",this.state.username," "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("input",{id:"oauth_username",type:"text","data-name":"username",onChange:this.onInputChange}))),S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"oauth_password"},"password:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("input",{id:"oauth_password",type:"password","data-name":"password",onChange:this.onInputChange}))),S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"password_type"},"Client credentials location:"),w?S.a.createElement("code",null," ",this.state.passwordType," "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement("select",{id:"password_type","data-name":"passwordType",onChange:this.onInputChange},S.a.createElement("option",{value:"basic"},"Authorization header"),S.a.createElement("option",{value:"request-body"},"Request body"))))),(b===y||"implicit"===b||b===g||"password"===b)&&(!w||w&&this.state.clientId)&&S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"client_id"},"client_id:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement(m,{id:"client_id",type:"text",required:"password"===b,initialValue:this.state.clientId,"data-name":"clientId",onChange:this.onInputChange}))),(b===y||b===g||"password"===b)&&S.a.createElement(c,null,S.a.createElement("label",{htmlFor:"client_secret"},"client_secret:"),w?S.a.createElement("code",null," ****** "):S.a.createElement(l,{tablet:10,desktop:10},S.a.createElement(m,{id:"client_secret",initialValue:this.state.clientSecret,type:"password","data-name":"clientSecret",onChange:this.onInputChange}))),!w&&_&&_.size?S.a.createElement("div",{className:"scopes"},S.a.createElement("h2",null,"Scopes:"),_.map(function(t,n){return S.a.createElement(c,{key:n},S.a.createElement("div",{className:"checkbox"},S.a.createElement(u,{"data-value":n,id:"".concat(n,"-").concat(b,"-checkbox-").concat(e.state.name),disabled:w,type:"checkbox",onChange:e.onScopeChange}),S.a.createElement("label",{htmlFor:"".concat(n,"-").concat(b,"-checkbox-").concat(e.state.name)},S.a.createElement("span",{className:"item"}),S.a.createElement("div",{className:"text"},S.a.createElement("p",{className:"name"},n),S.a.createElement("p",{className:"description"},t)))))}).toArray()):null,x.valueSeq().map(function(e,t){return S.a.createElement(f,{error:e,key:t})}),S.a.createElement("div",{className:"auth-btn-wrapper"},E&&(w?S.a.createElement(p,{className:"btn modal-btn auth authorize",onClick:this.logout},"Logout"):S.a.createElement(p,{className:"btn modal-btn auth authorize",onClick:this.authorize},"Authorize")),S.a.createElement(p,{className:"btn modal-btn auth btn-done",onClick:this.close},"Close")))}}]),t}(S.a.Component),je=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(){var e=n.props,t=e.specActions,r=e.path,o=e.method;t.clearResponse(r,o),t.clearRequest(r,o)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",{className:"btn btn-clear opblock-control__btn",onClick:this.onClick},"Clear")}}]),t}(E.Component),Pe=function(e){var t=e.headers;return S.a.createElement("div",null,S.a.createElement("h5",null,"Response headers"),S.a.createElement("pre",{className:"microlight"},t))},Ie=function(e){var t=e.duration;return S.a.createElement("div",null,S.a.createElement("h5",null,"Request duration"),S.a.createElement("pre",{className:"microlight"},t," ms"))},Me=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"shouldComponentUpdate",value:function(e){return this.props.response!==e.response||this.props.path!==e.path||this.props.method!==e.method||this.props.displayRequestDuration!==e.displayRequestDuration}},{key:"render",value:function(){var e=this.props,t=e.response,n=e.getComponent,r=e.getConfigs,o=e.displayRequestDuration,i=e.specSelectors,a=e.path,s=e.method,c=r().showMutatedRequest?i.mutatedRequestFor(a,s):i.requestFor(a,s),l=t.get("status"),p=c.get("url"),f=t.get("headers").toJS(),h=t.get("notDocumented"),d=t.get("error"),m=t.get("text"),v=t.get("duration"),g=u()(f),y=f["content-type"]||f["Content-Type"],b=n("curl"),_=n("responseBody"),w=g.map(function(e){return S.a.createElement("span",{className:"headerline",key:e}," ",e,": ",f[e]," ")}),x=0!==w.length;return S.a.createElement("div",null,c&&S.a.createElement(b,{request:c}),p&&S.a.createElement("div",null,S.a.createElement("h4",null,"Request URL"),S.a.createElement("div",{className:"request-url"},S.a.createElement("pre",{className:"microlight"},p))),S.a.createElement("h4",null,"Server response"),S.a.createElement("table",{className:"responses-table live-responses-table"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"responses-header"},S.a.createElement("td",{className:"col_header response-col_status"},"Code"),S.a.createElement("td",{className:"col_header response-col_description"},"Details"))),S.a.createElement("tbody",null,S.a.createElement("tr",{className:"response"},S.a.createElement("td",{className:"response-col_status"},l,h?S.a.createElement("div",{className:"response-undocumented"},S.a.createElement("i",null," Undocumented ")):null),S.a.createElement("td",{className:"response-col_description"},d?S.a.createElement("span",null,"".concat(t.get("name"),": ").concat(t.get("message"))):null,m?S.a.createElement(_,{content:m,contentType:y,url:p,headers:f,getComponent:n}):null,x?S.a.createElement(Pe,{headers:w}):null,o&&v?S.a.createElement(Ie,{duration:v}):null)))))}}]),t}(S.a.Component),Ne=n(95),Re=n.n(Ne),De=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"getDefinitionUrl",function(){var e=r.props.specSelectors;return new Re.a(e.url(),R.a.location).toString()});var o=(0,e.getConfigs)().validatorUrl;return r.state={url:r.getDefinitionUrl(),validatorUrl:void 0===o?"https://validator.swagger.io/validator":o},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t=(0,e.getConfigs)().validatorUrl;this.setState({url:this.getDefinitionUrl(),validatorUrl:void 0===t?"https://validator.swagger.io/validator":t})}},{key:"render",value:function(){var e=(0,this.props.getConfigs)().spec,t=Object(D.F)(this.state.validatorUrl);return"object"===l()(e)&&u()(e).length?null:!this.state.url||!this.state.validatorUrl||this.state.url.indexOf("localhost")>=0||this.state.url.indexOf("127.0.0.1")>=0?null:S.a.createElement("span",{style:{float:"right"}},S.a.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"".concat(t,"/debug?url=").concat(encodeURIComponent(this.state.url))},S.a.createElement(Le,{src:"".concat(t,"?url=").concat(encodeURIComponent(this.state.url)),alt:"Online validator badge"})))}}]),t}(S.a.Component),Le=function(e){function t(e){var n;return _()(this,t),(n=oe()(this,ae()(t).call(this,e))).state={loaded:!1,error:!1},n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this,t=new Image;t.onload=function(){e.setState({loaded:!0})},t.onerror=function(){e.setState({error:!0})},t.src=this.props.src}},{key:"componentWillReceiveProps",value:function(e){var t=this;if(e.src!==this.props.src){var n=new Image;n.onload=function(){t.setState({loaded:!0})},n.onerror=function(){t.setState({error:!0})},n.src=e.src}}},{key:"render",value:function(){return this.state.error?S.a.createElement("img",{alt:"Error"}):this.state.loaded?S.a.createElement("img",{src:this.props.src,alt:this.props.alt}):null}}]),t}(S.a.Component),Ue=["get","put","post","delete","options","head","patch"],qe=Ue.concat(["trace"]),Fe=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.getComponent,r=e.layoutSelectors,o=e.layoutActions,i=e.getConfigs,a=e.fn,s=t.taggedOperations(),u=n("OperationContainer",!0),c=n("OperationTag"),l=i().maxDisplayedTags,p=r.currentFilter();return p&&!0!==p&&(s=a.opsFilter(s,p)),l&&!isNaN(l)&&l>=0&&(s=s.slice(0,l)),S.a.createElement("div",null,s.map(function(e,a){var s=e.get("operations");return S.a.createElement(c,{key:"operation-"+a,tagObj:e,tag:a,layoutSelectors:r,layoutActions:o,getConfigs:i,getComponent:n},s.map(function(e){var n=e.get("path"),r=e.get("method"),o=O.a.List(["paths",n,r]);return-1===(t.isOAS3()?qe:Ue).indexOf(r)?null:S.a.createElement(u,{key:"".concat(n,"-").concat(r),specPath:o,op:e,path:n,method:r,tag:a})}).toArray())}).toArray(),s.size<1?S.a.createElement("h3",null," No operations defined in spec! "):null)}}]),t}(S.a.Component),Be=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.tagObj,n=e.tag,r=e.children,o=e.layoutSelectors,i=e.layoutActions,a=e.getConfigs,s=e.getComponent,u=a(),c=u.docExpansion,l=u.deepLinking,p=l&&"false"!==l,f=s("Collapse"),h=s("Markdown"),d=s("DeepLink"),m=s("Link"),v=t.getIn(["tagDetails","description"],null),g=t.getIn(["tagDetails","externalDocs","description"]),y=t.getIn(["tagDetails","externalDocs","url"]),b=["operations-tag",n],_=o.isShown(b,"full"===c||"list"===c);return S.a.createElement("div",{className:_?"opblock-tag-section is-open":"opblock-tag-section"},S.a.createElement("h4",{onClick:function(){return i.show(b,!_)},className:v?"opblock-tag":"opblock-tag no-desc",id:b.map(function(e){return Object(D.g)(e)}).join("-"),"data-tag":n,"data-is-open":_},S.a.createElement(d,{enabled:p,isShown:_,path:Object(D.d)(n),text:n}),v?S.a.createElement("small",null,S.a.createElement(h,{source:v})):S.a.createElement("small",null),S.a.createElement("div",null,g?S.a.createElement("small",null,g,y?": ":null,y?S.a.createElement(m,{href:Object(D.F)(y),onClick:function(e){return e.stopPropagation()},target:"_blank"},y):null):null),S.a.createElement("button",{className:"expand-operation",title:_?"Collapse operation":"Expand operation",onClick:function(){return i.show(b,!_)}},S.a.createElement("svg",{className:"arrow",width:"20",height:"20"},S.a.createElement("use",{href:_?"#large-arrow-down":"#large-arrow",xlinkHref:_?"#large-arrow-down":"#large-arrow"})))),S.a.createElement(f,{isOpened:_},r))}}]),t}(S.a.Component);v()(Be,"defaultProps",{tagObj:O.a.fromJS({}),tag:""});var ze=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specPath,r=e.response,o=e.request,i=e.toggleShown,a=e.onTryoutClick,s=e.onCancelClick,u=e.onExecute,c=e.fn,l=e.getComponent,p=e.getConfigs,f=e.specActions,h=e.specSelectors,d=e.authActions,m=e.authSelectors,v=e.oas3Actions,g=e.oas3Selectors,y=this.props.operation,b=y.toJS(),_=b.deprecated,w=b.isShown,x=b.path,E=b.method,C=b.op,k=b.tag,O=b.operationId,A=b.allowTryItOut,T=b.displayRequestDuration,j=b.tryItOutEnabled,P=b.executeInProgress,I=C.description,M=C.externalDocs,N=C.schemes,R=y.getIn(["op"]),L=R.get("responses"),U=Object(D.n)(R,["parameters"]),q=h.operationScheme(x,E),F=["operations",k,O],B=Object(D.m)(R),z=l("responses"),V=l("parameters"),H=l("execute"),W=l("clear"),J=l("Collapse"),K=l("Markdown"),Y=l("schemes"),$=l("OperationServers"),G=l("OperationExt"),Z=l("OperationSummary"),X=l("Link"),Q=p().showExtensions;if(L&&r&&r.size>0){var ee=!L.get(String(r.get("status")))&&!L.get("default");r=r.set("notDocumented",ee)}var te=[x,E];return S.a.createElement("div",{className:_?"opblock opblock-deprecated":w?"opblock opblock-".concat(E," is-open"):"opblock opblock-".concat(E),id:Object(D.g)(F.join("-"))},S.a.createElement(Z,{operationProps:y,toggleShown:i,getComponent:l,authActions:d,authSelectors:m,specPath:t}),S.a.createElement(J,{isOpened:w},S.a.createElement("div",{className:"opblock-body"},R&&R.size||null===R?null:S.a.createElement("img",{height:"32px",width:"32px",src:n(462),className:"opblock-loading-animation"}),_&&S.a.createElement("h4",{className:"opblock-title_normal"}," Warning: Deprecated"),I&&S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement("div",{className:"opblock-description"},S.a.createElement(K,{source:I}))),M&&M.url?S.a.createElement("div",{className:"opblock-external-docs-wrapper"},S.a.createElement("h4",{className:"opblock-title_normal"},"Find more details"),S.a.createElement("div",{className:"opblock-external-docs"},S.a.createElement("span",{className:"opblock-external-docs__description"},S.a.createElement(K,{source:M.description})),S.a.createElement(X,{target:"_blank",className:"opblock-external-docs__link",href:Object(D.F)(M.url)},M.url))):null,R&&R.size?S.a.createElement(V,{parameters:U,specPath:t.push("parameters"),operation:R,onChangeKey:te,onTryoutClick:a,onCancelClick:s,tryItOutEnabled:j,allowTryItOut:A,fn:c,getComponent:l,specActions:f,specSelectors:h,pathMethod:[x,E],getConfigs:p,oas3Actions:v,oas3Selectors:g}):null,j?S.a.createElement($,{getComponent:l,path:x,method:E,operationServers:R.get("servers"),pathServers:h.paths().getIn([x,"servers"]),getSelectedServer:g.selectedServer,setSelectedServer:v.setSelectedServer,setServerVariableValue:v.setServerVariableValue,getServerVariable:g.serverVariableValue,getEffectiveServerValue:g.serverEffectiveValue}):null,j&&A&&N&&N.size?S.a.createElement("div",{className:"opblock-schemes"},S.a.createElement(Y,{schemes:N,path:x,method:E,specActions:f,currentScheme:q})):null,S.a.createElement("div",{className:j&&r&&A?"btn-group":"execute-wrapper"},j&&A?S.a.createElement(H,{operation:R,specActions:f,specSelectors:h,path:x,method:E,onExecute:u}):null,j&&r&&A?S.a.createElement(W,{specActions:f,path:x,method:E}):null),P?S.a.createElement("div",{className:"loading-container"},S.a.createElement("div",{className:"loading"})):null,L?S.a.createElement(z,{responses:L,request:o,tryItOutResponse:r,getComponent:l,getConfigs:p,specSelectors:h,oas3Actions:v,oas3Selectors:g,specActions:f,produces:h.producesOptionsFor([x,E]),producesValue:h.currentProducesFor([x,E]),specPath:t.push("responses"),path:x,method:E,displayRequestDuration:T,fn:c}):null,Q&&B.size?S.a.createElement(G,{extensions:B,getComponent:l}):null)))}}]),t}(E.PureComponent);v()(ze,"defaultProps",{operation:null,response:null,request:null,specPath:Object(k.List)(),summary:""});var Ve=n(69),He=n.n(Ve),We=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.toggleShown,n=e.getComponent,r=e.authActions,o=e.authSelectors,i=e.operationProps,a=e.specPath,s=i.toJS(),u=s.summary,c=s.isAuthorized,l=s.method,p=s.op,f=s.showSummary,h=s.operationId,d=s.originalOperationId,m=s.displayOperationId,v=p.summary,g=i.get("security"),y=n("authorizeOperationBtn"),b=n("OperationSummaryMethod"),_=n("OperationSummaryPath"),w=n("JumpToPath",!0);return S.a.createElement("div",{className:"opblock-summary opblock-summary-".concat(l),onClick:t},S.a.createElement(b,{method:l}),S.a.createElement(_,{getComponent:n,operationProps:i,specPath:a}),f?S.a.createElement("div",{className:"opblock-summary-description"},He()(v||u)):null,m&&(d||h)?S.a.createElement("span",{className:"opblock-summary-operation-id"},d||h):null,g&&g.count()?S.a.createElement(y,{isAuthorized:c,onClick:function(){var e=o.definitionsForRequirements(g);r.showDefinitions(e)}}):null,S.a.createElement(w,{path:a}))}}]),t}(E.PureComponent);v()(We,"defaultProps",{operationProps:null,specPath:Object(k.List)(),summary:""});var Je=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props.method;return S.a.createElement("span",{className:"opblock-summary-method"},e.toUpperCase())}}]),t}(E.PureComponent);v()(Je,"defaultProps",{operationProps:null});var Ke=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onCopyCapture",function(e){e.clipboardData.setData("text/plain",n.props.operationProps.get("path")),e.preventDefault()}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.operationProps.toJS(),r=n.deprecated,o=n.isShown,i=n.path,a=n.tag,s=n.operationId,u=n.isDeepLinkingEnabled,c=t("DeepLink");return S.a.createElement("span",{className:r?"opblock-summary-path__deprecated":"opblock-summary-path",onCopyCapture:this.onCopyCapture,"data-path":i},S.a.createElement(c,{enabled:u,isShown:o,path:Object(D.d)("".concat(a,"/").concat(s)),text:i.replace(/\//g,"​/")}))}}]),t}(E.PureComponent),Ye=n(13),$e=n.n(Ye),Ge=function(e){var t=e.extensions,n=(0,e.getComponent)("OperationExtRow");return S.a.createElement("div",{className:"opblock-section"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",null,"Extensions")),S.a.createElement("div",{className:"table-container"},S.a.createElement("table",null,S.a.createElement("thead",null,S.a.createElement("tr",null,S.a.createElement("td",{className:"col_header"},"Field"),S.a.createElement("td",{className:"col_header"},"Value"))),S.a.createElement("tbody",null,t.entrySeq().map(function(e){var t=$e()(e,2),r=t[0],o=t[1];return S.a.createElement(n,{key:"".concat(r,"-").concat(o),xKey:r,xVal:o})})))))},Ze=function(e){var t=e.xKey,n=e.xVal,r=n?n.toJS?n.toJS():n:null;return S.a.createElement("tr",null,S.a.createElement("td",null,t),S.a.createElement("td",null,a()(r)))},Xe=n(484),Qe=n.n(Xe),et=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"initializeComponent",function(e){n.el=e}),v()(ue()(n),"downloadText",function(){Qe()(n.props.value,n.props.fileName||"response.txt")}),v()(ue()(n),"preventYScrollingBeyondElement",function(e){var t=e.target,n=e.nativeEvent.deltaY,r=t.scrollHeight,o=t.offsetHeight,i=t.scrollTop;r>o&&(0===i&&n<0||o+i>=r&&n>0)&&e.preventDefault()}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){Object(D.p)(this.el)}},{key:"componentDidUpdate",value:function(){Object(D.p)(this.el)}},{key:"render",value:function(){var e=this.props,t=e.value,n=e.className,r=e.downloadable;return n=n||"",S.a.createElement("div",{className:"highlight-code"},r?S.a.createElement("div",{className:"download-contents",onClick:this.downloadText},"Download"):null,S.a.createElement("pre",{ref:this.initializeComponent,onWheel:this.preventYScrollingBeyondElement,className:n+" microlight"},t))}}]),t}(E.Component),tt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChangeProducesWrapper",function(e){return n.props.specActions.changeProducesValue([n.props.path,n.props.method],e)}),v()(ue()(n),"onResponseContentTypeChange",function(e){var t=e.controlsAcceptHeader,r=e.value,o=n.props,i=o.oas3Actions,a=o.path,s=o.method;t&&i.setResponseContentType({value:r,path:a,method:s})}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,n=this.props,r=n.responses,o=n.tryItOutResponse,i=n.getComponent,a=n.getConfigs,s=n.specSelectors,u=n.fn,c=n.producesValue,l=n.displayRequestDuration,p=n.specPath,f=n.path,h=n.method,d=n.oas3Selectors,m=n.oas3Actions,v=Object(D.f)(r),g=i("contentType"),y=i("liveResponse"),b=i("response"),_=this.props.produces&&this.props.produces.size?this.props.produces:t.defaultProps.produces,w=s.isOAS3()?Object(D.k)(r):null;return S.a.createElement("div",{className:"responses-wrapper"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",null,"Responses"),s.isOAS3()?null:S.a.createElement("label",null,S.a.createElement("span",null,"Response content type"),S.a.createElement(g,{value:c,onChange:this.onChangeProducesWrapper,contentTypes:_,className:"execute-content-type"}))),S.a.createElement("div",{className:"responses-inner"},o?S.a.createElement("div",null,S.a.createElement(y,{response:o,getComponent:i,getConfigs:a,specSelectors:s,path:this.props.path,method:this.props.method,displayRequestDuration:l}),S.a.createElement("h4",null,"Responses")):null,S.a.createElement("table",{className:"responses-table"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"responses-header"},S.a.createElement("td",{className:"col_header response-col_status"},"Code"),S.a.createElement("td",{className:"col_header response-col_description"},"Description"),s.isOAS3()?S.a.createElement("td",{className:"col col_header response-col_links"},"Links"):null)),S.a.createElement("tbody",null,r.entrySeq().map(function(t){var n=$e()(t,2),r=n[0],l=n[1],g=o&&o.get("status")==r?"response_current":"";return S.a.createElement(b,{key:r,path:f,method:h,specPath:p.push(r),isDefault:v===r,fn:u,className:g,code:r,response:l,specSelectors:s,controlsAcceptHeader:l===w,onContentTypeChange:e.onResponseContentTypeChange,contentType:c,getConfigs:a,activeExamplesKey:d.activeExamplesMember(f,h,"responses",r),oas3Actions:m,getComponent:i})}).toArray()))))}}]),t}(S.a.Component);v()(tt,"defaultProps",{tryItOutResponse:null,produces:Object(k.fromJS)(["application/json"]),displayRequestDuration:!1});var nt=n(59),rt=n.n(nt),ot=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"_onContentTypeChange",function(e){var t=r.props,n=t.onContentTypeChange,o=t.controlsAcceptHeader;r.setState({responseContentType:e}),n({value:e,controlsAcceptHeader:o})}),v()(ue()(r),"getTargetExamplesKey",function(){var e=r.props,t=e.response,n=e.contentType,o=e.activeExamplesKey,i=r.state.responseContentType||n,a=t.getIn(["content",i],Object(k.Map)({})).get("examples",null).keySeq().first();return o||a}),r.state={responseContentType:""},r}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t,n,r=this.props,o=r.path,i=r.method,a=r.code,s=r.response,u=r.className,c=r.specPath,l=r.fn,p=r.getComponent,f=r.getConfigs,h=r.specSelectors,d=r.contentType,m=r.controlsAcceptHeader,v=r.oas3Actions,g=l.inferSchema,y=h.isOAS3(),b=s.get("headers"),_=s.get("links"),w=p("headers"),x=p("highlightCode"),E=p("modelExample"),C=p("Markdown"),O=p("operationLink"),A=p("contentType"),T=p("ExamplesSelect"),j=p("Example"),P=this.state.responseContentType||d,I=s.getIn(["content",P],Object(k.Map)({})),M=I.get("examples",null);if(y){var N=I.get("schema");t=N?g(N.toJS()):null,n=N?Object(k.List)(["content",this.state.responseContentType,"schema"]):c}else t=s.get("schema"),n=s.has("schema")?c.push("schema"):c;if(y){var R=I.get("schema",Object(k.Map)({}));if(M){var L=this.getTargetExamplesKey(),U=M.get(L,Object(k.Map)({}));e=Object(D.I)(U.get("value"))}else e=void 0!==I.get("example")?Object(D.I)(I.get("example")):Object(D.o)(R.toJS(),this.state.responseContentType,{includeReadOnly:!0})}else e=s.getIn(["examples",P])?s.getIn(["examples",P]):t?Object(D.o)(t.toJS(),P,{includeReadOnly:!0,includeWriteOnly:!0}):null;var q=function(e,t){return null!=e?S.a.createElement("div",null,S.a.createElement(t,{className:"example",value:Object(D.I)(e)})):null}(e,x);return S.a.createElement("tr",{className:"response "+(u||""),"data-code":a},S.a.createElement("td",{className:"response-col_status"},a),S.a.createElement("td",{className:"response-col_description"},S.a.createElement("div",{className:"response-col_description__inner"},S.a.createElement(C,{source:s.get("description")})),y&&s.get("content")?S.a.createElement("section",{className:"response-controls"},S.a.createElement("div",{className:rt()("response-control-media-type",{"response-control-media-type--accept-controller":m})},S.a.createElement("small",{className:"response-control-media-type__title"},"Media type"),S.a.createElement(A,{value:this.state.responseContentType,contentTypes:s.get("content")?s.get("content").keySeq():Object(k.Seq)(),onChange:this._onContentTypeChange}),m?S.a.createElement("small",{className:"response-control-media-type__accept-message"},"Controls ",S.a.createElement("code",null,"Accept")," header."):null),M?S.a.createElement("div",{className:"response-control-examples"},S.a.createElement("small",{className:"response-control-examples__title"},"Examples"),S.a.createElement(T,{examples:M,currentExampleKey:this.getTargetExamplesKey(),onSelect:function(e){return v.setActiveExamplesMember({name:e,pathMethod:[o,i],contextType:"responses",contextName:a})},showLabels:!1})):null):null,q||t?S.a.createElement(E,{specPath:n,getComponent:p,getConfigs:f,specSelectors:h,schema:Object(D.i)(t),example:q}):null,y&&M?S.a.createElement(j,{example:M.get(this.getTargetExamplesKey(),Object(k.Map)({})),getComponent:p,omitValue:!0}):null,b?S.a.createElement(w,{headers:b,getComponent:p}):null),y?S.a.createElement("td",{className:"response-col_links"},_?_.toSeq().map(function(e,t){return S.a.createElement(O,{key:t,name:t,link:e,getComponent:p})}):S.a.createElement("i",null,"No links")):null)}}]),t}(S.a.Component);v()(ot,"defaultProps",{response:Object(k.fromJS)({}),onContentTypeChange:function(){}});var it=n(485),at=n.n(it),st=n(486),ut=n.n(st),ct=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"state",{parsedContent:null}),v()(ue()(n),"updateParsedContent",function(e){var t=n.props.content;if(e!==t)if(t&&t instanceof Blob){var r=new FileReader;r.onload=function(){n.setState({parsedContent:r.result})},r.readAsText(t)}else n.setState({parsedContent:t.toString()})}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.updateParsedContent(null)}},{key:"componentDidUpdate",value:function(e){this.updateParsedContent(e.content)}},{key:"render",value:function(){var e,t,n=this.props,r=n.content,o=n.contentType,i=n.url,s=n.headers,u=void 0===s?{}:s,c=n.getComponent,l=this.state.parsedContent,p=c("highlightCode"),f="response_"+(new Date).getTime();if(i=i||"",/^application\/octet-stream/i.test(o)||u["Content-Disposition"]&&/attachment/i.test(u["Content-Disposition"])||u["content-disposition"]&&/attachment/i.test(u["content-disposition"])||u["Content-Description"]&&/File Transfer/i.test(u["Content-Description"])||u["content-description"]&&/File Transfer/i.test(u["content-description"]))if("Blob"in window){var h=o||"text/html",d=r instanceof Blob?r:new Blob([r],{type:h}),m=window.URL.createObjectURL(d),v=[h,i.substr(i.lastIndexOf("/")+1),m].join(":"),g=u["content-disposition"]||u["Content-Disposition"];if(void 0!==g){var y=Object(D.h)(g);null!==y&&(v=y)}t=R.a.navigator&&R.a.navigator.msSaveOrOpenBlob?S.a.createElement("div",null,S.a.createElement("a",{href:m,onClick:function(){return R.a.navigator.msSaveOrOpenBlob(d,v)}},"Download file")):S.a.createElement("div",null,S.a.createElement("a",{href:m,download:v},"Download file"))}else t=S.a.createElement("pre",{className:"microlight"},"Download headers detected but your browser does not support downloading binary via XHR (Blob).");else if(/json/i.test(o)){try{e=a()(JSON.parse(r),null,"  ")}catch(t){e="can't parse JSON.  Raw result:\n\n"+r}t=S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".json"),value:e})}else/xml/i.test(o)?(e=at()(r,{textNodesOnSameLine:!0,indentor:"  "}),t=S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".xml"),value:e})):t="text/html"===ut()(o)||/text\/plain/.test(o)?S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".html"),value:r}):/^image\//i.test(o)?o.includes("svg")?S.a.createElement("div",null," ",r," "):S.a.createElement("img",{style:{maxWidth:"100%"},src:window.URL.createObjectURL(r)}):/^audio\//i.test(o)?S.a.createElement("pre",{className:"microlight"},S.a.createElement("audio",{controls:!0},S.a.createElement("source",{src:i,type:o}))):"string"==typeof r?S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".txt"),value:r}):r.size>0?l?S.a.createElement("div",null,S.a.createElement("p",{className:"i"},"Unrecognized response type; displaying content as text."),S.a.createElement(p,{downloadable:!0,fileName:"".concat(f,".txt"),value:l})):S.a.createElement("p",{className:"i"},"Unrecognized response type; unable to display."):null;return t?S.a.createElement("div",null,S.a.createElement("h5",null,"Response body"),t):null}}]),t}(S.a.PureComponent),lt=n(12),pt=n.n(lt),ft=function(e){function t(e){var n;return _()(this,t),n=oe()(this,ae()(t).call(this,e)),v()(ue()(n),"onChange",function(e,t,r){var o=n.props;(0,o.specActions.changeParamByIdentity)(o.onChangeKey,e,t,r)}),v()(ue()(n),"onChangeConsumesWrapper",function(e){var t=n.props;(0,t.specActions.changeConsumesValue)(t.onChangeKey,e)}),v()(ue()(n),"toggleTab",function(e){return"parameters"===e?n.setState({parametersVisible:!0,callbackVisible:!1}):"callbacks"===e?n.setState({callbackVisible:!0,parametersVisible:!1}):void 0}),n.state={callbackVisible:!1,parametersVisible:!0},n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.onTryoutClick,r=t.onCancelClick,o=t.parameters,i=t.allowTryItOut,a=t.tryItOutEnabled,s=t.specPath,u=t.fn,c=t.getComponent,l=t.getConfigs,p=t.specSelectors,f=t.specActions,h=t.pathMethod,d=t.oas3Actions,m=t.oas3Selectors,v=t.operation,g=c("parameterRow"),y=c("TryItOutButton"),b=c("contentType"),_=c("Callbacks",!0),w=c("RequestBody",!0),x=a&&i,E=p.isOAS3(),C=v.get("requestBody");return S.a.createElement("div",{className:"opblock-section"},S.a.createElement("div",{className:"opblock-section-header"},E?S.a.createElement("div",{className:"tab-header"},S.a.createElement("div",{onClick:function(){return e.toggleTab("parameters")},className:"tab-item ".concat(this.state.parametersVisible&&"active")},S.a.createElement("h4",{className:"opblock-title"},S.a.createElement("span",null,"Parameters"))),v.get("callbacks")?S.a.createElement("div",{onClick:function(){return e.toggleTab("callbacks")},className:"tab-item ".concat(this.state.callbackVisible&&"active")},S.a.createElement("h4",{className:"opblock-title"},S.a.createElement("span",null,"Callbacks"))):null):S.a.createElement("div",{className:"tab-header"},S.a.createElement("h4",{className:"opblock-title"},"Parameters")),i?S.a.createElement(y,{enabled:a,onCancelClick:r,onTryoutClick:n}):null),this.state.parametersVisible?S.a.createElement("div",{className:"parameters-container"},o.count()?S.a.createElement("div",{className:"table-container"},S.a.createElement("table",{className:"parameters"},S.a.createElement("thead",null,S.a.createElement("tr",null,S.a.createElement("th",{className:"col_header parameters-col_name"},"Name"),S.a.createElement("th",{className:"col_header parameters-col_description"},"Description"))),S.a.createElement("tbody",null,function(e,t){return e.valueSeq().filter(O.a.Map.isMap).map(t)}(o,function(t,n){return S.a.createElement(g,{fn:u,specPath:s.push(n.toString()),getComponent:c,getConfigs:l,rawParam:t,param:p.parameterWithMetaByIdentity(h,t),key:"".concat(t.get("in"),".").concat(t.get("name")),onChange:e.onChange,onChangeConsumes:e.onChangeConsumesWrapper,specSelectors:p,specActions:f,oas3Actions:d,oas3Selectors:m,pathMethod:h,isExecute:x})}).toArray()))):S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement("p",null,"No parameters"))):null,this.state.callbackVisible?S.a.createElement("div",{className:"callbacks-container opblock-description-wrapper"},S.a.createElement(_,{callbacks:Object(k.Map)(v.get("callbacks")),specPath:s.slice(0,-1).push("callbacks")})):null,E&&C&&this.state.parametersVisible&&S.a.createElement("div",{className:"opblock-section opblock-section-request-body"},S.a.createElement("div",{className:"opblock-section-header"},S.a.createElement("h4",{className:"opblock-title parameter__name ".concat(C.get("required")&&"required")},"Request body"),S.a.createElement("label",null,S.a.createElement(b,{value:m.requestContentType.apply(m,pt()(h)),contentTypes:C.get("content",Object(k.List)()).keySeq(),onChange:function(e){d.setRequestContentType({value:e,pathMethod:h})},className:"body-param-content-type"}))),S.a.createElement("div",{className:"opblock-description-wrapper"},S.a.createElement(w,{specPath:s.slice(0,-1).push("requestBody"),requestBody:C,requestBodyValue:m.requestBodyValue.apply(m,pt()(h)),isExecute:x,activeExamplesKey:m.activeExamplesMember.apply(m,pt()(h).concat(["requestBody","requestBody"])),updateActiveExamplesKey:function(t){e.props.oas3Actions.setActiveExamplesMember({name:t,pathMethod:e.props.pathMethod,contextType:"requestBody",contextName:"requestBody"})},onChange:function(e,t){if(t){var n=m.requestBodyValue.apply(m,pt()(h)),r=k.Map.isMap(n)?n:Object(k.Map)();return d.setRequestBodyValue({pathMethod:h,value:r.setIn(t,e)})}d.setRequestBodyValue({value:e,pathMethod:h})},contentType:m.requestContentType.apply(m,pt()(h))}))))}}]),t}(E.Component);v()(ft,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,tryItOutEnabled:!1,allowTryItOut:!0,onChangeKey:[],specPath:[]});var ht=function(e){var t=e.xKey,n=e.xVal;return S.a.createElement("div",{className:"parameter__extension"},t,": ",String(n))},dt=function(e){var t=e.param,n=e.isIncluded,r=e.onChange,o=e.isDisabled;return t.get("allowEmptyValue")?S.a.createElement("div",{className:rt()("parameter__empty_value_toggle",{disabled:o})},S.a.createElement("input",{type:"checkbox",disabled:o,checked:!o&&n,onChange:function(e){r(e.target.checked)}}),"Send empty value"):null},mt=n(122),vt=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChangeWrapper",function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=r.props,o=n.onChange,i=n.rawParam;return o(i,""===e||e&&0===e.size?null:e,t)}),v()(ue()(r),"_onExampleSelect",function(e){r.props.oas3Actions.setActiveExamplesMember({name:e,pathMethod:r.props.pathMethod,contextType:"parameters",contextName:r.getParamKey()})}),v()(ue()(r),"onChangeIncludeEmpty",function(e){var t=r.props,n=t.specActions,o=t.param,i=t.pathMethod,a=o.get("name"),s=o.get("in");return n.updateEmptyParamInclusion(i,a,s,e)}),v()(ue()(r),"setDefaultValue",function(){var e=r.props,t=e.specSelectors,n=e.pathMethod,o=e.rawParam,i=e.oas3Selectors,a=t.parameterWithMetaByIdentity(n,o)||Object(k.Map)(),s=Object(mt.a)(a,{isOAS3:t.isOAS3()}).schema,u=a.get("content",Object(k.Map)()).keySeq().first(),c=Object(D.o)(s.toJS(),u,{includeWriteOnly:!0});if(a&&void 0===a.get("value")&&"body"!==a.get("in")){var l;if(t.isSwagger2())l=a.get("x-example")||a.getIn(["schema","example"])||s.getIn(["default"]);else if(t.isOAS3()){var p=i.activeExamplesMember.apply(i,pt()(n).concat(["parameters",r.getParamKey()]));l=a.getIn(["examples",p,"value"])||a.getIn(["content",u,"example"])||a.get("example")||s.get("example")||s.get("default")||a.get("default")}void 0===l||k.List.isList(l)||(l=Object(D.I)(l)),void 0!==l?r.onChangeWrapper(l):"object"===s.get("type")&&c&&!a.get("examples")&&r.onChangeWrapper(k.List.isList(c)?c:Object(D.I)(c))}}),r.setDefaultValue(),r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){var t,n=e.specSelectors,r=e.pathMethod,o=e.rawParam,i=n.isOAS3(),a=n.parameterWithMetaByIdentity(r,o)||new k.Map;(a=a.isEmpty()?o:a,i)?t=Object(mt.a)(a,{isOAS3:i}).schema.get("enum"):t=a?a.get("enum"):void 0;var s,u=a?a.get("value"):void 0;void 0!==u?s=u:o.get("required")&&t&&t.size&&(s=t.first()),void 0!==s&&s!==u&&this.onChangeWrapper(Object(D.x)(s)),this.setDefaultValue()}},{key:"getParamKey",value:function(){var e=this.props.param;return e?"".concat(e.get("name"),"-").concat(e.get("in")):null}},{key:"render",value:function(){var e=this.props,t=e.param,n=e.rawParam,r=e.getComponent,o=e.getConfigs,i=e.isExecute,a=e.fn,s=e.onChangeConsumes,u=e.specSelectors,c=e.pathMethod,l=e.specPath,p=e.oas3Selectors,f=u.isOAS3(),h=o(),d=h.showExtensions,m=h.showCommonExtensions;if(t||(t=n),!n)return null;var v,g,y,b=r("JsonSchemaForm"),_=r("ParamBody"),w=t.get("in"),x="body"!==w?null:S.a.createElement(_,{getComponent:r,fn:a,param:t,consumes:u.consumesOptionsFor(c),consumesValue:u.contentTypeValues(c).get("requestContentType"),onChange:this.onChangeWrapper,onChangeConsumes:s,isExecute:i,specSelectors:u,pathMethod:c}),E=r("modelExample"),C=r("Markdown"),O=r("ParameterExt"),A=r("ParameterIncludeEmpty"),T=r("ExamplesSelectValueRetainer"),j=r("Example"),P=Object(mt.a)(t,{isOAS3:f}).schema,I=u.parameterWithMetaByIdentity(c,n)||Object(k.Map)(),M=t.get("format"),N=P.get("type"),L="formData"===w,U="FormData"in R.a,q=t.get("required"),F=P.getIn(["items","type"]),B=I?I.get("value"):"",z=m?Object(D.l)(t):null,V=d?Object(D.m)(t):null,H=!1;return void 0!==t&&(v=P.get("items")),void 0!==v?(g=v.get("enum"),y=v.get("default")):g=P.get("enum"),void 0!==g&&g.size>0&&(H=!0),void 0!==t&&(void 0===(y=P.get("default"))&&(y=t.get("default")),void 0===t.get("example")&&t.get("x-example")),S.a.createElement("tr",{"data-param-name":t.get("name"),"data-param-in":t.get("in")},S.a.createElement("td",{className:"parameters-col_name"},S.a.createElement("div",{className:q?"parameter__name required":"parameter__name"},t.get("name"),q?S.a.createElement("span",{style:{color:"red"}}," *"):null),S.a.createElement("div",{className:"parameter__type"},N,F&&"[".concat(F,"]"),M&&S.a.createElement("span",{className:"prop-format"},"($",M,")")),S.a.createElement("div",{className:"parameter__deprecated"},f&&t.get("deprecated")?"deprecated":null),S.a.createElement("div",{className:"parameter__in"},"(",t.get("in"),")"),m&&z.size?z.map(function(e,t){return S.a.createElement(O,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null,d&&V.size?V.map(function(e,t){return S.a.createElement(O,{key:"".concat(t,"-").concat(e),xKey:t,xVal:e})}):null),S.a.createElement("td",{className:"parameters-col_description"},t.get("description")?S.a.createElement(C,{source:t.get("description")}):null,!x&&i||!H?null:S.a.createElement(C,{className:"parameter__enum",source:"<i>Available values</i> : "+g.map(function(e){return e}).toArray().join(", ")}),!x&&i||void 0===y?null:S.a.createElement(C,{className:"parameter__default",source:"<i>Default value</i> : "+y}),L&&!U&&S.a.createElement("div",null,"Error: your browser does not support FormData"),f&&t.get("examples")?S.a.createElement("section",{className:"parameter-controls"},S.a.createElement(T,{examples:t.get("examples"),onSelect:this._onExampleSelect,updateValue:this.onChangeWrapper,getComponent:r,defaultToFirstExample:!0,currentKey:p.activeExamplesMember.apply(p,pt()(c).concat(["parameters",this.getParamKey()])),currentUserInputValue:B})):null,x?null:S.a.createElement(b,{fn:a,getComponent:r,value:B,required:q,disabled:!i,description:t.get("description")?"".concat(t.get("name")," - ").concat(t.get("description")):"".concat(t.get("name")),onChange:this.onChangeWrapper,errors:I.get("errors"),schema:P}),x&&P?S.a.createElement(E,{getComponent:r,specPath:l.push("schema"),getConfigs:o,isExecute:i,specSelectors:u,schema:P,example:x}):null,!x&&i?S.a.createElement(A,{onChange:this.onChangeIncludeEmpty,isIncluded:u.parameterInclusionSettingFor(c,t.get("name"),t.get("in")),isDisabled:B&&0!==B.size,param:t}):null,f&&t.get("examples")?S.a.createElement(j,{example:t.getIn(["examples",p.activeExamplesMember.apply(p,pt()(c).concat(["parameters",this.getParamKey()]))]),getComponent:r}):null))}}]),t}(E.Component),gt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onClick",function(){var e=n.props,t=e.specSelectors,r=e.specActions,o=e.operation,i=e.path,a=e.method;r.validateParams([i,a]),t.validateBeforeExecute([i,a])&&(n.props.onExecute&&n.props.onExecute(),r.execute({operation:o,path:i,method:a}))}),v()(ue()(n),"onChangeProducesWrapper",function(e){return n.props.specActions.changeProducesValue([n.props.path,n.props.method],e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",{className:"btn execute opblock-control__btn",onClick:this.onClick},"Execute")}}]),t}(E.Component),yt={color:"#999",fontStyle:"italic"},bt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.headers,n=e.getComponent,r=n("Property"),o=n("Markdown");return t&&t.size?S.a.createElement("div",{className:"headers-wrapper"},S.a.createElement("h4",{className:"headers__title"},"Headers:"),S.a.createElement("table",{className:"headers"},S.a.createElement("thead",null,S.a.createElement("tr",{className:"header-row"},S.a.createElement("th",{className:"header-col"},"Name"),S.a.createElement("th",{className:"header-col"},"Description"),S.a.createElement("th",{className:"header-col"},"Type"))),S.a.createElement("tbody",null,t.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],i=t[1];if(!O.a.Map.isMap(i))return null;var a=i.get("description"),s=i.getIn(["schema"])?i.getIn(["schema","type"]):i.getIn(["type"]),u=i.getIn(["schema","example"]);return S.a.createElement("tr",{key:n},S.a.createElement("td",{className:"header-col"},n),S.a.createElement("td",{className:"header-col"},a?S.a.createElement(o,{source:a}):null),S.a.createElement("td",{className:"header-col"},s," ",u?S.a.createElement(r,{propKey:"Example",propVal:u,propStyle:yt}):null))}).toArray()))):null}}]),t}(S.a.Component),_t=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.editorActions,n=e.errSelectors,r=e.layoutSelectors,o=e.layoutActions,i=(0,e.getComponent)("Collapse");if(t&&t.jumpToLine)var a=t.jumpToLine;var s=n.allErrors().filter(function(e){return"thrown"===e.get("type")||"error"===e.get("level")});if(!s||s.count()<1)return null;var u=r.isShown(["errorPane"],!0),c=s.sortBy(function(e){return e.get("line")});return S.a.createElement("pre",{className:"errors-wrapper"},S.a.createElement("hgroup",{className:"error"},S.a.createElement("h4",{className:"errors__title"},"Errors"),S.a.createElement("button",{className:"btn errors__clear-btn",onClick:function(){return o.show(["errorPane"],!u)}},u?"Hide":"Show")),S.a.createElement(i,{isOpened:u,animated:!0},S.a.createElement("div",{className:"errors"},c.map(function(e,t){var n=e.get("type");return"thrown"===n||"auth"===n?S.a.createElement(wt,{key:t,error:e.get("error")||e,jumpToLine:a}):"spec"===n?S.a.createElement(xt,{key:t,error:e,jumpToLine:a}):void 0}))))}}]),t}(S.a.Component),wt=function(e){var t=e.error,n=e.jumpToLine;if(!t)return null;var r=t.get("line");return S.a.createElement("div",{className:"error-wrapper"},t?S.a.createElement("div",null,S.a.createElement("h4",null,t.get("source")&&t.get("level")?Et(t.get("source"))+" "+t.get("level"):"",t.get("path")?S.a.createElement("small",null," at ",t.get("path")):null),S.a.createElement("span",{style:{whiteSpace:"pre-line",maxWidth:"100%"}},t.get("message")),S.a.createElement("div",{style:{"text-decoration":"underline",cursor:"pointer"}},r&&n?S.a.createElement("a",{onClick:n.bind(null,r)},"Jump to line ",r):null)):null)},xt=function(e){var t=e.error,n=e.jumpToLine,r=null;return t.get("path")?r=k.List.isList(t.get("path"))?S.a.createElement("small",null,"at ",t.get("path").join(".")):S.a.createElement("small",null,"at ",t.get("path")):t.get("line")&&!n&&(r=S.a.createElement("small",null,"on line ",t.get("line"))),S.a.createElement("div",{className:"error-wrapper"},t?S.a.createElement("div",null,S.a.createElement("h4",null,Et(t.get("source"))+" "+t.get("level")," ",r),S.a.createElement("span",{style:{whiteSpace:"pre-line"}},t.get("message")),S.a.createElement("div",{style:{"text-decoration":"underline",cursor:"pointer"}},n?S.a.createElement("a",{onClick:n.bind(null,t.get("line"))},"Jump to line ",t.get("line")):null)):null)};function Et(e){return(e||"").split(" ").map(function(e){return e[0].toUpperCase()+e.slice(1)}).join(" ")}wt.defaultProps={jumpToLine:null};var St=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChangeWrapper",function(e){return n.props.onChange(e.target.value)}),n}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.props.contentTypes&&this.props.onChange(this.props.contentTypes.first())}},{key:"componentWillReceiveProps",value:function(e){e.contentTypes&&e.contentTypes.size&&(e.contentTypes.includes(e.value)||e.onChange(e.contentTypes.first()))}},{key:"render",value:function(){var e=this.props,t=e.contentTypes,n=e.className,r=e.value;return t&&t.size?S.a.createElement("div",{className:"content-type-wrapper "+(n||"")},S.a.createElement("select",{className:"content-type",value:r||"",onChange:this.onChangeWrapper},t.map(function(e){return S.a.createElement("option",{key:e,value:e},e)}).toArray())):null}}]),t}(S.a.Component);v()(St,"defaultProps",{onChange:function(){},value:null,contentTypes:Object(k.fromJS)(["application/json"])});var Ct=n(20),kt=n.n(Ct),Ot=n(40),At=n.n(Ot);function Tt(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter(function(e){return!!e}).join(" ").trim()}var jt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.fullscreen,n=e.full,r=At()(e,["fullscreen","full"]);if(t)return S.a.createElement("section",r);var o="swagger-container"+(n?"-full":"");return S.a.createElement("section",kt()({},r,{className:Tt(r.className,o)}))}}]),t}(S.a.Component),Pt={mobile:"",tablet:"-tablet",desktop:"-desktop",large:"-hd"},It=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.hide,n=e.keepContents,r=(e.mobile,e.tablet,e.desktop,e.large,At()(e,["hide","keepContents","mobile","tablet","desktop","large"]));if(t&&!n)return S.a.createElement("span",null);var o=[];for(var i in Pt)if(Pt.hasOwnProperty(i)){var a=Pt[i];if(i in this.props){var s=this.props[i];if(s<1){o.push("none"+a);continue}o.push("block"+a),o.push("col-"+s+a)}}var u=Tt.apply(void 0,[r.className].concat(o));return S.a.createElement("section",kt()({},r,{style:{display:t?"none":null},className:u}))}}]),t}(S.a.Component),Mt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("div",kt()({},this.props,{className:Tt(this.props.className,"wrapper")}))}}]),t}(S.a.Component),Nt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("button",kt()({},this.props,{className:Tt(this.props.className,"button")}))}}]),t}(S.a.Component);v()(Nt,"defaultProps",{className:""});var Rt=function(e){return S.a.createElement("textarea",e)},Dt=function(e){return S.a.createElement("input",e)},Lt=function(e){function t(e,n){var r,o;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(e){var t,n=r.props,o=n.onChange,i=n.multiple,a=[].slice.call(e.target.options);t=i?a.filter(function(e){return e.selected}).map(function(e){return e.value}):e.target.value,r.setState({value:t}),o&&o(t)}),o=e.value?e.value:e.multiple?[""]:"",r.state={value:o},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.value!==this.props.value&&this.setState({value:e.value})}},{key:"render",value:function(){var e,t,n=this.props,r=n.allowedValues,o=n.multiple,i=n.allowEmptyValue,a=n.disabled,s=(null===(e=this.state.value)||void 0===e?void 0:null===(t=e.toJS)||void 0===t?void 0:t.call(e))||this.state.value;return S.a.createElement("select",{className:this.props.className,multiple:o,value:s,onChange:this.onChange,disabled:a},i?S.a.createElement("option",{value:""},"--"):null,r.map(function(e,t){return S.a.createElement("option",{key:t,value:String(e)},String(e))}))}}]),t}(S.a.Component);v()(Lt,"defaultProps",{multiple:!1,allowEmptyValue:!0});var Ut=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("a",kt()({},this.props,{rel:"noopener noreferrer",className:Tt(this.props.className,"link")}))}}]),t}(S.a.Component),qt=function(e){var t=e.children;return S.a.createElement("div",{style:{height:"auto",border:"none",margin:0,padding:0}}," ",t," ")},Ft=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"renderNotAnimated",value:function(){return this.props.isOpened?S.a.createElement(qt,null,this.props.children):S.a.createElement("noscript",null)}},{key:"render",value:function(){var e=this.props,t=e.animated,n=e.isOpened,r=e.children;return t?(r=n?r:null,S.a.createElement(qt,null,r)):this.renderNotAnimated()}}]),t}(S.a.Component);v()(Ft,"defaultProps",{isOpened:!1,animated:!1});var Bt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return(n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o)))).setTagShown=n._setTagShown.bind(ue()(n)),n}return le()(t,e),x()(t,[{key:"_setTagShown",value:function(e,t){this.props.layoutActions.show(e,t)}},{key:"showOp",value:function(e,t){this.props.layoutActions.show(e,t)}},{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.layoutSelectors,r=e.layoutActions,o=e.getComponent,i=t.taggedOperations(),a=o("Collapse");return S.a.createElement("div",null,S.a.createElement("h4",{className:"overview-title"},"Overview"),i.map(function(e,t){var o=e.get("operations"),i=["overview-tags",t],s=n.isShown(i,!0);return S.a.createElement("div",{key:"overview-"+t},S.a.createElement("h4",{onClick:function(){return r.show(i,!s)},className:"link overview-tag"}," ",s?"-":"+",t),S.a.createElement(a,{isOpened:s,animated:!0},o.map(function(e){var t=e.toObject(),o=t.path,i=t.method,a=t.id,s=a,u=n.isShown(["operations",s]);return S.a.createElement(zt,{key:a,path:o,method:i,id:o+"-"+i,shown:u,showOpId:s,showOpIdPrefix:"operations",href:"#operation-".concat(s),onClick:r.show})}).toArray()))}).toArray(),i.size<1&&S.a.createElement("h3",null," No operations defined in spec! "))}}]),t}(S.a.Component),zt=function(e){function t(e){var n;return _()(this,t),(n=oe()(this,ae()(t).call(this,e))).onClick=n._onClick.bind(ue()(n)),n}return le()(t,e),x()(t,[{key:"_onClick",value:function(){var e=this.props,t=e.showOpId,n=e.showOpIdPrefix;(0,e.onClick)([n,t],!e.shown)}},{key:"render",value:function(){var e=this.props,t=e.id,n=e.method,r=e.shown,o=e.href;return S.a.createElement(Ut,{href:o,style:{fontWeight:r?"bold":"normal"},onClick:this.onClick,className:"block opblock-link"},S.a.createElement("div",null,S.a.createElement("small",{className:"bold-label-".concat(n)},n.toUpperCase()),S.a.createElement("span",{className:"bold-label"},t)))}}]),t}(S.a.Component),Vt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.props.initialValue&&(this.inputRef.value=this.props.initialValue)}},{key:"render",value:function(){var e=this,t=this.props,n=(t.value,t.defaultValue,At()(t,["value","defaultValue"]));return S.a.createElement("input",kt()({},n,{ref:function(t){return e.inputRef=t}}))}}]),t}(S.a.Component),Ht=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.host,n=e.basePath;return S.a.createElement("pre",{className:"base-url"},"[ Base URL: ",t,n," ]")}}]),t}(S.a.Component),Wt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.data,n=e.getComponent,r=t.get("name")||"the developer",o=t.get("url"),i=t.get("email"),a=n("Link");return S.a.createElement("div",{className:"info__contact"},o&&S.a.createElement("div",null,S.a.createElement(a,{href:Object(D.F)(o),target:"_blank"},r," - Website")),i&&S.a.createElement(a,{href:Object(D.F)("mailto:".concat(i))},o?"Send email to ".concat(r):"Contact ".concat(r)))}}]),t}(S.a.Component),Jt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.license,n=(0,e.getComponent)("Link"),r=t.get("name")||"License",o=t.get("url");return S.a.createElement("div",{className:"info__license"},o?S.a.createElement(n,{target:"_blank",href:Object(D.F)(o)},r):S.a.createElement("span",null,r))}}]),t}(S.a.Component),Kt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.url,n=(0,e.getComponent)("Link");return S.a.createElement(n,{target:"_blank",href:Object(D.F)(t)},S.a.createElement("span",{className:"url"}," ",t," "))}}]),t}(S.a.PureComponent),Yt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.info,n=e.url,r=e.host,o=e.basePath,i=e.getComponent,a=e.externalDocs,s=t.get("version"),u=t.get("description"),c=t.get("title"),l=t.get("termsOfService"),p=t.get("contact"),f=t.get("license"),h=(a||Object(k.fromJS)({})).toJS(),d=h.url,m=h.description,v=i("Markdown"),g=i("Link"),y=i("VersionStamp"),b=i("InfoUrl"),_=i("InfoBasePath");return S.a.createElement("div",{className:"info"},S.a.createElement("hgroup",{className:"main"},S.a.createElement("h2",{className:"title"},c,s&&S.a.createElement(y,{version:s})),r||o?S.a.createElement(_,{host:r,basePath:o}):null,n&&S.a.createElement(b,{getComponent:i,url:n})),S.a.createElement("div",{className:"description"},S.a.createElement(v,{source:u})),l&&S.a.createElement("div",{className:"info__tos"},S.a.createElement(g,{target:"_blank",href:Object(D.F)(l)},"Terms of service")),p&&p.size?S.a.createElement(Wt,{getComponent:i,data:p}):null,f&&f.size?S.a.createElement(Jt,{getComponent:i,license:f}):null,d?S.a.createElement(g,{className:"info__extdocs",target:"_blank",href:Object(D.F)(d)},m||d):null)}}]),t}(S.a.Component),$t=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.getComponent,r=t.info(),o=t.url(),i=t.basePath(),a=t.host(),s=t.externalDocs(),u=n("info");return S.a.createElement("div",null,r&&r.count()?S.a.createElement(u,{info:r,url:o,host:a,basePath:i,externalDocs:s,getComponent:n}):null)}}]),t}(S.a.Component),Gt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return null}}]),t}(S.a.Component),Zt=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){return S.a.createElement("div",{className:"footer"})}}]),t}(S.a.Component),Xt=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onFilterChange",function(e){var t=e.target.value;n.props.layoutActions.updateFilter(t)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specSelectors,n=e.layoutSelectors,r=(0,e.getComponent)("Col"),o="loading"===t.loadingStatus(),i="failed"===t.loadingStatus(),a=n.currentFilter(),s={};return i&&(s.color="red"),o&&(s.color="#aaa"),S.a.createElement("div",null,null===a||!1===a?null:S.a.createElement("div",{className:"filter-container"},S.a.createElement(r,{className:"filter wrapper",mobile:12},S.a.createElement("input",{className:"operation-filter-input",placeholder:"Filter by tag",type:"text",onChange:this.onFilterChange,value:!0===a||"true"===a?"":a,disabled:o,style:s}))))}}]),t}(S.a.Component),Qt=Function.prototype,en=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"updateValues",function(e){var t=e.param,n=e.isExecute,o=e.consumesValue,i=void 0===o?"":o,a=/xml/i.test(i),s=/json/i.test(i),u=a?t.get("value_xml"):t.get("value");if(void 0!==u){var c=!u&&s?"{}":u;r.setState({value:c}),r.onChange(c,{isXml:a,isEditBox:n})}else a?r.onChange(r.sample("xml"),{isXml:a,isEditBox:n}):r.onChange(r.sample(),{isEditBox:n})}),v()(ue()(r),"sample",function(e){var t=r.props,n=t.param,o=(0,t.fn.inferSchema)(n.toJS());return Object(D.o)(o,e,{includeWriteOnly:!0})}),v()(ue()(r),"onChange",function(e,t){var n=t.isEditBox,o=t.isXml;r.setState({value:e,isEditBox:n}),r._onChange(e,o)}),v()(ue()(r),"_onChange",function(e,t){(r.props.onChange||Qt)(e,t)}),v()(ue()(r),"handleOnChange",function(e){var t=r.props.consumesValue,n=/xml/i.test(t),o=e.target.value;r.onChange(o,{isXml:n})}),v()(ue()(r),"toggleIsEditBox",function(){return r.setState(function(e){return{isEditBox:!e.isEditBox}})}),r.state={isEditBox:!1,value:""},r}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){this.updateValues.call(this,this.props)}},{key:"componentWillReceiveProps",value:function(e){this.updateValues.call(this,e)}},{key:"render",value:function(){var e=this.props,n=e.onChangeConsumes,r=e.param,o=e.isExecute,i=e.specSelectors,a=e.pathMethod,s=e.getComponent,u=s("Button"),c=s("TextArea"),l=s("highlightCode"),p=s("contentType"),f=(i?i.parameterWithMetaByIdentity(a,r):r).get("errors",Object(k.List)()),h=i.contentTypeValues(a).get("requestContentType"),d=this.props.consumes&&this.props.consumes.size?this.props.consumes:t.defaultProp.consumes,m=this.state,v=m.value,g=m.isEditBox;return S.a.createElement("div",{className:"body-param","data-param-name":r.get("name"),"data-param-in":r.get("in")},g&&o?S.a.createElement(c,{className:"body-param__text"+(f.count()?" invalid":""),value:v,onChange:this.handleOnChange}):v&&S.a.createElement(l,{className:"body-param__example",value:v}),S.a.createElement("div",{className:"body-param-options"},o?S.a.createElement("div",{className:"body-param-edit"},S.a.createElement(u,{className:g?"btn cancel body-param__example-edit":"btn edit body-param__example-edit",onClick:this.toggleIsEditBox},g?"Cancel":"Edit")):null,S.a.createElement("label",{htmlFor:""},S.a.createElement("span",null,"Parameter content type"),S.a.createElement(p,{value:h,contentTypes:d,onChange:n,className:"body-param-content-type"}))))}}]),t}(E.PureComponent);v()(en,"defaultProp",{consumes:Object(k.fromJS)(["application/json"]),param:Object(k.fromJS)({}),onChange:Qt,onChangeConsumes:Qt});var tn=n(92),nn=n.n(tn);var rn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"handleFocus",value:function(e){e.target.select(),document.execCommand("copy")}},{key:"render",value:function(){var e=function(e){var t=[],n="",r=e.get("headers");if(t.push("curl"),t.push("-X",e.get("method")),t.push('"'.concat(e.get("url"),'"')),r&&r.size){var o=!0,i=!1,s=void 0;try{for(var u,c=nn()(e.get("headers").entries());!(o=(u=c.next()).done);o=!0){var l=u.value,p=$e()(l,2),f=p[0],h=p[1];n=h,t.push("-H "),t.push('"'.concat(f,": ").concat(h,'"'))}}catch(e){i=!0,s=e}finally{try{o||null==c.return||c.return()}finally{if(i)throw s}}}if(e.get("body"))if("multipart/form-data"===n&&"POST"===e.get("method")){var d=!0,m=!1,v=void 0;try{for(var g,y=nn()(e.get("body").entrySeq());!(d=(g=y.next()).done);d=!0){var b=$e()(g.value,2),_=b[0],w=b[1];t.push("-F"),w instanceof R.a.File?t.push('"'.concat(_,"=@").concat(w.name).concat(w.type?";type=".concat(w.type):"",'"')):t.push('"'.concat(_,"=").concat(w,'"'))}}catch(e){m=!0,v=e}finally{try{d||null==y.return||y.return()}finally{if(m)throw v}}}else t.push("-d"),t.push(a()(e.get("body")).replace(/\\n/g,""));return t.join(" ")}(this.props.request);return S.a.createElement("div",null,S.a.createElement("h4",null,"Curl"),S.a.createElement("div",{className:"copy-paste"},S.a.createElement("textarea",{onFocus:this.handleFocus,readOnly:!0,className:"curl",style:{whiteSpace:"normal"},value:e})))}}]),t}(S.a.Component),on=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChange",function(e){n.setScheme(e.target.value)}),v()(ue()(n),"setScheme",function(e){var t=n.props,r=t.path,o=t.method;t.specActions.setScheme(e,r,o)}),n}return le()(t,e),x()(t,[{key:"componentWillMount",value:function(){var e=this.props.schemes;this.setScheme(e.first())}},{key:"componentWillReceiveProps",value:function(e){this.props.currentScheme&&e.schemes.includes(this.props.currentScheme)||this.setScheme(e.schemes.first())}},{key:"render",value:function(){var e=this.props,t=e.schemes,n=e.currentScheme;return S.a.createElement("label",{htmlFor:"schemes"},S.a.createElement("span",{className:"schemes-title"},"Schemes"),S.a.createElement("select",{onChange:this.onChange,value:n},t.valueSeq().map(function(e){return S.a.createElement("option",{value:e,key:e},e)}).toArray()))}}]),t}(S.a.Component),an=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.specActions,n=e.specSelectors,r=e.getComponent,o=n.operationScheme(),i=n.schemes(),a=r("schemes");return i&&i.size?S.a.createElement(a,{currentScheme:o,schemes:i,specActions:t}):null}}]),t}(S.a.Component),sn=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"toggleCollapsed",function(){r.props.onToggle&&r.props.onToggle(r.props.modelName,!r.state.expanded),r.setState({expanded:!r.state.expanded})});var o=r.props,i=o.expanded,a=o.collapsedContent;return r.state={expanded:i,collapsedContent:a||t.defaultProps.collapsedContent},r}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.hideSelfOnExpand,n=e.expanded,r=e.modelName;t&&n&&this.props.onToggle(r,n)}},{key:"componentWillReceiveProps",value:function(e){this.props.expanded!==e.expanded&&this.setState({expanded:e.expanded})}},{key:"render",value:function(){var e=this.props,t=e.title,n=e.classes;return this.state.expanded&&this.props.hideSelfOnExpand?S.a.createElement("span",{className:n||""},this.props.children):S.a.createElement("span",{className:n||""},t&&S.a.createElement("span",{onClick:this.toggleCollapsed,style:{cursor:"pointer"}},t),S.a.createElement("span",{onClick:this.toggleCollapsed,style:{cursor:"pointer"}},S.a.createElement("span",{className:"model-toggle"+(this.state.expanded?"":" collapsed")})),this.state.expanded?this.props.children:this.state.collapsedContent)}}]),t}(E.Component);v()(sn,"defaultProps",{collapsedContent:"{...}",expanded:!1,title:null,onToggle:function(){},hideSelfOnExpand:!1});var un=function(e){function t(e,n){var r;_()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"activeTab",function(e){var t=e.target.dataset.name;r.setState({activeTab:t})});var o=r.props,i=o.getConfigs,a=o.isExecute,s=i().defaultModelRendering,u=s;return"example"!==s&&"model"!==s&&(u="example"),a&&(u="example"),r.state={activeTab:u},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.isExecute&&!this.props.isExecute&&this.props.example&&this.setState({activeTab:"example"})}},{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.specSelectors,r=e.schema,o=e.example,i=e.isExecute,a=e.getConfigs,s=e.specPath,u=a().defaultModelExpandDepth,c=t("ModelWrapper"),l=t("highlightCode"),p=n.isOAS3();return S.a.createElement("div",{className:"model-example"},S.a.createElement("ul",{className:"tab"},S.a.createElement("li",{className:"tabitem"+("example"===this.state.activeTab?" active":"")},S.a.createElement("a",{className:"tablinks","data-name":"example",onClick:this.activeTab},i?"Edit Value":"Example Value")),r?S.a.createElement("li",{className:"tabitem"+("model"===this.state.activeTab?" active":"")},S.a.createElement("a",{className:"tablinks"+(i?" inactive":""),"data-name":"model",onClick:this.activeTab},p?"Schema":"Model")):null),S.a.createElement("div",null,"example"===this.state.activeTab?o||S.a.createElement(l,{value:"(no example available)"}):null,"model"===this.state.activeTab&&S.a.createElement(c,{schema:r,getComponent:t,getConfigs:a,specSelectors:n,expandDepth:u,specPath:s})))}}]),t}(S.a.Component),cn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onToggle",function(e,t){n.props.layoutActions&&n.props.layoutActions.show(["models",e],t)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e,t=this.props,n=t.getComponent,r=t.getConfigs,o=n("Model");return this.props.layoutSelectors&&(e=this.props.layoutSelectors.isShown(["models",this.props.name])),S.a.createElement("div",{className:"model-box"},S.a.createElement(o,kt()({},this.props,{getConfigs:r,expanded:e,depth:1,onToggle:this.onToggle,expandDepth:this.props.expandDepth||0})))}}]),t}(E.Component),ln=n(196),pn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"getSchemaBasePath",function(){return n.props.specSelectors.isOAS3()?["components","schemas"]:["definitions"]}),v()(ue()(n),"getCollapsedContent",function(){return" "}),v()(ue()(n),"handleToggle",function(e,t){n.props.layoutActions.show(["models",e],t),t&&n.props.specActions.requestResolvedSubtree([].concat(pt()(n.getSchemaBasePath()),[e]))}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.specSelectors,r=t.getComponent,o=t.layoutSelectors,i=t.layoutActions,a=t.getConfigs,s=n.definitions(),u=a(),c=u.docExpansion,l=u.defaultModelsExpandDepth;if(!s.size||l<0)return null;var p=o.isShown("models",l>0&&"none"!==c),f=this.getSchemaBasePath(),h=n.isOAS3(),d=r("ModelWrapper"),m=r("Collapse"),v=r("ModelCollapse"),g=r("JumpToPath");return S.a.createElement("section",{className:p?"models is-open":"models"},S.a.createElement("h4",{onClick:function(){return i.show("models",!p)}},S.a.createElement("span",null,h?"Schemas":"Models"),S.a.createElement("svg",{width:"20",height:"20"},S.a.createElement("use",{xlinkHref:p?"#large-arrow-down":"#large-arrow"}))),S.a.createElement(m,{isOpened:p},s.entrySeq().map(function(t){var s=$e()(t,1)[0],u=[].concat(pt()(f),[s]),c=n.specResolvedSubtree(u),p=n.specJson().getIn(u),h=k.Map.isMap(c)?c:O.a.Map(),m=k.Map.isMap(p)?p:O.a.Map(),y=h.get("title")||m.get("title")||s,b=o.isShown(["models",s],!1);b&&0===h.size&&m.size>0&&e.props.specActions.requestResolvedSubtree([].concat(pt()(e.getSchemaBasePath()),[s]));var _=O.a.List([].concat(pt()(f),[s])),w=S.a.createElement(d,{name:s,expandDepth:l,schema:h||O.a.Map(),displayName:y,specPath:_,getComponent:r,specSelectors:n,getConfigs:a,layoutSelectors:o,layoutActions:i}),x=S.a.createElement("span",{className:"model-box"},S.a.createElement("span",{className:"model model-title"},y));return S.a.createElement("div",{id:"model-".concat(s),className:"model-container",key:"models-section-".concat(s)},S.a.createElement("span",{className:"models-jump-to-path"},S.a.createElement(g,{specPath:_})),S.a.createElement(v,{classes:"model-box",collapsedContent:e.getCollapsedContent(s),onToggle:e.handleToggle,title:x,displayName:y,modelName:s,hideSelfOnExpand:!0,expanded:l>0&&b},w))}).toArray()))}}]),t}(E.Component),fn=function(e){var t=e.value,n=(0,e.getComponent)("ModelCollapse"),r=S.a.createElement("span",null,"Array [ ",t.count()," ]");return S.a.createElement("span",{className:"prop-enum"},"Enum:",S.a.createElement("br",null),S.a.createElement(n,{collapsedContent:r},"[ ",t.join(", ")," ]"))},hn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.name,r=e.displayName,o=e.isRef,i=e.getComponent,s=e.getConfigs,u=e.depth,c=e.onToggle,l=e.expanded,p=e.specPath,f=At()(e,["schema","name","displayName","isRef","getComponent","getConfigs","depth","onToggle","expanded","specPath"]),h=f.specSelectors,d=f.expandDepth,m=h.isOAS3;if(!t)return null;var v=s().showExtensions,g=t.get("description"),y=t.get("properties"),b=t.get("additionalProperties"),_=t.get("title")||r||n,w=t.get("required"),x=i("JumpToPath",!0),E=i("Markdown"),C=i("Model"),O=i("ModelCollapse"),A=function(){return S.a.createElement("span",{className:"model-jump-to-path"},S.a.createElement(x,{specPath:p}))},T=S.a.createElement("span",null,S.a.createElement("span",null,"{"),"...",S.a.createElement("span",null,"}"),o?S.a.createElement(A,null):""),j=h.isOAS3()?t.get("anyOf"):null,P=h.isOAS3()?t.get("oneOf"):null,I=h.isOAS3()?t.get("not"):null,M=_&&S.a.createElement("span",{className:"model-title"},o&&t.get("$$ref")&&S.a.createElement("span",{className:"model-hint"},t.get("$$ref")),S.a.createElement("span",{className:"model-title__text"},_));return S.a.createElement("span",{className:"model"},S.a.createElement(O,{modelName:n,title:M,onToggle:c,expanded:!!l||u<=d,collapsedContent:T},S.a.createElement("span",{className:"brace-open object"},"{"),o?S.a.createElement(A,null):null,S.a.createElement("span",{className:"inner-object"},S.a.createElement("table",{className:"model"},S.a.createElement("tbody",null,g?S.a.createElement("tr",{style:{color:"#666",fontWeight:"normal"}},S.a.createElement("td",{style:{fontWeight:"bold"}},"description:"),S.a.createElement("td",null,S.a.createElement(E,{source:g}))):null,y&&y.size?y.entrySeq().map(function(e){var t=$e()(e,2),r=t[0],o=t[1],a=m()&&o.get("deprecated"),c=k.List.isList(w)&&w.contains(r),l={verticalAlign:"top",paddingRight:"0.2em"};return c&&(l.fontWeight="bold"),S.a.createElement("tr",{key:r,className:a&&"deprecated"},S.a.createElement("td",{style:l},r,c&&S.a.createElement("span",{style:{color:"red"}},"*")),S.a.createElement("td",{style:{verticalAlign:"top"}},S.a.createElement(C,kt()({key:"object-".concat(n,"-").concat(r,"_").concat(o)},f,{required:c,getComponent:i,specPath:p.push("properties",r),getConfigs:s,schema:o,depth:u+1}))))}).toArray():null,v?S.a.createElement("tr",null," "):null,v?t.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],r=t[1];if("x-"===n.slice(0,2)){var o=r?r.toJS?r.toJS():r:null;return S.a.createElement("tr",{key:n,style:{color:"#777"}},S.a.createElement("td",null,n),S.a.createElement("td",{style:{verticalAlign:"top"}},a()(o)))}}).toArray():null,b&&b.size?S.a.createElement("tr",null,S.a.createElement("td",null,"< * >:"),S.a.createElement("td",null,S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("additionalProperties"),getConfigs:s,schema:b,depth:u+1})))):null,j?S.a.createElement("tr",null,S.a.createElement("td",null,"anyOf ->"),S.a.createElement("td",null,j.map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("anyOf",t),getConfigs:s,schema:e,depth:u+1})))}))):null,P?S.a.createElement("tr",null,S.a.createElement("td",null,"oneOf ->"),S.a.createElement("td",null,P.map(function(e,t){return S.a.createElement("div",{key:t},S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("oneOf",t),getConfigs:s,schema:e,depth:u+1})))}))):null,I?S.a.createElement("tr",null,S.a.createElement("td",null,"not ->"),S.a.createElement("td",null,S.a.createElement("div",null,S.a.createElement(C,kt()({},f,{required:!1,getComponent:i,specPath:p.push("not"),getConfigs:s,schema:I,depth:u+1}))))):null))),S.a.createElement("span",{className:"brace-close"},"}")))}}]),t}(E.Component),dn={color:"#999",fontStyle:"italic"},mn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.getConfigs,r=e.schema,o=e.depth,i=e.expandDepth,a=e.name,s=e.displayName,u=e.specPath,c=r.get("description"),l=r.get("items"),p=r.get("title")||s||a,f=r.filter(function(e,t){return-1===["type","items","description","$$ref"].indexOf(t)}),h=t("Markdown"),d=t("ModelCollapse"),m=t("Model"),v=t("Property"),g=p&&S.a.createElement("span",{className:"model-title"},S.a.createElement("span",{className:"model-title__text"},p));return S.a.createElement("span",{className:"model"},S.a.createElement(d,{title:g,expanded:o<=i,collapsedContent:"[...]"},"[",f.size?f.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],r=t[1];return S.a.createElement(v,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:dn})}):null,c?S.a.createElement(h,{source:c}):f.size?S.a.createElement("div",{className:"markdown"}):null,S.a.createElement("span",null,S.a.createElement(m,kt()({},this.props,{getConfigs:n,specPath:u.push("items"),name:null,schema:l,required:!1,depth:o+1}))),"]"))}}]),t}(E.Component),vn={color:"#6b6b6b",fontStyle:"italic"},gn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.schema,n=e.getComponent,r=e.getConfigs,o=e.name,i=e.displayName,a=e.depth,s=r().showExtensions;if(!t||!t.get)return S.a.createElement("div",null);var u=t.get("type"),c=t.get("format"),l=t.get("xml"),p=t.get("enum"),f=t.get("title")||i||o,h=t.get("description"),d=Object(D.m)(t),m=t.filter(function(e,t){return-1===["enum","type","format","description","$$ref"].indexOf(t)}).filterNot(function(e,t){return d.has(t)}),v=n("Markdown"),g=n("EnumModel"),y=n("Property");return S.a.createElement("span",{className:"model"},S.a.createElement("span",{className:"prop"},o&&S.a.createElement("span",{className:"".concat(1===a&&"model-title"," prop-name")},f),S.a.createElement("span",{className:"prop-type"},u),c&&S.a.createElement("span",{className:"prop-format"},"($",c,")"),m.size?m.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],r=t[1];return S.a.createElement(y,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:vn})}):null,s&&d.size?d.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],r=t[1];return S.a.createElement(y,{key:"".concat(n,"-").concat(r),propKey:n,propVal:r,propStyle:vn})}):null,h?S.a.createElement(v,{source:h}):null,l&&l.size?S.a.createElement("span",null,S.a.createElement("br",null),S.a.createElement("span",{style:vn},"xml:"),l.entrySeq().map(function(e){var t=$e()(e,2),n=t[0],r=t[1];return S.a.createElement("span",{key:"".concat(n,"-").concat(r),style:vn},S.a.createElement("br",null),"   ",n,": ",String(r))}).toArray()):null,p&&S.a.createElement(g,{value:p,getComponent:n})))}}]),t}(E.Component),yn=function(e){var t=e.propKey,n=e.propVal,r=e.propStyle;return S.a.createElement("span",{style:r},S.a.createElement("br",null),t,": ",String(n))},bn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.onTryoutClick,n=e.onCancelClick,r=e.enabled;return S.a.createElement("div",{className:"try-out"},r?S.a.createElement("button",{className:"btn try-out__btn cancel",onClick:n},"Cancel"):S.a.createElement("button",{className:"btn try-out__btn",onClick:t},"Try it out "))}}]),t}(S.a.Component);v()(bn,"defaultProps",{onTryoutClick:Function.prototype,onCancelClick:Function.prototype,enabled:!1});var _n=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.bypass,n=e.isSwagger2,r=e.isOAS3,o=e.alsoShow;return t?S.a.createElement("div",null,this.props.children):n&&r?S.a.createElement("div",{className:"version-pragma"},o,S.a.createElement("div",{className:"version-pragma__message version-pragma__message--ambiguous"},S.a.createElement("div",null,S.a.createElement("h3",null,"Unable to render this definition"),S.a.createElement("p",null,S.a.createElement("code",null,"swagger")," and ",S.a.createElement("code",null,"openapi")," fields cannot be present in the same Swagger or OpenAPI definition. Please remove one of the fields."),S.a.createElement("p",null,"Supported version fields are ",S.a.createElement("code",null,"swagger: ",'"2.0"')," and those that match ",S.a.createElement("code",null,"openapi: 3.0.n")," (for example, ",S.a.createElement("code",null,"openapi: 3.0.0"),").")))):n||r?S.a.createElement("div",null,this.props.children):S.a.createElement("div",{className:"version-pragma"},o,S.a.createElement("div",{className:"version-pragma__message version-pragma__message--missing"},S.a.createElement("div",null,S.a.createElement("h3",null,"Unable to render this definition"),S.a.createElement("p",null,"The provided definition does not specify a valid version field."),S.a.createElement("p",null,"Please indicate a valid Swagger or OpenAPI version field. Supported version fields are ",S.a.createElement("code",null,"swagger: ",'"2.0"')," and those that match ",S.a.createElement("code",null,"openapi: 3.0.n")," (for example, ",S.a.createElement("code",null,"openapi: 3.0.0"),")."))))}}]),t}(S.a.PureComponent);v()(_n,"defaultProps",{alsoShow:null,children:null,bypass:!1});var wn=function(e){var t=e.version;return S.a.createElement("small",null,S.a.createElement("pre",{className:"version"}," ",t," "))},xn=function(e){var t=e.enabled,n=e.path,r=e.text;return S.a.createElement("a",{className:"nostyle",onClick:t?function(e){return e.preventDefault()}:null,href:t?"#/".concat(n):null},S.a.createElement("span",null,r))},En=function(){return S.a.createElement("div",null,S.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",style:{position:"absolute",width:0,height:0}},S.a.createElement("defs",null,S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"unlocked"},S.a.createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V6h2v-.801C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"locked"},S.a.createElement("path",{d:"M15.8 8H14V5.6C14 2.703 12.665 1 10 1 7.334 1 6 2.703 6 5.6V8H4c-.553 0-1 .646-1 1.199V17c0 .549.428 1.139.951 1.307l1.197.387C5.672 18.861 6.55 19 7.1 19h5.8c.549 0 1.428-.139 1.951-.307l1.196-.387c.524-.167.953-.757.953-1.306V9.199C17 8.646 16.352 8 15.8 8zM12 8H8V5.199C8 3.754 8.797 3 10 3c1.203 0 2 .754 2 2.199V8z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"close"},S.a.createElement("path",{d:"M14.348 14.849c-.469.469-1.229.469-1.697 0L10 11.819l-2.651 3.029c-.469.469-1.229.469-1.697 0-.469-.469-.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-.469-.469-.469-1.228 0-1.697.469-.469 1.228-.469 1.697 0L10 8.183l2.651-3.031c.469-.469 1.228-.469 1.697 0 .469.469.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c.469.469.469 1.229 0 1.698z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow"},S.a.createElement("path",{d:"M13.25 10L6.109 2.58c-.268-.27-.268-.707 0-.979.268-.27.701-.27.969 0l7.83 7.908c.268.271.268.709 0 .979l-7.83 7.908c-.268.271-.701.27-.969 0-.268-.269-.268-.707 0-.979L13.25 10z"})),S.a.createElement("symbol",{viewBox:"0 0 20 20",id:"large-arrow-down"},S.a.createElement("path",{d:"M17.418 6.109c.272-.268.709-.268.979 0s.271.701 0 .969l-7.908 7.83c-.27.268-.707.268-.979 0l-7.908-7.83c-.27-.268-.27-.701 0-.969.271-.268.709-.268.979 0L10 13.25l7.418-7.141z"})),S.a.createElement("symbol",{viewBox:"0 0 24 24",id:"jump-to"},S.a.createElement("path",{d:"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"})),S.a.createElement("symbol",{viewBox:"0 0 24 24",id:"expand"},S.a.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"})))))},Sn=n(194),Cn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.errSelectors,n=e.specSelectors,r=e.getComponent,o=r("SvgAssets"),i=r("InfoContainer",!0),a=r("VersionPragmaFilter"),s=r("operations",!0),u=r("Models",!0),c=r("Row"),l=r("Col"),p=r("errors",!0),f=r("ServersContainer",!0),h=r("SchemesContainer",!0),d=r("AuthorizeBtnContainer",!0),m=r("FilterContainer",!0),v=n.isSwagger2(),g=n.isOAS3(),y=!n.specStr(),b=n.loadingStatus(),_=null;if("loading"===b&&(_=S.a.createElement("div",{className:"info"},S.a.createElement("div",{className:"loading-container"},S.a.createElement("div",{className:"loading"})))),"failed"===b&&(_=S.a.createElement("div",{className:"info"},S.a.createElement("div",{className:"loading-container"},S.a.createElement("h4",{className:"title"},"Failed to load API definition."),S.a.createElement(p,null)))),"failedConfig"===b){var w=t.lastError(),x=w?w.get("message"):"";_=S.a.createElement("div",{className:"info",style:{maxWidth:"880px",marginLeft:"auto",marginRight:"auto",textAlign:"center"}},S.a.createElement("div",{className:"loading-container"},S.a.createElement("h4",{className:"title"},"Failed to load remote configuration."),S.a.createElement("p",null,x)))}if(!_&&y&&(_=S.a.createElement("h4",null,"No API definition provided.")),_)return S.a.createElement("div",{className:"swagger-ui"},S.a.createElement("div",{className:"loading-container"},_));var E=n.servers(),C=n.schemes(),k=E&&E.size,O=C&&C.size,A=!!n.securityDefinitions();return S.a.createElement("div",{className:"swagger-ui"},S.a.createElement(o,null),S.a.createElement(a,{isSwagger2:v,isOAS3:g,alsoShow:S.a.createElement(p,null)},S.a.createElement(p,null),S.a.createElement(c,{className:"information-container"},S.a.createElement(l,{mobile:12},S.a.createElement(i,null))),k||O||A?S.a.createElement("div",{className:"scheme-container"},S.a.createElement(l,{className:"schemes wrapper",mobile:12},k?S.a.createElement(f,null):null,O?S.a.createElement(h,null):null,A?S.a.createElement(d,null):null)):null,S.a.createElement(m,null),S.a.createElement(c,null,S.a.createElement(l,{mobile:12,desktop:12},S.a.createElement(s,null))),S.a.createElement(c,null,S.a.createElement(l,{mobile:12,desktop:12},S.a.createElement(u,null)))))}}]),t}(S.a.Component),kn=n(487),On=n.n(kn),An={value:"",onChange:function(){},schema:{},keyName:"",required:!1,errors:Object(k.List)()},Tn=function(e){function t(){return _()(this,t),oe()(this,ae()(t).apply(this,arguments))}return le()(t,e),x()(t,[{key:"componentDidMount",value:function(){var e=this.props,t=e.dispatchInitialValue,n=e.value,r=e.onChange;t&&r(n)}},{key:"render",value:function(){var e=this.props,t=e.schema,n=e.errors,r=e.value,o=e.onChange,i=e.getComponent,a=e.fn,s=e.disabled;t.toJS&&(t=t.toJS());var u=t,c=u.type,l=u.format,p=void 0===l?"":l,f=i(p?"JsonSchema_".concat(c,"_").concat(p):"JsonSchema_".concat(c))||i("JsonSchema_string");return S.a.createElement(f,kt()({},this.props,{errors:n,fn:a,getComponent:i,value:r,onChange:o,schema:t,disabled:s}))}}]),t}(E.Component);v()(Tn,"defaultProps",An);var jn=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onChange",function(e){var t="file"===n.props.schema.type?e.target.files[0]:e.target.value;n.props.onChange(t,n.props.keyName)}),v()(ue()(n),"onEnumChange",function(e){return n.props.onChange(e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.schema,o=e.errors,i=e.required,a=e.description,s=e.disabled,u=r.enum;if(o=o.toJS?o.toJS():[],u){var c=t("Select");return S.a.createElement(c,{className:o.length?"invalid":"",title:o.length?o:"",allowedValues:u,value:n,allowEmptyValue:!i,disabled:s,onChange:this.onEnumChange})}var l=s||"formData"===r.in&&!("FormData"in window),p=t("Input");return"file"===r.type?S.a.createElement(p,{type:"file",className:o.length?"invalid":"",title:o.length?o:"",onChange:this.onChange,disabled:l}):S.a.createElement(On.a,{type:"password"===r.format?"password":"text",className:o.length?"invalid":"",title:o.length?o:"",value:n,minLength:0,debounceTimeout:350,placeholder:a,onChange:this.onChange,disabled:l})}}]),t}(E.Component);v()(jn,"defaultProps",An);var Pn=function(e){function t(e,n){var r;return _()(this,t),r=oe()(this,ae()(t).call(this,e,n)),v()(ue()(r),"onChange",function(){return r.props.onChange(r.state.value)}),v()(ue()(r),"onItemChange",function(e,t){r.setState(function(n){return{value:n.value.set(t,e)}},r.onChange)}),v()(ue()(r),"removeItem",function(e){r.setState(function(t){return{value:t.value.remove(e)}},r.onChange)}),v()(ue()(r),"addItem",function(){r.setState(function(e){return e.value=Nn(e.value),{value:e.value.push("")}},r.onChange)}),v()(ue()(r),"onEnumChange",function(e){r.setState(function(){return{value:e}},r.onChange)}),r.state={value:Nn(e.value)},r}return le()(t,e),x()(t,[{key:"componentWillReceiveProps",value:function(e){e.value!==this.state.value&&this.setState({value:e.value})}},{key:"render",value:function(){var e=this,t=this.props,n=t.getComponent,r=t.required,o=t.schema,i=t.errors,a=t.fn,s=t.disabled;i=i.toJS?i.toJS():[];var u=a.inferSchema(o.items),c=n("JsonSchemaForm"),l=n("Button"),p=u.enum,f=this.state.value;if(p){var h=n("Select");return S.a.createElement(h,{className:i.length?"invalid":"",title:i.length?i:"",multiple:!0,value:f,disabled:s,allowedValues:p,allowEmptyValue:!r,onChange:this.onEnumChange})}return S.a.createElement("div",{className:"json-schema-array"},!f||!f.count||f.count()<1?null:f.map(function(t,r){var o=y()({},u);if(i.length){var p=i.filter(function(e){return e.index===r});p.length&&(i=[p[0].error+r])}return S.a.createElement("div",{key:r,className:"json-schema-form-item"},S.a.createElement(c,{fn:a,getComponent:n,value:t,onChange:function(t){return e.onItemChange(t,r)},schema:o,disabled:s}),s?null:S.a.createElement(l,{className:"btn btn-sm json-schema-form-item-remove",onClick:function(){return e.removeItem(r)}}," - "))}).toArray(),s?null:S.a.createElement(l,{className:"btn btn-sm json-schema-form-item-add ".concat(i.length?"invalid":null),onClick:this.addItem},"Add item"))}}]),t}(E.PureComponent);v()(Pn,"defaultProps",An);var In=function(e){function t(){var e,n;_()(this,t);for(var r=arguments.length,o=new Array(r),i=0;i<r;i++)o[i]=arguments[i];return n=oe()(this,(e=ae()(t)).call.apply(e,[this].concat(o))),v()(ue()(n),"onEnumChange",function(e){return n.props.onChange(e)}),n}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.errors,o=e.schema,i=e.required,a=e.disabled;r=r.toJS?r.toJS():[];var s=t("Select");return S.a.createElement(s,{className:r.length?"invalid":"",title:r.length?r:"",value:String(n),disabled:a,allowedValues:Object(k.fromJS)(o.enum||["true","false"]),allowEmptyValue:!o.enum||!i,onChange:this.onEnumChange})}}]),t}(E.Component);v()(In,"defaultProps",An);var Mn=function(e){function t(){var e;return _()(this,t),e=oe()(this,ae()(t).call(this)),v()(ue()(e),"onChange",function(t){e.props.onChange(t)}),v()(ue()(e),"handleOnChange",function(t){var n=t.target.value;e.onChange(n)}),e}return le()(t,e),x()(t,[{key:"render",value:function(){var e=this.props,t=e.getComponent,n=e.value,r=e.errors,o=e.disabled,i=t("TextArea");return S.a.createElement("div",null,S.a.createElement(i,{className:rt()({invalid:r.size}),title:r.size?r.join(", "):"",value:Object(D.I)(n),disabled:o,onChange:this.handleOnChange}))}}]),t}(E.PureComponent);function Nn(e){return k.List.isList(e)?e:Object(k.List)()}v()(Mn,"defaultProps",An);var Rn=function(){var e={components:{App:he,authorizationPopup:de,authorizeBtn:me,AuthorizeBtnContainer:ve,authorizeOperationBtn:ge,auths:ye,AuthItem:be,authError:_e,oauth2:Te,apiKeyAuth:we,basicAuth:xe,clear:je,liveResponse:Me,InitializedInput:Vt,info:Yt,InfoContainer:$t,JumpToPath:Gt,onlineValidatorBadge:De,operations:Fe,operation:ze,OperationSummary:We,OperationSummaryMethod:Je,OperationSummaryPath:Ke,highlightCode:et,responses:tt,response:ot,responseBody:ct,parameters:ft,parameterRow:vt,execute:gt,headers:bt,errors:_t,contentType:St,overview:Bt,footer:Zt,FilterContainer:Xt,ParamBody:en,curl:rn,schemes:on,SchemesContainer:an,modelExample:un,ModelWrapper:cn,ModelCollapse:sn,Model:ln.a,Models:pn,EnumModel:fn,ObjectModel:hn,ArrayModel:mn,PrimitiveModel:gn,Property:yn,TryItOutButton:bn,Markdown:Sn.a,BaseLayout:Cn,VersionPragmaFilter:_n,VersionStamp:wn,OperationExt:Ge,OperationExtRow:Ze,ParameterExt:ht,ParameterIncludeEmpty:dt,OperationTag:Be,OperationContainer:fe,DeepLink:xn,InfoUrl:Kt,InfoBasePath:Ht,SvgAssets:En,Example:Ee,ExamplesSelect:ke,ExamplesSelectValueRetainer:Ae}},t={components:r},n={components:o};return[Q.default,Z.default,Y.default,J.default,W.default,V.default,H.default,K.default,e,t,$.default,n,G.default,X.default,ee.default,te.default,ne.default]},Dn=n(306);function Ln(){return[Rn,Dn.default]}var Un=n(328);n.d(t,"default",function(){return Hn});var qn=!0,Fn="g3911391",Bn="3.25.0",zn="ip-172-31-21-173",Vn="Fri, 17 Jan 2020 21:38:59 GMT";function Hn(e){R.a.versions=R.a.versions||{},R.a.versions.swaggerUi={version:Bn,gitRevision:Fn,gitDirty:qn,buildTimestamp:Vn,machine:zn};var t={dom_id:null,domNode:null,spec:{},url:"",urls:null,layout:"BaseLayout",docExpansion:"list",maxDisplayedTags:null,filter:null,validatorUrl:"https://validator.swagger.io/validator",oauth2RedirectUrl:"".concat(window.location.protocol,"//").concat(window.location.host,"/oauth2-redirect.html"),configs:{},custom:{},displayOperationId:!1,displayRequestDuration:!1,deepLinking:!1,requestInterceptor:function(e){return e},responseInterceptor:function(e){return e},showMutatedRequest:!0,defaultModelRendering:"example",defaultModelExpandDepth:1,defaultModelsExpandDepth:1,showExtensions:!1,showCommonExtensions:!1,withCredentials:void 0,supportedSubmitMethods:["get","put","post","delete","options","head","patch","trace"],presets:[Ln],plugins:[],initialState:{},fn:{},components:{}},n=Object(D.D)(),r=e.domNode;delete e.domNode;var o=f()({},t,e,n),i={system:{configs:o.configs},plugins:o.presets,state:f()({layout:{layout:o.layout,filter:o.filter},spec:{spec:"",url:o.url}},o.initialState)};if(o.initialState)for(var s in o.initialState)o.initialState.hasOwnProperty(s)&&void 0===o.initialState[s]&&delete i.state[s];var c=new U(i);c.register([o.plugins,function(){return{fn:o.fn,components:o.components,state:o.state}}]);var p=c.getSystem(),h=function(e){var t=p.specSelectors.getLocalConfig?p.specSelectors.getLocalConfig():{},i=f()({},t,o,e||{},n);if(r&&(i.domNode=r),c.setConfigs(i),p.configsActions.loaded(),null!==e&&(!n.url&&"object"===l()(i.spec)&&u()(i.spec).length?(p.specActions.updateUrl(""),p.specActions.updateLoadingStatus("success"),p.specActions.updateSpec(a()(i.spec))):p.specActions.download&&i.url&&!i.urls&&(p.specActions.updateUrl(i.url),p.specActions.download(i.url))),i.domNode)p.render(i.domNode,"App");else if(i.dom_id){var s=document.querySelector(i.dom_id);p.render(s,"App")}else null===i.dom_id||null===i.domNode||console.error("Skipped rendering: no `dom_id` or `domNode` was specified");return p},d=n.config||o.configUrl;return d&&p.specActions&&p.specActions.getConfigByUrl&&(!p.specActions.getConfigByUrl||p.specActions.getConfigByUrl({url:d,loadRemoteConfig:!0,requestInterceptor:o.requestInterceptor,responseInterceptor:o.responseInterceptor},h))?(p.specActions.getConfigByUrl(d,h),p):h()}Hn.presets={apis:Ln},Hn.plugins=Un.default}]).default});
 //# sourceMappingURL=swagger-ui-bundle.js.map
\ No newline at end of file
 //# sourceMappingURL=swagger-ui-bundle.js.map
\ No newline at end of file
index 5d620da64d5d33bbeaf6269ff24845d158ed3b78..c61e5a85f7acfa3b08bb883274860a16d0596505 100644 (file)
@@ -1,4 +1,4 @@
 .swagger-ui{
 .swagger-ui{
-  /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */font-family:sans-serif;color:#3b4151}.swagger-ui html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.swagger-ui body{margin:0}.swagger-ui article,.swagger-ui aside,.swagger-ui footer,.swagger-ui header,.swagger-ui nav,.swagger-ui section{display:block}.swagger-ui h1{font-size:2em;margin:.67em 0}.swagger-ui figcaption,.swagger-ui figure,.swagger-ui main{display:block}.swagger-ui figure{margin:1em 40px}.swagger-ui hr{box-sizing:content-box;height:0;overflow:visible}.swagger-ui pre{font-family:monospace,monospace;font-size:1em}.swagger-ui a{background-color:transparent;-webkit-text-decoration-skip:objects}.swagger-ui abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.swagger-ui b,.swagger-ui strong{font-weight:inherit;font-weight:bolder}.swagger-ui code,.swagger-ui kbd,.swagger-ui samp{font-family:monospace,monospace;font-size:1em}.swagger-ui dfn{font-style:italic}.swagger-ui mark{background-color:#ff0;color:#000}.swagger-ui small{font-size:80%}.swagger-ui sub,.swagger-ui sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.swagger-ui sub{bottom:-.25em}.swagger-ui sup{top:-.5em}.swagger-ui audio,.swagger-ui video{display:inline-block}.swagger-ui audio:not([controls]){display:none;height:0}.swagger-ui img{border-style:none}.swagger-ui svg:not(:root){overflow:hidden}.swagger-ui button,.swagger-ui input,.swagger-ui optgroup,.swagger-ui select,.swagger-ui textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.swagger-ui button,.swagger-ui input{overflow:visible}.swagger-ui button,.swagger-ui select{text-transform:none}.swagger-ui [type=reset],.swagger-ui [type=submit],.swagger-ui button,.swagger-ui html [type=button]{-webkit-appearance:button}.swagger-ui [type=button]::-moz-focus-inner,.swagger-ui [type=reset]::-moz-focus-inner,.swagger-ui [type=submit]::-moz-focus-inner,.swagger-ui button::-moz-focus-inner{border-style:none;padding:0}.swagger-ui [type=button]:-moz-focusring,.swagger-ui [type=reset]:-moz-focusring,.swagger-ui [type=submit]:-moz-focusring,.swagger-ui button:-moz-focusring{outline:1px dotted ButtonText}.swagger-ui fieldset{padding:.35em .75em .625em}.swagger-ui legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}.swagger-ui progress{display:inline-block;vertical-align:baseline}.swagger-ui textarea{overflow:auto}.swagger-ui [type=checkbox],.swagger-ui [type=radio]{box-sizing:border-box;padding:0}.swagger-ui [type=number]::-webkit-inner-spin-button,.swagger-ui [type=number]::-webkit-outer-spin-button{height:auto}.swagger-ui [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.swagger-ui [type=search]::-webkit-search-cancel-button,.swagger-ui [type=search]::-webkit-search-decoration{-webkit-appearance:none}.swagger-ui ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.swagger-ui details,.swagger-ui menu{display:block}.swagger-ui summary{display:list-item}.swagger-ui canvas{display:inline-block}.swagger-ui template{display:none}.swagger-ui [hidden]{display:none}.swagger-ui .debug *{outline:1px solid gold}.swagger-ui .debug-white *{outline:1px solid #fff}.swagger-ui .debug-black *{outline:1px solid #000}.swagger-ui .debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.swagger-ui .debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.swagger-ui .debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.swagger-ui .debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.swagger-ui .border-box,.swagger-ui a,.swagger-ui article,.swagger-ui body,.swagger-ui code,.swagger-ui dd,.swagger-ui div,.swagger-ui dl,.swagger-ui dt,.swagger-ui fieldset,.swagger-ui footer,.swagger-ui form,.swagger-ui h1,.swagger-ui h2,.swagger-ui h3,.swagger-ui h4,.swagger-ui h5,.swagger-ui h6,.swagger-ui header,.swagger-ui html,.swagger-ui input[type=email],.swagger-ui input[type=number],.swagger-ui input[type=password],.swagger-ui input[type=tel],.swagger-ui input[type=text],.swagger-ui input[type=url],.swagger-ui legend,.swagger-ui li,.swagger-ui main,.swagger-ui ol,.swagger-ui p,.swagger-ui pre,.swagger-ui section,.swagger-ui table,.swagger-ui td,.swagger-ui textarea,.swagger-ui th,.swagger-ui tr,.swagger-ui ul{box-sizing:border-box}.swagger-ui .aspect-ratio{height:0;position:relative}.swagger-ui .aspect-ratio--16x9{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1{padding-bottom:100%}.swagger-ui .aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}@media screen and (min-width:30em){.swagger-ui .aspect-ratio-ns{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-ns{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-ns{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-ns{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-ns{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-ns{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-ns{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-ns{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-ns{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-ns{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-ns{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-ns{padding-bottom:100%}.swagger-ui .aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .aspect-ratio-m{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-m{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-m{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-m{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-m{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-m{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-m{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-m{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-m{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-m{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-m{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-m{padding-bottom:100%}.swagger-ui .aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}@media screen and (min-width:60em){.swagger-ui .aspect-ratio-l{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-l{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-l{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-l{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-l{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-l{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-l{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-l{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-l{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-l{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-l{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-l{padding-bottom:100%}.swagger-ui .aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}.swagger-ui img{max-width:100%}.swagger-ui .cover{background-size:cover!important}.swagger-ui .contain{background-size:contain!important}@media screen and (min-width:30em){.swagger-ui .cover-ns{background-size:cover!important}.swagger-ui .contain-ns{background-size:contain!important}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cover-m{background-size:cover!important}.swagger-ui .contain-m{background-size:contain!important}}@media screen and (min-width:60em){.swagger-ui .cover-l{background-size:cover!important}.swagger-ui .contain-l{background-size:contain!important}}.swagger-ui .bg-center{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left{background-repeat:no-repeat;background-position:0}@media screen and (min-width:30em){.swagger-ui .bg-center-ns{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-ns{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-ns{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-ns{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-ns{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bg-center-m{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-m{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-m{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-m{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-m{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:60em){.swagger-ui .bg-center-l{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-l{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-l{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-l{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-l{background-repeat:no-repeat;background-position:0}}.swagger-ui .outline{outline:1px solid}.swagger-ui .outline-transparent{outline:1px solid transparent}.swagger-ui .outline-0{outline:0}@media screen and (min-width:30em){.swagger-ui .outline-ns{outline:1px solid}.swagger-ui .outline-transparent-ns{outline:1px solid transparent}.swagger-ui .outline-0-ns{outline:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .outline-m{outline:1px solid}.swagger-ui .outline-transparent-m{outline:1px solid transparent}.swagger-ui .outline-0-m{outline:0}}@media screen and (min-width:60em){.swagger-ui .outline-l{outline:1px solid}.swagger-ui .outline-transparent-l{outline:1px solid transparent}.swagger-ui .outline-0-l{outline:0}}.swagger-ui .ba{border-style:solid;border-width:1px}.swagger-ui .bt{border-top-style:solid;border-top-width:1px}.swagger-ui .br{border-right-style:solid;border-right-width:1px}.swagger-ui .bb{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl{border-left-style:solid;border-left-width:1px}.swagger-ui .bn{border-style:none;border-width:0}@media screen and (min-width:30em){.swagger-ui .ba-ns{border-style:solid;border-width:1px}.swagger-ui .bt-ns{border-top-style:solid;border-top-width:1px}.swagger-ui .br-ns{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-ns{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-ns{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ba-m{border-style:solid;border-width:1px}.swagger-ui .bt-m{border-top-style:solid;border-top-width:1px}.swagger-ui .br-m{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-m{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-m{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.swagger-ui .ba-l{border-style:solid;border-width:1px}.swagger-ui .bt-l{border-top-style:solid;border-top-width:1px}.swagger-ui .br-l{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-l{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-l{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-l{border-style:none;border-width:0}}.swagger-ui .b--black{border-color:#000}.swagger-ui .b--near-black{border-color:#111}.swagger-ui .b--dark-gray{border-color:#333}.swagger-ui .b--mid-gray{border-color:#555}.swagger-ui .b--gray{border-color:#777}.swagger-ui .b--silver{border-color:#999}.swagger-ui .b--light-silver{border-color:#aaa}.swagger-ui .b--moon-gray{border-color:#ccc}.swagger-ui .b--light-gray{border-color:#eee}.swagger-ui .b--near-white{border-color:#f4f4f4}.swagger-ui .b--white{border-color:#fff}.swagger-ui .b--white-90{border-color:hsla(0,0%,100%,.9)}.swagger-ui .b--white-80{border-color:hsla(0,0%,100%,.8)}.swagger-ui .b--white-70{border-color:hsla(0,0%,100%,.7)}.swagger-ui .b--white-60{border-color:hsla(0,0%,100%,.6)}.swagger-ui .b--white-50{border-color:hsla(0,0%,100%,.5)}.swagger-ui .b--white-40{border-color:hsla(0,0%,100%,.4)}.swagger-ui .b--white-30{border-color:hsla(0,0%,100%,.3)}.swagger-ui .b--white-20{border-color:hsla(0,0%,100%,.2)}.swagger-ui .b--white-10{border-color:hsla(0,0%,100%,.1)}.swagger-ui .b--white-05{border-color:hsla(0,0%,100%,.05)}.swagger-ui .b--white-025{border-color:hsla(0,0%,100%,.025)}.swagger-ui .b--white-0125{border-color:hsla(0,0%,100%,.0125)}.swagger-ui .b--black-90{border-color:rgba(0,0,0,.9)}.swagger-ui .b--black-80{border-color:rgba(0,0,0,.8)}.swagger-ui .b--black-70{border-color:rgba(0,0,0,.7)}.swagger-ui .b--black-60{border-color:rgba(0,0,0,.6)}.swagger-ui .b--black-50{border-color:rgba(0,0,0,.5)}.swagger-ui .b--black-40{border-color:rgba(0,0,0,.4)}.swagger-ui .b--black-30{border-color:rgba(0,0,0,.3)}.swagger-ui .b--black-20{border-color:rgba(0,0,0,.2)}.swagger-ui .b--black-10{border-color:rgba(0,0,0,.1)}.swagger-ui .b--black-05{border-color:rgba(0,0,0,.05)}.swagger-ui .b--black-025{border-color:rgba(0,0,0,.025)}.swagger-ui .b--black-0125{border-color:rgba(0,0,0,.0125)}.swagger-ui .b--dark-red{border-color:#e7040f}.swagger-ui .b--red{border-color:#ff4136}.swagger-ui .b--light-red{border-color:#ff725c}.swagger-ui .b--orange{border-color:#ff6300}.swagger-ui .b--gold{border-color:#ffb700}.swagger-ui .b--yellow{border-color:gold}.swagger-ui .b--light-yellow{border-color:#fbf1a9}.swagger-ui .b--purple{border-color:#5e2ca5}.swagger-ui .b--light-purple{border-color:#a463f2}.swagger-ui .b--dark-pink{border-color:#d5008f}.swagger-ui .b--hot-pink{border-color:#ff41b4}.swagger-ui .b--pink{border-color:#ff80cc}.swagger-ui .b--light-pink{border-color:#ffa3d7}.swagger-ui .b--dark-green{border-color:#137752}.swagger-ui .b--green{border-color:#19a974}.swagger-ui .b--light-green{border-color:#9eebcf}.swagger-ui .b--navy{border-color:#001b44}.swagger-ui .b--dark-blue{border-color:#00449e}.swagger-ui .b--blue{border-color:#357edd}.swagger-ui .b--light-blue{border-color:#96ccff}.swagger-ui .b--lightest-blue{border-color:#cdecff}.swagger-ui .b--washed-blue{border-color:#f6fffe}.swagger-ui .b--washed-green{border-color:#e8fdf5}.swagger-ui .b--washed-yellow{border-color:#fffceb}.swagger-ui .b--washed-red{border-color:#ffdfdf}.swagger-ui .b--transparent{border-color:transparent}.swagger-ui .b--inherit{border-color:inherit}.swagger-ui .br0{border-radius:0}.swagger-ui .br1{border-radius:.125rem}.swagger-ui .br2{border-radius:.25rem}.swagger-ui .br3{border-radius:.5rem}.swagger-ui .br4{border-radius:1rem}.swagger-ui .br-100{border-radius:100%}.swagger-ui .br-pill{border-radius:9999px}.swagger-ui .br--bottom{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left{border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (min-width:30em){.swagger-ui .br0-ns{border-radius:0}.swagger-ui .br1-ns{border-radius:.125rem}.swagger-ui .br2-ns{border-radius:.25rem}.swagger-ui .br3-ns{border-radius:.5rem}.swagger-ui .br4-ns{border-radius:1rem}.swagger-ui .br-100-ns{border-radius:100%}.swagger-ui .br-pill-ns{border-radius:9999px}.swagger-ui .br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-ns{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-ns{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .br0-m{border-radius:0}.swagger-ui .br1-m{border-radius:.125rem}.swagger-ui .br2-m{border-radius:.25rem}.swagger-ui .br3-m{border-radius:.5rem}.swagger-ui .br4-m{border-radius:1rem}.swagger-ui .br-100-m{border-radius:100%}.swagger-ui .br-pill-m{border-radius:9999px}.swagger-ui .br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-m{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-m{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:60em){.swagger-ui .br0-l{border-radius:0}.swagger-ui .br1-l{border-radius:.125rem}.swagger-ui .br2-l{border-radius:.25rem}.swagger-ui .br3-l{border-radius:.5rem}.swagger-ui .br4-l{border-radius:1rem}.swagger-ui .br-100-l{border-radius:100%}.swagger-ui .br-pill-l{border-radius:9999px}.swagger-ui .br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-l{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-l{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}}.swagger-ui .b--dotted{border-style:dotted}.swagger-ui .b--dashed{border-style:dashed}.swagger-ui .b--solid{border-style:solid}.swagger-ui .b--none{border-style:none}@media screen and (min-width:30em){.swagger-ui .b--dotted-ns{border-style:dotted}.swagger-ui .b--dashed-ns{border-style:dashed}.swagger-ui .b--solid-ns{border-style:solid}.swagger-ui .b--none-ns{border-style:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .b--dotted-m{border-style:dotted}.swagger-ui .b--dashed-m{border-style:dashed}.swagger-ui .b--solid-m{border-style:solid}.swagger-ui .b--none-m{border-style:none}}@media screen and (min-width:60em){.swagger-ui .b--dotted-l{border-style:dotted}.swagger-ui .b--dashed-l{border-style:dashed}.swagger-ui .b--solid-l{border-style:solid}.swagger-ui .b--none-l{border-style:none}}.swagger-ui .bw0{border-width:0}.swagger-ui .bw1{border-width:.125rem}.swagger-ui .bw2{border-width:.25rem}.swagger-ui .bw3{border-width:.5rem}.swagger-ui .bw4{border-width:1rem}.swagger-ui .bw5{border-width:2rem}.swagger-ui .bt-0{border-top-width:0}.swagger-ui .br-0{border-right-width:0}.swagger-ui .bb-0{border-bottom-width:0}.swagger-ui .bl-0{border-left-width:0}@media screen and (min-width:30em){.swagger-ui .bw0-ns{border-width:0}.swagger-ui .bw1-ns{border-width:.125rem}.swagger-ui .bw2-ns{border-width:.25rem}.swagger-ui .bw3-ns{border-width:.5rem}.swagger-ui .bw4-ns{border-width:1rem}.swagger-ui .bw5-ns{border-width:2rem}.swagger-ui .bt-0-ns{border-top-width:0}.swagger-ui .br-0-ns{border-right-width:0}.swagger-ui .bb-0-ns{border-bottom-width:0}.swagger-ui .bl-0-ns{border-left-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bw0-m{border-width:0}.swagger-ui .bw1-m{border-width:.125rem}.swagger-ui .bw2-m{border-width:.25rem}.swagger-ui .bw3-m{border-width:.5rem}.swagger-ui .bw4-m{border-width:1rem}.swagger-ui .bw5-m{border-width:2rem}.swagger-ui .bt-0-m{border-top-width:0}.swagger-ui .br-0-m{border-right-width:0}.swagger-ui .bb-0-m{border-bottom-width:0}.swagger-ui .bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.swagger-ui .bw0-l{border-width:0}.swagger-ui .bw1-l{border-width:.125rem}.swagger-ui .bw2-l{border-width:.25rem}.swagger-ui .bw3-l{border-width:.5rem}.swagger-ui .bw4-l{border-width:1rem}.swagger-ui .bw5-l{border-width:2rem}.swagger-ui .bt-0-l{border-top-width:0}.swagger-ui .br-0-l{border-right-width:0}.swagger-ui .bb-0-l{border-bottom-width:0}.swagger-ui .bl-0-l{border-left-width:0}}.swagger-ui .shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.swagger-ui .shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.swagger-ui .shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.swagger-ui .pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.swagger-ui .top-0{top:0}.swagger-ui .right-0{right:0}.swagger-ui .bottom-0{bottom:0}.swagger-ui .left-0{left:0}.swagger-ui .top-1{top:1rem}.swagger-ui .right-1{right:1rem}.swagger-ui .bottom-1{bottom:1rem}.swagger-ui .left-1{left:1rem}.swagger-ui .top-2{top:2rem}.swagger-ui .right-2{right:2rem}.swagger-ui .bottom-2{bottom:2rem}.swagger-ui .left-2{left:2rem}.swagger-ui .top--1{top:-1rem}.swagger-ui .right--1{right:-1rem}.swagger-ui .bottom--1{bottom:-1rem}.swagger-ui .left--1{left:-1rem}.swagger-ui .top--2{top:-2rem}.swagger-ui .right--2{right:-2rem}.swagger-ui .bottom--2{bottom:-2rem}.swagger-ui .left--2{left:-2rem}.swagger-ui .absolute--fill{top:0;right:0;bottom:0;left:0}@media screen and (min-width:30em){.swagger-ui .top-0-ns{top:0}.swagger-ui .left-0-ns{left:0}.swagger-ui .right-0-ns{right:0}.swagger-ui .bottom-0-ns{bottom:0}.swagger-ui .top-1-ns{top:1rem}.swagger-ui .left-1-ns{left:1rem}.swagger-ui .right-1-ns{right:1rem}.swagger-ui .bottom-1-ns{bottom:1rem}.swagger-ui .top-2-ns{top:2rem}.swagger-ui .left-2-ns{left:2rem}.swagger-ui .right-2-ns{right:2rem}.swagger-ui .bottom-2-ns{bottom:2rem}.swagger-ui .top--1-ns{top:-1rem}.swagger-ui .right--1-ns{right:-1rem}.swagger-ui .bottom--1-ns{bottom:-1rem}.swagger-ui .left--1-ns{left:-1rem}.swagger-ui .top--2-ns{top:-2rem}.swagger-ui .right--2-ns{right:-2rem}.swagger-ui .bottom--2-ns{bottom:-2rem}.swagger-ui .left--2-ns{left:-2rem}.swagger-ui .absolute--fill-ns{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .top-0-m{top:0}.swagger-ui .left-0-m{left:0}.swagger-ui .right-0-m{right:0}.swagger-ui .bottom-0-m{bottom:0}.swagger-ui .top-1-m{top:1rem}.swagger-ui .left-1-m{left:1rem}.swagger-ui .right-1-m{right:1rem}.swagger-ui .bottom-1-m{bottom:1rem}.swagger-ui .top-2-m{top:2rem}.swagger-ui .left-2-m{left:2rem}.swagger-ui .right-2-m{right:2rem}.swagger-ui .bottom-2-m{bottom:2rem}.swagger-ui .top--1-m{top:-1rem}.swagger-ui .right--1-m{right:-1rem}.swagger-ui .bottom--1-m{bottom:-1rem}.swagger-ui .left--1-m{left:-1rem}.swagger-ui .top--2-m{top:-2rem}.swagger-ui .right--2-m{right:-2rem}.swagger-ui .bottom--2-m{bottom:-2rem}.swagger-ui .left--2-m{left:-2rem}.swagger-ui .absolute--fill-m{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:60em){.swagger-ui .top-0-l{top:0}.swagger-ui .left-0-l{left:0}.swagger-ui .right-0-l{right:0}.swagger-ui .bottom-0-l{bottom:0}.swagger-ui .top-1-l{top:1rem}.swagger-ui .left-1-l{left:1rem}.swagger-ui .right-1-l{right:1rem}.swagger-ui .bottom-1-l{bottom:1rem}.swagger-ui .top-2-l{top:2rem}.swagger-ui .left-2-l{left:2rem}.swagger-ui .right-2-l{right:2rem}.swagger-ui .bottom-2-l{bottom:2rem}.swagger-ui .top--1-l{top:-1rem}.swagger-ui .right--1-l{right:-1rem}.swagger-ui .bottom--1-l{bottom:-1rem}.swagger-ui .left--1-l{left:-1rem}.swagger-ui .top--2-l{top:-2rem}.swagger-ui .right--2-l{right:-2rem}.swagger-ui .bottom--2-l{bottom:-2rem}.swagger-ui .left--2-l{left:-2rem}.swagger-ui .absolute--fill-l{top:0;right:0;bottom:0;left:0}}.swagger-ui .cf:after,.swagger-ui .cf:before{content:" ";display:table}.swagger-ui .cf:after{clear:both}.swagger-ui .cf{*zoom:1}.swagger-ui .cl{clear:left}.swagger-ui .cr{clear:right}.swagger-ui .cb{clear:both}.swagger-ui .cn{clear:none}@media screen and (min-width:30em){.swagger-ui .cl-ns{clear:left}.swagger-ui .cr-ns{clear:right}.swagger-ui .cb-ns{clear:both}.swagger-ui .cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cl-m{clear:left}.swagger-ui .cr-m{clear:right}.swagger-ui .cb-m{clear:both}.swagger-ui .cn-m{clear:none}}@media screen and (min-width:60em){.swagger-ui .cl-l{clear:left}.swagger-ui .cr-l{clear:right}.swagger-ui .cb-l{clear:both}.swagger-ui .cn-l{clear:none}}.swagger-ui .flex{display:flex}.swagger-ui .inline-flex{display:inline-flex}.swagger-ui .flex-auto{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none{flex:none}.swagger-ui .flex-column{flex-direction:column}.swagger-ui .flex-row{flex-direction:row}.swagger-ui .flex-wrap{flex-wrap:wrap}.swagger-ui .flex-nowrap{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse{flex-direction:column-reverse}.swagger-ui .flex-row-reverse{flex-direction:row-reverse}.swagger-ui .items-start{align-items:flex-start}.swagger-ui .items-end{align-items:flex-end}.swagger-ui .items-center{align-items:center}.swagger-ui .items-baseline{align-items:baseline}.swagger-ui .items-stretch{align-items:stretch}.swagger-ui .self-start{align-self:flex-start}.swagger-ui .self-end{align-self:flex-end}.swagger-ui .self-center{align-self:center}.swagger-ui .self-baseline{align-self:baseline}.swagger-ui .self-stretch{align-self:stretch}.swagger-ui .justify-start{justify-content:flex-start}.swagger-ui .justify-end{justify-content:flex-end}.swagger-ui .justify-center{justify-content:center}.swagger-ui .justify-between{justify-content:space-between}.swagger-ui .justify-around{justify-content:space-around}.swagger-ui .content-start{align-content:flex-start}.swagger-ui .content-end{align-content:flex-end}.swagger-ui .content-center{align-content:center}.swagger-ui .content-between{align-content:space-between}.swagger-ui .content-around{align-content:space-around}.swagger-ui .content-stretch{align-content:stretch}.swagger-ui .order-0{order:0}.swagger-ui .order-1{order:1}.swagger-ui .order-2{order:2}.swagger-ui .order-3{order:3}.swagger-ui .order-4{order:4}.swagger-ui .order-5{order:5}.swagger-ui .order-6{order:6}.swagger-ui .order-7{order:7}.swagger-ui .order-8{order:8}.swagger-ui .order-last{order:99999}.swagger-ui .flex-grow-0{flex-grow:0}.swagger-ui .flex-grow-1{flex-grow:1}.swagger-ui .flex-shrink-0{flex-shrink:0}.swagger-ui .flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.swagger-ui .flex-ns{display:flex}.swagger-ui .inline-flex-ns{display:inline-flex}.swagger-ui .flex-auto-ns{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-ns{flex:none}.swagger-ui .flex-column-ns{flex-direction:column}.swagger-ui .flex-row-ns{flex-direction:row}.swagger-ui .flex-wrap-ns{flex-wrap:wrap}.swagger-ui .flex-nowrap-ns{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-ns{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-ns{flex-direction:row-reverse}.swagger-ui .items-start-ns{align-items:flex-start}.swagger-ui .items-end-ns{align-items:flex-end}.swagger-ui .items-center-ns{align-items:center}.swagger-ui .items-baseline-ns{align-items:baseline}.swagger-ui .items-stretch-ns{align-items:stretch}.swagger-ui .self-start-ns{align-self:flex-start}.swagger-ui .self-end-ns{align-self:flex-end}.swagger-ui .self-center-ns{align-self:center}.swagger-ui .self-baseline-ns{align-self:baseline}.swagger-ui .self-stretch-ns{align-self:stretch}.swagger-ui .justify-start-ns{justify-content:flex-start}.swagger-ui .justify-end-ns{justify-content:flex-end}.swagger-ui .justify-center-ns{justify-content:center}.swagger-ui .justify-between-ns{justify-content:space-between}.swagger-ui .justify-around-ns{justify-content:space-around}.swagger-ui .content-start-ns{align-content:flex-start}.swagger-ui .content-end-ns{align-content:flex-end}.swagger-ui .content-center-ns{align-content:center}.swagger-ui .content-between-ns{align-content:space-between}.swagger-ui .content-around-ns{align-content:space-around}.swagger-ui .content-stretch-ns{align-content:stretch}.swagger-ui .order-0-ns{order:0}.swagger-ui .order-1-ns{order:1}.swagger-ui .order-2-ns{order:2}.swagger-ui .order-3-ns{order:3}.swagger-ui .order-4-ns{order:4}.swagger-ui .order-5-ns{order:5}.swagger-ui .order-6-ns{order:6}.swagger-ui .order-7-ns{order:7}.swagger-ui .order-8-ns{order:8}.swagger-ui .order-last-ns{order:99999}.swagger-ui .flex-grow-0-ns{flex-grow:0}.swagger-ui .flex-grow-1-ns{flex-grow:1}.swagger-ui .flex-shrink-0-ns{flex-shrink:0}.swagger-ui .flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .flex-m{display:flex}.swagger-ui .inline-flex-m{display:inline-flex}.swagger-ui .flex-auto-m{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-m{flex:none}.swagger-ui .flex-column-m{flex-direction:column}.swagger-ui .flex-row-m{flex-direction:row}.swagger-ui .flex-wrap-m{flex-wrap:wrap}.swagger-ui .flex-nowrap-m{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-m{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-m{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-m{flex-direction:row-reverse}.swagger-ui .items-start-m{align-items:flex-start}.swagger-ui .items-end-m{align-items:flex-end}.swagger-ui .items-center-m{align-items:center}.swagger-ui .items-baseline-m{align-items:baseline}.swagger-ui .items-stretch-m{align-items:stretch}.swagger-ui .self-start-m{align-self:flex-start}.swagger-ui .self-end-m{align-self:flex-end}.swagger-ui .self-center-m{align-self:center}.swagger-ui .self-baseline-m{align-self:baseline}.swagger-ui .self-stretch-m{align-self:stretch}.swagger-ui .justify-start-m{justify-content:flex-start}.swagger-ui .justify-end-m{justify-content:flex-end}.swagger-ui .justify-center-m{justify-content:center}.swagger-ui .justify-between-m{justify-content:space-between}.swagger-ui .justify-around-m{justify-content:space-around}.swagger-ui .content-start-m{align-content:flex-start}.swagger-ui .content-end-m{align-content:flex-end}.swagger-ui .content-center-m{align-content:center}.swagger-ui .content-between-m{align-content:space-between}.swagger-ui .content-around-m{align-content:space-around}.swagger-ui .content-stretch-m{align-content:stretch}.swagger-ui .order-0-m{order:0}.swagger-ui .order-1-m{order:1}.swagger-ui .order-2-m{order:2}.swagger-ui .order-3-m{order:3}.swagger-ui .order-4-m{order:4}.swagger-ui .order-5-m{order:5}.swagger-ui .order-6-m{order:6}.swagger-ui .order-7-m{order:7}.swagger-ui .order-8-m{order:8}.swagger-ui .order-last-m{order:99999}.swagger-ui .flex-grow-0-m{flex-grow:0}.swagger-ui .flex-grow-1-m{flex-grow:1}.swagger-ui .flex-shrink-0-m{flex-shrink:0}.swagger-ui .flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.swagger-ui .flex-l{display:flex}.swagger-ui .inline-flex-l{display:inline-flex}.swagger-ui .flex-auto-l{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-l{flex:none}.swagger-ui .flex-column-l{flex-direction:column}.swagger-ui .flex-row-l{flex-direction:row}.swagger-ui .flex-wrap-l{flex-wrap:wrap}.swagger-ui .flex-nowrap-l{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-l{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-l{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-l{flex-direction:row-reverse}.swagger-ui .items-start-l{align-items:flex-start}.swagger-ui .items-end-l{align-items:flex-end}.swagger-ui .items-center-l{align-items:center}.swagger-ui .items-baseline-l{align-items:baseline}.swagger-ui .items-stretch-l{align-items:stretch}.swagger-ui .self-start-l{align-self:flex-start}.swagger-ui .self-end-l{align-self:flex-end}.swagger-ui .self-center-l{align-self:center}.swagger-ui .self-baseline-l{align-self:baseline}.swagger-ui .self-stretch-l{align-self:stretch}.swagger-ui .justify-start-l{justify-content:flex-start}.swagger-ui .justify-end-l{justify-content:flex-end}.swagger-ui .justify-center-l{justify-content:center}.swagger-ui .justify-between-l{justify-content:space-between}.swagger-ui .justify-around-l{justify-content:space-around}.swagger-ui .content-start-l{align-content:flex-start}.swagger-ui .content-end-l{align-content:flex-end}.swagger-ui .content-center-l{align-content:center}.swagger-ui .content-between-l{align-content:space-between}.swagger-ui .content-around-l{align-content:space-around}.swagger-ui .content-stretch-l{align-content:stretch}.swagger-ui .order-0-l{order:0}.swagger-ui .order-1-l{order:1}.swagger-ui .order-2-l{order:2}.swagger-ui .order-3-l{order:3}.swagger-ui .order-4-l{order:4}.swagger-ui .order-5-l{order:5}.swagger-ui .order-6-l{order:6}.swagger-ui .order-7-l{order:7}.swagger-ui .order-8-l{order:8}.swagger-ui .order-last-l{order:99999}.swagger-ui .flex-grow-0-l{flex-grow:0}.swagger-ui .flex-grow-1-l{flex-grow:1}.swagger-ui .flex-shrink-0-l{flex-shrink:0}.swagger-ui .flex-shrink-1-l{flex-shrink:1}}.swagger-ui .dn{display:none}.swagger-ui .di{display:inline}.swagger-ui .db{display:block}.swagger-ui .dib{display:inline-block}.swagger-ui .dit{display:inline-table}.swagger-ui .dt{display:table}.swagger-ui .dtc{display:table-cell}.swagger-ui .dt-row{display:table-row}.swagger-ui .dt-row-group{display:table-row-group}.swagger-ui .dt-column{display:table-column}.swagger-ui .dt-column-group{display:table-column-group}.swagger-ui .dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.swagger-ui .dn-ns{display:none}.swagger-ui .di-ns{display:inline}.swagger-ui .db-ns{display:block}.swagger-ui .dib-ns{display:inline-block}.swagger-ui .dit-ns{display:inline-table}.swagger-ui .dt-ns{display:table}.swagger-ui .dtc-ns{display:table-cell}.swagger-ui .dt-row-ns{display:table-row}.swagger-ui .dt-row-group-ns{display:table-row-group}.swagger-ui .dt-column-ns{display:table-column}.swagger-ui .dt-column-group-ns{display:table-column-group}.swagger-ui .dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .dn-m{display:none}.swagger-ui .di-m{display:inline}.swagger-ui .db-m{display:block}.swagger-ui .dib-m{display:inline-block}.swagger-ui .dit-m{display:inline-table}.swagger-ui .dt-m{display:table}.swagger-ui .dtc-m{display:table-cell}.swagger-ui .dt-row-m{display:table-row}.swagger-ui .dt-row-group-m{display:table-row-group}.swagger-ui .dt-column-m{display:table-column}.swagger-ui .dt-column-group-m{display:table-column-group}.swagger-ui .dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.swagger-ui .dn-l{display:none}.swagger-ui .di-l{display:inline}.swagger-ui .db-l{display:block}.swagger-ui .dib-l{display:inline-block}.swagger-ui .dit-l{display:inline-table}.swagger-ui .dt-l{display:table}.swagger-ui .dtc-l{display:table-cell}.swagger-ui .dt-row-l{display:table-row}.swagger-ui .dt-row-group-l{display:table-row-group}.swagger-ui .dt-column-l{display:table-column}.swagger-ui .dt-column-group-l{display:table-column-group}.swagger-ui .dt--fixed-l{table-layout:fixed;width:100%}}.swagger-ui .fl{float:left;_display:inline}.swagger-ui .fr{float:right;_display:inline}.swagger-ui .fn{float:none}@media screen and (min-width:30em){.swagger-ui .fl-ns{float:left;_display:inline}.swagger-ui .fr-ns{float:right;_display:inline}.swagger-ui .fn-ns{float:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .fl-m{float:left;_display:inline}.swagger-ui .fr-m{float:right;_display:inline}.swagger-ui .fn-m{float:none}}@media screen and (min-width:60em){.swagger-ui .fl-l{float:left;_display:inline}.swagger-ui .fr-l{float:right;_display:inline}.swagger-ui .fn-l{float:none}}.swagger-ui .sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.swagger-ui .serif{font-family:georgia,serif}.swagger-ui .system-sans-serif{font-family:sans-serif}.swagger-ui .system-serif{font-family:serif}.swagger-ui .code,.swagger-ui code{font-family:Consolas,monaco,monospace}.swagger-ui .courier{font-family:Courier Next,courier,monospace}.swagger-ui .helvetica{font-family:helvetica neue,helvetica,sans-serif}.swagger-ui .avenir{font-family:avenir next,avenir,sans-serif}.swagger-ui .athelas{font-family:athelas,georgia,serif}.swagger-ui .georgia{font-family:georgia,serif}.swagger-ui .times{font-family:times,serif}.swagger-ui .bodoni{font-family:Bodoni MT,serif}.swagger-ui .calisto{font-family:Calisto MT,serif}.swagger-ui .garamond{font-family:garamond,serif}.swagger-ui .baskerville{font-family:baskerville,serif}.swagger-ui .i{font-style:italic}.swagger-ui .fs-normal{font-style:normal}@media screen and (min-width:30em){.swagger-ui .i-ns{font-style:italic}.swagger-ui .fs-normal-ns{font-style:normal}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .i-m{font-style:italic}.swagger-ui .fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.swagger-ui .i-l{font-style:italic}.swagger-ui .fs-normal-l{font-style:normal}}.swagger-ui .normal{font-weight:400}.swagger-ui .b{font-weight:700}.swagger-ui .fw1{font-weight:100}.swagger-ui .fw2{font-weight:200}.swagger-ui .fw3{font-weight:300}.swagger-ui .fw4{font-weight:400}.swagger-ui .fw5{font-weight:500}.swagger-ui .fw6{font-weight:600}.swagger-ui .fw7{font-weight:700}.swagger-ui .fw8{font-weight:800}.swagger-ui .fw9{font-weight:900}@media screen and (min-width:30em){.swagger-ui .normal-ns{font-weight:400}.swagger-ui .b-ns{font-weight:700}.swagger-ui .fw1-ns{font-weight:100}.swagger-ui .fw2-ns{font-weight:200}.swagger-ui .fw3-ns{font-weight:300}.swagger-ui .fw4-ns{font-weight:400}.swagger-ui .fw5-ns{font-weight:500}.swagger-ui .fw6-ns{font-weight:600}.swagger-ui .fw7-ns{font-weight:700}.swagger-ui .fw8-ns{font-weight:800}.swagger-ui .fw9-ns{font-weight:900}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .normal-m{font-weight:400}.swagger-ui .b-m{font-weight:700}.swagger-ui .fw1-m{font-weight:100}.swagger-ui .fw2-m{font-weight:200}.swagger-ui .fw3-m{font-weight:300}.swagger-ui .fw4-m{font-weight:400}.swagger-ui .fw5-m{font-weight:500}.swagger-ui .fw6-m{font-weight:600}.swagger-ui .fw7-m{font-weight:700}.swagger-ui .fw8-m{font-weight:800}.swagger-ui .fw9-m{font-weight:900}}@media screen and (min-width:60em){.swagger-ui .normal-l{font-weight:400}.swagger-ui .b-l{font-weight:700}.swagger-ui .fw1-l{font-weight:100}.swagger-ui .fw2-l{font-weight:200}.swagger-ui .fw3-l{font-weight:300}.swagger-ui .fw4-l{font-weight:400}.swagger-ui .fw5-l{font-weight:500}.swagger-ui .fw6-l{font-weight:600}.swagger-ui .fw7-l{font-weight:700}.swagger-ui .fw8-l{font-weight:800}.swagger-ui .fw9-l{font-weight:900}}.swagger-ui .input-reset{-webkit-appearance:none;-moz-appearance:none}.swagger-ui .button-reset::-moz-focus-inner,.swagger-ui .input-reset::-moz-focus-inner{border:0;padding:0}.swagger-ui .h1{height:1rem}.swagger-ui .h2{height:2rem}.swagger-ui .h3{height:4rem}.swagger-ui .h4{height:8rem}.swagger-ui .h5{height:16rem}.swagger-ui .h-25{height:25%}.swagger-ui .h-50{height:50%}.swagger-ui .h-75{height:75%}.swagger-ui .h-100{height:100%}.swagger-ui .min-h-100{min-height:100%}.swagger-ui .vh-25{height:25vh}.swagger-ui .vh-50{height:50vh}.swagger-ui .vh-75{height:75vh}.swagger-ui .vh-100{height:100vh}.swagger-ui .min-vh-100{min-height:100vh}.swagger-ui .h-auto{height:auto}.swagger-ui .h-inherit{height:inherit}@media screen and (min-width:30em){.swagger-ui .h1-ns{height:1rem}.swagger-ui .h2-ns{height:2rem}.swagger-ui .h3-ns{height:4rem}.swagger-ui .h4-ns{height:8rem}.swagger-ui .h5-ns{height:16rem}.swagger-ui .h-25-ns{height:25%}.swagger-ui .h-50-ns{height:50%}.swagger-ui .h-75-ns{height:75%}.swagger-ui .h-100-ns{height:100%}.swagger-ui .min-h-100-ns{min-height:100%}.swagger-ui .vh-25-ns{height:25vh}.swagger-ui .vh-50-ns{height:50vh}.swagger-ui .vh-75-ns{height:75vh}.swagger-ui .vh-100-ns{height:100vh}.swagger-ui .min-vh-100-ns{min-height:100vh}.swagger-ui .h-auto-ns{height:auto}.swagger-ui .h-inherit-ns{height:inherit}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .h1-m{height:1rem}.swagger-ui .h2-m{height:2rem}.swagger-ui .h3-m{height:4rem}.swagger-ui .h4-m{height:8rem}.swagger-ui .h5-m{height:16rem}.swagger-ui .h-25-m{height:25%}.swagger-ui .h-50-m{height:50%}.swagger-ui .h-75-m{height:75%}.swagger-ui .h-100-m{height:100%}.swagger-ui .min-h-100-m{min-height:100%}.swagger-ui .vh-25-m{height:25vh}.swagger-ui .vh-50-m{height:50vh}.swagger-ui .vh-75-m{height:75vh}.swagger-ui .vh-100-m{height:100vh}.swagger-ui .min-vh-100-m{min-height:100vh}.swagger-ui .h-auto-m{height:auto}.swagger-ui .h-inherit-m{height:inherit}}@media screen and (min-width:60em){.swagger-ui .h1-l{height:1rem}.swagger-ui .h2-l{height:2rem}.swagger-ui .h3-l{height:4rem}.swagger-ui .h4-l{height:8rem}.swagger-ui .h5-l{height:16rem}.swagger-ui .h-25-l{height:25%}.swagger-ui .h-50-l{height:50%}.swagger-ui .h-75-l{height:75%}.swagger-ui .h-100-l{height:100%}.swagger-ui .min-h-100-l{min-height:100%}.swagger-ui .vh-25-l{height:25vh}.swagger-ui .vh-50-l{height:50vh}.swagger-ui .vh-75-l{height:75vh}.swagger-ui .vh-100-l{height:100vh}.swagger-ui .min-vh-100-l{min-height:100vh}.swagger-ui .h-auto-l{height:auto}.swagger-ui .h-inherit-l{height:inherit}}.swagger-ui .tracked{letter-spacing:.1em}.swagger-ui .tracked-tight{letter-spacing:-.05em}.swagger-ui .tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.swagger-ui .tracked-ns{letter-spacing:.1em}.swagger-ui .tracked-tight-ns{letter-spacing:-.05em}.swagger-ui .tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tracked-m{letter-spacing:.1em}.swagger-ui .tracked-tight-m{letter-spacing:-.05em}.swagger-ui .tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.swagger-ui .tracked-l{letter-spacing:.1em}.swagger-ui .tracked-tight-l{letter-spacing:-.05em}.swagger-ui .tracked-mega-l{letter-spacing:.25em}}.swagger-ui .lh-solid{line-height:1}.swagger-ui .lh-title{line-height:1.25}.swagger-ui .lh-copy{line-height:1.5}@media screen and (min-width:30em){.swagger-ui .lh-solid-ns{line-height:1}.swagger-ui .lh-title-ns{line-height:1.25}.swagger-ui .lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .lh-solid-m{line-height:1}.swagger-ui .lh-title-m{line-height:1.25}.swagger-ui .lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.swagger-ui .lh-solid-l{line-height:1}.swagger-ui .lh-title-l{line-height:1.25}.swagger-ui .lh-copy-l{line-height:1.5}}.swagger-ui .link{text-decoration:none}.swagger-ui .link,.swagger-ui .link:link,.swagger-ui .link:visited{transition:color .15s ease-in}.swagger-ui .link:hover{transition:color .15s ease-in}.swagger-ui .link:active{transition:color .15s ease-in}.swagger-ui .link:focus{transition:color .15s ease-in;outline:1px dotted currentColor}.swagger-ui .list{list-style-type:none}.swagger-ui .mw-100{max-width:100%}.swagger-ui .mw1{max-width:1rem}.swagger-ui .mw2{max-width:2rem}.swagger-ui .mw3{max-width:4rem}.swagger-ui .mw4{max-width:8rem}.swagger-ui .mw5{max-width:16rem}.swagger-ui .mw6{max-width:32rem}.swagger-ui .mw7{max-width:48rem}.swagger-ui .mw8{max-width:64rem}.swagger-ui .mw9{max-width:96rem}.swagger-ui .mw-none{max-width:none}@media screen and (min-width:30em){.swagger-ui .mw-100-ns{max-width:100%}.swagger-ui .mw1-ns{max-width:1rem}.swagger-ui .mw2-ns{max-width:2rem}.swagger-ui .mw3-ns{max-width:4rem}.swagger-ui .mw4-ns{max-width:8rem}.swagger-ui .mw5-ns{max-width:16rem}.swagger-ui .mw6-ns{max-width:32rem}.swagger-ui .mw7-ns{max-width:48rem}.swagger-ui .mw8-ns{max-width:64rem}.swagger-ui .mw9-ns{max-width:96rem}.swagger-ui .mw-none-ns{max-width:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .mw-100-m{max-width:100%}.swagger-ui .mw1-m{max-width:1rem}.swagger-ui .mw2-m{max-width:2rem}.swagger-ui .mw3-m{max-width:4rem}.swagger-ui .mw4-m{max-width:8rem}.swagger-ui .mw5-m{max-width:16rem}.swagger-ui .mw6-m{max-width:32rem}.swagger-ui .mw7-m{max-width:48rem}.swagger-ui .mw8-m{max-width:64rem}.swagger-ui .mw9-m{max-width:96rem}.swagger-ui .mw-none-m{max-width:none}}@media screen and (min-width:60em){.swagger-ui .mw-100-l{max-width:100%}.swagger-ui .mw1-l{max-width:1rem}.swagger-ui .mw2-l{max-width:2rem}.swagger-ui .mw3-l{max-width:4rem}.swagger-ui .mw4-l{max-width:8rem}.swagger-ui .mw5-l{max-width:16rem}.swagger-ui .mw6-l{max-width:32rem}.swagger-ui .mw7-l{max-width:48rem}.swagger-ui .mw8-l{max-width:64rem}.swagger-ui .mw9-l{max-width:96rem}.swagger-ui .mw-none-l{max-width:none}}.swagger-ui .w1{width:1rem}.swagger-ui .w2{width:2rem}.swagger-ui .w3{width:4rem}.swagger-ui .w4{width:8rem}.swagger-ui .w5{width:16rem}.swagger-ui .w-10{width:10%}.swagger-ui .w-20{width:20%}.swagger-ui .w-25{width:25%}.swagger-ui .w-30{width:30%}.swagger-ui .w-33{width:33%}.swagger-ui .w-34{width:34%}.swagger-ui .w-40{width:40%}.swagger-ui .w-50{width:50%}.swagger-ui .w-60{width:60%}.swagger-ui .w-70{width:70%}.swagger-ui .w-75{width:75%}.swagger-ui .w-80{width:80%}.swagger-ui .w-90{width:90%}.swagger-ui .w-100{width:100%}.swagger-ui .w-third{width:33.33333%}.swagger-ui .w-two-thirds{width:66.66667%}.swagger-ui .w-auto{width:auto}@media screen and (min-width:30em){.swagger-ui .w1-ns{width:1rem}.swagger-ui .w2-ns{width:2rem}.swagger-ui .w3-ns{width:4rem}.swagger-ui .w4-ns{width:8rem}.swagger-ui .w5-ns{width:16rem}.swagger-ui .w-10-ns{width:10%}.swagger-ui .w-20-ns{width:20%}.swagger-ui .w-25-ns{width:25%}.swagger-ui .w-30-ns{width:30%}.swagger-ui .w-33-ns{width:33%}.swagger-ui .w-34-ns{width:34%}.swagger-ui .w-40-ns{width:40%}.swagger-ui .w-50-ns{width:50%}.swagger-ui .w-60-ns{width:60%}.swagger-ui .w-70-ns{width:70%}.swagger-ui .w-75-ns{width:75%}.swagger-ui .w-80-ns{width:80%}.swagger-ui .w-90-ns{width:90%}.swagger-ui .w-100-ns{width:100%}.swagger-ui .w-third-ns{width:33.33333%}.swagger-ui .w-two-thirds-ns{width:66.66667%}.swagger-ui .w-auto-ns{width:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .w1-m{width:1rem}.swagger-ui .w2-m{width:2rem}.swagger-ui .w3-m{width:4rem}.swagger-ui .w4-m{width:8rem}.swagger-ui .w5-m{width:16rem}.swagger-ui .w-10-m{width:10%}.swagger-ui .w-20-m{width:20%}.swagger-ui .w-25-m{width:25%}.swagger-ui .w-30-m{width:30%}.swagger-ui .w-33-m{width:33%}.swagger-ui .w-34-m{width:34%}.swagger-ui .w-40-m{width:40%}.swagger-ui .w-50-m{width:50%}.swagger-ui .w-60-m{width:60%}.swagger-ui .w-70-m{width:70%}.swagger-ui .w-75-m{width:75%}.swagger-ui .w-80-m{width:80%}.swagger-ui .w-90-m{width:90%}.swagger-ui .w-100-m{width:100%}.swagger-ui .w-third-m{width:33.33333%}.swagger-ui .w-two-thirds-m{width:66.66667%}.swagger-ui .w-auto-m{width:auto}}@media screen and (min-width:60em){.swagger-ui .w1-l{width:1rem}.swagger-ui .w2-l{width:2rem}.swagger-ui .w3-l{width:4rem}.swagger-ui .w4-l{width:8rem}.swagger-ui .w5-l{width:16rem}.swagger-ui .w-10-l{width:10%}.swagger-ui .w-20-l{width:20%}.swagger-ui .w-25-l{width:25%}.swagger-ui .w-30-l{width:30%}.swagger-ui .w-33-l{width:33%}.swagger-ui .w-34-l{width:34%}.swagger-ui .w-40-l{width:40%}.swagger-ui .w-50-l{width:50%}.swagger-ui .w-60-l{width:60%}.swagger-ui .w-70-l{width:70%}.swagger-ui .w-75-l{width:75%}.swagger-ui .w-80-l{width:80%}.swagger-ui .w-90-l{width:90%}.swagger-ui .w-100-l{width:100%}.swagger-ui .w-third-l{width:33.33333%}.swagger-ui .w-two-thirds-l{width:66.66667%}.swagger-ui .w-auto-l{width:auto}}.swagger-ui .overflow-visible{overflow:visible}.swagger-ui .overflow-hidden{overflow:hidden}.swagger-ui .overflow-scroll{overflow:scroll}.swagger-ui .overflow-auto{overflow:auto}.swagger-ui .overflow-x-visible{overflow-x:visible}.swagger-ui .overflow-x-hidden{overflow-x:hidden}.swagger-ui .overflow-x-scroll{overflow-x:scroll}.swagger-ui .overflow-x-auto{overflow-x:auto}.swagger-ui .overflow-y-visible{overflow-y:visible}.swagger-ui .overflow-y-hidden{overflow-y:hidden}.swagger-ui .overflow-y-scroll{overflow-y:scroll}.swagger-ui .overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.swagger-ui .overflow-visible-ns{overflow:visible}.swagger-ui .overflow-hidden-ns{overflow:hidden}.swagger-ui .overflow-scroll-ns{overflow:scroll}.swagger-ui .overflow-auto-ns{overflow:auto}.swagger-ui .overflow-x-visible-ns{overflow-x:visible}.swagger-ui .overflow-x-hidden-ns{overflow-x:hidden}.swagger-ui .overflow-x-scroll-ns{overflow-x:scroll}.swagger-ui .overflow-x-auto-ns{overflow-x:auto}.swagger-ui .overflow-y-visible-ns{overflow-y:visible}.swagger-ui .overflow-y-hidden-ns{overflow-y:hidden}.swagger-ui .overflow-y-scroll-ns{overflow-y:scroll}.swagger-ui .overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .overflow-visible-m{overflow:visible}.swagger-ui .overflow-hidden-m{overflow:hidden}.swagger-ui .overflow-scroll-m{overflow:scroll}.swagger-ui .overflow-auto-m{overflow:auto}.swagger-ui .overflow-x-visible-m{overflow-x:visible}.swagger-ui .overflow-x-hidden-m{overflow-x:hidden}.swagger-ui .overflow-x-scroll-m{overflow-x:scroll}.swagger-ui .overflow-x-auto-m{overflow-x:auto}.swagger-ui .overflow-y-visible-m{overflow-y:visible}.swagger-ui .overflow-y-hidden-m{overflow-y:hidden}.swagger-ui .overflow-y-scroll-m{overflow-y:scroll}.swagger-ui .overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.swagger-ui .overflow-visible-l{overflow:visible}.swagger-ui .overflow-hidden-l{overflow:hidden}.swagger-ui .overflow-scroll-l{overflow:scroll}.swagger-ui .overflow-auto-l{overflow:auto}.swagger-ui .overflow-x-visible-l{overflow-x:visible}.swagger-ui .overflow-x-hidden-l{overflow-x:hidden}.swagger-ui .overflow-x-scroll-l{overflow-x:scroll}.swagger-ui .overflow-x-auto-l{overflow-x:auto}.swagger-ui .overflow-y-visible-l{overflow-y:visible}.swagger-ui .overflow-y-hidden-l{overflow-y:hidden}.swagger-ui .overflow-y-scroll-l{overflow-y:scroll}.swagger-ui .overflow-y-auto-l{overflow-y:auto}}.swagger-ui .static{position:static}.swagger-ui .relative{position:relative}.swagger-ui .absolute{position:absolute}.swagger-ui .fixed{position:fixed}@media screen and (min-width:30em){.swagger-ui .static-ns{position:static}.swagger-ui .relative-ns{position:relative}.swagger-ui .absolute-ns{position:absolute}.swagger-ui .fixed-ns{position:fixed}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .static-m{position:static}.swagger-ui .relative-m{position:relative}.swagger-ui .absolute-m{position:absolute}.swagger-ui .fixed-m{position:fixed}}@media screen and (min-width:60em){.swagger-ui .static-l{position:static}.swagger-ui .relative-l{position:relative}.swagger-ui .absolute-l{position:absolute}.swagger-ui .fixed-l{position:fixed}}.swagger-ui .o-100{opacity:1}.swagger-ui .o-90{opacity:.9}.swagger-ui .o-80{opacity:.8}.swagger-ui .o-70{opacity:.7}.swagger-ui .o-60{opacity:.6}.swagger-ui .o-50{opacity:.5}.swagger-ui .o-40{opacity:.4}.swagger-ui .o-30{opacity:.3}.swagger-ui .o-20{opacity:.2}.swagger-ui .o-10{opacity:.1}.swagger-ui .o-05{opacity:.05}.swagger-ui .o-025{opacity:.025}.swagger-ui .o-0{opacity:0}.swagger-ui .rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@media screen and (min-width:30em){.swagger-ui .rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:60em){.swagger-ui .rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}.swagger-ui .black-90{color:rgba(0,0,0,.9)}.swagger-ui .black-80{color:rgba(0,0,0,.8)}.swagger-ui .black-70{color:rgba(0,0,0,.7)}.swagger-ui .black-60{color:rgba(0,0,0,.6)}.swagger-ui .black-50{color:rgba(0,0,0,.5)}.swagger-ui .black-40{color:rgba(0,0,0,.4)}.swagger-ui .black-30{color:rgba(0,0,0,.3)}.swagger-ui .black-20{color:rgba(0,0,0,.2)}.swagger-ui .black-10{color:rgba(0,0,0,.1)}.swagger-ui .black-05{color:rgba(0,0,0,.05)}.swagger-ui .white-90{color:hsla(0,0%,100%,.9)}.swagger-ui .white-80{color:hsla(0,0%,100%,.8)}.swagger-ui .white-70{color:hsla(0,0%,100%,.7)}.swagger-ui .white-60{color:hsla(0,0%,100%,.6)}.swagger-ui .white-50{color:hsla(0,0%,100%,.5)}.swagger-ui .white-40{color:hsla(0,0%,100%,.4)}.swagger-ui .white-30{color:hsla(0,0%,100%,.3)}.swagger-ui .white-20{color:hsla(0,0%,100%,.2)}.swagger-ui .white-10{color:hsla(0,0%,100%,.1)}.swagger-ui .black{color:#000}.swagger-ui .near-black{color:#111}.swagger-ui .dark-gray{color:#333}.swagger-ui .mid-gray{color:#555}.swagger-ui .gray{color:#777}.swagger-ui .silver{color:#999}.swagger-ui .light-silver{color:#aaa}.swagger-ui .moon-gray{color:#ccc}.swagger-ui .light-gray{color:#eee}.swagger-ui .near-white{color:#f4f4f4}.swagger-ui .white{color:#fff}.swagger-ui .dark-red{color:#e7040f}.swagger-ui .red{color:#ff4136}.swagger-ui .light-red{color:#ff725c}.swagger-ui .orange{color:#ff6300}.swagger-ui .gold{color:#ffb700}.swagger-ui .yellow{color:gold}.swagger-ui .light-yellow{color:#fbf1a9}.swagger-ui .purple{color:#5e2ca5}.swagger-ui .light-purple{color:#a463f2}.swagger-ui .dark-pink{color:#d5008f}.swagger-ui .hot-pink{color:#ff41b4}.swagger-ui .pink{color:#ff80cc}.swagger-ui .light-pink{color:#ffa3d7}.swagger-ui .dark-green{color:#137752}.swagger-ui .green{color:#19a974}.swagger-ui .light-green{color:#9eebcf}.swagger-ui .navy{color:#001b44}.swagger-ui .dark-blue{color:#00449e}.swagger-ui .blue{color:#357edd}.swagger-ui .light-blue{color:#96ccff}.swagger-ui .lightest-blue{color:#cdecff}.swagger-ui .washed-blue{color:#f6fffe}.swagger-ui .washed-green{color:#e8fdf5}.swagger-ui .washed-yellow{color:#fffceb}.swagger-ui .washed-red{color:#ffdfdf}.swagger-ui .color-inherit{color:inherit}.swagger-ui .bg-black-90{background-color:rgba(0,0,0,.9)}.swagger-ui .bg-black-80{background-color:rgba(0,0,0,.8)}.swagger-ui .bg-black-70{background-color:rgba(0,0,0,.7)}.swagger-ui .bg-black-60{background-color:rgba(0,0,0,.6)}.swagger-ui .bg-black-50{background-color:rgba(0,0,0,.5)}.swagger-ui .bg-black-40{background-color:rgba(0,0,0,.4)}.swagger-ui .bg-black-30{background-color:rgba(0,0,0,.3)}.swagger-ui .bg-black-20{background-color:rgba(0,0,0,.2)}.swagger-ui .bg-black-10{background-color:rgba(0,0,0,.1)}.swagger-ui .bg-black-05{background-color:rgba(0,0,0,.05)}.swagger-ui .bg-white-90{background-color:hsla(0,0%,100%,.9)}.swagger-ui .bg-white-80{background-color:hsla(0,0%,100%,.8)}.swagger-ui .bg-white-70{background-color:hsla(0,0%,100%,.7)}.swagger-ui .bg-white-60{background-color:hsla(0,0%,100%,.6)}.swagger-ui .bg-white-50{background-color:hsla(0,0%,100%,.5)}.swagger-ui .bg-white-40{background-color:hsla(0,0%,100%,.4)}.swagger-ui .bg-white-30{background-color:hsla(0,0%,100%,.3)}.swagger-ui .bg-white-20{background-color:hsla(0,0%,100%,.2)}.swagger-ui .bg-white-10{background-color:hsla(0,0%,100%,.1)}.swagger-ui .bg-black{background-color:#000}.swagger-ui .bg-near-black{background-color:#111}.swagger-ui .bg-dark-gray{background-color:#333}.swagger-ui .bg-mid-gray{background-color:#555}.swagger-ui .bg-gray{background-color:#777}.swagger-ui .bg-silver{background-color:#999}.swagger-ui .bg-light-silver{background-color:#aaa}.swagger-ui .bg-moon-gray{background-color:#ccc}.swagger-ui .bg-light-gray{background-color:#eee}.swagger-ui .bg-near-white{background-color:#f4f4f4}.swagger-ui .bg-white{background-color:#fff}.swagger-ui .bg-transparent{background-color:transparent}.swagger-ui .bg-dark-red{background-color:#e7040f}.swagger-ui .bg-red{background-color:#ff4136}.swagger-ui .bg-light-red{background-color:#ff725c}.swagger-ui .bg-orange{background-color:#ff6300}.swagger-ui .bg-gold{background-color:#ffb700}.swagger-ui .bg-yellow{background-color:gold}.swagger-ui .bg-light-yellow{background-color:#fbf1a9}.swagger-ui .bg-purple{background-color:#5e2ca5}.swagger-ui .bg-light-purple{background-color:#a463f2}.swagger-ui .bg-dark-pink{background-color:#d5008f}.swagger-ui .bg-hot-pink{background-color:#ff41b4}.swagger-ui .bg-pink{background-color:#ff80cc}.swagger-ui .bg-light-pink{background-color:#ffa3d7}.swagger-ui .bg-dark-green{background-color:#137752}.swagger-ui .bg-green{background-color:#19a974}.swagger-ui .bg-light-green{background-color:#9eebcf}.swagger-ui .bg-navy{background-color:#001b44}.swagger-ui .bg-dark-blue{background-color:#00449e}.swagger-ui .bg-blue{background-color:#357edd}.swagger-ui .bg-light-blue{background-color:#96ccff}.swagger-ui .bg-lightest-blue{background-color:#cdecff}.swagger-ui .bg-washed-blue{background-color:#f6fffe}.swagger-ui .bg-washed-green{background-color:#e8fdf5}.swagger-ui .bg-washed-yellow{background-color:#fffceb}.swagger-ui .bg-washed-red{background-color:#ffdfdf}.swagger-ui .bg-inherit{background-color:inherit}.swagger-ui .hover-black:focus,.swagger-ui .hover-black:hover{color:#000}.swagger-ui .hover-near-black:focus,.swagger-ui .hover-near-black:hover{color:#111}.swagger-ui .hover-dark-gray:focus,.swagger-ui .hover-dark-gray:hover{color:#333}.swagger-ui .hover-mid-gray:focus,.swagger-ui .hover-mid-gray:hover{color:#555}.swagger-ui .hover-gray:focus,.swagger-ui .hover-gray:hover{color:#777}.swagger-ui .hover-silver:focus,.swagger-ui .hover-silver:hover{color:#999}.swagger-ui .hover-light-silver:focus,.swagger-ui .hover-light-silver:hover{color:#aaa}.swagger-ui .hover-moon-gray:focus,.swagger-ui .hover-moon-gray:hover{color:#ccc}.swagger-ui .hover-light-gray:focus,.swagger-ui .hover-light-gray:hover{color:#eee}.swagger-ui .hover-near-white:focus,.swagger-ui .hover-near-white:hover{color:#f4f4f4}.swagger-ui .hover-white:focus,.swagger-ui .hover-white:hover{color:#fff}.swagger-ui .hover-black-90:focus,.swagger-ui .hover-black-90:hover{color:rgba(0,0,0,.9)}.swagger-ui .hover-black-80:focus,.swagger-ui .hover-black-80:hover{color:rgba(0,0,0,.8)}.swagger-ui .hover-black-70:focus,.swagger-ui .hover-black-70:hover{color:rgba(0,0,0,.7)}.swagger-ui .hover-black-60:focus,.swagger-ui .hover-black-60:hover{color:rgba(0,0,0,.6)}.swagger-ui .hover-black-50:focus,.swagger-ui .hover-black-50:hover{color:rgba(0,0,0,.5)}.swagger-ui .hover-black-40:focus,.swagger-ui .hover-black-40:hover{color:rgba(0,0,0,.4)}.swagger-ui .hover-black-30:focus,.swagger-ui .hover-black-30:hover{color:rgba(0,0,0,.3)}.swagger-ui .hover-black-20:focus,.swagger-ui .hover-black-20:hover{color:rgba(0,0,0,.2)}.swagger-ui .hover-black-10:focus,.swagger-ui .hover-black-10:hover{color:rgba(0,0,0,.1)}.swagger-ui .hover-white-90:focus,.swagger-ui .hover-white-90:hover{color:hsla(0,0%,100%,.9)}.swagger-ui .hover-white-80:focus,.swagger-ui .hover-white-80:hover{color:hsla(0,0%,100%,.8)}.swagger-ui .hover-white-70:focus,.swagger-ui .hover-white-70:hover{color:hsla(0,0%,100%,.7)}.swagger-ui .hover-white-60:focus,.swagger-ui .hover-white-60:hover{color:hsla(0,0%,100%,.6)}.swagger-ui .hover-white-50:focus,.swagger-ui .hover-white-50:hover{color:hsla(0,0%,100%,.5)}.swagger-ui .hover-white-40:focus,.swagger-ui .hover-white-40:hover{color:hsla(0,0%,100%,.4)}.swagger-ui .hover-white-30:focus,.swagger-ui .hover-white-30:hover{color:hsla(0,0%,100%,.3)}.swagger-ui .hover-white-20:focus,.swagger-ui .hover-white-20:hover{color:hsla(0,0%,100%,.2)}.swagger-ui .hover-white-10:focus,.swagger-ui .hover-white-10:hover{color:hsla(0,0%,100%,.1)}.swagger-ui .hover-inherit:focus,.swagger-ui .hover-inherit:hover{color:inherit}.swagger-ui .hover-bg-black:focus,.swagger-ui .hover-bg-black:hover{background-color:#000}.swagger-ui .hover-bg-near-black:focus,.swagger-ui .hover-bg-near-black:hover{background-color:#111}.swagger-ui .hover-bg-dark-gray:focus,.swagger-ui .hover-bg-dark-gray:hover{background-color:#333}.swagger-ui .hover-bg-mid-gray:focus,.swagger-ui .hover-bg-mid-gray:hover{background-color:#555}.swagger-ui .hover-bg-gray:focus,.swagger-ui .hover-bg-gray:hover{background-color:#777}.swagger-ui .hover-bg-silver:focus,.swagger-ui .hover-bg-silver:hover{background-color:#999}.swagger-ui .hover-bg-light-silver:focus,.swagger-ui .hover-bg-light-silver:hover{background-color:#aaa}.swagger-ui .hover-bg-moon-gray:focus,.swagger-ui .hover-bg-moon-gray:hover{background-color:#ccc}.swagger-ui .hover-bg-light-gray:focus,.swagger-ui .hover-bg-light-gray:hover{background-color:#eee}.swagger-ui .hover-bg-near-white:focus,.swagger-ui .hover-bg-near-white:hover{background-color:#f4f4f4}.swagger-ui .hover-bg-white:focus,.swagger-ui .hover-bg-white:hover{background-color:#fff}.swagger-ui .hover-bg-transparent:focus,.swagger-ui .hover-bg-transparent:hover{background-color:transparent}.swagger-ui .hover-bg-black-90:focus,.swagger-ui .hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.swagger-ui .hover-bg-black-80:focus,.swagger-ui .hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.swagger-ui .hover-bg-black-70:focus,.swagger-ui .hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.swagger-ui .hover-bg-black-60:focus,.swagger-ui .hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.swagger-ui .hover-bg-black-50:focus,.swagger-ui .hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.swagger-ui .hover-bg-black-40:focus,.swagger-ui .hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.swagger-ui .hover-bg-black-30:focus,.swagger-ui .hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.swagger-ui .hover-bg-black-20:focus,.swagger-ui .hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.swagger-ui .hover-bg-black-10:focus,.swagger-ui .hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.swagger-ui .hover-bg-white-90:focus,.swagger-ui .hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.swagger-ui .hover-bg-white-80:focus,.swagger-ui .hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.swagger-ui .hover-bg-white-70:focus,.swagger-ui .hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.swagger-ui .hover-bg-white-60:focus,.swagger-ui .hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.swagger-ui .hover-bg-white-50:focus,.swagger-ui .hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.swagger-ui .hover-bg-white-40:focus,.swagger-ui .hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.swagger-ui .hover-bg-white-30:focus,.swagger-ui .hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.swagger-ui .hover-bg-white-20:focus,.swagger-ui .hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.swagger-ui .hover-bg-white-10:focus,.swagger-ui .hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.swagger-ui .hover-dark-red:focus,.swagger-ui .hover-dark-red:hover{color:#e7040f}.swagger-ui .hover-red:focus,.swagger-ui .hover-red:hover{color:#ff4136}.swagger-ui .hover-light-red:focus,.swagger-ui .hover-light-red:hover{color:#ff725c}.swagger-ui .hover-orange:focus,.swagger-ui .hover-orange:hover{color:#ff6300}.swagger-ui .hover-gold:focus,.swagger-ui .hover-gold:hover{color:#ffb700}.swagger-ui .hover-yellow:focus,.swagger-ui .hover-yellow:hover{color:gold}.swagger-ui .hover-light-yellow:focus,.swagger-ui .hover-light-yellow:hover{color:#fbf1a9}.swagger-ui .hover-purple:focus,.swagger-ui .hover-purple:hover{color:#5e2ca5}.swagger-ui .hover-light-purple:focus,.swagger-ui .hover-light-purple:hover{color:#a463f2}.swagger-ui .hover-dark-pink:focus,.swagger-ui .hover-dark-pink:hover{color:#d5008f}.swagger-ui .hover-hot-pink:focus,.swagger-ui .hover-hot-pink:hover{color:#ff41b4}.swagger-ui .hover-pink:focus,.swagger-ui .hover-pink:hover{color:#ff80cc}.swagger-ui .hover-light-pink:focus,.swagger-ui .hover-light-pink:hover{color:#ffa3d7}.swagger-ui .hover-dark-green:focus,.swagger-ui .hover-dark-green:hover{color:#137752}.swagger-ui .hover-green:focus,.swagger-ui .hover-green:hover{color:#19a974}.swagger-ui .hover-light-green:focus,.swagger-ui .hover-light-green:hover{color:#9eebcf}.swagger-ui .hover-navy:focus,.swagger-ui .hover-navy:hover{color:#001b44}.swagger-ui .hover-dark-blue:focus,.swagger-ui .hover-dark-blue:hover{color:#00449e}.swagger-ui .hover-blue:focus,.swagger-ui .hover-blue:hover{color:#357edd}.swagger-ui .hover-light-blue:focus,.swagger-ui .hover-light-blue:hover{color:#96ccff}.swagger-ui .hover-lightest-blue:focus,.swagger-ui .hover-lightest-blue:hover{color:#cdecff}.swagger-ui .hover-washed-blue:focus,.swagger-ui .hover-washed-blue:hover{color:#f6fffe}.swagger-ui .hover-washed-green:focus,.swagger-ui .hover-washed-green:hover{color:#e8fdf5}.swagger-ui .hover-washed-yellow:focus,.swagger-ui .hover-washed-yellow:hover{color:#fffceb}.swagger-ui .hover-washed-red:focus,.swagger-ui .hover-washed-red:hover{color:#ffdfdf}.swagger-ui .hover-bg-dark-red:focus,.swagger-ui .hover-bg-dark-red:hover{background-color:#e7040f}.swagger-ui .hover-bg-red:focus,.swagger-ui .hover-bg-red:hover{background-color:#ff4136}.swagger-ui .hover-bg-light-red:focus,.swagger-ui .hover-bg-light-red:hover{background-color:#ff725c}.swagger-ui .hover-bg-orange:focus,.swagger-ui .hover-bg-orange:hover{background-color:#ff6300}.swagger-ui .hover-bg-gold:focus,.swagger-ui .hover-bg-gold:hover{background-color:#ffb700}.swagger-ui .hover-bg-yellow:focus,.swagger-ui .hover-bg-yellow:hover{background-color:gold}.swagger-ui .hover-bg-light-yellow:focus,.swagger-ui .hover-bg-light-yellow:hover{background-color:#fbf1a9}.swagger-ui .hover-bg-purple:focus,.swagger-ui .hover-bg-purple:hover{background-color:#5e2ca5}.swagger-ui .hover-bg-light-purple:focus,.swagger-ui .hover-bg-light-purple:hover{background-color:#a463f2}.swagger-ui .hover-bg-dark-pink:focus,.swagger-ui .hover-bg-dark-pink:hover{background-color:#d5008f}.swagger-ui .hover-bg-hot-pink:focus,.swagger-ui .hover-bg-hot-pink:hover{background-color:#ff41b4}.swagger-ui .hover-bg-pink:focus,.swagger-ui .hover-bg-pink:hover{background-color:#ff80cc}.swagger-ui .hover-bg-light-pink:focus,.swagger-ui .hover-bg-light-pink:hover{background-color:#ffa3d7}.swagger-ui .hover-bg-dark-green:focus,.swagger-ui .hover-bg-dark-green:hover{background-color:#137752}.swagger-ui .hover-bg-green:focus,.swagger-ui .hover-bg-green:hover{background-color:#19a974}.swagger-ui .hover-bg-light-green:focus,.swagger-ui .hover-bg-light-green:hover{background-color:#9eebcf}.swagger-ui .hover-bg-navy:focus,.swagger-ui .hover-bg-navy:hover{background-color:#001b44}.swagger-ui .hover-bg-dark-blue:focus,.swagger-ui .hover-bg-dark-blue:hover{background-color:#00449e}.swagger-ui .hover-bg-blue:focus,.swagger-ui .hover-bg-blue:hover{background-color:#357edd}.swagger-ui .hover-bg-light-blue:focus,.swagger-ui .hover-bg-light-blue:hover{background-color:#96ccff}.swagger-ui .hover-bg-lightest-blue:focus,.swagger-ui .hover-bg-lightest-blue:hover{background-color:#cdecff}.swagger-ui .hover-bg-washed-blue:focus,.swagger-ui .hover-bg-washed-blue:hover{background-color:#f6fffe}.swagger-ui .hover-bg-washed-green:focus,.swagger-ui .hover-bg-washed-green:hover{background-color:#e8fdf5}.swagger-ui .hover-bg-washed-yellow:focus,.swagger-ui .hover-bg-washed-yellow:hover{background-color:#fffceb}.swagger-ui .hover-bg-washed-red:focus,.swagger-ui .hover-bg-washed-red:hover{background-color:#ffdfdf}.swagger-ui .hover-bg-inherit:focus,.swagger-ui .hover-bg-inherit:hover{background-color:inherit}.swagger-ui .pa0{padding:0}.swagger-ui .pa1{padding:.25rem}.swagger-ui .pa2{padding:.5rem}.swagger-ui .pa3{padding:1rem}.swagger-ui .pa4{padding:2rem}.swagger-ui .pa5{padding:4rem}.swagger-ui .pa6{padding:8rem}.swagger-ui .pa7{padding:16rem}.swagger-ui .pl0{padding-left:0}.swagger-ui .pl1{padding-left:.25rem}.swagger-ui .pl2{padding-left:.5rem}.swagger-ui .pl3{padding-left:1rem}.swagger-ui .pl4{padding-left:2rem}.swagger-ui .pl5{padding-left:4rem}.swagger-ui .pl6{padding-left:8rem}.swagger-ui .pl7{padding-left:16rem}.swagger-ui .pr0{padding-right:0}.swagger-ui .pr1{padding-right:.25rem}.swagger-ui .pr2{padding-right:.5rem}.swagger-ui .pr3{padding-right:1rem}.swagger-ui .pr4{padding-right:2rem}.swagger-ui .pr5{padding-right:4rem}.swagger-ui .pr6{padding-right:8rem}.swagger-ui .pr7{padding-right:16rem}.swagger-ui .pb0{padding-bottom:0}.swagger-ui .pb1{padding-bottom:.25rem}.swagger-ui .pb2{padding-bottom:.5rem}.swagger-ui .pb3{padding-bottom:1rem}.swagger-ui .pb4{padding-bottom:2rem}.swagger-ui .pb5{padding-bottom:4rem}.swagger-ui .pb6{padding-bottom:8rem}.swagger-ui .pb7{padding-bottom:16rem}.swagger-ui .pt0{padding-top:0}.swagger-ui .pt1{padding-top:.25rem}.swagger-ui .pt2{padding-top:.5rem}.swagger-ui .pt3{padding-top:1rem}.swagger-ui .pt4{padding-top:2rem}.swagger-ui .pt5{padding-top:4rem}.swagger-ui .pt6{padding-top:8rem}.swagger-ui .pt7{padding-top:16rem}.swagger-ui .pv0{padding-top:0;padding-bottom:0}.swagger-ui .pv1{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0{padding-left:0;padding-right:0}.swagger-ui .ph1{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0{margin:0}.swagger-ui .ma1{margin:.25rem}.swagger-ui .ma2{margin:.5rem}.swagger-ui .ma3{margin:1rem}.swagger-ui .ma4{margin:2rem}.swagger-ui .ma5{margin:4rem}.swagger-ui .ma6{margin:8rem}.swagger-ui .ma7{margin:16rem}.swagger-ui .ml0{margin-left:0}.swagger-ui .ml1{margin-left:.25rem}.swagger-ui .ml2{margin-left:.5rem}.swagger-ui .ml3{margin-left:1rem}.swagger-ui .ml4{margin-left:2rem}.swagger-ui .ml5{margin-left:4rem}.swagger-ui .ml6{margin-left:8rem}.swagger-ui .ml7{margin-left:16rem}.swagger-ui .mr0{margin-right:0}.swagger-ui .mr1{margin-right:.25rem}.swagger-ui .mr2{margin-right:.5rem}.swagger-ui .mr3{margin-right:1rem}.swagger-ui .mr4{margin-right:2rem}.swagger-ui .mr5{margin-right:4rem}.swagger-ui .mr6{margin-right:8rem}.swagger-ui .mr7{margin-right:16rem}.swagger-ui .mb0{margin-bottom:0}.swagger-ui .mb1{margin-bottom:.25rem}.swagger-ui .mb2{margin-bottom:.5rem}.swagger-ui .mb3{margin-bottom:1rem}.swagger-ui .mb4{margin-bottom:2rem}.swagger-ui .mb5{margin-bottom:4rem}.swagger-ui .mb6{margin-bottom:8rem}.swagger-ui .mb7{margin-bottom:16rem}.swagger-ui .mt0{margin-top:0}.swagger-ui .mt1{margin-top:.25rem}.swagger-ui .mt2{margin-top:.5rem}.swagger-ui .mt3{margin-top:1rem}.swagger-ui .mt4{margin-top:2rem}.swagger-ui .mt5{margin-top:4rem}.swagger-ui .mt6{margin-top:8rem}.swagger-ui .mt7{margin-top:16rem}.swagger-ui .mv0{margin-top:0;margin-bottom:0}.swagger-ui .mv1{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0{margin-left:0;margin-right:0}.swagger-ui .mh1{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.swagger-ui .pa0-ns{padding:0}.swagger-ui .pa1-ns{padding:.25rem}.swagger-ui .pa2-ns{padding:.5rem}.swagger-ui .pa3-ns{padding:1rem}.swagger-ui .pa4-ns{padding:2rem}.swagger-ui .pa5-ns{padding:4rem}.swagger-ui .pa6-ns{padding:8rem}.swagger-ui .pa7-ns{padding:16rem}.swagger-ui .pl0-ns{padding-left:0}.swagger-ui .pl1-ns{padding-left:.25rem}.swagger-ui .pl2-ns{padding-left:.5rem}.swagger-ui .pl3-ns{padding-left:1rem}.swagger-ui .pl4-ns{padding-left:2rem}.swagger-ui .pl5-ns{padding-left:4rem}.swagger-ui .pl6-ns{padding-left:8rem}.swagger-ui .pl7-ns{padding-left:16rem}.swagger-ui .pr0-ns{padding-right:0}.swagger-ui .pr1-ns{padding-right:.25rem}.swagger-ui .pr2-ns{padding-right:.5rem}.swagger-ui .pr3-ns{padding-right:1rem}.swagger-ui .pr4-ns{padding-right:2rem}.swagger-ui .pr5-ns{padding-right:4rem}.swagger-ui .pr6-ns{padding-right:8rem}.swagger-ui .pr7-ns{padding-right:16rem}.swagger-ui .pb0-ns{padding-bottom:0}.swagger-ui .pb1-ns{padding-bottom:.25rem}.swagger-ui .pb2-ns{padding-bottom:.5rem}.swagger-ui .pb3-ns{padding-bottom:1rem}.swagger-ui .pb4-ns{padding-bottom:2rem}.swagger-ui .pb5-ns{padding-bottom:4rem}.swagger-ui .pb6-ns{padding-bottom:8rem}.swagger-ui .pb7-ns{padding-bottom:16rem}.swagger-ui .pt0-ns{padding-top:0}.swagger-ui .pt1-ns{padding-top:.25rem}.swagger-ui .pt2-ns{padding-top:.5rem}.swagger-ui .pt3-ns{padding-top:1rem}.swagger-ui .pt4-ns{padding-top:2rem}.swagger-ui .pt5-ns{padding-top:4rem}.swagger-ui .pt6-ns{padding-top:8rem}.swagger-ui .pt7-ns{padding-top:16rem}.swagger-ui .pv0-ns{padding-top:0;padding-bottom:0}.swagger-ui .pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-ns{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-ns{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-ns{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-ns{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-ns{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-ns{padding-left:0;padding-right:0}.swagger-ui .ph1-ns{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-ns{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-ns{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-ns{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-ns{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-ns{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-ns{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-ns{margin:0}.swagger-ui .ma1-ns{margin:.25rem}.swagger-ui .ma2-ns{margin:.5rem}.swagger-ui .ma3-ns{margin:1rem}.swagger-ui .ma4-ns{margin:2rem}.swagger-ui .ma5-ns{margin:4rem}.swagger-ui .ma6-ns{margin:8rem}.swagger-ui .ma7-ns{margin:16rem}.swagger-ui .ml0-ns{margin-left:0}.swagger-ui .ml1-ns{margin-left:.25rem}.swagger-ui .ml2-ns{margin-left:.5rem}.swagger-ui .ml3-ns{margin-left:1rem}.swagger-ui .ml4-ns{margin-left:2rem}.swagger-ui .ml5-ns{margin-left:4rem}.swagger-ui .ml6-ns{margin-left:8rem}.swagger-ui .ml7-ns{margin-left:16rem}.swagger-ui .mr0-ns{margin-right:0}.swagger-ui .mr1-ns{margin-right:.25rem}.swagger-ui .mr2-ns{margin-right:.5rem}.swagger-ui .mr3-ns{margin-right:1rem}.swagger-ui .mr4-ns{margin-right:2rem}.swagger-ui .mr5-ns{margin-right:4rem}.swagger-ui .mr6-ns{margin-right:8rem}.swagger-ui .mr7-ns{margin-right:16rem}.swagger-ui .mb0-ns{margin-bottom:0}.swagger-ui .mb1-ns{margin-bottom:.25rem}.swagger-ui .mb2-ns{margin-bottom:.5rem}.swagger-ui .mb3-ns{margin-bottom:1rem}.swagger-ui .mb4-ns{margin-bottom:2rem}.swagger-ui .mb5-ns{margin-bottom:4rem}.swagger-ui .mb6-ns{margin-bottom:8rem}.swagger-ui .mb7-ns{margin-bottom:16rem}.swagger-ui .mt0-ns{margin-top:0}.swagger-ui .mt1-ns{margin-top:.25rem}.swagger-ui .mt2-ns{margin-top:.5rem}.swagger-ui .mt3-ns{margin-top:1rem}.swagger-ui .mt4-ns{margin-top:2rem}.swagger-ui .mt5-ns{margin-top:4rem}.swagger-ui .mt6-ns{margin-top:8rem}.swagger-ui .mt7-ns{margin-top:16rem}.swagger-ui .mv0-ns{margin-top:0;margin-bottom:0}.swagger-ui .mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-ns{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-ns{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-ns{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-ns{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-ns{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-ns{margin-left:0;margin-right:0}.swagger-ui .mh1-ns{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-ns{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-ns{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-ns{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-ns{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-ns{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .pa0-m{padding:0}.swagger-ui .pa1-m{padding:.25rem}.swagger-ui .pa2-m{padding:.5rem}.swagger-ui .pa3-m{padding:1rem}.swagger-ui .pa4-m{padding:2rem}.swagger-ui .pa5-m{padding:4rem}.swagger-ui .pa6-m{padding:8rem}.swagger-ui .pa7-m{padding:16rem}.swagger-ui .pl0-m{padding-left:0}.swagger-ui .pl1-m{padding-left:.25rem}.swagger-ui .pl2-m{padding-left:.5rem}.swagger-ui .pl3-m{padding-left:1rem}.swagger-ui .pl4-m{padding-left:2rem}.swagger-ui .pl5-m{padding-left:4rem}.swagger-ui .pl6-m{padding-left:8rem}.swagger-ui .pl7-m{padding-left:16rem}.swagger-ui .pr0-m{padding-right:0}.swagger-ui .pr1-m{padding-right:.25rem}.swagger-ui .pr2-m{padding-right:.5rem}.swagger-ui .pr3-m{padding-right:1rem}.swagger-ui .pr4-m{padding-right:2rem}.swagger-ui .pr5-m{padding-right:4rem}.swagger-ui .pr6-m{padding-right:8rem}.swagger-ui .pr7-m{padding-right:16rem}.swagger-ui .pb0-m{padding-bottom:0}.swagger-ui .pb1-m{padding-bottom:.25rem}.swagger-ui .pb2-m{padding-bottom:.5rem}.swagger-ui .pb3-m{padding-bottom:1rem}.swagger-ui .pb4-m{padding-bottom:2rem}.swagger-ui .pb5-m{padding-bottom:4rem}.swagger-ui .pb6-m{padding-bottom:8rem}.swagger-ui .pb7-m{padding-bottom:16rem}.swagger-ui .pt0-m{padding-top:0}.swagger-ui .pt1-m{padding-top:.25rem}.swagger-ui .pt2-m{padding-top:.5rem}.swagger-ui .pt3-m{padding-top:1rem}.swagger-ui .pt4-m{padding-top:2rem}.swagger-ui .pt5-m{padding-top:4rem}.swagger-ui .pt6-m{padding-top:8rem}.swagger-ui .pt7-m{padding-top:16rem}.swagger-ui .pv0-m{padding-top:0;padding-bottom:0}.swagger-ui .pv1-m{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-m{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-m{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-m{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-m{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-m{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-m{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-m{padding-left:0;padding-right:0}.swagger-ui .ph1-m{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-m{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-m{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-m{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-m{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-m{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-m{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-m{margin:0}.swagger-ui .ma1-m{margin:.25rem}.swagger-ui .ma2-m{margin:.5rem}.swagger-ui .ma3-m{margin:1rem}.swagger-ui .ma4-m{margin:2rem}.swagger-ui .ma5-m{margin:4rem}.swagger-ui .ma6-m{margin:8rem}.swagger-ui .ma7-m{margin:16rem}.swagger-ui .ml0-m{margin-left:0}.swagger-ui .ml1-m{margin-left:.25rem}.swagger-ui .ml2-m{margin-left:.5rem}.swagger-ui .ml3-m{margin-left:1rem}.swagger-ui .ml4-m{margin-left:2rem}.swagger-ui .ml5-m{margin-left:4rem}.swagger-ui .ml6-m{margin-left:8rem}.swagger-ui .ml7-m{margin-left:16rem}.swagger-ui .mr0-m{margin-right:0}.swagger-ui .mr1-m{margin-right:.25rem}.swagger-ui .mr2-m{margin-right:.5rem}.swagger-ui .mr3-m{margin-right:1rem}.swagger-ui .mr4-m{margin-right:2rem}.swagger-ui .mr5-m{margin-right:4rem}.swagger-ui .mr6-m{margin-right:8rem}.swagger-ui .mr7-m{margin-right:16rem}.swagger-ui .mb0-m{margin-bottom:0}.swagger-ui .mb1-m{margin-bottom:.25rem}.swagger-ui .mb2-m{margin-bottom:.5rem}.swagger-ui .mb3-m{margin-bottom:1rem}.swagger-ui .mb4-m{margin-bottom:2rem}.swagger-ui .mb5-m{margin-bottom:4rem}.swagger-ui .mb6-m{margin-bottom:8rem}.swagger-ui .mb7-m{margin-bottom:16rem}.swagger-ui .mt0-m{margin-top:0}.swagger-ui .mt1-m{margin-top:.25rem}.swagger-ui .mt2-m{margin-top:.5rem}.swagger-ui .mt3-m{margin-top:1rem}.swagger-ui .mt4-m{margin-top:2rem}.swagger-ui .mt5-m{margin-top:4rem}.swagger-ui .mt6-m{margin-top:8rem}.swagger-ui .mt7-m{margin-top:16rem}.swagger-ui .mv0-m{margin-top:0;margin-bottom:0}.swagger-ui .mv1-m{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-m{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-m{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-m{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-m{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-m{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-m{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-m{margin-left:0;margin-right:0}.swagger-ui .mh1-m{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-m{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-m{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-m{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-m{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-m{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.swagger-ui .pa0-l{padding:0}.swagger-ui .pa1-l{padding:.25rem}.swagger-ui .pa2-l{padding:.5rem}.swagger-ui .pa3-l{padding:1rem}.swagger-ui .pa4-l{padding:2rem}.swagger-ui .pa5-l{padding:4rem}.swagger-ui .pa6-l{padding:8rem}.swagger-ui .pa7-l{padding:16rem}.swagger-ui .pl0-l{padding-left:0}.swagger-ui .pl1-l{padding-left:.25rem}.swagger-ui .pl2-l{padding-left:.5rem}.swagger-ui .pl3-l{padding-left:1rem}.swagger-ui .pl4-l{padding-left:2rem}.swagger-ui .pl5-l{padding-left:4rem}.swagger-ui .pl6-l{padding-left:8rem}.swagger-ui .pl7-l{padding-left:16rem}.swagger-ui .pr0-l{padding-right:0}.swagger-ui .pr1-l{padding-right:.25rem}.swagger-ui .pr2-l{padding-right:.5rem}.swagger-ui .pr3-l{padding-right:1rem}.swagger-ui .pr4-l{padding-right:2rem}.swagger-ui .pr5-l{padding-right:4rem}.swagger-ui .pr6-l{padding-right:8rem}.swagger-ui .pr7-l{padding-right:16rem}.swagger-ui .pb0-l{padding-bottom:0}.swagger-ui .pb1-l{padding-bottom:.25rem}.swagger-ui .pb2-l{padding-bottom:.5rem}.swagger-ui .pb3-l{padding-bottom:1rem}.swagger-ui .pb4-l{padding-bottom:2rem}.swagger-ui .pb5-l{padding-bottom:4rem}.swagger-ui .pb6-l{padding-bottom:8rem}.swagger-ui .pb7-l{padding-bottom:16rem}.swagger-ui .pt0-l{padding-top:0}.swagger-ui .pt1-l{padding-top:.25rem}.swagger-ui .pt2-l{padding-top:.5rem}.swagger-ui .pt3-l{padding-top:1rem}.swagger-ui .pt4-l{padding-top:2rem}.swagger-ui .pt5-l{padding-top:4rem}.swagger-ui .pt6-l{padding-top:8rem}.swagger-ui .pt7-l{padding-top:16rem}.swagger-ui .pv0-l{padding-top:0;padding-bottom:0}.swagger-ui .pv1-l{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-l{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-l{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-l{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-l{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-l{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-l{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-l{padding-left:0;padding-right:0}.swagger-ui .ph1-l{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-l{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-l{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-l{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-l{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-l{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-l{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-l{margin:0}.swagger-ui .ma1-l{margin:.25rem}.swagger-ui .ma2-l{margin:.5rem}.swagger-ui .ma3-l{margin:1rem}.swagger-ui .ma4-l{margin:2rem}.swagger-ui .ma5-l{margin:4rem}.swagger-ui .ma6-l{margin:8rem}.swagger-ui .ma7-l{margin:16rem}.swagger-ui .ml0-l{margin-left:0}.swagger-ui .ml1-l{margin-left:.25rem}.swagger-ui .ml2-l{margin-left:.5rem}.swagger-ui .ml3-l{margin-left:1rem}.swagger-ui .ml4-l{margin-left:2rem}.swagger-ui .ml5-l{margin-left:4rem}.swagger-ui .ml6-l{margin-left:8rem}.swagger-ui .ml7-l{margin-left:16rem}.swagger-ui .mr0-l{margin-right:0}.swagger-ui .mr1-l{margin-right:.25rem}.swagger-ui .mr2-l{margin-right:.5rem}.swagger-ui .mr3-l{margin-right:1rem}.swagger-ui .mr4-l{margin-right:2rem}.swagger-ui .mr5-l{margin-right:4rem}.swagger-ui .mr6-l{margin-right:8rem}.swagger-ui .mr7-l{margin-right:16rem}.swagger-ui .mb0-l{margin-bottom:0}.swagger-ui .mb1-l{margin-bottom:.25rem}.swagger-ui .mb2-l{margin-bottom:.5rem}.swagger-ui .mb3-l{margin-bottom:1rem}.swagger-ui .mb4-l{margin-bottom:2rem}.swagger-ui .mb5-l{margin-bottom:4rem}.swagger-ui .mb6-l{margin-bottom:8rem}.swagger-ui .mb7-l{margin-bottom:16rem}.swagger-ui .mt0-l{margin-top:0}.swagger-ui .mt1-l{margin-top:.25rem}.swagger-ui .mt2-l{margin-top:.5rem}.swagger-ui .mt3-l{margin-top:1rem}.swagger-ui .mt4-l{margin-top:2rem}.swagger-ui .mt5-l{margin-top:4rem}.swagger-ui .mt6-l{margin-top:8rem}.swagger-ui .mt7-l{margin-top:16rem}.swagger-ui .mv0-l{margin-top:0;margin-bottom:0}.swagger-ui .mv1-l{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-l{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-l{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-l{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-l{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-l{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-l{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-l{margin-left:0;margin-right:0}.swagger-ui .mh1-l{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-l{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-l{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-l{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-l{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-l{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-l{margin-left:16rem;margin-right:16rem}}.swagger-ui .na1{margin:-.25rem}.swagger-ui .na2{margin:-.5rem}.swagger-ui .na3{margin:-1rem}.swagger-ui .na4{margin:-2rem}.swagger-ui .na5{margin:-4rem}.swagger-ui .na6{margin:-8rem}.swagger-ui .na7{margin:-16rem}.swagger-ui .nl1{margin-left:-.25rem}.swagger-ui .nl2{margin-left:-.5rem}.swagger-ui .nl3{margin-left:-1rem}.swagger-ui .nl4{margin-left:-2rem}.swagger-ui .nl5{margin-left:-4rem}.swagger-ui .nl6{margin-left:-8rem}.swagger-ui .nl7{margin-left:-16rem}.swagger-ui .nr1{margin-right:-.25rem}.swagger-ui .nr2{margin-right:-.5rem}.swagger-ui .nr3{margin-right:-1rem}.swagger-ui .nr4{margin-right:-2rem}.swagger-ui .nr5{margin-right:-4rem}.swagger-ui .nr6{margin-right:-8rem}.swagger-ui .nr7{margin-right:-16rem}.swagger-ui .nb1{margin-bottom:-.25rem}.swagger-ui .nb2{margin-bottom:-.5rem}.swagger-ui .nb3{margin-bottom:-1rem}.swagger-ui .nb4{margin-bottom:-2rem}.swagger-ui .nb5{margin-bottom:-4rem}.swagger-ui .nb6{margin-bottom:-8rem}.swagger-ui .nb7{margin-bottom:-16rem}.swagger-ui .nt1{margin-top:-.25rem}.swagger-ui .nt2{margin-top:-.5rem}.swagger-ui .nt3{margin-top:-1rem}.swagger-ui .nt4{margin-top:-2rem}.swagger-ui .nt5{margin-top:-4rem}.swagger-ui .nt6{margin-top:-8rem}.swagger-ui .nt7{margin-top:-16rem}@media screen and (min-width:30em){.swagger-ui .na1-ns{margin:-.25rem}.swagger-ui .na2-ns{margin:-.5rem}.swagger-ui .na3-ns{margin:-1rem}.swagger-ui .na4-ns{margin:-2rem}.swagger-ui .na5-ns{margin:-4rem}.swagger-ui .na6-ns{margin:-8rem}.swagger-ui .na7-ns{margin:-16rem}.swagger-ui .nl1-ns{margin-left:-.25rem}.swagger-ui .nl2-ns{margin-left:-.5rem}.swagger-ui .nl3-ns{margin-left:-1rem}.swagger-ui .nl4-ns{margin-left:-2rem}.swagger-ui .nl5-ns{margin-left:-4rem}.swagger-ui .nl6-ns{margin-left:-8rem}.swagger-ui .nl7-ns{margin-left:-16rem}.swagger-ui .nr1-ns{margin-right:-.25rem}.swagger-ui .nr2-ns{margin-right:-.5rem}.swagger-ui .nr3-ns{margin-right:-1rem}.swagger-ui .nr4-ns{margin-right:-2rem}.swagger-ui .nr5-ns{margin-right:-4rem}.swagger-ui .nr6-ns{margin-right:-8rem}.swagger-ui .nr7-ns{margin-right:-16rem}.swagger-ui .nb1-ns{margin-bottom:-.25rem}.swagger-ui .nb2-ns{margin-bottom:-.5rem}.swagger-ui .nb3-ns{margin-bottom:-1rem}.swagger-ui .nb4-ns{margin-bottom:-2rem}.swagger-ui .nb5-ns{margin-bottom:-4rem}.swagger-ui .nb6-ns{margin-bottom:-8rem}.swagger-ui .nb7-ns{margin-bottom:-16rem}.swagger-ui .nt1-ns{margin-top:-.25rem}.swagger-ui .nt2-ns{margin-top:-.5rem}.swagger-ui .nt3-ns{margin-top:-1rem}.swagger-ui .nt4-ns{margin-top:-2rem}.swagger-ui .nt5-ns{margin-top:-4rem}.swagger-ui .nt6-ns{margin-top:-8rem}.swagger-ui .nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .na1-m{margin:-.25rem}.swagger-ui .na2-m{margin:-.5rem}.swagger-ui .na3-m{margin:-1rem}.swagger-ui .na4-m{margin:-2rem}.swagger-ui .na5-m{margin:-4rem}.swagger-ui .na6-m{margin:-8rem}.swagger-ui .na7-m{margin:-16rem}.swagger-ui .nl1-m{margin-left:-.25rem}.swagger-ui .nl2-m{margin-left:-.5rem}.swagger-ui .nl3-m{margin-left:-1rem}.swagger-ui .nl4-m{margin-left:-2rem}.swagger-ui .nl5-m{margin-left:-4rem}.swagger-ui .nl6-m{margin-left:-8rem}.swagger-ui .nl7-m{margin-left:-16rem}.swagger-ui .nr1-m{margin-right:-.25rem}.swagger-ui .nr2-m{margin-right:-.5rem}.swagger-ui .nr3-m{margin-right:-1rem}.swagger-ui .nr4-m{margin-right:-2rem}.swagger-ui .nr5-m{margin-right:-4rem}.swagger-ui .nr6-m{margin-right:-8rem}.swagger-ui .nr7-m{margin-right:-16rem}.swagger-ui .nb1-m{margin-bottom:-.25rem}.swagger-ui .nb2-m{margin-bottom:-.5rem}.swagger-ui .nb3-m{margin-bottom:-1rem}.swagger-ui .nb4-m{margin-bottom:-2rem}.swagger-ui .nb5-m{margin-bottom:-4rem}.swagger-ui .nb6-m{margin-bottom:-8rem}.swagger-ui .nb7-m{margin-bottom:-16rem}.swagger-ui .nt1-m{margin-top:-.25rem}.swagger-ui .nt2-m{margin-top:-.5rem}.swagger-ui .nt3-m{margin-top:-1rem}.swagger-ui .nt4-m{margin-top:-2rem}.swagger-ui .nt5-m{margin-top:-4rem}.swagger-ui .nt6-m{margin-top:-8rem}.swagger-ui .nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.swagger-ui .na1-l{margin:-.25rem}.swagger-ui .na2-l{margin:-.5rem}.swagger-ui .na3-l{margin:-1rem}.swagger-ui .na4-l{margin:-2rem}.swagger-ui .na5-l{margin:-4rem}.swagger-ui .na6-l{margin:-8rem}.swagger-ui .na7-l{margin:-16rem}.swagger-ui .nl1-l{margin-left:-.25rem}.swagger-ui .nl2-l{margin-left:-.5rem}.swagger-ui .nl3-l{margin-left:-1rem}.swagger-ui .nl4-l{margin-left:-2rem}.swagger-ui .nl5-l{margin-left:-4rem}.swagger-ui .nl6-l{margin-left:-8rem}.swagger-ui .nl7-l{margin-left:-16rem}.swagger-ui .nr1-l{margin-right:-.25rem}.swagger-ui .nr2-l{margin-right:-.5rem}.swagger-ui .nr3-l{margin-right:-1rem}.swagger-ui .nr4-l{margin-right:-2rem}.swagger-ui .nr5-l{margin-right:-4rem}.swagger-ui .nr6-l{margin-right:-8rem}.swagger-ui .nr7-l{margin-right:-16rem}.swagger-ui .nb1-l{margin-bottom:-.25rem}.swagger-ui .nb2-l{margin-bottom:-.5rem}.swagger-ui .nb3-l{margin-bottom:-1rem}.swagger-ui .nb4-l{margin-bottom:-2rem}.swagger-ui .nb5-l{margin-bottom:-4rem}.swagger-ui .nb6-l{margin-bottom:-8rem}.swagger-ui .nb7-l{margin-bottom:-16rem}.swagger-ui .nt1-l{margin-top:-.25rem}.swagger-ui .nt2-l{margin-top:-.5rem}.swagger-ui .nt3-l{margin-top:-1rem}.swagger-ui .nt4-l{margin-top:-2rem}.swagger-ui .nt5-l{margin-top:-4rem}.swagger-ui .nt6-l{margin-top:-8rem}.swagger-ui .nt7-l{margin-top:-16rem}}.swagger-ui .collapse{border-collapse:collapse;border-spacing:0}.swagger-ui .striped--light-silver:nth-child(odd){background-color:#aaa}.swagger-ui .striped--moon-gray:nth-child(odd){background-color:#ccc}.swagger-ui .striped--light-gray:nth-child(odd){background-color:#eee}.swagger-ui .striped--near-white:nth-child(odd){background-color:#f4f4f4}.swagger-ui .stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.swagger-ui .stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.swagger-ui .strike{text-decoration:line-through}.swagger-ui .underline{text-decoration:underline}.swagger-ui .no-underline{text-decoration:none}@media screen and (min-width:30em){.swagger-ui .strike-ns{text-decoration:line-through}.swagger-ui .underline-ns{text-decoration:underline}.swagger-ui .no-underline-ns{text-decoration:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .strike-m{text-decoration:line-through}.swagger-ui .underline-m{text-decoration:underline}.swagger-ui .no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.swagger-ui .strike-l{text-decoration:line-through}.swagger-ui .underline-l{text-decoration:underline}.swagger-ui .no-underline-l{text-decoration:none}}.swagger-ui .tl{text-align:left}.swagger-ui .tr{text-align:right}.swagger-ui .tc{text-align:center}.swagger-ui .tj{text-align:justify}@media screen and (min-width:30em){.swagger-ui .tl-ns{text-align:left}.swagger-ui .tr-ns{text-align:right}.swagger-ui .tc-ns{text-align:center}.swagger-ui .tj-ns{text-align:justify}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tl-m{text-align:left}.swagger-ui .tr-m{text-align:right}.swagger-ui .tc-m{text-align:center}.swagger-ui .tj-m{text-align:justify}}@media screen and (min-width:60em){.swagger-ui .tl-l{text-align:left}.swagger-ui .tr-l{text-align:right}.swagger-ui .tc-l{text-align:center}.swagger-ui .tj-l{text-align:justify}}.swagger-ui .ttc{text-transform:capitalize}.swagger-ui .ttl{text-transform:lowercase}.swagger-ui .ttu{text-transform:uppercase}.swagger-ui .ttn{text-transform:none}@media screen and (min-width:30em){.swagger-ui .ttc-ns{text-transform:capitalize}.swagger-ui .ttl-ns{text-transform:lowercase}.swagger-ui .ttu-ns{text-transform:uppercase}.swagger-ui .ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ttc-m{text-transform:capitalize}.swagger-ui .ttl-m{text-transform:lowercase}.swagger-ui .ttu-m{text-transform:uppercase}.swagger-ui .ttn-m{text-transform:none}}@media screen and (min-width:60em){.swagger-ui .ttc-l{text-transform:capitalize}.swagger-ui .ttl-l{text-transform:lowercase}.swagger-ui .ttu-l{text-transform:uppercase}.swagger-ui .ttn-l{text-transform:none}}.swagger-ui .f-6,.swagger-ui .f-headline{font-size:6rem}.swagger-ui .f-5,.swagger-ui .f-subheadline{font-size:5rem}.swagger-ui .f1{font-size:3rem}.swagger-ui .f2{font-size:2.25rem}.swagger-ui .f3{font-size:1.5rem}.swagger-ui .f4{font-size:1.25rem}.swagger-ui .f5{font-size:1rem}.swagger-ui .f6{font-size:.875rem}.swagger-ui .f7{font-size:.75rem}@media screen and (min-width:30em){.swagger-ui .f-6-ns,.swagger-ui .f-headline-ns{font-size:6rem}.swagger-ui .f-5-ns,.swagger-ui .f-subheadline-ns{font-size:5rem}.swagger-ui .f1-ns{font-size:3rem}.swagger-ui .f2-ns{font-size:2.25rem}.swagger-ui .f3-ns{font-size:1.5rem}.swagger-ui .f4-ns{font-size:1.25rem}.swagger-ui .f5-ns{font-size:1rem}.swagger-ui .f6-ns{font-size:.875rem}.swagger-ui .f7-ns{font-size:.75rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .f-6-m,.swagger-ui .f-headline-m{font-size:6rem}.swagger-ui .f-5-m,.swagger-ui .f-subheadline-m{font-size:5rem}.swagger-ui .f1-m{font-size:3rem}.swagger-ui .f2-m{font-size:2.25rem}.swagger-ui .f3-m{font-size:1.5rem}.swagger-ui .f4-m{font-size:1.25rem}.swagger-ui .f5-m{font-size:1rem}.swagger-ui .f6-m{font-size:.875rem}.swagger-ui .f7-m{font-size:.75rem}}@media screen and (min-width:60em){.swagger-ui .f-6-l,.swagger-ui .f-headline-l{font-size:6rem}.swagger-ui .f-5-l,.swagger-ui .f-subheadline-l{font-size:5rem}.swagger-ui .f1-l{font-size:3rem}.swagger-ui .f2-l{font-size:2.25rem}.swagger-ui .f3-l{font-size:1.5rem}.swagger-ui .f4-l{font-size:1.25rem}.swagger-ui .f5-l{font-size:1rem}.swagger-ui .f6-l{font-size:.875rem}.swagger-ui .f7-l{font-size:.75rem}}.swagger-ui .measure{max-width:30em}.swagger-ui .measure-wide{max-width:34em}.swagger-ui .measure-narrow{max-width:20em}.swagger-ui .indent{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps{font-variant:small-caps}.swagger-ui .truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (min-width:30em){.swagger-ui .measure-ns{max-width:30em}.swagger-ui .measure-wide-ns{max-width:34em}.swagger-ui .measure-narrow-ns{max-width:20em}.swagger-ui .indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-ns{font-variant:small-caps}.swagger-ui .truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .measure-m{max-width:30em}.swagger-ui .measure-wide-m{max-width:34em}.swagger-ui .measure-narrow-m{max-width:20em}.swagger-ui .indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-m{font-variant:small-caps}.swagger-ui .truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:60em){.swagger-ui .measure-l{max-width:30em}.swagger-ui .measure-wide-l{max-width:34em}.swagger-ui .measure-narrow-l{max-width:20em}.swagger-ui .indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-l{font-variant:small-caps}.swagger-ui .truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.swagger-ui .overflow-container{overflow-y:scroll}.swagger-ui .center{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto{margin-right:auto}.swagger-ui .ml-auto{margin-left:auto}@media screen and (min-width:30em){.swagger-ui .center-ns{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-ns{margin-right:auto}.swagger-ui .ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .center-m{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-m{margin-right:auto}.swagger-ui .ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.swagger-ui .center-l{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-l{margin-right:auto}.swagger-ui .ml-auto-l{margin-left:auto}}.swagger-ui .clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}@media screen and (min-width:30em){.swagger-ui .clip-ns{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .clip-m{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:60em){.swagger-ui .clip-l{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}.swagger-ui .ws-normal{white-space:normal}.swagger-ui .nowrap{white-space:nowrap}.swagger-ui .pre{white-space:pre}@media screen and (min-width:30em){.swagger-ui .ws-normal-ns{white-space:normal}.swagger-ui .nowrap-ns{white-space:nowrap}.swagger-ui .pre-ns{white-space:pre}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ws-normal-m{white-space:normal}.swagger-ui .nowrap-m{white-space:nowrap}.swagger-ui .pre-m{white-space:pre}}@media screen and (min-width:60em){.swagger-ui .ws-normal-l{white-space:normal}.swagger-ui .nowrap-l{white-space:nowrap}.swagger-ui .pre-l{white-space:pre}}.swagger-ui .v-base{vertical-align:baseline}.swagger-ui .v-mid{vertical-align:middle}.swagger-ui .v-top{vertical-align:top}.swagger-ui .v-btm{vertical-align:bottom}@media screen and (min-width:30em){.swagger-ui .v-base-ns{vertical-align:baseline}.swagger-ui .v-mid-ns{vertical-align:middle}.swagger-ui .v-top-ns{vertical-align:top}.swagger-ui .v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .v-base-m{vertical-align:baseline}.swagger-ui .v-mid-m{vertical-align:middle}.swagger-ui .v-top-m{vertical-align:top}.swagger-ui .v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.swagger-ui .v-base-l{vertical-align:baseline}.swagger-ui .v-mid-l{vertical-align:middle}.swagger-ui .v-top-l{vertical-align:top}.swagger-ui .v-btm-l{vertical-align:bottom}}.swagger-ui .dim{opacity:1;transition:opacity .15s ease-in}.swagger-ui .dim:focus,.swagger-ui .dim:hover{opacity:.5;transition:opacity .15s ease-in}.swagger-ui .dim:active{opacity:.8;transition:opacity .15s ease-out}.swagger-ui .glow{transition:opacity .15s ease-in}.swagger-ui .glow:focus,.swagger-ui .glow:hover{opacity:1;transition:opacity .15s ease-in}.swagger-ui .hide-child .child{opacity:0;transition:opacity .15s ease-in}.swagger-ui .hide-child:active .child,.swagger-ui .hide-child:focus .child,.swagger-ui .hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.swagger-ui .underline-hover:focus,.swagger-ui .underline-hover:hover{text-decoration:underline}.swagger-ui .grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out, -webkit-transform .25s ease-out}.swagger-ui .grow:focus,.swagger-ui .grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.swagger-ui .grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out, -webkit-transform .25s ease-in-out}.swagger-ui .grow-large:focus,.swagger-ui .grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.swagger-ui .grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.swagger-ui .pointer:hover{cursor:pointer}.swagger-ui .shadow-hover{cursor:pointer;position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:focus:after,.swagger-ui .shadow-hover:hover:after{opacity:1}.swagger-ui .bg-animate,.swagger-ui .bg-animate:focus,.swagger-ui .bg-animate:hover{transition:background-color .15s ease-in-out}.swagger-ui .z-0{z-index:0}.swagger-ui .z-1{z-index:1}.swagger-ui .z-2{z-index:2}.swagger-ui .z-3{z-index:3}.swagger-ui .z-4{z-index:4}.swagger-ui .z-5{z-index:5}.swagger-ui .z-999{z-index:999}.swagger-ui .z-9999{z-index:9999}.swagger-ui .z-max{z-index:2147483647}.swagger-ui .z-inherit{z-index:inherit}.swagger-ui .z-initial{z-index:auto}.swagger-ui .z-unset{z-index:unset}.swagger-ui .nested-copy-line-height ol,.swagger-ui .nested-copy-line-height p,.swagger-ui .nested-copy-line-height ul{line-height:1.5}.swagger-ui .nested-headline-line-height h1,.swagger-ui .nested-headline-line-height h2,.swagger-ui .nested-headline-line-height h3,.swagger-ui .nested-headline-line-height h4,.swagger-ui .nested-headline-line-height h5,.swagger-ui .nested-headline-line-height h6{line-height:1.25}.swagger-ui .nested-list-reset ol,.swagger-ui .nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.swagger-ui .nested-copy-indent p+p{text-indent:.1em;margin-top:0;margin-bottom:0}.swagger-ui .nested-copy-seperator p+p{margin-top:1.5em}.swagger-ui .nested-img img{width:100%;max-width:100%;display:block}.swagger-ui .nested-links a{color:#357edd;transition:color .15s ease-in}.swagger-ui .nested-links a:focus,.swagger-ui .nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.swagger-ui .wrapper{width:100%;max-width:1460px;margin:0 auto;padding:0 20px;box-sizing:border-box}.swagger-ui .opblock-tag-section{display:flex;flex-direction:column}.swagger-ui .opblock-tag{display:flex;align-items:center;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{font-size:24px;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-tag.no-desc span{flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{font-size:14px;font-weight:400;flex:1;padding:0 10px;font-family:sans-serif;color:#3b4151}.swagger-ui .parameter__type{font-size:12px;padding:5px 0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .parameter-controls{margin-top:.75em}.swagger-ui .examples__title{display:block;font-size:1.1em;font-weight:700;margin-bottom:.75em}.swagger-ui .examples__section{margin-top:1.5em}.swagger-ui .examples__section-header{font-weight:700;font-size:.9rem;margin-bottom:.5rem}.swagger-ui .examples-select{margin-bottom:.75em}.swagger-ui .examples-select__section-label{font-weight:700;font-size:.9rem;margin-right:.5rem}.swagger-ui .example__section{margin-top:1.5em}.swagger-ui .example__section-header{font-weight:700;font-size:.9rem;margin-bottom:.5rem}.swagger-ui .view-line-link{position:relative;top:3px;width:20px;margin:0 5px;cursor:pointer;transition:all .5s}.swagger-ui .opblock{margin:0 0 15px;border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19)}.swagger-ui .opblock .tab-header{display:flex;flex:1}.swagger-ui .opblock .tab-header .tab-item{padding:0 40px;cursor:pointer}.swagger-ui .opblock .tab-header .tab-item:first-of-type{padding:0 40px 0 0}.swagger-ui .opblock .tab-header .tab-item.active h4 span{position:relative}.swagger-ui .opblock .tab-header .tab-item.active h4 span:after{position:absolute;bottom:-15px;left:50%;width:120%;height:4px;content:"";-webkit-transform:translateX(-50%);transform:translateX(-50%);background:grey}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{display:flex;align-items:center;padding:8px 20px;min-height:50px;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1)}.swagger-ui .opblock .opblock-section-header>label{font-size:12px;font-weight:700;display:flex;align-items:center;margin:0 0 0 auto;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-section-header>label>span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{font-size:14px;flex:1;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary-method{font-size:14px;font-weight:700;min-width:80px;padding:6px 15px;text-align:center;border-radius:3px;background:#000;text-shadow:0 1px 0 rgba(0,0,0,.1);font-family:sans-serif;color:#fff}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:16px;display:flex;align-items:center;word-break:break-word;padding:0 10px;font-family:monospace;font-weight:600;color:#3b4151}@media (max-width:768px){.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:12px}}.swagger-ui .opblock .opblock-summary-path__deprecated{text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{font-size:13px;flex:1 1 auto;word-break:break-word;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary{display:flex;align-items:center;padding:5px;cursor:pointer}.swagger-ui .opblock .opblock-summary .view-line-link{position:relative;top:2px;width:0;margin:0;cursor:pointer;transition:all .5s}.swagger-ui .opblock .opblock-summary:hover .view-line-link{width:18px;margin:0 5px}.swagger-ui .opblock.opblock-post{border-color:#49cc90;background:rgba(73,204,144,.1)}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after{background:#49cc90}.swagger-ui .opblock.opblock-put{border-color:#fca130;background:rgba(252,161,48,.1)}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span:after{background:#fca130}.swagger-ui .opblock.opblock-delete{border-color:#f93e3e;background:rgba(249,62,62,.1)}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span:after{background:#f93e3e}.swagger-ui .opblock.opblock-get{border-color:#61affe;background:rgba(97,175,254,.1)}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span:after{background:#61affe}.swagger-ui .opblock.opblock-patch{border-color:#50e3c2;background:rgba(80,227,194,.1)}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span:after{background:#50e3c2}.swagger-ui .opblock.opblock-head{border-color:#9012fe;background:rgba(144,18,254,.1)}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span:after{background:#9012fe}.swagger-ui .opblock.opblock-options{border-color:#0d5aa7;background:rgba(13,90,167,.1)}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span:after{background:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{opacity:.6;border-color:#ebebeb;background:hsla(0,0%,92.2%,.1)}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span:after{background:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .filter .operation-filter-input{width:100%;margin:20px 0;padding:10px;border:2px solid #d8dde7}.swagger-ui .model-example{margin-top:1em}.swagger-ui .tab{display:flex;padding:0;list-style:none}.swagger-ui .tab li{font-size:12px;min-width:60px;padding:0;cursor:pointer;font-family:sans-serif;color:#3b4151}.swagger-ui .tab li:first-of-type{position:relative;padding-left:0;padding-right:12px}.swagger-ui .tab li:first-of-type:after{position:absolute;top:0;right:6px;width:1px;height:100%;content:"";background:rgba(0,0,0,.2)}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-external-docs-wrapper,.swagger-ui .opblock-title_normal{font-size:12px;margin:0 0 5px;padding:15px 20px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-external-docs-wrapper h4,.swagger-ui .opblock-title_normal h4{font-size:12px;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-external-docs-wrapper p,.swagger-ui .opblock-title_normal p{font-size:14px;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-external-docs-wrapper h4{padding-left:0}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{width:100%;padding:8px 40px}.swagger-ui .body-param-options{display:flex;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{font-size:12px;margin:10px 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_status{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_status .response-undocumented{font-size:11px;font-family:monospace;font-weight:600;color:#909090}.swagger-ui .response-col_links{padding-left:2em;max-width:40em;font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_links .response-undocumented{font-size:11px;font-family:monospace;font-weight:600;color:#909090}.swagger-ui .opblock-body .opblock-loading-animation{display:block;margin:3em auto}.swagger-ui .opblock-body pre{font-size:12px;margin:0;padding:10px;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;border-radius:4px;background:#41444e;overflow-wrap:break-word;font-family:monospace;font-weight:600;color:#fff}.swagger-ui .opblock-body pre span{color:#fff!important}.swagger-ui .opblock-body pre .headerline{display:block}.swagger-ui .highlight-code{position:relative}.swagger-ui .highlight-code>.microlight{overflow-y:auto;max-height:400px;min-height:6em}.swagger-ui .download-contents{position:absolute;bottom:10px;right:10px;cursor:pointer;background:#7d8293;text-align:center;padding:5px;border-radius:4px;font-family:sans-serif;font-weight:600;color:#fff;font-size:14px;height:30px;width:75px}.swagger-ui .scheme-container{margin:0 0 20px;padding:30px 0;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.swagger-ui .scheme-container .schemes{display:flex;align-items:flex-end}.swagger-ui .scheme-container .schemes>label{font-size:12px;font-weight:700;display:flex;flex-direction:column;margin:-20px 15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px;margin-top:1em;min-height:1px;display:flex;justify-content:center;align-items:center;flex-direction:column}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:"loading";-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-transform:uppercase;font-family:sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:"";-webkit-animation:rotation 1s linear infinite,opacity .5s;animation:rotation 1s linear infinite,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}@-webkit-keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.swagger-ui .response-controls{padding-top:1em;display:flex}.swagger-ui .response-control-media-type{margin-right:1em}.swagger-ui .response-control-media-type--accept-controller select{border-color:green}.swagger-ui .response-control-media-type__accept-message{color:green;font-size:.7em}.swagger-ui .response-control-examples__title,.swagger-ui .response-control-media-type__title{display:block;margin-bottom:.2em;font-size:.7em}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.swagger-ui section h3{font-family:sans-serif;color:#3b4151}.swagger-ui a.nostyle{display:inline}.swagger-ui a.nostyle,.swagger-ui a.nostyle:visited{text-decoration:inherit;color:inherit;cursor:pointer}.swagger-ui .version-pragma{height:100%;padding:5em 0}.swagger-ui .version-pragma__message{display:flex;justify-content:center;height:100%;font-size:1.2em;text-align:center;line-height:1.5em;padding:0 .6em}.swagger-ui .version-pragma__message>div{max-width:55ch;flex:1}.swagger-ui .version-pragma__message code{background-color:#dedede;padding:4px 4px 2px;white-space:pre}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid grey;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:sans-serif;color:#3b4151}.swagger-ui .btn.btn-sm{font-size:12px;padding:4px 23px}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;background-color:transparent;font-family:sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90;background-color:transparent}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{background-color:#4990e2;color:#fff;border-color:#4990e2}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#404040}.swagger-ui .expand-methods svg{transition:all .3s;fill:#707070}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui button.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTEzLjQxOCA3Ljg1OWEuNjk1LjY5NSAwIDAgMSAuOTc4IDAgLjY4LjY4IDAgMCAxIDAgLjk2OWwtMy45MDggMy44M2EuNjk3LjY5NyAwIDAgMS0uOTc5IDBsLTMuOTA4LTMuODNhLjY4LjY4IDAgMCAxIDAtLjk2OS42OTUuNjk1IDAgMCAxIC45NzggMEwxMCAxMWwzLjQxOC0zLjE0MXoiLz48L3N2Zz4=) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:sans-serif;color:#3b4151;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui select.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui .opblock-body select{min-width:230px}@media (max-width:768px){.swagger-ui .opblock-body select{min-width:180px}}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}@media (max-width:768px){.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{max-width:175px}}.swagger-ui input[type=email].invalid,.swagger-ui input[type=file].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid,.swagger-ui textarea.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui input[disabled],.swagger-ui select[disabled],.swagger-ui textarea[disabled]{background-color:#fafafa;color:#888;cursor:not-allowed}.swagger-ui select[disabled]{border-color:#888}.swagger-ui textarea[disabled]{background-color:#41444e;color:#fff}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#303030}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;flex:1;font-family:sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .model .deprecated span,.swagger-ui .model .deprecated td{color:#a0a0a0!important}.swagger-ui .model .deprecated>td:first-of-type{text-decoration:line-through}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in, -webkit-transform .15s ease-in;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:"";background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui .model p{margin:0 0 1em}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models h4{font-size:16px;display:flex;align-items:center;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:sans-serif;color:#606060}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:sans-serif;color:#707070}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;position:relative;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-container .models-jump-to-path{position:absolute;top:8px;right:5px;opacity:.65}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;display:inline-block;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-box.deprecated{opacity:.5}.swagger-ui .model-title{font-size:16px;font-family:sans-serif;color:#505050}.swagger-ui .model-deprecated-warning{font-size:16px;font-weight:600;margin-right:1em;font-family:sans-serif;color:#f93e3e}.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-name{display:inline-block;margin-right:1em}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#606060}.swagger-ui .servers>label{font-size:12px;margin:-20px 15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .servers>label select{min-width:130px;max-width:100%}.swagger-ui .servers h4.message{padding-bottom:2em}.swagger-ui .servers table tr{width:30em}.swagger-ui .servers table td{display:inline-block;max-width:15em;vertical-align:middle;padding-top:10px;padding-bottom:10px}.swagger-ui .servers table td:first-of-type{padding-right:2em}.swagger-ui .servers table td input{width:100%;height:100%}.swagger-ui .servers .computed-url{margin:2em 0}.swagger-ui .servers .computed-url code{display:inline-block;padding:4px;font-size:16px;margin:0 1em}.swagger-ui .servers-title{font-size:12px;font-weight:700}.swagger-ui .operation-servers h4.message{margin-bottom:2em}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:174px;padding:0 0 0 2em}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{max-width:20%;min-width:6em;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:sans-serif;color:#3b4151}.swagger-ui .parameters-col_description{width:99%;margin-bottom:2em}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameters-col_description select{border-width:1px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;margin-right:.75em;font-family:sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:"required";color:rgba(255,0,0,.6)}.swagger-ui .parameter__extension,.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:monospace;font-weight:600;color:grey}.swagger-ui .parameter__deprecated{font-size:12px;font-style:italic;font-family:monospace;font-weight:600;color:red}.swagger-ui .parameter__empty_value_toggle{font-size:13px;padding-top:5px;padding-bottom:12px}.swagger-ui .parameter__empty_value_toggle input{margin-right:7px}.swagger-ui .parameter__empty_value_toggle.disabled{opacity:.7}.swagger-ui .table-container{padding:20px}.swagger-ui .response-col_description{width:99%}.swagger-ui .response-col_links{min-width:6em}.swagger-ui .topbar{padding:10px 0;background-color:#1b1b1b}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:flex;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;flex:1;max-width:300px;text-decoration:none;font-family:sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;margin:0;border:2px solid #62a03f;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .select-label{display:flex;align-items:center;width:100%;max-width:600px;margin:0;color:#f0f0f0}.swagger-ui .topbar .download-url-wrapper .select-label span{font-size:16px;flex:1;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{flex:2;width:100%;border:2px solid #62a03f;outline:none;box-shadow:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 30px;border:none;border-radius:0 4px 4px 0;background:#62a03f;font-family:sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info pre{font-size:14px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:sans-serif;color:#3b4151}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;padding:0;font-family:sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:flex;padding:10px 0;justify-content:center}.swagger-ui .auth-btn-wrapper .btn-done{margin-right:1em}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px;margin-right:10px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;-webkit-animation:scaleUp .5s;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#606060}.swagger-ui .errors-wrapper hgroup{display:flex;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;flex:1;font-family:sans-serif;color:#3b4151}@-webkit-keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.swagger-ui .Resizer.vertical.disabled{display:none}.swagger-ui .markdown p,.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown p,.swagger-ui .renderedMarkdown pre{margin:1em auto}.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown pre{color:#000;font-weight:400;white-space:pre-wrap;background:none;padding:0}.swagger-ui .markdown code,.swagger-ui .renderedMarkdown code{font-size:14px;padding:5px 7px;border-radius:4px;background:rgba(0,0,0,.05);font-family:monospace;font-weight:600;color:#9012fe}.swagger-ui .markdown pre>code,.swagger-ui .renderedMarkdown pre>code{display:block}
+  /*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */font-family:sans-serif;color:#3b4151}.swagger-ui html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}.swagger-ui body{margin:0}.swagger-ui article,.swagger-ui aside,.swagger-ui footer,.swagger-ui header,.swagger-ui nav,.swagger-ui section{display:block}.swagger-ui h1{font-size:2em;margin:.67em 0}.swagger-ui figcaption,.swagger-ui figure,.swagger-ui main{display:block}.swagger-ui figure{margin:1em 40px}.swagger-ui hr{box-sizing:content-box;height:0;overflow:visible}.swagger-ui pre{font-family:monospace,monospace;font-size:1em}.swagger-ui a{background-color:transparent;-webkit-text-decoration-skip:objects}.swagger-ui abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.swagger-ui b,.swagger-ui strong{font-weight:inherit;font-weight:bolder}.swagger-ui code,.swagger-ui kbd,.swagger-ui samp{font-family:monospace,monospace;font-size:1em}.swagger-ui dfn{font-style:italic}.swagger-ui mark{background-color:#ff0;color:#000}.swagger-ui small{font-size:80%}.swagger-ui sub,.swagger-ui sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.swagger-ui sub{bottom:-.25em}.swagger-ui sup{top:-.5em}.swagger-ui audio,.swagger-ui video{display:inline-block}.swagger-ui audio:not([controls]){display:none;height:0}.swagger-ui img{border-style:none}.swagger-ui svg:not(:root){overflow:hidden}.swagger-ui button,.swagger-ui input,.swagger-ui optgroup,.swagger-ui select,.swagger-ui textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}.swagger-ui button,.swagger-ui input{overflow:visible}.swagger-ui button,.swagger-ui select{text-transform:none}.swagger-ui [type=reset],.swagger-ui [type=submit],.swagger-ui button,.swagger-ui html [type=button]{-webkit-appearance:button}.swagger-ui [type=button]::-moz-focus-inner,.swagger-ui [type=reset]::-moz-focus-inner,.swagger-ui [type=submit]::-moz-focus-inner,.swagger-ui button::-moz-focus-inner{border-style:none;padding:0}.swagger-ui [type=button]:-moz-focusring,.swagger-ui [type=reset]:-moz-focusring,.swagger-ui [type=submit]:-moz-focusring,.swagger-ui button:-moz-focusring{outline:1px dotted ButtonText}.swagger-ui fieldset{padding:.35em .75em .625em}.swagger-ui legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}.swagger-ui progress{display:inline-block;vertical-align:baseline}.swagger-ui textarea{overflow:auto}.swagger-ui [type=checkbox],.swagger-ui [type=radio]{box-sizing:border-box;padding:0}.swagger-ui [type=number]::-webkit-inner-spin-button,.swagger-ui [type=number]::-webkit-outer-spin-button{height:auto}.swagger-ui [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.swagger-ui [type=search]::-webkit-search-cancel-button,.swagger-ui [type=search]::-webkit-search-decoration{-webkit-appearance:none}.swagger-ui ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.swagger-ui details,.swagger-ui menu{display:block}.swagger-ui summary{display:list-item}.swagger-ui canvas{display:inline-block}.swagger-ui template{display:none}.swagger-ui [hidden]{display:none}.swagger-ui .debug *{outline:1px solid gold}.swagger-ui .debug-white *{outline:1px solid #fff}.swagger-ui .debug-black *{outline:1px solid #000}.swagger-ui .debug-grid{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat 0 0}.swagger-ui .debug-grid-16{background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat 0 0}.swagger-ui .debug-grid-8-solid{background:#fff url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat 0 0}.swagger-ui .debug-grid-16-solid{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat 0 0}.swagger-ui .border-box,.swagger-ui a,.swagger-ui article,.swagger-ui body,.swagger-ui code,.swagger-ui dd,.swagger-ui div,.swagger-ui dl,.swagger-ui dt,.swagger-ui fieldset,.swagger-ui footer,.swagger-ui form,.swagger-ui h1,.swagger-ui h2,.swagger-ui h3,.swagger-ui h4,.swagger-ui h5,.swagger-ui h6,.swagger-ui header,.swagger-ui html,.swagger-ui input[type=email],.swagger-ui input[type=number],.swagger-ui input[type=password],.swagger-ui input[type=tel],.swagger-ui input[type=text],.swagger-ui input[type=url],.swagger-ui legend,.swagger-ui li,.swagger-ui main,.swagger-ui ol,.swagger-ui p,.swagger-ui pre,.swagger-ui section,.swagger-ui table,.swagger-ui td,.swagger-ui textarea,.swagger-ui th,.swagger-ui tr,.swagger-ui ul{box-sizing:border-box}.swagger-ui .aspect-ratio{height:0;position:relative}.swagger-ui .aspect-ratio--16x9{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1{padding-bottom:100%}.swagger-ui .aspect-ratio--object{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}@media screen and (min-width:30em){.swagger-ui .aspect-ratio-ns{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-ns{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-ns{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-ns{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-ns{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-ns{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-ns{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-ns{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-ns{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-ns{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-ns{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-ns{padding-bottom:100%}.swagger-ui .aspect-ratio--object-ns{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .aspect-ratio-m{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-m{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-m{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-m{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-m{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-m{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-m{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-m{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-m{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-m{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-m{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-m{padding-bottom:100%}.swagger-ui .aspect-ratio--object-m{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}@media screen and (min-width:60em){.swagger-ui .aspect-ratio-l{height:0;position:relative}.swagger-ui .aspect-ratio--16x9-l{padding-bottom:56.25%}.swagger-ui .aspect-ratio--9x16-l{padding-bottom:177.77%}.swagger-ui .aspect-ratio--4x3-l{padding-bottom:75%}.swagger-ui .aspect-ratio--3x4-l{padding-bottom:133.33%}.swagger-ui .aspect-ratio--6x4-l{padding-bottom:66.6%}.swagger-ui .aspect-ratio--4x6-l{padding-bottom:150%}.swagger-ui .aspect-ratio--8x5-l{padding-bottom:62.5%}.swagger-ui .aspect-ratio--5x8-l{padding-bottom:160%}.swagger-ui .aspect-ratio--7x5-l{padding-bottom:71.42%}.swagger-ui .aspect-ratio--5x7-l{padding-bottom:140%}.swagger-ui .aspect-ratio--1x1-l{padding-bottom:100%}.swagger-ui .aspect-ratio--object-l{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:100}}.swagger-ui img{max-width:100%}.swagger-ui .cover{background-size:cover!important}.swagger-ui .contain{background-size:contain!important}@media screen and (min-width:30em){.swagger-ui .cover-ns{background-size:cover!important}.swagger-ui .contain-ns{background-size:contain!important}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cover-m{background-size:cover!important}.swagger-ui .contain-m{background-size:contain!important}}@media screen and (min-width:60em){.swagger-ui .cover-l{background-size:cover!important}.swagger-ui .contain-l{background-size:contain!important}}.swagger-ui .bg-center{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left{background-repeat:no-repeat;background-position:0}@media screen and (min-width:30em){.swagger-ui .bg-center-ns{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-ns{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-ns{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-ns{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-ns{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bg-center-m{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-m{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-m{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-m{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-m{background-repeat:no-repeat;background-position:0}}@media screen and (min-width:60em){.swagger-ui .bg-center-l{background-repeat:no-repeat;background-position:50%}.swagger-ui .bg-top-l{background-repeat:no-repeat;background-position:top}.swagger-ui .bg-right-l{background-repeat:no-repeat;background-position:100%}.swagger-ui .bg-bottom-l{background-repeat:no-repeat;background-position:bottom}.swagger-ui .bg-left-l{background-repeat:no-repeat;background-position:0}}.swagger-ui .outline{outline:1px solid}.swagger-ui .outline-transparent{outline:1px solid transparent}.swagger-ui .outline-0{outline:0}@media screen and (min-width:30em){.swagger-ui .outline-ns{outline:1px solid}.swagger-ui .outline-transparent-ns{outline:1px solid transparent}.swagger-ui .outline-0-ns{outline:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .outline-m{outline:1px solid}.swagger-ui .outline-transparent-m{outline:1px solid transparent}.swagger-ui .outline-0-m{outline:0}}@media screen and (min-width:60em){.swagger-ui .outline-l{outline:1px solid}.swagger-ui .outline-transparent-l{outline:1px solid transparent}.swagger-ui .outline-0-l{outline:0}}.swagger-ui .ba{border-style:solid;border-width:1px}.swagger-ui .bt{border-top-style:solid;border-top-width:1px}.swagger-ui .br{border-right-style:solid;border-right-width:1px}.swagger-ui .bb{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl{border-left-style:solid;border-left-width:1px}.swagger-ui .bn{border-style:none;border-width:0}@media screen and (min-width:30em){.swagger-ui .ba-ns{border-style:solid;border-width:1px}.swagger-ui .bt-ns{border-top-style:solid;border-top-width:1px}.swagger-ui .br-ns{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-ns{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-ns{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-ns{border-style:none;border-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ba-m{border-style:solid;border-width:1px}.swagger-ui .bt-m{border-top-style:solid;border-top-width:1px}.swagger-ui .br-m{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-m{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-m{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-m{border-style:none;border-width:0}}@media screen and (min-width:60em){.swagger-ui .ba-l{border-style:solid;border-width:1px}.swagger-ui .bt-l{border-top-style:solid;border-top-width:1px}.swagger-ui .br-l{border-right-style:solid;border-right-width:1px}.swagger-ui .bb-l{border-bottom-style:solid;border-bottom-width:1px}.swagger-ui .bl-l{border-left-style:solid;border-left-width:1px}.swagger-ui .bn-l{border-style:none;border-width:0}}.swagger-ui .b--black{border-color:#000}.swagger-ui .b--near-black{border-color:#111}.swagger-ui .b--dark-gray{border-color:#333}.swagger-ui .b--mid-gray{border-color:#555}.swagger-ui .b--gray{border-color:#777}.swagger-ui .b--silver{border-color:#999}.swagger-ui .b--light-silver{border-color:#aaa}.swagger-ui .b--moon-gray{border-color:#ccc}.swagger-ui .b--light-gray{border-color:#eee}.swagger-ui .b--near-white{border-color:#f4f4f4}.swagger-ui .b--white{border-color:#fff}.swagger-ui .b--white-90{border-color:hsla(0,0%,100%,.9)}.swagger-ui .b--white-80{border-color:hsla(0,0%,100%,.8)}.swagger-ui .b--white-70{border-color:hsla(0,0%,100%,.7)}.swagger-ui .b--white-60{border-color:hsla(0,0%,100%,.6)}.swagger-ui .b--white-50{border-color:hsla(0,0%,100%,.5)}.swagger-ui .b--white-40{border-color:hsla(0,0%,100%,.4)}.swagger-ui .b--white-30{border-color:hsla(0,0%,100%,.3)}.swagger-ui .b--white-20{border-color:hsla(0,0%,100%,.2)}.swagger-ui .b--white-10{border-color:hsla(0,0%,100%,.1)}.swagger-ui .b--white-05{border-color:hsla(0,0%,100%,.05)}.swagger-ui .b--white-025{border-color:hsla(0,0%,100%,.025)}.swagger-ui .b--white-0125{border-color:hsla(0,0%,100%,.0125)}.swagger-ui .b--black-90{border-color:rgba(0,0,0,.9)}.swagger-ui .b--black-80{border-color:rgba(0,0,0,.8)}.swagger-ui .b--black-70{border-color:rgba(0,0,0,.7)}.swagger-ui .b--black-60{border-color:rgba(0,0,0,.6)}.swagger-ui .b--black-50{border-color:rgba(0,0,0,.5)}.swagger-ui .b--black-40{border-color:rgba(0,0,0,.4)}.swagger-ui .b--black-30{border-color:rgba(0,0,0,.3)}.swagger-ui .b--black-20{border-color:rgba(0,0,0,.2)}.swagger-ui .b--black-10{border-color:rgba(0,0,0,.1)}.swagger-ui .b--black-05{border-color:rgba(0,0,0,.05)}.swagger-ui .b--black-025{border-color:rgba(0,0,0,.025)}.swagger-ui .b--black-0125{border-color:rgba(0,0,0,.0125)}.swagger-ui .b--dark-red{border-color:#e7040f}.swagger-ui .b--red{border-color:#ff4136}.swagger-ui .b--light-red{border-color:#ff725c}.swagger-ui .b--orange{border-color:#ff6300}.swagger-ui .b--gold{border-color:#ffb700}.swagger-ui .b--yellow{border-color:gold}.swagger-ui .b--light-yellow{border-color:#fbf1a9}.swagger-ui .b--purple{border-color:#5e2ca5}.swagger-ui .b--light-purple{border-color:#a463f2}.swagger-ui .b--dark-pink{border-color:#d5008f}.swagger-ui .b--hot-pink{border-color:#ff41b4}.swagger-ui .b--pink{border-color:#ff80cc}.swagger-ui .b--light-pink{border-color:#ffa3d7}.swagger-ui .b--dark-green{border-color:#137752}.swagger-ui .b--green{border-color:#19a974}.swagger-ui .b--light-green{border-color:#9eebcf}.swagger-ui .b--navy{border-color:#001b44}.swagger-ui .b--dark-blue{border-color:#00449e}.swagger-ui .b--blue{border-color:#357edd}.swagger-ui .b--light-blue{border-color:#96ccff}.swagger-ui .b--lightest-blue{border-color:#cdecff}.swagger-ui .b--washed-blue{border-color:#f6fffe}.swagger-ui .b--washed-green{border-color:#e8fdf5}.swagger-ui .b--washed-yellow{border-color:#fffceb}.swagger-ui .b--washed-red{border-color:#ffdfdf}.swagger-ui .b--transparent{border-color:transparent}.swagger-ui .b--inherit{border-color:inherit}.swagger-ui .br0{border-radius:0}.swagger-ui .br1{border-radius:.125rem}.swagger-ui .br2{border-radius:.25rem}.swagger-ui .br3{border-radius:.5rem}.swagger-ui .br4{border-radius:1rem}.swagger-ui .br-100{border-radius:100%}.swagger-ui .br-pill{border-radius:9999px}.swagger-ui .br--bottom{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left{border-top-right-radius:0;border-bottom-right-radius:0}@media screen and (min-width:30em){.swagger-ui .br0-ns{border-radius:0}.swagger-ui .br1-ns{border-radius:.125rem}.swagger-ui .br2-ns{border-radius:.25rem}.swagger-ui .br3-ns{border-radius:.5rem}.swagger-ui .br4-ns{border-radius:1rem}.swagger-ui .br-100-ns{border-radius:100%}.swagger-ui .br-pill-ns{border-radius:9999px}.swagger-ui .br--bottom-ns{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-ns{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-ns{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-ns{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .br0-m{border-radius:0}.swagger-ui .br1-m{border-radius:.125rem}.swagger-ui .br2-m{border-radius:.25rem}.swagger-ui .br3-m{border-radius:.5rem}.swagger-ui .br4-m{border-radius:1rem}.swagger-ui .br-100-m{border-radius:100%}.swagger-ui .br-pill-m{border-radius:9999px}.swagger-ui .br--bottom-m{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-m{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-m{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-m{border-top-right-radius:0;border-bottom-right-radius:0}}@media screen and (min-width:60em){.swagger-ui .br0-l{border-radius:0}.swagger-ui .br1-l{border-radius:.125rem}.swagger-ui .br2-l{border-radius:.25rem}.swagger-ui .br3-l{border-radius:.5rem}.swagger-ui .br4-l{border-radius:1rem}.swagger-ui .br-100-l{border-radius:100%}.swagger-ui .br-pill-l{border-radius:9999px}.swagger-ui .br--bottom-l{border-top-left-radius:0;border-top-right-radius:0}.swagger-ui .br--top-l{border-bottom-left-radius:0;border-bottom-right-radius:0}.swagger-ui .br--right-l{border-top-left-radius:0;border-bottom-left-radius:0}.swagger-ui .br--left-l{border-top-right-radius:0;border-bottom-right-radius:0}}.swagger-ui .b--dotted{border-style:dotted}.swagger-ui .b--dashed{border-style:dashed}.swagger-ui .b--solid{border-style:solid}.swagger-ui .b--none{border-style:none}@media screen and (min-width:30em){.swagger-ui .b--dotted-ns{border-style:dotted}.swagger-ui .b--dashed-ns{border-style:dashed}.swagger-ui .b--solid-ns{border-style:solid}.swagger-ui .b--none-ns{border-style:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .b--dotted-m{border-style:dotted}.swagger-ui .b--dashed-m{border-style:dashed}.swagger-ui .b--solid-m{border-style:solid}.swagger-ui .b--none-m{border-style:none}}@media screen and (min-width:60em){.swagger-ui .b--dotted-l{border-style:dotted}.swagger-ui .b--dashed-l{border-style:dashed}.swagger-ui .b--solid-l{border-style:solid}.swagger-ui .b--none-l{border-style:none}}.swagger-ui .bw0{border-width:0}.swagger-ui .bw1{border-width:.125rem}.swagger-ui .bw2{border-width:.25rem}.swagger-ui .bw3{border-width:.5rem}.swagger-ui .bw4{border-width:1rem}.swagger-ui .bw5{border-width:2rem}.swagger-ui .bt-0{border-top-width:0}.swagger-ui .br-0{border-right-width:0}.swagger-ui .bb-0{border-bottom-width:0}.swagger-ui .bl-0{border-left-width:0}@media screen and (min-width:30em){.swagger-ui .bw0-ns{border-width:0}.swagger-ui .bw1-ns{border-width:.125rem}.swagger-ui .bw2-ns{border-width:.25rem}.swagger-ui .bw3-ns{border-width:.5rem}.swagger-ui .bw4-ns{border-width:1rem}.swagger-ui .bw5-ns{border-width:2rem}.swagger-ui .bt-0-ns{border-top-width:0}.swagger-ui .br-0-ns{border-right-width:0}.swagger-ui .bb-0-ns{border-bottom-width:0}.swagger-ui .bl-0-ns{border-left-width:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .bw0-m{border-width:0}.swagger-ui .bw1-m{border-width:.125rem}.swagger-ui .bw2-m{border-width:.25rem}.swagger-ui .bw3-m{border-width:.5rem}.swagger-ui .bw4-m{border-width:1rem}.swagger-ui .bw5-m{border-width:2rem}.swagger-ui .bt-0-m{border-top-width:0}.swagger-ui .br-0-m{border-right-width:0}.swagger-ui .bb-0-m{border-bottom-width:0}.swagger-ui .bl-0-m{border-left-width:0}}@media screen and (min-width:60em){.swagger-ui .bw0-l{border-width:0}.swagger-ui .bw1-l{border-width:.125rem}.swagger-ui .bw2-l{border-width:.25rem}.swagger-ui .bw3-l{border-width:.5rem}.swagger-ui .bw4-l{border-width:1rem}.swagger-ui .bw5-l{border-width:2rem}.swagger-ui .bt-0-l{border-top-width:0}.swagger-ui .br-0-l{border-right-width:0}.swagger-ui .bb-0-l{border-bottom-width:0}.swagger-ui .bl-0-l{border-left-width:0}}.swagger-ui .shadow-1{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}@media screen and (min-width:30em){.swagger-ui .shadow-1-ns{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-ns{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-ns{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-ns{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-ns{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .shadow-1-m{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-m{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-m{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-m{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-m{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}@media screen and (min-width:60em){.swagger-ui .shadow-1-l{box-shadow:0 0 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-2-l{box-shadow:0 0 8px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-3-l{box-shadow:2px 2px 4px 2px rgba(0,0,0,.2)}.swagger-ui .shadow-4-l{box-shadow:2px 2px 8px 0 rgba(0,0,0,.2)}.swagger-ui .shadow-5-l{box-shadow:4px 4px 8px 0 rgba(0,0,0,.2)}}.swagger-ui .pre{overflow-x:auto;overflow-y:hidden;overflow:scroll}.swagger-ui .top-0{top:0}.swagger-ui .right-0{right:0}.swagger-ui .bottom-0{bottom:0}.swagger-ui .left-0{left:0}.swagger-ui .top-1{top:1rem}.swagger-ui .right-1{right:1rem}.swagger-ui .bottom-1{bottom:1rem}.swagger-ui .left-1{left:1rem}.swagger-ui .top-2{top:2rem}.swagger-ui .right-2{right:2rem}.swagger-ui .bottom-2{bottom:2rem}.swagger-ui .left-2{left:2rem}.swagger-ui .top--1{top:-1rem}.swagger-ui .right--1{right:-1rem}.swagger-ui .bottom--1{bottom:-1rem}.swagger-ui .left--1{left:-1rem}.swagger-ui .top--2{top:-2rem}.swagger-ui .right--2{right:-2rem}.swagger-ui .bottom--2{bottom:-2rem}.swagger-ui .left--2{left:-2rem}.swagger-ui .absolute--fill{top:0;right:0;bottom:0;left:0}@media screen and (min-width:30em){.swagger-ui .top-0-ns{top:0}.swagger-ui .left-0-ns{left:0}.swagger-ui .right-0-ns{right:0}.swagger-ui .bottom-0-ns{bottom:0}.swagger-ui .top-1-ns{top:1rem}.swagger-ui .left-1-ns{left:1rem}.swagger-ui .right-1-ns{right:1rem}.swagger-ui .bottom-1-ns{bottom:1rem}.swagger-ui .top-2-ns{top:2rem}.swagger-ui .left-2-ns{left:2rem}.swagger-ui .right-2-ns{right:2rem}.swagger-ui .bottom-2-ns{bottom:2rem}.swagger-ui .top--1-ns{top:-1rem}.swagger-ui .right--1-ns{right:-1rem}.swagger-ui .bottom--1-ns{bottom:-1rem}.swagger-ui .left--1-ns{left:-1rem}.swagger-ui .top--2-ns{top:-2rem}.swagger-ui .right--2-ns{right:-2rem}.swagger-ui .bottom--2-ns{bottom:-2rem}.swagger-ui .left--2-ns{left:-2rem}.swagger-ui .absolute--fill-ns{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .top-0-m{top:0}.swagger-ui .left-0-m{left:0}.swagger-ui .right-0-m{right:0}.swagger-ui .bottom-0-m{bottom:0}.swagger-ui .top-1-m{top:1rem}.swagger-ui .left-1-m{left:1rem}.swagger-ui .right-1-m{right:1rem}.swagger-ui .bottom-1-m{bottom:1rem}.swagger-ui .top-2-m{top:2rem}.swagger-ui .left-2-m{left:2rem}.swagger-ui .right-2-m{right:2rem}.swagger-ui .bottom-2-m{bottom:2rem}.swagger-ui .top--1-m{top:-1rem}.swagger-ui .right--1-m{right:-1rem}.swagger-ui .bottom--1-m{bottom:-1rem}.swagger-ui .left--1-m{left:-1rem}.swagger-ui .top--2-m{top:-2rem}.swagger-ui .right--2-m{right:-2rem}.swagger-ui .bottom--2-m{bottom:-2rem}.swagger-ui .left--2-m{left:-2rem}.swagger-ui .absolute--fill-m{top:0;right:0;bottom:0;left:0}}@media screen and (min-width:60em){.swagger-ui .top-0-l{top:0}.swagger-ui .left-0-l{left:0}.swagger-ui .right-0-l{right:0}.swagger-ui .bottom-0-l{bottom:0}.swagger-ui .top-1-l{top:1rem}.swagger-ui .left-1-l{left:1rem}.swagger-ui .right-1-l{right:1rem}.swagger-ui .bottom-1-l{bottom:1rem}.swagger-ui .top-2-l{top:2rem}.swagger-ui .left-2-l{left:2rem}.swagger-ui .right-2-l{right:2rem}.swagger-ui .bottom-2-l{bottom:2rem}.swagger-ui .top--1-l{top:-1rem}.swagger-ui .right--1-l{right:-1rem}.swagger-ui .bottom--1-l{bottom:-1rem}.swagger-ui .left--1-l{left:-1rem}.swagger-ui .top--2-l{top:-2rem}.swagger-ui .right--2-l{right:-2rem}.swagger-ui .bottom--2-l{bottom:-2rem}.swagger-ui .left--2-l{left:-2rem}.swagger-ui .absolute--fill-l{top:0;right:0;bottom:0;left:0}}.swagger-ui .cf:after,.swagger-ui .cf:before{content:" ";display:table}.swagger-ui .cf:after{clear:both}.swagger-ui .cf{*zoom:1}.swagger-ui .cl{clear:left}.swagger-ui .cr{clear:right}.swagger-ui .cb{clear:both}.swagger-ui .cn{clear:none}@media screen and (min-width:30em){.swagger-ui .cl-ns{clear:left}.swagger-ui .cr-ns{clear:right}.swagger-ui .cb-ns{clear:both}.swagger-ui .cn-ns{clear:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .cl-m{clear:left}.swagger-ui .cr-m{clear:right}.swagger-ui .cb-m{clear:both}.swagger-ui .cn-m{clear:none}}@media screen and (min-width:60em){.swagger-ui .cl-l{clear:left}.swagger-ui .cr-l{clear:right}.swagger-ui .cb-l{clear:both}.swagger-ui .cn-l{clear:none}}.swagger-ui .flex{display:flex}.swagger-ui .inline-flex{display:inline-flex}.swagger-ui .flex-auto{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none{flex:none}.swagger-ui .flex-column{flex-direction:column}.swagger-ui .flex-row{flex-direction:row}.swagger-ui .flex-wrap{flex-wrap:wrap}.swagger-ui .flex-nowrap{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse{flex-direction:column-reverse}.swagger-ui .flex-row-reverse{flex-direction:row-reverse}.swagger-ui .items-start{align-items:flex-start}.swagger-ui .items-end{align-items:flex-end}.swagger-ui .items-center{align-items:center}.swagger-ui .items-baseline{align-items:baseline}.swagger-ui .items-stretch{align-items:stretch}.swagger-ui .self-start{align-self:flex-start}.swagger-ui .self-end{align-self:flex-end}.swagger-ui .self-center{align-self:center}.swagger-ui .self-baseline{align-self:baseline}.swagger-ui .self-stretch{align-self:stretch}.swagger-ui .justify-start{justify-content:flex-start}.swagger-ui .justify-end{justify-content:flex-end}.swagger-ui .justify-center{justify-content:center}.swagger-ui .justify-between{justify-content:space-between}.swagger-ui .justify-around{justify-content:space-around}.swagger-ui .content-start{align-content:flex-start}.swagger-ui .content-end{align-content:flex-end}.swagger-ui .content-center{align-content:center}.swagger-ui .content-between{align-content:space-between}.swagger-ui .content-around{align-content:space-around}.swagger-ui .content-stretch{align-content:stretch}.swagger-ui .order-0{order:0}.swagger-ui .order-1{order:1}.swagger-ui .order-2{order:2}.swagger-ui .order-3{order:3}.swagger-ui .order-4{order:4}.swagger-ui .order-5{order:5}.swagger-ui .order-6{order:6}.swagger-ui .order-7{order:7}.swagger-ui .order-8{order:8}.swagger-ui .order-last{order:99999}.swagger-ui .flex-grow-0{flex-grow:0}.swagger-ui .flex-grow-1{flex-grow:1}.swagger-ui .flex-shrink-0{flex-shrink:0}.swagger-ui .flex-shrink-1{flex-shrink:1}@media screen and (min-width:30em){.swagger-ui .flex-ns{display:flex}.swagger-ui .inline-flex-ns{display:inline-flex}.swagger-ui .flex-auto-ns{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-ns{flex:none}.swagger-ui .flex-column-ns{flex-direction:column}.swagger-ui .flex-row-ns{flex-direction:row}.swagger-ui .flex-wrap-ns{flex-wrap:wrap}.swagger-ui .flex-nowrap-ns{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-ns{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-ns{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-ns{flex-direction:row-reverse}.swagger-ui .items-start-ns{align-items:flex-start}.swagger-ui .items-end-ns{align-items:flex-end}.swagger-ui .items-center-ns{align-items:center}.swagger-ui .items-baseline-ns{align-items:baseline}.swagger-ui .items-stretch-ns{align-items:stretch}.swagger-ui .self-start-ns{align-self:flex-start}.swagger-ui .self-end-ns{align-self:flex-end}.swagger-ui .self-center-ns{align-self:center}.swagger-ui .self-baseline-ns{align-self:baseline}.swagger-ui .self-stretch-ns{align-self:stretch}.swagger-ui .justify-start-ns{justify-content:flex-start}.swagger-ui .justify-end-ns{justify-content:flex-end}.swagger-ui .justify-center-ns{justify-content:center}.swagger-ui .justify-between-ns{justify-content:space-between}.swagger-ui .justify-around-ns{justify-content:space-around}.swagger-ui .content-start-ns{align-content:flex-start}.swagger-ui .content-end-ns{align-content:flex-end}.swagger-ui .content-center-ns{align-content:center}.swagger-ui .content-between-ns{align-content:space-between}.swagger-ui .content-around-ns{align-content:space-around}.swagger-ui .content-stretch-ns{align-content:stretch}.swagger-ui .order-0-ns{order:0}.swagger-ui .order-1-ns{order:1}.swagger-ui .order-2-ns{order:2}.swagger-ui .order-3-ns{order:3}.swagger-ui .order-4-ns{order:4}.swagger-ui .order-5-ns{order:5}.swagger-ui .order-6-ns{order:6}.swagger-ui .order-7-ns{order:7}.swagger-ui .order-8-ns{order:8}.swagger-ui .order-last-ns{order:99999}.swagger-ui .flex-grow-0-ns{flex-grow:0}.swagger-ui .flex-grow-1-ns{flex-grow:1}.swagger-ui .flex-shrink-0-ns{flex-shrink:0}.swagger-ui .flex-shrink-1-ns{flex-shrink:1}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .flex-m{display:flex}.swagger-ui .inline-flex-m{display:inline-flex}.swagger-ui .flex-auto-m{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-m{flex:none}.swagger-ui .flex-column-m{flex-direction:column}.swagger-ui .flex-row-m{flex-direction:row}.swagger-ui .flex-wrap-m{flex-wrap:wrap}.swagger-ui .flex-nowrap-m{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-m{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-m{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-m{flex-direction:row-reverse}.swagger-ui .items-start-m{align-items:flex-start}.swagger-ui .items-end-m{align-items:flex-end}.swagger-ui .items-center-m{align-items:center}.swagger-ui .items-baseline-m{align-items:baseline}.swagger-ui .items-stretch-m{align-items:stretch}.swagger-ui .self-start-m{align-self:flex-start}.swagger-ui .self-end-m{align-self:flex-end}.swagger-ui .self-center-m{align-self:center}.swagger-ui .self-baseline-m{align-self:baseline}.swagger-ui .self-stretch-m{align-self:stretch}.swagger-ui .justify-start-m{justify-content:flex-start}.swagger-ui .justify-end-m{justify-content:flex-end}.swagger-ui .justify-center-m{justify-content:center}.swagger-ui .justify-between-m{justify-content:space-between}.swagger-ui .justify-around-m{justify-content:space-around}.swagger-ui .content-start-m{align-content:flex-start}.swagger-ui .content-end-m{align-content:flex-end}.swagger-ui .content-center-m{align-content:center}.swagger-ui .content-between-m{align-content:space-between}.swagger-ui .content-around-m{align-content:space-around}.swagger-ui .content-stretch-m{align-content:stretch}.swagger-ui .order-0-m{order:0}.swagger-ui .order-1-m{order:1}.swagger-ui .order-2-m{order:2}.swagger-ui .order-3-m{order:3}.swagger-ui .order-4-m{order:4}.swagger-ui .order-5-m{order:5}.swagger-ui .order-6-m{order:6}.swagger-ui .order-7-m{order:7}.swagger-ui .order-8-m{order:8}.swagger-ui .order-last-m{order:99999}.swagger-ui .flex-grow-0-m{flex-grow:0}.swagger-ui .flex-grow-1-m{flex-grow:1}.swagger-ui .flex-shrink-0-m{flex-shrink:0}.swagger-ui .flex-shrink-1-m{flex-shrink:1}}@media screen and (min-width:60em){.swagger-ui .flex-l{display:flex}.swagger-ui .inline-flex-l{display:inline-flex}.swagger-ui .flex-auto-l{flex:1 1 auto;min-width:0;min-height:0}.swagger-ui .flex-none-l{flex:none}.swagger-ui .flex-column-l{flex-direction:column}.swagger-ui .flex-row-l{flex-direction:row}.swagger-ui .flex-wrap-l{flex-wrap:wrap}.swagger-ui .flex-nowrap-l{flex-wrap:nowrap}.swagger-ui .flex-wrap-reverse-l{flex-wrap:wrap-reverse}.swagger-ui .flex-column-reverse-l{flex-direction:column-reverse}.swagger-ui .flex-row-reverse-l{flex-direction:row-reverse}.swagger-ui .items-start-l{align-items:flex-start}.swagger-ui .items-end-l{align-items:flex-end}.swagger-ui .items-center-l{align-items:center}.swagger-ui .items-baseline-l{align-items:baseline}.swagger-ui .items-stretch-l{align-items:stretch}.swagger-ui .self-start-l{align-self:flex-start}.swagger-ui .self-end-l{align-self:flex-end}.swagger-ui .self-center-l{align-self:center}.swagger-ui .self-baseline-l{align-self:baseline}.swagger-ui .self-stretch-l{align-self:stretch}.swagger-ui .justify-start-l{justify-content:flex-start}.swagger-ui .justify-end-l{justify-content:flex-end}.swagger-ui .justify-center-l{justify-content:center}.swagger-ui .justify-between-l{justify-content:space-between}.swagger-ui .justify-around-l{justify-content:space-around}.swagger-ui .content-start-l{align-content:flex-start}.swagger-ui .content-end-l{align-content:flex-end}.swagger-ui .content-center-l{align-content:center}.swagger-ui .content-between-l{align-content:space-between}.swagger-ui .content-around-l{align-content:space-around}.swagger-ui .content-stretch-l{align-content:stretch}.swagger-ui .order-0-l{order:0}.swagger-ui .order-1-l{order:1}.swagger-ui .order-2-l{order:2}.swagger-ui .order-3-l{order:3}.swagger-ui .order-4-l{order:4}.swagger-ui .order-5-l{order:5}.swagger-ui .order-6-l{order:6}.swagger-ui .order-7-l{order:7}.swagger-ui .order-8-l{order:8}.swagger-ui .order-last-l{order:99999}.swagger-ui .flex-grow-0-l{flex-grow:0}.swagger-ui .flex-grow-1-l{flex-grow:1}.swagger-ui .flex-shrink-0-l{flex-shrink:0}.swagger-ui .flex-shrink-1-l{flex-shrink:1}}.swagger-ui .dn{display:none}.swagger-ui .di{display:inline}.swagger-ui .db{display:block}.swagger-ui .dib{display:inline-block}.swagger-ui .dit{display:inline-table}.swagger-ui .dt{display:table}.swagger-ui .dtc{display:table-cell}.swagger-ui .dt-row{display:table-row}.swagger-ui .dt-row-group{display:table-row-group}.swagger-ui .dt-column{display:table-column}.swagger-ui .dt-column-group{display:table-column-group}.swagger-ui .dt--fixed{table-layout:fixed;width:100%}@media screen and (min-width:30em){.swagger-ui .dn-ns{display:none}.swagger-ui .di-ns{display:inline}.swagger-ui .db-ns{display:block}.swagger-ui .dib-ns{display:inline-block}.swagger-ui .dit-ns{display:inline-table}.swagger-ui .dt-ns{display:table}.swagger-ui .dtc-ns{display:table-cell}.swagger-ui .dt-row-ns{display:table-row}.swagger-ui .dt-row-group-ns{display:table-row-group}.swagger-ui .dt-column-ns{display:table-column}.swagger-ui .dt-column-group-ns{display:table-column-group}.swagger-ui .dt--fixed-ns{table-layout:fixed;width:100%}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .dn-m{display:none}.swagger-ui .di-m{display:inline}.swagger-ui .db-m{display:block}.swagger-ui .dib-m{display:inline-block}.swagger-ui .dit-m{display:inline-table}.swagger-ui .dt-m{display:table}.swagger-ui .dtc-m{display:table-cell}.swagger-ui .dt-row-m{display:table-row}.swagger-ui .dt-row-group-m{display:table-row-group}.swagger-ui .dt-column-m{display:table-column}.swagger-ui .dt-column-group-m{display:table-column-group}.swagger-ui .dt--fixed-m{table-layout:fixed;width:100%}}@media screen and (min-width:60em){.swagger-ui .dn-l{display:none}.swagger-ui .di-l{display:inline}.swagger-ui .db-l{display:block}.swagger-ui .dib-l{display:inline-block}.swagger-ui .dit-l{display:inline-table}.swagger-ui .dt-l{display:table}.swagger-ui .dtc-l{display:table-cell}.swagger-ui .dt-row-l{display:table-row}.swagger-ui .dt-row-group-l{display:table-row-group}.swagger-ui .dt-column-l{display:table-column}.swagger-ui .dt-column-group-l{display:table-column-group}.swagger-ui .dt--fixed-l{table-layout:fixed;width:100%}}.swagger-ui .fl{float:left;_display:inline}.swagger-ui .fr{float:right;_display:inline}.swagger-ui .fn{float:none}@media screen and (min-width:30em){.swagger-ui .fl-ns{float:left;_display:inline}.swagger-ui .fr-ns{float:right;_display:inline}.swagger-ui .fn-ns{float:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .fl-m{float:left;_display:inline}.swagger-ui .fr-m{float:right;_display:inline}.swagger-ui .fn-m{float:none}}@media screen and (min-width:60em){.swagger-ui .fl-l{float:left;_display:inline}.swagger-ui .fr-l{float:right;_display:inline}.swagger-ui .fn-l{float:none}}.swagger-ui .sans-serif{font-family:-apple-system,BlinkMacSystemFont,avenir next,avenir,helvetica,helvetica neue,ubuntu,roboto,noto,segoe ui,arial,sans-serif}.swagger-ui .serif{font-family:georgia,serif}.swagger-ui .system-sans-serif{font-family:sans-serif}.swagger-ui .system-serif{font-family:serif}.swagger-ui .code,.swagger-ui code{font-family:Consolas,monaco,monospace}.swagger-ui .courier{font-family:Courier Next,courier,monospace}.swagger-ui .helvetica{font-family:helvetica neue,helvetica,sans-serif}.swagger-ui .avenir{font-family:avenir next,avenir,sans-serif}.swagger-ui .athelas{font-family:athelas,georgia,serif}.swagger-ui .georgia{font-family:georgia,serif}.swagger-ui .times{font-family:times,serif}.swagger-ui .bodoni{font-family:Bodoni MT,serif}.swagger-ui .calisto{font-family:Calisto MT,serif}.swagger-ui .garamond{font-family:garamond,serif}.swagger-ui .baskerville{font-family:baskerville,serif}.swagger-ui .i{font-style:italic}.swagger-ui .fs-normal{font-style:normal}@media screen and (min-width:30em){.swagger-ui .i-ns{font-style:italic}.swagger-ui .fs-normal-ns{font-style:normal}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .i-m{font-style:italic}.swagger-ui .fs-normal-m{font-style:normal}}@media screen and (min-width:60em){.swagger-ui .i-l{font-style:italic}.swagger-ui .fs-normal-l{font-style:normal}}.swagger-ui .normal{font-weight:400}.swagger-ui .b{font-weight:700}.swagger-ui .fw1{font-weight:100}.swagger-ui .fw2{font-weight:200}.swagger-ui .fw3{font-weight:300}.swagger-ui .fw4{font-weight:400}.swagger-ui .fw5{font-weight:500}.swagger-ui .fw6{font-weight:600}.swagger-ui .fw7{font-weight:700}.swagger-ui .fw8{font-weight:800}.swagger-ui .fw9{font-weight:900}@media screen and (min-width:30em){.swagger-ui .normal-ns{font-weight:400}.swagger-ui .b-ns{font-weight:700}.swagger-ui .fw1-ns{font-weight:100}.swagger-ui .fw2-ns{font-weight:200}.swagger-ui .fw3-ns{font-weight:300}.swagger-ui .fw4-ns{font-weight:400}.swagger-ui .fw5-ns{font-weight:500}.swagger-ui .fw6-ns{font-weight:600}.swagger-ui .fw7-ns{font-weight:700}.swagger-ui .fw8-ns{font-weight:800}.swagger-ui .fw9-ns{font-weight:900}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .normal-m{font-weight:400}.swagger-ui .b-m{font-weight:700}.swagger-ui .fw1-m{font-weight:100}.swagger-ui .fw2-m{font-weight:200}.swagger-ui .fw3-m{font-weight:300}.swagger-ui .fw4-m{font-weight:400}.swagger-ui .fw5-m{font-weight:500}.swagger-ui .fw6-m{font-weight:600}.swagger-ui .fw7-m{font-weight:700}.swagger-ui .fw8-m{font-weight:800}.swagger-ui .fw9-m{font-weight:900}}@media screen and (min-width:60em){.swagger-ui .normal-l{font-weight:400}.swagger-ui .b-l{font-weight:700}.swagger-ui .fw1-l{font-weight:100}.swagger-ui .fw2-l{font-weight:200}.swagger-ui .fw3-l{font-weight:300}.swagger-ui .fw4-l{font-weight:400}.swagger-ui .fw5-l{font-weight:500}.swagger-ui .fw6-l{font-weight:600}.swagger-ui .fw7-l{font-weight:700}.swagger-ui .fw8-l{font-weight:800}.swagger-ui .fw9-l{font-weight:900}}.swagger-ui .input-reset{-webkit-appearance:none;-moz-appearance:none}.swagger-ui .button-reset::-moz-focus-inner,.swagger-ui .input-reset::-moz-focus-inner{border:0;padding:0}.swagger-ui .h1{height:1rem}.swagger-ui .h2{height:2rem}.swagger-ui .h3{height:4rem}.swagger-ui .h4{height:8rem}.swagger-ui .h5{height:16rem}.swagger-ui .h-25{height:25%}.swagger-ui .h-50{height:50%}.swagger-ui .h-75{height:75%}.swagger-ui .h-100{height:100%}.swagger-ui .min-h-100{min-height:100%}.swagger-ui .vh-25{height:25vh}.swagger-ui .vh-50{height:50vh}.swagger-ui .vh-75{height:75vh}.swagger-ui .vh-100{height:100vh}.swagger-ui .min-vh-100{min-height:100vh}.swagger-ui .h-auto{height:auto}.swagger-ui .h-inherit{height:inherit}@media screen and (min-width:30em){.swagger-ui .h1-ns{height:1rem}.swagger-ui .h2-ns{height:2rem}.swagger-ui .h3-ns{height:4rem}.swagger-ui .h4-ns{height:8rem}.swagger-ui .h5-ns{height:16rem}.swagger-ui .h-25-ns{height:25%}.swagger-ui .h-50-ns{height:50%}.swagger-ui .h-75-ns{height:75%}.swagger-ui .h-100-ns{height:100%}.swagger-ui .min-h-100-ns{min-height:100%}.swagger-ui .vh-25-ns{height:25vh}.swagger-ui .vh-50-ns{height:50vh}.swagger-ui .vh-75-ns{height:75vh}.swagger-ui .vh-100-ns{height:100vh}.swagger-ui .min-vh-100-ns{min-height:100vh}.swagger-ui .h-auto-ns{height:auto}.swagger-ui .h-inherit-ns{height:inherit}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .h1-m{height:1rem}.swagger-ui .h2-m{height:2rem}.swagger-ui .h3-m{height:4rem}.swagger-ui .h4-m{height:8rem}.swagger-ui .h5-m{height:16rem}.swagger-ui .h-25-m{height:25%}.swagger-ui .h-50-m{height:50%}.swagger-ui .h-75-m{height:75%}.swagger-ui .h-100-m{height:100%}.swagger-ui .min-h-100-m{min-height:100%}.swagger-ui .vh-25-m{height:25vh}.swagger-ui .vh-50-m{height:50vh}.swagger-ui .vh-75-m{height:75vh}.swagger-ui .vh-100-m{height:100vh}.swagger-ui .min-vh-100-m{min-height:100vh}.swagger-ui .h-auto-m{height:auto}.swagger-ui .h-inherit-m{height:inherit}}@media screen and (min-width:60em){.swagger-ui .h1-l{height:1rem}.swagger-ui .h2-l{height:2rem}.swagger-ui .h3-l{height:4rem}.swagger-ui .h4-l{height:8rem}.swagger-ui .h5-l{height:16rem}.swagger-ui .h-25-l{height:25%}.swagger-ui .h-50-l{height:50%}.swagger-ui .h-75-l{height:75%}.swagger-ui .h-100-l{height:100%}.swagger-ui .min-h-100-l{min-height:100%}.swagger-ui .vh-25-l{height:25vh}.swagger-ui .vh-50-l{height:50vh}.swagger-ui .vh-75-l{height:75vh}.swagger-ui .vh-100-l{height:100vh}.swagger-ui .min-vh-100-l{min-height:100vh}.swagger-ui .h-auto-l{height:auto}.swagger-ui .h-inherit-l{height:inherit}}.swagger-ui .tracked{letter-spacing:.1em}.swagger-ui .tracked-tight{letter-spacing:-.05em}.swagger-ui .tracked-mega{letter-spacing:.25em}@media screen and (min-width:30em){.swagger-ui .tracked-ns{letter-spacing:.1em}.swagger-ui .tracked-tight-ns{letter-spacing:-.05em}.swagger-ui .tracked-mega-ns{letter-spacing:.25em}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tracked-m{letter-spacing:.1em}.swagger-ui .tracked-tight-m{letter-spacing:-.05em}.swagger-ui .tracked-mega-m{letter-spacing:.25em}}@media screen and (min-width:60em){.swagger-ui .tracked-l{letter-spacing:.1em}.swagger-ui .tracked-tight-l{letter-spacing:-.05em}.swagger-ui .tracked-mega-l{letter-spacing:.25em}}.swagger-ui .lh-solid{line-height:1}.swagger-ui .lh-title{line-height:1.25}.swagger-ui .lh-copy{line-height:1.5}@media screen and (min-width:30em){.swagger-ui .lh-solid-ns{line-height:1}.swagger-ui .lh-title-ns{line-height:1.25}.swagger-ui .lh-copy-ns{line-height:1.5}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .lh-solid-m{line-height:1}.swagger-ui .lh-title-m{line-height:1.25}.swagger-ui .lh-copy-m{line-height:1.5}}@media screen and (min-width:60em){.swagger-ui .lh-solid-l{line-height:1}.swagger-ui .lh-title-l{line-height:1.25}.swagger-ui .lh-copy-l{line-height:1.5}}.swagger-ui .link{text-decoration:none}.swagger-ui .link,.swagger-ui .link:link,.swagger-ui .link:visited{transition:color .15s ease-in}.swagger-ui .link:hover{transition:color .15s ease-in}.swagger-ui .link:active{transition:color .15s ease-in}.swagger-ui .link:focus{transition:color .15s ease-in;outline:1px dotted currentColor}.swagger-ui .list{list-style-type:none}.swagger-ui .mw-100{max-width:100%}.swagger-ui .mw1{max-width:1rem}.swagger-ui .mw2{max-width:2rem}.swagger-ui .mw3{max-width:4rem}.swagger-ui .mw4{max-width:8rem}.swagger-ui .mw5{max-width:16rem}.swagger-ui .mw6{max-width:32rem}.swagger-ui .mw7{max-width:48rem}.swagger-ui .mw8{max-width:64rem}.swagger-ui .mw9{max-width:96rem}.swagger-ui .mw-none{max-width:none}@media screen and (min-width:30em){.swagger-ui .mw-100-ns{max-width:100%}.swagger-ui .mw1-ns{max-width:1rem}.swagger-ui .mw2-ns{max-width:2rem}.swagger-ui .mw3-ns{max-width:4rem}.swagger-ui .mw4-ns{max-width:8rem}.swagger-ui .mw5-ns{max-width:16rem}.swagger-ui .mw6-ns{max-width:32rem}.swagger-ui .mw7-ns{max-width:48rem}.swagger-ui .mw8-ns{max-width:64rem}.swagger-ui .mw9-ns{max-width:96rem}.swagger-ui .mw-none-ns{max-width:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .mw-100-m{max-width:100%}.swagger-ui .mw1-m{max-width:1rem}.swagger-ui .mw2-m{max-width:2rem}.swagger-ui .mw3-m{max-width:4rem}.swagger-ui .mw4-m{max-width:8rem}.swagger-ui .mw5-m{max-width:16rem}.swagger-ui .mw6-m{max-width:32rem}.swagger-ui .mw7-m{max-width:48rem}.swagger-ui .mw8-m{max-width:64rem}.swagger-ui .mw9-m{max-width:96rem}.swagger-ui .mw-none-m{max-width:none}}@media screen and (min-width:60em){.swagger-ui .mw-100-l{max-width:100%}.swagger-ui .mw1-l{max-width:1rem}.swagger-ui .mw2-l{max-width:2rem}.swagger-ui .mw3-l{max-width:4rem}.swagger-ui .mw4-l{max-width:8rem}.swagger-ui .mw5-l{max-width:16rem}.swagger-ui .mw6-l{max-width:32rem}.swagger-ui .mw7-l{max-width:48rem}.swagger-ui .mw8-l{max-width:64rem}.swagger-ui .mw9-l{max-width:96rem}.swagger-ui .mw-none-l{max-width:none}}.swagger-ui .w1{width:1rem}.swagger-ui .w2{width:2rem}.swagger-ui .w3{width:4rem}.swagger-ui .w4{width:8rem}.swagger-ui .w5{width:16rem}.swagger-ui .w-10{width:10%}.swagger-ui .w-20{width:20%}.swagger-ui .w-25{width:25%}.swagger-ui .w-30{width:30%}.swagger-ui .w-33{width:33%}.swagger-ui .w-34{width:34%}.swagger-ui .w-40{width:40%}.swagger-ui .w-50{width:50%}.swagger-ui .w-60{width:60%}.swagger-ui .w-70{width:70%}.swagger-ui .w-75{width:75%}.swagger-ui .w-80{width:80%}.swagger-ui .w-90{width:90%}.swagger-ui .w-100{width:100%}.swagger-ui .w-third{width:33.33333%}.swagger-ui .w-two-thirds{width:66.66667%}.swagger-ui .w-auto{width:auto}@media screen and (min-width:30em){.swagger-ui .w1-ns{width:1rem}.swagger-ui .w2-ns{width:2rem}.swagger-ui .w3-ns{width:4rem}.swagger-ui .w4-ns{width:8rem}.swagger-ui .w5-ns{width:16rem}.swagger-ui .w-10-ns{width:10%}.swagger-ui .w-20-ns{width:20%}.swagger-ui .w-25-ns{width:25%}.swagger-ui .w-30-ns{width:30%}.swagger-ui .w-33-ns{width:33%}.swagger-ui .w-34-ns{width:34%}.swagger-ui .w-40-ns{width:40%}.swagger-ui .w-50-ns{width:50%}.swagger-ui .w-60-ns{width:60%}.swagger-ui .w-70-ns{width:70%}.swagger-ui .w-75-ns{width:75%}.swagger-ui .w-80-ns{width:80%}.swagger-ui .w-90-ns{width:90%}.swagger-ui .w-100-ns{width:100%}.swagger-ui .w-third-ns{width:33.33333%}.swagger-ui .w-two-thirds-ns{width:66.66667%}.swagger-ui .w-auto-ns{width:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .w1-m{width:1rem}.swagger-ui .w2-m{width:2rem}.swagger-ui .w3-m{width:4rem}.swagger-ui .w4-m{width:8rem}.swagger-ui .w5-m{width:16rem}.swagger-ui .w-10-m{width:10%}.swagger-ui .w-20-m{width:20%}.swagger-ui .w-25-m{width:25%}.swagger-ui .w-30-m{width:30%}.swagger-ui .w-33-m{width:33%}.swagger-ui .w-34-m{width:34%}.swagger-ui .w-40-m{width:40%}.swagger-ui .w-50-m{width:50%}.swagger-ui .w-60-m{width:60%}.swagger-ui .w-70-m{width:70%}.swagger-ui .w-75-m{width:75%}.swagger-ui .w-80-m{width:80%}.swagger-ui .w-90-m{width:90%}.swagger-ui .w-100-m{width:100%}.swagger-ui .w-third-m{width:33.33333%}.swagger-ui .w-two-thirds-m{width:66.66667%}.swagger-ui .w-auto-m{width:auto}}@media screen and (min-width:60em){.swagger-ui .w1-l{width:1rem}.swagger-ui .w2-l{width:2rem}.swagger-ui .w3-l{width:4rem}.swagger-ui .w4-l{width:8rem}.swagger-ui .w5-l{width:16rem}.swagger-ui .w-10-l{width:10%}.swagger-ui .w-20-l{width:20%}.swagger-ui .w-25-l{width:25%}.swagger-ui .w-30-l{width:30%}.swagger-ui .w-33-l{width:33%}.swagger-ui .w-34-l{width:34%}.swagger-ui .w-40-l{width:40%}.swagger-ui .w-50-l{width:50%}.swagger-ui .w-60-l{width:60%}.swagger-ui .w-70-l{width:70%}.swagger-ui .w-75-l{width:75%}.swagger-ui .w-80-l{width:80%}.swagger-ui .w-90-l{width:90%}.swagger-ui .w-100-l{width:100%}.swagger-ui .w-third-l{width:33.33333%}.swagger-ui .w-two-thirds-l{width:66.66667%}.swagger-ui .w-auto-l{width:auto}}.swagger-ui .overflow-visible{overflow:visible}.swagger-ui .overflow-hidden{overflow:hidden}.swagger-ui .overflow-scroll{overflow:scroll}.swagger-ui .overflow-auto{overflow:auto}.swagger-ui .overflow-x-visible{overflow-x:visible}.swagger-ui .overflow-x-hidden{overflow-x:hidden}.swagger-ui .overflow-x-scroll{overflow-x:scroll}.swagger-ui .overflow-x-auto{overflow-x:auto}.swagger-ui .overflow-y-visible{overflow-y:visible}.swagger-ui .overflow-y-hidden{overflow-y:hidden}.swagger-ui .overflow-y-scroll{overflow-y:scroll}.swagger-ui .overflow-y-auto{overflow-y:auto}@media screen and (min-width:30em){.swagger-ui .overflow-visible-ns{overflow:visible}.swagger-ui .overflow-hidden-ns{overflow:hidden}.swagger-ui .overflow-scroll-ns{overflow:scroll}.swagger-ui .overflow-auto-ns{overflow:auto}.swagger-ui .overflow-x-visible-ns{overflow-x:visible}.swagger-ui .overflow-x-hidden-ns{overflow-x:hidden}.swagger-ui .overflow-x-scroll-ns{overflow-x:scroll}.swagger-ui .overflow-x-auto-ns{overflow-x:auto}.swagger-ui .overflow-y-visible-ns{overflow-y:visible}.swagger-ui .overflow-y-hidden-ns{overflow-y:hidden}.swagger-ui .overflow-y-scroll-ns{overflow-y:scroll}.swagger-ui .overflow-y-auto-ns{overflow-y:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .overflow-visible-m{overflow:visible}.swagger-ui .overflow-hidden-m{overflow:hidden}.swagger-ui .overflow-scroll-m{overflow:scroll}.swagger-ui .overflow-auto-m{overflow:auto}.swagger-ui .overflow-x-visible-m{overflow-x:visible}.swagger-ui .overflow-x-hidden-m{overflow-x:hidden}.swagger-ui .overflow-x-scroll-m{overflow-x:scroll}.swagger-ui .overflow-x-auto-m{overflow-x:auto}.swagger-ui .overflow-y-visible-m{overflow-y:visible}.swagger-ui .overflow-y-hidden-m{overflow-y:hidden}.swagger-ui .overflow-y-scroll-m{overflow-y:scroll}.swagger-ui .overflow-y-auto-m{overflow-y:auto}}@media screen and (min-width:60em){.swagger-ui .overflow-visible-l{overflow:visible}.swagger-ui .overflow-hidden-l{overflow:hidden}.swagger-ui .overflow-scroll-l{overflow:scroll}.swagger-ui .overflow-auto-l{overflow:auto}.swagger-ui .overflow-x-visible-l{overflow-x:visible}.swagger-ui .overflow-x-hidden-l{overflow-x:hidden}.swagger-ui .overflow-x-scroll-l{overflow-x:scroll}.swagger-ui .overflow-x-auto-l{overflow-x:auto}.swagger-ui .overflow-y-visible-l{overflow-y:visible}.swagger-ui .overflow-y-hidden-l{overflow-y:hidden}.swagger-ui .overflow-y-scroll-l{overflow-y:scroll}.swagger-ui .overflow-y-auto-l{overflow-y:auto}}.swagger-ui .static{position:static}.swagger-ui .relative{position:relative}.swagger-ui .absolute{position:absolute}.swagger-ui .fixed{position:fixed}@media screen and (min-width:30em){.swagger-ui .static-ns{position:static}.swagger-ui .relative-ns{position:relative}.swagger-ui .absolute-ns{position:absolute}.swagger-ui .fixed-ns{position:fixed}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .static-m{position:static}.swagger-ui .relative-m{position:relative}.swagger-ui .absolute-m{position:absolute}.swagger-ui .fixed-m{position:fixed}}@media screen and (min-width:60em){.swagger-ui .static-l{position:static}.swagger-ui .relative-l{position:relative}.swagger-ui .absolute-l{position:absolute}.swagger-ui .fixed-l{position:fixed}}.swagger-ui .o-100{opacity:1}.swagger-ui .o-90{opacity:.9}.swagger-ui .o-80{opacity:.8}.swagger-ui .o-70{opacity:.7}.swagger-ui .o-60{opacity:.6}.swagger-ui .o-50{opacity:.5}.swagger-ui .o-40{opacity:.4}.swagger-ui .o-30{opacity:.3}.swagger-ui .o-20{opacity:.2}.swagger-ui .o-10{opacity:.1}.swagger-ui .o-05{opacity:.05}.swagger-ui .o-025{opacity:.025}.swagger-ui .o-0{opacity:0}.swagger-ui .rotate-45{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315{-webkit-transform:rotate(315deg);transform:rotate(315deg)}@media screen and (min-width:30em){.swagger-ui .rotate-45-ns{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-ns{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-ns{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-ns{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-ns{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-ns{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-ns{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .rotate-45-m{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-m{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-m{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-m{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-m{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-m{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-m{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}@media screen and (min-width:60em){.swagger-ui .rotate-45-l{-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swagger-ui .rotate-90-l{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.swagger-ui .rotate-135-l{-webkit-transform:rotate(135deg);transform:rotate(135deg)}.swagger-ui .rotate-180-l{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.swagger-ui .rotate-225-l{-webkit-transform:rotate(225deg);transform:rotate(225deg)}.swagger-ui .rotate-270-l{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.swagger-ui .rotate-315-l{-webkit-transform:rotate(315deg);transform:rotate(315deg)}}.swagger-ui .black-90{color:rgba(0,0,0,.9)}.swagger-ui .black-80{color:rgba(0,0,0,.8)}.swagger-ui .black-70{color:rgba(0,0,0,.7)}.swagger-ui .black-60{color:rgba(0,0,0,.6)}.swagger-ui .black-50{color:rgba(0,0,0,.5)}.swagger-ui .black-40{color:rgba(0,0,0,.4)}.swagger-ui .black-30{color:rgba(0,0,0,.3)}.swagger-ui .black-20{color:rgba(0,0,0,.2)}.swagger-ui .black-10{color:rgba(0,0,0,.1)}.swagger-ui .black-05{color:rgba(0,0,0,.05)}.swagger-ui .white-90{color:hsla(0,0%,100%,.9)}.swagger-ui .white-80{color:hsla(0,0%,100%,.8)}.swagger-ui .white-70{color:hsla(0,0%,100%,.7)}.swagger-ui .white-60{color:hsla(0,0%,100%,.6)}.swagger-ui .white-50{color:hsla(0,0%,100%,.5)}.swagger-ui .white-40{color:hsla(0,0%,100%,.4)}.swagger-ui .white-30{color:hsla(0,0%,100%,.3)}.swagger-ui .white-20{color:hsla(0,0%,100%,.2)}.swagger-ui .white-10{color:hsla(0,0%,100%,.1)}.swagger-ui .black{color:#000}.swagger-ui .near-black{color:#111}.swagger-ui .dark-gray{color:#333}.swagger-ui .mid-gray{color:#555}.swagger-ui .gray{color:#777}.swagger-ui .silver{color:#999}.swagger-ui .light-silver{color:#aaa}.swagger-ui .moon-gray{color:#ccc}.swagger-ui .light-gray{color:#eee}.swagger-ui .near-white{color:#f4f4f4}.swagger-ui .white{color:#fff}.swagger-ui .dark-red{color:#e7040f}.swagger-ui .red{color:#ff4136}.swagger-ui .light-red{color:#ff725c}.swagger-ui .orange{color:#ff6300}.swagger-ui .gold{color:#ffb700}.swagger-ui .yellow{color:gold}.swagger-ui .light-yellow{color:#fbf1a9}.swagger-ui .purple{color:#5e2ca5}.swagger-ui .light-purple{color:#a463f2}.swagger-ui .dark-pink{color:#d5008f}.swagger-ui .hot-pink{color:#ff41b4}.swagger-ui .pink{color:#ff80cc}.swagger-ui .light-pink{color:#ffa3d7}.swagger-ui .dark-green{color:#137752}.swagger-ui .green{color:#19a974}.swagger-ui .light-green{color:#9eebcf}.swagger-ui .navy{color:#001b44}.swagger-ui .dark-blue{color:#00449e}.swagger-ui .blue{color:#357edd}.swagger-ui .light-blue{color:#96ccff}.swagger-ui .lightest-blue{color:#cdecff}.swagger-ui .washed-blue{color:#f6fffe}.swagger-ui .washed-green{color:#e8fdf5}.swagger-ui .washed-yellow{color:#fffceb}.swagger-ui .washed-red{color:#ffdfdf}.swagger-ui .color-inherit{color:inherit}.swagger-ui .bg-black-90{background-color:rgba(0,0,0,.9)}.swagger-ui .bg-black-80{background-color:rgba(0,0,0,.8)}.swagger-ui .bg-black-70{background-color:rgba(0,0,0,.7)}.swagger-ui .bg-black-60{background-color:rgba(0,0,0,.6)}.swagger-ui .bg-black-50{background-color:rgba(0,0,0,.5)}.swagger-ui .bg-black-40{background-color:rgba(0,0,0,.4)}.swagger-ui .bg-black-30{background-color:rgba(0,0,0,.3)}.swagger-ui .bg-black-20{background-color:rgba(0,0,0,.2)}.swagger-ui .bg-black-10{background-color:rgba(0,0,0,.1)}.swagger-ui .bg-black-05{background-color:rgba(0,0,0,.05)}.swagger-ui .bg-white-90{background-color:hsla(0,0%,100%,.9)}.swagger-ui .bg-white-80{background-color:hsla(0,0%,100%,.8)}.swagger-ui .bg-white-70{background-color:hsla(0,0%,100%,.7)}.swagger-ui .bg-white-60{background-color:hsla(0,0%,100%,.6)}.swagger-ui .bg-white-50{background-color:hsla(0,0%,100%,.5)}.swagger-ui .bg-white-40{background-color:hsla(0,0%,100%,.4)}.swagger-ui .bg-white-30{background-color:hsla(0,0%,100%,.3)}.swagger-ui .bg-white-20{background-color:hsla(0,0%,100%,.2)}.swagger-ui .bg-white-10{background-color:hsla(0,0%,100%,.1)}.swagger-ui .bg-black{background-color:#000}.swagger-ui .bg-near-black{background-color:#111}.swagger-ui .bg-dark-gray{background-color:#333}.swagger-ui .bg-mid-gray{background-color:#555}.swagger-ui .bg-gray{background-color:#777}.swagger-ui .bg-silver{background-color:#999}.swagger-ui .bg-light-silver{background-color:#aaa}.swagger-ui .bg-moon-gray{background-color:#ccc}.swagger-ui .bg-light-gray{background-color:#eee}.swagger-ui .bg-near-white{background-color:#f4f4f4}.swagger-ui .bg-white{background-color:#fff}.swagger-ui .bg-transparent{background-color:transparent}.swagger-ui .bg-dark-red{background-color:#e7040f}.swagger-ui .bg-red{background-color:#ff4136}.swagger-ui .bg-light-red{background-color:#ff725c}.swagger-ui .bg-orange{background-color:#ff6300}.swagger-ui .bg-gold{background-color:#ffb700}.swagger-ui .bg-yellow{background-color:gold}.swagger-ui .bg-light-yellow{background-color:#fbf1a9}.swagger-ui .bg-purple{background-color:#5e2ca5}.swagger-ui .bg-light-purple{background-color:#a463f2}.swagger-ui .bg-dark-pink{background-color:#d5008f}.swagger-ui .bg-hot-pink{background-color:#ff41b4}.swagger-ui .bg-pink{background-color:#ff80cc}.swagger-ui .bg-light-pink{background-color:#ffa3d7}.swagger-ui .bg-dark-green{background-color:#137752}.swagger-ui .bg-green{background-color:#19a974}.swagger-ui .bg-light-green{background-color:#9eebcf}.swagger-ui .bg-navy{background-color:#001b44}.swagger-ui .bg-dark-blue{background-color:#00449e}.swagger-ui .bg-blue{background-color:#357edd}.swagger-ui .bg-light-blue{background-color:#96ccff}.swagger-ui .bg-lightest-blue{background-color:#cdecff}.swagger-ui .bg-washed-blue{background-color:#f6fffe}.swagger-ui .bg-washed-green{background-color:#e8fdf5}.swagger-ui .bg-washed-yellow{background-color:#fffceb}.swagger-ui .bg-washed-red{background-color:#ffdfdf}.swagger-ui .bg-inherit{background-color:inherit}.swagger-ui .hover-black:focus,.swagger-ui .hover-black:hover{color:#000}.swagger-ui .hover-near-black:focus,.swagger-ui .hover-near-black:hover{color:#111}.swagger-ui .hover-dark-gray:focus,.swagger-ui .hover-dark-gray:hover{color:#333}.swagger-ui .hover-mid-gray:focus,.swagger-ui .hover-mid-gray:hover{color:#555}.swagger-ui .hover-gray:focus,.swagger-ui .hover-gray:hover{color:#777}.swagger-ui .hover-silver:focus,.swagger-ui .hover-silver:hover{color:#999}.swagger-ui .hover-light-silver:focus,.swagger-ui .hover-light-silver:hover{color:#aaa}.swagger-ui .hover-moon-gray:focus,.swagger-ui .hover-moon-gray:hover{color:#ccc}.swagger-ui .hover-light-gray:focus,.swagger-ui .hover-light-gray:hover{color:#eee}.swagger-ui .hover-near-white:focus,.swagger-ui .hover-near-white:hover{color:#f4f4f4}.swagger-ui .hover-white:focus,.swagger-ui .hover-white:hover{color:#fff}.swagger-ui .hover-black-90:focus,.swagger-ui .hover-black-90:hover{color:rgba(0,0,0,.9)}.swagger-ui .hover-black-80:focus,.swagger-ui .hover-black-80:hover{color:rgba(0,0,0,.8)}.swagger-ui .hover-black-70:focus,.swagger-ui .hover-black-70:hover{color:rgba(0,0,0,.7)}.swagger-ui .hover-black-60:focus,.swagger-ui .hover-black-60:hover{color:rgba(0,0,0,.6)}.swagger-ui .hover-black-50:focus,.swagger-ui .hover-black-50:hover{color:rgba(0,0,0,.5)}.swagger-ui .hover-black-40:focus,.swagger-ui .hover-black-40:hover{color:rgba(0,0,0,.4)}.swagger-ui .hover-black-30:focus,.swagger-ui .hover-black-30:hover{color:rgba(0,0,0,.3)}.swagger-ui .hover-black-20:focus,.swagger-ui .hover-black-20:hover{color:rgba(0,0,0,.2)}.swagger-ui .hover-black-10:focus,.swagger-ui .hover-black-10:hover{color:rgba(0,0,0,.1)}.swagger-ui .hover-white-90:focus,.swagger-ui .hover-white-90:hover{color:hsla(0,0%,100%,.9)}.swagger-ui .hover-white-80:focus,.swagger-ui .hover-white-80:hover{color:hsla(0,0%,100%,.8)}.swagger-ui .hover-white-70:focus,.swagger-ui .hover-white-70:hover{color:hsla(0,0%,100%,.7)}.swagger-ui .hover-white-60:focus,.swagger-ui .hover-white-60:hover{color:hsla(0,0%,100%,.6)}.swagger-ui .hover-white-50:focus,.swagger-ui .hover-white-50:hover{color:hsla(0,0%,100%,.5)}.swagger-ui .hover-white-40:focus,.swagger-ui .hover-white-40:hover{color:hsla(0,0%,100%,.4)}.swagger-ui .hover-white-30:focus,.swagger-ui .hover-white-30:hover{color:hsla(0,0%,100%,.3)}.swagger-ui .hover-white-20:focus,.swagger-ui .hover-white-20:hover{color:hsla(0,0%,100%,.2)}.swagger-ui .hover-white-10:focus,.swagger-ui .hover-white-10:hover{color:hsla(0,0%,100%,.1)}.swagger-ui .hover-inherit:focus,.swagger-ui .hover-inherit:hover{color:inherit}.swagger-ui .hover-bg-black:focus,.swagger-ui .hover-bg-black:hover{background-color:#000}.swagger-ui .hover-bg-near-black:focus,.swagger-ui .hover-bg-near-black:hover{background-color:#111}.swagger-ui .hover-bg-dark-gray:focus,.swagger-ui .hover-bg-dark-gray:hover{background-color:#333}.swagger-ui .hover-bg-mid-gray:focus,.swagger-ui .hover-bg-mid-gray:hover{background-color:#555}.swagger-ui .hover-bg-gray:focus,.swagger-ui .hover-bg-gray:hover{background-color:#777}.swagger-ui .hover-bg-silver:focus,.swagger-ui .hover-bg-silver:hover{background-color:#999}.swagger-ui .hover-bg-light-silver:focus,.swagger-ui .hover-bg-light-silver:hover{background-color:#aaa}.swagger-ui .hover-bg-moon-gray:focus,.swagger-ui .hover-bg-moon-gray:hover{background-color:#ccc}.swagger-ui .hover-bg-light-gray:focus,.swagger-ui .hover-bg-light-gray:hover{background-color:#eee}.swagger-ui .hover-bg-near-white:focus,.swagger-ui .hover-bg-near-white:hover{background-color:#f4f4f4}.swagger-ui .hover-bg-white:focus,.swagger-ui .hover-bg-white:hover{background-color:#fff}.swagger-ui .hover-bg-transparent:focus,.swagger-ui .hover-bg-transparent:hover{background-color:transparent}.swagger-ui .hover-bg-black-90:focus,.swagger-ui .hover-bg-black-90:hover{background-color:rgba(0,0,0,.9)}.swagger-ui .hover-bg-black-80:focus,.swagger-ui .hover-bg-black-80:hover{background-color:rgba(0,0,0,.8)}.swagger-ui .hover-bg-black-70:focus,.swagger-ui .hover-bg-black-70:hover{background-color:rgba(0,0,0,.7)}.swagger-ui .hover-bg-black-60:focus,.swagger-ui .hover-bg-black-60:hover{background-color:rgba(0,0,0,.6)}.swagger-ui .hover-bg-black-50:focus,.swagger-ui .hover-bg-black-50:hover{background-color:rgba(0,0,0,.5)}.swagger-ui .hover-bg-black-40:focus,.swagger-ui .hover-bg-black-40:hover{background-color:rgba(0,0,0,.4)}.swagger-ui .hover-bg-black-30:focus,.swagger-ui .hover-bg-black-30:hover{background-color:rgba(0,0,0,.3)}.swagger-ui .hover-bg-black-20:focus,.swagger-ui .hover-bg-black-20:hover{background-color:rgba(0,0,0,.2)}.swagger-ui .hover-bg-black-10:focus,.swagger-ui .hover-bg-black-10:hover{background-color:rgba(0,0,0,.1)}.swagger-ui .hover-bg-white-90:focus,.swagger-ui .hover-bg-white-90:hover{background-color:hsla(0,0%,100%,.9)}.swagger-ui .hover-bg-white-80:focus,.swagger-ui .hover-bg-white-80:hover{background-color:hsla(0,0%,100%,.8)}.swagger-ui .hover-bg-white-70:focus,.swagger-ui .hover-bg-white-70:hover{background-color:hsla(0,0%,100%,.7)}.swagger-ui .hover-bg-white-60:focus,.swagger-ui .hover-bg-white-60:hover{background-color:hsla(0,0%,100%,.6)}.swagger-ui .hover-bg-white-50:focus,.swagger-ui .hover-bg-white-50:hover{background-color:hsla(0,0%,100%,.5)}.swagger-ui .hover-bg-white-40:focus,.swagger-ui .hover-bg-white-40:hover{background-color:hsla(0,0%,100%,.4)}.swagger-ui .hover-bg-white-30:focus,.swagger-ui .hover-bg-white-30:hover{background-color:hsla(0,0%,100%,.3)}.swagger-ui .hover-bg-white-20:focus,.swagger-ui .hover-bg-white-20:hover{background-color:hsla(0,0%,100%,.2)}.swagger-ui .hover-bg-white-10:focus,.swagger-ui .hover-bg-white-10:hover{background-color:hsla(0,0%,100%,.1)}.swagger-ui .hover-dark-red:focus,.swagger-ui .hover-dark-red:hover{color:#e7040f}.swagger-ui .hover-red:focus,.swagger-ui .hover-red:hover{color:#ff4136}.swagger-ui .hover-light-red:focus,.swagger-ui .hover-light-red:hover{color:#ff725c}.swagger-ui .hover-orange:focus,.swagger-ui .hover-orange:hover{color:#ff6300}.swagger-ui .hover-gold:focus,.swagger-ui .hover-gold:hover{color:#ffb700}.swagger-ui .hover-yellow:focus,.swagger-ui .hover-yellow:hover{color:gold}.swagger-ui .hover-light-yellow:focus,.swagger-ui .hover-light-yellow:hover{color:#fbf1a9}.swagger-ui .hover-purple:focus,.swagger-ui .hover-purple:hover{color:#5e2ca5}.swagger-ui .hover-light-purple:focus,.swagger-ui .hover-light-purple:hover{color:#a463f2}.swagger-ui .hover-dark-pink:focus,.swagger-ui .hover-dark-pink:hover{color:#d5008f}.swagger-ui .hover-hot-pink:focus,.swagger-ui .hover-hot-pink:hover{color:#ff41b4}.swagger-ui .hover-pink:focus,.swagger-ui .hover-pink:hover{color:#ff80cc}.swagger-ui .hover-light-pink:focus,.swagger-ui .hover-light-pink:hover{color:#ffa3d7}.swagger-ui .hover-dark-green:focus,.swagger-ui .hover-dark-green:hover{color:#137752}.swagger-ui .hover-green:focus,.swagger-ui .hover-green:hover{color:#19a974}.swagger-ui .hover-light-green:focus,.swagger-ui .hover-light-green:hover{color:#9eebcf}.swagger-ui .hover-navy:focus,.swagger-ui .hover-navy:hover{color:#001b44}.swagger-ui .hover-dark-blue:focus,.swagger-ui .hover-dark-blue:hover{color:#00449e}.swagger-ui .hover-blue:focus,.swagger-ui .hover-blue:hover{color:#357edd}.swagger-ui .hover-light-blue:focus,.swagger-ui .hover-light-blue:hover{color:#96ccff}.swagger-ui .hover-lightest-blue:focus,.swagger-ui .hover-lightest-blue:hover{color:#cdecff}.swagger-ui .hover-washed-blue:focus,.swagger-ui .hover-washed-blue:hover{color:#f6fffe}.swagger-ui .hover-washed-green:focus,.swagger-ui .hover-washed-green:hover{color:#e8fdf5}.swagger-ui .hover-washed-yellow:focus,.swagger-ui .hover-washed-yellow:hover{color:#fffceb}.swagger-ui .hover-washed-red:focus,.swagger-ui .hover-washed-red:hover{color:#ffdfdf}.swagger-ui .hover-bg-dark-red:focus,.swagger-ui .hover-bg-dark-red:hover{background-color:#e7040f}.swagger-ui .hover-bg-red:focus,.swagger-ui .hover-bg-red:hover{background-color:#ff4136}.swagger-ui .hover-bg-light-red:focus,.swagger-ui .hover-bg-light-red:hover{background-color:#ff725c}.swagger-ui .hover-bg-orange:focus,.swagger-ui .hover-bg-orange:hover{background-color:#ff6300}.swagger-ui .hover-bg-gold:focus,.swagger-ui .hover-bg-gold:hover{background-color:#ffb700}.swagger-ui .hover-bg-yellow:focus,.swagger-ui .hover-bg-yellow:hover{background-color:gold}.swagger-ui .hover-bg-light-yellow:focus,.swagger-ui .hover-bg-light-yellow:hover{background-color:#fbf1a9}.swagger-ui .hover-bg-purple:focus,.swagger-ui .hover-bg-purple:hover{background-color:#5e2ca5}.swagger-ui .hover-bg-light-purple:focus,.swagger-ui .hover-bg-light-purple:hover{background-color:#a463f2}.swagger-ui .hover-bg-dark-pink:focus,.swagger-ui .hover-bg-dark-pink:hover{background-color:#d5008f}.swagger-ui .hover-bg-hot-pink:focus,.swagger-ui .hover-bg-hot-pink:hover{background-color:#ff41b4}.swagger-ui .hover-bg-pink:focus,.swagger-ui .hover-bg-pink:hover{background-color:#ff80cc}.swagger-ui .hover-bg-light-pink:focus,.swagger-ui .hover-bg-light-pink:hover{background-color:#ffa3d7}.swagger-ui .hover-bg-dark-green:focus,.swagger-ui .hover-bg-dark-green:hover{background-color:#137752}.swagger-ui .hover-bg-green:focus,.swagger-ui .hover-bg-green:hover{background-color:#19a974}.swagger-ui .hover-bg-light-green:focus,.swagger-ui .hover-bg-light-green:hover{background-color:#9eebcf}.swagger-ui .hover-bg-navy:focus,.swagger-ui .hover-bg-navy:hover{background-color:#001b44}.swagger-ui .hover-bg-dark-blue:focus,.swagger-ui .hover-bg-dark-blue:hover{background-color:#00449e}.swagger-ui .hover-bg-blue:focus,.swagger-ui .hover-bg-blue:hover{background-color:#357edd}.swagger-ui .hover-bg-light-blue:focus,.swagger-ui .hover-bg-light-blue:hover{background-color:#96ccff}.swagger-ui .hover-bg-lightest-blue:focus,.swagger-ui .hover-bg-lightest-blue:hover{background-color:#cdecff}.swagger-ui .hover-bg-washed-blue:focus,.swagger-ui .hover-bg-washed-blue:hover{background-color:#f6fffe}.swagger-ui .hover-bg-washed-green:focus,.swagger-ui .hover-bg-washed-green:hover{background-color:#e8fdf5}.swagger-ui .hover-bg-washed-yellow:focus,.swagger-ui .hover-bg-washed-yellow:hover{background-color:#fffceb}.swagger-ui .hover-bg-washed-red:focus,.swagger-ui .hover-bg-washed-red:hover{background-color:#ffdfdf}.swagger-ui .hover-bg-inherit:focus,.swagger-ui .hover-bg-inherit:hover{background-color:inherit}.swagger-ui .pa0{padding:0}.swagger-ui .pa1{padding:.25rem}.swagger-ui .pa2{padding:.5rem}.swagger-ui .pa3{padding:1rem}.swagger-ui .pa4{padding:2rem}.swagger-ui .pa5{padding:4rem}.swagger-ui .pa6{padding:8rem}.swagger-ui .pa7{padding:16rem}.swagger-ui .pl0{padding-left:0}.swagger-ui .pl1{padding-left:.25rem}.swagger-ui .pl2{padding-left:.5rem}.swagger-ui .pl3{padding-left:1rem}.swagger-ui .pl4{padding-left:2rem}.swagger-ui .pl5{padding-left:4rem}.swagger-ui .pl6{padding-left:8rem}.swagger-ui .pl7{padding-left:16rem}.swagger-ui .pr0{padding-right:0}.swagger-ui .pr1{padding-right:.25rem}.swagger-ui .pr2{padding-right:.5rem}.swagger-ui .pr3{padding-right:1rem}.swagger-ui .pr4{padding-right:2rem}.swagger-ui .pr5{padding-right:4rem}.swagger-ui .pr6{padding-right:8rem}.swagger-ui .pr7{padding-right:16rem}.swagger-ui .pb0{padding-bottom:0}.swagger-ui .pb1{padding-bottom:.25rem}.swagger-ui .pb2{padding-bottom:.5rem}.swagger-ui .pb3{padding-bottom:1rem}.swagger-ui .pb4{padding-bottom:2rem}.swagger-ui .pb5{padding-bottom:4rem}.swagger-ui .pb6{padding-bottom:8rem}.swagger-ui .pb7{padding-bottom:16rem}.swagger-ui .pt0{padding-top:0}.swagger-ui .pt1{padding-top:.25rem}.swagger-ui .pt2{padding-top:.5rem}.swagger-ui .pt3{padding-top:1rem}.swagger-ui .pt4{padding-top:2rem}.swagger-ui .pt5{padding-top:4rem}.swagger-ui .pt6{padding-top:8rem}.swagger-ui .pt7{padding-top:16rem}.swagger-ui .pv0{padding-top:0;padding-bottom:0}.swagger-ui .pv1{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0{padding-left:0;padding-right:0}.swagger-ui .ph1{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0{margin:0}.swagger-ui .ma1{margin:.25rem}.swagger-ui .ma2{margin:.5rem}.swagger-ui .ma3{margin:1rem}.swagger-ui .ma4{margin:2rem}.swagger-ui .ma5{margin:4rem}.swagger-ui .ma6{margin:8rem}.swagger-ui .ma7{margin:16rem}.swagger-ui .ml0{margin-left:0}.swagger-ui .ml1{margin-left:.25rem}.swagger-ui .ml2{margin-left:.5rem}.swagger-ui .ml3{margin-left:1rem}.swagger-ui .ml4{margin-left:2rem}.swagger-ui .ml5{margin-left:4rem}.swagger-ui .ml6{margin-left:8rem}.swagger-ui .ml7{margin-left:16rem}.swagger-ui .mr0{margin-right:0}.swagger-ui .mr1{margin-right:.25rem}.swagger-ui .mr2{margin-right:.5rem}.swagger-ui .mr3{margin-right:1rem}.swagger-ui .mr4{margin-right:2rem}.swagger-ui .mr5{margin-right:4rem}.swagger-ui .mr6{margin-right:8rem}.swagger-ui .mr7{margin-right:16rem}.swagger-ui .mb0{margin-bottom:0}.swagger-ui .mb1{margin-bottom:.25rem}.swagger-ui .mb2{margin-bottom:.5rem}.swagger-ui .mb3{margin-bottom:1rem}.swagger-ui .mb4{margin-bottom:2rem}.swagger-ui .mb5{margin-bottom:4rem}.swagger-ui .mb6{margin-bottom:8rem}.swagger-ui .mb7{margin-bottom:16rem}.swagger-ui .mt0{margin-top:0}.swagger-ui .mt1{margin-top:.25rem}.swagger-ui .mt2{margin-top:.5rem}.swagger-ui .mt3{margin-top:1rem}.swagger-ui .mt4{margin-top:2rem}.swagger-ui .mt5{margin-top:4rem}.swagger-ui .mt6{margin-top:8rem}.swagger-ui .mt7{margin-top:16rem}.swagger-ui .mv0{margin-top:0;margin-bottom:0}.swagger-ui .mv1{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0{margin-left:0;margin-right:0}.swagger-ui .mh1{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7{margin-left:16rem;margin-right:16rem}@media screen and (min-width:30em){.swagger-ui .pa0-ns{padding:0}.swagger-ui .pa1-ns{padding:.25rem}.swagger-ui .pa2-ns{padding:.5rem}.swagger-ui .pa3-ns{padding:1rem}.swagger-ui .pa4-ns{padding:2rem}.swagger-ui .pa5-ns{padding:4rem}.swagger-ui .pa6-ns{padding:8rem}.swagger-ui .pa7-ns{padding:16rem}.swagger-ui .pl0-ns{padding-left:0}.swagger-ui .pl1-ns{padding-left:.25rem}.swagger-ui .pl2-ns{padding-left:.5rem}.swagger-ui .pl3-ns{padding-left:1rem}.swagger-ui .pl4-ns{padding-left:2rem}.swagger-ui .pl5-ns{padding-left:4rem}.swagger-ui .pl6-ns{padding-left:8rem}.swagger-ui .pl7-ns{padding-left:16rem}.swagger-ui .pr0-ns{padding-right:0}.swagger-ui .pr1-ns{padding-right:.25rem}.swagger-ui .pr2-ns{padding-right:.5rem}.swagger-ui .pr3-ns{padding-right:1rem}.swagger-ui .pr4-ns{padding-right:2rem}.swagger-ui .pr5-ns{padding-right:4rem}.swagger-ui .pr6-ns{padding-right:8rem}.swagger-ui .pr7-ns{padding-right:16rem}.swagger-ui .pb0-ns{padding-bottom:0}.swagger-ui .pb1-ns{padding-bottom:.25rem}.swagger-ui .pb2-ns{padding-bottom:.5rem}.swagger-ui .pb3-ns{padding-bottom:1rem}.swagger-ui .pb4-ns{padding-bottom:2rem}.swagger-ui .pb5-ns{padding-bottom:4rem}.swagger-ui .pb6-ns{padding-bottom:8rem}.swagger-ui .pb7-ns{padding-bottom:16rem}.swagger-ui .pt0-ns{padding-top:0}.swagger-ui .pt1-ns{padding-top:.25rem}.swagger-ui .pt2-ns{padding-top:.5rem}.swagger-ui .pt3-ns{padding-top:1rem}.swagger-ui .pt4-ns{padding-top:2rem}.swagger-ui .pt5-ns{padding-top:4rem}.swagger-ui .pt6-ns{padding-top:8rem}.swagger-ui .pt7-ns{padding-top:16rem}.swagger-ui .pv0-ns{padding-top:0;padding-bottom:0}.swagger-ui .pv1-ns{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-ns{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-ns{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-ns{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-ns{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-ns{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-ns{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-ns{padding-left:0;padding-right:0}.swagger-ui .ph1-ns{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-ns{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-ns{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-ns{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-ns{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-ns{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-ns{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-ns{margin:0}.swagger-ui .ma1-ns{margin:.25rem}.swagger-ui .ma2-ns{margin:.5rem}.swagger-ui .ma3-ns{margin:1rem}.swagger-ui .ma4-ns{margin:2rem}.swagger-ui .ma5-ns{margin:4rem}.swagger-ui .ma6-ns{margin:8rem}.swagger-ui .ma7-ns{margin:16rem}.swagger-ui .ml0-ns{margin-left:0}.swagger-ui .ml1-ns{margin-left:.25rem}.swagger-ui .ml2-ns{margin-left:.5rem}.swagger-ui .ml3-ns{margin-left:1rem}.swagger-ui .ml4-ns{margin-left:2rem}.swagger-ui .ml5-ns{margin-left:4rem}.swagger-ui .ml6-ns{margin-left:8rem}.swagger-ui .ml7-ns{margin-left:16rem}.swagger-ui .mr0-ns{margin-right:0}.swagger-ui .mr1-ns{margin-right:.25rem}.swagger-ui .mr2-ns{margin-right:.5rem}.swagger-ui .mr3-ns{margin-right:1rem}.swagger-ui .mr4-ns{margin-right:2rem}.swagger-ui .mr5-ns{margin-right:4rem}.swagger-ui .mr6-ns{margin-right:8rem}.swagger-ui .mr7-ns{margin-right:16rem}.swagger-ui .mb0-ns{margin-bottom:0}.swagger-ui .mb1-ns{margin-bottom:.25rem}.swagger-ui .mb2-ns{margin-bottom:.5rem}.swagger-ui .mb3-ns{margin-bottom:1rem}.swagger-ui .mb4-ns{margin-bottom:2rem}.swagger-ui .mb5-ns{margin-bottom:4rem}.swagger-ui .mb6-ns{margin-bottom:8rem}.swagger-ui .mb7-ns{margin-bottom:16rem}.swagger-ui .mt0-ns{margin-top:0}.swagger-ui .mt1-ns{margin-top:.25rem}.swagger-ui .mt2-ns{margin-top:.5rem}.swagger-ui .mt3-ns{margin-top:1rem}.swagger-ui .mt4-ns{margin-top:2rem}.swagger-ui .mt5-ns{margin-top:4rem}.swagger-ui .mt6-ns{margin-top:8rem}.swagger-ui .mt7-ns{margin-top:16rem}.swagger-ui .mv0-ns{margin-top:0;margin-bottom:0}.swagger-ui .mv1-ns{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-ns{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-ns{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-ns{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-ns{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-ns{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-ns{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-ns{margin-left:0;margin-right:0}.swagger-ui .mh1-ns{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-ns{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-ns{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-ns{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-ns{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-ns{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-ns{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .pa0-m{padding:0}.swagger-ui .pa1-m{padding:.25rem}.swagger-ui .pa2-m{padding:.5rem}.swagger-ui .pa3-m{padding:1rem}.swagger-ui .pa4-m{padding:2rem}.swagger-ui .pa5-m{padding:4rem}.swagger-ui .pa6-m{padding:8rem}.swagger-ui .pa7-m{padding:16rem}.swagger-ui .pl0-m{padding-left:0}.swagger-ui .pl1-m{padding-left:.25rem}.swagger-ui .pl2-m{padding-left:.5rem}.swagger-ui .pl3-m{padding-left:1rem}.swagger-ui .pl4-m{padding-left:2rem}.swagger-ui .pl5-m{padding-left:4rem}.swagger-ui .pl6-m{padding-left:8rem}.swagger-ui .pl7-m{padding-left:16rem}.swagger-ui .pr0-m{padding-right:0}.swagger-ui .pr1-m{padding-right:.25rem}.swagger-ui .pr2-m{padding-right:.5rem}.swagger-ui .pr3-m{padding-right:1rem}.swagger-ui .pr4-m{padding-right:2rem}.swagger-ui .pr5-m{padding-right:4rem}.swagger-ui .pr6-m{padding-right:8rem}.swagger-ui .pr7-m{padding-right:16rem}.swagger-ui .pb0-m{padding-bottom:0}.swagger-ui .pb1-m{padding-bottom:.25rem}.swagger-ui .pb2-m{padding-bottom:.5rem}.swagger-ui .pb3-m{padding-bottom:1rem}.swagger-ui .pb4-m{padding-bottom:2rem}.swagger-ui .pb5-m{padding-bottom:4rem}.swagger-ui .pb6-m{padding-bottom:8rem}.swagger-ui .pb7-m{padding-bottom:16rem}.swagger-ui .pt0-m{padding-top:0}.swagger-ui .pt1-m{padding-top:.25rem}.swagger-ui .pt2-m{padding-top:.5rem}.swagger-ui .pt3-m{padding-top:1rem}.swagger-ui .pt4-m{padding-top:2rem}.swagger-ui .pt5-m{padding-top:4rem}.swagger-ui .pt6-m{padding-top:8rem}.swagger-ui .pt7-m{padding-top:16rem}.swagger-ui .pv0-m{padding-top:0;padding-bottom:0}.swagger-ui .pv1-m{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-m{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-m{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-m{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-m{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-m{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-m{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-m{padding-left:0;padding-right:0}.swagger-ui .ph1-m{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-m{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-m{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-m{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-m{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-m{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-m{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-m{margin:0}.swagger-ui .ma1-m{margin:.25rem}.swagger-ui .ma2-m{margin:.5rem}.swagger-ui .ma3-m{margin:1rem}.swagger-ui .ma4-m{margin:2rem}.swagger-ui .ma5-m{margin:4rem}.swagger-ui .ma6-m{margin:8rem}.swagger-ui .ma7-m{margin:16rem}.swagger-ui .ml0-m{margin-left:0}.swagger-ui .ml1-m{margin-left:.25rem}.swagger-ui .ml2-m{margin-left:.5rem}.swagger-ui .ml3-m{margin-left:1rem}.swagger-ui .ml4-m{margin-left:2rem}.swagger-ui .ml5-m{margin-left:4rem}.swagger-ui .ml6-m{margin-left:8rem}.swagger-ui .ml7-m{margin-left:16rem}.swagger-ui .mr0-m{margin-right:0}.swagger-ui .mr1-m{margin-right:.25rem}.swagger-ui .mr2-m{margin-right:.5rem}.swagger-ui .mr3-m{margin-right:1rem}.swagger-ui .mr4-m{margin-right:2rem}.swagger-ui .mr5-m{margin-right:4rem}.swagger-ui .mr6-m{margin-right:8rem}.swagger-ui .mr7-m{margin-right:16rem}.swagger-ui .mb0-m{margin-bottom:0}.swagger-ui .mb1-m{margin-bottom:.25rem}.swagger-ui .mb2-m{margin-bottom:.5rem}.swagger-ui .mb3-m{margin-bottom:1rem}.swagger-ui .mb4-m{margin-bottom:2rem}.swagger-ui .mb5-m{margin-bottom:4rem}.swagger-ui .mb6-m{margin-bottom:8rem}.swagger-ui .mb7-m{margin-bottom:16rem}.swagger-ui .mt0-m{margin-top:0}.swagger-ui .mt1-m{margin-top:.25rem}.swagger-ui .mt2-m{margin-top:.5rem}.swagger-ui .mt3-m{margin-top:1rem}.swagger-ui .mt4-m{margin-top:2rem}.swagger-ui .mt5-m{margin-top:4rem}.swagger-ui .mt6-m{margin-top:8rem}.swagger-ui .mt7-m{margin-top:16rem}.swagger-ui .mv0-m{margin-top:0;margin-bottom:0}.swagger-ui .mv1-m{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-m{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-m{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-m{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-m{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-m{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-m{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-m{margin-left:0;margin-right:0}.swagger-ui .mh1-m{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-m{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-m{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-m{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-m{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-m{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-m{margin-left:16rem;margin-right:16rem}}@media screen and (min-width:60em){.swagger-ui .pa0-l{padding:0}.swagger-ui .pa1-l{padding:.25rem}.swagger-ui .pa2-l{padding:.5rem}.swagger-ui .pa3-l{padding:1rem}.swagger-ui .pa4-l{padding:2rem}.swagger-ui .pa5-l{padding:4rem}.swagger-ui .pa6-l{padding:8rem}.swagger-ui .pa7-l{padding:16rem}.swagger-ui .pl0-l{padding-left:0}.swagger-ui .pl1-l{padding-left:.25rem}.swagger-ui .pl2-l{padding-left:.5rem}.swagger-ui .pl3-l{padding-left:1rem}.swagger-ui .pl4-l{padding-left:2rem}.swagger-ui .pl5-l{padding-left:4rem}.swagger-ui .pl6-l{padding-left:8rem}.swagger-ui .pl7-l{padding-left:16rem}.swagger-ui .pr0-l{padding-right:0}.swagger-ui .pr1-l{padding-right:.25rem}.swagger-ui .pr2-l{padding-right:.5rem}.swagger-ui .pr3-l{padding-right:1rem}.swagger-ui .pr4-l{padding-right:2rem}.swagger-ui .pr5-l{padding-right:4rem}.swagger-ui .pr6-l{padding-right:8rem}.swagger-ui .pr7-l{padding-right:16rem}.swagger-ui .pb0-l{padding-bottom:0}.swagger-ui .pb1-l{padding-bottom:.25rem}.swagger-ui .pb2-l{padding-bottom:.5rem}.swagger-ui .pb3-l{padding-bottom:1rem}.swagger-ui .pb4-l{padding-bottom:2rem}.swagger-ui .pb5-l{padding-bottom:4rem}.swagger-ui .pb6-l{padding-bottom:8rem}.swagger-ui .pb7-l{padding-bottom:16rem}.swagger-ui .pt0-l{padding-top:0}.swagger-ui .pt1-l{padding-top:.25rem}.swagger-ui .pt2-l{padding-top:.5rem}.swagger-ui .pt3-l{padding-top:1rem}.swagger-ui .pt4-l{padding-top:2rem}.swagger-ui .pt5-l{padding-top:4rem}.swagger-ui .pt6-l{padding-top:8rem}.swagger-ui .pt7-l{padding-top:16rem}.swagger-ui .pv0-l{padding-top:0;padding-bottom:0}.swagger-ui .pv1-l{padding-top:.25rem;padding-bottom:.25rem}.swagger-ui .pv2-l{padding-top:.5rem;padding-bottom:.5rem}.swagger-ui .pv3-l{padding-top:1rem;padding-bottom:1rem}.swagger-ui .pv4-l{padding-top:2rem;padding-bottom:2rem}.swagger-ui .pv5-l{padding-top:4rem;padding-bottom:4rem}.swagger-ui .pv6-l{padding-top:8rem;padding-bottom:8rem}.swagger-ui .pv7-l{padding-top:16rem;padding-bottom:16rem}.swagger-ui .ph0-l{padding-left:0;padding-right:0}.swagger-ui .ph1-l{padding-left:.25rem;padding-right:.25rem}.swagger-ui .ph2-l{padding-left:.5rem;padding-right:.5rem}.swagger-ui .ph3-l{padding-left:1rem;padding-right:1rem}.swagger-ui .ph4-l{padding-left:2rem;padding-right:2rem}.swagger-ui .ph5-l{padding-left:4rem;padding-right:4rem}.swagger-ui .ph6-l{padding-left:8rem;padding-right:8rem}.swagger-ui .ph7-l{padding-left:16rem;padding-right:16rem}.swagger-ui .ma0-l{margin:0}.swagger-ui .ma1-l{margin:.25rem}.swagger-ui .ma2-l{margin:.5rem}.swagger-ui .ma3-l{margin:1rem}.swagger-ui .ma4-l{margin:2rem}.swagger-ui .ma5-l{margin:4rem}.swagger-ui .ma6-l{margin:8rem}.swagger-ui .ma7-l{margin:16rem}.swagger-ui .ml0-l{margin-left:0}.swagger-ui .ml1-l{margin-left:.25rem}.swagger-ui .ml2-l{margin-left:.5rem}.swagger-ui .ml3-l{margin-left:1rem}.swagger-ui .ml4-l{margin-left:2rem}.swagger-ui .ml5-l{margin-left:4rem}.swagger-ui .ml6-l{margin-left:8rem}.swagger-ui .ml7-l{margin-left:16rem}.swagger-ui .mr0-l{margin-right:0}.swagger-ui .mr1-l{margin-right:.25rem}.swagger-ui .mr2-l{margin-right:.5rem}.swagger-ui .mr3-l{margin-right:1rem}.swagger-ui .mr4-l{margin-right:2rem}.swagger-ui .mr5-l{margin-right:4rem}.swagger-ui .mr6-l{margin-right:8rem}.swagger-ui .mr7-l{margin-right:16rem}.swagger-ui .mb0-l{margin-bottom:0}.swagger-ui .mb1-l{margin-bottom:.25rem}.swagger-ui .mb2-l{margin-bottom:.5rem}.swagger-ui .mb3-l{margin-bottom:1rem}.swagger-ui .mb4-l{margin-bottom:2rem}.swagger-ui .mb5-l{margin-bottom:4rem}.swagger-ui .mb6-l{margin-bottom:8rem}.swagger-ui .mb7-l{margin-bottom:16rem}.swagger-ui .mt0-l{margin-top:0}.swagger-ui .mt1-l{margin-top:.25rem}.swagger-ui .mt2-l{margin-top:.5rem}.swagger-ui .mt3-l{margin-top:1rem}.swagger-ui .mt4-l{margin-top:2rem}.swagger-ui .mt5-l{margin-top:4rem}.swagger-ui .mt6-l{margin-top:8rem}.swagger-ui .mt7-l{margin-top:16rem}.swagger-ui .mv0-l{margin-top:0;margin-bottom:0}.swagger-ui .mv1-l{margin-top:.25rem;margin-bottom:.25rem}.swagger-ui .mv2-l{margin-top:.5rem;margin-bottom:.5rem}.swagger-ui .mv3-l{margin-top:1rem;margin-bottom:1rem}.swagger-ui .mv4-l{margin-top:2rem;margin-bottom:2rem}.swagger-ui .mv5-l{margin-top:4rem;margin-bottom:4rem}.swagger-ui .mv6-l{margin-top:8rem;margin-bottom:8rem}.swagger-ui .mv7-l{margin-top:16rem;margin-bottom:16rem}.swagger-ui .mh0-l{margin-left:0;margin-right:0}.swagger-ui .mh1-l{margin-left:.25rem;margin-right:.25rem}.swagger-ui .mh2-l{margin-left:.5rem;margin-right:.5rem}.swagger-ui .mh3-l{margin-left:1rem;margin-right:1rem}.swagger-ui .mh4-l{margin-left:2rem;margin-right:2rem}.swagger-ui .mh5-l{margin-left:4rem;margin-right:4rem}.swagger-ui .mh6-l{margin-left:8rem;margin-right:8rem}.swagger-ui .mh7-l{margin-left:16rem;margin-right:16rem}}.swagger-ui .na1{margin:-.25rem}.swagger-ui .na2{margin:-.5rem}.swagger-ui .na3{margin:-1rem}.swagger-ui .na4{margin:-2rem}.swagger-ui .na5{margin:-4rem}.swagger-ui .na6{margin:-8rem}.swagger-ui .na7{margin:-16rem}.swagger-ui .nl1{margin-left:-.25rem}.swagger-ui .nl2{margin-left:-.5rem}.swagger-ui .nl3{margin-left:-1rem}.swagger-ui .nl4{margin-left:-2rem}.swagger-ui .nl5{margin-left:-4rem}.swagger-ui .nl6{margin-left:-8rem}.swagger-ui .nl7{margin-left:-16rem}.swagger-ui .nr1{margin-right:-.25rem}.swagger-ui .nr2{margin-right:-.5rem}.swagger-ui .nr3{margin-right:-1rem}.swagger-ui .nr4{margin-right:-2rem}.swagger-ui .nr5{margin-right:-4rem}.swagger-ui .nr6{margin-right:-8rem}.swagger-ui .nr7{margin-right:-16rem}.swagger-ui .nb1{margin-bottom:-.25rem}.swagger-ui .nb2{margin-bottom:-.5rem}.swagger-ui .nb3{margin-bottom:-1rem}.swagger-ui .nb4{margin-bottom:-2rem}.swagger-ui .nb5{margin-bottom:-4rem}.swagger-ui .nb6{margin-bottom:-8rem}.swagger-ui .nb7{margin-bottom:-16rem}.swagger-ui .nt1{margin-top:-.25rem}.swagger-ui .nt2{margin-top:-.5rem}.swagger-ui .nt3{margin-top:-1rem}.swagger-ui .nt4{margin-top:-2rem}.swagger-ui .nt5{margin-top:-4rem}.swagger-ui .nt6{margin-top:-8rem}.swagger-ui .nt7{margin-top:-16rem}@media screen and (min-width:30em){.swagger-ui .na1-ns{margin:-.25rem}.swagger-ui .na2-ns{margin:-.5rem}.swagger-ui .na3-ns{margin:-1rem}.swagger-ui .na4-ns{margin:-2rem}.swagger-ui .na5-ns{margin:-4rem}.swagger-ui .na6-ns{margin:-8rem}.swagger-ui .na7-ns{margin:-16rem}.swagger-ui .nl1-ns{margin-left:-.25rem}.swagger-ui .nl2-ns{margin-left:-.5rem}.swagger-ui .nl3-ns{margin-left:-1rem}.swagger-ui .nl4-ns{margin-left:-2rem}.swagger-ui .nl5-ns{margin-left:-4rem}.swagger-ui .nl6-ns{margin-left:-8rem}.swagger-ui .nl7-ns{margin-left:-16rem}.swagger-ui .nr1-ns{margin-right:-.25rem}.swagger-ui .nr2-ns{margin-right:-.5rem}.swagger-ui .nr3-ns{margin-right:-1rem}.swagger-ui .nr4-ns{margin-right:-2rem}.swagger-ui .nr5-ns{margin-right:-4rem}.swagger-ui .nr6-ns{margin-right:-8rem}.swagger-ui .nr7-ns{margin-right:-16rem}.swagger-ui .nb1-ns{margin-bottom:-.25rem}.swagger-ui .nb2-ns{margin-bottom:-.5rem}.swagger-ui .nb3-ns{margin-bottom:-1rem}.swagger-ui .nb4-ns{margin-bottom:-2rem}.swagger-ui .nb5-ns{margin-bottom:-4rem}.swagger-ui .nb6-ns{margin-bottom:-8rem}.swagger-ui .nb7-ns{margin-bottom:-16rem}.swagger-ui .nt1-ns{margin-top:-.25rem}.swagger-ui .nt2-ns{margin-top:-.5rem}.swagger-ui .nt3-ns{margin-top:-1rem}.swagger-ui .nt4-ns{margin-top:-2rem}.swagger-ui .nt5-ns{margin-top:-4rem}.swagger-ui .nt6-ns{margin-top:-8rem}.swagger-ui .nt7-ns{margin-top:-16rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .na1-m{margin:-.25rem}.swagger-ui .na2-m{margin:-.5rem}.swagger-ui .na3-m{margin:-1rem}.swagger-ui .na4-m{margin:-2rem}.swagger-ui .na5-m{margin:-4rem}.swagger-ui .na6-m{margin:-8rem}.swagger-ui .na7-m{margin:-16rem}.swagger-ui .nl1-m{margin-left:-.25rem}.swagger-ui .nl2-m{margin-left:-.5rem}.swagger-ui .nl3-m{margin-left:-1rem}.swagger-ui .nl4-m{margin-left:-2rem}.swagger-ui .nl5-m{margin-left:-4rem}.swagger-ui .nl6-m{margin-left:-8rem}.swagger-ui .nl7-m{margin-left:-16rem}.swagger-ui .nr1-m{margin-right:-.25rem}.swagger-ui .nr2-m{margin-right:-.5rem}.swagger-ui .nr3-m{margin-right:-1rem}.swagger-ui .nr4-m{margin-right:-2rem}.swagger-ui .nr5-m{margin-right:-4rem}.swagger-ui .nr6-m{margin-right:-8rem}.swagger-ui .nr7-m{margin-right:-16rem}.swagger-ui .nb1-m{margin-bottom:-.25rem}.swagger-ui .nb2-m{margin-bottom:-.5rem}.swagger-ui .nb3-m{margin-bottom:-1rem}.swagger-ui .nb4-m{margin-bottom:-2rem}.swagger-ui .nb5-m{margin-bottom:-4rem}.swagger-ui .nb6-m{margin-bottom:-8rem}.swagger-ui .nb7-m{margin-bottom:-16rem}.swagger-ui .nt1-m{margin-top:-.25rem}.swagger-ui .nt2-m{margin-top:-.5rem}.swagger-ui .nt3-m{margin-top:-1rem}.swagger-ui .nt4-m{margin-top:-2rem}.swagger-ui .nt5-m{margin-top:-4rem}.swagger-ui .nt6-m{margin-top:-8rem}.swagger-ui .nt7-m{margin-top:-16rem}}@media screen and (min-width:60em){.swagger-ui .na1-l{margin:-.25rem}.swagger-ui .na2-l{margin:-.5rem}.swagger-ui .na3-l{margin:-1rem}.swagger-ui .na4-l{margin:-2rem}.swagger-ui .na5-l{margin:-4rem}.swagger-ui .na6-l{margin:-8rem}.swagger-ui .na7-l{margin:-16rem}.swagger-ui .nl1-l{margin-left:-.25rem}.swagger-ui .nl2-l{margin-left:-.5rem}.swagger-ui .nl3-l{margin-left:-1rem}.swagger-ui .nl4-l{margin-left:-2rem}.swagger-ui .nl5-l{margin-left:-4rem}.swagger-ui .nl6-l{margin-left:-8rem}.swagger-ui .nl7-l{margin-left:-16rem}.swagger-ui .nr1-l{margin-right:-.25rem}.swagger-ui .nr2-l{margin-right:-.5rem}.swagger-ui .nr3-l{margin-right:-1rem}.swagger-ui .nr4-l{margin-right:-2rem}.swagger-ui .nr5-l{margin-right:-4rem}.swagger-ui .nr6-l{margin-right:-8rem}.swagger-ui .nr7-l{margin-right:-16rem}.swagger-ui .nb1-l{margin-bottom:-.25rem}.swagger-ui .nb2-l{margin-bottom:-.5rem}.swagger-ui .nb3-l{margin-bottom:-1rem}.swagger-ui .nb4-l{margin-bottom:-2rem}.swagger-ui .nb5-l{margin-bottom:-4rem}.swagger-ui .nb6-l{margin-bottom:-8rem}.swagger-ui .nb7-l{margin-bottom:-16rem}.swagger-ui .nt1-l{margin-top:-.25rem}.swagger-ui .nt2-l{margin-top:-.5rem}.swagger-ui .nt3-l{margin-top:-1rem}.swagger-ui .nt4-l{margin-top:-2rem}.swagger-ui .nt5-l{margin-top:-4rem}.swagger-ui .nt6-l{margin-top:-8rem}.swagger-ui .nt7-l{margin-top:-16rem}}.swagger-ui .collapse{border-collapse:collapse;border-spacing:0}.swagger-ui .striped--light-silver:nth-child(odd){background-color:#aaa}.swagger-ui .striped--moon-gray:nth-child(odd){background-color:#ccc}.swagger-ui .striped--light-gray:nth-child(odd){background-color:#eee}.swagger-ui .striped--near-white:nth-child(odd){background-color:#f4f4f4}.swagger-ui .stripe-light:nth-child(odd){background-color:hsla(0,0%,100%,.1)}.swagger-ui .stripe-dark:nth-child(odd){background-color:rgba(0,0,0,.1)}.swagger-ui .strike{text-decoration:line-through}.swagger-ui .underline{text-decoration:underline}.swagger-ui .no-underline{text-decoration:none}@media screen and (min-width:30em){.swagger-ui .strike-ns{text-decoration:line-through}.swagger-ui .underline-ns{text-decoration:underline}.swagger-ui .no-underline-ns{text-decoration:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .strike-m{text-decoration:line-through}.swagger-ui .underline-m{text-decoration:underline}.swagger-ui .no-underline-m{text-decoration:none}}@media screen and (min-width:60em){.swagger-ui .strike-l{text-decoration:line-through}.swagger-ui .underline-l{text-decoration:underline}.swagger-ui .no-underline-l{text-decoration:none}}.swagger-ui .tl{text-align:left}.swagger-ui .tr{text-align:right}.swagger-ui .tc{text-align:center}.swagger-ui .tj{text-align:justify}@media screen and (min-width:30em){.swagger-ui .tl-ns{text-align:left}.swagger-ui .tr-ns{text-align:right}.swagger-ui .tc-ns{text-align:center}.swagger-ui .tj-ns{text-align:justify}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .tl-m{text-align:left}.swagger-ui .tr-m{text-align:right}.swagger-ui .tc-m{text-align:center}.swagger-ui .tj-m{text-align:justify}}@media screen and (min-width:60em){.swagger-ui .tl-l{text-align:left}.swagger-ui .tr-l{text-align:right}.swagger-ui .tc-l{text-align:center}.swagger-ui .tj-l{text-align:justify}}.swagger-ui .ttc{text-transform:capitalize}.swagger-ui .ttl{text-transform:lowercase}.swagger-ui .ttu{text-transform:uppercase}.swagger-ui .ttn{text-transform:none}@media screen and (min-width:30em){.swagger-ui .ttc-ns{text-transform:capitalize}.swagger-ui .ttl-ns{text-transform:lowercase}.swagger-ui .ttu-ns{text-transform:uppercase}.swagger-ui .ttn-ns{text-transform:none}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ttc-m{text-transform:capitalize}.swagger-ui .ttl-m{text-transform:lowercase}.swagger-ui .ttu-m{text-transform:uppercase}.swagger-ui .ttn-m{text-transform:none}}@media screen and (min-width:60em){.swagger-ui .ttc-l{text-transform:capitalize}.swagger-ui .ttl-l{text-transform:lowercase}.swagger-ui .ttu-l{text-transform:uppercase}.swagger-ui .ttn-l{text-transform:none}}.swagger-ui .f-6,.swagger-ui .f-headline{font-size:6rem}.swagger-ui .f-5,.swagger-ui .f-subheadline{font-size:5rem}.swagger-ui .f1{font-size:3rem}.swagger-ui .f2{font-size:2.25rem}.swagger-ui .f3{font-size:1.5rem}.swagger-ui .f4{font-size:1.25rem}.swagger-ui .f5{font-size:1rem}.swagger-ui .f6{font-size:.875rem}.swagger-ui .f7{font-size:.75rem}@media screen and (min-width:30em){.swagger-ui .f-6-ns,.swagger-ui .f-headline-ns{font-size:6rem}.swagger-ui .f-5-ns,.swagger-ui .f-subheadline-ns{font-size:5rem}.swagger-ui .f1-ns{font-size:3rem}.swagger-ui .f2-ns{font-size:2.25rem}.swagger-ui .f3-ns{font-size:1.5rem}.swagger-ui .f4-ns{font-size:1.25rem}.swagger-ui .f5-ns{font-size:1rem}.swagger-ui .f6-ns{font-size:.875rem}.swagger-ui .f7-ns{font-size:.75rem}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .f-6-m,.swagger-ui .f-headline-m{font-size:6rem}.swagger-ui .f-5-m,.swagger-ui .f-subheadline-m{font-size:5rem}.swagger-ui .f1-m{font-size:3rem}.swagger-ui .f2-m{font-size:2.25rem}.swagger-ui .f3-m{font-size:1.5rem}.swagger-ui .f4-m{font-size:1.25rem}.swagger-ui .f5-m{font-size:1rem}.swagger-ui .f6-m{font-size:.875rem}.swagger-ui .f7-m{font-size:.75rem}}@media screen and (min-width:60em){.swagger-ui .f-6-l,.swagger-ui .f-headline-l{font-size:6rem}.swagger-ui .f-5-l,.swagger-ui .f-subheadline-l{font-size:5rem}.swagger-ui .f1-l{font-size:3rem}.swagger-ui .f2-l{font-size:2.25rem}.swagger-ui .f3-l{font-size:1.5rem}.swagger-ui .f4-l{font-size:1.25rem}.swagger-ui .f5-l{font-size:1rem}.swagger-ui .f6-l{font-size:.875rem}.swagger-ui .f7-l{font-size:.75rem}}.swagger-ui .measure{max-width:30em}.swagger-ui .measure-wide{max-width:34em}.swagger-ui .measure-narrow{max-width:20em}.swagger-ui .indent{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps{font-variant:small-caps}.swagger-ui .truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media screen and (min-width:30em){.swagger-ui .measure-ns{max-width:30em}.swagger-ui .measure-wide-ns{max-width:34em}.swagger-ui .measure-narrow-ns{max-width:20em}.swagger-ui .indent-ns{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-ns{font-variant:small-caps}.swagger-ui .truncate-ns{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .measure-m{max-width:30em}.swagger-ui .measure-wide-m{max-width:34em}.swagger-ui .measure-narrow-m{max-width:20em}.swagger-ui .indent-m{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-m{font-variant:small-caps}.swagger-ui .truncate-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media screen and (min-width:60em){.swagger-ui .measure-l{max-width:30em}.swagger-ui .measure-wide-l{max-width:34em}.swagger-ui .measure-narrow-l{max-width:20em}.swagger-ui .indent-l{text-indent:1em;margin-top:0;margin-bottom:0}.swagger-ui .small-caps-l{font-variant:small-caps}.swagger-ui .truncate-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.swagger-ui .overflow-container{overflow-y:scroll}.swagger-ui .center{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto{margin-right:auto}.swagger-ui .ml-auto{margin-left:auto}@media screen and (min-width:30em){.swagger-ui .center-ns{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-ns{margin-right:auto}.swagger-ui .ml-auto-ns{margin-left:auto}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .center-m{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-m{margin-right:auto}.swagger-ui .ml-auto-m{margin-left:auto}}@media screen and (min-width:60em){.swagger-ui .center-l{margin-right:auto;margin-left:auto}.swagger-ui .mr-auto-l{margin-right:auto}.swagger-ui .ml-auto-l{margin-left:auto}}.swagger-ui .clip{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}@media screen and (min-width:30em){.swagger-ui .clip-ns{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .clip-m{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}@media screen and (min-width:60em){.swagger-ui .clip-l{position:fixed!important;_position:absolute!important;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px)}}.swagger-ui .ws-normal{white-space:normal}.swagger-ui .nowrap{white-space:nowrap}.swagger-ui .pre{white-space:pre}@media screen and (min-width:30em){.swagger-ui .ws-normal-ns{white-space:normal}.swagger-ui .nowrap-ns{white-space:nowrap}.swagger-ui .pre-ns{white-space:pre}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .ws-normal-m{white-space:normal}.swagger-ui .nowrap-m{white-space:nowrap}.swagger-ui .pre-m{white-space:pre}}@media screen and (min-width:60em){.swagger-ui .ws-normal-l{white-space:normal}.swagger-ui .nowrap-l{white-space:nowrap}.swagger-ui .pre-l{white-space:pre}}.swagger-ui .v-base{vertical-align:baseline}.swagger-ui .v-mid{vertical-align:middle}.swagger-ui .v-top{vertical-align:top}.swagger-ui .v-btm{vertical-align:bottom}@media screen and (min-width:30em){.swagger-ui .v-base-ns{vertical-align:baseline}.swagger-ui .v-mid-ns{vertical-align:middle}.swagger-ui .v-top-ns{vertical-align:top}.swagger-ui .v-btm-ns{vertical-align:bottom}}@media screen and (min-width:30em) and (max-width:60em){.swagger-ui .v-base-m{vertical-align:baseline}.swagger-ui .v-mid-m{vertical-align:middle}.swagger-ui .v-top-m{vertical-align:top}.swagger-ui .v-btm-m{vertical-align:bottom}}@media screen and (min-width:60em){.swagger-ui .v-base-l{vertical-align:baseline}.swagger-ui .v-mid-l{vertical-align:middle}.swagger-ui .v-top-l{vertical-align:top}.swagger-ui .v-btm-l{vertical-align:bottom}}.swagger-ui .dim{opacity:1;transition:opacity .15s ease-in}.swagger-ui .dim:focus,.swagger-ui .dim:hover{opacity:.5;transition:opacity .15s ease-in}.swagger-ui .dim:active{opacity:.8;transition:opacity .15s ease-out}.swagger-ui .glow{transition:opacity .15s ease-in}.swagger-ui .glow:focus,.swagger-ui .glow:hover{opacity:1;transition:opacity .15s ease-in}.swagger-ui .hide-child .child{opacity:0;transition:opacity .15s ease-in}.swagger-ui .hide-child:active .child,.swagger-ui .hide-child:focus .child,.swagger-ui .hide-child:hover .child{opacity:1;transition:opacity .15s ease-in}.swagger-ui .underline-hover:focus,.swagger-ui .underline-hover:hover{text-decoration:underline}.swagger-ui .grow{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-out;transition:transform .25s ease-out;transition:transform .25s ease-out, -webkit-transform .25s ease-out}.swagger-ui .grow:focus,.swagger-ui .grow:hover{-webkit-transform:scale(1.05);transform:scale(1.05)}.swagger-ui .grow:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .grow-large{-moz-osx-font-smoothing:grayscale;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);transition:-webkit-transform .25s ease-in-out;transition:transform .25s ease-in-out;transition:transform .25s ease-in-out, -webkit-transform .25s ease-in-out}.swagger-ui .grow-large:focus,.swagger-ui .grow-large:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.swagger-ui .grow-large:active{-webkit-transform:scale(.95);transform:scale(.95)}.swagger-ui .pointer:hover{cursor:pointer}.swagger-ui .shadow-hover{cursor:pointer;position:relative;transition:all .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:after{content:"";box-shadow:0 0 16px 2px rgba(0,0,0,.2);border-radius:inherit;opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;transition:opacity .5s cubic-bezier(.165,.84,.44,1)}.swagger-ui .shadow-hover:focus:after,.swagger-ui .shadow-hover:hover:after{opacity:1}.swagger-ui .bg-animate,.swagger-ui .bg-animate:focus,.swagger-ui .bg-animate:hover{transition:background-color .15s ease-in-out}.swagger-ui .z-0{z-index:0}.swagger-ui .z-1{z-index:1}.swagger-ui .z-2{z-index:2}.swagger-ui .z-3{z-index:3}.swagger-ui .z-4{z-index:4}.swagger-ui .z-5{z-index:5}.swagger-ui .z-999{z-index:999}.swagger-ui .z-9999{z-index:9999}.swagger-ui .z-max{z-index:2147483647}.swagger-ui .z-inherit{z-index:inherit}.swagger-ui .z-initial{z-index:auto}.swagger-ui .z-unset{z-index:unset}.swagger-ui .nested-copy-line-height ol,.swagger-ui .nested-copy-line-height p,.swagger-ui .nested-copy-line-height ul{line-height:1.5}.swagger-ui .nested-headline-line-height h1,.swagger-ui .nested-headline-line-height h2,.swagger-ui .nested-headline-line-height h3,.swagger-ui .nested-headline-line-height h4,.swagger-ui .nested-headline-line-height h5,.swagger-ui .nested-headline-line-height h6{line-height:1.25}.swagger-ui .nested-list-reset ol,.swagger-ui .nested-list-reset ul{padding-left:0;margin-left:0;list-style-type:none}.swagger-ui .nested-copy-indent p+p{text-indent:.1em;margin-top:0;margin-bottom:0}.swagger-ui .nested-copy-seperator p+p{margin-top:1.5em}.swagger-ui .nested-img img{width:100%;max-width:100%;display:block}.swagger-ui .nested-links a{color:#357edd;transition:color .15s ease-in}.swagger-ui .nested-links a:focus,.swagger-ui .nested-links a:hover{color:#96ccff;transition:color .15s ease-in}.swagger-ui .wrapper{width:100%;max-width:1460px;margin:0 auto;padding:0 20px;box-sizing:border-box}.swagger-ui .opblock-tag-section{display:flex;flex-direction:column}.swagger-ui .opblock-tag{display:flex;align-items:center;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui .opblock-tag:hover{background:rgba(0,0,0,.02)}.swagger-ui .opblock-tag{font-size:24px;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-tag.no-desc span{flex:1}.swagger-ui .opblock-tag svg{transition:all .4s}.swagger-ui .opblock-tag small{font-size:14px;font-weight:400;flex:1;padding:0 10px;font-family:sans-serif;color:#3b4151}.swagger-ui .parameter__type{font-size:12px;padding:5px 0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .parameter-controls{margin-top:.75em}.swagger-ui .examples__title{display:block;font-size:1.1em;font-weight:700;margin-bottom:.75em}.swagger-ui .examples__section{margin-top:1.5em}.swagger-ui .examples__section-header{font-weight:700;font-size:.9rem;margin-bottom:.5rem}.swagger-ui .examples-select{margin-bottom:.75em}.swagger-ui .examples-select__section-label{font-weight:700;font-size:.9rem;margin-right:.5rem}.swagger-ui .example__section{margin-top:1.5em}.swagger-ui .example__section-header{font-weight:700;font-size:.9rem;margin-bottom:.5rem}.swagger-ui .view-line-link{position:relative;top:3px;width:20px;margin:0 5px;cursor:pointer;transition:all .5s}.swagger-ui .opblock{margin:0 0 15px;border:1px solid #000;border-radius:4px;box-shadow:0 0 3px rgba(0,0,0,.19)}.swagger-ui .opblock .tab-header{display:flex;flex:1}.swagger-ui .opblock .tab-header .tab-item{padding:0 40px;cursor:pointer}.swagger-ui .opblock .tab-header .tab-item:first-of-type{padding:0 40px 0 0}.swagger-ui .opblock .tab-header .tab-item.active h4 span{position:relative}.swagger-ui .opblock .tab-header .tab-item.active h4 span:after{position:absolute;bottom:-15px;left:50%;width:120%;height:4px;content:"";-webkit-transform:translateX(-50%);transform:translateX(-50%);background:grey}.swagger-ui .opblock.is-open .opblock-summary{border-bottom:1px solid #000}.swagger-ui .opblock .opblock-section-header{display:flex;align-items:center;padding:8px 20px;min-height:50px;background:hsla(0,0%,100%,.8);box-shadow:0 1px 2px rgba(0,0,0,.1)}.swagger-ui .opblock .opblock-section-header>label{font-size:12px;font-weight:700;display:flex;align-items:center;margin:0 0 0 auto;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-section-header>label>span{padding:0 10px 0 0}.swagger-ui .opblock .opblock-section-header h4{font-size:14px;flex:1;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary-method{font-size:14px;font-weight:700;min-width:80px;padding:6px 15px;text-align:center;border-radius:3px;background:#000;text-shadow:0 1px 0 rgba(0,0,0,.1);font-family:sans-serif;color:#fff}.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:16px;display:flex;align-items:center;word-break:break-word;padding:0 10px;font-family:monospace;font-weight:600;color:#3b4151}@media (max-width:768px){.swagger-ui .opblock .opblock-summary-operation-id,.swagger-ui .opblock .opblock-summary-path,.swagger-ui .opblock .opblock-summary-path__deprecated{font-size:12px}}.swagger-ui .opblock .opblock-summary-path__deprecated{text-decoration:line-through}.swagger-ui .opblock .opblock-summary-operation-id{font-size:14px}.swagger-ui .opblock .opblock-summary-description{font-size:13px;flex:1 1 auto;word-break:break-word;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock .opblock-summary{display:flex;align-items:center;padding:5px;cursor:pointer}.swagger-ui .opblock .opblock-summary .view-line-link{position:relative;top:2px;width:0;margin:0;cursor:pointer;transition:all .5s}.swagger-ui .opblock .opblock-summary:hover .view-line-link{width:18px;margin:0 5px}.swagger-ui .opblock.opblock-post{border-color:#49cc90;background:rgba(73,204,144,.1)}.swagger-ui .opblock.opblock-post .opblock-summary-method{background:#49cc90}.swagger-ui .opblock.opblock-post .opblock-summary{border-color:#49cc90}.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after{background:#49cc90}.swagger-ui .opblock.opblock-put{border-color:#fca130;background:rgba(252,161,48,.1)}.swagger-ui .opblock.opblock-put .opblock-summary-method{background:#fca130}.swagger-ui .opblock.opblock-put .opblock-summary{border-color:#fca130}.swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span:after{background:#fca130}.swagger-ui .opblock.opblock-delete{border-color:#f93e3e;background:rgba(249,62,62,.1)}.swagger-ui .opblock.opblock-delete .opblock-summary-method{background:#f93e3e}.swagger-ui .opblock.opblock-delete .opblock-summary{border-color:#f93e3e}.swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span:after{background:#f93e3e}.swagger-ui .opblock.opblock-get{border-color:#61affe;background:rgba(97,175,254,.1)}.swagger-ui .opblock.opblock-get .opblock-summary-method{background:#61affe}.swagger-ui .opblock.opblock-get .opblock-summary{border-color:#61affe}.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span:after{background:#61affe}.swagger-ui .opblock.opblock-patch{border-color:#50e3c2;background:rgba(80,227,194,.1)}.swagger-ui .opblock.opblock-patch .opblock-summary-method{background:#50e3c2}.swagger-ui .opblock.opblock-patch .opblock-summary{border-color:#50e3c2}.swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span:after{background:#50e3c2}.swagger-ui .opblock.opblock-head{border-color:#9012fe;background:rgba(144,18,254,.1)}.swagger-ui .opblock.opblock-head .opblock-summary-method{background:#9012fe}.swagger-ui .opblock.opblock-head .opblock-summary{border-color:#9012fe}.swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span:after{background:#9012fe}.swagger-ui .opblock.opblock-options{border-color:#0d5aa7;background:rgba(13,90,167,.1)}.swagger-ui .opblock.opblock-options .opblock-summary-method{background:#0d5aa7}.swagger-ui .opblock.opblock-options .opblock-summary{border-color:#0d5aa7}.swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span:after{background:#0d5aa7}.swagger-ui .opblock.opblock-deprecated{opacity:.6;border-color:#ebebeb;background:hsla(0,0%,92.2%,.1)}.swagger-ui .opblock.opblock-deprecated .opblock-summary-method{background:#ebebeb}.swagger-ui .opblock.opblock-deprecated .opblock-summary{border-color:#ebebeb}.swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span:after{background:#ebebeb}.swagger-ui .opblock .opblock-schemes{padding:8px 20px}.swagger-ui .opblock .opblock-schemes .schemes-title{padding:0 10px 0 0}.swagger-ui .filter .operation-filter-input{width:100%;margin:20px 0;padding:10px;border:2px solid #d8dde7}.swagger-ui .model-example{margin-top:1em}.swagger-ui .tab{display:flex;padding:0;list-style:none}.swagger-ui .tab li{font-size:12px;min-width:60px;padding:0;cursor:pointer;font-family:sans-serif;color:#3b4151}.swagger-ui .tab li:first-of-type{position:relative;padding-left:0;padding-right:12px}.swagger-ui .tab li:first-of-type:after{position:absolute;top:0;right:6px;width:1px;height:100%;content:"";background:rgba(0,0,0,.2)}.swagger-ui .tab li.active{font-weight:700}.swagger-ui .opblock-description-wrapper,.swagger-ui .opblock-external-docs-wrapper,.swagger-ui .opblock-title_normal{font-size:12px;margin:0 0 5px;padding:15px 20px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper h4,.swagger-ui .opblock-external-docs-wrapper h4,.swagger-ui .opblock-title_normal h4{font-size:12px;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-description-wrapper p,.swagger-ui .opblock-external-docs-wrapper p,.swagger-ui .opblock-title_normal p{font-size:14px;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .opblock-external-docs-wrapper h4{padding-left:0}.swagger-ui .execute-wrapper{padding:20px;text-align:right}.swagger-ui .execute-wrapper .btn{width:100%;padding:8px 40px}.swagger-ui .body-param-options{display:flex;flex-direction:column}.swagger-ui .body-param-options .body-param-edit{padding:10px 0}.swagger-ui .body-param-options label{padding:8px 0}.swagger-ui .body-param-options label select{margin:3px 0 0}.swagger-ui .responses-inner{padding:20px}.swagger-ui .responses-inner h4,.swagger-ui .responses-inner h5{font-size:12px;margin:10px 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_status{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_status .response-undocumented{font-size:11px;font-family:monospace;font-weight:600;color:#909090}.swagger-ui .response-col_links{padding-left:2em;max-width:40em;font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .response-col_links .response-undocumented{font-size:11px;font-family:monospace;font-weight:600;color:#909090}.swagger-ui .opblock-body .opblock-loading-animation{display:block;margin:3em auto}.swagger-ui .opblock-body pre.microlight{font-size:12px;margin:0;padding:10px;white-space:pre-wrap;word-wrap:break-word;word-break:break-all;word-break:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;border-radius:4px;background:#41444e;overflow-wrap:break-word;font-family:monospace;font-weight:600;color:#fff}.swagger-ui .opblock-body pre.microlight span{color:#fff!important}.swagger-ui .opblock-body pre.microlight .headerline{display:block}.swagger-ui .highlight-code{position:relative}.swagger-ui .highlight-code>.microlight{overflow-y:auto;max-height:400px;min-height:6em}.swagger-ui .download-contents{position:absolute;bottom:10px;right:10px;cursor:pointer;background:#7d8293;text-align:center;padding:5px;border-radius:4px;font-family:sans-serif;font-weight:600;color:#fff;font-size:14px;height:30px;width:75px}.swagger-ui .scheme-container{margin:0 0 20px;padding:30px 0;background:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.15)}.swagger-ui .scheme-container .schemes{display:flex;align-items:flex-end}.swagger-ui .scheme-container .schemes>label{font-size:12px;font-weight:700;display:flex;flex-direction:column;margin:-20px 15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .scheme-container .schemes>label select{min-width:130px;text-transform:uppercase}.swagger-ui .loading-container{padding:40px 0 60px;margin-top:1em;min-height:1px;display:flex;justify-content:center;align-items:center;flex-direction:column}.swagger-ui .loading-container .loading{position:relative}.swagger-ui .loading-container .loading:after{font-size:10px;font-weight:700;position:absolute;top:50%;left:50%;content:"loading";-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-transform:uppercase;font-family:sans-serif;color:#3b4151}.swagger-ui .loading-container .loading:before{position:absolute;top:50%;left:50%;display:block;width:60px;height:60px;margin:-30px;content:"";-webkit-animation:rotation 1s linear infinite,opacity .5s;animation:rotation 1s linear infinite,opacity .5s;opacity:1;border:2px solid rgba(85,85,85,.1);border-top-color:rgba(0,0,0,.6);border-radius:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}@-webkit-keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotation{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.swagger-ui .response-controls{padding-top:1em;display:flex}.swagger-ui .response-control-media-type{margin-right:1em}.swagger-ui .response-control-media-type--accept-controller select{border-color:green}.swagger-ui .response-control-media-type__accept-message{color:green;font-size:.7em}.swagger-ui .response-control-examples__title,.swagger-ui .response-control-media-type__title{display:block;margin-bottom:.2em;font-size:.7em}@-webkit-keyframes blinker{50%{opacity:0}}@keyframes blinker{50%{opacity:0}}.swagger-ui section h3{font-family:sans-serif;color:#3b4151}.swagger-ui a.nostyle{display:inline}.swagger-ui a.nostyle,.swagger-ui a.nostyle:visited{text-decoration:inherit;color:inherit;cursor:pointer}.swagger-ui .version-pragma{height:100%;padding:5em 0}.swagger-ui .version-pragma__message{display:flex;justify-content:center;height:100%;font-size:1.2em;text-align:center;line-height:1.5em;padding:0 .6em}.swagger-ui .version-pragma__message>div{max-width:55ch;flex:1}.swagger-ui .version-pragma__message code{background-color:#dedede;padding:4px 4px 2px;white-space:pre}.swagger-ui .btn{font-size:14px;font-weight:700;padding:5px 23px;transition:all .3s;border:2px solid grey;border-radius:4px;background:transparent;box-shadow:0 1px 2px rgba(0,0,0,.1);font-family:sans-serif;color:#3b4151}.swagger-ui .btn.btn-sm{font-size:12px;padding:4px 23px}.swagger-ui .btn[disabled]{cursor:not-allowed;opacity:.3}.swagger-ui .btn:hover{box-shadow:0 0 5px rgba(0,0,0,.3)}.swagger-ui .btn.cancel{border-color:#ff6060;background-color:transparent;font-family:sans-serif;color:#ff6060}.swagger-ui .btn.authorize{line-height:1;display:inline;color:#49cc90;border-color:#49cc90;background-color:transparent}.swagger-ui .btn.authorize span{float:left;padding:4px 20px 0 0}.swagger-ui .btn.authorize svg{fill:#49cc90}.swagger-ui .btn.execute{background-color:#4990e2;color:#fff;border-color:#4990e2}.swagger-ui .btn-group{display:flex;padding:30px}.swagger-ui .btn-group .btn{flex:1}.swagger-ui .btn-group .btn:first-child{border-radius:4px 0 0 4px}.swagger-ui .btn-group .btn:last-child{border-radius:0 4px 4px 0}.swagger-ui .authorization__btn{padding:0 10px;border:none;background:none}.swagger-ui .authorization__btn.locked{opacity:1}.swagger-ui .authorization__btn.unlocked{opacity:.4}.swagger-ui .expand-methods,.swagger-ui .expand-operation{border:none;background:none}.swagger-ui .expand-methods svg,.swagger-ui .expand-operation svg{width:20px;height:20px}.swagger-ui .expand-methods{padding:0 10px}.swagger-ui .expand-methods:hover svg{fill:#404040}.swagger-ui .expand-methods svg{transition:all .3s;fill:#707070}.swagger-ui button{cursor:pointer;outline:none}.swagger-ui button.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui select{font-size:14px;font-weight:700;padding:5px 40px 5px 10px;border:2px solid #41444e;border-radius:4px;background:#f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+PHBhdGggZD0iTTEzLjQxOCA3Ljg1OWEuNjk1LjY5NSAwIDAxLjk3OCAwIC42OC42OCAwIDAxMCAuOTY5bC0zLjkwOCAzLjgzYS42OTcuNjk3IDAgMDEtLjk3OSAwbC0zLjkwOC0zLjgzYS42OC42OCAwIDAxMC0uOTY5LjY5NS42OTUgMCAwMS45NzggMEwxMCAxMWwzLjQxOC0zLjE0MXoiLz48L3N2Zz4=) right 10px center no-repeat;background-size:20px;box-shadow:0 1px 2px 0 rgba(0,0,0,.25);font-family:sans-serif;color:#3b4151;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui select[multiple]{margin:5px 0;padding:5px;background:#f7f7f7}.swagger-ui select.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui .opblock-body select{min-width:230px}@media (max-width:768px){.swagger-ui .opblock-body select{min-width:180px}}.swagger-ui label{font-size:12px;font-weight:700;margin:0 0 5px;font-family:sans-serif;color:#3b4151}.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{min-width:100px;margin:5px 0;padding:8px 10px;border:1px solid #d9d9d9;border-radius:4px;background:#fff}@media (max-width:768px){.swagger-ui input[type=email],.swagger-ui input[type=file],.swagger-ui input[type=password],.swagger-ui input[type=search],.swagger-ui input[type=text],.swagger-ui textarea{max-width:175px}}.swagger-ui input[type=email].invalid,.swagger-ui input[type=file].invalid,.swagger-ui input[type=password].invalid,.swagger-ui input[type=search].invalid,.swagger-ui input[type=text].invalid,.swagger-ui textarea.invalid{-webkit-animation:shake .4s 1;animation:shake .4s 1;border-color:#f93e3e;background:#feebeb}.swagger-ui input[disabled],.swagger-ui select[disabled],.swagger-ui textarea[disabled]{background-color:#fafafa;color:#888;cursor:not-allowed}.swagger-ui select[disabled]{border-color:#888}.swagger-ui textarea[disabled]{background-color:#41444e;color:#fff}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-1px,0,0);transform:translate3d(-1px,0,0)}20%,80%{-webkit-transform:translate3d(2px,0,0);transform:translate3d(2px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-4px,0,0);transform:translate3d(-4px,0,0)}40%,60%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}}.swagger-ui textarea{font-size:12px;width:100%;min-height:280px;padding:10px;border:none;border-radius:4px;outline:none;background:hsla(0,0%,100%,.8);font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui textarea:focus{border:2px solid #61affe}.swagger-ui textarea.curl{font-size:12px;min-height:100px;margin:0;padding:10px;resize:none;border-radius:4px;background:#41444e;font-family:monospace;font-weight:600;color:#fff}.swagger-ui .checkbox{padding:5px 0 10px;transition:opacity .5s;color:#303030}.swagger-ui .checkbox label{display:flex}.swagger-ui .checkbox p{font-weight:400!important;font-style:italic;margin:0!important;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .checkbox input[type=checkbox]{display:none}.swagger-ui .checkbox input[type=checkbox]+label>.item{position:relative;top:3px;display:inline-block;width:16px;height:16px;margin:0 8px 0 0;padding:5px;cursor:pointer;border-radius:1px;background:#e8e8e8;box-shadow:0 0 0 2px #e8e8e8;flex:none}.swagger-ui .checkbox input[type=checkbox]+label>.item:active{-webkit-transform:scale(.9);transform:scale(.9)}.swagger-ui .checkbox input[type=checkbox]:checked+label>.item{background:#e8e8e8 url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='8' viewBox='3 7 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%2341474E' fill-rule='evenodd' d='M6.333 15L3 11.667l1.333-1.334 2 2L11.667 7 13 8.333z'/%3E%3C/svg%3E") 50% no-repeat}.swagger-ui .dialog-ux{position:fixed;z-index:9999;top:0;right:0;bottom:0;left:0}.swagger-ui .dialog-ux .backdrop-ux{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.8)}.swagger-ui .dialog-ux .modal-ux{position:absolute;z-index:9999;top:50%;left:50%;width:100%;min-width:300px;max-width:650px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border:1px solid #ebebeb;border-radius:4px;background:#fff;box-shadow:0 10px 30px 0 rgba(0,0,0,.2)}.swagger-ui .dialog-ux .modal-ux-content{overflow-y:auto;max-height:540px;padding:20px}.swagger-ui .dialog-ux .modal-ux-content p{font-size:12px;margin:0 0 5px;color:#41444e;font-family:sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-content h4{font-size:18px;font-weight:600;margin:15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .dialog-ux .modal-ux-header{display:flex;padding:12px 0;border-bottom:1px solid #ebebeb;align-items:center}.swagger-ui .dialog-ux .modal-ux-header .close-modal{padding:0 10px;border:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swagger-ui .dialog-ux .modal-ux-header h3{font-size:20px;font-weight:600;margin:0;padding:0 20px;flex:1;font-family:sans-serif;color:#3b4151}.swagger-ui .model{font-size:12px;font-weight:300;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .model .deprecated span,.swagger-ui .model .deprecated td{color:#a0a0a0!important}.swagger-ui .model .deprecated>td:first-of-type{text-decoration:line-through}.swagger-ui .model-toggle{font-size:10px;position:relative;top:6px;display:inline-block;margin:auto .3em;cursor:pointer;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in, -webkit-transform .15s ease-in;-webkit-transform:rotate(90deg);transform:rotate(90deg);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.swagger-ui .model-toggle.collapsed{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.swagger-ui .model-toggle:after{display:block;width:20px;height:20px;content:"";background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E") 50% no-repeat;background-size:100%}.swagger-ui .model-jump-to-path{position:relative;cursor:pointer}.swagger-ui .model-jump-to-path .view-line-link{position:absolute;top:-.4em;cursor:pointer}.swagger-ui .model-title{position:relative}.swagger-ui .model-title:hover .model-hint{visibility:visible}.swagger-ui .model-hint{position:absolute;top:-1.8em;visibility:hidden;padding:.1em .5em;white-space:nowrap;color:#ebebeb;border-radius:4px;background:rgba(0,0,0,.7)}.swagger-ui .model p{margin:0 0 1em}.swagger-ui section.models{margin:30px 0;border:1px solid rgba(59,65,81,.3);border-radius:4px}.swagger-ui section.models.is-open{padding:0 0 20px}.swagger-ui section.models.is-open h4{margin:0 0 5px;border-bottom:1px solid rgba(59,65,81,.3)}.swagger-ui section.models h4{font-size:16px;display:flex;align-items:center;margin:0;padding:10px 20px 10px 10px;cursor:pointer;transition:all .2s;font-family:sans-serif;color:#606060}.swagger-ui section.models h4 svg{transition:all .4s}.swagger-ui section.models h4 span{flex:1}.swagger-ui section.models h4:hover{background:rgba(0,0,0,.02)}.swagger-ui section.models h5{font-size:16px;margin:0 0 10px;font-family:sans-serif;color:#707070}.swagger-ui section.models .model-jump-to-path{position:relative;top:5px}.swagger-ui section.models .model-container{margin:0 20px 15px;position:relative;transition:all .5s;border-radius:4px;background:rgba(0,0,0,.05)}.swagger-ui section.models .model-container:hover{background:rgba(0,0,0,.07)}.swagger-ui section.models .model-container:first-of-type{margin:20px}.swagger-ui section.models .model-container:last-of-type{margin:0 20px}.swagger-ui section.models .model-container .models-jump-to-path{position:absolute;top:8px;right:5px;opacity:.65}.swagger-ui section.models .model-box{background:none}.swagger-ui .model-box{padding:10px;display:inline-block;border-radius:4px;background:rgba(0,0,0,.1)}.swagger-ui .model-box .model-jump-to-path{position:relative;top:4px}.swagger-ui .model-box.deprecated{opacity:.5}.swagger-ui .model-title{font-size:16px;font-family:sans-serif;color:#505050}.swagger-ui .model-deprecated-warning{font-size:16px;font-weight:600;margin-right:1em;font-family:sans-serif;color:#f93e3e}.swagger-ui span>span.model .brace-close{padding:0 0 0 10px}.swagger-ui .prop-name{display:inline-block;margin-right:1em}.swagger-ui .prop-type{color:#55a}.swagger-ui .prop-enum{display:block}.swagger-ui .prop-format{color:#606060}.swagger-ui .servers>label{font-size:12px;margin:-20px 15px 0 0;font-family:sans-serif;color:#3b4151}.swagger-ui .servers>label select{min-width:130px;max-width:100%}.swagger-ui .servers h4.message{padding-bottom:2em}.swagger-ui .servers table tr{width:30em}.swagger-ui .servers table td{display:inline-block;max-width:15em;vertical-align:middle;padding-top:10px;padding-bottom:10px}.swagger-ui .servers table td:first-of-type{padding-right:2em}.swagger-ui .servers table td input{width:100%;height:100%}.swagger-ui .servers .computed-url{margin:2em 0}.swagger-ui .servers .computed-url code{display:inline-block;padding:4px;font-size:16px;margin:0 1em}.swagger-ui .servers-title{font-size:12px;font-weight:700}.swagger-ui .operation-servers h4.message{margin-bottom:2em}.swagger-ui table{width:100%;padding:0 10px;border-collapse:collapse}.swagger-ui table.model tbody tr td{padding:0;vertical-align:top}.swagger-ui table.model tbody tr td:first-of-type{width:174px;padding:0 0 0 2em}.swagger-ui table.headers td{font-size:12px;font-weight:300;vertical-align:middle;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui table tbody tr td{padding:10px 0 0;vertical-align:top}.swagger-ui table tbody tr td:first-of-type{max-width:20%;min-width:6em;padding:10px 0}.swagger-ui table thead tr td,.swagger-ui table thead tr th{font-size:12px;font-weight:700;padding:12px 0;text-align:left;border-bottom:1px solid rgba(59,65,81,.2);font-family:sans-serif;color:#3b4151}.swagger-ui .parameters-col_description{width:99%;margin-bottom:2em}.swagger-ui .parameters-col_description input[type=text]{width:100%;max-width:340px}.swagger-ui .parameters-col_description select{border-width:1px}.swagger-ui .parameter__name{font-size:16px;font-weight:400;margin-right:.75em;font-family:sans-serif;color:#3b4151}.swagger-ui .parameter__name.required{font-weight:700}.swagger-ui .parameter__name.required:after{font-size:10px;position:relative;top:-6px;padding:5px;content:"required";color:rgba(255,0,0,.6)}.swagger-ui .parameter__extension,.swagger-ui .parameter__in{font-size:12px;font-style:italic;font-family:monospace;font-weight:600;color:grey}.swagger-ui .parameter__deprecated{font-size:12px;font-style:italic;font-family:monospace;font-weight:600;color:red}.swagger-ui .parameter__empty_value_toggle{font-size:13px;padding-top:5px;padding-bottom:12px}.swagger-ui .parameter__empty_value_toggle input{margin-right:7px}.swagger-ui .parameter__empty_value_toggle.disabled{opacity:.7}.swagger-ui .table-container{padding:20px}.swagger-ui .response-col_description{width:99%}.swagger-ui .response-col_links{min-width:6em}.swagger-ui .topbar{padding:10px 0;background-color:#1b1b1b}.swagger-ui .topbar .topbar-wrapper,.swagger-ui .topbar a{display:flex;align-items:center}.swagger-ui .topbar a{font-size:1.5em;font-weight:700;flex:1;max-width:300px;text-decoration:none;font-family:sans-serif;color:#fff}.swagger-ui .topbar a span{margin:0;padding:0 10px}.swagger-ui .topbar .download-url-wrapper{display:flex;flex:3;justify-content:flex-end}.swagger-ui .topbar .download-url-wrapper input[type=text]{width:100%;margin:0;border:2px solid #62a03f;border-radius:4px 0 0 4px;outline:none}.swagger-ui .topbar .download-url-wrapper .select-label{display:flex;align-items:center;width:100%;max-width:600px;margin:0;color:#f0f0f0}.swagger-ui .topbar .download-url-wrapper .select-label span{font-size:16px;flex:1;padding:0 10px 0 0;text-align:right}.swagger-ui .topbar .download-url-wrapper .select-label select{flex:2;width:100%;border:2px solid #62a03f;outline:none;box-shadow:none}.swagger-ui .topbar .download-url-wrapper .download-url-button{font-size:16px;font-weight:700;padding:4px 30px;border:none;border-radius:0 4px 4px 0;background:#62a03f;font-family:sans-serif;color:#fff}.swagger-ui .info{margin:50px 0}.swagger-ui .info hgroup.main{margin:0 0 20px}.swagger-ui .info hgroup.main a{font-size:12px}.swagger-ui .info pre{font-size:14px}.swagger-ui .info li,.swagger-ui .info p,.swagger-ui .info table{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .info h1,.swagger-ui .info h2,.swagger-ui .info h3,.swagger-ui .info h4,.swagger-ui .info h5{font-family:sans-serif;color:#3b4151}.swagger-ui .info a{font-size:14px;transition:all .4s;font-family:sans-serif;color:#4990e2}.swagger-ui .info a:hover{color:#1f69c0}.swagger-ui .info>div{margin:0 0 5px}.swagger-ui .info .base-url{font-size:12px;font-weight:300!important;margin:0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .info .title{font-size:36px;margin:0;font-family:sans-serif;color:#3b4151}.swagger-ui .info .title small{font-size:10px;position:relative;top:-5px;display:inline-block;margin:0 0 0 5px;padding:2px 4px;vertical-align:super;border-radius:57px;background:#7d8492}.swagger-ui .info .title small pre{margin:0;padding:0;font-family:sans-serif;color:#fff}.swagger-ui .auth-btn-wrapper{display:flex;padding:10px 0;justify-content:center}.swagger-ui .auth-btn-wrapper .btn-done{margin-right:1em}.swagger-ui .auth-wrapper{display:flex;flex:1;justify-content:flex-end}.swagger-ui .auth-wrapper .authorize{padding-right:20px;margin-right:10px}.swagger-ui .auth-container{margin:0 0 10px;padding:10px 20px;border-bottom:1px solid #ebebeb}.swagger-ui .auth-container:last-of-type{margin:0;padding:10px 20px;border:0}.swagger-ui .auth-container h4{margin:5px 0 15px!important}.swagger-ui .auth-container .wrapper{margin:0;padding:0}.swagger-ui .auth-container input[type=password],.swagger-ui .auth-container input[type=text]{min-width:230px}.swagger-ui .auth-container .errors{font-size:12px;padding:10px;border-radius:4px;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .scopes h2{font-size:14px;font-family:sans-serif;color:#3b4151}.swagger-ui .scope-def{padding:0 0 20px}.swagger-ui .errors-wrapper{margin:20px;padding:10px 20px;-webkit-animation:scaleUp .5s;animation:scaleUp .5s;border:2px solid #f93e3e;border-radius:4px;background:rgba(249,62,62,.1)}.swagger-ui .errors-wrapper .error-wrapper{margin:0 0 10px}.swagger-ui .errors-wrapper .errors h4{font-size:14px;margin:0;font-family:monospace;font-weight:600;color:#3b4151}.swagger-ui .errors-wrapper .errors small{color:#606060}.swagger-ui .errors-wrapper hgroup{display:flex;align-items:center}.swagger-ui .errors-wrapper hgroup h4{font-size:20px;margin:0;flex:1;font-family:sans-serif;color:#3b4151}@-webkit-keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes scaleUp{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.swagger-ui .Resizer.vertical.disabled{display:none}.swagger-ui .markdown p,.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown p,.swagger-ui .renderedMarkdown pre{margin:1em auto}.swagger-ui .markdown pre,.swagger-ui .renderedMarkdown pre{color:#000;font-weight:400;white-space:pre-wrap;background:none;padding:0}.swagger-ui .markdown code,.swagger-ui .renderedMarkdown code{font-size:14px;padding:5px 7px;border-radius:4px;background:rgba(0,0,0,.05);font-family:monospace;font-weight:600;color:#9012fe}.swagger-ui .markdown pre>code,.swagger-ui .renderedMarkdown pre>code{display:block}
 
 /*# sourceMappingURL=swagger-ui.css.map*/
\ No newline at end of file
 
 /*# sourceMappingURL=swagger-ui.css.map*/
\ No newline at end of file
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.e2e-spec.ts
deleted file mode 100644 (file)
index 1d807e7..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-import { PoolPageHelper } from '../pools/pools.po';
-import { ImagesPageHelper } from './images.po';
-
-describe('Images page', () => {
-  let pools: PoolPageHelper;
-  let images: ImagesPageHelper;
-
-  beforeAll(() => {
-    images = new ImagesPageHelper();
-    pools = new PoolPageHelper();
-  });
-
-  afterEach(async () => {
-    await ImagesPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    beforeAll(async () => {
-      await images.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await images.waitTextToBePresent(images.getBreadcrumb(), 'Images');
-    });
-
-    it('should show four tabs', async () => {
-      await expect(images.getTabsCount()).toEqual(4);
-    });
-
-    it('should show text for all tabs', async () => {
-      await expect(images.getTabText(0)).toEqual('Images');
-      await expect(images.getTabText(1)).toEqual('Namespaces');
-      await expect(images.getTabText(2)).toEqual('Trash');
-      await expect(images.getTabText(3)).toEqual('Overall Performance');
-    });
-  });
-
-  describe('create, edit & delete image test', () => {
-    const poolName = 'e2e_images_pool';
-    const imageName = 'e2e_images#image';
-    const newImageName = 'e2e_images#image_new';
-
-    beforeAll(async () => {
-      await pools.navigateTo('create'); // Need pool for image testing
-      await pools.create(poolName, 8, 'rbd');
-      await pools.navigateTo();
-      await pools.exist(poolName, true);
-      await images.navigateTo();
-    });
-
-    it('should create image', async () => {
-      await images.createImage(imageName, poolName, '1');
-      await expect(images.getFirstTableCellWithText(imageName).isPresent()).toBe(true);
-    });
-
-    it('should edit image', async () => {
-      await images.editImage(imageName, poolName, newImageName, '2');
-      await expect(images.getFirstTableCellWithText(newImageName).isPresent()).toBe(true);
-    });
-
-    it('should delete image', async () => {
-      await images.navigateTo();
-      await images.delete(newImageName);
-    });
-
-    afterAll(async () => {
-      await pools.navigateTo();
-      await pools.delete(poolName);
-    });
-  });
-
-  describe('move to trash, restore and purge image tests', () => {
-    const poolName = 'trash_pool';
-    const imageName = 'trash#image';
-    const newImageName = 'newtrash#image';
-
-    beforeAll(async () => {
-      await pools.navigateTo('create'); // Need pool for image testing
-      await pools.create(poolName, 8, 'rbd');
-      await pools.navigateTo();
-      await pools.exist(poolName, true);
-
-      await images.navigateTo(); // Need image for trash testing
-      await images.createImage(imageName, poolName, '1');
-      await expect(images.getFirstTableCellWithText(imageName).isPresent()).toBe(true);
-    });
-
-    it('should move the image to the trash', async () => {
-      await images.moveToTrash(imageName);
-      await expect(images.getFirstTableCellWithText(imageName).isPresent()).toBe(true);
-    });
-
-    it('should restore image to images table', async () => {
-      await images.restoreImage(imageName, newImageName);
-      await expect(images.getFirstTableCellWithText(newImageName).isPresent()).toBe(true);
-    });
-
-    it('should purge trash in images trash tab', async () => {
-      await images.navigateTo();
-      // Have had issues with image not restoring fast enough, thus these tests/waits are here
-      await images.waitPresence(
-        images.getFirstTableCellWithText(newImageName),
-        'Timed out waiting for image to restore'
-      );
-      await images.moveToTrash(newImageName);
-      await images.purgeTrash(newImageName, poolName);
-    });
-
-    afterAll(async () => {
-      await pools.navigateTo();
-      await pools.delete(poolName); // Deletes images test pool
-      await pools.navigateTo();
-      await pools.exist(poolName, false);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/images.po.ts
deleted file mode 100644 (file)
index 85ed005..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-import { $, $$, browser, by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class ImagesPageHelper extends PageHelper {
-  pages = {
-    index: '/#/block/rbd',
-    create: '/#/block/rbd/create'
-  };
-
-  // Creates a block image and fills in the name, pool, and size fields. Then checks
-  // if the image is present in the Images table.
-  async createImage(name: string, pool: string, size: string) {
-    await this.navigateTo('create');
-
-    // Need the string '[value="<pool>"]' to find the pool in the dropdown menu
-    const getPoolName = `[value="${pool}"]`;
-
-    await element(by.id('name')).sendKeys(name); // Enter in image name
-
-    // Select image pool
-    await this.selectOption('pool', pool);
-    await $(getPoolName).click();
-    await expect(element(by.id('pool')).getAttribute('class')).toContain('ng-valid'); // check if selected
-
-    // Enter in the size of the image
-    await element(by.id('size')).click();
-    await element(by.id('size')).sendKeys(size);
-
-    // Click the create button and wait for image to be made
-    await element(by.cssContainingText('button', 'Create RBD')).click();
-    return this.waitPresence(this.getFirstTableCellWithText(name));
-  }
-
-  async editImage(name: string, pool: string, newName: string, newSize: string) {
-    const base_url = '/#/block/rbd/edit/';
-    const editURL = base_url
-      .concat(encodeURIComponent(pool))
-      .concat('%2F')
-      .concat(encodeURIComponent(name));
-    await browser.get(editURL);
-
-    await element(by.id('name')).click(); // click name box and send new name
-    await element(by.id('name')).clear();
-    await element(by.id('name')).sendKeys(newName);
-    await element(by.id('size')).click();
-    await element(by.id('size')).clear();
-    await element(by.id('size')).sendKeys(newSize); // click the size box and send new size
-
-    await element(by.cssContainingText('button', 'Edit RBD')).click();
-    await this.navigateTo();
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(newName));
-    await expect(
-      element
-        .all(by.css('.table.table-striped.table-bordered'))
-        .first()
-        .getText()
-    ).toMatch(newSize);
-  }
-
-  // Selects RBD image and moves it to the trash, checks that it is present in the
-  // trash table
-  async moveToTrash(name: string) {
-    await this.navigateTo();
-    // wait for image to be created
-    await this.waitTextNotPresent($$('.datatable-body').first(), '(Creating...)');
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    // click on the drop down and selects the move to trash option
-    await $$('.table-actions button.dropdown-toggle')
-      .first()
-      .click();
-    await $('li.move-to-trash').click();
-    await this.waitVisibility(element(by.cssContainingText('button', 'Move Image')));
-    await element(by.cssContainingText('button', 'Move Image')).click();
-    await this.navigateTo();
-    // Clicks trash tab
-    await this.waitClickableAndClick(element(by.cssContainingText('.nav-link', 'Trash')));
-    await this.waitPresence(this.getFirstTableCellWithText(name));
-  }
-
-  // Checks trash tab table for image and then restores it to the RBD Images table
-  // (could change name if new name is given)
-  async restoreImage(name: string, newName?: string) {
-    await this.navigateTo();
-    // clicks on trash tab
-    await element(by.cssContainingText('.nav-link', 'Trash')).click();
-    // wait for table to load
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    await element(by.cssContainingText('button', 'Restore')).click();
-    // wait for pop-up to be visible (checks for title of pop-up)
-    await this.waitVisibility(element(by.id('name')));
-    // If a new name for the image is passed, it changes the name of the image
-    if (newName !== undefined) {
-      await element(by.id('name')).click(); // click name box and send new name
-      await element(by.id('name')).clear();
-      await element(by.id('name')).sendKeys(newName);
-    }
-    await element(by.cssContainingText('button', 'Restore Image')).click();
-    await this.navigateTo();
-    // clicks images tab
-    await element(by.cssContainingText('.nav-link', 'Images')).click();
-    await this.navigateTo();
-    await this.waitPresence(this.getFirstTableCellWithText(newName));
-  }
-
-  // Enters trash tab and purges trash, thus emptying the trash table. Checks if
-  // Image is still in the table.
-  async purgeTrash(name: string, pool?: string) {
-    await this.navigateTo();
-    // clicks trash tab
-    await element(by.cssContainingText('.nav-link', 'Trash')).click();
-    await element(by.cssContainingText('button', 'Purge Trash')).click();
-    // Check for visibility of modal container
-    await this.waitVisibility(element(by.id('poolName')));
-    // If purgeing a specific pool, selects that pool if given
-    if (pool !== undefined) {
-      const getPoolName = `[value="${pool}"]`;
-      await element(by.id('poolName')).click();
-      await element(by.cssContainingText('select[name=poolName] option', pool)).click();
-      await $(getPoolName).click();
-      await expect(element(by.id('poolName')).getAttribute('class')).toContain('ng-valid'); // check if pool is selected
-    }
-    await this.waitClickableAndClick(element(by.id('purgeFormButton')));
-    // Wait for image to delete and check it is not present
-    await this.waitStaleness(
-      this.getFirstTableCellWithText(name),
-      'Timed out waiting for image to be purged'
-    );
-    await expect(this.getFirstTableCellWithText(name).isPresent()).toBe(false);
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.e2e-spec.ts
deleted file mode 100644 (file)
index 79ea41d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import { IscsiPageHelper } from './iscsi.po';
-
-describe('Iscsi Page', () => {
-  let iscsi: IscsiPageHelper;
-
-  beforeAll(() => {
-    iscsi = new IscsiPageHelper();
-  });
-
-  afterEach(async () => {
-    await IscsiPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await iscsi.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await iscsi.waitTextToBePresent(iscsi.getBreadcrumb(), 'Overview');
-    });
-  });
-
-  describe('fields check', () => {
-    beforeAll(async () => {
-      await iscsi.navigateTo();
-    });
-
-    it('should check that tables are displayed and legends are correct', async () => {
-      // Check tables are displayed
-      const dataTables = iscsi.getDataTables();
-      await expect(dataTables.get(0).isDisplayed());
-      await expect(dataTables.get(1).isDisplayed());
-
-      // Check that legends are correct
-      const legends = iscsi.getLegends();
-      await expect(legends.get(0).getText()).toMatch('Gateways');
-      await expect(legends.get(1).getText()).toMatch('Images');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/iscsi.po.ts
deleted file mode 100644 (file)
index e2621f0..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PageHelper } from '../page-helper.po';
-
-export class IscsiPageHelper extends PageHelper {
-  pages = { index: '/#/block/iscsi/overview' };
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.e2e-spec.ts
deleted file mode 100644 (file)
index 3327cf1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-import { PoolPageHelper } from '../pools/pools.po';
-import { MirroringPageHelper } from './mirroring.po';
-
-describe('Mirroring page', () => {
-  let pools: PoolPageHelper;
-  let mirroring: MirroringPageHelper;
-
-  beforeAll(() => {
-    mirroring = new MirroringPageHelper();
-    pools = new PoolPageHelper();
-  });
-
-  afterEach(async () => {
-    await MirroringPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    beforeAll(async () => {
-      await mirroring.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await mirroring.waitTextToBePresent(mirroring.getBreadcrumb(), 'Mirroring');
-    });
-
-    it('should show three tabs', async () => {
-      await expect(mirroring.getTabsCount()).toEqual(3);
-    });
-
-    it('should show text for all tabs', async () => {
-      await expect(mirroring.getTabText(0)).toEqual('Issues');
-      await expect(mirroring.getTabText(1)).toEqual('Syncing');
-      await expect(mirroring.getTabText(2)).toEqual('Ready');
-    });
-  });
-
-  describe('checks that edit mode functionality shows in the pools table', () => {
-    const poolName = 'mirroring_test';
-
-    beforeAll(async () => {
-      await pools.navigateTo('create'); // Need pool for mirroring testing
-      await pools.create(poolName, 8, 'rbd');
-      await pools.navigateTo();
-      await pools.exist(poolName, true);
-    });
-
-    it('tests editing mode for pools', async () => {
-      await mirroring.navigateTo();
-
-      await mirroring.editMirror(poolName, 'Pool');
-      await expect(mirroring.getFirstTableCellWithText('pool').isPresent()).toBe(true);
-      await mirroring.editMirror(poolName, 'Image');
-      await expect(mirroring.getFirstTableCellWithText('image').isPresent()).toBe(true);
-      await mirroring.editMirror(poolName, 'Disabled');
-      await expect(mirroring.getFirstTableCellWithText('disabled').isPresent()).toBe(true);
-    });
-
-    afterAll(async () => {
-      await pools.navigateTo();
-      await pools.delete(poolName);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/block/mirroring.po.ts
deleted file mode 100644 (file)
index d27a1dc..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-import { $, by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-const pages = { index: '/#/block/mirroring' };
-
-export class MirroringPageHelper extends PageHelper {
-  pages = pages;
-
-  /**
-   * Goes to the mirroring page and edits a pool in the Pool table. Clicks on the
-   * pool and chooses an option (either pool, image, or disabled)
-   */
-  @PageHelper.restrictTo(pages.index)
-  async editMirror(name: string, option: string) {
-    // Clicks the pool in the table
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-
-    // Clicks the Edit Mode button
-    const editModeButton = element(by.cssContainingText('button', 'Edit Mode'));
-    await this.waitClickableAndClick(editModeButton);
-    // Clicks the drop down in the edit pop-up, then clicks the Update button
-    await this.waitVisibility($('.modal-content'));
-    await this.selectOption('mirrorMode', option);
-
-    // Clicks update button and checks if the mode has been changed
-    await element(by.cssContainingText('button', 'Update')).click();
-    await this.waitStaleness(
-      element(by.cssContainingText('.modal-dialog', 'Edit pool mirror mode'))
-    );
-    const val = option.toLowerCase(); // used since entries in table are lower case
-    await this.waitVisibility(this.getFirstTableCellWithText(val));
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.e2e-spec.ts
deleted file mode 100644 (file)
index a806c31..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-import { $ } from 'protractor';
-import { ConfigurationPageHelper } from './configuration.po';
-
-describe('Configuration page', () => {
-  let configuration: ConfigurationPageHelper;
-
-  beforeAll(() => {
-    configuration = new ConfigurationPageHelper();
-  });
-
-  afterEach(async () => {
-    await ConfigurationPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await configuration.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await configuration.waitTextToBePresent(configuration.getBreadcrumb(), 'Configuration');
-    });
-  });
-
-  describe('fields check', () => {
-    beforeAll(async () => {
-      await configuration.navigateTo();
-    });
-
-    it('should verify that selected footer increases when an entry is clicked', async () => {
-      await configuration.getFirstCell().click();
-      const selectedCount = await configuration.getTableSelectedCount();
-      await expect(selectedCount).toBe(1);
-    });
-
-    it('should check that details table opens and tab is correct', async () => {
-      await configuration.getFirstCell().click();
-      await expect($('.table.table-striped.table-bordered').isDisplayed());
-      await expect(configuration.getTabsCount()).toEqual(1);
-      await expect(configuration.getTabText(0)).toEqual('Details');
-    });
-  });
-
-  describe('edit configuration test', () => {
-    const configName = 'client_cache_size';
-
-    beforeAll(async () => {
-      await configuration.navigateTo();
-    });
-
-    beforeEach(async () => {
-      await configuration.clearTableSearchInput();
-    });
-
-    afterAll(async () => {
-      await configuration.configClear(configName);
-    });
-
-    it('should click and edit a configuration and results should appear in the table', async () => {
-      await configuration.edit(
-        configName,
-        ['global', '1'],
-        ['mon', '2'],
-        ['mgr', '3'],
-        ['osd', '4'],
-        ['mds', '5'],
-        ['client', '6']
-      );
-    });
-
-    it('should show only modified configurations', async () => {
-      await configuration.filterTable('Modified', 'yes');
-      expect(await configuration.getTableFoundCount()).toBe(1);
-    });
-
-    it('should hide all modified configurations', async () => {
-      await configuration.filterTable('Modified', 'no');
-      expect(await configuration.getTableFoundCount()).toBeGreaterThan(1);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/configuration.po.ts
deleted file mode 100644 (file)
index 2354f07..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-import { $, by, element, protractor } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class ConfigurationPageHelper extends PageHelper {
-  pages = {
-    index: '/#/configuration'
-  };
-
-  async configClear(name: string) {
-    // Clears out all the values in a config to reset before and after testing
-    // Does not work for configs with checkbox only, possible future PR
-
-    await this.navigateTo();
-    const valList = ['global', 'mon', 'mgr', 'osd', 'mds', 'client']; // Editable values
-
-    // Enter config setting name into filter box
-    await $('input.form-control.ng-valid').clear();
-    await $('input.form-control.ng-valid').sendKeys(name);
-
-    // Selects config that we want to clear
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // waits for config to be clickable and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // clicks button to edit
-
-    for (const i of valList) {
-      // Sends two backspaces to all values, clear() did not work in this instance, could be optimized more
-      await element(by.id(i)).sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
-      await element(by.id(i)).sendKeys(protractor.Key.BACK_SPACE);
-    }
-    // Clicks save button and checks that values are not present for the selected config
-    await element(by.cssContainingText('button', 'Save')).click();
-
-    // Enter config setting name into filter box
-    await $('input.form-control.ng-valid').clear();
-    await $('input.form-control.ng-valid').sendKeys(name);
-
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    // Clicks desired config
-    await this.waitVisibility(
-      $('.table.table-striped.table-bordered'), // Checks for visibility of details tab
-      'config details did not appear'
-    );
-    for (const i of valList) {
-      // Waits until values are not present in the details table
-      await this.waitTextNotPresent($('.table.table-striped.table-bordered'), i + ':');
-    }
-  }
-
-  async edit(name: string, ...values: [string, string][]) {
-    // Clicks the designated config, then inputs the values passed into the edit function.
-    // Then checks if the edit is reflected in the config table. Takes in name of config and
-    // a list of tuples of values the user wants edited, each tuple having the desired value along
-    // with the number tehey want for that value. Ex: [global, '2'] is the global value with an input of 2
-    await this.navigateTo();
-
-    // Enter config setting name into filter box
-    await $('input.form-control.ng-valid').clear();
-    await $('input.form-control.ng-valid').sendKeys(name);
-
-    // Selects config that we want to edit
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // waits for config to be clickable and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // clicks button to edit
-
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-
-    for (let i = 0, valtuple; (valtuple = values[i]); i++) {
-      // Finds desired value based off given list
-      await element(by.id(valtuple[0])).sendKeys(valtuple[1]); // of values and inserts the given number for the value
-    }
-
-    // Clicks save button then waits until the desired config is visible, clicks it, then checks
-    // that each desired value appears with the desired number
-    await element(by.cssContainingText('button', 'Save')).click();
-    await this.navigateTo();
-
-    // Enter config setting name into filter box
-    await $('input.form-control.ng-valid').clear();
-    await $('input.form-control.ng-valid').sendKeys(name);
-
-    await this.waitVisibility(this.getFirstTableCellWithText(name));
-    // Checks for visibility of config in table
-    await this.getFirstTableCellWithText(name).click();
-    // Clicks config
-    for (let i = 0, valtuple; (valtuple = values[i]); i++) {
-      // iterates through list of values and
-      await this.waitTextToBePresent(
-        // checks if the value appears in details with the correct number attatched
-        $('.table.table-striped.table-bordered'),
-        valtuple[0] + ': ' + valtuple[1]
-      );
-    }
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.e2e-spec.ts
deleted file mode 100644 (file)
index 07687bd..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-import { $ } from 'protractor';
-import { CrushMapPageHelper } from './crush-map.po';
-
-describe('CRUSH map page', () => {
-  let crushmap: CrushMapPageHelper;
-
-  beforeAll(() => {
-    crushmap = new CrushMapPageHelper();
-  });
-
-  afterEach(async () => {
-    await CrushMapPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await crushmap.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await crushmap.waitTextToBePresent(crushmap.getBreadcrumb(), 'CRUSH map');
-    });
-  });
-  describe('fields check', () => {
-    beforeAll(async () => {
-      await crushmap.navigateTo();
-    });
-
-    it('should check that title & table appears', async () => {
-      // Check that title (CRUSH map viewer) appears
-      await expect(crushmap.getPageTitle()).toMatch('CRUSH map viewer');
-
-      // Check that title appears once OSD is clicked
-      await crushmap.getCrushNode(1).click();
-
-      const label = await $('legend').getText(); // Get table label
-      await expect(crushmap.getCrushNode(1).getText()).toEqual(label);
-
-      // Check that table appears once OSD is clicked
-      await crushmap.waitVisibility($('.datatable-body'));
-      await expect($('.datatable-body').isDisplayed()).toBe(true);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/crush-map.po.ts
deleted file mode 100644 (file)
index 20790fa..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-import { $, $$ } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class CrushMapPageHelper extends PageHelper {
-  pages = { index: '/#/crush-map' };
-
-  getPageTitle() {
-    return $('cd-crushmap .card-header').getText();
-  }
-
-  getCrushNode(idx: number) {
-    return $$('.node-name.type-osd').get(idx);
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.e2e-spec.ts
deleted file mode 100644 (file)
index 1b64cdb..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-import { HostsPageHelper } from './hosts.po';
-
-describe('Hosts page', () => {
-  let hosts: HostsPageHelper;
-
-  beforeAll(() => {
-    hosts = new HostsPageHelper();
-  });
-
-  afterEach(async () => {
-    await HostsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    beforeAll(async () => {
-      await hosts.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await hosts.waitTextToBePresent(hosts.getBreadcrumb(), 'Hosts');
-    });
-
-    it('should show two tabs', async () => {
-      await expect(hosts.getTabsCount()).toEqual(2);
-    });
-
-    it('should show hosts list tab at first', async () => {
-      await expect(hosts.getTabText(0)).toEqual('Hosts List');
-    });
-
-    it('should show overall performance as a second tab', async () => {
-      await expect(hosts.getTabText(1)).toEqual('Overall Performance');
-    });
-  });
-
-  describe('services link test', () => {
-    it('should check at least one host is present', async () => {
-      await hosts.check_for_host();
-    });
-
-    it('should check services link(s) work for first host', async () => {
-      await hosts.check_services_links();
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/hosts.po.ts
deleted file mode 100644 (file)
index df935c6..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-import { by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class HostsPageHelper extends PageHelper {
-  pages = { index: '/#/hosts' };
-
-  async check_for_host() {
-    await this.navigateTo();
-
-    await expect(this.getTableTotalCount()).not.toBe(0);
-  }
-
-  // function that checks all services links work for first
-  // host in table
-  async check_services_links() {
-    await this.navigateTo();
-    let links_tested = 0;
-
-    const services = element.all(by.css('cd-hosts a.service-link'));
-    // check that text (links) is present in services box
-    await expect(services.count()).toBeGreaterThan(0, 'No services links exist on first host');
-
-    /**
-     * Currently there is an issue [1] in ceph that it's causing
-     * a random appearance of a mds service in the hosts service listing.
-     * Decreasing the number of service by 1 temporarily fixes the e2e failure.
-     *
-     * TODO: Revert this change when the issue has been fixed.
-     *
-     * [1] https://tracker.ceph.com/issues/41538
-     */
-    const num_links = (await services.count()) - 1;
-
-    for (let i = 0; i < num_links; i++) {
-      // click link, check it worked by looking for changed breadcrumb,
-      // navigate back to hosts page, repeat until all links checked
-      await services.get(i).click();
-      await this.waitTextToBePresent(this.getBreadcrumb(), 'Performance Counters');
-      await this.navigateBack();
-      await this.waitTextToBePresent(this.getBreadcrumb(), 'Hosts');
-      links_tested++;
-    }
-    // check if any links were actually tested
-    await expect(links_tested > 0).toBe(true, 'No links were tested. Test failed');
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.e2e-spec.ts
deleted file mode 100644 (file)
index 47c95a3..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-import { PoolPageHelper } from '../pools/pools.po';
-import { ConfigurationPageHelper } from './configuration.po';
-import { LogsPageHelper } from './logs.po';
-
-describe('Logs page', () => {
-  let logs: LogsPageHelper;
-  let pools: PoolPageHelper;
-  let configuration: ConfigurationPageHelper;
-
-  const poolname = 'logs_e2e_test_pool';
-  const configname = 'log_graylog_port';
-  const today = new Date();
-  let hour = today.getHours();
-  if (hour > 12) {
-    hour = hour - 12;
-  }
-  const minute = today.getMinutes();
-
-  beforeAll(() => {
-    logs = new LogsPageHelper();
-    pools = new PoolPageHelper();
-    configuration = new ConfigurationPageHelper();
-  });
-
-  afterEach(async () => {
-    await LogsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    beforeAll(async () => {
-      await logs.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await logs.waitTextToBePresent(logs.getBreadcrumb(), 'Logs');
-    });
-
-    it('should show two tabs', async () => {
-      await expect(logs.getTabsCount()).toEqual(2);
-    });
-
-    it('should show cluster logs tab at first', async () => {
-      await expect(logs.getTabText(0)).toEqual('Cluster Logs');
-    });
-
-    it('should show audit logs as a second tab', async () => {
-      await expect(logs.getTabText(1)).toEqual('Audit Logs');
-    });
-  });
-
-  describe('audit logs respond to pool creation and deletion test', () => {
-    it('should create pool and check audit logs reacted', async () => {
-      await pools.navigateTo('create');
-      await pools.create(poolname, 8);
-
-      await pools.navigateTo();
-      await pools.exist(poolname, true);
-
-      await logs.checkAuditForPoolFunction(poolname, 'create', hour, minute);
-    });
-
-    it('should delete pool and check audit logs reacted', async () => {
-      await pools.navigateTo();
-      await pools.delete(poolname);
-
-      await logs.navigateTo();
-      await logs.checkAuditForPoolFunction(poolname, 'delete', hour, minute);
-    });
-  });
-
-  describe('audit logs respond to editing configuration setting test', () => {
-    it('should change config settings and check audit logs reacted', async () => {
-      await configuration.navigateTo();
-      await configuration.edit(configname, ['global', '5']);
-
-      await logs.navigateTo();
-      await logs.checkAuditForConfigChange(configname, 'global', hour, minute);
-
-      await configuration.navigateTo();
-      await configuration.configClear(configname);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/logs.po.ts
deleted file mode 100644 (file)
index 5fd18ab..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-import { $, $$, by, element, protractor } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class LogsPageHelper extends PageHelper {
-  pages = { index: '/#/logs' };
-
-  async checkAuditForPoolFunction(
-    poolname: string,
-    poolfunction: string,
-    hour: number,
-    minute: number
-  ) {
-    await this.navigateTo();
-
-    // sometimes the modal from deleting pool is still present at this point.
-    // This wait makes sure it isn't
-    await this.waitStaleness(element(by.cssContainingText('.modal-dialog', 'Delete Pool')));
-
-    // go to audit logs tab
-    await element(by.cssContainingText('.nav-link', 'Audit Logs')).click();
-
-    // Enter an earliest time so that no old messages with the same pool name show up
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(protractor.Key.BACK_SPACE);
-    if (hour < 10) {
-      await $$('.bs-timepicker-field')
-        .get(0)
-        .sendKeys('0');
-    }
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(hour);
-
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(protractor.Key.BACK_SPACE);
-    if (minute < 10) {
-      await $$('.bs-timepicker-field')
-        .get(1)
-        .sendKeys('0');
-    }
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(minute);
-
-    // Enter the pool name into the filter box
-    await $$('input.form-control.ng-valid')
-      .first()
-      .click();
-    await $$('input.form-control.ng-valid')
-      .first()
-      .clear();
-    await $$('input.form-control.ng-valid')
-      .first()
-      .sendKeys(poolname);
-
-    const audit_logs_tab = $('.tab-pane.active');
-    const audit_logs_body = audit_logs_tab.element(by.css('.card-body'));
-    const logs = audit_logs_body.all(by.cssContainingText('.message', poolname));
-
-    await expect(logs.getText()).toMatch(poolname);
-    await expect(logs.getText()).toMatch(`pool ${poolfunction}`);
-  }
-
-  async checkAuditForConfigChange(
-    configname: string,
-    setting: string,
-    hour: number,
-    minute: number
-  ) {
-    await this.navigateTo();
-
-    // go to audit logs tab
-    await element(by.cssContainingText('.nav-link', 'Audit Logs')).click();
-
-    // Enter an earliest time so that no old messages with the same config name show up
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(protractor.Key.BACK_SPACE);
-    if (hour < 10) {
-      await $$('.bs-timepicker-field')
-        .get(0)
-        .sendKeys('0');
-    }
-    await $$('.bs-timepicker-field')
-      .get(0)
-      .sendKeys(hour);
-
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(protractor.Key.chord(protractor.Key.CONTROL, 'a'));
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(protractor.Key.BACK_SPACE);
-    if (minute < 10) {
-      await $$('.bs-timepicker-field')
-        .get(1)
-        .sendKeys('0');
-    }
-    await $$('.bs-timepicker-field')
-      .get(1)
-      .sendKeys(minute);
-
-    // Enter the config name into the filter box
-    await $$('input.form-control.ng-valid')
-      .first()
-      .click();
-    await $$('input.form-control.ng-valid')
-      .first()
-      .clear();
-    await $$('input.form-control.ng-valid')
-      .first()
-      .sendKeys(configname);
-
-    const audit_logs_tab = $('.tab-pane.active');
-    const audit_logs_body = audit_logs_tab.element(by.css('.card-body'));
-    const logs = audit_logs_body.all(by.cssContainingText('.message', configname));
-
-    await this.waitPresence(logs.first());
-
-    await expect(logs.getText()).toMatch(configname);
-    await expect(logs.getText()).toMatch(setting);
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.e2e-spec.ts
deleted file mode 100644 (file)
index d14f35a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-import { ManagerModulesPageHelper } from './mgr-modules.po';
-
-describe('Manager modules page', () => {
-  let mgrmodules: ManagerModulesPageHelper;
-
-  beforeAll(() => {
-    mgrmodules = new ManagerModulesPageHelper();
-  });
-
-  afterEach(async () => {
-    await ManagerModulesPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await mgrmodules.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await mgrmodules.waitTextToBePresent(mgrmodules.getBreadcrumb(), 'Manager modules');
-    });
-  });
-
-  describe('verifies editing functionality for manager modules', () => {
-    beforeAll(async () => {
-      await mgrmodules.navigateTo();
-    });
-
-    it('should test editing on diskprediction_local module', async () => {
-      const diskpredLocalArr = [
-        ['11', 'predict_interval'],
-        ['0122', 'sleep_interval']
-      ];
-      await mgrmodules.editMgrModule('diskprediction_local', diskpredLocalArr);
-    });
-
-    it('should test editing on balancer module', async () => {
-      const balancerArr = [['rq', 'pool_ids']];
-      await mgrmodules.editMgrModule('balancer', balancerArr);
-    });
-
-    it('should test editing on dashboard module', async () => {
-      const dashboardArr = [
-        ['rq', 'RGW_API_USER_ID'],
-        ['rafa', 'GRAFANA_API_PASSWORD']
-      ];
-      await mgrmodules.editMgrModule('dashboard', dashboardArr);
-    });
-
-    it('should test editing on devicehealth module', async () => {
-      await mgrmodules.editDevicehealth('1987', 'sox', '1999', '2020', '456', '567');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/mgr-modules.po.ts
deleted file mode 100644 (file)
index bdd3056..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-import { $$, by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class ManagerModulesPageHelper extends PageHelper {
-  pages = {
-    index: '/#/mgr-modules'
-  };
-
-  // NOTABLE ISSUES: .clear() does not work on most text boxes, therefore using sendKeys
-  // a Ctrl + 'a' BACK_SPACE is used.
-  // The need to click the module repeatedly in the table is to ensure
-  // that the values in the details tab updated. This fixed a bug I experienced.
-
-  async editMgrModule(name: string, tuple: string[][]) {
-    // Selects the Manager Module and then fills in the desired fields.
-    // Doesn't check/uncheck boxes because it is not reflected in the details table.
-    // DOES NOT WORK FOR ALL MGR MODULES, for example, Device health
-    await this.navigateTo();
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    await element(by.cssContainingText('button', 'Edit')).click();
-
-    for (const entry of tuple) {
-      // Clears fields and adds edits
-      await this.clearInput(element(by.id(entry[1])));
-      await element(by.id(entry[1])).sendKeys(entry[0]);
-    }
-
-    await element(by.cssContainingText('button', 'Update')).click();
-    // Checks if edits appear
-    await this.navigateTo();
-    await this.waitVisibility(this.getFirstTableCellWithText(name));
-    await this.getFirstTableCellWithText(name).click();
-    for (const entry of tuple) {
-      await this.waitTextToBePresent($$('.datatable-body').last(), entry[0]);
-    }
-
-    // Clear mgr module of all edits made to it
-    await this.navigateTo();
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    await element(by.cssContainingText('button', 'Edit')).click();
-
-    // Clears the editable fields
-    for (const entry of tuple) {
-      await this.clearInput(element(by.id(entry[1])));
-    }
-
-    // Checks that clearing represents in details tab of module
-    await element(by.cssContainingText('button', 'Update')).click();
-    await this.navigateTo();
-    await this.waitVisibility(this.getFirstTableCellWithText(name));
-    await this.getFirstTableCellWithText(name).click();
-    for (const entry of tuple) {
-      await this.waitTextNotPresent($$('.datatable-body').last(), entry[0]);
-    }
-  }
-
-  async editDevicehealth(
-    threshhold?: string,
-    pooln?: string,
-    retention?: string,
-    scrape?: string,
-    sleep?: string,
-    warn?: string
-  ) {
-    // Isn't called by editMgrModule since clearing doesn't work.
-    // Selects the Devicehealth manager module, then fills in the desired fields, including all fields except
-    // checkboxes. Clicking checkboxes has been a notable issue in Protractor, therefore they were omitted in this
-    // version of the tests. Could be added in a future PR. Then checks if these edits appear in the details table.
-    await this.navigateTo();
-    let devHealthArray: [string, string][];
-    devHealthArray = [
-      [threshhold, 'mark_out_threshold'],
-      [pooln, 'pool_name'],
-      [retention, 'retention_period'],
-      [scrape, 'scrape_frequency'],
-      [sleep, 'sleep_interval'],
-      [warn, 'warn_threshold']
-    ];
-
-    await this.waitClickableAndClick(this.getFirstTableCellWithText('devicehealth'));
-    await element(by.cssContainingText('button', 'Edit')).click();
-    for (let i = 0, devHealthTuple; (devHealthTuple = devHealthArray[i]); i++) {
-      if (devHealthTuple[0] !== undefined) {
-        // Clears and inputs edits
-        await this.clearInput(element(by.id(devHealthTuple[1])));
-        await element(by.id(devHealthTuple[1])).sendKeys(devHealthTuple[0]);
-      }
-    }
-
-    await element(by.cssContainingText('button', 'Update')).click();
-    await this.navigateTo();
-    await this.waitVisibility(this.getFirstTableCellWithText('devicehealth'));
-    // Checks for visibility of devicehealth in table
-    await this.getFirstTableCellWithText('devicehealth').click();
-    for (let i = 0, devHealthTuple: [string, string]; (devHealthTuple = devHealthArray[i]); i++) {
-      if (devHealthTuple[0] !== undefined) {
-        await this.waitFn(async () => {
-          // Repeatedly reclicks the module to check if edits has been done
-          await element(by.cssContainingText('.datatable-body-cell-label', 'devicehealth')).click();
-          return this.waitTextToBePresent($$('.datatable-body').last(), devHealthTuple[0]);
-        });
-      }
-    }
-
-    // Inputs old values into devicehealth fields. This manager module doesnt allow for updates
-    // to be made when the values are cleared. Therefore, I restored them to their original values
-    // (on my local run of ceph-dev, this is subject to change i would assume). I'd imagine there is a
-    // better way of doing this.
-    await this.navigateTo();
-    await this.waitClickableAndClick(this.getFirstTableCellWithText('devicehealth'));
-    await element(by.cssContainingText('button', 'Edit')).click();
-    await this.clearInput(element(by.id('mark_out_threshold')));
-    await element(by.id('mark_out_threshold')).sendKeys('2419200');
-
-    await this.clearInput(element(by.id('pool_name')));
-    await element(by.id('pool_name')).sendKeys('device_health_metrics');
-
-    await this.clearInput(element(by.id('retention_period')));
-    await element(by.id('retention_period')).sendKeys('15552000');
-
-    await this.clearInput(element(by.id('scrape_frequency')));
-    await element(by.id('scrape_frequency')).sendKeys('86400');
-
-    await this.clearInput(element(by.id('sleep_interval')));
-    await element(by.id('sleep_interval')).sendKeys('600');
-
-    await this.clearInput(element(by.id('warn_threshold')));
-    await element(by.id('warn_threshold')).sendKeys('7257600');
-
-    // Checks that clearing represents in details tab
-    await this.waitClickableAndClick(element(by.cssContainingText('button', 'Update')));
-    await this.navigateTo();
-    await this.waitVisibility(this.getFirstTableCellWithText('devicehealth'));
-    await this.getFirstTableCellWithText('devicehealth').click();
-    for (let i = 0, devHealthTuple: [string, string]; (devHealthTuple = devHealthArray[i]); i++) {
-      if (devHealthTuple[0] !== undefined) {
-        await this.waitFn(async () => {
-          // Repeatedly reclicks the module to check if clearing has been done
-          await element(by.cssContainingText('.datatable-body-cell-label', 'devicehealth')).click();
-          return this.waitTextNotPresent($$('.datatable-body').last(), devHealthTuple[0]);
-        });
-      }
-    }
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.e2e-spec.ts
deleted file mode 100644 (file)
index 3a78e51..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-import { MonitorsPageHelper } from './monitors.po';
-
-describe('Monitors page', () => {
-  let monitors: MonitorsPageHelper;
-
-  beforeAll(() => {
-    monitors = new MonitorsPageHelper();
-  });
-
-  afterEach(async () => {
-    await MonitorsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await monitors.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await monitors.waitTextToBePresent(monitors.getBreadcrumb(), 'Monitors');
-    });
-  });
-
-  describe('fields check', () => {
-    beforeAll(async () => {
-      await monitors.navigateTo();
-    });
-
-    it('should check status table is present', async () => {
-      // check for table header 'Status'
-      await expect(
-        monitors
-          .getLegends()
-          .get(0)
-          .getText()
-      ).toMatch('Status');
-
-      // check for fields in table
-      await expect(monitors.getStatusTables().getText()).toMatch('Cluster ID');
-      await expect(monitors.getStatusTables().getText()).toMatch('monmap modified');
-      await expect(monitors.getStatusTables().getText()).toMatch('monmap epoch');
-      await expect(monitors.getStatusTables().getText()).toMatch('quorum con');
-      await expect(monitors.getStatusTables().getText()).toMatch('quorum mon');
-      await expect(monitors.getStatusTables().getText()).toMatch('required con');
-      await expect(monitors.getStatusTables().getText()).toMatch('required mon');
-    });
-
-    it('should check In Quorum and Not In Quorum tables are present', async () => {
-      // check for there to be two tables
-      await expect(monitors.getDataTables().count()).toEqual(2);
-
-      // check for table header 'In Quorum'
-      await expect(
-        monitors
-          .getLegends()
-          .get(1)
-          .getText()
-      ).toMatch('In Quorum');
-
-      // check for table header 'Not In Quorum'
-      await expect(
-        monitors
-          .getLegends()
-          .get(2)
-          .getText()
-      ).toMatch('Not In Quorum');
-
-      // verify correct columns on In Quorum table
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(0)
-          .getText()
-      ).toMatch('Name');
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(0)
-          .getText()
-      ).toMatch('Rank');
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(0)
-          .getText()
-      ).toMatch('Public Address');
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(0)
-          .getText()
-      ).toMatch('Open Sessions');
-
-      // verify correct columns on Not In Quorum table
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(1)
-          .getText()
-      ).toMatch('Name');
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(1)
-          .getText()
-      ).toMatch('Rank');
-      await expect(
-        monitors
-          .getDataTableHeaders()
-          .get(1)
-          .getText()
-      ).toMatch('Public Address');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/monitors.po.ts
deleted file mode 100644 (file)
index c935eba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PageHelper } from '../page-helper.po';
-
-export class MonitorsPageHelper extends PageHelper {
-  pages = { index: '/#/monitor' };
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.e2e-spec.ts
deleted file mode 100644 (file)
index f4a0828..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-import { $$, by, element } from 'protractor';
-import { OSDsPageHelper } from './osds.po';
-
-describe('OSDs page', () => {
-  let osds: OSDsPageHelper;
-
-  beforeAll(async () => {
-    osds = new OSDsPageHelper();
-    await osds.navigateTo();
-  });
-
-  afterEach(async () => {
-    await OSDsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    it('should open and show breadcrumb', async () => {
-      await osds.waitTextToBePresent(osds.getBreadcrumb(), 'OSDs');
-    });
-
-    it('should show two tabs', async () => {
-      await expect(osds.getTabsCount()).toEqual(2);
-    });
-
-    it('should show OSDs list tab at first', async () => {
-      await expect(osds.getTabText(0)).toEqual('OSDs List');
-    });
-
-    it('should show overall performance as a second tab', async () => {
-      await expect(osds.getTabText(1)).toEqual('Overall Performance');
-    });
-  });
-
-  describe('check existence of fields on OSD page', () => {
-    it('should check that number of rows and count in footer match', async () => {
-      await expect(osds.getTableTotalCount()).toEqual(osds.getTableRows().count());
-    });
-
-    it('should verify that buttons exist', async () => {
-      await expect(element(by.cssContainingText('button', 'Create')).isPresent()).toBe(true);
-      await expect(
-        element(by.cssContainingText('button', 'Cluster-wide configuration')).isPresent()
-      ).toBe(true);
-    });
-
-    describe('by selecting one row in OSDs List', () => {
-      beforeAll(async () => {
-        await osds.getFirstCell().click();
-      });
-
-      it('should verify that selected footer increases', async () => {
-        await expect(osds.getTableSelectedCount()).toEqual(1);
-      });
-
-      it('should show the correct text for the tab labels', async () => {
-        const tabHeadings = $$('#tabset-osd-details > div > tab').map((e) =>
-          e.getAttribute('heading')
-        );
-        await expect(tabHeadings).toEqual([
-          'Devices',
-          'Attributes (OSD map)',
-          'Metadata',
-          'Device health',
-          'Performance counter',
-          'Histogram',
-          'Performance Details'
-        ]);
-      });
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/cluster/osds.po.ts
deleted file mode 100644 (file)
index a968989..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PageHelper } from '../page-helper.po';
-
-export class OSDsPageHelper extends PageHelper {
-  pages = { index: '/#/osd' };
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.e2e-spec.ts
deleted file mode 100644 (file)
index 2d860c4..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-import { FilesystemsPageHelper } from './filesystems.po';
-
-describe('Filesystems page', () => {
-  let filesystems: FilesystemsPageHelper;
-
-  beforeAll(() => {
-    filesystems = new FilesystemsPageHelper();
-  });
-
-  afterEach(async () => {
-    await FilesystemsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await filesystems.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await filesystems.waitTextToBePresent(filesystems.getBreadcrumb(), 'Filesystems');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/filesystems/filesystems.po.ts
deleted file mode 100644 (file)
index eedbd85..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PageHelper } from '../page-helper.po';
-
-export class FilesystemsPageHelper extends PageHelper {
-  pages = { index: '/#/cephfs' };
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.e2e-spec.ts
deleted file mode 100644 (file)
index dc69745..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-import { NfsPageHelper } from './nfs.po';
-
-describe('Nfs page', () => {
-  let nfs: NfsPageHelper;
-
-  beforeAll(() => {
-    nfs = new NfsPageHelper();
-  });
-
-  afterEach(async () => {
-    await NfsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb test', () => {
-    beforeAll(async () => {
-      await nfs.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await nfs.waitTextToBePresent(nfs.getBreadcrumb(), 'NFS');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/nfs/nfs.po.ts
deleted file mode 100644 (file)
index d3db8ec..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PageHelper } from '../page-helper.po';
-
-export class NfsPageHelper extends PageHelper {
-  pages = { index: '/#/nfs' };
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/page-helper.po.ts
deleted file mode 100644 (file)
index 4c7fcaf..0000000
+++ /dev/null
@@ -1,346 +0,0 @@
-import {
-  $,
-  $$,
-  browser,
-  by,
-  element,
-  ElementArrayFinder,
-  ElementFinder,
-  protractor
-} from 'protractor';
-
-const EC = browser.ExpectedConditions;
-const TIMEOUT = 20000;
-
-interface Pages {
-  index: string;
-}
-
-export abstract class PageHelper {
-  pages: Pages;
-
-  /**
-   * Checks if there are any errors on the browser
-   *
-   * @static
-   * @memberof Helper
-   */
-  static async checkConsole() {
-    let browserLog = await browser
-      .manage()
-      .logs()
-      .get('browser');
-
-    browserLog = browserLog.filter((log) => log.level.value > 900);
-
-    if (browserLog.length > 0) {
-      console.log('\n log: ' + require('util').inspect(browserLog));
-    }
-
-    await expect(browserLog.length).toEqual(0);
-  }
-
-  /**
-   * Decorator to be used on Helper methods to restrict access to one particular URL.  This shall
-   * help developers to prevent and highlight mistakes.  It also reduces boilerplate code and by
-   * thus, increases readability.
-   */
-  static restrictTo(page: string): Function {
-    return (target: any, propertyKey: string, descriptor: PropertyDescriptor) => {
-      const fn: Function = descriptor.value;
-      descriptor.value = function(...args: any) {
-        return browser
-          .getCurrentUrl()
-          .then((url) =>
-            url.endsWith(page)
-              ? fn.apply(this, args)
-              : Promise.reject(
-                  `Method ${target.constructor.name}::${propertyKey} is supposed to be ` +
-                    `run on path "${page}", but was run on URL "${url}"`
-                )
-          );
-      };
-    };
-  }
-
-  /**
-   * Get the active breadcrumb item.
-   */
-  getBreadcrumb(): ElementFinder {
-    return $('.breadcrumb-item.active');
-  }
-
-  async getTabText(index: number): Promise<string> {
-    return $$('.nav.nav-tabs li')
-      .get(index)
-      .getText();
-  }
-
-  async getTableTotalCount(): Promise<number> {
-    const text = await $$('.datatable-footer-inner .page-count span')
-      .filter(async (e) => (await e.getText()).includes('total'))
-      .first()
-      .getText();
-    return Number(text.match(/(\d+)\s+total/)[1]);
-  }
-
-  async getTableSelectedCount(): Promise<number> {
-    const text = await $$('.datatable-footer-inner .page-count span')
-      .filter(async (e) => (await e.getText()).includes('selected'))
-      .first()
-      .getText();
-    return Number(text.match(/(\d+)\s+selected/)[1]);
-  }
-
-  async getTableFoundCount(): Promise<number> {
-    const text = await $$('.datatable-footer-inner .page-count span')
-      .filter(async (e) => (await e.getText()).includes('found'))
-      .first()
-      .getText();
-    return Number(text.match(/(\d+)\s+found/)[1]);
-  }
-
-  getFirstTableCellWithText(content: string): ElementFinder {
-    return element.all(by.cssContainingText('.datatable-body-cell-label', content)).first();
-  }
-
-  getTableRow(content: string) {
-    return element(by.cssContainingText('.datatable-body-row', content));
-  }
-
-  getTable(): ElementFinder {
-    return $('.datatable-body');
-  }
-
-  async getTabsCount(): Promise<number> {
-    return $$('.nav.nav-tabs li').count();
-  }
-
-  /**
-   * Ceph Dashboards' <input type="checkbox"> tag is not visible. Instead of the real checkbox, a
-   * replacement is shown which is supposed to have an adapted style. The replacement checkbox shown
-   * is part of the label and is rendered in the "::before" pseudo element of the label, hence the
-   * label is always clicked when the user clicks the replacement checkbox.
-   *
-   * This method finds corresponding label to the given checkbox and clicks it instead of the (fake)
-   * checkbox, like it is the case with real users.
-   *
-   * Alternatively, the checkbox' label can be passed.
-   *
-   * @param elem The checkbox or corresponding label
-   */
-  async clickCheckbox(elem: ElementFinder): Promise<void> {
-    const tagName = await elem.getTagName();
-    let label: ElementFinder = null; // Both types are clickable
-
-    await this.waitPresence(elem);
-    if (tagName === 'input') {
-      if ((await elem.getAttribute('type')) === 'checkbox') {
-        label = elem.element(by.xpath('..')).$(`label[for="${await elem.getAttribute('id')}"]`);
-      } else {
-        return Promise.reject('element <input> must be of type checkbox');
-      }
-    } else if (tagName === 'label') {
-      label = elem;
-    } else {
-      return Promise.reject(
-        `element <${tagName}> is not of the correct type. You need to pass a checkbox or label`
-      );
-    }
-
-    return this.waitClickableAndClick(label);
-  }
-
-  /**
-   * Helper method to select an option inside a select element.
-   * This method will also expect that the option was set.
-   * @param option The option text (not value) to be selected.
-   */
-  async selectOption(selectionName: string, option: string) {
-    await element(by.cssContainingText(`select[name=${selectionName}] option`, option)).click();
-    return this.expectSelectOption(selectionName, option);
-  }
-
-  /**
-   * Helper method to expect a set option inside a select element.
-   * @param option The selected option text (not value) that is to
-   *   be expected.
-   */
-  async expectSelectOption(selectionName: string, option: string) {
-    return expect(
-      element(by.css(`select[name=${selectionName}] option:checked`)).getText()
-    ).toContain(option);
-  }
-
-  /**
-   * Returns the cell with the content given in `content`. Will not return a rejected Promise if the
-   * table cell hasn't been found. It behaves this way to enable to wait for
-   * visibility/invisibility/presence of the returned element.
-   *
-   * It will return a rejected Promise if the result is ambiguous, though. That means if the search
-   * for content has been completed, but more than a single row is shown in the data table.
-   */
-  async getTableCellByContent(content: string): Promise<ElementFinder> {
-    const searchInput = $('#pool-list > div .search input');
-    const rowAmountInput = $('#pool-list > div > div > .dataTables_paginate input');
-    const footer = $('#pool-list > div datatable-footer');
-
-    await rowAmountInput.clear();
-    await rowAmountInput.sendKeys('10');
-    await searchInput.clear();
-    await searchInput.sendKeys(content);
-
-    const count = Number(await footer.getAttribute('ng-reflect-row-count'));
-    if (count !== 0 && count > 1) {
-      return Promise.reject('getTableCellByContent: Result is ambiguous');
-    } else {
-      return Promise.resolve(
-        element(
-          by.cssContainingText('.datatable-body-cell-label', new RegExp(`^\\s${content}\\s$`))
-        )
-      );
-    }
-  }
-
-  /**
-   * Used when .clear() does not work on a text box, sends a Ctrl + a, BACKSPACE
-   */
-  async clearInput(elem: ElementFinder) {
-    const types = ['text', 'number'];
-    if ((await elem.getTagName()) === 'input' && types.includes(await elem.getAttribute('type'))) {
-      return await elem.sendKeys(
-        protractor.Key.chord(protractor.Key.CONTROL, 'a'),
-        protractor.Key.BACK_SPACE
-      );
-    } else {
-      return Promise.reject(`Element ${elem} does not match the expected criteria.`);
-    }
-  }
-
-  async navigateTo(page: string = null) {
-    page = page || 'index';
-    const url = this.pages[page];
-    await browser.get(url);
-  }
-
-  async navigateBack() {
-    await browser.navigate().back();
-  }
-
-  getDataTables(): ElementArrayFinder {
-    return $$('cd-table');
-  }
-
-  /**
-   * Gets column headers of table
-   */
-  getDataTableHeaders(): ElementArrayFinder {
-    return $$('.datatable-header');
-  }
-
-  /**
-   * Grabs striped tables
-   */
-  getStatusTables(): ElementArrayFinder {
-    return $$('.table.table-striped');
-  }
-
-  /**
-   * Grabs legends above tables
-   */
-  getLegends(): ElementArrayFinder {
-    return $$('legend');
-  }
-
-  getToast() {
-    return $('.ngx-toastr');
-  }
-
-  async waitPresence(elem: ElementFinder, message?: string) {
-    return browser.wait(EC.presenceOf(elem), TIMEOUT, message);
-  }
-
-  async waitStaleness(elem: ElementFinder, message?: string) {
-    return browser.wait(EC.stalenessOf(elem), TIMEOUT, message);
-  }
-
-  /**
-   * This method will wait for the element to be clickable and then click it.
-   */
-  async waitClickableAndClick(elem: ElementFinder, message?: string) {
-    await browser.wait(EC.elementToBeClickable(elem), TIMEOUT, message);
-    return elem.click();
-  }
-
-  async waitVisibility(elem: ElementFinder, message?: string) {
-    return browser.wait(EC.visibilityOf(elem), TIMEOUT, message);
-  }
-
-  async waitInvisibility(elem: ElementFinder, message?: string) {
-    return browser.wait(EC.invisibilityOf(elem), TIMEOUT, message);
-  }
-
-  async waitTextToBePresent(elem: ElementFinder, text: string, message?: string) {
-    return browser.wait(EC.textToBePresentInElement(elem, text), TIMEOUT, message);
-  }
-
-  async waitTextNotPresent(elem: ElementFinder, text: string, message?: string) {
-    return browser.wait(EC.not(EC.textToBePresentInElement(elem, text)), TIMEOUT, message);
-  }
-
-  async waitFn(func: Function, message?: string, timeout: number = TIMEOUT) {
-    return browser.wait(func, timeout, message);
-  }
-
-  getFirstCell(): ElementFinder {
-    return $$('.datatable-body-cell-label').first();
-  }
-
-  /**
-   * This is a generic method to delete table rows.
-   * It will select the first row that contains the provided name and delete it.
-   * After that it will wait until the row is no longer displayed.
-   */
-  async delete(name: string): Promise<any> {
-    // Selects row
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-
-    // Clicks on table Delete button
-    await $$('.table-actions button.dropdown-toggle')
-      .first()
-      .click(); // open submenu
-    await $('li.delete a').click(); // click on "delete" menu item
-
-    // Confirms deletion
-    await this.clickCheckbox($('.custom-control-label'));
-    await element(by.cssContainingText('button', 'Delete')).click();
-
-    // Waits for item to be removed from table
-    return this.waitStaleness(this.getFirstTableCellWithText(name));
-  }
-
-  getTableRows() {
-    return $$('datatable-row-wrapper');
-  }
-
-  /**
-   * Uncheck all checked table rows.
-   */
-  async uncheckAllTableRows() {
-    await $$(
-      '.datatable-body-cell-label .datatable-checkbox input[type=checkbox]:checked'
-    ).each((e: ElementFinder) => e.click());
-  }
-
-  async filterTable(name: string, option: string) {
-    await this.waitClickableAndClick($('.tc_filter_name > a'));
-    await element(by.cssContainingText(`.tc_filter_name .dropdown-item`, name)).click();
-
-    await this.waitClickableAndClick($('.tc_filter_option > a'));
-    await element(by.cssContainingText(`.tc_filter_option .dropdown-item`, option)).click();
-  }
-
-  async clearTableSearchInput() {
-    return this.waitClickableAndClick($('cd-table .search button'));
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.e2e-spec.ts
deleted file mode 100644 (file)
index 7668dc2..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-import { PoolPageHelper } from './pools.po';
-
-describe('Pools page', () => {
-  let pools: PoolPageHelper;
-  const poolName = 'pool_e2e_pool/test';
-
-  beforeAll(async () => {
-    pools = new PoolPageHelper();
-    await pools.navigateTo();
-  });
-
-  afterEach(async () => {
-    await PoolPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    it('should open and show breadcrumb', async () => {
-      await pools.waitTextToBePresent(pools.getBreadcrumb(), 'Pools');
-    });
-
-    it('should show two tabs', async () => {
-      await expect(pools.getTabsCount()).toEqual(2);
-    });
-
-    it('should show pools list tab at first', async () => {
-      await expect(pools.getTabText(0)).toEqual('Pools List');
-    });
-
-    it('should show overall performance as a second tab', async () => {
-      await expect(pools.getTabText(1)).toEqual('Overall Performance');
-    });
-  });
-
-  it('should create a pool', async () => {
-    await pools.exist(poolName, false);
-    await pools.navigateTo('create');
-    await pools.create(poolName, 8);
-    await pools.navigateTo();
-    await pools.exist(poolName, true);
-  });
-
-  it('should edit a pools placement group', async () => {
-    await pools.exist(poolName, true);
-    await pools.navigateTo();
-    await pools.edit_pool_pg(poolName, 32);
-  });
-
-  it('should delete a pool', async () => {
-    await pools.navigateTo();
-    await pools.delete(poolName);
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/pools/pools.po.ts
deleted file mode 100644 (file)
index bda20d6..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-import { $, by, element, protractor } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-const pages = {
-  index: '/#/pool',
-  create: '/#/pool/create'
-};
-
-export class PoolPageHelper extends PageHelper {
-  pages = pages;
-
-  private isPowerOf2(n: number): boolean {
-    // tslint:disable-next-line: no-bitwise
-    return (n & (n - 1)) === 0;
-  }
-
-  @PageHelper.restrictTo(pages.index)
-  async exist(name: string, oughtToBePresent = true) {
-    const tableCell = await this.getTableCellByContent(name);
-    const waitFn = oughtToBePresent ? this.waitVisibility : this.waitInvisibility;
-    try {
-      await waitFn(tableCell);
-    } catch (e) {
-      const visibility = oughtToBePresent ? 'invisible' : 'visible';
-      const msg = `Pool "${name}" is ${visibility}, but should not be. Waiting for a change timed out`;
-      return Promise.reject(msg);
-    }
-    return Promise.resolve();
-  }
-
-  @PageHelper.restrictTo(pages.create)
-  async create(name: string, placement_groups: number, ...apps: string[]): Promise<any> {
-    const nameInput = $('input[name=name]');
-    await nameInput.clear();
-    if (!this.isPowerOf2(placement_groups)) {
-      return Promise.reject(`Placement groups ${placement_groups} are not a power of 2`);
-    }
-    await nameInput.sendKeys(name);
-    await this.selectOption('poolType', 'replicated');
-
-    await this.expectSelectOption('pgAutoscaleMode', 'on');
-    await this.selectOption('pgAutoscaleMode', 'off'); // To show pgNum field
-    await $('input[name=pgNum]').sendKeys(
-      protractor.Key.CONTROL,
-      'a',
-      protractor.Key.NULL,
-      placement_groups
-    );
-    await this.setApplications(apps);
-    await element(by.css('cd-submit-button')).click();
-
-    return Promise.resolve();
-  }
-
-  async edit_pool_pg(name: string, new_pg: number, wait = true): Promise<void> {
-    if (!this.isPowerOf2(new_pg)) {
-      return Promise.reject(`Placement groups ${new_pg} are not a power of 2`);
-    }
-    const elem = await this.getTableCellByContent(name);
-    await this.waitClickableAndClick(elem); // select pool from the table
-    await element(by.cssContainingText('button', 'Edit')).click(); // click edit button
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit'); // verify we are now on edit page
-    await $('input[name=pgNum]').sendKeys(protractor.Key.CONTROL, 'a', protractor.Key.NULL, new_pg);
-    await element(by.css('cd-submit-button')).click();
-    const str = `${new_pg} active+clean`;
-    await this.waitVisibility(this.getTableRow(name), 'Timed out waiting for table row to load');
-    if (wait) {
-      await this.waitTextToBePresent(
-        this.getTableRow(name),
-        str,
-        'Timed out waiting for placement group to be updated'
-      );
-    }
-  }
-
-  private async setApplications(apps: string[]) {
-    if (!apps || apps.length === 0) {
-      return;
-    }
-    await element(by.css('.float-left.mr-2.select-menu-edit')).click();
-    await this.waitVisibility(element(by.css('.popover-content.popover-body')));
-    apps.forEach(
-      async (app) => await element(by.cssContainingText('.select-menu-item-content', app)).click()
-    );
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.e2e-spec.ts
deleted file mode 100644 (file)
index 8dbb80e..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-import { $ } from 'protractor';
-import { BucketsPageHelper } from './buckets.po';
-
-describe('RGW buckets page', () => {
-  let buckets: BucketsPageHelper;
-  const bucket_name = '000test';
-
-  beforeAll(async () => {
-    buckets = new BucketsPageHelper();
-  });
-
-  afterEach(async () => {
-    await BucketsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb tests', () => {
-    beforeEach(async () => {
-      await buckets.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await expect($('.breadcrumb-item.active').getText()).toBe('Buckets');
-    });
-  });
-
-  describe('create, edit & delete bucket tests', () => {
-    beforeEach(async () => {
-      await buckets.navigateTo();
-      await buckets.uncheckAllTableRows();
-    });
-
-    it('should create bucket', async () => {
-      await buckets.navigateTo('create');
-      await buckets.create(
-        bucket_name,
-        '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
-        'default-placement'
-      );
-      await expect(buckets.getFirstTableCellWithText(bucket_name).isPresent()).toBe(true);
-    });
-
-    it('should edit bucket', async () => {
-      await buckets.edit(bucket_name, 'dev');
-      await expect(buckets.getTable().getText()).toMatch('dev');
-    });
-
-    it('should delete bucket', async () => {
-      await buckets.delete(bucket_name);
-    });
-  });
-
-  describe('Invalid Input in Create and Edit tests', () => {
-    it('should test invalid inputs in create fields', async () => {
-      await buckets.testInvalidCreate();
-    });
-
-    it('should test invalid input in edit owner field', async () => {
-      await buckets.navigateTo('create');
-      await buckets.create(
-        '000rq',
-        '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef',
-        'default-placement'
-      );
-      await buckets.testInvalidEdit('000rq');
-      await buckets.navigateTo();
-      await buckets.uncheckAllTableRows();
-      await buckets.delete('000rq');
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/buckets.po.ts
deleted file mode 100644 (file)
index 1e0cb68..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-import { by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-const pages = {
-  index: '/#/rgw/bucket',
-  create: '/#/rgw/bucket/create'
-};
-
-export class BucketsPageHelper extends PageHelper {
-  pages = pages;
-  versioningStateEnabled = 'Enabled';
-  versioningStateSuspended = 'Suspended';
-
-  private async selectOwner(owner: string) {
-    return this.selectOption('owner', owner);
-  }
-
-  private async selectPlacementTarget(placementTarget: string) {
-    return this.selectOption('placement-target', placementTarget);
-  }
-
-  /**
-   * TODO add check to verify the existance of the bucket!
-   * TODO let it print a meaningful error message (for devs) if it does not exist!
-   */
-  @PageHelper.restrictTo(pages.create)
-  async create(name: string, owner: string, placementTarget: string) {
-    // Enter in bucket name
-    await element(by.id('bid')).sendKeys(name);
-
-    // Select bucket owner
-    await this.selectOwner(owner);
-    await expect(element(by.id('owner')).getAttribute('class')).toContain('ng-valid');
-
-    // Select bucket placement target:
-    await this.selectPlacementTarget(placementTarget);
-    await expect(element(by.id('placement-target')).getAttribute('class')).toContain('ng-valid');
-
-    // Click the create button and wait for bucket to be made
-    const createButton = element(by.cssContainingText('button', 'Create Bucket'));
-    await createButton.click();
-
-    return this.waitPresence(
-      this.getFirstTableCellWithText(name),
-      'Timed out waiting for bucket creation'
-    );
-  }
-
-  @PageHelper.restrictTo(pages.index)
-  async edit(name: string, new_owner: string) {
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // wait for table to load and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-    await expect(element(by.css('input[name=placement-target]')).getAttribute('value')).toBe(
-      'default-placement'
-    );
-    await this.selectOwner(new_owner);
-
-    // Enable versioning
-    await expect(element(by.css('input[id=versioning]')).getAttribute('checked')).toBeFalsy();
-    await element(by.css('label[for=versioning]')).click();
-    await expect(element(by.css('input[id=versioning]')).getAttribute('checked')).toBeTruthy();
-
-    await element(by.cssContainingText('button', 'Edit Bucket')).click();
-
-    // wait to be back on buckets page with table visible and click
-    await this.waitClickableAndClick(
-      this.getFirstTableCellWithText(name),
-      'Could not return to buckets page and load table after editing bucket'
-    );
-
-    // check its details table for edited owner field
-    let bucketDataTable = element.all(by.css('.table.table-striped.table-bordered')).first();
-    await expect(bucketDataTable.getText()).toMatch(new_owner);
-
-    // Check versioning enabled:
-    const ownerValueCell = bucketDataTable
-      .all(by.css('tr'))
-      .get(2)
-      .all(by.css('td'))
-      .last();
-    await expect(ownerValueCell.getText()).toEqual(new_owner);
-    let versioningValueCell = bucketDataTable
-      .all(by.css('tr'))
-      .get(11)
-      .all(by.css('td'))
-      .last();
-    await expect(versioningValueCell.getText()).toEqual(this.versioningStateEnabled);
-
-    // Disable versioning:
-    await this.uncheckAllTableRows();
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // wait for table to load and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-    await element(by.css('label[for=versioning]')).click();
-    await expect(element(by.css('input[id=versioning]')).getAttribute('checked')).toBeFalsy();
-    await element(by.cssContainingText('button', 'Edit Bucket')).click();
-
-    // Check versioning suspended:
-    await this.waitClickableAndClick(
-      this.getFirstTableCellWithText(name),
-      'Could not return to buckets page and load table after editing bucket'
-    );
-    bucketDataTable = element.all(by.css('.table.table-striped.table-bordered')).first();
-    versioningValueCell = bucketDataTable
-      .all(by.css('tr'))
-      .get(11)
-      .all(by.css('td'))
-      .last();
-    return expect(versioningValueCell.getText()).toEqual(this.versioningStateSuspended);
-  }
-
-  async testInvalidCreate() {
-    await this.navigateTo('create');
-    const nameInputField = element(by.id('bid')); // Grabs name box field
-
-    // Gives an invalid name (too short), then waits for dashboard to determine validity
-    await nameInputField.sendKeys('rq');
-
-    await element(by.id('owner')).click(); // To trigger a validation
-
-    await this.waitFn(async () => {
-      // Waiting for website to decide if name is valid or not
-      const klass = await nameInputField.getAttribute('class');
-      return !klass.includes('ng-pending');
-    }, 'Timed out waiting for dashboard to decide bucket name validity');
-
-    // Check that name input field was marked invalid in the css
-    await expect(nameInputField.getAttribute('class')).toContain('ng-invalid');
-
-    // Check that error message was printed under name input field
-    await expect(element(by.css('#bid + .invalid-feedback')).getText()).toMatch(
-      'The value is not valid.'
-    );
-
-    // Test invalid owner input
-    // select some valid option. The owner drop down error message will not appear unless a valid user was selected at
-    // one point before the invalid placeholder user is selected.
-    await this.selectOwner('dev');
-
-    // select the first option, which is invalid because it is a placeholder
-    await this.selectOwner('Select a user');
-
-    await nameInputField.click();
-
-    // Check that owner drop down field was marked invalid in the css
-    await expect(element(by.id('owner')).getAttribute('class')).toContain('ng-invalid');
-
-    // Check that error message was printed under owner drop down field
-    await expect(element(by.css('#owner + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    // Check invalid placement target input
-    await this.selectOwner('dev');
-    // The drop down error message will not appear unless a valid option is previsously selected.
-    await this.selectPlacementTarget('default-placement');
-    await this.selectPlacementTarget('Select a placement target');
-    await nameInputField.click(); // Trigger validation
-    await expect(element(by.id('placement-target')).getAttribute('class')).toContain('ng-invalid');
-    await expect(element(by.css('#placement-target + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    // Clicks the Create Bucket button but the page doesn't move. Done by testing
-    // for the breadcrumb
-    await element(by.cssContainingText('button', 'Create Bucket')).click(); // Clicks Create Bucket button
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Create');
-    // content in fields seems to subsist through tests if not cleared, so it is cleared
-    await nameInputField.clear();
-    return element(by.cssContainingText('button', 'Cancel')).click();
-  }
-
-  async testInvalidEdit(name: string) {
-    await this.navigateTo();
-
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // wait for table to load and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-
-    await expect(element(by.css('input[id=versioning]')).getAttribute('checked')).toBeFalsy();
-
-    // Chooses 'Select a user' rather than a valid owner on Edit Bucket page
-    // and checks if it's an invalid input
-
-    // select the first option, which is invalid because it is a placeholder
-    await this.selectOwner('Select a user');
-
-    // Changes when updated to bootstrap 4 -> Error message takes a long time to appear unless another field
-    // is clicked on. For that reason, I'm having the test click on the edit button before checking for errors
-    await element(by.cssContainingText('button', 'Edit Bucket')).click();
-
-    // Check that owner drop down field was marked invalid in the css
-    await expect(element(by.id('owner')).getAttribute('class')).toContain('ng-invalid');
-
-    // Check that error message was printed under owner drop down field
-    await expect(element(by.css('#owner + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.e2e-spec.ts
deleted file mode 100644 (file)
index 0a9e551..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-import { DaemonsPageHelper } from './daemons.po';
-
-describe('RGW daemons page', () => {
-  let daemons: DaemonsPageHelper;
-
-  beforeAll(() => {
-    daemons = new DaemonsPageHelper();
-  });
-
-  afterEach(async () => {
-    await DaemonsPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb and tab tests', () => {
-    beforeAll(async () => {
-      await daemons.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await daemons.waitTextToBePresent(daemons.getBreadcrumb(), 'Daemons');
-    });
-
-    it('should show two tabs', async () => {
-      await expect(daemons.getTabsCount()).toEqual(2);
-    });
-
-    it('should show daemons list tab at first', async () => {
-      await expect(daemons.getTabText(0)).toEqual('Daemons List');
-    });
-
-    it('should show overall performance as a second tab', async () => {
-      await expect(daemons.getTabText(1)).toEqual('Overall Performance');
-    });
-  });
-
-  describe('details and performance counters table tests', () => {
-    beforeAll(async () => {
-      await daemons.navigateTo();
-    });
-
-    it('should check that details/performance tables are visible when daemon is selected', async () => {
-      await daemons.checkTables();
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/daemons.po.ts
deleted file mode 100644 (file)
index c1cb9d7..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import { $$, by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class DaemonsPageHelper extends PageHelper {
-  pages = { index: '/#/rgw/daemon' };
-
-  async checkTables() {
-    await this.navigateTo();
-
-    // click on a daemon so details table appears
-    await $$('.datatable-body-cell-label')
-      .first()
-      .click();
-
-    const tab_container = $$('.tab-container').last();
-    const details_table = tab_container.all(by.css('cd-table')).get(0);
-    const performance_counters_table = tab_container.all(by.css('cd-table')).get(1);
-
-    // check details table is visible
-    await expect(details_table.isDisplayed()).toBe(true);
-    // check at least one field is present
-    await expect(details_table.getText()).toMatch('ceph_version');
-    // check performance counters table is not currently visible
-    await expect(performance_counters_table.isDisplayed()).toBe(false);
-
-    // click on performance counters tab and check table is loaded
-    await element(by.cssContainingText('.nav-link', 'Performance Counters')).click();
-    await expect(performance_counters_table.isDisplayed()).toBe(true);
-    // check at least one field is present
-    await expect(performance_counters_table.getText()).toMatch('objecter.op_r');
-    // check details table is not currently visible
-    await expect(details_table.isDisplayed()).toBe(false);
-
-    // click on performance details tab
-    await element(by.cssContainingText('.nav-link', 'Performance Details')).click();
-    // checks the other tabs' content isn't visible
-    await expect(details_table.isDisplayed()).toBe(false);
-    await expect(performance_counters_table.isDisplayed()).toBe(false);
-    // TODO: Expect Grafana iFrame
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.e2e-spec.ts
deleted file mode 100644 (file)
index 2e93046..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-import { UsersPageHelper } from './users.po';
-
-describe('RGW users page', () => {
-  let users: UsersPageHelper;
-  const user_name = '000user_create_edit_delete';
-
-  beforeAll(() => {
-    users = new UsersPageHelper();
-  });
-
-  afterEach(async () => {
-    await UsersPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb tests', () => {
-    beforeEach(async () => {
-      await users.navigateTo();
-    });
-
-    it('should open and show breadcrumb', async () => {
-      await users.waitTextToBePresent(users.getBreadcrumb(), 'Users');
-    });
-  });
-
-  describe('create, edit & delete user tests', () => {
-    beforeEach(async () => {
-      await users.navigateTo();
-      await users.uncheckAllTableRows();
-    });
-
-    it('should create user', async () => {
-      await users.navigateTo('create');
-      await users.create(user_name, 'Some Name', 'original@website.com', '1200');
-      await expect(users.getFirstTableCellWithText(user_name).isPresent()).toBe(true);
-    });
-
-    it('should edit users full name, email and max buckets', async () => {
-      await users.edit(user_name, 'Another Identity', 'changed@othersite.com', '1969');
-    });
-
-    it('should delete user', async () => {
-      await users.delete(user_name);
-    });
-  });
-
-  describe('Invalid input tests', () => {
-    it('should put invalid input into user creation form and check fields are marked invalid', async () => {
-      await users.invalidCreate();
-    });
-
-    it('should put invalid input into user edit form and check fields are marked invalid', async () => {
-      await users.invalidEdit();
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/rgw/users.po.ts
deleted file mode 100644 (file)
index 200d60f..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-import { $, by, element } from 'protractor';
-import { protractor } from 'protractor/built/ptor';
-import { PageHelper } from '../page-helper.po';
-
-const pages = {
-  index: '/#/rgw/user',
-  create: '/#/rgw/user/create'
-};
-
-export class UsersPageHelper extends PageHelper {
-  pages = pages;
-
-  @PageHelper.restrictTo(pages.create)
-  async create(username: string, fullname: string, email: string, maxbuckets: string) {
-    // Enter in  username
-    await element(by.id('uid')).sendKeys(username);
-
-    // Enter in full name
-    await element(by.id('display_name')).click();
-    await element(by.id('display_name')).sendKeys(fullname);
-
-    // Enter in email
-    await element(by.id('email')).click();
-    await element(by.id('email')).sendKeys(email);
-
-    // Enter max buckets
-    await this.selectOption('max_buckets_mode', 'Custom');
-    await element(by.id('max_buckets')).click();
-    await element(by.id('max_buckets')).clear();
-    await element(by.id('max_buckets')).sendKeys(maxbuckets);
-
-    // Click the create button and wait for user to be made
-    await element(by.cssContainingText('button', 'Create User')).click();
-    await this.waitPresence(this.getFirstTableCellWithText(username));
-  }
-
-  @PageHelper.restrictTo(pages.index)
-  async edit(name: string, new_fullname: string, new_email: string, new_maxbuckets: string) {
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name)); // wait for table to load and click
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-
-    // Change the full name field
-    await element(by.id('display_name')).click();
-    await element(by.id('display_name')).clear();
-    await element(by.id('display_name')).sendKeys(new_fullname);
-
-    // Change the email field
-    await element(by.id('email')).click();
-    await element(by.id('email')).clear();
-    await element(by.id('email')).sendKeys(new_email);
-
-    // Change the max buckets field
-    await this.selectOption('max_buckets_mode', 'Custom');
-    await element(by.id('max_buckets')).click();
-    await element(by.id('max_buckets')).clear();
-    await element(by.id('max_buckets')).sendKeys(new_maxbuckets);
-
-    const editbutton = element(by.cssContainingText('button', 'Edit User'));
-    await editbutton.click();
-    // Click the user and check its details table for updated content
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(name));
-    await expect($('.active.tab-pane').getText()).toMatch(new_fullname); // check full name was changed
-    await expect($('.active.tab-pane').getText()).toMatch(new_email); // check email was changed
-    await expect($('.active.tab-pane').getText()).toMatch(new_maxbuckets); // check max buckets was changed
-  }
-
-  async invalidCreate() {
-    const uname = '000invalid_create_user';
-    // creating this user in order to check that you can't give two users the same name
-    await this.navigateTo('create');
-    await this.create(uname, 'xxx', 'xxx@xxx', '1');
-
-    await this.navigateTo('create');
-
-    const username_field = element(by.id('uid'));
-
-    // No username had been entered. Field should be invalid
-    await expect(username_field.getAttribute('class')).toContain('ng-invalid');
-
-    // Try to give user already taken name. Should make field invalid.
-    await username_field.clear();
-    await username_field.sendKeys(uname);
-    await expect(username_field.getAttribute('class')).toContain('ng-invalid');
-    await element(by.id('display_name')).click(); // trigger validation check
-    await expect(element(by.css('#uid + .invalid-feedback')).getText()).toMatch(
-      'The chosen user ID is already in use.'
-    );
-
-    // check that username field is marked invalid if username has been cleared off
-    await username_field.click();
-    for (let i = 0; i < uname.length; i++) {
-      await username_field.sendKeys(protractor.Key.BACK_SPACE);
-    }
-    await expect(username_field.getAttribute('class')).toContain('ng-invalid');
-    await element(by.id('display_name')).click(); // trigger validation check
-    await expect(element(by.css('#uid + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    // No display name has been given so field should be invalid
-    await expect(element(by.id('display_name')).getAttribute('class')).toContain('ng-invalid');
-
-    // display name field should also be marked invalid if given input then emptied
-    await element(by.id('display_name')).click();
-    await element(by.id('display_name')).sendKeys('a');
-    await element(by.id('display_name')).sendKeys(protractor.Key.BACK_SPACE);
-    await expect(element(by.id('display_name')).getAttribute('class')).toContain('ng-invalid');
-    await username_field.click(); // trigger validation check
-    await expect(element(by.css('#display_name + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    // put invalid email to make field invalid
-    await element(by.id('email')).click();
-    await element(by.id('email')).sendKeys('a');
-    await expect(element(by.id('email')).getAttribute('class')).toContain('ng-invalid');
-    await username_field.click(); // trigger validation check
-    await expect(element(by.css('#email + .invalid-feedback')).getText()).toMatch(
-      'This is not a valid email address.'
-    );
-
-    // put negative max buckets to make field invalid
-    await this.expectSelectOption('max_buckets_mode', 'Custom');
-    await element(by.id('max_buckets')).click();
-    await element(by.id('max_buckets')).clear();
-    await element(by.id('max_buckets')).sendKeys('-5');
-    await expect(element(by.id('max_buckets')).getAttribute('class')).toContain('ng-invalid');
-    await username_field.click(); // trigger validation check
-    await expect(element(by.css('#max_buckets + .invalid-feedback')).getText()).toMatch(
-      'The entered value must be >= 1.'
-    );
-
-    await this.navigateTo();
-    await this.delete(uname);
-  }
-
-  async invalidEdit() {
-    const uname = '000invalid_edit_user';
-    // creating this user to edit for the test
-    await this.navigateTo('create');
-    await this.create(uname, 'xxx', 'xxx@xxx', '1');
-
-    await this.navigateTo();
-
-    // wait for table to load and click on the bucket you want to edit in the table
-    await this.waitClickableAndClick(this.getFirstTableCellWithText(uname));
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-
-    await this.waitTextToBePresent(this.getBreadcrumb(), 'Edit');
-
-    // put invalid email to make field invalid
-    await element(by.id('email')).click();
-    await element(by.id('email')).clear();
-    await element(by.id('email')).sendKeys('a');
-    await this.waitFn(
-      async () => !(await element(by.id('email')).getAttribute('class')).includes('ng-pending')
-    );
-    await expect(element(by.id('email')).getAttribute('class')).toContain('ng-invalid');
-    await element(by.id('display_name')).click(); // trigger validation check
-    await expect(element(by.css('#email + .invalid-feedback')).getText()).toMatch(
-      'This is not a valid email address.'
-    );
-
-    // empty the display name field making it invalid
-    await element(by.id('display_name')).click();
-    for (let i = 0; i < 3; i++) {
-      await element(by.id('display_name')).sendKeys(protractor.Key.BACK_SPACE);
-    }
-    await expect(element(by.id('display_name')).getAttribute('class')).toContain('ng-invalid');
-    await element(by.id('email')).click(); // trigger validation check
-    await expect(element(by.css('#display_name + .invalid-feedback')).getText()).toMatch(
-      'This field is required.'
-    );
-
-    // put negative max buckets to make field invalid
-    await this.expectSelectOption('max_buckets_mode', 'Custom');
-    await element(by.id('max_buckets')).click();
-    await element(by.id('max_buckets')).clear();
-    await element(by.id('max_buckets')).sendKeys('-5');
-    await expect(element(by.id('max_buckets')).getAttribute('class')).toContain('ng-invalid');
-    await element(by.id('email')).click(); // trigger validation check
-    await expect(element(by.css('#max_buckets + .invalid-feedback')).getText()).toMatch(
-      'The entered value must be >= 1.'
-    );
-
-    await this.navigateTo();
-    await this.delete(uname);
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/tsconfig.e2e.json b/ceph/src/pybind/mgr/dashboard/frontend/e2e/tsconfig.e2e.json
deleted file mode 100644 (file)
index e3d6ae7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "extends": "../tsconfig.json",
-  "compilerOptions": {
-    "outDir": "../out-tsc/e2e",
-    "baseUrl": "./",
-    "module": "commonjs",
-    "target": "es5",
-    "types": [
-      "jasmine",
-      "jasminewd2",
-      "node"
-    ],
-    "noEmit": true
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.e2e-spec.ts
deleted file mode 100644 (file)
index d15c358..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-import { browser } from 'protractor';
-import { IscsiPageHelper } from '../block/iscsi.po';
-import { HostsPageHelper } from '../cluster/hosts.po';
-import { MonitorsPageHelper } from '../cluster/monitors.po';
-import { OSDsPageHelper } from '../cluster/osds.po';
-import { PageHelper } from '../page-helper.po';
-import { PoolPageHelper } from '../pools/pools.po';
-import { DaemonsPageHelper } from '../rgw/daemons.po';
-import { DashboardPageHelper } from './dashboard.po';
-
-describe('Dashboard Main Page', () => {
-  let dashboard: DashboardPageHelper;
-  let daemons: DaemonsPageHelper;
-  let hosts: HostsPageHelper;
-  let osds: OSDsPageHelper;
-  let pools: PoolPageHelper;
-  let monitors: MonitorsPageHelper;
-  let iscsi: IscsiPageHelper;
-
-  beforeAll(() => {
-    dashboard = new DashboardPageHelper();
-    daemons = new DaemonsPageHelper();
-    hosts = new HostsPageHelper();
-    osds = new OSDsPageHelper();
-    pools = new PoolPageHelper();
-    monitors = new MonitorsPageHelper();
-    iscsi = new IscsiPageHelper();
-  });
-
-  afterEach(async () => {
-    await DashboardPageHelper.checkConsole();
-  });
-
-  describe('Check that all hyperlinks on info cards lead to the correct page and fields exist', () => {
-    beforeEach(async () => {
-      await dashboard.navigateTo();
-    });
-
-    it('should ensure that all linked info cards lead to correct page', async () => {
-      const expectationMap = {
-        Monitors: 'Monitors',
-        OSDs: 'OSDs',
-        Hosts: 'Hosts',
-        'Object Gateways': 'Daemons',
-        'iSCSI Gateways': 'Overview',
-        Pools: 'Pools'
-      };
-
-      for (const [linkText, breadcrumbText] of Object.entries(expectationMap)) {
-        await expect(browser.getCurrentUrl()).toContain('/#/dashboard');
-        await dashboard.clickInfoCardLink(linkText);
-        await dashboard.waitTextToBePresent(dashboard.getBreadcrumb(), breadcrumbText);
-        await dashboard.navigateBack();
-      }
-    });
-
-    it('should verify that info cards exist on dashboard in proper order', async () => {
-      // Ensures that info cards are all displayed on the dashboard tab while being in the proper
-      // order, checks for card title and position via indexing into a list of all info cards.
-      const order = [
-        'Cluster Status',
-        'Monitors',
-        'OSDs',
-        'Manager Daemons',
-        'Hosts',
-        'Object Gateways',
-        'Metadata Servers',
-        'iSCSI Gateways',
-        'Client IOPS',
-        'Client Throughput',
-        'Client Read/Write',
-        'Recovery Throughput',
-        'Scrub',
-        'Pools',
-        'Raw Capacity',
-        'Objects',
-        'PGs per OSD',
-        'PG Status'
-      ];
-
-      for (let i = 0; i < order.length; i++) {
-        await expect((await dashboard.infoCard(i)).getText()).toContain(
-          order[i],
-          `Order of ${order[i]} seems to be wrong`
-        );
-      }
-    });
-
-    it('should verify that info card group titles are present and in the right order', async () => {
-      await expect(browser.getCurrentUrl()).toContain('/#/dashboard');
-      await expect(dashboard.infoGroupTitle(0)).toBe('Status');
-      await expect(dashboard.infoGroupTitle(1)).toBe('Performance');
-      await expect(dashboard.infoGroupTitle(2)).toBe('Capacity');
-    });
-  });
-
-  it('Should check that dashboard cards have correct information', async () => {
-    interface TestSpec {
-      cardName: string;
-      regexMatcher?: RegExp;
-      pageObject: PageHelper;
-    }
-
-    const testSpecs: TestSpec[] = [
-      { cardName: 'Object Gateways', regexMatcher: /(\d+)\s+total/, pageObject: daemons },
-      { cardName: 'Monitors', regexMatcher: /(\d+)\s+\(quorum/, pageObject: monitors },
-      { cardName: 'Hosts', regexMatcher: /(\d+)\s+total/, pageObject: hosts },
-      { cardName: 'OSDs', regexMatcher: /(\d+)\s+total/, pageObject: osds },
-      { cardName: 'Pools', pageObject: pools },
-      { cardName: 'iSCSI Gateways', regexMatcher: /(\d+)\s+total/, pageObject: iscsi }
-    ];
-
-    for (let i = 0; i < testSpecs.length; i++) {
-      const spec = testSpecs[i];
-      await dashboard.navigateTo();
-      const infoCardBodyText = await dashboard.infoCardBodyText(spec.cardName);
-      let dashCount = 0;
-      if (spec.regexMatcher) {
-        const match = infoCardBodyText.match(new RegExp(spec.regexMatcher));
-        if (match && match.length > 1) {
-          dashCount = Number(match[1]);
-        } else {
-          return Promise.reject(
-            `Regex ${spec.regexMatcher} did not find a match for card with name ` +
-              `${spec.cardName}`
-          );
-        }
-      } else {
-        dashCount = Number(infoCardBodyText);
-      }
-      await spec.pageObject.navigateTo();
-      const tableCount = await spec.pageObject.getTableTotalCount();
-      await expect(dashCount).toBe(
-        tableCount,
-        `Text of card "${spec.cardName}" and regex "${spec.regexMatcher}" resulted in ${dashCount} ` +
-          `but did not match table count ${tableCount}`
-      );
-    }
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/dashboard.po.ts
deleted file mode 100644 (file)
index f0a2338..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-import { $, $$, by, ElementFinder } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class DashboardPageHelper extends PageHelper {
-  pages = {
-    index: '/#/dashboard'
-  };
-
-  async infoGroupTitle(index: number): Promise<string> {
-    return $$('.info-group-title')
-      .get(index)
-      .getText();
-  }
-
-  async clickInfoCardLink(cardName: string): Promise<void> {
-    await $(`cd-info-card[cardtitle="${cardName}"]`)
-      .element(by.linkText(cardName))
-      .click();
-  }
-
-  async infoCard(indexOrTitle: number | string): Promise<ElementFinder> {
-    let infoCards = $$('cd-info-card');
-    if (typeof indexOrTitle === 'number') {
-      if ((await infoCards.count()) <= indexOrTitle) {
-        return Promise.reject(
-          `No element found for index ${indexOrTitle}. Elements array has ` +
-            `only ${await infoCards.count()} elements.`
-        );
-      }
-      return infoCards.get(indexOrTitle);
-    } else if (typeof indexOrTitle === 'string') {
-      infoCards = infoCards.filter(
-        async (e) => (await e.$('.card-title').getText()) === indexOrTitle
-      );
-      if ((await infoCards.count()) === 0) {
-        return Promise.reject(`No element found for title "${indexOrTitle}"`);
-      }
-      return infoCards.first();
-    }
-  }
-
-  async infoCardBodyText(
-    infoCard: ElementFinder | Promise<ElementFinder> | string
-  ): Promise<string> {
-    let _infoCard: ElementFinder;
-    if (typeof infoCard === 'string') {
-      _infoCard = await this.infoCard(infoCard);
-    } else {
-      _infoCard = typeof infoCard.then === 'function' ? await infoCard : infoCard;
-    }
-    return _infoCard.$('.card-text').getText();
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.e2e-spec.ts
deleted file mode 100644 (file)
index 3aedae5..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-import { PoolPageHelper } from '../pools/pools.po';
-import { NotificationSidebarPageHelper } from './notification.po';
-
-describe('Notification page', () => {
-  let notification: NotificationSidebarPageHelper;
-  let pools: PoolPageHelper;
-
-  beforeAll(() => {
-    notification = new NotificationSidebarPageHelper();
-    pools = new PoolPageHelper();
-  });
-
-  afterEach(async () => {
-    await NotificationSidebarPageHelper.checkConsole();
-  });
-
-  it('should open notification sidebar', async () => {
-    await notification.waitInvisibility(notification.getSidebar());
-    await notification.open();
-    await notification.waitVisibility(notification.getSidebar());
-  });
-
-  it('should display a running task', async () => {
-    const poolName = 'e2e_notification_pool';
-
-    await pools.navigateTo('create');
-    await pools.create(poolName, 8);
-    await pools.edit_pool_pg(poolName, 4, false);
-    await notification.waitStaleness(notification.getToast());
-
-    // Check that running task is shown.
-    await notification.open();
-    await notification.waitFn(async () => {
-      const task = await notification.getTasks().first();
-      const text = await task.getText();
-      return text.includes(poolName);
-    }, 'Timed out verifying task.');
-
-    // Delete pool after task is complete (otherwise we get an error).
-    await notification.waitFn(
-      async () => {
-        const tasks = await notification.getTasks();
-        return tasks.length === 0 ? true : !(await tasks[0].getText()).includes(poolName);
-      },
-      'Timed out waiting for task to complete.',
-      40000
-    );
-    await pools.delete(poolName);
-  });
-
-  it('should have notifications', async () => {
-    await notification.open();
-    await expect((await notification.getNotifications()).length).toBeGreaterThan(0);
-  });
-
-  it('should clear notifications', async () => {
-    await notification.waitStaleness(notification.getToast());
-    await expect((await notification.getNotifications()).length).toBeGreaterThan(0);
-    await notification.waitVisibility(notification.getClearNotficationsBtn());
-
-    // It can happen that although notifications are cleared, by the time we check the
-    // notifications amount, another notification can appear, so we check it more than once (if needed).
-    await notification.waitClickableAndClick(notification.getClearNotficationsBtn());
-    await notification.waitFn(async () => {
-      const notifications = await notification.getNotifications();
-      if (notifications.length > 0) {
-        await notification.waitClickableAndClick(notification.getClearNotficationsBtn());
-        return false;
-      }
-      return true;
-    }, 'Timed out checking that notifications are cleared.');
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/notification.po.ts
deleted file mode 100644 (file)
index 68eeb61..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-import { by, element } from 'protractor';
-
-import { PageHelper } from '../page-helper.po';
-
-export class NotificationSidebarPageHelper extends PageHelper {
-  getNotificatinoIcon() {
-    return element(by.css('cd-notifications a'));
-  }
-
-  getSidebar() {
-    return element(by.css('cd-notifications-sidebar'));
-  }
-
-  getTasks() {
-    return this.getSidebar().all(by.css('.card.tc_task'));
-  }
-
-  getNotifications() {
-    return this.getSidebar().all(by.css('.card.tc_notification'));
-  }
-
-  getClearNotficationsBtn() {
-    return this.getSidebar().element(by.css('button.btn-block'));
-  }
-
-  getCloseBtn() {
-    return this.getSidebar().element(by.css('button.close'));
-  }
-
-  async open() {
-    await this.waitClickableAndClick(this.getNotificatinoIcon());
-    return this.waitVisibility(this.getSidebar());
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.e2e-spec.ts
deleted file mode 100644 (file)
index badb3c9..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import { RoleMgmtPageHelper } from './role-mgmt.po';
-
-describe('Role Management page', () => {
-  let roleMgmt: RoleMgmtPageHelper;
-  const role_name = 'user_mgmt_create_edit_delete_role';
-
-  beforeAll(() => {
-    roleMgmt = new RoleMgmtPageHelper();
-  });
-
-  afterEach(async () => {
-    await RoleMgmtPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb tests', () => {
-    it('should check breadcrumb on roles tab on user management page', async () => {
-      await roleMgmt.navigateTo();
-      await roleMgmt.waitTextToBePresent(roleMgmt.getBreadcrumb(), 'Roles');
-    });
-
-    it('should check breadcrumb on role creation page', async () => {
-      await roleMgmt.navigateTo('create');
-      await roleMgmt.waitTextToBePresent(roleMgmt.getBreadcrumb(), 'Create');
-    });
-  });
-
-  describe('role create, edit & delete test', () => {
-    it('should create a role', async () => {
-      await roleMgmt.create(role_name, 'An interesting description');
-    });
-
-    it('should edit a role', async () => {
-      await roleMgmt.edit(role_name, 'A far more interesting description');
-    });
-
-    it('should delete a role', async () => {
-      await roleMgmt.navigateTo();
-      await roleMgmt.delete(role_name);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/role-mgmt.po.ts
deleted file mode 100644 (file)
index dbec067..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import { by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class RoleMgmtPageHelper extends PageHelper {
-  pages = {
-    index: '/#/user-management/roles',
-    create: '/#/user-management/roles/create'
-  };
-
-  async create(name: string, description: string): Promise<void> {
-    await this.navigateTo('create');
-
-    // fill in fields
-    await element(by.id('name')).sendKeys(name);
-    await element(by.id('description')).sendKeys(description);
-
-    // Click the create button and wait for role to be made
-    const createButton = element(by.cssContainingText('button', 'Create Role'));
-    await createButton.click();
-
-    await this.waitPresence(this.getFirstTableCellWithText(name));
-  }
-
-  async edit(name: string, description: string): Promise<void> {
-    await this.navigateTo();
-
-    await this.getFirstTableCellWithText(name).click(); // select role from table
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-
-    // fill in fields with new values
-    await element(by.id('description')).clear();
-    await element(by.id('description')).sendKeys(description);
-
-    // Click the edit button and check new values are present in table
-    const editButton = element(by.cssContainingText('button', 'Edit Role'));
-    await editButton.click();
-
-    await this.waitPresence(this.getFirstTableCellWithText(name));
-    await this.waitPresence(this.getFirstTableCellWithText(description));
-  }
-}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.e2e-spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.e2e-spec.ts
deleted file mode 100644 (file)
index f40ce1f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import { UserMgmtPageHelper } from './user-mgmt.po';
-
-describe('User Management page', () => {
-  let userMgmt: UserMgmtPageHelper;
-  const user_name = 'user_mgmt_create_edit_delete_user';
-
-  beforeAll(() => {
-    userMgmt = new UserMgmtPageHelper();
-  });
-
-  afterEach(async () => {
-    await UserMgmtPageHelper.checkConsole();
-  });
-
-  describe('breadcrumb tests', () => {
-    it('should check breadcrumb on users tab of user management page', async () => {
-      await userMgmt.navigateTo();
-      await userMgmt.waitTextToBePresent(userMgmt.getBreadcrumb(), 'Users');
-    });
-
-    it('should check breadcrumb on user creation page', async () => {
-      await userMgmt.navigateTo('create');
-      await userMgmt.waitTextToBePresent(userMgmt.getBreadcrumb(), 'Create');
-    });
-  });
-
-  describe('user create, edit & delete test', () => {
-    it('should create a user', async () => {
-      await userMgmt.create(user_name, 'cool_password', 'Jeff', 'realemail@realwebsite.com');
-    });
-
-    it('should edit a user', async () => {
-      await userMgmt.edit(user_name, 'cool_password_number_2', 'Geoff', 'w@m');
-    });
-
-    it('should delete a user', async () => {
-      await userMgmt.navigateTo();
-      await userMgmt.delete(user_name);
-    });
-  });
-});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.po.ts b/ceph/src/pybind/mgr/dashboard/frontend/e2e/ui/user-mgmt.po.ts
deleted file mode 100644 (file)
index d59eddb..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-import { by, element } from 'protractor';
-import { PageHelper } from '../page-helper.po';
-
-export class UserMgmtPageHelper extends PageHelper {
-  pages = {
-    index: '/#/user-management/users',
-    create: '/#/user-management/users/create'
-  };
-
-  async create(username: string, password: string, name: string, email: string): Promise<void> {
-    await this.navigateTo('create');
-
-    // fill in fields
-    await element(by.id('username')).sendKeys(username);
-    await element(by.id('password')).sendKeys(password);
-    await element(by.id('confirmpassword')).sendKeys(password);
-    await element(by.id('name')).sendKeys(name);
-    await element(by.id('email')).sendKeys(email);
-
-    // Click the create button and wait for user to be made
-    const createButton = element(by.cssContainingText('button', 'Create User'));
-    await createButton.click();
-    await this.waitPresence(this.getFirstTableCellWithText(username));
-  }
-
-  async edit(username: string, password: string, name: string, email: string): Promise<void> {
-    await this.navigateTo();
-
-    await this.getFirstTableCellWithText(username).click(); // select user from table
-    await element(by.cssContainingText('button', 'Edit')).click(); // click button to move to edit page
-
-    // fill in fields with new values
-    await element(by.id('password')).clear();
-    await element(by.id('password')).sendKeys(password);
-    await element(by.id('confirmpassword')).clear();
-    await element(by.id('confirmpassword')).sendKeys(password);
-    await element(by.id('name')).clear();
-    await element(by.id('name')).sendKeys(name);
-    await element(by.id('email')).clear();
-    await element(by.id('email')).sendKeys(email);
-
-    // Click the edit button and check new values are present in table
-    const editButton = element(by.cssContainingText('button', 'Edit User'));
-    await editButton.click();
-    await this.waitPresence(this.getFirstTableCellWithText(email));
-    await this.waitPresence(this.getFirstTableCellWithText(name));
-  }
-}
index e8905585a242419e43c093ccba674b9499f9cfbf..0b596a184987f66a8d6b9297f8ff7b6934dfa081 100644 (file)
@@ -5,12 +5,12 @@
   "requires": true,
   "dependencies": {
     "@angular-devkit/architect": {
   "requires": true,
   "dependencies": {
     "@angular-devkit/architect": {
-      "version": "0.803.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.25.tgz",
-      "integrity": "sha512-usV/zEncKCKQuF6AD3pRU6N5i5fbaAux/qZb+nbOz9/2G5jrXwe5sH+y3vxbgqB83e3LqusEQCTu7/tfg6LwZg==",
+      "version": "0.803.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.803.26.tgz",
+      "integrity": "sha512-mCynDvhGLElmuiaK5I6hVleMuZ1Svn7o5NnMW1ItiDlVZu1v49JWOxPS1A7C/ypGmhjl9jMorVtz2IumtLgCXw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "8.3.25",
+        "@angular-devkit/core": "8.3.26",
         "rxjs": "6.4.0"
       },
       "dependencies": {
         "rxjs": "6.4.0"
       },
       "dependencies": {
       }
     },
     "@angular-devkit/build-angular": {
       }
     },
     "@angular-devkit/build-angular": {
-      "version": "0.803.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.25.tgz",
-      "integrity": "sha512-WY0E7NgXuog3phhz5ZdutZPWQ9nbOr+omGN5KI1e8MZs1sJO4xkyaGRT8zOulkogkqJ2NboTBq3j9uSbZkcYeg==",
-      "dev": true,
-      "requires": {
-        "@angular-devkit/architect": "0.803.25",
-        "@angular-devkit/build-optimizer": "0.803.25",
-        "@angular-devkit/build-webpack": "0.803.25",
-        "@angular-devkit/core": "8.3.25",
-        "@babel/core": "7.8.3",
-        "@babel/preset-env": "7.8.3",
-        "@ngtools/webpack": "8.3.25",
+      "version": "0.803.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.803.26.tgz",
+      "integrity": "sha512-SoeUbl928QgYWZjDNSMs9m/9wslKjqkFXeZpOI398i5/ZbrsjXcbxicLphVCPndhfR6qETV7pCqQnVmAf4zYjA==",
+      "dev": true,
+      "requires": {
+        "@angular-devkit/architect": "0.803.26",
+        "@angular-devkit/build-optimizer": "0.803.26",
+        "@angular-devkit/build-webpack": "0.803.26",
+        "@angular-devkit/core": "8.3.26",
+        "@babel/core": "7.8.7",
+        "@babel/preset-env": "7.8.7",
+        "@ngtools/webpack": "8.3.26",
         "ajv": "6.10.2",
         "autoprefixer": "9.6.1",
         "ajv": "6.10.2",
         "autoprefixer": "9.6.1",
-        "browserslist": "4.8.6",
+        "browserslist": "4.10.0",
         "cacache": "12.0.2",
         "cacache": "12.0.2",
-        "caniuse-lite": "1.0.30001024",
+        "caniuse-lite": "1.0.30001035",
         "circular-dependency-plugin": "5.2.0",
         "clean-css": "4.2.1",
         "copy-webpack-plugin": "5.1.1",
         "circular-dependency-plugin": "5.2.0",
         "clean-css": "4.2.1",
         "copy-webpack-plugin": "5.1.1",
         "worker-plugin": "3.2.0"
       },
       "dependencies": {
         "worker-plugin": "3.2.0"
       },
       "dependencies": {
+        "core-js": {
+          "version": "3.6.4",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
+          "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==",
+          "dev": true
+        },
         "glob": {
           "version": "7.1.4",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
         "glob": {
           "version": "7.1.4",
           "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
       }
     },
     "@angular-devkit/build-optimizer": {
       }
     },
     "@angular-devkit/build-optimizer": {
-      "version": "0.803.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.25.tgz",
-      "integrity": "sha512-MiQimuEs8QeM3xo7bR3Yk1OWHHlp2pGCc2GLUMIcWhKqM+QjoRky0HoGoBazbznx292l+xjFjANvPEKbqJ2v7Q==",
+      "version": "0.803.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.803.26.tgz",
+      "integrity": "sha512-rVcMV/HaWK1g1XVbB1Hj0F6icNbguQETxilhbEn2Ut48hT4iywam6a2tz5w33YlH0uspPHwtFrz7EaLbiWUrPw==",
       "dev": true,
       "requires": {
         "loader-utils": "1.2.3",
       "dev": true,
       "requires": {
         "loader-utils": "1.2.3",
         "tslib": "1.10.0",
         "typescript": "3.5.3",
         "webpack-sources": "1.4.3"
         "tslib": "1.10.0",
         "typescript": "3.5.3",
         "webpack-sources": "1.4.3"
+      },
+      "dependencies": {
+        "tslib": {
+          "version": "1.10.0",
+          "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
+          "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+          "dev": true
+        }
       }
     },
     "@angular-devkit/build-webpack": {
       }
     },
     "@angular-devkit/build-webpack": {
-      "version": "0.803.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.25.tgz",
-      "integrity": "sha512-WR7HWJIWL6TB3WHG7ZFn8s0z3WlojeQlod75UIKl5i+f4OU90kp8kxcoH5G6OCXu56x5w40oIi1ve5ljjWSJkw==",
+      "version": "0.803.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.803.26.tgz",
+      "integrity": "sha512-lMmNUza+Qb1/XgVMpj2A2jFr7APvJdX57aLxNPnDg/pM0rWbAMXLUvrphqxZuyqjOwfQcHWmnuVxfLpT0qJSAw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.803.25",
-        "@angular-devkit/core": "8.3.25",
+        "@angular-devkit/architect": "0.803.26",
+        "@angular-devkit/core": "8.3.26",
         "rxjs": "6.4.0"
       },
       "dependencies": {
         "rxjs": "6.4.0"
       },
       "dependencies": {
       }
     },
     "@angular-devkit/core": {
       }
     },
     "@angular-devkit/core": {
-      "version": "8.3.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.25.tgz",
-      "integrity": "sha512-l7Gqy1tMrTpRmPVlovcFX8UA3mtXRlgO8kcSsbJ9MKRKNTCcxlfsWEYY5igyDBUVh6ADkgSIu0nuk31ZGTe0lw==",
+      "version": "8.3.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-8.3.26.tgz",
+      "integrity": "sha512-b1ng9091o33s55/cwQYh1kboiJtj8y8z8xQWATDI9kRmNIQkWYVwVa/MzgPRJ4bzbEGG3zIUHCsp52A6vuGr2A==",
       "dev": true,
       "requires": {
         "ajv": "6.10.2",
       "dev": true,
       "requires": {
         "ajv": "6.10.2",
       }
     },
     "@angular-devkit/schematics": {
       }
     },
     "@angular-devkit/schematics": {
-      "version": "8.3.25",
-      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.25.tgz",
-      "integrity": "sha512-/p1MkfursfLy+JRGXlJGPEmX55lrFCsR/2khWAVXZcMaFR3QlR/b6/zvB8I2pHFfr0/XWnYTT/BsF7rJjO3RmA==",
+      "version": "8.3.26",
+      "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-8.3.26.tgz",
+      "integrity": "sha512-IoZbXVFGLvVi5d0ozfssWDXuzot0/pMSKbQPzWIG8K7nCo7nNMVYpsMHrEVYUikA9EQEL5LqMCGohH36/zVPcA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "8.3.25",
+        "@angular-devkit/core": "8.3.26",
         "rxjs": "6.4.0"
       },
       "dependencies": {
         "rxjs": "6.4.0"
       },
       "dependencies": {
       }
     },
     "@angular/cli": {
       }
     },
     "@angular/cli": {
-      "version": "8.3.25",
-      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.25.tgz",
-      "integrity": "sha512-CPJI5nnbBvvyBUFwOHfRXy/KVwsiYlcbDAeIk1klcjQjbVFYZbnY0iAhNupy9j7rPQhb7jle5oslU3TLfbqOTQ==",
+      "version": "8.3.26",
+      "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-8.3.26.tgz",
+      "integrity": "sha512-/dZik0ALcMSNaZdzqeG5hnFqyezrPQlWv+NXPidp1l0VTIwdEmjWmL26QpSBBvZ9bqXjY5/5SZYb+zZlGu78Kg==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/architect": "0.803.25",
-        "@angular-devkit/core": "8.3.25",
-        "@angular-devkit/schematics": "8.3.25",
-        "@schematics/angular": "8.3.25",
-        "@schematics/update": "0.803.25",
+        "@angular-devkit/architect": "0.803.26",
+        "@angular-devkit/core": "8.3.26",
+        "@angular-devkit/schematics": "8.3.26",
+        "@schematics/angular": "8.3.26",
+        "@schematics/update": "0.803.26",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "^4.1.1",
         "@yarnpkg/lockfile": "1.1.0",
         "ansi-colors": "4.1.1",
         "debug": "^4.1.1",
         "convert-source-map": "^1.5.1",
         "dependency-graph": "^0.7.2",
         "magic-string": "^0.25.0",
         "convert-source-map": "^1.5.1",
         "dependency-graph": "^0.7.2",
         "magic-string": "^0.25.0",
-        "minimist": "1.2.5",
+        "minimist": "^1.2.0",
         "reflect-metadata": "^0.1.2",
         "source-map": "^0.6.1",
         "tslib": "^1.9.0",
         "reflect-metadata": "^0.1.2",
         "source-map": "^0.6.1",
         "tslib": "^1.9.0",
         "fsevents": {
           "dev": true,
           "optional": true,
         "fsevents": {
           "dev": true,
           "optional": true,
-          "requires": {
-            "node-pre-gyp": "*"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "3.2.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "^2.1.1"
-              }
-            },
-            "deep-extend": {
-              "version": "0.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.6.0"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.24",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": ">= 2.1.2 < 3"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "dev": true,
-              "optional": true,
-              "version": "1.2.5"
-            },
-            "minipass": {
-              "version": "2.9.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.3.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.9.0"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "1.2.5"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "ms": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.14.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.1",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.2.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4.4.2"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "npm-normalize-package-bin": "^1.0.1"
-              }
-            },
-            "npm-normalize-package-bin": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.4.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "1.2.5",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.1.3"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.13",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.1.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.8.6",
-                "minizlib": "^1.2.1",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.3"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2 || 2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "yallist": {
-              "version": "3.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          },
           "version": "2.1.2"
         },
         "get-caller-file": {
           "version": "2.1.2"
         },
         "get-caller-file": {
           "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
           "dev": true
         },
           "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
           "dev": true
         },
-        "minimist": {
-          "version": "1.2.5"
-        },
         "os-locale": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
         "os-locale": {
           "version": "3.1.0",
           "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
       }
     },
     "@babel/compat-data": {
       }
     },
     "@babel/compat-data": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.8.6.tgz",
-      "integrity": "sha512-CurCIKPTkS25Mb8mz267vU95vy+TyUpnctEX2lV33xWNmHAfjruztgiPBbXZRh3xZZy1CYvGx6XfxyTVS+sk7Q==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.6.tgz",
+      "integrity": "sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "browserslist": "^4.8.5",
+        "browserslist": "^4.11.1",
         "invariant": "^2.2.4",
         "semver": "^5.5.0"
       },
       "dependencies": {
         "invariant": "^2.2.4",
         "semver": "^5.5.0"
       },
       "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-          "dev": true
-        }
+        "browserslist": {
+          "version": "4.12.0",
+          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
+          "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
+          "dev": true,
+          "requires": {
+            "caniuse-lite": "^1.0.30001043",
+            "electron-to-chromium": "^1.3.413",
+            "node-releases": "^1.1.53",
+            "pkg-up": "^2.0.0"
+          }
+        },
+        "caniuse-lite": {
+          "version": "1.0.30001062",
+          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz",
+          "integrity": "sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        }
       }
     },
     "@babel/core": {
       }
     },
     "@babel/core": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz",
-      "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==",
+      "version": "7.8.7",
+      "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.7.tgz",
+      "integrity": "sha512-rBlqF3Yko9cynC5CCFy6+K/w2N+Sq/ff2BPy+Krp7rHlABIr5epbA7OxVeKoMHB39LZOp1UY5SuLjy6uWi35yA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.8.3",
-        "@babel/generator": "^7.8.3",
-        "@babel/helpers": "^7.8.3",
-        "@babel/parser": "^7.8.3",
-        "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.3",
+        "@babel/generator": "^7.8.7",
+        "@babel/helpers": "^7.8.4",
+        "@babel/parser": "^7.8.7",
+        "@babel/template": "^7.8.6",
+        "@babel/traverse": "^7.8.6",
+        "@babel/types": "^7.8.7",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.1",
         "convert-source-map": "^1.7.0",
         "debug": "^4.1.0",
         "gensync": "^1.0.0-beta.1",
       },
       "dependencies": {
         "json5": {
       },
       "dependencies": {
         "json5": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
-          "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+          "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "minimist": "1.2.5"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.5"
-            }
+            "minimist": "^1.2.5"
           }
         },
         "semver": {
           }
         },
         "semver": {
       }
     },
     "@babel/generator": {
       }
     },
     "@babel/generator": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.8.tgz",
-      "integrity": "sha512-HKyUVu69cZoclptr8t8U5b6sx6zoWjh8jiUhnuj3MpZuKT2dJ8zPTuiy31luq32swhI0SpwItCIlU8XW7BZeJg==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz",
+      "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/types": "^7.8.7",
+        "@babel/types": "^7.9.6",
         "jsesc": "^2.5.1",
         "lodash": "^4.17.13",
         "source-map": "^0.5.0"
         "jsesc": "^2.5.1",
         "lodash": "^4.17.13",
         "source-map": "^0.5.0"
         "@babel/types": "^7.8.3"
       }
     },
         "@babel/types": "^7.8.3"
       }
     },
-    "@babel/helper-call-delegate": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.8.7.tgz",
-      "integrity": "sha512-doAA5LAKhsFCR0LAFIf+r2RSMmC+m8f/oQ+URnUET/rWeEzC0yTRmAGyWkD4sSu3xwbS7MYQ2u+xlt1V5R56KQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-hoist-variables": "^7.8.3",
-        "@babel/traverse": "^7.8.3",
-        "@babel/types": "^7.8.7"
-      }
-    },
     "@babel/helper-compilation-targets": {
     "@babel/helper-compilation-targets": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz",
-      "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz",
+      "integrity": "sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.8.6",
-        "browserslist": "^4.9.1",
+        "@babel/compat-data": "^7.9.6",
+        "browserslist": "^4.11.1",
         "invariant": "^2.2.4",
         "levenary": "^1.1.1",
         "semver": "^5.5.0"
       },
       "dependencies": {
         "browserslist": {
         "invariant": "^2.2.4",
         "levenary": "^1.1.1",
         "semver": "^5.5.0"
       },
       "dependencies": {
         "browserslist": {
-          "version": "4.9.1",
-          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.9.1.tgz",
-          "integrity": "sha512-Q0DnKq20End3raFulq6Vfp1ecB9fh8yUNV55s8sekaDDeqBaCtWlRHCUdaWyUeSSBJM7IbM6HcsyaeYqgeDhnw==",
+          "version": "4.12.0",
+          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
+          "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "caniuse-lite": "^1.0.30001030",
-            "electron-to-chromium": "^1.3.363",
-            "node-releases": "^1.1.50"
+            "caniuse-lite": "^1.0.30001043",
+            "electron-to-chromium": "^1.3.413",
+            "node-releases": "^1.1.53",
+            "pkg-up": "^2.0.0"
           }
         },
         "caniuse-lite": {
           }
         },
         "caniuse-lite": {
-          "version": "1.0.30001035",
-          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz",
-          "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==",
+          "version": "1.0.30001062",
+          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001062.tgz",
+          "integrity": "sha512-ei9ZqeOnN7edDrb24QfJ0OZicpEbsWxv7WusOiQGz/f2SfvBgHHbOEwBJ8HKGVSyx8Z6ndPjxzR6m0NQq+0bfw==",
           "dev": true
         },
         "semver": {
           "dev": true
         },
         "semver": {
       }
     },
     "@babel/helper-function-name": {
       }
     },
     "@babel/helper-function-name": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
-      "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz",
+      "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==",
       "dev": true,
       "requires": {
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/template": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/template": "^7.8.3",
-        "@babel/types": "^7.8.3"
+        "@babel/types": "^7.9.5"
       }
     },
     "@babel/helper-get-function-arity": {
       }
     },
     "@babel/helper-get-function-arity": {
       }
     },
     "@babel/helper-module-transforms": {
       }
     },
     "@babel/helper-module-transforms": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.8.6.tgz",
-      "integrity": "sha512-RDnGJSR5EFBJjG3deY0NiL0K9TO8SXxS9n/MPsbPK/s9LbQymuLNtlzvDiNS7IpecuL45cMeLVkA+HfmlrnkRg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
+      "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
       "dev": true,
       "requires": {
         "@babel/helper-module-imports": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-module-imports": "^7.8.3",
         "@babel/helper-simple-access": "^7.8.3",
         "@babel/helper-split-export-declaration": "^7.8.3",
         "@babel/template": "^7.8.6",
         "@babel/helper-simple-access": "^7.8.3",
         "@babel/helper-split-export-declaration": "^7.8.3",
         "@babel/template": "^7.8.6",
-        "@babel/types": "^7.8.6",
+        "@babel/types": "^7.9.0",
         "lodash": "^4.17.13"
       }
     },
         "lodash": "^4.17.13"
       }
     },
       }
     },
     "@babel/helper-replace-supers": {
       }
     },
     "@babel/helper-replace-supers": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
-      "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz",
+      "integrity": "sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==",
       "dev": true,
       "requires": {
         "@babel/helper-member-expression-to-functions": "^7.8.3",
         "@babel/helper-optimise-call-expression": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-member-expression-to-functions": "^7.8.3",
         "@babel/helper-optimise-call-expression": "^7.8.3",
-        "@babel/traverse": "^7.8.6",
-        "@babel/types": "^7.8.6"
+        "@babel/traverse": "^7.9.6",
+        "@babel/types": "^7.9.6"
       }
     },
     "@babel/helper-simple-access": {
       }
     },
     "@babel/helper-simple-access": {
         "@babel/types": "^7.8.3"
       }
     },
         "@babel/types": "^7.8.3"
       }
     },
+    "@babel/helper-validator-identifier": {
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
+      "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
+      "dev": true
+    },
     "@babel/helper-wrap-function": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
     "@babel/helper-wrap-function": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz",
       }
     },
     "@babel/helpers": {
       }
     },
     "@babel/helpers": {
-      "version": "7.8.4",
-      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.4.tgz",
-      "integrity": "sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.6.tgz",
+      "integrity": "sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==",
       "dev": true,
       "requires": {
         "@babel/template": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/template": "^7.8.3",
-        "@babel/traverse": "^7.8.4",
-        "@babel/types": "^7.8.3"
+        "@babel/traverse": "^7.9.6",
+        "@babel/types": "^7.9.6"
       }
     },
     "@babel/highlight": {
       }
     },
     "@babel/highlight": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
-      "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+      "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
+        "@babel/helper-validator-identifier": "^7.9.0",
         "chalk": "^2.0.0",
         "chalk": "^2.0.0",
-        "esutils": "^2.0.2",
         "js-tokens": "^4.0.0"
       }
     },
     "@babel/parser": {
         "js-tokens": "^4.0.0"
       }
     },
     "@babel/parser": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.8.tgz",
-      "integrity": "sha512-mO5GWzBPsPf6865iIbzNE0AvkKF3NE+2S3eRUpE+FE07BOAkXh6G+GW/Pj01hhXjve1WScbaIO4UlY1JKeqCcA==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.6.tgz",
+      "integrity": "sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==",
       "dev": true
     },
     "@babel/plugin-proposal-async-generator-functions": {
       "dev": true
     },
     "@babel/plugin-proposal-async-generator-functions": {
       }
     },
     "@babel/plugin-proposal-object-rest-spread": {
       }
     },
     "@babel/plugin-proposal-object-rest-spread": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz",
-      "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz",
+      "integrity": "sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
-        "@babel/plugin-syntax-object-rest-spread": "^7.8.0"
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+        "@babel/plugin-transform-parameters": "^7.9.5"
       }
     },
     "@babel/plugin-proposal-optional-catch-binding": {
       }
     },
     "@babel/plugin-proposal-optional-catch-binding": {
       }
     },
     "@babel/plugin-proposal-optional-chaining": {
       }
     },
     "@babel/plugin-proposal-optional-chaining": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz",
-      "integrity": "sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz",
+      "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
+    "@babel/plugin-syntax-class-properties": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz",
+      "integrity": "sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3"
+      }
+    },
     "@babel/plugin-syntax-dynamic-import": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
     "@babel/plugin-syntax-dynamic-import": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
+    "@babel/plugin-syntax-logical-assignment-operators": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz",
+      "integrity": "sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3"
+      }
+    },
     "@babel/plugin-syntax-nullish-coalescing-operator": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
     "@babel/plugin-syntax-nullish-coalescing-operator": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
         "@babel/helper-plugin-utils": "^7.8.0"
       }
     },
+    "@babel/plugin-syntax-numeric-separator": {
+      "version": "7.8.3",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz",
+      "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==",
+      "dev": true,
+      "requires": {
+        "@babel/helper-plugin-utils": "^7.8.3"
+      }
+    },
     "@babel/plugin-syntax-object-rest-spread": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
     "@babel/plugin-syntax-object-rest-spread": {
       "version": "7.8.3",
       "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
       }
     },
     "@babel/plugin-transform-classes": {
       }
     },
     "@babel/plugin-transform-classes": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.6.tgz",
-      "integrity": "sha512-k9r8qRay/R6v5aWZkrEclEhKO6mc1CCQr2dLsVHBmOQiMpN6I2bpjX3vgnldUWeEI1GHVNByULVxZ4BdP4Hmdg==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz",
+      "integrity": "sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==",
       "dev": true,
       "requires": {
         "@babel/helper-annotate-as-pure": "^7.8.3",
         "@babel/helper-define-map": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-annotate-as-pure": "^7.8.3",
         "@babel/helper-define-map": "^7.8.3",
-        "@babel/helper-function-name": "^7.8.3",
+        "@babel/helper-function-name": "^7.9.5",
         "@babel/helper-optimise-call-expression": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-replace-supers": "^7.8.6",
         "@babel/helper-optimise-call-expression": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-replace-supers": "^7.8.6",
       }
     },
     "@babel/plugin-transform-destructuring": {
       }
     },
     "@babel/plugin-transform-destructuring": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz",
-      "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz",
+      "integrity": "sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
       }
     },
     "@babel/plugin-transform-for-of": {
       }
     },
     "@babel/plugin-transform-for-of": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.6.tgz",
-      "integrity": "sha512-M0pw4/1/KI5WAxPsdcUL/w2LJ7o89YHN3yLkzNjg7Yl15GlVGgzHyCU+FMeAxevHGsLVmUqbirlUIKTafPmzdw==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz",
+      "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==",
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
       "dev": true,
       "requires": {
         "@babel/helper-plugin-utils": "^7.8.3"
       }
     },
     "@babel/plugin-transform-modules-amd": {
       }
     },
     "@babel/plugin-transform-modules-amd": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz",
-      "integrity": "sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz",
+      "integrity": "sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-commonjs": {
       }
     },
     "@babel/plugin-transform-modules-commonjs": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz",
-      "integrity": "sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz",
+      "integrity": "sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-simple-access": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-simple-access": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-systemjs": {
       }
     },
     "@babel/plugin-transform-modules-systemjs": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz",
-      "integrity": "sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz",
+      "integrity": "sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==",
       "dev": true,
       "requires": {
         "@babel/helper-hoist-variables": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/helper-hoist-variables": "^7.8.3",
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
-        "babel-plugin-dynamic-import-node": "^2.3.0"
+        "babel-plugin-dynamic-import-node": "^2.3.3"
       }
     },
     "@babel/plugin-transform-modules-umd": {
       }
     },
     "@babel/plugin-transform-modules-umd": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz",
-      "integrity": "sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==",
+      "version": "7.9.0",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz",
+      "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/helper-module-transforms": "^7.8.3",
+        "@babel/helper-module-transforms": "^7.9.0",
         "@babel/helper-plugin-utils": "^7.8.3"
       }
     },
         "@babel/helper-plugin-utils": "^7.8.3"
       }
     },
       }
     },
     "@babel/plugin-transform-parameters": {
       }
     },
     "@babel/plugin-transform-parameters": {
-      "version": "7.8.8",
-      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.8.tgz",
-      "integrity": "sha512-hC4Ld/Ulpf1psQciWWwdnUspQoQco2bMzSrwU6TmzRlvoYQe4rQFy9vnCZDTlVeCQj0JPfL+1RX0V8hCJvkgBA==",
+      "version": "7.9.5",
+      "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz",
+      "integrity": "sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/helper-call-delegate": "^7.8.7",
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3"
       }
         "@babel/helper-get-function-arity": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3"
       }
       }
     },
     "@babel/preset-env": {
       }
     },
     "@babel/preset-env": {
-      "version": "7.8.3",
-      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.3.tgz",
-      "integrity": "sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==",
+      "version": "7.8.7",
+      "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.8.7.tgz",
+      "integrity": "sha512-BYftCVOdAYJk5ASsznKAUl53EMhfBbr8CJ1X+AJLfGPscQkwJFiaV/Wn9DPH/7fzm2v6iRYJKYHSqyynTGw0nw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/compat-data": "^7.8.0",
-        "@babel/helper-compilation-targets": "^7.8.3",
+        "@babel/compat-data": "^7.8.6",
+        "@babel/helper-compilation-targets": "^7.8.7",
         "@babel/helper-module-imports": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
         "@babel/helper-module-imports": "^7.8.3",
         "@babel/helper-plugin-utils": "^7.8.3",
         "@babel/plugin-proposal-async-generator-functions": "^7.8.3",
         "@babel/plugin-transform-async-to-generator": "^7.8.3",
         "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
         "@babel/plugin-transform-block-scoping": "^7.8.3",
         "@babel/plugin-transform-async-to-generator": "^7.8.3",
         "@babel/plugin-transform-block-scoped-functions": "^7.8.3",
         "@babel/plugin-transform-block-scoping": "^7.8.3",
-        "@babel/plugin-transform-classes": "^7.8.3",
+        "@babel/plugin-transform-classes": "^7.8.6",
         "@babel/plugin-transform-computed-properties": "^7.8.3",
         "@babel/plugin-transform-destructuring": "^7.8.3",
         "@babel/plugin-transform-dotall-regex": "^7.8.3",
         "@babel/plugin-transform-duplicate-keys": "^7.8.3",
         "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
         "@babel/plugin-transform-computed-properties": "^7.8.3",
         "@babel/plugin-transform-destructuring": "^7.8.3",
         "@babel/plugin-transform-dotall-regex": "^7.8.3",
         "@babel/plugin-transform-duplicate-keys": "^7.8.3",
         "@babel/plugin-transform-exponentiation-operator": "^7.8.3",
-        "@babel/plugin-transform-for-of": "^7.8.3",
+        "@babel/plugin-transform-for-of": "^7.8.6",
         "@babel/plugin-transform-function-name": "^7.8.3",
         "@babel/plugin-transform-literals": "^7.8.3",
         "@babel/plugin-transform-member-expression-literals": "^7.8.3",
         "@babel/plugin-transform-function-name": "^7.8.3",
         "@babel/plugin-transform-literals": "^7.8.3",
         "@babel/plugin-transform-member-expression-literals": "^7.8.3",
         "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
         "@babel/plugin-transform-new-target": "^7.8.3",
         "@babel/plugin-transform-object-super": "^7.8.3",
         "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
         "@babel/plugin-transform-new-target": "^7.8.3",
         "@babel/plugin-transform-object-super": "^7.8.3",
-        "@babel/plugin-transform-parameters": "^7.8.3",
+        "@babel/plugin-transform-parameters": "^7.8.7",
         "@babel/plugin-transform-property-literals": "^7.8.3",
         "@babel/plugin-transform-property-literals": "^7.8.3",
-        "@babel/plugin-transform-regenerator": "^7.8.3",
+        "@babel/plugin-transform-regenerator": "^7.8.7",
         "@babel/plugin-transform-reserved-words": "^7.8.3",
         "@babel/plugin-transform-shorthand-properties": "^7.8.3",
         "@babel/plugin-transform-spread": "^7.8.3",
         "@babel/plugin-transform-sticky-regex": "^7.8.3",
         "@babel/plugin-transform-template-literals": "^7.8.3",
         "@babel/plugin-transform-reserved-words": "^7.8.3",
         "@babel/plugin-transform-shorthand-properties": "^7.8.3",
         "@babel/plugin-transform-spread": "^7.8.3",
         "@babel/plugin-transform-sticky-regex": "^7.8.3",
         "@babel/plugin-transform-template-literals": "^7.8.3",
-        "@babel/plugin-transform-typeof-symbol": "^7.8.3",
+        "@babel/plugin-transform-typeof-symbol": "^7.8.4",
         "@babel/plugin-transform-unicode-regex": "^7.8.3",
         "@babel/plugin-transform-unicode-regex": "^7.8.3",
-        "@babel/types": "^7.8.3",
-        "browserslist": "^4.8.2",
+        "@babel/types": "^7.8.7",
+        "browserslist": "^4.8.5",
         "core-js-compat": "^3.6.2",
         "invariant": "^2.2.2",
         "core-js-compat": "^3.6.2",
         "invariant": "^2.2.2",
-        "levenary": "^1.1.0",
+        "levenary": "^1.1.1",
         "semver": "^5.5.0"
       },
       "dependencies": {
         "semver": "^5.5.0"
       },
       "dependencies": {
       }
     },
     "@babel/runtime": {
       }
     },
     "@babel/runtime": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.7.tgz",
-      "integrity": "sha512-+AATMUFppJDw6aiR5NVPHqIQBlV/Pj8wY/EZH+lmvRdUo9xBaz/rF3alAwFJQavvKfeOlPE7oaaDHVbcySbCsg==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz",
+      "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==",
       "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.4"
       "dev": true,
       "requires": {
         "regenerator-runtime": "^0.13.4"
       }
     },
     "@babel/traverse": {
       }
     },
     "@babel/traverse": {
-      "version": "7.8.6",
-      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.6.tgz",
-      "integrity": "sha512-2B8l0db/DPi8iinITKuo7cbPznLCEk0kCxDoB9/N6gGNg/gxOXiR/IcymAFPiBwk5w6TtQ27w4wpElgp9btR9A==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.6.tgz",
+      "integrity": "sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.8.3",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.8.3",
-        "@babel/generator": "^7.8.6",
-        "@babel/helper-function-name": "^7.8.3",
+        "@babel/generator": "^7.9.6",
+        "@babel/helper-function-name": "^7.9.5",
         "@babel/helper-split-export-declaration": "^7.8.3",
         "@babel/helper-split-export-declaration": "^7.8.3",
-        "@babel/parser": "^7.8.6",
-        "@babel/types": "^7.8.6",
+        "@babel/parser": "^7.9.6",
+        "@babel/types": "^7.9.6",
         "debug": "^4.1.0",
         "globals": "^11.1.0",
         "lodash": "^4.17.13"
       }
     },
     "@babel/types": {
         "debug": "^4.1.0",
         "globals": "^11.1.0",
         "lodash": "^4.17.13"
       }
     },
     "@babel/types": {
-      "version": "7.8.7",
-      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.7.tgz",
-      "integrity": "sha512-k2TreEHxFA4CjGkL+GYjRyx35W0Mr7DP5+9q6WMkyKXB+904bYmG40syjMFV0oLlhhFCwWl0vA0DyzTDkwAiJw==",
+      "version": "7.9.6",
+      "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.6.tgz",
+      "integrity": "sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "esutils": "^2.0.2",
+        "@babel/helper-validator-identifier": "^7.9.5",
         "lodash": "^4.17.13",
         "to-fast-properties": "^2.0.0"
       }
         "lodash": "^4.17.13",
         "to-fast-properties": "^2.0.0"
       }
       "dev": true,
       "requires": {
         "exec-sh": "^0.3.2",
       "dev": true,
       "requires": {
         "exec-sh": "^0.3.2",
-        "minimist": "1.2.5"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
+        "minimist": "^1.2.0"
       }
     },
     "@compodoc/compodoc": {
       }
     },
     "@compodoc/compodoc": {
         "loglevel-plugin-prefix": "^0.8.4",
         "lunr": "^2.3.6",
         "marked": "^0.7.0",
         "loglevel-plugin-prefix": "^0.8.4",
         "lunr": "^2.3.6",
         "marked": "^0.7.0",
-        "minimist": "1.2.5",
+        "minimist": "^1.2.0",
         "opencollective-postinstall": "^2.0.2",
         "os-name": "^3.1.0",
         "pdfmake": "^0.1.60",
         "opencollective-postinstall": "^2.0.2",
         "os-name": "^3.1.0",
         "pdfmake": "^0.1.60",
           }
         },
         "json5": {
           }
         },
         "json5": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
-          "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+          "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "minimist": "1.2.5"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.5"
-            }
+            "minimist": "^1.2.5"
           }
           }
-        },
-        "minimist": {
-          "version": "1.2.5"
         }
       }
     },
         }
       }
     },
         }
       }
     },
         }
       }
     },
+    "@cypress/listr-verbose-renderer": {
+      "version": "0.4.1",
+      "resolved": "https://registry.npmjs.org/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz",
+      "integrity": "sha1-p3SS9LEdzHxEajSz4ochr9M8ZCo=",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-cursor": "^1.0.2",
+        "date-fns": "^1.27.2",
+        "figures": "^1.7.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "cli-cursor": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+          "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^1.0.1"
+          }
+        },
+        "figures": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+          "dev": true,
+          "requires": {
+            "escape-string-regexp": "^1.0.5",
+            "object-assign": "^4.1.0"
+          }
+        },
+        "onetime": {
+          "version": "1.1.0",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+          "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+          "dev": true
+        },
+        "restore-cursor": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+          "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+          "dev": true,
+          "requires": {
+            "exit-hook": "^1.0.0",
+            "onetime": "^1.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "@cypress/request": {
+      "version": "2.88.5",
+      "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.5.tgz",
+      "integrity": "sha512-TzEC1XMi1hJkywWpRfD2clreTa/Z+lOrXDCxxBTBPEcY5azdPi56A6Xw+O4tWJnaJH3iIE7G5aDXZC6JgRZLcA==",
+      "dev": true,
+      "requires": {
+        "aws-sign2": "~0.7.0",
+        "aws4": "^1.8.0",
+        "caseless": "~0.12.0",
+        "combined-stream": "~1.0.6",
+        "extend": "~3.0.2",
+        "forever-agent": "~0.6.1",
+        "form-data": "~2.3.2",
+        "har-validator": "~5.1.3",
+        "http-signature": "~1.2.0",
+        "is-typedarray": "~1.0.0",
+        "isstream": "~0.1.2",
+        "json-stringify-safe": "~5.0.1",
+        "mime-types": "~2.1.19",
+        "oauth-sign": "~0.9.0",
+        "performance-now": "^2.1.0",
+        "qs": "~6.5.2",
+        "safe-buffer": "^5.1.2",
+        "tough-cookie": "~2.5.0",
+        "tunnel-agent": "^0.6.0",
+        "uuid": "^3.3.2"
+      }
+    },
+    "@cypress/xvfb": {
+      "version": "1.2.4",
+      "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+      "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+      "dev": true,
+      "requires": {
+        "debug": "^3.1.0",
+        "lodash.once": "^4.1.1"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.2.6",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+          "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+          "dev": true,
+          "requires": {
+            "ms": "^2.1.1"
+          }
+        }
+      }
+    },
     "@dsherret/to-absolute-glob": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
     "@dsherret/to-absolute-glob": {
       "version": "2.0.2",
       "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz",
         "is-negated-glob": "^1.0.0"
       }
     },
         "is-negated-glob": "^1.0.0"
       }
     },
+    "@hapi/address": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+      "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+      "dev": true
+    },
+    "@hapi/formula": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@hapi/formula/-/formula-1.2.0.tgz",
+      "integrity": "sha512-UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewGA==",
+      "dev": true
+    },
+    "@hapi/hoek": {
+      "version": "8.5.1",
+      "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+      "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+      "dev": true
+    },
+    "@hapi/joi": {
+      "version": "16.1.8",
+      "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-16.1.8.tgz",
+      "integrity": "sha512-wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg==",
+      "dev": true,
+      "requires": {
+        "@hapi/address": "^2.1.2",
+        "@hapi/formula": "^1.2.0",
+        "@hapi/hoek": "^8.2.4",
+        "@hapi/pinpoint": "^1.0.2",
+        "@hapi/topo": "^3.1.3"
+      }
+    },
+    "@hapi/pinpoint": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz",
+      "integrity": "sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==",
+      "dev": true
+    },
+    "@hapi/topo": {
+      "version": "3.1.6",
+      "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+      "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+      "dev": true,
+      "requires": {
+        "@hapi/hoek": "^8.3.0"
+      }
+    },
     "@istanbuljs/load-nyc-config": {
     "@istanbuljs/load-nyc-config": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz",
-      "integrity": "sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+      "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
       "dev": true,
       "requires": {
         "camelcase": "^5.3.1",
         "find-up": "^4.1.0",
       "dev": true,
       "requires": {
         "camelcase": "^5.3.1",
         "find-up": "^4.1.0",
+        "get-package-type": "^0.1.0",
         "js-yaml": "^3.13.1",
         "resolve-from": "^5.0.0"
       },
         "js-yaml": "^3.13.1",
         "resolve-from": "^5.0.0"
       },
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
       "dev": true
     },
     "@jest/console": {
       "dev": true
     },
     "@jest/console": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.1.0.tgz",
-      "integrity": "sha512-3P1DpqAMK/L07ag/Y9/Jup5iDEG9P4pRAuZiMQnU0JB3UOvCyYCjCoxr7sIA80SeyUCUKrr24fKAxVpmBgQonA==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/console/-/console-25.5.0.tgz",
+      "integrity": "sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/source-map": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
-        "jest-util": "^25.1.0",
+        "jest-message-util": "^25.5.0",
+        "jest-util": "^25.5.0",
         "slash": "^3.0.0"
       },
       "dependencies": {
         "slash": "^3.0.0"
       },
       "dependencies": {
       }
     },
     "@jest/core": {
       }
     },
     "@jest/core": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.1.0.tgz",
-      "integrity": "sha512-iz05+NmwCmZRzMXvMo6KFipW7nzhbpEawrKrkkdJzgytavPse0biEnCNr2wRlyCsp3SmKaEY+SGv7YWYQnIdig==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/@jest/core/-/core-25.5.4.tgz",
+      "integrity": "sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/console": "^25.1.0",
-        "@jest/reporters": "^25.1.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/transform": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/console": "^25.5.0",
+        "@jest/reporters": "^25.5.1",
+        "@jest/test-result": "^25.5.0",
+        "@jest/transform": "^25.5.1",
+        "@jest/types": "^25.5.0",
         "ansi-escapes": "^4.2.1",
         "chalk": "^3.0.0",
         "exit": "^0.1.2",
         "ansi-escapes": "^4.2.1",
         "chalk": "^3.0.0",
         "exit": "^0.1.2",
-        "graceful-fs": "^4.2.3",
-        "jest-changed-files": "^25.1.0",
-        "jest-config": "^25.1.0",
-        "jest-haste-map": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-regex-util": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "jest-resolve-dependencies": "^25.1.0",
-        "jest-runner": "^25.1.0",
-        "jest-runtime": "^25.1.0",
-        "jest-snapshot": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-validate": "^25.1.0",
-        "jest-watcher": "^25.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-changed-files": "^25.5.0",
+        "jest-config": "^25.5.4",
+        "jest-haste-map": "^25.5.1",
+        "jest-message-util": "^25.5.0",
+        "jest-regex-util": "^25.2.6",
+        "jest-resolve": "^25.5.1",
+        "jest-resolve-dependencies": "^25.5.4",
+        "jest-runner": "^25.5.4",
+        "jest-runtime": "^25.5.4",
+        "jest-snapshot": "^25.5.1",
+        "jest-util": "^25.5.0",
+        "jest-validate": "^25.5.0",
+        "jest-watcher": "^25.5.0",
         "micromatch": "^4.0.2",
         "p-each-series": "^2.1.0",
         "micromatch": "^4.0.2",
         "p-each-series": "^2.1.0",
-        "realpath-native": "^1.1.0",
+        "realpath-native": "^2.0.0",
         "rimraf": "^3.0.0",
         "slash": "^3.0.0",
         "strip-ansi": "^6.0.0"
         "rimraf": "^3.0.0",
         "slash": "^3.0.0",
         "strip-ansi": "^6.0.0"
       }
     },
     "@jest/environment": {
       }
     },
     "@jest/environment": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.1.0.tgz",
-      "integrity": "sha512-cTpUtsjU4cum53VqBDlcW0E4KbQF03Cn0jckGPW/5rrE9tb+porD3+hhLtHAwhthsqfyF+bizyodTlsRA++sHg==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-25.5.0.tgz",
+      "integrity": "sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/fake-timers": "^25.1.0",
-        "@jest/types": "^25.1.0",
-        "jest-mock": "^25.1.0"
+        "@jest/fake-timers": "^25.5.0",
+        "@jest/types": "^25.5.0",
+        "jest-mock": "^25.5.0"
       }
     },
     "@jest/fake-timers": {
       }
     },
     "@jest/fake-timers": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.1.0.tgz",
-      "integrity": "sha512-Eu3dysBzSAO1lD7cylZd/CVKdZZ1/43SF35iYBNV1Lvvn2Undp3Grwsv8PrzvbLhqwRzDd4zxrY4gsiHc+wygQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.5.0.tgz",
+      "integrity": "sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-mock": "^25.1.0",
-        "jest-util": "^25.1.0",
+        "@jest/types": "^25.5.0",
+        "jest-message-util": "^25.5.0",
+        "jest-mock": "^25.5.0",
+        "jest-util": "^25.5.0",
         "lolex": "^5.0.0"
       }
     },
         "lolex": "^5.0.0"
       }
     },
+    "@jest/globals": {
+      "version": "25.5.2",
+      "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-25.5.2.tgz",
+      "integrity": "sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==",
+      "dev": true,
+      "requires": {
+        "@jest/environment": "^25.5.0",
+        "@jest/types": "^25.5.0",
+        "expect": "^25.5.0"
+      }
+    },
     "@jest/reporters": {
     "@jest/reporters": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.1.0.tgz",
-      "integrity": "sha512-ORLT7hq2acJQa8N+NKfs68ZtHFnJPxsGqmofxW7v7urVhzJvpKZG9M7FAcgh9Ee1ZbCteMrirHA3m5JfBtAaDg==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-25.5.1.tgz",
+      "integrity": "sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==",
       "dev": true,
       "requires": {
         "@bcoe/v8-coverage": "^0.2.3",
       "dev": true,
       "requires": {
         "@bcoe/v8-coverage": "^0.2.3",
-        "@jest/console": "^25.1.0",
-        "@jest/environment": "^25.1.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/transform": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/console": "^25.5.0",
+        "@jest/test-result": "^25.5.0",
+        "@jest/transform": "^25.5.1",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "collect-v8-coverage": "^1.0.0",
         "exit": "^0.1.2",
         "glob": "^7.1.2",
         "chalk": "^3.0.0",
         "collect-v8-coverage": "^1.0.0",
         "exit": "^0.1.2",
         "glob": "^7.1.2",
+        "graceful-fs": "^4.2.4",
         "istanbul-lib-coverage": "^3.0.0",
         "istanbul-lib-instrument": "^4.0.0",
         "istanbul-lib-report": "^3.0.0",
         "istanbul-lib-source-maps": "^4.0.0",
         "istanbul-lib-coverage": "^3.0.0",
         "istanbul-lib-instrument": "^4.0.0",
         "istanbul-lib-report": "^3.0.0",
         "istanbul-lib-source-maps": "^4.0.0",
-        "istanbul-reports": "^3.0.0",
-        "jest-haste-map": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "jest-runtime": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-worker": "^25.1.0",
+        "istanbul-reports": "^3.0.2",
+        "jest-haste-map": "^25.5.1",
+        "jest-resolve": "^25.5.1",
+        "jest-util": "^25.5.0",
+        "jest-worker": "^25.5.0",
         "node-notifier": "^6.0.0",
         "slash": "^3.0.0",
         "source-map": "^0.6.0",
         "string-length": "^3.1.0",
         "terminal-link": "^2.0.0",
         "node-notifier": "^6.0.0",
         "slash": "^3.0.0",
         "source-map": "^0.6.0",
         "string-length": "^3.1.0",
         "terminal-link": "^2.0.0",
-        "v8-to-istanbul": "^4.0.1"
+        "v8-to-istanbul": "^4.1.3"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
           "dev": true
         },
         "jest-worker": {
           "dev": true
         },
         "jest-worker": {
-          "version": "25.1.0",
-          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
-          "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
+          "version": "25.5.0",
+          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+          "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
       }
     },
     "@jest/source-map": {
       }
     },
     "@jest/source-map": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.1.0.tgz",
-      "integrity": "sha512-ohf2iKT0xnLWcIUhL6U6QN+CwFWf9XnrM2a6ybL9NXxJjgYijjLSitkYHIdzkd8wFliH73qj/+epIpTiWjRtAA==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-25.5.0.tgz",
+      "integrity": "sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==",
       "dev": true,
       "requires": {
         "callsites": "^3.0.0",
       "dev": true,
       "requires": {
         "callsites": "^3.0.0",
-        "graceful-fs": "^4.2.3",
+        "graceful-fs": "^4.2.4",
         "source-map": "^0.6.0"
       },
       "dependencies": {
         "source-map": "^0.6.0"
       },
       "dependencies": {
       }
     },
     "@jest/test-result": {
       }
     },
     "@jest/test-result": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.1.0.tgz",
-      "integrity": "sha512-FZzSo36h++U93vNWZ0KgvlNuZ9pnDnztvaM7P/UcTx87aPDotG18bXifkf1Ji44B7k/eIatmMzkBapnAzjkJkg==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-25.5.0.tgz",
+      "integrity": "sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/console": "^25.1.0",
-        "@jest/transform": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/console": "^25.5.0",
+        "@jest/types": "^25.5.0",
         "@types/istanbul-lib-coverage": "^2.0.0",
         "collect-v8-coverage": "^1.0.0"
       }
     },
     "@jest/test-sequencer": {
         "@types/istanbul-lib-coverage": "^2.0.0",
         "collect-v8-coverage": "^1.0.0"
       }
     },
     "@jest/test-sequencer": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.1.0.tgz",
-      "integrity": "sha512-WgZLRgVr2b4l/7ED1J1RJQBOharxS11EFhmwDqknpknE0Pm87HLZVS2Asuuw+HQdfQvm2aXL2FvvBLxOD1D0iw==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz",
+      "integrity": "sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/test-result": "^25.1.0",
-        "jest-haste-map": "^25.1.0",
-        "jest-runner": "^25.1.0",
-        "jest-runtime": "^25.1.0"
+        "@jest/test-result": "^25.5.0",
+        "graceful-fs": "^4.2.4",
+        "jest-haste-map": "^25.5.1",
+        "jest-runner": "^25.5.4",
+        "jest-runtime": "^25.5.4"
       }
     },
     "@jest/transform": {
       }
     },
     "@jest/transform": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.1.0.tgz",
-      "integrity": "sha512-4ktrQ2TPREVeM+KxB4zskAT84SnmG1vaz4S+51aTefyqn3zocZUnliLLm5Fsl85I3p/kFPN4CRp1RElIfXGegQ==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-25.5.1.tgz",
+      "integrity": "sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==",
       "dev": true,
       "requires": {
         "@babel/core": "^7.1.0",
       "dev": true,
       "requires": {
         "@babel/core": "^7.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "babel-plugin-istanbul": "^6.0.0",
         "chalk": "^3.0.0",
         "convert-source-map": "^1.4.0",
         "fast-json-stable-stringify": "^2.0.0",
         "babel-plugin-istanbul": "^6.0.0",
         "chalk": "^3.0.0",
         "convert-source-map": "^1.4.0",
         "fast-json-stable-stringify": "^2.0.0",
-        "graceful-fs": "^4.2.3",
-        "jest-haste-map": "^25.1.0",
-        "jest-regex-util": "^25.1.0",
-        "jest-util": "^25.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-haste-map": "^25.5.1",
+        "jest-regex-util": "^25.2.6",
+        "jest-util": "^25.5.0",
         "micromatch": "^4.0.2",
         "pirates": "^4.0.1",
         "micromatch": "^4.0.2",
         "pirates": "^4.0.1",
-        "realpath-native": "^1.1.0",
+        "realpath-native": "^2.0.0",
         "slash": "^3.0.0",
         "source-map": "^0.6.1",
         "write-file-atomic": "^3.0.0"
         "slash": "^3.0.0",
         "source-map": "^0.6.1",
         "write-file-atomic": "^3.0.0"
       }
     },
     "@jest/types": {
       }
     },
     "@jest/types": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz",
-      "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz",
+      "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==",
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "^2.0.0",
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "^2.0.0",
       }
     },
     "@ngtools/webpack": {
       }
     },
     "@ngtools/webpack": {
-      "version": "8.3.25",
-      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.25.tgz",
-      "integrity": "sha512-yHvgxXUXlgdWijtzcRjTaUqzK+6TVK/8p7PreBR00GsLxhl4U1jQSC6yDaZUCjOaEkiczFWl4hEuC4wTU/hLdg==",
+      "version": "8.3.26",
+      "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-8.3.26.tgz",
+      "integrity": "sha512-w28u3Akvn37hE0HYwy/l6YrDBWxzh7TceYJz+5hRLmJu+BevSY/rNjZ22AlpVD8ZWqhFfvzJS9cuvAqDgH9rtw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "8.3.25",
+        "@angular-devkit/core": "8.3.26",
         "enhanced-resolve": "4.1.0",
         "rxjs": "6.4.0",
         "tree-kill": "1.2.2",
         "enhanced-resolve": "4.1.0",
         "rxjs": "6.4.0",
         "tree-kill": "1.2.2",
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
     },
       "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
       "dev": true
     },
+    "@samverschueren/stream-to-observable": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
+      "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
+      "dev": true,
+      "requires": {
+        "any-observable": "^0.3.0"
+      }
+    },
     "@schematics/angular": {
     "@schematics/angular": {
-      "version": "8.3.25",
-      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.25.tgz",
-      "integrity": "sha512-/vEPtE+fvgsWPml/MVqzmlGPBujadPPNwaTuuj5Uz1aVcKeEYzLkbN8YQOpml4vxZHCF8RDwNdGiU4SZg63Jfg==",
+      "version": "8.3.26",
+      "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-8.3.26.tgz",
+      "integrity": "sha512-NJCykMxB9RKL+Tmr9xHftUevsivKGsQZQKjkub528wrSgwrCWoFCxGWV31iOXkT3TlBWmuibH6MZkrWbCLX4Sw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "8.3.25",
-        "@angular-devkit/schematics": "8.3.25"
+        "@angular-devkit/core": "8.3.26",
+        "@angular-devkit/schematics": "8.3.26"
       }
     },
     "@schematics/update": {
       }
     },
     "@schematics/update": {
-      "version": "0.803.25",
-      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.25.tgz",
-      "integrity": "sha512-VIlqhJsCStA3aO4llxZ7lAOvQUqppyZdrEO7f/ApIJmuofPQTkO5Hx21tnv0dyExwoqPCSIHzEu4Tmc0/TWM1A==",
+      "version": "0.803.26",
+      "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.803.26.tgz",
+      "integrity": "sha512-r284UN3HP/UgxK80SG3MDlbF4qPS6EitEqwdSBqXizUYRlV6ovG9vHMLpNruWE0B6vfYbSAn1YvvIwW/ORL1Cw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@angular-devkit/core": "8.3.25",
-        "@angular-devkit/schematics": "8.3.25",
+        "@angular-devkit/core": "8.3.26",
+        "@angular-devkit/schematics": "8.3.26",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "pacote": "9.5.5",
         "@yarnpkg/lockfile": "1.1.0",
         "ini": "1.3.5",
         "pacote": "9.5.5",
       }
     },
     "@sinonjs/commons": {
       }
     },
     "@sinonjs/commons": {
-      "version": "1.7.1",
-      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.1.tgz",
-      "integrity": "sha512-Debi3Baff1Qu1Unc3mjJ96MgpbwTn43S1+9yJ0llWygPwDNu2aaWBD6yc9y/Z8XDRNhx7U+u2UDg2OGQXkclUQ==",
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.0.tgz",
+      "integrity": "sha512-wEj54PfsZ5jGSwMX68G8ZXFawcSglQSXqCftWX3ec8MDUzQdHgcKvw97awHbY0efQEL5iKUOAmmVtoYgmrSG4Q==",
       "dev": true,
       "requires": {
         "type-detect": "4.0.8"
       }
     },
     "@swimlane/ngx-datatable": {
       "dev": true,
       "requires": {
         "type-detect": "4.0.8"
       }
     },
     "@swimlane/ngx-datatable": {
-      "version": "15.0.2",
-      "resolved": "https://registry.npmjs.org/@swimlane/ngx-datatable/-/ngx-datatable-15.0.2.tgz",
-      "integrity": "sha512-IlUyCs/hLv12hzz2pGugbrdRpBbwE6JUM4Bm4CCqLptmZj+t8pw8Ywthde8yUDdpgGgTJeJ9G5o92QadyGbP3g=="
+      "version": "16.0.3",
+      "resolved": "https://registry.npmjs.org/@swimlane/ngx-datatable/-/ngx-datatable-16.0.3.tgz",
+      "integrity": "sha512-SuVd89CTFhy+21SF8W+qmGoXGFeB7KB5/VwkrgvDRs0GnBC5m9u1nAyN0ypSXMmqilcem6vPmh4yVhjPL1rseg==",
+      "requires": {
+        "tslib": "^1.9.0"
+      }
     },
     "@types/babel__core": {
     },
     "@types/babel__core": {
-      "version": "7.1.6",
-      "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz",
-      "integrity": "sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg==",
+      "version": "7.1.7",
+      "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz",
+      "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==",
       "dev": true,
       "requires": {
         "@babel/parser": "^7.1.0",
       "dev": true,
       "requires": {
         "@babel/parser": "^7.1.0",
       }
     },
     "@types/babel__traverse": {
       }
     },
     "@types/babel__traverse": {
-      "version": "7.0.9",
-      "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz",
-      "integrity": "sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw==",
+      "version": "7.0.11",
+      "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz",
+      "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==",
       "dev": true,
       "requires": {
         "@babel/types": "^7.3.0"
       }
     },
       "dev": true,
       "requires": {
         "@babel/types": "^7.3.0"
       }
     },
+    "@types/blob-util": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/@types/blob-util/-/blob-util-1.3.3.tgz",
+      "integrity": "sha512-4ahcL/QDnpjWA2Qs16ZMQif7HjGP2cw3AGjHabybjw7Vm1EKu+cfQN1D78BaZbS1WJNa1opSMF5HNMztx7lR0w==",
+      "dev": true
+    },
+    "@types/bluebird": {
+      "version": "3.5.29",
+      "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.29.tgz",
+      "integrity": "sha512-kmVtnxTuUuhCET669irqQmPAez4KFnFVKvpleVRyfC3g+SHD1hIkFZcWLim9BVcwUBLO59o8VZE4yGCmTif8Yw==",
+      "dev": true
+    },
+    "@types/chai": {
+      "version": "4.2.7",
+      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.7.tgz",
+      "integrity": "sha512-luq8meHGYwvky0O7u0eQZdA7B4Wd9owUCqvbw2m3XCrCU8mplYOujMBbvyS547AxJkC+pGnd0Cm15eNxEUNU8g==",
+      "dev": true
+    },
+    "@types/chai-jquery": {
+      "version": "1.1.40",
+      "resolved": "https://registry.npmjs.org/@types/chai-jquery/-/chai-jquery-1.1.40.tgz",
+      "integrity": "sha512-mCNEZ3GKP7T7kftKeIs7QmfZZQM7hslGSpYzKbOlR2a2HCFf9ph4nlMRA9UnuOETeOQYJVhJQK7MwGqNZVyUtQ==",
+      "dev": true,
+      "requires": {
+        "@types/chai": "*",
+        "@types/jquery": "*"
+      }
+    },
     "@types/chart.js": {
     "@types/chart.js": {
-      "version": "2.9.16",
-      "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.16.tgz",
-      "integrity": "sha512-Mofg7xFIeAWME46YMVKHPCyUz2Z0KsVMNE1f4oF3T74mK3RiPQxOm9qzoeNTyMs6lpl4x0tiHL+Wsz2DHCxQlQ==",
+      "version": "2.9.21",
+      "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.21.tgz",
+      "integrity": "sha512-bjwdC+SvE/c3rHYYcX8UbRmTvjEUP9Dhuk/iWXygH6EFDYf4OcofnwxBpJx+A4qU3YBr54a7wtPdswfg9Yt3rg==",
       "requires": {
         "moment": "^2.10.2"
       }
       "requires": {
         "moment": "^2.10.2"
       }
       "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
       "dev": true
     },
       "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
       "dev": true
     },
+    "@types/file-saver": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz",
+      "integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw=="
+    },
     "@types/glob": {
       "version": "7.1.1",
       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
     "@types/glob": {
       "version": "7.1.1",
       "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
         "@types/node": "*"
       }
     },
         "@types/node": "*"
       }
     },
+    "@types/graceful-fs": {
+      "version": "4.1.3",
+      "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz",
+      "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==",
+      "dev": true,
+      "requires": {
+        "@types/node": "*"
+      }
+    },
     "@types/istanbul-lib-coverage": {
     "@types/istanbul-lib-coverage": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
-      "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz",
+      "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w==",
       "dev": true
     },
     "@types/istanbul-lib-report": {
       "dev": true
     },
     "@types/istanbul-lib-report": {
       }
     },
     "@types/istanbul-reports": {
       }
     },
     "@types/istanbul-reports": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz",
-      "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==",
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz",
+      "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==",
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "*",
         "@types/istanbul-lib-report": "*"
       }
     },
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "*",
         "@types/istanbul-lib-report": "*"
       }
     },
-    "@types/jasmine": {
-      "version": "3.5.9",
-      "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.9.tgz",
-      "integrity": "sha512-KNL2Fq6GRmty2j6+ZmueT/Z/dkctLNH+5DFoGHNDtcgt7yME9NZd8x2p81Yuea1Xux/qAryDd3zVLUoKpDz1TA==",
-      "dev": true
-    },
-    "@types/jasminewd2": {
-      "version": "2.0.8",
-      "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz",
-      "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==",
-      "dev": true,
-      "requires": {
-        "@types/jasmine": "*"
-      }
-    },
     "@types/jest": {
       "version": "25.1.4",
       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.1.4.tgz",
     "@types/jest": {
       "version": "25.1.4",
       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-25.1.4.tgz",
         "pretty-format": "^25.1.0"
       }
     },
         "pretty-format": "^25.1.0"
       }
     },
-    "@types/lodash": {
-      "version": "4.14.141",
-      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.141.tgz",
-      "integrity": "sha512-v5NYIi9qEbFEUpCyikmnOYe4YlP8BMUdTcNCAquAKzu+FA7rZ1onj9x80mbnDdOW/K5bFf3Tv5kJplP33+gAbQ==",
-      "dev": true
+    "@types/jquery": {
+      "version": "3.3.31",
+      "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.31.tgz",
+      "integrity": "sha512-Lz4BAJihoFw5nRzKvg4nawXPzutkv7wmfQ5121avptaSIXlDNJCUuxZxX/G+9EVidZGuO0UBlk+YjKbwRKJigg==",
+      "dev": true,
+      "requires": {
+        "@types/sizzle": "*"
+      }
+    },
+    "@types/lodash": {
+      "version": "4.14.149",
+      "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz",
+      "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==",
+      "dev": true
     },
     "@types/minimatch": {
       "version": "3.0.3",
     },
     "@types/minimatch": {
       "version": "3.0.3",
       "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
       "dev": true
     },
       "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==",
       "dev": true
     },
+    "@types/mocha": {
+      "version": "5.2.7",
+      "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz",
+      "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==",
+      "dev": true
+    },
     "@types/node": {
     "@types/node": {
-      "version": "12.7.8",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.8.tgz",
-      "integrity": "sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==",
+      "version": "12.12.34",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.34.tgz",
+      "integrity": "sha512-BneGN0J9ke24lBRn44hVHNeDlrXRYF+VRp0HbSUNnEZahXGAysHZIqnf/hER6aabdBgzM4YOV4jrR8gj4Zfi0g==",
       "dev": true
     },
       "dev": true
     },
-    "@types/q": {
-      "version": "0.0.32",
-      "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz",
-      "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=",
+    "@types/normalize-package-data": {
+      "version": "2.4.0",
+      "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
+      "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==",
       "dev": true
     },
       "dev": true
     },
-    "@types/selenium-webdriver": {
-      "version": "3.0.17",
-      "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz",
-      "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==",
+    "@types/prettier": {
+      "version": "1.19.1",
+      "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz",
+      "integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==",
       "dev": true
     },
     "@types/simplebar": {
       "dev": true
     },
     "@types/simplebar": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/@types/simplebar/-/simplebar-2.4.2.tgz",
-      "integrity": "sha512-omSnWgcQ5hGANK8MijABHDNtj7bM2GH80g8wVqeRmaePJ2lPN4RmbrVihEbYtnovW2aS51a0joITsb6+Q1HnnA==",
+      "version": "5.1.1",
+      "resolved": "https://registry.npmjs.org/@types/simplebar/-/simplebar-5.1.1.tgz",
+      "integrity": "sha512-nC9iBQ4dfvvzJ3iAbL1qCfwjUyaF8EO56l/ApcRXUFK2zLOb8GDXC55V08JZvpzkUxGHtWVunp17KKH/3/KFJA==",
+      "dev": true
+    },
+    "@types/sinon": {
+      "version": "7.5.1",
+      "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.1.tgz",
+      "integrity": "sha512-EZQUP3hSZQyTQRfiLqelC9NMWd1kqLcmQE0dMiklxBkgi84T+cHOhnKpgk4NnOWpGX863yE6+IaGnOXUNFqDnQ==",
+      "dev": true
+    },
+    "@types/sinon-chai": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-3.2.3.tgz",
+      "integrity": "sha512-TOUFS6vqS0PVL1I8NGVSNcFaNJtFoyZPXZ5zur+qlhDfOmQECZZM4H4kKgca6O8L+QceX/ymODZASfUfn+y4yQ==",
+      "dev": true,
+      "requires": {
+        "@types/chai": "*",
+        "@types/sinon": "*"
+      }
+    },
+    "@types/sizzle": {
+      "version": "2.3.2",
+      "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz",
+      "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==",
       "dev": true
     },
     "@types/source-list-map": {
       "dev": true
     },
     "@types/source-list-map": {
       "dev": true
     },
     "@types/webpack-sources": {
       "dev": true
     },
     "@types/webpack-sources": {
-      "version": "0.1.6",
-      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.6.tgz",
-      "integrity": "sha512-FtAWR7wR5ocJ9+nP137DV81tveD/ZgB1sadnJ/axUGM3BUVfRPx8oQNMtv3JNfTeHx3VP7cXiyfR/jmtEsVHsQ==",
+      "version": "0.1.7",
+      "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz",
+      "integrity": "sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==",
       "dev": true,
       "requires": {
         "@types/node": "*",
       "dev": true,
       "requires": {
         "@types/node": "*",
       }
     },
     "@types/yargs": {
       }
     },
     "@types/yargs": {
-      "version": "15.0.4",
-      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz",
-      "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==",
+      "version": "15.0.5",
+      "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
+      "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==",
       "dev": true,
       "requires": {
         "@types/yargs-parser": "*"
       "dev": true,
       "requires": {
         "@types/yargs-parser": "*"
       },
       "dependencies": {
         "acorn": {
       },
       "dependencies": {
         "acorn": {
-          "version": "7.1.1",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
-          "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
+          "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
           "dev": true
         }
       }
           "dev": true
         }
       }
       "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==",
       "dev": true
     },
       "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==",
       "dev": true
     },
-    "adm-zip": {
-      "version": "0.4.14",
-      "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz",
-      "integrity": "sha512-/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==",
-      "dev": true
-    },
     "agent-base": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
     "agent-base": {
       "version": "4.3.0",
       "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
       "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
       "dev": true
     },
       "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
       "dev": true
     },
+    "any-observable": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
+      "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
+      "dev": true
+    },
     "anymatch": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
     "anymatch": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
       "dev": true
     },
       "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
       "dev": true
     },
+    "arch": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz",
+      "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==",
+      "dev": true
+    },
     "arg": {
       "version": "4.1.3",
       "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
     "arg": {
       "version": "4.1.3",
       "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
         "bn.js": "^4.0.0",
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0"
         "bn.js": "^4.0.0",
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "assert": {
       }
     },
     "assert": {
       "dev": true
     },
     "axobject-query": {
       "dev": true
     },
     "axobject-query": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz",
-      "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==",
-      "dev": true
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
+      "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
+      "dev": true,
+      "requires": {
+        "ast-types-flow": "0.0.7"
+      }
     },
     "babel-jest": {
     },
     "babel-jest": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.1.0.tgz",
-      "integrity": "sha512-tz0VxUhhOE2y+g8R2oFrO/2VtVjA1lkJeavlhExuRBg3LdNJY9gwQ+Vcvqt9+cqy71MCTJhewvTB7Qtnnr9SWg==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
+      "integrity": "sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/transform": "^25.1.0",
-        "@jest/types": "^25.1.0",
-        "@types/babel__core": "^7.1.0",
+        "@jest/transform": "^25.5.1",
+        "@jest/types": "^25.5.0",
+        "@types/babel__core": "^7.1.7",
         "babel-plugin-istanbul": "^6.0.0",
         "babel-plugin-istanbul": "^6.0.0",
-        "babel-preset-jest": "^25.1.0",
+        "babel-preset-jest": "^25.5.0",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
+        "graceful-fs": "^4.2.4",
         "slash": "^3.0.0"
       },
       "dependencies": {
         "slash": "^3.0.0"
       },
       "dependencies": {
       }
     },
     "babel-plugin-dynamic-import-node": {
       }
     },
     "babel-plugin-dynamic-import-node": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz",
-      "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==",
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+      "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
       "dev": true,
       "requires": {
         "object.assign": "^4.1.0"
       "dev": true,
       "requires": {
         "object.assign": "^4.1.0"
       }
     },
     "babel-plugin-jest-hoist": {
       }
     },
     "babel-plugin-jest-hoist": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.1.0.tgz",
-      "integrity": "sha512-oIsopO41vW4YFZ9yNYoLQATnnN46lp+MZ6H4VvPKFkcc2/fkl3CfE/NZZSmnEIEsJRmJAgkVEK0R7Zbl50CpTw==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz",
+      "integrity": "sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
+        "@babel/template": "^7.3.3",
+        "@babel/types": "^7.3.3",
         "@types/babel__traverse": "^7.0.6"
       }
     },
         "@types/babel__traverse": "^7.0.6"
       }
     },
+    "babel-preset-current-node-syntax": {
+      "version": "0.1.2",
+      "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz",
+      "integrity": "sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==",
+      "dev": true,
+      "requires": {
+        "@babel/plugin-syntax-async-generators": "^7.8.4",
+        "@babel/plugin-syntax-bigint": "^7.8.3",
+        "@babel/plugin-syntax-class-properties": "^7.8.3",
+        "@babel/plugin-syntax-json-strings": "^7.8.3",
+        "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3",
+        "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+        "@babel/plugin-syntax-numeric-separator": "^7.8.3",
+        "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+        "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+        "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+      }
+    },
     "babel-preset-jest": {
     "babel-preset-jest": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.1.0.tgz",
-      "integrity": "sha512-eCGn64olaqwUMaugXsTtGAM2I0QTahjEtnRu0ql8Ie+gDWAc1N6wqN0k2NilnyTunM69Pad7gJY7LOtwLimoFQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz",
+      "integrity": "sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@babel/plugin-syntax-bigint": "^7.0.0",
-        "@babel/plugin-syntax-object-rest-spread": "^7.0.0",
-        "babel-plugin-jest-hoist": "^25.1.0"
+        "babel-plugin-jest-hoist": "^25.5.0",
+        "babel-preset-current-node-syntax": "^0.1.2"
       }
     },
     "babel-runtime": {
       }
     },
     "babel-runtime": {
       "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
       "dev": true
     },
       "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
       "dev": true
     },
-    "blocking-proxy": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz",
-      "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==",
-      "dev": true,
-      "requires": {
-        "minimist": "1.2.5"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
-      }
-    },
     "bluebird": {
       "version": "3.7.2",
       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
     "bluebird": {
       "version": "3.7.2",
       "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
       "dev": true
     },
     "bn.js": {
       "dev": true
     },
     "bn.js": {
-      "version": "4.11.8",
-      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
-      "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz",
+      "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==",
       "dev": true
     },
     "body-parser": {
       "dev": true
     },
     "body-parser": {
       "dev": true
     },
     "bootstrap": {
       "dev": true
     },
     "bootstrap": {
-      "version": "4.3.1",
-      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz",
-      "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag=="
+      "version": "4.4.1",
+      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz",
+      "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
     },
     "brace-expansion": {
       "version": "1.1.11",
     },
     "brace-expansion": {
       "version": "1.1.11",
       "requires": {
         "bn.js": "^4.1.0",
         "randombytes": "^2.0.1"
       "requires": {
         "bn.js": "^4.1.0",
         "randombytes": "^2.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "browserify-sign": {
       }
     },
     "browserify-sign": {
-      "version": "4.0.4",
-      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz",
-      "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=",
-      "dev": true,
-      "requires": {
-        "bn.js": "^4.1.1",
-        "browserify-rsa": "^4.0.0",
-        "create-hash": "^1.1.0",
-        "create-hmac": "^1.1.2",
-        "elliptic": "^6.0.0",
-        "inherits": "^2.0.1",
-        "parse-asn1": "^5.0.0"
+      "version": "4.2.0",
+      "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz",
+      "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==",
+      "dev": true,
+      "requires": {
+        "bn.js": "^5.1.1",
+        "browserify-rsa": "^4.0.1",
+        "create-hash": "^1.2.0",
+        "create-hmac": "^1.1.7",
+        "elliptic": "^6.5.2",
+        "inherits": "^2.0.4",
+        "parse-asn1": "^5.1.5",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+          "dev": true
+        }
       }
     },
     "browserify-zlib": {
       }
     },
     "browserify-zlib": {
       }
     },
     "browserslist": {
       }
     },
     "browserslist": {
-      "version": "4.8.6",
-      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.8.6.tgz",
-      "integrity": "sha512-ZHao85gf0eZ0ESxLfCp73GG9O/VTytYDIkIiZDlURppLTI9wErSM/5yAKEq6rcUdxBLjMELmrYUJGg5sxGKMHg==",
-      "dev": true,
-      "requires": {
-        "caniuse-lite": "^1.0.30001023",
-        "electron-to-chromium": "^1.3.341",
-        "node-releases": "^1.1.47"
-      }
-    },
-    "browserstack": {
-      "version": "1.5.3",
-      "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.5.3.tgz",
-      "integrity": "sha512-AO+mECXsW4QcqC9bxwM29O7qWa7bJT94uBFzeb5brylIQwawuEziwq20dPYbins95GlWzOawgyDNdjYAo32EKg==",
+      "version": "4.10.0",
+      "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz",
+      "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "https-proxy-agent": "^2.2.1"
+        "caniuse-lite": "^1.0.30001035",
+        "electron-to-chromium": "^1.3.378",
+        "node-releases": "^1.1.52",
+        "pkg-up": "^3.1.0"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^3.0.0",
+            "path-exists": "^3.0.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.0.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "pkg-up": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+          "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+          "dev": true,
+          "requires": {
+            "find-up": "^3.0.0"
+          }
+        }
       }
     },
     "bs-logger": {
       }
     },
     "bs-logger": {
         "isarray": "^1.0.0"
       }
     },
         "isarray": "^1.0.0"
       }
     },
+    "buffer-crc32": {
+      "version": "0.2.13",
+      "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+      "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
+      "dev": true
+    },
     "buffer-equal": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
     "buffer-equal": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
         "unset-value": "^1.0.0"
       }
     },
         "unset-value": "^1.0.0"
       }
     },
+    "cachedir": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz",
+      "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==",
+      "dev": true
+    },
     "call-me-maybe": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
     "call-me-maybe": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz",
       "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
     },
     "caniuse-lite": {
       "integrity": "sha1-IsxKNKCrxDlQ9CxkEQJKP2NmtFo="
     },
     "caniuse-lite": {
-      "version": "1.0.30001024",
-      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001024.tgz",
-      "integrity": "sha512-LubRSEPpOlKlhZw9wGlLHo8ZVj6ugGU3xGUfLPneNBledSd9lIM5cCGZ9Mz/mMCJUhEt4jZpYteZNVRdJw5FRA==",
+      "version": "1.0.30001035",
+      "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001035.tgz",
+      "integrity": "sha512-C1ZxgkuA4/bUEdMbU5WrGY4+UhMFFiXrgNAfxiMIqWgFTWfv/xsZCS2xEHT2LMq7xAZfuAnu6mcqyDl0ZR6wLQ==",
       "dev": true
     },
     "canonical-path": {
       "dev": true
     },
     "canonical-path": {
         "color-name": "^1.0.0"
       }
     },
         "color-name": "^1.0.0"
       }
     },
+    "check-more-types": {
+      "version": "2.24.0",
+      "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+      "integrity": "sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=",
+      "dev": true
+    },
     "cheerio": {
       "version": "1.0.0-rc.3",
       "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
     "cheerio": {
       "version": "1.0.0-rc.3",
       "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz",
       }
     },
     "chokidar": {
       }
     },
     "chokidar": {
-      "version": "3.3.1",
-      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
-      "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
+      "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
       "dev": true,
       "requires": {
         "anymatch": "~3.1.1",
       "dev": true,
       "requires": {
         "anymatch": "~3.1.1",
         "is-binary-path": "~2.1.0",
         "is-glob": "~4.0.1",
         "normalize-path": "~3.0.0",
         "is-binary-path": "~2.1.0",
         "is-glob": "~4.0.1",
         "normalize-path": "~3.0.0",
-        "readdirp": "~3.3.0"
+        "readdirp": "~3.4.0"
       },
       "dependencies": {
         "fsevents": {
           "version": "2.1.2"
         },
         "glob-parent": {
       },
       "dependencies": {
         "fsevents": {
           "version": "2.1.2"
         },
         "glob-parent": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
-          "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+          "version": "5.1.1",
+          "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
+          "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
           "dev": true,
           "requires": {
             "is-glob": "^4.0.1"
           "dev": true,
           "requires": {
             "is-glob": "^4.0.1"
       "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==",
       "dev": true
     },
       "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==",
       "dev": true
     },
-    "circular-json": {
-      "version": "0.5.9",
-      "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.9.tgz",
-      "integrity": "sha512-4ivwqHpIFJZBuhN3g/pEcdbnGUywkBblloGbkglyloVjjR3uT6tieI89MVOfbP2tHX5sgb01FuLgAOzebNlJNQ==",
-      "dev": true
-    },
     "cjson": {
       "version": "0.5.0",
       "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz",
     "cjson": {
       "version": "0.5.0",
       "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz",
         "restore-cursor": "^3.1.0"
       }
     },
         "restore-cursor": "^3.1.0"
       }
     },
+    "cli-table3": {
+      "version": "0.5.1",
+      "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz",
+      "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==",
+      "dev": true,
+      "requires": {
+        "colors": "^1.1.2",
+        "object-assign": "^4.1.0",
+        "string-width": "^2.1.1"
+      }
+    },
+    "cli-truncate": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz",
+      "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=",
+      "dev": true,
+      "requires": {
+        "slice-ansi": "0.0.4",
+        "string-width": "^1.0.1"
+      },
+      "dependencies": {
+        "string-width": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+          "dev": true,
+          "requires": {
+            "code-point-at": "^1.0.0",
+            "is-fullwidth-code-point": "^1.0.0",
+            "strip-ansi": "^3.0.0"
+          }
+        }
+      }
+    },
     "cli-width": {
     "cli-width": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
-      "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
+      "version": "2.2.1",
+      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+      "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
       "dev": true
     },
     "cliui": {
       "dev": true
     },
     "cliui": {
       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
     },
     "codelyzer": {
       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
     },
     "codelyzer": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.1.2.tgz",
-      "integrity": "sha512-1z7mtpwxcz5uUqq0HLO0ifj/tz2dWEmeaK+8c5TEZXAwwVxrjjg0118ODCOCCOcpfYaaEHxStNCaWVYo9FUPXw==",
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz",
+      "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==",
       "dev": true,
       "requires": {
         "app-root-path": "^2.2.1",
         "aria-query": "^3.0.0",
       "dev": true,
       "requires": {
         "app-root-path": "^2.2.1",
         "aria-query": "^3.0.0",
-        "axobject-query": "^2.0.2",
+        "axobject-query": "2.0.2",
         "css-selector-tokenizer": "^0.7.1",
         "cssauron": "^1.4.0",
         "damerau-levenshtein": "^1.0.4",
         "css-selector-tokenizer": "^0.7.1",
         "cssauron": "^1.4.0",
         "damerau-levenshtein": "^1.0.4",
       }
     },
     "collect-v8-coverage": {
       }
     },
     "collect-v8-coverage": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.0.tgz",
-      "integrity": "sha512-VKIhJgvk8E1W28m5avZ2Gv2Ruv5YiF56ug2oclvaG9md69BuZImMG2sk9g7QNKLUbtYAKQjXjYxbYZVUlMMKmQ==",
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
+      "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
       "dev": true
     },
     "collection-visit": {
       "dev": true
     },
     "collection-visit": {
       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
       "dev": true
     },
       "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
       "dev": true
     },
+    "common-tags": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz",
+      "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==",
+      "dev": true
+    },
     "commondir": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
     "commondir": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
       },
       "dependencies": {
         "cacache": {
       },
       "dependencies": {
         "cacache": {
-          "version": "12.0.3",
-          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
-          "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+          "version": "12.0.4",
+          "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+          "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
           "dev": true,
           "requires": {
             "bluebird": "^3.5.5",
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
       }
     },
     "core-js": {
       }
     },
     "core-js": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz",
-      "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw=="
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
+      "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
     },
     "core-js-compat": {
     },
     "core-js-compat": {
-      "version": "3.6.4",
-      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz",
-      "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==",
+      "version": "3.6.5",
+      "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz",
+      "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "browserslist": "^4.8.3",
+        "browserslist": "^4.8.5",
         "semver": "7.0.0"
       },
       "dependencies": {
         "semver": "7.0.0"
       },
       "dependencies": {
       },
       "dependencies": {
         "ajv": {
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true
         },
         "schema-utils": {
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
       "requires": {
         "bn.js": "^4.1.0",
         "elliptic": "^6.0.0"
       "requires": {
         "bn.js": "^4.1.0",
         "elliptic": "^6.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "create-hash": {
       }
     },
     "create-hash": {
       "dev": true
     },
     "cssstyle": {
       "dev": true
     },
     "cssstyle": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz",
-      "integrity": "sha512-sEb3XFPx3jNnCAMtqrXPDeSgQr+jojtCeNf8cvMNMh1cG970+lljssvQDzPq6lmmJu2Vhqood/gtEomBiHOGnA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz",
+      "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==",
       "dev": true,
       "requires": {
         "cssom": "~0.3.6"
       "dev": true,
       "requires": {
         "cssom": "~0.3.6"
       "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
       "dev": true
     },
       "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
       "dev": true
     },
-    "d": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
-      "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
-      "dev": true,
-      "requires": {
-        "es5-ext": "^0.10.50",
-        "type": "^1.0.1"
-      }
-    },
-    "damerau-levenshtein": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
-      "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==",
-      "dev": true
-    },
-    "dash-ast": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
-      "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
-      "dev": true
-    },
-    "dashdash": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
-      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-      "dev": true,
-      "requires": {
-        "assert-plus": "^1.0.0"
-      }
-    },
-    "data-urls": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
-      "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
-      "dev": true,
-      "requires": {
-        "abab": "^2.0.0",
-        "whatwg-mimetype": "^2.2.0",
-        "whatwg-url": "^7.0.0"
-      }
-    },
-    "debug": {
-      "version": "4.1.1",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
-      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
-      "dev": true,
-      "requires": {
-        "ms": "^2.1.1"
-      }
-    },
-    "debuglog": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
-      "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
-      "dev": true
-    },
-    "decache": {
-      "version": "4.5.1",
-      "resolved": "https://registry.npmjs.org/decache/-/decache-4.5.1.tgz",
-      "integrity": "sha512-5J37nATc6FmOTLbcsr9qx7Nm28qQyg1SK4xyEHqM0IBkNhWFp0Sm+vKoWYHD8wq+OUEb9jLyaKFfzzd1A9hcoA==",
-      "dev": true,
-      "requires": {
-        "callsite": "^1.0.0"
+    "cypress": {
+      "version": "4.4.0",
+      "resolved": "https://registry.npmjs.org/cypress/-/cypress-4.4.0.tgz",
+      "integrity": "sha512-ZpsV3pVemANGi4Cxu0UIqFv23uHdDJZYlKY+8P/eixujCpI1TQ5RSPBp2grfV3ZvlGYrOXPJY44j9iEh1xoQug==",
+      "dev": true,
+      "requires": {
+        "@cypress/listr-verbose-renderer": "0.4.1",
+        "@cypress/request": "2.88.5",
+        "@cypress/xvfb": "1.2.4",
+        "@types/blob-util": "1.3.3",
+        "@types/bluebird": "3.5.29",
+        "@types/chai": "4.2.7",
+        "@types/chai-jquery": "1.1.40",
+        "@types/jquery": "3.3.31",
+        "@types/lodash": "4.14.149",
+        "@types/minimatch": "3.0.3",
+        "@types/mocha": "5.2.7",
+        "@types/sinon": "7.5.1",
+        "@types/sinon-chai": "3.2.3",
+        "@types/sizzle": "2.3.2",
+        "arch": "2.1.1",
+        "bluebird": "3.7.2",
+        "cachedir": "2.3.0",
+        "chalk": "2.4.2",
+        "check-more-types": "2.24.0",
+        "cli-table3": "0.5.1",
+        "commander": "4.1.0",
+        "common-tags": "1.8.0",
+        "debug": "4.1.1",
+        "eventemitter2": "4.1.2",
+        "execa": "1.0.0",
+        "executable": "4.1.1",
+        "extract-zip": "1.7.0",
+        "fs-extra": "8.1.0",
+        "getos": "3.1.4",
+        "is-ci": "2.0.0",
+        "is-installed-globally": "0.1.0",
+        "lazy-ass": "1.6.0",
+        "listr": "0.14.3",
+        "lodash": "4.17.15",
+        "log-symbols": "3.0.0",
+        "minimist": "1.2.5",
+        "moment": "2.24.0",
+        "ospath": "1.2.2",
+        "pretty-bytes": "5.3.0",
+        "ramda": "0.26.1",
+        "request-progress": "3.0.0",
+        "supports-color": "7.1.0",
+        "tmp": "0.1.0",
+        "untildify": "4.0.0",
+        "url": "0.11.0",
+        "yauzl": "2.10.0"
+      },
+      "dependencies": {
+        "commander": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.0.tgz",
+          "integrity": "sha512-NIQrwvv9V39FHgGFm36+U9SMQzbiHvU79k+iADraJTpmrFFfx7Ds0IvDoAdZsDrknlkRk14OYoWXb57uTh7/sw==",
+          "dev": true
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
+          }
+        },
+        "execa": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^4.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+          "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
+        "semver": {
+          "version": "5.7.1",
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+          "dev": true
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "tmp": {
+          "version": "0.1.0",
+          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz",
+          "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==",
+          "dev": true,
+          "requires": {
+            "rimraf": "^2.6.3"
+          }
+        }
+      }
+    },
+    "d": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+      "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+      "dev": true,
+      "requires": {
+        "es5-ext": "^0.10.50",
+        "type": "^1.0.1"
+      }
+    },
+    "damerau-levenshtein": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
+      "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==",
+      "dev": true
+    },
+    "dash-ast": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz",
+      "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==",
+      "dev": true
+    },
+    "dashdash": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+      "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+      "dev": true,
+      "requires": {
+        "assert-plus": "^1.0.0"
+      }
+    },
+    "data-urls": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz",
+      "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
+      "dev": true,
+      "requires": {
+        "abab": "^2.0.0",
+        "whatwg-mimetype": "^2.2.0",
+        "whatwg-url": "^7.0.0"
+      }
+    },
+    "date-fns": {
+      "version": "1.30.1",
+      "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz",
+      "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==",
+      "dev": true
+    },
+    "debug": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+      "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
+      "dev": true,
+      "requires": {
+        "ms": "^2.1.1"
+      }
+    },
+    "debuglog": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
+      "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
+      "dev": true
+    },
+    "decache": {
+      "version": "4.6.0",
+      "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.0.tgz",
+      "integrity": "sha512-PppOuLiz+DFeaUvFXEYZjLxAkKiMYH/do/b/MxpDe/8AgKBi5GhZxridoVIbBq72GDbL36e4p0Ce2jTGUwwU+w==",
+      "dev": true,
+      "requires": {
+        "callsite": "^1.0.0"
       }
     },
     "decamelize": {
       }
     },
     "decamelize": {
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
       "dev": true
     },
       "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
       "dev": true
     },
+    "deepmerge": {
+      "version": "4.2.2",
+      "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+      "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+      "dev": true
+    },
     "default-gateway": {
       "version": "4.2.0",
       "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
     "default-gateway": {
       "version": "4.2.0",
       "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
       "dev": true
     },
     "detect-browser": {
       "dev": true
     },
     "detect-browser": {
-      "version": "4.7.0",
-      "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-4.7.0.tgz",
-      "integrity": "sha512-x+7zkRxwEiQ8qLKKfln9pTa4n87fbPHVpHyImmpEQn5lAmKurWBVbg0tb99ruAHqSA0ejrXMp0MahKEulE7LqA=="
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.0.0.tgz",
+      "integrity": "sha512-jUaq/SAT9YMlmhq/8w7gnqqr8AMcc7iYG1eAp7vP/7xn2eLtlcnEmxOkh2PmTg2Q+jVSUO3XD4sZ/IldbGg3dA=="
     },
     "detect-file": {
       "version": "1.0.0",
     },
     "detect-file": {
       "version": "1.0.0",
       "dev": true
     },
     "diff-sequences": {
       "dev": true
     },
     "diff-sequences": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.1.0.tgz",
-      "integrity": "sha512-nFIfVk5B/NStCsJ+zaPO4vYuLjlzQ6uFvPxzYyHlejNZ/UGa7G/n7peOXVrVNvRuyfstt+mZQYGpjxg9Z6N8Kw==",
+      "version": "25.2.6",
+      "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
+      "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==",
       "dev": true
     },
     "diffie-hellman": {
       "dev": true
     },
     "diffie-hellman": {
         "bn.js": "^4.1.0",
         "miller-rabin": "^4.0.0",
         "randombytes": "^2.0.0"
         "bn.js": "^4.1.0",
         "miller-rabin": "^4.0.0",
         "randombytes": "^2.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "dir-glob": {
       }
     },
     "dir-glob": {
       "dev": true
     },
     "electron-to-chromium": {
       "dev": true
     },
     "electron-to-chromium": {
-      "version": "1.3.378",
-      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.378.tgz",
-      "integrity": "sha512-nBp/AfhaVIOnfwgL1CZxt80IcqWcyYXiX6v5gflAksxy+SzBVz7A7UWR1Nos92c9ofXW74V9PoapzRb0jJfYXw==",
+      "version": "1.3.446",
+      "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.446.tgz",
+      "integrity": "sha512-CLQaFuvkKqR9FD2G3cJrr1fV7DRMXiAKWLP2F8cxtvvtzAS7Tubt0kF47/m+uE61kiT+I7ZEn7HqLnmWdOhmuA==",
+      "dev": true
+    },
+    "elegant-spinner": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz",
+      "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=",
       "dev": true
     },
     "elliptic": {
       "dev": true
     },
     "elliptic": {
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0",
         "minimalistic-crypto-utils": "^1.0.0"
         "inherits": "^2.0.1",
         "minimalistic-assert": "^1.0.0",
         "minimalistic-crypto-utils": "^1.0.0"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "emoji-regex": {
       }
     },
     "emoji-regex": {
       }
     },
     "es-abstract": {
       }
     },
     "es-abstract": {
-      "version": "1.17.4",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
-      "integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
+      "version": "1.17.5",
+      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+      "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
       "dev": true,
       "requires": {
         "es-to-primitive": "^1.2.1",
       "dev": true,
       "requires": {
         "es-to-primitive": "^1.2.1",
       "dev": true
     },
     "escodegen": {
       "dev": true
     },
     "escodegen": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
-      "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
+      "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "esprima": "^3.1.3",
+        "esprima": "^4.0.1",
         "estraverse": "^4.2.0",
         "esutils": "^2.0.2",
         "optionator": "^0.8.1",
         "source-map": "~0.6.1"
       },
       "dependencies": {
         "estraverse": "^4.2.0",
         "esutils": "^2.0.2",
         "optionator": "^0.8.1",
         "source-map": "~0.6.1"
       },
       "dependencies": {
-        "esprima": {
-          "version": "3.1.3",
-          "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
-          "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
-          "dev": true
-        },
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
         "source-map": {
           "version": "0.6.1",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
         "through": "~2.3.1"
       }
     },
         "through": "~2.3.1"
       }
     },
+    "eventemitter2": {
+      "version": "4.1.2",
+      "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-4.1.2.tgz",
+      "integrity": "sha1-DhqEd6+CGm7zmVsxG/dMI6UkfxU=",
+      "dev": true
+    },
     "eventemitter3": {
     "eventemitter3": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz",
-      "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==",
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+      "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==",
       "dev": true
     },
     "events": {
       "dev": true
     },
     "events": {
         "strip-eof": "^1.0.0"
       }
     },
         "strip-eof": "^1.0.0"
       }
     },
+    "executable": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+      "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+      "dev": true,
+      "requires": {
+        "pify": "^2.2.0"
+      },
+      "dependencies": {
+        "pify": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+          "dev": true
+        }
+      }
+    },
     "exit": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
       "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
       "dev": true
     },
     "exit": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
       "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
       "dev": true
     },
+    "exit-hook": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
+      "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+      "dev": true
+    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
       }
     },
     "expect": {
       }
     },
     "expect": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/expect/-/expect-25.1.0.tgz",
-      "integrity": "sha512-wqHzuoapQkhc3OKPlrpetsfueuEiMf3iWh0R8+duCu9PIjXoP7HgD5aeypwTnXUAjC8aMsiVDaWwlbJ1RlQ38g==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/expect/-/expect-25.5.0.tgz",
+      "integrity": "sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "ansi-styles": "^4.0.0",
         "ansi-styles": "^4.0.0",
-        "jest-get-type": "^25.1.0",
-        "jest-matcher-utils": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-regex-util": "^25.1.0"
+        "jest-get-type": "^25.2.6",
+        "jest-matcher-utils": "^25.5.0",
+        "jest-message-util": "^25.5.0",
+        "jest-regex-util": "^25.2.6"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
         }
       }
     },
         }
       }
     },
-    "extsprintf": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
-      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
-      "dev": true
-    },
-    "falafel": {
-      "version": "2.2.4",
-      "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz",
-      "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==",
+    "extract-zip": {
+      "version": "1.7.0",
+      "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+      "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "acorn": "^7.1.1",
-        "foreach": "^2.0.5",
-        "isarray": "^2.0.1",
-        "object-keys": "^1.0.6"
+        "concat-stream": "^1.6.2",
+        "debug": "^2.6.9",
+        "mkdirp": "^0.5.4",
+        "yauzl": "^2.10.0"
       },
       "dependencies": {
       },
       "dependencies": {
-        "acorn": {
-          "version": "7.1.1",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
-          "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
-          "dev": true
+        "debug": {
+          "version": "2.6.9",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+          "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+          "dev": true,
+          "requires": {
+            "ms": "2.0.0"
+          }
         },
         },
-        "isarray": {
-          "version": "2.0.5",
-          "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
-          "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+        "ms": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+          "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
           "dev": true
         }
       }
     },
           "dev": true
         }
       }
     },
+    "extsprintf": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+      "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+      "dev": true
+    },
     "fancy-log": {
       "version": "1.3.3",
       "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
     "fancy-log": {
       "version": "1.3.3",
       "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz",
         "bser": "2.1.1"
       }
     },
         "bser": "2.1.1"
       }
     },
+    "fd-slicer": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+      "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
+      "dev": true,
+      "requires": {
+        "pend": "~1.2.0"
+      }
+    },
     "figgy-pudding": {
     "figgy-pudding": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
-      "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+      "version": "3.5.2",
+      "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+      "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
       "dev": true
     },
     "figures": {
       "dev": true
     },
     "figures": {
       },
       "dependencies": {
         "ajv": {
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true
         },
         "schema-utils": {
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
         }
       }
     },
         }
       }
     },
+    "file-saver": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
+      "integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
+    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
           }
         },
         "make-dir": {
           }
         },
         "make-dir": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
-          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
           }
         },
         "p-limit": {
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
       }
     },
     "follow-redirects": {
       }
     },
     "follow-redirects": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz",
-      "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==",
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz",
+      "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==",
       "dev": true,
       "requires": {
         "debug": "^3.0.0"
       "dev": true,
       "requires": {
         "debug": "^3.0.0"
       }
     },
     "fontkit": {
       }
     },
     "fontkit": {
-      "version": "1.8.0",
-      "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.0.tgz",
-      "integrity": "sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ==",
+      "version": "1.8.1",
+      "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.1.tgz",
+      "integrity": "sha512-BsNCjDoYRxmNWFdAuK1y9bQt+igIxGtTC9u/jSFjR9MKhmI00rP1fwSvERt+5ddE82544l0XH5mzXozQVUy2Tw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "babel-runtime": "^6.11.6",
-        "brfs": "^1.4.0",
+        "babel-runtime": "^6.26.0",
+        "brfs": "^2.0.0",
         "brotli": "^1.2.0",
         "brotli": "^1.2.0",
-        "browserify-optional": "^1.0.0",
-        "clone": "^1.0.1",
+        "browserify-optional": "^1.0.1",
+        "clone": "^1.0.4",
         "deep-equal": "^1.0.0",
         "deep-equal": "^1.0.0",
-        "dfa": "^1.0.0",
+        "dfa": "^1.2.0",
         "restructure": "^0.5.3",
         "tiny-inflate": "^1.0.2",
         "restructure": "^0.5.3",
         "tiny-inflate": "^1.0.2",
-        "unicode-properties": "^1.0.0",
+        "unicode-properties": "^1.2.2",
         "unicode-trie": "^0.3.0"
       },
       "dependencies": {
         "unicode-trie": "^0.3.0"
       },
       "dependencies": {
-        "brfs": {
-          "version": "1.6.1",
-          "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
-          "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
-          "dev": true,
-          "requires": {
-            "quote-stream": "^1.0.1",
-            "resolve": "^1.1.5",
-            "static-module": "^2.2.0",
-            "through2": "^2.0.0"
-          }
-        },
         "clone": {
           "version": "1.0.4",
           "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
           "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
           "dev": true
         },
         "clone": {
           "version": "1.0.4",
           "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
           "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
           "dev": true
         },
-        "magic-string": {
-          "version": "0.22.5",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
-          "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
-          "dev": true,
-          "requires": {
-            "vlq": "^0.2.2"
-          }
-        },
-        "merge-source-map": {
-          "version": "1.0.4",
-          "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
-          "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=",
-          "dev": true,
-          "requires": {
-            "source-map": "^0.5.6"
-          }
-        },
-        "object-inspect": {
-          "version": "1.4.1",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
-          "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==",
-          "dev": true
-        },
         "pako": {
           "version": "0.2.9",
           "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
           "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
           "dev": true
         },
         "pako": {
           "version": "0.2.9",
           "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
           "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
           "dev": true
         },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        },
-        "static-module": {
-          "version": "2.2.5",
-          "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz",
-          "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==",
-          "dev": true,
-          "requires": {
-            "concat-stream": "~1.6.0",
-            "convert-source-map": "^1.5.1",
-            "duplexer2": "~0.1.4",
-            "escodegen": "~1.9.0",
-            "falafel": "^2.1.0",
-            "has": "^1.0.1",
-            "magic-string": "^0.22.4",
-            "merge-source-map": "1.0.4",
-            "object-inspect": "~1.4.0",
-            "quote-stream": "~1.0.2",
-            "readable-stream": "~2.3.3",
-            "shallow-copy": "~0.0.1",
-            "static-eval": "^2.0.0",
-            "through2": "~2.0.3"
-          }
-        },
         "unicode-trie": {
           "version": "0.3.1",
           "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
         "unicode-trie": {
           "version": "0.3.1",
           "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
         "for-in": "^1.0.1"
       }
     },
         "for-in": "^1.0.1"
       }
     },
-    "foreach": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
-      "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
-      "dev": true
-    },
     "forever-agent": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
     "forever-agent": {
       "version": "0.6.1",
       "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
       "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
     },
       "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
       "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
     },
-    "get-stream": {
+    "get-package-type": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+      "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+      "dev": true
+    },
+    "get-stream": {
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
       "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
       "version": "3.0.0",
       "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
       "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
       "dev": true
     },
       "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
       "dev": true
     },
+    "getos": {
+      "version": "3.1.4",
+      "resolved": "https://registry.npmjs.org/getos/-/getos-3.1.4.tgz",
+      "integrity": "sha512-UORPzguEB/7UG5hqiZai8f0vQ7hzynMQyJLxStoQ8dPGAcmgsfXOPA4iE/fGtweHYkK+z4zc9V0g+CIFRf5HYw==",
+      "dev": true,
+      "requires": {
+        "async": "^3.1.0"
+      },
+      "dependencies": {
+        "async": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz",
+          "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==",
+          "dev": true
+        }
+      }
+    },
     "getpass": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
     "getpass": {
       "version": "0.1.7",
       "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
       "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
       "dev": true
     },
       "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=",
       "dev": true
     },
+    "global-dirs": {
+      "version": "0.1.1",
+      "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+      "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+      "dev": true,
+      "requires": {
+        "ini": "^1.3.4"
+      }
+    },
     "global-modules": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
     "global-modules": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
       }
     },
     "graceful-fs": {
       }
     },
     "graceful-fs": {
-      "version": "4.2.3",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
-      "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==",
+      "version": "4.2.4",
+      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
+      "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
       "dev": true
     },
     "growly": {
       "dev": true
     },
     "growly": {
       "optional": true
     },
     "handle-thing": {
       "optional": true
     },
     "handle-thing": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz",
-      "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+      "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
       "dev": true
     },
     "handlebars": {
       "dev": true
     },
     "handlebars": {
-      "version": "4.7.3",
-      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz",
-      "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==",
+      "version": "4.7.6",
+      "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
+      "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
+        "minimist": "^1.2.5",
         "neo-async": "^2.6.0",
         "neo-async": "^2.6.0",
-        "optimist": "^0.6.1",
         "source-map": "^0.6.1",
         "source-map": "^0.6.1",
-        "uglify-js": "^3.1.4"
+        "uglify-js": "^3.1.4",
+        "wordwrap": "^1.0.0"
       },
       "dependencies": {
         "source-map": {
       },
       "dependencies": {
         "source-map": {
       }
     },
     "hash-base": {
       }
     },
     "hash-base": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz",
-      "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
+      "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "inherits": "^2.0.1",
-        "safe-buffer": "^5.0.1"
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.6.0",
+        "safe-buffer": "^5.2.0"
+      },
+      "dependencies": {
+        "readable-stream": {
+          "version": "3.6.0",
+          "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+          "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+          "dev": true,
+          "requires": {
+            "inherits": "^2.0.3",
+            "string_decoder": "^1.1.1",
+            "util-deprecate": "^1.0.1"
+          }
+        },
+        "safe-buffer": {
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+          "dev": true
+        }
       }
     },
     "hash.js": {
       }
     },
     "hash.js": {
       }
     },
     "html-entities": {
       }
     },
     "html-entities": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
-      "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz",
+      "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==",
       "dev": true
     },
     "html-escaper": {
       "dev": true
     },
     "html-escaper": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz",
-      "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+      "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
       "dev": true
     },
     "html-linter": {
       "dev": true
     },
     "html-linter": {
       "dev": true
     },
     "http-proxy": {
       "dev": true
     },
     "http-proxy": {
-      "version": "1.18.0",
-      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz",
-      "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==",
+      "version": "1.18.1",
+      "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+      "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
       "dev": true,
       "requires": {
         "eventemitter3": "^4.0.0",
       "dev": true,
       "requires": {
         "eventemitter3": "^4.0.0",
       "dev": true,
       "optional": true
     },
       "dev": true,
       "optional": true
     },
-    "immediate": {
-      "version": "3.0.6",
-      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
-      "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=",
-      "dev": true
-    },
     "import-cwd": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
     "import-cwd": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
       "dev": true
     },
       "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
       "dev": true
     },
+    "indent-string": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
+      "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
+      "dev": true
+    },
     "infer-owner": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
     "infer-owner": {
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
       "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
       "dev": true
     },
       "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=",
       "dev": true
     },
+    "is-docker": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
+      "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==",
+      "dev": true,
+      "optional": true
+    },
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
         "is-extglob": "^2.1.1"
       }
     },
         "is-extglob": "^2.1.1"
       }
     },
+    "is-installed-globally": {
+      "version": "0.1.0",
+      "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+      "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+      "dev": true,
+      "requires": {
+        "global-dirs": "^0.1.0",
+        "is-path-inside": "^1.0.0"
+      },
+      "dependencies": {
+        "is-path-inside": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+          "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+          "dev": true,
+          "requires": {
+            "path-is-inside": "^1.0.1"
+          }
+        }
+      }
+    },
     "is-negated-glob": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
     "is-negated-glob": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz",
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
       "dev": true
     },
       "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
       "dev": true
     },
+    "is-observable": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz",
+      "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==",
+      "dev": true,
+      "requires": {
+        "symbol-observable": "^1.1.0"
+      }
+    },
     "is-path-cwd": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
     "is-path-cwd": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
       }
     },
     "is-promise": {
       }
     },
     "is-promise": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
-      "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+      "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
       "dev": true
     },
     "is-regex": {
       "dev": true
     },
     "is-regex": {
       "dev": true
     },
     "istanbul-lib-instrument": {
       "dev": true
     },
     "istanbul-lib-instrument": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz",
-      "integrity": "sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg==",
+      "version": "4.0.3",
+      "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz",
+      "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==",
       "dev": true,
       "requires": {
         "@babel/core": "^7.7.5",
       "dev": true,
       "requires": {
         "@babel/core": "^7.7.5",
-        "@babel/parser": "^7.7.5",
-        "@babel/template": "^7.7.4",
-        "@babel/traverse": "^7.7.4",
         "@istanbuljs/schema": "^0.1.2",
         "istanbul-lib-coverage": "^3.0.0",
         "semver": "^6.3.0"
         "@istanbuljs/schema": "^0.1.2",
         "istanbul-lib-coverage": "^3.0.0",
         "semver": "^6.3.0"
           "dev": true
         },
         "make-dir": {
           "dev": true
         },
         "make-dir": {
-          "version": "3.0.2",
-          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz",
-          "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
           "dev": true,
           "requires": {
             "semver": "^6.0.0"
       }
     },
     "istanbul-reports": {
       }
     },
     "istanbul-reports": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.0.tgz",
-      "integrity": "sha512-2osTcC8zcOSUkImzN2EWQta3Vdi4WjjKw99P2yWx5mLnigAM0Rd5uYFn1cf2i/Ois45GkNjaoTqc5CxgMSX80A==",
+      "version": "3.0.2",
+      "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz",
+      "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==",
       "dev": true,
       "requires": {
         "html-escaper": "^2.0.0",
         "istanbul-lib-report": "^3.0.0"
       }
     },
       "dev": true,
       "requires": {
         "html-escaper": "^2.0.0",
         "istanbul-lib-report": "^3.0.0"
       }
     },
-    "jasmine": {
-      "version": "2.8.0",
-      "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz",
-      "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=",
-      "dev": true,
-      "requires": {
-        "exit": "^0.1.2",
-        "glob": "^7.0.6",
-        "jasmine-core": "~2.8.0"
-      },
-      "dependencies": {
-        "jasmine-core": {
-          "version": "2.8.0",
-          "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz",
-          "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=",
-          "dev": true
-        }
-      }
-    },
-    "jasmine-core": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz",
-      "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==",
-      "dev": true
-    },
-    "jasmine-fail-fast": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/jasmine-fail-fast/-/jasmine-fail-fast-2.0.1.tgz",
-      "integrity": "sha512-En8ONwvDQOV+jyiZEZvbvUSLWSdJFj9HiWjhLdGq/V/gxs4XyST730ooe928BbRxv4bfy05OpykKuoOU4aLC5w==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.15"
-      }
-    },
-    "jasmine-spec-reporter": {
-      "version": "4.2.1",
-      "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz",
-      "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==",
-      "dev": true,
-      "requires": {
-        "colors": "1.1.2"
-      },
-      "dependencies": {
-        "colors": {
-          "version": "1.1.2",
-          "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
-          "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
-          "dev": true
-        }
-      }
-    },
-    "jasminewd2": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz",
-      "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=",
-      "dev": true
-    },
     "jest": {
     "jest": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest/-/jest-25.1.0.tgz",
-      "integrity": "sha512-FV6jEruneBhokkt9MQk0WUFoNTwnF76CLXtwNMfsc0um0TlB/LG2yxUd0KqaFjEJ9laQmVWQWS0sG/t2GsuI0w==",
+      "version": "25.2.4",
+      "resolved": "https://registry.npmjs.org/jest/-/jest-25.2.4.tgz",
+      "integrity": "sha512-Lu4LXxf4+durzN/IFilcAoQSisOwgHIXgl9vffopePpSSwFqfj1Pj4y+k3nL8oTbnvjxgDIsEcepy6he4bWqnQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/core": "^25.1.0",
+        "@jest/core": "^25.2.4",
         "import-local": "^3.0.2",
         "import-local": "^3.0.2",
-        "jest-cli": "^25.1.0"
+        "jest-cli": "^25.2.4"
       },
       "dependencies": {
         "ansi-regex": {
       },
       "dependencies": {
         "ansi-regex": {
           "dev": true
         },
         "jest-cli": {
           "dev": true
         },
         "jest-cli": {
-          "version": "25.1.0",
-          "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.1.0.tgz",
-          "integrity": "sha512-p+aOfczzzKdo3AsLJlhs8J5EW6ffVidfSZZxXedJ0mHPBOln1DccqFmGCoO8JWd4xRycfmwy1eoQkMsF8oekPg==",
+          "version": "25.5.4",
+          "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
+          "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "@jest/core": "^25.1.0",
-            "@jest/test-result": "^25.1.0",
-            "@jest/types": "^25.1.0",
+            "@jest/core": "^25.5.4",
+            "@jest/test-result": "^25.5.0",
+            "@jest/types": "^25.5.0",
             "chalk": "^3.0.0",
             "exit": "^0.1.2",
             "chalk": "^3.0.0",
             "exit": "^0.1.2",
+            "graceful-fs": "^4.2.4",
             "import-local": "^3.0.2",
             "is-ci": "^2.0.0",
             "import-local": "^3.0.2",
             "is-ci": "^2.0.0",
-            "jest-config": "^25.1.0",
-            "jest-util": "^25.1.0",
-            "jest-validate": "^25.1.0",
+            "jest-config": "^25.5.4",
+            "jest-util": "^25.5.0",
+            "jest-validate": "^25.5.0",
             "prompts": "^2.0.1",
             "prompts": "^2.0.1",
-            "realpath-native": "^1.1.0",
-            "yargs": "^15.0.0"
+            "realpath-native": "^2.0.0",
+            "yargs": "^15.3.1"
           }
         },
         "locate-path": {
           }
         },
         "locate-path": {
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           }
         },
         "yargs-parser": {
           }
         },
         "yargs-parser": {
-          "version": "18.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz",
-          "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
       }
     },
     "jest-changed-files": {
       }
     },
     "jest-changed-files": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.1.0.tgz",
-      "integrity": "sha512-bdL1aHjIVy3HaBO3eEQeemGttsq1BDlHgWcOjEOIAcga7OOEGWHD2WSu8HhL7I1F0mFFyci8VKU4tRNk+qtwDA==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
+      "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "execa": "^3.2.0",
         "throat": "^5.0.0"
       },
       "dependencies": {
         "cross-spawn": {
         "execa": "^3.2.0",
         "throat": "^5.0.0"
       },
       "dependencies": {
         "cross-spawn": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
-          "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+          "version": "7.0.2",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
+          "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
           "dev": true,
           "requires": {
             "path-key": "^3.1.0",
           "dev": true,
           "requires": {
             "path-key": "^3.1.0",
       }
     },
     "jest-config": {
       }
     },
     "jest-config": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.1.0.tgz",
-      "integrity": "sha512-tLmsg4SZ5H7tuhBC5bOja0HEblM0coS3Wy5LTCb2C8ZV6eWLewHyK+3qSq9Bi29zmWQ7ojdCd3pxpx4l4d2uGw==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz",
+      "integrity": "sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==",
       "dev": true,
       "requires": {
         "@babel/core": "^7.1.0",
       "dev": true,
       "requires": {
         "@babel/core": "^7.1.0",
-        "@jest/test-sequencer": "^25.1.0",
-        "@jest/types": "^25.1.0",
-        "babel-jest": "^25.1.0",
+        "@jest/test-sequencer": "^25.5.4",
+        "@jest/types": "^25.5.0",
+        "babel-jest": "^25.5.1",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
+        "deepmerge": "^4.2.2",
         "glob": "^7.1.1",
         "glob": "^7.1.1",
-        "jest-environment-jsdom": "^25.1.0",
-        "jest-environment-node": "^25.1.0",
-        "jest-get-type": "^25.1.0",
-        "jest-jasmine2": "^25.1.0",
-        "jest-regex-util": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-validate": "^25.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-environment-jsdom": "^25.5.0",
+        "jest-environment-node": "^25.5.0",
+        "jest-get-type": "^25.2.6",
+        "jest-jasmine2": "^25.5.4",
+        "jest-regex-util": "^25.2.6",
+        "jest-resolve": "^25.5.1",
+        "jest-util": "^25.5.0",
+        "jest-validate": "^25.5.0",
         "micromatch": "^4.0.2",
         "micromatch": "^4.0.2",
-        "pretty-format": "^25.1.0",
-        "realpath-native": "^1.1.0"
+        "pretty-format": "^25.5.0",
+        "realpath-native": "^2.0.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
       }
     },
     "jest-diff": {
       }
     },
     "jest-diff": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.1.0.tgz",
-      "integrity": "sha512-nepXgajT+h017APJTreSieh4zCqnSHEJ1iT8HDlewu630lSJ4Kjjr9KNzm+kzGwwcpsDE6Snx1GJGzzsefaEHw==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz",
+      "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==",
       "dev": true,
       "requires": {
         "chalk": "^3.0.0",
       "dev": true,
       "requires": {
         "chalk": "^3.0.0",
-        "diff-sequences": "^25.1.0",
-        "jest-get-type": "^25.1.0",
-        "pretty-format": "^25.1.0"
+        "diff-sequences": "^25.2.6",
+        "jest-get-type": "^25.2.6",
+        "pretty-format": "^25.5.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
       }
     },
     "jest-docblock": {
       }
     },
     "jest-docblock": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.1.0.tgz",
-      "integrity": "sha512-370P/mh1wzoef6hUKiaMcsPtIapY25suP6JqM70V9RJvdKLrV4GaGbfUseUVk4FZJw4oTZ1qSCJNdrClKt5JQA==",
+      "version": "25.3.0",
+      "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz",
+      "integrity": "sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==",
       "dev": true,
       "requires": {
         "detect-newline": "^3.0.0"
       }
     },
     "jest-each": {
       "dev": true,
       "requires": {
         "detect-newline": "^3.0.0"
       }
     },
     "jest-each": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.1.0.tgz",
-      "integrity": "sha512-R9EL8xWzoPySJ5wa0DXFTj7NrzKpRD40Jy+zQDp3Qr/2QmevJgkN9GqioCGtAJ2bW9P/MQRznQHQQhoeAyra7A==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-25.5.0.tgz",
+      "integrity": "sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
-        "jest-get-type": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "pretty-format": "^25.1.0"
+        "jest-get-type": "^25.2.6",
+        "jest-util": "^25.5.0",
+        "pretty-format": "^25.5.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
       }
     },
     "jest-environment-jsdom": {
       }
     },
     "jest-environment-jsdom": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.1.0.tgz",
-      "integrity": "sha512-ILb4wdrwPAOHX6W82GGDUiaXSSOE274ciuov0lztOIymTChKFtC02ddyicRRCdZlB5YSrv3vzr1Z5xjpEe1OHQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz",
+      "integrity": "sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/environment": "^25.1.0",
-        "@jest/fake-timers": "^25.1.0",
-        "@jest/types": "^25.1.0",
-        "jest-mock": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jsdom": "^15.1.1"
+        "@jest/environment": "^25.5.0",
+        "@jest/fake-timers": "^25.5.0",
+        "@jest/types": "^25.5.0",
+        "jest-mock": "^25.5.0",
+        "jest-util": "^25.5.0",
+        "jsdom": "^15.2.1"
       }
     },
     "jest-environment-node": {
       }
     },
     "jest-environment-node": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.1.0.tgz",
-      "integrity": "sha512-U9kFWTtAPvhgYY5upnH9rq8qZkj6mYLup5l1caAjjx9uNnkLHN2xgZy5mo4SyLdmrh/EtB9UPpKFShvfQHD0Iw==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.5.0.tgz",
+      "integrity": "sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/environment": "^25.1.0",
-        "@jest/fake-timers": "^25.1.0",
-        "@jest/types": "^25.1.0",
-        "jest-mock": "^25.1.0",
-        "jest-util": "^25.1.0"
+        "@jest/environment": "^25.5.0",
+        "@jest/fake-timers": "^25.5.0",
+        "@jest/types": "^25.5.0",
+        "jest-mock": "^25.5.0",
+        "jest-util": "^25.5.0",
+        "semver": "^6.3.0"
       }
     },
     "jest-get-type": {
       }
     },
     "jest-get-type": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.1.0.tgz",
-      "integrity": "sha512-yWkBnT+5tMr8ANB6V+OjmrIJufHtCAqI5ic2H40v+tRqxDmE0PGnIiTyvRWFOMtmVHYpwRqyazDbTnhpjsGvLw==",
+      "version": "25.2.6",
+      "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz",
+      "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==",
       "dev": true
     },
     "jest-haste-map": {
       "dev": true
     },
     "jest-haste-map": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.1.0.tgz",
-      "integrity": "sha512-/2oYINIdnQZAqyWSn1GTku571aAfs8NxzSErGek65Iu5o8JYb+113bZysRMcC/pjE5v9w0Yz+ldbj9NxrFyPyw==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.5.1.tgz",
+      "integrity": "sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
+        "@types/graceful-fs": "^4.1.2",
         "anymatch": "^3.0.3",
         "fb-watchman": "^2.0.0",
         "fsevents": "2.1.2",
         "anymatch": "^3.0.3",
         "fb-watchman": "^2.0.0",
         "fsevents": "2.1.2",
-        "graceful-fs": "^4.2.3",
-        "jest-serializer": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-worker": "^25.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-serializer": "^25.5.0",
+        "jest-util": "^25.5.0",
+        "jest-worker": "^25.5.0",
         "micromatch": "^4.0.2",
         "sane": "^4.0.3",
         "micromatch": "^4.0.2",
         "sane": "^4.0.3",
-        "walker": "^1.0.7"
+        "walker": "^1.0.7",
+        "which": "^2.0.2"
       },
       "dependencies": {
         "fsevents": {
       },
       "dependencies": {
         "fsevents": {
           "dev": true
         },
         "jest-worker": {
           "dev": true
         },
         "jest-worker": {
-          "version": "25.1.0",
-          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
-          "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
+          "version": "25.5.0",
+          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+          "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
           "requires": {
             "has-flag": "^4.0.0"
           }
           "requires": {
             "has-flag": "^4.0.0"
           }
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
         }
       }
     },
     "jest-jasmine2": {
         }
       }
     },
     "jest-jasmine2": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.1.0.tgz",
-      "integrity": "sha512-GdncRq7jJ7sNIQ+dnXvpKO2MyP6j3naNK41DTTjEAhLEdpImaDA9zSAZwDhijjSF/D7cf4O5fdyUApGBZleaEg==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz",
+      "integrity": "sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==",
       "dev": true,
       "requires": {
         "@babel/traverse": "^7.1.0",
       "dev": true,
       "requires": {
         "@babel/traverse": "^7.1.0",
-        "@jest/environment": "^25.1.0",
-        "@jest/source-map": "^25.1.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/environment": "^25.5.0",
+        "@jest/source-map": "^25.5.0",
+        "@jest/test-result": "^25.5.0",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "co": "^4.6.0",
         "chalk": "^3.0.0",
         "co": "^4.6.0",
-        "expect": "^25.1.0",
+        "expect": "^25.5.0",
         "is-generator-fn": "^2.0.0",
         "is-generator-fn": "^2.0.0",
-        "jest-each": "^25.1.0",
-        "jest-matcher-utils": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-runtime": "^25.1.0",
-        "jest-snapshot": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "pretty-format": "^25.1.0",
+        "jest-each": "^25.5.0",
+        "jest-matcher-utils": "^25.5.0",
+        "jest-message-util": "^25.5.0",
+        "jest-runtime": "^25.5.4",
+        "jest-snapshot": "^25.5.1",
+        "jest-util": "^25.5.0",
+        "pretty-format": "^25.5.0",
         "throat": "^5.0.0"
       },
       "dependencies": {
         "throat": "^5.0.0"
       },
       "dependencies": {
       }
     },
     "jest-leak-detector": {
       }
     },
     "jest-leak-detector": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.1.0.tgz",
-      "integrity": "sha512-3xRI264dnhGaMHRvkFyEKpDeaRzcEBhyNrOG5oT8xPxOyUAblIAQnpiR3QXu4wDor47MDTiHbiFcbypdLcLW5w==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz",
+      "integrity": "sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "jest-get-type": "^25.1.0",
-        "pretty-format": "^25.1.0"
+        "jest-get-type": "^25.2.6",
+        "pretty-format": "^25.5.0"
       }
     },
     "jest-matcher-utils": {
       }
     },
     "jest-matcher-utils": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.1.0.tgz",
-      "integrity": "sha512-KGOAFcSFbclXIFE7bS4C53iYobKI20ZWleAdAFun4W1Wz1Kkej8Ng6RRbhL8leaEvIOjGXhGf/a1JjO8bkxIWQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz",
+      "integrity": "sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==",
       "dev": true,
       "requires": {
         "chalk": "^3.0.0",
       "dev": true,
       "requires": {
         "chalk": "^3.0.0",
-        "jest-diff": "^25.1.0",
-        "jest-get-type": "^25.1.0",
-        "pretty-format": "^25.1.0"
+        "jest-diff": "^25.5.0",
+        "jest-get-type": "^25.2.6",
+        "pretty-format": "^25.5.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
       }
     },
     "jest-message-util": {
       }
     },
     "jest-message-util": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.1.0.tgz",
-      "integrity": "sha512-Nr/Iwar2COfN22aCqX0kCVbXgn8IBm9nWf4xwGr5Olv/KZh0CZ32RKgZWMVDXGdOahicM10/fgjdimGNX/ttCQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.5.0.tgz",
+      "integrity": "sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "@types/stack-utils": "^1.0.1",
         "chalk": "^3.0.0",
         "@types/stack-utils": "^1.0.1",
         "chalk": "^3.0.0",
+        "graceful-fs": "^4.2.4",
         "micromatch": "^4.0.2",
         "slash": "^3.0.0",
         "stack-utils": "^1.0.1"
         "micromatch": "^4.0.2",
         "slash": "^3.0.0",
         "stack-utils": "^1.0.1"
       }
     },
     "jest-mock": {
       }
     },
     "jest-mock": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.1.0.tgz",
-      "integrity": "sha512-28/u0sqS+42vIfcd1mlcg4ZVDmSUYuNvImP4X2lX5hRMLW+CN0BeiKVD4p+ujKKbSPKd3rg/zuhCF+QBLJ4vag==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-25.5.0.tgz",
+      "integrity": "sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0"
+        "@jest/types": "^25.5.0"
       }
     },
     "jest-pnp-resolver": {
       }
     },
     "jest-pnp-resolver": {
       "dev": true
     },
     "jest-preset-angular": {
       "dev": true
     },
     "jest-preset-angular": {
-      "version": "8.1.2",
-      "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-8.1.2.tgz",
-      "integrity": "sha512-a6RPuWIUAnEBq3nsgwh6B+ZaJ1wYF7ChvNNBp4vS9lM9OG8r2waa4+OpIQDZJ9ptERDsPC2vjr6QY3R0ai9vcw==",
+      "version": "8.1.3",
+      "resolved": "https://registry.npmjs.org/jest-preset-angular/-/jest-preset-angular-8.1.3.tgz",
+      "integrity": "sha512-T53bmWG4mNynumYcWqvhKGslQCJCTFpcL3SMrggrI65hI2G0ErYZ6WtdJqPDsFFk+KRN+iNLwNBG1idHO9k2uQ==",
       "dev": true,
       "requires": {
         "pretty-format": "^25.0.0",
       "dev": true,
       "requires": {
         "pretty-format": "^25.0.0",
       }
     },
     "jest-regex-util": {
       }
     },
     "jest-regex-util": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.1.0.tgz",
-      "integrity": "sha512-9lShaDmDpqwg+xAd73zHydKrBbbrIi08Kk9YryBEBybQFg/lBWR/2BDjjiSE7KIppM9C5+c03XiDaZ+m4Pgs1w==",
+      "version": "25.2.6",
+      "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz",
+      "integrity": "sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==",
       "dev": true
     },
     "jest-resolve": {
       "dev": true
     },
     "jest-resolve": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.1.0.tgz",
-      "integrity": "sha512-XkBQaU1SRCHj2Evz2Lu4Czs+uIgJXWypfO57L7JYccmAXv4slXA6hzNblmcRmf7P3cQ1mE7fL3ABV6jAwk4foQ==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.5.1.tgz",
+      "integrity": "sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "browser-resolve": "^1.11.3",
         "chalk": "^3.0.0",
         "browser-resolve": "^1.11.3",
         "chalk": "^3.0.0",
+        "graceful-fs": "^4.2.4",
         "jest-pnp-resolver": "^1.2.1",
         "jest-pnp-resolver": "^1.2.1",
-        "realpath-native": "^1.1.0"
+        "read-pkg-up": "^7.0.1",
+        "realpath-native": "^2.0.0",
+        "resolve": "^1.17.0",
+        "slash": "^3.0.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
+        "slash": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+          "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+          "dev": true
+        },
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
       }
     },
     "jest-resolve-dependencies": {
       }
     },
     "jest-resolve-dependencies": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.1.0.tgz",
-      "integrity": "sha512-Cu/Je38GSsccNy4I2vL12ZnBlD170x2Oh1devzuM9TLH5rrnLW1x51lN8kpZLYTvzx9j+77Y5pqBaTqfdzVzrw==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz",
+      "integrity": "sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
-        "jest-regex-util": "^25.1.0",
-        "jest-snapshot": "^25.1.0"
+        "@jest/types": "^25.5.0",
+        "jest-regex-util": "^25.2.6",
+        "jest-snapshot": "^25.5.1"
       }
     },
     "jest-runner": {
       }
     },
     "jest-runner": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.1.0.tgz",
-      "integrity": "sha512-su3O5fy0ehwgt+e8Wy7A8CaxxAOCMzL4gUBftSs0Ip32S0epxyZPDov9Znvkl1nhVOJNf4UwAsnqfc3plfQH9w==",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-25.5.4.tgz",
+      "integrity": "sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/console": "^25.1.0",
-        "@jest/environment": "^25.1.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/console": "^25.5.0",
+        "@jest/environment": "^25.5.0",
+        "@jest/test-result": "^25.5.0",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "exit": "^0.1.2",
         "chalk": "^3.0.0",
         "exit": "^0.1.2",
-        "graceful-fs": "^4.2.3",
-        "jest-config": "^25.1.0",
-        "jest-docblock": "^25.1.0",
-        "jest-haste-map": "^25.1.0",
-        "jest-jasmine2": "^25.1.0",
-        "jest-leak-detector": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "jest-runtime": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-worker": "^25.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-config": "^25.5.4",
+        "jest-docblock": "^25.3.0",
+        "jest-haste-map": "^25.5.1",
+        "jest-jasmine2": "^25.5.4",
+        "jest-leak-detector": "^25.5.0",
+        "jest-message-util": "^25.5.0",
+        "jest-resolve": "^25.5.1",
+        "jest-runtime": "^25.5.4",
+        "jest-util": "^25.5.0",
+        "jest-worker": "^25.5.0",
         "source-map-support": "^0.5.6",
         "throat": "^5.0.0"
       },
         "source-map-support": "^0.5.6",
         "throat": "^5.0.0"
       },
           "dev": true
         },
         "jest-worker": {
           "dev": true
         },
         "jest-worker": {
-          "version": "25.1.0",
-          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz",
-          "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==",
+          "version": "25.5.0",
+          "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz",
+          "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
           "dev": true,
           "requires": {
             "merge-stream": "^2.0.0",
       }
     },
     "jest-runtime": {
       }
     },
     "jest-runtime": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.1.0.tgz",
-      "integrity": "sha512-mpPYYEdbExKBIBB16ryF6FLZTc1Rbk9Nx0ryIpIMiDDkOeGa0jQOKVI/QeGvVGlunKKm62ywcioeFVzIbK03bA==",
-      "dev": true,
-      "requires": {
-        "@jest/console": "^25.1.0",
-        "@jest/environment": "^25.1.0",
-        "@jest/source-map": "^25.1.0",
-        "@jest/test-result": "^25.1.0",
-        "@jest/transform": "^25.1.0",
-        "@jest/types": "^25.1.0",
+      "version": "25.5.4",
+      "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.5.4.tgz",
+      "integrity": "sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==",
+      "dev": true,
+      "requires": {
+        "@jest/console": "^25.5.0",
+        "@jest/environment": "^25.5.0",
+        "@jest/globals": "^25.5.2",
+        "@jest/source-map": "^25.5.0",
+        "@jest/test-result": "^25.5.0",
+        "@jest/transform": "^25.5.1",
+        "@jest/types": "^25.5.0",
         "@types/yargs": "^15.0.0",
         "chalk": "^3.0.0",
         "collect-v8-coverage": "^1.0.0",
         "exit": "^0.1.2",
         "glob": "^7.1.3",
         "@types/yargs": "^15.0.0",
         "chalk": "^3.0.0",
         "collect-v8-coverage": "^1.0.0",
         "exit": "^0.1.2",
         "glob": "^7.1.3",
-        "graceful-fs": "^4.2.3",
-        "jest-config": "^25.1.0",
-        "jest-haste-map": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-mock": "^25.1.0",
-        "jest-regex-util": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "jest-snapshot": "^25.1.0",
-        "jest-util": "^25.1.0",
-        "jest-validate": "^25.1.0",
-        "realpath-native": "^1.1.0",
+        "graceful-fs": "^4.2.4",
+        "jest-config": "^25.5.4",
+        "jest-haste-map": "^25.5.1",
+        "jest-message-util": "^25.5.0",
+        "jest-mock": "^25.5.0",
+        "jest-regex-util": "^25.2.6",
+        "jest-resolve": "^25.5.1",
+        "jest-snapshot": "^25.5.1",
+        "jest-util": "^25.5.0",
+        "jest-validate": "^25.5.0",
+        "realpath-native": "^2.0.0",
         "slash": "^3.0.0",
         "strip-bom": "^4.0.0",
         "slash": "^3.0.0",
         "strip-bom": "^4.0.0",
-        "yargs": "^15.0.0"
+        "yargs": "^15.3.1"
       },
       "dependencies": {
         "ansi-regex": {
       },
       "dependencies": {
         "ansi-regex": {
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           }
         },
         "yargs-parser": {
           }
         },
         "yargs-parser": {
-          "version": "18.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz",
-          "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
       }
     },
     "jest-serializer": {
       }
     },
     "jest-serializer": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.1.0.tgz",
-      "integrity": "sha512-20Wkq5j7o84kssBwvyuJ7Xhn7hdPeTXndnwIblKDR2/sy1SUm6rWWiG9kSCgJPIfkDScJCIsTtOKdlzfIHOfKA==",
-      "dev": true
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.5.0.tgz",
+      "integrity": "sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==",
+      "dev": true,
+      "requires": {
+        "graceful-fs": "^4.2.4"
+      }
     },
     "jest-silent-reporter": {
       "version": "0.2.1",
     },
     "jest-silent-reporter": {
       "version": "0.2.1",
           }
         },
         "@types/yargs": {
           }
         },
         "@types/yargs": {
-          "version": "13.0.8",
-          "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz",
-          "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==",
+          "version": "13.0.9",
+          "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz",
+          "integrity": "sha512-xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==",
           "dev": true,
           "requires": {
             "@types/yargs-parser": "*"
           "dev": true,
           "requires": {
             "@types/yargs-parser": "*"
       }
     },
     "jest-snapshot": {
       }
     },
     "jest-snapshot": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.1.0.tgz",
-      "integrity": "sha512-xZ73dFYN8b/+X2hKLXz4VpBZGIAn7muD/DAg+pXtDzDGw3iIV10jM7WiHqhCcpDZfGiKEj7/2HXAEPtHTj0P2A==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.5.1.tgz",
+      "integrity": "sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==",
       "dev": true,
       "requires": {
         "@babel/types": "^7.0.0",
       "dev": true,
       "requires": {
         "@babel/types": "^7.0.0",
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
+        "@types/prettier": "^1.19.0",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
-        "expect": "^25.1.0",
-        "jest-diff": "^25.1.0",
-        "jest-get-type": "^25.1.0",
-        "jest-matcher-utils": "^25.1.0",
-        "jest-message-util": "^25.1.0",
-        "jest-resolve": "^25.1.0",
-        "mkdirp": "^0.5.1",
+        "expect": "^25.5.0",
+        "graceful-fs": "^4.2.4",
+        "jest-diff": "^25.5.0",
+        "jest-get-type": "^25.2.6",
+        "jest-matcher-utils": "^25.5.0",
+        "jest-message-util": "^25.5.0",
+        "jest-resolve": "^25.5.1",
+        "make-dir": "^3.0.0",
         "natural-compare": "^1.4.0",
         "natural-compare": "^1.4.0",
-        "pretty-format": "^25.1.0",
-        "semver": "^7.1.1"
+        "pretty-format": "^25.5.0",
+        "semver": "^6.3.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
-        "semver": {
-          "version": "7.1.3",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz",
-          "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==",
-          "dev": true
+        "make-dir": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+          "dev": true,
+          "requires": {
+            "semver": "^6.0.0"
+          }
         },
         "supports-color": {
           "version": "7.1.0",
         },
         "supports-color": {
           "version": "7.1.0",
       }
     },
     "jest-util": {
       }
     },
     "jest-util": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.1.0.tgz",
-      "integrity": "sha512-7did6pLQ++87Qsj26Fs/TIwZMUFBXQ+4XXSodRNy3luch2DnRXsSnmpVtxxQ0Yd6WTipGpbhh2IFP1mq6/fQGw==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-25.5.0.tgz",
+      "integrity": "sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "chalk": "^3.0.0",
         "chalk": "^3.0.0",
+        "graceful-fs": "^4.2.4",
         "is-ci": "^2.0.0",
         "is-ci": "^2.0.0",
-        "mkdirp": "^0.5.1"
+        "make-dir": "^3.0.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
           "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
           "dev": true
         },
+        "make-dir": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+          "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+          "dev": true,
+          "requires": {
+            "semver": "^6.0.0"
+          }
+        },
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
         "supports-color": {
           "version": "7.1.0",
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
       }
     },
     "jest-validate": {
       }
     },
     "jest-validate": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.1.0.tgz",
-      "integrity": "sha512-kGbZq1f02/zVO2+t1KQGSVoCTERc5XeObLwITqC6BTRH3Adv7NZdYqCpKIZLUgpLXf2yISzQ465qOZpul8abXA==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-25.5.0.tgz",
+      "integrity": "sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "camelcase": "^5.3.1",
         "chalk": "^3.0.0",
         "camelcase": "^5.3.1",
         "chalk": "^3.0.0",
-        "jest-get-type": "^25.1.0",
+        "jest-get-type": "^25.2.6",
         "leven": "^3.1.0",
         "leven": "^3.1.0",
-        "pretty-format": "^25.1.0"
+        "pretty-format": "^25.5.0"
       },
       "dependencies": {
         "ansi-styles": {
       },
       "dependencies": {
         "ansi-styles": {
       }
     },
     "jest-watcher": {
       }
     },
     "jest-watcher": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.1.0.tgz",
-      "integrity": "sha512-Q9eZ7pyaIr6xfU24OeTg4z1fUqBF/4MP6J801lyQfg7CsnZ/TCzAPvCfckKdL5dlBBEKBeHV0AdyjFZ5eWj4ig==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.5.0.tgz",
+      "integrity": "sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/test-result": "^25.1.0",
-        "@jest/types": "^25.1.0",
+        "@jest/test-result": "^25.5.0",
+        "@jest/types": "^25.5.0",
         "ansi-escapes": "^4.2.1",
         "chalk": "^3.0.0",
         "ansi-escapes": "^4.2.1",
         "chalk": "^3.0.0",
-        "jest-util": "^25.1.0",
+        "jest-util": "^25.5.0",
         "string-length": "^3.1.0"
       },
       "dependencies": {
         "string-length": "^3.1.0"
       },
       "dependencies": {
       },
       "dependencies": {
         "acorn": {
       },
       "dependencies": {
         "acorn": {
-          "version": "7.1.1",
-          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
-          "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==",
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
+          "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
           "dev": true
         },
           "dev": true
         },
-        "escodegen": {
-          "version": "1.14.1",
-          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
-          "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
-          "dev": true,
-          "requires": {
-            "esprima": "^4.0.1",
-            "estraverse": "^4.2.0",
-            "esutils": "^2.0.2",
-            "optionator": "^0.8.1",
-            "source-map": "~0.6.1"
-          }
-        },
         "parse5": {
           "version": "5.1.0",
           "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
         "parse5": {
           "version": "5.1.0",
           "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz",
           "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
           "dev": true
         },
           "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
           "dev": true
         },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true,
-          "optional": true
-        },
         "tough-cookie": {
           "version": "3.0.1",
           "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
         "tough-cookie": {
           "version": "3.0.1",
           "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
           }
         },
         "ws": {
           }
         },
         "ws": {
-          "version": "7.2.3",
-          "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz",
-          "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==",
+          "version": "7.3.0",
+          "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz",
+          "integrity": "sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==",
           "dev": true
         }
       }
           "dev": true
         }
       }
       "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
       "dev": true,
       "requires": {
       "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
       "dev": true,
       "requires": {
-        "minimist": "1.2.5"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
+        "minimist": "^1.2.0"
       }
     },
     "jsonfile": {
       }
     },
     "jsonfile": {
         "verror": "1.10.0"
       }
     },
         "verror": "1.10.0"
       }
     },
-    "jszip": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz",
-      "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==",
-      "dev": true,
-      "requires": {
-        "lie": "~3.3.0",
-        "pako": "~1.0.2",
-        "readable-stream": "~2.3.6",
-        "set-immediate-shim": "~1.0.1"
-      }
-    },
     "karma-source-map-support": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
     "karma-source-map-support": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz",
       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
       "dev": true
     },
       "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
       "dev": true
     },
-    "klaw-sync": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz",
-      "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.11"
-      }
-    },
     "kleur": {
       "version": "3.0.3",
       "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
       "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
       "dev": true
     },
     "kleur": {
       "version": "3.0.3",
       "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
       "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
       "dev": true
     },
+    "lazy-ass": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+      "integrity": "sha1-eZllXoZGwX8In90YfRUNMyTVRRM=",
+      "dev": true
+    },
     "lcid": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
     "lcid": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
         "webpack-sources": "^1.2.0"
       }
     },
         "webpack-sources": "^1.2.0"
       }
     },
-    "lie": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
-      "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
-      "dev": true,
-      "requires": {
-        "immediate": "~3.0.5"
-      }
-    },
     "liftoff": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
     "liftoff": {
       "version": "2.5.0",
       "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz",
         }
       }
     },
         }
       }
     },
-    "live-server": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz",
-      "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==",
+    "lines-and-columns": {
+      "version": "1.1.6",
+      "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
+      "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
+      "dev": true
+    },
+    "listr": {
+      "version": "0.14.3",
+      "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz",
+      "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "chokidar": "^2.0.4",
-        "colors": "^1.4.0",
-        "connect": "^3.6.6",
-        "cors": "^2.8.5",
-        "event-stream": "3.3.4",
-        "faye-websocket": "0.11.x",
-        "http-auth": "3.1.x",
-        "morgan": "^1.9.1",
-        "object-assign": "^4.1.1",
-        "opn": "^6.0.0",
-        "proxy-middleware": "^0.15.0",
-        "send": "^0.17.1",
-        "serve-index": "^1.9.1"
+        "@samverschueren/stream-to-observable": "^0.3.0",
+        "is-observable": "^1.1.0",
+        "is-promise": "^2.1.0",
+        "is-stream": "^1.1.0",
+        "listr-silent-renderer": "^1.1.1",
+        "listr-update-renderer": "^0.5.0",
+        "listr-verbose-renderer": "^0.5.0",
+        "p-map": "^2.0.0",
+        "rxjs": "^6.3.3"
+      }
+    },
+    "listr-silent-renderer": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz",
+      "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=",
+      "dev": true
+    },
+    "listr-update-renderer": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz",
+      "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==",
+      "dev": true,
+      "requires": {
+        "chalk": "^1.1.3",
+        "cli-truncate": "^0.2.1",
+        "elegant-spinner": "^1.0.1",
+        "figures": "^1.7.0",
+        "indent-string": "^3.0.0",
+        "log-symbols": "^1.0.2",
+        "log-update": "^2.3.0",
+        "strip-ansi": "^3.0.1"
       },
       "dependencies": {
       },
       "dependencies": {
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+        "ansi-styles": {
+          "version": "2.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+          "dev": true
+        },
+        "chalk": {
+          "version": "1.1.3",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          },
-          "dependencies": {
-            "normalize-path": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-              "dev": true,
-              "requires": {
-                "remove-trailing-separator": "^1.0.1"
+            "ansi-styles": "^2.2.1",
+            "escape-string-regexp": "^1.0.2",
+            "has-ansi": "^2.0.0",
+            "strip-ansi": "^3.0.0",
+            "supports-color": "^2.0.0"
+          }
+        },
+        "figures": {
+          "version": "1.7.0",
+          "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
+          "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+          "dev": true,
+          "requires": {
+            "escape-string-regexp": "^1.0.5",
+            "object-assign": "^4.1.0"
+          }
+        },
+        "log-symbols": {
+          "version": "1.0.2",
+          "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
+          "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=",
+          "dev": true,
+          "requires": {
+            "chalk": "^1.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+          "dev": true
+        }
+      }
+    },
+    "listr-verbose-renderer": {
+      "version": "0.5.0",
+      "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz",
+      "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.1",
+        "cli-cursor": "^2.1.0",
+        "date-fns": "^1.27.2",
+        "figures": "^2.0.0"
+      },
+      "dependencies": {
+        "cli-cursor": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^2.0.0"
+          }
+        },
+        "figures": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+          "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
+          "dev": true,
+          "requires": {
+            "escape-string-regexp": "^1.0.5"
+          }
+        },
+        "onetime": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "restore-cursor": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+          "dev": true,
+          "requires": {
+            "onetime": "^2.0.0",
+            "signal-exit": "^3.0.2"
+          }
+        }
+      }
+    },
+    "live-server": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz",
+      "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==",
+      "dev": true,
+      "requires": {
+        "chokidar": "^2.0.4",
+        "colors": "^1.4.0",
+        "connect": "^3.6.6",
+        "cors": "^2.8.5",
+        "event-stream": "3.3.4",
+        "faye-websocket": "0.11.x",
+        "http-auth": "3.1.x",
+        "morgan": "^1.9.1",
+        "object-assign": "^4.1.1",
+        "opn": "^6.0.0",
+        "proxy-middleware": "^0.15.0",
+        "send": "^0.17.1",
+        "serve-index": "^1.9.1"
+      },
+      "dependencies": {
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+          "dev": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
+              "dev": true,
+              "requires": {
+                "remove-trailing-separator": "^1.0.1"
               }
             }
           }
               }
             }
           }
         "fsevents": {
           "dev": true,
           "optional": true,
         "fsevents": {
           "dev": true,
           "optional": true,
-          "requires": {
-            "node-pre-gyp": "*"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "3.2.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "^2.1.1"
-              }
-            },
-            "deep-extend": {
-              "version": "0.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.6.0"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.24",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": ">= 2.1.2 < 3"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "dev": true,
-              "optional": true,
-              "version": "1.2.5"
-            },
-            "minipass": {
-              "version": "2.9.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.3.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.9.0"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "1.2.5"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "ms": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.14.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.1",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.2.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4.4.2"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "npm-normalize-package-bin": "^1.0.1"
-              }
-            },
-            "npm-normalize-package-bin": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.4.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "1.2.5",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.1.3"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.13",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.1.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.8.6",
-                "minizlib": "^1.2.1",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.3"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2 || 2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "yallist": {
-              "version": "3.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          },
-          "version": "2.1.2"
-        },
-        "is-binary-path": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
-          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-          "dev": true,
+          "version": "2.1.2"
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
           "requires": {
             "binary-extensions": "^1.0.0"
           }
           "requires": {
             "binary-extensions": "^1.0.0"
           }
       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
     },
       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
       "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
     },
+    "lodash.once": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+      "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=",
+      "dev": true
+    },
     "lodash.sortby": {
       "version": "4.7.0",
       "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
     "lodash.sortby": {
       "version": "4.7.0",
       "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
       "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
       "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
     },
       "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
       "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
     },
+    "log-symbols": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
+      "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+      "dev": true,
+      "requires": {
+        "chalk": "^2.4.2"
+      }
+    },
+    "log-update": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz",
+      "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=",
+      "dev": true,
+      "requires": {
+        "ansi-escapes": "^3.0.0",
+        "cli-cursor": "^2.0.0",
+        "wrap-ansi": "^3.0.1"
+      },
+      "dependencies": {
+        "ansi-escapes": {
+          "version": "3.2.0",
+          "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
+          "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
+          "dev": true
+        },
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "cli-cursor": {
+          "version": "2.1.0",
+          "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+          "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+          "dev": true,
+          "requires": {
+            "restore-cursor": "^2.0.0"
+          }
+        },
+        "onetime": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+          "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+          "dev": true,
+          "requires": {
+            "mimic-fn": "^1.0.0"
+          }
+        },
+        "restore-cursor": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+          "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+          "dev": true,
+          "requires": {
+            "onetime": "^2.0.0",
+            "signal-exit": "^3.0.2"
+          }
+        },
+        "strip-ansi": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^3.0.0"
+          }
+        },
+        "wrap-ansi": {
+          "version": "3.0.1",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz",
+          "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=",
+          "dev": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0"
+          }
+        }
+      }
+    },
     "loglevel": {
     "loglevel": {
-      "version": "1.6.7",
-      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz",
-      "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==",
+      "version": "1.6.8",
+      "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
+      "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==",
       "dev": true
     },
     "loglevel-plugin-prefix": {
       "dev": true
     },
     "loglevel-plugin-prefix": {
       "requires": {
         "bn.js": "^4.0.0",
         "brorand": "^1.0.1"
       "requires": {
         "bn.js": "^4.0.0",
         "brorand": "^1.0.1"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "mime": {
       }
     },
     "mime": {
       "dev": true
     },
     "mime-db": {
       "dev": true
     },
     "mime-db": {
-      "version": "1.43.0",
-      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
-      "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==",
+      "version": "1.44.0",
+      "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+      "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
       "dev": true
     },
     "mime-types": {
       "dev": true
     },
     "mime-types": {
-      "version": "2.1.26",
-      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
-      "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+      "version": "2.1.27",
+      "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+      "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "mime-db": "1.43.0"
+        "mime-db": "1.44.0"
       }
     },
     "mimic-fn": {
       }
     },
     "mimic-fn": {
       }
     },
     "minimist": {
       }
     },
     "minimist": {
-      "dev": true,
-      "version": "1.2.5"
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+      "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+      "dev": true
     },
     "minipass": {
       "version": "2.9.0",
     },
     "minipass": {
       "version": "2.9.0",
       }
     },
     "mkdirp": {
       }
     },
     "mkdirp": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz",
-      "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==",
+      "version": "0.5.5",
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+      "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "minimist": "1.2.5"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
+        "minimist": "^1.2.5"
       }
     },
     "mobx": {
       }
     },
     "mobx": {
       "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
     },
     "morgan": {
       "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
     },
     "morgan": {
-      "version": "1.9.1",
-      "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
-      "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+      "version": "1.10.0",
+      "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
+      "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "basic-auth": "~2.0.0",
+        "basic-auth": "~2.0.1",
         "debug": "2.6.9",
         "debug": "2.6.9",
-        "depd": "~1.1.2",
+        "depd": "~2.0.0",
         "on-finished": "~2.3.0",
         "on-finished": "~2.3.0",
-        "on-headers": "~1.0.1"
+        "on-headers": "~1.0.2"
       },
       "dependencies": {
         "debug": {
       },
       "dependencies": {
         "debug": {
             "ms": "2.0.0"
           }
         },
             "ms": "2.0.0"
           }
         },
+        "depd": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+          "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+          "dev": true
+        },
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
         "ms": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
       }
     },
     "mri": {
       }
     },
     "mri": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
-      "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
+      "version": "1.1.5",
+      "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz",
+      "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==",
       "dev": true
     },
     "ms": {
       "dev": true
     },
     "ms": {
       "dev": true
     },
     "ng-block-ui": {
       "dev": true
     },
     "ng-block-ui": {
-      "version": "2.1.7",
-      "resolved": "https://registry.npmjs.org/ng-block-ui/-/ng-block-ui-2.1.7.tgz",
-      "integrity": "sha512-c06fUoFzTcj2n/ybrg85qx33u3ceIbEkpHJ/KEo2Hf7PoZJZ0H4jg55g67ChFT6Ctw/2FfGyejiHjsmfhqe8Aw==",
+      "version": "2.1.8",
+      "resolved": "https://registry.npmjs.org/ng-block-ui/-/ng-block-ui-2.1.8.tgz",
+      "integrity": "sha512-BBcjUn9b/m3+wPlXkYExuy6ko+5oK7pte79gGUVo6a3HqpLnvPQXFgKV1kUpIM97NYfKKtR/+dPj7Xhh/GSV4w==",
       "requires": {
         "tslib": "^1.9.0"
       }
       "requires": {
         "tslib": "^1.9.0"
       }
       }
     },
     "ng-click-outside": {
       }
     },
     "ng-click-outside": {
-      "version": "5.3.0",
-      "resolved": "https://registry.npmjs.org/ng-click-outside/-/ng-click-outside-5.3.0.tgz",
-      "integrity": "sha512-+WYtu2hSQy0F6VlHOqKhPtdVJimTiXXNtZPBGfLORJNX71ieYGsentke8KG+8EudR36FUB6Ya9g2GwGXM0UqdA=="
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/ng-click-outside/-/ng-click-outside-6.0.0.tgz",
+      "integrity": "sha512-jOUidlFthMz0yI7Aey3fTmThduUIFG0h3kYgqD1uFO0rRvHWF0Cp5g9/fsJrBRFNEzdADRPoZnapyKzjv7m7Ig=="
     },
     "ng-mocks": {
     },
     "ng-mocks": {
-      "version": "9.0.0",
-      "resolved": "https://registry.npmjs.org/ng-mocks/-/ng-mocks-9.0.0.tgz",
-      "integrity": "sha512-YGg7n7F0okLnOFO6ulSXfNWHXx6tlpim2hXC55bGtczLavfUdaCRTOQUOsb37E2l5iOCaMRf2CiFZ8/EEgC1mA==",
+      "version": "9.2.0",
+      "resolved": "https://registry.npmjs.org/ng-mocks/-/ng-mocks-9.2.0.tgz",
+      "integrity": "sha512-k2/FoYDW2Izjsl7LKz3L9obfJUvLb7dG5B5p7Bgtqt6mM76lJ8wpPxC5GuINdoI6wGbDfcF+va5kE3clLlSVpA==",
       "dev": true
     },
     "ng2-charts": {
       "dev": true
     },
     "ng2-charts": {
       }
     },
     "ngx-bootstrap": {
       }
     },
     "ngx-bootstrap": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-5.1.2.tgz",
-      "integrity": "sha512-L9flZCGEf+/G0sOZXs3WJ2tp7SW6/7soQbAnpFmlvFURcSKv9p2/aiH/VbG47Ra50e5i6q3ereKEo7IpGEQwVQ=="
+      "version": "5.5.0",
+      "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-5.5.0.tgz",
+      "integrity": "sha512-BJeghbkKFQl49sg3GIYQyjvwaHn64xFOsinBVD8HWKOVpRJSnuafrjXByGDtfq35jGY4R+7iBLksM1IYLUPshg=="
     },
     "ngx-toastr": {
     },
     "ngx-toastr": {
-      "version": "11.0.0",
-      "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-11.0.0.tgz",
-      "integrity": "sha512-WO+dVaGufn+kAtBnHl7s9ruDwDdJ5+vLJsaZO6tMKwavsgPLycl2iymVgUkQssEsRUYUKBix0Af4pjN0JZVOtw==",
+      "version": "11.3.3",
+      "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-11.3.3.tgz",
+      "integrity": "sha512-DbLFkSZHsVPuuIIrsY1ziEhdkFUQ0V1yG1N0+1nKXGI5QBVesEDxLUVtntjzxJcWw/uUV+bKApo//tGHHORabQ==",
       "requires": {
         "tslib": "^1.9.0"
       }
       "requires": {
         "tslib": "^1.9.0"
       }
       "dev": true
     },
     "node-fetch-npm": {
       "dev": true
     },
     "node-fetch-npm": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.3.tgz",
-      "integrity": "sha512-DgwoKEsqLnFZtk3ap7GWBHcHwnUhsNmQqEDcdjfQ8GofLEFJ081NAd4Uin3R7RFZBWVJCwHISw1oaEqPgSLloA==",
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz",
+      "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==",
       "dev": true,
       "requires": {
         "encoding": "^0.1.11",
       "dev": true,
       "requires": {
         "encoding": "^0.1.11",
       },
       "dependencies": {
         "is-wsl": {
       },
       "dependencies": {
         "is-wsl": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz",
-          "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==",
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+          "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
           "dev": true,
           "dev": true,
-          "optional": true
+          "optional": true,
+          "requires": {
+            "is-docker": "^2.0.0"
+          }
         }
       }
     },
     "node-releases": {
         }
       }
     },
     "node-releases": {
-      "version": "1.1.52",
-      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz",
-      "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==",
-      "dev": true,
-      "requires": {
-        "semver": "^6.3.0"
-      }
+      "version": "1.1.56",
+      "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz",
+      "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==",
+      "dev": true
     },
     "normalize-package-data": {
       "version": "2.5.0",
     },
     "normalize-package-data": {
       "version": "2.5.0",
       }
     },
     "npm-registry-fetch": {
       }
     },
     "npm-registry-fetch": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.3.tgz",
-      "integrity": "sha512-WGvUx0lkKFhu9MbiGFuT9nG2NpfQ+4dCJwRwwtK2HK5izJEvwDxMeUyqbuMS7N/OkpVCqDorV6rO5E4V9F8lJw==",
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz",
+      "integrity": "sha512-6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==",
       "dev": true,
       "requires": {
         "JSONStream": "^1.3.4",
       "dev": true,
       "requires": {
         "JSONStream": "^1.3.4",
           }
         },
         "safe-buffer": {
           }
         },
         "safe-buffer": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-          "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==",
+          "version": "5.2.1",
+          "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+          "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
           "dev": true
         },
         "yallist": {
           "dev": true
         },
         "yallist": {
             "which": "^1.2.9"
           }
         },
             "which": "^1.2.9"
           }
         },
+        "read-pkg": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
+          "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+          "dev": true,
+          "requires": {
+            "load-json-file": "^4.0.0",
+            "normalize-package-data": "^2.3.2",
+            "path-type": "^3.0.0"
+          }
+        },
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
         "semver": {
           "version": "5.7.1",
           "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
       "dev": true
     },
     "object-is": {
       "dev": true
     },
     "object-is": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
-      "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==",
-      "dev": true
+      "version": "1.1.2",
+      "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz",
+      "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
     },
     "object-keys": {
       "version": "1.1.1",
     },
     "object-keys": {
       "version": "1.1.1",
         "is-wsl": "^1.1.0"
       }
     },
         "is-wsl": "^1.1.0"
       }
     },
-    "optimist": {
-      "version": "0.6.1",
-      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
-      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
-      "dev": true,
-      "requires": {
-        "minimist": "1.2.5",
-        "wordwrap": "~0.0.2"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
-      }
-    },
     "optionator": {
       "version": "0.8.3",
       "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
     "optionator": {
       "version": "0.8.3",
       "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
         "os-tmpdir": "^1.0.0"
       }
     },
         "os-tmpdir": "^1.0.0"
       }
     },
+    "ospath": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
+      "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=",
+      "dev": true
+    },
     "p-defer": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
     "p-defer": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
         }
       }
     },
         }
       }
     },
+    "pend": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+      "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+      "dev": true
+    },
     "performance-now": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
     "performance-now": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
       "dev": true
     },
     "picomatch": {
       "dev": true
     },
     "picomatch": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
-      "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==",
+      "version": "2.2.2",
+      "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+      "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
       "dev": true
     },
     "pidtree": {
       "dev": true
     },
     "pidtree": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.0.tgz",
-      "integrity": "sha512-9CT4NFlDcosssyg8KVFltgokyKZIFjoBxw8CTGy+5F38Y1eQWrt8tRayiUOXE+zVKQnYu5BR8JjCtvK3BcnBhg==",
+      "version": "0.3.1",
+      "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz",
+      "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==",
       "dev": true
     },
     "pify": {
       "dev": true
     },
     "pify": {
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
         }
       }
     },
         }
       }
     },
+    "pkg-up": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
+      "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+      "dev": true,
+      "requires": {
+        "find-up": "^2.1.0"
+      }
+    },
     "pn": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
     "pn": {
       "version": "1.1.0",
       "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz",
       "dev": true
     },
     "portfinder": {
       "dev": true
     },
     "portfinder": {
-      "version": "1.0.25",
-      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz",
-      "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==",
+      "version": "1.0.26",
+      "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
+      "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==",
       "dev": true,
       "requires": {
         "async": "^2.6.2",
       "dev": true,
       "requires": {
         "async": "^2.6.2",
       }
     },
     "postcss-value-parser": {
       }
     },
     "postcss-value-parser": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
-      "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz",
+      "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==",
       "dev": true
     },
     "prelude-ls": {
       "dev": true
     },
     "prelude-ls": {
       "dev": true
     },
     "prettier": {
       "dev": true
     },
     "prettier": {
-      "version": "1.19.1",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
-      "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.2.tgz",
+      "integrity": "sha512-5xJQIPT8BraI7ZnaDwSbu5zLrB6vvi8hVV58yHQ+QK64qrY40dULy0HSRlQ2/2IdzeBpjhDkqdcFBnFeDEMVdg==",
+      "dev": true
+    },
+    "pretty-bytes": {
+      "version": "5.3.0",
+      "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz",
+      "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==",
       "dev": true
     },
     "pretty-format": {
       "dev": true
     },
     "pretty-format": {
-      "version": "25.1.0",
-      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz",
-      "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==",
+      "version": "25.5.0",
+      "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz",
+      "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "@jest/types": "^25.1.0",
+        "@jest/types": "^25.5.0",
         "ansi-regex": "^5.0.0",
         "ansi-styles": "^4.0.0",
         "react-is": "^16.12.0"
         "ansi-regex": "^5.0.0",
         "ansi-styles": "^4.0.0",
         "react-is": "^16.12.0"
           "dev": true
         },
         "cross-spawn": {
           "dev": true
         },
         "cross-spawn": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
-          "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==",
+          "version": "7.0.2",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
+          "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
           "dev": true,
           "requires": {
             "path-key": "^3.1.0",
           "dev": true,
           "requires": {
             "path-key": "^3.1.0",
           "dev": true
         },
         "p-limit": {
           "dev": true
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
         "genfun": "^5.0.0"
       }
     },
         "genfun": "^5.0.0"
       }
     },
-    "protractor": {
-      "version": "5.4.3",
-      "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.3.tgz",
-      "integrity": "sha512-7pMAolv8Ah1yJIqaorDTzACtn3gk7BamVKPTeO5lqIGOrfosjPgXFx/z1dqSI+m5EeZc2GMJHPr5DYlodujDNA==",
-      "dev": true,
-      "requires": {
-        "@types/q": "^0.0.32",
-        "@types/selenium-webdriver": "^3.0.0",
-        "blocking-proxy": "^1.0.0",
-        "browserstack": "^1.5.1",
-        "chalk": "^1.1.3",
-        "glob": "^7.0.3",
-        "jasmine": "2.8.0",
-        "jasminewd2": "^2.1.0",
-        "optimist": "~0.6.0",
-        "q": "1.4.1",
-        "saucelabs": "^1.5.0",
-        "selenium-webdriver": "3.6.0",
-        "source-map-support": "~0.4.0",
-        "webdriver-js-extender": "2.1.0",
-        "webdriver-manager": "^12.0.6"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "2.2.1",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-          "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-          "dev": true
-        },
-        "chalk": {
-          "version": "1.1.3",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^2.2.1",
-            "escape-string-regexp": "^1.0.2",
-            "has-ansi": "^2.0.0",
-            "strip-ansi": "^3.0.0",
-            "supports-color": "^2.0.0"
-          }
-        },
-        "del": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
-          "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
-          "dev": true,
-          "requires": {
-            "globby": "^5.0.0",
-            "is-path-cwd": "^1.0.0",
-            "is-path-in-cwd": "^1.0.0",
-            "object-assign": "^4.0.1",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0",
-            "rimraf": "^2.2.8"
-          }
-        },
-        "globby": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
-          "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
-          "dev": true,
-          "requires": {
-            "array-union": "^1.0.1",
-            "arrify": "^1.0.0",
-            "glob": "^7.0.3",
-            "object-assign": "^4.0.1",
-            "pify": "^2.0.0",
-            "pinkie-promise": "^2.0.0"
-          }
-        },
-        "is-path-cwd": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz",
-          "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=",
-          "dev": true
-        },
-        "is-path-in-cwd": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
-          "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
-          "dev": true,
-          "requires": {
-            "is-path-inside": "^1.0.0"
-          }
-        },
-        "is-path-inside": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
-          "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
-          "dev": true,
-          "requires": {
-            "path-is-inside": "^1.0.1"
-          }
-        },
-        "pify": {
-          "version": "2.3.0",
-          "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
-          "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
-          "dev": true
-        },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-          "dev": true
-        },
-        "source-map": {
-          "version": "0.5.7",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
-          "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
-          "dev": true
-        },
-        "source-map-support": {
-          "version": "0.4.18",
-          "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
-          "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
-          "dev": true,
-          "requires": {
-            "source-map": "^0.5.6"
-          }
-        },
-        "supports-color": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-          "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-          "dev": true
-        },
-        "webdriver-manager": {
-          "version": "12.1.7",
-          "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz",
-          "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==",
-          "dev": true,
-          "requires": {
-            "adm-zip": "^0.4.9",
-            "chalk": "^1.1.1",
-            "del": "^2.2.0",
-            "glob": "^7.0.3",
-            "ini": "^1.3.4",
-            "minimist": "1.2.5",
-            "q": "^1.4.1",
-            "request": "^2.87.0",
-            "rimraf": "^2.5.2",
-            "semver": "^5.3.0",
-            "xml2js": "^0.4.17"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.5"
-            }
-          }
-        }
-      }
-    },
-    "protractor-fail-fast": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/protractor-fail-fast/-/protractor-fail-fast-3.1.0.tgz",
-      "integrity": "sha512-OjuIFmY7hm5R/Msmioyg3aBevySpmpIgtm2TGUvMEqTzviPk/Fqd1HYmMjIQ+NzFMzrK+93LJa4civDvw1+hEg==",
-      "dev": true,
-      "requires": {
-        "jasmine-fail-fast": "~2.0.0"
-      }
-    },
-    "protractor-screenshoter-plugin": {
-      "version": "0.10.3",
-      "resolved": "https://registry.npmjs.org/protractor-screenshoter-plugin/-/protractor-screenshoter-plugin-0.10.3.tgz",
-      "integrity": "sha512-OF9kGe1rMxBQY4uXzXQUFT14EB83rz8DlDcxmH5HcOHPBpUhGh+Nwo7+K87w1LoLcTuGdG7Bz+/hGwoGguDfsA==",
-      "dev": true,
-      "requires": {
-        "circular-json": "^0.5.1",
-        "fs-extra": "^7.0.0",
-        "klaw-sync": "^6.0.0",
-        "lodash": "^4.17.11",
-        "mkdirp": "^0.5.1",
-        "moment": "^2.20.1",
-        "q": "^1.5.1",
-        "screenshoter-report-analyzer": "^0.6",
-        "uuid": "^3.1.0"
-      },
-      "dependencies": {
-        "fs-extra": {
-          "version": "7.0.1",
-          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
-          "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
-          "dev": true,
-          "requires": {
-            "graceful-fs": "^4.1.2",
-            "jsonfile": "^4.0.0",
-            "universalify": "^0.1.0"
-          }
-        },
-        "q": {
-          "version": "1.5.1",
-          "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
-          "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
-          "dev": true
-        }
-      }
-    },
-    "proxy-addr": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
-      "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
+    "proxy-addr": {
+      "version": "2.0.6",
+      "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+      "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
       "dev": true,
       "requires": {
         "forwarded": "~0.1.2",
       "dev": true,
       "requires": {
         "forwarded": "~0.1.2",
       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
       "dev": true
     },
       "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
       "dev": true
     },
+    "ps-tree": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+      "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+      "dev": true,
+      "requires": {
+        "event-stream": "=3.3.4"
+      }
+    },
     "pseudomap": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
       "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
     },
     "psl": {
     "pseudomap": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
       "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
     },
     "psl": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz",
-      "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==",
+      "version": "1.8.0",
+      "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+      "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
       "dev": true
     },
     "public-encrypt": {
       "dev": true
     },
     "public-encrypt": {
         "parse-asn1": "^5.0.0",
         "randombytes": "^2.0.1",
         "safe-buffer": "^5.1.2"
         "parse-asn1": "^5.0.0",
         "randombytes": "^2.0.1",
         "safe-buffer": "^5.1.2"
+      },
+      "dependencies": {
+        "bn.js": {
+          "version": "4.11.9",
+          "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz",
+          "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==",
+          "dev": true
+        }
       }
     },
     "pump": {
       }
     },
     "pump": {
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
       "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
     },
       "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
       "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
     },
-    "q": {
-      "version": "1.4.1",
-      "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
-      "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=",
-      "dev": true
-    },
     "qs": {
       "version": "6.5.2",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
     "qs": {
       "version": "6.5.2",
       "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
       "dev": true,
       "requires": {
         "buffer-equal": "0.0.1",
       "dev": true,
       "requires": {
         "buffer-equal": "0.0.1",
-        "minimist": "1.2.5",
+        "minimist": "^1.1.3",
         "through2": "^2.0.0"
         "through2": "^2.0.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
       }
     },
       }
     },
+    "ramda": {
+      "version": "0.26.1",
+      "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.26.1.tgz",
+      "integrity": "sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==",
+      "dev": true
+    },
     "randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
     "randombytes": {
       "version": "2.1.0",
       "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
       },
       "dependencies": {
         "ajv": {
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true
         },
         "schema-utils": {
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
       }
     },
     "react-is": {
       }
     },
     "react-is": {
-      "version": "16.13.0",
-      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.0.tgz",
-      "integrity": "sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==",
+      "version": "16.13.1",
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
       "dev": true
     },
     "read-cache": {
       "dev": true
     },
     "read-cache": {
       }
     },
     "read-pkg": {
       }
     },
     "read-pkg": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
-      "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+      "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "load-json-file": "^4.0.0",
-        "normalize-package-data": "^2.3.2",
-        "path-type": "^3.0.0"
+        "@types/normalize-package-data": "^2.4.0",
+        "normalize-package-data": "^2.5.0",
+        "parse-json": "^5.0.0",
+        "type-fest": "^0.6.0"
+      },
+      "dependencies": {
+        "parse-json": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
+          "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+          "dev": true,
+          "requires": {
+            "@babel/code-frame": "^7.0.0",
+            "error-ex": "^1.3.1",
+            "json-parse-better-errors": "^1.0.1",
+            "lines-and-columns": "^1.1.6"
+          }
+        },
+        "type-fest": {
+          "version": "0.6.0",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+          "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+          "dev": true
+        }
+      }
+    },
+    "read-pkg-up": {
+      "version": "7.0.1",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+      "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+      "dev": true,
+      "requires": {
+        "find-up": "^4.1.0",
+        "read-pkg": "^5.2.0",
+        "type-fest": "^0.8.1"
+      },
+      "dependencies": {
+        "find-up": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
+          }
+        },
+        "locate-path": {
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+          "dev": true,
+          "requires": {
+            "p-locate": "^4.1.0"
+          }
+        },
+        "p-limit": {
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+          "dev": true,
+          "requires": {
+            "p-try": "^2.0.0"
+          }
+        },
+        "p-locate": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+          "dev": true,
+          "requires": {
+            "p-limit": "^2.2.0"
+          }
+        },
+        "p-try": {
+          "version": "2.2.0",
+          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+          "dev": true
+        },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        },
+        "type-fest": {
+          "version": "0.8.1",
+          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+          "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+          "dev": true
+        }
       }
     },
     "readable-stream": {
       }
     },
     "readable-stream": {
       }
     },
     "readdirp": {
       }
     },
     "readdirp": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
-      "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
+      "version": "3.4.0",
+      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz",
+      "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "picomatch": "^2.0.7"
+        "picomatch": "^2.2.1"
       }
     },
     "realpath-native": {
       }
     },
     "realpath-native": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
-      "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
-      "dev": true,
-      "requires": {
-        "util.promisify": "^1.0.0"
-      }
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz",
+      "integrity": "sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==",
+      "dev": true
     },
     "rechoir": {
       "version": "0.6.2",
     },
     "rechoir": {
       "version": "0.6.2",
       "dev": true
     },
     "replace-in-file": {
       "dev": true
     },
     "replace-in-file": {
-      "version": "4.1.3",
-      "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-4.1.3.tgz",
-      "integrity": "sha512-x8uSfKKK/5YiJ8JYsNMwa1PJYvHfPdUABVXd21ro09Nh5BRZ5ATuACwrqCNpktwVqVbFTk/cIGFepeMqY0oX3g==",
+      "version": "5.0.2",
+      "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-5.0.2.tgz",
+      "integrity": "sha512-1Vc7Sbr/rTuHgU1PZuBb7tGsFx3D4NKdhV4BpEF2MuN/6+SoXcFtx+dZ1Zz+5Dq4k5x9js87Y+gXQYPTQ9ppkA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "chalk": "^2.4.2",
-        "glob": "^7.1.4",
-        "yargs": "^13.3.0"
+        "chalk": "^3.0.0",
+        "glob": "^7.1.6",
+        "yargs": "^15.0.2"
       },
       "dependencies": {
         "ansi-regex": {
       },
       "dependencies": {
         "ansi-regex": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
-          "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+          "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
           "dev": true
         },
           "dev": true
         },
+        "ansi-styles": {
+          "version": "4.2.1",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+          "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+          "dev": true,
+          "requires": {
+            "@types/color-name": "^1.1.1",
+            "color-convert": "^2.0.1"
+          }
+        },
         "camelcase": {
           "version": "5.3.1",
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
           "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
           "dev": true
         },
         "camelcase": {
           "version": "5.3.1",
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
           "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
           "dev": true
         },
+        "chalk": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
         "cliui": {
         "cliui": {
-          "version": "5.0.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
-          "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+          "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "string-width": "^3.1.0",
-            "strip-ansi": "^5.2.0",
-            "wrap-ansi": "^5.1.0"
+            "string-width": "^4.2.0",
+            "strip-ansi": "^6.0.0",
+            "wrap-ansi": "^6.2.0"
           }
         },
           }
         },
-        "emoji-regex": {
-          "version": "7.0.3",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
-          "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
-          "dev": true
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
         },
         "find-up": {
         },
         "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+          "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "locate-path": "^3.0.0"
+            "locate-path": "^5.0.0",
+            "path-exists": "^4.0.0"
           }
         },
         "get-caller-file": {
           }
         },
         "get-caller-file": {
             "path-is-absolute": "^1.0.0"
           }
         },
             "path-is-absolute": "^1.0.0"
           }
         },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true
+        },
         "is-fullwidth-code-point": {
         "is-fullwidth-code-point": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-          "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
           "dev": true
         },
         "locate-path": {
           "dev": true
         },
         "locate-path": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+          "version": "5.0.0",
+          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+          "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "p-locate": "^3.0.0",
-            "path-exists": "^3.0.0"
+            "p-locate": "^4.1.0"
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           }
         },
         "p-locate": {
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           }
         },
         "p-locate": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+          "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "p-limit": "^2.0.0"
+            "p-limit": "^2.2.0"
           }
         },
         "p-try": {
           }
         },
         "p-try": {
           "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
           "dev": true
         },
           "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
           "dev": true
         },
+        "path-exists": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+          "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+          "dev": true
+        },
         "require-main-filename": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
         "require-main-filename": {
           "version": "2.0.0",
           "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
           "dev": true
         },
         "string-width": {
           "dev": true
         },
         "string-width": {
-          "version": "3.1.0",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
-          "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+          "version": "4.2.0",
+          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+          "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "emoji-regex": "^7.0.1",
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^5.1.0"
+            "emoji-regex": "^8.0.0",
+            "is-fullwidth-code-point": "^3.0.0",
+            "strip-ansi": "^6.0.0"
           }
         },
         "strip-ansi": {
           }
         },
         "strip-ansi": {
-          "version": "5.2.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-          "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+          "version": "6.0.0",
+          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+          "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "ansi-regex": "^4.1.0"
+            "ansi-regex": "^5.0.0"
+          }
+        },
+        "supports-color": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+          "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+          "dev": true,
+          "requires": {
+            "has-flag": "^4.0.0"
           }
         },
         "wrap-ansi": {
           }
         },
         "wrap-ansi": {
-          "version": "5.1.0",
-          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
-          "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+          "version": "6.2.0",
+          "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+          "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "ansi-styles": "^3.2.0",
-            "string-width": "^3.0.0",
-            "strip-ansi": "^5.0.0"
+            "ansi-styles": "^4.0.0",
+            "string-width": "^4.1.0",
+            "strip-ansi": "^6.0.0"
           }
         },
         "y18n": {
           }
         },
         "y18n": {
           "dev": true
         },
         "yargs": {
           "dev": true
         },
         "yargs": {
-          "version": "13.3.2",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
-          "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+          "version": "15.3.1",
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+          "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "cliui": "^5.0.0",
-            "find-up": "^3.0.0",
+            "cliui": "^6.0.0",
+            "decamelize": "^1.2.0",
+            "find-up": "^4.1.0",
             "get-caller-file": "^2.0.1",
             "require-directory": "^2.1.1",
             "require-main-filename": "^2.0.0",
             "set-blocking": "^2.0.0",
             "get-caller-file": "^2.0.1",
             "require-directory": "^2.1.1",
             "require-main-filename": "^2.0.0",
             "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
+            "string-width": "^4.2.0",
             "which-module": "^2.0.0",
             "y18n": "^4.0.0",
             "which-module": "^2.0.0",
             "y18n": "^4.0.0",
-            "yargs-parser": "^13.1.2"
+            "yargs-parser": "^18.1.1"
           }
         },
         "yargs-parser": {
           }
         },
         "yargs-parser": {
-          "version": "13.1.2",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
-          "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
         "uuid": "^3.3.2"
       }
     },
         "uuid": "^3.3.2"
       }
     },
+    "request-progress": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+      "integrity": "sha1-TKdUCBx/7GP1BeT6qCWqBs1mnb4=",
+      "dev": true,
+      "requires": {
+        "throttleit": "^1.0.0"
+      }
+    },
     "request-promise-core": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
     "request-promise-core": {
       "version": "1.1.3",
       "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
       "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
     },
     "resolve": {
       "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
     },
     "resolve": {
-      "version": "1.15.1",
-      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
-      "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
+      "version": "1.17.0",
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
+      "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
       "dev": true,
       "requires": {
         "path-parse": "^1.0.6"
       "dev": true,
       "requires": {
         "path-parse": "^1.0.6"
       "dev": true
     },
     "run-async": {
       "dev": true
     },
     "run-async": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
-      "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
-      "dev": true,
-      "requires": {
-        "is-promise": "^2.1.0"
-      }
+      "version": "2.4.1",
+      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+      "dev": true
     },
     "run-queue": {
       "version": "1.0.3",
     },
     "run-queue": {
       "version": "1.0.3",
         "execa": "^1.0.0",
         "fb-watchman": "^2.0.0",
         "micromatch": "^3.1.4",
         "execa": "^1.0.0",
         "fb-watchman": "^2.0.0",
         "micromatch": "^3.1.4",
-        "minimist": "1.2.5",
+        "minimist": "^1.1.1",
         "walker": "~1.0.5"
       },
       "dependencies": {
         "walker": "~1.0.5"
       },
       "dependencies": {
             "pump": "^3.0.0"
           }
         },
             "pump": "^3.0.0"
           }
         },
-        "minimist": {
-          "version": "1.2.5"
-        },
         "normalize-path": {
           "version": "2.1.1",
           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
         "normalize-path": {
           "version": "2.1.1",
           "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
         }
       }
     },
         }
       }
     },
-    "saucelabs": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz",
-      "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==",
-      "dev": true,
-      "requires": {
-        "https-proxy-agent": "^2.2.1"
-      }
-    },
     "sax": {
       "version": "0.5.8",
       "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
     "sax": {
       "version": "0.5.8",
       "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
         "get-assigned-identifiers": "^1.1.0"
       }
     },
         "get-assigned-identifiers": "^1.1.0"
       }
     },
-    "screenshoter-report-analyzer": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/screenshoter-report-analyzer/-/screenshoter-report-analyzer-0.6.0.tgz",
-      "integrity": "sha1-Cm+I1fXRrBa2z3Ji7/ujH+5I7RI=",
-      "dev": true
-    },
     "select-hose": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
       "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
       "dev": true
     },
     "select-hose": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
       "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
       "dev": true
     },
-    "selenium-webdriver": {
-      "version": "3.6.0",
-      "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
-      "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
-      "dev": true,
-      "requires": {
-        "jszip": "^3.1.3",
-        "rimraf": "^2.5.4",
-        "tmp": "0.0.30",
-        "xml2js": "^0.4.17"
-      },
-      "dependencies": {
-        "tmp": {
-          "version": "0.0.30",
-          "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
-          "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
-          "dev": true,
-          "requires": {
-            "os-tmpdir": "~1.0.1"
-          }
-        }
-      }
-    },
     "selfsigned": {
       "version": "1.10.7",
       "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
     "selfsigned": {
       "version": "1.10.7",
       "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz",
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
     },
       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
     },
-    "set-immediate-shim": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
-      "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
-      "dev": true
-    },
     "set-value": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
     "set-value": {
       "version": "2.0.1",
       "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
       "optional": true
     },
     "signal-exit": {
       "optional": true
     },
     "signal-exit": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-      "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+      "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
     },
     "simplebar": {
     },
     "simplebar": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.1.0.tgz",
-      "integrity": "sha512-bdi1SleK1YOSnfeUjo5UQXt/79zNjsCJVEfzrm6photmGi2aU6x0l7rX4KAGcrtj5AwsWPBVXgDyYAqbbpnuRg==",
+      "version": "5.2.0",
+      "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.2.0.tgz",
+      "integrity": "sha512-CpVSINCQ/XAYABUdUAnVWHyjkBYoFu+s12IUrZgVNfXzILNXP0MP+5OaIBjylzjYxIE/rsuC1K50/xJldPGGpQ==",
       "requires": {
         "can-use-dom": "^0.1.0",
         "core-js": "^3.0.1",
       "requires": {
         "can-use-dom": "^0.1.0",
         "core-js": "^3.0.1",
       }
     },
     "simplebar-angular": {
       }
     },
     "simplebar-angular": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/simplebar-angular/-/simplebar-angular-2.0.1.tgz",
-      "integrity": "sha512-NLOkEhtBG/YmYSNlKJQhWQR1fdcgPwITqLL2fVPCWGrrdVcyIbq7LAkr6N/UpvspPJOfxdElk/NRuOom3E8Lpg==",
+      "version": "2.1.0",
+      "resolved": "https://registry.npmjs.org/simplebar-angular/-/simplebar-angular-2.1.0.tgz",
+      "integrity": "sha512-WntI9f0vKiPqh4Y/b0tyuzklzxCgEGBHV8Z07rSichbhPe8EAVt/QJQV9nyynWIBH1Mf4/ZAgoPfO00cff6Liw==",
       "requires": {
       "requires": {
-        "simplebar": "^5.0.7",
+        "simplebar": "^5.1.0",
         "tslib": "^1.9.0"
       }
     },
         "tslib": "^1.9.0"
       }
     },
       "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
       "dev": true
     },
       "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
       "dev": true
     },
+    "slice-ansi": {
+      "version": "0.0.4",
+      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
+      "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=",
+      "dev": true
+    },
     "smart-buffer": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
     "smart-buffer": {
       "version": "4.1.0",
       "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz",
       }
     },
     "spdx-exceptions": {
       }
     },
     "spdx-exceptions": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz",
-      "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==",
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+      "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
       "dev": true
     },
     "spdx-expression-parse": {
       "dev": true
     },
     "spdx-expression-parse": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
-      "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+      "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
       "dev": true,
       "requires": {
         "spdx-exceptions": "^2.1.0",
       "dev": true,
       "requires": {
         "spdx-exceptions": "^2.1.0",
       "dev": true
     },
     "spdy": {
       "dev": true
     },
     "spdy": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz",
-      "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==",
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+      "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
       "dev": true,
       "requires": {
         "debug": "^4.1.0",
       "dev": true,
       "requires": {
         "debug": "^4.1.0",
       "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
       "dev": true
     },
       "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==",
       "dev": true
     },
-    "static-eval": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz",
-      "integrity": "sha512-nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==",
+    "start-server-and-test": {
+      "version": "1.11.0",
+      "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-1.11.0.tgz",
+      "integrity": "sha512-FhkJFYL/lvbd0tKWvbxWNWjtFtq3Zpa09QDjA8EUH88AsgNL4hkAAKYNmbac+fFM8/GIZoJ1Mj4mm3SMI0X1bA==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "escodegen": "^1.11.1"
+        "bluebird": "3.7.2",
+        "check-more-types": "2.24.0",
+        "debug": "4.1.1",
+        "execa": "3.4.0",
+        "lazy-ass": "1.6.0",
+        "ps-tree": "1.2.0",
+        "wait-on": "4.0.0"
       },
       "dependencies": {
       },
       "dependencies": {
-        "escodegen": {
-          "version": "1.14.1",
-          "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
-          "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
+        "cross-spawn": {
+          "version": "7.0.2",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
+          "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "esprima": "^4.0.1",
-            "estraverse": "^4.2.0",
-            "esutils": "^2.0.2",
-            "optionator": "^0.8.1",
-            "source-map": "~0.6.1"
+            "path-key": "^3.1.0",
+            "shebang-command": "^2.0.0",
+            "which": "^2.0.1"
           }
         },
           }
         },
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+        "execa": {
+          "version": "3.4.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+          "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
           "dev": true,
           "dev": true,
-          "optional": true
+          "requires": {
+            "cross-spawn": "^7.0.0",
+            "get-stream": "^5.0.0",
+            "human-signals": "^1.1.1",
+            "is-stream": "^2.0.0",
+            "merge-stream": "^2.0.0",
+            "npm-run-path": "^4.0.0",
+            "onetime": "^5.1.0",
+            "p-finally": "^2.0.0",
+            "signal-exit": "^3.0.2",
+            "strip-final-newline": "^2.0.0"
+          }
+        },
+        "get-stream": {
+          "version": "5.1.0",
+          "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz",
+          "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
+          "dev": true,
+          "requires": {
+            "pump": "^3.0.0"
+          }
+        },
+        "is-stream": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz",
+          "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==",
+          "dev": true
+        },
+        "npm-run-path": {
+          "version": "4.0.1",
+          "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+          "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+          "dev": true,
+          "requires": {
+            "path-key": "^3.0.0"
+          }
+        },
+        "p-finally": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+          "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
+          "dev": true
+        },
+        "path-key": {
+          "version": "3.1.1",
+          "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+          "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+          "dev": true
+        },
+        "shebang-command": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+          "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+          "dev": true,
+          "requires": {
+            "shebang-regex": "^3.0.0"
+          }
+        },
+        "shebang-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+          "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+          "dev": true
+        },
+        "which": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+          "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+          "dev": true,
+          "requires": {
+            "isexe": "^2.0.0"
+          }
         }
       }
     },
         }
       }
     },
+    "static-eval": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz",
+      "integrity": "sha512-nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==",
+      "dev": true,
+      "requires": {
+        "escodegen": "^1.11.1"
+      }
+    },
     "static-extend": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
     "static-extend": {
       "version": "0.1.2",
       "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
       }
     },
     "static-module": {
       }
     },
     "static-module": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.3.tgz",
-      "integrity": "sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz",
+      "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==",
       "dev": true,
       "requires": {
         "acorn-node": "^1.3.0",
         "concat-stream": "~1.6.0",
         "convert-source-map": "^1.5.1",
         "duplexer2": "~0.1.4",
       "dev": true,
       "requires": {
         "acorn-node": "^1.3.0",
         "concat-stream": "~1.6.0",
         "convert-source-map": "^1.5.1",
         "duplexer2": "~0.1.4",
-        "escodegen": "~1.9.0",
+        "escodegen": "^1.11.1",
         "has": "^1.0.1",
         "has": "^1.0.1",
-        "magic-string": "^0.22.4",
+        "magic-string": "0.25.1",
         "merge-source-map": "1.0.4",
         "merge-source-map": "1.0.4",
-        "object-inspect": "~1.4.0",
+        "object-inspect": "^1.6.0",
         "readable-stream": "~2.3.3",
         "scope-analyzer": "^2.0.1",
         "shallow-copy": "~0.0.1",
         "readable-stream": "~2.3.3",
         "scope-analyzer": "^2.0.1",
         "shallow-copy": "~0.0.1",
-        "static-eval": "^2.0.2",
+        "static-eval": "^2.0.5",
         "through2": "~2.0.3"
       },
       "dependencies": {
         "magic-string": {
         "through2": "~2.0.3"
       },
       "dependencies": {
         "magic-string": {
-          "version": "0.22.5",
-          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
-          "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
+          "version": "0.25.1",
+          "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz",
+          "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "vlq": "^0.2.2"
+            "sourcemap-codec": "^1.4.1"
           }
         },
         "merge-source-map": {
           }
         },
         "merge-source-map": {
             "source-map": "^0.5.6"
           }
         },
             "source-map": "^0.5.6"
           }
         },
-        "object-inspect": {
-          "version": "1.4.1",
-          "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
-          "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==",
-          "dev": true
-        },
         "source-map": {
           "version": "0.5.7",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
         "source-map": {
           "version": "0.5.7",
           "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
         "es-abstract": "^1.17.0-next.1"
       }
     },
         "es-abstract": "^1.17.0-next.1"
       }
     },
+    "string.prototype.trimend": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
+      "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
+    },
     "string.prototype.trimleft": {
     "string.prototype.trimleft": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
-      "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
+      "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
+        "es-abstract": "^1.17.5",
+        "string.prototype.trimstart": "^1.0.0"
       }
     },
     "string.prototype.trimright": {
       }
     },
     "string.prototype.trimright": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
-      "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
+      "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
       "dev": true,
       "requires": {
         "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
+        "es-abstract": "^1.17.5",
+        "string.prototype.trimend": "^1.0.0"
       }
     },
       }
     },
-    "string_decoder": {
-      "version": "1.1.1",
+    "string.prototype.trimstart": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
+      "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
+      "dev": true,
+      "requires": {
+        "define-properties": "^1.1.3",
+        "es-abstract": "^1.17.5"
+      }
+    },
+    "string_decoder": {
+      "version": "1.1.1",
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
       "dev": true,
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
       "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
       "dev": true,
       },
       "dependencies": {
         "ajv": {
       },
       "dependencies": {
         "ajv": {
-          "version": "6.12.0",
-          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-          "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+          "version": "6.12.2",
+          "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+          "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true,
           "requires": {
             "fast-deep-equal": "^3.1.1",
           "dev": true
         },
         "schema-utils": {
           "dev": true
         },
         "schema-utils": {
-          "version": "2.6.5",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz",
-          "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==",
+          "version": "2.6.6",
+          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz",
+          "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
           "dev": true,
           "requires": {
             "ajv": "^6.12.0",
       }
     },
     "swagger-ui-dist": {
       }
     },
     "swagger-ui-dist": {
-      "version": "3.23.11",
-      "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.23.11.tgz",
-      "integrity": "sha512-ipENHHH/sqpngTpHXUwg55eAOZ7b2UVayUwwuWPA6nQSPhjBVXX4zOPpNKUwQIFOl3oIwVvZF7mqoxH7pMgVzA=="
+      "version": "3.25.0",
+      "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.25.0.tgz",
+      "integrity": "sha512-vwvJPPbdooTvDwLGzjIXinOXizDJJ6U1hxnJL3y6U3aL1d2MSXDmKg2139XaLBhsVZdnQJV2bOkX4reB+RXamg=="
     },
     "symbol-observable": {
       "version": "1.2.0",
     },
     "symbol-observable": {
       "version": "1.2.0",
       "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
       "dev": true
     },
       "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==",
       "dev": true
     },
+    "throttleit": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz",
+      "integrity": "sha1-nnhYNtr0Z0MUWlmEtiaNgoUorGw=",
+      "dev": true
+    },
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
     "through": {
       "version": "2.3.8",
       "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
       "dev": true,
       "requires": {
         "colors": "^1.0.3",
       "dev": true,
       "requires": {
         "colors": "^1.0.3",
-        "minimist": "1.2.5",
+        "minimist": "^1.2.0",
         "prompts": "^2.0.4",
         "request": "^2.88.0",
         "request-promise-native": "^1.0.7",
         "xliff": "^4.2.0"
         "prompts": "^2.0.4",
         "request": "^2.88.0",
         "request-promise-native": "^1.0.7",
         "xliff": "^4.2.0"
-      },
-      "dependencies": {
-        "minimist": {
-          "version": "1.2.5"
-        }
       }
     },
     "traverse": {
       }
     },
     "traverse": {
       "dev": true
     },
     "ts-jest": {
       "dev": true
     },
     "ts-jest": {
-      "version": "25.2.1",
-      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.2.1.tgz",
-      "integrity": "sha512-TnntkEEjuXq/Gxpw7xToarmHbAafgCaAzOpnajnFC6jI7oo1trMzAHA04eWpc3MhV6+yvhE8uUBAmN+teRJh0A==",
+      "version": "25.5.1",
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz",
+      "integrity": "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==",
       "dev": true,
       "requires": {
         "bs-logger": "0.x",
       "dev": true,
       "requires": {
         "bs-logger": "0.x",
         "json5": "2.x",
         "lodash.memoize": "4.x",
         "make-error": "1.x",
         "json5": "2.x",
         "lodash.memoize": "4.x",
         "make-error": "1.x",
+        "micromatch": "4.x",
         "mkdirp": "0.x",
         "mkdirp": "0.x",
-        "resolve": "1.x",
-        "semver": "^5.5",
-        "yargs-parser": "^16.1.0"
+        "semver": "6.x",
+        "yargs-parser": "18.x"
       },
       "dependencies": {
         "camelcase": {
       },
       "dependencies": {
         "camelcase": {
           "dev": true
         },
         "json5": {
           "dev": true
         },
         "json5": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
-          "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
+          "version": "2.1.3",
+          "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
+          "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
           "dev": true,
           "requires": {
           "dev": true,
           "requires": {
-            "minimist": "1.2.5"
-          },
-          "dependencies": {
-            "minimist": {
-              "version": "1.2.5"
-            }
+            "minimist": "^1.2.5"
           }
         },
           }
         },
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-          "dev": true
+        "micromatch": {
+          "version": "4.0.2",
+          "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+          "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+          "dev": true,
+          "requires": {
+            "braces": "^3.0.1",
+            "picomatch": "^2.0.5"
+          }
         },
         "yargs-parser": {
         },
         "yargs-parser": {
-          "version": "16.1.0",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz",
-          "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==",
+          "version": "18.1.3",
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+          "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
           "dev": true,
           "requires": {
             "camelcase": "^5.0.0",
       }
     },
     "ts-node": {
       }
     },
     "ts-node": {
-      "version": "8.4.1",
-      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz",
-      "integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==",
+      "version": "8.8.1",
+      "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.8.1.tgz",
+      "integrity": "sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg==",
       "dev": true,
       "requires": {
         "arg": "^4.1.0",
         "diff": "^4.0.1",
         "make-error": "^1.1.1",
         "source-map-support": "^0.5.6",
       "dev": true,
       "requires": {
         "arg": "^4.1.0",
         "diff": "^4.0.1",
         "make-error": "^1.1.1",
         "source-map-support": "^0.5.6",
-        "yn": "^3.0.0"
+        "yn": "3.1.1"
       }
     },
     "ts-simple-ast": {
       }
     },
     "ts-simple-ast": {
       }
     },
     "tslib": {
       }
     },
     "tslib": {
-      "version": "1.10.0",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
-      "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
+      "version": "1.11.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+      "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA=="
     },
     "tslint": {
     },
     "tslint": {
-      "version": "5.20.0",
-      "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz",
-      "integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==",
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.0.tgz",
+      "integrity": "sha512-fXjYd/61vU6da04E505OZQGb2VCN2Mq3doeWcOIryuG+eqdmFUXTYVwdhnbEu2k46LNLgUYt9bI5icQze/j0bQ==",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
       "dev": true,
       "requires": {
         "@babel/code-frame": "^7.0.0",
         "mkdirp": "^0.5.1",
         "resolve": "^1.3.2",
         "semver": "^5.3.0",
         "mkdirp": "^0.5.1",
         "resolve": "^1.3.2",
         "semver": "^5.3.0",
-        "tslib": "^1.8.0",
+        "tslib": "^1.10.0",
         "tsutils": "^2.29.0"
       },
       "dependencies": {
         "tsutils": "^2.29.0"
       },
       "dependencies": {
       "dev": true
     },
     "uglify-js": {
       "dev": true
     },
     "uglify-js": {
-      "version": "3.8.0",
-      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.0.tgz",
-      "integrity": "sha512-ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==",
+      "version": "3.9.3",
+      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.3.tgz",
+      "integrity": "sha512-r5ImcL6QyzQGVimQoov3aL2ZScywrOgBXGndbWrdehKoSvGe/RmiE5Jpw/v+GvxODt6l2tpBXwA7n+qZVlHBMA==",
       "dev": true,
       "optional": true,
       "requires": {
       "dev": true,
       "optional": true,
       "requires": {
-        "commander": "~2.20.3",
-        "source-map": "~0.6.1"
-      },
-      "dependencies": {
-        "source-map": {
-          "version": "0.6.1",
-          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-          "dev": true,
-          "optional": true
-        }
+        "commander": "~2.20.3"
       }
     },
     "unc-path-regex": {
       }
     },
     "unc-path-regex": {
         }
       }
     },
         }
       }
     },
+    "untildify": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+      "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+      "dev": true
+    },
     "upath": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
     "upath": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
         "object.getownpropertydescriptors": "^2.0.3"
       }
     },
         "object.getownpropertydescriptors": "^2.0.3"
       }
     },
-    "util.promisify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
-      "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.2",
-        "has-symbols": "^1.0.1",
-        "object.getownpropertydescriptors": "^2.1.0"
-      }
-    },
     "utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
     "utils-merge": {
       "version": "1.0.1",
       "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
       "dev": true
     },
     "v8-to-istanbul": {
       "dev": true
     },
     "v8-to-istanbul": {
-      "version": "4.1.2",
-      "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.2.tgz",
-      "integrity": "sha512-G9R+Hpw0ITAmPSr47lSlc5A1uekSYzXxTMlFxso2xoffwo4jQnzbv1p9yXIinO8UMZKfAFewaCHwWvnH4Jb4Ug==",
+      "version": "4.1.4",
+      "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz",
+      "integrity": "sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==",
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "^2.0.1",
       "dev": true,
       "requires": {
         "@types/istanbul-lib-coverage": "^2.0.1",
       "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==",
       "dev": true
     },
       "integrity": "sha512-W+1+N/hdzLpQZEcvz79n2IgUE9pfx6JLdHh3Kh8RGvLL8P1LdJVQmi2OsDcLdY4QVID4OUy+FPelyerX0nJxIQ==",
       "dev": true
     },
-    "vlq": {
-      "version": "0.2.3",
-      "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
-      "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
-      "dev": true
-    },
     "vm-browserify": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
     "vm-browserify": {
       "version": "1.1.2",
       "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
         "xml-name-validator": "^3.0.0"
       }
     },
         "xml-name-validator": "^3.0.0"
       }
     },
+    "wait-on": {
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-4.0.0.tgz",
+      "integrity": "sha512-QrW3J8LzS5ADPfD9Rx5S6KJck66xkqyiFKQs9jmUTkIhiEOmkzU7WRZc+MjsnmkrgjitS2xQ4bb13hnlQnKBUQ==",
+      "dev": true,
+      "requires": {
+        "@hapi/joi": "^16.1.8",
+        "lodash": "^4.17.15",
+        "minimist": "^1.2.0",
+        "request": "^2.88.0",
+        "request-promise-native": "^1.0.8",
+        "rxjs": "^6.5.4"
+      }
+    },
     "walker": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
     "walker": {
       "version": "1.0.7",
       "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz",
       }
     },
     "watchpack": {
       }
     },
     "watchpack": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
-      "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+      "version": "1.7.2",
+      "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz",
+      "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==",
       "dev": true,
       "requires": {
       "dev": true,
       "requires": {
-        "chokidar": "^2.0.2",
+        "chokidar": "^3.4.0",
         "graceful-fs": "^4.1.2",
         "graceful-fs": "^4.1.2",
-        "neo-async": "^2.5.0"
+        "neo-async": "^2.5.0",
+        "watchpack-chokidar2": "^2.0.0"
+      }
+    },
+    "watchpack-chokidar2": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz",
+      "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==",
+      "dev": true,
+      "optional": true,
+      "requires": {
+        "chokidar": "^2.1.8"
       },
       "dependencies": {
         "anymatch": {
       },
       "dependencies": {
         "anymatch": {
           "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
           "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
           "dev": true,
           "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
           "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
           "dev": true,
+          "optional": true,
           "requires": {
             "micromatch": "^3.1.4",
             "normalize-path": "^2.1.1"
           "requires": {
             "micromatch": "^3.1.4",
             "normalize-path": "^2.1.1"
               "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
               "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
               "dev": true,
               "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
               "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
               "dev": true,
+              "optional": true,
               "requires": {
                 "remove-trailing-separator": "^1.0.1"
               }
               "requires": {
                 "remove-trailing-separator": "^1.0.1"
               }
           "version": "1.13.1",
           "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
           "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
           "version": "1.13.1",
           "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
           "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "braces": {
           "version": "2.3.2",
           "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
           "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
           "dev": true,
         },
         "braces": {
           "version": "2.3.2",
           "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
           "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
           "dev": true,
+          "optional": true,
           "requires": {
             "arr-flatten": "^1.1.0",
             "array-unique": "^0.3.2",
           "requires": {
             "arr-flatten": "^1.1.0",
             "array-unique": "^0.3.2",
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
           "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
           "dev": true,
           "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
           "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
           "dev": true,
+          "optional": true,
           "requires": {
             "anymatch": "^2.0.0",
             "async-each": "^1.0.1",
           "requires": {
             "anymatch": "^2.0.0",
             "async-each": "^1.0.1",
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
           "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
           "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-extendable": "^0.1.0"
           }
           "requires": {
             "is-extendable": "^0.1.0"
           }
           "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
           "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
           "dev": true,
           "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
           "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
           "dev": true,
+          "optional": true,
           "requires": {
             "extend-shallow": "^2.0.1",
             "is-number": "^3.0.0",
           "requires": {
             "extend-shallow": "^2.0.1",
             "is-number": "^3.0.0",
         "fsevents": {
           "dev": true,
           "optional": true,
         "fsevents": {
           "dev": true,
           "optional": true,
-          "requires": {
-            "node-pre-gyp": "*"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "3.2.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "^2.1.1"
-              }
-            },
-            "deep-extend": {
-              "version": "0.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.6.0"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.24",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": ">= 2.1.2 < 3"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "dev": true,
-              "optional": true,
-              "version": "1.2.5"
-            },
-            "minipass": {
-              "version": "2.9.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.3.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.9.0"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "1.2.5"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "ms": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.14.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.1",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.2.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4.4.2"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "npm-normalize-package-bin": "^1.0.1"
-              }
-            },
-            "npm-normalize-package-bin": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.4.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "1.2.5",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.1.3"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "~5.1.0"
-              }
-            },
-            "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.13",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.1.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.8.6",
-                "minizlib": "^1.2.1",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.3"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "string-width": "^1.0.2 || 2"
-              }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "yallist": {
-              "version": "3.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            }
-          },
-          "version": "2.1.2"
-        },
-        "is-binary-path": {
-          "version": "1.0.1",
-          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
-          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
-          "dev": true,
+          "version": "2.1.2"
+        },
+        "is-binary-path": {
+          "version": "1.0.1",
+          "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+          "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
+          "dev": true,
+          "optional": true,
           "requires": {
             "binary-extensions": "^1.0.0"
           }
           "requires": {
             "binary-extensions": "^1.0.0"
           }
           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
           "dev": true,
           "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
           "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
           "dev": true,
+          "optional": true,
           "requires": {
             "kind-of": "^3.0.2"
           }
           "requires": {
             "kind-of": "^3.0.2"
           }
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-buffer": "^1.1.5"
           }
           "requires": {
             "is-buffer": "^1.1.5"
           }
           "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
           "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
           "dev": true,
           "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
           "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
           "dev": true,
+          "optional": true,
           "requires": {
             "graceful-fs": "^4.1.11",
             "micromatch": "^3.1.10",
           "requires": {
             "graceful-fs": "^4.1.11",
             "micromatch": "^3.1.10",
           "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
           "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
           "dev": true,
           "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
           "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=",
           "dev": true,
+          "optional": true,
           "requires": {
             "is-number": "^3.0.0",
             "repeat-string": "^1.6.1"
           "requires": {
             "is-number": "^3.0.0",
             "repeat-string": "^1.6.1"
         "minimalistic-assert": "^1.0.0"
       }
     },
         "minimalistic-assert": "^1.0.0"
       }
     },
-    "webdriver-js-extender": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz",
-      "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==",
-      "dev": true,
-      "requires": {
-        "@types/selenium-webdriver": "^3.0.0",
-        "selenium-webdriver": "^3.0.1"
-      }
-    },
     "webidl-conversions": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
     "webidl-conversions": {
       "version": "4.0.2",
       "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
         "range-parser": "^1.2.1",
         "webpack-log": "^2.0.0"
       },
         "range-parser": "^1.2.1",
         "webpack-log": "^2.0.0"
       },
-      "dependencies": {
-        "mime": {
-          "version": "2.4.4",
-          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz",
-          "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==",
-          "dev": true
-        }
-      }
-    },
-    "webpack-dev-server": {
-      "version": "3.9.0",
-      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz",
-      "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==",
-      "dev": true,
-      "requires": {
-        "ansi-html": "0.0.7",
-        "bonjour": "^3.5.0",
-        "chokidar": "^2.1.8",
-        "compression": "^1.7.4",
-        "connect-history-api-fallback": "^1.6.0",
-        "debug": "^4.1.1",
-        "del": "^4.1.1",
-        "express": "^4.17.1",
-        "html-entities": "^1.2.1",
-        "http-proxy-middleware": "0.19.1",
-        "import-local": "^2.0.0",
-        "internal-ip": "^4.3.0",
-        "ip": "^1.1.5",
-        "is-absolute-url": "^3.0.3",
-        "killable": "^1.0.1",
-        "loglevel": "^1.6.4",
-        "opn": "^5.5.0",
-        "p-retry": "^3.0.1",
-        "portfinder": "^1.0.25",
-        "schema-utils": "^1.0.0",
-        "selfsigned": "^1.10.7",
-        "semver": "^6.3.0",
-        "serve-index": "^1.9.1",
-        "sockjs": "0.3.19",
-        "sockjs-client": "1.4.0",
-        "spdy": "^4.0.1",
-        "strip-ansi": "^3.0.1",
-        "supports-color": "^6.1.0",
-        "url": "^0.11.0",
-        "webpack-dev-middleware": "^3.7.2",
-        "webpack-log": "^2.0.0",
-        "ws": "^6.2.1",
-        "yargs": "12.0.5"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "anymatch": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
-          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
-          "dev": true,
-          "requires": {
-            "micromatch": "^3.1.4",
-            "normalize-path": "^2.1.1"
-          },
-          "dependencies": {
-            "normalize-path": {
-              "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
-              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
-              "dev": true,
-              "requires": {
-                "remove-trailing-separator": "^1.0.1"
-              }
-            }
-          }
-        },
-        "binary-extensions": {
-          "version": "1.13.1",
-          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
-          "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
-          "dev": true
-        },
-        "braces": {
-          "version": "2.3.2",
-          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
-          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
-          "dev": true,
-          "requires": {
-            "arr-flatten": "^1.1.0",
-            "array-unique": "^0.3.2",
-            "extend-shallow": "^2.0.1",
-            "fill-range": "^4.0.0",
-            "isobject": "^3.0.1",
-            "repeat-element": "^1.1.2",
-            "snapdragon": "^0.8.1",
-            "snapdragon-node": "^2.0.1",
-            "split-string": "^3.0.2",
-            "to-regex": "^3.0.1"
-          }
-        },
-        "camelcase": {
-          "version": "5.3.1",
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-          "dev": true
-        },
-        "chokidar": {
-          "version": "2.1.8",
-          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
-          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
-          "dev": true,
-          "requires": {
-            "anymatch": "^2.0.0",
-            "async-each": "^1.0.1",
-            "braces": "^2.3.2",
-            "fsevents": "2.1.2",
-            "glob-parent": "^3.1.0",
-            "inherits": "^2.0.3",
-            "is-binary-path": "^1.0.0",
-            "is-glob": "^4.0.0",
-            "normalize-path": "^3.0.0",
-            "path-is-absolute": "^1.0.0",
-            "readdirp": "^2.2.1",
-            "upath": "^1.1.1"
-          },
-          "dependencies": {
-            "fsevents": {
-              "version": "2.1.2"
-            }
-          }
-        },
-        "cliui": {
-          "version": "4.1.0",
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
-          "dev": true,
-          "requires": {
-            "string-width": "^2.1.1",
-            "strip-ansi": "^4.0.0",
-            "wrap-ansi": "^2.0.0"
-          },
-          "dependencies": {
-            "strip-ansi": {
-              "version": "4.0.0",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-              "dev": true,
-              "requires": {
-                "ansi-regex": "^3.0.0"
-              }
-            }
-          }
-        },
-        "cross-spawn": {
-          "version": "6.0.5",
-          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-          "dev": true,
-          "requires": {
-            "nice-try": "^1.0.4",
-            "path-key": "^2.0.1",
-            "semver": "^5.5.0",
-            "shebang-command": "^1.2.0",
-            "which": "^1.2.9"
-          },
-          "dependencies": {
-            "semver": {
-              "version": "5.7.1",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-              "dev": true
-            }
-          }
-        },
-        "execa": {
-          "version": "1.0.0",
-          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-          "dev": true,
-          "requires": {
-            "cross-spawn": "^6.0.0",
-            "get-stream": "^4.0.0",
-            "is-stream": "^1.1.0",
-            "npm-run-path": "^2.0.0",
-            "p-finally": "^1.0.0",
-            "signal-exit": "^3.0.0",
-            "strip-eof": "^1.0.0"
-          }
-        },
-        "extend-shallow": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
-          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
-          "dev": true,
-          "requires": {
-            "is-extendable": "^0.1.0"
-          }
-        },
-        "fill-range": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
-          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
-          "dev": true,
-          "requires": {
-            "extend-shallow": "^2.0.1",
-            "is-number": "^3.0.0",
-            "repeat-string": "^1.6.1",
-            "to-regex-range": "^2.1.0"
-          }
-        },
-        "find-up": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-          "dev": true,
-          "requires": {
-            "locate-path": "^3.0.0"
-          }
-        },
-        "fsevents": {
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "node-pre-gyp": "*"
-          },
-          "dependencies": {
-            "abbrev": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ansi-regex": {
-              "version": "2.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "aproba": {
-              "version": "1.2.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "are-we-there-yet": {
-              "version": "1.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^2.0.6"
-              }
-            },
-            "balanced-match": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "brace-expansion": {
-              "version": "1.1.11",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-              }
-            },
-            "chownr": {
-              "version": "1.1.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "code-point-at": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "concat-map": {
-              "version": "0.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "console-control-strings": {
-              "version": "1.1.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "core-util-is": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "debug": {
-              "version": "3.2.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ms": "^2.1.1"
-              }
-            },
-            "deep-extend": {
-              "version": "0.6.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "delegates": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "detect-libc": {
-              "version": "1.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "fs-minipass": {
-              "version": "1.2.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.6.0"
-              }
-            },
-            "fs.realpath": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "gauge": {
-              "version": "2.7.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "aproba": "^1.0.3",
-                "console-control-strings": "^1.0.0",
-                "has-unicode": "^2.0.0",
-                "object-assign": "^4.1.0",
-                "signal-exit": "^3.0.0",
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wide-align": "^1.1.0"
-              }
-            },
-            "glob": {
-              "version": "7.1.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-              }
-            },
-            "has-unicode": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "iconv-lite": {
-              "version": "0.4.24",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safer-buffer": ">= 2.1.2 < 3"
-              }
-            },
-            "ignore-walk": {
-              "version": "3.0.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimatch": "^3.0.4"
-              }
-            },
-            "inflight": {
-              "version": "1.0.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-              }
-            },
-            "inherits": {
-              "version": "2.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "ini": {
-              "version": "1.3.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "is-fullwidth-code-point": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "number-is-nan": "^1.0.0"
-              }
-            },
-            "isarray": {
-              "version": "1.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "minimatch": {
-              "version": "3.0.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "brace-expansion": "^1.1.7"
-              }
-            },
-            "minimist": {
-              "dev": true,
-              "optional": true,
-              "version": "1.2.5"
-            },
-            "minipass": {
-              "version": "2.9.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.0"
-              }
-            },
-            "minizlib": {
-              "version": "1.3.3",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minipass": "^2.9.0"
-              }
-            },
-            "mkdirp": {
-              "version": "0.5.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "minimist": "1.2.5"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "ms": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "needle": {
-              "version": "2.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "debug": "^3.2.6",
-                "iconv-lite": "^0.4.4",
-                "sax": "^1.2.4"
-              }
-            },
-            "node-pre-gyp": {
-              "version": "0.14.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "detect-libc": "^1.0.2",
-                "mkdirp": "^0.5.1",
-                "needle": "^2.2.1",
-                "nopt": "^4.0.1",
-                "npm-packlist": "^1.1.6",
-                "npmlog": "^4.0.2",
-                "rc": "^1.2.7",
-                "rimraf": "^2.6.1",
-                "semver": "^5.3.0",
-                "tar": "^4.4.2"
-              }
-            },
-            "nopt": {
-              "version": "4.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "abbrev": "1",
-                "osenv": "^0.1.4"
-              }
-            },
-            "npm-bundled": {
-              "version": "1.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "npm-normalize-package-bin": "^1.0.1"
-              }
-            },
-            "npm-normalize-package-bin": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "npm-packlist": {
-              "version": "1.4.7",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ignore-walk": "^3.0.1",
-                "npm-bundled": "^1.0.1"
-              }
-            },
-            "npmlog": {
-              "version": "4.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "are-we-there-yet": "~1.1.2",
-                "console-control-strings": "~1.1.0",
-                "gauge": "~2.7.3",
-                "set-blocking": "~2.0.0"
-              }
-            },
-            "number-is-nan": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "object-assign": {
-              "version": "4.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "once": {
-              "version": "1.4.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "wrappy": "1"
-              }
-            },
-            "os-homedir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "os-tmpdir": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "osenv": {
-              "version": "0.1.5",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "os-homedir": "^1.0.0",
-                "os-tmpdir": "^1.0.0"
-              }
-            },
-            "path-is-absolute": {
-              "version": "1.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "process-nextick-args": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "rc": {
-              "version": "1.2.8",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "deep-extend": "^0.6.0",
-                "ini": "~1.3.0",
-                "minimist": "1.2.5",
-                "strip-json-comments": "~2.0.1"
-              },
-              "dependencies": {
-                "minimist": {
-                  "version": "1.2.5"
-                }
-              }
-            },
-            "readable-stream": {
-              "version": "2.3.6",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.3",
-                "isarray": "~1.0.0",
-                "process-nextick-args": "~2.0.0",
-                "safe-buffer": "~5.1.1",
-                "string_decoder": "~1.1.1",
-                "util-deprecate": "~1.0.1"
-              }
-            },
-            "rimraf": {
-              "version": "2.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "glob": "^7.1.3"
-              }
-            },
-            "safe-buffer": {
-              "version": "5.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "safer-buffer": {
-              "version": "2.1.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "sax": {
-              "version": "1.2.4",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "semver": {
-              "version": "5.7.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "set-blocking": {
-              "version": "2.0.0",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "signal-exit": {
-              "version": "3.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "string-width": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-              }
-            },
-            "string_decoder": {
-              "version": "1.1.1",
-              "bundled": true,
+      "dependencies": {
+        "mime": {
+          "version": "2.4.5",
+          "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.5.tgz",
+          "integrity": "sha512-3hQhEUF027BuxZjQA3s7rIv/7VCQPa27hN9u9g87sEkWaKwQPuXOkVKtOeiyUrnWqTDiOs8Ed2rwg733mB0R5w==",
+          "dev": true
+        }
+      }
+    },
+    "webpack-dev-server": {
+      "version": "3.9.0",
+      "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz",
+      "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==",
+      "dev": true,
+      "requires": {
+        "ansi-html": "0.0.7",
+        "bonjour": "^3.5.0",
+        "chokidar": "^2.1.8",
+        "compression": "^1.7.4",
+        "connect-history-api-fallback": "^1.6.0",
+        "debug": "^4.1.1",
+        "del": "^4.1.1",
+        "express": "^4.17.1",
+        "html-entities": "^1.2.1",
+        "http-proxy-middleware": "0.19.1",
+        "import-local": "^2.0.0",
+        "internal-ip": "^4.3.0",
+        "ip": "^1.1.5",
+        "is-absolute-url": "^3.0.3",
+        "killable": "^1.0.1",
+        "loglevel": "^1.6.4",
+        "opn": "^5.5.0",
+        "p-retry": "^3.0.1",
+        "portfinder": "^1.0.25",
+        "schema-utils": "^1.0.0",
+        "selfsigned": "^1.10.7",
+        "semver": "^6.3.0",
+        "serve-index": "^1.9.1",
+        "sockjs": "0.3.19",
+        "sockjs-client": "1.4.0",
+        "spdy": "^4.0.1",
+        "strip-ansi": "^3.0.1",
+        "supports-color": "^6.1.0",
+        "url": "^0.11.0",
+        "webpack-dev-middleware": "^3.7.2",
+        "webpack-log": "^2.0.0",
+        "ws": "^6.2.1",
+        "yargs": "12.0.5"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+          "dev": true
+        },
+        "anymatch": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+          "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+          "dev": true,
+          "requires": {
+            "micromatch": "^3.1.4",
+            "normalize-path": "^2.1.1"
+          },
+          "dependencies": {
+            "normalize-path": {
+              "version": "2.1.1",
+              "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+              "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
               "dev": true,
               "dev": true,
-              "optional": true,
               "requires": {
               "requires": {
-                "safe-buffer": "~5.1.0"
+                "remove-trailing-separator": "^1.0.1"
               }
               }
-            },
+            }
+          }
+        },
+        "binary-extensions": {
+          "version": "1.13.1",
+          "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+          "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+          "dev": true
+        },
+        "braces": {
+          "version": "2.3.2",
+          "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+          "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+          "dev": true,
+          "requires": {
+            "arr-flatten": "^1.1.0",
+            "array-unique": "^0.3.2",
+            "extend-shallow": "^2.0.1",
+            "fill-range": "^4.0.0",
+            "isobject": "^3.0.1",
+            "repeat-element": "^1.1.2",
+            "snapdragon": "^0.8.1",
+            "snapdragon-node": "^2.0.1",
+            "split-string": "^3.0.2",
+            "to-regex": "^3.0.1"
+          }
+        },
+        "camelcase": {
+          "version": "5.3.1",
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+          "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+          "dev": true
+        },
+        "chokidar": {
+          "version": "2.1.8",
+          "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+          "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+          "dev": true,
+          "requires": {
+            "anymatch": "^2.0.0",
+            "async-each": "^1.0.1",
+            "braces": "^2.3.2",
+            "fsevents": "2.1.2",
+            "glob-parent": "^3.1.0",
+            "inherits": "^2.0.3",
+            "is-binary-path": "^1.0.0",
+            "is-glob": "^4.0.0",
+            "normalize-path": "^3.0.0",
+            "path-is-absolute": "^1.0.0",
+            "readdirp": "^2.2.1",
+            "upath": "^1.1.1"
+          },
+          "dependencies": {
+            "fsevents": {
+              "version": "2.1.2"
+            }
+          }
+        },
+        "cliui": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+          "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+          "dev": true,
+          "requires": {
+            "string-width": "^2.1.1",
+            "strip-ansi": "^4.0.0",
+            "wrap-ansi": "^2.0.0"
+          },
+          "dependencies": {
             "strip-ansi": {
             "strip-ansi": {
-              "version": "3.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "ansi-regex": "^2.0.0"
-              }
-            },
-            "strip-json-comments": {
-              "version": "2.0.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "tar": {
-              "version": "4.4.13",
-              "bundled": true,
-              "dev": true,
-              "optional": true,
-              "requires": {
-                "chownr": "^1.1.1",
-                "fs-minipass": "^1.2.5",
-                "minipass": "^2.8.6",
-                "minizlib": "^1.2.1",
-                "mkdirp": "^0.5.0",
-                "safe-buffer": "^5.1.2",
-                "yallist": "^3.0.3"
-              }
-            },
-            "util-deprecate": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "wide-align": {
-              "version": "1.1.3",
-              "bundled": true,
+              "version": "4.0.0",
+              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+              "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
               "dev": true,
               "dev": true,
-              "optional": true,
               "requires": {
               "requires": {
-                "string-width": "^1.0.2 || 2"
+                "ansi-regex": "^3.0.0"
               }
               }
-            },
-            "wrappy": {
-              "version": "1.0.2",
-              "bundled": true,
-              "dev": true,
-              "optional": true
-            },
-            "yallist": {
-              "version": "3.1.1",
-              "bundled": true,
-              "dev": true,
-              "optional": true
             }
             }
+          }
+        },
+        "cross-spawn": {
+          "version": "6.0.5",
+          "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+          "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
+          "dev": true,
+          "requires": {
+            "nice-try": "^1.0.4",
+            "path-key": "^2.0.1",
+            "semver": "^5.5.0",
+            "shebang-command": "^1.2.0",
+            "which": "^1.2.9"
           },
           },
+          "dependencies": {
+            "semver": {
+              "version": "5.7.1",
+              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+              "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+              "dev": true
+            }
+          }
+        },
+        "execa": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+          "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+          "dev": true,
+          "requires": {
+            "cross-spawn": "^6.0.0",
+            "get-stream": "^4.0.0",
+            "is-stream": "^1.1.0",
+            "npm-run-path": "^2.0.0",
+            "p-finally": "^1.0.0",
+            "signal-exit": "^3.0.0",
+            "strip-eof": "^1.0.0"
+          }
+        },
+        "extend-shallow": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+          "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+          "dev": true,
+          "requires": {
+            "is-extendable": "^0.1.0"
+          }
+        },
+        "fill-range": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+          "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=",
+          "dev": true,
+          "requires": {
+            "extend-shallow": "^2.0.1",
+            "is-number": "^3.0.0",
+            "repeat-string": "^1.6.1",
+            "to-regex-range": "^2.1.0"
+          }
+        },
+        "find-up": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+          "dev": true,
+          "requires": {
+            "locate-path": "^3.0.0"
+          }
+        },
+        "fsevents": {
+          "dev": true,
+          "optional": true,
           "version": "2.1.2"
         },
         "get-stream": {
           "version": "2.1.2"
         },
         "get-stream": {
           }
         },
         "p-limit": {
           }
         },
         "p-limit": {
-          "version": "2.2.2",
-          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+          "version": "2.3.0",
+          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+          "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
           "dev": true,
           "requires": {
             "p-try": "^2.0.0"
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
     },
     "windows-release": {
       "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
     },
     "windows-release": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.2.0.tgz",
-      "integrity": "sha512-QTlz2hKLrdqukrsapKsINzqMgOUpQW268eJ0OaOpJN32h272waxR9fkB9VoWRtK7uKHG5EHJcTXQBD8XZVJkFA==",
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz",
+      "integrity": "sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==",
       "dev": true,
       "requires": {
         "execa": "^1.0.0"
       "dev": true,
       "requires": {
         "execa": "^1.0.0"
       "dev": true
     },
     "wordwrap": {
       "dev": true
     },
     "wordwrap": {
-      "version": "0.0.3",
-      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
-      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+      "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
       "dev": true
     },
     "worker-farm": {
       "dev": true
     },
     "worker-farm": {
       "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
       "dev": true
     },
       "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
       "dev": true
     },
-    "xml2js": {
-      "version": "0.4.23",
-      "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
-      "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
-      "dev": true,
-      "requires": {
-        "sax": ">=0.6.0",
-        "xmlbuilder": "~11.0.0"
-      },
-      "dependencies": {
-        "sax": {
-          "version": "1.2.4",
-          "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-          "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
-          "dev": true
-        }
-      }
-    },
-    "xmlbuilder": {
-      "version": "11.0.1",
-      "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
-      "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
-      "dev": true
-    },
     "xmlchars": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
     "xmlchars": {
       "version": "2.2.0",
       "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
         "camelcase": "^4.1.0"
       }
     },
         "camelcase": "^4.1.0"
       }
     },
+    "yauzl": {
+      "version": "2.10.0",
+      "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+      "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+      "dev": true,
+      "requires": {
+        "buffer-crc32": "~0.2.3",
+        "fd-slicer": "~1.1.0"
+      }
+    },
     "yn": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
     "yn": {
       "version": "3.1.1",
       "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
index bf00c0e895ed003a8ef43f5250085b296627f7ae..3250965721aef185acfde861c7df27aae561e675 100644 (file)
     "test": "npm run test:config && jest --watch",
     "test:ci": "npm run test:config && JEST_SILENT_REPORTER_DOTS=true jest --coverage --reporters jest-silent-reporter",
     "test:config": "if [ ! -e 'src/unit-test-configuration.ts' ]; then cp 'src/unit-test-configuration.ts.sample' 'src/unit-test-configuration.ts'; fi",
     "test": "npm run test:config && jest --watch",
     "test:ci": "npm run test:config && JEST_SILENT_REPORTER_DOTS=true jest --coverage --reporters jest-silent-reporter",
     "test:config": "if [ ! -e 'src/unit-test-configuration.ts' ]; then cp 'src/unit-test-configuration.ts.sample' 'src/unit-test-configuration.ts'; fi",
-    "e2e": "npm run env_build && npm run e2e:update && ng e2e --webdriverUpdate=false",
-    "e2e:ci": "npm run env_build && npm run e2e:update && ng e2e --dev-server-target --webdriverUpdate=false",
-    "e2e:update": "npx webdriver-manager update --gecko=false --versions.chrome=$(google-chrome --version | awk '{ print $3 }')",
+    "e2e": "start-test 4200 'cypress open'",
+    "e2e:ci": "start-test 4200 'cypress run -b chrome --headless'",
     "lint:tslint": "ng lint",
     "lint:tslint": "ng lint",
-    "lint:prettier": "prettier --list-different \"{src,e2e}/**/*.{ts,scss}\"",
+    "lint:prettier": "prettier --list-different \"{src,cypress}/**/*.{ts,scss}\"",
     "lint:html": "htmllint src/app/**/*.html && html-linter --config html-linter.config.json",
     "lint:html": "htmllint src/app/**/*.html && html-linter --config html-linter.config.json",
-    "lint:tsc": "npm run test:config && tsc -p src/tsconfig.app.json --noEmit && tsc -p tsconfig.spec.json --noEmit && tsc -p e2e/tsconfig.e2e.json --noEmit",
+    "lint:tsc": "npm run test:config && tsc -p src/tsconfig.app.json --noEmit && tsc -p tsconfig.spec.json --noEmit && tsc -p cypress/tsconfig.json --noEmit",
     "lint": "npm run lint:tsc && npm run lint:tslint && npm run lint:prettier && npm run lint:html",
     "lint": "npm run lint:tsc && npm run lint:tslint && npm run lint:prettier && npm run lint:html",
-    "fix:prettier": "prettier --write \"{src,e2e}/**/*.{ts,scss}\"",
+    "fix:prettier": "prettier --write \"{src,cypress}/**/*.{ts,scss}\"",
     "fix:tslint": "npm run lint:tslint -- --fix",
     "fix:tslint": "npm run lint:tslint -- --fix",
-    "fixmod": "pretty-quick --pattern \"{src,e2e}/**/*.{ts,scss}\" --branch HEAD",
+    "fixmod": "pretty-quick --pattern \"{src,cypress}/**/*.{ts,scss}\" --branch HEAD",
     "fix": "npm run fix:tslint; npm run fix:prettier",
     "fix:audit": "npx npm-force-resolutions",
     "compodoc": "compodoc",
     "fix": "npm run fix:tslint; npm run fix:prettier",
     "fix:audit": "npx npm-force-resolutions",
     "compodoc": "compodoc",
     "@angular/router": "8.2.14",
     "@auth0/angular-jwt": "2.1.1",
     "@ngx-translate/i18n-polyfill": "1.0.0",
     "@angular/router": "8.2.14",
     "@auth0/angular-jwt": "2.1.1",
     "@ngx-translate/i18n-polyfill": "1.0.0",
-    "@swimlane/ngx-datatable": "15.0.2",
+    "@swimlane/ngx-datatable": "16.0.3",
+    "@types/file-saver": "^2.0.1",
     "angular-tree-component": "8.5.6",
     "async-mutex": "0.1.4",
     "angular-tree-component": "8.5.6",
     "async-mutex": "0.1.4",
-    "bootstrap": "4.3.1",
+    "bootstrap": "4.4.1",
     "chart.js": "2.8.0",
     "chart.js": "2.8.0",
-    "detect-browser": "4.7.0",
+    "detect-browser": "5.0.0",
+    "file-saver": "^2.0.2",
     "fork-awesome": "1.1.7",
     "lodash": "4.17.15",
     "moment": "2.24.0",
     "fork-awesome": "1.1.7",
     "lodash": "4.17.15",
     "moment": "2.24.0",
-    "ng-block-ui": "2.1.7",
+    "ng-block-ui": "2.1.8",
     "ng-bootstrap-form-validation": "5.0.0",
     "ng-bootstrap-form-validation": "5.0.0",
-    "ng-click-outside": "5.3.0",
+    "ng-click-outside": "6.0.0",
     "ng2-charts": "2.3.0",
     "ng2-charts": "2.3.0",
-    "ngx-bootstrap": "5.1.2",
-    "ngx-toastr": "11.0.0",
+    "ngx-bootstrap": "5.5.0",
+    "ngx-toastr": "11.3.3",
     "rxjs": "6.5.4",
     "rxjs": "6.5.4",
-    "simplebar-angular": "2.0.1",
-    "swagger-ui-dist": "3.23.11",
-    "tslib": "1.10.0",
+    "simplebar-angular": "2.1.0",
+    "swagger-ui-dist": "3.25.0",
+    "tslib": "1.11.1",
     "zone.js": "0.9.1"
   },
   "devDependencies": {
     "zone.js": "0.9.1"
   },
   "devDependencies": {
-    "@angular-devkit/build-angular": "0.803.25",
-    "@angular/cli": "8.3.25",
+    "@angular-devkit/build-angular": "0.803.26",
+    "@angular/cli": "8.3.26",
     "@angular/compiler-cli": "8.2.14",
     "@angular/language-service": "8.2.14",
     "@compodoc/compodoc": "1.1.11",
     "@angular/compiler-cli": "8.2.14",
     "@angular/language-service": "8.2.14",
     "@compodoc/compodoc": "1.1.11",
-    "@types/jasmine": "3.5.9",
-    "@types/jasminewd2": "2.0.8",
     "@types/jest": "25.1.4",
     "@types/jest": "25.1.4",
-    "@types/lodash": "4.14.141",
-    "@types/node": "12.7.8",
-    "@types/simplebar": "2.4.2",
-    "codelyzer": "5.1.2",
+    "@types/lodash": "4.14.149",
+    "@types/node": "12.12.34",
+    "@types/simplebar": "5.1.1",
+    "codelyzer": "5.2.2",
+    "cypress": "4.4.0",
     "html-linter": "1.1.1",
     "htmllint-cli": "0.0.7",
     "html-linter": "1.1.1",
     "htmllint-cli": "0.0.7",
-    "jasmine-core": "3.5.0",
-    "jasmine-spec-reporter": "4.2.1",
-    "jest": "25.1.0",
+    "jest": "25.2.4",
     "jest-canvas-mock": "2.2.0",
     "jest-canvas-mock": "2.2.0",
-    "jest-preset-angular": "8.1.2",
+    "jest-preset-angular": "8.1.3",
     "jest-silent-reporter": "0.2.1",
     "ng-bullet": "1.0.3",
     "jest-silent-reporter": "0.2.1",
     "ng-bullet": "1.0.3",
-    "ng-mocks": "9.0.0",
+    "ng-mocks": "9.2.0",
     "npm-force-resolutions": "0.0.3",
     "npm-run-all": "4.1.5",
     "npm-force-resolutions": "0.0.3",
     "npm-run-all": "4.1.5",
-    "prettier": "1.19.1",
+    "prettier": "2.0.2",
     "pretty-quick": "2.0.1",
     "pretty-quick": "2.0.1",
-    "protractor": "5.4.3",
-    "protractor-fail-fast": "3.1.0",
-    "protractor-screenshoter-plugin": "0.10.3",
-    "replace-in-file": "4.1.3",
+    "replace-in-file": "5.0.2",
+    "start-server-and-test": "1.11.0",
     "transifex-i18ntool": "1.1.0",
     "transifex-i18ntool": "1.1.0",
-    "ts-node": "8.4.1",
-    "tslint": "5.20.0",
+    "ts-node": "8.8.1",
+    "tslint": "6.1.0",
     "typescript": "3.5.3"
   },
   "resolutions": {
     "mem": "4.3.0",
     "typescript": "3.5.3"
   },
   "resolutions": {
     "mem": "4.3.0",
-    "minimist": "1.2.5",
     "fsevents": "2.1.2"
   }
 }
     "fsevents": "2.1.2"
   }
 }
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/protractor.conf.js b/ceph/src/pybind/mgr/dashboard/frontend/protractor.conf.js
deleted file mode 100644 (file)
index 64c0534..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-// Protractor configuration file, see link for more information
-// https://github.com/angular/protractor/blob/master/lib/config.ts
-
-const { SpecReporter } = require('jasmine-spec-reporter');
-let failFast = require("protractor-fail-fast");
-
-const config = {
-  SELENIUM_PROMISE_MANAGER: false,
-  allScriptsTimeout: 11000,
-  implicitWaitTimeout: 9000,
-  suites: {
-    block: './e2e/block/*.e2e-spec.ts',
-    cluster: './e2e/cluster/*.e2e-spec.ts',
-    filesystems: './e2e/filesystems/*.e2e-spec.ts',
-    nfs: './e2e/nfs/*.e2e-spec.ts',
-    pools: './e2e/pools/*.e2e-spec.ts',
-    rgw: './e2e/rgw/*.e2e-spec.ts',
-    ui: './e2e/ui/*.e2e-spec.ts'
-  },
-  capabilities: {
-    browserName: 'chrome',
-    chromeOptions: {
-      args: ['--no-sandbox', '--headless', '--window-size=1920x1080']
-    },
-    acceptInsecureCerts : true
-  },
-  directConnect: true,
-  baseUrl: process.env.BASE_URL || 'http://localhost:4200/',
-  framework: 'jasmine',
-  jasmineNodeOpts: {
-    showColors: true,
-    defaultTimeoutInterval: 300000,
-    print: function() {}
-  },
-  params: {
-    login: {
-      user: process.env.E2E_LOGIN_USER || 'admin',
-      password: process.env.E2E_LOGIN_PWD || 'admin'
-    }
-  },
-
-  plugins: [
-    {
-      package: 'protractor-screenshoter-plugin',
-      screenshotPath: '.protractor-report',
-      screenshotOnExpect: 'failure',
-      screenshotOnSpec: 'none',
-      withLogs: true,
-      writeReportFreq: 'asap',
-      imageToAscii: 'none',
-      clearFoldersBeforeTest: true
-    },
-    failFast.init()
-  ],
-  afterLaunch: function() {
-    failFast.clean();
-  }
-};
-
-config.onPrepare = async () => {
-  await browser.manage().timeouts().implicitlyWait(config.implicitWaitTimeout);
-
-  require('ts-node').register({
-    project: 'e2e/tsconfig.e2e.json'
-  });
-  jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true, displayDuration: true } }));
-
-  await browser.get('/#/login');
-
-  await browser.driver.findElement(by.name('username')).clear();
-  await browser.driver.findElement(by.name('username')).sendKeys(browser.params.login.user);
-  await browser.driver.findElement(by.name('password')).clear();
-  await browser.driver.findElement(by.name('password')).sendKeys(browser.params.login.password);
-
-  await browser.driver.findElement(by.css('input[type="submit"]')).click();
-};
-
-exports.config = config;
index 99208d37c6fa6f8af189a86d9a4da2abb0009e40..4e40258f143aeae1b01212c4ddd58f9e8f185b1c 100644 (file)
@@ -19,6 +19,7 @@ import { OsdListComponent } from './ceph/cluster/osd/osd-list/osd-list.component
 import { MonitoringListComponent } from './ceph/cluster/prometheus/monitoring-list/monitoring-list.component';
 import { SilenceFormComponent } from './ceph/cluster/prometheus/silence-form/silence-form.component';
 import { ServicesComponent } from './ceph/cluster/services/services.component';
 import { MonitoringListComponent } from './ceph/cluster/prometheus/monitoring-list/monitoring-list.component';
 import { SilenceFormComponent } from './ceph/cluster/prometheus/silence-form/silence-form.component';
 import { ServicesComponent } from './ceph/cluster/services/services.component';
+import { TelemetryComponent } from './ceph/cluster/telemetry/telemetry.component';
 import { DashboardComponent } from './ceph/dashboard/dashboard/dashboard.component';
 import { Nfs501Component } from './ceph/nfs/nfs-501/nfs-501.component';
 import { NfsFormComponent } from './ceph/nfs/nfs-form/nfs-form.component';
 import { DashboardComponent } from './ceph/dashboard/dashboard/dashboard.component';
 import { Nfs501Component } from './ceph/nfs/nfs-501/nfs-501.component';
 import { NfsFormComponent } from './ceph/nfs/nfs-form/nfs-form.component';
@@ -67,7 +68,7 @@ export class StartCaseBreadcrumbsResolver extends BreadcrumbsResolver {
   resolve(route: ActivatedRouteSnapshot) {
     const path = route.params.name;
     const text = _.startCase(path);
   resolve(route: ActivatedRouteSnapshot) {
     const path = route.params.name;
     const text = _.startCase(path);
-    return [{ text: text, path: path }];
+    return [{ text: `${text}/Edit`, path: path }];
   }
 }
 
   }
 }
 
@@ -143,6 +144,11 @@ const routes: Routes = [
         component: LogsComponent,
         data: { breadcrumbs: 'Cluster/Logs' }
       },
         component: LogsComponent,
         data: { breadcrumbs: 'Cluster/Logs' }
       },
+      {
+        path: 'telemetry',
+        component: TelemetryComponent,
+        data: { breadcrumbs: 'Telemetry configuration' }
+      },
       {
         path: 'monitoring',
         data: { breadcrumbs: 'Cluster/Monitoring' },
       {
         path: 'monitoring',
         data: { breadcrumbs: 'Cluster/Monitoring' },
@@ -292,8 +298,7 @@ const routes: Routes = [
         path: 'login-change-password',
         component: LoginPasswordFormComponent,
         canActivate: [NoSsoGuardService]
         path: 'login-change-password',
         component: LoginPasswordFormComponent,
         canActivate: [NoSsoGuardService]
-      },
-      { path: 'logout', children: [] }
+      }
     ]
   },
   {
     ]
   },
   {
index bc60f1011c44455838460819e79a3dc56676235a..c66974e112b6667c6f1f20362bb0e1f66d146c2d 100644 (file)
@@ -1,4 +1,4 @@
-import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
+import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
 import {
   ErrorHandler,
   LOCALE_ID,
 import {
   ErrorHandler,
   LOCALE_ID,
index e072facaa1d0f9bf39595a4b71a4f147dca06aa6..9a4c9c2612d37ff516d9d8e8fce4a9787861ca3e 100644 (file)
@@ -3,8 +3,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { TreeModel, TreeModule } from 'angular-tree-component';
 import * as _ from 'lodash';
 
 import { TreeModel, TreeModule } from 'angular-tree-component';
 import * as _ from 'lodash';
 
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { IscsiTargetDetailsComponent } from './iscsi-target-details.component';
 
 import { SharedModule } from '../../../shared/shared.module';
 import { IscsiTargetDetailsComponent } from './iscsi-target-details.component';
 
@@ -14,7 +14,7 @@ describe('IscsiTargetDetailsComponent', () => {
 
   configureTestBed({
     declarations: [IscsiTargetDetailsComponent],
 
   configureTestBed({
     declarations: [IscsiTargetDetailsComponent],
-    imports: [TreeModule.forRoot(), SharedModule],
+    imports: [BrowserAnimationsModule, TreeModule.forRoot(), SharedModule],
     providers: [i18nProviders]
   });
 
     providers: [i18nProviders]
   });
 
@@ -41,37 +41,35 @@ describe('IscsiTargetDetailsComponent', () => {
       backstores: ['backstore:1', 'backstore:2'],
       default_backstore: 'backstore:1'
     };
       backstores: ['backstore:1', 'backstore:2'],
       default_backstore: 'backstore:1'
     };
-    component.selection = new CdTableSelection();
-    component.selection.selected = [
-      {
-        target_iqn: 'iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw',
-        portals: [{ host: 'node1', ip: '192.168.100.201' }],
-        disks: [
-          {
-            pool: 'rbd',
-            image: 'disk_1',
-            backstore: 'backstore:1',
-            controls: { hw_max_sectors: 1 }
-          }
-        ],
-        clients: [
-          {
-            client_iqn: 'iqn.1994-05.com.redhat:rh7-client',
-            luns: [{ pool: 'rbd', image: 'disk_1' }],
-            auth: {
-              user: 'myiscsiusername'
-            },
-            info: {
-              alias: 'myhost',
-              ip_address: ['192.168.200.1'],
-              state: { LOGGED_IN: ['node1'] }
-            }
+    component.selection = undefined;
+    component.selection = {
+      target_iqn: 'iqn.2003-01.com.redhat.iscsi-gw:iscsi-igw',
+      portals: [{ host: 'node1', ip: '192.168.100.201' }],
+      disks: [
+        {
+          pool: 'rbd',
+          image: 'disk_1',
+          backstore: 'backstore:1',
+          controls: { hw_max_sectors: 1 }
+        }
+      ],
+      clients: [
+        {
+          client_iqn: 'iqn.1994-05.com.redhat:rh7-client',
+          luns: [{ pool: 'rbd', image: 'disk_1' }],
+          auth: {
+            user: 'myiscsiusername'
+          },
+          info: {
+            alias: 'myhost',
+            ip_address: ['192.168.200.1'],
+            state: { LOGGED_IN: ['node1'] }
           }
           }
-        ],
-        groups: [],
-        target_controls: { dataout_timeout: 2 }
-      }
-    ];
+        }
+      ],
+      groups: [],
+      target_controls: { dataout_timeout: 2 }
+    };
 
     fixture.detectChanges();
   });
 
     fixture.detectChanges();
   });
index b989c9c1921bd0076d6bf33ade1f91eccdcbe84d..41bc99d9aacd2de38a2460e253ec238ea98df956 100644 (file)
@@ -3,17 +3,16 @@ import { Component, Input, OnChanges, OnInit, TemplateRef, ViewChild } from '@an
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import {
   ITreeOptions,
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import {
   ITreeOptions,
-  TREE_ACTIONS,
   TreeComponent,
   TreeModel,
   TreeComponent,
   TreeModel,
-  TreeNode
+  TreeNode,
+  TREE_ACTIONS
 } from 'angular-tree-component';
 import * as _ from 'lodash';
 
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { Icons } from '../../../shared/enum/icons.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 } from 'angular-tree-component';
 import * as _ from 'lodash';
 
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { Icons } from '../../../shared/enum/icons.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { BooleanTextPipe } from '../../../shared/pipes/boolean-text.pipe';
 import { IscsiBackstorePipe } from '../../../shared/pipes/iscsi-backstore.pipe';
 
 import { BooleanTextPipe } from '../../../shared/pipes/boolean-text.pipe';
 import { IscsiBackstorePipe } from '../../../shared/pipes/iscsi-backstore.pipe';
 
@@ -24,7 +23,7 @@ import { IscsiBackstorePipe } from '../../../shared/pipes/iscsi-backstore.pipe';
 })
 export class IscsiTargetDetailsComponent implements OnChanges, OnInit {
   @Input()
 })
 export class IscsiTargetDetailsComponent implements OnChanges, OnInit {
   @Input()
-  selection: CdTableSelection;
+  selection: any;
   @Input()
   settings: any;
   @Input()
   @Input()
   settings: any;
   @Input()
@@ -91,8 +90,8 @@ export class IscsiTargetDetailsComponent implements OnChanges, OnInit {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.selectedItem = this.selection.first();
+    if (this.selection) {
+      this.selectedItem = this.selection;
       this.generateTree();
     }
 
       this.generateTree();
     }
 
index 32752eb331c0fe30c25a16e606f68d13af090407..5c4d362bae080f90df94e43cba5574c47cbabd5f 100644 (file)
@@ -429,7 +429,7 @@ export class IscsiTargetFormComponent implements OnInit {
         validators: [
           Validators.required,
           CdValidators.custom('notUnique', (client_iqn: string) => {
         validators: [
           Validators.required,
           CdValidators.custom('notUnique', (client_iqn: string) => {
-            const flattened = this.initiators.controls.reduce(function(accumulator, currentValue) {
+            const flattened = this.initiators.controls.reduce(function (accumulator, currentValue) {
               return accumulator.concat(currentValue.value.client_iqn);
             }, []);
 
               return accumulator.concat(currentValue.value.client_iqn);
             }, []);
 
index 1b8eeb83e4aea66ad5fd99c59b09eb725a55f738..276629cd413b2490d87a73282dc58265d8e7dd82 100644 (file)
@@ -23,6 +23,8 @@
           identifier="target_iqn"
           forceIdentifier="true"
           selectionType="single"
           identifier="target_iqn"
           forceIdentifier="true"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <div class="table-actions btn-toolbar">
     <cd-table-actions class="btn-group"
           (updateSelection)="updateSelection($event)">
   <div class="table-actions btn-toolbar">
     <cd-table-actions class="btn-group"
@@ -42,8 +44,8 @@
   </div>
 
   <cd-iscsi-target-details cdTableDetail
   </div>
 
   <cd-iscsi-target-details cdTableDetail
-                           *ngIf="selection.hasSingleSelection"
+                           *ngIf="expandedRow"
                            [cephIscsiConfigVersion]="cephIscsiConfigVersion"
                            [cephIscsiConfigVersion]="cephIscsiConfigVersion"
-                           [selection]="selection"
+                           [selection]="expandedRow"
                            [settings]="settings"></cd-iscsi-target-details>
 </cd-table>
                            [settings]="settings"></cd-iscsi-target-details>
 </cd-table>
index 91bcc1f7db2e7ebb2771316abe02a223fd0be391..50d636febe5c69fc5969fe6f52a1d83eda12ac5a 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TreeModule } from 'angular-tree-component';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TreeModule } from 'angular-tree-component';
@@ -35,6 +36,7 @@ describe('IscsiTargetListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
index f3911d58a9dc889f095724d56e9971e1cce0f717..026cf343240ef74e84b0deecf4d5cf7bbe412309 100644 (file)
@@ -6,6 +6,7 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { Subscription } from 'rxjs';
 
 import { IscsiService } from '../../../shared/api/iscsi.service';
 import { Subscription } from 'rxjs';
 
 import { IscsiService } from '../../../shared/api/iscsi.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
@@ -31,7 +32,7 @@ import { IscsiTargetDiscoveryModalComponent } from '../iscsi-target-discovery-mo
   styleUrls: ['./iscsi-target-list.component.scss'],
   providers: [TaskListService]
 })
   styleUrls: ['./iscsi-target-list.component.scss'],
   providers: [TaskListService]
 })
-export class IscsiTargetListComponent implements OnInit, OnDestroy {
+export class IscsiTargetListComponent extends ListWithDetails implements OnInit, OnDestroy {
   @ViewChild(TableComponent, { static: false })
   table: TableComponent;
 
   @ViewChild(TableComponent, { static: false })
   table: TableComponent;
 
@@ -69,6 +70,7 @@ export class IscsiTargetListComponent implements OnInit, OnDestroy {
     private taskWrapper: TaskWrapperService,
     public actionLabels: ActionLabelsI18n
   ) {
     private taskWrapper: TaskWrapperService,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().iscsi;
 
     this.tableActions = [
     this.permission = this.authStorageService.getPermissions().iscsi;
 
     this.tableActions = [
index fc41d5e4042a1b71a4adcf0d003356193dc2ebec..b693c3d45f3678eb09e5d6c3cae562cbdbe72318 100644 (file)
@@ -1,5 +1,6 @@
 import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { of } from 'rxjs';
 
 
 import { of } from 'rxjs';
 
@@ -21,14 +22,14 @@ describe('IscsiComponent', () => {
 
   const fakeService = {
     overview: () => {
 
   const fakeService = {
     overview: () => {
-      return new Promise(function() {
+      return new Promise(function () {
         return;
       });
     }
   };
 
   configureTestBed({
         return;
       });
     }
   };
 
   configureTestBed({
-    imports: [SharedModule],
+    imports: [BrowserAnimationsModule, SharedModule],
     declarations: [IscsiComponent],
     schemas: [NO_ERRORS_SCHEMA],
     providers: [
     declarations: [IscsiComponent],
     schemas: [NO_ERRORS_SCHEMA],
     providers: [
index 037393882d1fdc50e99ef51dd06fed766e220fcd..b7e42d6baa5843328a820e7d1f222b5401a9a160 100644 (file)
@@ -1,7 +1,7 @@
 <cd-table [data]="data"
           columnMode="flex"
           [columns]="columns"
 <cd-table [data]="data"
           columnMode="flex"
           [columns]="columns"
-          [autoReload]="0"
+          [autoReload]="-1"
           (fetchData)="refresh()">
 </cd-table>
 
           (fetchData)="refresh()">
 </cd-table>
 
index 84425710504f649d964593c5a5ee1b59e43c9e87..fb427fd64313d2af37bf13585ea13a1a55a7815f 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
@@ -17,6 +18,7 @@ describe('DaemonListComponent', () => {
   configureTestBed({
     declarations: [DaemonListComponent, MirrorHealthColorPipe],
     imports: [
   configureTestBed({
     declarations: [DaemonListComponent, MirrorHealthColorPipe],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index d3d862fd86fc8c7fd12f2766b6af4e60efcc3e48..b8278b486536cbd9b18d37f7d1442146bd0a6d4f 100644 (file)
@@ -1,28 +1,31 @@
-<tabset>
+<tabset #tabset>
   <tab heading="Issues"
        i18n-heading>
   <tab heading="Issues"
        i18n-heading>
-    <cd-table [data]="image_error.data"
+    <cd-table *ngIf="tabset.tabs[0]?.active"
+              [data]="image_error.data"
               columnMode="flex"
               [columns]="image_error.columns"
               columnMode="flex"
               [columns]="image_error.columns"
-              [autoReload]="0"
+              [autoReload]="-1"
               (fetchData)="refresh()">
     </cd-table>
   </tab>
   <tab heading="Syncing"
        i18n-heading>
               (fetchData)="refresh()">
     </cd-table>
   </tab>
   <tab heading="Syncing"
        i18n-heading>
-    <cd-table [data]="image_syncing.data"
+    <cd-table *ngIf="tabset.tabs[1]?.active"
+              [data]="image_syncing.data"
               columnMode="flex"
               [columns]="image_syncing.columns"
               columnMode="flex"
               [columns]="image_syncing.columns"
-              [autoReload]="0"
+              [autoReload]="-1"
               (fetchData)="refresh()">
     </cd-table>
   </tab>
   <tab heading="Ready"
        i18n-heading>
               (fetchData)="refresh()">
     </cd-table>
   </tab>
   <tab heading="Ready"
        i18n-heading>
-    <cd-table [data]="image_ready.data"
+    <cd-table *ngIf="tabset.tabs[2]?.active"
+              [data]="image_ready.data"
               columnMode="flex"
               [columns]="image_ready.columns"
               columnMode="flex"
               [columns]="image_ready.columns"
-              [autoReload]="0"
+              [autoReload]="-1"
               (fetchData)="refresh()">
     </cd-table>
   </tab>
               (fetchData)="refresh()">
     </cd-table>
   </tab>
index 253073759bcdc052ed8763bde36ddb9f041f291b..aedc7e2bf2d3251e9c3c0b28705b0ded5066b269 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
@@ -17,6 +18,7 @@ describe('ImageListComponent', () => {
   configureTestBed({
     declarations: [ImageListComponent, MirrorHealthColorPipe],
     imports: [
   configureTestBed({
     declarations: [ImageListComponent, MirrorHealthColorPipe],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index a7a0aa4a72b9438144f1ac7892f343096654a7a7..fc1cd20fc9ca6548931144ade363e113e52ea01b 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@@ -28,6 +29,7 @@ describe('OverviewComponent', () => {
       PoolListComponent
     ],
     imports: [
       PoolListComponent
     ],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index 0b7cf91776505489a5b21e264111cdddda59bd7b..755da08342b6d434ea138fbe79b06070ceaf0d15 100644 (file)
@@ -3,7 +3,7 @@
           [columns]="columns"
           identifier="name"
           forceIdentifier="true"
           [columns]="columns"
           identifier="name"
           forceIdentifier="true"
-          [autoReload]="0"
+          [autoReload]="-1"
           (fetchData)="refresh()"
           selectionType="single"
           (updateSelection)="updateSelection($event)">
           (fetchData)="refresh()"
           selectionType="single"
           (updateSelection)="updateSelection($event)">
index 129dd7c2a1b836ae6a9d3a9c89c6bd4811af281c..06e21fc0d9f8c1d726c12167b8769d498db81ed0 100644 (file)
@@ -2,6 +2,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { RouterTestingModule } from '@angular/router/testing';
 
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -19,6 +20,7 @@ describe('PoolListComponent', () => {
   configureTestBed({
     declarations: [PoolListComponent, MirrorHealthColorPipe],
     imports: [
   configureTestBed({
     declarations: [PoolListComponent, MirrorHealthColorPipe],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index 27b5650a397cb1b28c9a041d15c87e26d43711b3..b9837ee1cfe005b6e77e2dea08b562876921f92c 100644 (file)
@@ -1,5 +1,6 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
@@ -24,6 +25,7 @@ describe('RbdConfigurationListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       FormsModule,
       NgxDatatableModule,
       RouterTestingModule,
       FormsModule,
       NgxDatatableModule,
       RouterTestingModule,
index c5c776613a3ce6cbbab08882aea61062a4567f37..fee853628f3dbad8acdb55d4e774c2383d6a9c4b 100644 (file)
@@ -2,7 +2,7 @@
   <ng-container i18n>Only available for RBD images with <strong>fast-diff</strong> enabled</ng-container>
 </ng-template>
 
   <ng-container i18n>Only available for RBD images with <strong>fast-diff</strong> enabled</ng-container>
 </ng-template>
 
-<tabset *ngIf="selection?.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <table class="table table-striped table-bordered">
   <tab i18n-heading
        heading="Details">
     <table class="table table-striped table-bordered">
         <tr>
           <td i18n
               class="bold w-25">Name</td>
         <tr>
           <td i18n
               class="bold w-25">Name</td>
-          <td class="w-75">{{ selectedItem.name }}</td>
+          <td class="w-75">{{ selection.name }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Pool</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Pool</td>
-          <td>{{ selectedItem.pool_name }}</td>
+          <td>{{ selection.pool_name }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Data Pool</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Data Pool</td>
-          <td>{{ selectedItem.data_pool | empty }}</td>
+          <td>{{ selection.data_pool | empty }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Created</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Created</td>
-          <td>{{ selectedItem.timestamp | cdDate }}</td>
+          <td>{{ selection.timestamp | cdDate }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Size</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Size</td>
-          <td>{{ selectedItem.size | dimlessBinary }}</td>
+          <td>{{ selection.size | dimlessBinary }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Objects</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Objects</td>
-          <td>{{ selectedItem.num_objs | dimless }}</td>
+          <td>{{ selection.num_objs | dimless }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Object size</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Object size</td>
-          <td>{{ selectedItem.obj_size | dimlessBinary }}</td>
+          <td>{{ selection.obj_size | dimlessBinary }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Features</td>
           <td>
         </tr>
         <tr>
           <td i18n
               class="bold">Features</td>
           <td>
-            <span *ngFor="let feature of selectedItem.features_name">
+            <span *ngFor="let feature of selection.features_name">
               <span class="badge badge-dark mr-2">{{ feature }}</span>
             </span>
           </td>
               <span class="badge badge-dark mr-2">{{ feature }}</span>
             </span>
           </td>
           <td i18n
               class="bold">Provisioned</td>
           <td>
           <td i18n
               class="bold">Provisioned</td>
           <td>
-            <span *ngIf="selectedItem.features_name?.indexOf('fast-diff') === -1">
+            <span *ngIf="selection.features_name?.indexOf('fast-diff') === -1">
               <span class="form-text text-muted"
                     [tooltip]="usageNotAvailableTooltipTpl"
                     placement="right"
                     i18n>N/A</span>
             </span>
               <span class="form-text text-muted"
                     [tooltip]="usageNotAvailableTooltipTpl"
                     placement="right"
                     i18n>N/A</span>
             </span>
-            <span *ngIf="selectedItem.features_name?.indexOf('fast-diff') !== -1">
-              {{ selectedItem.disk_usage | dimlessBinary }}
+            <span *ngIf="selection.features_name?.indexOf('fast-diff') !== -1">
+              {{ selection.disk_usage | dimlessBinary }}
             </span>
           </td>
         </tr>
             </span>
           </td>
         </tr>
           <td i18n
               class="bold">Total provisioned</td>
           <td>
           <td i18n
               class="bold">Total provisioned</td>
           <td>
-            <span *ngIf="selectedItem.features_name?.indexOf('fast-diff') === -1">
+            <span *ngIf="selection.features_name?.indexOf('fast-diff') === -1">
               <span class="form-text text-muted"
                     [tooltip]="usageNotAvailableTooltipTpl"
                     placement="right"
                     i18n>N/A</span>
             </span>
               <span class="form-text text-muted"
                     [tooltip]="usageNotAvailableTooltipTpl"
                     placement="right"
                     i18n>N/A</span>
             </span>
-            <span *ngIf="selectedItem.features_name?.indexOf('fast-diff') !== -1">
-              {{ selectedItem.total_disk_usage | dimlessBinary }}
+            <span *ngIf="selection.features_name?.indexOf('fast-diff') !== -1">
+              {{ selection.total_disk_usage | dimlessBinary }}
             </span>
           </td>
         </tr>
         <tr>
           <td i18n
               class="bold">Striping unit</td>
             </span>
           </td>
         </tr>
         <tr>
           <td i18n
               class="bold">Striping unit</td>
-          <td>{{ selectedItem.stripe_unit | dimlessBinary }}</td>
+          <td>{{ selection.stripe_unit | dimlessBinary }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Striping count</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Striping count</td>
-          <td>{{ selectedItem.stripe_count }}</td>
+          <td>{{ selection.stripe_count }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Parent</td>
           <td>
         </tr>
         <tr>
           <td i18n
               class="bold">Parent</td>
           <td>
-            <span *ngIf="selectedItem.parent">{{ selectedItem.parent.pool_name }}<span *ngIf="selectedItem.parent.pool_namespace">/{{ selectedItem.parent.pool_namespace }}</span>/{{ selectedItem.parent.image_name }}@{{ selectedItem.parent.snap_name }}</span>
-            <span *ngIf="!selectedItem.parent">-</span>
+            <span *ngIf="selection.parent">{{ selection.parent.pool_name }}<span *ngIf="selection.parent.pool_namespace">/{{ selection.parent.pool_namespace }}</span>/{{ selection.parent.image_name }}@{{ selection.parent.snap_name }}</span>
+            <span *ngIf="!selection.parent">-</span>
           </td>
         </tr>
         <tr>
           <td i18n
               class="bold">Block name prefix</td>
           </td>
         </tr>
         <tr>
           <td i18n
               class="bold">Block name prefix</td>
-          <td>{{ selectedItem.block_name_prefix }}</td>
+          <td>{{ selection.block_name_prefix }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Order</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Order</td>
-          <td>{{ selectedItem.order }}</td>
+          <td>{{ selection.order }}</td>
         </tr>
       </tbody>
     </table>
   </tab>
   <tab i18n-heading
        heading="Snapshots">
         </tr>
       </tbody>
     </table>
   </tab>
   <tab i18n-heading
        heading="Snapshots">
-    <cd-rbd-snapshot-list [snapshots]="selectedItem.snapshots"
-                          [featuresName]="selectedItem.features_name"
-                          [poolName]="selectedItem.pool_name"
-                          [namespace]="selectedItem.namespace"
-                          [rbdName]="selectedItem.name"></cd-rbd-snapshot-list>
+    <cd-rbd-snapshot-list [snapshots]="selection.snapshots"
+                          [featuresName]="selection.features_name"
+                          [poolName]="selection.pool_name"
+                          [namespace]="selection.namespace"
+                          [rbdName]="selection.name"></cd-rbd-snapshot-list>
   </tab>
   <tab i18n-heading
        heading="Configuration">
   </tab>
   <tab i18n-heading
        heading="Configuration">
-    <cd-rbd-configuration-table [data]="selectedItem['configuration']"></cd-rbd-configuration-table>
+    <cd-rbd-configuration-table [data]="selection['configuration']"></cd-rbd-configuration-table>
   </tab>
 </tabset>
 
   </tab>
 </tabset>
 
index 0463230ac01e0e3334adcf7a0871574755c8cf04..0916391e06633a5e64e67d99c6f60821e7de954b 100644 (file)
@@ -1,6 +1,5 @@
-import { Component, Input, OnChanges, TemplateRef, ViewChild } from '@angular/core';
+import { Component, Input, TemplateRef, ViewChild } from '@angular/core';
 
 
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { RbdFormModel } from '../rbd-form/rbd-form.model';
 
 @Component({
 import { RbdFormModel } from '../rbd-form/rbd-form.model';
 
 @Component({
@@ -8,20 +7,13 @@ import { RbdFormModel } from '../rbd-form/rbd-form.model';
   templateUrl: './rbd-details.component.html',
   styleUrls: ['./rbd-details.component.scss']
 })
   templateUrl: './rbd-details.component.html',
   styleUrls: ['./rbd-details.component.scss']
 })
-export class RbdDetailsComponent implements OnChanges {
+export class RbdDetailsComponent {
   @Input()
   @Input()
-  selection: CdTableSelection;
-  selectedItem: RbdFormModel;
+  selection: RbdFormModel;
   @Input()
   images: any;
   @ViewChild('poolConfigurationSourceTpl', { static: true })
   poolConfigurationSourceTpl: TemplateRef<any>;
 
   constructor() {}
   @Input()
   images: any;
   @ViewChild('poolConfigurationSourceTpl', { static: true })
   poolConfigurationSourceTpl: TemplateRef<any>;
 
   constructor() {}
-
-  ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.selectedItem = this.selection.first();
-    }
-  }
 }
 }
index 5597e0861a782835f6feaa144856c107d9c6d6aa..7820ad7d8ee510a91b279fabae2dbe7519c698d0 100644 (file)
@@ -464,10 +464,7 @@ export class RbdFormComponent implements OnInit {
         // becoming disabled when manually unchecked.  This is because it
         // triggers an update on `object-map` and if `object-map` doesn't emit,
         // `fast-diff` will not be automatically disabled.
         // becoming disabled when manually unchecked.  This is because it
         // triggers an update on `object-map` and if `object-map` doesn't emit,
         // `fast-diff` will not be automatically disabled.
-        this.rbdForm
-          .get('features')
-          .get(feature.interlockedWith)
-          .setValue(false);
+        this.rbdForm.get('features').get(feature.interlockedWith).setValue(false);
       }
     }
   }
       }
     }
   }
index fbf6aa0a19ac16289ee09aea46aa8b9253ebe88a..098b297e1bbb663e9c2858f1c753b330613d7a79 100644 (file)
@@ -12,6 +12,8 @@
           [searchableObjects]="true"
           forceIdentifier="true"
           selectionType="single"
           [searchableObjects]="true"
           forceIdentifier="true"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
@@ -19,7 +21,7 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rbd-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rbd-details cdTableDetail
-                  [selection]="selection">
+                  [selection]="expandedRow">
   </cd-rbd-details>
 </cd-table>
 
   </cd-rbd-details>
 </cd-table>
 
index 9da640e4822a1f2124a95fabadb3eb11523fc035..f9ad4cf7cb74b797f63258510bd7114717de232d 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { AlertModule } from 'ngx-bootstrap/alert';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { AlertModule } from 'ngx-bootstrap/alert';
@@ -42,6 +43,7 @@ describe('RbdListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index aaea7eb89055490059fb0cc5cf50b0f51cad9f41..f69945b6e7eb465696bd8b084e8a56d8eaaef919 100644 (file)
@@ -5,6 +5,7 @@ import * as _ from 'lodash';
 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 
 import { RbdService } from '../../../shared/api/rbd.service';
 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 
 import { RbdService } from '../../../shared/api/rbd.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { ConfirmationModalComponent } from '../../../shared/components/confirmation-modal/confirmation-modal.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { ConfirmationModalComponent } from '../../../shared/components/confirmation-modal/confirmation-modal.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
@@ -40,7 +41,7 @@ const BASE_URL = 'block/rbd';
     { provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }
   ]
 })
     { provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }
   ]
 })
-export class RbdListComponent implements OnInit {
+export class RbdListComponent extends ListWithDetails implements OnInit {
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @ViewChild('usageTpl', { static: false })
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @ViewChild('usageTpl', { static: false })
@@ -108,6 +109,7 @@ export class RbdListComponent implements OnInit {
     private urlBuilder: URLBuilderService,
     public actionLabels: ActionLabelsI18n
   ) {
     private urlBuilder: URLBuilderService,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().rbdImage;
     const getImageUri = () =>
       this.selection.first() &&
     this.permission = this.authStorageService.getPermissions().rbdImage;
     const getImageUri = () =>
       this.selection.first() &&
index 426c912c859a5ac1892591874d131dcfc42d5c4e..7abb507ca4d20996ac962cacc5784d0182c9bea0 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -18,6 +19,7 @@ describe('RbdNamespaceListComponent', () => {
   configureTestBed({
     declarations: [RbdNamespaceListComponent, RbdTabsComponent],
     imports: [
   configureTestBed({
     declarations: [RbdNamespaceListComponent, RbdTabsComponent],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
       HttpClientTestingModule,
       RouterTestingModule,
index ea95a5540a6bcb77ca908f86a4dd5e9eddd2bd89..c032d0d522b52ccde27e6c58b737472796db1ec3 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
@@ -50,6 +51,7 @@ describe('RbdSnapshotListComponent', () => {
     declarations: [RbdSnapshotListComponent, RbdTabsComponent],
     imports: [
       ApiModule,
     declarations: [RbdSnapshotListComponent, RbdTabsComponent],
     imports: [
       ApiModule,
+      BrowserAnimationsModule,
       ComponentsModule,
       DataTableModule,
       HttpClientTestingModule,
       ComponentsModule,
       DataTableModule,
       HttpClientTestingModule,
index 8c83ceb9b70e5d00bb8a26b438ef2f47f42f2aac..68dc6303f46befa8208ba8250fb7558d7e571918 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -30,6 +31,7 @@ describe('RbdTrashListComponent', () => {
   configureTestBed({
     declarations: [RbdTrashListComponent, RbdTabsComponent],
     imports: [
   configureTestBed({
     declarations: [RbdTrashListComponent, RbdTabsComponent],
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
index 458e3852d9104116223ba556a5c881b88d06e506..f4f293dfeb2edf06ce93b33202870606d7d1bd98 100644 (file)
@@ -73,9 +73,7 @@ describe('RbdTrashMoveModalComponent', () => {
     });
 
     it('with delay < 0', () => {
     });
 
     it('with delay < 0', () => {
-      const oldDate = moment()
-        .subtract(24, 'hour')
-        .toDate();
+      const oldDate = moment().subtract(24, 'hour').toDate();
       component.moveForm.patchValue({ expiresAt: oldDate });
 
       component.moveImage();
       component.moveForm.patchValue({ expiresAt: oldDate });
 
       component.moveImage();
@@ -85,9 +83,7 @@ describe('RbdTrashMoveModalComponent', () => {
     });
 
     it('with delay < 0', () => {
     });
 
     it('with delay < 0', () => {
-      const oldDate = moment()
-        .add(24, 'hour')
-        .toISOString();
+      const oldDate = moment().add(24, 'hour').toISOString();
       component.moveForm.patchValue({ expiresAt: oldDate });
 
       component.moveImage();
       component.moveForm.patchValue({ expiresAt: oldDate });
 
       component.moveImage();
index bcc630630b7d383716cdca80dc617b7614fc8afe..bdc0dcf250d8baab0aa59942de5a282a96eac3ea 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { ToastrModule } from 'ngx-toastr';
 
 
 import { ToastrModule } from 'ngx-toastr';
 
@@ -18,7 +19,12 @@ describe('CephfsClientsComponent', () => {
   let fixture: ComponentFixture<CephfsClientsComponent>;
 
   configureTestBed({
   let fixture: ComponentFixture<CephfsClientsComponent>;
 
   configureTestBed({
-    imports: [ToastrModule.forRoot(), SharedModule, HttpClientTestingModule],
+    imports: [
+      BrowserAnimationsModule,
+      ToastrModule.forRoot(),
+      SharedModule,
+      HttpClientTestingModule
+    ],
     declarations: [CephfsClientsComponent],
     providers: i18nProviders
   });
     declarations: [CephfsClientsComponent],
     providers: i18nProviders
   });
index f92a61475851c06c686d5bb50663b1eda3cb1ea7..c6db2ce551d87353a508a9792faa3495048ca1f2 100644 (file)
@@ -4,7 +4,7 @@ import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testin
 import { Validators } from '@angular/forms';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { Validators } from '@angular/forms';
 import { RouterTestingModule } from '@angular/router/testing';
 
-import { TREE_ACTIONS, TreeComponent, TreeModule } from 'angular-tree-component';
+import { TreeComponent, TreeModule, TREE_ACTIONS } from 'angular-tree-component';
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
 import { BsModalRef, BsModalService, ModalModule } from 'ngx-bootstrap/modal';
 import { ToastrModule } from 'ngx-toastr';
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
 import { BsModalRef, BsModalService, ModalModule } from 'ngx-bootstrap/modal';
 import { ToastrModule } from 'ngx-toastr';
index 7f3b073aeab063a4562e968d038543f5a366d978..973add5a65fd0dd5df304b84b31b3dd4d8a06439 100644 (file)
@@ -4,10 +4,10 @@ import { Validators } from '@angular/forms';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import {
   ITreeOptions,
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import {
   ITreeOptions,
-  TREE_ACTIONS,
   TreeComponent,
   TreeModel,
   TreeComponent,
   TreeModel,
-  TreeNode
+  TreeNode,
+  TREE_ACTIONS
 } from 'angular-tree-component';
 import * as _ from 'lodash';
 import * as moment from 'moment';
 } from 'angular-tree-component';
 import * as _ from 'lodash';
 import * as moment from 'moment';
index f5a8ac952b1def95d007cd9bc4f52697d67466b8..05960e87fa1975065b17cd2621dd4f636ca7a58e 100644 (file)
@@ -5,8 +5,10 @@
           identifier="id"
           forceIdentifier="true"
           selectionType="single"
           identifier="id"
           forceIdentifier="true"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <cd-cephfs-tabs cdTableDetail
           (updateSelection)="updateSelection($event)">
   <cd-cephfs-tabs cdTableDetail
-                  [selection]="selection">
+                  [selection]="expandedRow">
   </cd-cephfs-tabs>
 </cd-table>
   </cd-cephfs-tabs>
 </cd-table>
index 55eafbb99e8dcf3abd857687688179e1cab355e5..f0d0803295d57aa964b08a3499e1cc15adaae169 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { Component, Input } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { Component, Input } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { CdTableSelection } from '../../../shared/models/cd-table-selection';
@@ -18,7 +19,7 @@ describe('CephfsListComponent', () => {
   let fixture: ComponentFixture<CephfsListComponent>;
 
   configureTestBed({
   let fixture: ComponentFixture<CephfsListComponent>;
 
   configureTestBed({
-    imports: [SharedModule, HttpClientTestingModule],
+    imports: [BrowserAnimationsModule, SharedModule, HttpClientTestingModule],
     declarations: [CephfsListComponent, CephfsTabsStubComponent],
     providers: i18nProviders
   });
     declarations: [CephfsListComponent, CephfsTabsStubComponent],
     providers: i18nProviders
   });
index 04657592e71c479a17c889ac65cd24e83fb5c5ae..9b4ece957fda175f2ac424813df6d6ee4862ff56 100644 (file)
@@ -3,6 +3,7 @@ import { Component, OnInit } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { CephfsService } from '../../../shared/api/cephfs.service';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { CephfsService } from '../../../shared/api/cephfs.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context';
@@ -14,7 +15,7 @@ import { CdDatePipe } from '../../../shared/pipes/cd-date.pipe';
   templateUrl: './cephfs-list.component.html',
   styleUrls: ['./cephfs-list.component.scss']
 })
   templateUrl: './cephfs-list.component.html',
   styleUrls: ['./cephfs-list.component.scss']
 })
-export class CephfsListComponent implements OnInit {
+export class CephfsListComponent extends ListWithDetails implements OnInit {
   columns: CdTableColumn[];
   filesystems: any = [];
   selection = new CdTableSelection();
   columns: CdTableColumn[];
   filesystems: any = [];
   selection = new CdTableSelection();
@@ -23,7 +24,9 @@ export class CephfsListComponent implements OnInit {
     private cephfsService: CephfsService,
     private cdDatePipe: CdDatePipe,
     private i18n: I18n
     private cephfsService: CephfsService,
     private cdDatePipe: CdDatePipe,
     private i18n: I18n
-  ) {}
+  ) {
+    super();
+  }
 
   ngOnInit() {
     this.columns = [
 
   ngOnInit() {
     this.columns = [
index bef5caf7ee9d44a008e9d3c6793d15327d1c3dcc..cd3800af5e161bfd72a074b47598dab8f3866e30 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selectedItem">
+<tabset *ngIf="selection">
   <tab i18n-heading
        (selectTab)="softRefresh()"
        heading="Details">
   <tab i18n-heading
        (selectTab)="softRefresh()"
        heading="Details">
index 93853889a674b1d2ad72fab19ee5d0e316a96600..288863374673ca6ffcb94fe7d8592097d683418f 100644 (file)
@@ -11,7 +11,6 @@ import { of } from 'rxjs';
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { CephfsService } from '../../../shared/api/cephfs.service';
 import { ViewCacheStatus } from '../../../shared/enum/view-cache-status.enum';
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { CephfsService } from '../../../shared/api/cephfs.service';
 import { ViewCacheStatus } from '../../../shared/enum/view-cache-status.enum';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { CephfsClientsComponent } from '../cephfs-clients/cephfs-clients.component';
 import { CephfsDetailComponent } from '../cephfs-detail/cephfs-detail.component';
 import { SharedModule } from '../../../shared/shared.module';
 import { CephfsClientsComponent } from '../cephfs-clients/cephfs-clients.component';
 import { CephfsDetailComponent } from '../cephfs-detail/cephfs-detail.component';
@@ -49,24 +48,22 @@ describe('CephfsTabsComponent', () => {
     };
   };
 
     };
   };
 
-  const setSelection = (selection: object[]) => {
-    component.selection.selected = selection;
+  const setSelection = (selection: any) => {
+    component.selection = selection;
     component.ngOnChanges();
   };
 
   const selectFs = (id: number, name: string) => {
     component.ngOnChanges();
   };
 
   const selectFs = (id: number, name: string) => {
-    setSelection([
-      {
-        id,
-        mdsmap: {
-          info: {
-            something: {
-              name
-            }
+    setSelection({
+      id,
+      mdsmap: {
+        info: {
+          something: {
+            name
           }
         }
       }
           }
         }
       }
-    ]);
+    });
   };
 
   const updateData = () => {
   };
 
   const updateData = () => {
@@ -101,7 +98,7 @@ describe('CephfsTabsComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(CephfsTabsComponent);
     component = fixture.componentInstance;
   beforeEach(() => {
     fixture = TestBed.createComponent(CephfsTabsComponent);
     component = fixture.componentInstance;
-    component.selection = new CdTableSelection();
+    component.selection = undefined;
     data = {
       standbys: 'b',
       pools: [{}, {}],
     data = {
       standbys: 'b',
       pools: [{}, {}],
@@ -126,14 +123,12 @@ describe('CephfsTabsComponent', () => {
   });
 
   it('should resist invalid mds info', () => {
   });
 
   it('should resist invalid mds info', () => {
-    setSelection([
-      {
-        id: 3,
-        mdsmap: {
-          info: {}
-        }
+    setSelection({
+      id: 3,
+      mdsmap: {
+        info: {}
       }
       }
-    ]);
+    });
     expect(component.grafanaId).toBe(undefined);
   });
 
     expect(component.grafanaId).toBe(undefined);
   });
 
@@ -212,7 +207,7 @@ describe('CephfsTabsComponent', () => {
     });
 
     it('should should unsubscribe on deselect', () => {
     });
 
     it('should should unsubscribe on deselect', () => {
-      setSelection([]);
+      setSelection(undefined);
       expect(old.unsubscribed).toBe(true);
       expect(getReload()).toBe(undefined); // Cleared timer subscription
     });
       expect(old.unsubscribed).toBe(true);
       expect(getReload()).toBe(undefined); // Cleared timer subscription
     });
index cd5e28a84b23c25641fc6c0f067f2c1355a8ff86..454922c00a0e6b8c2b862426d22e9dfb1a4984d3 100644 (file)
@@ -5,7 +5,6 @@ import { Subscription, timer } from 'rxjs';
 
 import { CephfsService } from '../../../shared/api/cephfs.service';
 import { ViewCacheStatus } from '../../../shared/enum/view-cache-status.enum';
 
 import { CephfsService } from '../../../shared/api/cephfs.service';
 import { ViewCacheStatus } from '../../../shared/enum/view-cache-status.enum';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { Permission } from '../../../shared/models/permissions';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 
 import { Permission } from '../../../shared/models/permissions';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 
@@ -16,8 +15,7 @@ import { AuthStorageService } from '../../../shared/services/auth-storage.servic
 })
 export class CephfsTabsComponent implements OnChanges, OnDestroy {
   @Input()
 })
 export class CephfsTabsComponent implements OnChanges, OnDestroy {
   @Input()
-  selection: CdTableSelection;
-  selectedItem: any;
+  selection: any;
 
   // Grafana tab
   grafanaId: any;
 
   // Grafana tab
   grafanaId: any;
@@ -54,13 +52,12 @@ export class CephfsTabsComponent implements OnChanges, OnDestroy {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    this.selectedItem = this.selection.first();
-    if (!this.selectedItem) {
+    if (!this.selection) {
       this.unsubscribeInterval();
       return;
     }
       this.unsubscribeInterval();
       return;
     }
-    if (this.selectedItem.id !== this.id) {
-      this.setupSelected(this.selectedItem.id, this.selectedItem.mdsmap.info);
+    if (this.selection.id !== this.id) {
+      this.setupSelected(this.selection.id, this.selection.mdsmap.info);
     }
   }
 
     }
   }
 
index e1634f1e4d17611ecad7fa73ac2e93b894823800..5eb59c9e7f54e8f83e533fed6bcc97a95d12bfb2 100644 (file)
@@ -51,6 +51,7 @@ import { SilenceMatcherModalComponent } from './prometheus/silence-matcher-modal
 import { ServiceDaemonListComponent } from './services/service-daemon-list/service-daemon-list.component';
 import { ServiceDetailsComponent } from './services/service-details/service-details.component';
 import { ServicesComponent } from './services/services.component';
 import { ServiceDaemonListComponent } from './services/service-daemon-list/service-daemon-list.component';
 import { ServiceDetailsComponent } from './services/service-details/service-details.component';
 import { ServicesComponent } from './services/services.component';
+import { TelemetryComponent } from './telemetry/telemetry.component';
 
 @NgModule({
   entryComponents: [
 
 @NgModule({
   entryComponents: [
@@ -122,7 +123,8 @@ import { ServicesComponent } from './services/services.component';
     MonitoringListComponent,
     HostFormComponent,
     ServiceDetailsComponent,
     MonitoringListComponent,
     HostFormComponent,
     ServiceDetailsComponent,
-    ServiceDaemonListComponent
+    ServiceDaemonListComponent,
+    TelemetryComponent
   ]
 })
 export class ClusterModule {}
   ]
 })
 export class ClusterModule {}
index 1ceac7b25da452ea28a82c9257cebabddf33a011..e690b4a91c10d705b5f7157c58ea418fc4453afa 100755 (executable)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection?.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <table class="table table-striped table-bordered">
   <tab i18n-heading
        heading="Details">
     <table class="table table-striped table-bordered">
@@ -6,23 +6,23 @@
         <tr>
           <td i18n
               class="bold w-25">Name</td>
         <tr>
           <td i18n
               class="bold w-25">Name</td>
-          <td class="w-75">{{ selectedItem.name }}</td>
+          <td class="w-75">{{ selection.name }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Description</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Description</td>
-          <td>{{ selectedItem.desc }}</td>
+          <td>{{ selection.desc }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Long description</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Long description</td>
-          <td>{{ selectedItem.long_desc }}</td>
+          <td>{{ selection.long_desc }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Current values</td>
           <td>
         </tr>
         <tr>
           <td i18n
               class="bold">Current values</td>
           <td>
-            <span *ngFor="let conf of selectedItem.value; last as isLast">
+            <span *ngFor="let conf of selection.value; last as isLast">
               {{ conf.section }}: {{ conf.value }}{{ !isLast ? "," : "" }}<br />
             </span>
           </td>
               {{ conf.section }}: {{ conf.value }}{{ !isLast ? "," : "" }}<br />
             </span>
           </td>
         <tr>
           <td i18n
               class="bold">Default</td>
         <tr>
           <td i18n
               class="bold">Default</td>
-          <td>{{ selectedItem.default }}</td>
+          <td>{{ selection.default }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Daemon default</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Daemon default</td>
-          <td>{{ selectedItem.daemon_default }}</td>
+          <td>{{ selection.daemon_default }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Type</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Type</td>
-          <td>{{ selectedItem.type }}</td>
+          <td>{{ selection.type }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Min</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Min</td>
-          <td>{{ selectedItem.min }}</td>
+          <td>{{ selection.min }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Max</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Max</td>
-          <td>{{ selectedItem.max }}</td>
+          <td>{{ selection.max }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Flags</td>
           <td>
         </tr>
         <tr>
           <td i18n
               class="bold">Flags</td>
           <td>
-            <span *ngFor="let flag of selectedItem.flags">
+            <span *ngFor="let flag of selection.flags">
               <span title="{{ flags[flag] }}">
                 <span class="badge badge-dark mr-2">{{ flag | uppercase }}</span>
               </span>
               <span title="{{ flags[flag] }}">
                 <span class="badge badge-dark mr-2">{{ flag | uppercase }}</span>
               </span>
@@ -67,7 +67,7 @@
           <td i18n
               class="bold">Services</td>
           <td>
           <td i18n
               class="bold">Services</td>
           <td>
-            <span *ngFor="let service of selectedItem.services">
+            <span *ngFor="let service of selection.services">
               <span class="badge badge-dark mr-2">{{ service }}</span>
             </span>
           </td>
               <span class="badge badge-dark mr-2">{{ service }}</span>
             </span>
           </td>
         <tr>
           <td i18n
               class="bold">Source</td>
         <tr>
           <td i18n
               class="bold">Source</td>
-          <td>{{ selectedItem.source }}</td>
+          <td>{{ selection.source }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Level</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Level</td>
-          <td>{{ selectedItem.level }}</td>
+          <td>{{ selection.level }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Can be updated at runtime (editable)</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Can be updated at runtime (editable)</td>
-          <td>{{ selectedItem.can_update_at_runtime | booleanText }}</td>
+          <td>{{ selection.can_update_at_runtime | booleanText }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Tags</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Tags</td>
-          <td>{{ selectedItem.tags }}</td>
+          <td>{{ selection.tags }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Enum values</td>
         </tr>
         <tr>
           <td i18n
               class="bold">Enum values</td>
-          <td>{{ selectedItem.enum_values }}</td>
+          <td>{{ selection.enum_values }}</td>
         </tr>
         <tr>
           <td i18n
               class="bold">See also</td>
         </tr>
         <tr>
           <td i18n
               class="bold">See also</td>
-          <td>{{ selectedItem.see_also }}</td>
+          <td>{{ selection.see_also }}</td>
         </tr>
       </tbody>
     </table>
         </tr>
       </tbody>
     </table>
index 25876369667461ec45ca5d4a9fc835a363c4d91b..d80544bd02c7faf90308b3be04dd086830e3e157 100755 (executable)
@@ -3,8 +3,6 @@ import { Component, Input, OnChanges } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import * as _ from 'lodash';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import * as _ from 'lodash';
 
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
-
 @Component({
   selector: 'cd-configuration-details',
   templateUrl: './configuration-details.component.html',
 @Component({
   selector: 'cd-configuration-details',
   templateUrl: './configuration-details.component.html',
@@ -12,8 +10,7 @@ import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 })
 export class ConfigurationDetailsComponent implements OnChanges {
   @Input()
 })
 export class ConfigurationDetailsComponent implements OnChanges {
   @Input()
-  selection: CdTableSelection;
-  selectedItem: any;
+  selection: any;
   flags = {
     runtime: this.i18n('The value can be updated at runtime.'),
     no_mon_update: this.i18n(`Daemons/clients do not pull this value from the
   flags = {
     runtime: this.i18n('The value can be updated at runtime.'),
     no_mon_update: this.i18n(`Daemons/clients do not pull this value from the
@@ -28,9 +25,8 @@ export class ConfigurationDetailsComponent implements OnChanges {
   constructor(private i18n: I18n) {}
 
   ngOnChanges() {
   constructor(private i18n: I18n) {}
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.selectedItem = this.selection.first();
-      this.selectedItem.services = _.split(this.selectedItem.services, ',');
+    if (this.selection) {
+      this.selection.services = _.split(this.selection.services, ',');
     }
   }
 }
     }
   }
 }
index e99ff3cee971f7bb2709f3eb4d785d3774d24851..b7458f6a85be378adf6ff5986f3db423a24d7996 100644 (file)
@@ -112,18 +112,12 @@ export class ConfigurationFormComponent implements OnInit {
         } else {
           sectionValue = value.value;
         }
         } else {
           sectionValue = value.value;
         }
-        this.configForm
-          .get('values')
-          .get(value.section)
-          .setValue(sectionValue);
+        this.configForm.get('values').get(value.section).setValue(sectionValue);
       });
     }
 
     this.availSections.forEach((section) => {
       });
     }
 
     this.availSections.forEach((section) => {
-      this.configForm
-        .get('values')
-        .get(section)
-        .setValidators(validators);
+      this.configForm.get('values').get(section).setValidators(validators);
     });
 
     const currentType = ConfigOptionTypes.getType(response.type);
     });
 
     const currentType = ConfigOptionTypes.getType(response.type);
index f4b6401a24662f8f1f95d6e7f236dc831d8095a1..a1eb64963395b73ff65bb23505cb73101e064670 100644 (file)
@@ -3,6 +3,8 @@
           [columns]="columns"
           [extraFilterableColumns]="filters"
           selectionType="single"
           [columns]="columns"
           [extraFilterableColumns]="filters"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
@@ -10,7 +12,7 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-configuration-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-configuration-details cdTableDetail
-                            [selection]="selection">
+                            [selection]="expandedRow">
   </cd-configuration-details>
 </cd-table>
 
   </cd-configuration-details>
 </cd-table>
 
index 712c478dab20538f98ea34c51a1190cdd14cfe83..817ce39c3bbea15f9e291f49511d4a3352ce434f 100644 (file)
@@ -2,6 +2,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { By } from '@angular/platform-browser';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { By } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -18,6 +19,7 @@ describe('ConfigurationComponent', () => {
   configureTestBed({
     declarations: [ConfigurationComponent, ConfigurationDetailsComponent],
     imports: [
   configureTestBed({
     declarations: [ConfigurationComponent, ConfigurationDetailsComponent],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       FormsModule,
       TabsModule.forRoot(),
       SharedModule,
       FormsModule,
       TabsModule.forRoot(),
index f1dcdc4fa1c8f513e97edf08c3d8c3c87b8b79bc..0c6863b9996e67d79d96e70d43cf6bec8e0c7421 100644 (file)
@@ -3,6 +3,7 @@ import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { ConfigurationService } from '../../../shared/api/configuration.service';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { ConfigurationService } from '../../../shared/api/configuration.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../shared/enum/icons.enum';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../shared/enum/icons.enum';
@@ -18,7 +19,7 @@ import { AuthStorageService } from '../../../shared/services/auth-storage.servic
   templateUrl: './configuration.component.html',
   styleUrls: ['./configuration.component.scss']
 })
   templateUrl: './configuration.component.html',
   styleUrls: ['./configuration.component.scss']
 })
-export class ConfigurationComponent implements OnInit {
+export class ConfigurationComponent extends ListWithDetails implements OnInit {
   permission: Permission;
   tableActions: CdTableAction[];
   data: any[] = [];
   permission: Permission;
   tableActions: CdTableAction[];
   data: any[] = [];
@@ -91,6 +92,7 @@ export class ConfigurationComponent implements OnInit {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().configOpt;
     const getConfigOptUri = () =>
       this.selection.first() && `${encodeURIComponent(this.selection.first().name)}`;
     this.permission = this.authStorageService.getPermissions().configOpt;
     const getConfigOptUri = () =>
       this.selection.first() && `${encodeURIComponent(this.selection.first().name)}`;
index 42add6f2c039b6b00fc1c67e07e4cd9f885cd6a5..1f0bab4cd433ec18c40e01432e831e0958ac9189 100644 (file)
@@ -2,10 +2,10 @@ import { Component, OnInit, ViewChild } from '@angular/core';
 
 import {
   ITreeOptions,
 
 import {
   ITreeOptions,
-  TREE_ACTIONS,
   TreeComponent,
   TreeModel,
   TreeComponent,
   TreeModel,
-  TreeNode
+  TreeNode,
+  TREE_ACTIONS
 } from 'angular-tree-component';
 
 import { HealthService } from '../../../shared/api/health.service';
 } from 'angular-tree-component';
 
 import { HealthService } from '../../../shared/api/health.service';
index a77f3bcd222688ef234bf4043120e596c943da24..ef072c8af68085392881e6dc3183731ed2873069 100644 (file)
@@ -1,7 +1,7 @@
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Devices">
   <tab i18n-heading
        heading="Devices">
-    <cd-device-list [hostname]="selection.first()['hostname']"></cd-device-list>
+    <cd-device-list [hostname]="selection['hostname']"></cd-device-list>
   </tab>
   <tab i18n-heading
        heading="Inventory"
   </tab>
   <tab i18n-heading
        heading="Inventory"
index b78c15ffc29bdef5544d78316db62708196718be..865386bc6cda56dc34b135261d30edda79200ce0 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
@@ -9,7 +10,6 @@ import { ToastrModule } from 'ngx-toastr';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
 import { CoreModule } from '../../../../core/core.module';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
 import { CoreModule } from '../../../../core/core.module';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { Permissions } from '../../../../shared/models/permissions';
 import { SharedModule } from '../../../../shared/shared.module';
 import { CephModule } from '../../../ceph.module';
 import { Permissions } from '../../../../shared/models/permissions';
 import { SharedModule } from '../../../../shared/shared.module';
 import { CephModule } from '../../../ceph.module';
@@ -22,6 +22,7 @@ describe('HostDetailsComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       TabsModule.forRoot(),
       BsDropdownModule.forRoot(),
       HttpClientTestingModule,
       TabsModule.forRoot(),
       BsDropdownModule.forRoot(),
@@ -40,7 +41,7 @@ describe('HostDetailsComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(HostDetailsComponent);
     component = fixture.componentInstance;
   beforeEach(() => {
     fixture = TestBed.createComponent(HostDetailsComponent);
     component = fixture.componentInstance;
-    component.selection = new CdTableSelection();
+    component.selection = undefined;
     component.permissions = new Permissions({
       hosts: ['read'],
       grafana: ['read']
     component.permissions = new Permissions({
       hosts: ['read'],
       grafana: ['read']
@@ -53,7 +54,7 @@ describe('HostDetailsComponent', () => {
 
   describe('Host details tabset', () => {
     beforeEach(() => {
 
   describe('Host details tabset', () => {
     beforeEach(() => {
-      component.selection.selected = [{ hostname: 'localhost' }];
+      component.selection = { hostname: 'localhost' };
       fixture.detectChanges();
     });
 
       fixture.detectChanges();
     });
 
index 469c4c3ab7ed1b42fe5a2187ad8429f6abd3f268..f98fa9a093abb9ce3b62d4de74dbd3ab5f303733 100644 (file)
@@ -2,7 +2,6 @@ import { Component, Input, ViewChild } from '@angular/core';
 
 import { TabsetComponent } from 'ngx-bootstrap/tabs';
 
 
 import { TabsetComponent } from 'ngx-bootstrap/tabs';
 
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { Permissions } from '../../../../shared/models/permissions';
 
 @Component({
 import { Permissions } from '../../../../shared/models/permissions';
 
 @Component({
@@ -15,13 +14,13 @@ export class HostDetailsComponent {
   permissions: Permissions;
 
   @Input()
   permissions: Permissions;
 
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   @ViewChild(TabsetComponent, { static: false })
   tabsetChild: TabsetComponent;
 
   get selectedHostname(): string {
 
   @ViewChild(TabsetComponent, { static: false })
   tabsetChild: TabsetComponent;
 
   get selectedHostname(): string {
-    return this.selection.hasSelection ? this.selection.first()['hostname'] : null;
+    return this.selection !== undefined ? this.selection['hostname'] : null;
   }
 
   constructor() {}
   }
 
   constructor() {}
index ab63cc90b51388fc19a8c7a05676ab2594f1b6b0..5b85355017c2cbe9310ad1c9a930b8ae8dc602d5 100644 (file)
@@ -6,6 +6,8 @@
               columnMode="flex"
               (fetchData)="getHosts($event)"
               selectionType="single"
               columnMode="flex"
               (fetchData)="getHosts($event)"
               selectionType="single"
+              [hasDetails]="true"
+              (setExpandedRow)="setExpandedRow($event)"
               (updateSelection)="updateSelection($event)">
       <div class="table-actions btn-toolbar">
         <cd-table-actions [permission]="permissions.hosts"
               (updateSelection)="updateSelection($event)">
       <div class="table-actions btn-toolbar">
         <cd-table-actions [permission]="permissions.hosts"
           <a class="service-link"
              [routerLink]="[service.cdLink]"
              [queryParams]="cdParams"
           <a class="service-link"
              [routerLink]="[service.cdLink]"
              [queryParams]="cdParams"
-             *ngIf="service.canRead">{{ service.type }}.{{ service.id }}
-          </a>
+             *ngIf="service.canRead">{{ service.type }}.{{ service.id }}</a>
           <span *ngIf="!service.canRead">
             {{ service.type }}.{{ service.id }}
           </span>
           <span *ngIf="!service.canRead">
             {{ service.type }}.{{ service.id }}
           </span>
-          {{ !isLast ? ", " : "" }}
+          <ng-container *ngIf="!isLast">, </ng-container>
         </span>
       </ng-template>
       <cd-host-details cdTableDetail
                        [permissions]="permissions"
         </span>
       </ng-template>
       <cd-host-details cdTableDetail
                        [permissions]="permissions"
-                       [selection]="selection">
+                       [selection]="expandedRow">
       </cd-host-details>
     </cd-table>
   </tab>
       </cd-host-details>
     </cd-table>
   </tab>
index 889f60610ba789ad6778786e3fae3625e0de66a6..69ed5df199647f9f8e22ab03668ead469cfdfd7e 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@@ -30,6 +31,7 @@ describe('HostsComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       CephSharedModule,
       SharedModule,
       HttpClientTestingModule,
       CephSharedModule,
       SharedModule,
       HttpClientTestingModule,
@@ -74,7 +76,8 @@ describe('HostsComponent', () => {
           }
         ],
         hostname: hostname,
           }
         ],
         hostname: hostname,
-        ceph_version: 'ceph version Development'
+        ceph_version: 'ceph version Development',
+        labels: ['foo', 'bar']
       }
     ];
 
       }
     ];
 
index d6812be0d69d80809195846cc7aeeb5a75ff28e6..91e9faa7f2cbe67c45d07d5d6b9a808f9f2686e7 100644 (file)
@@ -5,6 +5,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill';
 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 
 import { HostService } from '../../../shared/api/host.service';
 import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 
 import { HostService } from '../../../shared/api/host.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { Icons } from '../../../shared/enum/icons.enum';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { Icons } from '../../../shared/enum/icons.enum';
@@ -15,6 +16,7 @@ import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { FinishedTask } from '../../../shared/models/finished-task';
 import { Permissions } from '../../../shared/models/permissions';
 import { CephShortVersionPipe } from '../../../shared/pipes/ceph-short-version.pipe';
 import { FinishedTask } from '../../../shared/models/finished-task';
 import { Permissions } from '../../../shared/models/permissions';
 import { CephShortVersionPipe } from '../../../shared/pipes/ceph-short-version.pipe';
+import { JoinPipe } from '../../../shared/pipes/join.pipe';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { DepCheckerService } from '../../../shared/services/dep-checker.service';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { DepCheckerService } from '../../../shared/services/dep-checker.service';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
@@ -28,7 +30,7 @@ const BASE_URL = 'hosts';
   styleUrls: ['./hosts.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
   styleUrls: ['./hosts.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
-export class HostsComponent implements OnInit {
+export class HostsComponent extends ListWithDetails implements OnInit {
   permissions: Permissions;
   columns: Array<CdTableColumn> = [];
   hosts: Array<object> = [];
   permissions: Permissions;
   columns: Array<CdTableColumn> = [];
   hosts: Array<object> = [];
@@ -45,6 +47,7 @@ export class HostsComponent implements OnInit {
     private authStorageService: AuthStorageService,
     private hostService: HostService,
     private cephShortVersionPipe: CephShortVersionPipe,
     private authStorageService: AuthStorageService,
     private hostService: HostService,
     private cephShortVersionPipe: CephShortVersionPipe,
+    private joinPipe: JoinPipe,
     private i18n: I18n,
     private urlBuilder: URLBuilderService,
     private actionLabels: ActionLabelsI18n,
     private i18n: I18n,
     private urlBuilder: URLBuilderService,
     private actionLabels: ActionLabelsI18n,
@@ -53,6 +56,7 @@ export class HostsComponent implements OnInit {
     private router: Router,
     private depCheckerService: DepCheckerService
   ) {
     private router: Router,
     private depCheckerService: DepCheckerService
   ) {
+    super();
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
@@ -98,6 +102,12 @@ export class HostsComponent implements OnInit {
         flexGrow: 3,
         cellTemplate: this.servicesTpl
       },
         flexGrow: 3,
         cellTemplate: this.servicesTpl
       },
+      {
+        name: this.i18n('Labels'),
+        prop: 'labels',
+        flexGrow: 1,
+        pipe: this.joinPipe
+      },
       {
         name: this.i18n('Version'),
         prop: 'ceph_version',
       {
         name: this.i18n('Version'),
         prop: 'ceph_version',
index af6f807bc28e5fa576378fe10edfe975aa25e146..695b3377a15dd461383e95810657f5ff8d311f13 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import * as _ from 'lodash';
 import { ToastrModule } from 'ngx-toastr';
 
 import * as _ from 'lodash';
 import { ToastrModule } from 'ngx-toastr';
@@ -14,7 +15,13 @@ describe('InventoryDevicesComponent', () => {
   let fixture: ComponentFixture<InventoryDevicesComponent>;
 
   configureTestBed({
   let fixture: ComponentFixture<InventoryDevicesComponent>;
 
   configureTestBed({
-    imports: [FormsModule, HttpClientTestingModule, SharedModule, ToastrModule.forRoot()],
+    imports: [
+      BrowserAnimationsModule,
+      FormsModule,
+      HttpClientTestingModule,
+      SharedModule,
+      ToastrModule.forRoot()
+    ],
     providers: [i18nProviders],
     declarations: [InventoryDevicesComponent]
   });
     providers: [i18nProviders],
     declarations: [InventoryDevicesComponent]
   });
index 10a930f5b58c0022db20d642350d4b906feaa63a..8ef14bc6d7686e8a139aa70120b890b12a691432 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ToastrModule } from 'ngx-toastr';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ToastrModule } from 'ngx-toastr';
@@ -19,6 +20,7 @@ describe('InventoryComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       FormsModule,
       SharedModule,
       HttpClientTestingModule,
       FormsModule,
       SharedModule,
       HttpClientTestingModule,
index d8b1b8de4982087dbee93adc906a86ec9116b314..8e0f19a41169470a62275957f29099f84c9048f3 100644 (file)
@@ -1,4 +1,4 @@
-@import 'styles';
+@import 'defaults.scss';
 
 p {
   font-family: monospace;
 
 p {
   font-family: monospace;
@@ -47,15 +47,6 @@ p {
   }
 }
 
   }
 }
 
-label {
-  @extend .mr-2;
-}
-
-.form-group {
-  @extend .mr-3;
-  @extend .mb-3;
-}
-
 .middle {
   padding-top: 7px;
 }
 .middle {
   padding-top: 7px;
 }
index 7913fd40745178057c5bb74def36bef117199e9f..6ed9b65da3996c4a6ee26390181a1409abb8ea03 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [data]="module_config">
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [data]="module_config">
index 236683404554acda6e0cca797182b7474401c4a0..1e0575e71a6929d3e789adc783f2860387ab166f 100644 (file)
@@ -4,7 +4,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../../shared/shared.module';
 import { MgrModuleDetailsComponent } from './mgr-module-details.component';
 
 import { SharedModule } from '../../../../shared/shared.module';
 import { MgrModuleDetailsComponent } from './mgr-module-details.component';
 
@@ -21,7 +20,7 @@ describe('MgrModuleDetailsComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(MgrModuleDetailsComponent);
     component = fixture.componentInstance;
   beforeEach(() => {
     fixture = TestBed.createComponent(MgrModuleDetailsComponent);
     component = fixture.componentInstance;
-    component.selection = new CdTableSelection();
+    component.selection = undefined;
     fixture.detectChanges();
   });
 
     fixture.detectChanges();
   });
 
index dd166779d8af64d8a4907b2c3ba688acc8185e77..dbe2066e4a37f0e910bfd3043e05902bdf0c09b3 100644 (file)
@@ -1,7 +1,6 @@
 import { Component, Input, OnChanges } from '@angular/core';
 
 import { MgrModuleService } from '../../../../shared/api/mgr-module.service';
 import { Component, Input, OnChanges } from '@angular/core';
 
 import { MgrModuleService } from '../../../../shared/api/mgr-module.service';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 
 @Component({
   selector: 'cd-mgr-module-details',
 
 @Component({
   selector: 'cd-mgr-module-details',
@@ -12,14 +11,13 @@ export class MgrModuleDetailsComponent implements OnChanges {
   module_config: any;
 
   @Input()
   module_config: any;
 
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   constructor(private mgrModuleService: MgrModuleService) {}
 
   ngOnChanges() {
 
   constructor(private mgrModuleService: MgrModuleService) {}
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      const selectedItem = this.selection.first();
-      this.mgrModuleService.getConfig(selectedItem.name).subscribe((resp: any) => {
+    if (this.selection) {
+      this.mgrModuleService.getConfig(this.selection.name).subscribe((resp: any) => {
         this.module_config = resp;
       });
     }
         this.module_config = resp;
       });
     }
index 967ae6612f7ef30f2a1155c038df69201e6730eb..29b287de8bfe95de2ae296a9b20e6ea885b4af79 100644 (file)
@@ -4,6 +4,8 @@
           [columns]="columns"
           columnMode="flex"
           selectionType="single"
           [columns]="columns"
           columnMode="flex"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)"
           identifier="module"
           (fetchData)="getModuleList($event)">
           (updateSelection)="updateSelection($event)"
           identifier="module"
           (fetchData)="getModuleList($event)">
@@ -13,6 +15,6 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-mgr-module-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-mgr-module-details cdTableDetail
-                         [selection]="selection">
+                         [selection]="expandedRow">
   </cd-mgr-module-details>
 </cd-table>
   </cd-mgr-module-details>
 </cd-table>
index 931ef28e92166720f0658d269e18430bcf3e7d66..1072a9e449e81871d4bf115d3e3eaab31c585805 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -28,6 +29,7 @@ describe('MgrModuleListComponent', () => {
   configureTestBed({
     declarations: [MgrModuleListComponent, MgrModuleDetailsComponent],
     imports: [
   configureTestBed({
     declarations: [MgrModuleListComponent, MgrModuleDetailsComponent],
     imports: [
+      BrowserAnimationsModule,
       RouterTestingModule,
       SharedModule,
       HttpClientTestingModule,
       RouterTestingModule,
       SharedModule,
       HttpClientTestingModule,
index 5d93b6c17899872b9304230baf6e693536dcdfc7..75042749a92c255df5687364f1f3cb4efdba4eea 100644 (file)
@@ -5,6 +5,7 @@ import { BlockUI, NgBlockUI } from 'ng-block-ui';
 import { timer as observableTimer } from 'rxjs';
 
 import { MgrModuleService } from '../../../../shared/api/mgr-module.service';
 import { timer as observableTimer } from 'rxjs';
 
 import { MgrModuleService } from '../../../../shared/api/mgr-module.service';
+import { ListWithDetails } from '../../../../shared/classes/list-with-details.class';
 import { TableComponent } from '../../../../shared/datatable/table/table.component';
 import { CellTemplate } from '../../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../../shared/enum/icons.enum';
 import { TableComponent } from '../../../../shared/datatable/table/table.component';
 import { CellTemplate } from '../../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../../shared/enum/icons.enum';
@@ -21,7 +22,7 @@ import { NotificationService } from '../../../../shared/services/notification.se
   templateUrl: './mgr-module-list.component.html',
   styleUrls: ['./mgr-module-list.component.scss']
 })
   templateUrl: './mgr-module-list.component.html',
   styleUrls: ['./mgr-module-list.component.scss']
 })
-export class MgrModuleListComponent {
+export class MgrModuleListComponent extends ListWithDetails {
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @BlockUI()
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @BlockUI()
@@ -39,6 +40,7 @@ export class MgrModuleListComponent {
     private notificationService: NotificationService,
     private i18n: I18n
   ) {
     private notificationService: NotificationService,
     private i18n: I18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().configOpt;
     this.columns = [
       {
     this.permission = this.authStorageService.getPermissions().configOpt;
     this.columns = [
       {
index c9a95592224abb002f06632e18aba59d9fb0f1cc..441351b729a4d9b243f2e1f39f78e799bfaa0b18 100644 (file)
@@ -40,8 +40,7 @@ export class MonitorComponent {
             return lastValueA > lastValueB ? 1 : -1;
           }
         }
             return lastValueA > lastValueB ? 1 : -1;
           }
         }
-      ],
-      data: []
+      ]
     };
 
     this.notInQuorum = {
     };
 
     this.notInQuorum = {
@@ -49,8 +48,7 @@ export class MonitorComponent {
         { prop: 'name', name: this.i18n('Name'), cellTransformation: CellTemplate.routerLink },
         { prop: 'rank', name: this.i18n('Rank') },
         { prop: 'public_addr', name: this.i18n('Public Address') }
         { prop: 'name', name: this.i18n('Name'), cellTransformation: CellTemplate.routerLink },
         { prop: 'rank', name: this.i18n('Rank') },
         { prop: 'public_addr', name: this.i18n('Public Address') }
-      ],
-      data: []
+      ]
     };
   }
 
     };
   }
 
index 67ca9683be9ef3a62e5f8e14d9b8dcab935f8705..3430d00b48afc6d5c165c6739b5bc0401e4d39a1 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection.hasSingleSelection"
+<tabset *ngIf="selection"
         id="tabset-osd-details">
   <tab heading="Devices"
        i18n-heading>
         id="tabset-osd-details">
   <tab heading="Devices"
        i18n-heading>
index 16b7f20e331a1719a8486a382c67b5e2c8744f46..0a9bc9d49a0e6dc53e47dce0ca57db967e0a5443 100644 (file)
@@ -7,7 +7,6 @@ import { of } from 'rxjs';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
 import { OsdService } from '../../../../shared/api/osd.service';
 
 import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
 import { OsdService } from '../../../../shared/api/osd.service';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../../shared/shared.module';
 import { TablePerformanceCounterComponent } from '../../../performance-counter/table-performance-counter/table-performance-counter.component';
 import { DeviceListComponent } from '../../../shared/device-list/device-list.component';
 import { SharedModule } from '../../../../shared/shared.module';
 import { TablePerformanceCounterComponent } from '../../../performance-counter/table-performance-counter/table-performance-counter.component';
 import { DeviceListComponent } from '../../../shared/device-list/device-list.component';
@@ -38,7 +37,7 @@ describe('OsdDetailsComponent', () => {
     fixture = TestBed.createComponent(OsdDetailsComponent);
     component = fixture.componentInstance;
 
     fixture = TestBed.createComponent(OsdDetailsComponent);
     component = fixture.componentInstance;
 
-    component.selection = new CdTableSelection();
+    component.selection = undefined;
     debugElement = fixture.debugElement;
     osdService = debugElement.injector.get(OsdService);
 
     debugElement = fixture.debugElement;
     osdService = debugElement.injector.get(OsdService);
 
index 87c4d1fa9a609bccb124e3f44fdffbffd1b2a769..9cac703d2622692b3cd24554df3cbb9e87265af6 100644 (file)
@@ -3,7 +3,6 @@ import { Component, Input, OnChanges } from '@angular/core';
 import * as _ from 'lodash';
 
 import { OsdService } from '../../../../shared/api/osd.service';
 import * as _ from 'lodash';
 
 import { OsdService } from '../../../../shared/api/osd.service';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { Permission } from '../../../../shared/models/permissions';
 import { AuthStorageService } from '../../../../shared/services/auth-storage.service';
 
 import { Permission } from '../../../../shared/models/permissions';
 import { AuthStorageService } from '../../../../shared/services/auth-storage.service';
 
@@ -14,7 +13,7 @@ import { AuthStorageService } from '../../../../shared/services/auth-storage.ser
 })
 export class OsdDetailsComponent implements OnChanges {
   @Input()
 })
 export class OsdDetailsComponent implements OnChanges {
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   osd: {
     id?: number;
 
   osd: {
     id?: number;
@@ -33,8 +32,8 @@ export class OsdDetailsComponent implements OnChanges {
     this.osd = {
       loaded: false
     };
     this.osd = {
       loaded: false
     };
-    if (this.selection.hasSelection) {
-      this.osd = this.selection.first();
+    if (this.selection) {
+      this.osd = this.selection;
       this.refresh();
     }
   }
       this.refresh();
     }
   }
index d454899c549d086f9fd7629c9a0d2ac7dd89331c..2d7d51614533532cc4a911d274ee55cd05e79cb8 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { ToastrModule } from 'ngx-toastr';
 
 
 import { ToastrModule } from 'ngx-toastr';
 
@@ -50,7 +51,13 @@ describe('OsdDevicesSelectionGroupsComponent', () => {
   };
 
   configureTestBed({
   };
 
   configureTestBed({
-    imports: [FormsModule, HttpClientTestingModule, SharedModule, ToastrModule.forRoot()],
+    imports: [
+      BrowserAnimationsModule,
+      FormsModule,
+      HttpClientTestingModule,
+      SharedModule,
+      ToastrModule.forRoot()
+    ],
     providers: [i18nProviders],
     declarations: [OsdDevicesSelectionGroupsComponent, InventoryDevicesComponent]
   });
     providers: [i18nProviders],
     declarations: [OsdDevicesSelectionGroupsComponent, InventoryDevicesComponent]
   });
index e15c636cd349fcc5a7def7409fe0e1a49b3d09ba..0cf0d67ebf41df5f3219590b2f1809b72af9423b 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsModalRef } from 'ngx-bootstrap/modal';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsModalRef } from 'ngx-bootstrap/modal';
@@ -44,6 +45,7 @@ describe('OsdDevicesSelectionModalComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       FormsModule,
       HttpClientTestingModule,
       SharedModule,
       FormsModule,
       HttpClientTestingModule,
       SharedModule,
index ae4bafec4c2c96337d97dde4ef17e62e1ff6e805..4e61a8dad3d832a644e450811ff8456e0180cb82 100644 (file)
@@ -60,7 +60,7 @@ describe('OsdFlagsModalComponent', () => {
     expect(component.unknownFlags).toEqual(['foo']);
   });
 
     expect(component.unknownFlags).toEqual(['foo']);
   });
 
-  describe('test submitAction', function() {
+  describe('test submitAction', function () {
     let notificationType: NotificationType;
     let notificationService: NotificationService;
     let bsModalRef: BsModalRef;
     let notificationType: NotificationType;
     let notificationService: NotificationService;
     let bsModalRef: BsModalRef;
index 5b4d774a699cab1ff5b1a11d7fea1f44af4f4a76..3bc895bc95396bc5061a1d3d770766c7a7f142e4 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ToastrModule } from 'ngx-toastr';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ToastrModule } from 'ngx-toastr';
@@ -95,6 +96,7 @@ describe('OsdFormComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       FormsModule,
       SharedModule,
       HttpClientTestingModule,
       FormsModule,
       SharedModule,
index f939dc7231756c0a205b5009d2b05d7e9550d6dd..196a07e2ffb1d4247a44d9a632b5c40430dc6e5a 100644 (file)
@@ -2,10 +2,13 @@
   <tab i18n-heading
        heading="OSDs List">
 
   <tab i18n-heading
        heading="OSDs List">
 
-    <cd-table [data]="osds"
+    <cd-table [autoReload]="false"
+              [data]="osds"
               (fetchData)="getOsdList()"
               [columns]="columns"
               selectionType="multiClick"
               (fetchData)="getOsdList()"
               [columns]="columns"
               selectionType="multiClick"
+              [hasDetails]="true"
+              (setExpandedRow)="setExpandedRow($event)"
               (updateSelection)="updateSelection($event)"
               [updateSelectionOnRefresh]="'never'">
 
               (updateSelection)="updateSelection($event)"
               [updateSelectionOnRefresh]="'never'">
 
@@ -27,7 +30,7 @@
       </div>
 
       <cd-osd-details cdTableDetail
       </div>
 
       <cd-osd-details cdTableDetail
-                      [selection]="selection">
+                      [selection]="expandedRow">
       </cd-osd-details>
     </cd-table>
 
       </cd-osd-details>
     </cd-table>
 
index bba92939450b3b62d096f897706a05eb6e02a66d..22ac804fa8294b7f08fa7dcb9451aeda124c995d 100644 (file)
@@ -2,6 +2,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
 import { By } from '@angular/platform-browser';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { ReactiveFormsModule } from '@angular/forms';
 import { By } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import * as _ from 'lodash';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import * as _ from 'lodash';
@@ -89,6 +90,7 @@ describe('OsdListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       PerformanceCounterModule,
       TabsModule.forRoot(),
       HttpClientTestingModule,
       PerformanceCounterModule,
       TabsModule.forRoot(),
@@ -124,7 +126,7 @@ describe('OsdListComponent', () => {
     fixture.detectChanges();
     expect(
       component.columns
     fixture.detectChanges();
     expect(
       component.columns
-        .filter((column) => !column.checkboxable)
+        .filter((column) => !(column.prop === undefined))
         .every((column) => Boolean(column.prop))
     ).toBeTruthy();
   });
         .every((column) => Boolean(column.prop))
     ).toBeTruthy();
   });
index bd5844b0f958caf3c1bf399fa1e17388083459de..76a0130749afd6906613bfb91c22bca5e02f7289 100644 (file)
@@ -7,6 +7,7 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { forkJoin as observableForkJoin, Observable } from 'rxjs';
 
 import { OsdService } from '../../../../shared/api/osd.service';
 import { forkJoin as observableForkJoin, Observable } from 'rxjs';
 
 import { OsdService } from '../../../../shared/api/osd.service';
+import { ListWithDetails } from '../../../../shared/classes/list-with-details.class';
 import { ConfirmationModalComponent } from '../../../../shared/components/confirmation-modal/confirmation-modal.component';
 import { CriticalConfirmationModalComponent } from '../../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { FormModalComponent } from '../../../../shared/components/form-modal/form-modal.component';
 import { ConfirmationModalComponent } from '../../../../shared/components/confirmation-modal/confirmation-modal.component';
 import { CriticalConfirmationModalComponent } from '../../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { FormModalComponent } from '../../../../shared/components/form-modal/form-modal.component';
@@ -40,7 +41,7 @@ const BASE_URL = 'osd';
   styleUrls: ['./osd-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
   styleUrls: ['./osd-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
-export class OsdListComponent implements OnInit {
+export class OsdListComponent extends ListWithDetails implements OnInit {
   @ViewChild('osdUsageTpl', { static: true })
   osdUsageTpl: TemplateRef<any>;
   @ViewChild('markOsdConfirmationTpl', { static: true })
   @ViewChild('osdUsageTpl', { static: true })
   osdUsageTpl: TemplateRef<any>;
   @ViewChild('markOsdConfirmationTpl', { static: true })
@@ -89,6 +90,7 @@ export class OsdListComponent implements OnInit {
     public actionLabels: ActionLabelsI18n,
     public notificationService: NotificationService
   ) {
     public actionLabels: ActionLabelsI18n,
     public notificationService: NotificationService
   ) {
+    super();
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
index 64a446c87fb8626bf74b2a4c95a0eebd8828caa8..e9ad6760a897731aacdf8470466aa0e1e127bc0f 100644 (file)
@@ -4,25 +4,24 @@
           [forceIdentifier]="true"
           [customCss]="customCss"
           selectionType="single"
           [forceIdentifier]="true"
           [customCss]="customCss"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
                     [selection]="selection"
                     [tableActions]="tableActions">
   </cd-table-actions>
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [permission]="permission"
                     [selection]="selection"
                     [tableActions]="tableActions">
   </cd-table-actions>
-  <tabset cdTableDetail
-          *ngIf="selection.hasSingleSelection">
-    <tab i18n-heading
-         heading="Details">
-      <cd-table-key-value [renderObjects]="true"
-                          [hideEmpty]="true"
-                          [appendParentKey]="false"
-                          [data]="selection.first()"
-                          [customCss]="customCss"
-                          [autoReload]="false">
-      </cd-table-key-value>
-    </tab>
-  </tabset>
+
+  <cd-table-key-value cdTableDetail
+                      *ngIf="expandedRow"
+                      [renderObjects]="true"
+                      [hideEmpty]="true"
+                      [appendParentKey]="false"
+                      [data]="expandedRow"
+                      [customCss]="customCss"
+                      [autoReload]="false">
+  </cd-table-key-value>
 </cd-table>
 
 <ng-template #externalLinkTpl
 </cd-table>
 
 <ng-template #externalLinkTpl
index 1b2c18aced14ff932edc914ad32c0b38d3ad32fb..ba736415afc9abee3a4058c7b6377aa290db510c 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -24,6 +25,7 @@ describe('ActiveAlertListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       TabsModule.forRoot(),
       RouterTestingModule,
       HttpClientTestingModule,
       TabsModule.forRoot(),
       RouterTestingModule,
index 2f09b1dcb945374afe43af0712466318697a3112..0296f66486b2f2c25a4d19bb0a95649b07562798 100644 (file)
@@ -1,5 +1,6 @@
 import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
+import { ListWithDetails } from '../../../../shared/classes/list-with-details.class';
 import { CellTemplate } from '../../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../../shared/enum/icons.enum';
 import { CdTableAction } from '../../../../shared/models/cd-table-action';
 import { CellTemplate } from '../../../../shared/enum/cell-template.enum';
 import { Icons } from '../../../../shared/enum/icons.enum';
 import { CdTableAction } from '../../../../shared/models/cd-table-action';
@@ -19,7 +20,7 @@ const BASE_URL = 'silence'; // as only silence actions can be used
   templateUrl: './active-alert-list.component.html',
   styleUrls: ['./active-alert-list.component.scss']
 })
   templateUrl: './active-alert-list.component.html',
   styleUrls: ['./active-alert-list.component.scss']
 })
-export class ActiveAlertListComponent implements OnInit {
+export class ActiveAlertListComponent extends ListWithDetails implements OnInit {
   @ViewChild('externalLinkTpl', { static: true })
   externalLinkTpl: TemplateRef<any>;
   columns: CdTableColumn[];
   @ViewChild('externalLinkTpl', { static: true })
   externalLinkTpl: TemplateRef<any>;
   columns: CdTableColumn[];
@@ -41,6 +42,7 @@ export class ActiveAlertListComponent implements OnInit {
     private i18n: I18n,
     private cdDatePipe: CdDatePipe
   ) {
     private i18n: I18n,
     private cdDatePipe: CdDatePipe
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().prometheus;
     this.tableActions = [
       {
     this.permission = this.authStorageService.getPermissions().prometheus;
     this.tableActions = [
       {
index ef80573a2c892c67309afad96c61fb2c3d1c550c..c0050ac7dae7aec97a391f50c55a9c39f0eb2c43 100644 (file)
@@ -1,12 +1,13 @@
 <cd-table [data]="data"
           [columns]="columns"
 <cd-table [data]="data"
           [columns]="columns"
-          (updateSelection)="selectionUpdated($event)"
+          [hasDetails]="true"
+          (updateSelection)="setExpandedRow($event)"
           [selectionType]="'single'">
   <tabset cdTableDetail
           [selectionType]="'single'">
   <tabset cdTableDetail
-          *ngIf="selectedRule">
+          *ngIf="expandedRow">
     <tab i18n-heading
          heading="Details">
     <tab i18n-heading
          heading="Details">
-      <cd-table-key-value [data]="selectedRule"
+      <cd-table-key-value [data]="expandedRow"
                           [renderObjects]="true"
                           [hideKeys]="hideKeys"></cd-table-key-value>
     </tab>
                           [renderObjects]="true"
                           [hideKeys]="hideKeys"></cd-table-key-value>
     </tab>
index 4e2495f9dd1a7ae32dd231743a098905ef55edd0..27581aae7dcf9ffcf69c266c76aea9b9087150f0 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
@@ -15,7 +16,7 @@ describe('RulesListComponent', () => {
 
   configureTestBed({
     declarations: [RulesListComponent],
 
   configureTestBed({
     declarations: [RulesListComponent],
-    imports: [HttpClientTestingModule, SharedModule, TabsModule.forRoot()],
+    imports: [HttpClientTestingModule, SharedModule, TabsModule.forRoot(), BrowserAnimationsModule],
     providers: [PrometheusService, SettingsService, i18nProviders]
   });
 
     providers: [PrometheusService, SettingsService, i18nProviders]
   });
 
index 41577da9d9e4d9cacc93fc556efae32d79a83e67..ee5f3a0e49bd9c5bd1d539f25e96b45560ad5d9b 100644 (file)
@@ -2,8 +2,8 @@ import { Component, Input, OnInit } from '@angular/core';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
+import { ListWithDetails } from '../../../../shared/classes/list-with-details.class';
 import { CdTableColumn } from '../../../../shared/models/cd-table-column';
 import { CdTableColumn } from '../../../../shared/models/cd-table-column';
-import { CdTableSelection } from '../../../../shared/models/cd-table-selection';
 import { PrometheusRule } from '../../../../shared/models/prometheus-alerts';
 import { DurationPipe } from '../../../../shared/pipes/duration.pipe';
 
 import { PrometheusRule } from '../../../../shared/models/prometheus-alerts';
 import { DurationPipe } from '../../../../shared/pipes/duration.pipe';
 
@@ -12,11 +12,11 @@ import { DurationPipe } from '../../../../shared/pipes/duration.pipe';
   templateUrl: './rules-list.component.html',
   styleUrls: ['./rules-list.component.scss']
 })
   templateUrl: './rules-list.component.html',
   styleUrls: ['./rules-list.component.scss']
 })
-export class RulesListComponent implements OnInit {
+export class RulesListComponent extends ListWithDetails implements OnInit {
   @Input()
   data: any;
   columns: CdTableColumn[];
   @Input()
   data: any;
   columns: CdTableColumn[];
-  selectedRule: PrometheusRule;
+  expandedRow: PrometheusRule;
 
   /**
    * Hide active alerts in details of alerting rules as they are already shown
 
   /**
    * Hide active alerts in details of alerting rules as they are already shown
@@ -25,7 +25,9 @@ export class RulesListComponent implements OnInit {
    */
   hideKeys = ['alerts', 'type'];
 
    */
   hideKeys = ['alerts', 'type'];
 
-  constructor(private i18n: I18n) {}
+  constructor(private i18n: I18n) {
+    super();
+  }
 
   ngOnInit() {
     this.columns = [
 
   ngOnInit() {
     this.columns = [
@@ -37,8 +39,4 @@ export class RulesListComponent implements OnInit {
       { prop: 'annotations.description', name: this.i18n('Description') }
     ];
   }
       { prop: 'annotations.description', name: this.i18n('Description') }
     ];
   }
-
-  selectionUpdated(selection: CdTableSelection) {
-    this.selectedRule = selection.first();
-  }
 }
 }
index 40dc8ffc8e541f43fe14d84fda49556c72fe2ba3..5a25ec686c1ee3b1ca76463c69fe9dc53bf2f0c3 100644 (file)
@@ -4,6 +4,8 @@
           [customCss]="customCss"
           [sorts]="sorts"
           selectionType="single"
           [customCss]="customCss"
           [sorts]="sorts"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (fetchData)="refresh()"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
           (fetchData)="refresh()"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
                     [selection]="selection"
                     [tableActions]="tableActions">
   </cd-table-actions>
                     [selection]="selection"
                     [tableActions]="tableActions">
   </cd-table-actions>
-  <tabset cdTableDetail
-          *ngIf="selection.hasSingleSelection">
-    <tab i18n-heading
-         heading="Details">
-      <cd-table-key-value [renderObjects]="true"
-                          [hideEmpty]="true"
-                          [appendParentKey]="false"
-                          [data]="selection.first()"
-                          [customCss]="customCss"
-                          [autoReload]="false">
-      </cd-table-key-value>
-    </tab>
-  </tabset>
+  <cd-table-key-value cdTableDetail
+                      *ngIf="expandedRow"
+                      [renderObjects]="true"
+                      [hideEmpty]="true"
+                      [appendParentKey]="false"
+                      [data]="expandedRow"
+                      [customCss]="customCss"
+                      [autoReload]="false">
+  </cd-table-key-value>
 </cd-table>
 </cd-table>
index 4573d71b2fe5c406a7489713eca1bef15d1f9c3f..6a60f83f6e442113d9e2bb15bd5d872dc8bbd868 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@@ -28,6 +29,7 @@ describe('SilenceListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       BsDropdownModule.forRoot(),
       TabsModule.forRoot(),
index 76de16a6b49a5e9b0b1ab0ce79051d5816f55fc9..3d27ac484d90e8a6b91f28b4b947c4902def2b17 100644 (file)
@@ -6,6 +6,7 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { Observable, Subscriber } from 'rxjs';
 
 import { PrometheusService } from '../../../../shared/api/prometheus.service';
 import { Observable, Subscriber } from 'rxjs';
 
 import { PrometheusService } from '../../../../shared/api/prometheus.service';
+import { ListWithDetails } from '../../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import {
   ActionLabelsI18n,
 import { CriticalConfirmationModalComponent } from '../../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import {
   ActionLabelsI18n,
@@ -32,7 +33,7 @@ const BASE_URL = 'monitoring/silence';
   templateUrl: './silence-list.component.html',
   styleUrls: ['./silence-list.component.scss']
 })
   templateUrl: './silence-list.component.html',
   styleUrls: ['./silence-list.component.scss']
 })
-export class SilenceListComponent {
+export class SilenceListComponent extends ListWithDetails {
   silences: AlertmanagerSilence[] = [];
   columns: CdTableColumn[];
   tableActions: CdTableAction[];
   silences: AlertmanagerSilence[] = [];
   columns: CdTableColumn[];
   tableActions: CdTableAction[];
@@ -57,6 +58,7 @@ export class SilenceListComponent {
     private actionLabels: ActionLabelsI18n,
     private succeededLabels: SucceededActionLabelsI18n
   ) {
     private actionLabels: ActionLabelsI18n,
     private succeededLabels: SucceededActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().prometheus;
     const selectionExpired = (selection: CdTableSelection) =>
       selection.first() && selection.first().status && selection.first().status.state === 'expired';
     this.permission = this.authStorageService.getPermissions().prometheus;
     const selectionExpired = (selection: CdTableSelection) =>
       selection.first() && selection.first().status && selection.first().status.state === 'expired';
index 27daa57c3f645bd0f258a9d7894180fbf6a72c22..078ac04d42ed0badfa3ba1e2c7d9591bd8082f9e 100644 (file)
@@ -7,3 +7,11 @@
           [autoReload]="60000"
           (fetchData)="getDaemons($event)">
 </cd-table>
           [autoReload]="60000"
           (fetchData)="getDaemons($event)">
 </cd-table>
+
+<ng-template #statusTpl
+             let-row="row">
+  <span class="badge"
+        [ngClass]="getStatusClass(row.status)">
+    {{ row.status_desc }}
+  </span>
+</ng-template>
index 6683d276c6a46d1780b5b5880f60496780c1da8e..43cf10de322ac46fee6b15bfdc1cf01a3195ce85 100644 (file)
@@ -7,6 +7,7 @@ import {
   OnInit,
   QueryList,
   TemplateRef,
   OnInit,
   QueryList,
   TemplateRef,
+  ViewChild,
   ViewChildren
 } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
   ViewChildren
 } from '@angular/core';
 import { I18n } from '@ngx-translate/i18n-polyfill';
@@ -29,6 +30,9 @@ import { Daemon } from '../../../../shared/models/daemon.interface';
   styleUrls: ['./service-daemon-list.component.scss']
 })
 export class ServiceDaemonListComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
   styleUrls: ['./service-daemon-list.component.scss']
 })
 export class ServiceDaemonListComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {
+  @ViewChild('statusTpl', { static: true })
+  statusTpl: TemplateRef<any>;
+
   @ViewChildren('daemonsTable')
   daemonsTableTpls: QueryList<TemplateRef<TableComponent>>;
 
   @ViewChildren('daemonsTable')
   daemonsTableTpls: QueryList<TemplateRef<TableComponent>>;
 
@@ -107,15 +111,10 @@ export class ServiceDaemonListComponent implements OnInit, OnChanges, AfterViewI
       },
       {
         name: this.i18n('Status'),
       },
       {
         name: this.i18n('Status'),
-        prop: 'status',
-        flexGrow: 1,
-        filterable: true
-      },
-      {
-        name: this.i18n('Status Description'),
         prop: 'status_desc',
         flexGrow: 1,
         prop: 'status_desc',
         flexGrow: 1,
-        filterable: true
+        filterable: true,
+        cellTemplate: this.statusTpl
       },
       {
         name: this.i18n('Last Refreshed'),
       },
       {
         name: this.i18n('Last Refreshed'),
@@ -149,6 +148,18 @@ export class ServiceDaemonListComponent implements OnInit, OnChanges, AfterViewI
     }
   }
 
     }
   }
 
+  getStatusClass(status: number) {
+    return _.get(
+      {
+        '-1': 'badge-danger',
+        '0': 'badge-warning',
+        '1': 'badge-success'
+      },
+      status,
+      'badge-dark'
+    );
+  }
+
   getDaemons(context: CdTableFetchDataContext) {
     let observable: Observable<Daemon[]>;
     if (this.hostname) {
   getDaemons(context: CdTableFetchDataContext) {
     let observable: Observable<Daemon[]>;
     if (this.hostname) {
index 924fb914947bd34fae37bdd68d5ab90dccab20b3..9849ccad22e76d531f6f9f39f1b7b4f30c4f4ae7 100644 (file)
@@ -1,7 +1,7 @@
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Daemons">
   <tab i18n-heading
        heading="Daemons">
-    <cd-service-daemon-list [serviceName]="selection.first()['service_name']">
+    <cd-service-daemon-list [serviceName]="selection['service_name']">
     </cd-service-daemon-list>
   </tab>
 </tabset>
     </cd-service-daemon-list>
   </tab>
 </tabset>
index 5e2bcc53603347ccd672761abf74014243c7e5cd..11174d3849d045ba7f03cf1b593f10c4b5d984a5 100644 (file)
@@ -8,10 +8,11 @@
             selectionType="single"
             [autoReload]="60000"
             (fetchData)="getServices($event)"
             selectionType="single"
             [autoReload]="60000"
             (fetchData)="getServices($event)"
-            (updateSelection)="updateSelection($event)">
+            [hasDetails]="true"
+            (setExpandedRow)="setExpandedRow($event)">
     <cd-service-details cdTableDetail
                         [permissions]="permissions"
     <cd-service-details cdTableDetail
                         [permissions]="permissions"
-                        [selection]="selection">
+                        [selection]="expandedRow">
     </cd-service-details>
   </cd-table>
 </ng-container>
     </cd-service-details>
   </cd-table>
 </ng-container>
index 6e467ca2a55f018f12fe2713a1ad0a3c53898399..347cfa1b00e18e103087798c5700cafc68382169 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { of } from 'rxjs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { of } from 'rxjs';
@@ -51,7 +52,14 @@ describe('ServicesComponent', () => {
   ];
 
   configureTestBed({
   ];
 
   configureTestBed({
-    imports: [CephModule, CoreModule, SharedModule, HttpClientTestingModule, RouterTestingModule],
+    imports: [
+      BrowserAnimationsModule,
+      CephModule,
+      CoreModule,
+      SharedModule,
+      HttpClientTestingModule,
+      RouterTestingModule
+    ],
     providers: [{ provide: AuthStorageService, useValue: fakeAuthStorageService }, i18nProviders],
     declarations: []
   });
     providers: [{ provide: AuthStorageService, useValue: fakeAuthStorageService }, i18nProviders],
     declarations: []
   });
@@ -71,7 +79,11 @@ describe('ServicesComponent', () => {
   });
 
   it('should have columns that are sortable', () => {
   });
 
   it('should have columns that are sortable', () => {
-    expect(component.columns.every((column) => Boolean(column.prop))).toBeTruthy();
+    expect(
+      component.columns
+        .filter((column) => !(column.cellClass === 'cd-datatable-expand-collapse'))
+        .every((column) => Boolean(column.prop))
+    ).toBeTruthy();
   });
 
   it('should return all services', () => {
   });
 
   it('should return all services', () => {
index a691ff5c61ebda2bf005c510ea1d6bf44f2038cd..757d4f9da41b8f7b9bb992280b9ab3ef1830e724 100644 (file)
@@ -3,6 +3,7 @@ import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { CephServiceService } from '../../../shared/api/ceph-service.service';
 import { OrchestratorService } from '../../../shared/api/orchestrator.service';
 
 import { CephServiceService } from '../../../shared/api/ceph-service.service';
 import { OrchestratorService } from '../../../shared/api/orchestrator.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
@@ -17,7 +18,7 @@ import { AuthStorageService } from '../../../shared/services/auth-storage.servic
   templateUrl: './services.component.html',
   styleUrls: ['./services.component.scss']
 })
   templateUrl: './services.component.html',
   styleUrls: ['./services.component.scss']
 })
-export class ServicesComponent implements OnChanges, OnInit {
+export class ServicesComponent extends ListWithDetails implements OnChanges, OnInit {
   @ViewChild(TableComponent, { static: false })
   table: TableComponent;
 
   @ViewChild(TableComponent, { static: false })
   table: TableComponent;
 
@@ -43,6 +44,7 @@ export class ServicesComponent implements OnChanges, OnInit {
     private orchService: OrchestratorService,
     private cephServiceService: CephServiceService
   ) {
     private orchService: OrchestratorService,
     private cephServiceService: CephServiceService
   ) {
+    super();
     this.permissions = this.authStorageService.getPermissions();
   }
 
     this.permissions = this.authStorageService.getPermissions();
   }
 
@@ -100,10 +102,6 @@ export class ServicesComponent implements OnChanges, OnInit {
     }
   }
 
     }
   }
 
-  updateSelection(selection: CdTableSelection) {
-    this.selection = selection;
-  }
-
   getServices(context: CdTableFetchDataContext) {
     if (this.isLoadingServices) {
       return;
   getServices(context: CdTableFetchDataContext) {
     if (this.isLoadingServices) {
       return;
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.html b/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.html
new file mode 100644 (file)
index 0000000..748ffd4
--- /dev/null
@@ -0,0 +1,310 @@
+<cd-loading-panel *ngIf="loading && !error"
+                  i18n>Loading configuration...</cd-loading-panel>
+<cd-alert-panel type="error"
+                *ngIf="loading && error"
+                i18n>The configuration could not be loaded.</cd-alert-panel>
+
+<div class="cd-col-form"
+     *ngIf="!loading && !error">
+  <ng-container [ngSwitch]="step">
+    <!-- Configuration step -->
+    <div *ngSwitchCase="1">
+      <form name="form"
+            #formDir="ngForm"
+            [formGroup]="configForm"
+            novalidate>
+        <div class="card">
+          <div class="card-header"
+               i18n>Step {{ step }} of 2: Telemetry report configuration</div>
+          <div class="card-body">
+            <p i18n>The telemetry module sends anonymous data about this Ceph cluster back to the Ceph developers
+              to help understand how Ceph is used and what problems users may be experiencing.<br/>
+              This data is visualized on <a href="https://telemetry-public.ceph.com/">public dashboards</a>
+              that allow the community to quickly see summary statistics on how many clusters are reporting,
+              their total capacity and OSD count, and version distribution trends.<br/><br/>
+              The data being reported does <b>not</b> contain any sensitive data like pool names, object names, object contents,
+              hostnames, or device serial numbers. It contains counters and statistics on how the cluster has been
+              deployed, the version of Ceph, the distribution of the hosts and other parameters which help the project
+              to gain a better understanding of the way Ceph is used. The data is sent secured to {{ sendToUrl }} and
+              {{ sendToDeviceUrl }} (device report).</p>
+            <div *ngIf="moduleEnabled">
+              The plugin is already <b>enabled</b>. Click <b>Deactivate</b> to disable it.&nbsp;
+              <button type="button"
+                      class="btn btn-light"
+                      (click)="disableModule('The Telemetry module has been disabled successfully.')"
+                      i18n>Deactivate</button>
+            </div>
+            <legend i18n>Channels</legend>
+            <p i18n>The telemetry report is broken down into several "channels", each with a different type of information that can
+              be configured below.</p>
+
+            <!-- Channel basic -->
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="channel_basic">
+                <ng-container i18n>Basic</ng-container>
+                <cd-helper>
+                  <ng-container i18n>Includes basic information about the cluster:</ng-container>
+                  <ul>
+                    <li i18n>Capacity of the cluster</li>
+                    <li i18n>Number of monitors, managers, OSDs, MDSs, object gateways, or other daemons</li>
+                    <li i18n>Software version currently being used</li>
+                    <li i18n>Number and types of RADOS pools and CephFS file systems</li>
+                    <li i18n>Names of configuration options that have been changed from their default (but not their values)</li>
+                  </ul>
+                </cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <div class="custom-control custom-checkbox">
+                  <input type="checkbox"
+                         class="custom-control-input"
+                         id="channel_basic"
+                         formControlName="channel_basic">
+                  <label class="custom-control-label"
+                         for="channel_basic"></label>
+                </div>
+              </div>
+            </div>
+
+            <!-- Channel crash -->
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="channel_crash">
+                <ng-container i18n>Crash</ng-container>
+                <cd-helper>
+                  <ng-container i18n>Includes information about daemon crashes:</ng-container>
+                  <ul>
+                    <li i18n>Type of daemon</li>
+                    <li i18n>Version of the daemon</li>
+                    <li i18n>Operating system (OS distribution, kernel version)</li>
+                    <li i18n>Stack trace identifying where in the Ceph code the crash occurred</li>
+                  </ul>
+                </cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <div class="custom-control custom-checkbox">
+                  <input type="checkbox"
+                         class="custom-control-input"
+                         id="channel_crash"
+                         formControlName="channel_crash">
+                  <label class="custom-control-label"
+                         for="channel_crash"></label>
+                </div>
+              </div>
+            </div>
+
+            <!-- Channel device -->
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="channel_device">
+                <ng-container i18n>Device</ng-container>
+                <cd-helper i18n-html
+                           html="Includes information about device metrics like anonymized SMART metrics.">
+                </cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <div class="custom-control custom-checkbox">
+                  <input type="checkbox"
+                         class="custom-control-input"
+                         id="channel_device"
+                         formControlName="channel_device">
+                  <label class="custom-control-label"
+                         for="channel_device"></label>
+                </div>
+              </div>
+            </div>
+
+            <!-- Channel ident -->
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="channel_ident">
+                <ng-container i18n>Ident</ng-container>
+                <cd-helper>
+                  <ng-container i18n>Includes user-provided identifying information about the cluster:</ng-container>
+                  <ul>
+                    <li>Cluster description</li>
+                    <li>Contact email address</li>
+                  </ul>
+                </cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <div class="custom-control custom-checkbox">
+                  <input type="checkbox"
+                         class="custom-control-input"
+                         id="channel_ident"
+                         formControlName="channel_ident">
+                  <label class="custom-control-label"
+                         for="channel_ident"></label>
+                </div>
+              </div>
+            </div>
+            <legend>
+              <ng-container i18n>Contact Information</ng-container>
+              <cd-helper i18n>Submitting any contact information is completely optional and disabled by default.</cd-helper>
+            </legend>
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="contact"
+                     i18n>Contact</label>
+              <div class="cd-col-form-input">
+                <input id="contact"
+                       class="form-control"
+                       type="text"
+                       formControlName="contact"
+                       placeholder="Example User <user@example.com>">
+              </div>
+            </div>
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="description"
+                     i18n>Description</label>
+              <div class="cd-col-form-input">
+                <input id="description"
+                       class="form-control"
+                       type="text"
+                       formControlName="description"
+                       placeholder="My first Ceph cluster"
+                       i18n-placeholder>
+              </div>
+            </div>
+            <legend i18n>Advanced Settings</legend>
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="interval">
+                <ng-container i18n>Interval</ng-container>
+                <cd-helper i18n>The module compiles and sends a new report every 24 hours by default. You can
+                  adjust this interval by setting a different number of hours.</cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <input id="interval"
+                       class="form-control"
+                       type="number"
+                       formControlName="interval">
+                <span class="invalid-feedback"
+                      *ngIf="configForm.showError('interval', formDir, 'min')"
+                      i18n>The entered value is too low! It must be greater or equal to 8.</span>
+              </div>
+            </div>
+            <div class="form-group row">
+              <label class="cd-col-form-label"
+                     for="proxy">
+                <ng-container i18n>Proxy</ng-container>
+                <cd-helper>
+                  <p i18n>If the cluster cannot directly connect to the configured telemetry endpoint
+                    (default telemetry.ceph.com), you can configure a HTTP/HTTPS proxy server by e.g. adding
+                    https://10.0.0.1:8080</p>
+                  <p i18n>You can also include a user:pass if needed e.g. https://ceph:telemetry@10.0.0.1:8080</p>
+                </cd-helper>
+              </label>
+              <div class="cd-col-form-input">
+                <input id="proxy"
+                       class="form-control"
+                       type="text"
+                       formControlName="proxy"
+                       placeholder="https://10.0.0.1:8080">
+              </div>
+            </div>
+            <br />
+            <p i18n><b>Note:</b> By clicking 'Next' you will first see a preview of the report content before you
+              can activate the automatic submission of your data.</p>
+          </div>
+          <div class="card-footer">
+            <div class="button-group text-right">
+              <button type="button"
+                      class="btn btn-light"
+                      (click)="next()">
+                <ng-container i18n>Next</ng-container>
+              </button>
+            </div>
+          </div>
+        </div>
+      </form>
+    </div>
+
+    <!-- Preview step -->
+    <div *ngSwitchCase="2">
+      <form name="previewForm"
+            #frm="ngForm"
+            [formGroup]="previewForm"
+            novalidate>
+        <div class="card">
+          <div class="card-header"
+               i18n>Step {{ step }} of 2: Telemetry report preview</div>
+          <div class="card-body">
+            <!-- Telemetry report ID -->
+            <div class="form-group row">
+              <label i18n
+                     for="reportId"
+                     class="cd-col-form-label">Report ID</label>
+              <div class="cd-col-form-input">
+                <input class="form-control"
+                       type="text"
+                       id="reportId"
+                       formControlName="reportId"
+                       readonly>
+              </div>
+            </div>
+
+            <!-- Telemetry report -->
+            <div class="form-group row">
+              <label i18n
+                     for="report"
+                     class="cd-col-form-label">Report preview</label>
+              <div class="cd-col-form-input">
+                <textarea class="form-control"
+                          id="report"
+                          formControlName="report"
+                          rows="15"
+                          readonly></textarea>
+              </div>
+            </div>
+            <div class="form-group row">
+              <div class="cd-col-form-offset">
+                <button type="button"
+                        class="btn btn-light mr-2"
+                        title="Download"
+                        (click)="download(report, 'telemetry_report.json')"
+                        i18n-title>
+                  <i class="fa fa-download"></i>
+                </button>
+                <button type="button"
+                        class="btn btn-light"
+                        cdCopy2ClipboardButton="report"
+                        formatted>
+                </button>
+              </div>
+            </div>
+
+            <!-- License agreement -->
+            <div class="form-group row">
+              <div class="cd-col-form-offset">
+                <div class="custom-control custom-checkbox">
+                  <input type="checkbox"
+                         class="custom-control-input"
+                         id="licenseAgrmt"
+                         name="licenseAgrmt"
+                         formControlName="licenseAgrmt">
+                  <label class="custom-control-label"
+                         for="licenseAgrmt"
+                         i18n>I agree to my telemetry data being submitted under the Community Data License Agreement - Sharing - Version 1.0 (<a href="https://cdla.io/sharing-1-0/">https://cdla.io/sharing-1-0/</a>)</label>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="card-footer">
+            <div class="button-group text-right">
+              <cd-submit-button (submitAction)="onSubmit()"
+                                [form]="previewForm">
+                <ng-container i18n>Save</ng-container>
+              </cd-submit-button>
+              <button type="button"
+                      class="btn btn-light"
+                      (click)="back()"
+                      i18n>Back</button>
+            </div>
+          </div>
+        </div>
+      </form>
+    </div>
+  </ng-container>
+</div>
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.scss b/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.scss
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.spec.ts
new file mode 100644 (file)
index 0000000..783eeed
--- /dev/null
@@ -0,0 +1,180 @@
+import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ReactiveFormsModule } from '@angular/forms';
+import { Router } from '@angular/router';
+import { RouterTestingModule } from '@angular/router/testing';
+
+import * as _ from 'lodash';
+import { ToastrModule } from 'ngx-toastr';
+import { of as observableOf } from 'rxjs';
+
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import { MgrModuleService } from '../../../shared/api/mgr-module.service';
+import { TelemetryService } from '../../../shared/api/telemetry.service';
+
+import { TextToDownloadService } from '../../../shared/services/text-to-download.service';
+import { SharedModule } from '../../../shared/shared.module';
+import { TelemetryComponent } from './telemetry.component';
+
+describe('TelemetryComponent', () => {
+  let component: TelemetryComponent;
+  let fixture: ComponentFixture<TelemetryComponent>;
+  let mgrModuleService: MgrModuleService;
+  let telemetryService: TelemetryService;
+  let options: any;
+  let configs: any;
+  let httpTesting: HttpTestingController;
+  let router: Router;
+
+  const optionsNames = [
+    'channel_basic',
+    'channel_crash',
+    'channel_device',
+    'channel_ident',
+    'contact',
+    'description',
+    'device_url',
+    'enabled',
+    'interval',
+    'last_opt_revision',
+    'leaderboard',
+    'log_level',
+    'log_to_cluster',
+    'log_to_cluster_level',
+    'log_to_file',
+    'organization',
+    'proxy',
+    'url'
+  ];
+
+  configureTestBed(
+    {
+      declarations: [TelemetryComponent],
+      imports: [
+        HttpClientTestingModule,
+        ReactiveFormsModule,
+        RouterTestingModule,
+        SharedModule,
+        ToastrModule.forRoot()
+      ],
+      providers: i18nProviders
+    },
+    true
+  );
+
+  describe('configForm', () => {
+    beforeEach(() => {
+      fixture = TestBed.createComponent(TelemetryComponent);
+      component = fixture.componentInstance;
+      mgrModuleService = TestBed.get(MgrModuleService);
+      options = {};
+      configs = {};
+      optionsNames.forEach((name) => (options[name] = { name }));
+      optionsNames.forEach((name) => (configs[name] = true));
+      spyOn(mgrModuleService, 'getOptions').and.callFake(() => observableOf(options));
+      spyOn(mgrModuleService, 'getConfig').and.callFake(() => observableOf(configs));
+      fixture.detectChanges();
+      httpTesting = TestBed.get(HttpTestingController);
+      router = TestBed.get(Router);
+      spyOn(router, 'navigate');
+    });
+
+    it('should create', () => {
+      expect(component).toBeTruthy();
+    });
+
+    it('should set module enability to true correctly', () => {
+      expect(component.moduleEnabled).toBeTruthy();
+    });
+
+    it('should set module enability to false correctly', () => {
+      configs['enabled'] = false;
+      component.ngOnInit();
+      expect(component.moduleEnabled).toBeFalsy();
+    });
+
+    it('should filter options list correctly', () => {
+      _.forEach(Object.keys(component.options), (option) => {
+        expect(component.requiredFields).toContain(option);
+      });
+    });
+
+    it('should update the Telemetry configuration', () => {
+      component.updateConfig();
+      const req = httpTesting.expectOne('api/mgr/module/telemetry');
+      expect(req.request.method).toBe('PUT');
+      expect(req.request.body).toEqual({
+        config: {}
+      });
+      req.flush({});
+    });
+
+    it('should disable the Telemetry module', () => {
+      const message = 'Module disabled message.';
+      const followUpFunc = function () {
+        return 'followUp';
+      };
+      component.disableModule(message, followUpFunc);
+      const req = httpTesting.expectOne('api/telemetry');
+      expect(req.request.method).toBe('PUT');
+      expect(req.request.body).toEqual({
+        enable: false
+      });
+      req.flush({});
+    });
+
+    it('should disable the Telemetry module with default parameters', () => {
+      component.disableModule();
+      const req = httpTesting.expectOne('api/telemetry');
+      expect(req.request.method).toBe('PUT');
+      expect(req.request.body).toEqual({
+        enable: false
+      });
+      req.flush({});
+      expect(router.navigate).toHaveBeenCalledWith(['']);
+    });
+  });
+
+  describe('previewForm', () => {
+    const reportText = {
+      testA: 'testA',
+      testB: 'testB'
+    };
+
+    beforeEach(() => {
+      fixture = TestBed.createComponent(TelemetryComponent);
+      component = fixture.componentInstance;
+      fixture.detectChanges();
+      telemetryService = TestBed.get(TelemetryService);
+      httpTesting = TestBed.get(HttpTestingController);
+      router = TestBed.get(Router);
+      spyOn(router, 'navigate');
+    });
+
+    it('should create', () => {
+      expect(component).toBeTruthy();
+    });
+
+    it('should call TextToDownloadService download function', () => {
+      spyOn(telemetryService, 'getReport').and.returnValue(observableOf(reportText));
+      component.ngOnInit();
+
+      const downloadSpy = spyOn(TestBed.get(TextToDownloadService), 'download');
+      const filename = 'reportText.json';
+      component.download(reportText, filename);
+      expect(downloadSpy).toHaveBeenCalledWith(JSON.stringify(reportText, null, 2), filename);
+    });
+
+    it('should submit', () => {
+      component.onSubmit();
+      const req = httpTesting.expectOne('api/telemetry');
+      expect(req.request.method).toBe('PUT');
+      expect(req.request.body).toEqual({
+        enable: true,
+        license_name: 'sharing-1-0'
+      });
+      req.flush({});
+      expect(router.navigate).toHaveBeenCalledWith(['']);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/telemetry/telemetry.component.ts
new file mode 100644 (file)
index 0000000..d9ec0e4
--- /dev/null
@@ -0,0 +1,210 @@
+import { Component, OnInit } from '@angular/core';
+import { ValidatorFn, Validators } from '@angular/forms';
+import { Router } from '@angular/router';
+
+import { I18n } from '@ngx-translate/i18n-polyfill';
+import * as _ from 'lodash';
+import { BlockUI, NgBlockUI } from 'ng-block-ui';
+import { forkJoin as observableForkJoin } from 'rxjs';
+
+import { MgrModuleService } from '../../../shared/api/mgr-module.service';
+import { TelemetryService } from '../../../shared/api/telemetry.service';
+import { NotificationType } from '../../../shared/enum/notification-type.enum';
+import { CdFormBuilder } from '../../../shared/forms/cd-form-builder';
+import { CdFormGroup } from '../../../shared/forms/cd-form-group';
+import { CdValidators } from '../../../shared/forms/cd-validators';
+import { NotificationService } from '../../../shared/services/notification.service';
+import { TextToDownloadService } from '../../../shared/services/text-to-download.service';
+
+@Component({
+  selector: 'cd-telemetry',
+  templateUrl: './telemetry.component.html',
+  styleUrls: ['./telemetry.component.scss']
+})
+export class TelemetryComponent implements OnInit {
+  @BlockUI()
+  blockUI: NgBlockUI;
+
+  error = false;
+  configForm: CdFormGroup;
+  licenseAgrmt = false;
+  loading = false;
+  moduleEnabled: boolean;
+  options: Object = {};
+  previewForm: CdFormGroup;
+  requiredFields = [
+    'channel_basic',
+    'channel_crash',
+    'channel_device',
+    'channel_ident',
+    'interval',
+    'proxy',
+    'contact',
+    'description'
+  ];
+  report: object = undefined;
+  reportId: number = undefined;
+  sendToUrl = '';
+  sendToDeviceUrl = '';
+  step = 1;
+
+  constructor(
+    private formBuilder: CdFormBuilder,
+    private mgrModuleService: MgrModuleService,
+    private notificationService: NotificationService,
+    private router: Router,
+    private telemetryService: TelemetryService,
+    private i18n: I18n,
+    private textToDownloadService: TextToDownloadService
+  ) {}
+
+  ngOnInit() {
+    this.loading = true;
+    const observables = [
+      this.mgrModuleService.getOptions('telemetry'),
+      this.mgrModuleService.getConfig('telemetry')
+    ];
+    observableForkJoin(observables).subscribe(
+      (resp: object) => {
+        const configResp = resp[1];
+        this.moduleEnabled = configResp['enabled'];
+        this.sendToUrl = configResp['url'];
+        this.sendToDeviceUrl = configResp['device_url'];
+        this.options = _.pick(resp[0], this.requiredFields);
+        const configs = _.pick(configResp, this.requiredFields);
+        this.createConfigForm();
+        this.configForm.setValue(configs);
+        this.loading = false;
+      },
+      (_error) => {
+        this.error = true;
+      }
+    );
+  }
+
+  private createConfigForm() {
+    const controlsConfig = {};
+    _.forEach(Object.values(this.options), (option) => {
+      controlsConfig[option.name] = [option.default_value, this.getValidators(option)];
+    });
+    this.configForm = this.formBuilder.group(controlsConfig);
+  }
+
+  private createPreviewForm() {
+    const controls = {
+      report: JSON.stringify(this.report, null, 2),
+      reportId: this.reportId,
+      licenseAgrmt: [this.licenseAgrmt, Validators.requiredTrue]
+    };
+    this.previewForm = this.formBuilder.group(controls);
+  }
+
+  private getValidators(option: any): ValidatorFn[] {
+    const result = [];
+    switch (option.type) {
+      case 'int':
+        result.push(CdValidators.number());
+        result.push(Validators.required);
+        if (_.isNumber(option.min)) {
+          result.push(Validators.min(option.min));
+        }
+        if (_.isNumber(option.max)) {
+          result.push(Validators.max(option.max));
+        }
+        break;
+      case 'str':
+        if (_.isNumber(option.min)) {
+          result.push(Validators.minLength(option.min));
+        }
+        if (_.isNumber(option.max)) {
+          result.push(Validators.maxLength(option.max));
+        }
+        break;
+    }
+    return result;
+  }
+
+  private getReport() {
+    this.loading = true;
+    this.telemetryService.getReport().subscribe(
+      (resp: object) => {
+        this.report = resp;
+        this.reportId = resp['report']['report_id'];
+        this.createPreviewForm();
+        this.loading = false;
+        this.step++;
+      },
+      (_error) => {
+        this.error = true;
+      }
+    );
+  }
+
+  updateConfig() {
+    const config = {};
+    _.forEach(Object.values(this.options), (option) => {
+      const control = this.configForm.get(option.name);
+      // Append the option only if the value has been modified.
+      if (control.dirty && control.valid) {
+        config[option.name] = control.value;
+      }
+    });
+    this.mgrModuleService.updateConfig('telemetry', config).subscribe(
+      () => {
+        this.disableModule(
+          this.i18n(
+            `Your settings have been applied successfully. \
+Due to privacy/legal reasons the Telemetry module is now disabled until you \
+complete the next step and accept the license.`
+          ),
+          () => {
+            this.getReport();
+          }
+        );
+      },
+      () => {
+        // Reset the 'Submit' button.
+        this.configForm.setErrors({ cdSubmitButton: true });
+      }
+    );
+  }
+
+  download(report: object, fileName: string) {
+    this.textToDownloadService.download(JSON.stringify(report, null, 2), fileName);
+  }
+
+  disableModule(message: string = null, followUpFunc: Function = null) {
+    this.telemetryService.enable(false).subscribe(() => {
+      if (message) {
+        this.notificationService.show(NotificationType.success, message);
+      }
+      if (followUpFunc) {
+        followUpFunc();
+      } else {
+        this.router.navigate(['']);
+      }
+    });
+  }
+
+  next() {
+    if (this.configForm.pristine) {
+      this.getReport();
+    } else {
+      this.updateConfig();
+    }
+  }
+
+  back() {
+    this.step--;
+  }
+
+  onSubmit() {
+    this.telemetryService.enable().subscribe(() => {
+      this.notificationService.show(
+        NotificationType.success,
+        this.i18n('The Telemetry module has been configured and activated successfully.')
+      );
+      this.router.navigate(['']);
+    });
+  }
+}
index 6dce33439b2f259168ed305af35a2ae4ba5767af..f00d73f5ae6a0d0a29caa23c3f47e1617d2cd942 100644 (file)
@@ -75,7 +75,7 @@ export class HealthPieComponent implements OnChanges, OnInit {
     // An extension to Chart.js to enable rendering some
     // text in the middle of a doughnut
     Chart.pluginService.register({
     // An extension to Chart.js to enable rendering some
     // text in the middle of a doughnut
     Chart.pluginService.register({
-      beforeDraw: function(chart: any) {
+      beforeDraw: function (chart: any) {
         if (!chart.options.center_text) {
           return;
         }
         if (!chart.options.center_text) {
           return;
         }
@@ -162,7 +162,7 @@ export class HealthPieComponent implements OnChanges, OnInit {
 
   private setChartSliceBorderWidth() {
     let nonZeroValueSlices = 0;
 
   private setChartSliceBorderWidth() {
     let nonZeroValueSlices = 0;
-    _.forEach(this.chartConfig.dataset[0].data, function(slice) {
+    _.forEach(this.chartConfig.dataset[0].data, function (slice) {
       if (slice > 0) {
         nonZeroValueSlices += 1;
       }
       if (slice > 0) {
         nonZeroValueSlices += 1;
       }
index 9c7684a5c6f69e70c64462c55c892cc121c03f4f..f765ac5e8a21315ca7c610d6be9b4b78ee6a6ac0 100644 (file)
@@ -1,10 +1,7 @@
-@import 'styles';
+@import 'defaults.scss';
 
 cd-info-card {
   padding: 0 0.5vw 0 0.5vw;
 
 cd-info-card {
   padding: 0 0.5vw 0 0.5vw;
-  @extend .d-flex;
-  @extend .flex-column;
-  @extend .mb-4;
 }
 
 ::ng-deep .pg-status-popover-wrapper {
 }
 
 ::ng-deep .pg-status-popover-wrapper {
@@ -42,19 +39,3 @@ cd-info-card {
 .popover-info:hover {
   cursor: pointer;
 }
 .popover-info:hover {
   cursor: pointer;
 }
-
-::ng-deep cd-info-card {
-  @extend .col-12;
-  @extend .col-sm-12;
-  @extend .col-md-6;
-  @extend .col-lg-4;
-
-  &.cd-status-card {
-    @extend .col-xl-3;
-  }
-
-  &.cd-performance-card,
-  &.cd-capacity-card {
-    @extend .col-xl;
-  }
-}
index f5cfcb708ff3a8802ca92f19691766da0b144b25..07732f3edc87117eb48edeed5a2ed403b92686f3 100644 (file)
@@ -1,4 +1,4 @@
-@import 'styles';
+@import 'defaults.scss';
 
 $card-font-min-width: 320px;
 $card-font-max-width: 2048px;
 
 $card-font-min-width: 320px;
 $card-font-max-width: 2048px;
@@ -7,7 +7,6 @@ $card-font-max-size: 21px;
 
 .card {
   height: 100%;
 
 .card {
   height: 100%;
-  @extend .pb-2;
   border: 0.5px solid $color-info-card-border;
   border-radius: 3px;
   box-shadow: 0 1px 1px $color-shadow-gray;
   border: 0.5px solid $color-info-card-border;
   border-radius: 3px;
   box-shadow: 0 1px 1px $color-shadow-gray;
@@ -26,10 +25,6 @@ $card-font-max-size: 21px;
       left: 0;
       top: 0;
     }
       left: 0;
       top: 0;
     }
-
-    .card-text {
-      @extend .pt-2;
-    }
   }
 }
 
   }
 }
 
index b8f10391a11ba6c49f45384dcf0f17e33b319ae0..5bb97e5eb221d04ffb0cf4e73055b483b3f44ba6 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection?.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab heading="Details"
        i18n-heading>
     <cd-table-key-value [data]="data">
   <tab heading="Details"
        i18n-heading>
     <cd-table-key-value [data]="data">
index a1d1c6d349b80c0b5e59187e3c4103481dc8d862..f1f3b49b683842f166e924dd54844d501262523c 100644 (file)
@@ -1,12 +1,12 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { By } from '@angular/platform-browser';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { By } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import * as _ from 'lodash';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 
 import * as _ from 'lodash';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { NfsDetailsComponent } from './nfs-details.component';
 
 import { SharedModule } from '../../../shared/shared.module';
 import { NfsDetailsComponent } from './nfs-details.component';
 
@@ -18,7 +18,7 @@ describe('NfsDetailsComponent', () => {
 
   configureTestBed({
     declarations: [NfsDetailsComponent],
 
   configureTestBed({
     declarations: [NfsDetailsComponent],
-    imports: [SharedModule, TabsModule.forRoot(), HttpClientTestingModule],
+    imports: [BrowserAnimationsModule, SharedModule, TabsModule.forRoot(), HttpClientTestingModule],
     providers: i18nProviders
   });
 
     providers: i18nProviders
   });
 
@@ -26,31 +26,29 @@ describe('NfsDetailsComponent', () => {
     fixture = TestBed.createComponent(NfsDetailsComponent);
     component = fixture.componentInstance;
 
     fixture = TestBed.createComponent(NfsDetailsComponent);
     component = fixture.componentInstance;
 
-    component.selection = new CdTableSelection();
-    component.selection.selected = [
-      {
-        export_id: 1,
-        path: '/qwe',
-        fsal: { name: 'CEPH', user_id: 'fs', fs_name: 1 },
-        cluster_id: 'cluster1',
-        daemons: ['node1', 'node2'],
-        pseudo: '/qwe',
-        tag: 'asd',
-        access_type: 'RW',
-        squash: 'no_root_squash',
-        protocols: [3, 4],
-        transports: ['TCP', 'UDP'],
-        clients: [
-          {
-            addresses: ['192.168.0.10', '192.168.1.0/8'],
-            access_type: 'RW',
-            squash: 'root_id_squash'
-          }
-        ],
-        id: 'cluster1:1',
-        state: 'LOADING'
-      }
-    ];
+    component.selection = undefined;
+    component.selection = {
+      export_id: 1,
+      path: '/qwe',
+      fsal: { name: 'CEPH', user_id: 'fs', fs_name: 1 },
+      cluster_id: 'cluster1',
+      daemons: ['node1', 'node2'],
+      pseudo: '/qwe',
+      tag: 'asd',
+      access_type: 'RW',
+      squash: 'no_root_squash',
+      protocols: [3, 4],
+      transports: ['TCP', 'UDP'],
+      clients: [
+        {
+          addresses: ['192.168.0.10', '192.168.1.0/8'],
+          access_type: 'RW',
+          squash: 'root_id_squash'
+        }
+      ],
+      id: 'cluster1:1',
+      state: 'LOADING'
+    };
     component.ngOnChanges();
     fixture.detectChanges();
   });
     component.ngOnChanges();
     fixture.detectChanges();
   });
@@ -77,13 +75,13 @@ describe('NfsDetailsComponent', () => {
   });
 
   it('should prepare data if RGW', () => {
   });
 
   it('should prepare data if RGW', () => {
-    const newData = _.assignIn(component.selection.first(), {
+    const newData = _.assignIn(component.selection, {
       fsal: {
         name: 'RGW',
         rgw_user_id: 'rgw_user_id'
       }
     });
       fsal: {
         name: 'RGW',
         rgw_user_id: 'rgw_user_id'
       }
     });
-    component.selection.selected = [newData];
+    component.selection = newData;
     component.ngOnChanges();
     expect(component.data).toEqual({
       'Access Type': 'RW',
     component.ngOnChanges();
     expect(component.data).toEqual({
       'Access Type': 'RW',
index db91c7d53388c267419f97edbee2fd171db721a8..c6a3ba0eca905cf61642305ec748bbbdca88afe1 100644 (file)
@@ -1,10 +1,8 @@
 import { Component, Input, OnChanges } from '@angular/core';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 import { Component, Input, OnChanges } from '@angular/core';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
-import * as _ from 'lodash';
 
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 
 @Component({
   selector: 'cd-nfs-details',
 
 @Component({
   selector: 'cd-nfs-details',
@@ -13,7 +11,7 @@ import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 })
 export class NfsDetailsComponent implements OnChanges {
   @Input()
 })
 export class NfsDetailsComponent implements OnChanges {
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   selectedItem: any;
   data: any;
 
   selectedItem: any;
   data: any;
@@ -42,8 +40,8 @@ export class NfsDetailsComponent implements OnChanges {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.selectedItem = this.selection.first();
+    if (this.selection) {
+      this.selectedItem = this.selection;
 
       this.clients = this.selectedItem.clients;
 
 
       this.clients = this.selectedItem.clients;
 
index ef42aa2929cebd4b47a8059ab60b3931588b1d28..79304265e7ea3a1a317d2fd68f4194dd4b9cf922 100644 (file)
@@ -5,6 +5,8 @@
           identifier="id"
           forceIdentifier="true"
           selectionType="single"
           identifier="id"
           forceIdentifier="true"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)">
   <div class="table-actions btn-toolbar">
     <cd-table-actions class="btn-group"
           (updateSelection)="updateSelection($event)">
   <div class="table-actions btn-toolbar">
     <cd-table-actions class="btn-group"
@@ -15,7 +17,7 @@
   </div>
 
   <cd-nfs-details cdTableDetail
   </div>
 
   <cd-nfs-details cdTableDetail
-                  [selection]="selection">
+                  [selection]="expandedRow">
   </cd-nfs-details>
 </cd-table>
 
   </cd-nfs-details>
 </cd-table>
 
index b3bd32cd59cf246f8410e1a15c74cf7f5e3a4cca..36039aa4d97e85ea97191d943ef1b788699a5a37 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
 import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
 import { ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -36,6 +37,7 @@ describe('NfsListComponent', () => {
     {
       declarations: [NfsListComponent, NfsDetailsComponent],
       imports: [
     {
       declarations: [NfsListComponent, NfsDetailsComponent],
       imports: [
+        BrowserAnimationsModule,
         HttpClientTestingModule,
         RouterTestingModule,
         SharedModule,
         HttpClientTestingModule,
         RouterTestingModule,
         SharedModule,
index 2a5c874051d88d5467e0db6f9ba7273a4236c395..7de9a5100742b6899b12a6fe42948783809e8951 100644 (file)
@@ -6,6 +6,7 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { Subscription } from 'rxjs';
 
 import { NfsService } from '../../../shared/api/nfs.service';
 import { Subscription } from 'rxjs';
 
 import { NfsService } from '../../../shared/api/nfs.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
@@ -28,7 +29,7 @@ import { TaskWrapperService } from '../../../shared/services/task-wrapper.servic
   styleUrls: ['./nfs-list.component.scss'],
   providers: [TaskListService]
 })
   styleUrls: ['./nfs-list.component.scss'],
   providers: [TaskListService]
 })
-export class NfsListComponent implements OnInit, OnDestroy {
+export class NfsListComponent extends ListWithDetails implements OnInit, OnDestroy {
   @ViewChild('nfsState', { static: false })
   nfsState: TemplateRef<any>;
   @ViewChild('nfsFsal', { static: true })
   @ViewChild('nfsState', { static: false })
   nfsState: TemplateRef<any>;
   @ViewChild('nfsFsal', { static: true })
@@ -67,6 +68,7 @@ export class NfsListComponent implements OnInit, OnDestroy {
     private taskWrapper: TaskWrapperService,
     public actionLabels: ActionLabelsI18n
   ) {
     private taskWrapper: TaskWrapperService,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().nfs;
     const getNfsUri = () =>
       this.selection.first() &&
     this.permission = this.authStorageService.getPermissions().nfs;
     const getNfsUri = () =>
       this.selection.first() &&
index 233599bed421dd9e44016e015f9ddb2938cc5aa3..ed553e1b407f023fd83a0dd86c141a3a942ef04e 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
@@ -13,7 +14,7 @@ describe('PerformanceCounterComponent', () => {
 
   configureTestBed({
     declarations: [PerformanceCounterComponent, TablePerformanceCounterComponent],
 
   configureTestBed({
     declarations: [PerformanceCounterComponent, TablePerformanceCounterComponent],
-    imports: [RouterTestingModule, SharedModule, HttpClientTestingModule],
+    imports: [RouterTestingModule, SharedModule, HttpClientTestingModule, BrowserAnimationsModule],
     providers: i18nProviders
   });
 
     providers: i18nProviders
   });
 
index c2e99387ffe1fc6e7af41e59eb150220d77ff5ae..073b6e40f0af9bfaf9ce3830dba44be12be1f171 100644 (file)
@@ -9,11 +9,11 @@
       <div class="modal-body">
         <div class="form-group row">
           <label for="name"
       <div class="modal-body">
         <div class="form-group row">
           <label for="name"
-                 class="col-form-label col-sm-3">
+                 class="cd-col-form-label">
             <ng-container i18n>Name</ng-container>
             <span class="required"></span>
           </label>
             <ng-container i18n>Name</ng-container>
             <span class="required"></span>
           </label>
-          <div class="col-sm-9">
+          <div class="cd-col-form-input">
             <input type="text"
                    id="name"
                    name="name"
             <input type="text"
                    id="name"
                    name="name"
         <!-- Root -->
         <div class="form-group row">
           <label for="root"
         <!-- Root -->
         <div class="form-group row">
           <label for="root"
-                 class="col-form-label col-sm-3">
+                 class="cd-col-form-label">
             <ng-container i18n>Root</ng-container>
             <cd-helper [html]="tooltips.root">
             </cd-helper>
             <span class="required"></span>
           </label>
             <ng-container i18n>Root</ng-container>
             <cd-helper [html]="tooltips.root">
             </cd-helper>
             <span class="required"></span>
           </label>
-          <div class="col-sm-9">
+          <div class="cd-col-form-input">
             <select class="form-control custom-select"
                     id="root"
                     name="root"
             <select class="form-control custom-select"
                     id="root"
                     name="root"
         <!-- Failure Domain Type -->
         <div class="form-group row">
           <label for="failure_domain"
         <!-- Failure Domain Type -->
         <div class="form-group row">
           <label for="failure_domain"
-                 class="col-form-label col-sm-3">
+                 class="cd-col-form-label">
             <ng-container i18n>Failure domain type</ng-container>
             <cd-helper [html]="tooltips.failure_domain">
             </cd-helper>
             <span class="required"></span>
           </label>
             <ng-container i18n>Failure domain type</ng-container>
             <cd-helper [html]="tooltips.failure_domain">
             </cd-helper>
             <span class="required"></span>
           </label>
-          <div class="col-sm-9">
+          <div class="cd-col-form-input">
             <select class="form-control custom-select"
                     id="failure_domain"
                     name="failure_domain"
             <select class="form-control custom-select"
                     id="failure_domain"
                     name="failure_domain"
@@ -78,7 +78,7 @@
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
-              <option *ngFor="let domain of failureDomainKeys()"
+              <option *ngFor="let domain of failureDomainKeys"
                       [ngValue]="domain">
                 {{ domain }} ( {{failureDomains[domain].length}} )
               </option>
                       [ngValue]="domain">
                 {{ domain }} ( {{failureDomains[domain].length}} )
               </option>
         <!-- Class -->
         <div class="form-group row">
           <label for="device_class"
         <!-- Class -->
         <div class="form-group row">
           <label for="device_class"
-                 class="col-form-label col-sm-3">
+                 class="cd-col-form-label">
             <ng-container i18n>Device class</ng-container>
             <cd-helper [html]="tooltips.device_class">
             </cd-helper>
           </label>
             <ng-container i18n>Device class</ng-container>
             <cd-helper [html]="tooltips.device_class">
             </cd-helper>
           </label>
-          <div class="col-sm-9">
+          <div class="cd-col-form-input">
             <select class="form-control custom-select"
                     id="device_class"
                     name="device_class"
             <select class="form-control custom-select"
                     id="device_class"
                     name="device_class"
index 84d0d266e27356e36b475f2c2d3b5a56f001205f..003ec29bef7b200905e59f558ad471312e2784ac 100644 (file)
@@ -64,7 +64,7 @@ describe('CrushRuleFormComponent', () => {
     failureDomains: (nodes: CrushNode[], types: string[]) => {
       const expectation = {};
       types.forEach((type) => (expectation[type] = nodes.filter((node) => node.type === type)));
     failureDomains: (nodes: CrushNode[], types: string[]) => {
       const expectation = {};
       types.forEach((type) => (expectation[type] = nodes.filter((node) => node.type === type)));
-      const keys = component.failureDomainKeys();
+      const keys = component.failureDomainKeys;
       expect(keys).toEqual(types);
       keys.forEach((key) => {
         expect(component.failureDomains[key].length).toBe(expectation[key].length);
       expect(keys).toEqual(types);
       keys.forEach((key) => {
         expect(component.failureDomains[key].length).toBe(expectation[key].length);
@@ -156,7 +156,7 @@ describe('CrushRuleFormComponent', () => {
   it('calls listing to get rules on ngInit', () => {
     expect(crushRuleService.getInfo).toHaveBeenCalled();
     expect(component.names.length).toBe(2);
   it('calls listing to get rules on ngInit', () => {
     expect(crushRuleService.getInfo).toHaveBeenCalled();
     expect(component.names.length).toBe(2);
-    expect(component['nodes'].length).toBe(12);
+    expect(component.buckets.length).toBe(5);
   });
 
   describe('lists', () => {
   });
 
   describe('lists', () => {
index 27f30fbedfa22d50c57ec6ccbd81e8ad9f680eeb..3e9edb699e364b0cb7d1dd1639c3fbf08dada5ab 100644 (file)
@@ -6,6 +6,7 @@ import * as _ from 'lodash';
 import { BsModalRef } from 'ngx-bootstrap/modal';
 
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
 import { BsModalRef } from 'ngx-bootstrap/modal';
 
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
+import { CrushNodeSelectionClass } from '../../../shared/classes/crush.node.selection.class';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CdFormBuilder } from '../../../shared/forms/cd-form-builder';
 import { CdFormGroup } from '../../../shared/forms/cd-form-group';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CdFormBuilder } from '../../../shared/forms/cd-form-builder';
 import { CdFormGroup } from '../../../shared/forms/cd-form-group';
@@ -19,13 +20,10 @@ import { TaskWrapperService } from '../../../shared/services/task-wrapper.servic
   templateUrl: './crush-rule-form-modal.component.html',
   styleUrls: ['./crush-rule-form-modal.component.scss']
 })
   templateUrl: './crush-rule-form-modal.component.html',
   styleUrls: ['./crush-rule-form-modal.component.scss']
 })
-export class CrushRuleFormModalComponent implements OnInit {
+export class CrushRuleFormModalComponent extends CrushNodeSelectionClass implements OnInit {
   @Output()
   submitAction = new EventEmitter();
 
   @Output()
   submitAction = new EventEmitter();
 
-  buckets: CrushNode[] = [];
-  failureDomains: { [type: string]: CrushNode[] } = {};
-  devices: string[] = [];
   tooltips = this.crushRuleService.formTooltips;
 
   form: CdFormGroup;
   tooltips = this.crushRuleService.formTooltips;
 
   form: CdFormGroup;
@@ -33,9 +31,6 @@ export class CrushRuleFormModalComponent implements OnInit {
   action: string;
   resource: string;
 
   action: string;
   resource: string;
 
-  private nodes: CrushNode[] = [];
-  private easyNodes: { [id: number]: CrushNode } = {};
-
   constructor(
     private formBuilder: CdFormBuilder,
     public bsModalRef: BsModalRef,
   constructor(
     private formBuilder: CdFormBuilder,
     public bsModalRef: BsModalRef,
@@ -44,6 +39,7 @@ export class CrushRuleFormModalComponent implements OnInit {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.action = this.actionLabels.CREATE;
     this.resource = this.i18n('Crush Rule');
     this.createForm();
     this.action = this.actionLabels.CREATE;
     this.resource = this.i18n('Crush Rule');
     this.createForm();
@@ -76,101 +72,14 @@ export class CrushRuleFormModalComponent implements OnInit {
     this.crushRuleService
       .getInfo()
       .subscribe(({ names, nodes }: { names: string[]; nodes: CrushNode[] }) => {
     this.crushRuleService
       .getInfo()
       .subscribe(({ names, nodes }: { names: string[]; nodes: CrushNode[] }) => {
-        this.nodes = nodes;
-        nodes.forEach((node) => {
-          this.easyNodes[node.id] = node;
-        });
-        this.buckets = _.sortBy(
-          nodes.filter((n) => n.children),
-          'name'
+        this.initCrushNodeSelection(
+          nodes,
+          this.form.get('root'),
+          this.form.get('failure_domain'),
+          this.form.get('device_class')
         );
         this.names = names;
         );
         this.names = names;
-        this.preSelectRoot();
       });
       });
-    this.form.get('root').valueChanges.subscribe((root: CrushNode) => this.updateRoot(root));
-    this.form
-      .get('failure_domain')
-      .valueChanges.subscribe((domain: string) => this.updateDevices(domain));
-  }
-
-  private preSelectRoot() {
-    const rootNode = this.nodes.find((node) => node.type === 'root');
-    this.form.silentSet('root', rootNode);
-    this.updateRoot(rootNode);
-  }
-
-  private updateRoot(rootNode: CrushNode) {
-    const nodes = this.getSubNodes(rootNode);
-    const domains = {};
-    nodes.forEach((node) => {
-      if (!domains[node.type]) {
-        domains[node.type] = [];
-      }
-      domains[node.type].push(node);
-    });
-    Object.keys(domains).forEach((type) => {
-      if (domains[type].length <= 1) {
-        delete domains[type];
-      }
-    });
-    this.failureDomains = domains;
-    this.updateFailureDomain();
-  }
-
-  private getSubNodes(node: CrushNode): CrushNode[] {
-    let subNodes = [node]; // Includes parent node
-    if (!node.children) {
-      return subNodes;
-    }
-    node.children.forEach((id) => {
-      const childNode = this.easyNodes[id];
-      subNodes = subNodes.concat(this.getSubNodes(childNode));
-    });
-    return subNodes;
-  }
-
-  private updateFailureDomain() {
-    let failureDomain = this.getIncludedCustomValue(
-      'failure_domain',
-      Object.keys(this.failureDomains)
-    );
-    if (failureDomain === '') {
-      failureDomain = this.setMostCommonDomain();
-    }
-    this.updateDevices(failureDomain);
-  }
-
-  private getIncludedCustomValue(controlName: string, includedIn: string[]) {
-    const control = this.form.get(controlName);
-    return control.dirty && includedIn.includes(control.value) ? control.value : '';
-  }
-
-  private setMostCommonDomain(): string {
-    let winner = { n: 0, type: '' };
-    Object.keys(this.failureDomains).forEach((type) => {
-      const n = this.failureDomains[type].length;
-      if (winner.n < n) {
-        winner = { n, type };
-      }
-    });
-    this.form.silentSet('failure_domain', winner.type);
-    return winner.type;
-  }
-
-  updateDevices(failureDomain: string) {
-    const subNodes = _.flatten(
-      this.failureDomains[failureDomain].map((node) => this.getSubNodes(node))
-    );
-    this.devices = _.uniq(subNodes.filter((n) => n.device_class).map((n) => n.device_class)).sort();
-    const device =
-      this.devices.length === 1
-        ? this.devices[0]
-        : this.getIncludedCustomValue('device_class', this.devices);
-    this.form.get('device_class').setValue(device);
-  }
-
-  failureDomainKeys(): string[] {
-    return Object.keys(this.failureDomains).sort();
   }
 
   onSubmit() {
   }
 
   onSubmit() {
index 985f6a3fa551d9e6a8402d45a83308b4127298e4..cbdeb36b1b4a475595fdd09c917d20f8d79f93c3 100644 (file)
@@ -61,7 +61,7 @@
         <div class="form-group row">
           <label for="k"
                  class="cd-col-form-label">
         <div class="form-group row">
           <label for="k"
                  class="cd-col-form-label">
-            <span [ngClass]="{'required': requiredControls.includes('k')}"
+            <span class="required"
                   i18n>Data chunks (k)</span>
             <cd-helper [html]="tooltips.k">
             </cd-helper>
                   i18n>Data chunks (k)</span>
             <cd-helper [html]="tooltips.k">
             </cd-helper>
             <span class="invalid-feedback"
                   *ngIf="form.showError('k', frm, 'min')"
                   i18n>Must be equal to or greater than 2.</span>
             <span class="invalid-feedback"
                   *ngIf="form.showError('k', frm, 'min')"
                   i18n>Must be equal to or greater than 2.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('k', frm, 'max')"
+                  i18n>Chunks (k+m) have exceeded the available OSDs of {{deviceCount}}.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('k', frm, 'unequal')"
+                  i18n>For an equal distribution k has to be a multiple of (k+m)/l.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('k', frm, 'kLowerM')"
+                  i18n>K has to be equal to or greater than m in order to recover data correctly through c.</span>
+            <span *ngIf="plugin === 'lrc'"
+                  class="form-text text-muted"
+                  i18n>Distribution factor: {{lrcMultiK}}</span>
           </div>
         </div>
 
         <div class="form-group row">
           <label for="m"
                  class="cd-col-form-label">
           </div>
         </div>
 
         <div class="form-group row">
           <label for="m"
                  class="cd-col-form-label">
-            <span [ngClass]="{'required': requiredControls.includes('m')}"
+            <span class="required"
                   i18n>Coding chunks (m)</span>
             <cd-helper [html]="tooltips.m">
             </cd-helper>
                   i18n>Coding chunks (m)</span>
             <cd-helper [html]="tooltips.m">
             </cd-helper>
             <span class="invalid-feedback"
                   *ngIf="form.showError('m', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
             <span class="invalid-feedback"
                   *ngIf="form.showError('m', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('m', frm, 'max')"
+                  i18n>Chunks (k+m) have exceeded the available OSDs of {{deviceCount}}.</span>
           </div>
         </div>
 
           </div>
         </div>
 
              *ngIf="plugin === 'shec'">
           <label for="c"
                  class="cd-col-form-label">
              *ngIf="plugin === 'shec'">
           <label for="c"
                  class="cd-col-form-label">
-            <ng-container i18n>Durability estimator (c)</ng-container>
+            <span class="required"
+                  i18n>Durability estimator (c)</span>
             <cd-helper [html]="tooltips.plugins.shec.c">
             </cd-helper>
           </label>
             <cd-helper [html]="tooltips.plugins.shec.c">
             </cd-helper>
           </label>
             <span class="invalid-feedback"
                   *ngIf="form.showError('c', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
             <span class="invalid-feedback"
                   *ngIf="form.showError('c', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('c', frm, 'cGreaterM')"
+                  i18n>C has to be equal to or lower than m as m defines the amount of chunks that can be used.</span>
           </div>
         </div>
 
           </div>
         </div>
 
             <span class="invalid-feedback"
                   *ngIf="form.showError('l', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
             <span class="invalid-feedback"
                   *ngIf="form.showError('l', frm, 'min')"
                   i18n>Must be equal to or greater than 1.</span>
+            <span class="invalid-feedback"
+                  *ngIf="form.showError('l', frm, 'unequal')"
+                  i18n>Can't split up chunks (k+m) correctly with the current locality.</span>
+            <span class="form-text text-muted"
+                  i18n>Locality groups: {{lrcGroups}}</span>
           </div>
         </div>
 
           </div>
         </div>
 
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
-              <option *ngFor="let domain of failureDomains"
+              <option *ngFor="let domain of failureDomainKeys"
                       [ngValue]="domain">
                       [ngValue]="domain">
-                {{ domain }}
+                {{ domain }} ( {{failureDomains[domain].length}} )
               </option>
             </select>
           </div>
               </option>
             </select>
           </div>
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
               <option *ngIf="!failureDomains"
                       ngValue=""
                       i18n>Loading...</option>
-              <option *ngIf="failureDomains && failureDomains.length > 0"
+              <option *ngIf="failureDomainKeys.length > 0"
                       ngValue=""
                       i18n>None</option>
                       ngValue=""
                       i18n>None</option>
-              <option *ngFor="let domain of failureDomains"
+              <option *ngFor="let domain of failureDomainKeys"
                       [ngValue]="domain">
                       [ngValue]="domain">
-                {{ domain }}
+                {{ domain }} ( {{failureDomains[domain].length}} )
               </option>
             </select>
           </div>
               </option>
             </select>
           </div>
             </cd-helper>
           </label>
           <div class="cd-col-form-input">
             </cd-helper>
           </label>
           <div class="cd-col-form-input">
-            <input type="text"
-                   id="crushRoot"
-                   name="crushRoot"
-                   class="form-control"
-                   placeholder="root..."
-                   formControlName="crushRoot">
+            <select class="form-control custom-select"
+                    id="crushRoot"
+                    name="crushRoot"
+                    formControlName="crushRoot">
+              <option *ngIf="!buckets"
+                      ngValue=""
+                      i18n>Loading...</option>
+              <option *ngFor="let bucket of buckets"
+                      [ngValue]="bucket">
+                {{ bucket.name }}
+              </option>
+            </select>
           </div>
         </div>
 
           </div>
         </div>
 
                     name="crushDeviceClass"
                     formControlName="crushDeviceClass">
               <option ngValue=""
                     name="crushDeviceClass"
                     formControlName="crushDeviceClass">
               <option ngValue=""
-                      i18n>any</option>
+                      i18n>Let Ceph decide</option>
               <option *ngFor="let deviceClass of devices"
                       [ngValue]="deviceClass">
                 {{ deviceClass }}
               </option>
             </select>
               <option *ngFor="let deviceClass of devices"
                       [ngValue]="deviceClass">
                 {{ deviceClass }}
               </option>
             </select>
+            <span class="form-text text-muted"
+                  i18n>Available OSDs: {{deviceCount}}</span>
           </div>
         </div>
 
           </div>
         </div>
 
index 0d4ce97a210165c8673c00f16fd7263326f77180..2628f1f69a42899de41031afac3256fbd7d7a52d 100644 (file)
@@ -15,6 +15,7 @@ import {
   i18nProviders
 } from '../../../../testing/unit-test-helper';
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
   i18nProviders
 } from '../../../../testing/unit-test-helper';
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
+import { CrushNode } from '../../../shared/models/crush-node';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
 import { PoolModule } from '../pool.module';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
 import { PoolModule } from '../pool.module';
@@ -28,6 +29,20 @@ describe('ErasureCodeProfileFormModalComponent', () => {
   let fixtureHelper: FixtureHelper;
   let data: {};
 
   let fixtureHelper: FixtureHelper;
   let data: {};
 
+  // Object contains mock functions
+  const mock = {
+    node: (
+      name: string,
+      id: number,
+      type: string,
+      type_id: number,
+      children?: number[],
+      device_class?: string
+    ): CrushNode => {
+      return { name, type, type_id, id, children, device_class };
+    }
+  };
+
   configureTestBed({
     imports: [
       HttpClientTestingModule,
   configureTestBed({
     imports: [
       HttpClientTestingModule,
@@ -46,10 +61,44 @@ describe('ErasureCodeProfileFormModalComponent', () => {
     formHelper = new FormHelper(component.form);
     ecpService = TestBed.get(ErasureCodeProfileService);
     data = {
     formHelper = new FormHelper(component.form);
     ecpService = TestBed.get(ErasureCodeProfileService);
     data = {
-      failure_domains: ['host', 'osd'],
       plugins: ['isa', 'jerasure', 'shec', 'lrc'],
       names: ['ecp1', 'ecp2'],
       plugins: ['isa', 'jerasure', 'shec', 'lrc'],
       names: ['ecp1', 'ecp2'],
-      devices: ['ssd', 'hdd']
+      /**
+       * Create the following test crush map:
+       * > default
+       * --> ssd-host
+       * ----> 3x osd with ssd
+       * --> mix-host
+       * ----> hdd-rack
+       * ------> 2x osd-rack with hdd
+       * ----> ssd-rack
+       * ------> 2x osd-rack with ssd
+       */
+      nodes: [
+        // Root node
+        mock.node('default', -1, 'root', 11, [-2, -3]),
+        // SSD host
+        mock.node('ssd-host', -2, 'host', 1, [1, 0, 2]),
+        mock.node('osd.0', 0, 'osd', 0, undefined, 'ssd'),
+        mock.node('osd.1', 1, 'osd', 0, undefined, 'ssd'),
+        mock.node('osd.2', 2, 'osd', 0, undefined, 'ssd'),
+        // SSD and HDD mixed devices host
+        mock.node('mix-host', -3, 'host', 1, [-4, -5]),
+        // HDD rack
+        mock.node('hdd-rack', -4, 'rack', 3, [3, 4, 5, 6, 7]),
+        mock.node('osd2.0', 3, 'osd-rack', 0, undefined, 'hdd'),
+        mock.node('osd2.1', 4, 'osd-rack', 0, undefined, 'hdd'),
+        mock.node('osd2.2', 5, 'osd-rack', 0, undefined, 'hdd'),
+        mock.node('osd2.3', 6, 'osd-rack', 0, undefined, 'hdd'),
+        mock.node('osd2.4', 7, 'osd-rack', 0, undefined, 'hdd'),
+        // SSD rack
+        mock.node('ssd-rack', -5, 'rack', 3, [8, 9, 10, 11, 12]),
+        mock.node('osd3.0', 8, 'osd-rack', 0, undefined, 'ssd'),
+        mock.node('osd3.1', 9, 'osd-rack', 0, undefined, 'ssd'),
+        mock.node('osd3.2', 10, 'osd-rack', 0, undefined, 'ssd'),
+        mock.node('osd3.3', 11, 'osd-rack', 0, undefined, 'ssd'),
+        mock.node('osd3.4', 12, 'osd-rack', 0, undefined, 'ssd')
+      ]
     };
     spyOn(ecpService, 'getInfo').and.callFake(() => of(data));
     fixture.detectChanges();
     };
     spyOn(ecpService, 'getInfo').and.callFake(() => of(data));
     fixture.detectChanges();
@@ -79,7 +128,7 @@ describe('ErasureCodeProfileFormModalComponent', () => {
     });
 
     it('sets k to min error', () => {
     });
 
     it('sets k to min error', () => {
-      formHelper.expectErrorChange('k', 0, 'min');
+      formHelper.expectErrorChange('k', 1, 'min');
     });
 
     it('sets m to min error', () => {
     });
 
     it('sets m to min error', () => {
@@ -122,6 +171,14 @@ describe('ErasureCodeProfileFormModalComponent', () => {
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'l', 'crushLocality'], false);
       });
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'l', 'crushLocality'], false);
       });
+
+      it('should not allow "k" to be changed more than possible', () => {
+        formHelper.expectErrorChange('k', 10, 'max');
+      });
+
+      it('should not allow "m" to be changed more than possible', () => {
+        formHelper.expectErrorChange('m', 10, 'max');
+      });
     });
 
     describe(`for 'isa' plugin`, () => {
     });
 
     describe(`for 'isa' plugin`, () => {
@@ -129,10 +186,9 @@ describe('ErasureCodeProfileFormModalComponent', () => {
         formHelper.setValue('plugin', 'isa');
       });
 
         formHelper.setValue('plugin', 'isa');
       });
 
-      it(`does not require 'm' and 'k'`, () => {
-        formHelper.setValue('k', null);
-        formHelper.expectValidChange('k', null);
-        formHelper.expectValidChange('m', null);
+      it(`does require 'm' and 'k'`, () => {
+        formHelper.expectErrorChange('k', null, 'required');
+        formHelper.expectErrorChange('m', null, 'required');
       });
 
       it(`should show 'technique'`, () => {
       });
 
       it(`should show 'technique'`, () => {
@@ -143,16 +199,28 @@ describe('ErasureCodeProfileFormModalComponent', () => {
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'l', 'crushLocality', 'packetSize'], false);
       });
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'l', 'crushLocality', 'packetSize'], false);
       });
+
+      it('should not allow "k" to be changed more than possible', () => {
+        formHelper.expectErrorChange('k', 10, 'max');
+      });
+
+      it('should not allow "m" to be changed more than possible', () => {
+        formHelper.expectErrorChange('m', 10, 'max');
+      });
     });
 
     describe(`for 'lrc' plugin`, () => {
       beforeEach(() => {
         formHelper.setValue('plugin', 'lrc');
     });
 
     describe(`for 'lrc' plugin`, () => {
       beforeEach(() => {
         formHelper.setValue('plugin', 'lrc');
+        formHelper.expectValid('k');
+        formHelper.expectValid('l');
+        formHelper.expectValid('m');
       });
 
       it(`requires 'm', 'l' and 'k'`, () => {
         formHelper.expectErrorChange('k', null, 'required');
         formHelper.expectErrorChange('m', null, 'required');
       });
 
       it(`requires 'm', 'l' and 'k'`, () => {
         formHelper.expectErrorChange('k', null, 'required');
         formHelper.expectErrorChange('m', null, 'required');
+        formHelper.expectErrorChange('l', null, 'required');
       });
 
       it(`should show 'l' and 'crushLocality'`, () => {
       });
 
       it(`should show 'l' and 'crushLocality'`, () => {
@@ -162,16 +230,118 @@ describe('ErasureCodeProfileFormModalComponent', () => {
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'packetSize', 'technique'], false);
       });
       it(`should not show any other plugin specific form control`, () => {
         fixtureHelper.expectIdElementsVisible(['c', 'packetSize', 'technique'], false);
       });
+
+      it('should not allow "k" to be changed more than possible', () => {
+        formHelper.expectErrorChange('k', 10, 'max');
+      });
+
+      it('should not allow "m" to be changed more than possible', () => {
+        formHelper.expectErrorChange('m', 10, 'max');
+      });
+
+      it('should not allow "l" to be changed so that (k+m) is not a multiple of "l"', () => {
+        formHelper.expectErrorChange('l', 4, 'unequal');
+      });
+
+      it('should update validity of k and l on m change', () => {
+        formHelper.expectValidChange('m', 3);
+        formHelper.expectError('k', 'unequal');
+        formHelper.expectError('l', 'unequal');
+      });
+
+      describe('lrc calculation', () => {
+        const expectCorrectCalculation = (
+          k: number,
+          m: number,
+          l: number,
+          failedControl: string[] = []
+        ) => {
+          formHelper.setValue('k', k);
+          formHelper.setValue('m', m);
+          formHelper.setValue('l', l);
+          ['k', 'l'].forEach((name) => {
+            if (failedControl.includes(name)) {
+              formHelper.expectError(name, 'unequal');
+            } else {
+              formHelper.expectValid(name);
+            }
+          });
+        };
+
+        const tests = {
+          kFails: [
+            [2, 1, 1],
+            [2, 2, 1],
+            [3, 1, 1],
+            [3, 2, 1],
+            [3, 1, 2],
+            [3, 3, 1],
+            [3, 3, 3],
+            [4, 1, 1],
+            [4, 2, 1],
+            [4, 2, 2],
+            [4, 3, 1],
+            [4, 4, 1]
+          ],
+          lFails: [
+            [2, 1, 2],
+            [3, 2, 2],
+            [3, 1, 3],
+            [3, 2, 3],
+            [4, 1, 2],
+            [4, 3, 2],
+            [4, 3, 3],
+            [4, 1, 3],
+            [4, 4, 3],
+            [4, 1, 4],
+            [4, 2, 4],
+            [4, 3, 4]
+          ],
+          success: [
+            [2, 2, 2],
+            [2, 2, 4],
+            [3, 3, 2],
+            [3, 3, 6],
+            [4, 2, 3],
+            [4, 2, 6],
+            [4, 4, 2],
+            [4, 4, 8],
+            [4, 4, 4]
+          ]
+        };
+
+        it('tests all cases where k fails', () => {
+          tests.kFails.forEach((testCase) => {
+            expectCorrectCalculation(testCase[0], testCase[1], testCase[2], ['k']);
+          });
+        });
+
+        it('tests all cases where l fails', () => {
+          tests.lFails.forEach((testCase) => {
+            expectCorrectCalculation(testCase[0], testCase[1], testCase[2], ['k', 'l']);
+          });
+        });
+
+        it('tests all cases where everything is valid', () => {
+          tests.success.forEach((testCase) => {
+            expectCorrectCalculation(testCase[0], testCase[1], testCase[2]);
+          });
+        });
+      });
     });
 
     describe(`for 'shec' plugin`, () => {
       beforeEach(() => {
         formHelper.setValue('plugin', 'shec');
     });
 
     describe(`for 'shec' plugin`, () => {
       beforeEach(() => {
         formHelper.setValue('plugin', 'shec');
+        formHelper.expectValid('c');
+        formHelper.expectValid('m');
+        formHelper.expectValid('k');
       });
 
       });
 
-      it(`does not require 'm' and 'k'`, () => {
-        formHelper.expectValidChange('k', null);
-        formHelper.expectValidChange('m', null);
+      it(`does require 'm', 'c' and 'k'`, () => {
+        formHelper.expectErrorChange('k', null, 'required');
+        formHelper.expectErrorChange('m', null, 'required');
+        formHelper.expectErrorChange('c', null, 'required');
       });
 
       it(`should show 'c'`, () => {
       });
 
       it(`should show 'c'`, () => {
@@ -184,20 +354,52 @@ describe('ErasureCodeProfileFormModalComponent', () => {
           false
         );
       });
           false
         );
       });
+
+      it('should make sure that k has to be equal or greater than m', () => {
+        formHelper.expectValidChange('k', 3);
+        formHelper.expectErrorChange('k', 2, 'kLowerM');
+      });
+
+      it('should make sure that c has to be equal or less than m', () => {
+        formHelper.expectValidChange('c', 3);
+        formHelper.expectErrorChange('c', 4, 'cGreaterM');
+      });
+
+      it('should update validity of k and c on m change', () => {
+        formHelper.expectValidChange('m', 5);
+        formHelper.expectError('k', 'kLowerM');
+        formHelper.expectValid('c');
+
+        formHelper.expectValidChange('m', 1);
+        formHelper.expectError('c', 'cGreaterM');
+        formHelper.expectValid('k');
+      });
     });
   });
 
   describe('submission', () => {
     let ecp: ErasureCodeProfile;
     });
   });
 
   describe('submission', () => {
     let ecp: ErasureCodeProfile;
+    let submittedEcp: ErasureCodeProfile;
 
     const testCreation = () => {
       fixture.detectChanges();
       component.onSubmit();
 
     const testCreation = () => {
       fixture.detectChanges();
       component.onSubmit();
-      expect(ecpService.create).toHaveBeenCalledWith(ecp);
+      expect(ecpService.create).toHaveBeenCalledWith(submittedEcp);
+    };
+
+    const ecpChange = (attribute: string, value: string | number) => {
+      ecp[attribute] = value;
+      submittedEcp[attribute] = value;
     };
 
     beforeEach(() => {
       ecp = new ErasureCodeProfile();
     };
 
     beforeEach(() => {
       ecp = new ErasureCodeProfile();
+      submittedEcp = new ErasureCodeProfile();
+      submittedEcp['crush-root'] = 'default';
+      submittedEcp['crush-failure-domain'] = 'osd-rack';
+      submittedEcp['packetsize'] = 2048;
+      submittedEcp['technique'] = 'reed_sol_van';
+
       const taskWrapper = TestBed.get(TaskWrapperService);
       spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
       spyOn(ecpService, 'create').and.stub();
       const taskWrapper = TestBed.get(TaskWrapperService);
       spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
       spyOn(ecpService, 'create').and.stub();
@@ -205,37 +407,35 @@ describe('ErasureCodeProfileFormModalComponent', () => {
 
     describe(`'jerasure' usage`, () => {
       beforeEach(() => {
 
     describe(`'jerasure' usage`, () => {
       beforeEach(() => {
-        ecp.name = 'jerasureProfile';
+        submittedEcp['plugin'] = 'jerasure';
+        ecpChange('name', 'jerasureProfile');
+        submittedEcp.k = 4;
+        submittedEcp.m = 2;
       });
 
       it('should be able to create a profile with only required fields', () => {
         formHelper.setMultipleValues(ecp, true);
       });
 
       it('should be able to create a profile with only required fields', () => {
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
-        ecp.m = 2;
         testCreation();
       });
 
       it(`does not create with missing 'k' or invalid form`, () => {
         testCreation();
       });
 
       it(`does not create with missing 'k' or invalid form`, () => {
-        ecp.k = 0;
+        ecpChange('k', 0);
         formHelper.setMultipleValues(ecp, true);
         component.onSubmit();
         expect(ecpService.create).not.toHaveBeenCalled();
       });
 
       it('should be able to create a profile with m, k, name, directory and packetSize', () => {
         formHelper.setMultipleValues(ecp, true);
         component.onSubmit();
         expect(ecpService.create).not.toHaveBeenCalled();
       });
 
       it('should be able to create a profile with m, k, name, directory and packetSize', () => {
-        ecp.m = 3;
-        ecp.directory = '/different/ecp/path';
+        ecpChange('m', 3);
+        ecpChange('directory', '/different/ecp/path');
         formHelper.setMultipleValues(ecp, true);
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
         formHelper.setValue('packetSize', 8192, true);
         formHelper.setValue('packetSize', 8192, true);
-        ecp.packetsize = 8192;
+        ecpChange('packetsize', 8192);
         testCreation();
       });
 
       it('should not send the profile with unsupported fields', () => {
         formHelper.setMultipleValues(ecp, true);
         testCreation();
       });
 
       it('should not send the profile with unsupported fields', () => {
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
-        ecp.m = 2;
         formHelper.setValue('crushLocality', 'osd', true);
         testCreation();
       });
         formHelper.setValue('crushLocality', 'osd', true);
         testCreation();
       });
@@ -243,8 +443,11 @@ describe('ErasureCodeProfileFormModalComponent', () => {
 
     describe(`'isa' usage`, () => {
       beforeEach(() => {
 
     describe(`'isa' usage`, () => {
       beforeEach(() => {
-        ecp.name = 'isaProfile';
-        ecp.plugin = 'isa';
+        ecpChange('name', 'isaProfile');
+        ecpChange('plugin', 'isa');
+        submittedEcp.k = 7;
+        submittedEcp.m = 3;
+        delete submittedEcp.packetsize;
       });
 
       it('should be able to create a profile with only plugin and name', () => {
       });
 
       it('should be able to create a profile with only plugin and name', () => {
@@ -253,10 +456,11 @@ describe('ErasureCodeProfileFormModalComponent', () => {
       });
 
       it('should send profile with plugin, name, failure domain and technique only', () => {
       });
 
       it('should send profile with plugin, name, failure domain and technique only', () => {
-        ecp.technique = 'cauchy';
+        ecpChange('technique', 'cauchy');
         formHelper.setMultipleValues(ecp, true);
         formHelper.setValue('crushFailureDomain', 'osd', true);
         formHelper.setMultipleValues(ecp, true);
         formHelper.setValue('crushFailureDomain', 'osd', true);
-        ecp['crush-failure-domain'] = 'osd';
+        submittedEcp['crush-failure-domain'] = 'osd';
+        submittedEcp['crush-device-class'] = 'ssd';
         testCreation();
       });
 
         testCreation();
       });
 
@@ -269,35 +473,32 @@ describe('ErasureCodeProfileFormModalComponent', () => {
 
     describe(`'lrc' usage`, () => {
       beforeEach(() => {
 
     describe(`'lrc' usage`, () => {
       beforeEach(() => {
-        ecp.name = 'lreProfile';
-        ecp.plugin = 'lrc';
+        ecpChange('name', 'lrcProfile');
+        ecpChange('plugin', 'lrc');
+        submittedEcp.k = 4;
+        submittedEcp.m = 2;
+        submittedEcp.l = 3;
+        delete submittedEcp.packetsize;
+        delete submittedEcp.technique;
       });
 
       it('should be able to create a profile with only required fields', () => {
         formHelper.setMultipleValues(ecp, true);
       });
 
       it('should be able to create a profile with only required fields', () => {
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
-        ecp.m = 2;
-        ecp.l = 3;
         testCreation();
       });
 
       it('should send profile with all required fields and crush root and locality', () => {
         testCreation();
       });
 
       it('should send profile with all required fields and crush root and locality', () => {
-        ecp.l = 8;
+        ecpChange('l', '6');
         formHelper.setMultipleValues(ecp, true);
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
-        ecp.m = 2;
-        formHelper.setValue('crushLocality', 'osd', true);
-        formHelper.setValue('crushRoot', 'rack', true);
-        ecp['crush-locality'] = 'osd';
-        ecp['crush-root'] = 'rack';
+        formHelper.setValue('crushRoot', component.buckets[2], true);
+        submittedEcp['crush-root'] = 'mix-host';
+        formHelper.setValue('crushLocality', 'osd-rack', true);
+        submittedEcp['crush-locality'] = 'osd-rack';
         testCreation();
       });
 
       it('should not send the profile with unsupported fields', () => {
         formHelper.setMultipleValues(ecp, true);
         testCreation();
       });
 
       it('should not send the profile with unsupported fields', () => {
         formHelper.setMultipleValues(ecp, true);
-        ecp.k = 4;
-        ecp.m = 2;
-        ecp.l = 3;
         formHelper.setValue('c', 4, true);
         testCreation();
       });
         formHelper.setValue('c', 4, true);
         testCreation();
       });
@@ -305,8 +506,13 @@ describe('ErasureCodeProfileFormModalComponent', () => {
 
     describe(`'shec' usage`, () => {
       beforeEach(() => {
 
     describe(`'shec' usage`, () => {
       beforeEach(() => {
-        ecp.name = 'shecProfile';
-        ecp.plugin = 'shec';
+        ecpChange('name', 'shecProfile');
+        ecpChange('plugin', 'shec');
+        submittedEcp.k = 4;
+        submittedEcp.m = 3;
+        submittedEcp.c = 2;
+        delete submittedEcp.packetsize;
+        delete submittedEcp.technique;
       });
 
       it('should be able to create a profile with only plugin and name', () => {
       });
 
       it('should be able to create a profile with only plugin and name', () => {
@@ -315,10 +521,10 @@ describe('ErasureCodeProfileFormModalComponent', () => {
       });
 
       it('should send profile with plugin, name, c and crush device class only', () => {
       });
 
       it('should send profile with plugin, name, c and crush device class only', () => {
-        ecp.c = 4;
+        ecpChange('c', '3');
         formHelper.setMultipleValues(ecp, true);
         formHelper.setValue('crushDeviceClass', 'ssd', true);
         formHelper.setMultipleValues(ecp, true);
         formHelper.setValue('crushDeviceClass', 'ssd', true);
-        ecp['crush-device-class'] = 'ssd';
+        submittedEcp['crush-device-class'] = 'ssd';
         testCreation();
       });
 
         testCreation();
       });
 
index 6a62a5c87a56364fb55f0a73e8b34a8d40b9e963..7f5aa7aed763c6045a33350ea43d828c88f0f791 100644 (file)
@@ -5,10 +5,12 @@ import { I18n } from '@ngx-translate/i18n-polyfill';
 import { BsModalRef } from 'ngx-bootstrap/modal';
 
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
 import { BsModalRef } from 'ngx-bootstrap/modal';
 
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
+import { CrushNodeSelectionClass } from '../../../shared/classes/crush.node.selection.class';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CdFormBuilder } from '../../../shared/forms/cd-form-builder';
 import { CdFormGroup } from '../../../shared/forms/cd-form-group';
 import { CdValidators } from '../../../shared/forms/cd-validators';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CdFormBuilder } from '../../../shared/forms/cd-form-builder';
 import { CdFormGroup } from '../../../shared/forms/cd-form-group';
 import { CdValidators } from '../../../shared/forms/cd-validators';
+import { CrushNode } from '../../../shared/models/crush-node';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { FinishedTask } from '../../../shared/models/finished-task';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { FinishedTask } from '../../../shared/models/finished-task';
 import { TaskWrapperService } from '../../../shared/services/task-wrapper.service';
@@ -18,19 +20,12 @@ import { TaskWrapperService } from '../../../shared/services/task-wrapper.servic
   templateUrl: './erasure-code-profile-form-modal.component.html',
   styleUrls: ['./erasure-code-profile-form-modal.component.scss']
 })
   templateUrl: './erasure-code-profile-form-modal.component.html',
   styleUrls: ['./erasure-code-profile-form-modal.component.scss']
 })
-export class ErasureCodeProfileFormModalComponent implements OnInit {
+export class ErasureCodeProfileFormModalComponent extends CrushNodeSelectionClass
+  implements OnInit {
   @Output()
   submitAction = new EventEmitter();
 
   @Output()
   submitAction = new EventEmitter();
 
-  form: CdFormGroup;
-  failureDomains: string[];
-  plugins: string[];
-  names: string[];
-  techniques: string[];
-  requiredControls: string[] = [];
-  devices: string[] = [];
   tooltips = this.ecpService.formTooltips;
   tooltips = this.ecpService.formTooltips;
-
   PLUGIN = {
     LRC: 'lrc', // Locally Repairable Erasure Code
     SHEC: 'shec', // Shingled Erasure Code
   PLUGIN = {
     LRC: 'lrc', // Locally Repairable Erasure Code
     SHEC: 'shec', // Shingled Erasure Code
@@ -38,8 +33,15 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
     ISA: 'isa' // Intel Storage Acceleration
   };
   plugin = this.PLUGIN.JERASURE;
     ISA: 'isa' // Intel Storage Acceleration
   };
   plugin = this.PLUGIN.JERASURE;
+
+  form: CdFormGroup;
+  plugins: string[];
+  names: string[];
+  techniques: string[];
   action: string;
   resource: string;
   action: string;
   resource: string;
+  lrcGroups: number;
+  lrcMultiK: number;
 
   constructor(
     private formBuilder: CdFormBuilder,
 
   constructor(
     private formBuilder: CdFormBuilder,
@@ -49,6 +51,7 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
     private i18n: I18n,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.action = this.actionLabels.CREATE;
     this.resource = this.i18n('EC Profile');
     this.createForm();
     this.action = this.actionLabels.CREATE;
     this.resource = this.i18n('EC Profile');
     this.createForm();
@@ -69,26 +72,115 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
         ]
       ],
       plugin: [this.PLUGIN.JERASURE, [Validators.required]],
         ]
       ],
       plugin: [this.PLUGIN.JERASURE, [Validators.required]],
-      k: [1], // Will be replaced by plugin defaults
-      m: [1], // Will be replaced by plugin defaults
-      crushFailureDomain: ['host'],
-      crushRoot: ['default'], // default for all - is a list possible???
-      crushDeviceClass: [''], // set none to empty at submit - get list from configs?
-      directory: [''],
+      k: [
+        4, // Will be overwritten with plugin defaults
+        [
+          Validators.required,
+          Validators.min(2),
+          CdValidators.custom('max', () => this.baseValueValidation(true)),
+          CdValidators.custom('unequal', (v: number) => this.lrcDataValidation(v)),
+          CdValidators.custom('kLowerM', (v: number) => this.shecDataValidation(v))
+        ]
+      ],
+      m: [
+        2, // Will be overwritten with plugin defaults
+        [
+          Validators.required,
+          Validators.min(1),
+          CdValidators.custom('max', () => this.baseValueValidation())
+        ]
+      ],
+      crushFailureDomain: '', // Will be preselected
+      crushRoot: null, // Will be preselected
+      crushDeviceClass: '', // Will be preselected
+      directory: '',
       // Only for 'jerasure' and 'isa' use
       // Only for 'jerasure' and 'isa' use
-      technique: ['reed_sol_van'],
+      technique: 'reed_sol_van',
       // Only for 'jerasure' use
       packetSize: [2048, [Validators.min(1)]],
       // Only for 'lrc' use
       // Only for 'jerasure' use
       packetSize: [2048, [Validators.min(1)]],
       // Only for 'lrc' use
-      l: [1, [Validators.required, Validators.min(1)]],
-      crushLocality: [''], // set to none at the end (same list as for failure domains)
+      l: [
+        3, // Will be overwritten with plugin defaults
+        [
+          Validators.required,
+          Validators.min(1),
+          CdValidators.custom('unequal', (v: number) => this.lrcLocalityValidation(v))
+        ]
+      ],
+      crushLocality: '', // set to none at the end (same list as for failure domains)
       // Only for 'shec' use
       // Only for 'shec' use
-      c: [1, [Validators.required, Validators.min(1)]]
+      c: [
+        2, // Will be overwritten with plugin defaults
+        [
+          Validators.required,
+          Validators.min(1),
+          CdValidators.custom('cGreaterM', (v: number) => this.shecDurabilityValidation(v))
+        ]
+      ]
     });
     });
+    this.form.get('k').valueChanges.subscribe(() => this.updateValidityOnChange(['m', 'l']));
+    this.form.get('m').valueChanges.subscribe(() => this.updateValidityOnChange(['k', 'l', 'c']));
+    this.form.get('l').valueChanges.subscribe(() => this.updateValidityOnChange(['k', 'm']));
     this.form.get('plugin').valueChanges.subscribe((plugin) => this.onPluginChange(plugin));
   }
 
     this.form.get('plugin').valueChanges.subscribe((plugin) => this.onPluginChange(plugin));
   }
 
-  onPluginChange(plugin: string) {
+  private baseValueValidation(dataChunk: boolean = false): boolean {
+    return this.validValidation(() => {
+      return (
+        this.getKMSum() > this.deviceCount &&
+        this.form.getValue('k') > this.form.getValue('m') === dataChunk
+      );
+    });
+  }
+
+  private validValidation(fn: () => boolean, plugin?: string): boolean {
+    if (!this.form || plugin ? this.plugin !== plugin : false) {
+      return false;
+    }
+    return fn();
+  }
+
+  private getKMSum(): number {
+    return this.form.getValue('k') + this.form.getValue('m');
+  }
+
+  private lrcDataValidation(k: number): boolean {
+    return this.validValidation(() => {
+      const m = this.form.getValue('m');
+      const l = this.form.getValue('l');
+      const km = k + m;
+      this.lrcMultiK = k / (km / l);
+      return k % (km / l) !== 0;
+    }, 'lrc');
+  }
+
+  private shecDataValidation(k: number): boolean {
+    return this.validValidation(() => {
+      const m = this.form.getValue('m');
+      return m > k;
+    }, 'shec');
+  }
+
+  private lrcLocalityValidation(l: number) {
+    return this.validValidation(() => {
+      const value = this.getKMSum();
+      this.lrcGroups = l > 0 ? value / l : 0;
+      return l > 0 && value % l !== 0;
+    }, 'lrc');
+  }
+
+  private shecDurabilityValidation(c: number): boolean {
+    return this.validValidation(() => {
+      const m = this.form.getValue('m');
+      return c > m;
+    }, 'shec');
+  }
+
+  private updateValidityOnChange(names: string[]) {
+    names.forEach((name) => this.form.get(name).updateValueAndValidity({ emitEvent: false }));
+  }
+
+  private onPluginChange(plugin: string) {
     this.plugin = plugin;
     if (plugin === this.PLUGIN.JERASURE) {
       this.setJerasureDefaults();
     this.plugin = plugin;
     if (plugin === this.PLUGIN.JERASURE) {
       this.setJerasureDefaults();
@@ -99,27 +191,14 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
     } else if (plugin === this.PLUGIN.SHEC) {
       this.setShecDefaults();
     }
     } else if (plugin === this.PLUGIN.SHEC) {
       this.setShecDefaults();
     }
-  }
-
-  private setNumberValidators(name: string, required: boolean) {
-    const validators = [Validators.min(1)];
-    if (required) {
-      validators.push(Validators.required);
-    }
-    this.form.get(name).setValidators(validators);
-  }
-
-  private setKMValidators(required: boolean) {
-    ['k', 'm'].forEach((name) => this.setNumberValidators(name, required));
+    this.updateValidityOnChange(['m']); // Triggers k, m, c and l
   }
 
   private setJerasureDefaults() {
   }
 
   private setJerasureDefaults() {
-    this.requiredControls = ['k', 'm'];
     this.setDefaults({
       k: 4,
       m: 2
     });
     this.setDefaults({
       k: 4,
       m: 2
     });
-    this.setKMValidators(true);
     this.techniques = [
       'reed_sol_van',
       'reed_sol_r6_op',
     this.techniques = [
       'reed_sol_van',
       'reed_sol_r6_op',
@@ -132,9 +211,6 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
   }
 
   private setLrcDefaults() {
   }
 
   private setLrcDefaults() {
-    this.requiredControls = ['k', 'm', 'l'];
-    this.setKMValidators(true);
-    this.setNumberValidators('l', true);
     this.setDefaults({
       k: 4,
       m: 2,
     this.setDefaults({
       k: 4,
       m: 2,
@@ -143,8 +219,11 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
   }
 
   private setIsaDefaults() {
   }
 
   private setIsaDefaults() {
-    this.requiredControls = [];
-    this.setKMValidators(false);
+    /**
+     * Actually k and m are not required - but they will be set to the default values in case
+     * if they are not set, therefore it's fine to mark them as required in order to get
+     * strange values that weren't set.
+     */
     this.setDefaults({
       k: 7,
       m: 3
     this.setDefaults({
       k: 7,
       m: 3
@@ -153,8 +232,11 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
   }
 
   private setShecDefaults() {
   }
 
   private setShecDefaults() {
-    this.requiredControls = [];
-    this.setKMValidators(false);
+    /**
+     * Actually k, c and m are not required - but they will be set to the default values in case
+     * if they are not set, therefore it's fine to mark them as required in order to get
+     * strange values that weren't set.
+     */
     this.setDefaults({
       k: 4,
       m: 3,
     this.setDefaults({
       k: 4,
       m: 3,
@@ -164,8 +246,22 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
 
   private setDefaults(defaults: object) {
     Object.keys(defaults).forEach((controlName) => {
 
   private setDefaults(defaults: object) {
     Object.keys(defaults).forEach((controlName) => {
-      if (this.form.get(controlName).pristine) {
-        this.form.silentSet(controlName, defaults[controlName]);
+      const control = this.form.get(controlName);
+      const value = control.value;
+      let overwrite = control.pristine;
+      /**
+       * As k, m, c and l are now set touched and dirty on the beginning, plugin change will
+       * overwrite their values as we can't determine if the user has changed anything.
+       * k and m can have two default values where as l and c can only have one,
+       * so there is no need to overwrite them.
+       */
+      if ('k' === controlName) {
+        overwrite = [4, 7].includes(value);
+      } else if ('m' === controlName) {
+        overwrite = [2, 3].includes(value);
+      }
+      if (overwrite) {
+        this.form.get(controlName).setValue(defaults[controlName]);
       }
     });
   }
       }
     });
   }
@@ -175,23 +271,62 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
       .getInfo()
       .subscribe(
         ({
       .getInfo()
       .subscribe(
         ({
-          failure_domains,
           plugins,
           names,
           directory,
           plugins,
           names,
           directory,
-          devices
+          nodes
         }: {
         }: {
-          failure_domains: string[];
           plugins: string[];
           names: string[];
           directory: string;
           plugins: string[];
           names: string[];
           directory: string;
-          devices: string[];
+          nodes: CrushNode[];
         }) => {
         }) => {
-          this.failureDomains = failure_domains;
+          this.initCrushNodeSelection(
+            nodes,
+            this.form.get('crushRoot'),
+            this.form.get('crushFailureDomain'),
+            this.form.get('crushDeviceClass')
+          );
           this.plugins = plugins;
           this.names = names;
           this.plugins = plugins;
           this.names = names;
-          this.devices = devices;
           this.form.silentSet('directory', directory);
           this.form.silentSet('directory', directory);
+          this.preValidateNumericInputFields();
+        }
+      );
+  }
+
+  /**
+   * This allows k, m, l and c to be validated instantly on change, before the
+   * fields got changed before by the user.
+   */
+  private preValidateNumericInputFields() {
+    const kml = ['k', 'm', 'l', 'c'].map((name) => this.form.get(name));
+    kml.forEach((control) => {
+      control.markAsTouched();
+      control.markAsDirty();
+    });
+    kml[1].updateValueAndValidity(); // Update validity of k, m, c and l
+  }
+
+  onSubmit() {
+    if (this.form.invalid) {
+      this.form.setErrors({ cdSubmitButton: true });
+      return;
+    }
+    const profile = this.createJson();
+    this.taskWrapper
+      .wrapTaskAroundCall({
+        task: new FinishedTask('ecp/create', { name: profile.name }),
+        call: this.ecpService.create(profile)
+      })
+      .subscribe(
+        undefined,
+        () => {
+          this.form.setErrors({ cdSubmitButton: true });
+        },
+        () => {
+          this.bsModalRef.hide();
+          this.submitAction.emit(profile);
         }
       );
   }
         }
       );
   }
@@ -209,13 +344,9 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
     Object.keys(this.form.controls)
       .filter((name) => {
         const pluginControl = pluginControls[name];
     Object.keys(this.form.controls)
       .filter((name) => {
         const pluginControl = pluginControls[name];
-        const control = this.form.get(name);
+        const value = this.form.getValue(name);
         const usable = (pluginControl && pluginControl.includes(plugin)) || !pluginControl;
         const usable = (pluginControl && pluginControl.includes(plugin)) || !pluginControl;
-        return (
-          usable &&
-          (control.dirty || this.requiredControls.includes(name)) &&
-          this.form.getValue(name)
-        );
+        return usable && value && value !== '';
       })
       .forEach((name) => {
         this.extendJson(name, ecp);
       })
       .forEach((name) => {
         this.extendJson(name, ecp);
@@ -231,29 +362,7 @@ export class ErasureCodeProfileFormModalComponent implements OnInit {
       packetSize: 'packetsize',
       crushLocality: 'crush-locality'
     };
       packetSize: 'packetsize',
       crushLocality: 'crush-locality'
     };
-    ecp[differentApiAttributes[name] || name] = this.form.getValue(name);
-  }
-
-  onSubmit() {
-    if (this.form.invalid) {
-      this.form.setErrors({ cdSubmitButton: true });
-      return;
-    }
-    const profile = this.createJson();
-    this.taskWrapper
-      .wrapTaskAroundCall({
-        task: new FinishedTask('ecp/create', { name: profile.name }),
-        call: this.ecpService.create(profile)
-      })
-      .subscribe(
-        undefined,
-        () => {
-          this.form.setErrors({ cdSubmitButton: true });
-        },
-        () => {
-          this.bsModalRef.hide();
-          this.submitAction.emit(profile);
-        }
-      );
+    const value = this.form.getValue(name);
+    ecp[differentApiAttributes[name] || name] = name === 'crushRoot' ? value.name : value;
   }
 }
   }
 }
index 78d23ac28c864e77d5a47f284ac7c0b01e20f38c..a1515e02b7840d6367e3f18e1ed11593b52c8783 100644 (file)
@@ -1,10 +1,10 @@
 <tabset #tabsetChild
         cdTableDetail
 <tabset #tabsetChild
         cdTableDetail
-        *ngIf="selection.hasSingleSelection">
+        *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [renderObjects]="true"
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [renderObjects]="true"
-                        [data]="filterNonPoolData(selection.first())"
+                        [data]="filterNonPoolData(selection)"
                         [autoReload]="false">
     </cd-table-key-value>
   </tab>
                         [autoReload]="false">
     </cd-table-key-value>
   </tab>
        *ngIf="permissions.grafana.read"
        heading="Performance Details">
     <cd-grafana [grafanaPath]="'ceph-pool-detail?var-pool_name='
        *ngIf="permissions.grafana.read"
        heading="Performance Details">
     <cd-grafana [grafanaPath]="'ceph-pool-detail?var-pool_name='
-                + selection.first()['pool_name']"
+                + selection['pool_name']"
                 uid="-xyV8KCiz"
                 grafanaStyle="one">
     </cd-grafana>
   </tab>
                 uid="-xyV8KCiz"
                 grafanaStyle="one">
     </cd-grafana>
   </tab>
-  <tab *ngIf="selection.first().type === 'replicated'"
+  <tab *ngIf="selection.type === 'replicated'"
        i18n-heading
        heading="Configuration">
     <cd-rbd-configuration-table [data]="selectedPoolConfiguration"></cd-rbd-configuration-table>
   </tab>
   <tab i18n-heading
        i18n-heading
        heading="Configuration">
     <cd-rbd-configuration-table [data]="selectedPoolConfiguration"></cd-rbd-configuration-table>
   </tab>
   <tab i18n-heading
-       *ngIf="selection.first()['tiers']?.length > 0"
+       *ngIf="selection['tiers']?.length > 0"
        heading="Cache Tiers Details">
     <cd-table [data]="cacheTiers"
               [columns]="cacheTierColumns"
        heading="Cache Tiers Details">
     <cd-table [data]="cacheTiers"
               [columns]="cacheTierColumns"
index 172eeb1b93c7edb5bd7aace1458483ec815e45f6..f6330b2d034d6ca019ff81ebd9c0f59d132427e2 100644 (file)
@@ -6,7 +6,6 @@ import { RouterTestingModule } from '@angular/router/testing';
 import { TabsetComponent, TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { TabsetComponent, TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { Permissions } from '../../../shared/models/permissions';
 import { SharedModule } from '../../../shared/shared.module';
 import { RbdConfigurationListComponent } from '../../block/rbd-configuration-list/rbd-configuration-list.component';
 import { Permissions } from '../../../shared/models/permissions';
 import { SharedModule } from '../../../shared/shared.module';
 import { RbdConfigurationListComponent } from '../../block/rbd-configuration-list/rbd-configuration-list.component';
@@ -31,7 +30,7 @@ describe('PoolDetailsComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(PoolDetailsComponent);
     poolDetailsComponent = fixture.componentInstance;
   beforeEach(() => {
     fixture = TestBed.createComponent(PoolDetailsComponent);
     poolDetailsComponent = fixture.componentInstance;
-    poolDetailsComponent.selection = new CdTableSelection();
+    poolDetailsComponent.selection = undefined;
     poolDetailsComponent.permissions = new Permissions({
       grafana: ['read']
     });
     poolDetailsComponent.permissions = new Permissions({
       grafana: ['read']
     });
@@ -44,12 +43,10 @@ describe('PoolDetailsComponent', () => {
 
   describe('Pool details tabset', () => {
     beforeEach(() => {
 
   describe('Pool details tabset', () => {
     beforeEach(() => {
-      poolDetailsComponent.selection.selected = [
-        {
-          tiers: [0],
-          pool: 0
-        }
-      ];
+      poolDetailsComponent.selection = {
+        tiers: [0],
+        pool: 0
+      };
     });
 
     it('should recognize a tabset child', () => {
     });
 
     it('should recognize a tabset child', () => {
@@ -67,11 +64,9 @@ describe('PoolDetailsComponent', () => {
     });
 
     it('should not show "Cache Tiers Details" tab if selected pool has no "tiers"', () => {
     });
 
     it('should not show "Cache Tiers Details" tab if selected pool has no "tiers"', () => {
-      poolDetailsComponent.selection.selected = [
-        {
-          tiers: []
-        }
-      ];
+      poolDetailsComponent.selection = {
+        tiers: []
+      };
       fixture.detectChanges();
       const tabs = poolDetailsComponent.tabsetChild.tabs;
       expect(tabs.length).toEqual(2);
       fixture.detectChanges();
       const tabs = poolDetailsComponent.tabsetChild.tabs;
       expect(tabs.length).toEqual(2);
index 76365843e9cfa5db3e9f22b151145b73b933503e..8e7c395967ef21311b7605c1956a65f75625b080 100644 (file)
@@ -6,7 +6,6 @@ import { TabsetComponent } from 'ngx-bootstrap/tabs';
 
 import { PoolService } from '../../../shared/api/pool.service';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 
 import { PoolService } from '../../../shared/api/pool.service';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { RbdConfigurationEntry } from '../../../shared/models/configuration';
 import { Permissions } from '../../../shared/models/permissions';
 
 import { RbdConfigurationEntry } from '../../../shared/models/configuration';
 import { Permissions } from '../../../shared/models/permissions';
 
@@ -19,7 +18,7 @@ export class PoolDetailsComponent implements OnChanges {
   cacheTierColumns: Array<CdTableColumn> = [];
 
   @Input()
   cacheTierColumns: Array<CdTableColumn> = [];
 
   @Input()
-  selection: CdTableSelection;
+  selection: any;
   @Input()
   permissions: Permissions;
   @Input()
   @Input()
   permissions: Permissions;
   @Input()
@@ -64,8 +63,8 @@ export class PoolDetailsComponent implements OnChanges {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    if (this.selection.hasSingleSelection) {
-      this.poolService.getConfiguration(this.selection.first().pool_name).subscribe((poolConf) => {
+    if (this.selection) {
+      this.poolService.getConfiguration(this.selection.pool_name).subscribe((poolConf) => {
         this.selectedPoolConfiguration = poolConf;
       });
     }
         this.selectedPoolConfiguration = poolConf;
       });
     }
index 3ccfd2a024be6fe3e34d4b63cd4e7d8d7b23bb85..67fba23f164565849d13aa1d53cc6384f06e09a1 100644 (file)
                   <button class="btn btn-light"
                           type="button"
                           *ngIf="!editing"
                   <button class="btn btn-light"
                           type="button"
                           *ngIf="!editing"
+                          tooltip="This profile can't be deleted as it is in use."
+                          i18n-tooltip
+                          triggers=""
+                          #ecpDeletionBtn="bs-tooltip"
                           (click)="deleteErasureCodeProfile()">
                     <i [ngClass]="[icons.trash]"
                        aria-hidden="true"></i>
                           (click)="deleteErasureCodeProfile()">
                     <i [ngClass]="[icons.trash]"
                        aria-hidden="true"></i>
               <span class="form-text text-muted"
                     id="ecp-info-block"
                     *ngIf="data.erasureInfo && form.getValue('erasureProfile')">
               <span class="form-text text-muted"
                     id="ecp-info-block"
                     *ngIf="data.erasureInfo && form.getValue('erasureProfile')">
-                <cd-table-key-value [renderObjects]="true"
-                                    [data]="form.getValue('erasureProfile')"
-                                    [autoReload]="false">
-                </cd-table-key-value>
+                <tabset #ecpInfoTabs>
+                  <tab i18n-heading
+                       heading="Profile"
+                       class="ecp-info">
+                    <cd-table-key-value [renderObjects]="true"
+                                        [data]="form.getValue('erasureProfile')"
+                                        [autoReload]="false">
+                    </cd-table-key-value>
+                  </tab>
+                  <tab i18n-heading
+                       heading="Used by pools"
+                       class="used-by-pools">
+                    <ng-template #ecpIsNotUsed>
+                      <span i18n>Profile is not in use.</span>
+                    </ng-template>
+                    <ul *ngIf="ecpUsage; else ecpIsNotUsed">
+                      <li *ngFor="let pool of ecpUsage">
+                        {{ pool }}
+                      </li>
+                    </ul>
+                  </tab>
+                </tabset>
               </span>
             </div>
           </div>
               </span>
             </div>
           </div>
index 85c0fe6cd19c7b52fb253216e2534ff584e7c4b6..c4ee052ae1f555d9c9fd7cc2cb0083b253e5da81 100644 (file)
@@ -7,16 +7,18 @@ import { RouterTestingModule } from '@angular/router/testing';
 
 import * as _ from 'lodash';
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
 
 import * as _ from 'lodash';
 import { NgBootstrapFormValidationModule } from 'ng-bootstrap-form-validation';
-import { BsModalService } from 'ngx-bootstrap/modal';
+import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 import { TabsetComponent, TabsModule } from 'ngx-bootstrap/tabs';
 import { ToastrModule } from 'ngx-toastr';
 import { of } from 'rxjs';
 
 import { TabsetComponent, TabsModule } from 'ngx-bootstrap/tabs';
 import { ToastrModule } from 'ngx-toastr';
 import { of } from 'rxjs';
 
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import {
   configureTestBed,
   FixtureHelper,
   FormHelper,
 import {
   configureTestBed,
   FixtureHelper,
   FormHelper,
-  i18nProviders
+  i18nProviders,
+  modalServiceShow
 } from '../../../../testing/unit-test-helper';
 import { NotFoundComponent } from '../../../core/not-found/not-found.component';
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
 } from '../../../../testing/unit-test-helper';
 import { NotFoundComponent } from '../../../core/not-found/not-found.component';
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
@@ -146,6 +148,9 @@ describe('PoolFormComponent', () => {
       pg_autoscale_modes: ['off', 'warn', 'on'],
       used_rules: {
         used_rule: ['some.pool.uses.it']
       pg_autoscale_modes: ['off', 'warn', 'on'],
       used_rules: {
         used_rule: ['some.pool.uses.it']
+      },
+      used_profiles: {
+        ecp1: ['some.other.pool.uses.it']
       }
     };
   };
       }
     };
   };
@@ -165,6 +170,7 @@ describe('PoolFormComponent', () => {
   configureTestBed({
     declarations: [NotFoundComponent],
     imports: [
   configureTestBed({
     declarations: [NotFoundComponent],
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       RouterTestingModule.withRoutes(routes),
       ToastrModule.forRoot(),
       HttpClientTestingModule,
       RouterTestingModule.withRoutes(routes),
       ToastrModule.forRoot(),
@@ -174,6 +180,7 @@ describe('PoolFormComponent', () => {
     ],
     providers: [
       ErasureCodeProfileService,
     ],
     providers: [
       ErasureCodeProfileService,
+      BsModalRef,
       SelectBadgesComponent,
       { provide: ActivatedRoute, useValue: { params: of({ name: 'somePoolName' }) } },
       i18nProviders
       SelectBadgesComponent,
       { provide: ActivatedRoute, useValue: { params: of({ name: 'somePoolName' }) } },
       i18nProviders
@@ -799,6 +806,21 @@ describe('PoolFormComponent', () => {
       fixture.detectChanges();
     });
 
       fixture.detectChanges();
     });
 
+    it('should select the newly created rule', () => {
+      expect(form.getValue('crushRule').rule_name).toBe('rep1');
+      const name = 'awesomeRule';
+      spyOn(TestBed.get(BsModalService), 'show').and.callFake(() => {
+        return {
+          content: {
+            submitAction: of({ name })
+          }
+        };
+      });
+      infoReturn.crush_rules_replicated.push(createCrushRule({ id: 8, name }));
+      component.addCrushRule();
+      expect(form.getValue('crushRule').rule_name).toBe(name);
+    });
+
     it('should not show info per default', () => {
       fixtureHelper.expectElementVisible('#crushRule', true);
       fixtureHelper.expectElementVisible('#crush-info-block', false);
     it('should not show info per default', () => {
       fixtureHelper.expectElementVisible('#crushRule', true);
       fixtureHelper.expectElementVisible('#crush-info-block', false);
@@ -837,30 +859,32 @@ describe('PoolFormComponent', () => {
 
       const expectSuccessfulDeletion = (name: string) => {
         expect(crushRuleService.delete).toHaveBeenCalledWith(name);
 
       const expectSuccessfulDeletion = (name: string) => {
         expect(crushRuleService.delete).toHaveBeenCalledWith(name);
-        expect(taskWrapper.wrapTaskAroundCall).toHaveBeenCalledWith({
-          task: {
-            name: 'crushRule/delete',
-            metadata: {
-              name: name
+        expect(taskWrapper.wrapTaskAroundCall).toHaveBeenCalledWith(
+          expect.objectContaining({
+            task: {
+              name: 'crushRule/delete',
+              metadata: {
+                name: name
+              }
             }
             }
-          },
-          call: undefined // because of stub
-        });
+          })
+        );
       };
 
       beforeEach(() => {
         modalSpy = spyOn(TestBed.get(BsModalService), 'show').and.callFake(
       };
 
       beforeEach(() => {
         modalSpy = spyOn(TestBed.get(BsModalService), 'show').and.callFake(
-          (deletionClass, config) => {
+          (deletionClass: any, config: any) => {
             deletion = Object.assign(new deletionClass(), config.initialState);
             return {
               content: deletion
             };
           }
         );
             deletion = Object.assign(new deletionClass(), config.initialState);
             return {
               content: deletion
             };
           }
         );
-        deleteSpy = spyOn(crushRuleService, 'delete').and.callFake((name) => {
+        deleteSpy = spyOn(crushRuleService, 'delete').and.callFake((name: string) => {
           const rules = infoReturn.crush_rules_replicated;
           const index = _.findIndex(rules, (rule) => rule.rule_name === name);
           rules.splice(index, 1);
           const rules = infoReturn.crush_rules_replicated;
           const index = _.findIndex(rules, (rule) => rule.rule_name === name);
           rules.splice(index, 1);
+          return of(undefined);
         });
         taskWrapper = TestBed.get(TaskWrapperService);
         spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
         });
         taskWrapper = TestBed.get(TaskWrapperService);
         spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
@@ -956,45 +980,145 @@ describe('PoolFormComponent', () => {
       fixtureHelper.expectIdElementsVisible(['erasureProfile', 'ecp-info-block'], true);
     });
 
       fixtureHelper.expectIdElementsVisible(['erasureProfile', 'ecp-info-block'], true);
     });
 
+    it('should select the newly created profile', () => {
+      spyOn(ecpService, 'list').and.callFake(() => of(infoReturn.erasure_code_profiles));
+      expect(form.getValue('erasureProfile').name).toBe('ecp1');
+      const name = 'awesomeProfile';
+      spyOn(TestBed.get(BsModalService), 'show').and.callFake(() => {
+        return {
+          content: {
+            submitAction: of({ name })
+          }
+        };
+      });
+      const ecp2 = new ErasureCodeProfile();
+      ecp2.name = name;
+      infoReturn.erasure_code_profiles.push(ecp2);
+      component.addErasureCodeProfile();
+      expect(form.getValue('erasureProfile').name).toBe(name);
+    });
+
     describe('ecp deletion', () => {
       let taskWrapper: TaskWrapperService;
       let deletion: CriticalConfirmationModalComponent;
     describe('ecp deletion', () => {
       let taskWrapper: TaskWrapperService;
       let deletion: CriticalConfirmationModalComponent;
+      let deleteSpy: jasmine.Spy;
+      let modalSpy: jasmine.Spy;
+      let modal: any;
 
 
-      const callDeletion = () => {
+      const callEcpDeletion = () => {
         component.deleteErasureCodeProfile();
         component.deleteErasureCodeProfile();
-        deletion.submitActionObservable();
+        modal.ref.content.callSubmitAction();
       };
 
       };
 
-      const testPoolDeletion = (name: string) => {
+      const expectSuccessfulEcpDeletion = (name: string) => {
         setSelectedEcp(name);
         setSelectedEcp(name);
-        callDeletion();
+        callEcpDeletion();
         expect(ecpService.delete).toHaveBeenCalledWith(name);
         expect(ecpService.delete).toHaveBeenCalledWith(name);
-        expect(taskWrapper.wrapTaskAroundCall).toHaveBeenCalledWith({
-          task: {
-            name: 'ecp/delete',
-            metadata: {
-              name: name
+        expect(taskWrapper.wrapTaskAroundCall).toHaveBeenCalledWith(
+          expect.objectContaining({
+            task: {
+              name: 'ecp/delete',
+              metadata: {
+                name: name
+              }
             }
             }
-          },
-          call: undefined // because of stub
-        });
+          })
+        );
       };
 
       beforeEach(() => {
       };
 
       beforeEach(() => {
-        spyOn(TestBed.get(BsModalService), 'show').and.callFake((deletionClass, config) => {
-          deletion = Object.assign(new deletionClass(), config.initialState);
-          return {
-            content: deletion
-          };
+        deletion = undefined;
+        modalSpy = spyOn(TestBed.get(BsModalService), 'show').and.callFake(
+          (comp: any, init: any) => {
+            modal = modalServiceShow(comp, init);
+            return modal.ref;
+          }
+        );
+        deleteSpy = spyOn(ecpService, 'delete').and.callFake((name: string) => {
+          const profiles = infoReturn.erasure_code_profiles;
+          const index = _.findIndex(profiles, (profile) => profile.name === name);
+          profiles.splice(index, 1);
+          return of({ status: 202 });
         });
         });
-        spyOn(ecpService, 'delete').and.stub();
         taskWrapper = TestBed.get(TaskWrapperService);
         spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
         taskWrapper = TestBed.get(TaskWrapperService);
         spyOn(taskWrapper, 'wrapTaskAroundCall').and.callThrough();
+
+        const ecp2 = new ErasureCodeProfile();
+        ecp2.name = 'someEcpName';
+        infoReturn.erasure_code_profiles.push(ecp2);
+
+        const ecp3 = new ErasureCodeProfile();
+        ecp3.name = 'aDifferentEcpName';
+        infoReturn.erasure_code_profiles.push(ecp3);
       });
 
       it('should delete two different erasure code profiles', () => {
       });
 
       it('should delete two different erasure code profiles', () => {
-        testPoolDeletion('someEcpName');
-        testPoolDeletion('aDifferentEcpName');
+        expectSuccessfulEcpDeletion('someEcpName');
+        expectSuccessfulEcpDeletion('aDifferentEcpName');
+      });
+
+      describe('with unused profile', () => {
+        beforeEach(() => {
+          expectSuccessfulEcpDeletion('someEcpName');
+        });
+
+        it('should not open the tooltip nor the crush info', () => {
+          expect(component.ecpDeletionBtn.isOpen).toBe(false);
+          expect(component.data.erasureInfo).toBe(false);
+        });
+
+        it('should reload the rules after deletion', () => {
+          const expected = infoReturn.erasure_code_profiles;
+          const currentProfiles = component.info.erasure_code_profiles;
+          expect(currentProfiles.length).toBe(expected.length);
+          expect(currentProfiles).toEqual(expected);
+        });
+      });
+
+      describe('rule in use', () => {
+        beforeEach(() => {
+          spyOn(global, 'setTimeout').and.callFake((fn: Function) => fn());
+          component.ecpInfoTabs = { tabs: [{}, {}] } as TabsetComponent; // Mock it
+          deleteSpy.calls.reset();
+          setSelectedEcp('ecp1');
+          component.deleteErasureCodeProfile();
+        });
+
+        it('should not open the modal', () => {
+          expect(deletion).toBe(undefined);
+        });
+
+        it('should not have called delete and opened the tooltip', () => {
+          expect(ecpService.delete).not.toHaveBeenCalled();
+          expect(component.ecpDeletionBtn.isOpen).toBe(true);
+          expect(component.data.erasureInfo).toBe(true);
+        });
+
+        it('should open the third crush info tab', () => {
+          expect(component.ecpInfoTabs).toEqual({
+            tabs: [{}, { active: true }]
+          } as TabsetComponent);
+        });
+
+        it('should hide the tooltip when clicking on delete again', () => {
+          component.deleteErasureCodeProfile();
+          expect(component.ecpDeletionBtn.isOpen).toBe(false);
+        });
+
+        it('should hide the tooltip when clicking on add', () => {
+          modalSpy.and.callFake((): any => ({
+            content: {
+              submitAction: of('someProfile')
+            }
+          }));
+          component.addErasureCodeProfile();
+          expect(component.ecpDeletionBtn.isOpen).toBe(false);
+        });
+
+        it('should hide the tooltip when changing the crush rule', () => {
+          setSelectedEcp('someEcpName');
+          expect(component.ecpDeletionBtn.isOpen).toBe(false);
+        });
       });
     });
   });
       });
     });
   });
index 7c1b409155ea5779a003250a1777f645a66fe909..47519c0a0a34007aab3c4d81e6f6844676337631 100644 (file)
@@ -1,4 +1,4 @@
-import { Component, EventEmitter, OnInit, ViewChild } from '@angular/core';
+import { Component, EventEmitter, OnInit, Type, ViewChild } from '@angular/core';
 import { FormControl, Validators } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
 
 import { FormControl, Validators } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
 
@@ -7,7 +7,7 @@ import * as _ from 'lodash';
 import { BsModalService } from 'ngx-bootstrap/modal';
 import { TabsetComponent } from 'ngx-bootstrap/tabs';
 import { TooltipDirective } from 'ngx-bootstrap/tooltip';
 import { BsModalService } from 'ngx-bootstrap/modal';
 import { TabsetComponent } from 'ngx-bootstrap/tabs';
 import { TooltipDirective } from 'ngx-bootstrap/tooltip';
-import { Subscription } from 'rxjs';
+import { Observable, Subscription } from 'rxjs';
 
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
 
 import { CrushRuleService } from '../../../shared/api/crush-rule.service';
 import { ErasureCodeProfileService } from '../../../shared/api/erasure-code-profile.service';
@@ -22,7 +22,7 @@ import {
   RbdConfigurationEntry,
   RbdConfigurationSourceField
 } from '../../../shared/models/configuration';
   RbdConfigurationEntry,
   RbdConfigurationSourceField
 } from '../../../shared/models/configuration';
-import { CrushRule, CrushRuleConfig } from '../../../shared/models/crush-rule';
+import { CrushRule } from '../../../shared/models/crush-rule';
 import { CrushStep } from '../../../shared/models/crush-step';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { FinishedTask } from '../../../shared/models/finished-task';
 import { CrushStep } from '../../../shared/models/crush-step';
 import { ErasureCodeProfile } from '../../../shared/models/erasure-code-profile';
 import { FinishedTask } from '../../../shared/models/finished-task';
@@ -54,6 +54,8 @@ interface FormFieldDescription {
 export class PoolFormComponent implements OnInit {
   @ViewChild('crushInfoTabs', { static: false }) crushInfoTabs: TabsetComponent;
   @ViewChild('crushDeletionBtn', { static: false }) crushDeletionBtn: TooltipDirective;
 export class PoolFormComponent implements OnInit {
   @ViewChild('crushInfoTabs', { static: false }) crushInfoTabs: TabsetComponent;
   @ViewChild('crushDeletionBtn', { static: false }) crushDeletionBtn: TooltipDirective;
+  @ViewChild('ecpInfoTabs', { static: false }) ecpInfoTabs: TabsetComponent;
+  @ViewChild('ecpDeletionBtn', { static: false }) ecpDeletionBtn: TooltipDirective;
 
   permission: Permission;
   form: CdFormGroup;
 
   permission: Permission;
   form: CdFormGroup;
@@ -78,6 +80,7 @@ export class PoolFormComponent implements OnInit {
   icons = Icons;
   pgAutoscaleModes: string[];
   crushUsage: string[] = undefined; // Will only be set if a rule is used by some pool
   icons = Icons;
   pgAutoscaleModes: string[];
   crushUsage: string[] = undefined; // Will only be set if a rule is used by some pool
+  ecpUsage: string[] = undefined; // Will only be set if a rule is used by some pool
 
   private modalSubscription: Subscription;
 
 
   private modalSubscription: Subscription;
 
@@ -341,8 +344,15 @@ export class PoolFormComponent implements OnInit {
       // The size can only be changed if type 'replicated' is set.
       this.pgCalc();
     });
       // The size can only be changed if type 'replicated' is set.
       this.pgCalc();
     });
-    this.form.get('erasureProfile').valueChanges.subscribe(() => {
+    this.form.get('erasureProfile').valueChanges.subscribe((profile) => {
       // The ec profile can only be changed if type 'erasure' is set.
       // The ec profile can only be changed if type 'erasure' is set.
+      if (this.ecpDeletionBtn && this.ecpDeletionBtn.isOpen) {
+        this.ecpDeletionBtn.hide();
+      }
+      if (!profile) {
+        return;
+      }
+      this.ecpIsUsedBy(profile.name);
       this.pgCalc();
     });
     this.form.get('mode').valueChanges.subscribe(() => {
       this.pgCalc();
     });
     this.form.get('mode').valueChanges.subscribe(() => {
@@ -542,96 +552,175 @@ export class PoolFormComponent implements OnInit {
   }
 
   addErasureCodeProfile() {
   }
 
   addErasureCodeProfile() {
-    this.modalSubscription = this.modalService.onHide.subscribe(() => this.reloadECPs());
-    this.bsModalService.show(ErasureCodeProfileFormModalComponent);
+    this.addModal(ErasureCodeProfileFormModalComponent, (name) => this.reloadECPs(name));
   }
 
   }
 
-  private reloadECPs() {
-    this.ecpService.list().subscribe((profiles: ErasureCodeProfile[]) => this.initEcp(profiles));
-    this.modalSubscription.unsubscribe();
+  private addModal(modalComponent: Type<any>, reload: (name: string) => void) {
+    this.hideOpenTooltips();
+    const modalRef = this.bsModalService.show(modalComponent);
+    modalRef.content.submitAction.subscribe((item: any) => {
+      reload(item.name);
+    });
   }
 
   }
 
-  deleteErasureCodeProfile() {
-    const ecp = this.form.getValue('erasureProfile');
-    if (!ecp) {
-      return;
-    }
-    const name = ecp.name;
-    this.modalSubscription = this.modalService.onHide.subscribe(() => this.reloadECPs());
-    this.modalService.show(CriticalConfirmationModalComponent, {
-      initialState: {
-        itemDescription: this.i18n('erasure code profile'),
-        itemNames: [name],
-        submitActionObservable: () =>
-          this.taskWrapper.wrapTaskAroundCall({
-            task: new FinishedTask('ecp/delete', { name: name }),
-            call: this.ecpService.delete(name)
-          })
-      }
-    });
+  private hideOpenTooltips() {
+    const hideTooltip = (btn: TooltipDirective) => btn && btn.isOpen && btn.hide();
+    hideTooltip(this.ecpDeletionBtn);
+    hideTooltip(this.crushDeletionBtn);
   }
 
   }
 
-  addCrushRule() {
-    if (this.crushDeletionBtn.isOpen) {
-      this.crushDeletionBtn.hide();
-    }
-    const modalRef = this.bsModalService.show(CrushRuleFormModalComponent);
-    modalRef.content.submitAction.subscribe((rule: CrushRuleConfig) => {
-      this.reloadCrushRules(rule.name);
+  private reloadECPs(profileName?: string) {
+    this.reloadList({
+      newItemName: profileName,
+      getInfo: () => this.ecpService.list(),
+      initInfo: (profiles) => this.initEcp(profiles),
+      findNewItem: () => this.ecProfiles.find((p) => p.name === profileName),
+      controlName: 'erasureProfile'
     });
   }
 
     });
   }
 
-  private reloadCrushRules(ruleName?: string) {
+  private reloadList({
+    newItemName,
+    getInfo,
+    initInfo,
+    findNewItem,
+    controlName
+  }: {
+    newItemName: string;
+    getInfo: () => Observable<any>;
+    initInfo: (items: any) => void;
+    findNewItem: () => any;
+    controlName: string;
+  }) {
     if (this.modalSubscription) {
       this.modalSubscription.unsubscribe();
     }
     if (this.modalSubscription) {
       this.modalSubscription.unsubscribe();
     }
-    this.poolService.getInfo().subscribe((info: PoolFormInfo) => {
-      this.initInfo(info);
-      this.poolTypeChange('replicated');
-      if (!ruleName) {
+    getInfo().subscribe((items: any) => {
+      initInfo(items);
+      if (!newItemName) {
         return;
       }
         return;
       }
-      const newRule = this.info.crush_rules_replicated.find((rule) => rule.rule_name === ruleName);
-      if (newRule) {
-        this.form.get('crushRule').setValue(newRule);
+      const item = findNewItem();
+      if (item) {
+        this.form.get(controlName).setValue(item);
       }
     });
   }
 
       }
     });
   }
 
-  deleteCrushRule() {
-    const rule = this.form.getValue('crushRule');
-    if (!rule) {
+  deleteErasureCodeProfile() {
+    this.deletionModal({
+      value: this.form.getValue('erasureProfile'),
+      usage: this.ecpUsage,
+      deletionBtn: this.ecpDeletionBtn,
+      dataName: 'erasureInfo',
+      getTabs: () => this.ecpInfoTabs,
+      tabPosition: 1,
+      nameAttribute: 'name',
+      itemDescription: this.i18n('erasure code profile'),
+      reloadFn: () => this.reloadECPs(),
+      deleteFn: (name) => this.ecpService.delete(name),
+      taskName: 'ecp/delete'
+    });
+  }
+
+  private deletionModal({
+    value,
+    usage,
+    deletionBtn,
+    dataName,
+    getTabs,
+    tabPosition,
+    nameAttribute,
+    itemDescription,
+    reloadFn,
+    deleteFn,
+    taskName
+  }: {
+    value: any;
+    usage: string[];
+    deletionBtn: TooltipDirective;
+    dataName: string;
+    getTabs: () => TabsetComponent;
+    tabPosition: number;
+    nameAttribute: string;
+    itemDescription: string;
+    reloadFn: Function;
+    deleteFn: (name: string) => Observable<any>;
+    taskName: string;
+  }) {
+    if (!value) {
       return;
     }
       return;
     }
-    if (this.crushUsage) {
-      this.crushDeletionBtn.toggle();
-      this.data.crushInfo = true;
+    if (usage) {
+      deletionBtn.toggle();
+      this.data[dataName] = true;
       setTimeout(() => {
       setTimeout(() => {
-        if (this.crushInfoTabs) {
-          this.crushInfoTabs.tabs[2].active = true;
+        const tabs = getTabs();
+        if (tabs) {
+          tabs.tabs[tabPosition].active = true;
         }
       }, 50);
       return;
     }
         }
       }, 50);
       return;
     }
-    const name = rule.rule_name;
-    this.modalSubscription = this.modalService.onHide.subscribe(() => this.reloadCrushRules());
+    const name = value[nameAttribute];
     this.modalService.show(CriticalConfirmationModalComponent, {
       initialState: {
     this.modalService.show(CriticalConfirmationModalComponent, {
       initialState: {
-        itemDescription: this.i18n('crush rule'),
+        itemDescription,
         itemNames: [name],
         itemNames: [name],
-        submitActionObservable: () =>
-          this.taskWrapper.wrapTaskAroundCall({
-            task: new FinishedTask('crushRule/delete', { name: name }),
-            call: this.crushRuleService.delete(name)
-          })
+        submitActionObservable: () => {
+          const deletion = deleteFn(name);
+          deletion.subscribe(() => reloadFn());
+          return this.taskWrapper.wrapTaskAroundCall({
+            task: new FinishedTask(taskName, { name: name }),
+            call: deletion
+          });
+        }
       }
     });
   }
 
       }
     });
   }
 
+  addCrushRule() {
+    this.addModal(CrushRuleFormModalComponent, (name) => this.reloadCrushRules(name));
+  }
+
+  private reloadCrushRules(ruleName?: string) {
+    this.reloadList({
+      newItemName: ruleName,
+      getInfo: () => this.poolService.getInfo(),
+      initInfo: (info) => {
+        this.initInfo(info);
+        this.poolTypeChange('replicated');
+      },
+      findNewItem: () =>
+        this.info.crush_rules_replicated.find((rule) => rule.rule_name === ruleName),
+      controlName: 'crushRule'
+    });
+  }
+
+  deleteCrushRule() {
+    this.deletionModal({
+      value: this.form.getValue('crushRule'),
+      usage: this.crushUsage,
+      deletionBtn: this.crushDeletionBtn,
+      dataName: 'crushInfo',
+      getTabs: () => this.crushInfoTabs,
+      tabPosition: 2,
+      nameAttribute: 'rule_name',
+      itemDescription: this.i18n('crush rule'),
+      reloadFn: () => this.reloadCrushRules(),
+      deleteFn: (name) => this.crushRuleService.delete(name),
+      taskName: 'crushRule/delete'
+    });
+  }
+
   crushRuleIsUsedBy(ruleName: string) {
     this.crushUsage = ruleName ? this.info.used_rules[ruleName] : undefined;
   }
 
   crushRuleIsUsedBy(ruleName: string) {
     this.crushUsage = ruleName ? this.info.used_rules[ruleName] : undefined;
   }
 
+  ecpIsUsedBy(profileName: string) {
+    this.ecpUsage = profileName ? this.info.used_profiles[profileName] : undefined;
+  }
+
   submit() {
     if (this.form.invalid) {
       this.form.setErrors({ cdSubmitButton: true });
   submit() {
     if (this.form.invalid) {
       this.form.setErrors({ cdSubmitButton: true });
index b2c31564acb0e24352fbca155c8ec11274866d42..8d6205817d81cf50b1e4bab81db7da9b89e95005 100644 (file)
@@ -10,6 +10,8 @@
               [data]="pools"
               [columns]="columns"
               selectionType="single"
               [data]="pools"
               [columns]="columns"
               selectionType="single"
+              [hasDetails]="true"
+              (setExpandedRow)="setExpandedRow($event)"
               (updateSelection)="updateSelection($event)">
       <cd-table-actions id="pool-list-actions"
                         class="table-actions"
               (updateSelection)="updateSelection($event)">
       <cd-table-actions id="pool-list-actions"
                         class="table-actions"
@@ -19,9 +21,9 @@
       </cd-table-actions>
       <cd-pool-details cdTableDetail
                        id="pool-list-details"
       </cd-table-actions>
       <cd-pool-details cdTableDetail
                        id="pool-list-details"
-                       [selection]="selection"
+                       [selection]="expandedRow"
                        [permissions]="permissions"
                        [permissions]="permissions"
-                       [cacheTiers]="selectionCacheTiers">
+                       [cacheTiers]="cacheTiers">
       </cd-pool-details>
     </cd-table>
 
       </cd-pool-details>
     </cd-table>
 
index 1650421002c7f7ff2c8bf8afa965bd0e46e28623..73d0925bc58e1a70b11eef111bd6809f190c1546 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import * as _ from 'lodash';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import * as _ from 'lodash';
@@ -49,6 +50,7 @@ describe('PoolListComponent', () => {
   configureTestBed({
     declarations: [PoolListComponent, PoolDetailsComponent, RbdConfigurationListComponent],
     imports: [
   configureTestBed({
     declarations: [PoolListComponent, PoolDetailsComponent, RbdConfigurationListComponent],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       ToastrModule.forRoot(),
       RouterTestingModule,
       SharedModule,
       ToastrModule.forRoot(),
       RouterTestingModule,
@@ -72,7 +74,11 @@ describe('PoolListComponent', () => {
   });
 
   it('should have columns that are sortable', () => {
   });
 
   it('should have columns that are sortable', () => {
-    expect(component.columns.every((column) => Boolean(column.prop))).toBeTruthy();
+    expect(
+      component.columns
+        .filter((column) => !(column.prop === undefined))
+        .every((column) => Boolean(column.prop))
+    ).toBeTruthy();
   });
 
   describe('monAllowPoolDelete', () => {
   });
 
   describe('monAllowPoolDelete', () => {
@@ -427,7 +433,7 @@ describe('PoolListComponent', () => {
 
   describe('getSelectionTiers', () => {
     const setSelectionTiers = (tiers: number[]) => {
 
   describe('getSelectionTiers', () => {
     const setSelectionTiers = (tiers: number[]) => {
-      component.selection.selected = [{ tiers }];
+      component.expandedRow = { tiers };
       component.getSelectionTiers();
     };
 
       component.getSelectionTiers();
     };
 
@@ -437,31 +443,31 @@ describe('PoolListComponent', () => {
 
     it('should select multiple existing cache tiers', () => {
       setSelectionTiers([0, 1, 2]);
 
     it('should select multiple existing cache tiers', () => {
       setSelectionTiers([0, 1, 2]);
-      expect(component.selectionCacheTiers).toEqual(getPoolList());
+      expect(component.cacheTiers).toEqual(getPoolList());
     });
 
     it('should select correct existing cache tier', () => {
       setSelectionTiers([0]);
     });
 
     it('should select correct existing cache tier', () => {
       setSelectionTiers([0]);
-      expect(component.selectionCacheTiers).toEqual([createPool('a', 0)]);
+      expect(component.cacheTiers).toEqual([createPool('a', 0)]);
     });
 
     it('should not select cache tier if id is invalid', () => {
       setSelectionTiers([-1]);
     });
 
     it('should not select cache tier if id is invalid', () => {
       setSelectionTiers([-1]);
-      expect(component.selectionCacheTiers).toEqual([]);
+      expect(component.cacheTiers).toEqual([]);
     });
 
     it('should not select cache tier if empty', () => {
       setSelectionTiers([]);
     });
 
     it('should not select cache tier if empty', () => {
       setSelectionTiers([]);
-      expect(component.selectionCacheTiers).toEqual([]);
+      expect(component.cacheTiers).toEqual([]);
     });
 
     it('should be able to selected one pool with multiple tiers, than with a single tier, than with no tiers', () => {
       setSelectionTiers([0, 1, 2]);
     });
 
     it('should be able to selected one pool with multiple tiers, than with a single tier, than with no tiers', () => {
       setSelectionTiers([0, 1, 2]);
-      expect(component.selectionCacheTiers).toEqual(getPoolList());
+      expect(component.cacheTiers).toEqual(getPoolList());
       setSelectionTiers([0]);
       setSelectionTiers([0]);
-      expect(component.selectionCacheTiers).toEqual([createPool('a', 0)]);
+      expect(component.cacheTiers).toEqual([createPool('a', 0)]);
       setSelectionTiers([]);
       setSelectionTiers([]);
-      expect(component.selectionCacheTiers).toEqual([]);
+      expect(component.cacheTiers).toEqual([]);
     });
   });
 
     });
   });
 
index 49449f5badd963869a518dbed5d5c678546abb69..61fa3585183f4f363213b2383c988b94d10b784b 100644 (file)
@@ -6,6 +6,7 @@ import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
 
 import { ConfigurationService } from '../../../shared/api/configuration.service';
 import { PoolService } from '../../../shared/api/pool.service';
 
 import { ConfigurationService } from '../../../shared/api/configuration.service';
 import { PoolService } from '../../../shared/api/pool.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n, URLVerbs } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n, URLVerbs } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
@@ -38,7 +39,7 @@ const BASE_URL = 'pool';
   ],
   styleUrls: ['./pool-list.component.scss']
 })
   ],
   styleUrls: ['./pool-list.component.scss']
 })
-export class PoolListComponent implements OnInit {
+export class PoolListComponent extends ListWithDetails implements OnInit {
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @ViewChild('poolUsageTpl', { static: true })
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   @ViewChild('poolUsageTpl', { static: true })
@@ -47,7 +48,7 @@ export class PoolListComponent implements OnInit {
   @ViewChild('poolConfigurationSourceTpl', { static: false })
   poolConfigurationSourceTpl: TemplateRef<any>;
 
   @ViewChild('poolConfigurationSourceTpl', { static: false })
   poolConfigurationSourceTpl: TemplateRef<any>;
 
-  pools: Pool[] = [];
+  pools: Pool[];
   columns: CdTableColumn[];
   selection = new CdTableSelection();
   modalRef: BsModalRef;
   columns: CdTableColumn[];
   selection = new CdTableSelection();
   modalRef: BsModalRef;
@@ -55,7 +56,7 @@ export class PoolListComponent implements OnInit {
   permissions: Permissions;
   tableActions: CdTableAction[];
   viewCacheStatusList: any[];
   permissions: Permissions;
   tableActions: CdTableAction[];
   viewCacheStatusList: any[];
-  selectionCacheTiers: any[] = [];
+  cacheTiers: any[] = [];
   monAllowPoolDelete = false;
 
   constructor(
   monAllowPoolDelete = false;
 
   constructor(
@@ -71,6 +72,7 @@ export class PoolListComponent implements OnInit {
     private configurationService: ConfigurationService,
     public actionLabels: ActionLabelsI18n
   ) {
     private configurationService: ConfigurationService,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
     this.permissions = this.authStorageService.getPermissions();
     this.tableActions = [
       {
@@ -214,7 +216,6 @@ export class PoolListComponent implements OnInit {
 
   updateSelection(selection: CdTableSelection) {
     this.selection = selection;
 
   updateSelection(selection: CdTableSelection) {
     this.selection = selection;
-    this.getSelectionTiers();
   }
 
   deletePoolModal() {
   }
 
   deletePoolModal() {
@@ -279,10 +280,10 @@ export class PoolListComponent implements OnInit {
   }
 
   getSelectionTiers() {
   }
 
   getSelectionTiers() {
-    const cacheTierIds = this.selection.hasSingleSelection
-      ? this.selection.first()['tiers'] || []
-      : [];
-    this.selectionCacheTiers = this.pools.filter((pool) => cacheTierIds.includes(pool.pool));
+    if (typeof this.expandedRow !== 'undefined') {
+      const cacheTierIds = this.expandedRow['tiers'];
+      this.cacheTiers = this.pools.filter((pool) => cacheTierIds.includes(pool.pool));
+    }
   }
 
   getDisableDesc(): string | undefined {
   }
 
   getDisableDesc(): string | undefined {
@@ -294,4 +295,9 @@ export class PoolListComponent implements OnInit {
 
     return undefined;
   }
 
     return undefined;
   }
+
+  setExpandedRow(expandedRow: any) {
+    super.setExpandedRow(expandedRow);
+    this.getSelectionTiers();
+  }
 }
 }
index 3d0cb7b482908db728070cc875239e6fe13049d9..761c41b32b0ddda4203814917e3145a2d38eb7b9 100644 (file)
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
   <tab i18n-heading
        heading="Details">
-    <div *ngIf="bucket">
+    <div *ngIf="selection">
       <table class="table table-striped table-bordered">
         <tbody>
           <tr>
             <td i18n
                 class="bold w-25">Name</td>
       <table class="table table-striped table-bordered">
         <tbody>
           <tr>
             <td i18n
                 class="bold w-25">Name</td>
-            <td class="w-75">{{ bucket.bid }}</td>
+            <td class="w-75">{{ selection.bid }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">ID</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">ID</td>
-            <td>{{ bucket.id }}</td>
+            <td>{{ selection.id }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Owner</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Owner</td>
-            <td>{{ bucket.owner }}</td>
+            <td>{{ selection.owner }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Index type</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Index type</td>
-            <td>{{ bucket.index_type }}</td>
+            <td>{{ selection.index_type }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Placement rule</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Placement rule</td>
-            <td>{{ bucket.placement_rule }}</td>
+            <td>{{ selection.placement_rule }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Marker</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Marker</td>
-            <td>{{ bucket.marker }}</td>
+            <td>{{ selection.marker }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Maximum marker</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Maximum marker</td>
-            <td>{{ bucket.max_marker }}</td>
+            <td>{{ selection.max_marker }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Version</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Version</td>
-            <td>{{ bucket.ver }}</td>
+            <td>{{ selection.ver }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Master version</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Master version</td>
-            <td>{{ bucket.master_ver }}</td>
+            <td>{{ selection.master_ver }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Modification time</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Modification time</td>
-            <td>{{ bucket.mtime | cdDate }}</td>
+            <td>{{ selection.mtime | cdDate }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Zonegroup</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Zonegroup</td>
-            <td>{{ bucket.zonegroup }}</td>
+            <td>{{ selection.zonegroup }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Versioning</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">Versioning</td>
-            <td>{{ bucket.versioning }}</td>
+            <td>{{ selection.versioning }}</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">MFA Delete</td>
           </tr>
           <tr>
             <td i18n
                 class="bold">MFA Delete</td>
-            <td>{{ bucket.mfa_delete }}</td>
+            <td>{{ selection.mfa_delete }}</td>
           </tr>
         </tbody>
       </table>
 
       <!-- Bucket quota -->
           </tr>
         </tbody>
       </table>
 
       <!-- Bucket quota -->
-      <div *ngIf="bucket.bucket_quota">
+      <div *ngIf="selection.bucket_quota">
         <legend i18n>Bucket quota</legend>
         <table class="table table-striped table-bordered">
           <tbody>
             <tr>
               <td i18n
                   class="bold w-25">Enabled</td>
         <legend i18n>Bucket quota</legend>
         <table class="table table-striped table-bordered">
           <tbody>
             <tr>
               <td i18n
                   class="bold w-25">Enabled</td>
-              <td class="w-75">{{ bucket.bucket_quota.enabled | booleanText }}</td>
+              <td class="w-75">{{ selection.bucket_quota.enabled | booleanText }}</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Maximum size</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Maximum size</td>
-              <td *ngIf="bucket.bucket_quota.max_size <= -1"
+              <td *ngIf="selection.bucket_quota.max_size <= -1"
                   i18n>Unlimited</td>
                   i18n>Unlimited</td>
-              <td *ngIf="bucket.bucket_quota.max_size > -1">
-                {{ bucket.bucket_quota.max_size | dimless }}
+              <td *ngIf="selection.bucket_quota.max_size > -1">
+                {{ selection.bucket_quota.max_size | dimless }}
               </td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Maximum objects</td>
               </td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Maximum objects</td>
-              <td *ngIf="bucket.bucket_quota.max_objects <= -1"
+              <td *ngIf="selection.bucket_quota.max_objects <= -1"
                   i18n>Unlimited</td>
                   i18n>Unlimited</td>
-              <td *ngIf="bucket.bucket_quota.max_objects > -1">
-                {{ bucket.bucket_quota.max_objects }}
+              <td *ngIf="selection.bucket_quota.max_objects > -1">
+                {{ selection.bucket_quota.max_objects }}
               </td>
             </tr>
           </tbody>
               </td>
             </tr>
           </tbody>
           <tr>
             <td i18n
                 class="bold w-25">Enabled</td>
           <tr>
             <td i18n
                 class="bold w-25">Enabled</td>
-            <td class="w-75">{{ bucket.lock_enabled | booleanText }}</td>
+            <td class="w-75">{{ selection.lock_enabled | booleanText }}</td>
           </tr>
           </tr>
-          <ng-container *ngIf="bucket.lock_enabled">
+          <ng-container *ngIf="selection.lock_enabled">
             <tr>
               <td i18n
                   class="bold">Mode</td>
             <tr>
               <td i18n
                   class="bold">Mode</td>
-              <td>{{ bucket.lock_mode }}</td>
+              <td>{{ selection.lock_mode }}</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Days</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Days</td>
-              <td>{{ bucket.lock_retention_period_days }}</td>
+              <td>{{ selection.lock_retention_period_days }}</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Years</td>
             </tr>
             <tr>
               <td i18n
                   class="bold">Years</td>
-              <td>{{ bucket.lock_retention_period_years }}</td>
+              <td>{{ selection.lock_retention_period_years }}</td>
             </tr>
           </ng-container>
         </tbody>
             </tr>
           </ng-container>
         </tbody>
index 0b4fa50626c8ce5de5881901f494439fe251ff6a..48f2554003826c8d7dc8883ac3239b12ef2776ff 100644 (file)
@@ -1,23 +1,13 @@
-import { Component, Input, OnChanges } from '@angular/core';
-
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
+import { Component, Input } from '@angular/core';
 
 @Component({
   selector: 'cd-rgw-bucket-details',
   templateUrl: './rgw-bucket-details.component.html',
   styleUrls: ['./rgw-bucket-details.component.scss']
 })
 
 @Component({
   selector: 'cd-rgw-bucket-details',
   templateUrl: './rgw-bucket-details.component.html',
   styleUrls: ['./rgw-bucket-details.component.scss']
 })
-export class RgwBucketDetailsComponent implements OnChanges {
-  bucket: any;
-
+export class RgwBucketDetailsComponent {
   @Input()
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   constructor() {}
 
   constructor() {}
-
-  ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.bucket = this.selection.first();
-    }
-  }
 }
 }
index 0cb297c3f1fe5416c92a939469ea15a27ad97c75..9b4b3ef67824dfec19d8a9c116c09dad8d180afe 100644 (file)
@@ -43,7 +43,7 @@ describe('RgwBucketFormComponent', () => {
     component = fixture.componentInstance;
     rgwBucketService = TestBed.get(RgwBucketService);
     rgwBucketServiceGetSpy = spyOn(rgwBucketService, 'get');
     component = fixture.componentInstance;
     rgwBucketService = TestBed.get(RgwBucketService);
     rgwBucketServiceGetSpy = spyOn(rgwBucketService, 'get');
-    getPlacementTargetsSpy = spyOn(TestBed.get(RgwSiteService), 'getPlacementTargets');
+    getPlacementTargetsSpy = spyOn(TestBed.get(RgwSiteService), 'get');
     formHelper = new FormHelper(component.bucketForm);
   });
 
     formHelper = new FormHelper(component.bucketForm);
   });
 
index bd1cfcbd051bee8a5f36a2c1721f53b07c476a3d..86a3805235484ee86f07000ca72b031d06f13177 100644 (file)
@@ -91,7 +91,7 @@ export class RgwBucketFormComponent implements OnInit {
 
     if (!this.editing) {
       // Get placement targets:
 
     if (!this.editing) {
       // Get placement targets:
-      this.rgwSiteService.getPlacementTargets().subscribe((placementTargets: any) => {
+      this.rgwSiteService.get('placement-targets').subscribe((placementTargets: any) => {
         this.zonegroup = placementTargets['zonegroup'];
         _.forEach(placementTargets['placement_targets'], (placementTarget) => {
           placementTarget['description'] = `${placementTarget['name']} (${this.i18n('pool')}: ${
         this.zonegroup = placementTargets['zonegroup'];
         _.forEach(placementTargets['placement_targets'], (placementTarget) => {
           placementTarget['description'] = `${placementTarget['name']} (${this.i18n('pool')}: ${
index 1a2fbaeba02c4cfed5b1e9955973104abdbd2a05..a35475abec4e01613c12571ba8de182e3a947079 100644 (file)
@@ -8,6 +8,8 @@
           [columns]="columns"
           columnMode="flex"
           selectionType="multiClick"
           [columns]="columns"
           columnMode="flex"
           selectionType="multiClick"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)"
           identifier="bid"
           (fetchData)="getBucketList($event)">
           (updateSelection)="updateSelection($event)"
           identifier="bid"
           (fetchData)="getBucketList($event)">
@@ -17,6 +19,6 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rgw-bucket-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rgw-bucket-details cdTableDetail
-                         [selection]="selection">
+                         [selection]="expandedRow">
   </cd-rgw-bucket-details>
 </cd-table>
   </cd-rgw-bucket-details>
 </cd-table>
index 3f0bf0bcca5266d7c0bdd42783c287c6799f6d02..98cd5fed526c964f51c770a12bed241573551675 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ModalModule } from 'ngx-bootstrap/modal';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ModalModule } from 'ngx-bootstrap/modal';
@@ -22,6 +23,7 @@ describe('RgwBucketListComponent', () => {
   configureTestBed({
     declarations: [RgwBucketListComponent, RgwBucketDetailsComponent],
     imports: [
   configureTestBed({
     declarations: [RgwBucketListComponent, RgwBucketDetailsComponent],
     imports: [
+      BrowserAnimationsModule,
       RouterTestingModule,
       ModalModule.forRoot(),
       SharedModule,
       RouterTestingModule,
       ModalModule.forRoot(),
       SharedModule,
index 8573c7395570d38eff8597a2b4c7bd46a81c06a5..1a99482b5bbe5f0a0b9fec97d5405398cbdf6b33 100644 (file)
@@ -5,6 +5,7 @@ import { BsModalService } from 'ngx-bootstrap/modal';
 import { forkJoin as observableForkJoin, Observable, Subscriber } from 'rxjs';
 
 import { RgwBucketService } from '../../../shared/api/rgw-bucket.service';
 import { forkJoin as observableForkJoin, Observable, Subscriber } from 'rxjs';
 
 import { RgwBucketService } from '../../../shared/api/rgw-bucket.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
@@ -25,7 +26,7 @@ const BASE_URL = 'rgw/bucket';
   styleUrls: ['./rgw-bucket-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
   styleUrls: ['./rgw-bucket-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
-export class RgwBucketListComponent {
+export class RgwBucketListComponent extends ListWithDetails {
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
 
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
 
@@ -46,6 +47,7 @@ export class RgwBucketListComponent {
     public actionLabels: ActionLabelsI18n,
     private ngZone: NgZone
   ) {
     public actionLabels: ActionLabelsI18n,
     private ngZone: NgZone
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().rgw;
     this.columns = [
       {
     this.permission = this.authStorageService.getPermissions().rgw;
     this.columns = [
       {
index d46bbb8c2cceff2b5125c0591db7474867a18e33..b7cea04f21cdaf5a2035a18458bf14a92d5c4c14 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [data]="metadata"
   <tab i18n-heading
        heading="Details">
     <cd-table-key-value [data]="metadata"
@@ -14,7 +14,7 @@
   <tab i18n-heading
        *ngIf="grafanaPermission.read"
        heading="Performance Details">
   <tab i18n-heading
        *ngIf="grafanaPermission.read"
        heading="Performance Details">
-    <cd-grafana [grafanaPath]="'rgw-instance-detail?var-rgw_servers=rgw.' + this.selection.first().id"
+    <cd-grafana [grafanaPath]="'rgw-instance-detail?var-rgw_servers=rgw.' + this.serviceId"
                 uid="x5ARzZtmk"
                 grafanaStyle="one">
     </cd-grafana>
                 uid="x5ARzZtmk"
                 grafanaStyle="one">
     </cd-grafana>
index 96b6d81a8f6f7a3ea68515ea3b0aed5c5eea1f82..f185f2133d9624ac6ab8e93cf7ee7c8ce677831e 100644 (file)
@@ -4,7 +4,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed } from '../../../../testing/unit-test-helper';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { PerformanceCounterModule } from '../../performance-counter/performance-counter.module';
 import { RgwDaemonDetailsComponent } from './rgw-daemon-details.component';
 import { SharedModule } from '../../../shared/shared.module';
 import { PerformanceCounterModule } from '../../performance-counter/performance-counter.module';
 import { RgwDaemonDetailsComponent } from './rgw-daemon-details.component';
@@ -21,7 +20,7 @@ describe('RgwDaemonDetailsComponent', () => {
   beforeEach(() => {
     fixture = TestBed.createComponent(RgwDaemonDetailsComponent);
     component = fixture.componentInstance;
   beforeEach(() => {
     fixture = TestBed.createComponent(RgwDaemonDetailsComponent);
     component = fixture.componentInstance;
-    component.selection = new CdTableSelection();
+    component.selection = undefined;
     fixture.detectChanges();
   });
 
     fixture.detectChanges();
   });
 
index c78754890dbc5afd3d6b3ec94e809390af84b230..e338572aae378faa1ce3bec15f74a9f24dc354fc 100644 (file)
@@ -3,7 +3,6 @@ import { Component, Input, OnChanges } from '@angular/core';
 import * as _ from 'lodash';
 
 import { RgwDaemonService } from '../../../shared/api/rgw-daemon.service';
 import * as _ from 'lodash';
 
 import { RgwDaemonService } from '../../../shared/api/rgw-daemon.service';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { Permission } from '../../../shared/models/permissions';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 
 import { Permission } from '../../../shared/models/permissions';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 
@@ -18,7 +17,7 @@ export class RgwDaemonDetailsComponent implements OnChanges {
   grafanaPermission: Permission;
 
   @Input()
   grafanaPermission: Permission;
 
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   constructor(
     private rgwDaemonService: RgwDaemonService,
 
   constructor(
     private rgwDaemonService: RgwDaemonService,
@@ -29,8 +28,8 @@ export class RgwDaemonDetailsComponent implements OnChanges {
 
   ngOnChanges() {
     // Get the service id of the first selected row.
 
   ngOnChanges() {
     // Get the service id of the first selected row.
-    if (this.selection.hasSelection) {
-      this.serviceId = this.selection.first().id;
+    if (this.selection) {
+      this.serviceId = this.selection.id;
     }
   }
 
     }
   }
 
index cb485c6a648ad2bd3259818667488edf77e132e7..71d9ab67c94a41d985eac253a20d2b0209ff80c3 100644 (file)
@@ -4,11 +4,11 @@
     <cd-table [data]="daemons"
               [columns]="columns"
               columnMode="flex"
     <cd-table [data]="daemons"
               [columns]="columns"
               columnMode="flex"
-              selectionType="single"
-              (updateSelection)="updateSelection($event)"
+              [hasDetails]="true"
+              (setExpandedRow)="setExpandedRow($event)"
               (fetchData)="getDaemonList($event)">
       <cd-rgw-daemon-details cdTableDetail
               (fetchData)="getDaemonList($event)">
       <cd-rgw-daemon-details cdTableDetail
-                             [selection]="selection">
+                             [selection]="expandedRow">
       </cd-rgw-daemon-details>
     </cd-table>
   </tab>
       </cd-rgw-daemon-details>
     </cd-table>
   </tab>
                 grafanaStyle="two">
     </cd-grafana>
   </tab>
                 grafanaStyle="two">
     </cd-grafana>
   </tab>
+
+  <tab i18n-heading
+       *ngIf="grafanaPermission.read && isMultiSite"
+       heading="Sync Performance">
+    <cd-grafana [grafanaPath]="'radosgw-sync-overview?'"
+                uid="rgw-sync-overview"
+                grafanaStyle="two">
+    </cd-grafana>
+  </tab>
 </tabset>
 </tabset>
index 65b7102c8698f1605aeac0e70f7eaa5f8a4845b5..19aacc0acd95da6e65ea6df7511777de139abf79 100644 (file)
@@ -1,10 +1,15 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
+import { of } from 'rxjs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import { RgwSiteService } from '../../../shared/api/rgw-site.service';
+import { Permissions } from '../../../shared/models/permissions';
+import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { SharedModule } from '../../../shared/shared.module';
 import { PerformanceCounterModule } from '../../performance-counter/performance-counter.module';
 import { RgwDaemonDetailsComponent } from '../rgw-daemon-details/rgw-daemon-details.component';
 import { SharedModule } from '../../../shared/shared.module';
 import { PerformanceCounterModule } from '../../performance-counter/performance-counter.module';
 import { RgwDaemonDetailsComponent } from '../rgw-daemon-details/rgw-daemon-details.component';
@@ -13,10 +18,20 @@ import { RgwDaemonListComponent } from './rgw-daemon-list.component';
 describe('RgwDaemonListComponent', () => {
   let component: RgwDaemonListComponent;
   let fixture: ComponentFixture<RgwDaemonListComponent>;
 describe('RgwDaemonListComponent', () => {
   let component: RgwDaemonListComponent;
   let fixture: ComponentFixture<RgwDaemonListComponent>;
+  let getPermissionsSpy: jasmine.Spy;
+  let getRealmsSpy: jasmine.Spy;
+  const permissions = new Permissions({ grafana: ['read'] });
+  const expectTabsAndHeading = (length: number, heading: string) => {
+    const tabs = fixture.debugElement.nativeElement.querySelectorAll('tab');
+
+    expect(tabs.length).toEqual(length);
+    expect(tabs[length - 1].getAttribute('heading')).toEqual(heading);
+  };
 
   configureTestBed({
     declarations: [RgwDaemonListComponent, RgwDaemonDetailsComponent],
     imports: [
 
   configureTestBed({
     declarations: [RgwDaemonListComponent, RgwDaemonDetailsComponent],
     imports: [
+      BrowserAnimationsModule,
       HttpClientTestingModule,
       TabsModule.forRoot(),
       PerformanceCounterModule,
       HttpClientTestingModule,
       TabsModule.forRoot(),
       PerformanceCounterModule,
@@ -27,12 +42,37 @@ describe('RgwDaemonListComponent', () => {
   });
 
   beforeEach(() => {
   });
 
   beforeEach(() => {
+    getPermissionsSpy = spyOn(TestBed.get(AuthStorageService), 'getPermissions');
+    getPermissionsSpy.and.returnValue(new Permissions({}));
+    getRealmsSpy = spyOn(TestBed.get(RgwSiteService), 'get');
+    getRealmsSpy.and.returnValue(of([]));
     fixture = TestBed.createComponent(RgwDaemonListComponent);
     component = fixture.componentInstance;
     fixture = TestBed.createComponent(RgwDaemonListComponent);
     component = fixture.componentInstance;
-    fixture.detectChanges();
   });
 
   it('should create', () => {
   });
 
   it('should create', () => {
+    fixture.detectChanges();
     expect(component).toBeTruthy();
   });
     expect(component).toBeTruthy();
   });
+
+  it('should only show Daemons List tab', () => {
+    fixture.detectChanges();
+
+    expectTabsAndHeading(1, 'Daemons List');
+  });
+
+  it('should show Overall Performance tab', () => {
+    getPermissionsSpy.and.returnValue(permissions);
+    fixture.detectChanges();
+
+    expectTabsAndHeading(2, 'Overall Performance');
+  });
+
+  it('should show Sync Performance tab', () => {
+    getPermissionsSpy.and.returnValue(permissions);
+    getRealmsSpy.and.returnValue(of(['realm1']));
+    fixture.detectChanges();
+
+    expectTabsAndHeading(3, 'Sync Performance');
+  });
 });
 });
index 7f689615527821602682b6fbd7eaf99a6a4338ad..7a43cfeeadfb94e5720f7bf4384348b666033df2 100644 (file)
@@ -1,11 +1,12 @@
-import { Component } from '@angular/core';
+import { Component, OnInit } from '@angular/core';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { RgwDaemonService } from '../../../shared/api/rgw-daemon.service';
 
 import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { RgwDaemonService } from '../../../shared/api/rgw-daemon.service';
+import { RgwSiteService } from '../../../shared/api/rgw-site.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 import { CdTableFetchDataContext } from '../../../shared/models/cd-table-fetch-data-context';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { Permission } from '../../../shared/models/permissions';
 import { CephShortVersionPipe } from '../../../shared/pipes/ceph-short-version.pipe';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
 import { Permission } from '../../../shared/models/permissions';
 import { CephShortVersionPipe } from '../../../shared/pipes/ceph-short-version.pipe';
 import { AuthStorageService } from '../../../shared/services/auth-storage.service';
@@ -15,18 +16,23 @@ import { AuthStorageService } from '../../../shared/services/auth-storage.servic
   templateUrl: './rgw-daemon-list.component.html',
   styleUrls: ['./rgw-daemon-list.component.scss']
 })
   templateUrl: './rgw-daemon-list.component.html',
   styleUrls: ['./rgw-daemon-list.component.scss']
 })
-export class RgwDaemonListComponent {
+export class RgwDaemonListComponent extends ListWithDetails implements OnInit {
   columns: CdTableColumn[] = [];
   daemons: object[] = [];
   columns: CdTableColumn[] = [];
   daemons: object[] = [];
-  selection: CdTableSelection = new CdTableSelection();
   grafanaPermission: Permission;
   grafanaPermission: Permission;
+  isMultiSite: boolean;
 
   constructor(
     private rgwDaemonService: RgwDaemonService,
     private authStorageService: AuthStorageService,
 
   constructor(
     private rgwDaemonService: RgwDaemonService,
     private authStorageService: AuthStorageService,
-    cephShortVersionPipe: CephShortVersionPipe,
-    private i18n: I18n
+    private cephShortVersionPipe: CephShortVersionPipe,
+    private i18n: I18n,
+    private rgwSiteService: RgwSiteService
   ) {
   ) {
+    super();
+  }
+
+  ngOnInit(): void {
     this.grafanaPermission = this.authStorageService.getPermissions().grafana;
     this.columns = [
       {
     this.grafanaPermission = this.authStorageService.getPermissions().grafana;
     this.columns = [
       {
@@ -43,9 +49,12 @@ export class RgwDaemonListComponent {
         name: this.i18n('Version'),
         prop: 'version',
         flexGrow: 1,
         name: this.i18n('Version'),
         prop: 'version',
         flexGrow: 1,
-        pipe: cephShortVersionPipe
+        pipe: this.cephShortVersionPipe
       }
     ];
       }
     ];
+    this.rgwSiteService
+      .get('realms')
+      .subscribe((realms: string[]) => (this.isMultiSite = realms.length > 0));
   }
 
   getDaemonList(context: CdTableFetchDataContext) {
   }
 
   getDaemonList(context: CdTableFetchDataContext) {
@@ -58,8 +67,4 @@ export class RgwDaemonListComponent {
       }
     );
   }
       }
     );
   }
-
-  updateSelection(selection: CdTableSelection) {
-    this.selection = selection;
-  }
 }
 }
index 4a87754f7ecf393e4e56352f5084dd7745651293..e4080a26362c27bf5351e3af0ab24b769cc0d890 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab i18n-heading
        heading="Details">
     <div *ngIf="user">
   <tab i18n-heading
        heading="Details">
     <div *ngIf="user">
index 370e717db7fdd7ea2a045311be2c0cd325e2cc72..1b29228c38cabc511e98c849b4816d134e654714 100644 (file)
@@ -1,11 +1,11 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { BsModalService } from 'ngx-bootstrap/modal';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 
 import { BsModalService } from 'ngx-bootstrap/modal';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { RgwUserS3Key } from '../models/rgw-user-s3-key';
 import { RgwUserDetailsComponent } from './rgw-user-details.component';
 import { SharedModule } from '../../../shared/shared.module';
 import { RgwUserS3Key } from '../models/rgw-user-s3-key';
 import { RgwUserDetailsComponent } from './rgw-user-details.component';
@@ -16,14 +16,14 @@ describe('RgwUserDetailsComponent', () => {
 
   configureTestBed({
     declarations: [RgwUserDetailsComponent],
 
   configureTestBed({
     declarations: [RgwUserDetailsComponent],
-    imports: [HttpClientTestingModule, SharedModule, TabsModule.forRoot()],
+    imports: [BrowserAnimationsModule, HttpClientTestingModule, SharedModule, TabsModule.forRoot()],
     providers: [BsModalService, i18nProviders]
   });
 
   beforeEach(() => {
     fixture = TestBed.createComponent(RgwUserDetailsComponent);
     component = fixture.componentInstance;
     providers: [BsModalService, i18nProviders]
   });
 
   beforeEach(() => {
     fixture = TestBed.createComponent(RgwUserDetailsComponent);
     component = fixture.componentInstance;
-    component.selection = new CdTableSelection();
+    component.selection = {};
     fixture.detectChanges();
   });
 
     fixture.detectChanges();
   });
 
@@ -31,13 +31,13 @@ describe('RgwUserDetailsComponent', () => {
     expect(component).toBeTruthy();
 
     const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
     expect(component).toBeTruthy();
 
     const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
-    expect(detailsTab).toBeFalsy();
+    expect(detailsTab).toBeTruthy();
     const keysTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Keys"]');
     expect(keysTab).toBeFalsy();
   });
 
   it('should show "Details" tab', () => {
     const keysTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Keys"]');
     expect(keysTab).toBeFalsy();
   });
 
   it('should show "Details" tab', () => {
-    component.selection.selected = [{ uid: 'myUsername' }];
+    component.selection = { uid: 'myUsername' };
     fixture.detectChanges();
 
     const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
     fixture.detectChanges();
 
     const detailsTab = fixture.debugElement.nativeElement.querySelector('tab[heading="Details"]');
@@ -48,7 +48,7 @@ describe('RgwUserDetailsComponent', () => {
 
   it('should show "Keys" tab', () => {
     const s3Key = new RgwUserS3Key();
 
   it('should show "Keys" tab', () => {
     const s3Key = new RgwUserS3Key();
-    component.selection.selected = [{ keys: [s3Key] }];
+    component.selection = { keys: [s3Key] };
     component.ngOnChanges();
     fixture.detectChanges();
 
     component.ngOnChanges();
     fixture.detectChanges();
 
@@ -59,9 +59,8 @@ describe('RgwUserDetailsComponent', () => {
   });
 
   it('should show correct "System" info', () => {
   });
 
   it('should show correct "System" info', () => {
-    component.selection.selected = [
-      { uid: '', email: '', system: 'true', keys: [], swift_keys: [] }
-    ];
+    component.selection = { uid: '', email: '', system: 'true', keys: [], swift_keys: [] };
+
     component.ngOnChanges();
     fixture.detectChanges();
 
     component.ngOnChanges();
     fixture.detectChanges();
 
@@ -71,7 +70,7 @@ describe('RgwUserDetailsComponent', () => {
     expect(detailsTab[6].textContent).toEqual('System');
     expect(detailsTab[7].textContent).toEqual('Yes');
 
     expect(detailsTab[6].textContent).toEqual('System');
     expect(detailsTab[7].textContent).toEqual('Yes');
 
-    component.selection.selected[0].system = 'false';
+    component.selection.system = 'false';
     component.ngOnChanges();
     fixture.detectChanges();
 
     component.ngOnChanges();
     fixture.detectChanges();
 
index 290822c9afbeb13703e051836dae2371b15dffcb..b2c95901f4ed4eb74e0a40b13374edadf974431c 100644 (file)
@@ -25,7 +25,7 @@ export class RgwUserDetailsComponent implements OnChanges, OnInit {
   public secretKeyTpl: TemplateRef<any>;
 
   @Input()
   public secretKeyTpl: TemplateRef<any>;
 
   @Input()
-  selection: CdTableSelection;
+  selection: any;
 
   // Details tab
   user: any;
 
   // Details tab
   user: any;
@@ -64,8 +64,8 @@ export class RgwUserDetailsComponent implements OnChanges, OnInit {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.user = this.selection.first();
+    if (this.selection) {
+      this.user = this.selection;
 
       // Sort subusers and capabilities.
       this.user.subusers = _.sortBy(this.user.subusers, 'id');
 
       // Sort subusers and capabilities.
       this.user.subusers = _.sortBy(this.user.subusers, 'id');
index f1d603536d4f229b7b20367491ae0e44abd9521c..e274e8214d6f2752ca1f22904dba6b23d04be5b5 100644 (file)
@@ -8,6 +8,8 @@
           [columns]="columns"
           columnMode="flex"
           selectionType="multiClick"
           [columns]="columns"
           columnMode="flex"
           selectionType="multiClick"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (updateSelection)="updateSelection($event)"
           identifier="uid"
           (fetchData)="getUserList($event)">
           (updateSelection)="updateSelection($event)"
           identifier="uid"
           (fetchData)="getUserList($event)">
@@ -17,6 +19,6 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rgw-user-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-rgw-user-details cdTableDetail
-                       [selection]="selection">
+                       [selection]="expandedRow">
   </cd-rgw-user-details>
 </cd-table>
   </cd-rgw-user-details>
 </cd-table>
index 4c41b420bb4ddf08f4a834e894618a8fe0abffe5..12f7a1df2a06ff74b72bedee63a950e64b1e87ed 100644 (file)
@@ -1,6 +1,7 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { NO_ERRORS_SCHEMA } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ModalModule } from 'ngx-bootstrap/modal';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { ModalModule } from 'ngx-bootstrap/modal';
@@ -20,7 +21,13 @@ describe('RgwUserListComponent', () => {
 
   configureTestBed({
     declarations: [RgwUserListComponent],
 
   configureTestBed({
     declarations: [RgwUserListComponent],
-    imports: [RouterTestingModule, HttpClientTestingModule, ModalModule.forRoot(), SharedModule],
+    imports: [
+      BrowserAnimationsModule,
+      RouterTestingModule,
+      HttpClientTestingModule,
+      ModalModule.forRoot(),
+      SharedModule
+    ],
     schemas: [NO_ERRORS_SCHEMA],
     providers: i18nProviders
   });
     schemas: [NO_ERRORS_SCHEMA],
     providers: i18nProviders
   });
index 8775220401b63f10acfc455015c008e5a721cb43..b920ecd7d30fdbe3d434d00c7d27aa113715408b 100644 (file)
@@ -5,6 +5,7 @@ import { BsModalService } from 'ngx-bootstrap/modal';
 import { forkJoin as observableForkJoin, Observable, Subscriber } from 'rxjs';
 
 import { RgwUserService } from '../../../shared/api/rgw-user.service';
 import { forkJoin as observableForkJoin, Observable, Subscriber } from 'rxjs';
 
 import { RgwUserService } from '../../../shared/api/rgw-user.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { TableComponent } from '../../../shared/datatable/table/table.component';
@@ -26,7 +27,7 @@ const BASE_URL = 'rgw/user';
   styleUrls: ['./rgw-user-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
   styleUrls: ['./rgw-user-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
-export class RgwUserListComponent {
+export class RgwUserListComponent extends ListWithDetails {
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   permission: Permission;
   @ViewChild(TableComponent, { static: true })
   table: TableComponent;
   permission: Permission;
@@ -46,6 +47,7 @@ export class RgwUserListComponent {
     public actionLabels: ActionLabelsI18n,
     private ngZone: NgZone
   ) {
     public actionLabels: ActionLabelsI18n,
     private ngZone: NgZone
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().rgw;
     this.columns = [
       {
     this.permission = this.authStorageService.getPermissions().rgw;
     this.columns = [
       {
index d862c5ae9eea82c14b3162f33179c5af36860b2c..395608b34321b1f2adb74781ecbfe2630ff55a37 100644 (file)
@@ -2,6 +2,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { SimpleChange, SimpleChanges } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { By } from '@angular/platform-browser';
 import { SimpleChange, SimpleChanges } from '@angular/core';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { By } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import * as _ from 'lodash';
 import { TabsetComponent, TabsetConfig, TabsModule } from 'ngx-bootstrap/tabs';
 
 import * as _ from 'lodash';
 import { TabsetComponent, TabsetConfig, TabsModule } from 'ngx-bootstrap/tabs';
@@ -80,7 +81,7 @@ describe('OsdSmartListComponent', () => {
 
   configureTestBed({
     declarations: [SmartListComponent],
 
   configureTestBed({
     declarations: [SmartListComponent],
-    imports: [TabsModule, SharedModule, HttpClientTestingModule],
+    imports: [BrowserAnimationsModule, TabsModule, SharedModule, HttpClientTestingModule],
     providers: [i18nProviders, TabsetComponent, TabsetConfig]
   });
 
     providers: [i18nProviders, TabsetComponent, TabsetConfig]
   });
 
index d530e3462fb3d6cab877071ca9c1e0a2c74c8242..4bccee8c4d92263fd96714147bcd3cd259f41f38 100644 (file)
@@ -58,10 +58,9 @@ export class SmartListComponent implements OnInit, OnChanges {
         let userMessage = '';
         if (smartData.smartctl_error_code === -22) {
           userMessage = this.i18n(
         let userMessage = '';
         if (smartData.smartctl_error_code === -22) {
           userMessage = this.i18n(
-            'Smartctl has received an unknown argument (error code ' +
-              '{{code}}). You may be using an ' +
-              'incompatible version of smartmontools. Version >= 7.0 of ' +
-              'smartmontools is required to successfully retrieve data.',
+            `Smartctl has received an unknown argument (error code {{code}}). \
+You may be using an incompatible version of smartmontools. Version >= 7.0 of \
+smartmontools is required to successfully retrieve data.`,
             { code: smartData.smartctl_error_code }
           );
         } else {
             { code: smartData.smartctl_error_code }
           );
         } else {
index b8a0a629a63b9c3b7bccd1cb7f4c8ce04c17e636..bb28c240e797f6d66f31c13ae141f5fae319655d 100644 (file)
@@ -1,50 +1,61 @@
 <div *ngIf="isLoginActive">
 <div *ngIf="isLoginActive">
-  <h1 i18n="The welcome message on the login page">Welcome to Ceph!</h1>
   <form name="loginForm"
         (ngSubmit)="login()"
         #loginForm="ngForm"
         novalidate>
 
     <!-- Username -->
   <form name="loginForm"
         (ngSubmit)="login()"
         #loginForm="ngForm"
         novalidate>
 
     <!-- Username -->
-    <div class="form-group has-feedback">
-      <input name="username"
+    <div class="form-group has-feedback d-flex flex-column py-3">
+      <label class="placeholder pl-4"
+             for="username"
+             i18n>Username</label>
+      <input id="username"
+             name="username"
              [(ngModel)]="model.username"
              #username="ngModel"
              type="text"
              [(ngModel)]="model.username"
              #username="ngModel"
              type="text"
-             placeholder="Enter your username..."
-             class="form-control"
+             [attr.aria-invalid]="username.invalid"
+             aria-labelledby="username"
+             class="form-control pl-4"
              required
              autofocus>
              required
              autofocus>
-      <div class="invalid-feedback"
+      <div class="invalid-feedback pl-4"
            *ngIf="(loginForm.submitted || username.dirty) && username.invalid"
            i18n>Username is required</div>
     </div>
 
     <!-- Password -->
            *ngIf="(loginForm.submitted || username.dirty) && username.invalid"
            i18n>Username is required</div>
     </div>
 
     <!-- Password -->
-    <div class="form-group has-feedback">
-      <div class="input-group">
-        <input id="password"
-               name="password"
-               [(ngModel)]="model.password"
-               #password="ngModel"
-               type="password"
-               placeholder="Enter your password..."
-               class="form-control"
-               required>
-        <span class="input-group-append">
+    <div class="form-group has-feedback"
+         id="password-div">
+      <div class="input-group d-flex flex-nowrap">
+        <div class="d-flex flex-column flex-grow-1 py-3">
+          <label class="placeholder pl-4"
+                 for="password"
+                 i18n>Password</label>
+          <input id="password"
+                 name="password"
+                 [(ngModel)]="model.password"
+                 #password="ngModel"
+                 type="password"
+                 [attr.aria-invalid]="password.invalid"
+                 aria-labelledby="password"
+                 class="form-control pl-4"
+                 required>
+          <div class="invalid-feedback pl-4"
+               *ngIf="(loginForm.submitted || password.dirty) && password.invalid"
+               i18n>Password is required</div>
+        </div>
+        <span class="form-group-append">
           <button type="button"
           <button type="button"
-                  class="btn btn-outline-light btn-password"
+                  class="btn btn-outline-light btn-password h-100 px-4"
                   cdPasswordButton="password">
           </button>
         </span>
       </div>
                   cdPasswordButton="password">
           </button>
         </span>
       </div>
-      <div class="invalid-feedback"
-           *ngIf="(loginForm.submitted || password.dirty) && password.invalid"
-           i18n>Password is required</div>
     </div>
 
     <input type="submit"
     </div>
 
     <input type="submit"
-           class="btn btn-secondary btn-block"
+           class="btn btn-secondary px-5 py-2"
            [disabled]="loginForm.invalid"
            value="Login"
            i18n-value>
            [disabled]="loginForm.invalid"
            value="Login"
            i18n-value>
index 7535c8c84ff6c5d3734eee0520c70f899302b0cd..9370066183edf3ba613631b9b7f420e3461c7730 100644 (file)
@@ -5,15 +5,35 @@
     margin: 0 0 30px 0;
   }
 
     margin: 0 0 30px 0;
   }
 
+  .form-group {
+    border-left: 4px solid white;
+    background-color: $color-password-toggle-bg;
+    height: auto;
+    margin-bottom: 2rem;
+
+    &:focus-within {
+      border-left: 4px solid $color-accent;
+    }
+
+    .invalid-feedback {
+      display: inline;
+    }
+  }
+
   .btn-password,
   .btn-password:focus,
   .form-control,
   .form-control:focus {
   .btn-password,
   .btn-password:focus,
   .form-control,
   .form-control:focus {
+    border: none;
+    outline: none;
+    -webkit-box-shadow: none;
+    box-shadow: none;
     color: $color-password-toggle-text;
     background-color: $color-password-toggle-bg;
     color: $color-password-toggle-text;
     background-color: $color-password-toggle-bg;
+    filter: none;
   }
 
   }
 
-  .form-control::placeholder {
+  .placeholder {
     color: $color-password-toggle-placeholder-text;
   }
 
     color: $color-password-toggle-placeholder-text;
   }
 
@@ -33,4 +53,8 @@
 input:-webkit-autofill {
   animation-name: autofill;
   animation-fill-mode: both;
 input:-webkit-autofill {
   animation-name: autofill;
   animation-fill-mode: both;
+  box-shadow: 0 0 0px 1000px $color-password-toggle-bg inset;
+  -webkit-text-fill-color: $color-password-toggle-text;
+  transition-property: none;
+  border-radius: 0px;
 }
 }
index 9a4cb7436a7795a46655aa69f7d4a1c01f375d1f..ec054c67fbb25b005917ae00e9fafc673d2af7b7 100644 (file)
@@ -1,4 +1,4 @@
-<tabset *ngIf="selection?.hasSingleSelection">
+<tabset *ngIf="selection">
   <tab heading="Details"
        i18n-heading>
     <cd-table [data]="scopes_permissions"
   <tab heading="Details"
        i18n-heading>
     <cd-table [data]="scopes_permissions"
index 74f0ff400897329d8ce4619b32f70bbcd405cd57..d07ef6fe447a2b120d94cde2ec72b4b3ea4a2633 100644 (file)
@@ -5,7 +5,6 @@ import { RouterTestingModule } from '@angular/router/testing';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
 import { TabsModule } from 'ngx-bootstrap/tabs';
 
 import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 import { SharedModule } from '../../../shared/shared.module';
 import { RoleDetailsComponent } from './role-details.component';
 
 import { SharedModule } from '../../../shared/shared.module';
 import { RoleDetailsComponent } from './role-details.component';
 
@@ -31,16 +30,14 @@ describe('RoleDetailsComponent', () => {
 
   it('should create scopes permissions [1/2]', () => {
     component.scopes = ['log', 'rgw'];
 
   it('should create scopes permissions [1/2]', () => {
     component.scopes = ['log', 'rgw'];
-    component.selection = new CdTableSelection([
-      {
-        description: 'RGW Manager',
-        name: 'rgw-manager',
-        scopes_permissions: {
-          rgw: ['read', 'create', 'update', 'delete']
-        },
-        system: true
-      }
-    ]);
+    component.selection = {
+      description: 'RGW Manager',
+      name: 'rgw-manager',
+      scopes_permissions: {
+        rgw: ['read', 'create', 'update', 'delete']
+      },
+      system: true
+    };
     expect(component.scopes_permissions.length).toBe(0);
     component.ngOnChanges();
     expect(component.scopes_permissions).toEqual([
     expect(component.scopes_permissions.length).toBe(0);
     component.ngOnChanges();
     expect(component.scopes_permissions).toEqual([
@@ -51,17 +48,15 @@ describe('RoleDetailsComponent', () => {
 
   it('should create scopes permissions [2/2]', () => {
     component.scopes = ['cephfs', 'log', 'rgw'];
 
   it('should create scopes permissions [2/2]', () => {
     component.scopes = ['cephfs', 'log', 'rgw'];
-    component.selection = new CdTableSelection([
-      {
-        description: 'Test',
-        name: 'test',
-        scopes_permissions: {
-          log: ['read', 'update'],
-          rgw: ['read', 'create', 'update']
-        },
-        system: false
-      }
-    ]);
+    component.selection = {
+      description: 'Test',
+      name: 'test',
+      scopes_permissions: {
+        log: ['read', 'update'],
+        rgw: ['read', 'create', 'update']
+      },
+      system: false
+    };
     expect(component.scopes_permissions.length).toBe(0);
     component.ngOnChanges();
     expect(component.scopes_permissions).toEqual([
     expect(component.scopes_permissions.length).toBe(0);
     component.ngOnChanges();
     expect(component.scopes_permissions).toEqual([
index 1ed0568f773bff6c020730de7ea1c93a81b51dc7..6ee91494104229df26cb345fa5c9425d2c35d561 100644 (file)
@@ -5,7 +5,6 @@ import * as _ from 'lodash';
 
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
 
 import { CellTemplate } from '../../../shared/enum/cell-template.enum';
 import { CdTableColumn } from '../../../shared/models/cd-table-column';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 
 @Component({
   selector: 'cd-role-details',
 
 @Component({
   selector: 'cd-role-details',
@@ -14,7 +13,7 @@ import { CdTableSelection } from '../../../shared/models/cd-table-selection';
 })
 export class RoleDetailsComponent implements OnChanges, OnInit {
   @Input()
 })
 export class RoleDetailsComponent implements OnChanges, OnInit {
   @Input()
-  selection: CdTableSelection;
+  selection: any;
   @Input()
   scopes: Array<string>;
   selectedItem: any;
   @Input()
   scopes: Array<string>;
   selectedItem: any;
@@ -63,8 +62,8 @@ export class RoleDetailsComponent implements OnChanges, OnInit {
   }
 
   ngOnChanges() {
   }
 
   ngOnChanges() {
-    if (this.selection.hasSelection) {
-      this.selectedItem = this.selection.first();
+    if (this.selection) {
+      this.selectedItem = this.selection;
       // Build the scopes/permissions data used by the data table.
       const scopes_permissions: any[] = [];
       _.each(this.scopes, (scope) => {
       // Build the scopes/permissions data used by the data table.
       const scopes_permissions: any[] = [];
       _.each(this.scopes, (scope) => {
index 75331794fc40f1553af0657657e0a91b3caf41fa..6b8a5d73e7b897c1d216bf3c0739c67862bae642 100644 (file)
@@ -5,6 +5,8 @@
           [columns]="columns"
           identifier="name"
           selectionType="single"
           [columns]="columns"
           identifier="name"
           selectionType="single"
+          [hasDetails]="true"
+          (setExpandedRow)="setExpandedRow($event)"
           (fetchData)="getRoles()"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
           (fetchData)="getRoles()"
           (updateSelection)="updateSelection($event)">
   <cd-table-actions class="table-actions"
@@ -13,7 +15,7 @@
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-role-details cdTableDetail
                     [tableActions]="tableActions">
   </cd-table-actions>
   <cd-role-details cdTableDetail
-                   [selection]="selection"
+                   [selection]="expandedRow"
                    [scopes]="scopes">
   </cd-role-details>
 </cd-table>
                    [scopes]="scopes">
   </cd-role-details>
 </cd-table>
index 4b8ac38c70840f492e5b5d2884751061e8087cc6..9b04f771b4433c21b75845a432765840dd728134 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -23,6 +24,7 @@ describe('RoleListComponent', () => {
   configureTestBed({
     declarations: [RoleListComponent, RoleDetailsComponent, UserTabsComponent],
     imports: [
   configureTestBed({
     declarations: [RoleListComponent, RoleDetailsComponent, UserTabsComponent],
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       ToastrModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       ToastrModule.forRoot(),
       TabsModule.forRoot(),
index 8e966cbaa56727818e20ceea49c04cb033c9e5f2..a945b79fae4d9751a9083ae333bfba71ed8c29c1 100644 (file)
@@ -6,6 +6,7 @@ import { forkJoin } from 'rxjs';
 
 import { RoleService } from '../../../shared/api/role.service';
 import { ScopeService } from '../../../shared/api/scope.service';
 
 import { RoleService } from '../../../shared/api/role.service';
 import { ScopeService } from '../../../shared/api/scope.service';
+import { ListWithDetails } from '../../../shared/classes/list-with-details.class';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { FormModalComponent } from '../../../shared/components/form-modal/form-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
 import { CriticalConfirmationModalComponent } from '../../../shared/components/critical-confirmation-modal/critical-confirmation-modal.component';
 import { FormModalComponent } from '../../../shared/components/form-modal/form-modal.component';
 import { ActionLabelsI18n } from '../../../shared/constants/app.constants';
@@ -29,7 +30,7 @@ const BASE_URL = 'user-management/roles';
   styleUrls: ['./role-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
   styleUrls: ['./role-list.component.scss'],
   providers: [{ provide: URLBuilderService, useValue: new URLBuilderService(BASE_URL) }]
 })
-export class RoleListComponent implements OnInit {
+export class RoleListComponent extends ListWithDetails implements OnInit {
   permission: Permission;
   tableActions: CdTableAction[];
   columns: CdTableColumn[];
   permission: Permission;
   tableActions: CdTableAction[];
   columns: CdTableColumn[];
@@ -50,6 +51,7 @@ export class RoleListComponent implements OnInit {
     private urlBuilder: URLBuilderService,
     public actionLabels: ActionLabelsI18n
   ) {
     private urlBuilder: URLBuilderService,
     public actionLabels: ActionLabelsI18n
   ) {
+    super();
     this.permission = this.authStorageService.getPermissions().user;
     const addAction: CdTableAction = {
       permission: 'create',
     this.permission = this.authStorageService.getPermissions().user;
     const addAction: CdTableAction = {
       permission: 'create',
index cee4438001041eea5a623eb41501c7c023f8bdc3..78b12deebe73da1d9f2b42c681dba6ccfa15f948 100644 (file)
@@ -29,6 +29,9 @@
             <span class="invalid-feedback"
                   *ngIf="userForm.showError('username', formDir, 'required')"
                   i18n>This field is required.</span>
             <span class="invalid-feedback"
                   *ngIf="userForm.showError('username', formDir, 'required')"
                   i18n>This field is required.</span>
+            <span class="invalid-feedback"
+                  *ngIf="userForm.showError('username', formDir, 'notUnique')"
+                  i18n>The username already exists.</span>
           </div>
         </div>
 
           </div>
         </div>
 
index 75e14e330361fcee56d3b0ef2aad1a03297723f3..952508ca0d018665b93eb24d4a956cb7c1123735 100644 (file)
@@ -84,7 +84,11 @@ export class UserFormComponent implements OnInit {
     });
     this.userForm = this.formBuilder.group(
       {
     });
     this.userForm = this.formBuilder.group(
       {
-        username: ['', [Validators.required]],
+        username: [
+          '',
+          [Validators.required],
+          [CdValidators.unique(this.userService.validateUserName, this.userService)]
+        ],
         name: [''],
         password: [
           '',
         name: [''],
         password: [
           '',
index 253fc486a3776ff8c74eb716cf987446c41733a3..0f0f5e8a3967bdac2d985e08ad086095a825bdfb 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { TabsModule } from 'ngx-bootstrap/tabs';
@@ -21,6 +22,7 @@ describe('UserListComponent', () => {
 
   configureTestBed({
     imports: [
 
   configureTestBed({
     imports: [
+      BrowserAnimationsModule,
       SharedModule,
       ToastrModule.forRoot(),
       TabsModule.forRoot(),
       SharedModule,
       ToastrModule.forRoot(),
       TabsModule.forRoot(),
index 3ac5f040fb0944f66d14cfac580409a0ae25b550..31a7d7f971c72193be5e7534c9a019dd56f75e64 100644 (file)
@@ -82,6 +82,6 @@ describe('UserPasswordFormComponent', () => {
     });
     request.flush({});
     expect(component.onPasswordChange).toHaveBeenCalled();
     });
     request.flush({});
     expect(component.onPasswordChange).toHaveBeenCalled();
-    expect(router.navigate).toHaveBeenCalledWith(['/logout']);
+    expect(router.navigate).toHaveBeenCalledWith(['/login']);
   });
 });
   });
 });
index e77d9d86bf6fdf2d395196aba3c9fb6853da55bb..cf08a134fb33f6fb3fbe3405afaee41a6106a924 100644 (file)
@@ -116,10 +116,6 @@ export class UserPasswordFormComponent {
    */
   onPasswordChange() {
     this.notificationService.show(NotificationType.success, this.i18n('Updated user password"'));
    */
   onPasswordChange() {
     this.notificationService.show(NotificationType.success, this.i18n('Updated user password"'));
-    // Theoretically it is not necessary to navigate to '/logout' because
-    // the auth token gets invalid after changing the password in the
-    // backend, thus the user would be automatically logged out after the
-    // next periodically API request is executed.
-    this.router.navigate(['/logout']);
+    this.router.navigate(['/login']);
   }
 }
   }
 }
index f223ea0af95e83d3c38f18e15b9b18f6ab976248..389e8e1d5e22a1778a0edba5b760bb44d7f161b7 100644 (file)
@@ -1,4 +1,4 @@
-<div class="login full-height">
+<main class="login full-height">
   <header>
     <nav class="navbar">
       <a class="navbar-brand"></a>
   <header>
     <nav class="navbar">
       <a class="navbar-brand"></a>
   <section>
     <div class="container">
       <div class="row full-height vertical-align">
   <section>
     <div class="container">
       <div class="row full-height vertical-align">
-        <div class="col-sm-6 d-none d-sm-block">
-          <img src="assets/Ceph_Logo_Stacked_RGB_White_120411_fa_256x256.png"
+        <div class="col-sm-12 col-md-6 d-sm-block">
+          <img src="assets/Ceph_Logo_Standard_RGB_White_120411_fa.png"
                alt="Ceph"
                alt="Ceph"
-               class="float-right img-fluid">
-        </div>
-        <div class="col-12 col-sm-6 col-xl-5">
+               class="img-fluid mb-5">
           <router-outlet></router-outlet>
         </div>
       </div>
     </div>
   </section>
           <router-outlet></router-outlet>
         </div>
       </div>
     </div>
   </section>
-</div>
+</main>
index c88a7664bc9cc681151e44d18d2e6bb6cede9e09..7ca0ce5ede04c4644e6088d288277f82f05b659e 100644 (file)
@@ -3,7 +3,9 @@
 ::ng-deep .login {
   color: $color-login-row-text;
   background-color: $color-login-row-bg;
 ::ng-deep .login {
   color: $color-login-row-text;
   background-color: $color-login-row-bg;
-
+  background-image: url('assets/ceph_background.gif');
+  background-position: right bottom;
+  background-repeat: no-repeat;
   header {
     position: absolute;
     width: 100vw;
   header {
     position: absolute;
     width: 100vw;
index 942f8eee5d2b24c3371342d1b3edf2a39dd22db4..46a744f21a75f94c355456d66c536d1a21126546 100644 (file)
@@ -1,5 +1,6 @@
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 
 import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
 
 import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
 import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
@@ -16,6 +17,7 @@ describe('LoginLayoutComponent', () => {
     TestBed.configureTestingModule({
       declarations: [LoginLayoutComponent],
       imports: [
     TestBed.configureTestingModule({
       declarations: [LoginLayoutComponent],
       imports: [
+        BrowserAnimationsModule,
         BsDropdownModule.forRoot(),
         BsDatepickerModule.forRoot(),
         HttpClientTestingModule,
         BsDropdownModule.forRoot(),
         BsDatepickerModule.forRoot(),
         HttpClientTestingModule,
index 1a4fcd915ee6b826832a14453c792c05cd0c9f71..8727b8dcc3ad25b6e1d1a4799cf88591d4ce743a 100644 (file)
@@ -1,60 +1,47 @@
-<div class="modal-header">
-  <button type="button"
-          class="close float-right"
-          aria-label="Close"
-          (click)="modalRef.hide()">
-    <span aria-hidden="true">&times;</span>
-  </button>
-</div>
-<div class="modal-body">
-  <h2>
-    <img src="assets/Ceph_Logo_Stacked_RGB_120411_fa_348x348.png"
+<div class="about-container">
+  <div class="modal-header">
+    <button type="button"
+            class="close float-right"
+            aria-label="Close"
+            (click)="modalRef.hide()">
+      <span aria-hidden="true">&times;</span>
+    </button>
+  </div>
+  <div class="modal-body">
+    <img src="assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png"
          class="ceph-logo"
          alt="{{ projectConstants.organization }}">
          class="ceph-logo"
          alt="{{ projectConstants.organization }}">
-    {{ projectConstants.organization }}
-  </h2>
-  <h3>
-    <strong>{{ projectConstants.projectName }}</strong>
-  </h3>
-  <div class="product-versions">
-    <strong>Version</strong>
+    <h3>
+      <strong>{{ projectConstants.projectName }}</strong>
+    </h3>
+    <div class="product-versions">
+      <strong>Version</strong>
+      <br>
+      {{ versionNumber }}
+      {{ versionHash }}
+      <br>
+      {{ versionName }}
+    </div>
     <br>
     <br>
-    {{ versionNumber }}
-    {{ versionHash }}
-    <br>
-    {{ versionName }}
+    <dl>
+      <dt>Ceph Manager</dt>
+      <dd>{{ hostAddr }}</dd>
+      <dt>User</dt>
+      <dd>{{ modalVariables.user }}</dd>
+      <dt>User Role</dt>
+      <dd>{{ modalVariables.role }}</dd>
+      <dt>Browser</dt>
+      <dd>{{ modalVariables.browserName }}</dd>
+      <dt>Browser Version</dt>
+      <dd>{{ modalVariables.browserVersion }}</dd>
+      <dt>Browser OS</dt>
+      <dd>{{ modalVariables.browserOS }}</dd>
+    </dl>
   </div>
   </div>
-  <br>
-  <ul class="list-unstyled">
-    <li class="row">
-      <strong class="col-6 col-sm-4">Ceph Manager</strong>
-      <span class="col-4 col-sm-4">{{ hostAddr }}</span>
-    </li>
-    <li class="row">
-      <strong class="col-6 col-sm-4">User</strong>
-      <span class="col-4 col-sm-4">{{ modalVariables.user }}</span>
-    </li>
-    <li class="row">
-      <strong class="col-6 col-sm-4">User Role</strong>
-      <span class="col-4 col-sm-4">{{ modalVariables.role }}</span>
-    </li>
-    <li class="row">
-      <strong class="col-6 col-sm-4">Browser</strong>
-      <span class="col-4 col-sm-4">{{ modalVariables.browserName }}</span>
-    </li>
-    <li class="row">
-      <strong class="col-6 col-sm-4">Browser Version</strong>
-      <span class="col-4 col-sm-4">{{ modalVariables.browserVersion }}</span>
-    </li>
-    <li class="row">
-      <strong class="col-6 col-sm-4">Browser OS</strong>
-      <span class="col-4 col-sm-4">{{ modalVariables.browserOS }}</span>
-    </li>
-  </ul>
-</div>
-<div class="modal-footer">
-  <div class="text-left">
-    {{ copyright }}
-    {{ projectConstants.license }}
+  <div class="modal-footer">
+    <div class="text-left">
+      {{ copyright }}
+      {{ projectConstants.license }}
+    </div>
   </div>
 </div>
   </div>
 </div>
index 86f72b557bbc7b09e0dddf1c9677badf3695b860..b845113944c86ae9a8d7bc25fe1bdbd2f3d62e89 100644 (file)
@@ -1,3 +1,11 @@
+.about-container {
+  background-color: #374249;
+  background-image: url('assets/ceph_background.gif');
+  background-position: right bottom;
+  background-repeat: no-repeat;
+  color: #fff;
+  text-shadow: 1px 1px #374249;
+}
 .product-versions {
   margin-top: 30px;
 }
 .product-versions {
   margin-top: 30px;
 }
 .modal-header {
   border-bottom: none;
 }
 .modal-header {
   border-bottom: none;
 }
+.modal-header .close {
+  color: #fff;
+  font-size: 2em;
+}
 .modal-body {
   padding-left: 80px;
   padding-right: 80px;
 }
 .modal-body {
   padding-left: 80px;
   padding-right: 80px;
 }
-.modal-footer {
-  border-top: none;
-}
-h2 {
-  font-size: 3em;
-}
 .ceph-logo {
 .ceph-logo {
-  width: 10%;
-}
-.list-unstyled li {
-  margin-top: 5px;
+  width: 25%;
+  margin-bottom: 30px;
+  object-position: -20px 0;
 }
 .modal-footer {
 }
 .modal-footer {
+  display: block;
+  border-top: none;
   padding: 15px 80px 35px 80px;
 }
   padding: 15px 80px 35px 80px;
 }
-.modal-body {
-  margin-top: 0;
-  padding-top: 0;
-
-  h2 {
-    margin-top: 0;
-  }
-}
index 6a64276137b05e8f9f1942e0cd2124a4f1b66410..52d045ca645f8bcbca2310dea8e1a27e19d35626 100644 (file)
          class="dropdown-item"
          routerLink="/user-management">User management</a>
     </li>
          class="dropdown-item"
          routerLink="/user-management">User management</a>
     </li>
+    <li *ngIf="configOptPermission.read">
+      <a i18n
+         class="dropdown-item"
+         routerLink="/telemetry">Telemetry configuration</a>
+    </li>
   </ul>
 </div>
   </ul>
 </div>
index ccb6ec80f2155197d8cd2732335fda1c073da486..4d08bbe06eb7ac2afc557fbc8cd5851f180b1acf 100644 (file)
@@ -11,10 +11,13 @@ import { AuthStorageService } from '../../../shared/services/auth-storage.servic
 })
 export class AdministrationComponent implements OnInit {
   userPermission: Permission;
 })
 export class AdministrationComponent implements OnInit {
   userPermission: Permission;
+  configOptPermission: Permission;
   icons = Icons;
 
   constructor(private authStorageService: AuthStorageService) {
   icons = Icons;
 
   constructor(private authStorageService: AuthStorageService) {
-    this.userPermission = this.authStorageService.getPermissions().user;
+    const permissions = this.authStorageService.getPermissions();
+    this.userPermission = permissions.user;
+    this.configOptPermission = permissions.configOpt;
   }
 
   ngOnInit() {}
   }
 
   ngOnInit() {}
index 15f9f8969c9fca6306ed41b04c85ed91389d147c..7e2e0a627750d68c701162de6f6ad800aca3c440 100644 (file)
@@ -1,6 +1,5 @@
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
 import { NgModule } from '@angular/core';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterModule } from '@angular/router';
 
 import { CollapseModule } from 'ngx-bootstrap/collapse';
 import { RouterModule } from '@angular/router';
 
 import { CollapseModule } from 'ngx-bootstrap/collapse';
@@ -25,7 +24,6 @@ import { NotificationsComponent } from './notifications/notifications.component'
   imports: [
     CommonModule,
     AuthModule,
   imports: [
     CommonModule,
     AuthModule,
-    BrowserAnimationsModule,
     CollapseModule.forRoot(),
     BsDropdownModule.forRoot(),
     PopoverModule.forRoot(),
     CollapseModule.forRoot(),
     BsDropdownModule.forRoot(),
     PopoverModule.forRoot(),
index d05e2669925f551134b09ff869e004834db45cd9..092770d044b1e2db6c7b54e33cc88e34c4ade727 100644 (file)
         <li routerLinkActive="active"
             class="tc_submenuitem tc_submenuitem_monitoring"
             *ngIf="permissions.prometheus.read">
         <li routerLinkActive="active"
             class="tc_submenuitem tc_submenuitem_monitoring"
             *ngIf="permissions.prometheus.read">
-          <a i18n
-             routerLink="/monitoring">Monitoring</a>
+          <a routerLink="/monitoring">
+            <ng-container i18n>Monitoring</ng-container>
+            <small *ngIf="prometheusAlertService.alerts.length > 0"
+                   class="badge badge-danger">{{ prometheusAlertService.alerts.length }}</small>
+          </a>
         </li>
       </ul>
     </li>
         </li>
       </ul>
     </li>
index b1d8e0e25d8de95111d547af1fce3db07e495c10..0000dd3337edefed0ed907a6e1f896bdf107ef7c 100644 (file)
@@ -190,6 +190,10 @@ $sidebar-width: 200px;
           background: $color-primary;
         }
 
           background: $color-primary;
         }
 
+        & > .badge {
+          margin-left: 5px;
+        }
+
         text-decoration: none;
       }
 
         text-decoration: none;
       }
 
index fe4dec40e2b982f5cbfd45734f3811df6c61a93b..8fa84bf65ae7dc65a65bdf77ff2b3d131925ed07 100644 (file)
@@ -12,6 +12,7 @@ import {
   FeatureTogglesMap,
   FeatureTogglesService
 } from '../../../shared/services/feature-toggles.service';
   FeatureTogglesMap,
   FeatureTogglesService
 } from '../../../shared/services/feature-toggles.service';
+import { PrometheusAlertService } from '../../../shared/services/prometheus-alert.service';
 import { SummaryService } from '../../../shared/services/summary.service';
 import { NavigationModule } from '../navigation.module';
 import { NavigationComponent } from './navigation.component';
 import { SummaryService } from '../../../shared/services/summary.service';
 import { NavigationModule } from '../navigation.module';
 import { NavigationComponent } from './navigation.component';
@@ -61,7 +62,8 @@ describe('NavigationComponent', () => {
           }
         },
         { provide: SummaryService, useValue: { subscribe: jest.fn() } },
           }
         },
         { provide: SummaryService, useValue: { subscribe: jest.fn() } },
-        { provide: FeatureTogglesService, useValue: { get: jest.fn() } }
+        { provide: FeatureTogglesService, useValue: { get: jest.fn() } },
+        { provide: PrometheusAlertService, useValue: { alerts: [] } }
       ]
     });
   });
       ]
     });
   });
index b8310fb7351f70e39a95713abfc65a9abb775657..e21c9eeb0887c1c5304aca834eb8a8724366760f 100644 (file)
@@ -9,6 +9,7 @@ import {
   FeatureTogglesMap$,
   FeatureTogglesService
 } from '../../../shared/services/feature-toggles.service';
   FeatureTogglesMap$,
   FeatureTogglesService
 } from '../../../shared/services/feature-toggles.service';
+import { PrometheusAlertService } from '../../../shared/services/prometheus-alert.service';
 import { SummaryService } from '../../../shared/services/summary.service';
 
 @Component({
 import { SummaryService } from '../../../shared/services/summary.service';
 
 @Component({
@@ -36,7 +37,8 @@ export class NavigationComponent implements OnInit, OnDestroy {
   constructor(
     private authStorageService: AuthStorageService,
     private summaryService: SummaryService,
   constructor(
     private authStorageService: AuthStorageService,
     private summaryService: SummaryService,
-    private featureToggles: FeatureTogglesService
+    private featureToggles: FeatureTogglesService,
+    public prometheusAlertService: PrometheusAlertService
   ) {
     this.permissions = this.authStorageService.getPermissions();
     this.enabledFeature$ = this.featureToggles.get();
   ) {
     this.permissions = this.authStorageService.getPermissions();
     this.enabledFeature$ = this.featureToggles.get();
index 6a2e63d7b41926b5efb8a21a5b21732105654209..1dffaf04a77b81de9fd6e8df5933294ef3ea0348 100644 (file)
@@ -11,7 +11,7 @@ describe('AuthService', () => {
   let service: AuthService;
   let httpTesting: HttpTestingController;
 
   let service: AuthService;
   let httpTesting: HttpTestingController;
 
-  const routes: Routes = [{ path: 'logout', children: [] }];
+  const routes: Routes = [{ path: 'login', children: [] }];
 
   configureTestBed({
     providers: [AuthService, AuthStorageService],
 
   configureTestBed({
     providers: [AuthService, AuthStorageService],
index c6229377f90654525b2121115c888b9b5fb8a247..c8ac216f78b91ce36af631296c201df6cdfbe44d 100644 (file)
@@ -41,7 +41,7 @@ export class AuthService {
 
   logout(callback: Function = null) {
     return this.http.post('api/auth/logout', null).subscribe((resp: any) => {
 
   logout(callback: Function = null) {
     return this.http.post('api/auth/logout', null).subscribe((resp: any) => {
-      this.router.navigate(['/logout'], { skipLocationChange: true });
+      this.router.navigate(['/login'], { skipLocationChange: true });
       this.authStorageService.remove();
       if (callback) {
         callback();
       this.authStorageService.remove();
       if (callback) {
         callback();
index 8f4df0bc0003243c186f59acb47d4d3da1ac1ca2..a059c2f918840ce8ff65ba810cc400655ab58deb 100644 (file)
@@ -26,9 +26,15 @@ describe('RgwSiteService', () => {
     expect(service).toBeTruthy();
   });
 
     expect(service).toBeTruthy();
   });
 
-  it('should call getPlacementTargets', () => {
-    service.getPlacementTargets().subscribe();
-    const req = httpTesting.expectOne('api/rgw/site?query=placement-targets');
+  it('should contain site endpoint in GET request', () => {
+    service.get().subscribe();
+    const req = httpTesting.expectOne(service['url']);
     expect(req.request.method).toBe('GET');
   });
     expect(req.request.method).toBe('GET');
   });
+
+  it('should add query param in GET request', () => {
+    const query = 'placement-targets';
+    service.get(query).subscribe();
+    httpTesting.expectOne(`${service['url']}?query=placement-targets`);
+  });
 });
 });
index 3d76b3f8d494c70e0b70f17d78d0f60963794624..a0bd328c7044396121342c52c6a9f3ca7cd24c80 100644 (file)
@@ -13,9 +13,11 @@ export class RgwSiteService {
 
   constructor(private http: HttpClient) {}
 
 
   constructor(private http: HttpClient) {}
 
-  getPlacementTargets() {
+  get(query?: string) {
     let params = new HttpParams();
     let params = new HttpParams();
-    params = params.append('query', 'placement-targets');
+    if (query) {
+      params = params.append('query', query);
+    }
 
     return this.http.get(this.url, { params: params });
   }
 
     return this.http.get(this.url, { params: params });
   }
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.spec.ts
new file mode 100644 (file)
index 0000000..d4d02a9
--- /dev/null
@@ -0,0 +1,58 @@
+import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
+import { TestBed } from '@angular/core/testing';
+
+import { configureTestBed } from '../../../testing/unit-test-helper';
+import { TelemetryService } from './telemetry.service';
+
+describe('TelemetryService', () => {
+  let service: TelemetryService;
+  let httpTesting: HttpTestingController;
+
+  configureTestBed({
+    imports: [HttpClientTestingModule],
+    providers: [TelemetryService]
+  });
+
+  beforeEach(() => {
+    service = TestBed.get(TelemetryService);
+    httpTesting = TestBed.get(HttpTestingController);
+  });
+
+  afterEach(() => {
+    httpTesting.verify();
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+
+  it('should call getReport', () => {
+    service.getReport().subscribe();
+    const req = httpTesting.expectOne('api/telemetry/report');
+    expect(req.request.method).toBe('GET');
+  });
+
+  it('should call enable to enable module', () => {
+    service.enable(true).subscribe();
+    const req = httpTesting.expectOne('api/telemetry');
+    expect(req.request.method).toBe('PUT');
+    expect(req.request.body.enable).toBe(true);
+    expect(req.request.body.license_name).toBe('sharing-1-0');
+  });
+
+  it('should call enable to disable module', () => {
+    service.enable(false).subscribe();
+    const req = httpTesting.expectOne('api/telemetry');
+    expect(req.request.method).toBe('PUT');
+    expect(req.request.body.enable).toBe(false);
+    expect(req.request.body.license_name).toBeUndefined();
+  });
+
+  it('should call enable to enable module by default', () => {
+    service.enable().subscribe();
+    const req = httpTesting.expectOne('api/telemetry');
+    expect(req.request.method).toBe('PUT');
+    expect(req.request.body.enable).toBe(true);
+    expect(req.request.body.license_name).toBe('sharing-1-0');
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/api/telemetry.service.ts
new file mode 100644 (file)
index 0000000..60365c1
--- /dev/null
@@ -0,0 +1,25 @@
+import { HttpClient } from '@angular/common/http';
+import { Injectable } from '@angular/core';
+
+import { ApiModule } from './api.module';
+
+@Injectable({
+  providedIn: ApiModule
+})
+export class TelemetryService {
+  private url = 'api/telemetry';
+
+  constructor(private http: HttpClient) {}
+
+  getReport() {
+    return this.http.get(`${this.url}/report`);
+  }
+
+  enable(enable: boolean = true) {
+    const body = { enable: enable };
+    if (enable) {
+      body['license_name'] = 'sharing-1-0';
+    }
+    return this.http.put(`${this.url}`, body);
+  }
+}
index 05c53de0cca2217b155a50ca61d3c768e2b94dc1..c0b7acdb6de5ffb2da6fa10f7c36559ee89958bc 100644 (file)
@@ -1,5 +1,7 @@
 import { HttpClient, HttpParams } from '@angular/common/http';
 import { Injectable } from '@angular/core';
 import { HttpClient, HttpParams } from '@angular/common/http';
 import { Injectable } from '@angular/core';
+import { Observable, of as observableOf } from 'rxjs';
+import { catchError, mapTo } from 'rxjs/operators';
 
 import { UserFormModel } from '../../core/auth/user-form/user-form.model';
 import { ApiModule } from './api.module';
 
 import { UserFormModel } from '../../core/auth/user-form/user-form.model';
 import { ApiModule } from './api.module';
@@ -40,6 +42,16 @@ export class UserService {
     });
   }
 
     });
   }
 
+  validateUserName(user_name: string): Observable<boolean> {
+    return this.get(user_name).pipe(
+      mapTo(true),
+      catchError((error) => {
+        error.preventDefault();
+        return observableOf(false);
+      })
+    );
+  }
+
   validatePassword(password: string, username: string = null, oldPassword: string = null) {
     let params = new HttpParams();
     params = params.append('password', password);
   validatePassword(password: string, username: string = null, oldPassword: string = null) {
     let params = new HttpParams();
     params = params.append('password', password);
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.spec.ts
new file mode 100644 (file)
index 0000000..f9a675b
--- /dev/null
@@ -0,0 +1,207 @@
+import { FormControl } from '@angular/forms';
+
+import { configureTestBed } from '../../../testing/unit-test-helper';
+import { CrushNode } from '../models/crush-node';
+import { CrushRuleConfig } from '../models/crush-rule';
+import { CrushNodeSelectionClass } from './crush.node.selection.class';
+
+describe('CrushNodeSelectionService', () => {
+  let service: CrushNodeSelectionClass;
+
+  let controls: {
+    root: FormControl;
+    failure: FormControl;
+    device: FormControl;
+  };
+
+  // Object contains mock functions
+  const mock = {
+    node: (
+      name: string,
+      id: number,
+      type: string,
+      type_id: number,
+      children?: number[],
+      device_class?: string
+    ): CrushNode => {
+      return { name, type, type_id, id, children, device_class };
+    },
+    rule: (
+      name: string,
+      root: string,
+      failure_domain: string,
+      device_class?: string
+    ): CrushRuleConfig => ({
+      name,
+      root,
+      failure_domain,
+      device_class
+    }),
+    nodes: [] as CrushNode[]
+  };
+
+  /**
+   * Create the following test crush map:
+   * > default
+   * --> ssd-host
+   * ----> 3x osd with ssd
+   * --> mix-host
+   * ----> hdd-rack
+   * ------> 2x osd-rack with hdd
+   * ----> ssd-rack
+   * ------> 2x osd-rack with ssd
+   */
+  mock.nodes = [
+    // Root node
+    mock.node('default', -1, 'root', 11, [-2, -3]),
+    // SSD host
+    mock.node('ssd-host', -2, 'host', 1, [1, 0, 2]),
+    mock.node('osd.0', 0, 'osd', 0, undefined, 'ssd'),
+    mock.node('osd.1', 1, 'osd', 0, undefined, 'ssd'),
+    mock.node('osd.2', 2, 'osd', 0, undefined, 'ssd'),
+    // SSD and HDD mixed devices host
+    mock.node('mix-host', -3, 'host', 1, [-4, -5]),
+    // HDD rack
+    mock.node('hdd-rack', -4, 'rack', 3, [3, 4]),
+    mock.node('osd2.0', 3, 'osd-rack', 0, undefined, 'hdd'),
+    mock.node('osd2.1', 4, 'osd-rack', 0, undefined, 'hdd'),
+    // SSD rack
+    mock.node('ssd-rack', -5, 'rack', 3, [5, 6]),
+    mock.node('osd2.0', 5, 'osd-rack', 0, undefined, 'ssd'),
+    mock.node('osd2.1', 6, 'osd-rack', 0, undefined, 'ssd')
+  ];
+
+  // Object contains functions to get something
+  const get = {
+    nodeByName: (name: string): CrushNode => mock.nodes.find((node) => node.name === name),
+    nodesByNames: (names: string[]): CrushNode[] => names.map(get.nodeByName)
+  };
+
+  // Expects that are used frequently
+  const assert = {
+    failureDomains: (nodes: CrushNode[], types: string[]) => {
+      const expectation = {};
+      types.forEach((type) => (expectation[type] = nodes.filter((node) => node.type === type)));
+      const keys = service.failureDomainKeys;
+      expect(keys).toEqual(types);
+      keys.forEach((key) => {
+        expect(service.failureDomains[key].length).toBe(expectation[key].length);
+      });
+    },
+    formFieldValues: (root: CrushNode, failureDomain: string, device: string) => {
+      expect(controls.root.value).toEqual(root);
+      expect(controls.failure.value).toBe(failureDomain);
+      expect(controls.device.value).toBe(device);
+    },
+    valuesOnRootChange: (
+      rootName: string,
+      expectedFailureDomain: string,
+      expectedDevice: string
+    ) => {
+      const node = get.nodeByName(rootName);
+      controls.root.setValue(node);
+      assert.formFieldValues(node, expectedFailureDomain, expectedDevice);
+    }
+  };
+
+  configureTestBed({
+    providers: [CrushNodeSelectionClass]
+  });
+
+  beforeEach(() => {
+    controls = {
+      root: new FormControl(null),
+      failure: new FormControl(''),
+      device: new FormControl('')
+    };
+    // Normally this should be extended by the class using it
+    service = new CrushNodeSelectionClass();
+    // Therefore to get it working correctly use "this" instead of "service"
+    service.initCrushNodeSelection(mock.nodes, controls.root, controls.failure, controls.device);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+    expect(mock.nodes.length).toBe(12);
+  });
+
+  describe('lists', () => {
+    afterEach(() => {
+      // The available buckets should not change
+      expect(service.buckets).toEqual(
+        get.nodesByNames(['default', 'hdd-rack', 'mix-host', 'ssd-host', 'ssd-rack'])
+      );
+    });
+
+    it('has the following lists after init', () => {
+      assert.failureDomains(mock.nodes, ['host', 'osd', 'osd-rack', 'rack']); // Not root as root only exist once
+      expect(service.devices).toEqual(['hdd', 'ssd']);
+    });
+
+    it('has the following lists after selection of ssd-host', () => {
+      controls.root.setValue(get.nodeByName('ssd-host'));
+      assert.failureDomains(get.nodesByNames(['osd.0', 'osd.1', 'osd.2']), ['osd']); // Not host as it only exist once
+      expect(service.devices).toEqual(['ssd']);
+    });
+
+    it('has the following lists after selection of mix-host', () => {
+      controls.root.setValue(get.nodeByName('mix-host'));
+      expect(service.devices).toEqual(['hdd', 'ssd']);
+      assert.failureDomains(
+        get.nodesByNames(['hdd-rack', 'ssd-rack', 'osd2.0', 'osd2.1', 'osd2.0', 'osd2.1']),
+        ['osd-rack', 'rack']
+      );
+    });
+  });
+
+  describe('selection', () => {
+    it('selects the first root after init automatically', () => {
+      assert.formFieldValues(get.nodeByName('default'), 'osd-rack', '');
+    });
+
+    it('should select all values automatically by selecting "ssd-host" as root', () => {
+      assert.valuesOnRootChange('ssd-host', 'osd', 'ssd');
+    });
+
+    it('selects automatically the most common failure domain', () => {
+      // Select mix-host as mix-host has multiple failure domains (osd-rack and rack)
+      assert.valuesOnRootChange('mix-host', 'osd-rack', '');
+    });
+
+    it('should override automatic selections', () => {
+      assert.formFieldValues(get.nodeByName('default'), 'osd-rack', '');
+      assert.valuesOnRootChange('ssd-host', 'osd', 'ssd');
+      assert.valuesOnRootChange('mix-host', 'osd-rack', '');
+    });
+
+    it('should not override manual selections if possible', () => {
+      controls.failure.setValue('rack');
+      controls.failure.markAsDirty();
+      controls.device.setValue('ssd');
+      controls.device.markAsDirty();
+      assert.valuesOnRootChange('mix-host', 'rack', 'ssd');
+    });
+
+    it('should preselect device by domain selection', () => {
+      controls.failure.setValue('osd');
+      assert.formFieldValues(get.nodeByName('default'), 'osd', 'ssd');
+    });
+  });
+
+  describe('get available OSDs count', () => {
+    it('should have 4 available OSDs with the default selection', () => {
+      expect(service.deviceCount).toBe(4);
+    });
+
+    it('should reduce available OSDs to 2 if a device type is set', () => {
+      controls.device.setValue('ssd');
+      controls.device.markAsDirty();
+      expect(service.deviceCount).toBe(2);
+    });
+
+    it('should show 3 OSDs when selecting "ssd-host"', () => {
+      assert.valuesOnRootChange('ssd-host', 'osd', 'ssd');
+      expect(service.deviceCount).toBe(3);
+    });
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/crush.node.selection.class.ts
new file mode 100644 (file)
index 0000000..7cc11df
--- /dev/null
@@ -0,0 +1,140 @@
+import { AbstractControl } from '@angular/forms';
+
+import * as _ from 'lodash';
+
+import { CrushNode } from '../models/crush-node';
+
+export class CrushNodeSelectionClass {
+  private nodes: CrushNode[] = [];
+  private easyNodes: { [id: number]: CrushNode } = {};
+  private allDevices: string[] = [];
+  private controls: {
+    root: AbstractControl;
+    failure: AbstractControl;
+    device: AbstractControl;
+  };
+
+  buckets: CrushNode[] = [];
+  failureDomains: { [type: string]: CrushNode[] } = {};
+  failureDomainKeys: string[] = [];
+  devices: string[] = [];
+  deviceCount = 0;
+
+  initCrushNodeSelection(
+    nodes: CrushNode[],
+    rootControl: AbstractControl,
+    failureControl: AbstractControl,
+    deviceControl: AbstractControl
+  ) {
+    this.nodes = nodes;
+    nodes.forEach((node) => {
+      this.easyNodes[node.id] = node;
+    });
+    this.buckets = _.sortBy(
+      nodes.filter((n) => n.children),
+      'name'
+    );
+    this.controls = {
+      root: rootControl,
+      failure: failureControl,
+      device: deviceControl
+    };
+    this.preSelectRoot();
+    this.controls.root.valueChanges.subscribe(() => this.onRootChange());
+    this.controls.failure.valueChanges.subscribe(() => this.onFailureDomainChange());
+    this.controls.device.valueChanges.subscribe(() => this.onDeviceChange());
+  }
+
+  private preSelectRoot() {
+    const rootNode = this.nodes.find((node) => node.type === 'root');
+    this.silentSet(this.controls.root, rootNode);
+    this.onRootChange();
+  }
+
+  private silentSet(control: AbstractControl, value: any) {
+    control.setValue(value, { emitEvent: false });
+  }
+
+  private onRootChange() {
+    const nodes = this.getSubNodes(this.controls.root.value);
+    const domains = {};
+    nodes.forEach((node) => {
+      if (!domains[node.type]) {
+        domains[node.type] = [];
+      }
+      domains[node.type].push(node);
+    });
+    Object.keys(domains).forEach((type) => {
+      if (domains[type].length <= 1) {
+        delete domains[type];
+      }
+    });
+    this.failureDomains = domains;
+    this.failureDomainKeys = Object.keys(domains).sort();
+    this.updateFailureDomain();
+  }
+
+  private getSubNodes(node: CrushNode): CrushNode[] {
+    let subNodes = [node]; // Includes parent node
+    if (!node.children) {
+      return subNodes;
+    }
+    node.children.forEach((id) => {
+      const childNode = this.easyNodes[id];
+      subNodes = subNodes.concat(this.getSubNodes(childNode));
+    });
+    return subNodes;
+  }
+
+  private updateFailureDomain() {
+    let failureDomain = this.getIncludedCustomValue(
+      this.controls.failure,
+      Object.keys(this.failureDomains)
+    );
+    if (failureDomain === '') {
+      failureDomain = this.setMostCommonDomain(this.controls.failure);
+    }
+    this.updateDevices(failureDomain);
+  }
+
+  private getIncludedCustomValue(control: AbstractControl, includedIn: string[]) {
+    return control.dirty && includedIn.includes(control.value) ? control.value : '';
+  }
+
+  private setMostCommonDomain(failureControl: AbstractControl): string {
+    let winner = { n: 0, type: '' };
+    Object.keys(this.failureDomains).forEach((type) => {
+      const n = this.failureDomains[type].length;
+      if (winner.n < n) {
+        winner = { n, type };
+      }
+    });
+    this.silentSet(failureControl, winner.type);
+    return winner.type;
+  }
+
+  private onFailureDomainChange() {
+    this.updateDevices();
+  }
+
+  private updateDevices(failureDomain: string = this.controls.failure.value) {
+    const subNodes = _.flatten(
+      this.failureDomains[failureDomain].map((node) => this.getSubNodes(node))
+    );
+    this.allDevices = subNodes.filter((n) => n.device_class).map((n) => n.device_class);
+    this.devices = _.uniq(this.allDevices).sort();
+    const device =
+      this.devices.length === 1
+        ? this.devices[0]
+        : this.getIncludedCustomValue(this.controls.device, this.devices);
+    this.silentSet(this.controls.device, device);
+    this.onDeviceChange(device);
+  }
+
+  private onDeviceChange(deviceType: string = this.controls.device.value) {
+    this.deviceCount =
+      deviceType === ''
+        ? this.allDevices.length
+        : this.allDevices.filter((type) => type === deviceType).length;
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/list-with-details.class.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/classes/list-with-details.class.ts
new file mode 100644 (file)
index 0000000..5857426
--- /dev/null
@@ -0,0 +1,7 @@
+export class ListWithDetails {
+  expandedRow: any;
+
+  setExpandedRow(expandedRow: any) {
+    this.expandedRow = expandedRow;
+  }
+}
index 3eb95c9bbb49312f614e8c97222ff5831da5eb18..e3a09dba73a6ed15cc5ac5082e2c66e557767860 100644 (file)
@@ -1,90 +1,90 @@
-import { ComponentFixture, TestBed } from '@angular/core/testing';\r
-import { FormsModule } from '@angular/forms';\r
-\r
-import { listLocales } from 'ngx-bootstrap/chronos';\r
-import { BsLocaleService } from 'ngx-bootstrap/datepicker';\r
-\r
-import { HttpClientTestingModule } from '@angular/common/http/testing';\r
-import { configureTestBed } from '../../../../testing/unit-test-helper';\r
-import { LanguageSelectorComponent } from './language-selector.component';\r
-\r
-describe('LanguageSelectorComponent', () => {\r
-  let component: LanguageSelectorComponent;\r
-  let fixture: ComponentFixture<LanguageSelectorComponent>;\r
-\r
-  configureTestBed({\r
-    declarations: [LanguageSelectorComponent],\r
-    providers: [BsLocaleService],\r
-    imports: [FormsModule, HttpClientTestingModule]\r
-  });\r
-\r
-  beforeEach(() => {\r
-    fixture = TestBed.createComponent(LanguageSelectorComponent);\r
-    component = fixture.componentInstance;\r
-    fixture.detectChanges();\r
-    spyOn(component, 'reloadWindow').and.callFake(() => component.ngOnInit());\r
-  });\r
-\r
-  it('should create', () => {\r
-    expect(component).toBeTruthy();\r
-  });\r
-\r
-  it('should read current language', () => {\r
-    expect(component.selectedLanguage).toBe('en-US');\r
-    expect(listLocales()).toEqual([]);\r
-  });\r
-\r
-  const expectLanguageChange = (lang: string) => {\r
-    component.changeLanguage(lang);\r
-    const cookie = document.cookie.split(';').filter((item) => item.includes(`cd-lang=${lang}`));\r
-    expect(cookie.length).toBe(1);\r
-  };\r
-\r
-  it('should change to cs', () => {\r
-    expectLanguageChange('cs');\r
-  });\r
-\r
-  it('should change to de-DE', () => {\r
-    expectLanguageChange('de-DE');\r
-  });\r
-\r
-  it('should change to es-ES', () => {\r
-    expectLanguageChange('es-ES');\r
-  });\r
-\r
-  it('should change to fr-FR', () => {\r
-    expectLanguageChange('fr-FR');\r
-  });\r
-\r
-  it('should change to id-ID', () => {\r
-    expectLanguageChange('id-ID');\r
-  });\r
-\r
-  it('should change to it-IT', () => {\r
-    expectLanguageChange('it-IT');\r
-  });\r
-\r
-  it('should change to ja-JP', () => {\r
-    expectLanguageChange('ja-JP');\r
-  });\r
-\r
-  it('should change to ko-KR', () => {\r
-    expectLanguageChange('ko-KR');\r
-  });\r
-\r
-  it('should change to pl-PL', () => {\r
-    expectLanguageChange('pl-PL');\r
-  });\r
-\r
-  it('should change to pt-BR', () => {\r
-    expectLanguageChange('pt-BR');\r
-  });\r
-\r
-  it('should change to zh-CN', () => {\r
-    expectLanguageChange('zh-CN');\r
-  });\r
-\r
-  it('should change to zh-TW', () => {\r
-    expectLanguageChange('zh-TW');\r
-  });\r
-});\r
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { FormsModule } from '@angular/forms';
+
+import { listLocales } from 'ngx-bootstrap/chronos';
+import { BsLocaleService } from 'ngx-bootstrap/datepicker';
+
+import { HttpClientTestingModule } from '@angular/common/http/testing';
+import { configureTestBed } from '../../../../testing/unit-test-helper';
+import { LanguageSelectorComponent } from './language-selector.component';
+
+describe('LanguageSelectorComponent', () => {
+  let component: LanguageSelectorComponent;
+  let fixture: ComponentFixture<LanguageSelectorComponent>;
+
+  configureTestBed({
+    declarations: [LanguageSelectorComponent],
+    providers: [BsLocaleService],
+    imports: [FormsModule, HttpClientTestingModule]
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(LanguageSelectorComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+    spyOn(component, 'reloadWindow').and.callFake(() => component.ngOnInit());
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+
+  it('should read current language', () => {
+    expect(component.selectedLanguage).toBe('en-US');
+    expect(listLocales()).toEqual([]);
+  });
+
+  const expectLanguageChange = (lang: string) => {
+    component.changeLanguage(lang);
+    const cookie = document.cookie.split(';').filter((item) => item.includes(`cd-lang=${lang}`));
+    expect(cookie.length).toBe(1);
+  };
+
+  it('should change to cs', () => {
+    expectLanguageChange('cs');
+  });
+
+  it('should change to de-DE', () => {
+    expectLanguageChange('de-DE');
+  });
+
+  it('should change to es-ES', () => {
+    expectLanguageChange('es-ES');
+  });
+
+  it('should change to fr-FR', () => {
+    expectLanguageChange('fr-FR');
+  });
+
+  it('should change to id-ID', () => {
+    expectLanguageChange('id-ID');
+  });
+
+  it('should change to it-IT', () => {
+    expectLanguageChange('it-IT');
+  });
+
+  it('should change to ja-JP', () => {
+    expectLanguageChange('ja-JP');
+  });
+
+  it('should change to ko-KR', () => {
+    expectLanguageChange('ko-KR');
+  });
+
+  it('should change to pl-PL', () => {
+    expectLanguageChange('pl-PL');
+  });
+
+  it('should change to pt-BR', () => {
+    expectLanguageChange('pt-BR');
+  });
+
+  it('should change to zh-CN', () => {
+    expectLanguageChange('zh-CN');
+  });
+
+  it('should change to zh-TW', () => {
+    expectLanguageChange('zh-TW');
+  });
+});
index b696405cafe0613da60d3ca2065e99e3e0517418..966f9661b9506de41cecb8ebfa7f68f4421e020c 100644 (file)
@@ -1,59 +1,59 @@
-import { Component, Input, OnInit } from '@angular/core';\r
-\r
-import * as _ from 'lodash';\r
-import { defineLocale } from 'ngx-bootstrap/chronos';\r
-import { BsLocaleService } from 'ngx-bootstrap/datepicker';\r
-\r
-import { LanguageService } from '../../services/language.service';\r
-import { languageBootstrapMapping, SupportedLanguages } from './supported-languages.enum';\r
-\r
-@Component({\r
-  selector: 'cd-language-selector',\r
-  templateUrl: './language-selector.component.html',\r
-  styleUrls: ['./language-selector.component.scss']\r
-})\r
-export class LanguageSelectorComponent implements OnInit {\r
-  @Input()\r
-  isDropdown = true;\r
-\r
-  supportedLanguages: Record<string, any> = SupportedLanguages;\r
-  selectedLanguage: string;\r
-\r
-  constructor(private localeService: BsLocaleService, private languageService: LanguageService) {}\r
-\r
-  ngOnInit() {\r
-    this.selectedLanguage = this.languageService.getLocale();\r
-    this.defineUsedLanguage();\r
-\r
-    this.languageService.getLanguages().subscribe((langs) => {\r
-      this.supportedLanguages = _.pick(this.supportedLanguages, langs) as Object;\r
-    });\r
-  }\r
-\r
-  /**\r
-   * Sets ngx-bootstrap local based on the current language selection\r
-   *\r
-   * ngx-bootstrap locals documentation:\r
-   * https://valor-software.com/ngx-bootstrap/#/datepicker#locales\r
-   */\r
-  private defineUsedLanguage() {\r
-    const lang = this.selectedLanguage.slice(0, 2);\r
-    if (lang in languageBootstrapMapping) {\r
-      defineLocale(lang, languageBootstrapMapping[lang]);\r
-      this.localeService.use(lang);\r
-    }\r
-  }\r
-\r
-  /**\r
-   * Jest is being more restricted regarding spying on the reload method.\r
-   * This will allow us to spyOn this method instead.\r
-   */\r
-  reloadWindow() {\r
-    window.location.reload();\r
-  }\r
-\r
-  changeLanguage(lang: string) {\r
-    this.languageService.setLocale(lang);\r
-    this.reloadWindow();\r
-  }\r
-}\r
+import { Component, Input, OnInit } from '@angular/core';
+
+import * as _ from 'lodash';
+import { defineLocale } from 'ngx-bootstrap/chronos';
+import { BsLocaleService } from 'ngx-bootstrap/datepicker';
+
+import { LanguageService } from '../../services/language.service';
+import { languageBootstrapMapping, SupportedLanguages } from './supported-languages.enum';
+
+@Component({
+  selector: 'cd-language-selector',
+  templateUrl: './language-selector.component.html',
+  styleUrls: ['./language-selector.component.scss']
+})
+export class LanguageSelectorComponent implements OnInit {
+  @Input()
+  isDropdown = true;
+
+  supportedLanguages: Record<string, any> = SupportedLanguages;
+  selectedLanguage: string;
+
+  constructor(private localeService: BsLocaleService, private languageService: LanguageService) {}
+
+  ngOnInit() {
+    this.selectedLanguage = this.languageService.getLocale();
+    this.defineUsedLanguage();
+
+    this.languageService.getLanguages().subscribe((langs) => {
+      this.supportedLanguages = _.pick(this.supportedLanguages, langs) as Object;
+    });
+  }
+
+  /**
+   * Sets ngx-bootstrap local based on the current language selection
+   *
+   * ngx-bootstrap locals documentation:
+   * https://valor-software.com/ngx-bootstrap/#/datepicker#locales
+   */
+  private defineUsedLanguage() {
+    const lang = this.selectedLanguage.slice(0, 2);
+    if (lang in languageBootstrapMapping) {
+      defineLocale(lang, languageBootstrapMapping[lang]);
+      this.localeService.use(lang);
+    }
+  }
+
+  /**
+   * Jest is being more restricted regarding spying on the reload method.
+   * This will allow us to spyOn this method instead.
+   */
+  reloadWindow() {
+    window.location.reload();
+  }
+
+  changeLanguage(lang: string) {
+    this.languageService.setLocale(lang);
+    this.reloadWindow();
+  }
+}
index 45e8267375166f71636bca3e8af787563501cf07..1538512f7e68b1e1b5335c98a58e251f18ae4218 100644 (file)
@@ -258,7 +258,7 @@ describe('SelectComponent', () => {
     });
   });
 
     });
   });
 
-  describe('if the selection limit is reached', function() {
+  describe('if the selection limit is reached', function () {
     beforeEach(() => {
       component.selectionLimit = 2;
       component.triggerSelection(component.options[0]);
     beforeEach(() => {
       component.selectionLimit = 2;
       component.triggerSelection(component.options[0]);
index 58ba9a31abd148c54b6038c33dfd8b6a16f32a3c..e3c3492a403ea3d21017fd3a717b959a1338ab14 100644 (file)
@@ -1,10 +1,4 @@
-@import '~bootstrap/scss/bootstrap-grid';
-
 .dropdown-menu > .disabled > a {
   pointer-events: auto;
   cursor: default !important;
 }
 .dropdown-menu > .disabled > a {
   pointer-events: auto;
   cursor: default !important;
 }
-
-::ng-deep .btn-toolbar .btn-group {
-  @extend .mr-1;
-}
index 51c5363e8830a717d891af89e11a3c91f8ae4236..131977cceadb49b49d2ea0d05f9a249a38344e8f 100644 (file)
         </a>
         <ul *dropdownMenu
             class="dropdown-menu px-3">
         </a>
         <ul *dropdownMenu
             class="dropdown-menu px-3">
-          <li *ngFor="let column of columns">
-
-            <div class="custom-control custom-checkbox">
-              <input class="custom-control-input"
-                     type="checkbox"
-                     (change)="toggleColumn($event)"
-                     [name]="column.prop"
-                     [id]="column.prop"
-                     [checked]="!column.isHidden">
-              <label class="custom-control-label"
-                     [for]="column.prop">{{ column.name }}</label>
-            </div>
-          </li>
+          <ng-container *ngFor="let column of columns">
+            <li *ngIf="column.name !== ''" >
+              <div class="custom-control custom-checkbox">
+                <input class="custom-control-input"
+                       type="checkbox"
+                       (change)="toggleColumn($event)"
+                       [name]="column.prop"
+                       [id]="column.prop"
+                       [checked]="!column.isHidden">
+                <label class="custom-control-label"
+                       [for]="column.prop">{{ column.name }}</label>
+              </div>
+            </li>
+          </ng-container>
         </ul>
       </div>
     </div>
         </ul>
       </div>
     </div>
                  [loadingIndicator]="loadingIndicator"
                  [rowIdentity]="rowIdentity()"
                  [rowHeight]="'auto'">
                  [loadingIndicator]="loadingIndicator"
                  [rowIdentity]="rowIdentity()"
                  [rowHeight]="'auto'">
+
+    <!-- Row Detail Template -->
+    <ngx-datatable-row-detail rowHeight="auto"
+                              #detailRow>
+      <ng-template let-row="row"
+                   let-expanded="expanded"
+                   ngx-datatable-row-detail-template>
+        <!-- Table Details -->
+        <ng-content select="[cdTableDetail]"></ng-content>
+      </ng-template>
+    </ngx-datatable-row-detail>
+
     <ngx-datatable-footer>
       <ng-template ngx-datatable-footer-template
                    let-rowCount="rowCount"
     <ngx-datatable-footer>
       <ng-template ngx-datatable-footer-template
                    let-rowCount="rowCount"
   </ngx-datatable>
 </div>
 
   </ngx-datatable>
 </div>
 
-<!-- Table Details -->
-<ng-content select="[cdTableDetail]"></ng-content>
-
 <!-- cell templates that can be accessed from outside -->
 <ng-template #tableCellBoldTpl
              let-value="value">
 <!-- cell templates that can be accessed from outside -->
 <ng-template #tableCellBoldTpl
              let-value="value">
   <span data-toggle="tooltip"
         [title]="value">{{ value | truncate:column?.customTemplateConfig?.length:column?.customTemplateConfig?.omission }}</span>
 </ng-template>
   <span data-toggle="tooltip"
         [title]="value">{{ value | truncate:column?.customTemplateConfig?.length:column?.customTemplateConfig?.omission }}</span>
 </ng-template>
+
+<ng-template #rowDetailsTpl
+             let-row="row"
+             let-isExpanded="expanded"
+             ngx-datatable-cell-template>
+  <a href="javascript:void(0)"
+     [class.expand-collapse-icon-right]="!isExpanded"
+     [class.expand-collapse-icon-down]="isExpanded"
+     class="expand-collapse-icon tc_expand-collapse"
+     title="Expand/Collapse Row"
+     i18n-title
+     (click)="toggleExpandRow(row, isExpanded)">
+  </a>
+</ng-template>
index e358a9d2fa766d1565233750cfe3d761fb9501b3..4a5f9ae8a6267a2c6f08618c3d83bf378716348e 100644 (file)
@@ -1,4 +1,11 @@
-@import 'styles';
+@import 'defaults.scss';
+
+@mixin row-details-icon {
+  font-family: 'ForkAwesome', sans-serif;
+  font-size: 1rem;
+  color: $gray-900;
+  line-height: 1;
+}
 
 .dataTables_wrapper {
   margin-bottom: 25px;
 
 .dataTables_wrapper {
   margin-bottom: 25px;
 
   .widget-toolbar {
     float: right;
 
   .widget-toolbar {
     float: right;
-    // width: auto;
-    // height: 30px;
-    // line-height: 28px;
-    // position: relative;
     border-left: 1px solid $color-table-seperator-border;
     border-left: 1px solid $color-table-seperator-border;
-    // cursor: pointer;
     padding: 0 8px;
     padding: 0 8px;
-    // text-align: center;
 
     .form-check {
       padding-left: 0;
 
     .form-check {
       padding-left: 0;
 
   .dropdown-menu {
     white-space: nowrap;
 
   .dropdown-menu {
     white-space: nowrap;
-    & li {
-      cursor: pointer;
-      & label {
+    & li {
+      cursor: default;
+      & label {
         width: 100%;
         margin-bottom: 0;
         width: 100%;
         margin-bottom: 0;
-        padding-left: 20px;
-        padding-right: 20px;
+        padding-left: 0;
+        padding-right: 0;
         cursor: pointer;
         &:hover {
           background-color: $color-table-dropdown-bg;
         }
         cursor: pointer;
         &:hover {
           background-color: $color-table-dropdown-bg;
         }
-        & input {
+        & input {
           cursor: pointer;
         }
       }
           cursor: pointer;
         }
       }
         }
         .datatable-body-cell-label {
           display: block;
         }
         .datatable-body-cell-label {
           display: block;
+          height: 100%;
         }
       }
     }
         }
       }
     }
+    .datatable-row-detail {
+      padding: 20px;
+      border-bottom: 2px solid $color-table-header-border;
+    }
+    .expand-collapse-icon {
+      display: block;
+      height: 100%;
+      text-align: center;
+      &:hover {
+        text-decoration: none;
+      }
+    }
+    .expand-collapse-icon-right:before {
+      @include row-details-icon;
+      content: '\f105';
+    }
+    .expand-collapse-icon-down:before {
+      @include row-details-icon;
+      content: '\f107';
+    }
   }
   .datatable-footer {
   }
   .datatable-footer {
-    @extend .p-2;
-
     .selected-count,
     .page-count {
       font-style: italic;
       padding-left: 5px;
     }
     .selected-count,
     .page-count {
       font-style: italic;
       padding-left: 5px;
     }
-    .datatable-pager {
-      // .pager
-      ul {
-        @extend .pagination;
-
-        li {
-          @extend .page-item;
-
-          a {
-            @extend .page-link;
-          }
-        }
-      }
-    }
   }
 
   .cd-datatable-checkbox {
   }
 
   .cd-datatable-checkbox {
index 42c5817a93708cc457c06dc80c4d52bf72ba9f65..a3ac199a4ba16f23502fb2dce0de90785b9feeb1 100644 (file)
@@ -1,5 +1,6 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { FormsModule } from '@angular/forms';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
 import { RouterTestingModule } from '@angular/router/testing';
 
 import { NgxDatatableModule } from '@swimlane/ngx-datatable';
@@ -36,6 +37,7 @@ describe('TableComponent', () => {
   configureTestBed({
     declarations: [TableComponent],
     imports: [
   configureTestBed({
     declarations: [TableComponent],
     imports: [
+      BrowserAnimationsModule,
       NgxDatatableModule,
       FormsModule,
       ComponentsModule,
       NgxDatatableModule,
       FormsModule,
       ComponentsModule,
@@ -422,6 +424,13 @@ describe('TableComponent', () => {
       component.onClearSearch();
       expect(component.rows.length).toBe(10);
     });
       component.onClearSearch();
       expect(component.rows.length).toBe(10);
     });
+
+    it('should work with undefined data', () => {
+      component.data = undefined;
+      component.search = '3';
+      component.updateFilter();
+      expect(component.rows).toBeUndefined();
+    });
   });
 
   describe('after ngInit', () => {
   });
 
   describe('after ngInit', () => {
@@ -613,4 +622,72 @@ describe('TableComponent', () => {
       expect(component.useCustomClass('https://secure.it')).toBe('btn secure');
     });
   });
       expect(component.useCustomClass('https://secure.it')).toBe('btn secure');
     });
   });
+
+  describe('test expand and collapse feature', () => {
+    beforeEach(() => {
+      spyOn(component.setExpandedRow, 'emit');
+      component.table = {
+        rowDetail: { collapseAllRows: jest.fn(), toggleExpandRow: jest.fn() }
+      } as any;
+
+      // Setup table
+      component.identifier = 'a';
+      component.data = createFakeData(10);
+
+      // Select item
+      component.expanded = _.clone(component.data[1]);
+    });
+
+    describe('update expanded on refresh', () => {
+      const updateExpendedOnState = (state: 'always' | 'never' | 'onChange') => {
+        component.updateExpandedOnRefresh = state;
+        component.updateExpanded();
+      };
+
+      beforeEach(() => {
+        // Mock change
+        component.data[1].b = 'test';
+      });
+
+      it('refreshes "always"', () => {
+        updateExpendedOnState('always');
+        expect(component.expanded.b).toBe('test');
+        expect(component.setExpandedRow.emit).toHaveBeenCalled();
+      });
+
+      it('refreshes "onChange"', () => {
+        updateExpendedOnState('onChange');
+        expect(component.expanded.b).toBe('test');
+        expect(component.setExpandedRow.emit).toHaveBeenCalled();
+      });
+
+      it('does not refresh "onChange" if data is equal', () => {
+        component.data[1].b = 10; // Reverts change
+        updateExpendedOnState('onChange');
+        expect(component.expanded.b).toBe(10);
+        expect(component.setExpandedRow.emit).not.toHaveBeenCalled();
+      });
+
+      it('"never" refreshes', () => {
+        updateExpendedOnState('never');
+        expect(component.expanded.b).toBe(10);
+        expect(component.setExpandedRow.emit).not.toHaveBeenCalled();
+      });
+    });
+
+    it('should open the table details and close other expanded rows', () => {
+      component.toggleExpandRow(component.expanded, false);
+      expect(component.expanded).toEqual({ a: 1, b: 10, c: true });
+      expect(component.table.rowDetail.collapseAllRows).toHaveBeenCalled();
+      expect(component.setExpandedRow.emit).toHaveBeenCalledWith(component.expanded);
+      expect(component.table.rowDetail.toggleExpandRow).toHaveBeenCalled();
+    });
+
+    it('should close the current table details expansion', () => {
+      component.toggleExpandRow(component.expanded, true);
+      expect(component.expanded).toBeUndefined();
+      expect(component.setExpandedRow.emit).toHaveBeenCalledWith(undefined);
+      expect(component.table.rowDetail.toggleExpandRow).toHaveBeenCalled();
+    });
+  });
 });
 });
index 1eb859e18f1617536257434990e3b7eca7bec6ec..9efb7c91915951901b31d1c887291347cd1c19c2 100644 (file)
@@ -17,11 +17,11 @@ import {
 
 import {
   DatatableComponent,
 
 import {
   DatatableComponent,
+  getterForProp,
   SortDirection,
   SortPropDir,
   TableColumnProp
 } from '@swimlane/ngx-datatable';
   SortDirection,
   SortPropDir,
   TableColumnProp
 } from '@swimlane/ngx-datatable';
-import { getterForProp } from '@swimlane/ngx-datatable/release/utils';
 import * as _ from 'lodash';
 import { Observable, Subject, Subscription, timer as observableTimer } from 'rxjs';
 
 import * as _ from 'lodash';
 import { Observable, Subject, Subscription, timer as observableTimer } from 'rxjs';
 
@@ -63,6 +63,8 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
   mapTpl: TemplateRef<any>;
   @ViewChild('truncateTpl', { static: true })
   truncateTpl: TemplateRef<any>;
   mapTpl: TemplateRef<any>;
   @ViewChild('truncateTpl', { static: true })
   truncateTpl: TemplateRef<any>;
+  @ViewChild('rowDetailsTpl', { static: true })
+  rowDetailsTpl: TemplateRef<any>;
 
   // This is the array with the items to be shown.
   @Input()
 
   // This is the array with the items to be shown.
   @Input()
@@ -94,11 +96,16 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
   // Page size to show. Set to 0 to show unlimited number of rows.
   @Input()
   limit? = 10;
   // Page size to show. Set to 0 to show unlimited number of rows.
   @Input()
   limit? = 10;
+  // Has the row details?
+  @Input()
+  hasDetails = false;
 
   /**
    * Auto reload time in ms - per default every 5s
    * You can set it to 0, undefined or false to disable the auto reload feature in order to
    * trigger 'fetchData' if the reload button is clicked.
 
   /**
    * Auto reload time in ms - per default every 5s
    * You can set it to 0, undefined or false to disable the auto reload feature in order to
    * trigger 'fetchData' if the reload button is clicked.
+   * You can set it to a negative number to, on top of disabling the auto reload,
+   * prevent triggering fetchData when initializing the table.
    */
   @Input()
   autoReload: any = 5000;
    */
   @Input()
   autoReload: any = 5000;
@@ -118,6 +125,9 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
   // By default selected item details will be updated on table refresh, if data has changed
   @Input()
   updateSelectionOnRefresh: 'always' | 'never' | 'onChange' = 'onChange';
   // By default selected item details will be updated on table refresh, if data has changed
   @Input()
   updateSelectionOnRefresh: 'always' | 'never' | 'onChange' = 'onChange';
+  // By default expanded item details will be updated on table refresh, if data has changed
+  @Input()
+  updateExpandedOnRefresh: 'always' | 'never' | 'onChange' = 'onChange';
 
   @Input()
   autoSave = true;
 
   @Input()
   autoSave = true;
@@ -157,6 +167,9 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
   @Output()
   updateSelection = new EventEmitter();
 
   @Output()
   updateSelection = new EventEmitter();
 
+  @Output()
+  setExpandedRow = new EventEmitter();
+
   /**
    * This should be defined if you need access to the applied column filters.
    *
   /**
    * This should be defined if you need access to the applied column filters.
    *
@@ -172,6 +185,11 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
    */
   selection = new CdTableSelection();
 
    */
   selection = new CdTableSelection();
 
+  /**
+   * Use this variable to access the expanded row
+   */
+  expanded: any = undefined;
+
   tableColumns: CdTableColumn[];
   icons = Icons;
   cellTemplates: {
   tableColumns: CdTableColumn[];
   icons = Icons;
   cellTemplates: {
@@ -237,6 +255,7 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
         this.identifier = this.columns[0].prop + '';
       }
     }
         this.identifier = this.columns[0].prop + '';
       }
     }
+
     this.initUserConfig();
     this.columns.forEach((c) => {
       if (c.cellTransformation) {
     this.initUserConfig();
     this.columns.forEach((c) => {
       if (c.cellTransformation) {
@@ -250,6 +269,7 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
       }
     });
 
       }
     });
 
+    this.initExpandCollapseColumn(); // If rows have details, add a column to expand or collapse the rows
     this.initCheckboxColumn();
     this.filterHiddenColumns();
     this.initColumnFilters();
     this.initCheckboxColumn();
     this.filterHiddenColumns();
     this.initColumnFilters();
@@ -269,8 +289,10 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
           });
         });
       });
           });
         });
       });
-    } else {
+    } else if (!this.autoReload) {
       this.reloadData();
       this.reloadData();
+    } else {
+      this.useData();
     }
   }
 
     }
   }
 
@@ -367,6 +389,25 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
     }
   }
 
     }
   }
 
+  /**
+   * Add a column to expand and collapse the table row if it 'hasDetails'
+   */
+  initExpandCollapseColumn() {
+    if (this.hasDetails) {
+      this.columns.unshift({
+        prop: undefined,
+        resizeable: false,
+        sortable: false,
+        draggable: false,
+        isHidden: false,
+        canAutoResize: false,
+        cellClass: 'cd-datatable-expand-collapse',
+        width: 40,
+        cellTemplate: this.rowDetailsTpl
+      });
+    }
+  }
+
   filterHiddenColumns() {
     this.tableColumns = this.columns.filter((c) => !c.isHidden);
   }
   filterHiddenColumns() {
     this.tableColumns = this.columns.filter((c) => !c.isHidden);
   }
@@ -583,6 +624,7 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
     this.updateFilter();
     this.reset();
     this.updateSelected();
     this.updateFilter();
     this.reset();
     this.updateSelected();
+    this.updateExpanded();
   }
 
   /**
   }
 
   /**
@@ -622,6 +664,22 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
     this.onSelect(this.selection);
   }
 
     this.onSelect(this.selection);
   }
 
+  updateExpanded() {
+    if (_.isUndefined(this.expanded) || this.updateExpandedOnRefresh === 'never') {
+      return;
+    }
+
+    const expandedId = this.expanded[this.identifier];
+    const newExpanded = _.find(this.data, (row) => expandedId === row[this.identifier]);
+
+    if (this.updateExpandedOnRefresh === 'onChange' && _.isEqual(this.expanded, newExpanded)) {
+      return;
+    }
+
+    this.expanded = newExpanded;
+    this.setExpandedRow.emit(newExpanded);
+  }
+
   onSelect($event: any) {
     this.selection.selected = $event['selected'];
     this.updateSelection.emit(_.clone(this.selection));
   onSelect($event: any) {
     this.selection.selected = $event['selected'];
     this.updateSelection.emit(_.clone(this.selection));
@@ -678,7 +736,7 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
   updateFilter() {
     let rows = this.columnFilters.length !== 0 ? this.doColumnFiltering() : this.data;
 
   updateFilter() {
     let rows = this.columnFilters.length !== 0 ? this.doColumnFiltering() : this.data;
 
-    if (this.search.length > 0) {
+    if (this.search.length > 0 && rows) {
       const columns = this.columns.filter((c) => c.cellTransformation !== CellTemplate.sparkline);
       // update the rows
       rows = this.subSearch(rows, TableComponent.prepareSearch(this.search), columns);
       const columns = this.columns.filter((c) => c.cellTransformation !== CellTemplate.sparkline);
       // update the rows
       rows = this.subSearch(rows, TableComponent.prepareSearch(this.search), columns);
@@ -693,10 +751,7 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
     if (currentSearch.length === 0 || data.length === 0) {
       return data;
     }
     if (currentSearch.length === 0 || data.length === 0) {
       return data;
     }
-    const searchTerms: string[] = currentSearch
-      .pop()
-      .replace(/\+/g, ' ')
-      .split(':');
+    const searchTerms: string[] = currentSearch.pop().replace(/\+/g, ' ').split(':');
     const columnsClone = [...columns];
     if (searchTerms.length === 2) {
       columns = columnsClone.filter((c) => c.name.toLowerCase().indexOf(searchTerms[0]) !== -1);
     const columnsClone = [...columns];
     if (searchTerms.length === 2) {
       columns = columnsClone.filter((c) => c.name.toLowerCase().indexOf(searchTerms[0]) !== -1);
@@ -750,4 +805,18 @@ export class TableComponent implements AfterContentChecked, OnInit, OnChanges, O
       };
     };
   }
       };
     };
   }
+
+  toggleExpandRow(row: any, isExpanded: boolean) {
+    if (!isExpanded) {
+      // If current row isn't expanded, collapse others
+      this.expanded = row;
+      this.table.rowDetail.collapseAllRows();
+      this.setExpandedRow.emit(row);
+    } else {
+      // If all rows are closed, emit undefined
+      this.expanded = undefined;
+      this.setExpandedRow.emit(undefined);
+    }
+    this.table.rowDetail.toggleExpandRow(row);
+  }
 }
 }
index 1c8dc15c5f03d6b18430a5cb4f1563dfd2402c79..d201d53b7bd23b53042f02d7b224e1579c7e0f82 100644 (file)
@@ -61,7 +61,7 @@ function encodeMethod(target: any, propertyKey: string, descriptor: PropertyDesc
   }
   const originalMethod = descriptor.value;
 
   }
   const originalMethod = descriptor.value;
 
-  descriptor.value = function() {
+  descriptor.value = function () {
     const metadataKey = `__ignore_${propertyKey}`;
     const indices: number[] = target[metadataKey] || [];
     const args = [];
     const metadataKey = `__ignore_${propertyKey}`;
     const indices: number[] = target[metadataKey] || [];
     const args = [];
index e50fd86332c435b970d370bdf648105f3e4e58cc..37fca45264e6572291498f99166c9006b8bb6c7d 100644 (file)
@@ -1,8 +1,18 @@
+import { TestBed } from '@angular/core/testing';
+
+import { I18n } from '@ngx-translate/i18n-polyfill';
+
+import { configureTestBed, i18nProviders } from '../../../testing/unit-test-helper';
 import { Copy2ClipboardButtonDirective } from './copy2clipboard-button.directive';
 
 describe('Copy2clipboardButtonDirective', () => {
 import { Copy2ClipboardButtonDirective } from './copy2clipboard-button.directive';
 
 describe('Copy2clipboardButtonDirective', () => {
+  configureTestBed({
+    providers: [i18nProviders]
+  });
+
   it('should create an instance', () => {
   it('should create an instance', () => {
-    const directive = new Copy2ClipboardButtonDirective(null, null, null);
+    const i18n = TestBed.get(I18n);
+    const directive = new Copy2ClipboardButtonDirective(null, null, null, i18n);
     expect(directive).toBeTruthy();
   });
 });
     expect(directive).toBeTruthy();
   });
 });
index 005b20157583a936459b7925335d1cacd2af1285..32f4cda3e85b845f97355c08db79ced66d2aa24d 100644 (file)
@@ -1,4 +1,5 @@
 import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';
 import { Directive, ElementRef, HostListener, Input, OnInit, Renderer2 } from '@angular/core';
+import { I18n } from '@ngx-translate/i18n-polyfill';
 
 import { ToastrService } from 'ngx-toastr';
 
 
 import { ToastrService } from 'ngx-toastr';
 
@@ -8,17 +9,21 @@ import { ToastrService } from 'ngx-toastr';
 export class Copy2ClipboardButtonDirective implements OnInit {
   @Input()
   private cdCopy2ClipboardButton: string;
 export class Copy2ClipboardButtonDirective implements OnInit {
   @Input()
   private cdCopy2ClipboardButton: string;
+  @Input()
+  private formatted = 'no';
 
   constructor(
     private elementRef: ElementRef,
     private renderer: Renderer2,
 
   constructor(
     private elementRef: ElementRef,
     private renderer: Renderer2,
-    private toastr: ToastrService
+    private toastr: ToastrService,
+    private i18n: I18n
   ) {}
 
   ngOnInit() {
     const iElement = this.renderer.createElement('i');
     this.renderer.addClass(iElement, 'fa');
     this.renderer.addClass(iElement, 'fa-clipboard');
   ) {}
 
   ngOnInit() {
     const iElement = this.renderer.createElement('i');
     this.renderer.addClass(iElement, 'fa');
     this.renderer.addClass(iElement, 'fa-clipboard');
+    this.renderer.setAttribute(iElement, 'title', this.i18n('Copy to clipboard'));
     this.renderer.appendChild(this.elementRef.nativeElement, iElement);
   }
 
     this.renderer.appendChild(this.elementRef.nativeElement, iElement);
   }
 
@@ -29,8 +34,9 @@ export class Copy2ClipboardButtonDirective implements OnInit {
   @HostListener('click')
   onClick() {
     try {
   @HostListener('click')
   onClick() {
     try {
+      const tagName = this.formatted === '' ? 'textarea' : 'input';
       // Create the input to hold our text.
       // Create the input to hold our text.
-      const tmpInputElement = document.createElement('input');
+      const tmpInputElement = document.createElement(tagName);
       tmpInputElement.value = this.getInputElement().value;
       document.body.appendChild(tmpInputElement);
       // Copy text to clipboard.
       tmpInputElement.value = this.getInputElement().value;
       document.body.appendChild(tmpInputElement);
       // Copy text to clipboard.
index 40327b1ef2bc74482517783710f1916f56bd8591..17601f0add84a27a38921c87bbe43c6ac9c1031e 100644 (file)
@@ -1,4 +1,4 @@
-import { TableColumnProp } from '@swimlane/ngx-datatable/release/types/table-column.type';
+import { TableColumnProp } from '@swimlane/ngx-datatable';
 
 export interface CdTableColumnFiltersChange {
   /**
 
 export interface CdTableColumnFiltersChange {
   /**
index 16fa24ca9c7d2dba440f51c04576ee13468c8feb..4eb09e67c3c1297cd8e9030e4508e5486a05bc64 100644 (file)
@@ -14,4 +14,5 @@ export class PoolFormInfo {
   pg_autoscale_modes: string[];
   erasure_code_profiles: ErasureCodeProfile[];
   used_rules: { [rule_name: string]: string[] };
   pg_autoscale_modes: string[];
   erasure_code_profiles: ErasureCodeProfile[];
   used_rules: { [rule_name: string]: string[] };
+  used_profiles: { [profile_name: string]: string[] };
 }
 }
index 0bb7930893a6948fe42eef79d2db53f652d8cb8c..b3cf64c459bdc1f6ecb9ff333035374149746aab 100644 (file)
@@ -14,16 +14,12 @@ describe('RelativeDatePipe', () => {
   });
 
   it('transforms "in 7 days"', () => {
   });
 
   it('transforms "in 7 days"', () => {
-    const value = moment()
-      .add(7, 'days')
-      .unix();
+    const value = moment().add(7, 'days').unix();
     expect(pipe.transform(value)).toBe('in 7 days');
   });
 
   it('transforms "7 days ago"', () => {
     expect(pipe.transform(value)).toBe('in 7 days');
   });
 
   it('transforms "7 days ago"', () => {
-    const value = moment()
-      .subtract(7, 'days')
-      .unix();
+    const value = moment().subtract(7, 'days').unix();
     expect(pipe.transform(value)).toBe('7 days ago');
   });
 });
     expect(pipe.transform(value)).toBe('7 days ago');
   });
 });
index c65f8c051882729ca601da4c9da20e9b25a89d7d..7384b527de106d56486c3861e88043c5e1e84b88 100644 (file)
@@ -80,7 +80,7 @@ export class ApiInterceptorService implements HttpInterceptor {
            * If called, it will prevent a notification for the specific status code.
            * @param {number} status The status code to be ignored.
            */
            * If called, it will prevent a notification for the specific status code.
            * @param {number} status The status code to be ignored.
            */
-          resp.ignoreStatusCode = function(status: number) {
+          resp.ignoreStatusCode = function (status: number) {
             if (this.status === status) {
               this.preventDefault();
             }
             if (this.status === status) {
               this.preventDefault();
             }
index 936b19d8293e978f87366d6cf6d7b72b505d7f6b..e3030b10a676682a4ba0272e18f989474848ec77 100644 (file)
@@ -35,11 +35,11 @@ export class PasswordPolicyService {
               'Cannot contain any sequential characters e.g. "abc"'
             ),
             pwdPolicyCheckComplexityEnabled: this.i18n(
               'Cannot contain any sequential characters e.g. "abc"'
             ),
             pwdPolicyCheckComplexityEnabled: this.i18n(
-              'Must consist of characters from the following groups:\n' +
-                '  * Alphabetic a-z, A-Z\n' +
-                '  * Numbers 0-9\n' +
-                '  * Special chars: !"#$%& \'()*+,-./:;<=>?@[\\]^_`{{|}}~\n' +
-                '  * Any other characters (signs)'
+              `Must consist of characters from the following groups:
+  * Alphabetic a-z, A-Z
+  * Numbers 0-9
+  * Special chars: !"#$%& '()*+,-./:;<=>?@[\\]^_\`{{|}}~
+  * Any other characters (signs)`
             )
           };
           helpText = helpText.concat(
             )
           };
           helpText = helpText.concat(
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.spec.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.spec.ts
new file mode 100644 (file)
index 0000000..871c1af
--- /dev/null
@@ -0,0 +1,20 @@
+import { TestBed } from '@angular/core/testing';
+
+import { configureTestBed } from '../../../testing/unit-test-helper';
+import { TextToDownloadService } from './text-to-download.service';
+
+describe('TextToDownloadService', () => {
+  let service: TextToDownloadService;
+
+  configureTestBed({
+    providers: [TextToDownloadService]
+  });
+
+  beforeEach(() => {
+    service = TestBed.get(TextToDownloadService);
+  });
+
+  it('should be created', () => {
+    expect(service).toBeTruthy();
+  });
+});
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.ts b/ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/services/text-to-download.service.ts
new file mode 100644 (file)
index 0000000..bcfb3ab
--- /dev/null
@@ -0,0 +1,14 @@
+import { Injectable } from '@angular/core';
+
+import { saveAs } from 'file-saver';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class TextToDownloadService {
+  constructor() {}
+
+  download(downloadText: string, filename?: string) {
+    saveAs(new Blob([downloadText]), filename);
+  }
+}
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png b/ceph/src/pybind/mgr/dashboard/frontend/src/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png
new file mode 100644 (file)
index 0000000..93f2be1
Binary files /dev/null and b/ceph/src/pybind/mgr/dashboard/frontend/src/assets/Ceph_Logo_Standard_RGB_Reversed_120411_fa.png differ
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/assets/ceph_background.gif b/ceph/src/pybind/mgr/dashboard/frontend/src/assets/ceph_background.gif
new file mode 100644 (file)
index 0000000..0f7426e
Binary files /dev/null and b/ceph/src/pybind/mgr/dashboard/frontend/src/assets/ceph_background.gif differ
index 79367b7191343a54ab7f6ce12307b88c3079d20f..bb883e43ec0126abc01e14a55f3d529062eaa62e 100644 (file)
@@ -25,6 +25,7 @@ $popover-max-width: 350px;
 @import '~bootstrap/scss/bootstrap';
 @import '~fork-awesome/scss/fork-awesome';
 @import 'app/ceph/dashboard/info-card/info-card-popover.scss';
 @import '~bootstrap/scss/bootstrap';
 @import '~fork-awesome/scss/fork-awesome';
 @import 'app/ceph/dashboard/info-card/info-card-popover.scss';
+@import 'bootstrap-extends';
 
 /* Reset checkbox success color */
 .was-validated .custom-control-input:valid,
 
 /* Reset checkbox success color */
 .was-validated .custom-control-input:valid,
diff --git a/ceph/src/pybind/mgr/dashboard/frontend/src/styles/bootstrap-extends.scss b/ceph/src/pybind/mgr/dashboard/frontend/src/styles/bootstrap-extends.scss
new file mode 100644 (file)
index 0000000..83ea59c
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Include here all styles from components that extend from bootstrap.
+ * This removes the need to @import bootstrap into those componenet,
+ * thus reducing the final css size.
+*/
+
+cd-info-card {
+  .card {
+    @extend .pb-2;
+
+    .card-body {
+      .card-text {
+        @extend .pt-2;
+      }
+    }
+  }
+}
+
+.btn-toolbar cd-table-actions.btn-group {
+  @extend .mr-2;
+}
+
+cd-table {
+  .cd-datatable {
+    .datatable-footer {
+      @extend .p-2;
+
+      .datatable-pager {
+        ul {
+          @extend .pagination;
+
+          li {
+            @extend .page-item;
+
+            a {
+              @extend .page-link;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+cd-health {
+  cd-info-card {
+    @extend .d-flex;
+    @extend .flex-column;
+    @extend .mb-4;
+
+    @extend .col-12;
+    @extend .col-sm-12;
+    @extend .col-md-6;
+    @extend .col-lg-4;
+
+    &.cd-status-card {
+      @extend .col-xl-3;
+    }
+
+    &.cd-performance-card,
+    &.cd-capacity-card {
+      @extend .col-xl;
+    }
+  }
+}
+
+cd-logs {
+  label {
+    @extend .mr-2;
+  }
+
+  .form-inline > .form-group {
+    @extend .mr-3;
+    @extend .mb-3;
+  }
+}
+
+cd-about {
+  dl {
+    @extend .row;
+  }
+  dt {
+    @extend .col-4;
+    @extend .font-weight-bold;
+  }
+  dd {
+    @extend .col-8;
+  }
+}
index 7865cb29a044e129ae6483de7ccb76f52ecb1073..afbb031ceb9ae6fae57ca51639f7cb3cd1a3590d 100644 (file)
@@ -2,6 +2,10 @@
 
 @import 'vendor.variables';
 
 
 @import 'vendor.variables';
 
+// Bootstrap defaults
+
+$gray-900: #212529 !default;
+
 $screen-sm-min: 576px !default;
 $screen-md-min: 768px !default;
 $screen-lg-min: 992px !default;
 $screen-sm-min: 576px !default;
 $screen-md-min: 768px !default;
 $screen-lg-min: 992px !default;
@@ -49,6 +53,7 @@ $color-input-border: #ced4da;
 $color-input-border-hover: #adadad;
 $color-brand-teal: #2b99a8 !default;
 $color-brand-gray: #374249 !default;
 $color-input-border-hover: #adadad;
 $color-brand-teal: #2b99a8 !default;
 $color-brand-gray: #374249 !default;
+$color-mirage-gray: #333e46 !default;
 
 $color-primary: $color-brand-teal !default;
 $color-secondary: $color-brand-gray !default;
 
 $color-primary: $color-brand-teal !default;
 $color-secondary: $color-brand-gray !default;
@@ -82,7 +87,7 @@ $color-login-row-text: $color-solid-white !default;
 $color-login-row-bg: $color-secondary !default;
 $color-password-toggle-text: $color-solid-white !default;
 $color-password-toggle-placeholder-text: $color-blue-gray !default;
 $color-login-row-bg: $color-secondary !default;
 $color-password-toggle-text: $color-solid-white !default;
 $color-password-toggle-placeholder-text: $color-blue-gray !default;
-$color-password-toggle-bg: $color-solid-gray !default;
+$color-password-toggle-bg: $color-mirage-gray !default;
 $color-password-toggle-focus: $color-primary !default;
 // $color-login-active-row-bg: $color-light-yellow !default;
 // $color-login-active-row-text: $color-black !default;
 $color-password-toggle-focus: $color-primary !default;
 // $color-login-active-row-bg: $color-light-yellow !default;
 // $color-login-active-row-text: $color-black !default;
index e35fef11587c240358d61a5da53b3250698c3fa5..4d011a9aaa6bd8ce7ff97338c2de04ab200c1e4c 100644 (file)
@@ -1 +1 @@
-/* Vendor specific variables */\r
+/* Vendor specific variables */
index b72faa4b0f21383221471f6a09ec75d853124db9..ccdf3678dcc004fa62394c22fec2e984d7dc4276 100644 (file)
@@ -28,9 +28,9 @@
     "allowJs": true
   },
   "exclude": [
     "allowJs": true
   },
   "exclude": [
-    ".protractor-report",
     "coverage",
     "dist",
     "coverage",
     "dist",
-    "node_modules"
+    "node_modules",
+    "cypress"
   ]
 }
   ]
 }
index 043e4e00a3cff095772a637094f949fa28e8f3aa..6512cb1bf1abcd414ff3e4b485b84aa0b8a62934 100755 (executable)
@@ -2,6 +2,25 @@
 
 set -e
 
 
 set -e
 
+start_ceph() {
+    cd $FULL_PATH_BUILD_DIR
+
+    MGR=2 RGW=1 ../src/vstart.sh -n -d
+    sleep 10
+
+    # Create an Object Gateway User
+    ./bin/radosgw-admin user create --uid=dev --display-name=Developer --system
+    # Set the user-id
+    ./bin/ceph dashboard set-rgw-api-user-id dev
+    # Obtain and set access and secret key for the previously created user. $() is safer than backticks `..`
+    ./bin/ceph dashboard set-rgw-api-access-key $(./bin/radosgw-admin user info --uid=dev | jq -r .keys[0].access_key)
+    ./bin/ceph dashboard set-rgw-api-secret-key $(./bin/radosgw-admin user info --uid=dev | jq -r .keys[0].secret_key)
+    # Set SSL verify to False
+    ./bin/ceph dashboard set-rgw-api-ssl-verify False
+
+    CYPRESS_BASE_URL=$(./bin/ceph mgr services | jq -r .dashboard)
+}
+
 stop() {
     if [ "$REMOTE" == "false" ]; then
         cd ${FULL_PATH_BUILD_DIR}
 stop() {
     if [ "$REMOTE" == "false" ]; then
         cd ${FULL_PATH_BUILD_DIR}
@@ -10,78 +29,87 @@ stop() {
     exit $1
 }
 
     exit $1
 }
 
-BASE_URL=''
-DEVICE=''
-E2E_LOGIN_USER=''
-E2E_LOGIN_PWD=''
-REMOTE='false'
+check_device_available() {
+    failed=false
+
+    if [ "$DEVICE" == "docker" ]; then
+        [ -x "$(command -v docker)" ] || failed=true
+    else
+        cd $DASH_DIR/frontend
+        npx cypress verify
+
+        case "$DEVICE" in
+            chrome)
+                [ -x "$(command -v chrome)" ] || [ -x "$(command -v google-chrome)" ] ||
+                [ -x "$(command -v google-chrome-stable)" ] || failed=true
+                ;;
+            chromium)
+                [ -x "$(command -v chromium)" ] || [ -x "$(command -v chromium-browser)" ] || failed=true
+                ;;
+        esac
+    fi
+
+    if [ "$failed" = "true" ]; then
+            echo "ERROR: $DEVICE not found. You need to install $DEVICE or \
+    use a different device. Supported devices: chrome (default), chromium, electron or docker."
+        stop 1
+    fi
+}
+
+: ${CYPRESS_BASE_URL:=''}
+: ${CYPRESS_LOGIN_PWD:=''}
+: ${CYPRESS_LOGIN_USER:=''}
+: ${DEVICE:="chrome"}
+: ${NO_COLOR:=1}
+: ${CYPRESS_ARGS:=''}
+: ${REMOTE:='false'}
 
 while getopts 'd:p:r:u:' flag; do
   case "${flag}" in
     d) DEVICE=$OPTARG;;
 
 while getopts 'd:p:r:u:' flag; do
   case "${flag}" in
     d) DEVICE=$OPTARG;;
-    p) E2E_LOGIN_PWD=$OPTARG;;
+    p) CYPRESS_LOGIN_PWD=$OPTARG;;
     r) REMOTE='true'
     r) REMOTE='true'
-       BASE_URL=$OPTARG;;
-    u) E2E_LOGIN_USER=$OPTARG;;
+       CYPRESS_BASE_URL=$OPTARG;;
+    u) CYPRESS_LOGIN_USER=$OPTARG;;
   esac
 done
 
   esac
 done
 
-if [ "$DEVICE" == "" ]; then
-    if [ -x "$(command -v google-chrome)" ] || [ -x "$(command -v google-chrome-stable)" ]; then
-        DEVICE="chrome"
-    elif [ -x "$(command -v docker)" ]; then
-        DEVICE="docker"
-    else
-        echo "ERROR: Chrome and Docker not found. You need to install one of  \
-them to run the e2e frontend tests."
-        stop 1
-    fi
-fi
-
 DASH_DIR=`pwd`
 DASH_DIR=`pwd`
-
 [ -z "$BUILD_DIR" ] && BUILD_DIR=build
 [ -z "$BUILD_DIR" ] && BUILD_DIR=build
-
 cd ../../../../${BUILD_DIR}
 FULL_PATH_BUILD_DIR=`pwd`
 
 cd ../../../../${BUILD_DIR}
 FULL_PATH_BUILD_DIR=`pwd`
 
-if [ "$BASE_URL" == "" ]; then
-    MGR=2 RGW=1 ../src/vstart.sh -n -d
-    sleep 10
+[[ "$(command -v npm)" == '' ]] && . ${FULL_PATH_BUILD_DIR}/src/pybind/mgr/dashboard/node-env/bin/activate
 
 
-    # Create an Object Gateway User
-    ./bin/radosgw-admin user create --uid=dev --display-name=Developer --system
-    # Set the user-id
-    ./bin/ceph dashboard set-rgw-api-user-id dev
-    # Obtain and set access and secret key for the previously created user. $() is safer than backticks `..`
-    ./bin/ceph dashboard set-rgw-api-access-key $(./bin/radosgw-admin user info --uid=dev | jq -r .keys[0].access_key)
-    ./bin/ceph dashboard set-rgw-api-secret-key $(./bin/radosgw-admin user info --uid=dev | jq -r .keys[0].secret_key)
-    # Set SSL verify to False
-    ./bin/ceph dashboard set-rgw-api-ssl-verify False
+: ${CYPRESS_CACHE_FOLDER:="${FULL_PATH_BUILD_DIR}/src/pybind/mgr/dashboard/cypress"}
 
 
-    BASE_URL=$(./bin/ceph mgr services | jq -r .dashboard)
-fi
+export CYPRESS_BASE_URL CYPRESS_CACHE_FOLDER CYPRESS_LOGIN_USER CYPRESS_LOGIN_PWD NO_COLOR
+
+check_device_available
 
 
-export BASE_URL E2E_LOGIN_USER E2E_LOGIN_PWD
+if [ "$CYPRESS_BASE_URL" == "" ]; then
+    start_ceph
+fi
 
 cd $DASH_DIR/frontend
 
 
 cd $DASH_DIR/frontend
 
-[[ "$(command -v npm)" == '' ]] && . ${FULL_PATH_BUILD_DIR}/src/pybind/mgr/dashboard/node-env/bin/activate
+case "$DEVICE" in
+    docker)
+        failed=0
+        docker run \
+            -v $(pwd):/e2e \
+            -w /e2e \
+            --env CYPRESS_BASE_URL \
+            --env CYPRESS_LOGIN_USER \
+            --env CYPRESS_LOGIN_PWD \
+            --name=e2e \
+            --network=host \
+            cypress/included:4.4.0 || failed=1
+        stop $failed
+        ;;
+    *)
+        npx cypress run $CYPRESS_ARGS --browser $DEVICE --headless || stop 1
+        ;;
+esac
 
 
-if [ "$DEVICE" == "chrome" ]; then
-    npm run e2e:ci || stop 1
-    stop 0
-elif [ "$DEVICE" == "docker" ]; then
-    failed=0
-    cat <<EOF > .env
-BASE_URL
-E2E_LOGIN_USER
-E2E_LOGIN_PWD
-EOF
-    docker run --rm -v $(pwd):/ceph --env-file .env --name=e2e --network=host --entrypoint "" \
-        docker.io/rhcsdashboard/e2e npm run e2e:ci || failed=1
-    stop $failed
-else
-    echo "ERROR: Device not recognized. Valid devices are 'chrome' and 'docker'."
-    stop 1
-fi
+stop 0
index 38c47f8e4d779228bdbfb3618b16200f59674baf..c94cd922f545f57b03f9cfbd8d7cb2386550c821 100755 (executable)
@@ -37,12 +37,17 @@ fi
 
 # I18N
 npm run i18n:extract
 
 # I18N
 npm run i18n:extract
-i18n_lint=`awk '/<source> |<source>$| <\/source>/,/<\/context-group>/ {printf "%-4s ", NR; print}' src/locale/messages.xlf`
-if [ "$i18n_lint" ]; then
-  echo -e "The following source translations in 'messages.xlf' need to be \
-fixed, please check the I18N suggestions in 'HACKING.rst':\n"
-  echo "${i18n_lint}"
+if [ $? -gt 0 ]; then
   failed=true
   failed=true
+  echo -e "\nTranslations extraction has failed."
+else
+  i18n_lint=`awk '/<source> |<source>$| <\/source>/,/<\/context-group>/ {printf "%-4s ", NR; print}' src/locale/messages.xlf`
+  if [ "$i18n_lint" ]; then
+    echo -e "\nThe following source translations in 'messages.xlf' need to be \
+  fixed, please check the I18N suggestions in 'HACKING.rst':\n"
+    echo "${i18n_lint}"
+    failed=true
+  fi
 fi
 
 # npm resolutions
 fi
 
 # npm resolutions
index e0d583d8c01e78f90f8b40a16c00f7ba14de3671..5e4a5c15342d13bb5727c8a186616f5b3b250740 100644 (file)
@@ -12,7 +12,7 @@ from .. import mgr
 from ..exceptions import DashboardException
 
 try:
 from ..exceptions import DashboardException
 
 try:
-    from typing import Dict  # pylint: disable=unused-import
+    from typing import Dict, Any, Union  # pylint: disable=unused-import
 except ImportError:
     pass  # For typing only
 
 except ImportError:
     pass  # For typing only
 
@@ -138,12 +138,27 @@ class CephService(object):
 
     @classmethod
     def get_pool_name_from_id(cls, pool_id):
 
     @classmethod
     def get_pool_name_from_id(cls, pool_id):
+        # type: (int) -> Union[str, None]
+        pool = cls.get_pool_by_attribute('pool', pool_id)
+        return pool['pool_name'] if pool is not None else None
+
+    @classmethod
+    def get_pool_by_attribute(cls, attribute, value):
+        # type: (str, Any) -> Union[dict, None]
         pool_list = cls.get_pool_list()
         for pool in pool_list:
         pool_list = cls.get_pool_list()
         for pool in pool_list:
-            if pool['pool'] == pool_id:
-                return pool['pool_name']
+            if attribute in pool and pool[attribute] == value:
+                return pool
         return None
 
         return None
 
+    @classmethod
+    def get_pool_pg_status(cls, pool_name):
+        # type: (str) -> dict
+        pool = cls.get_pool_by_attribute('pool_name', pool_name)
+        if pool is None:
+            return {}
+        return mgr.get("pg_summary")['by_pool'][pool['pool'].__str__()]
+
     @classmethod
     def send_command(cls, srv_type, prefix, srv_spec='', **kwargs):
         """
     @classmethod
     def send_command(cls, srv_type, prefix, srv_spec='', **kwargs):
         """
index fca1f61b3cc14db1a24a176f935bad97ba016bfb..e894a56caef73465f775dbbf6c69a40490440da2 100644 (file)
@@ -18,12 +18,14 @@ def list_iscsi_gateways(_):
 
 
 @CLIWriteCommand('dashboard iscsi-gateway-add',
 
 
 @CLIWriteCommand('dashboard iscsi-gateway-add',
-                 'name=service_url,type=CephString',
+                 'name=service_url,type=CephString '
+                 'name=name,type=CephString,req=false',
                  'Add iSCSI gateway configuration')
                  'Add iSCSI gateway configuration')
-def add_iscsi_gateway(_, service_url):
+def add_iscsi_gateway(_, service_url, name=None):
     try:
         IscsiGatewaysConfig.validate_service_url(service_url)
     try:
         IscsiGatewaysConfig.validate_service_url(service_url)
-        name = IscsiClient.instance(service_url=service_url).get_hostname()['data']
+        if name is None:
+            name = IscsiClient.instance(service_url=service_url).get_hostname()['data']
         IscsiGatewaysConfig.add_gateway(name, service_url)
         return 0, 'Success', ''
     except IscsiGatewayAlreadyExists as ex:
         IscsiGatewaysConfig.add_gateway(name, service_url)
         return 0, 'Success', ''
     except IscsiGatewayAlreadyExists as ex:
index 3c0698c574fa165c579ce06187df9fede59c287c..ab900485001b0a33796f7bcfcd565692b297ba83 100644 (file)
@@ -3,15 +3,11 @@ from __future__ import absolute_import
 
 import json
 
 
 import json
 
-from orchestrator import OrchestratorError
-
 try:
     from urlparse import urlparse
 except ImportError:
     from urllib.parse import urlparse
 
 try:
     from urlparse import urlparse
 except ImportError:
     from urllib.parse import urlparse
 
-from mgr_util import merge_dicts
-from .orchestrator import OrchClient
 from .. import mgr
 
 
 from .. import mgr
 
 
@@ -76,19 +72,6 @@ class IscsiGatewaysConfig(object):
                     # or we will try to update automatically next time
                     continue
 
                     # or we will try to update automatically next time
                     continue
 
-    @staticmethod
-    def _load_config_from_orchestrator():
-        config = {'gateways': {}}  # type: dict
-        try:
-            instances = OrchClient.instance().services.list("iscsi")
-            for instance in instances:
-                config['gateways'][instance.hostname] = {
-                    'service_url': instance.service_url
-                }
-        except (RuntimeError, OrchestratorError, ImportError):
-            pass
-        return config
-
     @classmethod
     def _save_config(cls, config):
         mgr.set_store(_ISCSI_STORE_KEY, json.dumps(config))
     @classmethod
     def _save_config(cls, config):
         mgr.set_store(_ISCSI_STORE_KEY, json.dumps(config))
@@ -110,9 +93,6 @@ class IscsiGatewaysConfig(object):
 
     @classmethod
     def remove_gateway(cls, name):
 
     @classmethod
     def remove_gateway(cls, name):
-        if name in cls._load_config_from_orchestrator()['gateways']:
-            raise ManagedByOrchestratorException()
-
         config = cls._load_config_from_store()
         if name not in config['gateways']:
             raise IscsiGatewayDoesNotExist(name)
         config = cls._load_config_from_store()
         if name not in config['gateways']:
             raise IscsiGatewayDoesNotExist(name)
@@ -122,10 +102,7 @@ class IscsiGatewaysConfig(object):
 
     @classmethod
     def get_gateways_config(cls):
 
     @classmethod
     def get_gateways_config(cls):
-        orch_config = cls._load_config_from_orchestrator()
-        local_config = cls._load_config_from_store()
-
-        return {'gateways': merge_dicts(orch_config['gateways'], local_config['gateways'])}
+        return cls._load_config_from_store()
 
     @classmethod
     def get_gateway_config(cls, name):
 
     @classmethod
     def get_gateway_config(cls, name):
index d4a38f22b290fdc6d3a6de0c21a2193b79de0c0c..1734ca3bac7ac1b18569807a14da1c8337a15d00 100644 (file)
@@ -126,6 +126,20 @@ class RbdConfiguration(object):
                 except rbd.ImageNotFound:
                     result = []
             else:  # pool config
                 except rbd.ImageNotFound:
                     result = []
             else:  # pool config
+                pg_status = list(CephService.get_pool_pg_status(self._pool_name).keys())
+                if len(pg_status) == 1 and 'incomplete' in pg_status[0]:
+                    # If config_list would be called with ioctx if it's a bad pool,
+                    # the dashboard would stop working, waiting for the response
+                    # that would not happen.
+                    #
+                    # This is only a workaround for https://tracker.ceph.com/issues/43771 which
+                    # already got rejected as not worth the effort.
+                    #
+                    # Are more complete workaround for the dashboard will be implemented with
+                    # https://tracker.ceph.com/issues/44224
+                    #
+                    # @TODO: If #44224 is addressed remove this workaround
+                    return []
                 result = self._rbd.config_list(ioctx)
             return list(result)
 
                 result = self._rbd.config_list(ioctx)
             return list(result)
 
index 587ba2d4a2cc1dac35dc090615a7547e2aad162b..5507eb68007574ac890498de0f625f70dd2f4ba2 100644 (file)
@@ -252,6 +252,9 @@ class RgwClient(RestClient):
             ['api_name', 'zones']
         ) for zonegroup in zonegroups['zonegroups']]
 
             ['api_name', 'zones']
         ) for zonegroup in zonegroups['zonegroups']]
 
+    def _get_realms_info(self):  # type: () -> dict
+        return json_str_to_object(self.proxy('GET', 'realm?list', None, None))
+
     @staticmethod
     def _rgw_settings():
         return (Settings.RGW_API_HOST,
     @staticmethod
     def _rgw_settings():
         return (Settings.RGW_API_HOST,
@@ -491,6 +494,13 @@ class RgwClient(RestClient):
 
         return {'zonegroup': zonegroup_name, 'placement_targets': placement_targets}
 
 
         return {'zonegroup': zonegroup_name, 'placement_targets': placement_targets}
 
+    def get_realms(self):  # type: () -> List
+        realms_info = self._get_realms_info()
+        if 'realms' in realms_info and realms_info['realms']:
+            return realms_info['realms']
+
+        return []
+
     @RestClient.api_get('/{bucket_name}?versioning')
     def get_bucket_versioning(self, bucket_name, request=None):
         """
     @RestClient.api_get('/{bucket_name}?versioning')
     def get_bucket_versioning(self, bucket_name, request=None):
         """
diff --git a/ceph/src/pybind/mgr/dashboard/tests/test_ceph_service.py b/ceph/src/pybind/mgr/dashboard/tests/test_ceph_service.py
new file mode 100644 (file)
index 0000000..baf8588
--- /dev/null
@@ -0,0 +1,65 @@
+# -*- coding: utf-8 -*-
+# pylint: disable=dangerous-default-value,too-many-public-methods
+from __future__ import absolute_import
+
+import unittest
+try:
+    import mock
+except ImportError:
+    import unittest.mock as mock
+
+from ..services.ceph_service import CephService
+
+
+class CephServiceTest(unittest.TestCase):
+    pools = [{
+        'pool_name': 'good_pool',
+        'pool': 1,
+    }, {
+        'pool_name': 'bad_pool',
+        'pool': 2,
+        'flaky': 'option_x'
+    }]
+
+    def setUp(self):
+        #  Mock get_pool_list
+        self.list_patch = mock.patch('dashboard.services.ceph_service.CephService.get_pool_list')
+        self.list = self.list_patch.start()
+        self.list.return_value = self.pools
+        #  Mock mgr.get
+        self.mgr_patch = mock.patch('dashboard.mgr.get')
+        self.mgr = self.mgr_patch.start()
+        self.mgr.return_value = {
+            'by_pool': {
+                '1': {'active+clean': 16},
+                '2': {'creating+incomplete': 16},
+            }
+        }
+        self.service = CephService()
+
+    def tearDown(self):
+        self.list_patch.stop()
+        self.mgr_patch.stop()
+
+    def test_get_pool_by_attribute_with_match(self):
+        self.assertEqual(self.service.get_pool_by_attribute('pool', 1), self.pools[0])
+        self.assertEqual(self.service.get_pool_by_attribute('pool_name', 'bad_pool'), self.pools[1])
+
+    def test_get_pool_by_attribute_without_a_match(self):
+        self.assertEqual(self.service.get_pool_by_attribute('pool', 3), None)
+        self.assertEqual(self.service.get_pool_by_attribute('not_there', 'sth'), None)
+
+    def test_get_pool_by_attribute_matching_a_not_always_set_attribute(self):
+        self.assertEqual(self.service.get_pool_by_attribute('flaky', 'option_x'), self.pools[1])
+
+    def test_get_pool_name_from_id_with_match(self):
+        self.assertEqual(self.service.get_pool_name_from_id(1), 'good_pool')
+
+    def test_get_pool_name_from_id_without_match(self):
+        self.assertEqual(self.service.get_pool_name_from_id(3), None)
+
+    def test_get_pool_pg_status(self):
+        self.assertEqual(self.service.get_pool_pg_status('good_pool'), {'active+clean': 16})
+
+    def test_get_pg_status_without_match(self):
+        self.assertEqual(self.service.get_pool_pg_status('no-pool'), {})
index 2ec1b2ad764164a7188277caa153faff67d01758..c3088b7a6506ff57d986f482f2deaca335beeed1 100644 (file)
@@ -31,7 +31,7 @@ class HomeTest(ControllerTestCase, FakeFsMixin):
             cls.fs.create_file(
                 os.path.join(lang.DEFAULT_LANGUAGE_PATH, 'index.html'),
                 contents='<!doctype html><html lang="en"><body></body></html>')
             cls.fs.create_file(
                 os.path.join(lang.DEFAULT_LANGUAGE_PATH, 'index.html'),
                 contents='<!doctype html><html lang="en"><body></body></html>')
-        cls.setup_controllers([HomeController])
+            cls.setup_controllers([HomeController])
 
     @mock.patch(FakeFsMixin.builtins_open, new=FakeFsMixin.f_open)
     @mock.patch('os.stat', new=FakeFsMixin.f_os.stat)
 
     @mock.patch(FakeFsMixin.builtins_open, new=FakeFsMixin.f_open)
     @mock.patch('os.stat', new=FakeFsMixin.f_os.stat)
index d1a02ca7619e73379420b1a2cbf20954e6492c23..caee4029180f52f5e53fa8c9994cbee719d2a232 100644 (file)
@@ -3,8 +3,12 @@
 from __future__ import absolute_import
 
 import unittest
 from __future__ import absolute_import
 
 import unittest
+try:
+    import mock
+except ImportError:
+    import unittest.mock as mock
 
 
-from ..services.rbd import get_image_spec, parse_image_spec
+from ..services.rbd import get_image_spec, parse_image_spec, RbdConfiguration
 
 
 class RbdServiceTest(unittest.TestCase):
 
 
 class RbdServiceTest(unittest.TestCase):
@@ -16,3 +20,26 @@ class RbdServiceTest(unittest.TestCase):
     def test_parse_image_spec(self):
         self.assertEqual(parse_image_spec('mypool/myns/myimage'), ('mypool', 'myns', 'myimage'))
         self.assertEqual(parse_image_spec('mypool/myimage'), ('mypool', None, 'myimage'))
     def test_parse_image_spec(self):
         self.assertEqual(parse_image_spec('mypool/myns/myimage'), ('mypool', 'myns', 'myimage'))
         self.assertEqual(parse_image_spec('mypool/myimage'), ('mypool', None, 'myimage'))
+
+    @mock.patch('dashboard.services.rbd.RbdConfiguration._rbd.config_list')
+    @mock.patch('dashboard.mgr.get')
+    @mock.patch('dashboard.services.ceph_service.CephService.get_pool_list')
+    def test_pool_rbd_configuration_with_different_pg_states(self, get_pool_list, get, config_list):
+        get_pool_list.return_value = [{
+            'pool_name': 'good-pool',
+            'pool': 1,
+        }, {
+            'pool_name': 'bad-pool',
+            'pool': 2,
+        }]
+        get.return_value = {
+            'by_pool': {
+                '1': {'active+clean': 32},
+                '2': {'creating+incomplete': 32},
+            }
+        }
+        config_list.return_value = [1, 2, 3]
+        config = RbdConfiguration('bad-pool')
+        self.assertEqual(config.list(), [])
+        config = RbdConfiguration('good-pool')
+        self.assertEqual(config.list(), [1, 2, 3])
index 7e153a2eefc6671639287888012b65fcbd8cda38..d69ab2f48df5c87bd6b1cfe67e8b814c35ec29c5 100644 (file)
@@ -3,9 +3,9 @@
 import unittest
 
 try:
 import unittest
 
 try:
-    from mock import patch
-except ImportError:
     from unittest.mock import patch
     from unittest.mock import patch
+except ImportError:
+    from mock import patch  # type: ignore
 
 from ..services.rgw_client import RgwClient, _parse_frontend_config
 from ..settings import Settings
 
 from ..services.rgw_client import RgwClient, _parse_frontend_config
 from ..settings import Settings
@@ -124,6 +124,23 @@ class RgwClientTest(unittest.TestCase, KVStoreMockMixin):
         }
         self.assertEqual(expected_result, instance.get_placement_targets())
 
         }
         self.assertEqual(expected_result, instance.get_placement_targets())
 
+    @patch.object(RgwClient, '_get_realms_info')
+    def test_get_realms(self, realms_info):
+        realms_info.side_effect = [
+            {
+                'default_info': '51de8373-bc24-4f74-a9b7-8e9ef4cb71f7',
+                'realms': [
+                    'realm1',
+                    'realm2'
+                ]
+            },
+            {}
+        ]
+        instance = RgwClient.admin_instance()
+
+        self.assertEqual(['realm1', 'realm2'], instance.get_realms())
+        self.assertEqual([], instance.get_realms())
+
 
 class RgwClientHelperTest(unittest.TestCase):
     def test_parse_frontend_config_1(self):
 
 class RgwClientHelperTest(unittest.TestCase):
     def test_parse_frontend_config_1(self):
index 28241b1561fe03b974b5ff23a9b2ae22c93e1f4d..f877ed8ac431f863fdb5132650ee22e4e56518c0 100644 (file)
@@ -595,7 +595,7 @@ class Module(MgrModule):
         }), '')
         r, outb, outs = result.wait()
         if r != 0:
         }), '')
         r, outb, outs = result.wait()
         if r != 0:
-            self.log.warn('Could not mark OSD %s out. r: [%s], outb: [%s], outs: [%s]' % (osd_ids, r, outb, outs))
+            self.log.warning('Could not mark OSD %s out. r: [%s], outb: [%s], outs: [%s]' % (osd_ids, r, outb, outs))
         for osd_id in osd_ids:
             result = CommandResult('')
             self.send_command(result, 'mon', '', json.dumps({
         for osd_id in osd_ids:
             result = CommandResult('')
             self.send_command(result, 'mon', '', json.dumps({
@@ -606,7 +606,7 @@ class Module(MgrModule):
             }), '')
             r, outb, outs = result.wait()
             if r != 0:
             }), '')
             r, outb, outs = result.wait()
             if r != 0:
-                self.log.warn('Could not set osd.%s primary-affinity, r: [%s], outs: [%s]' % (osd_id, r, outb, outs))
+                self.log.warning('Could not set osd.%s primary-affinity, r: [%s], outs: [%s]' % (osd_id, r, outb, outs))
 
     def extract_smart_features(self, raw):
         # FIXME: extract and normalize raw smartctl --json output and
 
     def extract_smart_features(self, raw):
         # FIXME: extract and normalize raw smartctl --json output and
index a7a12fb7b258b756afc828134e0a3d912962f18e..a640d85b7469195a15f1d43ed2e3fd490fcca307 100644 (file)
@@ -164,7 +164,7 @@ class Module(MgrModule):
         constituent components, such as when Ceph has been built with
         ENABLE_GIT_VERSION=OFF.
         """
         constituent components, such as when Ceph has been built with
         ENABLE_GIT_VERSION=OFF.
         """
-        r = "ceph version (?P<release>\d+)\.(?P<major>\d+)\.(?P<minor>\d+)"
+        r = r"ceph version (?P<release>\d+)\.(?P<major>\d+)\.(?P<minor>\d+)"
         m = re.match(r, version)
         ver = {} if not m else {
             "release": m.group("release"),
         m = re.match(r, version)
         ver = {} if not m else {
             "release": m.group("release"),
index d6ba31f72086247711e4b14b375b53a66856047d..554310d9813fc6713866de059f36e150ec3271c6 100644 (file)
@@ -96,6 +96,9 @@ class HandleCommandResult(namedtuple('HandleCommandResult', ['retval', 'stdout',
         return super(HandleCommandResult, cls).__new__(cls, retval, stdout, stderr)
 
 
         return super(HandleCommandResult, cls).__new__(cls, retval, stdout, stderr)
 
 
+class MonCommandFailed(RuntimeError): pass
+
+
 class OSDMap(ceph_module.BasePyOSDMap):
     def get_epoch(self):
         return self._get_epoch()
 class OSDMap(ceph_module.BasePyOSDMap):
     def get_epoch(self):
         return self._get_epoch()
@@ -1078,6 +1081,17 @@ class MgrModule(ceph_module.BaseMgrModule, MgrModuleLoggingMixin):
         """
         return self._ceph_get_daemon_status(svc_type, svc_id)
 
         """
         return self._ceph_get_daemon_status(svc_type, svc_id)
 
+    def check_mon_command(self, cmd_dict: dict) -> HandleCommandResult:
+        """
+        Wrapper around :func:`~mgr_module.MgrModule.mon_command`, but raises,
+        if ``retval != 0``.
+        """
+
+        r = HandleCommandResult(*self.mon_command(cmd_dict))
+        if r.retval:
+            raise MonCommandFailed(f'{cmd_dict["prefix"]} failed: {r.stderr} retval: {r.retval}')
+        return r
+
     def mon_command(self, cmd_dict):
         """
         Helper for modules that do simple, synchronous mon command
     def mon_command(self, cmd_dict):
         """
         Helper for modules that do simple, synchronous mon command
@@ -1386,7 +1400,7 @@ class MgrModule(ceph_module.BaseMgrModule, MgrModuleLoggingMixin):
 
                 schema = self.get_perf_schema(service['type'], service['id'])
                 if not schema:
 
                 schema = self.get_perf_schema(service['type'], service['id'])
                 if not schema:
-                    self.log.warn("No perf counter schema for {0}.{1}".format(
+                    self.log.warning("No perf counter schema for {0}.{1}".format(
                         service['type'], service['id']
                     ))
                     continue
                         service['type'], service['id']
                     ))
                     continue
index d6d94930de603cc6a5f62e5178e0a6db83edb965..a27c000f99b5b362c47c63f94d6100305943becd 100644 (file)
@@ -4,15 +4,18 @@ ceph-mgr orchestrator interface
 
 Please see the ceph-mgr module developer's guide for more information.
 """
 
 Please see the ceph-mgr module developer's guide for more information.
 """
+
+import copy
+import datetime
+import errno
 import logging
 import pickle
 import logging
 import pickle
+import re
 import time
 import time
+import uuid
+
 from collections import namedtuple
 from functools import wraps
 from collections import namedtuple
 from functools import wraps
-import uuid
-import datetime
-import copy
-import errno
 
 from ceph.deployment import inventory
 from ceph.deployment.service_spec import ServiceSpec, NFSServiceSpec, RGWSpec, \
 
 from ceph.deployment import inventory
 from ceph.deployment.service_spec import ServiceSpec, NFSServiceSpec, RGWSpec, \
@@ -852,24 +855,25 @@ class Orchestrator(object):
         """
         raise NotImplementedError()
 
         """
         raise NotImplementedError()
 
-    def apply(self, specs: List[ServiceSpec]) -> Completion:
+    def apply(self, specs: List["GenericSpec"]) -> Completion:
         """
         Applies any spec
         """
         """
         Applies any spec
         """
-        fns: Dict[str, Callable[[ServiceSpec], Completion]] = {
+        fns: Dict[str, function] = {
             'alertmanager': self.apply_alertmanager,
             'crash': self.apply_crash,
             'grafana': self.apply_grafana,
             'alertmanager': self.apply_alertmanager,
             'crash': self.apply_crash,
             'grafana': self.apply_grafana,
-            'iscsi': cast(Callable[[ServiceSpec], Completion], self.apply_iscsi),
+            'iscsi': self.apply_iscsi,
             'mds': self.apply_mds,
             'mgr': self.apply_mgr,
             'mon': self.apply_mon,
             'mds': self.apply_mds,
             'mgr': self.apply_mgr,
             'mon': self.apply_mon,
-            'nfs': cast(Callable[[ServiceSpec], Completion], self.apply_nfs),
+            'nfs': self.apply_nfs,
             'node-exporter': self.apply_node_exporter,
             'node-exporter': self.apply_node_exporter,
-            'osd': cast(Callable[[ServiceSpec], Completion], lambda dg: self.apply_drivegroups([dg])),
+            'osd': lambda dg: self.apply_drivegroups([dg]),
             'prometheus': self.apply_prometheus,
             'rbd-mirror': self.apply_rbd_mirror,
             'prometheus': self.apply_prometheus,
             'rbd-mirror': self.apply_rbd_mirror,
-            'rgw': cast(Callable[[ServiceSpec], Completion], self.apply_rgw),
+            'rgw': self.apply_rgw,
+            'host': self.add_host,
         }
 
         def merge(ls, r):
         }
 
         def merge(ls, r):
@@ -879,10 +883,12 @@ class Orchestrator(object):
 
         spec, *specs = specs
 
 
         spec, *specs = specs
 
-        completion = fns[spec.service_type](spec)
+        fn = cast(Callable[["GenericSpec"], Completion], fns[spec.service_type])
+        completion = fn(spec)
         for s in specs:
             def next(ls):
         for s in specs:
             def next(ls):
-                return fns[s.service_type](s).then(lambda r: merge(ls, r))
+                fn = cast(Callable[["GenericSpec"], Completion], fns[spec.service_type])
+                return fn(s).then(lambda r: merge(ls, r))
             completion = completion.then(next)
         return completion
 
             completion = completion.then(next)
         return completion
 
@@ -946,11 +952,17 @@ class Orchestrator(object):
         """ Update OSD cluster """
         raise NotImplementedError()
 
         """ Update OSD cluster """
         raise NotImplementedError()
 
-    def set_unmanaged_flag(self, service_name: str, unmanaged_flag: bool) -> HandleCommandResult:
+    def set_unmanaged_flag(self,
+                           unmanaged_flag: bool,
+                           service_type: str = 'osd',
+                           service_name=None
+                           ) -> HandleCommandResult:
         raise NotImplementedError()
 
         raise NotImplementedError()
 
-    def preview_drivegroups(self, drive_group_name: Optional[str] = 'osd',
-                            dg_specs: Optional[List[DriveGroupSpec]] = None) -> List[Dict[str, Dict[Any, Any]]]:
+    def preview_osdspecs(self,
+                         osdspec_name: Optional[str] = 'osd',
+                         osdspecs: Optional[List[DriveGroupSpec]] = None
+                         ) -> Completion:
         """ Get a preview for OSD deployments """
         raise NotImplementedError()
 
         """ Get a preview for OSD deployments """
         raise NotImplementedError()
 
@@ -1160,6 +1172,8 @@ class HostSpec(object):
                  labels=None,  # type: Optional[List[str]]
                  status=None,  # type: Optional[str]
                  ):
                  labels=None,  # type: Optional[List[str]]
                  status=None,  # type: Optional[str]
                  ):
+        self.service_type = 'host'
+
         #: the bare hostname on the host. Not the FQDN.
         self.hostname = hostname  # type: str
 
         #: the bare hostname on the host. Not the FQDN.
         self.hostname = hostname  # type: str
 
@@ -1180,6 +1194,13 @@ class HostSpec(object):
             'status': self.status,
         }
 
             'status': self.status,
         }
 
+    @classmethod
+    def from_json(cls, host_spec):
+        _cls = cls(host_spec['hostname'],
+                   host_spec['addr'] if 'addr' in host_spec else None,
+                   host_spec['labels'] if 'labels' in host_spec else None)
+        return _cls
+
     def __repr__(self):
         args = [self.hostname]  # type: List[Any]
         if self.addr is not None:
     def __repr__(self):
         args = [self.hostname]  # type: List[Any]
         if self.addr is not None:
@@ -1197,6 +1218,14 @@ class HostSpec(object):
                self.addr == other.addr and \
                self.labels == other.labels
 
                self.addr == other.addr and \
                self.labels == other.labels
 
+GenericSpec = Union[ServiceSpec, HostSpec]
+
+def json_to_generic_spec(spec):
+    # type: (dict) -> GenericSpec
+    if 'service_type' in spec and spec['service_type'] == 'host':
+        return HostSpec.from_json(spec)
+    else:
+        return ServiceSpec.from_json(spec)
 
 class UpgradeStatusSpec(object):
     # Orchestrator's report on what's going on with any ongoing upgrade
 
 class UpgradeStatusSpec(object):
     # Orchestrator's report on what's going on with any ongoing upgrade
@@ -1245,6 +1274,7 @@ class DaemonDescription(object):
                  created=None,
                  started=None,
                  last_configured=None,
                  created=None,
                  started=None,
                  last_configured=None,
+                 osdspec_affinity=None,
                  last_deployed=None):
         # Host is at the same granularity as InventoryHost
         self.hostname = hostname
                  last_deployed=None):
         # Host is at the same granularity as InventoryHost
         self.hostname = hostname
@@ -1282,6 +1312,9 @@ class DaemonDescription(object):
         self.last_configured = last_configured # type: Optional[datetime.datetime]
         self.last_deployed = last_deployed    # type: Optional[datetime.datetime]
 
         self.last_configured = last_configured # type: Optional[datetime.datetime]
         self.last_deployed = last_deployed    # type: Optional[datetime.datetime]
 
+        # Affinity to a certain OSDSpec
+        self.osdspec_affinity = osdspec_affinity  # type: Optional[str]
+
     def name(self):
         return '%s.%s' % (self.daemon_type, self.daemon_id)
 
     def name(self):
         return '%s.%s' % (self.daemon_type, self.daemon_id)
 
@@ -1292,20 +1325,46 @@ class DaemonDescription(object):
         return False
 
     def service_id(self):
         return False
 
     def service_id(self):
-        if self.daemon_type == 'rgw':
-            if self.hostname and self.hostname in self.daemon_id:
-                pre, post_ = self.daemon_id.split(self.hostname)
+        def _match():
+            err = OrchestratorError("DaemonDescription: Cannot calculate service_id: " \
+                    f"daemon_id='{self.daemon_id}' hostname='{self.hostname}'")
+
+            if not self.hostname:
+                # TODO: can a DaemonDescription exist without a hostname?
+                raise err
+
+            # use the bare hostname, not the FQDN.
+            host = self.hostname.split('.')[0]
+
+            if host == self.daemon_id:
+                # daemon_id == "host"
+                return self.daemon_id
+
+            elif host in self.daemon_id:
+                # daemon_id == "service_id.host"
+                # daemon_id == "service_id.host.random"
+                pre, post = self.daemon_id.rsplit(host, 1)
+                if not pre.endswith('.'):
+                    # '.' sep missing at front of host
+                    raise err
+                elif post and not post.startswith('.'):
+                    # '.' sep missing at end of host
+                    raise err
                 return pre[:-1]
                 return pre[:-1]
-            else:
-                # daemon_id == "realm.zone.host.random"
+
+            # daemon_id == "service_id.random"
+            if self.daemon_type == 'rgw':
                 v = self.daemon_id.split('.')
                 v = self.daemon_id.split('.')
-                if len(v) == 4:
+                if len(v) in [3, 4]:
                     return '.'.join(v[0:2])
                     return '.'.join(v[0:2])
-                # subcluster or fqdn? undecidable.
-                raise OrchestratorError(f"DaemonDescription: Cannot calculate service_id: {v}")
-        if self.daemon_type in ['mds', 'nfs', 'iscsi']:
-            return self.daemon_id.split('.')[0]
-        return self.daemon_type
+
+            # daemon_id == "service_id"
+            return self.daemon_id
+
+        if self.daemon_type in ['mds', 'nfs', 'iscsi', 'rgw']:
+            return _match()
+
+        return self.daemon_id
 
     def service_name(self):
         if self.daemon_type in ['rgw', 'mds', 'nfs', 'iscsi']:
 
     def service_name(self):
         if self.daemon_type in ['rgw', 'mds', 'nfs', 'iscsi']:
index 7df8c847cecc7c792de81cbb71e59ae501da2775..7947cdb408c4ea019fb7280cf6421362c7e06eba 100644 (file)
@@ -1,8 +1,9 @@
 import datetime
 import errno
 import json
 import datetime
 import errno
 import json
-from typing import List, Set, Optional, Iterator
+from typing import List, Set, Optional, Iterator, cast
 import re
 import re
+import ast
 
 import yaml
 import six
 
 import yaml
 import six
@@ -19,7 +20,7 @@ from ._interface import OrchestratorClientMixin, DeviceLightLoc, _cli_read_comma
     raise_if_exception, _cli_write_command, TrivialReadCompletion, OrchestratorError, \
     NoOrchestrator, OrchestratorValidationError, NFSServiceSpec, \
     RGWSpec, InventoryFilter, InventoryHost, HostSpec, CLICommandMeta, \
     raise_if_exception, _cli_write_command, TrivialReadCompletion, OrchestratorError, \
     NoOrchestrator, OrchestratorValidationError, NFSServiceSpec, \
     RGWSpec, InventoryFilter, InventoryHost, HostSpec, CLICommandMeta, \
-    ServiceDescription, DaemonDescription, IscsiServiceSpec
+    ServiceDescription, DaemonDescription, IscsiServiceSpec, json_to_generic_spec, GenericSpec
 
 
 def nice_delta(now, t, suffix=''):
 
 
 def nice_delta(now, t, suffix=''):
@@ -452,9 +453,13 @@ class OrchestratorCli(OrchestratorClientMixin, MgrModule):
 
             return HandleCommandResult(stdout=table.get_string())
 
 
             return HandleCommandResult(stdout=table.get_string())
 
-    def set_unmanaged_flag(self, service_name: str, unmanaged_flag: bool) -> HandleCommandResult:
+    def set_unmanaged_flag(self,
+                           unmanaged_flag: bool,
+                           service_type: str = 'osd',
+                           service_name=None
+                           ) -> HandleCommandResult:
         # setting unmanaged for $service_name
         # setting unmanaged for $service_name
-        completion = self.describe_service(service_name=service_name)
+        completion = self.describe_service(service_name=service_name, service_type=service_type)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         services: List[ServiceDescription] = completion.result
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         services: List[ServiceDescription] = completion.result
@@ -463,7 +468,7 @@ class OrchestratorCli(OrchestratorClientMixin, MgrModule):
             spec = service.spec
             spec.unmanaged = unmanaged_flag
             specs.append(spec)
             spec = service.spec
             spec.unmanaged = unmanaged_flag
             specs.append(spec)
-        completion = self.apply(specs)
+        completion = self.apply(cast(List[GenericSpec], specs))
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         if specs:
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         if specs:
@@ -473,32 +478,65 @@ class OrchestratorCli(OrchestratorClientMixin, MgrModule):
             return HandleCommandResult(stdout=f"No specs found with the <service_name> -> {service_name}")
 
     @_cli_write_command(
             return HandleCommandResult(stdout=f"No specs found with the <service_name> -> {service_name}")
 
     @_cli_write_command(
-        'orch apply osd',
-        'name=all_available_devices,type=CephBool,req=false '
-        'name=preview,type=CephBool,req=false '
+        'orch osd spec',
         'name=service_name,type=CephString,req=false '
         'name=service_name,type=CephString,req=false '
+        'name=preview,type=CephBool,req=false '
         'name=unmanaged,type=CephBool,req=false '
         "name=format,type=CephChoices,strings=plain|json|json-pretty|yaml,req=false",
         'name=unmanaged,type=CephBool,req=false '
         "name=format,type=CephChoices,strings=plain|json|json-pretty|yaml,req=false",
-        'Create OSD daemon(s) using a drive group spec')
-    def _apply_osd(self,
-                   all_available_devices: bool = False,
-                   preview: bool = False,
-                   service_name: Optional[str] = None,
-                   unmanaged: Optional[bool] = None,
-                   format: Optional[str] = 'plain',
-                   inbuf: Optional[str] = None) -> HandleCommandResult:
-        """Apply DriveGroupSpecs to create OSDs"""
+        'Common operations on an OSDSpec. Allows previewing and changing the unmanaged flag.')
+    def _misc_osd(self,
+                  preview: bool = False,
+                  service_name: Optional[str] = None,
+                  unmanaged=None,
+                  format: Optional[str] = 'plain',
+                  ) -> HandleCommandResult:
         usage = """
         usage = """
-Usage:
-  ceph orch apply osd -i <json_file/yaml_file>
-  ceph orch apply osd --use-all-devices
-  ceph orch apply osd --service-name <service_name> --preview
-  ceph orch apply osd --service-name <service_name> --unmanaged=True|False
+usage:
+  ceph orch osd spec --preview
+  ceph orch osd spec --unmanaged=true|false 
+  ceph orch osd spec --service-name <service_name> --preview
+  ceph orch osd spec --service-name <service_name> --unmanaged=true|false (defaults to false)
+  
+Restrictions:
+
+    Mutexes:
+    * --preview ,--unmanaged 
+
+    Although it it's possible to set these at the same time, we will lack a proper response to each
+    action, possibly shadowing any failures.
+
+Description:
+
+    * --service-name
+        If flag is omitted, assume to target all existing OSDSpecs.
+        Needs either --unamanged or --preview.
+
+    * --unmanaged
+        Applies <unamanged> flag to targeted --service-name.
+        If --service-name is omitted, target all OSDSpecs
+        
+Examples:
+
+    # ceph orch osd spec --preview
+    
+    Queries all available OSDSpecs for previews
+    
+    # ceph orch osd spec --service-name my-osdspec-name --preview
+    
+    Queries only the specified <my-osdspec-name> for previews
+    
+    # ceph orch osd spec --unmanaged=true
+    
+    # Changes flags of all available OSDSpecs to true
+    
+    # ceph orch osd spec --service-name my-osdspec-name --unmanaged=true
+    
+    Changes the unmanaged flag of <my-osdspec-name> to true
 """
 
 """
 
-        def print_preview(prev, format):
+        def print_preview(previews, format_to):
             if format != 'plain':
             if format != 'plain':
-                return to_format(prev, format)
+                return to_format(previews, format_to)
             else:
                 table = PrettyTable(
                     ['NAME', 'HOST', 'DATA', 'DB', 'WAL'],
             else:
                 table = PrettyTable(
                     ['NAME', 'HOST', 'DATA', 'DB', 'WAL'],
@@ -506,70 +544,148 @@ Usage:
                 table.align = 'l'
                 table.left_padding_width = 0
                 table.right_padding_width = 1
                 table.align = 'l'
                 table.left_padding_width = 0
                 table.right_padding_width = 1
-                for data in prev:
-                    dg_name = data.get('drivegroup')
-                    hostname = data.get('host')
-                    for osd in data.get('data', {}).get('osds', []):
-                        db_path = '-'
-                        wal_path = '-'
-                        block_db = osd.get('block.db', {}).get('path')
-                        block_wal = osd.get('block.wal', {}).get('path')
-                        block_data = osd.get('data', {}).get('path', '')
-                        if not block_data:
-                            continue
-                        if block_db:
-                            db_path = data.get('data', {}).get('vg', {}).get('devices', [])
-                        if block_wal:
-                            wal_path = data.get('data', {}).get('wal_vg', {}).get('devices', [])
-                        table.add_row((dg_name, hostname, block_data, db_path, wal_path))
-                out = table.get_string()
-                if not out:
-                    out = "No pending deployments."
-                return out
-
-        if (inbuf or all_available_devices) and service_name:
-            # mutually exclusive
+                for host, data in previews.items():
+                    for spec in data:
+                        if spec.get('error'):
+                            return spec.get('message')
+                        dg_name = spec.get('osdspec')
+                        for osd in spec.get('data', {}).get('osds', []):
+                            db_path = '-'
+                            wal_path = '-'
+                            block_db = osd.get('block.db', {}).get('path')
+                            block_wal = osd.get('block.wal', {}).get('path')
+                            block_data = osd.get('data', {}).get('path', '')
+                            if not block_data:
+                                continue
+                            if block_db:
+                                db_path = spec.get('data', {}).get('vg', {}).get('devices', [])
+                            if block_wal:
+                                wal_path = spec.get('data', {}).get('wal_vg', {}).get('devices', [])
+                            table.add_row((dg_name, host, block_data, db_path, wal_path))
+                ret = table.get_string()
+                if not ret:
+                    ret = "No preview available"
+                return ret
+
+        if preview and (unmanaged is not None):
             return HandleCommandResult(-errno.EINVAL, stderr=usage)
 
             return HandleCommandResult(-errno.EINVAL, stderr=usage)
 
-        if preview and not (service_name or all_available_devices or inbuf):
-            # get all stored drivegroups and print
-            prev = self.preview_drivegroups()
-            return HandleCommandResult(stdout=print_preview(prev, format))
+        if service_name:
+            if preview:
+                completion = self.preview_osdspecs(osdspec_name=service_name)
+                self._orchestrator_wait([completion])
+                raise_if_exception(completion)
+                out = completion.result_str()
+                return HandleCommandResult(stdout=print_preview(ast.literal_eval(out), format))
+            if unmanaged is not None:
+                return self.set_unmanaged_flag(service_name=service_name, unmanaged_flag=unmanaged)
 
 
-        if service_name and preview:
-            # get specified drivegroup and print
-            prev = self.preview_drivegroups(service_name)
-            return HandleCommandResult(stdout=print_preview(prev, format))
+            return HandleCommandResult(-errno.EINVAL, stderr=usage)
+
+        if preview:
+            completion = self.preview_osdspecs()
+            self._orchestrator_wait([completion])
+            raise_if_exception(completion)
+            out = completion.result_str()
+            return HandleCommandResult(stdout=print_preview(ast.literal_eval(out), format))
 
 
-        if service_name and unmanaged is not None:
-            return self.set_unmanaged_flag(service_name, unmanaged)
+        if unmanaged is not None:
+            return self.set_unmanaged_flag(unmanaged_flag=unmanaged)
+
+        return HandleCommandResult(-errno.EINVAL, stderr=usage)
+
+    @_cli_write_command(
+        'orch apply osd',
+        'name=all_available_devices,type=CephBool,req=false '
+        'name=unmanaged,type=CephBool,req=false '
+        "name=format,type=CephChoices,strings=plain|json|json-pretty|yaml,req=false",
+        'Create OSD daemon(s) using a drive group spec')
+    def _apply_osd(self,
+                   all_available_devices: bool = False,
+                   format: Optional[str] = 'plain',
+                   unmanaged=None,
+                   inbuf: Optional[str] = None) -> HandleCommandResult:
+        """Apply DriveGroupSpecs to create OSDs"""
+        usage = """
+usage:
+  ceph orch apply osd -i <json_file/yaml_file>
+  ceph orch apply osd --all-available-devices
+  ceph orch apply osd --all-available-devices --unmanaged=true|false 
+  
+Restrictions:
+  
+  Mutexes:
+  * -i, --all-available-devices
+  * -i, --unmanaged (this would overwrite the osdspec loaded from a file)
+  
+  Parameters:
+  
+  * --unmanaged
+     Only works with --all-available-devices.
+  
+Description:
+  
+  * -i
+    An inbuf object like a file or a json/yaml blob containing a valid OSDSpec
+    
+  * --all-available-devices
+    The most simple OSDSpec there is. Takes all as 'available' marked devices
+    and creates standalone OSDs on them.
+    
+  * --unmanaged
+    Set a the unmanaged flag for all--available-devices (default is False)
+    
+Examples:
+
+   # ceph orch apply osd -i <file.yml|json>
+   
+   Applies one or more OSDSpecs found in <file>
+   
+   # ceph orch osd apply --all-available-devices --unmanaged=true
+   
+   Creates and applies simple OSDSpec with the unmanaged flag set to <true>
+"""
+
+        if inbuf and all_available_devices:
+            # mutually exclusive
+            return HandleCommandResult(-errno.EINVAL, stderr=usage)
 
         if not inbuf and not all_available_devices:
 
         if not inbuf and not all_available_devices:
+            # one parameter must be present
             return HandleCommandResult(-errno.EINVAL, stderr=usage)
             return HandleCommandResult(-errno.EINVAL, stderr=usage)
+
         if inbuf:
         if inbuf:
-            if all_available_devices:
-                raise OrchestratorError('--all-available-devices cannot be combined with an osd spec')
+            if unmanaged is not None:
+                return HandleCommandResult(-errno.EINVAL, stderr=usage)
             try:
                 drivegroups = yaml.load_all(inbuf)
                 dg_specs = [DriveGroupSpec.from_json(dg) for dg in drivegroups]
             try:
                 drivegroups = yaml.load_all(inbuf)
                 dg_specs = [DriveGroupSpec.from_json(dg) for dg in drivegroups]
+                # This acts weird when abstracted to a function
+                completion = self.apply_drivegroups(dg_specs)
+                self._orchestrator_wait([completion])
+                raise_if_exception(completion)
+                return HandleCommandResult(stdout=completion.result_str())
             except ValueError as e:
                 msg = 'Failed to read JSON/YAML input: {}'.format(str(e)) + usage
                 return HandleCommandResult(-errno.EINVAL, stderr=msg)
             except ValueError as e:
                 msg = 'Failed to read JSON/YAML input: {}'.format(str(e)) + usage
                 return HandleCommandResult(-errno.EINVAL, stderr=msg)
-        else:
+        if all_available_devices:
+            if unmanaged is None:
+                unmanaged = False
             dg_specs = [
                 DriveGroupSpec(
                     service_id='all-available-devices',
                     placement=PlacementSpec(host_pattern='*'),
                     data_devices=DeviceSelection(all=True),
             dg_specs = [
                 DriveGroupSpec(
                     service_id='all-available-devices',
                     placement=PlacementSpec(host_pattern='*'),
                     data_devices=DeviceSelection(all=True),
+                    unmanaged=unmanaged
                 )
             ]
                 )
             ]
-
-        if not preview:
+            # This acts weird when abstracted to a function
             completion = self.apply_drivegroups(dg_specs)
             self._orchestrator_wait([completion])
             raise_if_exception(completion)
             completion = self.apply_drivegroups(dg_specs)
             self._orchestrator_wait([completion])
             raise_if_exception(completion)
-        ret = self.preview_drivegroups(dg_specs=dg_specs)
-        return HandleCommandResult(stdout=print_preview(ret, format))
+            return HandleCommandResult(stdout=completion.result_str())
+
+        return HandleCommandResult(-errno.EINVAL, stderr=usage)
 
     @_cli_write_command(
         'orch daemon add osd',
 
     @_cli_write_command(
         'orch daemon add osd',
@@ -640,7 +756,10 @@ Usage:
         'name=daemon_type,type=CephChoices,strings=mon|mgr|rbd-mirror|crash|alertmanager|grafana|node-exporter|prometheus,req=false '
         'name=placement,type=CephString,req=false',
         'Add daemon(s)')
         'name=daemon_type,type=CephChoices,strings=mon|mgr|rbd-mirror|crash|alertmanager|grafana|node-exporter|prometheus,req=false '
         'name=placement,type=CephString,req=false',
         'Add daemon(s)')
-    def _daemon_add_misc(self, daemon_type=None, placement=None, inbuf=None):
+    def _daemon_add_misc(self,
+                         daemon_type: Optional[str] = None,
+                         placement: Optional[str] = None,
+                         inbuf: Optional[str] = None) -> HandleCommandResult:
         usage = f"""Usage:
     ceph orch daemon add -i <json_file>
     ceph orch daemon add {daemon_type or '<daemon_type>'} <placement>"""
         usage = f"""Usage:
     ceph orch daemon add -i <json_file>
     ceph orch daemon add {daemon_type or '<daemon_type>'} <placement>"""
@@ -649,10 +768,11 @@ Usage:
                 raise OrchestratorValidationError(usage)
             spec = ServiceSpec.from_json(yaml.safe_load(inbuf))
         else:
                 raise OrchestratorValidationError(usage)
             spec = ServiceSpec.from_json(yaml.safe_load(inbuf))
         else:
-            placement = PlacementSpec.from_string(placement)
-            placement.validate()
+            spec = PlacementSpec.from_string(placement)
+            assert daemon_type
+            spec = ServiceSpec(daemon_type, placement=spec)
 
 
-            spec = ServiceSpec(daemon_type, placement=placement)
+        daemon_type = spec.service_type
 
         if daemon_type == 'mon':
             completion = self.add_mon(spec)
 
         if daemon_type == 'mon':
             completion = self.add_mon(spec)
@@ -670,6 +790,12 @@ Usage:
             completion = self.add_node_exporter(spec)
         elif daemon_type == 'prometheus':
             completion = self.add_prometheus(spec)
             completion = self.add_node_exporter(spec)
         elif daemon_type == 'prometheus':
             completion = self.add_prometheus(spec)
+        elif daemon_type == 'mds':
+            completion = self.add_mds(spec)
+        elif daemon_type == 'rgw':
+            completion = self.add_rgw(spec)
+        elif daemon_type == 'nfs':
+            completion = self.add_nfs(spec)
         elif daemon_type == 'iscsi':
             completion = self.add_iscsi(spec)
         else:
         elif daemon_type == 'iscsi':
             completion = self.add_iscsi(spec)
         else:
@@ -684,11 +810,19 @@ Usage:
         'name=fs_name,type=CephString '
         'name=placement,type=CephString,req=false',
         'Start MDS daemon(s)')
         'name=fs_name,type=CephString '
         'name=placement,type=CephString,req=false',
         'Start MDS daemon(s)')
-    def _mds_add(self, fs_name, placement=None):
+    def _mds_add(self,
+                 fs_name: str,
+                 placement: Optional[str] = None,
+                 inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
         spec = ServiceSpec(
         spec = ServiceSpec(
-            'mds', fs_name,
+            service_type='mds',
+            service_id=fs_name,
             placement=PlacementSpec.from_string(placement),
         )
             placement=PlacementSpec.from_string(placement),
         )
+
         completion = self.add_mds(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         completion = self.add_mds(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
@@ -696,88 +830,99 @@ Usage:
 
     @_cli_write_command(
         'orch daemon add rgw',
 
     @_cli_write_command(
         'orch daemon add rgw',
-        'name=realm_name,type=CephString,req=false '
-        'name=zone_name,type=CephString,req=false '
+        'name=realm_name,type=CephString '
+        'name=zone_name,type=CephString '
+        'name=subcluster,type=CephString,req=false '
+        'name=port,type=CephInt,req=false '
+        'name=ssl,type=CephBool,req=false '
         'name=placement,type=CephString,req=false',
         'Start RGW daemon(s)')
         'name=placement,type=CephString,req=false',
         'Start RGW daemon(s)')
-    def _rgw_add(self, realm_name=None, zone_name=None, placement=None, inbuf=None):
-        usage = """
-Usage:
-  ceph orch daemon rgw add -i <json_file>
-  ceph orch daemon rgw add <realm_name> <zone_name>
-        """
+    def _rgw_add(self,
+                 realm_name: str,
+                 zone_name: str,
+                 subcluster: Optional[str] = None,
+                 port: Optional[int] = None,
+                 ssl: bool = False,
+                 placement: Optional[str] = None,
+                 inbuf: Optional[str] = None) -> HandleCommandResult:
         if inbuf:
         if inbuf:
-            try:
-                rgw_spec = RGWSpec.from_json(json.loads(inbuf))
-            except ValueError as e:
-                msg = 'Failed to read JSON input: {}'.format(str(e)) + usage
-                return HandleCommandResult(-errno.EINVAL, stderr=msg)
-        elif realm_name and zone_name:
-            rgw_spec = RGWSpec(
-                rgw_realm=realm_name,
-                rgw_zone=zone_name,
-                placement=PlacementSpec.from_string(placement))
-        else:
-            return HandleCommandResult(-errno.EINVAL, stderr=usage)
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
 
 
-        completion = self.add_rgw(rgw_spec)
-        self._orchestrator_wait([completion])
-        raise_if_exception(completion)
-        return HandleCommandResult(stdout=completion.result_str())
+        spec = RGWSpec(
+            rgw_realm=realm_name,
+            rgw_zone=zone_name,
+            subcluster=subcluster,
+            rgw_frontend_port=port,
+            ssl=ssl,
+            placement=PlacementSpec.from_string(placement),
+        )
 
 
-    @_cli_write_command(
-        'orch daemon add iscsi',
-        'name=pool,type=CephString '
-        'name=fqdn_enabled,type=CephString,req=false '
-        'name=trusted_ip_list,type=CephString,req=false '
-        'name=placement,type=CephString,req=false',
-        'Start iscsi daemon(s)')
-    def _iscsi_add(self, pool, fqdn_enabled=None, trusted_ip_list=None, placement=None, inbuf=None):
-        usage = """
-        Usage:
-          ceph orch daemon add iscsi -i <json_file>
-          ceph orch daemon add iscsi <pool>
-                """
-        if inbuf:
-            try:
-                iscsi_spec = IscsiServiceSpec.from_json(json.loads(inbuf))
-            except ValueError as e:
-                msg = 'Failed to read JSON input: {}'.format(str(e)) + usage
-                return HandleCommandResult(-errno.EINVAL, stderr=msg)
-        else:
-            iscsi_spec = IscsiServiceSpec(
-                service_id='iscsi',
-                pool=pool,
-                fqdn_enabled=fqdn_enabled,
-                trusted_ip_list=trusted_ip_list,
-                placement=PlacementSpec.from_string(placement),
-            )
-
-        completion = self.add_iscsi(iscsi_spec)
+        completion = self.add_rgw(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         return HandleCommandResult(stdout=completion.result_str())
 
     @_cli_write_command(
         'orch daemon add nfs',
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         return HandleCommandResult(stdout=completion.result_str())
 
     @_cli_write_command(
         'orch daemon add nfs',
-        "name=svc_arg,type=CephString "
+        "name=svc_id,type=CephString "
         "name=pool,type=CephString "
         "name=namespace,type=CephString,req=false "
         'name=placement,type=CephString,req=false',
         'Start NFS daemon(s)')
         "name=pool,type=CephString "
         "name=namespace,type=CephString,req=false "
         'name=placement,type=CephString,req=false',
         'Start NFS daemon(s)')
-    def _nfs_add(self, svc_arg, pool, namespace=None, placement=None):
+    def _nfs_add(self,
+                 svc_id: str,
+                 pool: str,
+                 namespace: Optional[str] = None,
+                 placement: Optional[str] = None,
+                 inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
         spec = NFSServiceSpec(
         spec = NFSServiceSpec(
-            svc_arg,
+            service_id=svc_id,
             pool=pool,
             namespace=namespace,
             placement=PlacementSpec.from_string(placement),
         )
             pool=pool,
             namespace=namespace,
             placement=PlacementSpec.from_string(placement),
         )
+
         spec.validate_add()
         completion = self.add_nfs(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         return HandleCommandResult(stdout=completion.result_str())
 
         spec.validate_add()
         completion = self.add_nfs(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         return HandleCommandResult(stdout=completion.result_str())
 
+    @_cli_write_command(
+        'orch daemon add iscsi',
+        'name=pool,type=CephString '
+        'name=api_user,type=CephString '
+        'name=api_password,type=CephString '
+        'name=trusted_ip_list,type=CephString,req=false '
+        'name=placement,type=CephString,req=false',
+        'Start iscsi daemon(s)')
+    def _iscsi_add(self,
+                   pool: str,
+                   api_user: str,
+                   api_password: str,
+                   trusted_ip_list: Optional[str] = None,
+                   placement: Optional[str] = None,
+                   inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
+        spec = IscsiServiceSpec(
+            service_id='iscsi',
+            pool=pool,
+            api_user=api_user,
+            api_password=api_password,
+            trusted_ip_list=trusted_ip_list,
+            placement=PlacementSpec.from_string(placement),
+        )
+
+        completion = self.add_iscsi(spec)
+        self._orchestrator_wait([completion])
+        raise_if_exception(completion)
+        return HandleCommandResult(stdout=completion.result_str())
+
     @_cli_write_command(
         'orch',
         "name=action,type=CephChoices,strings=start|stop|restart|redeploy|reconfig "
     @_cli_write_command(
         'orch',
         "name=action,type=CephChoices,strings=start|stop|restart|redeploy|reconfig "
@@ -839,7 +984,11 @@ Usage:
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the size or placement for a service or apply a large yaml spec')
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the size or placement for a service or apply a large yaml spec')
-    def _apply_misc(self, service_type=None, placement=None, unmanaged=False, inbuf=None):
+    def _apply_misc(self,
+                    service_type: Optional[str] = None,
+                    placement: Optional[str] = None,
+                    unmanaged: bool = False,
+                    inbuf: Optional[str] = None) -> HandleCommandResult:
         usage = """Usage:
   ceph orch apply -i <yaml spec>
   ceph orch apply <service_type> <placement> [--unmanaged]
         usage = """Usage:
   ceph orch apply -i <yaml spec>
   ceph orch apply <service_type> <placement> [--unmanaged]
@@ -848,13 +997,13 @@ Usage:
             if service_type or placement or unmanaged:
                 raise OrchestratorValidationError(usage)
             content: Iterator = yaml.load_all(inbuf)
             if service_type or placement or unmanaged:
                 raise OrchestratorValidationError(usage)
             content: Iterator = yaml.load_all(inbuf)
-            specs = [ServiceSpec.from_json(s) for s in content]
-        else:
-            placement = PlacementSpec.from_string(placement)
-            placement.validate()
-
-            specs = [ServiceSpec(service_type, placement=placement, unmanaged=unmanaged)]
+            specs: List[GenericSpec] = [json_to_generic_spec(s) for s in content]
 
 
+        else:
+            placmentspec = PlacementSpec.from_string(placement)
+            assert service_type
+            specs = [ServiceSpec(service_type, placement=placmentspec, unmanaged=unmanaged)]
         completion = self.apply(specs)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         completion = self.apply(specs)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
@@ -866,13 +1015,20 @@ Usage:
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the number of MDS instances for the given fs_name')
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the number of MDS instances for the given fs_name')
-    def _apply_mds(self, fs_name, placement=None, unmanaged=False):
-        placement = PlacementSpec.from_string(placement)
-        placement.validate()
+    def _apply_mds(self,
+                   fs_name: str,
+                   placement: Optional[str] = None,
+                   unmanaged: bool = False,
+                   inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
         spec = ServiceSpec(
         spec = ServiceSpec(
-            'mds', fs_name,
-            placement=placement,
+            service_type='mds',
+            service_id=fs_name,
+            placement=PlacementSpec.from_string(placement),
             unmanaged=unmanaged)
             unmanaged=unmanaged)
+
         completion = self.apply_mds(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         completion = self.apply_mds(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
@@ -888,21 +1044,28 @@ Usage:
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the number of RGW instances for the given zone')
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Update the number of RGW instances for the given zone')
-    def _apply_rgw(self, zone_name, realm_name,
-                   subcluster=None,
-                   port=None,
-                   ssl=False,
-                   placement=None,
-                   unmanaged=False):
+    def _apply_rgw(self,
+                   realm_name: str,
+                   zone_name: str,
+                   subcluster: Optional[str] = None,
+                   port: Optional[int] = None,
+                   ssl: bool = False,
+                   placement: Optional[str] = None,
+                   unmanaged: bool = False,
+                   inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
         spec = RGWSpec(
             rgw_realm=realm_name,
             rgw_zone=zone_name,
             subcluster=subcluster,
         spec = RGWSpec(
             rgw_realm=realm_name,
             rgw_zone=zone_name,
             subcluster=subcluster,
-            placement=PlacementSpec.from_string(placement),
-            unmanaged=unmanaged,
             rgw_frontend_port=port,
             ssl=ssl,
             rgw_frontend_port=port,
             ssl=ssl,
+            placement=PlacementSpec.from_string(placement),
+            unmanaged=unmanaged,
         )
         )
+
         completion = self.apply_rgw(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
         completion = self.apply_rgw(spec)
         self._orchestrator_wait([completion])
         raise_if_exception(completion)
@@ -916,16 +1079,62 @@ Usage:
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Scale an NFS service')
         'name=placement,type=CephString,req=false '
         'name=unmanaged,type=CephBool,req=false',
         'Scale an NFS service')
-    def _apply_nfs(self, svc_id, pool, namespace=None, placement=None, unmanaged=False):
+    def _apply_nfs(self,
+                   svc_id: str,
+                   pool: str,
+                   namespace: Optional[str] = None,
+                   placement: Optional[str] = None,
+                   unmanaged: bool = False,
+                   inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
         spec = NFSServiceSpec(
         spec = NFSServiceSpec(
-            svc_id,
+            service_id=svc_id,
             pool=pool,
             namespace=namespace,
             placement=PlacementSpec.from_string(placement),
             unmanaged=unmanaged,
         )
             pool=pool,
             namespace=namespace,
             placement=PlacementSpec.from_string(placement),
             unmanaged=unmanaged,
         )
+
         completion = self.apply_nfs(spec)
         self._orchestrator_wait([completion])
         completion = self.apply_nfs(spec)
         self._orchestrator_wait([completion])
+        raise_if_exception(completion)
+        return HandleCommandResult(stdout=completion.result_str())
+
+    @_cli_write_command(
+        'orch apply iscsi',
+        'name=pool,type=CephString '
+        'name=api_user,type=CephString '
+        'name=api_password,type=CephString '
+        'name=trusted_ip_list,type=CephString,req=false '
+        'name=placement,type=CephString,req=false '
+        'name=unmanaged,type=CephBool,req=false',
+        'Scale an iSCSI service')
+    def _apply_iscsi(self,
+                     pool: str,
+                     api_user: str,
+                     api_password: str,
+                     trusted_ip_list: Optional[str] = None,
+                     placement: Optional[str] = None,
+                     unmanaged: bool = False,
+                     inbuf: Optional[str] = None) -> HandleCommandResult:
+        if inbuf:
+            raise OrchestratorValidationError('unrecognized command -i; -h or --help for usage')
+
+        spec = IscsiServiceSpec(
+            service_id='iscsi',
+            pool=pool,
+            api_user=api_user,
+            api_password=api_password,
+            trusted_ip_list=trusted_ip_list,
+            placement=PlacementSpec.from_string(placement),
+            unmanaged=unmanaged,
+        )
+
+        completion = self.apply_iscsi(spec)
+        self._orchestrator_wait([completion])
+        raise_if_exception(completion)
         return HandleCommandResult(stdout=completion.result_str())
 
     @_cli_write_command(
         return HandleCommandResult(stdout=completion.result_str())
 
     @_cli_write_command(
index c37d7f2ce8fd2f96d1210593a3dd8d306f185aa0..ccc73bf261188a574336136da091521d78c954fc 100644 (file)
@@ -467,10 +467,10 @@ class Module(MgrModule):
         # In the case that we ignored some PGs, log the reason why (we may
         # not end up creating a progress event)
         if len(unmoved_pgs):
         # In the case that we ignored some PGs, log the reason why (we may
         # not end up creating a progress event)
         if len(unmoved_pgs):
-            self.log.warn("{0} PGs were on osd.{1}, but didn't get new locations".format(
+            self.log.warning("{0} PGs were on osd.{1}, but didn't get new locations".format(
                 len(unmoved_pgs), osd_id))
 
                 len(unmoved_pgs), osd_id))
 
-        self.log.warn("{0} PGs affected by osd.{1} being marked {2}".format(
+        self.log.warning("{0} PGs affected by osd.{1} being marked {2}".format(
             len(affected_pgs), osd_id, marked))
 
 
             len(affected_pgs), osd_id, marked))
 
 
@@ -510,13 +510,13 @@ class Module(MgrModule):
                 old_weight = old_osds[osd_id]['in']
 
                 if new_weight == 0.0 and old_weight > new_weight:
                 old_weight = old_osds[osd_id]['in']
 
                 if new_weight == 0.0 and old_weight > new_weight:
-                    self.log.warn("osd.{0} marked out".format(osd_id))
+                    self.log.warning("osd.{0} marked out".format(osd_id))
                     self._osd_in_out(old_osdmap, old_dump, new_osdmap, osd_id, "out")
                 elif new_weight >= 1.0 and old_weight == 0.0:
                     # Only consider weight>=1.0 as "in" to avoid spawning
                     # individual recovery events on every adjustment
                     # in a gradual weight-in
                     self._osd_in_out(old_osdmap, old_dump, new_osdmap, osd_id, "out")
                 elif new_weight >= 1.0 and old_weight == 0.0:
                     # Only consider weight>=1.0 as "in" to avoid spawning
                     # individual recovery events on every adjustment
                     # in a gradual weight-in
-                    self.log.warn("osd.{0} marked in".format(osd_id))
+                    self.log.warning("osd.{0} marked in".format(osd_id))
                     self._osd_in_out(old_osdmap, old_dump, new_osdmap, osd_id, "in")
 
     def notify(self, notify_type, notify_data):
                     self._osd_in_out(old_osdmap, old_dump, new_osdmap, osd_id, "in")
 
     def notify(self, notify_type, notify_data):
@@ -669,7 +669,7 @@ class Module(MgrModule):
                                                                    ev.message))
             self._complete(ev)
         except KeyError:
                                                                    ev.message))
             self._complete(ev)
         except KeyError:
-            self.log.warn("complete: ev {0} does not exist".format(ev_id))
+            self.log.warning("complete: ev {0} does not exist".format(ev_id))
             pass
 
     def fail(self, ev_id, message):
             pass
 
     def fail(self, ev_id, message):
@@ -686,7 +686,7 @@ class Module(MgrModule):
                                                                     message))
             self._complete(ev)
         except KeyError:
                                                                     message))
             self._complete(ev)
         except KeyError:
-            self.log.warn("fail: ev {0} does not exist".format(ev_id))
+            self.log.warning("fail: ev {0} does not exist".format(ev_id))
 
     def _handle_ls(self):
         if len(self._events) or len(self._completed_events):
 
     def _handle_ls(self):
         if len(self._events) or len(self._completed_events):
index fa6073bd3cbd883cb163492289b76ee14effdf93..c721a8579d9dba28dfbe26e4241398e150fefd68 100644 (file)
@@ -191,7 +191,7 @@ class Module(MgrModule):
         {'name': 'server_port'},
         {'name': 'scrape_interval'},
         {'name': 'rbd_stats_pools'},
         {'name': 'server_port'},
         {'name': 'scrape_interval'},
         {'name': 'rbd_stats_pools'},
-        {'name': 'rbd_stats_pools_refresh_interval'},
+        {'name': 'rbd_stats_pools_refresh_interval', 'type': 'int', 'default': 300},
     ]
 
     def __init__(self, *args, **kwargs):
     ]
 
     def __init__(self, *args, **kwargs):
@@ -528,7 +528,7 @@ class Module(MgrModule):
                 try:
                     self.metrics["pg_{}".format(state)].set(num, (pool,))
                 except KeyError:
                 try:
                     self.metrics["pg_{}".format(state)].set(num, (pool,))
                 except KeyError:
-                    self.log.warn("skipping pg in unknown state {}".format(state))
+                    self.log.warning("skipping pg in unknown state {}".format(state))
 
     def get_osd_stats(self):
         osd_stats = self.get('osd_stats')
 
     def get_osd_stats(self):
         osd_stats = self.get('osd_stats')
@@ -900,6 +900,33 @@ class Module(MgrModule):
             del self.rbd_stats['query']
         self.rbd_stats['pools'].clear()
 
             del self.rbd_stats['query']
         self.rbd_stats['pools'].clear()
 
+    def add_fixed_name_metrics(self):
+        """
+        Add fixed name metrics from existing ones that have details in their names
+        that should be in labels (not in name).
+        For backward compatibility, a new fixed name metric is created (instead of replacing)
+        and details are put in new labels.
+        Intended for RGW sync perf. counters but extendable as required.
+        See: https://tracker.ceph.com/issues/45311
+        """
+        new_metrics = {}
+        for metric_path in self.metrics.keys():
+            # Address RGW sync perf. counters.
+            match = re.search('^data-sync-from-(.*)\.', metric_path)
+            if match:
+                new_path = re.sub('from-([^.]*)', 'from-zone', metric_path)
+                if new_path not in new_metrics:
+                    new_metrics[new_path] = Metric(
+                        self.metrics[metric_path].mtype,
+                        new_path,
+                        self.metrics[metric_path].desc,
+                        self.metrics[metric_path].labelnames + ('source_zone',)
+                    )
+                for label_values, value in self.metrics[metric_path].value.items():
+                    new_metrics[new_path].set(value, label_values + (match.group(1),))
+
+        self.metrics.update(new_metrics)
+
     def collect(self):
         # Clear the metrics before scraping
         for k in self.metrics.keys():
     def collect(self):
         # Clear the metrics before scraping
         for k in self.metrics.keys():
@@ -962,6 +989,7 @@ class Module(MgrModule):
                         )
                     self.metrics[path].set(value, labels)
 
                         )
                     self.metrics[path].set(value, labels)
 
+        self.add_fixed_name_metrics()
         self.get_rbd_stats()
 
         # Return formatted metrics and clear no longer used data
         self.get_rbd_stats()
 
         # Return formatted metrics and clear no longer used data
index b7875c9866a4bc4c224e32eca601fb434bf24200..930607d4843073edd7209d876b52b8e021fff6b7 100644 (file)
@@ -14,7 +14,7 @@ from .schedule import LevelSpec, Interval, StartTime, Schedule, Schedules
 
 class TrashPurgeScheduleHandler:
     MODULE_OPTION_NAME = "trash_purge_schedule"
 
 class TrashPurgeScheduleHandler:
     MODULE_OPTION_NAME = "trash_purge_schedule"
-    SCHEDULE_OID = "rbd_trash_trash_purge_schedule"
+    SCHEDULE_OID = "rbd_trash_purge_schedule"
 
     lock = Lock()
     condition = Condition(lock)
 
     lock = Lock()
     condition = Condition(lock)
index 0956073bb12586e007571db92fb285baa134c466..b7c8a12a5895ddc44dfa31518f7a093c6ad5bb83 100644 (file)
@@ -8,4 +8,7 @@ pyyaml
 prettytable
 pyOpenSSL
 execnet
 prettytable
 pyOpenSSL
 execnet
-remoto
\ No newline at end of file
+remoto
+Jinja2
+pyfakefs
+
index 565896c879e6d439e0335b4d09d3a02c875828b3..5b0e0af96c269c48b4d1d0d889f52707deebb457 100644 (file)
@@ -33,7 +33,7 @@ class ConfigOsd(RestController):
         valid_flags = set(args.keys()) & set(common.OSD_FLAGS)
         invalid_flags = list(set(args.keys()) - valid_flags)
         if invalid_flags:
         valid_flags = set(args.keys()) & set(common.OSD_FLAGS)
         invalid_flags = list(set(args.keys()) - valid_flags)
         if invalid_flags:
-            context.instance.log.warn("%s not valid to set/unset", invalid_flags)
+            context.instance.log.warning("%s not valid to set/unset", invalid_flags)
 
         for flag in list(valid_flags):
             if args[flag]:
 
         for flag in list(valid_flags):
             if args[flag]:
index 049a09e147113de974ca2d6461a9b7851af6d97c..9075395408ac828073ba92c88f26caab8d918620 100644 (file)
@@ -251,7 +251,7 @@ class Module(MgrModule):
                 self._serve()
                 self.server.socket.close()
             except CannotServe as cs:
                 self._serve()
                 self.server.socket.close()
             except CannotServe as cs:
-                self.log.warn("server not running: %s", cs)
+                self.log.warning("server not running: %s", cs)
             except:
                 self.log.error(str(traceback.format_exc()))
 
             except:
                 self.log.error(str(traceback.format_exc()))
 
@@ -409,7 +409,7 @@ class Module(MgrModule):
 
 
     def handle_command(self, inbuf, command):
 
 
     def handle_command(self, inbuf, command):
-        self.log.warn("Handling command: '%s'" % str(command))
+        self.log.warning("Handling command: '%s'" % str(command))
         if command['prefix'] == "restful create-key":
             if command['key_name'] in self.keys:
                 return 0, self.keys[command['key_name']], ""
         if command['prefix'] == "restful create-key":
             if command['key_name'] in self.keys:
                 return 0, self.keys[command['key_name']], ""
index 3459f2ce62136079f8884a5d88e20c33d4c41a5a..4b12d8e781a1834688d57a6ece0205de7733ad35 100644 (file)
@@ -460,7 +460,6 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
         return self._service_add_decorate('RGW', spec,
                                           self.rook_cluster.apply_objectstore)
 
         return self._service_add_decorate('RGW', spec,
                                           self.rook_cluster.apply_objectstore)
 
-
     def apply_nfs(self, spec):
         # type: (NFSServiceSpec) -> RookCompletion
         num = spec.placement.count
     def apply_nfs(self, spec):
         # type: (NFSServiceSpec) -> RookCompletion
         num = spec.placement.count
@@ -495,7 +494,7 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
         def execute(all_hosts_):
             # type: (List[orchestrator.HostSpec]) -> orchestrator.Completion
             all_hosts = [h.hostname for h in all_hosts_]
         def execute(all_hosts_):
             # type: (List[orchestrator.HostSpec]) -> orchestrator.Completion
             all_hosts = [h.hostname for h in all_hosts_]
-            matching_hosts = drive_group.placement.pattern_matches_hosts(all_hosts)
+            matching_hosts = drive_group.placement.filter_matching_hosts(lambda label=None, as_hostspec=None: all_hosts)
 
             assert len(matching_hosts) == 1
 
 
             assert len(matching_hosts) == 1
 
@@ -514,13 +513,12 @@ class RookOrchestrator(MgrModule, orchestrator.Orchestrator):
                         matching_hosts,
                         targets),
                 mgr=self,
                         matching_hosts,
                         targets),
                 mgr=self,
-                on_complete=lambda _:self.rook_cluster.add_osds(drive_group, all_hosts),
-                calc_percent=lambda: has_osds(all_hosts)
+                on_complete=lambda _:self.rook_cluster.add_osds(drive_group, matching_hosts),
+                calc_percent=lambda: has_osds(matching_hosts)
             )
 
         @deferred_read
             )
 
         @deferred_read
-        def has_osds(all_hosts):
-            matching_hosts = drive_group.placement.pattern_matches_hosts(all_hosts)
+        def has_osds(matching_hosts):
 
             # Find OSD pods on this host
             pod_osd_ids = set()
 
             # Find OSD pods on this host
             pod_osd_ids = set()
index cd4b58990039c88b2d659a5f7d33d389bd724582..05c533ae85762a0ea78c381120df0df1b0083651 100644 (file)
@@ -521,7 +521,7 @@ class RookCluster(object):
             return new
         return self._patch(cnfs.CephNFS, 'cephnfses',svc_id, _update_nfs_count)
 
             return new
         return self._patch(cnfs.CephNFS, 'cephnfses',svc_id, _update_nfs_count)
 
-    def add_osds(self, drive_group, all_hosts):
+    def add_osds(self, drive_group, matching_hosts):
         # type: (DriveGroupSpec, List[str]) -> str
         """
         Rook currently (0.8) can only do single-drive OSDs, so we
         # type: (DriveGroupSpec, List[str]) -> str
         """
         Rook currently (0.8) can only do single-drive OSDs, so we
@@ -543,7 +543,7 @@ class RookCluster(object):
                 new_cluster.spec.storage.nodes = ccl.NodesList()
 
             current_nodes = getattr(current_cluster.spec.storage, 'nodes', ccl.NodesList())
                 new_cluster.spec.storage.nodes = ccl.NodesList()
 
             current_nodes = getattr(current_cluster.spec.storage, 'nodes', ccl.NodesList())
-            matching_host = drive_group.placement.pattern_matches_hosts(all_hosts)[0]
+            matching_host = matching_hosts[0]
 
             if matching_host not in [n.name for n in current_nodes]:
                 pd = ccl.NodesItem(
 
             if matching_host not in [n.name for n in current_nodes]:
                 pd = ccl.NodesItem(
index 3a0c3c2c918ca2890bbf3c26b5b5f168df8444dd..a53edc0e389d7024b8d1cfa098528477770f41ba 100644 (file)
@@ -12,7 +12,7 @@ import prettytable
 import six
 import json
 
 import six
 import json
 
-from mgr_module import MgrModule
+from mgr_module import MgrModule, HandleCommandResult
 
 
 class Module(MgrModule):
 
 
 class Module(MgrModule):
@@ -260,11 +260,11 @@ class Module(MgrModule):
                 output += version_table.get_string() + "\n"
 
         if output_format == "json":
                 output += version_table.get_string() + "\n"
 
         if output_format == "json":
-            return 0, "", json.dumps(json_output, sort_keys=True)
+            return HandleCommandResult(stdout=json.dumps(json_output, sort_keys=True))
         elif output_format == "json-pretty":
         elif output_format == "json-pretty":
-            return 0, "", json.dumps(json_output, sort_keys=True, indent=4, separators=(',', ': '))
+            return HandleCommandResult(stdout=json.dumps(json_output, sort_keys=True, indent=4, separators=(',', ': ')))
         else:
         else:
-            return 0, output, ""
+            return HandleCommandResult(stdout=output)
 
     def handle_osd_status(self, cmd):
         osd_table = PrettyTable(['ID', 'HOST', 'USED', 'AVAIL', 'WR OPS',
 
     def handle_osd_status(self, cmd):
         osd_table = PrettyTable(['ID', 'HOST', 'USED', 'AVAIL', 'WR OPS',
index 4fbfe8f7c03e4e4e814d8cdac6e0598392211747..fef56e4bd45d57d6074f3f9b1ac55ee440096c0c 100644 (file)
@@ -175,6 +175,11 @@ class Module(MgrModule):
             "desc": "Show last device report or device report to be sent",
             "perm": "r"
         },
             "desc": "Show last device report or device report to be sent",
             "perm": "r"
         },
+        {
+            "cmd": "telemetry show-all",
+            "desc": "Show report of all channels",
+            "perm": "r"
+        },
         {
             "cmd": "telemetry on name=license,type=CephString,req=false",
             "desc": "Enable telemetry reports from this cluster",
         {
             "cmd": "telemetry on name=license,type=CephString,req=false",
             "desc": "Enable telemetry reports from this cluster",
@@ -740,12 +745,10 @@ class Module(MgrModule):
         elif command['prefix'] == 'telemetry on':
             if command.get('license') != LICENSE:
                 return -errno.EPERM, '', "Telemetry data is licensed under the " + LICENSE_NAME + " (" + LICENSE_URL + ").\nTo enable, add '--license " + LICENSE + "' to the 'ceph telemetry on' command."
         elif command['prefix'] == 'telemetry on':
             if command.get('license') != LICENSE:
                 return -errno.EPERM, '', "Telemetry data is licensed under the " + LICENSE_NAME + " (" + LICENSE_URL + ").\nTo enable, add '--license " + LICENSE + "' to the 'ceph telemetry on' command."
-            self.set_module_option('enabled', True)
-            self.set_module_option('last_opt_revision', REVISION)
+            self.on()
             return 0, '', ''
         elif command['prefix'] == 'telemetry off':
             return 0, '', ''
         elif command['prefix'] == 'telemetry off':
-            self.set_module_option('enabled', False)
-            self.set_module_option('last_opt_revision', 1)
+            self.off()
             return 0, '', ''
         elif command['prefix'] == 'telemetry send':
             if self.last_opt_revision < LAST_REVISION_RE_OPT_IN and command.get('license') != LICENSE:
             return 0, '', ''
         elif command['prefix'] == 'telemetry send':
             if self.last_opt_revision < LAST_REVISION_RE_OPT_IN and command.get('license') != LICENSE:
@@ -755,19 +758,37 @@ class Module(MgrModule):
             return self.send(self.last_report, command.get('endpoint'))
 
         elif command['prefix'] == 'telemetry show':
             return self.send(self.last_report, command.get('endpoint'))
 
         elif command['prefix'] == 'telemetry show':
-            report = self.compile_report(
-                channels=command.get('channels', None)
-            )
+            report = self.get_report(channels=command.get('channels', None))
             report = json.dumps(report, indent=4, sort_keys=True)
             if self.channel_device:
             report = json.dumps(report, indent=4, sort_keys=True)
             if self.channel_device:
-               report += '\n \nDevice report is generated separately. To see it run \'ceph telemetry show-device\'.'
+                report += '\n \nDevice report is generated separately. To see it run \'ceph telemetry show-device\'.'
             return 0, report, ''
         elif command['prefix'] == 'telemetry show-device':
             return 0, report, ''
         elif command['prefix'] == 'telemetry show-device':
-            return 0, json.dumps(self.gather_device_report(), indent=4, sort_keys=True), ''
+            return 0, json.dumps(self.get_report('device'), indent=4, sort_keys=True), ''
+        elif command['prefix'] == 'telemetry show-all':
+            return 0, json.dumps(self.get_report('all'), indent=4, sort_keys=True), ''
         else:
             return (-errno.EINVAL, '',
                     "Command not found '{0}'".format(command['prefix']))
 
         else:
             return (-errno.EINVAL, '',
                     "Command not found '{0}'".format(command['prefix']))
 
+    def on(self):
+        self.set_module_option('enabled', True)
+        self.set_module_option('last_opt_revision', REVISION)
+
+    def off(self):
+        self.set_module_option('enabled', False)
+        self.set_module_option('last_opt_revision', 1)
+
+    def get_report(self, report_type='default', channels=None):
+        if report_type == 'default':
+            return self.compile_report(channels=channels)
+        elif report_type == 'device':
+            return self.gather_device_report()
+        elif report_type == 'all':
+            return {'report': self.compile_report(channels=channels),
+                    'device_report': self.gather_device_report()}
+        return {}
+
     def self_test(self):
         report = self.compile_report()
         if len(report) == 0:
     def self_test(self):
         report = self.compile_report()
         if len(report) == 0:
index 04942c4d1733ea800058d024500e9d7a956a4129..d7ef5d5bcc7978344134facd43be171fd5a790f7 100644 (file)
@@ -165,11 +165,10 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
         types = ("mds", "osd", "mon", "rgw", "mgr")
         out = map(str, check_output(['ps', 'aux']).splitlines())
         processes = [p for p in out if any(
         types = ("mds", "osd", "mon", "rgw", "mgr")
         out = map(str, check_output(['ps', 'aux']).splitlines())
         processes = [p for p in out if any(
-            [('ceph-' + t in p) for t in types])]
+            [('ceph-{} '.format(t) in p) for t in types])]
 
         daemons = []
         for p in processes:
 
         daemons = []
         for p in processes:
-            daemon = orchestrator.DaemonDescription()
             # parse daemon type
             m = re.search('ceph-([^ ]+)', p)
             if m:
             # parse daemon type
             m = re.search('ceph-([^ ]+)', p)
             if m:
@@ -179,7 +178,6 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
 
             # parse daemon ID. Possible options: `-i <id>`, `--id=<id>`, `--id <id>`
             patterns = [r'-i\s(\w+)', r'--id[\s=](\w+)']
 
             # parse daemon ID. Possible options: `-i <id>`, `--id=<id>`, `--id <id>`
             patterns = [r'-i\s(\w+)', r'--id[\s=](\w+)']
-            daemon_id = None
             for pattern in patterns:
                 m = re.search(pattern, p)
                 if m:
             for pattern in patterns:
                 m = re.search(pattern, p)
                 if m:
@@ -260,9 +258,10 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
         def run(all_hosts):
             # type: (List[orchestrator.HostSpec]) -> None
             drive_group.validate()
         def run(all_hosts):
             # type: (List[orchestrator.HostSpec]) -> None
             drive_group.validate()
-            if drive_group.placement.host_pattern:
-                if not drive_group.placement.pattern_matches_hosts([h.hostname for h in all_hosts]):
-                    raise orchestrator.OrchestratorValidationError('failed to match')
+            if not drive_group.placement.filter_matching_hosts(lambda label=None, as_hostspec=None:
+                                                               [h.hostname for h in all_hosts]):
+                raise orchestrator.OrchestratorValidationError('failed to match')
+
         return self.get_hosts().then(run).then(
             on_complete=orchestrator.ProgressReference(
                 message='create_osds',
         return self.get_hosts().then(run).then(
             on_complete=orchestrator.ProgressReference(
                 message='create_osds',
@@ -273,12 +272,13 @@ class TestOrchestrator(MgrModule, orchestrator.Orchestrator):
     def apply_drivegroups(self, specs):
         # type: (List[DriveGroupSpec]) -> TestCompletion
         drive_group = specs[0]
     def apply_drivegroups(self, specs):
         # type: (List[DriveGroupSpec]) -> TestCompletion
         drive_group = specs[0]
+
         def run(all_hosts):
             # type: (List[orchestrator.HostSpec]) -> None
             drive_group.validate()
         def run(all_hosts):
             # type: (List[orchestrator.HostSpec]) -> None
             drive_group.validate()
-            if drive_group.placement.host_pattern:
-                if not drive_group.placement.pattern_matches_hosts([h.hostname for h in all_hosts]):
-                    raise orchestrator.OrchestratorValidationError('failed to match')
+            if not drive_group.placement.filter_matching_hosts(lambda label=None, as_hostspec=None:
+                                                               [h.hostname for h in all_hosts]):
+                raise orchestrator.OrchestratorValidationError('failed to match')
         return self.get_hosts().then(run).then(
             on_complete=orchestrator.ProgressReference(
                 message='apply_drivesgroups',
         return self.get_hosts().then(run).then(
             on_complete=orchestrator.ProgressReference(
                 message='apply_drivesgroups',
index 79c2350ee54fc835b753e1f54c2a1178d92da5c4..7bccfc79970887b7eec6339db736909aafe9be24 100644 (file)
@@ -16,19 +16,49 @@ if 'UNITTEST' in os.environ:
     except ImportError:
         import mock
 
     except ImportError:
         import mock
 
+    M_classes = set()
+
     class M(object):
     class M(object):
+        def _ceph_get_store(self, k):
+            return self._store.get(k, None)
+
+        def _ceph_set_store(self, k, v):
+            if v is None:
+                if k in self._store:
+                    del self._store[k]
+            else:
+                self._store[k] = v
+
+        def _ceph_get_store_prefix(self, prefix):
+            return {
+                k: v for k, v in self._store.items()
+                if k.startswith(prefix)
+            }
+
+        def _ceph_get_module_option(self, module, key, localized_prefix: None):
+            return self._ceph_get_store(f'{module}/{key}')
+
+        def _ceph_set_module_option(self, module, key, val):
+            return self._ceph_set_store(f'{module}/{key}', val)
+
         def __init__(self, *args):
         def __init__(self, *args):
+            self._store = {}
+
+            if self.__class__.__name__ not in M_classes:
+                # call those only once. 
+                self._register_commands('')
+                self._register_options('')
+                M_classes.add(self.__class__.__name__)
+
             super(M, self).__init__()
             self._ceph_get_version = mock.Mock()
             self._ceph_get = mock.MagicMock()
             super(M, self).__init__()
             self._ceph_get_version = mock.Mock()
             self._ceph_get = mock.MagicMock()
-            self._ceph_get_module_option = mock.MagicMock()
             self._ceph_get_option = mock.MagicMock()
             self._ceph_get_option = mock.MagicMock()
-            self._validate_module_option = lambda _: True
+            self._ceph_get_context = mock.MagicMock()
+            self._ceph_register_client = mock.MagicMock()
             self._configure_logging = lambda *_: None
             self._unconfigure_logging = mock.MagicMock()
             self._ceph_log = mock.MagicMock()
             self._configure_logging = lambda *_: None
             self._unconfigure_logging = mock.MagicMock()
             self._ceph_log = mock.MagicMock()
-            self._ceph_get_store = lambda _: ''
-            self._ceph_get_store_prefix = lambda _: {}
             self._ceph_dispatch_remote = lambda *_: None
 
 
             self._ceph_dispatch_remote = lambda *_: None
 
 
@@ -36,3 +66,22 @@ if 'UNITTEST' in os.environ:
     cm.BaseMgrModule = M
     cm.BaseMgrStandbyModule = M
     sys.modules['ceph_module'] = cm
     cm.BaseMgrModule = M
     cm.BaseMgrStandbyModule = M
     sys.modules['ceph_module'] = cm
+
+    def mock_ceph_modules():
+        class MockRadosError(Exception):
+            def __init__(self, message, errno=None):
+                super(MockRadosError, self).__init__(message)
+                self.errno = errno
+
+            def __str__(self):
+                msg = super(MockRadosError, self).__str__()
+                if self.errno is None:
+                    return msg
+                return '[errno {0}] {1}'.format(self.errno, msg)
+
+
+        sys.modules.update({
+            'rados': mock.Mock(Error=MockRadosError, OSError=MockRadosError),
+            'rbd': mock.Mock(),
+            'cephfs': mock.Mock(),
+        })
\ No newline at end of file
index d9d3c87a5a58f9908a3b629f0e6b640c0dc0641d..7cca7da8ec21d9b42c3cff4203cc156f488cbbe3 100644 (file)
@@ -80,7 +80,7 @@ def sync_attrs(fs_handle, target_path, source_statx):
         fs_handle.lutimes(target_path, (time.mktime(source_statx["atime"].timetuple()),
                                         time.mktime(source_statx["mtime"].timetuple())))
     except cephfs.Error as e:
         fs_handle.lutimes(target_path, (time.mktime(source_statx["atime"].timetuple()),
                                         time.mktime(source_statx["mtime"].timetuple())))
     except cephfs.Error as e:
-        log.warn("error synchronizing attrs for {0} ({1})".format(target_path, e))
+        log.warning("error synchronizing attrs for {0} ({1})".format(target_path, e))
         raise e
 
 def bulk_copy(fs_handle, source_path, dst_path, should_cancel):
         raise e
 
 def bulk_copy(fs_handle, source_path, dst_path, should_cancel):
@@ -129,7 +129,7 @@ def bulk_copy(fs_handle, source_path, dst_path, should_cancel):
                             copy_file(fs_handle, d_full_src, d_full_dst, mo, cancel_check=should_cancel)
                         else:
                             handled = False
                             copy_file(fs_handle, d_full_src, d_full_dst, mo, cancel_check=should_cancel)
                         else:
                             handled = False
-                            log.warn("cptree: (IGNORE) {0}".format(d_full_src))
+                            log.warning("cptree: (IGNORE) {0}".format(d_full_src))
                         if handled:
                             sync_attrs(fs_handle, d_full_dst, stx)
                     d = fs_handle.readdir(dir_handle)
                         if handled:
                             sync_attrs(fs_handle, d_full_dst, stx)
                     d = fs_handle.readdir(dir_handle)
@@ -281,7 +281,7 @@ class Cloner(AsyncJobs):
                             raise VolumeException(-errno.EINVAL, "cannot cancel -- clone finished (check clone status)")
                         track_idx = self.get_clone_tracking_index(fs_handle, clone_subvolume)
                         if not track_idx:
                             raise VolumeException(-errno.EINVAL, "cannot cancel -- clone finished (check clone status)")
                         track_idx = self.get_clone_tracking_index(fs_handle, clone_subvolume)
                         if not track_idx:
-                            log.warn("cannot lookup clone tracking index for {0}".format(clone_subvolume.base_path))
+                            log.warning("cannot lookup clone tracking index for {0}".format(clone_subvolume.base_path))
                             raise VolumeException(-errno.EINVAL, "error canceling clone")
                         if OpSm.is_init_state("clone", clone_state):
                             # clone has not started yet -- cancel right away.
                             raise VolumeException(-errno.EINVAL, "error canceling clone")
                         if OpSm.is_init_state("clone", clone_state):
                             # clone has not started yet -- cancel right away.
index 9142262dd2df17e42c34c4e0feb38ec28cd7bcdd..30c9235a87183c2971372b9339e7571eee2a95be 100644 (file)
@@ -99,7 +99,7 @@ class SubvolumeBase(object):
         else:
             self.metadata_mgr = MetadataManager(self.fs, self.config_path, 0o640)
 
         else:
             self.metadata_mgr = MetadataManager(self.fs, self.config_path, 0o640)
 
-    def _set_attrs(self, path, size, isolate_namespace, pool, uid, gid):
+    def set_attrs(self, path, size, isolate_namespace, pool, uid, gid):
         # set size
         if size is not None:
             try:
         # set size
         if size is not None:
             try:
@@ -130,7 +130,11 @@ class SubvolumeBase(object):
             # layout remains unset and will undesirably change with ancestor's
             # pool layout changes.
             xattr_key = 'ceph.dir.layout.pool'
             # layout remains unset and will undesirably change with ancestor's
             # pool layout changes.
             xattr_key = 'ceph.dir.layout.pool'
-            xattr_val = get_ancestor_xattr(self.fs, path, "ceph.dir.layout.pool")
+            xattr_val = None
+            try:
+                self.fs.getxattr(path, 'ceph.dir.layout.pool').decode('utf-8')
+            except cephfs.NoData as e:
+                xattr_val = get_ancestor_xattr(self.fs, os.path.split(path)[0], "ceph.dir.layout.pool")
         if xattr_key and xattr_val:
             try:
                 self.fs.setxattr(path, xattr_key, xattr_val.encode('utf-8'), 0)
         if xattr_key and xattr_val:
             try:
                 self.fs.setxattr(path, xattr_key, xattr_val.encode('utf-8'), 0)
@@ -244,6 +248,7 @@ class SubvolumeBase(object):
 
         try:
             data_pool = self.fs.getxattr(subvolpath, 'ceph.dir.layout.pool').decode('utf-8')
 
         try:
             data_pool = self.fs.getxattr(subvolpath, 'ceph.dir.layout.pool').decode('utf-8')
+            pool_namespace = self.fs.getxattr(subvolpath, 'ceph.dir.layout.pool_namespace').decode('utf-8')
         except cephfs.Error as e:
             raise VolumeException(-e.args[0], e.args[1])
 
         except cephfs.Error as e:
             raise VolumeException(-e.args[0], e.args[1])
 
@@ -251,4 +256,5 @@ class SubvolumeBase(object):
             'atime': str(st["atime"]), 'mtime': str(st["mtime"]), 'ctime': str(st["ctime"]),
             'mode': int(st["mode"]), 'data_pool': data_pool, 'created_at': str(st["btime"]),
             'bytes_quota': "infinite" if nsize == 0 else nsize, 'bytes_used': int(usedbytes),
             'atime': str(st["atime"]), 'mtime': str(st["mtime"]), 'ctime': str(st["ctime"]),
             'mode': int(st["mode"]), 'data_pool': data_pool, 'created_at': str(st["btime"]),
             'bytes_quota': "infinite" if nsize == 0 else nsize, 'bytes_used': int(usedbytes),
-            'bytes_pcent': "undefined" if nsize == 0 else '{0:.2f}'.format((float(usedbytes) / nsize) * 100.0)}
+            'bytes_pcent': "undefined" if nsize == 0 else '{0:.2f}'.format((float(usedbytes) / nsize) * 100.0),
+            'pool_namespace': pool_namespace}
index d8e0e0137ae4fd4e1d9e84d904ca70ab16208241..e4255d25b330c8a11912f8b2bcf0b4afa683827e 100644 (file)
@@ -3,6 +3,7 @@ import stat
 import uuid
 import errno
 import logging
 import uuid
 import errno
 import logging
+from datetime import datetime
 
 import cephfs
 
 
 import cephfs
 
@@ -44,7 +45,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
         try:
             # create directory and set attributes
             self.fs.mkdirs(subvol_path, mode)
         try:
             # create directory and set attributes
             self.fs.mkdirs(subvol_path, mode)
-            self._set_attrs(subvol_path, size, isolate_nspace, pool, uid, gid)
+            self.set_attrs(subvol_path, size, isolate_nspace, pool, uid, gid)
 
             # persist subvolume metadata
             qpath = subvol_path.decode('utf-8')
 
             # persist subvolume metadata
             qpath = subvol_path.decode('utf-8')
@@ -89,7 +90,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
         try:
             # create directory and set attributes
             self.fs.mkdirs(subvol_path, source_subvolume.mode)
         try:
             # create directory and set attributes
             self.fs.mkdirs(subvol_path, source_subvolume.mode)
-            self._set_attrs(subvol_path, None, None, pool, source_subvolume.uid, source_subvolume.gid)
+            self.set_attrs(subvol_path, None, None, pool, source_subvolume.uid, source_subvolume.gid)
 
             # persist subvolume metadata and clone source
             qpath = subvol_path.decode('utf-8')
 
             # persist subvolume metadata and clone source
             qpath = subvol_path.decode('utf-8')
@@ -203,7 +204,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
             if me.errno == -errno.ENOENT:
                 return False
             else:
             if me.errno == -errno.ENOENT:
                 return False
             else:
-                log.warn("error checking protected snap {0} ({1})".format(snapname, me))
+                log.warning("error checking protected snap {0} ({1})".format(snapname, me))
                 raise VolumeException(-errno.EINVAL, "snapshot protection check failed")
         else:
             return True
                 raise VolumeException(-errno.EINVAL, "snapshot protection check failed")
         else:
             return True
@@ -222,6 +223,25 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
         snappath = self.snapshot_path(snapname)
         rmsnap(self.fs, snappath)
 
         snappath = self.snapshot_path(snapname)
         rmsnap(self.fs, snappath)
 
+    def snapshot_info(self, snapname):
+        snappath = self.snapshot_path(snapname)
+        snap_info = {}
+        try:
+            snap_attrs = {'created_at':'ceph.snap.btime', 'size':'ceph.dir.rbytes',
+                          'data_pool':'ceph.dir.layout.pool'}
+            for key, val in snap_attrs.items():
+                snap_info[key] = self.fs.getxattr(snappath, val)
+            return {'size': int(snap_info['size']),
+                    'created_at': str(datetime.fromtimestamp(float(snap_info['created_at']))),
+                    'data_pool': snap_info['data_pool'].decode('utf-8'),
+                    'protected': "yes" if self.is_snapshot_protected(snapname) else "no",
+                    'has_pending_clones': "yes" if self.has_pending_clones(snapname) else "no"}
+        except cephfs.Error as e:
+            if e.errno == errno.ENOENT:
+                raise VolumeException(-errno.ENOENT,
+                                      "snapshot '{0}' doesnot exist".format(snapname))
+            raise VolumeException(-e.args[0], e.args[1])
+
     def list_snapshots(self):
         try:
             dirpath = os.path.join(self.path,
     def list_snapshots(self):
         try:
             dirpath = os.path.join(self.path,
@@ -238,7 +258,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
             self.metadata_mgr.update_section("protected snaps", snapname, "1")
             self.metadata_mgr.flush()
         except MetadataMgrException as me:
             self.metadata_mgr.update_section("protected snaps", snapname, "1")
             self.metadata_mgr.flush()
         except MetadataMgrException as me:
-            log.warn("error updating protected snap list ({0})".format(me))
+            log.warning("error updating protected snap list ({0})".format(me))
             raise VolumeException(-errno.EINVAL, "error protecting snapshot")
 
     def _unprotect_snapshot(self, snapname):
             raise VolumeException(-errno.EINVAL, "error protecting snapshot")
 
     def _unprotect_snapshot(self, snapname):
@@ -246,7 +266,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
             self.metadata_mgr.remove_option("protected snaps", snapname)
             self.metadata_mgr.flush()
         except MetadataMgrException as me:
             self.metadata_mgr.remove_option("protected snaps", snapname)
             self.metadata_mgr.flush()
         except MetadataMgrException as me:
-            log.warn("error updating protected snap list ({0})".format(me))
+            log.warning("error updating protected snap list ({0})".format(me))
             raise VolumeException(-errno.EINVAL, "error unprotecting snapshot")
 
     def protect_snapshot(self, snapname):
             raise VolumeException(-errno.EINVAL, "error unprotecting snapshot")
 
     def protect_snapshot(self, snapname):
@@ -285,7 +305,7 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
                 track_idx = index.track(tgt_subvolume.base_path)
                 self._add_snap_clone(track_idx, snapname)
         except (IndexException, MetadataMgrException) as e:
                 track_idx = index.track(tgt_subvolume.base_path)
                 self._add_snap_clone(track_idx, snapname)
         except (IndexException, MetadataMgrException) as e:
-            log.warn("error creating clone index: {0}".format(e))
+            log.warning("error creating clone index: {0}".format(e))
             raise VolumeException(-errno.EINVAL, "error cloning subvolume")
 
     def detach_snapshot(self, snapname, track_id):
             raise VolumeException(-errno.EINVAL, "error cloning subvolume")
 
     def detach_snapshot(self, snapname, track_id):
@@ -296,5 +316,5 @@ class SubvolumeV1(SubvolumeBase, SubvolumeTemplate):
                 index.untrack(track_id)
                 self._remove_snap_clone(track_id)
         except (IndexException, MetadataMgrException) as e:
                 index.untrack(track_id)
                 self._remove_snap_clone(track_id)
         except (IndexException, MetadataMgrException) as e:
-            log.warn("error delining snapshot from clone: {0}".format(e))
+            log.warning("error delining snapshot from clone: {0}".format(e))
             raise VolumeException(-errno.EINVAL, "error delinking snapshot from clone")
             raise VolumeException(-errno.EINVAL, "error delinking snapshot from clone")
index 5568d8b588dceb41f8538a3e6538db6030e27e2e..a6ff65d4295fd51cd070a033be2e776babce8c67 100644 (file)
@@ -116,11 +116,12 @@ class VolumeClient(object):
         uid        = kwargs['uid']
         gid        = kwargs['gid']
         mode       = kwargs['mode']
         uid        = kwargs['uid']
         gid        = kwargs['gid']
         mode       = kwargs['mode']
+        isolate_nspace = kwargs['namespace_isolated']
 
         oct_mode = octal_str_to_decimal_int(mode)
         try:
             create_subvol(
 
         oct_mode = octal_str_to_decimal_int(mode)
         try:
             create_subvol(
-                fs_handle, self.volspec, group, subvolname, size, False, pool, oct_mode, uid, gid)
+                fs_handle, self.volspec, group, subvolname, size, isolate_nspace, pool, oct_mode, uid, gid)
         except VolumeException as ve:
             # kick the purge threads for async removal -- note that this
             # assumes that the subvolume is moved to trashcan for cleanup on error.
         except VolumeException as ve:
             # kick the purge threads for async removal -- note that this
             # assumes that the subvolume is moved to trashcan for cleanup on error.
@@ -132,14 +133,21 @@ class VolumeClient(object):
         volname    = kwargs['vol_name']
         subvolname = kwargs['sub_name']
         groupname  = kwargs['group_name']
         volname    = kwargs['vol_name']
         subvolname = kwargs['sub_name']
         groupname  = kwargs['group_name']
+        size       = kwargs['size']
+        pool       = kwargs['pool_layout']
+        uid        = kwargs['uid']
+        gid        = kwargs['gid']
+        isolate_nspace = kwargs['namespace_isolated']
 
         try:
             with open_volume(self, volname) as fs_handle:
                 with open_group(fs_handle, self.volspec, groupname) as group:
                     try:
 
         try:
             with open_volume(self, volname) as fs_handle:
                 with open_group(fs_handle, self.volspec, groupname) as group:
                     try:
-                        with open_subvol(fs_handle, self.volspec, group, subvolname):
-                            # idempotent creation -- valid.
-                            pass
+                        with open_subvol(fs_handle, self.volspec, group, subvolname) as subvolume:
+                            # idempotent creation -- valid. Attributes set is supported.
+                            uid = uid if uid else subvolume.uid
+                            gid = gid if gid else subvolume.gid
+                            subvolume.set_attrs(subvolume.path, size, isolate_nspace, pool, uid, gid)
                     except VolumeException as ve:
                         if ve.errno == -errno.ENOENT:
                             self._create_subvolume(fs_handle, volname, group, subvolname, **kwargs)
                     except VolumeException as ve:
                         if ve.errno == -errno.ENOENT:
                             self._create_subvolume(fs_handle, volname, group, subvolname, **kwargs)
@@ -284,6 +292,23 @@ class VolumeClient(object):
                 ret = self.volume_exception_to_retval(ve)
         return ret
 
                 ret = self.volume_exception_to_retval(ve)
         return ret
 
+    def subvolume_snapshot_info(self, **kwargs):
+        ret        = 0, "", ""
+        volname    = kwargs['vol_name']
+        subvolname = kwargs['sub_name']
+        snapname   = kwargs['snap_name']
+        groupname  = kwargs['group_name']
+
+        try:
+            with open_volume(self, volname) as fs_handle:
+                with open_group(fs_handle, self.volspec, groupname) as group:
+                    with open_subvol(fs_handle, self.volspec, group, subvolname) as subvolume:
+                        snap_info_dict = subvolume.snapshot_info(snapname)
+                        ret = 0, json.dumps(snap_info_dict, indent=4, sort_keys=True), ""
+        except VolumeException as ve:
+                ret = self.volume_exception_to_retval(ve)
+        return ret
+
     def list_subvolume_snapshots(self, **kwargs):
         ret        = 0, "", ""
         volname    = kwargs['vol_name']
     def list_subvolume_snapshots(self, **kwargs):
         ret        = 0, "", ""
         volname    = kwargs['vol_name']
@@ -343,7 +368,7 @@ class VolumeClient(object):
                     target_subvolume.remove()
                     self.purge_queue.queue_job(volname)
                 except Exception as e:
                     target_subvolume.remove()
                     self.purge_queue.queue_job(volname)
                 except Exception as e:
-                    log.warn("failed to cleanup clone subvolume '{0}' ({1})".format(target_subvolname, e))
+                    log.warning("failed to cleanup clone subvolume '{0}' ({1})".format(target_subvolname, e))
                 raise ve
 
     def _clone_subvolume_snapshot(self, fs_handle, volname, subvolume, **kwargs):
                 raise ve
 
     def _clone_subvolume_snapshot(self, fs_handle, volname, subvolume, **kwargs):
index bbb1896e0c73ae1534f71d31d5519d3dcf625bed..86ee8a0e338871ccdbd961fff180230c14d4bd84 100644 (file)
@@ -69,10 +69,12 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
                    'name=pool_layout,type=CephString,req=false '
                    'name=uid,type=CephInt,req=false '
                    'name=gid,type=CephInt,req=false '
                    'name=pool_layout,type=CephString,req=false '
                    'name=uid,type=CephInt,req=false '
                    'name=gid,type=CephInt,req=false '
-                   'name=mode,type=CephString,req=false ',
+                   'name=mode,type=CephString,req=false '
+                   'name=namespace_isolated,type=CephBool,req=false ',
             'desc': "Create a CephFS subvolume in a volume, and optionally, "
                     "with a specific size (in bytes), a specific data pool layout, "
             'desc': "Create a CephFS subvolume in a volume, and optionally, "
                     "with a specific size (in bytes), a specific data pool layout, "
-                    "a specific mode, and in a specific subvolume group",
+                    "a specific mode, in a specific subvolume group and in separate "
+                    "RADOS namespace",
             'perm': 'rw'
         },
         {
             'perm': 'rw'
         },
         {
@@ -152,6 +154,16 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
                     "and optionally, in a specific subvolume group",
             'perm': 'rw'
         },
                     "and optionally, in a specific subvolume group",
             'perm': 'rw'
         },
+        {
+            'cmd': 'fs subvolume snapshot info '
+                   'name=vol_name,type=CephString '
+                   'name=sub_name,type=CephString '
+                   'name=snap_name,type=CephString '
+                   'name=group_name,type=CephString,req=false ',
+            'desc': "Get the metadata of a CephFS subvolume snapshot "
+                    "and optionally, in a specific subvolume group",
+            'perm': 'r'
+        },
         {
             'cmd': 'fs subvolume snapshot rm '
                    'name=vol_name,type=CephString '
         {
             'cmd': 'fs subvolume snapshot rm '
                    'name=vol_name,type=CephString '
@@ -302,7 +314,8 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
                                         pool_layout=cmd.get('pool_layout', None),
                                         uid=cmd.get('uid', None),
                                         gid=cmd.get('gid', None),
                                         pool_layout=cmd.get('pool_layout', None),
                                         uid=cmd.get('uid', None),
                                         gid=cmd.get('gid', None),
-                                        mode=cmd.get('mode', '755'))
+                                        mode=cmd.get('mode', '755'),
+                                        namespace_isolated=cmd.get('namespace_isolated', False))
 
     def _cmd_fs_subvolume_rm(self, inbuf, cmd):
         """
 
     def _cmd_fs_subvolume_rm(self, inbuf, cmd):
         """
@@ -359,6 +372,12 @@ class Module(orchestrator.OrchestratorClientMixin, MgrModule):
                                                  group_name=cmd.get('group_name', None),
                                                  force=cmd.get('force', False))
 
                                                  group_name=cmd.get('group_name', None),
                                                  force=cmd.get('force', False))
 
+    def _cmd_fs_subvolume_snapshot_info(self, inbuf, cmd):
+        return self.vc.subvolume_snapshot_info(vol_name=cmd['vol_name'],
+                                               sub_name=cmd['sub_name'],
+                                               snap_name=cmd['snap_name'],
+                                               group_name=cmd.get('group_name', None))
+
     def _cmd_fs_subvolume_snapshot_ls(self, inbuf, cmd):
         return self.vc.list_subvolume_snapshots(vol_name=cmd['vol_name'],
                                                 sub_name=cmd['sub_name'],
     def _cmd_fs_subvolume_snapshot_ls(self, inbuf, cmd):
         return self.vc.list_subvolume_snapshots(vol_name=cmd['vol_name'],
                                                 sub_name=cmd['sub_name'],
index 790168937311b690bcda219f0fdf218892e2fe56..8d2052c1783f01d061b0f2c9fe946bf615b050ef 100644 (file)
@@ -640,7 +640,7 @@ cdef size_t * to_csize_t_array(list_int):
     cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
     if ret == NULL:
         raise MemoryError("malloc failed")
     cdef size_t *ret = <size_t *>malloc(len(list_int) * sizeof(size_t))
     if ret == NULL:
         raise MemoryError("malloc failed")
-    for i in xrange(len(list_int)):
+    for i in range(len(list_int)):
         ret[i] = <size_t>list_int[i]
     return ret
 
         ret[i] = <size_t>list_int[i]
     return ret
 
@@ -649,7 +649,7 @@ cdef char ** to_bytes_array(list_bytes):
     cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
     if ret == NULL:
         raise MemoryError("malloc failed")
     cdef char **ret = <char **>malloc(len(list_bytes) * sizeof(char *))
     if ret == NULL:
         raise MemoryError("malloc failed")
-    for i in xrange(len(list_bytes)):
+    for i in range(len(list_bytes)):
         ret[i] = <char *>list_bytes[i]
     return ret
 
         ret[i] = <char *>list_bytes[i]
     return ret
 
index 8b8140dc4cecf5532b43a8b564256ab8f786b8be..72cfda55650b8ac649f0c4f7cc5afc6dcee21390 100644 (file)
@@ -1180,7 +1180,7 @@ class RBD(object):
         rbd_version(&major, &minor, &extra)
         return (major, minor, extra)
 
         rbd_version(&major, &minor, &extra)
         return (major, minor, extra)
 
-    def create(self, ioctx, name, size, order=None, old_format=True,
+    def create(self, ioctx, name, size, order=None, old_format=False,
                features=None, stripe_unit=None, stripe_count=None,
                data_pool=None):
         """
                features=None, stripe_unit=None, stripe_count=None,
                data_pool=None):
         """
index 0b5b489de98d0820da8c90d25ca9645c349a25dc..43ae10546ea41a3a940cb1cbf66623c473a2415c 100644 (file)
@@ -241,7 +241,8 @@ class DriveGroupSpec(ServiceSpec):
         # type: () -> None
         super(DriveGroupSpec, self).validate()
 
         # type: () -> None
         super(DriveGroupSpec, self).validate()
 
-        if not isinstance(self.placement.host_pattern, six.string_types):
+        if not isinstance(self.placement.host_pattern, six.string_types) and \
+                self.placement.host_pattern is not None:
             raise DriveGroupValidationError('host_pattern must be of type string')
 
         specs = [self.data_devices, self.db_devices, self.wal_devices, self.journal_devices]
             raise DriveGroupValidationError('host_pattern must be of type string')
 
         specs = [self.data_devices, self.db_devices, self.wal_devices, self.journal_devices]
index ff71803003abe0ffabfbe2a5e3c6e5c3ae2dcf2b..cdc21caa52ff2a6d6622b6f79f9ead16bd023bee 100644 (file)
@@ -5,9 +5,7 @@ try:
 except ImportError:
     pass
 
 except ImportError:
     pass
 
-from ceph.deployment.inventory import Device
-
-from ..inventory import Devices
+from ..inventory import Device
 from ..drive_group import DriveGroupSpec, DeviceSelection
 
 from .filter import FilterGenerator
 from ..drive_group import DriveGroupSpec, DeviceSelection
 
 from .filter import FilterGenerator
@@ -18,7 +16,7 @@ logger = logging.getLogger(__name__)
 class DriveSelection(object):
     def __init__(self,
                  spec,  # type: DriveGroupSpec
 class DriveSelection(object):
     def __init__(self,
                  spec,  # type: DriveGroupSpec
-                 disks,  # type: Devices
+                 disks,  # type: List[Device]
                  ):
         self.disks = disks.copy()
         self.spec = spec
                  ):
         self.disks = disks.copy()
         self.spec = spec
index 361adf3c36845f828bcef8e4c7f1c5067cf921eb..94dcb5024b5bd6ab39fce30398a91cab5ced854d 100644 (file)
@@ -28,6 +28,7 @@ class Devices(object):
         return cls([Device.from_json(i) for i in input])
 
     def copy(self):
         return cls([Device.from_json(i) for i in input])
 
     def copy(self):
+        # type: () -> Devices
         return Devices(devices=list(self.devices))
 
 
         return Devices(devices=list(self.devices))
 
 
index 5bcf7d91a9ae1a2f9aed2e7840e45177aaaf0372..362dd1bfeb5169957913de6926a1bb2a3d805fd0 100644 (file)
@@ -2,7 +2,7 @@ import fnmatch
 import re
 from collections import namedtuple
 from functools import wraps
 import re
 from collections import namedtuple
 from functools import wraps
-from typing import Optional, Dict, Any, List, Union
+from typing import Optional, Dict, Any, List, Union, Callable
 
 import six
 
 
 import six
 
@@ -173,11 +173,23 @@ class PlacementSpec(object):
         # in the orchestrator backend.
         self.hosts = hosts
 
         # in the orchestrator backend.
         self.hosts = hosts
 
-    def pattern_matches_hosts(self, all_hosts):
-        # type: (List[str]) -> List[str]
-        if not self.host_pattern:
+    def filter_matching_hosts(self, _get_hosts_func: Callable) -> List[str]:
+        if self.hosts:
+            all_hosts = _get_hosts_func(label=None, as_hostspec=False)
+            return [h.hostname for h in self.hosts if h.hostname in all_hosts]
+        elif self.label:
+            return _get_hosts_func(label=self.label, as_hostspec=False)
+        elif self.host_pattern:
+            return fnmatch.filter(_get_hosts_func(label=None, as_hostspec=False), self.host_pattern)
+        else:
+            # This should be caught by the validation but needs to be here for
+            # get_host_selection_size
             return []
             return []
-        return fnmatch.filter(all_hosts, self.host_pattern)
+
+    def get_host_selection_size(self, _get_hosts_func):
+        if self.count:
+            return self.count
+        return len(self.filter_matching_hosts(_get_hosts_func))
 
     def pretty_str(self):
         kv = []
 
     def pretty_str(self):
         kv = []
@@ -377,11 +389,11 @@ class ServiceSpec(object):
         return object.__new__(sub_cls)
 
     def __init__(self,
         return object.__new__(sub_cls)
 
     def __init__(self,
-                 service_type,     # type: str
-                 service_id=None,  # type: Optional[str]
-                 placement=None,   # type: Optional[PlacementSpec]
-                 count=None,       # type: Optional[int]
-                 unmanaged=False,  # type: bool
+                 service_type: str,
+                 service_id: Optional[str] = None,
+                 placement: Optional[PlacementSpec] = None,
+                 count: Optional[int] = None,
+                 unmanaged: bool = False,
                  ):
         self.placement = PlacementSpec() if placement is None else placement  # type: PlacementSpec
 
                  ):
         self.placement = PlacementSpec() if placement is None else placement  # type: PlacementSpec
 
@@ -478,8 +490,14 @@ def servicespec_validate_add(self: ServiceSpec):
 
 
 class NFSServiceSpec(ServiceSpec):
 
 
 class NFSServiceSpec(ServiceSpec):
-    def __init__(self, service_id=None, pool=None, namespace=None, placement=None,
-                 service_type='nfs', unmanaged=False):
+    def __init__(self,
+                 service_type: str = 'nfs',
+                 service_id: Optional[str] = None,
+                 pool: Optional[str] = None,
+                 namespace: Optional[str] = None,
+                 placement: Optional[PlacementSpec] = None,
+                 unmanaged: bool = False,
+                 ):
         assert service_type == 'nfs'
         super(NFSServiceSpec, self).__init__(
             'nfs', service_id=service_id,
         assert service_type == 'nfs'
         super(NFSServiceSpec, self).__init__(
             'nfs', service_id=service_id,
@@ -503,6 +521,7 @@ class NFSServiceSpec(ServiceSpec):
 
     def rados_config_location(self):
         # type: () -> str
 
     def rados_config_location(self):
         # type: () -> str
+        assert self.pool
         url = 'rados://' + self.pool + '/'
         if self.namespace:
             url += self.namespace + '/'
         url = 'rados://' + self.pool + '/'
         if self.namespace:
             url += self.namespace + '/'
@@ -516,17 +535,17 @@ class RGWSpec(ServiceSpec):
 
     """
     def __init__(self,
 
     """
     def __init__(self,
-                 service_type='rgw',
-                 service_id=None,  # type: Optional[str]
-                 placement=None,
-                 rgw_realm=None,  # type: Optional[str]
-                 rgw_zone=None,  # type: Optional[str]
-                 subcluster=None,  # type: Optional[str]
-                 rgw_frontend_port=None,  # type: Optional[int]
-                 rgw_frontend_ssl_certificate=None,  # type Optional[List[str]]
-                 rgw_frontend_ssl_key=None,  # type: Optional[List[str]]
-                 unmanaged=False,  # type: bool
-                 ssl=False,   # type: bool
+                 service_type: str = 'rgw',
+                 service_id: Optional[str] = None,
+                 placement: Optional[PlacementSpec] = None,
+                 rgw_realm: Optional[str] = None,
+                 rgw_zone: Optional[str] = None,
+                 subcluster: Optional[str] = None,
+                 rgw_frontend_port: Optional[int] = None,
+                 rgw_frontend_ssl_certificate: Optional[List[str]] = None,
+                 rgw_frontend_ssl_key: Optional[List[str]] = None,
+                 unmanaged: bool = False,
+                 ssl: bool = False,
                  ):
         assert service_type == 'rgw', service_type
         if service_id:
                  ):
         assert service_type == 'rgw', service_type
         if service_id:
@@ -572,18 +591,20 @@ class RGWSpec(ServiceSpec):
 
 
 class IscsiServiceSpec(ServiceSpec):
 
 
 class IscsiServiceSpec(ServiceSpec):
-    def __init__(self, service_id, pool=None,
-                 placement=None,
-                 trusted_ip_list=None,
-                 fqdn_enabled=None,
-                 api_port=None,
-                 api_user=None,
-                 api_password=None,
-                 api_secure=None,
-                 ssl_cert=None,
-                 ssl_key=None,
-                 service_type='iscsi',
-                 unmanaged=False):
+    def __init__(self,
+                 service_type: str = 'iscsi',
+                 service_id: Optional[str] = None,
+                 pool: Optional[str] = None,
+                 trusted_ip_list: Optional[str] = None,
+                 api_port: Optional[int] = None,
+                 api_user: Optional[str] = None,
+                 api_password: Optional[str] = None,
+                 api_secure: Optional[bool] = None,
+                 ssl_cert: Optional[str] = None,
+                 ssl_key: Optional[str] = None,
+                 placement: Optional[PlacementSpec] = None,
+                 unmanaged: bool = False
+                 ):
         assert service_type == 'iscsi'
         super(IscsiServiceSpec, self).__init__('iscsi', service_id=service_id,
                                                placement=placement, unmanaged=unmanaged)
         assert service_type == 'iscsi'
         super(IscsiServiceSpec, self).__init__('iscsi', service_id=service_id,
                                                placement=placement, unmanaged=unmanaged)
@@ -591,7 +612,6 @@ class IscsiServiceSpec(ServiceSpec):
         #: RADOS pool where ceph-iscsi config data is stored.
         self.pool = pool
         self.trusted_ip_list = trusted_ip_list
         #: RADOS pool where ceph-iscsi config data is stored.
         self.pool = pool
         self.trusted_ip_list = trusted_ip_list
-        self.fqdn_enabled = fqdn_enabled
         self.api_port = api_port
         self.api_user = api_user
         self.api_password = api_password
         self.api_port = api_port
         self.api_user = api_user
         self.api_password = api_password
@@ -599,9 +619,18 @@ class IscsiServiceSpec(ServiceSpec):
         self.ssl_cert = ssl_cert
         self.ssl_key = ssl_key
 
         self.ssl_cert = ssl_cert
         self.ssl_key = ssl_key
 
-    def validate_add(self):
-        servicespec_validate_add(self)
+        if not self.api_secure and self.ssl_cert and self.ssl_key:
+            self.api_secure = True
+
+    def validate(self):
+        super(IscsiServiceSpec, self).validate()
 
         if not self.pool:
             raise ServiceSpecValidationError(
                 'Cannot add ISCSI: No Pool specified')
 
         if not self.pool:
             raise ServiceSpecValidationError(
                 'Cannot add ISCSI: No Pool specified')
+        if not self.api_user:
+            raise ServiceSpecValidationError(
+                'Cannot add ISCSI: No Api user specified')
+        if not self.api_password:
+            raise ServiceSpecValidationError(
+                'Cannot add ISCSI: No Api password specified')
index c0734ced82e39919cd86a16bbbf6ba0fac75f353..a34e93aaa27c9eccea2b94cef45edd484aa5563f 100644 (file)
@@ -24,7 +24,7 @@ from ceph.deployment.drive_group import DriveGroupSpec, DeviceSelection, \
 ])
 def test_DriveGroup(test_input):
     dg = [DriveGroupSpec.from_json(inp) for inp in test_input][0]
 ])
 def test_DriveGroup(test_input):
     dg = [DriveGroupSpec.from_json(inp) for inp in test_input][0]
-    assert dg.placement.pattern_matches_hosts(['hostname']) == ['hostname']
+    assert dg.placement.filter_matching_hosts(lambda label=None, as_hostspec=None: ['hostname']) == ['hostname']
     assert dg.service_id == 'testing_drivegroup'
     assert all([isinstance(x, Device) for x in dg.data_devices.paths])
     assert dg.data_devices.paths[0].path == '/dev/sda'
     assert dg.service_id == 'testing_drivegroup'
     assert all([isinstance(x, Device) for x in dg.data_devices.paths])
     assert dg.data_devices.paths[0].path == '/dev/sda'
@@ -53,7 +53,7 @@ def test_DriveGroup_fail(test_input):
 
 def test_drivegroup_pattern():
     dg = DriveGroupSpec(PlacementSpec(host_pattern='node[1-3]'), data_devices=DeviceSelection(all=True))
 
 def test_drivegroup_pattern():
     dg = DriveGroupSpec(PlacementSpec(host_pattern='node[1-3]'), data_devices=DeviceSelection(all=True))
-    assert dg.placement.pattern_matches_hosts(['node{}'.format(i) for i in range(10)]) == ['node1', 'node2', 'node3']
+    assert dg.placement.filter_matching_hosts(lambda label=None, as_hostspec=None: ['node{}'.format(i) for i in range(10)]) == ['node1', 'node2', 'node3']
 
 
 def test_drive_selection():
 
 
 def test_drive_selection():
index 2d714a6b2038fa15da111ace69da82cd3dd24e81..ebba43094bc10451044d7d459c366753d80d7fde 100644 (file)
@@ -1,5 +1,10 @@
 from ceph.deployment.inventory import Devices, Device
 
 from ceph.deployment.inventory import Devices, Device
 
+try:
+    from typing import Any, List
+except ImportError:
+    pass  # for type checking
+
 
 def _mk_device(rotational=True,
                locked=False,
 
 def _mk_device(rotational=True,
                locked=False,
@@ -29,6 +34,7 @@ def _mk_device(rotational=True,
 
 
 def _mk_inventory(devices):
 
 
 def _mk_inventory(devices):
+    # type: (Any) -> List[Device]
     devs = []
     for dev_, name in zip(devices, map(chr, range(ord('a'), ord('z')))):
         dev = Device.from_json(dev_.to_json())
     devs = []
     for dev_, name in zip(devices, map(chr, range(ord('a'), ord('z')))):
         dev = Device.from_json(dev_.to_json())
index e7c8166542a7dd849711c17f7ee959c4ac6ec0b2..6d6db311929c5899b40df42de9ae365b671dab5a 100644 (file)
@@ -1,8 +1,6 @@
 /*
  * rbd-fuse
  */
 /*
  * rbd-fuse
  */
-#define FUSE_USE_VERSION 30
-
 #include "include/int_types.h"
 
 #include <stdio.h>
 #include "include/int_types.h"
 
 #include <stdio.h>
@@ -11,7 +9,6 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <fuse.h>
 #include <pthread.h>
 #include <string.h>
 #include <sys/types.h>
 #include <pthread.h>
 #include <string.h>
 #include <sys/types.h>
index 2dae1f2c81deb24f3bc0ca64731040c39bb3274a..c4555ca9c1a024eb8d33b6100913565322cf05fb 100644 (file)
@@ -450,3 +450,6 @@ if(WITH_TESTS)
     ceph_rgw_multiparser
     DESTINATION bin)
 endif(WITH_TESTS)
     ceph_rgw_multiparser
     DESTINATION bin)
 endif(WITH_TESTS)
+
+install(PROGRAMS rgw-orphan-list
+  DESTINATION bin)
diff --git a/ceph/src/rgw/rgw-orphan-list b/ceph/src/rgw/rgw-orphan-list
new file mode 100755 (executable)
index 0000000..5af5282
--- /dev/null
@@ -0,0 +1,90 @@
+#!/usr/bin/env bash
+
+# version 1
+
+# IMPORTANT: affects order produced by 'sort' and 'ceph-diff-sorted'
+# relies on this ordering
+export LANG=C
+
+out_dir="."
+temp_file=/tmp/temp.$$
+timestamp=$(date -u +%Y%m%d%k%M)
+lspools_err="${out_dir}/lspools-${timestamp}.error"
+rados_out="${out_dir}/rados-${timestamp}.intermediate"
+rados_err="${out_dir}/rados-${timestamp}.error"
+rgwadmin_out="${out_dir}/radosgw-admin-${timestamp}.intermediate"
+rgwadmin_err="${out_dir}/radosgw-admin-${timestamp}.error"
+delta_out="${out_dir}/orphan-list-${timestamp}.out"
+
+error_out() {
+    echo "An error was encountered while running '$1'. Aborting."
+    if [ $# -gt 1 ] ;then
+       echo "Review file '$2' for details."
+    fi
+    echo "***"
+    echo "*** WARNING: The results are incomplete. Do not use! ***"
+    echo "***"
+    exit 1
+}
+
+prompt_pool() {
+    echo "Available pools:"
+    rados lspools >"$temp_file" 2>"$lspools_err"
+    if [ "$?" -ne 0 ] ;then
+       error_out "rados lspools" "$lspools_err"
+    fi
+    sed 's/^/    /' $temp_file # list pools and indent
+    printf "Which pool do you want to search for orphans? "
+    local mypool
+    read mypool
+    echo $mypool
+}
+
+if [ $# -eq 0 ] ;then
+    pool="$(prompt_pool)"
+elif [ $# -eq 1 ] ;then
+    pool="$1"
+else
+    error_out "Usage: $0 [pool]"
+fi
+
+echo "Pool is \"$pool\"."
+
+echo "Note: output files produced will be tagged with the current timestamp -- ${timestamp}."
+
+echo "running 'rados ls' at $(date)"
+rados ls --pool="$pool" >"$rados_out" 2>"$rados_err"
+if [ "$?" -ne 0 ] ;then
+    error_out "rados ls" "$rados_err"
+fi
+sort -u "$rados_out" >"$temp_file"
+mv -f "$temp_file" "$rados_out"
+
+echo "running 'radosgw-admin bucket radoslist' at $(date)"
+radosgw-admin bucket radoslist >"$rgwadmin_out" 2>"$rgwadmin_err"
+if [ "$?" -ne 0 ] ;then
+    error_out "radosgw-admin radoslist" "$rgwadmin_err"
+fi
+sort -u "$rgwadmin_out" >"$temp_file"
+mv -f "$temp_file" "$rgwadmin_out"
+
+echo "computing delta at $(date)"
+ceph-diff-sorted "$rados_out" "$rgwadmin_out" | grep "^<" | sed 's/^< *//' >"$delta_out"
+# use PIPESTATUS to get at exit status of first process in above pipe;
+# 0 means same, 1 means different, >1 means error
+if [ "${PIPESTATUS[0]}" -gt 1 ] ;then
+    error_out "ceph-diff-sorted"
+fi
+
+found="$(wc -l < $delta_out)"
+possible="$(wc -l < $rados_out)"
+percentage=$(expr 100 \* $found / $possible)
+
+echo "$found potential orphans found out of a possible $possible (${percentage}%)."
+echo "The results can be found in ${delta_out}."
+echo "    Intermediate files: ${rados_out} and ${rgwadmin_out}"
+echo "***"
+echo "*** WARNING: This is EXPERIMENTAL code and the results should be used"
+echo "***          only with CAUTION!"
+echo "***"
+echo "Done at $(date)."
index fb463ea88c9da5fe7dae22d7421c24be9d0046b4..d4f3d73442da9a047912dc6b2fa7560c270c6b43 100644 (file)
@@ -136,6 +136,7 @@ void usage()
   cout << "  bucket rewrite             rewrite all objects in the specified bucket\n";
   cout << "  bucket sync disable        disable bucket sync\n";
   cout << "  bucket sync enable         enable bucket sync\n";
   cout << "  bucket rewrite             rewrite all objects in the specified bucket\n";
   cout << "  bucket sync disable        disable bucket sync\n";
   cout << "  bucket sync enable         enable bucket sync\n";
+  cout << "  bucket radoslist           list rados objects backing bucket's objects\n";
   cout << "  bi get                     retrieve bucket index object entries\n";
   cout << "  bi put                     store bucket index object entries\n";
   cout << "  bi list                    list raw bucket index entries\n";
   cout << "  bi get                     retrieve bucket index object entries\n";
   cout << "  bi put                     store bucket index object entries\n";
   cout << "  bi list                    list raw bucket index entries\n";
@@ -242,9 +243,10 @@ void usage()
   cout << "  datalog list               list data log\n";
   cout << "  datalog trim               trim data log\n";
   cout << "  datalog status             read data log status\n";
   cout << "  datalog list               list data log\n";
   cout << "  datalog trim               trim data log\n";
   cout << "  datalog status             read data log status\n";
-  cout << "  orphans find               init and run search for leaked rados objects (use job-id, pool)\n";
-  cout << "  orphans finish             clean up search for leaked rados objects\n";
-  cout << "  orphans list-jobs          list the current job-ids for orphans search\n";
+  cout << "  orphans find               deprecated -- init and run search for leaked rados objects (use job-id, pool)\n";
+  cout << "  orphans finish             deprecated -- clean up search for leaked rados objects\n";
+  cout << "  orphans list-jobs          deprecated -- list the current job-ids for orphans search\n";
+  cout << "                           * the three 'orphans' sub-commands are now deprecated; consider using the `rgw-orphan-list` tool\n";
   cout << "  role create                create a AWS role for use with STS\n";
   cout << "  role rm                    remove a role\n";
   cout << "  role get                   get a role\n";
   cout << "  role create                create a AWS role for use with STS\n";
   cout << "  role rm                    remove a role\n";
   cout << "  role get                   get a role\n";
@@ -586,6 +588,7 @@ enum class OPT {
   BUCKET_REWRITE,
   BUCKET_RESHARD,
   BUCKET_CHOWN,
   BUCKET_REWRITE,
   BUCKET_RESHARD,
   BUCKET_CHOWN,
+  BUCKET_RADOS_LIST,
   POLICY,
   POOL_ADD,
   POOL_RM,
   POLICY,
   POOL_ADD,
   POOL_RM,
@@ -785,6 +788,8 @@ static SimpleCmd::Commands all_cmds = {
   { "bucket rewrite", OPT::BUCKET_REWRITE },
   { "bucket reshard", OPT::BUCKET_RESHARD },
   { "bucket chown", OPT::BUCKET_CHOWN },
   { "bucket rewrite", OPT::BUCKET_REWRITE },
   { "bucket reshard", OPT::BUCKET_RESHARD },
   { "bucket chown", OPT::BUCKET_CHOWN },
+  { "bucket radoslist", OPT::BUCKET_RADOS_LIST },
+  { "bucket rados list", OPT::BUCKET_RADOS_LIST },
   { "policy", OPT::POLICY },
   { "pool add", OPT::POOL_ADD },
   { "pool rm", OPT::POOL_RM },
   { "policy", OPT::POLICY },
   { "pool add", OPT::POOL_ADD },
   { "pool rm", OPT::POOL_RM },
@@ -1076,8 +1081,12 @@ public:
   }
 };
 
   }
 };
 
-static int init_bucket(const string& tenant_name, const string& bucket_name, const string& bucket_id,
-                       RGWBucketInfo& bucket_info, rgw_bucket& bucket, map<string, bufferlist> *pattrs = nullptr)
+static int init_bucket(const string& tenant_name,
+                      const string& bucket_name,
+                      const string& bucket_id,
+                       RGWBucketInfo& bucket_info,
+                      rgw_bucket& bucket,
+                      map<string, bufferlist> *pattrs = nullptr)
 {
   if (!bucket_name.empty()) {
     auto obj_ctx = store->svc()->sysobj->init_obj_ctx();
 {
   if (!bucket_name.empty()) {
     auto obj_ctx = store->svc()->sysobj->init_obj_ctx();
@@ -1657,7 +1666,7 @@ static int commit_period(RGWRealm& realm, RGWPeriod& period,
   if (remote.empty() && url.empty()) {
     // use the new master zone's connection
     remote = master_zone.id;
   if (remote.empty() && url.empty()) {
     // use the new master zone's connection
     remote = master_zone.id;
-    cout << "Sending period to new master zone " << remote << std::endl;
+    cerr << "Sending period to new master zone " << remote << std::endl;
   }
   boost::optional<RGWRESTConn> conn;
   RGWRESTConn *remote_conn = nullptr;
   }
   boost::optional<RGWRESTConn> conn;
   RGWRESTConn *remote_conn = nullptr;
@@ -6076,6 +6085,29 @@ int main(int argc, const char **argv)
     } /* have bucket_name */
   } /* OPT::BUCKETS_LIST */
 
     } /* have bucket_name */
   } /* OPT::BUCKETS_LIST */
 
+  if (opt_cmd == OPT::BUCKET_RADOS_LIST) {
+    RGWRadosList lister(store,
+                       max_concurrent_ios, orphan_stale_secs, tenant);
+    if (bucket_name.empty()) {
+      ret = lister.run();
+    } else {
+      ret = lister.run(bucket_name);
+    }
+
+    if (ret < 0) {
+      std::cerr <<
+       "ERROR: bucket radoslist failed to finish before " <<
+       "encountering error: " << cpp_strerror(-ret) << std::endl;
+      std::cerr << "************************************"
+       "************************************" << std::endl;
+      std::cerr << "WARNING: THE RESULTS ARE NOT RELIABLE AND SHOULD NOT " <<
+       "BE USED IN DELETING ORPHANS" << std::endl;
+      std::cerr << "************************************"
+       "************************************" << std::endl;
+      return -ret;
+    }
+  }
+
   if (opt_cmd == OPT::BUCKET_STATS) {
     if (bucket_name.empty() && !bucket_id.empty()) {
       rgw_bucket bucket;
   if (opt_cmd == OPT::BUCKET_STATS) {
     if (bucket_name.empty() && !bucket_id.empty()) {
       rgw_bucket bucket;
@@ -7273,10 +7305,14 @@ next:
 
   if (opt_cmd == OPT::ORPHANS_FIND) {
     if (!yes_i_really_mean_it) {
 
   if (opt_cmd == OPT::ORPHANS_FIND) {
     if (!yes_i_really_mean_it) {
-      cerr << "accidental removal of active objects can not be reversed; "
+      cerr << "this command is now deprecated; please consider using the rgw-orphan-list tool; "
+          << "accidental removal of active objects cannot be reversed; "
           << "do you really mean it? (requires --yes-i-really-mean-it)"
           << std::endl;
       return EINVAL;
           << "do you really mean it? (requires --yes-i-really-mean-it)"
           << std::endl;
       return EINVAL;
+    } else {
+      cerr << "IMPORTANT: this command is now deprecated; please consider using the rgw-orphan-list tool"
+          << std::endl;
     }
 
     RGWOrphanSearch search(store, max_concurrent_ios, orphan_stale_secs);
     }
 
     RGWOrphanSearch search(store, max_concurrent_ios, orphan_stale_secs);
@@ -7308,6 +7344,17 @@ next:
   }
 
   if (opt_cmd == OPT::ORPHANS_FINISH) {
   }
 
   if (opt_cmd == OPT::ORPHANS_FINISH) {
+    if (!yes_i_really_mean_it) {
+      cerr << "this command is now deprecated; please consider using the rgw-orphan-list tool; "
+          << "accidental removal of active objects cannot be reversed; "
+          << "do you really mean it? (requires --yes-i-really-mean-it)"
+          << std::endl;
+      return EINVAL;
+    } else {
+      cerr << "IMPORTANT: this command is now deprecated; please consider using the rgw-orphan-list tool"
+          << std::endl;
+    }
+
     RGWOrphanSearch search(store, max_concurrent_ios, orphan_stale_secs);
 
     if (job_id.empty()) {
     RGWOrphanSearch search(store, max_concurrent_ios, orphan_stale_secs);
 
     if (job_id.empty()) {
@@ -7328,6 +7375,16 @@ next:
   }
 
   if (opt_cmd == OPT::ORPHANS_LIST_JOBS){
   }
 
   if (opt_cmd == OPT::ORPHANS_LIST_JOBS){
+    if (!yes_i_really_mean_it) {
+      cerr << "this command is now deprecated; please consider using the rgw-orphan-list tool; "
+          << "do you really mean it? (requires --yes-i-really-mean-it)"
+          << std::endl;
+      return EINVAL;
+    } else {
+      cerr << "IMPORTANT: this command is now deprecated; please consider using the rgw-orphan-list tool"
+          << std::endl;
+    }
+
     RGWOrphanStore orphan_store(store);
     int ret = orphan_store.init();
     if (ret < 0){
     RGWOrphanStore orphan_store(store);
     int ret = orphan_store.init();
     if (ret < 0){
@@ -8560,7 +8617,7 @@ next:
     do {
       list<rgw_data_change_log_entry> entries;
       if (specified_shard_id) {
     do {
       list<rgw_data_change_log_entry> entries;
       if (specified_shard_id) {
-        ret = datalog_svc->list_entries(shard_id, start_time.to_real_time(), end_time.to_real_time(), max_entries - count, entries, marker, NULL, &truncated);
+        ret = datalog_svc->list_entries(shard_id, start_time.to_real_time(), end_time.to_real_time(), max_entries - count, entries, marker, &marker, &truncated);
       } else {
         ret = datalog_svc->list_entries(start_time.to_real_time(), end_time.to_real_time(), max_entries - count, entries, log_marker, &truncated);
       }
       } else {
         ret = datalog_svc->list_entries(start_time.to_real_time(), end_time.to_real_time(), max_entries - count, entries, log_marker, &truncated);
       }
index a5f6ca00d84f411f257607bcf6980ea01864fa22..78446e88f68e667443406700a2659aafdabb57cf 100644 (file)
@@ -72,7 +72,7 @@ struct connection_id_t {
 };
 
 std::string to_string(const connection_id_t& id) {
 };
 
 std::string to_string(const connection_id_t& id) {
-    return id.host+":"+std::to_string(id.port)+"/"+id.vhost;
+    return id.host+":"+std::to_string(id.port)+id.vhost;
 }
 
 // connection_t state cleaner
 }
 
 // connection_t state cleaner
@@ -124,6 +124,8 @@ struct connection_t {
   mutable std::atomic<int> ref_count;
   CephContext* cct;
   CallbackList callbacks;
   mutable std::atomic<int> ref_count;
   CephContext* cct;
   CallbackList callbacks;
+  ceph::coarse_real_clock::time_point next_reconnect;
+  bool mandatory;
 
   // default ctor
   connection_t() :
 
   // default ctor
   connection_t() :
@@ -135,7 +137,10 @@ struct connection_t {
     reply_type(AMQP_RESPONSE_NORMAL),
     reply_code(RGW_AMQP_NO_REPLY_CODE),
     ref_count(0),
     reply_type(AMQP_RESPONSE_NORMAL),
     reply_code(RGW_AMQP_NO_REPLY_CODE),
     ref_count(0),
-    cct(nullptr) {}
+    cct(nullptr),
+    next_reconnect(ceph::coarse_real_clock::now()),
+    mandatory(false)
+  {}
 
   // cleanup of all internal connection resource
   // the object can still remain, and internal connection
 
   // cleanup of all internal connection resource
   // the object can still remain, and internal connection
@@ -489,12 +494,13 @@ connection_ptr_t& create_connection(connection_ptr_t& conn, const amqp_connectio
 
 // utility function to create a new connection
 connection_ptr_t create_new_connection(const amqp_connection_info& info, 
 
 // utility function to create a new connection
 connection_ptr_t create_new_connection(const amqp_connection_info& info, 
-    const std::string& exchange, CephContext* cct) { 
+    const std::string& exchange, bool mandatory_delivery, CephContext* cct) { 
   // create connection state
   connection_ptr_t conn = new connection_t;
   conn->exchange = exchange;
   conn->user.assign(info.user);
   conn->password.assign(info.password);
   // create connection state
   connection_ptr_t conn = new connection_t;
   conn->exchange = exchange;
   conn->user.assign(info.user);
   conn->password.assign(info.password);
+  conn->mandatory = mandatory_delivery;
   conn->cct = cct;
   return create_connection(conn, info);
 }
   conn->cct = cct;
   return create_connection(conn, info);
 }
@@ -542,6 +548,8 @@ private:
   CephContext* const cct;
   mutable std::mutex connections_lock;
   std::thread runner;
   CephContext* const cct;
   mutable std::mutex connections_lock;
   std::thread runner;
+  const ceph::coarse_real_clock::duration idle_time;
+  const ceph::coarse_real_clock::duration reconnect_time;
 
   void publish_internal(message_wrapper_t* message) {
     const std::unique_ptr<message_wrapper_t> msg_owner(message);
 
   void publish_internal(message_wrapper_t* message) {
     const std::unique_ptr<message_wrapper_t> msg_owner(message);
@@ -563,9 +571,9 @@ private:
         CHANNEL_ID,
         amqp_cstring_bytes(conn->exchange.c_str()),
         amqp_cstring_bytes(message->topic.c_str()),
         CHANNEL_ID,
         amqp_cstring_bytes(conn->exchange.c_str()),
         amqp_cstring_bytes(message->topic.c_str()),
-        1, // mandatory, TODO: take from conf
+        0, // does not have to be routable
         0, // not immediate
         0, // not immediate
-        nullptr,
+        nullptr, // no properties needed
         amqp_cstring_bytes(message->message.c_str()));
       if (rc == AMQP_STATUS_OK) {
         ldout(conn->cct, 20) << "AMQP publish (no callback): OK" << dendl;
         amqp_cstring_bytes(message->message.c_str()));
       if (rc == AMQP_STATUS_OK) {
         ldout(conn->cct, 20) << "AMQP publish (no callback): OK" << dendl;
@@ -589,7 +597,7 @@ private:
       CONFIRMING_CHANNEL_ID,
       amqp_cstring_bytes(conn->exchange.c_str()),
       amqp_cstring_bytes(message->topic.c_str()),
       CONFIRMING_CHANNEL_ID,
       amqp_cstring_bytes(conn->exchange.c_str()),
       amqp_cstring_bytes(message->topic.c_str()),
-      1, // mandatory, TODO: take from conf
+      conn->mandatory,
       0, // not immediate
       &props,
       amqp_cstring_bytes(message->message.c_str()));
       0, // not immediate
       &props,
       amqp_cstring_bytes(message->message.c_str()));
@@ -653,21 +661,26 @@ private:
 
         // try to reconnect the connection if it has an error
         if (!conn->is_ok()) {
 
         // try to reconnect the connection if it has an error
         if (!conn->is_ok()) {
-          // pointers are used temporarily inside the amqp_connection_info object
-          // as read-only values, hence the assignment, and const_cast are safe here
-          amqp_connection_info info;
-          info.host = const_cast<char*>(conn_it->first.host.c_str());
-          info.port = conn_it->first.port;
-          info.vhost = const_cast<char*>(conn_it->first.vhost.c_str());
-          info.user = const_cast<char*>(conn->user.c_str());
-          info.password = const_cast<char*>(conn->password.c_str());
-          ldout(conn->cct, 20) << "AMQP run: retry connection" << dendl;
-          if (create_connection(conn, info)->is_ok() == false) {
-            ldout(conn->cct, 10) << "AMQP run: connection (" << to_string(conn_it->first) << ") retry failed" << dendl;
-            // TODO: add error counter for failed retries
-            // TODO: add exponential backoff for retries
-          } else {
-            ldout(conn->cct, 10) << "AMQP run: connection (" << to_string(conn_it->first) << ") retry successfull" << dendl;
+          const auto now = ceph::coarse_real_clock::now();
+          if (now >= conn->next_reconnect) {
+            // pointers are used temporarily inside the amqp_connection_info object
+            // as read-only values, hence the assignment, and const_cast are safe here
+            amqp_connection_info info;
+            info.host = const_cast<char*>(conn_it->first.host.c_str());
+            info.port = conn_it->first.port;
+            info.vhost = const_cast<char*>(conn_it->first.vhost.c_str());
+            info.user = const_cast<char*>(conn->user.c_str());
+            info.password = const_cast<char*>(conn->password.c_str());
+            ldout(conn->cct, 20) << "AMQP run: retry connection" << dendl;
+            if (create_connection(conn, info)->is_ok() == false) {
+              ldout(conn->cct, 10) << "AMQP run: connection (" << to_string(conn_it->first) << ") retry failed. error: " <<
+                status_to_string(conn->status) << " (" << conn->reply_code << ")"  << dendl;
+              // TODO: add error counter for failed retries
+              // TODO: add exponential backoff for retries
+              conn->next_reconnect = now + reconnect_time;
+            } else {
+              ldout(conn->cct, 10) << "AMQP run: connection (" << to_string(conn_it->first) << ") retry successfull" << dendl;
+            }
           }
           INCREMENT_AND_CONTINUE(conn_it);
         }
           }
           INCREMENT_AND_CONTINUE(conn_it);
         }
@@ -693,9 +706,9 @@ private:
         }
 
         if (frame.frame_type != AMQP_FRAME_METHOD) {
         }
 
         if (frame.frame_type != AMQP_FRAME_METHOD) {
-          ldout(conn->cct, 10) << "AMQP run: ignoring non n/ack messages" << dendl;
+          ldout(conn->cct, 10) << "AMQP run: ignoring non n/ack messages. frame type: " 
+            << unsigned(frame.frame_type) << dendl;
           // handler is for publish confirmation only - handle only method frames
           // handler is for publish confirmation only - handle only method frames
-          // TODO: add a counter
           INCREMENT_AND_CONTINUE(conn_it);
         }
 
           INCREMENT_AND_CONTINUE(conn_it);
         }
 
@@ -722,6 +735,14 @@ private:
               multiple = nack->multiple;
               break;
             }
               multiple = nack->multiple;
               break;
             }
+          case AMQP_BASIC_REJECT_METHOD:                                                   
+            {                                                                              
+              result = RGW_AMQP_STATUS_BROKER_NACK;                                        
+              const auto reject = (amqp_basic_reject_t*)frame.payload.method.decoded;      
+              tag = reject->delivery_tag;                                                  
+              multiple = false;                                                            
+              break;
+            }
           case AMQP_CONNECTION_CLOSE_METHOD:
             // TODO on channel close, no need to reopen the connection
           case AMQP_CHANNEL_CLOSE_METHOD:
           case AMQP_CONNECTION_CLOSE_METHOD:
             // TODO on channel close, no need to reopen the connection
           case AMQP_CHANNEL_CLOSE_METHOD:
@@ -733,13 +754,11 @@ private:
             }
           case AMQP_BASIC_RETURN_METHOD:
             // message was not delivered, returned to sender
             }
           case AMQP_BASIC_RETURN_METHOD:
             // message was not delivered, returned to sender
-            // TODO: add a counter
-            ldout(conn->cct, 10) << "AMQP run: message delivery error" << dendl;
+            ldout(conn->cct, 10) << "AMQP run: message was not routable" << dendl;
             INCREMENT_AND_CONTINUE(conn_it);
             break;
           default:
             // unexpected method
             INCREMENT_AND_CONTINUE(conn_it);
             break;
           default:
             // unexpected method
-            // TODO: add a counter
             ldout(conn->cct, 10) << "AMQP run: unexpected message" << dendl;
             INCREMENT_AND_CONTINUE(conn_it);
         }
             ldout(conn->cct, 10) << "AMQP run: unexpected message" << dendl;
             INCREMENT_AND_CONTINUE(conn_it);
         }
@@ -764,7 +783,6 @@ private:
             conn->callbacks.erase(tag_it);
           }
         } else {
             conn->callbacks.erase(tag_it);
           }
         } else {
-          // TODO add counter for acks with no callback
           ldout(conn->cct, 10) << "AMQP run: unsolicited n/ack received with tag=" << tag << dendl;
         }
         // just increment the iterator
           ldout(conn->cct, 10) << "AMQP run: unsolicited n/ack received with tag=" << tag << dendl;
         }
         // just increment the iterator
@@ -772,7 +790,7 @@ private:
       }
       // if no messages were received or published, sleep for 100ms
       if (count == 0 && !incoming_message) {
       }
       // if no messages were received or published, sleep for 100ms
       if (count == 0 && !incoming_message) {
-        std::this_thread::sleep_for(std::chrono::milliseconds(100));
+        std::this_thread::sleep_for(idle_time);
       }
     }
   }
       }
     }
   }
@@ -787,6 +805,8 @@ public:
       size_t _max_inflight,
       size_t _max_queue, 
       long _usec_timeout,
       size_t _max_inflight,
       size_t _max_queue, 
       long _usec_timeout,
+      unsigned reconnect_time_ms,
+      unsigned idle_time_ms,
       CephContext* _cct) : 
     max_connections(_max_connections),
     max_inflight(_max_inflight),
       CephContext* _cct) : 
     max_connections(_max_connections),
     max_inflight(_max_inflight),
@@ -799,7 +819,9 @@ public:
     queued(0),
     dequeued(0),
     cct(_cct),
     queued(0),
     dequeued(0),
     cct(_cct),
-    runner(&Manager::run, this) {
+    runner(&Manager::run, this),
+    idle_time(std::chrono::milliseconds(idle_time_ms)),
+    reconnect_time(std::chrono::milliseconds(reconnect_time_ms)) {
       // The hashmap has "max connections" as the initial number of buckets, 
       // and allows for 10 collisions per bucket before rehash.
       // This is to prevent rehashing so that iterators are not invalidated 
       // The hashmap has "max connections" as the initial number of buckets, 
       // and allows for 10 collisions per bucket before rehash.
       // This is to prevent rehashing so that iterators are not invalidated 
@@ -829,9 +851,8 @@ public:
   }
 
   // connect to a broker, or reuse an existing connection if already connected
   }
 
   // connect to a broker, or reuse an existing connection if already connected
-  connection_ptr_t connect(const std::string& url, const std::string& exchange) {
+  connection_ptr_t connect(const std::string& url, const std::string& exchange, bool mandatory_delivery) {
     if (stopped) {
     if (stopped) {
-      // TODO: increment counter
       ldout(cct, 1) << "AMQP connect: manager is stopped" << dendl;
       return nullptr;
     }
       ldout(cct, 1) << "AMQP connect: manager is stopped" << dendl;
       return nullptr;
     }
@@ -840,7 +861,6 @@ public:
     // cache the URL so that parsing could happen in-place
     std::vector<char> url_cache(url.c_str(), url.c_str()+url.size()+1);
     if (AMQP_STATUS_OK != amqp_parse_url(url_cache.data(), &info)) {
     // cache the URL so that parsing could happen in-place
     std::vector<char> url_cache(url.c_str(), url.c_str()+url.size()+1);
     if (AMQP_STATUS_OK != amqp_parse_url(url_cache.data(), &info)) {
-      // TODO: increment counter
       ldout(cct, 1) << "AMQP connect: URL parsing failed" << dendl;
       return nullptr;
     }
       ldout(cct, 1) << "AMQP connect: URL parsing failed" << dendl;
       return nullptr;
     }
@@ -850,11 +870,9 @@ public:
     const auto it = connections.find(id);
     if (it != connections.end()) {
       if (it->second->marked_for_deletion) {
     const auto it = connections.find(id);
     if (it != connections.end()) {
       if (it->second->marked_for_deletion) {
-        // TODO: increment counter
         ldout(cct, 1) << "AMQP connect: endpoint marked for deletion" << dendl;
         return nullptr;
       } else if (it->second->exchange != exchange) {
         ldout(cct, 1) << "AMQP connect: endpoint marked for deletion" << dendl;
         return nullptr;
       } else if (it->second->exchange != exchange) {
-        // TODO: increment counter
         ldout(cct, 1) << "AMQP connect: exchange mismatch" << dendl;
         return nullptr;
       }
         ldout(cct, 1) << "AMQP connect: exchange mismatch" << dendl;
         return nullptr;
       }
@@ -865,11 +883,14 @@ public:
 
     // connection not found, creating a new one
     if (connection_count >= max_connections) {
 
     // connection not found, creating a new one
     if (connection_count >= max_connections) {
-      // TODO: increment counter
       ldout(cct, 1) << "AMQP connect: max connections exceeded" << dendl;
       return nullptr;
     }
       ldout(cct, 1) << "AMQP connect: max connections exceeded" << dendl;
       return nullptr;
     }
-    const auto conn = create_new_connection(info, exchange, cct);
+    const auto conn = create_new_connection(info, exchange, mandatory_delivery, cct);
+    if (!conn->is_ok()) {
+      ldout(cct, 10) << "AMQP connect: connection (" << to_string(id) << ") creation failed. error:" <<
+              status_to_string(conn->status) << "(" << conn->reply_code << ")" << dendl;
+    }
     // create_new_connection must always return a connection object
     // even if error occurred during creation. 
     // in such a case the creation will be retried in the main thread
     // create_new_connection must always return a connection object
     // even if error occurred during creation. 
     // in such a case the creation will be retried in the main thread
@@ -885,15 +906,18 @@ public:
     const std::string& topic,
     const std::string& message) {
     if (stopped) {
     const std::string& topic,
     const std::string& message) {
     if (stopped) {
+      ldout(cct, 1) << "AMQP publish: manager is not running" << dendl;
       return RGW_AMQP_STATUS_MANAGER_STOPPED;
     }
     if (!conn || !conn->is_ok()) {
       return RGW_AMQP_STATUS_MANAGER_STOPPED;
     }
     if (!conn || !conn->is_ok()) {
+      ldout(cct, 1) << "AMQP publish: no connection" << dendl;
       return RGW_AMQP_STATUS_CONNECTION_CLOSED;
     }
     if (messages.push(new message_wrapper_t(conn, topic, message, nullptr))) {
       ++queued;
       return AMQP_STATUS_OK;
     }
       return RGW_AMQP_STATUS_CONNECTION_CLOSED;
     }
     if (messages.push(new message_wrapper_t(conn, topic, message, nullptr))) {
       ++queued;
       return AMQP_STATUS_OK;
     }
+    ldout(cct, 1) << "AMQP publish: queue is full" << dendl;
     return RGW_AMQP_STATUS_QUEUE_FULL;
   }
   
     return RGW_AMQP_STATUS_QUEUE_FULL;
   }
   
@@ -902,15 +926,18 @@ public:
     const std::string& message,
     reply_callback_t cb) {
     if (stopped) {
     const std::string& message,
     reply_callback_t cb) {
     if (stopped) {
+      ldout(cct, 1) << "AMQP publish_with_confirm: manager is not running" << dendl;
       return RGW_AMQP_STATUS_MANAGER_STOPPED;
     }
     if (!conn || !conn->is_ok()) {
       return RGW_AMQP_STATUS_MANAGER_STOPPED;
     }
     if (!conn || !conn->is_ok()) {
+      ldout(cct, 1) << "AMQP publish_with_confirm: no connection" << dendl;
       return RGW_AMQP_STATUS_CONNECTION_CLOSED;
     }
     if (messages.push(new message_wrapper_t(conn, topic, message, cb))) {
       ++queued;
       return AMQP_STATUS_OK;
     }
       return RGW_AMQP_STATUS_CONNECTION_CLOSED;
     }
     if (messages.push(new message_wrapper_t(conn, topic, message, cb))) {
       ++queued;
       return AMQP_STATUS_OK;
     }
+    ldout(cct, 1) << "AMQP publish_with_confirm: queue is full" << dendl;
     return RGW_AMQP_STATUS_QUEUE_FULL;
   }
 
     return RGW_AMQP_STATUS_QUEUE_FULL;
   }
 
@@ -956,13 +983,17 @@ static Manager* s_manager = nullptr;
 static const size_t MAX_CONNECTIONS_DEFAULT = 256;
 static const size_t MAX_INFLIGHT_DEFAULT = 8192; 
 static const size_t MAX_QUEUE_DEFAULT = 8192;
 static const size_t MAX_CONNECTIONS_DEFAULT = 256;
 static const size_t MAX_INFLIGHT_DEFAULT = 8192; 
 static const size_t MAX_QUEUE_DEFAULT = 8192;
+static const long READ_TIMEOUT_USEC = 100;
+static const unsigned IDLE_TIME_MS = 100;
+static const unsigned RECONNECT_TIME_MS = 100;
 
 bool init(CephContext* cct) {
   if (s_manager) {
     return false;
   }
   // TODO: take conf from CephContext
 
 bool init(CephContext* cct) {
   if (s_manager) {
     return false;
   }
   // TODO: take conf from CephContext
-  s_manager = new Manager(MAX_CONNECTIONS_DEFAULT, MAX_INFLIGHT_DEFAULT, MAX_QUEUE_DEFAULT, 100, cct);
+  s_manager = new Manager(MAX_CONNECTIONS_DEFAULT, MAX_INFLIGHT_DEFAULT, MAX_QUEUE_DEFAULT, 
+      READ_TIMEOUT_USEC, IDLE_TIME_MS, RECONNECT_TIME_MS, cct);
   return true;
 }
 
   return true;
 }
 
@@ -971,9 +1002,9 @@ void shutdown() {
   s_manager = nullptr;
 }
 
   s_manager = nullptr;
 }
 
-connection_ptr_t connect(const std::string& url, const std::string& exchange) {
+connection_ptr_t connect(const std::string& url, const std::string& exchange, bool mandatory_delivery) {
   if (!s_manager) return nullptr;
   if (!s_manager) return nullptr;
-  return s_manager->connect(url, exchange);
+  return s_manager->connect(url, exchange, mandatory_delivery);
 }
 
 int publish(connection_ptr_t& conn, 
 }
 
 int publish(connection_ptr_t& conn, 
index bbfce2d5dcd66a293699233131ba7dd3e97fcf0b..eaf97ed9dc01acbeb64ebe2957b52d8008babed3 100644 (file)
@@ -30,7 +30,7 @@ bool init(CephContext* cct);
 void shutdown();
 
 // connect to an amqp endpoint
 void shutdown();
 
 // connect to an amqp endpoint
-connection_ptr_t connect(const std::string& url, const std::string& exchange);
+connection_ptr_t connect(const std::string& url, const std::string& exchange, bool mandatory_delivery);
 
 // publish a message over a connection that was already created
 int publish(connection_ptr_t& conn,
 
 // publish a message over a connection that was already created
 int publish(connection_ptr_t& conn,
index 38f51b790a8f88c0cb388732d86b4e4a4718704d..a08a7f3024e2a20f27e07b5e386646c956590c78 100644 (file)
@@ -491,6 +491,7 @@ public:
       is_admin(acct_privilege_t::IS_ADMIN_ACCT == level),
       acct_type(acct_type) {
     }
       is_admin(acct_privilege_t::IS_ADMIN_ACCT == level),
       acct_type(acct_type) {
     }
+    bool is_anon() const {return (acct_name.compare(RGW_USER_ANON_ID) == 0);}
   };
 
   using aclspec_t = rgw::auth::Identity::aclspec_t;
   };
 
   using aclspec_t = rgw::auth::Identity::aclspec_t;
index 2e1e8b39ac2adfb03f6205a9cbdf20eaf9fd79cc..c017418826e73ed357eff5247e44a7a01cfc0f54 100644 (file)
@@ -1655,6 +1655,7 @@ int RGWBucketAdminOp::info(rgw::sal::RGWRadosStore *store, RGWBucketAdminOpState
           formatter->dump_string("bucket", bucket_name);
       }
     }
           formatter->dump_string("bucket", bucket_name);
       }
     }
+    store->ctl()->meta.mgr->list_keys_complete(handle);
 
     formatter->close_section();
   }
 
     formatter->close_section();
   }
@@ -1811,6 +1812,11 @@ static int process_stale_instances(rgw::sal::RGWRadosStore *store, RGWBucketAdmi
   bool truncated;
 
   formatter->open_array_section("keys");
   bool truncated;
 
   formatter->open_array_section("keys");
+  auto g = make_scope_guard([&store, &handle, &formatter]() {
+                              store->ctl()->meta.mgr->list_keys_complete(handle);
+                              formatter->close_section(); // keys
+                              formatter->flush(cout);
+                            });
 
   do {
     list<std::string> keys;
 
   do {
     list<std::string> keys;
@@ -1836,8 +1842,6 @@ static int process_stale_instances(rgw::sal::RGWRadosStore *store, RGWBucketAdmi
     }
   } while (truncated);
 
     }
   } while (truncated);
 
-  formatter->close_section(); // keys
-  formatter->flush(cout);
   return 0;
 }
 
   return 0;
 }
 
index 422767f34eb22101a512b041aa83471016581212..94d08f7ae3b9c4d0c76dec39a25ab7256ed096f7 100644 (file)
@@ -144,11 +144,12 @@ bool RGWCORSRule::is_header_allowed(const char *h, size_t len) {
 
 void RGWCORSRule::format_exp_headers(string& s) {
   s = "";
 
 void RGWCORSRule::format_exp_headers(string& s) {
   s = "";
-  for(list<string>::iterator it = exposable_hdrs.begin();
-      it != exposable_hdrs.end(); ++it) {
-      if (s.length() > 0)
-        s.append(",");
-      s.append((*it));
+  for (const auto& header : exposable_hdrs) {
+    if (s.length() > 0)
+      s.append(",");
+    // these values are sent to clients in a 'Access-Control-Expose-Headers'
+    // response header, so we escape '\n' to avoid header injection
+    boost::replace_all_copy(std::back_inserter(s), header, "\n", "\\n");
   }
 }
 
   }
 }
 
index a38169655a433b21dfdaf63e49ed81edc9e1bc40..9a3def0a10822db2f13f44cf231b524dd4aba9cb 100644 (file)
@@ -4,16 +4,22 @@
 #include <string.h>
 #include <iostream>
 #include <map>
 #include <string.h>
 #include <iostream>
 #include <map>
+#include <algorithm>
+#include <tuple>
+#include <functional>
 
 #include <boost/algorithm/string/split.hpp>
 #include <boost/algorithm/string.hpp>
 #include <boost/algorithm/string/predicate.hpp>
 
 #include <boost/algorithm/string/split.hpp>
 #include <boost/algorithm/string.hpp>
 #include <boost/algorithm/string/predicate.hpp>
+#include <boost/variant.hpp>
 
 #include "common/Formatter.h"
 
 #include "common/Formatter.h"
+#include "common/containers.h"
 #include <common/errno.h>
 #include "include/random.h"
 #include "cls/rgw/cls_rgw_client.h"
 #include "cls/lock/cls_lock_client.h"
 #include <common/errno.h>
 #include "include/random.h"
 #include "cls/rgw/cls_rgw_client.h"
 #include "cls/lock/cls_lock_client.h"
+#include "rgw_perf_counters.h"
 #include "rgw_common.h"
 #include "rgw_bucket.h"
 #include "rgw_lc.h"
 #include "rgw_common.h"
 #include "rgw_bucket.h"
 #include "rgw_lc.h"
@@ -48,11 +54,13 @@ bool LCRule::valid() const
   if (id.length() > MAX_ID_LEN) {
     return false;
   }
   if (id.length() > MAX_ID_LEN) {
     return false;
   }
-  else if(expiration.empty() && noncur_expiration.empty() && mp_expiration.empty() && !dm_expiration &&
+  else if(expiration.empty() && noncur_expiration.empty() &&
+         mp_expiration.empty() && !dm_expiration &&
           transitions.empty() && noncur_transitions.empty()) {
     return false;
   }
           transitions.empty() && noncur_transitions.empty()) {
     return false;
   }
-  else if (!expiration.valid() || !noncur_expiration.valid() || !mp_expiration.valid()) {
+  else if (!expiration.valid() || !noncur_expiration.valid() ||
+          !mp_expiration.valid()) {
     return false;
   }
   if (!transitions.empty()) {
     return false;
   }
   if (!transitions.empty()) {
@@ -78,7 +86,8 @@ bool LCRule::valid() const
   return true;
 }
 
   return true;
 }
 
-void LCRule::init_simple_days_rule(std::string_view _id, std::string_view _prefix, int num_days)
+void LCRule::init_simple_days_rule(std::string_view _id,
+                                  std::string_view _prefix, int num_days)
 {
   id = _id;
   prefix = _prefix;
 {
   id = _id;
   prefix = _prefix;
@@ -118,7 +127,8 @@ bool RGWLifecycleConfiguration::_add_rule(const LCRule& rule)
     } else {
       action.date = ceph::from_iso_8601(elem.second.get_date());
     }
     } else {
       action.date = ceph::from_iso_8601(elem.second.get_date());
     }
-    action.storage_class = rgw_placement_rule::get_canonical_storage_class(elem.first);
+    action.storage_class
+      = rgw_placement_rule::get_canonical_storage_class(elem.first);
     op.transitions.emplace(elem.first, std::move(action));
   }
   for (const auto &elem : rule.get_noncur_transitions()) {
     op.transitions.emplace(elem.first, std::move(action));
   }
   for (const auto &elem : rule.get_noncur_transitions()) {
@@ -151,7 +161,8 @@ int RGWLifecycleConfiguration::check_and_add_rule(const LCRule& rule)
   if (rule_map.find(id) != rule_map.end()) {  //id shouldn't be the same 
     return -EINVAL;
   }
   if (rule_map.find(id) != rule_map.end()) {  //id shouldn't be the same 
     return -EINVAL;
   }
-  if (rule.get_filter().has_tags() && (rule.get_dm_expiration() || !rule.get_mp_expiration().empty())) {
+  if (rule.get_filter().has_tags() && (rule.get_dm_expiration() ||
+                                      !rule.get_mp_expiration().empty())) {
     return -ERR_INVALID_REQUEST;
   }
   rule_map.insert(pair<string, LCRule>(id, rule));
     return -ERR_INVALID_REQUEST;
   }
   rule_map.insert(pair<string, LCRule>(id, rule));
@@ -162,7 +173,8 @@ int RGWLifecycleConfiguration::check_and_add_rule(const LCRule& rule)
   return 0;
 }
 
   return 0;
 }
 
-bool RGWLifecycleConfiguration::has_same_action(const lc_op& first, const lc_op& second) {
+bool RGWLifecycleConfiguration::has_same_action(const lc_op& first,
+                                               const lc_op& second) {
   if ((first.expiration > 0 || first.expiration_date != boost::none) && 
     (second.expiration > 0 || second.expiration_date != boost::none)) {
     return true;
   if ((first.expiration > 0 || first.expiration_date != boost::none) && 
     (second.expiration > 0 || second.expiration_date != boost::none)) {
     return true;
@@ -176,9 +188,11 @@ bool RGWLifecycleConfiguration::has_same_action(const lc_op& first, const lc_op&
         return true;
       }
     }
         return true;
       }
     }
-  } else if (!first.noncur_transitions.empty() && !second.noncur_transitions.empty()) {
+  } else if (!first.noncur_transitions.empty() &&
+            !second.noncur_transitions.empty()) {
     for (auto &elem : first.noncur_transitions) {
     for (auto &elem : first.noncur_transitions) {
-      if (second.noncur_transitions.find(elem.first) != second.noncur_transitions.end()) {
+      if (second.noncur_transitions.find(elem.first) !=
+         second.noncur_transitions.end()) {
         return true;
       }
     }
         return true;
       }
     }
@@ -198,7 +212,7 @@ void *RGWLC::LCWorker::entry() {
     utime_t start = ceph_clock_now();
     if (should_work(start)) {
       ldpp_dout(dpp, 2) << "life cycle: start" << dendl;
     utime_t start = ceph_clock_now();
     if (should_work(start)) {
       ldpp_dout(dpp, 2) << "life cycle: start" << dendl;
-      int r = lc->process();
+      int r = lc->process(this);
       if (r < 0) {
         ldpp_dout(dpp, 0) << "ERROR: do life cycle process() returned error r=" << r << dendl;
       }
       if (r < 0) {
         ldpp_dout(dpp, 0) << "ERROR: do life cycle process() returned error r=" << r << dendl;
       }
@@ -272,7 +286,7 @@ bool RGWLC::if_already_run_today(time_t& start_date)
     return false;
 }
 
     return false;
 }
 
-int RGWLC::bucket_lc_prepare(int index)
+int RGWLC::bucket_lc_prepare(int index, LCWorker* worker)
 {
   map<string, int > entries;
 
 {
   map<string, int > entries;
 
@@ -280,13 +294,15 @@ int RGWLC::bucket_lc_prepare(int index)
 
 #define MAX_LC_LIST_ENTRIES 100
   do {
 
 #define MAX_LC_LIST_ENTRIES 100
   do {
-    int ret = cls_rgw_lc_list(store->getRados()->lc_pool_ctx, obj_names[index], marker, MAX_LC_LIST_ENTRIES, entries);
+    int ret = cls_rgw_lc_list(store->getRados()->lc_pool_ctx, obj_names[index],
+                             marker, MAX_LC_LIST_ENTRIES, entries);
     if (ret < 0)
       return ret;
     map<string, int>::iterator iter;
     for (iter = entries.begin(); iter != entries.end(); ++iter) {
       pair<string, int > entry(iter->first, lc_uninitial);
     if (ret < 0)
       return ret;
     map<string, int>::iterator iter;
     for (iter = entries.begin(); iter != entries.end(); ++iter) {
       pair<string, int > entry(iter->first, lc_uninitial);
-      ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx, obj_names[index],  entry);
+      ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx,
+                                obj_names[index],  entry);
       if (ret < 0) {
         ldpp_dout(this, 0) << "RGWLC::bucket_lc_prepare() failed to set entry on "
             << obj_names[index] << dendl;
       if (ret < 0) {
         ldpp_dout(this, 0) << "RGWLC::bucket_lc_prepare() failed to set entry on "
             << obj_names[index] << dendl;
@@ -302,7 +318,8 @@ int RGWLC::bucket_lc_prepare(int index)
   return 0;
 }
 
   return 0;
 }
 
-static bool obj_has_expired(CephContext *cct, ceph::real_time mtime, int days, ceph::real_time *expire_time = nullptr)
+static bool obj_has_expired(CephContext *cct, ceph::real_time mtime, int days,
+                           ceph::real_time *expire_time = nullptr)
 {
   double timediff, cmp;
   utime_t base_time;
 {
   double timediff, cmp;
   utime_t base_time;
@@ -325,7 +342,8 @@ static bool obj_has_expired(CephContext *cct, ceph::real_time mtime, int days, c
   return (timediff >= cmp);
 }
 
   return (timediff >= cmp);
 }
 
-static bool pass_object_lock_check(RGWRados *store, RGWBucketInfo& bucket_info, rgw_obj& obj, RGWObjectCtx& ctx)
+static bool pass_object_lock_check(RGWRados *store, RGWBucketInfo& bucket_info,
+                                  rgw_obj& obj, RGWObjectCtx& ctx)
 {
   if (!bucket_info.obj_lock_enabled()) {
     return true;
 {
   if (!bucket_info.obj_lock_enabled()) {
     return true;
@@ -351,7 +369,8 @@ static bool pass_object_lock_check(RGWRados *store, RGWBucketInfo& bucket_info,
         ldout(store->ctx(), 0) << "ERROR: failed to decode RGWObjectRetention" << dendl;
         return false;
       }
         ldout(store->ctx(), 0) << "ERROR: failed to decode RGWObjectRetention" << dendl;
         return false;
       }
-      if (ceph::real_clock::to_time_t(retention.get_retain_until_date()) > ceph_clock_now()) {
+      if (ceph::real_clock::to_time_t(retention.get_retain_until_date()) >
+         ceph_clock_now()) {
         return false;
       }
     }
         return false;
       }
     }
@@ -372,102 +391,6 @@ static bool pass_object_lock_check(RGWRados *store, RGWBucketInfo& bucket_info,
   }
 }
 
   }
 }
 
-int RGWLC::handle_multipart_expiration(
-  RGWRados::Bucket *target, const multimap<string, lc_op>& prefix_map)
-{
-  MultipartMetaFilter mp_filter;
-  vector<rgw_bucket_dir_entry> objs;
-  RGWMPObj mp_obj;
-  bool is_truncated;
-  int ret;
-  RGWBucketInfo& bucket_info = target->get_bucket_info();
-  RGWRados::Bucket::List list_op(target);
-  auto delay_ms = cct->_conf.get_val<int64_t>("rgw_lc_thread_delay");
-  list_op.params.list_versions = false;
-  /* lifecycle processing does not depend on total order, so can
-   * take advantage of unorderd listing optimizations--such as
-   * operating on one shard at a time */
-  list_op.params.allow_unordered = true;
-  list_op.params.ns = RGW_OBJ_NS_MULTIPART;
-  list_op.params.filter = &mp_filter;
-  for (auto prefix_iter = prefix_map.begin(); prefix_iter != prefix_map.end(); ++prefix_iter) {
-    if (!prefix_iter->second.status || prefix_iter->second.mp_expiration <= 0) {
-      continue;
-    }
-    list_op.params.prefix = prefix_iter->first;
-    do {
-      objs.clear();
-      list_op.params.marker = list_op.get_next_marker();
-      ret = list_op.list_objects(1000, &objs, NULL, &is_truncated, null_yield);
-      if (ret < 0) {
-          if (ret == (-ENOENT))
-            return 0;
-          ldpp_dout(this, 0) << "ERROR: store->list_objects():" <<dendl;
-          return ret;
-      }
-
-      for (auto obj_iter = objs.begin(); obj_iter != objs.end(); ++obj_iter) {
-        if (obj_has_expired(cct, obj_iter->meta.mtime, prefix_iter->second.mp_expiration)) {
-          rgw_obj_key key(obj_iter->key);
-          if (!mp_obj.from_meta(key.name)) {
-            continue;
-          }
-          RGWObjectCtx rctx(store);
-          ret = abort_multipart_upload(store, cct, &rctx, bucket_info, mp_obj);
-          if (ret < 0 && ret != -ERR_NO_SUCH_UPLOAD) {
-            ldpp_dout(this, 0) << "ERROR: abort_multipart_upload failed, ret=" << ret << ", meta:" << obj_iter->key << dendl;
-          } else if (ret == -ERR_NO_SUCH_UPLOAD) {
-            ldpp_dout(this, 5) << "ERROR: abort_multipart_upload failed, ret=" << ret << ", meta:" << obj_iter->key << dendl;
-          }
-          if (going_down())
-            return 0;
-        }
-      } /* for objs */
-      std::this_thread::sleep_for(std::chrono::milliseconds(delay_ms));
-    } while(is_truncated);
-  }
-  return 0;
-}
-
-static int read_obj_tags(RGWRados *store, RGWBucketInfo& bucket_info, rgw_obj& obj, RGWObjectCtx& ctx, bufferlist& tags_bl)
-{
-  RGWRados::Object op_target(store, bucket_info, ctx, obj);
-  RGWRados::Object::Read read_op(&op_target);
-
-  return read_op.get_attr(RGW_ATTR_TAGS, tags_bl, null_yield);
-}
-
-static bool is_valid_op(const lc_op& op)
-{
-      return (op.status &&
-              (op.expiration > 0 
-               || op.expiration_date != boost::none
-               || op.noncur_expiration > 0
-               || op.dm_expiration
-               || !op.transitions.empty()
-               || !op.noncur_transitions.empty()));
-}
-
-static inline bool has_all_tags(const lc_op& rule_action,
-                               const RGWObjTags& object_tags)
-{
-  if(! rule_action.obj_tags)
-    return false;
-  if(object_tags.count() < rule_action.obj_tags->count())
-    return false;
-  size_t tag_count = 0;
-  for (const auto& tag : object_tags.get_tags()) {
-    const auto& rule_tags = rule_action.obj_tags->get_tags();
-    const auto& iter = rule_tags.find(tag.first);
-    if(iter->second == tag.second)
-    {
-      tag_count++;
-    }
-  /* all tags in the rule appear in obj tags */
-  }
-  return tag_count == rule_action.obj_tags->count();
-}
-
 class LCObjsLister {
   rgw::sal::RGWRadosStore *store;
   RGWBucketInfo& bucket_info;
 class LCObjsLister {
   rgw::sal::RGWRadosStore *store;
   RGWBucketInfo& bucket_info;
@@ -500,7 +423,8 @@ public:
   }
 
   int fetch() {
   }
 
   int fetch() {
-    int ret = list_op.list_objects(1000, &objs, NULL, &is_truncated, null_yield);
+    int ret = list_op.list_objects(
+      1000, &objs, NULL, &is_truncated, null_yield);
     if (ret < 0) {
       return ret;
     }
     if (ret < 0) {
       return ret;
     }
@@ -514,23 +438,27 @@ public:
     std::this_thread::sleep_for(std::chrono::milliseconds(delay_ms));
   }
 
     std::this_thread::sleep_for(std::chrono::milliseconds(delay_ms));
   }
 
-  bool get_obj(rgw_bucket_dir_entry *obj) {
+  bool get_obj(rgw_bucket_dir_entry **obj,
+              std::function<void(void)> fetch_barrier
+              = []() { /* nada */}) {
     if (obj_iter == objs.end()) {
       if (!is_truncated) {
         delay();
         return false;
       } else {
     if (obj_iter == objs.end()) {
       if (!is_truncated) {
         delay();
         return false;
       } else {
+       fetch_barrier();
         list_op.params.marker = pre_obj.key;
         list_op.params.marker = pre_obj.key;
-
         int ret = fetch();
         if (ret < 0) {
         int ret = fetch();
         if (ret < 0) {
-          ldout(store->ctx(), 0) << "ERROR: list_op returned ret=" << ret << dendl;
+          ldout(store->ctx(), 0) << "ERROR: list_op returned ret=" << ret
+                                << dendl;
           return ret;
         }
       }
       delay();
     }
           return ret;
         }
       }
       delay();
     }
-    *obj = *obj_iter;
+    /* returning address of entry in objs */
+    *obj = &(*obj_iter);
     return obj_iter != objs.end();
   }
 
     return obj_iter != objs.end();
   }
 
@@ -552,19 +480,23 @@ public:
     }
     return (obj_iter->key.name.compare((obj_iter + 1)->key.name) == 0);
   }
     }
     return (obj_iter->key.name.compare((obj_iter + 1)->key.name) == 0);
   }
-};
-
+}; /* LCObjsLister */
 
 struct op_env {
 
 struct op_env {
+
+  using LCWorker = RGWLC::LCWorker;
+
   lc_op& op;
   rgw::sal::RGWRadosStore *store;
   lc_op& op;
   rgw::sal::RGWRadosStore *store;
-  RGWLC *lc;
+  LCWorker* worker;
   RGWBucketInfo& bucket_info;
   LCObjsLister& ol;
 
   RGWBucketInfo& bucket_info;
   LCObjsLister& ol;
 
-  op_env(lc_op& _op, rgw::sal::RGWRadosStore *_store, RGWLC *_lc, RGWBucketInfo& _bucket_info,
-         LCObjsLister& _ol) : op(_op), store(_store), lc(_lc), bucket_info(_bucket_info), ol(_ol) {}
-};
+  op_env(lc_op& _op, rgw::sal::RGWRadosStore *_store, LCWorker* _worker,
+        RGWBucketInfo& _bucket_info, LCObjsLister& _ol)
+    : op(_op), store(_store), worker(_worker), bucket_info(_bucket_info),
+      ol(_ol) {}
+}; /* op_env */
 
 class LCRuleOp;
 
 
 class LCRuleOp;
 
@@ -582,10 +514,12 @@ struct lc_op_ctx {
   RGWObjectCtx rctx;
   const DoutPrefixProvider *dpp;
 
   RGWObjectCtx rctx;
   const DoutPrefixProvider *dpp;
 
-  lc_op_ctx(op_env& _env, rgw_bucket_dir_entry& _o, const DoutPrefixProvider *_dpp) : cct(_env.store->ctx()), env(_env), o(_o),
-                 store(env.store), bucket_info(env.bucket_info), op(env.op), ol(env.ol),
-                 obj(env.bucket_info.bucket, o.key), rctx(env.store), dpp(_dpp) {}
-};
+  lc_op_ctx(op_env& _env, rgw_bucket_dir_entry& _o,
+           const DoutPrefixProvider *_dpp)
+    : cct(_env.store->ctx()), env(_env), o(_o),
+      store(env.store), bucket_info(env.bucket_info), op(env.op), ol(env.ol),
+      obj(env.bucket_info.bucket, o.key), rctx(env.store), dpp(_dpp) {}
+}; /* lc_op_ctx */
 
 static int remove_expired_obj(lc_op_ctx& oc, bool remove_indeed)
 {
 
 static int remove_expired_obj(lc_op_ctx& oc, bool remove_indeed)
 {
@@ -614,8 +548,12 @@ static int remove_expired_obj(lc_op_ctx& oc, bool remove_indeed)
   del_op.params.obj_owner = obj_owner;
   del_op.params.unmod_since = meta.mtime;
 
   del_op.params.obj_owner = obj_owner;
   del_op.params.unmod_since = meta.mtime;
 
+  if (perfcounter) {
+    perfcounter->inc(l_rgw_lc_remove_expired, 1);
+  }
+
   return del_op.delete_obj(null_yield);
   return del_op.delete_obj(null_yield);
-}
+} /* remove_expired_obj */
 
 class LCOpAction {
 public:
 
 class LCOpAction {
 public:
@@ -643,7 +581,7 @@ public:
   virtual int process(lc_op_ctx& oc) {
     return 0;
   }
   virtual int process(lc_op_ctx& oc) {
     return 0;
   }
-};
+}; /* LCOpAction */
 
 class LCOpFilter {
 public:
 
 class LCOpFilter {
 public:
@@ -651,7 +589,7 @@ virtual ~LCOpFilter() {}
   virtual bool check(lc_op_ctx& oc) {
     return false;
   }
   virtual bool check(lc_op_ctx& oc) {
     return false;
   }
-};
+}; /* LCOpFilter */
 
 class LCOpRule {
   friend class LCOpAction;
 
 class LCOpRule {
   friend class LCOpAction;
@@ -666,7 +604,251 @@ public:
 
   void build();
   int process(rgw_bucket_dir_entry& o, const DoutPrefixProvider *dpp);
 
   void build();
   int process(rgw_bucket_dir_entry& o, const DoutPrefixProvider *dpp);
-};
+}; /* LCOpRule */
+
+using WorkItem =
+  boost::variant<void*,
+                /* out-of-line delete */
+                std::tuple<LCOpRule&, rgw_bucket_dir_entry>,
+                /* uncompleted MPU expiration */
+                std::tuple<const lc_op&, rgw_bucket_dir_entry>,
+                rgw_bucket_dir_entry>;
+
+class WorkQ : public Thread
+{
+public:
+  using unique_lock = std::unique_lock<std::mutex>;
+  using work_f = std::function<void(RGWLC::LCWorker*, WorkItem&)>;
+  using dequeue_result = boost::variant<void*, WorkItem>;
+
+private:
+  const work_f bsf = [](RGWLC::LCWorker* wk, WorkItem& wi) {};
+  RGWLC::LCWorker* wk;
+  uint32_t qmax;
+  std::mutex mtx;
+  std::condition_variable cv;
+  vector<WorkItem> items;
+  work_f f;
+
+public:
+  WorkQ(RGWLC::LCWorker* wk, uint32_t ix, uint32_t qmax)
+    : wk(wk), qmax(qmax), f(bsf)
+    {
+      create((string{"workpool_thr_"} + to_string(ix)).c_str());
+    }
+
+  void setf(work_f _f) {
+    f = _f;
+  }
+
+  void enqueue(WorkItem&& item) {
+    unique_lock uniq(mtx);
+    while ((!wk->get_lc()->going_down()) &&
+          (items.size() > qmax)) {
+      cv.wait_for(uniq, 200ms);
+    }
+    items.push_back(item);
+  }
+
+  void drain() {
+    unique_lock uniq(mtx);
+    while ((!wk->get_lc()->going_down()) &&
+          (items.size() > 0)) {
+      cv.wait_for(uniq, 200ms);
+    }
+  }
+
+private:
+  dequeue_result dequeue() {
+    unique_lock uniq(mtx);
+    while ((!wk->get_lc()->going_down()) &&
+          (items.size() == 0)) {
+      cv.wait_for(uniq, 200ms);
+    }
+    if (items.size() > 0) {
+      auto item = items.back();
+      items.pop_back();
+      return {item};
+    }
+    return nullptr;
+  }
+
+  void* entry() override {
+    while (!wk->get_lc()->going_down()) {
+      auto item = dequeue();
+      if (item.which() == 0) {
+       /* going down */
+       break;
+      }
+      f(wk, boost::get<WorkItem>(item));
+    }
+    return nullptr;
+  }
+}; /* WorkQ */
+
+class RGWLC::WorkPool
+{
+  using TVector = ceph::containers::tiny_vector<WorkQ, 3>;
+  TVector wqs;
+  uint64_t ix;
+
+public:
+  WorkPool(RGWLC::LCWorker* wk, uint16_t n_threads, uint32_t qmax)
+    : wqs(TVector{
+       n_threads,
+       [&](const size_t ix, auto emplacer) {
+         emplacer.emplace(wk, ix, qmax);
+       }}),
+      ix(0)
+    {}
+
+  void setf(WorkQ::work_f _f) {
+    for (auto& wq : wqs) {
+      wq.setf(_f);
+    }
+  }
+
+  void enqueue(WorkItem item) {
+    const auto tix = ix;
+    ix = (ix+1) % wqs.size();
+    (wqs[tix]).enqueue(std::move(item));
+  }
+
+  void drain() {
+    for (auto& wq : wqs) {
+      wq.drain();
+    }
+  }
+}; /* WorkPool */
+
+RGWLC::LCWorker::LCWorker(const DoutPrefixProvider* _dpp, CephContext *_cct,
+                         RGWLC *_lc)
+  : dpp(_dpp), cct(_cct), lc(_lc)
+{
+  auto wpw = cct->_conf.get_val<int64_t>("rgw_lc_max_wp_worker");
+  workpool = new WorkPool(this, wpw, 512);
+}
+
+int RGWLC::handle_multipart_expiration(
+  RGWRados::Bucket *target, const multimap<string, lc_op>& prefix_map,
+  LCWorker* worker)
+{
+  MultipartMetaFilter mp_filter;
+  vector<rgw_bucket_dir_entry> objs;
+  bool is_truncated;
+  int ret;
+  RGWBucketInfo& bucket_info = target->get_bucket_info();
+  RGWRados::Bucket::List list_op(target);
+  auto delay_ms = cct->_conf.get_val<int64_t>("rgw_lc_thread_delay");
+  list_op.params.list_versions = false;
+  /* lifecycle processing does not depend on total order, so can
+   * take advantage of unordered listing optimizations--such as
+   * operating on one shard at a time */
+  list_op.params.allow_unordered = true;
+  list_op.params.ns = RGW_OBJ_NS_MULTIPART;
+  list_op.params.filter = &mp_filter;
+
+  auto pf = [&](RGWLC::LCWorker* wk, WorkItem& wi) {
+    auto wt = boost::get<std::tuple<const lc_op&, rgw_bucket_dir_entry>>(wi);
+    auto& [rule, obj] = wt;
+    RGWMPObj mp_obj;
+    if (obj_has_expired(cct, obj.meta.mtime, rule.mp_expiration)) {
+      rgw_obj_key key(obj.key);
+      if (!mp_obj.from_meta(key.name)) {
+       return;
+      }
+      RGWObjectCtx rctx(store);
+      ret = abort_multipart_upload(store, cct, &rctx, bucket_info, mp_obj);
+      if (ret < 0 && ret != -ERR_NO_SUCH_UPLOAD) {
+       ldpp_dout(wk->get_lc(), 0)
+         << "ERROR: abort_multipart_upload failed, ret=" << ret
+         << ", meta:" << obj.key
+         << dendl;
+      } else if (ret == -ERR_NO_SUCH_UPLOAD) {
+       ldpp_dout(wk->get_lc(), 5)
+         << "ERROR: abort_multipart_upload failed, ret=" << ret
+         << ", meta:" << obj.key
+         << dendl;
+      }
+    } /* expired */
+  };
+
+  worker->workpool->setf(pf);
+
+  for (auto prefix_iter = prefix_map.begin(); prefix_iter != prefix_map.end();
+       ++prefix_iter) {
+    if (!prefix_iter->second.status || prefix_iter->second.mp_expiration <= 0) {
+      continue;
+    }
+    list_op.params.prefix = prefix_iter->first;
+    do {
+      objs.clear();
+      list_op.params.marker = list_op.get_next_marker();
+      ret = list_op.list_objects(1000, &objs, NULL, &is_truncated, null_yield);
+      if (ret < 0) {
+          if (ret == (-ENOENT))
+            return 0;
+          ldpp_dout(this, 0) << "ERROR: store->list_objects():" <<dendl;
+          return ret;
+      }
+
+      for (auto obj_iter = objs.begin(); obj_iter != objs.end(); ++obj_iter) {
+       std::tuple<const lc_op&, rgw_bucket_dir_entry> t1 =
+         {prefix_iter->second, *obj_iter};
+       worker->workpool->enqueue(WorkItem{t1});
+       if (going_down()) {
+         worker->workpool->drain();
+         return 0;
+       }
+      } /* for objs */
+
+      std::this_thread::sleep_for(std::chrono::milliseconds(delay_ms));
+    } while(is_truncated);
+  } /* for prefix_map */
+
+  worker->workpool->drain();
+  return 0;
+}
+
+static int read_obj_tags(RGWRados *store, RGWBucketInfo& bucket_info,
+                        rgw_obj& obj, RGWObjectCtx& ctx, bufferlist& tags_bl)
+{
+  RGWRados::Object op_target(store, bucket_info, ctx, obj);
+  RGWRados::Object::Read read_op(&op_target);
+
+  return read_op.get_attr(RGW_ATTR_TAGS, tags_bl, null_yield);
+}
+
+static bool is_valid_op(const lc_op& op)
+{
+      return (op.status &&
+              (op.expiration > 0
+               || op.expiration_date != boost::none
+               || op.noncur_expiration > 0
+               || op.dm_expiration
+               || !op.transitions.empty()
+               || !op.noncur_transitions.empty()));
+}
+
+static inline bool has_all_tags(const lc_op& rule_action,
+                               const RGWObjTags& object_tags)
+{
+  if(! rule_action.obj_tags)
+    return false;
+  if(object_tags.count() < rule_action.obj_tags->count())
+    return false;
+  size_t tag_count = 0;
+  for (const auto& tag : object_tags.get_tags()) {
+    const auto& rule_tags = rule_action.obj_tags->get_tags();
+    const auto& iter = rule_tags.find(tag.first);
+    if(iter->second == tag.second)
+    {
+      tag_count++;
+    }
+  /* all tags in the rule appear in obj tags */
+  }
+  return tag_count == rule_action.obj_tags->count();
+}
 
 static int check_tags(lc_op_ctx& oc, bool *skip)
 {
 
 static int check_tags(lc_op_ctx& oc, bool *skip)
 {
@@ -676,7 +858,8 @@ static int check_tags(lc_op_ctx& oc, bool *skip)
     *skip = true;
 
     bufferlist tags_bl;
     *skip = true;
 
     bufferlist tags_bl;
-    int ret = read_obj_tags(oc.store->getRados(), oc.bucket_info, oc.obj, oc.rctx, tags_bl);
+    int ret = read_obj_tags(oc.store->getRados(), oc.bucket_info, oc.obj,
+                           oc.rctx, tags_bl);
     if (ret < 0) {
       if (ret != -ENODATA) {
         ldout(oc.cct, 5) << "ERROR: read_obj_tags returned r=" << ret << dendl;
     if (ret < 0) {
       if (ret != -ENODATA) {
         ldout(oc.cct, 5) << "ERROR: read_obj_tags returned r=" << ret << dendl;
@@ -750,7 +933,8 @@ public:
         ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": no expiration set in rule, skipping" << dendl;
         return false;
       }
         ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": no expiration set in rule, skipping" << dendl;
         return false;
       }
-      is_expired = ceph_clock_now() >= ceph::real_clock::to_time_t(*op.expiration_date);
+      is_expired = ceph_clock_now() >=
+       ceph::real_clock::to_time_t(*op.expiration_date);
       *exp_time = *op.expiration_date;
     } else {
       is_expired = obj_has_expired(oc.cct, mtime, op.expiration, exp_time);
       *exp_time = *op.expiration_date;
     } else {
       is_expired = obj_has_expired(oc.cct, mtime, op.expiration, exp_time);
@@ -793,7 +977,9 @@ public:
     bool is_expired = obj_has_expired(oc.cct, mtime, expiration, exp_time);
 
     ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired=" << is_expired << dendl;
     bool is_expired = obj_has_expired(oc.cct, mtime, expiration, exp_time);
 
     ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired=" << is_expired << dendl;
-    return is_expired && pass_object_lock_check(oc.store->getRados(), oc.bucket_info, oc.obj, oc.rctx);
+    return is_expired &&
+      pass_object_lock_check(oc.store->getRados(),
+                            oc.bucket_info, oc.obj, oc.rctx);
   }
 
   int process(lc_op_ctx& oc) {
   }
 
   int process(lc_op_ctx& oc) {
@@ -851,7 +1037,8 @@ protected:
   virtual bool check_current_state(bool is_current) = 0;
   virtual ceph::real_time get_effective_mtime(lc_op_ctx& oc) = 0;
 public:
   virtual bool check_current_state(bool is_current) = 0;
   virtual ceph::real_time get_effective_mtime(lc_op_ctx& oc) = 0;
 public:
-  LCOpAction_Transition(const transition_action& _transition) : transition(_transition) {}
+  LCOpAction_Transition(const transition_action& _transition)
+    : transition(_transition) {}
 
   bool check(lc_op_ctx& oc, ceph::real_time *exp_time) override {
     auto& o = oc.o;
 
   bool check(lc_op_ctx& oc, ceph::real_time *exp_time) override {
     auto& o = oc.o;
@@ -871,7 +1058,8 @@ public:
         ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": no transition day/date set in rule, skipping" << dendl;
         return false;
       }
         ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": no transition day/date set in rule, skipping" << dendl;
         return false;
       }
-      is_expired = ceph_clock_now() >= ceph::real_clock::to_time_t(*transition.date);
+      is_expired = ceph_clock_now() >=
+       ceph::real_clock::to_time_t(*transition.date);
       *exp_time = *transition.date;
     } else {
       is_expired = obj_has_expired(oc.cct, mtime, transition.days, exp_time);
       *exp_time = *transition.date;
     } else {
       is_expired = obj_has_expired(oc.cct, mtime, transition.days, exp_time);
@@ -879,7 +1067,9 @@ public:
 
     ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired=" << is_expired << dendl;
 
 
     ldout(oc.cct, 20) << __func__ << "(): key=" << o.key << ": is_expired=" << is_expired << dendl;
 
-    need_to_process = (rgw_placement_rule::get_canonical_storage_class(o.meta.storage_class) != transition.storage_class);
+    need_to_process =
+      (rgw_placement_rule::get_canonical_storage_class(o.meta.storage_class) !=
+       transition.storage_class);
 
     return is_expired;
   }
 
     return is_expired;
   }
@@ -895,15 +1085,17 @@ public:
     target_placement.inherit_from(oc.bucket_info.placement_rule);
     target_placement.storage_class = transition.storage_class;
 
     target_placement.inherit_from(oc.bucket_info.placement_rule);
     target_placement.storage_class = transition.storage_class;
 
-    if (!oc.store->svc()->zone->get_zone_params().valid_placement(target_placement)) {
+    if (!oc.store->svc()->zone->get_zone_params().
+       valid_placement(target_placement)) {
       ldpp_dout(oc.dpp, 0) << "ERROR: non existent dest placement: " << target_placement
                            << " bucket="<< oc.bucket_info.bucket
                            << " rule_id=" << oc.op.id << dendl;
       return -EINVAL;
     }
 
       ldpp_dout(oc.dpp, 0) << "ERROR: non existent dest placement: " << target_placement
                            << " bucket="<< oc.bucket_info.bucket
                            << " rule_id=" << oc.op.id << dendl;
       return -EINVAL;
     }
 
-    int r = oc.store->getRados()->transition_obj(oc.rctx, oc.bucket_info, oc.obj,
-                                     target_placement, o.meta.mtime, o.versioned_epoch, oc.dpp, null_yield);
+    int r = oc.store->getRados()->transition_obj(
+      oc.rctx, oc.bucket_info, oc.obj, target_placement, o.meta.mtime,
+      o.versioned_epoch, oc.dpp, null_yield);
     if (r < 0) {
       ldpp_dout(oc.dpp, 0) << "ERROR: failed to transition obj " 
       << oc.bucket_info.bucket << ":" << o.key 
     if (r < 0) {
       ldpp_dout(oc.dpp, 0) << "ERROR: failed to transition obj " 
       << oc.bucket_info.bucket << ":" << o.key 
@@ -926,7 +1118,8 @@ protected:
     return oc.o.meta.mtime;
   }
 public:
     return oc.o.meta.mtime;
   }
 public:
-  LCOpAction_CurrentTransition(const transition_action& _transition) : LCOpAction_Transition(_transition) {}
+  LCOpAction_CurrentTransition(const transition_action& _transition)
+    : LCOpAction_Transition(_transition) {}
 };
 
 class LCOpAction_NonCurrentTransition : public LCOpAction_Transition {
 };
 
 class LCOpAction_NonCurrentTransition : public LCOpAction_Transition {
@@ -939,7 +1132,8 @@ protected:
     return oc.ol.get_prev_obj().meta.mtime;
   }
 public:
     return oc.ol.get_prev_obj().meta.mtime;
   }
 public:
-  LCOpAction_NonCurrentTransition(const transition_action& _transition) : LCOpAction_Transition(_transition) {}
+  LCOpAction_NonCurrentTransition(const transition_action& _transition)
+    : LCOpAction_Transition(_transition) {}
 };
 
 void LCOpRule::build()
 };
 
 void LCOpRule::build()
@@ -1027,7 +1221,7 @@ int LCOpRule::process(rgw_bucket_dir_entry& o, const DoutPrefixProvider *dpp)
 
 }
 
 
 }
 
-int RGWLC::bucket_lc_process(string& shard_id)
+int RGWLC::bucket_lc_process(string& shard_id, LCWorker* worker)
 {
   RGWLifecycleConfiguration  config(cct);
   RGWBucketInfo bucket_info;
 {
   RGWLifecycleConfiguration  config(cct);
   RGWBucketInfo bucket_info;
@@ -1039,7 +1233,9 @@ int RGWLC::bucket_lc_process(string& shard_id)
   string bucket_tenant = result[0];
   string bucket_name = result[1];
   string bucket_marker = result[2];
   string bucket_tenant = result[0];
   string bucket_name = result[1];
   string bucket_marker = result[2];
-  int ret = store->getRados()->get_bucket_info(store->svc(), bucket_tenant, bucket_name, bucket_info, NULL, null_yield, &bucket_attrs);
+  int ret = store->getRados()->get_bucket_info(
+    store->svc(), bucket_tenant, bucket_name, bucket_info, NULL, null_yield,
+    &bucket_attrs);
   if (ret < 0) {
     ldpp_dout(this, 0) << "LC:get_bucket_info for " << bucket_name << " failed" << dendl;
     return ret;
   if (ret < 0) {
     ldpp_dout(this, 0) << "LC:get_bucket_info for " << bucket_name << " failed" << dendl;
     return ret;
@@ -1066,22 +1262,39 @@ int RGWLC::bucket_lc_process(string& shard_id)
       return -1;
     }
 
       return -1;
     }
 
-  multimap<string, lc_op>& prefix_map = config.get_prefix_map();
+  auto pf = [](RGWLC::LCWorker* wk, WorkItem& wi) {
+    auto wt =
+      boost::get<std::tuple<LCOpRule&, rgw_bucket_dir_entry>>(wi);
+    auto& [op_rule, o] = wt;
+    ldpp_dout(wk->get_lc(), 20)
+      << __func__ << "(): key=" << o.key << dendl;
+    std::cout << "KEY2: " << o.key << std::endl;
+    int ret = op_rule.process(o, wk->dpp);
+    if (ret < 0) {
+      ldpp_dout(wk->get_lc(), 20)
+       << "ERROR: orule.process() returned ret=" << ret
+       << dendl;
+    }
+  };
+  worker->workpool->setf(pf);
 
 
+  multimap<string, lc_op>& prefix_map = config.get_prefix_map();
   ldpp_dout(this, 10) << __func__ <<  "() prefix_map size="
                      << prefix_map.size()
                      << dendl;
 
   rgw_obj_key pre_marker;
   rgw_obj_key next_marker;
   ldpp_dout(this, 10) << __func__ <<  "() prefix_map size="
                      << prefix_map.size()
                      << dendl;
 
   rgw_obj_key pre_marker;
   rgw_obj_key next_marker;
-  for(auto prefix_iter = prefix_map.begin(); prefix_iter != prefix_map.end(); ++prefix_iter) {
+  for(auto prefix_iter = prefix_map.begin(); prefix_iter != prefix_map.end();
+      ++prefix_iter) {
     auto& op = prefix_iter->second;
     if (!is_valid_op(op)) {
       continue;
     }
     ldpp_dout(this, 20) << __func__ << "(): prefix=" << prefix_iter->first << dendl;
     if (prefix_iter != prefix_map.begin() && 
     auto& op = prefix_iter->second;
     if (!is_valid_op(op)) {
       continue;
     }
     ldpp_dout(this, 20) << __func__ << "(): prefix=" << prefix_iter->first << dendl;
     if (prefix_iter != prefix_map.begin() && 
-        (prefix_iter->first.compare(0, prev(prefix_iter)->first.length(), prev(prefix_iter)->first) == 0)) {
+        (prefix_iter->first.compare(0, prev(prefix_iter)->first.length(),
+                                   prev(prefix_iter)->first) == 0)) {
       next_marker = pre_marker;
     } else {
       pre_marker = next_marker;
       next_marker = pre_marker;
     } else {
       pre_marker = next_marker;
@@ -1091,7 +1304,6 @@ int RGWLC::bucket_lc_process(string& shard_id)
     ol.set_prefix(prefix_iter->first);
 
     ret = ol.init();
     ol.set_prefix(prefix_iter->first);
 
     ret = ol.init();
-
     if (ret < 0) {
       if (ret == (-ENOENT))
         return 0;
     if (ret < 0) {
       if (ret == (-ENOENT))
         return 0;
@@ -1099,34 +1311,29 @@ int RGWLC::bucket_lc_process(string& shard_id)
       return ret;
     }
 
       return ret;
     }
 
-    op_env oenv(op, store, this, bucket_info, ol);
-
+    op_env oenv(op, store, worker, bucket_info, ol);
     LCOpRule orule(oenv);
     LCOpRule orule(oenv);
-
-    orule.build();
-
-    rgw_bucket_dir_entry o;
-    for (; ol.get_obj(&o); ol.next()) {
-      ldpp_dout(this, 20) << __func__ << "(): key=" << o.key << dendl;
-      int ret = orule.process(o, this);
-      if (ret < 0) {
-        ldpp_dout(this, 20) << "ERROR: orule.process() returned ret="
-                           << ret
-                           << dendl;
-      }
-
-      if (going_down()) {
-        return 0;
-      }
+    orule.build(); // why can't ctor do it?
+#if 0
+    /* would permit passing o by reference, removes fetch overlap */
+    auto fetch_barrier = [&worker]()
+                          { worker->workpool->drain(); };
+#endif
+    rgw_bucket_dir_entry* o{nullptr};
+    for (; ol.get_obj(&o /* , fetch_barrier */); ol.next()) {
+      std::tuple<LCOpRule&, rgw_bucket_dir_entry> t1 = {orule, *o};
+      worker->workpool->enqueue(WorkItem{t1});
     }
     }
+    worker->workpool->drain();
   }
 
   }
 
-  ret = handle_multipart_expiration(&target, prefix_map);
-
+  ret = handle_multipart_expiration(&target, prefix_map, worker);
   return ret;
 }
 
   return ret;
 }
 
-int RGWLC::bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry, int& result)
+int RGWLC::bucket_lc_post(int index, int max_lock_sec,
+                         pair<string, int>& entry, int& result,
+                         LCWorker* worker)
 {
   utime_t lock_duration(cct->_conf->rgw_lc_lock_max_time, 0);
 
 {
   utime_t lock_duration(cct->_conf->rgw_lc_lock_max_time, 0);
 
@@ -1135,7 +1342,8 @@ int RGWLC::bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry
   l.set_duration(lock_duration);
 
   do {
   l.set_duration(lock_duration);
 
   do {
-    int ret = l.lock_exclusive(&store->getRados()->lc_pool_ctx, obj_names[index]);
+    int ret = l.lock_exclusive(
+      &store->getRados()->lc_pool_ctx, obj_names[index]);
     if (ret == -EBUSY || ret == -EEXIST) { /* already locked by another lc processor */
       ldpp_dout(this, 0) << "RGWLC::bucket_lc_post() failed to acquire lock on "
           << obj_names[index] << ", sleep 5, try again" << dendl;
     if (ret == -EBUSY || ret == -EEXIST) { /* already locked by another lc processor */
       ldpp_dout(this, 0) << "RGWLC::bucket_lc_post() failed to acquire lock on "
           << obj_names[index] << ", sleep 5, try again" << dendl;
@@ -1146,7 +1354,8 @@ int RGWLC::bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry
       return 0;
     ldpp_dout(this, 20) << "RGWLC::bucket_lc_post() lock " << obj_names[index] << dendl;
     if (result ==  -ENOENT) {
       return 0;
     ldpp_dout(this, 20) << "RGWLC::bucket_lc_post() lock " << obj_names[index] << dendl;
     if (result ==  -ENOENT) {
-      ret = cls_rgw_lc_rm_entry(store->getRados()->lc_pool_ctx, obj_names[index],  entry);
+      ret = cls_rgw_lc_rm_entry(store->getRados()->lc_pool_ctx,
+                               obj_names[index],  entry);
       if (ret < 0) {
         ldpp_dout(this, 0) << "RGWLC::bucket_lc_post() failed to remove entry "
             << obj_names[index] << dendl;
       if (ret < 0) {
         ldpp_dout(this, 0) << "RGWLC::bucket_lc_post() failed to remove entry "
             << obj_names[index] << dendl;
@@ -1158,7 +1367,8 @@ int RGWLC::bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry
       entry.second = lc_complete;
     }
 
       entry.second = lc_complete;
     }
 
-    ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx, obj_names[index],  entry);
+    ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx,
+                              obj_names[index],  entry);
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to set entry on "
           << obj_names[index] << dendl;
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to set entry on "
           << obj_names[index] << dendl;
@@ -1170,13 +1380,16 @@ clean:
   } while (true);
 }
 
   } while (true);
 }
 
-int RGWLC::list_lc_progress(const string& marker, uint32_t max_entries, map<string, int> *progress_map)
+int RGWLC::list_lc_progress(const string& marker, uint32_t max_entries,
+                           map<string, int>* progress_map)
 {
   int index = 0;
   progress_map->clear();
   for(; index <max_objs; index++) {
     map<string, int > entries;
 {
   int index = 0;
   progress_map->clear();
   for(; index <max_objs; index++) {
     map<string, int > entries;
-    int ret = cls_rgw_lc_list(store->getRados()->lc_pool_ctx, obj_names[index], marker, max_entries, entries);
+    int ret =
+      cls_rgw_lc_list(store->getRados()->lc_pool_ctx, obj_names[index], marker,
+                     max_entries, entries);
     if (ret < 0) {
       if (ret == -ENOENT) {
         ldpp_dout(this, 10) << __func__ << "() ignoring unfound lc object="
     if (ret < 0) {
       if (ret == -ENOENT) {
         ldpp_dout(this, 10) << __func__ << "() ignoring unfound lc object="
@@ -1194,15 +1407,26 @@ int RGWLC::list_lc_progress(const string& marker, uint32_t max_entries, map<stri
   return 0;
 }
 
   return 0;
 }
 
-int RGWLC::process()
+static inline vector<int> random_sequence(uint32_t n)
 {
 {
-  int max_secs = cct->_conf->rgw_lc_lock_max_time;
+  vector<int> v(n-1, 0);
+  std::generate(v.begin(), v.end(),
+    [ix = 0]() mutable {
+      return ix++;
+    });
+  std::random_shuffle(v.begin(), v.end());
+  return v;
+}
 
 
-  const int start = ceph::util::generate_random_number(0, max_objs - 1);
+int RGWLC::process(LCWorker* worker)
+{
+  int max_secs = cct->_conf->rgw_lc_lock_max_time;
 
 
-  for (int i = 0; i < max_objs; i++) {
-    int index = (i + start) % max_objs;
-    int ret = process(index, max_secs);
+  /* generate an index-shard sequence unrelated to any other
+   * that might be running in parallel */
+  vector<int> shard_seq = random_sequence(max_objs);
+  for (auto index : shard_seq) {
+    int ret = process(index, max_secs, worker);
     if (ret < 0)
       return ret;
   }
     if (ret < 0)
       return ret;
   }
@@ -1210,7 +1434,7 @@ int RGWLC::process()
   return 0;
 }
 
   return 0;
 }
 
-int RGWLC::process(int index, int max_lock_secs)
+int RGWLC::process(int index, int max_lock_secs, LCWorker* worker)
 {
   rados::cls::lock::Lock l(lc_index_lock_name);
   do {
 {
   rados::cls::lock::Lock l(lc_index_lock_name);
   do {
@@ -1222,7 +1446,8 @@ int RGWLC::process(int index, int max_lock_secs)
     utime_t time(max_lock_secs, 0);
     l.set_duration(time);
 
     utime_t time(max_lock_secs, 0);
     l.set_duration(time);
 
-    int ret = l.lock_exclusive(&store->getRados()->lc_pool_ctx, obj_names[index]);
+    int ret = l.lock_exclusive(&store->getRados()->lc_pool_ctx,
+                              obj_names[index]);
     if (ret == -EBUSY || ret == -EEXIST) { /* already locked by another lc processor */
       ldpp_dout(this, 0) << "RGWLC::process() failed to acquire lock on "
           << obj_names[index] << ", sleep 5, try again" << dendl;
     if (ret == -EBUSY || ret == -EEXIST) { /* already locked by another lc processor */
       ldpp_dout(this, 0) << "RGWLC::process() failed to acquire lock on "
           << obj_names[index] << ", sleep 5, try again" << dendl;
@@ -1233,7 +1458,8 @@ int RGWLC::process(int index, int max_lock_secs)
       return 0;
 
     cls_rgw_lc_obj_head head;
       return 0;
 
     cls_rgw_lc_obj_head head;
-    ret = cls_rgw_lc_get_head(store->getRados()->lc_pool_ctx, obj_names[index], head);
+    ret = cls_rgw_lc_get_head(store->getRados()->lc_pool_ctx, obj_names[index],
+                             head);
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to get obj head "
           << obj_names[index] << ", ret=" << ret << dendl;
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to get obj head "
           << obj_names[index] << ", ret=" << ret << dendl;
@@ -1243,42 +1469,53 @@ int RGWLC::process(int index, int max_lock_secs)
     if(!if_already_run_today(head.start_date)) {
       head.start_date = now;
       head.marker.clear();
     if(!if_already_run_today(head.start_date)) {
       head.start_date = now;
       head.marker.clear();
-      ret = bucket_lc_prepare(index);
+      ret = bucket_lc_prepare(index, worker);
       if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to update lc object "
       if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to update lc object "
-          << obj_names[index] << ", ret=" << ret << dendl;
+                        << obj_names[index]
+                        << ", ret=" << ret
+                        << dendl;
       goto exit;
       }
     }
 
       goto exit;
       }
     }
 
-    ret = cls_rgw_lc_get_next_entry(store->getRados()->lc_pool_ctx, obj_names[index], head.marker, entry);
+    ret = cls_rgw_lc_get_next_entry(store->getRados()->lc_pool_ctx,
+                                   obj_names[index], head.marker, entry);
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to get obj entry "
           << obj_names[index] << dendl;
       goto exit;
     }
 
     if (ret < 0) {
       ldpp_dout(this, 0) << "RGWLC::process() failed to get obj entry "
           << obj_names[index] << dendl;
       goto exit;
     }
 
+    /* termination condition (eof) */
     if (entry.first.empty())
       goto exit;
 
     entry.second = lc_processing;
     if (entry.first.empty())
       goto exit;
 
     entry.second = lc_processing;
-    ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx, obj_names[index],  entry);
+    ret = cls_rgw_lc_set_entry(store->getRados()->lc_pool_ctx,
+                              obj_names[index],  entry);
     if (ret < 0) {
     if (ret < 0) {
-      ldpp_dout(this, 0) << "RGWLC::process() failed to set obj entry " << obj_names[index]
-          << " (" << entry.first << "," << entry.second << ")" << dendl;
+      ldpp_dout(this, 0) << "RGWLC::process() failed to set obj entry "
+                        << obj_names[index]
+                        << " (" << entry.first << ","
+                        << entry.second << ")"
+                        << dendl;
       goto exit;
     }
 
     head.marker = entry.first;
       goto exit;
     }
 
     head.marker = entry.first;
-    ret = cls_rgw_lc_put_head(store->getRados()->lc_pool_ctx, obj_names[index],  head);
+    ret = cls_rgw_lc_put_head(store->getRados()->lc_pool_ctx, obj_names[index],
+                             head);
     if (ret < 0) {
     if (ret < 0) {
-      ldpp_dout(this, 0) << "RGWLC::process() failed to put head " << obj_names[index] << dendl;
+      ldpp_dout(this, 0) << "RGWLC::process() failed to put head "
+                        << obj_names[index]
+                        << dendl;
       goto exit;
     }
     l.unlock(&store->getRados()->lc_pool_ctx, obj_names[index]);
       goto exit;
     }
     l.unlock(&store->getRados()->lc_pool_ctx, obj_names[index]);
-    ret = bucket_lc_process(entry.first);
-    bucket_lc_post(index, max_lock_secs, entry, ret);
-  }while(1);
+    ret = bucket_lc_process(entry.first, worker);
+    bucket_lc_post(index, max_lock_secs, entry, ret, worker);
+  } while(1);
 
 exit:
     l.unlock(&store->getRados()->lc_pool_ctx, obj_names[index]);
 
 exit:
     l.unlock(&store->getRados()->lc_pool_ctx, obj_names[index]);
@@ -1287,22 +1524,26 @@ exit:
 
 void RGWLC::start_processor()
 {
 
 void RGWLC::start_processor()
 {
-  worker = new LCWorker(this, cct, this);
-  worker->create("lifecycle_thr");
+  auto maxw = cct->_conf->rgw_lc_max_worker;
+  workers.reserve(maxw);
+  for (int ix = 0; ix < maxw; ++ix) {
+    auto worker  =
+      std::make_unique<RGWLC::LCWorker>(this /* dpp */, cct, this);
+    worker->create((string{"lifecycle_thr_"} + to_string(ix)).c_str());
+    workers.emplace_back(std::move(worker));
+  }
 }
 
 void RGWLC::stop_processor()
 {
   down_flag = true;
 }
 
 void RGWLC::stop_processor()
 {
   down_flag = true;
-  if (worker) {
+  for (auto& worker : workers) {
     worker->stop();
     worker->join();
   }
     worker->stop();
     worker->join();
   }
-  delete worker;
-  worker = NULL;
+  workers.clear();
 }
 
 }
 
-
 unsigned RGWLC::get_subsys() const
 {
   return dout_subsys;
 unsigned RGWLC::get_subsys() const
 {
   return dout_subsys;
@@ -1331,7 +1572,8 @@ bool RGWLC::LCWorker::should_work(utime_t& now)
   int end_hour;
   int end_minute;
   string worktime = cct->_conf->rgw_lifecycle_work_time;
   int end_hour;
   int end_minute;
   string worktime = cct->_conf->rgw_lifecycle_work_time;
-  sscanf(worktime.c_str(),"%d:%d-%d:%d",&start_hour, &start_minute, &end_hour, &end_minute);
+  sscanf(worktime.c_str(),"%d:%d-%d:%d",&start_hour, &start_minute,
+        &end_hour, &end_minute);
   struct tm bdt;
   time_t tt = now.sec();
   localtime_r(&tt, &bdt);
   struct tm bdt;
   time_t tt = now.sec();
   localtime_r(&tt, &bdt);
@@ -1364,7 +1606,8 @@ int RGWLC::LCWorker::schedule_next_start_time(utime_t &start, utime_t& now)
   int end_hour;
   int end_minute;
   string worktime = cct->_conf->rgw_lifecycle_work_time;
   int end_hour;
   int end_minute;
   string worktime = cct->_conf->rgw_lifecycle_work_time;
-  sscanf(worktime.c_str(),"%d:%d-%d:%d",&start_hour, &start_minute, &end_hour, &end_minute);
+  sscanf(worktime.c_str(),"%d:%d-%d:%d",&start_hour, &start_minute, &end_hour,
+        &end_minute);
   struct tm bdt;
   time_t tt = now.sec();
   time_t nt;
   struct tm bdt;
   time_t tt = now.sec();
   time_t nt;
@@ -1378,15 +1621,26 @@ int RGWLC::LCWorker::schedule_next_start_time(utime_t &start, utime_t& now)
   return secs>0 ? secs : secs+24*60*60;
 }
 
   return secs>0 ? secs : secs+24*60*60;
 }
 
-void RGWLifecycleConfiguration::generate_test_instances(list<RGWLifecycleConfiguration*>& o)
+RGWLC::LCWorker::~LCWorker()
+{
+  workpool->drain();
+  delete workpool;
+} /* ~LCWorker */
+
+void RGWLifecycleConfiguration::generate_test_instances(
+  list<RGWLifecycleConfiguration*>& o)
 {
   o.push_back(new RGWLifecycleConfiguration);
 }
 
 void get_lc_oid(CephContext *cct, const string& shard_id, string *oid)
 {
 {
   o.push_back(new RGWLifecycleConfiguration);
 }
 
 void get_lc_oid(CephContext *cct, const string& shard_id, string *oid)
 {
-  int max_objs = (cct->_conf->rgw_lc_max_objs > HASH_PRIME ? HASH_PRIME : cct->_conf->rgw_lc_max_objs);
-  int index = ceph_str_hash_linux(shard_id.c_str(), shard_id.size()) % HASH_PRIME % max_objs;
+  int max_objs =
+    (cct->_conf->rgw_lc_max_objs > HASH_PRIME ? HASH_PRIME :
+     cct->_conf->rgw_lc_max_objs);
+  /* XXXX oh noes!!! */
+  int index = ceph_str_hash_linux(shard_id.c_str(),
+                                 shard_id.size()) % HASH_PRIME % max_objs;
   *oid = lc_oid_prefix;
   char buf[32];
   snprintf(buf, 32, ".%d", index);
   *oid = lc_oid_prefix;
   char buf[32];
   snprintf(buf, 32, ".%d", index);
@@ -1394,14 +1648,14 @@ void get_lc_oid(CephContext *cct, const string& shard_id, string *oid)
   return;
 }
 
   return;
 }
 
-
-
 static std::string get_lc_shard_name(const rgw_bucket& bucket){
   return string_join_reserve(':', bucket.tenant, bucket.name, bucket.marker);
 }
 
 template<typename F>
 static std::string get_lc_shard_name(const rgw_bucket& bucket){
   return string_join_reserve(':', bucket.tenant, bucket.name, bucket.marker);
 }
 
 template<typename F>
-static int guard_lc_modify(rgw::sal::RGWRadosStore* store, const rgw_bucket& bucket, const string& cookie, const F& f) {
+static int guard_lc_modify(
+  rgw::sal::RGWRadosStore* store, const rgw_bucket& bucket,
+  const string& cookie, const F& f) {
   CephContext *cct = store->ctx();
 
   string shard_id = get_lc_shard_name(bucket);
   CephContext *cct = store->ctx();
 
   string shard_id = get_lc_shard_name(bucket);
@@ -1454,17 +1708,17 @@ int RGWLC::set_bucket_config(RGWBucketInfo& bucket_info,
 
   attrs[RGW_ATTR_LC] = std::move(lc_bl);
 
 
   attrs[RGW_ATTR_LC] = std::move(lc_bl);
 
-  int ret = store->ctl()->bucket->set_bucket_instance_attrs(bucket_info, attrs,
-                                                        &bucket_info.objv_tracker,
-                                                        null_yield);
+  int ret =
+    store->ctl()->bucket->set_bucket_instance_attrs(
+      bucket_info, attrs, &bucket_info.objv_tracker, null_yield);
   if (ret < 0)
     return ret;
 
   rgw_bucket& bucket = bucket_info.bucket;
 
   if (ret < 0)
     return ret;
 
   rgw_bucket& bucket = bucket_info.bucket;
 
-
-  ret = guard_lc_modify(store, bucket, cookie, [&](librados::IoCtx *ctx, const string& oid,
-                                                   const pair<string, int>& entry) {
+  ret = guard_lc_modify(store, bucket, cookie,
+                       [&](librados::IoCtx *ctx, const string& oid,
+                           const pair<string, int>& entry) {
     return cls_rgw_lc_set_entry(*ctx, oid, entry);
   });
 
     return cls_rgw_lc_set_entry(*ctx, oid, entry);
   });
 
@@ -1476,9 +1730,9 @@ int RGWLC::remove_bucket_config(RGWBucketInfo& bucket_info,
 {
   map<string, bufferlist> attrs = bucket_attrs;
   attrs.erase(RGW_ATTR_LC);
 {
   map<string, bufferlist> attrs = bucket_attrs;
   attrs.erase(RGW_ATTR_LC);
-  int ret = store->ctl()->bucket->set_bucket_instance_attrs(bucket_info, attrs,
-                                                        &bucket_info.objv_tracker,
-                                                        null_yield);
+  int ret =
+    store->ctl()->bucket->set_bucket_instance_attrs(
+      bucket_info, attrs, &bucket_info.objv_tracker, null_yield);
 
   rgw_bucket& bucket = bucket_info.bucket;
 
 
   rgw_bucket& bucket = bucket_info.bucket;
 
@@ -1489,17 +1743,25 @@ int RGWLC::remove_bucket_config(RGWBucketInfo& bucket_info,
   }
 
 
   }
 
 
-  ret = guard_lc_modify(store, bucket, cookie, [&](librados::IoCtx *ctx, const string& oid,
-                                                   const pair<string, int>& entry) {
+  ret = guard_lc_modify(store, bucket, cookie,
+                       [&](librados::IoCtx *ctx, const string& oid,
+                           const pair<string, int>& entry) {
     return cls_rgw_lc_rm_entry(*ctx, oid, entry);
   });
 
   return ret;
     return cls_rgw_lc_rm_entry(*ctx, oid, entry);
   });
 
   return ret;
-}
+} /* RGWLC::remove_bucket_config */
+
+RGWLC::~RGWLC()
+{
+  stop_processor();
+  finalize();
+} /* ~RGWLC() */
 
 namespace rgw::lc {
 
 
 namespace rgw::lc {
 
-int fix_lc_shard_entry(rgw::sal::RGWRadosStore* store, const RGWBucketInfo& bucket_info,
+int fix_lc_shard_entry(rgw::sal::RGWRadosStore* store,
+                      const RGWBucketInfo& bucket_info,
                       const map<std::string,bufferlist>& battrs)
 {
   if (auto aiter = battrs.find(RGW_ATTR_LC);
                       const map<std::string,bufferlist>& battrs)
 {
   if (auto aiter = battrs.find(RGW_ATTR_LC);
@@ -1533,12 +1795,12 @@ int fix_lc_shard_entry(rgw::sal::RGWRadosStore* store, const RGWBucketInfo& buck
     gen_rand_alphanumeric(store->ctx(), cookie_buf, sizeof(cookie_buf) - 1);
     std::string cookie = cookie_buf;
 
     gen_rand_alphanumeric(store->ctx(), cookie_buf, sizeof(cookie_buf) - 1);
     std::string cookie = cookie_buf;
 
-    ret = guard_lc_modify(store, bucket_info.bucket, cookie,
-                         [&lc_pool_ctx, &lc_oid](librados::IoCtx *ctx, const string& oid,
-                                           const pair<string, int>& entry) {
-                           return cls_rgw_lc_set_entry(*lc_pool_ctx,
-                                                       lc_oid, entry);
-                         });
+    ret = guard_lc_modify(
+      store, bucket_info.bucket, cookie,
+      [&lc_pool_ctx, &lc_oid](librados::IoCtx *ctx, const string& oid,
+                             const pair<string, int>& entry) {
+       return cls_rgw_lc_set_entry(*lc_pool_ctx, lc_oid, entry);
+      });
 
   }
 
 
   }
 
index 32de9581664cd143ebc98b224946a39f48d96ee7..57f02a63e81f61f5046b2ddf015d812a93e1628b 100644 (file)
@@ -458,39 +458,49 @@ class RGWLC : public DoutPrefixProvider {
   std::atomic<bool> down_flag = { false };
   string cookie;
 
   std::atomic<bool> down_flag = { false };
   string cookie;
 
-  class LCWorker : public Thread {
+public:
+
+  class WorkPool;
+
+  class LCWorker : public Thread
+  {
     const DoutPrefixProvider *dpp;
     CephContext *cct;
     RGWLC *lc;
     ceph::mutex lock = ceph::make_mutex("LCWorker");
     ceph::condition_variable cond;
     const DoutPrefixProvider *dpp;
     CephContext *cct;
     RGWLC *lc;
     ceph::mutex lock = ceph::make_mutex("LCWorker");
     ceph::condition_variable cond;
+    WorkPool* workpool{nullptr};
 
   public:
 
   public:
-    LCWorker(const DoutPrefixProvider* _dpp, CephContext *_cct, RGWLC *_lc) : dpp(_dpp), cct(_cct), lc(_lc) {}
+    LCWorker(const DoutPrefixProvider* _dpp, CephContext *_cct, RGWLC *_lc);
+    RGWLC* get_lc() { return lc; }
     void *entry() override;
     void stop();
     bool should_work(utime_t& now);
     int schedule_next_start_time(utime_t& start, utime_t& now);
     void *entry() override;
     void stop();
     bool should_work(utime_t& now);
     int schedule_next_start_time(utime_t& start, utime_t& now);
-  };
-  
-  public:
-  LCWorker *worker;
-  RGWLC() : cct(NULL), store(NULL), worker(NULL) {}
-  ~RGWLC() {
-    stop_processor();
-    finalize();
-  }
+    ~LCWorker();
+
+    friend class RGWRados;
+    friend class RGWLC;
+  }; /* LCWorker */
+
+  friend class RGWRados;
+
+  std::vector<std::unique_ptr<RGWLC::LCWorker>> workers;
+
+  RGWLC() : cct(nullptr), store(nullptr) {}
+  ~RGWLC();
 
   void initialize(CephContext *_cct, rgw::sal::RGWRadosStore *_store);
   void finalize();
 
 
   void initialize(CephContext *_cct, rgw::sal::RGWRadosStore *_store);
   void finalize();
 
-  int process();
-  int process(int index, int max_secs);
+  int process(LCWorker* worker);
+  int process(int index, int max_secs, LCWorker* worker);
   bool if_already_run_today(time_t& start_date);
   int list_lc_progress(const string& marker, uint32_t max_entries, map<string, int> *progress_map);
   bool if_already_run_today(time_t& start_date);
   int list_lc_progress(const string& marker, uint32_t max_entries, map<string, int> *progress_map);
-  int bucket_lc_prepare(int index);
-  int bucket_lc_process(string& shard_id);
-  int bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry, int& result);
+  int bucket_lc_prepare(int index, LCWorker* worker);
+  int bucket_lc_process(string& shard_id, LCWorker* worker);
+  int bucket_lc_post(int index, int max_lock_sec, pair<string, int >& entry, int& result, LCWorker* worker);
   bool going_down();
   void start_processor();
   void stop_processor();
   bool going_down();
   void start_processor();
   void stop_processor();
@@ -507,7 +517,8 @@ class RGWLC : public DoutPrefixProvider {
   private:
 
   int handle_multipart_expiration(RGWRados::Bucket *target,
   private:
 
   int handle_multipart_expiration(RGWRados::Bucket *target,
-                                 const multimap<string, lc_op>& prefix_map);
+                                 const multimap<string, lc_op>& prefix_map,
+                                 LCWorker* worker);
 };
 
 namespace rgw::lc {
 };
 
 namespace rgw::lc {
index c2b6157ed060056ae1c74de5234bcbae60d34ff9..4b3e66e9fd649bcbb6754f8a175d7c72f626eb64 100644 (file)
@@ -456,10 +456,10 @@ public:
     void seek(uint64_t ofs);
 
     void operator++();
     void seek(uint64_t ofs);
 
     void operator++();
-    bool operator==(const obj_iterator& rhs) {
+    bool operator==(const obj_iterator& rhs) const {
       return (ofs == rhs.ofs);
     }
       return (ofs == rhs.ofs);
     }
-    bool operator!=(const obj_iterator& rhs) {
+    bool operator!=(const obj_iterator& rhs) const {
       return (ofs != rhs.ofs);
     }
     const rgw_obj_select& get_location() {
       return (ofs != rhs.ofs);
     }
     const rgw_obj_select& get_location() {
@@ -504,7 +504,7 @@ public:
 
     friend class RGWObjManifest;
     void dump(Formatter *f) const;
 
     friend class RGWObjManifest;
     void dump(Formatter *f) const;
-  };
+  }; // class obj_iterator
 
   const obj_iterator& obj_begin();
   const obj_iterator& obj_end();
 
   const obj_iterator& obj_begin();
   const obj_iterator& obj_end();
@@ -552,4 +552,3 @@ public:
   };
 };
 WRITE_CLASS_ENCODER(RGWObjManifest)
   };
 };
 WRITE_CLASS_ENCODER(RGWObjManifest)
-
index f5643fdab1b4a67f47303515ea851dc9627e247b..51e21fe361237b7b529d991606504a9d9deafc28 100644 (file)
@@ -4180,7 +4180,7 @@ void RGWPutObj::execute()
   }
 
   // send request to notification manager
   }
 
   // send request to notification manager
-  const auto ret = rgw::notify::publish(s, s->object, s->obj_size, mtime, etag, rgw::notify::ObjectCreatedPut, store);
+  const auto ret = rgw::notify::publish(s, obj.key, s->obj_size, mtime, etag, rgw::notify::ObjectCreatedPut, store);
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
@@ -4408,7 +4408,7 @@ void RGWPostObj::execute()
     }
   } while (is_next_file_to_upload());
 
     }
   } while (is_next_file_to_upload());
 
-  const auto ret = rgw::notify::publish(s, s->object, s->obj_size, ceph::real_clock::now(), etag, rgw::notify::ObjectCreatedPost, store);
+  const auto ret = rgw::notify::publish(s, s->object, ofs, ceph::real_clock::now(), etag, rgw::notify::ObjectCreatedPost, store);
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
@@ -4966,19 +4966,20 @@ void RGWDeleteObj::execute()
       ldpp_dout(this, 5) << "WARNING: failed to populate delete request with object tags: " << err.what() << dendl;
     }
     populate_metadata_in_request(s, attrs);
       ldpp_dout(this, 5) << "WARNING: failed to populate delete request with object tags: " << err.what() << dendl;
     }
     populate_metadata_in_request(s, attrs);
+    const auto obj_state = obj_ctx->get_state(obj);
+
+    const auto ret = rgw::notify::publish(s, s->object, obj_state->size , obj_state->mtime, attrs[RGW_ATTR_ETAG].to_str(),
+        delete_marker && s->object.instance.empty() ? rgw::notify::ObjectRemovedDeleteMarkerCreated : rgw::notify::ObjectRemovedDelete,
+        store);
+    if (ret < 0) {
+      ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
+           // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
+           // this should be global conf (probably returnign a different handler)
+      // so we don't need to read the configured values before we perform it
+    }
   } else {
     op_ret = -EINVAL;
   }
   } else {
     op_ret = -EINVAL;
   }
-
-  const auto ret = rgw::notify::publish(s, s->object, s->obj_size, ceph::real_clock::now(), attrs[RGW_ATTR_ETAG].to_str(),
-          delete_marker && s->object.instance.empty() ? rgw::notify::ObjectRemovedDeleteMarkerCreated : rgw::notify::ObjectRemovedDelete,
-          store);
-  if (ret < 0) {
-    ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
-       // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
-       // this should be global conf (probably returnign a different handler)
-    // so we don't need to read the configured values before we perform it
-  }
 }
 
 bool RGWCopyObj::parse_copy_location(const boost::string_view& url_src,
 }
 
 bool RGWCopyObj::parse_copy_location(const boost::string_view& url_src,
@@ -6270,7 +6271,8 @@ void RGWCompleteMultipart::execute()
     ldpp_dout(this, 0) << "WARNING: failed to remove object " << meta_obj << dendl;
   }
   
     ldpp_dout(this, 0) << "WARNING: failed to remove object " << meta_obj << dendl;
   }
   
-  const auto ret = rgw::notify::publish(s, s->object, s->obj_size, ceph::real_clock::now(), etag, rgw::notify::ObjectCreatedCompleteMultipartUpload, store);
+  const auto ret = rgw::notify::publish(s, s->object, ofs, ceph::real_clock::now(), final_etag_str, rgw::notify::ObjectCreatedCompleteMultipartUpload, store);
+
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
   if (ret < 0) {
     ldpp_dout(this, 5) << "WARNING: publishing notification failed, with error: " << ret << dendl;
        // TODO: we should have conf to make send a blocking coroutine and reply with error in case sending failed
@@ -6631,7 +6633,7 @@ void RGWDeleteMultiObj::execute()
     bufferlist etag_bl;
     const auto etag = obj_state->get_attr(RGW_ATTR_ETAG, etag_bl) ? etag_bl.to_str() : "";
 
     bufferlist etag_bl;
     const auto etag = obj_state->get_attr(RGW_ATTR_ETAG, etag_bl) ? etag_bl.to_str() : "";
 
-    const auto ret = rgw::notify::publish(s, obj.key, obj_state->size, ceph::real_clock::now(), etag, 
+    const auto ret = rgw::notify::publish(s, obj.key, obj_state->size, obj_state->mtime, etag, 
             del_op.result.delete_marker && s->object.instance.empty() ? rgw::notify::ObjectRemovedDeleteMarkerCreated : rgw::notify::ObjectRemovedDelete,
             store);
     if (ret < 0) {
             del_op.result.delete_marker && s->object.instance.empty() ? rgw::notify::ObjectRemovedDeleteMarkerCreated : rgw::notify::ObjectRemovedDelete,
             store);
     if (ret < 0) {
@@ -7613,6 +7615,8 @@ int RGWHandler::do_read_permissions(RGWOp *op, bool only_bucket)
                      << " ret=" << ret << dendl;
     if (ret == -ENODATA)
       ret = -EACCES;
                      << " ret=" << ret << dendl;
     if (ret == -ENODATA)
       ret = -EACCES;
+    if (s->auth.identity->is_anonymous() && ret == -EACCES)
+      ret = -EPERM;
   }
 
   return ret;
   }
 
   return ret;
index 906b26d236996a0d5e70a4a2bbd84e228182e244..dc554a37b714b00583b51773c796cb28e3620699 100644 (file)
@@ -1829,6 +1829,13 @@ public:
 struct RGWMultipartUploadEntry {
   rgw_bucket_dir_entry obj;
   RGWMPObj mp;
 struct RGWMultipartUploadEntry {
   rgw_bucket_dir_entry obj;
   RGWMPObj mp;
+
+  friend std::ostream& operator<<(std::ostream& out,
+                                 const RGWMultipartUploadEntry& e) {
+    constexpr char quote = '"';
+    return out << "RGWMultipartUploadEntry{ obj.key=" <<
+      quote << e.obj.key << quote << " mp=" << e.mp << " }";
+  }
 };
 
 class RGWListBucketMultiparts : public RGWOp {
 };
 
 class RGWListBucketMultiparts : public RGWOp {
index 7a1174039cbdf3aac678f645cd85535bf4466ee2..228ed95d419b6bc2f6d6bd5d85bcb852c93715c5 100644 (file)
@@ -9,6 +9,8 @@
 #include "common/errno.h"
 
 #include "rgw_rados.h"
 #include "common/errno.h"
 
 #include "rgw_rados.h"
+#include "rgw_op.h"
+#include "rgw_multi.h"
 #include "rgw_orphan.h"
 #include "rgw_zone.h"
 #include "rgw_bucket.h"
 #include "rgw_orphan.h"
 #include "rgw_zone.h"
 #include "rgw_bucket.h"
@@ -920,3 +922,625 @@ int RGWOrphanSearch::finish()
 
   return r;
 }
 
   return r;
 }
+
+
+int RGWRadosList::handle_stat_result(RGWRados::Object::Stat::Result& result,
+                                     std::set<string>& obj_oids)
+{
+  obj_oids.clear();
+
+  rgw_bucket& bucket = result.obj.bucket;
+
+  ldout(store->ctx(), 20) << "RGWRadosList::" << __func__ <<
+    " bucket=" << bucket <<
+    ", has_manifest=" << result.manifest.has_value() <<
+    dendl;
+
+  // iterator to store result of dlo/slo attribute find
+  decltype(result.attrs)::iterator attr_it = result.attrs.end();
+  const std::string oid = bucket.marker + "_" + result.obj.get_oid();
+  ldout(store->ctx(), 20) << "radoslist processing object=\"" <<
+      oid << "\"" << dendl;
+  if (visited_oids.find(oid) != visited_oids.end()) {
+    // apparently we hit a loop; don't continue with this oid
+    ldout(store->ctx(), 15) <<
+      "radoslist stopped loop at already visited object=\"" <<
+      oid << "\"" << dendl;
+    return 0;
+  }
+
+  if (!result.manifest) {
+    /* a very very old object, or part of a multipart upload during upload */
+    obj_oids.insert(oid);
+
+    /*
+     * multipart parts don't have manifest on them, it's in the meta
+     * object; we'll process them in
+     * RGWRadosList::do_incomplete_multipart
+     */
+  } else if ((attr_it = result.attrs.find(RGW_ATTR_USER_MANIFEST)) !=
+            result.attrs.end()) {
+    // *** handle DLO object ***
+
+    obj_oids.insert(oid);
+    visited_oids.insert(oid); // prevent dlo loops
+    ldout(store->ctx(), 15) << "radoslist added to visited list DLO=\"" <<
+      oid << "\"" << dendl;
+
+    char* prefix_path_c = attr_it->second.c_str();
+    const std::string& prefix_path = prefix_path_c;
+
+    const size_t sep_pos = prefix_path.find('/');
+    if (string::npos == sep_pos) {
+      return -EINVAL;
+    }
+
+    const std::string bucket_name = prefix_path.substr(0, sep_pos);
+    const std::string prefix = prefix_path.substr(sep_pos + 1);
+
+    add_bucket_prefix(bucket_name, prefix);
+    ldout(store->ctx(), 25) << "radoslist DLO oid=\"" << oid <<
+      "\" added bucket=\"" << bucket_name << "\" prefix=\"" <<
+      prefix << "\" to process list" << dendl;
+  } else if ((attr_it = result.attrs.find(RGW_ATTR_SLO_MANIFEST)) !=
+            result.attrs.end()) {
+    // *** handle SLO object ***
+
+    obj_oids.insert(oid);
+    visited_oids.insert(oid); // prevent slo loops
+    ldout(store->ctx(), 15) << "radoslist added to visited list SLO=\"" <<
+      oid << "\"" << dendl;
+
+    RGWSLOInfo slo_info;
+    bufferlist::const_iterator bliter = attr_it->second.begin();
+    try {
+      ::decode(slo_info, bliter);
+    } catch (buffer::error& err) {
+      ldout(store->ctx(), 0) <<
+       "ERROR: failed to decode slo manifest for " << oid << dendl;
+      return -EIO;
+    }
+
+    for (const auto& iter : slo_info.entries) {
+      const string& path_str = iter.path;
+
+      const size_t sep_pos = path_str.find('/', 1 /* skip initial slash */);
+      if (string::npos == sep_pos) {
+       return -EINVAL;
+      }
+
+      std::string bucket_name;
+      std::string obj_name;
+
+      bucket_name = url_decode(path_str.substr(1, sep_pos - 1));
+      obj_name = url_decode(path_str.substr(sep_pos + 1));
+
+      const rgw_obj_key obj_key(obj_name);
+      add_bucket_filter(bucket_name, obj_key);
+      ldout(store->ctx(), 25) << "radoslist SLO oid=\"" << oid <<
+       "\" added bucket=\"" << bucket_name << "\" obj_key=\"" <<
+       obj_key << "\" to process list" << dendl;
+    }
+  } else {
+    RGWObjManifest& manifest = *result.manifest;
+
+    // in multipart, the head object contains no data and just has the
+    // manifest AND empty objects have no manifest, but they're
+    // realized as empty rados objects
+    if (0 == manifest.get_max_head_size() ||
+       manifest.obj_begin() == manifest.obj_end()) {
+      obj_oids.insert(oid);
+      // first_insert = true;
+    }
+
+    RGWObjManifest::obj_iterator miter;
+    for (miter = manifest.obj_begin(); miter != manifest.obj_end(); ++miter) {
+      const rgw_raw_obj& loc =
+       miter.get_location().get_raw_obj(store->getRados());
+      string s = loc.oid;
+      obj_oids.insert(s);
+    }
+  }
+
+  return 0;
+} // RGWRadosList::handle_stat_result
+
+int RGWRadosList::pop_and_handle_stat_op(
+  RGWObjectCtx& obj_ctx,
+  std::deque<RGWRados::Object::Stat>& ops)
+{
+  std::set<string> obj_oids;
+  RGWRados::Object::Stat& front_op = ops.front();
+
+  int ret = front_op.wait();
+  if (ret < 0) {
+    if (ret != -ENOENT) {
+      lderr(store->ctx()) << "ERROR: stat_async() returned error: " <<
+       cpp_strerror(-ret) << dendl;
+    }
+    goto done;
+  }
+
+  ret = handle_stat_result(front_op.result, obj_oids);
+  if (ret < 0) {
+    lderr(store->ctx()) << "ERROR: handle_stat_result() returned error: " <<
+      cpp_strerror(-ret) << dendl;
+  }
+
+  // output results
+  for (const auto& o : obj_oids) {
+    std::cout << o << std::endl;
+  }
+
+done:
+
+  // invalidate object context for this object to avoid memory leak
+  // (see pr https://github.com/ceph/ceph/pull/30174)
+  obj_ctx.invalidate(front_op.result.obj);
+
+  ops.pop_front();
+  return ret;
+}
+
+
+#if 0 // code that may be the basis for expansion
+int RGWRadosList::build_buckets_instance_index()
+{
+  void *handle;
+  int max = 1000;
+  string section = "bucket.instance";
+  int ret = store->meta_mgr->list_keys_init(section, &handle);
+  if (ret < 0) {
+    lderr(store->ctx()) << "ERROR: can't get key: " << cpp_strerror(-ret) << dendl;
+    return ret;
+  }
+
+  map<int, list<string> > instances;
+
+  bool truncated;
+
+  RGWObjectCtx obj_ctx(store);
+
+  int count = 0;
+  uint64_t total = 0;
+
+  do {
+    list<string> keys;
+    ret = store->meta_mgr->list_keys_next(handle, max, keys, &truncated);
+    if (ret < 0) {
+      lderr(store->ctx()) << "ERROR: lists_keys_next(): " << cpp_strerror(-ret) << dendl;
+      return ret;
+    }
+
+    for (list<string>::iterator iter = keys.begin(); iter != keys.end(); ++iter) {
+      ++total;
+      ldout(store->ctx(), 10) << "bucket_instance=" << *iter << " total=" << total << dendl;
+      int shard = orphan_shard(*iter);
+      instances[shard].push_back(*iter);
+
+      if (++count >= COUNT_BEFORE_FLUSH) {
+        ret = log_oids(buckets_instance_index, instances);
+        if (ret < 0) {
+          lderr(store->ctx()) << __func__ << ": ERROR: log_oids() returned ret=" << ret << dendl;
+          return ret;
+        }
+        count = 0;
+        instances.clear();
+      }
+    }
+  } while (truncated);
+
+  ret = log_oids(buckets_instance_index, instances);
+  if (ret < 0) {
+    lderr(store->ctx()) << __func__ << ": ERROR: log_oids() returned ret=" << ret << dendl;
+    return ret;
+  }
+  store->meta_mgr->list_keys_complete(handle);
+
+  return 0;
+}
+#endif
+
+
+int RGWRadosList::process_bucket(
+  const std::string& bucket_instance_id,
+  const std::string& prefix,
+  const std::set<rgw_obj_key>& entries_filter)
+{
+  ldout(store->ctx(), 10) << "RGWRadosList::" << __func__ <<
+    " bucket_instance_id=" << bucket_instance_id <<
+    ", prefix=" << prefix <<
+    ", entries_filter.size=" << entries_filter.size() << dendl;
+
+  RGWBucketInfo bucket_info;
+  RGWSysObjectCtx sys_obj_ctx = store->svc()->sysobj->init_obj_ctx();
+  int ret = store->getRados()->get_bucket_instance_info(sys_obj_ctx,
+                                                       bucket_instance_id,
+                                                       bucket_info,
+                                                       nullptr,
+                                                       nullptr,
+                                                       null_yield);
+  if (ret < 0) {
+    if (ret == -ENOENT) {
+      // probably raced with bucket removal
+      return 0;
+    }
+    lderr(store->ctx()) << __func__ <<
+      ": ERROR: RGWRados::get_bucket_instance_info() returned ret=" <<
+      ret << dendl;
+    return ret;
+  }
+
+  RGWRados::Bucket target(store->getRados(), bucket_info);
+  RGWRados::Bucket::List list_op(&target);
+
+  std::string marker;
+  list_op.params.marker = rgw_obj_key(marker);
+  list_op.params.list_versions = true;
+  list_op.params.enforce_ns = false;
+  list_op.params.allow_unordered = false;
+  list_op.params.prefix = prefix;
+
+  bool truncated;
+
+  std::deque<RGWRados::Object::Stat> stat_ops;
+  std::string prev_versioned_key_name = "";
+
+  RGWObjectCtx obj_ctx(store);
+
+  do {
+    std::vector<rgw_bucket_dir_entry> result;
+
+    constexpr int64_t LIST_OBJS_MAX_ENTRIES = 100;
+    ret = list_op.list_objects(LIST_OBJS_MAX_ENTRIES, &result,
+                              NULL, &truncated, null_yield);
+    if (ret == -ENOENT) {
+      // race with bucket delete?
+      ret = 0;
+      break;
+    } else if (ret < 0) {
+      std::cerr << "ERROR: store->list_objects(): " << cpp_strerror(-ret) <<
+       std::endl;
+      return ret;
+    }
+
+    for (std::vector<rgw_bucket_dir_entry>::iterator iter = result.begin();
+        iter != result.end();
+        ++iter) {
+      rgw_bucket_dir_entry& entry = *iter;
+
+      if (entry.key.instance.empty()) {
+        ldout(store->ctx(), 20) << "obj entry: " << entry.key.name << dendl;
+      } else {
+        ldout(store->ctx(), 20) << "obj entry: " << entry.key.name <<
+         " [" << entry.key.instance << "]" << dendl;
+      }
+
+      ldout(store->ctx(), 20) << __func__ << ": entry.key.name=" <<
+       entry.key.name << " entry.key.instance=" << entry.key.instance <<
+       dendl;
+
+      // ignore entries that are not in the filter if there is a filter
+      if (!entries_filter.empty() &&
+         entries_filter.find(entry.key) == entries_filter.cend()) {
+       continue;
+      }
+
+      // we need to do this in two cases below, so use a lambda
+      auto do_stat_key =
+       [&](const rgw_obj_key& key) -> int {
+         int ret;
+
+         rgw_obj obj(bucket_info.bucket, key);
+
+         RGWRados::Object op_target(store->getRados(), bucket_info,
+                                    obj_ctx, obj);
+
+         stat_ops.push_back(RGWRados::Object::Stat(&op_target));
+         RGWRados::Object::Stat& op = stat_ops.back();
+
+         ret = op.stat_async();
+         if (ret < 0) {
+           lderr(store->ctx()) << "ERROR: stat_async() returned error: " <<
+             cpp_strerror(-ret) << dendl;
+           return ret;
+         }
+
+         if (stat_ops.size() >= max_concurrent_ios) {
+           ret = pop_and_handle_stat_op(obj_ctx, stat_ops);
+           if (ret < 0) {
+             if (ret != -ENOENT) {
+               lderr(store->ctx()) <<
+                 "ERROR: pop_and_handle_stat_op() returned error: " <<
+                 cpp_strerror(-ret) << dendl;
+             }
+
+             // clear error, so we'll continue processing directory
+             ret = 0;
+           }
+         }
+
+         return ret;
+       }; // do_stat_key lambda
+
+      // for versioned objects, make sure the head object is handled
+      // as well by ignoring the instance identifier
+      if (!entry.key.instance.empty() &&
+         entry.key.name != prev_versioned_key_name) {
+       // don't do the same key twice; even though out bucket index
+       // listing allows unordered, since all versions of an object
+       // use the same bucket index key, they'll all end up together
+       // and sorted
+       prev_versioned_key_name = entry.key.name;
+
+       rgw_obj_key uninstanced(entry.key.name);
+
+       ret = do_stat_key(uninstanced);
+       if (ret < 0) {
+         return ret;
+       }
+      }
+
+      ret = do_stat_key(entry.key);
+      if (ret < 0) {
+       return ret;
+      }
+    } // for iter loop
+  } while (truncated);
+
+  while (!stat_ops.empty()) {
+    ret = pop_and_handle_stat_op(obj_ctx, stat_ops);
+    if (ret < 0) {
+      if (ret != -ENOENT) {
+        lderr(store->ctx()) << "ERROR: stat_async() returned error: " <<
+         cpp_strerror(-ret) << dendl;
+      }
+    }
+  }
+
+  return 0;
+}
+
+
+int RGWRadosList::run()
+{
+  int ret;
+  void* handle = nullptr;
+
+  ret = store->ctl()->meta.mgr->list_keys_init("bucket", &handle);
+  if (ret < 0) {
+    lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+      " ERROR: list_keys_init returned " <<
+      cpp_strerror(-ret) << dendl;
+    return ret;
+  }
+
+  const int max_keys = 1000;
+  bool truncated = true;
+
+  do {
+    std::list<std::string> buckets;
+    ret = store->ctl()->meta.mgr->list_keys_next(handle, max_keys,
+                                                buckets, &truncated);
+
+    for (std::string& bucket_id : buckets) {
+      ret = run(bucket_id);
+      if (ret == -ENOENT) {
+       continue;
+      } else if (ret < 0) {
+       return ret;
+      }
+    }
+  } while (truncated);
+
+  return 0;
+} // RGWRadosList::run()
+
+
+int RGWRadosList::run(const std::string& start_bucket_name)
+{
+  RGWSysObjectCtx sys_obj_ctx = store->svc()->sysobj->init_obj_ctx();
+  RGWObjectCtx obj_ctx(store);
+  int ret;
+
+  add_bucket_entire(start_bucket_name);
+
+  while (! bucket_process_map.empty()) {
+    // pop item from map and capture its key data
+    auto front = bucket_process_map.begin();
+    std::string bucket_name = front->first;
+    process_t process;
+    std::swap(process, front->second);
+    bucket_process_map.erase(front);
+
+    RGWBucketInfo bucket_info;
+    ret = store->getRados()->get_bucket_info(store->svc(),
+                                            tenant_name,
+                                            bucket_name,
+                                            bucket_info,
+                                            nullptr,
+                                            null_yield);
+    if (ret == -ENOENT) {
+      std::cerr << "WARNING: bucket " << bucket_name <<
+       " does not exist; could it have been deleted very recently?" <<
+       std::endl;
+      continue;
+    } else if (ret < 0) {
+      std::cerr << "ERROR: could not get info for bucket " << bucket_name <<
+       " -- " << cpp_strerror(-ret) << std::endl;
+      return ret;
+    }
+
+    const std::string bucket_id = bucket_info.bucket.get_key();
+
+    static const std::set<rgw_obj_key> empty_filter;
+    static const std::string empty_prefix;
+
+    auto do_process_bucket =
+      [&bucket_id, this]
+      (const std::string& prefix,
+       const std::set<rgw_obj_key>& entries_filter) -> int {
+       int ret = process_bucket(bucket_id, prefix, entries_filter);
+       if (ret == -ENOENT) {
+         // bucket deletion race?
+         return 0;
+       } if (ret < 0) {
+         lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+           ": ERROR: process_bucket(); bucket_id=" <<
+           bucket_id << " returned ret=" << ret << dendl;
+       }
+
+       return ret;
+      };
+
+    // either process the whole bucket *or* process the filters and/or
+    // the prefixes
+    if (process.entire_container) {
+      ret = do_process_bucket(empty_prefix, empty_filter);
+      if (ret < 0) {
+       return ret;
+      }
+    } else {
+      if (! process.filter_keys.empty()) {
+       ret = do_process_bucket(empty_prefix, process.filter_keys);
+       if (ret < 0) {
+         return ret;
+       }
+      }
+      for (const auto& p : process.prefixes) {
+       ret = do_process_bucket(p, empty_filter);
+       if (ret < 0) {
+         return ret;
+       }
+      }
+    }
+  } // while (! bucket_process_map.empty())
+
+  // now handle incomplete multipart uploads by going back to the
+  // initial bucket
+
+  RGWBucketInfo bucket_info;
+  ret = store->getRados()->get_bucket_info(store->svc(),
+                                          tenant_name,
+                                          start_bucket_name,
+                                          bucket_info,
+                                          nullptr,
+                                          null_yield);
+  if (ret == -ENOENT) {
+    // bucket deletion race?
+    return 0;
+  } else if (ret < 0) {
+    lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+      ": ERROR: get_bucket_info returned ret=" << ret << dendl;
+    return ret;
+  }
+
+  ret = do_incomplete_multipart(store, bucket_info);
+  if (ret < 0) {
+    lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+      ": ERROR: do_incomplete_multipart returned ret=" << ret << dendl;
+    return ret;
+  }
+
+  return 0;
+} // RGWRadosList::run(string)
+
+
+int RGWRadosList::do_incomplete_multipart(
+  rgw::sal::RGWRadosStore* store,
+  RGWBucketInfo& bucket_info)
+{
+  constexpr int max_uploads = 1000;
+  constexpr int max_parts = 1000;
+  static const std::string mp_ns = RGW_OBJ_NS_MULTIPART;
+  static MultipartMetaFilter mp_filter;
+
+  int ret;
+
+  RGWRados::Bucket target(store->getRados(), bucket_info);
+  RGWRados::Bucket::List list_op(&target);
+
+  bool is_listing_truncated;
+  std::string empty_string;
+  RGWMultipartUploadEntry next_uploads_marker;
+
+  do {
+    RGWMPObj uploads_marker = next_uploads_marker.mp;
+    const std::string& marker_meta = uploads_marker.get_meta();
+    list_op.params.marker = marker_meta;
+    list_op.params.ns = mp_ns;
+    list_op.params.filter = &mp_filter;
+
+    // use empty strings for list_op.params.{prefix,delim}
+
+    std::vector<rgw_bucket_dir_entry> objs;
+    std::map<string, bool> common_prefixes;
+    ret = list_op.list_objects(max_uploads, &objs, &common_prefixes,
+                              &is_listing_truncated, null_yield);
+    if (ret == -ENOENT) {
+      // could bucket have been removed while this is running?
+      ldout(store->ctx(), 20) << "RGWRadosList::" << __func__ <<
+       ": WARNING: call to list_objects of multipart namespace got ENOENT; "
+       "assuming bucket removal race" << dendl;
+      break;
+    } else if (ret < 0) {
+      lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+       ": ERROR: list_objects op returned ret=" << ret << dendl;
+      return ret;
+    }
+
+    if (!objs.empty()) {
+      std::vector<RGWMultipartUploadEntry> uploads;
+      RGWMultipartUploadEntry entry;
+      for (const rgw_bucket_dir_entry& obj : objs) {
+       const rgw_obj_key& key = obj.key;
+       if (!entry.mp.from_meta(key.name)) {
+         // we only want the meta objects, so skip all the components
+         continue;
+       }
+       entry.obj = obj;
+       uploads.push_back(entry);
+       ldout(store->ctx(), 20) << "RGWRadosList::" << __func__ <<
+         " processing incomplete multipart entry " <<
+         entry << dendl;
+      }
+      next_uploads_marker = entry;
+
+      // now process the uploads vector
+
+      int parts_marker = 0;
+      bool is_parts_truncated = false;
+      do {
+       map<uint32_t, RGWUploadPartInfo> parts;
+
+       for (const auto& upload : uploads) {
+         const RGWMPObj& mp = upload.mp;
+         ret = list_multipart_parts(store, bucket_info, store->ctx(),
+                                    mp.get_upload_id(), mp.get_meta(),
+                                    max_parts,
+                                    parts_marker, parts, NULL, &is_parts_truncated);
+         if (ret == -ENOENT) {
+           continue;
+         } else if (ret < 0) {
+           lderr(store->ctx()) << "RGWRadosList::" << __func__ <<
+             ": ERROR: list_multipart_parts returned ret=" << ret << dendl;
+           return ret;
+         }
+
+         for (auto& p : parts) {
+           RGWObjManifest& manifest = p.second.manifest;
+           for (auto obj_it = manifest.obj_begin();
+                obj_it != manifest.obj_end();
+                ++obj_it) {
+             const rgw_raw_obj& loc =
+               obj_it.get_location().get_raw_obj(store->getRados());
+             std::cout << loc.oid << std::endl;
+           }
+         }
+       }
+      } while (is_parts_truncated);
+    } // if objs not empty
+  } while(is_listing_truncated);
+
+  return 0;
+} // RGWRadosList::do_incomplete_multipart
index d27e71d6a4a7583bb9a0103ab20837ccbf606227..ae1e61b780e7dd44ed932f08cac196988b510645 100644 (file)
@@ -210,5 +210,82 @@ public:
 };
 
 
 };
 
 
+class RGWRadosList {
+
+  /*
+   * process_t describes how to process a irectory, we will either
+   * process the whole thing (entire_container == true) or a portion
+   * of it (entire_container == false). When we only process a
+   * portion, we will list the specific keys and/or specific lexical
+   * prefixes.
+   */
+  struct process_t {
+    bool entire_container;
+    std::set<rgw_obj_key> filter_keys;
+    std::set<std::string> prefixes;
+
+    process_t() :
+      entire_container(false)
+    {}
+  };
+
+  std::map<std::string,process_t> bucket_process_map;
+  std::set<std::string> visited_oids;
+
+  void add_bucket_entire(const std::string& bucket_name) {
+    auto p = bucket_process_map.emplace(std::make_pair(bucket_name,
+                                                      process_t()));
+    p.first->second.entire_container = true;
+  }
+
+  void add_bucket_prefix(const std::string& bucket_name,
+                        const std::string& prefix) {
+    auto p = bucket_process_map.emplace(std::make_pair(bucket_name,
+                                                      process_t()));
+    p.first->second.prefixes.insert(prefix);
+  }
+
+  void add_bucket_filter(const std::string& bucket_name,
+                        const rgw_obj_key& obj_key) {
+    auto p = bucket_process_map.emplace(std::make_pair(bucket_name,
+                                                      process_t()));
+    p.first->second.filter_keys.insert(obj_key);
+  }
+
+  rgw::sal::RGWRadosStore* store;
+
+  uint16_t max_concurrent_ios;
+  uint64_t stale_secs;
+  std::string tenant_name;
+
+  int handle_stat_result(RGWRados::Object::Stat::Result& result,
+                        std::set<string>& obj_oids);
+  int pop_and_handle_stat_op(RGWObjectCtx& obj_ctx,
+                            std::deque<RGWRados::Object::Stat>& ops);
+
+public:
+
+  RGWRadosList(rgw::sal::RGWRadosStore* _store,
+              int _max_ios,
+              uint64_t _stale_secs,
+              const std::string& _tenant_name) :
+    store(_store),
+    max_concurrent_ios(_max_ios),
+    stale_secs(_stale_secs),
+    tenant_name(_tenant_name)
+  {}
+
+  int process_bucket(const std::string& bucket_instance_id,
+                    const std::string& prefix,
+                    const std::set<rgw_obj_key>& entries_filter);
+
+  int do_incomplete_multipart(rgw::sal::RGWRadosStore* store,
+                             RGWBucketInfo& bucket_info);
+
+  int build_linked_oids_index();
+
+  int run(const std::string& bucket_id);
+  int run();
+}; // class RGWRadosList
 
 #endif
 
 #endif
index 77cb134b46b575ce617c03c0d3c6fdb23de660b2..951bf54fee7b26175ada432156c576fd85e0b8cb 100644 (file)
@@ -35,6 +35,7 @@ int rgw_perf_start(CephContext *cct)
   plb.add_u64_counter(l_rgw_keystone_token_cache_miss, "keystone_token_cache_miss", "Keystone token cache miss");
 
   plb.add_u64_counter(l_rgw_gc_retire, "gc_retire_object", "GC object retires");
   plb.add_u64_counter(l_rgw_keystone_token_cache_miss, "keystone_token_cache_miss", "Keystone token cache miss");
 
   plb.add_u64_counter(l_rgw_gc_retire, "gc_retire_object", "GC object retires");
+  plb.add_u64_counter(l_rgw_lc_remove_expired, "lc_remove_expired", "LC removed objects");
 
   plb.add_u64_counter(l_rgw_pubsub_event_triggered, "pubsub_event_triggered", "Pubsub events with at least one topic");
   plb.add_u64_counter(l_rgw_pubsub_event_lost, "pubsub_event_lost", "Pubsub events lost");
 
   plb.add_u64_counter(l_rgw_pubsub_event_triggered, "pubsub_event_triggered", "Pubsub events with at least one topic");
   plb.add_u64_counter(l_rgw_pubsub_event_lost, "pubsub_event_lost", "Pubsub events lost");
index 1307d36d7043b5e3e016f44f0c4c8491a67ae13b..e07a3d9897c2a27b817a57346d0af473b3c8c93f 100644 (file)
@@ -32,6 +32,7 @@ enum {
   l_rgw_keystone_token_cache_miss,
 
   l_rgw_gc_retire,
   l_rgw_keystone_token_cache_miss,
 
   l_rgw_gc_retire,
+  l_rgw_lc_remove_expired,
 
   l_rgw_pubsub_event_triggered,
   l_rgw_pubsub_event_lost,
 
   l_rgw_pubsub_event_triggered,
   l_rgw_pubsub_event_lost,
index 6230330d4a6a32440a0bfe485b6b1c40670e6e7e..0f927e4f46fc3f4dfd1b865960dcb914b2128d42 100644 (file)
@@ -170,11 +170,10 @@ private:
   const std::string endpoint;
   const std::string topic;
   const std::string exchange;
   const std::string endpoint;
   const std::string topic;
   const std::string exchange;
-  amqp::connection_ptr_t conn;
   ack_level_t ack_level;
   ack_level_t ack_level;
-  std::string str_ack_level;
+  amqp::connection_ptr_t conn;
 
 
-  static std::string get_exchange(const RGWHTTPArgs& args) {
+  std::string get_exchange(const RGWHTTPArgs& args) {
     bool exists;
     const auto exchange = args.get("amqp-exchange", &exists);
     if (!exists) {
     bool exists;
     const auto exchange = args.get("amqp-exchange", &exists);
     if (!exists) {
@@ -183,6 +182,22 @@ private:
     return exchange;
   }
 
     return exchange;
   }
 
+  ack_level_t get_ack_level(const RGWHTTPArgs& args) {
+    bool exists;
+    const auto& str_ack_level = args.get("amqp-ack-level", &exists);
+    if (!exists || str_ack_level == "broker") {
+      // "broker" is default
+      return ack_level_t::Broker;
+    }
+    if (str_ack_level == "none") {
+      return ack_level_t::None;
+    }
+    if (str_ack_level == "routable") {
+      return ack_level_t::Routable;
+    }
+    throw configuration_error("AMQP: invalid amqp-ack-level: " + str_ack_level);
+  }
+
   // NoAckPublishCR implements async amqp publishing via coroutine
   // This coroutine ends when it send the message and does not wait for an ack
   class NoAckPublishCR : public RGWCoroutine {
   // NoAckPublishCR implements async amqp publishing via coroutine
   // This coroutine ends when it send the message and does not wait for an ack
   class NoAckPublishCR : public RGWCoroutine {
@@ -220,16 +235,14 @@ private:
     const std::string topic;
     amqp::connection_ptr_t conn;
     const std::string message;
     const std::string topic;
     amqp::connection_ptr_t conn;
     const std::string message;
-    [[maybe_unused]] const ack_level_t ack_level; // TODO not used for now
 
   public:
     AckPublishCR(CephContext* cct,
               const std::string& _topic,
               amqp::connection_ptr_t& _conn,
 
   public:
     AckPublishCR(CephContext* cct,
               const std::string& _topic,
               amqp::connection_ptr_t& _conn,
-              const std::string& _message,
-              ack_level_t _ack_level) :
+              const std::string& _message) :
       RGWCoroutine(cct),
       RGWCoroutine(cct),
-      topic(_topic), conn(_conn), message(_message), ack_level(_ack_level) {}
+      topic(_topic), conn(_conn), message(_message) {}
 
     // send message to endpoint, waiting for reply
     int operate() override {
 
     // send message to endpoint, waiting for reply
     int operate() override {
@@ -273,7 +286,7 @@ private:
       return nullptr;
     }
   };
       return nullptr;
     }
   };
-
+  
 public:
   RGWPubSubAMQPEndpoint(const std::string& _endpoint,
       const std::string& _topic,
 public:
   RGWPubSubAMQPEndpoint(const std::string& _endpoint,
       const std::string& _topic,
@@ -283,23 +296,11 @@ public:
         endpoint(_endpoint), 
         topic(_topic),
         exchange(get_exchange(args)),
         endpoint(_endpoint), 
         topic(_topic),
         exchange(get_exchange(args)),
-        conn(amqp::connect(endpoint, exchange)) {
+        ack_level(get_ack_level(args)),
+        conn(amqp::connect(endpoint, exchange, (ack_level == ack_level_t::Broker))) {
     if (!conn) { 
       throw configuration_error("AMQP: failed to create connection to: " + endpoint);
     }
     if (!conn) { 
       throw configuration_error("AMQP: failed to create connection to: " + endpoint);
     }
-    bool exists;
-    // get ack level
-    str_ack_level = args.get("amqp-ack-level", &exists);
-    if (!exists || str_ack_level == "broker") {
-      // "broker" is default
-      ack_level = ack_level_t::Broker;
-    } else if (str_ack_level == "none") {
-      ack_level = ack_level_t::None;
-    } else if (str_ack_level == "routable") {
-      ack_level = ack_level_t::Routable;
-    } else {
-      throw configuration_error("AMQP: invalid amqp-ack-level: " + str_ack_level);
-    }
   }
 
   RGWCoroutine* send_to_completion_async(const rgw_pubsub_event& event, RGWDataSyncEnv* env) override {
   }
 
   RGWCoroutine* send_to_completion_async(const rgw_pubsub_event& event, RGWDataSyncEnv* env) override {
@@ -307,9 +308,7 @@ public:
     if (ack_level == ack_level_t::None) {
       return new NoAckPublishCR(cct, topic, conn, json_format_pubsub_event(event));
     } else {
     if (ack_level == ack_level_t::None) {
       return new NoAckPublishCR(cct, topic, conn, json_format_pubsub_event(event));
     } else {
-      // TODO: currently broker and routable are the same - this will require different flags
-      // but the same mechanism
-      return new AckPublishCR(cct, topic, conn, json_format_pubsub_event(event), ack_level);
+      return new AckPublishCR(cct, topic, conn, json_format_pubsub_event(event));
     }
   }
   
     }
   }
   
@@ -318,9 +317,7 @@ public:
     if (ack_level == ack_level_t::None) {
       return new NoAckPublishCR(cct, topic, conn, json_format_pubsub_event(record));
     } else {
     if (ack_level == ack_level_t::None) {
       return new NoAckPublishCR(cct, topic, conn, json_format_pubsub_event(record));
     } else {
-      // TODO: currently broker and routable are the same - this will require different flags
-      // but the same mechanism
-      return new AckPublishCR(cct, topic, conn, json_format_pubsub_event(record), ack_level);
+      return new AckPublishCR(cct, topic, conn, json_format_pubsub_event(record));
     }
   }
 
     }
   }
 
@@ -405,7 +402,6 @@ public:
     str += "\nURI: " + endpoint;
     str += "\nTopic: " + topic;
     str += "\nExchange: " + exchange;
     str += "\nURI: " + endpoint;
     str += "\nTopic: " + topic;
     str += "\nExchange: " + exchange;
-    str += "\nAck Level: " + str_ack_level;
     return str;
   }
 };
     return str;
   }
 };
@@ -428,7 +424,7 @@ private:
   kafka::connection_ptr_t conn;
   const ack_level_t ack_level;
 
   kafka::connection_ptr_t conn;
   const ack_level_t ack_level;
 
-  static bool get_verify_ssl(const RGWHTTPArgs& args) {
+  bool get_verify_ssl(const RGWHTTPArgs& args) {
     bool exists;
     auto str_verify_ssl = args.get("verify-ssl", &exists);
     if (!exists) {
     bool exists;
     auto str_verify_ssl = args.get("verify-ssl", &exists);
     if (!exists) {
@@ -445,7 +441,7 @@ private:
     throw configuration_error("'verify-ssl' must be true/false, not: " + str_verify_ssl);
   }
 
     throw configuration_error("'verify-ssl' must be true/false, not: " + str_verify_ssl);
   }
 
-  static bool get_use_ssl(const RGWHTTPArgs& args) {
+  bool get_use_ssl(const RGWHTTPArgs& args) {
     bool exists;
     auto str_use_ssl = args.get("use-ssl", &exists);
     if (!exists) {
     bool exists;
     auto str_use_ssl = args.get("use-ssl", &exists);
     if (!exists) {
@@ -462,7 +458,7 @@ private:
     throw configuration_error("'use-ssl' must be true/false, not: " + str_use_ssl);
   }
 
     throw configuration_error("'use-ssl' must be true/false, not: " + str_use_ssl);
   }
 
-  static ack_level_t get_ack_level(const RGWHTTPArgs& args) {
+  ack_level_t get_ack_level(const RGWHTTPArgs& args) {
     bool exists;
     // get ack level
     const auto str_ack_level = args.get("kafka-ack-level", &exists);
     bool exists;
     // get ack level
     const auto str_ack_level = args.get("kafka-ack-level", &exists);
index 3f6c32c8d48673f5075ae84fcde2f2b5f88532d6..b8e829ddab76afdabf0b1e664f992eb55a599e26 100644 (file)
@@ -7551,8 +7551,12 @@ int RGWRados::get_bucket_stats_async(RGWBucketInfo& bucket_info, int shard_id, R
   return r;
 }
 
   return r;
 }
 
-int RGWRados::get_bucket_instance_info(RGWSysObjectCtx& obj_ctx, const string& meta_key, RGWBucketInfo& info,
-                                       real_time *pmtime, map<string, bufferlist> *pattrs, optional_yield y)
+int RGWRados::get_bucket_instance_info(RGWSysObjectCtx& obj_ctx,
+                                      const string& meta_key,
+                                      RGWBucketInfo& info,
+                                       real_time *pmtime,
+                                      map<string, bufferlist> *pattrs,
+                                      optional_yield y)
 {
   rgw_bucket bucket;
   rgw_bucket_parse_bucket_key(cct, meta_key, &bucket, nullptr);
 {
   rgw_bucket bucket;
   rgw_bucket_parse_bucket_key(cct, meta_key, &bucket, nullptr);
@@ -8047,7 +8051,7 @@ int RGWRados::list_lc_progress(const string& marker, uint32_t max_entries, map<s
 
 int RGWRados::process_lc()
 {
 
 int RGWRados::process_lc()
 {
-  return lc->process();
+  return lc->process(nullptr);
 }
 
 bool RGWRados::process_expire_objects()
 }
 
 bool RGWRados::process_expire_objects()
@@ -8344,7 +8348,7 @@ int RGWRados::cls_bucket_list_ordered(RGWBucketInfo& bucket_info,
     // into results_trackers vector
     tracker_idx = candidates.begin()->second;
     auto& tracker = results_trackers.at(tracker_idx);
     // into results_trackers vector
     tracker_idx = candidates.begin()->second;
     auto& tracker = results_trackers.at(tracker_idx);
-    last_entry_visited = &tracker.dir_entry();
+
     const string& name = tracker.entry_name();
     rgw_bucket_dir_entry& dirent = tracker.dir_entry();
 
     const string& name = tracker.entry_name();
     rgw_bucket_dir_entry& dirent = tracker.dir_entry();
 
@@ -8377,10 +8381,12 @@ int RGWRados::cls_bucket_list_ordered(RGWBucketInfo& bucket_info,
       ldout(cct, 10) << "RGWRados::" << __func__ << ": got " <<
        dirent.key.name << "[" << dirent.key.instance << "]" << dendl;
       m[name] = std::move(dirent);
       ldout(cct, 10) << "RGWRados::" << __func__ << ": got " <<
        dirent.key.name << "[" << dirent.key.instance << "]" << dendl;
       m[name] = std::move(dirent);
+      last_entry_visited = &(m[name]);
       ++count;
     } else {
       ldout(cct, 10) << "RGWRados::" << __func__ << ": skipping " <<
        dirent.key.name << "[" << dirent.key.instance << "]" << dendl;
       ++count;
     } else {
       ldout(cct, 10) << "RGWRados::" << __func__ << ": skipping " <<
        dirent.key.name << "[" << dirent.key.instance << "]" << dendl;
+      last_entry_visited = &tracker.dir_entry();
     }
 
     // refresh the candidates map
     }
 
     // refresh the candidates map
@@ -8432,8 +8438,7 @@ int RGWRados::cls_bucket_list_ordered(RGWBucketInfo& bucket_info,
   }
 
   if (last_entry_visited != nullptr && last_entry) {
   }
 
   if (last_entry_visited != nullptr && last_entry) {
-    // since we'll not need this any more, might as well move it...
-    *last_entry = std::move(last_entry_visited->key);
+    *last_entry = last_entry_visited->key;
     ldout(cct, 20) << "RGWRados::" << __func__ <<
       ": returning, last_entry=" << *last_entry << dendl;
   } else {
     ldout(cct, 20) << "RGWRados::" << __func__ <<
       ": returning, last_entry=" << *last_entry << dendl;
   } else {
index 6270ee67599563a330599ceb45eee1b57acaa92f..8cefbf1a4880da8e4707e68cb4d1964b4e7b66bd 100644 (file)
@@ -4,6 +4,8 @@
 #ifndef CEPH_RGW_SWIFT_AUTH_H
 #define CEPH_RGW_SWIFT_AUTH_H
 
 #ifndef CEPH_RGW_SWIFT_AUTH_H
 #define CEPH_RGW_SWIFT_AUTH_H
 
+#include "rgw_common.h"
+#include "rgw_user.h"
 #include "rgw_op.h"
 #include "rgw_rest.h"
 #include "rgw_auth.h"
 #include "rgw_op.h"
 #include "rgw_rest.h"
 #include "rgw_auth.h"
@@ -142,6 +144,16 @@ public:
   }
 };
 
   }
 };
 
+/* SwiftAnonymous: applier. */
+class SwiftAnonymousApplier : public rgw::auth::LocalApplier {
+  public:
+    SwiftAnonymousApplier(CephContext* const cct,
+                          const RGWUserInfo& user_info)
+      : LocalApplier(cct, user_info, LocalApplier::NO_SUBUSER, boost::none) {
+      };
+    bool is_admin_of(const rgw_user& uid) const {return false;}
+    bool is_owner_of(const rgw_user& uid) const {return false;}
+};
 
 class SwiftAnonymousEngine : public rgw::auth::AnonymousEngine {
   const rgw::auth::TokenExtractor* const extractor;
 
 class SwiftAnonymousEngine : public rgw::auth::AnonymousEngine {
   const rgw::auth::TokenExtractor* const extractor;
@@ -152,7 +164,7 @@ class SwiftAnonymousEngine : public rgw::auth::AnonymousEngine {
 
 public:
   SwiftAnonymousEngine(CephContext* const cct,
 
 public:
   SwiftAnonymousEngine(CephContext* const cct,
-                       const rgw::auth::LocalApplier::Factory* const apl_factory,
+                       const SwiftAnonymousApplier::Factory* const apl_factory,
                        const rgw::auth::TokenExtractor* const extractor)
     : AnonymousEngine(cct, apl_factory),
       extractor(extractor) {
                        const rgw::auth::TokenExtractor* const extractor)
     : AnonymousEngine(cct, apl_factory),
       extractor(extractor) {
@@ -195,8 +207,11 @@ class DefaultStrategy : public rgw::auth::Strategy,
                              const req_state* const s,
                              acl_strategy_t&& extra_acl_strategy,
                              const rgw::auth::RemoteApplier::AuthInfo &info) const override {
                              const req_state* const s,
                              acl_strategy_t&& extra_acl_strategy,
                              const rgw::auth::RemoteApplier::AuthInfo &info) const override {
+    rgw_user user(s->account_name);
+    if (info.is_anon())
+      user = rgw_user(RGW_USER_ANON_ID);
     auto apl = \
     auto apl = \
-      rgw::auth::add_3rdparty(ctl, rgw_user(s->account_name),
+      rgw::auth::add_3rdparty(ctl, user,
         rgw::auth::add_sysreq(cct, ctl, s,
           rgw::auth::RemoteApplier(cct, ctl, std::move(extra_acl_strategy), info,
                                    implicit_tenant_context,
         rgw::auth::add_sysreq(cct, ctl, s,
           rgw::auth::RemoteApplier(cct, ctl, std::move(extra_acl_strategy), info,
                                    implicit_tenant_context,
@@ -210,8 +225,11 @@ class DefaultStrategy : public rgw::auth::Strategy,
                             const RGWUserInfo& user_info,
                             const std::string& subuser,
                             const boost::optional<uint32_t>& perm_mask) const override {
                             const RGWUserInfo& user_info,
                             const std::string& subuser,
                             const boost::optional<uint32_t>& perm_mask) const override {
+    rgw_user user(s->account_name);
+    if (user_info.user_id.compare(RGW_USER_ANON_ID) == 0)
+      user = rgw_user(user_info.user_id);
     auto apl = \
     auto apl = \
-      rgw::auth::add_3rdparty(ctl, rgw_user(s->account_name),
+      rgw::auth::add_3rdparty(ctl, user,
         rgw::auth::add_sysreq(cct, ctl, s,
           rgw::auth::LocalApplier(cct, user_info, subuser, perm_mask)));
     /* TODO(rzarzynski): replace with static_ptr. */
         rgw::auth::add_sysreq(cct, ctl, s,
           rgw::auth::LocalApplier(cct, user_info, subuser, perm_mask)));
     /* TODO(rzarzynski): replace with static_ptr. */
index 24c25378239ff909046045828ea87d881c0cb19f..58f7b5490538c36b26764047fdf606fe2a241c77 100644 (file)
@@ -14,32 +14,33 @@ namespace {
   const std::string schema_re = "([[:alpha:]]+:\\/\\/)";
   const std::string user_pass_re = "(([^:\\s]+):([^@\\s]+)@)?";
   const std::string host_port_re = "([[:alnum:].:-]+)";
   const std::string schema_re = "([[:alpha:]]+:\\/\\/)";
   const std::string user_pass_re = "(([^:\\s]+):([^@\\s]+)@)?";
   const std::string host_port_re = "([[:alnum:].:-]+)";
+  const std::string path_re = "(/[[:print:]]+)?";
 }
 
 bool parse_url_authority(const std::string& url, std::string& host, std::string& user, std::string& password) {
 }
 
 bool parse_url_authority(const std::string& url, std::string& host, std::string& user, std::string& password) {
-  const std::string re = schema_re + user_pass_re + host_port_re;
+  const std::string re = schema_re + user_pass_re + host_port_re + path_re;
   const std::regex url_regex(re, std::regex::icase);
   std::smatch url_match_result;
 
   if (std::regex_match(url, url_match_result, url_regex)) {
     host = url_match_result[HOST_GROUP_IDX];
   const std::regex url_regex(re, std::regex::icase);
   std::smatch url_match_result;
 
   if (std::regex_match(url, url_match_result, url_regex)) {
     host = url_match_result[HOST_GROUP_IDX];
-    user = url_match_result[USER_GROUP_IDX];  
+    user = url_match_result[USER_GROUP_IDX];
     password = url_match_result[PASSWORD_GROUP_IDX];
     password = url_match_result[PASSWORD_GROUP_IDX];
-       return true; 
+    return true;
   }
 
   return false;
 }
 
 bool parse_url_userinfo(const std::string& url, std::string& user, std::string& password) {
   }
 
   return false;
 }
 
 bool parse_url_userinfo(const std::string& url, std::string& user, std::string& password) {
-  const std::string re = schema_re + user_pass_re + host_port_re;
+  const std::string re = schema_re + user_pass_re + host_port_re + path_re;
   const std::regex url_regex(re);
   std::smatch url_match_result;
 
   if (std::regex_match(url, url_match_result, url_regex)) {
   const std::regex url_regex(re);
   std::smatch url_match_result;
 
   if (std::regex_match(url, url_match_result, url_regex)) {
-    user = url_match_result[USER_GROUP_IDX];  
+    user = url_match_result[USER_GROUP_IDX];
     password = url_match_result[PASSWORD_GROUP_IDX];
     password = url_match_result[PASSWORD_GROUP_IDX];
-       return true; 
+    return true;
   }
 
   return false;
   }
 
   return false;
index 925a2d25e069975dc50545b31076e6331d391643..f2424990e550a9b85e4115477214487df2341c67 100644 (file)
@@ -16,6 +16,8 @@
 
 #pragma once
 
 
 #pragma once
 
+#include <iomanip>
+
 #include "rgw/rgw_service.h"
 
 #include "svc_rados.h"
 #include "rgw/rgw_service.h"
 
 #include "svc_rados.h"
@@ -54,7 +56,7 @@ public:
     s.append(buf);
     return s;
   }
     s.append(buf);
     return s;
   }
-  string get_part(string& part) const {
+  string get_part(const string& part) const {
     string s = prefix;
     s.append(".");
     s.append(part);
     string s = prefix;
     s.append(".");
     s.append(part);
@@ -66,7 +68,7 @@ public:
   const string& get_key() const {
     return oid;
   }
   const string& get_key() const {
     return oid;
   }
-  bool from_meta(string& meta) {
+  bool from_meta(const string& meta) {
     int end_pos = meta.rfind('.'); // search for ".meta"
     if (end_pos < 0)
       return false;
     int end_pos = meta.rfind('.'); // search for ".meta"
     if (end_pos < 0)
       return false;
@@ -84,6 +86,10 @@ public:
     meta = "";
     upload_id = "";
   }
     meta = "";
     upload_id = "";
   }
+  friend std::ostream& operator<<(std::ostream& out, const RGWMPObj& obj) {
+    return out << "RGWMPObj:{ prefix=" << std::quoted(obj.prefix) <<
+      ", meta=" << std::quoted(obj.meta) << " }";
+  }
 }; // class RGWMPObj
 
 /**
 }; // class RGWMPObj
 
 /**
index d89a02eadc05802e43b86d3f24e53efd59a14b0c..04671bb323250bc832c196e16f13ae28eaaa0708 100644 (file)
@@ -115,6 +115,10 @@ int RGWSI_User_RADOS::read_user_info(RGWSI_MetaBackend::Context *ctx,
                                map<string, bufferlist> * const pattrs,
                                optional_yield y)
 {
                                map<string, bufferlist> * const pattrs,
                                optional_yield y)
 {
+  if(user.id == RGW_USER_ANON_ID) {
+    ldout(svc.meta_be->ctx(), 20) << "RGWSI_User_RADOS::read_user_info(): anonymous user" << dendl;
+    return -ENOENT;
+  }
   bufferlist bl;
   RGWUID user_id;
 
   bufferlist bl;
   RGWUID user_id;
 
@@ -738,7 +742,11 @@ int RGWSI_User_RADOS::list_buckets(RGWSI_MetaBackend::Context *ctx,
   int ret;
 
   buckets->clear();
   int ret;
 
   buckets->clear();
-  
+   if (user.id == RGW_USER_ANON_ID) {
+    ldout(cct, 20) << "RGWSI_User_RADOS::list_buckets(): anonymous user" << dendl;
+    *is_truncated = false;
+    return 0;
+  } 
   rgw_raw_obj obj = get_buckets_obj(user);
 
   bool truncated = false;
   rgw_raw_obj obj = get_buckets_obj(user);
 
   bool truncated = false;
index 753444da16a105287ce60e0d0ec30bdb3093b48f..8c35bece6389ff542d892221e295302dfefc0668 100644 (file)
@@ -127,7 +127,7 @@ public:
     Status s;
     int r = _io_ctx->read(_fid, buffer, n, _offset);
     if (r >= 0) {
     Status s;
     int r = _io_ctx->read(_fid, buffer, n, _offset);
     if (r >= 0) {
-      buffer.copy(0, r, scratch);
+      buffer.begin().copy(r, scratch);
       *result = Slice(scratch, r);
       _offset += r;
       s = Status::OK();
       *result = Slice(scratch, r);
       _offset += r;
       s = Status::OK();
@@ -205,7 +205,7 @@ public:
     Status s;
     int r = _io_ctx->read(_fid, buffer, n, offset);
     if (r >= 0) {
     Status s;
     int r = _io_ctx->read(_fid, buffer, n, offset);
     if (r >= 0) {
-      buffer.copy(0, r, scratch);
+      buffer.begin().copy(r, scratch);
       *result = Slice(scratch, r);
       s = Status::OK();
     } else {
       *result = Slice(scratch, r);
       s = Status::OK();
     } else {
index 4f2e1bfc85e0bc3050ab9d03940ecb2ce6f26e2c..27c01c4ddaa7cb8b781fb7b55be03333b46d2dca 100644 (file)
@@ -31,6 +31,7 @@
     bucket rewrite             rewrite all objects in the specified bucket
     bucket sync disable        disable bucket sync
     bucket sync enable         enable bucket sync
     bucket rewrite             rewrite all objects in the specified bucket
     bucket sync disable        disable bucket sync
     bucket sync enable         enable bucket sync
+    bucket radoslist           list rados objects backing bucket's objects
     bi get                     retrieve bucket index object entries
     bi put                     store bucket index object entries
     bi list                    list raw bucket index entries
     bi get                     retrieve bucket index object entries
     bi put                     store bucket index object entries
     bi list                    list raw bucket index entries
     datalog list               list data log
     datalog trim               trim data log
     datalog status             read data log status
     datalog list               list data log
     datalog trim               trim data log
     datalog status             read data log status
-    orphans find               init and run search for leaked rados objects (use job-id, pool)
-    orphans finish             clean up search for leaked rados objects
-    orphans list-jobs          list the current job-ids for orphans search
+    orphans find               deprecated -- init and run search for leaked rados objects (use job-id, pool)
+    orphans finish             deprecated -- clean up search for leaked rados objects
+    orphans list-jobs          deprecated -- list the current job-ids for orphans search
+                             * the three 'orphans' sub-commands are now deprecated; consider using the `rgw-orphan-list` tool
     role create                create a AWS role for use with STS
     role rm                    remove a role
     role get                   get a role
     role create                create a AWS role for use with STS
     role rm                    remove a role
     role get                   get a role
index 97028f15803b368e26cc8edf7735f9f5865a0614..babee0573f0849d4e07eaed182c6482e1f515ee2 100644 (file)
@@ -161,6 +161,50 @@ TEST_F(TestClsQueue, Dequeue)
   ASSERT_EQ(0, ioctx.operate(queue_name, &op));
 }
 
   ASSERT_EQ(0, ioctx.operate(queue_name, &op));
 }
 
+TEST_F(TestClsQueue, DequeueMarker)
+{
+  const std::string queue_name = "my-queue";
+  const uint64_t queue_size = 1024*1024;
+  librados::ObjectWriteOperation op;
+  op.create(true);
+  cls_queue_init(op, queue_name, queue_size);
+  ASSERT_EQ(0, ioctx.operate(queue_name, &op));
+
+  // test multiple enqueues
+  test_enqueue(queue_name, 10, 1000, 0);
+
+  const auto remove_elements = 1024;
+  const std::string marker;
+  bool truncated;
+  std::string end_marker;
+  std::vector<cls_queue_entry> entries;
+  auto ret = cls_queue_list_entries(ioctx, queue_name, marker, remove_elements, entries, &truncated, end_marker);
+  ASSERT_EQ(0, ret);
+  ASSERT_EQ(truncated, true);
+  cls_queue_marker after_deleted_marker;
+  // remove specific markers
+  for (const auto& entry : entries) {
+    cls_queue_marker marker;
+    marker.from_str(entry.marker.c_str());
+    ASSERT_EQ(marker.from_str(entry.marker.c_str()), 0);
+    if (marker.offset > 0 && marker.offset % 2 == 0) {
+      after_deleted_marker = marker;
+      cls_queue_remove_entries(op, marker.to_str()); 
+    }
+  }
+  ASSERT_EQ(0, ioctx.operate(queue_name, &op));
+  entries.clear();
+  ret = cls_queue_list_entries(ioctx, queue_name, marker, remove_elements, entries, &truncated, end_marker);
+  ASSERT_EQ(0, ret);
+  for (const auto& entry : entries) {
+    cls_queue_marker marker;
+    marker.from_str(entry.marker.c_str());
+    ASSERT_EQ(marker.from_str(entry.marker.c_str()), 0);
+    ASSERT_GE(marker.gen, after_deleted_marker.gen);    
+    ASSERT_GE(marker.offset, after_deleted_marker.offset);    
+  }
+}
+
 TEST_F(TestClsQueue, ListEmpty)
 {
   const std::string queue_name = "my-queue";
 TEST_F(TestClsQueue, ListEmpty)
 {
   const std::string queue_name = "my-queue";
index df47e74fff176805bb55555218efa6330df437a9..70ff64afdce7f944e86dcd53f394cc5c0a0cb3ee 100644 (file)
@@ -1,5 +1,4 @@
 if(${WITH_CEPHFS})
 if(${WITH_CEPHFS})
-
   # unittest_mds_types
   add_executable(unittest_mds_types
     mds_types.cc
   # unittest_mds_types
   add_executable(unittest_mds_types
     mds_types.cc
@@ -13,4 +12,9 @@ if(${WITH_CEPHFS})
   target_link_libraries(ceph_test_trim_caps ceph-common cephfs)
   install(TARGETS ceph_test_trim_caps DESTINATION ${CMAKE_INSTALL_BINDIR})
 
   target_link_libraries(ceph_test_trim_caps ceph-common cephfs)
   install(TARGETS ceph_test_trim_caps DESTINATION ${CMAKE_INSTALL_BINDIR})
 
+  add_executable(ceph_test_ino_release_cb
+    test_ino_release_cb.cc
+  )
+  target_link_libraries(ceph_test_ino_release_cb ceph-common cephfs)
+  install(TARGETS ceph_test_ino_release_cb DESTINATION ${CMAKE_INSTALL_BINDIR})
 endif(${WITH_CEPHFS})
 endif(${WITH_CEPHFS})
diff --git a/ceph/src/test/fs/test_ino_release_cb.cc b/ceph/src/test/fs/test_ino_release_cb.cc
new file mode 100644 (file)
index 0000000..4294698
--- /dev/null
@@ -0,0 +1,77 @@
+#include <string>
+#include <include/fs_types.h>
+#include <mds/mdstypes.h>
+#include <include/cephfs/libcephfs.h>
+
+#define MAX_CEPH_FILES 1000
+#define DIRNAME                "ino_release_cb"
+
+static volatile bool cb_done = false;
+
+static void cb(void *hdl, vinodeno_t vino)
+{
+       cb_done = true;
+}
+
+int main(int argc, char *argv[])
+{
+       inodeno_t inos[MAX_CEPH_FILES];
+       struct ceph_mount_info *cmount = NULL;
+
+       ceph_create(&cmount, "admin");
+       ceph_conf_read_file(cmount, NULL);
+       ceph_init(cmount);
+
+       int ret = ceph_mount(cmount, NULL);
+       assert(ret >= 0);
+       ret = ceph_mkdir(cmount, DIRNAME, 0755);
+       assert(ret >= 0);
+       ret = ceph_chdir(cmount, DIRNAME);
+       assert(ret >= 0);
+
+       /* Create a bunch of files, get their inode numbers and close them */
+       int i;
+       for (i = 0; i < MAX_CEPH_FILES; ++i) {
+               int fd;
+               struct ceph_statx stx;
+
+               string name = std::to_string(i);
+
+               fd = ceph_open(cmount, name.c_str(), O_RDWR|O_CREAT, 0644);
+               assert(fd >= 0);
+
+               ret = ceph_fstatx(cmount, fd, &stx, CEPH_STATX_INO, 0);
+               assert(ret >= 0);
+
+               inos[i] = stx.stx_ino;
+               ceph_close(cmount, fd);
+       }
+
+       /* Remount */
+       ceph_unmount(cmount);
+       ceph_release(cmount);
+       ceph_create(&cmount, "admin");
+       ceph_conf_read_file(cmount, NULL);
+       ceph_init(cmount);
+
+       struct ceph_client_callback_args args = { 0 };
+       args.ino_release_cb = cb;
+       ceph_ll_register_callbacks(cmount, &args);
+
+       ret = ceph_mount(cmount, NULL);
+       assert(ret >= 0);
+
+       Inode   *inodes[MAX_CEPH_FILES];
+
+       for (i = 0; i < MAX_CEPH_FILES; ++i) {
+               /* We can stop if we got a callback */
+               if (cb_done)
+                       break;
+
+               ret = ceph_ll_lookup_inode(cmount, inos[i], &inodes[i]);
+               assert(ret >= 0);
+       }
+
+       assert(cb_done);
+       return 0;
+}
index 704d7895b007456b37c4a5e37c5b291ce619b7e9..b36ec3e31f2ae8b6c0c77da93d0da2a601850d2f 100644 (file)
@@ -293,12 +293,6 @@ TEST_F(TestMockWatcher, ReregisterWatchBlacklist) {
   expect_aio_unwatch(mock_image_ctx, 0);
   expect_aio_watch(mock_image_ctx, -EBLACKLISTED);
 
   expect_aio_unwatch(mock_image_ctx, 0);
   expect_aio_watch(mock_image_ctx, -EBLACKLISTED);
 
-  C_SaferCond blacklist_ctx;
-  expect_aio_watch(mock_image_ctx, 0, [&blacklist_ctx]() {
-      blacklist_ctx.wait();
-    });
-  expect_aio_unwatch(mock_image_ctx, 0);
-
   C_SaferCond register_ctx;
   mock_image_watcher.register_watch(&register_ctx);
   ASSERT_TRUE(wait_for_watch(mock_image_ctx, 1));
   C_SaferCond register_ctx;
   mock_image_watcher.register_watch(&register_ctx);
   ASSERT_TRUE(wait_for_watch(mock_image_ctx, 1));
@@ -309,17 +303,11 @@ TEST_F(TestMockWatcher, ReregisterWatchBlacklist) {
 
   // wait for recovery unwatch/watch
   ASSERT_TRUE(wait_for_watch(mock_image_ctx, 2));
 
   // wait for recovery unwatch/watch
   ASSERT_TRUE(wait_for_watch(mock_image_ctx, 2));
-
   ASSERT_TRUE(mock_image_watcher.is_blacklisted());
   ASSERT_TRUE(mock_image_watcher.is_blacklisted());
-  blacklist_ctx.complete(0);
-
-  // wait for post-blacklist recovery watch
-  ASSERT_TRUE(wait_for_watch(mock_image_ctx, 1));
 
   C_SaferCond unregister_ctx;
   mock_image_watcher.unregister_watch(&unregister_ctx);
   ASSERT_EQ(0, unregister_ctx.wait());
 
   C_SaferCond unregister_ctx;
   mock_image_watcher.unregister_watch(&unregister_ctx);
   ASSERT_EQ(0, unregister_ctx.wait());
-  ASSERT_FALSE(mock_image_watcher.is_blacklisted());
 }
 
 TEST_F(TestMockWatcher, ReregisterUnwatchPendingUnregister) {
 }
 
 TEST_F(TestMockWatcher, ReregisterUnwatchPendingUnregister) {
index 78df70b4ac93723a539bdd1c85a0fd4a19e124aa..71277bc807e9027e55b5545a34a922b3b5c498d9 100644 (file)
@@ -326,7 +326,39 @@ TEST_P(AllocTest, test_alloc_bench_10_300)
   doOverwriteTest(capacity, prefill, overwrite);
 }
 
   doOverwriteTest(capacity, prefill, overwrite);
 }
 
+TEST_P(AllocTest, mempoolAccounting)
+{
+  uint64_t bytes = mempool::bluestore_alloc::allocated_bytes();
+  uint64_t items = mempool::bluestore_alloc::allocated_items();
+
+  uint64_t alloc_size = 4 * 1024;
+  uint64_t capacity = 512ll * 1024 * 1024 * 1024;
+  Allocator* alloc = Allocator::create(g_ceph_context, string(GetParam()),
+                                      capacity, alloc_size);
+  ASSERT_NE(alloc, nullptr);
+  alloc->init_add_free(0, capacity);
+
+  std::map<uint32_t, PExtentVector> all_allocs;
+  for (size_t i = 0; i < 10000; i++) {
+    PExtentVector tmp;
+    alloc->allocate(alloc_size, alloc_size, 0, 0, &tmp);
+    all_allocs[rand()] = tmp;
+    alloc->allocate(alloc_size, alloc_size, 0, 0, &tmp);
+    all_allocs[rand()] = tmp;
+
+    auto it = all_allocs.upper_bound(rand());
+    if (it != all_allocs.end()) {
+      alloc->release(it->second);
+      all_allocs.erase(it);
+    }
+  }
+
+  delete(alloc);
+  ASSERT_EQ(mempool::bluestore_alloc::allocated_bytes(), bytes);
+  ASSERT_EQ(mempool::bluestore_alloc::allocated_items(), items);
+}
+
 INSTANTIATE_TEST_SUITE_P(
   Allocator,
   AllocTest,
 INSTANTIATE_TEST_SUITE_P(
   Allocator,
   AllocTest,
-  ::testing::Values("stupid", "bitmap", "avl"));
+  ::testing::Values("stupid", "bitmap", "avl", "hybrid"));
index 2fbef1e92bf120c254aa799f9770021b6eb2787c..78e018b7a57e1a82a4f3a0c662526b442d5ba9ad 100644 (file)
@@ -14,7 +14,6 @@
 #include "include/Context.h"
 #include "os/bluestore/Allocator.h"
 
 #include "include/Context.h"
 #include "os/bluestore/Allocator.h"
 
-#include <boost/random/uniform_int.hpp>
 typedef boost::mt11213b gen_type;
 
 class AllocTest : public ::testing::TestWithParam<const char*> {
 typedef boost::mt11213b gen_type;
 
 class AllocTest : public ::testing::TestWithParam<const char*> {
@@ -264,11 +263,15 @@ TEST_P(AllocTest, test_alloc_fragmentation)
       EXPECT_EQ(0.0, alloc->get_fragmentation());
     }
   }
       EXPECT_EQ(0.0, alloc->get_fragmentation());
     }
   }
+  tmp.clear();
   EXPECT_EQ(-ENOSPC, alloc->allocate(want_size, alloc_unit, 0, 0, &tmp));
 
   if (GetParam() == string("avl")) {
     // AVL allocator uses a different allocating strategy
     GTEST_SKIP() << "skipping for AVL allocator";
   EXPECT_EQ(-ENOSPC, alloc->allocate(want_size, alloc_unit, 0, 0, &tmp));
 
   if (GetParam() == string("avl")) {
     // AVL allocator uses a different allocating strategy
     GTEST_SKIP() << "skipping for AVL allocator";
+  } else if (GetParam() == string("hybrid")) {
+    // AVL allocator uses a different allocating strategy
+    GTEST_SKIP() << "skipping for Hybrid allocator";
   }
 
   for (size_t i = 0; i < allocated.size(); i += 2)
   }
 
   for (size_t i = 0; i < allocated.size(); i += 2)
@@ -423,6 +426,7 @@ TEST_P(AllocTest, test_alloc_big2)
   EXPECT_EQ(need,
       alloc->allocate(need, mas, 0, &extents));
   need = block_size * blocks / 4; // 2GB
   EXPECT_EQ(need,
       alloc->allocate(need, mas, 0, &extents));
   need = block_size * blocks / 4; // 2GB
+  extents.clear();
   EXPECT_EQ(need,
       alloc->allocate(need, mas, 0, &extents));
   EXPECT_TRUE(extents[0].length > 0);
   EXPECT_EQ(need,
       alloc->allocate(need, mas, 0, &extents));
   EXPECT_TRUE(extents[0].length > 0);
@@ -446,7 +450,37 @@ TEST_P(AllocTest, test_alloc_big3)
   EXPECT_TRUE(extents[0].length > 0);
 }
 
   EXPECT_TRUE(extents[0].length > 0);
 }
 
+TEST_P(AllocTest, test_alloc_contiguous)
+{
+  int64_t block_size = 0x1000;
+  int64_t capacity = block_size * 1024 * 1024;
+
+  {
+    init_alloc(capacity, block_size);
+
+    alloc->init_add_free(0, capacity);
+    PExtentVector extents;
+    uint64_t need = 4 * block_size;
+    EXPECT_EQ(need,
+      alloc->allocate(need, need,
+        0, (int64_t)0, &extents));
+    EXPECT_EQ(1u, extents.size());
+    EXPECT_EQ(extents[0].offset, 0);
+    EXPECT_EQ(extents[0].length, 4 * block_size);
+
+    extents.clear();
+    EXPECT_EQ(need,
+      alloc->allocate(need, need,
+        0, (int64_t)0, &extents));
+    EXPECT_EQ(1u, extents.size());
+    EXPECT_EQ(extents[0].offset, 4 * block_size);
+    EXPECT_EQ(extents[0].length, 4 * block_size);
+  }
+
+  alloc->shutdown();
+}
+
 INSTANTIATE_TEST_SUITE_P(
   Allocator,
   AllocTest,
 INSTANTIATE_TEST_SUITE_P(
   Allocator,
   AllocTest,
-  ::testing::Values("stupid", "bitmap", "avl"));
+  ::testing::Values("stupid", "bitmap", "avl", "hybrid"));
index 67c50c082a2937217a101e0baa4ee3b8aa9ec72c..233baa46ebf748f90a18172551fa345e8da96e14 100644 (file)
@@ -112,6 +112,16 @@ if(WITH_BLUESTORE)
   set_target_properties(unittest_fastbmap_allocator PROPERTIES COMPILE_FLAGS
   "${UNITTEST_CXX_FLAGS}")
 
   set_target_properties(unittest_fastbmap_allocator PROPERTIES COMPILE_FLAGS
   "${UNITTEST_CXX_FLAGS}")
 
+  add_executable(unittest_hybrid_allocator
+    hybrid_allocator_test.cc
+    $<TARGET_OBJECTS:unit-main>
+    )
+  add_ceph_unittest(unittest_hybrid_allocator)
+  target_link_libraries(unittest_hybrid_allocator os global)
+
+  set_target_properties(unittest_hybrid_allocator PROPERTIES COMPILE_FLAGS
+  "${UNITTEST_CXX_FLAGS}")
+
   add_executable(unittest_alloc_aging EXCLUDE_FROM_ALL
     Allocator_aging_fragmentation.cc)
   target_link_libraries(unittest_alloc_aging os global GTest::Main)
   add_executable(unittest_alloc_aging EXCLUDE_FROM_ALL
     Allocator_aging_fragmentation.cc)
   target_link_libraries(unittest_alloc_aging os global GTest::Main)
@@ -129,6 +139,14 @@ if(WITH_BLUESTORE)
     )
   add_ceph_unittest(unittest_bluestore_types)
   target_link_libraries(unittest_bluestore_types os global)
     )
   add_ceph_unittest(unittest_bluestore_types)
   target_link_libraries(unittest_bluestore_types os global)
+
+  # unittest_bdev
+  add_executable(unittest_bdev
+    test_bdev.cc
+    )
+  add_ceph_unittest(unittest_bdev)
+  target_link_libraries(unittest_bdev os global)
+
 endif(WITH_BLUESTORE)
 
 # unittest_transaction
 endif(WITH_BLUESTORE)
 
 # unittest_transaction
index 14752422b29b3fcb69aaead2582b0e3f988a67b4..c3af73706569c8cd40f052ca8d81b2506134d391 100644 (file)
@@ -44,6 +44,14 @@ public:
   {
     _free_l2(r);
   }
   {
     _free_l2(r);
   }
+  void mark_free(uint64_t o, uint64_t len)
+  {
+    _mark_free(o, len);
+  }
+  void mark_allocated(uint64_t o, uint64_t len)
+  {
+    _mark_allocated(o, len);
+  }
 };
 
 const uint64_t _1m = 1024 * 1024;
 };
 
 const uint64_t _1m = 1024 * 1024;
@@ -931,3 +939,123 @@ TEST(TestAllocatorLevel01, test_4G_alloc_bug3)
       ASSERT_EQ(a4[1].length, 2048ull * _1m);
   }
 }
       ASSERT_EQ(a4[1].length, 2048ull * _1m);
   }
 }
+
+TEST(TestAllocatorLevel01, test_claim_free_l2)
+{
+  TestAllocatorLevel02 al2;
+  uint64_t num_l2_entries = 64;// *512;
+  uint64_t capacity = num_l2_entries * 256 * 512 * 4096;
+  al2.init(capacity, 0x1000);
+  std::cout << "Init L2" << std::endl;
+
+  uint64_t max_available = 0x20000;
+  al2.mark_allocated(max_available, capacity - max_available);
+
+  uint64_t allocated1 = 0;
+  interval_vector_t a1;
+  al2.allocate_l2(0x2000, 0x2000, &allocated1, &a1);
+  ASSERT_EQ(allocated1, 0x2000u);
+  ASSERT_EQ(a1[0].offset, 0u);
+  ASSERT_EQ(a1[0].length, 0x2000u);
+
+  uint64_t allocated2 = 0;
+  interval_vector_t a2;
+  al2.allocate_l2(0x2000, 0x2000, &allocated2, &a2);
+  ASSERT_EQ(allocated2, 0x2000u);
+  ASSERT_EQ(a2[0].offset, 0x2000u);
+  ASSERT_EQ(a2[0].length, 0x2000u);
+
+  uint64_t allocated3 = 0;
+  interval_vector_t a3;
+  al2.allocate_l2(0x3000, 0x3000, &allocated3, &a3);
+  ASSERT_EQ(allocated3, 0x3000u);
+  ASSERT_EQ(a3[0].offset, 0x4000u);
+  ASSERT_EQ(a3[0].length, 0x3000u);
+
+  al2.free_l2(a1);
+  al2.free_l2(a3);
+  ASSERT_EQ(max_available - 0x2000, al2.debug_get_free());
+
+  auto claimed = al2.claim_free_to_right(0x4000);
+  ASSERT_EQ(max_available - 0x4000u, claimed);
+  ASSERT_EQ(0x2000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x4000);
+  ASSERT_EQ(0, claimed);
+  ASSERT_EQ(0x2000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(0x2000);
+  ASSERT_EQ(0x2000u, claimed);
+  ASSERT_EQ(0, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(0x2000);
+  ASSERT_EQ(0, claimed);
+  ASSERT_EQ(0, al2.debug_get_free());
+
+
+  al2.mark_free(0x3000, 0x4000);
+  ASSERT_EQ(0x4000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x7000);
+  ASSERT_EQ(0, claimed);
+  ASSERT_EQ(0x4000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x6000);
+  ASSERT_EQ(0x1000, claimed);
+  ASSERT_EQ(0x3000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x6000);
+  ASSERT_EQ(0, claimed);
+  ASSERT_EQ(0x3000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(0x3000);
+  ASSERT_EQ(0u, claimed);
+  ASSERT_EQ(0x3000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(0x4000);
+  ASSERT_EQ(0x1000, claimed);
+  ASSERT_EQ(0x2000, al2.debug_get_free());
+
+  // extend allocator space up to 64M
+  auto max_available2 = 64 * 1024 * 1024;
+  al2.mark_free(max_available, max_available2 - max_available);
+  ASSERT_EQ(max_available2 - max_available + 0x2000, al2.debug_get_free());
+
+  // pin some allocations
+  al2.mark_allocated(0x400000 + 0x2000, 1000);
+  al2.mark_allocated(0x400000 + 0x5000, 1000);
+  al2.mark_allocated(0x400000 + 0x20000, 1000);
+  ASSERT_EQ(max_available2 - max_available - 0x1000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(0x403000);
+  ASSERT_EQ(0x0, claimed);
+
+  claimed = al2.claim_free_to_left(0x404000);
+  ASSERT_EQ(0x1000, claimed);
+  ASSERT_EQ(max_available2 - max_available - 0x2000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_left(max_available);
+  ASSERT_EQ(0, claimed);
+
+  claimed = al2.claim_free_to_left(0x400000);
+  ASSERT_EQ(0x3e0000, claimed);
+  ASSERT_EQ(max_available2 - max_available - 0x3e2000, al2.get_available());
+  ASSERT_EQ(max_available2 - max_available - 0x3e2000, al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x407000);
+  ASSERT_EQ(0x19000, claimed);
+  ASSERT_EQ(max_available2 - max_available - 0x3e2000 - 0x19000,
+    al2.get_available());
+  ASSERT_EQ(max_available2 - max_available - 0x3e2000 - 0x19000,
+    al2.debug_get_free());
+
+  claimed = al2.claim_free_to_right(0x407000);
+  ASSERT_EQ(0, claimed);
+
+  claimed = al2.claim_free_to_right(0x430000);
+  ASSERT_EQ(max_available2 - 0x430000, claimed);
+  ASSERT_EQ(0x15000,
+    al2.get_available());
+  ASSERT_EQ(0x15000,
+    al2.debug_get_free());
+}
diff --git a/ceph/src/test/objectstore/hybrid_allocator_test.cc b/ceph/src/test/objectstore/hybrid_allocator_test.cc
new file mode 100755 (executable)
index 0000000..e43d28b
--- /dev/null
@@ -0,0 +1,231 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#include <iostream>
+#include <gtest/gtest.h>
+
+#include "os/bluestore/HybridAllocator.h"
+
+class TestHybridAllocator : public HybridAllocator {
+public:
+  TestHybridAllocator(CephContext* cct,
+                      int64_t device_size,
+                      int64_t _block_size,
+                      uint64_t max_entries,
+      const std::string& name) :
+    HybridAllocator(cct, device_size, _block_size,
+      max_entries,
+      name) {
+  }
+
+  uint64_t get_bmap_free() {
+    return get_bmap() ? get_bmap()->get_free() : 0;
+  }
+  uint64_t get_avl_free() {
+    return AvlAllocator::get_free();
+  }
+};
+
+const uint64_t _1m = 1024 * 1024;
+const uint64_t _4m = 4 * 1024 * 1024;
+
+TEST(HybridAllocator, basic)
+{
+  {
+    uint64_t block_size = 0x1000;
+    uint64_t capacity = 0x10000 * _1m; // = 64GB
+    TestHybridAllocator ha(g_ceph_context, capacity, block_size,
+      4 * sizeof(range_seg_t), "test_hybrid_allocator");
+
+    ASSERT_EQ(0, ha.get_free());
+    ASSERT_EQ(0, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    ha.init_add_free(0, _4m);
+    ASSERT_EQ(_4m, ha.get_free());
+    ASSERT_EQ(_4m, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    ha.init_add_free(2 * _4m, _4m);
+    ASSERT_EQ(_4m * 2, ha.get_free());
+    ASSERT_EQ(_4m * 2, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    ha.init_add_free(100 * _4m, _4m);
+    ha.init_add_free(102 * _4m, _4m);
+
+    ASSERT_EQ(_4m * 4, ha.get_free());
+    ASSERT_EQ(_4m * 4, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    // next allocs will go to bitmap
+    ha.init_add_free(4 * _4m, _4m);
+    ASSERT_EQ(_4m * 5, ha.get_free());
+    ASSERT_EQ(_4m * 4, ha.get_avl_free());
+    ASSERT_EQ(_4m * 1, ha.get_bmap_free());
+
+    ha.init_add_free(6 * _4m, _4m);
+    ASSERT_EQ(_4m * 6, ha.get_free());
+    ASSERT_EQ(_4m * 4, ha.get_avl_free());
+    ASSERT_EQ(_4m * 2, ha.get_bmap_free());
+
+    // so we have 6x4M chunks, 4 chunks at AVL and 2 at bitmap
+
+    ha.init_rm_free(_1m, _1m); // take 1M from AVL
+    ASSERT_EQ(_1m * 23, ha.get_free());
+    ASSERT_EQ(_1m * 14, ha.get_avl_free());
+    ASSERT_EQ(_1m * 9, ha.get_bmap_free());
+
+    ha.init_rm_free(6 * _4m + _1m, _1m); // take 1M from bmap
+    ASSERT_EQ(_1m * 22, ha.get_free());
+    ASSERT_EQ(_1m * 14, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8, ha.get_bmap_free());
+
+    // so we have at avl: 2M~2M, 8M~4M, 400M~4M , 408M~4M
+    // and at bmap: 0~1M, 16M~1M, 18M~2M, 24~4M
+
+    PExtentVector extents;
+    // allocate 4K, to be served from bitmap
+    EXPECT_EQ(block_size, ha.allocate(block_size, block_size,
+      0, (int64_t)0, &extents));
+    ASSERT_EQ(1, extents.size());
+    ASSERT_EQ(0, extents[0].offset);
+
+    ASSERT_EQ(_1m * 14, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8 - block_size, ha.get_bmap_free());
+
+    interval_set<uint64_t> release_set;
+    // release 4K, to be returned to bitmap
+    release_set.insert(extents[0].offset, extents[0].length);
+    ha.release(release_set);
+
+    ASSERT_EQ(_1m * 14, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8, ha.get_bmap_free());
+    extents.clear();
+    release_set.clear();
+
+    // again we have at avl: 2M~2M, 8M~4M, 400M~4M , 408M~4M
+    // and at bmap: 0~1M, 16M~1M, 18M~2M, 24~4M
+
+    // add 12M~3M which will go to avl
+    ha.init_add_free(3 * _4m, 3 * _1m);
+    ASSERT_EQ(_1m * 17, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8, ha.get_bmap_free());
+
+
+    // add 15M~4K which will be appended to existing slot
+    ha.init_add_free(15 * _1m, 0x1000);
+    ASSERT_EQ(_1m * 17 + 0x1000, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8, ha.get_bmap_free());
+
+
+    // again we have at avl: 2M~2M, 8M~(7M+4K), 400M~4M , 408M~4M
+    // and at bmap: 0~1M, 16M~1M, 18M~2M, 24~4M
+
+    //some removals from bmap
+    ha.init_rm_free(28 * _1m - 0x1000, 0x1000);
+    ASSERT_EQ(_1m * 17 + 0x1000, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8 - 0x1000, ha.get_bmap_free());
+
+    ha.init_rm_free(24 * _1m + 0x1000, 0x1000);
+    ASSERT_EQ(_1m * 17 + 0x1000, ha.get_avl_free());
+    ASSERT_EQ(_1m * 8 - 0x2000, ha.get_bmap_free());
+
+    ha.init_rm_free(24 * _1m + 0x1000, _4m - 0x2000);
+    ASSERT_EQ(_1m * 17 + 0x1000, ha.get_avl_free());
+    ASSERT_EQ(_1m * 4, ha.get_bmap_free());
+
+    //4K removal from avl
+    ha.init_rm_free(15 * _1m, 0x1000);
+    ASSERT_EQ(_1m * 17, ha.get_avl_free());
+    ASSERT_EQ(_1m * 4, ha.get_bmap_free());
+
+    //remove highest 4Ms from avl
+    ha.init_rm_free(_1m * 400, _4m);
+    ha.init_rm_free(_1m * 408, _4m);
+    ASSERT_EQ(_1m * 9, ha.get_avl_free());
+    ASSERT_EQ(_1m * 4, ha.get_bmap_free());
+
+    // we have at avl: 2M~2M, 8M~7M
+    // and at bmap: 0~1M, 16M~1M, 18M~2M
+
+    // this will be merged with neighbors from bmap and go to avl
+    ha.init_add_free(17 * _1m, _1m);
+    ASSERT_EQ(_1m * 1, ha.get_bmap_free());
+    ASSERT_EQ(_1m * 13, ha.get_avl_free());
+
+    // we have at avl: 2M~2M, 8M~7M, 16M~4M
+    // and at bmap: 0~1M
+
+    // and now do some cutoffs from 0~1M span
+
+    //cut off 4K from bmap
+    ha.init_rm_free(0 * _1m, 0x1000);
+    ASSERT_EQ(_1m * 13, ha.get_avl_free());
+    ASSERT_EQ(_1m * 1 - 0x1000, ha.get_bmap_free());
+
+    //cut off 1M-4K from bmap
+    ha.init_rm_free(0 * _1m + 0x1000, _1m - 0x1000);
+    ASSERT_EQ(_1m * 13, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    //cut off 512K avl
+    ha.init_rm_free(17 * _1m + 0x1000, _1m / 2);
+    ASSERT_EQ(_1m * 13 - _1m / 2, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    //cut off the rest from avl
+    ha.init_rm_free(17 * _1m + 0x1000 + _1m / 2, _1m / 2);
+    ASSERT_EQ(_1m * 12, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+  }
+
+  {
+    uint64_t block_size = 0x1000;
+    uint64_t capacity = 0x10000 * _1m; // = 64GB
+    TestHybridAllocator ha(g_ceph_context, capacity, block_size,
+      4 * sizeof(range_seg_t), "test_hybrid_allocator");
+
+    ha.init_add_free(_1m, _1m);
+    ha.init_add_free(_1m * 3, _1m);
+    ha.init_add_free(_1m * 5, _1m);
+    ha.init_add_free(0x4000, 0x1000);
+
+    ASSERT_EQ(_1m * 3 + 0x1000, ha.get_free());
+    ASSERT_EQ(_1m * 3 + 0x1000, ha.get_avl_free());
+    ASSERT_EQ(0, ha.get_bmap_free());
+
+    // This will substitute chunk 0x4000~1000.
+    // Since new chunk insertion into into AvlAllocator:range_tree
+    // happens immediately before 0x4000~1000 chunk care should be taken
+    // to order operations properly and do not use already disposed iterator.
+    ha.init_add_free(0, 0x2000);
+
+    ASSERT_EQ(_1m * 3 + 0x3000, ha.get_free());
+    ASSERT_EQ(_1m * 3 + 0x2000, ha.get_avl_free());
+    ASSERT_EQ(0x1000, ha.get_bmap_free());
+  }
+}
+
+TEST(HybridAllocator, fragmentation)
+{
+  {
+    uint64_t block_size = 0x1000;
+    uint64_t capacity = 0x1000 * 0x1000; // = 16M
+    TestHybridAllocator ha(g_ceph_context, capacity, block_size,
+      4 * sizeof(range_seg_t), "test_hybrid_allocator");
+
+    ha.init_add_free(0, 0x2000);
+    ha.init_add_free(0x4000, 0x2000);
+    ha.init_add_free(0x8000, 0x2000);
+    ha.init_add_free(0xc000, 0x1000);
+
+    ASSERT_EQ(0.5, ha.get_fragmentation());
+
+    // this will got to bmap with fragmentation = 1
+    ha.init_add_free(0x10000, 0x1000);
+
+    // which results in the following total fragmentation
+    ASSERT_EQ(0.5 * 7 / 8 + 1.0 / 8, ha.get_fragmentation());
+  }
+}
diff --git a/ceph/src/test/objectstore/test_bdev.cc b/ceph/src/test/objectstore/test_bdev.cc
new file mode 100755 (executable)
index 0000000..09a5226
--- /dev/null
@@ -0,0 +1,111 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#include <stdio.h>
+#include <string.h>
+#include <iostream>
+#include <gtest/gtest.h>
+#include "global/global_init.h"
+#include "global/global_context.h"
+#include "common/ceph_context.h"
+#include "common/ceph_argparse.h"
+#include "include/stringify.h"
+#include "common/errno.h"
+
+#include "os/bluestore/BlockDevice.h"
+
+class TempBdev {
+public:
+  TempBdev(uint64_t size)
+    : path{get_temp_bdev(size)}
+  {}
+  ~TempBdev() {
+    rm_temp_bdev(path);
+  }
+  const std::string path;
+private:
+  static string get_temp_bdev(uint64_t size)
+  {
+    static int n = 0;
+    string fn = "ceph_test_bluefs.tmp.block." + stringify(getpid())
+      + "." + stringify(++n);
+    int fd = ::open(fn.c_str(), O_CREAT|O_RDWR|O_TRUNC, 0644);
+    ceph_assert(fd >= 0);
+    int r = ::ftruncate(fd, size);
+    ceph_assert(r >= 0);
+    ::close(fd);
+    return fn;
+  }
+  static void rm_temp_bdev(string f)
+  {
+    ::unlink(f.c_str());
+  }
+};
+
+TEST(KernelDevice, Ticket45337) {
+   // Large (>=2 GB) writes are incomplete when bluefs_buffered_io = true
+
+  uint64_t size = 1048576ull * 8192;
+  TempBdev bdev{ size };
+  
+  const bool buffered = true;
+
+  std::unique_ptr<BlockDevice> b(
+    BlockDevice::create(g_ceph_context, bdev.path, NULL, NULL,
+      [](void* handle, void* aio) {}, NULL));
+  bufferlist bl;
+  // writing a bit less than 4GB
+  for (auto i = 0; i < 4000; i++) {
+    string s(1048576, 'a' + (i % 28));
+    bl.append(s);
+  }
+  uint64_t magic_offs = bl.length();
+  string s(4086, 'z');
+  s += "0123456789";
+  bl.append(s);
+
+  {
+    int r = b->open(bdev.path);
+    if (r < 0) {
+      std::cerr << "open " << bdev.path << " failed" << std::endl;
+      return;
+    }
+  }
+  std::unique_ptr<IOContext> ioc(new IOContext(g_ceph_context, NULL));
+
+  auto r = b->aio_write(0, bl, ioc.get(), buffered);
+  ASSERT_EQ(r, 0);
+
+  if (ioc->has_pending_aios()) {
+    b->aio_submit(ioc.get());
+    ioc->aio_wait();
+  }
+
+  char outbuf[0x1000];
+  r = b->read_random(magic_offs, sizeof(outbuf), outbuf, buffered);
+  ASSERT_EQ(r, 0);
+  ASSERT_EQ(memcmp(s.c_str(), outbuf, sizeof(outbuf)), 0);
+
+  b->close();
+}
+
+int main(int argc, char **argv) {
+  vector<const char*> args;
+  argv_to_vec(argc, (const char **)argv, args);
+
+  map<string,string> defaults = {
+    { "debug_bdev", "1/20" }
+  };
+
+  auto cct = global_init(&defaults, args, CEPH_ENTITY_TYPE_CLIENT,
+                        CODE_ENVIRONMENT_UTILITY,
+                        CINIT_FLAG_NO_DEFAULT_CONFIG_FILE);
+  common_init_finish(g_ceph_context);
+  g_ceph_context->_conf.set_val(
+    "enable_experimental_unrecoverable_data_corrupting_features",
+    "*");
+  g_ceph_context->_conf.apply_changes(nullptr);
+
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
index f6e47950b501f4535c770500ddcfc17b39579044..7553439913bd1655a0e3dce029a6fc66ff21070c 100644 (file)
@@ -82,6 +82,7 @@ TEST(BlueFS, mkfs_mount) {
 TEST(BlueFS, mkfs_mount_duplicate_gift) {
   uint64_t size = 1048576 * 128;
   TempBdev bdev{ size };
 TEST(BlueFS, mkfs_mount_duplicate_gift) {
   uint64_t size = 1048576 * 128;
   TempBdev bdev{ size };
+  bluefs_extent_t dup_ext;
   {
     BlueFS fs(g_ceph_context);
     ASSERT_EQ(0, fs.add_block_device(BlueFS::BDEV_DB, bdev.path, false));
   {
     BlueFS fs(g_ceph_context);
     ASSERT_EQ(0, fs.add_block_device(BlueFS::BDEV_DB, bdev.path, false));
@@ -98,6 +99,9 @@ TEST(BlueFS, mkfs_mount_duplicate_gift) {
       h->append("bar", 3);
       h->append("baz", 3);
       fs.fsync(h);
       h->append("bar", 3);
       h->append("baz", 3);
       fs.fsync(h);
+      ceph_assert(h->file->fnode.extents.size() > 0);
+      dup_ext = h->file->fnode.extents[0];
+      ceph_assert(dup_ext.bdev == BlueFS::BDEV_DB);
       fs.close_writer(h);
     }
 
       fs.close_writer(h);
     }
 
@@ -109,7 +113,10 @@ TEST(BlueFS, mkfs_mount_duplicate_gift) {
     ASSERT_EQ(0, fs.add_block_device(BlueFS::BDEV_DB, bdev.path, false));
     ASSERT_EQ(0, fs.mount());
     // free allocation presumably allocated for file1 
     ASSERT_EQ(0, fs.add_block_device(BlueFS::BDEV_DB, bdev.path, false));
     ASSERT_EQ(0, fs.mount());
     // free allocation presumably allocated for file1 
-    fs.debug_inject_duplicate_gift(BlueFS::BDEV_DB, 5 * 1048576, 1048576);
+    std::cout << "duplicate extent: " << std::hex
+      << dup_ext.offset << "~" << dup_ext.length
+      << std::dec << std::endl;
+    fs.debug_inject_duplicate_gift(BlueFS::BDEV_DB, dup_ext.offset, dup_ext.length);
     {
       // overwrite file1 with file2 
       BlueFS::FileWriter *h;
     {
       // overwrite file1 with file2 
       BlueFS::FileWriter *h;
index b4b8e481fd1bd8c5fe50fe7eedb3d752e126fb5d..da811be305b884056e1e028f9a8d191ec5ea1555 100644 (file)
@@ -7,6 +7,7 @@
 #include "include/stringify.h"
 #include "common/ceph_time.h"
 #include "os/bluestore/BlueStore.h"
 #include "include/stringify.h"
 #include "common/ceph_time.h"
 #include "os/bluestore/BlueStore.h"
+#include "os/bluestore/AvlAllocator.h"
 #include "common/ceph_argparse.h"
 #include "global/global_init.h"
 #include "global/global_context.h"
 #include "common/ceph_argparse.h"
 #include "global/global_init.h"
 #include "global/global_context.h"
@@ -40,6 +41,7 @@ TEST(bluestore, sizeof) {
   P(boost::intrusive::unordered_set_base_hook<>);
   P(bufferlist);
   P(bufferptr);
   P(boost::intrusive::unordered_set_base_hook<>);
   P(bufferlist);
   P(bufferptr);
+  P(range_seg_t);
   cout << "map<uint64_t,uint64_t>\t" << sizeof(map<uint64_t,uint64_t>) << std::endl;
   cout << "map<char,char>\t" << sizeof(map<char,char>) << std::endl;
 }
   cout << "map<uint64_t,uint64_t>\t" << sizeof(map<uint64_t,uint64_t>) << std::endl;
   cout << "map<char,char>\t" << sizeof(map<char,char>) << std::endl;
 }
index 98d2a7051a382d644256da017d8c1987ecc26c23..ebec25652b5849588caff0d473d22025c2274f6d 100644 (file)
@@ -190,7 +190,7 @@ def check_default_params(format, order=None, features=None, stripe_count=None,
             feature_data_pool = 128
         image_name = get_temp_image_name()
         if exception is None:
             feature_data_pool = 128
         image_name = get_temp_image_name()
         if exception is None:
-            RBD().create(ioctx, image_name, IMG_SIZE)
+            RBD().create(ioctx, image_name, IMG_SIZE, old_format=(format == 1))
             try:
                 with Image(ioctx, image_name) as image:
                     eq(format == 1, image.old_format())
             try:
                 with Image(ioctx, image_name) as image:
                     eq(format == 1, image.old_format())
index 7e233b8d6f7334ef63b18d64a5c7fc730b1b812f..211216eeb941952e6659cce4f4d50917cb715eb5 100644 (file)
@@ -464,6 +464,15 @@ public:
     return 0;
   }
 
     return 0;
   }
 
+  void expect_local_journal_add_listener(
+      librbd::MockTestJournal& mock_local_journal,
+      librbd::journal::Listener** local_journal_listener) {
+    EXPECT_CALL(mock_local_journal, add_listener(_))
+      .WillOnce(SaveArg<0>(local_journal_listener));
+    expect_is_tag_owner(mock_local_journal, false);
+    expect_is_resync_requested(mock_local_journal, 0, false);
+  }
+
   int init_entry_replayer(MockReplayer& mock_replayer,
                           MockThreads& mock_threads,
                           MockReplayerListener& mock_replayer_listener,
   int init_entry_replayer(MockReplayer& mock_replayer,
                           MockThreads& mock_threads,
                           MockReplayerListener& mock_replayer_listener,
@@ -480,10 +489,8 @@ public:
                              {librbd::journal::MirrorPeerClientMeta{}}, 0);
     expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                  0);
                              {librbd::journal::MirrorPeerClientMeta{}}, 0);
     expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                  0);
-    EXPECT_CALL(mock_local_journal, add_listener(_))
-      .WillOnce(SaveArg<0>(local_journal_listener));
-    expect_is_tag_owner(mock_local_journal, false);
-    expect_is_resync_requested(mock_local_journal, 0, false);
+    expect_local_journal_add_listener(mock_local_journal,
+                                      local_journal_listener);
     EXPECT_CALL(mock_remote_journaler, start_live_replay(_, _))
       .WillOnce(SaveArg<0>(remote_replay_handler));
     expect_notification(mock_threads, mock_replayer_listener);
     EXPECT_CALL(mock_remote_journaler, start_live_replay(_, _))
       .WillOnce(SaveArg<0>(remote_replay_handler));
     expect_notification(mock_threads, mock_replayer_listener);
@@ -562,15 +569,13 @@ TEST_F(TestMockImageReplayerJournalReplayer, InitShutDown) {
                                         mock_local_journal_replay));
 }
 
                                         mock_local_journal_replay));
 }
 
-TEST_F(TestMockImageReplayerJournalReplayer, InitNoLocalJournal) {
+TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerError) {
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
   ::journal::MockJournaler mock_remote_journaler;
   MockReplayerListener mock_replayer_listener;
   MockThreads mock_threads{m_threads};
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
   ::journal::MockJournaler mock_remote_journaler;
   MockReplayerListener mock_replayer_listener;
   MockThreads mock_threads{m_threads};
-
-  mock_local_image_ctx.journal = nullptr;
   MockStateBuilder mock_state_builder(mock_local_image_ctx,
                                       mock_remote_journaler,
                                       {});
   MockStateBuilder mock_state_builder(mock_local_image_ctx,
                                       mock_remote_journaler,
                                       {});
@@ -582,6 +587,7 @@ TEST_F(TestMockImageReplayerJournalReplayer, InitNoLocalJournal) {
 
   InSequence seq;
 
 
   InSequence seq;
 
+  expect_init(mock_remote_journaler, -EINVAL);
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
 
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
 
@@ -590,7 +596,7 @@ TEST_F(TestMockImageReplayerJournalReplayer, InitNoLocalJournal) {
   ASSERT_EQ(-EINVAL, init_ctx.wait());
 }
 
   ASSERT_EQ(-EINVAL, init_ctx.wait());
 }
 
-TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerError) {
+TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerGetClientError) {
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
@@ -608,22 +614,28 @@ TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerError) {
 
   InSequence seq;
 
 
   InSequence seq;
 
-  expect_init(mock_remote_journaler, -EINVAL);
+  expect_init(mock_remote_journaler, 0);
+  EXPECT_CALL(mock_remote_journaler, add_listener(_));
+  expect_get_cached_client(mock_remote_journaler, "local mirror uuid", {},
+                           {librbd::journal::MirrorPeerClientMeta{}}, -EINVAL);
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
+  EXPECT_CALL(mock_remote_journaler, remove_listener(_));
 
   C_SaferCond init_ctx;
   mock_replayer.init(&init_ctx);
   ASSERT_EQ(-EINVAL, init_ctx.wait());
 }
 
 
   C_SaferCond init_ctx;
   mock_replayer.init(&init_ctx);
   ASSERT_EQ(-EINVAL, init_ctx.wait());
 }
 
-TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerGetClientError) {
+TEST_F(TestMockImageReplayerJournalReplayer, InitNoLocalJournal) {
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
   ::journal::MockJournaler mock_remote_journaler;
   MockReplayerListener mock_replayer_listener;
   MockThreads mock_threads{m_threads};
   librbd::MockTestJournal mock_local_journal;
   librbd::MockTestImageCtx mock_local_image_ctx{*m_local_image_ctx,
                                                 mock_local_journal};
   ::journal::MockJournaler mock_remote_journaler;
   MockReplayerListener mock_replayer_listener;
   MockThreads mock_threads{m_threads};
+
+  mock_local_image_ctx.journal = nullptr;
   MockStateBuilder mock_state_builder(mock_local_image_ctx,
                                       mock_remote_journaler,
                                       {});
   MockStateBuilder mock_state_builder(mock_local_image_ctx,
                                       mock_remote_journaler,
                                       {});
@@ -634,11 +646,11 @@ TEST_F(TestMockImageReplayerJournalReplayer, InitRemoteJournalerGetClientError)
   expect_work_queue_repeatedly(mock_threads);
 
   InSequence seq;
   expect_work_queue_repeatedly(mock_threads);
 
   InSequence seq;
-
   expect_init(mock_remote_journaler, 0);
   EXPECT_CALL(mock_remote_journaler, add_listener(_));
   expect_get_cached_client(mock_remote_journaler, "local mirror uuid", {},
   expect_init(mock_remote_journaler, 0);
   EXPECT_CALL(mock_remote_journaler, add_listener(_));
   expect_get_cached_client(mock_remote_journaler, "local mirror uuid", {},
-                           {librbd::journal::MirrorPeerClientMeta{}}, -EINVAL);
+                           {librbd::journal::MirrorPeerClientMeta{}}, 0);
+
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   EXPECT_CALL(mock_remote_journaler, remove_listener(_));
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   EXPECT_CALL(mock_remote_journaler, remove_listener(_));
@@ -1078,9 +1090,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, Replay) {
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
@@ -1088,12 +1103,14 @@ TEST_F(TestMockImageReplayerJournalReplayer, Replay) {
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   // the next event with preprocess
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, true, 0);
   expect_process(mock_local_journal_replay, 0, 0);
 
   // the next event with preprocess
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, true, 0);
   expect_process(mock_local_journal_replay, 0, 0);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
@@ -1154,9 +1171,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, DecodeError) {
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
@@ -1224,9 +1244,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, DelayedReplay) {
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   // replay_flush
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
 
@@ -1249,6 +1272,7 @@ TEST_F(TestMockImageReplayerJournalReplayer, DelayedReplay) {
             ReturnArg<1>()));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
             ReturnArg<1>()));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
@@ -1648,6 +1672,7 @@ TEST_F(TestMockImageReplayerJournalReplayer, ReplayFlushShutDownError) {
 
   expect_try_pop_front(mock_remote_journaler, 1, true);
   expect_shut_down(mock_local_journal_replay, false, -EINVAL);
 
   expect_try_pop_front(mock_remote_journaler, 1, true);
   expect_shut_down(mock_local_journal_replay, false, -EINVAL);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_notification(mock_threads, mock_replayer_listener);
   remote_replay_handler->handle_entries_available();
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_notification(mock_threads, mock_replayer_listener);
   remote_replay_handler->handle_entries_available();
@@ -1655,7 +1680,6 @@ TEST_F(TestMockImageReplayerJournalReplayer, ReplayFlushShutDownError) {
   wait_for_notification();
   ASSERT_EQ(-EINVAL, mock_replayer.get_error_code());
 
   wait_for_notification();
   ASSERT_EQ(-EINVAL, mock_replayer.get_error_code());
 
-  EXPECT_CALL(mock_local_journal, remove_listener(_));
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   expect_stop_replay(mock_remote_journaler, 0);
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   expect_stop_replay(mock_remote_journaler, 0);
@@ -1702,6 +1726,7 @@ TEST_F(TestMockImageReplayerJournalReplayer, ReplayFlushStartError) {
 
   expect_try_pop_front(mock_remote_journaler, 1, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, 1, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, nullptr, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, nullptr, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
@@ -1710,7 +1735,6 @@ TEST_F(TestMockImageReplayerJournalReplayer, ReplayFlushStartError) {
   wait_for_notification();
   ASSERT_EQ(-EINVAL, mock_replayer.get_error_code());
 
   wait_for_notification();
   ASSERT_EQ(-EINVAL, mock_replayer.get_error_code());
 
-  EXPECT_CALL(mock_local_journal, remove_listener(_));
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   expect_stop_replay(mock_remote_journaler, 0);
   MockCloseImageRequest mock_close_image_request;
   expect_send(mock_close_image_request, 0);
   expect_stop_replay(mock_remote_journaler, 0);
@@ -1761,9 +1785,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, GetTagError) {
                             true, 0, 0})};
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
                             true, 0, 0})};
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
   remote_replay_handler->handle_entries_available();
   expect_get_tag(mock_remote_journaler, tag, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
   remote_replay_handler->handle_entries_available();
@@ -1821,15 +1848,19 @@ TEST_F(TestMockImageReplayerJournalReplayer, AllocateTagDemotion) {
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_get_tag_data(mock_local_journal, {});
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_get_tag_data(mock_local_journal, {});
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   remote_replay_handler->handle_entries_available();
   wait_for_notification();
 
   remote_replay_handler->handle_entries_available();
   wait_for_notification();
@@ -1883,9 +1914,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, AllocateTagError) {
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, -EINVAL);
   expect_notification(mock_threads, mock_replayer_listener);
@@ -1943,9 +1977,12 @@ TEST_F(TestMockImageReplayerJournalReplayer, PreprocessError) {
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_replay_entry, get_data());
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_replay_entry, get_data());
@@ -2008,15 +2045,19 @@ TEST_F(TestMockImageReplayerJournalReplayer, ProcessError) {
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_replay_entry, get_data());
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, -EINVAL);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_replay_entry, get_data());
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, -EINVAL);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
@@ -2081,14 +2122,18 @@ TEST_F(TestMockImageReplayerJournalReplayer, ImageNameUpdated) {
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
 
   expect_try_pop_front(mock_remote_journaler, tag.tid, true);
   expect_shut_down(mock_local_journal_replay, false, 0);
+  EXPECT_CALL(mock_local_journal, remove_listener(_));
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
   EXPECT_CALL(mock_local_journal, stop_external_replay());
   expect_start_external_replay(mock_local_journal, &mock_local_journal_replay,
                                0);
+  expect_local_journal_add_listener(mock_local_journal,
+                                    &local_journal_listener);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
   expect_get_tag(mock_remote_journaler, tag, 0);
   expect_allocate_tag(mock_local_journal, 0);
   EXPECT_CALL(mock_local_journal_replay, decode(_, _)).WillOnce(Return(0));
   expect_preprocess(mock_event_preprocessor, false, 0);
   expect_process(mock_local_journal_replay, 0, 0);
+  EXPECT_CALL(mock_replay_status_formatter, handle_entry_processed(_));
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
 
   // attempt to process the next event
   C_SaferCond replay_ctx;
index 08a87d6bc568e27f180ed9f5b79cae374ee7310f..29b1db182a50d80810ebd03de6ff33bfcc503cee 100644 (file)
@@ -196,3 +196,6 @@ target_link_libraries(unittest_rgw_url ${rgw_libs})
 add_executable(ceph_test_rgw_gc_log test_rgw_gc_log.cc $<TARGET_OBJECTS:unit-main>)
 target_link_libraries(ceph_test_rgw_gc_log ${rgw_libs} radostest-cxx)
 install(TARGETS ceph_test_rgw_gc_log DESTINATION ${CMAKE_INSTALL_BINDIR})
 add_executable(ceph_test_rgw_gc_log test_rgw_gc_log.cc $<TARGET_OBJECTS:unit-main>)
 target_link_libraries(ceph_test_rgw_gc_log ${rgw_libs} radostest-cxx)
 install(TARGETS ceph_test_rgw_gc_log DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+add_ceph_test(test-ceph-diff-sorted.sh
+  ${CMAKE_CURRENT_SOURCE_DIR}/test-ceph-diff-sorted.sh)
index a0a53fe4d5f0eebdf8eccacb36e2d3cb6ba8c5b0..a79c42909b16f7fabfed0e3242fecc9c8f0feb7a 100644 (file)
@@ -72,8 +72,7 @@ class SystemObject:
         data and retcode """
         s, r = self.command(cluster, cmd, args or [], **kwargs)
         if r == 0:
         data and retcode """
         s, r = self.command(cluster, cmd, args or [], **kwargs)
         if r == 0:
-            output = s.decode('utf-8')
-            output = output[output.find('{'):] # trim extra output before json
+            output = s[s.find('{'):] # trim extra output before json
             data = json.loads(output)
             self.load_from_json(data)
             self.data = data
             data = json.loads(output)
             self.load_from_json(data)
             self.data = data
index 598356dff0e12ea06efa5a50aa110a5dbb152cc2..018aa4bd4ec48b6c4e33948b2bf069af7f085e61 100644 (file)
@@ -12,6 +12,7 @@ except ImportError:
     from itertools import zip_longest
 from itertools import combinations
 from six import StringIO
     from itertools import zip_longest
 from itertools import combinations
 from six import StringIO
+from six.moves import range
 
 import boto
 import boto.s3.connection
 
 import boto
 import boto.s3.connection
@@ -77,7 +78,6 @@ def mdlog_list(zone, period = None):
     if period:
         cmd += ['--period', period]
     (mdlog_json, _) = zone.cluster.admin(cmd, read_only=True)
     if period:
         cmd += ['--period', period]
     (mdlog_json, _) = zone.cluster.admin(cmd, read_only=True)
-    mdlog_json = mdlog_json.decode('utf-8')
     return json.loads(mdlog_json)
 
 def mdlog_autotrim(zone):
     return json.loads(mdlog_json)
 
 def mdlog_autotrim(zone):
@@ -86,7 +86,6 @@ def mdlog_autotrim(zone):
 def datalog_list(zone, period = None):
     cmd = ['datalog', 'list']
     (datalog_json, _) = zone.cluster.admin(cmd, read_only=True)
 def datalog_list(zone, period = None):
     cmd = ['datalog', 'list']
     (datalog_json, _) = zone.cluster.admin(cmd, read_only=True)
-    datalog_json = datalog_json.decode('utf-8')
     return json.loads(datalog_json)
 
 def datalog_autotrim(zone):
     return json.loads(datalog_json)
 
 def datalog_autotrim(zone):
@@ -96,14 +95,12 @@ def bilog_list(zone, bucket, args = None):
     cmd = ['bilog', 'list', '--bucket', bucket] + (args or [])
     cmd += ['--tenant', config.tenant, '--uid', user.name] if config.tenant else []
     bilog, _ = zone.cluster.admin(cmd, read_only=True)
     cmd = ['bilog', 'list', '--bucket', bucket] + (args or [])
     cmd += ['--tenant', config.tenant, '--uid', user.name] if config.tenant else []
     bilog, _ = zone.cluster.admin(cmd, read_only=True)
-    bilog = bilog.decode('utf-8')
     return json.loads(bilog)
 
 def bilog_autotrim(zone, args = None):
     zone.cluster.admin(['bilog', 'autotrim'] + (args or []))
 
 def parse_meta_sync_status(meta_sync_status_json):
     return json.loads(bilog)
 
 def bilog_autotrim(zone, args = None):
     zone.cluster.admin(['bilog', 'autotrim'] + (args or []))
 
 def parse_meta_sync_status(meta_sync_status_json):
-    meta_sync_status_json = meta_sync_status_json.decode('utf-8')
     log.debug('current meta sync status=%s', meta_sync_status_json)
     sync_status = json.loads(meta_sync_status_json)
 
     log.debug('current meta sync status=%s', meta_sync_status_json)
     sync_status = json.loads(meta_sync_status_json)
 
@@ -141,7 +138,7 @@ def meta_sync_status(zone):
 def meta_master_log_status(master_zone):
     cmd = ['mdlog', 'status'] + master_zone.zone_args()
     mdlog_status_json, retcode = master_zone.cluster.admin(cmd, read_only=True)
 def meta_master_log_status(master_zone):
     cmd = ['mdlog', 'status'] + master_zone.zone_args()
     mdlog_status_json, retcode = master_zone.cluster.admin(cmd, read_only=True)
-    mdlog_status = json.loads(mdlog_status_json.decode('utf-8'))
+    mdlog_status = json.loads(mdlog_status_json)
 
     markers = {i: s['marker'] for i, s in enumerate(mdlog_status)}
     log.debug('master meta markers=%s', markers)
 
     markers = {i: s['marker'] for i, s in enumerate(mdlog_status)}
     log.debug('master meta markers=%s', markers)
@@ -211,7 +208,6 @@ def realm_meta_checkpoint(realm):
         zonegroup_meta_checkpoint(zonegroup, meta_master_zone, master_status)
 
 def parse_data_sync_status(data_sync_status_json):
         zonegroup_meta_checkpoint(zonegroup, meta_master_zone, master_status)
 
 def parse_data_sync_status(data_sync_status_json):
-    data_sync_status_json = data_sync_status_json.decode('utf-8')
     log.debug('current data sync status=%s', data_sync_status_json)
     sync_status = json.loads(data_sync_status_json)
 
     log.debug('current data sync status=%s', data_sync_status_json)
     sync_status = json.loads(data_sync_status_json)
 
@@ -260,7 +256,6 @@ def bucket_sync_status(target_zone, source_zone, bucket_name):
 
         assert(retcode == 2) # ENOENT
 
 
         assert(retcode == 2) # ENOENT
 
-    bucket_sync_status_json = bucket_sync_status_json.decode('utf-8')
     sync_status = json.loads(bucket_sync_status_json)
 
     markers={}
     sync_status = json.loads(bucket_sync_status_json)
 
     markers={}
@@ -275,7 +270,7 @@ def data_source_log_status(source_zone):
     source_cluster = source_zone.cluster
     cmd = ['datalog', 'status'] + source_zone.zone_args()
     datalog_status_json, retcode = source_cluster.admin(cmd, read_only=True)
     source_cluster = source_zone.cluster
     cmd = ['datalog', 'status'] + source_zone.zone_args()
     datalog_status_json, retcode = source_cluster.admin(cmd, read_only=True)
-    datalog_status = json.loads(datalog_status_json.decode('utf-8'))
+    datalog_status = json.loads(datalog_status_json)
 
     markers = {i: s['marker'] for i, s in enumerate(datalog_status)}
     log.debug('data markers for zone=%s markers=%s', source_zone.name, markers)
 
     markers = {i: s['marker'] for i, s in enumerate(datalog_status)}
     log.debug('data markers for zone=%s markers=%s', source_zone.name, markers)
@@ -287,7 +282,7 @@ def bucket_source_log_status(source_zone, bucket_name):
     cmd += ['--tenant', config.tenant, '--uid', user.name] if config.tenant else []
     source_cluster = source_zone.cluster
     bilog_status_json, retcode = source_cluster.admin(cmd, read_only=True)
     cmd += ['--tenant', config.tenant, '--uid', user.name] if config.tenant else []
     source_cluster = source_zone.cluster
     bilog_status_json, retcode = source_cluster.admin(cmd, read_only=True)
-    bilog_status = json.loads(bilog_status_json.decode('utf-8'))
+    bilog_status = json.loads(bilog_status_json)
 
     m={}
     markers={}
 
     m={}
     markers={}
@@ -503,7 +498,7 @@ def create_bucket_per_zone(zonegroup_conns, buckets_per_zone = 1):
     buckets = []
     zone_bucket = []
     for zone in zonegroup_conns.rw_zones:
     buckets = []
     zone_bucket = []
     for zone in zonegroup_conns.rw_zones:
-        for i in xrange(buckets_per_zone):
+        for i in range(buckets_per_zone):
             bucket_name = gen_bucket_name()
             log.info('create bucket zone=%s name=%s', zone.name, bucket_name)
             bucket = zone.create_bucket(bucket_name)
             bucket_name = gen_bucket_name()
             log.info('create bucket zone=%s name=%s', zone.name, bucket_name)
             bucket = zone.create_bucket(bucket_name)
@@ -1003,14 +998,14 @@ def test_multi_zone_redirect():
 
     key2 = bucket2.get_key(obj)
 
 
     key2 = bucket2.get_key(obj)
 
-    eq(data, key2.get_contents_as_string())
+    eq(data, key2.get_contents_as_string(encoding='ascii'))
 
     key = bucket.new_key(obj)
 
     for x in ['a', 'b', 'c', 'd']:
         data = x*512
         key.set_contents_from_string(data)
 
     key = bucket.new_key(obj)
 
     for x in ['a', 'b', 'c', 'd']:
         data = x*512
         key.set_contents_from_string(data)
-        eq(data, key2.get_contents_as_string())
+        eq(data, key2.get_contents_as_string(encoding='ascii'))
 
     # revert config changes
     set_sync_from_all(z2, True)
 
     # revert config changes
     set_sync_from_all(z2, True)
@@ -1098,7 +1093,7 @@ def test_set_bucket_policy():
     buckets, zone_bucket = create_bucket_per_zone_in_realm()
     for _, bucket in zone_bucket:
         bucket.set_policy(policy)
     buckets, zone_bucket = create_bucket_per_zone_in_realm()
     for _, bucket in zone_bucket:
         bucket.set_policy(policy)
-        assert(bucket.get_policy() == policy)
+        assert(bucket.get_policy().decode('ascii') == policy)
 
 def test_bucket_sync_disable():
     zonegroup = realm.master_zonegroup()
 
 def test_bucket_sync_disable():
     zonegroup = realm.master_zonegroup()
@@ -1244,10 +1239,10 @@ def test_encrypted_object_sync():
     # read the encrypted objects from the second zone
     bucket2 = get_bucket(zone2, bucket_name)
     key = bucket2.get_key('testobj-sse-c', headers=sse_c_headers)
     # read the encrypted objects from the second zone
     bucket2 = get_bucket(zone2, bucket_name)
     key = bucket2.get_key('testobj-sse-c', headers=sse_c_headers)
-    eq(data, key.get_contents_as_string(headers=sse_c_headers))
+    eq(data, key.get_contents_as_string(headers=sse_c_headers, encoding='ascii'))
 
     key = bucket2.get_key('testobj-sse-kms')
 
     key = bucket2.get_key('testobj-sse-kms')
-    eq(data, key.get_contents_as_string())
+    eq(data, key.get_contents_as_string(encoding='ascii'))
 
 def test_bucket_index_log_trim():
     zonegroup = realm.master_zonegroup()
 
 def test_bucket_index_log_trim():
     zonegroup = realm.master_zonegroup()
index 1a1434ae26ce9c1478dc5eac0a4cd966528447ab..13ec832a2041ca2d8486d8bae7736bf735d164ab 100644 (file)
@@ -221,7 +221,7 @@ def test_az_object_replication():
     # check object on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
     # check object on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
-    p1 = key_az.get_contents_as_string() == "bar"
+    p1 = key_az.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
 
 
     assert_equal(p1, True)
 
 
@@ -238,7 +238,7 @@ def test_az_object_replication_versioning():
     # check object content on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
     # check object content on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
-    p1 = key_az.get_contents_as_string() == "bar"
+    p1 = key_az.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
     # grab object versioning and etag
     for b_version in bucket.list_versions():
     assert_equal(p1, True)
     # grab object versioning and etag
     for b_version in bucket.list_versions():
@@ -345,13 +345,13 @@ def test_az_deleted_object_replication():
     bucket = zones[0].create_bucket(bucket_name)
     key = bucket.new_key("foo")
     key.set_contents_from_string("bar")
     bucket = zones[0].create_bucket(bucket_name)
     key = bucket.new_key("foo")
     key.set_contents_from_string("bar")
-    p1 = key.get_contents_as_string() == "bar"
+    p1 = key.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
     # update object on non archive zone
     key.set_contents_from_string("soup")
     assert_equal(p1, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
     # update object on non archive zone
     key.set_contents_from_string("soup")
-    p2 = key.get_contents_as_string() == "soup"
+    p2 = key.get_contents_as_string(encoding='ascii') == "soup"
     assert_equal(p2, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
     assert_equal(p2, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
@@ -367,7 +367,7 @@ def test_az_deleted_object_replication():
     key_az = bucket_az.get_key("foo")
     p4 = check_key_exists(key_az) == True
     assert_equal(p4, True)
     key_az = bucket_az.get_key("foo")
     p4 = check_key_exists(key_az) == True
     assert_equal(p4, True)
-    p5 = key_az.get_contents_as_string() == "soup"
+    p5 = key_az.get_contents_as_string(encoding='ascii') == "soup"
     assert_equal(p5, True)
     b_ver_az = get_versioned_objs(bucket_az)
     p6 = len(b_ver_az) == 2
     assert_equal(p5, True)
     b_ver_az = get_versioned_objs(bucket_az)
     p6 = len(b_ver_az) == 2
@@ -450,10 +450,10 @@ def test_az_old_object_version_in_archive_zone():
     assert_equal(p4, True)
     # check versioned objects on archive zone
     new_key_az = new_bucket_az.get_key("foo", version_id=obj_az_version_id)
     assert_equal(p4, True)
     # check versioned objects on archive zone
     new_key_az = new_bucket_az.get_key("foo", version_id=obj_az_version_id)
-    p5 = new_key_az.get_contents_as_string() == "zero"
+    p5 = new_key_az.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p5, True)
     new_key_latest_az = new_bucket_az.get_key("foo")
     assert_equal(p5, True)
     new_key_latest_az = new_bucket_az.get_key("foo")
-    p6 = new_key_latest_az.get_contents_as_string() == "one"
+    p6 = new_key_latest_az.get_contents_as_string(encoding='ascii') == "one"
     assert_equal(p6, True)
 
 
     assert_equal(p6, True)
 
 
@@ -589,9 +589,9 @@ def test_az_versioning_support_in_zones():
     # check body in zones
     obj_version_id = b_ver[0]['foo']['version_id']
     key = bucket.get_key("foo", version_id=obj_version_id)
     # check body in zones
     obj_version_id = b_ver[0]['foo']['version_id']
     key = bucket.get_key("foo", version_id=obj_version_id)
-    p18 = key.get_contents_as_string() == "zero"
+    p18 = key.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p18, True)
     obj_az_version_id = b_ver_az[0]['foo']['version_id']
     key_az = bucket_az.get_key("foo", version_id=obj_az_version_id)
     assert_equal(p18, True)
     obj_az_version_id = b_ver_az[0]['foo']['version_id']
     key_az = bucket_az.get_key("foo", version_id=obj_az_version_id)
-    p19 = key_az.get_contents_as_string() == "zero"
+    p19 = key_az.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p19, True)
     assert_equal(p19, True)
index bc9f67b73a079ca21e6fe8c19e3b26f8f1bdb005..1854c4cfedb02ac45bd303d9df4ffa04df7201e9 100644 (file)
@@ -8,10 +8,11 @@ import datetime
 import dateutil
 
 from nose.tools import eq_ as eq
 import dateutil
 
 from nose.tools import eq_ as eq
+from six.moves import range
 
 
-from rgw_multi.multisite import *
-from rgw_multi.tests import *
-from rgw_multi.zone_es import *
+from .multisite import *
+from .tests import *
+from .zone_es import *
 
 log = logging.getLogger(__name__)
 
 
 log = logging.getLogger(__name__)
 
@@ -77,7 +78,7 @@ def init_env(create_obj, num_keys = 5, buckets_per_zone = 1, bucket_init_cb = No
 
     # don't wait for meta sync just yet
     for zone, bucket in zone_bucket:
 
     # don't wait for meta sync just yet
     for zone, bucket in zone_bucket:
-        for count in xrange(0, num_keys):
+        for count in range(num_keys):
             objname = obj_prefix + str(count)
             k = new_key(zone, bucket.name, objname)
             # k.set_contents_from_string(content + 'x' * count)
             objname = obj_prefix + str(count)
             k = new_key(zone, bucket.name, objname)
             # k.set_contents_from_string(content + 'x' * count)
@@ -226,16 +227,16 @@ def test_es_object_search_custom():
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-date > ' + sval, lambda k: date_from_str(k.get_metadata('foo-date')) > val)
 
             # 'or' query
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-date > ' + sval, lambda k: date_from_str(k.get_metadata('foo-date')) > val)
 
             # 'or' query
-            for i in xrange(len(src_keys) / 2):
+            for i in range(len(src_keys) // 2):
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-str <= ' + str_vals[i] + ' or x-amz-meta-foo-str >= ' + str_vals[-i],
                         lambda k: k.get_metadata('foo-str') <= str_vals[i] or k.get_metadata('foo-str') >= str_vals[-i] )
 
             # 'and' query
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-str <= ' + str_vals[i] + ' or x-amz-meta-foo-str >= ' + str_vals[-i],
                         lambda k: k.get_metadata('foo-str') <= str_vals[i] or k.get_metadata('foo-str') >= str_vals[-i] )
 
             # 'and' query
-            for i in xrange(len(src_keys) / 2):
+            for i in range(len(src_keys) // 2):
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-str >= ' + str_vals[i] + ' and x-amz-meta-foo-str <= ' + str_vals[i + 1],
                         lambda k: k.get_metadata('foo-str') >= str_vals[i] and k.get_metadata('foo-str') <= str_vals[i + 1] )
             # more complicated query
                 do_check_mdsearch(target_conn.conn, bucket, src_keys , 'x-amz-meta-foo-str >= ' + str_vals[i] + ' and x-amz-meta-foo-str <= ' + str_vals[i + 1],
                         lambda k: k.get_metadata('foo-str') >= str_vals[i] and k.get_metadata('foo-str') <= str_vals[i + 1] )
             # more complicated query
-            for i in xrange(len(src_keys) / 2):
+            for i in range(len(src_keys) // 2):
                 do_check_mdsearch(target_conn.conn, None, src_keys , 'bucket == ' + bucket.name + ' and x-amz-meta-foo-str >= ' + str_vals[i] +
                                                                      ' and (x-amz-meta-foo-str <= ' + str_vals[i + 1] + ')',
                         lambda k: k.bucket.name == bucket.name and (k.get_metadata('foo-str') >= str_vals[i] and
                 do_check_mdsearch(target_conn.conn, None, src_keys , 'bucket == ' + bucket.name + ' and x-amz-meta-foo-str >= ' + str_vals[i] +
                                                                      ' and (x-amz-meta-foo-str <= ' + str_vals[i + 1] + ')',
                         lambda k: k.bucket.name == bucket.name and (k.get_metadata('foo-str') >= str_vals[i] and
index d827ed55f14ed892aba16f416234b749e10876b4..9f2dc27ce1e4db3c76943d7f6c486e08c1cdd605 100644 (file)
@@ -1,8 +1,7 @@
 import logging
 import json
 import tempfile
 import logging
 import json
 import tempfile
-import BaseHTTPServer
-import SocketServer
+from six.moves import BaseHTTPServer
 import random
 import threading
 import subprocess
 import random
 import threading
 import subprocess
@@ -31,7 +30,7 @@ from .zone_ps import PSTopic, \
     put_object_tagging, \
     get_object_tagging, \
     delete_all_objects
     put_object_tagging, \
     get_object_tagging, \
     delete_all_objects
-from multisite import User
+from .multisite import User
 from nose import SkipTest
 from nose.tools import assert_not_equal, assert_equal
 import boto.s3.tagging
 from nose import SkipTest
 from nose.tools import assert_not_equal, assert_equal
 import boto.s3.tagging
@@ -126,13 +125,13 @@ class StreamingHTTPServer:
         self.sock.listen(num_workers)
         self.workers = [HTTPServerThread(i, self.sock, addr) for i in range(num_workers)]
 
         self.sock.listen(num_workers)
         self.workers = [HTTPServerThread(i, self.sock, addr) for i in range(num_workers)]
 
-    def verify_s3_events(self, keys, exact_match=False, deletions=False):
+    def verify_s3_events(self, keys, exact_match=False, deletions=False, expected_sizes={}):
         """verify stored s3 records agains a list of keys"""
         events = []
         for worker in self.workers:
             events += worker.get_events()
             worker.reset_events()
         """verify stored s3 records agains a list of keys"""
         events = []
         for worker in self.workers:
             events += worker.get_events()
             worker.reset_events()
-        verify_s3_records_by_elements(events, keys, exact_match=exact_match, deletions=deletions)
+        verify_s3_records_by_elements(events, keys, exact_match=exact_match, deletions=deletions, expected_sizes=expected_sizes)
 
     def verify_events(self, keys, exact_match=False, deletions=False):
         """verify stored events agains a list of keys"""
 
     def verify_events(self, keys, exact_match=False, deletions=False):
         """verify stored events agains a list of keys"""
@@ -301,11 +300,12 @@ def verify_events_by_elements(events, keys, exact_match=False, deletions=False):
             assert False, err
 
 
             assert False, err
 
 
-def verify_s3_records_by_elements(records, keys, exact_match=False, deletions=False):
+def verify_s3_records_by_elements(records, keys, exact_match=False, deletions=False, expected_sizes={}):
     """ verify there is at least one record per element """
     err = ''
     for key in keys:
         key_found = False
     """ verify there is at least one record per element """
     err = ''
     for key in keys:
         key_found = False
+        object_size = 0
         if type(records) is list:
             for record_list in records:
                 if key_found:
         if type(records) is list:
             for record_list in records:
                 if key_found:
@@ -315,9 +315,11 @@ def verify_s3_records_by_elements(records, keys, exact_match=False, deletions=Fa
                         record['s3']['object']['key'] == key.name:
                         if deletions and 'ObjectRemoved' in record['eventName']:
                             key_found = True
                         record['s3']['object']['key'] == key.name:
                         if deletions and 'ObjectRemoved' in record['eventName']:
                             key_found = True
+                            object_size = record['s3']['object']['size']
                             break
                         elif not deletions and 'ObjectCreated' in record['eventName']:
                             key_found = True
                             break
                         elif not deletions and 'ObjectCreated' in record['eventName']:
                             key_found = True
+                            object_size = record['s3']['object']['size']
                             break
         else:
             for record in records['Records']:
                             break
         else:
             for record in records['Records']:
@@ -325,17 +327,18 @@ def verify_s3_records_by_elements(records, keys, exact_match=False, deletions=Fa
                     record['s3']['object']['key'] == key.name:
                     if deletions and 'ObjectRemoved' in record['eventName']:
                         key_found = True
                     record['s3']['object']['key'] == key.name:
                     if deletions and 'ObjectRemoved' in record['eventName']:
                         key_found = True
+                        object_size = record['s3']['object']['size']
                         break
                     elif not deletions and 'ObjectCreated' in record['eventName']:
                         key_found = True
                         break
                     elif not deletions and 'ObjectCreated' in record['eventName']:
                         key_found = True
+                        object_size = record['s3']['object']['size']
                         break
 
         if not key_found:
             err = 'no ' + ('deletion' if deletions else 'creation') + ' event found for key: ' + str(key)
                         break
 
         if not key_found:
             err = 'no ' + ('deletion' if deletions else 'creation') + ' event found for key: ' + str(key)
-            for record_list in records:
-                for record in record_list['Records']:
-                    log.error(str(record['s3']['bucket']['name']) + ',' + str(record['s3']['object']['key']))
             assert False, err
             assert False, err
+        elif expected_sizes:
+            assert_equal(object_size, expected_sizes.get(key.name))
 
     if not len(records) == len(keys):
         err = 'superfluous records are found'
 
     if not len(records) == len(keys):
         err = 'superfluous records are found'
@@ -836,7 +839,7 @@ def test_ps_s3_topic_on_master():
     delete_all_s3_topics(master_zone, zonegroup.name)
    
     # create s3 topics
     delete_all_s3_topics(master_zone, zonegroup.name)
    
     # create s3 topics
-    endpoint_address = 'amqp://127.0.0.1:7001'
+    endpoint_address = 'amqp://127.0.0.1:7001/vhost_1'
     endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=amqp.direct&amqp-ack-level=none'
     topic_conf1 = PSTopicS3(master_zone.conn, topic_name+'_1', zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf1.set_config()
     endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=amqp.direct&amqp-ack-level=none'
     topic_conf1 = PSTopicS3(master_zone.conn, topic_name+'_1', zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf1.set_config()
@@ -1372,7 +1375,7 @@ def test_ps_s3_notification_push_amqp_on_master():
     topic_conf1 = PSTopicS3(master_zone.conn, topic_name1, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn1 = topic_conf1.set_config()
     # without acks from broker
     topic_conf1 = PSTopicS3(master_zone.conn, topic_name1, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn1 = topic_conf1.set_config()
     # without acks from broker
-    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=none'
+    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=routable'
     topic_conf2 = PSTopicS3(master_zone.conn, topic_name2, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn2 = topic_conf2.set_config()
     # create s3 notification
     topic_conf2 = PSTopicS3(master_zone.conn, topic_name2, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn2 = topic_conf2.set_config()
     # create s3 notification
@@ -1725,7 +1728,7 @@ def test_ps_s3_notification_multi_delete_on_master():
     if skip_push_tests:
         return SkipTest("PubSub push tests don't run in teuthology")
     hostname = get_ip()
     if skip_push_tests:
         return SkipTest("PubSub push tests don't run in teuthology")
     hostname = get_ip()
-    zones, _  = init_env(require_ps=False)
+    master_zone, _  = init_env(require_ps=False)
     realm = get_realm()
     zonegroup = realm.master_zonegroup()
     
     realm = get_realm()
     zonegroup = realm.master_zonegroup()
     
@@ -1738,13 +1741,13 @@ def test_ps_s3_notification_multi_delete_on_master():
     
     # create bucket
     bucket_name = gen_bucket_name()
     
     # create bucket
     bucket_name = gen_bucket_name()
-    bucket = zones[0].create_bucket(bucket_name)
+    bucket = master_zone.create_bucket(bucket_name)
     topic_name = bucket_name + TOPIC_SUFFIX
 
     # create s3 topic
     endpoint_address = 'http://'+host+':'+str(port)
     endpoint_args = 'push-endpoint='+endpoint_address
     topic_name = bucket_name + TOPIC_SUFFIX
 
     # create s3 topic
     endpoint_address = 'http://'+host+':'+str(port)
     endpoint_args = 'push-endpoint='+endpoint_address
-    topic_conf = PSTopicS3(zones[0].conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
+    topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf.set_config()
     # create s3 notification
     notification_name = bucket_name + NOTIFICATION_SUFFIX
     topic_arn = topic_conf.set_config()
     # create s3 notification
     notification_name = bucket_name + NOTIFICATION_SUFFIX
@@ -1752,16 +1755,18 @@ def test_ps_s3_notification_multi_delete_on_master():
                         'TopicArn': topic_arn,
                         'Events': ['s3:ObjectRemoved:*']
                        }]
                         'TopicArn': topic_arn,
                         'Events': ['s3:ObjectRemoved:*']
                        }]
-    s3_notification_conf = PSNotificationS3(zones[0].conn, bucket_name, topic_conf_list)
+    s3_notification_conf = PSNotificationS3(master_zone.conn, bucket_name, topic_conf_list)
     response, status = s3_notification_conf.set_config()
     assert_equal(status/100, 2)
 
     # create objects in the bucket
     client_threads = []
     response, status = s3_notification_conf.set_config()
     assert_equal(status/100, 2)
 
     # create objects in the bucket
     client_threads = []
+    objects_size = {}
     for i in range(number_of_objects):
     for i in range(number_of_objects):
-        obj_size = randint(1, 1024)
-        content = str(os.urandom(obj_size))
+        object_size = randint(1, 1024)
+        content = str(os.urandom(object_size))
         key = bucket.new_key(str(i))
         key = bucket.new_key(str(i))
+        objects_size[key.name] = object_size
         thr = threading.Thread(target = set_contents_from_string, args=(key, content,))
         thr.start()
         client_threads.append(thr)
         thr = threading.Thread(target = set_contents_from_string, args=(key, content,))
         thr.start()
         client_threads.append(thr)
@@ -1770,21 +1775,21 @@ def test_ps_s3_notification_multi_delete_on_master():
     keys = list(bucket.list())
 
     start_time = time.time()
     keys = list(bucket.list())
 
     start_time = time.time()
-    delete_all_objects(zones[0].conn, bucket_name)
+    delete_all_objects(master_zone.conn, bucket_name)
     time_diff = time.time() - start_time
     print('average time for deletion + http notification is: ' + str(time_diff*1000/number_of_objects) + ' milliseconds')
 
     print('wait for 5sec for the messages...')
     time.sleep(5)
     time_diff = time.time() - start_time
     print('average time for deletion + http notification is: ' + str(time_diff*1000/number_of_objects) + ' milliseconds')
 
     print('wait for 5sec for the messages...')
     time.sleep(5)
-    
+   
     # check http receiver
     # check http receiver
-    http_server.verify_s3_events(keys, exact_match=True, deletions=True)
+    http_server.verify_s3_events(keys, exact_match=True, deletions=True, expected_sizes=objects_size)
     
     # cleanup
     topic_conf.del_config()
     s3_notification_conf.del_config(notification=notification_name)
     # delete the bucket
     
     # cleanup
     topic_conf.del_config()
     s3_notification_conf.del_config(notification=notification_name)
     # delete the bucket
-    zones[0].delete_bucket(bucket_name)
+    master_zone.delete_bucket(bucket_name)
     http_server.close()
 
 
     http_server.close()
 
 
@@ -1826,10 +1831,13 @@ def test_ps_s3_notification_push_http_on_master():
 
     # create objects in the bucket
     client_threads = []
 
     # create objects in the bucket
     client_threads = []
+    objects_size = {}
     start_time = time.time()
     start_time = time.time()
-    content = 'bar'
     for i in range(number_of_objects):
     for i in range(number_of_objects):
+        object_size = randint(1, 1024)
+        content = str(os.urandom(object_size))
         key = bucket.new_key(str(i))
         key = bucket.new_key(str(i))
+        objects_size[key.name] = object_size
         thr = threading.Thread(target = set_contents_from_string, args=(key, content,))
         thr.start()
         client_threads.append(thr)
         thr = threading.Thread(target = set_contents_from_string, args=(key, content,))
         thr.start()
         client_threads.append(thr)
@@ -1843,8 +1851,7 @@ def test_ps_s3_notification_push_http_on_master():
     
     # check http receiver
     keys = list(bucket.list())
     
     # check http receiver
     keys = list(bucket.list())
-    print('total number of objects: ' + str(len(keys)))
-    http_server.verify_s3_events(keys, exact_match=True)
+    http_server.verify_s3_events(keys, exact_match=True, deletions=False, expected_sizes=objects_size)
     
     # delete objects from the bucket
     client_threads = []
     
     # delete objects from the bucket
     client_threads = []
@@ -1862,7 +1869,7 @@ def test_ps_s3_notification_push_http_on_master():
     time.sleep(5)
     
     # check http receiver
     time.sleep(5)
     
     # check http receiver
-    http_server.verify_s3_events(keys, exact_match=True, deletions=True)
+    http_server.verify_s3_events(keys, exact_match=True, deletions=True, expected_sizes=objects_size)
     
     # cleanup
     topic_conf.del_config()
     
     # cleanup
     topic_conf.del_config()
@@ -2564,7 +2571,7 @@ def test_ps_creation_triggers():
     fp.write('bar')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart')
     fp.write('bar')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart')
-    fp = tempfile.TemporaryFile(mode='r')
+    fp = tempfile.NamedTemporaryFile(mode='r')
     uploader.upload_part_from_file(fp, 1)
     uploader.complete_upload()
     fp.close()
     uploader.upload_part_from_file(fp, 1)
     uploader.complete_upload()
     fp.close()
@@ -2635,7 +2642,7 @@ def test_ps_s3_creation_triggers_on_master():
     fp.write('bar')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart')
     fp.write('bar')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart')
-    fp = tempfile.TemporaryFile(mode='r')
+    fp = tempfile.NamedTemporaryFile(mode='r')
     uploader.upload_part_from_file(fp, 1)
     uploader.complete_upload()
     fp.close()
     uploader.upload_part_from_file(fp, 1)
     uploader.complete_upload()
     fp.close()
@@ -2710,8 +2717,9 @@ def test_ps_s3_multipart_on_master():
     assert_equal(status/100, 2)
 
     # create objects in the bucket using multi-part upload
     assert_equal(status/100, 2)
 
     # create objects in the bucket using multi-part upload
-    fp = tempfile.TemporaryFile(mode='w+b')
-    content = bytearray(os.urandom(1024*1024))
+    fp = tempfile.NamedTemporaryFile(mode='w+b')
+    object_size = 10*1024*1024
+    content = bytearray(os.urandom(object_size))
     fp.write(content)
     fp.flush()
     fp.seek(0)
     fp.write(content)
     fp.flush()
     fp.seek(0)
@@ -2736,6 +2744,7 @@ def test_ps_s3_multipart_on_master():
     assert_equal(len(events), 1)
     assert_equal(events[0]['Records'][0]['eventName'], 's3:ObjectCreated:CompleteMultipartUpload')
     assert_equal(events[0]['Records'][0]['s3']['configurationId'], notification_name+'_3')
     assert_equal(len(events), 1)
     assert_equal(events[0]['Records'][0]['eventName'], 's3:ObjectCreated:CompleteMultipartUpload')
     assert_equal(events[0]['Records'][0]['s3']['configurationId'], notification_name+'_3')
+    print(events[0]['Records'][0]['s3']['object']['size'])
 
     # cleanup
     stop_amqp_receiver(receiver1, task1)
 
     # cleanup
     stop_amqp_receiver(receiver1, task1)
@@ -2874,7 +2883,7 @@ def test_ps_s3_metadata_on_master():
 
     # create s3 topic
     endpoint_address = 'amqp://' + hostname
 
     # create s3 topic
     endpoint_address = 'amqp://' + hostname
-    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=broker'
+    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=routable'
     topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf.set_config()
     # create s3 notification
     topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf.set_config()
     # create s3 notification
@@ -2904,7 +2913,7 @@ def test_ps_s3_metadata_on_master():
     # create objects in the bucket using COPY
     bucket.copy_key('copy_of_foo', bucket.name, key.name)
     # create objects in the bucket using multi-part upload
     # create objects in the bucket using COPY
     bucket.copy_key('copy_of_foo', bucket.name, key.name)
     # create objects in the bucket using multi-part upload
-    fp = tempfile.TemporaryFile(mode='w')
+    fp = tempfile.NamedTemporaryFile(mode='w')
     fp.write('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart_foo', 
     fp.write('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
     fp.close()
     uploader = bucket.initiate_multipart_upload('multipart_foo', 
@@ -2975,7 +2984,7 @@ def test_ps_s3_tags_on_master():
 
     # create s3 topic
     endpoint_address = 'amqp://' + hostname
 
     # create s3 topic
     endpoint_address = 'amqp://' + hostname
-    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=broker'
+    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=routable'
     topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf.set_config()
     # create s3 notification
     topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
     topic_arn = topic_conf.set_config()
     # create s3 notification
@@ -3032,6 +3041,81 @@ def test_ps_s3_tags_on_master():
     clean_rabbitmq(proc)
 
 
     clean_rabbitmq(proc)
 
 
+def test_ps_s3_versioning_on_master():
+    """ test s3 notification of object versions """
+    if skip_push_tests:
+        return SkipTest("PubSub push tests don't run in teuthology")
+    hostname = get_ip()
+    proc = init_rabbitmq()
+    if proc is None:
+        return SkipTest('end2end amqp tests require rabbitmq-server installed')
+    master_zone, _ = init_env(require_ps=False)
+    realm = get_realm()
+    zonegroup = realm.master_zonegroup()
+
+    # create bucket
+    bucket_name = gen_bucket_name()
+    bucket = master_zone.create_bucket(bucket_name)
+    bucket.configure_versioning(True)
+    topic_name = bucket_name + TOPIC_SUFFIX
+
+    # start amqp receiver
+    exchange = 'ex1'
+    task, receiver = create_amqp_receiver_thread(exchange, topic_name)
+    task.start()
+
+    # create s3 topic
+    endpoint_address = 'amqp://' + hostname
+    endpoint_args = 'push-endpoint='+endpoint_address+'&amqp-exchange=' + exchange +'&amqp-ack-level=broker'
+    topic_conf = PSTopicS3(master_zone.conn, topic_name, zonegroup.name, endpoint_args=endpoint_args)
+    topic_arn = topic_conf.set_config()
+    # create notification
+    notification_name = bucket_name + NOTIFICATION_SUFFIX
+    topic_conf_list = [{'Id': notification_name, 'TopicArn': topic_arn,
+                        'Events': []
+                       }]
+    s3_notification_conf = PSNotificationS3(master_zone.conn, bucket_name, topic_conf_list)
+    _, status = s3_notification_conf.set_config()
+    assert_equal(status/100, 2)
+
+    # create objects in the bucket
+    key_value = 'foo'
+    key = bucket.new_key(key_value)
+    key.set_contents_from_string('hello')
+    ver1 = key.version_id
+    key.set_contents_from_string('world')
+    ver2 = key.version_id
+
+    print('wait for 5sec for the messages...')
+    time.sleep(5)
+
+    # check amqp receiver
+    events = receiver.get_and_reset_events()
+    num_of_versions = 0
+    for event_list in events:
+        for event in event_list['Records']:
+            assert_equal(event['s3']['object']['key'], key_value)
+            version = event['s3']['object']['versionId']
+            num_of_versions += 1
+            if version not in (ver1, ver2):
+                print('version mismatch: '+version+' not in: ('+ver1+', '+ver2+')')
+                assert_equal(1, 0)
+            else:
+                print('version ok: '+version+' in: ('+ver1+', '+ver2+')')
+
+    assert_equal(num_of_versions, 2)
+
+    # cleanup
+    stop_amqp_receiver(receiver, task)
+    s3_notification_conf.del_config()
+    topic_conf.del_config()
+    # delete the bucket
+    bucket.delete_key(key.name, version_id=ver2)
+    bucket.delete_key(key.name, version_id=ver1)
+    master_zone.delete_bucket(bucket_name)
+    clean_rabbitmq(proc)
+
+
 def test_ps_s3_versioned_deletion_on_master():
     """ test s3 notification of deletion markers on master """
     if skip_push_tests:
 def test_ps_s3_versioned_deletion_on_master():
     """ test s3 notification of deletion markers on master """
     if skip_push_tests:
@@ -3062,7 +3146,6 @@ def test_ps_s3_versioned_deletion_on_master():
     topic_arn = topic_conf.set_config()
     # create s3 notification
     notification_name = bucket_name + NOTIFICATION_SUFFIX
     topic_arn = topic_conf.set_config()
     # create s3 notification
     notification_name = bucket_name + NOTIFICATION_SUFFIX
-    # TODO use s3:ObjectRemoved:DeleteMarkerCreated once supported in the code
     topic_conf_list = [{'Id': notification_name+'_1', 'TopicArn': topic_arn,
                         'Events': ['s3:ObjectRemoved:*']
                        },
     topic_conf_list = [{'Id': notification_name+'_1', 'TopicArn': topic_arn,
                         'Events': ['s3:ObjectRemoved:*']
                        },
index 83bfae19e6c1cf1c9fbc6389f25b1738a0ad0824..eb945a44bc21d248430a50d38b2313fb0cc20c1f 100644 (file)
@@ -61,7 +61,7 @@ def check_object_eq(k1, k2, check_extra = True):
 
 def make_request(conn, method, bucket, key, query_args, headers):
     result = conn.make_request(method, bucket=bucket, key=key, query_args=query_args, headers=headers)
 
 def make_request(conn, method, bucket, key, query_args, headers):
     result = conn.make_request(method, bucket=bucket, key=key, query_args=query_args, headers=headers)
-    if result.status / 100 != 2:
+    if result.status // 100 != 2:
         raise boto.exception.S3ResponseError(result.status, result.reason, result.read())
     return result
 
         raise boto.exception.S3ResponseError(result.status, result.reason, result.read())
     return result
 
@@ -129,8 +129,8 @@ class CloudKey:
         self.content_language = k.content_language
 
 
         self.content_language = k.content_language
 
 
-    def get_contents_as_string(self):
-        r = self.key.get_contents_as_string()
+    def get_contents_as_string(self, encoding=None):
+        r = self.key.get_contents_as_string(encoding=encoding)
 
         # the previous call changed the status of the source object, as it loaded
         # its metadata
 
         # the previous call changed the status of the source object, as it loaded
         # its metadata
index 1f85744a49cec8f196f6b77b54b80438bdb6b03f..7ba31a43078982523b384bfe87d21e6e48a0190f 100644 (file)
@@ -48,7 +48,7 @@ def check_object_eq(k1, k2, check_extra = True):
 
 def make_request(conn, method, bucket, key, query_args, headers):
     result = conn.make_request(method, bucket=bucket, key=key, query_args=query_args, headers=headers)
 
 def make_request(conn, method, bucket, key, query_args, headers):
     result = conn.make_request(method, bucket=bucket, key=key, query_args=query_args, headers=headers)
-    if result.status / 100 != 2:
+    if result.status // 100 != 2:
         raise boto.exception.S3ResponseError(result.status, result.reason, result.read())
     return result
 
         raise boto.exception.S3ResponseError(result.status, result.reason, result.read())
     return result
 
index e22200e2665eadf9be3b227daa5dd6d89cbec9ad..84413f5565d8ff6211c1e2784936f8ad58080877 100644 (file)
@@ -1,12 +1,12 @@
 import logging
 import logging
-import httplib
 import ssl
 import urllib
 import ssl
 import urllib
-import urlparse
 import hmac
 import hashlib
 import base64
 import xmltodict
 import hmac
 import hashlib
 import base64
 import xmltodict
+from six.moves import http_client
+from six.moves.urllib import parse as urlparse
 from time import gmtime, strftime
 from .multisite import Zone
 import boto3
 from time import gmtime, strftime
 from .multisite import Zone
 import boto3
@@ -72,7 +72,7 @@ def make_request(conn, method, resource, parameters=None, sign_parameters=False,
     """
     url_params = ''
     if parameters is not None:
     """
     url_params = ''
     if parameters is not None:
-        url_params = urllib.urlencode(parameters)
+        url_params = urlparse.urlencode(parameters)
         # remove 'None' from keys with no values
         url_params = url_params.replace('=None', '')
         url_params = '?' + url_params
         # remove 'None' from keys with no values
         url_params = url_params.replace('=None', '')
         url_params = '?' + url_params
@@ -82,13 +82,13 @@ def make_request(conn, method, resource, parameters=None, sign_parameters=False,
     string_to_sign = method + '\n\n\n' + string_date + '\n' + resource
     if sign_parameters:
         string_to_sign += url_params
     string_to_sign = method + '\n\n\n' + string_date + '\n' + resource
     if sign_parameters:
         string_to_sign += url_params
-    signature = base64.b64encode(hmac.new(conn.aws_secret_access_key,
+    signature = base64.b64encode(hmac.new(conn.aws_secret_access_key.encode('utf-8'),
                                           string_to_sign.encode('utf-8'),
                                           string_to_sign.encode('utf-8'),
-                                          hashlib.sha1).digest())
+                                          hashlib.sha1).digest()).decode('ascii')
     headers = {'Authorization': 'AWS '+conn.aws_access_key_id+':'+signature,
                'Date': string_date,
                'Host': conn.host+':'+str(conn.port)}
     headers = {'Authorization': 'AWS '+conn.aws_access_key_id+':'+signature,
                'Date': string_date,
                'Host': conn.host+':'+str(conn.port)}
-    http_conn = httplib.HTTPConnection(conn.host, conn.port)
+    http_conn = http_client.HTTPConnection(conn.host, conn.port)
     if log.getEffectiveLevel() <= 10:
         http_conn.set_debuglevel(5)
     http_conn.request(method, resource+url_params, NO_HTTP_BODY, headers)
     if log.getEffectiveLevel() <= 10:
         http_conn.set_debuglevel(5)
     http_conn.request(method, resource+url_params, NO_HTTP_BODY, headers)
@@ -96,7 +96,7 @@ def make_request(conn, method, resource, parameters=None, sign_parameters=False,
     data = response.read()
     status = response.status
     http_conn.close()
     data = response.read()
     status = response.status
     http_conn.close()
-    return data, status
+    return data.decode('utf-8'), status
 
 
 def print_connection_info(conn):
 
 
 def print_connection_info(conn):
@@ -212,25 +212,25 @@ class PSTopicS3:
     def get_config(self):
         """get topic info"""
         parameters = {'Action': 'GetTopic', 'TopicArn': self.topic_arn}
     def get_config(self):
         """get topic info"""
         parameters = {'Action': 'GetTopic', 'TopicArn': self.topic_arn}
-        body = urllib.urlencode(parameters)
+        body = urlparse.urlencode(parameters)
         string_date = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
         content_type = 'application/x-www-form-urlencoded; charset=utf-8'
         resource = '/'
         method = 'POST'
         string_to_sign = method + '\n\n' + content_type + '\n' + string_date + '\n' + resource
         log.debug('StringTosign: %s', string_to_sign) 
         string_date = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
         content_type = 'application/x-www-form-urlencoded; charset=utf-8'
         resource = '/'
         method = 'POST'
         string_to_sign = method + '\n\n' + content_type + '\n' + string_date + '\n' + resource
         log.debug('StringTosign: %s', string_to_sign) 
-        signature = base64.b64encode(hmac.new(self.conn.aws_secret_access_key,
+        signature = base64.b64encode(hmac.new(self.conn.aws_secret_access_key.encode('utf-8'),
                                      string_to_sign.encode('utf-8'),
                                      string_to_sign.encode('utf-8'),
-                                     hashlib.sha1).digest())
+                                     hashlib.sha1).digest()).decode('ascii')
         headers = {'Authorization': 'AWS '+self.conn.aws_access_key_id+':'+signature,
                    'Date': string_date,
                    'Host': self.conn.host+':'+str(self.conn.port),
                    'Content-Type': content_type}
         if self.conn.is_secure:
         headers = {'Authorization': 'AWS '+self.conn.aws_access_key_id+':'+signature,
                    'Date': string_date,
                    'Host': self.conn.host+':'+str(self.conn.port),
                    'Content-Type': content_type}
         if self.conn.is_secure:
-            http_conn = httplib.HTTPSConnection(self.conn.host, self.conn.port, 
+            http_conn = http_client.HTTPSConnection(self.conn.host, self.conn.port,
                     context=ssl.create_default_context(cafile='./cert.pem'))
         else:
                     context=ssl.create_default_context(cafile='./cert.pem'))
         else:
-            http_conn = httplib.HTTPConnection(self.conn.host, self.conn.port)
+            http_conn = http_client.HTTPConnection(self.conn.host, self.conn.port)
         http_conn.request(method, resource, body, headers)
         response = http_conn.getresponse()
         data = response.read()
         http_conn.request(method, resource, body, headers)
         response = http_conn.getresponse()
         data = response.read()
@@ -254,25 +254,25 @@ class PSTopicS3:
         """list all topics"""
         # note that boto3 supports list_topics(), however, the result only show ARNs
         parameters = {'Action': 'ListTopics'}
         """list all topics"""
         # note that boto3 supports list_topics(), however, the result only show ARNs
         parameters = {'Action': 'ListTopics'}
-        body = urllib.urlencode(parameters)
+        body = urlparse.urlencode(parameters)
         string_date = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
         content_type = 'application/x-www-form-urlencoded; charset=utf-8'
         resource = '/'
         method = 'POST'
         string_to_sign = method + '\n\n' + content_type + '\n' + string_date + '\n' + resource
         log.debug('StringTosign: %s', string_to_sign) 
         string_date = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
         content_type = 'application/x-www-form-urlencoded; charset=utf-8'
         resource = '/'
         method = 'POST'
         string_to_sign = method + '\n\n' + content_type + '\n' + string_date + '\n' + resource
         log.debug('StringTosign: %s', string_to_sign) 
-        signature = base64.b64encode(hmac.new(self.conn.aws_secret_access_key,
+        signature = base64.b64encode(hmac.new(self.conn.aws_secret_access_key.encode('utf-8'),
                                      string_to_sign.encode('utf-8'),
                                      string_to_sign.encode('utf-8'),
-                                     hashlib.sha1).digest())
+                                     hashlib.sha1).digest()).decode('ascii')
         headers = {'Authorization': 'AWS '+self.conn.aws_access_key_id+':'+signature,
                    'Date': string_date,
                    'Host': self.conn.host+':'+str(self.conn.port),
                    'Content-Type': content_type}
         if self.conn.is_secure:
         headers = {'Authorization': 'AWS '+self.conn.aws_access_key_id+':'+signature,
                    'Date': string_date,
                    'Host': self.conn.host+':'+str(self.conn.port),
                    'Content-Type': content_type}
         if self.conn.is_secure:
-            http_conn = httplib.HTTPSConnection(self.conn.host, self.conn.port, 
+            http_conn = http_client.HTTPSConnection(self.conn.host, self.conn.port,
                     context=ssl.create_default_context(cafile='./cert.pem'))
         else:
                     context=ssl.create_default_context(cafile='./cert.pem'))
         else:
-            http_conn = httplib.HTTPConnection(self.conn.host, self.conn.port)
+            http_conn = http_client.HTTPConnection(self.conn.host, self.conn.port)
         http_conn.request(method, resource, body, headers)
         response = http_conn.getresponse()
         data = response.read()
         http_conn.request(method, resource, body, headers)
         response = http_conn.getresponse()
         data = response.read()
diff --git a/ceph/src/test/rgw/test-ceph-diff-sorted.sh b/ceph/src/test/rgw/test-ceph-diff-sorted.sh
new file mode 100755 (executable)
index 0000000..dddf4ae
--- /dev/null
@@ -0,0 +1,108 @@
+#!/usr/bin/env bash
+
+# set -e -x
+
+. "`dirname $0`/test-rgw-common.sh"
+
+temp_prefix="/tmp/`basename $0`-$$"
+
+short=${temp_prefix}-short
+short_w_blank=${temp_prefix}-short-w-blank
+long=${temp_prefix}-long
+unsorted=${temp_prefix}-unsorted
+empty=${temp_prefix}-empty
+fake=${temp_prefix}-fake
+
+out1=${temp_prefix}-out1
+out2=${temp_prefix}-out2
+
+cat >"${short}" <<EOF
+bear
+fox
+hippo
+zebra
+EOF
+
+cat >"${short_w_blank}" <<EOF
+bear
+fox
+hippo
+
+zebra
+EOF
+
+cat >"${long}" <<EOF
+badger
+cuttlefish
+fox
+llama
+octopus
+penguine
+seal
+squid
+whale
+yak
+zebra
+EOF
+
+cat >"${unsorted}" <<EOF
+bear
+hippo
+fox
+zebra
+EOF
+
+touch $empty
+
+#### testing ####
+
+# test perfect match
+ceph-diff-sorted $long $long >"${out1}"
+$assert $? -eq 0
+$assert $(cat $out1 | wc -l) -eq 0
+
+# test non-match; use /bin/diff to verify
+/bin/diff $short $long >"${out2}"
+ceph-diff-sorted $short $long >"${out1}"
+$assert $? -eq 1
+$assert $(cat $out1 | grep '^<' | wc -l) -eq $(cat $out2 | grep '^<' | wc -l)
+$assert $(cat $out1 | grep '^>' | wc -l) -eq $(cat $out2 | grep '^>' | wc -l)
+
+/bin/diff $long $short >"${out2}"
+ceph-diff-sorted $long $short >"${out1}"
+$assert $? -eq 1
+$assert $(cat $out1 | grep '^<' | wc -l) -eq $(cat $out2 | grep '^<' | wc -l)
+$assert $(cat $out1 | grep '^>' | wc -l) -eq $(cat $out2 | grep '^>' | wc -l)
+
+# test w blank line
+ceph-diff-sorted $short $short_w_blank 2>/dev/null
+$assert $? -eq 4
+
+ceph-diff-sorted $short_w_blank $short 2>/dev/null
+$assert $? -eq 4
+
+# test unsorted input
+ceph-diff-sorted $short $unsorted >"${out2}" 2>/dev/null
+$assert $? -eq 4
+
+ceph-diff-sorted $unsorted $short >"${out2}" 2>/dev/null
+$assert $? -eq 4
+
+# test bad # of args
+ceph-diff-sorted 2>/dev/null
+$assert $? -eq 2
+
+ceph-diff-sorted $short 2>/dev/null
+$assert $? -eq 2
+
+# test bad file path
+
+ceph-diff-sorted $short $fake 2>/dev/null
+$assert $? -eq 3
+
+ceph-diff-sorted $fake $short 2>/dev/null
+$assert $? -eq 3
+
+#### clean-up ####
+
+/bin/rm -f $short $short_w_blank $long $unsorted $empty $out1 $out2
index 106f6d0f321b81499257149dc03d27be2d725942..6f8cec18a65232689bf89ab690ef0ad3c478dfd2 100644 (file)
@@ -43,8 +43,8 @@ def bash(cmd, **kwargs):
     check_retcode = kwargs.pop('check_retcode', True)
     kwargs['stdout'] = subprocess.PIPE
     process = subprocess.Popen(cmd, **kwargs)
     check_retcode = kwargs.pop('check_retcode', True)
     kwargs['stdout'] = subprocess.PIPE
     process = subprocess.Popen(cmd, **kwargs)
-    s = process.communicate()[0]
-    log.debug('command returned status=%d stdout=%s', process.returncode, s.decode('utf-8'))
+    s = process.communicate()[0].decode('utf-8')
+    log.debug('command returned status=%d stdout=%s', process.returncode, s)
     if check_retcode:
         assert(process.returncode == 0)
     return (s, process.returncode)
     if check_retcode:
         assert(process.returncode == 0)
     return (s, process.returncode)
index 0f11b817e8d19e97b0c844c183e98f423a5d1aa2..13bab823f02cf198ff0c8f7ed1b674879051a0c8 100644 (file)
@@ -61,7 +61,7 @@ protected:
 TEST_F(TestAMQP, ConnectionOK)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, ConnectionOK)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://localhost", "ex1");
+  conn = amqp::connect("amqp://localhost", "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -70,10 +70,10 @@ TEST_F(TestAMQP, ConnectionOK)
 
 TEST_F(TestAMQP, ConnectionReuse)
 {
 
 TEST_F(TestAMQP, ConnectionReuse)
 {
-  amqp::connection_ptr_t conn1 = amqp::connect("amqp://localhost", "ex1");
+  amqp::connection_ptr_t conn1 = amqp::connect("amqp://localhost", "ex1", false);
   EXPECT_TRUE(conn1);
   const auto connection_number = amqp::get_connection_count();
   EXPECT_TRUE(conn1);
   const auto connection_number = amqp::get_connection_count();
-  amqp::connection_ptr_t conn2 = amqp::connect("amqp://localhost", "ex1");
+  amqp::connection_ptr_t conn2 = amqp::connect("amqp://localhost", "ex1", false);
   EXPECT_TRUE(conn2);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn1, "topic", "message");
   EXPECT_TRUE(conn2);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn1, "topic", "message");
@@ -83,7 +83,7 @@ TEST_F(TestAMQP, ConnectionReuse)
 TEST_F(TestAMQP, NameResolutionFail)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, NameResolutionFail)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://kaboom", "ex1");
+  conn = amqp::connect("amqp://kaboom", "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -93,7 +93,7 @@ TEST_F(TestAMQP, NameResolutionFail)
 TEST_F(TestAMQP, InvalidPort)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, InvalidPort)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://localhost:1234", "ex1");
+  conn = amqp::connect("amqp://localhost:1234", "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -103,7 +103,7 @@ TEST_F(TestAMQP, InvalidPort)
 TEST_F(TestAMQP, InvalidHost)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, InvalidHost)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://0.0.0.1", "ex1");
+  conn = amqp::connect("amqp://0.0.0.1", "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -113,7 +113,7 @@ TEST_F(TestAMQP, InvalidHost)
 TEST_F(TestAMQP, InvalidVhost)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, InvalidVhost)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://localhost/kaboom", "ex1");
+  conn = amqp::connect("amqp://localhost/kaboom", "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -125,7 +125,7 @@ TEST_F(TestAMQP, UserPassword)
   amqp_mock::set_valid_host("127.0.0.1");
   {
     const auto connection_number = amqp::get_connection_count();
   amqp_mock::set_valid_host("127.0.0.1");
   {
     const auto connection_number = amqp::get_connection_count();
-    conn = amqp::connect("amqp://foo:bar@127.0.0.1", "ex1");
+    conn = amqp::connect("amqp://foo:bar@127.0.0.1", "ex1", false);
     EXPECT_TRUE(conn);
     EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_TRUE(conn);
     EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
     auto rc = amqp::publish(conn, "topic", "message");
@@ -135,7 +135,7 @@ TEST_F(TestAMQP, UserPassword)
   amqp_mock::set_valid_host("127.0.0.2");
   {
     const auto connection_number = amqp::get_connection_count();
   amqp_mock::set_valid_host("127.0.0.2");
   {
     const auto connection_number = amqp::get_connection_count();
-    conn = amqp::connect("amqp://guest:guest@127.0.0.2", "ex1");
+    conn = amqp::connect("amqp://guest:guest@127.0.0.2", "ex1", false);
     EXPECT_TRUE(conn);
     EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_TRUE(conn);
     EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
     auto rc = amqp::publish(conn, "topic", "message");
@@ -147,7 +147,7 @@ TEST_F(TestAMQP, UserPassword)
 TEST_F(TestAMQP, URLParseError)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, URLParseError)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("http://localhost", "ex1");
+  conn = amqp::connect("http://localhost", "ex1", false);
   EXPECT_FALSE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_FALSE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -157,7 +157,7 @@ TEST_F(TestAMQP, URLParseError)
 TEST_F(TestAMQP, ExchangeMismatch)
 {
   const auto connection_number = amqp::get_connection_count();
 TEST_F(TestAMQP, ExchangeMismatch)
 {
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("http://localhost", "ex2");
+  conn = amqp::connect("http://localhost", "ex2", false);
   EXPECT_FALSE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_FALSE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -172,7 +172,7 @@ TEST_F(TestAMQP, MaxConnections)
   while (remaining_connections > 0) {
     const auto host = "127.10.0." + std::to_string(remaining_connections);
     amqp_mock::set_valid_host(host);
   while (remaining_connections > 0) {
     const auto host = "127.10.0." + std::to_string(remaining_connections);
     amqp_mock::set_valid_host(host);
-    amqp::connection_ptr_t conn = amqp::connect("amqp://" + host, "ex1");
+    amqp::connection_ptr_t conn = amqp::connect("amqp://" + host, "ex1", false);
     EXPECT_TRUE(conn);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_EQ(rc, 0);
     EXPECT_TRUE(conn);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_EQ(rc, 0);
@@ -184,7 +184,7 @@ TEST_F(TestAMQP, MaxConnections)
   {
     const std::string host = "toomany";
     amqp_mock::set_valid_host(host);
   {
     const std::string host = "toomany";
     amqp_mock::set_valid_host(host);
-    amqp::connection_ptr_t conn = amqp::connect("amqp://" + host, "ex1");
+    amqp::connection_ptr_t conn = amqp::connect("amqp://" + host, "ex1", false);
     EXPECT_FALSE(conn);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_LT(rc, 0);
     EXPECT_FALSE(conn);
     auto rc = amqp::publish(conn, "topic", "message");
     EXPECT_LT(rc, 0);
@@ -246,7 +246,7 @@ TEST_F(TestAMQP, ReceiveAck)
   callback_invoked = false;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
   callback_invoked = false;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_ack);
   EXPECT_EQ(rc, 0);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_ack);
   EXPECT_EQ(rc, 0);
@@ -260,7 +260,7 @@ TEST_F(TestAMQP, ImplicitConnectionClose)
   callback_invoked = false;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
   callback_invoked = false;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   const auto NUMBER_OF_CALLS = 2000;
   for (auto i = 0; i < NUMBER_OF_CALLS; ++i) {
   EXPECT_TRUE(conn);
   const auto NUMBER_OF_CALLS = 2000;
   for (auto i = 0; i < NUMBER_OF_CALLS; ++i) {
@@ -278,7 +278,7 @@ TEST_F(TestAMQP, ReceiveMultipleAck)
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   const auto NUMBER_OF_CALLS = 100;
   for (auto i=0; i < NUMBER_OF_CALLS; ++i) {
   EXPECT_TRUE(conn);
   const auto NUMBER_OF_CALLS = 100;
   for (auto i=0; i < NUMBER_OF_CALLS; ++i) {
@@ -296,7 +296,7 @@ TEST_F(TestAMQP, ReceiveAckForMultiple)
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   amqp_mock::set_multiple(59);
   const auto NUMBER_OF_CALLS = 100;
   EXPECT_TRUE(conn);
   amqp_mock::set_multiple(59);
   const auto NUMBER_OF_CALLS = 100;
@@ -315,7 +315,7 @@ TEST_F(TestAMQP, DynamicCallback)
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
   callbacks_invoked = 0;
   const std::string host("localhost1");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   amqp_mock::set_multiple(59);
   const auto NUMBER_OF_CALLS = 100;
   EXPECT_TRUE(conn);
   amqp_mock::set_multiple(59);
   const auto NUMBER_OF_CALLS = 100;
@@ -336,7 +336,7 @@ TEST_F(TestAMQP, ReceiveNack)
   amqp_mock::REPLY_ACK = false;
   const std::string host("localhost2");
   amqp_mock::set_valid_host(host);
   amqp_mock::REPLY_ACK = false;
   const std::string host("localhost2");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
@@ -353,7 +353,7 @@ TEST_F(TestAMQP, FailWrite)
   amqp_mock::FAIL_NEXT_WRITE = true;
   const std::string host("localhost2");
   amqp_mock::set_valid_host(host);
   amqp_mock::FAIL_NEXT_WRITE = true;
   const std::string host("localhost2");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
@@ -370,7 +370,7 @@ TEST_F(TestAMQP, ClosedConnection)
   const auto current_connections = amqp::get_connection_count();
   const std::string host("localhost3");
   amqp_mock::set_valid_host(host);
   const auto current_connections = amqp::get_connection_count();
   const std::string host("localhost3");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), current_connections + 1);
   EXPECT_TRUE(amqp::disconnect(conn));
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), current_connections + 1);
   EXPECT_TRUE(amqp::disconnect(conn));
@@ -389,7 +389,7 @@ TEST_F(TestAMQP, RetryInvalidHost)
 {
   const std::string host = "192.168.0.1";
   const auto connection_number = amqp::get_connection_count();
 {
   const std::string host = "192.168.0.1";
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://"+host, "ex1");
+  conn = amqp::connect("amqp://"+host, "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -406,7 +406,7 @@ TEST_F(TestAMQP, RetryInvalidPort)
 {
   const int port = 9999;
   const auto connection_number = amqp::get_connection_count();
 {
   const int port = 9999;
   const auto connection_number = amqp::get_connection_count();
-  conn = amqp::connect("amqp://localhost:" + std::to_string(port), "ex1");
+  conn = amqp::connect("amqp://localhost:" + std::to_string(port), "ex1", false);
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
   EXPECT_TRUE(conn);
   EXPECT_EQ(amqp::get_connection_count(), connection_number + 1);
   auto rc = amqp::publish(conn, "topic", "message");
@@ -425,7 +425,7 @@ TEST_F(TestAMQP, RetryFailWrite)
   amqp_mock::FAIL_NEXT_WRITE = true;
   const std::string host("localhost4");
   amqp_mock::set_valid_host(host);
   amqp_mock::FAIL_NEXT_WRITE = true;
   const std::string host("localhost4");
   amqp_mock::set_valid_host(host);
-  conn = amqp::connect("amqp://" + host, "ex1");
+  conn = amqp::connect("amqp://" + host, "ex1", false);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
   EXPECT_TRUE(conn);
   auto rc = publish_with_confirm(conn, "topic", "message", my_callback_expect_nack);
   EXPECT_EQ(rc, 0);
index 8422bca1b409c0862558dbaafe68fd86ee7f366b..d38457b815d2ea24ce7676d4e94dbf77389ad281 100644 (file)
@@ -48,7 +48,7 @@ TEST(TestURL, AuthorityWithUserinfo)
     std::string host;
     std::string user;
     std::string password;
     std::string host;
     std::string user;
     std::string password;
-    const std::string url = "http://user:password@example.com";
+    const std::string url = "https://user:password@example.com";
     ASSERT_TRUE(parse_url_authority(url, host, user, password));
     EXPECT_STREQ(host.c_str(), "example.com"); 
     EXPECT_STREQ(user.c_str(), "user"); 
     ASSERT_TRUE(parse_url_authority(url, host, user, password));
     EXPECT_STREQ(host.c_str(), "example.com"); 
     EXPECT_STREQ(user.c_str(), "user"); 
@@ -88,3 +88,12 @@ TEST(TestURL, InvalidHost)
     ASSERT_FALSE(parse_url_authority(url, host, user, password));
 }
 
     ASSERT_FALSE(parse_url_authority(url, host, user, password));
 }
 
+TEST(TestURL, WithPath)
+{
+    std::string host;
+    std::string user;
+    std::string password;
+    const std::string url = "amqps://www.example.com:1234/vhost_name";
+    ASSERT_TRUE(parse_url_authority(url, host, user, password));
+}
+
index 8cccf208dfde84f8637cfcfe2f80d19f359ca1b5..3c4cf2ecf74c1cfbf3ef33fde2de15b805ed444e 100644 (file)
@@ -88,6 +88,10 @@ add_executable(osdmaptool ${osdomaptool_srcs})
 target_link_libraries(osdmaptool global)
 install(TARGETS osdmaptool DESTINATION bin)
 
 target_link_libraries(osdmaptool global)
 install(TARGETS osdmaptool DESTINATION bin)
 
+set(ceph-diff-sorted_srcs ceph-diff-sorted.cc)
+add_executable(ceph-diff-sorted ${ceph-diff-sorted_srcs})
+install(TARGETS ceph-diff-sorted DESTINATION bin)
+
 if(WITH_TESTS)
 set(ceph_psim_srcs psim.cc)
 add_executable(ceph_psim ${ceph_psim_srcs})
 if(WITH_TESTS)
 set(ceph_psim_srcs psim.cc)
 add_executable(ceph_psim ${ceph_psim_srcs})
diff --git a/ceph/src/tools/ceph-diff-sorted.cc b/ceph/src/tools/ceph-diff-sorted.cc
new file mode 100644 (file)
index 0000000..f8e4c28
--- /dev/null
@@ -0,0 +1,173 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+/*
+ * diffsorted -- a utility to compute a line-by-line diff on two
+ * sorted input files
+ *
+ * Copyright © 2019 Red Hat
+ *
+ * Author: J. Eric Ivancich
+ *
+ * This is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software
+ * Foundation.
+ */
+
+
+/*
+ * SUMMARY
+ *
+ * The `diffsorted` utility does a line-by-line diff on two sorted text
+ * files and indicating lines that are in one file but not the other
+ * using diff-style notation (although line numbers are not indicated).
+ *
+ * USAGE
+ *
+ *     rgw-diff-sorted file1.txt file2.txt
+ *
+ * NOTES
+ *
+ * Each files should have its lines in sorted order and should have no
+ * empty lines.
+ *
+ * A potential input file can be sorted using the `sort` utility provided
+ * that LANG=C to insure byte lexical order. For example:
+ *
+ *     LANG=C sort unsorted.txt >sorted.txt
+ *
+ * or:
+ *
+ *     export LANG=C
+ *     sort unsorted.txt >sorted.txt
+ *
+ * EXIT STATUS
+ *
+ *     0 : files same
+ *     1 : files different
+ *     2 : usage problem (e.g., wrong number of command-line arguments)
+ *     3 : problem opening input file
+ *     4 : bad file content (e.g., unsorted order or empty lines)
+ */
+
+
+#include <iostream>
+#include <fstream>
+
+
+struct FileOfLines {
+  const char* filename;
+  std::ifstream input;
+  std::string this_line, prev_line;
+  bool next_eof;
+  bool is_eof;
+
+  FileOfLines(const char* _filename) :
+    filename(_filename),
+    input(filename),
+    next_eof(false),
+    is_eof(false)
+  { }
+
+  void dump(const std::string& prefix) {
+    do {
+      std::cout << prefix << this_line << std::endl;
+      advance();
+    } while (!eof());
+  }
+
+  bool eof() const {
+    return is_eof;
+  }
+
+  bool good() const {
+    return input.good();
+  }
+
+  void advance() {
+    if (next_eof) {
+      is_eof = true;
+      return;
+    }
+
+    prev_line = this_line;
+    std::getline(input, this_line);
+    if (this_line.empty()) {
+      if (!input.eof()) {
+       std::cerr << "Error: " << filename << " has an empty line." <<
+         std::endl;
+       exit(4);
+      }
+      is_eof = true;
+      return;
+    } else if (input.eof()) {
+      next_eof = true;
+    }
+
+    if (this_line < prev_line) {
+      std::cerr << "Error: " << filename << " is not in sorted order; \"" <<
+       this_line << "\" follows \"" << prev_line << "\"." << std::endl;
+      exit(4);
+    }
+  }
+
+  const std::string line() const {
+    return this_line;
+  }
+};
+
+int main(int argc, const char* argv[]) {
+  if (argc != 3) {
+    std::cerr << "Usage: " << argv[0] << " <file1> <file2>" << std::endl;
+    exit(2);
+  }
+
+  FileOfLines input1(argv[1]);
+  if (!input1.good()) {
+    std::cerr << "Error opening " << argv[1] <<
+      "." << std::endl;
+    exit(3);
+  }
+
+  FileOfLines input2(argv[2]);
+  if (!input2.good()) {
+    std::cerr << "Error opening " << argv[2] <<
+      "." << std::endl;
+    exit(3);
+  }
+
+  bool files_same = true;
+
+  input1.advance();
+  input2.advance();
+
+  while (!input1.eof() && !input2.eof()) {
+    if (input1.line() == input2.line()) {
+      input1.advance();
+      input2.advance();
+    } else if (input1.line() < input2.line()) {
+      files_same = false;
+      std::cout << "< " << input1.line() << std::endl;
+      input1.advance();
+    } else {
+      files_same = false;
+      std::cout << "> " << input2.line() << std::endl;
+      input2.advance();
+    }
+  }
+
+  if (!input1.eof()) {
+    files_same = false;
+    input1.dump("< ");
+  } else if (!input2.eof()) {
+    files_same = false;
+    input2.dump("> ");
+  }
+
+  if (files_same) {
+    exit(0);
+  } else {
+    exit(1);
+  }
+}
index 932b57f72566300529d6c52367e6f85332a482b5..81e25d16dae9e273cdee9487681be64b549f3fa1 100755 (executable)
@@ -64,6 +64,7 @@ shell = None    # holds instance of class CephFSShell
 #
 #######################################################################
 
 #
 #######################################################################
 
+
 def poutput(s, end='\n'):
     shell.poutput(s, end=end)
 
 def poutput(s, end='\n'):
     shell.poutput(s, end=end)
 
@@ -111,13 +112,14 @@ def to_bytes(param):
     elif isinstance(param, str):
         return bytes(param, encoding='utf-8')
     elif isinstance(param, list):
     elif isinstance(param, str):
         return bytes(param, encoding='utf-8')
     elif isinstance(param, list):
-        return [i.encode('utf-8') if isinstance(i, str) else to_bytes(i) for \
+        return [i.encode('utf-8') if isinstance(i, str) else to_bytes(i) for
                 i in param]
     elif isinstance(param, int) or isinstance(param, float):
         return str(param).encode('utf-8')
     elif param is None:
         return None
 
                 i in param]
     elif isinstance(param, int) or isinstance(param, float):
         return str(param).encode('utf-8')
     elif param is None:
         return None
 
+
 def ls(path, opts=''):
     # opts tries to be like /bin/ls opts
     almost_all = 'A' in opts
 def ls(path, opts=''):
     # opts tries to be like /bin/ls opts
     almost_all = 'A' in opts
@@ -134,6 +136,7 @@ def ls(path, opts=''):
         perror(e)
         shell.exit_code = e.get_error_code()
 
         perror(e)
         shell.exit_code = e.get_error_code()
 
+
 def glob(path, pattern):
     paths = []
     parent_dir = os.path.dirname(path)
 def glob(path, pattern):
     paths = []
     parent_dir = os.path.dirname(path)
@@ -197,11 +200,11 @@ def print_long(path, is_dir, human_readable):
         poutput('{}\t{:10s} {} {} {} {}'.format(
             mode_notation(info.st_mode),
             humansize(info.st_size), info.st_uid,
         poutput('{}\t{:10s} {} {} {} {}'.format(
             mode_notation(info.st_mode),
             humansize(info.st_size), info.st_uid,
-            info.st_gid, info.st_mtime, pretty, sep='\t'))
+            info.st_gid, info.st_mtime, pretty))
     else:
         poutput('{} {:12d} {} {} {} {}'.format(
             mode_notation(info.st_mode), info.st_size, info.st_uid,
     else:
         poutput('{} {:12d} {} {} {} {}'.format(
             mode_notation(info.st_mode), info.st_size, info.st_uid,
-            info.st_gid, info.st_mtime, pretty, sep='\t'))
+            info.st_gid, info.st_mtime, pretty))
 
 
 def word_len(word):
 
 
 def word_len(word):
@@ -361,7 +364,7 @@ class CephFSShell(Cmd):
             return None
         doc_lines = getattr(
             self, 'do_' + command).__doc__.expandtabs().splitlines()
             return None
         doc_lines = getattr(
             self, 'do_' + command).__doc__.expandtabs().splitlines()
-        if ''in doc_lines:
+        if '' in doc_lines:
             blank_idx = doc_lines.index('')
             usage = doc_lines[:blank_idx]
             description = doc_lines[blank_idx + 1:]
             blank_idx = doc_lines.index('')
             usage = doc_lines[:blank_idx]
             description = doc_lines[blank_idx + 1:]
@@ -698,7 +701,7 @@ class CephFSShell(Cmd):
         elif is_file_exists(args.remote_path):
             copy_to_local(root_src_dir,
                           root_dst_dir + b'/' + root_src_dir)
         elif is_file_exists(args.remote_path):
             copy_to_local(root_src_dir,
                           root_dst_dir + b'/' + root_src_dir)
-        elif b'/'in root_src_dir and is_file_exists(fname[1], fname[0]):
+        elif b'/' in root_src_dir and is_file_exists(fname[1], fname[0]):
             copy_to_local(root_src_dir, root_dst_dir)
         else:
             files = list(reversed(sorted(dirwalk(root_src_dir))))
             copy_to_local(root_src_dir, root_dst_dir)
         else:
             files = list(reversed(sorted(dirwalk(root_src_dir))))
@@ -1132,12 +1135,12 @@ class CephFSShell(Cmd):
             try:
                 statfs = cephfs.statfs(file)
                 stat = cephfs.stat(file)
             try:
                 statfs = cephfs.statfs(file)
                 stat = cephfs.stat(file)
-                block_size = statfs['f_blocks']*statfs['f_bsize'] // 1024
+                block_size = (statfs['f_blocks'] * statfs['f_bsize']) // 1024
                 available = block_size - stat.st_size
                 use = 0
 
                 if block_size > 0:
                 available = block_size - stat.st_size
                 use = 0
 
                 if block_size > 0:
-                    use = (stat.st_size*100 // block_size)
+                    use = (stat.st_size * 100) // block_size
 
                 if header:
                     header = False
 
                 if header:
                     header = False
@@ -1220,7 +1223,7 @@ class CephFSShell(Cmd):
                     if f[0] is ord('/'):
                         f = b'.' + f
                     poutput('{:10s} {}'.format(humansize(dusage),
                     if f[0] is ord('/'):
                         f = b'.' + f
                     poutput('{:10s} {}'.format(humansize(dusage),
-                        f.decode('utf-8')))
+                            f.decode('utf-8')))
                 except libcephfs.Error as e:
                     perror(e)
                     self.exit_code = e.get_error_code()
                 except libcephfs.Error as e:
                     perror(e)
                     self.exit_code = e.get_error_code()
@@ -1354,7 +1357,7 @@ class CephFSShell(Cmd):
         else:
             self.perror("snapshot can only be created or deleted; check - "
                         "help snap")
         else:
             self.perror("snapshot can only be created or deleted; check - "
                         "help snap")
-            self.exit_code = e.get_error_code()
+            self.exit_code = 1
 
     def do_help(self, line):
         """
 
     def do_help(self, line):
         """
@@ -1399,12 +1402,15 @@ class CephFSShell(Cmd):
 
                 poutput("File: {}\nSize: {:d}\nBlocks: {:d}\nIO Block: {:d}\n"
                         "Device: {:d}\tInode: {:d}\tLinks: {:d}\nPermission: "
 
                 poutput("File: {}\nSize: {:d}\nBlocks: {:d}\nIO Block: {:d}\n"
                         "Device: {:d}\tInode: {:d}\tLinks: {:d}\nPermission: "
-                        "{:o}/{}\tUid: {:d}\tGid: {:d}\n\Access: {}\nModify: "
+                        "{:o}/{}\tUid: {:d}\tGid: {:d}\nAccess: {}\nModify: "
                         "{}\nChange: {}".format(path.decode('utf-8'),
                         "{}\nChange: {}".format(path.decode('utf-8'),
-                        stat.st_size, stat.st_blocks, stat.st_blksize,
-                        stat.st_dev, stat.st_ino, stat.st_nlink, stat.st_mode,
-                        mode_notation(stat.st_mode), stat.st_uid, stat.st_gid,
-                        atime, mtime, ctime))
+                                                stat.st_size, stat.st_blocks,
+                                                stat.st_blksize, stat.st_dev,
+                                                stat.st_ino, stat.st_nlink,
+                                                stat.st_mode,
+                                                mode_notation(stat.st_mode),
+                                                stat.st_uid, stat.st_gid, atime,
+                                                mtime, ctime))
             except libcephfs.Error as e:
                 perror(e)
                 self.exit_code = e.get_error_code()
             except libcephfs.Error as e:
                 perror(e)
                 self.exit_code = e.get_error_code()
@@ -1485,13 +1491,14 @@ def setup_cephfs(config_file):
     try:
         cephfs = libcephfs.LibCephFS(conffile=config_file)
         cephfs.mount()
     try:
         cephfs = libcephfs.LibCephFS(conffile=config_file)
         cephfs.mount()
-    except libcephfs.ObjectNotFound as e:
+    except libcephfs.ObjectNotFound:
         print('couldn\'t find ceph configuration not found')
         sys.exit(1)
     except libcephfs.Error as e:
         print(e)
         sys.exit(1)
 
         print('couldn\'t find ceph configuration not found')
         sys.exit(1)
     except libcephfs.Error as e:
         print(e)
         sys.exit(1)
 
+
 def get_bool_vals_for_boolopts(val):
     if not isinstance(val, str):
         return val
 def get_bool_vals_for_boolopts(val):
     if not isinstance(val, str):
         return val
@@ -1504,21 +1511,22 @@ def get_bool_vals_for_boolopts(val):
     else:
         return val
 
     else:
         return val
 
+
 def read_ceph_conf(shell, config_file):
     try:
 def read_ceph_conf(shell, config_file):
     try:
-        shell.debug = get_bool_vals_for_boolopts(cephfs.\
-            conf_get('debug_shell'))
-        shell.allow_ansi = get_bool_vals_for_boolopts(cephfs.\
-            conf_get('allow_ansi'))
+        shell.debug = get_bool_vals_for_boolopts(cephfs.
+                                                 conf_get('debug_shell'))
+        shell.allow_ansi = get_bool_vals_for_boolopts(cephfs.
+                                                      conf_get('allow_ansi'))
         shell.echo = get_bool_vals_for_boolopts(cephfs.conf_get('echo'))
         shell.echo = get_bool_vals_for_boolopts(cephfs.conf_get('echo'))
-        shell.continuation_prompt = get_bool_vals_for_boolopts(cephfs.\
-            conf_get('continuation_prompt'))
+        shell.continuation_prompt = get_bool_vals_for_boolopts(cephfs.
+                                                               conf_get('continuation_prompt'))
         shell.colors = get_bool_vals_for_boolopts(cephfs.conf_get('colors'))
         shell.editor = get_bool_vals_for_boolopts(cephfs.conf_get('editor'))
         shell.colors = get_bool_vals_for_boolopts(cephfs.conf_get('colors'))
         shell.editor = get_bool_vals_for_boolopts(cephfs.conf_get('editor'))
-        shell.feedback_to_output = get_bool_vals_for_boolopts(cephfs.\
-            conf_get('feedback_to_output'))
-        shell.max_completion_items = get_bool_vals_for_boolopts(cephfs.\
-            conf_get('max_completion_items'))
+        shell.feedback_to_output = get_bool_vals_for_boolopts(cephfs.
+                                                              conf_get('feedback_to_output'))
+        shell.max_completion_items = get_bool_vals_for_boolopts(cephfs.
+                                                                conf_get('max_completion_items'))
         shell.prompt = get_bool_vals_for_boolopts(cephfs.conf_get('prompt'))
         shell.quiet = get_bool_vals_for_boolopts(cephfs.conf_get('quiet'))
         shell.timing = get_bool_vals_for_boolopts(cephfs.conf_get('timing'))
         shell.prompt = get_bool_vals_for_boolopts(cephfs.conf_get('prompt'))
         shell.quiet = get_bool_vals_for_boolopts(cephfs.conf_get('quiet'))
         shell.timing = get_bool_vals_for_boolopts(cephfs.conf_get('timing'))
@@ -1526,6 +1534,7 @@ def read_ceph_conf(shell, config_file):
         perror(e)
         shell.exit_code = e.get_error_code()
 
         perror(e)
         shell.exit_code = e.get_error_code()
 
+
 if __name__ == '__main__':
     config_file = ''
 
 if __name__ == '__main__':
     config_file = ''
 
@@ -1548,7 +1557,7 @@ if __name__ == '__main__':
         if LooseVersion(cmd2_version) <= LooseVersion("0.9.13"):
             args.commands = ['load ' + args.batch, ',quit']
         else:
         if LooseVersion(cmd2_version) <= LooseVersion("0.9.13"):
             args.commands = ['load ' + args.batch, ',quit']
         else:
-            args.commands = ['run_script ' +  args.batch, ',quit']
+            args.commands = ['run_script ' + args.batch, ',quit']
     if args.test:
         args.commands.extend(['-t,'] + [arg + ',' for arg in args.test])
 
     if args.test:
         args.commands.extend(['-t,'] + [arg + ',' for arg in args.test])
 
index 147b114423eddcc547da6f145e473cdf962076af..c1cbff051369ab76f895d9f2c01089de700f9d8b 100644 (file)
@@ -1,6 +1,7 @@
 [tox]
 [tox]
+envlist = py3
 skipsdist = true
 
 skipsdist = true
 
-[testenv:flake8]
+[testenv:py3]
 deps = flake8
 commands = flake8 --ignore=W503 --max-line-length=100 cephfs-shell
 deps = flake8
 commands = flake8 --ignore=W503 --max-line-length=100 cephfs-shell
index 3123c9730764ffae903ea7c86abe634e6054371f..2d57a98d2f9c615334c21292850c7b5bc161c765 100644 (file)
@@ -288,7 +288,7 @@ void ImageReplayer<I>::set_state_description(int r, const std::string &desc) {
 }
 
 template <typename I>
 }
 
 template <typename I>
-void ImageReplayer<I>::start(Context *on_finish, bool manual)
+void ImageReplayer<I>::start(Context *on_finish, bool manual, bool restart)
 {
   dout(10) << "on_finish=" << on_finish << dendl;
 
 {
   dout(10) << "on_finish=" << on_finish << dendl;
 
@@ -302,12 +302,16 @@ void ImageReplayer<I>::start(Context *on_finish, bool manual)
       dout(5) << "stopped manually, ignoring start without manual flag"
              << dendl;
       r = -EPERM;
       dout(5) << "stopped manually, ignoring start without manual flag"
              << dendl;
       r = -EPERM;
+    } else if (restart && !m_restart_requested) {
+      dout(10) << "canceled restart" << dendl;
+      r = -ECANCELED;
     } else {
       m_state = STATE_STARTING;
       m_last_r = 0;
       m_state_desc.clear();
       m_manual_stop = false;
       m_delete_requested = false;
     } else {
       m_state = STATE_STARTING;
       m_last_r = 0;
       m_state_desc.clear();
       m_manual_stop = false;
       m_delete_requested = false;
+      m_restart_requested = false;
 
       if (on_finish != nullptr) {
         ceph_assert(m_on_start_finish == nullptr);
 
       if (on_finish != nullptr) {
         ceph_assert(m_on_start_finish == nullptr);
@@ -509,11 +513,10 @@ bool ImageReplayer<I>::on_start_interrupted(ceph::mutex& lock) {
 }
 
 template <typename I>
 }
 
 template <typename I>
-void ImageReplayer<I>::stop(Context *on_finish, bool manual, int r,
-                           const std::string& desc)
+void ImageReplayer<I>::stop(Context *on_finish, bool manual, bool restart)
 {
   dout(10) << "on_finish=" << on_finish << ", manual=" << manual
 {
   dout(10) << "on_finish=" << on_finish << ", manual=" << manual
-          << ", desc=" << desc << dendl;
+           << ", restart=" << restart << dendl;
 
   image_replayer::BootstrapRequest<I> *bootstrap_request = nullptr;
   bool shut_down_replay = false;
 
   image_replayer::BootstrapRequest<I> *bootstrap_request = nullptr;
   bool shut_down_replay = false;
@@ -521,8 +524,16 @@ void ImageReplayer<I>::stop(Context *on_finish, bool manual, int r,
   {
     std::lock_guard locker{m_lock};
 
   {
     std::lock_guard locker{m_lock};
 
+    if (restart) {
+      m_restart_requested = true;
+    }
+
     if (!is_running_()) {
       running = false;
     if (!is_running_()) {
       running = false;
+      if (!restart && m_restart_requested) {
+        dout(10) << "canceling restart" << dendl;
+        m_restart_requested = false;
+      }
     } else {
       if (!is_stopped_()) {
        if (m_state == STATE_STARTING) {
     } else {
       if (!is_stopped_()) {
        if (m_state == STATE_STARTING) {
@@ -560,7 +571,7 @@ void ImageReplayer<I>::stop(Context *on_finish, bool manual, int r,
   }
 
   if (shut_down_replay) {
   }
 
   if (shut_down_replay) {
-    on_stop_journal_replay(r, desc);
+    on_stop_journal_replay();
   } else if (on_finish != nullptr) {
     on_finish->complete(0);
   }
   } else if (on_finish != nullptr) {
     on_finish->complete(0);
   }
@@ -591,14 +602,19 @@ void ImageReplayer<I>::on_stop_journal_replay(int r, const std::string &desc)
 template <typename I>
 void ImageReplayer<I>::restart(Context *on_finish)
 {
 template <typename I>
 void ImageReplayer<I>::restart(Context *on_finish)
 {
+  {
+    std::lock_guard locker{m_lock};
+    m_restart_requested = true;
+  }
+
   auto ctx = new LambdaContext(
     [this, on_finish](int r) {
       if (r < 0) {
        // Try start anyway.
       }
   auto ctx = new LambdaContext(
     [this, on_finish](int r) {
       if (r < 0) {
        // Try start anyway.
       }
-      start(on_finish, true);
+      start(on_finish, true, true);
     });
     });
-  stop(ctx);
+  stop(ctx, false, true);
 }
 
 template <typename I>
 }
 
 template <typename I>
index 493d38d9d2845e6e4e82dbee53183b7cdafd257f..9569f025bea2c906d8d3c9b5d66034e255a0f3ce 100644 (file)
@@ -101,9 +101,10 @@ public:
     return m_global_image_id;
   }
 
     return m_global_image_id;
   }
 
-  void start(Context *on_finish = nullptr, bool manual = false);
+  void start(Context *on_finish = nullptr, bool manual = false,
+             bool restart = false);
   void stop(Context *on_finish = nullptr, bool manual = false,
   void stop(Context *on_finish = nullptr, bool manual = false,
-           int r = 0, const std::string& desc = "");
+            bool restart = false);
   void restart(Context *on_finish = nullptr);
   void flush();
 
   void restart(Context *on_finish = nullptr);
   void flush();
 
@@ -139,11 +140,11 @@ protected:
    * @endverbatim
    */
 
    * @endverbatim
    */
 
-  virtual void on_start_fail(int r, const std::string &desc);
-  virtual bool on_start_interrupted();
-  virtual bool on_start_interrupted(ceph::mutex& lock);
+  void on_start_fail(int r, const std::string &desc);
+  bool on_start_interrupted();
+  bool on_start_interrupted(ceph::mutex& lock);
 
 
-  virtual void on_stop_journal_replay(int r = 0, const std::string &desc = "");
+  void on_stop_journal_replay(int r = 0, const std::string &desc = "");
 
   bool on_replay_interrupted();
 
 
   bool on_replay_interrupted();
 
@@ -205,6 +206,7 @@ private:
   bool m_finished = false;
   bool m_delete_requested = false;
   bool m_resync_requested = false;
   bool m_finished = false;
   bool m_delete_requested = false;
   bool m_resync_requested = false;
+  bool m_restart_requested = false;
 
   image_replayer::StateBuilder<ImageCtxT>* m_state_builder = nullptr;
   image_replayer::Replayer* m_replayer = nullptr;
 
   image_replayer::StateBuilder<ImageCtxT>* m_state_builder = nullptr;
   image_replayer::Replayer* m_replayer = nullptr;
index 95bb67129ddb6c7749c3fdd104b8b9a184d0cc6e..4ef838fa43ebbfcd1671d07231b01b153c7d035a 100644 (file)
@@ -274,9 +274,17 @@ void InstanceReplayer<I>::stop(Context *on_finish)
 {
   dout(10) << dendl;
 
 {
   dout(10) << dendl;
 
+  if (on_finish == nullptr) {
+    on_finish = new C_TrackedOp(m_async_op_tracker, on_finish);
+  } else {
+    on_finish = new LambdaContext(
+      [this, on_finish] (int r) {
+        m_async_op_tracker.wait_for_ops(on_finish);
+      });
+  }
+
   auto cct = static_cast<CephContext *>(m_local_io_ctx.cct());
   auto cct = static_cast<CephContext *>(m_local_io_ctx.cct());
-  auto gather_ctx = new C_Gather(
-    cct, new C_TrackedOp(m_async_op_tracker, on_finish));
+  auto gather_ctx = new C_Gather(cct, on_finish);
   {
     std::lock_guard locker{m_lock};
 
   {
     std::lock_guard locker{m_lock};
 
index f1552ac68ca591743fdb2ec9d406875e6428a9ef..60b9a7e59319ad6399adcceb675348aff519375c 100644 (file)
@@ -179,28 +179,16 @@ template <typename I>
 void Replayer<I>::init(Context* on_finish) {
   dout(10) << dendl;
 
 void Replayer<I>::init(Context* on_finish) {
   dout(10) << dendl;
 
-  ceph_assert(m_local_journal == nullptr);
   {
     auto local_image_ctx = m_state_builder->local_image_ctx;
     std::shared_lock image_locker{local_image_ctx->image_lock};
     m_image_spec = util::compute_image_spec(local_image_ctx->md_ctx,
                                             local_image_ctx->name);
   {
     auto local_image_ctx = m_state_builder->local_image_ctx;
     std::shared_lock image_locker{local_image_ctx->image_lock};
     m_image_spec = util::compute_image_spec(local_image_ctx->md_ctx,
                                             local_image_ctx->name);
-    m_local_journal = local_image_ctx->journal;
   }
 
   ceph_assert(m_on_init_shutdown == nullptr);
   m_on_init_shutdown = on_finish;
 
   }
 
   ceph_assert(m_on_init_shutdown == nullptr);
   m_on_init_shutdown = on_finish;
 
-  if (m_local_journal == nullptr) {
-    std::unique_lock locker{m_lock};
-    m_state = STATE_COMPLETE;
-    m_state_builder->remote_journaler = nullptr;
-
-    handle_replay_complete(locker, -EINVAL, "error accessing local journal");
-    close_local_image();
-    return;
-  }
-
   init_remote_journaler();
 }
 
   init_remote_journaler();
 }
 
@@ -226,7 +214,7 @@ void Replayer<I>::shut_down(Context* on_finish) {
 
   cancel_delayed_preprocess_task();
   cancel_flush_local_replay_task();
 
   cancel_delayed_preprocess_task();
   cancel_flush_local_replay_task();
-  shut_down_local_journal_replay();
+  wait_for_flush();
 }
 
 template <typename I>
 }
 
 template <typename I>
@@ -302,13 +290,28 @@ void Replayer<I>::handle_init_remote_journaler(int r) {
     return;
   }
 
     return;
   }
 
-  start_external_replay();
+  start_external_replay(locker);
 }
 
 template <typename I>
 }
 
 template <typename I>
-void Replayer<I>::start_external_replay() {
+void Replayer<I>::start_external_replay(std::unique_lock<ceph::mutex>& locker) {
   dout(10) << dendl;
 
   dout(10) << dendl;
 
+  auto local_image_ctx = m_state_builder->local_image_ctx;
+  std::shared_lock local_image_locker{local_image_ctx->image_lock};
+
+  ceph_assert(m_local_journal == nullptr);
+  m_local_journal = local_image_ctx->journal;
+  if (m_local_journal == nullptr) {
+    local_image_locker.unlock();
+
+    derr << "local image journal closed" << dendl;
+    handle_replay_complete(locker, -EINVAL, "error accessing local journal");
+    close_local_image();
+    return;
+  }
+
+  // safe to hold pointer to journal after external playback starts
   Context *start_ctx = create_context_callback<
     Replayer, &Replayer<I>::handle_start_external_replay>(this);
   m_local_journal->start_external_replay(&m_local_journal_replay, start_ctx);
   Context *start_ctx = create_context_callback<
     Replayer, &Replayer<I>::handle_start_external_replay>(this);
   m_local_journal->start_external_replay(&m_local_journal_replay, start_ctx);
@@ -336,7 +339,36 @@ void Replayer<I>::handle_start_external_replay(int r) {
 
   m_state = STATE_REPLAYING;
 
 
   m_state = STATE_REPLAYING;
 
+  // check for resync/promotion state after adding listener
+  if (!add_local_journal_listener(locker)) {
+    return;
+  }
+
+  // start remote journal replay
+  m_event_preprocessor = EventPreprocessor<I>::create(
+    *m_state_builder->local_image_ctx, *m_state_builder->remote_journaler,
+    m_local_mirror_uuid, &m_state_builder->remote_client_meta,
+    m_threads->work_queue);
+  m_replay_status_formatter = ReplayStatusFormatter<I>::create(
+    m_state_builder->remote_journaler, m_local_mirror_uuid);
+
+  auto cct = static_cast<CephContext *>(m_state_builder->local_image_ctx->cct);
+  double poll_seconds = cct->_conf.get_val<double>(
+    "rbd_mirror_journal_poll_age");
+  m_remote_replay_handler = new RemoteReplayHandler(this);
+  m_state_builder->remote_journaler->start_live_replay(m_remote_replay_handler,
+                                                       poll_seconds);
+
+  notify_status_updated();
+}
+
+template <typename I>
+bool Replayer<I>::add_local_journal_listener(
+    std::unique_lock<ceph::mutex>& locker) {
+  dout(10) << dendl;
+
   // listen for promotion and resync requests against local journal
   // listen for promotion and resync requests against local journal
+  ceph_assert(m_local_journal_listener == nullptr);
   m_local_journal_listener = new LocalJournalListener(this);
   m_local_journal->add_listener(m_local_journal_listener);
 
   m_local_journal_listener = new LocalJournalListener(this);
   m_local_journal->add_listener(m_local_journal_listener);
 
@@ -345,38 +377,23 @@ void Replayer<I>::handle_start_external_replay(int r) {
   if (m_local_journal->is_tag_owner()) {
     dout(10) << "local image force-promoted" << dendl;
     handle_replay_complete(locker, 0, "force promoted");
   if (m_local_journal->is_tag_owner()) {
     dout(10) << "local image force-promoted" << dendl;
     handle_replay_complete(locker, 0, "force promoted");
-    return;
+    return false;
   }
 
   bool resync_requested = false;
   }
 
   bool resync_requested = false;
-  r = m_local_journal->is_resync_requested(&resync_requested);
+  int r = m_local_journal->is_resync_requested(&resync_requested);
   if (r < 0) {
     dout(10) << "failed to determine resync state: " << cpp_strerror(r)
              << dendl;
     handle_replay_complete(locker, r, "error parsing resync state");
   if (r < 0) {
     dout(10) << "failed to determine resync state: " << cpp_strerror(r)
              << dendl;
     handle_replay_complete(locker, r, "error parsing resync state");
-    return;
+    return false;
   } else if (resync_requested) {
     dout(10) << "local image resync requested" << dendl;
     handle_replay_complete(locker, 0, "resync requested");
   } else if (resync_requested) {
     dout(10) << "local image resync requested" << dendl;
     handle_replay_complete(locker, 0, "resync requested");
-    return;
+    return false;
   }
 
   }
 
-  // start remote journal replay
-  m_event_preprocessor = EventPreprocessor<I>::create(
-    *m_state_builder->local_image_ctx, *m_state_builder->remote_journaler,
-    m_local_mirror_uuid, &m_state_builder->remote_client_meta,
-    m_threads->work_queue);
-  m_replay_status_formatter = ReplayStatusFormatter<I>::create(
-    m_state_builder->remote_journaler, m_local_mirror_uuid);
-
-  auto cct = static_cast<CephContext *>(m_state_builder->local_image_ctx->cct);
-  double poll_seconds = cct->_conf.get_val<double>(
-    "rbd_mirror_journal_poll_age");
-  m_remote_replay_handler = new RemoteReplayHandler(this);
-  m_state_builder->remote_journaler->start_live_replay(m_remote_replay_handler,
-                                                       poll_seconds);
-
-  notify_status_updated();
+  return true;
 }
 
 template <typename I>
 }
 
 template <typename I>
@@ -405,14 +422,37 @@ bool Replayer<I>::notify_init_complete(std::unique_lock<ceph::mutex>& locker) {
 }
 
 template <typename I>
 }
 
 template <typename I>
-void Replayer<I>::shut_down_local_journal_replay() {
+void Replayer<I>::wait_for_flush() {
   ceph_assert(ceph_mutex_is_locked_by_me(m_lock));
 
   ceph_assert(ceph_mutex_is_locked_by_me(m_lock));
 
+  // ensure that we don't have two concurrent local journal replay shut downs
+  dout(10) << dendl;
+  auto ctx = create_async_context_callback(
+    m_threads->work_queue, create_context_callback<
+      Replayer<I>, &Replayer<I>::handle_wait_for_flush>(this));
+  m_flush_tracker.wait_for_ops(ctx);
+}
+
+template <typename I>
+void Replayer<I>::handle_wait_for_flush(int r) {
+  dout(10) << "r=" << r << dendl;
+
+  shut_down_local_journal_replay();
+}
+
+template <typename I>
+void Replayer<I>::shut_down_local_journal_replay() {
+  std::unique_lock locker{m_lock};
+
   if (m_local_journal_replay == nullptr) {
     wait_for_event_replay();
     return;
   }
 
   if (m_local_journal_replay == nullptr) {
     wait_for_event_replay();
     return;
   }
 
+  // It's required to stop the local journal replay state machine prior to
+  // waiting for the events to complete. This is to ensure that IO is properly
+  // flushed (it might be batched), wait for any running ops to complete, and
+  // to cancel any ops waiting for their associated OnFinish events.
   dout(10) << dendl;
   auto ctx = create_context_callback<
     Replayer<I>, &Replayer<I>::handle_shut_down_local_journal_replay>(this);
   dout(10) << dendl;
   auto ctx = create_context_callback<
     Replayer<I>, &Replayer<I>::handle_shut_down_local_journal_replay>(this);
@@ -799,6 +839,7 @@ void Replayer<I>::handle_replay_ready(
 template <typename I>
 void Replayer<I>::replay_flush() {
   dout(10) << dendl;
 template <typename I>
 void Replayer<I>::replay_flush() {
   dout(10) << dendl;
+  m_flush_tracker.start_op();
 
   // shut down the replay to flush all IO and ops and create a new
   // replayer to handle the new tag epoch
 
   // shut down the replay to flush all IO and ops and create a new
   // replayer to handle the new tag epoch
@@ -810,19 +851,41 @@ void Replayer<I>::replay_flush() {
 
 template <typename I>
 void Replayer<I>::handle_replay_flush_shut_down(int r) {
 
 template <typename I>
 void Replayer<I>::handle_replay_flush_shut_down(int r) {
-  {
-    std::unique_lock locker{m_lock};
-    ceph_assert(m_local_journal != nullptr);
-    m_local_journal->stop_external_replay();
-    m_local_journal_replay = nullptr;
-  }
-
+  std::unique_lock locker{m_lock};
   dout(10) << "r=" << r << dendl;
   dout(10) << "r=" << r << dendl;
+
+  ceph_assert(m_local_journal != nullptr);
+  ceph_assert(m_local_journal_listener != nullptr);
+
+  // blocks if listener notification is in-progress
+  m_local_journal->remove_listener(m_local_journal_listener);
+  delete m_local_journal_listener;
+  m_local_journal_listener = nullptr;
+
+  m_local_journal->stop_external_replay();
+  m_local_journal_replay = nullptr;
+  m_local_journal.reset();
+
   if (r < 0) {
   if (r < 0) {
+    locker.unlock();
+
     handle_replay_flush(r);
     return;
   }
 
     handle_replay_flush(r);
     return;
   }
 
+  // journal might have been closed now that we stopped external replay
+  auto local_image_ctx = m_state_builder->local_image_ctx;
+  std::shared_lock local_image_locker{local_image_ctx->image_lock};
+  m_local_journal = local_image_ctx->journal;
+  if (m_local_journal == nullptr) {
+    local_image_locker.unlock();
+    locker.unlock();
+
+    derr << "local image journal closed" << dendl;
+    handle_replay_flush(-EINVAL);
+    return;
+  }
+
   auto ctx = create_context_callback<
     Replayer<I>, &Replayer<I>::handle_replay_flush>(this);
   m_local_journal->start_external_replay(&m_local_journal_replay, ctx);
   auto ctx = create_context_callback<
     Replayer<I>, &Replayer<I>::handle_replay_flush>(this);
   m_local_journal->start_external_replay(&m_local_journal_replay, ctx);
@@ -830,17 +893,27 @@ void Replayer<I>::handle_replay_flush_shut_down(int r) {
 
 template <typename I>
 void Replayer<I>::handle_replay_flush(int r) {
 
 template <typename I>
 void Replayer<I>::handle_replay_flush(int r) {
+  std::unique_lock locker{m_lock};
   dout(10) << "r=" << r << dendl;
   dout(10) << "r=" << r << dendl;
+  m_flush_tracker.finish_op();
+
   if (r < 0) {
     derr << "replay flush encountered an error: " << cpp_strerror(r) << dendl;
   if (r < 0) {
     derr << "replay flush encountered an error: " << cpp_strerror(r) << dendl;
-    handle_replay_complete(r, "replay flush encountered an error");
+    handle_replay_complete(locker, r, "replay flush encountered an error");
     m_event_replay_tracker.finish_op();
     return;
     m_event_replay_tracker.finish_op();
     return;
-  } else if (is_replay_complete()) {
+  } else if (is_replay_complete(locker)) {
     m_event_replay_tracker.finish_op();
     return;
   }
 
     m_event_replay_tracker.finish_op();
     return;
   }
 
+  // check for resync/promotion state after adding listener
+  if (!add_local_journal_listener(locker)) {
+    m_event_replay_tracker.finish_op();
+    return;
+  }
+  locker.unlock();
+
   get_remote_tag();
 }
 
   get_remote_tag();
 }
 
index f5d59a07f8a4733d1f9e864dab4be2e815aea1fe..6b1f36d9c7fe9d9f699667fb1e13d1a6041aba78 100644 (file)
@@ -145,6 +145,9 @@ private:
    * REPLAY_COMPLETE  < * * * * * * * * * * * * * * * * * * *   *
    *    |                                                       *
    *    v                                                       *
    * REPLAY_COMPLETE  < * * * * * * * * * * * * * * * * * * *   *
    *    |                                                       *
    *    v                                                       *
+   * WAIT_FOR_FLUSH                                             *
+   *    |                                                       *
+   *    v                                                       *
    * SHUT_DOWN_LOCAL_JOURNAL_REPLAY                             *
    *    |                                                       *
    *    v                                                       *
    * SHUT_DOWN_LOCAL_JOURNAL_REPLAY                             *
    *    |                                                       *
    *    v                                                       *
@@ -214,6 +217,8 @@ private:
   librbd::journal::TagData m_replay_tag_data;
   librbd::journal::EventEntry m_event_entry;
 
   librbd::journal::TagData m_replay_tag_data;
   librbd::journal::EventEntry m_event_entry;
 
+  AsyncOpTracker m_flush_tracker;
+
   AsyncOpTracker m_event_replay_tracker;
   Context *m_delayed_preprocess_task = nullptr;
 
   AsyncOpTracker m_event_replay_tracker;
   Context *m_delayed_preprocess_task = nullptr;
 
@@ -235,11 +240,16 @@ private:
   void init_remote_journaler();
   void handle_init_remote_journaler(int r);
 
   void init_remote_journaler();
   void handle_init_remote_journaler(int r);
 
-  void start_external_replay();
+  void start_external_replay(std::unique_lock<ceph::mutex>& locker);
   void handle_start_external_replay(int r);
 
   void handle_start_external_replay(int r);
 
+  bool add_local_journal_listener(std::unique_lock<ceph::mutex>& locker);
+
   bool notify_init_complete(std::unique_lock<ceph::mutex>& locker);
 
   bool notify_init_complete(std::unique_lock<ceph::mutex>& locker);
 
+  void wait_for_flush();
+  void handle_wait_for_flush(int r);
+
   void shut_down_local_journal_replay();
   void handle_shut_down_local_journal_replay(int r);
 
   void shut_down_local_journal_replay();
   void handle_shut_down_local_journal_replay(int r);
 
index 5396ea0ab3337bd3e16ff0e3e737d533531e54f0..3a5f860c57d556b3c283941d5f879c869175eb1a 100755 (executable)
@@ -669,15 +669,6 @@ EOF
         ; uncomment the following to set LC days as the value in seconds;
         ; needed for passing lc time based s3-tests (can be verbose)
         ; rgw lc debug interval = 10
         ; uncomment the following to set LC days as the value in seconds;
         ; needed for passing lc time based s3-tests (can be verbose)
         ; rgw lc debug interval = 10
-        ; The following settings are for SSE-KMS with Vault
-        ;rgw crypt s3 kms backend = vault
-        ;rgw crypt vault auth = token
-        ;rgw crypt vault token file = $CEPH_CONF_PATH/vault.token
-        ;rgw crypt vault addr = http://127.0.0.1:8200
-        ;rgw crypt vault secret engine = kv
-        ;rgw crypt vault prefix = /v1/kv/data
-        ;rgw crypt vault secret engine = transit
-        ;rgw crypt vault prefix = /v1/transit/export/encryption-key/
 
 $extra_conf
 EOF
 
 $extra_conf
 EOF